{"title":"PHRpdGxlPk1hemRhIG5ldWZzIDIwMjUgJmFtcDsgMjAyNiDDoCBTdC1HZW9yZ2VzIHwgU2l0dGVsbGUgTWF6ZGE8L3RpdGxlPg==","metas":"PG1ldGEgaXRlbXByb3A9Im5hbWUiIGNvbnRlbnQ9IiAgIj48bWV0YSBpdGVtcHJvcD0iZGVzY3JpcHRpb24iIGNvbnRlbnQ9IiI+","js_inline":"CgkoKGQpID0+IHsKCQljb25zdCBjZSA9IGQuY3JlYXRlRWxlbWVudDsKCQlsZXQgdXJsQ2F0QXJyID0gewoJCQknY2xhcml2b3kuY29tJyA6ICdDMDAwMicsCgkJCSdkZWFsZXItbGVhZHMuY2EnIDogJ0MwMDAzJywKCQkJJ3JvYWRzdGVyLmNvbS9yb2Fkc3RlcicgOiAnQzAwMDInLC8vRFdQLTEyMjgxCgkJCSdmemxuay5jb20vc2lnbmFscy5qcycgOiAnQzAwMDInLC8vRFdQLTEyMjg5CgkJCSdsaXZlY2hhdGluYy5jb20vdHJhY2tpbmcuanMnIDogJ0MwMDAzJywvL0RXUC0xMjMwMwoJCQkndGhlbGl2ZWNoYXRzb2Z0d2FyZS5jb20nIDogJ0MwMDAzJywvL0RXUC0xMjI5NwoJCQknY2FuYWRhLmRpZ2l0YWwtaW50ZXJ2aWV3LmNvbScgOiAnQzAwMDMnLC8vRFdQLTEyMzAwCgkJCSdzZGsuYXV0b3ZlcmlmeS5jb20nIDogJ0MwMDAzJywvL0RXUC0xMjMwMQoJCQknYW5hbHl0aWNzLmpzJyA6ICdDMDAwMicsLy9EV1AtMTIzMDkKCQkJJ2hzLXNjcmlwdHMuY29tJyA6ICdDMDAwNCcsLy9EV1AtMTIzMjAKCQkJJ21hcmtldGluZ2F1dG9tYXRpb24uc2VydmljZXMnIDogJ0MwMDA0JywvL0RXUC0xMjMyMgoJCQknbGVhZGZveC5jbycgOiAnQzAwMDQnLAoJCQknc3RhdGljLnVwdHJhY3MuY29tJyA6ICdDMDAwMycsLy9EV1AtMTIzNTQKIAkJCSdiYXQuYmluZy5jb20nIDogJ0MwMDAyJywvL0RXUC0xMjM1NAoJCQknZ3RhZy9qcycgOiAnQzAwMDInLAoJCQknc2QuanMnIDogJ0MwMDAxJywKCQkJJ3NkYS5qcycgOiAnQzAwMDEnLAoJCQkKCQl9OwoJCWxldCB1cmxDYXRSZWdleCA9ICcoJyArIE9iamVjdC5rZXlzKHVybENhdEFycikuam9pbignfCcpLnJlcGxhY2UoL1srPy5dL2csICdcJCYnKSArICcpJzsKCQlsZXQgY3VycmVudENvbnNlbnQgPSBnZXRDb25zZW50KCk7CgkJd2luZG93LnNjcmlwdFVybEFyciA9IFtdOwoJCWQuY3JlYXRlRWxlbWVudCA9IGZ1bmN0aW9uKC4uLmFyZ3MpIHsKCQkJY29uc3QgcyA9IGNlLmJpbmQoZCkoLi4uYXJncyksIHNhID0gcy5zZXRBdHRyaWJ1dGUuYmluZChzKTsKCQkJcy5zZXRBdHRyaWJ1dGUgPSBmdW5jdGlvbihuLCB2KSB7CgkJCQlpZihuID09PSAnc3JjJyAmJiB3aW5kb3cuc2NyaXB0VXJsQXJyLmluZGV4T2Yodi50b1N0cmluZygpKSA9PSAtMSkgewoJCQkJCWlmKChuZXcgUmVnRXhwKHVybENhdFJlZ2V4KSkudGVzdCh2KSl7CgkJCQkJCWZvcihrZXkgaW4gdXJsQ2F0QXJyKXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIAoJCQkJCQkJaWYgKChuZXcgUmVnRXhwKGtleSkpLnRlc3QodikpIHsKCQkJCQkJCQl3aW5kb3cuc2NyaXB0VXJsQXJyLnB1c2godi50b1N0cmluZygpKTsKCQkJCQkJCQlpZihrZXkgPT0gJ2d0YWcvanMnIHx8IGtleSA9PSAnYmF0LmJpbmcuY29tJyB8fCBrZXkgPT0gJ3NkLmpzJyB8fCBrZXkgPT0gJ3NkYS5qcycpewoJCQkJCQkJCQlzYSgnZGF0YS1vdC1pZ25vcmUnLCB0cnVlKTsKCQkJCQkJCQkJc2EoJ3R5cGUnLCAndGV4dC9qYXZhc2NyaXB0Jyk7CgkJCQkJCQkJfSBlbHNlIGlmKGN1cnJlbnRDb25zZW50ID09IG51bGwgfHwgY3VycmVudENvbnNlbnQuaW5kZXhPZih1cmxDYXRBcnJba2V5XSkgPT0gLTEpewoJCQkJCQkJCQlzYSgndHlwZScsICd0ZXh0L3BsYWluJyk7CgkJCQkJCQkJCXNhKCdjbGFzcycsICdvcHRhbm9uLWNhdGVnb3J5LScgKyB1cmxDYXRBcnJba2V5XSk7CgkJCQkJCQkJfQoJCQkJCQkJCWJyZWFrOwoJCQkJCQkJfQoJCQkJCQl9CgkJCQkJfQoJCQkJfQoJCQkJc2Eobiwgdik7CgkJCX0KCQkJcmV0dXJuIHM7CgkJfQoJCWZ1bmN0aW9uIGdldENvbnNlbnQoKXsKCQkJbGV0IG5hbWUgPSAnZDJjX2Nvb2tpZV9jb25zZW50JyArICc9JzsKCQkJbGV0IGNhID0gKCcnK2RvY3VtZW50LmNvb2tpZSkuc3BsaXQoJzsnKTsKCQkJZm9yKGxldCBpID0gMDsgaSA8IGNhLmxlbmd0aDsgaSsrKSB7CgkJCQlsZXQgYyA9IGNhW2ldOwoJCQkJYyA9IGMudHJpbSgpOwoJCQkJaWYgKGMuaW5kZXhPZihuYW1lKSA9PSAwKSB7CgkJCQkJdHJ5ewoJCQkJCQljID0gZGVjb2RlVVJJQ29tcG9uZW50KCBjICk7CgkJCQkJfSBjYXRjaCggZSApCgkJCQkJewoJCQkJCQljb25zb2xlLmxvZyggZSApOwoJCQkJCQlyZXR1cm4gbnVsbDsKCQkJCQl9CgkJCQkJcmV0dXJuIGMuc3Vic3RyaW5nKG5hbWUubGVuZ3RoLCBjLmxlbmd0aCk7CgkJCQl9CgkJCX0KCQkJcmV0dXJuIG51bGw7CgkJfQoJfSkoZG9jdW1lbnQpOwoKCWRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbigpIHsKCS8vIExpc3RlbiBmb3IgY2hhbmdlcyB0byB0aGUgRE9NCgkJbGV0IG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obXV0YXRpb25zKSB7CgkJCW11dGF0aW9ucy5mb3JFYWNoKGZ1bmN0aW9uKG11dGF0aW9uKSB7CgkJCQlpZiAobXV0YXRpb24uYWRkZWROb2RlcyAmJiBtdXRhdGlvbi5hZGRlZE5vZGVzLmxlbmd0aCA+IDApIHsKCQkJCQkvLyBDaGVjayBpZiBvdXIgc2NyaXB0IGhhcyBiZWVuIGFkZGVkIHRvIHRoZSBET00KCQkJCQlmb3IgKGxldCBpID0gMDsgaSA8IG11dGF0aW9uLmFkZGVkTm9kZXMubGVuZ3RoOyBpKyspIHsKCQkJCQkJbGV0IG5vZGUgPSBtdXRhdGlvbi5hZGRlZE5vZGVzW2ldOwoJCQkJCQlpZiAobm9kZS5ub2RlVHlwZSA9PT0gMSAmJiBub2RlLnRhZ05hbWUgPT09ICdTQ1JJUFQnICYmIG5vZGUuc3JjICYmIG5vZGUuc3JjLmluY2x1ZGVzKCdjYW5hZGEuZGlnaXRhbC1pbnRlcnZpZXcuY29tJykgJiYgdHlwZW9mIE9uZVRydXN0ICE9PSAndW5kZWZpbmVkJykgewoJCQkJCQkJc2V0VGltZW91dChmdW5jdGlvbigpewoJCQkJCQkJCXRyeXtEaWdpdGFsSW50ZXJ2aWV3LkxhdW5jaGVyLmVuYWJsZUxhdW5jaFBvaW50cygpO31jYXRjaChlKXt9CgkJCQkJCQl9LCAxMDAwKTsKCQkJCQkJfQoJCQkJCX0KCQkJCX0KCQkJfSk7CgkJfSk7CgkJLy8gU3RhcnQgb2JzZXJ2aW5nIHRoZSBkb2N1bWVudCB3aXRoIHRoZSBjb25maWd1cmVkIHBhcmFtZXRlcnMKCQlvYnNlcnZlci5vYnNlcnZlKGRvY3VtZW50LmJvZHksIHsgY2hpbGRMaXN0OiB0cnVlLCBzdWJ0cmVlOiB0cnVlIH0pOwoJCW9ic2VydmVyLm9ic2VydmUoZG9jdW1lbnQuaGVhZCwgeyBjaGlsZExpc3Q6IHRydWUsIHN1YnRyZWU6IHRydWUgfSk7Cgl9KTsKCi8vZGF0YS1zY29kZXJlZj0iUVBRLTIxMzU1NTU1MjY2MjI1IgooZnVuY3Rpb24oKXt2YXIgbGFzdFdpZHRoPTA7dmFyIGZpcnN0UnVuPTE7dmFyIHRpbWVvdXQ9ZmFsc2U7dHJ5e2Z1bmN0aW9uIGhpZGVtZShlbCl7aWYodHlwZW9mIGVsLmNsYXNzTGlzdD09PSd1bmRlZmluZWQnKXJldHVybjtlbC5jbGFzc0xpc3QuYWRkKCdoaWRlbWUnKTt9CmZ1bmN0aW9uIHNob3dtZShlbCl7aWYodHlwZW9mIGVsLmNsYXNzTGlzdD09PSd1bmRlZmluZWQnKXJldHVybjtlbC5jbGFzc0xpc3QucmVtb3ZlKCdoaWRlbWUnKTt9CnZhciByZXNwb25zaXZlU2l0ZT1mdW5jdGlvbihldmVudCl7dmFyIHN3PXdpbmRvdy5zY3JlZW4ud2lkdGg\/d2luZG93LnNjcmVlbi53aWR0aDp3aW5kb3cub3V0ZXJXaWR0aDt2YXIgb3c9d2luZG93Lm91dGVyV2lkdGgsaXc9d2luZG93LmlubmVyV2lkdGg7dmFyIGJ3PW93PD0zNjAmJml3Pm93P2l3Om93O3ZhciB3aWR0aD1idz5zdz9idzpzdztpZih3aWR0aDw9MzYwKXt3aWR0aD05NjA7fQp2YXIgdmVyc2lvbj0od2lkdGg8OTYwKT8nbW9iaWxlJzonZGVza3RvcCc7dmFyIGVscz1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdib2R5ID4gKicpO3ZhciBpZnJhbWU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ21vYmlsZVNpdGUnKTtpZihsYXN0V2lkdGg9PXdpZHRoKXtyZXR1cm4gZmFsc2U7fQpmb3IoaSBpbiBlbHMpe2lmKCFlbHMuaGFzT3duUHJvcGVydHkoaSkpe2NvbnRpbnVlO30Kc3dpdGNoKHZlcnNpb24pe2Nhc2UnbW9iaWxlJzppZihlbHNbaV09PT1pZnJhbWUpe3Nob3dtZShlbHNbaV0pO31lbHNlIGlmKGlmcmFtZSl7aGlkZW1lKGVsc1tpXSk7fQppZihpZnJhbWUpe2lmKGlmcmFtZS5zcmM9PSdhYm91dDpibGFuaycpe2lmcmFtZS5zZXRBdHRyaWJ1dGUoJ3NyYycsaWZyYW1lLmRhdGFzZXRbJ2ltZ3NyYyddKTt9CmlmcmFtZS5zZXRBdHRyaWJ1dGUoJ3N0eWxlJyxbJ3RvcDowJywnZGlzcGxheTpibG9jaycsJ2xlZnQ6MCcsJ3dpZHRoOmNhbGMoMTAwdncgLSAoMTAwdncgLSAxMDAlKSknLCdoZWlnaHQ6MTAwJScsJ2JvdHRvbTowJywncmlnaHQ6MCcsJ3Bvc2l0aW9uOmFic29sdXRlJyxdLmpvaW4oJzsnKSk7aWZyYW1lLnNldEF0dHJpYnV0ZSgnY2xhc3MnLCdvcHRhbm9uLWNhdGVnb3J5LUMwMDAxJyk7aWZyYW1lLnNldEF0dHJpYnV0ZSgnZGF0YS1vdC1pZ25vcmUnLHRydWUpO2lmcmFtZS5zZXRBdHRyaWJ1dGUoJ2RhdGEtY29va2llY29uc2VudCcsJ2lnbm9yZScpO30KYnJlYWs7Y2FzZSdkZXNrdG9wJzppZihlbHNbaV09PT1pZnJhbWUpaGlkZW1lKGVsc1tpXSk7ZWxzZSBzaG93bWUoZWxzW2ldKTtpZihpZnJhbWUpe2lmcmFtZS5zZXRBdHRyaWJ1dGUoJ3N0eWxlJyxbJ2Rpc3BsYXk6IG5vbmUnLCcnXS5qb2luKCc7JykpO30KYnJlYWs7fX0KaWYodmVyc2lvbj09J2Rlc2t0b3AnKXtpZihsYXN0V2lkdGg9PXdpZHRoKXJldHVybjtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7aWYodHlwZW9mIGpRdWVyeSE9PSd1bmRlZmluZWQnKWpRdWVyeSh3aW5kb3cpLnRyaWdnZXIoJ3Jlc2l6ZScpO30sNTAwKTt9Cmxhc3RXaWR0aD13aWR0aDt9CndpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJyZXNpemUiLGZ1bmN0aW9uKCl7Y2xlYXJUaW1lb3V0KHRpbWVvdXQpO3RpbWVvdXQ9c2V0VGltZW91dChyZXNwb25zaXZlU2l0ZSwyMDApfSk7d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIkRPTUNvbnRlbnRMb2FkZWQiLGZ1bmN0aW9uKCl7dmFyIHM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3R5bGUnKTtzLnNldEF0dHJpYnV0ZSgndHlwZScsJ3RleHQvY3NzJyk7cy5pbm5lckhUTUw9Jy5oaWRlbWUgeyBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gI21vYmlsZVNpdGUgeyBkaXNwbGF5OiBub25lOyB9Jztkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHMpO3ZhciBpPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lmcmFtZScpO3ZhciB0Z3Q9J2h0dHBzOi8vd3d3LnNpdHRlbGxlbWF6ZGEuY2EvZW1iZWRlci9wcm9jZXNzL2ZyP25mcj0xJy5yZXBsYWNlKC8lMkYvaWcsJy8nKTt0Z3QrPSgodGd0LmluZGV4T2YoJz8nKT09PS0xKT8nPyc6YCZgKSsnbmZyPTEmd3N3aWR0aD0nK3dpbmRvdy5zY3JlZW4ud2lkdGg7bGV0IHVybFBhcmFtcz1uZXcgVVJMU2VhcmNoUGFyYW1zKHRndCk7bGV0IGNvdW50PTA7aWYodXJsUGFyYW1zIT09J3VuZGVmaW5lZCcmJnVybFBhcmFtcy5oYXMoJ25mcicpKXtjb3VudD11cmxQYXJhbXMuZ2V0QWxsKCduZnInKS5sZW5ndGg7fQppZihjb3VudDwzKXtpLnNldEF0dHJpYnV0ZSgnZGF0YS1pbWdzcmMnLHRndCk7aS5zZXRBdHRyaWJ1dGUoJ3NyYycsJ2Fib3V0OmJsYW5rJyk7aS5zZXRBdHRyaWJ1dGUoJ2lkJywnbW9iaWxlU2l0ZScpO2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaSk7fQpyZXNwb25zaXZlU2l0ZSgpO30pO3NldFRpbWVvdXQocmVzcG9uc2l2ZVNpdGUsMTAwMCk7fWNhdGNoKGUpe2NvbnNvbGUubG9nKGUpO319KSgpOwoKLyo8IVtDREFUQVsqLwovL2RhdGEtc2NvZGVyZWY9IlBBRi0xODY0NTYzNjgxMTg1MTIyODUiCihmdW5jdGlvbigpeyJ1c2Ugc3RyaWN0Ijt2YXIgU1RPUkFHRV9LRVk9J29uZXJyb3InLHN0b3JhZ2U9W10sZXJyb3JDb2xsZWN0aW9ucz1bXSxwaXhlbEFkZHJlc3M9Jy9mci9hamF4L2xvZ0Vycm9yP3dzd2lkdGg9MCc7dmFyIHN0YXJ0VGltZT1uZXcgRGF0ZSgpO2xvYWRTdG9yZWRFcnJvcnMoKTt2YXIgcGl4ZWxGcmFnbWVudD11bmRlZmluZWQ7ZnVuY3Rpb24gZ2V0UGl4ZWxGcmFnbWVudCgpe2lmKHBpeGVsRnJhZ21lbnQhPT11bmRlZmluZWQpcmV0dXJuIHBpeGVsRnJhZ21lbnQuY2xvbmVOb2RlKHRydWUpO3ZhciBmcmFnPWRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTt2YXIgZGl2PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO2ZyYWcuYXBwZW5kQ2hpbGQoZGl2KTtwaXhlbEZyYWdtZW50PWZyYWcuY2xvbmVOb2RlKHRydWUpO3JldHVybiBmcmFnO30KZnVuY3Rpb24gaGFzUGl4ZWwoZGF0YSl7cmV0dXJuISFkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdkaXZbZGF0YS1saW5lPSInK2RhdGEubGluZSsnIl1bZGF0YS1tc2c9IicrZGF0YS5tc2crJyJdJyk7fQpmdW5jdGlvbiBjcmVhdGVQaXhlbChkYXRhKXtpZihoYXNQaXhlbChkYXRhKSlyZXR1cm4gdHJ1ZTt2YXIgZnJhZ21lbnQ9Z2V0UGl4ZWxGcmFnbWVudCgpO3ZhciBkaXY9ZnJhZ21lbnQucXVlcnlTZWxlY3RvcignZGl2Jyk7dmFyIGludGVybmFsPWlzRmlsZUludGVybmFsKGRhdGEuZmlsZSk\/MTowO3ZhciBvYmo9e21zZzpkYXRhLm1zZyxhZ2VudDpuYXZpZ2F0b3IudXNlckFnZW50LHVybDp3aW5kb3cubG9jYXRpb24uaHJlZixpbnRlcm5hbDppbnRlcm5hbCx1aWQ6Z2V0VUlEKCksdG9wOigobmV3IERhdGUoKSkuZ2V0VGltZSgpLXN0YXJ0VGltZS5nZXRUaW1lKCkpLG1vdXNlT3ZlcjpnZXRDdXJyZW50TW91c2VPdmVyRWxlbWVudCgpfTt2YXIgYWRkRWxlbWVudD1mdW5jdGlvbigpe2Rpdi5zZXRBdHRyaWJ1dGUoJ2RhdGEtbXNnJyxkYXRhLm1zZyk7ZGl2LnNldEF0dHJpYnV0ZSgnZGF0YS1saW5lJyxkYXRhLmxpbmUpO2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZnJhZ21lbnQpO307YWpheChvYmosZnVuY3Rpb24oeGhyKXtjb25zb2xlLmxvZygiSXNzdWUgc2VuZGluZyBlcnJvciwgc3RhdHVzOiAiK3hoci5zdGF0dXMrIiBlcnJvcjogIit4aHIucmVzcG9uc2VUZXh0KTthZGRFbGVtZW50KCk7fSxmdW5jdGlvbih4aHIpe2FkZEVsZW1lbnQoKTtjb25zb2xlLmxvZyh4aHIpO30pO30KZnVuY3Rpb24gYWpheChkYXRhLGVycm9yLHN1Y2Nlc3Mpe3ZhciB4aHI9bmV3IFhNTEh0dHBSZXF1ZXN0KCk7eGhyLm9wZW4oJ1BPU1QnLHBpeGVsQWRkcmVzcyx0cnVlKTt4aHIuc2V0UmVxdWVzdEhlYWRlcignQ29udGVudC1UeXBlJywnYXBwbGljYXRpb24vanNvbjtjaGFyc2V0PVVURi04Jyk7eGhyLm9ucmVhZHlzdGF0ZWNoYW5nZT1mdW5jdGlvbigpe2lmKHhoci5yZWFkeVN0YXRlPT09NCl7aWYoeGhyLnN0YXR1cz09PTIwMCl7c3VjY2Vzcyh4aHIpO31lbHNle2Vycm9yKHhocik7fX19O3hoci5zZW5kKEpTT04uc3RyaW5naWZ5KGRhdGEpKTt9CmZ1bmN0aW9uIGdldEN1cnJlbnRNb3VzZU92ZXJFbGVtZW50KCl7dmFyIGhvdmVyPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJzpob3ZlcicpO2lmKGhvdmVyPT09dW5kZWZpbmVkfHxob3Zlci5sZW5ndGg9PT0wKXtyZXR1cm4nbm9uZSc7fQpob3Zlcj1ob3Zlcltob3Zlci5sZW5ndGgtMV0uY2xvbmVOb2RlKCk7cmV0dXJuIGhvdmVyLm91dGVySFRNTDt9CmZ1bmN0aW9uIGlzRmlsZUludGVybmFsKGZpbGUpe3JldHVybihmaWxlLmluZGV4T2Yod2luZG93LmxvY2F0aW9uLmhvc3RuYW1lKT4tMSk7fQpmdW5jdGlvbiBnZXRVSUQoKXtpZih0eXBlb2YgYWN0aXZlVXNlclByb2ZpbGVNbmchPT0ndW5kZWZpbmVkJyl7cmV0dXJuIGFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZDt9CnJldHVybicnO30KZnVuY3Rpb24gbG9hZFN0b3JlZEVycm9ycygpe2lmKHR5cGVvZiBzZXNzaW9uU3RvcmFnZSE9PSd1bmRlZmluZWQnKXtpZihzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKFNUT1JBR0VfS0VZKSl7c3RvcmFnZT1KU09OLnBhcnNlKHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oU1RPUkFHRV9LRVkpKTt9fQpyZXR1cm4gc3RvcmFnZTt9CmZ1bmN0aW9uIGhhc1Nlc3Npb25FcnJvclNob3duKG1zZyl7bG9hZFN0b3JlZEVycm9ycygpO3JldHVybiBoYXNFcnJvclNob3duKG1zZyk7fQpmdW5jdGlvbiBoYXNFcnJvclNob3duKG1zZyl7aWYoc3RvcmFnZT09PXVuZGVmaW5lZClyZXR1cm4gZmFsc2U7Zm9yKHZhciBpPTA7aTxzdG9yYWdlLmxlbmd0aDtpKyspe2lmKHN0b3JhZ2VbaV09PT1tc2cpe3JldHVybiB0cnVlO319CnJldHVybiBmYWxzZTt9CmlmKHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZS5pbmRleE9mKCdjdXN0b20tcGFnZS1wcmV2aWV3Lmh0bWwnKT09PS0xKXt3aW5kb3cub25lcnJvcj1mdW5jdGlvbihtc2csZmlsZSxsaW5lLGNvbCxlcnJvcil7Y29uc29sZS5sb2coJ29uZXJyb3IgcmFpc2VkIScpO2lmKCFoYXNTZXNzaW9uRXJyb3JTaG93bihtc2cpKXtlcnJvckNvbGxlY3Rpb25zLnB1c2goe21zZzptc2csbGluZTpsaW5lLGZpbGU6ZmlsZX0pO3N0b3JhZ2UucHVzaChtc2cpO2lmKHNlc3Npb25TdG9yYWdlIT09dW5kZWZpbmVkKXtzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKFNUT1JBR0VfS0VZLEpTT04uc3RyaW5naWZ5KHN0b3JhZ2UpKTt9fQppZihkb2N1bWVudFsnYm9keSddIT09bnVsbCYmZG9jdW1lbnRbJ2JvZHknXSE9PXVuZGVmaW5lZCl7YWRkUGl4ZWxzVG9Eb20oKTt9CmlmKCdsaXZlJz09J2xpdmUnJiYnVVMnPT0nQ0EnKXtndGFnKCdldmVudCcsJ2V4Y2VwdGlvbicseydzZW5kX3RvJzonRy1aNVE4WjVDN0tGJywnZGVzY3JpcHRpb24nOm1zZywnZmF0YWwnOnRydWV9KTt9fTt9CmlmKC9XZWJLaXQvaS50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpKXt2YXIgX3RpbWVyPXNldEludGVydmFsKGZ1bmN0aW9uKCl7aWYoL2xvYWRlZHxjb21wbGV0ZS8udGVzdChkb2N1bWVudC5yZWFkeVN0YXRlKSl7Y2xlYXJJbnRlcnZhbChfdGltZXIpO29ubG9hZCgpO319LDEwKTt9Ci8qQGNjX29uIEAqLwovKkBpZiAoQF93aW4zMikKCQkJCWRvY3VtZW50LndyaXRlKCI8Iisic2NyaXB0IGlkPV9faWVfb25sb2FkIGRlZmVyIHNyYz1qYXZhc2NyaXB0OnZvaWQoMCk+PFwvc2NyaXB0PiIpOwoJCQkJdmFyIHNjcmlwdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJfX2llX29ubG9hZCIpOwoJCQkJc2NyaXB0Lm9ucmVhZHlzdGF0ZWNoYW5nZSA9IGZ1bmN0aW9uKCkgewoJCQkJICBpZiAodGhpcy5yZWFkeVN0YXRlID09ICJjb21wbGV0ZSIpIHsKCQkJCQlvbmxvYWQoKTsgLy8gY2FsbCB0aGUgb25sb2FkIGhhbmRsZXIKCQkJCSAgfQoJCQkJfTsKCQkJLypAZW5kIEAqLwpmdW5jdGlvbiBhZGRQaXhlbHNUb0RvbSgpe2Zvcih2YXIgaT0wO2k8ZXJyb3JDb2xsZWN0aW9ucy5sZW5ndGg7aSsrKXtjb25zb2xlLmxvZygnY3JlYXRlUGl4ZWwnLGVycm9yQ29sbGVjdGlvbnNbaV0pO319CmZ1bmN0aW9uIG9ubG9hZCgpe2FkZFBpeGVsc1RvRG9tKCk7fQpmdW5jdGlvbiBfY3JlYXRlU2NyaXB0KHRleHQpe3ZhciBzPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpO3MuYXBwZW5kKHRleHQpO3JldHVybiBzO30Kd2luZG93LmVycm9yVGVzdHM9e3N5bnRheDpmdW5jdGlvbigpe3ZhciBzY3JpcHQ9X2NyZWF0ZVNjcmlwdCgnfScpO2RvY3VtZW50LmJvZHkuYXBwZW5kKHNjcmlwdCk7fSxvZk51bGw6ZnVuY3Rpb24oKXt2YXIgdGV4dD0ndmFyIGEgPSBudWxsOyB2YXIgYiA9IGEud2hhdDsnO3ZhciBzY3JpcHQ9X2NyZWF0ZVNjcmlwdCh0ZXh0KTtkb2N1bWVudC5ib2R5LmFwcGVuZChzY3JpcHQpO30saW52YWxpZEFzc2lnbm1lbnQ6ZnVuY3Rpb24oKXt2YXIgc2NyaXB0PV9jcmVhdGVTY3JpcHQoJzEgPSBmdW5jKCk7Jyk7ZG9jdW1lbnQuYm9keS5hcHBlbmQoc2NyaXB0KTt9fTt3aW5kb3cudHJhY2tDb252ZXJzaW9uPWZ1bmN0aW9uKCl7aWYodHlwZW9mIGd0YWc9PSd1bmRlZmluZWQnKXJldHVybi0xO2lmKCF3aW5kb3cuZDJjX2F3Y0lkfHwhd2luZG93LmQyY19hd2NMYWJlbClyZXR1cm4tMztpZihkZXBsb3ltZW50VHlwZS50b0xvd2VyQ2FzZSgpPT0nbGl2ZScmJidVUyc9PSdDQScpe2d0YWcoJ2V2ZW50JywnY29udmVyc2lvbicseydzZW5kX3RvJzpkMmNfYXdjSWQrJy8nK2QyY19hd2NMYWJlbH0pO31lbHNle2NvbnNvbGUubG9nKCJndGFnKCdldmVudCcsJ2NvbnZlcnNpb24nLCB7ICdzZW5kX3RvJzogIitkMmNfYXdjSWQrJy8nK2QyY19hd2NMYWJlbCsiIH0pOyIpO319fSkoKTsKLypdXT4qLwoKLyo8IVtDREFUQVsqLwovL2RhdGEtc2NvZGVyZWY9IlBBRi0xODY0NTYzNjgxMTg1MTIyODUiCihmdW5jdGlvbigpeyJ1c2Ugc3RyaWN0Ijt2YXIgU1RPUkFHRV9LRVk9J29uZXJyb3InLHN0b3JhZ2U9W10sZXJyb3JDb2xsZWN0aW9ucz1bXSxwaXhlbEFkZHJlc3M9Jy9mci9hamF4L2xvZ0Vycm9yP3dzd2lkdGg9MCc7dmFyIHN0YXJ0VGltZT1uZXcgRGF0ZSgpO2xvYWRTdG9yZWRFcnJvcnMoKTt2YXIgcGl4ZWxGcmFnbWVudD11bmRlZmluZWQ7ZnVuY3Rpb24gZ2V0UGl4ZWxGcmFnbWVudCgpe2lmKHBpeGVsRnJhZ21lbnQhPT11bmRlZmluZWQpcmV0dXJuIHBpeGVsRnJhZ21lbnQuY2xvbmVOb2RlKHRydWUpO3ZhciBmcmFnPWRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTt2YXIgZGl2PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO2ZyYWcuYXBwZW5kQ2hpbGQoZGl2KTtwaXhlbEZyYWdtZW50PWZyYWcuY2xvbmVOb2RlKHRydWUpO3JldHVybiBmcmFnO30KZnVuY3Rpb24gaGFzUGl4ZWwoZGF0YSl7cmV0dXJuISFkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdkaXZbZGF0YS1saW5lPSInK2RhdGEubGluZSsnIl1bZGF0YS1tc2c9IicrZGF0YS5tc2crJyJdJyk7fQpmdW5jdGlvbiBjcmVhdGVQaXhlbChkYXRhKXtpZihoYXNQaXhlbChkYXRhKSlyZXR1cm4gdHJ1ZTt2YXIgZnJhZ21lbnQ9Z2V0UGl4ZWxGcmFnbWVudCgpO3ZhciBkaXY9ZnJhZ21lbnQucXVlcnlTZWxlY3RvcignZGl2Jyk7dmFyIGludGVybmFsPWlzRmlsZUludGVybmFsKGRhdGEuZmlsZSk\/MTowO3ZhciBvYmo9e21zZzpkYXRhLm1zZyxhZ2VudDpuYXZpZ2F0b3IudXNlckFnZW50LHVybDp3aW5kb3cubG9jYXRpb24uaHJlZixpbnRlcm5hbDppbnRlcm5hbCx1aWQ6Z2V0VUlEKCksdG9wOigobmV3IERhdGUoKSkuZ2V0VGltZSgpLXN0YXJ0VGltZS5nZXRUaW1lKCkpLG1vdXNlT3ZlcjpnZXRDdXJyZW50TW91c2VPdmVyRWxlbWVudCgpfTt2YXIgYWRkRWxlbWVudD1mdW5jdGlvbigpe2Rpdi5zZXRBdHRyaWJ1dGUoJ2RhdGEtbXNnJyxkYXRhLm1zZyk7ZGl2LnNldEF0dHJpYnV0ZSgnZGF0YS1saW5lJyxkYXRhLmxpbmUpO2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZnJhZ21lbnQpO307YWpheChvYmosZnVuY3Rpb24oeGhyKXtjb25zb2xlLmxvZygiSXNzdWUgc2VuZGluZyBlcnJvciwgc3RhdHVzOiAiK3hoci5zdGF0dXMrIiBlcnJvcjogIit4aHIucmVzcG9uc2VUZXh0KTthZGRFbGVtZW50KCk7fSxmdW5jdGlvbih4aHIpe2FkZEVsZW1lbnQoKTtjb25zb2xlLmxvZyh4aHIpO30pO30KZnVuY3Rpb24gYWpheChkYXRhLGVycm9yLHN1Y2Nlc3Mpe3ZhciB4aHI9bmV3IFhNTEh0dHBSZXF1ZXN0KCk7eGhyLm9wZW4oJ1BPU1QnLHBpeGVsQWRkcmVzcyx0cnVlKTt4aHIuc2V0UmVxdWVzdEhlYWRlcignQ29udGVudC1UeXBlJywnYXBwbGljYXRpb24vanNvbjtjaGFyc2V0PVVURi04Jyk7eGhyLm9ucmVhZHlzdGF0ZWNoYW5nZT1mdW5jdGlvbigpe2lmKHhoci5yZWFkeVN0YXRlPT09NCl7aWYoeGhyLnN0YXR1cz09PTIwMCl7c3VjY2Vzcyh4aHIpO31lbHNle2Vycm9yKHhocik7fX19O3hoci5zZW5kKEpTT04uc3RyaW5naWZ5KGRhdGEpKTt9CmZ1bmN0aW9uIGdldEN1cnJlbnRNb3VzZU92ZXJFbGVtZW50KCl7dmFyIGhvdmVyPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJzpob3ZlcicpO2lmKGhvdmVyPT09dW5kZWZpbmVkfHxob3Zlci5sZW5ndGg9PT0wKXtyZXR1cm4nbm9uZSc7fQpob3Zlcj1ob3Zlcltob3Zlci5sZW5ndGgtMV0uY2xvbmVOb2RlKCk7cmV0dXJuIGhvdmVyLm91dGVySFRNTDt9CmZ1bmN0aW9uIGlzRmlsZUludGVybmFsKGZpbGUpe3JldHVybihmaWxlLmluZGV4T2Yod2luZG93LmxvY2F0aW9uLmhvc3RuYW1lKT4tMSk7fQpmdW5jdGlvbiBnZXRVSUQoKXtpZih0eXBlb2YgYWN0aXZlVXNlclByb2ZpbGVNbmchPT0ndW5kZWZpbmVkJyl7cmV0dXJuIGFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZDt9CnJldHVybicnO30KZnVuY3Rpb24gbG9hZFN0b3JlZEVycm9ycygpe2lmKHR5cGVvZiBzZXNzaW9uU3RvcmFnZSE9PSd1bmRlZmluZWQnKXtpZihzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKFNUT1JBR0VfS0VZKSl7c3RvcmFnZT1KU09OLnBhcnNlKHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oU1RPUkFHRV9LRVkpKTt9fQpyZXR1cm4gc3RvcmFnZTt9CmZ1bmN0aW9uIGhhc1Nlc3Npb25FcnJvclNob3duKG1zZyl7bG9hZFN0b3JlZEVycm9ycygpO3JldHVybiBoYXNFcnJvclNob3duKG1zZyk7fQpmdW5jdGlvbiBoYXNFcnJvclNob3duKG1zZyl7aWYoc3RvcmFnZT09PXVuZGVmaW5lZClyZXR1cm4gZmFsc2U7Zm9yKHZhciBpPTA7aTxzdG9yYWdlLmxlbmd0aDtpKyspe2lmKHN0b3JhZ2VbaV09PT1tc2cpe3JldHVybiB0cnVlO319CnJldHVybiBmYWxzZTt9CmlmKHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZS5pbmRleE9mKCdjdXN0b20tcGFnZS1wcmV2aWV3Lmh0bWwnKT09PS0xKXt3aW5kb3cub25lcnJvcj1mdW5jdGlvbihtc2csZmlsZSxsaW5lLGNvbCxlcnJvcil7Y29uc29sZS5sb2coJ29uZXJyb3IgcmFpc2VkIScpO2lmKCFoYXNTZXNzaW9uRXJyb3JTaG93bihtc2cpKXtlcnJvckNvbGxlY3Rpb25zLnB1c2goe21zZzptc2csbGluZTpsaW5lLGZpbGU6ZmlsZX0pO3N0b3JhZ2UucHVzaChtc2cpO2lmKHNlc3Npb25TdG9yYWdlIT09dW5kZWZpbmVkKXtzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKFNUT1JBR0VfS0VZLEpTT04uc3RyaW5naWZ5KHN0b3JhZ2UpKTt9fQppZihkb2N1bWVudFsnYm9keSddIT09bnVsbCYmZG9jdW1lbnRbJ2JvZHknXSE9PXVuZGVmaW5lZCl7YWRkUGl4ZWxzVG9Eb20oKTt9CmlmKCdsaXZlJz09J2xpdmUnJiYnVVMnPT0nQ0EnKXtndGFnKCdldmVudCcsJ2V4Y2VwdGlvbicseydzZW5kX3RvJzonRy1aNVE4WjVDN0tGJywnZGVzY3JpcHRpb24nOm1zZywnZmF0YWwnOnRydWV9KTt9fTt9CmlmKC9XZWJLaXQvaS50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpKXt2YXIgX3RpbWVyPXNldEludGVydmFsKGZ1bmN0aW9uKCl7aWYoL2xvYWRlZHxjb21wbGV0ZS8udGVzdChkb2N1bWVudC5yZWFkeVN0YXRlKSl7Y2xlYXJJbnRlcnZhbChfdGltZXIpO29ubG9hZCgpO319LDEwKTt9Ci8qQGNjX29uIEAqLwovKkBpZiAoQF93aW4zMikKCQkJCWRvY3VtZW50LndyaXRlKCI8Iisic2NyaXB0IGlkPV9faWVfb25sb2FkIGRlZmVyIHNyYz1qYXZhc2NyaXB0OnZvaWQoMCk+PFwvc2NyaXB0PiIpOwoJCQkJdmFyIHNjcmlwdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJfX2llX29ubG9hZCIpOwoJCQkJc2NyaXB0Lm9ucmVhZHlzdGF0ZWNoYW5nZSA9IGZ1bmN0aW9uKCkgewoJCQkJICBpZiAodGhpcy5yZWFkeVN0YXRlID09ICJjb21wbGV0ZSIpIHsKCQkJCQlvbmxvYWQoKTsgLy8gY2FsbCB0aGUgb25sb2FkIGhhbmRsZXIKCQkJCSAgfQoJCQkJfTsKCQkJLypAZW5kIEAqLwpmdW5jdGlvbiBhZGRQaXhlbHNUb0RvbSgpe2Zvcih2YXIgaT0wO2k8ZXJyb3JDb2xsZWN0aW9ucy5sZW5ndGg7aSsrKXtjb25zb2xlLmxvZygnY3JlYXRlUGl4ZWwnLGVycm9yQ29sbGVjdGlvbnNbaV0pO319CmZ1bmN0aW9uIG9ubG9hZCgpe2FkZFBpeGVsc1RvRG9tKCk7fQpmdW5jdGlvbiBfY3JlYXRlU2NyaXB0KHRleHQpe3ZhciBzPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpO3MuYXBwZW5kKHRleHQpO3JldHVybiBzO30Kd2luZG93LmVycm9yVGVzdHM9e3N5bnRheDpmdW5jdGlvbigpe3ZhciBzY3JpcHQ9X2NyZWF0ZVNjcmlwdCgnfScpO2RvY3VtZW50LmJvZHkuYXBwZW5kKHNjcmlwdCk7fSxvZk51bGw6ZnVuY3Rpb24oKXt2YXIgdGV4dD0ndmFyIGEgPSBudWxsOyB2YXIgYiA9IGEud2hhdDsnO3ZhciBzY3JpcHQ9X2NyZWF0ZVNjcmlwdCh0ZXh0KTtkb2N1bWVudC5ib2R5LmFwcGVuZChzY3JpcHQpO30saW52YWxpZEFzc2lnbm1lbnQ6ZnVuY3Rpb24oKXt2YXIgc2NyaXB0PV9jcmVhdGVTY3JpcHQoJzEgPSBmdW5jKCk7Jyk7ZG9jdW1lbnQuYm9keS5hcHBlbmQoc2NyaXB0KTt9fTt3aW5kb3cudHJhY2tDb252ZXJzaW9uPWZ1bmN0aW9uKCl7aWYodHlwZW9mIGd0YWc9PSd1bmRlZmluZWQnKXJldHVybi0xO2lmKCF3aW5kb3cuZDJjX2F3Y0lkfHwhd2luZG93LmQyY19hd2NMYWJlbClyZXR1cm4tMztpZihkZXBsb3ltZW50VHlwZS50b0xvd2VyQ2FzZSgpPT0nbGl2ZScmJidVUyc9PSdDQScpe2d0YWcoJ2V2ZW50JywnY29udmVyc2lvbicseydzZW5kX3RvJzpkMmNfYXdjSWQrJy8nK2QyY19hd2NMYWJlbH0pO31lbHNle2NvbnNvbGUubG9nKCJndGFnKCdldmVudCcsJ2NvbnZlcnNpb24nLCB7ICdzZW5kX3RvJzogIitkMmNfYXdjSWQrJy8nK2QyY19hd2NMYWJlbCsiIH0pOyIpO319fSkoKTsKLypdXT4qLwoKLy9kYXRhLXNjb2RlcmVmPSJRUFEtMjEzNTU1NTUyNjYyMjUiCihmdW5jdGlvbigpe3ZhciBsYXN0V2lkdGg9MDt2YXIgZmlyc3RSdW49MTt2YXIgdGltZW91dD1mYWxzZTt0cnl7ZnVuY3Rpb24gaGlkZW1lKGVsKXtpZih0eXBlb2YgZWwuY2xhc3NMaXN0PT09J3VuZGVmaW5lZCcpcmV0dXJuO2VsLmNsYXNzTGlzdC5hZGQoJ2hpZGVtZScpO30KZnVuY3Rpb24gc2hvd21lKGVsKXtpZih0eXBlb2YgZWwuY2xhc3NMaXN0PT09J3VuZGVmaW5lZCcpcmV0dXJuO2VsLmNsYXNzTGlzdC5yZW1vdmUoJ2hpZGVtZScpO30KdmFyIHJlc3BvbnNpdmVTaXRlPWZ1bmN0aW9uKGV2ZW50KXt2YXIgc3c9d2luZG93LnNjcmVlbi53aWR0aD93aW5kb3cuc2NyZWVuLndpZHRoOndpbmRvdy5vdXRlcldpZHRoO3ZhciBvdz13aW5kb3cub3V0ZXJXaWR0aCxpdz13aW5kb3cuaW5uZXJXaWR0aDt2YXIgYnc9b3c8PTM2MCYmaXc+b3c\/aXc6b3c7dmFyIHdpZHRoPWJ3PnN3P2J3OnN3O2lmKHdpZHRoPD0zNjApe3dpZHRoPTk2MDt9CnZhciB2ZXJzaW9uPSh3aWR0aDw5NjApPydtb2JpbGUnOidkZXNrdG9wJzt2YXIgZWxzPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2JvZHkgPiAqJyk7dmFyIGlmcmFtZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbW9iaWxlU2l0ZScpO2lmKGxhc3RXaWR0aD09d2lkdGgpe3JldHVybiBmYWxzZTt9CmZvcihpIGluIGVscyl7aWYoIWVscy5oYXNPd25Qcm9wZXJ0eShpKSl7Y29udGludWU7fQpzd2l0Y2godmVyc2lvbil7Y2FzZSdtb2JpbGUnOmlmKGVsc1tpXT09PWlmcmFtZSl7c2hvd21lKGVsc1tpXSk7fWVsc2UgaWYoaWZyYW1lKXtoaWRlbWUoZWxzW2ldKTt9CmlmKGlmcmFtZSl7aWYoaWZyYW1lLnNyYz09J2Fib3V0OmJsYW5rJyl7aWZyYW1lLnNldEF0dHJpYnV0ZSgnc3JjJyxpZnJhbWUuZGF0YXNldFsnaW1nc3JjJ10pO30KaWZyYW1lLnNldEF0dHJpYnV0ZSgnc3R5bGUnLFsndG9wOjAnLCdkaXNwbGF5OmJsb2NrJywnbGVmdDowJywnd2lkdGg6Y2FsYygxMDB2dyAtICgxMDB2dyAtIDEwMCUpKScsJ2hlaWdodDoxMDAlJywnYm90dG9tOjAnLCdyaWdodDowJywncG9zaXRpb246YWJzb2x1dGUnLF0uam9pbignOycpKTtpZnJhbWUuc2V0QXR0cmlidXRlKCdjbGFzcycsJ29wdGFub24tY2F0ZWdvcnktQzAwMDEnKTtpZnJhbWUuc2V0QXR0cmlidXRlKCdkYXRhLW90LWlnbm9yZScsdHJ1ZSk7aWZyYW1lLnNldEF0dHJpYnV0ZSgnZGF0YS1jb29raWVjb25zZW50JywnaWdub3JlJyk7fQpicmVhaztjYXNlJ2Rlc2t0b3AnOmlmKGVsc1tpXT09PWlmcmFtZSloaWRlbWUoZWxzW2ldKTtlbHNlIHNob3dtZShlbHNbaV0pO2lmKGlmcmFtZSl7aWZyYW1lLnNldEF0dHJpYnV0ZSgnc3R5bGUnLFsnZGlzcGxheTogbm9uZScsJyddLmpvaW4oJzsnKSk7fQpicmVhazt9fQppZih2ZXJzaW9uPT0nZGVza3RvcCcpe2lmKGxhc3RXaWR0aD09d2lkdGgpcmV0dXJuO3NldFRpbWVvdXQoZnVuY3Rpb24oKXtpZih0eXBlb2YgalF1ZXJ5IT09J3VuZGVmaW5lZCcpalF1ZXJ5KHdpbmRvdykudHJpZ2dlcigncmVzaXplJyk7fSw1MDApO30KbGFzdFdpZHRoPXdpZHRoO30Kd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsZnVuY3Rpb24oKXtjbGVhclRpbWVvdXQodGltZW91dCk7dGltZW91dD1zZXRUaW1lb3V0KHJlc3BvbnNpdmVTaXRlLDIwMCl9KTt3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigiRE9NQ29udGVudExvYWRlZCIsZnVuY3Rpb24oKXt2YXIgcz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzdHlsZScpO3Muc2V0QXR0cmlidXRlKCd0eXBlJywndGV4dC9jc3MnKTtzLmlubmVySFRNTD0nLmhpZGVtZSB7IGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSAjbW9iaWxlU2l0ZSB7IGRpc3BsYXk6IG5vbmU7IH0nO2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQocyk7dmFyIGk9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaWZyYW1lJyk7dmFyIHRndD0naHR0cHM6Ly93d3cuc2l0dGVsbGVtYXpkYS5jYS9lbWJlZGVyL3Byb2Nlc3MvZnI\/bmZyPTEnLnJlcGxhY2UoLyUyRi9pZywnLycpO3RndCs9KCh0Z3QuaW5kZXhPZignPycpPT09LTEpPyc\/JzpgJmApKyduZnI9MSZ3c3dpZHRoPScrd2luZG93LnNjcmVlbi53aWR0aDtsZXQgdXJsUGFyYW1zPW5ldyBVUkxTZWFyY2hQYXJhbXModGd0KTtsZXQgY291bnQ9MDtpZih1cmxQYXJhbXMhPT0ndW5kZWZpbmVkJyYmdXJsUGFyYW1zLmhhcygnbmZyJykpe2NvdW50PXVybFBhcmFtcy5nZXRBbGwoJ25mcicpLmxlbmd0aDt9CmlmKGNvdW50PDMpe2kuc2V0QXR0cmlidXRlKCdkYXRhLWltZ3NyYycsdGd0KTtpLnNldEF0dHJpYnV0ZSgnc3JjJywnYWJvdXQ6YmxhbmsnKTtpLnNldEF0dHJpYnV0ZSgnaWQnLCdtb2JpbGVTaXRlJyk7ZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpKTt9CnJlc3BvbnNpdmVTaXRlKCk7fSk7c2V0VGltZW91dChyZXNwb25zaXZlU2l0ZSwxMDAwKTt9Y2F0Y2goZSl7Y29uc29sZS5sb2coZSk7fX0pKCk7CgoJKChkKSA9PiB7CgkJY29uc3QgY2UgPSBkLmNyZWF0ZUVsZW1lbnQ7CgkJbGV0IHVybENhdEFyciA9IHsKCQkJJ2NsYXJpdm95LmNvbScgOiAnQzAwMDInLAoJCQknZGVhbGVyLWxlYWRzLmNhJyA6ICdDMDAwMycsCgkJCSdyb2Fkc3Rlci5jb20vcm9hZHN0ZXInIDogJ0MwMDAyJywvL0RXUC0xMjI4MQoJCQknZnpsbmsuY29tL3NpZ25hbHMuanMnIDogJ0MwMDAyJywvL0RXUC0xMjI4OQoJCQknbGl2ZWNoYXRpbmMuY29tL3RyYWNraW5nLmpzJyA6ICdDMDAwMycsLy9EV1AtMTIzMDMKCQkJJ3RoZWxpdmVjaGF0c29mdHdhcmUuY29tJyA6ICdDMDAwMycsLy9EV1AtMTIyOTcKCQkJJ2NhbmFkYS5kaWdpdGFsLWludGVydmlldy5jb20nIDogJ0MwMDAzJywvL0RXUC0xMjMwMAoJCQknc2RrLmF1dG92ZXJpZnkuY29tJyA6ICdDMDAwMycsLy9EV1AtMTIzMDEKCQkJJ2FuYWx5dGljcy5qcycgOiAnQzAwMDInLC8vRFdQLTEyMzA5CgkJCSdocy1zY3JpcHRzLmNvbScgOiAnQzAwMDQnLC8vRFdQLTEyMzIwCgkJCSdtYXJrZXRpbmdhdXRvbWF0aW9uLnNlcnZpY2VzJyA6ICdDMDAwNCcsLy9EV1AtMTIzMjIKCQkJJ2xlYWRmb3guY28nIDogJ0MwMDA0JywKCQkJJ3N0YXRpYy51cHRyYWNzLmNvbScgOiAnQzAwMDMnLC8vRFdQLTEyMzU0CiAJCQknYmF0LmJpbmcuY29tJyA6ICdDMDAwMicsLy9EV1AtMTIzNTQKCQkJJ2d0YWcvanMnIDogJ0MwMDAyJywKCQkJJ3NkLmpzJyA6ICdDMDAwMScsCgkJCSdzZGEuanMnIDogJ0MwMDAxJywKCQkJCgkJfTsKCQlsZXQgdXJsQ2F0UmVnZXggPSAnKCcgKyBPYmplY3Qua2V5cyh1cmxDYXRBcnIpLmpvaW4oJ3wnKS5yZXBsYWNlKC9bKz8uXS9nLCAnXCQmJykgKyAnKSc7CgkJbGV0IGN1cnJlbnRDb25zZW50ID0gZ2V0Q29uc2VudCgpOwoJCXdpbmRvdy5zY3JpcHRVcmxBcnIgPSBbXTsKCQlkLmNyZWF0ZUVsZW1lbnQgPSBmdW5jdGlvbiguLi5hcmdzKSB7CgkJCWNvbnN0IHMgPSBjZS5iaW5kKGQpKC4uLmFyZ3MpLCBzYSA9IHMuc2V0QXR0cmlidXRlLmJpbmQocyk7CgkJCXMuc2V0QXR0cmlidXRlID0gZnVuY3Rpb24obiwgdikgewoJCQkJaWYobiA9PT0gJ3NyYycgJiYgd2luZG93LnNjcmlwdFVybEFyci5pbmRleE9mKHYudG9TdHJpbmcoKSkgPT0gLTEpIHsKCQkJCQlpZigobmV3IFJlZ0V4cCh1cmxDYXRSZWdleCkpLnRlc3QodikpewoJCQkJCQlmb3Ioa2V5IGluIHVybENhdEFycil7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAKCQkJCQkJCWlmICgobmV3IFJlZ0V4cChrZXkpKS50ZXN0KHYpKSB7CgkJCQkJCQkJd2luZG93LnNjcmlwdFVybEFyci5wdXNoKHYudG9TdHJpbmcoKSk7CgkJCQkJCQkJaWYoa2V5ID09ICdndGFnL2pzJyB8fCBrZXkgPT0gJ2JhdC5iaW5nLmNvbScgfHwga2V5ID09ICdzZC5qcycgfHwga2V5ID09ICdzZGEuanMnKXsKCQkJCQkJCQkJc2EoJ2RhdGEtb3QtaWdub3JlJywgdHJ1ZSk7CgkJCQkJCQkJCXNhKCd0eXBlJywgJ3RleHQvamF2YXNjcmlwdCcpOwoJCQkJCQkJCX0gZWxzZSBpZihjdXJyZW50Q29uc2VudCA9PSBudWxsIHx8IGN1cnJlbnRDb25zZW50LmluZGV4T2YodXJsQ2F0QXJyW2tleV0pID09IC0xKXsKCQkJCQkJCQkJc2EoJ3R5cGUnLCAndGV4dC9wbGFpbicpOwoJCQkJCQkJCQlzYSgnY2xhc3MnLCAnb3B0YW5vbi1jYXRlZ29yeS0nICsgdXJsQ2F0QXJyW2tleV0pOwoJCQkJCQkJCX0KCQkJCQkJCQlicmVhazsKCQkJCQkJCX0KCQkJCQkJfQoJCQkJCX0KCQkJCX0KCQkJCXNhKG4sIHYpOwoJCQl9CgkJCXJldHVybiBzOwoJCX0KCQlmdW5jdGlvbiBnZXRDb25zZW50KCl7CgkJCWxldCBuYW1lID0gJ2QyY19jb29raWVfY29uc2VudCcgKyAnPSc7CgkJCWxldCBjYSA9ICgnJytkb2N1bWVudC5jb29raWUpLnNwbGl0KCc7Jyk7CgkJCWZvcihsZXQgaSA9IDA7IGkgPCBjYS5sZW5ndGg7IGkrKykgewoJCQkJbGV0IGMgPSBjYVtpXTsKCQkJCWMgPSBjLnRyaW0oKTsKCQkJCWlmIChjLmluZGV4T2YobmFtZSkgPT0gMCkgewoJCQkJCXRyeXsKCQkJCQkJYyA9IGRlY29kZVVSSUNvbXBvbmVudCggYyApOwoJCQkJCX0gY2F0Y2goIGUgKQoJCQkJCXsKCQkJCQkJY29uc29sZS5sb2coIGUgKTsKCQkJCQkJcmV0dXJuIG51bGw7CgkJCQkJfQoJCQkJCXJldHVybiBjLnN1YnN0cmluZyhuYW1lLmxlbmd0aCwgYy5sZW5ndGgpOwoJCQkJfQoJCQl9CgkJCXJldHVybiBudWxsOwoJCX0KCX0pKGRvY3VtZW50KTsKCglkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24oKSB7CgkvLyBMaXN0ZW4gZm9yIGNoYW5nZXMgdG8gdGhlIERPTQoJCWxldCBvYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG11dGF0aW9ucykgewoJCQltdXRhdGlvbnMuZm9yRWFjaChmdW5jdGlvbihtdXRhdGlvbikgewoJCQkJaWYgKG11dGF0aW9uLmFkZGVkTm9kZXMgJiYgbXV0YXRpb24uYWRkZWROb2Rlcy5sZW5ndGggPiAwKSB7CgkJCQkJLy8gQ2hlY2sgaWYgb3VyIHNjcmlwdCBoYXMgYmVlbiBhZGRlZCB0byB0aGUgRE9NCgkJCQkJZm9yIChsZXQgaSA9IDA7IGkgPCBtdXRhdGlvbi5hZGRlZE5vZGVzLmxlbmd0aDsgaSsrKSB7CgkJCQkJCWxldCBub2RlID0gbXV0YXRpb24uYWRkZWROb2Rlc1tpXTsKCQkJCQkJaWYgKG5vZGUubm9kZVR5cGUgPT09IDEgJiYgbm9kZS50YWdOYW1lID09PSAnU0NSSVBUJyAmJiBub2RlLnNyYyAmJiBub2RlLnNyYy5pbmNsdWRlcygnY2FuYWRhLmRpZ2l0YWwtaW50ZXJ2aWV3LmNvbScpICYmIHR5cGVvZiBPbmVUcnVzdCAhPT0gJ3VuZGVmaW5lZCcpIHsKCQkJCQkJCXNldFRpbWVvdXQoZnVuY3Rpb24oKXsKCQkJCQkJCQl0cnl7RGlnaXRhbEludGVydmlldy5MYXVuY2hlci5lbmFibGVMYXVuY2hQb2ludHMoKTt9Y2F0Y2goZSl7fQoJCQkJCQkJfSwgMTAwMCk7CgkJCQkJCX0KCQkJCQl9CgkJCQl9CgkJCX0pOwoJCX0pOwoJCS8vIFN0YXJ0IG9ic2VydmluZyB0aGUgZG9jdW1lbnQgd2l0aCB0aGUgY29uZmlndXJlZCBwYXJhbWV0ZXJzCgkJb2JzZXJ2ZXIub2JzZXJ2ZShkb2N1bWVudC5ib2R5LCB7IGNoaWxkTGlzdDogdHJ1ZSwgc3VidHJlZTogdHJ1ZSB9KTsKCQlvYnNlcnZlci5vYnNlcnZlKGRvY3VtZW50LmhlYWQsIHsgY2hpbGRMaXN0OiB0cnVlLCBzdWJ0cmVlOiB0cnVlIH0pOwoJfSk7CgovKjwhW0NEQVRBWyovCi8vZGF0YS1zY29kZXJlZj0iWlpaLTQxNTU2NDgiCnZhciBjdXJyZW50U2l0ZUlEPTY3Nzt2YXIgZDJjX2dhQWNjb3VudHM9eyJhbGwiOltdLCJpbnRlcm5hbCI6W119O3ZhciBkMmNfYXdjSWQ9J0FXLTc5NTM4MTQ1Nic7dmFyIGQyY19hd2NMYWJlbD0na0NESUNLWG90WVlCRU5DZG92c0MnO3ZhciBsZWdhY3lfZ2E9ZmFsc2U7d2luZG93LmRhdGFMYXllcj13aW5kb3cuZGF0YUxheWVyfHxbXTtmdW5jdGlvbiBndGFnKCl7ZGF0YUxheWVyLnB1c2goYXJndW1lbnRzKTt9Cmd0YWcoJ2pzJyxuZXcgRGF0ZSgpKTtkMmNfZ2FBY2NvdW50cy5hbGwucHVzaCgnRy1aNVE4WjVDN0tGJyk7ZDJjX2dhQWNjb3VudHMuYWxsLnB1c2goJ0ctWUxOUDVOTlpYTCcpO2lmKGQyY19hd2NJZCl7ZDJjX2dhQWNjb3VudHMuYWxsLnB1c2goZDJjX2F3Y0lkKTt9CihkMmNfZ2FBY2NvdW50cy5hbGx8fFtdKS5tYXAoZnVuY3Rpb24oaWQpe2d0YWcoJ2NvbmZpZycsaWQseydzZW5kX3BhZ2Vfdmlldyc6ZmFsc2UsJ2xpbmtlcic6eydkb21haW5zJzpKU09OLnBhcnNlKGF0b2IoIlcxMD0iKSksJ2Nvb2tpZV9kb21haW4nOid3d3cuc2l0dGVsbGVtYXpkYS5jYSd9fSk7fSk7Ci8qXV0+Ki8KCi8qPCFbQ0RBVEFbKi8KLy9kYXRhLXNjb2RlcmVmPSJGTFQtMTU2NjQ1ODg5OTY0NTM0MTE1Mzg2Igp2YXIgZG9jUmVhZHlBcnI9W107dmFyIHBhZ2U9Ik5FV0NBUlMiO3ZhciBmYkNoYXRSZWY9e307dmFyIGRlcGxveW1lbnRUeXBlPSdsaXZlJzt2YXIgY3VycmVudFNpdGVJRD02Nzc7dmFyIGN1cnJlbnREZWFsZXJJRD0yMjkxO3ZhciBnYVR5cGU9J2d0YWcnO3ZhciBhbGxDYW1wYWlnbnM9W1sic2l0dGVsbGVtYXpkYS5jYSIsIkNvdXJyaWVscy1yZWxhbmNlIiwiVG91dGVzIiwiNjM3MCJdLFsic2l0dGVsbGVtYXpkYS5jYSIsIkNvdXJyaWVscy1yZWxhbmNlIiwiTmV1ZnMiLCI2MzcxIl0sWyJzaXR0ZWxsZW1hemRhLmNhIiwiQ291cnJpZWxzLXJlbGFuY2UiLCJPY2Nhc2lvbiIsIjYzNzIiXSxbInNpdHRlbGxlbWF6ZGEuY2EiLCJTRU0iLCJBZ2VuY3kiLCI2Mzc0Il0sWyJzaXR0ZWxsZW1hemRhLmNhIiwiVHJhZGVyIiwiUmV0YXJnZXRpbmciLCI2Mzc3Il0sWyJzaXR0ZWxsZW1hemRhLmNhIiwiQmluZyIsIkJpbmciLCI2MzgwIl0sWyJTaXR0ZWxsZW1hemRhLmNhIiwiR29vZ2xlIiwiTmV1ZiIsIjY0MjUiXSxbIlNpdHRlbGxlbWF6ZGEuY2EiLCJHb29nbGUiLCJPY2Nhc2lvbiIsIjY2NzEiXSxbIlNpdHRlbGxlbWF6ZGEuY2EiLCJHb29nbGUiLCJDb21wZXRpdGV1cnMiLCI4NzE0Il0sWyJTaXR0ZWxsZW1hemRhLmNhIiwiRmFjZWJvb2siLCJOZXVmIiwiMjAzMzIiXSxbIlNpdHRlbGxlbWF6ZGEuY2EiLCJHb29nbGUiLCJTZXJ2aWNlIiwiMzE1MzUiXSxbIlNpdHRlbGxlbWF6ZGEuY2EiLCJGYWNlYm9vayIsIlNlcnZpY2UiLCIzMTYwOCJdLFsiU2l0dGVsbGVtYXpkYS5jYSIsIkdvb2dsZSIsIlZsYS1uZXVmIiwiMzUwNDkiXSxbIlNpdHRlbGxlbWF6ZGEuY2EiLCJHb29nbGUiLCJQbWF4LW5ldWYiLCIzNjAwNCJdXQp2YXIgcmV0YXJnZXRpbmdDYW1wYWlnbnM9W10KdmFyIEFJQ3VycmVudENvbmZpZ0lEPTA7dmFyIEFJSURQZXJOZXdDYXJzRnJlbmNoPW5ldyBBcnJheSgpO3ZhciBBSUlEUGVyTmV3Q2Fyc0VuZ2xpc2g9bmV3IEFycmF5KCk7ZnVuY3Rpb24gcGFyc2VRdWVyeShzdHIpe2lmKHN0ci5sZW5ndGg8MSlyZXR1cm57fQp2YXIgdmFycz17fSx2O3ZhciBxcz1zdHIuc3BsaXQoJyYnKTtmb3IodmFyIGk9MDtpPHFzLmxlbmd0aDtpKyspe3Y9ZXhwbG9kZShxc1tpXSwnPScsMSk7dmFyc1t2WzBdXT12WzFdO30KcmV0dXJuIHZhcnM7fQpmdW5jdGlvbiBkZWNvZGVTdHJpbmcoc3RyaW5nLHRpbWVzKXtpZih0aW1lcz09IiJ8fHRpbWVzPT0idW5kZWZpbmVkIil7dGltZXM9MTt9CmZvcihpPTA7aTx0aW1lcztpKyspe3N0cmluZz1kZWNvZGVVUklDb21wb25lbnQoc3RyaW5nKTt9CnJldHVybiBzdHJpbmc7fQpmdW5jdGlvbiBkZWNvZGVIVE1MKGVuY29kZWQpe2lmKHR5cGVvZiBlbmNvZGVkIT09J3N0cmluZycpcmV0dXJuIGVuY29kZWQ7dmFyIGVsPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RleHRhcmVhJyk7ZWwuaW5uZXJIVE1MPWVuY29kZWQ7cmV0dXJuIGVsLnZhbHVlO30KZnVuY3Rpb24gZXhwbG9kZShzdHIsc2VwYXJhdG9yLGxpbWl0KXtzdHI9c3RyLnNwbGl0KHNlcGFyYXRvcik7aWYoc3RyLmxlbmd0aDw9bGltaXQpcmV0dXJuIHN0cjt2YXIgcmV0PXN0ci5zcGxpY2UoMCxsaW1pdCk7cmV0LnB1c2goc3RyLmpvaW4oc2VwYXJhdG9yKSk7cmV0dXJuIHJldDt9CmZ1bmN0aW9uIGdldFVybFZhcnMoKXt2YXIgcXM9KHdpbmRvdy5sb2NhdGlvbi5zZWFyY2gpLnN1YnN0cmluZygxKTtyZXR1cm4gcGFyc2VRdWVyeShxcyk7fQpmdW5jdGlvbiBnZXRDb29raWUoY19uYW1lKXtyZXR1cm4gQ29va2llcy5nZXQoY19uYW1lKTt9CmZ1bmN0aW9uIGdldENvb2tpZShjX25hbWUpe3ZhciBjX3ZhbHVlPWRvY3VtZW50LmNvb2tpZTt2YXIgY19zdGFydD1jX3ZhbHVlLmluZGV4T2YoIiAiK2NfbmFtZSsiPSIpO2lmKGNfc3RhcnQ9PS0xKXtjX3N0YXJ0PWNfdmFsdWUuaW5kZXhPZihjX25hbWUrIj0iKTt9CmlmKGNfc3RhcnQ9PS0xKXtjX3ZhbHVlPW51bGw7fWVsc2V7Y19zdGFydD1jX3ZhbHVlLmluZGV4T2YoIj0iLGNfc3RhcnQpKzE7dmFyIGNfZW5kPWNfdmFsdWUuaW5kZXhPZigiOyIsY19zdGFydCk7aWYoY19lbmQ9PS0xKXtjX2VuZD1jX3ZhbHVlLmxlbmd0aDt9CmNfdmFsdWU9dW5lc2NhcGUoY192YWx1ZS5zdWJzdHJpbmcoY19zdGFydCxjX2VuZCkpO30KcmV0dXJuIGNfdmFsdWU7fQpmdW5jdGlvbiBzZXRDb29raWUoY19uYW1lLHZhbHVlLGV4ZGF5cyl7aXNDb29raWVBbGxvd2VkKGNfbmFtZSxmdW5jdGlvbihhbGxvd2VkKXtpZighYWxsb3dlZCl7cmV0dXJuIENvb2tpZXMuc2V0KGNfbmFtZSx2YWx1ZSxleGRheXMsJy8nKTtsb2dDb29raWUoY19uYW1lLHZhbHVlLGV4ZGF5cyk7cmV0dXJuO30KdmFyIGV4ZGF0ZT1uZXcgRGF0ZSgpO2V4ZGF0ZS5zZXREYXRlKGV4ZGF0ZS5nZXREYXRlKCkrZXhkYXlzKTt2YXIgY192YWx1ZT1lc2NhcGUodmFsdWUpKygoZXhkYXlzPT1udWxsKT8iIjoiOyBleHBpcmVzPSIrZXhkYXRlLnRvVVRDU3RyaW5nKCkpKyI7IHBhdGg9LyI7ZG9jdW1lbnQuY29va2llPWNfbmFtZSsiPSIrY192YWx1ZTt9KTt9CmZ1bmN0aW9uIGxvZ0Nvb2tpZShuYW1lLHZhbHVlLGV4cGlyZXMsdHJpZXMpe2lmKHR5cGVvZiB0cmllcz09PSd1bmRlZmluZWQnKXt0cmllcz01O30KaWYodHlwZW9mIHdpbmRvdy5Db29raWVMb2dnZXI9PT0ndW5kZWZpbmVkJyl7aWYodHJpZXMpe3NldFRpbWVvdXQoZnVuY3Rpb24oKXtsb2dDb29raWUobmFtZSx2YWx1ZSxleHBpcmVzLHRyaWVzLTEpO30sMTAwMCk7fX1lbHNle3dpbmRvdy5Db29raWVMb2dnZXIubG9nKG5hbWUsdmFsdWUsZXhwaXJlcyk7fX0KZnVuY3Rpb24gaXNDb29raWVBbGxvd2VkKG5hbWUsY2FsbGJhY2ssdHJpZXMpe2lmKHR5cGVvZiB3aW5kb3cuQ29va2llQ29uc2VudD09PSd1bmRlZmluZWQnKXtpZih0eXBlb2YgdHJpZXM9PT0ndW5kZWZpbmVkJyl7dHJpZXM9NTt9CmlmKHRyaWVzKXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7aXNDb29raWVBbGxvd2VkKG5hbWUsY2FsbGJhY2ssdHJpZXMtMSk7fSwxMDAwKTt9fWVsc2V7d2luZG93LkNvb2tpZUNvbnNlbnQuaXNDb29raWVBbGxvd2VkKG5hbWUsY2FsbGJhY2spO319CmZ1bmN0aW9uIGdhUGFnZVZpZXcocHApeyhkMmNfZ2FBY2NvdW50cy5hbGx8fFtdKS5tYXAoZnVuY3Rpb24oaWQpe2xldCBkPXtwYWdlX3BhdGg6cHB9O2lmKGRlcGxveW1lbnRUeXBlIT0nbGl2ZSd8fCdVUychPSdDQScpe2NvbnNvbGUubG9nKCdndGFnJywnY29uZmlnJyxpZCxkKQpyZXR1cm47fQpndGFnKCdjb25maWcnLGlkLGQpO30pO307ZnVuY3Rpb24gZ2E0UGFnZVZpZXcocHApe2lmKGRlcGxveW1lbnRUeXBlIT0nbGl2ZSd8fCdVUychPSdDQScpe3JldHVybjt9Cmd0YWcoJ3NldCcseydwYWdlX3BhdGgnOnBwfSk7Z3RhZygnZXZlbnQnLCdwYWdlX3ZpZXcnLHsnc2VuZF90byc6J0ctWUxOUDVOTlpYTCd9KTt9CmZ1bmN0aW9uIGdldEdhQ2xpZW50SWQoKXtyZXR1cm4oKCh0eXBlb2Ygd2luZG93LmdhPT09J29iamVjdCcmJndpbmRvdy5nYSE9PW51bGwpfHx0eXBlb2Ygd2luZG93LmdhPT09J2Z1bmN0aW9uJykmJnR5cGVvZiBnYVsnZ2V0QWxsJ109PT0nZnVuY3Rpb24nKT9nYS5nZXRBbGwoKVswXS5nZXQoJ2NsaWVudElkJyk6Jyc7fQpmdW5jdGlvbiBnYVRyYWNrKGFhLGMsYSxsLHYpe2xldCBhYz1bXTtjb25zdCBjcz1kZXBsb3ltZW50VHlwZSE9J2xpdmUnfHwnVVMnIT0nQ0EnO2NvbnN0IGNoPShvLGQpPT50eXBlb2YgbyE9PSd1bmRlZmluZWQnP286ZDthYT1jaChhYSwnJyk7Yz1jaChjLCcnKTthPWNoKGEsJycpO2w9Y2gobCwnJyk7dj1jaCh2LDEpO2lmKGFhPT0naW50ZXJuYWwnKXthYz1kMmNfZ2FBY2NvdW50cy5pbnRlcm5hbDt9ZWxzZSBpZihhYS5sZW5ndGgmJi9eKGJ8Y3xkKVwuX3RyYWNrRXZlbnQvLnRlc3QoYWEpJiZ0eXBlb2YgZDJjX2dhQWNjb3VudHNbYWFbMF1dIT0ndW5kZWZpbmVkJyl7YWMucHVzaChkMmNfZ2FBY2NvdW50c1thYVswXV0pO30KaWYoYWMubGVuZ3RoKXthYy5tYXAoKGlkKT0+e2NvbnN0IGQ9e3NlbmRfdG86aWQsZXZlbnRfYWN0aW9uOmEsZXZlbnRfY2F0ZWdvcnk6YyxldmVudF9sYWJlbDpsLHZhbHVlOnZ9O2lmKGNzKXtjb25zb2xlLmxvZyhgR0FUUkFDSy1HVEFHLVNFTkQtVE9bJHtpZH1dOmAsJ2V2ZW50JyxhLGQpO3JldHVybjt9Cmd0YWcoJ2V2ZW50JyxhLGQpO30pO31lbHNle2NvbnN0IGQ9e2V2ZW50X2FjdGlvbjphLGV2ZW50X2NhdGVnb3J5OmMsZXZlbnRfbGFiZWw6bCx2YWx1ZTp2fTtpZihjcyl7Y29uc29sZS5sb2coJ0dBVFJBQ0stR1RBRy1OTy1TRU5ELVRPOicsJ2V2ZW50JyxhLGQpO31lbHNle2d0YWcoJ2V2ZW50JyxhLGQpO319fTtmdW5jdGlvbiBvbkNvbmZpcm1TdWJtaXQoZXZlbnQpe3JldHVybiB0cnVlO30KZnVuY3Rpb24gc2V0U2Vzc2lvbkNvb2tpZShjX25hbWUsdmFsdWUpe3ZhciBleGRheXM9bnVsbDt2YXIgY192YWx1ZT1lc2NhcGUodmFsdWUpKyI7ZXhwaXJlcz0wO3BhdGg9LyI7ZG9jdW1lbnQuY29va2llPWNfbmFtZSsiPSIrY192YWx1ZTtsb2dDb29raWUoY19uYW1lKTt9CmZ1bmN0aW9uIGluaXRMQ0kocGFyYW1zLG4pe2lmKG4+MjApcmV0dXJuIG47dmFyIG49KG4pP246MDtpZih0eXBlb2YgTENfQVBJPT0ndW5kZWZpbmVkJ3x8dHlwZW9mIExDX0ludml0ZT09J3VuZGVmaW5lZCcpe3NldFRpbWVvdXQoZnVuY3Rpb24oKXtpbml0TENJKHBhcmFtcywrK24pO30sNTAwKTtyZXR1cm47fQppZih0eXBlb2YgTENfQVBJIT0ndW5kZWZpbmVkJyYmdHlwZW9mIExDX0ludml0ZSE9J3VuZGVmaW5lZCcmJnBhcmFtcyl7cmV0dXJuIExDX0FQSS5zZXRfY3VzdG9tX3ZhcmlhYmxlcyhwYXJhbXMpO319CmZ1bmN0aW9uIHNhbml0aXplUmVmZXJlcihyZWZlcmVyKXtyZXR1cm4gcmVmZXJlci5yZXBsYWNlKC9bJyJgKCk8PlxbXF17fXwhXS9nLCcnKTt9CmZ1bmN0aW9uIGdldFJlZmVycmVyVmFyRnVuY3Rpb24ocmVmZXJlcil7cmV0dXJuIGZ1bmN0aW9uKCl7aWYoJyc9PXJlZmVyZXIpcmVmZXJlcj1kb2N1bWVudC5yZWZlcnJlcjtyZWZlcmVyPXNhbml0aXplUmVmZXJlcihyZWZlcmVyKTt2YXIgcXMscXNpbmRleD1yZWZlcmVyLmluZGV4T2YoJz8nKSsxO2lmKHFzaW5kZXg+MCl7dmFyIHFzPXJlZmVyZXIuc2xpY2UocXNpbmRleCk7cmV0dXJuIHBhcnNlUXVlcnkocXMpO30KcmV0dXJue319fQp2YXIgZ2V0UmVmZXJlclZhcnM9Z2V0UmVmZXJyZXJWYXJGdW5jdGlvbignJyk7dmFyIHV0bV9sYW5kaW5nX2Nvb2tpZT0oZ2V0Q29va2llKCd1dG1fbGFuZGluZycpIT1udWxsJiZ0eXBlb2YgZ2V0Q29va2llKCd1dG1fbGFuZGluZycpIT0ndW5kZWZpbmVkJz9nZXRDb29raWUoJ3V0bV9sYW5kaW5nJyk6JycpO2lmKHV0bV9sYW5kaW5nX2Nvb2tpZS5sZW5ndGg9PTApe3NldENvb2tpZSgndXRtX2xhbmRpbmcnLHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSk7fQppZihkZXBsb3ltZW50VHlwZT09J2xpdmUnKXt2YXIgZ2VuZXJhdGVHVUlEPWZ1bmN0aW9uKCl7dmFyIFM0PWZ1bmN0aW9uKCl7cmV0dXJuIE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSoweDEwMDAwKS50b1N0cmluZygxNik7fTtyZXR1cm4oUzQoKStTNCgpKyItIisKUzQoKSsiLSIrClM0KCkrIi0iKwpTNCgpKyItIisKUzQoKStTNCgpK1M0KCkpO30KdmFyIHVybFZhcnM9Z2V0VXJsVmFycygpO3ZhciByZWZlcmVyVmFycz1nZXRSZWZlcmVyVmFycygpO3ZhciByZWZlcmVyPScnO3ZhciByYXdSZWZlcnJlcj1yZWZlcmVyO3JlZmVyZXI9KHJlZmVyZXIubGVuZ3RoPDE\/MDpyZWZlcmVyKTtpZignJz09cmF3UmVmZXJyZXIpcmF3UmVmZXJyZXI9ZG9jdW1lbnQucmVmZXJyZXI7dmFyIGl0ZW1UeXBlPSdjYXInO2l0ZW1UeXBlPShpdGVtVHlwZS5sZW5ndGg8MT8wOml0ZW1UeXBlKTtpZihpc05hTihyZWZlcmVyKSl7cmVmZXJlcj1yZWZlcmVyLnJlcGxhY2UoL1wvL2csInwiKS5yZXBsYWNlKC9cPy9nLCJfXyIpLnJlcGxhY2UoL1x0L2csJycpLnJlcGxhY2UoL1xuL2csJycpLnJlcGxhY2UoL1xyL2csJycpLnJlcGxhY2VBbGwoJyUwQScsJycpLnJlcGxhY2VBbGwoJyUwOScsJycpLnJlcGxhY2VBbGwoJyUwQicsJycpLnJlcGxhY2VBbGwoJyUwMCcsJycpLnJlcGxhY2VBbGwoJyUwRCcsJycpO30KdmFyIG1ha2U9IiI7aWYobWFrZS5sZW5ndGg9PTApbWFrZT0iMCI7dmFyIG1vZGVsPSIiO2lmKG1vZGVsLmxlbmd0aD09MCltb2RlbD0iMCI7dmFyIHllYXI9IiI7aWYoeWVhci5sZW5ndGg9PTApeWVhcj0iMCI7dmFyIGlzbW9iaWxlPSIiO2lmKGlzbW9iaWxlLmxlbmd0aD09MClpc21vYmlsZT0iMCI7dmFyIG9yaWdTb3VyY2U9IiI7dmFyIG9yaWdDYW1wYWlnbj0iIjt2YXIgb3JpZ0tleXdvcmQ9IiI7aWYodXJsVmFyc1sicmVsYW5jZUlEIl0hPXVuZGVmaW5lZCkKc2V0Q29va2llKCdyZWxhbmNlSUQnLHVybFZhcnNbInJlbGFuY2VJRCJdLDE4MCk7dmFyIHNvdXJjZT0oZ2V0Q29va2llKCd1dG1fc291cmNlJykhPW51bGwmJnR5cGVvZiBnZXRDb29raWUoJ3V0bV9zb3VyY2UnKSE9J3VuZGVmaW5lZCc\/Z2V0Q29va2llKCd1dG1fc291cmNlJyk6JycpO3ZhciBzb3VyY2VDb29raWU9c291cmNlO3ZhciBzb3VyY2VVUkw9IiI7aWYoInV0bV9zb3VyY2UiaW4gdXJsVmFycyl7aWYoc291cmNlLmxlbmd0aD09MClzb3VyY2U9dXJsVmFyc1sndXRtX3NvdXJjZSddO3NvdXJjZVVSTD11cmxWYXJzWyd1dG1fc291cmNlJ107fQp2YXIgY2FtcGFpZ249KGdldENvb2tpZSgndXRtX2NhbXBhaWduJykhPW51bGwmJnR5cGVvZiBnZXRDb29raWUoJ3V0bV9jYW1wYWlnbicpIT0ndW5kZWZpbmVkJz9nZXRDb29raWUoJ3V0bV9jYW1wYWlnbicpOicnKTtpZihjYW1wYWlnbi50b0xvd2VyQ2FzZSgpPT0nZWNvbGUtZXR1ZGlhbnQnKXtjYW1wYWlnbj0nJztzZXRDb29raWUoJ3V0bV9jYW1wYWlnbicsIiIsMSk7fQp2YXIgY2FtcGFpZ25Db29raWU9Y2FtcGFpZ247dmFyIGNhbXBhaWduVVJMPSIiO2lmKCJ1dG1fY2FtcGFpZ24iaW4gdXJsVmFycyl7aWYoY2FtcGFpZ24ubGVuZ3RoPT0wKWNhbXBhaWduPXVybFZhcnNbJ3V0bV9jYW1wYWlnbiddO2NhbXBhaWduVVJMPXVybFZhcnNbJ3V0bV9jYW1wYWlnbiddO30KdmFyIG1lZGl1bT0oZ2V0Q29va2llKCd1dG1fbWVkaXVtJykhPW51bGwmJnR5cGVvZiBnZXRDb29raWUoJ3V0bV9tZWRpdW0nKSE9J3VuZGVmaW5lZCc\/Z2V0Q29va2llKCd1dG1fbWVkaXVtJyk6JycpO3ZhciBtZWRpdW1Db29raWU9bWVkaXVtO3ZhciBtZWRpdW1VUkw9IiI7aWYoInV0bV9tZWRpdW0iaW4gdXJsVmFycyl7aWYobWVkaXVtLmxlbmd0aD09MCltZWRpdW09dXJsVmFyc1sndXRtX21lZGl1bSddO21lZGl1bVVSTD11cmxWYXJzWyd1dG1fbWVkaXVtJ107fQp2YXIgY29va2llSW5DYW1wYWlnbnM9ZmFsc2U7dmFyIHVybEluQ2FtcGFpZ25zPWZhbHNlO3ZhciBoYXNHb29nbGVPcmdhbmljPWZhbHNlO2Zvcih2YXIgaT0wO2k8YWxsQ2FtcGFpZ25zLmxlbmd0aDtpKyspe2lmKGFsbENhbXBhaWduc1tpXVsxXS50b0xvd2VyQ2FzZSgpPT1zb3VyY2VVUkwudG9Mb3dlckNhc2UoKSYmYWxsQ2FtcGFpZ25zW2ldWzJdLnRvTG93ZXJDYXNlKCk9PWNhbXBhaWduVVJMLnRvTG93ZXJDYXNlKCkpdXJsSW5DYW1wYWlnbnM9dHJ1ZTtpZihhbGxDYW1wYWlnbnNbaV1bMV0udG9Mb3dlckNhc2UoKT09c291cmNlQ29va2llLnRvTG93ZXJDYXNlKCkmJmFsbENhbXBhaWduc1tpXVsyXS50b0xvd2VyQ2FzZSgpPT1jYW1wYWlnbkNvb2tpZS50b0xvd2VyQ2FzZSgpKWNvb2tpZUluQ2FtcGFpZ25zPXRydWU7aWYoYWxsQ2FtcGFpZ25zW2ldWzFdLnRvTG93ZXJDYXNlKCk9PSdnb29nbGUnJiZhbGxDYW1wYWlnbnNbaV1bMl0udG9Mb3dlckNhc2UoKT09J29yZ2FuaXF1ZScpaGFzR29vZ2xlT3JnYW5pYz10cnVlO30KaWYoc291cmNlVVJMPT0iIiYmY2FtcGFpZ25VUkw9PSIiJiZzb3VyY2U9PSIiJiZjYW1wYWlnbj09IiImJmhhc0dvb2dsZU9yZ2FuaWMpe3NvdXJjZVVSTD0iR29vZ2xlIjtjYW1wYWlnblVSTD0iT3JnYW5pcXVlIjt1cmxJbkNhbXBhaWducz10cnVlO30KaWYoY29va2llSW5DYW1wYWlnbnM9PWZhbHNlJiZ1cmxJbkNhbXBhaWducz09dHJ1ZSl7c291cmNlPXNvdXJjZVVSTDtjYW1wYWlnbj1jYW1wYWlnblVSTDtzb3VyY2VDb29raWU9c291cmNlVVJMO2NhbXBhaWduQ29va2llPWNhbXBhaWduVVJMO30KaWYoc291cmNlQ29va2llLnRvTG93ZXJDYXNlKCk9PSdzZW0nJiZzb3VyY2VVUkwudG9Mb3dlckNhc2UoKT09J2dvb2dsZScmJnVybEluQ2FtcGFpZ25zKXtzb3VyY2U9c291cmNlVVJMO2NhbXBhaWduPWNhbXBhaWduVVJMO30KdmFyIGN1cnJlbnRTaXRlSUQ9Njc3O2lmKChjdXJyZW50U2l0ZUlEPT01OTJ8fGN1cnJlbnRTaXRlSUQ9PTQzN3x8Y3VycmVudFNpdGVJRD09NTc5fHxjdXJyZW50U2l0ZUlEPT01ODUpJiZzb3VyY2VDb29raWUudG9Mb3dlckNhc2UoKT09J3NlbScpe3NvdXJjZUNvb2tpZT0nR29vZ2xlJztzb3VyY2U9J0dvb2dsZSc7Y2FtcGFpZ25Db29raWU9J05ldWYnO2NhbXBhaWduPSdOZXVmJzt9CmlmKGNhbXBhaWduQ29va2llLnRvTG93ZXJDYXNlKCk9PSdvcmdhbmljJ3x8Y2FtcGFpZ25Db29raWUudG9Mb3dlckNhc2UoKT09J29yZ2FuaXF1ZScpe3NvdXJjZUNvb2tpZT0nJztjYW1wYWlnbkNvb2tpZT0nJzttZWRpdW1Db29raWU9Jyc7fQppZihzb3VyY2UubGVuZ3RoPjAmJihzb3VyY2VDb29raWUubGVuZ3RoPT0wfHxzb3VyY2VDb29raWU9PXNvdXJjZSkpc2V0Q29va2llKCd1dG1fc291cmNlJyxzb3VyY2UsMTgwKTtpZihjYW1wYWlnbi5sZW5ndGg+MCYmKGNhbXBhaWduQ29va2llLmxlbmd0aD09MHx8Y2FtcGFpZ25Db29raWU9PWNhbXBhaWduKSlzZXRDb29raWUoJ3V0bV9jYW1wYWlnbicsY2FtcGFpZ24sMTgwKTtpZihtZWRpdW0ubGVuZ3RoPjAmJihtZWRpdW1Db29raWUubGVuZ3RoPT0wfHxtZWRpdW1Db29raWU9PW1lZGl1bSkpc2V0Q29va2llKCd1dG1fbWVkaXVtJyxtZWRpdW0sMTgwKTt2YXIga2V5d29yZD0oZ2V0Q29va2llKCd1dG1fa2V5d29yZCcpIT1udWxsJiZ0eXBlb2YgZ2V0Q29va2llKCd1dG1fa2V5d29yZCcpIT0ndW5kZWZpbmVkJz9nZXRDb29raWUoJ3V0bV9rZXl3b3JkJyk6JycpO2lmKCJrdyJpbiB1cmxWYXJzKXtrZXl3b3JkPWRlY29kZVN0cmluZyh1cmxWYXJzWydrdyddLDMpO30KaWYoa2V5d29yZC5sZW5ndGg+MClzZXRDb29raWUoJ3V0bV9rZXl3b3JkJyxrZXl3b3JkLDE4MCk7dmFyIGlzUmV0YXJnZXRpbmc9ZmFsc2U7Zm9yKHZhciBpPTA7aTxyZXRhcmdldGluZ0NhbXBhaWducy5sZW5ndGg7aSsrKXtpZihyZXRhcmdldGluZ0NhbXBhaWduc1tpXVsxXS50b0xvd2VyQ2FzZSgpPT1zb3VyY2VVUkwudG9Mb3dlckNhc2UoKSYmcmV0YXJnZXRpbmdDYW1wYWlnbnNbaV1bMl0udG9Mb3dlckNhc2UoKT09Y2FtcGFpZ25VUkwudG9Mb3dlckNhc2UoKSlpc1JldGFyZ2V0aW5nPXRydWU7fQppZihpc1JldGFyZ2V0aW5nKXt2YXIgc291cmNlUmV0YXJnZXRpbmc9KGdldENvb2tpZSgndXRtX3NvdXJjZV9yZXRhcmdldGluZycpIT1udWxsJiZ0eXBlb2YgZ2V0Q29va2llKCd1dG1fc291cmNlX3JldGFyZ2V0aW5nJykhPSd1bmRlZmluZWQnP2dldENvb2tpZSgndXRtX3NvdXJjZV9yZXRhcmdldGluZycpOicnKTt2YXIgY2FtcGFpZ25SZXRhcmdldGluZz0oZ2V0Q29va2llKCd1dG1fY2FtcGFpZ25fcmV0YXJnZXRpbmcnKSE9bnVsbCYmdHlwZW9mIGdldENvb2tpZSgndXRtX2NhbXBhaWduX3JldGFyZ2V0aW5nJykhPSd1bmRlZmluZWQnP2dldENvb2tpZSgndXRtX2NhbXBhaWduX3JldGFyZ2V0aW5nJyk6JycpO2lmKHNvdXJjZSE9c291cmNlVVJMfHxjYW1wYWlnbiE9Y2FtcGFpZ25VUkwpe2lmKHNvdXJjZVVSTC5sZW5ndGg+MCYmc291cmNlUmV0YXJnZXRpbmcubGVuZ3RoPT0wKXNldENvb2tpZSgndXRtX3NvdXJjZV9yZXRhcmdldGluZycsc291cmNlVVJMLDE4MCk7aWYoY2FtcGFpZ25VUkwubGVuZ3RoPjAmJmNhbXBhaWduUmV0YXJnZXRpbmcubGVuZ3RoPT0wKXNldENvb2tpZSgndXRtX2NhbXBhaWduX3JldGFyZ2V0aW5nJyxjYW1wYWlnblVSTCwxODApO30Kc2V0Q29va2llKCd1dG1fc291cmNlJyxzb3VyY2VVUkwsMTgwKTtzZXRDb29raWUoJ3V0bV9jYW1wYWlnbicsY2FtcGFpZ25VUkwsMTgwKTt9CnZhciBzb3VyY2VSZXRhcmdldGluZz0oZ2V0Q29va2llKCd1dG1fc291cmNlX3JldGFyZ2V0aW5nJykhPW51bGwmJnR5cGVvZiBnZXRDb29raWUoJ3V0bV9zb3VyY2VfcmV0YXJnZXRpbmcnKSE9J3VuZGVmaW5lZCc\/Z2V0Q29va2llKCd1dG1fc291cmNlX3JldGFyZ2V0aW5nJyk6JycpO3ZhciBjYW1wYWlnblJldGFyZ2V0aW5nPShnZXRDb29raWUoJ3V0bV9jYW1wYWlnbl9yZXRhcmdldGluZycpIT1udWxsJiZ0eXBlb2YgZ2V0Q29va2llKCd1dG1fY2FtcGFpZ25fcmV0YXJnZXRpbmcnKSE9J3VuZGVmaW5lZCc\/Z2V0Q29va2llKCd1dG1fY2FtcGFpZ25fcmV0YXJnZXRpbmcnKTonJyk7aWYoc291cmNlUmV0YXJnZXRpbmcubGVuZ3RoPjApc2V0Q29va2llKCd1dG1fc291cmNlX3JldGFyZ2V0aW5nJyxzb3VyY2VSZXRhcmdldGluZywxODApO2lmKGNhbXBhaWduUmV0YXJnZXRpbmcubGVuZ3RoPjApc2V0Q29va2llKCd1dG1fY2FtcGFpZ25fcmV0YXJnZXRpbmcnLGNhbXBhaWduUmV0YXJnZXRpbmcsMTgwKTtpZighc291cmNlKXtpZihyYXdSZWZlcnJlciE9Jycpe3ZhciBzZWxmSG9zdD0oZG9jdW1lbnQubG9jYXRpb24uaHJlZikubWF0Y2goL15bQS16XSs6XC9cLyhbXlwvXSspXC8\/LiovKTtpZihzZWxmSG9zdCl7c2VsZkhvc3Q9c2VsZkhvc3RbMV19CnZhciBob3N0PShyYXdSZWZlcnJlci50b1N0cmluZygpKS5tYXRjaCgvXltBLXpdKzpcL1wvKFteXC9dKylcLz8uKi8pO2lmKGhvc3Qpe2hvc3Q9aG9zdFsxXX1lbHNle2hvc3Q9c2VsZkhvc3Q7fQppZihob3N0IT1zZWxmSG9zdCl7aG9zdD1ob3N0LnNwbGl0KCcuJyk7aWYoaG9zdC5sZW5ndGg+Mil7c291cmNlPWhvc3RbMV07fQppZihob3N0Lmxlbmd0aD09Mil7c291cmNlPWhvc3RbMF07fQppZihzb3VyY2Upc2V0Q29va2llKCd1dG1fc291cmNlJyxzb3VyY2UsMTgwKTtpZighY2FtcGFpZ24pe2NhbXBhaWduPSdvcmdhbmljJztzZXRDb29raWUoJ3V0bV9jYW1wYWlnbicsY2FtcGFpZ24sMTgwKTt9fX19CmlmKHNvdXJjZS5sZW5ndGg9PTApc291cmNlPSIwIjtpZihjYW1wYWlnbi5sZW5ndGg9PTApY2FtcGFpZ249IjAiO2lmKHNvdXJjZVJldGFyZ2V0aW5nLmxlbmd0aD09MClzb3VyY2VSZXRhcmdldGluZz0iMCI7aWYoY2FtcGFpZ25SZXRhcmdldGluZy5sZW5ndGg9PTApY2FtcGFpZ25SZXRhcmdldGluZz0iMCI7aWYodXJsVmFyc1siRGlzcGxheVNvdXJjZSJdIT11bmRlZmluZWQpe2lmKGdldENvb2tpZSgnRGlzcGxheVNvdXJjZScpPT1udWxsfHx0eXBlb2YgZ2V0Q29va2llKCdEaXNwbGF5U291cmNlJyk9PSd1bmRlZmluZWQnKXtpZih1cmxWYXJzWyJ1dG1fY2FtcGFpZ24iXSE9dW5kZWZpbmVkJiYoZ2V0Q29va2llKCdEaXNwbGF5U291cmNlVVRNQ2FtcGFpZ24nKT09bnVsbHx8dHlwZW9mIGdldENvb2tpZSgnRGlzcGxheVNvdXJjZVVUTUNhbXBhaWduJyk9PSd1bmRlZmluZWQnKSlzZXRDb29raWUoJ0Rpc3BsYXlTb3VyY2VVVE1DYW1wYWlnbicsdXJsVmFyc1sidXRtX2NhbXBhaWduIl0sMTgwKTtpZih1cmxWYXJzWyJ1dG1fc291cmNlIl0hPXVuZGVmaW5lZCYmKGdldENvb2tpZSgnRGlzcGxheVNvdXJjZVVUTVNvdXJjZScpPT1udWxsfHx0eXBlb2YgZ2V0Q29va2llKCdEaXNwbGF5U291cmNlVVRNU291cmNlJyk9PSd1bmRlZmluZWQnKSlzZXRDb29raWUoJ0Rpc3BsYXlTb3VyY2VVVE1Tb3VyY2UnLHVybFZhcnNbInV0bV9zb3VyY2UiXSwxODApO30Kc2V0Q29va2llKCdEaXNwbGF5U291cmNlJyx1cmxWYXJzWyJEaXNwbGF5U291cmNlIl0sMTgwKTt9CnZhciBzZXRHY2xpZENvb2tpZT10cnVlO2lmKHVybFZhcnNbInV0bV9zb3VyY2UiXSE9dW5kZWZpbmVkKXtpZih1cmxWYXJzWyJ1dG1fc291cmNlIl09PSdTRU0nfHx1cmxWYXJzWyJ1dG1fc291cmNlIl09PSdUcmFkZXInfHx1cmxWYXJzWyJ1dG1fc291cmNlIl09PSdHb29nbGUtbmVyZG1hcmtldGluZycpe3NldEdjbGlkQ29va2llPWZhbHNlO319CmlmKHVybFZhcnNbImdjbGlkIl0hPXVuZGVmaW5lZCYmc2V0R2NsaWRDb29raWUpe3NldENvb2tpZSgnZ2NsaWQnLHVybFZhcnNbImdjbGlkIl0sMTgwKTt3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsZnVuY3Rpb24oZXZlbnQpe2lmKCd1bmRlZmluZWQnIT10eXBlb2YgYWN0aXZlVXNlclByb2ZpbGVNbmcpe3NhdmVHQ0xJRD1mdW5jdGlvbigpe2lmKCd1bmRlZmluZWQnPT10eXBlb2Ygd2luZG93LmpRdWVyeSl7cmV0dXJuO30KJC5wb3N0KCJodHRwczovL3Jlc3QuZDJjbWVkaWEuY2EvZ2NsaWQucmVzdC5hcGkucGhwIix7c2Vzc2lvbmlkOmFjdGl2ZVVzZXJQcm9maWxlTW5nLnNlc3Npb25pZCxnY2xpZDp1cmxWYXJzWydnY2xpZCddfSk7fTt0cnl7YWN0aXZlVXNlclByb2ZpbGVNbmcucmVnaXN0ZXJTZXNzaW9uQ2FsbGJhY2soc2F2ZUdDTElEKTt9Y2F0Y2goZXJyb3Ipe2NvbnNvbGUubG9nKGVycm9yKTt9fX0pO30Kd2luZG93LmFjdGl2ZVBhZ2U9cGFnZTt2YXIgdWlkPShnZXRDb29raWUoJ3VpZCcpIT1udWxsJiZ0eXBlb2YgZ2V0Q29va2llKCd1aWQnKSE9J3VuZGVmaW5lZCc\/Z2V0Q29va2llKCd1aWQnKTpnZW5lcmF0ZUdVSUQoKSk7c2V0Q29va2llKCd1aWQnLHVpZCwxODApO3ZhciBkZWFsZXJpZD0yMjkxO3ZhciBzaXRlaWQ9Njc3O3dpbmRvdy5hY3RpdmVTaXRlSUQ9c2l0ZWlkO3dpbmRvdy5hY3RpdmVEZWFsZXJJRD1kZWFsZXJpZDt2YXIgY2FyaWQ9Jyc7aWYoY2FyaWQubGVuZ3RoPT0wKWNhcmlkPSIwIjtmdW5jdGlvbiB0YWdCdWlsZChpbnRlcm5hbHMpe3JldHVybic8JysoaW50ZXJuYWxzLmpvaW4oJyAnKSkrJyAvPic7fQp2YXIgY2FjaGVDbGVhcmVyPU1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSo5OTk5OTk5KTt2YXIgYWRkVGtJbWc9ZnVuY3Rpb24oc3JjKXtzd2l0Y2goZG9jdW1lbnQucmVhZHlTdGF0ZSl7Y2FzZSJsb2FkaW5nIjpkb2N1bWVudC53cml0ZSh0YWdCdWlsZChbJ2ltZycsJ3N0eWxlPSJ3aWR0aDoxcHg7aGVpZ2h0OjFweDtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjBweDt0b3A6MHB4OyInLCdzcmM9Iicrc3JjKyciJywnYWx0PSIiJ10pKTticmVhaztjYXNlImludGVyYWN0aXZlIjpjYXNlImNvbXBsZXRlIjpkZWZhdWx0OnRyeXt2YXIgaW1nPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImltZyIpO2ltZy5zdHlsZS5jc3NUZXh0PSd3aWR0aDoxcHg7aGVpZ2h0OjFweDtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjBweDt0b3A6MHB4Oyc7aW1nLnNldEF0dHJpYnV0ZSgnc3JjJyxzcmMpO2ltZy5zZXRBdHRyaWJ1dGUoJ2FsdCcsJ1RyYWNraW5nIHBpeGVsJyk7ZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpbWcpO31jYXRjaChleCl7aWYoY29uc29sZSYmY29uc29sZS5sb2cpY29uc29sZS5sb2coIkVycm9yIHRrd2lkZ2V0OiAiK2V4Lm1lc3NhZ2UpO30KYnJlYWs7fX07Y2FtcGFpZ249Y2FtcGFpZ24ucmVwbGFjZSgvXHQvZywnJykucmVwbGFjZSgvXG4vZywnJykucmVwbGFjZSgvXHIvZywnJykucmVwbGFjZSgnJTBBJywnJykucmVwbGFjZSgnJTA5JywnJykucmVwbGFjZSgnJTBCJywnJykucmVwbGFjZSgnJTAwJywnJykucmVwbGFjZSgnJTBEJywnJyk7c291cmNlPXNvdXJjZS5yZXBsYWNlKC9cdC9nLCcnKS5yZXBsYWNlKC9cbi9nLCcnKS5yZXBsYWNlKC9cci9nLCcnKS5yZXBsYWNlKCclMEEnLCcnKS5yZXBsYWNlKCclMDknLCcnKS5yZXBsYWNlKCclMEInLCcnKS5yZXBsYWNlKCclMDAnLCcnKS5yZXBsYWNlKCclMEQnLCcnKTt2YXIgdGtzcmM9Jy9wcm94eV9zYXViL3dlYnNpdGVIaXRzLycrCmRlYWxlcmlkKyIvIitzaXRlaWQrIi8iK2NhcmlkKyIvIitlc2NhcGUodWlkKSsiLyIrcGFnZSsiLyIrZXNjYXBlKHNvdXJjZSkrIi8iK2VzY2FwZShjYW1wYWlnbikrIi8iK2VzY2FwZShtYWtlKSsiLyIrZXNjYXBlKG1vZGVsKSsiLyIreWVhcisiLyIrCmlzbW9iaWxlKyIvIitlbmNvZGVVUklDb21wb25lbnQocmVmZXJlcikrIi8iK2VzY2FwZShpdGVtVHlwZSkrIi8iK2VzY2FwZShzb3VyY2VSZXRhcmdldGluZykrIi8iK2VzY2FwZShjYW1wYWlnblJldGFyZ2V0aW5nKSsiLyIrY2FjaGVDbGVhcmVyKycuZ2lmJztpZih0eXBlb2YgYWN0aXZlVXNlclByb2ZpbGVNbmc9PSd1bmRlZmluZWQnfHwhYWN0aXZlVXNlclByb2ZpbGVNbmcuX2lzQm90KCkpYWRkVGtJbWcodGtzcmMpO3ZhciBrZXl3b3Jkcz0iIjtpZigicCJpbiByZWZlcmVyVmFycyYmcmVmZXJlci5pbmRleE9mKCJ5YWhvbyIpPi0xKXtrZXl3b3Jkcz1yZWZlcmVyVmFyc1sncCddO30KaWYoInEiaW4gcmVmZXJlclZhcnMmJihyZWZlcmVyLmluZGV4T2YoImdvb2dsZSIpPi0xfHxyZWZlcmVyLmluZGV4T2YoImJpbmciKT4tMSkpe2tleXdvcmRzPXJlZmVyZXJWYXJzWydxJ107fQp2YXIgdUxhbmc9KGdldENvb2tpZSgnbGFuZycpPT0nZW4nKT8nZW4nOidmcic7d2luZG93LmZiQ2hhdFJlZj17cjonc2l0ZScsYzpjYW1wYWlnbixzOnNvdXJjZX07dmFyIGN1c3RvbV92YXJpYWJsZXM9W3tuYW1lOidsYW5ndWFnZScsdmFsdWU6dUxhbmd9LHtuYW1lOid1dG1fY2FtcGFpZ24nLHZhbHVlOmNhbXBhaWdufSx7bmFtZTondXRtX3NvdXJjZScsdmFsdWU6c291cmNlfSx7bmFtZToncGFnZScsdmFsdWU6cGFnZX0se25hbWU6J3VpZCcsdmFsdWU6dWlkfSx7bmFtZTonY2FyaWQnLHZhbHVlOmNhcmlkfSx7bmFtZTonbWFrZScsdmFsdWU6bWFrZX0se25hbWU6J21vZGVsJyx2YWx1ZTptb2RlbH0se25hbWU6J3llYXInLHZhbHVlOnllYXJ9LHtuYW1lOidpc01vYmlsZVNpdGUnLHZhbHVlOmlzbW9iaWxlfV07d2luZG93LmNWYXJpYWJsZXM9Y3VzdG9tX3ZhcmlhYmxlczt3aW5kb3cucmVsYW5jZUhhbmRsZXJGbmM9ZnVuY3Rpb24oKXt2YXIgcmVsYW5jZUlEPShnZXRDb29raWUoJ3JlbGFuY2VJRCcpIT1udWxsJiZ0eXBlb2YgZ2V0Q29va2llKCdyZWxhbmNlSUQnKSE9J3VuZGVmaW5lZCc\/Z2V0Q29va2llKCdyZWxhbmNlSUQnKTowKTtpZih0eXBlb2YgYWN0aXZlVXNlclByb2ZpbGVNbmchPSd1bmRlZmluZWQnJiZ0eXBlb2YgYWN0aXZlVXNlclByb2ZpbGVNbmcubG9nUGFnZVZpZXdFdmVudCE9J3VuZGVmaW5lZCcpe2FjdGl2ZVVzZXJQcm9maWxlTW5nLmxvZ1BhZ2VWaWV3RXZlbnQocmVsYW5jZUlELCdyZWxhbmNlSUQnKTtpZih1cmxWYXJzWyJEaXNwbGF5U291cmNlIl0hPXVuZGVmaW5lZCl7YWN0aXZlVXNlclByb2ZpbGVNbmcubG9nUGFnZVZpZXdFdmVudCh1cmxWYXJzWyJEaXNwbGF5U291cmNlIl0sJ2Rpc3BsYXlTb3VyY2UnKTtpZih1cmxWYXJzWyJ1dG1fY2FtcGFpZ24iXSE9dW5kZWZpbmVkKWFjdGl2ZVVzZXJQcm9maWxlTW5nLmxvZ1BhZ2VWaWV3RXZlbnQodXJsVmFyc1sidXRtX2NhbXBhaWduIl0sJ3V0bV9jYW1wYWlnbicpO2lmKHVybFZhcnNbInV0bV9zb3VyY2UiXSE9dW5kZWZpbmVkKWFjdGl2ZVVzZXJQcm9maWxlTW5nLmxvZ1BhZ2VWaWV3RXZlbnQodXJsVmFyc1sidXRtX3NvdXJjZSJdLCd1dG1fc291cmNlJyk7fX0KZWxzZQpzZXRUaW1lb3V0KHdpbmRvdy5yZWxhbmNlSGFuZGxlckZuYywxMDAwKTt9O3ZhciBpbml0Rj1mdW5jdGlvbigpe2luaXRMQ0koY3VzdG9tX3ZhcmlhYmxlcyk7d2luZG93LnJlbGFuY2VIYW5kbGVyRm5jKCk7fTtpZih3aW5kb3cuYXR0YWNoRXZlbnQpd2luZG93LmF0dGFjaEV2ZW50KCdvbmxvYWQnLGluaXRGKTtlbHNlIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJyxpbml0RixmYWxzZSk7dmFyIGFpY3VycmVudHBhZ2U9J25ld2NhcnMuaHRtbCc7aWYoQUlDdXJyZW50Q29uZmlnSUQ+MCYmdHlwZW9mIGFjdGl2ZVVzZXJQcm9maWxlTW5nIT0ndW5kZWZpbmVkJyl7YWN0aXZlVXNlclByb2ZpbGVNbmcubG9nUGFnZVZpZXdFdmVudChBSUN1cnJlbnRDb25maWdJRCwnQUlDb25maWcnKTt9CmlmKEFJSURQZXJOZXdDYXJzRnJlbmNoLmxlbmd0aD4wJiZhaWN1cnJlbnRwYWdlPT0nbmV3Y2FyZGV0YWlsLmh0bWwnJiZnZXRDb29raWUoJ2xhc3RuZXd2ZWhpY2xlJykhPW51bGwpe3ZhciBsYXN0bmV3dmVoaWNsZT1nZXRDb29raWUoJ2xhc3RuZXd2ZWhpY2xlJyk7dmFyIGxhc3RuZXd2ZWhpY2xlc3BsaXQ9bGFzdG5ld3ZlaGljbGUuc3BsaXQoJ3x8fCcpO3ZhciBhaW5ld2NhcmlkPTA7aWYodHlwZW9mIEFJSURQZXJOZXdDYXJzRnJlbmNoW2xhc3RuZXd2ZWhpY2xlc3BsaXRbMF0rbGFzdG5ld3ZlaGljbGVzcGxpdFsxXStsYXN0bmV3dmVoaWNsZXNwbGl0WzJdXSE9PSd1bmRlZmluZWQnKWFpbmV3Y2FyaWQ9QUlJRFBlck5ld0NhcnNGcmVuY2hbbGFzdG5ld3ZlaGljbGVzcGxpdFswXStsYXN0bmV3dmVoaWNsZXNwbGl0WzFdK2xhc3RuZXd2ZWhpY2xlc3BsaXRbMl1dO2lmKHR5cGVvZiBBSUlEUGVyTmV3Q2Fyc0VuZ2xpc2hbbGFzdG5ld3ZlaGljbGVzcGxpdFswXStsYXN0bmV3dmVoaWNsZXNwbGl0WzFdK2xhc3RuZXd2ZWhpY2xlc3BsaXRbMl1dIT09J3VuZGVmaW5lZCcpYWluZXdjYXJpZD1BSUlEUGVyTmV3Q2Fyc0VuZ2xpc2hbbGFzdG5ld3ZlaGljbGVzcGxpdFswXStsYXN0bmV3dmVoaWNsZXNwbGl0WzFdK2xhc3RuZXd2ZWhpY2xlc3BsaXRbMl1dO2lmKGFpbmV3Y2FyaWQ+MCYmdHlwZW9mIGFjdGl2ZVVzZXJQcm9maWxlTW5nIT0ndW5kZWZpbmVkJyl7YWN0aXZlVXNlclByb2ZpbGVNbmcubG9nUGFnZVZpZXdFdmVudChhaW5ld2NhcmlkLCdBSUNvbmZpZ05ld0NhcicpO319fQpzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dmFyIGZuPWZ1bmN0aW9uKCl7aWYodHlwZW9mIGpRdWVyeSE9J3VuZGVmaW5lZCcpe3JldHVybiBqUXVlcnkucmVhZHkoKTt9CnNldFRpbWVvdXQoZm4sMTAwKTt9CmZuKCk7fSwxMDAwKTsKLypdXT4qLwoKKGFzeW5jICgpID0+IHsgdHJ5IHsgdmFyIGxhbmcgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdib2R5JykuY2xhc3NOYW1lLm1hdGNoKCdGUkVOQ0gnKSA\/ICdmcicgOiAnZW4nOyB2YXIgdXJsID0gbmV3IFVSTChgL2pzL2pzb24vbWVudVRpdGxlc18ke2xhbmd9Lmpzb25gLCB3aW5kb3cubG9jYXRpb24ub3JpZ2luKS5ocmVmOyByZXNwb25zZSA9IGF3YWl0IGZldGNoKHVybCk7IHRleHQgPSBhd2FpdCByZXNwb25zZS50ZXh0KCk7IGlmICh0ZXh0KSB7IGRhdGEgPSBKU09OLnBhcnNlKHRleHQpOyB2YXIgbXVsdGkgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdVU0VEJyk7IGlmIChtdWx0aS5sZW5ndGgpIHsgZm9yKHZhciBpID0gMDsgaSA8IG11bHRpLmxlbmd0aDsgaSsrKSB7IG11bHRpW2ldLnF1ZXJ5U2VsZWN0b3IoJy5zaHJpbmstZ3JvdycpLnRleHRDb250ZW50ID0gZGF0YVsnVVNFRCddLnRleHQ7IH0gfSBlbHNlIHsgZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI01haW5NZW51X1VTRUQgPiBhJykudGV4dENvbnRlbnQgPSBkYXRhWydVU0VEJ10udGV4dDsgd2luZG93LmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCdyZXNpemUnKSk7IH0gfSB9IGNhdGNoIChlKXsgY29uc29sZS5sb2coZSk7IH0gfSkoKTsKCgkvKjwhW0NEQVRBWyovCgl2YXIgcGFyYW1zID0gZ2V0VXJsVmFycygpOwoJLy9zZXQgcGFyYW0gdmFsdWUgaW50byBzZXNzaW9uIHN0b3JhZ2UKCWlmICh0eXBlb2Ygc2Vzc2lvblN0b3JhZ2UgIT09ICd1bmRlZmluZWQnKSB7CgoJCWlmKHBhcmFtcy5oYXNPd25Qcm9wZXJ0eSgnaCcpKXsKCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSgnaCcscGFyYW1zLmgpOwoJCX0KCgkJaWYocGFyYW1zLmhhc093blByb3BlcnR5KCdtJykpewoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKCdtJyxwYXJhbXMubSk7CgkJfQoKCQl2YXIgaCA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oJ2gnKTsKCQl2YXIgbSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oJ20nKTsKCgkJLy9yZWFkIHNlc3Npb24gYW5kIHJlbW92ZSBoZWFkZXIgJiBtZW51IGlmIG9wdGlvbnMgaGF2ZSBiZWVuIHNldAoJCWlmKGggPT09ICdubycpewoJCQkvL3N0dWZmIHRvIHJlbW92ZSB0aGF0IGlzIGNvbnNpZGVyZWQgcGFydCBvZiB0aGUgaGVhZGVyCgkJCXZhciBoZWFkZXJzID0gWwoJCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLmhlYWRlci1pbmZvJyksCgkJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcuaGVhZGVyLWZvb3RlcicpLAoJCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLmxhbmd1YWdlQmFyJyksCgkJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcuaGVhZGVyLWxvZ28nKSwKCQkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5tb2JpbGUtaGVhZGVyID4gKjpub3QoLmJ1cmdlci1tZW51LWNvbnRhaW5lciknKQoJCQldOwoKCQkJZm9yKHZhciBlbGVtIG9mIGhlYWRlcnMpewoJCQkJLy9yZW1vdmUgbm9kZSBsaXN0IHF1ZXJpZXMKCQkJCWlmIChOb2RlTGlzdC5wcm90b3R5cGUuaXNQcm90b3R5cGVPZihlbGVtKSkgewoJCQkJCWZvcih2YXIgX2VsZW0gb2YgZWxlbSl7CgkJCQkJCWlmIChfZWxlbSAhPT0gbnVsbCkgewoJCQkJCQkJX2VsZW0ucmVtb3ZlKCk7CgkJCQkJCX0KCQkJCQl9CgkJCQl9CgkJCQllbHNlIGlmIChlbGVtICE9PSBudWxsKXsKCQkJCQllbGVtLnJlbW92ZSgpOwoJCQkJfQoJCQl9CgkJfQoKCQkvL21lbnUKCQlpZihtID09PSAnbm8nKXsKCQkJdmFyIG1lbnVzID0gWwoJCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLmhlYWRlci1tZW51JyksCgkJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcuYnVyZ2VyLW1lbnUtY29udGFpbmVyJyksCgkJCV07CgkJCWZvcih2YXIgZWxlbSBvZiBtZW51cyl7CgkJCQlpZihlbGVtICE9PSBudWxsKXsKCQkJCQllbGVtLnJlbW92ZSgpOwoJCQkJfQoJCQl9CgkJfQoKCQkvL3NpbmNlIG5vIGhlYWRlciBvciBtZW51LCByZW1vdmUgZXZlcnl0aGluZwoJCWlmIChtID09PSAnbm8nICYmIGggPT09ICdubycpIHsKCQkJdmFyIGhlYWRlciA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5tb2JpbGUtaGVhZGVyJyk7CgkJCWlmKGhlYWRlciAhPT0gbnVsbCl7CgkJCQloZWFkZXIucmVtb3ZlKCk7CgkJCX0KCQl9CgoJfQoJLypdXT4qLwo=","js_rl":"CgkJCQl3aW5kb3cuZ1Rlc3RTcGVlZENvbm49RGF0ZS5ub3coKTsKCQkJCXdpbmRvdy5nUmVzb3VyY2VMb2FkZXJBbmRKcXVlcnlJc1JlYWR5PWZhbHNlOwoJCQkJd2luZG93LmdTa2VsZXRvbklzUmVtb3ZlZD1mYWxzZTsKCQkJCXdpbmRvdy5nRGVsYXllZExvYWRTY3JpcHQ9d2luZG93LmdEZWxheWVkTG9hZFNjcmlwdHx8ZnVuY3Rpb24oYSxkKXtzZXRUaW1lb3V0KCgpPT57dmFyIGU9ITA7Y29uc29sZS5sb2coIkdERUxBWUVETE9BRFNDUklQVDoiK2EsZCk7dmFyIG49ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7aWYoIm9iamVjdCI9PXR5cGVvZiBkJiZudWxsIT09ZClmb3IodmFyIG8gaW4gZClkLmhhc093blByb3BlcnR5KG8pJiZudWxsIT09ZFtvXSYmKC0xIT09WyJkZWZlciIsImFzeW5jIl0uaW5kZXhPZihvKSYmKGU9ITEpLG5bb109ZFtvXSk7bi5zcmM9YSxlJiYobi5hc3luYz0hMCksZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChuKX0pfTsKCQkJCgkJCQkJLyo8IVtDREFUQVsqLwoJCQkJCXZhciBib3hCbG9ja3MgPSB7InN1diI6eyJmYnhfc3V2XzEiOnsidmlzaWJsZSI6dHJ1ZSwiaWQiOjEsInBvc2l0aW9uIjoxLCJkcml2ZXRyYWluIjoxLCJmdWVsIjoxLCJwcmljZSI6MzIzOTAsImNvbnNvIjo3LjUsImNhckNhdGVnb3J5Ijoic3V2IiwiY2FyTWFrZSI6Im1hemRhIiwiY2FyTW9kZWwiOiJDWC0zMCIsInNwZWNpYWxPcmRlciI6MH0sImZieF9zdXZfMiI6eyJ2aXNpYmxlIjp0cnVlLCJpZCI6MiwicG9zaXRpb24iOjIsImRyaXZldHJhaW4iOjEsImZ1ZWwiOjEsInByaWNlIjozMjM5MCwiY29uc28iOjcuMDk5OTk5OTk5OTk5OTk5NjQ0NzI4NjMyMTE5OTQ5OTA3MDY0NDM3ODY2MjEwOTM3NSwiY2FyQ2F0ZWdvcnkiOiJzdXYiLCJjYXJNYWtlIjoibWF6ZGEiLCJjYXJNb2RlbCI6IkNYLTMwIiwic3BlY2lhbE9yZGVyIjowfSwiZmJ4X3N1dl8zIjp7InZpc2libGUiOnRydWUsImlkIjozLCJwb3NpdGlvbiI6MywiZHJpdmV0cmFpbiI6MSwiZnVlbCI6MSwicHJpY2UiOjM5MzkwLCJjb25zbyI6Ny45MDAwMDAwMDAwMDAwMDAzNTUyNzEzNjc4ODAwNTAwOTI5MzU1NjIxMzM3ODkwNjI1LCJjYXJDYXRlZ29yeSI6InN1diIsImNhck1ha2UiOiJtYXpkYSIsImNhck1vZGVsIjoiQ1gtNSIsInNwZWNpYWxPcmRlciI6MH0sImZieF9zdXZfNCI6eyJ2aXNpYmxlIjp0cnVlLCJpZCI6NCwicG9zaXRpb24iOjQsImRyaXZldHJhaW4iOjEsImZ1ZWwiOjEsInByaWNlIjozNTk5MCwiY29uc28iOjcuNzAwMDAwMDAwMDAwMDAwMTc3NjM1NjgzOTQwMDI1MDQ2NDY3NzgxMDY2ODk0NTMxMjUsImNhckNhdGVnb3J5Ijoic3V2IiwiY2FyTWFrZSI6Im1hemRhIiwiY2FyTW9kZWwiOiJDWC01Iiwic3BlY2lhbE9yZGVyIjowfSwiZmJ4X3N1dl81Ijp7InZpc2libGUiOnRydWUsImlkIjo1LCJwb3NpdGlvbiI6NSwiZHJpdmV0cmFpbiI6MSwiZnVlbCI6MSwicHJpY2UiOjQzMDQwLCJjb25zbyI6OCwiY2FyQ2F0ZWdvcnkiOiJzdXYiLCJjYXJNYWtlIjoibWF6ZGEiLCJjYXJNb2RlbCI6IkNYLTUwIiwic3BlY2lhbE9yZGVyIjowfX0sImh5YnJpZCI6eyJmYnhfaHlicmlkXzEiOnsidmlzaWJsZSI6dHJ1ZSwiaWQiOjEsInBvc2l0aW9uIjoxLCJkcml2ZXRyYWluIjoxLCJmdWVsIjo4LCJwcmljZSI6NDYwNDAsImNvbnNvIjo2LjQwMDAwMDAwMDAwMDAwMDM1NTI3MTM2Nzg4MDA1MDA5MjkzNTU2MjEzMzc4OTA2MjUsImNhckNhdGVnb3J5Ijoic3V2IiwiY2FyTWFrZSI6Im1hemRhIiwiY2FyTW9kZWwiOiJDWC01MCBIeWJyaWQiLCJzcGVjaWFsT3JkZXIiOjB9LCJmYnhfaHlicmlkXzIiOnsidmlzaWJsZSI6dHJ1ZSwiaWQiOjIsInBvc2l0aW9uIjoyLCJkcml2ZXRyYWluIjoxLCJmdWVsIjo4LCJwcmljZSI6NTI4NDAsImNvbnNvIjo4LjQwMDAwMDAwMDAwMDAwMDM1NTI3MTM2Nzg4MDA1MDA5MjkzNTU2MjEzMzc4OTA2MjUsImNhckNhdGVnb3J5Ijoic3V2IiwiY2FyTWFrZSI6Im1hemRhIiwiY2FyTW9kZWwiOiJDWC03MCBNSEVWIiwic3BlY2lhbE9yZGVyIjowfSwiZmJ4X2h5YnJpZF8zIjp7InZpc2libGUiOnRydWUsImlkIjozLCJwb3NpdGlvbiI6MywiZHJpdmV0cmFpbiI6MSwiZnVlbCI6OCwicHJpY2UiOjUyODQwLCJjb25zbyI6OC40MDAwMDAwMDAwMDAwMDAzNTUyNzEzNjc4ODAwNTAwOTI5MzU1NjIxMzM3ODkwNjI1LCJjYXJDYXRlZ29yeSI6InN1diIsImNhck1ha2UiOiJtYXpkYSIsImNhck1vZGVsIjoiQ1gtNzAgTUhFViIsInNwZWNpYWxPcmRlciI6MH0sImZieF9oeWJyaWRfNCI6eyJ2aXNpYmxlIjp0cnVlLCJpZCI6NCwicG9zaXRpb24iOjQsImRyaXZldHJhaW4iOjEsImZ1ZWwiOjgsInByaWNlIjo1MDE5MCwiY29uc28iOjguNSwiY2FyQ2F0ZWdvcnkiOiJzdXYiLCJjYXJNYWtlIjoibWF6ZGEiLCJjYXJNb2RlbCI6IkNYLTkwIE1IRVYiLCJzcGVjaWFsT3JkZXIiOjB9LCJmYnhfaHlicmlkXzUiOnsidmlzaWJsZSI6dHJ1ZSwiaWQiOjUsInBvc2l0aW9uIjo1LCJkcml2ZXRyYWluIjoxLCJmdWVsIjo4LCJwcmljZSI6NDkzNDAsImNvbnNvIjo4LjQwMDAwMDAwMDAwMDAwMDM1NTI3MTM2Nzg4MDA1MDA5MjkzNTU2MjEzMzc4OTA2MjUsImNhckNhdGVnb3J5Ijoic3V2IiwiY2FyTWFrZSI6Im1hemRhIiwiY2FyTW9kZWwiOiJDWC05MCBNSEVWIiwic3BlY2lhbE9yZGVyIjowfX0sInBoZXYiOnsiZmJ4X3BoZXZfMSI6eyJ2aXNpYmxlIjp0cnVlLCJpZCI6MSwicG9zaXRpb24iOjEsImRyaXZldHJhaW4iOjEsImZ1ZWwiOjE2LCJwcmljZSI6NTU4NDAsImNvbnNvIjo4LjUsImNhckNhdGVnb3J5Ijoic3V2IiwiY2FyTWFrZSI6Im1hemRhIiwiY2FyTW9kZWwiOiJDWC03MCBQSEVWIiwic3BlY2lhbE9yZGVyIjowfSwiZmJ4X3BoZXZfMiI6eyJ2aXNpYmxlIjp0cnVlLCJpZCI6MiwicG9zaXRpb24iOjIsImRyaXZldHJhaW4iOjEsImZ1ZWwiOjE2LCJwcmljZSI6NjE4NDAsImNvbnNvIjo4LjY5OTk5OTk5OTk5OTk5OTI4OTQ1NzI2NDIzOTg5OTgxNDEyODg3NTczMjQyMTg3NSwiY2FyQ2F0ZWdvcnkiOiJzdXYiLCJjYXJNYWtlIjoibWF6ZGEiLCJjYXJNb2RlbCI6IkNYLTcwIFBIRVYiLCJzcGVjaWFsT3JkZXIiOjB9LCJmYnhfcGhldl8zIjp7InZpc2libGUiOnRydWUsImlkIjozLCJwb3NpdGlvbiI6MywiZHJpdmV0cmFpbiI6MSwiZnVlbCI6MTYsInByaWNlIjo1Njg0MCwiY29uc28iOjguNSwiY2FyQ2F0ZWdvcnkiOiJzdXYiLCJjYXJNYWtlIjoibWF6ZGEiLCJjYXJNb2RlbCI6IkNYLTkwIFBIRVYiLCJzcGVjaWFsT3JkZXIiOjB9LCJmYnhfcGhldl80Ijp7InZpc2libGUiOnRydWUsImlkIjo0LCJwb3NpdGlvbiI6NCwiZHJpdmV0cmFpbiI6MSwiZnVlbCI6MTYsInByaWNlIjo1Nzk5MCwiY29uc28iOjguNjk5OTk5OTk5OTk5OTk5Mjg5NDU3MjY0MjM5ODk5ODE0MTI4ODc1NzMyNDIxODc1LCJjYXJDYXRlZ29yeSI6InN1diIsImNhck1ha2UiOiJtYXpkYSIsImNhck1vZGVsIjoiQ1gtOTAgUEhFViIsInNwZWNpYWxPcmRlciI6MH19LCJjb252ZXJ0aWJsZSI6eyJmYnhfY29udmVydGlibGVfMSI6eyJ2aXNpYmxlIjp0cnVlLCJpZCI6MSwicG9zaXRpb24iOjEsImRyaXZldHJhaW4iOjIsImZ1ZWwiOjEsInByaWNlIjozODY5MCwiY29uc28iOjYuNzAwMDAwMDAwMDAwMDAwMTc3NjM1NjgzOTQwMDI1MDQ2NDY3NzgxMDY2ODk0NTMxMjUsImNhckNhdGVnb3J5IjoiY29udmVydGlibGUiLCJjYXJNYWtlIjoibWF6ZGEiLCJjYXJNb2RlbCI6Ik1YLTUiLCJzcGVjaWFsT3JkZXIiOjB9LCJmYnhfY29udmVydGlibGVfMiI6eyJ2aXNpYmxlIjp0cnVlLCJpZCI6MiwicG9zaXRpb24iOjIsImRyaXZldHJhaW4iOjIsImZ1ZWwiOjEsInByaWNlIjozODQ0MCwiY29uc28iOjYuNzAwMDAwMDAwMDAwMDAwMTc3NjM1NjgzOTQwMDI1MDQ2NDY3NzgxMDY2ODk0NTMxMjUsImNhckNhdGVnb3J5IjoiY29udmVydGlibGUiLCJjYXJNYWtlIjoibWF6ZGEiLCJjYXJNb2RlbCI6Ik1YLTUiLCJzcGVjaWFsT3JkZXIiOjB9LCJmYnhfY29udmVydGlibGVfMyI6eyJ2aXNpYmxlIjp0cnVlLCJpZCI6MywicG9zaXRpb24iOjMsImRyaXZldHJhaW4iOjIsImZ1ZWwiOjEsInByaWNlIjo0NTY5MCwiY29uc28iOjYuNzAwMDAwMDAwMDAwMDAwMTc3NjM1NjgzOTQwMDI1MDQ2NDY3NzgxMDY2ODk0NTMxMjUsImNhckNhdGVnb3J5IjoiY29udmVydGlibGUiLCJjYXJNYWtlIjoibWF6ZGEiLCJjYXJNb2RlbCI6Ik1YLTUgUkYiLCJzcGVjaWFsT3JkZXIiOjB9LCJmYnhfY29udmVydGlibGVfNCI6eyJ2aXNpYmxlIjp0cnVlLCJpZCI6NCwicG9zaXRpb24iOjQsImRyaXZldHJhaW4iOjIsImZ1ZWwiOjEsInByaWNlIjo0NTQ0MCwiY29uc28iOjYuNzAwMDAwMDAwMDAwMDAwMTc3NjM1NjgzOTQwMDI1MDQ2NDY3NzgxMDY2ODk0NTMxMjUsImNhckNhdGVnb3J5IjoiY29udmVydGlibGUiLCJjYXJNYWtlIjoibWF6ZGEiLCJjYXJNb2RlbCI6Ik1YLTUgUkYiLCJzcGVjaWFsT3JkZXIiOjB9fSwiY2FyIjp7ImZieF9jYXJfMSI6eyJ2aXNpYmxlIjp0cnVlLCJpZCI6MSwicG9zaXRpb24iOjEsImRyaXZldHJhaW4iOjEsImZ1ZWwiOjEsInByaWNlIjoyODI0MCwiY29uc28iOjYuNTk5OTk5OTk5OTk5OTk5NjQ0NzI4NjMyMTE5OTQ5OTA3MDY0NDM3ODY2MjEwOTM3NSwiY2FyQ2F0ZWdvcnkiOiJjYXIiLCJjYXJNYWtlIjoibWF6ZGEiLCJjYXJNb2RlbCI6Ik1hemRhMyIsInNwZWNpYWxPcmRlciI6MH0sImZieF9jYXJfMiI6eyJ2aXNpYmxlIjp0cnVlLCJpZCI6MiwicG9zaXRpb24iOjIsImRyaXZldHJhaW4iOjEsImZ1ZWwiOjEsInByaWNlIjoyODI0MCwiY29uc28iOjYuMjk5OTk5OTk5OTk5OTk5ODIyMzY0MzE2MDU5OTc0OTUzNTMyMjE4OTMzMTA1NDY4NzUsImNhckNhdGVnb3J5IjoiY2FyIiwiY2FyTWFrZSI6Im1hemRhIiwiY2FyTW9kZWwiOiJNYXpkYTMiLCJzcGVjaWFsT3JkZXIiOjB9LCJmYnhfY2FyXzMiOnsidmlzaWJsZSI6dHJ1ZSwiaWQiOjMsInBvc2l0aW9uIjozLCJkcml2ZXRyYWluIjoxLCJmdWVsIjoxLCJwcmljZSI6Mjg5OTAsImNvbnNvIjo2Ljc5OTk5OTk5OTk5OTk5OTgyMjM2NDMxNjA1OTk3NDk1MzUzMjIxODkzMzEwNTQ2ODc1LCJjYXJDYXRlZ29yeSI6ImNhciIsImNhck1ha2UiOiJtYXpkYSIsImNhck1vZGVsIjoiTWF6ZGEzIFNwb3J0Iiwic3BlY2lhbE9yZGVyIjowfSwiZmJ4X2Nhcl80Ijp7InZpc2libGUiOnRydWUsImlkIjo0LCJwb3NpdGlvbiI6NCwiZHJpdmV0cmFpbiI6MSwiZnVlbCI6MSwicHJpY2UiOjI4OTkwLCJjb25zbyI6Ni40MDAwMDAwMDAwMDAwMDAzNTUyNzEzNjc4ODAwNTAwOTI5MzU1NjIxMzM3ODkwNjI1LCJjYXJDYXRlZ29yeSI6ImNhciIsImNhck1ha2UiOiJtYXpkYSIsImNhck1vZGVsIjoiTWF6ZGEzIFNwb3J0Iiwic3BlY2lhbE9yZGVyIjowfX19OwoJCQkJCS8qLS0qLwoJCQkJCXZhciBib3hQb3NpdGlvbnMgPSB7ImZieF9zdXZfMSI6MSwiZmJ4X3N1dl8yIjoyLCJmYnhfc3V2XzMiOjMsImZieF9zdXZfNCI6NCwiZmJ4X3N1dl81Ijo1LCJmYnhfaHlicmlkXzEiOjEsImZieF9oeWJyaWRfMiI6MiwiZmJ4X2h5YnJpZF8zIjozLCJmYnhfcGhldl8xIjoxLCJmYnhfcGhldl8yIjoyLCJmYnhfaHlicmlkXzQiOjQsImZieF9oeWJyaWRfNSI6NSwiZmJ4X3BoZXZfMyI6MywiZmJ4X3BoZXZfNCI6NCwiZmJ4X2NvbnZlcnRpYmxlXzEiOjEsImZieF9jb252ZXJ0aWJsZV8yIjoyLCJmYnhfY29udmVydGlibGVfMyI6MywiZmJ4X2NvbnZlcnRpYmxlXzQiOjQsImZieF9jYXJfMSI6MSwiZmJ4X2Nhcl8yIjoyLCJmYnhfY2FyXzMiOjMsImZieF9jYXJfNCI6NH07CgkJCQkJLyoqIEZpbHRlciBKUyBpbiBuZXdjYXJzLmpzICoqLwoJCQkJCS8qXV0+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+ZCYmKGEuZXhwaXJlcz1kKTtjPWcuanNvbj9KU09OLnN0cmluZ2lmeShjKTpTdHJpbmcoYyk7bihiLGMsYS5leHBpcmVzLGEucGF0aCxhLmRvbWFpbik7cmV0dXJuIGwuY29va2llPVtlbmNvZGVVUklDb21wb25lbnQoYiksIj0iLGcucmF3P2M6ZW5jb2RlVVJJQ29tcG9uZW50KGMpLGEuZXhwaXJlcz8iOyBleHBpcmVzPSIrCmEuZXhwaXJlcy50b1VUQ1N0cmluZygpOiIiLGEucGF0aD8iOyBwYXRoPSIrYS5wYXRoOiIiLGEuZG9tYWluPyI7IGRvbWFpbj0iK2EuZG9tYWluOiIiLGEuc2VjdXJlPyI7IHNlY3VyZSI6IiJdLmpvaW4oIiIpfSk7Zm9yKHZhciBlPWcucmF3P3Q6dSxrPWwuY29va2llLnNwbGl0KCI7ICIpLGY9MCx2PWsubGVuZ3RoO2Y8djtmKyspe3ZhciBxPWtbZl0uc3BsaXQoIj0iKTtpZihlKHEuc2hpZnQoKSk9PT1iKXJldHVybiBlPWUocS5qb2luKCI9IikpLGcuanNvbj9KU09OLnBhcnNlKGUpOmV9cmV0dXJuIG51bGx9O2cuZGVmYXVsdHM9e307aC5yZW1vdmVDb29raWU9ZnVuY3Rpb24oYixjKXtyZXR1cm4gbnVsbCE9PWguY29va2llKGIpPyhoLmNvb2tpZShiLG51bGwsYyksITApOiExfX0pKGpRdWVyeSxkb2N1bWVudCk7Ci8qKiAvanMvdmFuaWxsYWpzL2Nvb2tpZXMuY29uc2VudC5qcyAqKi8KdmFyIF9fX2QyY19jb29raWVzY29uc2VudGpzX2Nfb249IjIwMjUtMDUtMjMgMTc6MDU6MTMiOyd1c2Ugc3RyaWN0Jzt2YXIgX19fZDJjX2Nvb2tpZXNjb25zZW50anNfY19vbj0iMjAyNS0wMS0yMiAxMDozMDowOCI7InVzZSBzdHJpY3QiOwooZnVuY3Rpb24oKXt3aW5kb3cuQ29va2llQ29uc2VudD17Q0FURUdPUllJRF9FU1NFTlRJQUw6MixfY21wSW50ZXJ2YWxJRDpudWxsLF9jdXJyZW50VmVuZG9yOm51bGwsX2Nvb2tpZXM6bnVsbCxfY2F0ZWdvcmllczpudWxsLF9yZWdpc3RlcmVkUmVxdWVzdHM6W10saW5pdDpmdW5jdGlvbigpe0Nvb2tpZUNvbnNlbnQuX2xvYWRKU09OKG51bGwpO0Nvb2tpZUNvbnNlbnQuX2NtcEludGVydmFsSUQ9c2V0SW50ZXJ2YWwoZnVuY3Rpb24oKXtDb29raWVDb25zZW50Lmxpc3RlbkZvck9uZVRydXN0KCl9LDFFMyk7dmFyIGI9Q29va2llQ29uc2VudC5nZXRDb25zZW50KCk7bGV0IGE9bnVsbD09Ynx8LTE8Yi5pbmRleE9mKCJDMDAwMiIpPyJncmFudGVkIjoiZGVuaWVkIjtiPW51bGw9PWJ8fC0xPGIuaW5kZXhPZigiQzAwMDQiKT8iZ3JhbnRlZCI6ImRlbmllZCI7Z3RhZygiY29uc2VudCIsImRlZmF1bHQiLHthZF9zdG9yYWdlOmIsYW5hbHl0aWNzX3N0b3JhZ2U6YX0pOyJ1bmRlZmluZWQiIT09CnR5cGVvZiBmYnEmJmZicSgiY29uc2VudCIsInJldm9rZSIpfSxsaXN0ZW5Gb3JPbmVUcnVzdDpmdW5jdGlvbigpe2lmKCJ1bmRlZmluZWQiIT09dHlwZW9mIE9uZVRydXN0KXtjb25zb2xlLmxvZygiQ29va2llQ29uc2VudC5saXN0ZW5Gb3JPbmVUcnVzdCgpIik7Q29va2llQ29uc2VudC5fY3VycmVudFZlbmRvcj0iT25lVHJ1c3QiO2NsZWFySW50ZXJ2YWwoQ29va2llQ29uc2VudC5fY21wSW50ZXJ2YWxJRCk7dmFyIGI9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI29uZXRydXN0LWNsb3NlLWJ0bi1jb250YWluZXIgLm9uZXRydXN0LWNsb3NlLWJ0bi1oYW5kbGVyIik7YiYmYi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oKXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7bGV0IGE9d2luZG93LmxvY2F0aW9uLmhvc3RuYW1lLGM9bG9jYXRpb24uaG9zdG5hbWUuc3BsaXQoIi4iKS5zbGljZSgtMikuam9pbigiLiIpO2RvY3VtZW50LmNvb2tpZT0iT3B0YW5vbkFsZXJ0Qm94Q2xvc2VkPTsgUGF0aD0vOyBFeHBpcmVzPVRodSwgMDEgSmFuIDE5NzAgMDA6MDA6MDEgR01UO2RvbWFpbj0iKwphKyI7Ijtkb2N1bWVudC5jb29raWU9Ik9wdGFub25BbGVydEJveENsb3NlZD07IFBhdGg9LzsgRXhwaXJlcz1UaHUsIDAxIEphbiAxOTcwIDAwOjAwOjAxIEdNVDtkb21haW49IitjKyI7In0sMUUzKX0pO09uZVRydXN0Lk9uQ29uc2VudENoYW5nZWQoZnVuY3Rpb24oYSl7aWYoYSYmYS5kZXRhaWwpe3ZhciBjPUNvb2tpZUNvbnNlbnQuX2dldENvbnNlbnRDb29raWUoKTtDb29raWVDb25zZW50Ll91cGRhdGVDb25zZW50Q29va2llKEpTT04uc3RyaW5naWZ5KGEuZGV0YWlsKSk7LTE8YS5kZXRhaWwuaW5kZXhPZigiQzAwMDQiKT9ndGFnKCJjb25zZW50IiwidXBkYXRlIix7YWRfc3RvcmFnZToiZ3JhbnRlZCJ9KTpndGFnKCJjb25zZW50IiwidXBkYXRlIix7YWRfc3RvcmFnZToiZGVuaWVkIn0pOy0xPGEuZGV0YWlsLmluZGV4T2YoIkMwMDAyIik\/Z3RhZygiY29uc2VudCIsInVwZGF0ZSIse2FuYWx5dGljc19zdG9yYWdlOiJncmFudGVkIn0pOmd0YWcoImNvbnNlbnQiLCJ1cGRhdGUiLAp7YW5hbHl0aWNzX3N0b3JhZ2U6ImRlbmllZCJ9KTsidW5kZWZpbmVkIiE9PXR5cGVvZiBmYnEmJigtMTxhLmRldGFpbC5pbmRleE9mKCJDMDAwNCIpP2ZicSgiY29uc2VudCIsImdyYW50Iik6ZmJxKCJjb25zZW50IiwicmV2b2tlIikpOzE9PWEuZGV0YWlsLmxlbmd0aCYmIkMwMDAxIj09YS5kZXRhaWxbMF0mJihudWxsPT1jfHwxPGMubGVuZ3RoKSYmZDJjRm9vdGVyRGVsZXRlQWxsQ29va2llcyghMCk7aWYoLTE8YS5kZXRhaWwuaW5kZXhPZigiQzAwMDIiKSl7Yz1zZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCJkMmNfY29uc2VudF93YWl0Iik7Yz1udWxsIT1jP0pTT04ucGFyc2UoYXRvYihjKSk6e307Zm9yKHZhciBkIGluIGMpQ29va2llcy5zZXQoY1tkXS5rZXksY1tkXS52YWx1ZSxjW2RdLmV4cGlyZXMsY1tkXS5wYXRoLGNbZF0uZG9tYWluKX1zZXNzaW9uU3RvcmFnZS5yZW1vdmVJdGVtKCJkMmNfY29uc2VudF93YWl0Iik7ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiYm9keSIpLmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCJkMmNfY29uc2VudF9jaGFuZ2VkIiwKe2NhdGVnb3JpZXM6YS5kZXRhaWx9KSl9fSl9fSxfdXBkYXRlQ29uc2VudENvb2tpZTpmdW5jdGlvbihiKXtDb29raWVzLnNldCgiZDJjX2Nvb2tpZV9jb25zZW50IixiLDM2NSwiLyIpfSxfZ2V0Q29uc2VudENvb2tpZTpmdW5jdGlvbigpe2lmKCFDb29raWVzLmhhcygiZDJjX2Nvb2tpZV9jb25zZW50IikpcmV0dXJuIG51bGw7bGV0IGI9Q29va2llcy5nZXQoImQyY19jb29raWVfY29uc2VudCIpO3JldHVybiBKU09OLnBhcnNlKGIpfSxnZXRDb25zZW50OmZ1bmN0aW9uKCl7bGV0IGI9KCIiK2RvY3VtZW50LmNvb2tpZSkuc3BsaXQoIjsiKTtmb3IobGV0IGE9MDthPGIubGVuZ3RoO2ErKyl7bGV0IGM9YlthXTtjPWMudHJpbSgpO2lmKDA9PWMuaW5kZXhPZigiZDJjX2Nvb2tpZV9jb25zZW50PSIpKXt0cnl7Yz1kZWNvZGVVUklDb21wb25lbnQoYyl9Y2F0Y2goZCl7Y29uc29sZS5sb2coZCk7YnJlYWt9cmV0dXJuIGMuc3Vic3RyaW5nKDE5LGMubGVuZ3RoKX19cmV0dXJuIG51bGx9LAppc0Nvb2tpZUFsbG93ZWQ6ZnVuY3Rpb24oYixhKXtpZihbImQyY19jb29raWVfY29uc2VudCIsIkNTUkZET01BSU5DSEVDS18xIl0uaW5jbHVkZXMoYikpYSghMCk7ZWxzZSBpZihudWxsPT09Q29va2llQ29uc2VudC5fY29va2llc3x8bnVsbD09PUNvb2tpZUNvbnNlbnQuX2NhdGVnb3JpZXMpQ29va2llQ29uc2VudC5fcmVnaXN0ZXJKU09OTG9hZGVkRXZlbnQoZnVuY3Rpb24oKXtDb29raWVDb25zZW50LmlzQ29va2llQWxsb3dlZChiLGEpfSk7ZWxzZSBpZihDb29raWVDb25zZW50Ll9jb29raWVzLmhhc093blByb3BlcnR5KGIpKXt2YXIgYz1Db29raWVDb25zZW50Ll9jb29raWVzW2JdLGQ9Q29va2llQ29uc2VudC5fZ2V0VmVuZG9yQ2F0ZWdvcnkoYyksZT1Db29raWVDb25zZW50Ll9nZXRDb25zZW50Q29va2llKCk7ImZ1bmN0aW9uIj09PXR5cGVvZiBkZWJ1ZyYmZGVidWcoe25hbWU6YixjYXRlZ29yeTpjLHZlbmRvcjpkLGNvbnNlbnQ6ZX0pO251bGw9PT1lfHxudWxsPT09ZD8KYSghMSk6Im9iamVjdCI9PT10eXBlb2YgZD8oYz0wPGQuZmlsdGVyKGZ1bmN0aW9uKGYpe3JldHVybi0xPGUuaW5kZXhPZihmKX0pLmxlbmd0aCxhKGMpKTphKC0xPGUuaW5kZXhPZihkKSl9ZWxzZSBhKCExKX0sX2xvYWRKU09OOmZ1bmN0aW9uKGIpe2ZldGNoKCIvanMvanNvbi9jYXRlZ29yaXplZF9jb29raWVzLmpzb24iKS50aGVuKGZ1bmN0aW9uKGEpe3JldHVybiBhLmpzb24oKX0pLnRoZW4oZnVuY3Rpb24oYSl7Q29va2llQ29uc2VudC5fY29va2llcz1hLmNvb2tpZXM7Q29va2llQ29uc2VudC5fY2F0ZWdvcmllcz1hLmNhdGVnb3JpZXM7aWYoImZ1bmN0aW9uIj09PXR5cGVvZiBiKXRyeXtiKCl9Y2F0Y2goYyl7fTA8Q29va2llQ29uc2VudC5fcmVnaXN0ZXJlZFJlcXVlc3RzLmxlbmd0aCYmQ29va2llQ29uc2VudC5fcmVnaXN0ZXJlZFJlcXVlc3RzLmZvckVhY2goZnVuY3Rpb24oYyl7dHJ5e2MoKX1jYXRjaChkKXt9fSl9KX0sX3JlZ2lzdGVySlNPTkxvYWRlZEV2ZW50OmZ1bmN0aW9uKGIpe2lmKCJmdW5jdGlvbiI9PT0KdHlwZW9mIGIpaWYobnVsbCE9PUNvb2tpZUNvbnNlbnQuX2Nvb2tpZXMpdHJ5e2IoKX1jYXRjaChhKXt9ZWxzZSBDb29raWVDb25zZW50Ll9yZWdpc3RlcmVkUmVxdWVzdHMucHVzaChiKX0sX2dldFZlbmRvckNhdGVnb3J5OmZ1bmN0aW9uKGIpe2lmKG51bGw9PT1Db29raWVDb25zZW50Ll9jdXJyZW50VmVuZG9yKXtsZXQgYz1bXTtPYmplY3QudmFsdWVzKENvb2tpZUNvbnNlbnQuX2NhdGVnb3JpZXMpLmZvckVhY2goZnVuY3Rpb24oZCl7ZC5oYXNPd25Qcm9wZXJ0eShiKSYmYy5wdXNoKGRbYl0pfSk7cmV0dXJuIGN9bGV0IGE9Q29va2llQ29uc2VudC5fY2F0ZWdvcmllc1tDb29raWVDb25zZW50Ll9jdXJyZW50VmVuZG9yXTtyZXR1cm4gYSYmYS5oYXNPd25Qcm9wZXJ0eShiKT9hW2JdOm51bGx9fTt3aW5kb3cuQ29va2llQ29uc2VudC5pbml0KCl9KSgpOwovKiogL2pzL3ZhbmlsbGFqcy9jb250ZW50TG9hZGVyLmpzICoqLwp2YXIgX19fZDJjX2NvbnRlbnRMb2FkZXJqc19jX29uPSIyMDI2LTAxLTEyIDEwOjEzOjI5IjsndXNlIHN0cmljdCc7dmFyICRqc2NvbXA9JGpzY29tcHx8e307JGpzY29tcC5zY29wZT17fTskanNjb21wLkFTU1VNRV9FUzU9ITE7JGpzY29tcC5BU1NVTUVfTk9fTkFUSVZFX01BUD0hMTskanNjb21wLkFTU1VNRV9OT19OQVRJVkVfU0VUPSExOyRqc2NvbXAuU0lNUExFX0ZST1VORF9QT0xZRklMTD0hMTskanNjb21wLklTT0xBVEVfUE9MWUZJTExTPSExOyRqc2NvbXAuRk9SQ0VfUE9MWUZJTExfUFJPTUlTRT0hMTskanNjb21wLkZPUkNFX1BPTFlGSUxMX1BST01JU0VfV0hFTl9OT19VTkhBTkRMRURfUkVKRUNUSU9OPSExOyRqc2NvbXAuZGVmaW5lUHJvcGVydHk9JGpzY29tcC5BU1NVTUVfRVM1fHwiZnVuY3Rpb24iPT10eXBlb2YgT2JqZWN0LmRlZmluZVByb3BlcnRpZXM\/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\/KGEucGFyZW50KCkuYWRkQ2xhc3MoInZhbGlkaXR5LWVycm9uZW91cyIpLGEucGFyZW50KCkucGFyZW50KCkuYWRkQ2xhc3MoInZhbGlkaXR5LWVycm9uZW91cyIpKTphLmFkZENsYXNzKCJ2YWxpZGl0eS1lcnJvbmVvdXMiKX0scmFpc2VBZ2dyZWdhdGU6ZnVuY3Rpb24oYSl7Y29uc29sZS5sb2coYSksYS5pcygiOnJhZGlvIikmJmEuaXMoIi5qcVRyYW5zZm9ybUhpZGRlbiIpJiZhLnBhcmVudCgpLnBhcmVudCgpLmFkZENsYXNzKCJ2YWxpZGl0eS1lcnJvbmVvdXMiKX19fSgpLGZ1bmN0aW9uKGEpe2EudmFsaWRpdHkub3V0cHV0cy5jc3NPbmx5PXtzdGFydDpmdW5jdGlvbigpe2EoYS52YWxpZGl0eS5zZXR0aW5ncy5jc3NDbGFzcykucmVtb3ZlQ2xhc3MoYS52YWxpZGl0eS5zZXR0aW5ncy5jc3NDbGFzcyl9LGVuZDpmdW5jdGlvbihiKXshYi52YWxpZCYmYS52YWxpZGl0eS5zZXR0aW5ncy5zY3JvbGxUbyYmKGxvY2F0aW9uLmhhc2g9YShhLnZhbGlkaXR5LnNldHRpbmdzLmNzc0NsYXNzKyI6ZXEoMCkiKS5hdHRyKCJpZCIpKX0scmFpc2U6ZnVuY3Rpb24oYil7YShiKS5hZGRDbGFzcyhhLnZhbGlkaXR5LnNldHRpbmdzLmNzc0NsYXNzKX0scmFpc2VBZ2dyZWdhdGU6ZnVuY3Rpb24oYixjKXtiLmxlbmd0aCYmdGhpcy5yYWlzZShhKGIuZ2V0KGIubGVuZ3RoLTEpKSxjKX19fShqUXVlcnkpOwovKiogL2pzL21haW4uanMgKiovCnZhciBfX19kMmNfbWFpbmpzX2Nfb249IjIwMjYtMDMtMDkgMTQ6MzA6MDMiOyd1c2Ugc3RyaWN0Jzt2YXIgJGpzY29tcD0kanNjb21wfHx7fTskanNjb21wLnNjb3BlPXt9OyRqc2NvbXAuQVNTVU1FX0VTNT0hMTskanNjb21wLkFTU1VNRV9OT19OQVRJVkVfTUFQPSExOyRqc2NvbXAuQVNTVU1FX05PX05BVElWRV9TRVQ9ITE7JGpzY29tcC5TSU1QTEVfRlJPVU5EX1BPTFlGSUxMPSExOyRqc2NvbXAuSVNPTEFURV9QT0xZRklMTFM9ITE7JGpzY29tcC5GT1JDRV9QT0xZRklMTF9QUk9NSVNFPSExOyRqc2NvbXAuRk9SQ0VfUE9MWUZJTExfUFJPTUlTRV9XSEVOX05PX1VOSEFORExFRF9SRUpFQ1RJT049ITE7JGpzY29tcC5kZWZpbmVQcm9wZXJ0eT0kanNjb21wLkFTU1VNRV9FUzV8fCJmdW5jdGlvbiI9PXR5cGVvZiBPYmplY3QuZGVmaW5lUHJvcGVydGllcz9PYmplY3QuZGVmaW5lUHJvcGVydHk6ZnVuY3Rpb24oYSxiLGMpe2lmKGE9PUFycmF5LnByb3RvdHlwZXx8YT09T2JqZWN0LnByb3RvdHlwZSlyZXR1cm4gYTthW2JdPWMudmFsdWU7cmV0dXJuIGF9OwokanNjb21wLmdldEdsb2JhbD1mdW5jdGlvbihhKXthPVsib2JqZWN0Ij09dHlwZW9mIGdsb2JhbFRoaXMmJmdsb2JhbFRoaXMsYSwib2JqZWN0Ij09dHlwZW9mIHdpbmRvdyYmd2luZG93LCJvYmplY3QiPT10eXBlb2Ygc2VsZiYmc2VsZiwib2JqZWN0Ij09dHlwZW9mIGdsb2JhbCYmZ2xvYmFsXTtmb3IodmFyIGI9MDtiPGEubGVuZ3RoOysrYil7dmFyIGM9YVtiXTtpZihjJiZjLk1hdGg9PU1hdGgpcmV0dXJuIGN9dGhyb3cgRXJyb3IoIkNhbm5vdCBmaW5kIGdsb2JhbCBvYmplY3QiKTt9OyRqc2NvbXAuZ2xvYmFsPSRqc2NvbXAuZ2V0R2xvYmFsKHRoaXMpOyRqc2NvbXAuSVNfU1lNQk9MX05BVElWRT0iZnVuY3Rpb24iPT09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PT10eXBlb2YgU3ltYm9sKCJ4Iik7JGpzY29tcC5UUlVTVF9FUzZfUE9MWUZJTExTPSEkanNjb21wLklTT0xBVEVfUE9MWUZJTExTfHwkanNjb21wLklTX1NZTUJPTF9OQVRJVkU7JGpzY29tcC5wb2x5ZmlsbHM9e307CiRqc2NvbXAucHJvcGVydHlUb1BvbHlmaWxsU3ltYm9sPXt9OyRqc2NvbXAuUE9MWUZJTExfUFJFRklYPSIkanNjcCQiO3ZhciAkanNjb21wJGxvb2t1cFBvbHlmaWxsZWRWYWx1ZT1mdW5jdGlvbihhLGIpe3ZhciBjPSRqc2NvbXAucHJvcGVydHlUb1BvbHlmaWxsU3ltYm9sW2JdO2lmKG51bGw9PWMpcmV0dXJuIGFbYl07Yz1hW2NdO3JldHVybiB2b2lkIDAhPT1jP2M6YVtiXX07JGpzY29tcC5wb2x5ZmlsbD1mdW5jdGlvbihhLGIsYyxkKXtiJiYoJGpzY29tcC5JU09MQVRFX1BPTFlGSUxMUz8kanNjb21wLnBvbHlmaWxsSXNvbGF0ZWQoYSxiLGMsZCk6JGpzY29tcC5wb2x5ZmlsbFVuaXNvbGF0ZWQoYSxiLGMsZCkpfTsKJGpzY29tcC5wb2x5ZmlsbFVuaXNvbGF0ZWQ9ZnVuY3Rpb24oYSxiLGMsZCl7Yz0kanNjb21wLmdsb2JhbDthPWEuc3BsaXQoIi4iKTtmb3IoZD0wO2Q8YS5sZW5ndGgtMTtkKyspe3ZhciBlPWFbZF07aWYoIShlIGluIGMpKXJldHVybjtjPWNbZV19YT1hW2EubGVuZ3RoLTFdO2Q9Y1thXTtiPWIoZCk7YiE9ZCYmbnVsbCE9YiYmJGpzY29tcC5kZWZpbmVQcm9wZXJ0eShjLGEse2NvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpifSl9OwokanNjb21wLnBvbHlmaWxsSXNvbGF0ZWQ9ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU9YS5zcGxpdCgiLiIpO2E9MT09PWUubGVuZ3RoO2Q9ZVswXTtkPSFhJiZkIGluICRqc2NvbXAucG9seWZpbGxzPyRqc2NvbXAucG9seWZpbGxzOiRqc2NvbXAuZ2xvYmFsO2Zvcih2YXIgaz0wO2s8ZS5sZW5ndGgtMTtrKyspe3ZhciBoPWVba107aWYoIShoIGluIGQpKXJldHVybjtkPWRbaF19ZT1lW2UubGVuZ3RoLTFdO2M9JGpzY29tcC5JU19TWU1CT0xfTkFUSVZFJiYiZXM2Ij09PWM\/ZFtlXTpudWxsO2I9YihjKTtudWxsIT1iJiYoYT8kanNjb21wLmRlZmluZVByb3BlcnR5KCRqc2NvbXAucG9seWZpbGxzLGUse2NvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpifSk6YiE9PWMmJih2b2lkIDA9PT0kanNjb21wLnByb3BlcnR5VG9Qb2x5ZmlsbFN5bWJvbFtlXSYmKGM9MUU5Kk1hdGgucmFuZG9tKCk+Pj4wLCRqc2NvbXAucHJvcGVydHlUb1BvbHlmaWxsU3ltYm9sW2VdPSRqc2NvbXAuSVNfU1lNQk9MX05BVElWRT8KJGpzY29tcC5nbG9iYWwuU3ltYm9sKGUpOiRqc2NvbXAuUE9MWUZJTExfUFJFRklYK2MrIiQiK2UpLCRqc2NvbXAuZGVmaW5lUHJvcGVydHkoZCwkanNjb21wLnByb3BlcnR5VG9Qb2x5ZmlsbFN5bWJvbFtlXSx7Y29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmJ9KSkpfTskanNjb21wLnVuZGVyc2NvcmVQcm90b0NhbkJlU2V0PWZ1bmN0aW9uKCl7dmFyIGE9e2E6ITB9LGI9e307dHJ5e3JldHVybiBiLl9fcHJvdG9fXz1hLGIuYX1jYXRjaChjKXt9cmV0dXJuITF9OwokanNjb21wLnNldFByb3RvdHlwZU9mPSRqc2NvbXAuVFJVU1RfRVM2X1BPTFlGSUxMUyYmImZ1bmN0aW9uIj09dHlwZW9mIE9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2Y6JGpzY29tcC51bmRlcnNjb3JlUHJvdG9DYW5CZVNldCgpP2Z1bmN0aW9uKGEsYil7YS5fX3Byb3RvX189YjtpZihhLl9fcHJvdG9fXyE9PWIpdGhyb3cgbmV3IFR5cGVFcnJvcihhKyIgaXMgbm90IGV4dGVuc2libGUiKTtyZXR1cm4gYX06bnVsbDskanNjb21wLmFycmF5SXRlcmF0b3JJbXBsPWZ1bmN0aW9uKGEpe3ZhciBiPTA7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGI8YS5sZW5ndGg\/e2RvbmU6ITEsdmFsdWU6YVtiKytdfTp7ZG9uZTohMH19fTskanNjb21wLmFycmF5SXRlcmF0b3I9ZnVuY3Rpb24oYSl7cmV0dXJue25leHQ6JGpzY29tcC5hcnJheUl0ZXJhdG9ySW1wbChhKX19OwokanNjb21wLm1ha2VJdGVyYXRvcj1mdW5jdGlvbihhKXt2YXIgYj0idW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmU3ltYm9sLml0ZXJhdG9yJiZhW1N5bWJvbC5pdGVyYXRvcl07cmV0dXJuIGI\/Yi5jYWxsKGEpOiRqc2NvbXAuYXJyYXlJdGVyYXRvcihhKX07JGpzY29tcC5nZW5lcmF0b3I9e307JGpzY29tcC5nZW5lcmF0b3IuZW5zdXJlSXRlcmF0b3JSZXN1bHRJc09iamVjdF89ZnVuY3Rpb24oYSl7aWYoIShhIGluc3RhbmNlb2YgT2JqZWN0KSl0aHJvdyBuZXcgVHlwZUVycm9yKCJJdGVyYXRvciByZXN1bHQgIithKyIgaXMgbm90IGFuIG9iamVjdCIpO307CiRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQ9ZnVuY3Rpb24oKXt0aGlzLmlzUnVubmluZ189ITE7dGhpcy55aWVsZEFsbEl0ZXJhdG9yXz1udWxsO3RoaXMueWllbGRSZXN1bHQ9dm9pZCAwO3RoaXMubmV4dEFkZHJlc3M9MTt0aGlzLmZpbmFsbHlBZGRyZXNzXz10aGlzLmNhdGNoQWRkcmVzc189MDt0aGlzLmZpbmFsbHlDb250ZXh0c189dGhpcy5hYnJ1cHRDb21wbGV0aW9uXz1udWxsfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5zdGFydF89ZnVuY3Rpb24oKXtpZih0aGlzLmlzUnVubmluZ18pdGhyb3cgbmV3IFR5cGVFcnJvcigiR2VuZXJhdG9yIGlzIGFscmVhZHkgcnVubmluZyIpO3RoaXMuaXNSdW5uaW5nXz0hMH07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuc3RvcF89ZnVuY3Rpb24oKXt0aGlzLmlzUnVubmluZ189ITF9OwokanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5qdW1wVG9FcnJvckhhbmRsZXJfPWZ1bmN0aW9uKCl7dGhpcy5uZXh0QWRkcmVzcz10aGlzLmNhdGNoQWRkcmVzc198fHRoaXMuZmluYWxseUFkZHJlc3NffTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5uZXh0Xz1mdW5jdGlvbihhKXt0aGlzLnlpZWxkUmVzdWx0PWF9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLnRocm93Xz1mdW5jdGlvbihhKXt0aGlzLmFicnVwdENvbXBsZXRpb25fPXtleGNlcHRpb246YSxpc0V4Y2VwdGlvbjohMH07dGhpcy5qdW1wVG9FcnJvckhhbmRsZXJfKCl9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLnJldHVybj1mdW5jdGlvbihhKXt0aGlzLmFicnVwdENvbXBsZXRpb25fPXtyZXR1cm46YX07dGhpcy5uZXh0QWRkcmVzcz10aGlzLmZpbmFsbHlBZGRyZXNzX307CiRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmp1bXBUaHJvdWdoRmluYWxseUJsb2Nrcz1mdW5jdGlvbihhKXt0aGlzLmFicnVwdENvbXBsZXRpb25fPXtqdW1wVG86YX07dGhpcy5uZXh0QWRkcmVzcz10aGlzLmZpbmFsbHlBZGRyZXNzX307JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUueWllbGQ9ZnVuY3Rpb24oYSxiKXt0aGlzLm5leHRBZGRyZXNzPWI7cmV0dXJue3ZhbHVlOmF9fTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS55aWVsZEFsbD1mdW5jdGlvbihhLGIpe2E9JGpzY29tcC5tYWtlSXRlcmF0b3IoYSk7dmFyIGM9YS5uZXh0KCk7JGpzY29tcC5nZW5lcmF0b3IuZW5zdXJlSXRlcmF0b3JSZXN1bHRJc09iamVjdF8oYyk7aWYoYy5kb25lKXRoaXMueWllbGRSZXN1bHQ9Yy52YWx1ZSx0aGlzLm5leHRBZGRyZXNzPWI7ZWxzZSByZXR1cm4gdGhpcy55aWVsZEFsbEl0ZXJhdG9yXz1hLHRoaXMueWllbGQoYy52YWx1ZSxiKX07CiRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmp1bXBUbz1mdW5jdGlvbihhKXt0aGlzLm5leHRBZGRyZXNzPWF9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmp1bXBUb0VuZD1mdW5jdGlvbigpe3RoaXMubmV4dEFkZHJlc3M9MH07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuc2V0Q2F0Y2hGaW5hbGx5QmxvY2tzPWZ1bmN0aW9uKGEsYil7dGhpcy5jYXRjaEFkZHJlc3NfPWE7dm9pZCAwIT1iJiYodGhpcy5maW5hbGx5QWRkcmVzc189Yil9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLnNldEZpbmFsbHlCbG9jaz1mdW5jdGlvbihhKXt0aGlzLmNhdGNoQWRkcmVzc189MDt0aGlzLmZpbmFsbHlBZGRyZXNzXz1hfHwwfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5sZWF2ZVRyeUJsb2NrPWZ1bmN0aW9uKGEsYil7dGhpcy5uZXh0QWRkcmVzcz1hO3RoaXMuY2F0Y2hBZGRyZXNzXz1ifHwwfTsKJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuZW50ZXJDYXRjaEJsb2NrPWZ1bmN0aW9uKGEpe3RoaXMuY2F0Y2hBZGRyZXNzXz1hfHwwO2E9dGhpcy5hYnJ1cHRDb21wbGV0aW9uXy5leGNlcHRpb247dGhpcy5hYnJ1cHRDb21wbGV0aW9uXz1udWxsO3JldHVybiBhfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5lbnRlckZpbmFsbHlCbG9jaz1mdW5jdGlvbihhLGIsYyl7Yz90aGlzLmZpbmFsbHlDb250ZXh0c19bY109dGhpcy5hYnJ1cHRDb21wbGV0aW9uXzp0aGlzLmZpbmFsbHlDb250ZXh0c189W3RoaXMuYWJydXB0Q29tcGxldGlvbl9dO3RoaXMuY2F0Y2hBZGRyZXNzXz1hfHwwO3RoaXMuZmluYWxseUFkZHJlc3NfPWJ8fDB9OwokanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5sZWF2ZUZpbmFsbHlCbG9jaz1mdW5jdGlvbihhLGIpe2I9dGhpcy5maW5hbGx5Q29udGV4dHNfLnNwbGljZShifHwwKVswXTtpZihiPXRoaXMuYWJydXB0Q29tcGxldGlvbl89dGhpcy5hYnJ1cHRDb21wbGV0aW9uX3x8Yil7aWYoYi5pc0V4Y2VwdGlvbilyZXR1cm4gdGhpcy5qdW1wVG9FcnJvckhhbmRsZXJfKCk7dm9pZCAwIT1iLmp1bXBUbyYmdGhpcy5maW5hbGx5QWRkcmVzc188Yi5qdW1wVG8\/KHRoaXMubmV4dEFkZHJlc3M9Yi5qdW1wVG8sdGhpcy5hYnJ1cHRDb21wbGV0aW9uXz1udWxsKTp0aGlzLm5leHRBZGRyZXNzPXRoaXMuZmluYWxseUFkZHJlc3NffWVsc2UgdGhpcy5uZXh0QWRkcmVzcz1hfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5mb3JJbj1mdW5jdGlvbihhKXtyZXR1cm4gbmV3ICRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQuUHJvcGVydHlJdGVyYXRvcihhKX07CiRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQuUHJvcGVydHlJdGVyYXRvcj1mdW5jdGlvbihhKXt0aGlzLm9iamVjdF89YTt0aGlzLnByb3BlcnRpZXNfPVtdO2Zvcih2YXIgYiBpbiBhKXRoaXMucHJvcGVydGllc18ucHVzaChiKTt0aGlzLnByb3BlcnRpZXNfLnJldmVyc2UoKX07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5Qcm9wZXJ0eUl0ZXJhdG9yLnByb3RvdHlwZS5nZXROZXh0PWZ1bmN0aW9uKCl7Zm9yKDswPHRoaXMucHJvcGVydGllc18ubGVuZ3RoOyl7dmFyIGE9dGhpcy5wcm9wZXJ0aWVzXy5wb3AoKTtpZihhIGluIHRoaXMub2JqZWN0XylyZXR1cm4gYX1yZXR1cm4gbnVsbH07JGpzY29tcC5nZW5lcmF0b3IuRW5naW5lXz1mdW5jdGlvbihhKXt0aGlzLmNvbnRleHRfPW5ldyAkanNjb21wLmdlbmVyYXRvci5Db250ZXh0O3RoaXMucHJvZ3JhbV89YX07CiRqc2NvbXAuZ2VuZXJhdG9yLkVuZ2luZV8ucHJvdG90eXBlLm5leHRfPWZ1bmN0aW9uKGEpe3RoaXMuY29udGV4dF8uc3RhcnRfKCk7aWYodGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yXylyZXR1cm4gdGhpcy55aWVsZEFsbFN0ZXBfKHRoaXMuY29udGV4dF8ueWllbGRBbGxJdGVyYXRvcl8ubmV4dCxhLHRoaXMuY29udGV4dF8ubmV4dF8pO3RoaXMuY29udGV4dF8ubmV4dF8oYSk7cmV0dXJuIHRoaXMubmV4dFN0ZXBfKCl9OwokanNjb21wLmdlbmVyYXRvci5FbmdpbmVfLnByb3RvdHlwZS5yZXR1cm5fPWZ1bmN0aW9uKGEpe3RoaXMuY29udGV4dF8uc3RhcnRfKCk7dmFyIGI9dGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yXztpZihiKXJldHVybiB0aGlzLnlpZWxkQWxsU3RlcF8oInJldHVybiJpbiBiP2JbInJldHVybiJdOmZ1bmN0aW9uKGMpe3JldHVybnt2YWx1ZTpjLGRvbmU6ITB9fSxhLHRoaXMuY29udGV4dF8ucmV0dXJuKTt0aGlzLmNvbnRleHRfLnJldHVybihhKTtyZXR1cm4gdGhpcy5uZXh0U3RlcF8oKX07CiRqc2NvbXAuZ2VuZXJhdG9yLkVuZ2luZV8ucHJvdG90eXBlLnRocm93Xz1mdW5jdGlvbihhKXt0aGlzLmNvbnRleHRfLnN0YXJ0XygpO2lmKHRoaXMuY29udGV4dF8ueWllbGRBbGxJdGVyYXRvcl8pcmV0dXJuIHRoaXMueWllbGRBbGxTdGVwXyh0aGlzLmNvbnRleHRfLnlpZWxkQWxsSXRlcmF0b3JfWyJ0aHJvdyJdLGEsdGhpcy5jb250ZXh0Xy5uZXh0Xyk7dGhpcy5jb250ZXh0Xy50aHJvd18oYSk7cmV0dXJuIHRoaXMubmV4dFN0ZXBfKCl9OwokanNjb21wLmdlbmVyYXRvci5FbmdpbmVfLnByb3RvdHlwZS55aWVsZEFsbFN0ZXBfPWZ1bmN0aW9uKGEsYixjKXt0cnl7dmFyIGQ9YS5jYWxsKHRoaXMuY29udGV4dF8ueWllbGRBbGxJdGVyYXRvcl8sYik7JGpzY29tcC5nZW5lcmF0b3IuZW5zdXJlSXRlcmF0b3JSZXN1bHRJc09iamVjdF8oZCk7aWYoIWQuZG9uZSlyZXR1cm4gdGhpcy5jb250ZXh0Xy5zdG9wXygpLGQ7dmFyIGU9ZC52YWx1ZX1jYXRjaChrKXtyZXR1cm4gdGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yXz1udWxsLHRoaXMuY29udGV4dF8udGhyb3dfKGspLHRoaXMubmV4dFN0ZXBfKCl9dGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yXz1udWxsO2MuY2FsbCh0aGlzLmNvbnRleHRfLGUpO3JldHVybiB0aGlzLm5leHRTdGVwXygpfTsKJGpzY29tcC5nZW5lcmF0b3IuRW5naW5lXy5wcm90b3R5cGUubmV4dFN0ZXBfPWZ1bmN0aW9uKCl7Zm9yKDt0aGlzLmNvbnRleHRfLm5leHRBZGRyZXNzOyl0cnl7dmFyIGE9dGhpcy5wcm9ncmFtXyh0aGlzLmNvbnRleHRfKTtpZihhKXJldHVybiB0aGlzLmNvbnRleHRfLnN0b3BfKCkse3ZhbHVlOmEudmFsdWUsZG9uZTohMX19Y2F0Y2goYil7dGhpcy5jb250ZXh0Xy55aWVsZFJlc3VsdD12b2lkIDAsdGhpcy5jb250ZXh0Xy50aHJvd18oYil9dGhpcy5jb250ZXh0Xy5zdG9wXygpO2lmKHRoaXMuY29udGV4dF8uYWJydXB0Q29tcGxldGlvbl8pe2E9dGhpcy5jb250ZXh0Xy5hYnJ1cHRDb21wbGV0aW9uXzt0aGlzLmNvbnRleHRfLmFicnVwdENvbXBsZXRpb25fPW51bGw7aWYoYS5pc0V4Y2VwdGlvbil0aHJvdyBhLmV4Y2VwdGlvbjtyZXR1cm57dmFsdWU6YS5yZXR1cm4sZG9uZTohMH19cmV0dXJue3ZhbHVlOnZvaWQgMCxkb25lOiEwfX07CiRqc2NvbXAuZ2VuZXJhdG9yLkdlbmVyYXRvcl89ZnVuY3Rpb24oYSl7dGhpcy5uZXh0PWZ1bmN0aW9uKGIpe3JldHVybiBhLm5leHRfKGIpfTt0aGlzLnRocm93PWZ1bmN0aW9uKGIpe3JldHVybiBhLnRocm93XyhiKX07dGhpcy5yZXR1cm49ZnVuY3Rpb24oYil7cmV0dXJuIGEucmV0dXJuXyhiKX07dGhpc1tTeW1ib2wuaXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9fTskanNjb21wLmdlbmVyYXRvci5jcmVhdGVHZW5lcmF0b3I9ZnVuY3Rpb24oYSxiKXtiPW5ldyAkanNjb21wLmdlbmVyYXRvci5HZW5lcmF0b3JfKG5ldyAkanNjb21wLmdlbmVyYXRvci5FbmdpbmVfKGIpKTskanNjb21wLnNldFByb3RvdHlwZU9mJiZhLnByb3RvdHlwZSYmJGpzY29tcC5zZXRQcm90b3R5cGVPZihiLGEucHJvdG90eXBlKTtyZXR1cm4gYn07CiRqc2NvbXAuYXN5bmNFeGVjdXRlUHJvbWlzZUdlbmVyYXRvcj1mdW5jdGlvbihhKXtmdW5jdGlvbiBiKGQpe3JldHVybiBhLm5leHQoZCl9ZnVuY3Rpb24gYyhkKXtyZXR1cm4gYS50aHJvdyhkKX1yZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24oZCxlKXtmdW5jdGlvbiBrKGgpe2guZG9uZT9kKGgudmFsdWUpOlByb21pc2UucmVzb2x2ZShoLnZhbHVlKS50aGVuKGIsYykudGhlbihrLGUpfWsoYS5uZXh0KCkpfSl9OyRqc2NvbXAuYXN5bmNFeGVjdXRlUHJvbWlzZUdlbmVyYXRvckZ1bmN0aW9uPWZ1bmN0aW9uKGEpe3JldHVybiAkanNjb21wLmFzeW5jRXhlY3V0ZVByb21pc2VHZW5lcmF0b3IoYSgpKX07JGpzY29tcC5hc3luY0V4ZWN1dGVQcm9taXNlR2VuZXJhdG9yUHJvZ3JhbT1mdW5jdGlvbihhKXtyZXR1cm4gJGpzY29tcC5hc3luY0V4ZWN1dGVQcm9taXNlR2VuZXJhdG9yKG5ldyAkanNjb21wLmdlbmVyYXRvci5HZW5lcmF0b3JfKG5ldyAkanNjb21wLmdlbmVyYXRvci5FbmdpbmVfKGEpKSl9OwpqUXVlcnkubm9Db25mbGljdD1mdW5jdGlvbigpe3JldHVybiBqUXVlcnl9O2pRdWVyeS5ldmVudC5zcGVjaWFsLnRvdWNoc3RhcnQ9e3NldHVwOmZ1bmN0aW9uKGEsYixjKXtiLmluY2x1ZGVzKCJub1ByZXZlbnREZWZhdWx0Iik\/dGhpcy5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaHN0YXJ0IixjLHtwYXNzaXZlOiExfSk6dGhpcy5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaHN0YXJ0IixjLHtwYXNzaXZlOiEwfSl9fTtqUXVlcnkuZXhwci5wc2V1ZG9zLnJlYWxseVZpc2libGU9ZnVuY3Rpb24oYSl7dHJ5e2lmKGE9PWRvY3VtZW50LmJvZHkpcmV0dXJuITA7dmFyIGI9alF1ZXJ5KGEpO3JldHVybiBiLmlzKCI6dmlzaWJsZSIpJiYiaGlkZGVuIiE9PWIuY3NzKCJ2aXNpYmlsaXR5IikmJjA8Yi5wYXJlbnQoIjpyZWFsbHlWaXNpYmxlIikubGVuZ3RofWNhdGNoKGMpe3JldHVybiBjb25zb2xlLmxvZyhjLm1lc3NhZ2UsYyksITF9fTsKQXJyYXkucHJvdG90eXBlLmZpbmR8fE9iamVjdC5kZWZpbmVQcm9wZXJ0eShBcnJheS5wcm90b3R5cGUsImZpbmQiLHt2YWx1ZTpmdW5jdGlvbihhLGIpe2lmKG51bGw9PXRoaXMpdGhyb3cgVHlwZUVycm9yKCcidGhpcyIgaXMgbnVsbCBvciBub3QgZGVmaW5lZCcpO3ZhciBjPU9iamVjdCh0aGlzKSxkPWMubGVuZ3RoPj4+MDtpZigiZnVuY3Rpb24iIT09dHlwZW9mIGEpdGhyb3cgVHlwZUVycm9yKCJwcmVkaWNhdGUgbXVzdCBiZSBhIGZ1bmN0aW9uIik7Zm9yKHZhciBlPTA7ZTxkOyl7dmFyIGs9Y1tlXTtpZihhLmNhbGwoYixrLGUsYykpcmV0dXJuIGs7ZSsrfX0sY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk7CnZhciBpc0Z1bmN0aW9uPWE9PiJmdW5jdGlvbiI9PT10eXBlb2YgYSx0cmltPWE9PmEucmVwbGFjZSgvXlxzK3xccyskL2csIiIpLGRlYnVnPWZ1bmN0aW9uKCl7aWYoZGVidWdFbmFibGVkKCkpe3ZhciBhPWNvbnNvbGUsYj1hcmd1bWVudHM7ImZ1bmN0aW9uIj09dHlwZW9mIGEubG9nJiZhLmxvZy5hcHBseShhLGIpfX0sZGVidWdFbmFibGVkPWZ1bmN0aW9uKCl7dmFyIGE9ZG9jdW1lbnQubG9jYXRpb24uaG9zdDt2YXIgYj1kb2N1bWVudC5jb29raWUubWF0Y2goL3Rlc3Rpbmc9KFteO10rKS9pKTtiPW51bGw9PWI\/ITE6YlsxXTtyZXR1cm4gYnx8L14oZGVhbGVyfGRlbW8pfGQyY21lZGlhXC5jYSQvLnRlc3QoYSkmJiJvZmYiIT1ifSxlbmFibGVEZWJ1Zz1mdW5jdGlvbigpe0Nvb2tpZXMuc2V0KCJ0ZXN0aW5nIiwib24iKX0sZGlzYWJsZURlYnVnPWZ1bmN0aW9uKCl7Q29va2llcy5zZXQoInRlc3RpbmciLCJvZmYiKX0sQWxlcnRCYXI9ZnVuY3Rpb24oYSl7dmFyIGI9YS5zZWN0aW9ucy50b0xvd2VyQ2FzZSgpLApjPWEuY3VycmVudC50b0xvd2VyQ2FzZSgpLGQ9JCgiLmhlYWRlci13cmFwcGVyIikubGVuZ3RoPyQoIi5oZWFkZXItd3JhcHBlciIpOiQoIiNtYWluRGl2IiksZT0kKCIjYWxlcnRNc2dDb250YWluZXIiKSxrPSQoImJvZHkiKSxoPSQoIi5BZGRlZFRvcExpbmtEaXYiKSxuPW5ldyBEYXRlO24uc2V0VGltZShuLmdldFRpbWUoKSszNkU1KTt2YXIgeD1mdW5jdGlvbigpe0Nvb2tpZXMuc2V0KCJhbGVydE1lc3NhZ2VDbG9zZWQiLDEsbiwiLyIpO2UuaGlkZSgpO2QuY3NzKHttYXJnaW5Ub3A6MH0pO2suY3NzKCJiYWNrZ3JvdW5kLXBvc2l0aW9uLXkiLCIiKTswPGgubGVuZ3RoJiZoLmNzcygibWFyZ2luLXRvcCIsIiIpfTstMTxiLmluZGV4T2YoYykmJiFDb29raWVzLmdldCgiYWxlcnRNZXNzYWdlQ2xvc2VkIikmJihlLmNzcyh7YmFja2dyb3VuZENvbG9yOmEuY29sb3J9KSwkKCIuY2xvc2UiLGUpLm9uKCJjbGljayIseCksZC5jc3MoIm1hcmdpbi10b3AiLGUuaGVpZ2h0KCkrInB4IiksCmsuY3NzKHsiYmFja2dyb3VuZC1wb3NpdGlvbi15IjplLmhlaWdodCgpKyJweCJ9KSwwPGgubGVuZ3RoJiZoLmNzcygibWFyZ2luLXRvcCIsZS5oZWlnaHQoKSsicHgiKSxlLnNob3coKSl9O2Z1bmN0aW9uIExlYWRHZW5BREYoYSxiLGMsZCxlLGssaCxuKXtpZih0eXBlb2YgY2FycHJvb2ZIYW5kbGVyKXJldHVybiBjYXJwcm9vZkhhbmRsZXIubGVhZEdlbi5hcHBseShjYXJwcm9vZkhhbmRsZXIsYXJndW1lbnRzKX0KZnVuY3Rpb24gcnVuSW1hZ2VQb3B1cEZpcmV3b3JrcygpeyJ1bmRlZmluZWQiIT10eXBlb2YgRmlyZXdvcmtUaW1lciYmKGltYWdlRmlyZXdvcmtzPSEwLEZpcmV3b3JrVGltZXIoImJnSW1hZ2UiLCJGRkZGRkYiLDIwMCwyMDApLEZpcmV3b3JrVGltZXIoImJnSW1hZ2UiLCJGRjAwMDAiLDM4MCwyNTAsMUUzKSxGaXJld29ya1RpbWVyKCJiZ0ltYWdlIiwiMDBmZjExIiw5MCwxNzAsMkUzKSxGaXJld29ya1RpbWVyKCJiZ0ltYWdlIiwiNDRjZGZmIiwzMjAsMjUwLDNFMywwLC44KSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7cnVuSW1hZ2VQb3B1cEZpcmV3b3JrcygpfSwxRTQpKX0KZnVuY3Rpb24gaGFuZGxlQWN0aW9uQ2xpY2soYSl7YT1hfHx3aW5kb3cuZXZlbnQ7YT1hLmN1cnJlbnRUYXJnZXR8fGEuc3JjRWxlbWVudDt2YXIgYj13aW5kb3cubG9jYXRpb24uaHJlZi5zdWJzdHJpbmcod2luZG93LmxvY2F0aW9uLmhyZWYubGFzdEluZGV4T2YoIi8iKSsxKSxjPSJ1c2VkIjt2YXIgZD0iIjtpZigtMT09d2luZG93LmxvY2F0aW9uLmhyZWYuaW5kZXhPZigiLWlkIikpe2Q9Yi5yZXBsYWNlKCIuaHRtbCIsIiIpLnNwbGl0KCItIik7aWYoMz5kLmxlbmd0aHx8LTE8Yi5pbmRleE9mKCJzZWFyY2giKXx8LTE8Yi5pbmRleE9mKCJmaW5kLSIpfHwtMTxiLmluZGV4T2YoInJlY2hlcmNoZSIpfHwtMTxiLmluZGV4T2YoInByaXgtIil8fC0xPGIuaW5kZXhPZigicHJpY2UtIil8fC0xPGIuaW5kZXhPZigiZXNzYWlzLXJvdXRpZXItIil8fC0xPGIuaW5kZXhPZigidGVzdC1kcml2ZS0iKXx8LTE8Yi5pbmRleE9mKCJ2ZWhpY3VsZS1lY2hhbmdlLSIpfHwtMTxiLmluZGV4T2YoInRyYWRlLWluLSIpfHwKLTE8Yi5pbmRleE9mKCJwbmV1cy1waWVjZXMtIil8fC0xPGIuaW5kZXhPZigiY2FyLXBhcnRzLSIpfHwtMTxiLmluZGV4T2YoInJlbmRlei12b3VzLSIpfHwtMTxiLmluZGV4T2YoIi1hcHBvaW50bWVudCIpfHwtMTxiLmluZGV4T2YoImNyZWRpdCIpfHwtMTxiLmluZGV4T2YoImZpbmFuY2VtZW50Iil8fC0xPGIuaW5kZXhPZigicHJlLWFwcHJvIil8fC0xPGIuaW5kZXhPZigibmV3LXdlc3QiKXx8LTE8Yi5pbmRleE9mKCJjb25maWRlbnRpYWxpdGUiKXx8LTE8Yi5pbmRleE9mKCJwcml2YWN5LXBvbGljeSIpfHwtMTxiLmluZGV4T2YoInRlcm1lcy1ldC1jb25kaXRpb25zIil8fC0xPGIuaW5kZXhPZigidGVybXMtYW5kLWNvbmRpdGlvbnMiKSlkPSIuaHRtbCI7ZWxzZXt2YXIgZT0obmV3IERhdGUpLmdldEZ1bGxZZWFyKCk7InVuZGVmaW5lZCI9PXR5cGVvZiBkWzJdfHxlIT1kWzJdJiZlKzEhPWRbMl18fChjPSJuZXciKTtkPSIvIitifWQ9YS5nZXRBdHRyaWJ1dGUoInRhcmdldFVSSSIpLnJlcGxhY2UoIi5odG1sIiwKZCl9ZWxzZXtzd2l0Y2goYS5nZXRBdHRyaWJ1dGUoImFjdGlvbiIpKXtjYXNlICJUZXN0RHJpdmVBY3Rpb25Cb3giOmQ9JCgiI3Rlc3REcml2ZUZvbGRlciIpLnZhbCgpK2I7YnJlYWs7Y2FzZSAiUHJpY2VBY3Rpb25Cb3giOmQ9JCgiI3ByaWNlUmVxdWVzdEZvbGRlciIpLnZhbCgpK2I7YnJlYWs7Y2FzZSAiRXZhbEFjdGlvbkJveCI6ZD0kKCIjZXZhbENhckZvbGRlciIpLnZhbCgpK2I7YnJlYWs7Y2FzZSAiRmluYW5jZUFjdGlvbkJveCI6ZD0kKCIjRmluYW5jZUZvbGRlciIpLnZhbCgpK2I7YnJlYWs7ZGVmYXVsdDoidW5kZWZpbmVkIiE9dHlwZW9mICQoYSkuYXR0cigiZm9sZGVyIik\/ZD0kKGEpLmF0dHIoImZvbGRlciIpOiJ1bmRlZmluZWQiIT10eXBlb2YgJChhKS5hdHRyKCJ0YXJnZXR1cmkiKSYmKGQ9JChhKS5hdHRyKCJ0YXJnZXR1cmkiKSl9Q29va2llcy5zZXQoImZyb21kZXRhaWxzcGFnZSIsIjEiLG51bGwsIi8iKX1pZigidW5kZWZpbmVkIiE9dHlwZW9mIGQmJm51bGwhPQpkJiYwPGQubGVuZ3RoKXtiPWQyY21lZGlhLmh0bWxGaWxlKCExLCEwKTtlPWIuc3BsaXQoIi0iKTt2YXIgaz0iIixoPSIiLG49IiI7MDxlLmxlbmd0aCYmKGs9ZVswXSk7MTxlLmxlbmd0aCYmKGg9ZVsxXSk7MjxlLmxlbmd0aCYmKG49ZVsyXSk7MDxrLmxlbmd0aCYmMDxoLmxlbmd0aCYmMDxuLmxlbmd0aCYmIWlzTmFOKG4pJiY0PT1uLnRvU3RyaW5nKCkubGVuZ3RoJiYtMTxkLmluZGV4T2YoIi5odG0iKSYmKGU9YS5nZXRBdHRyaWJ1dGUoImZvbGRlciIpLGQ9InVuZGVmaW5lZCIhPXR5cGVvZiBlJiZudWxsIT1lP2U6ZC5zdWJzdHJpbmcoMCxkLmxhc3RJbmRleE9mKCIvIikrMSksZD1kLnJlcGxhY2UoIi5odG1sIiwiLyIpK2IrIi5odG1sIik7JChhKS5oYXNDbGFzcygidHJhZGVpbkxpbmsiKSYmKDA8YS5nZXRBdHRyaWJ1dGUoInRhcmdldFVSSSIpLmluZGV4T2YoInRyYWRlaW52YWx1ZXMiKXx8MDxhLmdldEF0dHJpYnV0ZSgidGFyZ2V0VVJJIikuaW5kZXhPZigiaW5zdGFudG9mZmVyLmFjY3UtdHJhZGUuY29tIikpPwpzaG93VHJhZGVJblBvcHVwKGEuZ2V0QXR0cmlidXRlKCJ0YXJnZXRVUkkiKSk6KCJuZXciPT1jJiYoZD1kLnJlcGxhY2UoIm9jY2FzaW9uIiwibmV1ZiIpLnJlcGxhY2UoInVzZWQiLCJuZXciKSksd2luZG93LmxvY2F0aW9uLmhyZWY9ZCl9fQpmdW5jdGlvbiBvcGVuRmluYW5jZU11bHRpc3RlcEZvcm1PbkN1cnJlbnRQYWdlKGEsYixjLGQsZSxrLGgpe2EucHJldmVudERlZmF1bHQoKTthLnN0b3BQcm9wYWdhdGlvbigpO2I\/JCgiI3BvcHVwbWFrZU11bHRpc3RlcEZvcm0iKS52YWwoYik6Ik5FV0NBUkRFVEFJTFMiPT0kKCJib2R5IikuYXR0cigiaWQiKT8kKCIjcG9wdXBtYWtlTXVsdGlzdGVwRm9ybSIpLnZhbCgkKCIuYnJhbmRlbWFpbCIpLnZhbCgpKToiY2FyZGV0YWlsLmh0bWwiPT0kKCIjUEFHRUlEIikudmFsKCkmJiQoIiNwb3B1cG1ha2VNdWx0aXN0ZXBGb3JtIikudmFsKCQoIiNwaG9uZW1ha2UiKS52YWwoKSk7Yz8kKCIjcG9wdXBtb2RlbE11bHRpc3RlcEZvcm0iKS52YWwoYyk6Ik5FV0NBUkRFVEFJTFMiPT0kKCJib2R5IikuYXR0cigiaWQiKT8kKCIjcG9wdXBtb2RlbE11bHRpc3RlcEZvcm0iKS52YWwoJCgiLm1vZGVsZW1haWwiKS52YWwoKSk6ImNhcmRldGFpbC5odG1sIj09JCgiI1BBR0VJRCIpLnZhbCgpJiYKJCgiI3BvcHVwbW9kZWxNdWx0aXN0ZXBGb3JtIikudmFsKCQoIiNwaG9uZW1vZGVsIikudmFsKCkpO2Q\/JCgiI3BvcHVweWVhck11bHRpc3RlcEZvcm0iKS52YWwoZCk6Ik5FV0NBUkRFVEFJTFMiPT0kKCJib2R5IikuYXR0cigiaWQiKT8kKCIjcG9wdXB5ZWFyTXVsdGlzdGVwRm9ybSIpLnZhbCgkKCIueWVhcmVtYWlsIikudmFsKCkpOiJjYXJkZXRhaWwuaHRtbCI9PSQoIiNQQUdFSUQiKS52YWwoKSYmJCgiI3BvcHVweWVhck11bHRpc3RlcEZvcm0iKS52YWwoJCgiI3Bob25lbXllYXIiKS52YWwoKSk7ZT8kKCIjcG9wdXBzdG9ja251bWJlck11bHRpc3RlcEZvcm0iKS52YWwoZSk6Ik5FV0NBUkRFVEFJTFMiPT0kKCJib2R5IikuYXR0cigiaWQiKT8kKCIjcG9wdXBzdG9ja251bWJlck11bHRpc3RlcEZvcm0iKS52YWwoIiIpOiJjYXJkZXRhaWwuaHRtbCI9PSQoIiNQQUdFSUQiKS52YWwoKSYmJCgiI3BvcHVwc3RvY2tudW1iZXJNdWx0aXN0ZXBGb3JtIikudmFsKCQoIiNwaG9uZXN0b2NrbnVtYmVyIikudmFsKCkpOwprPyQoIiN0b3BjYXJpZE11bHRpc3RlcEZvcm0iKS52YWwoayk6Ik5FV0NBUkRFVEFJTFMiPT0kKCJib2R5IikuYXR0cigiaWQiKSYmJCgiI3RvcGNhcmlkTXVsdGlzdGVwRm9ybSIpLnZhbCgiIik7aCYmKGguc2VuZFRvJiYkKCIjRklOQU5DRV9GT1JNX1NFTkRUT19FTUFJTCIpLnZhbChoLnNlbmRUbyksaC5zZW5kVG9BZGYmJiQoIiNGSU5BTkNFX0ZPUk1fU0VORFRPQURGX0VNQUlMIikudmFsKGguc2VuZFRvQWRmKSxoLmRlYWxlck5hbWUmJiQoIiNGSU5BTkNFX0ZPUk1fREVBTEVSTkFNRSIpLnZhbChoLmRlYWxlck5hbWUpKTthPSJmaW5hbmNlTXVsdGlzdGVwUG9wdXBDb250YWluZXIiOyQoIiNGaW5hbmNlX0Zvcm1UeXBlIikubGVuZ3RoJiYibXVsdGlzdGVwSW5zdGFudCI9PSQoIiNGaW5hbmNlX0Zvcm1UeXBlIikudmFsKCkmJiQoIiNmaW5hbmNlTXVsdGlzdGVwSW5zdGFudFBvcHVwQ29udGFpbmVyIikubGVuZ3RoJiYoYT0iZmluYW5jZU11bHRpc3RlcEluc3RhbnRQb3B1cENvbnRhaW5lciIpOwokKCIjIithKS5wb3B1cGl6ZSgpLnNldFRyaWdnZXIoImNsaWNrIikub3BlbigxKX1mdW5jdGlvbiBvcGVuU2hvd3Jvb21Db250YWN0UG9wdXAoYSxiLGMsZCl7YS5wcmV2ZW50RGVmYXVsdCgpO2Euc3RvcFByb3BhZ2F0aW9uKCk7ZW1haWxIYW5kbGVyLm1ha2U9YjskKCIjbGFzdHZpZXdlZG1ha2UiKS52YWwoYik7ZW1haWxIYW5kbGVyLm1vZGVsPWM7JCgiI2xhc3R2aWV3ZWRtb2RlbCIpLnZhbChjKTtlbWFpbEhhbmRsZXIueWVhcj1kOyQoIiNsYXN0dmlld2VkeWVhciIpLnZhbChkKTskKCIjY29udGFjdHBvcHVwIikucG9wdXBpemUoKS5zZXRUcmlnZ2VyKCJjbGljayIpLm9wZW4oKX12YXIgZDJjbWVkaWE9ZDJjbWVkaWF8fHt9OwpkMmNtZWRpYS5zY3JvbGxUbz1mdW5jdGlvbihhLGIsYyl7InVuZGVmaW5lZCI9PXR5cGVvZiBjJiYoYz0xRTMpOyJ1bmRlZmluZWQiPT10eXBlb2YgYiYmKGI9MCk7JCgiaHRtbCwgYm9keSIpLmFuaW1hdGUoe3Njcm9sbFRvcDokKGEpLm9mZnNldCgpLnRvcC1ifSxjKTtyZXR1cm4hMX07CmQyY21lZGlhLnVybD17X3Nhbml0aXplOiEwLGRlc2FuaXRpemU6ZnVuY3Rpb24oYSl7aWYoInN0cmluZyI9PT10eXBlb2YgYSlyZXR1cm4gYS5yZXBsYWNlKC9fL2csIi0iKTtpZigib2JqZWN0Ij09PXR5cGVvZiBhKXtmb3IodmFyIGIgaW4gYSlhW2JdPXRoaXMuZGVzYW5pdGl6ZShhW2JdKTtyZXR1cm4gYX19LGdlbmVyYXRlOmZ1bmN0aW9uKCl7dmFyIGE9IiI7dGhpcy5fc2FuaXRpemUmJihhcmd1bWVudHM9dGhpcy5zYW5pdGl6ZShhcmd1bWVudHMpKTtmb3IoaT0wO2k8YXJndW1lbnRzLmxlbmd0aC0xO2krKylhKz1hcmd1bWVudHNbaV0rIi0iO3JldHVybiBhK2FyZ3VtZW50c1tpXSsiLmh0bWwifSxwYXJzZTpmdW5jdGlvbigpe3VybD1kZWNvZGVVUklDb21wb25lbnQoZG9jdW1lbnQuVVJMKTtzdHJQYXJhbT11cmwuc3Vic3RyaW5nKHVybC5sYXN0SW5kZXhPZigiLyIpKTtvYmpQYXJhbT17bWFrZTpudWxsLG1vZGVsOm51bGwseWVhcjpudWxsLGlkOm51bGx9O2ZvdW5kPSExOwp2YXIgYTtudWxsIT0oYT1zdHJQYXJhbS5tYXRjaCgvXlwvKDIwWzAtOV17Mn18MTlbMC05XXsyfSktKFteLV0rLVteLVwuXSspKC4qXC5odG1sKS8pKSYmKHN0clBhcmFtPSIvIithWzJdKyItIithWzFdK2FbM10pO2E9c3RyUGFyYW0ubWF0Y2goL1wvKFteL10qKS0oLiopLShcZHs0fSkoLWlkKFxkKikpPy5odG1sLyk7Zm91bmR8fG51bGw9PT1hfHwob2JqUGFyYW0ubWFrZT1hWzFdLG9ialBhcmFtLm1vZGVsPWFbMl0sb2JqUGFyYW0ueWVhcj1hWzNdLG9ialBhcmFtLmlkPWFbNV0sZm91bmQ9ITApO2E9c3RyUGFyYW0ubWF0Y2goL1wvKFteL10qKS0oLiopLShcZHs0fSkoLWNcZCopPy5odG1sLyk7Zm91bmR8fG51bGw9PT1hfHwob2JqUGFyYW0ubWFrZT1hWzFdLG9ialBhcmFtLm1vZGVsPWFbMl0sb2JqUGFyYW0ueWVhcj1hWzNdLGZvdW5kPSEwKTthPXN0clBhcmFtLm1hdGNoKC9cLyhbXi9dKiktKFxkezR9KS5odG1sLyk7Zm91bmR8fG51bGw9PT1hfHwob2JqUGFyYW0ubWFrZT0KYVsxXSxvYmpQYXJhbS55ZWFyPWFbMl0sZm91bmQ9ITApO2E9c3RyUGFyYW0ubWF0Y2goL1wvKFteL10qKS0oW14uXSopLmh0bWwvKTtmb3VuZHx8bnVsbD09PWF8fChvYmpQYXJhbS5tYWtlPWFbMV0sb2JqUGFyYW0ubW9kZWw9YVsyXSxmb3VuZD0hMCk7YT1zdHJQYXJhbS5tYXRjaCgvXC8oW14vXSopLmh0bWwvKTtmb3VuZHx8bnVsbD09PWF8fChvYmpQYXJhbS5tYWtlPWFbMV0sZm91bmQ9ITApO3RoaXMuX3Nhbml0aXplJiYob2JqUGFyYW09dGhpcy5kZXNhbml0aXplKG9ialBhcmFtKSk7cmV0dXJuIG9ialBhcmFtfSxzYW5pdGl6ZTpmdW5jdGlvbihhKXtpZigic3RyaW5nIj09PXR5cGVvZiBhKXJldHVybiBhLnJlcGxhY2UoLy0vZywiXyIpO2lmKCJvYmplY3QiPT09dHlwZW9mIGEpe2Zvcih2YXIgYiBpbiBhKWFbYl09dGhpcy5zYW5pdGl6ZShhW2JdKTtyZXR1cm4gYX19LHNhbml0aXplUmVmZXJlcjpmdW5jdGlvbihhKXtyZXR1cm4gYS5yZXBsYWNlKC9bJyJgKCk8PlxbXF17fXwhXS9nLAoiIil9fTtkMmNtZWRpYS5nZXRIdHRwVGV4dD1mdW5jdGlvbigpe3JldHVybiJodHRwczoiPT1kb2N1bWVudC5sb2NhdGlvbi5wcm90b2NvbCYmJCgiI3RvcGRlcGxveW1lbnR0eXBlIikubGVuZ3RoJiYibGl2ZSI9PSQoIiN0b3BkZXBsb3ltZW50dHlwZSIpLnZhbCgpPyJodHRwcyI6Imh0dHAifTtkMmNtZWRpYS5jYXBpdGFsaXNlRmlyc3RMZXR0ZXI9ZnVuY3Rpb24oYSl7cmV0dXJuInVuZGVmaW5lZCI9PXR5cGVvZiBhPyIiOmEuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkrYS5zbGljZSgxKX07ZDJjbWVkaWEuY2FwaXRhbGlzZUZpcnN0TGV0dGVyT2ZFdmVyeVdvcmQ9ZnVuY3Rpb24oYSl7cmV0dXJuInVuZGVmaW5lZCI9PXR5cGVvZiBhPyIiOmEuc3BsaXQoIiAiKS5yZWR1Y2UoZnVuY3Rpb24oYixjKXtjPWQyY21lZGlhLmNhcGl0YWxpc2VGaXJzdExldHRlcihjKTtyZXR1cm4gYj9iKyIgIitjOmN9LCIiKX07CmQyY21lZGlhLnNhZmVTdHJpbmc9ZnVuY3Rpb24oYSl7dmFyIGI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Yi50ZXh0Q29udGVudD1hO3JldHVybiBiLmlubmVyVGV4dH07CmQyY21lZGlhLmh0bWxGaWxlPWZ1bmN0aW9uKGEsYil7dmFyIGM9d2luZG93LmxvY2F0aW9uLnNlYXJjaC5sZW5ndGgmJi0xPHdpbmRvdy5sb2NhdGlvbi5zZWFyY2guaW5kZXhPZigicGF0aD0iKT93aW5kb3cubG9jYXRpb24uc2VhcmNoOndpbmRvdy5sb2NhdGlvbi5wYXRobmFtZTtjPWMuc3Vic3RyaW5nKGMubGFzdEluZGV4T2YoIi8iKSsxKTtjPWQyY21lZGlhLnNhZmVTdHJpbmcoYyk7dHJ5e3ZhciBkPWRlY29kZVVSSUNvbXBvbmVudChjKX1jYXRjaChrKXt2YXIgZT17IiVDMCI6IiZBZ3JhdmU7IiwiJUMxIjoiJkFhY3V0ZTsiLCIlQzIiOiImQWNpcmM7IiwiJUMzIjoiJkF0aWxkZTsiLCIlQzQiOiImQXVtbDsiLCIlQzUiOiImQXJpbmc7IiwiJUM2IjoiJkFFbGlnOyIsIiVDNyI6IiZDY2VkaWw7IiwiJUM4IjoiJkVncmF2ZTsiLCIlQzkiOiImRWFjdXRlOyIsIiVDQSI6IiZFY2lyYzsiLCIlQ0IiOiImRXVtbDsiLCIlQ0MiOiImSWdyYXZlOyIsIiVDRCI6IiZJYWN1dGU7IiwiJUNFIjoiJkljaXJjOyIsCiIlQ0YiOiImSXVtbDsiLCIlRDAiOiImRVRIOyIsIiVEMSI6IiZOdGlsZGU7IiwiJUQyIjoiJk9ncmF2ZTsiLCIlRDMiOiImT2FjdXRlOyIsIiVENCI6IiZPY2lyYzsiLCIlRDUiOiImT3RpbGRlOyIsIiVENiI6IiZPdW1sOyIsIiVEOCI6IiZPc2xhc2g7IiwiJUQ5IjoiJlVncmF2ZTsiLCIlREEiOiImVWFjdXRlOyIsIiVEQiI6IiZVY2lyYzsiLCIlREMiOiImVXVtbDsiLCIlREQiOiImWWFjdXRlOyIsIiVERSI6IiZUSE9STjsiLCIlREYiOiImc3psaWc7IiwiJUUwIjoiJmFncmF2ZTsiLCIlRTEiOiImYWFjdXRlOyIsIiVFMiI6IiZhY2lyYzsiLCIlRTMiOiImYXRpbGRlOyIsIiVFNCI6IiZhdW1sOyIsIiVFNSI6IiZhcmluZzsiLCIlRTYiOiImYWVsaWc7IiwiJUU3IjoiJmNjZWRpbDsiLCIlRTgiOiImZWdyYXZlOyIsIiVFOSI6IiZlYWN1dGU7IiwiJUVBIjoiJmVjaXJjOyIsIiVFQiI6IiZldW1sOyIsIiVFQyI6IiZpZ3JhdmU7IiwiJUVEIjoiJmlhY3V0ZTsiLCIlRUUiOiImaWNpcmM7IiwKIiVFRiI6IiZpdW1sOyIsIiVGMCI6IiZldGg7IiwiJUYxIjoiJm50aWxkZTsiLCIlRjIiOiImb2dyYXZlOyIsIiVGMyI6IiZvYWN1dGU7IiwiJUY0IjoiJm9jaXJjOyIsIiVGNSI6IiZvdGlsZGU7IiwiJUY2IjoiJm91bWw7IiwiJUY3IjoiJmRpdmlkZTsiLCIlRjgiOiImb3NsYXNoOyIsIiVGOSI6IiZ1Z3JhdmU7IiwiJUZBIjoiJnVhY3V0ZTsiLCIlRkIiOiImdWNpcmM7IiwiJUZDIjoiJnV1bWw7IiwiJUZEIjoiJnlhY3V0ZTsiLCIlRkUiOiImdGhvcm47IiwiJUZGIjoiJnl1bWw7In07ZD1jLnJlcGxhY2UoLyVbMC05QS1GXXsyfS9pZyxmdW5jdGlvbihoKXtpZigidW5kZWZpbmVkIj09dHlwZW9mIGVbaF0pcmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudChoKTt2YXIgbj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7bi50ZXh0Q29udGVudD1lW2hdO3JldHVybiBuLmlubmVyVGV4dH0pfWQ9ZC5zdWJzdHJpbmcoMCxkLmluZGV4T2YoIi5odG0iKSk7YSYmKGQ9ZC5yZXBsYWNlKC8gL2csCiJfIikucmVwbGFjZSgvJy9nLCIiKS5yZXBsYWNlKCIuaHRtbCIsIiIpKTtudWxsIT0oYT1kLm1hdGNoKC9eKDE5WzAtOV17Mn18MjBbMC05XXsyfSktKFteLV0rLVteLV0rKSguKikkLykpJiYoZD1hWzJdKyItIithWzFdK2FbM10sIkVOR0xJU0giPT0oIkVOR0xJU0giPT0kKCIjYWN0aXZlc2l0ZWxhbmd1YWdlIikudmFsKCk\/IkVOR0xJU0giOiJGUkVOQ0giKSYmYiYmKGQ9YVsxXSsiLSIrYVsyXSthWzNdKSk7cmV0dXJuIGR9O2QyY21lZGlhLmlzSG9tZXBhZ2U9ZnVuY3Rpb24oKXt2YXIgYT13aW5kb3cubG9jYXRpb24ucGF0aG5hbWU7cmV0dXJuIi8iPT1hfHwiL2VuZy8iPT1hfHwiL2ZyLyI9PWF9O2QyY21lZGlhLnBhZ2VEZXBhcnRtZW50PWZ1bmN0aW9uKCl7dmFyIGE9JCgiI2RlZmF1bHREZXBhcnRtZW50IikudmFsKCk7cmV0dXJuIk9USEVSIj09YSYmZDJjbWVkaWEuaXNIb21lcGFnZSgpPyJIT01FUEFHRSI6YX07CnZhciBqc19kMmNfZ2V0X3ZhbD1qc19kMmNfZ2V0X3ZhbHx8ZnVuY3Rpb24oYSl7dHJ5e3JldHVybihlbD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZChhKSk\/ZWwudmFsdWU6IiJ9Y2F0Y2goYil7cmV0dXJuIGNvbnNvbGUmJmNvbnNvbGUubG9nJiZjb25zb2xlLmxvZygiU3lzdGVtIGZhaWxlZCB3aGlsZSByZXRyaWV2aW5nIHJlcGxhY2VtZW50IHZhbHVlOiAiK2IubWVzc2FnZSxiKSxhfX07U3RyaW5nLnByb3RvdHlwZS5ub0QyQ1JlcGxhY2U9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy52YWx1ZU9mKCl9OwpkMmNCR0NsaWNrPWZ1bmN0aW9uKGEpe3ZhciBiPXRoaXM7JC5leHRlbmQoYixhKTt0aGlzLnNldD1mdW5jdGlvbihjKXsidW5kZWZpbmVkIj09dHlwZW9mIGMmJihjPSExKTt2YXIgZD1iLmJnSW1nVXJsLGU9Yi5iZ0ltZ1BhdGgsaz1iLmJnSW1nRml4ZWQsaD1iLmJnSW1nUmVzcG9uc2l2ZSxuPWIubWFrZSx4PWRvY3VtZW50LmxvY2F0aW9uLnBhdGhuYW1lLnJlcGxhY2UoLy0vZywiIiksdj0kKCIjYWN0aXZlc2l0ZWxhbmd1YWdlIikudmFsKCk\/JCgiI2FjdGl2ZXNpdGVsYW5ndWFnZSIpLnZhbCgpLnRvTG93ZXJDYXNlKCk6ImZyZW5jaCIsZj0iIixnPSExOzAhPWMmJihuPWMudG9Mb3dlckNhc2UoKSk7dmFyIG09Yz0iIjtuP2UuaGFzT3duUHJvcGVydHkobik\/KGM9ZVtuXSxtPWtbbl0raFtuXSxnPSEwKTplLmhhc093blByb3BlcnR5KCJhbGwiKT8oYz1lLmFsbCxtPWsuYWxsK2guYWxsLGc9ITApOmUuaGFzT3duUHJvcGVydHkodikmJihjPWVbdl0sbT1rW3ZdK2hbdl0pOmUuaGFzT3duUHJvcGVydHkodikmJgowPT1nJiYoYz1lW3ZdLG09a1t2XStoW3ZdKTtjJiYoYi5iZ0ltZz1jLnNwbGl0KCIvIikucG9wKCksJCgiYm9keSIpLmF0dHIoInN0eWxlIiwiYmFja2dyb3VuZC1pbWFnZTogdXJsKCciK2MrIicpOyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiB0b3AgY2VudGVyOyBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0OyIrbSkpO2Zvcih2YXIgbCBpbiBkKXtpZigtMSE9eC5pbmRleE9mKGwseCkpe2Y9ZFtsXTticmVha31pZihsPT12KXtmPWRbbF07YnJlYWt9fTA9PWYubGVuZ3RoJiYoZC5oYXNPd25Qcm9wZXJ0eShuKT9mPWRbbl06ZC5oYXNPd25Qcm9wZXJ0eSgiYWxsIikmJihmPWQuYWxsKSk7MDxmLmxlbmd0aCYmKGQ9JCh3aW5kb3cpLndpZHRoKCkvMi0kKCIud3JhcHBlciIpLndpZHRoKCkvMixlPSQod2luZG93KS53aWR0aCgpLzIrJCgiLndyYXBwZXIiKS53aWR0aCgpLzIsJCgiI2JnQ2xpY2sxIikucmVtb3ZlKCksJCgiI2JnQ2xpY2syIikucmVtb3ZlKCksJCgiYm9keSIpLmFwcGVuZCgiPGRpdiBpZD0nYmdDbGljazEnIHN0eWxlPSd6LWluZGV4OjEwMDtjdXJzb3I6cG9pbnRlcjt3aWR0aDoiKwpkKyJweDtoZWlnaHQ6MTAwJTtwb3NpdGlvbjpmaXhlZDtsZWZ0OjBweDt0b3A6MHB4Oyc+PC9kaXY+IiksJCgiYm9keSIpLmFwcGVuZCgiPGRpdiBpZD0nYmdDbGljazInIHN0eWxlPSd6LWluZGV4OjEwMDtjdXJzb3I6cG9pbnRlcjt3aWR0aDoiK2QrInB4O2hlaWdodDoxMDAlO3Bvc2l0aW9uOmZpeGVkO2xlZnQ6IitlKyJweDt0b3A6MHB4Oyc+PC9kaXY+IiksJCgiI2JnQ2xpY2sxIikub24oImNsaWNrIixmdW5jdGlvbigpe2IucmVkaXJlY3QoZil9KSwkKCIjYmdDbGljazIiKS5vbigiY2xpY2siLGZ1bmN0aW9uKCl7Yi5yZWRpcmVjdChmKX0pKX07dGhpcy5yZXNldD1mdW5jdGlvbihjKXtiLnNldCgpfTt0aGlzLnJlZGlyZWN0PWZ1bmN0aW9uKGMpeyJsaXZlIj09Yi5kZXBsb3ltZW50VHlwZSYmKGdhVHJhY2soIl90cmFja0V2ZW50IiwiQ2xpcXVlcyIsIkltYWdlLWRlLWZvbmQiLGIuYmdJbWcsMSksImZ1bmN0aW9uIj09dHlwZW9mIGIuZDJjRXZlbnQmJmIuZDJjRXZlbnQuY2FsbChiLApiLmJnSW1nKSk7d2luZG93Lm9wZW4oYyl9OyQod2luZG93KS5vbigicmVzaXplIixiLnJlc2V0KTtyZXR1cm4gdGhpc307dmFyIGluamVjdEdvb2dsZU1hcHNLZXk9ZnVuY3Rpb24oYSl7bGV0IGI9bnVsbDtyZXR1cm4gZnVuY3Rpb24oYyl7aWYoYilyZXR1cm4gYyhiKTthLmFqYXgoIi9hamF4L2dldEdvb2dsZU1hcHNLZXkiKS5kb25lKGZ1bmN0aW9uKGQpe2I9KGQua2V5P2Qua2V5OiIiKS5yZXBsYWNlKC9bXkEtejAtOV8tXS9nLCIiKTtjKGIpfSl9fShqUXVlcnkpOwpmdW5jdGlvbiByaHNQcm9tb0ltYWdlKGEpe3ZhciBiPXRoaXM7Yi5kYXRhPWE7dmFyIGM9W10sZD0tMTthPXdpbmRvdy5sb2NhdGlvbjthPWRlY29kZVVSSUNvbXBvbmVudChhLnBhdGhuYW1lK2Euc2VhcmNoKS50b0xvd2VyQ2FzZSgpO2ZvcihzZWFyY2ggaW4gYi5kYXRhKWlmKCJkZWZhdWx0Ij09c2VhcmNofHwtMSE9YS5pbmRleE9mKGRlY29kZVVSSUNvbXBvbmVudCgoc2VhcmNoKyIiKS50b0xvd2VyQ2FzZSgpKSkpZm9yKGk9MDtpPGIuZGF0YVtzZWFyY2hdLmxlbmd0aDtpKyspYy5wdXNoKGIuZGF0YVtzZWFyY2hdW2ldKTtiLnJvdGF0ZT1mdW5jdGlvbigpeysrZD5jLmxlbmd0aC0xJiYoZD0wKTt2YXIgZT1jW2RdLGs9JCgiPGltZyAvPiIpLmF0dHIoe3NyYzplLmksc3R5bGU6IndpZHRoOjEwMCU7IG1heC13aWR0aDoyODBweDsgYm9yZGVyLXJhZGl1czogNXB4OyBjdXJzb3I6cG9pbnRlcjsiLGFsdDoiIn0pOyQoImRpdiNyaWdodFByb21vSW1hZ2UiKS5odG1sKGspO251bGwhPQplLnUmJjA8ZS51Lmxlbmd0aCYmJCgiZGl2I3JpZ2h0UHJvbW9JbWFnZSIpLmF0dHIoIm9uY2xpY2siLCJ3aW5kb3cubG9jYXRpb24gPSAnIitlLnUrIiciKTskKCJkaXYjcmlnaHRQcm9tb0ltYWdlIikuc2hvdygpOzEhPWMubGVuZ3RoJiZzZXRUaW1lb3V0KGIucm90YXRlLGUuZGVsYXkpfTswPGMubGVuZ3RoJiZiLnJvdGF0ZSgpfWZ1bmN0aW9uIGNsZWFuVGV4dChhKXthPWEucmVwbGFjZSgvW1x4NjBdL2csIiciKTthPWEucmVwbGFjZSgv4oCZL2csIiciKTthPWEucmVwbGFjZSgvYC9nLCInIik7cmV0dXJuIGE9YS5yZXBsYWNlKC9bXHUyMDE5XeKAmS9nLCInIil9CmZ1bmN0aW9uIGVuY29kZVRleHQoYSl7dmFyIGI9YTt0cnl7Yj0kLmJhc2U2NC5lbmNvZGUoYSl9Y2F0Y2goayl7Y29uc29sZS5sb2coay5tZXNzYWdlLGspO2E9IiI7Zm9yKHZhciBjPTA7YzxiLmxlbmd0aDtjKyspe3ZhciBkPWIuY2hhckF0KGMpLGU9ZC5jaGFyQ29kZUF0KDApO2lmKDQ3PGUmJjU4PmV8fDY0PGUmJjkxPmV8fDk2PGUmJjEyMz5lKWErPWQ7ZWxzZSB0cnl7JC5iYXNlNjQuZW5jb2RlKGQpLGErPWR9Y2F0Y2goaCl7fX1iPSQuYmFzZTY0LmVuY29kZShhKX1yZXR1cm4gYn1mdW5jdGlvbiBjbGVhbkFuZEVuY29kZVRleHQoYSl7dHJ5e3ZhciBiPSIiO2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgYSlyZXR1cm4iIjtiPSJzdHJpbmciIT10eXBlb2YgYT9hLnRvU3RyaW5nKCk6YTtiPWNsZWFuVGV4dChiKTtyZXR1cm4gYj1lbmNvZGVUZXh0KGIpfWNhdGNoKGMpe3JldHVybiBjb25zb2xlLmxvZyhjLm1lc3NhZ2UsYyksYX19CmZ1bmN0aW9uIEV4UGhvbmUoYSl7c3dpdGNoKGEudHlwZSl7Y2FzZSAibW91c2VlbnRlciI6JCgiLmV4dGVuZGVkUGhvbmUiKS5zaG93KCk7YnJlYWs7Y2FzZSAibW91c2VsZWF2ZSI6JCgiLmV4dGVuZGVkUGhvbmUiKS5oaWRlKCl9fWZ1bmN0aW9uIGdldFJlc2l6ZWRJbWFnZXMoKXtkZWJ1Z0VuYWJsZWQoKTtyZXR1cm4hMX1mdW5jdGlvbiBjaGFuZ2VIb21lQWN0aW9uQmFja0ltYWdlKGEsYil7JChhKS5jc3Moe2JhY2tncm91bmQ6InVybCgiK2IrIikiLGJhY2tncm91bmRSZXBlYXQ6Im5vLXJlcGVhdCIsYmFja2dyb3VuZFNpemU6IjI0MHB4IDEyMXB4In0pfXZhciBfX2N1cnJlbnRUaHJlYXNob2xkOwpmdW5jdGlvbiB0aHJlYWRob2xkU2Nyb2xsUGVyY2VudCgpe19fY3VycmVudFRocmVhc2hvbGR8fChfX2N1cnJlbnRUaHJlYXNob2xkPSgkKHdpbmRvdykuaGVpZ2h0KCkrJChkb2N1bWVudCkuc2Nyb2xsVG9wKCkpLyQoZG9jdW1lbnQpLmhlaWdodCgpLHNldFRpbWVvdXQoIl9fY3VycmVudFRocmVhc2hvbGQgPSBudWxsIiwzMzMpKTtyZXR1cm4gX19jdXJyZW50VGhyZWFzaG9sZH0KZnVuY3Rpb24gdGhyZXNob2xkRXhlYyhhLGIsYyl7dmFyIGQ9bnVsbDtjPWM\/YzpbXTtpZigiZnVuY3Rpb24iIT10eXBlb2YgYSl7dmFyIGU9TWF0aC5yb3VuZCgxRTQqYSkvMUU0OzE8ZSYmKGUvPTEwMCk7YT1mdW5jdGlvbigpe3JldHVybiBlfX12YXIgaz1mdW5jdGlvbigpe2lmKHRocmVhZGhvbGRTY3JvbGxQZXJjZW50KCk+YSgpKXt0cnl7Yi5hcHBseShudWxsLGMpfWNhdGNoKGgpe2NvbnNvbGUubG9nKGgpfWQ9Y2xlYXJJbnRlcnZhbChkKX19OyQoZnVuY3Rpb24oKXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ZD1zZXRJbnRlcnZhbChrLDMzMyl9LDJFMyl9KX0KZnVuY3Rpb24gc2Nyb2xsdXBFeGVjKGEpe3ZhciBiPW51bGwsYz0wLGQ9ZnVuY3Rpb24oKXskKHdpbmRvdykub24oInNjcm9sbCIsZnVuY3Rpb24oZSl7ZT0kKHRoaXMpLnNjcm9sbFRvcCgpO2U8YyYmKGEuY2FsbChudWxsKSxiPWNsZWFySW50ZXJ2YWwoYikpO2M9ZX0pfTskKGZ1bmN0aW9uKCl7Yj1zZXRJbnRlcnZhbChkLDMzMyl9KX1mdW5jdGlvbiBpblZpZXdFeGVjKGEsYil7dGhyZXNob2xkRXhlYyhmdW5jdGlvbigpe3ZhciBjPSQoYSk7dHJ5e3JldHVybiFjLmxlbmd0aHx8Yy5pcygiOmhpZGRlbiIpfHwwPT1jLm9mZnNldCgpLnRvcD8uOTU6Yy5vZmZzZXQoKS50b3AvJChkb2N1bWVudCkuaGVpZ2h0KCl9Y2F0Y2goZCl7cmV0dXJuLjk1fX0sYixbYV0pfXZhciBsdF9JRTk9ImZ1bmN0aW9uIiE9dHlwZW9mIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXI\/ITA6ITEsbHRfSUUxMT0wPT0hZG9jdW1lbnQuYWxsOwpmdW5jdGlvbiBpc0lFKCl7dmFyIGE9ZG9jdW1lbnQuZG9jdW1lbnRNb2RlO3RyeXtkb2N1bWVudC5kb2N1bWVudE1vZGU9IiJ9Y2F0Y2goYyl7fXZhciBiPSJudW1iZXIiPT10eXBlb2YgZG9jdW1lbnQuZG9jdW1lbnRNb2RlfHwobmV3IEZ1bmN0aW9uKCJyZXR1cm4vKkBjY19vbiFAKi8hMSIpKSgpO3RyeXtkb2N1bWVudC5kb2N1bWVudE1vZGU9YX1jYXRjaChjKXt9cmV0dXJuIGJ9dmFyIHQ9MDtfX3N0YXJ0PWZ1bmN0aW9uKCl7dD0obmV3IERhdGUpLmdldFRpbWUoKX07X19zdG9wPWZ1bmN0aW9uKCl7dmFyIGE9KG5ldyBEYXRlKS5nZXRUaW1lKCk7Y29uc29sZS5sb2coInRvb2siLChhLXQpLzFFMyl9O3ZhciBhbGVydEZhbGxiYWNrPSEwO2lmKCJ1bmRlZmluZWQiPT09dHlwZW9mIGNvbnNvbGV8fCJ1bmRlZmluZWQiPT09dHlwZW9mIGNvbnNvbGUubG9nKWNvbnNvbGU9e30sY29uc29sZS5sb2c9YWxlcnRGYWxsYmFjaz9mdW5jdGlvbihhKXt9OmZ1bmN0aW9uKCl7fTsKQXJyYXkucHJvdG90eXBlLm1hcHx8KEFycmF5LnByb3RvdHlwZS5tYXA9ZnVuY3Rpb24oYSxiKXt2YXIgYyxkO2lmKG51bGw9PXRoaXMpdGhyb3cgbmV3IFR5cGVFcnJvcigiIHRoaXMgaXMgbnVsbCBvciBub3QgZGVmaW5lZCIpO3ZhciBlPU9iamVjdCh0aGlzKSxrPWUubGVuZ3RoPj4+MDtpZigiZnVuY3Rpb24iIT09dHlwZW9mIGEpdGhyb3cgbmV3IFR5cGVFcnJvcihhKyIgaXMgbm90IGEgZnVuY3Rpb24iKTsxPGFyZ3VtZW50cy5sZW5ndGgmJihjPWIpO3ZhciBoPUFycmF5KGspO2ZvcihkPTA7ZDxrOyl7aWYoZCBpbiBlKXt2YXIgbj1lW2RdO249YS5jYWxsKGMsbixkLGUpO2hbZF09bn1kKyt9cmV0dXJuIGh9KTtBcnJheS5wcm90b3R5cGUuaW5kZXhPZnx8KEFycmF5LnByb3RvdHlwZS5pbmRleE9mPWZ1bmN0aW9uKGEsYil7Yj1ifHwwO2Zvcih2YXIgYz10aGlzLmxlbmd0aDtiPGM7YisrKWlmKHRoaXNbYl09PT1hKXJldHVybiBiO3JldHVybi0xfSk7CkFycmF5LnByb3RvdHlwZS5yZWR1Y2V8fE9iamVjdC5kZWZpbmVQcm9wZXJ0eShBcnJheS5wcm90b3R5cGUsInJlZHVjZSIse3ZhbHVlOmZ1bmN0aW9uKGEpe2lmKG51bGw9PT10aGlzKXRocm93IG5ldyBUeXBlRXJyb3IoIkFycmF5LnByb3RvdHlwZS5yZWR1Y2UgY2FsbGVkIG9uIG51bGwgb3IgdW5kZWZpbmVkIik7aWYoImZ1bmN0aW9uIiE9PXR5cGVvZiBhKXRocm93IG5ldyBUeXBlRXJyb3IoYSsiIGlzIG5vdCBhIGZ1bmN0aW9uIik7dmFyIGI9T2JqZWN0KHRoaXMpLGM9Yi5sZW5ndGg+Pj4wLGQ9MDtpZigyPD1hcmd1bWVudHMubGVuZ3RoKXZhciBlPWFyZ3VtZW50c1sxXTtlbHNle2Zvcig7ZDxjJiYhKGQgaW4gYik7KWQrKztpZihkPj1jKXRocm93IG5ldyBUeXBlRXJyb3IoIlJlZHVjZSBvZiBlbXB0eSBhcnJheSB3aXRoIG5vIGluaXRpYWwgdmFsdWUiKTtlPWJbZCsrXX1mb3IoO2Q8YzspZCBpbiBiJiYoZT1hKGUsYltkXSxkLGIpKSxkKys7cmV0dXJuIGV9fSk7CkFycmF5LnByb3RvdHlwZS5mb3JFYWNofHwoQXJyYXkucHJvdG90eXBlLmZvckVhY2g9ZnVuY3Rpb24oYSl7dmFyIGIsYztpZihudWxsPT10aGlzKXRocm93IG5ldyBUeXBlRXJyb3IoInRoaXMgaXMgbnVsbCBvciBub3QgZGVmaW5lZCIpO3ZhciBkPU9iamVjdCh0aGlzKSxlPWQubGVuZ3RoPj4+MDtpZigiZnVuY3Rpb24iIT09dHlwZW9mIGEpdGhyb3cgbmV3IFR5cGVFcnJvcihhKyIgaXMgbm90IGEgZnVuY3Rpb24iKTsxPGFyZ3VtZW50cy5sZW5ndGgmJihiPWFyZ3VtZW50c1sxXSk7Zm9yKGM9MDtjPGU7KXtpZihjIGluIGQpe3ZhciBrPWRbY107YS5jYWxsKGIsayxjLGQpfWMrK319KTtmdW5jdGlvbiBnZXREYXRhQXR0cmlidXRlcyhhKXtyZXR1cm4gYS5kYXRhc2V0fHxbXS5zbGljZS5jYWxsKGEuYXR0cmlidXRlcykucmVkdWNlKGZ1bmN0aW9uKGIsYyl7cmV0dXJuL15kYXRhLS8udGVzdChjLm5hbWUpJiYoYltjLm5hbWUuc3Vic3RyKDUpXT1jLnZhbHVlKSxifSx7fSl9CmZ1bmN0aW9uIGdldFBhcmFtZXRlckJ5TmFtZShhKXthPWEucmVwbGFjZSgvW1xbXS8sIlxcWyIpLnJlcGxhY2UoL1tcXV0vLCJcXF0iKTthPShuZXcgUmVnRXhwKCJbXFw\/Jl0iK2ErIj0oW14mI10qKSIpKS5leGVjKGxvY2F0aW9uLnNlYXJjaCk7cmV0dXJuIG51bGw9PWE\/IiI6ZGVjb2RlVVJJQ29tcG9uZW50KGFbMV0ucmVwbGFjZSgvXCsvZywiICIpKX0KZnVuY3Rpb24gc2hvd1RyYWRlSW5Qb3B1cChhKXtpZigwPT0kKCIjdHJhZGVpbkxpbmtQb3B1cENvbnRhaW5lciIpLmxlbmd0aCl7dmFyIGI9Ijc1MHB4IixjPSI1NzBweCI7MT09L01vYmkvLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCkmJihiPSIzMDBweCIsYz0iNjAwcHgiKTskKCJib2R5IikuYXBwZW5kKCc8ZGl2IGlkPSJ0cmFkZWluTGlua1BvcHVwQ29udGFpbmVyIiBzdHlsZT0id2lkdGg6ICcrYisiOyBoZWlnaHQ6ICIrYysnIj48ZGl2IGNsYXNzPSJjbG9zZS1yZXZlYWwtbW9kYWwiPiYjMjE1OzwvZGl2PjxpZnJhbWUgc3JjPSInK2ErJyIgYWxsb3d0cmFuc3BhcmVuY3k9InRydWUiICBjbGFzcz0iLXQwIC1sMCAtdzEwMHAgLWgxMDBwIiBpZD0idHJhZGVpbkxpbmtQb3B1cElmcmFtZSI+PC9pZnJhbWU+PC9kaXY+Jyl9JCgiI3RyYWRlaW5MaW5rUG9wdXBDb250YWluZXIiKS5wb3B1cGl6ZSgpLnNldFRyaWdnZXIoImNsaWNrIikub3BlbigpfQpmdW5jdGlvbiBjdXJyZW50UHJvbW9SZWRpcmVjdCgpe2V2ZW50LnByZXZlbnREZWZhdWx0KCk7c3dpdGNoKCEwKXtjYXNlICJmdW5jdGlvbiI9PXR5cGVvZiBzaG93UG9wdXBXaWRnZXQ6c2hvd1BvcHVwV2lkZ2V0KCk7YnJlYWs7Y2FzZSAidW5kZWZpbmVkIiE9dHlwZW9mICQoIiNWaWV3UHJvbW9BY3Rpb25Cb3hMaW5rIikuYXR0cigiaHJlZiIpOiQoIiNWaWV3UHJvbW9BY3Rpb25Cb3hMaW5rIilbMF0uY2xpY2soKTticmVhaztjYXNlICJ1bmRlZmluZWQiIT10eXBlb2YgJCgiI3Byb21vdGlvblNpZGVWQnV0dG9uIGEiKS5hdHRyKCJocmVmIik6JCgiI3Byb21vdGlvblNpZGVWQnV0dG9uIGEiKVswXS5jbGljaygpO2JyZWFrO2Nhc2UgInVuZGVmaW5lZCIhPXR5cGVvZiAkKCIjVmlld0N1c3RvbVByb21vQWN0aW9uQm94TGluayIpLmF0dHIoImhyZWYiKTokKCIjVmlld0N1c3RvbVByb21vQWN0aW9uQm94TGluayIpWzBdLmNsaWNrKCl9fQpmdW5jdGlvbiBzaG93TmV3UmViYXRlQ29kZVBvcHVwKCl7MCE9JCgiI2Rpc2FibGVQb3B1cHMiKS5sZW5ndGgmJjAhPSQoIiNkaXNhYmxlUG9wdXBzIikudmFsKCl8fCQoIiNJbWFnZVBvcHVwQ29udGFpbmVyX25ld3JlYmF0ZSIpLnBvcHVwaXplKCkuc2V0VHJpZ2dlcigiY2xpY2siKS5vcGVuKCl9ZnVuY3Rpb24gc2hvd05ld0Jlc3RQcmljZVZkcFBvcHVwKCl7MCE9JCgiI2Rpc2FibGVQb3B1cHMiKS5sZW5ndGgmJjAhPSQoIiNkaXNhYmxlUG9wdXBzIikudmFsKCl8fCQoIiNiZXN0UHJpY2VWZHBOZXdQb3B1cENvbnRhaW5lciIpLnBvcHVwaXplKCkuc2V0VHJpZ2dlcigiY2xpY2siKS5vcGVuKCl9CmZ1bmN0aW9uIHByaW50X3Byb21vX3ByZXYoYSl7dmFyIGI9ITEsYz0kKGEpLnBhcmVudHMoIi5wcm9tb3MiKTthPWMuZmluZCgiLnByb21vLXRpdGxlIikuaHRtbCgpO3ZhciBkPWMuZmluZCgiLnByb21vLWRlc2MiKS5odG1sKCk7Yz1jLmZpbmQoIi5wcm9tby1pbWFnZSBpbWciKS5hdHRyKCJkYXRhLXByaW50LXNyYyIpOyQoIiNwcm9tb1RvUHJpbnQiKS5yZW1vdmUoKTskKCIjcHJvbW9Ub1ByaW50V3JhcCIpLnJlbW92ZSgpOyQoImJvZHkiKS5hcHBlbmQoJzxkaXYgY2xhc3M9InRvcHJpbnQiIGlkPSJwcm9tb1RvUHJpbnQiPjxpbWcgYm9yZGVyPSIwIiBzdHlsZT0id2lkdGg6MTAwJTsiIHNyYz0iJytjKyciIGFsdD0iIiBpZD0icHJvbW9JbWciPjxicj48YnI+PGI+JythKyI8L2I+PGJyPiIrZCsiPC9kaXY+Iik7JCgiI3Byb21vSW1nIikub24oImxvYWQiLGZ1bmN0aW9uKCl7Ynx8JCgiI3Byb21vVG9QcmludCIpLnByaW50RWxlbWVudCgpO2I9ITB9KTtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Ynx8CiQoIiNwcm9tb1RvUHJpbnQiKS5wcmludEVsZW1lbnQoKTtiPSEwfSwxRTMpO3JldHVybiExfWZ1bmN0aW9uIGdldE11bHRpcGxlQWRkcmVzc1Bob25lKGEpeyQoIi5tdWx0aUFkZHJlc3NQaG9uZSIpLnNsaWRlVXAoKTthPSQoIi5tdWx0aUFkZHJlc3NQaG9uZSIsJCgkKGEpLnBhcmVudCgpKSk7JChhKS5pcygiOmhpZGRlbiIpPyQoYSkuc2xpZGVEb3duKCk6JChhKS5zbGlkZVVwKCl9CmZ1bmN0aW9uIGFkZEdlbmVyYWxTdHlsZSgpe3ZhciBhPSQoIiNBRE1JTl9HRU5FUkFMX0JHX0NPTE9SIikudmFsKCksYj0kKCIjZGVmYXVsdF9ibGFja190ZXh0IikudmFsKCk7aWYoIiMwMDAwMDAiIT1ifHwiIzAwMCIhPWIpJCgiLlVzZWRWZHAyTW9iaWxlICNicmVhZGNydW1icyIpLmFkZENsYXNzKCJ0ZXh0Q29sb3IiKSwkKCJpLmZhLWZhY2Vib29rLXNxdWFyZSIpLmFkZENsYXNzKCJ0ZXh0Q29sb3IiKSwkKCIudXNlZC1kZXRhaWxzIC5kZWZhdWx0IGRpdjpmaXJzdCIpLmFkZENsYXNzKCJ0ZXh0Q29sb3IiKTsiI2ZmZmZmZiIhPWImJiIjZmZmIiE9Ynx8JCgiLlVzZWRTcnAyTW9iaWxlIC5kZWZhdWx0IC5tYWtlTW9kZWxZZWFyIikuYWRkQ2xhc3MoInRleHRDb2xvclVzZWRTUlBNb2JpbGUiKTsiI2ZmZmZmZiIhPWEmJigkKCIub2xkLWRldGFpbHMtdHIiKS5hZGRDbGFzcygiYmdOb25lIiksJCgiI3NwZWNUaXRsZSIpLmFkZENsYXNzKCJiZ05vbmUiKSwkKCIuVXNlZFZkcDJNb2JpbGUiKS5hZGRDbGFzcygib3RoZXJCRyIpKX0KZnVuY3Rpb24gYXBwZW5kVHJhZGVCb29zdEJhbm5lcigpe31kb2NSZWFkeUFyci5wdXNoKCgpPT57YXBwZW5kVHJhZGVCb29zdEJhbm5lcigpO2FkZEdlbmVyYWxTdHlsZSgpfSk7CmpRdWVyeShmdW5jdGlvbihhKXthKCIjbmF2IikuYWRkQ2xhc3MoIm5hdiIpOyhmdW5jdGlvbigpe0xDX0FQST13aW5kb3cuTENfQVBJfHx7fTtMQ19BUEkub25fdGlja2V0X2NyZWF0ZWQ9ZnVuY3Rpb24obSl7dHJ5eyhmdW5jdGlvbihsKXtudWxsIT1sJiYobD0nPGltZyBzcmM9Imh0dHBzOi8vc3RhdHMuZDJjbWVkaWEuY2Evc2VydmljZS9jb250YWN0LmdpZj90Yz0nKyhtLnRpY2tldF9pZCsiJnU9IitsKSsnIiBzdHlsZT0id2lkdGg6MXB4O2hlaWdodDoxcHg7cmlnaHQ6MTBweDt0b3A6MTBweDtwb3NpdGlvbjphYnNvbHV0ZTsiIC8+JyxhKCJib2R5IikuYXBwZW5kKGwpKX0pKGZ1bmN0aW9uKCl7dmFyIGw9InVuZGVmaW5lZCIhPT10eXBlb2Ygd2luZG93LmFjdGl2ZVByb2ZpbGVJRD93aW5kb3cuYWN0aXZlUHJvZmlsZUlEOm51bGw7cmV0dXJuIG51bGw9PWw\/Q29va2llcy5nZXQoInV1aWQiKTpsfSgpKX1jYXRjaChsKXt9fX0pKCk7aWYoImZ1bmN0aW9uIj09dHlwZW9mIG9uQ29uZmlybVN1Ym1pdClhKCIuY29uZmlybV9odG1sIikub24oInN1Ym1pdCIsCm9uQ29uZmlybVN1Ym1pdCk7dHJ5e2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgYSgiI3NsaWRlci5uaXZvU2xpZGVyIikuYXR0cigiaWQiKSl7dmFyIGI9ITEsYz0hMSxkPSExLGU9ITEsaz0hMSxoPSExLG49MTAwLHg9MTxhKCIjc2xpZGVyLm5pdm9TbGlkZXIgYSIpLmxlbmd0aD8hMDohMTthKCIjYmFubmVyX3NlYXJjaF9iYXJfY29udGFpbmVyIikubGVuZ3RoJiYoaD1rPWU9ZD1jPWI9ITAsbj1hKCIjQkFOTkVSX1NFQVJDSF9CQVJfVklERU9fT1BBQ0lUWSIpLmxlbmd0aD9hKCIjQkFOTkVSX1NFQVJDSF9CQVJfVklERU9fT1BBQ0lUWSIpLnZhbCgpOjEwMCk7ZG9jUmVhZHlBcnIucHVzaCgoKT0+e3NldFRpbWVvdXQoZnVuY3Rpb24oKXthKCIjc2xpZGVyLm5pdm9TbGlkZXIiKS5uaXZvU2xpZGVyKHtlZmZlY3Q6ImZhZGUiLGJlZm9yZUNoYW5nZTpmdW5jdGlvbigpe2EoIiNwYXJhbGxheFdyYXBwZXIiKS5lbmxsYXgoKX0sYWZ0ZXJDaGFuZ2U6ZnVuY3Rpb24oKXthKCIjc2xpZGVyLm5pdm9TbGlkZXIiKS50cmlnZ2VyKCJuaXZvU2xpZGVyQ2hhbmdlZCIpfSwKYWZ0ZXJMb2FkOmZ1bmN0aW9uKCl7YSgiI3NsaWRlci5uaXZvU2xpZGVyIikudHJpZ2dlcigibml2b1NsaWRlckxvYWRlZCIpO2EoIiNwYXJhbGxheFdyYXBwZXIiKS5lbmxsYXgoKTthKCIjYmFubmVyX3NlYXJjaF9iYXJfY29udGFpbmVyIikubGVuZ3RoJiYoYSgiI3NsaWRlci5uaXZvU2xpZGVyIikuZGF0YSgibml2bzp2YXJzIikuc3RvcCxhKCIubml2by1jb250cm9sTmF2IikuaGlkZSgpLGEoIi5uaXZvLWRpcmVjdGlvbk5hdiIpLmhpZGUoKSx0aGlzLnN0YXJ0WW91dHViZSgpKX0sbWFudWFsQWR2YW5jZTpiLHZpZGVvT25Mb29wOmMsaGlkZUNvbnRyb2w6ZCxoaWRlSW5mbzplLGZ1bGxXaWR0aDprLG11dGVWaWRlbzpoLHZpZGVvQnJpZ2h0bmVzczpuLGNvbnRyb2xOYXY6eCxkaXJlY3Rpb25OYXY6eCxzaG93RGlzY2xhaW1lcjohMH0pfSw1RTMpfSl9aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBhKCIuZXh0ZW5kZWRQaG9uZVRyaWdnZXIiKS5hdHRyKCJpZCIpKWEoIi5leHRlbmRlZFBob25lVHJpZ2dlciIpLm9uKCJtb3VzZWVudGVyIiwKRXhQaG9uZSkub24oIm1vdXNlbGVhdmUiLEV4UGhvbmUpO3ZhciB2PWZ1bmN0aW9uKCl7fTthKCIudHJhZGVpbkxpbmsiKS5vbigiY2xpY2siLGZ1bmN0aW9uKCl7aWYoYSh0aGlzKS5hdHRyKCJ0YXJnZXRVUkkiKSYmNjxhKHRoaXMpLmF0dHIoInRhcmdldFVSSSIpLmxlbmd0aClyZXR1cm4gc2hvd1RyYWRlSW5Qb3B1cChhKHRoaXMpLmF0dHIoInRhcmdldFVSSSIpKSwhMX0pO2EoIi51cF9tZW51Iikub25lKCJtb3VzZW92ZXIiLHYpO3NldFRpbWVvdXQodiwxRTQpOyhmdW5jdGlvbigpe2lmKDAhPWEoIiNNYWluTWVudV9ORVciKS5sZW5ndGgpe3ZhciBxPWEoIi5pbWdfbWVudS51cF9tZW51IHVsLm5hdiA+IGxpI01haW5NZW51X05FVyA+IHVsLnN1YiA+IGxpLmZpcnN0SXRlbSIpLHI9ITE7MCE9cS5sZW5ndGgmJihhKCIjTWFpbk1lbnVfTkVXIikuZmluZCgiLnByaWNlIikuY3NzKCJjdXJzb3IiLCJwb2ludGVyIikub24oImNsaWNrIixmdW5jdGlvbigpe3ZhciBwPWEodGhpcykuc2libGluZ3MoKS5maXJzdCgpOwp3aW5kb3cubG9jYXRpb249cC5hdHRyKCJocmVmIil9KSxhKCIjTWFpbk1lbnVfTkVXIikub24oIm1vdXNlZW50ZXIiLGZ1bmN0aW9uKCl7Y2xlYXJUaW1lb3V0KHIpO3EuYWRkQ2xhc3MoImhvdmVyIil9KSxxLnNpYmxpbmdzKCkub24oIm1vdXNlZW50ZXIiLGZ1bmN0aW9uKCl7Y2xlYXJUaW1lb3V0KHIpO3EucmVtb3ZlQ2xhc3MoImhvdmVyIil9KS5vbigibW91c2VsZWF2ZSIsZnVuY3Rpb24oKXtyPXNldFRpbWVvdXQoZnVuY3Rpb24oKXtxLmFkZENsYXNzKCJob3ZlciIpfSwzMDApfSkpfX0pKCk7YSgiaW1nW2Vycm9yaW1nXSIpLm9uKCJlcnJvciIsZnVuY3Rpb24oKXt2YXIgcT1hKHRoaXMpO3EuYXR0cigic3JjIixxLmF0dHIoImVycm9yaW1nIikpfSk7Y29uc3QgbT1hKHdpbmRvdyksbD1hKCIudXBfbWVudSIpO2lmKGwubGVuZ3RoJiYhbC5oYXNDbGFzcygibm9sb2NrIikpe2xldCBxPWwub2Zmc2V0KCkudG9wLHI9ITE7YShkb2N1bWVudCkub24oInNjcm9sbCIsKCk9PntyfHwKKHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9Pnt2YXIgcD1tLnNjcm9sbFRvcCgpLHc9bC5oYXNDbGFzcygiZml4ZWQiKTt3JiZwPHE\/bC5yZW1vdmVDbGFzcygiZml4ZWQiKTohdyYmcD5xJiZsLmFkZENsYXNzKCJmaXhlZCIpOyhwPWwuaGFzQ2xhc3MoImZpeGVkIikpJiZhKCIjYWxlcnRNc2dDb250YWluZXIiKS5pcygiOnZpc2libGUiKT9sLmNzcyh7dG9wOmEoIiNhbGVydE1zZ0NvbnRhaW5lciIpLm91dGVySGVpZ2h0KCkrInB4In0pOmwuYXR0cigic3R5bGUiLCIiKTt3PWEoIi5wdWxsb3V0cy5zaWRlX3RvcDp2aXNpYmxlIik7cCYmMDx3Lmxlbmd0aD8ody5maWx0ZXIoIi5wdWxsb3V0LW9wZW5lZCIpLmNzcyh7dG9wOmwuaGVpZ2h0KCkrInB4In0pLHcuZmlsdGVyKCIucHVsbG91dC1jbG9zZWQiKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIHo9YSh0aGlzKSxEPWdldF9wb3coei5hdHRyKCJpZCIpKTshei5kYXRhKCJwb3NZIikmJnouZGF0YSgicG9zWSIsLUQucG9zaXRpb24pOwpEPXouZGF0YSgicG9zWSIpK2wuaGVpZ2h0KCk7ei5jc3Moe3RvcDpEKyJweCJ9KX0pKToody5maWx0ZXIoIi5wdWxsb3V0LW9wZW5lZCIpLmNzcyh7dG9wOjB9KSx3LmZpbHRlcigiLnB1bGxvdXQtY2xvc2VkIikuZGF0YSgicG9zWSIpJiZ3LmZpbHRlcigiLnB1bGxvdXQtY2xvc2VkIikuZWFjaChmdW5jdGlvbigpe2EodGhpcykuY3NzKHt0b3A6YSh0aGlzKS5kYXRhKCJwb3NZIikrInB4In0pfSkpO3I9ITF9KSxyPSEwKX0pfXY9ZnVuY3Rpb24oKXtpZigwPT1hKCIjdHJhZGVpbkJhckZsb2F0IikubGVuZ3RoKXthKCJib2R5IikuYXBwZW5kKCc8ZGl2IGlkPSJ0cmFkZWluQmFyRmxvYXQiIHN0eWxlPSJ0ZXh0LWFsaWduOmNlbnRlcjtwb3NpdGlvbjogZml4ZWQ7d2lkdGg6IDEwMCU7ei1pbmRleDogMTAwO2Rpc3BsYXk6bm9uZTsiPjwvZGl2PicpO2EoIiN0cmFkZUluQmFyIikuY2xvbmUoITAsITApLmFwcGVuZFRvKCIjdHJhZGVpbkJhckZsb2F0IikudHJpZ2dlcigidHJhZGVJbkJhci5jbG9uZWQiKTsKaWYoYSgiI3RyYWRlSW5CYXJTdGlja3lCb3R0b20iKS5sZW5ndGgmJiIxIj09YSgiI3RyYWRlSW5CYXJTdGlja3lCb3R0b20iKS52YWwoKSl7YSgiI3RyYWRlaW5CYXJGbG9hdCIpLmNzcygiYm90dG9tIiwiLTJweCIpO3ZhciBxPWEoIi5jZXJ0aWZpZWQtZm9vdGVyIikuaGVpZ2h0KCkscj1hKCIjdHJhZGVpbkJhckZsb2F0IikuaGVpZ2h0KCk7YSgiLmNlcnRpZmllZC1mb290ZXIiKS5oZWlnaHQocStyKX1lbHNle3E9YSgiI3RyYWRlaW5CYXJGbG9hdCIpO3I9cS5jc3M7dmFyIHA9IjEiPT1hKCIjbWVudUxvY2siKS52YWwoKT80ODowOzA8YSgiI2FsZXJ0TXNnQ29udGFpbmVyIikubGVuZ3RoJiZhKCIjYWxlcnRNc2dDb250YWluZXIiKS5pcygiOnZpc2libGUiKSYmKHArPWEoIiNhbGVydE1zZ0NvbnRhaW5lciIpLm91dGVySGVpZ2h0KCkpO3IuY2FsbChxLCJ0b3AiLHApfWEoIiN0cmFkZWluQmFyRmxvYXQgLi1wYjEwIikuY3NzKHtkaXNwbGF5OiJpbmxpbmUtdGFibGUiLHdpZHRoOmEoIiNtYWluRGl2Iikud2lkdGgoKX0pfXE9CiJuZXdjYXJkZXRhaWwuaHRtbCI9PWEoIiNQQUdFSUQiKS52YWwoKXx8ImNhcmRldGFpbC5odG1sIj09YSgiI1BBR0VJRCIpLnZhbCgpO3I9Im5ld2NhcmRldGFpbC5odG1sIj09YSgiI1BBR0VJRCIpLnZhbCgpPyEwOiExO3A9MDxhKCIubWFpbkRpdkFkanVzdEhlYWRlciIpLmxlbmd0aD8hMDohMTthKCIjdHJhZGVJbkJhciIpLmlzSW5WaWV3cG9ydCgpfHxxP3E\/KHI\/YSgiLm5ld1ZkcEFjdGlvbnMiKS5pc0Fib3ZlVmlld3BvcnQoMjAwKTphKCIudXNlZFZkcEFjdGlvbnMiKS5pc0Fib3ZlVmlld3BvcnQoMjAwKSk\/YSgiI3RyYWRlaW5CYXJGbG9hdCIpLmhpZGUoKTphKCIjdHJhZGVpbkJhckZsb2F0Iikuc2hvdygpOmEoIiN0cmFkZWluQmFyRmxvYXQiKS5oaWRlKCk6KHAmJiFhKCIjdHJhZGVJbkJhciIpLmlzQWJvdmVWaWV3cG9ydCgyMDApfHwhcCkmJmEoIiN0cmFkZWluQmFyRmxvYXQiKS5zaG93KCk7MDxhKCIjYWxlcnRNc2dDb250YWluZXIiKS5sZW5ndGgmJmEoIiNhbGVydE1zZ0NvbnRhaW5lciIpLmlzKCI6aGlkZGVuIikmJgo0OCE9YSgiI3RyYWRlaW5CYXJGbG9hdCIpLmNzcygidG9wIikmJmEoIiN0cmFkZUluQmFyU3RpY2t5Qm90dG9tIikubGVuZ3RoJiYiMSIhPWEoIiN0cmFkZUluQmFyU3RpY2t5Qm90dG9tIikudmFsKCkmJmEoIiN0cmFkZWluQmFyRmxvYXQiKS5jc3MoInRvcCIsNDgpfTtmdW5jdGlvbiB1KHEscil7dmFyIHA9MDtyZXR1cm4gZnVuY3Rpb24oKXtjbGVhclRpbWVvdXQocCk7cD1zZXRUaW1lb3V0KHEscil9fWlmKGEoIiN0cmFkZUluQmFyIikubGVuZ3RoKWEoZG9jdW1lbnQpLm9uKCJzY3JvbGwiLHUodiwxMDApKTt2YXIgZj1hKCJ1bC5uYXYgPiBsaSA+IHVsID4gbGkgPiB1bCIpO2YuZWFjaChmdW5jdGlvbigpe2EodGhpcykucGFyZW50KCkub24oIm1vdXNlZW50ZXIiLGZ1bmN0aW9uKHEpe2EoInVsIix0aGlzKS5zY3JvbGxUb3AoMCl9KX0pO2Yub24oIkRPTU1vdXNlU2Nyb2xsIG1vdXNld2hlZWwiLGZ1bmN0aW9uKHEpe3ZhciByPWEodGhpcykscD10aGlzLnNjcm9sbFRvcCx3PXRoaXMuc2Nyb2xsSGVpZ2h0LAp6PXc+dGhpcy5jbGllbnRIZWlnaHQsRD1yLmhlaWdodCgpLEM9cS5vcmlnaW5hbEV2ZW50O0M9IkRPTU1vdXNlU2Nyb2xsIj09cS50eXBlPy00MCpDLmRldGFpbDpDLndoZWVsRGVsdGE7dmFyIEU9MDxDO2lmKCF6KXJldHVybiEwO3o9ZnVuY3Rpb24oRyl7ci5zY3JvbGxUb3AoRyk7cS5zdG9wUHJvcGFnYXRpb24oKTtxLnByZXZlbnREZWZhdWx0KCk7cS5yZXR1cm5WYWx1ZT0hMTtyZXR1cm4hMH07cmV0dXJuISghRSYmLUM+dy1ELXAmJnoodyl8fEUmJkM+cCYmeigwKSl9KX1jYXRjaChtKXtjb25zb2xlLmxvZygiRXJyb3IiLG0pfWlmKGEoIi51cF9tZW51LmltZ19tZW51IikubGVuZ3RoKXtmPWEoIi5pbWdfc3R5bGVfMSAjTWFpbk1lbnVfTkVXIikuY2hpbGRyZW4oIi5zdWIiKTt2YXIgZz1mLmZpbmQoIi5maXJzdEl0ZW0iKS5maW5kKCIuc3ViIik7Zi5jaGlsZHJlbigibGkiKS5vbih7bW91c2VlbnRlcjpmdW5jdGlvbigpeyFhKHRoaXMpLmlzKCIuaGFzU3ViIikmJmcuaGlkZSgpfSwKbW91c2VsZWF2ZTpmdW5jdGlvbigpeyFhKHRoaXMpLmlzKCIuaGFzU3ViIikmJmcuc2hvdygpfX0pfWEoIi5udW1lcmljIikub24oImtleXByZXNzIixmdW5jdGlvbihtKXtpZig0OD5tLmtleUNvZGV8fDU3PG0ua2V5Q29kZSltLnJldHVyblZhbHVlPSExfSk7aWYoIm9udG91Y2hzdGFydCJpbiB3aW5kb3d8fHdpbmRvdy5Eb2N1bWVudFRvdWNoJiZkb2N1bWVudCBpbnN0YW5jZW9mIERvY3VtZW50VG91Y2gpYSgiLmxlZnRfYm94IGEiKS5vbigidGFwIixmdW5jdGlvbihtKXttPWEodGhpcyk7aWYoInJhZGlvIiE9bS5hdHRyKCJ0eXBlIikmJm0uYXR0cigib25jbGljayIpKXJldHVybiBtLnRyaWdnZXIoImNsaWNrIiksITF9KSxhKCIuaGFzSXRlbXMgPiBhLCAuaGFzU3ViID4gYSIpLm9uKCJjbGljayIsZnVuY3Rpb24obSl7aWYoImNsaWNrIiE9bS50eXBlKXJldHVybiEwO3ZhciBsPWEodGhpcykuZGF0YSgiY2xpY2tDb3VudCIpO2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgbHx8IjAiPT0KbClhKCIubmF2IGxpLmhhc0l0ZW1zIGEsIC5uYXYgbGkuaGFzU3ViIGEiKS5kYXRhKCJjbGlja0NvdW50IiwiMCIpLGEodGhpcykuZGF0YSgiY2xpY2tDb3VudCIsIjEiKSxtLnByZXZlbnREZWZhdWx0KCk7ZWxzZSByZXR1cm4gZG9jdW1lbnQubG9jYXRpb249YSh0aGlzKS5hdHRyKCJocmVmIiksYSh0aGlzKS5kYXRhKCJjbGlja0NvdW50IiwiMCIpLCEwfSk7YSgiZGl2LmdtYXAtcGxhY2Vob2xkZXIiKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIG09YSh0aGlzKSxsPW0uZGF0YSgpO2luamVjdEdvb2dsZU1hcHNLZXkoZnVuY3Rpb24odSl7dT0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9tYXBzL2VtYmVkL3YxL3BsYWNlPyIrWyJxPSIrZW5jb2RlVVJJQ29tcG9uZW50KGwucGxhY2VJZCksInpvb209IitsLnpvb20sImxhbmd1YWdlPSIrbC5sYW5ndWFnZSwicmVnaW9uPUNBIiwia2V5PSIrdV0uam9pbigiJiIpO20uaHRtbCgnPGlmcmFtZSBzcmM9IicrdSsnIiB3aWR0aD0iMTAwJSIgaGVpZ2h0PSI0MDAiIGZyYW1lYm9yZGVyPSIwIiBzdHlsZT0iYm9yZGVyOjAiIGFsbG93ZnVsbHNjcmVlbj48L2lmcmFtZT4nKX0pfSk7CnRyeXthKCIuYWRkdHQiKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIG09WyJvbkNsb3NlIiwib25ZZXMiLCJvbk5vIl0sbD1hKHRoaXMpLHU9bC5kYXRhKCkscT17fSxyO2ZvcihyIGluIHUpcVtyXT1mdW5jdGlvbihwLHcpe3JldHVybi0xIT1tLmluZGV4T2YocCk\/ZnVuY3Rpb24oKXtldmFsKHcpfTp3fShyLHVbcl0pO2wuZGFya1Rvb2x0aXAocSl9KX1jYXRjaChtKXtjb25zb2xlLmxvZyhtLm1lc3NhZ2UsbSl9fSk7ZnVuY3Rpb24gY2hpbGRPZihhLGIpe2Zvcig7InVuZGVmaW5lZCIhPT10eXBlb2YgYSYmbnVsbCE9PWEmJihhPWEucGFyZW50Tm9kZSkmJmEhPT1iOyk7cmV0dXJuISFhfXZhciBNZW51SGFuZGxlcjsKKGZ1bmN0aW9uKCl7dmFyIGE7TWVudUhhbmRsZXI9ZnVuY3Rpb24gYygpe2Z1bmN0aW9uIGQoZixnKXtsZXQgbT0oZy5tb2RlbHx8IiIpLnRyaW0oKSxsPShnLnRyaW18fCIiKS50cmltKCk7Zj1mLnJlcGxhY2UoIiMjTUVOVVlFQVIjIyIsZy55ZWFyKTttJiZsJiYobS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKGwudG9Mb3dlckNhc2UoKSk\/bD0iIjpsLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMobS50b0xvd2VyQ2FzZSgpKSYmKG09IiIpKTtyZXR1cm4gZj1mLnJlcGxhY2UoIiMjTUVOVU1PREVMIyMiLG0pLnJlcGxhY2UoIiMjTUVOVVRSSU0jIyIsbCkucmVwbGFjZSgvICsvZywiICIpfWlmKGEpcmV0dXJuIGE7YT10aGlzO3RoaXMuZ2V0U3BlY1VybD1mdW5jdGlvbigpe3ZhciBmPSJFTkdMSVNIIj09JCgiI2FjdGl2ZXNpdGVsYW5ndWFnZSIpLnZhbCgpfHwiMCI9PT0kKCIjbmV3X3RyYW5zbGF0ZWRfdGl0bGVzIikudmFsKCk\/ImVuIjoiZnIiOyIwIj09JCgiI211bHRpLWxhbmd1YWdlIikudmFsKCkmJgooZj0iRU5HTElTSCI9PSQoIiNhY3RpdmVzaXRlbGFuZ3VhZ2UiKS52YWwoKT8iZW4iOiJmciIpO3JldHVybiIvanNvbi9uZXdjYXJzZGV0YWlsc18iK2YrIi5qc29uIn07dGhpcy5tZW51PSQoIi5tZW51NSwgLm1lbnU2LCAubWVudTcsIC5tZW51OCwgLm1lbnU5LCAubWVudTEwIik7dGhpcy5zcGVjc0FqYXg9JC5nZXQodGhpcy5nZXRTcGVjVXJsKCkpO3RoaXMuY2Fycz17ZGV0YWlsczp7fSxmaW5kQnlJZDpmdW5jdGlvbihmKXt2YXIgZz17fTskLmVhY2godGhpcy5kZXRhaWxzLm1ha2VzLGZ1bmN0aW9uKG0sbCl7JC5lYWNoKGwubW9kZWxzLGZ1bmN0aW9uKHUscSl7MT09cS5pc3Nlcmllc3x8MT09cS5pc0NsYXNzPyQuZWFjaChxLnN0eWxlcyxmdW5jdGlvbihyLHApe3AuaWQ9PWYmJihnPXApfSk6cS5pZD09ZiYmKGc9cSl9KTskLmlzRW1wdHlPYmplY3QoZyl9KTtyZXR1cm4gZ319O3RoaXMuc3BlY3NBamF4LmRvbmUoZnVuY3Rpb24oZil7YygpLmNhcnMuZGV0YWlscz1mfSk7dGhpcy5wb3NpdGlvbnM9CmZ1bmN0aW9uKGYsZyxtKXtyZXR1cm57dGFyZ2V0OiQoZy5jdXJyZW50VGFyZ2V0KSxzZWNvbmRMZXZlbE1lbnU6bnVsbCx3aW5kb3dIZWlnaHQ6bnVsbCxzZWNvbmRMZXZlbE1lbnVUb3A6bnVsbCxzZWNvbmRMZXZlbE1lbnVCb3R0b206bnVsbCxzdWJNZW51SXRlbVRvcDpudWxsLHN1Yk1lbnVJdGVtSGVpZ2h0Om51bGwsc3ViTWVudUl0ZW1Cb3R0b206bnVsbCxib3R0b21BbGlnbjpudWxsLHNwZWNzOm51bGwsc3BlY3NUb3A6bnVsbCxzcGVjc0hlaWdodDpudWxsLHNwZWNzQm90dG9tOm51bGwsY3VzdG9tU2Vjb25kTGV2ZWxNZW51Om51bGwscm91bmQ6ZnVuY3Rpb24obCl7cmV0dXJuKyhNYXRoLnJvdW5kKGwrImUrMiIpKyJlLTIiKX0sdXBkYXRlOmZ1bmN0aW9uKCl7dGhpcy5zZWNvbmRMZXZlbE1lbnU9ImZ1bmN0aW9uIj09dHlwZW9mIHRoaXMuY3VzdG9tU2Vjb25kTGV2ZWxNZW51P3RoaXMuY3VzdG9tU2Vjb25kTGV2ZWxNZW51KCk6dGhpcy50YXJnZXQuZmluZCgidWwuc3ViOmZpcnN0Iik7CnRyeXt0aGlzLndpbmRvd0hlaWdodD0kKHdpbmRvdykuaGVpZ2h0KCksdGhpcy5zZWNvbmRMZXZlbE1lbnVUb3A9dGhpcy5zZWNvbmRMZXZlbE1lbnUucG9zaXRpb24oKS50b3AsdGhpcy5zZWNvbmRMZXZlbE1lbnVIZWlnaHQ9dGhpcy5zZWNvbmRMZXZlbE1lbnUub3V0ZXJIZWlnaHQoKSx0aGlzLnNlY29uZExldmVsTWVudUJvdHRvbT10aGlzLnJvdW5kKHRoaXMuc2Vjb25kTGV2ZWxNZW51VG9wK3RoaXMuc2Vjb25kTGV2ZWxNZW51SGVpZ2h0KX1jYXRjaChsKXt9dHJ5e3RoaXMuc3ViTWVudUl0ZW1Ub3A9JChmKS5wb3NpdGlvbigpLnRvcCx0aGlzLnN1Yk1lbnVJdGVtSGVpZ2h0PSQoZikub3V0ZXJIZWlnaHQoKSx0aGlzLnN1Yk1lbnVJdGVtQm90dG9tPXRoaXMucm91bmQodGhpcy5zdWJNZW51SXRlbUhlaWdodCt0aGlzLnN1Yk1lbnVJdGVtVG9wKSx0aGlzLmJvdHRvbUFsaWduPXRoaXMucm91bmQoJChmKS5wYXJlbnQoInVsIikub3V0ZXJIZWlnaHQoKSskKGYpLnBhcmVudCgidWwiKS5vZmZzZXQoKS50b3AtCnRoaXMuc2Vjb25kTGV2ZWxNZW51Qm90dG9tKX1jYXRjaChsKXt9dHJ5e3RoaXMuc3BlY3M9bSx0aGlzLnNwZWNzVG9wPXRoaXMuc3BlY3MucG9zaXRpb24oKS50b3AsdGhpcy5zcGVjc0hlaWdodD10aGlzLnNwZWNzLm91dGVySGVpZ2h0KCksdGhpcy5zcGVjc0JvdHRvbT10aGlzLnJvdW5kKHRoaXMuc3BlY3NUb3ArdGhpcy5zcGVjc0hlaWdodCl9Y2F0Y2gobCl7fX0sYWRqdXN0U2Vjb25kTGV2ZWw6ZnVuY3Rpb24oKXtpZiguNjUqdGhpcy53aW5kb3dIZWlnaHQ8dGhpcy5zZWNvbmRMZXZlbE1lbnVIZWlnaHQpe2lmKHRoaXMuc2Vjb25kTGV2ZWxNZW51Lmhhc0NsYXNzKCJsb2NhdGlvbi1kZXRhaWxzIikpcmV0dXJuO3RoaXMuc2Vjb25kTGV2ZWxNZW51LnJlbW92ZUF0dHIoInN0eWxlIik7dGhpcy5zZWNvbmRMZXZlbE1lbnUuY3NzKCJoZWlnaHQiLC42NSp0aGlzLndpbmRvd0hlaWdodCk7dGhpcy5zZWNvbmRMZXZlbE1lbnUuY3NzKHsib3ZlcmZsb3cteSI6ImF1dG8iLHdpZHRoOiI0MDBweCIsCnBvc2l0aW9uOiJzdGF0aWMiLGRpcmVjdGlvbjoicnRsIn0pO3RoaXMuc2Vjb25kTGV2ZWxNZW51LmZpbmQoIj4gbGkiKS5jc3Moe2RpcmVjdGlvbjoibHRyIn0pO2lmKDA9PSQoZikuY2hpbGRyZW4oIi5tYWlubWVudS1zdWJtZW51IikubGVuZ3RoKXt2YXIgbD0kKCI8ZGl2Lz4iKTtsLmFkZENsYXNzKCJtYWlubWVudS1zdWJtZW51Iik7bC5kZXRhY2goKS5hcHBlbmQodGhpcy5zZWNvbmRMZXZlbE1lbnUpO3RoaXMudGFyZ2V0LmFwcGVuZChsKX10aGlzLnVwZGF0ZSgpfWlmKHRoaXMuc2Vjb25kTGV2ZWxNZW51Qm90dG9tPHRoaXMuc3ViTWVudUl0ZW1Ub3ApJChmKS5hZGRDbGFzcygiYWxpZ24tbGV2ZWwiKSx0aGlzLnVwZGF0ZSgpLGw9dGhpcy5zZWNvbmRMZXZlbE1lbnVCb3R0b208JChmKS5wYXJlbnQoInVsIikub3V0ZXJIZWlnaHQoKT8kKGYpLm91dGVySGVpZ2h0KCkrJChmKS5wb3NpdGlvbigpLnRvcC10aGlzLnNlY29uZExldmVsTWVudUhlaWdodDokKGYpLnBhcmVudCgidWwiKS5vdXRlckhlaWdodCgpKwokKGYpLnBhcmVudCgidWwiKS5wb3NpdGlvbigpLnRvcC10aGlzLnNlY29uZExldmVsTWVudUJvdHRvbSx0aGlzLnNlY29uZExldmVsTWVudS5jc3MoInRyYW5zZm9ybSIsInRyYW5zbGF0ZVkoIitsKyJweCkiKTtlbHNlIGlmKHRoaXMuc2Vjb25kTGV2ZWxNZW51Qm90dG9tPnRoaXMuc3ViTWVudUl0ZW1Ub3AmJnRoaXMuc3ViTWVudUl0ZW1Cb3R0b20+dGhpcy5zZWNvbmRMZXZlbE1lbnVCb3R0b20pe2w9MD5wYXJzZUludCh0aGlzLnNlY29uZExldmVsTWVudS5jc3MoImxlZnQiKS5yZXBsYWNlKCJweCIsIiIpKT8icmlnaHQiOiJsZWZ0Ijt2YXIgdT17dHJhbnNmb3JtOiJ0cmFuc2xhdGVZKCIrTWF0aC5hYnModGhpcy5zZWNvbmRMZXZlbE1lbnVCb3R0b20tdGhpcy5zdWJNZW51SXRlbUJvdHRvbSkrdGhpcy5zZWNvbmRMZXZlbE1lbnVUb3ArInB4KSJ9OyJyaWdodCIhPWwmJih1W2xdPXRoaXMudGFyZ2V0LnBvc2l0aW9uKCkubGVmdCt0aGlzLnRhcmdldC53aWR0aCgpKTt0aGlzLnNlY29uZExldmVsTWVudS5jc3ModSl9ZWxzZSB0aGlzLnNlY29uZExldmVsTWVudVRvcD4KdGhpcy5zdWJNZW51SXRlbVRvcCYmdGhpcy5zZWNvbmRMZXZlbE1lbnUuY3NzKCJ0cmFuc2Zvcm0iLCJ0cmFuc2xhdGVZKCIrdGhpcy5zdWJNZW51SXRlbVRvcCsicHgpIil9LGFkanVzdEhvcml6b250YWw6ZnVuY3Rpb24oKXt0aGlzLnNlY29uZExldmVsTWVudS5oYXNDbGFzcygiaW52aXNpYmxlIil8fHRoaXMuc2Vjb25kTGV2ZWxNZW51LmFkZENsYXNzKCJpbnZpc2libGUiKTt2YXIgbD10aGlzLmlzSW5WaWV3cG9ydCh0aGlzLnNlY29uZExldmVsTWVudVswXSksdT0wPnBhcnNlSW50KHRoaXMuc2Vjb25kTGV2ZWxNZW51LmNzcygibGVmdCIpLnJlcGxhY2UoInB4IiwiIikpPyJyaWdodCI6ImxlZnQiO2x8fCJsZWZ0IiE9PXV8fCh0aGlzLnNlY29uZExldmVsTWVudS5oYXNDbGFzcygiTDEwMCIpJiZ0aGlzLnNlY29uZExldmVsTWVudS5yZW1vdmVDbGFzcygiTDEwMCIpLHRoaXMuc2Vjb25kTGV2ZWxNZW51LmFkZENsYXNzKCJSMTAwIikpO2w9e307bFt1XT10aGlzLnRhcmdldC5wb3NpdGlvbigpLmxlZnQrCnRoaXMudGFyZ2V0LndpZHRoKCk7dGhpcy5zZWNvbmRMZXZlbE1lbnUuY3NzKGwpO3RoaXMuc2Vjb25kTGV2ZWxNZW51LnJlbW92ZUNsYXNzKCJpbnZpc2libGUiKX0saXNJblZpZXdwb3J0OmZ1bmN0aW9uKGwpe2w9bC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtyZXR1cm4gMDw9bC50b3AmJjA8PWwubGVmdCYmbC5ib3R0b208PSh3aW5kb3cuaW5uZXJIZWlnaHR8fGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQpJiZsLnJpZ2h0PD0od2luZG93LmlubmVyV2lkdGh8fGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0aCl9fX07dGhpcy5tZW51Lm9uKCJtb3VzZWVudGVyIG1vdXNlbGVhdmUiLCJ1bC5uYXYgPiBsaSIsZnVuY3Rpb24oZil7dmFyIGc9YS5wb3NpdGlvbnModGhpcyxmKTtnLnVwZGF0ZSgpO2cuc2Vjb25kTGV2ZWxNZW51Qm90dG9tLSQod2luZG93KS5zY3JvbGxUb3AoKT5nLndpbmRvd0hlaWdodD9nLnNlY29uZExldmVsTWVudS5hZGRDbGFzcygic2xpbS1zdWJtZW51Iik6Cmcuc2Vjb25kTGV2ZWxNZW51LnJlbW92ZUNsYXNzKCJzbGltLXN1Ym1lbnUiKTsibW91c2VsZWF2ZSIhPT1mLnR5cGUmJihmPSQodGhpcykuZmluZCgiPiB1bCIpLGYubGVuZ3RoJiYhZi5kYXRhKCJjYWxjdWxhdGVkIikmJihnPSQodGhpcykub3V0ZXJXaWR0aCgpLGYub3V0ZXJXaWR0aCgpPGcmJmYuY3NzKCJ3aWR0aCIsZysxKSxmLmRhdGEoImNhbGN1bGF0ZWQiLCEwKSkpfSk7dGhpcy5tZW51Lm9uKCJtb3VzZWVudGVyIG1vdXNlbGVhdmUiLCIjTWFpbk1lbnVfTkVXID4gdWwuc3ViID4gbGkiLGZ1bmN0aW9uKGYpe3ZhciBnPWEucG9zaXRpb25zKHRoaXMsZik7MCE9JChmLmN1cnJlbnRUYXJnZXQpLmZpbmQoInVsLnN1YiA+IGxpIikubGVuZ3RoJiYibW91c2VsZWF2ZSIhPWYudHlwZSYmKGcudXBkYXRlKCksZy5hZGp1c3RTZWNvbmRMZXZlbCgpKX0pO3RoaXMubWVudS5vbigibW91c2VlbnRlciBtb3VzZWxlYXZlIiwiI01haW5NZW51X0RFQUxFUlNISVBTID4gdWwuc3ViIGxpLmxvY2F0aW9uLW5hbWVzIiwKZnVuY3Rpb24oZil7dmFyIGc9YS5wb3NpdGlvbnModGhpcyxmKSxtPSQoZi5jdXJyZW50VGFyZ2V0KS5maW5kKCIubG9jYXRpb24tZGV0YWlscyIpO2cuY3VzdG9tU2Vjb25kTGV2ZWxNZW51PWZ1bmN0aW9uKCl7cmV0dXJuIG19OzAhPSQoZi5jdXJyZW50VGFyZ2V0KS5maW5kKCIubG9jYXRpb24tZGV0YWlscyIpLmxlbmd0aCYmIm1vdXNlbGVhdmUiIT1mLnR5cGUmJigkKGYuY3VycmVudFRhcmdldCkuZmluZCgiLmxvY2F0aW9uLWRldGFpbHMiKS5vbigibGF6eWxvYWRlZCIsZnVuY3Rpb24obCl7Zy5jdXN0b21TZWNvbmRMZXZlbE1lbnUoKS5hdHRyKCJzdHlsZSIsbnVsbCk7Zy51cGRhdGUoKTtnLmFkanVzdEhvcml6b250YWwoKTtnLmFkanVzdFNlY29uZExldmVsKCl9KSxnLmN1c3RvbVNlY29uZExldmVsTWVudSgpLmF0dHIoInN0eWxlIixudWxsKSxnLnVwZGF0ZSgpLGcuYWRqdXN0SG9yaXpvbnRhbCgpLGcuYWRqdXN0U2Vjb25kTGV2ZWwoKSl9KTt0aGlzLm1lbnUub24oIm1vdXNlZW50ZXIgbW91c2VsZWF2ZSIsCicjTWFpbk1lbnVfVEFCX0NPTU1FUkNJQUwgPiB1bC5zdWIgPiBbZGF0YS1pZD0iU1VCX1RBQl9DT01NRVJDSUFMX0NPTU1FUiJdJyxmdW5jdGlvbihmKXtmPWEucG9zaXRpb25zKHRoaXMsZik7Zi51cGRhdGUoKTtmLmFkanVzdFNlY29uZExldmVsKCl9KTtpZigiZm9yZF9saW5jb2xuX2V4dGVybmFsIj09JCgiI0RFQUxFUlBBUlRSRURJUkVDVFRZUEUiKS52YWwoKSYmMDwkKCIjREVBTEVSQlJBTkQiKS5sZW5ndGgmJiQoIiNERUFMRVJCUkFORCIpLnZhbCgpLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoImZvcmQiKSYmIiIhPSQoIiNERUFMRVJQQUNPREUiKS52YWwoKSl7dmFyIGU9JCgiaHRtbCIpLmF0dHIoImxhbmciKSxrPSQoIiNERUFMRVJQQUNPREUiKS52YWwoKSxoPSJlbiI9PWU\/Ii9yZXF1ZXN0cy9jYXItcGFydHMtYW5kLWFjY2Vzc29yaWVzLmh0bWwiOiIvZGVtYW5kZXMvY29tbWFuZGUtcGllY2VzLWFjY2Vzc29pcmVzLWF1dG9tb2JpbGVzLmh0bWwiLG49Imh0dHBzOi8vZm9yZGFjY2Vzcy5jb20vRm9yZC5hc3B4P2xvY2F0aW9uPSIrCms7dGhpcy5tZW51Lm9uKCJtb3VzZWVudGVyIG1vdXNlbGVhdmUiLCIjTWFpbk1lbnVfU0VSVklDRSB1bC5zdWIgbGlbZGF0YS1pZD0nUElFQ0VTJ10iLGZ1bmN0aW9uKCl7dmFyIGY9JCh0aGlzKTtmPSQoIj4gYSIsZik7Zi5hdHRyKCJocmVmIik9PWgmJihmLmF0dHIoImhyZWYiLG4pLGYuYXR0cigidGFyZ2V0IiwiX2JsYW5rIikpfSl9dGhpcy5tZW51Lm9uKCJtb3VzZWVudGVyIG1vdXNlbGVhdmUiLCIjTWFpbk1lbnVfRklOQU5DRSA+IGEiLGZ1bmN0aW9uKCl7dmFyIGY9JCh0aGlzKSxnPSQoImh0bWwiKS5hdHRyKCJsYW5nIiksbT0kKCIjREVBTEVSUEFDT0RFIikudmFsKCksbD0kKCIjREVBTEVSQlJBTkRfUFJJTUFSWSIpLnZhbCgpLnRvTG93ZXJDYXNlKCk7ImZvcmRfbGluY29sbl9leHRlcm5hbCIhPSQoIiNGSU5BTkNFRk9STVRZUEUiKS52YWwoKXx8ImZvcmQiIT1sJiYibGluY29sbiIhPWx8fCIiPT1tfHwoZi5hdHRyKCJocmVmIiwiZm9yZCI9PWw\/KCJlbiI9PWc\/Imh0dHBzOi8vd3d3LmZvcmQuY2EvZmluYW5jZS9hcHBseS8xP1NvdXJjZU9mRGF0YT1DQURDRiZkZWFsZXJJZD0iOgoiaHR0cHM6Ly9mci5mb3JkLmNhL2ZpbmFuY2UvYXBwbHkvMT9Tb3VyY2VPZkRhdGE9Q0FEQ0YmZGVhbGVySWQ9IikrbTooImVuIj09Zz8iaHR0cHM6Ly93d3cubGluY29sbmNhbmFkYS5jb20vZmluYW5jZS9hcHBseS8xP1NvdXJjZU9mRGF0YT1DQURDTCZkZWFsZXJJZD0iOiJodHRwczovL2ZyLmxpbmNvbG5jYW5hZGEuY29tL2ZpbmFuY2UvYXBwbHkvMT9Tb3VyY2VPZkRhdGE9Q0FEQ0wmZGVhbGVySWQ9IikrbSksZi5hdHRyKCJ0YXJnZXQiLCJfYmxhbmsiKSl9KTtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7aWYoMDwkKCIjZDJjLWJucC1saW5rcnVsZXMtdGV4dGFyZWEiKS5sZW5ndGgmJiIiIT0kKCIjZDJjLWJucC1saW5rcnVsZXMtdGV4dGFyZWEiKS52YWwoKSYmIiMjTElOS1JVTEVTIyMiIT0kKCIjZDJjLWJucC1saW5rcnVsZXMtdGV4dGFyZWEiKS52YWwoKSl7aWYoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLmN0YS10cGwiKS5sZW5ndGgmJiJ1bmRlZmluZWQiIT09dHlwZW9mIG5ld2NhckRldGFpbHMmJgoidW5kZWZpbmVkIiE9PXR5cGVvZiBuZXdjYXJEZXRhaWxzLmFjdGl2ZU1vZGVsKXtpZighMT09PSgiY29tbWVyY2lhbCI9PW5ld2NhckRldGFpbHMuYWN0aXZlTW9kZWwuc2VjdGlvbj8hMDohMSkpcmV0dXJuO2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5jdGEtdHBsIGEiKS5mb3JFYWNoKChmLGcpPT57Zz1mLmdldEF0dHJpYnV0ZSgiaHJlZiIpO2lmKGcuaW5jbHVkZXMoInNob3AuZm9yZC5jYSIpKXtsZXQgbT0hMTtnLmluY2x1ZGVzKCJzdXBlcmR1dHkiKSYmKG09Zy5yZXBsYWNlKCIvc3VwZXJkdXR5LyIsIi9zdXBlcmR1dHktY29tbWVyY2lhbC8iKSk7ITEhPT1tJiZmLnNldEF0dHJpYnV0ZSgiaHJlZiIsbSl9fSl9ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiI2NsYXNzY29tbWVyY2lhbF9jb250YWluZXIiKS5sZW5ndGgmJmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5kaXZDYXJTaW5nbGVPdXRlckJveCBhIikuZm9yRWFjaCgoZixnKT0+e2c9Zi5nZXRBdHRyaWJ1dGUoImhyZWYiKTsKaWYoZy5pbmNsdWRlcygic2hvcC5mb3JkLmNhIikpe2xldCBtPSExO2cuaW5jbHVkZXMoInN1cGVyZHV0eSIpJiYobT1nLnJlcGxhY2UoIi9zdXBlcmR1dHkvIiwiL3N1cGVyZHV0eS1jb21tZXJjaWFsLyIpKTshMSE9PW0mJmYuc2V0QXR0cmlidXRlKCJocmVmIixtKX19KX19LDJFMyk7dGhpcy5tZW51Lm9uKCJtb3VzZWVudGVyIG1vdXNlbGVhdmUiLCIjTWFpbk1lbnVfTkVXID4gdWwuc3ViID4gbGkgPiB1bC5zdWIgPiBsaSA+IHVsLnN1YiA+IGxpLCAjTWFpbk1lbnVfTkVXID4gdWwuc3ViID4gbGkgPiAubWFpbm1lbnUtc3VibWVudSA+IHVsLnN1YiA+IGxpID4gdWwuc3ViID4gbGksICAjTWFpbk1lbnVfVEFCX0NPTU1FUkNJQUwgPiB1bC5zdWIgPiBsaSA+IHVsLnN1YiA+IGxpID4gdWwuc3ViID4gbGksICNNYWluTWVudV9UQUJfQ09NTUVSQ0lBTCA+IHVsLnN1YiA+IGxpID4gLm1haW5tZW51LXN1Ym1lbnUgPiB1bC5zdWIgPiBsaSA+IHVsLnN1YiA+IGxpIixmdW5jdGlvbihmKXtpZigibW91c2VsZWF2ZSIhPQpmLnR5cGUpe3ZhciBnPSQodGhpcykuZmluZCgiLm1lbnUtdGVjaC1zcGVjcyIpOzA9PWcubGVuZ3RoJiYoZz0kKCIjbWVudS1zcGVjcy10ZW1wbGF0ZSIpLmNsb25lKCkpO3ZhciBtPXRoaXM7aWYoMD09JChtKS5jaGlsZHJlbigiLm1lbnUtdGVjaC1zcGVjcyIpLmxlbmd0aCl7dmFyIGw9JChtKS5maW5kKCJhOm50aC1vZi10eXBlKDIpIikudGV4dCgpLHU9JChtKS5maW5kKCJhOmZpcnN0LWNoaWxkIikuYXR0cigiaHJlZiIpLHE9dS5sYXN0SW5kZXhPZigiLyIpKzE7Y2FyTGlua1RyaW1tZWQ9dS5zdWJzdHJpbmcocSx1Lmxlbmd0aCk7dmFyIHI9JCgiI3R4dEJ1aWxkQW5kUHJpY2VGb2xkZXJQYXRoIikudmFsKCkrY2FyTGlua1RyaW1tZWQ7KGZ1bmN0aW9uKCl7aWYoMDwkKCIjZDJjLWJucC1saW5rcnVsZXMtdGV4dGFyZWEiKS5sZW5ndGgmJiIiIT0kKCIjZDJjLWJucC1saW5rcnVsZXMtdGV4dGFyZWEiKS52YWwoKSYmIiMjTElOS1JVTEVTIyMiIT0kKCIjZDJjLWJucC1saW5rcnVsZXMtdGV4dGFyZWEiKS52YWwoKSl7dmFyIHk9CjA8JChtKS5jbG9zZXN0KCJsaVtkYXRhLWlkXj0nTkVXX0NPTU1FUkNJQUwnXSIpLmxlbmd0aD8hMDohMSxBPSQoIiNkMmMtYm5wLWxpbmtydWxlcy10ZXh0YXJlYSIpLnZhbCgpO0E9SlNPTi5wYXJzZShBKTt2YXIgST0kKCJodG1sIikuYXR0cigibGFuZyIpLEI9ci5tYXRjaCgiZW4iPT1JPy9cL2J1aWxkLWFuZC1wcmljZVwvKFxkezR9LShcdyspLShcdyspLipcLmh0bWwpLiovOi9cL2NvbmZpZ3VyYXRpb24tZXQtcHJpeFwvKChcdyspLShcdyspLVxkezR9KS4qXC5odG1sLyksSj1CWzBdLEY9QlsyXS50b0xvd2VyQ2FzZSgpO0I9QlszXS50b0xvd2VyQ2FzZSgpLnJlcGxhY2VBbGwoIl8iLCIgIik7eSYmQi5pbmNsdWRlcygic3VwZXIgZHV0eSIpJiYoQj0ic3VwZXIgZHV0eSBjb21tZXJjaWFsIik7aWYoInVuZGVmaW5lZCIhPT10eXBlb2YgQVtGXSYmInVuZGVmaW5lZCI9PT10eXBlb2YgQVtGXVtCXSlmb3IodmFyIEsgaW4gQVtGXSlpZih5PUssQi5pbmNsdWRlcyh5KSl7Qj15OwpicmVha30idW5kZWZpbmVkIiE9PXR5cGVvZiBBW0ZdJiYidW5kZWZpbmVkIiE9PXR5cGVvZiBBW0ZdW0JdJiYoJChnKS5maW5kKCIubWVudS1zcGVjLWJucCIpLmF0dHIoInRhcmdldCIsIl9ibGFuayIpLHI9ci5yZXBsYWNlKEosQVtGXVtCXVtJXSkpfX0pKCk7JChnKS5maW5kKCIubWVudS1zcGVjLWJucCIpLmF0dHIoImhyZWYiLHIpOyQoZykuZmluZCgiLm1lbnUtc3BlYy1saW5rIikuYXR0cigiaHJlZiIsdSk7JChnKS5yZW1vdmVBdHRyKCJpZCIpOyQoZykuY2hpbGRyZW4oIi5tZW51LXNwZWNzLXRpdGxlIikuYXBwZW5kKGwpO3ZhciBwPXt9OyQuaXNFbXB0eU9iamVjdChjKCkuY2Fycy5kZXRhaWxzKT8kLndoZW4oYygpLnNwZWNzQWpheCkuZG9uZShmdW5jdGlvbih5KXtwPWMoKS5jYXJzLmZpbmRCeUlkKCQobSkuZGF0YSgibW9kZWxpZCIpKX0pOnA9YygpLmNhcnMuZmluZEJ5SWQoJChtKS5kYXRhKCJtb2RlbGlkIikpO2lmKCEkLmlzRW1wdHlPYmplY3QocCkpe3ZhciB3PWEuc2hvdWxkVXNlRnJlbmNoTmFtZXMoKT8KcC5uYW1lOnAubW9kZWw7cC5oYXNPd25Qcm9wZXJ0eSgiYmFzZV9zdHlsZSIpJiYocD1wLmJhc2Vfc3R5bGUsdz1wLm1vZGVsKTtxPSJGUkVOQ0giPT0kKCIjdGV4dExhbmd1YWdlIikudmFsKCk\/Ik4vRCI6Ik4vQSI7bD0iIj09cC5kaXNwbGFjZW1lbnQ\/cTpwLmRpc3BsYWNlbWVudDt1PSIiPT1wLmNpdHlGdWVsP3E6cC5jaXR5RnVlbDtxPSIiPT1wLmh3eUZ1ZWw\/cTpwLmh3eUZ1ZWw7dmFyIHo9cC5tc3JwQWxsSW4sRD0kKGcpLmZpbmQoIi5tZW51LXNwZWMtYm5wIikudGV4dCgpLnRyaW0oKTtEPUQucmVwbGFjZSgiJE1PREVMIix3KTt3PWA8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj4ke3oudG9Mb2NhbGVTdHJpbmcoKX08L3NwYW4+YDt6PSQoIiNBRE1JTl9ORVdfRE9OVF9TSE9XX1BSSUNFX01PREVMUyIpLnZhbCgpLmluY2x1ZGVzKHAubW9kZWxpZCk7aWYoMDwkKG0pLmNoaWxkcmVuKCIucHJpY2UiKS5sZW5ndGgpeyQoZykuZmluZCgiLm1lbnUtc3BlYy1wcmljZSIpLnRleHQoIiIpOwp2YXIgQz0kKCc8ZGl2IGNsYXNzPSJwcmljZSIvPicpLEU9JCgnPHNwYW4gY2xhc3M9InByaWNlX2FtdCIvPicpLEc9JCgnPHNwYW4gY2xhc3M9InByaWNlX3NjcmF0Y2hlZCIvPicpLEg9JCgnPHNwYW4gY2xhc3M9InByaWNlX3Byb21vIi8+Jyk7MDwkKG0pLmNoaWxkcmVuKCIucHJpY2UiKS5jaGlsZHJlbigiLnByaWNlLXNjcmF0Y2giKS5sZW5ndGg\/KEcuaHRtbCh3KSxFLmFwcGVuZChHKSxFLmNzcyh7InRleHQtZGVjb3JhdGlvbiI6ImxpbmUtdGhyb3VnaCIsY29sb3I6InJlZCJ9KSk6RS5odG1sKHcpO0MuYXBwZW5kKEUpOzA8JChtKS5jaGlsZHJlbigiLnByaWNlIikuY2hpbGRyZW4oIi5wcmljZV9wcm9tbyIpLmxlbmd0aCYmKEgudGV4dCgkKG0pLmNoaWxkcmVuKCIucHJpY2UiKS5jaGlsZHJlbigiLnByaWNlX3Byb21vIikudGV4dCgpKSxILmNzcyh7Y29sb3I6InJlZCJ9KSxDLmFwcGVuZChIKSk7JChnKS5maW5kKCIubWVudS1zcGVjLXByaWNlIikuYXBwZW5kKEMpfWVsc2UgJChnKS5maW5kKCIubWVudS1zcGVjLXByaWNlIikuaHRtbCh3KTsKJChnKS5maW5kKCIubWVudS1zcGVjLWhwIikudGV4dChwLmhwQXRSUE0pOyQoZykuZmluZCgiLm1lbnUtc3BlYy1wb3dlciIpLnRleHQobCk7JChnKS5maW5kKCIubWVudS1zcGVjLWZ1ZWwtY2l0eSIpLnRleHQodSk7JChnKS5maW5kKCIubWVudS1zcGVjLWZ1ZWwtaGlnaHdheSIpLnRleHQocSk7JChnKS5maW5kKCIubWVudS1zcGVjLWRyaXZldHJhaW4iKS50ZXh0KHAuZHJpdmVUcmFpbik7JChnKS5maW5kKCIubWVudS1zcGVjLWJucCIpLmNvbnRlbnRzKCkuZmlsdGVyKGZ1bmN0aW9uKCl7cmV0dXJuIDM9PXRoaXMubm9kZVR5cGV9KS5sYXN0KCkucmVwbGFjZVdpdGgoRCk7eiYmKCQoZykuZmluZCgiLm1lbnUtc3BlYy1ibnAiKS5yZW1vdmUoKSwkKGcpLmZpbmQoIi5tZW51LXNwZWMtcHJpY2UiKS50ZXh0KCQoIiNORVdfUFJJQ0VfVEVYVCIpLnZhbCgpKSk7JChnKS5maW5kKCIubWVudS1wcmljZS10ZXh0IikudGV4dChkKCQoZykuZmluZCgiLm1lbnUtcHJpY2UtdGV4dCIpLnRleHQoKSwKcCkpOzVFOD5wLmlkJiYkKG0pLmFwcGVuZChnLmZhZGVJbigyMDApKTtsPW5ldyBDdXN0b21FdmVudCgidG9wbmF2LXRlY2gtc3BlYy1sb2FkZWQiLHtkZXRhaWw6e3RlbXBsYXRlOmd9fSk7ZG9jdW1lbnQuZGlzcGF0Y2hFdmVudChsKX19c2V0VGltZW91dChmdW5jdGlvbigpe3ZhciB5PWEucG9zaXRpb25zKG0sZiwkKGcpKTt5LnVwZGF0ZSgpO3ZhciBBPSQobSkucGFyZW50KCJ1bC5zdWIiKS5wYXJlbnQoKS5wYXJlbnQoKTtBLm9mZnNldCgpO0Eub3V0ZXJIZWlnaHQoKTt5LnNwZWNzQm90dG9tPHkuc3ViTWVudUl0ZW1Ub3AmJiQoZykuY3NzKCJ0b3AiLHkuc3ViTWVudUl0ZW1Cb3R0b20teS5zcGVjc0JvdHRvbSk7eS5zdWJNZW51SXRlbVRvcDx5LnNwZWNzQm90dG9tJiZ5LnN1Yk1lbnVJdGVtQm90dG9tPnkuc3BlY3NCb3R0b20mJiQoZykuY3NzKCJ0b3AiLCQoZykucG9zaXRpb24oKS50b3ArKHkuc3ViTWVudUl0ZW1Cb3R0b20teS5zcGVjc0JvdHRvbSkpfSwwKTtkZWxldGUgcH19KTsKJCgnLnVwX21lbnUgW2lkXj0iTWFpbk1lbnVfIl0udG9wOm5vdCguaXNPcGVuKScpLm9uKCJtb3VzZWVudGVyIixmdW5jdGlvbihmKXskKGYuY3VycmVudFRhcmdldCkuaGFzQ2xhc3MoImlzT3BlbiIpfHwkKCcudXBfbWVudSBbaWRePSJNYWluTWVudV8iXS50b3AnKS5yZW1vdmVDbGFzcygiaXNPcGVuIil9KTskKGRvY3VtZW50KS5vbigiY2xpY2siLGZ1bmN0aW9uKGYpe2NoaWxkT2YoZG9jdW1lbnQuYWN0aXZlRWxlbWVudCwkKCIudXBfbWVudSIpWzBdKXx8JCgnLnVwX21lbnUgW2lkXj0iTWFpbk1lbnVfIl0udG9wJykucmVtb3ZlQ2xhc3MoImlzT3BlbiIpfSk7JCgiI01haW5NZW51X0NPTlRBQ1QiKS5vbigibW91c2VlbnRlciBtb3VzZWxlYXZlIixmdW5jdGlvbihmKXt2YXIgZz0kKCIjbWVudS1tYXAtbGluayIpOzA9PWcubGVuZ3RofHwwPGcuZmluZCgiaWZyYW1lIikubGVuZ3RofHxpbmplY3RHb29nbGVNYXBzS2V5KGZ1bmN0aW9uKG0pe209Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vbWFwcy9lbWJlZC92MS9wbGFjZT8iKwpbInE9IitlbmNvZGVVUklDb21wb25lbnQoZy5kYXRhKCJwbGFjZUlkIikpLCJ6b29tPSIrZy5kYXRhKCJ6b29tIiksImxhbmd1YWdlPSIrZy5kYXRhKCJsYW5ndWFnZSIpLCJyZWdpb249Q0EiLCJrZXk9IittXS5qb2luKCImIik7Zy5hcHBlbmQoJzxpZnJhbWUgc3JjPSInK20rJyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iNDAwIiBmcmFtZWJvcmRlcj0iMCIgc3R5bGU9ImJvcmRlcjowIiBhbGxvd2Z1bGxzY3JlZW4+PC9pZnJhbWU+Jyl9KX0pOyQoIiNNYWluTWVudV9GSU5BTkNFLCAjTWFpbk1lbnVfQ09OVEFDVCIpLm9uKCJtb3VzZWVudGVyIG1vdXNlbGVhdmUiLGZ1bmN0aW9uKGYpe3ZhciBnPWYuY3VycmVudFRhcmdldC5pZCxtPSQoIiMiK2cpOzA9PT0kKCIjIitnKyIuaXNPcGVuIikubGVuZ3RoJiYibW91c2VsZWF2ZSIhPT1mLnR5cGUmJm0uYWRkQ2xhc3MoImlzT3BlbiIpO2lmKCJtb3VzZWxlYXZlIj09PWYudHlwZSl7dmFyIGw9JCgiLmNyZWRpdFNjb3JlUG9wdXBGb3JtIilbMF07Cmc9JCgiIyIrZysiID4gYS50b3BfbGluayIpWzBdOyhsJiZmLmZyb21FbGVtZW50PT09bHx8ZyYmZi5mcm9tRWxlbWVudD09PWcpJiZtLnJlbW92ZUNsYXNzKCJpc09wZW4iKTtsPSQoZi50b0VsZW1lbnQpLmhhc0NsYXNzKCJjYWwtd3JhcHBlciIpfHwkKGYudG9FbGVtZW50KS5jaGlsZHJlbigpLmhhc0NsYXNzKCJjYWwtd3JhcHBlciIpfHwkKGYudG9FbGVtZW50KS5oYXNDbGFzcygibmViQ2FsIil8fCQoZi50b0VsZW1lbnQpLmNsb3Nlc3QoIi5uZWJDYWwiKS5sZW5ndGg7Zz0kKGYudG9FbGVtZW50KS5oYXNDbGFzcygicGFjLWNvbnRhaW5lciIpO2lmKCEobnVsbD09PWYudG9FbGVtZW50fHxjaGlsZE9mKGYudG9FbGVtZW50LG1bMF0pfHxjaGlsZE9mKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQsbVswXSl8fGx8fGcpfHxjaGlsZE9mKGYudG9FbGVtZW50LCQoIi51cF9tZW51IilbMF0pJiYhY2hpbGRPZihmLnRvRWxlbWVudCxtWzBdKSkkKCIubmViQ2FsIikuaXMoIjp2aXNpYmxlIikmJgooZj0kKCIuZmluYW5jZS1tZW51LWZyZWVjcmVkaXQgLmNyZWRpdFNjb3JlQmlydGhkYXRlIikuZGF0YSgibmViQ2FsIikpJiZmLmhpZGUoKSxtLnJlbW92ZUNsYXNzKCJpc09wZW4iKX19KTtpZigkKCEwKSl7ZT0kKCIubWVudTUgLm5hdiA+IGxpIik7az1lLmxlbmd0aDt2YXIgeD0kKCIjTWFpbk1lbnVfQ09OVEFDVCIpLHY9LTE7ZS5lYWNoKGZ1bmN0aW9uKGYsZyl7JChnKS5pcyh4KSYmKHY9Zil9KTstMTx2JiYuNTw9di9rJiZ4LmZpbmQoIi5jb250YWN0dXMtZm9ybS5jb250YWN0LXNob3J0IikuY3NzKHtyaWdodDoiaW5oZXJpdCJ9KX10aGlzLnNob3VsZFVzZUZyZW5jaE5hbWVzPWZ1bmN0aW9uKCl7cmV0dXJuIkZSRU5DSCI9PSQoIiNhY3RpdmVzaXRlbGFuZ3VhZ2UiKS52YWwoKSYmIjEiPT09JCgiI25ld190cmFuc2xhdGVkX3RpdGxlcyIpLnZhbCgpfTt0aGlzLnNldE1lbnVFeHByZXNzRm9ybVNlbGVjdGVkT3B0aW9uPWZ1bmN0aW9uKCl7dmFyIGY9d2luZG93LmxvY2F0aW9uLmhyZWYsCmc9L3VzZWR8b2NjYXNpb24vLnRlc3QoZiksbT0vbmV3fG5ldWZzLy50ZXN0KGYpLGw9L2ZpbmFuY2VtZW50fGNyZWRpdC8udGVzdChmKSx1PS9zZXJ2aWNlfGFjY2Vzc29yaWVzfHRpcmV8cG5ldXN8Ym9keXNob3B8Ym9keS1zaG9wfGNhcm9zc2VyaWUvLnRlc3QoZik7Zj0iIjttP2Y9Im5ldyI6Zz9mPSJ1c2VkIjpsP2Y9ImZpbmFuY2UiOnUmJihmPSJzZXJ2aWNlIik7IiIhPWYmJihnPSQoIi5tZW51ICNxdWlja0VtYWlsRGVwYXJ0bWVudCIpLCQoJyBvcHRpb25bdmFsdWU9IicrZisnIl0nLGcpLnByb3AoInNlbGVjdGVkIiwic2VsZWN0ZWQiKSxtPSQoIm9wdGlvbjpzZWxlY3RlZCIsZykuaW5kZXgoKSxnLnByZXYoInVsIikuZmluZCgibGkiKS5lcShtKS5maW5kKCJhIikudHJpZ2dlcigiY2xpY2siKSl9O3NldFRpbWVvdXQoZnVuY3Rpb24oKXthLnNldE1lbnVFeHByZXNzRm9ybVNlbGVjdGVkT3B0aW9uKCl9LDEwKTtjb25zb2xlLmxvZygiTWVudUhhbmRsZXIgaW5pdCAtLSB0ZXN0IHJlbW92ZSBsYXRlciIpOwp0aGlzLnRyYW5zbGF0ZVRpdGxlcz1mdW5jdGlvbigpe3JldHVybiAkanNjb21wLmFzeW5jRXhlY3V0ZVByb21pc2VHZW5lcmF0b3JGdW5jdGlvbihmdW5jdGlvbiooKXt0cnl7dmFyIGY9ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiW2RhdGEtbWVudS10cmFuc2xhdGVdIik7aWYoZil7dmFyIGc9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiYm9keSIpLmNsYXNzTmFtZS5tYXRjaCgiRlJFTkNIIik\/ImZyIjoiZW4iLG09KG5ldyBVUkwoYC9qcy9qc29uL21lbnVUaXRsZXNfJHtnfS5qc29uYCx3aW5kb3cubG9jYXRpb24ub3JpZ2luKSkuaHJlZjtyZXNwb25zZT15aWVsZCBmZXRjaChtKTtpZih0ZXh0PXlpZWxkIHJlc3BvbnNlLnRleHQoKSlpZihkYXRhPUpTT04ucGFyc2UodGV4dCksZiYmMCE9PWRhdGEubGVuZ3RoKWZvcihnPTA7ZzxmLmxlbmd0aDtnKyspe3ZhciBsPWZbZ10uZ2V0QXR0cmlidXRlKCJkYXRhLW1lbnUtdHJhbnNsYXRlIik7ZGF0YVtsXSYmQmFzZTY0LmlzQmFzZTY0KGRhdGFbbF0udGV4dCkmJgooZltnXS50ZXh0Q29udGVudD1CYXNlNjQuZGVjb2RlKGRhdGFbbF0udGV4dCkpfX19Y2F0Y2godSl7Y29uc29sZS5sb2codSl9fSl9O3RoaXMudHJhbnNsYXRlVGl0bGVzKCl9fSkoKTskKGZ1bmN0aW9uKCl7d2luZG93Lm1lbnVIYW5kbGVyPW5ldyBNZW51SGFuZGxlcn0pOwp2YXIgZ2V0QWN0aXZlUGFnZT1mdW5jdGlvbigpe3ZhciBhPSIiOyJ1bmRlZmluZWQiPT09dHlwZW9mIGFjdGl2ZVBhZ2UmJihhY3RpdmVQYWdlPSIiKTtzd2l0Y2goYWN0aXZlUGFnZSl7Y2FzZSAiSE9NRVBBR0UiOmE9IkFjY3VlaWwiO2JyZWFrO2Nhc2UgIkNBUkRFVEFJTFMiOmE9Ik9jY2FzaW9uLVZEUCI7YnJlYWs7Y2FzZSAiVVNFRENBUlMiOmE9Ik9jY2FzaW9uLVNSUCI7YnJlYWs7Y2FzZSAiTkVXQ0FSUyI6YT0iTmV1Zi1TUlAiO2JyZWFrO2Nhc2UgIk5FV0NBUkRFVEFJTFMiOmE9Ik5ldWYtVkRQIn1yZXR1cm4gYX0sc2VuZEdvb2dsZUFuYWx5dGljQmFubmVyQ2xpY2tlZEV2ZW50PWZ1bmN0aW9uKGEsYil7Z2FUcmFjaygiX3RyYWNrRXZlbnQiLCJDbGlxdWVzIEJhbm5pZXJlIixhLGIsMSl9OwokKGRvY3VtZW50KS5vbigiY2xpY2siLCIjaG9tZXBhZ2UtYmFubmVyICNzbGlkZXIgPiBhIixmdW5jdGlvbihhKXtpZihhPWdldEFjdGl2ZVBhZ2UoKSl7dmFyIGI9IiIhPSQodGhpcykuYXR0cigiaHJlZiIpPyQodGhpcykuYXR0cigiaHJlZiIpOiJQb3B1cCI7c2VuZEdvb2dsZUFuYWx5dGljQmFubmVyQ2xpY2tlZEV2ZW50KGEsYil9fSk7JChkb2N1bWVudCkub24oImNsaWNrIiwiI21vYmlsZVNsaWRlciAjbW9iaWxlU2xpZGVyMiA+IGEiLGZ1bmN0aW9uKGEpe2lmKGE9Z2V0QWN0aXZlUGFnZSgpKXt2YXIgYj0iIiE9JCh0aGlzKS5hdHRyKCJocmVmIik\/JCh0aGlzKS5hdHRyKCJocmVmIik6IlBvcHVwIjtzZW5kR29vZ2xlQW5hbHl0aWNCYW5uZXJDbGlja2VkRXZlbnQoYSxiKX19KTsKJChkb2N1bWVudCkub24oImNsaWNrIiwiI3RvcEJhbm5lckltYWdlIixmdW5jdGlvbihhKXsoYT1nZXRBY3RpdmVQYWdlKCkpJiZzZW5kR29vZ2xlQW5hbHl0aWNCYW5uZXJDbGlja2VkRXZlbnQoYSwiUG9wdXAiKX0pO3ZhciBob21lUGFnZUJhbm5lclZpZXc9W107JChkb2N1bWVudCkub24oImNsaWNrIiwiI2hvbWVwYWdlLWJhbm5lciAjc2xpZGVyID4gYSIsZnVuY3Rpb24oYSl7KGE9Z2V0QWN0aXZlUGFnZSgpKSYmIkFjY3VlaWwiPT1hJiYoYT0kKCIjc2xpZGVyIikuZGF0YSgibml2bzp2YXJzIikuY3VycmVudFNsaWRlKzEsZ2FUcmFjaygiYy5fdHJhY2tFdmVudCIsIkhvbWUtcGFnZSBzbGlkZXIiLCJEZXNrdG9wLWNsaWNrIixhLDEpKX0pOwokKGRvY3VtZW50KS5vbigibml2b1NsaWRlckNoYW5nZWQgbml2b1NsaWRlckxvYWRlZCIsIiNob21lcGFnZS1iYW5uZXIgI3NsaWRlciIsZnVuY3Rpb24oYSl7IShhPWdldEFjdGl2ZVBhZ2UoKSl8fCJBY2N1ZWlsIiE9YXx8NTAwPCQoZG9jdW1lbnQpLnNjcm9sbFRvcCgpfHwoYT0kKCIjc2xpZGVyIikuZGF0YSgibml2bzp2YXJzIikuY3VycmVudFNsaWRlKzEsMD4kLmluQXJyYXkoYSxob21lUGFnZUJhbm5lclZpZXcpJiYoaG9tZVBhZ2VCYW5uZXJWaWV3LnB1c2goYSksZ2FUcmFjaygiYy5fdHJhY2tFdmVudCIsIkhvbWUtcGFnZSBzbGlkZXIiLCJEZXNrdG9wLXZpZXciLGEsMSkpKX0pOwokKGRvY3VtZW50KS5vbigiY2xpY2siLCIjbW9iaWxlU2xpZGVyICNtb2JpbGVTbGlkZXIyID4gYSIsZnVuY3Rpb24oYSl7KGE9Z2V0QWN0aXZlUGFnZSgpKSYmIkFjY3VlaWwiPT1hJiYoYT0kKCIjbW9iaWxlU2xpZGVyMiIpLmRhdGEoIm5pdm86dmFycyIpLmN1cnJlbnRTbGlkZSsxLGdhVHJhY2soImMuX3RyYWNrRXZlbnQiLCJIb21lLXBhZ2Ugc2xpZGVyIiwiTW9iaWxlLWNsaWNrIixhLDEpKX0pOwokKGRvY3VtZW50KS5vbigibml2b1NsaWRlckNoYW5nZWQgbml2b1NsaWRlckxvYWRlZCIsIiNtb2JpbGVTbGlkZXIgI21vYmlsZVNsaWRlcjIiLGZ1bmN0aW9uKGEpeyEoYT1nZXRBY3RpdmVQYWdlKCkpfHwiQWNjdWVpbCIhPWF8fDM1MDwkKGRvY3VtZW50KS5zY3JvbGxUb3AoKXx8KGE9JCgiI21vYmlsZVNsaWRlcjIiKS5kYXRhKCJuaXZvOnZhcnMiKS5jdXJyZW50U2xpZGUrMSwwPiQuaW5BcnJheShhLGhvbWVQYWdlQmFubmVyVmlldykmJihob21lUGFnZUJhbm5lclZpZXcucHVzaChhKSxnYVRyYWNrKCJjLl90cmFja0V2ZW50IiwiSG9tZS1wYWdlIHNsaWRlciIsIk1vYmlsZS12aWV3IixhLDEpKSl9KTsKZnVuY3Rpb24gdGhyZXNob2xkUG9wdXAoKXt2YXIgYT1nZXRVcmxWYXJzKCk7aWYobnVsbD09Q29va2llcy5nZXQoInBvcHVwU2hvd24iKXx8InVuZGVmaW5lZCIhPXR5cGVvZiBhLmRlYnVnKXNob3dQb3B1cFdpZGdldCh7ZG9Ob3RSZWRpcmVjdDohMH0pLENvb2tpZXMuc2V0KCJwb3B1cFNob3duIiwiMSIsOTAsIi8iKX1mdW5jdGlvbiBfbG9jYWxTdG9yYWdlU2V0KGEsYixjKXtjPTg2NEU1KihjfHwxKTtiPXt2YWx1ZTpiLGV4cGlyeToobmV3IERhdGUpLmdldFRpbWUoKStjfTtsb2NhbFN0b3JhZ2Uuc2V0SXRlbShhLEpTT04uc3RyaW5naWZ5KGIpKX1mdW5jdGlvbiBfbG9jYWxTdG9yYWdlR2V0KGEpe3ZhciBiPWxvY2FsU3RvcmFnZS5nZXRJdGVtKGEpO2lmKCFiKXJldHVybiBudWxsO2I9SlNPTi5wYXJzZShiKTtyZXR1cm4obmV3IERhdGUpLmdldFRpbWUoKT5iLmV4cGlyeT8obG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oYSksbnVsbCk6Yi52YWx1ZX0KZnVuY3Rpb24gX2xvY2FsU3RvcmFnZVJlbW92ZShhKXtpZighbG9jYWxTdG9yYWdlLmdldEl0ZW0oYSkpcmV0dXJuIG51bGw7bG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oYSk7cmV0dXJuIG51bGx9ZnVuY3Rpb24gZ2VuZXJhdGVVbmlxdWVJZCgpe3JldHVybiJpZC0iK0RhdGUubm93KCkrIi0iK01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnNsaWNlKDIpfWNvbnN0IGluaXRUb29sdGlwcz0oKT0+e3RyeXtkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCJbZGF0YS1wb3BwZXJdIikuZm9yRWFjaChhPT57VG9vbHRpcChhKS5jcmVhdGUoKX0pfWNhdGNoKGEpe2NvbnNvbGUubG9nKCJUb29sdGlwIG9iamVjdCBub3QgZm91bmQiKX19OwpmdW5jdGlvbiBoYW5kbGVDb29raWVDb250ZW50KCl7ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiW2RhdGEtY29va2llaGlkZV0iKS5mb3JFYWNoKGE9PntsZXQgYj1hLmRhdGFzZXQuY29va2llaGlkZTtiLmxlbmd0aCYmQ29va2llcy5nZXQoYikmJihhLmhpZGRlbj0hMCl9KTtkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCJbZGF0YS1jb29raWVzaG93XSIpLmZvckVhY2goYT0+e2xldCBiPWEuZGF0YXNldC5jb29raWVzaG93O2IubGVuZ3RoJiZDb29raWVzLmdldChiKSYmKGEuaGlkZGVuPSExKX0pfXZhciBzaXRlUGFnZT17fTsKY29uc3QgZG9jUmVhZHk9ZnVuY3Rpb24oKXtfbG9jYWxTdG9yYWdlR2V0KCJkMmMtdWlkIil8fF9sb2NhbFN0b3JhZ2VTZXQoImQyYy11aWQiLGdlbmVyYXRlVW5pcXVlSWQoKSwyKTtpZigiY29tcGxldGUiPT09ZG9jdW1lbnQucmVhZHlTdGF0ZSl7bGV0IGE7Y29uc29sZS5sb2coIkdTUEVFRC1ET0NSRUFEWSBDT01QTEVURToiKyhEYXRlLm5vdygpLShudWxsIT0oYT13aW5kb3cuZ1Rlc3RTcGVlZENvbm4pP2E6MCkpLzFFMyk7ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLnNrZWxldG9uLXR4dCIpLmZvckVhY2goYj0+e2IuY2xhc3NMaXN0LnRvZ2dsZSgic2tlbGV0b24tdHh0IiwhMSl9KTtkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIuc2tlbGV0b24tc2xpZGVyIikuZm9yRWFjaChiPT57Yi5jbGFzc0xpc3QudG9nZ2xlKCJza2VsZXRvbi1zbGlkZXIiLCExKX0pO3dpbmRvdy5nU2tlbGV0b25Jc1JlbW92ZWQ9ITA7c2l0ZVBhZ2U9e25hbWU6InVuZGVmaW5lZCIhPXR5cGVvZiBwYWdlPwpwYWdlOiIiLGlzTW9iaWxlOiIxIj09KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpc21vYmlsZSIpfHwiIikudmFsdWUsbGFuZzooZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFjdGl2ZXNpdGVsYW5ndWFnZSIpfHwiIikudmFsdWV8fCJGUkVOQ0gifTtoYW5kbGVDb29raWVDb250ZW50KCk7aW5pdFRvb2x0aXBzKCk7ZG9jUmVhZHlBcnIuZm9yRWFjaChiPT5iKCkpO2RvY1JlYWR5QXJyPVtdfWVsc2V7bGV0IGE7aWYoImludGVyYWN0aXZlIj09PWRvY3VtZW50LnJlYWR5U3RhdGUmJndpbmRvdy5nUmVzb3VyY2VMb2FkZXJBbmRKcXVlcnlJc1JlYWR5JiYhMT09PShudWxsIT0oYT13aW5kb3cuZ1NrZWxldG9uSXNSZW1vdmVkKT9hOiExKSl7bGV0IGI7Y29uc29sZS5sb2coIkdTUEVFRC1ET0NSRUFEWSBJTlRFUkFDVElWRToiKyhEYXRlLm5vdygpLShudWxsIT0oYj13aW5kb3cuZ1Rlc3RTcGVlZENvbm4pP2I6MCkpLzFFMyk7ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLnNrZWxldG9uLXR4dCIpLmZvckVhY2goYz0+CntjLmNsYXNzTGlzdC50b2dnbGUoInNrZWxldG9uLXR4dCIsITEpfSk7ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLnNrZWxldG9uLXNsaWRlciIpLmZvckVhY2goYz0+e2MuY2xhc3NMaXN0LnRvZ2dsZSgic2tlbGV0b24tc2xpZGVyIiwhMSl9KTt3aW5kb3cuZ1NrZWxldG9uSXNSZW1vdmVkPSEwfXNldFRpbWVvdXQoZG9jUmVhZHksNTApfX07ZG9jUmVhZHkoKTsKJChmdW5jdGlvbigpe3ZhciBhPSEwOyQod2luZG93KS5vbigic2Nyb2xsIixmdW5jdGlvbigpe3ZhciBkPSQoZG9jdW1lbnQpLmhlaWdodCgpLGU9JCh3aW5kb3cpLmhlaWdodCgpKyQod2luZG93KS5zY3JvbGxUb3AoKTsuMDU+KGQtZSkvZCYmYSYmKGE9ITEsInVuZGVmaW5lZCIhPT10eXBlb2YgZ2FUcmFjayYmZ2FUcmFjaygiX3RyYWNrRXZlbnQiLCJCb3R0b20gb2YgcGFnZSByZWFjaGVkIiwkKCdpbnB1dFtuYW1lPSJ0YXJnZXRQYWdlIl0nKS52YWwoKSx3aW5kb3cubG9jYXRpb24uaHJlZiwxKSl9KTskKCIuZW1iZWQtY29udGFpbmVyLXlvdXR1YmUiKS5wYXJlbnQoIi53cmFwcGVyIikucmVtb3ZlQ2xhc3MoIndyYXBwZXIiKTtpZigkKCIjaXNCcmFuZFBhZ2UiKS5sZW5ndGgpe3ZhciBiPWdldFVybFZhcnMoKTtpZihiLmt3JiYtMSE9Yi5rdy50b0xvd2VyQ2FzZSgpLmluZGV4T2YoImNhbmFkYSIpKXt2YXIgYz0kKCIjYWN0aXZlc2l0ZWxhbmd1YWdlIikmJiJFTkdMSVNIIj09CiQoIiNhY3RpdmVzaXRlbGFuZ3VhZ2UiKS52YWwoKT8iZW4iOiJmciI7Yj0iZW4iPT1jPyJIZXJlIHdlIG9mZmVyIHRoZSBiZXN0IHByaWNlcyI6IkljaSBvbiBvZmZyZSBsZXMgbWVpbGxldXJzIHByaXgiO2M9ImVuIj09Yz8ib24gIiskKCIjaXNCcmFuZFBhZ2UiKS52YWwoKSsiJ3MgaW4gQ2FuYWRhIjokKCIjaXNCcmFuZFBhZ2UiKS52YWwoKSsiIGF1IENhbmFkYSI7JCgiI2RlZmF1bHRUb3BCYW5uZXJUaXRsZSIpLnRleHQoYik7JCgiI2RlZmF1bHRUb3BCYW5uZXJUZXh0IikudGV4dChjKX19JCgiI2ZpbmFuY2VNdWx0aXN0ZXBQb3B1cENvbnRhaW5lciIpLmxlbmd0aCYmKGI9Z2V0VXJsVmFycygpLGIuZmluYW5jZXBvcCYmInllcyI9PWIuZmluYW5jZXBvcCYmc2V0VGltZW91dCgoKT0+eyQoIiNmaW5hbmNlTXVsdGlzdGVwUG9wdXBDb250YWluZXIiKS5wb3B1cGl6ZSgpLm9wZW4oKX0sMUUzKSk7MDwkKCIudHJhZGVzaWktcm9vdCIpLnRleHQoKS5sZW5ndGg\/JCgiLnRyYWRlc2lpLXJvb3QiKS5jc3MoInotaW5kZXgiLAoxRTMpOnNldFRpbWVvdXQoZnVuY3Rpb24oKXskKCIudHJhZGVzaWktcm9vdCIpLmNzcygiei1pbmRleCIsMUUzKX0sMUUzKX0pO2Z1bmN0aW9uIGFkZE1heExlbmd0aCgpeyQoIjppbnB1dCIpLmVhY2goZnVuY3Rpb24oKXt2YXIgYT0kKHRoaXMpLmF0dHIoInR5cGUiKSxiPSQodGhpcykuYXR0cigibWF4bGVuZ3RoIik7aWYodm9pZCAwPT1ifHxudWxsPT1ifHwiIj09YikidGV4dCI9PWF8fCJ0ZWwiPT1hfHwiZW1haWwiPT1hfHwidXJsIj09YT8kKHRoaXMpLnByb3AoIm1heGxlbmd0aCIsMjU2KToibnVtYmVyIj09YSYmKCQodGhpcykucHJvcCgib25pbnB1dCIsInRoaXMudmFsdWU9dGhpcy52YWx1ZS5zbGljZSgwLHRoaXMubWF4bGVuZ3RoKSIpLCQodGhpcykucHJvcCgibWF4bGVuZ3RoIiwyNTYpKX0pfWRvY1JlYWR5QXJyLnB1c2goKCk9PnskKCIucmV2ZWFsLW1vZGFsIikub24oInBvcHVwaXplci5vbk9wZW4iLGZ1bmN0aW9uKCl7YWRkTWF4TGVuZ3RoKCl9KTthZGRNYXhMZW5ndGgoKX0pOwooZnVuY3Rpb24oYSl7ZnVuY3Rpb24gYihkLGUpe3RoaXMuZWw9ZDt0aGlzLiRlbD1hKGQpO2lmKHZvaWQgMD09PWV8fCJvYmplY3QiPT09dHlwZW9mIGUpdGhpcy5zZXR0aW5ncz1hLmV4dGVuZChjLGUpO3RoaXMuaW5pdCgpfXZhciBjPXtsYXQ6IiIsbG9uZzoiIixwb3N0YWw6IiIscmF0aW86LjY4ODUsd2lkdGg6ImF1dG8ifTtiLnByb3RvdHlwZT17aW5pdDpmdW5jdGlvbigpe3ZhciBkPXRoaXMuJGVsLmlzKCIubGF6eWxvYWQiKT8iZGF0YS1pbWdzcmMiOiJzcmMiO3RoaXMuJGVsLmF0dHIoZCx0aGlzLmdldFVybCgpKX0saXNWaXNpYmxlOmZ1bmN0aW9uKCl7dmFyIGQ9dGhpcy4kZWwuYXR0cigid2lkdGgiKTtyZXR1cm4hKCIwcHgiPT09dGhpcy4kZWwuYXR0cigiaGVpZ2h0Iil8fCIwcHgiPT09ZCl9LGdldFdpZHRoOmZ1bmN0aW9uKCl7dGhpcy4kZWwuYXR0cigid2lkdGgiKTt2YXIgZD0wOyJhdXRvIj09PXRoaXMuc2V0dGluZ3Mud2lkdGh8fCJhdXRvIj09PXRoaXMuJGVsLmRhdGEoIndpZHRoIik\/CmQ9dGhpcy4kZWwucGFyZW50KCkuY3NzKCJ3aWR0aCIpOmlzTmFOKHBhcnNlSW50KHRoaXMuc2V0dGluZ3Mud2lkdGgpKT92b2lkIDAhPT10aGlzLiRlbC5hdHRyKCJ3aWR0aCIpJiYoZD10aGlzLiRlbC5hdHRyKCJ3aWR0aCIpKTpkPXRoaXMuc2V0dGluZ3Mud2lkdGg7dGhpcy4kZWwuYXR0cigid2lkdGgiLGQpO3JldHVybiBwYXJzZUludChkLnJlcGxhY2UoInB4IiwiIikpfSxnZXRIZWlnaHQ6ZnVuY3Rpb24oKXt2YXIgZD0iYXV0byI9PT10aGlzLnNldHRpbmdzLndpZHRofHwiYXV0byI9PT10aGlzLiRlbC5kYXRhKCJ3aWR0aCIpP01hdGgucm91bmQodGhpcy5nZXRXaWR0aCgpKnRoaXMuc2V0dGluZ3MucmF0aW8pKyJweCI6dGhpcy4kZWwucGFyZW50KCkuY3NzKCJoZWlnaHQiKTt0aGlzLiRlbC5hdHRyKCJoZWlnaHQiLGQpO3JldHVybiBwYXJzZUludChkLnJlcGxhY2UoInB4IiwiIikpfSxnZXRVcmw6ZnVuY3Rpb24oKXt2YXIgZD1nZXREYXRhQXR0cmlidXRlcyh0aGlzLmVsKSwKZT10aGlzLmdldFdpZHRoKCksaz10aGlzLmdldEhlaWdodCgpLGg9ZC5sYXQrIiwiK2QubG9uZyxuPWQuaGFzT3duUHJvcGVydHkoIm1hcmtlckljb24iKT8iaWNvbjoiK2QubWFya2VySWNvbisifCI6IiI7ZD1hLmV4dGVuZCh7c2l6ZTplKyJ4IitrLGNlbnRlcjpoLHpvb206IjEyIixtYXJrZXJzOm4raH0sZCk7cmV0dXJuImh0dHBzOi8vbWFwcy5nb29nbGVhcGlzLmNvbS9tYXBzL2FwaS9zdGF0aWNtYXA\/IithLnBhcmFtKGQpfSxkZXN0cm95OmZ1bmN0aW9uKCl7dGhpcy4kZWwucmVtb3ZlRGF0YSgpfX07YS5mbi5nb29nbGVTdGF0aWNNYXA9ZnVuY3Rpb24oZCl7dmFyIGU9YXJndW1lbnRzO2lmKDE+dGhpcy5sZW5ndGgpcmV0dXJuIHRoaXM7dGhpcy5lYWNoKGZ1bmN0aW9uKCl7aWYoIWEuZGF0YSh0aGlzLCJwbHVnaW5fc3RhdGljTWFwIikpcmV0dXJuIGEuZGF0YSh0aGlzLCJwbHVnaW5fc3RhdGljTWFwIixuZXcgYih0aGlzLGQpKSx0aGlzfSk7aWYoInN0cmluZyI9PT10eXBlb2YgZCYmCiJfIiE9PWRbMF0mJiJpbml0IiE9PWQpezE8dGhpcy5sZW5ndGgmJmNvbnNvbGUubG9nKCJnb29nbGVTdGF0aWNNYXAgd2FybmluZyBjb2RlIDEiKTt2YXIgaz1hLmRhdGEodGhpcy5maXJzdCgpWzBdLCJwbHVnaW5fc3RhdGljTWFwIik7cmV0dXJuIGtbZF0uYXBwbHkoayxBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChlLDEpKX1yZXR1cm4gdGhpc319KShqUXVlcnkpO2Z1bmN0aW9uIHBhcnNlUXVlcnkoYSl7aWYoMT5hLmxlbmd0aClyZXR1cm57fTtmb3IodmFyIGI9e30sYz1hLnNwbGl0KCImIiksZD0wO2Q8Yy5sZW5ndGg7ZCsrKWE9ZXhwbG9kZShjW2RdLCI9IiwxKSxiW2FbMF1dPWFbMV07cmV0dXJuIGJ9ZnVuY3Rpb24gZGVjb2RlU3RyaW5nKGEsYil7aWYoIiI9PWJ8fCJ1bmRlZmluZWQiPT1iKWI9MTtmb3IoaT0wO2k8YjtpKyspYT1kZWNvZGVVUklDb21wb25lbnQoYSk7cmV0dXJuIGF9CmZ1bmN0aW9uIGV4cGxvZGUoYSxiLGMpe2E9YS5zcGxpdChiKTtpZihhLmxlbmd0aDw9YylyZXR1cm4gYTtjPWEuc3BsaWNlKDAsYyk7Yy5wdXNoKGEuam9pbihiKSk7cmV0dXJuIGN9ZnVuY3Rpb24gZ2V0VXJsVmFycygpe3ZhciBhPXdpbmRvdy5sb2NhdGlvbi5zZWFyY2guc3Vic3RyaW5nKDEpO3JldHVybiBwYXJzZVF1ZXJ5KGEpfWZ1bmN0aW9uIGdldENvb2tpZShhKXtyZXR1cm4gQ29va2llcy5nZXQoYSl9ZnVuY3Rpb24gc2V0Q29va2llKGEsYixjKXtDb29raWVzLnNldChhLGIsYywiLyIpfWZ1bmN0aW9uIGdldENvb2tpZUQyYyhhKXtyZXR1cm4gQ29va2llcy5nZXQoYSl9ZnVuY3Rpb24gc2V0Q29va2llRDJjKGEsYixjKXtDb29raWVzLnNldChhLGIsYywiLyIpfWZ1bmN0aW9uIGlzU1NMKCl7cmV0dXJuImh0dHBzOiI9PT13aW5kb3cubG9jYXRpb24ucHJvdG9jb2x9ZnVuY3Rpb24gc2V0U2Vzc2lvbkNvb2tpZShhLGIpe0Nvb2tpZXMuc2V0KGEsYiwwLCIvIil9CmZ1bmN0aW9uIGluaXRMQ0koYSxiKXtpZigyMDxiKXJldHVybiBiO2I9Yj9iOjA7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBMQ19BUEl8fCJ1bmRlZmluZWQiPT10eXBlb2YgTENfSW52aXRlKXNldFRpbWVvdXQoZnVuY3Rpb24oKXtpbml0TENJKGEsKytiKX0sNTAwKTtlbHNlIGlmKCJ1bmRlZmluZWQiIT10eXBlb2YgTENfQVBJJiYidW5kZWZpbmVkIiE9dHlwZW9mIExDX0ludml0ZSYmYSlyZXR1cm4gTENfQVBJLnNldF9jdXN0b21fdmFyaWFibGVzKGEpfWZ1bmN0aW9uIGdldFJlZmVycmVyVmFyRnVuY3Rpb24oYSl7cmV0dXJuIGZ1bmN0aW9uKCl7IiI9PWEmJihhPWRvY3VtZW50LnJlZmVycmVyKTt2YXIgYj1hLmluZGV4T2YoIj8iKSsxO3JldHVybiAwPGI\/KGI9YS5zbGljZShiKSxwYXJzZVF1ZXJ5KGIpKTp7fX19CihmdW5jdGlvbihhKXt2YXIgYj17Y2FsbGJhY2tzOltdLGhhc1NjcmlwdDpmdW5jdGlvbigpe3ZhciBlPWEoJ2hlYWQgc2NyaXB0W3NyYyo9Im1hcHMuanMucGhwIl0nKTtyZXR1cm4gMD09ZS5sZW5ndGg\/ITE6L21hcHNcLmpzLy50ZXN0KGUuYXR0cigic3JjIikpfSxsb2FkOmZ1bmN0aW9uKGUpe2lmKGIuaGFzU2NyaXB0KCkpInVuZGVmaW5lZCI9PT10eXBlb2YgZ29vZ2xlP2IuY2FsbGJhY2tzLnB1c2goZSk6ZSgpO2Vsc2V7Yi5jYWxsYmFja3MucHVzaChlKTt0cnl7dmFyIGs9IkVOR0xJU0giPT1hKCIjYWN0aXZlc2l0ZWxhbmd1YWdlIikudmFsKCk\/ImVuIjoiZnIiOyhmdW5jdGlvbihoLG4seCx2LGYpe2hbZl0mJmhbZl0ubWFwc3x8KGg9bi5jcmVhdGVFbGVtZW50KHgpLG49bi5nZXRFbGVtZW50c0J5VGFnTmFtZSh4KVswXSxoLnNyYz12LGguYXN5bmM9ITEsZG9jdW1lbnQuYm9keS5hZGRFdmVudExpc3RlbmVyKCJnb29nbGVNYXBzTG9hZGVkIixnPT57Zm9yKGc9MDtnPGIuY2FsbGJhY2tzLmxlbmd0aDtnKyspYi5jYWxsYmFja3NbZ10uY2FsbCgpfSksCm4ucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoaCxuKSl9KSh3aW5kb3csZG9jdW1lbnQsInNjcmlwdCIsIi9qcy9tYXBzLmpzLnBocD9sYW5nPSIraywiZ29vZ2xlIil9Y2F0Y2goaCl7Y29uc29sZS5sb2coaCl9fX19LGM9e2F1dG9Db21wbGV0ZTp7Y29tcG9uZW50UmVzdHJpY3Rpb25zOntjb3VudHJ5OiJjYSJ9fSxyYWRpdXM6MUU1fSxkPWZ1bmN0aW9uKGUsayl7dmFyIGg9dGhpcztoLmVsPWU7aC4kZWw9YShlKTtoLnNldHRpbmdzPWEuZXh0ZW5kKGMsayk7aC5hZGRyZXNzPXtjaXR5OiIiLHN0cmVldF9udW1iZXI6IiIsc3RyZWV0OiIiLHN1YmxvY2FsaXR5OiIiLHByb3ZpbmNlOiIiLGNvdW50cnk6IiIscG9zdGFsOiIifTtoLiRlbC5vbmUoImZvY3VzIixmdW5jdGlvbigpe2guaW5pdCgpfSl9O2QucHJvdG90eXBlPXtfY2hlY2tGb3JHb29nbGVNYXBzOmZ1bmN0aW9uKGUpeyJ1bmRlZmluZWQiPT09dHlwZW9mIGdvb2dsZXx8InVuZGVmaW5lZCI9PT10eXBlb2YgZ29vZ2xlLm1hcHM\/CmIubG9hZChlKToiZnVuY3Rpb24iPT09dHlwZW9mIGUmJmUuY2FsbCgpfSxnZXRBZGRyZXNzOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuYWRkcmVzc30sX3NldEFkZHJlc3M6ZnVuY3Rpb24oZSl7dmFyIGs9dGhpczthLmVhY2goZSxmdW5jdGlvbihoLG4pe3N3aXRjaCghMCl7Y2FzZSAtMTxhLmluQXJyYXkoInN0cmVldF9udW1iZXIiLG4udHlwZXMpOmsuYWRkcmVzcy5zdHJlZXRfbnVtYmVyPW47YnJlYWs7Y2FzZSAtMTxhLmluQXJyYXkoInJvdXRlIixuLnR5cGVzKTprLmFkZHJlc3Muc3RyZWV0PW47YnJlYWs7Y2FzZSAtMTxhLmluQXJyYXkoInN1YmxvY2FsaXR5IixuLnR5cGVzKTprLmFkZHJlc3Muc3VibG9jYWxpdHk9bjticmVhaztjYXNlIC0xPGEuaW5BcnJheSgibG9jYWxpdHkiLG4udHlwZXMpOmNhc2UgLTE8YS5pbkFycmF5KCJhZG1pbmlzdHJhdGl2ZV9hcmVhX2xldmVsXzMiLG4udHlwZXMpOiIiPT1rLmFkZHJlc3MuY2l0eSYmKGsuYWRkcmVzcy5jaXR5PW4pO2JyZWFrOwpjYXNlIC0xPGEuaW5BcnJheSgiYWRtaW5pc3RyYXRpdmVfYXJlYV9sZXZlbF8xIixuLnR5cGVzKTprLmFkZHJlc3MucHJvdmluY2U9bjticmVhaztjYXNlIC0xPGEuaW5BcnJheSgiY291bnRyeSIsbi50eXBlcyk6ay5hZGRyZXNzLmNvdW50cnk9bjticmVhaztjYXNlIC0xPGEuaW5BcnJheSgicG9zdGFsX2NvZGUiLG4udHlwZXMpOmsuYWRkcmVzcy5wb3N0YWw9bn19KX0sX3NldFNlYXJjaEJvdW5kczpmdW5jdGlvbihlLGssaCl7az1uZXcgZ29vZ2xlLm1hcHMuTGF0TG5nKGssaCk7az1uZXcgZ29vZ2xlLm1hcHMuQ2lyY2xlKHtjZW50ZXI6ayxyYWRpdXM6dGhpcy5zZXR0aW5ncy5yYWRpdXN9KTtlLnNldEJvdW5kcyhrLmdldEJvdW5kcygpKX0saW5pdDpmdW5jdGlvbigpe3ZhciBlPXRoaXM7ZS5fY2hlY2tGb3JHb29nbGVNYXBzKGZ1bmN0aW9uKCl7dmFyIGs9bmV3IGdvb2dsZS5tYXBzLkdlb2NvZGVyLGg9bmV3IGdvb2dsZS5tYXBzLnBsYWNlcy5BdXRvY29tcGxldGUoZS5lbCwKZS5zZXR0aW5ncy5hdXRvQ29tcGxldGUpO2Uuc2V0dGluZ3MuaGFzT3duUHJvcGVydHkoImxhdCIpJiZlLnNldHRpbmdzLmhhc093blByb3BlcnR5KCJsb25nIik\/IiIhPT1lLnNldHRpbmdzLmxhdCYmIiIhPT1lLnNldHRpbmdzLmxvbmcmJmUuX3NldFNlYXJjaEJvdW5kcyhoLGUuc2V0dGluZ3MubGF0LGUuc2V0dGluZ3MubG9uZyk6ZS5zZXR0aW5ncy5oYXNPd25Qcm9wZXJ0eSgiYWRkcmVzcyIpP2Uuc2V0dGluZ3MuYWRkcmVzcyYmay5nZW9jb2RlKHthZGRyZXNzOmUuc2V0dGluZ3MuYWRkcmVzc30sZnVuY3Rpb24obix4KXtlLl9zZXRTZWFyY2hCb3VuZHMoaCxuWzBdLmdlb21ldHJ5LmxvY2F0aW9uLmxhdCgpLG5bMF0uZ2VvbWV0cnkubG9jYXRpb24ubG5nKCkpfSk6InVuZGVmaW5lZCIhPT10eXBlb2YgZm9vdGVyTWFwQWRkcmVzcyYmMDxmb290ZXJNYXBBZGRyZXNzLmxlbmd0aCYmay5nZW9jb2RlKHthZGRyZXNzOmZvb3Rlck1hcEFkZHJlc3NbMF0uYWRkcmVzc30sZnVuY3Rpb24obiwKeCl7ZS5fc2V0U2VhcmNoQm91bmRzKGgsblswXS5nZW9tZXRyeS5sb2NhdGlvbi5sYXQoKSxuWzBdLmdlb21ldHJ5LmxvY2F0aW9uLmxuZygpKX0pO2dvb2dsZS5tYXBzLmV2ZW50LmFkZExpc3RlbmVyKGgsInBsYWNlX2NoYW5nZWQiLGZ1bmN0aW9uKCl7dmFyIG49aC5nZXRQbGFjZSgpO2UuX3NldEFkZHJlc3Mobi5hZGRyZXNzX2NvbXBvbmVudHMpO2UuJGVsLnZhbChuLmZvcm1hdHRlZF9hZGRyZXNzKTtuPW5ldyBFdmVudCgiaW5wdXQiKTtlLmVsLmRpc3BhdGNoRXZlbnQobik7ZS4kZWwudHJpZ2dlcigiZm9jdXMiKX0pfSl9fTthLmZuLmdvb2dsZVBsYWNlcz1mdW5jdGlvbihlKXt2YXIgaz1hcmd1bWVudHM7aWYodm9pZCAwPT09ZXx8Im9iamVjdCI9PT10eXBlb2YgZSlyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7YS5kYXRhKHRoaXMsInBsdWdpbl9wbGFjZXMiKXx8YS5kYXRhKHRoaXMsInBsdWdpbl9wbGFjZXMiLG5ldyBkKHRoaXMsZSkpfSk7aWYoInN0cmluZyI9PT10eXBlb2YgZSYmCiJfIiE9PWVbMF0mJiJpbml0IiE9PWUpe3ZhciBoPWEuZGF0YSh0aGlzWzBdLCJwbHVnaW5fcGxhY2VzIik7cmV0dXJuIGhbZV0uYXBwbHkoaCxBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChrLDEpKX19fSkoalF1ZXJ5KTsKZnVuY3Rpb24gc2hvd0Jhbm5lclBvcHVwKGEpe3RyeXskKGEpLmhhc0NsYXNzKCJ0cmFkZWluTGluayIpJiYoMDxhLmdldEF0dHJpYnV0ZSgidGFyZ2V0VVJJIikuaW5kZXhPZigidHJhZGVpbnZhbHVlcyIpfHwwPGEuZ2V0QXR0cmlidXRlKCJ0YXJnZXRVUkkiKS5pbmRleE9mKCJpbnN0YW50b2ZmZXIuYWNjdS10cmFkZS5jb20iKSk\/c2hvd1RyYWRlSW5Qb3B1cChhLmdldEF0dHJpYnV0ZSgidGFyZ2V0VVJJIikpOjA8JCgiI2Jhbm5lclBvcHVwQ29udGFpbmVyIikubGVuZ3RoJiYkKCIjYmFubmVyUG9wdXBDb250YWluZXIiKS5wb3B1cGl6ZSgpLnNldFRyaWdnZXIoImNsaWNrIikub3BlbigpfWNhdGNoKGIpe2NvbnNvbGUmJmNvbnNvbGUubG9nJiZjb25zb2xlLmxvZygiVW5hYmxlIHRvIGRpc3BsYXkgdHJhZGVpbnZhbHVlcyBpZnJhbWUuIEVycm9yOiAiK2IubWVzc2FnZSl9fQokKGZ1bmN0aW9uKCl7MDwkKCdpbnB1dFtkYXRhLWdvb2dsZS1wbGFjZXM9InRydWUiXScpLmxlbmd0aCYmJCgnaW5wdXRbZGF0YS1nb29nbGUtcGxhY2VzPSJ0cnVlIl0nKS5nb29nbGVQbGFjZXMoKTsidW5kZWZpbmVkIiE9PXR5cGVvZiAkLmZuLmRhcmtUb29sdGlwJiYoJCgiI3NvY2lhbF9tZWRpYV9pY29uc19kaXYgYSwgLmdSYXRpbmctaWNvbiIpLmRhcmtUb29sdGlwKHtncmF2aXR5OiJub3J0aCIsb3BhY2l0eToxfSksJCgiLnNvY2lhbC1tZWRpYS1pY29ucyBbZGF0YS10b29sdGlwXSIpLmRhcmtUb29sdGlwKHtncmF2aXR5OiJzb3V0aCIsb3BhY2l0eToxfSksJCgiI21pdHN1YmlzaGlDZXJ0aWZpZWRGb290ZXIgYS5zb2NpYWwtbWVkaWFfX2ljb24sICNoeXVuZGFpQ2VydGlmaWVkRm9vdGVyIGEuc29jaWFsLW1lZGlhX19pY29uIikuZGFya1Rvb2x0aXAoe2dyYXZpdHk6InNvdXRoIixvcGFjaXR5OjF9KSk7dmFyIGE9JCgiLmdyYXlib3gudXNlZERldGFpbHNQaG9uZSwgLmdyYXlib3gubmV3RGV0YWlsc1Bob25lIik7CjA9PT1hLmNoaWxkcmVuKCkubGVuZ3RoJiYwPT09YS50ZXh0KCkudHJpbSgpLmxlbmd0aCYmYS5oaWRlKCl9KTskKCIjZmluYW5jZUFsdERpc3BsYXkgLnN0ZXAxIGJpZy50ZXh0IGJpZyIpLmF0dHIoImRhdGEtZGVwYXJ0bWVudCIsIkZpbmFuY2UiKTskKCIuY3JlZGl0X21fY2FsbHVzX3dyYXBwZXIgYSIpLmF0dHIoImRhdGEtZGVwYXJ0bWVudCIsIkZpbmFuY2UiKTsKJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKXskKCIjZGl2Q2VydGlmaWNhdGlvbi1jYXJndXJ1cy13cmFwcGVyIikubGVuZ3RoJiYoZWxlbWVudFRvT2JzZXJ2ZT13aW5kb3cuZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRpdkNlcnRpZmljYXRpb24tY2FyZ3VydXMtd3JhcHBlciIpLmNoaWxkcmVuWzBdLG9ic2VydmVyPW5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKGEsYil7Yj0kKCIjZGl2Q2VydGlmaWNhdGlvbi1jYXJndXJ1cy13cmFwcGVyIik7bGV0IGM9JCgic3BhbltkYXRhLWNnLWVycm9yXSIsYik7Y29uc29sZS5sb2coIkQyQ0ciLGIsYyxhKTtjLmxlbmd0aCYmYi5yZW1vdmUoKX0pLG9ic2VydmVyLm9ic2VydmUoZWxlbWVudFRvT2JzZXJ2ZSx7Y2hhcmFjdGVyRGF0YTohMSxjaGlsZExpc3Q6ITAsYXR0cmlidXRlczohMX0pKX0pOyQoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKCl7LTE8d2luZG93LmxvY2F0aW9uLmhyZWYuaW5kZXhPZigiL25ldy8iKXx8JCgiI25ldy12ZHAtc3BlYy1icm9jaHVyZSIpLmhpZGUoKX0pOwokKGZ1bmN0aW9uKCl7JCgiI0Zvb3Rlcl9GSU5BTkNFID4gYSwgYSNGaW5hbmNlQWN0aW9uQm94LCBhI0ZpbmFuY2VBY3Rpb25Cb3hMaW5rIikub24oIm1vdXNlZW50ZXIgbW91c2VsZWF2ZSIsZnVuY3Rpb24oKXt2YXIgYT0kKHRoaXMpLGI9JCgiaHRtbCIpLmF0dHIoImxhbmciKTtpZigwPCQoIiNERUFMRVJQQUNPREUiKS5sZW5ndGgpe3ZhciBjPSQoIiNERUFMRVJQQUNPREUiKS52YWwoKSxkPSQoIiNERUFMRVJCUkFORF9QUklNQVJZIikudmFsKCkudG9Mb3dlckNhc2UoKTtpZigiZm9yZF9saW5jb2xuX2V4dGVybmFsIj09JCgiI0ZJTkFOQ0VGT1JNVFlQRSIpLnZhbCgpJiYoImZvcmQiPT1kfHwibGluY29sbiI9PWQpJiYiIiE9Yyl7dmFyIGU9KCJlbiI9PWI\/Imh0dHBzOi8vd3d3LmZvcmQuY2EvZmluYW5jZS9hcHBseS8xP1NvdXJjZU9mRGF0YT1DQURDRiZkZWFsZXJJZD0iOiJodHRwczovL2ZyLmZvcmQuY2EvZmluYW5jZS9hcHBseS8xP1NvdXJjZU9mRGF0YT1DQURDRiZkZWFsZXJJZD0iKSsKYztiPSgiZW4iPT1iPyJodHRwczovL3d3dy5saW5jb2xuY2FuYWRhLmNvbS9maW5hbmNlL2FwcGx5LzE\/U291cmNlT2ZEYXRhPUNBRENMJmRlYWxlcklkPSI6Imh0dHBzOi8vZnIubGluY29sbmNhbmFkYS5jb20vZmluYW5jZS9hcHBseS8xP1NvdXJjZU9mRGF0YT1DQURDTCZkZWFsZXJJZD0iKStjO2Eub2ZmKCJjbGljayIpO2EuYXR0cigiaHJlZiIsImZvcmQiPT1kP2U6Yik7YS5hdHRyKCJ0YXJnZXQiLCJfYmxhbmsiKX19fSl9KTsKJCh3aW5kb3cpLm9uKCJsb2FkIixmdW5jdGlvbigpe3RyeXtpZihnZXRQYXJhbWV0ZXJCeU5hbWUoInByb21vIikpe3ZhciBhPTA8YWN0aXZhdGVkUG9wdXBEaXZJRC5sZW5ndGg\/YWN0aXZhdGVkUG9wdXBEaXZJRDohMTtpZihhJiYwPGEubGVuZ3RoKXt2YXIgYj0kKCIjIithKS5wb3B1cGl6ZSh7cHJpb3JpdHk6MTAwLGVuZFBvcHVwUXVldWU6ITB9KTtwb3B1cFN1cGVydmlzb3IucmVnaXN0ZXIoYil9fSJvYmplY3QiPT10eXBlb2YgcG9wdXBTdXBlcnZpc29yJiZzZXRUaW1lb3V0KHBvcHVwU3VwZXJ2aXNvci5zaG93LDUwMCl9Y2F0Y2goYyl7Y29uc29sZS5sb2coYyl9fSk7CiQoZnVuY3Rpb24oKXskKCIubmF2IGEiKS5vbigiY2xpY2siLGZ1bmN0aW9uKGEpeyJ1bmRlZmluZWQiIT10eXBlb2YgYWN0aXZlVXNlclByb2ZpbGVNbmcmJiJ1bmRlZmluZWQiIT10eXBlb2YgYWN0aXZlVXNlclByb2ZpbGVNbmcubG9nUGFnZVZpZXdFdmVudCYmKChhPSQodGhpcykuYXR0cigiaHJlZiIpKSYmIVJlZ0V4cCgiamF2YXNjcmlwdDoiLCJnaSIpLnRlc3QoYSkmJmFjdGl2ZVVzZXJQcm9maWxlTW5nLmxvZ1BhZ2VWaWV3RXZlbnQoYSwiTUVOVV9jbGlja2VkX1VSTCIpLChhPSIvIj09YT8iSG9tZSI6JCh0aGlzKS50ZXh0KCkpJiZhY3RpdmVVc2VyUHJvZmlsZU1uZy5sb2dQYWdlVmlld0V2ZW50KGEsIk1FTlVfY2xpY2tlZF9JTkZPIikpfSl9KTsKdmFyIEQyQ1V0aWxzPXtMYW5nOntpc0VOOmZ1bmN0aW9uKCl7cmV0dXJuISgiZnVuY3Rpb24iPT09dHlwZW9mICQmJiQoIkJPRFkiKS5oYXNDbGFzcygiRlJFTkNIIikpfSxnZXRTaG9ydExhbmc6ZnVuY3Rpb24oYSl7cmV0dXJuIEQyQ1V0aWxzLkxhbmcuaXNFTigpP2E\/IkVOIjoiZW4iOmE\/IkZSIjoiZnIifX0sRm9ybWF0Ont0b051bWJlcjpmdW5jdGlvbihhKXthPWEudG9TdHJpbmcoKS5zcGxpdCgiLiIpO2Zvcih2YXIgYj0vKFxkKykoXGR7M30pLztiLnRlc3QoYVswXSk7KWFbMF09YVswXS5yZXBsYWNlKGIsIiQxLCQyIik7cmV0dXJuIGFbMF19LHRvUHJpY2U6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYj8oYj1EMkNVdGlscy5MYW5nLmlzRU4oKT8iIjoiICQiLGAke0QyQ1V0aWxzLkxhbmcuaXNFTigpPyIkIjoiIn0ke0QyQ1V0aWxzLkZvcm1hdC50b051bWJlcihhKX0ke2J9YCk6YDxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPiR7RDJDVXRpbHMuRm9ybWF0LnRvTnVtYmVyKGEpfTwvc3Bhbj5gfX0sCk51bWJlcjp7cm91bmREb3duOmZ1bmN0aW9uKGEpe3ZhciBiPTI9PT1hcmd1bWVudHMubGVuZ3RoP3BhcnNlSW50KGFyZ3VtZW50c1sxXSk6MTtyZXR1cm4gTWF0aC5mbG9vcihhL2IpKmJ9LHJvdW5kVXA6ZnVuY3Rpb24oYSl7dmFyIGI9Mj09PWFyZ3VtZW50cy5sZW5ndGg\/cGFyc2VJbnQoYXJndW1lbnRzWzFdKToxO3JldHVybiBNYXRoLmNlaWwoYS9iKSpifX0sQXJyYXlzOntmaW5kOmZ1bmN0aW9uKGEsYixjKXt2YXIgZD1hLmxlbmd0aDtpZigwPGQpZm9yKHZhciBlPTA7ZTxkO2UrKylpZihhW2VdW2JdPT1jKXJldHVybiBhW2VdO3JldHVybi0xfX0sU3RyaW5nOntjYXBpdGFsaXplRmlyc3RMZXR0ZXI6ZnVuY3Rpb24oYSl7cmV0dXJuIFN0cmluZyhhKS5jaGFyQXQoMCkudG9VcHBlckNhc2UoKStTdHJpbmcoYSkuc2xpY2UoMSl9fSxNb2JpbGU6e2lzTW9iaWxlOmZ1bmN0aW9uKCl7cmV0dXJuIDA8JCgiI2lzTW9iaWxlIikubGVuZ3RofX19OwpmdW5jdGlvbiBzZXR1cEZpbmFuY2luZ0xpbmsoYSxiKXs0ODU9PSgkKCIjc2l0ZUlEIikudmFsKCl8fCQoIiN0b3BzaXRlaWQiKS52YWwoKSkmJmIuY2xlYXJhbmNlJiYwPGEubGVuZ3RoJiYoYj0kKCIjTWFpbk1lbnVfZjQ4MmJhYWItYWFjNC1lZGE2LTZiNTItMyA+IGEiKSwwPT1iLmxlbmd0aCYmKGI9JCgiLkNMRUFSQU5DRSIpLnBhcmVudCgpLmZpbmQoIi5zdWJtZW51SXRlbTpmaXJzdC1jaGlsZCIpKSwwPGIubGVuZ3RoJiYoYj1iLmF0dHIoImhyZWYiKSwiIiE9PWImJmEuYXR0cigiaHJlZiIsYikpKX12YXIgb3BlbldpbmRvd3M9W10sd2luZG93T3Blbk9HPXdpbmRvdy5vcGVuOwp3aW5kb3cub3Blbj1mdW5jdGlvbigpe3ZhciBhPXdpbmRvd09wZW5PRy5hcHBseSh0aGlzLGFyZ3VtZW50cyksYj17d2luZG93OmEsYXJnczphcmd1bWVudHN9O29wZW5XaW5kb3dzLnB1c2goYik7InVuZGVmaW5lZCIhPT10eXBlb2YgalF1ZXJ5JiZqUXVlcnkoZG9jdW1lbnQpLnRyaWdnZXIoIndpbmRvdy5vcGVuIixiKTtyZXR1cm4gYX07CiQoZnVuY3Rpb24oKXskKGRvY3VtZW50KS5vbigid2luZG93Lm9wZW4iLGZ1bmN0aW9uKGEsYil7YT1iLmFyZ3M7Zm9yKHZhciBjPSExLGQ9MDtkPGEubGVuZ3RoO2QrKylpZigtMTxhW2RdLmluZGV4T2YoImNhcmZheCIpfHxhW2RdLmluZGV4T2YoImNhcnByb29mIikpe2M9ITA7YnJlYWt9aWYoYyl7YT13aW5kb3cuc2NyZWVuLmF2YWlsSGVpZ2h0fHx3aW5kb3cuaW5uZXJIZWlnaHR8fGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHR8fGRvY3VtZW50LmJvZHkuY2xpZW50SGVpZ2h0O3RyeXtiLndpbmRvdy5yZXNpemVUbyhiLndpbmRvdy5vdXRlcldpZHRoLE1hdGgucm91bmQoLjk1KmEpKX1jYXRjaChlKXt9fX0pfSk7CiQoZnVuY3Rpb24oKXt2YXIgYT0kKCIudXBfbWVudSIpLGI9JCgiLnByb21vdGlvblNpZGVWQnV0dG9uIiksYz0kKCcjc2xpZGVpdCA+IGxhYmVsW2Zvcj0ib3Blbi1pdGVtIl06bm90KC50ZXh0LXVzLWJ0biknKTtpZihhLmxlbmd0aCYmYi5sZW5ndGgpe3ZhciBkPSExLGU9ZnVuY3Rpb24oKXt2YXIgaz0kKHdpbmRvdykuc2Nyb2xsVG9wKCksaD0kKHdpbmRvdykuaGVpZ2h0KCk7az1hLm9mZnNldCgpLnRvcCthLm91dGVySGVpZ2h0KCkrMTAwLWs7Yi5jc3Moe3Bvc2l0aW9uOiJmaXhlZCIsdG9wOk1hdGgubWF4KGgvMixrKSsicHgiLHRyYW5zZm9ybToidHJhbnNsYXRlWSgtNTAlKSIsdHJhbnNpdGlvbjoibm9uZSJ9KTtjLmxlbmd0aCYmKGg9YlswXS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5ib3R0b20sYy5jc3Moe3Bvc2l0aW9uOiJmaXhlZCIsdG9wOmgrNSsicHgifSkpO2Q9ITF9OyQod2luZG93KS5vbigic2Nyb2xsIHJlc2l6ZSIsZnVuY3Rpb24oKXtkfHwod2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZShlKSwKZD0hMCl9KTtzZXRUaW1lb3V0KGUsMTAwKX19KTtmdW5jdGlvbiByZXBsYWNlVXNlZFZlaGljbGVNb2RlbERpc3BsYXkoYSl7aWYoInN0cmluZyI9PT10eXBlb2YgYXx8YSBpbnN0YW5jZW9mIFN0cmluZykiZnVuY3Rpb24iPT09dHlwZW9mICQmJiQoIkJPRFkiKS5oYXNDbGFzcygiRlJFTkNIIil8fC0xIT09YS5pbmRleE9mKCJIeWJyaWRlIikmJihhPWEucmVwbGFjZSgiSHlicmlkZSIsIkh5YnJpZCIpKTtyZXR1cm4gYX0KJChmdW5jdGlvbigpe2lmKCQoIi5wYXlwYWxfYnV0dG9uX2h0bWwiKS5sZW5ndGgpe3ZhciBhPSQoIkJPRFkiKS5oYXNDbGFzcygiRlJFTkNIIik\/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\/Yyh3aW5kb3cubG9jYWxTdG9yYWdlLCEwKToic2Vzc2lvbiI9PT1iP2Mod2luZG93LnNlc3Npb25TdG9yYWdlLCExKTpjKHdpbmRvdy5sb2NhbFN0b3JhZ2UsITApfHxjKHdpbmRvdy5zZXNzaW9uU3RvcmFnZSwhMSl9LHJlbW92ZTpmdW5jdGlvbihhLGIpe2I9dm9pZCAwPT09Yj9udWxsOmI7ImxvY2FsIiE9PWImJm51bGwhPT1ifHx3aW5kb3cubG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oYSk7InNlc3Npb24iIT09YiYmbnVsbCE9PWJ8fHdpbmRvdy5zZXNzaW9uU3RvcmFnZS5yZW1vdmVJdGVtKGEpfX07CmNyZWF0ZURhdGFTdG9yZT1hPT57YT1hfHx7fTtpbml0PWM9Pk9iamVjdC5hc3NpZ24oe30sYyk7Y29uc3QgYj1pbml0KGEpO3JldHVybntzZXQ6ZnVuY3Rpb24oYyxkKXtiW2NdPU9iamVjdC5hc3NpZ24oe30sYltjXSxkKTtyZXR1cm4gYltjXX0sZ2V0OmZ1bmN0aW9uKGMsZCl7ZD12b2lkIDA9PT1kP251bGw6ZDtjPWMuc3BsaXQoIi4iKTtsZXQgZT1iO2Zvcihjb25zdCBmIG9mIGMpe2lmKHZvaWQgMD09PWVbZl0pcmV0dXJuIGQ7ZT1lW2ZdfXJldHVybiB2b2lkIDAhPT1lP2U6ZH0sZmV0Y2g6ZnVuY3Rpb24oYyl7cmV0dXJuICRqc2NvbXAuYXN5bmNFeGVjdXRlUHJvbWlzZUdlbmVyYXRvckZ1bmN0aW9uKGZ1bmN0aW9uKigpe3RyeXtjb25zdCBkPXlpZWxkIGZldGNoKGBodHRwczovLyR7Yi5kZWFsZXJJbmZvLmRvbWFpbn0vYWpheENvbnRyb2xsZXIvJHtjfWApO2lmKCFkLm9rKXRocm93IEVycm9yKCJOZXR3b3JrIHJlc3BvbnNlIHdhcyBub3Qgb2siKTtjb25zdCBlPXlpZWxkIGQuanNvbigpOwpiW2NdPWU7cmV0dXJuIGJbY119Y2F0Y2goZCl7dGhyb3cgRXJyb3IoYEZhaWxlZCB0byBmZXRjaCBmcm9tIHNlcnZlcjogJHtkLm1lc3NhZ2V9YCk7fX0pfSxkZWxldGU6ZnVuY3Rpb24oYyl7aWYoIWJbY10pdGhyb3cgRXJyb3IoIklEIG5vdCBmb3VuZCIpO2RlbGV0ZSBiW2NdO3JldHVybiEwfSxnZXRBbGw6ZnVuY3Rpb24oKXtyZXR1cm4gT2JqZWN0LmFzc2lnbih7fSxiKX19fTsKLyoqIC9qcy9lbWFpbEhhbmRsZXIuanMgKiovCnZhciBfX19kMmNfZW1haWxIYW5kbGVyanNfY19vbj0iMjAyNi0wMi0yMCAxMTozMDoyNiI7J3VzZSBzdHJpY3QnO3ZhciAkanNjb21wPSRqc2NvbXB8fHt9OyRqc2NvbXAuc2NvcGU9e307JGpzY29tcC5BU1NVTUVfRVM1PSExOyRqc2NvbXAuQVNTVU1FX05PX05BVElWRV9NQVA9ITE7JGpzY29tcC5BU1NVTUVfTk9fTkFUSVZFX1NFVD0hMTskanNjb21wLlNJTVBMRV9GUk9VTkRfUE9MWUZJTEw9ITE7JGpzY29tcC5JU09MQVRFX1BPTFlGSUxMUz0hMTskanNjb21wLkZPUkNFX1BPTFlGSUxMX1BST01JU0U9ITE7JGpzY29tcC5GT1JDRV9QT0xZRklMTF9QUk9NSVNFX1dIRU5fTk9fVU5IQU5ETEVEX1JFSkVDVElPTj0hMTskanNjb21wLmRlZmluZVByb3BlcnR5PSRqc2NvbXAuQVNTVU1FX0VTNXx8ImZ1bmN0aW9uIj09dHlwZW9mIE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzP09iamVjdC5kZWZpbmVQcm9wZXJ0eTpmdW5jdGlvbihlLGcsYSl7aWYoZT09QXJyYXkucHJvdG90eXBlfHxlPT1PYmplY3QucHJvdG90eXBlKXJldHVybiBlO2VbZ109YS52YWx1ZTtyZXR1cm4gZX07CiRqc2NvbXAuZ2V0R2xvYmFsPWZ1bmN0aW9uKGUpe2U9WyJvYmplY3QiPT10eXBlb2YgZ2xvYmFsVGhpcyYmZ2xvYmFsVGhpcyxlLCJvYmplY3QiPT10eXBlb2Ygd2luZG93JiZ3aW5kb3csIm9iamVjdCI9PXR5cGVvZiBzZWxmJiZzZWxmLCJvYmplY3QiPT10eXBlb2YgZ2xvYmFsJiZnbG9iYWxdO2Zvcih2YXIgZz0wO2c8ZS5sZW5ndGg7KytnKXt2YXIgYT1lW2ddO2lmKGEmJmEuTWF0aD09TWF0aClyZXR1cm4gYX10aHJvdyBFcnJvcigiQ2Fubm90IGZpbmQgZ2xvYmFsIG9iamVjdCIpO307JGpzY29tcC5nbG9iYWw9JGpzY29tcC5nZXRHbG9iYWwodGhpcyk7JGpzY29tcC5JU19TWU1CT0xfTkFUSVZFPSJmdW5jdGlvbiI9PT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09PXR5cGVvZiBTeW1ib2woIngiKTskanNjb21wLlRSVVNUX0VTNl9QT0xZRklMTFM9ISRqc2NvbXAuSVNPTEFURV9QT0xZRklMTFN8fCRqc2NvbXAuSVNfU1lNQk9MX05BVElWRTskanNjb21wLnBvbHlmaWxscz17fTsKJGpzY29tcC5wcm9wZXJ0eVRvUG9seWZpbGxTeW1ib2w9e307JGpzY29tcC5QT0xZRklMTF9QUkVGSVg9IiRqc2NwJCI7dmFyICRqc2NvbXAkbG9va3VwUG9seWZpbGxlZFZhbHVlPWZ1bmN0aW9uKGUsZyl7dmFyIGE9JGpzY29tcC5wcm9wZXJ0eVRvUG9seWZpbGxTeW1ib2xbZ107aWYobnVsbD09YSlyZXR1cm4gZVtnXTthPWVbYV07cmV0dXJuIHZvaWQgMCE9PWE\/YTplW2ddfTskanNjb21wLnBvbHlmaWxsPWZ1bmN0aW9uKGUsZyxhLGIpe2cmJigkanNjb21wLklTT0xBVEVfUE9MWUZJTExTPyRqc2NvbXAucG9seWZpbGxJc29sYXRlZChlLGcsYSxiKTokanNjb21wLnBvbHlmaWxsVW5pc29sYXRlZChlLGcsYSxiKSl9OwokanNjb21wLnBvbHlmaWxsVW5pc29sYXRlZD1mdW5jdGlvbihlLGcsYSxiKXthPSRqc2NvbXAuZ2xvYmFsO2U9ZS5zcGxpdCgiLiIpO2ZvcihiPTA7YjxlLmxlbmd0aC0xO2IrKyl7dmFyIGQ9ZVtiXTtpZighKGQgaW4gYSkpcmV0dXJuO2E9YVtkXX1lPWVbZS5sZW5ndGgtMV07Yj1hW2VdO2c9ZyhiKTtnIT1iJiZudWxsIT1nJiYkanNjb21wLmRlZmluZVByb3BlcnR5KGEsZSx7Y29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmd9KX07CiRqc2NvbXAucG9seWZpbGxJc29sYXRlZD1mdW5jdGlvbihlLGcsYSxiKXt2YXIgZD1lLnNwbGl0KCIuIik7ZT0xPT09ZC5sZW5ndGg7Yj1kWzBdO2I9IWUmJmIgaW4gJGpzY29tcC5wb2x5ZmlsbHM\/JGpzY29tcC5wb2x5ZmlsbHM6JGpzY29tcC5nbG9iYWw7Zm9yKHZhciBjPTA7YzxkLmxlbmd0aC0xO2MrKyl7dmFyIGY9ZFtjXTtpZighKGYgaW4gYikpcmV0dXJuO2I9YltmXX1kPWRbZC5sZW5ndGgtMV07YT0kanNjb21wLklTX1NZTUJPTF9OQVRJVkUmJiJlczYiPT09YT9iW2RdOm51bGw7Zz1nKGEpO251bGwhPWcmJihlPyRqc2NvbXAuZGVmaW5lUHJvcGVydHkoJGpzY29tcC5wb2x5ZmlsbHMsZCx7Y29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmd9KTpnIT09YSYmKHZvaWQgMD09PSRqc2NvbXAucHJvcGVydHlUb1BvbHlmaWxsU3ltYm9sW2RdJiYoYT0xRTkqTWF0aC5yYW5kb20oKT4+PjAsJGpzY29tcC5wcm9wZXJ0eVRvUG9seWZpbGxTeW1ib2xbZF09JGpzY29tcC5JU19TWU1CT0xfTkFUSVZFPwokanNjb21wLmdsb2JhbC5TeW1ib2woZCk6JGpzY29tcC5QT0xZRklMTF9QUkVGSVgrYSsiJCIrZCksJGpzY29tcC5kZWZpbmVQcm9wZXJ0eShiLCRqc2NvbXAucHJvcGVydHlUb1BvbHlmaWxsU3ltYm9sW2RdLHtjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Z30pKSl9OyRqc2NvbXAudW5kZXJzY29yZVByb3RvQ2FuQmVTZXQ9ZnVuY3Rpb24oKXt2YXIgZT17YTohMH0sZz17fTt0cnl7cmV0dXJuIGcuX19wcm90b19fPWUsZy5hfWNhdGNoKGEpe31yZXR1cm4hMX07CiRqc2NvbXAuc2V0UHJvdG90eXBlT2Y9JGpzY29tcC5UUlVTVF9FUzZfUE9MWUZJTExTJiYiZnVuY3Rpb24iPT10eXBlb2YgT2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZjokanNjb21wLnVuZGVyc2NvcmVQcm90b0NhbkJlU2V0KCk\/ZnVuY3Rpb24oZSxnKXtlLl9fcHJvdG9fXz1nO2lmKGUuX19wcm90b19fIT09Zyl0aHJvdyBuZXcgVHlwZUVycm9yKGUrIiBpcyBub3QgZXh0ZW5zaWJsZSIpO3JldHVybiBlfTpudWxsOyRqc2NvbXAuYXJyYXlJdGVyYXRvckltcGw9ZnVuY3Rpb24oZSl7dmFyIGc9MDtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gZzxlLmxlbmd0aD97ZG9uZTohMSx2YWx1ZTplW2crK119Ontkb25lOiEwfX19OyRqc2NvbXAuYXJyYXlJdGVyYXRvcj1mdW5jdGlvbihlKXtyZXR1cm57bmV4dDokanNjb21wLmFycmF5SXRlcmF0b3JJbXBsKGUpfX07CiRqc2NvbXAubWFrZUl0ZXJhdG9yPWZ1bmN0aW9uKGUpe3ZhciBnPSJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZTeW1ib2wuaXRlcmF0b3ImJmVbU3ltYm9sLml0ZXJhdG9yXTtyZXR1cm4gZz9nLmNhbGwoZSk6JGpzY29tcC5hcnJheUl0ZXJhdG9yKGUpfTskanNjb21wLmdlbmVyYXRvcj17fTskanNjb21wLmdlbmVyYXRvci5lbnN1cmVJdGVyYXRvclJlc3VsdElzT2JqZWN0Xz1mdW5jdGlvbihlKXtpZighKGUgaW5zdGFuY2VvZiBPYmplY3QpKXRocm93IG5ldyBUeXBlRXJyb3IoIkl0ZXJhdG9yIHJlc3VsdCAiK2UrIiBpcyBub3QgYW4gb2JqZWN0Iik7fTsKJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dD1mdW5jdGlvbigpe3RoaXMuaXNSdW5uaW5nXz0hMTt0aGlzLnlpZWxkQWxsSXRlcmF0b3JfPW51bGw7dGhpcy55aWVsZFJlc3VsdD12b2lkIDA7dGhpcy5uZXh0QWRkcmVzcz0xO3RoaXMuZmluYWxseUFkZHJlc3NfPXRoaXMuY2F0Y2hBZGRyZXNzXz0wO3RoaXMuZmluYWxseUNvbnRleHRzXz10aGlzLmFicnVwdENvbXBsZXRpb25fPW51bGx9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLnN0YXJ0Xz1mdW5jdGlvbigpe2lmKHRoaXMuaXNSdW5uaW5nXyl0aHJvdyBuZXcgVHlwZUVycm9yKCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBydW5uaW5nIik7dGhpcy5pc1J1bm5pbmdfPSEwfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5zdG9wXz1mdW5jdGlvbigpe3RoaXMuaXNSdW5uaW5nXz0hMX07CiRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmp1bXBUb0Vycm9ySGFuZGxlcl89ZnVuY3Rpb24oKXt0aGlzLm5leHRBZGRyZXNzPXRoaXMuY2F0Y2hBZGRyZXNzX3x8dGhpcy5maW5hbGx5QWRkcmVzc199OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLm5leHRfPWZ1bmN0aW9uKGUpe3RoaXMueWllbGRSZXN1bHQ9ZX07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUudGhyb3dfPWZ1bmN0aW9uKGUpe3RoaXMuYWJydXB0Q29tcGxldGlvbl89e2V4Y2VwdGlvbjplLGlzRXhjZXB0aW9uOiEwfTt0aGlzLmp1bXBUb0Vycm9ySGFuZGxlcl8oKX07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUucmV0dXJuPWZ1bmN0aW9uKGUpe3RoaXMuYWJydXB0Q29tcGxldGlvbl89e3JldHVybjplfTt0aGlzLm5leHRBZGRyZXNzPXRoaXMuZmluYWxseUFkZHJlc3NffTsKJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuanVtcFRocm91Z2hGaW5hbGx5QmxvY2tzPWZ1bmN0aW9uKGUpe3RoaXMuYWJydXB0Q29tcGxldGlvbl89e2p1bXBUbzplfTt0aGlzLm5leHRBZGRyZXNzPXRoaXMuZmluYWxseUFkZHJlc3NffTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS55aWVsZD1mdW5jdGlvbihlLGcpe3RoaXMubmV4dEFkZHJlc3M9ZztyZXR1cm57dmFsdWU6ZX19OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLnlpZWxkQWxsPWZ1bmN0aW9uKGUsZyl7ZT0kanNjb21wLm1ha2VJdGVyYXRvcihlKTt2YXIgYT1lLm5leHQoKTskanNjb21wLmdlbmVyYXRvci5lbnN1cmVJdGVyYXRvclJlc3VsdElzT2JqZWN0XyhhKTtpZihhLmRvbmUpdGhpcy55aWVsZFJlc3VsdD1hLnZhbHVlLHRoaXMubmV4dEFkZHJlc3M9ZztlbHNlIHJldHVybiB0aGlzLnlpZWxkQWxsSXRlcmF0b3JfPWUsdGhpcy55aWVsZChhLnZhbHVlLGcpfTsKJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuanVtcFRvPWZ1bmN0aW9uKGUpe3RoaXMubmV4dEFkZHJlc3M9ZX07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuanVtcFRvRW5kPWZ1bmN0aW9uKCl7dGhpcy5uZXh0QWRkcmVzcz0wfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5zZXRDYXRjaEZpbmFsbHlCbG9ja3M9ZnVuY3Rpb24oZSxnKXt0aGlzLmNhdGNoQWRkcmVzc189ZTt2b2lkIDAhPWcmJih0aGlzLmZpbmFsbHlBZGRyZXNzXz1nKX07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuc2V0RmluYWxseUJsb2NrPWZ1bmN0aW9uKGUpe3RoaXMuY2F0Y2hBZGRyZXNzXz0wO3RoaXMuZmluYWxseUFkZHJlc3NfPWV8fDB9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmxlYXZlVHJ5QmxvY2s9ZnVuY3Rpb24oZSxnKXt0aGlzLm5leHRBZGRyZXNzPWU7dGhpcy5jYXRjaEFkZHJlc3NfPWd8fDB9OwokanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5lbnRlckNhdGNoQmxvY2s9ZnVuY3Rpb24oZSl7dGhpcy5jYXRjaEFkZHJlc3NfPWV8fDA7ZT10aGlzLmFicnVwdENvbXBsZXRpb25fLmV4Y2VwdGlvbjt0aGlzLmFicnVwdENvbXBsZXRpb25fPW51bGw7cmV0dXJuIGV9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmVudGVyRmluYWxseUJsb2NrPWZ1bmN0aW9uKGUsZyxhKXthP3RoaXMuZmluYWxseUNvbnRleHRzX1thXT10aGlzLmFicnVwdENvbXBsZXRpb25fOnRoaXMuZmluYWxseUNvbnRleHRzXz1bdGhpcy5hYnJ1cHRDb21wbGV0aW9uX107dGhpcy5jYXRjaEFkZHJlc3NfPWV8fDA7dGhpcy5maW5hbGx5QWRkcmVzc189Z3x8MH07CiRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmxlYXZlRmluYWxseUJsb2NrPWZ1bmN0aW9uKGUsZyl7Zz10aGlzLmZpbmFsbHlDb250ZXh0c18uc3BsaWNlKGd8fDApWzBdO2lmKGc9dGhpcy5hYnJ1cHRDb21wbGV0aW9uXz10aGlzLmFicnVwdENvbXBsZXRpb25ffHxnKXtpZihnLmlzRXhjZXB0aW9uKXJldHVybiB0aGlzLmp1bXBUb0Vycm9ySGFuZGxlcl8oKTt2b2lkIDAhPWcuanVtcFRvJiZ0aGlzLmZpbmFsbHlBZGRyZXNzXzxnLmp1bXBUbz8odGhpcy5uZXh0QWRkcmVzcz1nLmp1bXBUbyx0aGlzLmFicnVwdENvbXBsZXRpb25fPW51bGwpOnRoaXMubmV4dEFkZHJlc3M9dGhpcy5maW5hbGx5QWRkcmVzc199ZWxzZSB0aGlzLm5leHRBZGRyZXNzPWV9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmZvckluPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcgJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5Qcm9wZXJ0eUl0ZXJhdG9yKGUpfTsKJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5Qcm9wZXJ0eUl0ZXJhdG9yPWZ1bmN0aW9uKGUpe3RoaXMub2JqZWN0Xz1lO3RoaXMucHJvcGVydGllc189W107Zm9yKHZhciBnIGluIGUpdGhpcy5wcm9wZXJ0aWVzXy5wdXNoKGcpO3RoaXMucHJvcGVydGllc18ucmV2ZXJzZSgpfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LlByb3BlcnR5SXRlcmF0b3IucHJvdG90eXBlLmdldE5leHQ9ZnVuY3Rpb24oKXtmb3IoOzA8dGhpcy5wcm9wZXJ0aWVzXy5sZW5ndGg7KXt2YXIgZT10aGlzLnByb3BlcnRpZXNfLnBvcCgpO2lmKGUgaW4gdGhpcy5vYmplY3RfKXJldHVybiBlfXJldHVybiBudWxsfTskanNjb21wLmdlbmVyYXRvci5FbmdpbmVfPWZ1bmN0aW9uKGUpe3RoaXMuY29udGV4dF89bmV3ICRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQ7dGhpcy5wcm9ncmFtXz1lfTsKJGpzY29tcC5nZW5lcmF0b3IuRW5naW5lXy5wcm90b3R5cGUubmV4dF89ZnVuY3Rpb24oZSl7dGhpcy5jb250ZXh0Xy5zdGFydF8oKTtpZih0aGlzLmNvbnRleHRfLnlpZWxkQWxsSXRlcmF0b3JfKXJldHVybiB0aGlzLnlpZWxkQWxsU3RlcF8odGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yXy5uZXh0LGUsdGhpcy5jb250ZXh0Xy5uZXh0Xyk7dGhpcy5jb250ZXh0Xy5uZXh0XyhlKTtyZXR1cm4gdGhpcy5uZXh0U3RlcF8oKX07CiRqc2NvbXAuZ2VuZXJhdG9yLkVuZ2luZV8ucHJvdG90eXBlLnJldHVybl89ZnVuY3Rpb24oZSl7dGhpcy5jb250ZXh0Xy5zdGFydF8oKTt2YXIgZz10aGlzLmNvbnRleHRfLnlpZWxkQWxsSXRlcmF0b3JfO2lmKGcpcmV0dXJuIHRoaXMueWllbGRBbGxTdGVwXygicmV0dXJuImluIGc\/Z1sicmV0dXJuIl06ZnVuY3Rpb24oYSl7cmV0dXJue3ZhbHVlOmEsZG9uZTohMH19LGUsdGhpcy5jb250ZXh0Xy5yZXR1cm4pO3RoaXMuY29udGV4dF8ucmV0dXJuKGUpO3JldHVybiB0aGlzLm5leHRTdGVwXygpfTsKJGpzY29tcC5nZW5lcmF0b3IuRW5naW5lXy5wcm90b3R5cGUudGhyb3dfPWZ1bmN0aW9uKGUpe3RoaXMuY29udGV4dF8uc3RhcnRfKCk7aWYodGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yXylyZXR1cm4gdGhpcy55aWVsZEFsbFN0ZXBfKHRoaXMuY29udGV4dF8ueWllbGRBbGxJdGVyYXRvcl9bInRocm93Il0sZSx0aGlzLmNvbnRleHRfLm5leHRfKTt0aGlzLmNvbnRleHRfLnRocm93XyhlKTtyZXR1cm4gdGhpcy5uZXh0U3RlcF8oKX07CiRqc2NvbXAuZ2VuZXJhdG9yLkVuZ2luZV8ucHJvdG90eXBlLnlpZWxkQWxsU3RlcF89ZnVuY3Rpb24oZSxnLGEpe3RyeXt2YXIgYj1lLmNhbGwodGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yXyxnKTskanNjb21wLmdlbmVyYXRvci5lbnN1cmVJdGVyYXRvclJlc3VsdElzT2JqZWN0XyhiKTtpZighYi5kb25lKXJldHVybiB0aGlzLmNvbnRleHRfLnN0b3BfKCksYjt2YXIgZD1iLnZhbHVlfWNhdGNoKGMpe3JldHVybiB0aGlzLmNvbnRleHRfLnlpZWxkQWxsSXRlcmF0b3JfPW51bGwsdGhpcy5jb250ZXh0Xy50aHJvd18oYyksdGhpcy5uZXh0U3RlcF8oKX10aGlzLmNvbnRleHRfLnlpZWxkQWxsSXRlcmF0b3JfPW51bGw7YS5jYWxsKHRoaXMuY29udGV4dF8sZCk7cmV0dXJuIHRoaXMubmV4dFN0ZXBfKCl9OwokanNjb21wLmdlbmVyYXRvci5FbmdpbmVfLnByb3RvdHlwZS5uZXh0U3RlcF89ZnVuY3Rpb24oKXtmb3IoO3RoaXMuY29udGV4dF8ubmV4dEFkZHJlc3M7KXRyeXt2YXIgZT10aGlzLnByb2dyYW1fKHRoaXMuY29udGV4dF8pO2lmKGUpcmV0dXJuIHRoaXMuY29udGV4dF8uc3RvcF8oKSx7dmFsdWU6ZS52YWx1ZSxkb25lOiExfX1jYXRjaChnKXt0aGlzLmNvbnRleHRfLnlpZWxkUmVzdWx0PXZvaWQgMCx0aGlzLmNvbnRleHRfLnRocm93XyhnKX10aGlzLmNvbnRleHRfLnN0b3BfKCk7aWYodGhpcy5jb250ZXh0Xy5hYnJ1cHRDb21wbGV0aW9uXyl7ZT10aGlzLmNvbnRleHRfLmFicnVwdENvbXBsZXRpb25fO3RoaXMuY29udGV4dF8uYWJydXB0Q29tcGxldGlvbl89bnVsbDtpZihlLmlzRXhjZXB0aW9uKXRocm93IGUuZXhjZXB0aW9uO3JldHVybnt2YWx1ZTplLnJldHVybixkb25lOiEwfX1yZXR1cm57dmFsdWU6dm9pZCAwLGRvbmU6ITB9fTsKJGpzY29tcC5nZW5lcmF0b3IuR2VuZXJhdG9yXz1mdW5jdGlvbihlKXt0aGlzLm5leHQ9ZnVuY3Rpb24oZyl7cmV0dXJuIGUubmV4dF8oZyl9O3RoaXMudGhyb3c9ZnVuY3Rpb24oZyl7cmV0dXJuIGUudGhyb3dfKGcpfTt0aGlzLnJldHVybj1mdW5jdGlvbihnKXtyZXR1cm4gZS5yZXR1cm5fKGcpfTt0aGlzW1N5bWJvbC5pdGVyYXRvcl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc319OyRqc2NvbXAuZ2VuZXJhdG9yLmNyZWF0ZUdlbmVyYXRvcj1mdW5jdGlvbihlLGcpe2c9bmV3ICRqc2NvbXAuZ2VuZXJhdG9yLkdlbmVyYXRvcl8obmV3ICRqc2NvbXAuZ2VuZXJhdG9yLkVuZ2luZV8oZykpOyRqc2NvbXAuc2V0UHJvdG90eXBlT2YmJmUucHJvdG90eXBlJiYkanNjb21wLnNldFByb3RvdHlwZU9mKGcsZS5wcm90b3R5cGUpO3JldHVybiBnfTsKJGpzY29tcC5hc3luY0V4ZWN1dGVQcm9taXNlR2VuZXJhdG9yPWZ1bmN0aW9uKGUpe2Z1bmN0aW9uIGcoYil7cmV0dXJuIGUubmV4dChiKX1mdW5jdGlvbiBhKGIpe3JldHVybiBlLnRocm93KGIpfXJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihiLGQpe2Z1bmN0aW9uIGMoZil7Zi5kb25lP2IoZi52YWx1ZSk6UHJvbWlzZS5yZXNvbHZlKGYudmFsdWUpLnRoZW4oZyxhKS50aGVuKGMsZCl9YyhlLm5leHQoKSl9KX07JGpzY29tcC5hc3luY0V4ZWN1dGVQcm9taXNlR2VuZXJhdG9yRnVuY3Rpb249ZnVuY3Rpb24oZSl7cmV0dXJuICRqc2NvbXAuYXN5bmNFeGVjdXRlUHJvbWlzZUdlbmVyYXRvcihlKCkpfTskanNjb21wLmFzeW5jRXhlY3V0ZVByb21pc2VHZW5lcmF0b3JQcm9ncmFtPWZ1bmN0aW9uKGUpe3JldHVybiAkanNjb21wLmFzeW5jRXhlY3V0ZVByb21pc2VHZW5lcmF0b3IobmV3ICRqc2NvbXAuZ2VuZXJhdG9yLkdlbmVyYXRvcl8obmV3ICRqc2NvbXAuZ2VuZXJhdG9yLkVuZ2luZV8oZSkpKX07CnZhciBlbWFpbEhhbmRsZXI9ZnVuY3Rpb24oKXt2YXIgZT1mdW5jdGlvbihiKXt0cnl7cmV0dXJuIHdpbmRvdy50b3AubG9jYXRpb25bYl19Y2F0Y2goZCl7cmV0dXJuIHdpbmRvdy5sb2NhdGlvbltiXX19LGc9ZnVuY3Rpb24oKXt0aGlzLmFjdGlvbj1mdW5jdGlvbigpe307dGhpcy5uZXh0PW51bGw7dGhpcy5fbmV4dENhbGxlZD0hMX07Zy5wcm90b3R5cGU9e2V4ZXV0ZTpmdW5jdGlvbigpeyJmdW5jdGlvbiI9PT10eXBlb2YgdGhpcy5hY3Rpb24mJnRoaXMuYWN0aW9uLmNhbGwodGhpcyl9LGdvdG9OZXh0OmZ1bmN0aW9uKCl7dGhpcy5faGFzTmV4dCgpJiZ0aGlzLm5leHQuZXhldXRlKCk7dGhpcy5fbmV4dENhbGxlZD0hMDtyZXR1cm4gdGhpc30sc2V0TmV4dDpmdW5jdGlvbihiKXt0aGlzLm5leHQ9YjtyZXR1cm4gdGhpc30sc2V0QWN0aW9uOmZ1bmN0aW9uKGIpe3RoaXMuYWN0aW9uPWI7cmV0dXJuIHRoaXN9LF9oYXNOZXh0OmZ1bmN0aW9uKCl7cmV0dXJuIG51bGwhPT10aGlzLm5leHQmJgohdGhpcy5fbmV4dENhbGxlZH19O3ZhciBhPXtzdWJqZWN0OiIiLGJvZHk6IiIsc2VuZFRvOiIiLHNlbmRUb0FERkZvcm1hdDoiIixzZWxlY3RlZFNlbmRUbzoiIixzZWxlY3RlZFNlbmRUb0FERkZvcm1hdDoiIixzZW5kRnJvbToiIix1c2VyRW1haWw6IiIsdHJhZGVpbjoiIixwb3B1cGRpdjoiIix1c2VyRmlyc3ROYW1lOiIiLHVzZXJMYXN0TmFtZToiIix1c2VyUGhvbmU6IiIscGhvbmVNYW5kYXRvcnk6MCxwaG9uZVZhbGlkYXRpb25BdHRlbXB0czoxLHVzZXJQb3N0YWw6IiIsdXNlckFkZHJlc3M6IiIsYmlydGhkYXRlOiIiLHVzZXJBdHRhY2htZW50UGF0aDoiIixtYWlsSUQ6ImdlbmVyaWNNYWlsIixsZWFkSW52b2tlcjoiZ2VuZXJpYyIsbGVhZEludm9rZXJTSUQ6IiIsaXNDVEE6ITEsYnV0dG9uVGV4dDoiIixyZXNldENhbGxiYWNrczpmdW5jdGlvbigpeyQuZXh0ZW5kKGEse2NhbGxiYWNrOm51bGwsb25EdXBsaWNhdGVTZW5kOiExLG9uQWZ0ZXJDb25zZW50OiExLG9uQmVmb3JlU2hvd0NvbnNlbnQ6ITF9KX0sCm1ha2U6IiIsbW9kZWw6IiIsdHJpbToiIix2aW46IiIscHJpY2U6MCx5ZWFyOjAsdmVoaWNsZVR5cGU6IiIsc3RvY2tOdW1iZXI6IiIscHVyY2hhc2VfaW50ZW50OiIiLHB1cmNoYXNlX2ludGVudF9zZWN0aW9uOiIiLGFsbG93X3NoYXJlX3BlcnNvbmFsX2RhdGE6IiIscHJlZmVycmVkX2NvbnRhY3Q6IiIsY2FyaWQ6MCxjb25kaXRpb246IlVzZWQiLGxhbmd1YWdlOiIiLGlzbW9iaWxlc2l0ZToiTk8iLGlzQW1wOiJOTyIscmVmZXJlcjoiIixwb3B1cE9mZmVyVHlwZToiIixwYXJ0aWFsOiExLGZyb21GYWNlYm9vazohMSxza2lwU2VuZGluZzohMSxmcm9tT25Mb2FkOiExLHBvc3RTdWJtaXRDYWxsYmFjazoiIixyZXN1bWVBY3Rpdml0eTohMCxzdWJtaXREYXRhOiIiLHN1Ym1pdFR5cGU6Im5vcm1hbCIsbGFzdENoZWNrc3VtOiIiLGNvbnNlbnREZWFsZXI6ITEsY29uc2VudE9FTTohMSxjb25zZW50VHlwZToiSW1wbGljaXQiLGNvbnNlbnRFeHBpcmF0aW9uOiIiLGNvbnNlbnREYXRlOiIiLApjb25zZW50RnJlcXVlbmN5Oi0xLGNvbnNlbnREZXRhaWxzRlI6IiIsY29uc2VudERldGFpbHNFTjoiIixkZXRhaWxzRGVmYXVsdHM6IiIsZnJvbUFBOjAsb3duZXJJRDowLGRlcGFydG1lbnQ6IiIsc2tpcEdldERlcDohMSxkZXBhcnRtZW50QnlTdG9jazohMSxhc2tQdXJjaGFzZUludGVudDohMSxsZWFkVGl0bGVVSVRleHQ6IiIsbGVhZFRpdGxlVGV4dDoiIixnZW9sb2Nfc3RhdHVzOiIiLGdlb2xvY19sYXQ6IiIsZ2VvbG9jX2xvbmc6IiIsZ2VvbG9jX2FjY3VyYWN5Oi0xLGdlb2xvY190cmFja19zdHI6IiIsZ2VvbG9jX2VtYWlsX3N0cjoiIix0cmFuc3BvcnRPcHRpb246IiIsY2FyMl9tYWtlOiIiLGNhcjJfbW9kZWw6IiIsY2FyMl90cmltOiIiLGNhcjJfeWVhcjoiIixjYXIyX2NvbG9yOiIiLGNhcjJfb2RvbWV0ZXI6IiIsY2FyMl92aW46IiIsY2FyMl90cmFuc21pc3NvbjoiIixjYXIyX2RyaXZldHJhaW46IiIsY2FyMl9mdWVsdHlwZToiIixjb21tZW50czoiIixncmVjYXB0Y2hhUmVzcG9uc2VUb2tlbjoiIiwKaWdub3JlQ2FwdGNoYTohMSxjb250YWN0SUQ6MCxjb250YWN0QWRkcmVzczoiIixjb250YWN0Q2l0eToiIixjb250YWN0UHJvdmluY2U6IiIsY29udGFjdFppcDoiIixjb250YWN0TkFTOiIiLGNvbnRhY3RCaXJ0aDoiIixkZWFsZXJOYW1lOiIiLGdldE5ld1NlcXVlbmNlOmZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBnfSxjcmVhdGVDaGVja3N1bTpmdW5jdGlvbigpe2Zvcih2YXIgYj0iIixkPVsibWFrZSIsIm1vZGVsIiwieWVhciIsIm1haWxJRCJdLGM9MDtjPGQubGVuZ3RoO2MrKyl7dmFyIGY9ZFtjXSxrPWFbZl0sbT10eXBlb2YgaztpZigic3RyaW5nIj09bXx8Im51bWJlciI9PW0pYis9ZisiOiIraysiOyJ9ZD0iMDAwMDAwMDAgNzcwNzMwOTYgRUUwRTYxMkMgOTkwOTUxQkEgMDc2REM0MTkgNzA2QUY0OEYgRTk2M0E1MzUgOUU2NDk1QTMgMEVEQjg4MzIgNzlEQ0I4QTQgRTBENUU5MUUgOTdEMkQ5ODggMDlCNjRDMkIgN0VCMTdDQkQgRTdCODJEMDcgOTBCRjFEOTEgMURCNzEwNjQgNkFCMDIwRjIgRjNCOTcxNDggODRCRTQxREUgMUFEQUQ0N0QgNkREREU0RUIgRjRENEI1NTEgODNEMzg1QzcgMTM2Qzk4NTYgNjQ2QkE4QzAgRkQ2MkY5N0EgOEE2NUM5RUMgMTQwMTVDNEYgNjMwNjZDRDkgRkEwRjNENjMgOEQwODBERjUgM0I2RTIwQzggNEM2OTEwNUUgRDU2MDQxRTQgQTI2NzcxNzIgM0MwM0U0RDEgNEIwNEQ0NDcgRDIwRDg1RkQgQTUwQUI1NkIgMzVCNUE4RkEgNDJCMjk4NkMgREJCQkM5RDYgQUNCQ0Y5NDAgMzJEODZDRTMgNDVERjVDNzUgRENENjBEQ0YgQUJEMTNENTkgMjZEOTMwQUMgNTFERTAwM0EgQzhENzUxODAgQkZEMDYxMTYgMjFCNEY0QjUgNTZCM0M0MjMgQ0ZCQTk1OTkgQjhCREE1MEYgMjgwMkI4OUUgNUYwNTg4MDggQzYwQ0Q5QjIgQjEwQkU5MjQgMkY2RjdDODcgNTg2ODRDMTEgQzE2MTFEQUIgQjY2NjJEM0QgNzZEQzQxOTAgMDFEQjcxMDYgOThEMjIwQkMgRUZENTEwMkEgNzFCMTg1ODkgMDZCNkI1MUYgOUZCRkU0QTUgRThCOEQ0MzMgNzgwN0M5QTIgMEYwMEY5MzQgOTYwOUE4OEUgRTEwRTk4MTggN0Y2QTBEQkIgMDg2RDNEMkQgOTE2NDZDOTcgRTY2MzVDMDEgNkI2QjUxRjQgMUM2QzYxNjIgODU2NTMwRDggRjI2MjAwNEUgNkMwNjk1RUQgMUIwMUE1N0IgODIwOEY0QzEgRjUwRkM0NTcgNjVCMEQ5QzYgMTJCN0U5NTAgOEJCRUI4RUEgRkNCOTg4N0MgNjJERDFEREYgMTVEQTJENDkgOENEMzdDRjMgRkJENDRDNjUgNERCMjYxNTggM0FCNTUxQ0UgQTNCQzAwNzQgRDRCQjMwRTIgNEFERkE1NDEgM0REODk1RDcgQTREMUM0NkQgRDNENkY0RkIgNDM2OUU5NkEgMzQ2RUQ5RkMgQUQ2Nzg4NDYgREE2MEI4RDAgNDQwNDJENzMgMzMwMzFERTUgQUEwQTRDNUYgREQwRDdDQzkgNTAwNTcxM0MgMjcwMjQxQUEgQkUwQjEwMTAgQzkwQzIwODYgNTc2OEI1MjUgMjA2Rjg1QjMgQjk2NkQ0MDkgQ0U2MUU0OUYgNUVERUY5MEUgMjlEOUM5OTggQjBEMDk4MjIgQzdEN0E4QjQgNTlCMzNEMTcgMkVCNDBEODEgQjdCRDVDM0IgQzBCQTZDQUQgRURCODgzMjAgOUFCRkIzQjYgMDNCNkUyMEMgNzRCMUQyOUEgRUFENTQ3MzkgOUREMjc3QUYgMDREQjI2MTUgNzNEQzE2ODMgRTM2MzBCMTIgOTQ2NDNCODQgMEQ2RDZBM0UgN0E2QTVBQTggRTQwRUNGMEIgOTMwOUZGOUQgMEEwMEFFMjcgN0QwNzlFQjEgRjAwRjkzNDQgODcwOEEzRDIgMUUwMUYyNjggNjkwNkMyRkUgRjc2MjU3NUQgODA2NTY3Q0IgMTk2QzM2NzEgNkU2QjA2RTcgRkVENDFCNzYgODlEMzJCRTAgMTBEQTdBNUEgNjdERDRBQ0MgRjlCOURGNkYgOEVCRUVGRjkgMTdCN0JFNDMgNjBCMDhFRDUgRDZENkEzRTggQTFEMTkzN0UgMzhEOEMyQzQgNEZERkYyNTIgRDFCQjY3RjEgQTZCQzU3NjcgM0ZCNTA2REQgNDhCMjM2NEIgRDgwRDJCREEgQUYwQTFCNEMgMzYwMzRBRjYgNDEwNDdBNjAgREY2MEVGQzMgQTg2N0RGNTUgMzE2RThFRUYgNDY2OUJFNzkgQ0I2MUIzOEMgQkM2NjgzMUEgMjU2RkQyQTAgNTI2OEUyMzYgQ0MwQzc3OTUgQkIwQjQ3MDMgMjIwMjE2QjkgNTUwNTI2MkYgQzVCQTNCQkUgQjJCRDBCMjggMkJCNDVBOTIgNUNCMzZBMDQgQzJEN0ZGQTcgQjVEMENGMzEgMkNEOTlFOEIgNUJERUFFMUQgOUI2NEMyQjAgRUM2M0YyMjYgNzU2QUEzOUMgMDI2RDkzMEEgOUMwOTA2QTkgRUIwRTM2M0YgNzIwNzY3ODUgMDUwMDU3MTMgOTVCRjRBODIgRTJCODdBMTQgN0JCMTJCQUUgMENCNjFCMzggOTJEMjhFOUIgRTVENUJFMEQgN0NEQ0VGQjcgMEJEQkRGMjEgODZEM0QyRDQgRjFENEUyNDIgNjhEREIzRjggMUZEQTgzNkUgODFCRTE2Q0QgRjZCOTI2NUIgNkZCMDc3RTEgMThCNzQ3NzcgODgwODVBRTYgRkYwRjZBNzAgNjYwNjNCQ0EgMTEwMTBCNUMgOEY2NTlFRkYgRjg2MkFFNjkgNjE2QkZGRDMgMTY2Q0NGNDUgQTAwQUUyNzggRDcwREQyRUUgNEUwNDgzNTQgMzkwM0IzQzIgQTc2NzI2NjEgRDA2MDE2RjcgNDk2OTQ3NEQgM0U2RTc3REIgQUVEMTZBNEEgRDlENjVBREMgNDBERjBCNjYgMzdEODNCRjAgQTlCQ0FFNTMgREVCQjlFQzUgNDdCMkNGN0YgMzBCNUZGRTkgQkRCREYyMUMgQ0FCQUMyOEEgNTNCMzkzMzAgMjRCNEEzQTYgQkFEMDM2MDUgQ0RENzA2OTMgNTRERTU3MjkgMjNEOTY3QkYgQjM2NjdBMkUgQzQ2MTRBQjggNUQ2ODFCMDIgMkE2RjJCOTQgQjQwQkJFMzcgQzMwQzhFQTEgNUEwNURGMUIgMkQwMkVGOEQiLnNwbGl0KCIgIikubWFwKGZ1bmN0aW9uKHQpe3JldHVybiBwYXJzZUludCh0LAoxNil9KTt2YXIgbj1uXi0xO2M9MDtmb3IoZj1iLmxlbmd0aDtjPGY7YysrKW49bj4+PjheZFsobl5iLmNoYXJDb2RlQXQoYykpJjI1NV07cmV0dXJuKG5eLTEpPj4+MH0sc2V0TXVsdGlEZWFsZXJCb2R5OmZ1bmN0aW9uKGIsZCl7dmFyIGM9JCgiI3Bvc3RMZWFkTGFiZWwiKS52YWwoKTsidW5kZWZpbmVkIiE9PXR5cGVvZiBjPyhjPWMucmVwbGFjZSgieyRNVUxUSURFQUxFUk5BTUV9IixiKS5yZXBsYWNlKCJ7JFBPU1RfTEVBRF9FTUFJTFN9IixkKSxhLmJvZHk9YS5ib2R5LnJlcGxhY2UoInskREVBTEVSX1NFTkRUT30iLGMpLGEuZGVhbGVyTmFtZT1iKTphLmJvZHk9YS5ib2R5LnJlcGxhY2UoLzxiclxzP1wvPntcJERFQUxFUl9TRU5EVE99KGJyXHM\/XC8pPy8sIiIpLnJlcGxhY2UoInskREVBTEVSX1NFTkRUT30iLCIiKX0sc2hvd0NvbnNlbnQ6ZnVuY3Rpb24oYixkKXthLmdldEVtYWlsQ29uc2VudChmdW5jdGlvbihjKXt2YXIgZj1hLmdldE5ld1NlcXVlbmNlKCksaz1hLmdldE5ld1NlcXVlbmNlKCk7CmYuc2V0QWN0aW9uKGZ1bmN0aW9uKCl7dmFyIG09dGhpcyxuPSQoIiNtdWx0aS1hZGRyZXNzLXN1Ym1pc3Npb24iKSx0PW4uZmluZCgic2VsZWN0Iikscj0kKCIuZGVhbGVyLXNlbGVjdC13cmFwcGVyIiksdj0xMTEyO2EuaGFzU2VsZWN0ZWRNdWx0aUFkZHJlc3M9ITE7aWYoKCQoIiNjdXN0b21Gb3JtX3NlbmR0byIpLmxlbmd0aCYmIiIhPSQoIiNjdXN0b21Gb3JtX3NlbmR0byIpLnZhbCgpfHwkKCIjY3VzdG9tRm9ybV9zZW5kdG9BREYiKS5sZW5ndGgmJiIiIT0kKCIjY3VzdG9tRm9ybV9zZW5kdG9BREYiKS52YWwoKSkmJjA8PSQoIiNQQUdFSUQiKS52YWwoKS5pbmRleE9mKCJnZW5lcmljXyIpfHwwPT1uLmxlbmd0aHx8MCE9PWEuZGVhbGVyTmFtZS5sZW5ndGh8fCJKb2JPZmZlciI9PWEubWFpbElEJiYiIiE9JCgiI3RleHRTZW5kVG9FbWFpbERlZmF1bHQiKS52YWwoKSlyZXR1cm4gbS5nb3RvTmV4dCgpO3ZhciBxPSQoIiNQT1NUX0xFQURfU0VORF9UT19ERUFMRVJfVFlQRV9TRUxFQ1QiKS5sZW5ndGg\/CiQoIiNQT1NUX0xFQURfU0VORF9UT19ERUFMRVJfVFlQRV9TRUxFQ1QiKS52YWwoKToibG9jYXRpb24iO2lmKDA8JCgiI3RhcmdldFBhZ2UiKS5sZW5ndGgmJiJDQVJERVRBSUxTIj09PSQoIiN0YXJnZXRQYWdlIikudmFsKCkmJiJsb2NhdGlvbiI9PT1xfHwoIiIhPT1hLnN0b2NrTnVtYmVyfHxhLmNhcmlkfHxhLmdldFN0b2NrTnVtYmVyKCkpJiYibG9jYXRpb24iPT09cSlyZXR1cm4gbS5nb3RvTmV4dCgpOyQoIiNtdWx0aS1kZWFsZXItbWFwIikubGVuZ3RoJiYoR29vZ2xlTWFwc1dyYXBwZXIuc2V0R29vZ2xlTWFwKCkscT0kKCIjZm9vdGVyR29vZ2xlTWFwWm9vbSIpLnZhbCgpLHE9MTxwYXJzZUludChxKSYmMTg+PXBhcnNlSW50KHEpP3BhcnNlSW50KHEpOjkscT1uZXcgR29vZ2xlTWFwc1dyYXBwZXIoe2VsZW1lbnQ6Im11bHRpLWRlYWxlci1tYXAiLGFkZHJlc3NlczoidW5kZWZpbmVkIiE9dHlwZW9mIGZvb3Rlck1hcEFkZHJlc3Nlcz9mb290ZXJNYXBBZGRyZXNzZXM6W10sem9vbTpxLApvbkFmdGVyTWFya2VyQ3JlYXRlZDpmdW5jdGlvbihoLGwpe3ZhciB1PSQoYC5kZWFsZXItc2VsZWN0LXdyYXBwZXIgYnV0dG9uW2RhdGEtZGVhbGVyaWQ9IiR7aC5kZWFsZXJJZH0iXWApO3Uub24oImNsaWNrIixmdW5jdGlvbigpe2dvb2dsZS5tYXBzLmV2ZW50LnRyaWdnZXIobCwiY2xpY2siKX0pO2wuYWRkTGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbigpeyQoIi5kZWFsZXItc2VsZWN0LXdyYXBwZXIgYnV0dG9uIikucmVtb3ZlQ2xhc3MoImZvY3VzZWQiKTt2YXIgdz0kKCcjbXVsdGktYWRkcmVzcy1zdWJtaXNzaW9uIHNlbGVjdFtuYW1lPSJtdWx0aV9kZWFsZXJfc2VuZFRvIl0nKTt1Lmxlbmd0aCYmKHUuYWRkQ2xhc3MoImZvY3VzZWQiKSx1WzBdLmZvY3VzKCksbXVsdGlEZWFsZXJTZWxlY3Quc2V0U2VsZWN0KHVbMF0sITEpKTtpZih3Lmxlbmd0aCl7dmFyIHg9dy5maW5kKGBvcHRpb25bZGF0YS1kZWFsZXJpZD0iJHtoLmRlYWxlcklkfSJdYCk7eC5sZW5ndGgmJncudmFsKHgudmFsKCkpfX0pOwokKGAjbXVsdGktYWRkcmVzcy1zdWJtaXNzaW9uIG9wdGlvbltkYXRhLWRlYWxlcmlkPSIke2guZGVhbGVySWR9Il1gKS5kYXRhKCJtYXJrZXIiLGwpfSxvbkFmdGVySW5pdDpmdW5jdGlvbigpeyJ1bmRlZmluZWQiIT10eXBlb2YgZm9vdGVyTWFwQWRkcmVzc2VzJiYwIT1mb290ZXJNYXBBZGRyZXNzZXMubGVuZ3RofHwkKCIjbXVsdGktZGVhbGVyLW1hcCIpLmhpZGUoKTskKCcjbXVsdGktYWRkcmVzcy1zdWJtaXNzaW9uIHNlbGVjdFtuYW1lPSJtdWx0aV9kZWFsZXJfc2VuZFRvIl0nKS5vbigiY2hhbmdlIixmdW5jdGlvbigpe3ZhciBoPSQodGhpcykuZmluZCgiOnNlbGVjdGVkIik7aC5sZW5ndGgmJmdvb2dsZS5tYXBzLmV2ZW50LnRyaWdnZXIoaC5kYXRhKCJtYXJrZXIiKSwiY2xpY2siKX0pfX0pLCQoIiNtdWx0aS1kZWFsZXItbWFwIikuc2hvdygpLHEuaW5pdCgpKTt0Lm9mZigiZm9jdXMiKS5vbigiZm9jdXMiLGZ1bmN0aW9uKCl7dC5yZW1vdmVDbGFzcygidmFsaWRpdHktZXJyb25lb3VzIil9KTsKdmFyIHA9ZnVuY3Rpb24oaCl7dmFyIGw9YS5nZXREZXAoKTtpZigiSm9iT2ZmZXIiPT1hLm1haWxJRClzd2l0Y2goJCgiI2pvYm9mZmVyX2RlcGFydG1lbnQiKS52YWwoKSl7Y2FzZSAiU2FsZXNuZXciOmw9Ik5FVyI7YnJlYWs7Y2FzZSAiU2FsZXN1c2VkIjpsPSJVU0VEIjticmVhaztjYXNlICJTZXJ2aWNlIjpsPSJTRVJWSUNFIjticmVhaztjYXNlICJQYXJ0cyI6bD0iUEFSVFMiO2JyZWFrO2RlZmF1bHQ6bD0iTkVXIn12YXIgdT0iIix3PSIiO3N3aXRjaChsKXtjYXNlICJVU0VEIjp1PWguZGF0YSgiZW1haWx1c2VkIik7dz1oLmRhdGEoImVtYWlsYWRmdXNlZCIpO2JyZWFrO2Nhc2UgIlNFUlZJQ0UiOnU9aC5kYXRhKCJlbWFpbHNlcnZpY2UiKTt3PWguZGF0YSgiZW1haWxhZGZzZXJ2aWNlIik7YnJlYWs7Y2FzZSAiUEFSVFMiOnU9aC5kYXRhKCJlbWFpbHBhcnRzIil8fGguZGF0YSgiZW1haWxzZXJ2aWNlIik7dz1oLmRhdGEoImVtYWlsYWRmcGFydHMiKXx8aC5kYXRhKCJlbWFpbGFkZnNlcnZpY2UiKTsKYnJlYWs7Y2FzZSAiRklOQU5DRSI6dT1oLmRhdGEoImVtYWlsZmluYW5jZSIpLHc9aC5kYXRhKCJlbWFpbGFkZmZpbmFuY2UiKX1hLnNlbmRUbz11fHxoLmRhdGEoImVtYWlsIil8fGguZGF0YSgiZW1haWx1c2VkIik7YS5zZWxlY3RlZFNlbmRUbz11fHxoLmRhdGEoImVtYWlsIil8fGguZGF0YSgiZW1haWx1c2VkIik7YS5zZW5kVG9BREZGb3JtYXQ9d3x8aC5kYXRhKCJlbWFpbGFkZiIpfHxoLmRhdGEoImVtYWlsYWRmdXNlZCIpO2Euc2VsZWN0ZWRTZW5kVG9BREZGb3JtYXQ9d3x8aC5kYXRhKCJlbWFpbGFkZiIpfHxoLmRhdGEoImVtYWlsYWRmdXNlZCIpO2EuaGFzU2VsZWN0ZWRNdWx0aUFkZHJlc3M9ITA7YS5kZWFsZXJpZD1oLmRhdGEoImRlYWxlcmlkIik7YS5zZXRNdWx0aURlYWxlckJvZHkoaC50ZXh0KCkudHJpbSgpLGEuc2VuZFRvKX07JCgiI211dGxpQWRkcmVzc1N1Ym1pdCIpLm9mZigiY2xpY2siKS5vbigiY2xpY2siLGZ1bmN0aW9uKCl7aWYoIiI9PT10LnZhbCgpKXQuYWRkQ2xhc3MoInZhbGlkaXR5LWVycm9uZW91cyIpLApyLmFkZENsYXNzKCJ2YWxpZGl0eS1lcnJvbmVvdXMiKTtlbHNle3ZhciBoPXQuZmluZCgiOnNlbGVjdGVkIik7cChoKTskKCIucmV2ZWFsLW1vZGFsLWJnIikuY3NzKCJ6LWluZGV4Iix2KTtuLnRyaWdnZXIoInJldmVhbDpjbG9zZSIpO20uZ290b05leHQoKX19KTtpZigkKCIubXVsdGktYWRkcmVzcy1zdWJtaXNzaW9uLWNsb3NlIikubGVuZ3RoKSQoIi5tdWx0aS1hZGRyZXNzLXN1Ym1pc3Npb24tY2xvc2UiKS5vZmYoImNsaWNrIikub24oImNsaWNrIixmdW5jdGlvbigpe0xlYWRzJiZPYmplY3Qua2V5cyhMZWFkcykuZm9yRWFjaChmdW5jdGlvbihoKXsidW5kZWZpbmVkIiE9PXR5cGVvZiBMZWFkc1toXS5sZWFkSWQmJkxlYWRIYW5kbGVyKCkuZ2V0TGVhZChMZWFkc1toXS5sZWFkSWQpLmNsb3NlKCl9KTtwb3B1cFN1cGVydmlzb3ImJnBvcHVwU3VwZXJ2aXNvci5wb3B1cHMmJnBvcHVwU3VwZXJ2aXNvci5wb3B1cHMuZm9yRWFjaChmdW5jdGlvbihoKXtoJiZ0eXBlb2YgaC5pc0FjdGl2ZSgpJiYKaC5jYW5jZWwoKX0pOyQoIi5yZXZlYWwtbW9kYWwtYmciKS5jc3MoInotaW5kZXgiLHYpO24udHJpZ2dlcigicmV2ZWFsOmNsb3NlIil9KTtpZigiIiE9PWEubWFrZSYmbXVsdGlEZWFsZXJTZWxlY3QmJihxPW11bHRpRGVhbGVyU2VsZWN0LmZpbHRlcih0KSxxLmJ5TWFrZShhLm1ha2UpLHE9cS5oYXNPbmx5T25lKCkpKXJldHVybiBwKHEpLG0uZ290b05leHQoKTtyLmxlbmd0aCYmKHE9ci5maW5kKCJidXR0b24iKS50b0FycmF5KCkscS5sZW5ndGgmJihxPWZ1bmN0aW9uKGgpe2ZvcihsZXQgbD1oLmxlbmd0aC0xOzA8bDtsLS0pe2NvbnN0IHU9TWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKihsKzEpKTtbaFtsXSxoW3VdXT1baFt1XSxoW2xdXX1yZXR1cm4gaH0ocSksci5maW5kKCJidXR0b24iKS5yZW1vdmUoKSxyLmFwcGVuZChxKSkpO24ucmV2ZWFsKHthbmltYXRpb246ImZhZGVBbmRQb3AiLGFuaW1hdGlvbnNwZWVkOjMwMCxjbG9zZW9uYmFja2dyb3VuZGNsaWNrOiExLGRpc21pc3Ntb2RhbGNsYXNzOiJjbG9zZS1yZXZlYWwtbW9kYWwyIiwKY2xvc2VvbmVzY2FwZTohMX0pO3Y9JCgiLnJldmVhbC1tb2RhbC1iZyIpLmNzcygiei1pbmRleCIpOyQoIi5yZXZlYWwtbW9kYWwtYmciKS5jc3MoInotaW5kZXgiLHBhcnNlSW50KG4uY3NzKCJ6LWluZGV4IikpLTEpfSk7ay5zZXRBY3Rpb24oZnVuY3Rpb24oKXt2b2lkIDA9PWImJihiPSExKTt2b2lkIDA9PWQmJihkPSExKTt2YXIgbT0kKCIjYXNQb3BVcCIpLG49ITE7KGEuYXNrUHVyY2hhc2VJbnRlbnR8fGEuc2hvdWxkRGlzcGxheVB1cmNoYXNlSW50ZW50Q29udGFjdCgpKSYmMDwkKCIjYXNQdXJjaGFzZUludGVudCIpLmxlbmd0aCYmKG09JCgiI2FzUHVyY2hhc2VJbnRlbnQiKSxuPSEwKTtpZigwPG0ubGVuZ3RoKXtnZXRDb29raWUoInZpc2l0b3JfaGFzX2V4cGxpY2l0X2NvbnNlbnQiKTt2YXIgdD1wYXJzZUludChnZXRDb29raWUoInZpc2l0b3JfaGFzX3NlZW5fcG9wdXAiKSwxMCk7aXNOYU4odCkmJih0PTApO2Euc2tpcFNlbmRpbmc9YjthLmZyb21PbkxvYWQ9ZDtpZihjLmhhc0NvbnNlbnQpe3N3aXRjaChhLnN1Ym1pdFR5cGUpe2Nhc2UgImluc3RhbnRSZWJhdGUiOmNhc2UgInNjcmF0Y2giOnJlYWxTdWJtaXRSZWJhdGVDb3Vwb24oKTsKYnJlYWs7ZGVmYXVsdDoiIiE9YS5wb3N0U3VibWl0Q2FsbGJhY2smJmV2YWwoYS5wb3N0U3VibWl0Q2FsbGJhY2spfWEucmVhZHlUb1NlbmQoKX1lbHNle3N3aXRjaChhLnN1Ym1pdFR5cGUpe2Nhc2UgInNjcmF0Y2giOmNhc2UgImluc3RhbnRSZWJhdGUiOmNsb3NlUG9wdXBXaWRnZXQoKX0iZnVuY3Rpb24iPT10eXBlb2YgYS5vbkJlZm9yZVNob3dDb25zZW50JiZhLm9uQmVmb3JlU2hvd0NvbnNlbnQuY2FsbCgpO2lmKG4pYS5zaG91bGREaXNwbGF5UHVyY2hhc2VJbnRlbnRDb250YWN0KCk\/ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI2FzUHVyY2hhc2VJbnRlbnQgLnN0ZXBDb250YWN0IikuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIik6ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI2FzUHVyY2hhc2VJbnRlbnQgLnN0ZXBDb250YWN0IikuY2xhc3NMaXN0LmFkZCgiaGlkZGVuIiksJCgiI2VtYWlsQ29uc2VudFN1Ym1pdCIpLm9uKCJjbGljayIsZnVuY3Rpb24oKXt2YXIgcj17fTttLmZpbmQoImZvcm0iKS5zZXJpYWxpemVBcnJheSgpLm1hcChwPT4Ke3JbcC5uYW1lXT1wLnZhbHVlfSk7JCgiI0FMTE9XX1NIQVJFX1BFUlNPTkFMX0lORk8sIC5zdGVwQ29uc2VudCIpLmNzcyh7Ym9yZGVyOiJub25lIn0pOyQoIiNBTExPV19TSEFSRV9QRVJTT05BTF9JTkZPX1RFWFRfRVJST1IiKS5oaWRlKCk7aWYoMT09JCgiI0FMTE9XX1NIQVJFX1BFUlNPTkFMX0lORk8iKS5pcygiOnZpc2libGUiKSYmKCFyLnNoYXJlX3BlcnNvbmFsfHwibm8iPT1yLnNoYXJlX3BlcnNvbmFsKSlyZXR1cm4gJCgiI0FMTE9XX1NIQVJFX1BFUlNPTkFMX0lORk8iKS5jc3Moe2JvcmRlcjoiMXB4IHNvbGlkIHJlZCJ9KSwkKCIjQUxMT1dfU0hBUkVfUEVSU09OQUxfSU5GT19URVhUX0VSUk9SIikuc2hvdygpLCExO2lmKCFyLmhhc093blByb3BlcnR5KCJjb25zZW50IikpcmV0dXJuICQoIi5zdGVwQ29uc2VudCIpLmNzcyh7Ym9yZGVyOiIxcHggc29saWQgcmVkIn0pLCExO3ZhciB2PXtwdXJjaGFzZV9pbnRlbnQ6LTEsc2hhcmVfcGVyc29uYWw6Im5vIixwcmVmZXJyZWRfY29udGFjdDoiIn07CmZvcih2YXIgcSBpbiB2KXYuaGFzT3duUHJvcGVydHkocSkmJihyLmhhc093blByb3BlcnR5KHEpP3NldENvb2tpZShxLHJbcV0pOnJbcV09dltxXSk7YS5wdXJjaGFzZV9pbnRlbnQ9ci5wdXJjaGFzZV9pbnRlbnQ7YS5hbGxvd19zaGFyZV9wZXJzb25hbF9kYXRhPXIuc2hhcmVfcGVyc29uYWw7YS5wcmVmZXJyZWRfY29udGFjdD1yLnByZWZlcnJlZF9jb250YWN0O3Y9Ii0xIiE9ci5jb25zZW50O3E9ci5oYXNPd25Qcm9wZXJ0eSgiY29uc2VudF9vZW0iKSYmIjEiPT1yLmNvbnNlbnRfb2VtO2Euc3VibWl0Q29uc2VudCh2LHEsImNvbXBsZXgiKTtyZXR1cm4hMX0pO2Vsc2UgJCgiI2NvbnNlbnRTdWJtaXQiKS5vbigiY2xpY2siLGZ1bmN0aW9uKHIpe3IucHJldmVudERlZmF1bHQoKTtyPSExOyQoIi5kZWFsZXJDb25zZW50IikuY3NzKHtib3JkZXI6Im5vbmUifSk7JCgiLm9lbUNvbnNlbnQiKS5jc3Moe2JvcmRlcjoibm9uZSJ9KTt2YXIgdj17fTttLmZpbmQoImZvcm0iKS5zZXJpYWxpemVBcnJheSgpLm1hcChwPT4Ke3ZbcC5uYW1lXT1wLnZhbHVlfSk7di5oYXNPd25Qcm9wZXJ0eSgiY29uc2VudCIpfHwoJCgiLmRlYWxlckNvbnNlbnQiKS5jc3Moe2JvcmRlcjoiMXB4IHNvbGlkIHJlZCJ9KSxyPSEwKTttLmZpbmQoImZvcm0gLm9lbUNvbnNlbnQiKS5sZW5ndGgmJiF2Lmhhc093blByb3BlcnR5KCJjb25zZW50X29lbSIpJiYkKCIjb2VtQ2VydGlmaWNhdGlvbiIpLnZhbCgpJiYobS5maW5kKCJmb3JtIC5vZW1Db25zZW50IikuY3NzKHtib3JkZXI6IjFweCBzb2xpZCByZWQifSkscj0hMCk7aWYocilyZXR1cm4hMTtyPSItMSIhPXYuY29uc2VudDt2YXIgcT12Lmhhc093blByb3BlcnR5KCJjb25zZW50X29lbSIpJiYiMSI9PXYuY29uc2VudF9vZW07YS5zdWJtaXRDb25zZW50KHIscSl9KTthLnByZVNlbmRJbXBsaWNpdCgpO20ucmV2ZWFsKHthbmltYXRpb246ImZhZGVBbmRQb3AiLGFuaW1hdGlvbnNwZWVkOjMwMCxjbG9zZW9uYmFja2dyb3VuZGNsaWNrOiExLGRpc21pc3Ntb2RhbGNsYXNzOiJjbG9zZS1yZXZlYWwtbW9kYWwiLApjbG9zZW9uZXNjYXBlOiExfSl9fWVsc2UiIj09YS5jb25zZW50RGV0YWlsc0VOJiZ2b2lkIDAhPWEuZGV0YWlsc0RlZmF1bHRzLkVOR0xJU0gmJnZvaWQgMCE9YS5kZXRhaWxzRGVmYXVsdHMuRlJFTkNIJiYoYS5jb25zZW50RGV0YWlsc0VOPWEuZGV0YWlsc0RlZmF1bHRzLkVOR0xJU0hbMl0sYS5jb25zZW50RGV0YWlsc0ZSPWEuZGV0YWlsc0RlZmF1bHRzLkZSRU5DSFsyXSksYj9yZWFsU2hvd1BvcHVwV2lkZ2V0KGQpOmEucmVhZHlUb1NlbmQoKX0pO2Yuc2V0TmV4dChrKS5leGV1dGUoKX0pfSxoaWRlQ29uc2VudDpmdW5jdGlvbigpe3ZhciBiPSQoIiNhc1BvcFVwOnZpc2libGUiKTskKCIjYXNQdXJjaGFzZUludGVudCIpLmlzKCI6dmlzaWJsZSIpJiYiaGlkZGVuIiE9PSQoIiNhc1B1cmNoYXNlSW50ZW50IikuY3NzKCJ2aXNpYmlsaXR5IikmJihiPSQoIiNhc1B1cmNoYXNlSW50ZW50OnZpc2libGUiKSxjb21wbGV4PSEwKTswPGIubGVuZ3RoJiZiLnRyaWdnZXIoInJldmVhbDpjbG9zZSIpfSwKc2F2ZUNvbnNlbnQ6ZnVuY3Rpb24oYixkLGMsZil7JCgiYm9keSIpLmNzcygib3ZlcmZsb3ciLCJhdXRvIik7YS5oaWRlQ29uc2VudCgpO3ZvaWQgMD09YyYmKGM9IiIpO3ZhciBrPWI\/NzMwOjE4MDtkPXtlbWFpbDphLnVzZXJFbWFpbCxmaXJzdDphLnVzZXJGaXJzdE5hbWUsbGFzdDphLnVzZXJMYXN0TmFtZSxwaG9uZTphLnVzZXJQaG9uZSxzaXRlSUQ6JCgiI3NpdGVJRCIpLnZhbCgpLGZyZXF1ZW5jeTpiPzE6LTEsZXhwbGljaXQ6Yj8xOjAsZXhwbGljaXRPRU06ZD8xOjAsaW1nOmMscmVmZXJlcjp2b2lkIDAhPWRvY3VtZW50LnJlZmVycmVyP2RvY3VtZW50LnJlZmVycmVyOiIiLGZyb206IkVIIn07aWYodm9pZCAwIT09YS5wcmVmZXJyZWRfY29udGFjdCYmIiIhPT1hLnByZWZlcnJlZF9jb250YWN0fHx2b2lkIDAhPT1nZXRDb29raWUoInByZWZlcnJlZF9jb250YWN0IikmJiIiIT09Z2V0Q29va2llKCJwcmVmZXJyZWRfY29udGFjdCIpKWM9YS5wcmVmZXJyZWRfY29udGFjdHx8CmdldENvb2tpZSgicHJlZmVycmVkX2NvbnRhY3QiKSxjPXsiVMOpbMOpcGhvbmUiOiJQSE9ORSIsQ291cnJpZWw6IkVNQUlMIn1bY118fGMsbnVsbCE9PWMmJihkLmNvbnRhY3RQcmVmZXJlbmNlPWMudG9VcHBlckNhc2UoKSk7c2V0Q29va2llKCJ2aXNpdG9yX2ZyZXF1ZW5jeV9wcmVmZXJlbmNlIiwtMSxrKTtzZXRDb29raWUoInZpc2l0b3JfY29uc2VudF9wcmVmZXJlbmNlIixiPyJFeHBsaWNpdCI6IkltcGxpY2l0IixrKTtzZXRDb29raWUoInZpc2l0b3JfaGFzX2V4cGxpY2l0X2NvbnNlbnQiLGI\/InllcyI6Im5vIixrKTtzZXRDb29raWUoInZpc2l0b3JfZW1haWxfcHJlZmVyZW5jZSIsZC5lbWFpbCw5MCk7JCgiLnVpLWxvYWRlci1iYWNrZ3JvdW5kIikuc2hvdygpO3NldFRpbWVvdXQoZnVuY3Rpb24oKXskKCIudWktbG9hZGVyLWJhY2tncm91bmQiKS5oaWRlKCl9LDVFMyk7JC5hamF4KHt0eXBlOiJQT1NUIix1cmw6Ii9hamF4L3RyYWNrRW1haWxQcmVmZXJlbmNlP3dzd2lkdGg9MCIsCmRhdGFUeXBlOiJqc29uIixkYXRhOmQsY29tcGxldGU6ZnVuY3Rpb24obSl7dHJ5e3ZhciBuPUpTT04ucGFyc2UobS5yZXNwb25zZVRleHQpO2EuY29uc2VudERldGFpbHNFTj1idG9hKG4uZGV0YWlsQ29uc2VudC5FTkdMSVNIKTthLmNvbnNlbnREZXRhaWxzRlI9YnRvYShuLmRldGFpbENvbnNlbnQuRlJFTkNIKX1jYXRjaCh0KXt9YS5wb3N0U2F2ZUNvbnNlbnQoYixmKX19KX0scG9zdFNhdmVDb25zZW50OmZ1bmN0aW9uKGIsZCl7dm9pZCAwIT1hLmRldGFpbHNEZWZhdWx0cy5FTkdMSVNIJiZ2b2lkIDAhPWEuZGV0YWlsc0RlZmF1bHRzLkZSRU5DSCYmKGI\/KGEuY29uc2VudERldGFpbHNFTj1hLmRldGFpbHNEZWZhdWx0cy5FTkdMSVNIWzFdLGEuY29uc2VudERldGFpbHNGUj1hLmRldGFpbHNEZWZhdWx0cy5GUkVOQ0hbMV0pOihhLmNvbnNlbnREZXRhaWxzRU49YS5kZXRhaWxzRGVmYXVsdHMuRU5HTElTSFsyXSxhLmNvbnNlbnREZXRhaWxzRlI9YS5kZXRhaWxzRGVmYXVsdHMuRlJFTkNIWzJdKSk7CmlmKGQpe2lmKGEuaWdub3JlQ2FwdGNoYT9hLnJlYWR5VG9TZW5kKCk6KGEucmVjYXB0Y2hhLnJlc2V0VG9rZW4oKSxhLnJlY2FwdGNoYS5nZXRSZXNwb25zZSgpLmRvbmUoZnVuY3Rpb24oYyl7YS5ncmVjYXB0Y2hhUmVzcG9uc2VUb2tlbj1jO2EucmVhZHlUb1NlbmQoKX0pKSwiZnVuY3Rpb24iPT10eXBlb2YgYS5vbkFmdGVyQ29uc2VudClhLm9uQWZ0ZXJDb25zZW50KGIpfWVsc2UgYS5oaWRlQ29uc2VudCgpfSxzdWJtaXRDb25zZW50OmZ1bmN0aW9uKGIsZCxjKXthLmNvbnNlbnREZWFsZXI9YjthLmNvbnNlbnRPRU09ZDtpZihjJiYiY29tcGxleCI9PWMpe3ZhciBmPSIiOy0xPT1hLnB1cmNoYXNlX2ludGVudD8oYz0iUGFzIGRlIHJlcG9uc2UiLGY9Ik5PX0FOU1dFUiIpOmM9YS5wdXJjaGFzZV9pbnRlbnQ7bnVsbCE9Yy5tYXRjaCgvMzAvKT8oYz0iTW9pbnMgZGUgMzAgam91cnMiLGY9IkxUXzMwX0RBWVMiKTpudWxsIT1jLm1hdGNoKC8zLyk\/KGM9Ik1vaW5zIGRlIDMgbW9pcyIsCmY9IkxUXzNfTU9OVEhTIik6bnVsbCE9Yy5tYXRjaCgvNi8pJiYobnVsbCE9Yy5tYXRjaCgvcGx1c3xvdmVyfG1vcmUvKT8oYz0iUGx1cyBkZSA2IG1vaXMiLGY9IkdUXzZfTU9OVEhTIik6KGM9Ik1vaW5zIGRlIDYgbW9pcyIsZj0iTFRfNl9NT05USFMiKSk7dmFyIGs9IlJlcG9uc2UgLSAiK2EucHVyY2hhc2VfaW50ZW50X3NlY3Rpb24udG9VcHBlckNhc2UoKTthLmxvZ0V2ZW50KCJJbnRlbnRpb25zIGFjaGF0OiAiK2MsIlBVUkNIQVNFX0lOVEVOVF8iK2YpOyJ1bmRlZmluZWQiIT09dHlwZW9mIGRlYnVnJiZkZWJ1ZyhbImIuX3RyYWNrRXZlbnQiLCJJbnRlbnRpb25zIGFjaGF0IixrLGMsMV0pfXN3aXRjaChhLnN1Ym1pdFR5cGUpe2Nhc2UgInNjcmF0Y2giOmNhc2UgImluc3RhbnRSZWJhdGUiOnJlYWxTdWJtaXRSZWJhdGVDb3Vwb24oKTticmVhaztkZWZhdWx0OiIiIT1hLnBvc3RTdWJtaXRDYWxsYmFjayYmZXZhbChhLnBvc3RTdWJtaXRDYWxsYmFjayl9InNjcmF0Y2giPT1hLnN1Ym1pdFR5cGUmJgpzaG93UG9wdXBXaWRnZXQoKTskKCIjbGFzdENvbnNlbnRQb3AiKS52YWwoYj8iRXhwbGljaXQiOiJJbXBsaWNpdCIpO2Euc2F2ZUNvbnNlbnQoYixkLCIiLCEwKX0scHJlU2VuZENoZWNrczpmdW5jdGlvbihiKXtiP2EucmVhZHlUb1NlbmQoKTphLnNob3dDb25zZW50KCl9LHNlbmRNYWlsOmZ1bmN0aW9uKGIpe3JldHVybiAkanNjb21wLmFzeW5jRXhlY3V0ZVByb21pc2VHZW5lcmF0b3JGdW5jdGlvbihmdW5jdGlvbiooKXthLnN1Ym1pdFR5cGU9Im5vcm1hbCI7Yj0idW5kZWZpbmVkIiE9dHlwZW9mIGI\/YjohMTthLmlnbm9yZUNhcHRjaGF8fChhLnJlY2FwdGNoYS5sb2FkKCksInVuZGVmaW5lZCIhPT1ncmVjYXB0Y2hhJiYtMTxhLnJlY2FwdGNoYS53aWRnZXRJZCYmKHlpZWxkIGEucmVjYXB0Y2hhLmdldFJlc3BvbnNlKCkpKTtpZigidW5kZWZpbmVkIj09dHlwZW9mICQoIiNvbkxlYWRTdWJtaXRHZW9sb2MiKS52YWwoKXx8MSE9JCgiI29uTGVhZFN1Ym1pdEdlb2xvYyIpLnZhbCgpfHwKInVuZGVmaW5lZCI9PXR5cGVvZiBnZW9Mb2NhdG9yfHxhLnNraXBHZW9Mb2MpYS5wcmVTZW5kQ2hlY2tzKGIpO2Vsc2V7dmFyIGQ9bmV3IGdlb0xvY2F0b3IoZnVuY3Rpb24oYyl7YS5nZW9sb2Nfc3RhdHVzPWMuZ2VvbG9jX3N0YXR1czsxPT1jLnJlc3VsdCYmKGEuZ2VvbG9jX2xhdD1jLmxhdGl0dWRlLGEuZ2VvbG9jX2xvbmc9Yy5sb25naXR1ZGUsYS5nZW9sb2NfYWNjdXJhY3k9Yy5hY2N1cmFjeSxhLmdlb2xvY190cmFja19zdHI9Yy5nZW9jb2RlX2FkZHJlc3MsYS5nZW9sb2NfZW1haWxfc3RyPWMuZ2VvY29kZV9hZGRyZXNzX3N0ciwtMT09YS5ib2R5LmluZGV4T2YoIiMjR0VPTE9DQVRJT04jIyIpJiYoYS5ib2R5PXRyaW0oYS5ib2R5KS5yZXBsYWNlKC88YnI+Jm5ic3A7L2csIjxicj4iKSsiIyNHRU9MT0NBVElPTiMjIiksInVuZGVmaW5lZCIhPXR5cGVvZiBhY3RpdmVVc2VyUHJvZmlsZU1uZyYmInVuZGVmaW5lZCIhPXR5cGVvZiBhY3RpdmVVc2VyUHJvZmlsZU1uZy5sb2dQYWdlVmlld0V2ZW50JiYKYWN0aXZlVXNlclByb2ZpbGVNbmcubG9nUGFnZVZpZXdFdmVudCgiUE9TVEFMX0NPREUiLGMuZ2VvY29kZV9hZGRyZXNzX3N0cikpOyJ1bmRlZmluZWQiPT10eXBlb2YgJCgiI2xlYWRTZW50IikudmFsKCkmJihjPSQoIjxpbnB1dD4iKS5hdHRyKHtpZDoibGVhZFNlbnQiLHR5cGU6ImhpZGRlbiJ9KS52YWwoMSksJCgiI2Zvb3RlckRpdiIpLmFwcGVuZChjKSxhLnByZVNlbmRDaGVja3MoYikpfSk7ZC50cmFja0xvY2F0aW9uR0E9ITA7ZC5nZXRMb2NhdGlvbigpfX0pfSxzZW5kVXNlckVtYWlsOmZ1bmN0aW9uKGIsZCl7c2VuZFRvRGF0YT17fTt2YXIgYz1iPSIiLGY9IiIsaz0iIjtmb3IoaSBpbiBkKWlmKCJzdHJpbmciPT10eXBlb2YgaSlzd2l0Y2goaS50b0xvd2VyQ2FzZSgpKXtjYXNlICJlbWFpbHRvIjpjPWRbaV07YnJlYWs7Y2FzZSAiZW1haWxpZCI6Yj1kW2ldO2JyZWFrO2Nhc2UgImRlYWxlcmVtYWlsIjpmPWRbaV07YnJlYWs7Y2FzZSAiZGVhbGVycGhvbmUiOms9ZFtpXTticmVhazsKZGVmYXVsdDpzZW5kVG9EYXRhW2ldPWRbaV19ZD17dmFyczpKU09OLnN0cmluZ2lmeShzZW5kVG9EYXRhKSxzaXRlaWQ6JCgiI3RvcHNpdGVpZCIpLnZhbCgpLGxhbmd1YWdlOiQoIiNhY3RpdmVzaXRlbGFuZ3VhZ2UiKS52YWwoKSxlbWFpbGlkOmIsZW1haWx0bzpjLGRlYWxlckVtYWlsOmYsZGVhbGVyUGhvbmU6ayxzb3VyY2VVUkk6d2luZG93LmxvY2F0aW9uLmhyZWZ9OyQuYWpheCh7dHlwZToiUE9TVCIsdXJsOiIvYWpheC9hZGRNYWlsVG9TZW5kP3dzd2lkdGg9MCIsZGF0YTpkfSl9LGdldFN0b2NrTnVtYmVyOmZ1bmN0aW9uKCl7aWYoYS5zdG9ja051bWJlcilyZXR1cm4gYS5zdG9ja051bWJlcjtpZigwPCQoIiNsYXN0dmlld2Vkc3RvY2tudW1iZXIiKS5sZW5ndGgmJjA8JCgiI3RhcmdldFBhZ2UiKS5sZW5ndGgmJlsiTkVXQ0FSREVUQUlMUyIsIkNBUkRFVEFJTFMiLCJQUk9NTyIsIlZFSElDTEVFVkFMIl0uaW5jbHVkZXMoJCgiI3RhcmdldFBhZ2UiKS52YWwoKSkpe3ZhciBiPQokKCIjbGFzdHZpZXdlZHN0b2NrbnVtYmVyIikudmFsKCk7aWYoMjxiLmxlbmd0aCl7dmFyIGQ9Yi5pbmRleE9mKCIoU3RvY2siKTstMTxkJiYoYj1iLnN1YnN0cihkKzcpLGQ9Yi5pbmRleE9mKCIpIiksLTE8ZCYmKGI9Yi5zdWJzdHIoMCxkKS50cmltKCkpKTtiKz0iIn1lbHNlIGI9IiJ9ZWxzZSBiPWdldFBhcmFtZXRlckJ5TmFtZSgic3RvY2tubyIpfHwiIjtyZXR1cm4gYi50cmltKCl9LGdldFZQRFVybEZyb21TdG9jazpmdW5jdGlvbigpe3ZhciBiPSJFTkdMSVNIIj09JCgiI2FjdGl2ZXNpdGVsYW5ndWFnZSIpLnZhbCgpPyQoIiNsYXN0dmlld2VkeWVhciIpLnZhbCgpKyIgIiskKCIjbGFzdHZpZXdlZG1ha2UiKS52YWwoKSsiICIrJCgiI2xhc3R2aWV3ZWRtb2RlbCIpLnZhbCgpKyIgIiskKCIjbGFzdHZpZXdlZHN0b2NrbnVtYmVyIikudmFsKCk6JCgiI2xhc3R2aWV3ZWRtYWtlIikudmFsKCkrIiAiKyQoIiNsYXN0dmlld2VkbW9kZWwiKS52YWwoKSsiICIrJCgiI2xhc3R2aWV3ZWR5ZWFyIikudmFsKCkrCiIgIiskKCIjbGFzdHZpZXdlZHN0b2NrbnVtYmVyIikudmFsKCk7dHJ5e3ZhciBkPWEuZ2V0U3RvY2tOdW1iZXIoKSxjPSIiLGY9IkVOR0xJU0giPT0kKCIjYWN0aXZlc2l0ZWxhbmd1YWdlIikudmFsKCk\/InVzZWQiOiJvY2Nhc2lvbiIsaz1lKCJocmVmIiksbT1lKCJwcm90b2NvbCIpLG49ay5yZXBsYWNlKG0rIi8vIiwiIikuc3BsaXQoIi8iKSx0PW5bMF0scj1rLmluZGV4T2YoIi1pZCIpO2lmKCJ1bmRlZmluZWQiPT09dHlwZW9mIHBhZ2V8fCJCVUlMREFORFBSSUNFIiE9cGFnZSYmIk5FV0NBUkRFVEFJTFMiIT1wYWdlKWlmKC0xPHIpe3ZhciB2PXBhcnNlSW50KGsuc3Vic3RyKHIrMykucmVwbGFjZSgiLmh0bWwiLCIiKSwxMCk7aWYoIWlzTmFOKHYpJiYwPHYpe3ZhciBxPW5bbi5sZW5ndGgtMV07LTE8cS5pbmRleE9mKHYpJiYoYz0nPGEgaHJlZj0iJyttKyIvLyIrdCsiLyIrZisiLyIrcSsiXCIgdGFyZ2V0PSdfYmxhbmsnPiIrYisiPC9hPiIpfX1lbHNlIiIhPT1hLnRyaW0mJgooYj0iRU5HTElTSCI9PSQoIiNhY3RpdmVzaXRlbGFuZ3VhZ2UiKS52YWwoKT8kKCIjbGFzdHZpZXdlZHllYXIiKS52YWwoKSsiICIrJCgiI2xhc3R2aWV3ZWRtYWtlIikudmFsKCkrIiAiKyQoIiNsYXN0dmlld2VkbW9kZWwiKS52YWwoKSsiICIrYS50cmltOiQoIiNsYXN0dmlld2VkbWFrZSIpLnZhbCgpKyIgIiskKCIjbGFzdHZpZXdlZG1vZGVsIikudmFsKCkrIiAiK2EudHJpbSsiICIrJCgiI2xhc3R2aWV3ZWR5ZWFyIikudmFsKCkpO2Vsc2UiIiE9PWEudHJpbSYmKGI9IkVOR0xJU0giPT0kKCIjYWN0aXZlc2l0ZWxhbmd1YWdlIikudmFsKCk\/JCgiI2xhc3R2aWV3ZWR5ZWFyIikudmFsKCkrIiAiKyQoIiNsYXN0dmlld2VkbWFrZSIpLnZhbCgpKyIgIiskKCIjbGFzdHZpZXdlZG1vZGVsIikudmFsKCkrIiAiK2EudHJpbTokKCIjbGFzdHZpZXdlZG1ha2UiKS52YWwoKSsiICIrJCgiI2xhc3R2aWV3ZWRtb2RlbCIpLnZhbCgpKyIgIithLnRyaW0rIiAiKyQoIiNsYXN0dmlld2VkeWVhciIpLnZhbCgpKSwKYz0nPGEgaHJlZj0iJytrKyJcIiB0YXJnZXQ9J19ibGFuayc+IitiKyI8L2E+IjtpZigiIj09YyYmMjxkLmxlbmd0aCl7dmFyIHA9JCgiI3RvcHNpdGVpZCIpLnZhbCgpLGg9IkVOR0xJU0giPT0kKCIjYWN0aXZlc2l0ZWxhbmd1YWdlIikudmFsKCk\/ImVuIjoiZnIiOyQuYWpheCh7dHlwZToiR0VUIixhc3luYzohMSxkYXRhVHlwZToianNvbiIsdXJsOiIvIitoKyIvcGhwL2dldFVSTEZyb21TdG9jay5waHA\/c2l0ZUlEPSIrcCsiJnN0b2NrPSIrZCxzdWNjZXNzOmZ1bmN0aW9uKGwpeyJvYmplY3QiPT10eXBlb2YgbCYmbnVsbCE9bCYmdm9pZCAwIT1sLm1ha2UmJihjPSc8YSBocmVmPSInK20rIi8vIit0KyIvIitmKyIvIisobC5tYWtlKyItIitsLm1vZGVsKyItIitsLnllYXIrIi1pZCIrbC5pZCsiLmh0bWxcIiB0YXJnZXQ9J19ibGFuayc+IikrbC5mdWxsKyI8L2E+Iil9fSl9IiIhPWMmJihiPWMpfWNhdGNoKGwpe2NvbnNvbGUubG9nKGwpfXJldHVybiBifSxzZXRTZW5kQW5kRGVwYXJ0bWVudE92ZXJyaWRlOmZ1bmN0aW9uKGIpe2Z1bmN0aW9uIGQodiwKcSl7MDx2Lmxlbmd0aCYmIiIhPT12LnZhbCgpJiYoYi5zZW5kVG89di52YWwoKSk7MDxxLmxlbmd0aCYmIiIhPT1xLnZhbCgpJiYoYi5zZW5kVG9BREZGb3JtYXQ9cS52YWwoKSl9aWYoMCE9JCgiI2lzR2VuZXJpY1NlYXJjaFBhZ2UiKS5sZW5ndGgmJiJ0cnVlIj09PSQoIiNpc0dlbmVyaWNTZWFyY2hQYWdlIikudmFsKCkpe3N3aXRjaChhLm1haWxJRCl7Y2FzZSAibWVudVNlcnZpY2UiOmNhc2UgIm1lbnVDb250YWN0VXMiOmNhc2UgImhlYWRlclNlcnZpY2UiOnJldHVybn12YXIgYz0kKCIjQ1VTVE9NX1NFTkRfTEVBRCIpO2lmKDAhPT1jLmxlbmd0aCYmMCE9PWMudmFsKCkmJiJudWxsIiE9PWMudmFsKCkpe2IuZGVwYXJ0bWVudD1jLnZhbCgpLnRvVXBwZXJDYXNlKCk7dmFyIGY9JCgiI25ld0VtYWlsIiksaz0kKCIjbmV3QWRmRW1haWwiKSxtPSQoIiN0ZXh0U2VuZFRvRW1haWwiKSxuPSQoIiN0ZXh0U2VuZFRvRW1haWxBREYiKSx0PSQoIiNmaW5hbmNlRW1haWwiKSxyPSQoIiNmaW5hbmNlQWRmRW1haWwiKTsKc3dpdGNoKGMudmFsKCkpe2Nhc2UgIm5ldyI6ZChmLGspO2JyZWFrO2Nhc2UgInVzZWQiOmQobSxuKTticmVhaztjYXNlICJmaW5hbmNlIjpkKHQscil9fX19LGdldEpzb25PYmplY3Q6ZnVuY3Rpb24oKXthLnJlY2FwdGNoYS5zZXRSZXNwb25zZSgpOyIiPT1hLnRyaW0mJiQoIiNwb3B1cHRyaW0iKS5sZW5ndGgmJiJ7JFBPUFVQVFJJTX0iIT0kKCIjcG9wdXB0cmltIikudmFsKCkmJihhLnRyaW09JCgiI3BvcHVwdHJpbSIpLnZhbCgpKTt2YXIgYj17fSxkPWZ1bmN0aW9uKHope3RyeXtyZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KChudWxsIT1Db29raWVzLmdldCh6KSYmInVuZGVmaW5lZCIhPXR5cGVvZiBDb29raWVzLmdldCh6KT9lc2NhcGUoQ29va2llcy5nZXQoeikpOiIiKSsiIi5yZXBsYWNlKC9cKy9nLCIlMjAiKSl9Y2F0Y2goQyl7cmV0dXJuKG51bGwhPUNvb2tpZXMuZ2V0KHopJiYidW5kZWZpbmVkIiE9dHlwZW9mIENvb2tpZXMuZ2V0KHopP2VzY2FwZShDb29raWVzLmdldCh6KSk6CiIiKSsiIi5yZXBsYWNlKC9cKy9nLCIlMjAiKX19LGM9ZCgicmVsYW5jZUlEIiksZj1kKCJ1dG1fc291cmNlIiksaz1kKCJ1dG1fY2FtcGFpZ24iKSxtPWEuZGVjb2RlVVJMUmVjdXJzaXZlbHkoZCgidXRtX2tleXdvcmQiKSksbj1kKCJ1dG1fbGFuZGluZ19mb290ZXIiKSx0PWQoInV0bV9zb3VyY2VfcmV0YXJnZXRpbmciKSxyPWQoInV0bV9jYW1wYWlnbl9yZXRhcmdldGluZyIpLHY9IkVOR0xJU0giPT0kKCIjYWN0aXZlc2l0ZWxhbmd1YWdlIikudmFsKCk\/IktleXdvcmQiOiJNb3QtY2wmIzIzMzsiLHE9MDxtLmxlbmd0aD8iWyAiK3YrIjogIittKyJdIjoiIixwPTA8bi5sZW5ndGg\/IltEZXN0aW5hdGlvbjogIitkMmNtZWRpYS5nZXRIdHRwVGV4dCgpKyI6Ly8iK3dpbmRvdy5sb2NhdGlvbi5ob3N0K24rIl0iOiJbRGVzdGluYXRpb246ICIrZDJjbWVkaWEuZ2V0SHR0cFRleHQoKSsiOi8vIit3aW5kb3cubG9jYXRpb24uaG9zdCtuKyIgLl0iO3Y9ZCgibG9jX2ludGVyZXN0Iik7ZD0KZCgibG9jX3BoeXNpY2FsIik7dmFyIGg9dj9gbG9jX2ludGVyZXN0PSR7dn1gOiIiLGw9ZD9gbG9jX3BoeXNpY2FsPSR7ZH1gOiIiLHU9JCgiYm9keSIpLmhhc0NsYXNzKCJFTkdMSVNIIik\/Ik9yZ2FuaWMiOiJPcmdhbmlxdWUiO3E9MDxmLmxlbmd0aD9gJHtmfSAtICR7a30gJHtxfSAke2h9ICR7bH1gOnU7cD1kMmNtZWRpYS5jYXBpdGFsaXNlRmlyc3RMZXR0ZXJPZkV2ZXJ5V29yZChxKSsiICIrcDtsPSIiO2g9YS5nZXRTdG9ja051bWJlcigpOyIiIT1oJiYobD0iKFN0b2NrOiIrYS5nZXRTdG9ja051bWJlcigpKyIpIik7dT17bmV3OiJFTkdMSVNIIj09c2l0ZVBhZ2UubGFuZz8ibmV3IjoibmV1ZiIsbmV3aW52OiJFTkdMSVNIIj09c2l0ZVBhZ2UubGFuZz8ibmV3IjoibmV1ZiIsdXNlZDoiRU5HTElTSCI9PXNpdGVQYWdlLmxhbmc\/InVzZWQiOiJkJ29jY2FzaW9uIn07YS5ib2R5PWEuYm9keS5yZXBsYWNlKC97XCRVVE1ERVRBSUxTfS9nLHApO2EuYm9keT1hLmJvZHkucmVwbGFjZSgve1wkVVNFUk5BTUV9L2csCmEudXNlckZpcnN0TmFtZSk7YS5ib2R5PWEuYm9keS5yZXBsYWNlKC97XCRVU0VSUE9TVEFMfS9nLGEudXNlclBvc3RhbC50b1VwcGVyQ2FzZSgpKTthLmJvZHk9YS5ib2R5LnJlcGxhY2UoL3tcJFVUTURFVEFJTFN9L2csIiIpO2EuYm9keT1hLmJvZHkucmVwbGFjZSgve1wkRk9PVEVSfS9nLCIiKTthLmJvZHk9YS5ib2R5LnJlcGxhY2UoL3tcJEVNQUlMQlVJTERBTkRQUklDRX0vZyxhLmJhbmRwTGluaygpKTthLmJvZHk9YS5ib2R5LnJlcGxhY2UoL3tcJFNUT0NLTlVNQkVSTEFCRUx9L2csbCk7YS5ib2R5PWEuYm9keS5yZXBsYWNlKC97XCRTVE9DS05VTUJFUn0vZyxsKTthLmJvZHk9YS5ib2R5LnJlcGxhY2UoL3tcJFZFSElDTEVfQ09ORElUSU9OfS9nLHVbYS5jb25kaXRpb24udG9Mb3dlckNhc2UoKV0pO2lmKCIiIT09YS5ib2R5KXt2YXIgdz0kKCdpbnB1dFtkYXRhLWZvcnZhcj0iT1ZFUldSSVRURVJERUFMRVIiXScpLnZhbCgpJiYkKCdpbnB1dFtkYXRhLWZvcnZhcj0iT1ZFUldSSVRURVJERUFMRVIiXScpLmxlbmd0aD8KJCgnaW5wdXRbZGF0YS1mb3J2YXI9Ik9WRVJXUklUVEVSREVBTEVSIl0nKS52YWwoKToiIjtsPSIiIT0kKCdpbnB1dFtkYXRhLWZvcnZhcj0iREVBTEVSIl0nKS52YWwoKSYmJCgnaW5wdXRbZGF0YS1mb3J2YXI9IkRFQUxFUiJdJykubGVuZ3RoPyQoJ2lucHV0W2RhdGEtZm9ydmFyPSJERUFMRVIiXScpLnZhbCgpOiQoIiNoaWRkZW5EZWFsZXJOYW1lIikudmFsKCk7dz13IT1sJiYiIiE9dz93Omw7YS5kZWFsZXJOYW1lPWEuZGVhbGVyTmFtZT9hLmRlYWxlck5hbWU6d31hLmJvZHk9YS5ib2R5LnJlcGxhY2UoInskREVBTEVSTkFNRX0iLGEuZGVhbGVyTmFtZSk7YS5ib2R5PWEuYm9keS5yZXBsYWNlKCJ7JENVU1RPTVZFSElDTEVJTlRFUkVTVH0iLGEubWFrZSsiICIrYS5tb2RlbCsiICIrYS55ZWFyKTthLmxlYWRSZXF1ZXN0VHlwZSYmKGEuYm9keT1hLmJvZHkucmVwbGFjZUFsbCgieyRSRVFVRVNUfSIsYS5sZWFkUmVxdWVzdFR5cGUpLGEuc3ViamVjdD1hLnN1YmplY3QucmVwbGFjZUFsbCgieyRSRVFVRVNUfSIsCmEubGVhZFJlcXVlc3RUeXBlKSxhLmxlYWRSZXF1ZXN0VHlwZT0iIik7Ym9keUxvd2VyPWEuYm9keS50b0xvd2VyQ2FzZSgpO2Zvcih1PTA7LTE8Ym9keUxvd2VyLmluZGV4T2YoInJlbW92ZWVtcHR5Iik7KXtsPWJvZHlMb3dlci5pbmRleE9mKCJyZW1vdmVlbXB0eSIpO2lmKC0xPT1sKWJyZWFrO3JwbEVuZD1ib2R5TG93ZXIuaW5kZXhPZigiPGJyPiIsbCk7cnBsU3RhcnQ9Ym9keUxvd2VyLmxhc3RJbmRleE9mKCI8YnI+IixsKTtpZigtMT09cnBsRW5kfHwtMT09cnBsU3RhcnQpYnJlYWs7cnBsU3RyaW5nPWEuYm9keS5zdWJzdHJpbmcocnBsU3RhcnQscnBsRW5kKTthLmJvZHk9YS5ib2R5LnJlcGxhY2UocnBsU3RyaW5nLCIiKTtib2R5TG93ZXI9YS5ib2R5LnRvTG93ZXJDYXNlKCk7dSsrO2lmKDUwPHUpYnJlYWt9dT1hLmdldFZQRFVybEZyb21TdG9jaygpOzA9PXUudHJpbSgpLmxlbmd0aCYmKGw9JCgnaW5wdXRbbmFtZT0ic2VhcmNoZWR2ZWhpY2xlIl0nKS5maWx0ZXIoIjp2aXNpYmxlOmZpcnN0IiksCnU9bC5sZW5ndGg\/bC52YWwoKToiIik7YS5wYXltZW50VmVoaWNsZSYmMDxhLnBheW1lbnRWZWhpY2xlLmxlbmd0aCYmKHU9YS5wYXltZW50VmVoaWNsZSk7IiI9PWEuY2FyaWQmJiQoIiN0b3BjYXJpZCIpLmxlbmd0aCYmKGEuY2FyaWQ9JCgiI3RvcGNhcmlkIikudmFsKCkpOyIiPT1hLnZpbiYmJCgiI3Bob25ldmluIikubGVuZ3RoJiYoYS52aW49JCgiI3Bob25ldmluIikudmFsKCkpO2w9YS5ib2R5LmluZGV4T2YoIjxzcGFuIGlkPSdwaFNFQVJDSFZFSElDTEUnPiIpO2lmKC0xPGwpe3ZhciB4PWEuYm9keS5zdWJzdHIobCsyNykuaW5kZXhPZigiPC9zcGFuPiIpOy0xPHgmJihhLmJvZHk9YS5ib2R5LnN1YnN0cigwLGwpK3UrYS5ib2R5LnN1YnN0cihsK3grMjcrNykpfWEuYm9keT1hLmJvZHkucmVwbGFjZSgvPHNwYW4gaWQ9J3BoU0VBUkNIVkVISUNMRSc+L2csIiIpO2EuYm9keT1hLmJvZHkucmVwbGFjZSgvPFwvc3Bhbj4vZywiIik7YS5ib2R5PWEuYm9keS5yZXBsYWNlKC97XCRTRUFSQ0hFRFZFSElDTEV9L2csCnUpO2lmKCIxIj09JCgiI2hhc1ZCRENFbmFibGVkIikudmFsKCkpe2w9IiI7dT0wO3g9IiI7Q29va2llcy5nZXQoIkQyQ1VVSUQiKTtmb3IodmFyIHkgaW4gc2Vzc2lvblN0b3JhZ2UpaWYoMD09eS5pbmRleE9mKCJWRFBNVkJOUC0iKSl7dmFyIEI9c2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh5KTtCPj14JiYoeD1CLGw9eS5yZXBsYWNlKCJWRFBNVkJOUC0iLCIiKSl9aWYoIiI9PWwmJih4PXNlc3Npb25TdG9yYWdlLmdldEl0ZW0oImQyY19WRFBNViIpLG51bGwhPXgpKWZvcih5IGluIHg9SlNPTi5wYXJzZSh4KSx4KUI9eFt5XSwyPD1CJiZCPnUmJih1PUIsbD15KTsiIiE9bCYmLTE9PWEuYm9keS5pbmRleE9mKCJbVkJEQy1IT1RdIikmJi0xPT1hLmJvZHkuaW5kZXhPZigiW1ZCREMtTVlTXSIpJiYoeT13aW5kb3cubG9jYXRpb24ucHJvdG9jb2wrIi8vIit3aW5kb3cubG9jYXRpb24uaG9zdCtsLGEuYm9keSs9J1tWQkRDLUhPVF0gPGEgaHJlZj0iJyt5KyciPicreSsiPC9hPiIpfXk9JCgiI2N1cnJlbnRTdGF0dXMiKS52YWwoKTsKeT0idW5kZWZpbmVkIj09dHlwZW9mIHk\/InVzZWQiOnkudG9Mb3dlckNhc2UoKTtsPSQoIiNzZW5kRW1haWxUb0FsbERlYWxlcnMiKTtsPWwubGVuZ3RoJiYxPT1sLnZhbCgpO2w9JCgiI2hhc011bHRpcGxlRGVhbGVycyIpO2w9bC5sZW5ndGgmJjE9PWwudmFsKCk7bD0kKCIjdG9wY2FyaWQiKTtsPTA8bC5sZW5ndGg\/JCgiI3RvcGNhcmlkIikudmFsKCk6IiI7bD0idW5kZWZpbmVkIiE9dHlwZW9mICQoIiNicmFuZEVtYWlsQWRmT3ZlcnJpZGUiKS52YWwoKT8kKCIjYnJhbmRFbWFpbEFkZk92ZXJyaWRlIikudmFsKCk6IiI7dT0idW5kZWZpbmVkIiE9dHlwZW9mICQoIiNicmFuZEVtYWlsQWRmT3ZlcnJpZGUiKS52YWwoKT8kKCIjYnJhbmRFbWFpbEFkZk92ZXJyaWRlIikudmFsKCk6IiI7InVuZGVmaW5lZCIhPXR5cGVvZiAkKCIjbmV3U2VjdGlvbk92ZXJyaWRlIikudmFsKCkmJiQoIiNuZXdTZWN0aW9uT3ZlcnJpZGUiKS52YWwoKTsidW5kZWZpbmVkIiE9dHlwZW9mICQoIiNuZXdTZWN0aW9uRW1haWwiKS52YWwoKSYmCiQoIiNuZXdTZWN0aW9uRW1haWwiKS52YWwoKTsidW5kZWZpbmVkIiE9dHlwZW9mICQoIiNuZXdTZWN0aW9uQWRmRW1haWwiKS52YWwoKSYmJCgiI25ld1NlY3Rpb25BZGZFbWFpbCIpLnZhbCgpO3N3aXRjaCghMCl7Y2FzZSA1PGwubGVuZ3RoJiYibmV3Ij09eSYmIWEuaGFzU2VsZWN0ZWRNdWx0aUFkZHJlc3M6YS5zZW5kVG89bCxhLnNlbmRUb0FERkZvcm1hdD01PHUubGVuZ3RoP3U6bH1iLmxhbmd1YWdlPSQoIiNhY3RpdmVzaXRlbGFuZ3VhZ2UiKS52YWwoKTsiZnVuY3Rpb24iPT10eXBlb2YgY2xlYW5BbmRFbmNvZGVUZXh0PyhiLnN1YmplY3Q9Y2xlYW5BbmRFbmNvZGVUZXh0KGEuc3ViamVjdCksYi5ib2R5PWNsZWFuQW5kRW5jb2RlVGV4dChhLmJvZHkpKTooYi5zdWJqZWN0PSQuYmFzZTY0LmVuY29kZShhLnN1YmplY3QpLGIuYm9keT0kLmJhc2U2NC5lbmNvZGUoYS5ib2R5KSk7Y2xlYW5FbWFpbERlbGltaXRlcj1mdW5jdGlvbih6KXt2YXIgQz0iIjsidW5kZWZpbmVkIiE9dHlwZW9mIHomJgpudWxsIT16JiZ6Lmxlbmd0aCYmKEM9ei5zcGxpdCgiOyIpLmpvaW4oIiwiKSk7cmV0dXJuIEN9OyJ1c2VkY2Fycy5odG1sIj09JCgiI1BBR0VJRCIpLnZhbCgpJiYiTkVXIj09YS5nZXREZXAoKSYmYS5zZW5kVG89PSQoIiNTSVRFVVNFREVNQUlMIikudmFsKCkmJmEuc2VuZFRvQURGRm9ybWF0PT0kKCIjU0lURVVTRURFTUFJTEFERiIpLnZhbCgpJiYoYS5zZW5kVG89JCgiI1NJVEVORVdFTUFJTCIpLnZhbCgpLGEuc2VuZFRvQURGRm9ybWF0PSQoIiNTSVRFTkVXRU1BSUxBREYiKS52YWwoKSk7Yi5zZW5kVG89YS5zZW5kVG87Yi5zZW5kVG9BREZGb3JtYXQ9Y2xlYW5FbWFpbERlbGltaXRlcihhLnNlbmRUb0FERkZvcm1hdCk7Yi5zZWxlY3RlZFNlbmRUbz1hLnNlbGVjdGVkU2VuZFRvO2Iuc2VsZWN0ZWRTZW5kVG9BREZGb3JtYXQ9YS5zZWxlY3RlZFNlbmRUb0FERkZvcm1hdDtiLmVtYWlsTGlzdFN1ZmZpeD0iIjskKCIjc2l0ZWNvbXBpbGVpZCIpLmxlbmd0aCYmKGIuZW1haWxMaXN0U3VmZml4PQokKCIjc2l0ZWNvbXBpbGVpZCIpLnZhbCgpKTtiLmxlYWRJbnZva2VyPWEubGVhZEludm9rZXJ8fCJnZW5lcmljIjtiLmRpZ2l0YWxSZXRhaWxTSUQ9YS5kaWdpdGFsUmV0YWlsU0lEfHwiIjtiLmNvbnNlbnREZWFsZXI9YS5jb25zZW50RGVhbGVyO2IuY29uc2VudE9FTT1hLmNvbnNlbnRPRU07Yi51c2VyRW1haWw9YS51c2VyRW1haWw7Yi50cmFkZWluPWEudHJhZGVpbjtiLnBvcHVwZGl2PWEucG9wdXBkaXY7Yi51c2VyQXR0YWNobWVudFBhdGg9YS51c2VyQXR0YWNobWVudFBhdGg7Yi51c2VyRmlyc3ROYW1lPWEudXNlckZpcnN0TmFtZTtiLnVzZXJMYXN0TmFtZT1hLnVzZXJMYXN0TmFtZTtiLmxpY2Vuc2VudW09YS5saWNlbnNlbnVtO2IudXNlclBob25lPWEudXNlclBob25lO2IucGhvbmVWYWxpZGF0aW9uQXR0ZW1wdHM9YS5waG9uZVZhbGlkYXRpb25BdHRlbXB0cztiLnBob25lTWFuZGF0b3J5PWEucGhvbmVNYW5kYXRvcnk7Yi51c2VyUG9zdGFsPWEudXNlclBvc3RhbC50b1VwcGVyQ2FzZSgpfHwKYS5jb250YWN0WmlwLnRvVXBwZXJDYXNlKCk7Yi51c2VyQWRkcmVzcz1hLnVzZXJBZGRyZXNzfHxhLmNvbnRhY3RBZGRyZXNzO2IucHJvdmluY2U9YS5jb250YWN0UHJvdmluY2U7Yi5iaXJ0aGRhdGU9YS5iaXJ0aGRhdGU7Yi5zZW5kRnJvbT1hLnNlbmRGcm9tO2IubWFpbElEPWEubWFpbElEO2IuaXNDVEE9YS5pc0NUQTtiLmJ1dHRvblRleHQ9YS5idXR0b25UZXh0O2IuZnJvbVVSTD13aW5kb3cubG9jYXRpb24uaHJlZjtiLm1ha2U9YS5tYWtlfHwiIjtiLm1vZGVsPWEubW9kZWx8fCIiO2IudHJpbT1hLnRyaW18fCIiO2IudmluPWEudmlufHwiIjtiLnByaWNlPWEucHJpY2V8fCIiO2IueWVhcj1hLnllYXJ8fCIiO2IudmVoaWNsZVR5cGU9YS52ZWhpY2xlVHlwZXx8IiI7Yi5zdG9ja051bWJlcj1oO2IuY2FyaWQ9YS5jYXJpZHx8IiI7Yi5jb25kaXRpb249YS5jb25kaXRpb247Yi5pc21vYmlsZXNpdGU9YS5pc21vYmlsZXNpdGU7Yi5pc0FtcD0iTk8iO2IucmVmZXJlcj0kKCIjdG9wcmVmZXJlciIpLnZhbCgpOwpiLnNpdGVpZD0kKCIjdG9wc2l0ZWlkIikudmFsKCk7Yi5kZWFsZXJpZD1hLmRlYWxlcmlkfHwiIjtiLm9lbUNlcnRpZmljYXRpb249JCgiI29lbUNlcnRpZmljYXRpb24iKS52YWwoKXx8bnVsbDtiLnV0bV9zb3VyY2U9ZjtiLnJlbGFuY2VJRD1jO2IudXRtX2NhbXBhaWduPWs7Yi51dG1fa2V5d29yZD1tO2IudXRtX2xhbmRpbmc9bjtiLnV0bV9kZXRhaWxzPXE7Yi51dG1fc291cmNlX3JldGFyZ2V0aW5nPXQ7Yi51dG1fY2FtcGFpZ25fcmV0YXJnZXRpbmc9cjtiLmxvY19pbnRlcmVzdD12O2IubG9jX3BoeXNpY2FsPWQ7Yi5wb3B1cE9mZmVyVHlwZT1hLnBvcHVwT2ZmZXJUeXBlO2IuZnJvbUZhY2Vib29rPWEuZnJvbUZhY2Vib29rO2IuZGV0YWlsc0ZSPWEuY29uc2VudERldGFpbHNGUjtiLmRldGFpbHNFTj1hLmNvbnNlbnREZXRhaWxzRU47Yi5mcm9tQUE9YS5mcm9tQUE7Yi5vd25lcklEPWEub3duZXJJRDtiLmxlYWRUaXRsZVVJVGV4dD1hLmxlYWRUaXRsZVVJVGV4dDtiLnNtcz0KYS5zbXM7Yi5vbkFmdGVyTGVhZENyZWF0ZWQ9YS5vbkFmdGVyTGVhZENyZWF0ZWQ7InVuZGVmaW5lZCIhPT10eXBlb2YgY2xpZW50U3RvcmFnZSYmKCIiIT1hLnVzZXJGaXJzdE5hbWUmJmNsaWVudFN0b3JhZ2Uuc2V0KCJmaXJzdG5hbWUiLGEudXNlckZpcnN0TmFtZSksIiIhPWEudXNlckxhc3ROYW1lJiZjbGllbnRTdG9yYWdlLnNldCgibGFzdG5hbWUiLGEudXNlckxhc3ROYW1lKSwiIiE9YS51c2VyRW1haWwmJmNsaWVudFN0b3JhZ2Uuc2V0KCJlbWFpbCIsYS51c2VyRW1haWwpLCIiIT1hLnVzZXJQaG9uZSYmY2xpZW50U3RvcmFnZS5zZXQoInBob25lIixhLnVzZXJQaG9uZSkpO2IuY2hhdGJvdEJvb3N0SWQ9Z2V0Q29va2llRDJjKCJkMmNjaGF0Ym90aWQiKTtiLnN0eWxlaWQ9JCgiI3N0eWxlSWRJblVzZSIpLmxlbmd0aD8kKCIjc3R5bGVJZEluVXNlIikudmFsKCk6JCgiI2FjdGl2ZVN0eWxlSUQiKS5sZW5ndGg\/JCgiI2FjdGl2ZVN0eWxlSUQiKS52YWwoKToiIjsidW5kZWZpbmVkIiE9PQp0eXBlb2Ygd2luZG93LmFkcF9mb3VyZXllc19pZCYmd2luZG93LmFkcF9mb3VyZXllc19pZD8oYi5Vbml0ZVdlYnNpdGVDdXN0b21lcklkPXdpbmRvdy5hZHBfZm91cmV5ZXNfaWQsY29uc29sZS5sb2coIkQyVUQgLSBlbWFpbEhhbmRsZXIgSlMgcGFzc2VkIix3aW5kb3cuYWRwX2ZvdXJleWVzX2lkKSk6Y29uc29sZS5sb2coIkQyVUQgLSBlbWFpbEhhbmRsZXIgSlMgLSB3aW5kb3cuYWRwX2ZvdXJleWVzX2lkIGlmIHdhcyB0cmlnZ2VyZWQiLHdpbmRvdy5hZHBfZm91cmV5ZXNfaWQpO2Eub25BZnRlckxlYWRDcmVhdGVkJiYoYi5vbkFmdGVyTGVhZENyZWF0ZWQuZnJvbT0iIixhLnNlbmRUbz1hLnNlbmRUb3x8IiIsYz1hLnNlbmRUby5zcGxpdCgiOyIpLGNbMF0udHJpbSgpLmxlbmd0aD9iLm9uQWZ0ZXJMZWFkQ3JlYXRlZC5mcm9tPWNbMF0udHJpbSgpOihjPWEuc2VuZFRvQURGRm9ybWF0LnNwbGl0KCIsIiksY1swXS50cmltKCkubGVuZ3RoJiYoYi5vbkFmdGVyTGVhZENyZWF0ZWQuZnJvbT0KY1swXS50cmltKCkpKSk7Yi51c2VyQWdlbnQ9JCgiI3R4dFVzZXJBZ2VudCIpLnZhbCgpO2IuZ3JlY2FwdGNoYVJlc3BvbnNlVG9rZW49YS5ncmVjYXB0Y2hhUmVzcG9uc2VUb2tlbjtiLmNvbnRhY3RJRD1hLmNvbnRhY3RJRDtiLmNvbnRhY3ROQVM9YS5jb250YWN0TkFTO2IuY29udGFjdEJpcnRoPWEuY29udGFjdEJpcnRoO2IuZGVhbGVyTmFtZT1hLmRlYWxlck5hbWU\/YS5kZWFsZXJOYW1lOnc7Yi5hbGxvd19zaGFyZV9wZXJzb25hbF9kYXRhPWEuYWxsb3dfc2hhcmVfcGVyc29uYWxfZGF0YTtiLnByZWZlcnJlZF9jb250YWN0PWEucHJlZmVycmVkX2NvbnRhY3Q7Yi51dG1kZXRhaWxzVG9SZXBsYWNlPXA7IiIhPWEuZ2VvbG9jX3N0YXR1cyYmKGIuZ2VvbG9jX3N0YXR1cz1hLmdlb2xvY19zdGF0dXMsYi5nZW9sb2NfbGF0PWEuZ2VvbG9jX2xhdCxiLmdlb2xvY19sb25nPWEuZ2VvbG9jX2xvbmcsYi5nZW9sb2NfYWNjdXJhY3k9YS5nZW9sb2NfYWNjdXJhY3ksImZ1bmN0aW9uIj09CnR5cGVvZiBjbGVhbkFuZEVuY29kZVRleHQ\/KGIuZ2VvbG9jX3RyYWNrX3N0cj1jbGVhbkFuZEVuY29kZVRleHQoYS5nZW9sb2NfdHJhY2tfc3RyKSxiLmdlb2xvY19lbWFpbF9zdHI9Y2xlYW5BbmRFbmNvZGVUZXh0KGEuZ2VvbG9jX2VtYWlsX3N0cikpOihiLmdlb2xvY190cmFja19zdHI9JC5iYXNlNjQuZW5jb2RlKGEuZ2VvbG9jX3RyYWNrX3N0ciksYi5nZW9sb2NfZW1haWxfc3RyPSQuYmFzZTY0LmVuY29kZShhLmdlb2xvY19lbWFpbF9zdHIpKSk7IiIhPWEuY2FyMl9tYWtlJiYoYi5jYXIyX21ha2U9YS5jYXIyX21ha2UsYi5jYXIyX21vZGVsPWEuY2FyMl9tb2RlbCxiLmNhcjJfdHJpbT1hLmNhcjJfdHJpbSxiLmNhcjJfeWVhcj1hLmNhcjJfeWVhcixiLmNhcjJfY29sb3I9YS5jYXIyX2NvbG9yLGIuY2FyMl9vZG9tZXRlcj1hLmNhcjJfb2RvbWV0ZXIsYi5jYXIyX3Zpbj1hLmNhcjJfdmluLGIuY2FyMl90cmFuc21pc3Nvbj1hLmNhcjJfdHJhbnNtaXNzb24sYi5jYXIyX2RyaXZldHJhaW49CmEuY2FyMl9kcml2ZXRyYWluLGIuY2FyMl9mdWVsdHlwZT1hLmNhcjJfZnVlbHR5cGUpO2Iuc2VydmljZURhdGUxPWEuc2VydmljZURhdGUxfHwiIjtiLnNlcnZpY2VEYXRlMj1hLnNlcnZpY2VEYXRlMnx8IiI7Yi53YWl0aW5nT25TaXRlPWEud2FpdGluZ09uU2l0ZXx8IiI7Yi5jb21tZW50cz1hLmNvbW1lbnRzO2Euc2tpcEdldERlcD9iLmRlcGFydG1lbnQ9YS5kZXBhcnRtZW50OihiLmRlcGFydG1lbnQ9YS5nZXREZXAoKSxhLmRlcGFydG1lbnQ9YS5nZXREZXAoKSk7aWYoIlVTRUQiPT1iLmRlcGFydG1lbnQmJjA9PWEuZGVwYXJ0bWVudEJ5U3RvY2spe3ZhciBBPSQoJ2lucHV0W25hbWU9InNlYXJjaGVkdmVoaWNsZSJdJykuZmlsdGVyKCI6dmlzaWJsZTpmaXJzdCIpLnZhbCgpO2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgQSYmKEE9QS5zcGxpdCgiKFN0b2NrIiksQVsxXSkpe3ZhciBFPSJVU0VEIjtBPUFbMV0ucmVwbGFjZSgiKSIsIiIpLnJlcGxhY2UoIjoiLCIiKS5yZXBsYWNlKCIjIiwKIiIpLnRyaW0oKS50b0xvd2VyQ2FzZSgpOyQuYWpheCh7dHlwZToiR0VUIixhc3luYzohMSxkYXRhVHlwZToianNvbiIsdXJsOiIvanMvanNvbi91c2VkQnlQcmljZUFzYy5qc29uIixzdWNjZXNzOmZ1bmN0aW9uKHopeyQuZWFjaCh6LGZ1bmN0aW9uKEMsRCl7aWYoRC5zbi50b0xvd2VyQ2FzZSgpPT1BKXJldHVybiBFPSIxIj09RC5pc25ld3x8IjEiPT1ELmlzZGVtbz8iTkVXIjoiVVNFRCIsITF9KTthLmRlcGFydG1lbnRCeVN0b2NrPUV9fSl9fSIiIT09YS5kZXBhcnRtZW50QnlTdG9jayYmITEhPT1hLmRlcGFydG1lbnRCeVN0b2NrJiYoYi5kZXBhcnRtZW50PWEuZGVwYXJ0bWVudEJ5U3RvY2spOyFiLmRlcGFydG1lbnR8fCJuZXciPT1iLmRlcGFydG1lbnQudG9Mb3dlckNhc2UoKSYmInVzZWQiPT1iLmRlcGFydG1lbnQudG9Mb3dlckNhc2UoKT9iLmNvbmRpdGlvbj1iLmRlcGFydG1lbnQmJiJuZXciPT1iLmRlcGFydG1lbnQudG9Mb3dlckNhc2UoKT8iTmV3IjoiVXNlZCI6Yi5jb25kaXRpb249CiQoIiNjdXJyZW50U3RhdHVzIikubGVuZ3RoPyQoIiNjdXJyZW50U3RhdHVzIikudmFsKCk6InVua25vd24iO2IuZGVwYXJ0bWVudC50b0xvd2VyQ2FzZSgpIT1iLmNvbmRpdGlvbi50b0xvd2VyQ2FzZSgpJiYoYi5jb25kaXRpb249Yi5kZXBhcnRtZW50LnRvTG93ZXJDYXNlKCkpO251bGwhPWEuY3JlZGl0RGF0YSYmKGIuY3JlZGl0RGF0YT1hLmNyZWRpdERhdGEpO251bGwhPWEuZGVhbGVyQXBwb2ludG1lbnREYXRhJiYoYi5kZWFsZXJBcHBvaW50bWVudERhdGE9YS5kZWFsZXJBcHBvaW50bWVudERhdGEpOzA8JCgiI3B1cmNoYXNlX2ludGVudF9hbnN3ZXIiKS5sZW5ndGgmJihiLnB1cmNoYXNlX2ludGVudD1hLnB1cmNoYXNlX2ludGVudCxiLnB1cmNoYXNlX2ludGVudF9hbnN3ZXI9JCgiI3B1cmNoYXNlX2ludGVudF9hbnN3ZXIiKS52YWwoKSxiLnB1cmNoYXNlX2ludGVudF9ub19hbnN3ZXI9JCgiI3B1cmNoYXNlX2ludGVudF9ub19hbnN3ZXIiKS52YWwoKSk7Yi5wdXJjaGFzZV9pbnRlbnQ9CmEuYXNrUHVyY2hhc2VJbnRlbnQ\/Yi5wdXJjaGFzZV9pbnRlbnQ\/Yi5wdXJjaGFzZV9pbnRlbnQ6LTE6ITE7JCgiI2N1cnJlbnRJdGVtVHlwZSIpLmxlbmd0aD9iLml0ZW1UeXBlPSQoIiNjdXJyZW50SXRlbVR5cGUiKS52YWwoKTpiLml0ZW1UeXBlPSIiO2EuYm9keSs9Ilx4M2MhLS0gSlMgVW5pcXVlIGlkOiIrTWF0aC5yb3VuZCg1RTMqTWF0aC5yYW5kb20oKSkrIi0tXHgzZSI7cmV0dXJuIGJ9LGdldERlcDpmdW5jdGlvbigpe3ZhciBiPShuZXcgRGF0ZSkuZ2V0RnVsbFllYXIoKSxkPS9cYihuZXd8bmV1ZnxuZXVmc3xjb25maWd1cmF0aW9uLWV0LXByaXh8YnVpbGQtYW5kLXByaWNlfGRlbW9zfGRlbW9uc3RyYXRldXJzfGNsZWFyYW5jZSlcYi8udGVzdCh3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUpLGM9L1xiKHVzZWR8b2NjYXNpb24pXGIvLnRlc3Qod2luZG93LmxvY2F0aW9uLnBhdGhuYW1lKTtpZigidW5kZWZpbmVkIiE9PXR5cGVvZiB3aW5kb3cuZ1VzZWRTcnBBcHB6JiYidW5kZWZpbmVkIiE9PQp0eXBlb2Ygd2luZG93LmdVc2VkU3JwQXBwei5maWx0ZXJJbnRlcmZhY2UmJiJmdW5jdGlvbiI9PT10eXBlb2Ygd2luZG93LmdVc2VkU3JwQXBwei5maWx0ZXJJbnRlcmZhY2UuZ2V0Q3VycmVudEZpbHRlclN0YXRlKXt2YXIgZj13aW5kb3cuZ1VzZWRTcnBBcHB6LmZpbHRlckludGVyZmFjZS5nZXRDdXJyZW50RmlsdGVyU3RhdGUoImNhdGVnb3J5Iik7aWYoITEhPT1mJiZmLmxlbmd0aClpZigxPT09Zi5sZW5ndGgmJjM9PT1mWzBdLnZhbHVlKWQ9ITAsYz0hMTtlbHNle3ZhciBrLG09MCxuPTA7Zm9yKGs9MDtrIT09Zi5sZW5ndGg7aysrKWZba10ubnVtPm0mJihtPWZba10ubnVtLG49ZltrXS52YWx1ZSk7MT09PW58fDI9PT1uPyhkPSExLGM9ITApOjM9PT1uJiYoZD0hMCxjPSExKX19Zj0wO2s9JCgnaW5wdXRbbmFtZT0ic2VhcmNoZWR2ZWhpY2xlIl0nKS5maWx0ZXIoIjpyZWFsbHlWaXNpYmxlOmZpcnN0Iik7MDxrLmxlbmd0aCYmKGs9ay52YWwoKS5tYXRjaCgvMTlbMC05XXsyfXwyMFswLTldezJ9L2cpLApudWxsIT1rJiYoZj1wYXJzZUludChrWzBdKSkpO2Z8fChmPWEueWVhcik7c3dpdGNoKGEubWFpbElEKXtjYXNlICJUaXJlc1JlcXVlc3QiOmNhc2UgIlBhcnRzUmVxdWVzdCI6cmV0dXJuIlBBUlRTIjtjYXNlICJTZXJ2aWNlUmVxdWVzdCI6Y2FzZSAiUmVjYWxscyI6Y2FzZSAiQm9keVNob3AiOmNhc2UgIm1lbnVTZXJ2aWNlIjpjYXNlICJoZWFkZXJTZXJ2aWNlIjpjYXNlICJFc3RoZXRpY1JlcXVlc3QiOnJldHVybiJTRVJWSUNFIjtjYXNlICJDcmVkaXRSZXF1ZXN0IjpjYXNlICJDcmVkaXRSZXF1ZXN0TW9iaWxlIjpjYXNlICJEZWFsZXJUcmFjayI6Y2FzZSAiQ3JlZGl0TXVsdGlzdGVwUmVxdWVzdCI6Y2FzZSAiQ3JlZGl0TXVsdGlzdGVwUmVxdWVzdDJuZENoYW5jZSI6Y2FzZSAiQ3JlZGl0TXVsdGlzdGVwUmVxdWVzdEluc3RhbnQiOmNhc2UgIkNyZWRpdFNjb3JlIjpjYXNlICJDcmVkaXRBcHBDYXJkIjpyZXR1cm4iRklOQU5DRSI7Y2FzZSAiSm9iT2ZmZXIiOnJldHVybiJIUiI7CmNhc2UgIm1lbnVDb250YWN0VXMiOmlmKCIiIT09YS5kZXBhcnRtZW50KXJldHVybiBhLmRlcGFydG1lbnQudG9VcHBlckNhc2UoKTtpZigidW5kZWZpbmVkIiE9PXR5cGVvZiBtYWlsUXVpY2tFbWFpbC5kZXBhcnRtZW50JiYiIiE9PW1haWxRdWlja0VtYWlsLmRlcGFydG1lbnQpcmV0dXJuIG1haWxRdWlja0VtYWlsLmRlcGFydG1lbnQudG9VcHBlckNhc2UoKX1pZigwPGYpe2lmKGMmJmY+PWIrMSlyZXR1cm4iTkVXIjtpZighZCYmIWMpe2lmKGY+PWItMSlyZXR1cm4iTkVXIjtpZihmPGItMSlyZXR1cm4iVVNFRCJ9fXJldHVybiJjYXJkZXRhaWwuaHRtbCI9PSQoIiNQQUdFSUQiKS52YWwoKT8kKCIjZGVmYXVsdERlcGFydG1lbnQiKS52YWwoKTpjPyJVU0VEIjpkPyJORVciOiIiIT09YS5kZXBhcnRtZW50P2EuZGVwYXJ0bWVudDoidW5kZWZpbmVkIiE9dHlwZW9mICQoIiNwb3B1cERlcGFydG1lbnQiKS5hdHRyKCJpZCIpJiYkKCIjcG9wdXBEZXBhcnRtZW50IikudmFsKCkubGVuZ3RoPwokKCIjcG9wdXBEZXBhcnRtZW50IikudmFsKCk6InVuZGVmaW5lZCIhPXR5cGVvZiAkKCIjZGVmYXVsdERlcGFydG1lbnQiKS5hdHRyKCJpZCIpJiYkKCIjZGVmYXVsdERlcGFydG1lbnQiKS52YWwoKS5sZW5ndGg\/JCgiI2RlZmF1bHREZXBhcnRtZW50IikudmFsKCk6IlVTRUQifSxyZWFkeVRvU2VuZDpmdW5jdGlvbigpe3ZhciBiPWEuY3JlYXRlQ2hlY2tzdW0oKTtpZihhLmxhc3RDaGVja3N1bT09YikiZnVuY3Rpb24iPT10eXBlb2YgYS5vbkR1cGxpY2F0ZVNlbmQ\/YS5vbkR1cGxpY2F0ZVNlbmQuY2FsbCgpOiJ1bmRlZmluZWQiIT09dHlwZW9mIGRlYnVnJiZkZWJ1ZygiQ1JDIE1hdGNoIixhLmxhc3RDaGVja3N1bSxiKTtlbHNle2EubGFzdENoZWNrc3VtPWI7JCgnaW5wdXRbZGF0YS1mb3J2YXI9Ik9WRVJXUklUVEVSREVBTEVSIl0nKS5sZW5ndGgmJiIiIT0kKCdpbnB1dFtkYXRhLWZvcnZhcj0iT1ZFUldSSVRURVJERUFMRVIiXScpLnZhbCgpJiYkKCdpbnB1dFtkYXRhLWZvcnZhcj0iREVBTEVSIl0nKS5sZW5ndGgmJgokKCdpbnB1dFtkYXRhLWZvcnZhcj0iT1ZFUldSSVRURVJERUFMRVIiXScpLnZhbCgpIT0kKCdpbnB1dFtkYXRhLWZvcnZhcj0iREVBTEVSIl0nKS52YWwoKSYmKGI9JCgiYm9keSIpLmhhc0NsYXNzKCJGUkVOQ0giKT8iQ29uY2Vzc2lvbiBv77+9IGVzdCBzaXR177+9IGxlIHbvv71oaWN1bGU6ICI6IkRlYWxlciB3aGVyZSB0aGUgdmVoaWNsZSBpcyBsb2NhdGVkOiAiLGIrPSQoJ2lucHV0W2RhdGEtZm9ydmFyPSJPVkVSV1JJVFRFUkRFQUxFUiJdJykudmFsKCksYS5ib2R5PWEuYm9keS5yZXBsYWNlKCJ7JERFQUxFUl9TRU5EVE99IixiKSk7MDwkKCIjaXNtb2JpbGUiKS5sZW5ndGgmJihhLmlzbW9iaWxlc2l0ZT0iWUVTIik7aWYoMD09YS5zdWJqZWN0Lmxlbmd0aHx8MD09YS5ib2R5Lmxlbmd0aClyZXR1cm4hMTthLmluamVjdEN0YUNvbXBsZXRlZERhdGEoKTtqc29uT2JqZWN0PWEuZ2V0SnNvbk9iamVjdCgpO2EuaWdub3JlQ2FwdGNoYXx8YS5yZWNhcHRjaGEucmVzZXRUb2tlbigpOwpiPW51bGw7Yj1KU09OLnN0cmluZ2lmeShqc29uT2JqZWN0KTt2YXIgZD1hLnBvcHVwT2ZmZXJUeXBlO2I9e2pzb246Yn07aWYoYS5wYXJ0aWFsKWIucGFydGlhbD0hMDtlbHNleyJ1bmRlZmluZWQiIT10eXBlb2YgZ3RhZyYmd2luZG93LmQyY19hd2NJZCYmd2luZG93LmQyY19hd2NMYWJlbCYmKCJsaXZlIj09ZGVwbG95bWVudFR5cGUudG9Mb3dlckNhc2UoKT9ndGFnKCJldmVudCIsImNvbnZlcnNpb24iLHtzZW5kX3RvOmQyY19hd2NJZCsiLyIrZDJjX2F3Y0xhYmVsfSk6Y29uc29sZS5sb2coImd0YWcoJ2V2ZW50JywnY29udmVyc2lvbicsIHsgJ3NlbmRfdG8nOiAiK2QyY19hd2NJZCsiLyIrZDJjX2F3Y0xhYmVsKyIgfSk7IikpO3ZhciBjPXttYWlsSUQ6YS5tYWlsSUQsbWFrZTphLm1ha2UsbW9kZWw6YS5tb2RlbCx5ZWFyOmEueWVhcix2aW46YS52aW4sY29uZGl0aW9uOmEuY29uZGl0aW9uLGRlcGFydG1lbnQ6YS5kZXBhcnRtZW50LHRyYWRlaW46YS50cmFkZWluLHBvcHVwT2ZmZXJUeXBlOmEucG9wdXBPZmZlclR5cGUsCmJvZHlUeXBlOmEudmVoaWNsZVR5cGUsc2FsZXNEZXB0OmEuc2FsZXNEZXB0LHBvcHVwRGl2OmEucG9wdXBkaXYsaXNDVEE6YS5pc0NUQSxidXR0b25UZXh0OmEuYnV0dG9uVGV4dH07alF1ZXJ5KCJib2R5IikudHJpZ2dlcigiZW1haWxIYW5kbGVyLnN1Ym1pdCIsYyl9JCgiLnVpLWxvYWRlci1iYWNrZ3JvdW5kIikuc2hvdygpO3NldFRpbWVvdXQoZnVuY3Rpb24oKXskKCIudWktbG9hZGVyLWJhY2tncm91bmQiKS5oaWRlKCl9LDVFMyk7JCgnaW5wdXRbbmFtZT0ibGVhZF9kZXBhcnRtZW50Il0nKS52YWwoanNvbk9iamVjdC5kZXBhcnRtZW50KTskKCdpbnB1dFtuYW1lPSJsZWFkVHlwZSJdJykudmFsKGEuc3ViamVjdC5yZXBsYWNlKC9bXG5ccl0vZywiICIpKTsiIiE9YS5sZWFkVGl0bGVUZXh0JiYoJCgnaW5wdXRbbmFtZT0ibGVhZFR5cGUiXScpLnZhbChhLmxlYWRUaXRsZVRleHQucmVwbGFjZSgvW1xuXHJdL2csIiAiKSksYS5sZWFkVGl0bGVUZXh0PSIiKTskKCdpbnB1dFtuYW1lPSJwYWdlSUQiXScpLnZhbCgkKCIjUEFHRUlEIikudmFsKCkpOwokKCdpbnB1dFtuYW1lPSJjdXJyZW50VVJMIl0nKS52YWwod2luZG93LmxvY2F0aW9uLmhyZWYpOyQoJ2lucHV0W25hbWU9ImlzRnVsbFdpZHRoIl0nKS52YWwoJCgiI2lzRnVsbFdpZHRoUGFnZU5ld1ZEUCIpLnZhbCgpKTskKCdpbnB1dFtuYW1lPSJkZWFsZXJOYW1lIl0nKS52YWwoJCgiI25ld1ZEUERlYWxlck5hbWUiKS52YWwoKSk7JCgnaW5wdXRbbmFtZT0iYnV0dG9uUG9zaXRpb24iXScpLnZhbCgkKCIjbmV3VkRQQnV0dG9uUG9zaXRpb24iKS52YWwoKSk7JCgnaW5wdXRbbmFtZT0iaXNNb2JpbGVOZXdWRFAiXScpLnZhbCgkKCIjaXNtb2JpbGUiKS52YWwoKSk7JCgnaW5wdXRbbmFtZT0iaXNDb25maXJtUG9wdXAiXScpLnZhbCgwKTsiY3JlZGl0U2NvcmVDb25maXJtUG9wdXBDb250YWluZXIiPT1hLnBvcHVwZGl2JiYkKCdpbnB1dFtuYW1lPSJpc0NvbmZpcm1Qb3B1cCJdJykudmFsKDEpOyQoJ2lucHV0W25hbWU9ImNvbmZpcm1fZW1haWwiXScpLnZhbChhLnVzZXJFbWFpbCk7CiQoJ2lucHV0W25hbWU9ImNvbmZpcm1fZmlyc3RfbmFtZSJdJykudmFsKGEudXNlckZpcnN0TmFtZSk7JCgnaW5wdXRbbmFtZT0iY29uZmlybV9sYXN0X25hbWUiXScpLnZhbChhLnVzZXJMYXN0TmFtZSk7JCgnaW5wdXRbbmFtZT0iY29uZmlybV9waG9uZV9udW1iZXIiXScpLnZhbChhLnVzZXJQaG9uZSk7Zm9ybUZpbGwuc2F2ZSh7ZW1haWw6YS51c2VyRW1haWwsZmlyc3ROYW1lOmEudXNlckZpcnN0TmFtZSxsYXN0TmFtZTphLnVzZXJMYXN0TmFtZSxwaG9uZTphLnVzZXJQaG9uZSxwb3N0YWw6YS51c2VyUG9zdGFsfSk7JC5hamF4KHt0eXBlOiJQT1NUIix1cmw6Ii9tYWlsL3NlbmRNYWlsRXgucGhwIixkYXRhOmIsYmVmb3JlU2VuZDpmdW5jdGlvbihmKXtmJiZmLm92ZXJyaWRlTWltZVR5cGUmJmYub3ZlcnJpZGVNaW1lVHlwZSgiYXBwbGljYXRpb24vanNvbjtjaGFyc2V0PVVURi04Iik7dHJ5e2xldCBrPSQoIm1ldGFbbmFtZT0nY3NyZi1kb21haW4tY2hlY2snXSIpO2subGVuZ3RoJiYKZi5zZXRSZXF1ZXN0SGVhZGVyKCJjc3JmLWRvbWFpbi1jaGVjayIsay5hdHRyKCJjb250ZW50IikpfWNhdGNoKGspe2NvbnNvbGUuZXJyb3IoZil9fSxzdWNjZXNzOmZ1bmN0aW9uKGYpe2EubG9nRm9ybVJlcXVlc3QoIkZvcm1TdWJtaXR0ZWQiLGEubWFpbElELGQpO2EucGFydGlhbD0hMTthLmxhc3RDaGVja3N1bT0hMTt2YXIgaz0iIjtrPSJzdHJpbmciPT10eXBlb2YgZj9KU09OLnBhcnNlKGYpOmY7YS5fX2xhc3RSZXR1cm49aztpZigib2JqZWN0Ij09dHlwZW9mIGt8fCJ1bmRlZmluZWQiIT10eXBlb2Ygay5sZWFkaWQpYS5fX2xlYWRpZD1rLmxlYWRpZDsiZnVuY3Rpb24iIT10eXBlb2YgYS5jYWxsYmFjayYmKGEuY2FsbGJhY2s9ZnVuY3Rpb24oKXt9KTtqUXVlcnkoImJvZHkiKS50cmlnZ2VyKCJlbWFpbEhhbmRsZXIuZW1haWxTZW50Iix7bWFpbElEOmEubWFpbElELG1ha2U6YS5tYWtlLG1vZGVsOmEubW9kZWwseWVhcjphLnllYXIsdmluOmEudmluLGNvbmRpdGlvbjphLmNvbmRpdGlvbiwKZGVwYXJ0bWVudDphLmRlcGFydG1lbnQsdHJhZGVpbjphLnRyYWRlaW4sc3VjY2VzczoiU1VDQ0VTUyI9PT1rLnN0YXR1cyxkZXRhaWw6e2NvbmZpcm1fZmlyc3RfbmFtZTphLnVzZXJGaXJzdE5hbWUsY29uZmlybV9sYXN0X25hbWU6YS51c2VyTGFzdE5hbWUsY29uZmlybV9lbWFpbDphLnVzZXJFbWFpbCxjb25maXJtX3Bob25lX251bWJlcjphLnVzZXJQaG9uZSx5ZWFyOmEueWVhcixtYWtlOmEubWFrZSxtb2RlbDphLm1vZGVsLGlkOmsubGVhZGlkLHZpbjphLnZpbixjb25kaXRpb246YS5jb25kaXRpb24sdmVyc2lvbjphLnZlcnNpb258fCIiLE5JVjphLnZpbix0cmltOmEudHJpbSxsZWFkVHlwZTphLmxlYWRUeXBlfHwiIixtYWlsSWQ6YS5tYWlsSUR9fSk7IlNVQ0NFU1MiPT1rLnN0YXR1cz8oYS5jYWxsYmFjayghMCksYS5tYWluUHJvbW8mJihmPW5ldyBDdXN0b21FdmVudCgidHJhY2tzdGVwLmNvbXBsZXRlIix7ZGV0YWlsOntzdGVwSWQ6Ik1haW5Qcm9tb0J0biJ9fSksZG9jdW1lbnQuZGlzcGF0Y2hFdmVudChmKSkpOgphLmNhbGxiYWNrKCExKTthLmNhbGxiYWNrPW51bGx9LGZhaWx1cmU6ZnVuY3Rpb24oZil7YS5sb2dGb3JtUmVxdWVzdCgiRm9ybVN1Ym1pdHRlZEVtYWlsTm90U2VudCIsYS5tYWlsSUQsZCk7YWxlcnQoc2F2ZUhhbmRsZXIuZmFpbE1lc3NhZ2UrIlxuIitmKX0sc3RhdHVzQ29kZTp7NDA0OmZ1bmN0aW9uKCl7YWxlcnQoInBhZ2Ugbm90IGZvdW5kIil9fX0pO2EucG9wdXBPZmZlclR5cGU9IiJ9fSxpbmplY3RDdGFDb21wbGV0ZWREYXRhOmZ1bmN0aW9uKCl7bGV0IGI9IiIsZD0iIjt2YXIgYz0iIixmPWdldENvb2tpZUQyYygiYmFuZHBfY29uZmlnIiksaz0idW5kZWZpbmVkIiE9PXR5cGVvZiBmJiZudWxsIT09Zj9KU09OLnBhcnNlKGRlY29kZVVSSUNvbXBvbmVudChmKSk6SlNPTi5wYXJzZSgie30iKTtmPShtLG4pPT57bj1ufHwhMTtsZXQgdD1tLm9wdGlvbnMucmVkdWNlKCh3LHgpPT53K2Ake3h9PGJyPmAsIiIpLHI9IkVOR0xJU0giPT0kKCIjYWN0aXZlc2l0ZWxhbmd1YWdlIikudmFsKCk\/CiJWZWhpY2xlIGRldGFpbHMiOiJWw6loaWN1bGUgY29uZmlndXLDqSIsdj0iRU5HTElTSCI9PSQoIiNhY3RpdmVzaXRlbGFuZ3VhZ2UiKS52YWwoKT8iRmluYW5jaW5nIGRldGFpbHMiOiJEw6l0YWlscyBkdSBmaW5hbmNlbWVudCIscSxwLGg7bj1uPyIiOmAKCQkJCQkJPHU+JHt2fTo8L3U+PGJyPgoJCQkJCQkke251bGw9PW0\/dm9pZCAwOm51bGw9PShxPW0ucGF5bWVudCk\/dm9pZCAwOnEudG90YWx9PGJyPgoJCQkJCQkke251bGw9PW0\/dm9pZCAwOm51bGw9PShwPW0ucGF5bWVudCk\/dm9pZCAwOnAucmF0ZX08YnI+CgkJCQkJCSR7bnVsbD09bT92b2lkIDA6bnVsbD09KGg9bS5wYXltZW50KT92b2lkIDA6aC5hbW91bnR9PGJyPjxicj4KCQkJCQlgO2xldCBsLHU7cmV0dXJuYAoJCQkJCTx1PiR7cn06PC91Pjxicj4KCQkJCQkke251bGw9PW0\/dm9pZCAwOm0ubW9kZWx9PGJyPgoJCQkJCUV4dDogJHsobnVsbD09bT92b2lkIDA6bnVsbD09KGw9bS5jb2xvcnMpP3ZvaWQgMDpsLmV4dCl8fCIifSwgSW50OiAkeyhudWxsPT1tP3ZvaWQgMDpudWxsPT0odT1tLmNvbG9ycyk\/dm9pZCAwOnUuaW50KXx8IiJ9PGJyPgoJCQkJCSR7KG51bGw9PW0\/dm9pZCAwOm0uZHJpdmVUcmFpbil8fCIifTxicj4KCQkJCQkke3R9PGJyPgoJCQkJCSR7bn0KCQkJCWB9O2suYmFuZHAmJihiPWYoay5iYW5kcCkucmVwbGFjZSgvKFx0fFxuKSovZywiIikpO2lmKENvb2tpZXMuZ2V0KCJjdGFfZGF0YV92YWxpZCIpKXtjPUpTT04ucGFyc2UoX2xvY2FsU3RvcmFnZUdldCgicmV0YWlsX3RyYWNrX2RhdGEiKXx8Int9Iik7az0hIWMucGF5bWVudDtjLmJhbmRwJiYoYy5iYW5kcC5vcHRpb25zPWMuYmFuZHAub3B0aW9uc3x8W10sYj1mKGMuYmFuZHAsaykpO2lmKGspe2xldCBtLG4sdDtkPWAKCQkJCQkJPHU+JHsiRU5HTElTSCI9PSQoIiNhY3RpdmVzaXRlbGFuZ3VhZ2UiKS52YWwoKT8iVmVoaWNsZSBkZXRhaWxzIjoiRMOpdGFpbHMgZHUgZmluYW5jZW1lbnQifTo8L3U+PGJyPgoJCQkJCQkke251bGw9PWM\/dm9pZCAwOm51bGw9PShtPWMucGF5bWVudCk\/dm9pZCAwOm0ubGlzdFByaWNlfTxicj4KCQkJCQkJJHtudWxsPT1jP3ZvaWQgMDpudWxsPT0obj1jLnBheW1lbnQpP3ZvaWQgMDpuLnJhdGV9PGJyPgoJCQkJCQkke251bGw9PWM\/dm9pZCAwOm51bGw9PSh0PWMucGF5bWVudCk\/dm9pZCAwOnQucGF5bWVudH08YnI+CgkJCQkJYH1jPSJcblx0XHRcdFx0XHQ8YnI+XG5cdFx0XHRcdFx0PGJyPlxuXHRcdFx0XHRcdDx1PjxzdHJvbmc+VHJhbnNhY3Rpb24gQnVpbGRlcjo8L3N0cm9uZz48L3U+XG5cblx0XHRcdFx0In1pZihifHxkKWEuYm9keSs9KGMrYAoJCQkJCTxicj4KCQkJCQk8YnI+CgkJCQkJJHtifQoJCQkJCSR7ZH0KCQkJCWApLnJlcGxhY2UoL1xyP1xufFxyL2csIiIpfSxkZWNvZGVVUkxSZWN1cnNpdmVseTpmdW5jdGlvbihiKXtyZXR1cm4tMSE9Yi5pbmRleE9mKCIlIik\/YS5kZWNvZGVVUkxSZWN1cnNpdmVseShkZWNvZGVVUklDb21wb25lbnQodW5lc2NhcGUoYikpKTpifSx2YWxpZGF0ZUVtYWlsOmZ1bmN0aW9uKGIpe3JldHVybiAkLmFqYXgoe3R5cGU6IkdFVCIsdXJsOiIvYWpheC92YWxpZGF0ZUVtYWlsQWNjb3VudD93c3dpZHRoPTAmZW1haWw9IitiLGFzeW5jOiExfSl9LGdldFVVSUQ6ZnVuY3Rpb24oKXtyZXR1cm4idW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdy5hY3RpdmVQcm9maWxlSUQmJm51bGwhPXdpbmRvdy5hY3RpdmVQcm9maWxlSUQ\/d2luZG93LmFjdGl2ZVByb2ZpbGVJRDoidW5kZWZpbmVkIiE9dHlwZW9mIGFjdGl2ZVVzZXJQcm9maWxlTW5nJiZudWxsIT1hY3RpdmVVc2VyUHJvZmlsZU1uZy51aWQ\/YWN0aXZlVXNlclByb2ZpbGVNbmcudWlkOgoidW5kZWZpbmVkIiE9dHlwZW9mIENvb2tpZXMmJiJ1bmRlZmluZWQiIT1Db29raWVzLmdldCgidXVpZCIpJiZudWxsIT1Db29raWVzLmdldCgidXVpZCIpP0Nvb2tpZXMuZ2V0KCJ1dWlkIik6IiJ9LHNldENvbnRhY3RJbmZvOmZ1bmN0aW9uKCl7aWYoInVuZGVmaW5lZCIhPT10eXBlb2YgJC5mbi5nb29nbGVQbGFjZXMpe3ZhciBiPSQoJ2lucHV0W2RhdGEtZ29vZ2xlLXBsYWNlcz0idHJ1ZSJdJyk7MCE9Yi5sZW5ndGgmJihiPWIuZ29vZ2xlUGxhY2VzKCJnZXRBZGRyZXNzIiksIiIhPWIuY2l0eSYmIiI9PWEuY29udGFjdENpdHkmJihhLmNvbnRhY3RDaXR5PWIuY2l0eS5sb25nX25hbWUpLCIiIT1iLnN0cmVldCYmIiIhPWIuc3RyZWV0X251bWJlciYmIiI9PWEuY29udGFjdEFkZHJlc3MmJihhLmNvbnRhY3RBZGRyZXNzPWIuc3RyZWV0X251bWJlci5sb25nX25hbWUrIiAiK2Iuc3RyZWV0LmxvbmdfbmFtZSksIiIhPWIucHJvdmluY2UmJiIiPT1hLmNvbnRhY3RQcm92aW5jZSYmKGEuY29udGFjdFByb3ZpbmNlPQpiLnByb3ZpbmNlLnNob3J0X25hbWUpLCIiIT1iLnBvc3RhbCYmIiI9PWEuY29udGFjdFppcCYmKGEuY29udGFjdFppcD1iLnBvc3RhbC5sb25nX25hbWUpKX19LGdldExvbmdEYXRlVG9TaG9ydEZvcm1hdDpmdW5jdGlvbihiKXtpZigiIj09YilyZXR1cm4gYjtiPWIudG9Mb3dlckNhc2UoKTt2YXIgZD17amFudmllcjoiamFudWFyeSIsImbDqXZyaWVyIjoiZmVicnVhcnkiLG1hcnM6Im1hcmNoIixhdnJpbDoiYXByaWwiLG1haToibWF5IixqdWluOiJqdW5lIixqdWlsbGV0OiJqdWx5IiwiYW\/Du3QiOiJhdWd1c3QiLHNlcHRlbWJyZToic2VwdGVtYmVyIixvY3RvYnJlOiJvY3RvYmVyIixub3ZlbWJyZToibm92ZW1iZXIiLCJkw6ljZW1icmUiOiJkZWNlbWJlciJ9O2I9Yi5yZXBsYWNlKC9cYlxTK1xiL2lnLGZ1bmN0aW9uKGMpe3ZhciBmPWMudG9Mb3dlckNhc2UoKTtyZXR1cm4gZFtmXT9kW2ZdOmN9KTtyZXR1cm4obmV3IERhdGUoYikpLmZvcm1hdCgieXl5eS1NTS1kZCIpfSxnZXRFbWFpbENvbnNlbnQ6ZnVuY3Rpb24oYil7dmFyIGQ9Cm5ldyBEYXRlO2Euc2V0Q29udGFjdEluZm8oKTt2YXIgYz1hLmNvbnRhY3RCaXJ0aD9hLmNvbnRhY3RCaXJ0aDphLmdldExvbmdEYXRlVG9TaG9ydEZvcm1hdChhLmJpcnRoZGF0ZSk7JCgiLnVpLWxvYWRlci1iYWNrZ3JvdW5kIikuc2hvdygpO2dldERhdGE9e2VtYWlsOmEudXNlckVtYWlsLHBob25lOmEudXNlclBob25lLG5hbWU6YS51c2VyRmlyc3ROYW1lKyIgIithLnVzZXJMYXN0TmFtZSxhZGRyOmEuY29udGFjdEFkZHJlc3M\/YS5jb250YWN0QWRkcmVzczphLnVzZXJBZGRyZXNzLGNpdHk6YS5jb250YWN0Q2l0eSxwcm92aW5jZTphLmNvbnRhY3RQcm92aW5jZSx6aXA6YS5jb250YWN0WmlwP2EuY29udGFjdFppcDphLnVzZXJQb3N0YWwsbmFzOmEuY29udGFjdE5BUyxiaXJ0aDpjLHNpdGVJRDokKCIjc2l0ZUlEIikudmFsKCksVVVJRDphLmdldFVVSUQoKSx0czpkLmdldFRpbWUoKSxsYW5nOiQoIiNhY3RpdmVzaXRlbGFuZ3VhZ2UiKS52YWwoKSx1cGRhdGVJbXBsaWNpdDohMH07CiQuYWpheCh7dHlwZToiR0VUIix1cmw6Ii9hamF4L2dldEVtYWlsQ29uc2VudEZyb21DUk0\/d3N3aWR0aD0wIixkYXRhOmdldERhdGEsZGF0YVR5cGU6Impzb24ifSkuYWx3YXlzKGZ1bmN0aW9uKGYsayxtKXtmPWY\/Zjp7aGFzQ29uc2VudDohMX07JCgiLnVpLWxvYWRlci1iYWNrZ3JvdW5kIikuaGlkZSgpO3RyeXsidW5kZWZpbmVkIj09dHlwZW9mIGYmJiJ1bmRlZmluZWQiIT09dHlwZW9mIGRlYnVnJiZkZWJ1ZygiKioqKiBlcnJvciAqKioqIix7ZXJyb3I6Ik5vIERhdGEiLHRleHRTdGF0dXM6ayxydmFsdWU6Zix2OmdldERhdGEsdDoiL2FqYXgvZ2V0RW1haWxDb25zZW50RnJvbUNSTT93c3dpZHRoPTAifSksW1siY29uc2VudFR5cGUiLCJjb25zZW50VHlwZSJdLFsiY29uc2VudEV4cGlyYXRpb24iLCJleHBpcmF0aW9uIl0sWyJjb25zZW50RGF0ZSIsImRhdGUiXSxbImNvbnNlbnRGcmVxdWVuY3kiLCJmcmVxdWVuY3kiXSwKWyJjb25zZW50RGV0YWlsc0ZSIiwiZGV0YWlsc0ZSRU5DSCJdLFsiY29uc2VudERldGFpbHNFTiIsImRldGFpbHNFTkdMSVNIIl0sWyJkZXRhaWxzRGVmYXVsdHMiLCJkZXRhaWxzRGVmYXVsdHMiXSxbImNvbnRhY3RJRCIsInVpZCJdXS5tYXAoZnVuY3Rpb24obil7dmFyIHQ9blswXTtuPW5bMV07ZGVsZXRlIHZvaWQgMDthW3RdPXZvaWQgMCE9ZltuXT9mW25dOmFbdF19KX1jYXRjaChuKXsidW5kZWZpbmVkIiE9PXR5cGVvZiBkZWJ1ZyYmZGVidWcoIioqKiogZXJyb3IgKioqKiIse2Vycm9yOm4sdGV4dFN0YXR1czprLHJ2YWx1ZTpmLHY6Z2V0RGF0YSx0OiIvYWpheC9nZXRFbWFpbENvbnNlbnRGcm9tQ1JNP3dzd2lkdGg9MCJ9KX1iKGYpfSl9LGJhbmRwTGluazpmdW5jdGlvbihiKXtiPWZ1bmN0aW9uKHIpe3JldHVybiByLnJlcGxhY2UoLy0vZywiXyIpLnJlcGxhY2UoLycvZywiIil9O2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgQ29va2llcy5nZXQoImJhbmRwbGluayIpfHwKbnVsbD09Q29va2llcy5nZXQoImJhbmRwbGluayIpfHwidW5kZWZpbmVkIj09dHlwZW9mIENvb2tpZXMuZ2V0KCJzZXNzaWQiKXx8bnVsbD09Q29va2llcy5nZXQoInNlc3NpZCIpKXJldHVybiIiO3ZhciBkPUNvb2tpZXMuZ2V0KCJiYW5kcGxpbmsiKSxjPUNvb2tpZXMuZ2V0KCJzZXNzaWQiKTtpZigwPmQuaW5kZXhPZigifHx8IikpcmV0dXJuIiI7dmFyIGY9ZC5zcGxpdCgifHx8Iik7aWYoND5mLmxlbmd0aClyZXR1cm4iIjtkPShuZXcgU3RyaW5nKGZbMF0pKS5zcGxpdCgiLyIpO3ZhciBrPW5ldyBTdHJpbmcoZlsxXSksbT1uZXcgU3RyaW5nKGZbMl0pO2Y9bmV3IFN0cmluZyhmWzNdKTt2YXIgbj0kKCIjcG9wdXB0cmltIikubGVuZ3RoJiYieyRQT1BVUFRSSU19IiE9JCgiI3BvcHVwdHJpbSIpLnZhbCgpPyQoIiNwb3B1cHRyaW0iKS52YWwoKToiIix0PSI8YSBocmVmPSciK2QyY21lZGlhLmdldEh0dHBUZXh0KCkrIjovLyIrd2luZG93LmxvY2F0aW9uLmhvc3RuYW1lKyQoIiN0eHRCdWlsZEFuZFByaWNlRm9sZGVyUGF0aCIpLnZhbCgpOwoiRU5HTElTSCI9PSQoIiNhY3RpdmVzaXRlbGFuZ3VhZ2UiKS52YWwoKT8ocGFyc2VJbnQoZFsyXSksJCgiI1RYVE1PTlRIIitwYXJzZUludChkWzFdKS50b1N0cmluZygpKS52YWwoKSx0Kz1mKyItIitiKGspKyItIitiKG0pKyIuaHRtbD9zaWQ9IitjKyInIHRhcmdldD0nX2JsYW5rJz4iK2YrIiAiK2srIiAiK20rIiAiK24rIjwvYT4iKTooJCgiI1RYVE1PTlRIIitwYXJzZUludChkWzFdKS50b1N0cmluZygpKS52YWwoKSx0Kz1iKGspKyItIitiKG0pKyItIitmKyIuaHRtbD9zaWQ9IitjKyInIHRhcmdldD0nX2JsYW5rJz4iK2srIiAiK20rIiAiK24rIiAiK2YrIjwvYT4iKTtyZXR1cm4gdH0sbG9nRm9ybVJlcXVlc3Q6ZnVuY3Rpb24oYixkLGMpe3ZhciBmPU1hdGguZmxvb3IoOTk5OTk5OSpNYXRoLnJhbmRvbSgpKSxrPSQoIiN0b3BzaXRlaWQiKS5sZW5ndGg\/JCgiI3RvcHNpdGVpZCIpLnZhbCgpOiIwIixtPSQoIiN0b3BjYXJpZCIpLmxlbmd0aCYmMDwkKCIjdG9wY2FyaWQiKS52YWwoKS5sZW5ndGg\/CiQoIiN0b3BjYXJpZCIpLnZhbCgpOiIwIixuPUNvb2tpZXMuZ2V0KCJ1aWQiKT9Db29raWVzLmdldCgidWlkIik6IjAiLHQ9Q29va2llcy5nZXQoInV0bV9zb3VyY2UiKT9Db29raWVzLmdldCgidXRtX3NvdXJjZSIpOiIwIixyPUNvb2tpZXMuZ2V0KCJ1dG1fY2FtcGFpZ24iKT9Db29raWVzLmdldCgidXRtX2NhbXBhaWduIik6IjAiLHY9Q29va2llcy5nZXQoInV0bV9zb3VyY2VfcmV0YXJnZXRpbmciKT9Db29raWVzLmdldCgidXRtX3NvdXJjZV9yZXRhcmdldGluZyIpOiIwIixxPUNvb2tpZXMuZ2V0KCJ1dG1fY2FtcGFpZ25fcmV0YXJnZXRpbmciKT9Db29raWVzLmdldCgidXRtX2NhbXBhaWduX3JldGFyZ2V0aW5nIik6IjAiLHA9JCgiI3RvcGlzbW9iaWxlIikubGVuZ3RoJiYxPT0kKCIjdG9waXNtb2JpbGUiKS52YWwoKT8iWUVTIjoiTk8iLGg9JCgiI2FjdGl2ZXNpdGVsYW5ndWFnZSIpLmxlbmd0aD8kKCIjYWN0aXZlc2l0ZWxhbmd1YWdlIikudmFsKCk6IkZSRU5DSCIsbD12b2lkIDAhPT0KYSYmdm9pZCAwIT09YS5waG9uZU1hbmRhdG9yeT9hLnBob25lTWFuZGF0b3J5OjA7InVuZGVmaW5lZCIhPXR5cGVvZiBjJiZjfHwoYz0iMCIpO3I9ci5yZXBsYWNlKC9cdC9nLCIiKS5yZXBsYWNlKC9cbi9nLCIiKS5yZXBsYWNlKC9cci9nLCIiKS5yZXBsYWNlQWxsKCIlMEEiLCIiKS5yZXBsYWNlQWxsKCIlMDkiLCIiKS5yZXBsYWNlQWxsKCIlMEIiLCIiKS5yZXBsYWNlQWxsKCIlMDAiLCIiKS5yZXBsYWNlQWxsKCIlNUMiLCIiKS5yZXBsYWNlQWxsKCIlMEQiLCIiKTt0PXQucmVwbGFjZSgvXHQvZywiIikucmVwbGFjZSgvXG4vZywiIikucmVwbGFjZSgvXHIvZywiIikucmVwbGFjZUFsbCgiJTBBIiwiIikucmVwbGFjZUFsbCgiJTA5IiwiIikucmVwbGFjZUFsbCgiJTBCIiwiIikucmVwbGFjZUFsbCgiJTAwIiwiIikucmVwbGFjZUFsbCgiJTVDIiwiIikucmVwbGFjZUFsbCgiJTBEIiwiIik7Yj0iL3Byb3h5X3NhdWIvbG9nRm9ybVJlcXVlc3QvIitlbmNvZGVVUklDb21wb25lbnQoaykrCiIvIitlbmNvZGVVUklDb21wb25lbnQobSkrIi8iK2VuY29kZVVSSUNvbXBvbmVudChuKSsiLyIrZW5jb2RlVVJJQ29tcG9uZW50KHQpKyIvIitlbmNvZGVVUklDb21wb25lbnQocikrIi8iK2VuY29kZVVSSUNvbXBvbmVudChwKSsiLyIrZW5jb2RlVVJJQ29tcG9uZW50KGgpKyIvIitlbmNvZGVVUklDb21wb25lbnQodikrIi8iK2VuY29kZVVSSUNvbXBvbmVudChxKSsiLyIrZW5jb2RlVVJJQ29tcG9uZW50KGQpKyIvIitlbmNvZGVVUklDb21wb25lbnQoYikrIi8iK2VuY29kZVVSSUNvbXBvbmVudChjKSsiLyIrISFsKyIvIitlbmNvZGVVUklDb21wb25lbnQoZikrIi5naWYiOyQoImJvZHkiKS5hcHBlbmQoIjxpbWcgc3R5bGU9J3dpZHRoOjFweDtoZWlnaHQ6MXB4O3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MHB4O3RvcDowcHg7JyBzcmM9JyIrYisiJyBhbHQ9JycgLz4iKX0sZ2V0VXNlZEVtYWlsRm9yTXVsdGlwbGVEZWFsZXJzOmZ1bmN0aW9uKCl7dmFyIGI9ImZyIjsiRU5HTElTSCI9PQokKCIjYWN0aXZlc2l0ZWxhbmd1YWdlIikudmFsKCkmJihiPSJlbiIpO3VyaT0iLyIrYisiL3BocC9nZXREZWFsZXJzRW1haWxUby5waHA\/bWFrZT0iK2EubWFrZSsiJm1vZGVsPSIrYS5tb2RlbCsiJnllYXI9IithLnllYXIrIiZjYj0iK01hdGguZmxvb3IoOTk5OTk5OSpNYXRoLnJhbmRvbSgpKTskLmFqYXgoe3VybDp1cmksYXN5bmM6ITEsc3VjY2VzczpmdW5jdGlvbihkKXtkPWQuc3BsaXQoInx8fCIpOyJ1bmRlZmluZWQiIT10eXBlb2YgZFswXSYmMDxkWzBdLmxlbmd0aCYmKGEuc2VuZFRvPWRbMF0pOyJ1bmRlZmluZWQiIT10eXBlb2YgZFsxXSYmMDxkWzFdLmxlbmd0aCYmKGEuc2VuZFRvQURGRm9ybWF0PWRbMV0pfX0pfSxwcmVTZW5kSW1wbGljaXQ6ZnVuY3Rpb24oKXtpZihhLnBhcnRpYWwpcmV0dXJuITE7anNvbk9iamVjdD1hLmdldEpzb25PYmplY3QoKTt2YXIgYj17anNvbjpKU09OLnN0cmluZ2lmeShqc29uT2JqZWN0KSxwYXJ0aWFsOiEwfTskLmFqYXgoe3R5cGU6IlBPU1QiLAp1cmw6Ii9tYWlsL3NlbmRNYWlsRXgucGhwIixkYXRhOmIsYmVmb3JlU2VuZDpmdW5jdGlvbihkKXskKCdpbnB1dFtuYW1lPSJsZWFkX2RlcGFydG1lbnQiXScpLnZhbChqc29uT2JqZWN0LmRlcGFydG1lbnQpOyQoJ2lucHV0W25hbWU9ImxlYWRUeXBlIl0nKS52YWwoYS5zdWJqZWN0LnJlcGxhY2UoL1tcblxyXS9nLCIgIikpOyQoJ2lucHV0W25hbWU9InBhZ2VJRCJdJykudmFsKCQoIiNQQUdFSUQiKS52YWwoKSk7JCgnaW5wdXRbbmFtZT0iY3VycmVudFVSTCJdJykudmFsKHdpbmRvdy5sb2NhdGlvbi5ocmVmKTskKCdpbnB1dFtuYW1lPSJpc0Z1bGxXaWR0aCJdJykudmFsKCQoIiNpc0Z1bGxXaWR0aFBhZ2VOZXdWRFAiKS52YWwoKSk7JCgnaW5wdXRbbmFtZT0iZGVhbGVyTmFtZSJdJykudmFsKCQoIiNuZXdWRFBEZWFsZXJOYW1lIikudmFsKCkpOyQoJ2lucHV0W25hbWU9ImJ1dHRvblBvc2l0aW9uIl0nKS52YWwoJCgiI25ld1ZEUEJ1dHRvblBvc2l0aW9uIikudmFsKCkpOyQoJ2lucHV0W25hbWU9ImlzTW9iaWxlTmV3VkRQIl0nKS52YWwoJCgiI2lzbW9iaWxlIikudmFsKCkpOwpkJiZkLm92ZXJyaWRlTWltZVR5cGUmJmQub3ZlcnJpZGVNaW1lVHlwZSgiYXBwbGljYXRpb24vanNvbjtjaGFyc2V0PVVURi04Iik7dHJ5e2xldCBjPSQoIm1ldGFbbmFtZT0nY3NyZi1kb21haW4tY2hlY2snXSIpO2MubGVuZ3RoJiZkLnNldFJlcXVlc3RIZWFkZXIoImNzcmYtZG9tYWluLWNoZWNrIixjLmF0dHIoImNvbnRlbnQiKSl9Y2F0Y2goYyl7Y29uc29sZS5lcnJvcihkKX19LHN1Y2Nlc3M6ZnVuY3Rpb24oZCl7InVuZGVmaW5lZCIhPT10eXBlb2YgZGVidWcmJmRlYnVnKGQpfSxmYWlsdXJlOmZ1bmN0aW9uKGQpe2EubG9nRm9ybVJlcXVlc3QoIkZvcm1TdWJtaXR0ZWRFbWFpbE5vdFNlbnQiLGEubWFpbElELGEucG9wdXBPZmZlclR5cGUpOyJ1bmRlZmluZWQiIT09dHlwZW9mIGRlYnVnJiZkZWJ1ZyhzYXZlSGFuZGxlci5mYWlsTWVzc2FnZSxkKX0sc3RhdHVzQ29kZTp7NDA0OmZ1bmN0aW9uKCl7YWxlcnQoInBhZ2Ugbm90IGZvdW5kIil9fX0pfSxsb2dFdmVudDpmdW5jdGlvbihiLApkKXtkPWQ\/ZDphLm1haWxJRDtpZighYnx8IWQpcmV0dXJuInVuZGVmaW5lZCIhPT10eXBlb2YgZGVidWcmJmRlYnVnKCIhVU5MT0dHRUQgRVZFTlQhIixiLGQpLCExOyJ1bmRlZmluZWQiIT10eXBlb2YgYWN0aXZlVXNlclByb2ZpbGVNbmcmJiJ1bmRlZmluZWQiIT10eXBlb2YgYWN0aXZlVXNlclByb2ZpbGVNbmcubG9nUGFnZVZpZXdFdmVudD9hY3RpdmVVc2VyUHJvZmlsZU1uZy5sb2dQYWdlVmlld0V2ZW50KGIsZCk6InVuZGVmaW5lZCIhPT10eXBlb2YgZGVidWcmJmRlYnVnKCIhVU5MT0dHRUQgRVZFTlQhIixiLGQpfSxidWlsZENSTUtleTpmdW5jdGlvbigpe3ZhciBiPXBhcnNlSW50KCQoIiN0b3BzaXRlaWQiKS52YWwoKSwxMCksZD1hLmdldFVVSUQoKSxjPWdldENvb2tpZSgiZW1haWxGcm9tQXV0b0Fuc3dlciIpO2lmKCFpc05hTihiKSYmKCIiIT1jfHwiIiE9ZCkmJiJudW1iZXIiPT10eXBlb2YgYiYmMDxiKXt2YXIgZj1uZXcgRGF0ZSxrPWYuZ2V0TW9udGgoKSsxO2s9JC5iYXNlNjQuZW5jb2RlKGYuZ2V0RnVsbFllYXIoKSsKIi0iKygxMD5rPyIwIitrOmspKyItIisoMTA+Zi5nZXREYXRlKCk\/IjAiK2YuZ2V0RGF0ZSgpOmYuZ2V0RGF0ZSgpKSk7Zj1rLnN1YnN0cigwLDgpO2s9ay5zdWJzdHIoOCk7cmV0dXJuICQuYmFzZTY0LmVuY29kZShmKyQuYmFzZTY0LmVuY29kZShiKyI7IitkKyI7IitjKStrKX1yZXR1cm4iIn0sc2V0TWFrZU1vZGVsWWVhckZyb21MYXN0Vmlld2VkOmZ1bmN0aW9uKCl7dmFyIGI9JCgiI2xhc3R2aWV3ZWRtYWtlIikudmFsKCksZD0kKCIjbGFzdHZpZXdlZG1vZGVsIikudmFsKCksYz0kKCIjbGFzdHZpZXdlZHllYXIiKS52YWwoKTsidW5kZWZpbmVkIiE9PXR5cGVvZiBiJiYiIj09PWEubWFrZSYmKGEubWFrZT1iKTsidW5kZWZpbmVkIiE9PXR5cGVvZiBkJiYiIj09PWEubW9kZWwmJihhLm1vZGVsPWQpOyJ1bmRlZmluZWQiPT09dHlwZW9mIGN8fCIiIT09YS55ZWFyJiYwIT09YS55ZWFyfHwoYS55ZWFyPWMpfSxyZWNhcHRjaGE6e2FzazohMCx3aWRnZXRJZDotMSxza2lwQnlQYXNzOiExLApvbjokLkRlZmVycmVkKCksaXNEMkNMb2FkZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gd2luZG93LmdyZWNhcHRjaGEmJiJ1bmRlZmluZWQiIT09dHlwZW9mIHdpbmRvdy5ncmVjYXB0Y2hhLkQyQ0xvYWRlZH0saW5pdDpmdW5jdGlvbigpe3RyeXsoZnVuY3Rpb24oYixkLGMsZixrKXtpZighYltrXXx8InVuZGVmaW5lZCI9PT10eXBlb2YgYltrXS5EMkNMb2FkZWQpe3ZhciBtPWQuY3JlYXRlRWxlbWVudChjKTtkPWQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoYylbMF07bS5zcmM9ZjtkLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKG0sZCk7bS5vbmxvYWQ9KCk9PntiW2tdJiYoYltrXS5EMkNMb2FkZWQ9ITApfX19KSh3aW5kb3csZG9jdW1lbnQsInNjcmlwdCIsImh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vcmVjYXB0Y2hhL2FwaS5qcyIsImdyZWNhcHRjaGEiKX1jYXRjaChiKXtjb25zb2xlLmxvZyhiKX19LGxvYWQ6ZnVuY3Rpb24oKXtpZighKC0xPGEucmVjYXB0Y2hhLndpZGdldElkKSl0cnl7JCgnPGRpdiBpZD0iZW1haWxoYW5kbGVyX3JlY2FwdGNoYVdpZGdldCIgc3R5bGU9ImRpc3BsYXk6bm9uZSI+PC9kaXY+JykuYXBwZW5kVG8oImJvZHkiKSwKYS5yZWNhcHRjaGEud2lkZ2V0SWQ9Z3JlY2FwdGNoYS5yZW5kZXIoImVtYWlsaGFuZGxlcl9yZWNhcHRjaGFXaWRnZXQiLHtzaXRla2V5OiI2TGZwZEQwVUFBQUFBUGQ0UzdJa2U1RWR4MDF5M1lYZDVJLXUzZHhQIixjYWxsYmFjazphLnJlY2FwdGNoYS5vblN1Ym1pdCwiZXJyb3ItY2FsbGJhY2siOmEucmVjYXB0Y2hhLm9uRmFpbCxzaXplOiJpbnZpc2libGUifSl9Y2F0Y2goYil7Y29uc29sZS5sb2coYil9fSxvblN1Ym1pdDpmdW5jdGlvbihiKXthLmdyZWNhcHRjaGFSZXNwb25zZVRva2VuPWI7YS5yZWNhcHRjaGEub24ucmVzb2x2ZShiKX0sb25GYWlsOmZ1bmN0aW9uKCl7Y29uc29sZS5sb2coIkdSQyBGYWlsIixhcmd1bWVudHMpfSxnZXRSZXNwb25zZTpmdW5jdGlvbigpe3JldHVybiBhLnJlY2FwdGNoYS5pc0QyQ0xvYWRlZCgpPyhhLnJlY2FwdGNoYS5sb2FkKCksZ3JlY2FwdGNoYS5leGVjdXRlKGEucmVjYXB0Y2hhLndpZGdldElkKSxhLnJlY2FwdGNoYS5vbik6JC5EZWZlcnJlZCgpLnJlc29sdmUoKX0sCnJlc2V0VG9rZW46ZnVuY3Rpb24oKXthLnJlY2FwdGNoYS5pc0QyQ0xvYWRlZCgpJiYoZ3JlY2FwdGNoYS5yZXNldChhLnJlY2FwdGNoYS53aWRnZXRJZCksYS5yZWNhcHRjaGEub249JC5EZWZlcnJlZCgpKX0sc2V0UmVzcG9uc2U6ZnVuY3Rpb24oKXt9fSxzYW5pdGl6ZUhUTUw6ZnVuY3Rpb24oYil7cmV0dXJuIGVuY29kZVVSSShiKX0sc2hvdWxkRGlzcGxheVB1cmNoYXNlSW50ZW50Q29udGFjdDooKT0+e2lmKG51bGw9PT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjYXNQdXJjaGFzZUludGVudCIpfHxkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjYXNQdXJjaGFzZUludGVudCAuc3RlcENvbnRhY3QiKS5jbGFzc0xpc3QuY29udGFpbnMoImhpZGRlbiIpKXJldHVybiExO2xldCBiPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNhc1B1cmNoYXNlSW50ZW50IC5zdGVwQ29udGFjdCIpLmRhdGFzZXQuZGVwYXJ0bWVudHM7Yj1iLnNwbGl0KCI7Iik7aWYoLTE8Yi5pbmRleE9mKGEuZGVwYXJ0bWVudC50b0xvd2VyQ2FzZSgpKSlyZXR1cm4hMDsKdmFyIGQ9InVuZGVmaW5lZCIhPXR5cGVvZiBkb2N1bWVudC5sb2NhdGlvbi5wYXRobmFtZT9kb2N1bWVudC5sb2NhdGlvbi5wYXRobmFtZTpkb2N1bWVudC5sb2NhdGlvbi5ocmVmLm1hdGNoKC9bQS16XTpcL1wvW15cL10rXC8oW15cP10rKVw\/Py4qLylbMV07ZD1hLnNhbml0aXplSFRNTChkKTtsZXQgYz1PYmplY3QudmFsdWVzKE9iamVjdC5mcm9tRW50cmllcyhPYmplY3QuZW50cmllcyh7bmV3OlsibmV1ZiIsIm5ldyJdLHVzZWQ6WyJvY2Nhc2lvbiIsInVzZWQiXSxzZXJ2aWNlOlsic2VydmljZSIsImVudHJldGllbiIsIm1haW50ZW5hbmNlIiwicmVwYWlyIl0sZmluYW5jZTpbImZpbmFuY2VtZW50IiwiZmluYW5jZSIsImNyZWRpdCIsImxvYW4iXX0pLmZpbHRlcihmPT57W2ZdPWY7cmV0dXJuLTE8Yi5pbmRleE9mKGYpfSkpKS5mbGF0KCk7cmV0dXJuKG5ldyBSZWdFeHAoIigiK2Muam9pbigifCIpKyIpIikpLnRlc3QoZC50b0xvd2VyQ2FzZSgpKX19O2pRdWVyeShmdW5jdGlvbihiKXtiPQpqc19kMmNfZ2V0X3ZhbCgiSVNWTSIpO3ZhciBkPWpzX2QyY19nZXRfdmFsKCJmZmRMMSIpLGM9anNfZDJjX2dldF92YWwoIkdSV0wiKS5zcGxpdCgiOyIpO2EuaWdub3JlQ2FwdGNoYT1ifHwtMSE9Yy5pbmRleE9mKGQpO2EuaWdub3JlQ2FwdGNoYXx8YS5yZWNhcHRjaGEuaW5pdCgpfSk7YS5yZXNldENhbGxiYWNrcygpO2EuYXNrUHVyY2hhc2VJbnRlbnQ9ZnVuY3Rpb24oYil7dmFyIGQ9InVuZGVpbmZlZCIhPXR5cGVvZiBiLnBhdGhuYW1lP2IucGF0aG5hbWU6Yi5ocmVmLm1hdGNoKC9bQS16XTpcL1wvW15cL10rXC8oW15cP10rKVw\/Py4qLylbMV07dmFyIGM9UmVnRXhwKCIoZGVtb25zdHJhdGV1cnN8ZGVtb3xsaXF1aWRhdGlvbnxjbGVhcmFuY2V8cHJvbW90aW9uc3xuZXVmfG5ld3xvY2Nhc2lvbnx1c2VkfGNyZWRpdHxmaW5hbmNlbWVudCkiKTtiPXtkZW1vbnN0cmF0ZXVyczoiZGVtbyIsY2xlYXJhbmNlOiJsaXF1aWRhdGlvbiIsIm5ldyI6Im5ldWYiLHByb21vdGlvbnM6InByb21vIiwKdXNlZDoib2NjYXNpb24iLGNyZWRpdDoiZmluYW5jZW1lbnQifTtyZXR1cm4gYy50ZXN0KGQudG9Mb3dlckNhc2UoKSk\/KGQ9ZC5tYXRjaChjKSxudWxsIT1kJiYoYS5wdXJjaGFzZV9pbnRlbnRfc2VjdGlvbj0idW5kZWZpbmVkIiE9dHlwZW9mIGJbZFsxXV0\/YltkWzFdXTpkWzFdKSwhMCk6ITF9KGRvY3VtZW50LmxvY2F0aW9uKTtyZXR1cm4gYX0oKSxlbWFpbFRyYWNraW5nPWZ1bmN0aW9uKCl7dmFyIGU9e2JyYW5kOiIiLG1vZGVsOiIiLHllYXI6IiIsaXNwcm9tbzohMSxpc2V4cHJlc3M6ITEsaXNob21lcGFnZTohMSxzZWN0aW9uOiIiLHRleHRDYXJTZWN0aW9uVHlwZToiVVNFRCIsaXNNb2JpbGVOZXdWRFA6ITEsaXNGdWxsV2lkdGg6ITEsYnV0dG9uUG9zaXRpb246IiIsZGVhbGVyTmFtZToiIn0sZz1mdW5jdGlvbihjKXt2YXIgZj1bXSxrPWMuYnJhbmQ\/Yy5icmFuZDplbWFpbEhhbmRsZXIubWFrZSxtPWMubW9kZWw\/Yy5tb2RlbDplbWFpbEhhbmRsZXIubW9kZWw7Yz1jLnllYXI\/CmMueWVhcjplbWFpbEhhbmRsZXIueWVhcjtrLmxlbmd0aCYmZi5wdXNoKGspO20ubGVuZ3RoJiZmLnB1c2gobSk7Yy5sZW5ndGgmJmYucHVzaChjKTtyZXR1cm4gZi5qb2luKCItIil9LGE9ZnVuY3Rpb24oYyl7dmFyIGY9eyJob21lcGFnZS5odG1sIjoiSG9tZS1QYWdlIiwiY29udGFjdHVzLmh0bWwiOiJDb250YWN0VXMiLCJuZXdjYXJkZXRhaWwuaHRtbCI6Ik5ldy1WRFAiLCJuZXdjYXJzLmh0bWwiOiJOZXctU1JQIiwiYnVpbGRhbmRwcmljZS5odG1sIjoiTmV3LUImUCIsInJlc3VtZS1idWlsZGFuZHByaWNlLmh0bWwiOiJOZXctQiZQLVJlc3VtZSIsImNvbXBhcmVOZXdWZWhpY2xlcy5odG1sIjoiTmV3LUNvbXBhcmUiLCJ1c2VkY2Fycy5odG1sIjoiVXNlZC1TUlAiLCJjYXJkZXRhaWwuaHRtbCI6IlVzZWQtVkRQIiwiY3JlZGl0Lmh0bWwiOiJEZW1hbmRlcyAtIEZpbmFuY2VtZW50IiwiZGVhbGVydHJhY2suaHRtbCI6IkRlbWFuZGVzIC0gRmluYW5jZW1lbnQiLCJwcm9tb3Rpb24uaHRtbCI6IlByb21vdGlvbnMiLAoicHJvbW90aW9uc2FsZXMuaHRtbCI6IlByb21vdGlvbnMiLCJwcm9tb3Rpb25zZXJ2aWNlLmh0bWwiOiJQcm9tb3Rpb25zIiwicGFydHNSZXF1ZXN0Lmh0bWwiOiJEZW1hbmRlcyAtIFBp77+9Y2VzIiwic2VydmljZXMuaHRtbCI6IlNlcnZpY2UiLCJzZXJ2aWNlUmVxdWVzdC5odG1sIjoiRGVtYW5kZXMgLSBSRFYgU2VydmljZSIsImJvZHlTaG9wLmh0bWwiOiJEZW1hbmRlcyAtIFJEViBDYXJvc3NlcmllIiwidGlyZXNSZXF1ZXN0Lmh0bWwiOiJEZW1hbmRlcyAtIFBuZXVzIiwib3VydGVhbS5odG1sIjoiVGVhbSIsInRlc3Rkcml2ZS5odG1sIjoiRGVtYW5kZXMgLSBFc3NhaXMtUm91dGllci1PY2Nhc2lvbiIsInRlc3Rkcml2ZW5ldy5odG1sIjoiRGVtYW5kZXMgLSBFc3NhaXMtUm91dGllci1OZXVmIiwiYnJvY2h1cmVzLmh0bWwiOiJEZW1hbmRlcyAtIEJyb2NodXJlcyIsImpvYm9mZmVyLmh0bWwiOiJEZW1hbmRlcyAtIEVtcGxvaXMiLCJtYWtlb2ZmZXJuZXcuaHRtbCI6IkRlbWFuZGVzIC0gT2ZmcmUgLSBOZXVmIiwKIm1ha2VvZmZlci5odG1sIjoiRGVtYW5kZXMgLSBPZmZyZSAtIE9jY2FzaW9uIiwicHJpY2VyZXF1ZXN0bmV3Lmh0bWwiOiJEZW1hbmRlcyAtIFByaXggLSBOZXVmIiwicHJpY2VyZXF1ZXN0Lmh0bWwiOiJEZW1hbmRlcyAtIFByaXggLSBPY2Nhc2lvbiIsImZpbmRjYXIuaHRtbCI6IkRlbWFuZGVzIC0gUmVjaGVyY2hlIE9jY2FzaW9uIiwidHJhZGVpbm5ldy5odG1sIjoiRGVtYW5kZXMgLSBFY2hhbmdlIE5ldWYiLCJ0cmFkZWluLmh0bWwiOiJEZW1hbmRlcyAtIEVjaGFuZ2UgT2NjYXNpb24ifSxrPS0xIT0oYy5jdXJyZW50VVJMfHwiIikuaW5kZXhPZigic3RlcD1yZXN1bWUiKSxtPS0xIT0oYy5jdXJyZW50VVJMfHwiIikuaW5kZXhPZigic3RlcD1vcHRpb25zIik7ImJ1aWxkYW5kcHJpY2UuaHRtbCI9PWMucGFnZUlEJiYoa3x8bSkmJihjLnBhZ2VJRD0icmVzdW1lLWJ1aWxkYW5kcHJpY2UuaHRtbCIpO3JldHVybiJ1bmRlZmluZWQiIT10eXBlb2YgZltjLnBhZ2VJRF0\/ZltjLnBhZ2VJRF06CiJPdGhlciJ9LGI9ZnVuY3Rpb24oYyl7dmFyIGY9IkRlbWFuZGVzIixrPWMuYnJhbmQ\/Yy5icmFuZDplbWFpbEhhbmRsZXIubWFrZSxtPWMubW9kZWw\/Yy5tb2RlbDplbWFpbEhhbmRsZXIubW9kZWw7Yy5pc3Byb21vJiYoZis9Ii1Qcm9tb3Rpb24iKTswPGsubGVuZ3RoJiYwPG0ubGVuZ3RoJiYhYy5pc2hvbWVwYWdlP2Y9Yy5pc3Byb21vP2YrKCItIitnKGMpKTpmK1siIixrLG0sYy5zZWN0aW9uXS5qb2luKCItIik6Yy5pc3Byb21vJiZjLmlzaG9tZXBhZ2UmJihmKz0iLUluZGV4Iik7IjEiPT1jLmlzZXhwcmVzcyYmKGMudGV4dENhclNlY3Rpb25UeXBlJiYoZj0iRGVtYW5kZXMtRXhwcmVzcyIpLGYrPSItIitnKGMpLGYrPSItIitjLnNlY3Rpb24pO3JldHVybiBmfSxkPWZ1bmN0aW9uKGMpe3ZhciBmPTEyMDA8d2luZG93LnNjcmVlbi5hdmFpbFdpZHRoPyI+MTIwMHB4IC0gIi5pc0Z1bGxXaWR0aDoiPDEyMDBweCAtIE5vcm1hbCBWRFAiO1tmLGMuYnV0dG9uUG9zaXRpb25dLmpvaW4oIi0iKTsKYz1bYy5kZWFsZXJOYW1lLGYsIkxlYWQiXS5qb2luKCItIik7Z2FUcmFjaygiYyIsIk5ldy1WRFAtRGVza3RvcC1MYXlvdXQtQ1IiLGFjdGlvbixjLDEpfTt0aGlzLnRyYWNrPWZ1bmN0aW9uKGMpe2lmKGdldENvb2tpZSgibGVhZFNlbmQiKSlyZXR1cm4gZGVidWcoImxlYWQgc2VudCIpO3NldENvb2tpZSgibGVhZFNlbmQiLCEwLDEpO2M9JC5leHRlbmQoe30sZSxjKTtjLmN1cnJlbnRVUkw9Yy5jdXJyZW50VVJMP2MuY3VycmVudFVSTDp3aW5kb3cubG9jYXRpb24uaHJlZjtjLmlzcHJvbW89IjEiPT1jLmlzcHJvbW87Yy5pc2hvbWVwYWdlPSIxIj09Yy5pc2hvbWVwYWdlO3ZhciBmPWEoYyk7Z2FUcmFjaygiIiwiQ291cnJpZWxzIixjLmxhYmVsLGIoYyksMSk7Z2FUcmFjaygiYyIsIkNvdXJyaWVscy1kZXB0IixjLmRlcGFydG1lbnQsZyhjKSwxKTtnYVRyYWNrKCJjIiwiQ291cnJpZWxzLXBhZ2UiLGYsYy5sZWFkVHlwZSwxKTtjLmlzTW9iaWxlTmV3VkRQJiYiTmV3LVZEUCI9PWYmJgpkKGMpO3RyeXtkMmNfZ2FBY2NvdW50cy5hbGwubWFwKGZ1bmN0aW9uKGspe2d0YWcoImNvbmZpZyIsayx7cGFnZV9wYXRoOiIvY29uZmlybWF0aW9uLmh0bWwifSl9KSxndGFnKCJjb25maWciLCJHLVo1UThaNUM3S0YiLHtwYWdlX3BhdGg6Ii9jb25maXJtYXRpb24uaHRtbCJ9KX1jYXRjaChrKXtkZWJ1ZyhrKX19O3JldHVybiB0aGlzfSgpLGdldE1haWxTZW50SGFuZGxlcj1mdW5jdGlvbihlKXt2YXIgZz17dGltZW91dENhbGxiYWNrOm51bGwsdGltZW91dDpudWxsfTtnLmlkVG9BZGQ9ZT9lOiIiOyQoIiNlbWFpbFN1Y2Nlc3NNZXNzYWdlIikuZmluZCgiLmRlZmF1bHRTdWNjZXNzIikuc2hvdygpOyQoIiNlbWFpbFN1Y2Nlc3NNZXNzYWdlIikuZmluZCgiLnNlcnZpY2VTdWNjZXNzIikuaGlkZSgpOyQoIiNlbWFpbFN1Y2Nlc3NNZXNzYWdlIitlKS5sZW5ndGh8fChlPSIiLGcuaWRUb0FkZD0iIiwiU0VSVklDRSIhPWVtYWlsSGFuZGxlci5kZXBhcnRtZW50JiYiUEFSVFMiIT1lbWFpbEhhbmRsZXIuZGVwYXJ0bWVudCl8fAooJCgiI2VtYWlsU3VjY2Vzc01lc3NhZ2UiKS5maW5kKCIuZGVmYXVsdFN1Y2Nlc3MiKS5oaWRlKCksJCgiI2VtYWlsU3VjY2Vzc01lc3NhZ2UiKS5maW5kKCIuc2VydmljZVN1Y2Nlc3MiKS5zaG93KCkpO2cuc2hvd1N1Y2Nlc3M9ZnVuY3Rpb24oKXtnZXRDb29raWUoInByZXZlbnREdXBsaWNhdGVDcmVkaXRTY29yZSIpfHxnZXRDb29raWUoImNyZWRpdFNjb3JlQ29uZmlybVBvcHVwU2hvd24iKXx8Z2V0Q29va2llKCJjcmVkaXRTY29yZUVtYmVkZGVkRmlsbGVkIil8fCIiIT1lbWFpbEhhbmRsZXIudXNlclBob25lJiYiIiE9ZW1haWxIYW5kbGVyLnVzZXJBZGRyZXNzJiYiIiE9ZW1haWxIYW5kbGVyLmJpcnRoZGF0ZXx8Im5ldyIhPWVtYWlsSGFuZGxlci5kZXBhcnRtZW50LnRvTG93ZXJDYXNlKCkmJiJ1c2VkIiE9ZW1haWxIYW5kbGVyLmRlcGFydG1lbnQudG9Mb3dlckNhc2UoKXx8ISQoIiNjcmVkaXRTY29yZUNvbmZpcm1Qb3B1cENvbnRhaW5lciIpLmxlbmd0aHx8IlRyYWRlSW5CYXJQb3B1cENvbnRhaW5lciI9PQplbWFpbEhhbmRsZXIucG9wdXBkaXY\/KCQoIiNlbWFpbFN1Y2Nlc3NNZXNzYWdlIitlKS5wYXJlbnQoKS5pcygiYm9keSIpfHwkKCIjZW1haWxTdWNjZXNzTWVzc2FnZSIrZSkuYXBwZW5kVG8oImJvZHkiKSwkKCIjZW1haWxTdWNjZXNzTWVzc2FnZSIrZSkucmV2ZWFsKHthbmltYXRpb246ImZhZGVBbmRQb3AiLGFuaW1hdGlvbnNwZWVkOjMwMCxjbG9zZW9uYmFja2dyb3VuZGNsaWNrOiExLGRpc21pc3Ntb2RhbGNsYXNzOiJjbG9zZS1yZXZlYWwtbW9kYWwifSksJCgiI2VtYWlsU3VjY2Vzc01lc3NhZ2UiK2UrIiAuY29uZmlybV9zdWNjZXNzQ29udGludWUiKS5vbigiY2xpY2siLGcuY2xvc2VTdWNjZXNzKSk6JCgiI2NyZWRpdFNjb3JlQ29uZmlybVBvcHVwQ29udGFpbmVyIikucG9wdXBpemUoKS5zZXRUcmlnZ2VyKCJjbGljayIpLm9wZW4oMSk7JCgiLnVpLWxvYWRlci1iYWNrZ3JvdW5kIikuaGlkZSgpOyQoIiNlbWFpbG1zZ2ZybSIrZy5pZFRvQWRkKS50cmlnZ2VyKCJzdWJtaXQiKX07CmcuY2xvc2VTdWNjZXNzPWZ1bmN0aW9uKCl7JCgiI2VtYWlsU3VjY2Vzc01lc3NhZ2UiK2cuaWRUb0FkZCkudHJpZ2dlcigicmV2ZWFsOmNsb3NlIik7bnVsbCE9Zy50aW1lb3V0Q2FsbGJhY2smJmcudGltZW91dENhbGxiYWNrKCk7cmV0dXJuITF9O2cuc2hvd0ZhaWw9ZnVuY3Rpb24oKXskKCIjZW1haWxGYWlsTWVzc2FnZSIrZy5pZFRvQWRkKS5yZXZlYWwoe2FuaW1hdGlvbjoiZmFkZUFuZFBvcCIsYW5pbWF0aW9uc3BlZWQ6MzAwLGNsb3Nlb25iYWNrZ3JvdW5kY2xpY2s6ITEsZGlzbWlzc21vZGFsY2xhc3M6ImNsb3NlLXJldmVhbC1tb2RhbCJ9KTskKCIjZW1haWxGYWlsTWVzc2FnZSIrZSsiIC5jb25maXJtX2ZhaWxDb250aW51ZSIpLm9uKCJjbGljayIsZnVuY3Rpb24oKXskKCIjZW1haWxGYWlsTWVzc2FnZSIrZSkudHJpZ2dlcigicmV2ZWFsOmNsb3NlIil9KTskKCIudWktbG9hZGVyLWJhY2tncm91bmQiKS5oaWRlKCl9O3JldHVybiBnfSxtYWlsU2VudEhhbmRsZXI9bmV3IGdldE1haWxTZW50SGFuZGxlcigiIik7CmZ1bmN0aW9uIHN0b3JhZ2VBdmFpbGFibGUoZSl7dHJ5e3ZhciBnPXdpbmRvd1tlXTtnLnNldEl0ZW0oIl9fc3RvcmFnZV90ZXN0X18iLCJfX3N0b3JhZ2VfdGVzdF9fIik7Zy5yZW1vdmVJdGVtKCJfX3N0b3JhZ2VfdGVzdF9fIik7cmV0dXJuITB9Y2F0Y2goYSl7cmV0dXJuIGEgaW5zdGFuY2VvZiBET01FeGNlcHRpb24mJigyMj09PWEuY29kZXx8MTAxND09PWEuY29kZXx8IlF1b3RhRXhjZWVkZWRFcnJvciI9PT1hLm5hbWV8fCJOU19FUlJPUl9ET01fUVVPVEFfUkVBQ0hFRCI9PT1hLm5hbWUpJiZnJiYwIT09Zy5sZW5ndGh9fQp2YXIgZm9ybUZpbGw9ZnVuY3Rpb24oKXt2YXIgZT10aGlzLGc9c3RvcmFnZUF2YWlsYWJsZSgibG9jYWxTdG9yYWdlIiksYT1udWxsLGI9ITAsZD1bXSxjPXtuYW1lOlsiaW5wdXQubmFtZSIsJ2lucHV0W25hbWU9Im5hbWUiXSddLHBvc3RhbDpbImlucHV0LnBvc3RhbCIsJ2lucHV0W25hbWU9InBvc3RhbCJdJ10sZmlyc3ROYW1lOidpbnB1dC5maXJzdE5hbWUgaW5wdXQuZmlyc3RuYW1lIGlucHV0W25hbWU9ImZpcnN0bmFtZSJdIGlucHV0W25hbWU9ImZpcnN0TmFtZSJdIGlucHV0I2ZpcnN0bmFtZSBpbnB1dCNmaXJzdE5hbWUgaW5wdXQjbWluaV9mbmFtZScuc3BsaXQoIiAiKSxsYXN0TmFtZTonaW5wdXQubGFzdE5hbWUgaW5wdXQubGFzdG5hbWUgaW5wdXRbbmFtZT0ibGFzdG5hbWUiXSBpbnB1dFtuYW1lPSJsYXN0TmFtZSJdIGlucHV0I2xhc3RuYW1lIGlucHV0I2xhc3ROYW1lIGlucHV0I21pbmlfbG5hbWUnLnNwbGl0KCIgIikscGhvbmU6WyJpbnB1dC5waG9uZSIsJ2lucHV0W25hbWU9InBob25lIl0nLAonaW5wdXRbbmFtZT0icGhvbmVOdW1iZXIiXScsImlucHV0I21pbmlfcGhvbmUiLCdbdHlwZT0idGVsIl0nXSxlbWFpbDpbImlucHV0LmVtYWlsIiwnaW5wdXRbbmFtZT0iZW1haWwiXScsJ2lucHV0W25hbWU9ImVtYWlsQWRkcmVzcyJdJywiaW5wdXQjbWluaV9lbWFpbCJdfSxmPWZ1bmN0aW9uKHApe2lmKCFnKXJldHVybiExO3ZhciBoPWxvY2FsU3RvcmFnZS5nZXRJdGVtKCJmb3JtRmlsbERhdGEiKTtpZihudWxsPT09aClyZXR1cm4hMTskLmFqYXgoe3R5cGU6IlBPU1QiLHVybDoiL3Byb3h5X3NkMmMvc2VydmljZS9kMmMuZW5jcnlwdGlvbi5nZXQiLGRhdGE6e2RhdGE6aH19KS5kb25lKGZ1bmN0aW9uKGwpe2lmKGwmJiJmdW5jdGlvbiI9PT10eXBlb2YgcCl0cnl7cChKU09OLnBhcnNlKGwuZGF0YSkpfWNhdGNoKHUpe2NvbnNvbGUubG9nKHUpfX0pfSxrPWZ1bmN0aW9uKCl7Yj0hMDthPW51bGw7ZC5mb3JFYWNoKGZ1bmN0aW9uKHApe3AuZmlsbGVkPSExfSl9LG09ZnVuY3Rpb24ocCl7cSgidXNlci5sb2FkZWQiLApmdW5jdGlvbigpe2lmKCFuKHApKXtkLnB1c2goe3Njb3BlOnAsZmlsbGVkOiEwfSk7Zm9yKHZhciBoIGluIGMpYS5oYXNPd25Qcm9wZXJ0eShoKSYmcC5maW5kKCQoY1toXS5qb2luKCIsIikpKS52YWwoYVtoXSk7cigiZm9ybS5maWxsZWQiKX19KTtudWxsPT09YSYmYj8oYj0hMSxmKGZ1bmN0aW9uKGgpe2gucG9zdGFsPWgucG9zdGFsLnRvVXBwZXJDYXNlKCk7aC5maXJzdE5hbWU9aC5maXJzdE5hbWUudHJpbSgpO2gubGFzdE5hbWU9aC5sYXN0TmFtZS50cmltKCk7ZW1haWxIYW5kbGVyLnVzZXJQb3N0YWw9aC5wb3N0YWw7ZW1haWxIYW5kbGVyLnVzZXJFbWFpbD1oLmVtYWlsO2VtYWlsSGFuZGxlci51c2VyRmlyc3ROYW1lPWguZmlyc3ROYW1lO2VtYWlsSGFuZGxlci51c2VyTGFzdE5hbWU9aC5sYXN0TmFtZTtlbWFpbEhhbmRsZXIudXNlclBob25lPWgucGhvbmU7aC5uYW1lPShoLmZpcnN0TmFtZSsiICIraC5sYXN0TmFtZSkudHJpbSgpO2E9aDtyKCJ1c2VyLmxvYWRlZCIpfSkpOgphJiZyKCJ1c2VyLmxvYWRlZCIpfSxuPWZ1bmN0aW9uKHApe3JldHVybihfc2NvcGU9ZC5maW5kKGZ1bmN0aW9uKGgpe2lmKGguc2NvcGUuaXMocCkpcmV0dXJuIGh9KSk\/X3Njb3BlLmZpbGxlZDohMX0sdD1bXSxyPWZ1bmN0aW9uKHApe3ZhciBoPVtdLnNsaWNlLmNhbGwoYXJndW1lbnRzLDEpO2lmKHRbcF0pe3ZhciBsPXRbcF0uc2xpY2UoKTt2YXIgdT1sLmxlbmd0aDtmb3IoaT0wO2k8dTtpKyspbFtpXS5hcHBseSh0aGlzLGgpfX0sdj1mdW5jdGlvbihwLGgpe3RbcF18fCh0W3BdPVtdKTt0W3BdLnB1c2goaCl9LHE9ZnVuY3Rpb24ocCxoKXt2KHAsZnVuY3Rpb24gdSgpe3RbcF0uc3BsaWNlKHRbcF0uaW5kZXhPZih1KSwxKTtoLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0pfTskKGZ1bmN0aW9uKCl7ZyYmKCQoZG9jdW1lbnQpLm9uKCJwb3B1cGl6ZXIub25PcGVuIixmdW5jdGlvbihwLGgpe3A9aC50YXJnZXQ\/aC50YXJnZXQ6JChoKTttKHApfSksJChkb2N1bWVudCkub24oInBvcHVwaXplci5vbkNsb3NlIiwKZnVuY3Rpb24ocCxoKXt9KSwkKCJmb3JtIikuZWFjaChmdW5jdGlvbihwLGgpe20oJChoKSl9KSl9KTtyZXR1cm4gZT17c2F2ZTpmdW5jdGlvbihwKXtpZighZylyZXR1cm4hMTthJiYiIj09PXAucG9zdGFsJiYocC5wb3N0YWw9YS5wb3N0YWwpOyQuYWpheCh7dHlwZToiUE9TVCIsdXJsOiIvcHJveHlfc2QyYy9zZXJ2aWNlL2QyYy5lbmNyeXB0aW9uLnNldCIsZGF0YTp7ZGF0YTpKU09OLnN0cmluZ2lmeShwKX19KS5kb25lKGZ1bmN0aW9uKGgpe2gmJihsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgiZm9ybUZpbGxEYXRhIixoLmRhdGEpLGsoKSl9KX19fSgpOwovKiogL2pzL2poYXNodGFibGUuanMgKiovCnZhciBfX19kMmNfamhhc2h0YWJsZWpzX2Nfb249IjIwMjUtMDUtMjMgMTc6MDc6MDciOyd1c2Ugc3RyaWN0Jzt2YXIgX19fZDJjX2poYXNodGFibGVqc19jX29uPSIyMDI0LTAxLTMxIDE0OjM1OjE5IjsidXNlIHN0cmljdCI7X19fZDJjX2poYXNodGFibGVqc19jX29uPSIyMDIzLTAxLTEyIDExOjMzOjQ5IjsidXNlIHN0cmljdCI7X19fZDJjX2poYXNodGFibGVqc19jX29uPSIyMDIzLTAxLTEyIDEwOjQzOjMzIjsidXNlIHN0cmljdCI7X19fZDJjX2poYXNodGFibGVqc19jX29uPSIyMDIxLTEyLTE1IDEyOjQwOjEzIjsidXNlIHN0cmljdCI7CnZhciBIYXNodGFibGU9ZnVuY3Rpb24oKXtmdW5jdGlvbiB1KGEpe2lmKCJzdHJpbmciPT10eXBlb2YgYSlyZXR1cm4gYTtpZigiZnVuY3Rpb24iPT10eXBlb2YgYS5oYXNoQ29kZSlyZXR1cm4gYT1hLmhhc2hDb2RlKCksInN0cmluZyI9PXR5cGVvZiBhP2E6dShhKTtpZigiZnVuY3Rpb24iPT10eXBlb2YgYS50b1N0cmluZylyZXR1cm4gYS50b1N0cmluZygpO3RyeXtyZXR1cm4gU3RyaW5nKGEpfWNhdGNoKGMpe3JldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoYSl9fWZ1bmN0aW9uIEIoYSxjKXtyZXR1cm4gYS5lcXVhbHMoYyl9ZnVuY3Rpb24gQyhhLGMpe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBjLmVxdWFscz9jLmVxdWFscyhhKTphPT09Y31mdW5jdGlvbiB2KGEpe3JldHVybiBmdW5jdGlvbihjKXtpZihudWxsPT09Yyl0aHJvdyBFcnJvcigibnVsbCBpcyBub3QgYSB2YWxpZCAiK2EpO2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgYyl0aHJvdyBFcnJvcihhKwoiIG11c3Qgbm90IGJlIHVuZGVmaW5lZCIpO319ZnVuY3Rpb24gcShhLGMsaCxkKXt0aGlzWzBdPWE7dGhpcy5lbnRyaWVzPVtdO3RoaXMuYWRkRW50cnkoYyxoKTtudWxsIT09ZCYmKHRoaXMuZ2V0RXF1YWxpdHlGdW5jdGlvbj1mdW5jdGlvbigpe3JldHVybiBkfSl9ZnVuY3Rpb24gcihhKXtyZXR1cm4gZnVuY3Rpb24oYyl7Zm9yKHZhciBoPXRoaXMuZW50cmllcy5sZW5ndGgsZCxrPXRoaXMuZ2V0RXF1YWxpdHlGdW5jdGlvbihjKTtoLS07KWlmKGQ9dGhpcy5lbnRyaWVzW2hdLGsoYyxkWzBdKSlzd2l0Y2goYSl7Y2FzZSAwOnJldHVybiEwO2Nhc2UgMTpyZXR1cm4gZDtjYXNlIDI6cmV0dXJuW2gsZFsxXV19cmV0dXJuITF9fWZ1bmN0aW9uIHcoYSl7cmV0dXJuIGZ1bmN0aW9uKGMpe2Zvcih2YXIgaD1jLmxlbmd0aCxkPTAsaz10aGlzLmVudHJpZXMubGVuZ3RoO2Q8azsrK2QpY1toK2RdPXRoaXMuZW50cmllc1tkXVthXX19ZnVuY3Rpb24gbShhLGMpe3JldHVybihhPWFbY10pJiYKYSBpbnN0YW5jZW9mIHE\/YTpudWxsfWZ1bmN0aW9uIHgoYSxjKXt2YXIgaD10aGlzLGQ9W10saz17fSxuPSJmdW5jdGlvbiI9PXR5cGVvZiBhP2E6dSxEPSJmdW5jdGlvbiI9PXR5cGVvZiBjP2M6bnVsbDt0aGlzLnB1dD1mdW5jdGlvbihiLGUpe3AoYik7eShlKTt2YXIgZj1uKGIpLGcsbD1udWxsOyhnPW0oayxmKSk\/KGY9Zy5nZXRFbnRyeUZvcktleShiKSk\/KGw9ZlsxXSxmWzFdPWUpOmcuYWRkRW50cnkoYixlKTooZz1uZXcgcShmLGIsZSxEKSxkW2QubGVuZ3RoXT1nLGtbZl09Zyk7cmV0dXJuIGx9O3RoaXMuZ2V0PWZ1bmN0aW9uKGIpe3AoYik7dmFyIGU9bihiKTtpZihlPW0oayxlKSlpZihiPWUuZ2V0RW50cnlGb3JLZXkoYikpcmV0dXJuIGJbMV07cmV0dXJuIG51bGx9O3RoaXMuY29udGFpbnNLZXk9ZnVuY3Rpb24oYil7cChiKTt2YXIgZT1uKGIpO3JldHVybihlPW0oayxlKSk\/ZS5jb250YWluc0tleShiKTohMX07dGhpcy5jb250YWluc1ZhbHVlPWZ1bmN0aW9uKGIpe3koYik7CmZvcih2YXIgZT1kLmxlbmd0aDtlLS07KWlmKGRbZV0uY29udGFpbnNWYWx1ZShiKSlyZXR1cm4hMDtyZXR1cm4hMX07dGhpcy5jbGVhcj1mdW5jdGlvbigpe2QubGVuZ3RoPTA7az17fX07dGhpcy5pc0VtcHR5PWZ1bmN0aW9uKCl7cmV0dXJuIWQubGVuZ3RofTt2YXIgdD1mdW5jdGlvbihiKXtyZXR1cm4gZnVuY3Rpb24oKXtmb3IodmFyIGU9W10sZj1kLmxlbmd0aDtmLS07KWRbZl1bYl0oZSk7cmV0dXJuIGV9fTt0aGlzLmtleXM9dCgia2V5cyIpO3RoaXMudmFsdWVzPXQoInZhbHVlcyIpO3RoaXMuZW50cmllcz10KCJnZXRFbnRyaWVzIik7dGhpcy5yZW1vdmU9ZnVuY3Rpb24oYil7cChiKTt2YXIgZT1uKGIpLGY9bnVsbCxnPW0oayxlKTtpZihnJiYoZj1nLnJlbW92ZUVudHJ5Rm9yS2V5KGIpLG51bGwhPT1mJiYhZy5lbnRyaWVzLmxlbmd0aCkpe2E6e2ZvcihiPWQubGVuZ3RoO2ItLTspaWYoZz1kW2JdLGU9PT1nWzBdKWJyZWFrIGE7Yj1udWxsfXooZCxiKTtkZWxldGUga1tlXX1yZXR1cm4gZn07CnRoaXMuc2l6ZT1mdW5jdGlvbigpe2Zvcih2YXIgYj0wLGU9ZC5sZW5ndGg7ZS0tOyliKz1kW2VdLmVudHJpZXMubGVuZ3RoO3JldHVybiBifTt0aGlzLmVhY2g9ZnVuY3Rpb24oYil7Zm9yKHZhciBlPWguZW50cmllcygpLGY9ZS5sZW5ndGgsZztmLS07KWc9ZVtmXSxiKGdbMF0sZ1sxXSl9O3RoaXMucHV0QWxsPWZ1bmN0aW9uKGIsZSl7Yj1iLmVudHJpZXMoKTtmb3IodmFyIGYsZyxsLEE9Yi5sZW5ndGgsRT0iZnVuY3Rpb24iPT10eXBlb2YgZTtBLS07KWY9YltBXSxnPWZbMF0sZj1mWzFdLEUmJihsPWguZ2V0KGcpKSYmKGY9ZShnLGwsZikpLGgucHV0KGcsZil9O3RoaXMuY2xvbmU9ZnVuY3Rpb24oKXt2YXIgYj1uZXcgeChhLGMpO2IucHV0QWxsKGgpO3JldHVybiBifX12YXIgej0iZnVuY3Rpb24iPT10eXBlb2YgQXJyYXkucHJvdG90eXBlLnNwbGljZT9mdW5jdGlvbihhLGMpe2Euc3BsaWNlKGMsMSl9OmZ1bmN0aW9uKGEsYyl7dmFyIGg7aWYoYz09PWEubGVuZ3RoLTEpYS5sZW5ndGg9CmM7ZWxzZXt2YXIgZD1hLnNsaWNlKGMrMSk7YS5sZW5ndGg9Yzt2YXIgaz0wO2ZvcihoPWQubGVuZ3RoO2s8aDsrK2spYVtjK2tdPWRba119fSxwPXYoImtleSIpLHk9digidmFsdWUiKTtxLnByb3RvdHlwZT17Z2V0RXF1YWxpdHlGdW5jdGlvbjpmdW5jdGlvbihhKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgYS5lcXVhbHM\/QjpDfSxnZXRFbnRyeUZvcktleTpyKDEpLGdldEVudHJ5QW5kSW5kZXhGb3JLZXk6cigyKSxyZW1vdmVFbnRyeUZvcktleTpmdW5jdGlvbihhKXtyZXR1cm4oYT10aGlzLmdldEVudHJ5QW5kSW5kZXhGb3JLZXkoYSkpPyh6KHRoaXMuZW50cmllcyxhWzBdKSxhWzFdKTpudWxsfSxhZGRFbnRyeTpmdW5jdGlvbihhLGMpe3RoaXMuZW50cmllc1t0aGlzLmVudHJpZXMubGVuZ3RoXT1bYSxjXX0sa2V5czp3KDApLHZhbHVlczp3KDEpLGdldEVudHJpZXM6ZnVuY3Rpb24oYSl7Zm9yKHZhciBjPWEubGVuZ3RoLGg9MCxkPXRoaXMuZW50cmllcy5sZW5ndGg7aDxkOysraClhW2MrCmhdPXRoaXMuZW50cmllc1toXS5zbGljZSgwKX0sY29udGFpbnNLZXk6cigwKSxjb250YWluc1ZhbHVlOmZ1bmN0aW9uKGEpe2Zvcih2YXIgYz10aGlzLmVudHJpZXMubGVuZ3RoO2MtLTspaWYoYT09PXRoaXMuZW50cmllc1tjXVsxXSlyZXR1cm4hMDtyZXR1cm4hMX19O3JldHVybiB4fSgpOwovKiogL2pzL25ld2NhcnMuanMgKiovCnZhciBfX19kMmNfbmV3Y2Fyc2pzX2Nfb249IjIwMjYtMDEtMTIgMTA6MTQ6MTIiOyd1c2Ugc3RyaWN0Jzt2YXIgJGpzY29tcD0kanNjb21wfHx7fTskanNjb21wLnNjb3BlPXt9OyRqc2NvbXAuQVNTVU1FX0VTNT0hMTskanNjb21wLkFTU1VNRV9OT19OQVRJVkVfTUFQPSExOyRqc2NvbXAuQVNTVU1FX05PX05BVElWRV9TRVQ9ITE7JGpzY29tcC5TSU1QTEVfRlJPVU5EX1BPTFlGSUxMPSExOyRqc2NvbXAuSVNPTEFURV9QT0xZRklMTFM9ITE7JGpzY29tcC5GT1JDRV9QT0xZRklMTF9QUk9NSVNFPSExOyRqc2NvbXAuRk9SQ0VfUE9MWUZJTExfUFJPTUlTRV9XSEVOX05PX1VOSEFORExFRF9SRUpFQ1RJT049ITE7JGpzY29tcC5kZWZpbmVQcm9wZXJ0eT0kanNjb21wLkFTU1VNRV9FUzV8fCJmdW5jdGlvbiI9PXR5cGVvZiBPYmplY3QuZGVmaW5lUHJvcGVydGllcz9PYmplY3QuZGVmaW5lUHJvcGVydHk6ZnVuY3Rpb24oYSxiLGUpe2lmKGE9PUFycmF5LnByb3RvdHlwZXx8YT09T2JqZWN0LnByb3RvdHlwZSlyZXR1cm4gYTthW2JdPWUudmFsdWU7cmV0dXJuIGF9OwokanNjb21wLmdldEdsb2JhbD1mdW5jdGlvbihhKXthPVsib2JqZWN0Ij09dHlwZW9mIGdsb2JhbFRoaXMmJmdsb2JhbFRoaXMsYSwib2JqZWN0Ij09dHlwZW9mIHdpbmRvdyYmd2luZG93LCJvYmplY3QiPT10eXBlb2Ygc2VsZiYmc2VsZiwib2JqZWN0Ij09dHlwZW9mIGdsb2JhbCYmZ2xvYmFsXTtmb3IodmFyIGI9MDtiPGEubGVuZ3RoOysrYil7dmFyIGU9YVtiXTtpZihlJiZlLk1hdGg9PU1hdGgpcmV0dXJuIGV9dGhyb3cgRXJyb3IoIkNhbm5vdCBmaW5kIGdsb2JhbCBvYmplY3QiKTt9OyRqc2NvbXAuZ2xvYmFsPSRqc2NvbXAuZ2V0R2xvYmFsKHRoaXMpOyRqc2NvbXAuSVNfU1lNQk9MX05BVElWRT0iZnVuY3Rpb24iPT09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PT10eXBlb2YgU3ltYm9sKCJ4Iik7JGpzY29tcC5UUlVTVF9FUzZfUE9MWUZJTExTPSEkanNjb21wLklTT0xBVEVfUE9MWUZJTExTfHwkanNjb21wLklTX1NZTUJPTF9OQVRJVkU7JGpzY29tcC5wb2x5ZmlsbHM9e307CiRqc2NvbXAucHJvcGVydHlUb1BvbHlmaWxsU3ltYm9sPXt9OyRqc2NvbXAuUE9MWUZJTExfUFJFRklYPSIkanNjcCQiO3ZhciAkanNjb21wJGxvb2t1cFBvbHlmaWxsZWRWYWx1ZT1mdW5jdGlvbihhLGIpe3ZhciBlPSRqc2NvbXAucHJvcGVydHlUb1BvbHlmaWxsU3ltYm9sW2JdO2lmKG51bGw9PWUpcmV0dXJuIGFbYl07ZT1hW2VdO3JldHVybiB2b2lkIDAhPT1lP2U6YVtiXX07JGpzY29tcC5wb2x5ZmlsbD1mdW5jdGlvbihhLGIsZSxnKXtiJiYoJGpzY29tcC5JU09MQVRFX1BPTFlGSUxMUz8kanNjb21wLnBvbHlmaWxsSXNvbGF0ZWQoYSxiLGUsZyk6JGpzY29tcC5wb2x5ZmlsbFVuaXNvbGF0ZWQoYSxiLGUsZykpfTsKJGpzY29tcC5wb2x5ZmlsbFVuaXNvbGF0ZWQ9ZnVuY3Rpb24oYSxiLGUsZyl7ZT0kanNjb21wLmdsb2JhbDthPWEuc3BsaXQoIi4iKTtmb3IoZz0wO2c8YS5sZW5ndGgtMTtnKyspe3ZhciBoPWFbZ107aWYoIShoIGluIGUpKXJldHVybjtlPWVbaF19YT1hW2EubGVuZ3RoLTFdO2c9ZVthXTtiPWIoZyk7YiE9ZyYmbnVsbCE9YiYmJGpzY29tcC5kZWZpbmVQcm9wZXJ0eShlLGEse2NvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpifSl9OwokanNjb21wLnBvbHlmaWxsSXNvbGF0ZWQ9ZnVuY3Rpb24oYSxiLGUsZyl7dmFyIGg9YS5zcGxpdCgiLiIpO2E9MT09PWgubGVuZ3RoO2c9aFswXTtnPSFhJiZnIGluICRqc2NvbXAucG9seWZpbGxzPyRqc2NvbXAucG9seWZpbGxzOiRqc2NvbXAuZ2xvYmFsO2Zvcih2YXIgbj0wO248aC5sZW5ndGgtMTtuKyspe3ZhciB0PWhbbl07aWYoISh0IGluIGcpKXJldHVybjtnPWdbdF19aD1oW2gubGVuZ3RoLTFdO2U9JGpzY29tcC5JU19TWU1CT0xfTkFUSVZFJiYiZXM2Ij09PWU\/Z1toXTpudWxsO2I9YihlKTtudWxsIT1iJiYoYT8kanNjb21wLmRlZmluZVByb3BlcnR5KCRqc2NvbXAucG9seWZpbGxzLGgse2NvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpifSk6YiE9PWUmJih2b2lkIDA9PT0kanNjb21wLnByb3BlcnR5VG9Qb2x5ZmlsbFN5bWJvbFtoXSYmKGU9MUU5Kk1hdGgucmFuZG9tKCk+Pj4wLCRqc2NvbXAucHJvcGVydHlUb1BvbHlmaWxsU3ltYm9sW2hdPSRqc2NvbXAuSVNfU1lNQk9MX05BVElWRT8KJGpzY29tcC5nbG9iYWwuU3ltYm9sKGgpOiRqc2NvbXAuUE9MWUZJTExfUFJFRklYK2UrIiQiK2gpLCRqc2NvbXAuZGVmaW5lUHJvcGVydHkoZywkanNjb21wLnByb3BlcnR5VG9Qb2x5ZmlsbFN5bWJvbFtoXSx7Y29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmJ9KSkpfTskanNjb21wLnVuZGVyc2NvcmVQcm90b0NhbkJlU2V0PWZ1bmN0aW9uKCl7dmFyIGE9e2E6ITB9LGI9e307dHJ5e3JldHVybiBiLl9fcHJvdG9fXz1hLGIuYX1jYXRjaChlKXt9cmV0dXJuITF9OwokanNjb21wLnNldFByb3RvdHlwZU9mPSRqc2NvbXAuVFJVU1RfRVM2X1BPTFlGSUxMUyYmImZ1bmN0aW9uIj09dHlwZW9mIE9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2Y6JGpzY29tcC51bmRlcnNjb3JlUHJvdG9DYW5CZVNldCgpP2Z1bmN0aW9uKGEsYil7YS5fX3Byb3RvX189YjtpZihhLl9fcHJvdG9fXyE9PWIpdGhyb3cgbmV3IFR5cGVFcnJvcihhKyIgaXMgbm90IGV4dGVuc2libGUiKTtyZXR1cm4gYX06bnVsbDskanNjb21wLmFycmF5SXRlcmF0b3JJbXBsPWZ1bmN0aW9uKGEpe3ZhciBiPTA7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGI8YS5sZW5ndGg\/e2RvbmU6ITEsdmFsdWU6YVtiKytdfTp7ZG9uZTohMH19fTskanNjb21wLmFycmF5SXRlcmF0b3I9ZnVuY3Rpb24oYSl7cmV0dXJue25leHQ6JGpzY29tcC5hcnJheUl0ZXJhdG9ySW1wbChhKX19OwokanNjb21wLm1ha2VJdGVyYXRvcj1mdW5jdGlvbihhKXt2YXIgYj0idW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmU3ltYm9sLml0ZXJhdG9yJiZhW1N5bWJvbC5pdGVyYXRvcl07cmV0dXJuIGI\/Yi5jYWxsKGEpOiRqc2NvbXAuYXJyYXlJdGVyYXRvcihhKX07JGpzY29tcC5nZW5lcmF0b3I9e307JGpzY29tcC5nZW5lcmF0b3IuZW5zdXJlSXRlcmF0b3JSZXN1bHRJc09iamVjdF89ZnVuY3Rpb24oYSl7aWYoIShhIGluc3RhbmNlb2YgT2JqZWN0KSl0aHJvdyBuZXcgVHlwZUVycm9yKCJJdGVyYXRvciByZXN1bHQgIithKyIgaXMgbm90IGFuIG9iamVjdCIpO307CiRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQ9ZnVuY3Rpb24oKXt0aGlzLmlzUnVubmluZ189ITE7dGhpcy55aWVsZEFsbEl0ZXJhdG9yXz1udWxsO3RoaXMueWllbGRSZXN1bHQ9dm9pZCAwO3RoaXMubmV4dEFkZHJlc3M9MTt0aGlzLmZpbmFsbHlBZGRyZXNzXz10aGlzLmNhdGNoQWRkcmVzc189MDt0aGlzLmZpbmFsbHlDb250ZXh0c189dGhpcy5hYnJ1cHRDb21wbGV0aW9uXz1udWxsfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5zdGFydF89ZnVuY3Rpb24oKXtpZih0aGlzLmlzUnVubmluZ18pdGhyb3cgbmV3IFR5cGVFcnJvcigiR2VuZXJhdG9yIGlzIGFscmVhZHkgcnVubmluZyIpO3RoaXMuaXNSdW5uaW5nXz0hMH07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuc3RvcF89ZnVuY3Rpb24oKXt0aGlzLmlzUnVubmluZ189ITF9OwokanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5qdW1wVG9FcnJvckhhbmRsZXJfPWZ1bmN0aW9uKCl7dGhpcy5uZXh0QWRkcmVzcz10aGlzLmNhdGNoQWRkcmVzc198fHRoaXMuZmluYWxseUFkZHJlc3NffTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5uZXh0Xz1mdW5jdGlvbihhKXt0aGlzLnlpZWxkUmVzdWx0PWF9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLnRocm93Xz1mdW5jdGlvbihhKXt0aGlzLmFicnVwdENvbXBsZXRpb25fPXtleGNlcHRpb246YSxpc0V4Y2VwdGlvbjohMH07dGhpcy5qdW1wVG9FcnJvckhhbmRsZXJfKCl9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLnJldHVybj1mdW5jdGlvbihhKXt0aGlzLmFicnVwdENvbXBsZXRpb25fPXtyZXR1cm46YX07dGhpcy5uZXh0QWRkcmVzcz10aGlzLmZpbmFsbHlBZGRyZXNzX307CiRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmp1bXBUaHJvdWdoRmluYWxseUJsb2Nrcz1mdW5jdGlvbihhKXt0aGlzLmFicnVwdENvbXBsZXRpb25fPXtqdW1wVG86YX07dGhpcy5uZXh0QWRkcmVzcz10aGlzLmZpbmFsbHlBZGRyZXNzX307JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUueWllbGQ9ZnVuY3Rpb24oYSxiKXt0aGlzLm5leHRBZGRyZXNzPWI7cmV0dXJue3ZhbHVlOmF9fTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS55aWVsZEFsbD1mdW5jdGlvbihhLGIpe2E9JGpzY29tcC5tYWtlSXRlcmF0b3IoYSk7dmFyIGU9YS5uZXh0KCk7JGpzY29tcC5nZW5lcmF0b3IuZW5zdXJlSXRlcmF0b3JSZXN1bHRJc09iamVjdF8oZSk7aWYoZS5kb25lKXRoaXMueWllbGRSZXN1bHQ9ZS52YWx1ZSx0aGlzLm5leHRBZGRyZXNzPWI7ZWxzZSByZXR1cm4gdGhpcy55aWVsZEFsbEl0ZXJhdG9yXz1hLHRoaXMueWllbGQoZS52YWx1ZSxiKX07CiRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmp1bXBUbz1mdW5jdGlvbihhKXt0aGlzLm5leHRBZGRyZXNzPWF9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmp1bXBUb0VuZD1mdW5jdGlvbigpe3RoaXMubmV4dEFkZHJlc3M9MH07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuc2V0Q2F0Y2hGaW5hbGx5QmxvY2tzPWZ1bmN0aW9uKGEsYil7dGhpcy5jYXRjaEFkZHJlc3NfPWE7dm9pZCAwIT1iJiYodGhpcy5maW5hbGx5QWRkcmVzc189Yil9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLnNldEZpbmFsbHlCbG9jaz1mdW5jdGlvbihhKXt0aGlzLmNhdGNoQWRkcmVzc189MDt0aGlzLmZpbmFsbHlBZGRyZXNzXz1hfHwwfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5sZWF2ZVRyeUJsb2NrPWZ1bmN0aW9uKGEsYil7dGhpcy5uZXh0QWRkcmVzcz1hO3RoaXMuY2F0Y2hBZGRyZXNzXz1ifHwwfTsKJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuZW50ZXJDYXRjaEJsb2NrPWZ1bmN0aW9uKGEpe3RoaXMuY2F0Y2hBZGRyZXNzXz1hfHwwO2E9dGhpcy5hYnJ1cHRDb21wbGV0aW9uXy5leGNlcHRpb247dGhpcy5hYnJ1cHRDb21wbGV0aW9uXz1udWxsO3JldHVybiBhfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5lbnRlckZpbmFsbHlCbG9jaz1mdW5jdGlvbihhLGIsZSl7ZT90aGlzLmZpbmFsbHlDb250ZXh0c19bZV09dGhpcy5hYnJ1cHRDb21wbGV0aW9uXzp0aGlzLmZpbmFsbHlDb250ZXh0c189W3RoaXMuYWJydXB0Q29tcGxldGlvbl9dO3RoaXMuY2F0Y2hBZGRyZXNzXz1hfHwwO3RoaXMuZmluYWxseUFkZHJlc3NfPWJ8fDB9OwokanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5sZWF2ZUZpbmFsbHlCbG9jaz1mdW5jdGlvbihhLGIpe2I9dGhpcy5maW5hbGx5Q29udGV4dHNfLnNwbGljZShifHwwKVswXTtpZihiPXRoaXMuYWJydXB0Q29tcGxldGlvbl89dGhpcy5hYnJ1cHRDb21wbGV0aW9uX3x8Yil7aWYoYi5pc0V4Y2VwdGlvbilyZXR1cm4gdGhpcy5qdW1wVG9FcnJvckhhbmRsZXJfKCk7dm9pZCAwIT1iLmp1bXBUbyYmdGhpcy5maW5hbGx5QWRkcmVzc188Yi5qdW1wVG8\/KHRoaXMubmV4dEFkZHJlc3M9Yi5qdW1wVG8sdGhpcy5hYnJ1cHRDb21wbGV0aW9uXz1udWxsKTp0aGlzLm5leHRBZGRyZXNzPXRoaXMuZmluYWxseUFkZHJlc3NffWVsc2UgdGhpcy5uZXh0QWRkcmVzcz1hfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5mb3JJbj1mdW5jdGlvbihhKXtyZXR1cm4gbmV3ICRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQuUHJvcGVydHlJdGVyYXRvcihhKX07CiRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQuUHJvcGVydHlJdGVyYXRvcj1mdW5jdGlvbihhKXt0aGlzLm9iamVjdF89YTt0aGlzLnByb3BlcnRpZXNfPVtdO2Zvcih2YXIgYiBpbiBhKXRoaXMucHJvcGVydGllc18ucHVzaChiKTt0aGlzLnByb3BlcnRpZXNfLnJldmVyc2UoKX07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5Qcm9wZXJ0eUl0ZXJhdG9yLnByb3RvdHlwZS5nZXROZXh0PWZ1bmN0aW9uKCl7Zm9yKDswPHRoaXMucHJvcGVydGllc18ubGVuZ3RoOyl7dmFyIGE9dGhpcy5wcm9wZXJ0aWVzXy5wb3AoKTtpZihhIGluIHRoaXMub2JqZWN0XylyZXR1cm4gYX1yZXR1cm4gbnVsbH07JGpzY29tcC5nZW5lcmF0b3IuRW5naW5lXz1mdW5jdGlvbihhKXt0aGlzLmNvbnRleHRfPW5ldyAkanNjb21wLmdlbmVyYXRvci5Db250ZXh0O3RoaXMucHJvZ3JhbV89YX07CiRqc2NvbXAuZ2VuZXJhdG9yLkVuZ2luZV8ucHJvdG90eXBlLm5leHRfPWZ1bmN0aW9uKGEpe3RoaXMuY29udGV4dF8uc3RhcnRfKCk7aWYodGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yXylyZXR1cm4gdGhpcy55aWVsZEFsbFN0ZXBfKHRoaXMuY29udGV4dF8ueWllbGRBbGxJdGVyYXRvcl8ubmV4dCxhLHRoaXMuY29udGV4dF8ubmV4dF8pO3RoaXMuY29udGV4dF8ubmV4dF8oYSk7cmV0dXJuIHRoaXMubmV4dFN0ZXBfKCl9OwokanNjb21wLmdlbmVyYXRvci5FbmdpbmVfLnByb3RvdHlwZS5yZXR1cm5fPWZ1bmN0aW9uKGEpe3RoaXMuY29udGV4dF8uc3RhcnRfKCk7dmFyIGI9dGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yXztpZihiKXJldHVybiB0aGlzLnlpZWxkQWxsU3RlcF8oInJldHVybiJpbiBiP2JbInJldHVybiJdOmZ1bmN0aW9uKGUpe3JldHVybnt2YWx1ZTplLGRvbmU6ITB9fSxhLHRoaXMuY29udGV4dF8ucmV0dXJuKTt0aGlzLmNvbnRleHRfLnJldHVybihhKTtyZXR1cm4gdGhpcy5uZXh0U3RlcF8oKX07CiRqc2NvbXAuZ2VuZXJhdG9yLkVuZ2luZV8ucHJvdG90eXBlLnRocm93Xz1mdW5jdGlvbihhKXt0aGlzLmNvbnRleHRfLnN0YXJ0XygpO2lmKHRoaXMuY29udGV4dF8ueWllbGRBbGxJdGVyYXRvcl8pcmV0dXJuIHRoaXMueWllbGRBbGxTdGVwXyh0aGlzLmNvbnRleHRfLnlpZWxkQWxsSXRlcmF0b3JfWyJ0aHJvdyJdLGEsdGhpcy5jb250ZXh0Xy5uZXh0Xyk7dGhpcy5jb250ZXh0Xy50aHJvd18oYSk7cmV0dXJuIHRoaXMubmV4dFN0ZXBfKCl9OwokanNjb21wLmdlbmVyYXRvci5FbmdpbmVfLnByb3RvdHlwZS55aWVsZEFsbFN0ZXBfPWZ1bmN0aW9uKGEsYixlKXt0cnl7dmFyIGc9YS5jYWxsKHRoaXMuY29udGV4dF8ueWllbGRBbGxJdGVyYXRvcl8sYik7JGpzY29tcC5nZW5lcmF0b3IuZW5zdXJlSXRlcmF0b3JSZXN1bHRJc09iamVjdF8oZyk7aWYoIWcuZG9uZSlyZXR1cm4gdGhpcy5jb250ZXh0Xy5zdG9wXygpLGc7dmFyIGg9Zy52YWx1ZX1jYXRjaChuKXtyZXR1cm4gdGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yXz1udWxsLHRoaXMuY29udGV4dF8udGhyb3dfKG4pLHRoaXMubmV4dFN0ZXBfKCl9dGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yXz1udWxsO2UuY2FsbCh0aGlzLmNvbnRleHRfLGgpO3JldHVybiB0aGlzLm5leHRTdGVwXygpfTsKJGpzY29tcC5nZW5lcmF0b3IuRW5naW5lXy5wcm90b3R5cGUubmV4dFN0ZXBfPWZ1bmN0aW9uKCl7Zm9yKDt0aGlzLmNvbnRleHRfLm5leHRBZGRyZXNzOyl0cnl7dmFyIGE9dGhpcy5wcm9ncmFtXyh0aGlzLmNvbnRleHRfKTtpZihhKXJldHVybiB0aGlzLmNvbnRleHRfLnN0b3BfKCkse3ZhbHVlOmEudmFsdWUsZG9uZTohMX19Y2F0Y2goYil7dGhpcy5jb250ZXh0Xy55aWVsZFJlc3VsdD12b2lkIDAsdGhpcy5jb250ZXh0Xy50aHJvd18oYil9dGhpcy5jb250ZXh0Xy5zdG9wXygpO2lmKHRoaXMuY29udGV4dF8uYWJydXB0Q29tcGxldGlvbl8pe2E9dGhpcy5jb250ZXh0Xy5hYnJ1cHRDb21wbGV0aW9uXzt0aGlzLmNvbnRleHRfLmFicnVwdENvbXBsZXRpb25fPW51bGw7aWYoYS5pc0V4Y2VwdGlvbil0aHJvdyBhLmV4Y2VwdGlvbjtyZXR1cm57dmFsdWU6YS5yZXR1cm4sZG9uZTohMH19cmV0dXJue3ZhbHVlOnZvaWQgMCxkb25lOiEwfX07CiRqc2NvbXAuZ2VuZXJhdG9yLkdlbmVyYXRvcl89ZnVuY3Rpb24oYSl7dGhpcy5uZXh0PWZ1bmN0aW9uKGIpe3JldHVybiBhLm5leHRfKGIpfTt0aGlzLnRocm93PWZ1bmN0aW9uKGIpe3JldHVybiBhLnRocm93XyhiKX07dGhpcy5yZXR1cm49ZnVuY3Rpb24oYil7cmV0dXJuIGEucmV0dXJuXyhiKX07dGhpc1tTeW1ib2wuaXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9fTskanNjb21wLmdlbmVyYXRvci5jcmVhdGVHZW5lcmF0b3I9ZnVuY3Rpb24oYSxiKXtiPW5ldyAkanNjb21wLmdlbmVyYXRvci5HZW5lcmF0b3JfKG5ldyAkanNjb21wLmdlbmVyYXRvci5FbmdpbmVfKGIpKTskanNjb21wLnNldFByb3RvdHlwZU9mJiZhLnByb3RvdHlwZSYmJGpzY29tcC5zZXRQcm90b3R5cGVPZihiLGEucHJvdG90eXBlKTtyZXR1cm4gYn07CiRqc2NvbXAuYXN5bmNFeGVjdXRlUHJvbWlzZUdlbmVyYXRvcj1mdW5jdGlvbihhKXtmdW5jdGlvbiBiKGcpe3JldHVybiBhLm5leHQoZyl9ZnVuY3Rpb24gZShnKXtyZXR1cm4gYS50aHJvdyhnKX1yZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24oZyxoKXtmdW5jdGlvbiBuKHQpe3QuZG9uZT9nKHQudmFsdWUpOlByb21pc2UucmVzb2x2ZSh0LnZhbHVlKS50aGVuKGIsZSkudGhlbihuLGgpfW4oYS5uZXh0KCkpfSl9OyRqc2NvbXAuYXN5bmNFeGVjdXRlUHJvbWlzZUdlbmVyYXRvckZ1bmN0aW9uPWZ1bmN0aW9uKGEpe3JldHVybiAkanNjb21wLmFzeW5jRXhlY3V0ZVByb21pc2VHZW5lcmF0b3IoYSgpKX07JGpzY29tcC5hc3luY0V4ZWN1dGVQcm9taXNlR2VuZXJhdG9yUHJvZ3JhbT1mdW5jdGlvbihhKXtyZXR1cm4gJGpzY29tcC5hc3luY0V4ZWN1dGVQcm9taXNlR2VuZXJhdG9yKG5ldyAkanNjb21wLmdlbmVyYXRvci5HZW5lcmF0b3JfKG5ldyAkanNjb21wLmdlbmVyYXRvci5FbmdpbmVfKGEpKSl9OwpsZXQgJGpzY29tcCRvcHRjaGFpbiR0bXAxOTM3Mzg5ODU5JDA7Cm5ld0NhcnM9e2lzTW9iaWxlOiIxIj09PShudWxsPT0oJGpzY29tcCRvcHRjaGFpbiR0bXAxOTM3Mzg5ODU5JDA9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImlzTW9iaWxlIikpP3ZvaWQgMDokanNjb21wJG9wdGNoYWluJHRtcDE5MzczODk4NTkkMC52YWx1ZSksY29udGFpbmVyOmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJuZXdjYXJDb250YWluZXIiKSxyZXNpemVNYWluV2luZG93OmZ1bmN0aW9uKCl7aWYoIW5ld0NhcnMuaXNNb2JpbGUpe3ZhciBhPSQoIiNyaWdodFNpZGUiKS5oZWlnaHQoKS0zNSxiPSQoIiNuZXdjYXJDb250YWluZXIiKS5oZWlnaHQoKTshaXNOYU4oYSkmJiFpc05hTihiKSYmYT5iJiYoJCgiI25ld2NhckNvbnRhaW5lciIpLmhlaWdodChhKSwkKCIjZm9vdGVyRGl2IikuY3NzKCJwYWRkaW5nIiwiMHB4IikpfX0sc2V0UGF5bWVudFRvb2x0aXBzOigpPT57bmV3Q2Fycy5pc01vYmlsZT8kKCIuZGl2Q2Fyc0JveFdyYXBwZXIiKS5lYWNoKGZ1bmN0aW9uKCl7JCh0aGlzKS5maW5kKCIuZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggLmRpdkNhclBheW1lbnRDb250YWluZXIgLnBheW1lbnRJbmZvQnViYmxlIC5wYXltZW50VG9vbHRpcCIpLmVhY2goZnVuY3Rpb24oKXt0cnl7dmFyIGE9JCh0aGlzKS5hdHRyKCJkYXRhLXRvb2x0aXAiKTsKJCh0aGlzKS5kYXJrVG9vbHRpcCh7Y29udGVudDphLGdyYXZpdHk6ImVhc3QiLHRoZW1lOiJsaWdodCIsdHJpZ2dlcjoiY2xpY2siLGFuaW1hdGlvbjoiZmxpcEluIn0pfWNhdGNoKGIpe319KX0pOiQoIi5kaXZDYXJzQm94V3JhcHBlciIpLmVhY2goZnVuY3Rpb24oKXskKHRoaXMpLmZpbmQoIi5kaXZDYXJTaW5nbGVPdXRlckJveCIpLm9uKCJtb3VzZWVudGVyIG1vdXNlbGVhdmUiLGZ1bmN0aW9uKGEpe3RyeXtpZigkKHRoaXMpLmRhdGEoInRvb2x0aXBDcmVhdGVkIikpcmV0dXJuITE7JCh0aGlzKS5kYXRhKCJ0b29sdGlwQ3JlYXRlZCIsMSk7JCh0aGlzKS5maW5kKCIuZGl2Q2FyUGF5bWVudENvbnRhaW5lclRvb2x0aXAiKS5kYXJrVG9vbHRpcCh7Z3Jhdml0eToid2VzdCIsdGhlbWU6ImxpZ2h0Iix0cmlnZ2VyOiJob3ZlciIsYW5pbWF0aW9uOiJmbGlwSW4ifSl9Y2F0Y2goYil7fX0pfSl9LG5ld0NhcnNGaWx0ZXI6KCk9PntmdW5jdGlvbiBhKCl7dmFyIGM9JCgiLmRpdkNhdGVnb3J5Qm94V3JhcHBlciIpLm1hcChmdW5jdGlvbihkLApmKXtyZXR1cm4gcGFyc2VJbnQoJChmKS5hdHRyKCJuYlZpc2libGUiKSl9KS5nZXQoKS5yZWR1Y2UoZnVuY3Rpb24oZCxmKXtyZXR1cm4gZCtmfSwwKTtyZXR1cm57ZmlsdGVyczp7c3RhdHVzOiJOZXciLGJvZHlTdHlsZTokKCJpbnB1dDpjaGVja2VkLmZpbHRlckNoZWNrLmNhdGVnb3J5IikubWFwKGZ1bmN0aW9uKGQsZil7cmV0dXJuICQoZikudmFsKCl9KS5nZXQoKSxmdWVsVHlwZTokKCJpbnB1dDpjaGVja2VkLmZpbHRlckNoZWNrLmZ1ZWx0eXBlIikubWFwKGZ1bmN0aW9uKGQsZil7cmV0dXJuICQoZikuZGF0YSgiZXNzZW5jZSIpfSkuZ2V0KCksZHJpdmVUcmFpbjokKCJpbnB1dDpjaGVja2VkLmZpbHRlckNoZWNrLmRyaXZldHJhaW4iKS5tYXAoZnVuY3Rpb24oZCxmKXtyZXR1cm4gJChmKS5kYXRhKCJkcml2ZXRyYWluIil9KS5nZXQoKSxtYXhQcmljZTpwLm1heCxtaW5QcmljZTpwLm1pbn0sdmVoaWNsZUNvdW50OmN9fXZhciBiPSExO3RyeXsidW5kZWZpbmVkIj09alF1ZXJ5LmJyb3dzZXIubXNpZT8KYj0hMDo5PD1wYXJzZUludChqUXVlcnkuYnJvd3Nlci52ZXJzaW9uLDEwKSYmKGI9ITApfWNhdGNoKGMpe31pZigidW5kZWZpbmVkIj09dHlwZW9mIGJveEJsb2Nrc3x8MT5ib3hCbG9ja3MubGVuZ3RoKWI9ITE7LTE8d2luZG93LmxvY2F0aW9uLmhyZWYuaW5kZXhPZigiY2FtaW9ucy1jb21tZXJjaWF1eCIpJiYoYj0hMSk7aWYoYil7dmFyIGU9bmV3Q2Fycy5nZXRGaWx0ZXIoKTtiPWdldFVybFZhcnMoKTt2YXIgZz1iLmhhc093blByb3BlcnR5KCJib2R5IiksaD1iLmhhc093blByb3BlcnR5KCJmdWVsIik7bmV3Q2Fycy5jb250YWluZXIucXVlcnlTZWxlY3RvckFsbCgiLmZpbHRlckNoZWNrIikuZm9yRWFjaChjPT57ZyYmYy5jbGFzc0xpc3QuY29udGFpbnMoImNhdGVnb3J5Iil8fGgmJmMuY2xhc3NMaXN0LmNvbnRhaW5zKCJmdWVsdHlwZSIpfHwoYy5jaGVja2VkPSFlLmhhc093blByb3BlcnR5KGMuaWQpfHwhMD09PWVbYy5pZF0pfSk7JCgiI2ZpbHRlck1haW5Cb3giKS5zaG93KCk7CmZvcih2YXIgbiBpbiBib3hCbG9ja3Mpe2I9MDtmb3IodmFyIHQgaW4gYm94QmxvY2tzW25dKWIrKzskKCIjY2xhc3MiK24rIl9jb250YWluZXIiKS5hdHRyKCJuYlZpc2libGUiLGIpfSQoIi5maWx0ZXJDaGVjayIpLm9uKCJjbGljayIsZnVuY3Rpb24oKXt2YXIgYz0kKHRoaXMpO25ld0NhcnMuc2V0RmlsdGVyKGMuYXR0cigiaWQiKSxjLmlzKCI6Y2hlY2tlZCIpKTtzZXRUaW1lb3V0KHgsMTAwKTtpZihjLmhhc0NsYXNzKCJjYXRlZ29yeSIpKXt2YXIgZD1jLnZhbCgpO3NldFRpbWVvdXQoZnVuY3Rpb24oKXtCKGQpfSwxMDApfX0pOyQoIi5yYWRpb1NvcnQiKS5vbigiY2xpY2siLGZ1bmN0aW9uKCl7QygkKHRoaXMpLnZhbCgpKX0pOyQoIi5maWx0ZXJTcGFuIikub24oImNsaWNrIixmdW5jdGlvbigpe3ZhciBjPSQodGhpcyk7bmV3Q2Fycy5zZXRGaWx0ZXIoImZpbHRlclNwYW4iLGMuYXR0cigicmVsIikpO2M9IiMiK2MuYXR0cigicmVsIik7JChjKS50cmlnZ2VyKCJjbGljayIpfSk7CnZhciB5PSIiLHc9IiIsRz1mdW5jdGlvbihjLGQpe3JldHVybiBjLmNvbnNvPT1kLmNvbnNvPzA6Yy5jb25zbz5kLmNvbnNvPzE6LTF9LEg9ZnVuY3Rpb24oYyxkKXtyZXR1cm4gYy5jb25zbz09ZC5jb25zbz8wOmMuY29uc28+ZC5jb25zbz8tMToxfSxJPWZ1bmN0aW9uKGMsZCl7cmV0dXJuIGMucHJpY2U9PWQucHJpY2U\/MDpjLnByaWNlPmQucHJpY2U\/MTotMX0sSj1mdW5jdGlvbihjLGQpe3JldHVybiBjLnByaWNlPT1kLnByaWNlPzA6Yy5wcmljZT5kLnByaWNlPy0xOjF9LEs9ZnVuY3Rpb24oYyxkKXtyZXR1cm4gYy5jYXJNb2RlbD09ZC5jYXJNb2RlbD9jLnllYXI+ZC55ZWFyPy0xOmMueWVhcjxkLnllYXI\/MTowOmMuY2FyTW9kZWw+ZC5jYXJNb2RlbD8xOi0xfSxDPWZ1bmN0aW9uKGMsZCl7dz0idW5kZWZpbmVkIiE9PXR5cGVvZiBkP2Q6eT09Yz8iQXNjIj09dz8iRGVzYyI6IkFzYyI6IkFzYyI7eT1jO25ld0NhcnMuc2V0RmlsdGVyKCJzb3J0QnkiLHkpO25ld0NhcnMuc2V0RmlsdGVyKCJzb3J0RGlyIiwKdyk7Zm9yKHZhciBmIGluIGJveEJsb2Nrcyl7Yz0xO2Q9W107Zm9yKHZhciBtIGluIGJveEJsb2Nrc1tmXSl7dmFyIGw9Ym94QmxvY2tzW2ZdW21dO2wudmlzaWJsZSYmKGRbZC5sZW5ndGhdPWwpfXN3aXRjaCh5KXtjYXNlICJwcmljZSI6IkFzYyI9PXc\/ZC5zb3J0KEkpOmQuc29ydChKKTticmVhaztjYXNlICJtb2RlbCI6ZC5zb3J0KEspO2JyZWFrO2Nhc2UgImNvbnNvIjoiQXNjIj09dz9kLnNvcnQoRyk6ZC5zb3J0KEgpfWQuc29ydChmdW5jdGlvbihrLHUpe3JldHVybiBrLnNwZWNpYWxPcmRlcj09dS5zcGVjaWFsT3JkZXI\/MDprLnNwZWNpYWxPcmRlcj51LnNwZWNpYWxPcmRlcj8xOi0xfSk7Zm9yKGw9MDtsPGQubGVuZ3RoO2wrKylkW2xdLnZpc2libGUmJihkW2xdLnBvc2l0aW9uIT1sKzEmJihkW2xdLnBvc2l0aW9uPWwrMSxBKGYsImZieF8iK2YrIl8iK2RbbF0uaWQsIm1vdmUiLGwrMSkpLGMrKyl9fSxMPWZ1bmN0aW9uKCl7Zm9yKHZhciBjIGluIGJveEJsb2Nrcyl7dmFyIGQ9CjEsZjtmb3IoZiBpbiBib3hCbG9ja3NbY10pe3ZhciBtPWJveEJsb2Nrc1tjXVtmXTttLnZpc2libGUmJm0ucG9zaXRpb24hPWQmJihtLnBvc2l0aW9uPWQsQShjLGYsIm1vdmUiLGQpKTtBKGMsZixtLnZpc2libGU\/InNob3ciOiJoaWRlIik7bS52aXNpYmxlJiZkKyt9JCgiI2NsYXNzIitjKyJfY29udGFpbmVyIikuYXR0cigibmJWaXNpYmxlIixkLTEpfX0sRD1mdW5jdGlvbihjLGQpe2Zvcih2YXIgZj0wLG09MTttPGQ7bSsrKXt2YXIgbD0kKCIjIitjK20pOzA8bC5sZW5ndGgmJmwucHJvcCgiY2hlY2tlZCIpJiYoZis9TWF0aC5wb3coMixtLTEpKX1yZXR1cm4gZn0seD1mdW5jdGlvbigpe3ZhciBjPUQoImZpbHRlckVzc2VuY2VDaGVjayIsNiksZD1EKCJmaWx0ZXJEcml2ZVRyYWluQ2hlY2siLDQpLGY9W10sbT1bXTskKCIuZmlsdGVyQ2hlY2suY2F0ZWdvcnkiKS5lYWNoKGZ1bmN0aW9uKCl7JCh0aGlzKS5pcygiOmNoZWNrZWQiKSYmZi5wdXNoKCQodGhpcykudmFsKCkpfSk7dmFyIGw9CiExOzA8JCgiLmZpbHRlckNoZWNrLmNhck1ha2UiKS5sZW5ndGgmJigkKCIuZmlsdGVyQ2hlY2suY2FyTWFrZSIpLmVhY2goZnVuY3Rpb24oKXskKHRoaXMpLmlzKCI6Y2hlY2tlZCIpJiZtLnB1c2goJCh0aGlzKS52YWwoKSl9KSxsPSEwKTtmb3IodmFyIGsgaW4gYm94QmxvY2tzKXt2YXIgdT0wLHE7Zm9yKHEgaW4gYm94QmxvY2tzW2tdKXt2YXIgTT1wYXJzZUludChib3hCbG9ja3Nba11bcV0uZnVlbCwxMCksdj0hMTt2PSh2PSh2PSh2PSh2PSEocGFyc2VJbnQoYm94QmxvY2tzW2tdW3FdLmRyaXZldHJhaW4sMTApJmQpKXx8IShNJmMpKXx8ISghYm94QmxvY2tzW2tdW3FdLmNhckNhdGVnb3J5fHwtMTwkLmluQXJyYXkoYm94QmxvY2tzW2tdW3FdLmNhckNhdGVnb3J5LGYpKSl8fCEoITE9PT1sfHwtMTwkLmluQXJyYXkoYm94QmxvY2tzW2tdW3FdLmNhck1ha2UsbSkmJmwpKXx8ISgwPT1ib3hCbG9ja3Nba11bcV0ucHJpY2V8fGJveEJsb2Nrc1trXVtxXS5wcmljZTw9cC5tYXgmJgpib3hCbG9ja3Nba11bcV0ucHJpY2U+PXAubWluKTtib3hCbG9ja3Nba11bcV0udmlzaWJsZT0hdjtib3hCbG9ja3Nba11bcV0udmlzaWJsZSYmdSsrfSQoIiNjbGFzcyIraysiX2NvbnRhaW5lciIpLmF0dHIoIm5iVmlzaWJsZSIsdSk7QihrKX1MKCk7IjEiPT09JCgiYm9keSIpLmRhdGEoImZpbHRlcnM6bG9hZCIpJiYkKCJib2R5IikudHJpZ2dlcigkLmV4dGVuZCh7dHlwZToiZmlsdGVyczpjaGFuZ2UifSxhKCkpKX0sQj1mdW5jdGlvbihjKXt2YXIgZD0kKCIjY2xhc3MiK2MrIl9jb250YWluZXIiKTtpZigwPGQubGVuZ3RoKXt2YXIgZj0kKCIjc2hvd0NsYXNzXyIrYyk7MD09PWYubGVuZ3RoJiYoZj0kKCdpbnB1dFtkYXRhLWVzc2VuY2U9IicrYysnIl0nKSk7Zj1mLmlzKCI6Y2hlY2tlZCIpOzA8cGFyc2VJbnQoZC5hdHRyKCJuYlZpc2libGUiKSwxMCk\/KGYmJihkLmF0dHIoInN0YXRlIiwib3BlbiIpLGQuZmFkZUluKDYwMCksbmV3Q2Fycy5pc01vYmlsZXx8KGY9TWF0aC5jZWlsKHBhcnNlSW50KGQuYXR0cigibmJWaXNpYmxlIiksCjEwKS8zKSwkKCIuQ0xBU1NfIitjKS5hbmltYXRlKHtoZWlnaHQ6ci5oZWlnaHQqZisicHgifSw2MDApKSxmPSEwKSxmfHxFKGQpKTpFKGQpfX0sRT1mdW5jdGlvbihjKXtjLmF0dHIoInN0YXRlIiwiY2xvc2UiKTtjLmZhZGVPdXQoNjAwKTtyZXR1cm4hMH0sQT1mdW5jdGlvbihjLGQsZixtLGwpe2lmKCJoaWRlIj09ZikkKCIjIitkKS5hbmltYXRlKHtvcGFjaXR5OjB9LDYwMCxmdW5jdGlvbigpeyQodGhpcykuYXR0cigiaXMtYm94LXZpc2libGUiLDApLmNzcygidmlzaWJpbGl0eSIsImhpZGRlbiIpfSksYm94QmxvY2tzW2NdW2RdLnZpc2libGU9ITEsc2l0ZVBhZ2UuaXNNb2JpbGUmJihuZXdDYXJzLmNvbnRhaW5lci5xdWVyeVNlbGVjdG9yKGAjJHtkfWApLmhpZGRlbj0hMCk7ZWxzZSBpZigic2hvdyI9PWYpJCgiIyIrZCkuY3NzKCJ2aXNpYmlsaXR5IiwidmlzaWJsZSIpLmFuaW1hdGUoe29wYWNpdHk6MX0sNjAwLGZ1bmN0aW9uKCl7JCh0aGlzKS5hdHRyKCJpcy1ib3gtdmlzaWJsZSIsCjEpfSksYm94QmxvY2tzW2NdW2RdLnZpc2libGU9ITAsc2l0ZVBhZ2UuaXNNb2JpbGUmJihuZXdDYXJzLmNvbnRhaW5lci5xdWVyeVNlbGVjdG9yKGAjJHtkfWApLmhpZGRlbj0hMSk7ZWxzZSBpZighc2l0ZVBhZ2UuaXNNb2JpbGUpe3ZhciBrPSQoIi5kaXZDYXRlZ29yaWVzQm94V3JhcHBlciIpLndpZHRoKCk7Yz1NYXRoLmZsb29yKGsvci53aWR0aCk7Zj1ib3hQb3NpdGlvbnNbZF07az1NYXRoLmZsb29yKGsvYyk7Yz17bGVmdDoiKz0iKygobS0xKSVjKmstKGYtMSklYyprKSsicHgiLHRvcDoiKz0iKyhNYXRoLmZsb29yKChtLTEpL2MpKnIuaGVpZ2h0LU1hdGguZmxvb3IoKGYtMSkvYykqci5oZWlnaHQpKyJweCJ9O3ZvaWQgMD09bD8kKCIjIitkKS5hZGRDbGFzcygiTW92aW5nQm94IikuYW5pbWF0ZShjLDYwMCxmdW5jdGlvbigpeyQodGhpcykucmVtb3ZlQ2xhc3MoIk1vdmluZ0JveCIpfSk6JCgiIyIrZCkuYWRkQ2xhc3MoIk1vdmluZ0JveCIpLmFuaW1hdGUoYyw2MDAsZnVuY3Rpb24oKXskKHRoaXMpLnJlbW92ZUNsYXNzKCJNb3ZpbmdCb3giKTsKZXZhbChsKX0pO2JveFBvc2l0aW9uc1tkXT1tfX0sRj1mdW5jdGlvbigpe3ZhciBjPXt3aWR0aDowLGhlaWdodDowfTskKCcuZGl2Q2FyU2luZ2xlT3V0ZXJCb3hbaXMtYm94LXZpc2libGU9IjEiXTpmaXJzdCcpLmVhY2goZnVuY3Rpb24oKXtjLndpZHRoPSQodGhpcykub3V0ZXJXaWR0aCghMCk7Yy5oZWlnaHQ9JCh0aGlzKS5vdXRlckhlaWdodCghMCl9KTtyZXR1cm4gY30sej05NjA7JCgiLmRpdkNhclNpbmdsZU91dGVyQm94IikuYXR0cigiaXMtYm94LXZpc2libGUiLDEpO3ZhciByPUYoKTswPCQoIkJPRFkuaXNGdWxsV2lkdGhQYWdlIikubGVuZ3RoJiYwPCQoIkJPRFkuaXNQYWdlRnVsbFdpZHRoRW5hYmxlZCIpLmxlbmd0aCYmKDEzMDA8d2luZG93LmlubmVyV2lkdGgmJih6PTEyMDApLCQod2luZG93KS5vbigicmVzaXplIixmdW5jdGlvbigpe3ZhciBjPXo7ej0xMzAwPHdpbmRvdy5pbm5lcldpZHRoPzEyMDA6OTYwO2MhPXomJnNldFRpbWVvdXQoZnVuY3Rpb24oKXtOKCl9KX0pKTsKdmFyIE49ZnVuY3Rpb24oKXt2YXIgYz1yO3I9RigpOyQoIi5kaXZDYXJzQm94V3JhcHBlciIpLmVhY2goZnVuY3Rpb24oKXt2YXIgZD0wOyQodGhpcykuZmluZCgiLmRpdkNhclNpbmdsZU91dGVyQm94IikuZWFjaChmdW5jdGlvbigpe3ZhciBmPXBhcnNlSW50KCQodGhpcykuY3NzKCJ0b3AiKSksbT1wYXJzZUludCgkKHRoaXMpLmNzcygibGVmdCIpKTswPT09ZiYmMD09PW18fCQodGhpcykuY3NzKHt0b3A6ci5oZWlnaHQqKGYvcGFyc2VJbnQoYy5oZWlnaHQpKSsicHgifSkuY3NzKHtsZWZ0OnIud2lkdGgqKG0vcGFyc2VJbnQoYy53aWR0aCkpKyJweCJ9KTsxPT09cGFyc2VJbnQoJCh0aGlzKS5hdHRyKCJpcy1ib3gtdmlzaWJsZSIpKSYmZCsrfSk7ZCYmJCh0aGlzKS5jc3Moe2hlaWdodDpNYXRoLmZsb29yKGQvMykqci5oZWlnaHQrKGQlMz9yLmhlaWdodDowKSsicHgifSl9KX0scD17bWluOjAsbWF4OjFFNn07KGZ1bmN0aW9uKCl7dmFyIGM9JCgiI3ByaWNlUmFuZ2VTbGlkZXJGaWx0ZXJDb250YWluZXIiKTsKaWYoMDxjLmxlbmd0aCl7dmFyIGQ9Yy5maW5kKCJkaXYucmFuZ2Utc2xpZGVyIik7aWYoMDxkLmxlbmd0aCl7dmFyIGY9bnVsbCxtPWZ1bmN0aW9uKGwsayl7cD17bWluOkQyQ1V0aWxzLk51bWJlci5yb3VuZERvd24oay52YWx1ZXNbMF0sMUUzKSxtYXg6RDJDVXRpbHMuTnVtYmVyLnJvdW5kVXAoay52YWx1ZXNbMV0sMUUzKX07bnVsbCE9PWwmJm5ld0NhcnMuc2V0RmlsdGVyKCJzZXRTaG93ZWRWYWx1ZXMiLHAubWluKyI6IitwLm1heCk7Yy5maW5kKCJzcGFuLnByaWNlLW1pbiIpLnRleHQocC5taW4udG9Mb2NhbGVTdHJpbmcoKSk7Yy5maW5kKCJzcGFuLnByaWNlLW1heCIpLnRleHQocC5tYXgudG9Mb2NhbGVTdHJpbmcoKSk7Y2xlYXJUaW1lb3V0KGYpO2Y9c2V0VGltZW91dChmdW5jdGlvbigpe3goKX0sNTAwKX07cD17bWluOkQyQ1V0aWxzLk51bWJlci5yb3VuZERvd24oZC5hdHRyKCJhdHRyLXByaWNlLW1pbiIpKSxtYXg6RDJDVXRpbHMuTnVtYmVyLnJvdW5kRG93bihkLmF0dHIoImF0dHItcHJpY2UtbWF4IikpfTsKZC5zbGlkZXIoe3JhbmdlOiEwLG1pbjpwLm1pbixtYXg6cC5tYXgsc2xpZGU6bSxjaGFuZ2U6bSxjcmVhdGU6ZnVuY3Rpb24obCxrKXtsPW5ld0NhcnMuZ2V0RmlsdGVyKCk7az1bcC5taW4scC5tYXhdOyJzdHJpbmciPT09dHlwZW9mIGwuc2V0U2hvd2VkVmFsdWVzJiYoaz1sLnNldFNob3dlZFZhbHVlcy5zcGxpdCgiOiIpKTtkLnNsaWRlcigidmFsdWVzIixrKTttKG51bGwse3ZhbHVlczprfSk7c2V0VGltZW91dChmdW5jdGlvbigpeyQoImJvZHkiKS50cmlnZ2VyKCQuZXh0ZW5kKHt0eXBlOiJmaWx0ZXJzOmxvYWQifSxhKCkpKX0sM0UzKX19KX19fSkoKTtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dmFyIGM9JCgiI3NvcnRCeSIpO3ZhciBkPSQoIiNzb3J0RGlyIiksZj0ibW9kZWwiO3ZhciBtPSJBc2MiO3ZhciBsPXttb2RlbDoicmFkaW9Nb2RsZSIscHJpY2U6InJhZGlvUHJpY2UiLGNvbnNvOiJyYWRpb0NvbnNvIn07Yy5sZW5ndGgmJmQubGVuZ3RoJiYoZj1jLnZhbCgpLG09ZC52YWwoKSk7CmUmJiJ1bmRlZmluZWQiIT09dHlwZW9mIGxbZS5zb3J0QnldPyhjPWUuc29ydEJ5LG09ZS5zb3J0RGlyKTpjPWY7dHJ5e3ZhciBrPSQoIiMiK2xbY10pO2subGVuZ3RoJiZrLnByb3AoImNoZWNrZWQiLCJjaGVja2VkIik7QyhjLG0pfWNhdGNoKHUpe319LDUwMCk7aWYoJCgiI3RvZ2dsZUZpbHRlckJ0biIpLmxlbmd0aCkkKCIjdG9nZ2xlRmlsdGVyQnRuIikub24oImNsaWNrIHRhcCIsZnVuY3Rpb24oKXskKCIjc2lkZVNpZGViYXJGaWx0ZXIiKS5sZW5ndGgmJigkKCIjc2lkZVNpZGViYXJGaWx0ZXIiKS5oYXNDbGFzcygib3BlbiIpPyQoIiNzaWRlU2lkZWJhckZpbHRlciIpLnJlbW92ZUNsYXNzKCJvcGVuIik6JCgiI3NpZGVTaWRlYmFyRmlsdGVyIikuYWRkQ2xhc3MoIm9wZW4iKSl9KTtpZigkKCIjY2xvc2VTaWRlYmFyQnRuIikubGVuZ3RoKSQoIiNjbG9zZVNpZGViYXJCdG4iKS5vbigiY2xpY2sgdGFwIixmdW5jdGlvbigpeyQoIiNzaWRlU2lkZWJhckZpbHRlciIpLmxlbmd0aCYmCiQoIiNzaWRlU2lkZWJhckZpbHRlciIpLmhhc0NsYXNzKCJvcGVuIikmJiQoIiNzaWRlU2lkZWJhckZpbHRlciIpLnJlbW92ZUNsYXNzKCJvcGVuIil9KTskKCIuc2VsZWN0VG9nZ2xlV3JhcHBlckNhck1ha2UiKS5sZW5ndGgmJigkKCIjc2VsZWN0QWxsQnRuQ2FyTWFrZSIpLm9uKCJjbGljayB0YXAiLGZ1bmN0aW9uKCl7JCgiLmZpbHRlckNoZWNrLmNhck1ha2UiKS5wcm9wKCJjaGVja2VkIiwhMCk7c2V0VGltZW91dCh4LDEwMCl9KSwkKCIjdW5zZWxlY3RBbGxCdG5DYXJNYWtlIikub24oImNsaWNrIHRhcCIsZnVuY3Rpb24oKXskKCIuZmlsdGVyQ2hlY2suY2FyTWFrZSIpLnByb3AoImNoZWNrZWQiLCExKTtzZXRUaW1lb3V0KHgsMTAwKX0pKX19LHNldEZpbHRlcjooYSxiKT0+e3ZhciBlPXt9LGc9X2xvY2FsU3RvcmFnZUdldCgibmV3U3ZwRmlsdGVyIik7bnVsbCE9ZyYmIm9iamVjdCIhPXR5cGVvZiBnJiYoZT1KU09OLnBhcnNlKGcpKTtnPXdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZTsKdm9pZCAwPT1lW2ddJiYoZVtnXT17fSk7ZVtnXVthXT1iO19sb2NhbFN0b3JhZ2VTZXQoIm5ld1N2cEZpbHRlciIsSlNPTi5zdHJpbmdpZnkoZSkpfSxnZXRGaWx0ZXI6KCk9PntsZXQgYT0hMTt2YXIgYj1fbG9jYWxTdG9yYWdlR2V0KCJuZXdTdnBGaWx0ZXIiKTtsZXQgZT17fTtudWxsIT1iJiYib2JqZWN0IiE9dHlwZW9mIGImJihlPUpTT04ucGFyc2UoYikpO2I9d2luZG93LmxvY2F0aW9uLnBhdGhuYW1lO3ZvaWQgMCE9ZVtiXSYmKGE9ZVtiXSk7cmV0dXJuIGF9LHNldFByaWNlVG9vbFRpcHM6KCk9PntuZXdDYXJzLmlzTW9iaWxlfHxkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIuY2FyUHJpY2VJbml0aWFsVG9vbFRpcEljb24iKS5mb3JFYWNoKGE9PntsZXQgYj1hLmRhdGFzZXQudG9vbHRpcDskKGEpLmRhcmtUb29sdGlwKHtjb250ZW50OmIsZ3Jhdml0eToid2VzdCIsdGhlbWU6ImxpZ2h0Iix0cmlnZ2VyOiJob3ZlciIsYW5pbWF0aW9uOiJmbGlwSW4ifSl9KX0sc2V0RXZlbnRzOigpPT4Ke25ld0NhcnMuaXNNb2JpbGV8fCgkKCJpbWdbZXJyb3JpbWddIikub24oImVycm9yIixmdW5jdGlvbigpe3RoaXMuc3JjPSQodGhpcykuYXR0cigiZXJyb3JpbWciKX0pLCQoImltZ1ttdWx0aWltZz10cnVlXSIpLmVhY2goZnVuY3Rpb24oKXskKHRoaXMpLm9uKCJtb3VzZW92ZXIiLGZ1bmN0aW9uKCl7JCh0aGlzKS5hdHRyKCJzcmMiLCQodGhpcykuYXR0cigiY29sb3JpbWciKSl9KTskKHRoaXMpLm9uKCJtb3VzZW91dCIsZnVuY3Rpb24oKXskKHRoaXMpLmF0dHIoInNyYyIsJCh0aGlzKS5hdHRyKCJibGFja2ltZyIpKX0pfSkpfSxnZXRJbnZlbnRvcnlEYXRhOigpPT57Y29uc3QgYT0oYixlKT0+e2xldCBnPSJGUkVOQ0giPT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjYWN0aXZlc2l0ZWxhbmd1YWdlIikudmFsdWU\/ImZyIjoiZW4iO2ZldGNoKGAvJHtnfS9hamF4L2dldEludmVudG9yeURhdGFgLHttZXRob2Q6IlBPU1QiLGhlYWRlcnM6e0FjY2VwdDoiYXBwbGljYXRpb24vanNvbiIsCiJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ7IixjaGFyc2V0OiJVVEYtOCJ9LGJvZHk6bmV3IFVSTFNlYXJjaFBhcmFtcyhiKX0pLnRoZW4oaD0+e2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgaCYmITA9PT1oLm9rJiYyMDA9PWguc3RhdHVzKXJldHVybiBoLmpzb24oKX0pLnRoZW4oaD0+e2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgaC5zdGF0dXMmJiJzdWNjZXNzIj09aC5zdGF0dXMpe2xldCBuPWguY291bnQ7aD1oLnVybDtsZXQgdD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjaW5TdG9ja0xhYmVsIikudmFsdWU7MDxuJiYoZS5wYXJlbnROb2RlLmluc2VydEFkamFjZW50SFRNTCgiYmVmb3JlZW5kIixgPGEgaHJlZj0iJHtofSI+JHtufSAke3R9PC9hPmApLGUucGFyZW50Tm9kZS5oaWRkZW49ITEpfX0pLmNhdGNoKGZ1bmN0aW9uKGgpe30pfTtkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdpbnB1dFtkYXRhLXR5cGU9ImludmRhdGEiXScpLmZvckVhY2goYj0+CnthKHttYWtlOmIuZGF0YXNldC5tYWtlLG1vZGVsOmIuZGF0YXNldC5tb2RlbCx5ZWFyOmIuZGF0YXNldC55ZWFyLHN0eWxlaWRzOmIuZGF0YXNldC5zdHlsZWlkcyxoeWJyaWQ6Yi5kYXRhc2V0Lmh5YnJpZH0sYil9KX0sZ2V0UGF5bWVudERhdGE6KCk9Pntjb25zdCBhPShiLGUsZyk9PiRqc2NvbXAuYXN5bmNFeGVjdXRlUHJvbWlzZUdlbmVyYXRvckZ1bmN0aW9uKGZ1bmN0aW9uKigpe3RyeXtjb25zdCBoPXlpZWxkKHlpZWxkIGZldGNoKGAvJHtlbmNvZGVVUklDb21wb25lbnQoZyl9L2FqYXgvZ2V0U2hvd3Jvb21QYXltZW50SHRtbGAse21ldGhvZDoiUE9TVCIsaGVhZGVyczp7QWNjZXB0OiJhcHBsaWNhdGlvbi9qc29uIiwiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkOyIsY2hhcnNldDoiVVRGLTgifSxib2R5Om5ldyBVUkxTZWFyY2hQYXJhbXMoYil9KSkuanNvbigpO2UucGFyZW50Tm9kZS5xdWVyeVNlbGVjdG9yKCIuc2tlbGV0b24tYmxvY2siKS5oaWRkZW49CiEwO2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgaC5zdGF0dXMmJiJzdWNjZXNzIj09aC5zdGF0dXMpe2xldCBuPWguY29udGVudDswPG4ubGVuZ3RoJiYoZS5wYXJlbnROb2RlLmluc2VydEFkamFjZW50SFRNTCgiYmVmb3JlZW5kIixuKSxlLnBhcmVudE5vZGUuaGlkZGVuPSExKX19Y2F0Y2goaCl7fX0pO2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2lucHV0W2RhdGEtdHlwZT0icGF5bWVudGRhdGEiXScpLmZvckVhY2goYj0+e2xldCBlPSJGUkVOQ0giPT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjYWN0aXZlc2l0ZWxhbmd1YWdlIikudmFsdWU\/ImZyIjoiZW4iO2Eoe3N0eWxlaWQ6Yi5kYXRhc2V0LnN0eWxlaWQsdGl0bGU6Yi5kYXRhc2V0LnRpdGxlLGhyZWY6Yi5kYXRhc2V0LmhyZWYsbGlua1N0eWxlOmIuZGF0YXNldC5saW5rc3R5bGUsbGlua0NsYXNzOmIuZGF0YXNldC5saW5rY2xhc3MsY29udGFpbmVyQ2xhc3M6Yi5kYXRhc2V0LmNvbnRhaW5lcmNsYXNzLHByb21vVGV4dDpiLmRhdGFzZXQucHJvbW90ZXh0LApsYW5nOmV9LGIsZSl9KX19OyQod2luZG93KS5vbigibG9hZCIsZnVuY3Rpb24oKXtuZXdDYXJzLnJlc2l6ZU1haW5XaW5kb3coKX0pO2RvY1JlYWR5QXJyLnB1c2goKCk9PntuZXdDYXJzLmdldFBheW1lbnREYXRhKCk7bmV3Q2Fycy5zZXRQYXltZW50VG9vbHRpcHMoKTtuZXdDYXJzLnNldEV2ZW50cygpO25ld0NhcnMubmV3Q2Fyc0ZpbHRlcigpO25ld0NhcnMuc2V0UHJpY2VUb29sVGlwcygpO25ld0NhcnMuZ2V0SW52ZW50b3J5RGF0YSgpfSk7Ci8qKiAvanMvZDJjX3NoaWZ0X2RpZ2l0YWwuanMgKiovCnZhciBfX19kMmNfZDJjc2hpZnRkaWdpdGFsanNfY19vbj0iMjAyNi0wMy0wNSAxMDozMDowNCI7J3VzZSBzdHJpY3QnO2RvY3VtZW50LmJvZHkuYWRkRXZlbnRMaXN0ZW5lcigiZmlsdGVyczpsb2FkIixuPT4kKCJib2R5IikudHJpZ2dlcihuLmRldGFpbCksITEpO2RvY3VtZW50LmJvZHkuYWRkRXZlbnRMaXN0ZW5lcigiZmlsdGVyczpjaGFuZ2UiLG49PiQoImJvZHkiKS50cmlnZ2VyKG4uZGV0YWlsKSwhMSk7CiQud2lkZ2V0KCJkMmMuaW5WaWV3cG9ydCIse29wdGlvbnM6e29ic2VydmVyOnt0aHJlc2hvbGQ6Wy41XX0sZGlzY29ubmVjdEFmdGVyVmlzaWJsZTohMSx3YWl0Rm9yOiIiLHZpc2libGU6ZnVuY3Rpb24oKXt9LG5vdFZpc2libGU6ZnVuY3Rpb24oKXt9fSxfb2JzZXJ2ZXI6bnVsbCxfY2hpbGRPYnNlcnZlcnM6W10sX2NoaWxkVmlzaWJsZTpbXSxfY3JlYXRlOmZ1bmN0aW9uKCl7dmFyIG49dGhpczsidW5kZWZpbmVkIiE9dHlwZW9mIEludGVyc2VjdGlvbk9ic2VydmVyJiYodGhpcy5fc2V0Q2hpbGRPYnNlcnZlcnMoKSx0aGlzLl9vYnNlcnZlcj1uZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24odil7dj12WzBdO2lmKG4uaXNWaXNpYmxlKHYpKWlmKDA9PT1uLm9wdGlvbnMud2FpdEZvci5sZW5ndGgpbi5vblZpc2libGUoKTtlbHNlIGlmKG4uX2FyZUNoaWxkcmVuVmlzaWJpbGUoKSluLm9uVmlzaWJsZSgpO2Vsc2Ugbi5vcHRpb25zLm5vdFZpc2libGUodi50YXJnZXQpOwplbHNlIG4ub3B0aW9ucy5ub3RWaXNpYmxlKHYudGFyZ2V0KX0sbi5vcHRpb25zLm9ic2VydmVyKSx0aGlzLl9vYnNlcnZlci5vYnNlcnZlKHRoaXMuZWxlbWVudFswXSkpfSxfYXJlQ2hpbGRyZW5WaXNpYmlsZTpmdW5jdGlvbigpe3JldHVybiAwPT09dGhpcy5vcHRpb25zLndhaXRGb3IubGVuZ3RoPyEwOjA8dGhpcy5lbGVtZW50LmZpbmQodGhpcy5vcHRpb25zLndhaXRGb3IpLmZpbHRlcihmdW5jdGlvbihuLHYpe3JldHVybiJoaWRkZW4iPT09d2luZG93LmdldENvbXB1dGVkU3R5bGUodikudmlzaWJpbGl0eT8hMTohISh2Lm9mZnNldFdpZHRofHx2Lm9mZnNldEhlaWdodHx8di5nZXRDbGllbnRSZWN0cygpLmxlbmd0aCl9KS5sZW5ndGh9LGlzVmlzaWJsZTpmdW5jdGlvbihuKXtpZighbi5pc0ludGVyc2VjdGluZylyZXR1cm4hMTtuPXdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKCQobi50YXJnZXQpWzBdKTtyZXR1cm4tMTxbImhpZGRlbiIsImNvbGxhcHNlIl0uaW5kZXhPZihuLnZpc2liaWxpdHkpPwohMTohMH0sX3NldENoaWxkT2JzZXJ2ZXJzOmZ1bmN0aW9uKCl7dmFyIG49dGhpczskKHRoaXMuZWxlbWVudCkuYXR0cigiaWQiKTswIT09bi5vcHRpb25zLndhaXRGb3IubGVuZ3RoJiYkKHRoaXMuZWxlbWVudCkuZmluZChuLm9wdGlvbnMud2FpdEZvcikuZWFjaChmdW5jdGlvbih2LEIpe24uX2NoaWxkT2JzZXJ2ZXJzW3ZdPW5ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcihmdW5jdGlvbih6KXtpZihuLmlzVmlzaWJsZSh6WzBdKSluLm9uVmlzaWJsZSgpfSk7bi5fY2hpbGRPYnNlcnZlcnNbdl0ub2JzZXJ2ZShCKX0pfSxvblZpc2libGU6ZnVuY3Rpb24oKXt0aGlzLm9wdGlvbnMudmlzaWJsZSh0aGlzLmVsZW1lbnQpO3RoaXMub3B0aW9ucy5kaXNjb25uZWN0QWZ0ZXJWaXNpYmxlJiZ0aGlzLmRlc3Ryb3koKX0sZGVzdHJveTpmdW5jdGlvbigpe251bGwhPT10aGlzLl9vYnNlcnZlciYmKHRoaXMuX29ic2VydmVyLmRpc2Nvbm5lY3QoKSx0aGlzLl9vYnNlcnZlcj1udWxsKTt0aGlzLl9jaGlsZE9ic2VydmVycy5mb3JFYWNoKGZ1bmN0aW9uKG4pe251bGwhPT0KbiYmbi5kaXNjb25uZWN0KCl9KTt0aGlzLl9jaGlsZE9ic2VydmVycz1bXTskLldpZGdldC5wcm90b3R5cGUuZGVzdHJveS5jYWxsKHRoaXMpfX0pO3ZhciBkMnNkRGVsYXlTZWFyY2g9ZnVuY3Rpb24oKXt2YXIgbj0wO3JldHVybiBmdW5jdGlvbih2LEIpe2NsZWFyVGltZW91dChuKTtuPXNldFRpbWVvdXQodixCKX19KCk7CmZ1bmN0aW9uIEQyU0Qobix2LEIpe2Z1bmN0aW9uIHooKXtHKCk7bGV0IGI9c2V0SW50ZXJ2YWwoZnVuY3Rpb24oKXtudWxsIT09RSgpJiYoY2xlYXJJbnRlcnZhbChiKSwkKHkucGFnZVZpZXcoKSksc2V0VGltZW91dChmdW5jdGlvbigpe0goKX0sMTAwKSl9LDFFMyl9ZnVuY3Rpb24gSSgpe2xldCBiPSExLGY9ITEscD17fSxyPSJPdGhlciIsYT1kb2N1bWVudC5jb29raWUucmVwbGFjZSgvOyAvZywiOyIpLnNwbGl0KCI7Iik7Zm9yKGk9MDtpPGEubGVuZ3RoO2krKyl7bGV0IGs9YVtpXS5zcGxpdCgiPSIpO3Bba1swXV09a1sxXX1PYmplY3QuaGFzT3duKHAsInV0bV9zb3VyY2UiKSYmKGI9cC51dG1fc291cmNlLnRvTG93ZXJDYXNlKCkpO09iamVjdC5oYXNPd24ocCwidXRtX21lZGl1bSIpJiYoZj1wLnV0bV9tZWRpdW0udG9Mb3dlckNhc2UoKSk7ITEhPT1iJiYhMSE9PWYmJigiZ29vZ2xlIiE9YiYmImJpbmciIT1ifHwiY3BjIiE9Zj8iZ29vZ2xlIiE9YiYmImJpbmciIT1ifHwiZGlzcGxheSIhPQpmPyJmYWNlYm9vayI9PWImJiJkaXNwbGF5Ij09Zj9yPSJQYWlkIFNvY2lhbCI6ITEhPT1iJiYhMT09PWYmJihyPSJPcmdhbmljIFNlYXJjaCIpOnI9IlBhaWQgRGlzcGxheSI6cj0iUGFpZCBTZWFyY2giKTskKCIjZGlnaXRhbF9kYXRhX2luZm8gaW5wdXRbbmFtZT10cmFmZmljX3R5cGVdIikudmFsKHIpO3JldHVybiByfWZ1bmN0aW9uIEooYil7Yj1iLnRvTG93ZXJDYXNlKCk7bGV0IGY9ITE7c3dpdGNoKGIpe2Nhc2UgImJ1aWNrIjpmPSJidSI7YnJlYWs7Y2FzZSAiY2FkaWxsYWMiOmY9ImNhIjticmVhaztjYXNlICJjaGV2cm9sZXQiOmY9ImNoIjticmVhaztjYXNlICJnbWMiOmY9ImdtIn1yZXR1cm4gZn1mdW5jdGlvbiBHKCl7bC5saWJyYXJ5LmxvYWRlZHx8KGZ1bmN0aW9uKGIsZixwLHIsYSxrLHEpe2IuU2hpZnRBbmFseXRpY3NPYmplY3Q9YTtiW2FdPWJbYV18fGZ1bmN0aW9uKCl7KGJbYV0ucT1iW2FdLnF8fFtdKS5wdXNoKGFyZ3VtZW50cyl9O2JbYV0ubD0xKm5ldyBEYXRlOwprPWYuY3JlYXRlRWxlbWVudChwKTtxPWYuZ2V0RWxlbWVudHNCeVRhZ05hbWUocClbMF07ay5hc3luYz0xO2suc3JjPXI7cS5wYXJlbnROb2RlLmluc2VydEJlZm9yZShrLHEpfSh3aW5kb3csZG9jdW1lbnQsInNjcmlwdCIsbC5saWJyYXJ5LmxpYnJhcnlKUywic2QiKSxzZCgiY3JlYXRlIixsLmxpYnJhcnkuY2xpZW50SUQsbC5saWJyYXJ5LnJldGFpbGVySUQsbC5saWJyYXJ5LnByb3ZpZGVySUQpLGwubGlicmFyeS5sb2FkZWQ9ITAsZGVidWcoIlNEIDo6IExpYnJhcnkgaW5qZWN0ZWQiLGwubGlicmFyeSkpfWZ1bmN0aW9uIEUoKXt2YXIgYj1udWxsO3N3aXRjaCgkKCIjb2VtQ2VydGlmaWNhdGlvbiIpLnZhbCgpKXtjYXNlICIxMDIwIjpiPSJmZXJyYXJpbmEiO2JyZWFrO2Nhc2UgIjEwMTgiOmI9ImdtY2EiO2JyZWFrO2Nhc2UgIjEwMTciOmI9ImdtY2EiO2JyZWFrO2Nhc2UgIjEwMTYiOmI9Im1hc2VyYXRpIjticmVhaztjYXNlICIxMDE1IjpiPSJsZXh1c2NhIjticmVhaztjYXNlICIxMDE0IjpiPQoic3RlbGxhbnRpc2NhIjticmVhaztjYXNlICIxMDE5IjpiPSJzdGVsbGFudGlzY2EiO2JyZWFrO2Nhc2UgIjEwMTIiOmI9InRveW90YWNhIjticmVhaztjYXNlICIxMDExIjpiPSJuY2kiO2JyZWFrO2Nhc2UgIjEwMTAiOmI9Im5jaSI7YnJlYWs7Y2FzZSAiMTAwOSI6Yj0idndjYSI7YnJlYWs7Y2FzZSAiMTAwOCI6Yj0ibWF6ZGFjYSI7YnJlYWs7Y2FzZSAiMTAwNyI6Yj0iamxyY2EiO2JyZWFrO2Nhc2UgIjEwMDYiOmI9ImpscmNhIjticmVhaztjYXNlICIxMDA0IjpiPSJraWFjYSJ9aWYobnVsbD09PWIpcmV0dXJuIG51bGw7Yj1gOyAke2RvY3VtZW50LmNvb2tpZX1gLnNwbGl0KGA7ICR7Il9zZGE6IitiKyI6VDM6c2Vzc2lvbiJ9PWApO3JldHVybiAyPT09Yi5sZW5ndGg\/KGI9Yi5wb3AoKS5zcGxpdCgiOyIpLnNoaWZ0KCkpP2I6bnVsbDpudWxsfWZ1bmN0aW9uIEgoKXt2YXIgYj1sLkFDVElPTl9NQVAuaGFzT3duUHJvcGVydHkobC5wYWdlRGF0YS5wYWdlVHlwZSk\/bC5BQ1RJT05fTUFQW2wucGFnZURhdGEucGFnZVR5cGVdOgp7fTtiPSQuZXh0ZW5kKCEwLHt9LGwuQUNUSU9OX01BUFsiZGVmYXVsdCJdLGIpOyQuZWFjaChiLGZ1bmN0aW9uKGYscCl7aWYobC5pc0RSJiZsLmRyQmxhY2tsaXN0LmluY2x1ZGVzKGYpKXJldHVybiEwO3N3aXRjaChmKXtjYXNlICJmb3JtIjokLmVhY2gocCxmdW5jdGlvbihyLGEpe0socixhKX0pO2JyZWFrO2Nhc2UgImxpc3RlbiI6JC5lYWNoKHAsZnVuY3Rpb24ocixhKXskKGRvY3VtZW50KS5vbihyLGs9Pnt5LnNlbmQoYSx7fSkoayl9KX0pO2JyZWFrO2RlZmF1bHQ6Im9iamVjdCI9PT10eXBlb2YgcD9GKGYscC5uYW1lLHApOkYoZixwLHt9KX19KTtMKCl9ZnVuY3Rpb24gRihiLGYscCl7aWYoIWwuaXNEUnx8IWwuZHJCbGFja2xpc3QuaW5jbHVkZXMoYikpJChkb2N1bWVudC5ib2R5KS5vbigiY2xpY2siLGIseS5zZW5kKGYscCkpfWZ1bmN0aW9uIE0oYil7Yj1iLnNwbGl0KCIsIikubWFwKGZ1bmN0aW9uKHIpe3JldHVybiByLnRyaW0oKX0pO2lmKDE9PT1iLmxlbmd0aClyZXR1cm4hMDsKdmFyIGY9ITAscDtmb3IocCBpbiBiKWlmKDA9PT0kKGJbcF0pLmxlbmd0aCl7Zj0hMTticmVha31yZXR1cm4gZn1mdW5jdGlvbiBMKCl7InVuZGVmaW5lZCIhPT10eXBlb2YgTGVhZENvbmZpZ3MmJk9iamVjdC52YWx1ZXMoTGVhZENvbmZpZ3MpLmZvckVhY2goYj0+e2NvbnN0IGY9JChgI2Zvcm0ke2IubmFtZX1gKTtpZigwPGYubGVuZ3RoKXtsZXQgcD1mLmZpbmQoImlucHV0W25hbWU9J21haWxJRCddIikudmFsKCk7aWYobC5pc0RSJiZsLmRyQmxhY2tsaXN0LmluY2x1ZGVzKHApKXJldHVybiEwO3kuZm9ybShmLHtkaXNwbGF5VHlwZToibW9kYWwifSx7bWFpbElkOnAscGFzc2l2ZVN1Ym1pdDohMSxsZWFkOmJ9KX19KX1mdW5jdGlvbiBLKGIsZil7aWYobC5pc0RSJiZsLmRyQmxhY2tsaXN0LmluY2x1ZGVzKGIpKXJldHVybiEwO2xldCBwPSExOyJ1bmRlZmluZWQiIT09dHlwZW9mIGYuc2V0dGluZ3MmJiJ1bmRlZmluZWQiIT09dHlwZW9mIGYuc2V0dGluZ3MuaGFzTXVsdGlwbGVGb3Jtc09uUGFnZSYmCiEwPT09Zi5zZXR0aW5ncy5oYXNNdWx0aXBsZUZvcm1zT25QYWdlJiYocD0hMCk7aWYoTShiKSYmKCJtb2RhbCIhPT1mLmRpc3BsYXlUeXBlfHwiMSIhPSQoIiNpc21vYmlsZSIpLnZhbCgpKSl7dmFyIHI9Zi5zZXR0aW5nc3x8e307ZGVsZXRlIGYuc2V0dGluZ3M7aWYoITE9PT1wKXkuZm9ybShiLGYscik7ZWxzZSBpZihyLmhhc093blByb3BlcnR5KCJmb3JtU2hvd25DbGljayIpKXtsZXQgYT1yLmZvcm1TaG93bkNsaWNrOyQoci5mb3JtU2hvd25DbGljaykuZWFjaChmdW5jdGlvbihrLHEpe2NvbnNvbGUubG9nKCJEMlNEIGFkZGluZyByZWN1cnNpdmUgZm9ybSBsaXN0ZW5lciBmb3I6IixiKTskKHEpLmF0dHIoImRhdGEtbGVhZC1yYW5kIixNYXRoLnJhbmRvbSgpKihuZXcgRGF0ZSkuZ2V0VGltZSgpKTtyLmZvcm1TaG93bkNsaWNrPXIuZm9ybVNob3duQ2xpY2srJ1tkYXRhLWxlYWQtcmFuZD0iJyskKHEpLmF0dHIoImRhdGEtbGVhZC1yYW5kIikrJyJdJzt5LmZvcm0oYixmLHIpOwpyLmZvcm1TaG93bkNsaWNrPWF9KX1lbHNlICQoYikuZWFjaChmdW5jdGlvbihhLGspeyQoaykuYXR0cigiZGF0YS1sZWFkLXJhbmQiLE1hdGgucmFuZG9tKCkqKG5ldyBEYXRlKS5nZXRUaW1lKCkpO2E9YisnW2RhdGEtbGVhZC1yYW5kPSInKyQoaykuYXR0cigiZGF0YS1sZWFkLXJhbmQiKSsnIl0nO3kuZm9ybShhLGYscil9KX19ZnVuY3Rpb24gTihiKXtjb25zdCBmPW5ldyBGb3JtRGF0YTtmb3IoY29uc3QgcCBpbiBiKSJvYmplY3QiPT09dHlwZW9mIGJbcF0\/Zi5hcHBlbmQocCxKU09OLnN0cmluZ2lmeShiW3BdKSk6Zi5hcHBlbmQocCxiW3BdKTtmZXRjaChgLyR7RDJDVXRpbHMuTGFuZy5nZXRTaG9ydExhbmcoKX0vYWpheC9sb2dKU0RlYnVnP3dzd2lkdGg9MGAse21ldGhvZDoiUE9TVCIsYm9keTpmfSkudGhlbihwPT57Y29uc29sZS5sb2cocCl9KX1jb25zb2xlLmxvZygiRDJTRCBzdGFydGluZy4uLiIsbix2KTt2YXIgbD10aGlzO2wubGlicmFyeT0KJC5leHRlbmQoITAsbix7bG9hZGVkOiExfSk7bC5wYWdlRGF0YT12O2wuc2V0dGluZ3M9QjtsLmlzRFJUYWdnaW5nPWwucGFnZURhdGEuR0VORVJBTF9FTkFCTEVfVFJBTlNBQ1RJT05fQlVJTERFUjtsLmlzRFJQYWdldHlwZT0iVmVoaWNsZSBEZXRhaWxzIj09PWwucGFnZURhdGEucGFnZVR5cGV8fCJNb2RlbCBTaG93cm9vbSI9PT1sLnBhZ2VEYXRhLnBhZ2VUeXBlO2wuaXNEUj1mdW5jdGlvbigpe2xldCBiPSExLGY9JCgiI29lbUNlcnRpZmljYXRpb24iKS52YWwoKTtbMTAxNCwxMDE5XS5pbmNsdWRlcyhwYXJzZUludChmKSkmJihiPSEwKTtyZXR1cm4gbC5pc0RSVGFnZ2luZyYmbC5pc0RSUGFnZXR5cGUmJmJ9KCk7bC5kckJsYWNrbGlzdD0iY3JlZGl0Lm11bHRpc3RlcHBvcHVwLnN0YXJ0O2RlYWxlckFwcG9pbnRtZW50LnN0YXJ0O2NyZWRpdC5tdWx0aXN0ZXBwb3B1cC5zdGFydDtQcmljZVZlaGljbGU7UHJpY2VWZWhpY2xlQWNjdXRyYWRlO1ByaWNlVmVoaWNsZU5ldztNb250aGx5UGF5bWVudHM7TW9udGhseVBheW1lbnRzX05FVztEZWFsZXJBcHBvaW50bWVudDtDcmVkaXRCb29zdE11bHRpO0NyZWRpdFJlcXVlc3RfU2hvcnQ7Q3JlZGl0U2NvcmU7VGVzdCBEcml2ZTtDcmVkaXRNdWx0aXN0ZXBSZXF1ZXN0O1RyYWRlIEluOyNmaW5hbmNlX211bHRpc3RlcF9mb3JtOyNmb3JtRGVhbGVyQXBwb2ludG1lbnQ7I1RyYWRlSW5CYXJQb3B1cENvbnRhaW5lcjsuc2NyYXRjaGFuZHNhdmVfZW1iZWRkZWRfZm9ybSAuc2NyYXRjaGFuZHNhdmVfZW1iZWRkZWRfc3RlcDI7Lm11bHRpZm9ybV9lbWJlZGRlZF9mb3JtOyNUcmFkZUluQmFyUG9wdXBDb250YWluZXI7I21vbnRobHlQYXltZW50c1BvcHVwQ29udGFpbmVyO2EjRmluYW5jZUFjdGlvbkJveF9wb3B1cCwgZGl2LmNhckxpbmsgPiBkaXYuYnRuLWZpbmFuY2UtbmV3aW52Oy5tdWx0aWZvcm1fZW1iZWRkZWRfZm9ybSIuc3BsaXQoIjsiKTsKdmFyIEM9ITEsRD0hMTtuPXdpbmRvdy5sb2NhdGlvbi5ocmVmO2lmKG4uaW5jbHVkZXMoImZpcnN0LWV2ZXItbWF6ZGEtY3gtNzAiKXx8bi5pbmNsdWRlcygidG91dC1ub3V2ZWF1LW1hemRhLWN4LTcwIikpbC5wYWdlRGF0YS5wYWdlVHlwZT0iY3gtNzAiO24uaW5jbHVkZXMoImxleHVzb2Z2YXVnaGFuLmNvbSIpJiYobi5pbmNsdWRlcygid2hlZWxzLXRpcmVzLWNlbnRyZS5odG1sIikmJihsLnBhZ2VEYXRhLnBhZ2VUeXBlPSJUaXJlcyIpLG4uaW5jbHVkZXMoInNob3AtYWNjZXNzb3JpZXMuaHRtbCIpJiYobC5wYWdlRGF0YS5wYWdlVHlwZT0iQWNjZXNzb3JpZXMiKSxuLmluY2x1ZGVzKCJsZXh1cy1tYWludGVuYW5jZS1zY2hlZHVsZS5odG1sIikmJihsLnBhZ2VEYXRhLnBhZ2VUeXBlPSJNYWludGVuYW5jZSBNZW51IikpOzEwMTY9PSQoIiNvZW1DZXJ0aWZpY2F0aW9uIikudmFsKCkmJihuLmluY2x1ZGVzKCJtYXNlcmF0aS1tYzIwLWVuLmh0bWwiKSYmKGwucGFnZURhdGEucGFnZVR5cGU9CiJNb2RlbCBTaG93cm9vbSIpLG4uaW5jbHVkZXMoIm1hc2VyYXRpLWdyZWNhbGUtZW4uaHRtbCIpJiYobC5wYWdlRGF0YS5wYWdlVHlwZT0iTW9kZWwgU2hvd3Jvb20iKSxuLmluY2x1ZGVzKCJtYXNlcmF0aS1ndDItc3RyYWRhbGUtZW4uaHRtbCIpJiYobC5wYWdlRGF0YS5wYWdlVHlwZT0iTW9kZWwgU2hvd3Jvb20iKSxuLmluY2x1ZGVzKCJtYXNlcmF0aS1ncmFuY2FicmlvLWVuLmh0bWwiKSYmKGwucGFnZURhdGEucGFnZVR5cGU9Ik1vZGVsIFNob3dyb29tIiksbi5pbmNsdWRlcygibWFzZXJhdGktZ3JhbnR1cmlzbW8tZm9sZ29yZS1lbi5odG1sIikmJihsLnBhZ2VEYXRhLnBhZ2VUeXBlPSJNb2RlbCBTaG93cm9vbSIpLG4uaW5jbHVkZXMoInByZW9yZGVyLTIwMjUtZ3JlY2FsZS1mb2xnb3JlLmh0bWwiKSYmKGwucGFnZURhdGEucGFnZVR5cGU9IkN1c3RvbSBEZWFsZXIgQ29udGVudCIpLG4uaW5jbHVkZXMoInByZW9yZGVyLTIwMjUtZ3JhbmNhYnJpby1mb2xnb3JlLmh0bWwiKSYmCihsLnBhZ2VEYXRhLnBhZ2VUeXBlPSJDdXN0b20gRGVhbGVyIENvbnRlbnQiKSxuLmluY2x1ZGVzKCJwcmVvcmRlci0yMDI1LWdyYW50dXJpc21vLWZvbGdvcmUuaHRtbCIpJiYobC5wYWdlRGF0YS5wYWdlVHlwZT0iQ3VzdG9tIERlYWxlciBDb250ZW50Iiksbi5pbmNsdWRlcygicmVjYWxscy9yZWNhbGxzLmh0bWwiKSYmKGwucGFnZURhdGEucGFnZVR5cGU9IkN1c3RvbSBEZWFsZXIgQ29udGVudCIpLGRlYnVnKCJEMlNEIE1hc2VyYXRpIFBhZ2VUeXBlIE92ZXJyaWRlOiAiK2wucGFnZURhdGEucGFnZVR5cGUpKTsiIj09JCgiI29lbUNlcnRpZmljYXRpb24iKS52YWwoKSYmKG49JCgiI0RFQUxFUkJSQU5EX1BSSU1BUlkiKS52YWwoKSwiIiE9biYmKG49SihuKSwhMSE9PW4mJihsLnBhZ2VEYXRhLnBhZ2VCcmFuZD1uKSkpO2wuQUNUSU9OX01BUD17ImRlZmF1bHQiOnsnYVtocmVmKj0idGVsIl06bm90KFtocmVmKj0ieyQiXSknOiJjbGlja1RvQ2FsbCIsJ2FbaHJlZio9Imdvb2dsZSJdW2hyZWYqPSJtYXBzIl0nOiJnZXREaXJlY3Rpb25zIiwKJyNhbGVydE1zZ0NvbnRlbnQgYVtocmVmKj0ic2VydmljZSJdJzoic2NoZWR1bGVTZXJ2aWNlQ2xpY2siLCcuaGVhZGVyLW1lbnUgYVtocmVmKj0ic2VydmljZSJdJzoic2NoZWR1bGVTZXJ2aWNlQ2xpY2siLGZvcm06eyIjVHJhZGVJbkJhclBvcHVwQ29udGFpbmVyIjp7ZGlzcGxheVR5cGU6ImluLXBhZ2UifSwiZm9ybSNxdWlja0VtYWlsRm9ybSI6e2Zvcm1UeXBlOiJHZW5lcmFsIENvbnRhY3QiLGRpc3BsYXlUeXBlOiJpbi1wYWdlIn0sImZvcm0udmlzaXRDb250YWN0Rm9ybSI6e2Zvcm1UeXBlOiJHZW5lcmFsIENvbnRhY3QiLGRpc3BsYXlUeXBlOiJtb2RhbCJ9LCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSI6e2Zvcm1UeXBlOiJGaW5hbmNlIixkaXNwbGF5VHlwZToiaW4tcGFnZSIsc2V0dGluZ3M6e2Zvcm1TaG93bkNsaWNrOiJhI0ZpbmFuY2VBY3Rpb25Cb3hfcG9wdXAsIGRpdi5jYXJMaW5rID4gZGl2LmJ0bi1maW5hbmNlLW5ld2ludiIsbWFpbElkOiJDcmVkaXRNdWx0aXN0ZXBSZXF1ZXN0In19fSwKbGlzdGVuOnsidHlwZWFoZWFkOmFzeW5jcmVjZWl2ZSI6InR5cGVkU2VhcmNoIn19LEhvbWU6eyIjaG9tZXBhZ2UtYmFubmVyICNzbGlkZXIiOntuYW1lOiJjYXJvdXNlbENsaWNrIixjb250YWluZXJVc2VkOiEwfSwiI21vYmlsZVNsaWRlcjIiOntuYW1lOiJjYXJvdXNlbENsaWNrIixjb250YWluZXJVc2VkOiEwfSwiLnZlaGljbGVDYXJvdXNlbCBsaSI6ImNhcm91c2VsQ2xpY2siLCIjbmV3Q2FyU2xpZGVyIGxpIjoiY2Fyb3VzZWxDbGljayIsJ21haW4gYVtocmVmKj0ic2VydmljZSJdJzoic2NoZWR1bGVTZXJ2aWNlQ2xpY2siLGZvcm06eyIjbWFpbEV4cHJlc3NSZXF1ZXN0Ijp7Zm9ybVR5cGU6IkdlbmVyYWwgQ29udGFjdCIsZGlzcGxheVR5cGU6ImluLXBhZ2UifX19LFNob3dyb29tOnsnI3RvcEJhbm5lckltYWdlW29uY2xpY2sqPSJzZXJ2aWNlIl0nOiJzY2hlZHVsZVNlcnZpY2VDbGljayIsbGlzdGVuOnsiZmlsdGVyczpjaGFuZ2UiOiJmaWx0ZXJTZWFyY2giLCJmaWx0ZXJzOmxvYWQiOiJmaWx0ZXJTZWFyY2gifX0sCiJNb2RlbCBTaG93cm9vbSI6eycjdG9wQmFubmVySW1hZ2Vbb25jbGljayo9InNlcnZpY2UiXSc6InNjaGVkdWxlU2VydmljZUNsaWNrIiwiI3ByaW50U3BlY3MiOiJicm9jaHVyZURvd25sb2FkIixmb3JtOnsiI2Zvcm1EZWFsZXJBcHBvaW50bWVudCI6e2Rpc3BsYXlUeXBlOiJpbi1wYWdlIn0sIi5jb250YWN0dXNfZW1iZWRkZWRfZm9ybSI6e2Rpc3BsYXlUeXBlOiJpbi1wYWdlIn0sIiNUcmFkZUluQmFyUG9wdXBDb250YWluZXIiOntkaXNwbGF5VHlwZToiaW4tcGFnZSIsZm9ybVR5cGU6IlRyYWRlIEluIn0sIi5zY3JhdGNoYW5kc2F2ZV9lbWJlZGRlZF9mb3JtIC5zY3JhdGNoYW5kc2F2ZV9lbWJlZGRlZF9zdGVwMiI6e2Rpc3BsYXlUeXBlOiJpbi1wYWdlIn0sIi5wYXltZW50Q2FsY3VsYXRvclZEUCI6e2Rpc3BsYXlUeXBlOiJpbi1wYWdlIn0sIi5tdWx0aWZvcm1fZW1iZWRkZWRfZm9ybSI6e2Zvcm1UeXBlOiJHZXQgQSBRdW90ZSIsZGlzcGxheVR5cGU6ImluLXBhZ2UiLHNldHRpbmdzOntmb3JtU2hvd25DbGljazoiZm9ybS5tdWx0aWZvcm1fZW1iZWRkZWRfZm9ybSAjbXVsdGlmb3JtX2VtYmVkZGVkX2J0bl8xIn19fX0sCiJWZWhpY2xlIExpc3RpbmciOnsnI3RvcEJhbm5lckltYWdlW29uY2xpY2sqPSJzZXJ2aWNlIl0nOiJzY2hlZHVsZVNlcnZpY2VDbGljayIsbGlzdGVuOnsiZmlsdGVyczpjaGFuZ2UiOiJmaWx0ZXJTZWFyY2giLCJmaWx0ZXJzOmxvYWQiOiJmaWx0ZXJTZWFyY2gifSxmb3JtOnsiLmNvbnRhY3RGb3JtIGZvcm0uZDJjZm9ybSI6e2Zvcm1UeXBlOiJEaXNjb3ZlciBPZmZlciIsZGlzcGxheVR5cGU6ImluLXBhZ2UiLHNldHRpbmdzOntmb3JtU2hvd25DbGljazonZGl2LmJ1dHRMaW5rW2RhdGEtbGVhZC10cmlnZ2VyPSJEaXNjb3Zlck9mZmVyIl0nLGhhc011bHRpcGxlRm9ybXNPblBhZ2U6ITAscGFyZW50RWxlbWVudDoiLmNhckJveFdyYXBwZXIifX0sIiNsb2FuY2FsY3VsYXRvciI6e2Zvcm1UeXBlOiJQYXltZW50IENhbGN1bGF0b3IiLGRpc3BsYXlUeXBlOiJpbi1wYWdlIixzZXR0aW5nczp7Zm9ybVNob3duQ2xpY2s6ImRpdi5sb2FuQ2FsY3VsYXRvclRyaWdnZXIgPiBzcGFuIn19LAoiLmNyZWRpdFNjb3JlUG9wdXBDb250YWluZXJFbWJlZGRlZCAuZDJjZm9ybSI6e2Zvcm1UeXBlOiJGaW5hbmNlIixkaXNwbGF5VHlwZToiaW4tcGFnZSIsc2V0dGluZ3M6e2hhc011bHRpcGxlRm9ybXNPblBhZ2U6ITB9fX19LCJWZWhpY2xlIERldGFpbHMiOnsnI3RvcEJhbm5lckltYWdlW29uY2xpY2sqPSJzZXJ2aWNlIl0nOiJzY2hlZHVsZVNlcnZpY2VDbGljayIsIi5qQ2Fyb3VzZWxMaXRlIGxpIjoiY2Fyb3VzZWxDbGljayIsIiNwcmludFNwZWNzIjoiYnJvY2h1cmVEb3dubG9hZCIsZm9ybTp7IiNtb250aGx5UGF5bWVudHNQb3B1cENvbnRhaW5lciI6e2Rpc3BsYXlUeXBlOiJtb2RhbCJ9LCIjZm9ybURlYWxlckFwcG9pbnRtZW50Ijp7ZGlzcGxheVR5cGU6ImluLXBhZ2UifSwiLmNvbnRhY3R1c19lbWJlZGRlZF9mb3JtIjp7ZGlzcGxheVR5cGU6ImluLXBhZ2UifSwiI2ZybVJlYmF0ZV9pbWFnZXBvcHVwX2F2YWlsYWJpbGl0eXVzZWQiOntkaXNwbGF5VHlwZToiaW4tcGFnZSIsCmZvcm1UeXBlOiJSZXF1ZXN0IE1vcmUgSW5mbyJ9LCIuc2NyYXRjaGFuZHNhdmVfZW1iZWRkZWRfZm9ybSAuc2NyYXRjaGFuZHNhdmVfZW1iZWRkZWRfc3RlcDIiOntkaXNwbGF5VHlwZToiaW4tcGFnZSJ9LCIubXVsdGlmb3JtX2VtYmVkZGVkX2Zvcm0iOntkaXNwbGF5VHlwZToiaW4tcGFnZSJ9LCIjVHJhZGVJbkJhclBvcHVwQ29udGFpbmVyIjp7ZGlzcGxheVR5cGU6ImluLXBhZ2UiLGZvcm1UeXBlOiJUcmFkZSBJbiJ9fX0sIlRlc3QgRHJpdmUiOntmb3JtOnsiI3VzZXJJbmZvRm9ybSwgI3NlbmRFbWFpbEZvcm0sICN2ZWhpY2xlU2VsZWN0Rm9ybSwgI21haWxRdWVzdGlvbkNvbW1lbnRGb3JtIjp7Zm9ybVR5cGU6IkJvb2sgQSBUZXN0IERyaXZlIixkaXNwbGF5VHlwZToiaW4tcGFnZSJ9LCIjdmVoaWNsZVNlbGVjdEZvcm0sIC5uZXctZGV0YWlscyAubWFpbHdpZGdldC0tZm9ybSwgLm5ldy1kZXRhaWxzICNzZW5kRW1haWxGb3JtU3VibWl0Ijp7Zm9ybVR5cGU6IkJvb2sgQSBUZXN0IERyaXZlIiwKZGlzcGxheVR5cGU6ImluLXBhZ2UifX19LEZpbmFuY2U6e2Zvcm06eyIjbWluaWZvcm0iOntmb3JtVHlwZToiRmluYW5jZSIsZGlzcGxheVR5cGU6ImluLXBhZ2UiLHNldHRpbmdzOntpZ25vcmVTdWJtaXQ6IjEiIT09JCgiaW5wdXRbbmFtZT0nQURNSU5fQ1JFRElUX1NFTkROT1dfQ0hFQ0snXSIpLnZhbCgpfX19fSxTZXJ2aWNlOnsiI1NlY3Rpb25fUk5EWiBhLnNlcnZpY2UtbGluaywgI1NlY3Rpb25fUk5EWiAudXNlZF9kZXRhaWxzX2J0biBhIjoic2NoZWR1bGVTZXJ2aWNlQ2xpY2siLCIjU2VjdGlvbl9CT0RZIGEuc2VydmljZS1saW5rLCAjU2VjdGlvbl9CT0RZIC51c2VkX2RldGFpbHNfYnRuIGEiOiJzY2hlZHVsZVNlcnZpY2VDbGljayIsIiNTZWN0aW9uX0dBUkFHRSBhLnNlcnZpY2UtbGluaywgI1NlY3Rpb25fR0FSQUdFIC51c2VkX2RldGFpbHNfYnRuIGEiOiJzY2hlZHVsZVNlcnZpY2VDbGljayIsZm9ybTp7IiN1c2VySW5mb0Zvcm0sICN1c2VyQWRyZXNzRm9ybSwgI3NlbmRFbWFpbEZvcm0sICN2ZWhpY2xlU2VsZWN0Rm9ybSI6e2Zvcm1UeXBlOiJSZWNhbGxzIiwKZGlzcGxheVR5cGU6ImluLXBhZ2UifSwiI3ZlaGljbGVTZWxlY3RGb3JtLCAubmV3LWRldGFpbHMgLm1haWx3aWRnZXQtLWZvcm0sIC5uZXctZGV0YWlscyAjc2VuZEVtYWlsRm9ybVN1Ym1pdCI6e2Zvcm1UeXBlOiJSZWNhbGxzIixkaXNwbGF5VHlwZToiaW4tcGFnZSJ9fX0sIlNjaGVkdWxlIFNlcnZpY2UiOntmb3JtOnsiI3VzZXJJbmZvRm9ybSwgI3NlbmRFbWFpbEZvcm0sICN2ZWhpY2xlU2VsZWN0Rm9ybSwgI21haWxRdWVzdGlvbkNvbW1lbnRGb3JtLCAjbWFpbFNjaGVkdWxlRm9ybSI6e2Zvcm1UeXBlOiJTY2hlZHVsZSBTZXJ2aWNlIixkaXNwbGF5VHlwZToiaW4tcGFnZSJ9LCIjdmVoaWNsZVNlbGVjdEZvcm0sIC5uZXctZGV0YWlscyAubWFpbHdpZGdldC0tZm9ybSwgLm5ldy1kZXRhaWxzICNzZW5kRW1haWxGb3JtU3VibWl0Ijp7Zm9ybVR5cGU6IlNjaGVkdWxlIFNlcnZpY2UiLGRpc3BsYXlUeXBlOiJpbi1wYWdlIn19fSwiVGlyZSBTdG9yZSI6e2Zvcm06eyIjdXNlckluZm9Gb3JtLCAjc2VuZEVtYWlsRm9ybSwgI3ZlaGljbGVTZWxlY3RGb3JtLCAjbWFpbFF1ZXN0aW9uQ29tbWVudEZvcm0iOntmb3JtVHlwZToiUGFydHMiLApkaXNwbGF5VHlwZToiaW4tcGFnZSJ9LCIjdmVoaWNsZVNlbGVjdEZvcm0sIC5uZXctZGV0YWlscyAubWFpbHdpZGdldC0tZm9ybSwgLm5ldy1kZXRhaWxzICNzZW5kRW1haWxGb3JtU3VibWl0Ijp7Zm9ybVR5cGU6IlBhcnRzIixkaXNwbGF5VHlwZToiaW4tcGFnZSJ9fX0sUGFydHM6e2Zvcm06eyIjdXNlckluZm9Gb3JtLCAjc2VuZEVtYWlsRm9ybSwgI3ZlaGljbGVTZWxlY3RGb3JtLCAjbWFpbFF1ZXN0aW9uQ29tbWVudEZvcm0iOntmb3JtVHlwZToiUGFydHMiLGRpc3BsYXlUeXBlOiJpbi1wYWdlIn0sIiN2ZWhpY2xlU2VsZWN0Rm9ybSwgLm5ldy1kZXRhaWxzIC5tYWlsd2lkZ2V0LS1mb3JtLCAubmV3LWRldGFpbHMgI3NlbmRFbWFpbEZvcm1TdWJtaXQiOntmb3JtVHlwZToiUGFydHMiLGRpc3BsYXlUeXBlOiJpbi1wYWdlIn19fSwiRGVhbGVyIFNwZWNpYWxzIjp7IiNzZXJ2aWNlIC5wcm9tb3MgLnByb21vLWxpbmstaXRlbSBhLCAjc2VydmljZSAucHJvbW9zIC5wcm9tby1pbWFnZSBhIjoic2VydmljZU9mZmVyQ2xpY2siLAoiLmRpdkNhdGVnb3J5Qm94V3JhcHBlcjpub3QoI3NlcnZpY2UpIC5wcm9tb3MgLnByb21vLWxpbmstaXRlbSBhLCAuZGl2Q2F0ZWdvcnlCb3hXcmFwcGVyOm5vdCgjc2VydmljZSkgLnByb21vcyAucHJvbW8taW1hZ2UgYSI6Im9mZmVyQ2xpY2siLCIucHJvbW8tY2FyZC1vZW0gaDIsIC5wcm9tby1jYXJkLW9lbSBpbWcsIC5wcm9tby1jYXJkLW9lbSAucHJvbW8tb2VtLXBheW1lbnQsIC5wcm9tby1jYXJkLW9lbSBhLmJ0biI6Im9mZmVyQ2xpY2siLCcjdG9wQmFubmVySW1hZ2Vbb25jbGljayo9InNlcnZpY2UiXSc6InNjaGVkdWxlU2VydmljZUNsaWNrIixmb3JtOnsiI3Byb21vcG9wdXAucHJvbW9wb3B1cCBmb3JtLmQyY2Zvcm0iOntmb3JtVHlwZToiU3BlY2lhbHMiLGRpc3BsYXlUeXBlOiJtb2RhbCIsc2V0dGluZ3M6e2Zvcm1TaG93bkNsaWNrOiJhLnByb21vLWJ0biJ9fX0sbGlzdGVuOnsicHJvbW9wb3B1cC1zdWJtaXQiOiJwcm9tb3BvcHVwU3VibWlzc2lvbiJ9fSwiQ29udGFjdCBVcyI6e2Zvcm06eyIjY29udGFjdF9mb3JtMyI6e2Rpc3BsYXlUeXBlOiJpbi1wYWdlIn19fSwKIkFib3V0IFVzIjp7Zm9ybTp7IiNzZW5kRW1haWxQb3B1cEZvcm0iOntkaXNwbGF5VHlwZToibW9kYWwifX19LEJyb2NodXJlOntmb3JtOnsiI3ZlaGljbGVTZWxlY3RGb3JtLCAjdXNlckluZm9Gb3JtLCAjc2VuZEVtYWlsRm9ybSwgI21haWxRdWVzdGlvbkNvbW1lbnRGb3JtIjp7ZGlzcGxheVR5cGU6ImluLXBhZ2UifX19LCJUcmFkZSBJbiI6e2Zvcm06eyIjdmVoaWNsZVNlbGVjdEZvcm1FeCwgI21haWxRdWVzdGlvbkNvbW1lbnRGb3JtLCAjdXNlckluZm9Gb3JtLCAjc2VuZEVtYWlsRm9ybSwgI3ZlaGljbGVTZWxlY3RGb3JtIjp7Zm9ybVR5cGU6IlRyYWRlIEluIixkaXNwbGF5VHlwZToiaW4tcGFnZSJ9fX0sT3RoZXI6e2Zvcm06eyJmb3JtLmN1c3RvbWZvcm0iOntmb3JtVHlwZToiRGVhbGVyIEN1c3RvbSIsZGlzcGxheVR5cGU6ImluLXBhZ2UifSwiI3VzZXJJbmZvRm9ybSwgI3NlbmRFbWFpbEZvcm0sICNtYWlsSm9iT2ZmZXJGb3JtLCAjcmVzdW1ldXBsb2FkIjp7Zm9ybVR5cGU6IkVtcGxveW1lbnQiLApkaXNwbGF5VHlwZToiaW4tcGFnZSJ9LCIjdmVoaWNsZVNlbGVjdEZvcm0sICNtYWlsRmluYW5jZUZvcm0sICNtYWlsUXVlc3Rpb25Db21tZW50Rm9ybSwgI3VzZXJJbmZvRm9ybSwgI3NlbmRFbWFpbEZvcm0iOntkaXNwbGF5VHlwZToiaW4tcGFnZSJ9fX0sIkN1c3RvbSBEZWFsZXIgQ29udGVudCI6e2Zvcm06eyJmb3JtLmN1c3RvbWZvcm0iOntmb3JtVHlwZToiRGVhbGVyIEN1c3RvbSIsZGlzcGxheVR5cGU6ImluLXBhZ2UifSwiZm9ybS5jdXN0b21mb3JtX192MyI6e2Zvcm1UeXBlOiJEZWFsZXIgQ3VzdG9tIixkaXNwbGF5VHlwZToiaW4tcGFnZSJ9fX19O3ZhciB5PW5ldyBmdW5jdGlvbigpe3ZhciBiPXRoaXM7Yi5zdGF0aWNEYXRhPWwucGFnZURhdGE7Yi52aWV3ZWRGb3Jtcz1bXTtiLmluaXRpYXRpb25Gb3Jtcz1bXTtiLnN1Ym1pdHRlZEZvcm1zPVtdO2IuZm9ybT1mdW5jdGlvbihmLHAscil7dmFyIGE9e2Zvcm06Zj8kKGYpOiExLGRhdGE6cCxzZXR0aW5nczpyLHZpZXdlZDohMSwKaW5pdGlhdGVkOiExLHN1Ym1pdHRlZDohMSxzdWJtaXRCdG5DbGlja2VkOiExLGhvb2tlZDohMSxlbWFpbEhhbmRsZXJIb29rZWQ6ITEsdWlkOk1hdGgucmFuZG9tKCkqKG5ldyBEYXRlKS5nZXRUaW1lKCksYWRkTGlzdGVuZXJzOmZ1bmN0aW9uKCl7dHJ5e2lmKCFhLmhvb2tlZCl7YS5ob29rZWQ9ITA7dmFyIGs9W3tzZWxlY3RvcjoiLmpxVHJhbnNmb3JtU2VsZWN0V3JhcHBlciA+IHVsID4gbGkgPiBhIixldmVudE5hbWU6ImNsaWNrIn0se3NlbGVjdG9yOiJzZWxlY3QiLGV2ZW50TmFtZToiY2hhbmdlIGNsaWNrIn0se3NlbGVjdG9yOiJsYWJlbCxsaSxhLGkiLGV2ZW50TmFtZToiY2xpY2sifSx7c2VsZWN0b3I6ImlucHV0IixldmVudE5hbWU6ImNoYW5nZSBrZXl1cCBwYXN0ZSJ9LHtzZWxlY3RvcjoidGV4dGFyZWEiLGV2ZW50TmFtZToiY2hhbmdlIGtleXVwIHBhc3RlIn0se3NlbGVjdG9yOiJidXR0b24iLGV2ZW50TmFtZToiY2hhbmdlIGtleXVwIGNsaWNrIn1dO2lmKCFsLmlzRFJ8fAohbC5kckJsYWNrbGlzdC5pbmNsdWRlcyhhLmRhdGEuZm9ybVR5cGUpKXsidW5kZWZpbmVkIiE9dHlwZW9mIGEuc2V0dGluZ3MuZm9ybUludGVyYWN0Q2xpY2smJmsucHVzaCh7c2VsZWN0b3I6YS5zZXR0aW5ncy5mb3JtSW50ZXJhY3RDbGljayxldmVudE5hbWU6ImNoYW5nZSBrZXl1cCBjbGljayJ9KTtmb3IobGV0IHE9MDtxPGsubGVuZ3RoO3ErKyl7bGV0IHQ9a1txXSxnPS0xIT09dC5ldmVudE5hbWUuaW5kZXhPZigiICIpP3QuZXZlbnROYW1lLnNwbGl0KCIgIik6W3QuZXZlbnROYW1lXSxkPWZ1bmN0aW9uKCl7YS5pbnRlcmFjdCgpO2lmKG51bGwhPWcmJiJ1bmRlZmluZWQiIT10eXBlb2YgZy5sZW5ndGgmJjA8Zy5sZW5ndGgpZm9yKGxldCBjPTA7YzxnLmxlbmd0aDtjKyspYS5mb3JtLmZpbmQodC5zZWxlY3Rvcikub2ZmKGdbY10sZCl9O2ZvcihsZXQgYz0wO2M8Zy5sZW5ndGg7YysrKWEuZm9ybS5maW5kKHQuc2VsZWN0b3IpLm9uKGdbY10sZCk7YS5mb3JtLmZpbmQodC5zZWxlY3Rvcikub24oImJsdXIiLApmdW5jdGlvbigpeyEwIT09QyYmYS5maWVsZEludGVyYWN0aW9uKHRoaXMpfSl9aWYoInVuZGVmaW5lZCIhPXR5cGVvZiByLnN1Ym1pdEV2ZW50TmFtZSkkKGRvY3VtZW50LmJvZHkpLm9uKHIuc3VibWl0RXZlbnROYW1lLGZ1bmN0aW9uKCl7YS5zZW50KCl9KTthLmZvcm0uZmluZCgnLmJ0bi1kZWZhdWx0LCBhW2NsYXNzKj0ic3VibWl0Il0sIGJ1dHRvbltjbGFzcyo9InN1Ym1pdCJdLCBpbnB1dDpzdWJtaXQsIGlucHV0W2NsYXNzKj0ic3VibWl0Il0sIGEjc2VuZEVtYWlsRm9ybVN1Ym1pdCwgYSN0cmFkZUluQmFyUG9wdXBTdWJtaXQsIGJ1dHRvblt0eXBlPSJzdWJtaXQiXScpLm9uKCJjbGljayIsYS5zdWJtaXQpO2EuZm9ybS5maWx0ZXIoZnVuY3Rpb24ocSx0KXt0PSQodCk7cmV0dXJuIHQuaGFzQ2xhc3MoImJ0bi1kZWZhdWx0Iil8fHQuaXMoImlucHV0OnN1Ym1pdCIpfHx0LmlzKCJhI3NlbmRFbWFpbEZvcm1TdWJtaXQiKXx8dC5pcygiYSN0cmFkZUluQmFyUG9wdXBTdWJtaXQiKXx8Cih0LmlzKCJpbnB1dCIpfHx0LmlzKCJhIil8fHQuaXMoImJ1dHRvbiIpKSYmdC5pcygnW2NsYXNzKj0ic3VibWl0Il0nKX0pLm9uKCJjbGljayIsYS5zdWJtaXQpfX19Y2F0Y2gocSl7ZGVidWcoIkVycm9yIGluamVjdGluZyBob29rcywgbm90IGdvb2QgZm9yIHRhZ2dpbmc6ICVzIixxLm1lc3NhZ2UpfX0sbGlzdGVuOmZ1bmN0aW9uKCl7InVuZGVmaW5lZCIhPT10eXBlb2YgYS5mb3JtLmRhdGEoIm1haWxleHByZXNzLXdpZGdldCIpJiYoYS5zZXR0aW5ncy5tYWlsSWQ9YS5mb3JtLmRhdGEoIm1haWxleHByZXNzLXdpZGdldCIpLnNldHRpbmdzLmVtYWlsSWQpOyJpbi1wYWdlIj09PWEuZGF0YS5kaXNwbGF5VHlwZT9hLmZvcm0uZWFjaChmdW5jdGlvbih0LGcpeyQoZykuaW5WaWV3cG9ydCh7b2JzZXJ2ZXI6e3RocmVzaG9sZDpbLjVdfSx2aXNpYmxlOmEudmlldyxkaXNjb25uZWN0QWZ0ZXJWaXNpYmxlOiEwLHdhaXRGb3I6ImlucHV0Om5vdCg6aGlkZGVuKSwgdGV4dGFyZWEsIHNlbGVjdCJ9KX0pOgphLmZvcm0uaW5WaWV3cG9ydCh7b2JzZXJ2ZXI6e3RocmVzaG9sZDpbMV19LHZpc2libGU6YS52aWV3LGRpc2Nvbm5lY3RBZnRlclZpc2libGU6ITAsd2FpdEZvcjoiaW5wdXQ6bm90KDpoaWRkZW4pLCB0ZXh0YXJlYSwgc2VsZWN0In0pO2lmKCJ1bmRlZmluZWQiIT10eXBlb2Ygci5mb3JtU2hvd25DbGljaylmb3IodmFyIGs9ci5mb3JtU2hvd25DbGljay5pbmRleE9mKCIsIik\/ci5mb3JtU2hvd25DbGljay5zcGxpdCgiLCIpOltyLmZvcm1TaG93bkNsaWNrXSxxPTA7cTxrLmxlbmd0aDtxKyspJCgobmV3IFN0cmluZyhrW3FdKSkudHJpbSgpKS5vbigiY2xpY2siLGZ1bmN0aW9uKCl7YS52aWV3KCk7InVuZGVmaW5lZCIhPXR5cGVvZiByLm1haWxJZCYmYi52aWV3ZWRGb3Jtcy5wdXNoKHIubWFpbElkKX0pO2Euc2V0dGluZ3MuaGFzT3duUHJvcGVydHkoImlnbm9yZVN1Ym1pdCIpJiZhLnNldHRpbmdzLmlnbm9yZVN1Ym1pdHx8KGEuZW1haWxIYW5kbGVySG9va2VkPSEwLCQoImJvZHkiKS5vbigiZW1haWxIYW5kbGVyLmVtYWlsU2VudCIsCmZ1bmN0aW9uKCl7YS5zZW50KCl9KSl9LHZpZXc6ZnVuY3Rpb24oKXsidW5kZWZpbmVkIiE9PXR5cGVvZiBhLnNldHRpbmdzJiYhMD09PWEuc2V0dGluZ3MuaGFzTXVsdGlwbGVGb3Jtc09uUGFnZSYmInVuZGVmaW5lZCIhPT10eXBlb2YgYS5zZXR0aW5ncy5mb3JtU2hvd25DbGljayYmKGEuZm9ybT0kKGEuc2V0dGluZ3MuZm9ybVNob3duQ2xpY2spLmNsb3Nlc3QoYS5zZXR0aW5ncy5wYXJlbnRFbGVtZW50LCJmb3JtIiksYS5pbml0aWF0ZWQ9ITEsYS5zdWJtaXR0ZWQ9ITEsYS5zdWJtaXRCdG5DbGlja2VkPSExLGEuaG9va2VkPSExKTtpZigwPGEuZm9ybS5sZW5ndGgmJjA8JCgiI21pbmlmb3JtIikubGVuZ3RoJiYiZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSI9PSQoYS5mb3JtKS5hdHRyKCJpZCIpKWEuaW5pdGlhdGVkPSEwLGEuaG9va2VkPSEwLGEudmlld2VkPSEwO2Vsc2UgaWYoYS5ob29rZWR8fGEuYWRkTGlzdGVuZXJzKCksITAhPT1hLnZpZXdlZCl7aWYoInVuZGVmaW5lZCIhPQp0eXBlb2YgYS5zZXR0aW5ncy5tYWlsSWQpe2lmKC0xIT09Yi52aWV3ZWRGb3Jtcy5pbmRleE9mKGEuc2V0dGluZ3MubWFpbElkKSl7YS52aWV3ZWQ9ITA7cmV0dXJufWIudmlld2VkRm9ybXMucHVzaChhLnNldHRpbmdzLm1haWxJZCl9aWYoLTEhPT1iLnZpZXdlZEZvcm1zLmluZGV4T2YoYS51aWQpKWEudmlld2VkPSEwO2Vsc2V7YS52aWV3ZWQ9ITA7Yi52aWV3ZWRGb3Jtcy5wdXNoKGEudWlkKTt2YXIgaz17aW5mbzphLnNldHRpbmdzLGV2ZW50OmEuZGF0YX07JC5leHRlbmQoITAsayx7aW5mbzp7dGFyZ2V0OmEuZm9ybX19KTtrPUEuYnVpbGQoYi5zdGF0aWNEYXRhLnBhZ2VUeXBlLCJmb3JtU2hvd24iLGspO2RlYnVnKCJTRCA6OiBmb3JtU2hvd24gIithLmZvcm0uc2VsZWN0b3Isayk7ITAhPT1DJiYoZGVidWcoIlNEIDo6IHZpZXcgZm9ybVNob3duIixrKSxzZCgiZGF0YUxheWVyIixrKSxzZCgic2VuZCIpKTthLmRhdGEuZm9ybVR5cGU9ay5mb3JtVHlwZX19fSxpbnRlcmFjdDpmdW5jdGlvbigpe2lmKCEwIT09CmEuaW5pdGlhdGVkKXtpZigidW5kZWZpbmVkIiE9dHlwZW9mIGEuc2V0dGluZ3MubWFpbElkKXtpZigtMSE9PWIuaW5pdGlhdGlvbkZvcm1zLmluZGV4T2YoYS5zZXR0aW5ncy5tYWlsSWQpKXthLmluaXRpYXRlZD0hMDthLnZpZXdlZD0hMDtyZXR1cm59Yi5pbml0aWF0aW9uRm9ybXMucHVzaChhLnNldHRpbmdzLm1haWxJZCl9Y29uc29sZS5sb2coIkQyRFIgZm9ybUluaXQiLGEpO2lmKCFsLmlzRFJ8fCFsLmRyQmxhY2tsaXN0LmluY2x1ZGVzKGEuZGF0YS5mb3JtVHlwZSkpaWYoLTEhPT1iLmluaXRpYXRpb25Gb3Jtcy5pbmRleE9mKGEudWlkKSlhLmluaXRpYXRlZD0hMCxhLnZpZXdlZD0hMDtlbHNle2Eudmlld2VkfHxhLnZpZXcoKTthLmluaXRpYXRlZD0hMDtiLmluaXRpYXRpb25Gb3Jtcy5wdXNoKGEudWlkKTt2YXIgaz17aW5mbzphLnNldHRpbmdzLGV2ZW50OmEuZGF0YX07JC5leHRlbmQoITAsayx7aW5mbzp7dGFyZ2V0OmEuZm9ybX19KTtrPUEuYnVpbGQoYi5zdGF0aWNEYXRhLnBhZ2VUeXBlLAoiZm9ybUluaXRpYXRpb24iLGspO2RlYnVnKCJTRCA6OiBmb3JtSW5pdGlhdGlvbiAiK2EuZm9ybS5zZWxlY3RvcixrKTtzZCgiZGF0YUxheWVyIixrKTtzZCgic2VuZCIpfX19LGZpZWxkSW50ZXJhY3Rpb246ZnVuY3Rpb24oayl7dmFyIHE9e2luZm86YS5zZXR0aW5ncyxldmVudDphLmRhdGF9OyQuZXh0ZW5kKCEwLHEse2luZm86e3RhcmdldDphLmZvcm19fSk7cT1BLmJ1aWxkKGIuc3RhdGljRGF0YS5wYWdlVHlwZSwiZm9ybUZpZWxkSW50ZXJhY3Rpb24iLHEpO2s9bnVsbCE9ay5nZXRBdHRyaWJ1dGUoIm5hbWUiKT9rLmdldEF0dHJpYnV0ZSgibmFtZSIpOmsuZ2V0QXR0cmlidXRlKCJpZCIpO3EuZm9ybUZpZWxkTmFtZT1rO2RlYnVnKCJTRCA6OiBmb3JtRmllbGRJbnRlcmFjdGlvbiAiK2EuZm9ybS5zZWxlY3RvcixxKTtzZCgiZGF0YUxheWVyIixxKTtzZCgic2VuZCIpfSxzZW50OmZ1bmN0aW9uKCl7dmFyIGs9ITE7bGV0IHE9e307Y29uc29sZS5sb2coIkQyRFIgZm9ybVN1YiIsCmEpO2lmKCFsLmlzRFJ8fCFsLmRyQmxhY2tsaXN0LmluY2x1ZGVzKGEuZGF0YS5mb3JtVHlwZSkpaWYoInVuZGVmaW5lZCIhPXR5cGVvZiBhLnNldHRpbmdzLm1haWxJZCYmIkNyZWRpdE11bHRpc3RlcFJlcXVlc3QiPT1hLnNldHRpbmdzLm1haWxJZCYmMDwkKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSIpLmxlbmd0aCYmJCgiI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0iKS5pcygiOnZpc2libGUiKSYmKGs9ITApLChrfHwidW5kZWZpbmVkIj09dHlwZW9mIGEuc2V0dGluZ3MucGFzc2l2ZVN1Ym1pdHx8ITAhPT1hLnNldHRpbmdzLnBhc3NpdmVTdWJtaXQpJiYoa3x8IWEuc3VibWl0dGVkJiZhLmluaXRpYXRlZCkmJiEwIT09Qyl7YS5zdWJtaXR0ZWQ9ITA7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBhLnNldHRpbmdzLm1haWxJZCl7aWYoLTEhPT1iLnN1Ym1pdHRlZEZvcm1zLmluZGV4T2YoYS5zZXR0aW5ncy5tYWlsSWQpKXJldHVybjtiLnN1Ym1pdHRlZEZvcm1zLnB1c2goYS5zZXR0aW5ncy5tYWlsSWQpfSQuZXh0ZW5kKCEwLApxLHtpbmZvOnt0YXJnZXQ6YS5mb3JtLGVtYWlsSGFuZGxlcn19KTsidW5kZWZpbmVkIj09dHlwZW9mIHEuZXZlbnQmJihxLmV2ZW50PXt9LCJDcmVkaXRNdWx0aXN0ZXBSZXF1ZXN0Ij09YS5zZXR0aW5ncy5tYWlsSWQmJihxLmV2ZW50LmZvcm1UeXBlPWEuZGF0YS5mb3JtVHlwZSkpO2lmKCEoIkZpbmFuY2UiPT12LnBhZ2VUeXBlJiYwPCQoIiNtaW5pZm9ybSIpLmxlbmd0aCYmInVuZGVmaW5lZCIhPT10eXBlb2YgcS5pbmZvLmVtYWlsSGFuZGxlciYmInVuZGVmaW5lZCIhPT10eXBlb2YgcS5pbmZvLmVtYWlsSGFuZGxlci5tYWlsSUQmJiJnZW5lcmljTWFpbCI9PXEuaW5mby5lbWFpbEhhbmRsZXIubWFpbElEJiYiZmluYW5jZW1lbnQiPT1xLmluZm8uZW1haWxIYW5kbGVyLnB1cmNoYXNlX2ludGVudF9zZWN0aW9uKSl7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBxLmluZm8uZW1haWxIYW5kbGVyKXtpZigiRmluYW5jZSI9PXEuZXZlbnQuZm9ybVR5cGUmJiJMZWFkOiBSZXF1ZXN0IGZvciBjb250YWN0Ij09CnEuaW5mby5lbWFpbEhhbmRsZXIuc3ViamVjdClyZXR1cm47IkxlYWQ6IFRyYWRlLWluIHJlcXVlc3QiPT1xLmluZm8uZW1haWxIYW5kbGVyLnN1YmplY3QudHJpbSgpJiYocS5ldmVudC5mb3JtVHlwZT0iVHJhZGUgSW4iKTsiMTAxNyI9PSQoIiNvZW1DZXJ0aWZpY2F0aW9uIikudmFsKCkmJnEuaW5mby5lbWFpbEhhbmRsZXIuc3ViamVjdC5pbmNsdWRlcygiUmVxdWVzdCBmb3IgYmVzdCBvZmZlciIpJiYocS5ldmVudC5mb3JtVHlwZT0iR2V0IEEgUXVvdGUiKX1rPUEuYnVpbGQoYi5zdGF0aWNEYXRhLnBhZ2VUeXBlLCJmb3JtU3VibWlzc2lvbiIscSk7ZGVidWcoIlNEIDo6IGZvcm1TdWJtaXNzaW9uICIrYS5mb3JtLnNlbGVjdG9yLGspO3NkKCJkYXRhTGF5ZXIiLGspO3NkKCJzZW5kIil9fX0sc3VibWl0OmZ1bmN0aW9uKCl7YS5zdWJtaXRCdG5DbGlja2VkPSEwOyExPT09YS5lbWFpbEhhbmRsZXJIb29rZWQmJmEuc2VudCgpfX07YS5saXN0ZW4oKX07Yi5wYWdlVmlldz1mdW5jdGlvbihmKXtpZigoITEhPT0KZnx8ITAhPT10aGlzLnBhZ2VWaWV3U3VibWl0dGVkKSYmIWwuaXNEUil7dGhpcy5wYWdlVmlld1N1Ym1pdHRlZD0hMDt2YXIgcD17aGFuZGxlcjpmdW5jdGlvbigpezE9PSQoIiNJU1ZNIikudmFsKCk\/cC5zZW5kKCk6InVuZGVmaW5lZCIhPXR5cGVvZiBhY3RpdmVVc2VyUHJvZmlsZU1uZyYmInVuZGVmaW5lZCIhPXR5cGVvZiBhY3RpdmVVc2VyUHJvZmlsZU1uZy5yZWdpc3RlckNhbGxiYWNrP2FjdGl2ZVVzZXJQcm9maWxlTW5nLnJlZ2lzdGVyQ2FsbGJhY2soKCk9PntkZWJ1ZygiU0QgOjogLSBpbiBzZXNzaW9uSUQgY2FsbGJhY2siKTtwLnNlbmQoKX0pOmNvbnNvbGUuZXJyb3IoImFjdGl2ZVVzZXJQcm9maWxlTW5nLnJlZ2lzdGVyQ2FsbGJhY2sgaXMgbm90IGRlZmluZWQiKX0sc2VuZDpmdW5jdGlvbigpe3ZhciByPUEuYnVpbGQoYi5zdGF0aWNEYXRhLnBhZ2VUeXBlLCJwYWdldmlldyIse30pO3IuZGVhbGVyQkFDPSQoIiNkaWdpdGFsX2RhdGFfaW5mbyBpbnB1dFtuYW1lPSdkZWFsZXJCQUMnXSIpLnZhbCgpOwpjb25zb2xlLmRlYnVnKCJTRCA6OiBwYWdldmlldyIscik7IiIhPT1yLnBhZ2VUeXBlJiZudWxsIT09ci5wYWdlVHlwZSYmInVuZGVmaW5lZCIhPT10eXBlb2Ygci5wYWdlVHlwZXx8Tih7bWVzc2FnZToiU2hpZnREaWdpdGFsIFBhZ2VUeXBlIGlzIGVtcHR5IixkYXRhOntwYWdlRGF0YTpiLnN0YXRpY0RhdGEsZGF0YV9sYXllcjpyfX0pO3NkKCJkYXRhTGF5ZXIiLHIpO3NkKCJzZW5kIiwicGFnZXZpZXciKX19O3JldHVybiBwLmhhbmRsZXJ9fTtiLnNlbmQ9ZnVuY3Rpb24oZixwKXt2YXIgcj17ZXZlbnRUeXBlOmYsZGF0YTpwLGhhbmRsZXI6ZnVuY3Rpb24oYSl7dmFyIGs9e2luZm86e3RhcmdldDphLmN1cnJlbnRUYXJnZXR9LGV2ZW50OnIuZGF0YX07aWYoci5kYXRhLmNvbnRhaW5lclVzZWQmJihrLmluZm8udGFyZ2V0PWEudGFyZ2V0LCEkKGEudGFyZ2V0KS5wYXJlbnQoKS5pcyhhLmN1cnJlbnRUYXJnZXQpKSlyZXR1cm47dmFyIHE9YS50eXBlO3ErPSIiIT09YS5uYW1lc3BhY2U\/CiIuIithLm5hbWVzcGFjZToiIjtzd2l0Y2gocSl7Y2FzZSAiZmlsdGVyczpjaGFuZ2UiOmNhc2UgImZpbHRlcnM6bG9hZCI6JCgiYm9keSIpLmRhdGEocSwiMSIpO2RvY3VtZW50LmJvZHkuZGF0YXNldFtxXT0iMSI7aWYoIlNob3dyb29tIj09PWwucGFnZURhdGEucGFnZVR5cGUpay5pbmZvLmZpbHRlcnM9YS5maWx0ZXJzLGsuaW5mby52ZWhpY2xlQ291bnQ9YS52ZWhpY2xlQ291bnQ7ZWxzZXtrLmluZm8uZmlsdGVycz1hLmZpbHRlckRhdGEuZmlsdGVyU2VhcmNoO2suaW5mby52ZWhpY2xlQ291bnQ9YS5maWx0ZXJEYXRhLmNvdW50U2VhcmNoUmVzdWx0cztpZigwPGEuZmlsdGVyRGF0YS5maWx0ZXJTZWFyY2guc3RhdHVzLmxlbmd0aCl7bGV0IHQ9YS5maWx0ZXJEYXRhLmZpbHRlclNlYXJjaC5zdGF0dXNbMF0sZz0kKCIuZGl2U2NvcGVmbHRDZXJ0aWZpZWRJZCAubm90YWdzLmV4Y2VydGlmaWVkIik7IkNQTyIhPT10JiYwPGcubGVuZ3RoJiZnLmhhc0NsYXNzKCJzZWxlY3RlZCIpJiYKKGEuZmlsdGVyRGF0YS5maWx0ZXJTZWFyY2guc3RhdHVzPVsiQ1BPIl0pfWlmKCIiIT09YS5maWx0ZXJEYXRhLnR5cGVkU2VhcmNoKXtkMnNkRGVsYXlTZWFyY2goZnVuY3Rpb24oKXtiLnBhZ2VWaWV3KCEwKSgpO3NldFRpbWVvdXQoZnVuY3Rpb24oKXtiLnNlbmROb3coZixrKTtiLnNlbmROb3coInR5cGVkU2VhcmNoIix7aW5mbzp7dGFyZ2V0OmEuY3VycmVudFRhcmdldH0sZXZlbnQ6e3R5cGVkU2VhcmNoOmEuZmlsdGVyRGF0YS50eXBlZFNlYXJjaH19LDI1MCl9KX0sM0UzKTtyZXR1cm59aWYoImZpbHRlcnM6Y2hhbmdlIj09cSl7Yi5wYWdlVmlldyghMCkoKTtkMnNkRGVsYXlTZWFyY2goZnVuY3Rpb24oKXtiLnNlbmROb3coZixrKX0sNTAwKTtyZXR1cm59fWJyZWFrO2Nhc2UgInR5cGVhaGVhZDphc3luY3JlY2VpdmUiOmsuaW5mby50YXJnZXQ9YS50YXJnZXR9Yi5zZW5kTm93KGYsayl9fTtyZXR1cm4gci5oYW5kbGVyfTtiLnNlbmROb3c9ZnVuY3Rpb24oZixwKXtwPUEuYnVpbGQoYi5zdGF0aWNEYXRhLnBhZ2VUeXBlLApmLHApO2RlYnVnKCJTRCA6OiBzZW5kaW5nIHNlbmROb3cgIitmLHApO3NkKCJkYXRhTGF5ZXIiLHApO3NkKCJzZW5kIil9O3JldHVybiBifSxBPW5ldyBmdW5jdGlvbigpe2Z1bmN0aW9uIGIoKXtsZXQgZD17c2Vzc2lvbklkOkUoKX07ZW1haWxIYW5kbGVyLnVzZXJQb3N0YWwmJihkLnVzZXJaaXBDb2RlPWVtYWlsSGFuZGxlci51c2VyUG9zdGFsKTtyZXR1cm4gZH1mdW5jdGlvbiBmKGQsYyl7Yz17c3RhdHVzOnEoInZlaGljbGVEZXRhaWxzLnN0YXR1cyIsZy5kYXRhQ29udGFpbmVyLmZpbmQoImlucHV0W25hbWU9c3RhdHVzXSIpLnZhbCgpLCIiKSx0cmltOiIiLGVuZ2luZTpnLmRhdGFDb250YWluZXIuZmluZCgiaW5wdXRbbmFtZT1lbmdpbmVdIikudmFsKCksdHJhbnNtaXNzaW9uOnEoInZlaGljbGVEZXRhaWxzLnRyYW5zbWlzc2lvbiIsZy5kYXRhQ29udGFpbmVyLmZpbmQoImlucHV0W25hbWU9dHJhbnNtaXNzaW9uXSIpLnZhbCgpLCIiKSxpbnRlcmlvckNvbG9yOmcuZGF0YUNvbnRhaW5lci5maW5kKCJpbnB1dFtuYW1lPWludENvbG9yXSIpLnZhbCgpLApleHRlcmlvckNvbG9yOmcuZGF0YUNvbnRhaW5lci5maW5kKCJpbnB1dFtuYW1lPWV4dENvbG9yXSIpLnZhbCgpLGRyaXZlVHJhaW46Zy5kYXRhQ29udGFpbmVyLmZpbmQoImlucHV0W25hbWU9ZHJpdmVUcmFpbl0iKS52YWwoKSxmdWVsVHlwZTpxKCJ2ZWhpY2xlRGV0YWlscy5mdWVsVHlwZSIsZy5kYXRhQ29udGFpbmVyLmZpbmQoImlucHV0W25hbWU9ZnVlbFR5cGVdIikudmFsKCksIkdhc29saW5lIiksbXNycDoiMCIsZGlzcGxheWVkUHJpY2U6IjAiLHZpbjoiIn07ZCYmKCJmaW5hbmNlX211bHRpc3RlcF9mb3JtIj09PWQuYXR0cigiaWQiKSYmLTE9PT1bIlZlaGljbGUgRGV0YWlscyIsIk1vZGVsIFNob3dyb29tIl0uaW5kZXhPZihnLnN0YXRpY0RhdGEucGFnZVR5cGUpPyQuZXh0ZW5kKCEwLGMse21ha2U6JCgiI3BvcHVwbWFrZU11bHRpc3RlcEZvcm0iKS52YWwoKSxtb2RlbDokKCIjcG9wdXBtb2RlbE11bHRpc3RlcEZvcm0iKS52YWwoKSx5ZWFyOiQoIiNwb3B1cHllYXJNdWx0aXN0ZXBGb3JtIikudmFsKCksCnZpbjoiIn0pOigkLmV4dGVuZCghMCxjLHttYWtlOmQuZmluZCgiI2JyYW5kU2VsZWN0IikudmFsKCksbW9kZWw6ZC5maW5kKCIjbW9kZWxTZWxlY3QiKS52YWwoKSx5ZWFyOmQuZmluZCgiI3llYXJTZWxlY3QiKS52YWwoKSx2aW46ZC5maW5kKCIjdmluTnVtYmVyIikudmFsKCl8fCIifSksZC5maW5kKCJzZWxlY3RbbmFtZT1jb2xvclNlbGVjdF0iKSYmKGMuZXh0ZXJpb3JDb2xvcj1kLmZpbmQoInNlbGVjdFtuYW1lPWNvbG9yU2VsZWN0XSIpLnZhbCgpKSkpO2MuaGFzT3duUHJvcGVydHkoIm1vZGVsIikmJiIiIT09Yy5tb2RlbHx8JC5leHRlbmQoITAsYyx7bWFrZTpnLmRhdGFDb250YWluZXIuZmluZCgiaW5wdXRbbmFtZT1tYWtlXSIpLnZhbCgpLG1vZGVsOmcuZGF0YUNvbnRhaW5lci5maW5kKCJpbnB1dFtuYW1lPW1vZGVsXSIpLnZhbCgpLHllYXI6Zy5kYXRhQ29udGFpbmVyLmZpbmQoImlucHV0W25hbWU9eWVhcl0iKS52YWwoKSx0cmltOmcuZGF0YUNvbnRhaW5lci5maW5kKCJpbnB1dFtuYW1lPXRyaW1dIikudmFsKCksCnZpbjpnLmRhdGFDb250YWluZXIuZmluZCgiaW5wdXRbbmFtZT12aW5dIikudmFsKCksZGlzcGxheWVkUHJpY2U6Zy5kYXRhQ29udGFpbmVyLmZpbmQoImlucHV0W25hbWU9ZGlzcGxheWVkUHJpY2VdIikudmFsKCksbXNycDpnLmRhdGFDb250YWluZXIuZmluZCgiaW5wdXRbbmFtZT1tc3JwXSIpLnZhbCgpfSk7Zm9yKHZhciBoIGluIGMpaWYoYy5oYXNPd25Qcm9wZXJ0eShoKSYmInVuZGVmaW5lZCIhPT10eXBlb2YgY1toXSl7aWYoMD09PWNbaF0uaW5kZXhPZigieyQiKXx8Ii0xIj09PWNbaF0pY1toXT0iZGlzcGxheWVkUHJpY2UiPT09aD8iMCI6IiI7dHJ5e2lmKCJvYmplY3QiPT10eXBlb2Ygd2luZG93Ll9fdmRwSlNPTiYmKG51bGw9PWNbaF18fDA9PWNbaF0ubGVuZ3RoKSlzd2l0Y2goaCl7Y2FzZSAidHJpbSI6InVuZGVmaW5lZCI9PXR5cGVvZiB3aW5kb3cuX192ZHBKU09OLmNmc3R5bGVuYW1lPyJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93Ll9fdmRwSlNPTi52ZXJzaW9uJiYKKGNbaF09d2luZG93Ll9fdmRwSlNPTi52ZXJzaW9uLmZ1bGx8fCIiKTpjW2hdPXdpbmRvdy5fX3ZkcEpTT04uY2ZzdHlsZW5hbWV8fCIiO2JyZWFrO2Nhc2UgImVuZ2luZSI6Y1toXT13aW5kb3cuX192ZHBKU09OLmVuZ2luZVR5cGV8fHdpbmRvdy5fX3ZkcEpTT04uZW5naW5lfHwiIjticmVhaztjYXNlICJkcml2ZVRyYWluIjpjW2hdPXdpbmRvdy5fX3ZkcEpTT04uY2Zkcml2ZXRyYWlufHx3aW5kb3cuX192ZHBKU09OLmRyaXZldHJhaW58fCIiO2JyZWFrO2Nhc2UgInRyYW5zbWlzc2lvbiI6aWYod2luZG93Ll9fdmRwSlNPTi50cmFuc21pc3Npb24pY1toXT13aW5kb3cuX192ZHBKU09OLnRyYW5zbWlzc2lvbjtlbHNlIGlmKCJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93Ll9fdmRwSlNPTi5jYXRfbWVjaGFuaWNhbHMmJjA8dHlwZW9mIHdpbmRvdy5fX3ZkcEpTT04uY2F0X21lY2hhbmljYWxzLmxlbmd0aClmb3IoZD0wO2Q8d2luZG93Ll9fdmRwSlNPTi5jYXRfbWVjaGFuaWNhbHMubGVuZ3RoO2QrKykxMz09CndpbmRvdy5fX3ZkcEpTT04uY2F0X21lY2hhbmljYWxzW2RdLmlkJiYoY1toXT13aW5kb3cuX192ZHBKU09OLmNhdF9tZWNoYW5pY2Fsc1tkXS52YWx1ZSk7ZWxzZSBjW2hdPSIwIj09KHdpbmRvdy5fX3ZkcEpTT04uYXV0b21hdGljdHJhbnx8IiIpPyJNYW51YWwiOiJBdXRvbWF0aWMiO2JyZWFrO2Nhc2UgImludGVyaW9yQ29sb3IiOmNbaF09d2luZG93Ll9fdmRwSlNPTi5jb2xvcj93aW5kb3cuX192ZHBKU09OLmNvbG9yLmludGVyaW9yOiIiO2JyZWFrO2Nhc2UgImV4dGVyaW9yQ29sb3IiOmNbaF09d2luZG93Ll9fdmRwSlNPTi5jb2xvcj93aW5kb3cuX192ZHBKU09OLmNvbG9yLmV4dGVyaW9yOiIifX1jYXRjaChtKXtkZWJ1ZygiVW5leHBlY3RlZCBlcnJvciB0cnlpbmcgYmVzdCBjYXNlIGZpbGxlciBkYXRhLS0lcyIsbS5tZXNzYWdlKX19aD1jO2Zvcih2YXIgZSBpbiBoKW51bGwhPT1oW2VdJiZ2b2lkIDAhPT1oW2VdfHxkZWxldGUgaFtlXTtyZXR1cm4gaH1mdW5jdGlvbiBwKGQsCmMsaCl7aWYoYy5mb3JtVHlwZSl2YXIgZT1jLmZvcm1UeXBlO2Vsc2V7ZT1oLm1haWxJZDt2YXIgbT0hMTtlPWV8fCQoImlucHV0W2lkKj1NYWlsSURdIikudmFsKCk7c3dpdGNoKGUpe2Nhc2UgIkJvZHlTaG9wIjpjYXNlICJFc3RoZXRpY1JlcXVlc3QiOmNhc2UgIlBvcFVwT3RoZXJTZXJ2aWNlIjpjYXNlICJSZWNhbGxzIjpjYXNlICJoZWFkZXJTZXJ2aWNlIjpjYXNlICJtZW51U2VydmljZSI6bT1nLkZPUk1fVFlQRS5TRVJWSUNFO2JyZWFrO2Nhc2UgIlNlcnZpY2VSZXF1ZXN0IjptPWcuRk9STV9UWVBFLlNDSEVEVUxFX1NFUlZJQ0U7YnJlYWs7Y2FzZSAiUGFydHNSZXF1ZXN0IjptPWcuRk9STV9UWVBFLlBBUlRTO2JyZWFrO2Nhc2UgIlRpcmVzUmVxdWVzdCI6bT1nLkZPUk1fVFlQRS5USVJFUzticmVhaztjYXNlICJUZXN0RHJpdmUiOmNhc2UgIlRlc3REcml2ZU5ldyI6bT1nLkZPUk1fVFlQRS5URVNUX0RSSVZFO2JyZWFrO2Nhc2UgIlByaWNlUmVxdWVzdE5ldyI6Y2FzZSAiUHJpY2VWZWhpY2xlTmV3IjpjYXNlICJQcmljZVZlaGljbGUiOmNhc2UgIlByaWNlUmVxdWVzdCI6Y2FzZSAiUXVpY2tFbWFpbE5ld0ludmVudG9yeSI6Y2FzZSAicG9wVXBXaWRnZXRBQSI6Y2FzZSAiUG9wVXBPdGhlclVzZWRDYXJzIjpjYXNlICJWSVBSZXF1ZXN0IjpjYXNlICJSZXNlcnZlSXROb3dOZXciOmNhc2UgIlJlc2VydmVJdE5vdyI6Y2FzZSAiU3BlY3NSZXF1ZXN0TmV3IjpjYXNlICJWSVBSZXF1ZXN0TmV3IjpjYXNlICJCZXN0UHJpY2VSZXF1ZXN0TmV3IjpjYXNlICJTcGVjc1JlcXVlc3QiOm09CmcuRk9STV9UWVBFLkdFVF9QUklDRTticmVhaztjYXNlICJSZWJhdGVDb3Vwb25OZXciOmNhc2UgIlJlYmF0ZUNvdXBvbk5ld0JOUCI6Y2FzZSAiUmViYXRlQ291cG9uTmV3SW52ZW50b3J5IjpjYXNlICJSZWJhdGVDb3Vwb25OZXdTbGlkZXIiOmNhc2UgIlBvcFVwT3RoZXJQcm9tbyI6Y2FzZSAiUHJvbW9Qb3B1cCI6Y2FzZSAiUmViYXRlQ291cG9uVXNlZFNsaWRlciI6Y2FzZSAiUmViYXRlQ291cG9uIjpjYXNlICJCZXN0cHJpY2VHdWFyYW50ZWUiOmNhc2UgIlBvcFVwSW5zdGFudFJlYmF0ZSI6Y2FzZSAiUG9wVXBJbnN0YW50UmViYXRlMyI6bT1nLkZPUk1fVFlQRS5TUEVDSUFMX09GRkVSO2JyZWFrO2Nhc2UgIkNyZWRpdE11bHRpc3RlcFJlcXVlc3QiOmNhc2UgIkNyZWRpdFJlcXVlc3QiOmNhc2UgIkNyZWRpdFJlcXVlc3RNb2JpbGUiOmNhc2UgIkNyZWRpdFNjb3JlIjpjYXNlICJQb3BVcE90aGVyRmluYW5jZSI6Y2FzZSAiQURGQ3JlZHNpaS5jb20iOmNhc2UgIk11bHRpRm9ybV9TTVNfdXNlZCI6Y2FzZSAiTXVsdGlGb3JtIjpjYXNlICJNdWx0aUZvcm1fU01TIjpjYXNlICJNb250aGx5UGF5bWVudHMiOmNhc2UgIk1vbnRobHlQYXltZW50c19TTVMiOmNhc2UgIkZpbmFuY2VBY3Rpb25Cb3hfcG9wdXAiOm09CmcuRk9STV9UWVBFLkNSRURJVDticmVhaztjYXNlICJNYWtlT2ZmZXJOZXciOmNhc2UgIk1ha2VPZmZlciI6bT1nLkZPUk1fVFlQRS5NQUtFX09GRkVSO2JyZWFrO2Nhc2UgIlBvcFVwT3RoZXJOZXdDYXJzIjpjYXNlICJCcm9jaHVyZXMiOmNhc2UgIkNvbnRhY3RWaXNpdFJlcXVlc3ROZXciOmNhc2UgIkNvbnRhY3RWaXNpdFJlcXVlc3QiOmNhc2UgIlJldHVyblZpc2l0b3JOZXciOmNhc2UgIkNhcnByb29mTWFpbCI6Y2FzZSAiUGhvdG9SZXF1ZXN0IjpjYXNlICJSZXR1cm5WaXNpdG9yIjptPWcuRk9STV9UWVBFLk1PUkVfSU5GTzticmVhaztjYXNlICJCbGFja2Jvb2tWRFAiOmNhc2UgIkJsYWNrQm9va0xlYWQiOmNhc2UgIlNlbGxDYXIiOm09Zy5GT1JNX1RZUEUuVFJBREVfSU47YnJlYWs7Y2FzZSAiQnVpbGRBbmRQcmljZUF1dG9BbnN3ZXIiOmNhc2UgIkJ1aWxkQW5kUHJpY2VfU2F2ZSI6Y2FzZSAiQnVpbGRBbmRQcmljZV9TdG9jayI6Y2FzZSAiQXZhaWxhYmlsaXR5VXNlZCI6Y2FzZSAiRmluZFZlaGljbGUiOm09CmcuRk9STV9UWVBFLlNIT1dST09NO2JyZWFrO2Nhc2UgIkNvbnRhY3RVc1JlcXVlc3QiOmNhc2UgIkNvbnRhY3RSZXF1ZXN0IjpjYXNlICJEaXJlY3Rpb25SZXF1ZXN0IjpjYXNlICJtZW51Q29udGFjdFVzIjpjYXNlICJQb3BVcE90aGVyQ29udGFjdFVzIjpjYXNlICJQb3BVcE90aGVySG9tZXBhZ2UiOmNhc2UgIkRlYWxlckFwcG9pbnRtZW50IjptPWcuRk9STV9UWVBFLkNPTlRBQ1RfVVN9ZGVidWcoIkZvcm0gVHlwZSBieSBtYWlsSUQgOiAiLHttYWlsSWQ6ZSxmb3JtVHlwZTptfSk7ZT1tO2V8fChlPXdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSxtPSExLHQoZSxbImVzc2Fpcy1yb3V0aWVyLW5ldWYiLCJ0ZXN0LWRyaXZlLW5ldyIsInRlc3Rkcml2ZSJdKT9tPWcuRk9STV9UWVBFLlRFU1RfRFJJVkU6dChlLFsiY29tbWFuZGUtZGUtcGllY2VzIiwiY29tbWFuZGUtZGUtcG5ldXMtcGllY2VzLWF1dG9tb2JpbGVzIiwiY2FyLXBhcnRzLSIsInBhcnRzLWFuZC1hY2Nlc3NvcmllcyJdKT8KbT1nLkZPUk1fVFlQRS5QQVJUUzp0KGUsWyJjb250YWN0dXMiLCJjb250YWN0ZXoiXSk\/bT1nLkZPUk1fVFlQRS5DT05UQUNUX1VTOnQoZSwiL25ldWZzLyAvbmV3LyBjb25maWd1cmF0aW9uLWV0LXByaXggYnVpbGQtYW5kLXByaWNlIG9mZnJlLW5ldWYgb2ZmZXItbmV3LyBwcml4LW5ldWYgcHJpY2UtbmV3Ii5zcGxpdCgiICIpKT9tPWcuRk9STV9UWVBFLkdFVF9QUklDRTp0KGUsIi9vY2Nhc2lvbi8gL3VzZWQvIHVzZWRjYXJzIGludmVudG9yeS5odG1sIGludmVudGFpcmUuaHRtbCBtb2lucy1kZS0gbGVzcy10aGFuLSBmaW5kLXVzZWQtY2FyIG9mZnJlLW9jY2FzaW9uIG9mZmVyLXVzZWQgcmVjaGVyY2hlLXZlaGljdWxlLW9jY2FzaW9uIi5zcGxpdCgiICIpKT9tPWcuRk9STV9UWVBFLlNIT1dST09NOnQoZSxbImZpbmFuY2UiLCJjcmVkaXQiXSk\/bT1nLkZPUk1fVFlQRS5DUkVESVQ6dChlLFsiZW1wbG95bWVudC8iLCIvZW1wbG9pcyIsImF1dG8tam9icyIsImVtcGxvaXMtYXV0b21vYmlsZSJdKSYmCihtPWcuRk9STV9UWVBFLkVNUExPWU1FTlQpLGRlYnVnKCJGb3JtIFR5cGUgYnkgVVJMIDogIix7dXJsOmUsZm9ybVR5cGU6bX0pLGU9bSk7ZXx8KGU9Zy5GT1JNX1RZUEUuQ09OVEFDVF9VUyl9ZT17Zm9ybVR5cGU6ZX07bnVsbD09PWMuZm9ybVR5cGUmJmRlbGV0ZSBjLmZvcm1UeXBlO209ZihoLnRhcmdldHx8bnVsbCxlLmZvcm1UeXBlKTsiR2VuZXJhbCBDb250YWN0IiE9PWUuZm9ybVR5cGUmJm0uaGFzT3duUHJvcGVydHkoIm1vZGVsIikmJiIiIT09bS5tb2RlbCYmInskTU9ERUx9IiE9PW0ubW9kZWwmJiQuZXh0ZW5kKCEwLGUse2Zvcm1WZWhpY2xlOm19KTsiZm9ybVN1Ym1pc3Npb24iPT09ZCYmKGQ9aC5lbWFpbEhhbmRsZXIsJC5leHRlbmQoITAsZSx7bGVhZElkOihkLl9fbGVhZGlkfHwiIikrIl8iK0RhdGUubm93KCksbGVhZFR5cGU6ImxlYWQiLGZvcm1PcHRpbjpxKCJmb3JtT3B0aW4iLGQuY29uc2VudFR5cGUsImluLWltcGxpY2l0IikscHJlZkNvbnRhY3Q6ZC51c2VyUGhvbmU\/CiJwaG9uZSI6ImVtYWlsIn0pLCJUcmFkZSBJbiI9PT1lLmZvcm1UeXBlJiYkLmV4dGVuZCghMCxlLHt0cmFkZUluOnt5ZWFyOiQoaC50YXJnZXQpLmZpbmQoIiN0cmFkaW5ZZWFyU2VsZWN0LCAjdHJhZGVJbkJhclBvcHVwWWVhciIpLnZhbCgpLG1ha2U6JChoLnRhcmdldCkuZmluZCgiI2JyYW5kU2VsZWN0RXgsICN0cmFkZUluQmFyUG9wdXBNYWtlIikudmFsKCksbW9kZWw6JChoLnRhcmdldCkuZmluZCgiI21vZGVsU2VsZWN0RXgsICN0cmFkZUluQmFyUG9wdXBNb2RlbCIpLnZhbCgpfX0pKTskLmV4dGVuZCghMCxlLGMpO3JldHVybiBlfWZ1bmN0aW9uIHIoZCl7dmFyIGM9e2NvdW50U2VhcmNoUmVzdWx0czpkLnZlaGljbGVDb3VudHx8MCxmaWx0ZXJTZWFyY2g6e3N0YXR1czoiTWl4ZWQiLG1ha2U6IkFsbCIsbW9kZWw6IkFsbCIsY29sb3I6IkFsbCIsZHJpdmVUcmFpbjoiQWxsIix0cmltOiJBbGwiLGJvZHlTdHlsZToiQWxsIixmZWF0dXJlczoiQWxsIix5ZWFyOiJBbGwiLG1pblByaWNlOm51bGwsCm1heFByaWNlOm51bGx9fTtkPSQuZXh0ZW5kKHt9LGQuZmlsdGVycyk7aWYoZC5oYXNPd25Qcm9wZXJ0eSgibWluWWVhciIpJiZkLmhhc093blByb3BlcnR5KCJtYXhZZWFyIikmJjAhPT1kLm1heFllYXImJjAhPT1kLm1pblllYXIpe3ZhciBoPWQubWluWWVhcixlPUFycmF5KGQubWF4WWVhci1oKzEpLmZpbGwoKS5tYXAoZnVuY3Rpb24odyx4KXtyZXR1cm4gaCt4fSk7Yy5maWx0ZXJTZWFyY2gueWVhcj1lLmpvaW4oInwiKTtkZWxldGUgZC5tYXhZZWFyO2RlbGV0ZSBkLm1pblllYXJ9Y29uc29sZS5sb2coIkQyU0QgRmlsdGVyU2VhcmNoIixkKTtkLmhhc093blByb3BlcnR5KCJzdGF0dXMiKT8tMTxkLnN0YXR1cy5pbmRleE9mKCJjZXJ0aWZpZWQiKT9kLnN0YXR1cz0iQ1BPIjpBcnJheS5pc0FycmF5KGQuc3RhdHVzKSYmKC0xPGQuc3RhdHVzLmluZGV4T2YoIkNQTyIpP2Quc3RhdHVzPSJDUE8iOmQuc3RhdHVzPTE9PT1kLnN0YXR1cy5sZW5ndGg\/ZC5zdGF0dXNbMF06Ik1peGVkIik6CmQuc3RhdHVzPSJNaXhlZCI7Y29uc29sZS5sb2coIkQyU0QgRmlsdGVyU2VhcmNoIEEiLGQpOyQoIiNkaWdpdGFsX2RhdGFfaW5mbyBpbnB1dFtuYW1lPXN0YXR1c10iKS52YWwoZC5zdGF0dXMpO2Zvcih2YXIgbSBpbiBkKWlmKGQuaGFzT3duUHJvcGVydHkobSkpaWYoZT1nLkVOVU0uZmlsdGVyU2VhcmNoLmhhc093blByb3BlcnR5KG0pLGRbbV1pbnN0YW5jZW9mIEFycmF5KXt2YXIgdT1kW21dOzAhPT11Lmxlbmd0aCYmKGUmJih1PXUubWFwKGZ1bmN0aW9uKHcpe3JldHVybiBxKCJmaWx0ZXJTZWFyY2guIittLHcsdyl9KSksYy5maWx0ZXJTZWFyY2hbbV09dS5qb2luKCJ8IikpfWVsc2UgdT1kW21dLDAhPT11JiYiIiE9PXUmJihlJiYodT1xKCJmaWx0ZXJTZWFyY2guIittLHUsIiIpKSxjLmZpbHRlclNlYXJjaFttXT11KTtjb25zb2xlLmxvZygiRDJTRCBGaWx0ZXJTZWFyY2ggQiIsYyk7cmV0dXJuIGN9ZnVuY3Rpb24gYShkKXtkPSJBIj09PWRbMF0udGFnTmFtZT9kOmQuZmluZCgiYSIpOwppZihkLmF0dHIoInRpdGxlIikpe3ZhciBjPWQuYXR0cigidGl0bGUiKTtyZXR1cm4tMTxjLmluZGV4T2YoIi1iYW5uZXIwIil8fGQuZGF0YSgib2VtYmFubmVyIik\/KGM9bmV3IERhdGUsZD1jLnRvTG9jYWxlU3RyaW5nKCJkZWZhdWx0Iix7bW9udGg6ImxvbmcifSksYz1jLmdldEZ1bGxZZWFyKCksYCR7bC5saWJyYXJ5LmNsaWVudElEfV8ke2R9XyR7Y31fTW9udGhseV9PZmZlcmApOmN9cmV0dXJuKGM9ZC5hdHRyKCJocmVmIikpJiYtMTxjLmluZGV4T2YoImphdmFzY3JpcHQ6IikmJmQuZmluZCgiaW1nIikuYXR0cigiYWx0Iik\/ZC5maW5kKCJpbWciKS5hdHRyKCJhbHQiKTpjfWZ1bmN0aW9uIGsoZCxjKXtsZXQgaD1jLmNsb3Nlc3QoImRpdi5wcm9tb3MiKTtoPTA9PT1oLmxlbmd0aD9jLmNsb3Nlc3QoImRpdi5wcm9tby1jYXJkLW9lbSIpOmg7Yz17b2ZmZXJOYW1lOihoLmZpbmQoIi5wcm9tby10aXRsZSIpLmxlbmd0aD9oLmZpbmQoIi5wcm9tby10aXRsZSIpLnRleHQoKTpoLmZpbmQoImgyIikudGV4dCgpKS5yZXBsYWNlKC8oXHR8XG58XHIpL2csCiIiKX07aC5kYXRhKCJleHBpcmUiKSYmKGMub2ZmZXJFeHBpcmU9aC5kYXRhKCJleHBpcmUiKSk7Im9mZmVyQ2xpY2siPT09ZCYmaC5kYXRhKCJtb2RlbCIpJiYoJC5leHRlbmQoITAsYyx7b2ZmZXJDYXRlZ29yeToidmVoaWNsZSIsdmVoaWNsZU1vZGVsOmguZGF0YSgibW9kZWwiKSx2ZWhpY2xlWWVhcjpoLmRhdGEoInllYXIiKX0pLGguYXR0cigiZ3JvdXB0YWIiKSYmKGMudmVoaWNsZUNhdGVnb3J5PWguYXR0cigiZ3JvdXB0YWIiKSkpO3JldHVybiBjfWZ1bmN0aW9uIHEoZCxjLGgpe3ZhciBlPWcuRU5VTSxtPWcuRU5VTV9BTFQsdT1nLk5PVF9DQVBJVEFMSVNFLHc9ZC5zcGxpdCgiLiIpLHg7Zm9yKHggaW4gdyl7aWYoIWUuaGFzT3duUHJvcGVydHkod1t4XSkpYnJlYWs7ZT1lW3dbeF1dO209bS5oYXNPd25Qcm9wZXJ0eSh3W3hdKT9tW3dbeF1dOm07dT11Lmhhc093blByb3BlcnR5KHdbeF0pP3Vbd1t4XV06dX1pZighKGUgaW5zdGFuY2VvZiBBcnJheSkpcmV0dXJuIGRlYnVnKCJJbnZhbGlkIEVudW0ga2V5IHByb3ZpZGVkIiwKe2tleTpkLGVudW06Zy5FTlVNfSksaD9oOmM7bT09PWcuRU5VTV9BTFQmJihtPW51bGwpO3c9Yzt1IGluc3RhbmNlb2YgQXJyYXkmJi0xIT11LmluZGV4T2YoYyl8fCh3PWMudG9Mb3dlckNhc2UoKSx3PXcuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkrdy5zbGljZSgxKSk7aWYoLTE8ZS5pbmRleE9mKHcpKXJldHVybiBlW2UuaW5kZXhPZih3KV07aWYobnVsbCE9PW0mJm0uaGFzT3duUHJvcGVydHkoYykpcmV0dXJuIG1bY107aWYoLTE8Zy5FTlVNX1BBUlRJQUwuaW5kZXhPZihkKSYmKGU9T2JqZWN0LmtleXMobSkuZmlsdGVyKE89Pi0xPGMuaW5kZXhPZihPKSkpKXJldHVybiBtW2VbMF1dO2RlYnVnKCJFbnVtIHZhbHVlIG5vdCBmb3VuZCwgdXNpbmcgZGVmYXVsdCBpbnN0ZWFkIix7a2V5OmQsdmFsdWU6YyxkZWZhdWx0Omh9KTtyZXR1cm4gaH1mdW5jdGlvbiB0KGQsYyl7dmFyIGg9ITEsZTtmb3IoZSBpbiBjKWlmKC0xPGQuaW5kZXhPZihjW2VdKSl7aD0hMDticmVha31yZXR1cm4gaH0KdmFyIGc9dGhpcztnLmRhdGFDb250YWluZXI9JCgiI2RpZ2l0YWxfZGF0YV9pbmZvIik7Zy5zdGF0aWNEYXRhPWwucGFnZURhdGE7Zy5FTlVNPXt2ZWhpY2xlRGV0YWlsczp7c3RhdHVzOlsiTmV3IiwiVXNlZCIsIkNQTyJdLGZ1ZWxUeXBlOlsiR2Fzb2xpbmUiLCJEaWVzZWwiLCJFbGVjdHJpYyIsIkh5YnJpZCJdLHRyYW5zbWlzc2lvbjpbIkF1dG9tYXRpYyIsIk1hbnVhbCJdfSxmaWx0ZXJTZWFyY2g6e3N0YXR1czpbIk5ldyIsIlVzZWQiLCJDUE8iLCJNaXhlZCJdLGZ1ZWxUeXBlOlsiR2Fzb2xpbmUiLCJEaWVzZWwiLCJFbGVjdHJpYyIsIkh5YnJpZCJdfSxmb3JtT3B0aW46WyJpbi1pbXBsaWNpdCIsImluLWV4cGxpY2l0Iiwib3V0Il0sbGVhZFR5cGU6WyJsZWFkIiwiaGFuZHJhaXNlciIsImxlYWR8aGFuZHJhaXNlciJdLGRpc3BsYXlUeXBlOlsiaW4tcGFnZSIsIm1vZGFsIl0scHJlZkNvbnRhY3Q6WyJwaG9uZSIsImVtYWlsIiwidGV4dCIsIm90aGVyIl0sY2xpY2tUb0NhbGxEZXBhcnRtZW50OlsiU2FsZXMiLAoiU2VydmljZSIsIlBhcnRzIiwiT3RoZXIiXX07Zy5FTlVNX0FMVD17Zm9ybU9wdGluOntJbXBsaWNpdDoiaW4taW1wbGljaXQiLEV4cGxpY2l0OiJpbi1leHBsaWNpdCJ9LGNsaWNrVG9DYWxsRGVwYXJ0bWVudDp7TmV3OiJTYWxlcyIsVXNlZDoiU2FsZXMiLFNhbGVzdXNlZDoiU2FsZXMiLFNhbGVzbmV3OiJTYWxlcyIsU2FsZXNwYXJjOiJTYWxlcyIsU2FsZXN0cnVjazoiU2FsZXMiLEJvZHk6IlNlcnZpY2UiLFF1aWNrbGFuZToiU2VydmljZSJ9LGZpbHRlclNlYXJjaDp7c3RhdHVzOnsiVXNlZCB2ZWhpY2xlcyI6IlVzZWQiLHVzZWQ6IlVzZWQiLCJWw6loaWN1bGVzIGQnb2NjYXNpb24iOiJVc2VkIiwiZCdvY2Nhc2lvbiI6IlVzZWQiLG9jY2FzaW9uOiJVc2VkIiwiTmV3IEludmVudG9yeSI6Ik5ldyIsIm5ldyI6Ik5ldyIsIlbDqWhpY3VsZXMgbmV1ZnMiOiJOZXciLG5ldWY6Ik5ldyJ9LGZ1ZWxUeXBlOntHYXM6Ikdhc29saW5lIn19LHZlaGljbGVEZXRhaWxzOntmdWVsVHlwZTp7R2FzOiJHYXNvbGluZSIsClVubGVhZGVkOiJHYXNvbGluZSIsIsOJbGVjdHJpcXVlIjoiRWxlY3RyaWMiLEVsZWN0cmlxdWU6IkVsZWN0cmljIixIeWJyaWRlOiJIeWJyaWQiLCJOLkQuIjoiR2Fzb2xpbmUiLCJOLkEuIjoiR2Fzb2xpbmUiLCJ7JENBUkZVRUxUWVBFfSI6Ikdhc29saW5lIn0sc3RhdHVzOnsiVXNlZCB2ZWhpY2xlcyI6IlVzZWQiLHVzZWQ6IlVzZWQiLCJWw6loaWN1bGVzIGQnb2NjYXNpb24iOiJVc2VkIiwiZCdvY2Nhc2lvbiI6IlVzZWQiLG9jY2FzaW9uOiJVc2VkIiwiTmV3IEludmVudG9yeSI6Ik5ldyIsIm5ldyI6Ik5ldyIsIlbDqWhpY3VsZXMgbmV1ZnMiOiJOZXciLG5ldWY6Ik5ldyJ9LHRyYW5zbWlzc2lvbjp7QXV0b21hdGlxdWU6IkF1dG9tYXRpYyIsTWFudWVsbGU6Ik1hbnVhbCIsYXV0b21hdGljOiJBdXRvbWF0aWMiLG1hbnVhbDoiTWFudWFsIn19fTtnLkVOVU1fUEFSVElBTD1bInZlaGljbGVEZXRhaWxzLnRyYW5zbWlzc2lvbiJdO2cuTk9UX0NBUElUQUxJU0U9e3ZlaGljbGVEZXRhaWxzOntzdGF0dXM6WyJDUE8iXX0sCmZpbHRlclNlYXJjaDp7c3RhdHVzOlsiQ1BPIl19LGxlYWRUeXBlOlsibGVhZCIsImhhbmRyYWlzZXIiLCJsZWFkfGhhbmRyYWlzZXIiXSxkaXNwbGF5VHlwZTpbImluLXBhZ2UiLCJtb2RhbCJdLHByZWZDb250YWN0OlsicGhvbmUiLCJlbWFpbCIsInRleHQiLCJvdGhlciJdfTtnLkZPUk1fVFlQRT17R0VUX1BSSUNFOiJHZXQgYSBRdW90ZSIsUVVPVEU6IkdldCBhIFF1b3RlIixNQUtFX09GRkVSOiJNYWtlIGFuIE9mZmVyIixNT1JFX0lORk86IlJlcXVlc3QgTW9yZSBJbmZvcm1hdGlvbiIsQ09OVEFDVF9VUzoiR2VuZXJhbCBDb250YWN0IixTUEVDSUFMX09GRkVSOiJTcGVjaWFscyIsVEVTVF9EUklWRToiVGVzdCBEcml2ZSIsVFJBREVfSU46IlRyYWRlIEluIixTRVJWSUNFOiJCb29rIEEgU2VydmljZSIsU0NIRURVTEVfU0VSVklDRToiU2NoZWR1bGUgU2VydmljZSIsUEFSVFM6IlBhcnRzIixFTVBMT1lNRU5UOiJFbXBsb3ltZW50IixDUkVESVQ6IlBheW1lbnQgRXN0aW1hdG9yIiwKU0hPV1JPT006IlZlaGljbGUgRmluZGVyIixDVVNUT006IkRlYWxlciBDdXN0b20iLFJFQ0FMTFM6IlJlY2FsbHMiLFRJUkVTOiJQYXJ0cyJ9O2cuYnVpbGQ9ZnVuY3Rpb24oZCxjLGgpe2xldCBlPXt9LG09aC5pbmZvfHx7fSx1PSQobS50YXJnZXQpOyJwYWdldmlldyIhPT1jJiYkLmV4dGVuZCghMCxlLHtldmVudHM6Y30pO2lmKCJmaWx0ZXJTZWFyY2giIT09Y3x8ITAhPT1EKXtzd2l0Y2goYyl7Y2FzZSAicGFnZXZpZXciOiQuZXh0ZW5kKCEwLGUsZy5zdGF0aWNEYXRhLGIoKSk7ZS50cmFmZmljVHlwZT0kKCIjZGlnaXRhbF9kYXRhX2luZm8gaW5wdXRbbmFtZT10cmFmZmljX3R5cGVdIikudmFsKCk7LTE8WyJWZWhpY2xlIERldGFpbHMiLCJNb2RlbCBTaG93cm9vbSJdLmluZGV4T2YoZCkmJiQuZXh0ZW5kKCEwLGUse3ZlaGljbGVEZXRhaWxzOmYobnVsbCl9KTticmVhaztjYXNlICJjbGlja1RvQ2FsbCI6JC5leHRlbmQoITAsZSx7Y2xpY2tUb0NhbGxEZXBhcnRtZW50OnEoImNsaWNrVG9DYWxsRGVwYXJ0bWVudCIsCiQobS50YXJnZXR8fCIiKS5kYXRhKCJkZXBhcnRtZW50IiksIk90aGVyIil9KTticmVhaztjYXNlICJmb3JtU3VibWlzc2lvbiI6Y2FzZSAiZm9ybVNob3duIjpjYXNlICJmb3JtSW5pdGlhdGlvbiI6Y2FzZSAiZm9ybUZpZWxkSW50ZXJhY3Rpb24iOiQuZXh0ZW5kKCEwLGUscChjLGguZXZlbnQsaC5pbmZvKSk7YnJlYWs7Y2FzZSAicHJvbW9wb3B1cEJpbmRJbml0IjplLmV2ZW50cz0iZm9ybUluaXRpYXRpb24iOyQoIiNwcm9tb3BvcHVwIGZvcm0uZDJjZm9ybSIpLnByb3AoImlkIiwicHJvbW9wb3B1cC1mb3JtIik7JC5leHRlbmQoITAsZSxwKCJmb3JtSW5pdGlhdGlvbiIse2Zvcm1UeXBlOiJTcGVjaWFscyIsZGlzcGxheVR5cGU6Im1vZGFsIn0se2VtYWlsSGFuZGxlcjp7X19sZWFkaWQ6IlNwZWNpYWxzIixjb25zZW50VHlwZToiIn0sdGFyZ2V0OiQoIiNwcm9tb3BvcHVwIGZvcm0uZDJjZm9ybSIpLG1haWxJZDoiUHJvbW9Qb3B1cCJ9KSk7YnJlYWs7Y2FzZSAicHJvbW9wb3B1cFN1Ym1pc3Npb24iOmUuZXZlbnRzPQoiZm9ybVN1Ym1pc3Npb24iOyQoIiNwcm9tb3BvcHVwIGZvcm0uZDJjZm9ybSIpLnByb3AoImlkIiwicHJvbW9wb3B1cC1mb3JtIik7JC5leHRlbmQoITAsZSxwKCJmb3JtU3VibWlzc2lvbiIse2Zvcm1UeXBlOiJTcGVjaWFscyIsZGlzcGxheVR5cGU6Im1vZGFsIn0se2VtYWlsSGFuZGxlcjp7X19sZWFkaWQ6IlNwZWNpYWxzIixjb25zZW50VHlwZToiIn0sdGFyZ2V0OiQoIiNwcm9tb3BvcHVwIGZvcm0uZDJjZm9ybSIpLG1haWxJZDoiUHJvbW9Qb3B1cCJ9KSk7YnJlYWs7Y2FzZSAiZmlsdGVyU2VhcmNoIjokLmV4dGVuZCghMCxlLHIobSkpO0Q9ITA7c2V0VGltZW91dCgoKT0+e0Q9ITF9LDNFMyk7YnJlYWs7Y2FzZSAidHlwZWRTZWFyY2giOmQ9aC5ldmVudC50eXBlZFNlYXJjaD9oLmV2ZW50LnR5cGVkU2VhcmNoOnUudmFsKCk7JC5leHRlbmQoITAsZSx7dHlwZWRTZWFyY2hDb250ZW50OmQudHJpbSgpLnNwbGl0KCIgIikuam9pbigifCIpfSk7YnJlYWs7Y2FzZSAiY2Fyb3VzZWxDbGljayI6JC5leHRlbmQoITAsCmUse2Nhcm91c2VsQ2xpY2s6e2Fzc2V0UG9zaXRpb246dS5pbmRleCgpLGFzc2V0TmFtZTphKHUpfX0pO2JyZWFrO2Nhc2UgImJyb2NodXJlRG93bmxvYWQiOiQuZXh0ZW5kKCEwLGUse2Jyb2NodXJlTmFtZTokKCIjcG9wdXBUZWNoU3BlY3NEaXYgI3ByaW50UGFnZSIpLmF0dHIoImhyZWYiKX0pO2JyZWFrO2Nhc2UgInNlcnZpY2VPZmZlckNsaWNrIjpjYXNlICJvZmZlckNsaWNrIjplW2NdPWsoYyx1KTticmVhaztkZWZhdWx0OiQuZXh0ZW5kKCEwLGUsaC5ldmVudCl9MDw9WyJmb3JtU3VibWlzc2lvbiJdLmluZGV4T2YoYykmJihDPSEwLHNldFRpbWVvdXQoKCk9PntDPSExfSw1RTMpKTtyZXR1cm4gZX19O3JldHVybiBnfTsoZnVuY3Rpb24oKXtjb25zb2xlLmRlYnVnKCJTRCA6OiBVc2VyIGhhcyBjb25zZW50ZWQgdG8gdHJhY2tpbmcsIGluaXRpYWxpemluZyBzaGlmdCBkaWdpdGFsIik7SSgpO2xldCBiPSQoIiNkaWdpdGFsX2RhdGFfaW5mbyBpbnB1dFtuYW1lPXN0YXR1c10iKTsKaWYoInskU0RWRUhJQ0xFU1RBVFVTfSI9PWIudmFsKCkpe3ZhciBmPXdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZS50b0xvd2VyQ2FzZSgpO2IudmFsKC91c2VkLy50ZXN0KGYpfHwvb2NjYXNpb24vLnRlc3QoZik\/IlVzZWQiOiJOZXciKTsiVXNlZCI9PWIudmFsKCkmJjA8JCgiI3RvcGNhcmlkIikubGVuZ3RoJiYiIiE9JCgiI3RvcGNhcmlkIikudmFsKCk\/KGY9Ii9qcy9qc29uLyIrJCgiI3RvcGNhcmlkIikudmFsKCkrIi5qc29uIiwkLmdldChmKS5kb25lKGZ1bmN0aW9uKHApe3A9cC5tYWtlY2VydCsiIjsiMjEiIT1wJiYiMCIhPXAmJmIudmFsKCJDUE8iKTt6KCl9KS5mYWlsKGZ1bmN0aW9uKCl7eigpfSkpOnooKX1lbHNlIHooKX0pKCl9OwovKiogL2pzL2QyY19kaWdpdGFsX3JldGFpbF9zaGlmdC5qcyAqKi8KdmFyIF9fX2QyY19kMmNkaWdpdGFscmV0YWlsc2hpZnRqc19jX29uPSIyMDI2LTAzLTA2IDEzOjMwOjAzIjsndXNlIHN0cmljdCc7ZnVuY3Rpb24gRDJEUihuLHAscSl7Y29uc29sZS5sb2coIkQyRFIgU3RhcnRpbmcgUm91bmQgMi4uLiIsbixwLHEpO3ZhciBjPXRoaXM7Yy5saWJyYXJ5PSQuZXh0ZW5kKCEwLG4se2xvYWRlZDohMX0pO2MucGFnZURhdGE9cDtjLnNldHRpbmdzPXE7Yy5kckluaXRpYWxDbGljaz0hMTt2YXIgbD1jLmxhc3REclRhYj0hMSxoPXt9LHQ9WyJWZWhpY2xlIERldGFpbHMiLCJNb2RlbCBTaG93cm9vbSJdLGQ9e3BhZ2VUeXBlOiJEaWdpdGFsIFJldGFpbGluZyIsZGlnUmV0OntwcmljZVVubG9ja2VkOiEwLGRlYWxJZDoiIixwcm92aWRlcjoiRDJDTUVESUEiLHZlaGljbGVZZWFyOiQoIiNkaWdpdGFsX2RhdGFfaW5mbyA+IGlucHV0W25hbWU9J3llYXInXSIpLnZhbCgpLHZlaGljbGVNYWtlOiQoIiNkaWdpdGFsX2RhdGFfaW5mbyA+IGlucHV0W25hbWU9J21ha2UnXSIpLnZhbCgpLHZlaGljbGVNb2RlbDokKCIjZGlnaXRhbF9kYXRhX2luZm8gPiBpbnB1dFtuYW1lPSdtb2RlbCddIikudmFsKCksCnZlaGljbGVWaW46JCgiI2RpZ2l0YWxfZGF0YV9pbmZvID4gaW5wdXRbbmFtZT0ndmluJ10iKS52YWwoKSx2ZWhpY2xlU3RhdHVzOiQoIiNkaWdpdGFsX2RhdGFfaW5mbyA+IGlucHV0W25hbWU9J3N0YXR1cyddIikudmFsKCl9LGV2ZW50czoiIn0sdT17ZHJUcmFkZUluU3RhcnQ6IiN0cmFkZUluQmFyLCAjVHJhZGVJbkJhclBvcHVwQ29udGFpbmVyIHNlbGVjdCwgI1RyYWRlSW5CYXJQb3B1cENvbnRhaW5lciBpbnB1dCIsZHJBcHB0U2NoZWRTdGFydDoiI2xlYWREZWFsZXJBcHBvaW50bWVudCBpbnB1dCwgI2xlYWREZWFsZXJBcHBvaW50bWVudCAuZmxhdHBpY2tyLWRheSIsZHJMZWFkRm9ybVN0YXJ0OiIjbXVsdGlmb3JtX2VtYmVkZGVkX2J0bl8xIiwiZHJQcmVRU2hvd24gIjoiI0ZpbmFuY2VBY3Rpb25Cb3hfcG9wdXAiLGRyUHJlUVN0YXJ0OiIjbW9udGhseVBheW1lbnRzUG9wdXBDb250YWluZXIgaW5wdXQsICNmaW5hbmNlTXVsdGlzdGVwSW5zdGFudFBvcHVwQ29udGFpbmVyIGlucHV0In0sCnY9e2RyQWRkVG9DYXJ0OiIjYnVpbGRPcHRpb25zQ29udGVudCAuc2VsZWN0b3JJbnB1dCwgLnByb3RlY3Rpb25wbGFuLWFjdGlvbiA+IGJ1dHRvbiwgLmFjYy1jYXJkIC5hY2MtYWN0aW9uID4gYnV0dG9uLCAuYnVpbGRPcHRpb24gLnNlbGVjdG9ySW5wdXQiLGRyQWNjZXNzb3JpZXNTaG93bjonLnZlaGljbGVDb25maWd1cmF0b3JEUiBidXR0b25bZGF0YS1zdGVwPSJvcHRpb25zIl0sIC52ZWhpY2xlQ29uZmlndXJhdG9yRFIgYnV0dG9uW2RhdGEtc3RlcD0iYWNjZXNzb3JpZXMiXScsZHJUcmFkZUluU2hvd246IiN0cmFkZUluQmFyTmV3VkRQQnV0dG9uLCAjdHJhZGVJbkJ0biIsZHJGaVNob3duOicudmVoaWNsZUNvbmZpZ3VyYXRvckRSIGJ1dHRvbltkYXRhLXN0ZXA9InByb3RlY3Rpb25wbGFuIl0nLGRyT2ZmZXJBZGRlZDoiI3BheW1lbnRDYWxjdWxhdG9yQ2FsbFRvQWN0aW9uQ29udGFpbmVyIGEucHJvbW9CVE4iLGQyY19kckFkZEZpbmlzaDoiI2J1aWxkQW5kUHJpY2VEUlRhYiA+IGJ1dHRvbiIsCmRyUHJlUVNob3duOiIjTW9udGhseVBheW1lbnRzQnRuIn0sdz17ZHJQYXltZW50Q2FsY1Nob3duOiJjcmVkaXQubXVsdGlzdGVwcG9wdXAuc3RhcnQiLGRyQXBwdFNjaGVkU2hvd246ImRlYWxlckFwcG9pbnRtZW50LnN0YXJ0In0scj17ZHJUcmFkZUluU2hvd246IiN0cmFkZUluQmFyIixkckFjY2Vzc29yaWVzU2hvd246IiNidWlsZE9wdGlvbnNDb250ZW50IixkckxlYWRGb3JtU2hvd246IiNtdWx0aWZvcm1fZW1iZWRkZWQifTtzZWxmLmJpbmRFdmVudHM9ZnVuY3Rpb24oKXskLmVhY2godSxmdW5jdGlvbihhLGIpe2NvbnNvbGUubG9nKCJEMkRSIFNpbmdsZSBNYXAgU3RhcnQiLGEsYik7JChkb2N1bWVudCkub24oImNsaWNrIixiLGZ1bmN0aW9uKCl7aWYoITA9PT1oW2FdKXJldHVybiEwO2xldCBlPXNlbGYuYnVpbGREYXRhTGF5ZXIoYSwkKHRoaXMpKTtzZWxmLnNlbmQoZSwkKGIpKTtoW2FdPSEwfSl9KTskLmVhY2godixmdW5jdGlvbihhLGIpe2NvbnNvbGUubG9nKCJEMkRSIE11bHRpcGxlIE1hcCBTdGFydCIsCmEsYik7JChkb2N1bWVudCkub24oImNsaWNrIixiLGZ1bmN0aW9uKCl7aWYoITA9PT1sKXJldHVybiEwO2xldCBlPXNlbGYuYnVpbGREYXRhTGF5ZXIoYSwkKHRoaXMpKTtzZWxmLnNlbmQoZSwkKGIpKTtzZWxmLmV2ZW50TG9ja2VyKDUwMCl9KX0pOyQuZWFjaCh3LGZ1bmN0aW9uKGEsYil7JChkb2N1bWVudCkub24oYixmdW5jdGlvbigpe2lmKHNlbGYuZXZlbnRMb2dnZXIoYSkpcmV0dXJuITA7bGV0IGU9c2VsZi5idWlsZERhdGFMYXllcihhLCExKTtzZWxmLnNlbmQoZSwhMSl9KX0pO2NvbnNvbGUubG9nKCJEMkRSIFZpc2libGUgTWFwIFN0YXJ0IixyKTskLmVhY2gocixmdW5jdGlvbihhLGIpe2NvbnN0IGU9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcihiKTtpZighZSlyZXR1cm4hMDskKGRvY3VtZW50KS5vbigic2Nyb2xsIHJlc2l6ZSBsb2FkIiwkKGIpLGZ1bmN0aW9uKCl7aWYoc2VsZi5ldmVudExvZ2dlcihhKSlyZXR1cm4hMDt2YXIgZj1lLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOwowPD1mLnRvcCYmMDw9Zi5sZWZ0JiZmLmJvdHRvbTw9KHdpbmRvdy5pbm5lckhlaWdodHx8ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodCkmJmYucmlnaHQ8PSh3aW5kb3cuaW5uZXJXaWR0aHx8ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoKSYmKGY9c2VsZi5idWlsZERhdGFMYXllcihhLCExKSxzZWxmLnNlbmQoZiwhMSkpfSl9KTskKGRvY3VtZW50KS5vbigiZW1haWxIYW5kbGVyLmVtYWlsU2VudCIsZnVuY3Rpb24oYSxiKXthPXNlbGYuYnVpbGRFbWFpbERhdGFMYXllcihiKTshMT09PSFhJiZzZWxmLnNlbmQoYSwhMSl9KX07c2VsZi5zZXREZWFsSWQ9ZnVuY3Rpb24oYT0hMSl7bGV0IGI9bG9jYWxTdG9yYWdlLmdldEl0ZW0oImQyZHJfZGVhbElkIik7YiYmIWE\/ZC5kaWdSZXQuZGVhbElkPWI6KGE9TWF0aC5mbG9vcigxRTExKzlFMTEqTWF0aC5yYW5kb20oKSkudG9TdHJpbmcoKSxsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgiZDJkcl9kZWFsSWQiLAphKSxkLmRpZ1JldC5kZWFsSWQ9YSl9O3NlbGYuZXZlbnRMb2NrZXI9ZnVuY3Rpb24oYSl7bD0hMDtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7bD0hMX0sYSl9O3NlbGYuZXZlbnRMb2dnZXI9ZnVuY3Rpb24oYSl7aWYoaFthXSlyZXR1cm4hMDtoW2FdPSEwO3JldHVybiExfTtzZWxmLmJ1aWxkRGF0YUxheWVyPWZ1bmN0aW9uKGEsYil7ImRyQWNjZXNzb3JpZXNTaG93biI9PWF8fCJkckZpU2hvd24iPT1hP2MubGFzdERyVGFiPSJkckFjY2Vzc29yaWVzU2hvd24iPT1hPyJkckFjY2Vzc29yaWVzRmluaXNoIjoiZHJGaUZpbmlzaCI6ImQyY19kckFkZEZpbmlzaCI9PWEmJighMSE9PWMubGFzdERyVGFiJiYoYT1jLmxhc3REclRhYiksYy5sYXN0RHJUYWI9ITEpO2QuZXZlbnRzPWE7c3dpdGNoKGEpe2Nhc2UgImRySW5pdGlhbENsaWNrIjpiJiYoZC5kaWdSZXQuY2xpY2tUZXh0PWIudGV4dCgpLnRyaW0oKSk7YnJlYWs7Y2FzZSAiZHJJbXByZXNzaW9uIjpiJiYoZC5kaWdSZXQuaW1wcmVzc2lvblRleHQ9CmIudGV4dCgpLnRyaW0oKSk7YnJlYWs7Y2FzZSAiZHJBY2Nlc3Nvcmllc1Nob3duIjpjYXNlICJkckFkZFRvQ2FydCI6Y2FzZSAiZHJBY2Nlc3Nvcmllc0ZpbmlzaCI6Y2FzZSAiZHJQYXltZW50Q2FsY1Nob3duIjpjYXNlICJkclBheW1lbnRDYWxjSW50ZXJhY3Rpb24iOmNhc2UgImRyUGF5bWVudENhbGNGaW5pc2giOmNhc2UgImRyQXBwdFNjaGVkU2hvd24iOmNhc2UgImRyQXBwdFNjaGVkU3RhcnQiOmNhc2UgImRyQXBwdFNjaGVkRmluaXNoIjpjYXNlICJkclByZVFTaG93biI6Y2FzZSAiZHJQcmVRU3RhcnQiOmNhc2UgImRyUHJlUUZpbmlzaCI6Y2FzZSAiZHJDcmVkaXRBcHBTaG93biI6Y2FzZSAiZHJDcmVkaXRBcHBTdGFydCI6Y2FzZSAiZHJDcmVkaXRBcHBGaW5pc2giOmQuZGlnUmV0LmRlYWxUeXBlPSJGaW5hbmNlIjticmVhaztjYXNlICJkck9mZmVyQWRkZWQiOmQuZGlnUmV0LmRlYWxUeXBlPSJGaW5hbmNlIixkLmRpZ1JldC5vZmZlck5hbWU9IlNlbmQgTWUgWW91ciBPZmZlciIsCmQuZGlnUmV0Lm9mZmVyVHlwZT0iRmluYW5jZSJ9cmV0dXJuIGR9O3NlbGYuYnVpbGRFbWFpbERhdGFMYXllcj1mdW5jdGlvbihhKXtsZXQgYj1kO2IuZGlnUmV0LnZlaGljbGVZZWFyPWEueWVhcjtiLmRpZ1JldC52ZWhpY2xlTWFrZT1hLm1ha2U7Yi5kaWdSZXQudmVoaWNsZU1vZGVsPWEubW9kZWw7Yi5kaWdSZXQudmVoaWNsZVZpbj1hLnZpbjtiLmRpZ1JldC52ZWhpY2xlU3RhdHVzPWEuY29uZGl0aW9uO3N3aXRjaChhLm1haWxJRCl7Y2FzZSAiUHJpY2VWZWhpY2xlIjpjYXNlICJQcmljZVZlaGljbGVBY2N1dHJhZGUiOmNhc2UgIlByaWNlVmVoaWNsZU5ldyI6Y2FzZSAiVHJhZGUtaW4iOmNhc2UgIlRyYWRlLWluIHJlcXVlc3QiOmNhc2UgInByaWNldmVoaWNsZW5ldyI6Y2FzZSAicHJpY2V2ZWhpY2xldXNlZCI6Y2FzZSAicHJpY2V2ZWhpY2xlIjpiLmV2ZW50cz0iZHJUcmFkZUluRmluaXNoIjticmVhaztjYXNlICJNb250aGx5UGF5bWVudHMiOmNhc2UgIk1vbnRobHlQYXltZW50c19ORVciOmIuZXZlbnRzPQoiZHJQcmVRRmluaXNoIjticmVhaztjYXNlICJEZWFsZXJBcHBvaW50bWVudCI6Yi5ldmVudHM9ImRyQXBwdFNjaGVkRmluaXNoIjticmVhaztjYXNlICJDcmVkaXRCb29zdE11bHRpIjpjYXNlICJDcmVkaXRNdWx0aXN0ZXBSZXF1ZXN0SW5zdGFudCI6Yi5ldmVudHM9ImRyUHJlUUZpbmlzaCI7YnJlYWs7Y2FzZSAiQ3JlZGl0TXVsdGlzdGVwUmVxdWVzdCI6Yi5ldmVudHM9ImRyUGF5bWVudENhbGNGaW5pc2giO2JyZWFrO2Nhc2UgIkNyZWRpdFJlcXVlc3RfU2hvcnQiOmNhc2UgIkNyZWRpdFNjb3JlIjpiLmV2ZW50cz0iZHJDcmVkaXRBcHBGaW5pc2giO2JyZWFrO2Nhc2UgIlJlcXVlc3QgZm9yIGJlc3Qgb2ZmZXIgLSBTTVMiOmNhc2UgIk11bHRpRm9ybV9TTVMiOmIuZXZlbnRzPSJkckxlYWRGb3JtRmluaXNoIjticmVhaztjYXNlICJTYXZlQnVpbGQiOmIuZXZlbnRzPSJkckRyb3BTYXZlIjtiLmRpZ1JldC5kZWFsVHlwZT0iRmluYW5jZSI7YnJlYWs7ZGVmYXVsdDpiPSExfXJldHVybiBifTsKc2VsZi50cmlnZ2VyRm9sbG93dXBFdmVudD1mdW5jdGlvbihhLGIpe307c2VsZi5wYWdlVmlldz1mdW5jdGlvbigpe2QuZXZlbnRzPSJwYWdldmlldyI7c2VsZi5zZW5kKGQsITEpfTtzZWxmLmltcHJlc3Npb249ZnVuY3Rpb24oYSl7ZC5ldmVudHM9ImRySW1wcmVzc2lvbiI7c2VsZi5zZW5kKGQsITEpfTtzZWxmLnNlbmQ9ZnVuY3Rpb24oYSxiKXtsZXQgZT1hLmV2ZW50cztjb25zb2xlLmxvZygiRDJEUiAtIFNlbmRpbmcgdG8gZGF0YUxheWVyIixhLGEuZXZlbnRzKTshMT09PWMuZHJJbml0aWFsQ2xpY2smJiJkckltcHJlc3Npb24iIT09ZSYmInBhZ2V2aWV3IiE9PWUmJihjLmRySW5pdGlhbENsaWNrPSEwLGI9c2VsZi5idWlsZERhdGFMYXllcigiZHJJbml0aWFsQ2xpY2siLGIpLHNkKCJkYXRhTGF5ZXIiLGIpLHNkKCJzZW5kIikpO3NkKCJkYXRhTGF5ZXIiLGEpO3NkKCJzZW5kIik7c2VsZi5zZXREZWFsSWQoITApO3NlbGYudHJpZ2dlckZvbGxvd3VwRXZlbnQoZSxhKX07c2VsZi5pbmplY3RTRD0KZnVuY3Rpb24oKXtjLmxpYnJhcnkubG9hZGVkfHwoZnVuY3Rpb24oYSxiLGUsZixnLGssbSl7YS5TaGlmdEFuYWx5dGljc09iamVjdD1nO2FbZ109YVtnXXx8ZnVuY3Rpb24oKXsoYVtnXS5xPWFbZ10ucXx8W10pLnB1c2goYXJndW1lbnRzKX07YVtnXS5sPTEqbmV3IERhdGU7az1iLmNyZWF0ZUVsZW1lbnQoZSk7bT1iLmdldEVsZW1lbnRzQnlUYWdOYW1lKGUpWzBdO2suYXN5bmM9MTtrLnNyYz1mO20ucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoayxtKX0od2luZG93LGRvY3VtZW50LCJzY3JpcHQiLGMubGlicmFyeS5saWJyYXJ5SlMsInNkIiksc2QoImNyZWF0ZSIsYy5saWJyYXJ5LmNsaWVudElELGMubGlicmFyeS5yZXRhaWxlcklELGMubGlicmFyeS5wcm92aWRlcklEKSxjLmxpYnJhcnkubG9hZGVkPSEwKX07c2V0VGltZW91dChmdW5jdGlvbigpe2NvbnN0IGE9ZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInNjcmlwdCIpO2ZvcihsZXQgYj0wO2I8YS5sZW5ndGg7YisrKWFbYl0uc3JjLmluY2x1ZGVzKCJzaGlmdGRpZ2l0YWxhcHBzLmlvIikmJgooYy5saWJyYXJ5LmxvYWRlZD0hMCk7dC5pbmNsdWRlcyhjLnBhZ2VEYXRhLnBhZ2VUeXBlKSYmITA9PT1jLnBhZ2VEYXRhLkdFTkVSQUxfRU5BQkxFX1RSQU5TQUNUSU9OX0JVSUxERVImJihzZWxmLmluamVjdFNEKCksc2VsZi5zZXREZWFsSWQoITApLHNlbGYuYmluZEV2ZW50cygpLHNldFRpbWVvdXQoZnVuY3Rpb24oKXtzZWxmLnBhZ2VWaWV3KCl9LDUwMCksc2V0VGltZW91dChmdW5jdGlvbigpe3NlbGYuaW1wcmVzc2lvbigpfSw2MDApLHNldFRpbWVvdXQoZnVuY3Rpb24oKXskKGRvY3VtZW50KS50cmlnZ2VyKCJzY3JvbGwiKX0sNzUwKSl9LDEyNTApfTsKLyoqIC9qcy9kMmNfYXNjX2dhNC5qcyAqKi8KdmFyIF9fX2QyY19kMmNhc2NnYTRqc19jX29uPSIyMDI2LTAyLTAzIDE2OjMwOjAzIjsndXNlIHN0cmljdCc7dmFyIGFzY1RvcENhckRldGFpbHM9ITEsYXNjTGFzdFNlYXJjaEZpbHRlclNvcnQ9ITEsYXNjTGFzdEZpbHRlckNsaWNrPSExLGFzY0xhc3RDdGFDbGljaz0hMTtmdW5jdGlvbiBkMmFzY1B1YmxpY2F0aW9uRGF0ZShkKXtpZigiIj09ZClyZXR1cm4iIjt2YXIgaD1uZXcgRGF0ZShkKTtkPSIiKyhoLmdldE1vbnRoKCkrMSk7dmFyIGs9IiIraC5nZXREYXRlKCk7aD1oLmdldEZ1bGxZZWFyKCk7MTA+cGFyc2VGbG9hdChkKSYmKGQ9IjAiK2QpOzEwPnBhcnNlRmxvYXQoaykmJihrPSIwIitrKTtyZXR1cm5bZCxrLGhdLmpvaW4oIi8iKX1mdW5jdGlvbiBlbnN1cmVUcnV0aHkoZCl7cmV0dXJuIGQ\/ZDoiIn0KZnVuY3Rpb24gYXNjVXBkYXRlVG9wQ2FyRGF0YShkKXtpZighMSE9PWQpe2xldCBoPWQyYXNjUHVibGljYXRpb25EYXRlKGVuc3VyZVRydXRoeShkLmRhdGVfbGlzdGluZykpLGs9ZC5tYWtlY2VydCsiIjthc2NUb3BDYXJEZXRhaWxzPXtpdGVtX2lkOmVuc3VyZVRydXRoeShkLk5JViksaXRlbV9udW1iZXI6ZW5zdXJlVHJ1dGh5KGQuaWQpLGl0ZW1fcHJpY2U6ZW5zdXJlVHJ1dGh5KGQucHJpY2UpLGl0ZW1fY29uZGl0aW9uOmVuc3VyZVRydXRoeShkLnZjYXRlZ29yeSkudG9Mb3dlckNhc2UoKSxpdGVtX3llYXI6ZW5zdXJlVHJ1dGh5KGQueWVhcikudG9Mb3dlckNhc2UoKSxpdGVtX21ha2U6ZW5zdXJlVHJ1dGh5KGQubWFrZSkudG9Mb3dlckNhc2UoKSxpdGVtX21vZGVsOmVuc3VyZVRydXRoeShkLm1vZGVsKS50b0xvd2VyQ2FzZSgpLGl0ZW1fdmFyaWFudDplbnN1cmVUcnV0aHkoZC52ZXJzaW9uKS50b0xvd2VyQ2FzZSgpLGl0ZW1fY29sb3I6ZW5zdXJlVHJ1dGh5KGQuY29sb3IpLnRvTG93ZXJDYXNlKCksCml0ZW1fdHlwZTplbnN1cmVUcnV0aHkoZC5ib2R5VHlwZUlEKS50b0xvd2VyQ2FzZSgpLGl0ZW1fY2F0ZWdvcnk6ZW5zdXJlVHJ1dGh5KCIiKSxpdGVtX2Z1ZWxfdHlwZTplbnN1cmVUcnV0aHkoZC52Y2FyYnVyYW50KS50b0xvd2VyQ2FzZSgpLGl0ZW1faW52ZW50b3J5X2RhdGU6ZW5zdXJlVHJ1dGh5KGgpfTsiMjEiIT1rJiYiMCIhPWsmJmQyYXNjLnNldFZlaGljbGVTdGF0dXMoIkNQTyIpfWVsc2UgZD0kKCIjYXNjX2RpZ2l0YWxfZGF0YV9pbmZvIiksYXNjVG9wQ2FyRGV0YWlscz17aXRlbV9jb25kaXRpb246Im5ldyIsaXRlbV95ZWFyOiQoImlucHV0W25hbWU9J3llYXInXSIsZCkudmFsKCksaXRlbV9tYWtlOiQoImlucHV0W25hbWU9J21ha2UnXSIsZCkudmFsKCksaXRlbV9tb2RlbDokKCJpbnB1dFtuYW1lPSdtb2RlbCddIixkKS52YWwoKSxpdGVtX3R5cGU6JCgiaW5wdXRbbmFtZT0ndmVoaWNsZUNhdGVnb3J5J10iLGQpLnZhbCgpfTtjb25zb2xlLmxvZygiR0E0IGFzY1RvcENhckRldGFpbHMiLAphc2NUb3BDYXJEZXRhaWxzKX0KZnVuY3Rpb24gZDJhc2NSZXNvbHZlUGFnZUlkKGQpe2Q9ZC5yZXBsYWNlKC88XC8\/W14+XSsoPnwkKS9nLCIiKTtpZihkLmluY2x1ZGVzKCJzaTp2bHMiKSlyZXR1cm4ic2VhcmNoIGludmVudG9yeSI7aWYoZC5pbmNsdWRlcygiOnNpOnZlaGljbGUgZGV0YWlscyIpfHxkLmluY2x1ZGVzKCJ2ZWhpY2xlIikpcmV0dXJuInZkcCI7aWYoZC5pbmNsdWRlcygiY3VzdG9tOiIpKXJldHVybiJibG9nIjtpZihkLmluY2x1ZGVzKCJmaW5hbmNlIikpcmV0dXJuImNyZWRpdCI7aWYoZC5pbmNsdWRlcygic2VydmljZTpyZXF1ZXN0IGFwcG9pbnRtZW50IikpcmV0dXJuInJlcXVlc3QgYXBwb2ludG1lbnQiO2lmKGQuaW5jbHVkZXMoInNlcnZpY2U6b3JkZXIgcGFydHMiKSlyZXR1cm4ib3JkZXIgcGFydHMiO2lmKGQuaW5jbHVkZXMoImFib3V0IHVzOmNvbnRhY3QgdXMiKSlyZXR1cm4iY29udGFjdCB1cyI7aWYoZC5pbmNsdWRlcygiVU5LTk9XTiIpKXtpZigvYnVpbGQtYW5kLXByaWNlLy50ZXN0KHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSl8fC9jb25maWd1cmF0aW9uLWV0LXByaXgvLnRlc3Qod2luZG93LmxvY2F0aW9uLnBhdGhuYW1lKSlyZXR1cm4iYnVpbGQgYW5kIHByaWNlIjsKaWYoL3ByaWNlLW5ldy8udGVzdCh3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUpfHwvcHJpeC1uZXVmLy50ZXN0KHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSkpcmV0dXJuInByaWNlIHJlcXVlc3QiO2lmKC9icm9jaHVyZXMvLnRlc3Qod2luZG93LmxvY2F0aW9uLnBhdGhuYW1lKSlyZXR1cm4iYnJvY2h1cmUiO2lmKC9hdXRvLWpvYnMvLnRlc3Qod2luZG93LmxvY2F0aW9uLnBhdGhuYW1lKXx8L2VtcGxvaXMtYXV0b21vYmlsZS8udGVzdCh3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUpKXJldHVybiJqb2JzIjtpZigvb3VydGVhbS8udGVzdCh3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUpfHwvZXF1aXBlLy50ZXN0KHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSkpcmV0dXJuIm91ciB0ZWFtIn1yZXR1cm4gZH0KZnVuY3Rpb24gZDJhc2NSZXNvbHZlTGVhZFR5cGUoZCxoKXtoPWgudG9Mb3dlckNhc2UoKTtsZXQgaz17fTtmb3IodmFyIGwgaW4gZClrW2wudG9Mb3dlckNhc2UoKV09ZFtsXTtsPSQoImh0bWwiKS5hdHRyKCJsYW5nIik7ZD0iIjtsPSJlbiI9PWwudG9Mb3dlckNhc2UoKXx8ImVuZyI9PWwudG9Mb3dlckNhc2UoKT8iRU5HTElTSCI6IkZSRU5DSCI7dm9pZCAwIT09a1toXSYmdm9pZCAwIT09a1toXVtsXSYmKGQ9a1toXVtsXSk7cmV0dXJuIGR9CmZ1bmN0aW9uIEQyQVNDKGQpe2QucGFnZUlkT3JnPWQucGFnZUlkO2QucGFnZUlkPWQyYXNjUmVzb2x2ZVBhZ2VJZChkLnBhZ2VJZCk7ZC5kZWFsZXJfbmFtZT0kKCIjaGlkZGVuRGVhbGVyTmFtZSIpLnZhbCgpO3ZhciBoPXtzdG9yZV9uYW1lOmQuZGVhbGVyX25hbWUudG9Mb3dlckNhc2UoKSxvZW1fY29kZTpkLnBhQ29kZSxvZW1fYnJhbmQ6ZC5jbGllbnQsYWZmaWxpYXRpb246IiIsbGFuZ3VhZ2U6ZC51c2VyTGFuZ3VhZ2UsY3VycmVuY3k6ImNhZCIscGFnZV90eXBlOmQucGFnZUlkLGl0ZW1zOltdLGV2ZW50czpbXSxtZWFzdXJlbWVudF9pZHM6WyJHLTZHRVoyV1dUM0wiXSxwbGF0Zm9ybV9jdXN0b206IiJ9LGs9e2FzY19jbGlja190b19jYWxsOlsiYS5waG9uZS1saW5rIiwiYS5waG9uZS1hY3Rpb24iXSxhc2NfY3RhX2ludGVyYWN0aW9uOiIudi1jYXJkIGE6bm90KC5waG9uZS1saW5rKTsubGVmdF9ib3ggYTsjZm9vdGVyIGE7I3NjcmF0Y2hhbmRzYXZlX2VtYmVkZGVkX2J0bl8xOyNQdWxsb3V0X0J1aWxkLWFuZC1QcmljZTsjbmV3VmRwRnVsbHdpZHRoVmlkZW9JZnJhbWUiLnNwbGl0KCI7IiksCmFzY19jdGFfaW50ZXJhY3Rpb246IiNwcm9tb0Rpc2NvdmVyQnV0dG9uIC5kaXZDYXJQYXltZW50Q2FsY3VsYXRvciAjc2NyYXRjaGFuZHNhdmVfZW1iZWRkZWQgLmxvYW5DYWxjdWxhdG9yVHJpZ2dlciAub2ZmZXItYnRuIC5jdFByb21vIC50cmFkZUluQmFyX2J0biIuc3BsaXQoIiAiKSxhc2NfY3RhX2ludGVyYWN0aW9uOlsiLm5ld1ZkcEFjdGlvbnMgYSIsIi5jdGEtdHBsIGEiXSxhc2NfZm9ybV9lbmdhZ2VtZW50OlsiaW5wdXQiLCJzZWxlY3QiLCJ0ZXh0YXJlYSJdLGFzY19tZWRpYV9pbnRlcmFjdGlvbjpbIiNuZXdWZHBGdWxsd2lkdGhWaWRlb0lmcmFtZSIsImltZyJdLGFzY19tZW51X2ludGVyYWN0aW9uOlsiLnVwX21lbnUgYSJdLGFzY19lbGVtZW50X2NvbmZpZ3VyYXRpb246WyIubGFuZ3VhZ2VCYXIgYSJdfSxsPSExO2NvbnNvbGUubG9nKCJEMkFTQyBMb2FkaW5nLi4uIixkKTt2YXIgZz1uZXcgZnVuY3Rpb24oKXt2YXIgZT10aGlzO2Uuc2V0VmVoaWNsZVN0YXR1cz1mdW5jdGlvbihiKXtsZXQgYT0KJCgiI2FzY19kaWdpdGFsX2RhdGFfaW5mbyBpbnB1dFtuYW1lPXZlaGljbGVTdGF0dXNdIik7aWYoIiIhPSQoIiNhc2NfZGlnaXRhbF9kYXRhX2luZm8gaW5wdXRbbmFtZT0nbWFrZSddIikudmFsKCkpe2xldCBjPXdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZS50b0xvd2VyQ2FzZSgpO2EudmFsKC91c2VkLy50ZXN0KGMpfHwvb2NjYXNpb24vLnRlc3QoYyk\/IlVzZWQiOiJOZXciKX0hMSE9PWImJmEudmFsKGIpfTtlLnNldERpZ2l0YWxEYXRhPWZ1bmN0aW9uKGIsYSl7bGV0IGM9ZS5hZGRFdmVudChiLGEpO2lmKCExPT09YylyZXR1cm4hMTt2b2lkIDAhPT1jLmZvcm1fbmFtZSYmKGMuZm9ybV9uYW1lPWMuZm9ybV9uYW1lLnJlcGxhY2UoIm1lbnN1YWxpdD9zIiwibWVuc3VhbGl0ZXMiKSxjLmZvcm1fbmFtZT1jLmZvcm1fbmFtZS5yZXBsYWNlKCJ2P2hpY3VsZSIsInZlaGljdWxlIiksYy5mb3JtX25hbWU9Yy5mb3JtX25hbWUucmVwbGFjZSgiP3RhcGVzIiwiZXRhcGVzIiksYy5mb3JtX25hbWU9CiJEMkMgIitjLmZvcm1fbmFtZSk7dm9pZCAwIT09Yy5mb3JtX2xhbmcmJihjLmZvcm1fbGFuZz1lLnN0YW5kYXJkaXplRm9ybUxhbmcoYy5mb3JtX2xhbmcpKTtoLmV2ZW50cy51bnNoaWZ0KEpTT04uc3RyaW5naWZ5KHtuYW1lOmIscGFyYW1zOmN9KSk7InZkcCI9PWMucGFnZV90eXBlJiYoYy5wYWdlX3R5cGU9Iml0ZW0iKTsic2hvd3Jvb20iPT1jLnBhZ2VfdHlwZSYmKGMucGFnZV90eXBlPSJpdGVtIik7InNlYXJjaCBpbnZlbnRvcnkiPT1jLnBhZ2VfdHlwZSYmKGMucGFnZV90eXBlPSJpdGVtbGlzdCIpO2xldCBmPWUuZ2V0RXZlbnRUeXBlKGIpO2UucmVwb3J0KGYsYixjLGgpOyJhc2NfZm9ybV9zdWJtaXNzaW9uIj09YiYmKGUuc2V0RGlnaXRhbERhdGEoImFzY19mb3JtX3N1Ym1pc3Npb25fc2FsZXMiLGEpLGUuc2V0RGlnaXRhbERhdGEoIkQyQ19Gb3JtX3N1Ym1pc3Npb25fc2FsZXMiLGEpLGUuc2V0RGlnaXRhbERhdGEoIkQyQ19MZWFkcyIsYSksc2V0VGltZW91dChmdW5jdGlvbigpe2FzY0xhc3RDdGFDbGljaz0KITF9LDEyNTApKTsiYXNjX2NvbW1fc3VibWlzc2lvbiI9PWImJmUuc2V0RGlnaXRhbERhdGEoImFzY19jb21tX3N1Ym1pc3Npb25fc2FsZXMiLGEpfTtlLmdldEV2ZW50VHlwZT1mdW5jdGlvbihiKXtsZXQgYT0iZW5nYWdlbWVudCI7c3dpdGNoKGIpe2Nhc2UgImFzY19mb3JtX3N1Ym1pc3Npb24iOmNhc2UgImFzY19mb3JtX3N1Ym1pc3Npb25fcGFydHMiOmNhc2UgImFzY19mb3JtX3N1Ym1pc3Npb25fc2FsZXNfYXBwdCI6Y2FzZSAiYXNjX2Zvcm1fc3VibWlzc2lvbl9zYWxlcyI6Y2FzZSAiYXNjX2Zvcm1fc3VibWlzc2lvbl9zZXJ2aWNlIjphPSJjb252ZXJzaW9uIn1yZXR1cm4gYX07ZS5iaW5kRWxlbWVudHM9ZnVuY3Rpb24oYixhKXskLmVhY2goYSxmdW5jdGlvbihjLGYpeyQoZikuZWFjaChmdW5jdGlvbigpe2NvbnN0IG09JCh0aGlzKSxuPSJhc2NfZm9ybV9lbmdhZ2VtZW50Ij09Yj8iYmx1ciI6ImNsaWNrIjskKHRoaXMpLm9uKG4sZnVuY3Rpb24oKXtnLnNldERpZ2l0YWxEYXRhKGIsCm0pfSl9KX0pfTtlLmFkZEV2ZW50PWZ1bmN0aW9uKGIsYSl7dmFyIGM9e2V2ZW50X293bmVyOiJkMmMiLHBhZ2VfdHlwZTpkLnBhZ2VJZCxwYWdlX3VybDp3aW5kb3cubG9jYXRpb24uaHJlZixldmVudF9sYWJlbDpiLGV2ZW50X2NhdGVnb3J5OiQoIiNhc2NfZGlnaXRhbF9kYXRhX2luZm8gaW5wdXRbbmFtZT12ZWhpY2xlU3RhdHVzXSIpLnZhbCgpfSxmPSExIT09YXNjTGFzdEN0YUNsaWNrP2UuQ3RhVGV4dFBhcnNlcihhc2NMYXN0Q3RhQ2xpY2spOiIiO3N3aXRjaChiKXtjYXNlICJhc2NfcGFnZXZpZXciOmJyZWFrO2Nhc2UgImFzY19jbGlja190b19jYWxsIjpmPWEuaGFzQ2xhc3MoInBob25lLWxpbmsiKT9hLnRleHQoKTphLmF0dHIoImhyZWYiKTtmPWYucmVwbGFjZSgvW14wLTlcK10vZywiIik7Yz1PYmplY3QuYXNzaWduKHt9LGMse2NvbW1fcGhvbmVfbnVtYmVyOmYsZGVwYXJ0bWVudDplLmdldEQyY0RlcGFydG1lbnQoYSksYWZmaWxpYXRpb246IiJ9KTticmVhaztjYXNlICJhc2NfY3RhX2ludGVyYWN0aW9uIjpmPQplLkN0YVRleHRQYXJzZXIoYSk7ZS5pc0N0YUNsaWNrKGEpJiYoYXNjTGFzdEN0YUNsaWNrPWEpO2M9T2JqZWN0LmFzc2lnbih7fSxjLHtlbGVtZW50X3RleHQ6ZixlbGVtZW50X29yZGVyOiIiLGVsZW1lbnRfY29sb3I6IiIsZWxlbWVudF90eXBlOmUuZ2V0RWxlbWVudFR5cGUoYSksZXZlbnRfYWN0aW9uOiIiLGV2ZW5fYWN0aW9uX3Jlc3VsdDphLmF0dHIoImhyZWYiKT8icmVkaXJlY3QiOiJwb3B1cCIsbGlua191cmw6YS5hdHRyKCJocmVmIik\/YS5hdHRyKCJocmVmIik6IiJ9KTticmVhaztjYXNlICJhc2NfZm9ybV9lbmdhZ2VtZW50IjpmPWUuZ2V0TGVhZFR5cGVGb3JtTmFtZShhKTtpZighMT09PWYpcmV0dXJuITE7bGV0IG09ZS5hc2NUZXh0UmVwbGFjZXIoYS52YWwoKSksbj1lLmdldEQyY0RlcGFydG1lbnQoYSk7Y29uc29sZS5sb2coIkQyQVNDIEZvcm0gRW5nYWdlbWVudCBEZXRlY3RlZCIsZixuLGEpO2M9T2JqZWN0LmFzc2lnbih7fSxjLHtlbGVtZW50X3RleHQ6bSxjb21tX3R5cGU6ImZvcm0iLApjb21tX3N0YXR1czoic3RhcnQiLGRlcGFydG1lbnQ6bixmb3JtX25hbWU6Zixmb3JtX3R5cGU6ZS5nZXRGb3JtVHlwZShhKSxmb3JtX2xhbmc6JCgiaW5wdXRbbmFtZT0nbGFuZyddIikudmFsKCksZm9ybV9kZXB0Om59KTticmVhaztjYXNlICJhc2NfZm9ybV9zdWJtaXNzaW9uIjpjPU9iamVjdC5hc3NpZ24oe30sYyx7Y29tbV90eXBlOiJmb3JtIixjb21tX291dGNvbWU6ImNsb3NlIixzdWJtaXNzaW9uX2lkOiIiLGVsZW1lbnRfdGV4dDoic3VibWl0IixjdGFfdGV4dDpmLGN1c3RvbWVyX3Bob25lOmEuY29uZmlybV9waG9uZV9udW1iZXIsY3VzdG9tZXJfZW1haWw6YS5jb25maXJtX2VtYWlsLGRlcGFydG1lbnQ6ZS5nZXREMmNEZXBhcnRtZW50KGEpLGZvcm1fbmFtZTphLmxlYWRUeXBlLGZvcm1fdHlwZTplLmdldEZvcm1UeXBlKGEpLGZvcm1fbGFuZzokKCJpbnB1dFtuYW1lPSdsYW5nJ10iKS52YWwoKSxmb3JtX2RlcHQ6ZS5nZXREMmNEZXBhcnRtZW50KGEpfSk7YnJlYWs7Y2FzZSAiYXNjX2Zvcm1fc3VibWlzc2lvbl9wYXJ0cyI6Y2FzZSAiYXNjX2Zvcm1fc3VibWlzc2lvbl9zYWxlcyI6Y2FzZSAiYXNjX2Zvcm1fc3VibWlzc2lvbl9zYWxlc19hcHB0IjpjYXNlICJhc2NfZm9ybV9zdWJtaXNzaW9uX3NlcnZpY2UiOmNhc2UgImFzY19mb3JtX3N1Ym1pc3Npb25fc2VydmljZV9hcHB0IjpjYXNlICJEMkNfTGVhZHMiOmNvbnNvbGUubG9nKCJEMkFTQyBFbWFpbCBTZW50IC0gRGF0YSAyIiwKYSk7YS5jb25maXJtX3Bob25lX251bWJlcj12b2lkIDA9PT1hLmNvbmZpcm1fcGhvbmVfbnVtYmVyPyIiOmEuY29uZmlybV9waG9uZV9udW1iZXI7YS5jb25maXJtX2VtYWlsPXZvaWQgMD09PWEuY29uZmlybV9lbWFpbD8iIjphLmNvbmZpcm1fZW1haWw7Yz1PYmplY3QuYXNzaWduKHt9LGMse2NvbW1fdHlwZToiZm9ybSIsY29tbV9vdXRjb21lOmUuZ2V0Rm9ybU91dGNvbWUoYiksc3VibWlzc2lvbl9pZDoiIixlbGVtZW50X3RleHQ6ZS5hc2NUZXh0UmVwbGFjZXIoInN1Ym1pdCIpLGN0YV90ZXh0OmYsY3VzdG9tZXJfcGhvbmU6YS5jb25maXJtX3Bob25lX251bWJlcixjdXN0b21lcl9lbWFpbDphLmNvbmZpcm1fZW1haWwsZGVwYXJ0bWVudDplLmdldEQyY0RlcGFydG1lbnQoYSksZm9ybV9uYW1lOmEubGVhZFR5cGUsZm9ybV90eXBlOmUuZ2V0Rm9ybVR5cGUoYSksZm9ybV9sYW5nOiQoImlucHV0W25hbWU9J2xhbmcnXSIpLnZhbCgpLGZvcm1fZGVwdDplLmdldEQyY0RlcGFydG1lbnQoYSl9KTsKYnJlYWs7Y2FzZSAiRDJDX0Zvcm1fc3VibWlzc2lvbl9zYWxlcyI6Yz17Zm9ybV9maWxsZWQ6IlllcyJ9O2JyZWFrO2Nhc2UgImFzY19lbGVtZW50X2NvbmZpZ3VyYXRpb24iOmM9dm9pZCAwIT09YS5ldmVudF9hY3Rpb24\/T2JqZWN0LmFzc2lnbih7fSxjLHtldmVudF9hY3Rpb25fcmVzdWx0OmEuZXZlbnRfYWN0aW9uX3Jlc3VsdCxldmVudF9hY3Rpb246YS5ldmVudF9hY3Rpb24scHJvZHVjdF9uYW1lOiIiLGVsZW1lbnRfc3RhdGU6YS5maWx0ZXJJbmZvLnN0YXRlLGVsZW1lbnRfdHlwZToic2VhcmNoIj09YS5ldmVudF9hY3Rpb24\/ImZpbHRlciI6InNvcnQiLGVsZW1lbnRfc3VidHlwZTphLmZpbHRlckluZm8udHlwZSxlbGVtZW50X3RpdGxlOmEuZmlsdGVySW5mby5sYWJlbCxlbGVtZW50X3RleHQ6YS5maWx0ZXJJbmZvLnRpdGxlLGVsZW1lbnRfdmFsdWU6YS5maWx0ZXJJbmZvLnZhbHVlLGVsZW1lbnRfY29sb3I6IiIsZWxlbWVudF9wb3NpdGlvbjoiIixlbGVtZW50X29yZGVyOiIifSk6Ck9iamVjdC5hc3NpZ24oe30sYyx7ZXZlbnRfYWN0aW9uX3Jlc3VsdDoibGFuZ3VhZ2UiLGV2ZW50X2FjdGlvbjoiY2xpY2siLHByb2R1Y3RfbmFtZToiIixlbGVtZW50X3N0YXRlOjAsZWxlbWVudF90eXBlOiJsYW5ndWFnZSB0b2dnbGUsIixlbGVtZW50X3N1YnR5cGU6ImJ1dHRvbiIsZWxlbWVudF90aXRsZTplLmFzY1RleHRSZXBsYWNlcihhLnRleHQoKSksZWxlbWVudF90ZXh0OmUuYXNjVGV4dFJlcGxhY2VyKGEudGV4dCgpKSxlbGVtZW50X3ZhbHVlOmUuYXNjVGV4dFJlcGxhY2VyKGEudGV4dCgpKSxlbGVtZW50X2NvbG9yOiIiLGVsZW1lbnRfcG9zaXRpb246IiIsZWxlbWVudF9vcmRlcjoiIn0pO2JyZWFrO2Nhc2UgImFzY19tZWRpYV9pbnRlcmFjdGlvbiI6Yz1PYmplY3QuYXNzaWduKHt9LGMse2V2ZW50X2FjdGlvbl9yZXN1bHQ6IiIsYWZmaWxpYXRpb246IiIsbWVkaWFfdHlwZToiIixsaW5rX3VybDoiIixjcmVhdGl2ZV9uYW1lOiIifSk7YnJlYWs7Y2FzZSAiYXNjX21lbnVfaW50ZXJhY3Rpb24iOmM9Ck9iamVjdC5hc3NpZ24oe30sYyx7ZWxlbWVudF90ZXh0OmUuYXNjVGV4dFJlcGxhY2VyKGEudGV4dCgpKSxlbGVtZW50X3N1YnR5cGU6Im1lZ2FfbWVudSIsZWxlbWVudF90eXBlOmEuY2xvc2VzdCgibGkiKS5hdHRyKCJkYXRhLWlkIiksZXZlbnRfYWN0aW9uOiJjbGljayJ9KTticmVhaztjYXNlICJhc2NfcmV0YWlsX3Byb2Nlc3MiOmM9T2JqZWN0LmFzc2lnbih7fSxjLHtmbG93X25hbWU6ImZpbmFuY2UiLGVsZW1lbnRfdGl0bGU6IiIsZmxvd19vdXRjb21lOiJwcm9jZWVkIixpdGVtX3BheW1lbnQ6ImZpbmFuY2UiLGZsb3dfc3RhZ2U6IiJ9KTticmVhaztjYXNlICJhc2Nfc3BlY2lhbF9vZmZlciI6Yz1PYmplY3QuYXNzaWduKHt9LGMse3Byb21vdGlvbl9uYW1lOiQoImgyOmZpcnN0LWNoaWxkIixhKS5sZW5ndGg\/ZS5hc2NUZXh0UmVwbGFjZXIoJCgiaDI6Zmlyc3QtY2hpbGQiLGEpLnRleHQoKSk6IkRlYWxlciBQcm9tbyIsZGVwYXJ0bWVudDplLmdldEQyY0RlcGFydG1lbnQoYSksCnByb2R1Y3RfbmFtZToiIixlbGVtZW50X3Bvc2l0aW9uOiJmbG9hdGluZyIsZmxvd19vdXRjb21lOiJzdGFydCJ9KTticmVhaztjYXNlICJhc2NfY29tbV9zdWJtaXNzaW9uIjpjPU9iamVjdC5hc3NpZ24oe30sYyx7Y29tbV90eXBlOiJjaGF0IixhZmZpbGlhdGlvbjoibmF0aXZlIixkZXBhcnRtZW50OmUuZ2V0RDJjRGVwYXJ0bWVudChhKSxhZmZpbGlhdGlvbl9pZDoibXVsdGktdXNlciIsY29tbV9zdGF0dXM6ImNybV91cGRhdGUifSk7YnJlYWs7Y2FzZSAiYXNjX2NvbW1fc3VibWlzc2lvbl9zYWxlcyI6Yz1PYmplY3QuYXNzaWduKHt9LGMse2NvbW1fdHlwZToiY2hhdCIsYWZmaWxpYXRpb246Im5hdGl2ZSIsZGVwYXJ0bWVudDplLmdldEQyY0RlcGFydG1lbnQoYSksYWZmaWxpYXRpb25faWQ6Im11bHRpLXVzZXIiLGNvbW1fc3RhdHVzOiJjcm1fdXBkYXRlIixlbGVtZW50X3Bvc2l0aW9uOiJwb3AtdXAifSk7YnJlYWs7ZGVmYXVsdDpyZXR1cm4gY29uc29sZS5sb2coIkQyQVNDIEVSUk9SKENPREU6MDAxKSIsCmIsYSksITF9ITEhPT1hc2NUb3BDYXJEZXRhaWxzJiYiRDJDX0Zvcm1fc3VibWlzc2lvbl9zYWxlcyIhPWImJihjPU9iamVjdC5hc3NpZ24oe30sYyxhc2NUb3BDYXJEZXRhaWxzKSk7Y29uc29sZS5sb2coIkdBNCBGaW5hbCBEaWdpdGFsIERhdGEiLGMpO3JldHVybiBjfTtlLmlzQ3RhQ2xpY2s9ZnVuY3Rpb24oYil7bGV0IGE9ITE7YiBpbnN0YW5jZW9mIGpRdWVyeSYmKDA8Yi5jbG9zZXN0KCIubmV3VmRwQWN0aW9ucyIpLmxlbmd0aCYmKGE9ITApLDA8Yi5jbG9zZXN0KCIuY3RhLXRwbCIpLmxlbmd0aCYmKGE9ITApLCJwcm9tb0Rpc2NvdmVyQnV0dG9uIj09Yi5hdHRyKCJpZCIpJiYoYT0hMCksYi5oYXNDbGFzcygiZGl2Q2FyUGF5bWVudENhbGN1bGF0b3IiKSYmKGE9ITApLDA8Yi5jbG9zZXN0KCIuZGl2Q2FyUGF5bWVudENhbGN1bGF0b3IiKS5sZW5ndGgmJihhPSEwKSwwPGIuY2xvc2VzdCgiI3NjcmF0Y2hhbmRzYXZlX2VtYmVkZGVkIikubGVuZ3RoJiYoYT0hMCksInNjcmF0Y2hhbmRzYXZlX2VtYmVkZGVkIj09CmIuYXR0cigiaWQiKSYmKGE9ITApLGIuaGFzQ2xhc3MoImxvYW5DYWxjdWxhdG9yVHJpZ2dlciIpJiYoYT0hMCksMDxiLmNsb3Nlc3QoIi5sb2FuQ2FsY3VsYXRvclRyaWdnZXIiKS5sZW5ndGgmJihhPSEwKSxiLmhhc0NsYXNzKCJjdFByb21vIikmJihhPSEwKSwwPGIuY2xvc2VzdCgiLmN0UHJvbW8iKS5sZW5ndGgmJihhPSEwKSxiLmhhc0NsYXNzKCJvZmZlci1idG4iKSYmKGE9ITApLDA8Yi5jbG9zZXN0KCIub2ZmZXItYnRuIikubGVuZ3RoJiYoYT0hMCksYi5oYXNDbGFzcygidHJhZGVJbkJhcl9idG4iKSYmKGE9ITApLDA8Yi5jbG9zZXN0KCIudHJhZGVJbkJhcl9idG4iKS5sZW5ndGgmJihhPSEwKSwiVFJBREVJTiI9PWIuYXR0cigiZGF0YS1pZCIpJiYoYT0hMCkpO3JldHVybiBhfTtlLnN0YW5kYXJkaXplRm9ybUxhbmc9ZnVuY3Rpb24oYil7dm9pZCAwPT09YiYmJCgiaHRtbCIpLmF0dHIoImxhbmciKTtiPWIudG9Mb3dlckNhc2UoKTsiZW5nIj09YiYmKGI9ImVuIik7ImVuZ2xpc2giPT0KYiYmKGI9ImVuIik7ImZybiI9PWImJihiPSJmciIpOyJmcmVuY2giPT1iJiYoYj0iZnIiKTsiZW4iIT1iJiYiZnIiIT1iJiYoYj0iZW4iKTtyZXR1cm4gYn07ZS5DdGFUZXh0UGFyc2VyPWZ1bmN0aW9uKGIpe2QucGFnZUlkLnRvTG93ZXJDYXNlKCk7bGV0IGE9d2luZG93LmxvY2F0aW9uLnBhdGhuYW1lLnRvTG93ZXJDYXNlKCksYz0iIjtpZigvbmV3XC9pbnZlbnRvcnlcL3NlYXJjaC8udGVzdChhKXx8L25ldWZzXC9pbnZlbnRhaXJlXC9yZWNoZXJjaGUvLnRlc3QoYSkpYys9IkQyQyBDVEFNIC0gTmV3IEludmVudG9yeSBTUlA6ICI7ZWxzZSBpZigvbmV3XC9pbnZlbnRvcnkvLnRlc3QoYSl8fC9uZXVmc1wvaW52ZW50YWlyZS8udGVzdChhKSljKz0iRDJDIENUQU0gLSBOZXcgSW52ZW50b3J5IFZEUDogIjtlbHNlIGlmKC9uZXcvLnRlc3QoYSl8fC9uZXVmcy8udGVzdChhKSljKz0iRDJDIENUQU0gLSBOZXcgU2hvd1Jvb20gVkRQOiAiO2Vsc2UgaWYoL3VzZWQvLnRlc3QoYSl8fC9vY2Nhc2lvbi8udGVzdChhKSljKz0KIkQyQyBDVEFNIC0gVXNlZCBJbnZlbnRvcnkgVkRQOiAiO3JldHVybiBjK2UuYXNjVGV4dFJlcGxhY2VyKGIudGV4dCgpKX07ZS5nZXRMZWFkVHlwZUZvcm1OYW1lPWZ1bmN0aW9uKGIpe2xldCBhPTA8Yi5jbG9zZXN0KCJmb3JtIikubGVuZ3RoP2IuY2xvc2VzdCgiZm9ybSIpLmF0dHIoImlkIik6Yi5hdHRyKCJpZCIpLGM9ITE7ZC5wYWdlSWQuaW5jbHVkZXMoIm9yZGVyIHBhcnRzIikmJihjPSJQYXJ0c1JlcXVlc3QiKTtkLnBhZ2VJZC5pbmNsdWRlcygidGVzdCBkcml2ZSIpJiYoYz0iVGVzdERyaXZlIik7ZC5wYWdlSWQuaW5jbHVkZXMoInByaWNlIHJlcXVlc3QiKSYmKGM9IlByaWNlUmVxdWVzdCIpO2QucGFnZUlkLmluY2x1ZGVzKCJicm9jaHVyZSIpJiYoYz0iQnJvY2h1cmVzUmVxdWVzdCIpO2QucGFnZUlkLmluY2x1ZGVzKCJyZXF1ZXN0IGFwcG9pbnRtZW50IikmJihjPSJTZXJ2aWNlUmVxdWVzdCIpO2QucGFnZUlkLmluY2x1ZGVzKCJ0aXJlcyIpJiYoYz0iVGlyZXNSZXF1ZXN0Iik7CmQucGFnZUlkLmluY2x1ZGVzKCJib2R5IHNob3AiKSYmKGM9IkJvZHlTaG9wIik7ZC5wYWdlSWQuaW5jbHVkZXMoInJlY2FsbCIpJiYoYz0iUmVjYWxscyIpO2lmKGIgaW5zdGFuY2VvZiBqUXVlcnkmJigwPGIuY2xvc2VzdCgiLmRpdlNwYW5GaWx0ZXJzIikubGVuZ3RofHwwPGIuY2xvc2VzdCgiI2Jhbm5lcl9zZWFyY2hfYmFyX2NvbnRhaW5lciIpLmxlbmd0aCkpcmV0dXJuITE7Yj1lLmZvcm1EYXRhQnlJZChiKTtyZXR1cm4hMSE9PWI\/Yi5mb3JtTmFtZTohMSE9PWM\/ZDJhc2NSZXNvbHZlTGVhZFR5cGUoZC5mb3JtTWFwLGMpOiJVTktOT1dOOiAiK2F9O2UuZm9ybURhdGFCeUlkPWZ1bmN0aW9uKGIpe2lmKGIgaW5zdGFuY2VvZiBqUXVlcnkpe2xldCBhPTA8Yi5jbG9zZXN0KCJmb3JtIikubGVuZ3RoP2IuY2xvc2VzdCgiZm9ybSIpLmF0dHIoImlkIik6Yi5hdHRyKCJpZCIpO3ZvaWQgMD09PWEmJigwPGIuY2xvc2VzdCgiI2NvbnRhY3Rwb3B1cCIpLmxlbmd0aCYmKGE9IlJlcXVlc3QgZm9yIGNvbnRhY3QiKSwKMDxiLmNsb3Nlc3QoIi5jcmVkaXRTY29yZUlucHV0IikubGVuZ3RoJiYoYT0iY3JlZGl0U2NvcmUiKSwwPGIuY2xvc2VzdCgiI3NjcmF0Y2hBbmRTYXZlUG9wdXBDb250YWluZXJfYm5wIikubGVuZ3RoJiYoYT0iUmViYXRlQ291cG9uTmV3Qk5QIiksMDxiLmNsb3Nlc3QoIi5zY3JhdGNoYW5kc2F2ZV90ZXh0IikubGVuZ3RoJiYoYT0iUmViYXRlQ291cG9uIikpO2lmKGQucGFnZUlkLmluY2x1ZGVzKCJzaG93cm9vbTpjb21wYXJlIikmJnZvaWQgMCE9PWEmJmEuaW5jbHVkZXMoImZlYXR1cmVkUHJvZHVjdF8iKSlyZXR1cm57Zm9ybVR5cGU6InJlc2VhcmNoIixmb3JtTmFtZToiQ29tcGFyZUZvcm0ifTtpZigwPGIuY2xvc2VzdCgiI211bHRpZm9ybV9lbWJlZGRlZCIpLmxlbmd0aCYmMDxiLmNsb3Nlc3QoIiNtdWx0aWZvcm1fZW1iZWRkZWQiKS5maW5kKCIubXVsdGlmb3JtX2VtYmVkZGVkX3N0ZXAxIikubGVuZ3RoKXJldHVybntmb3JtVHlwZToiY29uc3VtZXJfY29udGFjdCIsZm9ybU5hbWU6IkRpc2NvdmVyT2ZmZXIifTsKc3dpdGNoKGEpe2Nhc2UgIm1pbmlmb3JtIjpjYXNlICJmaW5hbmNlX211bHRpc3RlcF9mb3JtIjpyZXR1cm57Zm9ybVR5cGU6ImZpbmFuY2VfY3JlZGl0Iixmb3JtTmFtZToiQ3JlZGl0TXVsdGlzdGVwUmVxdWVzdCJ9O2Nhc2UgImxvYW4tZm9ybSI6cmV0dXJue2Zvcm1UeXBlOiJmaW5hbmNlX2NyZWRpdCIsZm9ybU5hbWU6IlByaWNlUmVxdWVzdCJ9O2Nhc2UgImZvcm1EZWFsZXJBcHBvaW50bWVudCI6cmV0dXJue2Zvcm1UeXBlOiJjb25zdW1lcl9jb250YWN0Iixmb3JtTmFtZToiRGVhbGVyQXBwb2ludG1lbnQifTtjYXNlICJTbGlkZVdpZGdldEZvcm0iOnJldHVybntmb3JtVHlwZToiY29uc3VtZXJfY29udGFjdCIsZm9ybU5hbWU6IlNsaWRlV2lkZ2V0Rm9ybSJ9O2Nhc2UgImNyZWRpdFNjb3JlIjpyZXR1cm57Zm9ybVR5cGU6ImZpbmFuY2VfY3JlZGl0Iixmb3JtTmFtZToiQ3JlZGl0UmVxdWVzdF9TaG9ydCJ9O2Nhc2UgIlJlYmF0ZUNvdXBvbk5ld0JOUCI6cmV0dXJue2Zvcm1UeXBlOiJwcmUtb3JkZXIiLApmb3JtTmFtZToiUmViYXRlQ291cG9uTmV3Qk5QIn07Y2FzZSAiYmFubmVyX3NlYXJjaF9iYXJfc2VsZWN0X2JvZHkiOnJldHVybntmb3JtVHlwZToiY29uc3VtZXJfY29udGFjdCIsZm9ybU5hbWU6IkJhbm5lckZvcm0ifTtjYXNlICJwYXltZW50Q2FsY3VsYXRvckludGVydmFsIjpjYXNlICJwYXltZW50Q2FsY3VsYXRvclRyaW1TZWxlY3QiOmNhc2UgInBheW1lbnRDYWxjdWxhdG9yS21BbGxvd2FuY2UiOmNhc2UgInBheW1lbnRDYWxjdWxhdG9yRG93blBheW1lbnQiOnJldHVybntmb3JtVHlwZToiZmluYW5jZV9jcmVkaXQiLGZvcm1OYW1lOiJNb250aGx5UGF5bWVudHMifTtjYXNlICJjb250YWN0X2Zvcm0iOmNhc2UgImNvbnRhY3RfZm9ybTIiOmNhc2UgImNvbnRhY3RfZm9ybTMiOmNhc2UgIlJlcXVlc3QgZm9yIGNvbnRhY3QiOnJldHVybntmb3JtVHlwZToiY29uc3VtZXJfY29udGFjdCIsZm9ybU5hbWU6IkNvbnRhY3RSZXF1ZXN0In07Y2FzZSAicXVpY2tFbWFpbEZvcm0iOmNhc2UgIm1haWxFeHByZXNzUmVxdWVzdCI6cmV0dXJue2Zvcm1UeXBlOiJjb25zdW1lcl9jb250YWN0IiwKZm9ybU5hbWU6IlF1aWNrRW1haWwifTtjYXNlICJ0cmFkaW5NYWtlIjpjYXNlICJ0cmFkaW5ZZWFyIjpjYXNlICJ0cmFkaW5Nb2RlbCI6Y2FzZSAidHJhZGluVHJpbSI6Y2FzZSAidHJhZGVJbkJhclBvcHVwRm9ybSI6Y2FzZSAiU2VsbENhckZvcm0iOnJldHVybntmb3JtVHlwZToicmVzZWFyY2giLGZvcm1OYW1lOiJQcmljZVZlaGljbGUifX1pZigwPGIuY2xvc2VzdCgiLnNjcmF0Y2hib2R5IikubGVuZ3RofHwwPGIuY2xvc2VzdCgiLnNjcmF0Y2hib2R5MSIpLmxlbmd0aHx8MDxiLmNsb3Nlc3QoIi5zY3JhdGNoYm9keTIiKS5sZW5ndGh8fDA8Yi5jbG9zZXN0KCIuc2NyYXRjaGJvZHkzIikubGVuZ3RoKXJldHVybntmb3JtVHlwZToiY29uc3VtZXJfY29udGFjdCIsZm9ybU5hbWU6IlJlYmF0ZUNvdXBvbk5ldyJ9O2lmKDA8Yi5jbG9zZXN0KCIjbW9udGhseVBheW1lbnRzUG9wdXBDb250YWluZXIiKS5sZW5ndGgpcmV0dXJue2Zvcm1UeXBlOiJmaW5hbmNlX2NyZWRpdCIsZm9ybU5hbWU6Ik1vbnRobHlQYXltZW50cyJ9fXJldHVybiExfTsKZS5jb21tU3ViRGF0YVBhcnNlcj1mdW5jdGlvbihiLGEpe2xldCBjPXtmb3JtX25hbWU6IiIsZm9ybV90eXBlOiIiLGZvcm1fZGVwdDoiIixmb3JtX2xhbmc6IiJ9Oy9hc2NfY29tbV9zdWJtaXNzaW9uLy50ZXN0KGIpJiYiU2xpZGVXaWRnZXRGb3JtIj09YS5jbG9zZXN0KCJmb3JtIikuYXR0cigiaWQiKSYmKGMuZm9ybV9uYW1lPSJMZWFkOiBDaGF0IFN1Ym1pc3Npb24iKTtyZXR1cm4gY307ZS5hc2NUZXh0UmVwbGFjZXI9ZnVuY3Rpb24oYil7Yj1iLnJlcGxhY2UoLyhcclxufFxufFxyfFx0KS9nbSwiIik7Yj1iLnJlcGxhY2UoLzxcLz9bXj5dKyg+fCQpL2csIiIpO3JldHVybiBiPWIudHJpbSgpfTtlLmhhc2hUZXh0PWZ1bmN0aW9uKGIpe2I9KG5ldyBUZXh0RW5jb2RlcikuZW5jb2RlKGIudHJpbSgpLnRvTG93ZXJDYXNlKCkpO3JldHVybiBjcnlwdG8uc3VidGxlLmRpZ2VzdCgiU0hBLTI1NiIsYikudGhlbihhPT5BcnJheS5mcm9tKG5ldyBVaW50OEFycmF5KGEpKS5tYXAoYz0+CmMudG9TdHJpbmcoMTYpLnBhZFN0YXJ0KDIsIjAiKSkuam9pbigiIikpfTtlLmdldEZvcm1PdXRjb21lPWZ1bmN0aW9uKGIpe3N3aXRjaChiKXtjYXNlICJhc2NfZm9ybV9zdWJtaXNzaW9uX3BhcnRzIjpjYXNlICJhc2NfZm9ybV9zdWJtaXNzaW9uX3NhbGVzIjpjYXNlICJhc2NfZm9ybV9zdWJtaXNzaW9uX3NlcnZpY2UiOmNhc2UgIkQyQ19MZWFkcyI6cmV0dXJuImNybV91cGRhdGUiO2Nhc2UgImFzY19mb3JtX3N1Ym1pc3Npb25fc2FsZXNfYXBwdCI6Y2FzZSAiYXNjX2Zvcm1fc3VibWlzc2lvbl9zZXJ2aWNlX2FwcHQiOnJldHVybiJhcHB0X2Jvb2tlZCJ9fTtlLmdldEQyY0RlcGFydG1lbnQ9ZnVuY3Rpb24oYil7bGV0IGE9ZC5wYWdlSWQudG9Mb3dlckNhc2UoKSxjPXdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZS50b0xvd2VyQ2FzZSgpLGY9Ik9USEVSIjsvbmV1ZnMvLnRlc3QoYykmJihmPSJORVciKTsvbmV3Ly50ZXN0KGMpJiYoZj0iTkVXIik7L29jY2FzaW9uLy50ZXN0KGMpJiYKKGY9IlVTRUQiKTsvdXNlZC8udGVzdChjKSYmKGY9IlVTRUQiKTthLmluY2x1ZGVzKCJmaW5hbmNlIikmJihmPSJGSU5BTkNFIik7YS5pbmNsdWRlcygicmVxdWVzdCBhcHBvaW50bWVudCIpJiYoZj0iU0VSVklDRSIpO2EuaW5jbHVkZXMoInBhcnRzIikmJihmPSJTRVJWSUNFIik7YS5pbmNsdWRlcygidGlyZXMiKSYmKGY9IlNFUlZJQ0UiKTthLmluY2x1ZGVzKCJib2R5IHNob3AiKSYmKGY9IlNFUlZJQ0UiKTthLmluY2x1ZGVzKCJmaW5hbmNlIGRlcGFydG1lbnQiKSYmKGY9IkZJTkFOQ0UiKTthLmluY2x1ZGVzKCJjcmVkaXQiKSYmKGY9IkZJTkFOQ0UiKTthLmluY2x1ZGVzKCJjb250YWN0IHVzIikmJihmPSJTQUxFUyIpO2EuaW5jbHVkZXMoInJlY2FsbCIpJiYoZj0iU0VSVklDRSIpO2IgaW5zdGFuY2VvZiBqUXVlcnkmJigwPGIuY2xvc2VzdCgiI2ZpbmFuY2VNdWx0aXN0ZXBQb3B1cENvbnRhaW5lciIpLmxlbmd0aCYmKGY9IkZJTkFOQ0UiKSwiZmluYW5jZU11bHRpc3RlcFBvcHVwQ29udGFpbmVyIj09CmIuYXR0cigiaWQiKSYmKGY9IkZJTkFOQ0UiKSwwPGIuY2xvc2VzdCgiI1NlbGxDYXJGb3JtIikubGVuZ3RoJiYoZj0iRklOQU5DRSIpLHZvaWQgMCE9PWIuYXR0cigiZGF0YS1kZXBhcnRtZW50IikmJihmPWIuYXR0cigiZGF0YS1kZXBhcnRtZW50IikpKTtyZXR1cm4gZn07ZS5nZXRGb3JtVHlwZT1mdW5jdGlvbihiKXtsZXQgYT1kLnBhZ2VJZC50b0xvd2VyQ2FzZSgpO2lmKGEuaW5jbHVkZXMoInJlcXVlc3QgYXBwb2ludG1lbnQiKSlyZXR1cm4ic2VydmljZV9hcHBvaW50bWVudCI7aWYoYS5pbmNsdWRlcygib3JkZXIgcGFydHMiKXx8YS5pbmNsdWRlcygib3JkZXIgdGlyZXMiKSlyZXR1cm4icGFydHMiO2lmKGEuaW5jbHVkZXMoImJvZHkgc2hvcCIpKXJldHVybiJib2R5X3Nob3AiO2lmKGEuaW5jbHVkZXMoImZpbmFuY2UgZGVwYXJ0bWVudCIpfHxhLmluY2x1ZGVzKCJjcmVkaXQiKSlyZXR1cm4iY3JlZGl0IjtiPWUuZm9ybURhdGFCeUlkKGIpO3JldHVybiExIT09Yj9iLmZvcm1UeXBlOgoiY29uc3VtZXJfY29udGFjdCJ9O2UuZ2V0RWxlbWVudFR5cGU9ZnVuY3Rpb24oYil7cmV0dXJuInRvcEJhbm5lckltYWdlIj09Yi5hdHRyKCJpZCIpfHwwPGIuY2xvc2VzdCgiI3RvcEJhbm5lckltYWdlIikubGVuZ3RoPyJiYW5uZXIiOjA8Yi5jbG9zZXN0KCIuaGVhZGVyLWltYWdlLXdyYXBwZXIiKS5sZW5ndGg\/ImhlYWRlciI6MDxiLmNsb3Nlc3QoIi5sYW5ndWFnZUJhciIpLmxlbmd0aD8iYWNjZXNzaWJpbGl0eV90b29sIjowPGIuaGFzKCIuZGVhbGVyTWFwTGluayIpLmxlbmd0aD8ibWFwIjowPGIuY2xvc2VzdCgiLnNsaWRlcyIpLmxlbmd0aD8iZ2FsbGVyeSI6MDxiLmNsb3Nlc3QoIi51c2VkVmRwQWN0aW9ucyIpLmxlbmd0aD8iZGlnaXRhbF9yZXRhaWxpbmdfdG9vbCI6IlB1bGxvdXRfQnVpbGQtYW5kLVByaWNlIj09Yi5hdHRyKCIudXNlZFZkcEFjdGlvbnMiKT8iYmFubmVyIjoibmV3VmRwRnVsbHdpZHRoVmlkZW9JZnJhbWUiPT1iLmF0dHIoIi51c2VkVmRwQWN0aW9ucyIpPwoidmlkZW8iOiJkaWdpdGFsX3JldGFpbGluZyJ9O2UuZ2V0VmVoaWNsZUpTT049ZnVuY3Rpb24oYixhKXskLmdldCgiL2pzL2pzb24vIitiKyIuanNvbiIpLmRvbmUoZnVuY3Rpb24oYyl7Yy5pdGVtX251bWJlcj1iO2lmKCIiIT1hJiZ2b2lkIDAhPT1hKXdpbmRvd1thXShjKTtyZXR1cm4gY30pfTtlLnJlcG9ydD1mdW5jdGlvbihiLGEsYyxmKXtpZih2b2lkIDA9PT1kLnN1Yl9nYTR8fCJOIj09ZC5zdWJfZ2E0KWM9T2JqZWN0LmFzc2lnbih7fSxjLHtzZW5kX3RvOiJHLVo1UThaNUM3S0YifSk7aWYoITA9PT1sJiYiYXNjX2Zvcm1fZW5nYWdlbWVudCI9PWEpcmV0dXJuITE7Z3RhZygiZXZlbnQiLGEsYyk7bD0hMDtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7bD0hMX0sMUUzKX07cmV0dXJuIGV9O3NldFRpbWVvdXQoZnVuY3Rpb24oKXtnLnNldFZlaGljbGVTdGF0dXMoITEpOyJ2ZHAiPT1kLnBhZ2VJZCYmKDA8JCgiI3RvcGNhcmlkIikubGVuZ3RoJiYiIiE9JCgiI3RvcGNhcmlkIikudmFsKCkmJgoiMCIhPSQoIiN0b3BjYXJpZCIpLnZhbCgpP2cuZ2V0VmVoaWNsZUpTT04oJCgiI3RvcGNhcmlkIikudmFsKCksImFzY1VwZGF0ZVRvcENhckRhdGEiKTphc2NVcGRhdGVUb3BDYXJEYXRhKCExKSk7c2V0VGltZW91dChmdW5jdGlvbigpeyQoZnVuY3Rpb24oYil7Zy5zZXREaWdpdGFsRGF0YSgiYXNjX3BhZ2V2aWV3Iix7fSl9KX0sMUUzKTskLmVhY2goayxmdW5jdGlvbihiLGEpe2cuYmluZEVsZW1lbnRzKGIsYSl9LCExKTskKCIucmV2ZWFsLW1vZGFsIikub25lKCJwb3B1cGl6ZXIub25PcGVuIixmdW5jdGlvbihiKXtnLnNldERpZ2l0YWxEYXRhKCJhc2Nfc3BlY2lhbF9vZmZlciIsJChiLnRhcmdldCkpO2cuYmluZEVsZW1lbnRzKCJhc2NfZm9ybV9lbmdhZ2VtZW50IixbJChiLnRhcmdldCkuZmluZCgiZm9ybSBpbnB1dCwgZm9ybSBzZWxlY3QsIGZvcm0gdGV4dGFyZWEiKV0pfSk7c2V0VGltZW91dCgoKT0+eyQoImFbZGF0YS1sZWFkLXRyaWdnZXI9J0RlYWxlckFwcG9pbnRtZW50J10iKS5vbigiY2xpY2siLApmdW5jdGlvbigpe2cuc2V0RGlnaXRhbERhdGEoImFzY19zcGVjaWFsX29mZmVyIiwkKCIjbW9kYWxEZWFsZXJBcHBvaW50bWVudCIpKX0pOyQoImFbZGF0YS1sZWFkLXRyaWdnZXI9J1BheXBhbFBheW1lbnQnXSIpLm9uKCJjbGljayIsZnVuY3Rpb24oKXtnLnNldERpZ2l0YWxEYXRhKCJhc2Nfc3BlY2lhbF9vZmZlciIsJCgiI21vZGFsUGF5cGFsUGF5bWVudCIpKX0pfSwxRTMpOzA8JCgiI2ZsdFNvcnRJZCIpLmxlbmd0aCYmKGFzY0xhc3RTZWFyY2hGaWx0ZXJTb3J0PSQoIiNmbHRTb3J0SWQgLmRpdkFjdGlvbldyYXBwZXIgLmRpdkxhYmVsIikuaHRtbCgpKTtpZigidW5kZWZpbmVkIiE9PXR5cGVvZiB3aW5kb3cuQWJzdHJhY3RVc2VkU3JwT2JqZWN0KXt2YXIgZT1uZXcgQWJzdHJhY3RVc2VkU3JwT2JqZWN0KHtuYW1lOiJkMmNfaG9uZGFfZ3RtIn0pO2UuYWRkVXNlZFNycEV2ZW50T2JzZXJ2ZXIoInByb3h5IixmdW5jdGlvbihiKXtpZigidW5kZWZpbmVkIiE9PXR5cGVvZiBiLmNtZCYmCiJyZXF1ZXN0Ij09PWIuY21kJiYhMSE9PWIuZGF0YSl7bGV0IGE9Yi5kYXRhLmZpbHRlclN0YXRlLmZpbHRlclNlYXJjaDtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7YS5yZXN1bHRzPWIuZGF0YS5maWx0ZXJTdGF0ZS5jb3VudFNlYXJjaFJlc3VsdHM7YS50eXBlZFNlYXJjaD1iLmRhdGEuZmlsdGVyU3RhdGUudHlwZWRTZWFyY2g7YS5ldmVudF9hY3Rpb25fcmVzdWx0PSJzZWFyY2giO2EuZXZlbnRfYWN0aW9uPSJzZWFyY2giO2EuZmlsdGVySW5mbz1hc2NMYXN0RmlsdGVyQ2xpY2s7YXNjTGFzdEZpbHRlckNsaWNrPSExO09iamVjdC5rZXlzKGEpLmluY2x1ZGVzKCJzb3J0IikmJmFzY0xhc3RTZWFyY2hGaWx0ZXJTb3J0IT1hLnNvcnRbMF0mJihhc2NMYXN0U2VhcmNoRmlsdGVyU29ydD1hLnNvcnRbMF0sYS5ldmVudF9hY3Rpb249InNvcnQiKTtnLnNldERpZ2l0YWxEYXRhKCJhc2NfZWxlbWVudF9jb25maWd1cmF0aW9uIixhKX0sMTAwKX19KTtlLmluaXRVc2VkU3JwT2JzZXJ2ZXIoKX0kKGRvY3VtZW50KS5vbigidXNlZFNycEZpbHRlcnMub25DaGFuZ2UiLAoiYm9keSIsKGIsYSk9PntiPSQoIiMiK2EuaWQpO2I9JCgiLmZsdFRpdGxlIixiKS50ZXh0KCk7bGV0IGM9YS52YWx1ZTt2YXIgZj0iIjtsZXQgbT0idGV4dF9zZWFyY2giO2EudmFsdWUmJmEudmFsdWUudG9TdHJpbmcoKS5pbmNsdWRlcygiOjoiKT8obT0iYnV0dG9uIixmPWEudmFsdWUuc3BsaXQoIjo6IiksYS52YWx1ZT1mWzBdLGY9ZlsxXSk6YS52YWx1ZSYmYS52YWx1ZS50b1N0cmluZygpLmluY2x1ZGVzKCIsIikmJihtPSJyYW5nZV9zbGlkZXIiKTthc2NMYXN0RmlsdGVyQ2xpY2s9e2lkOmEuaWQsdGl0bGU6YS5sYWJlbCx2YWx1ZTphLnZhbHVlLG9yZ192YWx1ZTpjLHN0YXRlOmYsdHlwZTptLGxhYmVsOmJ9fSk7JCgiYm9keSIpLm9uKCJlbWFpbEhhbmRsZXIuZW1haWxTZW50IixmdW5jdGlvbihiLGEpe2NvbnNvbGUubG9nKCJEMkFTQyBFbWFpbCBTZW50IFRyaWdnZXIiLGIsYSk7aWYodm9pZCAwIT09YS5kZXRhaWwubGVhZFR5cGUpe2I9YS5kZXRhaWwubGVhZFR5cGU7aWYoYi5pbmNsdWRlcygiTGVhZDogUmVxdWVzdCBmb3IgZmluYW5jaW5nIChNdWx0aXN0ZXApIil8fApiLmluY2x1ZGVzKCJMZWFkIDogRGVtYW5kZSBkZSBmaW5hbmNlbWVudCAoUGx1cyIpKXJldHVybiExO2IuaW5jbHVkZXMoIkxlYWQgOiBEZW1hbmRlIGRlIHZhbGV1ciIpJiYoYj0iTGVhZCA6IERlbWFuZGUgZGUgdmFsZXVyIGQnZWNoYW5nZSIpO2IudHJpbSgpO2EuZGV0YWlsLmxlYWRUeXBlPWJ9dm9pZCAwIT09YS5kZXRhaWwubGVhZFR5cGUmJiIiIT1hLmRldGFpbC5sZWFkVHlwZXx8dm9pZCAwPT09YS5kZXRhaWwubWFpbElkfHwoYS5kZXRhaWwubGVhZFR5cGU9ZDJhc2NSZXNvbHZlTGVhZFR5cGUoZC5mb3JtTWFwLGEuZGV0YWlsLm1haWxJZCkpO2EuZGV0YWlsLmxlYWROYW1lQXJyPWQuZm9ybU1hcDt2b2lkIDA9PT1hLmRldGFpbC5jb25maXJtX2VtYWlsJiYoYS5kZXRhaWwuY29uZmlybV9lbWFpbD0iIik7dm9pZCAwPT09YS5kZXRhaWwuY29uZmlybV9waG9uZV9udW1iZXImJihhLmRldGFpbC5jb25maXJtX3Bob25lX251bWJlcj0iIik7UHJvbWlzZS5hbGwoW2cuaGFzaFRleHQoYS5kZXRhaWwuY29uZmlybV9lbWFpbCksCmcuaGFzaFRleHQoYS5kZXRhaWwuY29uZmlybV9waG9uZV9udW1iZXIpXSkudGhlbihjPT57dmFyIFtmLG1dPWM7YS5kZXRhaWwuY29uZmlybV9lbWFpbD1mO2EuZGV0YWlsLmNvbmZpcm1fcGhvbmVfbnVtYmVyPW19KTt2b2lkIDAhPT1hc2NUb3BDYXJEZXRhaWxzLm1ha2UmJiIiIT1hc2NUb3BDYXJEZXRhaWxzLm1ha2V8fHZvaWQgMD09PWEuZGV0YWlsLm1ha2V8fCIiPT1hLmRldGFpbC5tYWtlfHwoYS5kZXRhaWwudmNhdGVnb3J5PWEuZGV0YWlsLmNvbmRpdGlvbixhLmRldGFpbC52ZXJzaW9uPWEuZGV0YWlsLnRyaW0sYS5kZXRhaWwuYm9keVR5cGVJRD1hLmRldGFpbC50cmltLGEuZGV0YWlsLmNvbG9yPSIiLGEuZGV0YWlsLnZjYXJidXJhbnQ9IiIsYS5kZXRhaWwuZGF0ZV9saXN0aW5nPSIiLGFzY1VwZGF0ZVRvcENhckRhdGEoYS5kZXRhaWwpKTtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Zy5zZXREaWdpdGFsRGF0YSgiYXNjX2Zvcm1fc3VibWlzc2lvbiIsYS5kZXRhaWwpfSwyNTApfSk7CiQoIiNTbGlkZVdpZGdldEZvcm0gYS5idG4tZGVmYXVsdCIpLm9uKCJjbGljayIsZnVuY3Rpb24oKXtsZXQgYj1kMmFzY1Jlc29sdmVMZWFkVHlwZShkLmZvcm1NYXAsIlNsaWRlV2lkZ2V0Rm9ybSIpO2cuc2V0RGlnaXRhbERhdGEoImFzY19mb3JtX3N1Ym1pc3Npb24iLHtkZXBhcnRtZW50OiJzYWxlcyIsbGVhZFR5cGU6YixjdXJyZW50VVJMOiIifSl9KTskKGRvY3VtZW50KS5vbigiZm9ybS5zdGVwIiwiI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0iLGZ1bmN0aW9uKGIpe2cuc2V0RGlnaXRhbERhdGEoImFzY19yZXRhaWxfcHJvY2VzcyIsYil9KTskKGRvY3VtZW50KS5vbigibXVsdGlGb3JtRmluYW5jZVN1Ym1pdCIsZG9jdW1lbnQuYm9keSxmdW5jdGlvbihiKXtiPWQyYXNjUmVzb2x2ZUxlYWRUeXBlKGQuZm9ybU1hcCwiQ3JlZGl0TXVsdGlzdGVwUmVxdWVzdCIpO2cuc2V0RGlnaXRhbERhdGEoImFzY19mb3JtX3N1Ym1pc3Npb24iLHtkZXBhcnRtZW50OiJmaW5hbmNlIixsZWFkVHlwZTpiLApjdXJyZW50VVJMOiIifSl9KX0sMUUzKTt3aW5kb3cuZDJhc2M9Z307Ci8qKiAvanMvcHJpbnRUaGlzLmpzICoqLwp2YXIgX19fZDJjX3ByaW50VGhpc2pzX2Nfb249IjIwMjUtMDUtMjMgMTc6MTE6NDAiOyd1c2Ugc3RyaWN0Jzt2YXIgX19fZDJjX3ByaW50VGhpc2pzX2Nfb249IjIwMjQtMDctMzAgMTA6MzA6MDgiOyJ1c2Ugc3RyaWN0IjsKKGZ1bmN0aW9uKGMpe2Z1bmN0aW9uIHIoZCxlKXtlJiZkLmFwcGVuZChlLmpxdWVyeT9lLmNsb25lKCk6ZSl9ZnVuY3Rpb24gdChkLGUsayl7dmFyIGY9ZS5jbG9uZShrLmZvcm1WYWx1ZXMpO2suZm9ybVZhbHVlcyYmdShlLGYsInNlbGVjdCwgdGV4dGFyZWEiKTtrLnJlbW92ZVNjcmlwdHMmJmYuZmluZCgic2NyaXB0IikucmVtb3ZlKCk7ay5wcmludENvbnRhaW5lcj9mLmFwcGVuZFRvKGQpOmYuZWFjaChmdW5jdGlvbigpe2ModGhpcykuY2hpbGRyZW4oKS5hcHBlbmRUbyhkKX0pfWZ1bmN0aW9uIHUoZCxlLGspe3ZhciBmPWQuZmluZChrKTtlLmZpbmQoaykuZWFjaChmdW5jdGlvbihnLHEpe2MocSkudmFsKGYuZXEoZykudmFsKCkpfSl9dmFyIGE7Yy5mbi5wcmludFRoaXM9ZnVuY3Rpb24oZCl7YT1jLmV4dGVuZCh7fSxjLmZuLnByaW50VGhpcy5kZWZhdWx0cyxkKTt2YXIgZT10aGlzIGluc3RhbmNlb2YgalF1ZXJ5P3RoaXM6Yyh0aGlzKTtkPSJwcmludFRoaXMtIisobmV3IERhdGUpLmdldFRpbWUoKTsKaWYod2luZG93LmxvY2F0aW9uLmhvc3RuYW1lIT09ZG9jdW1lbnQuZG9tYWluJiZuYXZpZ2F0b3IudXNlckFnZW50Lm1hdGNoKC9tc2llL2kpKXt2YXIgaz0namF2YXNjcmlwdDpkb2N1bWVudC53cml0ZSgiPGhlYWQ+PHNjcmlwdD5kb2N1bWVudC5kb21haW49XFwiJytkb2N1bWVudC5kb21haW4rJ1xcIjtceDNjL3NjcmlwdD48L2hlYWQ+PGJvZHk+PC9ib2R5PiIpJyxmPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIpO2YubmFtZT0icHJpbnRJZnJhbWUiO2YuaWQ9ZDtmLmNsYXNzTmFtZT0iTVNJRSI7ZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChmKTtmLnNyYz1rfWVsc2UgYygiPGlmcmFtZSBpZD0nIitkKyInIG5hbWU9J3ByaW50SWZyYW1lJyAvPiIpLmFwcGVuZFRvKCJib2R5Iik7dmFyIGc9YygiIyIrZCk7YS5kZWJ1Z3x8Zy5jc3Moe3Bvc2l0aW9uOiJhYnNvbHV0ZSIsd2lkdGg6IjBweCIsaGVpZ2h0OiIwcHgiLGxlZnQ6Ii02MDBweCIsdG9wOiItNjAwcHgifSk7CnNldFRpbWVvdXQoZnVuY3Rpb24oKXtmdW5jdGlvbiBxKGIscCl7Yj1iLmdldCgwKTtiPWIuY29udGVudFdpbmRvd3x8Yi5jb250ZW50RG9jdW1lbnR8fGI7Yj1iLmRvY3VtZW50fHxiLmNvbnRlbnREb2N1bWVudHx8YjtiLm9wZW4oKTtiLndyaXRlKHApO2IuY2xvc2UoKX1hLmRvY3R5cGVTdHJpbmcmJnEoZyxhLmRvY3R5cGVTdHJpbmcpO3ZhciBtPWcuY29udGVudHMoKSxsPW0uZmluZCgiaGVhZCIpLG49bS5maW5kKCJib2R5IiksaD1jKCJiYXNlIik7aD0hMD09PWEuYmFzZSYmMDxoLmxlbmd0aD9oLmF0dHIoImhyZWYiKToic3RyaW5nIj09PXR5cGVvZiBhLmJhc2U\/YS5iYXNlOmRvY3VtZW50LmxvY2F0aW9uLnByb3RvY29sKyIvLyIrZG9jdW1lbnQubG9jYXRpb24uaG9zdDtsLmFwcGVuZCgnPGJhc2UgaHJlZj0iJytoKyciPicpO2EuaW1wb3J0Q1NTJiZjKCJsaW5rW3JlbD1zdHlsZXNoZWV0XSIpLmVhY2goZnVuY3Rpb24oKXt2YXIgYj1jKHRoaXMpLmF0dHIoImhyZWYiKTtpZihiKXt2YXIgcD0KYyh0aGlzKS5hdHRyKCJtZWRpYSIpfHwiYWxsIjtsLmFwcGVuZCgiPGxpbmsgdHlwZT0ndGV4dC9jc3MnIHJlbD0nc3R5bGVzaGVldCcgaHJlZj0nIitiKyInIG1lZGlhPSciK3ArIicvPiIpfX0pO2EuaW1wb3J0U3R5bGUmJmMoInN0eWxlIikuZWFjaChmdW5jdGlvbigpe2wuYXBwZW5kKHRoaXMub3V0ZXJIVE1MKX0pO2EucGFnZVRpdGxlJiZsLmFwcGVuZCgiPHRpdGxlPiIrYS5wYWdlVGl0bGUrIjwvdGl0bGU+Iik7YS5sb2FkQ1NTJiYoQXJyYXkuaXNBcnJheShhLmxvYWRDU1MpP2pRdWVyeS5lYWNoKGEubG9hZENTUyxmdW5jdGlvbihiLHApe2wuYXBwZW5kKCI8bGluayB0eXBlPSd0ZXh0L2NzcycgcmVsPSdzdHlsZXNoZWV0JyBocmVmPSciK3RoaXMrIicvPiIpfSk6bC5hcHBlbmQoIjxsaW5rIHR5cGU9J3RleHQvY3NzJyByZWw9J3N0eWxlc2hlZXQnIGhyZWY9JyIrYS5sb2FkQ1NTKyInLz4iKSk7aWYoaD1hLmNvcHlUYWdDbGFzc2VzKWg9ITA9PT1oPyJiaCI6aCwtMSE9PWguaW5kZXhPZigiYiIpJiYKbi5hZGRDbGFzcyhjKCJib2R5IilbMF0uY2xhc3NOYW1lKSwtMSE9PWguaW5kZXhPZigiaCIpJiZtLmZpbmQoImh0bWwiKS5hZGRDbGFzcyhjKCJodG1sIilbMF0uY2xhc3NOYW1lKTtyKG4sYS5oZWFkZXIpO2lmKGEuY2FudmFzKXt2YXIgdj0wO2UuZmluZCgiY2FudmFzIikuYWRkQmFjaygiY2FudmFzIikuZWFjaChmdW5jdGlvbigpe2ModGhpcykuYXR0cigiZGF0YS1wcmludHRoaXMiLHYrKyl9KX10KG4sZSxhKTthLmNhbnZhcyYmbi5maW5kKCJjYW52YXMiKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIGI9Yyh0aGlzKS5kYXRhKCJwcmludHRoaXMiKTtiPWMoJ1tkYXRhLXByaW50dGhpcz0iJytiKyciXScpO3RoaXMuZ2V0Q29udGV4dCgiMmQiKS5kcmF3SW1hZ2UoYlswXSwwLDApO2IucmVtb3ZlRGF0YSgicHJpbnR0aGlzIil9KTthLnJlbW92ZUlubGluZSYmKGlzRnVuY3Rpb24oYy5yZW1vdmVBdHRyKT9tLmZpbmQoImJvZHkgKiIpLnJlbW92ZUF0dHIoInN0eWxlIik6bS5maW5kKCJib2R5ICoiKS5hdHRyKCJzdHlsZSIsCiIiKSk7cihuLGEuZm9vdGVyKTtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Zy5oYXNDbGFzcygiTVNJRSIpPyh3aW5kb3cuZnJhbWVzLnByaW50SWZyYW1lLnRyaWdnZXIoImZvY3VzIiksbC5hcHBlbmQoIjxzY3JpcHQ+ICB3aW5kb3cucHJpbnQoKTsgXHgzYy9zY3JpcHQ+IikpOmRvY3VtZW50LnF1ZXJ5Q29tbWFuZFN1cHBvcnRlZCgicHJpbnQiKT9nWzBdLmNvbnRlbnRXaW5kb3cuZG9jdW1lbnQuZXhlY0NvbW1hbmQoInByaW50IiwhMSxudWxsKTooZ1swXS5jb250ZW50V2luZG93LnRyaWdnZXIoImZvY3VzIiksZ1swXS5jb250ZW50V2luZG93LnByaW50KCkpO2EuZGVidWd8fHNldFRpbWVvdXQoZnVuY3Rpb24oKXtnLnJlbW92ZSgpfSwxRTMpfSxhLnByaW50RGVsYXkpfSwzMzMpfTtjLmZuLnByaW50VGhpcy5kZWZhdWx0cz17ZGVidWc6ITEsaW1wb3J0Q1NTOiEwLGltcG9ydFN0eWxlOiExLHByaW50Q29udGFpbmVyOiEwLGxvYWRDU1M6IiIscGFnZVRpdGxlOiIiLHJlbW92ZUlubGluZTohMSwKcHJpbnREZWxheTozMzMsaGVhZGVyOm51bGwsZm9vdGVyOm51bGwsZm9ybVZhbHVlczohMCxjYW52YXM6ITEsYmFzZTohMSxkb2N0eXBlU3RyaW5nOiI8IURPQ1RZUEUgaHRtbD4iLHJlbW92ZVNjcmlwdHM6ITEsY29weVRhZ0NsYXNzZXM6ITF9fSkoalF1ZXJ5KTsKLyoqIC9qcy9iYXNlNjQuanMgKiovCnZhciBfX19kMmNfYmFzZTY0anNfY19vbj0iMjAyNS0wNS0yMyAxNzowNjowOCI7J3VzZSBzdHJpY3QnO3ZhciBfX19kMmNfYmFzZTY0anNfY19vbj0iMjAyNC0wNy0wOCAxMDozMDowNSI7InVzZSBzdHJpY3QiOwp2YXIgQmFzZTY0PXtfa2V5U3RyOiJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvPSIsX2I2NFRlc3Q6UmVnRXhwKCJeKD86W0EtWmEtejAtOSsvXXs0fSkqKD86W0EtWmEtejAtOSsvXXsyfT09fFtBLVphLXowLTkrL117M309KT8kIiksZW5jb2RlOmZ1bmN0aW9uKGEpe3ZhciBkPSIiLGM9MDtmb3IoYT1CYXNlNjQuX3V0ZjhfZW5jb2RlKGEpO2M8YS5sZW5ndGg7KXt2YXIgYj1hLmNoYXJDb2RlQXQoYysrKSxlPWEuY2hhckNvZGVBdChjKyspLGY9YS5jaGFyQ29kZUF0KGMrKyksZz1iPj4yO2I9KGImMyk8PDR8ZT4+NDt2YXIgaD0oZSYxNSk8PDJ8Zj4+NixrPWYmNjM7aXNOYU4oZSk\/aD1rPTY0OmlzTmFOKGYpJiYoaz02NCk7ZD1kK3RoaXMuX2tleVN0ci5jaGFyQXQoZykrdGhpcy5fa2V5U3RyLmNoYXJBdChiKSt0aGlzLl9rZXlTdHIuY2hhckF0KGgpK3RoaXMuX2tleVN0ci5jaGFyQXQoayl9cmV0dXJuIGR9LGRlY29kZTpmdW5jdGlvbihhKXt2YXIgZD0KIiIsYz0wO2ZvcihhPWEucmVwbGFjZSgvW15BLVphLXowLTlcK1wvPV0vZywiIik7YzxhLmxlbmd0aDspe3ZhciBiPXRoaXMuX2tleVN0ci5pbmRleE9mKGEuY2hhckF0KGMrKykpLGU9dGhpcy5fa2V5U3RyLmluZGV4T2YoYS5jaGFyQXQoYysrKSksZj10aGlzLl9rZXlTdHIuaW5kZXhPZihhLmNoYXJBdChjKyspKSxnPXRoaXMuX2tleVN0ci5pbmRleE9mKGEuY2hhckF0KGMrKykpO2I9Yjw8MnxlPj40O2U9KGUmMTUpPDw0fGY+PjI7dmFyIGg9KGYmMyk8PDZ8ZztkKz1TdHJpbmcuZnJvbUNoYXJDb2RlKGIpOzY0IT1mJiYoZCs9U3RyaW5nLmZyb21DaGFyQ29kZShlKSk7NjQhPWcmJihkKz1TdHJpbmcuZnJvbUNoYXJDb2RlKGgpKX1yZXR1cm4gQmFzZTY0Ll91dGY4X2RlY29kZShkKX0sX3V0ZjhfZW5jb2RlOmZ1bmN0aW9uKGEpe3ZhciBkPSIiO2E9YS5yZXBsYWNlKC9cclxuL2csIlxuIik7Zm9yKHZhciBjPTA7YzxhLmxlbmd0aDtjKyspe3ZhciBiPWEuY2hhckNvZGVBdChjKTsxMjg+CmI\/ZCs9U3RyaW5nLmZyb21DaGFyQ29kZShiKTooMTI3PGImJjIwNDg+Yj9kKz1TdHJpbmcuZnJvbUNoYXJDb2RlKGI+PjZ8MTkyKTooZCs9U3RyaW5nLmZyb21DaGFyQ29kZShiPj4xMnwyMjQpLGQrPVN0cmluZy5mcm9tQ2hhckNvZGUoYj4+NiY2M3wxMjgpKSxkKz1TdHJpbmcuZnJvbUNoYXJDb2RlKGImNjN8MTI4KSl9cmV0dXJuIGR9LF91dGY4X2RlY29kZTpmdW5jdGlvbihhKXtmb3IodmFyIGQ9IiIsYz0wLGIsZSxmO2M8YS5sZW5ndGg7KWI9YS5jaGFyQ29kZUF0KGMpLDEyOD5iPyhkKz1TdHJpbmcuZnJvbUNoYXJDb2RlKGIpLGMrKyk6MTkxPGImJjIyND5iPyhlPWEuY2hhckNvZGVBdChjKzEpLGQrPVN0cmluZy5mcm9tQ2hhckNvZGUoKGImMzEpPDw2fGUmNjMpLGMrPTIpOihlPWEuY2hhckNvZGVBdChjKzEpLGY9YS5jaGFyQ29kZUF0KGMrMiksZCs9U3RyaW5nLmZyb21DaGFyQ29kZSgoYiYxNSk8PDEyfChlJjYzKTw8NnxmJjYzKSxjKz0zKTtyZXR1cm4gZH0sd2hpdGVMaXN0OmZ1bmN0aW9uKCl7cmV0dXJuWyJ0cmFpbGVycyJdfSwKaXNCYXNlNjQ6ZnVuY3Rpb24oYSl7cmV0dXJuIEJhc2U2NC53aGl0ZUxpc3QoKS5pbmNsdWRlcyhhLnRvTG93ZXJDYXNlKCkpfHwidW5kZWZpbmVkIj09PXR5cGVvZiBhfHwiIj09PWF8fCIiPT09YS50cmltKCl8fDQ+PWEubGVuZ3RoPyExOkJhc2U2NC5lbmNvZGUoQmFzZTY0LmRlY29kZShhKSk9PWF9fTsKLyoqIC9qcy9GaXJld29yay5taW4uanMgKiovCi8qIEphdmFTY3JpcHQgRmlyZXdvcmtzIEFuaW1hdGlvbiBieSBBbmRlc0NvZGUgKGh0dHA6Ly9jb2RlY2FueW9uLm5ldC91c2VyL2FuZGVzY29kZS9wb3J0Zm9saW8pICovInVzZSBzdHJpY3QiO2Z1bmN0aW9uIENGaXJld29yayhuLHQsaSxyLHUpe2Z3VG90YWwrKzt0aGlzLm51bT1md1RvdGFsO3RoaXMuaHRtbENvbnRhaW5lcklkPW4udG9Mb3dlckNhc2UoKTt0aGlzLmh0bWxDb250YWluZXI9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQobik7dGhpcy5maXJlQ29sb3I9dDt0aGlzLnN0YXJ0WD1pO3RoaXMuc3RhcnRZPXI7dGhpcy5md1NjYWxlPXR5cGVvZiB1IT0idW5kZWZpbmVkIj91OjE7dGhpcy5TVkdjYW52YXM9bnVsbDt0aGlzLmZ3Q29udGFpbmVyPW51bGw7dGhpcy5hc2NlbmRpbmdGaXJlQmFsbD1udWxsO3RoaXMuc3BhcmtzPW51bGw7dGhpcy5mYXN0RXhwbG9zaW9uPW51bGw7dGhpcy5wYXJ0aWNsZXM9bnVsbDt0aGlzLnNoaW5lQ29sb3I9bnVsbDt0aGlzLnZlbFg9MDt0aGlzLnZlbFk9LTEwMDt0aGlzLmdyYXZpdHk9NDA7dGhpcy50aW1lQmVmb3JlRXhwbG9zaW9uPTE1MDA7dGhpcy5hc2NlbmRpbmdGaXJlQmFsbFJhZGl1cz0xNDt0aGlzLmZpcnN0RXhwbG9zaW9uUmFkaXVzPTQ1O3RoaXMubnVtRXhwbG9zaW9uUGFydGljbGVzPTIwMDt0aGlzLmV4cGxvc2lvblBhcnRpY2xlUmFkaXVzPTIuNTt0aGlzLmV4cGxvc2lvblZlbG9jaXR5PTE4MDt0aGlzLmV4cGxvc2lvbkRlY2VsZXJhdGlvbj0uOTY7dGhpcy5leHBsb3Npb25QYXJ0aWNsZXNNYXhMaWZlc3Bhbj0yZTM7dGhpcy5zaGluZVJhZGl1cz02MDt0aGlzLnNoaW5lRXhwYW5zaW9uVGltZT04MDA7dGhpcy5zaGluZUZhZGVPdXRUaW1lPTExMDA7dGhpcy51c2VBdWRpbz0hMTt0aGlzLmF1ZGlvVVJMPSJFeHBsb3Npb24ubXAzIjt0aGlzLnNlcGFyYXRpb249MTE4O3RoaXMuZndDZW50ZXI9MTMyfWZ1bmN0aW9uIEZpcmV3b3JrVGltZXIobix0LGkscix1LGYsZSxvKXt2YXIgcz10eXBlb2YgZiE9InVuZGVmaW5lZCI\/ZjohMSxoPXR5cGVvZiBlIT0idW5kZWZpbmVkIj9lOjEsYz10eXBlb2YgbyE9InVuZGVmaW5lZCI\/bzowO3NldFRpbWVvdXQoZnVuY3Rpb24oKXt2YXIgdT1uZXcgQ0ZpcmV3b3JrKG4sdCxpLHIsaCk7dS51c2VBdWRpbz1zO3UudmVsWD1jO3Uuc3RhcnQoKX0sdSl9dmFyIGZ3U1ZHbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIixmd1RvdGFsPTAsZndBY3RpdmVzPXt9LGV4cGxvc2lvblNvdW5kQ3JlYXRlZD0hMSxleHBsb3Npb25NUDM9bnVsbDtDRmlyZXdvcmsucHJvdG90eXBlLnN0YXJ0PWZ1bmN0aW9uKCl7ZnVuY3Rpb24gaCgpe3N8fChuLnNldFNWR3NjYWxlKG4uYXNjZW5kaW5nRmlyZUJhbGwsb1t0XVswXSxuLmZ3Q2VudGVyLG4uZndDZW50ZXIpLHNldFRpbWVvdXQoaCxvW3RdWzFdKSx0PXQ9PW8ubGVuZ3RoLTE\/MDp0KzEpfWZ1bmN0aW9uIGEoKXtzPSEwO24uZndDb250YWluZXIucmVtb3ZlQ2hpbGQobi5hc2NlbmRpbmdGaXJlQmFsbCk7Y2xlYXJJbnRlcnZhbChjKTtuLmV4cGxvc2lvbigpfWZ1bmN0aW9uIHYoKXtuLmZ3Q29udGFpbmVyLnJlbW92ZUNoaWxkKG4ucGFydGljbGVzKTtuLmZ3Q29udGFpbmVyLnJlbW92ZUNoaWxkKG4uc2hpbmVDb2xvcik7bi5TVkdjYW52YXMucmVtb3ZlQ2hpbGQobi5md0NvbnRhaW5lcik7ZndBY3RpdmVzW24uaHRtbENvbnRhaW5lcklkXT1NYXRoLm1heCgwLGZ3QWN0aXZlc1tuLmh0bWxDb250YWluZXJJZF0tMSk7ZndBY3RpdmVzW24uaHRtbENvbnRhaW5lcklkXT09MCYmbi5odG1sQ29udGFpbmVyLnJlbW92ZUNoaWxkKG4uU1ZHY2FudmFzKX12YXIgcixpLHUsZixlLGM7ZndBY3RpdmVzW3RoaXMuaHRtbENvbnRhaW5lcklkXT1md0FjdGl2ZXMuaGFzT3duUHJvcGVydHkodGhpcy5odG1sQ29udGFpbmVySWQpP2Z3QWN0aXZlc1t0aGlzLmh0bWxDb250YWluZXJJZF0rMToxO3RoaXMuc2VwYXJhdGlvbj1NYXRoLnJvdW5kKDEuNioodGhpcy5zaGluZVJhZGl1cyt0aGlzLmFzY2VuZGluZ0ZpcmVCYWxsUmFkaXVzKSk7dGhpcy5md0NlbnRlcj10aGlzLmFzY2VuZGluZ0ZpcmVCYWxsUmFkaXVzK3RoaXMuc2VwYXJhdGlvbjtyPXRoaXMuaHRtbENvbnRhaW5lci5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJmd1NWR2NhbnZhcyIpO3IubGVuZ3RoPjA\/dGhpcy5TVkdjYW52YXM9clswXToodGhpcy5TVkdjYW52YXM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKGZ3U1ZHbnMsInN2ZyIpLHRoaXMuU1ZHY2FudmFzLnNldEF0dHJpYnV0ZU5TKG51bGwsImNsYXNzIiwiZndTVkdjYW52YXMiKSx0aGlzLlNWR2NhbnZhcy5zZXRBdHRyaWJ1dGVOUyhudWxsLCJ3aWR0aCIsdGhpcy5odG1sQ29udGFpbmVyLm9mZnNldFdpZHRoKSx0aGlzLlNWR2NhbnZhcy5zZXRBdHRyaWJ1dGVOUyhudWxsLCJoZWlnaHQiLHRoaXMuaHRtbENvbnRhaW5lci5vZmZzZXRIZWlnaHQpLHRoaXMuU1ZHY2FudmFzLnNldEF0dHJpYnV0ZU5TKG51bGwsInN0eWxlIiwiZGlzcGxheTpibG9jazsgcG9zaXRpb246YWJzb2x1dGUiKSxpPWdldENvbXB1dGVkU3R5bGUodGhpcy5odG1sQ29udGFpbmVyLG51bGwpLnBvc2l0aW9uLnRvTG93ZXJDYXNlKCksaT09ImFic29sdXRlInx8aT09ImZpeGVkInx8aT09InJlbGF0aXZlIj8odGhpcy5TVkdjYW52YXMuc3R5bGUudG9wPSIwcHgiLHRoaXMuU1ZHY2FudmFzLnN0eWxlLmxlZnQ9IjBweCIpOih1PXRoaXMuaHRtbENvbnRhaW5lci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSx0aGlzLlNWR2NhbnZhcy5zdHlsZS50b3A9dS50b3ArInB4Iix0aGlzLlNWR2NhbnZhcy5zdHlsZS5sZWZ0PXUubGVmdCsicHgiKSx0aGlzLmh0bWxDb250YWluZXIuYXBwZW5kQ2hpbGQodGhpcy5TVkdjYW52YXMpKTt0aGlzLmZ3Q29udGFpbmVyPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyhmd1NWR25zLCJzdmciKTtmPSh0aGlzLnNlcGFyYXRpb24rdGhpcy5hc2NlbmRpbmdGaXJlQmFsbFJhZGl1cykqdGhpcy5md1NjYWxlO3RoaXMuZndDb250YWluZXIuc2V0QXR0cmlidXRlTlMobnVsbCwieCIsdGhpcy5zdGFydFgtZik7dGhpcy5md0NvbnRhaW5lci5zZXRBdHRyaWJ1dGVOUyhudWxsLCJ5Iix0aGlzLnN0YXJ0WS1mKTt0aGlzLmZ3Q29udGFpbmVyLnNldEF0dHJpYnV0ZU5TKG51bGwsIndpZHRoIix0aGlzLnNlcGFyYXRpb24qMip0aGlzLmZ3U2NhbGUpO3RoaXMuZndDb250YWluZXIuc2V0QXR0cmlidXRlTlMobnVsbCwiaGVpZ2h0Iix0aGlzLnNlcGFyYXRpb24qMip0aGlzLmZ3U2NhbGUpO2U9dGhpcy5zZXBhcmF0aW9uKjI7dGhpcy5md0NvbnRhaW5lci5zZXRBdHRyaWJ1dGVOUyhudWxsLCJ2aWV3Qm94IiwiMCAwICIrZSsiICIrZSk7dGhpcy5TVkdjYW52YXMuYXBwZW5kQ2hpbGQodGhpcy5md0NvbnRhaW5lcik7dGhpcy51c2VBdWRpbyYmIWV4cGxvc2lvblNvdW5kQ3JlYXRlZCYmKGV4cGxvc2lvbk1QMz1uZXcgQXVkaW8odGhpcy5hdWRpb1VSTCksZXhwbG9zaW9uU291bmRDcmVhdGVkPSEwKTt0aGlzLmNyZWF0ZUdyYWRpZW50KHRoaXMuZndDb250YWluZXIsImJpZ0ZpcmVHcmFkIit0aGlzLm51bSxbe29mZnNldDoiMjAlIixzdHlsZToic3RvcC1jb2xvcjojZmZmO3N0b3Atb3BhY2l0eToxIn0se29mZnNldDoiNDUlIixzdHlsZToic3RvcC1jb2xvcjojIit0aGlzLmZpcmVDb2xvcisiO3N0b3Atb3BhY2l0eTowLjYifSx7b2Zmc2V0OiIxMDAlIixzdHlsZToic3RvcC1jb2xvcjojIit0aGlzLmZpcmVDb2xvcisiO3N0b3Atb3BhY2l0eTowIn1dKTt0aGlzLmNyZWF0ZUZpbHRlcih0aGlzLmZ3Q29udGFpbmVyLCJzcGFya2xlc0dsb3ciK3RoaXMubnVtLCJGRkZGRkYiLDIpO3RoaXMuY3JlYXRlR3JhZGllbnQodGhpcy5md0NvbnRhaW5lciwiZXhwbG9zaW9uR3JhZCIrdGhpcy5udW0sW3tvZmZzZXQ6IjAlIixzdHlsZToic3RvcC1jb2xvcjojZmZmO3N0b3Atb3BhY2l0eToxIn0se29mZnNldDoiMTAwJSIsc3R5bGU6InN0b3AtY29sb3I6IyIrdGhpcy5maXJlQ29sb3IrIjtzdG9wLW9wYWNpdHk6MCJ9XSk7dGhpcy5jcmVhdGVGaWx0ZXIodGhpcy5md0NvbnRhaW5lciwicGFydGljbGVzR2xvdyIrdGhpcy5udW0sdGhpcy5maXJlQ29sb3IsNCk7dGhpcy5jcmVhdGVHcmFkaWVudCh0aGlzLmZ3Q29udGFpbmVyLCJiYWNrbGlnaHRHcmFkIit0aGlzLm51bSxbe29mZnNldDoiMjAlIixzdHlsZToic3RvcC1jb2xvcjojIit0aGlzLmZpcmVDb2xvcisiO3N0b3Atb3BhY2l0eTowLjMifSx7b2Zmc2V0OiIxMDAlIixzdHlsZToic3RvcC1jb2xvcjojIit0aGlzLmZpcmVDb2xvcisiO3N0b3Atb3BhY2l0eTowIn1dKTt0aGlzLmFzY2VuZGluZ0ZpcmVCYWxsPXRoaXMuY3JlYXRlU1ZHKCJjaXJjbGUiLCJiaWdGaXJlIix7Y3g6dGhpcy5md0NlbnRlcixjeTp0aGlzLmZ3Q2VudGVyLHI6dGhpcy5hc2NlbmRpbmdGaXJlQmFsbFJhZGl1cyxzdHJva2U6Im5vbmUiLGZpbGw6InVybCgjYmlnRmlyZUdyYWQiK3RoaXMubnVtKyIpIn0pO3RoaXMuZndDb250YWluZXIuYXBwZW5kQ2hpbGQodGhpcy5hc2NlbmRpbmdGaXJlQmFsbCk7dmFyIGw9dGhpcy50aW1lQmVmb3JlRXhwbG9zaW9uK01hdGgubWF4KHRoaXMuZXhwbG9zaW9uUGFydGljbGVzTWF4TGlmZXNwYW4sdGhpcy5zaGluZUV4cGFuc2lvblRpbWUrdGhpcy5zaGluZUZhZGVPdXRUaW1lKSsxMDAseT10aGlzLnByb2plY3RpbGVUd2Vlbih0aGlzLmZ3Q29udGFpbmVyLGwsdix0aGlzLmdyYXZpdHksdGhpcy52ZWxYLHRoaXMudmVsWSksbj10aGlzLHM9ITEsbz1bWy44NSw4NV0sWy42LDMwXSxbLjg1LDEyMF0sWzEsMzBdXSx0PTA7aCgpO3RoaXMuc3BhcmtzPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyhmd1NWR25zLCJzdmciKTt0aGlzLnNwYXJrcy5zZXRBdHRyaWJ1dGVOUyhudWxsLCJmaWx0ZXIiLCJ1cmwoI3NwYXJrbGVzR2xvdyIrdGhpcy5udW0rIikiKTt0aGlzLnNwYXJrcy5zZXRBdHRyaWJ1dGVOUyhudWxsLCJ4Iix0aGlzLnNlcGFyYXRpb24pO3RoaXMuc3BhcmtzLnNldEF0dHJpYnV0ZU5TKG51bGwsInkiLHRoaXMuc2VwYXJhdGlvbik7dGhpcy5md0NvbnRhaW5lci5hcHBlbmRDaGlsZCh0aGlzLnNwYXJrcyk7Yz1zZXRJbnRlcnZhbChmdW5jdGlvbigpe0NGaXJld29yay5wcm90b3R5cGUuYWRkU3BhcmsuY2FsbChuKX0sNSk7c2V0VGltZW91dChhLHRoaXMudGltZUJlZm9yZUV4cGxvc2lvbil9O0NGaXJld29yay5wcm90b3R5cGUuY3JlYXRlU1ZHPWZ1bmN0aW9uKG4sdCxpKXt2YXIgcj1kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoZndTVkducyxuKSx1O3QhPW51bGwmJnIuc2V0QXR0cmlidXRlTlMobnVsbCwiaWQiLHQpO2Zvcih1IGluIGkpci5zZXRBdHRyaWJ1dGVOUyhudWxsLHUsaVt1XSk7cmV0dXJuIHJ9O0NGaXJld29yay5wcm90b3R5cGUuY3JlYXRlR3JhZGllbnQ9ZnVuY3Rpb24obix0LGkpe2Zvcih2YXIgZSxyLHUsbz10aGlzLmNyZWF0ZVNWRygicmFkaWFsR3JhZGllbnQiLHQse2N4OiI1MCUiLGN5OiI1MCUiLHI6IjUwJSIsZng6IjUwJSIsZnk6IjUwJSJ9KSxmPTA7ZjxpLmxlbmd0aDtmKyspe2U9aVtmXTtyPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyhmd1NWR25zLCJzdG9wIik7Zm9yKHUgaW4gZSlyLmhhc0F0dHJpYnV0ZSh1KXx8ci5zZXRBdHRyaWJ1dGUodSxlW3VdKTtvLmFwcGVuZENoaWxkKHIpfXRoaXMuaW5zZXJ0RGVmKG4sbyl9O0NGaXJld29yay5wcm90b3R5cGUuY3JlYXRlRmlsdGVyPWZ1bmN0aW9uKG4sdCxpLHIpe3ZhciBmPXBhcnNlSW50KGksMTYpLG89KGY+PjE2JjI1NSkvMjU1LHM9KGY+PjgmMjU1KS8yNTUsaD0oZiYyNTUpLzI1NSx1PXRoaXMuY3JlYXRlU1ZHKCJmaWx0ZXIiLHQse30pLGw9dGhpcy5jcmVhdGVTVkcoImZlQ29sb3JNYXRyaXgiLG51bGwse3R5cGU6Im1hdHJpeCIsdmFsdWVzOiIwIDAgMCAiK28rIiAiK28rIiAgMCAwIDAgIitzKyIgIitzKyIgIDAgMCAwICIraCsiICIraCsiICAwIDAgMCAxIDAifSksYzt1LmFwcGVuZENoaWxkKGwpO2M9dGhpcy5jcmVhdGVTVkcoImZlR2F1c3NpYW5CbHVyIixudWxsLHtzdGREZXZpYXRpb246cixyZXN1bHQ6ImNvbG9yZWRCbHVyIn0pO3UuYXBwZW5kQ2hpbGQoYyk7dmFyIGU9dGhpcy5jcmVhdGVTVkcoImZlTWVyZ2UiLG51bGwse30pLGE9dGhpcy5jcmVhdGVTVkcoImZlTWVyZ2VOb2RlIixudWxsLHsiaW4iOiJjb2xvcmVkQmx1ciJ9KSx2PXRoaXMuY3JlYXRlU1ZHKCJmZU1lcmdlTm9kZSIsbnVsbCx7ImluIjoiU291cmNlR3JhcGhpYyJ9KTtlLmFwcGVuZENoaWxkKGEpO2UuYXBwZW5kQ2hpbGQodik7dS5hcHBlbmRDaGlsZChlKTt0aGlzLmluc2VydERlZihuLHUpfTtDRmlyZXdvcmsucHJvdG90eXBlLmluc2VydERlZj1mdW5jdGlvbihuLHQpe3ZhciBpPW4ucXVlcnlTZWxlY3RvcigiZGVmcyIpfHxuLmluc2VydEJlZm9yZShkb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoZndTVkducywiZGVmcyIpLG4uZmlyc3RDaGlsZCk7aS5hcHBlbmRDaGlsZCh0KX07Q0ZpcmV3b3JrLnByb3RvdHlwZS5hZGRTcGFyaz1mdW5jdGlvbigpe2Z1bmN0aW9uIG8oKXtuLnJlbW92ZUNoaWxkKHQpfXZhciBpPTQwMCtNYXRoLnJhbmRvbSgpKjgwMCxyPXRoaXMudmVsWCtNYXRoLnJhbmRvbSgpKjIwLTEwLHU9TWF0aC5yYW5kb20oKSo4MCs0MCxmPXRoaXMuYXNjZW5kaW5nRmlyZUJhbGxSYWRpdXMrTWF0aC5yYW5kb20oKSozLTEuNSxlPXRoaXMuYXNjZW5kaW5nRmlyZUJhbGxSYWRpdXMrTWF0aC5yYW5kb20oKSo0LG49dGhpcy5zcGFya3MsdD1DRmlyZXdvcmsucHJvdG90eXBlLmNyZWF0ZUNpcmNsZS5jYWxsKHRoaXMsbixmLGUsMSwiRkZFRUI4Iik7dGhpcy5wcm9qZWN0aWxlVHdlZW4odCxpLG8sMCwtcix1LDEsMCl9O0NGaXJld29yay5wcm90b3R5cGUuZXhwbG9zaW9uPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZih0KXsxNTx0JiZ0PDQwJiZuLnNldFNWR3NjYWxlKG4uZmFzdEV4cGxvc2lvbiwxLjY3LG4uZndDZW50ZXIsbi5md0NlbnRlcik7NDA8PXQmJnQ8NjUmJm4uc2V0U1ZHc2NhbGUobi5mYXN0RXhwbG9zaW9uLDEsbi5md0NlbnRlcixuLmZ3Q2VudGVyKX1mdW5jdGlvbiBhKHQpe3ZhciBpPU1hdGgubWluKHQvbi5zaGluZUV4cGFuc2lvblRpbWUsMSkscj0uOSsuNyppKigyLWkpO24uc2hpbmVDb2xvci5zZXRBdHRyaWJ1dGUoInIiLHIqbi5zaGluZVJhZGl1cyl9ZnVuY3Rpb24gdigpe3ZhciB0PW4uYW5pbWF0aW9uKG4uc2hpbmVGYWRlT3V0VGltZSx5LG51bGwpfWZ1bmN0aW9uIHkodCl7dmFyIGk9TWF0aC5taW4odC9uLnNoaW5lRmFkZU91dFRpbWUsMSkscj0xLWkqaTtuLnNoaW5lQ29sb3Iuc2V0QXR0cmlidXRlKCJmaWxsLW9wYWNpdHkiLHIpfXZhciBuPXRoaXMsdSxlLHQsbDtmb3IodGhpcy5zaGluZUNvbG9yPXRoaXMuY3JlYXRlU1ZHKCJjaXJjbGUiLCJzaGluZUNvbG9yIix7Y3g6dGhpcy5md0NlbnRlcixjeTp0aGlzLmZ3Q2VudGVyLHI6dGhpcy5zaGluZVJhZGl1cyxzdHJva2U6Im5vbmUiLGZpbGw6InVybCgjYmFja2xpZ2h0R3JhZCIrdGhpcy5udW0rIikifSksdGhpcy5md0NvbnRhaW5lci5hcHBlbmRDaGlsZCh0aGlzLnNoaW5lQ29sb3IpLHRoaXMuZmFzdEV4cGxvc2lvbj10aGlzLmNyZWF0ZVNWRygiY2lyY2xlIiwiZXhwbG9zaW9uIix7Y3g6dGhpcy5md0NlbnRlcixjeTp0aGlzLmZ3Q2VudGVyLHI6dGhpcy5maXJzdEV4cGxvc2lvblJhZGl1cyxzdHJva2U6Im5vbmUiLGZpbGw6InVybCgjZXhwbG9zaW9uR3JhZCIrdGhpcy5udW0rIikifSksdGhpcy5md0NvbnRhaW5lci5hcHBlbmRDaGlsZCh0aGlzLmZhc3RFeHBsb3Npb24pLHU9dGhpcy5hbmltYXRpb24oNjUsZixmdW5jdGlvbigpe24uZndDb250YWluZXIucmVtb3ZlQ2hpbGQobi5mYXN0RXhwbG9zaW9uKX0pLHRoaXMucGFydGljbGVzPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyhmd1NWR25zLCJzdmciKSx0aGlzLnBhcnRpY2xlcy5zZXRBdHRyaWJ1dGVOUyhudWxsLCJmaWx0ZXIiLCJ1cmwoI3BhcnRpY2xlc0dsb3ciK3RoaXMubnVtKyIpIiksZT10aGlzLnBhcnRpY2xlcyx0PTA7dDx0aGlzLm51bUV4cGxvc2lvblBhcnRpY2xlczt0KyspdmFyIGk9TWF0aC5wb3coTWF0aC5yYW5kb20oKSwuMykqdGhpcy5leHBsb3Npb25WZWxvY2l0eSxyPU1hdGgucmFuZG9tKCkqMipNYXRoLlBJLG89aSpNYXRoLnNpbihyKSxzPWkqTWF0aC5jb3MociksaD01MCtNYXRoLnJhbmRvbSgpKnRoaXMuZXhwbG9zaW9uUGFydGljbGVzTWF4TGlmZXNwYW4sYz10aGlzLmNyZWF0ZUNpcmNsZSh0aGlzLnBhcnRpY2xlcyx0aGlzLmZ3Q2VudGVyLHRoaXMuZndDZW50ZXIsdGhpcy5leHBsb3Npb25QYXJ0aWNsZVJhZGl1cywiRkZGRkZGIix0aGlzLmZpcmVDb2xvcikscD10aGlzLmV4cGxvc2lvblBhcnRpY2xlVHdlZW4oYyxoLHRoaXMuZXhwbG9zaW9uUGFydGljbGVSYWRpdXMsdGhpcy5leHBsb3Npb25EZWNlbGVyYXRpb24sbyxzKTt0aGlzLmZ3Q29udGFpbmVyLmFwcGVuZENoaWxkKHRoaXMucGFydGljbGVzKTtsPXRoaXMuYW5pbWF0aW9uKHRoaXMuc2hpbmVFeHBhbnNpb25UaW1lLGEsdik7dGhpcy51c2VBdWRpbyYmKGV4cGxvc2lvbk1QMy5jdXJyZW50VGltZT0wLGV4cGxvc2lvbk1QMy5wbGF5KCkpfTtDRmlyZXdvcmsucHJvdG90eXBlLmNyZWF0ZUNpcmNsZT1mdW5jdGlvbihuLHQsaSxyLHUsZil7Zj10eXBlb2YgZiE9InVuZGVmaW5lZCI\/IiMiK2Y6Im5vbmUiO3ZhciBlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyhmd1NWR25zLCJjaXJjbGUiKTtyZXR1cm4gZS5zZXRBdHRyaWJ1dGVOUyhudWxsLCJjeCIsdCksZS5zZXRBdHRyaWJ1dGVOUyhudWxsLCJjeSIsaSksZS5zZXRBdHRyaWJ1dGVOUyhudWxsLCJyIixyKSxlLnNldEF0dHJpYnV0ZU5TKG51bGwsImZpbGwiLCIjIit1KSxlLnNldEF0dHJpYnV0ZU5TKG51bGwsInN0cm9rZSIsZiksZiE9Im5vbmUiJiZlLnNldEF0dHJpYnV0ZU5TKG51bGwsInN0cm9rZS13aWR0aCIsLjUpLG4uYXBwZW5kQ2hpbGQoZSksZX07Q0ZpcmV3b3JrLnByb3RvdHlwZS5wcm9qZWN0aWxlVHdlZW49ZnVuY3Rpb24obix0LGkscix1LGYsZSxvKXtmdW5jdGlvbiBwKGkpe3ZhciBvLHAsdyx5O2w9aS1hO2E9aTtvPWwvMWUzO2YrPXIqbztwPXM\/ImN4IjoieCI7dz1zPyJjeSI6InkiO2guaW5jcmVhc2VQYXJhbWV0ZXIobixwLHUqbyk7aC5pbmNyZWFzZVBhcmFtZXRlcihuLHcsZipvKTtjJiYoeT1lK3YqKGkvdCkscz9uLnNldEF0dHJpYnV0ZSgiZmlsbC1vcGFjaXR5Iix5KTpuLnN0eWxlLm9wYWNpdHk9eSl9dmFyIGgseTtlPXR5cGVvZiBlIT0idW5kZWZpbmVkIj9lOjE7bz10eXBlb2YgbyE9InVuZGVmaW5lZCI\/bzoxO3ZhciBjPWUhPW8sdj1vLWUsbD0wLGE9MCxzPW4ubm9kZU5hbWUhPSJzdmciO2MmJihzP24uc2V0QXR0cmlidXRlKCJmaWxsLW9wYWNpdHkiLGUrIiIpOm4uc3R5bGUub3BhY2l0eT1lKTtoPXRoaXM7eT10aGlzLmFuaW1hdGlvbih0LHAsaSl9O0NGaXJld29yay5wcm90b3R5cGUuZXhwbG9zaW9uUGFydGljbGVUd2Vlbj1mdW5jdGlvbihuLHQsaSxyLHUsZil7ZnVuY3Rpb24gaChoKXt2YXIgbCxhLGM7ZT1oLXM7cz1oO2w9TWF0aC5wb3cocixlLzE3KTt1Kj1sO2YqPWw7YT1lLzFlMztvLmluY3JlYXNlUGFyYW1ldGVyKG4sImN4Iix1KmEpO28uaW5jcmVhc2VQYXJhbWV0ZXIobiwiY3kiLGYqYSk7Yz0xLS45KihoL3QpO2M9TWF0aC5tYXgoYywuMDEpO24uc2V0QXR0cmlidXRlKCJyIixjKmkpO24uc2V0QXR0cmlidXRlKCJzdHJva2Utd2lkdGgiLC41KmMpfXZhciBvPXRoaXMsZT0wLHM9MCxjPXRoaXMuYW5pbWF0aW9uKHQsaCxudWxsKX07Q0ZpcmV3b3JrLnByb3RvdHlwZS5hbmltYXRpb249ZnVuY3Rpb24obix0LGkpe2Z1bmN0aW9uIHUoKXt2YXIgZT0obmV3IERhdGUpLmdldFRpbWUoKSxmO3I9PT1udWxsJiYocj1lKTtmPWUtcjt0KGYpO2Y8bj9zZXRUaW1lb3V0KHUsMTUpOmkhPW51bGwmJmkoKX1pPXR5cGVvZiBpIT0idW5kZWZpbmVkIj9pOm51bGw7dmFyIHI9bnVsbDt1KCl9O0NGaXJld29yay5wcm90b3R5cGUuaW5jcmVhc2VQYXJhbWV0ZXI9ZnVuY3Rpb24obix0LGkpe24uc2V0QXR0cmlidXRlKHQscGFyc2VGbG9hdChuLmdldEF0dHJpYnV0ZSh0KSkraSl9O0NGaXJld29yay5wcm90b3R5cGUuc2V0U1ZHc2NhbGU9ZnVuY3Rpb24obix0LGkscil7bi5zZXRBdHRyaWJ1dGUoInRyYW5zZm9ybSIsInNjYWxlKCIrdCsiKSIpO24uc2V0QXR0cmlidXRlKCJjeCIsaSsoMS10KSppL3QpO24uc2V0QXR0cmlidXRlKCJjeSIscisoMS10KSpyL3QpfTsvKkVPRiovOwovKiogL2pzL3ZhbmlsbGFqcy9pbWFzay5taW4uanMgKiovCiFmdW5jdGlvbih0LGUpeyJvYmplY3QiPT10eXBlb2YgZXhwb3J0cyYmInVuZGVmaW5lZCIhPXR5cGVvZiBtb2R1bGU\/ZShleHBvcnRzKToiZnVuY3Rpb24iPT10eXBlb2YgZGVmaW5lJiZkZWZpbmUuYW1kP2RlZmluZShbImV4cG9ydHMiXSxlKTplKCh0PSJ1bmRlZmluZWQiIT10eXBlb2YgZ2xvYmFsVGhpcz9nbG9iYWxUaGlzOnR8fHNlbGYpLklNYXNrPXt9KX0odGhpcywoZnVuY3Rpb24odCl7InVzZSBzdHJpY3QiO3ZhciBlPSJ1bmRlZmluZWQiIT10eXBlb2YgZ2xvYmFsVGhpcz9nbG9iYWxUaGlzOiJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93P3dpbmRvdzoidW5kZWZpbmVkIiE9dHlwZW9mIGdsb2JhbD9nbG9iYWw6InVuZGVmaW5lZCIhPXR5cGVvZiBzZWxmP3NlbGY6e30sbj1mdW5jdGlvbih0KXtyZXR1cm4gdCYmdC5NYXRoPT1NYXRoJiZ0fSxpPW4oIm9iamVjdCI9PXR5cGVvZiBnbG9iYWxUaGlzJiZnbG9iYWxUaGlzKXx8bigib2JqZWN0Ij09dHlwZW9mIHdpbmRvdyYmd2luZG93KXx8bigib2JqZWN0Ij09dHlwZW9mIHNlbGYmJnNlbGYpfHxuKCJvYmplY3QiPT10eXBlb2YgZSYmZSl8fGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KCl8fEZ1bmN0aW9uKCJyZXR1cm4gdGhpcyIpKCkscj17fSx1PWZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4hIXQoKX1jYXRjaCh0KXtyZXR1cm4hMH19LHM9IXUoKGZ1bmN0aW9uKCl7cmV0dXJuIDchPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7fSwxLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gN319KVsxXX0pKSxhPSF1KChmdW5jdGlvbigpe3ZhciB0PWZ1bmN0aW9uKCl7fS5iaW5kKCk7cmV0dXJuImZ1bmN0aW9uIiE9dHlwZW9mIHR8fHQuaGFzT3duUHJvcGVydHkoInByb3RvdHlwZSIpfSkpLG89YSxsPUZ1bmN0aW9uLnByb3RvdHlwZS5jYWxsLGg9bz9sLmJpbmQobCk6ZnVuY3Rpb24oKXtyZXR1cm4gbC5hcHBseShsLGFyZ3VtZW50cyl9LGM9e30sZj17fS5wcm9wZXJ0eUlzRW51bWVyYWJsZSxwPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IsZD1wJiYhZi5jYWxsKHsxOjJ9LDEpO2MuZj1kP2Z1bmN0aW9uKHQpe3ZhciBlPXAodGhpcyx0KTtyZXR1cm4hIWUmJmUuZW51bWVyYWJsZX06Zjt2YXIgdixnLGs9ZnVuY3Rpb24odCxlKXtyZXR1cm57ZW51bWVyYWJsZTohKDEmdCksY29uZmlndXJhYmxlOiEoMiZ0KSx3cml0YWJsZTohKDQmdCksdmFsdWU6ZX19LHk9YSxtPUZ1bmN0aW9uLnByb3RvdHlwZSxiPW0uYmluZCxfPW0uY2FsbCxBPXkmJmIuYmluZChfLF8pLEM9eT9mdW5jdGlvbih0KXtyZXR1cm4gdCYmQSh0KX06ZnVuY3Rpb24odCl7cmV0dXJuIHQmJmZ1bmN0aW9uKCl7cmV0dXJuIF8uYXBwbHkodCxhcmd1bWVudHMpfX0sRT1DLEY9RSh7fS50b1N0cmluZyksUz1FKCIiLnNsaWNlKSx3PWZ1bmN0aW9uKHQpe3JldHVybiBTKEYodCksOCwtMSl9LEI9QyxEPXUseD13LE09aS5PYmplY3QsTz1CKCIiLnNwbGl0KSxQPUQoKGZ1bmN0aW9uKCl7cmV0dXJuIU0oInoiKS5wcm9wZXJ0eUlzRW51bWVyYWJsZSgwKX0pKT9mdW5jdGlvbih0KXtyZXR1cm4iU3RyaW5nIj09eCh0KT9PKHQsIiIpOk0odCl9Ok0sVD1pLlR5cGVFcnJvcixJPWZ1bmN0aW9uKHQpe2lmKG51bGw9PXQpdGhyb3cgVCgiQ2FuJ3QgY2FsbCBtZXRob2Qgb24gIit0KTtyZXR1cm4gdH0saj1QLFI9SSxWPWZ1bmN0aW9uKHQpe3JldHVybiBqKFIodCkpfSxMPWZ1bmN0aW9uKHQpe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiB0fSxOPUwsVT1mdW5jdGlvbih0KXtyZXR1cm4ib2JqZWN0Ij09dHlwZW9mIHQ\/bnVsbCE9PXQ6Tih0KX0sej1pLHE9TCxIPWZ1bmN0aW9uKHQpe3JldHVybiBxKHQpP3Q6dm9pZCAwfSxZPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg8Mj9IKHpbdF0pOnpbdF0mJnpbdF1bZV19LFo9Qyh7fS5pc1Byb3RvdHlwZU9mKSxHPVkoIm5hdmlnYXRvciIsInVzZXJBZ2VudCIpfHwiIixLPWksJD1HLFc9Sy5wcm9jZXNzLFg9Sy5EZW5vLEo9VyYmVy52ZXJzaW9uc3x8WCYmWC52ZXJzaW9uLFE9SiYmSi52ODtRJiYoZz0odj1RLnNwbGl0KCIuIikpWzBdPjAmJnZbMF08ND8xOisodlswXSt2WzFdKSksIWcmJiQmJighKHY9JC5tYXRjaCgvRWRnZVwvKFxkKykvKSl8fHZbMV0+PTc0KSYmKHY9JC5tYXRjaCgvQ2hyb21lXC8oXGQrKS8pKSYmKGc9K3ZbMV0pO3ZhciB0dD1nLGV0PXUsbnQ9ISFPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzJiYhZXQoKGZ1bmN0aW9uKCl7dmFyIHQ9U3ltYm9sKCk7cmV0dXJuIVN0cmluZyh0KXx8IShPYmplY3QodClpbnN0YW5jZW9mIFN5bWJvbCl8fCFTeW1ib2wuc2hhbSYmdHQmJnR0PDQxfSkpLGl0PW50JiYhU3ltYm9sLnNoYW0mJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yLHJ0PVksdXQ9TCxzdD1aLGF0PWl0LG90PWkuT2JqZWN0LGx0PWF0P2Z1bmN0aW9uKHQpe3JldHVybiJzeW1ib2wiPT10eXBlb2YgdH06ZnVuY3Rpb24odCl7dmFyIGU9cnQoIlN5bWJvbCIpO3JldHVybiB1dChlKSYmc3QoZS5wcm90b3R5cGUsb3QodCkpfSxodD1pLlN0cmluZyxjdD1MLGZ0PWZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gaHQodCl9Y2F0Y2godCl7cmV0dXJuIk9iamVjdCJ9fSxwdD1pLlR5cGVFcnJvcixkdD1mdW5jdGlvbih0KXtpZihjdCh0KSlyZXR1cm4gdDt0aHJvdyBwdChmdCh0KSsiIGlzIG5vdCBhIGZ1bmN0aW9uIil9LHZ0PWgsZ3Q9TCxrdD1VLHl0PWkuVHlwZUVycm9yLG10PXtleHBvcnRzOnt9fSxidD1pLF90PU9iamVjdC5kZWZpbmVQcm9wZXJ0eSxBdD1mdW5jdGlvbih0LGUpe3RyeXtfdChidCx0LHt2YWx1ZTplLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pfWNhdGNoKG4pe2J0W3RdPWV9cmV0dXJuIGV9LEN0PUF0LEV0PSJfX2NvcmUtanNfc2hhcmVkX18iLEZ0PWlbRXRdfHxDdChFdCx7fSksU3Q9RnQ7KG10LmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtyZXR1cm4gU3RbdF18fChTdFt0XT12b2lkIDAhPT1lP2U6e30pfSkoInZlcnNpb25zIixbXSkucHVzaCh7dmVyc2lvbjoiMy4yMS4wIixtb2RlOiJnbG9iYWwiLGNvcHlyaWdodDoiqSAyMDE0LTIwMjIgRGVuaXMgUHVzaGthcmV2ICh6bG9pcm9jay5ydSkiLGxpY2Vuc2U6Imh0dHBzOi8vZ2l0aHViLmNvbS96bG9pcm9jay9jb3JlLWpzL2Jsb2IvdjMuMjEuMC9MSUNFTlNFIixzb3VyY2U6Imh0dHBzOi8vZ2l0aHViLmNvbS96bG9pcm9jay9jb3JlLWpzIn0pO3ZhciB3dD1JLEJ0PWkuT2JqZWN0LER0PWZ1bmN0aW9uKHQpe3JldHVybiBCdCh3dCh0KSl9LHh0PUR0LE10PUMoe30uaGFzT3duUHJvcGVydHkpLE90PU9iamVjdC5oYXNPd258fGZ1bmN0aW9uKHQsZSl7cmV0dXJuIE10KHh0KHQpLGUpfSxQdD1DLFR0PTAsSXQ9TWF0aC5yYW5kb20oKSxqdD1QdCgxLi50b1N0cmluZyksUnQ9ZnVuY3Rpb24odCl7cmV0dXJuIlN5bWJvbCgiKyh2b2lkIDA9PT10PyIiOnQpKyIpXyIranQoKytUdCtJdCwzNil9LFZ0PWksTHQ9bXQuZXhwb3J0cyxOdD1PdCxVdD1SdCx6dD1udCxxdD1pdCxIdD1MdCgid2tzIiksWXQ9VnQuU3ltYm9sLFp0PVl0JiZZdC5mb3IsR3Q9cXQ\/WXQ6WXQmJll0LndpdGhvdXRTZXR0ZXJ8fFV0LEt0PWZ1bmN0aW9uKHQpe2lmKCFOdChIdCx0KXx8IXp0JiYic3RyaW5nIiE9dHlwZW9mIEh0W3RdKXt2YXIgZT0iU3ltYm9sLiIrdDt6dCYmTnQoWXQsdCk\/SHRbdF09WXRbdF06SHRbdF09cXQmJlp0P1p0KGUpOkd0KGUpfXJldHVybiBIdFt0XX0sJHQ9aCxXdD1VLFh0PWx0LEp0PWZ1bmN0aW9uKHQsZSl7dmFyIG49dFtlXTtyZXR1cm4gbnVsbD09bj92b2lkIDA6ZHQobil9LFF0PWZ1bmN0aW9uKHQsZSl7dmFyIG4saTtpZigic3RyaW5nIj09PWUmJmd0KG49dC50b1N0cmluZykmJiFrdChpPXZ0KG4sdCkpKXJldHVybiBpO2lmKGd0KG49dC52YWx1ZU9mKSYmIWt0KGk9dnQobix0KSkpcmV0dXJuIGk7aWYoInN0cmluZyIhPT1lJiZndChuPXQudG9TdHJpbmcpJiYha3QoaT12dChuLHQpKSlyZXR1cm4gaTt0aHJvdyB5dCgiQ2FuJ3QgY29udmVydCBvYmplY3QgdG8gcHJpbWl0aXZlIHZhbHVlIil9LHRlPUt0LGVlPWkuVHlwZUVycm9yLG5lPXRlKCJ0b1ByaW1pdGl2ZSIpLGllPWZ1bmN0aW9uKHQsZSl7aWYoIVd0KHQpfHxYdCh0KSlyZXR1cm4gdDt2YXIgbixpPUp0KHQsbmUpO2lmKGkpe2lmKHZvaWQgMD09PWUmJihlPSJkZWZhdWx0Iiksbj0kdChpLHQsZSksIVd0KG4pfHxYdChuKSlyZXR1cm4gbjt0aHJvdyBlZSgiQ2FuJ3QgY29udmVydCBvYmplY3QgdG8gcHJpbWl0aXZlIHZhbHVlIil9cmV0dXJuIHZvaWQgMD09PWUmJihlPSJudW1iZXIiKSxRdCh0LGUpfSxyZT1sdCx1ZT1mdW5jdGlvbih0KXt2YXIgZT1pZSh0LCJzdHJpbmciKTtyZXR1cm4gcmUoZSk\/ZTplKyIifSxzZT1VLGFlPWkuZG9jdW1lbnQsb2U9c2UoYWUpJiZzZShhZS5jcmVhdGVFbGVtZW50KSxsZT1mdW5jdGlvbih0KXtyZXR1cm4gb2U\/YWUuY3JlYXRlRWxlbWVudCh0KTp7fX0saGU9IXMmJiF1KChmdW5jdGlvbigpe3JldHVybiA3IT1PYmplY3QuZGVmaW5lUHJvcGVydHkobGUoImRpdiIpLCJhIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIDd9fSkuYX0pKSxjZT1zLGZlPWgscGU9YyxkZT1rLHZlPVYsZ2U9dWUsa2U9T3QseWU9aGUsbWU9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjtyLmY9Y2U\/bWU6ZnVuY3Rpb24odCxlKXtpZih0PXZlKHQpLGU9Z2UoZSkseWUpdHJ5e3JldHVybiBtZSh0LGUpfWNhdGNoKHQpe31pZihrZSh0LGUpKXJldHVybiBkZSghZmUocGUuZix0LGUpLHRbZV0pfTt2YXIgYmU9e30sX2U9cyYmdSgoZnVuY3Rpb24oKXtyZXR1cm4gNDIhPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSgoZnVuY3Rpb24oKXt9KSwicHJvdG90eXBlIix7dmFsdWU6NDIsd3JpdGFibGU6ITF9KS5wcm90b3R5cGV9KSksQWU9aSxDZT1VLEVlPUFlLlN0cmluZyxGZT1BZS5UeXBlRXJyb3IsU2U9ZnVuY3Rpb24odCl7aWYoQ2UodCkpcmV0dXJuIHQ7dGhyb3cgRmUoRWUodCkrIiBpcyBub3QgYW4gb2JqZWN0Iil9LHdlPXMsQmU9aGUsRGU9X2UseGU9U2UsTWU9dWUsT2U9aS5UeXBlRXJyb3IsUGU9T2JqZWN0LmRlZmluZVByb3BlcnR5LFRlPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IsSWU9ImVudW1lcmFibGUiLGplPSJjb25maWd1cmFibGUiLFJlPSJ3cml0YWJsZSI7YmUuZj13ZT9EZT9mdW5jdGlvbih0LGUsbil7aWYoeGUodCksZT1NZShlKSx4ZShuKSwiZnVuY3Rpb24iPT10eXBlb2YgdCYmInByb3RvdHlwZSI9PT1lJiYidmFsdWUiaW4gbiYmUmUgaW4gbiYmIW4ud3JpdGFibGUpe3ZhciBpPVRlKHQsZSk7aSYmaS53cml0YWJsZSYmKHRbZV09bi52YWx1ZSxuPXtjb25maWd1cmFibGU6amUgaW4gbj9uLmNvbmZpZ3VyYWJsZTppLmNvbmZpZ3VyYWJsZSxlbnVtZXJhYmxlOkllIGluIG4\/bi5lbnVtZXJhYmxlOmkuZW51bWVyYWJsZSx3cml0YWJsZTohMX0pfXJldHVybiBQZSh0LGUsbil9OlBlOmZ1bmN0aW9uKHQsZSxuKXtpZih4ZSh0KSxlPU1lKGUpLHhlKG4pLEJlKXRyeXtyZXR1cm4gUGUodCxlLG4pfWNhdGNoKHQpe31pZigiZ2V0ImluIG58fCJzZXQiaW4gbil0aHJvdyBPZSgiQWNjZXNzb3JzIG5vdCBzdXBwb3J0ZWQiKTtyZXR1cm4idmFsdWUiaW4gbiYmKHRbZV09bi52YWx1ZSksdH07dmFyIFZlPWJlLExlPWssTmU9cz9mdW5jdGlvbih0LGUsbil7cmV0dXJuIFZlLmYodCxlLExlKDEsbikpfTpmdW5jdGlvbih0LGUsbil7cmV0dXJuIHRbZV09bix0fSxVZT17ZXhwb3J0czp7fX0semU9TCxxZT1GdCxIZT1DKEZ1bmN0aW9uLnRvU3RyaW5nKTt6ZShxZS5pbnNwZWN0U291cmNlKXx8KHFlLmluc3BlY3RTb3VyY2U9ZnVuY3Rpb24odCl7cmV0dXJuIEhlKHQpfSk7dmFyIFllLFplLEdlLEtlPXFlLmluc3BlY3RTb3VyY2UsJGU9TCxXZT1LZSxYZT1pLldlYWtNYXAsSmU9JGUoWGUpJiYvbmF0aXZlIGNvZGUvLnRlc3QoV2UoWGUpKSxRZT1tdC5leHBvcnRzLHRuPVJ0LGVuPVFlKCJrZXlzIiksbm49e30scm49SmUsdW49aSxzbj1DLGFuPVUsb249TmUsbG49T3QsaG49RnQsY249ZnVuY3Rpb24odCl7cmV0dXJuIGVuW3RdfHwoZW5bdF09dG4odCkpfSxmbj1ubixwbj0iT2JqZWN0IGFscmVhZHkgaW5pdGlhbGl6ZWQiLGRuPXVuLlR5cGVFcnJvcix2bj11bi5XZWFrTWFwO2lmKHJufHxobi5zdGF0ZSl7dmFyIGduPWhuLnN0YXRlfHwoaG4uc3RhdGU9bmV3IHZuKSxrbj1zbihnbi5nZXQpLHluPXNuKGduLmhhcyksbW49c24oZ24uc2V0KTtZZT1mdW5jdGlvbih0LGUpe2lmKHluKGduLHQpKXRocm93IG5ldyBkbihwbik7cmV0dXJuIGUuZmFjYWRlPXQsbW4oZ24sdCxlKSxlfSxaZT1mdW5jdGlvbih0KXtyZXR1cm4ga24oZ24sdCl8fHt9fSxHZT1mdW5jdGlvbih0KXtyZXR1cm4geW4oZ24sdCl9fWVsc2V7dmFyIGJuPWNuKCJzdGF0ZSIpO2ZuW2JuXT0hMCxZZT1mdW5jdGlvbih0LGUpe2lmKGxuKHQsYm4pKXRocm93IG5ldyBkbihwbik7cmV0dXJuIGUuZmFjYWRlPXQsb24odCxibixlKSxlfSxaZT1mdW5jdGlvbih0KXtyZXR1cm4gbG4odCxibik\/dFtibl06e319LEdlPWZ1bmN0aW9uKHQpe3JldHVybiBsbih0LGJuKX19dmFyIF9uPXtzZXQ6WWUsZ2V0OlplLGhhczpHZSxlbmZvcmNlOmZ1bmN0aW9uKHQpe3JldHVybiBHZSh0KT9aZSh0KTpZZSh0LHt9KX0sZ2V0dGVyRm9yOmZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihlKXt2YXIgbjtpZighYW4oZSl8fChuPVplKGUpKS50eXBlIT09dCl0aHJvdyBkbigiSW5jb21wYXRpYmxlIHJlY2VpdmVyLCAiK3QrIiByZXF1aXJlZCIpO3JldHVybiBufX19LEFuPXMsQ249T3QsRW49RnVuY3Rpb24ucHJvdG90eXBlLEZuPUFuJiZPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLFNuPUNuKEVuLCJuYW1lIiksd249U24mJiJzb21ldGhpbmciPT09ZnVuY3Rpb24oKXt9Lm5hbWUsQm49U24mJighQW58fEFuJiZGbihFbiwibmFtZSIpLmNvbmZpZ3VyYWJsZSksRG49aSx4bj1MLE1uPU90LE9uPU5lLFBuPUF0LFRuPUtlLEluPXtFWElTVFM6U24sUFJPUEVSOnduLENPTkZJR1VSQUJMRTpCbn0uQ09ORklHVVJBQkxFLGpuPV9uLmdldCxSbj1fbi5lbmZvcmNlLFZuPVN0cmluZyhTdHJpbmcpLnNwbGl0KCJTdHJpbmciKTsoVWUuZXhwb3J0cz1mdW5jdGlvbih0LGUsbixpKXt2YXIgcix1PSEhaSYmISFpLnVuc2FmZSxzPSEhaSYmISFpLmVudW1lcmFibGUsYT0hIWkmJiEhaS5ub1RhcmdldEdldCxvPWkmJnZvaWQgMCE9PWkubmFtZT9pLm5hbWU6ZTt4bihuKSYmKCJTeW1ib2woIj09PVN0cmluZyhvKS5zbGljZSgwLDcpJiYobz0iWyIrU3RyaW5nKG8pLnJlcGxhY2UoL15TeW1ib2xcKChbXildKilcKS8sIiQxIikrIl0iKSwoIU1uKG4sIm5hbWUiKXx8SW4mJm4ubmFtZSE9PW8pJiZPbihuLCJuYW1lIixvKSwocj1SbihuKSkuc291cmNlfHwoci5zb3VyY2U9Vm4uam9pbigic3RyaW5nIj09dHlwZW9mIG8\/bzoiIikpKSx0IT09RG4\/KHU\/IWEmJnRbZV0mJihzPSEwKTpkZWxldGUgdFtlXSxzP3RbZV09bjpPbih0LGUsbikpOnM\/dFtlXT1uOlBuKGUsbil9KShGdW5jdGlvbi5wcm90b3R5cGUsInRvU3RyaW5nIiwoZnVuY3Rpb24oKXtyZXR1cm4geG4odGhpcykmJmpuKHRoaXMpLnNvdXJjZXx8VG4odGhpcyl9KSk7dmFyIExuPXt9LE5uPU1hdGguY2VpbCxVbj1NYXRoLmZsb29yLHpuPWZ1bmN0aW9uKHQpe3ZhciBlPSt0O3JldHVybiBlIT1lfHwwPT09ZT8wOihlPjA\/VW46Tm4pKGUpfSxxbj16bixIbj1NYXRoLm1heCxZbj1NYXRoLm1pbixabj16bixHbj1NYXRoLm1pbixLbj1mdW5jdGlvbih0KXtyZXR1cm4gdD4wP0duKFpuKHQpLDkwMDcxOTkyNTQ3NDA5OTEpOjB9LCRuPUtuLFduPVYsWG49ZnVuY3Rpb24odCxlKXt2YXIgbj1xbih0KTtyZXR1cm4gbjwwP0huKG4rZSwwKTpZbihuLGUpfSxKbj1mdW5jdGlvbih0KXtyZXR1cm4gJG4odC5sZW5ndGgpfSxRbj1mdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oZSxuLGkpe3ZhciByLHU9V24oZSkscz1Kbih1KSxhPVhuKGkscyk7aWYodCYmbiE9bil7Zm9yKDtzPmE7KWlmKChyPXVbYSsrXSkhPXIpcmV0dXJuITB9ZWxzZSBmb3IoO3M+YTthKyspaWYoKHR8fGEgaW4gdSkmJnVbYV09PT1uKXJldHVybiB0fHxhfHwwO3JldHVybiF0JiYtMX19LHRpPXtpbmNsdWRlczpRbighMCksaW5kZXhPZjpRbighMSl9LGVpPU90LG5pPVYsaWk9dGkuaW5kZXhPZixyaT1ubix1aT1DKFtdLnB1c2gpLHNpPWZ1bmN0aW9uKHQsZSl7dmFyIG4saT1uaSh0KSxyPTAsdT1bXTtmb3IobiBpbiBpKSFlaShyaSxuKSYmZWkoaSxuKSYmdWkodSxuKTtmb3IoO2UubGVuZ3RoPnI7KWVpKGksbj1lW3IrK10pJiYofmlpKHUsbil8fHVpKHUsbikpO3JldHVybiB1fSxhaT1bImNvbnN0cnVjdG9yIiwiaGFzT3duUHJvcGVydHkiLCJpc1Byb3RvdHlwZU9mIiwicHJvcGVydHlJc0VudW1lcmFibGUiLCJ0b0xvY2FsZVN0cmluZyIsInRvU3RyaW5nIiwidmFsdWVPZiJdLG9pPXNpLGxpPWFpLmNvbmNhdCgibGVuZ3RoIiwicHJvdG90eXBlIik7TG4uZj1PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lc3x8ZnVuY3Rpb24odCl7cmV0dXJuIG9pKHQsbGkpfTt2YXIgaGk9e307aGkuZj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzO3ZhciBjaT1ZLGZpPUxuLHBpPWhpLGRpPVNlLHZpPUMoW10uY29uY2F0KSxnaT1jaSgiUmVmbGVjdCIsIm93bktleXMiKXx8ZnVuY3Rpb24odCl7dmFyIGU9ZmkuZihkaSh0KSksbj1waS5mO3JldHVybiBuP3ZpKGUsbih0KSk6ZX0sa2k9T3QseWk9Z2ksbWk9cixiaT1iZSxfaT11LEFpPUwsQ2k9LyN8XC5wcm90b3R5cGVcLi8sRWk9ZnVuY3Rpb24odCxlKXt2YXIgbj1TaVtGaSh0KV07cmV0dXJuIG49PUJpfHxuIT13aSYmKEFpKGUpP19pKGUpOiEhZSl9LEZpPUVpLm5vcm1hbGl6ZT1mdW5jdGlvbih0KXtyZXR1cm4gU3RyaW5nKHQpLnJlcGxhY2UoQ2ksIi4iKS50b0xvd2VyQ2FzZSgpfSxTaT1FaS5kYXRhPXt9LHdpPUVpLk5BVElWRT0iTiIsQmk9RWkuUE9MWUZJTEw9IlAiLERpPUVpLHhpPWksTWk9ci5mLE9pPU5lLFBpPVVlLmV4cG9ydHMsVGk9QXQsSWk9ZnVuY3Rpb24odCxlLG4pe2Zvcih2YXIgaT15aShlKSxyPWJpLmYsdT1taS5mLHM9MDtzPGkubGVuZ3RoO3MrKyl7dmFyIGE9aVtzXTtraSh0LGEpfHxuJiZraShuLGEpfHxyKHQsYSx1KGUsYSkpfX0samk9RGksUmk9ZnVuY3Rpb24odCxlKXt2YXIgbixpLHIsdSxzLGE9dC50YXJnZXQsbz10Lmdsb2JhbCxsPXQuc3RhdDtpZihuPW8\/eGk6bD94aVthXXx8VGkoYSx7fSk6KHhpW2FdfHx7fSkucHJvdG90eXBlKWZvcihpIGluIGUpe2lmKHU9ZVtpXSxyPXQubm9UYXJnZXRHZXQ\/KHM9TWkobixpKSkmJnMudmFsdWU6bltpXSwhamkobz9pOmErKGw\/Ii4iOiIjIikraSx0LmZvcmNlZCkmJnZvaWQgMCE9PXIpe2lmKHR5cGVvZiB1PT10eXBlb2Ygciljb250aW51ZTtJaSh1LHIpfSh0LnNoYW18fHImJnIuc2hhbSkmJk9pKHUsInNoYW0iLCEwKSxQaShuLGksdSx0KX19LFZpPXNpLExpPWFpLE5pPU9iamVjdC5rZXlzfHxmdW5jdGlvbih0KXtyZXR1cm4gVmkodCxMaSl9LFVpPXMsemk9QyxxaT1oLEhpPXUsWWk9TmksWmk9aGksR2k9YyxLaT1EdCwkaT1QLFdpPU9iamVjdC5hc3NpZ24sWGk9T2JqZWN0LmRlZmluZVByb3BlcnR5LEppPXppKFtdLmNvbmNhdCksUWk9IVdpfHxIaSgoZnVuY3Rpb24oKXtpZihVaSYmMSE9PVdpKHtiOjF9LFdpKFhpKHt9LCJhIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtYaSh0aGlzLCJiIix7dmFsdWU6MyxlbnVtZXJhYmxlOiExfSl9fSkse2I6Mn0pKS5iKXJldHVybiEwO3ZhciB0PXt9LGU9e30sbj1TeW1ib2woKSxpPSJhYmNkZWZnaGlqa2xtbm9wcXJzdCI7cmV0dXJuIHRbbl09NyxpLnNwbGl0KCIiKS5mb3JFYWNoKChmdW5jdGlvbih0KXtlW3RdPXR9KSksNyE9V2koe30sdClbbl18fFlpKFdpKHt9LGUpKS5qb2luKCIiKSE9aX0pKT9mdW5jdGlvbih0LGUpe2Zvcih2YXIgbj1LaSh0KSxpPWFyZ3VtZW50cy5sZW5ndGgscj0xLHU9WmkuZixzPUdpLmY7aT5yOylmb3IodmFyIGEsbz0kaShhcmd1bWVudHNbcisrXSksbD11P0ppKFlpKG8pLHUobykpOllpKG8pLGg9bC5sZW5ndGgsYz0wO2g+YzspYT1sW2MrK10sVWkmJiFxaShzLG8sYSl8fChuW2FdPW9bYV0pO3JldHVybiBufTpXaSx0cj1RaTtSaSh7dGFyZ2V0OiJPYmplY3QiLHN0YXQ6ITAsZm9yY2VkOk9iamVjdC5hc3NpZ24hPT10cn0se2Fzc2lnbjp0cn0pO3ZhciBlcj17fTtlcltLdCgidG9TdHJpbmdUYWciKV09InoiO3ZhciBucj1pLGlyPSJbb2JqZWN0IHpdIj09PVN0cmluZyhlcikscnI9TCx1cj13LHNyPUt0KCJ0b1N0cmluZ1RhZyIpLGFyPW5yLk9iamVjdCxvcj0iQXJndW1lbnRzIj09dXIoZnVuY3Rpb24oKXtyZXR1cm4gYXJndW1lbnRzfSgpKSxscj1pcj91cjpmdW5jdGlvbih0KXt2YXIgZSxuLGk7cmV0dXJuIHZvaWQgMD09PXQ\/IlVuZGVmaW5lZCI6bnVsbD09PXQ\/Ik51bGwiOiJzdHJpbmciPT10eXBlb2Yobj1mdW5jdGlvbih0LGUpe3RyeXtyZXR1cm4gdFtlXX1jYXRjaCh0KXt9fShlPWFyKHQpLHNyKSk\/bjpvcj91cihlKToiT2JqZWN0Ij09KGk9dXIoZSkpJiZycihlLmNhbGxlZSk\/IkFyZ3VtZW50cyI6aX0saHI9aS5TdHJpbmcsY3I9ZnVuY3Rpb24odCl7aWYoIlN5bWJvbCI9PT1scih0KSl0aHJvdyBUeXBlRXJyb3IoIkNhbm5vdCBjb252ZXJ0IGEgU3ltYm9sIHZhbHVlIHRvIGEgc3RyaW5nIik7cmV0dXJuIGhyKHQpfSxmcj16bixwcj1jcixkcj1JLHZyPWkuUmFuZ2VFcnJvcixncj1mdW5jdGlvbih0KXt2YXIgZT1wcihkcih0aGlzKSksbj0iIixpPWZyKHQpO2lmKGk8MHx8aT09MS8wKXRocm93IHZyKCJXcm9uZyBudW1iZXIgb2YgcmVwZXRpdGlvbnMiKTtmb3IoO2k+MDsoaT4+Pj0xKSYmKGUrPWUpKTEmaSYmKG4rPWUpO3JldHVybiBufTtSaSh7dGFyZ2V0OiJTdHJpbmciLHByb3RvOiEwfSx7cmVwZWF0OmdyfSk7dmFyIGtyPUMseXI9S24sbXI9Y3IsYnI9SSxfcj1rcihnciksQXI9a3IoIiIuc2xpY2UpLENyPU1hdGguY2VpbCxFcj1mdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oZSxuLGkpe3ZhciByLHUscz1tcihicihlKSksYT15cihuKSxvPXMubGVuZ3RoLGw9dm9pZCAwPT09aT8iICI6bXIoaSk7cmV0dXJuIGE8PW98fCIiPT1sP3M6KCh1PV9yKGwsQ3IoKHI9YS1vKS9sLmxlbmd0aCkpKS5sZW5ndGg+ciYmKHU9QXIodSwwLHIpKSx0P3MrdTp1K3MpfX0sRnI9e3N0YXJ0OkVyKCExKSxlbmQ6RXIoITApfSxTcj0vVmVyc2lvblwvMTAoPzpcLlxkKyl7MSwyfSg\/OiBbXHcuL10rKT8oPzogTW9iaWxlXC9cdyspPyBTYWZhcmlcLy8udGVzdChHKSx3cj1Gci5zdGFydDtSaSh7dGFyZ2V0OiJTdHJpbmciLHByb3RvOiEwLGZvcmNlZDpTcn0se3BhZFN0YXJ0OmZ1bmN0aW9uKHQpe3JldHVybiB3cih0aGlzLHQsYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDApfX0pO3ZhciBCcj1Gci5lbmQ7ZnVuY3Rpb24gRHIodCl7cmV0dXJuIERyPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKHQpe3JldHVybiB0eXBlb2YgdH06ZnVuY3Rpb24odCl7cmV0dXJuIHQmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJnQuY29uc3RydWN0b3I9PT1TeW1ib2wmJnQhPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiB0fSxEcih0KX1mdW5jdGlvbiB4cih0LGUpe2lmKCEodCBpbnN0YW5jZW9mIGUpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfWZ1bmN0aW9uIE1yKHQsZSl7Zm9yKHZhciBuPTA7bjxlLmxlbmd0aDtuKyspe3ZhciBpPWVbbl07aS5lbnVtZXJhYmxlPWkuZW51bWVyYWJsZXx8ITEsaS5jb25maWd1cmFibGU9ITAsInZhbHVlImluIGkmJihpLndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCxpLmtleSxpKX19ZnVuY3Rpb24gT3IodCxlLG4pe3JldHVybiBlJiZNcih0LnByb3RvdHlwZSxlKSxuJiZNcih0LG4pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLHR9ZnVuY3Rpb24gUHIodCxlKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgZSYmbnVsbCE9PWUpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24iKTt0LnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGUmJmUucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6dCx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksZSYmSXIodCxlKX1mdW5jdGlvbiBUcih0KXtyZXR1cm4gVHI9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5nZXRQcm90b3R5cGVPZjpmdW5jdGlvbih0KXtyZXR1cm4gdC5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZih0KX0sVHIodCl9ZnVuY3Rpb24gSXIodCxlKXtyZXR1cm4gSXI9T2JqZWN0LnNldFByb3RvdHlwZU9mfHxmdW5jdGlvbih0LGUpe3JldHVybiB0Ll9fcHJvdG9fXz1lLHR9LElyKHQsZSl9ZnVuY3Rpb24ganIodCxlKXtpZihudWxsPT10KXJldHVybnt9O3ZhciBuLGkscj1mdW5jdGlvbih0LGUpe2lmKG51bGw9PXQpcmV0dXJue307dmFyIG4saSxyPXt9LHU9T2JqZWN0LmtleXModCk7Zm9yKGk9MDtpPHUubGVuZ3RoO2krKyluPXVbaV0sZS5pbmRleE9mKG4pPj0wfHwocltuXT10W25dKTtyZXR1cm4gcn0odCxlKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgdT1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHQpO2ZvcihpPTA7aTx1Lmxlbmd0aDtpKyspbj11W2ldLGUuaW5kZXhPZihuKT49MHx8T2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHQsbikmJihyW25dPXRbbl0pfXJldHVybiByfWZ1bmN0aW9uIFJyKHQsZSl7aWYoZSYmKCJvYmplY3QiPT10eXBlb2YgZXx8ImZ1bmN0aW9uIj09dHlwZW9mIGUpKXJldHVybiBlO2lmKHZvaWQgMCE9PWUpdGhyb3cgbmV3IFR5cGVFcnJvcigiRGVyaXZlZCBjb25zdHJ1Y3RvcnMgbWF5IG9ubHkgcmV0dXJuIG9iamVjdCBvciB1bmRlZmluZWQiKTtyZXR1cm4gZnVuY3Rpb24odCl7aWYodm9pZCAwPT09dCl0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZCIpO3JldHVybiB0fSh0KX1mdW5jdGlvbiBWcih0KXt2YXIgZT1mdW5jdGlvbigpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgUmVmbGVjdHx8IVJlZmxlY3QuY29uc3RydWN0KXJldHVybiExO2lmKFJlZmxlY3QuY29uc3RydWN0LnNoYW0pcmV0dXJuITE7aWYoImZ1bmN0aW9uIj09dHlwZW9mIFByb3h5KXJldHVybiEwO3RyeXtyZXR1cm4gQm9vbGVhbi5wcm90b3R5cGUudmFsdWVPZi5jYWxsKFJlZmxlY3QuY29uc3RydWN0KEJvb2xlYW4sW10sKGZ1bmN0aW9uKCl7fSkpKSwhMH1jYXRjaCh0KXtyZXR1cm4hMX19KCk7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIG4saT1Ucih0KTtpZihlKXt2YXIgcj1Ucih0aGlzKS5jb25zdHJ1Y3RvcjtuPVJlZmxlY3QuY29uc3RydWN0KGksYXJndW1lbnRzLHIpfWVsc2Ugbj1pLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gUnIodGhpcyxuKX19ZnVuY3Rpb24gTHIodCxlKXtmb3IoOyFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCxlKSYmbnVsbCE9PSh0PVRyKHQpKTspO3JldHVybiB0fWZ1bmN0aW9uIE5yKCl7cmV0dXJuIE5yPSJ1bmRlZmluZWQiIT10eXBlb2YgUmVmbGVjdCYmUmVmbGVjdC5nZXQ\/UmVmbGVjdC5nZXQ6ZnVuY3Rpb24odCxlLG4pe3ZhciBpPUxyKHQsZSk7aWYoaSl7dmFyIHI9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihpLGUpO3JldHVybiByLmdldD9yLmdldC5jYWxsKGFyZ3VtZW50cy5sZW5ndGg8Mz90Om4pOnIudmFsdWV9fSxOci5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gVXIodCxlLG4saSl7cmV0dXJuIFVyPSJ1bmRlZmluZWQiIT10eXBlb2YgUmVmbGVjdCYmUmVmbGVjdC5zZXQ\/UmVmbGVjdC5zZXQ6ZnVuY3Rpb24odCxlLG4saSl7dmFyIHIsdT1Mcih0LGUpO2lmKHUpe2lmKChyPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodSxlKSkuc2V0KXJldHVybiByLnNldC5jYWxsKGksbiksITA7aWYoIXIud3JpdGFibGUpcmV0dXJuITF9aWYocj1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGksZSkpe2lmKCFyLndyaXRhYmxlKXJldHVybiExO3IudmFsdWU9bixPYmplY3QuZGVmaW5lUHJvcGVydHkoaSxlLHIpfWVsc2UhZnVuY3Rpb24odCxlLG4pe2UgaW4gdD9PYmplY3QuZGVmaW5lUHJvcGVydHkodCxlLHt2YWx1ZTpuLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6dFtlXT1ufShpLGUsbik7cmV0dXJuITB9LFVyKHQsZSxuLGkpfWZ1bmN0aW9uIHpyKHQsZSxuLGkscil7aWYoIVVyKHQsZSxuLGl8fHQpJiZyKXRocm93IG5ldyBFcnJvcigiZmFpbGVkIHRvIHNldCBwcm9wZXJ0eSIpO3JldHVybiBufWZ1bmN0aW9uIHFyKHQsZSl7cmV0dXJuIGZ1bmN0aW9uKHQpe2lmKEFycmF5LmlzQXJyYXkodCkpcmV0dXJuIHR9KHQpfHxmdW5jdGlvbih0LGUpe3ZhciBuPW51bGw9PXQ\/bnVsbDoidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmdFtTeW1ib2wuaXRlcmF0b3JdfHx0WyJAQGl0ZXJhdG9yIl07aWYobnVsbD09bilyZXR1cm47dmFyIGkscix1PVtdLHM9ITAsYT0hMTt0cnl7Zm9yKG49bi5jYWxsKHQpOyEocz0oaT1uLm5leHQoKSkuZG9uZSkmJih1LnB1c2goaS52YWx1ZSksIWV8fHUubGVuZ3RoIT09ZSk7cz0hMCk7fWNhdGNoKHQpe2E9ITAscj10fWZpbmFsbHl7dHJ5e3N8fG51bGw9PW4ucmV0dXJufHxuLnJldHVybigpfWZpbmFsbHl7aWYoYSl0aHJvdyByfX1yZXR1cm4gdX0odCxlKXx8ZnVuY3Rpb24odCxlKXtpZighdClyZXR1cm47aWYoInN0cmluZyI9PXR5cGVvZiB0KXJldHVybiBIcih0LGUpO3ZhciBuPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0KS5zbGljZSg4LC0xKTsiT2JqZWN0Ij09PW4mJnQuY29uc3RydWN0b3ImJihuPXQuY29uc3RydWN0b3IubmFtZSk7aWYoIk1hcCI9PT1ufHwiU2V0Ij09PW4pcmV0dXJuIEFycmF5LmZyb20odCk7aWYoIkFyZ3VtZW50cyI9PT1ufHwvXig\/OlVpfEkpbnQoPzo4fDE2fDMyKSg\/OkNsYW1wZWQpP0FycmF5JC8udGVzdChuKSlyZXR1cm4gSHIodCxlKX0odCxlKXx8ZnVuY3Rpb24oKXt0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLiIpfSgpfWZ1bmN0aW9uIEhyKHQsZSl7KG51bGw9PWV8fGU+dC5sZW5ndGgpJiYoZT10Lmxlbmd0aCk7Zm9yKHZhciBuPTAsaT1uZXcgQXJyYXkoZSk7bjxlO24rKylpW25dPXRbbl07cmV0dXJuIGl9Umkoe3RhcmdldDoiU3RyaW5nIixwcm90bzohMCxmb3JjZWQ6U3J9LHtwYWRFbmQ6ZnVuY3Rpb24odCl7cmV0dXJuIEJyKHRoaXMsdCxhcmd1bWVudHMubGVuZ3RoPjE\/YXJndW1lbnRzWzFdOnZvaWQgMCl9fSksUmkoe2dsb2JhbDohMH0se2dsb2JhbFRoaXM6aX0pO3ZhciBZcj1mdW5jdGlvbigpe2Z1bmN0aW9uIHQoZSl7eHIodGhpcyx0KSxPYmplY3QuYXNzaWduKHRoaXMse2luc2VydGVkOiIiLHJhd0luc2VydGVkOiIiLHNraXA6ITEsdGFpbFNoaWZ0OjB9LGUpfXJldHVybiBPcih0LFt7a2V5OiJhZ2dyZWdhdGUiLHZhbHVlOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnJhd0luc2VydGVkKz10LnJhd0luc2VydGVkLHRoaXMuc2tpcD10aGlzLnNraXB8fHQuc2tpcCx0aGlzLmluc2VydGVkKz10Lmluc2VydGVkLHRoaXMudGFpbFNoaWZ0Kz10LnRhaWxTaGlmdCx0aGlzfX0se2tleToib2Zmc2V0IixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy50YWlsU2hpZnQrdGhpcy5pbnNlcnRlZC5sZW5ndGh9fV0pLHR9KCk7ZnVuY3Rpb24gWnIodCl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiB0fHx0IGluc3RhbmNlb2YgU3RyaW5nfXZhciBHcj0iTk9ORSIsS3I9IkxFRlQiLCRyPSJGT1JDRV9MRUZUIixXcj0iUklHSFQiLFhyPSJGT1JDRV9SSUdIVCI7ZnVuY3Rpb24gSnIodCl7cmV0dXJuIHQucmVwbGFjZSgvKFsuKis\/Xj0hOiR7fSgpfFtcXVwvXFxdKS9nLCJcXCQxIil9ZnVuY3Rpb24gUXIodCl7cmV0dXJuIEFycmF5LmlzQXJyYXkodCk\/dDpbdCxuZXcgWXJdfWZ1bmN0aW9uIHR1KHQsZSl7aWYoZT09PXQpcmV0dXJuITA7dmFyIG4saT1BcnJheS5pc0FycmF5KGUpLHI9QXJyYXkuaXNBcnJheSh0KTtpZihpJiZyKXtpZihlLmxlbmd0aCE9dC5sZW5ndGgpcmV0dXJuITE7Zm9yKG49MDtuPGUubGVuZ3RoO24rKylpZighdHUoZVtuXSx0W25dKSlyZXR1cm4hMTtyZXR1cm4hMH1pZihpIT1yKXJldHVybiExO2lmKGUmJnQmJiJvYmplY3QiPT09RHIoZSkmJiJvYmplY3QiPT09RHIodCkpe3ZhciB1PWUgaW5zdGFuY2VvZiBEYXRlLHM9dCBpbnN0YW5jZW9mIERhdGU7aWYodSYmcylyZXR1cm4gZS5nZXRUaW1lKCk9PXQuZ2V0VGltZSgpO2lmKHUhPXMpcmV0dXJuITE7dmFyIGE9ZSBpbnN0YW5jZW9mIFJlZ0V4cCxvPXQgaW5zdGFuY2VvZiBSZWdFeHA7aWYoYSYmbylyZXR1cm4gZS50b1N0cmluZygpPT10LnRvU3RyaW5nKCk7aWYoYSE9bylyZXR1cm4hMTt2YXIgbD1PYmplY3Qua2V5cyhlKTtmb3Iobj0wO248bC5sZW5ndGg7bisrKWlmKCFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCxsW25dKSlyZXR1cm4hMTtmb3Iobj0wO248bC5sZW5ndGg7bisrKWlmKCF0dSh0W2xbbl1dLGVbbFtuXV0pKXJldHVybiExO3JldHVybiEwfXJldHVybiEoIWV8fCF0fHwiZnVuY3Rpb24iIT10eXBlb2YgZXx8ImZ1bmN0aW9uIiE9dHlwZW9mIHQpJiZlLnRvU3RyaW5nKCk9PT10LnRvU3RyaW5nKCl9dmFyIGV1PWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdChlLG4saSxyKXtmb3IoeHIodGhpcyx0KSx0aGlzLnZhbHVlPWUsdGhpcy5jdXJzb3JQb3M9bix0aGlzLm9sZFZhbHVlPWksdGhpcy5vbGRTZWxlY3Rpb249cjt0aGlzLnZhbHVlLnNsaWNlKDAsdGhpcy5zdGFydENoYW5nZVBvcykhPT10aGlzLm9sZFZhbHVlLnNsaWNlKDAsdGhpcy5zdGFydENoYW5nZVBvcyk7KS0tdGhpcy5vbGRTZWxlY3Rpb24uc3RhcnR9cmV0dXJuIE9yKHQsW3trZXk6InN0YXJ0Q2hhbmdlUG9zIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gTWF0aC5taW4odGhpcy5jdXJzb3JQb3MsdGhpcy5vbGRTZWxlY3Rpb24uc3RhcnQpfX0se2tleToiaW5zZXJ0ZWRDb3VudCIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY3Vyc29yUG9zLXRoaXMuc3RhcnRDaGFuZ2VQb3N9fSx7a2V5OiJpbnNlcnRlZCIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudmFsdWUuc3Vic3RyKHRoaXMuc3RhcnRDaGFuZ2VQb3MsdGhpcy5pbnNlcnRlZENvdW50KX19LHtrZXk6InJlbW92ZWRDb3VudCIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIE1hdGgubWF4KHRoaXMub2xkU2VsZWN0aW9uLmVuZC10aGlzLnN0YXJ0Q2hhbmdlUG9zfHx0aGlzLm9sZFZhbHVlLmxlbmd0aC10aGlzLnZhbHVlLmxlbmd0aCwwKX19LHtrZXk6InJlbW92ZWQiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLm9sZFZhbHVlLnN1YnN0cih0aGlzLnN0YXJ0Q2hhbmdlUG9zLHRoaXMucmVtb3ZlZENvdW50KX19LHtrZXk6ImhlYWQiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnZhbHVlLnN1YnN0cmluZygwLHRoaXMuc3RhcnRDaGFuZ2VQb3MpfX0se2tleToidGFpbCIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudmFsdWUuc3Vic3RyaW5nKHRoaXMuc3RhcnRDaGFuZ2VQb3MrdGhpcy5pbnNlcnRlZENvdW50KX19LHtrZXk6InJlbW92ZURpcmVjdGlvbiIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIXRoaXMucmVtb3ZlZENvdW50fHx0aGlzLmluc2VydGVkQ291bnQ\/R3I6dGhpcy5vbGRTZWxlY3Rpb24uZW5kIT09dGhpcy5jdXJzb3JQb3MmJnRoaXMub2xkU2VsZWN0aW9uLnN0YXJ0IT09dGhpcy5jdXJzb3JQb3N8fHRoaXMub2xkU2VsZWN0aW9uLmVuZCE9PXRoaXMub2xkU2VsZWN0aW9uLnN0YXJ0P0tyOldyfX1dKSx0fSgpLG51PWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCgpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXToiIixuPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTowLGk9YXJndW1lbnRzLmxlbmd0aD4yP2FyZ3VtZW50c1syXTp2b2lkIDA7eHIodGhpcyx0KSx0aGlzLnZhbHVlPWUsdGhpcy5mcm9tPW4sdGhpcy5zdG9wPWl9cmV0dXJuIE9yKHQsW3trZXk6InRvU3RyaW5nIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnZhbHVlfX0se2tleToiZXh0ZW5kIix2YWx1ZTpmdW5jdGlvbih0KXt0aGlzLnZhbHVlKz1TdHJpbmcodCl9fSx7a2V5OiJhcHBlbmRUbyIsdmFsdWU6ZnVuY3Rpb24odCl7cmV0dXJuIHQuYXBwZW5kKHRoaXMudG9TdHJpbmcoKSx7dGFpbDohMH0pLmFnZ3JlZ2F0ZSh0Ll9hcHBlbmRQbGFjZWhvbGRlcigpKX19LHtrZXk6InN0YXRlIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm57dmFsdWU6dGhpcy52YWx1ZSxmcm9tOnRoaXMuZnJvbSxzdG9wOnRoaXMuc3RvcH19LHNldDpmdW5jdGlvbih0KXtPYmplY3QuYXNzaWduKHRoaXMsdCl9fSx7a2V5OiJ1bnNoaWZ0Iix2YWx1ZTpmdW5jdGlvbih0KXtpZighdGhpcy52YWx1ZS5sZW5ndGh8fG51bGwhPXQmJnRoaXMuZnJvbT49dClyZXR1cm4iIjt2YXIgZT10aGlzLnZhbHVlWzBdO3JldHVybiB0aGlzLnZhbHVlPXRoaXMudmFsdWUuc2xpY2UoMSksZX19LHtrZXk6InNoaWZ0Iix2YWx1ZTpmdW5jdGlvbigpe2lmKCF0aGlzLnZhbHVlLmxlbmd0aClyZXR1cm4iIjt2YXIgdD10aGlzLnZhbHVlW3RoaXMudmFsdWUubGVuZ3RoLTFdO3JldHVybiB0aGlzLnZhbHVlPXRoaXMudmFsdWUuc2xpY2UoMCwtMSksdH19XSksdH0oKTtmdW5jdGlvbiBpdSh0KXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06e307cmV0dXJuIG5ldyBpdS5JbnB1dE1hc2sodCxlKX12YXIgcnU9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KGUpe3hyKHRoaXMsdCksdGhpcy5fdmFsdWU9IiIsdGhpcy5fdXBkYXRlKE9iamVjdC5hc3NpZ24oe30sdC5ERUZBVUxUUyxlKSksdGhpcy5pc0luaXRpYWxpemVkPSEwfXJldHVybiBPcih0LFt7a2V5OiJ1cGRhdGVPcHRpb25zIix2YWx1ZTpmdW5jdGlvbih0KXtPYmplY3Qua2V5cyh0KS5sZW5ndGgmJnRoaXMud2l0aFZhbHVlUmVmcmVzaCh0aGlzLl91cGRhdGUuYmluZCh0aGlzLHQpKX19LHtrZXk6Il91cGRhdGUiLHZhbHVlOmZ1bmN0aW9uKHQpe09iamVjdC5hc3NpZ24odGhpcyx0KX19LHtrZXk6InN0YXRlIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm57X3ZhbHVlOnRoaXMudmFsdWV9fSxzZXQ6ZnVuY3Rpb24odCl7dGhpcy5fdmFsdWU9dC5fdmFsdWV9fSx7a2V5OiJyZXNldCIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLl92YWx1ZT0iIn19LHtrZXk6InZhbHVlIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fdmFsdWV9LHNldDpmdW5jdGlvbih0KXt0aGlzLnJlc29sdmUodCl9fSx7a2V5OiJyZXNvbHZlIix2YWx1ZTpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5yZXNldCgpLHRoaXMuYXBwZW5kKHQse2lucHV0OiEwfSwiIiksdGhpcy5kb0NvbW1pdCgpLHRoaXMudmFsdWV9fSx7a2V5OiJ1bm1hc2tlZFZhbHVlIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy52YWx1ZX0sc2V0OmZ1bmN0aW9uKHQpe3RoaXMucmVzZXQoKSx0aGlzLmFwcGVuZCh0LHt9LCIiKSx0aGlzLmRvQ29tbWl0KCl9fSx7a2V5OiJ0eXBlZFZhbHVlIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5kb1BhcnNlKHRoaXMudmFsdWUpfSxzZXQ6ZnVuY3Rpb24odCl7dGhpcy52YWx1ZT10aGlzLmRvRm9ybWF0KHQpfX0se2tleToicmF3SW5wdXRWYWx1ZSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZXh0cmFjdElucHV0KDAsdGhpcy52YWx1ZS5sZW5ndGgse3JhdzohMH0pfSxzZXQ6ZnVuY3Rpb24odCl7dGhpcy5yZXNldCgpLHRoaXMuYXBwZW5kKHQse3JhdzohMH0sIiIpLHRoaXMuZG9Db21taXQoKX19LHtrZXk6ImlzQ29tcGxldGUiLGdldDpmdW5jdGlvbigpe3JldHVybiEwfX0se2tleToiaXNGaWxsZWQiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmlzQ29tcGxldGV9fSx7a2V5OiJuZWFyZXN0SW5wdXRQb3MiLHZhbHVlOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHR9fSx7a2V5OiJleHRyYWN0SW5wdXQiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0\/YXJndW1lbnRzWzBdOjAsZT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06dGhpcy52YWx1ZS5sZW5ndGg7cmV0dXJuIHRoaXMudmFsdWUuc2xpY2UodCxlKX19LHtrZXk6ImV4dHJhY3RUYWlsIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTowLGU9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0\/YXJndW1lbnRzWzFdOnRoaXMudmFsdWUubGVuZ3RoO3JldHVybiBuZXcgbnUodGhpcy5leHRyYWN0SW5wdXQodCxlKSx0KX19LHtrZXk6ImFwcGVuZFRhaWwiLHZhbHVlOmZ1bmN0aW9uKHQpe3JldHVybiBacih0KSYmKHQ9bmV3IG51KFN0cmluZyh0KSkpLHQuYXBwZW5kVG8odGhpcyl9fSx7a2V5OiJfYXBwZW5kQ2hhclJhdyIsdmFsdWU6ZnVuY3Rpb24odCl7cmV0dXJuIHQ\/KHRoaXMuX3ZhbHVlKz10LG5ldyBZcih7aW5zZXJ0ZWQ6dCxyYXdJbnNlcnRlZDp0fSkpOm5ldyBZcn19LHtrZXk6Il9hcHBlbmRDaGFyIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZSxuPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp7fSxpPWFyZ3VtZW50cy5sZW5ndGg+Mj9hcmd1bWVudHNbMl06dm9pZCAwLHI9dGhpcy5zdGF0ZSx1PVFyKHRoaXMuZG9QcmVwYXJlKHQsbikpLHM9cXIodSwyKTtpZih0PXNbMF0sKGU9KGU9c1sxXSkuYWdncmVnYXRlKHRoaXMuX2FwcGVuZENoYXJSYXcodCxuKSkpLmluc2VydGVkKXt2YXIgYSxvPSExIT09dGhpcy5kb1ZhbGlkYXRlKG4pO2lmKG8mJm51bGwhPWkpe3ZhciBsPXRoaXMuc3RhdGU7ITA9PT10aGlzLm92ZXJ3cml0ZSYmKGE9aS5zdGF0ZSxpLnVuc2hpZnQodGhpcy52YWx1ZS5sZW5ndGgpKTt2YXIgaD10aGlzLmFwcGVuZFRhaWwoaSk7KG89aC5yYXdJbnNlcnRlZD09PWkudG9TdHJpbmcoKSkmJmguaW5zZXJ0ZWR8fCJzaGlmdCIhPT10aGlzLm92ZXJ3cml0ZXx8KHRoaXMuc3RhdGU9bCxhPWkuc3RhdGUsaS5zaGlmdCgpLG89KGg9dGhpcy5hcHBlbmRUYWlsKGkpKS5yYXdJbnNlcnRlZD09PWkudG9TdHJpbmcoKSksbyYmaC5pbnNlcnRlZCYmKHRoaXMuc3RhdGU9bCl9b3x8KGU9bmV3IFlyLHRoaXMuc3RhdGU9cixpJiZhJiYoaS5zdGF0ZT1hKSl9cmV0dXJuIGV9fSx7a2V5OiJfYXBwZW5kUGxhY2Vob2xkZXIiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBZcn19LHtrZXk6Il9hcHBlbmRFYWdlciIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IFlyfX0se2tleToiYXBwZW5kIix2YWx1ZTpmdW5jdGlvbih0LGUsbil7aWYoIVpyKHQpKXRocm93IG5ldyBFcnJvcigidmFsdWUgc2hvdWxkIGJlIHN0cmluZyIpO3ZhciBpPW5ldyBZcixyPVpyKG4pP25ldyBudShTdHJpbmcobikpOm47ZSYmZS50YWlsJiYoZS5fYmVmb3JlVGFpbFN0YXRlPXRoaXMuc3RhdGUpO2Zvcih2YXIgdT0wO3U8dC5sZW5ndGg7Kyt1KWkuYWdncmVnYXRlKHRoaXMuX2FwcGVuZENoYXIodFt1XSxlLHIpKTtyZXR1cm4gbnVsbCE9ciYmKGkudGFpbFNoaWZ0Kz10aGlzLmFwcGVuZFRhaWwocikudGFpbFNoaWZ0KSx0aGlzLmVhZ2VyJiZudWxsIT1lJiZlLmlucHV0JiZ0JiZpLmFnZ3JlZ2F0ZSh0aGlzLl9hcHBlbmRFYWdlcigpKSxpfX0se2tleToicmVtb3ZlIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTowLGU9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0\/YXJndW1lbnRzWzFdOnRoaXMudmFsdWUubGVuZ3RoO3JldHVybiB0aGlzLl92YWx1ZT10aGlzLnZhbHVlLnNsaWNlKDAsdCkrdGhpcy52YWx1ZS5zbGljZShlKSxuZXcgWXJ9fSx7a2V5OiJ3aXRoVmFsdWVSZWZyZXNoIix2YWx1ZTpmdW5jdGlvbih0KXtpZih0aGlzLl9yZWZyZXNoaW5nfHwhdGhpcy5pc0luaXRpYWxpemVkKXJldHVybiB0KCk7dGhpcy5fcmVmcmVzaGluZz0hMDt2YXIgZT10aGlzLnJhd0lucHV0VmFsdWUsbj10aGlzLnZhbHVlLGk9dCgpO3JldHVybiB0aGlzLnJhd0lucHV0VmFsdWU9ZSx0aGlzLnZhbHVlJiZ0aGlzLnZhbHVlIT09biYmMD09PW4uaW5kZXhPZih0aGlzLnZhbHVlKSYmdGhpcy5hcHBlbmQobi5zbGljZSh0aGlzLnZhbHVlLmxlbmd0aCkse30sIiIpLGRlbGV0ZSB0aGlzLl9yZWZyZXNoaW5nLGl9fSx7a2V5OiJydW5Jc29sYXRlZCIsdmFsdWU6ZnVuY3Rpb24odCl7aWYodGhpcy5faXNvbGF0ZWR8fCF0aGlzLmlzSW5pdGlhbGl6ZWQpcmV0dXJuIHQodGhpcyk7dGhpcy5faXNvbGF0ZWQ9ITA7dmFyIGU9dGhpcy5zdGF0ZSxuPXQodGhpcyk7cmV0dXJuIHRoaXMuc3RhdGU9ZSxkZWxldGUgdGhpcy5faXNvbGF0ZWQsbn19LHtrZXk6ImRvUHJlcGFyZSIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGU9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0\/YXJndW1lbnRzWzFdOnt9O3JldHVybiB0aGlzLnByZXBhcmU\/dGhpcy5wcmVwYXJlKHQsdGhpcyxlKTp0fX0se2tleToiZG9WYWxpZGF0ZSIsdmFsdWU6ZnVuY3Rpb24odCl7cmV0dXJuKCF0aGlzLnZhbGlkYXRlfHx0aGlzLnZhbGlkYXRlKHRoaXMudmFsdWUsdGhpcyx0KSkmJighdGhpcy5wYXJlbnR8fHRoaXMucGFyZW50LmRvVmFsaWRhdGUodCkpfX0se2tleToiZG9Db21taXQiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5jb21taXQmJnRoaXMuY29tbWl0KHRoaXMudmFsdWUsdGhpcyl9fSx7a2V5OiJkb0Zvcm1hdCIsdmFsdWU6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuZm9ybWF0P3RoaXMuZm9ybWF0KHQsdGhpcyk6dH19LHtrZXk6ImRvUGFyc2UiLHZhbHVlOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnBhcnNlP3RoaXMucGFyc2UodCx0aGlzKTp0fX0se2tleToic3BsaWNlIix2YWx1ZTpmdW5jdGlvbih0LGUsbixpKXt2YXIgcix1PXQrZSxzPXRoaXMuZXh0cmFjdFRhaWwodSk7dGhpcy5lYWdlciYmKGk9ZnVuY3Rpb24odCl7c3dpdGNoKHQpe2Nhc2UgS3I6cmV0dXJuICRyO2Nhc2UgV3I6cmV0dXJuIFhyO2RlZmF1bHQ6cmV0dXJuIHR9fShpKSxyPXRoaXMuZXh0cmFjdElucHV0KDAsdSx7cmF3OiEwfSkpO3ZhciBhPXRoaXMubmVhcmVzdElucHV0UG9zKHQsZT4xJiYwIT09dCYmIXRoaXMuZWFnZXI\/R3I6aSksbz1uZXcgWXIoe3RhaWxTaGlmdDphLXR9KS5hZ2dyZWdhdGUodGhpcy5yZW1vdmUoYSkpO2lmKHRoaXMuZWFnZXImJmkhPT1HciYmcj09PXRoaXMucmF3SW5wdXRWYWx1ZSlpZihpPT09JHIpZm9yKHZhciBsO3I9PT10aGlzLnJhd0lucHV0VmFsdWUmJihsPXRoaXMudmFsdWUubGVuZ3RoKTspby5hZ2dyZWdhdGUobmV3IFlyKHt0YWlsU2hpZnQ6LTF9KSkuYWdncmVnYXRlKHRoaXMucmVtb3ZlKGwtMSkpO2Vsc2UgaT09PVhyJiZzLnVuc2hpZnQoKTtyZXR1cm4gby5hZ2dyZWdhdGUodGhpcy5hcHBlbmQobix7aW5wdXQ6ITB9LHMpKX19LHtrZXk6Im1hc2tFcXVhbHMiLHZhbHVlOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLm1hc2s9PT10fX1dKSx0fSgpO2Z1bmN0aW9uIHV1KHQpe2lmKG51bGw9PXQpdGhyb3cgbmV3IEVycm9yKCJtYXNrIHByb3BlcnR5IHNob3VsZCBiZSBkZWZpbmVkIik7cmV0dXJuIHQgaW5zdGFuY2VvZiBSZWdFeHA\/aXUuTWFza2VkUmVnRXhwOlpyKHQpP2l1Lk1hc2tlZFBhdHRlcm46dCBpbnN0YW5jZW9mIERhdGV8fHQ9PT1EYXRlP2l1Lk1hc2tlZERhdGU6dCBpbnN0YW5jZW9mIE51bWJlcnx8Im51bWJlciI9PXR5cGVvZiB0fHx0PT09TnVtYmVyP2l1Lk1hc2tlZE51bWJlcjpBcnJheS5pc0FycmF5KHQpfHx0PT09QXJyYXk\/aXUuTWFza2VkRHluYW1pYzppdS5NYXNrZWQmJnQucHJvdG90eXBlIGluc3RhbmNlb2YgaXUuTWFza2VkP3Q6dCBpbnN0YW5jZW9mIGl1Lk1hc2tlZD90LmNvbnN0cnVjdG9yOnQgaW5zdGFuY2VvZiBGdW5jdGlvbj9pdS5NYXNrZWRGdW5jdGlvbjooY29uc29sZS53YXJuKCJNYXNrIG5vdCBmb3VuZCBmb3IgbWFzayIsdCksaXUuTWFza2VkKX1mdW5jdGlvbiBzdSh0KXtpZihpdS5NYXNrZWQmJnQgaW5zdGFuY2VvZiBpdS5NYXNrZWQpcmV0dXJuIHQ7dmFyIGU9KHQ9T2JqZWN0LmFzc2lnbih7fSx0KSkubWFzaztpZihpdS5NYXNrZWQmJmUgaW5zdGFuY2VvZiBpdS5NYXNrZWQpcmV0dXJuIGU7dmFyIG49dXUoZSk7aWYoIW4pdGhyb3cgbmV3IEVycm9yKCJNYXNrZWQgY2xhc3MgaXMgbm90IGZvdW5kIGZvciBwcm92aWRlZCBtYXNrLCBhcHByb3ByaWF0ZSBtb2R1bGUgbmVlZHMgdG8gYmUgaW1wb3J0IG1hbnVhbGx5IGJlZm9yZSBjcmVhdGluZyBtYXNrLiIpO3JldHVybiBuZXcgbih0KX1ydS5ERUZBVUxUUz17Zm9ybWF0OmZ1bmN0aW9uKHQpe3JldHVybiB0fSxwYXJzZTpmdW5jdGlvbih0KXtyZXR1cm4gdH19LGl1Lk1hc2tlZD1ydSxpdS5jcmVhdGVNYXNrPXN1O3ZhciBhdT1bIm1hc2siXSxvdT17MDovXGQvLGE6L1tcdTAwNDEtXHUwMDVBXHUwMDYxLVx1MDA3QVx1MDBBQVx1MDBCNVx1MDBCQVx1MDBDMC1cdTAwRDZcdTAwRDgtXHUwMEY2XHUwMEY4LVx1MDJDMVx1MDJDNi1cdTAyRDFcdTAyRTAtXHUwMkU0XHUwMkVDXHUwMkVFXHUwMzcwLVx1MDM3NFx1MDM3Nlx1MDM3N1x1MDM3QS1cdTAzN0RcdTAzODZcdTAzODgtXHUwMzhBXHUwMzhDXHUwMzhFLVx1MDNBMVx1MDNBMy1cdTAzRjVcdTAzRjctXHUwNDgxXHUwNDhBLVx1MDUyN1x1MDUzMS1cdTA1NTZcdTA1NTlcdTA1NjEtXHUwNTg3XHUwNUQwLVx1MDVFQVx1MDVGMC1cdTA1RjJcdTA2MjAtXHUwNjRBXHUwNjZFXHUwNjZGXHUwNjcxLVx1MDZEM1x1MDZENVx1MDZFNVx1MDZFNlx1MDZFRVx1MDZFRlx1MDZGQS1cdTA2RkNcdTA2RkZcdTA3MTBcdTA3MTItXHUwNzJGXHUwNzRELVx1MDdBNVx1MDdCMVx1MDdDQS1cdTA3RUFcdTA3RjRcdTA3RjVcdTA3RkFcdTA4MDAtXHUwODE1XHUwODFBXHUwODI0XHUwODI4XHUwODQwLVx1MDg1OFx1MDhBMFx1MDhBMi1cdTA4QUNcdTA5MDQtXHUwOTM5XHUwOTNEXHUwOTUwXHUwOTU4LVx1MDk2MVx1MDk3MS1cdTA5NzdcdTA5NzktXHUwOTdGXHUwOTg1LVx1MDk4Q1x1MDk4Rlx1MDk5MFx1MDk5My1cdTA5QThcdTA5QUEtXHUwOUIwXHUwOUIyXHUwOUI2LVx1MDlCOVx1MDlCRFx1MDlDRVx1MDlEQ1x1MDlERFx1MDlERi1cdTA5RTFcdTA5RjBcdTA5RjFcdTBBMDUtXHUwQTBBXHUwQTBGXHUwQTEwXHUwQTEzLVx1MEEyOFx1MEEyQS1cdTBBMzBcdTBBMzJcdTBBMzNcdTBBMzVcdTBBMzZcdTBBMzhcdTBBMzlcdTBBNTktXHUwQTVDXHUwQTVFXHUwQTcyLVx1MEE3NFx1MEE4NS1cdTBBOERcdTBBOEYtXHUwQTkxXHUwQTkzLVx1MEFBOFx1MEFBQS1cdTBBQjBcdTBBQjJcdTBBQjNcdTBBQjUtXHUwQUI5XHUwQUJEXHUwQUQwXHUwQUUwXHUwQUUxXHUwQjA1LVx1MEIwQ1x1MEIwRlx1MEIxMFx1MEIxMy1cdTBCMjhcdTBCMkEtXHUwQjMwXHUwQjMyXHUwQjMzXHUwQjM1LVx1MEIzOVx1MEIzRFx1MEI1Q1x1MEI1RFx1MEI1Ri1cdTBCNjFcdTBCNzFcdTBCODNcdTBCODUtXHUwQjhBXHUwQjhFLVx1MEI5MFx1MEI5Mi1cdTBCOTVcdTBCOTlcdTBCOUFcdTBCOUNcdTBCOUVcdTBCOUZcdTBCQTNcdTBCQTRcdTBCQTgtXHUwQkFBXHUwQkFFLVx1MEJCOVx1MEJEMFx1MEMwNS1cdTBDMENcdTBDMEUtXHUwQzEwXHUwQzEyLVx1MEMyOFx1MEMyQS1cdTBDMzNcdTBDMzUtXHUwQzM5XHUwQzNEXHUwQzU4XHUwQzU5XHUwQzYwXHUwQzYxXHUwQzg1LVx1MEM4Q1x1MEM4RS1cdTBDOTBcdTBDOTItXHUwQ0E4XHUwQ0FBLVx1MENCM1x1MENCNS1cdTBDQjlcdTBDQkRcdTBDREVcdTBDRTBcdTBDRTFcdTBDRjFcdTBDRjJcdTBEMDUtXHUwRDBDXHUwRDBFLVx1MEQxMFx1MEQxMi1cdTBEM0FcdTBEM0RcdTBENEVcdTBENjBcdTBENjFcdTBEN0EtXHUwRDdGXHUwRDg1LVx1MEQ5Nlx1MEQ5QS1cdTBEQjFcdTBEQjMtXHUwREJCXHUwREJEXHUwREMwLVx1MERDNlx1MEUwMS1cdTBFMzBcdTBFMzJcdTBFMzNcdTBFNDAtXHUwRTQ2XHUwRTgxXHUwRTgyXHUwRTg0XHUwRTg3XHUwRTg4XHUwRThBXHUwRThEXHUwRTk0LVx1MEU5N1x1MEU5OS1cdTBFOUZcdTBFQTEtXHUwRUEzXHUwRUE1XHUwRUE3XHUwRUFBXHUwRUFCXHUwRUFELVx1MEVCMFx1MEVCMlx1MEVCM1x1MEVCRFx1MEVDMC1cdTBFQzRcdTBFQzZcdTBFREMtXHUwRURGXHUwRjAwXHUwRjQwLVx1MEY0N1x1MEY0OS1cdTBGNkNcdTBGODgtXHUwRjhDXHUxMDAwLVx1MTAyQVx1MTAzRlx1MTA1MC1cdTEwNTVcdTEwNUEtXHUxMDVEXHUxMDYxXHUxMDY1XHUxMDY2XHUxMDZFLVx1MTA3MFx1MTA3NS1cdTEwODFcdTEwOEVcdTEwQTAtXHUxMEM1XHUxMEM3XHUxMENEXHUxMEQwLVx1MTBGQVx1MTBGQy1cdTEyNDhcdTEyNEEtXHUxMjREXHUxMjUwLVx1MTI1Nlx1MTI1OFx1MTI1QS1cdTEyNURcdTEyNjAtXHUxMjg4XHUxMjhBLVx1MTI4RFx1MTI5MC1cdTEyQjBcdTEyQjItXHUxMkI1XHUxMkI4LVx1MTJCRVx1MTJDMFx1MTJDMi1cdTEyQzVcdTEyQzgtXHUxMkQ2XHUxMkQ4LVx1MTMxMFx1MTMxMi1cdTEzMTVcdTEzMTgtXHUxMzVBXHUxMzgwLVx1MTM4Rlx1MTNBMC1cdTEzRjRcdTE0MDEtXHUxNjZDXHUxNjZGLVx1MTY3Rlx1MTY4MS1cdTE2OUFcdTE2QTAtXHUxNkVBXHUxNzAwLVx1MTcwQ1x1MTcwRS1cdTE3MTFcdTE3MjAtXHUxNzMxXHUxNzQwLVx1MTc1MVx1MTc2MC1cdTE3NkNcdTE3NkUtXHUxNzcwXHUxNzgwLVx1MTdCM1x1MTdEN1x1MTdEQ1x1MTgyMC1cdTE4NzdcdTE4ODAtXHUxOEE4XHUxOEFBXHUxOEIwLVx1MThGNVx1MTkwMC1cdTE5MUNcdTE5NTAtXHUxOTZEXHUxOTcwLVx1MTk3NFx1MTk4MC1cdTE5QUJcdTE5QzEtXHUxOUM3XHUxQTAwLVx1MUExNlx1MUEyMC1cdTFBNTRcdTFBQTdcdTFCMDUtXHUxQjMzXHUxQjQ1LVx1MUI0Qlx1MUI4My1cdTFCQTBcdTFCQUVcdTFCQUZcdTFCQkEtXHUxQkU1XHUxQzAwLVx1MUMyM1x1MUM0RC1cdTFDNEZcdTFDNUEtXHUxQzdEXHUxQ0U5LVx1MUNFQ1x1MUNFRS1cdTFDRjFcdTFDRjVcdTFDRjZcdTFEMDAtXHUxREJGXHUxRTAwLVx1MUYxNVx1MUYxOC1cdTFGMURcdTFGMjAtXHUxRjQ1XHUxRjQ4LVx1MUY0RFx1MUY1MC1cdTFGNTdcdTFGNTlcdTFGNUJcdTFGNURcdTFGNUYtXHUxRjdEXHUxRjgwLVx1MUZCNFx1MUZCNi1cdTFGQkNcdTFGQkVcdTFGQzItXHUxRkM0XHUxRkM2LVx1MUZDQ1x1MUZEMC1cdTFGRDNcdTFGRDYtXHUxRkRCXHUxRkUwLVx1MUZFQ1x1MUZGMi1cdTFGRjRcdTFGRjYtXHUxRkZDXHUyMDcxXHUyMDdGXHUyMDkwLVx1MjA5Q1x1MjEwMlx1MjEwN1x1MjEwQS1cdTIxMTNcdTIxMTVcdTIxMTktXHUyMTFEXHUyMTI0XHUyMTI2XHUyMTI4XHUyMTJBLVx1MjEyRFx1MjEyRi1cdTIxMzlcdTIxM0MtXHUyMTNGXHUyMTQ1LVx1MjE0OVx1MjE0RVx1MjE4M1x1MjE4NFx1MkMwMC1cdTJDMkVcdTJDMzAtXHUyQzVFXHUyQzYwLVx1MkNFNFx1MkNFQi1cdTJDRUVcdTJDRjJcdTJDRjNcdTJEMDAtXHUyRDI1XHUyRDI3XHUyRDJEXHUyRDMwLVx1MkQ2N1x1MkQ2Rlx1MkQ4MC1cdTJEOTZcdTJEQTAtXHUyREE2XHUyREE4LVx1MkRBRVx1MkRCMC1cdTJEQjZcdTJEQjgtXHUyREJFXHUyREMwLVx1MkRDNlx1MkRDOC1cdTJEQ0VcdTJERDAtXHUyREQ2XHUyREQ4LVx1MkRERVx1MkUyRlx1MzAwNVx1MzAwNlx1MzAzMS1cdTMwMzVcdTMwM0JcdTMwM0NcdTMwNDEtXHUzMDk2XHUzMDlELVx1MzA5Rlx1MzBBMS1cdTMwRkFcdTMwRkMtXHUzMEZGXHUzMTA1LVx1MzEyRFx1MzEzMS1cdTMxOEVcdTMxQTAtXHUzMUJBXHUzMUYwLVx1MzFGRlx1MzQwMC1cdTREQjVcdTRFMDAtXHU5RkNDXHVBMDAwLVx1QTQ4Q1x1QTREMC1cdUE0RkRcdUE1MDAtXHVBNjBDXHVBNjEwLVx1QTYxRlx1QTYyQVx1QTYyQlx1QTY0MC1cdUE2NkVcdUE2N0YtXHVBNjk3XHVBNkEwLVx1QTZFNVx1QTcxNy1cdUE3MUZcdUE3MjItXHVBNzg4XHVBNzhCLVx1QTc4RVx1QTc5MC1cdUE3OTNcdUE3QTAtXHVBN0FBXHVBN0Y4LVx1QTgwMVx1QTgwMy1cdUE4MDVcdUE4MDctXHVBODBBXHVBODBDLVx1QTgyMlx1QTg0MC1cdUE4NzNcdUE4ODItXHVBOEIzXHVBOEYyLVx1QThGN1x1QThGQlx1QTkwQS1cdUE5MjVcdUE5MzAtXHVBOTQ2XHVBOTYwLVx1QTk3Q1x1QTk4NC1cdUE5QjJcdUE5Q0ZcdUFBMDAtXHVBQTI4XHVBQTQwLVx1QUE0Mlx1QUE0NC1cdUFBNEJcdUFBNjAtXHVBQTc2XHVBQTdBXHVBQTgwLVx1QUFBRlx1QUFCMVx1QUFCNVx1QUFCNlx1QUFCOS1cdUFBQkRcdUFBQzBcdUFBQzJcdUFBREItXHVBQUREXHVBQUUwLVx1QUFFQVx1QUFGMi1cdUFBRjRcdUFCMDEtXHVBQjA2XHVBQjA5LVx1QUIwRVx1QUIxMS1cdUFCMTZcdUFCMjAtXHVBQjI2XHVBQjI4LVx1QUIyRVx1QUJDMC1cdUFCRTJcdUFDMDAtXHVEN0EzXHVEN0IwLVx1RDdDNlx1RDdDQi1cdUQ3RkJcdUY5MDAtXHVGQTZEXHVGQTcwLVx1RkFEOVx1RkIwMC1cdUZCMDZcdUZCMTMtXHVGQjE3XHVGQjFEXHVGQjFGLVx1RkIyOFx1RkIyQS1cdUZCMzZcdUZCMzgtXHVGQjNDXHVGQjNFXHVGQjQwXHVGQjQxXHVGQjQzXHVGQjQ0XHVGQjQ2LVx1RkJCMVx1RkJEMy1cdUZEM0RcdUZENTAtXHVGRDhGXHVGRDkyLVx1RkRDN1x1RkRGMC1cdUZERkJcdUZFNzAtXHVGRTc0XHVGRTc2LVx1RkVGQ1x1RkYyMS1cdUZGM0FcdUZGNDEtXHVGRjVBXHVGRjY2LVx1RkZCRVx1RkZDMi1cdUZGQzdcdUZGQ0EtXHVGRkNGXHVGRkQyLVx1RkZEN1x1RkZEQS1cdUZGRENdLywiKiI6Ly4vfSxsdT1mdW5jdGlvbigpe2Z1bmN0aW9uIHQoZSl7eHIodGhpcyx0KTt2YXIgbj1lLm1hc2ssaT1qcihlLGF1KTt0aGlzLm1hc2tlZD1zdSh7bWFzazpufSksT2JqZWN0LmFzc2lnbih0aGlzLGkpfXJldHVybiBPcih0LFt7a2V5OiJyZXNldCIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmlzRmlsbGVkPSExLHRoaXMubWFza2VkLnJlc2V0KCl9fSx7a2V5OiJyZW1vdmUiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0\/YXJndW1lbnRzWzBdOjAsZT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06dGhpcy52YWx1ZS5sZW5ndGg7cmV0dXJuIDA9PT10JiZlPj0xPyh0aGlzLmlzRmlsbGVkPSExLHRoaXMubWFza2VkLnJlbW92ZSh0LGUpKTpuZXcgWXJ9fSx7a2V5OiJ2YWx1ZSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubWFza2VkLnZhbHVlfHwodGhpcy5pc0ZpbGxlZCYmIXRoaXMuaXNPcHRpb25hbD90aGlzLnBsYWNlaG9sZGVyQ2hhcjoiIil9fSx7a2V5OiJ1bm1hc2tlZFZhbHVlIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tYXNrZWQudW5tYXNrZWRWYWx1ZX19LHtrZXk6ImlzQ29tcGxldGUiLGdldDpmdW5jdGlvbigpe3JldHVybiBCb29sZWFuKHRoaXMubWFza2VkLnZhbHVlKXx8dGhpcy5pc09wdGlvbmFsfX0se2tleToiX2FwcGVuZENoYXIiLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp7fTtpZih0aGlzLmlzRmlsbGVkKXJldHVybiBuZXcgWXI7dmFyIG49dGhpcy5tYXNrZWQuc3RhdGUsaT10aGlzLm1hc2tlZC5fYXBwZW5kQ2hhcih0LGUpO3JldHVybiBpLmluc2VydGVkJiYhMT09PXRoaXMuZG9WYWxpZGF0ZShlKSYmKGkuaW5zZXJ0ZWQ9aS5yYXdJbnNlcnRlZD0iIix0aGlzLm1hc2tlZC5zdGF0ZT1uKSxpLmluc2VydGVkfHx0aGlzLmlzT3B0aW9uYWx8fHRoaXMubGF6eXx8ZS5pbnB1dHx8KGkuaW5zZXJ0ZWQ9dGhpcy5wbGFjZWhvbGRlckNoYXIpLGkuc2tpcD0haS5pbnNlcnRlZCYmIXRoaXMuaXNPcHRpb25hbCx0aGlzLmlzRmlsbGVkPUJvb2xlYW4oaS5pbnNlcnRlZCksaX19LHtrZXk6ImFwcGVuZCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdDtyZXR1cm4odD10aGlzLm1hc2tlZCkuYXBwZW5kLmFwcGx5KHQsYXJndW1lbnRzKX19LHtrZXk6Il9hcHBlbmRQbGFjZWhvbGRlciIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD1uZXcgWXI7cmV0dXJuIHRoaXMuaXNGaWxsZWR8fHRoaXMuaXNPcHRpb25hbHx8KHRoaXMuaXNGaWxsZWQ9ITAsdC5pbnNlcnRlZD10aGlzLnBsYWNlaG9sZGVyQ2hhciksdH19LHtrZXk6Il9hcHBlbmRFYWdlciIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IFlyfX0se2tleToiZXh0cmFjdFRhaWwiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ7cmV0dXJuKHQ9dGhpcy5tYXNrZWQpLmV4dHJhY3RUYWlsLmFwcGx5KHQsYXJndW1lbnRzKX19LHtrZXk6ImFwcGVuZFRhaWwiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ7cmV0dXJuKHQ9dGhpcy5tYXNrZWQpLmFwcGVuZFRhaWwuYXBwbHkodCxhcmd1bWVudHMpfX0se2tleToiZXh0cmFjdElucHV0Iix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTowLGU9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0\/YXJndW1lbnRzWzFdOnRoaXMudmFsdWUubGVuZ3RoLG49YXJndW1lbnRzLmxlbmd0aD4yP2FyZ3VtZW50c1syXTp2b2lkIDA7cmV0dXJuIHRoaXMubWFza2VkLmV4dHJhY3RJbnB1dCh0LGUsbil9fSx7a2V5OiJuZWFyZXN0SW5wdXRQb3MiLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTpHcixuPTAsaT10aGlzLnZhbHVlLmxlbmd0aCxyPU1hdGgubWluKE1hdGgubWF4KHQsbiksaSk7c3dpdGNoKGUpe2Nhc2UgS3I6Y2FzZSAkcjpyZXR1cm4gdGhpcy5pc0NvbXBsZXRlP3I6bjtjYXNlIFdyOmNhc2UgWHI6cmV0dXJuIHRoaXMuaXNDb21wbGV0ZT9yOmk7ZGVmYXVsdDpyZXR1cm4gcn19fSx7a2V5OiJkb1ZhbGlkYXRlIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0LGU7cmV0dXJuKHQ9dGhpcy5tYXNrZWQpLmRvVmFsaWRhdGUuYXBwbHkodCxhcmd1bWVudHMpJiYoIXRoaXMucGFyZW50fHwoZT10aGlzLnBhcmVudCkuZG9WYWxpZGF0ZS5hcHBseShlLGFyZ3VtZW50cykpfX0se2tleToiZG9Db21taXQiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5tYXNrZWQuZG9Db21taXQoKX19LHtrZXk6InN0YXRlIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm57bWFza2VkOnRoaXMubWFza2VkLnN0YXRlLGlzRmlsbGVkOnRoaXMuaXNGaWxsZWR9fSxzZXQ6ZnVuY3Rpb24odCl7dGhpcy5tYXNrZWQuc3RhdGU9dC5tYXNrZWQsdGhpcy5pc0ZpbGxlZD10LmlzRmlsbGVkfX1dKSx0fSgpLGh1PWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdChlKXt4cih0aGlzLHQpLE9iamVjdC5hc3NpZ24odGhpcyxlKSx0aGlzLl92YWx1ZT0iIix0aGlzLmlzRml4ZWQ9ITB9cmV0dXJuIE9yKHQsW3trZXk6InZhbHVlIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fdmFsdWV9fSx7a2V5OiJ1bm1hc2tlZFZhbHVlIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pc1VubWFza2luZz90aGlzLnZhbHVlOiIifX0se2tleToicmVzZXQiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5faXNSYXdJbnB1dD0hMSx0aGlzLl92YWx1ZT0iIn19LHtrZXk6InJlbW92ZSIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06MCxlPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp0aGlzLl92YWx1ZS5sZW5ndGg7cmV0dXJuIHRoaXMuX3ZhbHVlPXRoaXMuX3ZhbHVlLnNsaWNlKDAsdCkrdGhpcy5fdmFsdWUuc2xpY2UoZSksdGhpcy5fdmFsdWV8fCh0aGlzLl9pc1Jhd0lucHV0PSExKSxuZXcgWXJ9fSx7a2V5OiJuZWFyZXN0SW5wdXRQb3MiLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTpHcixuPTAsaT10aGlzLl92YWx1ZS5sZW5ndGg7c3dpdGNoKGUpe2Nhc2UgS3I6Y2FzZSAkcjpyZXR1cm4gbjtkZWZhdWx0OnJldHVybiBpfX19LHtrZXk6ImV4dHJhY3RJbnB1dCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06MCxlPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp0aGlzLl92YWx1ZS5sZW5ndGgsbj1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXT9hcmd1bWVudHNbMl06e307cmV0dXJuIG4ucmF3JiZ0aGlzLl9pc1Jhd0lucHV0JiZ0aGlzLl92YWx1ZS5zbGljZSh0LGUpfHwiIn19LHtrZXk6ImlzQ29tcGxldGUiLGdldDpmdW5jdGlvbigpe3JldHVybiEwfX0se2tleToiaXNGaWxsZWQiLGdldDpmdW5jdGlvbigpe3JldHVybiBCb29sZWFuKHRoaXMuX3ZhbHVlKX19LHtrZXk6Il9hcHBlbmRDaGFyIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06e30sbj1uZXcgWXI7aWYodGhpcy5fdmFsdWUpcmV0dXJuIG47dmFyIGk9dGhpcy5jaGFyPT09dCxyPWkmJih0aGlzLmlzVW5tYXNraW5nfHxlLmlucHV0fHxlLnJhdykmJiF0aGlzLmVhZ2VyJiYhZS50YWlsO3JldHVybiByJiYobi5yYXdJbnNlcnRlZD10aGlzLmNoYXIpLHRoaXMuX3ZhbHVlPW4uaW5zZXJ0ZWQ9dGhpcy5jaGFyLHRoaXMuX2lzUmF3SW5wdXQ9ciYmKGUucmF3fHxlLmlucHV0KSxufX0se2tleToiX2FwcGVuZEVhZ2VyIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9hcHBlbmRDaGFyKHRoaXMuY2hhcil9fSx7a2V5OiJfYXBwZW5kUGxhY2Vob2xkZXIiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9bmV3IFlyO3JldHVybiB0aGlzLl92YWx1ZXx8KHRoaXMuX3ZhbHVlPXQuaW5zZXJ0ZWQ9dGhpcy5jaGFyKSx0fX0se2tleToiZXh0cmFjdFRhaWwiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdfHx0aGlzLnZhbHVlLmxlbmd0aCxuZXcgbnUoIiIpfX0se2tleToiYXBwZW5kVGFpbCIsdmFsdWU6ZnVuY3Rpb24odCl7cmV0dXJuIFpyKHQpJiYodD1uZXcgbnUoU3RyaW5nKHQpKSksdC5hcHBlbmRUbyh0aGlzKX19LHtrZXk6ImFwcGVuZCIsdmFsdWU6ZnVuY3Rpb24odCxlLG4pe3ZhciBpPXRoaXMuX2FwcGVuZENoYXIodFswXSxlKTtyZXR1cm4gbnVsbCE9biYmKGkudGFpbFNoaWZ0Kz10aGlzLmFwcGVuZFRhaWwobikudGFpbFNoaWZ0KSxpfX0se2tleToiZG9Db21taXQiLHZhbHVlOmZ1bmN0aW9uKCl7fX0se2tleToic3RhdGUiLGdldDpmdW5jdGlvbigpe3JldHVybntfdmFsdWU6dGhpcy5fdmFsdWUsX2lzUmF3SW5wdXQ6dGhpcy5faXNSYXdJbnB1dH19LHNldDpmdW5jdGlvbih0KXtPYmplY3QuYXNzaWduKHRoaXMsdCl9fV0pLHR9KCksY3U9WyJjaHVua3MiXSxmdT1mdW5jdGlvbigpe2Z1bmN0aW9uIHQoKXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06W10sbj1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06MDt4cih0aGlzLHQpLHRoaXMuY2h1bmtzPWUsdGhpcy5mcm9tPW59cmV0dXJuIE9yKHQsW3trZXk6InRvU3RyaW5nIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmNodW5rcy5tYXAoU3RyaW5nKS5qb2luKCIiKX19LHtrZXk6ImV4dGVuZCIsdmFsdWU6ZnVuY3Rpb24oZSl7aWYoU3RyaW5nKGUpKXtacihlKSYmKGU9bmV3IG51KFN0cmluZyhlKSkpO3ZhciBuPXRoaXMuY2h1bmtzW3RoaXMuY2h1bmtzLmxlbmd0aC0xXSxpPW4mJihuLnN0b3A9PT1lLnN0b3B8fG51bGw9PWUuc3RvcCkmJmUuZnJvbT09PW4uZnJvbStuLnRvU3RyaW5nKCkubGVuZ3RoO2lmKGUgaW5zdGFuY2VvZiBudSlpP24uZXh0ZW5kKGUudG9TdHJpbmcoKSk6dGhpcy5jaHVua3MucHVzaChlKTtlbHNlIGlmKGUgaW5zdGFuY2VvZiB0KXtpZihudWxsPT1lLnN0b3ApZm9yKHZhciByO2UuY2h1bmtzLmxlbmd0aCYmbnVsbD09ZS5jaHVua3NbMF0uc3RvcDspKHI9ZS5jaHVua3Muc2hpZnQoKSkuZnJvbSs9ZS5mcm9tLHRoaXMuZXh0ZW5kKHIpO2UudG9TdHJpbmcoKSYmKGUuc3RvcD1lLmJsb2NrSW5kZXgsdGhpcy5jaHVua3MucHVzaChlKSl9fX19LHtrZXk6ImFwcGVuZFRvIix2YWx1ZTpmdW5jdGlvbihlKXtpZighKGUgaW5zdGFuY2VvZiBpdS5NYXNrZWRQYXR0ZXJuKSlyZXR1cm4gbmV3IG51KHRoaXMudG9TdHJpbmcoKSkuYXBwZW5kVG8oZSk7Zm9yKHZhciBuPW5ldyBZcixpPTA7aTx0aGlzLmNodW5rcy5sZW5ndGgmJiFuLnNraXA7KytpKXt2YXIgcj10aGlzLmNodW5rc1tpXSx1PWUuX21hcFBvc1RvQmxvY2soZS52YWx1ZS5sZW5ndGgpLHM9ci5zdG9wLGE9dm9pZCAwO2lmKG51bGwhPXMmJighdXx8dS5pbmRleDw9cykmJigociBpbnN0YW5jZW9mIHR8fGUuX3N0b3BzLmluZGV4T2Yocyk+PTApJiZuLmFnZ3JlZ2F0ZShlLl9hcHBlbmRQbGFjZWhvbGRlcihzKSksYT1yIGluc3RhbmNlb2YgdCYmZS5fYmxvY2tzW3NdKSxhKXt2YXIgbz1hLmFwcGVuZFRhaWwocik7by5za2lwPSExLG4uYWdncmVnYXRlKG8pLGUuX3ZhbHVlKz1vLmluc2VydGVkO3ZhciBsPXIudG9TdHJpbmcoKS5zbGljZShvLnJhd0luc2VydGVkLmxlbmd0aCk7bCYmbi5hZ2dyZWdhdGUoZS5hcHBlbmQobCx7dGFpbDohMH0pKX1lbHNlIG4uYWdncmVnYXRlKGUuYXBwZW5kKHIudG9TdHJpbmcoKSx7dGFpbDohMH0pKX1yZXR1cm4gbn19LHtrZXk6InN0YXRlIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm57Y2h1bmtzOnRoaXMuY2h1bmtzLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHQuc3RhdGV9KSksZnJvbTp0aGlzLmZyb20sc3RvcDp0aGlzLnN0b3AsYmxvY2tJbmRleDp0aGlzLmJsb2NrSW5kZXh9fSxzZXQ6ZnVuY3Rpb24oZSl7dmFyIG49ZS5jaHVua3MsaT1qcihlLGN1KTtPYmplY3QuYXNzaWduKHRoaXMsaSksdGhpcy5jaHVua3M9bi5tYXAoKGZ1bmN0aW9uKGUpe3ZhciBuPSJjaHVua3MiaW4gZT9uZXcgdDpuZXcgbnU7cmV0dXJuIG4uc3RhdGU9ZSxufSkpfX0se2tleToidW5zaGlmdCIsdmFsdWU6ZnVuY3Rpb24odCl7aWYoIXRoaXMuY2h1bmtzLmxlbmd0aHx8bnVsbCE9dCYmdGhpcy5mcm9tPj10KXJldHVybiIiO2Zvcih2YXIgZT1udWxsIT10P3QtdGhpcy5mcm9tOnQsbj0wO248dGhpcy5jaHVua3MubGVuZ3RoOyl7dmFyIGk9dGhpcy5jaHVua3Nbbl0scj1pLnVuc2hpZnQoZSk7aWYoaS50b1N0cmluZygpKXtpZighcilicmVhazsrK259ZWxzZSB0aGlzLmNodW5rcy5zcGxpY2UobiwxKTtpZihyKXJldHVybiByfXJldHVybiIifX0se2tleToic2hpZnQiLHZhbHVlOmZ1bmN0aW9uKCl7aWYoIXRoaXMuY2h1bmtzLmxlbmd0aClyZXR1cm4iIjtmb3IodmFyIHQ9dGhpcy5jaHVua3MubGVuZ3RoLTE7MDw9dDspe3ZhciBlPXRoaXMuY2h1bmtzW3RdLG49ZS5zaGlmdCgpO2lmKGUudG9TdHJpbmcoKSl7aWYoIW4pYnJlYWs7LS10fWVsc2UgdGhpcy5jaHVua3Muc3BsaWNlKHQsMSk7aWYobilyZXR1cm4gbn1yZXR1cm4iIn19XSksdH0oKSxwdT1mdW5jdGlvbigpe2Z1bmN0aW9uIHQoZSxuKXt4cih0aGlzLHQpLHRoaXMubWFza2VkPWUsdGhpcy5fbG9nPVtdO3ZhciBpPWUuX21hcFBvc1RvQmxvY2sobil8fChuPDA\/e2luZGV4OjAsb2Zmc2V0OjB9OntpbmRleDp0aGlzLm1hc2tlZC5fYmxvY2tzLmxlbmd0aCxvZmZzZXQ6MH0pLHI9aS5vZmZzZXQsdT1pLmluZGV4O3RoaXMub2Zmc2V0PXIsdGhpcy5pbmRleD11LHRoaXMub2s9ITF9cmV0dXJuIE9yKHQsW3trZXk6ImJsb2NrIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tYXNrZWQuX2Jsb2Nrc1t0aGlzLmluZGV4XX19LHtrZXk6InBvcyIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubWFza2VkLl9ibG9ja1N0YXJ0UG9zKHRoaXMuaW5kZXgpK3RoaXMub2Zmc2V0fX0se2tleToic3RhdGUiLGdldDpmdW5jdGlvbigpe3JldHVybntpbmRleDp0aGlzLmluZGV4LG9mZnNldDp0aGlzLm9mZnNldCxvazp0aGlzLm9rfX0sc2V0OmZ1bmN0aW9uKHQpe09iamVjdC5hc3NpZ24odGhpcyx0KX19LHtrZXk6InB1c2hTdGF0ZSIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLl9sb2cucHVzaCh0aGlzLnN0YXRlKX19LHtrZXk6InBvcFN0YXRlIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PXRoaXMuX2xvZy5wb3AoKTtyZXR1cm4gdGhpcy5zdGF0ZT10LHR9fSx7a2V5OiJiaW5kQmxvY2siLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5ibG9ja3x8KHRoaXMuaW5kZXg8MCYmKHRoaXMuaW5kZXg9MCx0aGlzLm9mZnNldD0wKSx0aGlzLmluZGV4Pj10aGlzLm1hc2tlZC5fYmxvY2tzLmxlbmd0aCYmKHRoaXMuaW5kZXg9dGhpcy5tYXNrZWQuX2Jsb2Nrcy5sZW5ndGgtMSx0aGlzLm9mZnNldD10aGlzLmJsb2NrLnZhbHVlLmxlbmd0aCkpfX0se2tleToiX3B1c2hMZWZ0Iix2YWx1ZTpmdW5jdGlvbih0KXtmb3IodGhpcy5wdXNoU3RhdGUoKSx0aGlzLmJpbmRCbG9jaygpOzA8PXRoaXMuaW5kZXg7LS10aGlzLmluZGV4LHRoaXMub2Zmc2V0PShudWxsPT09KGU9dGhpcy5ibG9jayl8fHZvaWQgMD09PWU\/dm9pZCAwOmUudmFsdWUubGVuZ3RoKXx8MCl7dmFyIGU7aWYodCgpKXJldHVybiB0aGlzLm9rPSEwfXJldHVybiB0aGlzLm9rPSExfX0se2tleToiX3B1c2hSaWdodCIsdmFsdWU6ZnVuY3Rpb24odCl7Zm9yKHRoaXMucHVzaFN0YXRlKCksdGhpcy5iaW5kQmxvY2soKTt0aGlzLmluZGV4PHRoaXMubWFza2VkLl9ibG9ja3MubGVuZ3RoOysrdGhpcy5pbmRleCx0aGlzLm9mZnNldD0wKWlmKHQoKSlyZXR1cm4gdGhpcy5vaz0hMDtyZXR1cm4gdGhpcy5vaz0hMX19LHtrZXk6InB1c2hMZWZ0QmVmb3JlRmlsbGVkIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PXRoaXM7cmV0dXJuIHRoaXMuX3B1c2hMZWZ0KChmdW5jdGlvbigpe2lmKCF0LmJsb2NrLmlzRml4ZWQmJnQuYmxvY2sudmFsdWUpcmV0dXJuIHQub2Zmc2V0PXQuYmxvY2submVhcmVzdElucHV0UG9zKHQub2Zmc2V0LCRyKSwwIT09dC5vZmZzZXR8fHZvaWQgMH0pKX19LHtrZXk6InB1c2hMZWZ0QmVmb3JlSW5wdXQiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztyZXR1cm4gdGhpcy5fcHVzaExlZnQoKGZ1bmN0aW9uKCl7aWYoIXQuYmxvY2suaXNGaXhlZClyZXR1cm4gdC5vZmZzZXQ9dC5ibG9jay5uZWFyZXN0SW5wdXRQb3ModC5vZmZzZXQsS3IpLCEwfSkpfX0se2tleToicHVzaExlZnRCZWZvcmVSZXF1aXJlZCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3JldHVybiB0aGlzLl9wdXNoTGVmdCgoZnVuY3Rpb24oKXtpZighKHQuYmxvY2suaXNGaXhlZHx8dC5ibG9jay5pc09wdGlvbmFsJiYhdC5ibG9jay52YWx1ZSkpcmV0dXJuIHQub2Zmc2V0PXQuYmxvY2submVhcmVzdElucHV0UG9zKHQub2Zmc2V0LEtyKSwhMH0pKX19LHtrZXk6InB1c2hSaWdodEJlZm9yZUZpbGxlZCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3JldHVybiB0aGlzLl9wdXNoUmlnaHQoKGZ1bmN0aW9uKCl7aWYoIXQuYmxvY2suaXNGaXhlZCYmdC5ibG9jay52YWx1ZSlyZXR1cm4gdC5vZmZzZXQ9dC5ibG9jay5uZWFyZXN0SW5wdXRQb3ModC5vZmZzZXQsWHIpLHQub2Zmc2V0IT09dC5ibG9jay52YWx1ZS5sZW5ndGh8fHZvaWQgMH0pKX19LHtrZXk6InB1c2hSaWdodEJlZm9yZUlucHV0Iix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PXRoaXM7cmV0dXJuIHRoaXMuX3B1c2hSaWdodCgoZnVuY3Rpb24oKXtpZighdC5ibG9jay5pc0ZpeGVkKXJldHVybiB0Lm9mZnNldD10LmJsb2NrLm5lYXJlc3RJbnB1dFBvcyh0Lm9mZnNldCxHciksITB9KSl9fSx7a2V5OiJwdXNoUmlnaHRCZWZvcmVSZXF1aXJlZCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3JldHVybiB0aGlzLl9wdXNoUmlnaHQoKGZ1bmN0aW9uKCl7aWYoISh0LmJsb2NrLmlzRml4ZWR8fHQuYmxvY2suaXNPcHRpb25hbCYmIXQuYmxvY2sudmFsdWUpKXJldHVybiB0Lm9mZnNldD10LmJsb2NrLm5lYXJlc3RJbnB1dFBvcyh0Lm9mZnNldCxHciksITB9KSl9fV0pLHR9KCksZHU9ZnVuY3Rpb24odCl7UHIobix0KTt2YXIgZT1WcihuKTtmdW5jdGlvbiBuKCl7cmV0dXJuIHhyKHRoaXMsbiksZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9cmV0dXJuIE9yKG4sW3trZXk6Il91cGRhdGUiLHZhbHVlOmZ1bmN0aW9uKHQpe3QubWFzayYmKHQudmFsaWRhdGU9ZnVuY3Rpb24oZSl7cmV0dXJuIGUuc2VhcmNoKHQubWFzayk+PTB9KSxOcihUcihuLnByb3RvdHlwZSksIl91cGRhdGUiLHRoaXMpLmNhbGwodGhpcyx0KX19XSksbn0ocnUpO2l1Lk1hc2tlZFJlZ0V4cD1kdTt2YXIgdnU9WyJfYmxvY2tzIl0sZ3U9ZnVuY3Rpb24odCl7UHIobix0KTt2YXIgZT1WcihuKTtmdW5jdGlvbiBuKCl7dmFyIHQ9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0\/YXJndW1lbnRzWzBdOnt9O3JldHVybiB4cih0aGlzLG4pLHQuZGVmaW5pdGlvbnM9T2JqZWN0LmFzc2lnbih7fSxvdSx0LmRlZmluaXRpb25zKSxlLmNhbGwodGhpcyxPYmplY3QuYXNzaWduKHt9LG4uREVGQVVMVFMsdCkpfXJldHVybiBPcihuLFt7a2V5OiJfdXBkYXRlIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTp7fTt0LmRlZmluaXRpb25zPU9iamVjdC5hc3NpZ24oe30sdGhpcy5kZWZpbml0aW9ucyx0LmRlZmluaXRpb25zKSxOcihUcihuLnByb3RvdHlwZSksIl91cGRhdGUiLHRoaXMpLmNhbGwodGhpcyx0KSx0aGlzLl9yZWJ1aWxkTWFzaygpfX0se2tleToiX3JlYnVpbGRNYXNrIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PXRoaXMsZT10aGlzLmRlZmluaXRpb25zO3RoaXMuX2Jsb2Nrcz1bXSx0aGlzLl9zdG9wcz1bXSx0aGlzLl9tYXNrZWRCbG9ja3M9e307dmFyIGk9dGhpcy5tYXNrO2lmKGkmJmUpZm9yKHZhciByPSExLHU9ITEscz0wO3M8aS5sZW5ndGg7KytzKXtpZih0aGlzLmJsb2NrcylpZigiY29udGludWUiPT09ZnVuY3Rpb24oKXt2YXIgZT1pLnNsaWNlKHMpLG49T2JqZWN0LmtleXModC5ibG9ja3MpLmZpbHRlcigoZnVuY3Rpb24odCl7cmV0dXJuIDA9PT1lLmluZGV4T2YodCl9KSk7bi5zb3J0KChmdW5jdGlvbih0LGUpe3JldHVybiBlLmxlbmd0aC10Lmxlbmd0aH0pKTt2YXIgcj1uWzBdO2lmKHIpe3ZhciB1PXN1KE9iamVjdC5hc3NpZ24oe3BhcmVudDp0LGxhenk6dC5sYXp5LGVhZ2VyOnQuZWFnZXIscGxhY2Vob2xkZXJDaGFyOnQucGxhY2Vob2xkZXJDaGFyLG92ZXJ3cml0ZTp0Lm92ZXJ3cml0ZX0sdC5ibG9ja3Nbcl0pKTtyZXR1cm4gdSYmKHQuX2Jsb2Nrcy5wdXNoKHUpLHQuX21hc2tlZEJsb2Nrc1tyXXx8KHQuX21hc2tlZEJsb2Nrc1tyXT1bXSksdC5fbWFza2VkQmxvY2tzW3JdLnB1c2godC5fYmxvY2tzLmxlbmd0aC0xKSkscys9ci5sZW5ndGgtMSwiY29udGludWUifX0oKSljb250aW51ZTt2YXIgYT1pW3NdLG89YSBpbiBlO2lmKGEhPT1uLlNUT1BfQ0hBUilpZigieyIhPT1hJiYifSIhPT1hKWlmKCJbIiE9PWEmJiJdIiE9PWEpe2lmKGE9PT1uLkVTQ0FQRV9DSEFSKXtpZigrK3MsIShhPWlbc10pKWJyZWFrO289ITF9dmFyIGw9bz9uZXcgbHUoe3BhcmVudDp0aGlzLGxhenk6dGhpcy5sYXp5LGVhZ2VyOnRoaXMuZWFnZXIscGxhY2Vob2xkZXJDaGFyOnRoaXMucGxhY2Vob2xkZXJDaGFyLG1hc2s6ZVthXSxpc09wdGlvbmFsOnV9KTpuZXcgaHUoe2NoYXI6YSxlYWdlcjp0aGlzLmVhZ2VyLGlzVW5tYXNraW5nOnJ9KTt0aGlzLl9ibG9ja3MucHVzaChsKX1lbHNlIHU9IXU7ZWxzZSByPSFyO2Vsc2UgdGhpcy5fc3RvcHMucHVzaCh0aGlzLl9ibG9ja3MubGVuZ3RoKX19fSx7a2V5OiJzdGF0ZSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIE9iamVjdC5hc3NpZ24oe30sTnIoVHIobi5wcm90b3R5cGUpLCJzdGF0ZSIsdGhpcykse19ibG9ja3M6dGhpcy5fYmxvY2tzLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHQuc3RhdGV9KSl9KX0sc2V0OmZ1bmN0aW9uKHQpe3ZhciBlPXQuX2Jsb2NrcyxpPWpyKHQsdnUpO3RoaXMuX2Jsb2Nrcy5mb3JFYWNoKChmdW5jdGlvbih0LG4pe3JldHVybiB0LnN0YXRlPWVbbl19KSksenIoVHIobi5wcm90b3R5cGUpLCJzdGF0ZSIsaSx0aGlzLCEwKX19LHtrZXk6InJlc2V0Iix2YWx1ZTpmdW5jdGlvbigpe05yKFRyKG4ucHJvdG90eXBlKSwicmVzZXQiLHRoaXMpLmNhbGwodGhpcyksdGhpcy5fYmxvY2tzLmZvckVhY2goKGZ1bmN0aW9uKHQpe3JldHVybiB0LnJlc2V0KCl9KSl9fSx7a2V5OiJpc0NvbXBsZXRlIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYmxvY2tzLmV2ZXJ5KChmdW5jdGlvbih0KXtyZXR1cm4gdC5pc0NvbXBsZXRlfSkpfX0se2tleToiaXNGaWxsZWQiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9ibG9ja3MuZXZlcnkoKGZ1bmN0aW9uKHQpe3JldHVybiB0LmlzRmlsbGVkfSkpfX0se2tleToiaXNGaXhlZCIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2Jsb2Nrcy5ldmVyeSgoZnVuY3Rpb24odCl7cmV0dXJuIHQuaXNGaXhlZH0pKX19LHtrZXk6ImlzT3B0aW9uYWwiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9ibG9ja3MuZXZlcnkoKGZ1bmN0aW9uKHQpe3JldHVybiB0LmlzT3B0aW9uYWx9KSl9fSx7a2V5OiJkb0NvbW1pdCIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLl9ibG9ja3MuZm9yRWFjaCgoZnVuY3Rpb24odCl7cmV0dXJuIHQuZG9Db21taXQoKX0pKSxOcihUcihuLnByb3RvdHlwZSksImRvQ29tbWl0Iix0aGlzKS5jYWxsKHRoaXMpfX0se2tleToidW5tYXNrZWRWYWx1ZSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2Jsb2Nrcy5yZWR1Y2UoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQrZS51bm1hc2tlZFZhbHVlfSksIiIpfSxzZXQ6ZnVuY3Rpb24odCl7enIoVHIobi5wcm90b3R5cGUpLCJ1bm1hc2tlZFZhbHVlIix0LHRoaXMsITApfX0se2tleToidmFsdWUiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9ibG9ja3MucmVkdWNlKChmdW5jdGlvbih0LGUpe3JldHVybiB0K2UudmFsdWV9KSwiIil9LHNldDpmdW5jdGlvbih0KXt6cihUcihuLnByb3RvdHlwZSksInZhbHVlIix0LHRoaXMsITApfX0se2tleToiYXBwZW5kVGFpbCIsdmFsdWU6ZnVuY3Rpb24odCl7cmV0dXJuIE5yKFRyKG4ucHJvdG90eXBlKSwiYXBwZW5kVGFpbCIsdGhpcykuY2FsbCh0aGlzLHQpLmFnZ3JlZ2F0ZSh0aGlzLl9hcHBlbmRQbGFjZWhvbGRlcigpKX19LHtrZXk6Il9hcHBlbmRFYWdlciIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdCxlPW5ldyBZcixuPW51bGw9PT0odD10aGlzLl9tYXBQb3NUb0Jsb2NrKHRoaXMudmFsdWUubGVuZ3RoKSl8fHZvaWQgMD09PXQ\/dm9pZCAwOnQuaW5kZXg7aWYobnVsbD09bilyZXR1cm4gZTt0aGlzLl9ibG9ja3Nbbl0uaXNGaWxsZWQmJisrbjtmb3IodmFyIGk9bjtpPHRoaXMuX2Jsb2Nrcy5sZW5ndGg7KytpKXt2YXIgcj10aGlzLl9ibG9ja3NbaV0uX2FwcGVuZEVhZ2VyKCk7aWYoIXIuaW5zZXJ0ZWQpYnJlYWs7ZS5hZ2dyZWdhdGUocil9cmV0dXJuIGV9fSx7a2V5OiJfYXBwZW5kQ2hhclJhdyIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGU9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0\/YXJndW1lbnRzWzFdOnt9LG49dGhpcy5fbWFwUG9zVG9CbG9jayh0aGlzLnZhbHVlLmxlbmd0aCksaT1uZXcgWXI7aWYoIW4pcmV0dXJuIGk7Zm9yKHZhciByPW4uaW5kZXg7Oysrcil7dmFyIHUscz10aGlzLl9ibG9ja3Nbcl07aWYoIXMpYnJlYWs7dmFyIGE9cy5fYXBwZW5kQ2hhcih0LE9iamVjdC5hc3NpZ24oe30sZSx7X2JlZm9yZVRhaWxTdGF0ZTpudWxsPT09KHU9ZS5fYmVmb3JlVGFpbFN0YXRlKXx8dm9pZCAwPT09dT92b2lkIDA6dS5fYmxvY2tzW3JdfSkpLG89YS5za2lwO2lmKGkuYWdncmVnYXRlKGEpLG98fGEucmF3SW5zZXJ0ZWQpYnJlYWt9cmV0dXJuIGl9fSx7a2V5OiJleHRyYWN0VGFpbCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLGU9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0\/YXJndW1lbnRzWzBdOjAsbj1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06dGhpcy52YWx1ZS5sZW5ndGgsaT1uZXcgZnU7cmV0dXJuIGU9PT1ufHx0aGlzLl9mb3JFYWNoQmxvY2tzSW5SYW5nZShlLG4sKGZ1bmN0aW9uKGUsbixyLHUpe3ZhciBzPWUuZXh0cmFjdFRhaWwocix1KTtzLnN0b3A9dC5fZmluZFN0b3BCZWZvcmUobikscy5mcm9tPXQuX2Jsb2NrU3RhcnRQb3MobikscyBpbnN0YW5jZW9mIGZ1JiYocy5ibG9ja0luZGV4PW4pLGkuZXh0ZW5kKHMpfSkpLGl9fSx7a2V5OiJleHRyYWN0SW5wdXQiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0\/YXJndW1lbnRzWzBdOjAsZT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06dGhpcy52YWx1ZS5sZW5ndGgsbj1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXT9hcmd1bWVudHNbMl06e307aWYodD09PWUpcmV0dXJuIiI7dmFyIGk9IiI7cmV0dXJuIHRoaXMuX2ZvckVhY2hCbG9ja3NJblJhbmdlKHQsZSwoZnVuY3Rpb24odCxlLHIsdSl7aSs9dC5leHRyYWN0SW5wdXQocix1LG4pfSkpLGl9fSx7a2V5OiJfZmluZFN0b3BCZWZvcmUiLHZhbHVlOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxuPTA7bjx0aGlzLl9zdG9wcy5sZW5ndGg7KytuKXt2YXIgaT10aGlzLl9zdG9wc1tuXTtpZighKGk8PXQpKWJyZWFrO2U9aX1yZXR1cm4gZX19LHtrZXk6Il9hcHBlbmRQbGFjZWhvbGRlciIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcyxuPW5ldyBZcjtpZih0aGlzLmxhenkmJm51bGw9PXQpcmV0dXJuIG47dmFyIGk9dGhpcy5fbWFwUG9zVG9CbG9jayh0aGlzLnZhbHVlLmxlbmd0aCk7aWYoIWkpcmV0dXJuIG47dmFyIHI9aS5pbmRleCx1PW51bGwhPXQ\/dDp0aGlzLl9ibG9ja3MubGVuZ3RoO3JldHVybiB0aGlzLl9ibG9ja3Muc2xpY2Uocix1KS5mb3JFYWNoKChmdW5jdGlvbihpKXtpZighaS5sYXp5fHxudWxsIT10KXt2YXIgcj1udWxsIT1pLl9ibG9ja3M\/W2kuX2Jsb2Nrcy5sZW5ndGhdOltdLHU9aS5fYXBwZW5kUGxhY2Vob2xkZXIuYXBwbHkoaSxyKTtlLl92YWx1ZSs9dS5pbnNlcnRlZCxuLmFnZ3JlZ2F0ZSh1KX19KSksbn19LHtrZXk6Il9tYXBQb3NUb0Jsb2NrIix2YWx1ZTpmdW5jdGlvbih0KXtmb3IodmFyIGU9IiIsbj0wO248dGhpcy5fYmxvY2tzLmxlbmd0aDsrK24pe3ZhciBpPXRoaXMuX2Jsb2Nrc1tuXSxyPWUubGVuZ3RoO2lmKHQ8PShlKz1pLnZhbHVlKS5sZW5ndGgpcmV0dXJue2luZGV4Om4sb2Zmc2V0OnQtcn19fX0se2tleToiX2Jsb2NrU3RhcnRQb3MiLHZhbHVlOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9ibG9ja3Muc2xpY2UoMCx0KS5yZWR1Y2UoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQrZS52YWx1ZS5sZW5ndGh9KSwwKX19LHtrZXk6Il9mb3JFYWNoQmxvY2tzSW5SYW5nZSIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGU9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0\/YXJndW1lbnRzWzFdOnRoaXMudmFsdWUubGVuZ3RoLG49YXJndW1lbnRzLmxlbmd0aD4yP2FyZ3VtZW50c1syXTp2b2lkIDAsaT10aGlzLl9tYXBQb3NUb0Jsb2NrKHQpO2lmKGkpe3ZhciByPXRoaXMuX21hcFBvc1RvQmxvY2soZSksdT1yJiZpLmluZGV4PT09ci5pbmRleCxzPWkub2Zmc2V0LGE9ciYmdT9yLm9mZnNldDp0aGlzLl9ibG9ja3NbaS5pbmRleF0udmFsdWUubGVuZ3RoO2lmKG4odGhpcy5fYmxvY2tzW2kuaW5kZXhdLGkuaW5kZXgscyxhKSxyJiYhdSl7Zm9yKHZhciBvPWkuaW5kZXgrMTtvPHIuaW5kZXg7KytvKW4odGhpcy5fYmxvY2tzW29dLG8sMCx0aGlzLl9ibG9ja3Nbb10udmFsdWUubGVuZ3RoKTtuKHRoaXMuX2Jsb2Nrc1tyLmluZGV4XSxyLmluZGV4LDAsci5vZmZzZXQpfX19fSx7a2V5OiJyZW1vdmUiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0\/YXJndW1lbnRzWzBdOjAsZT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06dGhpcy52YWx1ZS5sZW5ndGgsaT1OcihUcihuLnByb3RvdHlwZSksInJlbW92ZSIsdGhpcykuY2FsbCh0aGlzLHQsZSk7cmV0dXJuIHRoaXMuX2ZvckVhY2hCbG9ja3NJblJhbmdlKHQsZSwoZnVuY3Rpb24odCxlLG4scil7aS5hZ2dyZWdhdGUodC5yZW1vdmUobixyKSl9KSksaX19LHtrZXk6Im5lYXJlc3RJbnB1dFBvcyIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGU9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0\/YXJndW1lbnRzWzFdOkdyO2lmKCF0aGlzLl9ibG9ja3MubGVuZ3RoKXJldHVybiAwO3ZhciBuPW5ldyBwdSh0aGlzLHQpO2lmKGU9PT1HcilyZXR1cm4gbi5wdXNoUmlnaHRCZWZvcmVJbnB1dCgpP24ucG9zOihuLnBvcFN0YXRlKCksbi5wdXNoTGVmdEJlZm9yZUlucHV0KCk\/bi5wb3M6dGhpcy52YWx1ZS5sZW5ndGgpO2lmKGU9PT1Lcnx8ZT09PSRyKXtpZihlPT09S3Ipe2lmKG4ucHVzaFJpZ2h0QmVmb3JlRmlsbGVkKCksbi5vayYmbi5wb3M9PT10KXJldHVybiB0O24ucG9wU3RhdGUoKX1pZihuLnB1c2hMZWZ0QmVmb3JlSW5wdXQoKSxuLnB1c2hMZWZ0QmVmb3JlUmVxdWlyZWQoKSxuLnB1c2hMZWZ0QmVmb3JlRmlsbGVkKCksZT09PUtyKXtpZihuLnB1c2hSaWdodEJlZm9yZUlucHV0KCksbi5wdXNoUmlnaHRCZWZvcmVSZXF1aXJlZCgpLG4ub2smJm4ucG9zPD10KXJldHVybiBuLnBvcztpZihuLnBvcFN0YXRlKCksbi5vayYmbi5wb3M8PXQpcmV0dXJuIG4ucG9zO24ucG9wU3RhdGUoKX1yZXR1cm4gbi5vaz9uLnBvczplPT09JHI\/MDoobi5wb3BTdGF0ZSgpLG4ub2s\/bi5wb3M6KG4ucG9wU3RhdGUoKSxuLm9rP24ucG9zOjApKX1yZXR1cm4gZT09PVdyfHxlPT09WHI\/KG4ucHVzaFJpZ2h0QmVmb3JlSW5wdXQoKSxuLnB1c2hSaWdodEJlZm9yZVJlcXVpcmVkKCksbi5wdXNoUmlnaHRCZWZvcmVGaWxsZWQoKT9uLnBvczplPT09WHI\/dGhpcy52YWx1ZS5sZW5ndGg6KG4ucG9wU3RhdGUoKSxuLm9rP24ucG9zOihuLnBvcFN0YXRlKCksbi5vaz9uLnBvczp0aGlzLm5lYXJlc3RJbnB1dFBvcyh0LEtyKSkpKTp0fX0se2tleToibWFza2VkQmxvY2siLHZhbHVlOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLm1hc2tlZEJsb2Nrcyh0KVswXX19LHtrZXk6Im1hc2tlZEJsb2NrcyIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcyxuPXRoaXMuX21hc2tlZEJsb2Nrc1t0XTtyZXR1cm4gbj9uLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIGUuX2Jsb2Nrc1t0XX0pKTpbXX19XSksbn0ocnUpO2d1LkRFRkFVTFRTPXtsYXp5OiEwLHBsYWNlaG9sZGVyQ2hhcjoiXyJ9LGd1LlNUT1BfQ0hBUj0iYCIsZ3UuRVNDQVBFX0NIQVI9IlxcIixndS5JbnB1dERlZmluaXRpb249bHUsZ3UuRml4ZWREZWZpbml0aW9uPWh1LGl1Lk1hc2tlZFBhdHRlcm49Z3U7dmFyIGt1PWZ1bmN0aW9uKHQpe1ByKG4sdCk7dmFyIGU9VnIobik7ZnVuY3Rpb24gbigpe3JldHVybiB4cih0aGlzLG4pLGUuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiBPcihuLFt7a2V5OiJfbWF0Y2hGcm9tIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tYXhMZW5ndGgtU3RyaW5nKHRoaXMuZnJvbSkubGVuZ3RofX0se2tleToiX3VwZGF0ZSIsdmFsdWU6ZnVuY3Rpb24odCl7dD1PYmplY3QuYXNzaWduKHt0bzp0aGlzLnRvfHwwLGZyb206dGhpcy5mcm9tfHwwLG1heExlbmd0aDp0aGlzLm1heExlbmd0aHx8MH0sdCk7dmFyIGU9U3RyaW5nKHQudG8pLmxlbmd0aDtudWxsIT10Lm1heExlbmd0aCYmKGU9TWF0aC5tYXgoZSx0Lm1heExlbmd0aCkpLHQubWF4TGVuZ3RoPWU7Zm9yKHZhciBpPVN0cmluZyh0LmZyb20pLnBhZFN0YXJ0KGUsIjAiKSxyPVN0cmluZyh0LnRvKS5wYWRTdGFydChlLCIwIiksdT0wO3U8ci5sZW5ndGgmJnJbdV09PT1pW3VdOykrK3U7dC5tYXNrPXIuc2xpY2UoMCx1KS5yZXBsYWNlKC8wL2csIlxcMCIpKyIwIi5yZXBlYXQoZS11KSxOcihUcihuLnByb3RvdHlwZSksIl91cGRhdGUiLHRoaXMpLmNhbGwodGhpcyx0KX19LHtrZXk6ImlzQ29tcGxldGUiLGdldDpmdW5jdGlvbigpe3JldHVybiBOcihUcihuLnByb3RvdHlwZSksImlzQ29tcGxldGUiLHRoaXMpJiZCb29sZWFuKHRoaXMudmFsdWUpfX0se2tleToiYm91bmRhcmllcyIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGU9IiIsbj0iIixpPXFyKHQubWF0Y2goL14oXEQqKShcZCopKFxEKikvKXx8W10sMykscj1pWzFdLHU9aVsyXTtyZXR1cm4gdSYmKGU9IjAiLnJlcGVhdChyLmxlbmd0aCkrdSxuPSI5Ii5yZXBlYXQoci5sZW5ndGgpK3UpLFtlPWUucGFkRW5kKHRoaXMubWF4TGVuZ3RoLCIwIiksbj1uLnBhZEVuZCh0aGlzLm1heExlbmd0aCwiOSIpXX19LHtrZXk6ImRvUHJlcGFyZSIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGUsaT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06e30scj1RcihOcihUcihuLnByb3RvdHlwZSksImRvUHJlcGFyZSIsdGhpcykuY2FsbCh0aGlzLHQucmVwbGFjZSgvXEQvZywiIiksaSkpLHU9cXIociwyKTtpZih0PXVbMF0sZT11WzFdLCF0aGlzLmF1dG9maXh8fCF0KXJldHVybiB0O3ZhciBzPVN0cmluZyh0aGlzLmZyb20pLnBhZFN0YXJ0KHRoaXMubWF4TGVuZ3RoLCIwIiksYT1TdHJpbmcodGhpcy50bykucGFkU3RhcnQodGhpcy5tYXhMZW5ndGgsIjAiKSxvPXRoaXMudmFsdWUrdDtpZihvLmxlbmd0aD50aGlzLm1heExlbmd0aClyZXR1cm4iIjt2YXIgbD10aGlzLmJvdW5kYXJpZXMobyksaD1xcihsLDIpLGM9aFswXSxmPWhbMV07cmV0dXJuIE51bWJlcihmKTx0aGlzLmZyb20\/c1tvLmxlbmd0aC0xXTpOdW1iZXIoYyk+dGhpcy50bz8icGFkIj09PXRoaXMuYXV0b2ZpeCYmby5sZW5ndGg8dGhpcy5tYXhMZW5ndGg\/WyIiLGUuYWdncmVnYXRlKHRoaXMuYXBwZW5kKHNbby5sZW5ndGgtMV0rdCxpKSldOmFbby5sZW5ndGgtMV06dH19LHtrZXk6ImRvVmFsaWRhdGUiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQsZT10aGlzLnZhbHVlLGk9ZS5zZWFyY2goL1teMF0vKTtpZigtMT09PWkmJmUubGVuZ3RoPD10aGlzLl9tYXRjaEZyb20pcmV0dXJuITA7Zm9yKHZhciByPXRoaXMuYm91bmRhcmllcyhlKSx1PXFyKHIsMikscz11WzBdLGE9dVsxXSxvPWFyZ3VtZW50cy5sZW5ndGgsbD1uZXcgQXJyYXkobyksaD0wO2g8bztoKyspbFtoXT1hcmd1bWVudHNbaF07cmV0dXJuIHRoaXMuZnJvbTw9TnVtYmVyKGEpJiZOdW1iZXIocyk8PXRoaXMudG8mJih0PU5yKFRyKG4ucHJvdG90eXBlKSwiZG9WYWxpZGF0ZSIsdGhpcykpLmNhbGwuYXBwbHkodCxbdGhpc10uY29uY2F0KGwpKX19XSksbn0oZ3UpO2l1Lk1hc2tlZFJhbmdlPWt1O3ZhciB5dT1mdW5jdGlvbih0KXtQcihuLHQpO3ZhciBlPVZyKG4pO2Z1bmN0aW9uIG4odCl7cmV0dXJuIHhyKHRoaXMsbiksZS5jYWxsKHRoaXMsT2JqZWN0LmFzc2lnbih7fSxuLkRFRkFVTFRTLHQpKX1yZXR1cm4gT3Iobixbe2tleToiX3VwZGF0ZSIsdmFsdWU6ZnVuY3Rpb24odCl7dC5tYXNrPT09RGF0ZSYmZGVsZXRlIHQubWFzayx0LnBhdHRlcm4mJih0Lm1hc2s9dC5wYXR0ZXJuKTt2YXIgZT10LmJsb2Nrczt0LmJsb2Nrcz1PYmplY3QuYXNzaWduKHt9LG4uR0VUX0RFRkFVTFRfQkxPQ0tTKCkpLHQubWluJiYodC5ibG9ja3MuWS5mcm9tPXQubWluLmdldEZ1bGxZZWFyKCkpLHQubWF4JiYodC5ibG9ja3MuWS50bz10Lm1heC5nZXRGdWxsWWVhcigpKSx0Lm1pbiYmdC5tYXgmJnQuYmxvY2tzLlkuZnJvbT09PXQuYmxvY2tzLlkudG8mJih0LmJsb2Nrcy5tLmZyb209dC5taW4uZ2V0TW9udGgoKSsxLHQuYmxvY2tzLm0udG89dC5tYXguZ2V0TW9udGgoKSsxLHQuYmxvY2tzLm0uZnJvbT09PXQuYmxvY2tzLm0udG8mJih0LmJsb2Nrcy5kLmZyb209dC5taW4uZ2V0RGF0ZSgpLHQuYmxvY2tzLmQudG89dC5tYXguZ2V0RGF0ZSgpKSksT2JqZWN0LmFzc2lnbih0LmJsb2Nrcyx0aGlzLmJsb2NrcyxlKSxPYmplY3Qua2V5cyh0LmJsb2NrcykuZm9yRWFjaCgoZnVuY3Rpb24oZSl7dmFyIG49dC5ibG9ja3NbZV07ISgiYXV0b2ZpeCJpbiBuKSYmImF1dG9maXgiaW4gdCYmKG4uYXV0b2ZpeD10LmF1dG9maXgpfSkpLE5yKFRyKG4ucHJvdG90eXBlKSwiX3VwZGF0ZSIsdGhpcykuY2FsbCh0aGlzLHQpfX0se2tleToiZG9WYWxpZGF0ZSIsdmFsdWU6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT10aGlzLmRhdGUsaT1hcmd1bWVudHMubGVuZ3RoLHI9bmV3IEFycmF5KGkpLHU9MDt1PGk7dSsrKXJbdV09YXJndW1lbnRzW3VdO3JldHVybih0PU5yKFRyKG4ucHJvdG90eXBlKSwiZG9WYWxpZGF0ZSIsdGhpcykpLmNhbGwuYXBwbHkodCxbdGhpc10uY29uY2F0KHIpKSYmKCF0aGlzLmlzQ29tcGxldGV8fHRoaXMuaXNEYXRlRXhpc3QodGhpcy52YWx1ZSkmJm51bGwhPWUmJihudWxsPT10aGlzLm1pbnx8dGhpcy5taW48PWUpJiYobnVsbD09dGhpcy5tYXh8fGU8PXRoaXMubWF4KSl9fSx7a2V5OiJpc0RhdGVFeGlzdCIsdmFsdWU6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuZm9ybWF0KHRoaXMucGFyc2UodCx0aGlzKSx0aGlzKS5pbmRleE9mKHQpPj0wfX0se2tleToiZGF0ZSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudHlwZWRWYWx1ZX0sc2V0OmZ1bmN0aW9uKHQpe3RoaXMudHlwZWRWYWx1ZT10fX0se2tleToidHlwZWRWYWx1ZSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaXNDb21wbGV0ZT9OcihUcihuLnByb3RvdHlwZSksInR5cGVkVmFsdWUiLHRoaXMpOm51bGx9LHNldDpmdW5jdGlvbih0KXt6cihUcihuLnByb3RvdHlwZSksInR5cGVkVmFsdWUiLHQsdGhpcywhMCl9fSx7a2V5OiJtYXNrRXF1YWxzIix2YWx1ZTpmdW5jdGlvbih0KXtyZXR1cm4gdD09PURhdGV8fE5yKFRyKG4ucHJvdG90eXBlKSwibWFza0VxdWFscyIsdGhpcykuY2FsbCh0aGlzLHQpfX1dKSxufShndSk7eXUuREVGQVVMVFM9e3BhdHRlcm46ImR7Ln1gbXsufWBZIixmb3JtYXQ6ZnVuY3Rpb24odCl7cmV0dXJuIHQ\/W1N0cmluZyh0LmdldERhdGUoKSkucGFkU3RhcnQoMiwiMCIpLFN0cmluZyh0LmdldE1vbnRoKCkrMSkucGFkU3RhcnQoMiwiMCIpLHQuZ2V0RnVsbFllYXIoKV0uam9pbigiLiIpOiIifSxwYXJzZTpmdW5jdGlvbih0KXt2YXIgZT1xcih0LnNwbGl0KCIuIiksMyksbj1lWzBdLGk9ZVsxXSxyPWVbMl07cmV0dXJuIG5ldyBEYXRlKHIsaS0xLG4pfX0seXUuR0VUX0RFRkFVTFRfQkxPQ0tTPWZ1bmN0aW9uKCl7cmV0dXJue2Q6e21hc2s6a3UsZnJvbToxLHRvOjMxLG1heExlbmd0aDoyfSxtOnttYXNrOmt1LGZyb206MSx0bzoxMixtYXhMZW5ndGg6Mn0sWTp7bWFzazprdSxmcm9tOjE5MDAsdG86OTk5OX19fSxpdS5NYXNrZWREYXRlPXl1O3ZhciBtdT1mdW5jdGlvbigpe2Z1bmN0aW9uIHQoKXt4cih0aGlzLHQpfXJldHVybiBPcih0LFt7a2V5OiJzZWxlY3Rpb25TdGFydCIsZ2V0OmZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9dGhpcy5fdW5zYWZlU2VsZWN0aW9uU3RhcnR9Y2F0Y2godCl7fXJldHVybiBudWxsIT10P3Q6dGhpcy52YWx1ZS5sZW5ndGh9fSx7a2V5OiJzZWxlY3Rpb25FbmQiLGdldDpmdW5jdGlvbigpe3ZhciB0O3RyeXt0PXRoaXMuX3Vuc2FmZVNlbGVjdGlvbkVuZH1jYXRjaCh0KXt9cmV0dXJuIG51bGwhPXQ\/dDp0aGlzLnZhbHVlLmxlbmd0aH19LHtrZXk6InNlbGVjdCIsdmFsdWU6ZnVuY3Rpb24odCxlKXtpZihudWxsIT10JiZudWxsIT1lJiYodCE9PXRoaXMuc2VsZWN0aW9uU3RhcnR8fGUhPT10aGlzLnNlbGVjdGlvbkVuZCkpdHJ5e3RoaXMuX3Vuc2FmZVNlbGVjdCh0LGUpfWNhdGNoKHQpe319fSx7a2V5OiJfdW5zYWZlU2VsZWN0Iix2YWx1ZTpmdW5jdGlvbih0LGUpe319LHtrZXk6ImlzQWN0aXZlIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4hMX19LHtrZXk6ImJpbmRFdmVudHMiLHZhbHVlOmZ1bmN0aW9uKHQpe319LHtrZXk6InVuYmluZEV2ZW50cyIsdmFsdWU6ZnVuY3Rpb24oKXt9fV0pLHR9KCk7aXUuTWFza0VsZW1lbnQ9bXU7dmFyIGJ1PWZ1bmN0aW9uKHQpe1ByKG4sdCk7dmFyIGU9VnIobik7ZnVuY3Rpb24gbih0KXt2YXIgaTtyZXR1cm4geHIodGhpcyxuKSwoaT1lLmNhbGwodGhpcykpLmlucHV0PXQsaS5faGFuZGxlcnM9e30saX1yZXR1cm4gT3Iobixbe2tleToicm9vdEVsZW1lbnQiLGdldDpmdW5jdGlvbigpe3ZhciB0LGUsbjtyZXR1cm4gbnVsbCE9PSh0PW51bGw9PT0oZT0obj10aGlzLmlucHV0KS5nZXRSb290Tm9kZSl8fHZvaWQgMD09PWU\/dm9pZCAwOmUuY2FsbChuKSkmJnZvaWQgMCE9PXQ\/dDpkb2N1bWVudH19LHtrZXk6ImlzQWN0aXZlIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pbnB1dD09PXRoaXMucm9vdEVsZW1lbnQuYWN0aXZlRWxlbWVudH19LHtrZXk6Il91bnNhZmVTZWxlY3Rpb25TdGFydCIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaW5wdXQuc2VsZWN0aW9uU3RhcnR9fSx7a2V5OiJfdW5zYWZlU2VsZWN0aW9uRW5kIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pbnB1dC5zZWxlY3Rpb25FbmR9fSx7a2V5OiJfdW5zYWZlU2VsZWN0Iix2YWx1ZTpmdW5jdGlvbih0LGUpe3RoaXMuaW5wdXQuc2V0U2VsZWN0aW9uUmFuZ2UodCxlKX19LHtrZXk6InZhbHVlIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pbnB1dC52YWx1ZX0sc2V0OmZ1bmN0aW9uKHQpe3RoaXMuaW5wdXQudmFsdWU9dH19LHtrZXk6ImJpbmRFdmVudHMiLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7T2JqZWN0LmtleXModCkuZm9yRWFjaCgoZnVuY3Rpb24oaSl7cmV0dXJuIGUuX3RvZ2dsZUV2ZW50SGFuZGxlcihuLkVWRU5UU19NQVBbaV0sdFtpXSl9KSl9fSx7a2V5OiJ1bmJpbmRFdmVudHMiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztPYmplY3Qua2V5cyh0aGlzLl9oYW5kbGVycykuZm9yRWFjaCgoZnVuY3Rpb24oZSl7cmV0dXJuIHQuX3RvZ2dsZUV2ZW50SGFuZGxlcihlKX0pKX19LHtrZXk6Il90b2dnbGVFdmVudEhhbmRsZXIiLHZhbHVlOmZ1bmN0aW9uKHQsZSl7dGhpcy5faGFuZGxlcnNbdF0mJih0aGlzLmlucHV0LnJlbW92ZUV2ZW50TGlzdGVuZXIodCx0aGlzLl9oYW5kbGVyc1t0XSksZGVsZXRlIHRoaXMuX2hhbmRsZXJzW3RdKSxlJiYodGhpcy5pbnB1dC5hZGRFdmVudExpc3RlbmVyKHQsZSksdGhpcy5faGFuZGxlcnNbdF09ZSl9fV0pLG59KG11KTtidS5FVkVOVFNfTUFQPXtzZWxlY3Rpb25DaGFuZ2U6ImtleWRvd24iLGlucHV0OiJpbnB1dCIsZHJvcDoiZHJvcCIsY2xpY2s6ImNsaWNrIixmb2N1czoiZm9jdXMiLGNvbW1pdDoiYmx1ciJ9LGl1LkhUTUxNYXNrRWxlbWVudD1idTt2YXIgX3U9ZnVuY3Rpb24odCl7UHIobix0KTt2YXIgZT1WcihuKTtmdW5jdGlvbiBuKCl7cmV0dXJuIHhyKHRoaXMsbiksZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9cmV0dXJuIE9yKG4sW3trZXk6Il91bnNhZmVTZWxlY3Rpb25TdGFydCIsZ2V0OmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5yb290RWxlbWVudCxlPXQuZ2V0U2VsZWN0aW9uJiZ0LmdldFNlbGVjdGlvbigpLG49ZSYmZS5hbmNob3JPZmZzZXQsaT1lJiZlLmZvY3VzT2Zmc2V0O3JldHVybiBudWxsPT1pfHxudWxsPT1ufHxuPGk\/bjppfX0se2tleToiX3Vuc2FmZVNlbGVjdGlvbkVuZCIsZ2V0OmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5yb290RWxlbWVudCxlPXQuZ2V0U2VsZWN0aW9uJiZ0LmdldFNlbGVjdGlvbigpLG49ZSYmZS5hbmNob3JPZmZzZXQsaT1lJiZlLmZvY3VzT2Zmc2V0O3JldHVybiBudWxsPT1pfHxudWxsPT1ufHxuPmk\/bjppfX0se2tleToiX3Vuc2FmZVNlbGVjdCIsdmFsdWU6ZnVuY3Rpb24odCxlKXtpZih0aGlzLnJvb3RFbGVtZW50LmNyZWF0ZVJhbmdlKXt2YXIgbj10aGlzLnJvb3RFbGVtZW50LmNyZWF0ZVJhbmdlKCk7bi5zZXRTdGFydCh0aGlzLmlucHV0LmZpcnN0Q2hpbGR8fHRoaXMuaW5wdXQsdCksbi5zZXRFbmQodGhpcy5pbnB1dC5sYXN0Q2hpbGR8fHRoaXMuaW5wdXQsZSk7dmFyIGk9dGhpcy5yb290RWxlbWVudCxyPWkuZ2V0U2VsZWN0aW9uJiZpLmdldFNlbGVjdGlvbigpO3ImJihyLnJlbW92ZUFsbFJhbmdlcygpLHIuYWRkUmFuZ2UobikpfX19LHtrZXk6InZhbHVlIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pbnB1dC50ZXh0Q29udGVudH0sc2V0OmZ1bmN0aW9uKHQpe3RoaXMuaW5wdXQudGV4dENvbnRlbnQ9dH19XSksbn0oYnUpO2l1LkhUTUxDb250ZW50ZWRpdGFibGVNYXNrRWxlbWVudD1fdTt2YXIgQXU9WyJtYXNrIl0sQ3U9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KGUsbil7eHIodGhpcyx0KSx0aGlzLmVsPWUgaW5zdGFuY2VvZiBtdT9lOmUuaXNDb250ZW50RWRpdGFibGUmJiJJTlBVVCIhPT1lLnRhZ05hbWUmJiJURVhUQVJFQSIhPT1lLnRhZ05hbWU\/bmV3IF91KGUpOm5ldyBidShlKSx0aGlzLm1hc2tlZD1zdShuKSx0aGlzLl9saXN0ZW5lcnM9e30sdGhpcy5fdmFsdWU9IiIsdGhpcy5fdW5tYXNrZWRWYWx1ZT0iIix0aGlzLl9zYXZlU2VsZWN0aW9uPXRoaXMuX3NhdmVTZWxlY3Rpb24uYmluZCh0aGlzKSx0aGlzLl9vbklucHV0PXRoaXMuX29uSW5wdXQuYmluZCh0aGlzKSx0aGlzLl9vbkNoYW5nZT10aGlzLl9vbkNoYW5nZS5iaW5kKHRoaXMpLHRoaXMuX29uRHJvcD10aGlzLl9vbkRyb3AuYmluZCh0aGlzKSx0aGlzLl9vbkZvY3VzPXRoaXMuX29uRm9jdXMuYmluZCh0aGlzKSx0aGlzLl9vbkNsaWNrPXRoaXMuX29uQ2xpY2suYmluZCh0aGlzKSx0aGlzLmFsaWduQ3Vyc29yPXRoaXMuYWxpZ25DdXJzb3IuYmluZCh0aGlzKSx0aGlzLmFsaWduQ3Vyc29yRnJpZW5kbHk9dGhpcy5hbGlnbkN1cnNvckZyaWVuZGx5LmJpbmQodGhpcyksdGhpcy5fYmluZEV2ZW50cygpLHRoaXMudXBkYXRlVmFsdWUoKSx0aGlzLl9vbkNoYW5nZSgpfXJldHVybiBPcih0LFt7a2V5OiJtYXNrIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tYXNrZWQubWFza30sc2V0OmZ1bmN0aW9uKHQpe2lmKCF0aGlzLm1hc2tFcXVhbHModCkpaWYodCBpbnN0YW5jZW9mIGl1Lk1hc2tlZHx8dGhpcy5tYXNrZWQuY29uc3RydWN0b3IhPT11dSh0KSl7dmFyIGU9c3Uoe21hc2s6dH0pO2UudW5tYXNrZWRWYWx1ZT10aGlzLm1hc2tlZC51bm1hc2tlZFZhbHVlLHRoaXMubWFza2VkPWV9ZWxzZSB0aGlzLm1hc2tlZC51cGRhdGVPcHRpb25zKHttYXNrOnR9KX19LHtrZXk6Im1hc2tFcXVhbHMiLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlO3JldHVybiBudWxsPT10fHwobnVsbD09PShlPXRoaXMubWFza2VkKXx8dm9pZCAwPT09ZT92b2lkIDA6ZS5tYXNrRXF1YWxzKHQpKX19LHtrZXk6InZhbHVlIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fdmFsdWV9LHNldDpmdW5jdGlvbih0KXt0aGlzLm1hc2tlZC52YWx1ZT10LHRoaXMudXBkYXRlQ29udHJvbCgpLHRoaXMuYWxpZ25DdXJzb3IoKX19LHtrZXk6InVubWFza2VkVmFsdWUiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl91bm1hc2tlZFZhbHVlfSxzZXQ6ZnVuY3Rpb24odCl7dGhpcy5tYXNrZWQudW5tYXNrZWRWYWx1ZT10LHRoaXMudXBkYXRlQ29udHJvbCgpLHRoaXMuYWxpZ25DdXJzb3IoKX19LHtrZXk6InR5cGVkVmFsdWUiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLm1hc2tlZC50eXBlZFZhbHVlfSxzZXQ6ZnVuY3Rpb24odCl7dGhpcy5tYXNrZWQudHlwZWRWYWx1ZT10LHRoaXMudXBkYXRlQ29udHJvbCgpLHRoaXMuYWxpZ25DdXJzb3IoKX19LHtrZXk6Il9iaW5kRXZlbnRzIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuZWwuYmluZEV2ZW50cyh7c2VsZWN0aW9uQ2hhbmdlOnRoaXMuX3NhdmVTZWxlY3Rpb24saW5wdXQ6dGhpcy5fb25JbnB1dCxkcm9wOnRoaXMuX29uRHJvcCxjbGljazp0aGlzLl9vbkNsaWNrLGZvY3VzOnRoaXMuX29uRm9jdXMsY29tbWl0OnRoaXMuX29uQ2hhbmdlfSl9fSx7a2V5OiJfdW5iaW5kRXZlbnRzIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuZWwmJnRoaXMuZWwudW5iaW5kRXZlbnRzKCl9fSx7a2V5OiJfZmlyZUV2ZW50Iix2YWx1ZTpmdW5jdGlvbih0KXtmb3IodmFyIGU9YXJndW1lbnRzLmxlbmd0aCxuPW5ldyBBcnJheShlPjE\/ZS0xOjApLGk9MTtpPGU7aSsrKW5baS0xXT1hcmd1bWVudHNbaV07dmFyIHI9dGhpcy5fbGlzdGVuZXJzW3RdO3ImJnIuZm9yRWFjaCgoZnVuY3Rpb24odCl7cmV0dXJuIHQuYXBwbHkodm9pZCAwLG4pfSkpfX0se2tleToic2VsZWN0aW9uU3RhcnQiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9jdXJzb3JDaGFuZ2luZz90aGlzLl9jaGFuZ2luZ0N1cnNvclBvczp0aGlzLmVsLnNlbGVjdGlvblN0YXJ0fX0se2tleToiY3Vyc29yUG9zIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fY3Vyc29yQ2hhbmdpbmc\/dGhpcy5fY2hhbmdpbmdDdXJzb3JQb3M6dGhpcy5lbC5zZWxlY3Rpb25FbmR9LHNldDpmdW5jdGlvbih0KXt0aGlzLmVsJiZ0aGlzLmVsLmlzQWN0aXZlJiYodGhpcy5lbC5zZWxlY3QodCx0KSx0aGlzLl9zYXZlU2VsZWN0aW9uKCkpfX0se2tleToiX3NhdmVTZWxlY3Rpb24iLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy52YWx1ZSE9PXRoaXMuZWwudmFsdWUmJmNvbnNvbGUud2FybigiRWxlbWVudCB2YWx1ZSB3YXMgY2hhbmdlZCBvdXRzaWRlIG9mIG1hc2suIFN5bmNyb25pemUgbWFzayB1c2luZyBgbWFzay51cGRhdGVWYWx1ZSgpYCB0byB3b3JrIHByb3Blcmx5LiIpLHRoaXMuX3NlbGVjdGlvbj17c3RhcnQ6dGhpcy5zZWxlY3Rpb25TdGFydCxlbmQ6dGhpcy5jdXJzb3JQb3N9fX0se2tleToidXBkYXRlVmFsdWUiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5tYXNrZWQudmFsdWU9dGhpcy5lbC52YWx1ZSx0aGlzLl92YWx1ZT10aGlzLm1hc2tlZC52YWx1ZX19LHtrZXk6InVwZGF0ZUNvbnRyb2wiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5tYXNrZWQudW5tYXNrZWRWYWx1ZSxlPXRoaXMubWFza2VkLnZhbHVlLG49dGhpcy51bm1hc2tlZFZhbHVlIT09dHx8dGhpcy52YWx1ZSE9PWU7dGhpcy5fdW5tYXNrZWRWYWx1ZT10LHRoaXMuX3ZhbHVlPWUsdGhpcy5lbC52YWx1ZSE9PWUmJih0aGlzLmVsLnZhbHVlPWUpLG4mJnRoaXMuX2ZpcmVDaGFuZ2VFdmVudHMoKX19LHtrZXk6InVwZGF0ZU9wdGlvbnMiLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlPXQubWFzayxuPWpyKHQsQXUpLGk9IXRoaXMubWFza0VxdWFscyhlKSxyPSF0dSh0aGlzLm1hc2tlZCxuKTtpJiYodGhpcy5tYXNrPWUpLHImJnRoaXMubWFza2VkLnVwZGF0ZU9wdGlvbnMobiksKGl8fHIpJiZ0aGlzLnVwZGF0ZUNvbnRyb2woKX19LHtrZXk6InVwZGF0ZUN1cnNvciIsdmFsdWU6ZnVuY3Rpb24odCl7bnVsbCE9dCYmKHRoaXMuY3Vyc29yUG9zPXQsdGhpcy5fZGVsYXlVcGRhdGVDdXJzb3IodCkpfX0se2tleToiX2RlbGF5VXBkYXRlQ3Vyc29yIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT10aGlzO3RoaXMuX2Fib3J0VXBkYXRlQ3Vyc29yKCksdGhpcy5fY2hhbmdpbmdDdXJzb3JQb3M9dCx0aGlzLl9jdXJzb3JDaGFuZ2luZz1zZXRUaW1lb3V0KChmdW5jdGlvbigpe2UuZWwmJihlLmN1cnNvclBvcz1lLl9jaGFuZ2luZ0N1cnNvclBvcyxlLl9hYm9ydFVwZGF0ZUN1cnNvcigpKX0pLDEwKX19LHtrZXk6Il9maXJlQ2hhbmdlRXZlbnRzIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuX2ZpcmVFdmVudCgiYWNjZXB0Iix0aGlzLl9pbnB1dEV2ZW50KSx0aGlzLm1hc2tlZC5pc0NvbXBsZXRlJiZ0aGlzLl9maXJlRXZlbnQoImNvbXBsZXRlIix0aGlzLl9pbnB1dEV2ZW50KX19LHtrZXk6Il9hYm9ydFVwZGF0ZUN1cnNvciIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLl9jdXJzb3JDaGFuZ2luZyYmKGNsZWFyVGltZW91dCh0aGlzLl9jdXJzb3JDaGFuZ2luZyksZGVsZXRlIHRoaXMuX2N1cnNvckNoYW5naW5nKX19LHtrZXk6ImFsaWduQ3Vyc29yIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuY3Vyc29yUG9zPXRoaXMubWFza2VkLm5lYXJlc3RJbnB1dFBvcyh0aGlzLm1hc2tlZC5uZWFyZXN0SW5wdXRQb3ModGhpcy5jdXJzb3JQb3MsS3IpKX19LHtrZXk6ImFsaWduQ3Vyc29yRnJpZW5kbHkiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5zZWxlY3Rpb25TdGFydD09PXRoaXMuY3Vyc29yUG9zJiZ0aGlzLmFsaWduQ3Vyc29yKCl9fSx7a2V5OiJvbiIsdmFsdWU6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5fbGlzdGVuZXJzW3RdfHwodGhpcy5fbGlzdGVuZXJzW3RdPVtdKSx0aGlzLl9saXN0ZW5lcnNbdF0ucHVzaChlKSx0aGlzfX0se2tleToib2ZmIix2YWx1ZTpmdW5jdGlvbih0LGUpe2lmKCF0aGlzLl9saXN0ZW5lcnNbdF0pcmV0dXJuIHRoaXM7aWYoIWUpcmV0dXJuIGRlbGV0ZSB0aGlzLl9saXN0ZW5lcnNbdF0sdGhpczt2YXIgbj10aGlzLl9saXN0ZW5lcnNbdF0uaW5kZXhPZihlKTtyZXR1cm4gbj49MCYmdGhpcy5fbGlzdGVuZXJzW3RdLnNwbGljZShuLDEpLHRoaXN9fSx7a2V5OiJfb25JbnB1dCIsdmFsdWU6ZnVuY3Rpb24odCl7aWYodGhpcy5faW5wdXRFdmVudD10LHRoaXMuX2Fib3J0VXBkYXRlQ3Vyc29yKCksIXRoaXMuX3NlbGVjdGlvbilyZXR1cm4gdGhpcy51cGRhdGVWYWx1ZSgpO3ZhciBlPW5ldyBldSh0aGlzLmVsLnZhbHVlLHRoaXMuY3Vyc29yUG9zLHRoaXMudmFsdWUsdGhpcy5fc2VsZWN0aW9uKSxuPXRoaXMubWFza2VkLnJhd0lucHV0VmFsdWUsaT10aGlzLm1hc2tlZC5zcGxpY2UoZS5zdGFydENoYW5nZVBvcyxlLnJlbW92ZWQubGVuZ3RoLGUuaW5zZXJ0ZWQsZS5yZW1vdmVEaXJlY3Rpb24pLm9mZnNldCxyPW49PT10aGlzLm1hc2tlZC5yYXdJbnB1dFZhbHVlP2UucmVtb3ZlRGlyZWN0aW9uOkdyLHU9dGhpcy5tYXNrZWQubmVhcmVzdElucHV0UG9zKGUuc3RhcnRDaGFuZ2VQb3MraSxyKTtyIT09R3ImJih1PXRoaXMubWFza2VkLm5lYXJlc3RJbnB1dFBvcyh1LEdyKSksdGhpcy51cGRhdGVDb250cm9sKCksdGhpcy51cGRhdGVDdXJzb3IodSksZGVsZXRlIHRoaXMuX2lucHV0RXZlbnR9fSx7a2V5OiJfb25DaGFuZ2UiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy52YWx1ZSE9PXRoaXMuZWwudmFsdWUmJnRoaXMudXBkYXRlVmFsdWUoKSx0aGlzLm1hc2tlZC5kb0NvbW1pdCgpLHRoaXMudXBkYXRlQ29udHJvbCgpLHRoaXMuX3NhdmVTZWxlY3Rpb24oKX19LHtrZXk6Il9vbkRyb3AiLHZhbHVlOmZ1bmN0aW9uKHQpe3QucHJldmVudERlZmF1bHQoKSx0LnN0b3BQcm9wYWdhdGlvbigpfX0se2tleToiX29uRm9jdXMiLHZhbHVlOmZ1bmN0aW9uKHQpe3RoaXMuYWxpZ25DdXJzb3JGcmllbmRseSgpfX0se2tleToiX29uQ2xpY2siLHZhbHVlOmZ1bmN0aW9uKHQpe3RoaXMuYWxpZ25DdXJzb3JGcmllbmRseSgpfX0se2tleToiZGVzdHJveSIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLl91bmJpbmRFdmVudHMoKSx0aGlzLl9saXN0ZW5lcnMubGVuZ3RoPTAsZGVsZXRlIHRoaXMuZWx9fV0pLHR9KCk7aXUuSW5wdXRNYXNrPUN1O3ZhciBFdT1mdW5jdGlvbih0KXtQcihuLHQpO3ZhciBlPVZyKG4pO2Z1bmN0aW9uIG4oKXtyZXR1cm4geHIodGhpcyxuKSxlLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1yZXR1cm4gT3Iobixbe2tleToiX3VwZGF0ZSIsdmFsdWU6ZnVuY3Rpb24odCl7dC5lbnVtJiYodC5tYXNrPSIqIi5yZXBlYXQodC5lbnVtWzBdLmxlbmd0aCkpLE5yKFRyKG4ucHJvdG90eXBlKSwiX3VwZGF0ZSIsdGhpcykuY2FsbCh0aGlzLHQpfX0se2tleToiZG9WYWxpZGF0ZSIsdmFsdWU6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT10aGlzLGk9YXJndW1lbnRzLmxlbmd0aCxyPW5ldyBBcnJheShpKSx1PTA7dTxpO3UrKylyW3VdPWFyZ3VtZW50c1t1XTtyZXR1cm4gdGhpcy5lbnVtLnNvbWUoKGZ1bmN0aW9uKHQpe3JldHVybiB0LmluZGV4T2YoZS51bm1hc2tlZFZhbHVlKT49MH0pKSYmKHQ9TnIoVHIobi5wcm90b3R5cGUpLCJkb1ZhbGlkYXRlIix0aGlzKSkuY2FsbC5hcHBseSh0LFt0aGlzXS5jb25jYXQocikpfX1dKSxufShndSk7aXUuTWFza2VkRW51bT1FdTt2YXIgRnU9ZnVuY3Rpb24odCl7UHIobix0KTt2YXIgZT1WcihuKTtmdW5jdGlvbiBuKHQpe3JldHVybiB4cih0aGlzLG4pLGUuY2FsbCh0aGlzLE9iamVjdC5hc3NpZ24oe30sbi5ERUZBVUxUUyx0KSl9cmV0dXJuIE9yKG4sW3trZXk6Il91cGRhdGUiLHZhbHVlOmZ1bmN0aW9uKHQpe05yKFRyKG4ucHJvdG90eXBlKSwiX3VwZGF0ZSIsdGhpcykuY2FsbCh0aGlzLHQpLHRoaXMuX3VwZGF0ZVJlZ0V4cHMoKX19LHtrZXk6Il91cGRhdGVSZWdFeHBzIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PSJeIisodGhpcy5hbGxvd05lZ2F0aXZlPyJbK3xcXC1dPyI6IiIpLGU9KHRoaXMuc2NhbGU\/IigiK0pyKHRoaXMucmFkaXgpKyJcXGR7MCwiK3RoaXMuc2NhbGUrIn0pPyI6IiIpKyIkIjt0aGlzLl9udW1iZXJSZWdFeHBJbnB1dD1uZXcgUmVnRXhwKHQrIigwfChbMS05XStcXGQqKSk\/IitlKSx0aGlzLl9udW1iZXJSZWdFeHA9bmV3IFJlZ0V4cCh0KyJcXGQqIitlKSx0aGlzLl9tYXBUb1JhZGl4UmVnRXhwPW5ldyBSZWdFeHAoIlsiK3RoaXMubWFwVG9SYWRpeC5tYXAoSnIpLmpvaW4oIiIpKyJdIiwiZyIpLHRoaXMuX3Rob3VzYW5kc1NlcGFyYXRvclJlZ0V4cD1uZXcgUmVnRXhwKEpyKHRoaXMudGhvdXNhbmRzU2VwYXJhdG9yKSwiZyIpfX0se2tleToiX3JlbW92ZVRob3VzYW5kc1NlcGFyYXRvcnMiLHZhbHVlOmZ1bmN0aW9uKHQpe3JldHVybiB0LnJlcGxhY2UodGhpcy5fdGhvdXNhbmRzU2VwYXJhdG9yUmVnRXhwLCIiKX19LHtrZXk6Il9pbnNlcnRUaG91c2FuZHNTZXBhcmF0b3JzIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT10LnNwbGl0KHRoaXMucmFkaXgpO3JldHVybiBlWzBdPWVbMF0ucmVwbGFjZSgvXEIoPz0oXGR7M30pKyg\/IVxkKSkvZyx0aGlzLnRob3VzYW5kc1NlcGFyYXRvciksZS5qb2luKHRoaXMucmFkaXgpfX0se2tleToiZG9QcmVwYXJlIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZTt0PXQucmVwbGFjZSh0aGlzLl9tYXBUb1JhZGl4UmVnRXhwLHRoaXMucmFkaXgpO2Zvcih2YXIgaT10aGlzLl9yZW1vdmVUaG91c2FuZHNTZXBhcmF0b3JzKHQpLHI9YXJndW1lbnRzLmxlbmd0aCx1PW5ldyBBcnJheShyPjE\/ci0xOjApLHM9MTtzPHI7cysrKXVbcy0xXT1hcmd1bWVudHNbc107dmFyIGE9UXIoKGU9TnIoVHIobi5wcm90b3R5cGUpLCJkb1ByZXBhcmUiLHRoaXMpKS5jYWxsLmFwcGx5KGUsW3RoaXMsaV0uY29uY2F0KHUpKSksbz1xcihhLDIpLGw9b1swXSxoPW9bMV07cmV0dXJuIHQmJiFpJiYoaC5za2lwPSEwKSxbbCxoXX19LHtrZXk6Il9zZXBhcmF0b3JzQ291bnQiLHZhbHVlOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXSYmYXJndW1lbnRzWzFdLG49MCxpPTA7aTx0OysraSl0aGlzLl92YWx1ZS5pbmRleE9mKHRoaXMudGhvdXNhbmRzU2VwYXJhdG9yLGkpPT09aSYmKCsrbixlJiYodCs9dGhpcy50aG91c2FuZHNTZXBhcmF0b3IubGVuZ3RoKSk7cmV0dXJuIG59fSx7a2V5OiJfc2VwYXJhdG9yc0NvdW50RnJvbVNsaWNlIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTp0aGlzLl92YWx1ZTtyZXR1cm4gdGhpcy5fc2VwYXJhdG9yc0NvdW50KHRoaXMuX3JlbW92ZVRob3VzYW5kc1NlcGFyYXRvcnModCkubGVuZ3RoLCEwKX19LHtrZXk6ImV4dHJhY3RJbnB1dCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06MCxlPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp0aGlzLnZhbHVlLmxlbmd0aCxpPWFyZ3VtZW50cy5sZW5ndGg+Mj9hcmd1bWVudHNbMl06dm9pZCAwLHI9dGhpcy5fYWRqdXN0UmFuZ2VXaXRoU2VwYXJhdG9ycyh0LGUpLHU9cXIociwyKTtyZXR1cm4gdD11WzBdLGU9dVsxXSx0aGlzLl9yZW1vdmVUaG91c2FuZHNTZXBhcmF0b3JzKE5yKFRyKG4ucHJvdG90eXBlKSwiZXh0cmFjdElucHV0Iix0aGlzKS5jYWxsKHRoaXMsdCxlLGkpKX19LHtrZXk6Il9hcHBlbmRDaGFyUmF3Iix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06e307aWYoIXRoaXMudGhvdXNhbmRzU2VwYXJhdG9yKXJldHVybiBOcihUcihuLnByb3RvdHlwZSksIl9hcHBlbmRDaGFyUmF3Iix0aGlzKS5jYWxsKHRoaXMsdCxlKTt2YXIgaT1lLnRhaWwmJmUuX2JlZm9yZVRhaWxTdGF0ZT9lLl9iZWZvcmVUYWlsU3RhdGUuX3ZhbHVlOnRoaXMuX3ZhbHVlLHI9dGhpcy5fc2VwYXJhdG9yc0NvdW50RnJvbVNsaWNlKGkpO3RoaXMuX3ZhbHVlPXRoaXMuX3JlbW92ZVRob3VzYW5kc1NlcGFyYXRvcnModGhpcy52YWx1ZSk7dmFyIHU9TnIoVHIobi5wcm90b3R5cGUpLCJfYXBwZW5kQ2hhclJhdyIsdGhpcykuY2FsbCh0aGlzLHQsZSk7dGhpcy5fdmFsdWU9dGhpcy5faW5zZXJ0VGhvdXNhbmRzU2VwYXJhdG9ycyh0aGlzLl92YWx1ZSk7dmFyIHM9ZS50YWlsJiZlLl9iZWZvcmVUYWlsU3RhdGU\/ZS5fYmVmb3JlVGFpbFN0YXRlLl92YWx1ZTp0aGlzLl92YWx1ZSxhPXRoaXMuX3NlcGFyYXRvcnNDb3VudEZyb21TbGljZShzKTtyZXR1cm4gdS50YWlsU2hpZnQrPShhLXIpKnRoaXMudGhvdXNhbmRzU2VwYXJhdG9yLmxlbmd0aCx1LnNraXA9IXUucmF3SW5zZXJ0ZWQmJnQ9PT10aGlzLnRob3VzYW5kc1NlcGFyYXRvcix1fX0se2tleToiX2ZpbmRTZXBhcmF0b3JBcm91bmQiLHZhbHVlOmZ1bmN0aW9uKHQpe2lmKHRoaXMudGhvdXNhbmRzU2VwYXJhdG9yKXt2YXIgZT10LXRoaXMudGhvdXNhbmRzU2VwYXJhdG9yLmxlbmd0aCsxLG49dGhpcy52YWx1ZS5pbmRleE9mKHRoaXMudGhvdXNhbmRzU2VwYXJhdG9yLGUpO2lmKG48PXQpcmV0dXJuIG59cmV0dXJuLTF9fSx7a2V5OiJfYWRqdXN0UmFuZ2VXaXRoU2VwYXJhdG9ycyIsdmFsdWU6ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzLl9maW5kU2VwYXJhdG9yQXJvdW5kKHQpO24+PTAmJih0PW4pO3ZhciBpPXRoaXMuX2ZpbmRTZXBhcmF0b3JBcm91bmQoZSk7cmV0dXJuIGk+PTAmJihlPWkrdGhpcy50aG91c2FuZHNTZXBhcmF0b3IubGVuZ3RoKSxbdCxlXX19LHtrZXk6InJlbW92ZSIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06MCxlPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp0aGlzLnZhbHVlLmxlbmd0aCxuPXRoaXMuX2FkanVzdFJhbmdlV2l0aFNlcGFyYXRvcnModCxlKSxpPXFyKG4sMik7dD1pWzBdLGU9aVsxXTt2YXIgcj10aGlzLnZhbHVlLnNsaWNlKDAsdCksdT10aGlzLnZhbHVlLnNsaWNlKGUpLHM9dGhpcy5fc2VwYXJhdG9yc0NvdW50KHIubGVuZ3RoKTt0aGlzLl92YWx1ZT10aGlzLl9pbnNlcnRUaG91c2FuZHNTZXBhcmF0b3JzKHRoaXMuX3JlbW92ZVRob3VzYW5kc1NlcGFyYXRvcnMocit1KSk7dmFyIGE9dGhpcy5fc2VwYXJhdG9yc0NvdW50RnJvbVNsaWNlKHIpO3JldHVybiBuZXcgWXIoe3RhaWxTaGlmdDooYS1zKSp0aGlzLnRob3VzYW5kc1NlcGFyYXRvci5sZW5ndGh9KX19LHtrZXk6Im5lYXJlc3RJbnB1dFBvcyIsdmFsdWU6ZnVuY3Rpb24odCxlKXtpZighdGhpcy50aG91c2FuZHNTZXBhcmF0b3IpcmV0dXJuIHQ7c3dpdGNoKGUpe2Nhc2UgR3I6Y2FzZSBLcjpjYXNlICRyOnZhciBuPXRoaXMuX2ZpbmRTZXBhcmF0b3JBcm91bmQodC0xKTtpZihuPj0wKXt2YXIgaT1uK3RoaXMudGhvdXNhbmRzU2VwYXJhdG9yLmxlbmd0aDtpZih0PGl8fHRoaXMudmFsdWUubGVuZ3RoPD1pfHxlPT09JHIpcmV0dXJuIG59YnJlYWs7Y2FzZSBXcjpjYXNlIFhyOnZhciByPXRoaXMuX2ZpbmRTZXBhcmF0b3JBcm91bmQodCk7aWYocj49MClyZXR1cm4gcit0aGlzLnRob3VzYW5kc1NlcGFyYXRvci5sZW5ndGh9cmV0dXJuIHR9fSx7a2V5OiJkb1ZhbGlkYXRlIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT0odC5pbnB1dD90aGlzLl9udW1iZXJSZWdFeHBJbnB1dDp0aGlzLl9udW1iZXJSZWdFeHApLnRlc3QodGhpcy5fcmVtb3ZlVGhvdXNhbmRzU2VwYXJhdG9ycyh0aGlzLnZhbHVlKSk7aWYoZSl7dmFyIGk9dGhpcy5udW1iZXI7ZT1lJiYhaXNOYU4oaSkmJihudWxsPT10aGlzLm1pbnx8dGhpcy5taW4+PTB8fHRoaXMubWluPD10aGlzLm51bWJlcikmJihudWxsPT10aGlzLm1heHx8dGhpcy5tYXg8PTB8fHRoaXMubnVtYmVyPD10aGlzLm1heCl9cmV0dXJuIGUmJk5yKFRyKG4ucHJvdG90eXBlKSwiZG9WYWxpZGF0ZSIsdGhpcykuY2FsbCh0aGlzLHQpfX0se2tleToiZG9Db21taXQiLHZhbHVlOmZ1bmN0aW9uKCl7aWYodGhpcy52YWx1ZSl7dmFyIHQ9dGhpcy5udW1iZXIsZT10O251bGwhPXRoaXMubWluJiYoZT1NYXRoLm1heChlLHRoaXMubWluKSksbnVsbCE9dGhpcy5tYXgmJihlPU1hdGgubWluKGUsdGhpcy5tYXgpKSxlIT09dCYmKHRoaXMudW5tYXNrZWRWYWx1ZT1TdHJpbmcoZSkpO3ZhciBpPXRoaXMudmFsdWU7dGhpcy5ub3JtYWxpemVaZXJvcyYmKGk9dGhpcy5fbm9ybWFsaXplWmVyb3MoaSkpLHRoaXMucGFkRnJhY3Rpb25hbFplcm9zJiZ0aGlzLnNjYWxlPjAmJihpPXRoaXMuX3BhZEZyYWN0aW9uYWxaZXJvcyhpKSksdGhpcy5fdmFsdWU9aX1OcihUcihuLnByb3RvdHlwZSksImRvQ29tbWl0Iix0aGlzKS5jYWxsKHRoaXMpfX0se2tleToiX25vcm1hbGl6ZVplcm9zIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT10aGlzLl9yZW1vdmVUaG91c2FuZHNTZXBhcmF0b3JzKHQpLnNwbGl0KHRoaXMucmFkaXgpO3JldHVybiBlWzBdPWVbMF0ucmVwbGFjZSgvXihcRCopKDAqKShcZCopLywoZnVuY3Rpb24odCxlLG4saSl7cmV0dXJuIGUraX0pKSx0Lmxlbmd0aCYmIS9cZCQvLnRlc3QoZVswXSkmJihlWzBdPWVbMF0rIjAiKSxlLmxlbmd0aD4xJiYoZVsxXT1lWzFdLnJlcGxhY2UoLzAqJC8sIiIpLGVbMV0ubGVuZ3RofHwoZS5sZW5ndGg9MSkpLHRoaXMuX2luc2VydFRob3VzYW5kc1NlcGFyYXRvcnMoZS5qb2luKHRoaXMucmFkaXgpKX19LHtrZXk6Il9wYWRGcmFjdGlvbmFsWmVyb3MiLHZhbHVlOmZ1bmN0aW9uKHQpe2lmKCF0KXJldHVybiB0O3ZhciBlPXQuc3BsaXQodGhpcy5yYWRpeCk7cmV0dXJuIGUubGVuZ3RoPDImJmUucHVzaCgiIiksZVsxXT1lWzFdLnBhZEVuZCh0aGlzLnNjYWxlLCIwIiksZS5qb2luKHRoaXMucmFkaXgpfX0se2tleToidW5tYXNrZWRWYWx1ZSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3JlbW92ZVRob3VzYW5kc1NlcGFyYXRvcnModGhpcy5fbm9ybWFsaXplWmVyb3ModGhpcy52YWx1ZSkpLnJlcGxhY2UodGhpcy5yYWRpeCwiLiIpfSxzZXQ6ZnVuY3Rpb24odCl7enIoVHIobi5wcm90b3R5cGUpLCJ1bm1hc2tlZFZhbHVlIix0LnJlcGxhY2UoIi4iLHRoaXMucmFkaXgpLHRoaXMsITApfX0se2tleToidHlwZWRWYWx1ZSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIE51bWJlcih0aGlzLnVubWFza2VkVmFsdWUpfSxzZXQ6ZnVuY3Rpb24odCl7enIoVHIobi5wcm90b3R5cGUpLCJ1bm1hc2tlZFZhbHVlIixTdHJpbmcodCksdGhpcywhMCl9fSx7a2V5OiJudW1iZXIiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnR5cGVkVmFsdWV9LHNldDpmdW5jdGlvbih0KXt0aGlzLnR5cGVkVmFsdWU9dH19LHtrZXk6ImFsbG93TmVnYXRpdmUiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnNpZ25lZHx8bnVsbCE9dGhpcy5taW4mJnRoaXMubWluPDB8fG51bGwhPXRoaXMubWF4JiZ0aGlzLm1heDwwfX1dKSxufShydSk7RnUuREVGQVVMVFM9e3JhZGl4OiIsIix0aG91c2FuZHNTZXBhcmF0b3I6IiIsbWFwVG9SYWRpeDpbIi4iXSxzY2FsZToyLHNpZ25lZDohMSxub3JtYWxpemVaZXJvczohMCxwYWRGcmFjdGlvbmFsWmVyb3M6ITF9LGl1Lk1hc2tlZE51bWJlcj1GdTt2YXIgU3U9ZnVuY3Rpb24odCl7UHIobix0KTt2YXIgZT1WcihuKTtmdW5jdGlvbiBuKCl7cmV0dXJuIHhyKHRoaXMsbiksZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9cmV0dXJuIE9yKG4sW3trZXk6Il91cGRhdGUiLHZhbHVlOmZ1bmN0aW9uKHQpe3QubWFzayYmKHQudmFsaWRhdGU9dC5tYXNrKSxOcihUcihuLnByb3RvdHlwZSksIl91cGRhdGUiLHRoaXMpLmNhbGwodGhpcyx0KX19XSksbn0ocnUpO2l1Lk1hc2tlZEZ1bmN0aW9uPVN1O3ZhciB3dT1bImNvbXBpbGVkTWFza3MiLCJjdXJyZW50TWFza1JlZiIsImN1cnJlbnRNYXNrIl0sQnU9ZnVuY3Rpb24odCl7UHIobix0KTt2YXIgZT1WcihuKTtmdW5jdGlvbiBuKHQpe3ZhciBpO3JldHVybiB4cih0aGlzLG4pLChpPWUuY2FsbCh0aGlzLE9iamVjdC5hc3NpZ24oe30sbi5ERUZBVUxUUyx0KSkpLmN1cnJlbnRNYXNrPW51bGwsaX1yZXR1cm4gT3Iobixbe2tleToiX3VwZGF0ZSIsdmFsdWU6ZnVuY3Rpb24odCl7TnIoVHIobi5wcm90b3R5cGUpLCJfdXBkYXRlIix0aGlzKS5jYWxsKHRoaXMsdCksIm1hc2siaW4gdCYmKHRoaXMuY29tcGlsZWRNYXNrcz1BcnJheS5pc0FycmF5KHQubWFzayk\/dC5tYXNrLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHN1KHQpfSkpOltdKX19LHtrZXk6Il9hcHBlbmRDaGFyUmF3Iix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06e30sbj10aGlzLl9hcHBseURpc3BhdGNoKHQsZSk7cmV0dXJuIHRoaXMuY3VycmVudE1hc2smJm4uYWdncmVnYXRlKHRoaXMuY3VycmVudE1hc2suX2FwcGVuZENoYXIodCxlKSksbn19LHtrZXk6Il9hcHBseURpc3BhdGNoIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXToiIixlPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp7fSxuPWUudGFpbCYmbnVsbCE9ZS5fYmVmb3JlVGFpbFN0YXRlP2UuX2JlZm9yZVRhaWxTdGF0ZS5fdmFsdWU6dGhpcy52YWx1ZSxpPXRoaXMucmF3SW5wdXRWYWx1ZSxyPWUudGFpbCYmbnVsbCE9ZS5fYmVmb3JlVGFpbFN0YXRlP2UuX2JlZm9yZVRhaWxTdGF0ZS5fcmF3SW5wdXRWYWx1ZTppLHU9aS5zbGljZShyLmxlbmd0aCkscz10aGlzLmN1cnJlbnRNYXNrLGE9bmV3IFlyLG89cyYmcy5zdGF0ZTtpZih0aGlzLmN1cnJlbnRNYXNrPXRoaXMuZG9EaXNwYXRjaCh0LE9iamVjdC5hc3NpZ24oe30sZSkpLHRoaXMuY3VycmVudE1hc2spaWYodGhpcy5jdXJyZW50TWFzayE9PXMpe2lmKHRoaXMuY3VycmVudE1hc2sucmVzZXQoKSxyKXt2YXIgbD10aGlzLmN1cnJlbnRNYXNrLmFwcGVuZChyLHtyYXc6ITB9KTthLnRhaWxTaGlmdD1sLmluc2VydGVkLmxlbmd0aC1uLmxlbmd0aH11JiYoYS50YWlsU2hpZnQrPXRoaXMuY3VycmVudE1hc2suYXBwZW5kKHUse3JhdzohMCx0YWlsOiEwfSkudGFpbFNoaWZ0KX1lbHNlIHRoaXMuY3VycmVudE1hc2suc3RhdGU9bztyZXR1cm4gYX19LHtrZXk6Il9hcHBlbmRQbGFjZWhvbGRlciIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl9hcHBseURpc3BhdGNoLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gdGhpcy5jdXJyZW50TWFzayYmdC5hZ2dyZWdhdGUodGhpcy5jdXJyZW50TWFzay5fYXBwZW5kUGxhY2Vob2xkZXIoKSksdH19LHtrZXk6Il9hcHBlbmRFYWdlciIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl9hcHBseURpc3BhdGNoLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gdGhpcy5jdXJyZW50TWFzayYmdC5hZ2dyZWdhdGUodGhpcy5jdXJyZW50TWFzay5fYXBwZW5kRWFnZXIoKSksdH19LHtrZXk6ImRvRGlzcGF0Y2giLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp7fTtyZXR1cm4gdGhpcy5kaXNwYXRjaCh0LHRoaXMsZSl9fSx7a2V5OiJkb1ZhbGlkYXRlIix2YWx1ZTpmdW5jdGlvbigpe2Zvcih2YXIgdCxlLGk9YXJndW1lbnRzLmxlbmd0aCxyPW5ldyBBcnJheShpKSx1PTA7dTxpO3UrKylyW3VdPWFyZ3VtZW50c1t1XTtyZXR1cm4odD1OcihUcihuLnByb3RvdHlwZSksImRvVmFsaWRhdGUiLHRoaXMpKS5jYWxsLmFwcGx5KHQsW3RoaXNdLmNvbmNhdChyKSkmJighdGhpcy5jdXJyZW50TWFza3x8KGU9dGhpcy5jdXJyZW50TWFzaykuZG9WYWxpZGF0ZS5hcHBseShlLHIpKX19LHtrZXk6InJlc2V0Iix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0O251bGw9PT0odD10aGlzLmN1cnJlbnRNYXNrKXx8dm9pZCAwPT09dHx8dC5yZXNldCgpLHRoaXMuY29tcGlsZWRNYXNrcy5mb3JFYWNoKChmdW5jdGlvbih0KXtyZXR1cm4gdC5yZXNldCgpfSkpfX0se2tleToidmFsdWUiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmN1cnJlbnRNYXNrP3RoaXMuY3VycmVudE1hc2sudmFsdWU6IiJ9LHNldDpmdW5jdGlvbih0KXt6cihUcihuLnByb3RvdHlwZSksInZhbHVlIix0LHRoaXMsITApfX0se2tleToidW5tYXNrZWRWYWx1ZSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY3VycmVudE1hc2s\/dGhpcy5jdXJyZW50TWFzay51bm1hc2tlZFZhbHVlOiIifSxzZXQ6ZnVuY3Rpb24odCl7enIoVHIobi5wcm90b3R5cGUpLCJ1bm1hc2tlZFZhbHVlIix0LHRoaXMsITApfX0se2tleToidHlwZWRWYWx1ZSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY3VycmVudE1hc2s\/dGhpcy5jdXJyZW50TWFzay50eXBlZFZhbHVlOiIifSxzZXQ6ZnVuY3Rpb24odCl7dmFyIGU9U3RyaW5nKHQpO3RoaXMuY3VycmVudE1hc2smJih0aGlzLmN1cnJlbnRNYXNrLnR5cGVkVmFsdWU9dCxlPXRoaXMuY3VycmVudE1hc2sudW5tYXNrZWRWYWx1ZSksdGhpcy51bm1hc2tlZFZhbHVlPWV9fSx7a2V5OiJpc0NvbXBsZXRlIixnZXQ6ZnVuY3Rpb24oKXt2YXIgdDtyZXR1cm4gQm9vbGVhbihudWxsPT09KHQ9dGhpcy5jdXJyZW50TWFzayl8fHZvaWQgMD09PXQ\/dm9pZCAwOnQuaXNDb21wbGV0ZSl9fSx7a2V5OiJpc0ZpbGxlZCIsZ2V0OmZ1bmN0aW9uKCl7dmFyIHQ7cmV0dXJuIEJvb2xlYW4obnVsbD09PSh0PXRoaXMuY3VycmVudE1hc2spfHx2b2lkIDA9PT10P3ZvaWQgMDp0LmlzRmlsbGVkKX19LHtrZXk6InJlbW92ZSIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdCxlPW5ldyBZcjt0aGlzLmN1cnJlbnRNYXNrJiZlLmFnZ3JlZ2F0ZSgodD10aGlzLmN1cnJlbnRNYXNrKS5yZW1vdmUuYXBwbHkodCxhcmd1bWVudHMpKS5hZ2dyZWdhdGUodGhpcy5fYXBwbHlEaXNwYXRjaCgpKTtyZXR1cm4gZX19LHtrZXk6InN0YXRlIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gT2JqZWN0LmFzc2lnbih7fSxOcihUcihuLnByb3RvdHlwZSksInN0YXRlIix0aGlzKSx7X3Jhd0lucHV0VmFsdWU6dGhpcy5yYXdJbnB1dFZhbHVlLGNvbXBpbGVkTWFza3M6dGhpcy5jb21waWxlZE1hc2tzLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHQuc3RhdGV9KSksY3VycmVudE1hc2tSZWY6dGhpcy5jdXJyZW50TWFzayxjdXJyZW50TWFzazp0aGlzLmN1cnJlbnRNYXNrJiZ0aGlzLmN1cnJlbnRNYXNrLnN0YXRlfSl9LHNldDpmdW5jdGlvbih0KXt2YXIgZT10LmNvbXBpbGVkTWFza3MsaT10LmN1cnJlbnRNYXNrUmVmLHI9dC5jdXJyZW50TWFzayx1PWpyKHQsd3UpO3RoaXMuY29tcGlsZWRNYXNrcy5mb3JFYWNoKChmdW5jdGlvbih0LG4pe3JldHVybiB0LnN0YXRlPWVbbl19KSksbnVsbCE9aSYmKHRoaXMuY3VycmVudE1hc2s9aSx0aGlzLmN1cnJlbnRNYXNrLnN0YXRlPXIpLHpyKFRyKG4ucHJvdG90eXBlKSwic3RhdGUiLHUsdGhpcywhMCl9fSx7a2V5OiJleHRyYWN0SW5wdXQiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ7cmV0dXJuIHRoaXMuY3VycmVudE1hc2s\/KHQ9dGhpcy5jdXJyZW50TWFzaykuZXh0cmFjdElucHV0LmFwcGx5KHQsYXJndW1lbnRzKToiIn19LHtrZXk6ImV4dHJhY3RUYWlsIix2YWx1ZTpmdW5jdGlvbigpe2Zvcih2YXIgdCxlLGk9YXJndW1lbnRzLmxlbmd0aCxyPW5ldyBBcnJheShpKSx1PTA7dTxpO3UrKylyW3VdPWFyZ3VtZW50c1t1XTtyZXR1cm4gdGhpcy5jdXJyZW50TWFzaz8odD10aGlzLmN1cnJlbnRNYXNrKS5leHRyYWN0VGFpbC5hcHBseSh0LHIpOihlPU5yKFRyKG4ucHJvdG90eXBlKSwiZXh0cmFjdFRhaWwiLHRoaXMpKS5jYWxsLmFwcGx5KGUsW3RoaXNdLmNvbmNhdChyKSl9fSx7a2V5OiJkb0NvbW1pdCIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmN1cnJlbnRNYXNrJiZ0aGlzLmN1cnJlbnRNYXNrLmRvQ29tbWl0KCksTnIoVHIobi5wcm90b3R5cGUpLCJkb0NvbW1pdCIsdGhpcykuY2FsbCh0aGlzKX19LHtrZXk6Im5lYXJlc3RJbnB1dFBvcyIsdmFsdWU6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZSxpPWFyZ3VtZW50cy5sZW5ndGgscj1uZXcgQXJyYXkoaSksdT0wO3U8aTt1Kyspclt1XT1hcmd1bWVudHNbdV07cmV0dXJuIHRoaXMuY3VycmVudE1hc2s\/KHQ9dGhpcy5jdXJyZW50TWFzaykubmVhcmVzdElucHV0UG9zLmFwcGx5KHQscik6KGU9TnIoVHIobi5wcm90b3R5cGUpLCJuZWFyZXN0SW5wdXRQb3MiLHRoaXMpKS5jYWxsLmFwcGx5KGUsW3RoaXNdLmNvbmNhdChyKSl9fSx7a2V5OiJvdmVyd3JpdGUiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmN1cnJlbnRNYXNrP3RoaXMuY3VycmVudE1hc2sub3ZlcndyaXRlOk5yKFRyKG4ucHJvdG90eXBlKSwib3ZlcndyaXRlIix0aGlzKX0sc2V0OmZ1bmN0aW9uKHQpe2NvbnNvbGUud2FybignIm92ZXJ3cml0ZSIgb3B0aW9uIGlzIG5vdCBhdmFpbGFibGUgaW4gZHluYW1pYyBtYXNrLCB1c2UgdGhpcyBvcHRpb24gaW4gc2libGluZ3MnKX19LHtrZXk6ImVhZ2VyIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jdXJyZW50TWFzaz90aGlzLmN1cnJlbnRNYXNrLmVhZ2VyOk5yKFRyKG4ucHJvdG90eXBlKSwiZWFnZXIiLHRoaXMpfSxzZXQ6ZnVuY3Rpb24odCl7Y29uc29sZS53YXJuKCciZWFnZXIiIG9wdGlvbiBpcyBub3QgYXZhaWxhYmxlIGluIGR5bmFtaWMgbWFzaywgdXNlIHRoaXMgb3B0aW9uIGluIHNpYmxpbmdzJyl9fSx7a2V5OiJtYXNrRXF1YWxzIix2YWx1ZTpmdW5jdGlvbih0KXtyZXR1cm4gQXJyYXkuaXNBcnJheSh0KSYmdGhpcy5jb21waWxlZE1hc2tzLmV2ZXJ5KChmdW5jdGlvbihlLG4pe3ZhciBpO3JldHVybiBlLm1hc2tFcXVhbHMobnVsbD09PShpPXRbbl0pfHx2b2lkIDA9PT1pP3ZvaWQgMDppLm1hc2spfSkpfX1dKSxufShydSk7QnUuREVGQVVMVFM9e2Rpc3BhdGNoOmZ1bmN0aW9uKHQsZSxuKXtpZihlLmNvbXBpbGVkTWFza3MubGVuZ3RoKXt2YXIgaT1lLnJhd0lucHV0VmFsdWUscj1lLmNvbXBpbGVkTWFza3MubWFwKChmdW5jdGlvbihlLHIpe3JldHVybiBlLnJlc2V0KCksZS5hcHBlbmQoaSx7cmF3OiEwfSksZS5hcHBlbmQodCxuKSx7d2VpZ2h0OmUucmF3SW5wdXRWYWx1ZS5sZW5ndGgsaW5kZXg6cn19KSk7cmV0dXJuIHIuc29ydCgoZnVuY3Rpb24odCxlKXtyZXR1cm4gZS53ZWlnaHQtdC53ZWlnaHR9KSksZS5jb21waWxlZE1hc2tzW3JbMF0uaW5kZXhdfX19LGl1Lk1hc2tlZER5bmFtaWM9QnU7dmFyIER1PXtNQVNLRUQ6InZhbHVlIixVTk1BU0tFRDoidW5tYXNrZWRWYWx1ZSIsVFlQRUQ6InR5cGVkVmFsdWUifTtmdW5jdGlvbiB4dSh0KXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06RHUuTUFTS0VELG49YXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0\/YXJndW1lbnRzWzJdOkR1Lk1BU0tFRCxpPXN1KHQpO3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gaS5ydW5Jc29sYXRlZCgoZnVuY3Rpb24oaSl7cmV0dXJuIGlbZV09dCxpW25dfSkpfX1mdW5jdGlvbiBNdSh0KXtmb3IodmFyIGU9YXJndW1lbnRzLmxlbmd0aCxuPW5ldyBBcnJheShlPjE\/ZS0xOjApLGk9MTtpPGU7aSsrKW5baS0xXT1hcmd1bWVudHNbaV07cmV0dXJuIHh1LmFwcGx5KHZvaWQgMCxuKSh0KX1pdS5QSVBFX1RZUEU9RHUsaXUuY3JlYXRlUGlwZT14dSxpdS5waXBlPU11O3RyeXtnbG9iYWxUaGlzLklNYXNrPWl1fWNhdGNoKHQpe310LkhUTUxDb250ZW50ZWRpdGFibGVNYXNrRWxlbWVudD1fdSx0LkhUTUxNYXNrRWxlbWVudD1idSx0LklucHV0TWFzaz1DdSx0Lk1hc2tFbGVtZW50PW11LHQuTWFza2VkPXJ1LHQuTWFza2VkRGF0ZT15dSx0Lk1hc2tlZER5bmFtaWM9QnUsdC5NYXNrZWRFbnVtPUV1LHQuTWFza2VkRnVuY3Rpb249U3UsdC5NYXNrZWROdW1iZXI9RnUsdC5NYXNrZWRQYXR0ZXJuPWd1LHQuTWFza2VkUmFuZ2U9a3UsdC5NYXNrZWRSZWdFeHA9ZHUsdC5QSVBFX1RZUEU9RHUsdC5jcmVhdGVNYXNrPXN1LHQuY3JlYXRlUGlwZT14dSx0LmRlZmF1bHQ9aXUsdC5waXBlPU11LE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KX0pKTsNCi8vIyBzb3VyY2VNYXBwaW5nVVJMPWltYXNrLm1pbi5qcy5tYXA7Ci8qKiAvanMvdmFuaWxsYWpzL2Zvcm0uanMgKiovCnZhciBfX19kMmNfZm9ybWpzX2Nfb249IjIwMjUtMDUtMjMgMTc6MDU6MjAiOyd1c2Ugc3RyaWN0Jzt2YXIgX19fZDJjX2Zvcm1qc19jX29uPSIyMDI0LTAxLTMxIDE0OjMzOjA5IjsidXNlIHN0cmljdCI7X19fZDJjX2Zvcm1qc19jX29uPSIyMDIzLTA0LTI3IDEwOjMwOjQ5IjsidXNlIHN0cmljdCI7CmNvbnN0IEZvcm09ZnVuY3Rpb24oKXt0aGlzLk1BU0tTPXtwaG9uZToiMDAwIDAwMC0wMDAwIixzaW46IjAwMCAwMDAgMDAwIixwb3N0YWxDb2RlOiJhMGEgMGEwIn07dGhpcy5tYXNrPShhLGIpPT57YT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKGEpO2EubGVuZ3RoJiZhLmZvckVhY2goYz0+e0lNYXNrKGMsYil9KX07dGhpcy5tYXNrTnVtYmVyPShhLGIpPT57bGV0IGM9e21hc2s6TnVtYmVyLG1pbjowfTtiJiYoYy5tYXg9Yik7dGhpcy5tYXNrKGEsYyl9O3RoaXMubWFza1Bob25lPWE9Pnt0aGlzLm1hc2soYSx7bWFzazpbe21hc2s6dGhpcy5NQVNLUy5waG9uZX0se21hc2s6YDEgJHt0aGlzLk1BU0tTLnBob25lfWB9XX0pfTt0aGlzLm1hc2tQb3N0YWxDb2RlPWE9Pnt0aGlzLm1hc2soYSx7bWFzazp0aGlzLk1BU0tTLnBvc3RhbENvZGUscHJlcGFyZTpiPT5iLnRvVXBwZXJDYXNlKCl9KX19OwovKiogL2pzL21haWxRdWlja0VtYWlsV2lkZ2V0LmpzICoqLwp2YXIgX19fZDJjX21haWxRdWlja0VtYWlsV2lkZ2V0anNfY19vbj0iMjAyNS0wNS0yMyAxNzoxMjo1MiI7J3VzZSBzdHJpY3QnO3ZhciBfX19kMmNfbWFpbFF1aWNrRW1haWxXaWRnZXRqc19jX29uPSIyMDI0LTAzLTI1IDEyOjMzOjQyIjsidXNlIHN0cmljdCI7CnZhciBtYWlsUXVpY2tFbWFpbD1mdW5jdGlvbigpe3ZhciBhPXtuYW1lOiIiLGVtYWlsOiIiLG1lc3NhZ2U6IiIscGhvbmU6IiIsbWFrZToiIixtb2RlbDoiIix5ZWFyOiIiLHN0b2NrTnVtYmVyOiIiLGRlcGFydG1lbnQ6IiIsc2VsZWN0b3I6Ii5kZWZhdWx0IixzY29wZTpudWxsLGFzc2lnblZhbHVlczpmdW5jdGlvbigpe2EubmFtZT0kKCIjcXVpY2tFbWFpbE5hbWUiLGEuc2NvcGUpLnZhbCgpO2EuZW1haWw9JCgiI3F1aWNrRW1haWxBZGRyIixhLnNjb3BlKS52YWwoKTthLnBob25lPSQoIiNxdWlja0VtYWlsVGVsIixhLnNjb3BlKS52YWwoKTthLm1lc3NhZ2U9JCgiI3F1aWNrRW1haWxNc2ciLGEuc2NvcGUpLnZhbCgpO2EuZGVwYXJ0bWVudD0kKCIjcXVpY2tFbWFpbERlcGFydG1lbnQiLGEuc2NvcGUpLnZhbCgpO2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgYS5uYW1lfHxudWxsPT1hLm5hbWUpYS5uYW1lPSIiO2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgYS5lbWFpbHx8bnVsbD09YS5lbWFpbClhLmVtYWlsPQoiIjtpZigidW5kZWZpbmVkIj09dHlwZW9mIGEucGhvbmV8fG51bGw9PWEucGhvbmUpYS5waG9uZT0iIjtpZigidW5kZWZpbmVkIj09dHlwZW9mIGEubWVzc2FnZXx8bnVsbD09YS5tZXNzYWdlKWEubWVzc2FnZT0iIjtpZigidW5kZWZpbmVkIj09dHlwZW9mIGEuZGVwYXJ0bWVudHx8bnVsbD09YS5kZXBhcnRtZW50KWEuZGVwYXJ0bWVudD0iIjt2YXIgYj1kMmNtZWRpYS5odG1sRmlsZSgpOzA8bG9jYXRpb24uaHJlZi5pbmRleE9mKCItIikmJihiPWIuc3BsaXQoIi0iKSwwPGIubGVuZ3RoJiYoYS5tYWtlPWJbMF0ucmVwbGFjZSgiXyIsIi0iKSksMTxiLmxlbmd0aCYmKGEubW9kZWw9YlsxXS5yZXBsYWNlKCJfIiwiLSIpKSwyPGIubGVuZ3RoJiYoYS55ZWFyPWJbMl0pLDM8Yi5sZW5ndGgmJihhLnN0b2NrTnVtYmVyPWJbM10ucmVwbGFjZSgiaWQiLCIiKSksMDwkKCIjZXhwcmVzc3N0b2NrbnVtYmVyIixhLnNjb3BlKS5sZW5ndGgmJjI8JCgiI2V4cHJlc3NzdG9ja251bWJlciIsYS5zY29wZSkudmFsKCkubGVuZ3RoJiYKKGEuc3RvY2tOdW1iZXI9JCgiI2V4cHJlc3NzdG9ja251bWJlciIsYS5zY29wZSkudmFsKCkpLDA8YS5tb2RlbC5sZW5ndGgmJjA9PWEueWVhci5sZW5ndGgmJiFpc05hTihhLm1vZGVsKSYmMTk4MDxhLm1vZGVsJiYyMTAwPmEubW9kZWwmJihhLnllYXI9c2VhcmNoQ3JpdGVyaWEubW9kZWwsYS5tb2RlbD0iIikpOyJ1bmRlZmluZWQiPT10eXBlb2YgYS5tYWtlJiYoYS5tYWtlPSIiKTsidW5kZWZpbmVkIj09dHlwZW9mIGEubW9kZWwmJihhLm1vZGVsPSIiKTsidW5kZWZpbmVkIj09dHlwZW9mIGEueWVhciYmKGEueWVhcj0iIik7InVuZGVmaW5lZCI9PXR5cGVvZiBhLm1lc3NhZ2UmJihhLm1lc3NhZ2U9IiIpfSxhcHBseVBob25lV006ZnVuY3Rpb24oKXsiKCAgICkgICAgLSAgICAiIT0kKCIjcXVpY2tFbWFpbFRlbCIsYS5zY29wZSkudmFsKCkmJiIiIT0kKCIjcXVpY2tFbWFpbFRlbCIsYS5zY29wZSkudmFsKCl8fCQoIiNxdWlja0VtYWlsVGVsIixhLnNjb3BlKS52YWwoIiIpfSxpbml0OmZ1bmN0aW9uKCl7InVuZGVmaW5lZCIhPQp0eXBlb2YgJCgiI2NvdXBvbkRlZmF1bHRNc2ciKS52YWwoKSYmMDwkKCIjY291cG9uRGVmYXVsdE1zZyIpLnZhbCgpLmxlbmd0aCYmKCQoIiNxdWlja0VtYWlsTXNnIixhLnNjb3BlKS5jc3MoImhlaWdodCIsIjUwcHgiKSwkKCIjcXVpY2tFbWFpbE1zZyIsYS5zY29wZSkuYXR0cigicm93cyIsMiksJCgiI3F1aWNrRW1haWxNc2ciLGEuc2NvcGUpLnZhbCgkKCIjY291cG9uRGVmYXVsdE1zZyIpLnZhbCgpKSk7JCgiLnNlbmRRdWlja0VtYWlsIixhLnNjb3BlKS5vbigiY2xpY2siLGEuc2F2ZSk7KG5ldyBGb3JtKS5tYXNrUGhvbmUoIiNxdWlja0VtYWlsVGVsIik7JCgiI3F1aWNrRW1haWxUZWwiKS5vbigiYmx1ciIsZnVuY3Rpb24oKXthLnNldFNlbGVjdG9yKHRoaXMpO3NldFRpbWVvdXQoZnVuY3Rpb24oKXthLmFwcGx5UGhvbmVXTSgpfSwyNTApfSl9LHJlc2V0V2F0ZXJtYXJrc0NvbG9yczpmdW5jdGlvbigpezA9PWEubmFtZS5sZW5ndGgmJigkKCIjcXVpY2tFbWFpbE5hbWUiLGEuc2NvcGUpLmNzcygiY29sb3IiLAoiIzU3NTc1NyIpLCQoIiNxdWlja0VtYWlsTmFtZSIsYS5zY29wZSkudmFsKCIiKSk7MD09YS5lbWFpbC5sZW5ndGgmJigkKCIjcXVpY2tFbWFpbEFkZHIiLGEuc2NvcGUpLmNzcygiY29sb3IiLCIjNTc1NzU3IiksJCgiI3F1aWNrRW1haWxBZGRyIixhLnNjb3BlKS52YWwoIiIpKTswPT1hLm1lc3NhZ2UubGVuZ3RoJiYoJCgiI3F1aWNrRW1haWxNc2ciLGEuc2NvcGUpLmNzcygiY29sb3IiLCIjNTc1NzU3IiksJCgiI3F1aWNrRW1haWxNc2ciLGEuc2NvcGUpLnZhbCgiIikpfSxzZXRTZWxlY3RvcjpmdW5jdGlvbigpe2Euc2NvcGU9JCh0aGlzKS5jbG9zZXN0KCJmb3JtIik7cmV0dXJuIGEuc2NvcGV9LHNhdmU6ZnVuY3Rpb24oYil7YiYmYi5wcmV2ZW50RGVmYXVsdCgpO2Euc2V0U2VsZWN0b3IuY2FsbCh0aGlzKTswPCQoIiNlbWFpbFN1Y2Nlc3NNZXNzYWdlIikubGVuZ3RoJiYoJCgiI2VtYWlsU3VjY2Vzc01lc3NhZ2UiKS5wYXJlbnQoKS5pcygiYm9keSIpfHwkKCIjZW1haWxTdWNjZXNzTWVzc2FnZSIpLmFwcGVuZFRvKCJib2R5IikpOwowPCQoIiNlbWFpbEZhaWxNZXNzYWdlIikubGVuZ3RoJiYoJCgiI2VtYWlsRmFpbE1lc3NhZ2UiKS5wYXJlbnQoKS5pcygiYm9keSIpfHwkKCIjZW1haWxGYWlsTWVzc2FnZSIpLmFwcGVuZFRvKCJib2R5IikpO2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgJCgiI3RleHRTYXZlTWFpbElEIixhLnNjb3BlKS52YWwoKSYmIlJlYmF0ZUNvdXBvblByb21vIj09JCgiI3RleHRTYXZlTWFpbElEIixhLnNjb3BlKS52YWwoKSYmKCQudmFsaWRpdHkuc3RhcnQoKSwkKCIjcXVpY2tFbWFpbE5hbWUiLGEuc2NvcGUpLnJlcXVpcmUoKS5ub25IdG1sKCksJCgiI3F1aWNrRW1haWxNc2ciLGEuc2NvcGUpLnJlcXVpcmUoKS5ub25IdG1sKCksJCgiI3F1aWNrRW1haWxBZGRyIixhLnNjb3BlKS5yZXF1aXJlKCkudmFsaWRFbWFpbEFkZHJlc3MoKSxiPSQudmFsaWRpdHkuZW5kKCksIWIudmFsaWQpKXJldHVybiAkKCIjTWlzc2luZ1ZhbGlkYXRpb25Nc2ciKS5jc3Moe3Bvc2l0aW9uOiJhYnNvbHV0ZSIsbGVmdDo2MCwKdG9wOjIxNCx3aWR0aDozMDF9KSwkKCIjTWlzc2luZ1ZhbGlkYXRpb25Nc2ciKS5zaG93KCksJChkb2N1bWVudCkub24oIm1vdXNlZG93biIsZnVuY3Rpb24oYyl7JC52YWxpZGl0eS5jbGVhcigpOyQoIiNNaXNzaW5nVmFsaWRhdGlvbk1zZyIpLmhpZGUoKTskKHRoaXMpLm9mZihjKX0pLCExO2EuYXNzaWduVmFsdWVzKCk7Yj0hMDskLnZhbGlkaXR5LnNldHVwKHtvdXRwdXRNb2RlOiJwb3B1cCIsc2Nyb2xsVG86ITF9KS5zdGFydCgpOyQoYS5zY29wZSkuZmluZCgiaW5wdXQ6bm90KDpoaWRkZW4pLCB0ZXh0YXJlYSIpLm5vbkh0bWwoKTswPCQoIiNleHByZXNzU2VsZWN0UmVxdWlyZWQiLGEuc2NvcGUpLmxlbmd0aCYmIjEiPT0kKCIjZXhwcmVzc1NlbGVjdFJlcXVpcmVkIixhLnNjb3BlKS52YWwoKSYmJCgiI3F1aWNrRW1haWxEZXBhcnRtZW50IixhLnNjb3BlKS5yZXF1aXJlKCkubm9uSHRtbCgpOzA8JCgiI2V4cHJlc3NQaG9uZVJlcXVpcmVkIixhLnNjb3BlKS5sZW5ndGgmJiIxIj09CiQoIiNleHByZXNzUGhvbmVSZXF1aXJlZCIsYS5zY29wZSkudmFsKCkmJigkKCIjcXVpY2tFbWFpbFRlbCIsYS5zY29wZSkuaGFzQ2xhc3MoInJlcXVpcmVkIil8fCQoIiNxdWlja0VtYWlsVGVsIixhLnNjb3BlKS5hZGRDbGFzcygicmVxdWlyZWQiKSwkKCIjcXVpY2tFbWFpbFRlbCIsYS5zY29wZSkucmVxdWlyZSgpKTskKCIjcXVpY2tFbWFpbE5hbWUiLGEuc2NvcGUpLnJlcXVpcmUoKS5ub25IdG1sKCk7JCgiI3F1aWNrRW1haWxUZWwiKS52YWxpZGF0ZVBob25lKCk7JCgiI3F1aWNrRW1haWxBZGRyIixhLnNjb3BlKS5yZXF1aXJlKCkudmFsaWRFbWFpbEFkZHJlc3MoKTskKCIjcXVpY2tFbWFpbE1zZyIsYS5zY29wZSkucmVxdWlyZSgpLm5vbkh0bWwoKTtiPSQudmFsaWRpdHkuZW5kKCk7KGI9Yi52YWxpZCk\/KCJ1bmRlZmluZWQiIT10eXBlb2YgJCgiI3RleHRTYXZlTWFpbElEIixhLnNjb3BlKS52YWwoKSYmIiIhPSQoIiN0ZXh0U2F2ZU1haWxJRCIsYS5zY29wZSkudmFsKCk\/bWFpbFBhZ2UubWFpbElEPQokKCIjdGV4dFNhdmVNYWlsSUQiLGEuc2NvcGUpLnZhbCgpOm1haWxQYWdlLm1haWxJRD0iUXVpY2tFbWFpbCIsInVuZGVmaWVuZCIhPXR5cGVvZiAkKCIjbmV3U2VjdGlvbk92ZXJyaWRlIikudmFsKCkmJiIxIj09JCgiI25ld1NlY3Rpb25PdmVycmlkZSIpLnZhbCgpJiYtMT09YS5zY29wZS5oYXNDbGFzcygibWVudSIpJiYobWFpbFBhZ2UubWFpbElEPSJRdWlja0VtYWlsTmV3SW52ZW50b3J5IiksInVuZGVmaW5lZCIhPXR5cGVvZiAkKCIjcHJpbnRGbGFnIixhLnNjb3BlKS52YWwoKSYmIjEiPT0kKCIjcHJpbnRGbGFnIixhLnNjb3BlKS52YWwoKSYmInVuZGVmaW5lZCIhPSQoIiNjb3Vwb25QcmludFVSTCIpLnZhbCgpJiYtMTwkKCIjY291cG9uUHJpbnRVUkwiKS52YWwoKS5pbmRleE9mKCIuaHRtbCIpJiYocHJpbnRDb3Vwb25Vcmw9JCgiI2NvdXBvblByaW50VVJMIikudmFsKCksd2luZG93Lm9wZW4ocHJpbnRDb3Vwb25VcmwsIl9ibGFuayIpKSxtYWlsUGFnZS5qcVNjb3BlPWEuc2NvcGUsCm1haWxQYWdlLnNhdmUoKSk6KCQoIiNxdWlja0VtYWlsRm9ybSAuTWlzc2luZ1ZhbGlkYXRpb25Nc2ciLGEuc2NvcGUpLnNob3coKSwkKCIjcXVpY2tFbWFpbEZvcm0iLGEuc2NvcGUpLm9uKCJjbGljayIsZnVuY3Rpb24oYyl7JCh0aGlzKS5maW5kKCIuTWlzc2luZ1ZhbGlkYXRpb25Nc2ciKS5oaWRlKCk7JCh0aGlzKS5vZmYoYyl9KSk7cmV0dXJuITF9LGlzRW1haWw6ZnVuY3Rpb24oYil7cmV0dXJuL14oW2EtekEtWjAtOV8uKy1dKStAKChbYS16QS1aMC05LV0pK1wuKSsoW2EtekEtWjAtOV17Miw0fSkrJC8udGVzdChiKX0sdmFsaWRhdGVFbWFpbDpmdW5jdGlvbihiKXt2YXIgYz0hMTskLmFqYXgoe3R5cGU6IkdFVCIsdXJsOiIvYWpheC92YWxpZGF0ZUVtYWlsQWNjb3VudD93c3dpZHRoPTAmZW1haWw9IitiLGFzeW5jOiExLHN1Y2Nlc3M6ZnVuY3Rpb24oZCxlLGYpezE9PWQmJihjPSEwKX19KTtyZXR1cm4gY30sZ2V0U2VuZFRvOmZ1bmN0aW9uKCl7dmFyIGI9CiQoIiNxdWlja0VtYWlsRGVwYXJ0bWVudCIsYS5zY29wZSkudmFsKCk7cmV0dXJuICQoIiNleHByZXNzRGVwYXJ0bWVudEVtYWlsXyIrYikudmFsKCl9LGdldFNlbmRUb0FkZjpmdW5jdGlvbigpe3ZhciBiPSQoIiNxdWlja0VtYWlsRGVwYXJ0bWVudCIsYS5zY29wZSkudmFsKCk7cmV0dXJuICQoIiNleHByZXNzRGVwYXJ0bWVudEVtYWlsQWRmXyIrYikudmFsKCl9fTtyZXR1cm4gYX0oKTskKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpe21haWxRdWlja0VtYWlsLnNldFNlbGVjdG9yLmNhbGwoJCgiI3F1aWNrRW1haWxGb3JtLmRlZmF1bHQiKSk7bWFpbFF1aWNrRW1haWwuaW5pdCgpOzA8JCgiI3F1aWNrRW1haWxGb3JtLm1lbnUiKS5sZW5ndGgmJihtYWlsUXVpY2tFbWFpbC5zZXRTZWxlY3Rvci5jYWxsKCQoIiNxdWlja0VtYWlsRm9ybS5tZW51IikpLG1haWxRdWlja0VtYWlsLmluaXQoKSl9KTsKLyoqIC9qcy9nZW5lcmljTWFpbC5qcyAqKi8KdmFyIF9fX2QyY19nZW5lcmljTWFpbGpzX2Nfb249IjIwMjUtMDUtMjMgMTc6MTA6MTUiOyd1c2Ugc3RyaWN0Jzt2YXIgX19fZDJjX2dlbmVyaWNNYWlsanNfY19vbj0iMjAyNC0xMS0yOCAxMDozMDoxMSI7InVzZSBzdHJpY3QiOwpHZW5lcmljTWFpbD1mdW5jdGlvbih2KXtmdW5jdGlvbiBtKGMpe2M9Yy50b1N0cmluZygpO3JldHVybiBjLnJlcGxhY2UoLzxcLz9bXj5dKz4vZ2ksIiIpfXZhciBiPXRoaXM7Yi5tYWlsSUQ9djtiLmVtYWlsU2VudD1mdW5jdGlvbihjKXttYWlsU2VudEhhbmRsZXI9Z2V0TWFpbFNlbnRIYW5kbGVyKGIubWFpbElEKTtjPygidW5kZWZpbmVkIiE9dHlwZW9mIG1haWxTZW50SGFuZGxlciYmKG1haWxTZW50SGFuZGxlci50aW1lb3V0Q2FsbGJhY2s9Yi5tc2dTZW50RmluaXNoZWRIYW5kbGVyLG1haWxTZW50SGFuZGxlci5zaG93U3VjY2VzcygpKSxiLmNsZWFyRm9ybSgpKToidW5kZWZpbmVkIiE9dHlwZW9mIG1haWxTZW50SGFuZGxlciYmKG1haWxTZW50SGFuZGxlci50aW1lb3V0Q2FsbGJhY2s9Yi5tc2dTZW50RmluaXNoZWRIYW5kbGVyLG1haWxTZW50SGFuZGxlci5zaG93RmFpbCgpKX07Yi5jbGVhckZvcm09ZnVuY3Rpb24oKXt2YXIgYz1iLmpxU2NvcGU7aWYoInVuZGVmaW5lZCI9PT0KdHlwZW9mIGN8fCIiPT1jKWlmKCQoIi5Jbm5lckJveExheWVyIikubGVuZ3RoKWM9Ii5Jbm5lckJveExheWVyIjtlbHNlIHJldHVybjskKCIuanFUcmFuc2Zvcm1JbnB1dFdyYXBwZXIgaW5wdXQsIC5qcVRyYW5zZm9ybVRleHRhcmVhIHRleHRhcmVhIixjKS5lYWNoKGZ1bmN0aW9uKCl7JCh0aGlzKS52YWwoIiIpOyQodGhpcykuYXR0cigicGxhY2Vob2xkZXIiLCQodGhpcykuYXR0cigiYWx0IikpfSk7JCgiI2Zvb3RlckRpdiAjbGVhZFNlbnQiKS5yZW1vdmUoKX07Yi5tc2dTZW50RmluaXNoZWRIYW5kbGVyPWZ1bmN0aW9uKCl7fTtiLmJhbmRwTGluaz1mdW5jdGlvbihjKXtyZXR1cm4gZW1haWxIYW5kbGVyLmJhbmRwTGluayhjKX07Yi5zYXZlPWZ1bmN0aW9uKGMpeyJ1bmRlZmluZWQiIT09dHlwZW9mIGRlYnVnJiZkZWJ1ZyhjKTtpZighYi5fdmFsaWRhdGVGaWVsZHMoKSlyZXR1cm4gJCgiaHRtbCwgYm9keSIpLmFuaW1hdGUoe3Njcm9sbFRvcDokKCIudmFsaWRpdHktZXJyb25lb3VzOmZpcnN0Iikub2Zmc2V0KCkudG9wLQoxMDB9LDJFMyksITE7Yi5wcmVwYXJlKCk7ZW1haWxIYW5kbGVyLnNlbmRNYWlsKCl9O2IucHJlcGFyZT1mdW5jdGlvbigpe3ZhciBjPWZ1bmN0aW9uKGgpe3g9KGgrIiIpLnNwbGl0KCIuIik7eDE9eFswXTt4Mj0xPHgubGVuZ3RoPyIuIit4WzFdOiIiO2ZvcihoPS8oXGQrKShcZHszfSkvO2gudGVzdCh4MSk7KXgxPXgxLnJlcGxhY2UoaCwiJDEsJDIiKTtyZXR1cm4geDEreDJ9LGc9Yi5qcVNjb3BlP2IuanFTY29wZToiLklubmVyQm94TGF5ZXIiLGs9IiIsYT0iIixlPSIiLGQ9IiIsZj0iIjtrPTA8JCgiI2VtYWlsU3ViamVjdERlZl8iK2IubWFpbElELGcpLmxlbmd0aD8kKCIjZW1haWxTdWJqZWN0RGVmXyIrYi5tYWlsSUQsZykudGV4dCgpOjA8JCgiI2VtYWlsU3ViamVjdERlZiIsZykubGVuZ3RoPyQoIiNlbWFpbFN1YmplY3REZWYiLGcpLnRleHQoKTokKCIjZW1haWxTdWJqZWN0RGVmIikudGV4dCgpO2E9MDwkKCIjZW1haWxCb2R5RGVmXyIrYi5tYWlsSUQsZykubGVuZ3RoPyQoIiNlbWFpbEJvZHlEZWZfIisKYi5tYWlsSUQsZykuaHRtbCgpOiQoIiNlbWFpbEJvZHlEZWYiLGcpLmxlbmd0aD8kKCIjZW1haWxCb2R5RGVmIixnKS5odG1sKCk6JCgiI2VtYWlsQm9keURlZiIpLmh0bWwoKTt2YXIgbD0idW5kZWZpbmVkIiE9dHlwZW9mICQoIiN0ZXh0SXNEZW1vIikuYXR0cigiaWQiKSYmIjEiPT0kKCIjdGV4dElzRGVtbyIpLnZhbCgpPyEwOiExOyJ1bmRlZmluZWQiIT10eXBlb2YgbWFpbFF1aWNrRW1haWwmJm51bGwhPW1haWxRdWlja0VtYWlsJiYic3RyaW5nIj09PXR5cGVvZiBtYWlsUXVpY2tFbWFpbC5tZXNzYWdlJiYoZW1haWxIYW5kbGVyLmNvbW1lbnRzPW1haWxRdWlja0VtYWlsLm1lc3NhZ2UpO3N3aXRjaChiLm1haWxJRCl7Y2FzZSAiUXVpY2tFbWFpbCI6Y2FzZSAiUXVpY2tFbWFpbE5ld0ludmVudG9yeSI6Y2FzZSAibWVudUNvbnRhY3RVcyI6ZW1haWxIYW5kbGVyLnBvcHVwZGl2PSJxdWlja0VtYWlsRm9ybSI7bWFpbFF1aWNrRW1haWwuYXNzaWduVmFsdWVzKCk7YT1hLnJlcGxhY2UoL3tcJE5BTUV9L2csCmQyY21lZGlhLmNhcGl0YWxpc2VGaXJzdExldHRlck9mRXZlcnlXb3JkKG1haWxRdWlja0VtYWlsLm5hbWUpKS5yZXBsYWNlKC97XCRFTUFJTH0vZyxtYWlsUXVpY2tFbWFpbC5lbWFpbCk7YT1hLnJlcGxhY2UoL3tcJEVNQUlMUEhPTkV9L2csbWFpbFF1aWNrRW1haWwucGhvbmUpLnJlcGxhY2UoL3tcJE1FU1NBR0V9L2csbWFpbFF1aWNrRW1haWwubWVzc2FnZSk7YT1hLnJlcGxhY2UoL3tcJEVNQUlMTUFLRX0vZyxtYWlsUXVpY2tFbWFpbC5tYWtlKS5yZXBsYWNlKC97XCRFTUFJTE1PREVMfS9nLG1haWxRdWlja0VtYWlsLm1vZGVsKTthPWEucmVwbGFjZSgve1wkRU1BSUxZRUFSfS9nLG1haWxRdWlja0VtYWlsLnllYXIpLnJlcGxhY2UoL3tcJFNUT0NLTlVNQkVSfS9nLG1haWxRdWlja0VtYWlsLnN0b2NrTnVtYmVyKTthPWEucmVwbGFjZSgve1wkREVQQVJUTUVOVDJ9L2csbWFpbFF1aWNrRW1haWwuZGVwYXJ0bWVudCk7YT1hLnJlcGxhY2UoL0NpdHk6L2csIiIpOyJ1bmRlZmluZWQiIT0KdHlwZW9mIG1haWxRdWlja0VtYWlsLnJvYWRUZXN0JiZudWxsIT1tYWlsUXVpY2tFbWFpbC5yb2FkVGVzdCYmKGE9YS5yZXBsYWNlKC97XCRFTUFJTFJPQURURVNUfS9nLG1haWxRdWlja0VtYWlsLnJvYWRUZXN0KS5yZXBsYWNlKC97XCRFTUFJTENBUkR9L2csbWFpbFF1aWNrRW1haWwuZ2lmdENhcmQpKTtlbWFpbEhhbmRsZXIudXNlckVtYWlsPW1haWxRdWlja0VtYWlsLmVtYWlsO2VtYWlsSGFuZGxlci51c2VyRmlyc3ROYW1lPW1haWxRdWlja0VtYWlsLm5hbWU7ZW1haWxIYW5kbGVyLnVzZXJQaG9uZT1tYWlsUXVpY2tFbWFpbC5waG9uZTtlPW1haWxRdWlja0VtYWlsLm1lc3NhZ2U7ZW1haWxIYW5kbGVyLnRyaW09JCgiI2V4cHJlc3NjYXJ0cmltIikudmFsKCk7ZW1haWxIYW5kbGVyLnZpbj0kKCIjZXhwcmVzc2NhcnZpbiIpLnZhbCgpO2VtYWlsSGFuZGxlci5wcmljZT0kKCIjZXhwcmVzc2NhcnByaWNlIikudmFsKCk7ZW1haWxIYW5kbGVyLm1ha2U9JCgiI2V4cHJlc3NjYXJtYWtlIikudmFsKCk7CmVtYWlsSGFuZGxlci5tb2RlbD0kKCIjZXhwcmVzc2Nhcm1vZGVsIikudmFsKCk7ZW1haWxIYW5kbGVyLnllYXI9JCgiI2V4cHJlc3NjYXJ5ZWFyIikudmFsKCk7ZW1haWxIYW5kbGVyLnN0b2NrTnVtYmVyPW1haWxRdWlja0VtYWlsLnN0b2NrTnVtYmVyOyJ1bmRlZmluZWQiPT10eXBlb2YgJCgiI2V4cHJlc3NjYXJpZCIpLmF0dHIoImlkIik\/ZW1haWxIYW5kbGVyLmNhcmlkPSIiOmVtYWlsSGFuZGxlci5jYXJpZD0kKCIjZXhwcmVzc2NhcmlkIikudmFsKCk7JCgiaW5wdXQubGFiZWxlbWFpbCIpLnZhbCgiRGVtYW5kZXMtRXhwcmVzcyIpOyQoImlucHV0LmlzZXhwcmVzcyIpLnZhbCgiMSIpOyJ1bmRlZmluZWQiIT10eXBlb2Ygc2VhcmNoRW5naW5lJiYoJCgiaW5wdXQuYnJhbmRlbWFpbCIpLnZhbChtYWlsUXVpY2tFbWFpbC5tYWtlKSwkKCJpbnB1dC5tb2RlbGVtYWlsIikudmFsKG1haWxRdWlja0VtYWlsLm1vZGVsKSwkKCJpbnB1dC55ZWFyZW1haWwiKS52YWwobWFpbFF1aWNrRW1haWwueWVhcikpOwoidW5kZWZpbmVkIiE9dHlwZW9mICQoIiNleHByZXNzY2FyaWQiKS5hdHRyKCJpZCIpPzA8JCgiI2V4cHJlc3NjYXJpZCIpLnZhbCgpLmxlbmd0aD9lbWFpbEhhbmRsZXIuY29uZGl0aW9uPSJVc2VkIjplbWFpbEhhbmRsZXIuY29uZGl0aW9uPTA8bWFpbFF1aWNrRW1haWwubWFrZS5sZW5ndGg\/Ik5ldyI6IlVua25vd24iOmVtYWlsSGFuZGxlci5jb25kaXRpb249IlVua25vd24iOyIiIT09bWFpbFF1aWNrRW1haWwuZGVwYXJ0bWVudCYmKGVtYWlsSGFuZGxlci5kZXBhcnRtZW50PW1haWxRdWlja0VtYWlsLmRlcGFydG1lbnQpO2Q9bWFpbFF1aWNrRW1haWwuZ2V0U2VuZFRvKCk7Zj1tYWlsUXVpY2tFbWFpbC5nZXRTZW5kVG9BZGYoKTticmVhaztjYXNlICJSZWJhdGVDb3Vwb25Qcm9tbyI6bWFpbFF1aWNrRW1haWwuYXNzaWduVmFsdWVzKCk7ZT1tYWlsUXVpY2tFbWFpbC5tZXNzYWdlO2E9YS5yZXBsYWNlKC97XCROQU1FfS9nLGQyY21lZGlhLmNhcGl0YWxpc2VGaXJzdExldHRlck9mRXZlcnlXb3JkKG1haWxRdWlja0VtYWlsLm5hbWUpKS5yZXBsYWNlKC97XCRFTUFJTH0vZywKbWFpbFF1aWNrRW1haWwuZW1haWwpO2E9YS5yZXBsYWNlKC97XCRFTUFJTFBIT05FfS9nLG1haWxRdWlja0VtYWlsLnBob25lKS5yZXBsYWNlKC97XCRNRVNTQUdFfS9nLG1haWxRdWlja0VtYWlsLm1lc3NhZ2UpO2E9YS5yZXBsYWNlKC97XCRDT1VQT05NQUtFfS9nLCQoIiNjb3Vwb25tYWtlIikudmFsKCkpLnJlcGxhY2UoL3tcJENPVVBPTk1PREVMfS9nLCQoIiNjb3Vwb25tb2RlbCIpLnZhbCgpKTthPWEucmVwbGFjZSgve1wkQ09VUE9OWUVBUn0vZywkKCIjY291cG9ueWVhciIpLnZhbCgpKS5yZXBsYWNlKC97XCRDT1VQT05TVE9DS05VTUJFUn0vZywkKCIjY291cG9uc3RvY2tudW1iZXIiKS52YWwoKSk7YT1hLnJlcGxhY2UoL3tcJENPVVBPTlZBTFVFfS9nLCQoIiNjb3Vwb25WYWx1ZSIpLnZhbCgpKyIkIikucmVwbGFjZSgve1wkUFJJQ0V9L2csJCgiI3ZlaGljbGVPcmlnUHJpY2UiKS52YWwoKSsiJCIpO2VtYWlsSGFuZGxlci5tYWtlPSQoIiNjb3Vwb25tYWtlIikudmFsKCk7CmVtYWlsSGFuZGxlci5tb2RlbD0kKCIjY291cG9ubW9kZWwiKS52YWwoKTtlbWFpbEhhbmRsZXIueWVhcj0kKCIjY291cG9ueWVhciIpLnZhbCgpO2VtYWlsSGFuZGxlci51c2VyRW1haWw9bWFpbFF1aWNrRW1haWwuZW1haWw7ZW1haWxIYW5kbGVyLnVzZXJGaXJzdE5hbWU9bWFpbFF1aWNrRW1haWwubmFtZTtlbWFpbEhhbmRsZXIudXNlclBob25lPW1haWxRdWlja0VtYWlsLnBob25lO2VtYWlsSGFuZGxlci50cmltPSQoIiNjb3Vwb252ZWhpY2xldHJpbSIpLnZhbCgpO2VtYWlsSGFuZGxlci52aW49JCgiI2NvdXBvbnZlaGljbGV2aW4iKS52YWwoKTtlbWFpbEhhbmRsZXIucHJpY2U9JCgiI3ZlaGljbGVPcmlnUHJpY2UiKS52YWwoKTtlbWFpbEhhbmRsZXIuc3RvY2tOdW1iZXI9JCgiI2NvdXBvbnN0b2NrbnVtYmVyIikudmFsKCk7ZW1haWxIYW5kbGVyLmNhcmlkPSQoIiNjb3Vwb252ZWhpY2xlaWQiKS52YWwoKTskKCJpbnB1dC5sYWJlbGVtYWlsIikudmFsKCJSZWJhdGVDb3Vwb25Qcm9tbyIpOwoidW5kZWZpbmVkIiE9dHlwZW9mIHNlYXJjaEVuZ2luZSYmKCQoImlucHV0LmJyYW5kZW1haWwiKS52YWwoJCgiI2NvdXBvbm1ha2UiKS52YWwoKSksJCgiaW5wdXQubW9kZWxlbWFpbCIpLnZhbCgkKCIjY291cG9ubW9kZWwiKS52YWwoKSksJCgiaW5wdXQueWVhcmVtYWlsIikudmFsKCQoIiNjb3Vwb255ZWFyIikudmFsKCkpKTtlbWFpbEhhbmRsZXIuY29uZGl0aW9uPSJVc2VkIjtiLmVtYWlsU2VudD1mdW5jdGlvbihoKXskKCIuY2xvc2UtcmV2ZWFsLW1vZGFsIikudHJpZ2dlcigiY2xpY2siKX07YnJlYWs7Y2FzZSAiQ2FycHJvb2ZNYWlsIjplbWFpbEhhbmRsZXIucG9wdXBkaXY9ImNhcnByb29mTWFpbkRpdiI7az0kKCIjZW1haWxTdWJqZWN0RGVmMiIpLnRleHQoKTthPSQoIiNlbWFpbEJvZHlEZWYyIikuaHRtbCgpOyQoImlucHV0LmxhYmVsZW1haWwiKS52YWwoIkRlbWFuZGVzLUNhclByb29mIik7JCgiaW5wdXQuaXNleHByZXNzIikudmFsKCIwIik7JCgiaW5wdXQuYnJhbmRlbWFpbCIpLnZhbChjYXJwcm9vZkhhbmRsZXIubWFrZSk7CiQoImlucHV0Lm1vZGVsZW1haWwiKS52YWwoY2FycHJvb2ZIYW5kbGVyLm1vZGVsKTskKCJpbnB1dC55ZWFyZW1haWwiKS52YWwoY2FycHJvb2ZIYW5kbGVyLnllYXIpO2E9YS5yZXBsYWNlKC97XCROQU1FfS9nLGQyY21lZGlhLmNhcGl0YWxpc2VGaXJzdExldHRlck9mRXZlcnlXb3JkKGNhcnByb29mSGFuZGxlci5uYW1lKSkucmVwbGFjZSgve1wkRU1BSUx9L2csY2FycHJvb2ZIYW5kbGVyLmVtYWlsKTthPWEucmVwbGFjZSgve1wkRU1BSUxNQUtFfS9nLGNhcnByb29mSGFuZGxlci5tYWtlKS5yZXBsYWNlKC97XCRFTUFJTE1PREVMfS9nLGNhcnByb29mSGFuZGxlci5tb2RlbCkucmVwbGFjZSgve1wkRU1BSUxZRUFSfS9nLGNhcnByb29mSGFuZGxlci55ZWFyKTthPWEucmVwbGFjZSgve1wkQ09MT1J9L2csY2FycHJvb2ZIYW5kbGVyLmNvbG9yKS5yZXBsYWNlKC97XCRTVE9DS05VTUJFUn0vZyxjYXJwcm9vZkhhbmRsZXIuc3RvY2tOdW1iZXIpLnJlcGxhY2UoL3tcJEVNQUlMUEhPTkV9L2csCmNhcnByb29mSGFuZGxlci5waG9uZSk7ZW1haWxIYW5kbGVyLnVzZXJFbWFpbD1jYXJwcm9vZkhhbmRsZXIuZW1haWw7ZW1haWxIYW5kbGVyLnVzZXJGaXJzdE5hbWU9Y2FycHJvb2ZIYW5kbGVyLm5hbWU7ZW1haWxIYW5kbGVyLnVzZXJQaG9uZT1jYXJwcm9vZkhhbmRsZXIucGhvbmU7ZW1haWxIYW5kbGVyLm1ha2U9Y2FycHJvb2ZIYW5kbGVyLm1ha2U7ZW1haWxIYW5kbGVyLm1vZGVsPWNhcnByb29mSGFuZGxlci5tb2RlbDtlbWFpbEhhbmRsZXIueWVhcj1jYXJwcm9vZkhhbmRsZXIueWVhcjtlbWFpbEhhbmRsZXIudHJpbT0kKCIjY2FycHJvb2ZjYXJ0cmltIikudmFsKCk7ZW1haWxIYW5kbGVyLnZpbj0kKCIjY2FycHJvb2ZjYXJ2aW4iKS52YWwoKTtlbWFpbEhhbmRsZXIucHJpY2U9JCgiI2NhcnByb29mY2FycHJpY2UiKS52YWwoKTtlbWFpbEhhbmRsZXIuc3RvY2tOdW1iZXI9Y2FycHJvb2ZIYW5kbGVyLnN0b2NrTnVtYmVyO2VtYWlsSGFuZGxlci5jYXJpZD0kKCIjY2FycHJvb2ZjYXJpZCIpLnZhbCgpOwpkPWNhcnByb29mSGFuZGxlci5zZW5kVG8ubGVuZ3RoJiYiIiE9Y2FycHJvb2ZIYW5kbGVyLnNlbmRUbz9jYXJwcm9vZkhhbmRsZXIuc2VuZFRvOiQoIiN0ZXh0U2VuZFRvRW1haWwiKS5sZW5ndGg\/JCgiI3RleHRTZW5kVG9FbWFpbCIpLnZhbCgpOiIiO2Y9Y2FycHJvb2ZIYW5kbGVyLnNlbmRUb0FkZi5sZW5ndGgmJiIiIT1jYXJwcm9vZkhhbmRsZXIuc2VuZFRvQWRmP2NhcnByb29mSGFuZGxlci5zZW5kVG9BZGY6JCgiI3RleHRTZW5kVG9FbWFpbEFERiIpLmxlbmd0aD8kKCIjdGV4dFNlbmRUb0VtYWlsQURGIikudmFsKCk6IiI7ZW1haWxIYW5kbGVyLmRlYWxlck5hbWU9Y2FycHJvb2ZIYW5kbGVyLmRlYWxlck5hbWU7YnJlYWs7Y2FzZSAiQ3VzdG9tZXJSYXRpbmciOmVtYWlsSGFuZGxlci5wb3B1cGRpdj0iQ3VzdG9tZXJSYXRpbmciO21haWxSYXRpbmcuYXNzaWduVmFsdWVzKCk7YT1hLnJlcGxhY2UoL3tcJFJBVElOR01FU1NBR0V9L2csbWFpbFJhdGluZy5tZXNzYWdlKS5yZXBsYWNlKC97XCRMTkFNRX0vZywKZDJjbWVkaWEuY2FwaXRhbGlzZUZpcnN0TGV0dGVyT2ZFdmVyeVdvcmQobWFpbFJhdGluZy51c2VyTGFzdE5hbWUpKS5yZXBsYWNlKC97XCRGTkFNRX0vZyxkMmNtZWRpYS5jYXBpdGFsaXNlRmlyc3RMZXR0ZXJPZkV2ZXJ5V29yZChtYWlsUmF0aW5nLnVzZXJGaXJzdE5hbWUpKS5yZXBsYWNlKC97XCRFTUFJTH0vZyxtYWlsUmF0aW5nLnVzZXJFbWFpbCkucmVwbGFjZSgve1wkUEhPTkV9L2csbWFpbFJhdGluZy51c2VyUGhvbmUpLnJlcGxhY2UoL3tcJFJBVElOR1NUQVJTfS9nLG1haWxSYXRpbmcucmF0aW5nKS5yZXBsYWNlKC97XCRDTElFTlROQU1FfS9nLG1haWxSYXRpbmcudXNlckZpcnN0TmFtZSsiICIrbWFpbFJhdGluZy51c2VyTGFzdE5hbWUpO2s9ay5yZXBsYWNlKC97XCRDTElFTlROQU1FfS9nLG1haWxSYXRpbmcudXNlckZpcnN0TmFtZSsiICIrbWFpbFJhdGluZy51c2VyTGFzdE5hbWUpO2VtYWlsSGFuZGxlci52aW49IiI7ZW1haWxIYW5kbGVyLnByaWNlPTA7ZW1haWxIYW5kbGVyLnN0b2NrTnVtYmVyPQoiIjtlbWFpbEhhbmRsZXIuY2FyaWQ9IiI7ZW1haWxIYW5kbGVyLmNvbmRpdGlvbj0iVW5rbm93biI7ZW1haWxIYW5kbGVyLnVzZXJGaXJzdE5hbWU9bWFpbFJhdGluZy51c2VyRmlyc3ROYW1lO2VtYWlsSGFuZGxlci51c2VyTGFzdE5hbWU9bWFpbFJhdGluZy51c2VyTGFzdE5hbWU7ZW1haWxIYW5kbGVyLnVzZXJQaG9uZT1tYWlsUmF0aW5nLnVzZXJQaG9uZTtlbWFpbEhhbmRsZXIudXNlckVtYWlsPW1haWxSYXRpbmcudXNlckVtYWlsO2Q9bWFpbFJhdGluZy5zZW5kVG87Zj0iICAiO2JyZWFrO2Nhc2UgImhlYWRlclNlcnZpY2UiOmVtYWlsSGFuZGxlci5wb3B1cGRpdj0ibWVudVNlcnZpY2UiO3NlcnZpY2VGb3JtX2hlYWRlclNlcnZpY2Uuc2V0RW1haWxTZW50Q2FsbGJhY2soKTthPXNlcnZpY2VGb3JtX2hlYWRlclNlcnZpY2Uuc2V0RW1haWxIYW5kbGVyVmFsdWVzQW5kQm9keShhKTtkPXNlcnZpY2VGb3JtX2hlYWRlclNlcnZpY2UuZ2V0U2VuZFRvKCk7ays9IiBFeHByZXNzIjsKYnJlYWs7Y2FzZSAibWVudVNlcnZpY2UiOmVtYWlsSGFuZGxlci5wb3B1cGRpdj0ibWVudVNlcnZpY2UiO3NlcnZpY2VGb3JtX21lbnVTZXJ2aWNlLnNldEVtYWlsU2VudENhbGxiYWNrKCk7YT1zZXJ2aWNlRm9ybV9tZW51U2VydmljZS5zZXRFbWFpbEhhbmRsZXJWYWx1ZXNBbmRCb2R5KGEpO2Q9c2VydmljZUZvcm1fbWVudVNlcnZpY2UuZ2V0U2VuZFRvKCk7ays9IiBFeHByZXNzIjticmVhaztkZWZhdWx0OiIiPT1kJiYidW5kZWZpbmVkIiE9dHlwZW9mICQoIiN0ZXh0U2VuZFRvRW1haWwiKS5hdHRyKCJpZCIpJiYoZD0kKCIjdGV4dFNlbmRUb0VtYWlsIikudmFsKCkpOyIiPT1mJiYidW5kZWZpbmVkIiE9dHlwZW9mICQoIiN0ZXh0U2VuZFRvRW1haWxBREYiKS5hdHRyKCJpZCIpJiYzPCQoIiN0ZXh0U2VuZFRvRW1haWxBREYiKS52YWwoKS5sZW5ndGgmJihmPSQoIiN0ZXh0U2VuZFRvRW1haWxBREYiKS52YWwoKSk7InVuZGVmaW5lZCIhPXR5cGVvZiBtYWlsVmVoaWNsZVdpZGdldCYmCihtYWlsVmVoaWNsZVdpZGdldC5hc3NpZ25WYWx1ZXMoKSxhPWEucmVwbGFjZSgve1wkRU1BSUxNQUtFfS9nLG1haWxWZWhpY2xlV2lkZ2V0Lm1ha2UpLnJlcGxhY2UoL3tcJEVNQUlMTU9ERUx9L2csbWFpbFZlaGljbGVXaWRnZXQubW9kZWwpLnJlcGxhY2UoL3tcJEVNQUlMWUVBUn0vZyxtYWlsVmVoaWNsZVdpZGdldC55ZWFyKS5yZXBsYWNlKC97XCRDT0xPUn0vZyxtYWlsVmVoaWNsZVdpZGdldC5jb2xvcikucmVwbGFjZSgve1wkRU1BSUxTVE9DS05VTUJFUn0vZyxtYWlsVmVoaWNsZVdpZGdldC5zdG9ja051bWJlcikucmVwbGFjZSgve1wkU1RPQ0tOVU1CRVJ9L2csbWFpbFZlaGljbGVXaWRnZXQuc3RvY2tOdW1iZXIpLnJlcGxhY2UoL3tcJEZST01ZRUFSfS9nLG1haWxWZWhpY2xlV2lkZ2V0LmZyb21ZZWFyKS5yZXBsYWNlKC97XCRUT1lFQVJ9L2csbWFpbFZlaGljbGVXaWRnZXQudG9ZZWFyKS5yZXBsYWNlKC97XCRJTlRFTlRJT059L2csbWFpbFZlaGljbGVXaWRnZXQuaW50ZW50aW9uKS5yZXBsYWNlKC97XCRQTEFURVN9L2csCm1haWxWZWhpY2xlV2lkZ2V0LnBsYXRlcykucmVwbGFjZSgve1wkVklOfS9nLG1haWxWZWhpY2xlV2lkZ2V0LnZpbiksbWFpbFZlaGljbGVXaWRnZXQub2RvbW90ZXImJihhPWEucmVwbGFjZSgve1wkS019L2csYyhtYWlsVmVoaWNsZVdpZGdldC5vZG9tb3RlcikpKSwkKCJpbnB1dC5icmFuZGVtYWlsIikubGVuZ3RoJiYkKCJpbnB1dC5icmFuZGVtYWlsIikudmFsKG1haWxWZWhpY2xlV2lkZ2V0Lm1ha2UpLCQoImlucHV0Lm1vZGVsZW1haWwiKS5sZW5ndGgmJiQoImlucHV0Lm1vZGVsZW1haWwiKS52YWwobWFpbFZlaGljbGVXaWRnZXQubW9kZWwpLCQoImlucHV0LnllYXJlbWFpbCIpLmxlbmd0aCYmJCgiaW5wdXQueWVhcmVtYWlsIikudmFsKG1haWxWZWhpY2xlV2lkZ2V0LnllYXIpLGVtYWlsSGFuZGxlci5tYWtlPW1haWxWZWhpY2xlV2lkZ2V0Lm1ha2UsZW1haWxIYW5kbGVyLm1vZGVsPW1haWxWZWhpY2xlV2lkZ2V0Lm1vZGVsLGVtYWlsSGFuZGxlci55ZWFyPW1haWxWZWhpY2xlV2lkZ2V0LnllYXIsCmVtYWlsSGFuZGxlci50cmltPSQoIiNjYXJ0cmltIikudmFsKCksZW1haWxIYW5kbGVyLnZpbj1tYWlsVmVoaWNsZVdpZGdldC52aW4sZW1haWxIYW5kbGVyLnByaWNlPSQoIiNjYXJwcmljZSIpLnZhbCgpLGVtYWlsSGFuZGxlci5zdG9ja051bWJlcj1tYWlsVmVoaWNsZVdpZGdldC5zdG9ja051bWJlcixlbWFpbEhhbmRsZXIuY2FyaWQ9JCgiI2NhcmlkIikudmFsKCksMDwkKCIjY2FyaWQiKS52YWwoKS5sZW5ndGh8fGVtYWlsSGFuZGxlci55ZWFyPChuZXcgRGF0ZSkuZ2V0RnVsbFllYXIoKT9lbWFpbEhhbmRsZXIuY29uZGl0aW9uPSJVc2VkIjplbWFpbEhhbmRsZXIuY29uZGl0aW9uPTA8bWFpbFZlaGljbGVXaWRnZXQubWFrZS5sZW5ndGg\/Ik5ldyI6IlVua25vd24iKTthPWEucmVwbGFjZSgve1wkUExBVEVTfS9nLCIiKTsidW5kZWZpbmVkIiE9dHlwZW9mIG1haWxWZWhpY2xlV2lkZ2V0RXgmJiQoIiN2ZWhpY2xlU2VsZWN0Rm9ybUV4IikubGVuZ3RoJiYobWFpbFZlaGljbGVXaWRnZXRFeC5hc3NpZ25WYWx1ZXMoKSwKYT1hLnJlcGxhY2UoL3tcJE1BS0VFWH0vZyxtYWlsVmVoaWNsZVdpZGdldEV4Lm1ha2UpLnJlcGxhY2UoL3tcJE1PREVMRVh9L2csbWFpbFZlaGljbGVXaWRnZXRFeC5tb2RlbCkucmVwbGFjZSgve1wkWUVBUkVYfS9nLG1haWxWZWhpY2xlV2lkZ2V0RXgueWVhcikucmVwbGFjZSgve1wkQ09MT1JFWH0vZyxtYWlsVmVoaWNsZVdpZGdldEV4LmNvbG9yKS5yZXBsYWNlKC97XCRUUklNRVh9L2csbWFpbFZlaGljbGVXaWRnZXRFeC50cmltKS5yZXBsYWNlKC97XCRUUkFOU01JU1NJT059L2csbWFpbFZlaGljbGVXaWRnZXRFeC50cmFuc21pc3Npb24pLnJlcGxhY2UoL3tcJEtNfS9nLGMobWFpbFZlaGljbGVXaWRnZXRFeC5vZG9tb3RlcikpLnJlcGxhY2UoL3tcJFZJTkVYfS9nLG1haWxWZWhpY2xlV2lkZ2V0RXgudmluKS5yZXBsYWNlKC97XCREUklWRVRSQUlOfS9nLG1haWxWZWhpY2xlV2lkZ2V0RXguZHJpdmV0cmFpbikucmVwbGFjZSgve1wkR0FTfS9nLG1haWxWZWhpY2xlV2lkZ2V0RXguZnVlbCksCiQoImlucHV0LmJyYW5kZW1haWwiKS5sZW5ndGgmJjA8bWFpbFZlaGljbGVXaWRnZXRFeC5tYWtlLmxlbmd0aCYmJCgiaW5wdXQuYnJhbmRlbWFpbCIpLnZhbChtYWlsVmVoaWNsZVdpZGdldEV4Lm1ha2UpLCQoImlucHV0Lm1vZGVsZW1haWwiKS5sZW5ndGgmJjA8bWFpbFZlaGljbGVXaWRnZXRFeC5tb2RlbC5sZW5ndGgmJiQoImlucHV0Lm1vZGVsZW1haWwiKS52YWwobWFpbFZlaGljbGVXaWRnZXRFeC5tb2RlbCksJCgiaW5wdXQueWVhcmVtYWlsIikubGVuZ3RoJiYwPG1haWxWZWhpY2xlV2lkZ2V0RXgubWFrZS5sZW5ndGgmJiQoImlucHV0LnllYXJlbWFpbCIpLnZhbChtYWlsVmVoaWNsZVdpZGdldEV4LnllYXIpLGVtYWlsSGFuZGxlci5tYWtlPW1haWxWZWhpY2xlV2lkZ2V0RXgubWFrZSxlbWFpbEhhbmRsZXIubW9kZWw9bWFpbFZlaGljbGVXaWRnZXRFeC5tb2RlbCxlbWFpbEhhbmRsZXIueWVhcj1tYWlsVmVoaWNsZVdpZGdldEV4LnllYXIsZW1haWxIYW5kbGVyLnRyaW09bWFpbFZlaGljbGVXaWRnZXRFeC50cmltLAoidW5kZWZpbmVkIiE9dHlwZW9mIGVtYWlsSGFuZGxlci5pc1RyYWRlSW5CYXJ8fCJQcmljZVZlaGljbGUiIT1iLm1haWxJRCYmIlByaWNlVmVoaWNsZU5ldyIhPWIubWFpbElEJiYiRXN0aGV0aWNSZXF1ZXN0IiE9Yi5tYWlsSUR8fChlbWFpbEhhbmRsZXIubWFrZT1tYWlsVmVoaWNsZVdpZGdldC5tYWtlLGVtYWlsSGFuZGxlci5tb2RlbD1tYWlsVmVoaWNsZVdpZGdldC5tb2RlbCxlbWFpbEhhbmRsZXIueWVhcj1tYWlsVmVoaWNsZVdpZGdldC55ZWFyLGVtYWlsSGFuZGxlci50cmltPW1haWxWZWhpY2xlV2lkZ2V0LnRyaW0sIlByaWNlVmVoaWNsZSIhPWIubWFpbElEJiYiUHJpY2VWZWhpY2xlTmV3IiE9Yi5tYWlsSUQpfHwoZW1haWxIYW5kbGVyLmNhcjJfbWFrZT1tYWlsVmVoaWNsZVdpZGdldEV4Lm1ha2UsZW1haWxIYW5kbGVyLmNhcjJfbW9kZWw9bWFpbFZlaGljbGVXaWRnZXRFeC5tb2RlbCxlbWFpbEhhbmRsZXIuY2FyMl90cmltPW1haWxWZWhpY2xlV2lkZ2V0RXgudHJpbSwKZW1haWxIYW5kbGVyLmNhcjJfeWVhcj1tYWlsVmVoaWNsZVdpZGdldEV4LnllYXIsZW1haWxIYW5kbGVyLmNhcjJfY29sb3I9bWFpbFZlaGljbGVXaWRnZXRFeC5jb2xvcixlbWFpbEhhbmRsZXIuY2FyMl9vZG9tZXRlcj1jKG1haWxWZWhpY2xlV2lkZ2V0RXgub2RvbW90ZXIpLGVtYWlsSGFuZGxlci5jYXIyX3Zpbj1tYWlsVmVoaWNsZVdpZGdldEV4LnZpbixlbWFpbEhhbmRsZXIuY2FyMl90cmFuc21pc3Nvbj1tYWlsVmVoaWNsZVdpZGdldEV4LnRyYW5zbWlzc2lvbixlbWFpbEhhbmRsZXIuY2FyMl9kcml2ZXRyYWluPW1haWxWZWhpY2xlV2lkZ2V0RXguZHJpdmV0cmFpbixlbWFpbEhhbmRsZXIuY2FyMl9mdWVsdHlwZT1tYWlsVmVoaWNsZVdpZGdldEV4LmZ1ZWwsYT1hLnJlcGxhY2UoL3tcJFRSQURFSU5MT1d9L2csIk4vQSIpLGE9YS5yZXBsYWNlKC97XCRUUkFERUlOSElHSH0vZywiTi9BIiksYT1hLnJlcGxhY2UoL3tcJFRSQURFSU5BVkd9L2csIk4vQSIpKSxlbWFpbEhhbmRsZXIudmluPQoiIixlbWFpbEhhbmRsZXIucHJpY2U9MCxlbWFpbEhhbmRsZXIuc3RvY2tOdW1iZXI9IiIsZW1haWxIYW5kbGVyLmNhcmlkPSIiLDA8JCgiI2NhcmlkIikudmFsKCkubGVuZ3RoP2VtYWlsSGFuZGxlci5jb25kaXRpb249IlVzZWQiOmVtYWlsSGFuZGxlci5jb25kaXRpb249MDxtYWlsVmVoaWNsZVdpZGdldEV4Lm1ha2UubGVuZ3RoPyJOZXciOiJVbmtub3duIik7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiAkKCIjc2VydmljZVBhY2thZ2VzIikucHJvcCgiaWQiKSl7dmFyIG49ITEscj0iIjskKCJpbnB1dC5zZWxlY3RlZFNlcnZpY2UiKS5lYWNoKGZ1bmN0aW9uKGgscCl7aD0kKHApO2guaXMoIjpjaGVja2VkIikmJihyKz0iPGJyPiIraC52YWwoKSxuPSEwKX0pO24mJihyPSI8YnI+PGJyPjx1PiIrJCgiI3NlbGVjdGVkU2VydmljZXNUaXRsZSIpLnZhbCgpKyI8L3U+IityKTthPWEucmVwbGFjZSgve1wkU0VMRUNURURTRVJWSUNFU30vZyxyKX0idW5kZWZpbmVkIiE9dHlwZW9mIG1haWxVc2VySW5mbyYmCihtYWlsVXNlckluZm8uYXNzaWduVmFsdWVzKCksYT1hLnJlcGxhY2UoL3tcJEZOQU1FfS9nLGQyY21lZGlhLmNhcGl0YWxpc2VGaXJzdExldHRlck9mRXZlcnlXb3JkKG1haWxVc2VySW5mby5maXJzdE5hbWUpKS5yZXBsYWNlKC97XCRMTkFNRX0vZyxkMmNtZWRpYS5jYXBpdGFsaXNlRmlyc3RMZXR0ZXJPZkV2ZXJ5V29yZChtYWlsVXNlckluZm8ubGFzdE5hbWUpKS5yZXBsYWNlKC97XCRFTUFJTFBIT05FfS9nLG1haWxVc2VySW5mby5waG9uZSkucmVwbGFjZSgve1wkRU1BSUx9L2csbWFpbFVzZXJJbmZvLmVtYWlsKSk7InVuZGVmaW5lZCIhPXR5cGVvZiBtYWlsSm9iT2ZmZXImJihtYWlsSm9iT2ZmZXIuYXNzaWduVmFsdWVzKCksZD0kKCIjdGV4dFNlbmRUb0VtYWlsIikudmFsKCksZj0kKCIjdGV4dFNlbmRUb0VtYWlsQURGIikudmFsKCksYT1hLnJlcGxhY2UoL3tcJEpPQlBPU1R9L2csbShkMmNtZWRpYS5jYXBpdGFsaXNlRmlyc3RMZXR0ZXJPZkV2ZXJ5V29yZChtYWlsSm9iT2ZmZXIuam9iUG9zaXRvbikpKS5yZXBsYWNlKC97XCRKT0JERVBBUlRNRU5UfS9nLAptKGQyY21lZGlhLmNhcGl0YWxpc2VGaXJzdExldHRlck9mRXZlcnlXb3JkKG1haWxKb2JPZmZlci5qb2JEZXBhcnRtZW50KSkpLnJlcGxhY2UoL3tcJEpPQk1TR30vZyxtKG1haWxKb2JPZmZlci5qb2JNZXNzYWdlKSkpO2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgbWFpbFVzZXJBZGRyZXNzKXttYWlsVXNlckFkZHJlc3MuYXNzaWduVmFsdWVzKCk7dmFyIHE9dHJpbShtYWlsVXNlckFkZHJlc3MuYWRkcmVzc0FwcCsiICIrbWFpbFVzZXJBZGRyZXNzLmFkZHJlc3NOdW1iZXIrIiAiK21haWxVc2VyQWRkcmVzcy5hZGRyZXNzU3RyZWV0KTthPWEucmVwbGFjZSgve1wkQ1VSUkVOVEFERFJFU1N9L2csbShxKSkucmVwbGFjZSgve1wkQ1VSUkVOVENJVFl9L2csbShtYWlsVXNlckFkZHJlc3MuY2l0eSkpLnJlcGxhY2UoL3tcJENVUlJFTlRQUk9WSU5DRX0vZyxtKG1haWxVc2VyQWRkcmVzcy5wcm92aW5jZSkpLnJlcGxhY2UoL3tcJENVUlJFTlRQT1NUQUxDT0RFfS9nLG0obWFpbFVzZXJBZGRyZXNzLnBvc3RhbENvZGUpKX0idW5kZWZpbmVkIiE9CnR5cGVvZiBtYWlsU2NoZWR1bGUmJihtYWlsU2NoZWR1bGUuYXNzaWduVmFsdWVzKCksYT1hLnJlcGxhY2UoL3tcJERBVEUxfS9nLG1haWxTY2hlZHVsZS5maXJzdENob2ljZSkucmVwbGFjZSgve1wkREFURTJ9L2csbWFpbFNjaGVkdWxlLnNlY29uZENob2ljZSkucmVwbGFjZSgve1wkV0FJVElOR09OU0lURX0vZyxtYWlsU2NoZWR1bGUud2FpdGluZ09uU2l0ZSkucmVwbGFjZSgve1wkVFJBTlNQT1JUT1BUSU9OfS9nLG1haWxTY2hlZHVsZS5nZXRUcmFuc3BvcnRPcHRpb25UZXh0KCkpLGVtYWlsSGFuZGxlci5zZXJ2aWNlRGF0ZTE9bWFpbFNjaGVkdWxlLmZpcnN0Q2hvaWNlLGVtYWlsSGFuZGxlci5zZXJ2aWNlRGF0ZTI9bWFpbFNjaGVkdWxlLnNlY29uZENob2ljZSxlbWFpbEhhbmRsZXIud2FpdGluZ09uU2l0ZT1tYWlsU2NoZWR1bGUud2FpdGluZ09uU2l0ZSxlbWFpbEhhbmRsZXIudHJhbnNwb3J0T3B0aW9uPW1haWxTY2hlZHVsZS50cmFuc3BvcnRPcHRpb24pO3ZhciB0PXE9IiIsCnU9IiI7InVuZGVmaW5lZCIhPXR5cGVvZiAkKCIjZmluYW5jZU9wdGlvbkRpdiIpLmF0dHIoImlkIikmJigiY2hlY2tlZCI9PSQoIiNmaW5hbmNlT3B0aW9uRGl2IGlucHV0IikuYXR0cigiY2hlY2tlZCIpP3E9JCgiI3RleHRDYXNoIikudmFsKCk6KHE9ImNoZWNrZWQiPT0kKCIjZmluYW5jZU9wdGlvbkRpdjIgaW5wdXQiKS5hdHRyKCJjaGVja2VkIik\/JCgiI3RleHRGaW5hbmNlIikudmFsKCk6JCgiI3RleHRMZWFzZSIpLnZhbCgpLHU9JCgiI2ZpbmFuY2VUZXJtU2VsZWN0IikudmFsKCkpLCJ1bmRlZmluZWQiIT10eXBlb2YgJCgiI3ZlaGljbGVPZmZlciIpLmF0dHIoImlkIikmJih0PSIkIitjKCQoIiN2ZWhpY2xlT2ZmZXIiKS52YWwoKSkpLGE9YS5yZXBsYWNlKC97XCRQQVlNRU5UfS9nLHEpLnJlcGxhY2UoL3tcJFBBWU1FTlRURVJNfS9nLHUpLnJlcGxhY2UoL3tcJE9GRkVSfS9nLHQpKTsidW5kZWZpbmVkIiE9dHlwZW9mICQoIiNxdWVzdGlvbnNDb21tZW50cyIpLmF0dHIoImlkIikmJgooZT1tKCQoIiNxdWVzdGlvbnNDb21tZW50cyIpLnZhbCgpKSxhPWEucmVwbGFjZSgve1wkUVVFU1RJT05TfS9nLGUpLGVtYWlsSGFuZGxlci5jb21tZW50cz1lKTsidW5kZWZpbmVkIiE9dHlwZW9mICQoIiNyZXF1ZXN0VHlwZSIpLmF0dHIoImlkIikmJihhPWEucmVwbGFjZSgve1wkREVNQU5ERX0vZywkKCIjcmVxdWVzdFR5cGUiKS52YWwoKSkpfSQoIiN0ZXN0RHJpdmVUeXBlIikubGVuZ3RoJiYoYT1hLnJlcGxhY2UoL3tcJFRFU1REUklWRVRZUEV9L2csJCgiI3Rlc3REcml2ZVR5cGUiKS52YWwoKSksYT0iVmlydHVhbCI9PSQoIiN0ZXN0RHJpdmVUeXBlIikudmFsKCl8fCJWaXJ0dWVsIj09JCgiI3Rlc3REcml2ZVR5cGUiKS52YWwoKT9hLnJlcGxhY2UoL3tcJFRFU1REUklWRVZJUlRVQUx9L2csJCgiI3ByZWZlcmVkVmlydHVhbFRvb2wiKS52YWwoKSk6YS5yZXBsYWNlKC97XCRURVNURFJJVkVWSVJUVUFMfS9nLCJOL0EiKSk7JChnKS5maW5kKCIjc2VydmljZUVtYWlsc1NlbGVjdCIpLmxlbmd0aD8KZW1haWxIYW5kbGVyLmRlYWxlck5hbWU9JChnKS5maW5kKCIjc2VydmljZUVtYWlsc1NlbGVjdCIpLmZpbmQoIjpzZWxlY3RlZCIpLmh0bWwoKToiMSI9PSQoIiNpc01vYmlsZSIpLnZhbCgpJiYkKCIjc2VydmljZUVtYWlsc1NlbGVjdCIpLmxlbmd0aCYmKGVtYWlsSGFuZGxlci5kZWFsZXJOYW1lPSQoIiNzZXJ2aWNlRW1haWxzU2VsZWN0IikuZmluZCgiOnNlbGVjdGVkIikuaHRtbCgpKTtlbWFpbEhhbmRsZXIuZGVhbGVyTmFtZSYmKGE9YS5yZXBsYWNlKCJ7JERFQUxFUk5BTUV9IixlbWFpbEhhbmRsZXIuZGVhbGVyTmFtZSkpO2E9YS5yZXBsYWNlKC97XCQoREFURVsxMl0pfS9nLGZ1bmN0aW9uKGgscCl7aD0kKCdpbnB1dFtuYW1lPSInK3AudG9Mb3dlckNhc2UoKSsnIl0nLGcpO3JldHVybiAwPGgubGVuZ3RoPyhuZXcgRGF0ZShoLnZhbCgpKSkuZGF0ZUZvcm1hdCgiWS1tLWQgSDppIik6IiJ9KTtjPSIiOzA8JCgiI2xhc3R2aWV3ZWRtYWtlIikudmFsKCkubGVuZ3RoJiYoYz0kKCIjbGFzdHZpZXdlZG1ha2UiKS52YWwoKSsKIiAiKyQoIiNsYXN0dmlld2VkbW9kZWwiKS52YWwoKSsiICIrJCgiI2xhc3R2aWV3ZWR5ZWFyIikudmFsKCkrIiAiKyQoIiNsYXN0dmlld2Vkc3RvY2tudW1iZXIiKS52YWwoKSk7YT1hLnJlcGxhY2UoInskTEFTVFZFSElDTEVWSUVXRUR9IixjKTthPWEucmVwbGFjZShSZWdFeHAoIntcXCQoUVVFU1RJT05TfE1FU1NBR0V8UkFUSU5HTUVTU0FHRXxFTUFJTFBIT05FfEVNQUlMTUFLRXxFTUFJTE1PREVMfEVNQUlMWUVBUnxQQVlNRU5UfFBBWU1FTlRURVJNfE9GRkVSfFNUT0NLTlVNQkVSfENPTE9SfEZOQU1FfExOQU1FfEVNQUlMfEtNfFZJTkVYfFNFTEVDVEVEU0VSVklDRVN8RU1BSUxDSVRZfFBMQVRFU3xEQVRFMXxEQVRFMnxUUkFOU1BPUlRPUFRJT04pfSIsImciKSwiIik7YT1hLnJlcGxhY2UoL3tcJEVNQUlMQlVJTERBTkRQUklDRX0vZyxiLmJhbmRwTGluaygpKTsiIj09ZCYmInVuZGVmaW5lZCIhPXR5cGVvZiAkKCIjZXhwcmVzc1NlbmRUb0VtYWlsIikuYXR0cigiaWQiKSYmCihkPWwmJiJ1bmRlZmluZWQiIT10eXBlb2YgJCgiI2V4cHJlc3NTZW5kVG9FbWFpbE5FVyIpLmF0dHIoImlkIikmJjA8JCgiI2V4cHJlc3NTZW5kVG9FbWFpbE5FVyIpLnZhbCgpLmxlbmd0aD8kKCIjZXhwcmVzc1NlbmRUb0VtYWlsTkVXIikudmFsKCk6JCgiI2V4cHJlc3NTZW5kVG9FbWFpbCIpLnZhbCgpKTtpZigiIj09ZiYmInVuZGVmaW5lZCIhPXR5cGVvZiAkKCIjZXhwcmVzc1NlbmRUb0VtYWlsQURGIikuYXR0cigiaWQiKSlpZihsJiYidW5kZWZpbmVkIiE9dHlwZW9mICQoIiNleHByZXNzU2VuZFRvRW1haWxBREZORVciKS5hdHRyKCJpZCIpJiYwPCQoIiNleHByZXNzU2VuZFRvRW1haWxBREZORVciKS52YWwoKS5sZW5ndGgpZj0kKCIjZXhwcmVzc1NlbmRUb0VtYWlsQURGTkVXIikudmFsKCk7ZWxzZSBpZigic2VydmljZSI9PWVtYWlsSGFuZGxlci5kZXBhcnRtZW50LnRvTG93ZXJDYXNlKCl8fGImJigibWVudVNlcnZpY2UiPT1iLm1haWxJRHx8ImhlYWRlclNlcnZpY2UiPT0KYi5tYWlsSUQpKWY9JCgiI2V4cHJlc3NTZW5kVG9FbWFpbEFERlNFUlZJQ0UiKS52YWwoKTsiIj09ZCYmJCgiI2V4cHJlc3NJbkRlbW8iKS5sZW5ndGgmJiIxIj09JCgiI2V4cHJlc3NJbkRlbW8iKS52YWwoKSYmKGVtYWlsSGFuZGxlci5jb25kaXRpb249Ik5ldyIsMDwkKCIjZXhwcmVzc1NlbmRUb0VtYWlsTkVXIikudmFsKCkubGVuZ3RoJiYoZD0kKCIjZXhwcmVzc1NlbmRUb0VtYWlsTkVXIikudmFsKCkpKTsiUXVpY2tFbWFpbCI9PWIubWFpbElEJiYidW5kZWZpbmVkIiE9PXR5cGVvZiBlJiYwPGUubGVuZ3RoJiYwPCQoIiNzZXJ2aWNlRW1haWwiKS5sZW5ndGgmJjA8JCgiI3NlcnZpY2VBZGZFbWFpbCIpLmxlbmd0aCYmKHRlcm1zPSJyYXBwZWw7c2VydmljZTtodWlsZTtwaWVjZXM7cGnvv71jZXM7cG5ldXM7dHJhbnNtaXNzaW9uO2FjY2Vzc29pcmVzO2FsdGVybmF0ZXVyO2FudGlyb3VpbGxlO2FudGktcm91aWxsZTtiYXR0ZXJpZTtiYXRlcmllO3Lvv71wYXJhdGlvbjtwZWludHVyZTtmcmVpbnM7ZGlzcXVlcztjYXJyb3NzZXJpZTtjYXRhbHlzZXVyO2Nob2M7ZGVtYXJyZXVyO++\/vWNoYXBwZW1lbnQ7bW90ZXVyO2Vzc3VpZS1nbGFjZTtlc3N1aS1nbGFjZTsgZmV1eDtjbGlnbm90YW50O2tsYXhvbjtmaWx0cmU7aG9ybG9nZTtyYWRpbzt0b2l0LW91dnJhbnQ7IG1hZzsgbWFncztt77+9Y2FuaXF1ZTttdWZmbGVyO25hdmlnYXRpb247b3JkaW5hdGV1cjsgcGhhcmVzO2x1bWnvv71yZXM7bHVtaWVyZTtwcm9ibO+\/vW1lO3Byb2JsZW1lO3JlY2FsbDtwYXJ0czt0aXJlO2FjY2Vzc29yaWVzO2FsdGVybmF0b3I7cnVzdHByb29maW5nO2JhdHRlcnk7cmVwYWlyO3BhaW50O2JyYWtlO2Rpc2tzOyBib2R5O3N0YXJ0ZXI7ZXhoYXVzdDtlbmdpbmU7d2lwZXI7d2lwZXJzOyBmbGFzaDsgbGlnaHQ7Zmxhc2hlcjtmbGFzaGVyczsgaG9ybjtmaWx0ZXI7Y2xvY2s7cm9vZjttZWNhbmljO2NvbXB1dGVyO2VjdTtwcm9ibGVtIi5zcGxpdCgiOyIpLAptYXRjaGVkVGVybXM9W10sJC5lYWNoKHRlcm1zLGZ1bmN0aW9uKGgscCl7aWYoLTE8ZS5pbmRleE9mKHApKXJldHVybiBkPSQoIiNzZXJ2aWNlRW1haWwiKS52YWwoKSxmPSQoIiNzZXJ2aWNlQWRmRW1haWwiKS52YWwoKSwhMX0pKTtlbWFpbEhhbmRsZXIuc3ViamVjdD1rO2VtYWlsSGFuZGxlci5ib2R5PWE7ZW1haWxIYW5kbGVyLnNlbmRUbz1kO2VtYWlsSGFuZGxlci5zZW5kRnJvbT0iIjtlbWFpbEhhbmRsZXIubWFpbElEPWIubWFpbElEO2VtYWlsSGFuZGxlci5jYWxsYmFjaz1iLmVtYWlsU2VudDsidW5kZWZpbmVkIiE9dHlwZW9mIG1haWxVc2VySW5mbyYmIm1lbnVDb250YWN0VXMiIT1lbWFpbEhhbmRsZXIubWFpbElEJiYibWVudVNlcnZpY2UiIT1lbWFpbEhhbmRsZXIubWFpbElEJiYoZW1haWxIYW5kbGVyLnVzZXJFbWFpbD1tYWlsVXNlckluZm8uZW1haWwsZW1haWxIYW5kbGVyLnVzZXJGaXJzdE5hbWU9bWFpbFVzZXJJbmZvLmZpcnN0TmFtZSxlbWFpbEhhbmRsZXIudXNlckxhc3ROYW1lPQptYWlsVXNlckluZm8ubGFzdE5hbWUsZW1haWxIYW5kbGVyLnVzZXJQaG9uZT1tYWlsVXNlckluZm8ucGhvbmUpOyJ1bmRlZmluZWQiIT10eXBlb2YgbWFpbEpvYk9mZmVyJiYoZW1haWxIYW5kbGVyLnVzZXJBdHRhY2htZW50UGF0aD1tYWlsSm9iT2ZmZXIuam9iRmlsZSk7ZW1haWxIYW5kbGVyLnNlbmRUb0FERkZvcm1hdD1mOy0xIT1lbWFpbEhhbmRsZXIuYm9keS50b0xvd2VyQ2FzZSgpLmluZGV4T2YoInRlc3RAZDJjbWVkaWEuY2EiKSYmJCgiaW5wdXQudGVzdG1vZGUiKS52YWwoIjEiKTskKGcpLmZpbmQoIiNzZXJ2aWNlRW1haWxzU2VsZWN0IikubGVuZ3RoP2VtYWlsSGFuZGxlci5zZW5kVG89JChnKS5maW5kKCIjc2VydmljZUVtYWlsc1NlbGVjdCIpLnZhbCgpOiIxIj09JCgiI2lzTW9iaWxlIikudmFsKCkmJiQoIiNzZXJ2aWNlRW1haWxzU2VsZWN0IikubGVuZ3RoJiYoZW1haWxIYW5kbGVyLnNlbmRUbz0kKCIjc2VydmljZUVtYWlsc1NlbGVjdCIpLnZhbCgpKX07Yi5fdmFsaWRhdGVGaWVsZHM9CmZ1bmN0aW9uKGMpe3ZhciBnPSExLGs9JCgiI01pc3NpbmdWYWxpZGF0aW9uTXNnIikuaHRtbCgpLGE9dGhpcy5qcVNjb3BlO2lmKCIjcXVpY2tFbWFpbEZvcm0iPT1hKXJldHVybiEwOyQudmFsaWRpdHkuc3RhcnQoKTt2YXIgZT0iLklubmVyQm94TGF5ZXIiOzA8JCgiLm1haW5fbGVmdF9ib3giKS5sZW5ndGgmJihlPSIubWFpbl9sZWZ0X2JveCIpO2E9Yi5qcVNjb3BlP2IuanFTY29wZTplOzE+JChhKS5sZW5ndGgmJihhPSIjbmV3ZGV0YWlscyIpOzE+JChhKS5sZW5ndGgmJihhPSIubmV3LWRldGFpbHMiKTsxPiQoYSkubGVuZ3RoJiYoYT0iYm9keSIpOyJ1bmRlZmluZWQiIT09dHlwZW9mIGRlYnVnJiZkZWJ1ZyhjKTtjPSQoYSkuZmluZCgiLnJlcXVpcmVkLC52YWxpZGF0ZSIpOyQoYSkuZmluZCgiaW5wdXQ6bm90KDpoaWRkZW4pLCB0ZXh0YXJlYSIpLm5vbkh0bWwoKTtjLmZpbHRlcigiLnJlcXVpcmVkIikuZWFjaChmdW5jdGlvbigpeyQodGhpcykucmVxdWlyZSgpLm5vbkh0bWwoKX0pOwpjLmZpbHRlcigiLnJlcXVpcmVkLXBob25lIikuZWFjaChmdW5jdGlvbigpeyQodGhpcykucmVxdWlyZSgpLnZhbGlkYXRlUGhvbmUoKX0pO2MuZmlsdGVyKCIucGhvbmU6bm90KC5yZXF1aXJlZC1waG9uZSkiKS5lYWNoKChsLG4pPT57JChuKS52YWxpZGF0ZVBob25lKCl9KTtlPSQoIiNwaG9uZTEsI3Bob25lMiwjcGhvbmUzIixhKS5maWx0ZXIoIjp2aXNpYmxlIik7aWYoMDxlLmxlbmd0aCl7dmFyIGQsZjtsZXQgbCxuOzA8KGVbMF0udmFsdWUrKG51bGwhPShsPW51bGw9PShkPWVbMV0pP3ZvaWQgMDpkLnZhbHVlKT9sOiIiKSsobnVsbCE9KG49bnVsbD09KGY9ZVsyXSk\/dm9pZCAwOmYudmFsdWUpP246IiIpKS5sZW5ndGgmJiQoZSkudmFsaWRhdGVQaG9uZSgpfWMuZmlsdGVyKCIuemlwIikuZWFjaChmdW5jdGlvbigpeygkKHRoaXMpLmlzKCIucmVxdWlyZWQiKXx8MCE9JCh0aGlzKS52YWwoKS5sZW5ndGgpJiYkKHRoaXMpLnJlcXVpcmVQb3N0YWxDb2RlKCl9KTsxPT0kKCIudmluIikubGVuZ3RoJiYKKCQoIi52aW4iKS5pcygiLnJlcXVpcmVkIikmJiQoIi52aW4iKS5yZXF1aXJlKCkubm9uSHRtbCgpLDA8JCgiLnZpbiIpLnZhbCgpLmxlbmd0aCYmJCgiLnZpbiIpLm1pbkxlbmd0aCgxNykpOzE9PSQoIi52aW5FeCIpLmxlbmd0aCYmKCQoIi52aW5FeCIpLmlzKCIucmVxdWlyZWQiKSYmJCgiLnZpbkV4IikucmVxdWlyZSgpLm5vbkh0bWwoKSwwPCQoIi52aW5FeCIpLnZhbCgpLmxlbmd0aCYmJCgiLnZpbkV4IikubWluTGVuZ3RoKDE3KSk7Yy5maWx0ZXIoIi5lbWFpbCIpLmVhY2goZnVuY3Rpb24oKXsoJCh0aGlzKS5pcygiLnJlcXVpcmVkIil8fDAhPSQodGhpcykudmFsKCkubGVuZ3RoKSYmJCh0aGlzKS52YWxpZEVtYWlsQWRkcmVzcygpfSk7JChhKS5maW5kKCIudmFsaWRhdGUtZ3JvdXAiKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIGw9JCh0aGlzKS52YWwoKTskKGwsYSkudmFsaWRBbGxvck5vbmUoKX0pO2MuZmlsdGVyKCIudXBsb2FkIikuZWFjaChmdW5jdGlvbigpeyEkKHRoaXMpLmlzKCIucmVxdWlyZWQiKSYmCjA9PSQodGhpcykudmFsKCkubGVuZ3RofHwiIiE9JCh0aGlzKS52YWwoKXx8KCQoIiN1cGxvYWRTdGF0dXMiKS5jc3MoImNvbG9yIiwicmVkIiksJCgiI3VwbG9hZFN0YXR1cyIpLmh0bWwoJCgiI2ZpbGVVcGxvYWRSZXF1ZXN0IikudmFsKCkpLCQoIiN1cGxvYWRTdGF0dXMiKS5zaG93KCkpfSk7ZD0kLnZhbGlkaXR5LnJlcG9ydC5lcnJvcnM7JCgiI2VtYWlsIikubWF0Y2goImVtYWlsIik7JC52YWxpZGl0eS5yZXBvcnQuZXJyb3JzPmQmJihmPSQoIiNNaXNzaW5nVmFsaWRhdGlvbk1zZyIpLnRleHQoKSsiLjxici8+IiskKCIjZW1haWxFcnJvck1zZyIsIiN1c2VySW5mb0Zvcm0iKS52YWwoKSsiLiIsMD09ZCYmKGY9JCgiI2VtYWlsRXJyb3JNc2ciLCIjdXNlckluZm9Gb3JtIikudmFsKCkpLCQoIiNNaXNzaW5nVmFsaWRhdGlvbk1zZyIpLmh0bWwoZikpOyJ1bmRlZmluZWQiIT10eXBlb2YgbWFpbFVzZXJJbmZvJiYiZnVuY3Rpb24iPT10eXBlb2YgbWFpbFVzZXJJbmZvLmFkZGVkVmFsaWRhdGlvbiYmCm1haWxVc2VySW5mby5hZGRlZFZhbGlkYXRpb24oYSk7JC52YWxpZGl0eS5lbmQoKS52YWxpZD9nPSEwOigkKCIjTWlzc2luZ1ZhbGlkYXRpb25Nc2ciKS5zaG93KCksJCgiI01pc3NpbmdWYWxpZGF0aW9uTXNnIikuY2VudGVyKCksJChkb2N1bWVudCkub25lKCJtb3VzZWRvd24iLGZ1bmN0aW9uKGwpeyQudmFsaWRpdHkuY2xlYXIoKTskKCIjTWlzc2luZ1ZhbGlkYXRpb25Nc2ciKS5oaWRlKCk7JCgiI01pc3NpbmdWYWxpZGF0aW9uTXNnIikuaHRtbChrKX0pKTtyZXR1cm4gZ319O3ZhciBtYWlsUGFnZT1uZXcgR2VuZXJpY01haWw7CiQoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKCl7MDwkKCIjdG9waXNtb2JpbGUiKS5sZW5ndGgmJjE8JCgiI3RvcGlzbW9iaWxlIikudmFsKCkmJihtYWlsUGFnZS5qcVNjb3BlPSIubmV3LWRldGFpbHMiKTskKCIjc2VuZEVtYWlsRm9ybSBidXR0b24iKS5vbigiY2xpY2sgdGFwIixtYWlsUGFnZS5zYXZlKTskKCIjc2VuZEVtYWlsRm9ybVN1Ym1pdCIpLm9uKCJjbGljayB0YXAiLG1haWxQYWdlLnNhdmUpO21haWxQYWdlLm1haWxJRD0kKCIjdGV4dFNhdmVNYWlsSUQiKS52YWwoKTskLnZhbGlkaXR5LnNldHVwKHtvdXRwdXRNb2RlOiJzdW1tYXJ5IixzY3JvbGxUbzohMX0pO2pRdWVyeS5mbi5jZW50ZXI9ZnVuY3Rpb24oKXskKCJpc21vYmlsZSIpJiYwPCQoIiNzZW5kRW1haWxGb3JtU3VibWl0IikubGVuZ3RoP3RoaXMuY3NzKHtwb3NpdGlvbjoiYWJzb2x1dGUiLGxlZnQ6KCQod2luZG93KS53aWR0aCgpLSQoIiNNaXNzaW5nVmFsaWRhdGlvbk1zZyIpLm91dGVyV2lkdGgoKSkvMiwKdG9wOiQoIiNzZW5kRW1haWxGb3JtU3VibWl0IikucG9zaXRpb24oKS50b3AtMTB9KTp0aGlzLmNzcyh7cG9zaXRpb246ImFic29sdXRlIixsZWZ0OigkKHdpbmRvdykud2lkdGgoKS0kKCIjY29udGFpbmVyIikub3V0ZXJXaWR0aCgpKS8yLHRvcDooJCh3aW5kb3cpLmhlaWdodCgpLSQoIiNjb250YWluZXIiKS5vdXRlckhlaWdodCgpKS8yfSk7cmV0dXJuIHRoaXN9OyJ1bmRlZmluZWQiIT10eXBlb2YgbWFpbFBhZ2UubWFpbElEJiZlbWFpbEhhbmRsZXIubG9nRm9ybVJlcXVlc3QoIkZvcm1Mb2FkZWQiLG1haWxQYWdlLm1haWxJRCl9KTsKLyoqIC9qcy9qcXVlcnkucHJldHR5UGhvdG8yLmpzICoqLwp2YXIgX19fZDJjX2pxdWVyeXByZXR0eVBob3RvMmpzX2Nfb249IjIwMjUtMDUtMjMgMTc6MTE6NDMiOyd1c2Ugc3RyaWN0Jzt2YXIgX19fZDJjX2pxdWVyeXByZXR0eVBob3RvMmpzX2Nfb249IjIwMjQtMDMtMjUgMTI6MzM6MzMiOyJ1c2Ugc3RyaWN0IjsKKGZ1bmN0aW9uKGEpe2Z1bmN0aW9uIHkoKXt2YXIgZT1sb2NhdGlvbi5ocmVmO3JldHVybiBoYXNodGFnPS0xIT09ZS5pbmRleE9mKCIjcHJldHR5UGhvdG8iKT9kZWNvZGVVUkkoZS5zdWJzdHJpbmcoZS5pbmRleE9mKCIjcHJldHR5UGhvdG8iKSsxLGUubGVuZ3RoKSk6ITF9ZnVuY3Rpb24gbChlLHApe2U9ZS5yZXBsYWNlKC9bXFtdLywiXFxbIikucmVwbGFjZSgvW1xdXS8sIlxcXSIpO2U9KG5ldyBSZWdFeHAoIltcXD8mXSIrZSsiPShbXiYjXSopIikpLmV4ZWMocCk7cmV0dXJuIG51bGw9PWU\/IiI6ZVsxXX1hLnByZXR0eVBob3RvPXt2ZXJzaW9uOiIzLjEuNSJ9O2EuZm4ucHJldHR5UGhvdG89ZnVuY3Rpb24oZSl7ZnVuY3Rpb24gcCgpe2EoIi5wcF9sb2FkZXJJY29uIikuaGlkZSgpO3Byb2plY3RlZFRvcD1zY3JvbGxfcG9zLnNjcm9sbFRvcCsoay8yLWQuY29udGFpbmVySGVpZ2h0LzIpOzA+cHJvamVjdGVkVG9wJiYocHJvamVjdGVkVG9wPTApOyRwcHQuZmFkZVRvKGIuYW5pbWF0aW9uX3NwZWVkLAoxKTskcHBfcGljX2hvbGRlci5maW5kKCIucHBfY29udGVudCIpLmFuaW1hdGUoe2hlaWdodDpkLmNvbnRlbnRIZWlnaHQsd2lkdGg6ZC5jb250ZW50V2lkdGh9LGIuYW5pbWF0aW9uX3NwZWVkKTskcHBfcGljX2hvbGRlci5hbmltYXRlKHt0b3A6cHJvamVjdGVkVG9wLGxlZnQ6MD5oLzItZC5jb250YWluZXJXaWR0aC8yPzA6aC8yLWQuY29udGFpbmVyV2lkdGgvMix3aWR0aDpkLmNvbnRhaW5lcldpZHRofSxiLmFuaW1hdGlvbl9zcGVlZCxmdW5jdGlvbigpeyRwcF9waWNfaG9sZGVyLmZpbmQoIi5wcF9ob3ZlckNvbnRhaW5lciwjZnVsbFJlc0ltYWdlIikuaGVpZ2h0KGQuaGVpZ2h0KS53aWR0aChkLndpZHRoKTskcHBfcGljX2hvbGRlci5maW5kKCIucHBfZmFkZSIpLmZhZGVJbihiLmFuaW1hdGlvbl9zcGVlZCk7aXNTZXQmJiJpbWFnZSI9PXQocHBfaW1hZ2VzW3NldF9wb3NpdGlvbl0pPyRwcF9waWNfaG9sZGVyLmZpbmQoIi5wcF9ob3ZlckNvbnRhaW5lciIpLnNob3coKTokcHBfcGljX2hvbGRlci5maW5kKCIucHBfaG92ZXJDb250YWluZXIiKS5oaWRlKCk7CmIuYWxsb3dfZXhwYW5kJiYoZC5yZXNpemVkP2EoImEucHBfZXhwYW5kLGEucHBfY29udHJhY3QiKS5zaG93KCk6YSgiYS5wcF9leHBhbmQiKS5oaWRlKCkpOyFiLmF1dG9wbGF5X3NsaWRlc2hvd3x8cXx8dXx8YS5wcmV0dHlQaG90by5zdGFydFNsaWRlc2hvdygpO2IuY2hhbmdlcGljdHVyZWNhbGxiYWNrKCk7dT0hMH0pO2lzU2V0JiZiLm92ZXJsYXlfZ2FsbGVyeSYmImltYWdlIj09dChwcF9pbWFnZXNbc2V0X3Bvc2l0aW9uXSk\/KGl0ZW1XaWR0aD01NyxuYXZXaWR0aD0iZmFjZWJvb2siPT1iLnRoZW1lfHwicHBfZGVmYXVsdCI9PWIudGhlbWU\/NTA6MzAsaXRlbXNQZXJQYWdlPU1hdGguZmxvb3IoKGQuY29udGFpbmVyV2lkdGgtMTAwLW5hdldpZHRoKS9pdGVtV2lkdGgpLGl0ZW1zUGVyUGFnZT1pdGVtc1BlclBhZ2U8cHBfaW1hZ2VzLmxlbmd0aD9pdGVtc1BlclBhZ2U6cHBfaW1hZ2VzLmxlbmd0aCx0b3RhbFBhZ2U9TWF0aC5jZWlsKHBwX2ltYWdlcy5sZW5ndGgvaXRlbXNQZXJQYWdlKS0KMSwwPT10b3RhbFBhZ2U\/KG5hdldpZHRoPTAsJHBwX2dhbGxlcnkuZmluZCgiLnBwX2Fycm93X25leHQsLnBwX2Fycm93X3ByZXZpb3VzIikuaGlkZSgpKTokcHBfZ2FsbGVyeS5maW5kKCIucHBfYXJyb3dfbmV4dCwucHBfYXJyb3dfcHJldmlvdXMiKS5zaG93KCksZ2FsbGVyeVdpZHRoPWl0ZW1zUGVyUGFnZSppdGVtV2lkdGgsZnVsbEdhbGxlcnlXaWR0aD1wcF9pbWFnZXMubGVuZ3RoKml0ZW1XaWR0aCwkcHBfZ2FsbGVyeS5jc3MoIm1hcmdpbi1sZWZ0IiwtKGdhbGxlcnlXaWR0aC8yK25hdldpZHRoLzIpKS5maW5kKCJkaXY6Zmlyc3QiKS53aWR0aChnYWxsZXJ5V2lkdGgrNSkuZmluZCgidWwiKS53aWR0aChmdWxsR2FsbGVyeVdpZHRoKS5maW5kKCJsaS5zZWxlY3RlZCIpLnJlbW92ZUNsYXNzKCJzZWxlY3RlZCIpLGdvVG9QYWdlPU1hdGguZmxvb3Ioc2V0X3Bvc2l0aW9uL2l0ZW1zUGVyUGFnZSk8dG90YWxQYWdlP01hdGguZmxvb3Ioc2V0X3Bvc2l0aW9uL2l0ZW1zUGVyUGFnZSk6CnRvdGFsUGFnZSxhLnByZXR0eVBob3RvLmNoYW5nZUdhbGxlcnlQYWdlKGdvVG9QYWdlKSwkcHBfZ2FsbGVyeV9saS5maWx0ZXIoIjplcSgiK3NldF9wb3NpdGlvbisiKSIpLmFkZENsYXNzKCJzZWxlY3RlZCIpKTokcHBfcGljX2hvbGRlci5maW5kKCIucHBfY29udGVudCIpLm9mZigibW91c2VlbnRlciBtb3VzZWxlYXZlIik7ZS5hamF4Y2FsbGJhY2soKX1mdW5jdGlvbiB6KGMpeyRwcF9waWNfaG9sZGVyLmZpbmQoIiNwcF9mdWxsX3JlcyBvYmplY3QsI3BwX2Z1bGxfcmVzIGVtYmVkIikuY3NzKCJ2aXNpYmlsaXR5IiwiaGlkZGVuIik7JHBwX3BpY19ob2xkZXIuZmluZCgiLnBwX2ZhZGUiKS5mYWRlT3V0KGIuYW5pbWF0aW9uX3NwZWVkLGZ1bmN0aW9uKCl7YSgiLnBwX2xvYWRlckljb24iKS5zaG93KCk7YygpfSl9ZnVuY3Rpb24gRyhjKXsxPGM\/YSgiLnBwX25hdiIpLnNob3coKTphKCIucHBfbmF2IikuaGlkZSgpfWZ1bmN0aW9uIGcoYyxmKXtyZXNpemVkPSExO0EoYyxmKTtpbWFnZVdpZHRoPQpjO2ltYWdlSGVpZ2h0PWY7aWYoKG0+aHx8bj5rKSYmZG9yZXNpemUmJmIuYWxsb3dfcmVzaXplJiYhcil7cmVzaXplZD0hMDtmb3IoZml0dGluZz0hMTshZml0dGluZzspbT5oPyhpbWFnZVdpZHRoPWgtNTAsaW1hZ2VIZWlnaHQ9Zi9jKmltYWdlV2lkdGgpOm4+az8oaW1hZ2VIZWlnaHQ9ay01MCxpbWFnZVdpZHRoPWMvZippbWFnZUhlaWdodCk6Zml0dGluZz0hMCxuPWltYWdlSGVpZ2h0LG09aW1hZ2VXaWR0aDsobT5ofHxuPmspJiZnKG0sbik7QShpbWFnZVdpZHRoLGltYWdlSGVpZ2h0KX1yZXR1cm57d2lkdGg6TWF0aC5mbG9vcihpbWFnZVdpZHRoKSxoZWlnaHQ6TWF0aC5mbG9vcihpbWFnZUhlaWdodCksY29udGFpbmVySGVpZ2h0Ok1hdGguZmxvb3IobiksY29udGFpbmVyV2lkdGg6TWF0aC5mbG9vcihtKSsyKmIuaG9yaXpvbnRhbF9wYWRkaW5nLGNvbnRlbnRIZWlnaHQ6TWF0aC5mbG9vcih2KSxjb250ZW50V2lkdGg6TWF0aC5mbG9vcihCKSxyZXNpemVkfX1mdW5jdGlvbiBBKGMsCmYpe2M9cGFyc2VGbG9hdChjKTtmPXBhcnNlRmxvYXQoZik7JHBwX2RldGFpbHM9JHBwX3BpY19ob2xkZXIuZmluZCgiLnBwX2RldGFpbHMiKTskcHBfZGV0YWlscy53aWR0aChjKTtkZXRhaWxzSGVpZ2h0PXBhcnNlRmxvYXQoJHBwX2RldGFpbHMuY3NzKCJtYXJnaW5Ub3AiKSkrcGFyc2VGbG9hdCgkcHBfZGV0YWlscy5jc3MoIm1hcmdpbkJvdHRvbSIpKTskcHBfZGV0YWlscz0kcHBfZGV0YWlscy5jbG9uZSgpLmFkZENsYXNzKGIudGhlbWUpLndpZHRoKGMpLmFwcGVuZFRvKGEoImJvZHkiKSkuY3NzKHtwb3NpdGlvbjoiYWJzb2x1dGUiLHRvcDotMUU0fSk7ZGV0YWlsc0hlaWdodCs9JHBwX2RldGFpbHMuaGVpZ2h0KCk7ZGV0YWlsc0hlaWdodD0zND49ZGV0YWlsc0hlaWdodD8zNjpkZXRhaWxzSGVpZ2h0OyRwcF9kZXRhaWxzLnJlbW92ZSgpOyRwcF90aXRsZT0kcHBfcGljX2hvbGRlci5maW5kKCIucHB0Iik7JHBwX3RpdGxlLndpZHRoKGMpO3RpdGxlSGVpZ2h0PXBhcnNlRmxvYXQoJHBwX3RpdGxlLmNzcygibWFyZ2luVG9wIikpKwpwYXJzZUZsb2F0KCRwcF90aXRsZS5jc3MoIm1hcmdpbkJvdHRvbSIpKTskcHBfdGl0bGU9JHBwX3RpdGxlLmNsb25lKCkuYXBwZW5kVG8oYSgiYm9keSIpKS5jc3Moe3Bvc2l0aW9uOiJhYnNvbHV0ZSIsdG9wOi0xRTR9KTt0aXRsZUhlaWdodCs9JHBwX3RpdGxlLmhlaWdodCgpOyRwcF90aXRsZS5yZW1vdmUoKTt2PWYrZGV0YWlsc0hlaWdodDtCPWM7bj12K3RpdGxlSGVpZ2h0KyRwcF9waWNfaG9sZGVyLmZpbmQoIi5wcF90b3AiKS5oZWlnaHQoKSskcHBfcGljX2hvbGRlci5maW5kKCIucHBfYm90dG9tIikuaGVpZ2h0KCk7bT1jfWZ1bmN0aW9uIHQoYyl7cmV0dXJuIGMubWF0Y2goL3lvdXR1YmVcLmNvbVwvd2F0Y2gvaSl8fGMubWF0Y2goL3lvdXR1XC5iZS9pKT8ieW91dHViZSI6Yy5tYXRjaCgvdmltZW9cLmNvbS9pKT8idmltZW8iOmMubWF0Y2goL1wubXA0L2kpPyJtcDQiOmMubWF0Y2goL2F2dTNkL2kpPyJhdnUzZCI6Yy5tYXRjaCgvXGIubW92XGIvaSk\/InF1aWNrdGltZSI6CmMubWF0Y2goL1xiLnN3ZlxiL2kpPyJmbGFzaCI6Yy5tYXRjaCgvXGJpZnJhbWU9dHJ1ZVxiL2kpPyJpZnJhbWUiOmMubWF0Y2goL1xiYWpheD10cnVlXGIvaSk\/ImFqYXgiOmMubWF0Y2goL1xiY3VzdG9tPXRydWVcYi9pKT8iY3VzdG9tIjoiIyI9PWMuc3Vic3RyKDAsMSk\/ImlubGluZSI6ImltYWdlIn1mdW5jdGlvbiB3KCl7ZG9yZXNpemUmJiJ1bmRlZmluZWQiIT10eXBlb2YgJHBwX3BpY19ob2xkZXImJihzY3JvbGxfcG9zPUMoKSxjb250ZW50SGVpZ2h0PSRwcF9waWNfaG9sZGVyLmhlaWdodCgpLGNvbnRlbnR3aWR0aD0kcHBfcGljX2hvbGRlci53aWR0aCgpLHByb2plY3RlZFRvcD1rLzIrc2Nyb2xsX3Bvcy5zY3JvbGxUb3AtY29udGVudEhlaWdodC8yLDA+cHJvamVjdGVkVG9wJiYocHJvamVjdGVkVG9wPTApLGNvbnRlbnRIZWlnaHQ+a3x8JHBwX3BpY19ob2xkZXIuY3NzKHt0b3A6cHJvamVjdGVkVG9wLGxlZnQ6aC8yK3Njcm9sbF9wb3Muc2Nyb2xsTGVmdC1jb250ZW50d2lkdGgvCjJ9KSl9ZnVuY3Rpb24gQygpe2lmKHNlbGYucGFnZVlPZmZzZXQpcmV0dXJue3Njcm9sbFRvcDpzZWxmLnBhZ2VZT2Zmc2V0LHNjcm9sbExlZnQ6c2VsZi5wYWdlWE9mZnNldH07aWYoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50JiZkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsVG9wKXJldHVybntzY3JvbGxUb3A6ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcCxzY3JvbGxMZWZ0OmRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxMZWZ0fTtpZihkb2N1bWVudC5ib2R5KXJldHVybntzY3JvbGxUb3A6ZG9jdW1lbnQuYm9keS5zY3JvbGxUb3Asc2Nyb2xsTGVmdDpkb2N1bWVudC5ib2R5LnNjcm9sbExlZnR9fWZ1bmN0aW9uIEQoYyl7Yi5zb2NpYWxfdG9vbHMmJihmYWNlYm9va19saWtlX2xpbms9Yi5zb2NpYWxfdG9vbHMucmVwbGFjZSgie2xvY2F0aW9uX2hyZWZ9IixlbmNvZGVVUklDb21wb25lbnQobG9jYXRpb24uaHJlZikpKTtiLm1hcmt1cD1iLm1hcmt1cC5yZXBsYWNlKCJ7cHBfc29jaWFsfSIsCiIiKTthKCJib2R5IikuYXBwZW5kKGIubWFya3VwKTskcHBfcGljX2hvbGRlcj1hKCIucHBfcGljX2hvbGRlciIpOyRwcHQ9YSgiLnBwdCIpOyRwcF9vdmVybGF5PWEoImRpdi5wcF9vdmVybGF5Iik7aWYoaXNTZXQmJmIub3ZlcmxheV9nYWxsZXJ5KXtjdXJyZW50R2FsbGVyeVBhZ2U9MDt0b0luamVjdD0iIjtmb3IoYz0wO2M8cHBfaW1hZ2VzLmxlbmd0aDtjKyspcHBfaW1hZ2VzW2NdLm1hdGNoKC9cYihqcGd8anBlZ3xwbmd8Z2lmKVxiL2dpKT8oY2xhc3NuYW1lPSIiLGltZ19zcmM9cHBfaW1hZ2VzW2NdKTooY2xhc3NuYW1lPSJkZWZhdWx0IixpbWdfc3JjPSIiKSx0b0luamVjdCs9IjxsaSBjbGFzcz0nIitjbGFzc25hbWUrIic+PGEgaHJlZj0nIyc+PGltZyBzcmM9JyIraW1nX3NyYysiJyB3aWR0aD0nNTAnIGFsdD0nJyAvPjwvYT48L2xpPiI7dG9JbmplY3Q9Yi5nYWxsZXJ5X21hcmt1cC5yZXBsYWNlKC97Z2FsbGVyeX0vZyx0b0luamVjdCk7JHBwX3BpY19ob2xkZXIuZmluZCgiI3BwX2Z1bGxfcmVzIikuYWZ0ZXIodG9JbmplY3QpOwokcHBfZ2FsbGVyeT1hKCIucHBfcGljX2hvbGRlciAucHBfZ2FsbGVyeSIpOyRwcF9nYWxsZXJ5X2xpPSRwcF9nYWxsZXJ5LmZpbmQoImxpIik7JHBwX2dhbGxlcnkuZmluZCgiLnBwX2Fycm93X25leHQiKS5vbigiY2xpY2siLGZ1bmN0aW9uKCl7YS5wcmV0dHlQaG90by5jaGFuZ2VHYWxsZXJ5UGFnZSgibmV4dCIpO2EucHJldHR5UGhvdG8uc3RvcFNsaWRlc2hvdygpO3JldHVybiExfSk7JHBwX2dhbGxlcnkuZmluZCgiLnBwX2Fycm93X3ByZXZpb3VzIikub24oImNsaWNrIixmdW5jdGlvbigpe2EucHJldHR5UGhvdG8uY2hhbmdlR2FsbGVyeVBhZ2UoInByZXZpb3VzIik7YS5wcmV0dHlQaG90by5zdG9wU2xpZGVzaG93KCk7cmV0dXJuITF9KTskcHBfcGljX2hvbGRlci5maW5kKCIucHBfY29udGVudCIpLm9uKCJob3ZlciIsZnVuY3Rpb24oKXskcHBfcGljX2hvbGRlci5maW5kKCIucHBfZ2FsbGVyeTpub3QoLmRpc2FibGVkKSIpLmZhZGVJbigpfSxmdW5jdGlvbigpeyRwcF9waWNfaG9sZGVyLmZpbmQoIi5wcF9nYWxsZXJ5Om5vdCguZGlzYWJsZWQpIikuZmFkZU91dCgpfSk7Cml0ZW1XaWR0aD01NzskcHBfZ2FsbGVyeV9saS5lYWNoKGZ1bmN0aW9uKGYpe2EodGhpcykuZmluZCgiYSIpLm9uKCJjbGljayIsZnVuY3Rpb24oKXthLnByZXR0eVBob3RvLmNoYW5nZVBhZ2UoZik7YS5wcmV0dHlQaG90by5zdG9wU2xpZGVzaG93KCk7cmV0dXJuITF9KX0pfWIuc2xpZGVzaG93JiYoJHBwX3BpY19ob2xkZXIuZmluZCgiLnBwX25hdiIpLnByZXBlbmQoJzxhIGhyZWY9IiMiIGNsYXNzPSJwcF9wbGF5Ij5QbGF5PC9hPicpLCRwcF9waWNfaG9sZGVyLmZpbmQoIi5wcF9uYXYgLnBwX3BsYXkiKS5vbigiY2xpY2siLGZ1bmN0aW9uKCl7YS5wcmV0dHlQaG90by5zdGFydFNsaWRlc2hvdygpO3JldHVybiExfSkpOyRwcF9waWNfaG9sZGVyLmF0dHIoImNsYXNzIiwicHBfcGljX2hvbGRlciAiK2IudGhlbWUpOyRwcF9vdmVybGF5LmNzcyh7b3BhY2l0eTowLGhlaWdodDphKGRvY3VtZW50KS5oZWlnaHQoKSx3aWR0aDphKHdpbmRvdykud2lkdGgoKX0pLm9uKCJjbGljayIsZnVuY3Rpb24oKXtiLm1vZGFsfHwKYS5wcmV0dHlQaG90by5jbG9zZSgpfSk7YSgiYS5wcF9jbG9zZSIpLm9uKCJjbGljayIsZnVuY3Rpb24oKXthLnByZXR0eVBob3RvLmNsb3NlKCk7cmV0dXJuITF9KTtpZihiLmFsbG93X2V4cGFuZClhKCJhLnBwX2V4cGFuZCIpLm9uKCJjbGljayIsZnVuY3Rpb24oZil7YSh0aGlzKS5oYXNDbGFzcygicHBfZXhwYW5kIik\/KGEodGhpcykucmVtb3ZlQ2xhc3MoInBwX2V4cGFuZCIpLmFkZENsYXNzKCJwcF9jb250cmFjdCIpLGRvcmVzaXplPSExKTooYSh0aGlzKS5yZW1vdmVDbGFzcygicHBfY29udHJhY3QiKS5hZGRDbGFzcygicHBfZXhwYW5kIiksZG9yZXNpemU9ITApO3ooZnVuY3Rpb24oKXthLnByZXR0eVBob3RvLm9wZW4oKX0pO3JldHVybiExfSk7JHBwX3BpY19ob2xkZXIuZmluZCgiLnBwX3ByZXZpb3VzLCAucHBfbmF2IC5wcF9hcnJvd19wcmV2aW91cyIpLm9uKCJjbGljayIsZnVuY3Rpb24oKXthLnByZXR0eVBob3RvLmNoYW5nZVBhZ2UoInByZXZpb3VzIik7YS5wcmV0dHlQaG90by5zdG9wU2xpZGVzaG93KCk7CnJldHVybiExfSk7JHBwX3BpY19ob2xkZXIuZmluZCgiLnBwX25leHQsIC5wcF9uYXYgLnBwX2Fycm93X25leHQiKS5vbigiY2xpY2siLGZ1bmN0aW9uKCl7YS5wcmV0dHlQaG90by5jaGFuZ2VQYWdlKCJuZXh0Iik7YS5wcmV0dHlQaG90by5zdG9wU2xpZGVzaG93KCk7cmV0dXJuITF9KTt3KCl9ZT1qUXVlcnkuZXh0ZW5kKHtob29rOiJyZWwiLGFuaW1hdGlvbl9zcGVlZDoiZmFzdCIsYWpheGNhbGxiYWNrOmZ1bmN0aW9uKCl7fSxzbGlkZXNob3c6NUUzLGF1dG9wbGF5X3NsaWRlc2hvdzohMSxvcGFjaXR5Oi44LHNob3dfdGl0bGU6ITAsYWxsb3dfcmVzaXplOiEwLGFsbG93X2V4cGFuZDohMCxkZWZhdWx0X3dpZHRoOjUwMCxkZWZhdWx0X2hlaWdodDozNDQsY291bnRlcl9zZXBhcmF0b3JfbGFiZWw6Ii8iLHRoZW1lOiJwcF9kZWZhdWx0Iixob3Jpem9udGFsX3BhZGRpbmc6MjAsaGlkZWZsYXNoOiExLHdtb2RlOiJvcGFxdWUiLGF1dG9wbGF5OiEwLG1vZGFsOiExLGRlZXBsaW5raW5nOiEwLApvdmVybGF5X2dhbGxlcnk6ITAsb3ZlcmxheV9nYWxsZXJ5X21heDozMCxrZXlib2FyZF9zaG9ydGN1dHM6ITAsY2hhbmdlcGljdHVyZWNhbGxiYWNrOmZ1bmN0aW9uKCl7fSxjYWxsYmFjazpmdW5jdGlvbigpe30saWU2X2ZhbGxiYWNrOiEwLG1hcmt1cDonPGRpdiBjbGFzcz0icHBfcGljX2hvbGRlciI+ICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InBwdCI+Jm5ic3A7PC9kaXY+ICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InBwX3RvcCI+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcF9sZWZ0Ij48L2Rpdj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InBwX21pZGRsZSI+PC9kaXY+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcF9yaWdodCI+PC9kaXY+ICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PiAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcF9jb250ZW50X2NvbnRhaW5lciI+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcF9sZWZ0Ij4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiMiIGNsYXNzPSJwcF9leHBhbmQiIHRpdGxlPSJFeHBhbmQgdGhlIGltYWdlIj5FeHBhbmQ8L2E+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcF9yaWdodCI+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHBfY29udGVudCI+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InBwX2xvYWRlckljb24iPjwvZGl2PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcF9mYWRlIj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPSJwcF9jbG9zZSIgaHJlZj0iIyI+Q2xvc2U8L2E+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcF9ob3ZlckNvbnRhaW5lciBqcXVlcnlwcDIiPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPSJwcF9uZXh0IiBocmVmPSIjIj5uZXh0PC9hPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPSJwcF9wcmV2aW91cyIgaHJlZj0iIyI+cHJldmlvdXM8L2E+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9InBwX2Z1bGxfcmVzIj48L2Rpdj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InBwX2RldGFpbHMiPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJwcF9kZXNjcmlwdGlvbiI+PC9wPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InBwX3NvY2lhbCI+e3BwX3NvY2lhbH08L2Rpdj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+ICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PiAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcF9ib3R0b20iPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHBfbGVmdCI+PC9kaXY+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcF9taWRkbGUiPjwvZGl2PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHBfcmlnaHQiPjwvZGl2PiAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4gICAgICAgICAgICAgICAgICAgICA8L2Rpdj4gICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcF9vdmVybGF5Ij48L2Rpdj4nLApnYWxsZXJ5X21hcmt1cDonPGRpdiBjbGFzcz0icHBfZ2FsbGVyeSI+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iIyIgY2xhc3M9InBwX2Fycm93X3ByZXZpb3VzIj5QcmV2aW91czwvYT4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWw+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Z2FsbGVyeX0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIjIiBjbGFzcz0icHBfYXJyb3dfbmV4dCI+TmV4dDwvYT4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PicsaW1hZ2VfbWFya3VwOic8aW1nIGlkPSJmdWxsUmVzSW1hZ2UiIHNyYz0ie3BhdGh9IiAvPicsZmxhc2hfbWFya3VwOic8b2JqZWN0IGNsYXNzaWQ9ImNsc2lkOkQyN0NEQjZFLUFFNkQtMTFjZi05NkI4LTQ0NDU1MzU0MDAwMCIgd2lkdGg9Int3aWR0aH0iIGhlaWdodD0ie2hlaWdodH0iPjxwYXJhbSBuYW1lPSJ3bW9kZSIgdmFsdWU9Int3bW9kZX0iIC8+PHBhcmFtIG5hbWU9ImFsbG93ZnVsbHNjcmVlbiIgdmFsdWU9InRydWUiIC8+PHBhcmFtIG5hbWU9ImFsbG93c2NyaXB0YWNjZXNzIiB2YWx1ZT0iYWx3YXlzIiAvPjxwYXJhbSBuYW1lPSJtb3ZpZSIgdmFsdWU9IntwYXRofSIgLz48ZW1iZWQgc3JjPSJ7cGF0aH0iIHR5cGU9ImFwcGxpY2F0aW9uL3gtc2hvY2t3YXZlLWZsYXNoIiBhbGxvd2Z1bGxzY3JlZW49InRydWUiIGFsbG93c2NyaXB0YWNjZXNzPSJhbHdheXMiIHdpZHRoPSJ7d2lkdGh9IiBoZWlnaHQ9IntoZWlnaHR9IiB3bW9kZT0ie3dtb2RlfSI+PC9lbWJlZD48L29iamVjdD4nLApxdWlja3RpbWVfbWFya3VwOic8b2JqZWN0IGNsYXNzaWQ9ImNsc2lkOjAyQkYyNUQ1LThDMTctNEIyMy1CQzgwLUQzNDg4QUJEREM2QiIgY29kZWJhc2U9Imh0dHA6Ly93d3cuYXBwbGUuY29tL3F0YWN0aXZleC9xdHBsdWdpbi5jYWIiIGhlaWdodD0ie2hlaWdodH0iIHdpZHRoPSJ7d2lkdGh9Ij48cGFyYW0gbmFtZT0ic3JjIiB2YWx1ZT0ie3BhdGh9Ij48cGFyYW0gbmFtZT0iYXV0b3BsYXkiIHZhbHVlPSJ7YXV0b3BsYXl9Ij48cGFyYW0gbmFtZT0idHlwZSIgdmFsdWU9InZpZGVvL3F1aWNrdGltZSI+PGVtYmVkIHNyYz0ie3BhdGh9IiBoZWlnaHQ9IntoZWlnaHR9IiB3aWR0aD0ie3dpZHRofSIgYXV0b3BsYXk9InthdXRvcGxheX0iIHR5cGU9InZpZGVvL3F1aWNrdGltZSIgcGx1Z2luc3BhZ2U9Imh0dHA6Ly93d3cuYXBwbGUuY29tL3F1aWNrdGltZS9kb3dubG9hZC8iPjwvZW1iZWQ+PC9vYmplY3Q+JyxpZnJhbWVfbWFya3VwOic8aWZyYW1lIHNyYyA9IntwYXRofSIgd2lkdGg9Int3aWR0aH0iIGhlaWdodD0ie2hlaWdodH0iIGZyYW1lYm9yZGVyPSJubyI+PC9pZnJhbWU+JywKaW5saW5lX21hcmt1cDonPGRpdiBjbGFzcz0icHBfaW5saW5lIj57Y29udGVudH08L2Rpdj4nLG1wNF9tYXJrdXA6Jzx2aWRlbyB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIiIHByZWxvYWQ9ImF1dG8iIGF1dG9wbGF5IGNvbnRyb2xzPSIiIGlkPSJwbGF5ZXIiIHN0eWxlPSJ3aWR0aDogMTAwJTsiPjxzb3VyY2UgdHlwZT0idmlkZW8vbXA0IiBzcmM9IntwYXRofSI+PC9zb3VyY2U+PC92aWRlbz4nLGN1c3RvbV9tYXJrdXA6IiIsc29jaWFsX3Rvb2xzOic8ZGl2IGNsYXNzPSJ0d2l0dGVyIj48YSBocmVmPSJodHRwOi8vdHdpdHRlci5jb20vc2hhcmUiIGNsYXNzPSJ0d2l0dGVyLXNoYXJlLWJ1dHRvbiIgZGF0YS1jb3VudD0ibm9uZSI+VHdlZXQ8L2E+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cDovL3BsYXRmb3JtLnR3aXR0ZXIuY29tL3dpZGdldHMuanMiPlx4M2Mvc2NyaXB0PjwvZGl2PjxkaXYgY2xhc3M9ImZhY2Vib29rIj48aWZyYW1lIHNyYz0iLy93d3cuZmFjZWJvb2suY29tL3BsdWdpbnMvbGlrZS5waHA\/bG9jYWxlPWVuX1VTJmhyZWY9e2xvY2F0aW9uX2hyZWZ9JmFtcDtsYXlvdXQ9YnV0dG9uX2NvdW50JmFtcDtzaG93X2ZhY2VzPXRydWUmYW1wO3dpZHRoPTUwMCZhbXA7YWN0aW9uPWxpa2UmYW1wO2ZvbnQmYW1wO2NvbG9yc2NoZW1lPWxpZ2h0JmFtcDtoZWlnaHQ9MjMiIHNjcm9sbGluZz0ibm8iIGZyYW1lYm9yZGVyPSIwIiBzdHlsZT0iYm9yZGVyOm5vbmU7IG92ZXJmbG93OmhpZGRlbjsgd2lkdGg6NTAwcHg7IGhlaWdodDoyM3B4OyIgYWxsb3dUcmFuc3BhcmVuY3k9InRydWUiPjwvaWZyYW1lPjwvZGl2Pid9LAplKTt2YXIgYj17fSx4PXRoaXMscj0hMSxkLHUsdixCLG4sbSxrPWEod2luZG93KS5oZWlnaHQoKSxoPWEod2luZG93KS53aWR0aCgpLHE7ZG9yZXNpemU9ITA7c2Nyb2xsX3Bvcz1DKCk7YSh3aW5kb3cpLm9mZigicmVzaXplLnByZXR0eXBob3RvIikub24oInJlc2l6ZS5wcmV0dHlwaG90byIsZnVuY3Rpb24oKXt3KCk7az1hKHdpbmRvdykuaGVpZ2h0KCk7aD1hKHdpbmRvdykud2lkdGgoKTsidW5kZWZpbmVkIiE9dHlwZW9mICRwcF9vdmVybGF5JiYkcHBfb3ZlcmxheS5oZWlnaHQoYShkb2N1bWVudCkuaGVpZ2h0KCkpLndpZHRoKGgpfSk7aWYoZS5rZXlib2FyZF9zaG9ydGN1dHMpYShkb2N1bWVudCkub2ZmKCJrZXlkb3duLnByZXR0eXBob3RvIikub24oImtleWRvd24ucHJldHR5cGhvdG8iLGZ1bmN0aW9uKGMpe2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgJHBwX3BpY19ob2xkZXImJiRwcF9waWNfaG9sZGVyLmlzKCI6dmlzaWJsZSIpKXN3aXRjaChjLmtleUNvZGUpe2Nhc2UgMzc6YS5wcmV0dHlQaG90by5jaGFuZ2VQYWdlKCJwcmV2aW91cyIpOwpjLnByZXZlbnREZWZhdWx0KCk7YnJlYWs7Y2FzZSAzOTphLnByZXR0eVBob3RvLmNoYW5nZVBhZ2UoIm5leHQiKTtjLnByZXZlbnREZWZhdWx0KCk7YnJlYWs7Y2FzZSAyNzpiLm1vZGFsfHxhLnByZXR0eVBob3RvLmNsb3NlKCksYy5wcmV2ZW50RGVmYXVsdCgpfX0pO2EucHJldHR5UGhvdG8uaW5pdGlhbGl6ZT1mdW5jdGlvbigpe2I9ZTsicHBfZGVmYXVsdCI9PWIudGhlbWUmJihiLmhvcml6b250YWxfcGFkZGluZz0xNik7dGhlUmVsPWEodGhpcykuYXR0cihiLmhvb2spO2dhbGxlcnlSZWdFeHA9L1xbKD86LiopXF0vO3BwX2ltYWdlcz0oaXNTZXQ9Z2FsbGVyeVJlZ0V4cC5leGVjKHRoZVJlbCk\/ITA6ITEpP2pRdWVyeS5tYXAoeCxmdW5jdGlvbihjLGYpe2lmKC0xIT1hKGMpLmF0dHIoYi5ob29rKS5pbmRleE9mKHRoZVJlbCkpcmV0dXJuIGEoYykuYXR0cigiaHJlZiIpfSk6YS5tYWtlQXJyYXkoYSh0aGlzKS5hdHRyKCJocmVmIikpO3BwX3RpdGxlcz1pc1NldD9qUXVlcnkubWFwKHgsCmZ1bmN0aW9uKGMsZil7aWYoLTEhPWEoYykuYXR0cihiLmhvb2spLmluZGV4T2YodGhlUmVsKSlyZXR1cm4gYShjKS5maW5kKCJpbWciKS5hdHRyKCJhbHQiKT9hKGMpLmZpbmQoImltZyIpLmF0dHIoImFsdCIpOiIifSk6YS5tYWtlQXJyYXkoYSh0aGlzKS5maW5kKCJpbWciKS5hdHRyKCJhbHQiKSk7cHBfZGVzY3JpcHRpb25zPWlzU2V0P2pRdWVyeS5tYXAoeCxmdW5jdGlvbihjLGYpe2lmKC0xIT1hKGMpLmF0dHIoYi5ob29rKS5pbmRleE9mKHRoZVJlbCkpcmV0dXJuIGEoYykuYXR0cigidGl0bGUiKT9hKGMpLmF0dHIoInRpdGxlIik6IiJ9KTphLm1ha2VBcnJheShhKHRoaXMpLmF0dHIoInRpdGxlIikpO3BwX2ltYWdlcy5sZW5ndGg+Yi5vdmVybGF5X2dhbGxlcnlfbWF4JiYoYi5vdmVybGF5X2dhbGxlcnk9ITEpO3NldF9wb3NpdGlvbj1qUXVlcnkuaW5BcnJheShhKHRoaXMpLmF0dHIoImhyZWYiKSxwcF9pbWFnZXMpO3JlbF9pbmRleD1pc1NldD9zZXRfcG9zaXRpb246YSgiYVsiKwpiLmhvb2srIl49JyIrdGhlUmVsKyInXSIpLmluZGV4KGEodGhpcykpO0QodGhpcyk7aWYoYi5hbGxvd19yZXNpemUpYSh3aW5kb3cpLm9uKCJzY3JvbGwucHJldHR5cGhvdG8iLGZ1bmN0aW9uKCl7dygpfSk7YS5wcmV0dHlQaG90by5vcGVuKCk7cmV0dXJuITF9O2EucHJldHR5UGhvdG8ub3Blbj1mdW5jdGlvbihjLGYsRSxGKXsidW5kZWZpbmVkIj09dHlwZW9mIGImJihiPWUscHBfaW1hZ2VzPWEubWFrZUFycmF5KGMpLHBwX3RpdGxlcz1mP2EubWFrZUFycmF5KGYpOmEubWFrZUFycmF5KCIiKSxwcF9kZXNjcmlwdGlvbnM9RT9hLm1ha2VBcnJheShFKTphLm1ha2VBcnJheSgiIiksaXNTZXQ9MTxwcF9pbWFnZXMubGVuZ3RoPyEwOiExLHNldF9wb3NpdGlvbj1GP0Y6MCxEKGMudGFyZ2V0KSk7Yi5oaWRlZmxhc2gmJmEoIm9iamVjdCxlbWJlZCxpZnJhbWVbc3JjKj15b3V0dWJlXSxpZnJhbWVbc3JjKj12aW1lb10iKS5jc3MoInZpc2liaWxpdHkiLCJoaWRkZW4iKTtHKGEocHBfaW1hZ2VzKS5sZW5ndGgpOwphKCIucHBfbG9hZGVySWNvbiIpLnNob3coKTtiLmRlZXBsaW5raW5nJiYidW5kZWZpbmVkIiE9dHlwZW9mIHRoZVJlbCYmKGxvY2F0aW9uLmhhc2g9dGhlUmVsKyIvIityZWxfaW5kZXgrIi8iKTtiLnNvY2lhbF90b29scyYmKGZhY2Vib29rX2xpa2VfbGluaz1iLnNvY2lhbF90b29scy5yZXBsYWNlKCJ7bG9jYXRpb25faHJlZn0iLGVuY29kZVVSSUNvbXBvbmVudChsb2NhdGlvbi5ocmVmKSksJHBwX3BpY19ob2xkZXIuZmluZCgiLnBwX3NvY2lhbCIpLmh0bWwoZmFjZWJvb2tfbGlrZV9saW5rKSk7JHBwdC5pcygiOmhpZGRlbiIpJiYkcHB0LmNzcygib3BhY2l0eSIsMCkuc2hvdygpOyRwcF9vdmVybGF5LnNob3coKS5mYWRlVG8oYi5hbmltYXRpb25fc3BlZWQsYi5vcGFjaXR5KTskcHBfcGljX2hvbGRlci5maW5kKCIuY3VycmVudFRleHRIb2xkZXIiKS50ZXh0KHNldF9wb3NpdGlvbisxK2IuY291bnRlcl9zZXBhcmF0b3JfbGFiZWwrYShwcF9pbWFnZXMpLmxlbmd0aCk7InVuZGVmaW5lZCIhPQp0eXBlb2YgcHBfZGVzY3JpcHRpb25zW3NldF9wb3NpdGlvbl0mJiIiIT1wcF9kZXNjcmlwdGlvbnNbc2V0X3Bvc2l0aW9uXT8kcHBfcGljX2hvbGRlci5maW5kKCIucHBfZGVzY3JpcHRpb24iKS5zaG93KCkuaHRtbCh1bmVzY2FwZShwcF9kZXNjcmlwdGlvbnNbc2V0X3Bvc2l0aW9uXSkpOiRwcF9waWNfaG9sZGVyLmZpbmQoIi5wcF9kZXNjcmlwdGlvbiIpLmhpZGUoKTttb3ZpZV93aWR0aD1wYXJzZUZsb2F0KGwoIndpZHRoIixwcF9pbWFnZXNbc2V0X3Bvc2l0aW9uXSkpP2woIndpZHRoIixwcF9pbWFnZXNbc2V0X3Bvc2l0aW9uXSk6Yi5kZWZhdWx0X3dpZHRoLnRvU3RyaW5nKCk7bW92aWVfaGVpZ2h0PXBhcnNlRmxvYXQobCgiaGVpZ2h0IixwcF9pbWFnZXNbc2V0X3Bvc2l0aW9uXSkpP2woImhlaWdodCIscHBfaW1hZ2VzW3NldF9wb3NpdGlvbl0pOmIuZGVmYXVsdF9oZWlnaHQudG9TdHJpbmcoKTtyPSExOy0xIT1tb3ZpZV9oZWlnaHQuaW5kZXhPZigiJSIpJiYobW92aWVfaGVpZ2h0PQpwYXJzZUZsb2F0KGEod2luZG93KS5oZWlnaHQoKSpwYXJzZUZsb2F0KG1vdmllX2hlaWdodCkvMTAwLTE1MCkscj0hMCk7LTEhPW1vdmllX3dpZHRoLmluZGV4T2YoIiUiKSYmKG1vdmllX3dpZHRoPXBhcnNlRmxvYXQoYSh3aW5kb3cpLndpZHRoKCkqcGFyc2VGbG9hdChtb3ZpZV93aWR0aCkvMTAwLTE1MCkscj0hMCk7JHBwX3BpY19ob2xkZXIuZmFkZUluKGZ1bmN0aW9uKCl7Yi5zaG93X3RpdGxlJiYiIiE9cHBfdGl0bGVzW3NldF9wb3NpdGlvbl0mJiJ1bmRlZmluZWQiIT10eXBlb2YgcHBfdGl0bGVzW3NldF9wb3NpdGlvbl0\/JHBwdC5odG1sKHVuZXNjYXBlKHBwX3RpdGxlc1tzZXRfcG9zaXRpb25dKSk6JHBwdC5odG1sKCImbmJzcDsiKTtpbWdQcmVsb2FkZXI9IiI7c2tpcEluamVjdGlvbj0hMTtzd2l0Y2godChwcF9pbWFnZXNbc2V0X3Bvc2l0aW9uXSkpe2Nhc2UgImltYWdlIjppbWdQcmVsb2FkZXI9bmV3IEltYWdlO25leHRJbWFnZT1uZXcgSW1hZ2U7aXNTZXQmJnNldF9wb3NpdGlvbjwKYShwcF9pbWFnZXMpLmxlbmd0aC0xJiYobmV4dEltYWdlLnNyYz1wcF9pbWFnZXNbc2V0X3Bvc2l0aW9uKzFdKTtwcmV2SW1hZ2U9bmV3IEltYWdlO2lzU2V0JiZwcF9pbWFnZXNbc2V0X3Bvc2l0aW9uLTFdJiYocHJldkltYWdlLnNyYz1wcF9pbWFnZXNbc2V0X3Bvc2l0aW9uLTFdKTskcHBfcGljX2hvbGRlci5maW5kKCIjcHBfZnVsbF9yZXMiKVswXS5pbm5lckhUTUw9Yi5pbWFnZV9tYXJrdXAucmVwbGFjZSgve3BhdGh9L2cscHBfaW1hZ2VzW3NldF9wb3NpdGlvbl0pO2ltZ1ByZWxvYWRlci5vbmxvYWQ9ZnVuY3Rpb24oKXtkPWcoaW1nUHJlbG9hZGVyLndpZHRoLGltZ1ByZWxvYWRlci5oZWlnaHQpO3AoKX07aW1nUHJlbG9hZGVyLm9uZXJyb3I9ZnVuY3Rpb24oKXthbGVydCgiSW1hZ2UgY2Fubm90IGJlIGxvYWRlZC4gTWFrZSBzdXJlIHRoZSBwYXRoIGlzIGNvcnJlY3QgYW5kIGltYWdlIGV4aXN0LiIpO2EucHJldHR5UGhvdG8uY2xvc2UoKX07aW1nUHJlbG9hZGVyLnNyYz1wcF9pbWFnZXNbc2V0X3Bvc2l0aW9uXTsKYnJlYWs7Y2FzZSAieW91dHViZSI6ZD1nKG1vdmllX3dpZHRoLG1vdmllX2hlaWdodCk7bW92aWVfaWQ9bCgidiIscHBfaW1hZ2VzW3NldF9wb3NpdGlvbl0pOyIiPT1tb3ZpZV9pZCYmKG1vdmllX2lkPXBwX2ltYWdlc1tzZXRfcG9zaXRpb25dLnNwbGl0KCJ5b3V0dS5iZS8iKSxtb3ZpZV9pZD1tb3ZpZV9pZFsxXSwwPG1vdmllX2lkLmluZGV4T2YoIj8iKSYmKG1vdmllX2lkPW1vdmllX2lkLnN1YnN0cigwLG1vdmllX2lkLmluZGV4T2YoIj8iKSkpLDA8bW92aWVfaWQuaW5kZXhPZigiJiIpJiYobW92aWVfaWQ9bW92aWVfaWQuc3Vic3RyKDAsbW92aWVfaWQuaW5kZXhPZigiJiIpKSkpO21vdmllPSJodHRwczovL3d3dy55b3V0dWJlLmNvbS9lbWJlZC8iK21vdmllX2lkO2woInJlbCIscHBfaW1hZ2VzW3NldF9wb3NpdGlvbl0pP21vdmllKz0iP3JlbD0iK2woInJlbCIscHBfaW1hZ2VzW3NldF9wb3NpdGlvbl0pOm1vdmllKz0iP3JlbD0xIjtiLmF1dG9wbGF5JiYobW92aWUrPSImYXV0b3BsYXk9MSIpOwp0b0luamVjdD1iLmlmcmFtZV9tYXJrdXAucmVwbGFjZSgve3dpZHRofS9nLGQud2lkdGgpLnJlcGxhY2UoL3toZWlnaHR9L2csZC5oZWlnaHQpLnJlcGxhY2UoL3t3bW9kZX0vZyxiLndtb2RlKS5yZXBsYWNlKC97cGF0aH0vZyxtb3ZpZSk7YnJlYWs7Y2FzZSAidmltZW8iOmQ9Zyhtb3ZpZV93aWR0aCxtb3ZpZV9oZWlnaHQpO21vdmllX2lkPXBwX2ltYWdlc1tzZXRfcG9zaXRpb25dO21vdmllPSJodHRwOi8vcGxheWVyLnZpbWVvLmNvbS92aWRlby8iK21vdmllX2lkLm1hdGNoKC9odHRwKHM\/KTpcL1wvKHd3d1wuKT92aW1lby5jb21cLyhcZCspLylbM10rIj90aXRsZT0wJmFtcDtieWxpbmU9MCZhbXA7cG9ydHJhaXQ9MCI7Yi5hdXRvcGxheSYmKG1vdmllKz0iJmF1dG9wbGF5PTE7Iik7dmltZW9fd2lkdGg9ZC53aWR0aCsiL2VtYmVkLz9tb29nX3dpZHRoPSIrZC53aWR0aDt0b0luamVjdD1iLmlmcmFtZV9tYXJrdXAucmVwbGFjZSgve3dpZHRofS9nLHZpbWVvX3dpZHRoKS5yZXBsYWNlKC97aGVpZ2h0fS9nLApkLmhlaWdodCkucmVwbGFjZSgve3BhdGh9L2csbW92aWUpO2JyZWFrO2Nhc2UgIm1wNCI6ZD1nKG1vdmllX3dpZHRoLG1vdmllX2hlaWdodCk7bW92aWVfdXJsPXBwX2ltYWdlc1tzZXRfcG9zaXRpb25dO3RvSW5qZWN0PWIubXA0X21hcmt1cC5yZXBsYWNlKC97cGF0aH0vZyxtb3ZpZV91cmwpO2JyZWFrO2Nhc2UgInF1aWNrdGltZSI6ZD1nKG1vdmllX3dpZHRoLG1vdmllX2hlaWdodCk7ZC5oZWlnaHQrPTE1O2QuY29udGVudEhlaWdodCs9MTU7ZC5jb250YWluZXJIZWlnaHQrPTE1O3RvSW5qZWN0PWIucXVpY2t0aW1lX21hcmt1cC5yZXBsYWNlKC97d2lkdGh9L2csZC53aWR0aCkucmVwbGFjZSgve2hlaWdodH0vZyxkLmhlaWdodCkucmVwbGFjZSgve3dtb2RlfS9nLGIud21vZGUpLnJlcGxhY2UoL3twYXRofS9nLHBwX2ltYWdlc1tzZXRfcG9zaXRpb25dKS5yZXBsYWNlKC97YXV0b3BsYXl9L2csYi5hdXRvcGxheSk7YnJlYWs7Y2FzZSAiZmxhc2giOmQ9Zyhtb3ZpZV93aWR0aCwKbW92aWVfaGVpZ2h0KTtmbGFzaF92YXJzPXBwX2ltYWdlc1tzZXRfcG9zaXRpb25dO2ZsYXNoX3ZhcnM9Zmxhc2hfdmFycy5zdWJzdHJpbmcocHBfaW1hZ2VzW3NldF9wb3NpdGlvbl0uaW5kZXhPZigiZmxhc2h2YXJzIikrMTAscHBfaW1hZ2VzW3NldF9wb3NpdGlvbl0ubGVuZ3RoKTtmaWxlbmFtZT1wcF9pbWFnZXNbc2V0X3Bvc2l0aW9uXTtmaWxlbmFtZT1maWxlbmFtZS5zdWJzdHJpbmcoMCxmaWxlbmFtZS5pbmRleE9mKCI\/IikpO3RvSW5qZWN0PWIuZmxhc2hfbWFya3VwLnJlcGxhY2UoL3t3aWR0aH0vZyxkLndpZHRoKS5yZXBsYWNlKC97aGVpZ2h0fS9nLGQuaGVpZ2h0KS5yZXBsYWNlKC97d21vZGV9L2csYi53bW9kZSkucmVwbGFjZSgve3BhdGh9L2csZmlsZW5hbWUrIj8iK2ZsYXNoX3ZhcnMpO2JyZWFrO2Nhc2UgImlmcmFtZSI6ZD1nKG1vdmllX3dpZHRoLG1vdmllX2hlaWdodCk7ZnJhbWVfdXJsPXBwX2ltYWdlc1tzZXRfcG9zaXRpb25dO2ZyYW1lX3VybD1mcmFtZV91cmwuc3Vic3RyKDAsCmZyYW1lX3VybC5pbmRleE9mKCJpZnJhbWUiKS0xKTt0b0luamVjdD1iLmlmcmFtZV9tYXJrdXAucmVwbGFjZSgve3dpZHRofS9nLGQud2lkdGgpLnJlcGxhY2UoL3toZWlnaHR9L2csZC5oZWlnaHQpLnJlcGxhY2UoL3twYXRofS9nLGZyYW1lX3VybCk7YnJlYWs7Y2FzZSAiYWpheCI6ZG9yZXNpemU9ITE7ZD1nKG1vdmllX3dpZHRoLG1vdmllX2hlaWdodCk7c2tpcEluamVjdGlvbj1kb3Jlc2l6ZT0hMDthLmdldChwcF9pbWFnZXNbc2V0X3Bvc2l0aW9uXSxmdW5jdGlvbihIKXt0b0luamVjdD1iLmlubGluZV9tYXJrdXAucmVwbGFjZSgve2NvbnRlbnR9L2csSCk7JHBwX3BpY19ob2xkZXIuZmluZCgiI3BwX2Z1bGxfcmVzIilbMF0uaW5uZXJIVE1MPXRvSW5qZWN0O3AoKX0pO2JyZWFrO2Nhc2UgImN1c3RvbSI6ZD1nKG1vdmllX3dpZHRoLG1vdmllX2hlaWdodCk7dG9JbmplY3Q9Yi5jdXN0b21fbWFya3VwO2JyZWFrO2Nhc2UgImlubGluZSI6bXlDbG9uZT1hKHBwX2ltYWdlc1tzZXRfcG9zaXRpb25dKS5jbG9uZSgpLmFwcGVuZCgnPGJyIGNsZWFyPSJhbGwiIC8+JykuY3NzKHt3aWR0aDpiLmRlZmF1bHRfd2lkdGh9KS53cmFwSW5uZXIoJzxkaXYgaWQ9InBwX2Z1bGxfcmVzIj48ZGl2IGNsYXNzPSJwcF9pbmxpbmUiPjwvZGl2PjwvZGl2PicpLmFwcGVuZFRvKGEoImJvZHkiKSkuc2hvdygpLApkb3Jlc2l6ZT0hMSxkPWcoYShteUNsb25lKS53aWR0aCgpLGEobXlDbG9uZSkuaGVpZ2h0KCkpLGRvcmVzaXplPSEwLGEobXlDbG9uZSkucmVtb3ZlKCksdG9JbmplY3Q9Yi5pbmxpbmVfbWFya3VwLnJlcGxhY2UoL3tjb250ZW50fS9nLGEocHBfaW1hZ2VzW3NldF9wb3NpdGlvbl0pLmh0bWwoKSl9aW1nUHJlbG9hZGVyfHxza2lwSW5qZWN0aW9ufHwoJHBwX3BpY19ob2xkZXIuZmluZCgiI3BwX2Z1bGxfcmVzIilbMF0uaW5uZXJIVE1MPXRvSW5qZWN0LHAoKSl9KTtyZXR1cm4hMX07YS5wcmV0dHlQaG90by5jaGFuZ2VQYWdlPWZ1bmN0aW9uKGMpe2N1cnJlbnRHYWxsZXJ5UGFnZT0wOyJwcmV2aW91cyI9PWM\/KHNldF9wb3NpdGlvbi0tLDA+c2V0X3Bvc2l0aW9uJiYoc2V0X3Bvc2l0aW9uPWEocHBfaW1hZ2VzKS5sZW5ndGgtMSkpOiJuZXh0Ij09Yz8oc2V0X3Bvc2l0aW9uKyssc2V0X3Bvc2l0aW9uPmEocHBfaW1hZ2VzKS5sZW5ndGgtMSYmKHNldF9wb3NpdGlvbj0wKSk6c2V0X3Bvc2l0aW9uPQpjO3JlbF9pbmRleD1zZXRfcG9zaXRpb247ZG9yZXNpemV8fChkb3Jlc2l6ZT0hMCk7Yi5hbGxvd19leHBhbmQmJmEoIi5wcF9jb250cmFjdCIpLnJlbW92ZUNsYXNzKCJwcF9jb250cmFjdCIpLmFkZENsYXNzKCJwcF9leHBhbmQiKTt6KGZ1bmN0aW9uKCl7YS5wcmV0dHlQaG90by5vcGVuKCl9KX07YS5wcmV0dHlQaG90by5jaGFuZ2VHYWxsZXJ5UGFnZT1mdW5jdGlvbihjKXsibmV4dCI9PWM\/KGN1cnJlbnRHYWxsZXJ5UGFnZSsrLGN1cnJlbnRHYWxsZXJ5UGFnZT50b3RhbFBhZ2UmJihjdXJyZW50R2FsbGVyeVBhZ2U9MCkpOiJwcmV2aW91cyI9PWM\/KGN1cnJlbnRHYWxsZXJ5UGFnZS0tLDA+Y3VycmVudEdhbGxlcnlQYWdlJiYoY3VycmVudEdhbGxlcnlQYWdlPXRvdGFsUGFnZSkpOmN1cnJlbnRHYWxsZXJ5UGFnZT1jO3NsaWRlX3NwZWVkPSJuZXh0Ij09Y3x8InByZXZpb3VzIj09Yz9iLmFuaW1hdGlvbl9zcGVlZDowO3NsaWRlX3RvPWN1cnJlbnRHYWxsZXJ5UGFnZSppdGVtc1BlclBhZ2UqCml0ZW1XaWR0aDskcHBfZ2FsbGVyeS5maW5kKCJ1bCIpLmFuaW1hdGUoe2xlZnQ6LXNsaWRlX3RvfSxzbGlkZV9zcGVlZCl9O2EucHJldHR5UGhvdG8uc3RhcnRTbGlkZXNob3c9ZnVuY3Rpb24oKXsidW5kZWZpbmVkIj09dHlwZW9mIHE\/KCRwcF9waWNfaG9sZGVyLmZpbmQoIi5wcF9wbGF5Iikub2ZmKCJjbGljayIpLnJlbW92ZUNsYXNzKCJwcF9wbGF5IikuYWRkQ2xhc3MoInBwX3BhdXNlIikub24oImNsaWNrIixmdW5jdGlvbigpe2EucHJldHR5UGhvdG8uc3RvcFNsaWRlc2hvdygpO3JldHVybiExfSkscT1zZXRJbnRlcnZhbChhLnByZXR0eVBob3RvLnN0YXJ0U2xpZGVzaG93LGIuc2xpZGVzaG93KSk6YS5wcmV0dHlQaG90by5jaGFuZ2VQYWdlKCJuZXh0Iil9O2EucHJldHR5UGhvdG8uc3RvcFNsaWRlc2hvdz1mdW5jdGlvbigpeyRwcF9waWNfaG9sZGVyLmZpbmQoIi5wcF9wYXVzZSIpLm9mZigiY2xpY2siKS5yZW1vdmVDbGFzcygicHBfcGF1c2UiKS5hZGRDbGFzcygicHBfcGxheSIpLm9uKCJjbGljayIsCmZ1bmN0aW9uKCl7YS5wcmV0dHlQaG90by5zdGFydFNsaWRlc2hvdygpO3JldHVybiExfSk7Y2xlYXJJbnRlcnZhbChxKTtxPXZvaWQgMH07YS5wcmV0dHlQaG90by5jbG9zZT1mdW5jdGlvbigpeyRwcF9vdmVybGF5LmlzKCI6YW5pbWF0ZWQiKXx8KGEucHJldHR5UGhvdG8uc3RvcFNsaWRlc2hvdygpLCRwcF9waWNfaG9sZGVyLnN0b3AoKS5maW5kKCJvYmplY3QsZW1iZWQiKS5jc3MoInZpc2liaWxpdHkiLCJoaWRkZW4iKSxhKCJkaXYucHBfcGljX2hvbGRlcixkaXYucHB0LC5wcF9mYWRlIikuZmFkZU91dChiLmFuaW1hdGlvbl9zcGVlZCxmdW5jdGlvbigpe2EodGhpcykucmVtb3ZlKCl9KSwkcHBfb3ZlcmxheS5mYWRlT3V0KGIuYW5pbWF0aW9uX3NwZWVkLGZ1bmN0aW9uKCl7Yi5oaWRlZmxhc2gmJmEoIm9iamVjdCxlbWJlZCxpZnJhbWVbc3JjKj15b3V0dWJlXSxpZnJhbWVbc3JjKj12aW1lb10iKS5jc3MoInZpc2liaWxpdHkiLCJ2aXNpYmxlIik7YSh0aGlzKS5yZW1vdmUoKTsKYSh3aW5kb3cpLm9mZigic2Nyb2xsLnByZXR0eXBob3RvIik7LTEhPT1sb2NhdGlvbi5ocmVmLmluZGV4T2YoIiNwcmV0dHlQaG90byIpJiYobG9jYXRpb24uaGFzaD0icHJldHR5UGhvdG8iKTtiLmNhbGxiYWNrKCk7ZG9yZXNpemU9ITA7dT0hMTtkZWxldGUgYn0pKX07IXBwX2FscmVhZHlJbml0aWFsaXplZCYmeSgpJiYocHBfYWxyZWFkeUluaXRpYWxpemVkPSEwLGhhc2hSZWw9aGFzaEluZGV4PXkoKSxoYXNoSW5kZXg9aGFzaEluZGV4LnN1YnN0cmluZyhoYXNoSW5kZXguaW5kZXhPZigiLyIpKzEsaGFzaEluZGV4Lmxlbmd0aC0xKSxoYXNoUmVsPWhhc2hSZWwuc3Vic3RyaW5nKDAsaGFzaFJlbC5pbmRleE9mKCIvIikpLHNldFRpbWVvdXQoZnVuY3Rpb24oKXthKCJhWyIrZS5ob29rKyJePSciK2hhc2hSZWwrIiddOmVxKCIraGFzaEluZGV4KyIpIikudHJpZ2dlcigiY2xpY2siKX0sNTApKTtyZXR1cm4gdGhpcy5vZmYoImNsaWNrLnByZXR0eXBob3RvIikub24oImNsaWNrLnByZXR0eXBob3RvIiwKYS5wcmV0dHlQaG90by5pbml0aWFsaXplKX19KShqUXVlcnkpO3ZhciBwcF9hbHJlYWR5SW5pdGlhbGl6ZWQ9ITE7Ci8qKiAvanMvanF1ZXJ5LnRyYW5zaXRpb24ubWluLmpzICoqLwovKiEKICogalF1ZXJ5IFRyYW5zaXQgLSBDU1MzIHRyYW5zaXRpb25zIGFuZCB0cmFuc2Zvcm1hdGlvbnMKICogQ29weXJpZ2h0KGMpIDIwMTEgUmljbyBTdGEuIENydXogPHJpY29Acmljb3N0YWNydXouY29tPgogKiBNSVQgTGljZW5zZWQuCiAqCiAqIGh0dHA6Ly9yaWNvc3RhY3J1ei5jb20vanF1ZXJ5LnRyYW5zaXQKICogaHR0cDovL2dpdGh1Yi5jb20vcnN0YWNydXovanF1ZXJ5LnRyYW5zaXQKICovCihmdW5jdGlvbihkKXtmdW5jdGlvbiBrKGEpe3ZhciBiPVsiTW96IiwiV2Via2l0IiwiTyIsIm1zIl0sYz1hLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpK2Euc3Vic3RyKDEpO2lmKGEgaW4gaS5zdHlsZSlyZXR1cm4gYTtmb3IoYT0wO2E8Yi5sZW5ndGg7KythKXt2YXIgZD1iW2FdK2M7aWYoZCBpbiBpLnN0eWxlKXJldHVybiBkfX1mdW5jdGlvbiBqKGEpeyJzdHJpbmciPT09dHlwZW9mIGEmJnRoaXMucGFyc2UoYSk7cmV0dXJuIHRoaXN9ZnVuY3Rpb24gcChhLGIsYyl7ITA9PT1iP2EucXVldWUoYyk6Yj9hLnF1ZXVlKGIsYyk6YygpfWZ1bmN0aW9uIG0oYSl7dmFyIGI9W107ZC5lYWNoKGEsZnVuY3Rpb24oYSl7YT1kLmNhbWVsQ2FzZShhKTthPWQudHJhbnNpdC5wcm9wZXJ0eU1hcFthXXx8YTthPXIoYSk7LTE9PT1kLmluQXJyYXkoYSxiKSYmYi5wdXNoKGEpfSk7cmV0dXJuIGJ9ZnVuY3Rpb24gcShhLGIsYyxlKXthPW0oYSk7ZC5jc3NFYXNlW2NdJiYoYz1kLmNzc0Vhc2VbY10pOwp2YXIgaD0iIituKGIpKyIgIitjOzA8cGFyc2VJbnQoZSwxMCkmJihoKz0iICIrbihlKSk7dmFyIGY9W107ZC5lYWNoKGEsZnVuY3Rpb24oYSxiKXtmLnB1c2goYisiICIraCl9KTtyZXR1cm4gZi5qb2luKCIsICIpfWZ1bmN0aW9uIGYoYSxiKXtifHwoZC5jc3NOdW1iZXJbYV09ITApO2QudHJhbnNpdC5wcm9wZXJ0eU1hcFthXT1lLnRyYW5zZm9ybTtkLmNzc0hvb2tzW2FdPXtnZXQ6ZnVuY3Rpb24oYil7cmV0dXJuKGQoYikuY3NzKCJ0cmFuc2Zvcm0iKXx8bmV3IGopLmdldChhKX0sc2V0OmZ1bmN0aW9uKGIsZSl7dmFyIGg9ZChiKS5jc3MoInRyYW5zZm9ybSIpfHxuZXcgajtoLnNldEZyb21TdHJpbmcoYSxlKTtkKGIpLmNzcyh7dHJhbnNmb3JtOmh9KX19fWZ1bmN0aW9uIHIoYSl7cmV0dXJuIGEucmVwbGFjZSgvKFtBLVpdKS9nLGZ1bmN0aW9uKGEpe3JldHVybiItIithLnRvTG93ZXJDYXNlKCl9KX1mdW5jdGlvbiBnKGEsYil7cmV0dXJuInN0cmluZyI9PT10eXBlb2YgYSYmIWEubWF0Y2goL15bXC0wLTlcLl0rJC8pPwphOiIiK2ErYn1mdW5jdGlvbiBuKGEpe2QuZnguc3BlZWRzW2FdJiYoYT1kLmZ4LnNwZWVkc1thXSk7cmV0dXJuIGcoYSwibXMiKX1kLnRyYW5zaXQ9e3ZlcnNpb246IjAuMS4zIixwcm9wZXJ0eU1hcDp7bWFyZ2luTGVmdDoibWFyZ2luIixtYXJnaW5SaWdodDoibWFyZ2luIixtYXJnaW5Cb3R0b206Im1hcmdpbiIsbWFyZ2luVG9wOiJtYXJnaW4iLHBhZGRpbmdMZWZ0OiJwYWRkaW5nIixwYWRkaW5nUmlnaHQ6InBhZGRpbmciLHBhZGRpbmdCb3R0b206InBhZGRpbmciLHBhZGRpbmdUb3A6InBhZGRpbmcifSxlbmFibGVkOiEwLHVzZVRyYW5zaXRpb25FbmQ6ITF9O3ZhciBpPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLGU9e30scz0tMTxuYXZpZ2F0b3IudXNlckFnZW50LnRvTG93ZXJDYXNlKCkuaW5kZXhPZigiY2hyb21lIik7ZS50cmFuc2l0aW9uPWsoInRyYW5zaXRpb24iKTtlLnRyYW5zaXRpb25EZWxheT1rKCJ0cmFuc2l0aW9uRGVsYXkiKTtlLnRyYW5zZm9ybT1rKCJ0cmFuc2Zvcm0iKTsKZS50cmFuc2Zvcm1PcmlnaW49aygidHJhbnNmb3JtT3JpZ2luIik7aS5zdHlsZVtlLnRyYW5zZm9ybV09IiI7aS5zdHlsZVtlLnRyYW5zZm9ybV09InJvdGF0ZVkoOTBkZWcpIjtlLnRyYW5zZm9ybTNkPSIiIT09aS5zdHlsZVtlLnRyYW5zZm9ybV07ZC5leHRlbmQoZC5zdXBwb3J0LGUpO3ZhciBvPWUudHJhbnNpdGlvbkVuZD17TW96VHJhbnNpdGlvbjoidHJhbnNpdGlvbmVuZCIsT1RyYW5zaXRpb246Im9UcmFuc2l0aW9uRW5kIixXZWJraXRUcmFuc2l0aW9uOiJ3ZWJraXRUcmFuc2l0aW9uRW5kIixtc1RyYW5zaXRpb246Ik1TVHJhbnNpdGlvbkVuZCJ9W2UudHJhbnNpdGlvbl18fG51bGwsaT1udWxsO2QuY3NzRWFzZT17X2RlZmF1bHQ6ImVhc2UiLCJpbiI6ImVhc2UtaW4iLG91dDoiZWFzZS1vdXQiLCJpbi1vdXQiOiJlYXNlLWluLW91dCIsc25hcDoiY3ViaWMtYmV6aWVyKDAsMSwuNSwxKSJ9O2QuY3NzSG9va3MudHJhbnNmb3JtPXtnZXQ6ZnVuY3Rpb24oYSl7cmV0dXJuIGQoYSkuZGF0YSgidHJhbnNmb3JtIil9LApzZXQ6ZnVuY3Rpb24oYSxiKXt2YXIgYz1iO2MgaW5zdGFuY2VvZiBqfHwoYz1uZXcgaihjKSk7YS5zdHlsZVtlLnRyYW5zZm9ybV09IldlYmtpdFRyYW5zZm9ybSI9PT1lLnRyYW5zZm9ybSYmIXM\/Yy50b1N0cmluZyghMCk6Yy50b1N0cmluZygpO2QoYSkuZGF0YSgidHJhbnNmb3JtIixjKX19O2QuY3NzSG9va3MudHJhbnNmb3JtT3JpZ2luPXtnZXQ6ZnVuY3Rpb24oYSl7cmV0dXJuIGEuc3R5bGVbZS50cmFuc2Zvcm1PcmlnaW5dfSxzZXQ6ZnVuY3Rpb24oYSxiKXthLnN0eWxlW2UudHJhbnNmb3JtT3JpZ2luXT1ifX07ZC5jc3NIb29rcy50cmFuc2l0aW9uPXtnZXQ6ZnVuY3Rpb24oYSl7cmV0dXJuIGEuc3R5bGVbZS50cmFuc2l0aW9uXX0sc2V0OmZ1bmN0aW9uKGEsYil7YS5zdHlsZVtlLnRyYW5zaXRpb25dPWJ9fTtmKCJzY2FsZSIpO2YoInRyYW5zbGF0ZSIpO2YoInJvdGF0ZSIpO2YoInJvdGF0ZVgiKTtmKCJyb3RhdGVZIik7Zigicm90YXRlM2QiKTtmKCJwZXJzcGVjdGl2ZSIpOwpmKCJza2V3WCIpO2YoInNrZXdZIik7ZigieCIsITApO2YoInkiLCEwKTtqLnByb3RvdHlwZT17c2V0RnJvbVN0cmluZzpmdW5jdGlvbihhLGIpe3ZhciBjPSJzdHJpbmciPT09dHlwZW9mIGI\/Yi5zcGxpdCgiLCIpOmIuY29uc3RydWN0b3I9PT1BcnJheT9iOltiXTtjLnVuc2hpZnQoYSk7ai5wcm90b3R5cGUuc2V0LmFwcGx5KHRoaXMsYyl9LHNldDpmdW5jdGlvbihhKXt2YXIgYj1BcnJheS5wcm90b3R5cGUuc2xpY2UuYXBwbHkoYXJndW1lbnRzLFsxXSk7dGhpcy5zZXR0ZXJbYV0\/dGhpcy5zZXR0ZXJbYV0uYXBwbHkodGhpcyxiKTp0aGlzW2FdPWIuam9pbigiLCIpfSxnZXQ6ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuZ2V0dGVyW2FdP3RoaXMuZ2V0dGVyW2FdLmFwcGx5KHRoaXMpOnRoaXNbYV18fDB9LHNldHRlcjp7cm90YXRlOmZ1bmN0aW9uKGEpe3RoaXMucm90YXRlPWcoYSwiZGVnIil9LHJvdGF0ZVg6ZnVuY3Rpb24oYSl7dGhpcy5yb3RhdGVYPWcoYSwiZGVnIil9LHJvdGF0ZVk6ZnVuY3Rpb24oYSl7dGhpcy5yb3RhdGVZPQpnKGEsImRlZyIpfSxzY2FsZTpmdW5jdGlvbihhLGIpe3ZvaWQgMD09PWImJihiPWEpO3RoaXMuc2NhbGU9YSsiLCIrYn0sc2tld1g6ZnVuY3Rpb24oYSl7dGhpcy5za2V3WD1nKGEsImRlZyIpfSxza2V3WTpmdW5jdGlvbihhKXt0aGlzLnNrZXdZPWcoYSwiZGVnIil9LHBlcnNwZWN0aXZlOmZ1bmN0aW9uKGEpe3RoaXMucGVyc3BlY3RpdmU9ZyhhLCJweCIpfSx4OmZ1bmN0aW9uKGEpe3RoaXMuc2V0KCJ0cmFuc2xhdGUiLGEsbnVsbCl9LHk6ZnVuY3Rpb24oYSl7dGhpcy5zZXQoInRyYW5zbGF0ZSIsbnVsbCxhKX0sdHJhbnNsYXRlOmZ1bmN0aW9uKGEsYil7dm9pZCAwPT09dGhpcy5fdHJhbnNsYXRlWCYmKHRoaXMuX3RyYW5zbGF0ZVg9MCk7dm9pZCAwPT09dGhpcy5fdHJhbnNsYXRlWSYmKHRoaXMuX3RyYW5zbGF0ZVk9MCk7bnVsbCE9PWEmJih0aGlzLl90cmFuc2xhdGVYPWcoYSwicHgiKSk7bnVsbCE9PWImJih0aGlzLl90cmFuc2xhdGVZPWcoYiwicHgiKSk7dGhpcy50cmFuc2xhdGU9CnRoaXMuX3RyYW5zbGF0ZVgrIiwiK3RoaXMuX3RyYW5zbGF0ZVl9fSxnZXR0ZXI6e3g6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fdHJhbnNsYXRlWHx8MH0seTpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90cmFuc2xhdGVZfHwwfSxzY2FsZTpmdW5jdGlvbigpe3ZhciBhPSh0aGlzLnNjYWxlfHwiMSwxIikuc3BsaXQoIiwiKTthWzBdJiYoYVswXT1wYXJzZUZsb2F0KGFbMF0pKTthWzFdJiYoYVsxXT1wYXJzZUZsb2F0KGFbMV0pKTtyZXR1cm4gYVswXT09PWFbMV0\/YVswXTphfSxyb3RhdGUzZDpmdW5jdGlvbigpe2Zvcih2YXIgYT0odGhpcy5yb3RhdGUzZHx8IjAsMCwwLDBkZWciKS5zcGxpdCgiLCIpLGI9MDszPj1iOysrYilhW2JdJiYoYVtiXT1wYXJzZUZsb2F0KGFbYl0pKTthWzNdJiYoYVszXT1nKGFbM10sImRlZyIpKTtyZXR1cm4gYX19LHBhcnNlOmZ1bmN0aW9uKGEpe3ZhciBiPXRoaXM7YS5yZXBsYWNlKC8oW2EtekEtWjAtOV0rKVwoKC4qPylcKS9nLGZ1bmN0aW9uKGEsZCwKZSl7Yi5zZXRGcm9tU3RyaW5nKGQsZSl9KX0sdG9TdHJpbmc6ZnVuY3Rpb24oYSl7dmFyIGI9W10sYztmb3IoYyBpbiB0aGlzKWlmKHRoaXMuaGFzT3duUHJvcGVydHkoYykmJihlLnRyYW5zZm9ybTNkfHwhKCJyb3RhdGVYIj09PWN8fCJyb3RhdGVZIj09PWN8fCJwZXJzcGVjdGl2ZSI9PT1jfHwidHJhbnNmb3JtT3JpZ2luIj09PWMpKSkiXyIhPT1jWzBdJiYoYSYmInNjYWxlIj09PWM\/Yi5wdXNoKGMrIjNkKCIrdGhpc1tjXSsiLDEpIik6YSYmInRyYW5zbGF0ZSI9PT1jP2IucHVzaChjKyIzZCgiK3RoaXNbY10rIiwwKSIpOmIucHVzaChjKyIoIit0aGlzW2NdKyIpIikpO3JldHVybiBiLmpvaW4oIiAiKX19O2QuZm4udHJhbnNpdGlvbj1kLmZuLnRyYW5zaXQ9ZnVuY3Rpb24oYSxiLGMsZil7dmFyIGg9dGhpcyxnPTAsaT0hMDsiZnVuY3Rpb24iPT09dHlwZW9mIGImJihmPWIsYj12b2lkIDApOyJmdW5jdGlvbiI9PT10eXBlb2YgYyYmKGY9YyxjPXZvaWQgMCk7InVuZGVmaW5lZCIhPT0KdHlwZW9mIGEuZWFzaW5nJiYoYz1hLmVhc2luZyxkZWxldGUgYS5lYXNpbmcpOyJ1bmRlZmluZWQiIT09dHlwZW9mIGEuZHVyYXRpb24mJihiPWEuZHVyYXRpb24sZGVsZXRlIGEuZHVyYXRpb24pOyJ1bmRlZmluZWQiIT09dHlwZW9mIGEuY29tcGxldGUmJihmPWEuY29tcGxldGUsZGVsZXRlIGEuY29tcGxldGUpOyJ1bmRlZmluZWQiIT09dHlwZW9mIGEucXVldWUmJihpPWEucXVldWUsZGVsZXRlIGEucXVldWUpOyJ1bmRlZmluZWQiIT09dHlwZW9mIGEuZGVsYXkmJihnPWEuZGVsYXksZGVsZXRlIGEuZGVsYXkpOyJ1bmRlZmluZWQiPT09dHlwZW9mIGImJihiPWQuZnguc3BlZWRzLl9kZWZhdWx0KTsidW5kZWZpbmVkIj09PXR5cGVvZiBjJiYoYz1kLmNzc0Vhc2UuX2RlZmF1bHQpO3ZhciBiPW4oYiksaj1xKGEsYixjLGcpLGw9ZC50cmFuc2l0LmVuYWJsZWQmJmUudHJhbnNpdGlvbj9wYXJzZUludChiLDEwKStwYXJzZUludChnLDEwKTowO2lmKDA9PT1sKXJldHVybiBwKGgsaSxmdW5jdGlvbihiKXtoLmNzcyhhKTsKZiYmZi5hcHBseShoKTtiJiZiKCl9KSxoO3ZhciBrPXt9LG09ZnVuY3Rpb24oYil7dmFyIGM9ZmFsc2UsZz1mdW5jdGlvbigpe2MmJmgub2ZmKG8sZyk7bD4wJiZoLmVhY2goZnVuY3Rpb24oKXt0aGlzLnN0eWxlW2UudHJhbnNpdGlvbl09a1t0aGlzXXx8bnVsbH0pO3R5cGVvZiBmPT09ImZ1bmN0aW9uIiYmZi5hcHBseShoKTt0eXBlb2YgYj09PSJmdW5jdGlvbiImJmIoKX07aWYobD4wJiZvJiZkLnRyYW5zaXQudXNlVHJhbnNpdGlvbkVuZCl7Yz10cnVlO2gub24obyxnKX1lbHNlIHdpbmRvdy5zZXRUaW1lb3V0KGcsbCk7aC5lYWNoKGZ1bmN0aW9uKCl7bD4wJiYodGhpcy5zdHlsZVtlLnRyYW5zaXRpb25dPWopO2QodGhpcykuY3NzKGEpfSl9O3AoaCxpLGZ1bmN0aW9uKGEpe3ZhciBiPTA7ZS50cmFuc2l0aW9uPT09Ik1velRyYW5zaXRpb24iJiZiPDI1JiYoYj0yNSk7d2luZG93LnNldFRpbWVvdXQoZnVuY3Rpb24oKXttKGEpfSxiKX0pO3JldHVybiB0aGlzfTtkLnRyYW5zaXQuZ2V0VHJhbnNpdGlvblZhbHVlPQpxfSkoalF1ZXJ5KTsvKkVPRiovOwovKiogL2pzL2pxdWVyeS50b3VjaFN3aXBlLm1pbi5qcyAqKi8KKGZ1bmN0aW9uKGcpe2cuZm4uc3dpcGU9ZnVuY3Rpb24obSl7aWYoIXRoaXMpcmV0dXJuIGZhbHNlO3ZhciBiPXtmaW5nZXJzOjEsdGhyZXNob2xkOjc1LHN3aXBlOm51bGwsc3dpcGVMZWZ0Om51bGwsc3dpcGVSaWdodDpudWxsLHN3aXBlVXA6bnVsbCxzd2lwZURvd246bnVsbCxzd2lwZVN0YXR1czpudWxsLGNsaWNrOm51bGwsdHJpZ2dlck9uVG91Y2hFbmQ6dHJ1ZSxhbGxvd1BhZ2VTY3JvbGw6ImF1dG8ifSxwPSJsZWZ0Iix2PSJyaWdodCIsdz0idXAiLHg9ImRvd24iLHk9Im5vbmUiLHo9Imhvcml6b250YWwiLEE9InZlcnRpY2FsIixHPSJhdXRvIixIPSJzdGFydCIsQj0ibW92ZSIscT0iZW5kIixuPSJjYW5jZWwiLGQ9Im9udG91Y2hzdGFydCJpbiB3aW5kb3csQz1kPyJ0b3VjaHN0YXJ0IjoibW91c2Vkb3duIixyPWQ\/InRvdWNobW92ZSI6Im1vdXNlbW92ZSIscz1kPyJ0b3VjaGVuZCI6Im1vdXNldXAiLGM9InN0YXJ0IjtpZihtLmFsbG93UGFnZVNjcm9sbD09dW5kZWZpbmVkJiYNCihtLnN3aXBlIT11bmRlZmluZWR8fG0uc3dpcGVTdGF0dXMhPXVuZGVmaW5lZCkpbS5hbGxvd1BhZ2VTY3JvbGw9eTttJiZnLmV4dGVuZChiLG0pO3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXtmdW5jdGlvbiBEKGEpe3ZhciBlPWQ\/YS50b3VjaGVzWzBdOmE7Yz1IO2lmKGQpaz1hLnRvdWNoZXMubGVuZ3RoO2Rpc3RhbmNlPTA7ZGlyZWN0aW9uPW51bGw7aWYoaz09Yi5maW5nZXJzfHwhZCl7aC54PWYueD1lLnBhZ2VYO2gueT1mLnk9ZS5wYWdlWTtiLnN3aXBlU3RhdHVzJiZvKGEsYyl9ZWxzZSBsKGEpO2lmKGQpe2RvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIocix0KTtkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKHMsdSl9ZWxzZXtnKGRvY3VtZW50KS5vbihyLHQpO2coZG9jdW1lbnQpLm9uKHMsdSl9fWZ1bmN0aW9uIHQoYSl7aWYoIShjPT1xfHxjPT1uKSl7dmFyIGU9ZD9hLnRvdWNoZXNbMF06YTtmLng9ZS5wYWdlWDtmLnk9ZS5wYWdlWTtkaXJlY3Rpb249RSgpO2lmKGQpaz0NCmEudG91Y2hlcy5sZW5ndGg7Yz1CO2U9ZGlyZWN0aW9uO2lmKGIuYWxsb3dQYWdlU2Nyb2xsPT15KWEucHJldmVudERlZmF1bHQoKTtlbHNle3ZhciBpPWIuYWxsb3dQYWdlU2Nyb2xsPT1HO3N3aXRjaChlKXtjYXNlIHA6aWYoYi5zd2lwZUxlZnQmJml8fCFpJiZiLmFsbG93UGFnZVNjcm9sbCE9eilhLnByZXZlbnREZWZhdWx0KCk7YnJlYWs7Y2FzZSB2OmlmKGIuc3dpcGVSaWdodCYmaXx8IWkmJmIuYWxsb3dQYWdlU2Nyb2xsIT16KWEucHJldmVudERlZmF1bHQoKTticmVhaztjYXNlIHc6aWYoYi5zd2lwZVVwJiZpfHwhaSYmYi5hbGxvd1BhZ2VTY3JvbGwhPUEpYS5wcmV2ZW50RGVmYXVsdCgpO2JyZWFrO2Nhc2UgeDppZihiLnN3aXBlRG93biYmaXx8IWkmJmIuYWxsb3dQYWdlU2Nyb2xsIT1BKWEucHJldmVudERlZmF1bHQoKX19aWYoaz09Yi5maW5nZXJzfHwhZCl7ZGlzdGFuY2U9RigpO2Iuc3dpcGVTdGF0dXMmJm8oYSxjLGRpcmVjdGlvbixkaXN0YW5jZSk7aWYoIWIudHJpZ2dlck9uVG91Y2hFbmQpaWYoZGlzdGFuY2U+PQ0KYi50aHJlc2hvbGQpe2M9cTtvKGEsYyk7bChhKX19ZWxzZXtjPW47byhhLGMpO2woYSl9fX1mdW5jdGlvbiB1KGEpe2EucHJldmVudERlZmF1bHQoKTtkaXN0YW5jZT1GKCk7ZGlyZWN0aW9uPUUoKTtpZihiLnRyaWdnZXJPblRvdWNoRW5kKXtjPXE7aWYoKGs9PWIuZmluZ2Vyc3x8IWQpJiZmLnghPTApZGlzdGFuY2U+PWIudGhyZXNob2xkfHwoYz1uKTtlbHNlIGM9bjtvKGEsYyk7bChhKX1lbHNlIGlmKGM9PUIpe2M9bjtvKGEsYyk7bChhKX1pZihkKXtkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKHIsdCk7ZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihzLHUpfWVsc2V7Zyhkb2N1bWVudCkub2ZmKHIsdCk7Zyhkb2N1bWVudCkub2ZmKHMsdSl9fWZ1bmN0aW9uIGwoKXtrPTA7aC54PTA7aC55PTA7Zi54PTA7Zi55PTB9ZnVuY3Rpb24gbyhhLGUpe2lmKGIuc3dpcGVTdGF0dXMpYi5zd2lwZVN0YXR1cy5jYWxsKGosYSxlLGRpcmVjdGlvbnx8bnVsbCxkaXN0YW5jZXx8DQowKTtpZihlPT1uKWlmKGIuY2xpY2smJihrPT0xfHwhZCkmJihpc05hTihkaXN0YW5jZSl8fGRpc3RhbmNlPT0wKSliLmNsaWNrLmNhbGwoaixhLGEudGFyZ2V0KTtpZihlPT1xKXtiLnN3aXBlJiZiLnN3aXBlLmNhbGwoaixhLGRpcmVjdGlvbixkaXN0YW5jZSk7c3dpdGNoKGRpcmVjdGlvbil7Y2FzZSBwOmIuc3dpcGVMZWZ0JiZiLnN3aXBlTGVmdC5jYWxsKGosYSxkaXJlY3Rpb24sZGlzdGFuY2UpO2JyZWFrO2Nhc2UgdjpiLnN3aXBlUmlnaHQmJmIuc3dpcGVSaWdodC5jYWxsKGosYSxkaXJlY3Rpb24sZGlzdGFuY2UpO2JyZWFrO2Nhc2UgdzpiLnN3aXBlVXAmJmIuc3dpcGVVcC5jYWxsKGosYSxkaXJlY3Rpb24sZGlzdGFuY2UpO2JyZWFrO2Nhc2UgeDpiLnN3aXBlRG93biYmYi5zd2lwZURvd24uY2FsbChqLGEsZGlyZWN0aW9uLGRpc3RhbmNlKX19fWZ1bmN0aW9uIEYoKXtyZXR1cm4gTWF0aC5yb3VuZChNYXRoLnNxcnQoTWF0aC5wb3coZi54LWgueCwyKStNYXRoLnBvdyhmLnktDQpoLnksMikpKX1mdW5jdGlvbiBFKCl7dmFyIGE7YT1NYXRoLnJvdW5kKE1hdGguYXRhbjIoZi55LWgueSxoLngtZi54KSoxODAvTWF0aC5QSSk7aWYoYTwwKWE9MzYwLU1hdGguYWJzKGEpO2E9YTtyZXR1cm4gYTw9NDUmJmE+PTA\/cDphPD0zNjAmJmE+PTMxNT9wOmE+PTEzNSYmYTw9MjI1P3Y6YT40NSYmYTwxMzU\/eDp3fXZhciBqPWcodGhpcyksaz0wLGg9e3g6MCx5OjB9LGY9e3g6MCx5OjB9O2lmKGQpe3RoaXMuYWRkRXZlbnRMaXN0ZW5lcihDLEQpO2RvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoY2FuY2VsIixsKX1lbHNle2oub24oQyxEKTtnKGRvY3VtZW50KS5vbigidG91Y2hjYW5jZWwiLGwpfX0pfX0pKGpRdWVyeSk7LypFT0YqLzsKLyoqIC9qcy9nb29nbGVtYXBzLmpzICoqLwp2YXIgX19fZDJjX2dvb2dsZW1hcHNqc19jX29uPSIyMDI2LTAxLTEyIDEwOjE0OjU0IjsndXNlIHN0cmljdCc7Y2xhc3MgR29vZ2xlTWFwc1dyYXBwZXJ7Y29uc3RydWN0b3IoYSl7dGhpcy5wcmV2aW91c0luZm9XaW5kb3c9ITE7dGhpcy5vcHRpb25zPXtlbGVtZW50OmEmJmEuZWxlbWVudD9hLmVsZW1lbnQ6IiIsY2VudGVyOmEmJmEuY2VudGVyP2EuY2VudGVyOntsYXQ6NDUuNDY3Mjc3LGxuZzotNzMuODM0NTI2fSxjZW50ZXJPZmZzZXQ6YSYmYS5jZW50ZXJPZmZzZXQ\/YS5jZW50ZXJPZmZzZXQ6e3g6MCx5OjB9LHpvb206YSYmYS56b29tP2Euem9vbTo5LGFkZHJlc3NlczphJiZhLmFkZHJlc3Nlcz9hLmFkZHJlc3NlczpbXSxvbkJlZm9yZUluaXQ6YSYmYS5vbkJlZm9yZUluaXQ\/YS5vbkJlZm9yZUluaXQ6ZnVuY3Rpb24oKXt9LG9uQWZ0ZXJJbml0OmEmJmEub25BZnRlckluaXQ\/YS5vbkFmdGVySW5pdDpmdW5jdGlvbigpe30sb25BZnRlck1hcmtlckNyZWF0ZWQ6YSYmYS5vbkFmdGVyTWFya2VyQ3JlYXRlZD9hLm9uQWZ0ZXJNYXJrZXJDcmVhdGVkOmZ1bmN0aW9uKCl7fX19c3RhdGljIHNldEdvb2dsZU1hcCgpe3ZhciBhPQowLGU9ZnVuY3Rpb24oKXtnb29nbGUubWFwcy5NYXAucHJvdG90eXBlLnNldENlbnRlcldpdGhPZmZzZXQ9ZnVuY3Rpb24oayxnLGwpe3ZhciBjPXRoaXMsYj1uZXcgZ29vZ2xlLm1hcHMuT3ZlcmxheVZpZXc7Yi5vbkFkZD1mdW5jdGlvbigpe3ZhciBmPXRoaXMuZ2V0UHJvamVjdGlvbigpLGQ9Zi5mcm9tTGF0TG5nVG9Db250YWluZXJQaXhlbChrKTtkLngrPWc7ZC55Kz1sO2Muc2V0Q2VudGVyKGYuZnJvbUNvbnRhaW5lclBpeGVsVG9MYXRMbmcoZCkpfTtiLmRyYXc9ZnVuY3Rpb24oKXt9O2Iuc2V0TWFwKHRoaXMpfX07aWYoInVuZGVmaW5lZCIhPT10eXBlb2YgZ29vZ2xlKWUoKTtlbHNlIHZhciBoPXNldEludGVydmFsKGZ1bmN0aW9uKCl7ND5hPyJ1bmRlZmluZWQiIT09dHlwZW9mIGdvb2dsZT8oY2xlYXJJbnRlcnZhbChoKSxlKCkpOmErKzpjbGVhckludGVydmFsKGgpfSwxRTMpfWluaXQoKXt2YXIgYT10aGlzLGU9YS5vcHRpb25zLmNlbnRlck9mZnNldC54P2Eub3B0aW9ucy5jZW50ZXJPZmZzZXQueDoKMCxoPWEub3B0aW9ucy5jZW50ZXJPZmZzZXQueT9hLm9wdGlvbnMuY2VudGVyT2Zmc2V0Lnk6MCxrPW5ldyBnb29nbGUubWFwcy5MYXRMbmdCb3VuZHM7YS5vcHRpb25zLm9uQmVmb3JlSW5pdCgpO2lmKGEub3B0aW9ucy5hZGRyZXNzZXMubGVuZ3RoKXt2YXIgZz1hLm9wdGlvbnMuY2VudGVyLGw9bmV3IGdvb2dsZS5tYXBzLkdlb2NvZGVyLGM9bmV3IGdvb2dsZS5tYXBzLk1hcChkb2N1bWVudC5nZXRFbGVtZW50QnlJZChhLm9wdGlvbnMuZWxlbWVudCkse3pvb206YS5vcHRpb25zLnpvb20sY2VudGVyOmEub3B0aW9ucy5jZW50ZXIsbWFwVHlwZUlkOmdvb2dsZS5tYXBzLk1hcFR5cGVJZC5ST0FETUFQLGdlc3R1cmVIYW5kbGluZzoiZ3JlZWR5IixzY3JvbGx3aGVlbDohMSxtYXBUeXBlQ29udHJvbDohMX0pO2dvb2dsZS5tYXBzLmV2ZW50LmFkZExpc3RlbmVyT25jZShjLCJpZGxlIixmdW5jdGlvbigpe2Eub3B0aW9ucy5hZGRyZXNzZXMubWFwKGZ1bmN0aW9uKGIsZixkKXtmPWZ1bmN0aW9uKG4sCnEpe3RyeXtpZihxPT1nb29nbGUubWFwcy5HZW9jb2RlclN0YXR1cy5PSyl7ay5leHRlbmQoblswXS5nZW9tZXRyeS5sb2NhdGlvbik7Yy5maXRCb3VuZHMoayk7Yy5zZXRab29tKGEub3B0aW9ucy56b29tKTtnPWMuZ2V0Qm91bmRzKCkuZ2V0Q2VudGVyKCk7Yy5zZXRDZW50ZXJXaXRoT2Zmc2V0KGcsZSxoKTt2YXIgcD1uZXcgZ29vZ2xlLm1hcHMuSW5mb1dpbmRvdyh7Y29udGVudDpiLmluZm93aW5kb3d9KSxtPW5ldyBnb29nbGUubWFwcy5NYXJrZXIoe21hcDpjLHBvc2l0aW9uOm5bMF0uZ2VvbWV0cnkubG9jYXRpb24sdGl0bGU6Yi50aXRsZSxpY29uOmIuaWNvbn0pO20uYWRkTGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbigpe2EucHJldmlvdXNJbmZvV2luZG93JiZhLnByZXZpb3VzSW5mb1dpbmRvdy5jbG9zZSgpO2EucHJldmlvdXNJbmZvV2luZG93PXA7cC5vcGVuKGMsbSl9KTthLm9wdGlvbnMub25BZnRlck1hcmtlckNyZWF0ZWQoYixtKX19Y2F0Y2gocil7Y29uc29sZS5sb2cocil9fTsKYS5oYXNMYXQoYikmJmEuaGFzTG5nKGIpPyhkPW5ldyBnb29nbGUubWFwcy5MYXRMbmcoTnVtYmVyKGIuZ2VvbWV0cnkubG9jYXRpb24ubGF0KSxOdW1iZXIoYi5nZW9tZXRyeS5sb2NhdGlvbi5sbmcpKSxmKFt7Z2VvbWV0cnk6e2xvY2F0aW9uOmR9fV0sIk9LIikpOmwuZ2VvY29kZSh7YWRkcmVzczpiLmFkZHJlc3N9LGYpfSl9KTtnb29nbGUubWFwcy5ldmVudC5hZGREb21MaXN0ZW5lcih3aW5kb3csInJlc2l6ZSIsZnVuY3Rpb24oKXtjLnNldENlbnRlcldpdGhPZmZzZXQoZyxlLGgpfSl9YS5vcHRpb25zLm9uQWZ0ZXJJbml0KCl9X2hhc0xhdExuZ1Byb3AoYSxlKXtyZXR1cm4gYS5oYXNPd25Qcm9wZXJ0eSgiZ2VvbWV0cnkiKSYmYS5nZW9tZXRyeS5oYXNPd25Qcm9wZXJ0eSgibG9jYXRpb24iKSYmYS5nZW9tZXRyeS5sb2NhdGlvbi5oYXNPd25Qcm9wZXJ0eShlKSYmImZhbHNlIiE9YS5nZW9tZXRyeS5sb2NhdGlvbltlXT8hMDohMX1oYXNMYXQoYSl7cmV0dXJuIHRoaXMuX2hhc0xhdExuZ1Byb3AoYSwKImxhdCIpfWhhc0xuZyhhKXtyZXR1cm4gdGhpcy5faGFzTGF0TG5nUHJvcChhLCJsbmciKX19OwovKiogL2pzL2Zvb3RlcldpZGdldC5qcyAqKi8KdmFyIF9fX2QyY19mb290ZXJXaWRnZXRqc19jX29uPSIyMDI2LTAxLTEyIDEwOjE0OjA3IjsndXNlIHN0cmljdCc7aW5WaWV3RXhlYygiI2Zvb3RlcldyYXBwZXIiLGZ1bmN0aW9uKCl7dmFyIGI9ZnVuY3Rpb24oKXt2YXIgYT0kKCIjdGFyZ2V0UGFnZSIpLnZhbCgpOyJ1bmRlZmluZWQiPT1hJiYoYT0iVU5LTk9XTiIpO2dhVHJhY2soImMuX3RyYWNrRXZlbnQiLCJGb290ZXItTWFwLUxvYWQiLCJEZXNrdG9wIixhLDEpfTt0cnl7R29vZ2xlTWFwc1dyYXBwZXIuc2V0R29vZ2xlTWFwKCk7dmFyIGM9JCgiI2Zvb3Rlckdvb2dsZU1hcFpvb20iKS52YWwoKSxmPTE8cGFyc2VJbnQoYykmJjE4Pj1wYXJzZUludChjKT9wYXJzZUludChjKTo5LGU9bmV3IEdvb2dsZU1hcHNXcmFwcGVyKHtlbGVtZW50OiJmb290ZXJHb29nbGVNYXAiLGFkZHJlc3NlczoidW5kZWZpbmVkIiE9dHlwZW9mIGZvb3Rlck1hcEFkZHJlc3Nlcz9mb290ZXJNYXBBZGRyZXNzZXM6W10sY2VudGVyT2Zmc2V0Ont4Oi0zNTAseTowfSx6b29tOmYsb25CZWZvcmVJbml0OmZ1bmN0aW9uKCl7YigpfSxvbkFmdGVySW5pdDpmdW5jdGlvbigpe2lmKCJ1bmRlZmluZWQiIT0KdHlwZW9mIGZvb3Rlck1hcEFkZHJlc3NlcyYmZm9vdGVyTWFwQWRkcmVzc2VzLmxlbmd0aCkkKGRvY3VtZW50KS5vbigiY2xpY2siLCIubWFwX2RlYWxlcl9saXN0X2l0ZW0iLGZ1bmN0aW9uKCl7JCgiLm9wZW5faG91cnNfbWFwX2FjdGl2ZSIpLnNsaWRlVG9nZ2xlKCJzbG93Iik7JCgiLm1hcF9vcGVuX2hvdXJzX2V4cGFuZF9hcnJvdyIpLnJlbW92ZUNsYXNzKCJmYS1hbmdsZS11cCIpOyQoIi5tYXBfb3Blbl9ob3Vyc19leHBhbmRfYXJyb3ciKS5hZGRDbGFzcygiZmEtYW5nbGUtZG93biIpO3ZhciBhPSQodGhpcykuZmluZCgiLmV4cGFuZGFibGVfY29udGVudF9tdWx0aWxvY2F0aW9uIikuZXEoMCkuaGFzQ2xhc3MoIm9wZW5faG91cnNfbWFwX2FjdGl2ZSIpOyQoIi5vcGVuX2hvdXJzX21hcF9hY3RpdmUiKS5yZW1vdmVDbGFzcygib3Blbl9ob3Vyc19tYXBfYWN0aXZlIik7YXx8KCQodGhpcykuZmluZCgiLmV4cGFuZGFibGVfY29udGVudF9tdWx0aWxvY2F0aW9uIikuZXEoMCkuc2xpZGVUb2dnbGUoInNsb3ciKSwKJCh0aGlzKS5maW5kKCIuZXhwYW5kYWJsZV9jb250ZW50X211bHRpbG9jYXRpb24iKS5lcSgwKS5hZGRDbGFzcygib3Blbl9ob3Vyc19tYXBfYWN0aXZlIiksJCh0aGlzKS5maW5kKCIubWFwX29wZW5faG91cnNfZXhwYW5kX2Fycm93IikucmVtb3ZlQ2xhc3MoImZhLWFuZ2xlLWRvd24iKSwkKHRoaXMpLmZpbmQoIi5tYXBfb3Blbl9ob3Vyc19leHBhbmRfYXJyb3ciKS5hZGRDbGFzcygiZmEtYW5nbGUtdXAiKSl9KTtlbHNlICQoIiNmb290ZXJHb29nbGVNYXBDb250YWluZXIiKS5oaWRlKCl9LG9uQWZ0ZXJNYXJrZXJDcmVhdGVkOmZ1bmN0aW9uKGEsZyl7dmFyIGQ9YS5vcGVuaW5nSG91cnM\/YS5vcGVuaW5nSG91cnM6IiI7ZD0nPGRpdiBjbGFzcz0ibWFwX2RlYWxlcl9saXN0X2l0ZW0iIGRhdGEtdHM9IicrYS5zYWZlVGl0bGUrJyIgIGRhdGEtbmFtZT0iJythLnRpdGxlKyciPjxzcGFuIGNsYXNzPSJtYXJrZXJTcGFuIj48L3NwYW4+PHNwYW4gY2xhc3M9Im1hcF9kZWFsZXJfbGlzdF9pdGVtX25hbWUiPicrCmEudGl0bGUrIjwvc3Bhbj4iKyhkPyc8c3BhbiBjbGFzcz0ibWFwX29wZW5faG91cnNfZXhwYW5kX2Fycm93IGZhIGZhLWFuZ2xlLWRvd24iPjwvc3Bhbj4nOiIiKSskKCI8ZGl2PiIpLmh0bWwoZCkudGV4dCgpKyI8L2Rpdj4iOyQoIiNtYXBfZGVhbGVyX2xpc3QiKS5hcHBlbmQoZCk7JCgnW2RhdGEtdHM9IicrYS5zYWZlVGl0bGUrJyJdJykub24oImNsaWNrIixmdW5jdGlvbigpeyQoIi5tYXBfZGVhbGVyX2xpc3RfaXRlbV9uYW1lIikucmVtb3ZlQ2xhc3MoIm1hcF9kZWFsZXJfbGlzdF9pdGVtX25hbWVfYWN0aXZlIik7JCh0aGlzKS5maW5kKCIubWFwX2RlYWxlcl9saXN0X2l0ZW1fbmFtZSIpLmFkZENsYXNzKCJtYXBfZGVhbGVyX2xpc3RfaXRlbV9uYW1lX2FjdGl2ZSIpO2dvb2dsZS5tYXBzLmV2ZW50LnRyaWdnZXIoZywiY2xpY2siKX0pfX0pOyQoIiNmb290ZXJHb29nbGVNYXAiKS5sZW5ndGg\/InVuZGVmaW5lZCIhPT10eXBlb2YgZ29vZ2xlP2UuaW5pdCgpOnNldFRpbWVvdXQoZnVuY3Rpb24oKXtlLmluaXQoKX0sCjFFMyk6JCgiI2Zvb3Rlckdvb2dsZU1hcEhvdXJzQ29udGFpbmVyIikubGVuZ3RoJiZiKCl9Y2F0Y2goYSl7Y29uc29sZS5sb2coYSl9fSk7JChmdW5jdGlvbigpeyQoIi5jRXhwZW5kTGlzdCBCVVRUT04iKS5vbigiY2xpY2siLGZ1bmN0aW9uKCl7dmFyIGI9JCh0aGlzKS5jbG9zZXN0KCJkaXYuY0Zvb3RlckNhckxpbmtzIik7Yi5sZW5ndGgmJihiLmhhc0NsYXNzKCJjTGlzdEV4cGVuZGVkIil8fGIuYWRkQ2xhc3MoImNMaXN0RXhwZW5kZWQiKS5maW5kKCIuY0V4cGVuZExpc3QiKS5oaWRlKCkpfSk7aWYoJCgiI2ZibGlrZS1jb250YWluZXIiKS5sZW5ndGgpe2IoLTEpO2Z1bmN0aW9uIGIoYyl7JCgiI2ZibGlrZS1jb250YWluZXIiKS5maW5kKCJpZnJhbWUiKS5hdHRyKCJ0YWJpbmRleCIsYyk7JCgiI2ZibGlrZS1jb250YWluZXIiKS5maW5kKCJpZnJhbWUiKS5hdHRyKCJ0YWJpbmRleCIpIT1jJiZzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7YihjKX0sMUUzKX19fSk7Ci8qKiAvanMvb3BlbmhvdXJzLmpzICoqLwp2YXIgX19fZDJjX29wZW5ob3Vyc2pzX2Nfb249IjIwMjUtMDUtMjMgMTc6MTE6MDMiOyd1c2Ugc3RyaWN0Jzt2YXIgX19fZDJjX29wZW5ob3Vyc2pzX2Nfb249IjIwMjUtMDMtMTggMTQ6MzA6MDgiOyJ1c2Ugc3RyaWN0IjsKdmFyIE9wZW5Ib3Vycz1mdW5jdGlvbihiKXtmdW5jdGlvbiBjKGQpe3ZhciBlPSQodGhpcykuc2libGluZ3MoIi5leHBhbmRhYmxlX2NvbnRlbnQiKS5lcSgwKS5oYXNDbGFzcygib3Blbl9ob3Vyc19tYXBfYWN0aXZlIik7JChkLmN1cnJlbnRUYXJnZXQpLmZpbmQoIi5tYXBfb3Blbl9ob3Vyc19leHBhbmRfYXJyb3ciKS50b2dnbGVDbGFzcygiZXhwYW5kZWQiKTskKHRoaXMpLnBhcmVudHMoYS5vcHRpb25zLmNvbnRhaW5lcikuZmluZCgiLm9wZW5faG91cnNfbWFwX2FjdGl2ZSIpLnNsaWRlVG9nZ2xlKCJzbG93Iik7JCh0aGlzKS5wYXJlbnRzKGEub3B0aW9ucy5jb250YWluZXIpLmZpbmQoIi5vcGVuX2hvdXJzX21hcF9hY3RpdmUiKS5yZW1vdmVDbGFzcygib3Blbl9ob3Vyc19tYXBfYWN0aXZlIik7ZXx8KCQodGhpcykuc2libGluZ3MoIi5leHBhbmRhYmxlX2NvbnRlbnQiKS5lcSgwKS5zbGlkZVRvZ2dsZSgic2xvdyIpLCQodGhpcykuc2libGluZ3MoIi5leHBhbmRhYmxlX2NvbnRlbnQiKS5lcSgwKS5hZGRDbGFzcygib3Blbl9ob3Vyc19tYXBfYWN0aXZlIikpfQp2YXIgYT10aGlzO2Eub3B0aW9ucz1iO2EuJGNvbnRhaW5lcj0kKGEub3B0aW9ucy5jb250YWluZXIpO2EuaW5pdD1mdW5jdGlvbigpe2EuJGNvbnRhaW5lci5maW5kKCIubWFwX29wZW5faG91cnNfZXhwYW5kIikub24oImNsaWNrIGF1dG9fb3BlbiIsYyk7MDxhLiRjb250YWluZXIuZmluZCgiLm1hcF9vcGVuX2hvdXJzX2V4cGFuZC5kZWZhdWx0X29wZW5lZCIpLmxlbmd0aD9hLiRjb250YWluZXIuZmluZCgiLm1hcF9vcGVuX2hvdXJzX2V4cGFuZC5kZWZhdWx0X29wZW5lZCIpLnRyaWdnZXIoImF1dG9fb3BlbiIpOjIhPSQoIi5leHBhbmRhYmxlX2NvbnRlbnQiKS5sZW5ndGh8fDA8JCgiLmV4cGFuZGFibGVfY29udGVudCIpLmZpbmQoIi52aXNpdENvbnRhY3RIZWFkZXIiKS5sZW5ndGg\/YS5vcHRpb25zLmhhc093blByb3BlcnR5KCJhdXRvT3BlbiIpJiYhYS5vcHRpb25zLmF1dG9PcGVufHxhLiRjb250YWluZXIuZmluZCgiLm1hcF9vcGVuX2hvdXJzX2V4cGFuZCIpLmZpcnN0KCkudHJpZ2dlcigiYXV0b19vcGVuIik6CiQoIi5leHBhbmRhYmxlX2NvbnRlbnQiKS5zbGlkZVRvZ2dsZSgic2xvdyIpLmFkZENsYXNzKCJvcGVuX2hvdXJzX21hcF9hY3RpdmUiKX07cmV0dXJuIGF9OwovKiogL2pzL2dlb0xvY2F0aW9uLmpzICoqLwp2YXIgX19fZDJjX2dlb0xvY2F0aW9uanNfY19vbj0iMjAyNS0wNS0yMyAxNzoxMDoyNCI7J3VzZSBzdHJpY3QnO3ZhciBfX19kMmNfZ2VvTG9jYXRpb25qc19jX29uPSIyMDI1LTAyLTI2IDA5OjMwOjExIjsidXNlIHN0cmljdCI7CnZhciBnZW9Mb2NhdG9yPWZ1bmN0aW9uKGYpe3ZhciBhPXRoaXM7YS5tYXBzQVBJS2V5PW51bGw7YS51c2VIVE1MNT0hMDthLmdlb2NvZGVMb2NhdGlvbj0hMDthLmF0dGVtcHRQYWdlTnVtPTA7YS50cmFja0xvY2F0aW9uR0E9ITE7YS5mb3JjZUdlb2xvY0F0dGVtcHQ9ITE7YS5zaG93UG9pbnRlck1lc3NhZ2U9ITA7YS50aW1lb3V0cz1bXTthLmJyb3dzZXI9IiI7YS5pc01vYmlsZT0iMSI9PSQoIiNpc21vYmlsZSIpLnZhbCgpO2EuZ2VvbG9jU3RhdHVzZXM9e09LOiJTVUNDRVNTIixSRUZVU0VEOiJSRUZVU0VEIixDT09LSUVfQUNDRVBURUQ6IlBSRV9BQ0NFUFRFRCIsQ09PS0lFX1JFRlVTRUQ6IlBSRV9SRUZVU0VEIixDQU5DRUxFRDoiQ0FOQ0VMRUQiLEZBSUw6IkZBSUxFRCJ9O2EuZ2VvbG9jRXJyb3JzPXtJTlZBTElEX1JFU1BPTlNFOiJJTlZBTElEX1JFU1BPTlNFIixDT05ORUNUSU9OX0ZBSUxFRDoiQ09OTkVDVElPTl9GQUlMRUQiLEdFT0xPQ19GQUlMRUQ6IkdFT0xPQ19GQUlMRUQiLApHRU9MT0NfUkVGVVNFRDoiR0VPTE9DX1JFRlVTRUQiLEdFT0NPREVfRkFJTEVEOiJHRU9DT0RFX0ZBSUxFRCJ9O2EuZ2VvbG9jUmVzdWx0PXtyZXN1bHQ6MCxnZW9sb2NfZGF0ZToiIixnZW9sb2Nfc3RhdHVzOmEuZ2VvbG9jU3RhdHVzZXMuRkFJTCxnZW9jb2RlX3N0YXR1czowLGxhdGl0dWRlOjAsbG9uZ2l0dWRlOjAsYWNjdXJhY3k6MCxwb3N0YWxfY29kZToiIixnZW9jb2RlX2FkZHJlc3M6IiIsZ2VvY29kZV9hZGRyZXNzX3N0cjoiIn07YS5nZW9sb2NDYWxsYmFjaz1mdW5jdGlvbigpe2YoYS5nZW9sb2NSZXN1bHQpO2Y9ZnVuY3Rpb24oKXtjb25zb2xlLmxvZygiR2VvIGNhbGxiYWNrIGFscmVhZHkgZmlyZWQuIil9fTthLl9pbml0PWZ1bmN0aW9uKCl7YS5pc01vYmlsZSYmKGEuc2hvd1BvaW50ZXJNZXNzYWdlPSExKTtpZigwPGEuYXR0ZW1wdFBhZ2VOdW0pe3ZhciBiPW51bGwhPUNvb2tpZXMuZ2V0KCJnZW9sb2NQYWdlVmlld3MiKT9wYXJzZUludChDb29raWVzLmdldCgiZ2VvbG9jUGFnZVZpZXdzIikpKwoxOjE7Q29va2llcy5zZXQoImdlb2xvY1BhZ2VWaWV3cyIsYjxhLmF0dGVtcHRQYWdlTnVtP2I6MCxudWxsLCIvIik7aWYoYjxhLmF0dGVtcHRQYWdlTnVtKXJldHVybiBhLmdlb2xvY1Jlc3VsdC5yZXN1bHQ9MCxhLmdlb2xvY1Jlc3VsdC5zdGF0dXM9YS5nZW9sb2NTdGF0dXNlcy5DQU5DRUxFRCxhLmdlb2xvY0NhbGxiYWNrKCksITF9aWYoIWEuZm9yY2VHZW9sb2NBdHRlbXB0JiZDb29raWVzLmdldCgiZ2VvbG9jUHJvY2Vzc2VkIikpcmV0dXJuIGI9SlNPTi5wYXJzZShDb29raWVzLmdldCgiZ2VvbG9jUHJvY2Vzc2VkIikpLCIxIj09Yi5hY2NlcHRlZD8oYS5nZW9sb2NSZXN1bHQucmVzdWx0PTEsYS5nZW9sb2NSZXN1bHQuZ2VvbG9jX2RhdGU9Yi5nZW9sb2NfZGF0ZSxhLmdlb2xvY1Jlc3VsdC5nZW9sb2Nfc3RhdHVzPWEuZ2VvbG9jU3RhdHVzZXMuQ09PS0lFX0FDQ0VQVEVELGEuZ2VvbG9jUmVzdWx0LmxhdGl0dWRlPWIubGF0aXRpdWRlLGEuZ2VvbG9jUmVzdWx0LmxvbmdpdHVkZT0KYi5sb25naXR1ZGUsYS5nZW9sb2NSZXN1bHQuZ2VvY29kZV9hZGRyZXNzPWIuYWRkcmVzcyxhLmdlb2xvY1Jlc3VsdC5nZW9jb2RlX2FkZHJlc3Nfc3RyPWIuYWRkcmVzc19zdHIpOihhLmdlb2xvY1Jlc3VsdC5yZXN1bHQ9MCxhLmdlb2xvY1Jlc3VsdC5zdGF0dXM9YS5nZW9sb2NTdGF0dXNlcy5DT09LSUVfUkVGVVNFRCksYS5nZW9sb2NDYWxsYmFjaygpLCExO2lmKCJodHRwczoiIT1sb2NhdGlvbi5wcm90b2NvbClyZXR1cm4gYS5nZW9sb2NSZXN1bHQucmVzdWx0PTAsYS5nZW9sb2NSZXN1bHQuc3RhdHVzPWEuZ2VvbG9jU3RhdHVzZXMuQ0FOQ0VMRUQsYS5nZW9sb2NDYWxsYmFjaygpLCExO2lmKGx0X0lFOXx8IW5hdmlnYXRvci5nZW9sb2NhdGlvbilhLnVzZUhUTUw1PSExO25hdmlnYXRvci5icm93c2VyPWZ1bmN0aW9uKCl7dmFyIGM9bmF2aWdhdG9yLnVzZXJBZ2VudCxkPWMubWF0Y2goLyhvcGVyYXxjaHJvbWV8c2FmYXJpfGZpcmVmb3h8bXNpZXx0cmlkZW50KD89XC8pKVwvP1xzKihcZCspL2kpfHwKW107aWYoL3RyaWRlbnQvaS50ZXN0KGRbMV0pKXt2YXIgZT0vXGJydlsgOl0rKFxkKykvZy5leGVjKGMpfHxbXTtyZXR1cm4iSUV4cGxvcmVyICIrKGVbMV18fCIiKX1pZigiQ2hyb21lIj09PWRbMV0mJihlPWMubWF0Y2goL1xiT1BSXC8oXGQrKS8pLG51bGwhPWUpKXJldHVybiJPcGVyYSAiK2VbMV07ZD1kWzJdP1tkWzFdLGRbMl1dOltuYXZpZ2F0b3IuYXBwTmFtZSxuYXZpZ2F0b3IuYXBwVmVyc2lvbiwiLT8iXTtudWxsIT0oZT1jLm1hdGNoKC92ZXJzaW9uXC8oXGQrKS9pKSkmJmQuc3BsaWNlKDEsMSxlWzFdKTtyZXR1cm4gZC5qb2luKCIgIil9KCk7YS5icm93c2VyPW5hdmlnYXRvci5icm93c2VyO3JldHVybiEwfTthLmhhbmRsZUxvY2F0aW9uU3VjY2Vzcz1mdW5jdGlvbigpe3ZhciBiPSJMYXRpdHVkZTogIithLmdlb2xvY1Jlc3VsdC5sYXRpdHVkZSsiOyBMb25naXR1ZGU6ICIrYS5nZW9sb2NSZXN1bHQubG9uZ2l0dWRlOzM8PWEuZ2VvbG9jUmVzdWx0LnBvc3RhbF9jb2RlLmxlbmd0aCYmCihiPWEuZ2VvbG9jUmVzdWx0LnBvc3RhbF9jb2RlKTthLnRyYWNrTG9jYXRpb24oIkdlb2xvY2F0aW9uIiwiQWNjZXB0ZWQiLGIpO2EuZ2VvbG9jUmVzdWx0Lmdlb2xvY19kYXRlPShuZXcgRGF0ZSkuZ2V0VGltZSgpO2I9bmV3IERhdGU7Yi5zZXRIb3VycygyMyw1OSw1OSwwKTtDb29raWVzLnNldCgiZ2VvbG9jUHJvY2Vzc2VkIixKU09OLnN0cmluZ2lmeSh7YWNjZXB0ZWQ6MSxnZW9sb2NfZGF0ZTphLmdlb2xvY1Jlc3VsdC5nZW9sb2NfZGF0ZSxsYXRpdHVkZTphLmdlb2xvY1Jlc3VsdC5sYXRpdHVkZSxsb25naXR1ZGU6YS5nZW9sb2NSZXN1bHQubG9uZ2l0dWRlLHBvc3RhbF9jb2RlOmEuZ2VvbG9jUmVzdWx0LnBvc3RhbF9jb2RlLGFjY3VyYWN5OmEuZ2VvbG9jUmVzdWx0LmFjY3VyYWN5LGFkZHJlc3M6YS5nZW9sb2NSZXN1bHQuZ2VvY29kZV9hZGRyZXNzLGFkZHJlc3Nfc3RyOmEuZ2VvbG9jUmVzdWx0Lmdlb2NvZGVfYWRkcmVzc19zdHJ9KSxiLCIvIik7YS5nZW9sb2NDYWxsYmFjaygpfTsKYS5oYW5kbGVMb2NhdGlvbkVycm9yPWZ1bmN0aW9uKGIsYyl7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBjfHxudWxsPT1jKWM9IiI7YS5nZW9sb2NSZXN1bHQucmVzdWx0PTA7YS5nZW9sb2NSZXN1bHQuZ2VvbG9jX2RhdGU9KG5ldyBEYXRlKS5nZXRUaW1lKCk7YS5nZW9sb2NSZXN1bHQuZ2VvbG9jX3N0YXR1cz1hLmdlb2xvY1N0YXR1c2VzLkZBSUw7c3dpdGNoKGIpe2Nhc2UgYS5nZW9sb2NFcnJvcnMuSU5WQUxJRF9SRVNQT05TRTpjPSJHZW9sb2MgZXJyb3IgbWVzYWdlOiBJbnZhbGlkIHJlc3BvbnNlIGRhdGEiO2JyZWFrO2Nhc2UgYS5nZW9sb2NFcnJvcnMuQ09OTkVDVElPTl9GQUlMRUQ6Yz0iR2VvbG9jIGVycm9yIG1lc2FnZTogQ29uZWN0aW9uIGZhaWxlZCI7YnJlYWs7Y2FzZSBhLmdlb2xvY0Vycm9ycy5HRU9MT0NfUkVGVVNFRDphLmdlb2xvY1Jlc3VsdC5nZW9sb2Nfc3RhdHVzPWEuZ2VvbG9jU3RhdHVzZXMuUkVGVVNFRDticmVhaztjYXNlIGEuZ2VvbG9jRXJyb3JzLkdFT0xPQ19GQUlMRUQ6YnJlYWs7CmNhc2UgYS5nZW9sb2NFcnJvcnMuR0VPQ09ERV9GQUlMRUQ6Yz0iR2VvbG9jIGVycm9yIG1lc2FnZTogSW52YWxpZCByZXNwb25zZSBkYXRhIjticmVhaztkZWZhdWx0OmM9IlVua25vd24gZXJyb3Igb2N1cnJlZCJ9YS50cmFja0xvY2F0aW9uKCJHZW9sb2NhdGlvbiIsIkZhaWxlZCIsYyk7YS5nZW9sb2NDYWxsYmFjaygpfTthLmdldExvY2F0aW9uPWZ1bmN0aW9uKCl7YS5faW5pdCgpJiYoMD09YS51c2VIVE1MNT9hLmdldEdvb2dsZVNlcnZpY2VMb2NhdGlvbigpOmEuZ2V0SFRNTDVMb2NhdGlvbigpKX07YS5nZXRHb29nbGVTZXJ2aWNlTG9jYXRpb249ZnVuY3Rpb24oKXthLmhhbmRsZUxvY2F0aW9uU3VjY2VzcygpO3JldHVybiExfTthLmdldEhUTUw1TG9jYXRpb249ZnVuY3Rpb24oKXthLnNob3dHZW9sb2NNc2coKTtuYXZpZ2F0b3IuZ2VvbG9jYXRpb24uZ2V0Q3VycmVudFBvc2l0aW9uKGZ1bmN0aW9uKGIpe2EuaGlkZUdlb2xvY01zZygpO2EuY2xlYXJTZXRUaW1lb3V0cygpOwphLmdlb2xvY1Jlc3VsdC5yZXN1bHQ9MTthLmdlb2xvY1Jlc3VsdC5nZW9sb2Nfc3RhdHVzPWEuZ2VvbG9jU3RhdHVzZXMuT0s7YS5nZW9sb2NSZXN1bHQubGF0aXR1ZGU9Yi5jb29yZHMubGF0aXR1ZGU7YS5nZW9sb2NSZXN1bHQubG9uZ2l0dWRlPWIuY29vcmRzLmxvbmdpdHVkZTthLmdlb2xvY1Jlc3VsdC5hY2N1cmFjeT1iLmNvb3Jkcy5hY2N1cmFjeTtpZigxIT1hLmdlb2NvZGVMb2NhdGlvbilyZXR1cm4gYS5oYW5kbGVMb2NhdGlvblN1Y2Nlc3MoKSwhMTthLmxhdExvbmdHZW9jb2RlKGIuY29vcmRzLmxhdGl0dWRlLGIuY29vcmRzLmxvbmdpdHVkZSl9LGZ1bmN0aW9uKGIpe2NvbnNvbGUubG9nKGIpO3ZhciBjPSJHZW9sb2MgZXJyb3IgY29kZTogIitiLmNvZGUrIiwgZ2VvbG9jIGVycm9yIG1lc2FnZTogIitiLm1lc3NhZ2U7YS5oaWRlR2VvbG9jTXNnKCk7YS5jbGVhclNldFRpbWVvdXRzKCk7Q29va2llcy5zZXQoImdlb2xvY1Byb2Nlc3NlZCIsSlNPTi5zdHJpbmdpZnkoe2FjY2VwdGVkOjB9KSwKMSwiLyIpO3ZhciBkPWEuZ2VvbG9jRXJyb3JzLkdFT0xPQ19SRUZVU0VEOzEhPXBhcnNlSW50KGIuY29kZSkmJihkPWEuZ2VvbG9jRXJyb3JzLkdFT0xPQ19GQUlMRUQpO2EuaGFuZGxlTG9jYXRpb25FcnJvcihkLGMpfSx7dGltZW91dDoyNUUzfSl9O2EubGF0TG9uZ0dlb2NvZGU9ZnVuY3Rpb24oYixjKXthLmdlb2xvY1Jlc3VsdC5nZW9jb2RlX2FkZHJlc3M9YisifCIrYzthLmdlb2xvY1Jlc3VsdC5nZW9jb2RlX2FkZHJlc3Nfc3RyPSJMYXRpdHVkZTogIitiKyI7IExvbmdpdHVkZTogIitjO2EuaGFuZGxlTG9jYXRpb25TdWNjZXNzKCl9O2EudHJhY2tQb3N0YWw9ZnVuY3Rpb24oKXtpZigkY29va2llPUNvb2tpZXMuZ2V0KCJIVE1MNUdlbyIpKWlmKCRjb29raWU9SlNPTi5wYXJzZSgkY29va2llKSwkY29va2llLnBvc3RhbF9jb2RlKXJldHVybjtpZigidW5kZWZpbmVkIiE9PXR5cGVvZiBhLmdlb2xvY1Jlc3VsdC5wb3N0YWxfY29kZSYmIiIhPT1hLmdlb2xvY1Jlc3VsdC5wb3N0YWxfY29kZSl7dmFyIGI9CmEuZ2VvbG9jUmVzdWx0LnBvc3RhbF9jb2RlKyJ8IithLmdlb2xvY1Jlc3VsdC5hY2N1cmFjeTsidW5kZWZpbmVkIiE9dHlwZW9mIGFjdGl2ZVVzZXJQcm9maWxlTW5nJiYidW5kZWZpbmVkIiE9dHlwZW9mIGFjdGl2ZVVzZXJQcm9maWxlTW5nLmxvZ1BhZ2VWaWV3RXZlbnQ\/KCJ1bmRlZmluZWQiIT09dHlwZW9mIGRlYnVnJiZkZWJ1ZygiTG9nIEV2ZW50IixhLmdlb2xvY1Jlc3VsdC5wb3N0YWxfY29kZSwiSFRNTDVHZW8ucG9zdGFsIiksYWN0aXZlVXNlclByb2ZpbGVNbmcubG9nUGFnZVZpZXdFdmVudChiLCJIVE1MNUdlby5wb3N0YWwiKSk6InVuZGVmaW5lZCIhPT10eXBlb2YgZGVidWcmJmRlYnVnKCIhVU5MT0dHRUQgRVZFTlQhIixhLmdlb2xvY1Jlc3VsdC5wb3N0YWxfY29kZSwiSFRNTDVHZW8ucG9zdGFsIik7Yj1uZXcgRGF0ZTtiLnNldEhvdXJzKDIzLDU5LDU5LDApO0Nvb2tpZXMuc2V0KCJIVE1MNUdlbyIsSlNPTi5zdHJpbmdpZnkoe3Bvc3RhbF9jb2RlOjF9KSxiLCIvIil9fTsKYS5nZXRBZGRyZXNzQ29vcmQ9ZnVuY3Rpb24oYixjKXtyZXR1cm4hMX07YS50cmFja0xvY2F0aW9uPWZ1bmN0aW9uKGIsYyxkKXtpZighYS50cmFja0xvY2F0aW9uR0EpcmV0dXJuITF9O2EuY2xlYXJTZXRUaW1lb3V0cz1mdW5jdGlvbigpe2Zvcih2YXIgYj0wO2I8YS50aW1lb3V0cy5sZW5ndGg7YisrKWNsZWFyVGltZW91dChhLnRpbWVvdXRzW2JdKTthLnRpbWVvdXRzPVtdfTthLnNob3dHZW9sb2NNc2c9ZnVuY3Rpb24oKXtpZighYS5zaG93UG9pbnRlck1lc3NhZ2UpcmV0dXJuITE7YS5jbGVhclNldFRpbWVvdXRzKCk7dmFyIGI9c2V0VGltZW91dChmdW5jdGlvbigpe2dlb2xvY0ZhaWwoKX0sM0U0KTthLnRpbWVvdXRzLnB1c2goYik7aWYoLTE8YS5icm93c2VyLmluZGV4T2YoIkZpcmVmb3giKXx8LTE8YS5icm93c2VyLmluZGV4T2YoIklFIikpJCgiLmdlb2xvYy1tb2RhbC1iZyIpLm9mZigiY2xpY2siKS5vbigiY2xpY2siLGZ1bmN0aW9uKCl7Z2VvbG9jRmFpbCgpO2NsZWFyVGltZW91dChiKX0pLAokKCIjZ2VvbG9jYXRpb25Nc2ciKS5vZmYoImNsaWNrIikub24oImNsaWNrIixmdW5jdGlvbigpe2dlb2xvY0ZhaWwoKTtjbGVhclRpbWVvdXQoYil9KSwkKCIjZ2VvbG9jYXRpb25Nc2dJRSIpLm9mZigiY2xpY2siKS5vbigiY2xpY2siLGZ1bmN0aW9uKCl7Z2VvbG9jRmFpbCgpO2NsZWFyVGltZW91dChiKX0pO3ZhciBjPSJnZW9sb2NhdGlvbk1zZyIsZD0hMCxlPXt0b3A6IjAiLGxlZnQ6IjAifTtzd2l0Y2goITApe2Nhc2UgLTE8YS5icm93c2VyLmluZGV4T2YoIklFIik6ZT17Ym90dG9tOiIwcHgiLGxlZnQ6IjQzJSJ9O2M9Imdlb2xvY2F0aW9uTXNnSUUiO2JyZWFrO2Nhc2UgLTE8YS5icm93c2VyLmluZGV4T2YoIkZpcmVmb3giKTplPXt0b3A6IjkwcHgiLGxlZnQ6IjVweCJ9OyQoImltZy5idXR0b25fcG9pbnRlciIpLmNzcygibGVmdCIsIjc1cHgiKTskKCJpbWcuYnV0dG9uX3BvaW50ZXIiKS5jc3MoInRvcCIsIjM1cHgiKTstMT09JCgiI3R4dFVzZXJBZ2VudCIpLnZhbCgpLmluZGV4T2YoIldpbmRvd3MiKSYmCiQoImltZy5idXR0b25fcG9pbnRlciIpLmNzcygibGVmdCIsIjE3NXB4Iik7YnJlYWs7Y2FzZSAtMTxhLmJyb3dzZXIuaW5kZXhPZigiQ2hyb21lIik6ZT17dG9wOiI2NXB4IixsZWZ0OiIwcHgifTskKCJpbWcuYnV0dG9uX3BvaW50ZXIiKS5jc3MoImxlZnQiLCIyMTBweCIpOy0xPT0kKCIjdHh0VXNlckFnZW50IikudmFsKCkuaW5kZXhPZigiV2luZG93cyIpJiYoZT17dG9wOiI3NXB4IixsZWZ0OiI1MHB4In0sJCgiaW1nLmJ1dHRvbl9wb2ludGVyIikuY3NzKCJsZWZ0IiwiMjQwcHgiKSk7YnJlYWs7Y2FzZSAtMTxhLmJyb3dzZXIuaW5kZXhPZigiU2FmYXJpIik6ZT17dG9wOiI1MTVweCIsbGVmdDoiMzUlIn07ZD0hMDticmVhaztjYXNlIC0xPGEuYnJvd3Nlci5pbmRleE9mKCJPcGVyYSIpOmU9e3RvcDoiMCIsbGVmdDoiMCJ9O2Q9ITE7YnJlYWs7ZGVmYXVsdDplPXt0b3A6IjAiLGxlZnQ6IjAifSxkPSExfWQmJigidW5kZWZpbmVkIiE9dHlwZW9mICQoIi5yZXZlYWwtbW9kYWwtYmciKS52YWwoKSYmCiJibG9jayI9PSQoIi5yZXZlYWwtbW9kYWwtYmciKS5jc3MoImRpc3BsYXkiKSYmJCgiLnJldmVhbC1tb2RhbC1iZyIpLmhpZGUoKSwkKCIuZ2VvbG9jLW1vZGFsLWJnIikuc2hvdygpLCQoIiMiK2MpLmNzcyhlKSwkKCIjIitjKS5zaG93KCksInVuZGVmaW5lZCI9PXR5cGVvZiBzaXRlU2VjdGlvbiYmKHNpdGVTZWN0aW9uPSJVTkRFRklORUQiKSxhLnRyYWNrTG9jYXRpb24oIkdlb2xvY2F0aW9uIiwiU2VjdGlvbi0iK3NpdGVTZWN0aW9uLCIiKSl9O2EuaGlkZUdlb2xvY01zZz1mdW5jdGlvbihiKXtpZighYS5zaG93UG9pbnRlck1lc3NhZ2UpcmV0dXJuITE7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBifHxudWxsPT1iKWI9ITE7JCgiLmdlb2xvYy1tb2RhbC1iZyIpLmhpZGUoKTtifHwoJCgiI2dlb2xvY2F0aW9uTXNnIikuaGlkZSgpLCQoIiNnZW9sb2NhdGlvbk1zZ0lFIikuaGlkZSgpKX07YS5nZW9sb2NGYWlsPWZ1bmN0aW9uKCl7LTE8YS5icm93c2VyLmluZGV4T2YoIklFIikmJgpsb2NhdGlvbi5yZWxvYWQoKTtvdmVybGF5T25seT0hMDtpZigtMTxhLmJyb3dzZXIuaW5kZXhPZigiRmlyZWZveCIpfHwtMTxhLmJyb3dzZXIuaW5kZXhPZigiSUUiKSlvdmVybGF5T25seT0hMTthLmhpZGVHZW9sb2NNc2cob3ZlcmxheU9ubHkpO3JldHVybiExfTthLmdldERpc3RhbmNlPWZ1bmN0aW9uKGIsYyxkKXtyZXR1cm4gYS5nZXREaXN0YW5jZUhhdmVyc2luZShiLGMpfTthLmdldERpc3RhbmNlSGF2ZXJzaW5lPWZ1bmN0aW9uKGIsYyl7dmFyIGQ9KGMubGF0LWIubGF0KSpNYXRoLlBJLzE4MCxlPShjLmxvbmctYi5sb25nKSpNYXRoLlBJLzE4MDtiPU1hdGguc2luKGQvMikqTWF0aC5zaW4oZC8yKStNYXRoLmNvcyhiLmxhdCpNYXRoLlBJLzE4MCkqTWF0aC5jb3MoYy5sYXQqTWF0aC5QSS8xODApKk1hdGguc2luKGUvMikqTWF0aC5zaW4oZS8yKTtyZXR1cm4oMTI3NTYyNzQqTWF0aC5hdGFuMihNYXRoLnNxcnQoYiksTWF0aC5zcXJ0KDEtYikpKS50b0ZpeGVkKDIpfTthLmdldERpc3RhbmNlR21hcHM9CmZ1bmN0aW9uKGIsYyl7cmV0dXJuIGEuZ2V0RGlzdGFuY2VIYXZlcnNpbmUoYixjKX19OwovKiogL2pzL3RvYXN0ci5qcyAqKi8KdmFyIF9fX2QyY190b2FzdHJqc19jX29uPSIyMDI1LTA1LTIzIDE3OjEyOjA5IjsndXNlIHN0cmljdCc7dmFyIF9fX2QyY190b2FzdHJqc19jX29uPSIyMDI0LTAzLTI2IDEyOjMwOjE1IjsidXNlIHN0cmljdCI7CihmdW5jdGlvbih6KXt6KFsianF1ZXJ5Il0sZnVuY3Rpb24oZCl7cmV0dXJuIGZ1bmN0aW9uKCl7ZnVuY3Rpb24gbihhLGMpe2F8fChhPWwoKSk7Zj1kKCIjIithLmNvbnRhaW5lcklkKTtpZihmLmxlbmd0aClyZXR1cm4gZjtjJiYoZj1kKCI8ZGl2Lz4iKS5hdHRyKCJpZCIsYS5jb250YWluZXJJZCkuYWRkQ2xhc3MoYS5wb3NpdGlvbkNsYXNzKS5hdHRyKCJhcmlhLWxpdmUiLCJwb2xpdGUiKS5hdHRyKCJyb2xlIiwiYWxlcnQiKS5jc3MoImNvbG9yIixhLmNvbG9yKSxmLmFwcGVuZFRvKGQoYS50YXJnZXQpKSk7cmV0dXJuIGZ9ZnVuY3Rpb24gQShhLGMsZSl7ZT1lJiZlLmZvcmNlP2UuZm9yY2U6ITE7cmV0dXJuIGEmJihlfHwwPT09ZCgiOmZvY3VzIixhKS5sZW5ndGgpPyhhW2MuaGlkZU1ldGhvZF0oe2R1cmF0aW9uOmMuaGlkZUR1cmF0aW9uLGVhc2luZzpjLmhpZGVFYXNpbmcsY29tcGxldGU6ZnVuY3Rpb24oKXt1KGEpfX0pLCEwKTohMX1mdW5jdGlvbiBFKCl7cmV0dXJue3RhcFRvRGlzbWlzczohMCwKdG9hc3RDbGFzczoidG9hc3QiLGNvbnRhaW5lcklkOiJ0b2FzdC1jb250YWluZXIiLGRlYnVnOiExLHNob3dNZXRob2Q6ImZhZGVJbiIsc2hvd0R1cmF0aW9uOjMwMCxzaG93RWFzaW5nOiJzd2luZyIsb25TaG93bjpmdW5jdGlvbigpe2QoIi50cmFkZUluQmFyTW9iaWxlQnV0dG9uIikuYWRkQ2xhc3MoIndpdGhUb2FzdGVyIik7ZCgiLnByb21vVG9wQnRuLmZsb2F0aW5nIikuYWRkQ2xhc3MoIndpdGhUb2FzdGVyIil9LGhpZGVNZXRob2Q6ImZhZGVPdXQiLGhpZGVEdXJhdGlvbjoxRTMsaGlkZUVhc2luZzoic3dpbmciLG9uSGlkZGVuOmZ1bmN0aW9uKCl7ZCgiLnRyYWRlSW5CYXJNb2JpbGVCdXR0b24iKS5yZW1vdmVDbGFzcygid2l0aFRvYXN0ZXIiKTtkKCIucHJvbW9Ub3BCdG4uZmxvYXRpbmciKS5yZW1vdmVDbGFzcygid2l0aFRvYXN0ZXIiKX0sb25DbG9zZTpmdW5jdGlvbigpe2QoIi50cmFkZUluQmFyTW9iaWxlQnV0dG9uIikucmVtb3ZlQ2xhc3MoIndpdGhUb2FzdGVyIik7CmQoIi5wcm9tb1RvcEJ0bi5mbG9hdGluZyIpLnJlbW92ZUNsYXNzKCJ3aXRoVG9hc3RlciIpfSxleHRlbmRlZFRpbWVPdXQ6MUUzLGljb25DbGFzc2VzOntlcnJvcjoidG9hc3QtZXJyb3IiLGluZm86InRvYXN0LWluZm8iLHN1Y2Nlc3M6InRvYXN0LXN1Y2Nlc3MiLHdhcm5pbmc6InRvYXN0LXdhcm5pbmcifSxpY29uQ2xhc3M6InRvYXN0LWluZm8iLGNvbG9yOiIjRkZGIixiZ0NvbG9yOiIiLHBvc2l0aW9uQ2xhc3M6InRvYXN0LXRvcC1yaWdodCIsdGltZU91dDo1RTMsdGl0bGVDbGFzczoidG9hc3QtdGl0bGUiLG1lc3NhZ2VDbGFzczoidG9hc3QtbWVzc2FnZSIsdGFyZ2V0OiJib2R5IixjbG9zZUh0bWw6JzxidXR0b24gdHlwZT0iYnV0dG9uIj4mdGltZXM7PC9idXR0b24+JyxuZXdlc3RPblRvcDohMCxwcmV2ZW50RHVwbGljYXRlczohMSxwcm9ncmVzc0JhcjohMX19ZnVuY3Rpb24gcihhKXtmdW5jdGlvbiBjKGspe2lmKCFkKCI6Zm9jdXMiLGcpLmxlbmd0aHx8aylyZXR1cm4gY2xlYXJUaW1lb3V0KGguaW50ZXJ2YWxJZCksCmdbYi5oaWRlTWV0aG9kXSh7ZHVyYXRpb246Yi5oaWRlRHVyYXRpb24sZWFzaW5nOmIuaGlkZUVhc2luZyxjb21wbGV0ZTpmdW5jdGlvbigpe3UoZyk7aWYoYi5vbkhpZGRlbiYmImhpZGRlbiIhPT1tLnN0YXRlKWIub25IaWRkZW4oKTttLnN0YXRlPSJoaWRkZW4iO20uZW5kVGltZT1uZXcgRGF0ZTtwJiZwKG0pfX0pfWZ1bmN0aW9uIGUoKXtpZigwPGIudGltZU91dHx8MDxiLmV4dGVuZGVkVGltZU91dCl2PXNldFRpbWVvdXQoYyxiLmV4dGVuZGVkVGltZU91dCksaC5tYXhIaWRlVGltZT1wYXJzZUZsb2F0KGIuZXh0ZW5kZWRUaW1lT3V0KSxoLmhpZGVFdGE9KG5ldyBEYXRlKS5nZXRUaW1lKCkraC5tYXhIaWRlVGltZX1mdW5jdGlvbiBGKCl7Y2xlYXJUaW1lb3V0KHYpO2guaGlkZUV0YT0wO2cuc3RvcCghMCwhMClbYi5zaG93TWV0aG9kXSh7ZHVyYXRpb246Yi5zaG93RHVyYXRpb24sZWFzaW5nOmIuc2hvd0Vhc2luZ30pfWZ1bmN0aW9uIEcoKXt2YXIgaz0oaC5oaWRlRXRhLShuZXcgRGF0ZSkuZ2V0VGltZSgpKS8KaC5tYXhIaWRlVGltZSoxMDA7dy53aWR0aChrKyIlIil9dmFyIGI9bCgpLHg9YS5pY29uQ2xhc3N8fGIuaWNvbkNsYXNzOyJ1bmRlZmluZWQiIT09dHlwZW9mIGEub3B0aW9uc092ZXJyaWRlJiYoYj1kLmV4dGVuZChiLGEub3B0aW9uc092ZXJyaWRlKSx4PWEub3B0aW9uc092ZXJyaWRlLmljb25DbGFzc3x8eCk7YTp7aWYoYi5wcmV2ZW50RHVwbGljYXRlcylpZihhLm1lc3NhZ2U9PT15KXt2YXIgcT0hMDticmVhayBhfWVsc2UgeT1hLm1lc3NhZ2U7cT0hMX1pZighcSl7QisrO2Y9bihiLCEwKTt2YXIgdj1udWxsLGc9ZCgiPGRpdi8+Iik7cT1kKCI8ZGl2Lz4iKTt2YXIgQz1kKCI8ZGl2Lz4iKSx3PWQoIjxkaXYvPiIpLHQ9ZChiLmNsb3NlSHRtbCksaD17aW50ZXJ2YWxJZDpudWxsLGhpZGVFdGE6bnVsbCxtYXhIaWRlVGltZTpudWxsfSxtPXt0b2FzdElkOkIsc3RhdGU6InZpc2libGUiLHN0YXJ0VGltZTpuZXcgRGF0ZSxvcHRpb25zOmIsbWFwOmF9OzY8Yi5iZ0NvbG9yLmxlbmd0aCYmCmcuY3NzKCJiYWNrZ3JvdW5kLWNvbG9yIixiLmJnQ29sb3IpO2EuaWNvbkNsYXNzJiZnLmFkZENsYXNzKGIudG9hc3RDbGFzcykuYWRkQ2xhc3MoeCk7YS50aXRsZSYmKHEuYXBwZW5kKGEudGl0bGUpLmFkZENsYXNzKGIudGl0bGVDbGFzcyksZy5hcHBlbmQocSkpO2EubWVzc2FnZSYmKEMuYXBwZW5kKGEubWVzc2FnZSkuYWRkQ2xhc3MoYi5tZXNzYWdlQ2xhc3MpLGcuYXBwZW5kKEMpKTtiLmNsb3NlQnV0dG9uJiYodC5hZGRDbGFzcygidG9hc3QtY2xvc2UtYnV0dG9uIikuYXR0cigicm9sZSIsImJ1dHRvbiIpLGcucHJlcGVuZCh0KSk7Yi5wcm9ncmVzc0JhciYmKHcuYWRkQ2xhc3MoInRvYXN0LXByb2dyZXNzIiksZy5wcmVwZW5kKHcpKTtiLm5ld2VzdE9uVG9wP2YucHJlcGVuZChnKTpmLmFwcGVuZChnKTtnLmhpZGUoKTtnW2Iuc2hvd01ldGhvZF0oe2R1cmF0aW9uOmIuc2hvd0R1cmF0aW9uLGVhc2luZzpiLnNob3dFYXNpbmcsY29tcGxldGU6Yi5vblNob3dufSk7MDxiLnRpbWVPdXQmJgoodj1zZXRUaW1lb3V0KGMsYi50aW1lT3V0KSxoLm1heEhpZGVUaW1lPXBhcnNlRmxvYXQoYi50aW1lT3V0KSxoLmhpZGVFdGE9KG5ldyBEYXRlKS5nZXRUaW1lKCkraC5tYXhIaWRlVGltZSxiLnByb2dyZXNzQmFyJiYoaC5pbnRlcnZhbElkPXNldEludGVydmFsKEcsMTApKSk7KGZ1bmN0aW9uKCl7Zy5vbigibW91c2VlbnRlciIsRikub24oIm1vdXNlbGVhdmUiLGUpO2lmKCFiLm9uY2xpY2smJmIudGFwVG9EaXNtaXNzKWcub24oImNsaWNrIixjKTtpZihiLmNsb3NlQnV0dG9uJiZ0KXQub24oImNsaWNrIixmdW5jdGlvbihrKXtrLnN0b3BQcm9wYWdhdGlvbj9rLnN0b3BQcm9wYWdhdGlvbigpOnZvaWQgMCE9PWsuY2FuY2VsQnViYmxlJiYhMCE9PWsuY2FuY2VsQnViYmxlJiYoay5jYW5jZWxCdWJibGU9ITApO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBiLm9uQ2xvc2UpYi5vbkNsb3NlKCk7YyghMCl9KTtpZihiLm9uY2xpY2spZy5vbigiY2xpY2siLGZ1bmN0aW9uKCl7Yi5vbmNsaWNrKCk7CmMoKX0pfSkoKTtwJiZwKG0pO2IuZGVidWcmJmNvbnNvbGUmJmNvbnNvbGUubG9nKG0pO3JldHVybiBnfX1mdW5jdGlvbiBsKCl7cmV0dXJuIGQuZXh0ZW5kKHt9LEUoKSxELm9wdGlvbnMpfWZ1bmN0aW9uIHUoYSl7Znx8KGY9bigpKTthLmlzKCI6dmlzaWJsZSIpfHwoYS5yZW1vdmUoKSwwPT09Zi5jaGlsZHJlbigpLmxlbmd0aCYmKGYucmVtb3ZlKCkseT12b2lkIDApKX12YXIgZixwLEI9MCxEPXtjbGVhcjpmdW5jdGlvbihhLGMpe3ZhciBlPWwoKTtmfHxuKGUpO2lmKCFBKGEsZSxjKSlmb3IoYT1mLmNoaWxkcmVuKCksYz1hLmxlbmd0aC0xOzA8PWM7Yy0tKUEoZChhW2NdKSxlKX0scmVtb3ZlOmZ1bmN0aW9uKGEpe3ZhciBjPWwoKTtmfHxuKGMpO2EmJjA9PT1kKCI6Zm9jdXMiLGEpLmxlbmd0aD91KGEpOmYuY2hpbGRyZW4oKS5sZW5ndGgmJmYucmVtb3ZlKCl9LGVycm9yOmZ1bmN0aW9uKGEsYyxlKXtyZXR1cm4gcih7dHlwZToiZXJyb3IiLGljb25DbGFzczpsKCkuaWNvbkNsYXNzZXMuZXJyb3IsCm1lc3NhZ2U6YSxvcHRpb25zT3ZlcnJpZGU6ZSx0aXRsZTpjfSl9LGdldENvbnRhaW5lcjpuLGluZm86ZnVuY3Rpb24oYSxjLGUpe3JldHVybiByKHt0eXBlOiJpbmZvIixpY29uQ2xhc3M6bCgpLmljb25DbGFzc2VzLmluZm8sbWVzc2FnZTphLG9wdGlvbnNPdmVycmlkZTplLHRpdGxlOmN9KX0sb3B0aW9uczp7fSxzdWJzY3JpYmU6ZnVuY3Rpb24oYSl7cD1hfSxzdWNjZXNzOmZ1bmN0aW9uKGEsYyxlKXtyZXR1cm4gcih7dHlwZToic3VjY2VzcyIsaWNvbkNsYXNzOmwoKS5pY29uQ2xhc3Nlcy5zdWNjZXNzLG1lc3NhZ2U6YSxvcHRpb25zT3ZlcnJpZGU6ZSx0aXRsZTpjfSl9LHZlcnNpb246IjIuMS4xIix3YXJuaW5nOmZ1bmN0aW9uKGEsYyxlKXtyZXR1cm4gcih7dHlwZToid2FybmluZyIsaWNvbkNsYXNzOmwoKS5pY29uQ2xhc3Nlcy53YXJuaW5nLG1lc3NhZ2U6YSxvcHRpb25zT3ZlcnJpZGU6ZSx0aXRsZTpjfSl9fSx5O3JldHVybiBEfSgpfSl9KSgiZnVuY3Rpb24iPT09dHlwZW9mIGRlZmluZSYmCmRlZmluZS5hbWQ\/ZGVmaW5lOmZ1bmN0aW9uKHosZCl7InVuZGVmaW5lZCIhPT10eXBlb2YgbW9kdWxlJiZtb2R1bGUuZXhwb3J0cz9tb2R1bGUuZXhwb3J0cz1kKHJlcXVpcmUoImpxdWVyeSIpKTp3aW5kb3cudG9hc3RyPWQod2luZG93LmpRdWVyeSl9KTsKLyoqIC9qcy9odG1sMmNhbnZhcy5qcyAqKi8KdmFyIF9fX2QyY19odG1sMmNhbnZhc2pzX2Nfb249IjIwMjUtMDUtMjMgMTc6MDY6MjYiOyd1c2Ugc3RyaWN0Jzt2YXIgX19fZDJjX2h0bWwyY2FudmFzanNfY19vbj0iMjAyNC0wMS0zMSAxNDozNDo1NCI7InVzZSBzdHJpY3QiO19fX2QyY19odG1sMmNhbnZhc2pzX2Nfb249IjIwMjMtMDEtMTIgMTE6MzY6MzciOyJ1c2Ugc3RyaWN0IjtfX19kMmNfaHRtbDJjYW52YXNqc19jX29uPSIyMDIzLTAxLTEyIDEwOjQ2OjIwIjsidXNlIHN0cmljdCI7X19fZDJjX2h0bWwyY2FudmFzanNfY19vbj0iMjAyMi0wMi0wNyAyMjozMDowOCI7InVzZSBzdHJpY3QiOwooZnVuY3Rpb24oTixSLFEpe2Z1bmN0aW9uIHFhKGQscCxxKXt2YXIgaz1kLnJ1bnRpbWVTdHlsZSYmZC5ydW50aW1lU3R5bGVbcF0sYz1kLnN0eWxlO2lmKCEvXi0\/WzAtOV0rXC4\/WzAtOV0qKD86cHgpPyQvaS50ZXN0KHEpJiYvXi0\/XGQvLnRlc3QocSkpe3ZhciBuPWMubGVmdDtrJiYoZC5ydW50aW1lU3R5bGUubGVmdD1kLmN1cnJlbnRTdHlsZS5sZWZ0KTtjLmxlZnQ9ImZvbnRTaXplIj09PXA\/IjFlbSI6cXx8MDtxPWMucGl4ZWxMZWZ0KyJweCI7Yy5sZWZ0PW47ayYmKGQucnVudGltZVN0eWxlLmxlZnQ9ayl9cmV0dXJuL14odGhpbnxtZWRpdW18dGhpY2spJC9pLnRlc3QocSk\/cTpNYXRoLnJvdW5kKHBhcnNlRmxvYXQocSkpKyJweCJ9ZnVuY3Rpb24geGEoZCl7cmV0dXJuIHBhcnNlSW50KGQsMTApfWZ1bmN0aW9uIGphKGQpe3JldHVybi0xIT09ZC50b1N0cmluZygpLmluZGV4T2YoIiUiKX1mdW5jdGlvbiB5YShkLHApe3ZhciBxPVtdO3JldHVybntzdG9yYWdlOnEsd2lkdGg6ZCwKaGVpZ2h0OnAsY2xpcDpmdW5jdGlvbigpe3EucHVzaCh7dHlwZToiZnVuY3Rpb24iLG5hbWU6ImNsaXAiLGFyZ3VtZW50c30pfSx0cmFuc2xhdGU6ZnVuY3Rpb24oKXtxLnB1c2goe3R5cGU6ImZ1bmN0aW9uIixuYW1lOiJ0cmFuc2xhdGUiLGFyZ3VtZW50c30pfSxmaWxsOmZ1bmN0aW9uKCl7cS5wdXNoKHt0eXBlOiJmdW5jdGlvbiIsbmFtZToiZmlsbCIsYXJndW1lbnRzfSl9LHNhdmU6ZnVuY3Rpb24oKXtxLnB1c2goe3R5cGU6ImZ1bmN0aW9uIixuYW1lOiJzYXZlIixhcmd1bWVudHN9KX0scmVzdG9yZTpmdW5jdGlvbigpe3EucHVzaCh7dHlwZToiZnVuY3Rpb24iLG5hbWU6InJlc3RvcmUiLGFyZ3VtZW50c30pfSxmaWxsUmVjdDpmdW5jdGlvbigpe3EucHVzaCh7dHlwZToiZnVuY3Rpb24iLG5hbWU6ImZpbGxSZWN0Iixhcmd1bWVudHN9KX0sY3JlYXRlUGF0dGVybjpmdW5jdGlvbigpe3EucHVzaCh7dHlwZToiZnVuY3Rpb24iLG5hbWU6ImNyZWF0ZVBhdHRlcm4iLGFyZ3VtZW50c30pfSwKZHJhd1NoYXBlOmZ1bmN0aW9uKCl7dmFyIGs9W107cS5wdXNoKHt0eXBlOiJmdW5jdGlvbiIsbmFtZToiZHJhd1NoYXBlIixhcmd1bWVudHM6a30pO3JldHVybnttb3ZlVG86ZnVuY3Rpb24oKXtrLnB1c2goe25hbWU6Im1vdmVUbyIsYXJndW1lbnRzfSl9LGxpbmVUbzpmdW5jdGlvbigpe2sucHVzaCh7bmFtZToibGluZVRvIixhcmd1bWVudHN9KX0sYXJjVG86ZnVuY3Rpb24oKXtrLnB1c2goe25hbWU6ImFyY1RvIixhcmd1bWVudHN9KX0sYmV6aWVyQ3VydmVUbzpmdW5jdGlvbigpe2sucHVzaCh7bmFtZToiYmV6aWVyQ3VydmVUbyIsYXJndW1lbnRzfSl9LHF1YWRyYXRpY0N1cnZlVG86ZnVuY3Rpb24oKXtrLnB1c2goe25hbWU6InF1YWRyYXRpY0N1cnZlVG8iLGFyZ3VtZW50c30pfX19LGRyYXdJbWFnZTpmdW5jdGlvbigpe3EucHVzaCh7dHlwZToiZnVuY3Rpb24iLG5hbWU6ImRyYXdJbWFnZSIsYXJndW1lbnRzfSl9LGZpbGxUZXh0OmZ1bmN0aW9uKCl7cS5wdXNoKHt0eXBlOiJmdW5jdGlvbiIsCm5hbWU6ImZpbGxUZXh0Iixhcmd1bWVudHN9KX0sc2V0VmFyaWFibGU6ZnVuY3Rpb24oayxjKXtxLnB1c2goe3R5cGU6InZhcmlhYmxlIixuYW1lOmssYXJndW1lbnRzOmN9KTtyZXR1cm4gY319fXZhciB4PXt9LHJhO3guVXRpbD17fTt4LlV0aWwubG9nPWZ1bmN0aW9uKGQpe3gubG9nZ2luZyYmTi5jb25zb2xlJiZOLmNvbnNvbGUubG9nJiZOLmNvbnNvbGUubG9nKGQpfTt4LlV0aWwudHJpbVRleHQ9ZnVuY3Rpb24oZCl7cmV0dXJuIGZ1bmN0aW9uKHApe3JldHVybiBkP2QuYXBwbHkocCk6KChwfHwiIikrIiIpLnJlcGxhY2UoL15ccyt8XHMrJC9nLCIiKX19KFN0cmluZy5wcm90b3R5cGUudHJpbSk7eC5VdGlsLmFzRmxvYXQ9ZnVuY3Rpb24oZCl7cmV0dXJuIHBhcnNlRmxvYXQoZCl9OyhmdW5jdGlvbigpe3ZhciBkPS8oKHJnYmF8cmdiKVwoW15cKV0rXCkoXHMtP1xkK3B4KXswLH0pL2cscD0vKC0\/XGQrcHgpfCgjLispfChyZ2JcKC4rXCkpfChyZ2JhXCguK1wpKS9nO3guVXRpbC5wYXJzZVRleHRTaGFkb3dzPQpmdW5jdGlvbihxKXtpZighcXx8Im5vbmUiPT09cSlyZXR1cm5bXTtxPXEubWF0Y2goZCk7Zm9yKHZhciBrPVtdLGM9MDtxJiZjPHEubGVuZ3RoO2MrKyl7dmFyIG49cVtjXS5tYXRjaChwKTtrLnB1c2goe2NvbG9yOm5bMF0sb2Zmc2V0WDpuWzFdP25bMV0ucmVwbGFjZSgicHgiLCIiKTowLG9mZnNldFk6blsyXT9uWzJdLnJlcGxhY2UoInB4IiwiIik6MCxibHVyOm5bM10\/blszXS5yZXBsYWNlKCJweCIsIiIpOjB9KX1yZXR1cm4ga319KSgpO3guVXRpbC5wYXJzZUJhY2tncm91bmRJbWFnZT1mdW5jdGlvbihkKXt2YXIgcCxxLGssYyxuPVtdLHQ9MCx2PTAsbCxlLEk9ZnVuY3Rpb24oKXtwJiYoJyInPT09Si5zdWJzdHIoMCwxKSYmKEo9Si5zdWJzdHIoMSxKLmxlbmd0aC0yKSksSiYmZS5wdXNoKEopLCItIj09PXAuc3Vic3RyKDAsMSkmJjA8KGs9cC5pbmRleE9mKCItIiwxKSsxKSYmKHE9cC5zdWJzdHIoMCxrKSxwPXAuc3Vic3RyKGspKSxuLnB1c2goe3ByZWZpeDpxLG1ldGhvZDpwLnRvTG93ZXJDYXNlKCksCnZhbHVlOmMsYXJnczplfSkpO2U9W107cD1xPUo9Yz0iIn07SSgpO2Zvcih2YXIgej0wLEU9ZC5sZW5ndGg7ejxFO3orKyl7dmFyIEs9ZFt6XTtpZighKDA9PT10JiYtMTwiIFxyXG5cdCIuaW5kZXhPZihLKSkpe3N3aXRjaChLKXtjYXNlICciJzpsP2w9PT1LJiYobD1udWxsKTpsPUs7YnJlYWs7Y2FzZSAiKCI6aWYoIWwpaWYoMD09PXQpe3Q9MTtjKz1LO2NvbnRpbnVlfWVsc2UgdisrO2JyZWFrO2Nhc2UgIikiOmlmKCFsJiYxPT09dClpZigwPT09dil7dD0wO2MrPUs7SSgpO2NvbnRpbnVlfWVsc2Ugdi0tO2JyZWFrO2Nhc2UgIiwiOmlmKCFsKWlmKDA9PT10KXtJKCk7Y29udGludWV9ZWxzZSBpZigxPT09dCYmMD09PXYmJiFwLm1hdGNoKC9edXJsJC9pKSl7ZS5wdXNoKEopO3ZhciBKPSIiO2MrPUs7Y29udGludWV9fWMrPUs7MD09PXQ\/cCs9SzpKKz1LfX1JKCk7cmV0dXJuIG59O3guVXRpbC5Cb3VuZHM9ZnVuY3Rpb24oZCl7dmFyIHA9e307aWYoZC5nZXRCb3VuZGluZ0NsaWVudFJlY3Qpe3ZhciBxPQpkLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3AudG9wPXEudG9wO3AuYm90dG9tPXEuYm90dG9tfHxxLnRvcCtxLmhlaWdodDtwLmxlZnQ9cS5sZWZ0O3Aud2lkdGg9ZC5vZmZzZXRXaWR0aDtwLmhlaWdodD1kLm9mZnNldEhlaWdodH1yZXR1cm4gcH07eC5VdGlsLk9mZnNldEJvdW5kcz1mdW5jdGlvbihkKXt2YXIgcD1kLm9mZnNldFBhcmVudD94LlV0aWwuT2Zmc2V0Qm91bmRzKGQub2Zmc2V0UGFyZW50KTp7dG9wOjAsbGVmdDowfTtyZXR1cm57dG9wOmQub2Zmc2V0VG9wK3AudG9wLGJvdHRvbTpkLm9mZnNldFRvcCtkLm9mZnNldEhlaWdodCtwLnRvcCxsZWZ0OmQub2Zmc2V0TGVmdCtwLmxlZnQsd2lkdGg6ZC5vZmZzZXRXaWR0aCxoZWlnaHQ6ZC5vZmZzZXRIZWlnaHR9fTt4LlV0aWwuZ2V0Q1NTPWZ1bmN0aW9uKGQscCxxKXt2b2lkIDAhPT1kJiYocmE9Ui5kZWZhdWx0Vmlldy5nZXRDb21wdXRlZFN0eWxlKGQsbnVsbCkpO3ZhciBrPXJhW3BdO2lmKC9eYmFja2dyb3VuZChTaXplfFBvc2l0aW9uKSQvLnRlc3QocCkpe2E6e2s9CihrfHwiIikuc3BsaXQoIiwiKTtrPWtbcXx8MF18fGtbMF18fCJhdXRvIjtrPXguVXRpbC50cmltVGV4dChrKS5zcGxpdCgiICIpO2lmKCJiYWNrZ3JvdW5kU2l6ZSIhPT1wfHwha1swXXx8IWtbMF0ubWF0Y2goL14oY292ZXJ8Y29udGFpbnxhdXRvKSQvKSl7a1swXT0tMT09PWtbMF0uaW5kZXhPZigiJSIpP3FhKGQscCsiWCIsa1swXSk6a1swXTtpZihrWzFdPT09USlpZigiYmFja2dyb3VuZFNpemUiPT09cCl7a1sxXT0iYXV0byI7ZD1rO2JyZWFrIGF9ZWxzZSBrWzFdPWtbMF07a1sxXT0tMT09PWtbMV0uaW5kZXhPZigiJSIpP3FhKGQscCsiWSIsa1sxXSk6a1sxXX1kPWt9cmV0dXJuIGR9cmV0dXJuL2JvcmRlcihUb3B8Qm90dG9tKShMZWZ0fFJpZ2h0KVJhZGl1cy8udGVzdChwKT8oZD1rLnNwbGl0KCIgIiksMT49ZC5sZW5ndGgmJihkWzFdPWRbMF0pLGQubWFwKHhhKSk6a307eC5VdGlsLnJlc2l6ZUJvdW5kcz1mdW5jdGlvbihkLHAscSxrLGMpe2QvPXA7YyYmImF1dG8iIT09Yz8KcS9rPGReImNvbnRhaW4iPT09Yz8ocT1rLGM9aypkKTooYz1xLHEvPWQpOihjPXEscT1rKTtyZXR1cm57d2lkdGg6YyxoZWlnaHQ6cX19O3guVXRpbC5CYWNrZ3JvdW5kUG9zaXRpb249ZnVuY3Rpb24oZCxwLHEsayxjKXtkPXguVXRpbC5nZXRDU1MoZCwiYmFja2dyb3VuZFBvc2l0aW9uIixrKTsxPT09ZC5sZW5ndGgmJihkPVtkWzBdLGRbMF1dKTtrPWphKGRbMF0pPyhwLndpZHRoLShjfHxxKS53aWR0aCkqKHBhcnNlRmxvYXQoZFswXSkvMTAwKTpwYXJzZUludChkWzBdLDEwKTtwPSJhdXRvIj09PWRbMV0\/ay9xLndpZHRoKnEuaGVpZ2h0OmphKGRbMV0pPyhwLmhlaWdodC0oY3x8cSkuaGVpZ2h0KSpwYXJzZUZsb2F0KGRbMV0pLzEwMDpwYXJzZUludChkWzFdLDEwKTsiYXV0byI9PT1kWzBdJiYoaz1wL3EuaGVpZ2h0KnEud2lkdGgpO3JldHVybntsZWZ0OmssdG9wOnB9fTt4LlV0aWwuQmFja2dyb3VuZFNpemU9ZnVuY3Rpb24oZCxwLHEsayl7ZD14LlV0aWwuZ2V0Q1NTKGQsImJhY2tncm91bmRTaXplIiwKayk7MT09PWQubGVuZ3RoJiYoZD1bZFswXSxkWzBdXSk7aWYoamEoZFswXSkpaz1wLndpZHRoKnBhcnNlRmxvYXQoZFswXSkvMTAwO2Vsc2V7aWYoL2NvbnRhaW58Y292ZXIvLnRlc3QoZFswXSkpcmV0dXJuIHguVXRpbC5yZXNpemVCb3VuZHMocS53aWR0aCxxLmhlaWdodCxwLndpZHRoLHAuaGVpZ2h0LGRbMF0pO2s9cGFyc2VJbnQoZFswXSwxMCl9cD0iYXV0byI9PT1kWzBdJiYiYXV0byI9PT1kWzFdP3EuaGVpZ2h0OiJhdXRvIj09PWRbMV0\/ay9xLndpZHRoKnEuaGVpZ2h0OmphKGRbMV0pP3AuaGVpZ2h0KnBhcnNlRmxvYXQoZFsxXSkvMTAwOnBhcnNlSW50KGRbMV0sMTApOyJhdXRvIj09PWRbMF0mJihrPXAvcS5oZWlnaHQqcS53aWR0aCk7cmV0dXJue3dpZHRoOmssaGVpZ2h0OnB9fTt4LlV0aWwuQmFja2dyb3VuZFJlcGVhdD1mdW5jdGlvbihkLHApe2Q9eC5VdGlsLmdldENTUyhkLCJiYWNrZ3JvdW5kUmVwZWF0Iikuc3BsaXQoIiwiKS5tYXAoeC5VdGlsLnRyaW1UZXh0KTtyZXR1cm4gZFtwXXx8CmRbMF19O3guVXRpbC5FeHRlbmQ9ZnVuY3Rpb24oZCxwKXtmb3IodmFyIHEgaW4gZClkLmhhc093blByb3BlcnR5KHEpJiYocFtxXT1kW3FdKTtyZXR1cm4gcH07eC5VdGlsLkNoaWxkcmVuPWZ1bmN0aW9uKGQpe3RyeXtpZihkLm5vZGVOYW1lJiYiSUZSQU1FIj09PWQubm9kZU5hbWUudG9VcHBlckNhc2UoKSl2YXIgcD1kLmNvbnRlbnREb2N1bWVudHx8ZC5jb250ZW50V2luZG93LmRvY3VtZW50O2Vsc2V7dmFyIHE9ZC5jaGlsZE5vZGVzO2Q9W107aWYobnVsbCE9PXEpe3ZhciBrPWQubGVuZ3RoLGM9MDtpZigibnVtYmVyIj09PXR5cGVvZiBxLmxlbmd0aClmb3IodmFyIG49cS5sZW5ndGg7YzxuO2MrKylkW2srK109cVtjXTtlbHNlIGZvcig7cVtjXSE9PVE7KWRbaysrXT1xW2MrK107ZC5sZW5ndGg9a31wPWR9ZD1wfWNhdGNoKHQpe3guVXRpbC5sb2coImh0bWwyY2FudmFzLlV0aWwuQ2hpbGRyZW4gZmFpbGVkIHdpdGggZXhjZXB0aW9uOiAiK3QubWVzc2FnZSksZD1bXX1yZXR1cm4gZH07CnguVXRpbC5pc1RyYW5zcGFyZW50PWZ1bmN0aW9uKGQpe3JldHVybiFkfHwidHJhbnNwYXJlbnQiPT09ZHx8InJnYmEoMCwgMCwgMCwgMCkiPT09ZH07eC5VdGlsLkZvbnQ9ZnVuY3Rpb24oKXt2YXIgZD17fTtyZXR1cm4gZnVuY3Rpb24ocCxxLGspe2lmKGRbcCsiLSIrcV0hPT1RKXJldHVybiBkW3ArIi0iK3FdO3ZhciBjPWsuY3JlYXRlRWxlbWVudCgiZGl2Iiksbj1rLmNyZWF0ZUVsZW1lbnQoImltZyIpLHQ9ay5jcmVhdGVFbGVtZW50KCJzcGFuIik7Yy5zdHlsZS52aXNpYmlsaXR5PSJoaWRkZW4iO2Muc3R5bGUuZm9udEZhbWlseT1wO2Muc3R5bGUuZm9udFNpemU9cTtjLnN0eWxlLm1hcmdpbj0wO2Muc3R5bGUucGFkZGluZz0wO2suYm9keS5hcHBlbmRDaGlsZChjKTtuLnNyYz0iZGF0YTppbWFnZS9naWY7YmFzZTY0LFIwbEdPRGxoQVFBQkFJQUJBUC8vL3dBQUFDd0FBQUFBQVFBQkFBQUNBa1FCQURzPSI7bi53aWR0aD0xO24uaGVpZ2h0PTE7bi5zdHlsZS5tYXJnaW49MDtuLnN0eWxlLnBhZGRpbmc9CjA7bi5zdHlsZS52ZXJ0aWNhbEFsaWduPSJiYXNlbGluZSI7dC5zdHlsZS5mb250RmFtaWx5PXA7dC5zdHlsZS5mb250U2l6ZT1xO3Quc3R5bGUubWFyZ2luPTA7dC5zdHlsZS5wYWRkaW5nPTA7dC5hcHBlbmRDaGlsZChrLmNyZWF0ZVRleHROb2RlKCJIaWRkZW4gVGV4dCIpKTtjLmFwcGVuZENoaWxkKHQpO2MuYXBwZW5kQ2hpbGQobik7dmFyIHY9bi5vZmZzZXRUb3AtdC5vZmZzZXRUb3ArMTtjLnJlbW92ZUNoaWxkKHQpO2MuYXBwZW5kQ2hpbGQoay5jcmVhdGVUZXh0Tm9kZSgiSGlkZGVuIFRleHQiKSk7Yy5zdHlsZS5saW5lSGVpZ2h0PSJub3JtYWwiO24uc3R5bGUudmVydGljYWxBbGlnbj0ic3VwZXIiO249e2Jhc2VsaW5lOnYsbGluZVdpZHRoOjEsbWlkZGxlOm4ub2Zmc2V0VG9wLWMub2Zmc2V0VG9wKzF9O2RbcCsiLSIrcV09bjtrLmJvZHkucmVtb3ZlQ2hpbGQoYyk7cmV0dXJuIG59fSgpOyhmdW5jdGlvbigpe2Z1bmN0aW9uIGQoYyl7cmV0dXJuIGZ1bmN0aW9uKG4pe3RyeXtjLmFkZENvbG9yU3RvcChuLnN0b3AsCm4uY29sb3IpfWNhdGNoKHQpe3AubG9nKFsiZmFpbGVkIHRvIGFkZCBjb2xvciBzdG9wOiAiLHQsIjsgdHJpZWQgdG8gYWRkOiAiLG5dKX19fXZhciBwPXguVXRpbCxxPXt9O3guR2VuZXJhdGU9cTt2YXIgaz1bL14oLXdlYmtpdC1saW5lYXItZ3JhZGllbnQpXCgoW2EtelxzXSspKFtcd1xkXC5ccywlXChcKV0rKVwpJC8sL14oLW8tbGluZWFyLWdyYWRpZW50KVwoKFthLXpcc10rKShbXHdcZFwuXHMsJVwoXCldKylcKSQvLC9eKC13ZWJraXQtZ3JhZGllbnQpXCgobGluZWFyfHJhZGlhbCksXHMoKD86XGR7MSwzfSU\/KVxzKD86XGR7MSwzfSU\/KSxccyg\/OlxkezEsM30lPylccyg\/OlxkezEsM30lPykpKFtcd1xkXC5ccywlXChcKVwtXSspXCkkLywvXigtbW96LWxpbmVhci1ncmFkaWVudClcKCgoPzpcZHsxLDN9JT8pXHMoPzpcZHsxLDN9JT8pKShbXHdcZFwuXHMsJVwoXCldKylcKSQvLC9eKC13ZWJraXQtcmFkaWFsLWdyYWRpZW50KVwoKCg\/OlxkezEsM30lPylccyg\/OlxkezEsM30lPykpLFxzKFx3KylccyhbYS16XC1dKykoW1x3XGRcLlxzLCVcKFwpXSspXCkkLywKL14oLW1vei1yYWRpYWwtZ3JhZGllbnQpXCgoKD86XGR7MSwzfSU\/KVxzKD86XGR7MSwzfSU\/KSksXHMoXHcrKVxzPyhbYS16XC1dKikoW1x3XGRcLlxzLCVcKFwpXSspXCkkLywvXigtby1yYWRpYWwtZ3JhZGllbnQpXCgoKD86XGR7MSwzfSU\/KVxzKD86XGR7MSwzfSU\/KSksXHMoXHcrKVxzKFthLXpcLV0rKShbXHdcZFwuXHMsJVwoXCldKylcKSQvXTtxLnBhcnNlR3JhZGllbnQ9ZnVuY3Rpb24oYyxuKXt2YXIgdCx2PWsubGVuZ3RoLGw7Zm9yKHQ9MDt0PHYmJiEobD1jLm1hdGNoKGtbdF0pKTt0Kz0xKTtpZihsKXN3aXRjaChsWzFdKXtjYXNlICItd2Via2l0LWxpbmVhci1ncmFkaWVudCI6Y2FzZSAiLW8tbGluZWFyLWdyYWRpZW50Ijp2YXIgZT17dHlwZToibGluZWFyIix4MDpudWxsLHkwOm51bGwseDE6bnVsbCx5MTpudWxsLGNvbG9yU3RvcHM6W119O2lmKGM9bFsyXS5tYXRjaCgvXHcrL2cpKWZvcih2PWMubGVuZ3RoLHQ9MDt0PHY7dCs9MSlzd2l0Y2goY1t0XSl7Y2FzZSAidG9wIjplLnkwPQowO2UueTE9bi5oZWlnaHQ7YnJlYWs7Y2FzZSAicmlnaHQiOmUueDA9bi53aWR0aDtlLngxPTA7YnJlYWs7Y2FzZSAiYm90dG9tIjplLnkwPW4uaGVpZ2h0O2UueTE9MDticmVhaztjYXNlICJsZWZ0IjplLngwPTAsZS54MT1uLndpZHRofW51bGw9PT1lLngwJiZudWxsPT09ZS54MSYmKGUueDA9ZS54MT1uLndpZHRoLzIpO251bGw9PT1lLnkwJiZudWxsPT09ZS55MSYmKGUueTA9ZS55MT1uLmhlaWdodC8yKTtpZihjPWxbM10ubWF0Y2goLygoPzpyZ2J8cmdiYSlcKFxkezEsM30sXHNcZHsxLDN9LFxzXGR7MSwzfSg\/Oixcc1swLTlcLl0rKT9cKSg\/OlxzXGR7MSwzfSg\/OiV8cHgpKT8pKy9nKSl7dj1jLmxlbmd0aDt2YXIgST0xL01hdGgubWF4KHYtMSwxKTtmb3IodD0wO3Q8djt0Kz0xKXt2YXIgej1jW3RdLm1hdGNoKC8oKD86cmdifHJnYmEpXChcZHsxLDN9LFxzXGR7MSwzfSxcc1xkezEsM30oPzosXHNbMC05XC5dKyk\/XCkpXHMqKFxkezEsM30pPyglfHB4KT8vKTt6WzJdPyhsPXBhcnNlRmxvYXQoelsyXSksCmw9IiUiPT09elszXT9sLzEwMDpsL24ud2lkdGgpOmw9dCpJO2UuY29sb3JTdG9wcy5wdXNoKHtjb2xvcjp6WzFdLHN0b3A6bH0pfX1icmVhaztjYXNlICItd2Via2l0LWdyYWRpZW50IjplPXt0eXBlOiJyYWRpYWwiPT09bFsyXT8iY2lyY2xlIjpsWzJdLHgwOjAseTA6MCx4MTowLHkxOjAsY29sb3JTdG9wczpbXX07aWYoYz1sWzNdLm1hdGNoKC8oXGR7MSwzfSklP1xzKFxkezEsM30pJT8sXHMoXGR7MSwzfSklP1xzKFxkezEsM30pJT8vKSllLngwPWNbMV0qbi53aWR0aC8xMDAsZS55MD1jWzJdKm4uaGVpZ2h0LzEwMCxlLngxPWNbM10qbi53aWR0aC8xMDAsZS55MT1jWzRdKm4uaGVpZ2h0LzEwMDtpZihjPWxbNF0ubWF0Y2goLygoPzpmcm9tfHRvfGNvbG9yLXN0b3ApXCgoPzpbMC05XC5dKyxccyk\/KD86cmdifHJnYmEpXChcZHsxLDN9LFxzXGR7MSwzfSxcc1xkezEsM30oPzosXHNbMC05XC5dKyk\/XClcKSkrL2cpKWZvcih2PWMubGVuZ3RoLHQ9MDt0PHY7dCs9MSl6PWNbdF0ubWF0Y2goLyhmcm9tfHRvfGNvbG9yLXN0b3ApXCgoWzAtOVwuXSspPyg\/Oixccyk\/KCg\/OnJnYnxyZ2JhKVwoXGR7MSwzfSxcc1xkezEsM30sXHNcZHsxLDN9KD86LFxzWzAtOVwuXSspP1wpKVwpLyksCmw9cGFyc2VGbG9hdCh6WzJdKSwiZnJvbSI9PT16WzFdJiYobD0wKSwidG8iPT09elsxXSYmKGw9MSksZS5jb2xvclN0b3BzLnB1c2goe2NvbG9yOnpbM10sc3RvcDpsfSk7YnJlYWs7Y2FzZSAiLW1vei1saW5lYXItZ3JhZGllbnQiOmU9e3R5cGU6ImxpbmVhciIseDA6MCx5MDowLHgxOjAseTE6MCxjb2xvclN0b3BzOltdfTtpZihjPWxbMl0ubWF0Y2goLyhcZHsxLDN9KSU\/XHMoXGR7MSwzfSklPy8pKWUueDA9Y1sxXSpuLndpZHRoLzEwMCxlLnkwPWNbMl0qbi5oZWlnaHQvMTAwLGUueDE9bi53aWR0aC1lLngwLGUueTE9bi5oZWlnaHQtZS55MDtpZihjPWxbM10ubWF0Y2goLygoPzpyZ2J8cmdiYSlcKFxkezEsM30sXHNcZHsxLDN9LFxzXGR7MSwzfSg\/Oixcc1swLTlcLl0rKT9cKSg\/OlxzXGR7MSwzfSUpPykrL2cpKWZvcih2PWMubGVuZ3RoLEk9MS9NYXRoLm1heCh2LTEsMSksdD0wO3Q8djt0Kz0xKXo9Y1t0XS5tYXRjaCgvKCg\/OnJnYnxyZ2JhKVwoXGR7MSwzfSxcc1xkezEsM30sXHNcZHsxLDN9KD86LFxzWzAtOVwuXSspP1wpKVxzKihcZHsxLDN9KT8oJSk\/LyksCnpbMl0\/KGw9cGFyc2VGbG9hdCh6WzJdKSx6WzNdJiYobC89MTAwKSk6bD10KkksZS5jb2xvclN0b3BzLnB1c2goe2NvbG9yOnpbMV0sc3RvcDpsfSk7YnJlYWs7Y2FzZSAiLXdlYmtpdC1yYWRpYWwtZ3JhZGllbnQiOmNhc2UgIi1tb3otcmFkaWFsLWdyYWRpZW50IjpjYXNlICItby1yYWRpYWwtZ3JhZGllbnQiOmU9e3R5cGU6ImNpcmNsZSIseDA6MCx5MDowLHgxOm4ud2lkdGgseTE6bi5oZWlnaHQsY3g6MCxjeTowLHJ4OjAscnk6MCxjb2xvclN0b3BzOltdfTtpZihjPWxbMl0ubWF0Y2goLyhcZHsxLDN9KSU\/XHMoXGR7MSwzfSklPy8pKWUuY3g9Y1sxXSpuLndpZHRoLzEwMCxlLmN5PWNbMl0qbi5oZWlnaHQvMTAwO2M9bFszXS5tYXRjaCgvXHcrLyk7ej1sWzRdLm1hdGNoKC9bYS16XC1dKi8pO2lmKGMmJnopc3dpdGNoKHpbMF0pe2Nhc2UgImZhcnRoZXN0LWNvcm5lciI6Y2FzZSAiY292ZXIiOmNhc2UgIiI6dD1NYXRoLnNxcnQoTWF0aC5wb3coZS5jeCwyKStNYXRoLnBvdyhlLmN5LAoyKSk7Yz1NYXRoLnNxcnQoTWF0aC5wb3coZS5jeCwyKStNYXRoLnBvdyhlLnkxLWUuY3ksMikpO3Y9TWF0aC5zcXJ0KE1hdGgucG93KGUueDEtZS5jeCwyKStNYXRoLnBvdyhlLnkxLWUuY3ksMikpO3o9TWF0aC5zcXJ0KE1hdGgucG93KGUueDEtZS5jeCwyKStNYXRoLnBvdyhlLmN5LDIpKTtlLnJ4PWUucnk9TWF0aC5tYXgodCxjLHYseik7YnJlYWs7Y2FzZSAiY2xvc2VzdC1jb3JuZXIiOnQ9TWF0aC5zcXJ0KE1hdGgucG93KGUuY3gsMikrTWF0aC5wb3coZS5jeSwyKSk7Yz1NYXRoLnNxcnQoTWF0aC5wb3coZS5jeCwyKStNYXRoLnBvdyhlLnkxLWUuY3ksMikpO3Y9TWF0aC5zcXJ0KE1hdGgucG93KGUueDEtZS5jeCwyKStNYXRoLnBvdyhlLnkxLWUuY3ksMikpO3o9TWF0aC5zcXJ0KE1hdGgucG93KGUueDEtZS5jeCwyKStNYXRoLnBvdyhlLmN5LDIpKTtlLnJ4PWUucnk9TWF0aC5taW4odCxjLHYseik7YnJlYWs7Y2FzZSAiZmFydGhlc3Qtc2lkZSI6ImNpcmNsZSI9PT1jWzBdP2Uucng9CmUucnk9TWF0aC5tYXgoZS5jeCxlLmN5LGUueDEtZS5jeCxlLnkxLWUuY3kpOihlLnR5cGU9Y1swXSxlLnJ4PU1hdGgubWF4KGUuY3gsZS54MS1lLmN4KSxlLnJ5PU1hdGgubWF4KGUuY3ksZS55MS1lLmN5KSk7YnJlYWs7Y2FzZSAiY2xvc2VzdC1zaWRlIjpjYXNlICJjb250YWluIjoiY2lyY2xlIj09PWNbMF0\/ZS5yeD1lLnJ5PU1hdGgubWluKGUuY3gsZS5jeSxlLngxLWUuY3gsZS55MS1lLmN5KTooZS50eXBlPWNbMF0sZS5yeD1NYXRoLm1pbihlLmN4LGUueDEtZS5jeCksZS5yeT1NYXRoLm1pbihlLmN5LGUueTEtZS5jeSkpfWlmKGM9bFs1XS5tYXRjaCgvKCg\/OnJnYnxyZ2JhKVwoXGR7MSwzfSxcc1xkezEsM30sXHNcZHsxLDN9KD86LFxzWzAtOVwuXSspP1wpKD86XHNcZHsxLDN9KD86JXxweCkpPykrL2cpKWZvcih2PWMubGVuZ3RoLEk9MS9NYXRoLm1heCh2LTEsMSksdD0wO3Q8djt0Kz0xKXo9Y1t0XS5tYXRjaCgvKCg\/OnJnYnxyZ2JhKVwoXGR7MSwzfSxcc1xkezEsM30sXHNcZHsxLDN9KD86LFxzWzAtOVwuXSspP1wpKVxzKihcZHsxLDN9KT8oJXxweCk\/LyksCnpbMl0\/KGw9cGFyc2VGbG9hdCh6WzJdKSxsPSIlIj09PXpbM10\/bC8xMDA6bC9uLndpZHRoKTpsPXQqSSxlLmNvbG9yU3RvcHMucHVzaCh7Y29sb3I6elsxXSxzdG9wOmx9KX1yZXR1cm4gZX07cS5HcmFkaWVudD1mdW5jdGlvbihjLG4pe2lmKDAhPT1uLndpZHRoJiYwIT09bi5oZWlnaHQpe3ZhciB0PVIuY3JlYXRlRWxlbWVudCgiY2FudmFzIiksdj10LmdldENvbnRleHQoIjJkIik7dC53aWR0aD1uLndpZHRoO3QuaGVpZ2h0PW4uaGVpZ2h0O2lmKGM9eC5HZW5lcmF0ZS5wYXJzZUdyYWRpZW50KGMsbikpc3dpdGNoKGMudHlwZSl7Y2FzZSAibGluZWFyIjp2YXIgbD12LmNyZWF0ZUxpbmVhckdyYWRpZW50KGMueDAsYy55MCxjLngxLGMueTEpO2MuY29sb3JTdG9wcy5mb3JFYWNoKGQobCkpO3YuZmlsbFN0eWxlPWw7di5maWxsUmVjdCgwLDAsbi53aWR0aCxuLmhlaWdodCk7YnJlYWs7Y2FzZSAiY2lyY2xlIjpsPXYuY3JlYXRlUmFkaWFsR3JhZGllbnQoYy5jeCxjLmN5LDAsYy5jeCwKYy5jeSxjLnJ4KTtjLmNvbG9yU3RvcHMuZm9yRWFjaChkKGwpKTt2LmZpbGxTdHlsZT1sO3YuZmlsbFJlY3QoMCwwLG4ud2lkdGgsbi5oZWlnaHQpO2JyZWFrO2Nhc2UgImVsbGlwc2UiOm49Ui5jcmVhdGVFbGVtZW50KCJjYW52YXMiKTt2YXIgZT1uLmdldENvbnRleHQoIjJkIik7bD1NYXRoLm1heChjLnJ4LGMucnkpO3ZhciBJPTIqbDtuLndpZHRoPW4uaGVpZ2h0PUk7bD1lLmNyZWF0ZVJhZGlhbEdyYWRpZW50KGMucngsYy5yeSwwLGMucngsYy5yeSxsKTtjLmNvbG9yU3RvcHMuZm9yRWFjaChkKGwpKTtlLmZpbGxTdHlsZT1sO2UuZmlsbFJlY3QoMCwwLEksSSk7di5maWxsU3R5bGU9Yy5jb2xvclN0b3BzW2MuY29sb3JTdG9wcy5sZW5ndGgtMV0uY29sb3I7di5maWxsUmVjdCgwLDAsdC53aWR0aCx0LmhlaWdodCk7di5kcmF3SW1hZ2UobixjLmN4LWMucngsYy5jeS1jLnJ5LDIqYy5yeCwyKmMucnkpfXJldHVybiB0fX07cS5MaXN0QWxwaGE9ZnVuY3Rpb24oYyl7dmFyIG49IiI7CmRvIG49U3RyaW5nLmZyb21DaGFyQ29kZShjJTI2KzY0KStuLGMvPTI2O3doaWxlKDI2PDI2KmMpO3JldHVybiBufTtxLkxpc3RSb21hbj1mdW5jdGlvbihjKXt2YXIgbj0iTSBDTSBEIENEIEMgWEMgTCBYTCBYIElYIFYgSVYgSSIuc3BsaXQoIiAiKSx0PVsxRTMsOTAwLDUwMCw0MDAsMTAwLDkwLDUwLDQwLDEwLDksNSw0LDFdLHY9IiIsbCxlPW4ubGVuZ3RoO2lmKDA+PWN8fDRFMzw9YylyZXR1cm4gYztmb3IobD0wO2w8ZTtsKz0xKWZvcig7Yz49dFtsXTspYy09dFtsXSx2Kz1uW2xdO3JldHVybiB2fX0pKCk7eC5QYXJzZT1mdW5jdGlvbihkLHAscSl7ZnVuY3Rpb24gayhhKXtmdW5jdGlvbiBiKGgpe3ZhciByPWFhKGgsIjpiZWZvcmUiKSx3PWFhKGgsIjphZnRlciIpO3ImJmYucHVzaCh7dHlwZToiYmVmb3JlIixwc2V1ZG86cixlbDpofSk7dyYmZi5wdXNoKHt0eXBlOiJhZnRlciIscHNldWRvOncsZWw6aH0pfXZhciBmPVtdLGc9W107KGZ1bmN0aW9uKCl7Zm9yKHZhciBoPS86YmVmb3JlfDphZnRlci8sCnI9Ui5zdHlsZVNoZWV0cyx3PTAsbT1yLmxlbmd0aDt3PG07dysrKXRyeXtmb3IodmFyIEQ9clt3XS5jc3NSdWxlcyx1PTAsSD1ELmxlbmd0aDt1PEg7dSsrKWgudGVzdChEW3VdLnNlbGVjdG9yVGV4dCkmJmcucHVzaChEW3VdLnNlbGVjdG9yVGV4dCl9Y2F0Y2goTCl7fXc9MDtmb3IobT1nLmxlbmd0aDt3PG07dysrKWdbd109Z1t3XS5tYXRjaCgvKF5bXjpdKikvKVsxXX0pKCk7KGZ1bmN0aW9uKGgpe2g9Ui5xdWVyeVNlbGVjdG9yQWxsKGcuZmlsdGVyKGZ1bmN0aW9uKG0pe3JldHVybiBtPyEwOiExfSkuam9pbigiLCIpKTtmb3IodmFyIHI9MCx3PWgubGVuZ3RoO3I8dztyKyspYihoW3JdKX0pKGEpOyhmdW5jdGlvbigpe2YuZm9yRWFjaChmdW5jdGlvbihoKXtoPWguZWw7aC5jbGFzc0xpc3Q\/aC5jbGFzc0xpc3QuYWRkKCJfX19odG1sMmNhbnZhc19fX3BzZXVkb2VsZW1lbnQtcGFyZW50Iik6aC5jbGFzc05hbWUrPSIgX19faHRtbDJjYW52YXNfX19wc2V1ZG9lbGVtZW50LXBhcmVudCJ9KTsKZi5mb3JFYWNoKGZ1bmN0aW9uKGgpeyJiZWZvcmUiPT09aC50eXBlP2guZWwuaW5zZXJ0QmVmb3JlKGgucHNldWRvLGguZWwuZmlyc3RDaGlsZCk6aC5lbC5hcHBlbmRDaGlsZChoLnBzZXVkbyl9KX0pKCl9ZnVuY3Rpb24gYyhhLGIpe2E9cGFyc2VJbnQoQyhhLGIpLDEwKTtyZXR1cm4gaXNOYU4oYSk\/MDphfWZ1bmN0aW9uIG4oYSxiLGYsZyxoLHIpeyJ0cmFuc3BhcmVudCIhPT1yJiYoYS5zZXRWYXJpYWJsZSgiZmlsbFN0eWxlIixyKSxhLmZpbGxSZWN0KGIsZixnLGgpKX1mdW5jdGlvbiB0KGEsYixmKXtpZigwPGEubGVuZ3RoKXJldHVybiBiK2YudG9VcHBlckNhc2UoKX1mdW5jdGlvbiB2KGEsYil7c3dpdGNoKGIpe2Nhc2UgImxvd2VyY2FzZSI6cmV0dXJuIGEudG9Mb3dlckNhc2UoKTtjYXNlICJjYXBpdGFsaXplIjpyZXR1cm4gYS5yZXBsYWNlKC8oXnxcc3w6fC18XCh8XCkpKFthLXpdKS9nLHQpO2Nhc2UgInVwcGVyY2FzZSI6cmV0dXJuIGEudG9VcHBlckNhc2UoKTtkZWZhdWx0OnJldHVybiBhfX0KZnVuY3Rpb24gbChhLGIsZixnKXt2YXIgaD1DKGIsImZvbnRXZWlnaHQiKSxyPUMoYiwiZm9udEZhbWlseSIpLHc9QyhiLCJmb250U2l6ZSIpLG09TS5wYXJzZVRleHRTaGFkb3dzKEMoYiwidGV4dFNoYWRvdyIpKTtzd2l0Y2gocGFyc2VJbnQoaCwxMCkpe2Nhc2UgNDAxOmg9ImJvbGQiO2JyZWFrO2Nhc2UgNDAwOmg9Im5vcm1hbCJ9YS5zZXRWYXJpYWJsZSgiZmlsbFN0eWxlIixnKTthLnNldFZhcmlhYmxlKCJmb250IixbQyhiLCJmb250U3R5bGUiKSxDKGIsImZvbnRWYXJpYW50IiksaCx3LHJdLmpvaW4oIiAiKSk7YS5zZXRWYXJpYWJsZSgidGV4dEFsaWduIiwibGVmdCIpO20ubGVuZ3RoJiYoYS5zZXRWYXJpYWJsZSgic2hhZG93Q29sb3IiLG1bMF0uY29sb3IpLGEuc2V0VmFyaWFibGUoInNoYWRvd09mZnNldFgiLG1bMF0ub2Zmc2V0WCksYS5zZXRWYXJpYWJsZSgic2hhZG93T2Zmc2V0WSIsbVswXS5vZmZzZXRZKSxhLnNldFZhcmlhYmxlKCJzaGFkb3dCbHVyIixtWzBdLmJsdXIpKTsKaWYoIm5vbmUiIT09ZilyZXR1cm4gTS5Gb250KHIsdyxQKX1mdW5jdGlvbiBlKGEsYixmKXt2YXIgZz1mLmN0eCxoPUMoYSwiY29sb3IiKSxyPUMoYSwidGV4dERlY29yYXRpb24iKSx3PUMoYSwidGV4dEFsaWduIiksbT1iLEQ9MDtpZigwPE0udHJpbVRleHQoYi5ub2RlVmFsdWUpLmxlbmd0aCl7Yi5ub2RlVmFsdWU9dihiLm5vZGVWYWx1ZSxDKGEsInRleHRUcmFuc2Zvcm0iKSk7dz13LnJlcGxhY2UoWyItd2Via2l0LWF1dG8iXSxbImF1dG8iXSk7dmFyIHU9IXAubGV0dGVyUmVuZGVyaW5nJiYvXihsZWZ0fHJpZ2h0fGp1c3RpZnl8YXV0bykkLy50ZXN0KHcpJiYvXihub3JtYWx8bm9uZXwwcHgpJC8udGVzdChDKGEsImxldHRlclNwYWNpbmciKSk\/Yi5ub2RlVmFsdWUuc3BsaXQoLyhcYnwgKS8pOmIubm9kZVZhbHVlLnNwbGl0KCIiKSxIPWwoZyxhLHIsaCk7cC5jaGluZXNlJiZ1LmZvckVhY2goZnVuY3Rpb24oTCxGKXsvLipbXHU0RTAwLVx1OUZBNV0uKiQvLnRlc3QoTCkmJihMPQpMLnNwbGl0KCIiKSxMLnVuc2hpZnQoRiwxKSx1LnNwbGljZS5hcHBseSh1LEwpKX0pO3UuZm9yRWFjaChmdW5jdGlvbihMLEYpe3ZhciBWPUY8dS5sZW5ndGgtMTtGPWYudHJhbnNmb3JtLm1hdHJpeDtpZih6YS5yYW5nZUJvdW5kcyYmIUYpe2lmKCJub25lIiE9PXJ8fDAhPT1NLnRyaW1UZXh0KEwpLmxlbmd0aCl7Rj1tO1Y9RDt2YXIgUz1QLmNyZWF0ZVJhbmdlKCk7Uy5zZXRTdGFydChGLFYpO1Muc2V0RW5kKEYsVitMLmxlbmd0aCk7Uz1TLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpfUQrPUwubGVuZ3RofWVsc2UgaWYobSYmInN0cmluZyI9PT10eXBlb2YgbS5ub2RlVmFsdWUpe1Y9Vj9tLnNwbGl0VGV4dChMLmxlbmd0aCk6bnVsbDt2YXIgWj1tO1M9Wi5wYXJlbnROb2RlO3ZhciBjYT1QLmNyZWF0ZUVsZW1lbnQoIndyYXBwZXIiKSxlYT1aLmNsb25lTm9kZSghMCk7Y2EuYXBwZW5kQ2hpbGQoWi5jbG9uZU5vZGUoITApKTtTLnJlcGxhY2VDaGlsZChjYSxaKTtGPUY\/TS5PZmZzZXRCb3VuZHMoY2EpOgpNLkJvdW5kcyhjYSk7Uy5yZXBsYWNlQ2hpbGQoZWEsY2EpO1M9RjttPVZ9aWYoRj1TKXN3aXRjaChWPUYubGVmdCxTPUYuYm90dG9tLG51bGwhPT1MJiYwPE0udHJpbVRleHQoTCkubGVuZ3RoJiZnLmZpbGxUZXh0KEwsVixTKSxyKXtjYXNlICJ1bmRlcmxpbmUiOm4oZyxGLmxlZnQsTWF0aC5yb3VuZChGLnRvcCtILmJhc2VsaW5lK0gubGluZVdpZHRoKSxGLndpZHRoLDEsaCk7YnJlYWs7Y2FzZSAib3ZlcmxpbmUiOm4oZyxGLmxlZnQsTWF0aC5yb3VuZChGLnRvcCksRi53aWR0aCwxLGgpO2JyZWFrO2Nhc2UgImxpbmUtdGhyb3VnaCI6bihnLEYubGVmdCxNYXRoLmNlaWwoRi50b3ArSC5taWRkbGUrSC5saW5lV2lkdGgpLEYud2lkdGgsMSxoKX19KX19ZnVuY3Rpb24gSShhLGIsZil7Yj1iLmN0eDt2YXIgZz1DKGEsImxpc3RTdHlsZVR5cGUiKTtpZigvXihkZWNpbWFsfGRlY2ltYWwtbGVhZGluZy16ZXJvfHVwcGVyLWFscGhhfHVwcGVyLWxhdGlufHVwcGVyLXJvbWFufGxvd2VyLWFscGhhfGxvd2VyLWdyZWVrfGxvd2VyLWxhdGlufGxvd2VyLXJvbWFuKSQvaS50ZXN0KGcpKXt2YXIgaD0KLTEscj0xLHc9YS5wYXJlbnROb2RlLmNoaWxkTm9kZXM7aWYoYS5wYXJlbnROb2RlKXtmb3IoO3dbKytoXSE9PWE7KTE9PT13W2hdLm5vZGVUeXBlJiZyKys7aD1yfWVsc2UgaD0tMTtzd2l0Y2goZyl7Y2FzZSAiZGVjaW1hbCI6dmFyIG09aDticmVhaztjYXNlICJkZWNpbWFsLWxlYWRpbmctemVybyI6bT0xPT09aC50b1N0cmluZygpLmxlbmd0aD8iMCIraC50b1N0cmluZygpOmgudG9TdHJpbmcoKTticmVhaztjYXNlICJ1cHBlci1yb21hbiI6bT14LkdlbmVyYXRlLkxpc3RSb21hbihoKTticmVhaztjYXNlICJsb3dlci1yb21hbiI6bT14LkdlbmVyYXRlLkxpc3RSb21hbihoKS50b0xvd2VyQ2FzZSgpO2JyZWFrO2Nhc2UgImxvd2VyLWFscGhhIjptPXguR2VuZXJhdGUuTGlzdEFscGhhKGgpLnRvTG93ZXJDYXNlKCk7YnJlYWs7Y2FzZSAidXBwZXItYWxwaGEiOm09eC5HZW5lcmF0ZS5MaXN0QWxwaGEoaCl9bSs9Ii4gIjtoPVAuY3JlYXRlRWxlbWVudCgiYm91bmRlbGVtZW50Iik7Cmguc3R5bGUuZGlzcGxheT0iaW5saW5lIjtyPWEuc3R5bGUubGlzdFN0eWxlVHlwZTthLnN0eWxlLmxpc3RTdHlsZVR5cGU9Im5vbmUiO2guYXBwZW5kQ2hpbGQoUC5jcmVhdGVUZXh0Tm9kZShtKSk7YS5pbnNlcnRCZWZvcmUoaCxhLmZpcnN0Q2hpbGQpO2c9TS5Cb3VuZHMoaCk7YS5yZW1vdmVDaGlsZChoKTthLnN0eWxlLmxpc3RTdHlsZVR5cGU9cjtsKGIsYSwibm9uZSIsQyhhLCJjb2xvciIpKTsiaW5zaWRlIj09PUMoYSwibGlzdFN0eWxlUG9zaXRpb24iKSYmKGIuc2V0VmFyaWFibGUoInRleHRBbGlnbiIsImxlZnQiKSxhPWYubGVmdCxmPWcuYm90dG9tLG51bGwhPT1tJiYwPE0udHJpbVRleHQobSkubGVuZ3RoJiZiLmZpbGxUZXh0KG0sYSxmKSl9fWZ1bmN0aW9uIHooYSl7cmV0dXJuKGE9ZFthXSkmJiEwPT09YS5zdWNjZWVkZWQ\/YS5pbWc6ITF9ZnVuY3Rpb24gRShhLGIpe3ZhciBmPU1hdGgubWF4KGEubGVmdCxiLmxlZnQpLGc9TWF0aC5tYXgoYS50b3AsYi50b3ApO3JldHVybntsZWZ0OmYsCnRvcDpnLHdpZHRoOk1hdGgubWluKGEubGVmdCthLndpZHRoLGIubGVmdCtiLndpZHRoKS1mLGhlaWdodDpNYXRoLm1pbihhLnRvcCthLmhlaWdodCxiLnRvcCtiLmhlaWdodCktZ319ZnVuY3Rpb24gSyhhLGIsZixnLGgpe3ZhciByPWMoYiwicGFkZGluZ0xlZnQiKSx3PWMoYiwicGFkZGluZ1RvcCIpLG09YyhiLCJwYWRkaW5nUmlnaHQiKTtiPWMoYiwicGFkZGluZ0JvdHRvbSIpO1UoYSxmLDAsMCxmLndpZHRoLGYuaGVpZ2h0LGcubGVmdCtyK2hbM10ud2lkdGgsZy50b3ArdytoWzBdLndpZHRoLGcud2lkdGgtKGhbMV0ud2lkdGgraFszXS53aWR0aCtyK20pLGcuaGVpZ2h0LShoWzBdLndpZHRoK2hbMl0ud2lkdGgrdytiKSl9ZnVuY3Rpb24gSihhKXtyZXR1cm5bIlRvcCIsIlJpZ2h0IiwiQm90dG9tIiwiTGVmdCJdLm1hcChmdW5jdGlvbihiKXtyZXR1cm57d2lkdGg6YyhhLCJib3JkZXIiK2IrIldpZHRoIiksY29sb3I6QyhhLCJib3JkZXIiK2IrIkNvbG9yIil9fSl9ZnVuY3Rpb24gRyhhKXtyZXR1cm5bIlRvcExlZnQiLAoiVG9wUmlnaHQiLCJCb3R0b21SaWdodCIsIkJvdHRvbUxlZnQiXS5tYXAoZnVuY3Rpb24oYil7cmV0dXJuIEMoYSwiYm9yZGVyIitiKyJSYWRpdXMiKX0pfWZ1bmN0aW9uIE8oYSxiLGYsZyl7dmFyIGg9KE1hdGguc3FydCgyKS0xKS8zKjQscj1mKmg7aCo9ZztmPWErZjtnPWIrZztyZXR1cm57dG9wTGVmdDpUKHt4OmEseTpnfSx7eDphLHk6Zy1ofSx7eDpmLXIseTpifSx7eDpmLHk6Yn0pLHRvcFJpZ2h0OlQoe3g6YSx5OmJ9LHt4OmErcix5OmJ9LHt4OmYseTpnLWh9LHt4OmYseTpnfSksYm90dG9tUmlnaHQ6VCh7eDpmLHk6Yn0se3g6Zix5OmIraH0se3g6YStyLHk6Z30se3g6YSx5Omd9KSxib3R0b21MZWZ0OlQoe3g6Zix5Omd9LHt4OmYtcix5Omd9LHt4OmEseTpiK2h9LHt4OmEseTpifSl9fWZ1bmN0aW9uIFQoYSxiLGYsZyl7dmFyIGg9ZnVuY3Rpb24ocix3LG0pe3JldHVybnt4OnIueCsody54LXIueCkqbSx5OnIueSsody55LXIueSkqbX19O3JldHVybntzdGFydDphLHN0YXJ0Q29udHJvbDpiLAplbmRDb250cm9sOmYsZW5kOmcsc3ViZGl2aWRlOmZ1bmN0aW9uKHIpe3ZhciB3PWgoYSxiLHIpLG09aChiLGYsciksRD1oKGYsZyxyKSx1PWgodyxtLHIpO209aChtLEQscik7cj1oKHUsbSxyKTtyZXR1cm5bVChhLHcsdSxyKSxUKHIsbSxELGcpXX0sY3VydmVUbzpmdW5jdGlvbihyKXtyLnB1c2goWyJiZXppZXJDdXJ2ZSIsYi54LGIueSxmLngsZi55LGcueCxnLnldKX0sY3VydmVUb1JldmVyc2VkOmZ1bmN0aW9uKHIpe3IucHVzaChbImJlemllckN1cnZlIixmLngsZi55LGIueCxiLnksYS54LGEueV0pfX19ZnVuY3Rpb24gVyhhLGIsZixnLGgscix3KXswPGJbMF18fDA8YlsxXT8oYS5wdXNoKFsibGluZSIsZ1swXS5zdGFydC54LGdbMF0uc3RhcnQueV0pLGdbMF0uY3VydmVUbyhhKSxnWzFdLmN1cnZlVG8oYSkpOmEucHVzaChbImxpbmUiLHIsd10pOygwPGZbMF18fDA8ZlsxXSkmJmEucHVzaChbImxpbmUiLGhbMF0uc3RhcnQueCxoWzBdLnN0YXJ0LnldKX1mdW5jdGlvbiBiYShhLApiLGYsZyxoLHIsdyl7dmFyIG09W107MDxiWzBdfHwwPGJbMV0\/KG0ucHVzaChbImxpbmUiLGdbMV0uc3RhcnQueCxnWzFdLnN0YXJ0LnldKSxnWzFdLmN1cnZlVG8obSkpOm0ucHVzaChbImxpbmUiLGEuYzFbMF0sYS5jMVsxXV0pOzA8ZlswXXx8MDxmWzFdPyhtLnB1c2goWyJsaW5lIixyWzBdLnN0YXJ0LngsclswXS5zdGFydC55XSksclswXS5jdXJ2ZVRvKG0pLG0ucHVzaChbImxpbmUiLHdbMF0uZW5kLngsd1swXS5lbmQueV0pLHdbMF0uY3VydmVUb1JldmVyc2VkKG0pKToobS5wdXNoKFsibGluZSIsYS5jMlswXSxhLmMyWzFdXSksbS5wdXNoKFsibGluZSIsYS5jM1swXSxhLmMzWzFdXSkpOzA8YlswXXx8MDxiWzFdPyhtLnB1c2goWyJsaW5lIixoWzFdLmVuZC54LGhbMV0uZW5kLnldKSxoWzFdLmN1cnZlVG9SZXZlcnNlZChtKSk6bS5wdXNoKFsibGluZSIsYS5jNFswXSxhLmM0WzFdXSk7cmV0dXJuIG19ZnVuY3Rpb24geShhLGIsZil7dmFyIGc9Yi5sZWZ0LGg9Yi50b3Ascj0KYi53aWR0aCx3PWIuaGVpZ2h0LG09RyhhKSxEPWIubGVmdCx1PWIudG9wLEg9Yi53aWR0aCxMPWIuaGVpZ2h0LEY9bVswXVswXSxWPW1bMF1bMV0sUz1tWzFdWzBdLFo9bVsxXVsxXSxjYT1tWzJdWzBdLGVhPW1bMl1bMV0sWT1tWzNdWzBdLFg9bVszXVsxXSxvYT1ILVMsc2E9TC1lYSx0YT1ILWNhLGZhPUwtWCxrYT1PKEQsdSxGLFYpLnRvcExlZnQuc3ViZGl2aWRlKC41KTtGPU8oRCtmWzNdLndpZHRoLHUrZlswXS53aWR0aCxNYXRoLm1heCgwLEYtZlszXS53aWR0aCksTWF0aC5tYXgoMCxWLWZbMF0ud2lkdGgpKS50b3BMZWZ0LnN1YmRpdmlkZSguNSk7Vj1PKEQrb2EsdSxTLFopLnRvcFJpZ2h0LnN1YmRpdmlkZSguNSk7Uz1PKEQrTWF0aC5taW4ob2EsSCtmWzNdLndpZHRoKSx1K2ZbMF0ud2lkdGgsb2E+SCtmWzNdLndpZHRoPzA6Uy1mWzNdLndpZHRoLFotZlswXS53aWR0aCkudG9wUmlnaHQuc3ViZGl2aWRlKC41KTtaPU8oRCt0YSx1K3NhLGNhLGVhKS5ib3R0b21SaWdodC5zdWJkaXZpZGUoLjUpOwpIPU8oRCtNYXRoLm1pbih0YSxIK2ZbM10ud2lkdGgpLHUrTWF0aC5taW4oc2EsTCtmWzBdLndpZHRoKSxNYXRoLm1heCgwLGNhLWZbMV0ud2lkdGgpLE1hdGgubWF4KDAsZWEtZlsyXS53aWR0aCkpLmJvdHRvbVJpZ2h0LnN1YmRpdmlkZSguNSk7TD1PKEQsdStmYSxZLFgpLmJvdHRvbUxlZnQuc3ViZGl2aWRlKC41KTtEPU8oRCtmWzNdLndpZHRoLHUrZmEsTWF0aC5tYXgoMCxZLWZbM10ud2lkdGgpLE1hdGgubWF4KDAsWC1mWzJdLndpZHRoKSkuYm90dG9tTGVmdC5zdWJkaXZpZGUoLjUpO3U9W107c3dpdGNoKEMoYSwiYmFja2dyb3VuZENsaXAiKSl7Y2FzZSAiY29udGVudC1ib3giOmNhc2UgInBhZGRpbmctYm94IjpXKHUsbVswXSxtWzFdLEYsUyxiLmxlZnQrZlszXS53aWR0aCxiLnRvcCtmWzBdLndpZHRoKTtXKHUsbVsxXSxtWzJdLFMsSCxiLmxlZnQrYi53aWR0aC1mWzFdLndpZHRoLGIudG9wK2ZbMF0ud2lkdGgpO1codSxtWzJdLG1bM10sSCxELGIubGVmdCtiLndpZHRoLWZbMV0ud2lkdGgsCmIudG9wK2IuaGVpZ2h0LWZbMl0ud2lkdGgpO1codSxtWzNdLG1bMF0sRCxGLGIubGVmdCtmWzNdLndpZHRoLGIudG9wK2IuaGVpZ2h0LWZbMl0ud2lkdGgpO2JyZWFrO2RlZmF1bHQ6Vyh1LG1bMF0sbVsxXSxrYSxWLGIubGVmdCxiLnRvcCksVyh1LG1bMV0sbVsyXSxWLFosYi5sZWZ0K2Iud2lkdGgsYi50b3ApLFcodSxtWzJdLG1bM10sWixMLGIubGVmdCtiLndpZHRoLGIudG9wK2IuaGVpZ2h0KSxXKHUsbVszXSxtWzBdLEwsa2EsYi5sZWZ0LGIudG9wK2IuaGVpZ2h0KX1mYT17Y2xpcDp1LGJvcmRlcnM6W119O2ZvcihhPTA7ND5hO2ErKylpZigwPGZbYV0ud2lkdGgpe2I9Zzt1PWg7WT1yO1g9dy1mWzJdLndpZHRoO3N3aXRjaChhKXtjYXNlIDA6WD1mWzBdLndpZHRoO3ZhciBsYT1iYSh7YzE6W2IsdV0sYzI6W2IrWSx1XSxjMzpbYitZLWZbMV0ud2lkdGgsdStYXSxjNDpbYitmWzNdLndpZHRoLHUrWF19LG1bMF0sbVsxXSxrYSxGLFYsUyk7YnJlYWs7Y2FzZSAxOmI9ZytyLWZbMV0ud2lkdGg7Clk9ZlsxXS53aWR0aDtsYT1iYSh7YzE6W2IrWSx1XSxjMjpbYitZLHUrWCtmWzJdLndpZHRoXSxjMzpbYix1K1hdLGM0OltiLHUrZlswXS53aWR0aF19LG1bMV0sbVsyXSxWLFMsWixIKTticmVhaztjYXNlIDI6dT11K3ctZlsyXS53aWR0aDtYPWZbMl0ud2lkdGg7bGE9YmEoe2MxOltiK1ksdStYXSxjMjpbYix1K1hdLGMzOltiK2ZbM10ud2lkdGgsdV0sYzQ6W2IrWS1mWzNdLndpZHRoLHVdfSxtWzJdLG1bM10sWixILEwsRCk7YnJlYWs7Y2FzZSAzOlk9ZlszXS53aWR0aCxsYT1iYSh7YzE6W2IsdStYK2ZbMl0ud2lkdGhdLGMyOltiLHVdLGMzOltiK1ksdStmWzBdLndpZHRoXSxjNDpbYitZLHUrWF19LG1bM10sbVswXSxMLEQsa2EsRil9ZmEuYm9yZGVycy5wdXNoKHthcmdzOmxhLGNvbG9yOmZbYV0uY29sb3J9KX1yZXR1cm4gZmF9ZnVuY3Rpb24gQShhLGIpe3ZhciBmPWEuZHJhd1NoYXBlKCk7Yi5mb3JFYWNoKGZ1bmN0aW9uKGcsaCl7ZlswPT09aD8ibW92ZVRvIjpnWzBdKyJUbyJdLmFwcGx5KG51bGwsCmcuc2xpY2UoMSkpfSk7cmV0dXJuIGZ9ZnVuY3Rpb24gQihhLGIsZil7dmFyIGc9UC5jcmVhdGVFbGVtZW50KCJ2YWx1ZXdyYXAiKTsibGluZUhlaWdodCB0ZXh0QWxpZ24gZm9udEZhbWlseSBjb2xvciBmb250U2l6ZSBwYWRkaW5nTGVmdCBwYWRkaW5nVG9wIHdpZHRoIGhlaWdodCBib3JkZXIgYm9yZGVyTGVmdFdpZHRoIGJvcmRlclRvcFdpZHRoIi5zcGxpdCgiICIpLmZvckVhY2goZnVuY3Rpb24oaCl7dHJ5e2cuc3R5bGVbaF09QyhhLGgpfWNhdGNoKHIpe00ubG9nKCJodG1sMmNhbnZhczogUGFyc2U6IEV4Y2VwdGlvbiBjYXVnaHQgaW4gcmVuZGVyRm9ybVZhbHVlOiAiK3IubWVzc2FnZSl9fSk7Zy5zdHlsZS5ib3JkZXJDb2xvcj0iYmxhY2siO2cuc3R5bGUuYm9yZGVyU3R5bGU9InNvbGlkIjtnLnN0eWxlLmRpc3BsYXk9ImJsb2NrIjtnLnN0eWxlLnBvc2l0aW9uPSJhYnNvbHV0ZSI7aWYoL14oc3VibWl0fHJlc2V0fGJ1dHRvbnx0ZXh0fHBhc3N3b3JkKSQvLnRlc3QoYS50eXBlKXx8CiJTRUxFQ1QiPT09YS5ub2RlTmFtZSlnLnN0eWxlLmxpbmVIZWlnaHQ9QyhhLCJoZWlnaHQiKTtnLnN0eWxlLnRvcD1iLnRvcCsicHgiO2cuc3R5bGUubGVmdD1iLmxlZnQrInB4IjsoYj0iU0VMRUNUIj09PWEubm9kZU5hbWU\/KGEub3B0aW9uc1thLnNlbGVjdGVkSW5kZXhdfHwwKS50ZXh0OmEudmFsdWUpfHwoYj1hLnBsYWNlaG9sZGVyKTtiPVAuY3JlYXRlVGV4dE5vZGUoYik7Zy5hcHBlbmRDaGlsZChiKTttYS5hcHBlbmRDaGlsZChnKTtlKGEsYixmKTttYS5yZW1vdmVDaGlsZChnKX1mdW5jdGlvbiBVKGEpe2EuZHJhd0ltYWdlLmFwcGx5KGEsQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLDEpKX1mdW5jdGlvbiBhYShhLGIpe3ZhciBmPU4uZ2V0Q29tcHV0ZWRTdHlsZShhLGIpO2E9Ti5nZXRDb21wdXRlZFN0eWxlKGEpO2lmKGYmJmYuY29udGVudCYmIm5vbmUiIT09Zi5jb250ZW50JiYiLW1vei1hbHQtY29udGVudCIhPT1mLmNvbnRlbnQmJiJub25lIiE9PQpmLmRpc3BsYXkmJmEuY29udGVudCE9PWYuY29udGVudCl7YT1mLmNvbnRlbnQrIiI7aWYoIiciPT09YVswXXx8JyInPT09YVswXSlhPWEucmVwbGFjZSgvKF5bJyJdKXwoWyciXSQpL2csIiIpO2I9InVybCI9PT1hLnN1YnN0cigwLDMpO3ZhciBnPVIuY3JlYXRlRWxlbWVudChiPyJpbWciOiJzcGFuIik7Zy5jbGFzc05hbWU9Il9fX2h0bWwyY2FudmFzX19fcHNldWRvZWxlbWVudC1lbGVtZW50ICI7T2JqZWN0LmtleXMoZikuZmlsdGVyKGRhKS5mb3JFYWNoKGZ1bmN0aW9uKGgpe3RyeXtnLnN0eWxlW2hdPWZbaF19Y2F0Y2gocil7TS5sb2coWyJUcmllZCB0byBhc3NpZ24gcmVhZG9ubHkgcHJvcGVydHkgIixoLCJFcnJvcjoiLHJdKX19KTtiP2cuc3JjPU0ucGFyc2VCYWNrZ3JvdW5kSW1hZ2UoYSlbMF0uYXJnc1swXTpnLmlubmVySFRNTD1hO3JldHVybiBnfX1mdW5jdGlvbiBkYShhKXtyZXR1cm4gaXNOYU4oTi5wYXJzZUludChhLDEwKSl9ZnVuY3Rpb24gaGEoYSxiLGYsZyl7dmFyIGg9Ck1hdGgucm91bmQoZy5sZWZ0K2YubGVmdCk7Zj1NYXRoLnJvdW5kKGcudG9wK2YudG9wKTthLmNyZWF0ZVBhdHRlcm4oYik7YS50cmFuc2xhdGUoaCxmKTthLmZpbGwoKTthLnRyYW5zbGF0ZSgtaCwtZil9ZnVuY3Rpb24gbmEoYSxiLGYsZyxoLHIsdyxtKXt2YXIgRD1bXTtELnB1c2goWyJsaW5lIixNYXRoLnJvdW5kKGgpLE1hdGgucm91bmQocildKTtELnB1c2goWyJsaW5lIixNYXRoLnJvdW5kKGgrdyksTWF0aC5yb3VuZChyKV0pO0QucHVzaChbImxpbmUiLE1hdGgucm91bmQoaCt3KSxNYXRoLnJvdW5kKG0rcildKTtELnB1c2goWyJsaW5lIixNYXRoLnJvdW5kKGgpLE1hdGgucm91bmQobStyKV0pO0EoYSxEKTthLnNhdmUoKTthLmNsaXAoKTtoYShhLGIsZixnKTthLnJlc3RvcmUoKX1mdW5jdGlvbiBBYShhLGIsZil7Zm9yKHZhciBnPUMoYSwiYmFja2dyb3VuZEltYWdlIiksaD1NLnBhcnNlQmFja2dyb3VuZEltYWdlKGcpLHIsdz1oLmxlbmd0aDt3LS07KWlmKGc9aFt3XSxnLmFyZ3MmJgowIT09Zy5hcmdzLmxlbmd0aClpZihyPXooInVybCI9PT1nLm1ldGhvZD9nLmFyZ3NbMF06Zy52YWx1ZSkpe3ZhciBtPWE7Zz1iO3ZhciBEPWYsdT1yLEg9dyxMPU0uQmFja2dyb3VuZFNpemUobSxnLHUsSCk7cj1NLkJhY2tncm91bmRQb3NpdGlvbihtLGcsdSxILEwpO209TS5CYWNrZ3JvdW5kUmVwZWF0KG0sSCk7SD1MO2lmKHUud2lkdGghPT1ILndpZHRofHx1LmhlaWdodCE9PUguaGVpZ2h0KXt2YXIgRj1QLmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpO0Yud2lkdGg9SC53aWR0aDtGLmhlaWdodD1ILmhlaWdodDtMPUYuZ2V0Q29udGV4dCgiMmQiKTtVKEwsdSwwLDAsdS53aWR0aCx1LmhlaWdodCwwLDAsSC53aWR0aCxILmhlaWdodCk7dT1GfXN3aXRjaChtKXtjYXNlICJyZXBlYXQteCI6Y2FzZSAicmVwZWF0IG5vLXJlcGVhdCI6bmEoRCx1LHIsZyxnLmxlZnQsZy50b3Arci50b3AsOTk5OTksdS5oZWlnaHQpO2JyZWFrO2Nhc2UgInJlcGVhdC15IjpjYXNlICJuby1yZXBlYXQgcmVwZWF0IjpuYShELAp1LHIsZyxnLmxlZnQrci5sZWZ0LGcudG9wLHUud2lkdGgsOTk5OTkpO2JyZWFrO2Nhc2UgIm5vLXJlcGVhdCI6bmEoRCx1LHIsZyxnLmxlZnQrci5sZWZ0LGcudG9wK3IudG9wLHUud2lkdGgsdS5oZWlnaHQpO2JyZWFrO2RlZmF1bHQ6aGEoRCx1LHIse3RvcDpnLnRvcCxsZWZ0OmcubGVmdCx3aWR0aDp1LndpZHRoLGhlaWdodDp1LmhlaWdodH0pfX1lbHNlIE0ubG9nKCJodG1sMmNhbnZhczogRXJyb3IgbG9hZGluZyBiYWNrZ3JvdW5kOiIsZyl9ZnVuY3Rpb24gQmEoYSl7cmV0dXJuIGEucmVwbGFjZSgicHgiLCIiKX1mdW5jdGlvbiBDYShhLGIpe2I9LyhtYXRyaXgpXCgoLispXCkvO3ZhciBmPUMoYSwidHJhbnNmb3JtIil8fEMoYSwiLXdlYmtpdC10cmFuc2Zvcm0iKXx8QyhhLCItbW96LXRyYW5zZm9ybSIpfHxDKGEsIi1tcy10cmFuc2Zvcm0iKXx8QyhhLCItby10cmFuc2Zvcm0iKTthPUMoYSwidHJhbnNmb3JtLW9yaWdpbiIpfHxDKGEsIi13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbiIpfHwKQyhhLCItbW96LXRyYW5zZm9ybS1vcmlnaW4iKXx8QyhhLCItbXMtdHJhbnNmb3JtLW9yaWdpbiIpfHxDKGEsIi1vLXRyYW5zZm9ybS1vcmlnaW4iKXx8IjBweCAwcHgiO2E9YS5zcGxpdCgiICIpLm1hcChCYSkubWFwKE0uYXNGbG9hdCk7aWYoZiYmIm5vbmUiIT09ZiYmKGI9Zi5tYXRjaChiKSkpc3dpdGNoKGJbMV0pe2Nhc2UgIm1hdHJpeCI6dmFyIGc9YlsyXS5zcGxpdCgiLCIpLm1hcChNLnRyaW1UZXh0KS5tYXAoTS5hc0Zsb2F0KX1yZXR1cm57b3JpZ2luOmEsbWF0cml4Omd9fWZ1bmN0aW9uIERhKGEsYixmLGcpe3ZhciBoPXlhKGI\/Zi53aWR0aDpNYXRoLm1heChNYXRoLm1heChQLmJvZHkuc2Nyb2xsV2lkdGgsUC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsV2lkdGgpLE1hdGgubWF4KFAuYm9keS5vZmZzZXRXaWR0aCxQLmRvY3VtZW50RWxlbWVudC5vZmZzZXRXaWR0aCksTWF0aC5tYXgoUC5ib2R5LmNsaWVudFdpZHRoLFAuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoKSksCmI\/Zi5oZWlnaHQ6TWF0aC5tYXgoTWF0aC5tYXgoUC5ib2R5LnNjcm9sbEhlaWdodCxQLmRvY3VtZW50RWxlbWVudC5zY3JvbGxIZWlnaHQpLE1hdGgubWF4KFAuYm9keS5vZmZzZXRIZWlnaHQsUC5kb2N1bWVudEVsZW1lbnQub2Zmc2V0SGVpZ2h0KSxNYXRoLm1heChQLmJvZHkuY2xpZW50SGVpZ2h0LFAuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodCkpKSxyPWguc2V0VmFyaWFibGUoImdsb2JhbEFscGhhIixDKGEsIm9wYWNpdHkiKSooYj9iLm9wYWNpdHk6MSkpO2c9e2N0eDpoLG9wYWNpdHk6cixjc3NQb3NpdGlvbjpDKGEsInBvc2l0aW9uIiksYm9yZGVyczpKKGEpLHRyYW5zZm9ybTpnLGNsaXA6YiYmYi5jbGlwP00uRXh0ZW5kKHt9LGIuY2xpcCk6bnVsbH07dmFyIHc9KHI9InN0YXRpYyIhPT1nLmNzc1Bvc2l0aW9uKT9DKGEsInpJbmRleCIpOiJhdXRvIixtPUMoYSwib3BhY2l0eSIpLEQ9Im5vbmUiIT09QyhhLCJjc3NGbG9hdCIpO2cuekluZGV4PWg9e2RlcHRoOjAsemluZGV4OncsCmNoaWxkcmVuOltdfTtoLmlzUG9zaXRpb25lZD1yO2guaXNGbG9hdGVkPUQ7aC5vcGFjaXR5PW07aC5vd25TdGFja2luZz0iYXV0byIhPT13fHwxPm07aC5kZXB0aD1iP2IuekluZGV4LmRlcHRoKzE6MDtiJiZiLnpJbmRleC5jaGlsZHJlbi5wdXNoKGcpOyEwPT09cC51c2VPdmVyZmxvdyYmITA9PT0vKGhpZGRlbnxzY3JvbGx8YXV0bykvLnRlc3QoQyhhLCJvdmVyZmxvdyIpKSYmITE9PT0vKEJPRFkpL2kudGVzdChhLm5vZGVOYW1lKSYmKGcuY2xpcD1nLmNsaXA\/RShnLmNsaXAsZik6Zik7cmV0dXJuIGd9ZnVuY3Rpb24gRWEoYSxiLGYpe2E9e2xlZnQ6Yi5sZWZ0K2FbM10ud2lkdGgsdG9wOmIudG9wK2FbMF0ud2lkdGgsd2lkdGg6Yi53aWR0aC0oYVsxXS53aWR0aCthWzNdLndpZHRoKSxoZWlnaHQ6Yi5oZWlnaHQtKGFbMF0ud2lkdGgrYVsyXS53aWR0aCl9O2YmJihhPUUoYSxmKSk7cmV0dXJuIGF9ZnVuY3Rpb24gRmEoYSxiKXthPWIubWF0cml4P00uT2Zmc2V0Qm91bmRzKGEpOgpNLkJvdW5kcyhhKTtiLm9yaWdpblswXSs9YS5sZWZ0O2Iub3JpZ2luWzFdKz1hLnRvcDtyZXR1cm4gYX1mdW5jdGlvbiB1YShhLGIsZil7dmFyIGc9Q2EoYSxiKSxoPUZhKGEsZykscjtiPURhKGEsYixoLGcpO2c9Yi5ib3JkZXJzO3ZhciB3PWIuY3R4LG09RWEoZyxoLGIuY2xpcCksRD15KGEsaCxnKSx1PXZhLnRlc3QoYS5ub2RlTmFtZSk\/IiNlZmVmZWYiOkMoYSwiYmFja2dyb3VuZENvbG9yIik7QSh3LEQuY2xpcCk7dy5zYXZlKCk7dy5jbGlwKCk7MDxtLmhlaWdodCYmMDxtLndpZHRoJiYhZj8obih3LGgubGVmdCxoLnRvcCxoLndpZHRoLGguaGVpZ2h0LHUpLEFhKGEsbSx3KSk6ZiYmKGIuYmFja2dyb3VuZENvbG9yPXUpO3cucmVzdG9yZSgpO0QuYm9yZGVycy5mb3JFYWNoKGZ1bmN0aW9uKEgpe3ZhciBMPUguYXJncztIPUguY29sb3I7InRyYW5zcGFyZW50IiE9PUgmJih3LnNldFZhcmlhYmxlKCJmaWxsU3R5bGUiLEgpLEEodyxMKSx3LmZpbGwoKSl9KTtzd2l0Y2goYS5ub2RlTmFtZSl7Y2FzZSAiSU1HIjoocj0KeihhLmdldEF0dHJpYnV0ZSgic3JjIikpKT9LKHcsYSxyLGgsZyk6TS5sb2coImh0bWwyY2FudmFzOiBFcnJvciBsb2FkaW5nIDxpbWc+OiIrYS5nZXRBdHRyaWJ1dGUoInNyYyIpKTticmVhaztjYXNlICJJTlBVVCI6L14odGV4dHx1cmx8ZW1haWx8c3VibWl0fGJ1dHRvbnxyZXNldCkkLy50ZXN0KGEudHlwZSkmJjA8KGEudmFsdWV8fGEucGxhY2Vob2xkZXJ8fCIiKS5sZW5ndGgmJkIoYSxoLGIpO2JyZWFrO2Nhc2UgIlRFWFRBUkVBIjowPChhLnZhbHVlfHxhLnBsYWNlaG9sZGVyfHwiIikubGVuZ3RoJiZCKGEsaCxiKTticmVhaztjYXNlICJTRUxFQ1QiOjA8KGEub3B0aW9uc3x8YS5wbGFjZWhvbGRlcnx8IiIpLmxlbmd0aCYmQihhLGgsYik7YnJlYWs7Y2FzZSAiTEkiOkkoYSxiLG0pO2JyZWFrO2Nhc2UgIkNBTlZBUyI6Syh3LGEsYSxoLGcpfXJldHVybiBifWZ1bmN0aW9uIEdhKGEpe3JldHVybiJub25lIiE9PUMoYSwiZGlzcGxheSIpJiYiaGlkZGVuIiE9PUMoYSwidmlzaWJpbGl0eSIpJiYKIWEuaGFzQXR0cmlidXRlKCJkYXRhLWh0bWwyY2FudmFzLWlnbm9yZSIpfWZ1bmN0aW9uIEhhKGEsYixmKXtmfHwoZj1mdW5jdGlvbigpe30pO2lmKEdhKGEpJiYoYj11YShhLGIsITEpfHxiLCF2YS50ZXN0KGEubm9kZU5hbWUpKSlyZXR1cm4gd2EoYSxiLGYpO2YoKX1mdW5jdGlvbiB3YShhLGIsZil7ZnVuY3Rpb24gZyhtKXttLm5vZGVUeXBlPT09bS5FTEVNRU5UX05PREU\/SGEobSxiLGgpOihtLm5vZGVUeXBlPT09bS5URVhUX05PREUmJmUoYSxtLGIpLGgoKSl9ZnVuY3Rpb24gaChtKXswPj0tLXcmJihNLmxvZygiZmluaXNoZWQgcmVuZGVyaW5nICIrci5sZW5ndGgrIiBjaGlsZHJlbi4iKSxmKCkpfXZhciByPU0uQ2hpbGRyZW4oYSksdz1yLmxlbmd0aCsxO2goKTtwLmFzeW5jP3IuZm9yRWFjaChmdW5jdGlvbihtKXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ZyhtKX0sMCl9KTpyLmZvckVhY2goZyl9Ti5zY3JvbGwoMCwwKTt2YXIgaWE9cC5lbGVtZW50cz09PVE\/Ui5ib2R5OnAuZWxlbWVudHNbMF0sClA9aWEub3duZXJEb2N1bWVudCxNPXguVXRpbCx6YT1NLlN1cHBvcnQocCxQKSx2YT1uZXcgUmVnRXhwKCIoIitwLmlnbm9yZUVsZW1lbnRzKyIpIiksbWE9UC5ib2R5LEM9TS5nZXRDU1MscGE9UC5jcmVhdGVFbGVtZW50KCJzdHlsZSIpO3BhLmlubmVySFRNTD0nLl9fX2h0bWwyY2FudmFzX19fcHNldWRvZWxlbWVudC1wYXJlbnQ6YmVmb3JlIHsgY29udGVudDogIiIgIWltcG9ydGFudDsgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9Ll9fX2h0bWwyY2FudmFzX19fcHNldWRvZWxlbWVudC1wYXJlbnQ6YWZ0ZXIgeyBjb250ZW50OiAiIiAhaW1wb3J0YW50OyBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0nO21hLmFwcGVuZENoaWxkKHBhKTtkPWR8fHt9OyhmdW5jdGlvbigpe3ZhciBhPUMoUi5kb2N1bWVudEVsZW1lbnQsImJhY2tncm91bmRDb2xvciIpLGI9TS5pc1RyYW5zcGFyZW50KGEpJiZpYT09PVIuYm9keSxmPXVhKGlhLG51bGwsITEsYik7ayhpYSk7d2EoaWEsZixmdW5jdGlvbigpe2ImJgooYT1mLmJhY2tncm91bmRDb2xvcik7bWEucmVtb3ZlQ2hpbGQocGEpO2Zvcih2YXIgZz1SLmdldEVsZW1lbnRzQnlDbGFzc05hbWUoIl9fX2h0bWwyY2FudmFzX19fcHNldWRvZWxlbWVudC1lbGVtZW50Iik7Zy5sZW5ndGg7KWdbMF0ucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChnWzBdKTtmb3IoZz1SLmdldEVsZW1lbnRzQnlDbGFzc05hbWUoIl9fX2h0bWwyY2FudmFzX19fcHNldWRvZWxlbWVudC1wYXJlbnQiKTtnLmxlbmd0aDspe3ZhciBoPWdbMF07aC5jbGFzc0xpc3Q\/aC5jbGFzc0xpc3QucmVtb3ZlKCJfX19odG1sMmNhbnZhc19fX3BzZXVkb2VsZW1lbnQtcGFyZW50Iik6aC5jbGFzc05hbWU9aC5jbGFzc05hbWUucmVwbGFjZSgiX19faHRtbDJjYW52YXNfX19wc2V1ZG9lbGVtZW50LXBhcmVudCIsIiIpLnRyaW0oKX1NLmxvZygiRG9uZSBwYXJzaW5nLCBtb3ZpbmcgdG8gUmVuZGVyLiIpO3Eoe2JhY2tncm91bmRDb2xvcjphLHN0YWNrOmZ9KX0pfSkoKX07eC5QcmVsb2FkPWZ1bmN0aW9uKGQpe2Z1bmN0aW9uIHAoKXtlLmxvZygiaHRtbDJjYW52YXM6IHN0YXJ0OiBpbWFnZXM6ICIrCmwubnVtTG9hZGVkKyIgLyAiK2wubnVtVG90YWwrIiAoZmFpbGVkOiAiK2wubnVtRmFpbGVkKyIpIik7IWwuZmlyc3RSdW4mJmwubnVtTG9hZGVkPj1sLm51bVRvdGFsJiYoZS5sb2coIkZpbmlzaGVkIGxvYWRpbmcgaW1hZ2VzOiAjICIrbC5udW1Ub3RhbCsiIChmYWlsZWQ6ICIrbC5udW1GYWlsZWQrIikiKSwiZnVuY3Rpb24iPT09dHlwZW9mIGQuY29tcGxldGUmJmQuY29tcGxldGUobCkpfWZ1bmN0aW9uIHEoeSxBLEIpe3ZhciBVPWQucHJveHk7Ry5ocmVmPXk7eT1HLmhyZWY7dmFyIGFhPSJodG1sMmNhbnZhc18iK0krKztCLmNhbGxiYWNrbmFtZT1hYTtVPS0xPFUuaW5kZXhPZigiPyIpP1UrIiYiOlUrIj8iO1UrPSJ1cmw9IitlbmNvZGVVUklDb21wb25lbnQoeSkrIiZjYWxsYmFjaz0iK2FhO3ZhciBkYT1FLmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpO05bYWFdPWZ1bmN0aW9uKGhhKXsiZXJyb3I6Ij09PWhhLnN1YnN0cmluZygwLDYpPyhCLnN1Y2NlZWRlZD0hMSxsLm51bUxvYWRlZCsrLApsLm51bUZhaWxlZCsrLHAoKSk6KHYoQSxCKSxBLnNyYz1oYSk7TlthYV09UTt0cnl7ZGVsZXRlIE5bYWFdfWNhdGNoKG5hKXt9ZGEucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChkYSk7ZGE9bnVsbDtkZWxldGUgQi5zY3JpcHQ7ZGVsZXRlIEIuY2FsbGJhY2tuYW1lfTtkYS5zZXRBdHRyaWJ1dGUoInR5cGUiLCJ0ZXh0L2phdmFzY3JpcHQiKTtkYS5zZXRBdHRyaWJ1dGUoInNyYyIsVSk7Qi5zY3JpcHQ9ZGE7Ti5kb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRhKX1mdW5jdGlvbiBrKHksQSl7QT1OLmdldENvbXB1dGVkU3R5bGUoeSxBKTt2YXIgQj1BLmNvbnRlbnQ7InVybCI9PT1CLnN1YnN0cigwLDMpJiZiYS5sb2FkSW1hZ2UoeC5VdGlsLnBhcnNlQmFja2dyb3VuZEltYWdlKEIpWzBdLmFyZ3NbMF0pO24oQS5iYWNrZ3JvdW5kSW1hZ2UseSl9ZnVuY3Rpb24gYyh5KXtyZXR1cm4geSYmeS5tZXRob2QmJnkuYXJncyYmMDx5LmFyZ3MubGVuZ3RofWZ1bmN0aW9uIG4oeSxBKXt2YXIgQjsKeC5VdGlsLnBhcnNlQmFja2dyb3VuZEltYWdlKHkpLmZpbHRlcihjKS5mb3JFYWNoKGZ1bmN0aW9uKFUpe2lmKCJ1cmwiPT09VS5tZXRob2QpYmEubG9hZEltYWdlKFUuYXJnc1swXSk7ZWxzZSBpZihVLm1ldGhvZC5tYXRjaCgvXC0\/Z3JhZGllbnQkLykpe0I9PT1RJiYoQj14LlV0aWwuQm91bmRzKEEpKTtVPVUudmFsdWU7dmFyIGFhPXguR2VuZXJhdGUuR3JhZGllbnQoVSxCKTthYSE9PVEmJihsW1VdPXtpbWc6YWEsc3VjY2VlZGVkOiEwfSxsLm51bVRvdGFsKyssbC5udW1Mb2FkZWQrKyxwKCkpfX0pfWZ1bmN0aW9uIHQoeSl7dmFyIEE9ITE7dHJ5e2lmKG51bGwhPT15LmdldEF0dHJpYnV0ZSgiaGlkZGVuIil8fCJub25lIj09PWdldENvbXB1dGVkU3R5bGUoeSkuZ2V0UHJvcGVydHlWYWx1ZSgiZGlzcGxheSIpKXJldHVybjtlLkNoaWxkcmVuKHkpLmZvckVhY2godCl9Y2F0Y2goQil7fXRyeXtBPXkubm9kZVR5cGV9Y2F0Y2goQil7QT0hMSxlLmxvZygiaHRtbDJjYW52YXM6IGZhaWxlZCB0byBhY2Nlc3Mgc29tZSBlbGVtZW50J3Mgbm9kZVR5cGUgLSBFeGNlcHRpb246ICIrCkIubWVzc2FnZSl9aWYoMT09PUF8fEE9PT1RKXtrKHksIjpiZWZvcmUiKTtrKHksIjphZnRlciIpO3RyeXtuKGUuZ2V0Q1NTKHksImJhY2tncm91bmRJbWFnZSIpLHkpfWNhdGNoKEIpe2UubG9nKCJodG1sMmNhbnZhczogZmFpbGVkIHRvIGdldCBiYWNrZ3JvdW5kLWltYWdlIC0gRXhjZXB0aW9uOiAiK0IubWVzc2FnZSl9bih5KX19ZnVuY3Rpb24gdih5LEEpe3kub25sb2FkPWZ1bmN0aW9uKCl7QS50aW1lciE9PVEmJk4uY2xlYXJUaW1lb3V0KEEudGltZXIpO2wubnVtTG9hZGVkKys7QS5zdWNjZWVkZWQ9ITA7eS5vbmVycm9yPXkub25sb2FkPW51bGw7cCgpfTt5Lm9uZXJyb3I9ZnVuY3Rpb24oKXtpZigiYW5vbnltb3VzIj09PXkuY3Jvc3NPcmlnaW4mJihOLmNsZWFyVGltZW91dChBLnRpbWVyKSxkLnByb3h5KSl7dmFyIEI9eS5zcmM7eT1uZXcgSW1hZ2U7QS5pbWc9eTt5LnNyYz1CO3EoeS5zcmMseSxBKX1lbHNlIGwubnVtTG9hZGVkKyssbC5udW1GYWlsZWQrKyxBLnN1Y2NlZWRlZD0KITEseS5vbmVycm9yPXkub25sb2FkPW51bGwscCgpfX12YXIgbD17bnVtTG9hZGVkOjAsbnVtRmFpbGVkOjAsbnVtVG90YWw6MCxjbGVhbnVwRG9uZTohMX0sZT14LlV0aWwsST0wLHo9ZC5lbGVtZW50c1swXXx8Ui5ib2R5LEU9ei5vd25lckRvY3VtZW50LEs9ei5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaW1nIiksSj1LLmxlbmd0aCxHPUUuY3JlYXRlRWxlbWVudCgiYSIpLE89KG5ldyBJbWFnZSkuY3Jvc3NPcmlnaW4hPT1RLFQ7Ry5ocmVmPU4ubG9jYXRpb24uaHJlZjt2YXIgVz1HLnByb3RvY29sK0cuaG9zdCxiYT17bG9hZEltYWdlOmZ1bmN0aW9uKHkpe2lmKHkmJmxbeV09PT1RKXt2YXIgQT1uZXcgSW1hZ2U7aWYoeS5tYXRjaCgvZGF0YTppbWFnZVwvLio7YmFzZTY0LC9pKSl7QS5zcmM9eS5yZXBsYWNlKC91cmxcKFsnIl17MCx9fFsnIl17MCx9XCkkL2lnLCIiKTt2YXIgQj1sW3ldPXtpbWc6QX07bC5udW1Ub3RhbCsrO3YoQSxCKX1lbHNlIEcuaHJlZj15LEcuaHJlZj1HLmhyZWYsCkcucHJvdG9jb2wrRy5ob3N0PT09V3x8ITA9PT1kLmFsbG93VGFpbnQ\/KEI9bFt5XT17aW1nOkF9LGwubnVtVG90YWwrKyx2KEEsQiksQS5zcmM9eSk6TyYmIWQuYWxsb3dUYWludCYmZC51c2VDT1JTPyhBLmNyb3NzT3JpZ2luPSJhbm9ueW1vdXMiLEI9bFt5XT17aW1nOkF9LGwubnVtVG90YWwrKyx2KEEsQiksQS5zcmM9eSk6ZC5wcm94eSYmKEI9bFt5XT17aW1nOkF9LGwubnVtVG90YWwrKyxxKHksQSxCKSl9fSxjbGVhbnVwRE9NOmZ1bmN0aW9uKHkpe3ZhciBBO2lmKCFsLmNsZWFudXBEb25lKXt5JiYic3RyaW5nIj09PXR5cGVvZiB5P2UubG9nKCJodG1sMmNhbnZhczogQ2xlYW51cCBiZWNhdXNlOiAiK3kpOmUubG9nKCJodG1sMmNhbnZhczogQ2xlYW51cCBhZnRlciB0aW1lb3V0OiAiK2QudGltZW91dCsiIG1zLiIpO2ZvcihBIGluIGwpaWYobC5oYXNPd25Qcm9wZXJ0eShBKSl7dmFyIEI9bFtBXTtpZigib2JqZWN0Ij09PXR5cGVvZiBCJiZCLmNhbGxiYWNrbmFtZSYmQi5zdWNjZWVkZWQ9PT0KUSl7TltCLmNhbGxiYWNrbmFtZV09UTt0cnl7ZGVsZXRlIE5bQi5jYWxsYmFja25hbWVdfWNhdGNoKFUpe31CLnNjcmlwdCYmQi5zY3JpcHQucGFyZW50Tm9kZSYmKEIuc2NyaXB0LnNldEF0dHJpYnV0ZSgic3JjIiwiYWJvdXQ6YmxhbmsiKSxCLnNjcmlwdC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKEIuc2NyaXB0KSk7bC5udW1Mb2FkZWQrKztsLm51bUZhaWxlZCsrO2UubG9nKCJodG1sMmNhbnZhczogQ2xlYW5lZCB1cCBmYWlsZWQgaW1nOiAnIitBKyInIFN0ZXBzOiAiK2wubnVtTG9hZGVkKyIgLyAiK2wubnVtVG90YWwpfX1OLnN0b3AhPT1RP04uc3RvcCgpOlIuZXhlY0NvbW1hbmQhPT1RJiZSLmV4ZWNDb21tYW5kKCJTdG9wIiwhMSk7Ui5jbG9zZSE9PVEmJlIuY2xvc2UoKTtsLmNsZWFudXBEb25lPSEwO3kmJiJzdHJpbmciPT09dHlwZW9mIHl8fHAoKX19LHJlbmRlcmluZ0RvbmU6ZnVuY3Rpb24oKXtUJiZOLmNsZWFyVGltZW91dChUKX19OzA8ZC50aW1lb3V0JiYoVD1OLnNldFRpbWVvdXQoYmEuY2xlYW51cERPTSwKZC50aW1lb3V0KSk7ZS5sb2coImh0bWwyY2FudmFzOiBQcmVsb2FkIHN0YXJ0czogZmluZGluZyBiYWNrZ3JvdW5kLWltYWdlcyIpO2wuZmlyc3RSdW49ITA7dCh6KTtlLmxvZygiaHRtbDJjYW52YXM6IFByZWxvYWQ6IEZpbmRpbmcgaW1hZ2VzIik7Zm9yKHo9MDt6PEo7eis9MSliYS5sb2FkSW1hZ2UoS1t6XS5nZXRBdHRyaWJ1dGUoInNyYyIpKTtsLmZpcnN0UnVuPSExO2UubG9nKCJodG1sMmNhbnZhczogUHJlbG9hZDogRG9uZS4iKTtsLm51bVRvdGFsPT09bC5udW1Mb2FkZWQmJnAoKTtyZXR1cm4gYmF9O3guUmVuZGVyZXI9ZnVuY3Rpb24oZCxwKXtmdW5jdGlvbiBxKGssYyl7cmV0dXJuImNoaWxkcmVuIj09PWs\/LTE6ImNoaWxkcmVuIj09PWM\/MTprLWN9cmV0dXJuIGZ1bmN0aW9uKGspe2lmKCJzdHJpbmciPT09dHlwZW9mIHAucmVuZGVyZXImJnguUmVuZGVyZXJba10hPT1RKWs9eC5SZW5kZXJlcltrXShwKTtlbHNlIGlmKCJmdW5jdGlvbiI9PT10eXBlb2YgaylrPWsocCk7CmVsc2UgdGhyb3cgRXJyb3IoIlVua25vd24gcmVuZGVyZXIiKTtpZigiZnVuY3Rpb24iIT09dHlwZW9mIGspdGhyb3cgRXJyb3IoIkludmFsaWQgcmVuZGVyZXIgZGVmaW5lZCIpO3JldHVybiBrfShwLnJlbmRlcmVyKShkLHAsUixmdW5jdGlvbihrKXtmdW5jdGlvbiBjKHQpe09iamVjdC5rZXlzKHQpLnNvcnQocSkuZm9yRWFjaChmdW5jdGlvbih2KXt2YXIgbD1bXSxlPVtdLEk9W10sej1bXTt0W3ZdLmZvckVhY2goZnVuY3Rpb24oRSl7RS5ub2RlLnpJbmRleC5pc1Bvc2l0aW9uZWR8fDE+RS5ub2RlLnpJbmRleC5vcGFjaXR5P0kucHVzaChFKTpFLm5vZGUuekluZGV4LmlzRmxvYXRlZD9lLnB1c2goRSk6bC5wdXNoKEUpfSk7KGZ1bmN0aW9uIEooSyl7Sy5mb3JFYWNoKGZ1bmN0aW9uKEcpe3oucHVzaChHKTtHLmNoaWxkcmVuJiZKKEcuY2hpbGRyZW4pfSl9KShsLmNvbmNhdChlLEkpKTt6LmZvckVhY2goZnVuY3Rpb24oSyl7Sy5jb250ZXh0P2MoSy5jb250ZXh0KTpuLnB1c2goSy5ub2RlKX0pfSl9CnZhciBuPVtdO2s9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gdihlLEkseil7dmFyIEU9ImF1dG8iPT09SS56SW5kZXguemluZGV4PzA6TnVtYmVyKEkuekluZGV4LnppbmRleCksSz1lLEo9SS56SW5kZXguaXNQb3NpdGlvbmVkLEc9SS56SW5kZXguaXNGbG9hdGVkLE89e25vZGU6SX0sVD16O2lmKEkuekluZGV4Lm93blN0YWNraW5nKUs9Ty5jb250ZXh0PXtjaGlsZHJlbjpbe25vZGU6SSxjaGlsZHJlbjpbXX1dfSxUPVE7ZWxzZSBpZihKfHxHKVQ9Ty5jaGlsZHJlbj1bXTswPT09RSYmej96LnB1c2goTyk6KGVbRV18fChlW0VdPVtdKSxlW0VdLnB1c2goTykpO0kuekluZGV4LmNoaWxkcmVuLmZvckVhY2goZnVuY3Rpb24oVyl7dihLLFcsVCl9KX12YXIgbD17fTt2KGwsdCk7cmV0dXJuIGx9KGspO2Moayk7cmV0dXJuIG59KGQuc3RhY2spLHgpfTt4LlV0aWwuU3VwcG9ydD1mdW5jdGlvbihkLHApe2Z1bmN0aW9uIHEoKXt2YXIgaz1uZXcgSW1hZ2UsYz1wLmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpLApuPWMuZ2V0Q29udGV4dD09PVE\/ITE6Yy5nZXRDb250ZXh0KCIyZCIpO2lmKCExPT09bilyZXR1cm4hMTtjLndpZHRoPWMuaGVpZ2h0PTEwO2suc3JjPSJkYXRhOmltYWdlL3N2Zyt4bWwsPHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPScxMCcgaGVpZ2h0PScxMCc+PGZvcmVpZ25PYmplY3Qgd2lkdGg9JzEwJyBoZWlnaHQ9JzEwJz48ZGl2IHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJyBzdHlsZT0nd2lkdGg6MTA7aGVpZ2h0OjEwOyc+c3VwPC9kaXY+PC9mb3JlaWduT2JqZWN0Pjwvc3ZnPiI7dHJ5e24uZHJhd0ltYWdlKGssMCwwKSxjLnRvRGF0YVVSTCgpfWNhdGNoKHQpe3JldHVybiExfXguVXRpbC5sb2coImh0bWwyY2FudmFzOiBQYXJzZTogU1ZHIHBvd2VyZWQgcmVuZGVyaW5nIGF2YWlsYWJsZSIpO3JldHVybiEwfXJldHVybntyYW5nZUJvdW5kczpmdW5jdGlvbigpe3ZhciBrPSExO2lmKHAuY3JlYXRlUmFuZ2Upe3ZhciBjPQpwLmNyZWF0ZVJhbmdlKCk7aWYoYy5nZXRCb3VuZGluZ0NsaWVudFJlY3Qpe3ZhciBuPXAuY3JlYXRlRWxlbWVudCgiYm91bmR0ZXN0Iik7bi5zdHlsZS5oZWlnaHQ9IjEyM3B4IjtuLnN0eWxlLmRpc3BsYXk9ImJsb2NrIjtwLmJvZHkuYXBwZW5kQ2hpbGQobik7Yy5zZWxlY3ROb2RlKG4pO2M9Yy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtjPWMuaGVpZ2h0OzEyMz09PWMmJihrPSEwKTtwLmJvZHkucmVtb3ZlQ2hpbGQobil9fXJldHVybiBrfSgpLHN2Z1JlbmRlcmluZzpkLnN2Z1JlbmRlcmluZyYmcSgpfX07Ti5odG1sMmNhbnZhcz1mdW5jdGlvbihkLHApe2Q9ZC5sZW5ndGg\/ZDpbZF07dmFyIHEsaz17bG9nZ2luZzohMSxlbGVtZW50czpkLGJhY2tncm91bmQ6IiNmZmYiLHByb3h5Om51bGwsdGltZW91dDowLHVzZUNPUlM6ITEsYWxsb3dUYWludDohMSxzdmdSZW5kZXJpbmc6ITEsaWdub3JlRWxlbWVudHM6IklGUkFNRXxPQkpFQ1R8UEFSQU0iLHVzZU92ZXJmbG93OiEwLGxldHRlclJlbmRlcmluZzohMSwKY2hpbmVzZTohMSxhc3luYzohMSx3aWR0aDpudWxsLGhlaWdodDpudWxsLHRhaW50VGVzdDohMCxyZW5kZXJlcjoiQ2FudmFzIn07az14LlV0aWwuRXh0ZW5kKHAsayk7eC5sb2dnaW5nPWsubG9nZ2luZztrLmNvbXBsZXRlPWZ1bmN0aW9uKGMpeyJmdW5jdGlvbiI9PT10eXBlb2Ygay5vbnByZWxvYWRlZCYmITE9PT1rLm9ucHJlbG9hZGVkKGMpfHx4LlBhcnNlKGMsayxmdW5jdGlvbihuKXtpZigiZnVuY3Rpb24iIT09dHlwZW9mIGsub25wYXJzZWR8fCExIT09ay5vbnBhcnNlZChuKSlpZihxPXguUmVuZGVyZXIobixrKSwiZnVuY3Rpb24iPT09dHlwZW9mIGsub25yZW5kZXJlZClrLm9ucmVuZGVyZWQocSl9KX07Ti5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7eC5QcmVsb2FkKGspfSwwKTtyZXR1cm57cmVuZGVyOmZ1bmN0aW9uKGMsbil7cmV0dXJuIHguUmVuZGVyZXIoYyx4LlV0aWwuRXh0ZW5kKG4saykpfSxwYXJzZTpmdW5jdGlvbihjLG4pe3JldHVybiB4LlBhcnNlKGMseC5VdGlsLkV4dGVuZChuLAprKSl9LHByZWxvYWQ6ZnVuY3Rpb24oYyl7cmV0dXJuIHguUHJlbG9hZCh4LlV0aWwuRXh0ZW5kKGMsaykpfSxsb2c6eC5VdGlsLmxvZ319O04uaHRtbDJjYW52YXMubG9nPXguVXRpbC5sb2c7Ti5odG1sMmNhbnZhcy5SZW5kZXJlcj17Q2FudmFzOlF9O3guUmVuZGVyZXIuQ2FudmFzPWZ1bmN0aW9uKGQpe2Z1bmN0aW9uIHAodixsKXt2LmJlZ2luUGF0aCgpO2wuZm9yRWFjaChmdW5jdGlvbihlKXt2W2UubmFtZV0uYXBwbHkodixlLmFyZ3VtZW50cyl9KTt2LmNsb3NlUGF0aCgpfWQ9ZHx8e307dmFyIHE9W10saz1SLmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpLGM9ay5nZXRDb250ZXh0KCIyZCIpLG49eC5VdGlsLHQ9ZC5jYW52YXN8fFIuY3JlYXRlRWxlbWVudCgiY2FudmFzIik7cmV0dXJuIGZ1bmN0aW9uKHYsbCxlLEkseil7dmFyIEU9dC5nZXRDb250ZXh0KCIyZCIpLEs9di5zdGFjazt0LndpZHRoPXQuc3R5bGUud2lkdGg9bC53aWR0aHx8Sy5jdHgud2lkdGg7dC5oZWlnaHQ9dC5zdHlsZS5oZWlnaHQ9CmwuaGVpZ2h0fHxLLmN0eC5oZWlnaHQ7Sz1FLmZpbGxTdHlsZTtFLmZpbGxTdHlsZT1uLmlzVHJhbnNwYXJlbnQodi5iYWNrZ3JvdW5kQ29sb3IpJiZsLmJhY2tncm91bmQhPT1RP2wuYmFja2dyb3VuZDp2LmJhY2tncm91bmRDb2xvcjtFLmZpbGxSZWN0KDAsMCx0LndpZHRoLHQuaGVpZ2h0KTtFLmZpbGxTdHlsZT1LO0kuZm9yRWFjaChmdW5jdGlvbihKKXtFLnRleHRCYXNlbGluZT0iYm90dG9tIjtFLnNhdmUoKTtKLnRyYW5zZm9ybS5tYXRyaXgmJihFLnRyYW5zbGF0ZShKLnRyYW5zZm9ybS5vcmlnaW5bMF0sSi50cmFuc2Zvcm0ub3JpZ2luWzFdKSxFLnRyYW5zZm9ybS5hcHBseShFLEoudHJhbnNmb3JtLm1hdHJpeCksRS50cmFuc2xhdGUoLUoudHJhbnNmb3JtLm9yaWdpblswXSwtSi50cmFuc2Zvcm0ub3JpZ2luWzFdKSk7Si5jbGlwJiYoRS5iZWdpblBhdGgoKSxFLnJlY3QoSi5jbGlwLmxlZnQsSi5jbGlwLnRvcCxKLmNsaXAud2lkdGgsSi5jbGlwLmhlaWdodCksRS5jbGlwKCkpOwpKLmN0eC5zdG9yYWdlJiZKLmN0eC5zdG9yYWdlLmZvckVhY2goZnVuY3Rpb24oRyl7dmFyIE89RTtzd2l0Y2goRy50eXBlKXtjYXNlICJ2YXJpYWJsZSI6T1tHLm5hbWVdPUcuYXJndW1lbnRzO2JyZWFrO2Nhc2UgImZ1bmN0aW9uIjpzd2l0Y2goRy5uYW1lKXtjYXNlICJjcmVhdGVQYXR0ZXJuIjppZigwPEcuYXJndW1lbnRzWzBdLndpZHRoJiYwPEcuYXJndW1lbnRzWzBdLmhlaWdodCl0cnl7Ty5maWxsU3R5bGU9Ty5jcmVhdGVQYXR0ZXJuKEcuYXJndW1lbnRzWzBdLCJyZXBlYXQiKX1jYXRjaChXKXtuLmxvZygiaHRtbDJjYW52YXM6IFJlbmRlcmVyOiBFcnJvciBjcmVhdGluZyBwYXR0ZXJuIixXLm1lc3NhZ2UpfWJyZWFrO2Nhc2UgImRyYXdTaGFwZSI6cChPLEcuYXJndW1lbnRzKTticmVhaztjYXNlICJkcmF3SW1hZ2UiOmlmKDA8Ry5hcmd1bWVudHNbOF0mJjA8Ry5hcmd1bWVudHNbN10pe3ZhciBUO2lmKCEoVD0hZC50YWludFRlc3QpJiYoVD1kLnRhaW50VGVzdCkpYTp7aWYoLTE9PT0KcS5pbmRleE9mKEcuYXJndW1lbnRzWzBdLnNyYykpe2MuZHJhd0ltYWdlKEcuYXJndW1lbnRzWzBdLDAsMCk7dHJ5e2MuZ2V0SW1hZ2VEYXRhKDAsMCwxLDEpfWNhdGNoKFcpe2s9Ui5jcmVhdGVFbGVtZW50KCJjYW52YXMiKTtjPWsuZ2V0Q29udGV4dCgiMmQiKTtUPSExO2JyZWFrIGF9cS5wdXNoKEcuYXJndW1lbnRzWzBdLnNyYyl9VD0hMH1UJiZPLmRyYXdJbWFnZS5hcHBseShPLEcuYXJndW1lbnRzKX1icmVhaztkZWZhdWx0Ok9bRy5uYW1lXS5hcHBseShPLEcuYXJndW1lbnRzKX19fSk7RS5yZXN0b3JlKCl9KTtuLmxvZygiaHRtbDJjYW52YXM6IFJlbmRlcmVyOiBDYW52YXMgcmVuZGVyZXIgZG9uZSAtIHJldHVybmluZyBjYW52YXMgb2JqIik7cmV0dXJuIDE9PT1sLmVsZW1lbnRzLmxlbmd0aCYmIm9iamVjdCI9PT10eXBlb2YgbC5lbGVtZW50c1swXSYmIkJPRFkiIT09bC5lbGVtZW50c1swXS5ub2RlTmFtZT8odj16LlV0aWwuQm91bmRzKGwuZWxlbWVudHNbMF0pLGU9ZS5jcmVhdGVFbGVtZW50KCJjYW52YXMiKSwKZS53aWR0aD1NYXRoLmNlaWwodi53aWR0aCksZS5oZWlnaHQ9TWF0aC5jZWlsKHYuaGVpZ2h0KSxFPWUuZ2V0Q29udGV4dCgiMmQiKSxFLmRyYXdJbWFnZSh0LHYubGVmdCx2LnRvcCx2LndpZHRoLHYuaGVpZ2h0LDAsMCx2LndpZHRoLHYuaGVpZ2h0KSx0PW51bGwsZSk6dH19fSkod2luZG93LGRvY3VtZW50KTsKLyoqIC9qcy9kMmN0Y2svdXByb2ZpbGUuZmluYWwubWluLmpzICoqLwphY3RpdmVVc2VyUHJvZmlsZU1uZz17b25yZWFkeTpudWxsLG9ubm90Zm91bmQ6bnVsbCxkaXNhYmxlZDohMSx1aWQ6bnVsbCxhY3RpdmVTdGVwOjAsc3dmU3RvcmU6ITEscmVnaXN0ZXJlZFBhZ2VWaWV3czpudWxsLHJlZ2lzdGVyZWRFdmVudHM6bnVsbCxzZXNzaW9uaWQ6bnVsbCxyZWdpc3RlcmVkQ2FsbGJhY2tzOm51bGwscmVnaXN0ZXJlZFNlc3Npb25DYWxsYmFja3M6bnVsbCxwYWdlVmlld0NvdW50Om51bGwsX19wcm9wZXJ0aWVzOm51bGwsanF1ZXJ5QWN0aXZlOiEwLGlzRDJDU2l0ZTohMCxfX3Jlc2V0Vjo5LHJlc2V0U2Vjb25kUGFzczohMSxfX291dHB1dERpdk1zZzohMSxfX291dHB1dENvbnNvbGVNc2c6ITEsYWpheE1uZzp7YXN5bmM6ITAsX2xhc3RYOm51bGwseDpmdW5jdGlvbigpe3RyeXtpZigidW5kZWZpbmVkIiE9PXR5cGVvZiBYTUxIdHRwUmVxdWVzdClyZXR1cm4gbmV3IFhNTEh0dHBSZXF1ZXN0O2Zvcih2YXIgYT1bIk1TWE1MMi5YbWxIdHRwLjUuMCIsCgkJCSJNU1hNTDIuWG1sSHR0cC40LjAiLCJNU1hNTDIuWG1sSHR0cC4zLjAiLCJNU1hNTDIuWG1sSHR0cC4yLjAiLCJNaWNyb3NvZnQuWG1sSHR0cCJdLGIsZD0wO2Q8YS5sZW5ndGg7ZCsrKXRyeXtiPW5ldyBBY3RpdmVYT2JqZWN0KGFbZF0pO2JyZWFrfWNhdGNoKGMpe319Y2F0Y2goYyl7fXJldHVybiBifSxfc2VuZDpmdW5jdGlvbihhLGIsZCxjLGUsaCl7dHJ5e3ZhciBmPXRoaXMueCgpO3RoaXMuX2xhc3RYPWY7Zi5vcGVuKGQsYSxlKTt0cnl7Zi5hZGRFdmVudExpc3RlbmVyKCJlcnJvciIsZnVuY3Rpb24ocSl7InVuZGVmaW5lZCIhPXR5cGVvZiBoJiZudWxsIT1oJiZoKGYsZi5zdGF0dXNUZXh0LEVycm9yKGYucmVzcG9uc2VUZXh0KSl9KX1jYXRjaChxKXt9Zi5vbnJlYWR5c3RhdGVjaGFuZ2U9ZnVuY3Rpb24oKXs0PT1mLnJlYWR5U3RhdGU\/YihmLnJlc3BvbnNlVGV4dCk6InVuZGVmaW5lZCIhPXR5cGVvZiBoJiZudWxsIT1oJiZoKGYsZi5zdGF0dXNUZXh0LEVycm9yKGYucmVzcG9uc2VUZXh0KSl9OwoJCQkiUE9TVCI9PWQmJmYuc2V0UmVxdWVzdEhlYWRlcigiQ29udGVudC10eXBlIiwiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIik7Zi5zZW5kKGMpfWNhdGNoKHEpeyJ1bmRlZmluZWQiIT10eXBlb2YgaCYmbnVsbCE9aCYmaChmLCJ1bmtub3duIixxKX19LGFqYXg6ZnVuY3Rpb24oYSl7dmFyIGI9dGhpczt0cnl7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBhLnR5cGUmJihhLnR5cGU9IkdFVCIpLCJ1bmRlZmluZWQiPT10eXBlb2YgYS5kYXRhJiYoYS5kYXRhPXt9KSx3aW5kb3cualF1ZXJ5JiYidW5kZWZpbmVkIiE9dHlwZW9mICQuYWpheCkkLmFqYXgoYSkuZG9uZShmdW5jdGlvbihjKXsidW5kZWZpbmVkIiE9dHlwZW9mIGEuZG9uZSYmYS5kb25lKGMpfSkuZmFpbChmdW5jdGlvbihjLGUsaCl7InVuZGVmaW5lZCIhPXR5cGVvZiBhLmZhaWwmJmEuZmFpbChjLGUsaCl9KS5hbHdheXMoZnVuY3Rpb24oKXsidW5kZWZpbmVkIiE9dHlwZW9mIGEuYWx3YXlzJiZhLmFsd2F5cygpfSkuZG9uZShmdW5jdGlvbihjKXsidW5kZWZpbmVkIiE9CgkJdHlwZW9mIGEuc3VjY2VzcyYmYS5zdWNjZXNzKGMpfSkuYWx3YXlzKGZ1bmN0aW9uKGMsZSl7InVuZGVmaW5lZCIhPXR5cGVvZiBhLmNvbXBsZXRlJiZhLmNvbXBsZXRlKGIuX2xhc3RYLCJ1bmRlZmluZWQiIT10eXBlb2YgYi5fbGFzdFguc3RhdHVzVGV4dD9iLl9sYXN0WC5zdGF0dXNUZXh0OiIiKX0pO2Vsc2V7dmFyIGQ9Yi5fZ2V0OyJwb3N0Ij09YS50eXBlLnRvTG93ZXJDYXNlKCkmJihkPWIuX3Bvc3QpO2QoYS51cmwsYS5kYXRhLGZ1bmN0aW9uKGMpeyJ1bmRlZmluZWQiIT10eXBlb2YgYS5kb25lJiZhLmRvbmUoYyk7InVuZGVmaW5lZCIhPXR5cGVvZiBhLnN1Y2Nlc3MmJmEuc3VjY2VzcyhjKTsidW5kZWZpbmVkIiE9dHlwZW9mIGEuY29tcGxldGUmJmEuY29tcGxldGUoKTsidW5kZWZpbmVkIiE9dHlwZW9mIGEuYWx3YXlzJiZhLmFsd2F5cygpfSxiLmFzeW5jLGZ1bmN0aW9uKGMsZSxoKXsidW5kZWZpbmVkIiE9dHlwZW9mIGEuZmFpbCYmYS5mYWlsKGMsZSxoKX0pfX1jYXRjaChjKXtjb25zb2xlJiYKCQljb25zb2xlLmxvZyYmY29uc29sZS5sb2coIlVuZXhwZWN0ZWQgZXJyb3IgYWNjZXNzaW5nIGFqYXhNbmcuZ2V0OiAlcyIsYy5tZXNzYWdlKX19LF9nZXQ6ZnVuY3Rpb24oYSxiLGQsYyxlKXt2YXIgaD1bXSxmO2ZvcihmIGluIGIpaC5wdXNoKGVuY29kZVVSSUNvbXBvbmVudChmKSsiPSIrZW5jb2RlVVJJQ29tcG9uZW50KGJbZl0pKTtpZigidW5kZWZpbmVkIj09dHlwZW9mIGN8fG51bGw9PWMpYz0hMDthY3RpdmVVc2VyUHJvZmlsZU1uZy5hamF4TW5nLl9zZW5kKGErIj8iK2guam9pbigiJiIpLGQsIkdFVCIsbnVsbCxjLGUpfSxfcG9zdDpmdW5jdGlvbihhLGIsZCxjLGUpe3ZhciBoPVtdLGY7Zm9yKGYgaW4gYiloLnB1c2goZW5jb2RlVVJJQ29tcG9uZW50KGYpKyI9IitlbmNvZGVVUklDb21wb25lbnQoYltmXSkpO2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgY3x8bnVsbD09YyljPSEwO2FjdGl2ZVVzZXJQcm9maWxlTW5nLmFqYXhNbmcuX3NlbmQoYSxkLCJQT1NUIixoLmpvaW4oIiYiKSwKCQkJYyxlKX0sZ2V0U2NyaXB0OmZ1bmN0aW9uKGEsYil7dHJ5e2lmKHdpbmRvdy5qUXVlcnkmJiJ1bmRlZmluZWQiIT10eXBlb2YgJC5nZXRTY3JpcHQpJC5nZXRTY3JpcHQoYSxiKTtlbHNle3ZhciBkPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpLGM9ZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInNjcmlwdCIpWzBdO2QuYXN5bmM9MTtkLm9ubG9hZD1kLm9ucmVhZHlzdGF0ZWNoYW5nZT1mdW5jdGlvbihlLGgpe2lmKGh8fCFkLnJlYWR5U3RhdGV8fC9sb2FkZWR8Y29tcGxldGUvLnRlc3QoZC5yZWFkeVN0YXRlKSlkLm9ubG9hZD1kLm9ucmVhZHlzdGF0ZWNoYW5nZT1udWxsLGQ9dm9pZCAwLCFoJiZiJiZzZXRUaW1lb3V0KGIsMCl9O2Quc3JjPWE7Yy5wYXJlbnROb2RlLmluc2VydEJlZm9yZShkLGMpfX1jYXRjaChlKXtjb25zb2xlJiZjb25zb2xlLmxvZyYmY29uc29sZS5sb2coIlVuZXhwZWN0ZWQgZXJyb3IgcmV0cmlldmluZyBqcyBzY3JpcHQuIFRoaXMgc2hvdWxkIG5ldmVyIGhhcHBlbjogJXMiLAoJCQllLm1lc3NhZ2UpfX19LGNvb2tpZU1uZzp7cmVhZENvb2tpZVZhbHVlOmZ1bmN0aW9uKGEpe3ZhciBiPW51bGw7dHJ5e2lmKHdpbmRvdy5qUXVlcnkmJiJ1bmRlZmluZWQiIT10eXBlb2YgJC5jb29raWUpYj0kLmNvb2tpZShhKSwidW5kZWZpbmVkIj09dHlwZW9mIGImJihiPW51bGwpO2Vsc2V7YSs9Ij0iO2Zvcih2YXIgZD1kb2N1bWVudC5jb29raWUuc3BsaXQoIjsiKSxjPTA7YzxkLmxlbmd0aDtjKyspe2Zvcih2YXIgZT1kW2NdOyIgIj09ZS5jaGFyQXQoMCk7KWU9ZS5zdWJzdHJpbmcoMSxlLmxlbmd0aCk7aWYoMD09ZS5pbmRleE9mKGEpKXtiPWUuc3Vic3RyaW5nKGEubGVuZ3RoLGUubGVuZ3RoKTticmVha319fX1jYXRjaChoKXtjb25zb2xlJiZjb25zb2xlLmxvZyYmY29uc29sZS5sb2coIlVuZXhwZWN0ZWQgZXJyb3IgcmVhZGluZyBjb29raWU6ICVzIixoLm1lc3NhZ2UpfXJldHVybiBifSxzZXRDb29raWVWYWx1ZTpmdW5jdGlvbihhLGIsZCxjKXt0cnl7aWYoITAhPT10aGlzLmRpc2FibGVkKXtpZigidW5kZWZpbmVkIj09CgkJCXR5cGVvZiBkfHxudWxsPT1kKWQ9Ii8iO2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgY3x8bnVsbD09YyljPTA7InVuZGVmaW5lZCI9PXR5cGVvZiBiJiYoYj1udWxsKTt2YXIgZT1uZXcgRGF0ZTtlLnNldFRpbWUoZS5nZXRUaW1lKCkrODY0RTUqYyk7d2luZG93LmpRdWVyeSYmInVuZGVmaW5lZCIhPXR5cGVvZiAkLmNvb2tpZT8kLmNvb2tpZShhLGIse3BhdGg6ZCxzZWN1cmU6ITAsZXhwaXJlczowPT1jPyIiOmV9KTooZXhwaXJlcz0wIT1jPyI7IGV4cGlyZXM9IitlLnRvR01UU3RyaW5nKCk6IiIsZG9jdW1lbnQuY29va2llPWErIj0iK2IrZXhwaXJlcysiOyBzZWN1cmU7IHBhdGg9IitkLGImJmFjdGl2ZVVzZXJQcm9maWxlTW5nLmNvb2tpZU1uZy5sb2dDb29raWUoYSxiLGMsZCkpfX1jYXRjaChoKXtjb25zb2xlJiZjb25zb2xlLmxvZyYmY29uc29sZS5sb2coIlVuZXhwZWN0ZWQgZXJyb3Igc2V0dGluZyBjb29raWU6ICVzIixoLm1lc3NhZ2UpfX0sZGVsZXRlQ29va2llOmZ1bmN0aW9uKGEpe3RyeXt3aW5kb3cualF1ZXJ5JiYKCQkidW5kZWZpbmVkIiE9dHlwZW9mICQuY29va2llPygkLmNvb2tpZShhLG51bGwpLCQuY29va2llKGEsbnVsbCx7cGF0aDoiLyJ9KSk6dGhpcy5zZXRDb29raWVWYWx1ZShhLG51bGwsLTEpfWNhdGNoKGIpe2NvbnNvbGUmJmNvbnNvbGUubG9nJiZjb25zb2xlLmxvZygiVW5leHBlY3RlZCBlcnJvciBkZWxldGluZyBjb29raWU6ICVzIixiLm1lc3NhZ2UpfX0sbG9nQ29va2llOmZ1bmN0aW9uKGEsYixkLGMsZSl7InVuZGVmaW5lZCI9PT10eXBlb2YgZSYmKGU9NSk7InVuZGVmaW5lZCI9PT10eXBlb2Ygd2luZG93LkNvb2tpZUxvZ2dlcj9lJiZzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7YWN0aXZlVXNlclByb2ZpbGVNbmcuY29va2llTW5nLmxvZ0Nvb2tpZShhLGIsZCxjLGUtMSl9LDEwMCk6d2luZG93LkNvb2tpZUxvZ2dlci5sb2coYSxiLGQsYyl9fSxfX3VzZVByb3h5OmZ1bmN0aW9uKCl7cmV0dXJuITE9PT10aGlzLmlzRDJDU2l0ZT8hMTohMH0sX2lzQm90OmZ1bmN0aW9uKCl7cmV0dXJuL2JvdHxnb29nbGVib3R8Y3Jhd2xlcnxzcGlkZXJ8cm9ib3R8Y3Jhd2xpbmcvaS50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpPwoJCSEwOiExfSxnZXRTdGF0c1VSSTpmdW5jdGlvbigpe3ZhciBhPSIvcHJveHlfc2QyYy8iO3RyeXshMT09PWFjdGl2ZVVzZXJQcm9maWxlTW5nLmlzRDJDU2l0ZSYmKGE9Imh0dHA6Ly9zdGF0cy5kMmNtZWRpYS5jYS8iLCJodHRwczoiPT13aW5kb3cubG9jYXRpb24ucHJvdG9jb2wmJihhPSJodHRwczovL3NzbHN0YXRzLmQyY21lZGlhLmNhLyIpKX1jYXRjaChiKXtjb25zb2xlJiZjb25zb2xlLmxvZyYmY29uc29sZS5sb2coIlVuZXhwZWN0ZWQgZXJyb3IgY2F1Z2h0IGluIGdldFN0YXRzVVJJOiAlcyIsYi5tZXNzYWdlKSxhPSJodHRwczovL3NzbHN0YXRzLmQyY21lZGlhLmNhLyJ9cmV0dXJuIGF9LGdldEZQVVJJOmZ1bmN0aW9uKCl7aWYoITA9PT10aGlzLmRpc2FibGVkKXJldHVybiIiO3ZhciBhPSIvanMvZDJjdGNrL2ZwcmludC52Mi5taW4uanMiO3RyeXthPSExPT09YWN0aXZlVXNlclByb2ZpbGVNbmcuaXNEMkNTaXRlP251bGwhPXdpbmRvdy5sb2NhdGlvbiYmInVuZGVmaW5lZCIhPQoJdHlwZW9mIHdpbmRvdy5sb2NhdGlvbi5ocmVmJiYtMSE9d2luZG93LmxvY2F0aW9uLmhyZWYuaW5kZXhPZigiY3JtMi5kMmNtZWRpYS5jYSIpPyJodHRwczovL2NybTIuZDJjbWVkaWEuY2EvYXNzZXRzL2pzL2QyY3Rjay9mcHJpbnQudjIuanMiOiJodHRwczovL3d3dy5hdXRvYXViYWluZS5jb20vanMvZDJjdGNrL2ZwcmludC52Mi5taW4uanMiOiEwPT09dGhpcy5fX291dHB1dERpdk1zZz8iL2pzL2QyY3Rjay9mcHJpbnQudjIuanMiOiIvanMvZDJjdGNrL2ZwcmludC52Mi5taW4uanMifWNhdGNoKGIpe2NvbnNvbGUmJmNvbnNvbGUubG9nJiZjb25zb2xlLmxvZygiVW5leHBlY3RlZCBlcnJvciBjYXVnaHQgaW4gZ2V0RlBVUkk6ICVzIixiLm1lc3NhZ2UpLGE9Ii9qcy9kMmN0Y2svZnByaW50LnYyLm1pbi5qcyJ9cmV0dXJuIGF9LGdldFNlc3Npb25JRDpmdW5jdGlvbigpe2lmKG51bGwhPWFjdGl2ZVVzZXJQcm9maWxlTW5nLnNlc3Npb25pZClyZXR1cm4gYWN0aXZlVXNlclByb2ZpbGVNbmcuc2Vzc2lvbmlkOwoJCXZhciBhPXdpbmRvdy5hY3RpdmVTZXNzaW9uSUQ7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBhfHxudWxsPT1hfHwwPT1hKXJldHVybiBhY3RpdmVVc2VyUHJvZmlsZU1uZy5zZXNzaW9uaWQ9d2luZG93LmFjdGl2ZVNlc3Npb25JRCxhY3RpdmVVc2VyUHJvZmlsZU1uZy5zZXNzaW9uaWQ7YT1hY3RpdmVVc2VyUHJvZmlsZU1uZy5jb29raWVNbmcucmVhZENvb2tpZVZhbHVlKCJ1c2lkIik7cmV0dXJuIG51bGwhPWE\/KGFjdGl2ZVVzZXJQcm9maWxlTW5nLnNlc3Npb25pZD1hLGFjdGl2ZVVzZXJQcm9maWxlTW5nLnNlc3Npb25pZCk6MH0scmVnaXN0ZXJDYWxsYmFjazpmdW5jdGlvbihhKXtpZighMD09PXRoaXMuZGlzYWJsZWQpe2lmKG51bGwhPWEpdHJ5e2EoKX1jYXRjaChiKXt9cmV0dXJuITF9bnVsbD09YWN0aXZlVXNlclByb2ZpbGVNbmcucmVnaXN0ZXJlZENhbGxiYWNrcyYmKGFjdGl2ZVVzZXJQcm9maWxlTW5nLnJlZ2lzdGVyZWRDYWxsYmFja3M9W10pOyJ1bmRlZmluZWQiIT10eXBlb2YgYWN0aXZlVXNlclByb2ZpbGVNbmcudWlkJiYKCW51bGwhPWFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZCYmIm5vbmUiIT1hY3RpdmVVc2VyUHJvZmlsZU1uZy51aWQ\/YSgpOmFjdGl2ZVVzZXJQcm9maWxlTW5nLnJlZ2lzdGVyZWRDYWxsYmFja3MucHVzaChhKX0scmVnaXN0ZXJTZXNzaW9uQ2FsbGJhY2s6ZnVuY3Rpb24oYSl7aWYoITA9PT10aGlzLmRpc2FibGVkKXtpZihudWxsIT1hKXRyeXthKCl9Y2F0Y2goYil7fXJldHVybiExfW51bGw9PWFjdGl2ZVVzZXJQcm9maWxlTW5nLnJlZ2lzdGVyZWRTZXNzaW9uQ2FsbGJhY2tzJiYoYWN0aXZlVXNlclByb2ZpbGVNbmcucmVnaXN0ZXJlZFNlc3Npb25DYWxsYmFja3M9W10pOyJ1bmRlZmluZWQiIT10eXBlb2YgYWN0aXZlVXNlclByb2ZpbGVNbmcuc2Vzc2lvbmlkJiZudWxsIT1hY3RpdmVVc2VyUHJvZmlsZU1uZy5zZXNzaW9uaWQmJjAhPWFjdGl2ZVVzZXJQcm9maWxlTW5nLnNlc3Npb25pZD9hKCk6YWN0aXZlVXNlclByb2ZpbGVNbmcucmVnaXN0ZXJlZFNlc3Npb25DYWxsYmFja3MucHVzaChhKX0sCglfX25vdGlmeVVVSUQ6ZnVuY3Rpb24oKXt0cnl7aWYoITA9PT10aGlzLmRpc2FibGVkKXt0cnl7YigpfWNhdGNoKGQpe31yZXR1cm4hMX1pZihudWxsIT1hY3RpdmVVc2VyUHJvZmlsZU1uZy5yZWdpc3RlcmVkQ2FsbGJhY2tzKXtmb3IodmFyIGE9MDthPGFjdGl2ZVVzZXJQcm9maWxlTW5nLnJlZ2lzdGVyZWRDYWxsYmFja3MubGVuZ3RoO2ErKyl7dmFyIGI9YWN0aXZlVXNlclByb2ZpbGVNbmcucmVnaXN0ZXJlZENhbGxiYWNrc1thXTtiKCl9YWN0aXZlVXNlclByb2ZpbGVNbmcucmVnaXN0ZXJlZENhbGxiYWNrcz1udWxsfX1jYXRjaChkKXtjb25zb2xlJiZjb25zb2xlLmxvZyYmY29uc29sZS5sb2coIlVuZXhwZWN0ZWQgZXJyb3IgY2F1Z2h0IGluIF9fbm90aWZ5VVVJRDogJXMiLGQubWVzc2FnZSl9fSxfX25vdGlmeVNlc3Npb25JRDpmdW5jdGlvbigpe2lmKCEwPT09dGhpcy5kaXNhYmxlZClyZXR1cm4hMTt2YXIgYT1hY3RpdmVVc2VyUHJvZmlsZU1uZy5nZXRTZXNzaW9uSUQoKTsKCQlpZigidW5kZWZpbmVkIj09dHlwZW9mIGF8fG51bGw9PWF8fCIwIj09YXx8MD09YSl2YXIgYj1zZXRJbnRlcnZhbChmdW5jdGlvbigpe3RyeXtudWxsPT1hY3RpdmVVc2VyUHJvZmlsZU1uZy5yZWdpc3RlcmVkU2Vzc2lvbkNhbGxiYWNrcz9jbGVhckludGVydmFsKGIpOjAhPT1hY3RpdmVVc2VyUHJvZmlsZU1uZy5nZXRTZXNzaW9uSUQoKSYmKGNsZWFySW50ZXJ2YWwoYiksYWN0aXZlVXNlclByb2ZpbGVNbmcuX19ub3RpZnlTZXNzaW9uSUQoKSl9Y2F0Y2goZCl7Y29uc29sZSYmY29uc29sZS5sb2cmJmNvbnNvbGUubG9nKCJOb3RpZnkgc2Vzc2lvbmlkIGZhaWxlZCB3aXRoOiAlcyIsZC5tZXNzYWdlKX19LDUwMCk7aWYobnVsbCE9YWN0aXZlVXNlclByb2ZpbGVNbmcucmVnaXN0ZXJlZFNlc3Npb25DYWxsYmFja3MpdHJ5e2ZvcihhPTA7YTxhY3RpdmVVc2VyUHJvZmlsZU1uZy5yZWdpc3RlcmVkU2Vzc2lvbkNhbGxiYWNrcy5sZW5ndGg7YSsrKSgwLGFjdGl2ZVVzZXJQcm9maWxlTW5nLnJlZ2lzdGVyZWRTZXNzaW9uQ2FsbGJhY2tzW2FdKSgpOwoJCQlhY3RpdmVVc2VyUHJvZmlsZU1uZy5yZWdpc3RlcmVkU2Vzc2lvbkNhbGxiYWNrcz1udWxsfWNhdGNoKGQpe2NvbnNvbGUmJmNvbnNvbGUubG9nJiZjb25zb2xlLmxvZygiVW5leHBlY3RlZCBlcnJvciBjYXVnaHQgaW4gX19ub3RpZnlTZXNzaW9uSUQ6ICVzIixkLm1lc3NhZ2UpfX0sbG9nTXNnOmZ1bmN0aW9uKGEpe3RyeXtpZighMD09PXRoaXMuZGlzYWJsZWQpcmV0dXJuITE7ITA9PT10aGlzLl9fb3V0cHV0RGl2TXNnJiYkKGRvY3VtZW50LmJvZHkpLmFwcGVuZCgiPGRpdj4iK2ErIjwvZGl2PiIpOyEwPT09dGhpcy5fX291dHB1dENvbnNvbGVNc2cmJmNvbnNvbGUmJmNvbnNvbGUubG9nJiZjb25zb2xlLmxvZyhhKX1jYXRjaChiKXtjb25zb2xlJiZjb25zb2xlLmxvZyYmY29uc29sZS5sb2coIlVuZXhwZWN0ZWQgZXJyb3IgY2F1Z2h0IGluIG1lc3NhZ2UgbG9nZ2luZy4gSG93IGlyb25pYzogJXMiLGIubWVzc2FnZSl9fSxjaGVja1NjaGVkdWxlZFJlc2V0OmZ1bmN0aW9uKCl7dmFyIGE9CgkJITE7dHJ5e2lmKCEwPT09YWN0aXZlVXNlclByb2ZpbGVNbmcuZGlzYWJsZWQpcmV0dXJuITE7dmFyIGI9YWN0aXZlVXNlclByb2ZpbGVNbmcuY29va2llTW5nLnJlYWRDb29raWVWYWx1ZSgidXVpZF9yc3QiKTtpZigidW5kZWZpbmVkIj09dHlwZW9mIGJ8fG51bGw9PWIpYj0wO2IhPXRoaXMuX19yZXNldFYmJihhPSEwLGFjdGl2ZVVzZXJQcm9maWxlTW5nLmNvb2tpZU1uZy5zZXRDb29raWVWYWx1ZSgidXVpZF9yc3QiLHRoaXMuX19yZXNldFYsIi8iLDRFMykpfWNhdGNoKGQpe3RoaXMubG9nTXNnKCJVbmV4cGVjdGVkIGVycm9yIGluIHNjaGVkdWxlZCByZXNldCBjaGVjazogIitkLm1lc3NhZ2UpfXJldHVybiBhfSxnZXRBY3RpdmVQcm9maWxlaWQ6ZnVuY3Rpb24oKXtpZihudWxsIT10aGlzLnVpZClyZXR1cm4gbnVsbD09d2luZG93LmFjdGl2ZVByb2ZpbGVJRCYmKHdpbmRvdy5hY3RpdmVQcm9maWxlSUQ9dGhpcy51aWQpLHRoaXMudWlkO2lmKCEwPT09YWN0aXZlVXNlclByb2ZpbGVNbmcuZGlzYWJsZWQpcmV0dXJuIG51bGw7CgkJdmFyIGE9dGhpcy5jb29raWVNbmcucmVhZENvb2tpZVZhbHVlKCJ1dWlkIik7aWYobnVsbCE9YSYmMDxhLmxlbmd0aClyZXR1cm4gdGhpcy5hY3RpdmVQcm9maWxlSUQ9dGhpcy51aWQ9YSx0aGlzLl9fZmlyZVJlYWR5RXZlbnQoKSx0aGlzLnVpZDthPWFjdGl2ZVVzZXJQcm9maWxlTW5nLmNvb2tpZU1uZy5yZWFkQ29va2llVmFsdWUoInV1aWRfdmxkMyIpO2lmKG51bGwhPWEmJjAhPWEubGVuZ3RoKXthY3RpdmVVc2VyUHJvZmlsZU1uZy5fX2xvYWRVc2VyRGF0YUNvb2tpZSgpO2FjdGl2ZVVzZXJQcm9maWxlTW5nLmVuc3VyZVZhbGlkSUQoKTtpZihudWxsIT1hY3RpdmVVc2VyUHJvZmlsZU1uZy51aWQpcmV0dXJuIGFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZDthY3RpdmVVc2VyUHJvZmlsZU1uZy5fX2xvYWRMb2NhbFN0b3JhZ2VDb29raWUoKTthY3RpdmVVc2VyUHJvZmlsZU1uZy5lbnN1cmVWYWxpZElEKCk7aWYobnVsbCE9YWN0aXZlVXNlclByb2ZpbGVNbmcudWlkKXJldHVybiBhY3RpdmVVc2VyUHJvZmlsZU1uZy51aWQ7CgkJCWFjdGl2ZVVzZXJQcm9maWxlTW5nLl9fbG9hZEdsb2JhbFN0b3JhZ2VDb29raWUoKTthY3RpdmVVc2VyUHJvZmlsZU1uZy5lbnN1cmVWYWxpZElEKCk7aWYobnVsbCE9YWN0aXZlVXNlclByb2ZpbGVNbmcudWlkKXJldHVybiBhY3RpdmVVc2VyUHJvZmlsZU1uZy51aWQ7YWN0aXZlVXNlclByb2ZpbGVNbmcuX19sb2FkU2Vzc2lvblN0b3JhZ2VDb29raWUoKTthY3RpdmVVc2VyUHJvZmlsZU1uZy5lbnN1cmVWYWxpZElEKCk7aWYobnVsbCE9YWN0aXZlVXNlclByb2ZpbGVNbmcudWlkKXJldHVybiBhY3RpdmVVc2VyUHJvZmlsZU1uZy51aWQ7YWN0aXZlVXNlclByb2ZpbGVNbmcuX19sb2FkRnJvbUxvY2FsREIoKTthY3RpdmVVc2VyUHJvZmlsZU1uZy5lbnN1cmVWYWxpZElEKCk7aWYobnVsbCE9YWN0aXZlVXNlclByb2ZpbGVNbmcudWlkKXJldHVybiBhY3RpdmVVc2VyUHJvZmlsZU1uZy51aWQ7YWN0aXZlVXNlclByb2ZpbGVNbmcuX19sb2FkRkxWQ29va2llKCl9ZWxzZSBzZXRUaW1lb3V0KCJhY3RpdmVVc2VyUHJvZmlsZU1uZy5fX2NvbnRpbnVlTG9hZCgzKSIsCgkJCTUwMCk7cmV0dXJuIG51bGx9LGVuc3VyZVZhbGlkSUQ6ZnVuY3Rpb24oKXtpZigidW5kZWZpbmVkIj09dHlwZW9mIGFjdGl2ZVVzZXJQcm9maWxlTW5nfHwic3RyaW5nIj09dHlwZW9mIGFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZCYmMD09YWN0aXZlVXNlclByb2ZpbGVNbmcudWlkLmxlbmd0aClhY3RpdmVVc2VyUHJvZmlsZU1uZy51aWQ9bnVsbH0sc2V0QWN0aXZlUHJvZmlsZWlkOmZ1bmN0aW9uKCl7aWYobnVsbD09YWN0aXZlVXNlclByb2ZpbGVNbmcudWlkfHwhMD09PWFjdGl2ZVVzZXJQcm9maWxlTW5nLmRpc2FibGVkKXJldHVybiExO2FjdGl2ZVVzZXJQcm9maWxlTW5nLnNldERCQ29va2llKCk7YWN0aXZlVXNlclByb2ZpbGVNbmcuc2V0UE5HQ29va2llKCk7YWN0aXZlVXNlclByb2ZpbGVNbmcuc2V0RVRhZ0Nvb2tpZSgpO2FjdGl2ZVVzZXJQcm9maWxlTW5nLnNldFVzZXJEYXRhQ29va2llKCk7YWN0aXZlVXNlclByb2ZpbGVNbmcuc2V0TG9jYWxTdG9yYWdlQ29va2llKCk7YWN0aXZlVXNlclByb2ZpbGVNbmcuc2V0R2xvYmFsU3RvcmFnZUNvb2tpZSgpOwoJCWFjdGl2ZVVzZXJQcm9maWxlTW5nLnNldFNlc3Npb25TdG9yYWdlQ29va2llKCk7YWN0aXZlVXNlclByb2ZpbGVNbmcuc2V0RkxWQ29va2llKCk7YWN0aXZlVXNlclByb2ZpbGVNbmcuX19ub3RpZnlVVUlEKCl9LF9fY29udGludWVMb2FkOmZ1bmN0aW9uKGEpe2lmKCEwPT09YWN0aXZlVXNlclByb2ZpbGVNbmcuZGlzYWJsZWQpcmV0dXJuITE7YWN0aXZlVXNlclByb2ZpbGVNbmcuZW5zdXJlVmFsaWRJRCgpO2lmKG51bGwhPWFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZClhY3RpdmVVc2VyUHJvZmlsZU1uZy5fX2ZpcmVSZWFkeUV2ZW50KCk7ZWxzZSBzd2l0Y2goYSl7Y2FzZSAxOmFjdGl2ZVVzZXJQcm9maWxlTW5nLl9fbG9hZEVUYWdDb29raWUoKTticmVhaztjYXNlIDI6YWN0aXZlVXNlclByb2ZpbGVNbmcuX19sb2FkUE5HQ29va2llKCk7YnJlYWs7ZGVmYXVsdDphY3RpdmVVc2VyUHJvZmlsZU1uZy5fX2ZpcmVOb3RGb3VuZCgpfX0sX19maXJlUmVhZHlFdmVudDpmdW5jdGlvbigpe2lmKG51bGwhPQoJCWFjdGl2ZVVzZXJQcm9maWxlTW5nLm9ucmVhZHkpYWN0aXZlVXNlclByb2ZpbGVNbmcub25yZWFkeShhY3RpdmVVc2VyUHJvZmlsZU1uZy51aWQpO2FjdGl2ZVVzZXJQcm9maWxlTW5nLl9fbm90aWZ5VVVJRCgpfSxfX2ZpcmVOb3RGb3VuZDpmdW5jdGlvbigpe2lmKG51bGwhPWFjdGl2ZVVzZXJQcm9maWxlTW5nLm9ubm90Zm91bmQpYWN0aXZlVXNlclByb2ZpbGVNbmcub25ub3Rmb3VuZCgpfSxzZXRGTFZDb29raWU6ZnVuY3Rpb24oKXtpZihudWxsIT1hY3RpdmVVc2VyUHJvZmlsZU1uZy51aWQmJiJub25lIiE9YWN0aXZlVXNlclByb2ZpbGVNbmcudWlkKXtpZighMD09PWFjdGl2ZVVzZXJQcm9maWxlTW5nLmRpc2FibGVkKXJldHVybiExO3RyeXtpZigidW5kZWZpbmVkIiE9dHlwZW9mIG5hdmlnYXRvci5wbHVnaW5zJiYib2JqZWN0Ij09dHlwZW9mIG5hdmlnYXRvci5wbHVnaW5zWyJTaG9ja3dhdmUgRmxhc2giXXx8d2luZG93LkFjdGl2ZVhPYmplY3QmJjAhPW5ldyBBY3RpdmVYT2JqZWN0KCJTaG9ja3dhdmVGbGFzaC5TaG9ja3dhdmVGbGFzaCIpKXtpZighYWN0aXZlVXNlclByb2ZpbGVNbmcuc3dmU3RvcmUmJgoJCShhY3RpdmVVc2VyUHJvZmlsZU1uZy5zd2ZTdG9yZT0hMCwidW5kZWZpbmVkIj09dHlwZW9mIFN3ZlN0b3JlKSl7YWN0aXZlVXNlclByb2ZpbGVNbmcuYWpheE1uZy5nZXRTY3JpcHQoIi9qcy9zd2ZzdG9yZS5qcyIsYWN0aXZlVXNlclByb2ZpbGVNbmcuc2V0RkxWQ29va2llKTtyZXR1cm59dHJ5e3ZhciBhPW5ldyBTd2ZTdG9yZSh7bmFtZXNwYWNlOiJ1cHJvZmlsZSIsc3dmX3VybDoiL2ZsYXNoL3N0b3JhZ2Uuc3dmIixvbnJlYWR5OmZ1bmN0aW9uKCl7YS5zZXQoInVpZCIsYWN0aXZlVXNlclByb2ZpbGVNbmcudWlkKX0sb25lcnJvcjpmdW5jdGlvbigpe319KX1jYXRjaChiKXsidW5kZWZpbmVkIiE9dHlwZW9mIGNvbnNvbGUmJm51bGwhPWNvbnNvbGUmJmNvbnNvbGUubG9nJiZjb25zb2xlLmxvZygiVW5hYmxlIHRvIHNldCBGTFYgQ29va2llLiBFcnJvcjogIitiLm1lc3NhZ2UpfX19Y2F0Y2goYil7InVuZGVmaW5lZCIhPXR5cGVvZiBjb25zb2xlJiZudWxsIT1jb25zb2xlJiZjb25zb2xlLmxvZyYmCgljb25zb2xlLmxvZygiTUFJTjogVW5hYmxlIHRvIHNldCBGTFYgQ29va2llLiBFcnJvcjogIitiLm1lc3NhZ2UpfX19LF9fbG9hZEZMVkNvb2tpZTpmdW5jdGlvbigpe2lmKG51bGw9PWFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZCl7aWYoITA9PT1hY3RpdmVVc2VyUHJvZmlsZU1uZy5kaXNhYmxlZClyZXR1cm4hMTtpZigidW5kZWZpbmVkIiE9dHlwZW9mIG5hdmlnYXRvci5wbHVnaW5zJiYib2JqZWN0Ij09dHlwZW9mIG5hdmlnYXRvci5wbHVnaW5zWyJTaG9ja3dhdmUgRmxhc2giXXx8d2luZG93LkFjdGl2ZVhPYmplY3QmJjAhPW5ldyBBY3RpdmVYT2JqZWN0KCJTaG9ja3dhdmVGbGFzaC5TaG9ja3dhdmVGbGFzaCIpKXtpZighYWN0aXZlVXNlclByb2ZpbGVNbmcuc3dmU3RvcmUmJihhY3RpdmVVc2VyUHJvZmlsZU1uZy5zd2ZTdG9yZT0hMCwidW5kZWZpbmVkIj09dHlwZW9mIFN3ZlN0b3JlKSl7YWN0aXZlVXNlclByb2ZpbGVNbmcuYWpheE1uZy5nZXRTY3JpcHQoIi9qcy9zd2ZzdG9yZS5qcyIsCgkJYWN0aXZlVXNlclByb2ZpbGVNbmcuX19sb2FkRkxWQ29va2llKTtyZXR1cm59dHJ5e3ZhciBhPW5ldyBTd2ZTdG9yZSh7bmFtZXNwYWNlOiJ1cHJvZmlsZSIsc3dmX3VybDoiL2ZsYXNoL3N0b3JhZ2Uuc3dmIixvbnJlYWR5OmZ1bmN0aW9uKCl7dmFyIGI9YS5nZXQoInVpZCIpOyJ1bmRlZmluZWQiIT10eXBlb2YgYiYmbnVsbCE9YiYmKGFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZD1iKTthY3RpdmVVc2VyUHJvZmlsZU1uZy5fX2NvbnRpbnVlTG9hZCgxKX0sb25lcnJvcjpmdW5jdGlvbigpe2FjdGl2ZVVzZXJQcm9maWxlTW5nLl9fY29udGludWVMb2FkKDEpfX0pfWNhdGNoKGIpe319ZWxzZSBhY3RpdmVVc2VyUHJvZmlsZU1uZy5fX2NvbnRpbnVlTG9hZCgxKX19LF9fbG9hZEZyb21Mb2NhbERCOmZ1bmN0aW9uKCl7aWYobnVsbD09YWN0aXZlVXNlclByb2ZpbGVNbmcudWlkKXtpZighMD09PWFjdGl2ZVVzZXJQcm9maWxlTW5nLmRpc2FibGVkKXJldHVybiExO3RyeXt3aW5kb3cub3BlbkRhdGFiYXNlJiYKCWRhdGFiYXNlLnRyYW5zYWN0aW9uKGZ1bmN0aW9uKGEpe2EuZXhlY3V0ZVNxbCgiU0VMRUNUIHZhbHVlIEZST00gdXByb2ZpbGUgV0hFUkUgbmFtZT0\/IixbInVpZCJdLGZ1bmN0aW9uKGIsZCl7MTw9ZC5yb3dzLmxlbmd0aCYmKGFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZD1kLnJvd3MuaXRlbSgwKS52YWx1ZSl9LGZ1bmN0aW9uKGIsZCl7fSl9KX1jYXRjaChhKXt9fX0sc2V0REJDb29raWU6ZnVuY3Rpb24oKXtpZihudWxsIT1hY3RpdmVVc2VyUHJvZmlsZU1uZy51aWQmJiJub25lIiE9YWN0aXZlVXNlclByb2ZpbGVNbmcudWlkKXtpZighMD09PWFjdGl2ZVVzZXJQcm9maWxlTW5nLmRpc2FibGVkKXJldHVybiExO3RyeXtpZih3aW5kb3cub3BlbkRhdGFiYXNlKXt2YXIgYT13aW5kb3cub3BlbkRhdGFiYXNlKCJzcWxpdGVfdXByb2ZpbGUiLCIiLCJ1cHJvZmlsZSIsMTA0ODU3Nik7InVuZGVmaW5lZCIhPXR5cGVvZiB2YWx1ZSYmYS50cmFuc2FjdGlvbihmdW5jdGlvbihiKXtiLmV4ZWN1dGVTcWwoIkNSRUFURSBUQUJMRSBJRiBOT1QgRVhJU1RTIHVwcm9maWxlKGlkIElOVEVHRVIgTk9UIE5VTEwgUFJJTUFSWSBLRVkgQVVUT0lOQ1JFTUVOVCwgdWlkIFRFWFQgTk9UIE5VTEwsIHZhbHVlIFRFWFQgTk9UIE5VTEwsIFVOSVFVRSAodWlkKSkiLAoJCVtdLGZ1bmN0aW9uKGQsYyl7fSxmdW5jdGlvbihkLGMpe30pO2IuZXhlY3V0ZVNxbCgiSU5TRVJUIE9SIFJFUExBQ0UgSU5UTyB1cHJvZmlsZSh1aWQsIHZhbHVlKSBWQUxVRVMoPywgPykiLFsidWlkIixhY3RpdmVVc2VyUHJvZmlsZU1uZy51aWRdLGZ1bmN0aW9uKGQsYyl7fSxmdW5jdGlvbihkLGMpe30pfSl9fWNhdGNoKGIpe319fSxfX2xvYWRQTkdDb29raWU6ZnVuY3Rpb24oKXtpZihudWxsPT1hY3RpdmVVc2VyUHJvZmlsZU1uZy51aWQpe2lmKCEwPT09YWN0aXZlVXNlclByb2ZpbGVNbmcuZGlzYWJsZWQpcmV0dXJuITE7dHJ5e2lmKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpLmdldENvbnRleHQpe3ZhciBhPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpO2Euc3R5bGUudmlzaWJpbGl0eT0iaGlkZGVuIjthLnN0eWxlLnBvc2l0aW9uPSJhYnNvbHV0ZSI7YS53aWR0aD0yMDA7YS5oZWlnaHQ9MTt2YXIgYj1hLmdldENvbnRleHQoIjJkIiksZD1uZXcgSW1hZ2U7CgkJZC5zdHlsZS52aXNpYmlsaXR5PSJoaWRkZW4iO2Quc3R5bGUucG9zaXRpb249ImFic29sdXRlIjtkLnNyYz0iL2ltYWdlc19hcGkvZDJjaWdjYWNoZTEucG5nIjtkLm9uZXJyb3I9ZnVuY3Rpb24oKXthY3RpdmVVc2VyUHJvZmlsZU1uZy5fX2NvbnRpbnVlTG9hZCgzKX07ZC5vbmxvYWQ9ZnVuY3Rpb24oKXt0cnl7Yi5kcmF3SW1hZ2UoZCwwLDApO2Zvcih2YXIgYz1iLmdldEltYWdlRGF0YSgwLDAsMjAwLDEpLmRhdGEsZT0iIixoPTAsZj1jLmxlbmd0aDtoPGYmJjAhPWNbaF07aCs9NCl7ZSs9U3RyaW5nLmZyb21DaGFyQ29kZShjW2hdKTtpZigwPT1jW2grMV0pYnJlYWs7ZSs9U3RyaW5nLmZyb21DaGFyQ29kZShjW2grMV0pO2lmKDA9PWNbaCsyXSlicmVhaztlKz1TdHJpbmcuZnJvbUNoYXJDb2RlKGNbaCsyXSl9MDxlLmxlbmd0aCYmKGFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZD1lKX1jYXRjaChxKXt9YWN0aXZlVXNlclByb2ZpbGVNbmcuX19jb250aW51ZUxvYWQoMyl9fX1jYXRjaChjKXt9fX0sCglzZXRQTkdDb29raWU6ZnVuY3Rpb24oKXtpZihudWxsIT1hY3RpdmVVc2VyUHJvZmlsZU1uZy51aWQmJiJub25lIiE9YWN0aXZlVXNlclByb2ZpbGVNbmcudWlkKXtpZighMD09PWFjdGl2ZVVzZXJQcm9maWxlTW5nLmRpc2FibGVkKXJldHVybiExO3ZhciBhPW5ldyBJbWFnZTthLnN0eWxlLnZpc2liaWxpdHk9ImhpZGRlbiI7YS5zdHlsZS5wb3NpdGlvbj0iYWJzb2x1dGUiO2Euc3JjPSIvaW1hZ2VzX2FwaS9kMmNpZ2NhY2hlMS5wbmc\/dmFsPSIrYWN0aXZlVXNlclByb2ZpbGVNbmcudWlkfX0sX19sb2FkRVRhZ0Nvb2tpZTpmdW5jdGlvbigpe2lmKG51bGw9PWFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZCl7aWYoITA9PT1hY3RpdmVVc2VyUHJvZmlsZU1uZy5kaXNhYmxlZClyZXR1cm4hMTt0aGlzLmFqYXhNbmcuYWpheCh7dXJsOiIvaW1hZ2VzX2FwaS9kMmNpZ2NhY2hlMi5wbmciLHR5cGU6IkdFVCIsc3VjY2VzczpmdW5jdGlvbihhKXthY3RpdmVVc2VyUHJvZmlsZU1uZy51aWQ9YX0sCgkJY29tcGxldGU6ZnVuY3Rpb24oYSxiKXthY3RpdmVVc2VyUHJvZmlsZU1uZy5fX2NvbnRpbnVlTG9hZCgyKX19KX19LHNldEVUYWdDb29raWU6ZnVuY3Rpb24oKXtpZihudWxsIT1hY3RpdmVVc2VyUHJvZmlsZU1uZy51aWQmJiJub25lIiE9YWN0aXZlVXNlclByb2ZpbGVNbmcudWlkKXtpZighMD09PWFjdGl2ZVVzZXJQcm9maWxlTW5nLmRpc2FibGVkKXJldHVybiExO3ZhciBhPW5ldyBJbWFnZTthLnN0eWxlLnZpc2liaWxpdHk9ImhpZGRlbiI7YS5zdHlsZS5wb3NpdGlvbj0iYWJzb2x1dGUiO2Euc3JjPSIvaW1hZ2VzX2FwaS9kMmNpZ2NhY2hlMi5wbmc\/dmFsPSIrYWN0aXZlVXNlclByb2ZpbGVNbmcudWlkfX0sX19sb2FkVXNlckRhdGFDb29raWU6ZnVuY3Rpb24oKXtpZihudWxsPT1hY3RpdmVVc2VyUHJvZmlsZU1uZy51aWQpe2lmKCEwPT09YWN0aXZlVXNlclByb2ZpbGVNbmcuZGlzYWJsZWQpcmV0dXJuITE7dHJ5e3ZhciBhPXRoaXMuY3JlYXRlRWxlbSgiZGl2IiwidXNlcmRhdGFfZWwiLAoJCTEpO2Euc3R5bGUuYmVoYXZpb3I9InVybCgjZGVmYXVsdCN1c2VyRGF0YSkiO2EubG9hZCgidWlkIik7YWN0aXZlVXNlclByb2ZpbGVNbmcudWlkPWEuZ2V0QXR0cmlidXRlKCJ1aWQiKX1jYXRjaChiKXt9fX0sc2V0VXNlckRhdGFDb29raWU6ZnVuY3Rpb24oKXtpZihudWxsIT1hY3RpdmVVc2VyUHJvZmlsZU1uZy51aWQmJiJub25lIiE9YWN0aXZlVXNlclByb2ZpbGVNbmcudWlkKXtpZighMD09PWFjdGl2ZVVzZXJQcm9maWxlTW5nLmRpc2FibGVkKXJldHVybiExO3RyeXt2YXIgYT10aGlzLmNyZWF0ZUVsZW0oImRpdiIsInVzZXJkYXRhX2VsIiwxKTthLnN0eWxlLmJlaGF2aW9yPSJ1cmwoI2RlZmF1bHQjdXNlckRhdGEpIjthLnNldEF0dHJpYnV0ZSgidWlkIixhY3RpdmVVc2VyUHJvZmlsZU1uZy51aWQpO2Euc2F2ZSgidWlkIil9Y2F0Y2goYil7fX19LF9fbG9hZExvY2FsU3RvcmFnZUNvb2tpZTpmdW5jdGlvbigpe2lmKG51bGw9PWFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZCl7aWYoITA9PT0KCQlhY3RpdmVVc2VyUHJvZmlsZU1uZy5kaXNhYmxlZClyZXR1cm4hMTt0cnl7d2luZG93LmxvY2FsU3RvcmFnZSYmKGFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZD1sb2NhbFN0b3JhZ2UuZ2V0SXRlbSgidWlkIikpfWNhdGNoKGEpe319fSxzZXRMb2NhbFN0b3JhZ2VDb29raWU6ZnVuY3Rpb24oKXtpZihudWxsIT1hY3RpdmVVc2VyUHJvZmlsZU1uZy51aWQmJiJub25lIiE9YWN0aXZlVXNlclByb2ZpbGVNbmcudWlkKXtpZighMD09PWFjdGl2ZVVzZXJQcm9maWxlTW5nLmRpc2FibGVkKXJldHVybiExO3RyeXt3aW5kb3cubG9jYWxTdG9yYWdlJiZsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgidWlkIixhY3RpdmVVc2VyUHJvZmlsZU1uZy51aWQpfWNhdGNoKGEpe319fSxfX2xvYWRHbG9iYWxTdG9yYWdlQ29va2llOmZ1bmN0aW9uKCl7aWYobnVsbD09YWN0aXZlVXNlclByb2ZpbGVNbmcudWlkKXtpZighMD09PWFjdGl2ZVVzZXJQcm9maWxlTW5nLmRpc2FibGVkKXJldHVybiExO3RyeXtpZih3aW5kb3cuZ2xvYmFsU3RvcmFnZSlyZXR1cm4gdGhpcy5nZXRIb3N0KCksCgkJZXZhbCgiYWN0aXZlVXNlclByb2ZpbGVNbmcudWlkID0gZ2xvYmFsU3RvcmFnZVtob3N0XS51aWQiKX1jYXRjaChhKXt9fX0sc2V0R2xvYmFsU3RvcmFnZUNvb2tpZTpmdW5jdGlvbigpe2lmKG51bGwhPWFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZCYmIm5vbmUiIT1hY3RpdmVVc2VyUHJvZmlsZU1uZy51aWQpe2lmKCEwPT09YWN0aXZlVXNlclByb2ZpbGVNbmcuZGlzYWJsZWQpcmV0dXJuITE7dHJ5e3dpbmRvdy5nbG9iYWxTdG9yYWdlJiYodGhpcy5nZXRIb3N0KCksZXZhbCgiZ2xvYmFsU3RvcmFnZVtob3N0XS51aWQgPSBhY3RpdmVVc2VyUHJvZmlsZU1uZy51aWQiKSl9Y2F0Y2goYSl7fX19LF9fbG9hZFNlc3Npb25TdG9yYWdlQ29va2llOmZ1bmN0aW9uKCl7aWYobnVsbD09YWN0aXZlVXNlclByb2ZpbGVNbmcudWlkKXtpZighMD09PWFjdGl2ZVVzZXJQcm9maWxlTW5nLmRpc2FibGVkKXJldHVybiExO3RyeXt3aW5kb3cuc2Vzc2lvblN0b3JhZ2UmJihhY3RpdmVVc2VyUHJvZmlsZU1uZy51aWQ9CgkJd2luZG93LnNlc3Npb25TdG9yYWdlLmdldEl0ZW0oInVpZCIpKX1jYXRjaChhKXt9fX0sc2V0U2Vzc2lvblN0b3JhZ2VDb29raWU6ZnVuY3Rpb24oKXtpZihudWxsIT1hY3RpdmVVc2VyUHJvZmlsZU1uZy51aWQmJiJub25lIiE9YWN0aXZlVXNlclByb2ZpbGVNbmcudWlkKXtpZighMD09PWFjdGl2ZVVzZXJQcm9maWxlTW5nLmRpc2FibGVkKXJldHVybiExO3RyeXt3aW5kb3cuc2Vzc2lvblN0b3JhZ2UmJndpbmRvdy5zZXNzaW9uU3RvcmFnZS5zZXRJdGVtKCJ1aWQiLGFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZCl9Y2F0Y2goYSl7fX19LHJlZ2lzdGVyUGFnZVZpZXc6ZnVuY3Rpb24oKXtpZighMD09PWFjdGl2ZVVzZXJQcm9maWxlTW5nLmRpc2FibGVkKXJldHVybiEwO251bGw9PWFjdGl2ZVVzZXJQcm9maWxlTW5nLnJlZ2lzdGVyZWRQYWdlVmlld3MmJihhY3RpdmVVc2VyUHJvZmlsZU1uZy5yZWdpc3RlcmVkUGFnZVZpZXdzPVtdKTtmb3IodmFyIGE9MDthPGFjdGl2ZVVzZXJQcm9maWxlTW5nLnJlZ2lzdGVyZWRQYWdlVmlld3MubGVuZ3RoO2ErKylpZih3aW5kb3cubG9jYXRpb24uaHJlZj09CgkJYWN0aXZlVXNlclByb2ZpbGVNbmcucmVnaXN0ZXJlZFBhZ2VWaWV3c1thXSlyZXR1cm4hMTthY3RpdmVVc2VyUHJvZmlsZU1uZy5yZWdpc3RlcmVkUGFnZVZpZXdzLnB1c2god2luZG93LmxvY2F0aW9uLmhyZWYpO3JldHVybiEwfSxyZWdpc3RlclBhZ2VWaWV3RXZlbnQ6ZnVuY3Rpb24oYSxiLGQpe2lmKCEwPT09YWN0aXZlVXNlclByb2ZpbGVNbmcuZGlzYWJsZWQpcmV0dXJuITA7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBkfHxudWxsPT1kKWQ9IiI7YT1hKyJ8fHwiK2IrInx8fCIrZDtudWxsPT1hY3RpdmVVc2VyUHJvZmlsZU1uZy5yZWdpc3RlcmVkRXZlbnRzJiYoYWN0aXZlVXNlclByb2ZpbGVNbmcucmVnaXN0ZXJlZEV2ZW50cz1bXSk7Zm9yKGI9MDtiPGFjdGl2ZVVzZXJQcm9maWxlTW5nLnJlZ2lzdGVyZWRFdmVudHMubGVuZ3RoO2IrKylpZihhPT1hY3RpdmVVc2VyUHJvZmlsZU1uZy5yZWdpc3RlcmVkRXZlbnRzW2JdKXJldHVybiExO2FjdGl2ZVVzZXJQcm9maWxlTW5nLnJlZ2lzdGVyZWRFdmVudHMucHVzaChhKTsKCQlyZXR1cm4hMH0sbG9nUGFnZVZpZXdFdmVudDpmdW5jdGlvbihhLGIsZCl7aWYoIWFjdGl2ZVVzZXJQcm9maWxlTW5nLl9pc0JvdCgpKXtpZighMD09PWFjdGl2ZVVzZXJQcm9maWxlTW5nLmRpc2FibGVkKXJldHVybiExO2lmKGFjdGl2ZVVzZXJQcm9maWxlTW5nLnJlZ2lzdGVyUGFnZVZpZXdFdmVudChhLGIpKXtpZigidW5kZWZpbmVkIj09dHlwZW9mIGR8fG51bGw9PWQpZD0iIjtpZihudWxsPT1hY3RpdmVVc2VyUHJvZmlsZU1uZy5zZXNzaW9uaWR8fDA9PWFjdGl2ZVVzZXJQcm9maWxlTW5nLnNlc3Npb25pZClhY3RpdmVVc2VyUHJvZmlsZU1uZy5yZWdpc3RlclNlc3Npb25DYWxsYmFjayhmdW5jdGlvbigpe2FjdGl2ZVVzZXJQcm9maWxlTW5nLmxvZ1BhZ2VWaWV3RXZlbnQoYSxiLGQpfSk7ZWxzZXt2YXIgYz0wO2lmKCJ1bmRlZmluZWQiPT10eXBlb2Ygd2luZG93Lmxhc3RWaWV3SUQpe3ZhciBlPWFjdGl2ZVVzZXJQcm9maWxlTW5nLmNvb2tpZU1uZy5yZWFkQ29va2llVmFsdWUoInV2aWV3Iik7CgkJbnVsbCE9ZSYmKGM9ZSl9ZWxzZSBjPXdpbmRvdy5sYXN0UGFnZVZpZXdJRDsidW5kZWZpbmVkIj09dHlwZW9mIGN8fG51bGw9PWN8fDA9PWM\/Y29uc29sZSYmY29uc29sZS5sb2cmJmNvbnNvbGUubG9nKCJVbmFibGUgdG8gaWRlbnRpZnkgbGFzdCB2aWV3IGlkIik6KGU9YWN0aXZlVXNlclByb2ZpbGVNbmcuZ2V0U3RhdHNVUkkoKSxjPXtzaWQ6YWN0aXZlVXNlclByb2ZpbGVNbmcuZ2V0U2Vzc2lvbklEKCksYWN0aW9uOiJldmVudCIsdmlld2lkOmMsZXZlbnQ6YSxlY2F0ZWdvcnk6YixhZGRlZEluZm86InVuZGVmaW5lZCIhPXR5cGVvZiBkP2Q6IiJ9LGFjdGl2ZVVzZXJQcm9maWxlTW5nLmFqYXhNbmcuYWpheCh7dXJsOmUrInNlcnZpY2Uvc2Vzc2lvbk1uZy5waHAiLHR5cGU6IlBPU1QiLGRhdGE6Y30pKX19fX0sbG9nUGFnZVZpZXdFeDpmdW5jdGlvbigpe3RyeXtpZighYWN0aXZlVXNlclByb2ZpbGVNbmcuX2lzQm90KCkmJmFjdGl2ZVVzZXJQcm9maWxlTW5nLnJlZ2lzdGVyUGFnZVZpZXcoKSl7aWYoITA9PT0KCQlhY3RpdmVVc2VyUHJvZmlsZU1uZy5kaXNhYmxlZClyZXR1cm4hMTt2YXIgYT1udWxsOyJ1bmRlZmluZWQiIT10eXBlb2YgZ2V0VXJsVmFycyYmKGE9Z2V0VXJsVmFycygpKTtnZXRDdXN0b21WUkI9ZnVuY3Rpb24oayx3KXtpZigidW5kZWZpbmVkIiE9dHlwZW9mIGN1c3RvbV92YXJpYWJsZXMmJm51bGwhPWN1c3RvbV92YXJpYWJsZXMpZm9yKHZhciB1IGluIGN1c3RvbV92YXJpYWJsZXMpe2lmKHUubmFtZT09aylyZXR1cm4gdS52YWx1ZX1lbHNlIHJldHVybiB3fTtnZXRDS1ZhbHVlPWZ1bmN0aW9uKGssdyl7dmFyIHU9Z2V0Q3VzdG9tVlJCKGssbnVsbCk7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiB1JiZudWxsIT11KXJldHVybiB1O3U9YWN0aXZlVXNlclByb2ZpbGVNbmcuY29va2llTW5nLnJlYWRDb29raWVWYWx1ZShrKTtyZXR1cm4idW5kZWZpbmVkIj09dHlwZW9mIHV8fG51bGw9PXU\/bnVsbD09YXx8InVuZGVmaW5lZCI9PXR5cGVvZiBhW2tdPyJ1bmRlZmluZWQiPT10eXBlb2Ygdz8KCQkiIjp3OmFba106dX07Z2V0VVJMVmFsdWU9ZnVuY3Rpb24oayx3KXtrPWsucmVwbGFjZSgvW1xbXS8sIlxcWyIpLnJlcGxhY2UoL1tcXV0vLCJcXF0iKTtrPShuZXcgUmVnRXhwKCJbXFw\/Jl0iK2srIj0oW14mI10qKSIpKS5leGVjKHdpbmRvdy5sb2NhdGlvbi5ocmVmKTtrPW51bGw9PWs\/bnVsbDprWzFdO3JldHVybiJ1bmRlZmluZWQiPT10eXBlb2Yga3x8bnVsbD09a3x8MD09ay50b1N0cmluZygpLmxlbmd0aD93Omt9O3ZhciBiPSIiLGQ9MCxjPSJGUkVOQ0giLGU9ZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInNjcmlwdCIpLGg9ZnVuY3Rpb24oayl7dmFyIHc9e21ha2U6IiIsbW9kZWw6IiIseWVhcjoiIixwcmljZTowLHNpdGVpZDowLGRlYWxlcmlkOjAsbGFuZ3VhZ2U6IkZSRU5DSCJ9O2lmKCFrKXJldHVybiB3O2s9ay5zcGxpdCgvWzsmXS8pO2Zvcih2YXIgdT0wO3U8ay5sZW5ndGg7dSsrKXt2YXIgQj1rW3VdLnNwbGl0KCI9Iik7aWYoQiYmMj09Qi5sZW5ndGgpe3ZhciBFPQoJCXVuZXNjYXBlKEJbMF0pO0I9dW5lc2NhcGUoQlsxXSk7Qj1CLnJlcGxhY2UoL1wrL2csIiAiKTt3W0VdPUJ9fXJldHVybiB3fTtpZigidW5kZWZpbmVkIiE9dHlwZW9mIGUmJm51bGwhPWUpZm9yKHZhciBmPTA7ZjxlLmxlbmd0aDtmKyspe3ZhciBxPWVbZl07aWYoLTEhPXEuc3JjLmluZGV4T2YoIi91cGxpZ2h0LmpzPyIpKXt2YXIgcD1xLnNyYy5yZXBsYWNlKC9eW15cP10rXD8\/LywiIikseT1oKHApO3ZhciBsPXkubWFrZTt2YXIgQz15Lm1vZGVsO2I9eS55ZWFyO3ZhciBBPXkuc2l0ZWlkO3ZhciB6PXkuZGVhbGVyaWQ7ZD15LnByaWNlO2M9eS5sYW5ndWFnZTticmVha319dmFyIG09YWN0aXZlVXNlclByb2ZpbGVNbmcuZ2V0U2Vzc2lvbklEKCk7ZT0wO2lmKCJ1bmRlZmluZWQiPT1tfHwwPT1tKXttPTA7dmFyIHI9YWN0aXZlVXNlclByb2ZpbGVNbmcuY29va2llTW5nLnJlYWRDb29raWVWYWx1ZSgidXNpZF90bXAiKTtpZigidW5kZWZpbmVkIj09dHlwZW9mIHJ8fG51bGw9PXIpe3ZhciB4PQoJCW5ldyBEYXRlO3guc2V0VGltZSh4LmdldFRpbWUoKSs3MkU1KTt2YXIgZz0iOyBleHBpcmVzPSIreC50b0dNVFN0cmluZygpO2RvY3VtZW50LmNvb2tpZT0idXNpZF90bXA9MSIrZysiOyBwYXRoPS8ifWVsc2UgZT0hMH12YXIgbj13aW5kb3cubG9jYXRpb24uaHJlZjtpZigtMTxuLmluZGV4T2YoInN0ZXA9cmVzdW1lIikpe3ZhciB0PWFjdGl2ZVVzZXJQcm9maWxlTW5nLmNvb2tpZU1uZy5yZWFkQ29va2llVmFsdWUoInNlc3NpZCIpO24rPSImc2Vzc2lkPSIrKCJ1bmRlZmluZWQiIT10eXBlb2YgdHx8bnVsbCE9dD90OiJOVUxMIil9dmFyIHY9e3NpZDptLHV1aWQ6d2luZG93LmFjdGl2ZVByb2ZpbGVJRCxzaXRlaWQ6QSxkZWFsZXJpZDp6LHV0bVNvdXJjZTpnZXRVUkxWYWx1ZSgidXRtX3NvdXJjZSIsIiIpLHV0bUNhbXBhaWduOmdldFVSTFZhbHVlKCJ1dG1fY2FtcGFpZ24iLCJvcmdhbmljIiksdXRtS2V5d29yZDpnZXRDS1ZhbHVlKCJ1dG1fa2V5d29yZCIpLHV0bUxhbmRpbmc6Z2V0Q0tWYWx1ZSgidXRtX2xhbmRpbmciKSwKCQl1dG1Tb3VyY2VSZXRhcmdldGluZzpnZXRDS1ZhbHVlKCJ1dG1fc291cmNlX3JldGFyZ2V0aW5nIiksdXRtQ2FtcGFpZ25SZXRhcmdldGluZzpnZXRDS1ZhbHVlKCJ1dG1fY2FtcGFpZ25fcmV0YXJnZXRpbmciKSxtYWtlOmwsbW9kZWw6Qyx5ZWFyOmlzTmFOKGIpPyhuZXcgRGF0ZSkuZ2V0RnVsbFllYXIoKTpiLGxhbmd1YWdlOmMscGFnZToidW5kZWZpbmVkIj09dHlwZW9mIHdpbmRvdy5hY3RpdmVQYWdlPyIiOndpbmRvdy5hY3RpdmVQYWdlLHByaWNlOmQsc2xvb2t1cDplLGhyZWY6bn0sRD1hY3RpdmVVc2VyUHJvZmlsZU1uZy5nZXRTdGF0c1VSSSgpO3Y9SlNPTi5zdHJpbmdpZnkodik7dj12LnJlcGxhY2VBbGwoIi8iLCJcXC8iKTt0aGlzLmFqYXhNbmcuYWpheCh7dXJsOkQrInNlcnZpY2Uvc2Vzc2lvbk1uZy5waHAiLGRhdGE6dixkb25lOmZ1bmN0aW9uKGspe3RyeXtpZigic3RyaW5nIj09dHlwZW9mIGsmJihrPUpTT04ucGFyc2UoaykpLCJ1bmRlZmluZWQiIT10eXBlb2YgayYmCgkJbnVsbCE9ayYmKGsuY29uc3RydWN0b3I9PVtdLmNvbnN0cnVjdG9yfHxrLmNvbnN0cnVjdG9yPT17fS5jb25zdHJ1Y3Rvcikpe209ay5zZXNzaW9uaWQ7bGFzdFZpZXdJRD1rLnZpZXdpZDthY3RpdmVVc2VyUHJvZmlsZU1uZy5fbG9hZFByb3BlcnRpZXMoay5wcm9wZXJ0aWVzKTt3aW5kb3cuYWN0aXZlU2Vzc2lvbklEPW07d2luZG93Lmxhc3RQYWdlVmlld0lEPWxhc3RWaWV3SUQ7YWN0aXZlVXNlclByb2ZpbGVNbmcuc2Vzc2lvbmlkPW07dmFyIHc9bmV3IERhdGU7dy5zZXRUaW1lKHcuZ2V0VGltZSgpKzcyRTUpO3ZhciB1PSI7IGV4cGlyZXM9Iit3LnRvR01UU3RyaW5nKCk7ZG9jdW1lbnQuY29va2llPSJ1c2lkPSIrbSt1KyI7IHBhdGg9LyI7ZG9jdW1lbnQuY29va2llPSJ1dmlldz0iK2xhc3RWaWV3SUQrdSsiOyBwYXRoPS8iO2FjdGl2ZVVzZXJQcm9maWxlTW5nLl9kZWxldGVDb29raWUoInVzaWRfdG1wIik7YWN0aXZlVXNlclByb2ZpbGVNbmcuX19ub3RpZnlTZXNzaW9uSUQoKX19Y2F0Y2goQil7fXRyeXtudWxsIT0KCQlzaXRlV2Vic29ja2V0TGlzdGVuZXIuc2l0ZWlkJiZzaXRlV2Vic29ja2V0TGlzdGVuZXIuY29ubmVjdCgpfWNhdGNoKEIpe319fSl9fWNhdGNoKGspe2NvbnNvbGUmJmNvbnNvbGUubG9nJiZjb25zb2xlLmxvZygiVW5hYmxlIHRvIHN0YXQgcGFnZSBkdWUgdG8gZXJyb3I6ICIray5tZXNzYWdlKX19LGxvZ1BhZ2VWaWV3OmZ1bmN0aW9uKCl7dHJ5e2lmKCFhY3RpdmVVc2VyUHJvZmlsZU1uZy5faXNCb3QoKSYmYWN0aXZlVXNlclByb2ZpbGVNbmcucmVnaXN0ZXJQYWdlVmlldygpKXtpZighMD09PWFjdGl2ZVVzZXJQcm9maWxlTW5nLmRpc2FibGVkKXJldHVybiExO2lmKCExPT09YWN0aXZlVXNlclByb2ZpbGVNbmcuanF1ZXJ5QWN0aXZlKXJldHVybiB0aGlzLmxvZ1BhZ2VWaWV3RXgoKTt2YXIgYT1kb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgic2NyaXB0Iik7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBhJiZudWxsIT1hKWZvcih2YXIgYj0wO2I8YS5sZW5ndGg7YisrKWlmKC0xIT0KCQlhW2JdLnNyYy5pbmRleE9mKCIvdXBsaWdodC5qcz8iKSlyZXR1cm4gdGhpcy5sb2dQYWdlVmlld0V4KCk7dmFyIGQ9bnVsbDsidW5kZWZpbmVkIiE9dHlwZW9mIGdldFVybFZhcnMmJihkPWdldFVybFZhcnMoKSk7Z2V0Q3VzdG9tVlJCPWZ1bmN0aW9uKGcsbil7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBjdXN0b21fdmFyaWFibGVzJiZudWxsIT1jdXN0b21fdmFyaWFibGVzKWZvcih2YXIgdCBpbiBjdXN0b21fdmFyaWFibGVzKXtpZih0Lm5hbWU9PWcpcmV0dXJuIHQudmFsdWV9ZWxzZSByZXR1cm4gbn07Z2V0Q0tWYWx1ZT1mdW5jdGlvbihnLG4pe3ZhciB0PW51bGw7dHJ5e3ZhciB2PWdldEN1c3RvbVZSQihnLG51bGwpOyJ1bmRlZmluZWQiIT10eXBlb2YgdiYmbnVsbCE9diYmKHQ9dik7aWYobnVsbD09dCYmKHQ9YWN0aXZlVXNlclByb2ZpbGVNbmcuY29va2llTW5nLnJlYWRDb29raWVWYWx1ZShnKSxudWxsPT10KSl7aWYobnVsbD09ZHx8InVuZGVmaW5lZCI9PXR5cGVvZiBkW2ddKXJldHVybiJ1bmRlZmluZWQiPT0KCXR5cGVvZiBuPyIiOm47dD1kW2ddfX1jYXRjaChEKXtjb25zb2xlJiZjb25zb2xlLmxvZyYmY29uc29sZS5sb2coIlVuZXhwZWN0ZWQgZXJyb3IgcmV0cmlldmluZyBja1ZhbHVlIC0tICVzIixELm1lc3NhZ2UpfXJldHVybiB0fTtnZXRVUkxWYWx1ZT1mdW5jdGlvbihnLG4pe2c9Zy5yZXBsYWNlKC9bXFtdLywiXFxbIikucmVwbGFjZSgvW1xdXS8sIlxcXSIpO2c9KG5ldyBSZWdFeHAoIltcXD8mXSIrZysiPShbXiYjXSopIikpLmV4ZWMod2luZG93LmxvY2F0aW9uLmhyZWYpO2c9bnVsbD09Zz9udWxsOmdbMV07cmV0dXJuInVuZGVmaW5lZCI9PXR5cGVvZiBnfHxudWxsPT1nfHwwPT1nLnRvU3RyaW5nKCkubGVuZ3RoP246Z307YT1mdW5jdGlvbigpe2lmKCExPT09YWN0aXZlVXNlclByb2ZpbGVNbmcuanF1ZXJ5QWN0aXZlKXJldHVybltdO3ZhciBnPVtdO3RyeXt2YXIgbj1bXSx0PWZ1bmN0aW9uKGssdyl7cmV0dXJuInVuZGVmaW5lZCIhPXR5cGVvZiAkKCIjIitrKS5hdHRyKCJpZCIpJiYKCShrPSQoIiMiK2spLnZhbCgpLCJzdHJpbmciPT10eXBlb2YgayYmMDxrLmxlbmd0aCYmLTE9PWsuaW5kZXhPZigiIyMiKSk\/azp3fTtuLnB1c2goInBvcHVwIik7bi5wdXNoKCJwaG9uZSIpO24ucHVzaCgibGFzdHZpZXdlZCIpO24ucHVzaCgiZXhwcmVzc2NhciIpO2Zvcih2YXIgdj0wO3Y8bi5sZW5ndGg7disrKXt2YXIgRD10KG5bdl0rIm1ha2UiLG51bGwpO2lmKG51bGwhPUQpe2cucHVzaChEKTtnLnB1c2godChuW3ZdKyJtb2RlbCIsbnVsbCkpO2cucHVzaCh0KG5bdl0rInllYXIiLG51bGwpKTticmVha319fWNhdGNoKGspe2c9W10sZy5wdXNoKCIiKSxnLnB1c2goIiIpLGcucHVzaCgiIil9MD09Zy5sZW5ndGgmJmcucHVzaCgiIik7MT09Zy5sZW5ndGgmJmcucHVzaCgiIik7Mj09Zy5sZW5ndGgmJmcucHVzaCgiIik7cmV0dXJuIGd9O3ZhciBjPWI9IiIsZT0iIjt0cnl7dmFyIGg9YSgpO2I9MDxoLmxlbmd0aD9oWzBdOmI7Yz0xPGgubGVuZ3RoP2hbMV06YztlPTI8aC5sZW5ndGg\/CgkJaFsyXTplfWNhdGNoKGcpe2U9Yz1iPSIifXRyeXtpZigidW5kZWZpbmVkIiE9dHlwZW9mIHNlYXJjaENyaXRlcmlhJiZudWxsIT1zZWFyY2hDcml0ZXJpYSl7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBifHxudWxsPT1ifHwwPT1iLmxlbmd0aCliPS0xPT1zZWFyY2hDcml0ZXJpYS5tYWtlPyIiOnNlYXJjaENyaXRlcmlhLm1ha2U7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBjfHxudWxsPT1jfHwwPT1jLmxlbmd0aCljPS0xPT1zZWFyY2hDcml0ZXJpYS5tb2RlbD8iIjpzZWFyY2hDcml0ZXJpYS5tb2RlbDtpZigidW5kZWZpbmVkIj09dHlwZW9mIGV8fG51bGw9PWV8fDA9PWUubGVuZ3RoKWU9LTE9PXNlYXJjaENyaXRlcmlhLnllYXI\/IiI6c2VhcmNoQ3JpdGVyaWEueWVhcn1pZihudWxsPT1ifHwwPT1iLmxlbmd0aCkidW5kZWZpbmVkIiE9dHlwZW9mIG1ha2UmJm51bGwhPW1ha2UmJjA8bWFrZS5sZW5ndGgmJiIwIiE9bWFrZT9iPW1ha2U6KGI9JCgiI3BvcHVwbWFrZSIpLnZhbCgpLCJ1bmRlZmluZWQiPT0KCXR5cGVvZiBiJiYoYj0kKCIjYWN0aXZlTWFrZSIpLnZhbCgpKSwidW5kZWZpbmVkIj09dHlwZW9mIGImJihiPSQoIiNjYXJNYWtlIikudmFsKCkpLCJ1bmRlZmluZWQiPT10eXBlb2YgYiYmKGI9JCgnaW5wdXRbbmFtZT0ibWFrZSJdJykudmFsKCkpLCJ1bmRlZmluZWQiPT10eXBlb2YgYiYmKGI9Z2V0Q0tWYWx1ZSgibWFrZSIsIiIpKSk7aWYobnVsbD09Y3x8MD09Yy5sZW5ndGgpInVuZGVmaW5lZCIhPXR5cGVvZiBtb2RlbCYmbnVsbCE9bW9kZWwmJjA8bW9kZWwubGVuZ3RoJiYiMCIhPW1vZGVsP2M9bW9kZWw6KGM9JCgiI3BvcHVwbW9kZWwiKS52YWwoKSwidW5kZWZpbmVkIj09dHlwZW9mIGMmJihjPSQoIiNhY3RpdmVNb2RlbCIpLnZhbCgpKSwidW5kZWZpbmVkIj09dHlwZW9mIGMmJihjPSQoIiNjYXJNb2RlbCIpLnZhbCgpKSwidW5kZWZpbmVkIj09dHlwZW9mIGMmJihjPSQoJ2lucHV0W25hbWU9Im1vZGVsIl0nKS52YWwoKSksInVuZGVmaW5lZCI9PXR5cGVvZiBjJiYoYz1nZXRDS1ZhbHVlKCJtb2RlbCIsCgkJIiIpKSk7aWYobnVsbD09ZXx8MD09ZS5sZW5ndGgpInVuZGVmaW5lZCIhPXR5cGVvZiB5ZWFyJiZudWxsIT15ZWFyJiYhaXNOYU4oeWVhcikmJjA8eWVhci5sZW5ndGgmJiIwIiE9eWVhcj9lPXllYXI6KGU9JCgiI3BvcHVweWVhciIpLnZhbCgpLCJ1bmRlZmluZWQiPT10eXBlb2YgZSYmKGU9JCgiI2FjdGl2ZVllYXIiKS52YWwoKSksInVuZGVmaW5lZCI9PXR5cGVvZiBlJiYoZT0kKCIjY2FyWWVhciIpLnZhbCgpKSwidW5kZWZpbmVkIj09dHlwZW9mIGUmJihlPSQoIiN5ZWFyIikudmFsKCkpLCJ1bmRlZmluZWQiPT10eXBlb2YgZSYmKGU9JCgnaW5wdXRbbmFtZT0ieW1heFRleHQiXScpLnZhbCgpKSwidW5kZWZpbmVkIj09dHlwZW9mIGUmJihlPSQoJ2lucHV0W25hbWU9InltaW5UZXh0Il0nKS52YWwoKSksInVuZGVmaW5lZCI9PXR5cGVvZiBlJiYoZT1nZXRDS1ZhbHVlKCJ5ZWFyIiwobmV3IERhdGUpLmdldEZ1bGxZZWFyKCkpKSl9Y2F0Y2goZyl7Y29uc29sZSYmY29uc29sZS5sb2cmJgoJY29uc29sZS5sb2coIlVuZXhwZWN0ZWQgZXJyb3IgaWRlbnRpZnlpbmcgbWFrZS1tb2RlbC15ZWFyOiAiK2cubWVzc2FnZSksbnVsbD09YiYmKGI9IiIpLG51bGw9PWMmJihjPSIiKSxudWxsPT1lJiYoZT0iIil9dmFyIGY9MDtpZighMSE9PWFjdGl2ZVVzZXJQcm9maWxlTW5nLmpxdWVyeUFjdGl2ZSl7aWYoIlVTRURDQVJTIj09d2luZG93LmFjdGl2ZVBhZ2Upe3ZhciBxPTA7JCgiZGl2LmJveDE3MCBkaXYubWFpbl9waWNib3ggZGl2LmJveDJfZGV0YWlsc19taWQgZGl2LmJveDJfZGV0YWlsc190ZXh0IHNwYW4iKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIGc9JCh0aGlzKS50ZXh0KCk7LTEhPWcuaW5kZXhPZigiJCIpJiYocSsrLGYrPXBhcnNlSW50KGcucmVwbGFjZSgiJCIsIiIpLnJlcGxhY2UoIiwiLCIiKSkpfSk7Zj0wPHE\/Zi9xOjA7aXNOYU4oZikmJihmPTApfTAhPWYmJiFpc05hTihmKXx8InVuZGVmaW5lZCI9PXR5cGVvZiAkKCIjY3VycmVudENhclByaWNlIikuYXR0cigiaWQiKXx8CgkoZj1wYXJzZUludCgkKCIjY3VycmVudENhclByaWNlIikudmFsKCkucmVwbGFjZSgiJCIsIiIpLnJlcGxhY2UoIiwiLCIiKSkpOzAhPWYmJiFpc05hTihmKXx8InVuZGVmaW5lZCI9PXR5cGVvZiAkKCIjY2FycHJpY2UiKS5hdHRyKCJpZCIpfHwoZj1wYXJzZUludCgkKCIjY2FycHJpY2UiKS52YWwoKS5yZXBsYWNlKCIkIiwiIikucmVwbGFjZSgiLCIsIiIpKSk7MCE9ZiYmIWlzTmFOKGYpfHwidW5kZWZpbmVkIj09dHlwZW9mICQoIiNjYXJQcmljZSIpLmF0dHIoImlkIil8fChmPXBhcnNlSW50KCQoIiNjYXJQcmljZSIpLnZhbCgpLnJlcGxhY2UoIiQiLCIiKS5yZXBsYWNlKCIsIiwiIikpKTswIT1mJiYhaXNOYU4oZil8fCJ1bmRlZmluZWQiPT10eXBlb2YgJCgiI2V4cHJlc3NjYXJwcmljZSIpLmF0dHIoImlkIil8fChmPXBhcnNlSW50KCQoIiNleHByZXNzY2FycHJpY2UiKS52YWwoKS5yZXBsYWNlKCIkIiwiIikucmVwbGFjZSgiLCIsIiIpKSk7MCE9ZiYmIWlzTmFOKGYpfHwidW5kZWZpbmVkIj09Cgl0eXBlb2YgJCgiI2NhcnByb29mY2FycHJpY2UiKS5hdHRyKCJpZCIpfHwoZj1wYXJzZUludCgkKCIjY2FycHJvb2ZjYXJwcmljZSIpLnZhbCgpLnJlcGxhY2UoIiQiLCIiKS5yZXBsYWNlKCIsIiwiIikpKTswIT1mJiYhaXNOYU4oZil8fCJ1bmRlZmluZWQiPT10eXBlb2YgJCgiI3NlYXJjaFJlc3VsdHNBdmdQcmljZSIpLmF0dHIoImlkIil8fChmPXBhcnNlSW50KCQoIiNzZWFyY2hSZXN1bHRzQXZnUHJpY2UiKS52YWwoKS5yZXBsYWNlKCIkIiwiIikucmVwbGFjZSgiLCIsIiIpKSk7MCE9ZiYmIWlzTmFOKGYpfHwidW5kZWZpbmVkIj09dHlwZW9mICQoJ2lucHV0W25hbWU9InBtaW4iXScpLmF0dHIoImlkIil8fChmPXBhcnNlSW50KCQoJ2lucHV0W25hbWU9InBtaW4iXScpLnZhbCgpLnJlcGxhY2UoIiQiLCIiKS5yZXBsYWNlKCIsIiwiIikpKTswIT1mJiYhaXNOYU4oZil8fCJ1bmRlZmluZWQiPT10eXBlb2YgJCgnaW5wdXRbbmFtZT0icG1heCJdJykuYXR0cigiaWQiKXx8KGY9cGFyc2VJbnQoJCgnaW5wdXRbbmFtZT0icG1heCJdJykudmFsKCkucmVwbGFjZSgiJCIsCgkJIiIpLnJlcGxhY2UoIiwiLCIiKSkpOzAhPWYmJiFpc05hTihmKXx8InVuZGVmaW5lZCI9PXR5cGVvZiAkKCIjY2FyUHJpY2UiKS5hdHRyKCJpZCIpfHwoZj0kKCIjY2FyUHJpY2UiKS5oYXNDbGFzcygiYm94Ml9kZXRhaWxzX3RleHQyNSIpP3BhcnNlSW50KCQoIiNjYXJQcmljZSIpLmNoaWxkcmVuKCI6Zmlyc3QiKS50ZXh0KCkucmVwbGFjZSgiJCIsIiIpLnJlcGxhY2UoIiwiLCIiKSk6cGFyc2VJbnQoJCgiI2NhclByaWNlIikudGV4dCgpLnJlcGxhY2UoIiQiLCIiKS5yZXBsYWNlKCIsIiwiIikpKTtpc05hTihmKSYmKGY9MCk7dmFyIHA9MCx5PTA7InVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3cuYWN0aXZlU2l0ZUlEJiZudWxsIT13aW5kb3cuYWN0aXZlU2l0ZUlEJiYwIT13aW5kb3cuYWN0aXZlU2l0ZUlEP3A9d2luZG93LmFjdGl2ZVNpdGVJRDoocD0kKCIjc2l0ZUlEIikudmFsKCksInVuZGVmaW5lZCI9PXR5cGVvZiBwJiYocD0kKCIjdG9wc2l0ZWlkIikudmFsKCkpLCJ1bmRlZmluZWQiPT0KCXR5cGVvZiBwJiYocD0wKSk7InVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3cuYWN0aXZlRGVhbGVySUQmJih5PXdpbmRvdy5hY3RpdmVTaXRlSUQpO3ZhciBsPWFjdGl2ZVVzZXJQcm9maWxlTW5nLmdldFNlc3Npb25JRCgpLEM9MDtpZigidW5kZWZpbmVkIj09bHx8MD09bHx8IjAiPT1sKWlmKGw9MCwidW5kZWZpbmVkIj09dHlwZW9mICQuY29va2llKCJ1c2lkX3RtcCIpKXt2YXIgQT1uZXcgRGF0ZTtBLnNldFRpbWUoQS5nZXRUaW1lKCkrNzJFNSk7dmFyIHo9IjsgZXhwaXJlcz0iK0EudG9HTVRTdHJpbmcoKTtkb2N1bWVudC5jb29raWU9InVzaWRfdG1wPTEiK3orIjsgcGF0aD0vIn1lbHNlIEM9ITA7dmFyIG09d2luZG93LmxvY2F0aW9uLmhyZWY7LTE8bS5pbmRleE9mKCJzdGVwPXJlc3VtZSIpJiYobSs9IiZzZXNzaWQ9IisoInVuZGVmaW5lZCIhPXR5cGVvZiAkLmNvb2tpZSgic2Vzc2lkIik\/JC5jb29raWUoInNlc3NpZCIpOiJOVUxMIikpfXZhciByPXtzaWQ6bCx1dWlkOmFjdGl2ZVVzZXJQcm9maWxlTW5nLmdldEFjdGl2ZVByb2ZpbGVpZCgpLAoJCXNpdGVpZDpwLGRlYWxlcmlkOnksdXRtU291cmNlOmdldFVSTFZhbHVlKCJ1dG1fc291cmNlIiwiIiksdXRtQ2FtcGFpZ246Z2V0VVJMVmFsdWUoInV0bV9jYW1wYWlnbiIsIm9yZ2FuaWMiKSx1dG1LZXl3b3JkOmdldENLVmFsdWUoInV0bV9rZXl3b3JkIiksdXRtTGFuZGluZzpnZXRDS1ZhbHVlKCJ1dG1fbGFuZGluZyIpLHV0bVNvdXJjZVJldGFyZ2V0aW5nOmdldENLVmFsdWUoInV0bV9zb3VyY2VfcmV0YXJnZXRpbmciKSx1dG1DYW1wYWlnblJldGFyZ2V0aW5nOmdldENLVmFsdWUoInV0bV9jYW1wYWlnbl9yZXRhcmdldGluZyIpLG1ha2U6Yixtb2RlbDpjLHllYXI6aXNOYU4oZSk\/KG5ldyBEYXRlKS5nZXRGdWxsWWVhcigpOmUsbGFuZ3VhZ2U6JCgiI2FjdGl2ZXNpdGVsYW5ndWFnZSIpLnZhbCgpLHBhZ2U6InVuZGVmaW5lZCI9PXR5cGVvZiB3aW5kb3cuYWN0aXZlUGFnZT8iIjp3aW5kb3cuYWN0aXZlUGFnZSxwcmljZTpmLHNsb29rdXA6QyxocmVmOm19LHg9YWN0aXZlVXNlclByb2ZpbGVNbmcuZ2V0U3RhdHNVUkkoKTsKCQlyPUpTT04uc3RyaW5naWZ5KHIpO3I9ci5yZXBsYWNlQWxsKCIvIiwiXFwvIik7dGhpcy5hamF4TW5nLmFqYXgoe3R5cGU6IlBPU1QiLHVybDp4KyJzZXJ2aWNlL3Nlc3Npb25NbmcucGhwIixjb250ZW50VHlwZToiYXBwbGljYXRpb24vanNvbjsgY2hhcnNldD11dGYtOCIsZGF0YTpyLGRvbmU6ZnVuY3Rpb24oZyl7InN0cmluZyI9PXR5cGVvZiBnJiYoZz1KU09OLnBhcnNlKGcpKTsidW5kZWZpbmVkIj09dHlwZW9mIGd8fG51bGw9PWd8fGcuY29uc3RydWN0b3IhPVtdLmNvbnN0cnVjdG9yJiZnLmNvbnN0cnVjdG9yIT17fS5jb25zdHJ1Y3Rvcnx8KGw9Zy5zZXNzaW9uaWQsbGFzdFZpZXdJRD1nLnZpZXdpZCxhY3RpdmVVc2VyUHJvZmlsZU1uZy5fbG9hZFByb3BlcnRpZXMoZy5wcm9wZXJ0aWVzKSx3aW5kb3cuYWN0aXZlU2Vzc2lvbklEPWwsd2luZG93Lmxhc3RQYWdlVmlld0lEPWxhc3RWaWV3SUQsYWN0aXZlVXNlclByb2ZpbGVNbmcuc2Vzc2lvbmlkPWwsYWN0aXZlVXNlclByb2ZpbGVNbmcuY29va2llTW5nLnNldENvb2tpZVZhbHVlKCJ1c2lkIiwKCQkJCWwsIi8iLDIpLGFjdGl2ZVVzZXJQcm9maWxlTW5nLmNvb2tpZU1uZy5zZXRDb29raWVWYWx1ZSgidXZpZXciLGxhc3RWaWV3SUQsIi8iLDIpLGFjdGl2ZVVzZXJQcm9maWxlTW5nLmNvb2tpZU1uZy5kZWxldGVDb29raWUoInVzaWRfdG1wIiksYWN0aXZlVXNlclByb2ZpbGVNbmcuX19ub3RpZnlTZXNzaW9uSUQoKSl9LGZhaWw6ZnVuY3Rpb24oZyxuLHQpe2NvbnNvbGUmJmNvbnNvbGUubG9nJiZjb25zb2xlLmxvZygiVW5hYmxlIHRvIGxvZyBwYWdlIHZpZXcuIEVycm9yOiAiK3QubWVzc2FnZSl9LGFsd2F5czpmdW5jdGlvbigpe319KX19Y2F0Y2goZyl7Y29uc29sZSYmY29uc29sZS5sb2cmJmNvbnNvbGUubG9nKCJVbmFibGUgdG8gc3RhdCBwYWdlIGR1ZSB0byBlcnJvcjogIitnLm1lc3NhZ2UpfX0sX2xvYWRQcm9wZXJ0aWVzOmZ1bmN0aW9uKGEpe3RyeXsidW5kZWZpbmVkIiE9dHlwZW9mIGEmJm51bGwhPWEmJihhY3RpdmVVc2VyUHJvZmlsZU1uZy5fX3Byb3BlcnRpZXM9YSxhY3RpdmVVc2VyUHJvZmlsZU1uZy5wYWdlVmlld0NvdW50PQoJCWEucGFnZXZpZXdzKX1jYXRjaChiKXt9fSxnZXRQcm9wZXJ0eTpmdW5jdGlvbihhLGIpe3JldHVybiJ1bmRlZmluZWQiPT10eXBlb2YgYWN0aXZlVXNlclByb2ZpbGVNbmcuX19wcm9wZXJ0aWVzfHxudWxsPT1hY3RpdmVVc2VyUHJvZmlsZU1uZy5fX3Byb3BlcnRpZXM\/bnVsbDoidW5kZWZpbmVkIj09dHlwZW9mIGFjdGl2ZVVzZXJQcm9maWxlTW5nLl9fcHJvcGVydGllc1thXT8idW5kZWZpbmVkIiE9dHlwZW9mIGI\/YjoiIjphY3RpdmVVc2VyUHJvZmlsZU1uZy5fX3Byb3BlcnRpZXNbYV19LGFkZFByb3BlcnR5OmZ1bmN0aW9uKGEsYixkKXtpZigidW5kZWZpbmVkIj09dHlwZW9mIGF8fG51bGw9PWF8fDA9PWEubGVuZ3RofHwidW5kZWZpbmVkIj09dHlwZW9mIGJ8fG51bGw9PWJ8fCJ1bmRlZmluZWQiPT10eXBlb2Ygd2luZG93LmFjdGl2ZVByb2ZpbGVJRClyZXR1cm4gbnVsbDsidW5kZWZpbmVkIj09dHlwZW9mIGQmJihkPSJVUERBVEUiKTthY3RpdmVVc2VyUHJvZmlsZU1uZy5nZXRTdGF0c1VSSSgpOwoJCXRoaXMuYWpheE1uZy5hamF4KHt0eXBlOiJHRVQiLGFjdGlvbjoiYWRkcHJvcGVydHkiLHV1aWQ6YWN0aXZlVXNlclByb2ZpbGVNbmcuZ2V0QWN0aXZlUHJvZmlsZWlkKCksc2lkOmFjdGl2ZVVzZXJQcm9maWxlTW5nLmdldFNlc3Npb25JRCgpLHBuYW1lOmEscHZhbHVlOmIscG1vZGU6ZH0pO3JldHVybiEwfSx0YWdCcm93c2VyOmZ1bmN0aW9uKGEsYil7dHJ5e3ZhciBkPWEsYz10aGlzO2lmKCEwPT09YWN0aXZlVXNlclByb2ZpbGVNbmcuZGlzYWJsZWQpcmV0dXJuITE7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBhfHxudWxsPT1hKWQ9ZnVuY3Rpb24oaCl7dHJ5e3ZhciBmPW5ldyBTdHJpbmcoaCk7Zj1mLnRyaW0oKTtpZigwPGYubGVuZ3RoKXtjLmxvZ01zZygiVGFnZ2VkIHdpdGggdXVpZCA9PiAiK2YpO3ZhciBxPWMuZ2V0QWN0aXZlUHJvZmlsZWlkKCk7YWN0aXZlVXNlclByb2ZpbGVNbmcudWlkPWYudHJpbSgpO251bGwhPXEmJiJ1bmRlZmluZWQiIT10eXBlb2YgcS5sZW5ndGgmJgoJMDxxLmxlbmd0aCYmYWN0aXZlVXNlclByb2ZpbGVNbmcudWlkIT1xJiZjLmNvb2tpZU1uZy5zZXRDb29raWVWYWx1ZSgidXVpZF92MSIscSwiLyIsMTgwKTtjLmNvb2tpZU1uZy5zZXRDb29raWVWYWx1ZSgidXVpZCIsYWN0aXZlVXNlclByb2ZpbGVNbmcudWlkLCIvIiw1RTMpO2MuY29va2llTW5nLnNldENvb2tpZVZhbHVlKCJ1dWlkX3ZsZDMiLCEwLCIvIiw1RTMpO2Muc2V0QWN0aXZlUHJvZmlsZWlkKCl9fWNhdGNoKHApe2MubG9nTXNnKCJVbmV4cGVjdGVkIGVycm9yIHJldHVybmVkIGZyb20gdGFnZ2luZzogIitwLm1lc3NhZ2UpfX07dGhpcy5sb2dNc2coIkdlbmVyYXRpbmcgZmluZ2VycHJpbnQiKTt2YXIgZT10aGlzLmdldEZQVVJJKCk7Yy5hamF4TW5nLmdldFNjcmlwdChlLGZ1bmN0aW9uKCl7dHJ5e3ZhciBoPWZ1bmN0aW9uKGwpe3RyeXtjLmxvZ01zZygiRmluZ2VycHJpbnRlZDogIitsKTt2YXIgQz1jLmdldEFjdGl2ZVByb2ZpbGVpZCgpLEE9ZW5jb2RlVVJJKHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4pOwoJCWlmKCJ1bmRlZmluZWQiPT10eXBlb2YgbHx8bnVsbD09bClyZXR1cm4hMTt2YXIgej0hMTthY3RpdmVVc2VyUHJvZmlsZU1uZy5pc0QyQ1NpdGUmJjM9PXdpbmRvdy5hY3RpdmVTaXRlSUQmJih6PSEwKTtjLmNvb2tpZU1uZy5zZXRDb29raWVWYWx1ZSgidXVmcCIsbCwiLyIsNUUzKTt2YXIgbT17ZDpBLGZwMTpsLnN1YnN0cmluZygwLDgpLGZwMjpsLnN1YnN0cmluZyg4LDE2KSxmcDM6bC5zdWJzdHJpbmcoMTYsMjQpLGZwNDpsLnN1YnN0cmluZygyNCwzMiksdWlkOkMsYWN0aW9uOiJ1cGdyYWRlZnAiLGRibTp6LHY6YWN0aXZlVXNlclByb2ZpbGVNbmcuX19yZXNldFZ9LHI9YWN0aXZlVXNlclByb2ZpbGVNbmcuZ2V0U3RhdHNVUkkoKTtjLmxvZ01zZyhyKyJzZXJ2aWNlL2QyYy51cGdyYWRlLnY2LmZwLmpzIik7Yy5sb2dNc2coSlNPTi5zdHJpbmdpZnkobSkpO2MuYWpheE1uZy5hamF4KHt1cmw6cisic2VydmljZS9kMmMudXBncmFkZS52Ni5mcC5qcyIsdHlwZToiR0VUIixkYXRhOm0sCgkJCWRvbmU6ZnVuY3Rpb24oeCl7dHJ5e2MubG9nTXNnKCJVVUlEIGFmdGVyIHVwcm9maWxlIHVwZGF0ZTogIit4KSwidW5kZWZpbmVkIiE9dHlwZW9mIGQmJm51bGwhPWQ\/ZCh4KTpjLmNvb2tpZU1uZy5zZXRDb29raWVWYWx1ZSgidXVpZCIseCwiLyIsNUUzKSwidW5kZWZpbmVkIiE9dHlwZW9mIGImJm51bGwhPWImJmIoKX1jYXRjaChnKXt9fX0pfWNhdGNoKHgpe2MubG9nTXNnKCJVbmV4cGVjdGVkIGVycm9yIGV4ZWN1dGluZyB0YWdNZSBzdGVwOiAiK3gubWVzc2FnZSl9fSxmPSExO3RyeXtuYXZpZ2F0b3IudXNlckFnZW50LmluZGV4T2YoIldpbiIpLG5hdmlnYXRvci51c2VyQWdlbnQuaW5kZXhPZigiTWFjIiksbmF2aWdhdG9yLnVzZXJBZ2VudC5pbmRleE9mKCJMaW51eCIpLG5hdmlnYXRvci51c2VyQWdlbnQuaW5kZXhPZigiQW5kcm9pZCIpLC0xIT1uYXZpZ2F0b3IudXNlckFnZW50LmluZGV4T2YoImxpa2UgTWFjIikmJihmPSEwKSxsb2NhdGlvbi5wcm90b2NvbC5pbmRleE9mKCJodHRwcyIpfWNhdGNoKGwpe312YXIgcT0KCQl7cHJlcHJvY2Vzc29yOm51bGwsYXVkaW86e3RpbWVvdXQ6MUUzLGV4Y2x1ZGVJT1MxMTpmfSxmb250czp7c3dmQ29udGFpbmVySWQ6ImRjdGtkaXZmcDIiLHN3ZlBhdGg6ImZsYXNoL2NvbXBpbGVkL0ZvbnRMaXN0LnN3ZiIsdXNlckRlZmluZWRGb250czpbXSxleHRlbmRlZEpzRm9udHM6ITF9LHNjcmVlbjp7ZGV0ZWN0U2NyZWVuT3JpZW50YXRpb246ITB9LHBsdWdpbnM6e3NvcnRQbHVnaW5zRm9yOlsvcGFsZW1vb24vaV0sZXhjbHVkZUlFOiExfSxleHRyYUNvbXBvbmVudHM6W10sTk9UX0FWQUlMQUJMRToibm90IGF2YWlsYWJsZSIsRVJST1I6ImVycm9yIixFWENMVURFRDoiZXhjbHVkZWQifSxwPSExO251bGwhPXdpbmRvdyYmbnVsbCE9d2luZG93LmxvY2F0aW9uJiYidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdy5sb2NhdGlvbi5ocmVmJiYoLTE8d2luZG93LmxvY2F0aW9uLmhyZWYuaW5kZXhPZigiZDJjZGVidWc9MSIpfHwtMSE9d2luZG93LmxvY2F0aW9uLmhyZWYuaW5kZXhPZigiY3JtMi5kMmNtZWRpYS5jYSIpKSYmCgkocD0hMCk7dmFyIHk9ZnVuY3Rpb24obCl7dHJ5e3ZhciBDPWZ1bmN0aW9uKHope3o9ei5tYXAoZnVuY3Rpb24obSl7dmFyIHI9IiI7dHJ5e3N3aXRjaChwJiZjb25zb2xlLmxvZyhtLmtleS50b0xvd2VyQ2FzZSgpKSxtLmtleS50b0xvd2VyQ2FzZSgpKXtjYXNlICJjYW52YXMiOmNhc2UgIndlYmdsIjpjYXNlICJhZGJsb2NrIjpyPSIiO2JyZWFrO2Nhc2UgInVzZXJhZ2VudCI6aWYoMDxtLnZhbHVlLmxlbmd0aCYmLTEhPW0udmFsdWUuaW5kZXhPZigiICIpKWZvcih2YXIgeD1tLnZhbHVlLnNwbGl0KCIgIiksZz0wO2c8eC5sZW5ndGg7ZysrKXt2YXIgbj14W2ddO2lmKC0xIT1uLmluZGV4T2YoIi8iKSl7dmFyIHQ9bi5zcGxpdCgiLyIpO3IrPXRbMF19ZWxzZS0xPT1uLmluZGV4T2YoIi4iKSYmKHIrPW4pfXAmJmNvbnNvbGUubG9nKCJVc2VyIEFnZW50IC0tICIrcik7YnJlYWs7ZGVmYXVsdDoidW5kZWZpbmVkIiE9dHlwZW9mIEFycmF5LmlzQXJyYXkmJkFycmF5LmlzQXJyYXkobS52YWx1ZSl8fAoJbS52YWx1ZS5jb25zdHJ1Y3Rvcj09PUFycmF5PyhtLnZhbHVlLnNvcnQoKSxyPW0udmFsdWUuam9pbigpKTpyPW0udmFsdWV9fWNhdGNoKHYpe2NvbnNvbGUmJmNvbnNvbGUubG9nJiZjb25zb2xlLmxvZygiRlAgRmFpbGVkIC0tICVzIC0gJW8iLHYubWVzc2FnZSxtKX1pZigidW5kZWZpbmVkIj09dHlwZW9mIHJ8fG51bGw9PXIpcj0iIjtyZXR1cm4gcn0pO3ouc29ydCgpO3JldHVybiB6fShsKTtwJiZjb25zb2xlLmxvZygidG8gaGFzaDogJW8iLEMpO3ZhciBBPUZpbmdlcnByaW50Mi54NjRoYXNoMTI4KEMuam9pbigiIiksMzEpO3AmJmNvbnNvbGUubG9nKCJGUCA9PiAlcyIsQSk7aChBKTtjLmxvZ01zZygiRmluZ2VycHJpbnQ6ICIrQSl9Y2F0Y2goeil7Y29uc29sZSYmY29uc29sZS5sb2cmJmNvbnNvbGUubG9nKCJGUDIgRmFpbGVkIC0tICVzIix6Lm1lc3NhZ2UpfX07d2luZG93LnJlcXVlc3RJZGxlQ2FsbGJhY2s\/cmVxdWVzdElkbGVDYWxsYmFjayhmdW5jdGlvbigpe3RyeXtGaW5nZXJwcmludDIuZ2V0KHEsCgkJeSl9Y2F0Y2gobCl7Yy5sb2dNc2coIjEuVW5hYmxlIHRvIGluc3RhbnRpYXRlIEZQMi4gRXJyb3I6ICIrbC5tZXNzYWdlKX19KTpzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dHJ5e0ZpbmdlcnByaW50Mi5nZXQocSx5KX1jYXRjaChsKXtjLmxvZ01zZygiMi5VbmFibGUgdG8gaW5zdGFudGlhdGUgRlAyLiBFcnJvcjogIitsLm1lc3NhZ2UpfX0sNTAwKX1jYXRjaChsKXtjLmxvZ01zZygiVW5leHBlY3RlZCBlcnJvciBleGVjdXRpbmcgZmlyc3Qgc3RlcDogIitsLm1lc3NhZ2UpfX0pfWNhdGNoKGgpe2MubG9nTXNnKCJVbmV4cGVjdGVkIGVycm9yIGV4ZWN1dGluZyBmaXJzdCBzdGVwOiAiK2gubWVzc2FnZSl9fSx1cGRhdGVGUDpmdW5jdGlvbigpe3RyeXtpZighMD09PWFjdGl2ZVVzZXJQcm9maWxlTW5nLmRpc2FibGVkKXJldHVybiExO3RoaXMubG9nTXNnKCJTdGFydGluZyBTYWZhcmkgUnVuIik7aWYoITE9PT10aGlzLnJlc2V0U2Vjb25kUGFzcyl7dGhpcy5yZXNldFNlY29uZFBhc3M9CgkJITA7dGhpcy5sb2dNc2coIlN0YXJ0aW5nIGZpcnN0IHBhc3MiKTt2YXIgYT10aGlzLmNvb2tpZU1uZy5yZWFkQ29va2llVmFsdWUoInV1aWQiKSxiPXRoaXMuY29va2llTW5nLnJlYWRDb29raWVWYWx1ZSgidXVpZF9pb3NfMiIpO3RoaXMubG9nTXNnKCJVVUlELiAiK2ErIiAtLSBJT1NSRVNFVC4gIitiKTtudWxsPT1hfHxudWxsPT1iPyh0aGlzLmxvZ01zZygiRHJvcHBpbmcgcmVzZXQgY29va2llIiksdGhpcy5jb29raWVNbmcuc2V0Q29va2llVmFsdWUoInV1aWRfaW9zXzIiLDEsIi8iLDVFMyksdGhpcy50YWdCcm93c2VyKG51bGwpKToodGhpcy5sb2dNc2coIlNlY29uZCBwYXNzLCBub3RoaW5nIHRvIGRvIiksd2luZG93Ll9fX2QyY0NUS01ldGhvZCgpKX1lbHNlIHdpbmRvdy5fX19kMmNDVEtNZXRob2QoKX1jYXRjaChkKXt0aGlzLmxvZ01zZygiVW5leHBlY3RlZCBlcnJvciB1cGRhdGluZyBtb2JpbGUgY29va2llOiAiK2QubWVzc2FnZSl9fX07CndpbmRvdy5fX19kMmNDVEtNZXRob2Q9ZnVuY3Rpb24oKXt0cnl7aWYoIWFjdGl2ZVVzZXJQcm9maWxlTW5nLl9pc0JvdCgpJiYhMCE9PWFjdGl2ZVVzZXJQcm9maWxlTW5nLmRpc2FibGVkKXthY3RpdmVVc2VyUHJvZmlsZU1uZy5qcXVlcnlBY3RpdmU9d2luZG93LmpRdWVyeT8hMDohMTt2YXIgYT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidG9wc2l0ZWlkIik7aWYobnVsbD09YXx8InVuZGVmaW5lZCI9PXR5cGVvZiBhLnZhbHVlfHxpc05hTihhLnZhbHVlKSlhY3RpdmVVc2VyUHJvZmlsZU1uZy5sb2dNc2coIkxvYWRpbmcgZnBzeXN0ZW0gb24gbm9uIGQyYyB3ZWJzaXRlIiksYWN0aXZlVXNlclByb2ZpbGVNbmcuaXNEMkNTaXRlPSExO2Vsc2UgdHJ5e3dpbmRvdy5hY3RpdmVTaXRlSUQ9cGFyc2VJbnQoYS52YWx1ZSl9Y2F0Y2gocCl7d2luZG93LmFjdGl2ZVNpdGVJRD12b2lkIDB9dmFyIGI9YWN0aXZlVXNlclByb2ZpbGVNbmcuY2hlY2tTY2hlZHVsZWRSZXNldCgpLGQ9YWN0aXZlVXNlclByb2ZpbGVNbmcuY29va2llTW5nLnJlYWRDb29raWVWYWx1ZSgidXNpZCIpOwoJaWYoInVuZGVmaW5lZCI9PXR5cGVvZiB3aW5kb3cuYWN0aXZlU2Vzc2lvbklEfHxudWxsPT13aW5kb3cuYWN0aXZlU2Vzc2lvbklEKXdpbmRvdy5hY3RpdmVTZXNzaW9uSUQ9MDtudWxsPT1kfHxpc05hTihkKXx8KHdpbmRvdy5hY3RpdmVTZXNzaW9uSUQ9ZCk7YWN0aXZlVXNlclByb2ZpbGVNbmcuY29va2llTW5nLmRlbGV0ZUNvb2tpZSgidXVpZF92bGQiKTt2YXIgYz1hY3RpdmVVc2VyUHJvZmlsZU1uZy5nZXRTdGF0c1VSSSgpLGU9ZnVuY3Rpb24oKXt0cnl7InVuZGVmaW5lZCI9PXR5cGVvZiB3aW5kb3cuc3RhdEV4ZWN1dGVkJiYoInVuZGVmaW5lZCIhPXR5cGVvZiBhY3RpdmVVc2VyUHJvZmlsZU1uZyYmbnVsbCE9YWN0aXZlVXNlclByb2ZpbGVNbmcmJiJ1bmRlZmluZWQiIT10eXBlb2YgYWN0aXZlVXNlclByb2ZpbGVNbmcubG9nUGFnZVZpZXc\/KGFjdGl2ZVVzZXJQcm9maWxlTW5nLmxvZ1BhZ2VWaWV3KCksd2luZG93LnN0YXRFeGVjdXRlZD0hMCk6YWN0aXZlVXNlclByb2ZpbGVNbmcuYWpheE1uZy5hamF4KHt1cmw6YysKCQkJInNlcnZpY2Uvc2Vzc2lvbk1uZy5waHAiLHR5cGU6IkdFVCIsZGF0YTp7YWN0aW9uOiJ1bmtub3duIixtc2c6IjEuRWl0aGVyIGFjdGl2ZVVzZXJQcm9maWxlTW5nIGlzIG5vdCBkZWZpbmVkIG9yIGxvZ1BhZ2VWaWV3IGlzIG5vdCBkZWZpbmVkIn19KSl9Y2F0Y2gocCl7YWN0aXZlVXNlclByb2ZpbGVNbmcubG9nTXNnKHAubWVzc2FnZSksYWN0aXZlVXNlclByb2ZpbGVNbmcuYWpheE1uZy5hamF4KHt1cmw6Yysic2VydmljZS9zZXNzaW9uTW5nLnBocCIsdHlwZToiR0VUIixkYXRhOnthY3Rpb246InVua25vd24iLG1zZzpwLm1lc3NhZ2V9fSl9fSxoPWFjdGl2ZVVzZXJQcm9maWxlTW5nLmNvb2tpZU1uZy5yZWFkQ29va2llVmFsdWUoInV1aWQiKSxmPW51bGw9PWh8fDA9PWgubGVuZ3RoPyExOiEwO2g9YWN0aXZlVXNlclByb2ZpbGVNbmcuY29va2llTW5nLnJlYWRDb29raWVWYWx1ZSgidXVpZF92bGQzIik7dmFyIHE9bnVsbD09aHx8MD09aC5sZW5ndGg\/ITE6ITA7aWYoIWImJmYmJgoJCXEpe2FjdGl2ZVVzZXJQcm9maWxlTW5nLnJlZ2lzdGVyQ2FsbGJhY2soZSk7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiB3aW5kb3cuYWN0aXZlUHJvZmlsZUlEfHxudWxsPT13aW5kb3cuYWN0aXZlUHJvZmlsZUlEKXdpbmRvdy5hY3RpdmVQcm9maWxlSUQ9YWN0aXZlVXNlclByb2ZpbGVNbmcuZ2V0QWN0aXZlUHJvZmlsZWlkKCk7YWN0aXZlVXNlclByb2ZpbGVNbmcuX19ub3RpZnlVVUlEKCl9ZWxzZSBhY3RpdmVVc2VyUHJvZmlsZU1uZy5zZXNzaW9uaWQ9bnVsbCx3aW5kb3cuYWN0aXZlU2Vzc2lvbklEPW51bGwsYWN0aXZlVXNlclByb2ZpbGVNbmcudGFnQnJvd3NlcihudWxsLGZ1bmN0aW9uKCl7YWN0aXZlVXNlclByb2ZpbGVNbmcucmVnaXN0ZXJDYWxsYmFjayhlKX0pfX1jYXRjaChwKXtjPWFjdGl2ZVVzZXJQcm9maWxlTW5nLmdldFN0YXRzVVJJKCksYWN0aXZlVXNlclByb2ZpbGVNbmcuYWpheE1uZy5fZ2V0KGMrInNlcnZpY2Uvc2Vzc2lvbk1uZy5waHA\/YWN0aW9uPXVua25vd24mbXNnPTIuIisKCWVuY29kZVVSSUNvbXBvbmVudChwLm1lc3NhZ2UpKSxjb25zb2xlJiZjb25zb2xlLmxvZyYmY29uc29sZS5sb2coIjEuIFVuZXhwZWN0ZWQgZXJyb3Igb2NjdXJlZCBsb2FkaW5nIHVwcm9maWxlLmZpbmFsLmpzLiBFcnJvcjogIitwLm1lc3NhZ2UpfX07CnRyeXtsZXQgYT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjZGlzYWJsZUludGVybmFsU2Vzc2lvbiIpO2lmKG51bGwhPWEmJiIxIj09YS52YWx1ZSl7YWN0aXZlVXNlclByb2ZpbGVNbmcuZGlzYWJsZWQ9ITA7YWN0aXZlVXNlclByb2ZpbGVNbmcudWlkPW51bGw7bGV0IGI9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI3RvcHNpdGVpZCIpO251bGwhPWImJihiPXBhcnNlSW50KGIudmFsdWUpKTtpc05hTihiKXx8MjM1IT1iPyhhY3RpdmVVc2VyUHJvZmlsZU1uZy5jb29raWVNbmcuZGVsZXRlQ29va2llKCJ1dWlkIiksYWN0aXZlVXNlclByb2ZpbGVNbmcuY29va2llTW5nLmRlbGV0ZUNvb2tpZSgidWlkIiksYWN0aXZlVXNlclByb2ZpbGVNbmcuY29va2llTW5nLmRlbGV0ZUNvb2tpZSgidXVpZF9yc3QiKSxhY3RpdmVVc2VyUHJvZmlsZU1uZy5jb29raWVNbmcuZGVsZXRlQ29va2llKCJ1c2lkIiksYWN0aXZlVXNlclByb2ZpbGVNbmcuY29va2llTW5nLmRlbGV0ZUNvb2tpZSgidXZpZXciKSwKCWFjdGl2ZVVzZXJQcm9maWxlTW5nLmNvb2tpZU1uZy5kZWxldGVDb29raWUoInVzaWQiKSxhY3RpdmVVc2VyUHJvZmlsZU1uZy5jb29raWVNbmcuZGVsZXRlQ29va2llKCJ1c2lkX3RtcCIpLGFjdGl2ZVVzZXJQcm9maWxlTW5nLmNvb2tpZU1uZy5kZWxldGVDb29raWUoInV1aWRfdjEiKSxhY3RpdmVVc2VyUHJvZmlsZU1uZy5jb29raWVNbmcuZGVsZXRlQ29va2llKCJ1dWlkX3ZsZDMiKSxhY3RpdmVVc2VyUHJvZmlsZU1uZy5jb29raWVNbmcuZGVsZXRlQ29va2llKCJ1dWZwIiksYWN0aXZlVXNlclByb2ZpbGVNbmcuY29va2llTW5nLmRlbGV0ZUNvb2tpZSgidXVpZF9pb3NfMiIpKTpjb25zb2xlLmxvZygiYnlwYXNzaW5nIGNvb2tpZSBwdXJnZSIpfWVsc2UibG9hZGluZyIhPWRvY3VtZW50LnJlYWR5U3RhdGU\/d2luZG93Ll9fX2QyY0NUS01ldGhvZCgpOmRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXI\/ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiRE9NQ29udGVudExvYWRlZCIsd2luZG93Ll9fX2QyY0NUS01ldGhvZCk6Cglkb2N1bWVudC5hdHRhY2hFdmVudCgib25yZWFkeXN0YXRlY2hhbmdlIixmdW5jdGlvbigpeyJjb21wbGV0ZSI9PWRvY3VtZW50LnJlYWR5U3RhdGUmJndpbmRvdy5fX19kMmNDVEtNZXRob2QoKX0pfWNhdGNoKGEpe2NvbnNvbGUmJmNvbnNvbGUubG9nJiZjb25zb2xlLmxvZygiNS4gVW5leHBlY3RlZCBlcnJvciBvY2N1cmVkIGxvYWRpbmcgdXByb2ZpbGUuZmluYWwuanMuIEVycm9yOiAiK2EubWVzc2FnZSl9OwovKiogL2pzL2pxdWVyeS5yZXZlYWwuanMgKiovCnZhciBfX19kMmNfanF1ZXJ5cmV2ZWFsanNfY19vbj0iMjAyNS0wNS0yMyAxNzowNjo0MiI7J3VzZSBzdHJpY3QnO3ZhciBfX19kMmNfanF1ZXJ5cmV2ZWFsanNfY19vbj0iMjAyNC0wNS0xNCAxMDozMDowNSI7InVzZSBzdHJpY3QiOwooZnVuY3Rpb24oYil7YigiYm9keSIpLm9uKCJjbGljayIsImFbZGF0YS1yZXZlYWwtaWRdIixmdW5jdGlvbihhKXthLnByZXZlbnREZWZhdWx0KCk7YT1iKHRoaXMpLmF0dHIoImRhdGEtcmV2ZWFsLWlkIik7YigiIyIrYSkucmV2ZWFsKGIodGhpcykuZGF0YSgpKX0pO2IuZm4ucmV2ZWFsPWZ1bmN0aW9uKGEpe2E9Yi5leHRlbmQoe30se2FuaW1hdGlvbjoiZmFkZUFuZFBvcCIsYW5pbWF0aW9uc3BlZWQ6MzAwLGNsb3Nlb25iYWNrZ3JvdW5kY2xpY2s6ITAsZGlzbWlzc21vZGFsY2xhc3M6ImNsb3NlLXJldmVhbC1tb2RhbCIsY2xvc2VvbmVzY2FwZTohMH0sYSk7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe2Z1bmN0aW9uIGYoKXsib2JqZWN0Ij09dHlwZW9mIHBvcHVwU3VwZXJ2aXNvciYmc2V0VGltZW91dChwb3B1cFN1cGVydmlzb3IucmVwb3NpdGlvbiwxRTMpO2c9ITF9dmFyIGM9Yih0aGlzKSxoPXBhcnNlSW50KGMuY3NzKCJ0b3AiKSksbT1jLmhlaWdodCgpK2gsZz0hMSwKZD1iKCIucmV2ZWFsLW1vZGFsLWJnIik7MD09ZC5sZW5ndGgmJihkPWIoJzxkaXYgY2xhc3M9InJldmVhbC1tb2RhbC1iZyIgLz4nKS5pbnNlcnRBZnRlcihjKSk7Yy5vbigicmV2ZWFsOm9wZW4iLGZ1bmN0aW9uKCl7dmFyIGs9InVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3cuaW5uZXJIZWlnaHQ\/d2luZG93LmlubmVySGVpZ2h0OmIod2luZG93KS5oZWlnaHQoKSxuPWIoYykub3V0ZXJIZWlnaHQoKTtiKGMpLm9mZnNldCgpO2IoZG9jdW1lbnQpLnNjcm9sbFRvcCgpO3ZhciBsPS9Nb2JpLy50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpPzU6MjAsZT0oay1uKS8yK2w7ZT1lPGx8fGs8bj9sOmU7MDxiKCIjZDJjX2JvZHlDb250ZW50IikubGVuZ3RoJiYoZS09YigiI2QyY19ib2R5Q29udGVudCIpLm9mZnNldCgpLnRvcCk7MDxiKCIuc2xvdE1hY2hpbmVDb250YWluZXIiKS5sZW5ndGgmJmIoIi5zbG90TWFjaGluZUNvbnRhaW5lciIpLnNob3coKTtkLm9mZigiY2xpY2subW9kYWxFdmVudCIpOwpiKCIuIithLmRpc21pc3Ntb2RhbGNsYXNzKS5vZmYoImNsaWNrLm1vZGFsRXZlbnQiKTtnfHwoZz0hMCwiZmFkZUFuZFBvcCI9PWEuYW5pbWF0aW9uJiYoYy5jc3Moe3RvcDpiKGRvY3VtZW50KS5zY3JvbGxUb3AoKS1tLG9wYWNpdHk6MCx2aXNpYmlsaXR5OiJ2aXNpYmxlIn0pLGQuZmFkZUluKGEuYW5pbWF0aW9uc3BlZWQvMiksYy5kZWxheShhLmFuaW1hdGlvbnNwZWVkLzIpLmFuaW1hdGUoe3RvcDpiKGRvY3VtZW50KS5zY3JvbGxUb3AoKStlKyJweCIsb3BhY2l0eToxfSxhLmFuaW1hdGlvbnNwZWVkLGYoKSkpLCJmYWRlIj09YS5hbmltYXRpb24mJihjLmNzcyh7b3BhY2l0eTowLHZpc2liaWxpdHk6InZpc2libGUiLHRvcDpiKGRvY3VtZW50KS5zY3JvbGxUb3AoKStlfSksZC5mYWRlSW4oYS5hbmltYXRpb25zcGVlZC8yKSxjLmRlbGF5KGEuYW5pbWF0aW9uc3BlZWQvMikuYW5pbWF0ZSh7b3BhY2l0eToxfSxhLmFuaW1hdGlvbnNwZWVkLGYoKSkpLCJub25lIj09YS5hbmltYXRpb24mJgooYy5jc3Moe3Zpc2liaWxpdHk6InZpc2libGUiLHRvcDpiKGRvY3VtZW50KS5zY3JvbGxUb3AoKStlfSksZC5jc3Moe2Rpc3BsYXk6ImJsb2NrIn0pLGYoKSksImV4dGVybmFsQW5pbWF0aW9uIj09YS5hbmltYXRpb24mJihjLmNzcyh7dmlzaWJpbGl0eToidmlzaWJsZSIsdG9wOmIoZG9jdW1lbnQpLnNjcm9sbFRvcCgpK2UsZGlzcGxheToibm9uZSJ9KS5zaG93KCksZC5jc3Moe2Rpc3BsYXk6ImJsb2NrIn0pLGYoKSkpO2Mub2ZmKCJyZXZlYWw6b3BlbiIpfSk7Yy5vbigicmV2ZWFsOmNsb3NlIixmdW5jdGlvbigpe2IoImJvZHkiKS5jc3MoIm92ZXJmbG93IiwiYXV0byIpO2IoIi5zbG90TWFjaGluZUNvbnRhaW5lciIpLmhpZGUoKTtpZighZyYmKGc9ITAsImZhZGVBbmRQb3AiPT1hLmFuaW1hdGlvbiYmKGQuZGVsYXkoYS5hbmltYXRpb25zcGVlZCkuZmFkZU91dChhLmFuaW1hdGlvbnNwZWVkKSxjLmFuaW1hdGUoe3RvcDpiKGRvY3VtZW50KS5zY3JvbGxUb3AoKS1tKyJweCIsb3BhY2l0eTowfSwKYS5hbmltYXRpb25zcGVlZC8yLGZ1bmN0aW9uKCl7Yy5jc3Moe3RvcDpoLG9wYWNpdHk6MSx2aXNpYmlsaXR5OiJoaWRkZW4ifSk7ZigpfSkpLCJmYWRlIj09YS5hbmltYXRpb24mJihkLmRlbGF5KGEuYW5pbWF0aW9uc3BlZWQpLmZhZGVPdXQoYS5hbmltYXRpb25zcGVlZCksYy5hbmltYXRlKHtvcGFjaXR5OjB9LGEuYW5pbWF0aW9uc3BlZWQsZnVuY3Rpb24oKXtjLmNzcyh7b3BhY2l0eToxLHZpc2liaWxpdHk6ImhpZGRlbiIsdG9wOmh9KTtmKCl9KSksIm5vbmUiPT1hLmFuaW1hdGlvbiYmKGMuY3NzKHt2aXNpYmlsaXR5OiJoaWRkZW4iLHRvcDpofSksZC5jc3Moe2Rpc3BsYXk6Im5vbmUifSkpLCJleHRlcm5hbEFuaW1hdGlvbiI9PWEuYW5pbWF0aW9uKSljLmhpZGUoKS5vbmUoImFuaW1hdGlvbkVuZCIsZnVuY3Rpb24oKXtiKHRoaXMpLmNzcyh7dmlzaWJpbGl0eToiaGlkZGVuIix0b3A6aCxkaXNwbGF5OiJub25lIn0pO2QuY3NzKHtkaXNwbGF5OiJub25lIn0pfSk7Yy5vZmYoInJldmVhbDpjbG9zZSIpOwoidW5kZWZpbmVkIiE9dHlwZW9mIGEuY2xvc2VkJiZhLmNsb3NlZCgpfSk7Yy50cmlnZ2VyKCJyZXZlYWw6b3BlbiIpO2IoIi4iK2EuZGlzbWlzc21vZGFsY2xhc3MpLm9uKCJjbGljay5tb2RhbEV2ZW50IHRvdWNoc3RhcnQiLGZ1bmN0aW9uKCl7Yy50cmlnZ2VyKCJyZXZlYWw6Y2xvc2UiKX0pO2EuY2xvc2VvbmJhY2tncm91bmRjbGljayYmKGQuY3NzKHtjdXJzb3I6InBvaW50ZXIifSksZC5vbigiY2xpY2subW9kYWxFdmVudCIsZnVuY3Rpb24oKXtjLnRyaWdnZXIoInJldmVhbDpjbG9zZSIpfSkpO2lmKGEuY2xvc2VvbmVzY2FwZSliKCJib2R5Iikub24oImtleXVwIixmdW5jdGlvbihrKXsyNz09PWsud2hpY2gmJmMudHJpZ2dlcigicmV2ZWFsOmNsb3NlIil9KX0pfX0pKGpRdWVyeSk7Ci8qKiAvanMvcG9wdXBpemVyLmpzICoqLwp2YXIgX19fZDJjX3BvcHVwaXplcmpzX2Nfb249IjIwMjYtMDEtMTMgMTY6MzA6MDYiOyd1c2Ugc3RyaWN0Jztpc1NjcmF0Y2hBbmRTYXZlPSJ1bmRlZmluZWQiPT10eXBlb2YgaXNTY3JhdGNoQW5kU2F2ZT8iIjppc1NjcmF0Y2hBbmRTYXZlO3BvcHVwV2lkZ2V0X3BhZ2VWaWV3c0luY3JlbWVudGVkPSJ1bmRlZmluZWQiPT10eXBlb2YgcG9wdXBXaWRnZXRfcGFnZVZpZXdzSW5jcmVtZW50ZWQ\/IiI6cG9wdXBXaWRnZXRfcGFnZVZpZXdzSW5jcmVtZW50ZWQ7c2hvd1BvcHVwV2lkZ2V0PSJmdW5jdGlvbiIhPXR5cGVvZiBzaG93UG9wdXBXaWRnZXQ\/ZnVuY3Rpb24oKXt9OnNob3dQb3B1cFdpZGdldDthY3RpdmF0ZVBvcHVwQmVmb3JlTG9hZD0iZnVuY3Rpb24iIT10eXBlb2YgYWN0aXZhdGVQb3B1cEJlZm9yZUxvYWQ\/ZnVuY3Rpb24oKXt9OmFjdGl2YXRlUG9wdXBCZWZvcmVMb2FkOwp2YXIgcG9wdXBJc1N1Ym1pdHRpbmc9ITEsQ1BvcHVwU3VwZXJ2aXNvcj1mdW5jdGlvbigpe3ZhciBjPXRoaXM7Yy5vbmxvYWRRdWV1ZT1bXTtjLmluZGV4PTA7Yy5pc0FuaW1hdGluZz0hMTtjLnBvcHVwcz1bXTtjLnJlZ2lzdGVyPWZ1bmN0aW9uKGEpe3ZhciBrPTA7MDxOdW1iZXIoYS5zZXR0aW5ncy5zaG93b25sb2FkKSYmITAhPT1hLnNldHRpbmdzLnNob3dvbmxvYWQmJihrPWEuc2V0dGluZ3Muc2hvd29ubG9hZCk7dmFyIGI9MTsxPGEuc2V0dGluZ3MucHJpb3JpdHkmJihiPWEuc2V0dGluZ3MucHJpb3JpdHkpOzEhPUNvb2tpZXMuZ2V0KCJub3VzZWRjdGEiKXx8InVzZWRjYXJzLmh0bWwiIT0kKCIjUEFHRUlEIikudmFsKCkmJiJjYXJkZXRhaWwuaHRtbCIhPSQoIiNQQUdFSUQiKS52YWwoKT9jLm9ubG9hZFF1ZXVlLnB1c2goe3BvcHVwOmEsZGVsYXk6ayxwcmlvcml0eTpifSk6Y29uc29sZS5sb2coIk5vdCBzaG93aW5nIHBvcHVwIG9ubG9hZCwgYmVjYXVzZSBpdHMgYSB1c2VkIHBhZ2UgYW5kIHRoZSBjb29raWUgbm91c2VkY3RhIGlzIHNldCIpfTsKYy5yZXBvc2l0aW9uPWZ1bmN0aW9uKCl7aWYoIShwb3B1cGl6ZXJBY3RpdmUoKXx8InVuZGVmaW5lZCIhPXR5cGVvZiBtb2RlbENvbmZpZyYmbW9kZWxDb25maWcuaXNBY3RpdmUmJm1vZGVsQ29uZmlnLmlzQWN0aXZlKCkpKXJldHVybiAkKCJib2R5IikuY3NzKCJvdmVyZmxvdyIsImF1dG8iKSwhMTtpZihjLmlzQW5pbWF0aW5nKXJldHVybiExO3ZhciBhPSJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93LmlubmVySGVpZ2h0P3dpbmRvdy5pbm5lckhlaWdodDokKHdpbmRvdykuaGVpZ2h0KCksaz0kKGRvY3VtZW50KS5zY3JvbGxUb3AoKSxiPS9Nb2JpLy50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpPzU6MjA7JCgiLnJldmVhbC1tb2RhbCIpLmVhY2goZnVuY3Rpb24oZCxmKXtkPSQodGhpcyk7aWYoInZpc2libGUiPT1kLmNzcygidmlzaWJpbGl0eSIpKXtmPWQub2Zmc2V0KCkudG9wO3ZhciBoPWQub3V0ZXJIZWlnaHQoKSxsPWYraDtpZihhPGgrYnx8bmF2aWdhdG9yLnVzZXJBZ2VudC5tYXRjaCgvKGlQaG9uZXxpUG9kKS9nKSl7aWYoJCgiYm9keSIpLmNzcygib3ZlcmZsb3ciLAoiYXV0byIpLGs+bHx8aythPGYpZj1rK2IsYy5pc0FuaW1hdGluZz0hMCxkLmFuaW1hdGUoe3RvcDpmKyJweCJ9LDIwMCxmdW5jdGlvbigpe2MuaXNBbmltYXRpbmc9ITF9KX1lbHNlIGY9aysoYS1oKS8yLGY9ZjxiP2I6ZixjLmlzQW5pbWF0aW5nPSEwLGQuYW5pbWF0ZSh7dG9wOmYrInB4In0sMjAwLGZ1bmN0aW9uKCl7Yy5pc0FuaW1hdGluZz0hMX0pfX0pfTtjLnNob3c9ZnVuY3Rpb24oKXtpZighKDA8JCgiI2Rpc2FibGVQb3B1cHMiKS5sZW5ndGgmJiIxIj09JCgiI2Rpc2FibGVQb3B1cHMiKS52YWwoKSkmJihjLm9ubG9hZFF1ZXVlLnNvcnQoZnVuY3Rpb24oYSxrKXtpZihhLnByaW9yaXR5PmsucHJpb3JpdHkpcmV0dXJuIDE7aWYoYS5wcmlvcml0eTxrLnByaW9yaXR5KXJldHVybi0xO2lmKGEucHJpb3JpdHk9PWsucHJpb3JpdHkpcmV0dXJuIGEuZGVsYXk8ay5kZWxheT8xOi0xfSksKCJCVUlMREFORFBSSUNFIiE9cGFnZXx8Ii0xIiE9d2luZG93LmxvY2F0aW9uLmhyZWYuaW5kZXhPZigic3RlcD1yZXN1bWUiKSkmJgowPGMub25sb2FkUXVldWUubGVuZ3RoKSl7Zm9yKGtleSBpbiBjLm9ubG9hZFF1ZXVlKWlmKDE9PWMub25sb2FkUXVldWVba2V5XS5wb3B1cC5zZXR0aW5ncy5lbmRQb3B1cFF1ZXVlKXJldHVybiBjLm9ubG9hZFF1ZXVlW2tleV0ucG9wdXAub3BlbihjLm9ubG9hZFF1ZXVlW2tleV0uZGVsYXkpLCExO2ZvcihrZXkgaW4gYy5vbmxvYWRRdWV1ZSljLm9ubG9hZFF1ZXVlW2tleV0ucG9wdXAub3BlbihjLm9ubG9hZFF1ZXVlW2tleV0uZGVsYXkpfX07dmFyIG09ZnVuY3Rpb24oKXtpZihwb3B1cGl6ZXJBY3RpdmUoKSlyZXR1cm4gc2V0VGltZW91dChtLDUwMCksITE7c2V0VGltZW91dChmdW5jdGlvbigpe2lmKHBvcHVwaXplckFjdGl2ZSgpKXJldHVybiBtKCk7JC5wb3N0TWVzc2FnZSgiY2xvc2VQb3B1cCIsIioiLHdpbmRvdy5wYXJlbnQpfSwxRTMpfTtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7MDwkKCIjYXV0b2F1YmFpbmVfcG9wdXAiKS5sZW5ndGgmJiJmYWxzZSIhPSQoIiNhdXRvYXViYWluZV9wb3B1cCIpLnZhbCgpJiYKbSgpfSw1RTMpfSxwb3B1cFN1cGVydmlzb3I9bmV3IENQb3B1cFN1cGVydmlzb3IscG9wdXBpemVyQWN0aXZlPWZ1bmN0aW9uKCl7aWYocG9wdXBpemVyQ29uZmlnLnBvcHVwT3BlbilyZXR1cm4hMDt2YXIgYz0hMTskKCIucmV2ZWFsLW1vZGFsLCAucmV2ZWFsLW1vZGVsLWRvLW5vdC1zaG93IikuZWFjaChmdW5jdGlvbigpe2lmKDEhPWMpe3ZhciBtPSQodGhpcyk7aWYoIW0uaXMoIjpoaWRkZW4iKSlzd2l0Y2gobS5jc3MoInZpc2liaWxpdHkiKSl7Y2FzZSAidW5kZWZpbmVkIjpjYXNlICJ2aXNpYmxlIjpjPSEwfX19KTtpZigkKCIucHBfb3ZlcmxheSIpLmlzKCI6dmlzaWJsZSIpfHxkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIubW9kYWwtb3ZlcmxheSIpKWM9ITA7cmV0dXJuIGN9LHBvcHVwaXplckNvbmZpZz17fTskLmV4dGVuZCghMCxwb3B1cGl6ZXJDb25maWcse3BvcHVwT3BlbjohMX0pOwp2YXIgcG9wdXBpemVyPWZ1bmN0aW9uKGMsbSl7dmFyIGE9dGhpcyxrPSJhdXRvIjtjP2EudGFyZ2V0PWM6Yz1hLnRhcmdldDthLnNldHRpbmdzPW07YS5zZXRUcmlnZ2VyPWZ1bmN0aW9uKGIpe2s9InN0cmluZyI9PXR5cGVvZiBiJiYiY2xpY2siPT1iLnRvTG93ZXJDYXNlKCk\/ImNsaWNrIjoiYXV0byI7YS5zZXR0aW5ncy50cmlnZ2VyPWs7cmV0dXJuIGF9O2EuaW5pdD1mdW5jdGlvbigpe3ZhciBiPSJmdW5jdGlvbiI9PXR5cGVvZiBhLnNldHRpbmdzLm9uQmVmb3JlSW5pdGlhbGl6ZSxkPSJmdW5jdGlvbiI9PXR5cGVvZiBhLnNldHRpbmdzLm9uQWZ0ZXJJbml0aWFsaXplO2lmKGEuaXNDb250ZW50TG9hZGVkKCl8fCFiJiYhZCl7aWYoYil7dmFyIGY9YS5zZXR0aW5ncy5vbkJlZm9yZUluaXRpYWxpemUuY2FsbChjLGEpO2lmKDA9PWYpcmV0dXJufWI9ITE7aWYoYS5zZXR0aW5ncy50aHJlc2hvbGQmJmEuc2V0dGluZ3MubWFpbnBvcHVwKXthLnNldHRpbmdzLnNob3dvbmxvYWQ9ITE7CmlmKCJmdW5jdGlvbiI9PXR5cGVvZiBhLnNldHRpbmdzLm9uQWZ0ZXJJbml0aWFsaXplJiYoYj0hMCxmPWEuc2V0dGluZ3Mub25BZnRlckluaXRpYWxpemUuY2FsbChjLGEpLDA9PWYpKXthLnNhdmVTZXR0aW5ncygpO3JldHVybn10aHJlc2hvbGRFeGVjKGEuc2V0dGluZ3MudGhyZXNob2xkVmFsdWUvMTAwLGEuZXhlY09wZW4pfWlmKGEuc2V0dGluZ3Muc2Nyb2xsdXAmJmEuc2V0dGluZ3MubWFpbnBvcHVwKXthLnNldHRpbmdzLnNob3dvbmxvYWQ9ITE7aWYoZCYmKGI9ITAsZj1hLnNldHRpbmdzLm9uQWZ0ZXJJbml0aWFsaXplLmNhbGwoYyxhKSwwPT1mKSl7YS5zYXZlU2V0dGluZ3MoKTtyZXR1cm59c2Nyb2xsdXBFeGVjKGEuZXhlY09wZW4pfWMuYWRkQ2xhc3MoInJldmVhbC1tb2RhbCIpOyJ1bmRlZmluZWQiIT10eXBlb2YgYS5zZXR0aW5ncy5hZGRlZENsYXNzZXMmJjA8YS5zZXR0aW5ncy5hZGRlZENsYXNzZXMubGVuZ3RoJiZjLmFkZENsYXNzKGEuc2V0dGluZ3MuYWRkZWRDbGFzc2VzKTsKJCgiZm9ybSIsYykub24oInN1Ym1pdCIsYS5zdWJtaXQpO2Y9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIik7YS5zZXR0aW5ncy5hbmltYXRpb24mJmYuZ2V0Q29udGV4dCYmKCJ1bmRlZmluZWQiIT10eXBlb2YgYS5zZXR0aW5ncy5hbmltYXRpb24uZWZmZWN0JiYoYS5zZXR0aW5ncy5yZXZlYWwuYW5pbWF0aW9uPSJleHRlcm5hbEFuaW1hdGlvbiIsYy5hZGRDbGFzcyhhLnNldHRpbmdzLmFuaW1hdGlvbi5lZmZlY3QpKSwidW5kZWZpbmVkIiE9dHlwZW9mIGEuc2V0dGluZ3MuYW5pbWF0aW9uLnNwZWVkJiZjLmFkZENsYXNzKGEuc2V0dGluZ3MuYW5pbWF0aW9uLnNwZWVkKSk7YS5zZXR0aW5ncy5pbml0aWFsaXplZD0hMDtjLnRyaWdnZXIoInBvcHVwaXplci5pbml0aWFsaXplZCIsYSk7aWYoZCYmIWImJihmPWEuc2V0dGluZ3Mub25BZnRlckluaXRpYWxpemUuY2FsbChjLGEpLDA9PWYpKXthLnNhdmVTZXR0aW5ncygpO3JldHVybn1hLnNhdmVTZXR0aW5ncygpO2Q9JCgiI2hpZGRlblNraXBPbmxvYWRQcmludHNjcmVlbiIpOwppZigwPGQubGVuZ3RoJiYiRE9fU0tJUF9QT1BVUCI9PWQudmFsKCkpcmV0dXJuITE7IWEuc2V0dGluZ3Muc2hvd29ubG9hZHx8bnVsbCE9Q29va2llcy5nZXQoInBvcHVwRm9ybUZpbGxlZCIpfHxudWxsIT1Db29raWVzLmdldChhLnNldHRpbmdzLmNvb2tpZU5hbWUpfHwxIT1hLnNldHRpbmdzLmNsb3NlQnV0dG9uJiYwIT1hLnNldHRpbmdzLmNsb3NlQnV0dG9ufHwoLTEhPXdpbmRvdy5sb2NhdGlvbi5ocmVmLmluZGV4T2YoIi9yZXF1ZXN0LyIpfHwtMSE9d2luZG93LmxvY2F0aW9uLmhyZWYuaW5kZXhPZigiL2RlbWFuZGVzLyIpKSYmLTE9PWEuc2V0dGluZ3MubmFtZS5pbmRleE9mKCJpbWFnZVBvcHVwIil8fHBvcHVwU3VwZXJ2aXNvci5yZWdpc3RlcihhKTskKGRvY3VtZW50KS5vZmYoImNsaWNrIiwiLiIrbS5yZXZlYWwuZGlzbWlzc21vZGFsY2xhc3MpLm9uKCJjbGljayIsIi4iK20ucmV2ZWFsLmRpc21pc3Ntb2RhbGNsYXNzLGZ1bmN0aW9uKGgpe2MudHJpZ2dlcigicG9wdXBpemVyLmNsb3NlIiwKYyl9KTskKGRvY3VtZW50KS5vZmYoImtleXVwIikub24oImtleXVwIixmdW5jdGlvbihoKXsyNz09PWgud2hpY2gmJmMudHJpZ2dlcigicG9wdXBpemVyLmNsb3NlIixjKX0pOyJ1bmRlZmluZWQiIT09dHlwZW9mIGEuc2V0dGluZ3MuZm9ybS5mcm9tQUEmJihlbWFpbEhhbmRsZXIuZnJvbUFBPWEuc2V0dGluZ3MuZm9ybS5mcm9tQUEpO3JldHVybiBhfWEubG9hZChhLmluaXQpfTthLm9uT3Blbj1mdW5jdGlvbigpe2EuaXNDb250ZW50TG9hZGVkKCl8fGEubG9hZCgpO2lmKCJhdXRvIj09ayYmbnVsbCE9Q29va2llcy5nZXQoYS5zZXR0aW5ncy5jb29raWVOYW1lKSlyZXR1cm4hMTtjLmZpbmQoIi5wb3B1cGl6ZXJCb2R5Iikuc2hvdygpO2lmKG51bGwhPUNvb2tpZXMuZ2V0KCJwb3B1cEZvcm1GaWxsZWQiKXx8bnVsbCE9Q29va2llcy5nZXQoYS5zZXR0aW5ncy5jb29raWVOYW1lKSljLmZpbmQoIi5jbG9zZS1yZXZlYWwtbW9kYWwiKS5yZW1vdmVDbGFzcygibW9kYWwtY2xvc2UtaGlkZSIpLApjLmZpbmQoIi5jbG9zZS1yZXZlYWwtbW9kYWwiKS5zaG93KCk7YS5jcmVhdGVDb25maXJtRm9ybSgpO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBhLnNldHRpbmdzLm9uQmVmb3JlT3BlbiYmMD09YS5zZXR0aW5ncy5vbkJlZm9yZU9wZW4uY2FsbChjLGEpKXJldHVybiExO3ZhciBiPSIvcG9wdXAtIithLnRhcmdldC5maW5kKCIuZW1haWxTdWJqZWN0IikudGV4dCgpLnJlcGxhY2UoL1tcblxyXS9nLCIgIik7YS50YXJnZXQuZmluZCgiI2ltYWdlUG9wdXBMZWFkVHlwZSIpLmxlbmd0aCYmKGI9Ii9wb3B1cC0iK2EudGFyZ2V0LmZpbmQoIiNpbWFnZVBvcHVwTGVhZFR5cGUiKS5hdHRyKCJkYXRhLXRyYW5zbGF0ZWQiKS5yZXBsYWNlKC9bXG5ccl0vZywiICIpKTthLnRhcmdldC5maW5kKCIjcGF5bWVudENhbGN1bGF0b3JDb250YWluZXIiKS5sZW5ndGgmJihiPSQoImJvZHkiKS5oYXNDbGFzcygiRlJFTkNIIik\/Ii9uZXVmcy9jYWxjdWxhdHJpY2UtcHJldC1hdXRvLXBvcHVwLmh0bWwiOiIvbmV3L2Nhci1sb2FuLWNhbGN1bGF0b3ItcG9wdXAuaHRtbCIpOwpnYVBhZ2VWaWV3KGIpO2dhNFBhZ2VWaWV3KGIpO2EubG9nRXZlbnQoInBvcHVwLm9wZW4iKTsibGl2ZSI9PSQoIiN0b3BkZXBsb3ltZW50dHlwZSIpLnZhbCgpJiZnYVRyYWNrKCJjLl90cmFja0V2ZW50IiwiUG9wdXAtTGF1bmNoZWQiLGEuc2V0dGluZ3MubmFtZSx3aW5kb3cubG9jYXRpb24uaHJlZiwxKTthLnNldHRpbmdzLmNvdW50ZG93biYmYS5pbml0Q291bnRkb3duKCk7Yy5kYXRhKCJvcGVuIiwhMCk7cG9wdXBpemVyQ29uZmlnLnBvcHVwT3Blbj0hMDsib25PcGVuIj09YS5zZXR0aW5ncy5jb29raWVDcmVhdGUmJmEuc2V0Q29va2llKCk7Yj1jLmZpbmQoImZvcm0iKS5maXJzdCgpO2IuZmluZCgnaW5wdXQgW3R5cGU9InRleHQiXScpLmVhY2goZnVuY3Rpb24oKXskKHRoaXMpLm9mZigiZm9jdXMgYmx1ciBjaGFuZ2UiKS5jc3MoImNvbG9yIiwiIzAwMCIpOyQodGhpcykuYXR0cigicGxhY2Vob2xkZXIiLCQodGhpcykuYXR0cigiYWx0IikpfSk7dmFyIGQ9bmV3IEZvcm07ZC5tYXNrUGhvbmUoYy5maW5kKCJmb3JtIikuc2VsZWN0b3IrCiIgaW5wdXQucGhvbmUiKTtkLm1hc2tQaG9uZShjLmZpbmQoImZvcm0iKS5zZWxlY3RvcisiIGlucHV0Lm1vYmlsZSIpOzA8Yi5maW5kKCIucGhvbmUucmVxdWlyZWQiKS5sZW5ndGg\/ZW1haWxIYW5kbGVyLnBob25lTWFuZGF0b3J5PTE6ZW1haWxIYW5kbGVyLnBob25lTWFuZGF0b3J5PTA7YS5zZXR0aW5ncy5mb3JtLmVtYWlsaWQmJmVtYWlsSGFuZGxlci5sb2dGb3JtUmVxdWVzdCgiRm9ybUxvYWRlZCIsYS5zZXR0aW5ncy5mb3JtLmVtYWlsaWQsYS5zZXR0aW5ncy5mb3JtLm9mZmVydHlwZSk7YS5zZXR0aW5ncy5yZXZlYWwuY2xvc2VkPWEub25DbG9zZTtjLnJldmVhbChhLnNldHRpbmdzLnJldmVhbCk7JCgiI2Zsb2F0UHJvbW9Ub3BCdG5Db250YWluZXIiKS5oaWRlKCk7JCgiI2NvbnRhaW5lckZsQiIpLmhpZGUoKTskKCIjdG9hc3QtY29udGFpbmVyIikuaGlkZSgpOyQoIiNhbGVydE1zZ0NvbnRhaW5lciIpLmhpZGUoKTthLnNldHRpbmdzLmZvcm0uT0tCdXR0b25DbGFzcyYmKGI9CmEuc2V0dGluZ3MuZm9ybS5PS0J1dHRvbkNsYXNzLCIuIj09YlswXSYmKGI9Yi5zdWJzdHJpbmcoMSkpLCQoIi4iK2IsYykub2ZmKCJjbGljayIpLm9uKCJjbGljayIsYS5zdWJtaXQpKTthLnNldHRpbmdzLmZvcm0uQ2FuY2VsQnV0dG9uQ2xhc3MmJihiPWEuc2V0dGluZ3MuZm9ybS5DYW5jZWxCdXR0b25DbGFzcywiLiI9PWJbMF0mJihiPWIuc3Vic3RyaW5nKDEpKSwkKCIuIitiLGMpLm9mZigiY2xpY2siKS5vbigiY2xpY2siLGEuY2FuY2VsKSk7Yy50cmlnZ2VyKCJwb3B1cGl6ZXIub25PcGVuIixhKX07YS5vbkNsb3NlPWZ1bmN0aW9uKCl7Yy5kYXRhKCJvcGVuIiwhMSk7cG9wdXBpemVyQ29uZmlnLnBvcHVwT3Blbj0hMTthLnNldHRpbmdzLnN1Ym1pdHRlZHx8YS5sb2dFdmVudCgicG9wdXAuY2FuY2VsIik7c2V0VGltZW91dChmdW5jdGlvbigpeyQoIiN0b2FzdC1jb250YWluZXIiKS5zaG93KCl9LDUwMCk7c2V0VGltZW91dChmdW5jdGlvbigpeyQoIi5yZXZlYWwtbW9kYWwtYmciKS5sZW5ndGgmJgokKCIucmV2ZWFsLW1vZGFsLWJnIikucmVtb3ZlKCl9LDFFMyk7Yy50cmlnZ2VyKCJwb3B1cGl6ZXIub25DbG9zZSIsYSk7ImZ1bmN0aW9uIj09dHlwZW9mIGEuc2V0dGluZ3Mub25DbG9zZSYmYS5zZXR0aW5ncy5vbkNsb3NlLmNhbGwoYyxhKX07YS5zdWJtaXQ9ZnVuY3Rpb24oKXtpZihwb3B1cElzU3VibWl0dGluZylyZXR1cm4hMTtwb3B1cElzU3VibWl0dGluZz0hMDtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7cG9wdXBJc1N1Ym1pdHRpbmc9ITF9LDNFMyk7dmFyIGI9Yy5maW5kKCJmb3JtIikuZmlyc3QoKSxkPVtdLGY9IiIsaD0iIixsPVtdLHA9W10sZz0hMCx0PSIiLHo9IiIsQT0iIjtpZigiZnVuY3Rpb24iPT10eXBlb2YgYS5zZXR0aW5ncy5vbkJlZm9yZVZhbGlkYXRpb24pc3dpdGNoKGEuc2V0dGluZ3Mub25CZWZvcmVWYWxpZGF0aW9uLmNhbGwoYixjLGEpKXtjYXNlICExOmNhc2UgMDpyZXR1cm4gcG9wdXBJc1N1Ym1pdHRpbmc9ITE7Y2FzZSAtMTpnPSExfWlmKGcpeyQudmFsaWRpdHkuc2V0dXAoe291dHB1dE1vZGU6InBvcHVwIiwKc2Nyb2xsVG86ITF9KS5zdGFydCgpO2IuZmluZCgiaW5wdXQ6bm90KDpoaWRkZW4pLCB0ZXh0YXJlYSIpLm5vbkh0bWwoKTtiLmZpbmQoImlucHV0LnJlcXVpcmVkLCBzZWxlY3QucmVxdWlyZWQsIHRleHRhcmVhLnJlcXVpcmVkIikucmVxdWlyZSgpO3ZhciB2PSExLEI9ITEsdz0hMTtiLmZpbmQoImlucHV0IikuZmlsdGVyKCIucmVxUmFkaW8iKS5yYWRpb09wdGlvbkNob3NlbigpO2IuZmluZCgiaW5wdXQiKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIGU9JCh0aGlzKTtlLmhhc0NsYXNzKCJlbWFpbCIpJiYoZS5oYXNDbGFzcygicmVxdWlyZWQiKXx8MDxlLnZhbCgpLmxlbmd0aCkmJih3PSEwKTtpZihlLmhhc0NsYXNzKCJwaG9uZSIpfHxlLmhhc0NsYXNzKCJtb2JpbGUiKSlpZihCPSEwLGUuaGFzQ2xhc3MoInJlcXVpcmVkIil8fDA8ZS52YWwoKS5sZW5ndGgpdj0hMH0pOzA9PXYmJjA9PXcmJihCP3Y9ITA6dz0hMCk7Yi5maW5kKCJpbnB1dCIpLmVhY2goZnVuY3Rpb24oKXt2YXIgZT0kKHRoaXMpOwplLmhhc0NsYXNzKCJlbWFpbCIpJiZlLnZhbGlkRW1haWxBZGRyZXNzKCk7ZS5oYXNDbGFzcygicGhvbmUiKSYmZS52YWxpZGF0ZVBob25lKCk7ZS5oYXNDbGFzcygibW9iaWxlIikmJmUudmFsaWRhdGVNb2JpbGUoKX0pOzE+Yy5maW5kKCIuTWlzc2luZ1ZhbGlkYXRpb25Nc2ciKS5sZW5ndGgmJmMuYXBwZW5kKCc8ZGl2IGNsYXNzPSJNaXNzaW5nVmFsaWRhdGlvbk1zZyI+PC9kaXY+Jyk7aWYoISQudmFsaWRpdHkuZW5kKCkudmFsaWQpcmV0dXJuICQoIi5NaXNzaW5nVmFsaWRhdGlvbk1zZyIsYykuc2hvdygpLCQoZG9jdW1lbnQpLm9uKCJtb3VzZWRvd24iLGZ1bmN0aW9uKGUpeyQoIi5NaXNzaW5nVmFsaWRhdGlvbk1zZyIsYykuaGlkZSgpOyQodGhpcykub2ZmKGUpfSksYS5sb2dFdmVudCgicG9wdXAudmFsaWRhdGlvbkZhaWxlZCIpLHBvcHVwSXNTdWJtaXR0aW5nPSExfWlmKCJmdW5jdGlvbiI9PXR5cGVvZiBhLnNldHRpbmdzLm9uQmVmb3Jlc3VibWl0KXtnPSEwO3RyeXtnPWEuc2V0dGluZ3Mub25CZWZvcmVzdWJtaXQuY2FsbChjLAphKX1jYXRjaChlKXtjb25zb2xlLmxvZygiT24gYmVmb3JlIHN1Ym1pdCBmYWlsZWQsIHJldHVybmluZyB0cnVlLiIsZSl9aWYoMD09ZylyZXR1cm4gYS5zZXR0aW5ncy5jbG9zZU9uU3VibWl0JiZhLmNsb3NlKCksITF9YS5sb2dFdmVudCgicG9wdXAuc3VibWl0Iik7Yi5maW5kKCJpbnB1dCIpLmVhY2goZnVuY3Rpb24oKXt2YXIgZT0kKHRoaXMpOyhlLmhhc0NsYXNzKCJlbWFpbCIpfHwiZW1haWwiPT09ZS5hdHRyKCJ0eXBlIikpJiZkLnB1c2goZS52YWwoKSk7ZS5oYXNDbGFzcygicG9zdGFsIikmJihmPWUudmFsKCkpO2UuaGFzQ2xhc3MoInRyYWRlaW4iKSYmKGg9ZS52YWwoKSk7KGUuaGFzQ2xhc3MoInBob25lIil8fGUuaGFzQ2xhc3MoIm1vYmlsZSIpfHwidGVsIj09PWUuYXR0cigidHlwZSIpKSYmcC5wdXNoKGUudmFsKCkpOyJ1bmRlZmluZWQiPT10eXBlb2YgZS5hdHRyKCJuYW1lIikmJmUuYXR0cigibmFtZSIsIiIpOyhlLmhhc0NsYXNzKCJuYW1lIil8fCJuYW1lIj09ZS5hdHRyKCJuYW1lIikudG9Mb3dlckNhc2UoKSkmJgpsLnB1c2goZS52YWwoKSk7KGUuaGFzQ2xhc3MoImZpcnN0bmFtZSIpfHwiZmlyc3RuYW1lIj09ZS5hdHRyKCJuYW1lIikudG9Mb3dlckNhc2UoKSkmJmwudW5zaGlmdChlLnZhbCgpKTsoZS5oYXNDbGFzcygibGFzdG5hbWUiKXx8Imxhc3RuYW1lIj09ZS5hdHRyKCJuYW1lIikudG9Mb3dlckNhc2UoKSkmJmwucHVzaChlLnZhbCgpKTtpZihlLmhhc0NsYXNzKCJjb21tZW50Iil8fCJjb21tZW50Ij09ZS5hdHRyKCJuYW1lIikudG9Mb3dlckNhc2UoKSl0PWUudmFsKCk7aWYoZS5oYXNDbGFzcygiYWRkcmVzcyIpfHwiYWRkcmVzcyI9PWUuYXR0cigibmFtZSIpLnRvTG93ZXJDYXNlKCkpej1lLnZhbCgpO2lmKGUuaGFzQ2xhc3MoImJpcnRoZGF0ZSIpfHwiYmlydGhkYXRlIj09ZS5hdHRyKCJuYW1lIikudG9Mb3dlckNhc2UoKSlBPWUudmFsKCl9KTtnPWIuc2VyaWFsaXplQXJyYXkoKTt2YXIgeD0kKCIuZW1haWxCb2R5IixjKS5odG1sKCkrIiIsdT0kKCIuZW1haWxTdWJqZWN0IixjKS5odG1sKCkrCiIiOyJQcmljZVZlaGljbGUiPT1hLnNldHRpbmdzLmZvcm0uZW1haWxpZCYmMD09Yi5maW5kKCJbbmFtZT1ub0NCQl0iKS52YWwoKSYmIlNNUyI9PWIuZmluZCgiI3RyYWRlSW5CYXJTbXNPckVtYWlsU21zOmNoZWNrZWQiKS52YWwoKSYmKHUrPSIgKFNNUykiKTt2YXIgcT1bXTtbXS5wdXNoLmFwcGx5KHEsZyk7W10ucHVzaC5hcHBseShxLGEuZ2xvYmFsUmVwbGFjZW1lbnRzKCkpOyQuZWFjaChxLGZ1bmN0aW9uKCl7dmFyIGU9bmV3IFJlZ0V4cCgie1xcJCIrdGhpcy5uYW1lLnRvVXBwZXJDYXNlKCkrIn0iLCJnIiksbj10aGlzLnZhbHVlOyJTRUFSQ0hFRFZFSElDTEUiPT10aGlzLm5hbWUudG9VcHBlckNhc2UoKSYmKG49IjxzcGFuIGlkPSdwaFNFQVJDSFZFSElDTEUnPiIrbisiPC9zcGFuPiIpO3g9eC5yZXBsYWNlKGUsbik7dT11LnJlcGxhY2UoZSx0aGlzLnZhbHVlKX0pO2c9e3NlbmRUbzphLnNldHRpbmdzLmZvcm0uc2VuZFRvLHNlbmRUb0FERkZvcm1hdDphLnNldHRpbmdzLmZvcm0uc2VuZFRvQURGLApjb25kaXRpb246YS5zZXR0aW5ncy52ZWhpY2xlU3RhdGUsbWFpbElEOmEuc2V0dGluZ3MuZm9ybS5lbWFpbGlkLHN1YmplY3Q6dSxib2R5OngsdXNlclBvc3RhbDpmLGFkZHJlc3M6eixiaXJ0aGRhdGU6QSx0cmFkZWluOmgscG9wdXBkaXY6IiIsdXNlckVtYWlsOmQuam9pbigiOyIpLHVzZXJOYW1lOmwuam9pbigiICIpLHVzZXJQaG9uZTpwLmpvaW4oIiwiKSxzbXM6YS5zZXR0aW5ncy5mb3JtLnNtcyxwb3B1cE9mZmVyVHlwZTphLnNldHRpbmdzLmZvcm0ub2ZmZXJ0eXBlLGNvbW1lbnRzOnR9OyQuZXh0ZW5kKCEwLGVtYWlsSGFuZGxlcixnKTsic3RyaW5nIj09dHlwZW9mIGVtYWlsSGFuZGxlci51c2VyTmFtZSYmKGc9ZW1haWxIYW5kbGVyLnVzZXJOYW1lLnNwbGl0KCIgIiksZW1haWxIYW5kbGVyLnVzZXJGaXJzdE5hbWU9Zy5zaGlmdCgpLGVtYWlsSGFuZGxlci51c2VyTGFzdE5hbWU9Zy5qb2luKCIgIikpO2VtYWlsSGFuZGxlci5wb3B1cGRpdj1hLnRhcmdldC5hdHRyKCJpZCIpOwppZihhLnNldHRpbmdzLmZpbGxmbGFnKXZhciBDPWZ1bmN0aW9uKCl7Q29va2llcy5zZXQoInBvcHVwRm9ybUZpbGxlZCIsIjEiLDkwLCIvIik7Yy50cmlnZ2VyKCJwb3B1cGl6ZXIuZm9ybUZpbGxlZCIsYSl9O2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBlbWFpbEhhbmRsZXIuY2FsbGJhY2smJjA8ZW1haWxIYW5kbGVyLmNhbGxiYWNrLmxlbmd0aCl2YXIgRD1lbWFpbEhhbmRsZXIuY2FsbGJhY2s7dmFyIEU9ZnVuY3Rpb24oKXtyZXR1cm4hMH07ImZ1bmN0aW9uIj09dHlwZW9mIGEuc2V0dGluZ3Mub25BZnRlcnN1Ym1pdCYmKEU9YS5zZXR0aW5ncy5vbkFmdGVyc3VibWl0KTtlbWFpbEhhbmRsZXIub25CZWZvcmVTaG93Q29uc2VudD1mdW5jdGlvbigpe2MuY3NzKHtvcGFjaXR5OjEsdmlzaWJpbGl0eToiaGlkZGVuIn0pO2VtYWlsSGFuZGxlci5vbkJlZm9yZVNob3dDb25zZW50PSExfTtlbWFpbEhhbmRsZXIub25BZnRlckNvbnNlbnQ9ZnVuY3Rpb24oZSl7YS5zZXR0aW5ncy5jbG9zZU9uU3VibWl0PwphLmNsb3NlKCk6Yy5yZXZlYWwoYS5zZXR0aW5ncy5yZXZlYWwpO2VtYWlsSGFuZGxlci5vbkJlZm9yZVNob3dDb25zZW50PSExO2VtYWlsSGFuZGxlci5vbkFmdGVyQ29uc2VudD0hMX07ZW1haWxIYW5kbGVyLm9uRHVwbGljYXRlU2VuZD1mdW5jdGlvbigpe2Euc2V0dGluZ3MuY2xvc2VPblN1Ym1pdCYmYS5jbG9zZSgpO2VtYWlsSGFuZGxlci5yZXNldENhbGxiYWNrcygpfTtlbWFpbEhhbmRsZXIuY2FsbGJhY2s9ZnVuY3Rpb24oZSl7dmFyIG49ITE7YS5zZXR0aW5ncy5mb3JtLnNob3dFbWFpbENvbmZpcm1hdGlvbiYmKG49Z2V0TWFpbFNlbnRIYW5kbGVyKCJfIitjLmF0dHIoImlkIikpLG4udGltZW91dENhbGxiYWNrPWZ1bmN0aW9uKCl7Yi50cmlnZ2VyKCJyZXNldCIpfSk7dmFyIEY9YS5zZXR0aW5ncy5jbG9zZU9uU3VibWl0O2lmKGUpYS5sb2dFdmVudCgicG9wdXAubGVhZF9zZW50IiksMD09RS5jYWxsKGMsYSkmJihGPSExKSwiZnVuY3Rpb24iPT10eXBlb2YgQyYmQygpLCJmdW5jdGlvbiI9PQp0eXBlb2YgRCYmRCgpLCJvblN1Ym1pdCI9PWEuc2V0dGluZ3MuY29va2llQ3JlYXRlJiZhLnNldENvb2tpZSgpLEYmJiJoaWRkZW4iIT1jLmNzcygidmlzaWJpbGl0eSIpJiZhLmNsb3NlKCJDT05TRU5UIiksYS5zZXR0aW5ncy5tYWlucG9wdXAmJihlbWFpbEhhbmRsZXIubWFpblByb21vPSEwKSxuP24uc2hvd1N1Y2Nlc3MoKTowPCQoImZvcm0jIitjLmF0dHIoImlkIikrIl9jb25maXJtIikubGVuZ3RoJiYkKCJmb3JtIyIrYy5hdHRyKCJpZCIpKyJfY29uZmlybSIpLnRyaWdnZXIoInN1Ym1pdCIpO2Vsc2V7bnx8KG49Z2V0TWFpbFNlbnRIYW5kbGVyKCkpO3RyeXtuLnNob3dGYWlsKCl9Y2F0Y2goRyl7fX1zZXRUaW1lb3V0KGVtYWlsSGFuZGxlci5yZXNldENhbGxiYWNrcygpLDFFMyl9O2Euc2F2ZVNldHRpbmdzKHtzdWJtaXR0ZWQ6ITB9KTtpZigiZnVuY3Rpb24iPT10eXBlb2YgYS5zZXR0aW5ncy5vbkJlZm9yZVNlbmRNYWlsJiYwPT1hLnNldHRpbmdzLm9uQmVmb3JlU2VuZE1haWwuY2FsbChjLAphKSlyZXR1cm4hMTthLnNldERlZmF1bHRBREYoKTsiZnVuY3Rpb24iPT10eXBlb2YgYS5zZXR0aW5ncy5vbkFERiYmKGc9YS5zZXR0aW5ncy5vbkFERi5jYWxsKGMsYSksIm9iamVjdCI9PXR5cGVvZiBnJiYkLmV4dGVuZChhLnNldHRpbmdzLkFERixnKSk7Zz0ibWFrZSBtb2RlbCB5ZWFyIHN0b2NrTnVtYmVyIHRyaW0gdmluIHByaWNlIGNhcmlkIi5zcGxpdCgiICIpO3E9YS5zZXR0aW5ncy5BREY7Zm9yKHZhciB5PTA7eTxnLmxlbmd0aDt5Kyspe3ZhciByPWdbeV07ZW1haWxIYW5kbGVyW3JdPSIiIT1lbWFpbEhhbmRsZXJbcl0\/ZW1haWxIYW5kbGVyW3JdOnFbcl0\/cVtyXTplbWFpbEhhbmRsZXJbcl19ZW1haWxIYW5kbGVyLmJvZHk9YS5jbGVhbkJsYW5rVmFyaWFibGVzKGVtYWlsSGFuZGxlci5ib2R5KTthLnNob3dQdXJjaGFzZUludGVudFBvcHVwKCl8fGVtYWlsSGFuZGxlci5zZW5kTWFpbChhLnNldHRpbmdzLmJ5cGFzc0NvbnNlbnQpO3JldHVybiEwfTthLnNob3dQdXJjaGFzZUludGVudFBvcHVwPQpmdW5jdGlvbigpe2lmKGEuc2V0dGluZ3MucHVyY2hhc2VJbnRlbnRQb3B1cCl7dmFyIGI9JCgiI2ludGVyc3RpdGlhbFZlaGljbGVJbnRlbnQiKTtpZigxPmIubGVuZ3RofHxudWxsIT1Db29raWVzLmdldCgicHVyY2hhc2VfaW50ZW50IikpcmV0dXJuITE7Z2FUcmFjaygiX3RyYWNrRXZlbnQiLCJJbnRlbnRpb25zIGQnYWNoYXQiLCJQb3B1cCB2dXMiLGEuc2V0dGluZ3MuZ29vZ2xlVHJhY2tpbmcubGFiZWwsMSk7Yy5jc3Moe29wYWNpdHk6MSx2aXNpYmlsaXR5OiJoaWRkZW4ifSk7Yi5maW5kKCJmb3JtIikub24oInN1Ym1pdCIsZnVuY3Rpb24oKXt2YXIgZD0kKHRoaXMpLGY9ZC5maW5kKCJpbnB1dCIpOyQudmFsaWRpdHkuc2V0dXAoe291dHB1dE1vZGU6InBvcHVwIn0pLnN0YXJ0KCk7ZC5maW5kKCJpbnB1dDpub3QoOmhpZGRlbiksIHRleHRhcmVhIikubm9uSHRtbCgpO2YuZmlsdGVyKCIucmVxdWlyZWQiKS5yZXF1aXJlKCkubm9uSHRtbCgpO2YuZmlsdGVyKCIucmVxUmFkaW8iKS5yYWRpb09wdGlvbkNob3NlbigpOwppZigkLnZhbGlkaXR5LmVuZCgpLnZhbGlkKXtiLnRyaWdnZXIoInJldmVhbDpjbG9zZSIpO3ZhciBoPXtwdXJjaGFzZV9pbnRlbnQ6ITB9O2Quc2VyaWFsaXplQXJyYXkoKS5tYXAoZnVuY3Rpb24obCxwLGcpe2hbbC5uYW1lXT1sLnZhbHVlfSk7Q29va2llcy5zZXQoInB1cmNoYXNlX2ludGVudCIsaC5wdXJjaGFzZV9pbnRlbnQsMzAsIi8iKTtnYVRyYWNrKCJfdHJhY2tFdmVudCIsIkludGVudGlvbnMgZCdhY2hhdCIsIlJlcG9uc2VzIixoLnB1cmNoYXNlX2ludGVudCwxKTtlbWFpbEhhbmRsZXIuc2VuZE1haWwoYS5zZXR0aW5ncy5ieXBhc3NDb25zZW50KX1yZXR1cm4hMX0pO2IucmV2ZWFsKHtjbG9zZV9vbl9iYWNrZ3JvdW5kX2NsaWNrOiExLGRpc21pc3NfbW9kYWxfY2xhc3M6Il9fTlVMTF9fIn0pO3JldHVybiEwfXJldHVybiExfTthLmdsb2JhbFJlcGxhY2VtZW50cz1mdW5jdGlvbigpe3ZhciBiPVtdOyQoImlucHV0W3R5cGU9aGlkZGVuXSIpLmVhY2goZnVuY3Rpb24oKXt2YXIgZz0KJCh0aGlzKS5hdHRyKCJuYW1lIik7Zz0idW5kZWZpbmVkIiE9dHlwZW9mIGc\/ZzokKHRoaXMpLmF0dHIoImlkIik7aWYoIWcpcmV0dXJuITA7dmFyIHQ9ITE7ImVtYWlsYnVpbGRhbmRwcmljZSI9PWcudG9Mb3dlckNhc2UoKSYmIiI9PSQodGhpcykudmFsKCkucmVwbGFjZSgvIC9nLCIiKSYmKHQ9ITApO3R8fCgiYnJhbmQiPT1nLnRvTG93ZXJDYXNlKCkmJmIucHVzaCh7bmFtZToibWFrZSIsdmFsdWU6JCh0aGlzKS52YWwoKX0pLGIucHVzaCh7bmFtZTpnLHZhbHVlOiQodGhpcykudmFsKCl9KSl9KTt2YXIgZD0iIjtpZigwPCQoIiNsYXN0dmlld2VkbWFrZSIpLmxlbmd0aCYmMDwkKCIjbGFzdHZpZXdlZG1ha2UiKS52YWwoKS5sZW5ndGgpe3ZhciBmPSQoIiNsYXN0dmlld2Vkc3RvY2tudW1iZXIiKS52YWwoKTtkPSQoIiNsYXN0dmlld2VkbWFrZSIpLnZhbCgpO3ZhciBoPSQoIiNsYXN0dmlld2VkbW9kZWwiKS52YWwoKSxsPSQoIiNsYXN0dmlld2VkeWVhciIpLnZhbCgpLHA9JCgiI2xhc3R2aWV3ZWR0cmltIikudmFsKCl8fAoiIjtkPWQrIiAiK2grIiAiK2wrKHAubGVuZ3RoPyIgIitwOiIiKTtkKz0wPGYubGVuZ3RoPyIgKFN0b2NrIyAiK2YrIikiOiIifWIucHVzaCh7bmFtZToiTEFTVFZFSElDTEVWSUVXRUQiLHZhbHVlOmR9KTtyZXR1cm4gYn07YS5jbGVhbkJsYW5rVmFyaWFibGVzPWZ1bmN0aW9uKGIpe3ZhciBkPWIucmVwbGFjZSgve1wkUVVFU1RJT05TfS9nLCIiKS5yZXBsYWNlKC97XCRNRVNTQUdFfS9nLCIiKS5yZXBsYWNlKC97XCRFTUFJTFBIT05FfS9nLCIiKS5yZXBsYWNlKC97XCRFTUFJTE1BS0V9L2csIiIpLnJlcGxhY2UoL3tcJEVNQUlMTU9ERUx9L2csIiIpLnJlcGxhY2UoL3tcJEVNQUlMWUVBUn0vZywiIikucmVwbGFjZSgve1wkUEFZTUVOVH0vZywiIikucmVwbGFjZSgve1wkUEFZTUVOVFRFUk19L2csIiIpLnJlcGxhY2UoL3tcJE9GRkVSfS9nLCIiKS5yZXBsYWNlKC97XCRTVE9DS05VTUJFUn0vZywiIikucmVwbGFjZSgve1wkQ09MT1J9L2csIiIpLnJlcGxhY2UoL3tcJEZOQU1FfS9nLAoiIikucmVwbGFjZSgve1wkTE5BTUV9L2csIiIpLnJlcGxhY2UoL3tcJEVNQUlMfS9nLCIiKS5yZXBsYWNlKC97XCRVU0VSUEhPTkV9L2csIiIpO21haWxQYWdlJiZiLnJlcGxhY2UoL3tcJEVNQUlMQlVJTERBTkRQUklDRX0vZyxtYWlsUGFnZS5iYW5kcExpbmsoKSk7cmV0dXJuIGR9O2EuY2FuY2VsPWZ1bmN0aW9uKCl7YS5jbG9zZSgiQ0FOQ0VMIil9O2Eub3Blbj1mdW5jdGlvbihiKXtpZigxPT1jLmRhdGEoIm9wZW4iKSlyZXR1cm4hMTsib2JqZWN0Ij09dHlwZW9mIGImJi0xIT0iY2xpY2sgdGFwIi5pbmRleE9mKGIudHlwZS50b0xvd2VyQ2FzZSgpKSYmKGs9ImNsaWNrIik7aWYoIWlzTmFOKGIpKXJldHVybiBzZXRUaW1lb3V0KGEub3BlbiwxRTMqYik7aWYoIWEuaXNDb250ZW50TG9hZGVkKCkpcmV0dXJuIGEubG9hZChhLm9wZW4pO2lmKCJ1bmRlZmluZWQiIT09dHlwZW9mIHdpbmRvdy5uZXdWRFBWaWRlb0lzUGxheWluZyYmMT09d2luZG93Lm5ld1ZEUFZpZGVvSXNQbGF5aW5nJiYKImNsaWNrIiE9a3x8YS5pc0FjdGl2ZSgpKXJldHVybiBhLm9wZW4oNSk7YS5vbk9wZW4oKTtyZXR1cm4gYX07YS5leGVjT3Blbj1mdW5jdGlvbigpe251bGw9PUNvb2tpZXMuZ2V0KCJwb3B1cFNob3duRXhlYyIpJiYoQ29va2llcy5zZXQoInBvcHVwU2hvd25FeGVjIiwiMSIsbnVsbCx3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUpLGEub3BlbigwKSl9O2EuaW5pdENvdW50ZG93bj1mdW5jdGlvbigpe3RyeXt2YXIgYj1uZXcgRGF0ZSgxRTMqYS5zZXR0aW5ncy5jb3VudGRvd24pO2lmKDA8Yy5maW5kKCIuY291bnRkb3duIikubGVuZ3RoKXt2YXIgZD1jLmZpbmQoIi5jb3VudGRvd24iKSxmPW5ldyBEYXRlLGg9Yi5nZXRUaW1lKCktZi5nZXRUaW1lKCk7aWYoMDxoKXt2YXIgbD1bTWF0aC5mbG9vcihoLzg2NEU1KSxNYXRoLmZsb29yKGglODY0RTUvMzZFNSksTWF0aC5mbG9vcihoJTg2NEU1JTM2RTUvNkU0KSxNYXRoLmZsb29yKGglODY0RTUlMzZFNSU2RTQvMUUzKV07Zm9yKGI9MDtiPApsLmxlbmd0aDtiKyspbFtiXT05PGxbYl0\/bFtiXS50b1N0cmluZygpOiIwIitsW2JdO3ZhciBwPWwuam9pbigiOiIpO2QuY291bnRkb3duKHtzdGFydFRpbWU6cCxpbWFnZToiL2ltYWdlcy9kaWdpdHNfc21hbGwucG5nIixkaWdpdFdpZHRoOjI5LGRpZ2l0SGVpZ2h0OjQzfSl9ZWxzZSBkLmhpZGUoKX19Y2F0Y2goZyl7InVuZGVmaW5lZCIhPT10eXBlb2YgZGVidWcmJihkZWJ1ZyhnKSxkZWJ1ZygiSW52YWxpZCBkYXRlICIsYS5zZXR0aW5ncy5jb3VudGRvd24pKX19O2EuY2xvc2U9ZnVuY3Rpb24oYil7aWYoIkNBTkNFTCI9PWImJiJmdW5jdGlvbiI9PXR5cGVvZiBhLnNldHRpbmdzLm9uQmVmb3JlQ2FuY2VsKXt2YXIgZD1hLnNldHRpbmdzLm9uQmVmb3JlQ2FuY2VsLmNhbGwoYyxhKTtpZigwPT1kKXJldHVybiExfWlmKCJmdW5jdGlvbiI9PXR5cGVvZiBhLnNldHRpbmdzLm9uQmVmb3JlQ2xvc2UmJihkPWEuc2V0dGluZ3Mub25CZWZvcmVDbG9zZS5jYWxsKGMsYSxiKSwwPT1kKSlyZXR1cm4hMTsKYy50cmlnZ2VyKCJyZXZlYWw6Y2xvc2UiKX07YS5pc0FjdGl2ZT1mdW5jdGlvbigpe3JldHVybiBwb3B1cGl6ZXJBY3RpdmUoKX07YS5zZXRDb29raWU9ZnVuY3Rpb24oKXtDb29raWVzLnNldChhLnNldHRpbmdzLmNvb2tpZU5hbWUsIjEiLGEuc2V0dGluZ3MuY29va2llRHVyYXRpb24sIi8iKTt2YXIgYj1hLnNldHRpbmdzLmNvb2tpZU5hbWUudG9Mb3dlckNhc2UoKTtpZigicmViYXRlc2hvd24iPT1ifHwicmViYXRlb3RoZXJzaG93biI9PWImJiJ1c2VkIj09JCgiI2N1cnJlbnRTdGF0dXMiKS52YWwoKSliPW5ldyBEYXRlLGIuc2V0VGltZShiLmdldFRpbWUoKSsxOEU0KSxDb29raWVzLnNldCgidXNlZFNsaWRlclBvcHVwRGlzcGxheWVkIiwiMSIsYiwiLyIpfTthLnNhdmVTZXR0aW5ncz1mdW5jdGlvbihiKXtiPSJ1bmRlZmluZWQiPT10eXBlb2YgYj97fTpiO2I9Im9iamVjdCIhPXR5cGVvZiBiP3t1c2VyRGVmaW5lZE5vbk9iamVjdDpifTpiO2MuZGF0YSgicG9wdXBTZXR0aW5ncyIsCiQuZXh0ZW5kKCEwLGEuc2V0dGluZ3MsYikpfTthLnNldERlZmF1bHRBREY9ZnVuY3Rpb24oKXt2YXIgYj0kKCIjcG9wdXBtYWtlIikudmFsKCksZD0kKCIjcG9wdXBtb2RlbCIpLnZhbCgpLGY9JCgiI3BvcHVweWVhciIpLnZhbCgpOzA8JCgiaW5wdXQuYnJhbmRlbWFpbCIpLnZhbCgpLmxlbmd0aCYmMDwkKCJpbnB1dC5tb2RlbGVtYWlsIikudmFsKCkubGVuZ3RoJiYwPCQoImlucHV0LnllYXJlbWFpbCIpLnZhbCgpLmxlbmd0aCYmKGI9JCgiaW5wdXQuYnJhbmRlbWFpbCIpLnZhbCgpLGQ9JCgiaW5wdXQubW9kZWxlbWFpbCIpLnZhbCgpLGY9JCgiaW5wdXQueWVhcmVtYWlsIikudmFsKCkpO2Euc2V0dGluZ3MuQURGPXttYWtlOmIsbW9kZWw6ZCx5ZWFyOmYsc3RvY2tOdW1iZXI6JCgiI3BvcHVwc3RvY2tudW1iZXIiKS52YWwoKX19O2EubG9nRXZlbnQ9ZnVuY3Rpb24oYil7dmFyIGQ9YS5zZXR0aW5ncy5mb3JtO2Q9ZC5vZmZlcnR5cGU\/ZC5vZmZlcnR5cGU6IkVNQUlMSURfIitkLmVtYWlsaWQ7CmlmKCFiKXJldHVybiExOyQoYS50YXJnZXQpLnRyaWdnZXIoYik7aWYoInBvcHVwLmxlYWRfc2VudCI9PWIpe3ZhciBmPWsucmVwbGFjZSgvKF5bYS16XXsxfSkvZyxmdW5jdGlvbihsKXtyZXR1cm4gbC50b1VwcGVyQ2FzZSgpfSksaD1kMmNtZWRpYS5wYWdlRGVwYXJ0bWVudCgpO2dhVHJhY2soImMuX3RyYWNrRXZlbnQiLCJQb3B1cC1sZWFkcyIsZixoLDEpfSJ1bmRlZmluZWQiIT10eXBlb2YgYWN0aXZlVXNlclByb2ZpbGVNbmcmJiJ1bmRlZmluZWQiIT10eXBlb2YgYWN0aXZlVXNlclByb2ZpbGVNbmcubG9nUGFnZVZpZXdFdmVudD8oInVuZGVmaW5lZCIhPT10eXBlb2YgZGVidWcmJmRlYnVnKCJMb2cgRXZlbnQiLGIsZCxhKSxhY3RpdmVVc2VyUHJvZmlsZU1uZy5sb2dQYWdlVmlld0V2ZW50KGIsZCkpOiJ1bmRlZmluZWQiIT09dHlwZW9mIGRlYnVnJiZkZWJ1ZygiIVVOTE9HR0VEIEVWRU5UISIsYixkKX07YS5pc0NvbnRlbnRMb2FkZWQ9ZnVuY3Rpb24oKXtpZighYS50YXJnZXRbMF0uaGFzQXR0cmlidXRlKCJkYXRhLWxhenlsb2FkaWQiKSlyZXR1cm4hMDsKdmFyIGI9MD09PWEudGFyZ2V0Lmh0bWwoKS50cmltKCkubGVuZ3RoLGQ9YS5zZXR0aW5ncy5jb250ZW50TG9hZGVkfHwhMTtyZXR1cm4hYiYmZH07YS5sb2FkPWZ1bmN0aW9uKGIpe2EuaXNDb250ZW50TG9hZGVkKCk\/KGEuc2V0dGluZ3MuY29udGVudExvYWRlZD0hMCxiKCkpOiQuYWpheCh7dHlwZToiR0VUIixjYWNoZTohMCx1cmw6KCJFTkdMSVNIIj09PSQoIiNhY3RpdmVzaXRlbGFuZ3VhZ2UiKS52YWwoKT8iL2VuIjoiL2ZyIikrIi9hamF4L2dldFBvcHVwQ29udGVudCIsZGF0YTp7d3N3aWR0aDoiMCIsXzphLnNldHRpbmdzLmlkZW50LGlkOmEudGFyZ2V0LmRhdGEoImxhenlsb2FkaWQiKSxtYWtlOiQoIiNsYXN0dmlld2VkbWFrZSIpLnZhbCgpfHwiIixtb2RlbDokKCIjbGFzdHZpZXdlZG1vZGVsIikudmFsKCl8fCIiLHllYXI6JCgiI2xhc3R2aWV3ZWR5ZWFyIikudmFsKCl8fCIiLHRyaW06JCgiI2xhc3R2aWV3ZWR0cmltIikudmFsKCl8fCIiLApzdG9ja051bWJlcjokKCIjbGFzdHZpZXdlZHN0b2NrbnVtYmVyIikudmFsKCl8fCIiLHZlaGljbGVJZDokKCIjdG9wY2FyaWQiKS52YWwoKXx8MH0sc3VjY2VzczpmdW5jdGlvbihkKXthLnRhcmdldC5odG1sKGQpO2Euc2V0dGluZ3MuY29udGVudExvYWRlZD0hMDsiZnVuY3Rpb24iPT09dHlwZW9mIGFkZE5vVHJhbnNsYXRlRW1haWxEZWYmJmFkZE5vVHJhbnNsYXRlRW1haWxEZWYoKTtiKCl9fSl9O2EuY3JlYXRlQ29uZmlybUZvcm09ZnVuY3Rpb24oKXt2YXIgYj1hLnRhcmdldC5hdHRyKCJpZCIpKyJfY29uZmlybSI7MT4kKCIjY29uZmlybV9mb3JtcyIpLmxlbmd0aCYmJCgiYm9keSIpLmFwcGVuZCgkKCI8ZGl2PjwvZGl2PiIpLmF0dHIoImlkIiwiY29uZmlybV9mb3JtcyIpKTtpZigxPiQoIiMiK2IpLmxlbmd0aCYmYS5zZXR0aW5ncy5jb25maXJtRm9ybSYmMCE9PWEuc2V0dGluZ3MuY29uZmlybUZvcm0ubGVuZ3RoKXtiPSQoIjxmb3JtPjwvZm9ybT4iKS5hdHRyKCJpZCIsYikuYXR0cigibWV0aG9kIiwKIlBPU1QiKS5hdHRyKCJhY3Rpb24iLCIvY29uZmlybWF0aW9uLmh0bWwiKS5hdHRyKCJ0YXJnZXQiLCJpZnJhbWVndHJhY2siKTt2YXIgZD0kKCIjYXV0b2F1YmFpbmVfcG9wdXAiKTtkPVt7bmFtZToiZ3RhZ19jb252ZXJzaW9uIix2YWx1ZToiZ3RhZyJ9LHtuYW1lOiJsZWFkX2RlcGFydG1lbnQiLHZhbHVlOiIifSx7bmFtZToibGVhZFR5cGUiLHZhbHVlOiIifSx7bmFtZToicGFnZUlEIix2YWx1ZToiIn0se25hbWU6ImN1cnJlbnRVUkwiLHZhbHVlOiIifSx7bmFtZToiYnV0dG9uUG9zaXRpb24iLHZhbHVlOiIifSx7bmFtZToiZGVhbGVyTmFtZSIsdmFsdWU6IiJ9LHtuYW1lOiJpc0Z1bGxXaWR0aCIsdmFsdWU6IiJ9LHtuYW1lOiJpc01vYmlsZU5ld1ZEUCIsdmFsdWU6IiJ9LHtuYW1lOiJ0ZXN0bW9kZSIsdmFsdWU6IjAiLGNsYXNzOiJ0ZXN0bW9kZSJ9LHtuYW1lOiJmcm9tQXV0b0F1YmFpbmUiLHZhbHVlOjA8ZC5sZW5ndGgmJiJmYWxzZSIhPWQudmFsKCl9XTtbXS5wdXNoLmFwcGx5KGQsCmEuc2V0dGluZ3MuY29uZmlybUZvcm0pO2Zvcih2YXIgZj0wO2Y8ZC5sZW5ndGg7ZisrKSQoIjxpbnB1dCAvPiIpLmF0dHIoInR5cGUiLCJoaWRkZW4iKS5hdHRyKGRbZl0pLmFwcGVuZFRvKGIpOyQoIiNjb25maXJtX2Zvcm1zIikuYXBwZW5kKGIpO2Iub24oInN1Ym1pdCIsb25Db25maXJtU3VibWl0KX0xPiQoIiNndHJhY2tGcmFtZSIpLmxlbmd0aCYmJCgiPGlmcmFtZT48L2lmcmFtZT4iKS5hdHRyKHt3aWR0aDoxLGhlaWdodDoxLGZyYW1lQm9yZGVyOjAsaWQ6Imd0cmFja0ZyYW1lIixuYW1lOiJpZnJhbWVndHJhY2siLHN0eWxlOiJ3aWR0aDogMXB4OyBoZWlnaHQ6IDFweDsifSkuYXBwZW5kVG8oIiNjb25maXJtX2Zvcm1zIil9O3JldHVybiBhfTsKalF1ZXJ5KGZ1bmN0aW9uKGMpe3ZhciBtPWMoIiNzaXRlY29tcGlsZWlkIikubGVuZ3RoP2MoIiNzaXRlY29tcGlsZWlkIikudmFsKCk6TWF0aC5yb3VuZCgxRTcqTWF0aC5yYW5kb20oKSkudG9TdHJpbmcoMTYpO2MuZm4ucG9wdXBpemU9ZnVuY3Rpb24oYSl7YT1hP2E6e307dmFyIGs9e3JldmVhbDp7YW5pbWF0aW9uOiJmYWRlQW5kUG9wIixhbmltYXRpb25zcGVlZDozMDAsY2xvc2VvbmJhY2tncm91bmRjbGljazohMSxkaXNtaXNzbW9kYWxjbGFzczoiY2xvc2UtcmV2ZWFsLW1vZGFsIn0sZm9ybTp7ZW1haWxpZDowLG9mZmVydHlwZTowLG5hbWU6MCxzZW5kVG86MCxzZW5kVG9BREY6MCxPS0J1dHRvbkNsYXNzOiJzdWJtaXRCdG4iLENhbmNlbEJ1dHRvbkNsYXNzOiJjYW5jZWxCdG4iLHNob3dFbWFpbENvbmZpcm1hdGlvbjohMX0sQURGOnttYWtlOiIiLG1vZGVsOiIiLHllYXI6IiIsc3RvY2tOdW1iZXI6IiJ9LGlkZW50Om0sZW5kUG9wdXBRdWV1ZTohMSxwcmlvcml0eToxLGFuaW1hdGlvbjohMSwKbm90cmFuc2Zvcm06ITEsZmlsbGZsYWc6ITEsc3VibWl0dGVkOiExLHNob3dvbmxvYWQ6ITEsY29va2llTmFtZTohMSxjb29raWVEdXJhdGlvbjo2MCxjbG9zZU9uU3VibWl0OiEwLGFkZGVkQ2xhc3NlczoiIn07aWYoMT09dGhpcy5sZW5ndGgpe3ZhciBiPXRoaXMuZGF0YSgicG9wdXBTZXR0aW5ncyIpP3RoaXMuZGF0YSgicG9wdXBTZXR0aW5ncyIpOnt9O3NldHRpbmdzPXt9O2MuZXh0ZW5kKCEwLHNldHRpbmdzLGssYixhKTshc2V0dGluZ3MuY29va2llTmFtZSYmMDx0aGlzLmF0dHIoImlkIikubGVuZ3RoJiYoc2V0dGluZ3MuY29va2llTmFtZT0iY3BwXyIrdGhpcy5hdHRyKCJpZCIpKTshc2V0dGluZ3MubmFtZSYmMDx0aGlzLmF0dHIoImlkIikubGVuZ3RoJiYoc2V0dGluZ3MubmFtZT10aGlzLmF0dHIoImlkIikucmVwbGFjZSgvQ29udGFpbmVyXGIvLCIiKSk7dGhpcy5kYXRhKCJwb3B1cFNldHRpbmdzIixzZXR0aW5ncyk7YT1uZXcgcG9wdXBpemVyKHRoaXMsc2V0dGluZ3MpOwpzZXR0aW5ncy5pbml0aWFsaXplZHx8KGEuaW5pdCgpLHBvcHVwU3VwZXJ2aXNvci5wb3B1cHMucHVzaChhKSk7cmV0dXJuIGF9cG9wdXBzPVtdO3RoaXMuZWFjaChmdW5jdGlvbigpe3BvcHVwcy5wdXNoKGModGhpcykucG9wdXBpemUoKSl9KTtyZXR1cm4gcG9wdXBzfTtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dmFyIGE9bnVsbDtjKHdpbmRvdykub24oInRvdWNobW92ZSwgb25zY3JvbGwsIHNjcm9sbCBtb3VzZXdoZWVsIHJlc2l6ZSIsZnVuY3Rpb24oayl7Y2xlYXJUaW1lb3V0KGEpO2E9c2V0VGltZW91dChwb3B1cFN1cGVydmlzb3IucmVwb3NpdGlvbiwxRTMpfSl9LDFFMyl9KTsKLyoqIC9qcy92dGlwLmpzICoqLwp2YXIgX19fZDJjX3Z0aXBqc19jX29uPSIyMDI1LTA1LTIzIDE3OjEwOjQ3IjsndXNlIHN0cmljdCc7dmFyIF9fX2QyY192dGlwanNfY19vbj0iMjAyNC0wMy0yNSAxMjozNTozOSI7InVzZSBzdHJpY3QiOwp0aGlzLnZ0aXA9ZnVuY3Rpb24oKXt0aGlzLnhPZmZzZXQ9LTEwO3RoaXMueU9mZnNldD0xMDskKCIudnRpcCIpLm9mZigpLm9uKCJob3ZlciIsZnVuY3Rpb24oYSl7dGhpcy50PXRoaXMudGl0bGU7dGhpcy50aXRsZT0iIjt0aGlzLnRvcD1hLnBhZ2VZK3lPZmZzZXQ7dGhpcy5sZWZ0PWEucGFnZVgreE9mZnNldDskKCJib2R5IikuYXBwZW5kKCc8cCBpZD0idnRpcCIgc3R5bGU9InotaW5kZXg6MTAwMDAwOyI+PGltZyBpZD0idnRpcEFycm93IiAvPicrdGhpcy50KyI8L3A+Iik7JCgicCN2dGlwICN2dGlwQXJyb3ciKS5hdHRyKCJzcmMiLCIvaW1hZ2VzL3NjcmF0Y2gvdnRpcF9hcnJvdy5wbmciKTskKCJwI3Z0aXAiKS5jc3MoInRvcCIsdGhpcy50b3ArInB4IikuY3NzKCJsZWZ0Iix0aGlzLmxlZnQrInB4IikuZmFkZUluKCJzbG93Iil9LGZ1bmN0aW9uKCl7dGhpcy50aXRsZT10aGlzLnQ7JCgicCN2dGlwIikuZmFkZU91dCgic2xvdyIpLnJlbW92ZSgpfSkub24oIm1vdXNlbW92ZSIsCmZ1bmN0aW9uKGEpe3RoaXMudG9wPWEucGFnZVkreU9mZnNldDt0aGlzLmxlZnQ9YS5wYWdlWCt4T2Zmc2V0OyQoInAjdnRpcCIpLmNzcygidG9wIix0aGlzLnRvcCsicHgiKS5jc3MoImxlZnQiLHRoaXMubGVmdCsicHgiKX0pfTtqUXVlcnkoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKGEpe3Z0aXAoKX0pOwovKiogL2pzL3dTY3JhdGNoUGFkLmpzICoqLwp2YXIgX19fZDJjX3dTY3JhdGNoUGFkanNfY19vbj0iMjAyNS0wNS0yMyAxNzoxMzozNyI7J3VzZSBzdHJpY3QnO3ZhciBfX19kMmNfd1NjcmF0Y2hQYWRqc19jX29uPSIyMDI0LTA0LTEyIDE4OjMwOjA2IjsidXNlIHN0cmljdCI7CihmdW5jdGlvbihkKXtmdW5jdGlvbiBoKGIsYSl7dGhpcy5zcD1udWxsO3RoaXMuc2V0dGluZ3M9Yjt0aGlzLiRlbGVtPWE7dGhpcy5lbmFibGVkPSEwO3RoaXMuc2NyYXRjaD0hMTt0aGlzLmN0eD10aGlzLmNhbnZhcz1udWxsO3JldHVybiB0aGlzfWQuZm4ud1NjcmF0Y2hQYWQ9ZnVuY3Rpb24oYixhKXtpZigiZW5hYmxlIj09YilkKHRoaXMpLmRhdGEoIl93U2NyYXRjaFBhZCIpLmVuYWJsZSgpO2Vsc2V7aWYoIm9iamVjdCI9PT10eXBlb2YgYilhPWI7ZWxzZSBpZigic3RyaW5nIj09dHlwZW9mIGIpe3ZhciBjPVtdLGY9dGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIGU9ZCh0aGlzKS5kYXRhKCJfd1NjcmF0Y2hQYWQiKTtlJiYoInJlc2V0Ij09PWI\/ZS5yZXNldCgpOiJjbGVhciI9PT1iP2UuY2xlYXIoKToiZW5hYmxlZCI9PT1iP2UuZW5hYmxlZD0hMD09PWE6dm9pZCAwIT09ZC5mbi53U2NyYXRjaFBhZC5kZWZhdWx0U2V0dGluZ3NbYl0mJih2b2lkIDAhPT1hP2Uuc2V0dGluZ3NbYl09CmE6Yy5wdXNoKGUuc2V0dGluZ3NbYl0pKSl9KTtyZXR1cm4gMT09PWMubGVuZ3RoP2NbMF06MDxjLmxlbmd0aD9jOmZ9YT1kLmV4dGVuZCh7fSxkLmZuLndTY3JhdGNoUGFkLmRlZmF1bHRTZXR0aW5ncyxhfHx7fSk7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciBlPWQodGhpcyksZz1qUXVlcnkuZXh0ZW5kKCEwLHt9LGEpO2lmKCFkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKS5nZXRDb250ZXh0KXt2YXIgaz0iQnJvd3NlciBkb2VzIG5vdCBzdXBwb3J0IEhUTUw1IGNhbnZhcywgcGxlYXNlIHVwZ3JhZGUgdG8gYSBtb3JlIG1vZGVybiBicm93c2VyLiI7ZCgiI3RleHREb2VzTm90U3VwcG9ydEhUTUw1IikubGVuZ3RoJiYoaz1kKCIjdGV4dERvZXNOb3RTdXBwb3J0SFRNTDUiKS52YWwoKSk7ZS5jc3MoInBhZGRpbmctdG9wIiwiNjBweCIpO2UuY3NzKCJoZWlnaHQiLCI1NXB4Iik7ZS5odG1sKGspOyJ1bmRlZmluZWQiIT10eXBlb2YgZy5pZFRvQWRkJiZkKCIjYmxvY2thZ2UiKwpnLmlkVG9BZGQpLmxlbmd0aCYmZCgiI2Jsb2NrYWdlIitnLmlkVG9BZGQpLmNzcygidG9wIixwYXJzZUludChkKCIjYmxvY2thZ2UiK2cuaWRUb0FkZCkuY3NzKCJ0b3AiKSkrMzArInB4Iik7cmV0dXJuITF9Zz1uZXcgaChnLGUpO2UuYXBwZW5kKGcuZ2VuZXJhdGUoKSk7Zy5waXhlbHM9Zy5jYW52YXMud2lkdGgqZy5jYW52YXMuaGVpZ2h0O2UuZGF0YSgiX3dTY3JhdGNoUGFkIixnKTtnLmluaXQoKX0pfX07ZC5mbi53U2NyYXRjaFBhZC5kZWZhdWx0U2V0dGluZ3M9e3dpZHRoOjYwMCxoZWlnaHQ6MTE1LGltYWdlOiIvaW1hZ2VzL3NjcmF0Y2gvc2xpZGUyLnBuZyIsaW1hZ2UyOiIvaW1hZ2VzL3BvcHVwcy9zdHlsZTIvc2NyYXRjaC5wbmciLGltYWdlRGlzYWJsZWQ6Ii9pbWFnZXMvcG9wdXBzL3N0eWxlMi9zY3JhdGNoX2Rpc2FibGVkLnBuZyIsY29sb3I6IiMzMzY2OTkiLG92ZXJsYXk6Im5vbmUiLHNpemU6MzAscmVhbHRpbWVQZXJjZW50OiExLHNjcmF0Y2hEb3duOm51bGwsc2NyYXRjaFVwOm51bGwsCnNjcmF0Y2hNb3ZlOm51bGwsY3Vyc29yOm51bGwsaWRUb0FkZDoiIixiYWNrZ3JvdW5kQ29sb3I6IiMwMTBhMjgiLGVuYWJsZWQ6ITB9O2gucHJvdG90eXBlPXtnZW5lcmF0ZTpmdW5jdGlvbigpe3RoaXMuY2FudmFzPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpO3RoaXMuY3R4PXRoaXMuY2FudmFzLmdldENvbnRleHQoIjJkIik7dGhpcy5zcD1kKCI8ZGl2PjwvZGl2PiIpLmNzcyh7cG9zaXRpb246InJlbGF0aXZlIn0pLmFwcGVuZChkKHRoaXMuY2FudmFzKS5hdHRyKCJ3aWR0aCIsdGhpcy5zZXR0aW5ncy53aWR0aCsicHgiKS5hdHRyKCJoZWlnaHQiLHRoaXMuc2V0dGluZ3MuaGVpZ2h0KyJweCIpLmF0dHIoInN0eWxlIiwicG9zaXRpb246YWJzb2x1dGU7bGVmdDotMnB4O3RvcDotMXB4O3otaW5kZXg6MTsiKSk7dGhpcy5zZXR0aW5ncy5lbmFibGVkJiZ0aGlzLmVuYWJsZSgpO3JldHVybiB0aGlzLnNwfSxlbmFibGU6ZnVuY3Rpb24oKXt0aGlzLmRyYXdJbWFnZSh0aGlzLnNldHRpbmdzLmltYWdlMiwKITApO3RoaXMuYmluZEJyb3dzZXIoKTt0aGlzLmJpbmRNb2JpbGUodGhpcy5zcCl9LGJpbmRCcm93c2VyOmZ1bmN0aW9uKGIpe3ZhciBhPXRoaXM7ZCh0aGlzLmNhbnZhcykub24oIm1vdXNlZG93biIsZnVuY3Rpb24oYyl7aWYoIWEuZW5hYmxlZClyZXR1cm4hMDtjLnByZXZlbnREZWZhdWx0KCk7Yy5zdG9wUHJvcGFnYXRpb24oKTthLmNhbnZhc19vZmZzZXQ9ZChhLmNhbnZhcykub2Zmc2V0KCk7YS5zY3JhdGNoPSEwO2Euc2NyYXRjaEZ1bmMoYyxhLCJEb3duIil9KS5vbigibW91c2Vtb3ZlIixmdW5jdGlvbihjKXtjLnByZXZlbnREZWZhdWx0KCk7Yy5zdG9wUHJvcGFnYXRpb24oKTthLnNjcmF0Y2gmJmEuc2NyYXRjaEZ1bmMoYyxhLCJNb3ZlIil9KS5vbigibW91c2V1cCIsZnVuY3Rpb24oYyl7Yy5wcmV2ZW50RGVmYXVsdCgpO2Muc3RvcFByb3BhZ2F0aW9uKCk7YS5zY3JhdGNoJiYoYS5zY3JhdGNoPSExLGEuc2NyYXRjaEZ1bmMoYyxhLCJVcCIpKX0pfSxiaW5kTW9iaWxlOmZ1bmN0aW9uKGIpe2Iub24oInRvdWNoc3RhcnQgdG91Y2htb3ZlIHRvdWNoZW5kIHRvdWNoY2FuY2VsIiwKZnVuY3Rpb24oKXt2YXIgYT1ldmVudC5jaGFuZ2VkVG91Y2hlc1swXTtzd2l0Y2goZXZlbnQudHlwZSl7Y2FzZSAidG91Y2hzdGFydCI6dmFyIGM9Im1vdXNlZG93biI7YnJlYWs7Y2FzZSAidG91Y2htb3ZlIjpjPSJtb3VzZW1vdmUiO2JyZWFrO2Nhc2UgInRvdWNoZW5kIjpjPSJtb3VzZXVwIjticmVhaztkZWZhdWx0OnJldHVybn12YXIgZj1kb2N1bWVudC5jcmVhdGVFdmVudCgiTW91c2VFdmVudCIpO2YuaW5pdE1vdXNlRXZlbnQoYywhMCwhMCx3aW5kb3csMSxhLnNjcmVlblgsYS5zY3JlZW5ZLGEuY2xpZW50WCxhLmNsaWVudFksITEsITEsITEsITEsMCxudWxsKTthLnRhcmdldC5kaXNwYXRjaEV2ZW50KGYpO2V2ZW50LnByZXZlbnREZWZhdWx0KCl9KX0saW5pdDpmdW5jdGlvbigpe3RoaXMuc3AuY3NzKCJ3aWR0aCIsdGhpcy5zZXR0aW5ncy53aWR0aC0yKTt0aGlzLnNwLmNzcygiaGVpZ2h0Iix0aGlzLnNldHRpbmdzLmhlaWdodC0yKTt0aGlzLnNwLmNzcygiY3Vyc29yIix0aGlzLnNldHRpbmdzLmN1cnNvcj8KJ3VybCgiJyt0aGlzLnNldHRpbmdzLmN1cnNvcisnIiksIGRlZmF1bHQnOiJkZWZhdWx0Iik7ZCh0aGlzLmNhbnZhcykuY3NzKHtjdXJzb3I6dGhpcy5zZXR0aW5ncy5jdXJzb3I\/J3VybCgiJyt0aGlzLnNldHRpbmdzLmN1cnNvcisnIiksIGRlZmF1bHQnOiJkZWZhdWx0In0pO3RoaXMuY2FudmFzLndpZHRoPXRoaXMuc2V0dGluZ3Mud2lkdGg7dGhpcy5jYW52YXMuaGVpZ2h0PXRoaXMuc2V0dGluZ3MuaGVpZ2h0O3RoaXMucGl4ZWxzPXRoaXMuY2FudmFzLndpZHRoKnRoaXMuY2FudmFzLmhlaWdodDt0aGlzLnNldHRpbmdzLmltYWdlMj8odGhpcy5kcmF3SW1hZ2UodGhpcy5zZXR0aW5ncy5pbWFnZTIpLHRoaXMuc2V0dGluZ3MuZW5hYmxlZHx8dGhpcy5kcmF3SW1hZ2UodGhpcy5zZXR0aW5ncy5pbWFnZURpc2FibGVkLCEwKSk6KCJub25lIiE9dGhpcy5zZXR0aW5ncy5vdmVybGF5Pyh0aGlzLnNldHRpbmdzLmltYWdlJiZ0aGlzLmRyYXdJbWFnZSh0aGlzLnNldHRpbmdzLmltYWdlKSwKdGhpcy5jdHguZ2xvYmFsQ29tcG9zaXRlT3BlcmF0aW9uPXRoaXMuc2V0dGluZ3Mub3ZlcmxheSk6dGhpcy5zZXRCZ0ltYWdlKCksdGhpcy5jdHguZmlsbFN0eWxlPXRoaXMuc2V0dGluZ3MuY29sb3IsdGhpcy5jdHguYmVnaW5QYXRoKCksdGhpcy5jdHgucmVjdCgwLDAsdGhpcy5zZXR0aW5ncy53aWR0aCx0aGlzLnNldHRpbmdzLmhlaWdodCksdGhpcy5jdHguZmlsbCgpKX0scmVzZXQ6ZnVuY3Rpb24oKXt0aGlzLmN0eC5nbG9iYWxDb21wb3NpdGVPcGVyYXRpb249InNvdXJjZS1vdmVyIjt0aGlzLmluaXQoKX0sY2xlYXI6ZnVuY3Rpb24oKXt0aGlzLmN0eC5jbGVhclJlY3QoMCwwLHRoaXMuc2V0dGluZ3Mud2lkdGgsdGhpcy5zZXR0aW5ncy5oZWlnaHQpfSxzZXRCZ0ltYWdlOmZ1bmN0aW9uKCl7dGhpcy5zZXR0aW5ncy5pbWFnZSYmKHRoaXMuc3AuYWRkQ2xhc3MoInNjcmF0Y2hEaXZUZXh0IiksdGhpcy5zcC5jc3MoImJhY2tncm91bmQtY29sb3IiLHRoaXMuc2V0dGluZ3MuYmFja2dyb3VuZENvbG9yKSwKdGhpcy5zcC5hcHBlbmQoIjxkaXYgaWQ9J3NjcmF0Y2hEaXZUZXh0Iit0aGlzLnNldHRpbmdzLmlkVG9BZGQrIicgc3R5bGU9J3RleHQtYWxpZ246Y2VudGVyO2ZvbnQtc2l6ZTozMHB4O2NvbG9yOiNmZmY7bWFyZ2luLWxlZnQ6MHB4O3BhZGRpbmctbGVmdDoxMHB4O3BhZGRpbmctcmlnaHQ6MTBweDtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MjBweDt6LWluZGV4OjA7Jz4iK2QoIiNzY3JhdGNoSW5wdXRUZXh0Iit0aGlzLnNldHRpbmdzLmlkVG9BZGQpLnZhbCgpKyI8L2Rpdj4iKSl9LGRyYXdJbWFnZTpmdW5jdGlvbihiLGEpe3ZhciBjPXRoaXMsZj1uZXcgSW1hZ2U7Zi5zcmM9YjtkKGYpLm9uKCJsb2FkIixmdW5jdGlvbigpe2MuY3R4LmRyYXdJbWFnZShmLDAsMCk7InVuZGVmaW5lZCIhPXR5cGVvZiBhJiZhfHxjLnNldEJnSW1hZ2UoKX0pfSxzY3JhdGNoRnVuYzpmdW5jdGlvbihiLGEsYyl7Yi5wYWdlWD1NYXRoLmZsb29yKGIucGFnZVgtYS5jYW52YXNfb2Zmc2V0LmxlZnQpO2IucGFnZVk9Ck1hdGguZmxvb3IoYi5wYWdlWS1hLmNhbnZhc19vZmZzZXQudG9wKTthWyJzY3JhdGNoIitjXShiLGEpOyh0aGlzLnNldHRpbmdzLnJlYWx0aW1lUGVyY2VudHx8IlVwIj09YykmJmEuc2V0dGluZ3NbInNjcmF0Y2giK2NdJiZhLnNldHRpbmdzWyJzY3JhdGNoIitjXS5hcHBseShhLFtiLGEuc2NyYXRjaFBlcmNlbnRhZ2UoYSldKX0sc2NyYXRjaFBlcmNlbnRhZ2U6ZnVuY3Rpb24oYil7Zm9yKHZhciBhPTAsYz1iLmN0eC5nZXRJbWFnZURhdGEoMCwwLGIuY2FudmFzLndpZHRoLGIuY2FudmFzLmhlaWdodCksZj0wLGU9Yy5kYXRhLmxlbmd0aDtmPGU7Zis9NCkwPT1jLmRhdGFbZl0mJjA9PWMuZGF0YVtmKzFdJiYwPT1jLmRhdGFbZisyXSYmMD09Yy5kYXRhW2YrM10mJmErKztyZXR1cm4gYS9iLnBpeGVscyoxMDB9LHNjcmF0Y2hEb3duOmZ1bmN0aW9uKGIsYSl7YS5jdHguZ2xvYmFsQ29tcG9zaXRlT3BlcmF0aW9uPSJkZXN0aW5hdGlvbi1vdXQiO2EuY3R4LmxpbmVKb2luPSJyb3VuZCI7CmEuY3R4LmxpbmVDYXA9InJvdW5kIjthLmN0eC5zdHJva2VTdHlsZT1hLnNldHRpbmdzLmNvbG9yO2EuY3R4LmxpbmVXaWR0aD1hLnNldHRpbmdzLnNpemU7YS5jdHguYmVnaW5QYXRoKCk7YS5jdHguYXJjKGIucGFnZVgsYi5wYWdlWSxhLnNldHRpbmdzLnNpemUvMiwwLDIqTWF0aC5QSSwhMCk7YS5jdHguY2xvc2VQYXRoKCk7YS5jdHguZmlsbCgpO2EuY3R4LmJlZ2luUGF0aCgpO2EuY3R4Lm1vdmVUbyhiLnBhZ2VYLGIucGFnZVkpfSxzY3JhdGNoTW92ZTpmdW5jdGlvbihiLGEpe2EuY3R4LmxpbmVUbyhiLnBhZ2VYLGIucGFnZVkpO2EuY3R4LnN0cm9rZSgpfSxzY3JhdGNoVXA6ZnVuY3Rpb24oYixhKXthLmN0eC5jbG9zZVBhdGgoKX19fSkoalF1ZXJ5KTsKLyoqIC9qcy9zd2ZzdG9yZS5qcyAqKi8KdmFyIF9fX2QyY19zd2ZzdG9yZWpzX2Nfb249IjIwMjUtMDUtMjMgMTc6MTI6MjEiOyd1c2Ugc3RyaWN0Jzt2YXIgX19fZDJjX3N3ZnN0b3JlanNfY19vbj0iMjAyNC0wMS0zMSAxNDozNzo1MyI7InVzZSBzdHJpY3QiO19fX2QyY19zd2ZzdG9yZWpzX2Nfb249IjIwMjMtMDEtMTIgMTE6MzU6MTgiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfc3dmc3RvcmVqc19jX29uPSIyMDIzLTAxLTEyIDEwOjQ0OjU4IjsidXNlIHN0cmljdCI7X19fZDJjX3N3ZnN0b3JlanNfY19vbj0iMjAyMS0xMi0xNSAxMjo0MjozMSI7InVzZSBzdHJpY3QiOwooZnVuY3Rpb24oKXtmdW5jdGlvbiBnKGEpe2lmKCJmdW5jdGlvbiI9PT10eXBlb2YgYSl0aHJvdyJTd2ZTdG9yZSBFcnJvcjogRnVuY3Rpb25zIGNhbm5vdCBiZSB1c2VkIGFzIGtleXMgb3IgdmFsdWVzLiI7fXZhciBoPTAsbT0vW15hLXowLTlfXS9naTt3aW5kb3cuU3dmU3RvcmU9ZnVuY3Rpb24oYSl7ZnVuY3Rpb24gZShkKXt2YXIgYj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGIpO2IuaWQ9IlN3ZlN0b3JlXyIrYS5uYW1lc3BhY2UrIl8iK2grKztkfHwoYi5zdHlsZS5wb3NpdGlvbj0iYWJzb2x1dGUiLGIuc3R5bGUudG9wPSItMjAwMHB4IixiLnN0eWxlLmxlZnQ9Ii0yMDAwcHgiKTtyZXR1cm4gYn1hPWF8fHt9O3ZhciBmPXtzd2ZfdXJsOiJzdG9yYWdlLnN3ZiIsbmFtZXNwYWNlOiJzd2ZzdG9yZSIscGF0aDpudWxsLGRlYnVnOiExLHRpbWVvdXQ6MTAsb25yZWFkeTpudWxsLG9uZXJyb3I6bnVsbH07Zm9yKGMgaW4gZilmLmhhc093blByb3BlcnR5KGMpJiYKKGEuaGFzT3duUHJvcGVydHkoYyl8fChhW2NdPWZbY10pKTthLm5hbWVzcGFjZT1hLm5hbWVzcGFjZS5yZXBsYWNlKG0sIl8iKTtpZih3aW5kb3cuU3dmU3RvcmVbYS5uYW1lc3BhY2VdKXRocm93IlRoZXJlIGlzIGFscmVhZHkgYW4gaW5zdGFuY2Ugb2YgU3dmU3RvcmUgdXNpbmcgdGhlICciK2EubmFtZXNwYWNlKyInIG5hbWVzcGFjZS4gVXNlIHRoYXQgaW5zdGFuY2Ugb3Igc3BlY2lmeSBhbiBhbHRlcm5hdGUgbmFtZXNwYWNlIGluIHRoZSBjb25maWcuIjt0aGlzLmNvbmZpZz1hO2lmKGEuZGVidWcpe2lmKCJ1bmRlZmluZWQiPT09dHlwZW9mIGNvbnNvbGUpe3ZhciBuPWUoITApO3dpbmRvdy5jb25zb2xlPXtsb2c6ZnVuY3Rpb24oZCl7dmFyIGI9ZSghMCk7Yi5pbm5lckhUTUw9ZDtuLmFwcGVuZENoaWxkKGIpfX19dGhpcy5sb2c9ZnVuY3Rpb24oZCxiLGspe2I9InN3ZlN0b3JlIj09PWI\/InN3ZiI6YjtpZigidW5kZWZpbmVkIiE9PXR5cGVvZiBjb25zb2xlW2RdKWNvbnNvbGVbZF0oIlN3ZlN0b3JlIC0gIisKYS5uYW1lc3BhY2UrIiAoIitiKyIpOiAiK2spO2Vsc2UgY29uc29sZS5sb2coIlN3ZlN0b3JlIC0gIithLm5hbWVzcGFjZSsiOiAiK2QrIiAoIitiKyIpOiAiK2spfX1lbHNlIHRoaXMubG9nPWZ1bmN0aW9uKCl7fTt0aGlzLmxvZygiaW5mbyIsImpzIiwiSW5pdGlhbGl6aW5nLi4uIik7U3dmU3RvcmVbYS5uYW1lc3BhY2VdPXRoaXM7Zj1lKGEuZGVidWcpO3ZhciBjPSJTd2ZTdG9yZV8iK2EubmFtZXNwYWNlKyJfIitoKyssbD0ibG9nZm49U3dmU3RvcmUuIithLm5hbWVzcGFjZSsiLmxvZyZhbXA7b25sb2FkPVN3ZlN0b3JlLiIrYS5uYW1lc3BhY2UrIi5vbmxvYWQmYW1wO29uZXJyb3I9U3dmU3RvcmUuIithLm5hbWVzcGFjZSsiLm9uZXJyb3ImYW1wOyIrKGEucGF0aD8iTFNPUGF0aD0iK2EucGF0aCsiJmFtcDsiOiIiKSsiTFNPTmFtZT0iK2EubmFtZXNwYWNlO2YuaW5uZXJIVE1MPSc8b2JqZWN0IGhlaWdodD0iMTAwIiB3aWR0aD0iNTAwIiBjb2RlYmFzZT0iaHR0cHM6Ly9kb3dubG9hZC5tYWNyb21lZGlhLmNvbS9wdWIvc2hvY2t3YXZlL2NhYnMvZmxhc2gvc3dmbGFzaC5jYWIiIGlkPSInKwpjKyciIGNsYXNzaWQ9ImNsc2lkOkQyN0NEQjZFLUFFNkQtMTFjZi05NkI4LTQ0NDU1MzU0MDAwMCI+ICAgIDxwYXJhbSB2YWx1ZT0iJythLnN3Zl91cmwrJyIgbmFtZT0ibW92aWUiPiAgPHBhcmFtIHZhbHVlPSInK2wrJyIgbmFtZT0iRmxhc2hWYXJzIj4gICA8cGFyYW0gdmFsdWU9ImFsd2F5cyIgbmFtZT0iYWxsb3dTY3JpcHRBY2Nlc3MiPiAgPGVtYmVkIGhlaWdodD0iMzc1IiBhbGlnbj0ibWlkZGxlIiB3aWR0aD0iNTAwIiBwbHVnaW5zcGFnZT0iaHR0cHM6Ly93d3cubWFjcm9tZWRpYS5jb20vZ28vZ2V0Zmxhc2hwbGF5ZXIiIGZsYXNodmFycz0iJytsKyciIHR5cGU9ImFwcGxpY2F0aW9uL3gtc2hvY2t3YXZlLWZsYXNoIiBhbGxvd3NjcmlwdGFjY2Vzcz0iYWx3YXlzIiBxdWFsaXR5PSJoaWdoIiBsb29wPSJmYWxzZSIgcGxheT0idHJ1ZSIgbmFtZT0iJytjKyciIGJnY29sb3I9IiNmZmZmZmYiIHNyYz0iJythLnN3Zl91cmwrJyI+PC9vYmplY3Q+Jzt0aGlzLnN3Zj1kb2N1bWVudFtjXXx8CndpbmRvd1tjXTt0aGlzLl90aW1lb3V0PXNldFRpbWVvdXQoZnVuY3Rpb24oKXtTd2ZTdG9yZVthLm5hbWVzcGFjZV0ubG9nKCJlcnJvciIsImpzIiwiVGltZW91dCByZWFjaGVkLCBhc3N1bWluZyAiK2Euc3dmX3VybCsiIGZhaWxlZCB0byBsb2FkIGFuZCBmaXJpbmcgdGhlIG9uZXJyb3IgY2FsbGJhY2suIik7aWYoYS5vbmVycm9yKWEub25lcnJvcigpfSwxRTMqYS50aW1lb3V0KX07U3dmU3RvcmUucHJvdG90eXBlPXt2ZXJzaW9uOiIxLjkiLHJlYWR5OiExLHNldDpmdW5jdGlvbihhLGUpe3RoaXMuX2NoZWNrUmVhZHkoKTtnKGEpO2coZSk7dGhpcy5zd2Yuc2V0KGEsZSl9LGdldDpmdW5jdGlvbihhKXt0aGlzLl9jaGVja1JlYWR5KCk7ZyhhKTtyZXR1cm4gdGhpcy5zd2YuZ2V0KGEpfSxnZXRBbGw6ZnVuY3Rpb24oKXt0aGlzLl9jaGVja1JlYWR5KCk7dmFyIGE9dGhpcy5zd2YuZ2V0QWxsKCk7YS5fX2ZsYXNoQnVnRml4JiZkZWxldGUgYS5fX2ZsYXNoQnVnRml4O3JldHVybiBhfSwKY2xlYXI6ZnVuY3Rpb24oYSl7dGhpcy5fY2hlY2tSZWFkeSgpO2coYSk7dGhpcy5zd2YuY2xlYXIoYSl9LF9jaGVja1JlYWR5OmZ1bmN0aW9uKCl7aWYoIXRoaXMucmVhZHkpdGhyb3ciU3dmU3RvcmUgaXMgbm90IHlldCBmaW5pc2hlZCBpbml0aWFsaXppbmcuIFBhc3MgYSBjb25maWcub25yZWFkeSBjYWxsYmFjayBvciB3YWl0IHVudGlsIHRoaXMucmVhZHkgaXMgdHJ1ZSBiZWZvcmUgdHJ5aW5nIHRvIHVzZSBhIFN3ZlN0b3JlIGluc3RhbmNlLiI7fSxvbmxvYWQ6ZnVuY3Rpb24oKXt2YXIgYT10aGlzO3NldFRpbWVvdXQoZnVuY3Rpb24oKXtjbGVhclRpbWVvdXQoYS5fdGltZW91dCk7YS5yZWFkeT0hMDthLnNldCgiX19mbGFzaEJ1Z0ZpeCIsIjEiKTtpZihhLmNvbmZpZy5vbnJlYWR5KWEuY29uZmlnLm9ucmVhZHkoKX0sMCl9LG9uZXJyb3I6ZnVuY3Rpb24oKXtjbGVhclRpbWVvdXQodGhpcy5fdGltZW91dCk7aWYodGhpcy5jb25maWcub25lcnJvcil0aGlzLmNvbmZpZy5vbmVycm9yKCl9fX0pKCk7Ci8qKiAvanMvanF1ZXJ5LmNvdW50ZG93bi5qcyAqKi8KdmFyIF9fX2QyY19qcXVlcnljb3VudGRvd25qc19jX29uPSIyMDI1LTA1LTIzIDE3OjA5OjMyIjsndXNlIHN0cmljdCc7dmFyIF9fX2QyY19qcXVlcnljb3VudGRvd25qc19jX29uPSIyMDI0LTAxLTMxIDE0OjM2OjEyIjsidXNlIHN0cmljdCI7X19fZDJjX2pxdWVyeWNvdW50ZG93bmpzX2Nfb249IjIwMjMtMDEtMTIgMTE6NDA6MjUiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfanF1ZXJ5Y291bnRkb3duanNfY19vbj0iMjAyMy0wMS0xMiAxMDo1MDoxMCI7InVzZSBzdHJpY3QiO19fX2QyY19qcXVlcnljb3VudGRvd25qc19jX29uPSIyMDIxLTEyLTE1IDEyOjUwOjM1IjsidXNlIHN0cmljdCI7CmpRdWVyeS5mbi5jb3VudGRvd249ZnVuY3Rpb24oaCl7aWYoMTx0aGlzLmxlbmd0aClyZXR1cm4gJCh0aGlzKS5lYWNoKGZ1bmN0aW9uKCl7JCh0aGlzKS5jb3VudGRvd24oaCl9KSx0aGlzO2lmKHRoaXMuZGF0YSgiY291bnRpbmciKSlyZXR1cm4gdGhpczt0aGlzLmRhdGEoImNvdW50aW5nIiwhMCk7dmFyIGE9e3N0ZXBUaW1lOjYwLGZvcm1hdDoiZGQ6aGg6bW06c3MiLHN0YXJ0VGltZToiMDE6MTI6MzI6NTUiLGRpZ2l0SW1hZ2VzOjYsZGlnaXRXaWR0aDo1MyxkaWdpdEhlaWdodDo3Nyx0aW1lckVuZDpmdW5jdGlvbigpe30saW1hZ2U6ImRpZ2l0cy5wbmcifSxjPVtdLGY9ZnVuY3Rpb24oYixkKXtyZXR1cm4gdm9pZCAwIT09ZD9jW2JdLmNzcyh7bWFyZ2luVG9wOmQrInB4In0pOnBhcnNlSW50KGNbYl0uY3NzKCJtYXJnaW5Ub3AiKS5yZXBsYWNlKCJweCIsIiIpKX0saz1mdW5jdGlvbihiKXtjW2JdLl9kaWdpdEluaXRpYWw9LShjW2JdLl9fbWF4KmEuZGlnaXRIZWlnaHQqYS5kaWdpdEltYWdlcyk7CnJldHVybiBmdW5jdGlvbiBlKCl7bXRvcD1mKGIpK2EuZGlnaXRIZWlnaHQ7aWYobXRvcD09YS5kaWdpdEhlaWdodClpZihmKGIsY1tiXS5fZGlnaXRJbml0aWFsKSwwPGIpayhiLTEpKCksMDxiJiZ2b2lkIDAhPT1jW2JdLl9fY29uZG1heCYmY1tiLTFdLl9kaWdpdEluaXRpYWw9PWYoYi0xKSYmZihiLC0oY1tiXS5fX2NvbmRtYXgqYS5kaWdpdEhlaWdodCphLmRpZ2l0SW1hZ2VzKSk7ZWxzZXtjbGVhckludGVydmFsKGwpO2Zvcih2YXIgZz0wO2c8Yy5sZW5ndGg7ZysrKWYoZywwKTthLnRpbWVyRW5kKCl9ZWxzZSBmKGIsbXRvcCksMCE9ZihiKS9hLmRpZ2l0SGVpZ2h0JWEuZGlnaXRJbWFnZXMmJnNldFRpbWVvdXQoZSxhLnN0ZXBUaW1lKSwwPT1tdG9wJiYoY1tiXS5fX2lzbWF4PSEwKX19OyQuZXh0ZW5kKGEsaCk7dGhpcy5jc3Moe2hlaWdodDphLmRpZ2l0SGVpZ2h0LG92ZXJmbG93OiJoaWRkZW4ifSk7KGZ1bmN0aW9uKGIpe2Zvcih2YXIgZD0wLGU9MDtlPGEuc3RhcnRUaW1lLmxlbmd0aDtlKyspe2lmKDA8PQpwYXJzZUludChhLnN0YXJ0VGltZVtlXSkpe2VsZW09JCgnPGRpdiBpZD0iY250XycrZSsnIiBjbGFzcz0iY250RGlnaXQiIC8+JykuY3NzKHtoZWlnaHQ6YS5kaWdpdEhlaWdodCphLmRpZ2l0SW1hZ2VzKjEwLGZsb2F0OiJsZWZ0IixiYWNrZ3JvdW5kOiJ1cmwoJyIrYS5pbWFnZSsiJykiLHdpZHRoOmEuZGlnaXRXaWR0aH0pO2MucHVzaChlbGVtKTtmKGQsLShwYXJzZUludChhLnN0YXJ0VGltZVtlXSkqYS5kaWdpdEhlaWdodCphLmRpZ2l0SW1hZ2VzKSk7Y1tkXS5fX21heD05O3N3aXRjaChhLmZvcm1hdFtlXSl7Y2FzZSAiaCI6Y1tkXS5fX21heD0wPT1kJTI\/Mjo5OzA9PWQlMiYmKGNbZF0uX19jb25kbWF4PTQpO2JyZWFrO2Nhc2UgImQiOmNbZF0uX19tYXg9OTticmVhaztjYXNlICJtIjpjYXNlICJzIjpjW2RdLl9fbWF4PTA9PWQlMj81Ojl9KytkfWVsc2UgZWxlbT0kKCc8ZGl2IGNsYXNzPSJjbnRTZXBhcmF0b3IiLz4nKS5jc3Moe2Zsb2F0OiJsZWZ0In0pLnRleHQoYS5zdGFydFRpbWVbZV0pOwpiLmFwcGVuZChlbGVtKX19KSh0aGlzKTt2YXIgbD1zZXRJbnRlcnZhbChrKGMubGVuZ3RoLTEpLDFFMyl9OwovKiogL2pzL2RhdGVVdGlscy5qcyAqKi8KdmFyIF9fX2QyY19kYXRlVXRpbHNqc19jX29uPSIyMDI1LTA1LTIzIDE3OjA5OjQ2IjsndXNlIHN0cmljdCc7dmFyIF9fX2QyY19kYXRlVXRpbHNqc19jX29uPSIyMDI0LTAxLTMxIDE0OjM2OjAxIjsidXNlIHN0cmljdCI7X19fZDJjX2RhdGVVdGlsc2pzX2Nfb249IjIwMjMtMDEtMTIgMTE6MzQ6MzMiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfZGF0ZVV0aWxzanNfY19vbj0iMjAyMy0wMS0xMiAxMDo0NDoxNCI7InVzZSBzdHJpY3QiO19fX2QyY19kYXRlVXRpbHNqc19jX29uPSIyMDIxLTEyLTE1IDEyOjQxOjIzIjsidXNlIHN0cmljdCI7RGF0ZS5wcm90b3R5cGUuYW1vdW50QmV0d2Vlbj1mdW5jdGlvbihhLGIsYyxkKXtpZigidW5kZWZpbmVkIj09dHlwZW9mIGF8fG51bGw9PWF8fCJ1bmRlZmluZWQiPT10eXBlb2YgYnx8bnVsbD09YilyZXR1cm4gbnVsbDthPWEuZ2V0VGltZSgpO2I9Yi5nZXRUaW1lKCk7cmV0dXJuIE1hdGguZmxvb3IoKGItYS1kKS9jKX07Ci8qKiAvanMvcG9wdXAuanMgKiovCnZhciBfX19kMmNfcG9wdXBqc19jX29uPSIyMDI1LTA1LTIzIDE3OjExOjI3IjsndXNlIHN0cmljdCc7dmFyIF9fX2QyY19wb3B1cGpzX2Nfb249IjIwMjQtMDMtMTUgMTA6MzA6MTAiOyJ1c2Ugc3RyaWN0Ijt2YXIgYWN0aXZhdGVkUG9wdXBEaXZJRD0iIixtYWluUG9wdXBEaXZJRD0iIixwb3B1cE9uQWZ0ZXJTdWJtaXRDbG9zZT0hMSxpc1BvcHVwSW5pdGlhbGl6ZWQ9ITE7CmZ1bmN0aW9uIHNob3dQb3B1cFdpZGdldChhLGI9ITApe3ZhciBjPSExPT09Yj8hMTohMDtpZihpc1Ntc1RleHRVc0Zvcm0oKSYmYilyZXR1cm4gc2hvd1Ntc1RleHRVc0Zvcm0oYyksITE7aWYoITE9PT1pc1BvcHVwSW5pdGlhbGl6ZWQpcmV0dXJuITE7YT1hP2E6e307c2V0dGluZ3M9e3Nob3dNYWluUG9wdXA6ITEsZG9Ob3RSZWRpcmVjdDohMSxldmVudFR5cGU6ImNsaWNrIixkZWxheTohMX07JC5leHRlbmQoc2V0dGluZ3MsYSk7YT1zZXR0aW5ncy5kb05vdFJlZGlyZWN0O2I9c2V0dGluZ3MuZXZlbnRUeXBlO2M9c2V0dGluZ3MuZGVsYXk7dmFyIGQ9MDxhY3RpdmF0ZWRQb3B1cERpdklELmxlbmd0aD9hY3RpdmF0ZWRQb3B1cERpdklEOiExOyEwPT09c2V0dGluZ3Muc2hvd01haW5Qb3B1cCYmMDxtYWluUG9wdXBEaXZJRC5sZW5ndGgmJihkPW1haW5Qb3B1cERpdklEKTtpZihkJiYwPGQubGVuZ3RoKSQoIiMiK2QpLnBvcHVwaXplKCkuc2V0VHJpZ2dlcihiKS5vcGVuKGMpO2Vsc2UgaWYoImZ1bmN0aW9uIj09PQp0eXBlb2Ygc2hvd1BvcHVwV2lkZ2V0T0xEKXNob3dQb3B1cFdpZGdldE9MRCghMSk7ZWxzZSBpZighMT09PWEpMDwkKCIjcHJvbW9TZWN0aW9ubmFibGVkIikubGVuZ3RoJiYiMCIhPSQoIiNwcm9tb1NlY3Rpb25uYWJsZWQiKS52YWwoKT93aW5kb3cubG9jYXRpb24uaHJlZj0iRU5HTElTSCI9PSQoIiNhY3RpdmVzaXRlbGFuZ3VhZ2UiKS52YWwoKT8iL291ci1wcm9tb3Rpb25zLmh0bWwiOiIvcHJvbW90aW9ucy5odG1sIjp3aW5kb3cubG9jYXRpb24uaHJlZj0iLyI7ZWxzZSByZXR1cm4hMX1mdW5jdGlvbiBwb3B1cFBvc3RNZXNzYWdlT25BdXRvYXViYWluZSgpe3NldFRpbWVvdXQoZnVuY3Rpb24oKXskLnBvc3RNZXNzYWdlKCJjbG9zZVBvcHVwIiwiKiIscGFyZW50KX0sMUUzKX0KZnVuY3Rpb24gcG9wdXBEZWZhdWx0T25BZnRlckluaXRpYWxpemUoYSxiLGMsZCxlLGYsZyl7aXNQb3B1cEluaXRpYWxpemVkPSEwO2MmJihtYWluUG9wdXBEaXZJRD1mK2QpO3JldHVybiBiPT1hJiZjfHwicmVzZXQiPT1iJiZjPyhhY3RpdmF0ZWRQb3B1cERpdklEPWYrZCwidXNlZGNhcnMuaHRtbCIhPWV8fGc\/Im5ld2NhcnMuaHRtbCIhPWV8fGc\/ITA6KGNvbnNvbGUubG9nKCJwb3B1cC5qcyBwb3B1cERlZmF1bHRPbkFmdGVySW5pdGlhbGl6ZSAtIG5ld2NhcnMgcmV0dXJucyBmYWxzZS4gUG9wdXAgbWF5IGJlIGNhbmNlbGxlZC4iKSwhMSk6KHRoaXMuY29uc29sZSYmInVuZGVmaW5lZCIhPT10eXBlb2YgY29uc29sZS5sb2cmJmNvbnNvbGUubG9nKCJwb3B1cC5qcyBwb3B1cERlZmF1bHRPbkFmdGVySW5pdGlhbGl6ZSAtIHVzZWRjYXJzICByZXR1cm5zIGZhbHNlLiBQb3B1cCBtYXkgYmUgY2FuY2VsbGVkLiIpLCExKSk6ITF9CmZ1bmN0aW9uIHBvcHVwY2xvc2VQREYoYSxiKXskKCIjcG9wdXBkaXZwZGYiK2EpLmxlbmd0aCYmJCgiI3BvcHVwZGl2cGRmIithKS5jc3MoImRpc3BsYXkiLCJub25lIik7JCgiI3BvcHVwZGlmcGRmbW9kYWwiKS5sZW5ndGgmJiQoIiNwb3B1cGRpZnBkZm1vZGFsIikucmVtb3ZlKCk7JCgiI3BvcHVwZGl2cGRmaWZyYW1lIikubGVuZ3RoJiYkKCIjcG9wdXBkaXZwZGZpZnJhbWUiKS5yZW1vdmUoKTtiJiZwb3B1cFBvc3RNZXNzYWdlT25BdXRvYXViYWluZSgpfWZ1bmN0aW9uIHByaW50UERGSUZyYW1lKCl7d2luZG93LmZyYW1lcy5wb3B1cGRpdnBkZmlmcmFtZS5wcmludE1lKCl9ZnVuY3Rpb24gcG9wdXBUcmltKGEpe3JldHVybiBhLnJlcGxhY2UoL15ccyt8XHMrJC9nbSwiIil9CmZ1bmN0aW9uIHNob3dQb3B1cFdpZGdldEFkZFZlaGljbGUoYSl7JCgnaW5wdXRbbmFtZT0ic2VhcmNoZWR2ZWhpY2xlIl0nKS5lYWNoKGZ1bmN0aW9uKCl7JCh0aGlzKS52YWwoYSl9KTtzaG93UG9wdXBXaWRnZXQoKX1mdW5jdGlvbiBzaG93U3BlY2lhbFNjaGVkdWxlT25sb2FkKCl7dmFyIGE9JCgiI3NwZWNpYWxTY2hlZHVsZSIpOzA8YS5sZW5ndGgmJmEucG9wdXBpemUoe3Nob3dvbmxvYWQ6ITAsY29va2llTmFtZToic3BTY2hlZHVsZURpc3BsYXllZCIsY29va2llQ3JlYXRlOiJvbk9wZW4iLGNsb3NlQnV0dG9uOiEwfSl9ZnVuY3Rpb24gc2hvd1NwZWNpYWxTY2hlZHVsZSgpeyQoIiNzcGVjaWFsU2NoZWR1bGUiKS5wb3B1cGl6ZSgpLnNldFRyaWdnZXIoImNsaWNrIikub3BlbigpfWZ1bmN0aW9uIHNob3dUcmFkZUJvb3N0UG9wdXAoKXskKCIjVHJhZGVJbkJhclBvcHVwQ29udGFpbmVyIikucG9wdXBpemUoKS5zZXRUcmlnZ2VyKCJjbGljayIpLm9wZW4oKX0KZnVuY3Rpb24gaXNTbXNUZXh0VXNGb3JtKCl7bGV0IGE9WyJuZXdjYXJkZXRhaWwuaHRtbCIsIm5ld2NhcnMuaHRtbCJdLGI9WyJjYXJkZXRhaWwuaHRtbCIsInVzZWRjYXJzLmh0bWwiXTtyZXR1cm4iMSI9PSQoIiNEaXNjb3VudFBvcHVwTmV3UmViYXRlU2hvd1RleHRVcyIpLnZhbCgpJiZhLmluY2x1ZGVzKCQoIiNQQUdFSUQiKS52YWwoKSl8fCIxIj09JCgiI0Rpc2NvdW50UG9wdXBVc2VkUmViYXRlU2hvd1RleHRVcyIpLnZhbCgpJiZiLmluY2x1ZGVzKCQoIiNQQUdFSUQiKS52YWwoKSk\/ITA6ITF9ZnVuY3Rpb24gc2hvd1Ntc1RleHRVc0Zvcm0oYT0hMCl7JCgiI2lzTW9iaWxlIikubGVuZ3RoJiYiMSI9PSQoIiNpc01vYmlsZSIpLnZhbCgpJiYhMSE9PWE\/ZGVhbGVyTGluZVNtcygpOmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNzbGlkZWl0ICNvcGVuLWl0ZW0iKS5jaGVja2VkPSEwfTsKLyoqIC9qcy9jb250YWN0UG9wdXAuanMgKiovCnZhciBfX19kMmNfY29udGFjdFBvcHVwanNfY19vbj0iMjAyNi0wMS0xMiAxMDoxMzo0NiI7J3VzZSBzdHJpY3QnO3ZhciBjb250YWN0UG9wdXA9e3BvcHVwOiQoIiNjb250YWN0cG9wdXAiKSxvcHRpb25zOnt0eXBlOiIifSxzZXRDb25maWc6ZnVuY3Rpb24oYSl7Y29udGFjdFBvcHVwLm9wdGlvbnM9JC5leHRlbmQoe30sY29udGFjdFBvcHVwLm9wdGlvbnMsYSk7cmV0dXJuIGNvbnRhY3RQb3B1cH0saW5pdDpmdW5jdGlvbigpe2NvbnRhY3RQb3B1cC5zZXRDb25maWcoe3R5cGU6c2VsZi5zZXR0aW5ncy5mb3JtLnR5cGV9KTtjb250YWN0UG9wdXAucG9wdXAucG9wdXBpemUoe29uQmVmb3JlU2VuZE1haWw6Y29udGFjdFBvcHVwLm9uQmVmb3JlU2VuZE1haWx9KS5vcGVuKCk7cmV0dXJuIGNvbnRhY3RQb3B1cH0sb25CZWZvcmVTZW5kTWFpbDpmdW5jdGlvbihhKXtjb250YWN0UG9wdXAuc2V0RW1haWxIYW5kbGVyRnJvbUFkZHJlc3NlcygpO2VtYWlsSGFuZGxlci5jb25kaXRpb249Y29udGFjdFBvcHVwLmdldENvbmRpdGlvbigpO2VtYWlsSGFuZGxlci5kZXBhcnRtZW50PWNvbnRhY3RQb3B1cC5nZXRUeXBlKCkudG9VcHBlckNhc2UoKTsKIkJOUCI9PWVtYWlsSGFuZGxlci5kZXBhcnRtZW50JiYoZW1haWxIYW5kbGVyLmRlcGFydG1lbnQ9Ik5FVyIpO2VtYWlsSGFuZGxlci5za2lwR2V0RGVwPSEwO2VtYWlsSGFuZGxlci5ib2R5PWVtYWlsSGFuZGxlci5ib2R5LnJlcGxhY2UoInskTkFNRX0iLGVtYWlsSGFuZGxlci51c2VyRmlyc3ROYW1lKyIgIitlbWFpbEhhbmRsZXIudXNlckxhc3ROYW1lKX0sZ2V0Q29uZGl0aW9uOmZ1bmN0aW9uKCl7c3dpdGNoKGNvbnRhY3RQb3B1cC5nZXRUeXBlKCkpe2Nhc2UgImJucCI6Y2FzZSAibmV3IjpjYXNlICJtYW51ZmFjdHVyZXIiOnJldHVybiJuZXciO2RlZmF1bHQ6cmV0dXJuInVzZWQifX0sZ2V0VHlwZTpmdW5jdGlvbigpe3JldHVybiBjb250YWN0UG9wdXAub3B0aW9ucy50eXBlfSxzZXRFbWFpbEhhbmRsZXJGcm9tQWRkcmVzc2VzOmZ1bmN0aW9uKCl7dmFyIGE9Y29udGFjdFBvcHVwLmdldFR5cGUoKTt0cnl7dmFyIGI9Y29udGFjdFBvcHVwLmdldEVtYWlscyhhKTsiIj09PWIuc2VuZFRvJiYKIiI9PT1iLnNlbmRUb0FERiYmKGI9Y29udGFjdFBvcHVwLmdldEVtYWlscygidXNlZCIpKTt2YXIgYz1iLnNlbmRUbyxkPWIuc2VuZFRvQURGOyIiPT09YyYmIiI9PT1kJiZjb25zb2xlLmxvZygiV2FybmluZzogYm90aCBlbWFpbCBhbmQgQURGIGFkZHJlc3NlcyBhcmUgZW1wdHkhIik7aWYoJCgiI2N1c3RvbUZvcm1fb3JpZ2luYWxzZW5kdG8iKS5sZW5ndGgmJiJPdGhlciI9PSQoIiNjdXN0b21Gb3JtX29yaWdpbmFsc2VuZHRvIikudmFsKCkpe3ZhciBlPSQoIiNjdXN0b21Gb3JtX3NlbmR0byIpLnZhbCgpLGY9JCgiI2N1c3RvbUZvcm1fc2VuZHRvQURGIikudmFsKCk7aWYoIiIhPT1lfHwiIiE9PWYpYz1lLGQ9Zn1lbWFpbEhhbmRsZXIuc2VuZFRvPWM7ZW1haWxIYW5kbGVyLnNlbmRUb0FERkZvcm1hdD1kfWNhdGNoKGcpe2NvbnNvbGUubG9nKGcpfXJldHVybiBjb250YWN0UG9wdXB9LGdldEVtYWlsczpmdW5jdGlvbihhKXt2YXIgYj0kKCIjaGlkZGVuQ29udGFjdHBvcHVwIik7CiJibnAiPT1hJiYoYT0ibmV3Iik7dmFyIGM9Yi5maW5kKCIjZW1haWxfIithKS52YWwoKTthPWIuZmluZCgiI2VtYWlsQURGXyIrYSkudmFsKCk7cmV0dXJue3NlbmRUbzpjLHNlbmRUb0FERjphfX19LGluaXRDb250YWN0cG9wdXA9ZnVuY3Rpb24oYSl7YS5wcmV2ZW50RGVmYXVsdCgpO2NvbnRhY3RQb3B1cC5pbml0KCl9LGNvbnRhY3RQb3B1cFN1Ym1pdD1mdW5jdGlvbigpeyQoIiNjb250YWN0cG9wdXAiKS5wb3B1cGl6ZSgpLnN1Ym1pdCgpfSxjb250YWN0UG9wdXBDbG9zZT1mdW5jdGlvbigpeyQoIiNjb250YWN0cG9wdXAiKS5wb3B1cGl6ZSgpLmNsb3NlKCl9OwovKiogL2pzL25lYkNhbC9uZWJEYXRlRm4uanMgKiovCnZhciBfX19kMmNfbmViRGF0ZUZuanNfY19vbj0iMjAyNS0wNS0yMyAxNzowNDoyNCI7J3VzZSBzdHJpY3QnO3ZhciBfX19kMmNfbmViRGF0ZUZuanNfY19vbj0iMjAyNC0wMS0zMSAxNDozMTo1NyI7InVzZSBzdHJpY3QiO19fX2QyY19uZWJEYXRlRm5qc19jX29uPSIyMDIzLTAxLTEyIDExOjMyOjIzIjsidXNlIHN0cmljdCI7X19fZDJjX25lYkRhdGVGbmpzX2Nfb249IjIwMjMtMDEtMTIgMTA6NDI6MTYiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfbmViRGF0ZUZuanNfY19vbj0iMjAyMS0xMi0xNSAxMjozODozOSI7InVzZSBzdHJpY3QiO2NvbnN0IG5lYkRhdGVGbj17fTsKJCgiYm9keSIpLmhhc0NsYXNzKCJGUkVOQ0giKT8kLm5lYkxhbmc9e21vbnRoTmFtZXM6IkphbnZpZXIgRiZlYWN1dGU7dnJpZXIgTWFycyBBdnJpbCBNYWkgSnVpbiBKdWlsbGV0IEFvJnVjaXJjO3QgU2VwdGVtYnJlIE9jdG9icmUgTm92ZW1icmUgRCZlYWN1dGU7Y2VtYnJlIi5zcGxpdCgiICIpLG1vbnRoTmFtZXNTaG9ydDoiSmFudi4gRiZlYWN1dGU7dnIuIE1hcnMgQXZyLiBNYWkgSnVpbiBKdWlsLiBBbyZ1Y2lyYzt0IFNlcHQuIE9jdC4gTm92LiBEJmVhY3V0ZTtjLiIuc3BsaXQoIiAiKSxkYXlOYW1lczoiRGltYW5jaGUgTHVuZGkgTWFyZGkgTWVyY3JlZGkgSmV1ZGkgVmVuZHJlZGkgU2FtZWRpIi5zcGxpdCgiICIpLGRheU5hbWVzU2hvcnQ6IkRpbSBMdW4gTWFyIE1lciBKZXUgVmVuIFNhbSIuc3BsaXQoIiAiKSxkYXlOYW1lc01pbjoiRGkgTHUgTWEgTWUgSmUgVmUgU2EiLnNwbGl0KCIgIiksd2Vla0hlYWRlcjoiU20iLGRhdGVGb3JtYXQ6InktTS1kIixmaXJzdERheToxLAppc1JUTDohMSxzaG93TW9udGhBZnRlclllYXI6ITEseWVhclN1ZmZpeDoiIixpbnZhbGlkRGF0ZUZvcm1hdDoiaW52YWxpZF9kYXRlIn06JC5uZWJMYW5nPXttb250aE5hbWVzOiJKYW51YXJ5IEZlYnJ1YXJ5IE1hcmNoIEFwcmlsIE1heSBKdW5lIEp1bHkgQXVndXN0IFNlcHRlbWJlciBPY3RvYmVyIE5vdmVtYmVyIERlY2VtYmVyIi5zcGxpdCgiICIpLG1vbnRoTmFtZXNTaG9ydDoiSmFuLiBGZWIuIE1hci4gQXByLiBNYXkgSnVuLiBKdWwuIEF1Zy4gU2VwdC4gT2N0LiBOb3YuIERlYy4iLnNwbGl0KCIgIiksZGF5TmFtZXM6IlN1bmRheSBNb25kYXkgVHVlc2RheSBXZWRuZXNkYXkgVGh1cnNkYXkgRnJpZGF5IFNhdHVyZGF5Ii5zcGxpdCgiICIpLGRheU5hbWVzU2hvcnQ6IlN1biBNb24gVHVlIFdlZCBUaHUgRnJpIFNhdCIuc3BsaXQoIiAiKSxkYXlOYW1lc01pbjoiU3UgTW8gVHUgV2UgVGggRnIgU2EiLnNwbGl0KCIgIiksd2Vla0hlYWRlcjoiU20iLGRhdGVGb3JtYXQ6InktTS1kIiwKZmlyc3REYXk6MSxpc1JUTDohMSxzaG93TW9udGhBZnRlclllYXI6ITEseWVhclN1ZmZpeDoiIixpbnZhbGlkRGF0ZUZvcm1hdDoiaW52YWxpZF9kYXRlIn07RGF0ZS5MWj1mdW5jdGlvbihhKXtyZXR1cm4oMD5hfHw5PGE\/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\/YS5pKGUuYSkoZC5hLGIsZykobCxiLGYsZyk6YS5pKGQuYSkobCxiLGYsZyl9fSxmdW5jdGlvbihoLGMsYSl7ZnVuY3Rpb24gZChnKXtnLmNvbXBvbmVudChiLmEubmFtZSxiLmEpOwpnLmRpcmVjdGl2ZSgibWFzayIsbC5hKX1PYmplY3QuZGVmaW5lUHJvcGVydHkoYywiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7aD1hKDApO3ZhciBlPWEubihoKSxsPWEoMSk7aD1hKDcpO3ZhciBiPWEubihoKTthLmQoYywiVGhlTWFzayIsZnVuY3Rpb24oKXtyZXR1cm4gYi5hfSk7YS5kKGMsIm1hc2siLGZ1bmN0aW9uKCl7cmV0dXJuIGwuYX0pO2EuZChjLCJ0b2tlbnMiLGZ1bmN0aW9uKCl7cmV0dXJuIGUuYX0pO2EuZChjLCJ2ZXJzaW9uIixmdW5jdGlvbigpe3JldHVybiBmfSk7dmFyIGY9IjAuMTEuMSI7Yy5kZWZhdWx0PWQ7InVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3cmJndpbmRvdy5WdWUmJndpbmRvdy5WdWUudXNlKGQpfSxmdW5jdGlvbihoLGMsYSl7T2JqZWN0LmRlZmluZVByb3BlcnR5KGMsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO2g9YSgxKTt2YXIgZD1hKDApLGU9YS5uKGQpLGw9YSgyKTtjLmRlZmF1bHQ9e25hbWU6IlRoZU1hc2siLHByb3BzOnt2YWx1ZTpbU3RyaW5nLApOdW1iZXJdLG1hc2s6e3R5cGU6W1N0cmluZyxBcnJheV0scmVxdWlyZWQ6ITB9LG1hc2tlZDp7dHlwZTpCb29sZWFuLGRlZmF1bHQ6ITF9LHRva2Vuczp7dHlwZTpPYmplY3QsZGVmYXVsdDpmdW5jdGlvbigpe3JldHVybiBlLmF9fX0sZGlyZWN0aXZlczp7bWFzazpoLmF9LGRhdGE6ZnVuY3Rpb24oKXtyZXR1cm57bGFzdFZhbHVlOm51bGwsZGlzcGxheTp0aGlzLnZhbHVlfX0sd2F0Y2g6e3ZhbHVlOmZ1bmN0aW9uKGIpe2IhPT10aGlzLmxhc3RWYWx1ZSYmKHRoaXMuZGlzcGxheT1iKX0sbWFza2VkOmZ1bmN0aW9uKCl7dGhpcy5yZWZyZXNoKHRoaXMuZGlzcGxheSl9fSxjb21wdXRlZDp7Y29uZmlnOmZ1bmN0aW9uKCl7cmV0dXJue21hc2s6dGhpcy5tYXNrLHRva2Vuczp0aGlzLnRva2VucyxtYXNrZWQ6dGhpcy5tYXNrZWR9fX0sbWV0aG9kczp7b25JbnB1dDpmdW5jdGlvbihiKXtiLmlzVHJ1c3RlZHx8dGhpcy5yZWZyZXNoKGIudGFyZ2V0LnZhbHVlKX0scmVmcmVzaDpmdW5jdGlvbihiKXt0aGlzLmRpc3BsYXk9CmI7Yj1hLmkobC5hKShiLHRoaXMubWFzayx0aGlzLm1hc2tlZCx0aGlzLnRva2Vucyk7YiE9PXRoaXMubGFzdFZhbHVlJiYodGhpcy5sYXN0VmFsdWU9Yix0aGlzLiRlbWl0KCJpbnB1dCIsYikpfX19fSxmdW5jdGlvbihoLGMsYSl7Yy5hPWZ1bmN0aW9uKGQsZSxsKXtyZXR1cm4gZT1lLnNvcnQoZnVuY3Rpb24oYixmKXtyZXR1cm4gYi5sZW5ndGgtZi5sZW5ndGh9KSxmdW5jdGlvbihiLGYpe2Zvcih2YXIgZz0hKDI8YXJndW1lbnRzLmxlbmd0aCYmdm9pZCAwIT09YXJndW1lbnRzWzJdKXx8YXJndW1lbnRzWzJdLG09MDttPGUubGVuZ3RoOyl7dmFyIGs9ZVttXTttKys7dmFyIG49ZVttXTtpZighKG4mJmQoYixuLCEwLGwpLmxlbmd0aD5rLmxlbmd0aCkpcmV0dXJuIGQoYixrLGcsbCl9cmV0dXJuIiJ9fX0sZnVuY3Rpb24oaCxjLGEpe2MuYT1mdW5jdGlvbihkLGUpe3ZhciBsPSEoMjxhcmd1bWVudHMubGVuZ3RoJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0pfHxhcmd1bWVudHNbMl0sYj0KYXJndW1lbnRzWzNdO2Q9ZHx8IiI7ZT1lfHwiIjtmb3IodmFyIGY9MCxnPTAsbT0iIjtmPGUubGVuZ3RoJiZnPGQubGVuZ3RoOyl7dmFyIGs9ZVtmXSxuPWJba10scD1kW2ddO24mJiFuLmVzY2FwZT8obi5wYXR0ZXJuLnRlc3QocCkmJihtKz1uLnRyYW5zZm9ybT9uLnRyYW5zZm9ybShwKTpwLGYrKyksZysrKToobiYmbi5lc2NhcGUmJihmKyssaz1lW2ZdKSxsJiYobSs9aykscD09PWsmJmcrKyxmKyspfWZvcihnPSIiO2Y8ZS5sZW5ndGgmJmw7KXtrPWVbZl07aWYoYltrXSl7Zz0iIjticmVha31nKz1rO2YrK31yZXR1cm4gbStnfX0sZnVuY3Rpb24oaCxjLGEpe2M9YSg4KShhKDQpLGEoOSksbnVsbCxudWxsKTtoLmV4cG9ydHM9Yy5leHBvcnRzfSxmdW5jdGlvbihoLGMpe2guZXhwb3J0cz1mdW5jdGlvbihhLGQsZSxsKXt2YXIgYixmPWE9YXx8e30sZz10eXBlb2YgYS5kZWZhdWx0OyJvYmplY3QiIT09ZyYmImZ1bmN0aW9uIiE9PWd8fChiPWEsZj1hLmRlZmF1bHQpO2E9ImZ1bmN0aW9uIj09CnR5cGVvZiBmP2Yub3B0aW9uczpmO2lmKGQmJihhLnJlbmRlcj1kLnJlbmRlcixhLnN0YXRpY1JlbmRlckZucz1kLnN0YXRpY1JlbmRlckZucyksZSYmKGEuX3Njb3BlSWQ9ZSksbCl7dmFyIG09YS5jb21wdXRlZHx8KGEuY29tcHV0ZWQ9e30pO09iamVjdC5rZXlzKGwpLmZvckVhY2goZnVuY3Rpb24oayl7dmFyIG49bFtrXTttW2tdPWZ1bmN0aW9uKCl7cmV0dXJuIG59fSl9cmV0dXJue2VzTW9kdWxlOmIsZXhwb3J0czpmLG9wdGlvbnM6YX19fSxmdW5jdGlvbihoLGMpe2guZXhwb3J0cz17cmVuZGVyOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcy4kY3JlYXRlRWxlbWVudDtyZXR1cm4odGhpcy5fc2VsZi5fY3x8YSkoImlucHV0Iix7ZGlyZWN0aXZlczpbe25hbWU6Im1hc2siLHJhd05hbWU6InYtbWFzayIsdmFsdWU6dGhpcy5jb25maWcsZXhwcmVzc2lvbjoiY29uZmlnIn1dLGF0dHJzOnt0eXBlOiJ0ZXh0In0sZG9tUHJvcHM6e3ZhbHVlOnRoaXMuZGlzcGxheX0sb246e2lucHV0OnRoaXMub25JbnB1dH19KX0sCnN0YXRpY1JlbmRlckZuczpbXX19LGZ1bmN0aW9uKGgsYyxhKXtoLmV4cG9ydHM9YSgzKX1dKX0pOwovKiogL2pzL2ZpbmFuY2VfbXVsdGlzdGVwLmpzICoqLwp2YXIgX19fZDJjX2ZpbmFuY2VtdWx0aXN0ZXBqc19jX29uPSIyMDI2LTAzLTA2IDA5OjMwOjAzIjsndXNlIHN0cmljdCc7dmFyICRqc2NvbXA9JGpzY29tcHx8e307JGpzY29tcC5zY29wZT17fTskanNjb21wLkFTU1VNRV9FUzU9ITE7JGpzY29tcC5BU1NVTUVfTk9fTkFUSVZFX01BUD0hMTskanNjb21wLkFTU1VNRV9OT19OQVRJVkVfU0VUPSExOyRqc2NvbXAuU0lNUExFX0ZST1VORF9QT0xZRklMTD0hMTskanNjb21wLklTT0xBVEVfUE9MWUZJTExTPSExOyRqc2NvbXAuRk9SQ0VfUE9MWUZJTExfUFJPTUlTRT0hMTskanNjb21wLkZPUkNFX1BPTFlGSUxMX1BST01JU0VfV0hFTl9OT19VTkhBTkRMRURfUkVKRUNUSU9OPSExOyRqc2NvbXAuZGVmaW5lUHJvcGVydHk9JGpzY29tcC5BU1NVTUVfRVM1fHwiZnVuY3Rpb24iPT10eXBlb2YgT2JqZWN0LmRlZmluZVByb3BlcnRpZXM\/T2JqZWN0LmRlZmluZVByb3BlcnR5OmZ1bmN0aW9uKGIsaCxtKXtpZihiPT1BcnJheS5wcm90b3R5cGV8fGI9PU9iamVjdC5wcm90b3R5cGUpcmV0dXJuIGI7YltoXT1tLnZhbHVlO3JldHVybiBifTsKJGpzY29tcC5nZXRHbG9iYWw9ZnVuY3Rpb24oYil7Yj1bIm9iamVjdCI9PXR5cGVvZiBnbG9iYWxUaGlzJiZnbG9iYWxUaGlzLGIsIm9iamVjdCI9PXR5cGVvZiB3aW5kb3cmJndpbmRvdywib2JqZWN0Ij09dHlwZW9mIHNlbGYmJnNlbGYsIm9iamVjdCI9PXR5cGVvZiBnbG9iYWwmJmdsb2JhbF07Zm9yKHZhciBoPTA7aDxiLmxlbmd0aDsrK2gpe3ZhciBtPWJbaF07aWYobSYmbS5NYXRoPT1NYXRoKXJldHVybiBtfXRocm93IEVycm9yKCJDYW5ub3QgZmluZCBnbG9iYWwgb2JqZWN0Iik7fTskanNjb21wLmdsb2JhbD0kanNjb21wLmdldEdsb2JhbCh0aGlzKTskanNjb21wLklTX1NZTUJPTF9OQVRJVkU9ImZ1bmN0aW9uIj09PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT09dHlwZW9mIFN5bWJvbCgieCIpOyRqc2NvbXAuVFJVU1RfRVM2X1BPTFlGSUxMUz0hJGpzY29tcC5JU09MQVRFX1BPTFlGSUxMU3x8JGpzY29tcC5JU19TWU1CT0xfTkFUSVZFOyRqc2NvbXAucG9seWZpbGxzPXt9OwokanNjb21wLnByb3BlcnR5VG9Qb2x5ZmlsbFN5bWJvbD17fTskanNjb21wLlBPTFlGSUxMX1BSRUZJWD0iJGpzY3AkIjt2YXIgJGpzY29tcCRsb29rdXBQb2x5ZmlsbGVkVmFsdWU9ZnVuY3Rpb24oYixoKXt2YXIgbT0kanNjb21wLnByb3BlcnR5VG9Qb2x5ZmlsbFN5bWJvbFtoXTtpZihudWxsPT1tKXJldHVybiBiW2hdO209YlttXTtyZXR1cm4gdm9pZCAwIT09bT9tOmJbaF19OyRqc2NvbXAucG9seWZpbGw9ZnVuY3Rpb24oYixoLG0sbil7aCYmKCRqc2NvbXAuSVNPTEFURV9QT0xZRklMTFM\/JGpzY29tcC5wb2x5ZmlsbElzb2xhdGVkKGIsaCxtLG4pOiRqc2NvbXAucG9seWZpbGxVbmlzb2xhdGVkKGIsaCxtLG4pKX07CiRqc2NvbXAucG9seWZpbGxVbmlzb2xhdGVkPWZ1bmN0aW9uKGIsaCxtLG4pe209JGpzY29tcC5nbG9iYWw7Yj1iLnNwbGl0KCIuIik7Zm9yKG49MDtuPGIubGVuZ3RoLTE7bisrKXt2YXIgcT1iW25dO2lmKCEocSBpbiBtKSlyZXR1cm47bT1tW3FdfWI9YltiLmxlbmd0aC0xXTtuPW1bYl07aD1oKG4pO2ghPW4mJm51bGwhPWgmJiRqc2NvbXAuZGVmaW5lUHJvcGVydHkobSxiLHtjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6aH0pfTsKJGpzY29tcC5wb2x5ZmlsbElzb2xhdGVkPWZ1bmN0aW9uKGIsaCxtLG4pe3ZhciBxPWIuc3BsaXQoIi4iKTtiPTE9PT1xLmxlbmd0aDtuPXFbMF07bj0hYiYmbiBpbiAkanNjb21wLnBvbHlmaWxscz8kanNjb21wLnBvbHlmaWxsczokanNjb21wLmdsb2JhbDtmb3IodmFyIHY9MDt2PHEubGVuZ3RoLTE7disrKXt2YXIgeT1xW3ZdO2lmKCEoeSBpbiBuKSlyZXR1cm47bj1uW3ldfXE9cVtxLmxlbmd0aC0xXTttPSRqc2NvbXAuSVNfU1lNQk9MX05BVElWRSYmImVzNiI9PT1tP25bcV06bnVsbDtoPWgobSk7bnVsbCE9aCYmKGI\/JGpzY29tcC5kZWZpbmVQcm9wZXJ0eSgkanNjb21wLnBvbHlmaWxscyxxLHtjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6aH0pOmghPT1tJiYodm9pZCAwPT09JGpzY29tcC5wcm9wZXJ0eVRvUG9seWZpbGxTeW1ib2xbcV0mJihtPTFFOSpNYXRoLnJhbmRvbSgpPj4+MCwkanNjb21wLnByb3BlcnR5VG9Qb2x5ZmlsbFN5bWJvbFtxXT0kanNjb21wLklTX1NZTUJPTF9OQVRJVkU\/CiRqc2NvbXAuZ2xvYmFsLlN5bWJvbChxKTokanNjb21wLlBPTFlGSUxMX1BSRUZJWCttKyIkIitxKSwkanNjb21wLmRlZmluZVByb3BlcnR5KG4sJGpzY29tcC5wcm9wZXJ0eVRvUG9seWZpbGxTeW1ib2xbcV0se2NvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpofSkpKX07JGpzY29tcC51bmRlcnNjb3JlUHJvdG9DYW5CZVNldD1mdW5jdGlvbigpe3ZhciBiPXthOiEwfSxoPXt9O3RyeXtyZXR1cm4gaC5fX3Byb3RvX189YixoLmF9Y2F0Y2gobSl7fXJldHVybiExfTsKJGpzY29tcC5zZXRQcm90b3R5cGVPZj0kanNjb21wLlRSVVNUX0VTNl9QT0xZRklMTFMmJiJmdW5jdGlvbiI9PXR5cGVvZiBPYmplY3Quc2V0UHJvdG90eXBlT2Y\/T2JqZWN0LnNldFByb3RvdHlwZU9mOiRqc2NvbXAudW5kZXJzY29yZVByb3RvQ2FuQmVTZXQoKT9mdW5jdGlvbihiLGgpe2IuX19wcm90b19fPWg7aWYoYi5fX3Byb3RvX18hPT1oKXRocm93IG5ldyBUeXBlRXJyb3IoYisiIGlzIG5vdCBleHRlbnNpYmxlIik7cmV0dXJuIGJ9Om51bGw7JGpzY29tcC5hcnJheUl0ZXJhdG9ySW1wbD1mdW5jdGlvbihiKXt2YXIgaD0wO3JldHVybiBmdW5jdGlvbigpe3JldHVybiBoPGIubGVuZ3RoP3tkb25lOiExLHZhbHVlOmJbaCsrXX06e2RvbmU6ITB9fX07JGpzY29tcC5hcnJheUl0ZXJhdG9yPWZ1bmN0aW9uKGIpe3JldHVybntuZXh0OiRqc2NvbXAuYXJyYXlJdGVyYXRvckltcGwoYil9fTsKJGpzY29tcC5tYWtlSXRlcmF0b3I9ZnVuY3Rpb24oYil7dmFyIGg9InVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJlN5bWJvbC5pdGVyYXRvciYmYltTeW1ib2wuaXRlcmF0b3JdO3JldHVybiBoP2guY2FsbChiKTokanNjb21wLmFycmF5SXRlcmF0b3IoYil9OyRqc2NvbXAuZ2VuZXJhdG9yPXt9OyRqc2NvbXAuZ2VuZXJhdG9yLmVuc3VyZUl0ZXJhdG9yUmVzdWx0SXNPYmplY3RfPWZ1bmN0aW9uKGIpe2lmKCEoYiBpbnN0YW5jZW9mIE9iamVjdCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiSXRlcmF0b3IgcmVzdWx0ICIrYisiIGlzIG5vdCBhbiBvYmplY3QiKTt9OwokanNjb21wLmdlbmVyYXRvci5Db250ZXh0PWZ1bmN0aW9uKCl7dGhpcy5pc1J1bm5pbmdfPSExO3RoaXMueWllbGRBbGxJdGVyYXRvcl89bnVsbDt0aGlzLnlpZWxkUmVzdWx0PXZvaWQgMDt0aGlzLm5leHRBZGRyZXNzPTE7dGhpcy5maW5hbGx5QWRkcmVzc189dGhpcy5jYXRjaEFkZHJlc3NfPTA7dGhpcy5maW5hbGx5Q29udGV4dHNfPXRoaXMuYWJydXB0Q29tcGxldGlvbl89bnVsbH07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuc3RhcnRfPWZ1bmN0aW9uKCl7aWYodGhpcy5pc1J1bm5pbmdfKXRocm93IG5ldyBUeXBlRXJyb3IoIkdlbmVyYXRvciBpcyBhbHJlYWR5IHJ1bm5pbmciKTt0aGlzLmlzUnVubmluZ189ITB9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLnN0b3BfPWZ1bmN0aW9uKCl7dGhpcy5pc1J1bm5pbmdfPSExfTsKJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuanVtcFRvRXJyb3JIYW5kbGVyXz1mdW5jdGlvbigpe3RoaXMubmV4dEFkZHJlc3M9dGhpcy5jYXRjaEFkZHJlc3NffHx0aGlzLmZpbmFsbHlBZGRyZXNzX307JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUubmV4dF89ZnVuY3Rpb24oYil7dGhpcy55aWVsZFJlc3VsdD1ifTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS50aHJvd189ZnVuY3Rpb24oYil7dGhpcy5hYnJ1cHRDb21wbGV0aW9uXz17ZXhjZXB0aW9uOmIsaXNFeGNlcHRpb246ITB9O3RoaXMuanVtcFRvRXJyb3JIYW5kbGVyXygpfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5yZXR1cm49ZnVuY3Rpb24oYil7dGhpcy5hYnJ1cHRDb21wbGV0aW9uXz17cmV0dXJuOmJ9O3RoaXMubmV4dEFkZHJlc3M9dGhpcy5maW5hbGx5QWRkcmVzc199OwokanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5qdW1wVGhyb3VnaEZpbmFsbHlCbG9ja3M9ZnVuY3Rpb24oYil7dGhpcy5hYnJ1cHRDb21wbGV0aW9uXz17anVtcFRvOmJ9O3RoaXMubmV4dEFkZHJlc3M9dGhpcy5maW5hbGx5QWRkcmVzc199OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLnlpZWxkPWZ1bmN0aW9uKGIsaCl7dGhpcy5uZXh0QWRkcmVzcz1oO3JldHVybnt2YWx1ZTpifX07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUueWllbGRBbGw9ZnVuY3Rpb24oYixoKXtiPSRqc2NvbXAubWFrZUl0ZXJhdG9yKGIpO3ZhciBtPWIubmV4dCgpOyRqc2NvbXAuZ2VuZXJhdG9yLmVuc3VyZUl0ZXJhdG9yUmVzdWx0SXNPYmplY3RfKG0pO2lmKG0uZG9uZSl0aGlzLnlpZWxkUmVzdWx0PW0udmFsdWUsdGhpcy5uZXh0QWRkcmVzcz1oO2Vsc2UgcmV0dXJuIHRoaXMueWllbGRBbGxJdGVyYXRvcl89Yix0aGlzLnlpZWxkKG0udmFsdWUsaCl9OwokanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5qdW1wVG89ZnVuY3Rpb24oYil7dGhpcy5uZXh0QWRkcmVzcz1ifTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5qdW1wVG9FbmQ9ZnVuY3Rpb24oKXt0aGlzLm5leHRBZGRyZXNzPTB9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLnNldENhdGNoRmluYWxseUJsb2Nrcz1mdW5jdGlvbihiLGgpe3RoaXMuY2F0Y2hBZGRyZXNzXz1iO3ZvaWQgMCE9aCYmKHRoaXMuZmluYWxseUFkZHJlc3NfPWgpfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5zZXRGaW5hbGx5QmxvY2s9ZnVuY3Rpb24oYil7dGhpcy5jYXRjaEFkZHJlc3NfPTA7dGhpcy5maW5hbGx5QWRkcmVzc189Ynx8MH07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUubGVhdmVUcnlCbG9jaz1mdW5jdGlvbihiLGgpe3RoaXMubmV4dEFkZHJlc3M9Yjt0aGlzLmNhdGNoQWRkcmVzc189aHx8MH07CiRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmVudGVyQ2F0Y2hCbG9jaz1mdW5jdGlvbihiKXt0aGlzLmNhdGNoQWRkcmVzc189Ynx8MDtiPXRoaXMuYWJydXB0Q29tcGxldGlvbl8uZXhjZXB0aW9uO3RoaXMuYWJydXB0Q29tcGxldGlvbl89bnVsbDtyZXR1cm4gYn07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuZW50ZXJGaW5hbGx5QmxvY2s9ZnVuY3Rpb24oYixoLG0pe20\/dGhpcy5maW5hbGx5Q29udGV4dHNfW21dPXRoaXMuYWJydXB0Q29tcGxldGlvbl86dGhpcy5maW5hbGx5Q29udGV4dHNfPVt0aGlzLmFicnVwdENvbXBsZXRpb25fXTt0aGlzLmNhdGNoQWRkcmVzc189Ynx8MDt0aGlzLmZpbmFsbHlBZGRyZXNzXz1ofHwwfTsKJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUubGVhdmVGaW5hbGx5QmxvY2s9ZnVuY3Rpb24oYixoKXtoPXRoaXMuZmluYWxseUNvbnRleHRzXy5zcGxpY2UoaHx8MClbMF07aWYoaD10aGlzLmFicnVwdENvbXBsZXRpb25fPXRoaXMuYWJydXB0Q29tcGxldGlvbl98fGgpe2lmKGguaXNFeGNlcHRpb24pcmV0dXJuIHRoaXMuanVtcFRvRXJyb3JIYW5kbGVyXygpO3ZvaWQgMCE9aC5qdW1wVG8mJnRoaXMuZmluYWxseUFkZHJlc3NfPGguanVtcFRvPyh0aGlzLm5leHRBZGRyZXNzPWguanVtcFRvLHRoaXMuYWJydXB0Q29tcGxldGlvbl89bnVsbCk6dGhpcy5uZXh0QWRkcmVzcz10aGlzLmZpbmFsbHlBZGRyZXNzX31lbHNlIHRoaXMubmV4dEFkZHJlc3M9Yn07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuZm9ySW49ZnVuY3Rpb24oYil7cmV0dXJuIG5ldyAkanNjb21wLmdlbmVyYXRvci5Db250ZXh0LlByb3BlcnR5SXRlcmF0b3IoYil9OwokanNjb21wLmdlbmVyYXRvci5Db250ZXh0LlByb3BlcnR5SXRlcmF0b3I9ZnVuY3Rpb24oYil7dGhpcy5vYmplY3RfPWI7dGhpcy5wcm9wZXJ0aWVzXz1bXTtmb3IodmFyIGggaW4gYil0aGlzLnByb3BlcnRpZXNfLnB1c2goaCk7dGhpcy5wcm9wZXJ0aWVzXy5yZXZlcnNlKCl9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQuUHJvcGVydHlJdGVyYXRvci5wcm90b3R5cGUuZ2V0TmV4dD1mdW5jdGlvbigpe2Zvcig7MDx0aGlzLnByb3BlcnRpZXNfLmxlbmd0aDspe3ZhciBiPXRoaXMucHJvcGVydGllc18ucG9wKCk7aWYoYiBpbiB0aGlzLm9iamVjdF8pcmV0dXJuIGJ9cmV0dXJuIG51bGx9OyRqc2NvbXAuZ2VuZXJhdG9yLkVuZ2luZV89ZnVuY3Rpb24oYil7dGhpcy5jb250ZXh0Xz1uZXcgJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dDt0aGlzLnByb2dyYW1fPWJ9OwokanNjb21wLmdlbmVyYXRvci5FbmdpbmVfLnByb3RvdHlwZS5uZXh0Xz1mdW5jdGlvbihiKXt0aGlzLmNvbnRleHRfLnN0YXJ0XygpO2lmKHRoaXMuY29udGV4dF8ueWllbGRBbGxJdGVyYXRvcl8pcmV0dXJuIHRoaXMueWllbGRBbGxTdGVwXyh0aGlzLmNvbnRleHRfLnlpZWxkQWxsSXRlcmF0b3JfLm5leHQsYix0aGlzLmNvbnRleHRfLm5leHRfKTt0aGlzLmNvbnRleHRfLm5leHRfKGIpO3JldHVybiB0aGlzLm5leHRTdGVwXygpfTsKJGpzY29tcC5nZW5lcmF0b3IuRW5naW5lXy5wcm90b3R5cGUucmV0dXJuXz1mdW5jdGlvbihiKXt0aGlzLmNvbnRleHRfLnN0YXJ0XygpO3ZhciBoPXRoaXMuY29udGV4dF8ueWllbGRBbGxJdGVyYXRvcl87aWYoaClyZXR1cm4gdGhpcy55aWVsZEFsbFN0ZXBfKCJyZXR1cm4iaW4gaD9oWyJyZXR1cm4iXTpmdW5jdGlvbihtKXtyZXR1cm57dmFsdWU6bSxkb25lOiEwfX0sYix0aGlzLmNvbnRleHRfLnJldHVybik7dGhpcy5jb250ZXh0Xy5yZXR1cm4oYik7cmV0dXJuIHRoaXMubmV4dFN0ZXBfKCl9OwokanNjb21wLmdlbmVyYXRvci5FbmdpbmVfLnByb3RvdHlwZS50aHJvd189ZnVuY3Rpb24oYil7dGhpcy5jb250ZXh0Xy5zdGFydF8oKTtpZih0aGlzLmNvbnRleHRfLnlpZWxkQWxsSXRlcmF0b3JfKXJldHVybiB0aGlzLnlpZWxkQWxsU3RlcF8odGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yX1sidGhyb3ciXSxiLHRoaXMuY29udGV4dF8ubmV4dF8pO3RoaXMuY29udGV4dF8udGhyb3dfKGIpO3JldHVybiB0aGlzLm5leHRTdGVwXygpfTsKJGpzY29tcC5nZW5lcmF0b3IuRW5naW5lXy5wcm90b3R5cGUueWllbGRBbGxTdGVwXz1mdW5jdGlvbihiLGgsbSl7dHJ5e3ZhciBuPWIuY2FsbCh0aGlzLmNvbnRleHRfLnlpZWxkQWxsSXRlcmF0b3JfLGgpOyRqc2NvbXAuZ2VuZXJhdG9yLmVuc3VyZUl0ZXJhdG9yUmVzdWx0SXNPYmplY3RfKG4pO2lmKCFuLmRvbmUpcmV0dXJuIHRoaXMuY29udGV4dF8uc3RvcF8oKSxuO3ZhciBxPW4udmFsdWV9Y2F0Y2godil7cmV0dXJuIHRoaXMuY29udGV4dF8ueWllbGRBbGxJdGVyYXRvcl89bnVsbCx0aGlzLmNvbnRleHRfLnRocm93Xyh2KSx0aGlzLm5leHRTdGVwXygpfXRoaXMuY29udGV4dF8ueWllbGRBbGxJdGVyYXRvcl89bnVsbDttLmNhbGwodGhpcy5jb250ZXh0XyxxKTtyZXR1cm4gdGhpcy5uZXh0U3RlcF8oKX07CiRqc2NvbXAuZ2VuZXJhdG9yLkVuZ2luZV8ucHJvdG90eXBlLm5leHRTdGVwXz1mdW5jdGlvbigpe2Zvcig7dGhpcy5jb250ZXh0Xy5uZXh0QWRkcmVzczspdHJ5e3ZhciBiPXRoaXMucHJvZ3JhbV8odGhpcy5jb250ZXh0Xyk7aWYoYilyZXR1cm4gdGhpcy5jb250ZXh0Xy5zdG9wXygpLHt2YWx1ZTpiLnZhbHVlLGRvbmU6ITF9fWNhdGNoKGgpe3RoaXMuY29udGV4dF8ueWllbGRSZXN1bHQ9dm9pZCAwLHRoaXMuY29udGV4dF8udGhyb3dfKGgpfXRoaXMuY29udGV4dF8uc3RvcF8oKTtpZih0aGlzLmNvbnRleHRfLmFicnVwdENvbXBsZXRpb25fKXtiPXRoaXMuY29udGV4dF8uYWJydXB0Q29tcGxldGlvbl87dGhpcy5jb250ZXh0Xy5hYnJ1cHRDb21wbGV0aW9uXz1udWxsO2lmKGIuaXNFeGNlcHRpb24pdGhyb3cgYi5leGNlcHRpb247cmV0dXJue3ZhbHVlOmIucmV0dXJuLGRvbmU6ITB9fXJldHVybnt2YWx1ZTp2b2lkIDAsZG9uZTohMH19OwokanNjb21wLmdlbmVyYXRvci5HZW5lcmF0b3JfPWZ1bmN0aW9uKGIpe3RoaXMubmV4dD1mdW5jdGlvbihoKXtyZXR1cm4gYi5uZXh0XyhoKX07dGhpcy50aHJvdz1mdW5jdGlvbihoKXtyZXR1cm4gYi50aHJvd18oaCl9O3RoaXMucmV0dXJuPWZ1bmN0aW9uKGgpe3JldHVybiBiLnJldHVybl8oaCl9O3RoaXNbU3ltYm9sLml0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfX07JGpzY29tcC5nZW5lcmF0b3IuY3JlYXRlR2VuZXJhdG9yPWZ1bmN0aW9uKGIsaCl7aD1uZXcgJGpzY29tcC5nZW5lcmF0b3IuR2VuZXJhdG9yXyhuZXcgJGpzY29tcC5nZW5lcmF0b3IuRW5naW5lXyhoKSk7JGpzY29tcC5zZXRQcm90b3R5cGVPZiYmYi5wcm90b3R5cGUmJiRqc2NvbXAuc2V0UHJvdG90eXBlT2YoaCxiLnByb3RvdHlwZSk7cmV0dXJuIGh9OwokanNjb21wLmFzeW5jRXhlY3V0ZVByb21pc2VHZW5lcmF0b3I9ZnVuY3Rpb24oYil7ZnVuY3Rpb24gaChuKXtyZXR1cm4gYi5uZXh0KG4pfWZ1bmN0aW9uIG0obil7cmV0dXJuIGIudGhyb3cobil9cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKG4scSl7ZnVuY3Rpb24gdih5KXt5LmRvbmU\/bih5LnZhbHVlKTpQcm9taXNlLnJlc29sdmUoeS52YWx1ZSkudGhlbihoLG0pLnRoZW4odixxKX12KGIubmV4dCgpKX0pfTskanNjb21wLmFzeW5jRXhlY3V0ZVByb21pc2VHZW5lcmF0b3JGdW5jdGlvbj1mdW5jdGlvbihiKXtyZXR1cm4gJGpzY29tcC5hc3luY0V4ZWN1dGVQcm9taXNlR2VuZXJhdG9yKGIoKSl9OyRqc2NvbXAuYXN5bmNFeGVjdXRlUHJvbWlzZUdlbmVyYXRvclByb2dyYW09ZnVuY3Rpb24oYil7cmV0dXJuICRqc2NvbXAuYXN5bmNFeGVjdXRlUHJvbWlzZUdlbmVyYXRvcihuZXcgJGpzY29tcC5nZW5lcmF0b3IuR2VuZXJhdG9yXyhuZXcgJGpzY29tcC5nZW5lcmF0b3IuRW5naW5lXyhiKSkpfTsKZnVuY3Rpb24gaW5pdGlhbGl6ZUZpbmFuY2VNdWx0aVN0ZXAoYil7ZnVuY3Rpb24gaChkKXtzd2l0Y2goZCl7Y2FzZSAiRW1haWwgcHJvdmlkZWQiOmNhc2UgIlBob25lIHByb3ZpZGVkIjpPfHwoJCgiI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0iLGIpLnRyaWdnZXIoInBvcHVwaXplci5zdWJtaXR0ZWQiKSxPPSEwKX0iZnVuY3Rpb24iPT09dHlwZW9mIGdhVHJhY2smJmdhVHJhY2soIl90cmFja0V2ZW50IiwiVXNlZC1TUlAtRmluYW5jZS1Qb3B1cCIsZCx3aW5kb3cubG9jYXRpb24uaHJlZiwxKX1mdW5jdGlvbiBtKGQpeyQuYWpheCh7dXJsOiIvIit3KyIvYWpheC9nZXRCYW5uZXJTZWFyY2hCYXJNYWtlcz93c3dpZHRoPTAiLGRhdGFUeXBlOiJKU09OIixkYXRhOnt0eXBlOmQudG9Mb3dlckNhc2UoKX0sc3VjY2VzczpmdW5jdGlvbihjKXskKCIjZmluYW5jZU11bHRpc3RlcE1ha2UiLGIpLmh0bWwoJCgiI2ZpbmFuY2VNdWx0aXN0ZXBNYWtlIG9wdGlvbjpmaXJzdCIsCmIpWzBdLm91dGVySFRNTCk7JCgiI2ZpbmFuY2VNdWx0aXN0ZXBNb2RlbCIsYikuaHRtbCgkKCIjZmluYW5jZU11bHRpc3RlcE1vZGVsIG9wdGlvbjpmaXJzdCIsYilbMF0ub3V0ZXJIVE1MKTskKCIjZmluYW5jZU11bHRpc3RlcFRyaW0iLGIpLmh0bWwoJCgiI2ZpbmFuY2VNdWx0aXN0ZXBUcmltIG9wdGlvbjpmaXJzdCIsYilbMF0ub3V0ZXJIVE1MKTskLmVhY2goYyxmdW5jdGlvbihlLGYpeyQoIiNmaW5hbmNlTXVsdGlzdGVwTWFrZSIsYikuYXBwZW5kKCc8b3B0aW9uIHZhbHVlPSInK2YubWFrZSsnIj4nK2YudGl0bGUyKyI8L29wdGlvbj4iKX0pfX0pfWZ1bmN0aW9uIG4oZCxjKXskLmFqYXgoe3VybDoiLyIrdysiL2FqYXgvZ2V0QmFubmVyU2VhcmNoQmFyTW9kZWxzP3dzd2lkdGg9MCIsZGF0YVR5cGU6IkpTT04iLGRhdGE6e21ha2U6YnRvYShjKSx0eXBlOmQudG9Mb3dlckNhc2UoKX0sc3VjY2VzczpmdW5jdGlvbihlKXskKCIjZmluYW5jZU11bHRpc3RlcE1vZGVsIiwKYikuaHRtbCgkKCIjZmluYW5jZU11bHRpc3RlcE1vZGVsIG9wdGlvbjpmaXJzdCIsYilbMF0ub3V0ZXJIVE1MKTskKCIjZmluYW5jZU11bHRpc3RlcFRyaW0iLGIpLmh0bWwoJCgiI2ZpbmFuY2VNdWx0aXN0ZXBUcmltIG9wdGlvbjpmaXJzdCIsYilbMF0ub3V0ZXJIVE1MKTskLmVhY2goZSxmdW5jdGlvbihmLGcpeyQoIiNmaW5hbmNlTXVsdGlzdGVwTW9kZWwiLGIpLmFwcGVuZCgnPG9wdGlvbiBkYXRhLW1vZGVsPSInK2cubW9kZWxOYW1lKyciIGRhdGEteWVhcj0iJytnLnllYXIrJyIgdmFsdWU9IicrZy50aXRsZTIrJyI+JytnLnRpdGxlMisiPC9vcHRpb24+Iil9KX19KX1mdW5jdGlvbiBxKGQsYyxlKXskLmFqYXgoe3VybDoiLyIrdysiL2FqYXgvZ2V0TmV3VHJpbXM\/d3N3aWR0aD0wIixkYXRhVHlwZToiSlNPTiIsZGF0YTp7bWFrZTpkLG1vZGVsOmMseWVhcjplfSxzdWNjZXNzOmZ1bmN0aW9uKGYpeyQoIiNmaW5hbmNlTXVsdGlzdGVwVHJpbSIsCmIpLmh0bWwoJCgiI2ZpbmFuY2VNdWx0aXN0ZXBUcmltIG9wdGlvbjpmaXJzdCIsYilbMF0ub3V0ZXJIVE1MKTskLmVhY2goZixmdW5jdGlvbihnLGwpeyQoIiNmaW5hbmNlTXVsdGlzdGVwVHJpbSIsYikuYXBwZW5kKCc8b3B0aW9uIGRhdGEtcHJpY2U9IicrbC5wcmljZSsnIiBkYXRhLXN0eWxlaWQ9IicrbC5zdHlsZWlkKyciIHZhbHVlPSInK2wudHJpbSsnIj4nK2wudHJpbSsiPC9vcHRpb24+Iil9KX19KX1mdW5jdGlvbiB2KGQsYyl7JC5hamF4KHt1cmw6Ii8iK3crIi9hamF4L2dldEludmVudG9yeVRyaW1zP3dzd2lkdGg9MCIsZGF0YVR5cGU6IkpTT04iLGRhdGE6e21ha2U6ZCxtb2RlbDpjfSxzdWNjZXNzOmZ1bmN0aW9uKGUpeyQoIiNmaW5hbmNlTXVsdGlzdGVwVHJpbSIsYikuaHRtbCgkKCIjZmluYW5jZU11bHRpc3RlcFRyaW0gb3B0aW9uOmZpcnN0IixiKVswXS5vdXRlckhUTUwpOyQuZWFjaChlLGZ1bmN0aW9uKGYsZyl7JCgiI2ZpbmFuY2VNdWx0aXN0ZXBUcmltIiwKYikuYXBwZW5kKCc8b3B0aW9uIGRhdGEtcHJpY2U9IicrZy5vcmlnaW5hbHByaWNlKyciIGRhdGEtdmVoaWNsZWlkPSInK2cudmVoaWNsZWlkKyciIGRhdGEteWVhcj0iJytnLnllYXIrJyIgZGF0YS1pc25ldz0iJytnLmlzbmV3KyciIGRhdGEtaXNkZW1vPSInK2cuZGVtbysnIiBkYXRhLXN0b2NrbnVtYmVyPSInK2cuc3RvY2tudW1iZXIrJyIgZGF0YS1taWxlYWdlPSInK2cubWlsZWFnZSsnIiBkYXRhLXN0eWxlaWQ9IicrZy5zdHlsZWlkKyciIHZhbHVlPSInK2cudHJpbSsnIj4nK2cudGl0bGUrIjwvb3B0aW9uPiIpfSl9fSl9ZnVuY3Rpb24geShkKXskLmFqYXgoe3VybDoiLyIrdysiL2FqYXgvZ2V0VXNlZENhbGN1bGF0b3JIVE1MP3dzd2lkdGg9MCIsZGF0YVR5cGU6IkpTT04iLGRhdGE6e2NhcmlkOmR9LHN1Y2Nlc3M6ZnVuY3Rpb24oYyl7Yy52YWxpZD8oJCgiI2ZpbmFuY2VNdWx0aXN0ZXBVc2VkQ2FsY3VsYXRvciIsYikuaHRtbChjLmh0bWwpLAokKCIjZmluYW5jZU11bHRpc3RlcFVzZWRDYWxjdWxhdG9yIixiKS5maW5kKCIuY2FsYy1mb3JtIikuZmluZCgiLnVzZWRDYWxjdWxhdG9yRG93blBheW1lbnQiKS5hZnRlcigkKCIuZmluYW5jZU11bHRpc3RlcFVzZWRDYWxjdWxhdG9yVHJhZGVJbiIsYikuaHRtbCgpKSxWKCksJCgiI2ZpbmFuY2VNdWx0aXN0ZXBVc2VkQ2FsY3VsYXRvciAucGF5bWVudENhbGN1bGF0b3JUcmFkZUluRmluYWwiKS52YWwoYS5mb3JtZGF0YS50cmFkZUluVmFsdWUpLCQoIiNmaW5hbmNlTXVsdGlzdGVwVXNlZENhbGN1bGF0b3IgLnBheW1lbnRDYWxjdWxhdG9yVHJhZGVJbkZpbmFsIikuYXR0cigibWF4IixhLmZvcm1kYXRhLnRyYWRlSW5WYWx1ZSksJCgiI2ZpbmFuY2VNdWx0aXN0ZXBVc2VkQ2FsY3VsYXRvciIsYikuc2hvdygpKTooYS5mb3JtZGF0YS5ub1BheW1lbnQ9ITAsJCgiI2ZpbmFuY2VNdWx0aXN0ZXBVc2VkQ2FsY3VsYXRvciIsYikuaGlkZSgpLGEubmV4dCghMCkpfX0pfWZ1bmN0aW9uIFYoKXskKCIuZmluYW5jZU11bHRpc3RlcFVzZWRDYWxjdWxhdG9yIC5kb3ducGF5bWVudCIpLm9uKCJibHVyIiwKZnVuY3Rpb24oKXtDKCl9KTskKCIuZmluYW5jZU11bHRpc3RlcFVzZWRDYWxjdWxhdG9yIC5ub09mTW9udGhzIikub24oImNoYW5nZSIsZnVuY3Rpb24oKXt2YXIgZD0kKHRoaXMpLmZpbmQoIm9wdGlvbjpzZWxlY3RlZCIpOyQoIi5maW5hbmNlTXVsdGlzdGVwVXNlZENhbGN1bGF0b3IgLmludGVyZXN0cmF0ZSIpLnZhbChkLmF0dHIoImRhdGEtcmF0ZSIpKTtDKCl9KTskKCIuZmluYW5jZU11bHRpc3RlcFVzZWRDYWxjdWxhdG9yIC5wYXltZW50RnJlcXVlbmN5Iikub24oImNoYW5nZSIsZnVuY3Rpb24oKXtDKCl9KTtDKCl9ZnVuY3Rpb24gQygpe3ZhciBkPXBhcnNlRmxvYXQoJCgiLmZpbmFuY2VNdWx0aXN0ZXBVc2VkQ2FsY3VsYXRvciAuaW50ZXJlc3RyYXRlIixiKS52YWwoKS5yZXBsYWNlKCIsIiwiLiIpKS50b0ZpeGVkKDIpLzEwMCxjPXBhcnNlRmxvYXQoJCgiLmZpbmFuY2VNdWx0aXN0ZXBVc2VkQ2FsY3VsYXRvciAubm9PZk1vbnRocyIsYikudmFsKCkpLzEyLGU9cGFyc2VGbG9hdCgkKCIuZmluYW5jZU11bHRpc3RlcFVzZWRDYWxjdWxhdG9yIC5sb2FuYW1vdW50IiwKYikudmFsKCkpLnRvRml4ZWQoMik7JCgiLmZpbmFuY2VNdWx0aXN0ZXBVc2VkQ2FsY3VsYXRvciAuZmVlYW1vdW50IixiKS5sZW5ndGgmJihlPXBhcnNlRmxvYXQoZSkrcGFyc2VGbG9hdCgkKCIuZmluYW5jZU11bHRpc3RlcFVzZWRDYWxjdWxhdG9yIC5mZWVhbW91bnQiLGIpLnZhbCgpLnJlcGxhY2UoIiwiLCIiKSkpOzE9PSQoIiN1c2V0YXhlcyIsYikudmFsKCkmJihlKj1wYXJzZUZsb2F0KCQoIiN0YXhlcyIpLnZhbCgpKS50b0ZpeGVkKDIpLzEwMCsxKTswPCQoIi5maW5hbmNlTXVsdGlzdGVwVXNlZENhbGN1bGF0b3IgLmRvd25wYXltZW50IixiKS52YWwoKSYmKGUtPXBhcnNlRmxvYXQoJCgiLmZpbmFuY2VNdWx0aXN0ZXBVc2VkQ2FsY3VsYXRvciAuZG93bnBheW1lbnQiLGIpLnZhbCgpKS50b0ZpeGVkKDIpKTt2YXIgZj0iIixnPTEyO3N3aXRjaCgkKCIuZmluYW5jZU11bHRpc3RlcFVzZWRDYWxjdWxhdG9yIC5wYXltZW50RnJlcXVlbmN5IixiKS52YWwoKSl7Y2FzZSAid2VlayI6Zz0KNTI7Zj0kKCIjd2Vla1RleHQiKS52YWwoKTticmVhaztjYXNlICIyd2Vla3MiOmc9MjY7Zj0kKCIjMndlZWtzVGV4dCIpLnZhbCgpO2JyZWFrO2Nhc2UgIm1vbnRobHkiOmY9JCgiI21vbnRobHlUZXh0IikudmFsKCk7Zz0xMjticmVhaztjYXNlICJiaW1vbnRobHkiOmY9JCgiI2JpbW9udGhseVRleHQiKS52YWwoKSxnPTI0fWMqPWc7MDxkPyhkLz1nLGc9TWF0aC5wb3coZCsxLGMpLGUqPWQqZy8oZy0xKSk6ZS89YztlPU1hdGgucm91bmQoMTAwKmUpLzEwMDtpc05hTihlKSYmKGU9MCk7JCgiLmZpbmFuY2VNdWx0aXN0ZXBVc2VkQ2FsY3VsYXRvciAub3V0cHV0cHJpY2UiLGIpLnZhbCgiJCIrZSk7JCgiLmZpbmFuY2VNdWx0aXN0ZXBVc2VkQ2FsY3VsYXRvciAub3V0cHV0cHJpY2UtdHh0IixiKS5odG1sKCIkIitlKTtmPSQoIiNlc3RpbWRhdGVkUGF5bWVudFRleHQiLGIpLnZhbCgpLnJlcGxhY2UoIiMjRlJFUVVFTkNZIyMiLGYpOyQoIi5maW5hbmNlTXVsdGlzdGVwVXNlZENhbGN1bGF0b3IgLmVzdGltYXRlZFRleHQiLApiKS5odG1sKCI8c3Ryb25nPiIrZisiPC9zdHJvbmc+Iik7Zj0kKCJib2R5IikuaGFzQ2xhc3MoIkZSRU5DSCIpPyJGaW5hbmNlbWVudCI6IkZpbmFuY2luZyI7YS5mb3JtZGF0YS5wYXltZW50VHlwZT1mO2EuZm9ybWRhdGEucGF5bWVudFR5cGVSZWFsPSJmaW5hbmNpbmciO2EuZm9ybWRhdGEucGF5bWVudFRlcm09JCgiLmZpbmFuY2VNdWx0aXN0ZXBVc2VkQ2FsY3VsYXRvciAubm9PZk1vbnRocyIsYikudmFsKCk7YS5mb3JtZGF0YS5wYXltZW50VmFsdWU9ZTthLmZvcm1kYXRhLnBheW1lbnREb3duUGF5bWVudD0kKCIuZmluYW5jZU11bHRpc3RlcFVzZWRDYWxjdWxhdG9yIC5kb3ducGF5bWVudCIsYikudmFsKCl8fDA7YS5mb3JtZGF0YS5wYXltZW50SW50ZXJ2YWw9JCgiLmZpbmFuY2VNdWx0aXN0ZXBVc2VkQ2FsY3VsYXRvciAucGF5bWVudEZyZXF1ZW5jeSIsYikudmFsKCk7YS5mb3JtZGF0YS5wYXltZW50UmF0ZT0kKCIuZmluYW5jZU11bHRpc3RlcFVzZWRDYWxjdWxhdG9yIC5pbnRlcmVzdHJhdGUiLApiKS52YWwoKTthLmZvcm1kYXRhLnZlaGljbGVJbml0aWFsUHJpY2U9cGFyc2VJbnQoJCgiLmZpbmFuY2VNdWx0aXN0ZXBVc2VkQ2FsY3VsYXRvciAubG9hbmFtb3VudCIsYikudmFsKCkpO2Y9cGFyc2VJbnQoJCgiLmZpbmFuY2VNdWx0aXN0ZXBVc2VkQ2FsY3VsYXRvciAuZmVlYW1vdW50IixiKS52YWwoKS5yZXBsYWNlKCIsIiwiIikpO2EuZm9ybWRhdGEudmVoaWNsZUZpbmFsUHJpY2U9cGFyc2VJbnQoJCgiLmZpbmFuY2VNdWx0aXN0ZXBVc2VkQ2FsY3VsYXRvciAubG9hbmFtb3VudCIsYikudmFsKCkpK2Y7YS5mb3JtZGF0YS5wYXltZW50VG90YWxGZWU9ZjtrLmNoZWNrVmFsaWRpdHkoKX1mdW5jdGlvbiBQKCl7IjEiPT0kKCIjRklOQU5DRV9NVUxUSVNURVBfaXNJbnN0YW50IixiKS52YWwoKSYmKCQoYikuZmluZCgiLmNvbmZpcm1hdGlvblRpdGxlIikuaGlkZSgpLCQoYikuZmluZCgiLmNvbmZpcm1hdGlvblRleHQiKS5zaG93KCksJChiKS5maW5kKCIuY3JlZGl0RGVjaXNpb24iKS5odG1sKCIiKSwKJChiKS5maW5kKCIuY3JlZGl0RGVjaXNpb24iKS5oaWRlKCkpO2lmKF9sb2NhbFN0b3JhZ2VHZXQoInRyYWRlaW5fc3VibWl0X2RhdGEiKSYmIiI9PSQoImlucHV0W25hbWU9ZmluYW5jZVRyYWRlSW5NYWtlXSIpLnZhbCgpKXt2YXIgZD1KU09OLnBhcnNlKF9sb2NhbFN0b3JhZ2VHZXQoInRyYWRlaW5fc3VibWl0X2RhdGEiKSk7JCgiaW5wdXRbbmFtZT1maW5hbmNlVHJhZGVJbk1ha2VdIikudmFsKGQubWFrZSk7JCgiaW5wdXRbbmFtZT1maW5hbmNlVHJhZGVJbk1vZGVsXSIpLnZhbChkLm1vZGVsKTskKCJpbnB1dFtuYW1lPWZpbmFuY2VUcmFkZUluWWVhcl0iKS52YWwoZC55ZWFyKTskKCJpbnB1dFtuYW1lPWZpbmFuY2VUcmFkZUluVHJpbV0iKS52YWwoZC50cmltKTskKCJpbnB1dFtuYW1lPWZpbmFuY2VUcmFkZUluVmFsdWVdIikudmFsKGQudmFsdWUpO19sb2NhbFN0b3JhZ2VHZXQoInRyYWRlaW5fY3VycmVudF92YWx1ZSIpJiYoZD1KU09OLnBhcnNlKF9sb2NhbFN0b3JhZ2VHZXQoInRyYWRlaW5fY3VycmVudF92YWx1ZSIpKSwKJCgiaW5wdXRbbmFtZT1maW5hbmNlVHJhZGVJblZhbHVlXSIpLmF0dHIoImRhdGEtY3VycmVudCIsZC52YWx1ZSkpfWEuc2hvd0Vycm9yPSExO2EucHVzaFBhcnRpYWw9ITE7ay5zZXREZXBhcnRtZW50KCk7ay5zZXRUcmFkZUluKCk7aWYoay51c2VySWQoKSkkLmFqYXgoe3VybDoiLyIrdysiL2FqYXgvZ2V0RmluYW5jZU11bHRpc3RlcFVzZXJJZEFuZERhdGE\/d3N3aWR0aD0wIixkYXRhVHlwZToiSlNPTiIsdHlwZToiUE9TVCIsZGF0YTp7dXNlcklkOmsudXNlcklkKCksZG9tYWluOlEsc2l0ZUlkOiQoIiNzaXRlSUQiKS52YWwoKXx8JCgiI3RvcHNpdGVpZCIpLnZhbCgpLGxhbmc6JCgiI2FjdGl2ZXNpdGVsYW5ndWFnZSIpLnZhbCgpLGVtYWlsSGFuZGxlckpzb25PYmplY3Q6SlNPTi5zdHJpbmdpZnkoSCl9LHN1Y2Nlc3M6ZnVuY3Rpb24oZyl7Zy5JRHx8KGcuSUQ9LTEpO2sudXNlcklkKGcuSUQpO2cuZGF0YSYmKGEuZm9ybWRhdGE9SlNPTi5wYXJzZShnLmRhdGEpKTsKIiIhPWVtYWlsSGFuZGxlci51c2VyRmlyc3ROYW1lJiYidW5kZWZpbmVkIiE9ZW1haWxIYW5kbGVyLnVzZXJGaXJzdE5hbWUmJmEuZm9ybWRhdGEuZmlyc3ROYW1lIT1lbWFpbEhhbmRsZXIudXNlckZpcnN0TmFtZSYmKGEuZm9ybWRhdGEuZmlyc3ROYW1lPWVtYWlsSGFuZGxlci51c2VyRmlyc3ROYW1lKTsiIiE9ZW1haWxIYW5kbGVyLnVzZXJMYXN0TmFtZSYmInVuZGVmaW5lZCIhPWVtYWlsSGFuZGxlci51c2VyTGFzdE5hbWUmJmEuZm9ybWRhdGEubGFzdE5hbWUhPWVtYWlsSGFuZGxlci51c2VyTGFzdE5hbWUmJihhLmZvcm1kYXRhLmxhc3ROYW1lPWVtYWlsSGFuZGxlci51c2VyTGFzdE5hbWUpOyIiIT1lbWFpbEhhbmRsZXIudXNlckVtYWlsJiYidW5kZWZpbmVkIiE9ZW1haWxIYW5kbGVyLnVzZXJFbWFpbCYmYS5mb3JtZGF0YS5lbWFpbEFkZHJlc3MhPWVtYWlsSGFuZGxlci51c2VyRW1haWwmJihhLmZvcm1kYXRhLmVtYWlsQWRkcmVzcz1lbWFpbEhhbmRsZXIudXNlckVtYWlsKTsKIiIhPWVtYWlsSGFuZGxlci51c2VyUGhvbmUmJiJ1bmRlZmluZWQiIT1lbWFpbEhhbmRsZXIudXNlclBob25lJiZhLmZvcm1kYXRhLnBob25lTnVtYmVyIT1lbWFpbEhhbmRsZXIudXNlclBob25lJiYoYS5mb3JtZGF0YS5waG9uZU51bWJlcj1lbWFpbEhhbmRsZXIudXNlclBob25lLCQoIiNmaW5hbmNlX211bHRpc3RlcF9mb3JtIixiKS5maW5kKCdpbnB1dFtuYW1lPSJwaG9uZU51bWJlciJdJykudmFsKGEuZm9ybWRhdGEucGhvbmVOdW1iZXIpKTtpZigidW5kZWZpbmVkIiE9PXR5cGVvZiBjbGllbnRTdG9yYWdlKXtsZXQgbDthLmZvcm1kYXRhLmZpcnN0TmFtZT1udWxsIT0obD1rLmdldENsaWVudFN0b3JhZ2VEYXRhKCJmaXJzdG5hbWUiKSk\/bDphLmZvcm1kYXRhLmZpcnN0TmFtZTtsZXQgcDthLmZvcm1kYXRhLmxhc3ROYW1lPW51bGwhPShwPWsuZ2V0Q2xpZW50U3RvcmFnZURhdGEoImxhc3RuYW1lIikpP3A6YS5mb3JtZGF0YS5sYXN0TmFtZTtsZXQgcjthLmZvcm1kYXRhLmVtYWlsQWRkcmVzcz0KbnVsbCE9KHI9ay5nZXRDbGllbnRTdG9yYWdlRGF0YSgiZW1haWwiKSk\/cjphLmZvcm1kYXRhLmVtYWlsQWRkcmVzcztsZXQgdDthLmZvcm1kYXRhLnBob25lTnVtYmVyPW51bGwhPSh0PWsuZ2V0Q2xpZW50U3RvcmFnZURhdGEoInBob25lIikpP3Q6YS5mb3JtZGF0YS5waG9uZU51bWJlcjskKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSIsYikuZmluZCgnaW5wdXRbbmFtZT0icGhvbmVOdW1iZXIiXScpLnZhbChhLmZvcm1kYXRhLnBob25lTnVtYmVyKX0wPT1hLmZvcm1kYXRhLmFkZHJlc3NfeWVhcnMmJjA9PWEuZm9ybWRhdGEuYWRkcmVzc19tb250aHMmJihhLmZvcm1kYXRhLmFkZHJlc3M9IiIpO2cuc3RlcCYmKGEuc3RlcD1OdW1iZXIoZy5zdGVwKSxhLm5leHRTdGVwPWEubmV4dFN0ZXBEZWZhdWx0VmFsdWVzWyJzdGVwIitnLnN0ZXBdKTskKGRvY3VtZW50KS50cmlnZ2VyKCJjcmVkaXQubXVsdGlzdGVwLnNob3ciKTskKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSIsYikuc2hvdygpOwprLnNldEN1cnJlbnRNYWtlTW9kZWxZZWFyKCk7ay5vblNob3dGdW5jdGlvblRvUnVuKCk7YS5maXJzdFN0ZXA9ITF9LGNvbXBsZXRlOmZ1bmN0aW9uKGcpe2lmKCFnLmRhdGEpcmV0dXJuIGsudXNlcklkKC0xKSxsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgiZmluYW5jZV9tdWx0aXN0ZXAubGluZWFyX3N0ZXAiKSxQKCl9fSk7ZWxzZXthLnB1c2hQYXJ0aWFsPSExOyIiIT1lbWFpbEhhbmRsZXIudXNlckZpcnN0TmFtZSYmInVuZGVmaW5lZCIhPWVtYWlsSGFuZGxlci51c2VyRmlyc3ROYW1lJiYoYS5mb3JtZGF0YS5maXJzdE5hbWU9ZW1haWxIYW5kbGVyLnVzZXJGaXJzdE5hbWUpOyIiIT1lbWFpbEhhbmRsZXIudXNlckxhc3ROYW1lJiYidW5kZWZpbmVkIiE9ZW1haWxIYW5kbGVyLnVzZXJMYXN0TmFtZSYmKGEuZm9ybWRhdGEubGFzdE5hbWU9ZW1haWxIYW5kbGVyLnVzZXJMYXN0TmFtZSk7IiIhPWVtYWlsSGFuZGxlci51c2VyRW1haWwmJiJ1bmRlZmluZWQiIT1lbWFpbEhhbmRsZXIudXNlckVtYWlsJiYKKGEuZm9ybWRhdGEuZW1haWxBZGRyZXNzPWVtYWlsSGFuZGxlci51c2VyRW1haWwpOyIiIT1lbWFpbEhhbmRsZXIudXNlclBob25lJiYidW5kZWZpbmVkIiE9ZW1haWxIYW5kbGVyLnVzZXJQaG9uZSYmKGEuZm9ybWRhdGEucGhvbmVOdW1iZXI9ZW1haWxIYW5kbGVyLnVzZXJQaG9uZSwkKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSIsYikuZmluZCgnaW5wdXRbbmFtZT0icGhvbmVOdW1iZXIiXScpLnZhbChhLmZvcm1kYXRhLnBob25lTnVtYmVyKSk7aWYoInVuZGVmaW5lZCIhPT10eXBlb2YgY2xpZW50U3RvcmFnZSl7dmFyIGM7YS5mb3JtZGF0YS5maXJzdE5hbWU9bnVsbCE9KGM9ay5nZXRDbGllbnRTdG9yYWdlRGF0YSgiZmlyc3RuYW1lIikpP2M6YS5mb3JtZGF0YS5maXJzdE5hbWU7dmFyIGU7YS5mb3JtZGF0YS5sYXN0TmFtZT1udWxsIT0oZT1rLmdldENsaWVudFN0b3JhZ2VEYXRhKCJsYXN0bmFtZSIpKT9lOmEuZm9ybWRhdGEubGFzdE5hbWU7dmFyIGY7YS5mb3JtZGF0YS5lbWFpbEFkZHJlc3M9Cm51bGwhPShmPWsuZ2V0Q2xpZW50U3RvcmFnZURhdGEoImVtYWlsIikpP2Y6YS5mb3JtZGF0YS5lbWFpbEFkZHJlc3M7bGV0IGc7YS5mb3JtZGF0YS5waG9uZU51bWJlcj1udWxsIT0oZz1rLmdldENsaWVudFN0b3JhZ2VEYXRhKCJwaG9uZSIpKT9nOmEuZm9ybWRhdGEucGhvbmVOdW1iZXI7JCgiI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0iLGIpLmZpbmQoJ2lucHV0W25hbWU9InBob25lTnVtYmVyIl0nKS52YWwoYS5mb3JtZGF0YS5waG9uZU51bWJlcil9JCgnI21pbmlmb3JtIFtuYW1lPSJtdWx0aV9kZWFsZXJfc2VuZFRvIl0nKS5sZW5ndGgmJiIiIT0kKCcjbWluaWZvcm0gW25hbWU9Im11bHRpX2RlYWxlcl9zZW5kVG8iXScpLnZhbCgpJiYoYS5mb3JtZGF0YS5tdWx0aUZyb21NaW5pPSEwKTskKCIjbWF4X2J1ZGdldCIpLmxlbmd0aCYmKGEucHVzaFBhcnRpYWw9ITAsYz0iIixlPXBhcnNlRmxvYXQoJCgiI21heF9idWRnZXQiKS52YWwoKS5yZXBsYWNlKC9bXjAtOS4tXSsvZywiIikpLApjPWsuZ2V0Q3VycmVudEJ1ZGdldChlKSwiMSI9PXUmJmlzTmFOKGUpJiYoYz0iIiksYS5mb3JtZGF0YS5idWRnZXQ9Yyk7JCgiLnRyYWNrLXByb2dyZXNzIikubGVuZ3RoJiYobG9jYWxTdG9yYWdlLmdldEl0ZW0oInRyYWRlaW5fc3VibWl0X2RhdGEiKSYmKGEuZm9ybWRhdGEuY3VycmVudGx5RHJpdmluZz0iRklOQU5DRV9GT1JNX0FMUkVBRFlfRFJJVklOR19UUkFERSIpLGM9bG9jYWxTdG9yYWdlLmdldEl0ZW0oInJldGFpbF90cmFja19kYXRhIiksKGM9SlNPTi5wYXJzZShjKSkmJmMudmFsdWUmJihjPUpTT04ucGFyc2UoYy52YWx1ZSkpJiZjLnBheW1lbnQmJmMucGF5bWVudC5wYXltZW50VmFsdWUmJihlPWMucGF5bWVudC5wYXltZW50VmFsdWUsYz1lWzBdLGU9ZVszXSxmPSIiLGM9Im1vbnRobHkiPT1lP3BhcnNlRmxvYXQoYyk6IndlZWtseSI9PWU\/NTIqcGFyc2VGbG9hdChjKS8xMjoic2VtaW1vbnRobHkiPT1lPzI0KnBhcnNlRmxvYXQoYykvMTI6MjYqcGFyc2VGbG9hdChjKS8KMTIsZj1rLmdldEN1cnJlbnRCdWRnZXQoYyksYS5mb3JtZGF0YS5idWRnZXQ9ZikpO2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ1tuYW1lPSJidWRnZXQiXStsYWJlbCcpLmZvckVhY2goZz0+e2cuaW5uZXJIVE1MPWcuaW5uZXJIVE1MLnJlcGxhY2UoLyhcJFxkezMsNH18XGR7Myw0fVwkKS9nLGw9PkQyQ1V0aWxzLkZvcm1hdC50b1ByaWNlKGwucmVwbGFjZSgvXCQvZywiIikpKX0pOyQoZG9jdW1lbnQpLnRyaWdnZXIoImNyZWRpdC5tdWx0aXN0ZXAuc2hvdyIpOyQoIiNmaW5hbmNlX211bHRpc3RlcF9mb3JtIixiKS5zaG93KCk7MD09YS5zdGVwJiYoJCgiI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm1fbmV4dF9idG4iLGIpLmhpZGUoKSwkKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSIsYikub2ZmKCJjbGljay5ub0J1dHRvbiIsImlucHV0W3R5cGU9cmFkaW9dIiksJCgiI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0iLGIpLm9uKCJjbGljay5ub0J1dHRvbiIsImlucHV0W3R5cGU9cmFkaW9dIiwKZnVuY3Rpb24oKXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7YS5uZXh0KCl9LDFFMyl9KSk7ay5zZXRDdXJyZW50TWFrZU1vZGVsWWVhcigpfX12YXIgej0kKCIjRklOQU5DRV9NVUxUSVNURVBfUEhPTkVfUE9TSVRJT05fQ0hFQ0siKS52YWwoKSxJPSQoIiNGSU5BTkNFX01VTFRJU1RFUF9QSE9ORV9QT1NJVElPTl9TRUxFQ1QiKS52YWwoKSxEPSQoIiNBRE1JTl9NQU5EQVRPUllfQ1JFRElUX0JVUkVBVV9DSEVDSyIpLnZhbCgpLEE9JCgiI0FTS19GT1JfU0lOX0NIRUNLIikudmFsKCksTz0hMSx1PSQoIiNGSU5BTkNFX01VTFRJU1RFUF9pc1NlY29uZENoYW5jZSIsYikudmFsKCkseD0kKCIjRklOQU5DRV9NVUxUSVNURVBfaXNJbnN0YW50IixiKS52YWwoKSxKPSQoIiNGSU5BTkNFX01VTFRJU1RFUF9pc1Z3RFIiLGIpLnZhbCgpLEs9MSxMPVsxLDIsMyw2LDcsMTMsMTQsMTVdLE09W3tmdW5jOiJ2YWxpZGF0ZU5vdEVtcHR5Iix2YWx1ZToiZW1wbG95bWVudFN0YXR1cyJ9XSxSPVtdLFM9Clt7ZnVuYzoidmFsaWRhdGVOb3RFbXB0eSIsdmFsdWU6ImZpcnN0TmFtZSJ9LHtmdW5jOiJ2YWxpZGF0ZU5vdEVtcHR5Iix2YWx1ZToibGFzdE5hbWUifSx7ZnVuYzoidmFsaWRhdGVOYW1lIix2YWx1ZToiIn1dLFQ9W3tmdW5jOiJ2YWxpZGF0ZU5vdEVtcHR5Iix2YWx1ZToiYWRkcmVzcyJ9XSxCPXtzdGVwMDoxLHN0ZXAxOjIsc3RlcDI6MyxzdGVwMzoiMCI9PXo\/NDoiYmVmb3JlIj09ST8xOTo0LHN0ZXA0OiIwIj09ej81OiJiZWZvcmUiPT1JPzU6MTksc3RlcDU6NixzdGVwNjo3LHN0ZXA3Ojgsc3RlcDg6OSxzdGVwOToxMSxzdGVwMTA6MTEsc3RlcDExOjEyLHN0ZXAxMjoxMyxzdGVwMTM6MTYsc3RlcDE0OjE2LHN0ZXAxNToxNixzdGVwMTY6MTcsc3RlcDE3OiIwIj09ej8xOTowPT1EPyIwIj09QT8iMSI9PXU\/MjM6ImRvbmUiOjIyOjIwLHN0ZXAxODoiMCI9PXo\/MD09RD8iMCI9PUE\/IjEiPT11PzIzOiJkb25lIjoyMjoyMDoiYmVmb3JlIj09ST80OjUsc3RlcDE5OjE4LHN0ZXAyMDoiMCI9PQpBPyIxIj09dT8yMzoiZG9uZSI6MjIsc3RlcDIyOiIxIj09dT8yMzoiZG9uZSIsc3RlcDIzOiJkb25lIn07b3B0aW9uYWxTdGVwcz1bXTsiMSI9PXUmJihvcHRpb25hbFN0ZXBzPVsyM10sIjAiPT1BJiYob3B0aW9uYWxTdGVwcz1bMjIsMjNdKSxMPVsxLDIsMyw2LDcsMTQsMTVdLE09W3tmdW5jOiJ2YWxpZGF0ZU5vdEVtcHR5Iix2YWx1ZToiZW1wbG95bWVudFN0YXR1cyJ9LHtmdW5jOiJ2YWxpZGF0ZU5vdEVtcHR5Iix2YWx1ZToiZW1wbG95bWVudEFkZGVkSW5mbyJ9LHtmdW5jOiJ2YWxpZGF0ZUVtcGxveWVySW5mbyIsdmFsdWU6IiJ9LHtmdW5jOiJ2YWxpZGF0ZU5vdEVtcHR5RW1wbG95ZXJTdGF0dXNUaW1lIix2YWx1ZToiIn1dLEI9e3N0ZXAwOjEsc3RlcDE6MixzdGVwMjozLHN0ZXAzOjE4LHN0ZXA0OjE5LHN0ZXA1OjYsc3RlcDY6NyxzdGVwNzo4LHN0ZXA4Ojksc3RlcDk6MjIsc3RlcDEwOjExLHN0ZXAxMToxMixzdGVwMTI6MTMsc3RlcDEzOjE2LHN0ZXAxNDoxNixzdGVwMTU6MTYsCnN0ZXAxNjoyMyxzdGVwMTg6NSxzdGVwMTk6MTEsc3RlcDIwOiJkb25lIixzdGVwMjI6NCxzdGVwMjM6MD09RD8iZG9uZSI6MjB9KTsiMSI9PXgmJihvcHRpb25hbFN0ZXBzPVsyMl0sSz0yNCxMPVsxLDIsMyw2LDcsMTQsMTVdLE09W3tmdW5jOiJ2YWxpZGF0ZU5vdEVtcHR5Iix2YWx1ZToiZW1wbG95bWVudFN0YXR1cyJ9LHtmdW5jOiJ2YWxpZGF0ZUVtcGxveW1lbnRBZGRlZEluZm8iLHZhbHVlOiJlbXBsb3ltZW50QWRkZWRJbmZvIn0se2Z1bmM6InZhbGlkYXRlRW1wbG95ZXJJbmZvIix2YWx1ZToiIn0se2Z1bmM6InZhbGlkYXRlTm90RW1wdHlFbXBsb3llclN0YXR1c1RpbWUiLHZhbHVlOiIifSx7ZnVuYzoidmFsaWRhdGVBZGRyZXNzRW1wbG95ZXIiLHZhbHVlOiJhZGRyZXNzRW1wbG95ZXIifV0sUj1be2Z1bmM6InZhbGlkYXRlRW1wbG95bWVudEFkZGVkSW5mbyIsdmFsdWU6ImVtcGxveW1lbnRBZGRlZEluZm8yIn0se2Z1bmM6InZhbGlkYXRlRW1wbG95ZXJJbmZvMiIsdmFsdWU6IiJ9LAp7ZnVuYzoidmFsaWRhdGVOb3RFbXB0eUVtcGxveWVyU3RhdHVzVGltZTIiLHZhbHVlOiIifSx7ZnVuYzoidmFsaWRhdGVBZGRyZXNzRW1wbG95ZXIyIix2YWx1ZToiYWRkcmVzc0VtcGxveWVyMiJ9XSxTPVt7ZnVuYzoidmFsaWRhdGVOb3RFbXB0eSIsdmFsdWU6ImZpcnN0TmFtZSJ9LHtmdW5jOiJ2YWxpZGF0ZU5vdEVtcHR5Iix2YWx1ZToibGFzdE5hbWUifSx7ZnVuYzoidmFsaWRhdGVOb3RFbXB0eSIsdmFsdWU6InRpdGxlIn0se2Z1bmM6InZhbGlkYXRlTmFtZSIsdmFsdWU6IiJ9XSxUPVt7ZnVuYzoidmFsaWRhdGVBZGRyZXNzIix2YWx1ZToiYWRkcmVzcyJ9XSxCPXtzdGVwMDoyNCxzdGVwMjQ6MjUsc3RlcDI1OjQsc3RlcDQ6MTksc3RlcDE5OjE4LHN0ZXAxODo1LHN0ZXA1Ojgsc3RlcDg6OSxzdGVwOToxMSxzdGVwMTE6MTIsc3RlcDEyOjEzLHN0ZXAyNzoyOCxzdGVwMjg6MTMsc3RlcDEzOjE2LHN0ZXAxNDoxNixzdGVwMTU6MTYsc3RlcDE2OjE3LHN0ZXAxNzoyMixzdGVwMjk6MjIsCnN0ZXAyMjowPT1EPzI2OjIwLHN0ZXAyMDoyNixzdGVwMjY6ImRvbmUifSwiMSI9PUomJihCLnN0ZXAyMj0zMCxCLnN0ZXAzMD0iZG9uZSIpKTt2YXIgYT1uZXcgVnVlKHtlbDokKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSIsYilbMF0sZGF0YTpmdW5jdGlvbigpe3JldHVybntjb250ZXh0OmIsYWpheFByb2Nlc3M6ITEsdXNlcklkOiIiLGNvbnZlcnNpb25TdWJtaXR0ZWQ6ITEsc2hvd0ljb246ITAscHVzaFBhcnRpYWw6ITEsY3VycmVudERlcHQ6Ik5FVyIsaW5pdFZlaGljbGVTZWxlY3Rpb25GaXJzdDohMCxzdGVwOjAsbmV4dFN0ZXA6SyxmaXJzdFN0ZXA6ITAsY2FsY3VsYXRvckZ1bmN0aW9uczoiIixjcmVkaXREZWNpc2lvbkhUTUw6IiIsZm9ybWRhdGE6e3ZlaGljbGVUeXBlOiIiLGJ1ZGdldDoiIixjdXJyZW50bHlEcml2aW5nOiIiLGVtYWlsQWRkcmVzczoiIixjcmVkaXRSYXRpbmc6IiIsZG93bk9wdGlvbnM6IiIsYmlydGhkYXRlWWVhcjoiIixiaXJ0aGRhdGVNb250aDoiIiwKYmlydGhkYXRlRGF5OiIiLGFkZHJlc3M6IiIsc3BsaXRBZGRyZXNzOltdLGFkZHJlc3NfeWVhcnM6MCxhZGRyZXNzX21vbnRoczowLGFkZHJlc3MyOiIiLHNwbGl0QWRkcmVzczI6W10sYWRkcmVzczJfeWVhcnM6MCxhZGRyZXNzMl9tb250aHM6MCxhZGRyZXNzRW1wbG95ZXI6IiIsc3BsaXRBZGRyZXNzRW1wbG95ZXI6W10scmVudE9yT3duOiIiLG1vbnRobHlQYXltZW50OjAsZW1wbG95bWVudFN0YXR1czoiIixlbXBsb3ltZW50QWRkZWRJbmZvOiIiLGVtcGxveWVyTmFtZToiIixlbXBsb3llclBob25lOiIiLGVtcGxveW1lbnRTdGF0dXNZZWFyOjAsZW1wbG95bWVudFN0YXR1c01vbnRoOjAsZW1wbG95bWVudEFkZGVkSW5mbzI6IiIsZW1wbG95ZXJOYW1lMjoiIixlbXBsb3llclBob25lMjoiIixlbXBsb3ltZW50U3RhdHVzWWVhcjI6MCxlbXBsb3ltZW50U3RhdHVzTW9udGgyOjAsYWRkcmVzc0VtcGxveWVyMjoiIixzcGxpdEFkZHJlc3NFbXBsb3llcjI6W10sd29ya2luZ1doaWxlSW5TY2hvb2w6IiIsCm90aGVyRW1wbG95bWVudFN0YXR1czoiIixtb250aGx5SW5jb21lOjAsbW9udGhseUluY29tZV95ZWFyczowLG1vbnRobHlJbmNvbWVfbW9udGhzOjAsdGl0bGU6IiIsZmlyc3ROYW1lOiIiLGxhc3ROYW1lOiIiLHBob25lTnVtYmVyOiIiLGN1cnJlbnRNYWtlOiIiLGN1cnJlbnRNb2RlbDoiIixjdXJyZW50TW9kZWxUZXh0OiIiLGN1cnJlbnRZZWFyOiIiLGN1cnJlbnRTdG9ja051bWJlcjoiIixjdXJyZW50TWlsZWFnZToxMCxjdXJyZW50VHJpbToiIixjdXJyZW50U3R5bGVpZDoiIixjdXJyZW50Q2FySWQ6IiIscGF5bWVudFR5cGU6IiIscGF5bWVudFR5cGVSZWFsOiIiLHBheW1lbnRUZXJtOiIiLHBheW1lbnRSYXRlVHlwZToiIixwYXltZW50VmFsdWU6IiIsYmFzZXBheW1lbnQ6IiIscGF5bWVudFRvdGFsSW5jZW50aXZlOjAscGF5bWVudFRvdGFsRmVlOjAscGF5bWVudEdTVDowLHBheW1lbnRIU1Q6MCxwYXltZW50UFNUOjAscGF5bWVudERvd25QYXltZW50OjAscGF5bWVudEttQWxsb3dhbmNlOjAsCnBheW1lbnRJbnRlcnZhbDoiIixwYXltZW50UmF0ZToiIixwYXltZW50UmVzaWR1YWxWYWx1ZTowLG5vUGF5bWVudDohMSxtdWx0aV9kZWFsZXJfc2VuZFRvOiIiLGNyZWRpdEJ1cmVhdUNyZWRpdDoiTk8iLFNJTjoiIixhZGRlZEluZm86IiIsdmVoaWNsZVNhbGVzRGVwdDoib3RoZXIiLHZlaGljbGVQcmljZToiIix2ZWhpY2xlVHJhbnNtaXNzaW9uOiIiLHZlaGljbGVUcmltOiIiLHZlaGljbGVDb2xvcjoiIixpbml0aWFsVGl0bGVTaG93OiEwLG11bHRpRnJvbU1pbmk6ITEsdHJhZGVJbk1ha2U6IiIsdHJhZGVJbk1vZGVsOiIiLHRyYWRlSW5ZZWFyOiIiLHRyYWRlSW5UcmltOiIiLHRyYWRlSW5WYWx1ZToiIix2ZWhpY2xlSW5pdGlhbFByaWNlOiIiLHZlaGljbGVGaW5hbFByaWNlOiIiLHBheW1lbnRGZWVzTGlzdDpbXSxwYXltZW50SW5jZW50aXZlc0xpc3Q6W10sY3JlZGl0QXBwbGljYXRpb25JZDoiIixjb25zZW50QWNjb3VudE1vbml0b3Jpbmc6IiIsY29uc2VudENyZWRpdEFzc2Vzc21lbnQ6IiIsCmNvbnNlbnRQaXBlZGE6IiIsY29uc2VudENhc2w6IiJ9LG5leHRTdGVwRGVmYXVsdFZhbHVlczpCLHZhbGlkYXRpb25SdWxlczp7c3RlcDE6W3tmdW5jOiJ2YWxpZGF0ZU5vdEVtcHR5Iix2YWx1ZToidmVoaWNsZVR5cGUifV0sc3RlcDI6W3tmdW5jOiJ2YWxpZGF0ZU5vdEVtcHR5Iix2YWx1ZToiYnVkZ2V0In1dLHN0ZXAzOlt7ZnVuYzoidmFsaWRhdGVOb3RFbXB0eSIsdmFsdWU6ImN1cnJlbnRseURyaXZpbmcifV0sc3RlcDQ6W3tmdW5jOiJ2YWxpZGF0ZU5vdEVtcHR5Iix2YWx1ZToiZW1haWxBZGRyZXNzIn0se2Z1bmM6InZhbGlkYXRlRW1haWwiLHZhbHVlOiJlbWFpbEFkZHJlc3MifV0sc3RlcDU6W3tmdW5jOiJ2YWxpZGF0ZU5vdEVtcHR5Iix2YWx1ZToibXVsdGlfZGVhbGVyX3NlbmRUbyJ9XSxzdGVwNjpbe2Z1bmM6InZhbGlkYXRlTm90RW1wdHkiLHZhbHVlOiJjcmVkaXRSYXRpbmcifV0sc3RlcDc6W3tmdW5jOiJ2YWxpZGF0ZU5vdEVtcHR5Iix2YWx1ZToiZG93bk9wdGlvbnMifV0sCnN0ZXA4Olt7ZnVuYzoidmFsaWRhdGVCaXJ0aGRhdGUiLHZhbHVlOiIifV0sc3RlcDk6VCxzdGVwMTE6W3tmdW5jOiJ2YWxpZGF0ZU5vdEVtcHR5QWRkcmVzc1RpbWUiLHZhbHVlOiIifV0sc3RlcDEyOlt7ZnVuYzoidmFsaWRhdGVOb3RFbXB0eSIsdmFsdWU6InJlbnRPck93biJ9LHtmdW5jOiJ2YWxpZGF0ZUlzTnVtYmVyIix2YWx1ZToibW9udGhseVBheW1lbnQifSx7ZnVuYzoidmFsaWRhdGVNb250aGx5UGF5bWVudCIsdmFsdWU6Im1vbnRobHlQYXltZW50In1dLHN0ZXAxMzpNLHN0ZXAxNDpbe2Z1bmM6InZhbGlkYXRlTm90RW1wdHkiLHZhbHVlOiJ3b3JraW5nV2hpbGVJblNjaG9vbCJ9XSxzdGVwMTU6W3tmdW5jOiJ2YWxpZGF0ZU5vdEVtcHR5Iix2YWx1ZToib3RoZXJFbXBsb3ltZW50U3RhdHVzIn1dLHN0ZXAxNjpbe2Z1bmM6InZhbGlkYXRlTW9yZVRoYW5aZXJvIix2YWx1ZToibW9udGhseUluY29tZSJ9LHtmdW5jOiJ2YWxpZGF0ZU1vbnRobHlJbmNvbWUiLHZhbHVlOiJtb250aGx5SW5jb21lIn1dLApzdGVwMTc6W3tmdW5jOiJ2YWxpZGF0ZU5vdEVtcHR5TW9udGhseUluY29tZVRpbWUiLHZhbHVlOiIifV0sc3RlcDE4OlMsc3RlcDE5Olt7ZnVuYzoidmFsaWRhdGVQaG9uZU51bWJlciIsdmFsdWU6InBob25lTnVtYmVyIn1dLHN0ZXAyMDpbe2Z1bmM6InZhbGlkYXRlQ2hlY2tlZENyZWRpdEJ1cmVhdSIsdmFsdWU6ImNyZWRpdEJ1cmVhdUNyZWRpdCJ9XSxzdGVwMjI6W3tmdW5jOiJ2YWxpZGF0ZVNJTiIsdmFsdWU6IlNJTiJ9XSxzdGVwMjQ6W3tmdW5jOiJ2YWxpZGF0ZVZlaGljbGUiLHZhbHVlOiIifV0sc3RlcDI1Olt7ZnVuYzoidmFsaWRhdGVQYXltZW50Iix2YWx1ZToiIn1dLHN0ZXAyNjpbe2Z1bmM6InZhbGlkYXRlQ29uc2VudCIsdmFsdWU6IiJ9XSxzdGVwMjc6W3tmdW5jOiJ2YWxpZGF0ZUFkZHJlc3MyIix2YWx1ZToiYWRkcmVzczIifV0sc3RlcDI4Olt7ZnVuYzoidmFsaWRhdGVOb3RFbXB0eUFkZHJlc3MyVGltZSIsdmFsdWU6IiJ9XSxzdGVwMjk6UixzdGVwMzA6W3tmdW5jOiJ2YWxpZGF0ZUNvbnNlbnRzIiwKdmFsdWU6IiJ9XX0sb25TaG93RnVuY3Rpb246e3N0ZXAyOlt7ZnVuYzoic3RlcDJWaWV3ZWRUcmFjayJ9XSxzdGVwNDpbe2Z1bmM6ImVtYWlsU3RlcFZpZXdlZFRyYWNrIn0se2Z1bmM6ImluaXRFbWFpbCJ9XSxzdGVwNjpbXSxzdGVwNzpbXSxzdGVwODpbe2Z1bmM6ImluaXRCaXJ0aGRhdGVDaGFuZ2UifV0sc3RlcDk6W3tmdW5jOiJpbml0R29vZ2xlQXV0b2NvbXBsZXRlIn1dLHN0ZXAyNzpbe2Z1bmM6ImluaXRHb29nbGVBdXRvY29tcGxldGUyIn1dLHN0ZXAxMzpbe2Z1bmM6ImluaXRHb29nbGVBdXRvY29tcGxldGVFbXBsb3llciJ9XSxzdGVwNTpbe2Z1bmM6ImluaXRTZWxlY3RNdWx0aURlYWxlciJ9XSxzdGVwMTk6W3tmdW5jOiJwaG9uZVN0ZXBWaWV3ZWRUcmFjayJ9LHtmdW5jOiJpbml0UGhvbmUifV0sc3RlcDI0Olt7ZnVuYzoiaW5pdFZlaGljbGVTZWxlY3Rpb24ifV0sc3RlcDI1Olt7ZnVuYzoiaW5pdENhbGN1bGF0b3IifV0sc3RlcDI2Olt7ZnVuYzoiaW5pdENvbnNlbnQifV0sCnN0ZXAyOTpbe2Z1bmM6ImluaXRHb29nbGVBdXRvY29tcGxldGVFbXBsb3llcjIifV19LG5vQ29uZmlybUJ1dHRvblN0ZXBzOkwsc2hvd0Vycm9yOiEwLHNlY29uZENoYW5jZVN0ZXBUb1NraXA6WzEsMiwzLDYsN10sb3B0aW9uYWxTdGVwOm9wdGlvbmFsU3RlcHN9fSxtZXRob2RzOntuZXh0OmZ1bmN0aW9uKGQpe2R8fCh0aGlzLnNob3dFcnJvcj0hMCx0aGlzLmZvcm1kYXRhLmluaXRpYWxUaXRsZVNob3c9ITEsdGhpcy5wdXNoUGFydGlhbD0hMCk7aWYodGhpcy52YWxpZGF0aW9uUnVsZXMuaGFzT3duUHJvcGVydHkoInN0ZXAiK3RoaXMuc3RlcCkpZm9yKHZhciBjPTA7Yzx0aGlzLnZhbGlkYXRpb25SdWxlc1sic3RlcCIrdGhpcy5zdGVwXS5sZW5ndGg7YysrKWlmKGtbdGhpcy52YWxpZGF0aW9uUnVsZXNbInN0ZXAiK3RoaXMuc3RlcF1bY10uZnVuY10odGhpcy5mb3JtZGF0YVt0aGlzLnZhbGlkYXRpb25SdWxlc1sic3RlcCIrdGhpcy5zdGVwXVtjXS52YWx1ZV0pKSQoIiNmaW5hbmNlX211bHRpc3RlcF9mb3JtX2Vycm9yIiwKYikuaHRtbCgiIiksJCgnW25hbWU9IicrdGhpcy52YWxpZGF0aW9uUnVsZXNbInN0ZXAiK3RoaXMuc3RlcF1bY10udmFsdWUrJyJdJyxiKS5jc3MoImJvcmRlci1jb2xvciIsIiIpO2Vsc2V7dGhpcy5zaG93RXJyb3ImJigkKCIjIit0aGlzLnZhbGlkYXRpb25SdWxlc1sic3RlcCIrdGhpcy5zdGVwXVtjXS52YWx1ZSsiRXJyb3JNc2ciLGIpLmxlbmd0aCYmJCgiI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm1fZXJyb3IiLGIpLmh0bWwoJCgiIyIrdGhpcy52YWxpZGF0aW9uUnVsZXNbInN0ZXAiK3RoaXMuc3RlcF1bY10udmFsdWUrIkVycm9yTXNnIixiKS52YWwoKSksJCgnW25hbWU9IicrdGhpcy52YWxpZGF0aW9uUnVsZXNbInN0ZXAiK3RoaXMuc3RlcF1bY10udmFsdWUrJyJdJyxiKS5jc3MoImJvcmRlci1jb2xvciIsInZhcigtLWxhYmVsLXJlcXVpcmVkLWNvbG9yKSIpKTtyZXR1cm59Zm9yKHRoaXMuc2hvd0Vycm9yPSExO2suaXNOZXh0U3RlcEZpbGxlZCgpOyk7aWYoMjEhPXRoaXMuc3RlcCl7ND09CnRoaXMuc3RlcCYmIiIhPWEuZm9ybWRhdGEuZW1haWxBZGRyZXNzJiZrLmVtYWlsUHJvdmlkZWRUcmFjaygpOzE5PT10aGlzLnN0ZXAmJiIiIT1hLmZvcm1kYXRhLnBob25lTnVtYmVyJiZrLnBob25lUHJvdmlkZWRUcmFjaygpO2lmKDk9PXRoaXMuc3RlcCl0cnl7dmFyIGU9JCgnI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gaW5wdXRbbmFtZT0iYWRkcmVzcyJdJyxiKSxmPWUuZ29vZ2xlUGxhY2VzKCJnZXRBZGRyZXNzIiksZz0idW5kZWZpbmVkIiE9PXR5cGVvZiBmLnBvc3RhbC5sb25nX25hbWU\/Zi5wb3N0YWwubG9uZ19uYW1lOmUudmFsKCk7ZW1haWxIYW5kbGVyLnVzZXJQb3N0YWw9ZzsidW5kZWZpbmVkIiE9dHlwZW9mIGFjdGl2ZVVzZXJQcm9maWxlTW5nJiYidW5kZWZpbmVkIiE9dHlwZW9mIGFjdGl2ZVVzZXJQcm9maWxlTW5nLmxvZ1BhZ2VWaWV3RXZlbnQmJiIiIT1nJiYoInVuZGVmaW5lZCIhPT10eXBlb2YgZGVidWcmJmRlYnVnKCJMb2cgRXZlbnQiLGcsIlVzZXJGb3JtLnBvc3RhbCIpLAphY3RpdmVVc2VyUHJvZmlsZU1uZy5sb2dQYWdlVmlld0V2ZW50KGcsIlVzZXJGb3JtLnBvc3RhbCIpKX1jYXRjaChsKXtjb25zb2xlLmxvZyhsKX00PD10aGlzLnN0ZXAmJiF0aGlzLmNvbnZlcnNpb25TdWJtaXR0ZWQmJih0aGlzLmNvbnZlcnNpb25TdWJtaXR0ZWQ9ITAsYz0kKCIjZmluYW5jZU11bHRpc3RlcFBvcHVwQ29udGFpbmVyX2NvbmZpcm0iKSwwPT09Yy5sZW5ndGgmJihjPSQoIiNnZW5lcmljX2Zvcm1fY29uZmlybSIpKSxjLmZpbmQoJ2lucHV0W25hbWU9ImxlYWRUeXBlIl0nKS52YWwoJCh0aGlzLmNvbnRleHQpLmZpbmQoIi5lbWFpbFN1YmplY3QiKS50ZXh0KCkucmVwbGFjZSgvW1xuXHJdL2csIiAiKSksYy5maW5kKCdpbnB1dFtuYW1lPSJsZWFkX2RlcGFydG1lbnQiXScpLnZhbCgiRklOQU5DRSIpLGMuZmluZCgnaW5wdXRbbmFtZT0icGFnZUlEIl0nKS52YWwoJCgiI1BBR0VJRCIpLnZhbCgpKSxjLmZpbmQoJ2lucHV0W25hbWU9ImN1cnJlbnRVUkwiXScpLnZhbCh3aW5kb3cubG9jYXRpb24uaHJlZiksCmMuZmluZCgnaW5wdXRbbmFtZT0iaXNGdWxsV2lkdGgiXScpLnZhbCgkKCIjaXNGdWxsV2lkdGhQYWdlTmV3VkRQIikudmFsKCkpLGMuZmluZCgnaW5wdXRbbmFtZT0iZGVhbGVyTmFtZSJdJykudmFsKCQoIiNuZXdWRFBEZWFsZXJOYW1lIikudmFsKCkpLGMuZmluZCgnaW5wdXRbbmFtZT0iYnV0dG9uUG9zaXRpb24iXScpLnZhbCgkKCIjbmV3VkRQQnV0dG9uUG9zaXRpb24iKS52YWwoKSksYy5maW5kKCdpbnB1dFtuYW1lPSJpc01vYmlsZU5ld1ZEUCJdJykudmFsKCQoIiNpc21vYmlsZSIpLnZhbCgpKSxjLnRyaWdnZXIoInN1Ym1pdCIpLCJmdW5jdGlvbiI9PT10eXBlb2Ygd2luZG93LnRyYWNrQ29udmVyc2lvbiYmd2luZG93LnRyYWNrQ29udmVyc2lvbigpKTswIT10aGlzLnN0ZXAmJih0aGlzLnNob3dJY29uPSExKTt0aGlzLnN0ZXA9dGhpcy5uZXh0U3RlcDtsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgiZmluYW5jZV9tdWx0aXN0ZXAubGFzdF9zdGVwIik7ZHx8KGEuZmlyc3RTdGVwPwphLmZpcnN0U3RlcD0hMTprLnN0ZXBUcmlnZ2VyKCEwKSk7KCIiIT10aGlzLmZvcm1kYXRhLmVtYWlsQWRkcmVzcyYmKCIwIj09JCgiI0ZJTkFOQ0VfTVVMVElTVEVQX1BIT05FX1BPU0lUSU9OX0NIRUNLIikudmFsKCl8fCJhZnRlciI9PSQoIiNGSU5BTkNFX01VTFRJU1RFUF9QSE9ORV9QT1NJVElPTl9TRUxFQ1QiKS52YWwoKSl8fCIiIT10aGlzLmZvcm1kYXRhLnBob25lTnVtYmVyJiYiMSI9PSQoIiNGSU5BTkNFX01VTFRJU1RFUF9QSE9ORV9QT1NJVElPTl9DSEVDSyIpLnZhbCgpJiYiYmVmb3JlIj09JCgiI0ZJTkFOQ0VfTVVMVElTVEVQX1BIT05FX1BPU0lUSU9OX1NFTEVDVCIpLnZhbCgpKSYmay5tdWx0aURlYWxlckZvcm1TdGF0dXMoKSYmdGhpcy5wdXNoUGFydGlhbCYmKCIxIj09JCgiI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gI09QRU5FREZST01JTUFHRVBPUFVQIixiKS52YWwoKT8kKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAjT1BFTkVERlJPTUlNQUdFUE9QVVAiLGIpLnZhbCgiMCIpOgprLnB1c2hEYXRhVG9TZXJ2ZXIoKSk7ay5zZXRDbGllbnRTdG9yYWdlRGF0YVZhbHVlcygpO3RoaXMubmV4dFN0ZXA9dGhpcy5uZXh0U3RlcERlZmF1bHRWYWx1ZXNbInN0ZXAiK3RoaXMuc3RlcF07MDw9dGhpcy5vcHRpb25hbFN0ZXAuaW5kZXhPZihhLnN0ZXApPyQoIiNmaW5hbmNlX211bHRpc3RlcF9mb3JtX25leHRfYnRuIGJ1dHRvbiIsYikuYWRkQ2xhc3MoImlzVmFsaWQiKTokKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV9uZXh0X2J0biBidXR0b24iLGIpLnJlbW92ZUNsYXNzKCJpc1ZhbGlkIik7ay5vblNob3dGdW5jdGlvblRvUnVuKCk7MDw9dGhpcy5ub0NvbmZpcm1CdXR0b25TdGVwcy5pbmRleE9mKHRoaXMuc3RlcCk\/KCQoIiNmaW5hbmNlX211bHRpc3RlcF9mb3JtX25leHRfYnRuIixiKS5oaWRlKCksJCgiI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0iLGIpLm9mZigiY2xpY2subm9CdXR0b24iLCJpbnB1dFt0eXBlPXJhZGlvXSIpLCQoIiNmaW5hbmNlX211bHRpc3RlcF9mb3JtIiwKYikub24oImNsaWNrLm5vQnV0dG9uIiwiaW5wdXRbdHlwZT1yYWRpb10iLGZ1bmN0aW9uKCl7c2V0VGltZW91dChmdW5jdGlvbigpe2EubmV4dCgpfSwxRTMpfSkpOigkKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV9uZXh0X2J0biIsYikuc2hvdygpLCQoIiNmaW5hbmNlX211bHRpc3RlcF9mb3JtIixiKS5vZmYoImNsaWNrLm5vQnV0dG9uIiwiaW5wdXRbdHlwZT1yYWRpb10iKSk7ImRvbmUiPT10aGlzLnN0ZXAmJigiMSI9PXg\/IjEiPT1KP2suY3JlZGl0QXBwU3VtaXNzaW9uKCk6ay5yb3V0ZU9uZUNhbGwoKTprLnNlbmRFbWFpbCgpKX19LGdldExpbmVhcnN0ZXA6ZnVuY3Rpb24oZCl7dmFyIGM9bG9jYWxTdG9yYWdlLmdldEl0ZW0oImZpbmFuY2VfbXVsdGlzdGVwLmxpbmVhcl9zdGVwIik7Yz1wYXJzZUludChjP2M6MCk7aWYoMD09Y3x8aXNOYU4oYykpYz0xO2QmJihjKz0xLGxvY2FsU3RvcmFnZS5zZXRJdGVtKCJmaW5hbmNlX211bHRpc3RlcC5saW5lYXJfc3RlcCIsYykpO3JldHVybiBjfX19KSwKdz0iRU5HTElTSCI9PSQoIiNhY3RpdmVzaXRlbGFuZ3VhZ2UiKS52YWwoKT8iZW4iOiJmciIsSD1lbWFpbEhhbmRsZXIuZ2V0SnNvbk9iamVjdCgpO3o9d2luZG93LmxvY2F0aW9uO3ZhciBRPXoucHJvdG9jb2wrIi8vIit6Lmhvc3Qsaz17aXNOZXh0U3RlcEZpbGxlZDpmdW5jdGlvbigpe2lmKCIxIj09eCYmIjEiPT1KJiZbMTksNCwzMF0uaW5jbHVkZXMoYS5uZXh0U3RlcCkpcmV0dXJuITE7aWYoIjEiPT11JiYwPD1hLnNlY29uZENoYW5jZVN0ZXBUb1NraXAuaW5kZXhPZihhLm5leHRTdGVwKSlyZXR1cm4gYS5uZXh0U3RlcD1hLm5leHRTdGVwRGVmYXVsdFZhbHVlc1sic3RlcCIrYS5uZXh0U3RlcF0sITA7aWYoKCIxIj09dXx8IjEiPT14KSYmMDw9YS5vcHRpb25hbFN0ZXAuaW5kZXhPZihhLm5leHRTdGVwKSlyZXR1cm4hMTtpZihhLnZhbGlkYXRpb25SdWxlcy5oYXNPd25Qcm9wZXJ0eSgic3RlcCIrYS5uZXh0U3RlcCkpe2Zvcih2YXIgZD0wO2Q8YS52YWxpZGF0aW9uUnVsZXNbInN0ZXAiKwphLm5leHRTdGVwXS5sZW5ndGg7ZCsrKWlmKCFrW2EudmFsaWRhdGlvblJ1bGVzWyJzdGVwIithLm5leHRTdGVwXVtkXS5mdW5jXShhLmZvcm1kYXRhW2EudmFsaWRhdGlvblJ1bGVzWyJzdGVwIithLm5leHRTdGVwXVtkXS52YWx1ZV0pKXJldHVybiExO2EubmV4dFN0ZXA9YS5uZXh0U3RlcERlZmF1bHRWYWx1ZXNbInN0ZXAiK2EubmV4dFN0ZXBdO3JldHVybiEwfX0sdmFsaWRhdGVOb3RFbXB0eTpmdW5jdGlvbihkKXtyZXR1cm4iIiE9ZCYmInVuZGVmaW5lZCIhPT10eXBlb2YgZH0sdmFsaWRhdGVOYW1lOmZ1bmN0aW9uKCl7dmFyIGQ9L15bQS16XHUwMEJGLVx1MUZGRlx1MkMwMC1cdUQ3RkYgJy1dKyQvO2xldCBjPWQudGVzdChhLmZvcm1kYXRhLmZpcnN0TmFtZSk7ZD1kLnRlc3QoYS5mb3JtZGF0YS5sYXN0TmFtZSk7YyYmZD8oJCgnW25hbWU9ImZpcnN0TmFtZSJdJyxiKS5jc3MoImJvcmRlci1jb2xvciIsIiIpLCQoJ1tuYW1lPSJmaXJzdE5hbWUiXScsYikuY3NzKCJib3JkZXItYm90dG9tLXdpZHRoIiwKIiIpLCQoJ1tuYW1lPSJsYXN0TmFtZSJdJyxiKS5jc3MoImJvcmRlci1jb2xvciIsIiIpLCQoJ1tuYW1lPSJsYXN0TmFtZSJdJyxiKS5jc3MoImJvcmRlci1ib3R0b20td2lkdGgiLCIiKSwkKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV9lcnJvciIsYikuaHRtbCgiIikpOihjfHwoJCgnW25hbWU9ImZpcnN0TmFtZSJdJyxiKS5jc3MoImJvcmRlci1jb2xvciIsIiNjODNlM2UiKSwkKCdbbmFtZT0iZmlyc3ROYW1lIl0nLGIpLmNzcygiYm9yZGVyLWJvdHRvbS13aWR0aCIsIjVweCIpKSxkfHwoJCgnW25hbWU9Imxhc3ROYW1lIl0nLGIpLmNzcygiYm9yZGVyLWNvbG9yIiwiI2M4M2UzZSIpLCQoJ1tuYW1lPSJsYXN0TmFtZSJdJyxiKS5jc3MoImJvcmRlci1ib3R0b20td2lkdGgiLCI1cHgiKSksJCgiI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm1fZXJyb3IiLGIpLmh0bWwoJCgiI2ZpcnN0TmFtZUVycm9yTXNnIikudmFsKCkpKTtyZXR1cm4gYyYmZH0sdmFsaWRhdGVJc051bWJlcjpmdW5jdGlvbihkKXtyZXR1cm4gMDw9CmR9LHZhbGlkYXRlTW9udGhseUluY29tZTpmdW5jdGlvbihkKXtyZXR1cm4gOTk5OTk5Pj1kfSx2YWxpZGF0ZU1vbnRobHlQYXltZW50OmZ1bmN0aW9uKGQpe3JldHVybiA5OTk5OT49ZH0sdmFsaWRhdGVBZGRyZXNzOmZ1bmN0aW9uKGQpe3JldHVybiAwPGEuZm9ybWRhdGEuYWRkcmVzc195ZWFyc3x8MDxhLmZvcm1kYXRhLmFkZHJlc3NfbW9udGhzPyEwOiIiIT1kJiYoZD0kKCcjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSBpbnB1dFtkYXRhLWdvb2dsZS1wbGFjZXMtY3VzdG9tPSJ0cnVlIl1bbmFtZT0iYWRkcmVzcyJdJyxiKS5nb29nbGVQbGFjZXMoImdldEFkZHJlc3MiKSwiIiE9ZC5jaXR5JiYiIiE9ZC5zdHJlZXQpPyhhLmZvcm1kYXRhLnNwbGl0QWRkcmVzcz1kLCEwKTohMX0sdmFsaWRhdGVBZGRyZXNzMjpmdW5jdGlvbihkKXtyZXR1cm4gMDxhLmZvcm1kYXRhLmFkZHJlc3MyX3llYXJzfHwwPGEuZm9ybWRhdGEuYWRkcmVzczJfbW9udGhzPyEwOiIiIT1kJiYoZD0kKCcjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSBpbnB1dFtkYXRhLWdvb2dsZS1wbGFjZXMtY3VzdG9tPSJ0cnVlIl1bbmFtZT0iYWRkcmVzczIiXScsCmIpLmdvb2dsZVBsYWNlcygiZ2V0QWRkcmVzcyIpLCIiIT1kLmNpdHkmJiIiIT1kLnN0cmVldCk\/KGEuZm9ybWRhdGEuc3BsaXRBZGRyZXNzMj1kLCEwKTohMX0sdmFsaWRhdGVBZGRyZXNzRW1wbG95ZXI6ZnVuY3Rpb24oZCl7aWYoIkZJTkFOQ0VfRk9STV9FTVBMT1lNRU5UX1NUQVRVU19FTVBMT1lFRCIhPWEuZm9ybWRhdGEuZW1wbG95bWVudFN0YXR1cylyZXR1cm4hMDtpZigiIiE9ZCl7aWYoInVuZGVmaW5lZCIhPT1hLmZvcm1kYXRhLnNwbGl0QWRkcmVzc0VtcGxveWVyJiZudWxsIT09YS5mb3JtZGF0YS5zcGxpdEFkZHJlc3NFbXBsb3llciYmIm9iamVjdCI9PT10eXBlb2YgYS5mb3JtZGF0YS5zcGxpdEFkZHJlc3NFbXBsb3llciYmImNpdHkiaW4gYS5mb3JtZGF0YS5zcGxpdEFkZHJlc3NFbXBsb3llciYmIiIhPT1hLmZvcm1kYXRhLnNwbGl0QWRkcmVzc0VtcGxveWVyLmNpdHkpcmV0dXJuITA7ay5pbml0R29vZ2xlQXV0b2NvbXBsZXRlRW1wbG95ZXIoKTtkPSQoJyNmaW5hbmNlX211bHRpc3RlcF9mb3JtIGlucHV0W2RhdGEtZ29vZ2xlLXBsYWNlcy1jdXN0b209InRydWUiXVtuYW1lPSJhZGRyZXNzRW1wbG95ZXIiXScsCmIpLmdvb2dsZVBsYWNlcygiZ2V0QWRkcmVzcyIpO2lmKCIiIT1kLmNpdHkmJiIiIT1kLnN0cmVldClyZXR1cm4gYS5mb3JtZGF0YS5zcGxpdEFkZHJlc3NFbXBsb3llcj1kLCEwfXJldHVybiExfSx2YWxpZGF0ZUFkZHJlc3NFbXBsb3llcjI6ZnVuY3Rpb24oZCl7aWYoIiIhPWQpe2lmKCJ1bmRlZmluZWQiIT09YS5mb3JtZGF0YS5zcGxpdEFkZHJlc3NFbXBsb3llcjImJm51bGwhPT1hLmZvcm1kYXRhLnNwbGl0QWRkcmVzc0VtcGxveWVyMiYmIm9iamVjdCI9PT10eXBlb2YgYS5mb3JtZGF0YS5zcGxpdEFkZHJlc3NFbXBsb3llcjImJiJjaXR5ImluIGEuZm9ybWRhdGEuc3BsaXRBZGRyZXNzRW1wbG95ZXIyJiYiIiE9PWEuZm9ybWRhdGEuc3BsaXRBZGRyZXNzRW1wbG95ZXIyLmNpdHkpcmV0dXJuITA7ay5pbml0R29vZ2xlQXV0b2NvbXBsZXRlRW1wbG95ZXIyKCk7ZD0kKCcjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSBpbnB1dFtkYXRhLWdvb2dsZS1wbGFjZXMtY3VzdG9tPSJ0cnVlIl1bbmFtZT0iYWRkcmVzc0VtcGxveWVyMiJdJywKYikuZ29vZ2xlUGxhY2VzKCJnZXRBZGRyZXNzIik7aWYoIiIhPWQuY2l0eSYmIiIhPWQuc3RyZWV0KXJldHVybiBhLmZvcm1kYXRhLnNwbGl0QWRkcmVzc0VtcGxveWVyMj1kLCEwfXJldHVybiExfSx2YWxpZGF0ZVN0YXR1c1RpbWU6ZnVuY3Rpb24oZCl7aWYoIiIhPWQmJjEwPT1kLmxlbmd0aClyZXR1cm4gZD1kLnNwbGl0KCIvIiksbmV3IERhdGUoK2RbMl0sZFsxXS0xLCtkWzBdKTxuZXcgRGF0ZX0sdmFsaWRhdGVFbXBsb3ltZW50QWRkZWRJbmZvOmZ1bmN0aW9uKGQpe3ZhciBjPWEuZm9ybWRhdGEuZW1wbG95bWVudFN0YXR1cztyZXR1cm4iRklOQU5DRV9GT1JNX0VNUExPWU1FTlRfU1RBVFVTX0VNUExPWUVEIj09Y3x8IkZJTkFOQ0VfRk9STV9FTVBMT1lNRU5UX1NUQVRVU19TRUxGRU1QTE9ZRUQiPT1jfHwiRklOQU5DRV9GT1JNX0VNUExPWU1FTlRfU1RBVFVTX1NUVURFTlQiPT1jfHwiRklOQU5DRV9GT1JNX0VNUExPWU1FTlRfU1RBVFVTX09USEVSIj09Yz8iIiE9PWQmJiJ1bmRlZmluZWQiIT09CnR5cGVvZiBkOiEwfSx2YWxpZGF0ZUVtcGxveWVySW5mbzpmdW5jdGlvbigpe3JldHVybiJGSU5BTkNFX0ZPUk1fRU1QTE9ZTUVOVF9TVEFUVVNfRU1QTE9ZRUQiPT1hLmZvcm1kYXRhLmVtcGxveW1lbnRTdGF0dXM\/IiIhPT1hLmZvcm1kYXRhLmVtcGxveWVyTmFtZSYmInVuZGVmaW5lZCIhPT10eXBlb2YgYS5mb3JtZGF0YS5lbXBsb3llck5hbWUmJmsudmFsaWRhdGVQaG9uZU51bWJlckVtcGxveWVyKGEuZm9ybWRhdGEuZW1wbG95ZXJQaG9uZSk6ITB9LHZhbGlkYXRlRW1wbG95ZXJJbmZvMjpmdW5jdGlvbigpe3JldHVybiIiIT09YS5mb3JtZGF0YS5lbXBsb3llck5hbWUyJiYidW5kZWZpbmVkIiE9PXR5cGVvZiBhLmZvcm1kYXRhLmVtcGxveWVyTmFtZTImJmsudmFsaWRhdGVQaG9uZU51bWJlckVtcGxveWVyMihhLmZvcm1kYXRhLmVtcGxveWVyUGhvbmUyKX0sdmFsaWRhdGVFbWFpbDpmdW5jdGlvbihkKXskLnZhbGlkaXR5LnNldHVwKHtvdXRwdXRNb2RlOiJjc3NPbmx5IixzY3JvbGxUbzohMX0pLnN0YXJ0KCk7CiQoIiNmaW5hbmNlX211bHRpc3RlcF9mb3JtIixiKS5maW5kKCdpbnB1dFtuYW1lPSJlbWFpbEFkZHJlc3MiXScpLnZhbGlkRW1haWxBZGRyZXNzKCk7cmV0dXJuICQudmFsaWRpdHkuZW5kKCkudmFsaWR9LHZhbGlkYXRlQmlydGhkYXRlOmZ1bmN0aW9uKCl7dmFyIGQ9YS5mb3JtZGF0YS5iaXJ0aGRhdGVZZWFyLGM9YS5mb3JtZGF0YS5iaXJ0aGRhdGVNb250aCxlPWEuZm9ybWRhdGEuYmlydGhkYXRlRGF5O2lmKDMxPGV8fDEyPGN8fDE5MDA+ZHx8MD49ZXx8MD49Y3x8IiI9PWR8fCIiPT1jfHwiIj09ZXx8ND5kLmxlbmd0aClyZXR1cm4hMTtkPTE4PD1rLmNhbGN1bGF0ZUFnZShuZXcgRGF0ZShkLGMtMSxlKSxuZXcgRGF0ZSk7YS5zaG93RXJyb3ImJihkPyQoIiNmaW5hbmNlX211bHRpc3RlcF9mb3JtX2Vycm9yIixiKS5odG1sKCIiKTokKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV9lcnJvciIsYikuaHRtbCgkKCIjYmlydGhkYXRlRXJyb3JNc2ciKS52YWwoKSkpO3JldHVybiBkfSwKY2FsY3VsYXRlQWdlOmZ1bmN0aW9uKGQsYyl7dmFyIGU9Yy5nZXRGdWxsWWVhcigpLGY9Yy5nZXRNb250aCgpO2M9Yy5nZXREYXRlKCk7dmFyIGc9ZC5nZXRGdWxsWWVhcigpLGw9ZC5nZXRNb250aCgpO2Q9ZC5nZXREYXRlKCk7ZS09ZztmLT1sO2lmKDA+Znx8MD09ZiYmMD5jLWQpZT1wYXJzZUludChlKS0xO3JldHVybiBlfSxoYXNVc2VyOmZ1bmN0aW9uKCl7cmV0dXJuISFsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgiZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV91c2VySWQiKX0sdXNlcklkOmZ1bmN0aW9uKGQpe2QmJigtMT09ZD8obG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oImZpbmFuY2VfbXVsdGlzdGVwX2Zvcm1fdXNlcklkIiksYS51c2VySWQ9ITEpOihsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgiZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV91c2VySWQiLGQpLGEudXNlcklkPWQpKTthLnVzZXJJZHx8KGEudXNlcklkPWxvY2FsU3RvcmFnZS5nZXRJdGVtKCJmaW5hbmNlX211bHRpc3RlcF9mb3JtX3VzZXJJZCIpKTsKcmV0dXJuIGEudXNlcklkfSxwdXNoRGF0YVRvU2VydmVyOmZ1bmN0aW9uKCl7aWYoIWEuYWpheFByb2Nlc3Mpe2EuYWpheFByb2Nlc3M9ITA7ay5zZXRUcmFkZUluKCk7dmFyIGQ9YS5mb3JtZGF0YSxjPWEuc3RlcCxlPSQoYikuZmluZCgiLmVtYWlsU3ViamVjdCIpLGY9JChiKS5maW5kKCIuZW1haWxCb2R5Iik7ZT1lLnRleHQoKT9lLnRleHQoKToiIjtmPWYuaHRtbCgpP2YuaHRtbCgpOiIiO3ZhciBnPSQoIiNjdXJyZW50U3RhdHVzIikudmFsKCk7ZW1haWxIYW5kbGVyLmJvZHk9ZjtlbWFpbEhhbmRsZXIuc3ViamVjdD1lO2suc2V0RW1haWxIYW5kbGVyU2VuZCgpO2VtYWlsSGFuZGxlci5tYWlsSUQ9IkNyZWRpdE11bHRpc3RlcFJlcXVlc3QiOyIxIj09dSYmKGVtYWlsSGFuZGxlci5tYWlsSUQ9IkNyZWRpdE11bHRpc3RlcFJlcXVlc3QybmRDaGFuY2UiKTsiMSI9PXgmJihlbWFpbEhhbmRsZXIubWFpbElEPSJDcmVkaXRNdWx0aXN0ZXBSZXF1ZXN0SW5zdGFudCIpO2VtYWlsSGFuZGxlci5kZXBhcnRtZW50PQoiRklOQU5DRSI7ZW1haWxIYW5kbGVyLmlzbW9iaWxlc2l0ZT0xPT0kKCIjaXNtb2JpbGUiKS52YWwoKT8iWUVTIjoiTk8iO2VtYWlsSGFuZGxlci5jb25kaXRpb249InVuZGVmaW5lZCI9PXR5cGVvZiBnPyJ1c2VkIjpnLnRvTG93ZXJDYXNlKCk7ZW1haWxIYW5kbGVyLmNyZWRpdERhdGE9ZDtIPWVtYWlsSGFuZGxlci5nZXRKc29uT2JqZWN0KCk7JC5hamF4KHt1cmw6Ii8iK3crIi9hamF4L3NldEZpbmFuY2VNdWx0aXN0ZXBEYXRhP3dzd2lkdGg9MCIsZGF0YVR5cGU6IkpTT04iLHR5cGU6IlBPU1QiLGRhdGE6e3VzZXJJZDprLnVzZXJJZCgpLGZvcm1kYXRhOmQsc3RlcDpjLGRvbWFpbjpRLHNpdGVJZDokKCIjc2l0ZUlEIikudmFsKCl8fCQoIiN0b3BzaXRlaWQiKS52YWwoKSxsYW5nOiQoIiNhY3RpdmVzaXRlbGFuZ3VhZ2UiKS52YWwoKSxlbWFpbEhhbmRsZXJKc29uT2JqZWN0OkpTT04uc3RyaW5naWZ5KEgpfSxzdWNjZXNzOmZ1bmN0aW9uKGwpe2wuSUQmJgpsLmlkQ2hhbmdlZCYmay51c2VySWQobC5JRCl9LGNvbXBsZXRlOmZ1bmN0aW9uKGwpe2EuYWpheFByb2Nlc3M9ITF9fSl9fSxvblNob3dGdW5jdGlvblRvUnVuOmZ1bmN0aW9uKCl7aWYoYS5vblNob3dGdW5jdGlvbi5oYXNPd25Qcm9wZXJ0eSgic3RlcCIrYS5zdGVwKSYmInVuZGVmaW5lZCIhPXR5cGVvZiBhLm9uU2hvd0Z1bmN0aW9uWyJzdGVwIithLnN0ZXBdLmxlbmd0aClmb3IodmFyIGQ9MDtkPGEub25TaG93RnVuY3Rpb25bInN0ZXAiK2Euc3RlcF0ubGVuZ3RoO2QrKylrW2Eub25TaG93RnVuY3Rpb25bInN0ZXAiK2Euc3RlcF1bZF0uZnVuY10oKX0saW5pdEdvb2dsZUF1dG9jb21wbGV0ZTpmdW5jdGlvbigpe3ZhciBkPSQoJyNmaW5hbmNlX211bHRpc3RlcF9mb3JtIGlucHV0W2RhdGEtZ29vZ2xlLXBsYWNlcy1jdXN0b209InRydWUiXVtuYW1lPSJhZGRyZXNzIl0nLGIpWzBdLGM9bmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24oKXtjLmRpc2Nvbm5lY3QoKTskKCcjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSBpbnB1dFtkYXRhLWdvb2dsZS1wbGFjZXMtY3VzdG9tPSJ0cnVlIl1bbmFtZT0iYWRkcmVzcyJdJywKYikuYXR0cigiYXV0b2NvbXBsZXRlIiwibmV3LXBhc3N3b3JkIil9KTtjLm9ic2VydmUoZCx7YXR0cmlidXRlczohMCxhdHRyaWJ1dGVGaWx0ZXI6WyJhdXRvY29tcGxldGUiXX0pO2Q9JCgiI0ZJTkFOQ0VfTVVMVElTVEVQX2RlYWxlckxhdCIpLnZhbCgpO3ZhciBlPSQoIiNGSU5BTkNFX01VTFRJU1RFUF9kZWFsZXJMb25nIikudmFsKCk7ZD17bGF0OmQsbG9uZzplLHJhZGl1czoyRTV9OyQoJyNmaW5hbmNlX211bHRpc3RlcF9mb3JtIGlucHV0W2RhdGEtZ29vZ2xlLXBsYWNlcy1jdXN0b209InRydWUiXVtuYW1lPSJhZGRyZXNzIl0nLGIpLmdvb2dsZVBsYWNlcyhkKX0saW5pdEdvb2dsZUF1dG9jb21wbGV0ZTI6ZnVuY3Rpb24oKXt2YXIgZD0kKCcjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSBpbnB1dFtkYXRhLWdvb2dsZS1wbGFjZXMtY3VzdG9tPSJ0cnVlIl1bbmFtZT0iYWRkcmVzczIiXScsYilbMF0sYz1uZXcgTXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbigpe2MuZGlzY29ubmVjdCgpOwokKCcjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSBpbnB1dFtkYXRhLWdvb2dsZS1wbGFjZXMtY3VzdG9tPSJ0cnVlIl1bbmFtZT0iYWRkcmVzczIiXScsYikuYXR0cigiYXV0b2NvbXBsZXRlIiwibmV3LXBhc3N3b3JkIil9KTtjLm9ic2VydmUoZCx7YXR0cmlidXRlczohMCxhdHRyaWJ1dGVGaWx0ZXI6WyJhdXRvY29tcGxldGUiXX0pO2Q9JCgiI0ZJTkFOQ0VfTVVMVElTVEVQX2RlYWxlckxhdCIpLnZhbCgpO3ZhciBlPSQoIiNGSU5BTkNFX01VTFRJU1RFUF9kZWFsZXJMb25nIikudmFsKCk7ZD17bGF0OmQsbG9uZzplLHJhZGl1czoyRTV9OyQoJyNmaW5hbmNlX211bHRpc3RlcF9mb3JtIGlucHV0W2RhdGEtZ29vZ2xlLXBsYWNlcy1jdXN0b209InRydWUiXVtuYW1lPSJhZGRyZXNzMiJdJyxiKS5nb29nbGVQbGFjZXMoZCl9LGluaXRHb29nbGVBdXRvY29tcGxldGVFbXBsb3llcjpmdW5jdGlvbigpe3ZhciBkPSQoJyNmaW5hbmNlX211bHRpc3RlcF9mb3JtIGlucHV0W2RhdGEtZ29vZ2xlLXBsYWNlcy1jdXN0b209InRydWUiXVtuYW1lPSJhZGRyZXNzRW1wbG95ZXIiXScsCmIpWzBdLGM9bmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24oKXtjLmRpc2Nvbm5lY3QoKTskKCcjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSBpbnB1dFtkYXRhLWdvb2dsZS1wbGFjZXMtY3VzdG9tPSJ0cnVlIl1bbmFtZT0iYWRkcmVzc0VtcGxveWVyIl0nLGIpLmF0dHIoImF1dG9jb21wbGV0ZSIsIm5ldy1wYXNzd29yZCIpfSk7Yy5vYnNlcnZlKGQse2F0dHJpYnV0ZXM6ITAsYXR0cmlidXRlRmlsdGVyOlsiYXV0b2NvbXBsZXRlIl19KTtkPSQoIiNGSU5BTkNFX01VTFRJU1RFUF9kZWFsZXJMYXQiKS52YWwoKTt2YXIgZT0kKCIjRklOQU5DRV9NVUxUSVNURVBfZGVhbGVyTG9uZyIpLnZhbCgpO2Q9e2xhdDpkLGxvbmc6ZSxyYWRpdXM6MkU1fTskKCcjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSBpbnB1dFtkYXRhLWdvb2dsZS1wbGFjZXMtY3VzdG9tPSJ0cnVlIl1bbmFtZT0iYWRkcmVzc0VtcGxveWVyIl0nLGIpLmdvb2dsZVBsYWNlcyhkKX0saW5pdEdvb2dsZUF1dG9jb21wbGV0ZUVtcGxveWVyMjpmdW5jdGlvbigpe3ZhciBkPQokKCcjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSBpbnB1dFtkYXRhLWdvb2dsZS1wbGFjZXMtY3VzdG9tPSJ0cnVlIl1bbmFtZT0iYWRkcmVzc0VtcGxveWVyMiJdJyxiKVswXSxjPW5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKCl7Yy5kaXNjb25uZWN0KCk7JCgnI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gaW5wdXRbZGF0YS1nb29nbGUtcGxhY2VzLWN1c3RvbT0idHJ1ZSJdW25hbWU9ImFkZHJlc3NFbXBsb3llcjIiXScsYikuYXR0cigiYXV0b2NvbXBsZXRlIiwibmV3LXBhc3N3b3JkIil9KTtjLm9ic2VydmUoZCx7YXR0cmlidXRlczohMCxhdHRyaWJ1dGVGaWx0ZXI6WyJhdXRvY29tcGxldGUiXX0pO2Q9JCgiI0ZJTkFOQ0VfTVVMVElTVEVQX2RlYWxlckxhdCIpLnZhbCgpO3ZhciBlPSQoIiNGSU5BTkNFX01VTFRJU1RFUF9kZWFsZXJMb25nIikudmFsKCk7ZD17bGF0OmQsbG9uZzplLHJhZGl1czoyRTV9OyQoJyNmaW5hbmNlX211bHRpc3RlcF9mb3JtIGlucHV0W2RhdGEtZ29vZ2xlLXBsYWNlcy1jdXN0b209InRydWUiXVtuYW1lPSJhZGRyZXNzRW1wbG95ZXIyIl0nLApiKS5nb29nbGVQbGFjZXMoZCl9LGluaXRCaXJ0aGRhdGVDaGFuZ2U6ZnVuY3Rpb24oKXskKCIuZmluYW5jZV9tdWx0aXN0ZXBfYmlydGhkYXRlX2lucHV0X2RpdiBpbnB1dCIpLm9uKCJrZXl1cCIsZnVuY3Rpb24oKXskKHRoaXMpLnZhbCgpLmxlbmd0aD09JCh0aGlzKS5hdHRyKCJtYXhsZW5ndGgiKSYmJCh0aGlzKS5wYXJlbnQoKS5uZXh0KCIuZmluYW5jZV9tdWx0aXN0ZXBfYmlydGhkYXRlX2lucHV0X2RpdiIpLmZpbmQoImlucHV0IikudHJpZ2dlcigiZm9jdXMiKX0pfSx2YWxpZGF0ZU5vdEVtcHR5RW1wbG95ZXJTdGF0dXNUaW1lOmZ1bmN0aW9uKCl7aWYoNzA8YS5mb3JtZGF0YS5lbXBsb3ltZW50U3RhdHVzWWVhcilyZXR1cm4gYS5zaG93RXJyb3ImJigkKCdbbmFtZT0iZW1wbG95bWVudFN0YXR1c1llYXIiXScpLmNzcygiYm9yZGVyLWNvbG9yIiwiI2M4M2UzZSIpLCQoJ1tuYW1lPSJlbXBsb3ltZW50U3RhdHVzWWVhciJdJykuY3NzKCJib3JkZXItYm90dG9tLXdpZHRoIiwKIjVweCIpLCQoIiNmaW5hbmNlX211bHRpc3RlcF9mb3JtX2Vycm9yIixiKS5odG1sKCQoIiNhZGRyZXNzVGltZXNFcnJvck1zZyIpLnZhbCgpKSksITE7aWYoMTI8YS5mb3JtZGF0YS5lbXBsb3ltZW50U3RhdHVzTW9udGgpcmV0dXJuIGEuc2hvd0Vycm9yJiYoJCgnW25hbWU9ImVtcGxveW1lbnRTdGF0dXNNb250aCJdJykuY3NzKCJib3JkZXItY29sb3IiLCIjYzgzZTNlIiksJCgnW25hbWU9ImVtcGxveW1lbnRTdGF0dXNNb250aCJdJykuY3NzKCJib3JkZXItYm90dG9tLXdpZHRoIiwiNXB4IiksJCgiI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm1fZXJyb3IiLGIpLmh0bWwoJCgiI2FkZHJlc3NUaW1lc0Vycm9yTXNnIikudmFsKCkpKSwhMTtpZigwPj1hLmZvcm1kYXRhLmVtcGxveW1lbnRTdGF0dXNZZWFyJiYwPj1hLmZvcm1kYXRhLmVtcGxveW1lbnRTdGF0dXNNb250aClyZXR1cm4gYS5zaG93RXJyb3ImJigkKCdbbmFtZT0iZW1wbG95bWVudFN0YXR1c1llYXIiXScpLmNzcygiYm9yZGVyLWNvbG9yIiwKIiNjODNlM2UiKSwkKCdbbmFtZT0iZW1wbG95bWVudFN0YXR1c01vbnRoIl0nKS5jc3MoImJvcmRlci1jb2xvciIsIiNjODNlM2UiKSwkKCdbbmFtZT0iZW1wbG95bWVudFN0YXR1c1llYXIiXScpLmNzcygiYm9yZGVyLWJvdHRvbS13aWR0aCIsIjVweCIpLCQoJ1tuYW1lPSJlbXBsb3ltZW50U3RhdHVzTW9udGgiXScpLmNzcygiYm9yZGVyLWJvdHRvbS13aWR0aCIsIjVweCIpLCQoIiNmaW5hbmNlX211bHRpc3RlcF9mb3JtX2Vycm9yIixiKS5odG1sKCQoIiNhZGRyZXNzVGltZXNFcnJvck1zZyIpLnZhbCgpKSksITE7YS5zaG93RXJyb3ImJigkKCdbbmFtZT0iZW1wbG95bWVudFN0YXR1c1llYXIiXScpLmNzcygiYm9yZGVyLWNvbG9yIiwiIiksJCgnW25hbWU9ImVtcGxveW1lbnRTdGF0dXNNb250aCJdJykuY3NzKCJib3JkZXItY29sb3IiLCIiKSwkKCdbbmFtZT0iZW1wbG95bWVudFN0YXR1c1llYXIiXScpLmNzcygiYm9yZGVyLWJvdHRvbS13aWR0aCIsIiIpLCQoJ1tuYW1lPSJlbXBsb3ltZW50U3RhdHVzTW9udGgiXScpLmNzcygiYm9yZGVyLWJvdHRvbS13aWR0aCIsCiIiKSwkKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV9lcnJvciIsYikuaHRtbCgiIikpOyIxIj09eCYmKDYwPjEyKnBhcnNlSW50KGEuZm9ybWRhdGEuZW1wbG95bWVudFN0YXR1c1llYXIpK3BhcnNlSW50KGEuZm9ybWRhdGEuZW1wbG95bWVudFN0YXR1c01vbnRoKT9hLm5leHRTdGVwRGVmYXVsdFZhbHVlcy5zdGVwMTc9Mjk6YS5uZXh0U3RlcERlZmF1bHRWYWx1ZXMuc3RlcDE3PTIyKTtyZXR1cm4hMH0sdmFsaWRhdGVOb3RFbXB0eUVtcGxveWVyU3RhdHVzVGltZTI6ZnVuY3Rpb24oKXtpZig3MDxhLmZvcm1kYXRhLmVtcGxveW1lbnRTdGF0dXNZZWFyMilyZXR1cm4gYS5zaG93RXJyb3ImJigkKCdbbmFtZT0iZW1wbG95bWVudFN0YXR1c1llYXIyIl0nKS5jc3MoImJvcmRlci1jb2xvciIsIiNjODNlM2UiKSwkKCdbbmFtZT0iZW1wbG95bWVudFN0YXR1c1llYXIyIl0nKS5jc3MoImJvcmRlci1ib3R0b20td2lkdGgiLCI1cHgiKSwkKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV9lcnJvciIsCmIpLmh0bWwoJCgiI2FkZHJlc3NUaW1lc0Vycm9yTXNnIikudmFsKCkpKSwhMTtpZigxMjxhLmZvcm1kYXRhLmVtcGxveW1lbnRTdGF0dXNNb250aDIpcmV0dXJuIGEuc2hvd0Vycm9yJiYoJCgnW25hbWU9ImVtcGxveW1lbnRTdGF0dXNNb250aDIiXScpLmNzcygiYm9yZGVyLWNvbG9yIiwiI2M4M2UzZSIpLCQoJ1tuYW1lPSJlbXBsb3ltZW50U3RhdHVzTW9udGgyIl0nKS5jc3MoImJvcmRlci1ib3R0b20td2lkdGgiLCI1cHgiKSwkKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV9lcnJvciIsYikuaHRtbCgkKCIjYWRkcmVzc1RpbWVzRXJyb3JNc2ciKS52YWwoKSkpLCExO2lmKDA+PWEuZm9ybWRhdGEuZW1wbG95bWVudFN0YXR1c1llYXIyJiYwPj1hLmZvcm1kYXRhLmVtcGxveW1lbnRTdGF0dXNNb250aDIpcmV0dXJuIGEuc2hvd0Vycm9yJiYoJCgnW25hbWU9ImVtcGxveW1lbnRTdGF0dXNZZWFyMiJdJykuY3NzKCJib3JkZXItY29sb3IiLCIjYzgzZTNlIiksJCgnW25hbWU9ImVtcGxveW1lbnRTdGF0dXNNb250aDIiXScpLmNzcygiYm9yZGVyLWNvbG9yIiwKIiNjODNlM2UiKSwkKCdbbmFtZT0iZW1wbG95bWVudFN0YXR1c1llYXIyIl0nKS5jc3MoImJvcmRlci1ib3R0b20td2lkdGgiLCI1cHgiKSwkKCdbbmFtZT0iZW1wbG95bWVudFN0YXR1c01vbnRoMiJdJykuY3NzKCJib3JkZXItYm90dG9tLXdpZHRoIiwiNXB4IiksJCgiI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm1fZXJyb3IiLGIpLmh0bWwoJCgiI2FkZHJlc3NUaW1lc0Vycm9yTXNnIikudmFsKCkpKSwhMTthLnNob3dFcnJvciYmKCQoJ1tuYW1lPSJlbXBsb3ltZW50U3RhdHVzWWVhcjIiXScpLmNzcygiYm9yZGVyLWNvbG9yIiwiIiksJCgnW25hbWU9ImVtcGxveW1lbnRTdGF0dXNNb250aDIiXScpLmNzcygiYm9yZGVyLWNvbG9yIiwiIiksJCgnW25hbWU9ImVtcGxveW1lbnRTdGF0dXNZZWFyMiJdJykuY3NzKCJib3JkZXItYm90dG9tLXdpZHRoIiwiIiksJCgnW25hbWU9ImVtcGxveW1lbnRTdGF0dXNNb250aDIiXScpLmNzcygiYm9yZGVyLWJvdHRvbS13aWR0aCIsIiIpLCQoIiNmaW5hbmNlX211bHRpc3RlcF9mb3JtX2Vycm9yIiwKYikuaHRtbCgiIikpO3JldHVybiEwfSx2YWxpZGF0ZU5vdEVtcHR5QWRkcmVzc1RpbWU6ZnVuY3Rpb24oKXtpZig3MDxhLmZvcm1kYXRhLmFkZHJlc3NfeWVhcnMpcmV0dXJuIGEuc2hvd0Vycm9yJiYoJCgnW25hbWU9ImFkZHJlc3NfeWVhcnMiXScpLmNzcygiYm9yZGVyLWNvbG9yIiwiI2M4M2UzZSIpLCQoJ1tuYW1lPSJhZGRyZXNzX3llYXJzIl0nKS5jc3MoImJvcmRlci1ib3R0b20td2lkdGgiLCI1cHgiKSwkKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV9lcnJvciIsYikuaHRtbCgkKCIjYWRkcmVzc1RpbWVzRXJyb3JNc2ciKS52YWwoKSkpLCExO2lmKDEyPGEuZm9ybWRhdGEuYWRkcmVzc19tb250aHMpcmV0dXJuIGEuc2hvd0Vycm9yJiYoJCgnW25hbWU9ImFkZHJlc3NfbW9udGhzIl0nKS5jc3MoImJvcmRlci1jb2xvciIsIiNjODNlM2UiKSwkKCdbbmFtZT0iYWRkcmVzc19tb250aHMiXScpLmNzcygiYm9yZGVyLWJvdHRvbS13aWR0aCIsIjVweCIpLCQoIiNmaW5hbmNlX211bHRpc3RlcF9mb3JtX2Vycm9yIiwKYikuaHRtbCgkKCIjYWRkcmVzc1RpbWVzRXJyb3JNc2ciKS52YWwoKSkpLCExO2lmKDA+PWEuZm9ybWRhdGEuYWRkcmVzc195ZWFycyYmMD49YS5mb3JtZGF0YS5hZGRyZXNzX21vbnRocylyZXR1cm4gYS5zaG93RXJyb3ImJigkKCdbbmFtZT0iYWRkcmVzc195ZWFycyJdJykuY3NzKCJib3JkZXItY29sb3IiLCIjYzgzZTNlIiksJCgnW25hbWU9ImFkZHJlc3NfbW9udGhzIl0nKS5jc3MoImJvcmRlci1jb2xvciIsIiNjODNlM2UiKSwkKCdbbmFtZT0iYWRkcmVzc195ZWFycyJdJykuY3NzKCJib3JkZXItYm90dG9tLXdpZHRoIiwiNXB4IiksJCgnW25hbWU9ImFkZHJlc3NfbW9udGhzIl0nKS5jc3MoImJvcmRlci1ib3R0b20td2lkdGgiLCI1cHgiKSwkKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV9lcnJvciIsYikuaHRtbCgkKCIjYWRkcmVzc1RpbWVzRXJyb3JNc2ciKS52YWwoKSkpLCExO2Euc2hvd0Vycm9yJiYoJCgnW25hbWU9ImFkZHJlc3NfeWVhcnMiXScpLmNzcygiYm9yZGVyLWNvbG9yIiwKIiIpLCQoJ1tuYW1lPSJhZGRyZXNzX21vbnRocyJdJykuY3NzKCJib3JkZXItY29sb3IiLCIiKSwkKCdbbmFtZT0iYWRkcmVzc195ZWFycyJdJykuY3NzKCJib3JkZXItYm90dG9tLXdpZHRoIiwiIiksJCgnW25hbWU9ImFkZHJlc3NfbW9udGhzIl0nKS5jc3MoImJvcmRlci1ib3R0b20td2lkdGgiLCIiKSwkKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV9lcnJvciIsYikuaHRtbCgiIikpOyIxIj09eCYmKDI0PjEyKnBhcnNlSW50KGEuZm9ybWRhdGEuYWRkcmVzc195ZWFycykrcGFyc2VJbnQoYS5mb3JtZGF0YS5hZGRyZXNzX21vbnRocyk\/YS5uZXh0U3RlcERlZmF1bHRWYWx1ZXMuc3RlcDEyPTI3OmEubmV4dFN0ZXBEZWZhdWx0VmFsdWVzLnN0ZXAxMj0xMyk7cmV0dXJuITB9LHZhbGlkYXRlQ29uc2VudHM6ZnVuY3Rpb24oKXtyZXR1cm4iUUMiIT0kKCIjRklOQU5DRV9NVUxUSVNURVBfRGVhbGVyUHJvdmluY2UiLGIpLnZhbCgpfHxhLmZvcm1kYXRhLmNvbnNlbnRBY2NvdW50TW9uaXRvcmluZyYmCmEuZm9ybWRhdGEuY29uc2VudENyZWRpdEFzc2Vzc21lbnQ\/ITA6ITF9LHZhbGlkYXRlTm90RW1wdHlBZGRyZXNzMlRpbWU6ZnVuY3Rpb24oKXtpZig3MDxhLmZvcm1kYXRhLmFkZHJlc3MyX3llYXJzKXJldHVybiBhLnNob3dFcnJvciYmKCQoJ1tuYW1lPSJhZGRyZXNzMl95ZWFycyJdJykuY3NzKCJib3JkZXItY29sb3IiLCIjYzgzZTNlIiksJCgnW25hbWU9ImFkZHJlc3MyX3llYXJzIl0nKS5jc3MoImJvcmRlci1ib3R0b20td2lkdGgiLCI1cHgiKSwkKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV9lcnJvciIsYikuaHRtbCgkKCIjYWRkcmVzc1RpbWVzRXJyb3JNc2ciKS52YWwoKSkpLCExO2lmKDEyPGEuZm9ybWRhdGEuYWRkcmVzczJfbW9udGhzKXJldHVybiBhLnNob3dFcnJvciYmKCQoJ1tuYW1lPSJhZGRyZXNzMl9tb250aHMiXScpLmNzcygiYm9yZGVyLWNvbG9yIiwiI2M4M2UzZSIpLCQoJ1tuYW1lPSJhZGRyZXNzMl9tb250aHMiXScpLmNzcygiYm9yZGVyLWJvdHRvbS13aWR0aCIsCiI1cHgiKSwkKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV9lcnJvciIsYikuaHRtbCgkKCIjYWRkcmVzc1RpbWVzRXJyb3JNc2ciKS52YWwoKSkpLCExO2lmKDA+PWEuZm9ybWRhdGEuYWRkcmVzczJfeWVhcnMmJjA+PWEuZm9ybWRhdGEuYWRkcmVzczJfbW9udGhzKXJldHVybiBhLnNob3dFcnJvciYmKCQoJ1tuYW1lPSJhZGRyZXNzMl95ZWFycyJdJykuY3NzKCJib3JkZXItY29sb3IiLCIjYzgzZTNlIiksJCgnW25hbWU9ImFkZHJlc3MyX21vbnRocyJdJykuY3NzKCJib3JkZXItY29sb3IiLCIjYzgzZTNlIiksJCgnW25hbWU9ImFkZHJlc3MyX3llYXJzIl0nKS5jc3MoImJvcmRlci1ib3R0b20td2lkdGgiLCI1cHgiKSwkKCdbbmFtZT0iYWRkcmVzczJfbW9udGhzIl0nKS5jc3MoImJvcmRlci1ib3R0b20td2lkdGgiLCI1cHgiKSwkKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV9lcnJvciIsYikuaHRtbCgkKCIjYWRkcmVzczJUaW1lc0Vycm9yTXNnIikudmFsKCkpKSwhMTthLnNob3dFcnJvciYmCigkKCdbbmFtZT0iYWRkcmVzczJfeWVhcnMiXScpLmNzcygiYm9yZGVyLWNvbG9yIiwiIiksJCgnW25hbWU9ImFkZHJlc3MyX21vbnRocyJdJykuY3NzKCJib3JkZXItY29sb3IiLCIiKSwkKCdbbmFtZT0iYWRkcmVzczJfeWVhcnMiXScpLmNzcygiYm9yZGVyLWJvdHRvbS13aWR0aCIsIiIpLCQoJ1tuYW1lPSJhZGRyZXNzMl9tb250aHMiXScpLmNzcygiYm9yZGVyLWJvdHRvbS13aWR0aCIsIiIpLCQoIiNmaW5hbmNlX211bHRpc3RlcF9mb3JtX2Vycm9yIixiKS5odG1sKCIiKSk7cmV0dXJuITB9LHZhbGlkYXRlTm90RW1wdHlNb250aGx5SW5jb21lVGltZTpmdW5jdGlvbigpe2lmKDcwPGEuZm9ybWRhdGEubW9udGhseUluY29tZV95ZWFycylyZXR1cm4gYS5zaG93RXJyb3ImJigkKCdbbmFtZT0ibW9udGhseUluY29tZV95ZWFycyJdJykuY3NzKCJib3JkZXItY29sb3IiLCIjYzgzZTNlIiksJCgnW25hbWU9Im1vbnRobHlJbmNvbWVfeWVhcnMiXScpLmNzcygiYm9yZGVyLWJvdHRvbS13aWR0aCIsCiI1cHgiKSwkKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV9lcnJvciIsYikuaHRtbCgkKCIjbW9udGhseUluY29tZVRpbWVzRXJyb3JNc2ciKS52YWwoKSkpLCExO2lmKDEyPGEuZm9ybWRhdGEubW9udGhseUluY29tZV9tb250aHMpcmV0dXJuIGEuc2hvd0Vycm9yJiYoJCgnW25hbWU9Im1vbnRobHlJbmNvbWVfbW9udGhzIl0nKS5jc3MoImJvcmRlci1jb2xvciIsIiNjODNlM2UiKSwkKCdbbmFtZT0ibW9udGhseUluY29tZV9tb250aHMiXScpLmNzcygiYm9yZGVyLWJvdHRvbS13aWR0aCIsIjVweCIpLCQoIiNmaW5hbmNlX211bHRpc3RlcF9mb3JtX2Vycm9yIixiKS5odG1sKCQoIiNtb250aGx5SW5jb21lVGltZXNFcnJvck1zZyIpLnZhbCgpKSksITE7aWYoMD49YS5mb3JtZGF0YS5tb250aGx5SW5jb21lX3llYXJzJiYwPj1hLmZvcm1kYXRhLm1vbnRobHlJbmNvbWVfbW9udGhzKXJldHVybiBhLnNob3dFcnJvciYmKCQoJ1tuYW1lPSJtb250aGx5SW5jb21lX3llYXJzIl0nKS5jc3MoImJvcmRlci1jb2xvciIsCiIjYzgzZTNlIiksJCgnW25hbWU9Im1vbnRobHlJbmNvbWVfbW9udGhzIl0nKS5jc3MoImJvcmRlci1jb2xvciIsIiNjODNlM2UiKSwkKCdbbmFtZT0ibW9udGhseUluY29tZV95ZWFycyJdJykuY3NzKCJib3JkZXItYm90dG9tLXdpZHRoIiwiNXB4IiksJCgnW25hbWU9Im1vbnRobHlJbmNvbWVfbW9udGhzIl0nKS5jc3MoImJvcmRlci1ib3R0b20td2lkdGgiLCI1cHgiKSwkKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV9lcnJvciIsYikuaHRtbCgkKCIjbW9udGhseUluY29tZVRpbWVzRXJyb3JNc2ciKS52YWwoKSkpLCExO2Euc2hvd0Vycm9yJiYoJCgnW25hbWU9Im1vbnRobHlJbmNvbWVfeWVhcnMiXScpLmNzcygiYm9yZGVyLWNvbG9yIiwiIiksJCgnW25hbWU9Im1vbnRobHlJbmNvbWVfbW9udGhzIl0nKS5jc3MoImJvcmRlci1jb2xvciIsIiIpLCQoJ1tuYW1lPSJtb250aGx5SW5jb21lX3llYXJzIl0nKS5jc3MoImJvcmRlci1ib3R0b20td2lkdGgiLCIiKSwkKCdbbmFtZT0ibW9udGhseUluY29tZV9tb250aHMiXScpLmNzcygiYm9yZGVyLWJvdHRvbS13aWR0aCIsCiIiKSwkKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV9lcnJvciIsYikuaHRtbCgiIikpO3JldHVybiEwfSx2YWxpZGF0ZVBob25lTnVtYmVyOmZ1bmN0aW9uKGQpe3JldHVybiBkJiYocGhvbmU9ZC5yZXBsYWNlKCIoIiwiIikucmVwbGFjZSgiKSIsIiIpLnJlcGxhY2UoIiAiLCIiKS5yZXBsYWNlKCItIiwiIiksMTA9PXBob25lLmxlbmd0aCk\/KCQudmFsaWRpdHkuc2V0dXAoe291dHB1dE1vZGU6InBvcHVwIixzY3JvbGxUbzohMX0pLnN0YXJ0KCksJCgiI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0iLGIpLmZpbmQoJ2lucHV0W25hbWU9InBob25lTnVtYmVyIl0nKS52YWxpZGF0ZVBob25lKCksJC52YWxpZGl0eS5lbmQoKS52YWxpZCk6ITF9LHZhbGlkYXRlUGhvbmVOdW1iZXJFbXBsb3llcjpmdW5jdGlvbihkKXtyZXR1cm4gZCYmKHBob25lPWQucmVwbGFjZSgiKCIsIiIpLnJlcGxhY2UoIikiLCIiKS5yZXBsYWNlKCIgIiwiIikucmVwbGFjZSgiLSIsIiIpLDEwPT1waG9uZS5sZW5ndGgpPwooJC52YWxpZGl0eS5zZXR1cCh7b3V0cHV0TW9kZToicG9wdXAiLHNjcm9sbFRvOiExfSkuc3RhcnQoKSwkKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSIsYikuZmluZCgiaW5wdXQuZW1wbG95ZXJQaG9uZSIpLnZhbGlkYXRlUGhvbmUoKSwkLnZhbGlkaXR5LmVuZCgpLnZhbGlkKTohMX0sdmFsaWRhdGVQaG9uZU51bWJlckVtcGxveWVyMjpmdW5jdGlvbihkKXtyZXR1cm4gZCYmKHBob25lPWQucmVwbGFjZSgiKCIsIiIpLnJlcGxhY2UoIikiLCIiKS5yZXBsYWNlKCIgIiwiIikucmVwbGFjZSgiLSIsIiIpLDEwPT1waG9uZS5sZW5ndGgpPygkLnZhbGlkaXR5LnNldHVwKHtvdXRwdXRNb2RlOiJwb3B1cCIsc2Nyb2xsVG86ITF9KS5zdGFydCgpLCQoIiNmaW5hbmNlX211bHRpc3RlcF9mb3JtIixiKS5maW5kKCJpbnB1dC5lbXBsb3llclBob25lMiIpLnZhbGlkYXRlUGhvbmUoKSwkLnZhbGlkaXR5LmVuZCgpLnZhbGlkKTohMX0sdmFsaWRhdGVTSU46ZnVuY3Rpb24oZCl7cmV0dXJuKCIxIj09CnUmJiIwIj09QXx8IjEiPT14KSYmIiI9PWQmJjA8PWEub3B0aW9uYWxTdGVwLmluZGV4T2YoMjIpfHxkJiYoc2luPWQucmVwbGFjZUFsbCgiICIsIiIpLDk9PXNpbi5sZW5ndGgpPyEwOiExfSx2YWxpZGF0ZVZlaGljbGU6ZnVuY3Rpb24oKXt2YXIgZD0hMTtzd2l0Y2goYS5jdXJyZW50RGVwdCl7Y2FzZSAiVVNFRCI6ZD0iIiE9YS5mb3JtZGF0YS5jdXJyZW50TWFrZSYmIiIhPWEuZm9ybWRhdGEuY3VycmVudE1vZGVsJiYiIiE9YS5mb3JtZGF0YS5jdXJyZW50WWVhciYmIiIhPWEuZm9ybWRhdGEuY3VycmVudFN0b2NrTnVtYmVyJiYiIiE9YS5mb3JtZGF0YS5jdXJyZW50VHJpbSYmIiIhPWEuZm9ybWRhdGEuY3VycmVudENhcklkO2JyZWFrO2Nhc2UgIk5FV0lOViI6ZD0iIiE9YS5mb3JtZGF0YS5jdXJyZW50TWFrZSYmIiIhPWEuZm9ybWRhdGEuY3VycmVudE1vZGVsJiYiIiE9YS5mb3JtZGF0YS5jdXJyZW50WWVhciYmIiIhPWEuZm9ybWRhdGEuY3VycmVudFN0b2NrTnVtYmVyJiYiIiE9CmEuZm9ybWRhdGEuY3VycmVudFRyaW0mJiIiIT1hLmZvcm1kYXRhLmN1cnJlbnRDYXJJZCYmIiIhPWEuZm9ybWRhdGEuY3VycmVudFN0eWxlaWQ7YnJlYWs7Y2FzZSAiTkVXIjpkPSIiIT1hLmZvcm1kYXRhLmN1cnJlbnRNYWtlJiYiIiE9YS5mb3JtZGF0YS5jdXJyZW50TW9kZWwmJiIiIT1hLmZvcm1kYXRhLmN1cnJlbnRZZWFyJiYiIiE9YS5mb3JtZGF0YS5jdXJyZW50U3R5bGVpZCYmIiIhPWEuZm9ybWRhdGEuY3VycmVudFRyaW19cmV0dXJuIGR9LGluaXRWZWhpY2xlU2VsZWN0aW9uOmZ1bmN0aW9uKCl7YS5pbml0VmVoaWNsZVNlbGVjdGlvbkZpcnN0JiYoJCgnaW5wdXRbbmFtZT0iZmluYW5jZU11bHRpc3RlcERlcHQiXScsYikub24oImNoYW5nZSIsZnVuY3Rpb24oKXtsZXQgZD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidmVoaWNsZVNlbGVjdGlvbldyYXBwZXIiKTtkLnJlcGxhY2VXaXRoKGQuY2xvbmVOb2RlKCEwKSk7ay5pbml0VmVoaWNsZVNlbGVjdGlvbigpfSksYS5pbml0VmVoaWNsZVNlbGVjdGlvbkZpcnN0PQohMSk7JCgiI2ZpbmFuY2VNdWx0aXN0ZXBNYWtlIixiKS5vZmYoImNoYW5nZSIpOyQoIiNmaW5hbmNlTXVsdGlzdGVwTW9kZWwiLGIpLm9mZigiY2hhbmdlIik7JCgiI2ZpbmFuY2VNdWx0aXN0ZXBUcmltIixiKS5vZmYoImNoYW5nZSIpOyJVU0VEIj09YS5jdXJyZW50RGVwdHx8Ik5FV0lOViI9PWEuY3VycmVudERlcHQ\/KG0oIm5ld2ludiIpLCQoIiNmaW5hbmNlTXVsdGlzdGVwTWFrZSIsYikub24oImNoYW5nZSIsZnVuY3Rpb24oKXsiIiE9JCgiI2ZpbmFuY2VNdWx0aXN0ZXBNYWtlIixiKS52YWwoKSYmKGEuZm9ybWRhdGEuY3VycmVudE1vZGVsPSIiLGEuZm9ybWRhdGEuY3VycmVudE1vZGVsVGV4dD0iIixhLmZvcm1kYXRhLmN1cnJlbnRUcmltPSIiLGEuZm9ybWRhdGEuY3VycmVudFllYXI9IiIsYS5mb3JtZGF0YS5jdXJyZW50U3R5bGVpZD0iIixhLmZvcm1kYXRhLnZlaGljbGVQcmljZT0iIixhLmZvcm1kYXRhLmN1cnJlbnRDYXJJZD0iIixhLmZvcm1kYXRhLmN1cnJlbnRTdG9ja051bWJlcj0KIiIsYS5mb3JtZGF0YS5jdXJyZW50TWlsZWFnZT0xMCxrLmNoZWNrVmFsaWRpdHkoKSxuKCJuZXdpbnYiLCQoIiNmaW5hbmNlTXVsdGlzdGVwTWFrZSIsYikudmFsKCkpKX0pLCQoIiNmaW5hbmNlTXVsdGlzdGVwTW9kZWwiLGIpLm9uKCJjaGFuZ2UiLGZ1bmN0aW9uKCl7IiIhPSQoIiNmaW5hbmNlTXVsdGlzdGVwTWFrZSIsYikudmFsKCkmJiIiIT0kKCIjZmluYW5jZU11bHRpc3RlcE1vZGVsIixiKS52YWwoKSYmKGEuZm9ybWRhdGEuY3VycmVudFRyaW09IiIsYS5mb3JtZGF0YS5jdXJyZW50WWVhcj0iIixhLmZvcm1kYXRhLmN1cnJlbnRTdHlsZWlkPSIiLGEuZm9ybWRhdGEudmVoaWNsZVByaWNlPSIiLGEuZm9ybWRhdGEuY3VycmVudENhcklkPSIiLGEuZm9ybWRhdGEuY3VycmVudFN0b2NrTnVtYmVyPSIiLGEuZm9ybWRhdGEuY3VycmVudE1pbGVhZ2U9MTAsay5jaGVja1ZhbGlkaXR5KCksdigkKCIjZmluYW5jZU11bHRpc3RlcE1ha2UiLGIpLnZhbCgpLCQoIiNmaW5hbmNlTXVsdGlzdGVwTW9kZWwgb3B0aW9uOnNlbGVjdGVkIiwKYikuYXR0cigiZGF0YS1tb2RlbCIpKSl9KSwkKCIjZmluYW5jZU11bHRpc3RlcFRyaW0iLGIpLm9uKCJjaGFuZ2UiLGZ1bmN0aW9uKCl7YS5mb3JtZGF0YS5jdXJyZW50TWFrZT0kKCIjZmluYW5jZU11bHRpc3RlcE1ha2UiLGIpLnZhbCgpO2EuZm9ybWRhdGEuY3VycmVudE1vZGVsPSQoIiNmaW5hbmNlTXVsdGlzdGVwTW9kZWwgb3B0aW9uOnNlbGVjdGVkIixiKS5hdHRyKCJkYXRhLW1vZGVsIik7YS5mb3JtZGF0YS5jdXJyZW50VHJpbT0kKCIjZmluYW5jZU11bHRpc3RlcFRyaW0iLGIpLnZhbCgpO2EuZm9ybWRhdGEuY3VycmVudFllYXI9JCgiI2ZpbmFuY2VNdWx0aXN0ZXBUcmltIG9wdGlvbjpzZWxlY3RlZCIsYikuYXR0cigiZGF0YS15ZWFyIik7YS5mb3JtZGF0YS5jdXJyZW50U3R5bGVpZD0kKCIjZmluYW5jZU11bHRpc3RlcFRyaW0gb3B0aW9uOnNlbGVjdGVkIixiKS5hdHRyKCJkYXRhLXN0eWxlaWQiKTthLmZvcm1kYXRhLnZlaGljbGVQcmljZT0kKCIjZmluYW5jZU11bHRpc3RlcFRyaW0gb3B0aW9uOnNlbGVjdGVkIiwKYikuYXR0cigiZGF0YS1wcmljZSIpO2EuZm9ybWRhdGEuY3VycmVudENhcklkPSQoIiNmaW5hbmNlTXVsdGlzdGVwVHJpbSBvcHRpb246c2VsZWN0ZWQiLGIpLmF0dHIoImRhdGEtdmVoaWNsZWlkIik7YS5mb3JtZGF0YS5jdXJyZW50U3RvY2tOdW1iZXI9JCgiI2ZpbmFuY2VNdWx0aXN0ZXBUcmltIG9wdGlvbjpzZWxlY3RlZCIsYikuYXR0cigiZGF0YS1zdG9ja251bWJlciIpO2EuZm9ybWRhdGEuY3VycmVudE1pbGVhZ2U9JCgiI2ZpbmFuY2VNdWx0aXN0ZXBUcmltIG9wdGlvbjpzZWxlY3RlZCIsYikuYXR0cigiZGF0YS1taWxlYWdlIik7dmFyIGQ9JCgiI2ZpbmFuY2VNdWx0aXN0ZXBUcmltIG9wdGlvbjpzZWxlY3RlZCIsYikuYXR0cigiZGF0YS1pc25ldyIpLGM9JCgiI2ZpbmFuY2VNdWx0aXN0ZXBUcmltIG9wdGlvbjpzZWxlY3RlZCIsYikuYXR0cigiZGF0YS1pc2RlbW8iKSYmIjEiPT0kKCdpbnB1dFtuYW1lPSJGSU5BTkNFX0RFTU9BU05FVyJdJyxiKS52YWwoKTthLmN1cnJlbnREZXB0PQoiMSI9PWR8fGM\/Ik5FV0lOViI6IlVTRUQiO2suY2hlY2tWYWxpZGl0eSgpfSkpOihtKGEuY3VycmVudERlcHQpLCQoIiNmaW5hbmNlTXVsdGlzdGVwTWFrZSIsYikub24oImNoYW5nZSIsZnVuY3Rpb24oKXsiIiE9JCgiI2ZpbmFuY2VNdWx0aXN0ZXBNYWtlIixiKS52YWwoKSYmKGEuZm9ybWRhdGEuY3VycmVudE1vZGVsPSIiLGEuZm9ybWRhdGEuY3VycmVudE1vZGVsVGV4dD0iIixhLmZvcm1kYXRhLmN1cnJlbnRZZWFyPSIiLGEuZm9ybWRhdGEuY3VycmVudFRyaW09IiIsYS5mb3JtZGF0YS5jdXJyZW50TWlsZWFnZT0xMCxhLmZvcm1kYXRhLmN1cnJlbnRTdHlsZWlkPSIiLGEuZm9ybWRhdGEudmVoaWNsZVByaWNlPSIiLGsuY2hlY2tWYWxpZGl0eSgpLG4oYS5jdXJyZW50RGVwdCwkKCIjZmluYW5jZU11bHRpc3RlcE1ha2UiLGIpLnZhbCgpKSl9KSwkKCIjZmluYW5jZU11bHRpc3RlcE1vZGVsIixiKS5vbigiY2hhbmdlIixmdW5jdGlvbigpeyIiIT0kKCIjZmluYW5jZU11bHRpc3RlcE1ha2UiLApiKS52YWwoKSYmIiIhPSQoIiNmaW5hbmNlTXVsdGlzdGVwTW9kZWwiLGIpLnZhbCgpJiYoYS5mb3JtZGF0YS5jdXJyZW50WWVhcj0iIixhLmZvcm1kYXRhLmN1cnJlbnRUcmltPSIiLGEuZm9ybWRhdGEuY3VycmVudE1pbGVhZ2U9MTAsYS5mb3JtZGF0YS5jdXJyZW50U3R5bGVpZD0iIixhLmZvcm1kYXRhLnZlaGljbGVQcmljZT0iIixrLmNoZWNrVmFsaWRpdHkoKSxxKCQoIiNmaW5hbmNlTXVsdGlzdGVwTWFrZSIsYikudmFsKCksJCgiI2ZpbmFuY2VNdWx0aXN0ZXBNb2RlbCBvcHRpb246c2VsZWN0ZWQiLGIpLmF0dHIoImRhdGEtbW9kZWwiKSwkKCIjZmluYW5jZU11bHRpc3RlcE1vZGVsIG9wdGlvbjpzZWxlY3RlZCIsYikuYXR0cigiZGF0YS15ZWFyIikpKX0pLCQoIiNmaW5hbmNlTXVsdGlzdGVwVHJpbSIsYikub24oImNoYW5nZSIsZnVuY3Rpb24oKXthLmZvcm1kYXRhLmN1cnJlbnRNYWtlPSQoIiNmaW5hbmNlTXVsdGlzdGVwTWFrZSIsYikudmFsKCk7YS5mb3JtZGF0YS5jdXJyZW50TW9kZWw9CiQoIiNmaW5hbmNlTXVsdGlzdGVwTW9kZWwgb3B0aW9uOnNlbGVjdGVkIixiKS5hdHRyKCJkYXRhLW1vZGVsIik7YS5mb3JtZGF0YS5jdXJyZW50WWVhcj0kKCIjZmluYW5jZU11bHRpc3RlcE1vZGVsIG9wdGlvbjpzZWxlY3RlZCIsYikuYXR0cigiZGF0YS15ZWFyIik7YS5mb3JtZGF0YS5jdXJyZW50VHJpbT0kKCIjZmluYW5jZU11bHRpc3RlcFRyaW0iLGIpLnZhbCgpO2EuZm9ybWRhdGEuY3VycmVudE1pbGVhZ2U9MTA7YS5mb3JtZGF0YS5jdXJyZW50U3R5bGVpZD0kKCIjZmluYW5jZU11bHRpc3RlcFRyaW0gb3B0aW9uOnNlbGVjdGVkIixiKS5hdHRyKCJkYXRhLXN0eWxlaWQiKTthLmZvcm1kYXRhLnZlaGljbGVQcmljZT0kKCIjZmluYW5jZU11bHRpc3RlcFRyaW0gb3B0aW9uOnNlbGVjdGVkIixiKS5hdHRyKCJkYXRhLXByaWNlIik7ay5jaGVja1ZhbGlkaXR5KCl9KSl9LHZhbGlkYXRlUGF5bWVudDpmdW5jdGlvbigpe3JldHVybiIiIT1hLmZvcm1kYXRhLnBheW1lbnRUeXBlJiYKIiIhPWEuZm9ybWRhdGEucGF5bWVudFRlcm0mJiIiIT1hLmZvcm1kYXRhLnBheW1lbnRJbnRlcnZhbCYmIiIhPWEuZm9ybWRhdGEucGF5bWVudFZhbHVlJiYiIiE9YS5mb3JtZGF0YS5wYXltZW50UmF0ZXx8YS5mb3JtZGF0YS5ub1BheW1lbnR9LGluaXRDYWxjdWxhdG9yOmZ1bmN0aW9uKCl7dmFyIGQ9JCgiYm9keSIpLmhhc0NsYXNzKCJGUkVOQ0giKT8iIHN1ciBjZSAiK2EuZm9ybWRhdGEuY3VycmVudE1ha2UrIiAiK2EuZm9ybWRhdGEuY3VycmVudE1vZGVsKyIgIithLmZvcm1kYXRhLmN1cnJlbnRZZWFyOiIgb24gdGhpcyAiK2EuZm9ybWRhdGEuY3VycmVudFllYXIrIiAiK2EuZm9ybWRhdGEuY3VycmVudE1ha2UrIiAiK2EuZm9ybWRhdGEuY3VycmVudE1vZGVsOyQoIiNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC5tdWx0aXN0ZXBQYXltZW50VmVoaWNsZSIsYikudGV4dChkKTtpZigiTkVXIj09YS5jdXJyZW50RGVwdHx8Ik5FV0lOViI9PWEuY3VycmVudERlcHQpeyQoIiNmaW5hbmNlX211bHRpc3RlcF9mb3JtX2Vycm9yIiwKYikuaHRtbCgiIik7YS5jYWxjdWxhdG9yRnVuY3Rpb25zPW5ldyBjYWxjdWxhdG9yRnVuY3Rpb25zKCIjIitiWzBdLmlkKyIgI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0iKTtkPSJORVdJTlYiPT1hLmN1cnJlbnREZXB0O2xldCBlPSJmaW5hbmNpbmciLGY9MCxnPTAsbD0kKCdpbnB1dFtuYW1lPSJBRE1JTl9TSE9XX0xPV0VTVF9QQVlNRU5UX0lOVEVSVkFMIl0nKS52YWwoKTt2YXIgYz0yRTQ7Q29va2llcy5nZXQoInBheW1lbnRDYWxjdWxhdG9yU2VsZWN0ZWRPcHRpb25zIikmJihjPUNvb2tpZXMuZ2V0KCJwYXltZW50Q2FsY3VsYXRvclNlbGVjdGVkT3B0aW9ucyIpLnNwbGl0KCItIiksZT0idW5kZWZpbmVkIiE9Y1swXT9jWzBdOmUsZj1jWzFdLGc9cGFyc2VJbnQoY1s0XSl8fDAsbD1jWzJdLGM9Y1szXSk7YS5jYWxjdWxhdG9yRnVuY3Rpb25zLmluaXQoYS5mb3JtZGF0YS5jdXJyZW50U3R5bGVpZCxlLGcsMCxsLGMsZCxhLmZvcm1kYXRhLmN1cnJlbnRTdG9ja051bWJlcik7JCgiYm9keSIpLm9mZigiY2hhbmdlIiwKIiMiK2JbMF0uaWQrJyAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAucGF5bWVudENhbGN1bGF0b3JQYXltZW50U2VsZWN0IGlucHV0W25hbWU9InNlbGVjdGVkUGF5bWVudCJdLCAjJytiWzBdLmlkKycgI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFNlbGVjdCBpbnB1dFtuYW1lPSJzZWxlY3RlZFBheW1lbnRXaXRoVGF4ZXMiXScpOyQoImJvZHkiKS5vZmYoIm5vUGF5bWVudCIsIiMiK2JbMF0uaWQrIiAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSIpOyQoImJvZHkiKS5vZmYoInBheW1lbnRzUmVhZHkiLCIjIitiWzBdLmlkKyIgI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0iKTskKCJib2R5Iikub24oIm5vUGF5bWVudCIsIiMiK2JbMF0uaWQrIiAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSIsZnVuY3Rpb24oKXthLmZvcm1kYXRhLm5vUGF5bWVudD0hMDthLm5leHQoITApfSk7JCgiYm9keSIpLm9uKCJjaGFuZ2UiLCIjIitiWzBdLmlkKycgI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFNlbGVjdCBpbnB1dFtuYW1lPSJzZWxlY3RlZFBheW1lbnQiXSwgIycrCmJbMF0uaWQrJyAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAucGF5bWVudENhbGN1bGF0b3JQYXltZW50U2VsZWN0IGlucHV0W25hbWU9InNlbGVjdGVkUGF5bWVudFdpdGhUYXhlcyJdJyxmdW5jdGlvbigpe3ZhciBwPSJmaW5hbmNpbmciPT1hLmNhbGN1bGF0b3JGdW5jdGlvbnMucGF5bWVudFR5cGU\/JCgiYm9keSIpLmhhc0NsYXNzKCJGUkVOQ0giKT8iRmluYW5jZW1lbnQiOiJGaW5hbmNpbmciOiJsZWFzaW5nIj09YS5jYWxjdWxhdG9yRnVuY3Rpb25zLnBheW1lbnRUeXBlPyQoImJvZHkiKS5oYXNDbGFzcygiRlJFTkNIIik\/IkxvY2F0aW9uIjoiTGVhc2luZyI6IiI7YS5mb3JtZGF0YS5wYXltZW50VHlwZT1wO2EuZm9ybWRhdGEucGF5bWVudFR5cGVSZWFsPWEuY2FsY3VsYXRvckZ1bmN0aW9ucy5wYXltZW50VHlwZTthLmZvcm1kYXRhLnBheW1lbnRUZXJtPSQodGhpcykudmFsKCk7YS5mb3JtZGF0YS5wYXltZW50UmF0ZVR5cGU9JCh0aGlzKS5hdHRyKCJkYXRhLXJhdGV0eXBlIik7CnA9JCh0aGlzKS5jbG9zZXN0KCIuZmluYW5jZU11bHRpc3RlcE5ld0NhbGN1bGF0b3IiKS5maW5kKCcucGF5bWVudENhbGN1bGF0b3JQYXltZW50U2VsZWN0IGlucHV0W25hbWU9InNlbGVjdGVkUGF5bWVudFdpdGhUYXhlcyJdW3ZhbHVlPSInK2EuZm9ybWRhdGEucGF5bWVudFRlcm0rJyJdW2RhdGEtcmF0ZXR5cGU9IicrYS5mb3JtZGF0YS5wYXltZW50UmF0ZVR5cGUrJyJdJyk7dmFyIHI7YS5mb3JtZGF0YS5wYXltZW50UmVzaWR1YWxWYWx1ZT1udWxsIT0ocj1wLmF0dHIoImRhdGEtcmVzaWR1YWwiKSk\/cjokKHRoaXMpLmF0dHIoImRhdGEtcmVzaWR1YWwiKTt2YXIgdDthLmZvcm1kYXRhLnBheW1lbnRWYWx1ZT1udWxsIT0odD1wLmF0dHIoImRhdGEtcmVhbHBheW1lbnQiKSk\/dDokKHRoaXMpLmF0dHIoImRhdGEtcmVhbHBheW1lbnQiKTt2YXIgRTthLmZvcm1kYXRhLmJhc2VwYXltZW50PW51bGwhPShFPXAuYXR0cigiZGF0YS1iYXNlcGF5bWVudCIpKT9FOiQodGhpcykuYXR0cigiZGF0YS1iYXNlcGF5bWVudCIpOwphLmZvcm1kYXRhLnBheW1lbnRUb3RhbEluY2VudGl2ZT1wLmF0dHIoImRhdGEtdG90YWxpbmNlbnRpdmUiKTthLmZvcm1kYXRhLnBheW1lbnRHU1Q9cC5hdHRyKCJkYXRhLWdzdCIpO2EuZm9ybWRhdGEucGF5bWVudEhTVD1wLmF0dHIoImRhdGEtaHN0Iik7YS5mb3JtZGF0YS5wYXltZW50UFNUPXAuYXR0cigiZGF0YS1wc3QiKTthLmZvcm1kYXRhLnZlaGljbGVJbml0aWFsUHJpY2U9cC5hdHRyKCJkYXRhLWluaXRpYWxQcmljZSIpO2EuZm9ybWRhdGEudmVoaWNsZUZpbmFsUHJpY2U9cC5hdHRyKCJkYXRhLWZpbmFsUHJpY2UiKTt2YXIgRjthLmZvcm1kYXRhLnBheW1lbnRGZWVzTGlzdD1udWxsIT0oRj1KU09OLnBhcnNlKGF0b2IocC5hdHRyKCJkYXRhLWZlZXNMaXN0IikpKSk\/RjpbXTtyPTA7Zm9yKHZhciBOIG9mIGEuZm9ybWRhdGEucGF5bWVudEZlZXNMaXN0KXIrPU4uYW1vdW50fHwwO2EuZm9ybWRhdGEucGF5bWVudFRvdGFsRmVlPXI7dmFyIEc7YS5mb3JtZGF0YS5wYXltZW50SW5jZW50aXZlc0xpc3Q9Cm51bGwhPShHPUpTT04ucGFyc2UoYXRvYihwLmF0dHIoImRhdGEtaW5jZW50aXZlc0xpc3QiKSkpKT9HOltdO2EuZm9ybWRhdGEucGF5bWVudERvd25QYXltZW50PWEuY2FsY3VsYXRvckZ1bmN0aW9ucy5kb3ducGF5bWVudHx8MDthLmZvcm1kYXRhLnBheW1lbnRLbUFsbG93YW5jZT1hLmNhbGN1bGF0b3JGdW5jdGlvbnMua21BbGxvd2FuY2U7YS5mb3JtZGF0YS5wYXltZW50SW50ZXJ2YWw9YS5jYWxjdWxhdG9yRnVuY3Rpb25zLnBheW1lbnRGcmVxdWVuY3k7YS5mb3JtZGF0YS5wYXltZW50UmF0ZT0kKHRoaXMpLmF0dHIoImRhdGEtcmF0ZSIpO2EuZm9ybWRhdGEudHJhZGVJblZhbHVlPWEuY2FsY3VsYXRvckZ1bmN0aW9ucy50cmFkZUluVmFsdWU7cj0ocGFyc2VJbnQoYS5mb3JtZGF0YS5wYXltZW50RG93blBheW1lbnQpfHwwKSsocGFyc2VJbnQoYS5mb3JtZGF0YS50cmFkZUluVmFsdWUpfHwwKTtDb29raWVzLnNldCgicGF5bWVudENhbGN1bGF0b3JTZWxlY3RlZE9wdGlvbnMiLAphLmZvcm1kYXRhLnBheW1lbnRUeXBlUmVhbCsiLSIrYS5mb3JtZGF0YS5wYXltZW50VGVybSsiLSIrYS5mb3JtZGF0YS5wYXltZW50SW50ZXJ2YWwrIi0iK2EuZm9ybWRhdGEucGF5bWVudEttQWxsb3dhbmNlKyItIityLG51bGwsIi8iKTsiTkVXQ0FSUyIhPSgkKCIjdGFyZ2V0UGFnZSIpLnZhbCgpfHwhMSkmJiJVU0VEQ0FSUyIhPSgkKCIjdGFyZ2V0UGFnZSIpLnZhbCgpfHwhMSkmJiJmdW5jdGlvbiI9PXR5cGVvZiBjaGFuZ2VQYWdlUGF5bWVudFZhbHVlJiYoRz0kKHRoaXMpLmF0dHIoImRhdGEtcmVhbHBheW1lbnQiKSxOPSQodGhpcykuYXR0cigiZGF0YS10b3RhbGludGVyZXN0IikscD0kKHRoaXMpLmF0dHIoImRhdGEtbHV4ZVRheEFtb3VudCIpLHI9ci50b0ZpeGVkKDApLHQ9JCh0aGlzKS5hdHRyKCJkYXRhLXJhdGV0eXBlIiksRT0kKHRoaXMpLmF0dHIoImRhdGEtZWZmZWN0aXZlUmF0ZSIpLEY9JCh0aGlzKS5hdHRyKCJkYXRhLXRvdGFsQ29zdCIpLGNoYW5nZVBhZ2VQYXltZW50VmFsdWUoe2N1cnJlbnRQYXltZW50OkcsCmN1cnJlbnRSYXRlOmEuZm9ybWRhdGEucGF5bWVudFJhdGUscGF5bWVudFRlcm06YS5mb3JtZGF0YS5wYXltZW50VGVybSxwYXltZW50VHlwZTphLmZvcm1kYXRhLnBheW1lbnRUeXBlUmVhbCxwYXltZW50SW50ZXJ2YWw6YS5mb3JtZGF0YS5wYXltZW50SW50ZXJ2YWwscGF5bWVudERvd25QYXltZW50OnIsdG90YWxJbnRlcmVzdDpOLGx1eGVUYXhBbW91bnQ6cCxyYXRlVHlwZTp0LGVmZmVjdGl2ZVJhdGU6RSx0b3RhbENvc3Q6Rn0pLCQoIiMiK2JbMF0uaWQrIiAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSIpLnRyaWdnZXIoInBheW1lbnRDaGFuZ2VkIikpO2suY2hlY2tWYWxpZGl0eSgpfSk7JCgiYm9keSIpLm9uKCJwYXltZW50c1JlYWR5IiwiIyIrYlswXS5pZCsiICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIixmdW5jdGlvbigpe2Y9YS5mb3JtZGF0YS5wYXltZW50VGVybT9hLmZvcm1kYXRhLnBheW1lbnRUZXJtOmY\/ZjowOzAhPWYmJjA8JCgiIyIrYlswXS5pZCsnICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRTZWxlY3QgaW5wdXRbbmFtZT0ic2VsZWN0ZWRQYXltZW50Il1bdmFsdWU9IicrCmYrJyJdJykubGVuZ3RoPyQoIiMiK2JbMF0uaWQrJyAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAucGF5bWVudENhbGN1bGF0b3JQYXltZW50U2VsZWN0IGlucHV0W25hbWU9InNlbGVjdGVkUGF5bWVudCJdW3ZhbHVlPSInK2YrJyJdJykuYXR0cigiY2hlY2tlZCIsImNoZWNrZWQiKS50cmlnZ2VyKCJjaGFuZ2UiKTooYS5mb3JtZGF0YS5wYXltZW50VHlwZT0iIixhLmZvcm1kYXRhLnBheW1lbnRUeXBlUmVhbD0iIixhLmZvcm1kYXRhLnBheW1lbnRUZXJtPSIiLGEuZm9ybWRhdGEucGF5bWVudFJhdGVUeXBlPSIiLGEuZm9ybWRhdGEucGF5bWVudFJlc2lkdWFsVmFsdWU9IiIsYS5mb3JtZGF0YS5wYXltZW50VmFsdWU9IiIsYS5mb3JtZGF0YS52ZWhpY2xlSW5pdGlhbFByaWNlPSIiLGEuZm9ybWRhdGEudmVoaWNsZUZpbmFsUHJpY2U9IiIsYS5mb3JtZGF0YS5wYXltZW50RmVlc0xpc3Q9W10sYS5mb3JtZGF0YS5wYXltZW50SW5jZW50aXZlc0xpc3Q9W10sYS5mb3JtZGF0YS5iYXNlcGF5bWVudD0KIiIsYS5mb3JtZGF0YS5wYXltZW50VG90YWxJbmNlbnRpdmU9MCxhLmZvcm1kYXRhLnBheW1lbnRUb3RhbEZlZT0wLGEuZm9ybWRhdGEucGF5bWVudEdTVD0wLGEuZm9ybWRhdGEucGF5bWVudEhTVD0wLGEuZm9ybWRhdGEucGF5bWVudFBTVD0wLGEuZm9ybWRhdGEucGF5bWVudERvd25QYXltZW50PTAsYS5mb3JtZGF0YS5wYXltZW50S21BbGxvd2FuY2U9MCxhLmZvcm1kYXRhLnBheW1lbnRJbnRlcnZhbD0iIixhLmZvcm1kYXRhLnBheW1lbnRSYXRlPSIiLGEuZm9ybWRhdGEudHJhZGVJblZhbHVlPSIiLGsuY2hlY2tWYWxpZGl0eSgpKTskKCIuZmluYW5jZU11bHRpc3RlcE5ld0NhbGN1bGF0b3IiLGIpLnNob3coKX0pO3NldFRpbWVvdXQoKCk9PntpZigidW5kZWZpbmVkIiE9dHlwZW9mIEN0YVRyYWNrJiZDdGFUcmFjay5nZXRUcmFja1N0ZXAoIlBheW1lbnRDYWxjdWxhdG9yQWN0aW9uQm94Iikpe2xldCBwPW5ldyBDdXN0b21FdmVudCgidHJhY2tzdGVwLmNvbXBsZXRlIix7ZGV0YWlsOntzdGVwSWQ6IlBheW1lbnRDYWxjdWxhdG9yQWN0aW9uQm94IiwKZm9yY2VVcGRhdGU6ITAsb25Db21wbGV0ZTpyPT57ci5kYXRhc2V0LmNvbXBsX3R4dF9mcj1yLmRhdGFzZXQuaW5pdF9jb21wbF90eHRfZnIucmVwbGFjZSgieyRQQVlNRU5UUkFURX0iLGN0YVBheW1lbnRUZXh0RnJbMF0pLnJlcGxhY2UoInskUEFZTUVOVFlQRX0iLGN0YVBheW1lbnRUZXh0RnJbMV0pO3IuZGF0YXNldC5jb21wbF90eHRfZW49ci5kYXRhc2V0LmluaXRfY29tcGxfdHh0X2VuLnJlcGxhY2UoInskUEFZTUVOVFJBVEV9IixjdGFQYXltZW50VGV4dEVuWzBdKS5yZXBsYWNlKCJ7JFBBWU1FTlRZUEV9IixjdGFQYXltZW50VGV4dEVuWzFdKTtyPXtwYXltZW50Ont9fTtfbG9jYWxTdG9yYWdlR2V0KCJyZXRhaWxfdHJhY2tfZGF0YSIpJiYocj1KU09OLnBhcnNlKF9sb2NhbFN0b3JhZ2VHZXQoInJldGFpbF90cmFja19kYXRhIikpKTtsZXQgdD0iRlJFTkNIIj09PSQoIiNhY3RpdmVzaXRlbGFuZ3VhZ2UiKS52YWwoKT9jdGFQYXltZW50VGV4dEZyOmN0YVBheW1lbnRUZXh0RW47CnIucGF5bWVudD17bGlzdFByaWNlOnRbMl18fCIiLHBheW1lbnQ6dFswXXx8IiIscmF0ZTp0WzFdfHwiIixwYXltZW50VmFsdWU6Y3RhUGF5bWVudFZhbHVlc3x8W119O19sb2NhbFN0b3JhZ2VTZXQoInJldGFpbF90cmFja19kYXRhIixKU09OLnN0cmluZ2lmeShyKSwzMCk7Q29va2llcy5zZXQoImN0YV9kYXRhX3ZhbGlkIiwxLDEsIi8iKX19fSk7JCgiIyIrYlswXS5pZCsiICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIikub24oInBheW1lbnRDaGFuZ2VkIixmdW5jdGlvbigpe2RvY3VtZW50LmRpc3BhdGNoRXZlbnQocCl9KX19LDEwMCl9ZWxzZSAkKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV9lcnJvciIsYikuaHRtbCgiIikseShhLmZvcm1kYXRhLmN1cnJlbnRDYXJJZCl9LGluaXRFbWFpbDpmdW5jdGlvbigpe2suY2hlY2tWYWxpZGl0eSgpfSxpbml0UGhvbmU6ZnVuY3Rpb24oKXtrLmNoZWNrVmFsaWRpdHkoKX0saW5pdENvbnNlbnQ6ZnVuY3Rpb24oKXtsZXQgZD0iLyIrdysiL211bHRpc3RlcEluc3RhbnRDb25zZW50Lmh0bWwiOwokKCIjZmluYW5jZV9tdWx0aXN0ZXBfY29uc2VudF90ZXh0X2RpdiIsYikuYXR0cigic3JjIixkKTt3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsZnVuY3Rpb24oYyl7KGMub3JpZ2luPXdpbmRvdy5sb2NhdGlvbi5vcmlnaW4pJiYiY29uc2VudElmcmFtZUJvdHRvbSI9PT1jLmRhdGEmJiQoIiNmaW5hbmNlX211bHRpc3RlcF9mb3JtICNmaW5hbmNlX211bHRpc3RlcF9mb3JtX25leHRfYnV0dG9uX2NvbnNlbnQiLGIpLmFkZENsYXNzKCJpc1ZhbGlkIil9LCExKX0sdmFsaWRhdGVDb25zZW50OmZ1bmN0aW9uKCl7aWYoJCgiI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm1fbmV4dF9idXR0b25fY29uc2VudCIsYikuaGFzQ2xhc3MoImlzVmFsaWQiKSlyZXR1cm4gYS5mb3JtZGF0YS5jcmVkaXRCdXJlYXVDcmVkaXQ9JCgiI3dvcmtpbmdXaGlsZUluU2Nob29sX3llcyIsYikuYXR0cigiZGF0YS10cmFuc2xhdGVkVmFsdWUiKSwhMDthLmZvcm1kYXRhLmNyZWRpdEJ1cmVhdUNyZWRpdD0KJCgiI3dvcmtpbmdXaGlsZUluU2Nob29sX25vIixiKS5hdHRyKCJkYXRhLXRyYW5zbGF0ZWRWYWx1ZSIpO3JldHVybiExfSx2YWxpZGF0ZUNoZWNrZWRDcmVkaXRCdXJlYXU6ZnVuY3Rpb24oZCl7aWYoJCgiI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0iLGIpLmZpbmQoJ2lucHV0W25hbWU9ImNyZWRpdEJ1cmVhdUNvbnNlbnQiXScpLmlzKCI6Y2hlY2tlZCIpKXJldHVybiBhLmZvcm1kYXRhLmNyZWRpdEJ1cmVhdUNyZWRpdD0kKCIjd29ya2luZ1doaWxlSW5TY2hvb2xfeWVzIixiKS5hdHRyKCJkYXRhLXRyYW5zbGF0ZWRWYWx1ZSIpLCEwO2EuZm9ybWRhdGEuY3JlZGl0QnVyZWF1Q3JlZGl0PSQoIiN3b3JraW5nV2hpbGVJblNjaG9vbF9ubyIsYikuYXR0cigiZGF0YS10cmFuc2xhdGVkVmFsdWUiKTtyZXR1cm4hMX0sdmFsaWRhdGVNb3JlVGhhblplcm86ZnVuY3Rpb24oZCl7cmV0dXJuIDA8ZH0sc2VuZEVtYWlsOmZ1bmN0aW9uKCl7dmFyIGQ9JChiKS5maW5kKCIuZW1haWxTdWJqZWN0IiksCmM9JChiKS5maW5kKCIuZW1haWxCb2R5Iik7ZD1kLnRleHQoKT9kLnRleHQoKToiIjtjPWMuaHRtbCgpP2MuaHRtbCgpOiIiO2lmKGQmJmMpe3ZhciBlPSQoJ1t2YWx1ZT0iJythLmZvcm1kYXRhLmVtcGxveW1lbnRTdGF0dXMrJyInKS5hdHRyKCJkYXRhLXRyYW5zbGF0ZWRWYWx1ZSIpOyIiIT1hLmZvcm1kYXRhLmVtcGxveW1lbnRBZGRlZEluZm8mJihlKz0iICgiK2EuZm9ybWRhdGEuZW1wbG95bWVudEFkZGVkSW5mbysiKSIpO2M9Yy5yZXBsYWNlKCJ7JEJPRFlUWVBFfSIsYS5mb3JtZGF0YS52ZWhpY2xlVHlwZT8kKCdbdmFsdWU9IicrYS5mb3JtZGF0YS52ZWhpY2xlVHlwZSsnIicpLmF0dHIoImRhdGEtdHJhbnNsYXRlZFZhbHVlIik6InJlbW92ZWVtcHR5Iik7Yz1jLnJlcGxhY2UoInskVElUTEV9IixhLmZvcm1kYXRhLnRpdGxlP2EuZm9ybWRhdGEudGl0bGU6InJlbW92ZWVtcHR5Iik7Yz1jLnJlcGxhY2UoInskRklSU1ROQU1FfSIsYS5mb3JtZGF0YS5maXJzdE5hbWUpO2M9Yy5yZXBsYWNlKCJ7JExBU1ROQU1FfSIsCmEuZm9ybWRhdGEubGFzdE5hbWUpO2M9Yy5yZXBsYWNlKCJ7JEVNQUlMfSIsYS5mb3JtZGF0YS5lbWFpbEFkZHJlc3MpO2M9Yy5yZXBsYWNlKCJ7JFBIT05FTlVNQkVSfSIsYS5mb3JtZGF0YS5waG9uZU51bWJlcik7Yz1jLnJlcGxhY2UoInskQklSVEhEQVl9IixhLmZvcm1kYXRhLmJpcnRoZGF0ZURheSsiLyIrYS5mb3JtZGF0YS5iaXJ0aGRhdGVNb250aCsiLyIrYS5mb3JtZGF0YS5iaXJ0aGRhdGVZZWFyKTtjPWMucmVwbGFjZSgieyRCVURHRVR9IixhLmZvcm1kYXRhLmJ1ZGdldD8kKCdbdmFsdWU9IicrYS5mb3JtZGF0YS5idWRnZXQrJyInKS5hdHRyKCJkYXRhLXRyYW5zbGF0ZWRWYWx1ZSIpOiJyZW1vdmVlbXB0eSIpO2M9Yy5yZXBsYWNlKCJ7JENVUlJFTlRMWURSSVZJTkd9IixhLmZvcm1kYXRhLmN1cnJlbnRseURyaXZpbmc\/JCgnW3ZhbHVlPSInK2EuZm9ybWRhdGEuY3VycmVudGx5RHJpdmluZysnIicpLmF0dHIoImRhdGEtdHJhbnNsYXRlZFZhbHVlIik6InJlbW92ZWVtcHR5Iik7CmM9Yy5yZXBsYWNlKCJ7JENVUlJFTlRFU1RJTUFURURDUkVESVRSQVRJTkd9IixhLmZvcm1kYXRhLmNyZWRpdFJhdGluZz8kKCdbdmFsdWU9IicrYS5mb3JtZGF0YS5jcmVkaXRSYXRpbmcrJyInKS5hdHRyKCJkYXRhLXRyYW5zbGF0ZWRWYWx1ZSIpOiJyZW1vdmVlbXB0eSIpO2M9Yy5yZXBsYWNlKCJ7JElOVEVSRVNURURET1dOT1BUSU9OfSIsYS5mb3JtZGF0YS5kb3duT3B0aW9ucz8kKCdbdmFsdWU9IicrYS5mb3JtZGF0YS5kb3duT3B0aW9ucysnIicpLmF0dHIoImRhdGEtdHJhbnNsYXRlZFZhbHVlIik6InJlbW92ZWVtcHR5Iik7Yz1jLnJlcGxhY2UoInskQ1VSUkVOVEFERFJFU1N9IixhLmZvcm1kYXRhLmFkZHJlc3MpO2M9Yy5yZXBsYWNlKCJ7JENVUlJFTlRSRVNJREVOQ0VUWVBFfSIsJCgnW3ZhbHVlPSInK2EuZm9ybWRhdGEucmVudE9yT3duKyciJykuYXR0cigiZGF0YS10cmFuc2xhdGVkVmFsdWUiKSk7Yz1jLnJlcGxhY2UoInskQ1VSUkVOVE9DQ1VQQVRJT05MRU5HVEh9IiwKYS5mb3JtZGF0YS5hZGRyZXNzX3llYXJzKyIgIiskKCIjRklOQU5DRV9GT1JNX0FERFJFU1NfVElNRVNfWUVBUlMiKS52YWwoKSsiICIrYS5mb3JtZGF0YS5hZGRyZXNzX21vbnRocysiICIrJCgiI0ZJTkFOQ0VfRk9STV9BRERSRVNTX1RJTUVTX01PTlRIUyIpLnZhbCgpKTtjPWMucmVwbGFjZSgieyRDVVJSRU5UTU9OVEhMWVJFTlR9IiwiJCIrYS5mb3JtZGF0YS5tb250aGx5UGF5bWVudCk7Yz1jLnJlcGxhY2UoInskQ1VSUkVOVE9DQ1VQQVRJT059IixlKTtjPWMucmVwbGFjZSgieyRXT1JLSU5HV0hJTEVJTlNDSE9PTH0iLCIiIT1hLmZvcm1kYXRhLndvcmtpbmdXaGlsZUluU2Nob29sPyQoJ1t2YWx1ZT0iJythLmZvcm1kYXRhLndvcmtpbmdXaGlsZUluU2Nob29sKyciJykuYXR0cigiZGF0YS10cmFuc2xhdGVkVmFsdWUiKToicmVtb3ZlZW1wdHkiKTtjPWMucmVwbGFjZSgieyRDVVJSRU5USU5DT01FU09VUkNFfSIsIiIhPWEuZm9ybWRhdGEub3RoZXJFbXBsb3ltZW50U3RhdHVzPwokKCdbdmFsdWU9IicrYS5mb3JtZGF0YS5vdGhlckVtcGxveW1lbnRTdGF0dXMrJyInKS5hdHRyKCJkYXRhLXRyYW5zbGF0ZWRWYWx1ZSIpOiJyZW1vdmVlbXB0eSIpO2M9Yy5yZXBsYWNlKCJ7JENVUlJFTlRNT05UTFlJTkNPTUV9IiwiJCIrYS5mb3JtZGF0YS5tb250aGx5SW5jb21lKTtjPWMucmVwbGFjZSgieyRDVVJSRU5UTU9OVEhMWUlOQ09NRUxFTkdUSH0iLGEuZm9ybWRhdGEubW9udGhseUluY29tZV95ZWFycysiICIrJCgiI0ZJTkFOQ0VfRk9STV9NT05USExZX0lOQ09NRV9USU1FU19ZRUFSUyIpLnZhbCgpKyIgIithLmZvcm1kYXRhLm1vbnRobHlJbmNvbWVfbW9udGhzKyIgIiskKCIjRklOQU5DRV9GT1JNX01PTlRITFlfSU5DT01FX1RJTUVTX01PTlRIUyIpLnZhbCgpKTsiIiE9YS5mb3JtZGF0YS5hZGRyZXNzMj8oYz1jLnJlcGxhY2UoInskUFJFVklPVVNBRERSRVNTfSIsYS5mb3JtZGF0YS5hZGRyZXNzMiksYz1jLnJlcGxhY2UoInskUFJFVklPVVNPQ0NVUEFUSU9OTEVOR1RIfSIsCmEuZm9ybWRhdGEuYWRkcmVzczJfeWVhcnMrIiAiKyQoIiNGSU5BTkNFX0ZPUk1fQUREUkVTU19USU1FU19ZRUFSUyIpLnZhbCgpKyIgIithLmZvcm1kYXRhLmFkZHJlc3MyX21vbnRocysiICIrJCgiI0ZJTkFOQ0VfRk9STV9BRERSRVNTX1RJTUVTX01PTlRIUyIpLnZhbCgpKSxjPWMucmVwbGFjZSgiIyNQUkVWSU9VU0FERFJFU1NJTkZPU1RBUlQjIyIsIiIpLGM9Yy5yZXBsYWNlKCIjI1BSRVZJT1VTQUREUkVTU0lORk9FTkQjIyIsIiIpKTpjPWMucmVwbGFjZSgvIyNQUkVWSU9VU0FERFJFU1NJTkZPU1RBUlQjI1tcc1xTXSojI1BSRVZJT1VTQUREUkVTU0lORk9FTkQjIy8sIiIpO2M9Yy5yZXBsYWNlKCJ7JENVUlJFTlRNQUtFfSIsIiIhPWEuZm9ybWRhdGEuY3VycmVudE1ha2U\/YS5mb3JtZGF0YS5jdXJyZW50TWFrZToicmVtb3ZlZW1wdHkiKTtjPWMucmVwbGFjZSgieyRDVVJSRU5UTU9ERUx9IiwiIiE9YS5mb3JtZGF0YS5jdXJyZW50TW9kZWw\/YS5mb3JtZGF0YS5jdXJyZW50TW9kZWw6CiJyZW1vdmVlbXB0eSIpO2M9Yy5yZXBsYWNlKCJ7JENVUlJFTlRZRUFSfSIsIiIhPWEuZm9ybWRhdGEuY3VycmVudFllYXI\/YS5mb3JtZGF0YS5jdXJyZW50WWVhcjoicmVtb3ZlZW1wdHkiKTtjPWMucmVwbGFjZSgieyRDVVJSRU5UU1RPQ0tOVU1CRVJ9IiwiIiE9YS5mb3JtZGF0YS5jdXJyZW50U3RvY2tOdW1iZXI\/YS5mb3JtZGF0YS5jdXJyZW50U3RvY2tOdW1iZXI6InJlbW92ZWVtcHR5Iik7Yz1jLnJlcGxhY2UoInskY3JlZGl0QnVyZWF1Q3JlZGl0fSIsIiIhPWEuZm9ybWRhdGEuY3JlZGl0QnVyZWF1Q3JlZGl0P2EuZm9ybWRhdGEuY3JlZGl0QnVyZWF1Q3JlZGl0OiJOTyIpO2M9Yy5yZXBsYWNlKCJ7JFNJTn0iLCJyZW1vdmVlbXB0eSIpO2M9Yy5yZXBsYWNlKCJ7JEFEREVESU5GT30iLCIiIT1hLmZvcm1kYXRhLmFkZGVkSW5mbz9hLmZvcm1kYXRhLmFkZGVkSW5mbzoicmVtb3ZlZW1wdHkiKTtjPWMucmVwbGFjZSgieyRFTVBMT1lFUn0iLCIiIT1hLmZvcm1kYXRhLmVtcGxveWVyTmFtZT8KYS5mb3JtZGF0YS5lbXBsb3llck5hbWU6InJlbW92ZWVtcHR5Iik7Yz1jLnJlcGxhY2UoInskRU1QTE9ZRVJQSE9ORX0iLCIiIT1hLmZvcm1kYXRhLmVtcGxveWVyUGhvbmU\/YS5mb3JtZGF0YS5lbXBsb3llclBob25lOiJyZW1vdmVlbXB0eSIpO2M9Yy5yZXBsYWNlKCJ7JEVNUExPWUVNRU5UU1RBVFVTVElNRX0iLGEuZm9ybWRhdGEuZW1wbG95bWVudFN0YXR1c1llYXIrIiAiKyQoIiNGSU5BTkNFX0ZPUk1fTU9OVEhMWV9JTkNPTUVfVElNRVNfWUVBUlMiKS52YWwoKSsiICIrYS5mb3JtZGF0YS5lbXBsb3ltZW50U3RhdHVzTW9udGgrIiAiKyQoIiNGSU5BTkNFX0ZPUk1fTU9OVEhMWV9JTkNPTUVfVElNRVNfTU9OVEhTIikudmFsKCkpO2M9Yy5yZXBsYWNlKCJ7JEVNUExPWUVSQUREUkVTU30iLCIiIT1hLmZvcm1kYXRhLmFkZHJlc3NFbXBsb3llcj9hLmZvcm1kYXRhLmFkZHJlc3NFbXBsb3llcjoicmVtb3ZlZW1wdHkiKTtjPWMucmVwbGFjZSgieyRDT05TRU5UQUNDT1VOVE1PTklUT1JJTkd9IiwKIiIhPWEuZm9ybWRhdGEuY29uc2VudEFjY291bnRNb25pdG9yaW5nPzE9PWEuZm9ybWRhdGEuY29uc2VudEFjY291bnRNb25pdG9yaW5nPyJZRVMiOiJOTyI6InJlbW92ZWVtcHR5Iik7Yz1jLnJlcGxhY2UoInskQ09OU0VOVENSRURJVEFTU0VTU01FTlR9IiwiIiE9YS5mb3JtZGF0YS5jb25zZW50Q3JlZGl0QXNzZXNzbWVudD8xPT1hLmZvcm1kYXRhLmNvbnNlbnRDcmVkaXRBc3Nlc3NtZW50PyJZRVMiOiJOTyI6InJlbW92ZWVtcHR5Iik7Yz1jLnJlcGxhY2UoInskQ09OU0VOVFBJUEVEQX0iLCIiIT1hLmZvcm1kYXRhLmNvbnNlbnRQaXBlZGE\/MT09YS5mb3JtZGF0YS5jb25zZW50UGlwZWRhPyJZRVMiOiJOTyI6InJlbW92ZWVtcHR5Iik7Yz1jLnJlcGxhY2UoInskQ09OU0VOVENBU0x9IiwiIiE9YS5mb3JtZGF0YS5jb25zZW50Q2FzbD8xPT1hLmZvcm1kYXRhLmNvbnNlbnRDYXNsPyJZRVMiOiJOTyI6InJlbW92ZWVtcHR5Iik7IiIhPWEuZm9ybWRhdGEuZW1wbG95ZXJOYW1lMj8oZT0KJCgnW3ZhbHVlPSJGSU5BTkNFX0ZPUk1fRU1QTE9ZTUVOVF9TVEFUVVNfRU1QTE9ZRUQiXScpLmF0dHIoImRhdGEtdHJhbnNsYXRlZFZhbHVlIiksIiIhPWEuZm9ybWRhdGEuZW1wbG95bWVudEFkZGVkSW5mbzImJihlKz0iICgiK2EuZm9ybWRhdGEuZW1wbG95bWVudEFkZGVkSW5mbzIrIikiKSxjPWMucmVwbGFjZSgieyRQUkVWSU9VU09DQ1VQQVRJT059IixlKSxjPWMucmVwbGFjZSgieyRQUkVWSU9VU0VNUExPWUVSfSIsIiIhPWEuZm9ybWRhdGEuZW1wbG95ZXJOYW1lMj9hLmZvcm1kYXRhLmVtcGxveWVyTmFtZTI6InJlbW92ZWVtcHR5IiksYz1jLnJlcGxhY2UoInskUFJFVklPVVNFTVBMT1lFUlBIT05FfSIsIiIhPWEuZm9ybWRhdGEuZW1wbG95ZXJQaG9uZTI\/YS5mb3JtZGF0YS5lbXBsb3llclBob25lMjoicmVtb3ZlZW1wdHkiKSxjPWMucmVwbGFjZSgieyRQUkVWSU9VU0VNUExPWUVNRU5UU1RBVFVTVElNRX0iLGEuZm9ybWRhdGEuZW1wbG95bWVudFN0YXR1c1llYXIyKyIgIisKJCgiI0ZJTkFOQ0VfRk9STV9NT05USExZX0lOQ09NRV9USU1FU19ZRUFSUyIpLnZhbCgpKyIgIithLmZvcm1kYXRhLmVtcGxveW1lbnRTdGF0dXNNb250aDIrIiAiKyQoIiNGSU5BTkNFX0ZPUk1fTU9OVEhMWV9JTkNPTUVfVElNRVNfTU9OVEhTIikudmFsKCkpLGM9Yy5yZXBsYWNlKCJ7JFBSRVZJT1VTRU1QTE9ZRVJBRERSRVNTfSIsIiIhPWEuZm9ybWRhdGEuYWRkcmVzc0VtcGxveWVyMj9hLmZvcm1kYXRhLmFkZHJlc3NFbXBsb3llcjI6InJlbW92ZWVtcHR5IiksYz1jLnJlcGxhY2UoIiMjUFJFVklPVVNPQ0NVUEFUSU9OU1RBUlQjIyIsIiIpLGM9Yy5yZXBsYWNlKCIjI1BSRVZJT1VTT0NDVVBBVElPTkVORCMjIiwiIikpOmM9Yy5yZXBsYWNlKC8jI1BSRVZJT1VTT0NDVVBBVElPTlNUQVJUIyNbXHNcU10qIyNQUkVWSU9VU09DQ1VQQVRJT05FTkQjIy8sIiIpO2M9Yy5yZXBsYWNlKCJ7JFBBWU1FTlRUWVBFfSIsIiIhPWEuZm9ybWRhdGEucGF5bWVudFR5cGU\/YS5mb3JtZGF0YS5wYXltZW50VHlwZToKInJlbW92ZWVtcHR5Iik7Yz1jLnJlcGxhY2UoInskUEFZTUVOVFRFUk19IiwiIiE9YS5mb3JtZGF0YS5wYXltZW50VGVybT9hLmZvcm1kYXRhLnBheW1lbnRUZXJtOiJyZW1vdmVlbXB0eSIpO2M9Yy5yZXBsYWNlKCJ7JFBBWU1FTlRET1dOUEFZTUVOVH0iLCIiIT1hLmZvcm1kYXRhLnBheW1lbnREb3duUGF5bWVudD9hLmZvcm1kYXRhLnBheW1lbnREb3duUGF5bWVudDoicmVtb3ZlZW1wdHkiKTtjPWMucmVwbGFjZSgieyRQQVlNRU5USU5URVJWQUx9IiwiIiE9YS5mb3JtZGF0YS5wYXltZW50SW50ZXJ2YWw\/YS5mb3JtZGF0YS5wYXltZW50SW50ZXJ2YWw6InJlbW92ZWVtcHR5Iik7Yz1jLnJlcGxhY2UoInskUEFZTUVOVEtNQUxMT1dBTkNFfSIsIiIhPWEuZm9ybWRhdGEucGF5bWVudEttQWxsb3dhbmNlP2EuZm9ybWRhdGEucGF5bWVudEttQWxsb3dhbmNlOiJyZW1vdmVlbXB0eSIpO2M9Yy5yZXBsYWNlKCJ7JFBBWU1FTlRWQUxVRX0iLCIiIT1hLmZvcm1kYXRhLnBheW1lbnRWYWx1ZT8KYS5mb3JtZGF0YS5wYXltZW50VmFsdWU6InJlbW92ZWVtcHR5Iik7Yz1jLnJlcGxhY2UoInskUEFZTUVOVFJBVEV9IiwiIiE9YS5mb3JtZGF0YS5wYXltZW50UmF0ZT9hLmZvcm1kYXRhLnBheW1lbnRSYXRlOiJyZW1vdmVlbXB0eSIpO2M9Yy5yZXBsYWNlKCJ7JE5PUEFZTUVOVH0iLGEuZm9ybWRhdGEubm9QYXltZW50PyIiOiJyZW1vdmVlbXB0eSIpO2M9Yy5yZXBsYWNlKCJ7JENSRURJVERFQ0lTSU9OfSIsYS5jcmVkaXREZWNpc2lvbkhUTUw\/YS5jcmVkaXREZWNpc2lvbkhUTUw6InJlbW92ZWVtcHR5Iik7IiIhPWEuZm9ybWRhdGEudHJhZGVJblZhbHVlPyhjPWMucmVwbGFjZSgieyRUUkFERU1BS0V9IixhLmZvcm1kYXRhLnRyYWRlSW5NYWtlKSxjPWMucmVwbGFjZSgieyRUUkFERU1PREVMfSIsYS5mb3JtZGF0YS50cmFkZUluTW9kZWwpLGM9Yy5yZXBsYWNlKCJ7JFRSQURFWUVBUn0iLGEuZm9ybWRhdGEudHJhZGVJblRyaW0pLGM9Yy5yZXBsYWNlKCJ7JFRSQURFVFJJTX0iLGEuZm9ybWRhdGEudHJhZGVJblllYXIpLApjPWMucmVwbGFjZSgieyRUUkFERVZBTFVFfSIsYS5mb3JtZGF0YS50cmFkZUluVmFsdWUpLGM9Yy5yZXBsYWNlKCIjI1RSQURFSU5JTkZPU1RBUlQjIyIsIiIpLGM9Yy5yZXBsYWNlKCIjI1RSQURFSU5JTkZPRU5EIyMiLCIiKSk6Yz1jLnJlcGxhY2UoLyMjVFJBREVJTklORk9TVEFSVCMjW1xzXFNdKiMjVFJBREVJTklORk9FTkQjIy8sIiIpO2M9ay5lbWFpbEJvZHlGb3JNdWx0aURlYWxlcihjKTtib2R5TG93ZXI9Yy50b0xvd2VyQ2FzZSgpO2ZvcihlPTA7LTE8Ym9keUxvd2VyLmluZGV4T2YoInJlbW92ZWVtcHR5Iik7KXtwb3M9Ym9keUxvd2VyLmluZGV4T2YoInJlbW92ZWVtcHR5Iik7aWYoLTE9PXBvcylicmVhaztycGxFbmQ9Ym9keUxvd2VyLmluZGV4T2YoIjxicj4iLHBvcyk7cnBsU3RhcnQ9Ym9keUxvd2VyLmxhc3RJbmRleE9mKCI8YnI+Iixwb3MpO2lmKC0xPT1ycGxFbmR8fC0xPT1ycGxTdGFydClicmVhaztycGxTdHJpbmc9Yy5zdWJzdHJpbmcocnBsU3RhcnQscnBsRW5kKTsKYz1jLnJlcGxhY2UocnBsU3RyaW5nLCIiKTtib2R5TG93ZXI9Yy50b0xvd2VyQ2FzZSgpO2UrKztpZig1MDxlKWJyZWFrfWVtYWlsSGFuZGxlci5zdWJqZWN0PWQ7ZW1haWxIYW5kbGVyLmJvZHk9YztrLnNldEVtYWlsSGFuZGxlclNlbmQoKTtlbWFpbEhhbmRsZXIubWFpbElEPSJDcmVkaXRNdWx0aXN0ZXBSZXF1ZXN0IjsiMSI9PXUmJihlbWFpbEhhbmRsZXIubWFpbElEPSJDcmVkaXRNdWx0aXN0ZXBSZXF1ZXN0Mm5kQ2hhbmNlIik7IjEiPT14JiYoZW1haWxIYW5kbGVyLm1haWxJRD0iQ3JlZGl0TXVsdGlzdGVwUmVxdWVzdEluc3RhbnQiKTtlbWFpbEhhbmRsZXIuZGVwYXJ0bWVudD0iRklOQU5DRSI7ZW1haWxIYW5kbGVyLmlzbW9iaWxlc2l0ZT0xPT0kKCIjaXNtb2JpbGUiKT8iWUVTIjoiTk8iO2VtYWlsSGFuZGxlci51c2VyRW1haWw9YS5mb3JtZGF0YS5lbWFpbEFkZHJlc3M7ZW1haWxIYW5kbGVyLnVzZXJGaXJzdE5hbWU9YS5mb3JtZGF0YS5maXJzdE5hbWU7ZW1haWxIYW5kbGVyLnVzZXJMYXN0TmFtZT0KYS5mb3JtZGF0YS5sYXN0TmFtZTtlbWFpbEhhbmRsZXIudXNlclBob25lPWEuZm9ybWRhdGEucGhvbmVOdW1iZXI7ZW1haWxIYW5kbGVyLmNvbnRhY3RBZGRyZXNzPWEuZm9ybWRhdGEuYWRkcmVzcztlbWFpbEhhbmRsZXIuY29udGFjdEJpcnRoPWEuZm9ybWRhdGEuYmlydGhkYXRlRGF5KyIvIithLmZvcm1kYXRhLmJpcnRoZGF0ZU1vbnRoKyIvIithLmZvcm1kYXRhLmJpcnRoZGF0ZVllYXI7ZW1haWxIYW5kbGVyLnNhbGVzRGVwdD1hLmZvcm1kYXRhLnZlaGljbGVTYWxlc0RlcHQ7ZW1haWxIYW5kbGVyLm1ha2U9YS5mb3JtZGF0YS5jdXJyZW50TWFrZTtlbWFpbEhhbmRsZXIubW9kZWw9YS5mb3JtZGF0YS5jdXJyZW50TW9kZWw7ZW1haWxIYW5kbGVyLnllYXI9YS5mb3JtZGF0YS5jdXJyZW50WWVhcjtlbWFpbEhhbmRsZXIuc3RvY2tOdW1iZXI9YS5mb3JtZGF0YS5jdXJyZW50U3RvY2tOdW1iZXI7ZW1haWxIYW5kbGVyLmRlcGFydG1lbnRCeVN0b2NrPSExO2VtYWlsSGFuZGxlci5za2lwR2VvTG9jPQohMDtlbWFpbEhhbmRsZXIucGFydGlhbD0hMTtlbWFpbEhhbmRsZXIuY2FsbGJhY2s9ZnVuY3Rpb24oZil7Zj9rLnNldEZpbmFuY2VGb3JtU3RhdHVzVG9TZW50KCk6Y29uc29sZS5sb2coZil9O2VtYWlsSGFuZGxlci5zZW5kTWFpbCghMSl9fSxzZXRGaW5hbmNlRm9ybVN0YXR1c1RvU2VudDpmdW5jdGlvbigpeyQuYWpheCh7dXJsOiIvIit3KyIvYWpheC9zZXRGaW5hbmNlTXVsdGlzdGVwRGF0YVN0YXR1c1RvU2VudD93c3dpZHRoPTAiLGRhdGFUeXBlOiJKU09OIix0eXBlOiJQT1NUIixkYXRhOnt1c2VySWQ6ay51c2VySWQoKX0sc3VjY2VzczpmdW5jdGlvbihkKXtsZXQgYz1uZXcgQ3VzdG9tRXZlbnQoInRyYWNrc3RlcC5jb21wbGV0ZSIse2RldGFpbDp7c3RlcElkOiJGaW5hbmNlQWN0aW9uQm94In19KTtkb2N1bWVudC5kaXNwYXRjaEV2ZW50KGMpO2lmKCJTVUNDRVNTIj09ZHx8bnVsbD09PWQpYS5zdGVwPTIxLGsudXNlcklkKC0xKSxsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgiZmluYW5jZV9tdWx0aXN0ZXAubGluZWFyX3N0ZXAiKSwKJChkb2N1bWVudC5ib2R5KS50cmlnZ2VyKCJtdWx0aUZvcm1GaW5hbmNlU3VibWl0Iil9fSl9LHJlc2V0Rm9ybTpmdW5jdGlvbigpe2EuZm9ybWRhdGE9e3ZlaGljbGVUeXBlOiIiLGJ1ZGdldDoiIixjdXJyZW50bHlEcml2aW5nOiIiLGVtYWlsQWRkcmVzczoiIixjcmVkaXRSYXRpbmc6IiIsZG93bk9wdGlvbnM6IiIsYmlydGhkYXRlWWVhcjoiIixiaXJ0aGRhdGVNb250aDoiIixiaXJ0aGRhdGVEYXk6IiIsYWRkcmVzczoiIixzcGxpdEFkZHJlc3M6W10sYWRkcmVzc195ZWFyczowLGFkZHJlc3NfbW9udGhzOjAsYWRkcmVzczI6IiIsc3BsaXRBZGRyZXNzMjpbXSxhZGRyZXNzMl95ZWFyczowLGFkZHJlc3MyX21vbnRoczowLGFkZHJlc3NFbXBsb3llcjoiIixzcGxpdEFkZHJlc3NFbXBsb3llcjpbXSxyZW50T3JPd246IiIsbW9udGhseVBheW1lbnQ6MCxlbXBsb3ltZW50U3RhdHVzOiIiLGVtcGxveW1lbnRBZGRlZEluZm86IiIsZW1wbG95ZXJOYW1lOiIiLGVtcGxveWVyUGhvbmU6IiIsCmVtcGxveW1lbnRTdGF0dXNZZWFyOjAsZW1wbG95bWVudFN0YXR1c01vbnRoOjAsZW1wbG95bWVudEFkZGVkSW5mbzI6IiIsZW1wbG95ZXJOYW1lMjoiIixlbXBsb3llclBob25lMjoiIixlbXBsb3ltZW50U3RhdHVzWWVhcjI6MCxlbXBsb3ltZW50U3RhdHVzTW9udGgyOjAsYWRkcmVzc0VtcGxveWVyMjoiIixzcGxpdEFkZHJlc3NFbXBsb3llcjI6W10sd29ya2luZ1doaWxlSW5TY2hvb2w6IiIsb3RoZXJFbXBsb3ltZW50U3RhdHVzOiIiLG1vbnRobHlJbmNvbWU6MCxtb250aGx5SW5jb21lX3llYXJzOjAsbW9udGhseUluY29tZV9tb250aHM6MCx0aXRsZToiIixmaXJzdE5hbWU6IiIsbGFzdE5hbWU6IiIscGhvbmVOdW1iZXI6IiIsY3VycmVudE1ha2U6IiIsY3VycmVudE1vZGVsOiIiLGN1cnJlbnRNb2RlbFRleHQ6IiIsY3VycmVudFllYXI6IiIsY3VycmVudFN0b2NrTnVtYmVyOiIiLGN1cnJlbnRNaWxlYWdlOjEwLGN1cnJlbnRUcmltOiIiLGN1cnJlbnRTdHlsZWlkOiIiLGN1cnJlbnRDYXJJZDoiIiwKcGF5bWVudFR5cGU6IiIscGF5bWVudFR5cGVSZWFsOiIiLHBheW1lbnRUZXJtOiIiLHBheW1lbnRSYXRlVHlwZToiIixwYXltZW50VmFsdWU6IiIsYmFzZXBheW1lbnQ6IiIscGF5bWVudFRvdGFsSW5jZW50aXZlOjAscGF5bWVudFRvdGFsRmVlOjAscGF5bWVudEdTVDowLHBheW1lbnRIU1Q6MCxwYXltZW50UFNUOjAscGF5bWVudERvd25QYXltZW50OjAscGF5bWVudEttQWxsb3dhbmNlOjAscGF5bWVudEludGVydmFsOiIiLHBheW1lbnRSYXRlOiIiLHBheW1lbnRSZXNpZHVhbFZhbHVlOjAsbm9QYXltZW50OiExLG11bHRpX2RlYWxlcl9zZW5kVG86IiIsY3JlZGl0QnVyZWF1Q3JlZGl0OiJOTyIsU0lOOiIiLGFkZGVkSW5mbzoiIix2ZWhpY2xlU2FsZXNEZXB0OiJvdGhlciIsdmVoaWNsZVByaWNlOiIiLHZlaGljbGVUcmFuc21pc3Npb246IiIsdmVoaWNsZVRyaW06IiIsdmVoaWNsZUNvbG9yOiIiLGluaXRpYWxUaXRsZVNob3c6ITAsbXVsdGlGcm9tTWluaTohMSx0cmFkZUluTWFrZToiIiwKdHJhZGVJbk1vZGVsOiIiLHRyYWRlSW5ZZWFyOiIiLHRyYWRlSW5UcmltOiIiLHRyYWRlSW5WYWx1ZToiIn19LGNyZWRpdEFwcFN1bWlzc2lvbjpmdW5jdGlvbigpe3ZhciBkPWEuZm9ybWRhdGEsYz0kKCIjc2l0ZUlEIikudmFsKCl8fCQoIiN0b3BzaXRlaWQiKS52YWwoKTtkLnNpdGVJZD1jO2QuY3VycmVudERlcHQ9YS5jdXJyZW50RGVwdDskKCIubXVsdGlzdGVwSW5zdGFudFNwaW5uZXIiKS5zaG93KCk7YS5mb3JtZGF0YS5jcmVkaXRCdXJlYXVDcmVkaXQ9IllFUyI7YS5zdGVwPTIxOyQuYWpheCh7dXJsOiIvIit3K2AvYWpheC9zdWJtaXRDcmVkaXRBcHBsaWNhdGlvbj93c3dpZHRoPSR7ZW5jb2RlVVJJQ29tcG9uZW50KCIwIil9YCxkYXRhVHlwZToiSlNPTiIsdHlwZToiUE9TVCIsZGF0YTpkLHN1Y2Nlc3M6ZnVuY3Rpb24oZSl7bGV0IGYsZyxsPWUuYXBwbGljYXRpb25JZDtpZihlLmVycm9yKWY9JCgiI0ZJTkFOQ0VfRk9STV9WV0NSRURJVF9WV0VSUk9SX01TR19VU0VSIiwKYikudmFsKCksZz0kKCIjRklOQU5DRV9GT1JNX1ZXQ1JFRElUX0VSUk9SX01TR19MRUFEIixiKS52YWwoKSxhLmNyZWRpdERlY2lzaW9uSFRNTD1nO2Vsc2UgaWYobCl7aWYoZj0kKCIjRklOQU5DRV9GT1JNX1ZXQ1JFRElUX1NVQ0NFU1NfTVNHX1VTRVIiLGIpLnZhbCgpK2wsZz0kKCIjRklOQU5DRV9GT1JNX1ZXQ1JFRElUX1NVQ0NFU1NfTVNHX0xFQUQiLGIpLnZhbCgpKyI8c3Ryb25nPiIrbCsiPC9zdHJvbmc+IixhLmNyZWRpdERlY2lzaW9uSFRNTD1nLGEuY3JlZGl0QXBwbGljYXRpb25JZD1sLGUuYXBwbGljYXRpb25TdGF0dXMmJmUuYXBwbGljYXRpb25TdGF0dXMuc3RhdHVzKXN3aXRjaChlLmFwcGxpY2F0aW9uU3RhdHVzLnN0YXR1cyl7Y2FzZSAiQXBwcm92ZWQiOmYrPSI8YnI+PGJyPiIrJCgiI0ZJTkFOQ0VfRk9STV9WV0NSRURJVF9BUFBST1ZBTF9NU0ciLGIpLnZhbCgpOyQoIiNGSU5BTkNFX0ZPUk1fVldDUkVESVRfQVBQUk9WQUxfTVNHIixiKS52YWwoKTticmVhaztjYXNlICJQZW5kaW5nIjpmKz0KIjxicj48YnI+IiskKCIjRklOQU5DRV9GT1JNX1ZXQ1JFRElUX1BFTkRJTkdfTVNHIixiKS52YWwoKTskKCIjRklOQU5DRV9GT1JNX1ZXQ1JFRElUX1BFTkRJTkdfTVNHIixiKS52YWwoKTticmVhaztkZWZhdWx0OmYrPSI8YnI+PGJyPiIrJCgiI0ZJTkFOQ0VfRk9STV9WV0NSRURJVF9OT0FQUFJPVkFMX01TRyIsYikudmFsKCksJCgiI0ZJTkFOQ0VfRk9STV9WV0NSRURJVF9OT0FQUFJPVkFMX01TRyIsYikudmFsKCl9fWVsc2UgZj0kKCIjRklOQU5DRV9GT1JNX1ZXQ1JFRElUX1ZXRVJST1JfTVNHX1VTRVIiLGIpLnZhbCgpLGc9JCgiI0ZJTkFOQ0VfRk9STV9WV0NSRURJVF9FUlJPUl9NU0dfTEVBRCIsYikudmFsKCksYS5jcmVkaXREZWNpc2lvbkhUTUw9ZzskKGIpLmZpbmQoIi5jb25maXJtYXRpb25UaXRsZSIpLmhpZGUoKTskKGIpLmZpbmQoIi5jb25maXJtYXRpb25UZXh0IikuaGlkZSgpOyQoYikuZmluZCgiLmNyZWRpdERlY2lzaW9uIikuaHRtbChmKTskKGIpLmZpbmQoIi5jcmVkaXREZWNpc2lvbiIpLnNob3coKTsKJCgiLm11bHRpc3RlcEluc3RhbnRTcGlubmVyIikuaGlkZSgpO2suc2VuZEVtYWlsKCl9fSl9LHJvdXRlT25lQ2FsbDpmdW5jdGlvbigpe3ZhciBkPWEuZm9ybWRhdGEsYz0kKCIjc2l0ZUlEIikudmFsKCl8fCQoIiN0b3BzaXRlaWQiKS52YWwoKTtkLnNpdGVJZD1jO2QuY3VycmVudERlcHQ9YS5jdXJyZW50RGVwdDskKCIubXVsdGlzdGVwSW5zdGFudFNwaW5uZXIiKS5zaG93KCk7YS5zdGVwPTIxOyhmdW5jdGlvbihlKXtyZXR1cm4gbmV3IFByb21pc2UoKGYsZyk9PiRqc2NvbXAuYXN5bmNFeGVjdXRlUHJvbWlzZUdlbmVyYXRvckZ1bmN0aW9uKGZ1bmN0aW9uKigpe2U9ZSsiP2NiPSIrMjAzODM0NzQ5MypNYXRoLnJhbmRvbSgpO2xldCBsPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpO2wuc2V0QXR0cmlidXRlKCJzcmMiLGUpO2wuc2V0QXR0cmlidXRlKCJhc3luYyIsImZhbHNlIik7bGV0IHA9ZG9jdW1lbnQuaGVhZDtwLmluc2VydEJlZm9yZShsLHAuZmlyc3RFbGVtZW50Q2hpbGQpOwpsLmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCgpPT57ZigpfSwhMSl9KSl9KSgiL2pzL3JvdXRlMUhhbmRsZXIuanMiKS50aGVuKCgpPT57bGV0IGU9bmV3IHJvdXRlMUV2ZW50SGFuZGxlcighMSk7ZS5vbigiY29ubmVjdGVkIiwoZixnKT0+e2NvbnNvbGUubG9nKCJDb25uZWN0ZWQiKX0pO2Uub24oInJlYWR5IiwoZixnKT0+e2NvbnNvbGUubG9nKCJSZWFkeSIpO2UucmVxdWVzdENyZWRpdENoZWNrKGQpfSk7ZS5vbigiZXJyb3IiLChmLGcpPT57Y29uc29sZS5sb2coIkVycm9yOiAlbyIsZik7ZS5jbG9zZSgpO2suc2V0Q3JlZGl0RGVjaXNpb24oZi5tZXNzYWdlKTskKCIubXVsdGlzdGVwSW5zdGFudFNwaW5uZXIiKS5oaWRlKCk7ay5zZW5kRW1haWwoKX0pO2Uub24oImNyZWRpdENoZWNrQ29tcGxldGUiLChmLGcpPT57Y29uc29sZS5sb2coIkNyZWRpdCBDaGVjayBDb21wbGV0ZTogJW8iLGYpO2UuY2xvc2UoKTtrLnNldENyZWRpdERlY2lzaW9uKGYpOyQoIi5tdWx0aXN0ZXBJbnN0YW50U3Bpbm5lciIpLmhpZGUoKTsKay5zZW5kRW1haWwoKX0pO2Uub24oIndhaXRpbmdPblJvdXRlMSIsKGYsZyk9Pntjb25zb2xlLmxvZygiV2FpdGluZyBvbiBSb3V0ZSAxOiAlbyIsZil9KX0pfSxzZXRDcmVkaXREZWNpc2lvbjpmdW5jdGlvbihkKXt2YXIgYyxlPSIiO2lmKGQuanNvbil7dmFyIGY9ImFwcHJvdmVkIj09ZC5qc29uLnN0YXR1cz8iQXBwcm92ZWQiOiJEZW5pZWQiO3ZhciBnPW51bGwhPShjPWQuanNvbi5pZCk\/YzoiIjt2YXIgbDtjPW51bGwhPShsPWQuanNvbi5sZW5kZXIpP2w6IiI7ZC5qc29uLmVycm9ybXNnJiYiTm8gcGF5bWVudCI9PWQuanNvbi5lcnJvcm1zZyYmKGY9ZC5qc29uLmVycm9ybXNnLGM9Zz0iIik7ZT1kLmpzb24uZXJyb3Jtc2d9ZWxzZSBpZihkLnN0YXRlKXtmPSJEZW5pZWQiO3ZhciBwO2c9bnVsbCE9KHA9ZC5zdGF0ZS5pZCk\/cDoiIjtjPSIiO2QuZXJyb3Jtc2cmJiJObyBwYXltZW50Ij09ZC5lcnJvcm1zZyYmKGY9ZC5lcnJvcm1zZyxjPWc9IiIpO2U9ZC5lcnJvcm1zZz9kLmVycm9ybXNnOgpkLmVycm9yfWVsc2UgZj0iRGVuaWVkIixjPWc9IiI7IkFwcHJvdmVkIiE9Zj8obD0kKCIjRklOQU5DRV9GT1JNX1JPVVRFT05FX05PQVBQUk9WQUxfTVNHIikudmFsKCksIk5vIHBheW1lbnQiPT1mPyhmPSJFTkdMSVNIIj09JCgiI2FjdGl2ZXNpdGVsYW5ndWFnZSIpLnZhbCgpP2Y6IlBhcyBkZSBwYWllbWVudCIsbD1sLnJlcGxhY2UoIiRSb3V0ZU9uZUlEIiwiIikucmVwbGFjZSgiJEVycm9yQ29kZSIsZikpOmw9Zz9sLnJlcGxhY2UoIiRSb3V0ZU9uZUlEIixnKS5yZXBsYWNlKCIkRXJyb3JDb2RlIixlKTpsLnJlcGxhY2UoIiRSb3V0ZU9uZUlEIiwiIikucmVwbGFjZSgiJEVycm9yQ29kZSIsZSkpOihsPSQoIiNGSU5BTkNFX0ZPUk1fUk9VVEVPTkVfQVBQUk9WQUxfTVNHIikudmFsKCksbD1sLnJlcGxhY2UoIiRNYWtlIixhLmZvcm1kYXRhLmN1cnJlbnRNYWtlKSxsPWwucmVwbGFjZSgiJE1vZGVsIixhLmZvcm1kYXRhLmN1cnJlbnRNb2RlbFRleHQpLGw9bC5yZXBsYWNlKCIkWWVhciIsCmEuZm9ybWRhdGEuY3VycmVudFllYXIpLGw9bC5yZXBsYWNlKCIkVmVyc2lvbiIsYS5mb3JtZGF0YS5jdXJyZW50VHJpbSksbD1sLnJlcGxhY2UoIiRMZW5kZXIiLGMpLGw9bC5yZXBsYWNlKCIkUmVmZXJlbmNlSUQiLGcpLGY9JCgnaW5wdXRbZGF0YS1mb3J2YXI9Ik9WRVJXUklUVEVSREVBTEVSIl0nKS52YWwoKSYmJCgnaW5wdXRbZGF0YS1mb3J2YXI9Ik9WRVJXUklUVEVSREVBTEVSIl0nKS5sZW5ndGg\/JCgnaW5wdXRbZGF0YS1mb3J2YXI9Ik9WRVJXUklUVEVSREVBTEVSIl0nKS52YWwoKToiIixwPSIiIT0kKCdpbnB1dFtkYXRhLWZvcnZhcj0iREVBTEVSIl0nKS52YWwoKSYmJCgnaW5wdXRbZGF0YS1mb3J2YXI9IkRFQUxFUiJdJykubGVuZ3RoPyQoJ2lucHV0W2RhdGEtZm9ydmFyPSJERUFMRVIiXScpLnZhbCgpOiQoIiNoaWRkZW5EZWFsZXJOYW1lIikudmFsKCksZj1mIT1wJiYiIiE9Zj9mOnAsbD1sLnJlcGxhY2UoIiREZWFsZXJOYW1lIixmKSxsPSIiIT1hLmZvcm1kYXRhLmN1cnJlbnRTdG9ja051bWJlcj8KbC5yZXBsYWNlKCIkU3RvY2siLGEuZm9ybWRhdGEuY3VycmVudFN0b2NrTnVtYmVyKTpsLnJlcGxhY2UoIihTdG9jayAkU3RvY2spIiwiIiksZj0iRU5HTElTSCI9PSQoIiNhY3RpdmVzaXRlbGFuZ3VhZ2UiKS52YWwoKT8iQXBwcm92ZWQiOiJBcHByb3V2w6kiKTtjJiYoZis9IiAiK2MpO2cmJihmKz0iICgiK2crIikiKTtlJiYoZis9IlxuIitlKTtnPVtdO2Qucm91dGUxaWQmJmcucHVzaChkLnJvdXRlMWlkKTtkLnN0YXRlJiZkLnN0YXRlLmlkJiZnLnB1c2goZC5zdGF0ZS5pZCk7aWYoZC5oaXN0b3J5KWZvcihlPTA7ZTxkLmhpc3RvcnkubGVuZ3RoO2UrKylkLmhpc3RvcnlbZV0uaWQmJmcucHVzaChkLmhpc3RvcnlbZV0uaWQpO2VtYWlsSGFuZGxlci5vbkFmdGVyTGVhZENyZWF0ZWQ9e2FjdGlvbjoiUk9VVEVPTkUiLGNvbnZlcnNhdGlvbklkczpnfTthLmNyZWRpdERlY2lzaW9uSFRNTD1mOyQoYikuZmluZCgiLmNvbmZpcm1hdGlvblRpdGxlIikuaGlkZSgpOyQoYikuZmluZCgiLmNvbmZpcm1hdGlvblRleHQiKS5oaWRlKCk7CiQoYikuZmluZCgiLmNyZWRpdERlY2lzaW9uIikudGV4dChsKTskKGIpLmZpbmQoIi5jcmVkaXREZWNpc2lvbiIpLnNob3coKX0sc2V0Q3VycmVudE1ha2VNb2RlbFllYXI6ZnVuY3Rpb24oKXtpZigiMSI9PSQoIiNGSU5BTkNFX01VTFRJU1RFUF9pc0luc3RhbnQiLGIpLnZhbCgpKXthLnN0ZXA9MDthLm5leHRTdGVwPUs7YS5mb3JtZGF0YS5ub1BheW1lbnQ9ITE7YS5jYWxjdWxhdG9yRnVuY3Rpb25zPW51bGw7YS5mb3JtZGF0YS5wYXltZW50VHlwZT0iIjthLmZvcm1kYXRhLnBheW1lbnRUeXBlUmVhbD0iIjthLmZvcm1kYXRhLnBheW1lbnRUZXJtPSIiO2EuZm9ybWRhdGEucGF5bWVudFJhdGVUeXBlPSIiO2EuZm9ybWRhdGEucGF5bWVudFJlc2lkdWFsVmFsdWU9IiI7YS5mb3JtZGF0YS5wYXltZW50VmFsdWU9IiI7YS5mb3JtZGF0YS52ZWhpY2xlSW5pdGlhbFByaWNlPSIiO2EuZm9ybWRhdGEudmVoaWNsZUZpbmFsUHJpY2U9IiI7YS5mb3JtZGF0YS5wYXltZW50RmVlc0xpc3Q9W107CmEuZm9ybWRhdGEucGF5bWVudEluY2VudGl2ZXNMaXN0PVtdO2EuZm9ybWRhdGEuYmFzZXBheW1lbnQ9IiI7YS5mb3JtZGF0YS5wYXltZW50VG90YWxJbmNlbnRpdmU9MDthLmZvcm1kYXRhLnBheW1lbnRUb3RhbEZlZT0wO2EuZm9ybWRhdGEucGF5bWVudEdTVD0wO2EuZm9ybWRhdGEucGF5bWVudEhTVD0wO2EuZm9ybWRhdGEucGF5bWVudFBTVD0wO2EuZm9ybWRhdGEucGF5bWVudERvd25QYXltZW50PTA7YS5mb3JtZGF0YS50cmFkZUluVmFsdWU9IiI7YS5mb3JtZGF0YS5wYXltZW50S21BbGxvd2FuY2U9MDthLmZvcm1kYXRhLnBheW1lbnRJbnRlcnZhbD0iIjthLmZvcm1kYXRhLnBheW1lbnRSYXRlPSIiO3ZhciBkPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmaW5hbmNlTXVsdGlzdGVwTmV3Q2FsY3VsYXRvciIpO2QucmVwbGFjZVdpdGgoZC5jbG9uZU5vZGUoITApKX1hLmZvcm1kYXRhLmN1cnJlbnRNYWtlPSQoIiNwb3B1cG1ha2VNdWx0aXN0ZXBGb3JtIikubGVuZ3RoPyQoIiNwb3B1cG1ha2VNdWx0aXN0ZXBGb3JtIikudmFsKCk6CmEuZm9ybWRhdGEuY3VycmVudE1ha2U7YS5mb3JtZGF0YS5jdXJyZW50TW9kZWw9JCgiI3BvcHVwbW9kZWxNdWx0aXN0ZXBGb3JtIikubGVuZ3RoPyQoIiNwb3B1cG1vZGVsTXVsdGlzdGVwRm9ybSIpLnZhbCgpOmEuZm9ybWRhdGEuY3VycmVudE1vZGVsO2EuZm9ybWRhdGEuY3VycmVudFllYXI9JCgiI3BvcHVweWVhck11bHRpc3RlcEZvcm0iKS5sZW5ndGgmJjAhPSQoIiNwb3B1cHllYXJNdWx0aXN0ZXBGb3JtIikudmFsKCk\/JCgiI3BvcHVweWVhck11bHRpc3RlcEZvcm0iKS52YWwoKTphLmZvcm1kYXRhLmN1cnJlbnRZZWFyO2EuZm9ybWRhdGEuY3VycmVudFN0b2NrTnVtYmVyPSQoIiNwb3B1cHN0b2NrbnVtYmVyTXVsdGlzdGVwRm9ybSIpLmxlbmd0aD8kKCIjcG9wdXBzdG9ja251bWJlck11bHRpc3RlcEZvcm0iKS52YWwoKTphLmZvcm1kYXRhLmN1cnJlbnRTdG9ja051bWJlcjt2YXIgYz0kKCIjdG9wY2FyaWRNdWx0aXN0ZXBGb3JtIikudmFsKCk7MD09cGFyc2VJbnQoYykmJgooYz0iIik7aWYoIiIhPWEuZm9ybWRhdGEuY3VycmVudE1ha2UmJiIiIT1hLmZvcm1kYXRhLmN1cnJlbnRNb2RlbCYmIiIhPWEuZm9ybWRhdGEuY3VycmVudFllYXJ8fCIiIT1jKWlmKGMpJC5nZXRKU09OKCIvanMvanNvbi8iK2MrIi5qc29uIixmdW5jdGlvbihmKXthLmZvcm1kYXRhLnZlaGljbGVTYWxlc0RlcHQ9InVzZWQiO2EuY3VycmVudERlcHQ9IlVTRUQiO2lmKGYuaXNuZXd8fGYuZGVtbyYmIjEiPT0kKCdpbnB1dFtuYW1lPSJGSU5BTkNFX0RFTU9BU05FVyJdJyxiKS52YWwoKSlhLmZvcm1kYXRhLnZlaGljbGVTYWxlc0RlcHQ9Im5ldyIsYS5jdXJyZW50RGVwdD0iTkVXSU5WIixhLmZvcm1kYXRhLmN1cnJlbnRTdHlsZWlkPWYuc3R5bGVJZDswPGYubWFrZWNlcnQmJihhLmZvcm1kYXRhLnZlaGljbGVTYWxlc0RlcHQ9ImNwbyIpO3ZhciBnPShmLnRyYW5zbWlzc2lvbkVOKyIiKS5tYXRjaCgvKGF1dG9tYXRpY3xtYW51YWwpL2kpO2c9Zz9nWzBdOiIiO2EuZm9ybWRhdGEudmVoaWNsZUNvbG9yPQpmLmNvbG9yRU47YS5mb3JtZGF0YS52ZWhpY2xlUHJpY2U9Zi5vcmlnaW5hbFByaWNlO2EuZm9ybWRhdGEudmVoaWNsZVRhbnNtaXNzaW9uPWc7YS5mb3JtZGF0YS52ZWhpY2xlVHJpbT1mLnZlcnNpb247YS5mb3JtZGF0YS5jdXJyZW50VHJpbT1mLnZlcnNpb247YS5mb3JtZGF0YS5jdXJyZW50Q2FySWQ9YzthLmZvcm1kYXRhLmN1cnJlbnRNaWxlYWdlPWYubWlsZXM7c3dpdGNoKGYuYm9keVR5cGVJRCl7Y2FzZSAiU1VWIjphLmZvcm1kYXRhLnZlaGljbGVUeXBlPSJCT0RZVFlQRV9TVVYiO2JyZWFrO2Nhc2UgIlRSVUNLIjphLmZvcm1kYXRhLnZlaGljbGVUeXBlPSJCT0RZVFlQRV9UUlVDSyI7YnJlYWs7Y2FzZSAiTUlOSVZBTiI6YS5mb3JtZGF0YS52ZWhpY2xlVHlwZT0iQk9EWVRZUEVfTUlOSVZBTiI7YnJlYWs7ZGVmYXVsdDphLmZvcm1kYXRhLnZlaGljbGVUeXBlPSJCT0RZVFlQRV9DQVIifTA9PWEuc3RlcCYmYS5uZXh0KCEwKTtrLnBvcHVwTGF1bmNoZWRUcmFjaygpfSk7ZWxzZXthLmZvcm1kYXRhLnZlaGljbGVTYWxlc0RlcHQ9CiJuZXciO2Q9IkVOR0xJU0giPT0kKCIjYWN0aXZlc2l0ZWxhbmd1YWdlIikudmFsKCk\/Ii1lbiI6Ii1mciI7dXJsPSIvanNvbi8iK2EuZm9ybWRhdGEuY3VycmVudE1ha2UucmVwbGFjZSgiLSIsIl8iKS5yZXBsYWNlKCIgIiwiXyIpKyItIithLmZvcm1kYXRhLmN1cnJlbnRNb2RlbC5yZXBsYWNlKCItIiwiXyIpLnJlcGxhY2UoIiAiLCJfIikrIi0iK2EuZm9ybWRhdGEuY3VycmVudFllYXIrZCsiLmpzb24iO2lmKCJCTVciPT1hLmZvcm1kYXRhLmN1cnJlbnRNYWtlfHwiTWVyY2VkZXMtQmVueiI9PWEuZm9ybWRhdGEuY3VycmVudE1ha2Upe3ZhciBlPSQoIiN0ZXh0TW9kZWxPdmVycmlkZSIpLmxlbmd0aCYmJCgiI3RleHRNb2RlbE92ZXJyaWRlIikudmFsKCkubGVuZ3RoPyQoIiN0ZXh0TW9kZWxPdmVycmlkZSIpLnZhbCgpOmEuZm9ybWRhdGEuY3VycmVudE1vZGVsO3VybD0iL2pzb24vIithLmZvcm1kYXRhLmN1cnJlbnRNYWtlLnJlcGxhY2UoIi0iLCJfIikucmVwbGFjZSgiICIsIl8iKSsKIi0iK2UucmVwbGFjZSgiLSIsIl8iKS5yZXBsYWNlKCIgIiwiXyIpKyItIithLmZvcm1kYXRhLmN1cnJlbnRZZWFyK2QrIi5qc29uIn0wPD1hLmZvcm1kYXRhLmN1cnJlbnRNb2RlbC5pbmRleE9mKCJoeWJyaWQiKSYmKGU9JCgnaW5wdXRbZGF0YS1mb3J2YXI9Ik1PREVMRk9SRU1BSUwiXScpLmxlbmd0aCYmJCgnaW5wdXRbZGF0YS1mb3J2YXI9Ik1PREVMRk9SRU1BSUwiXScpLnZhbCgpLmxlbmd0aD8kKCdpbnB1dFtkYXRhLWZvcnZhcj0iTU9ERUxGT1JFTUFJTCJdJykudmFsKCk6YS5mb3JtZGF0YS5jdXJyZW50TW9kZWwsdXJsPSIvanNvbi8iK2EuZm9ybWRhdGEuY3VycmVudE1ha2UucmVwbGFjZSgiLSIsIl8iKSsiLSIrZS5yZXBsYWNlKCItIiwiXyIpKyItIithLmZvcm1kYXRhLmN1cnJlbnRZZWFyK2QrIi5qc29uIik7JCgiLnBheW1lbnRDYWxjdWxhdG9yVkRQIikubGVuZ3RoP2EuZm9ybWRhdGEuY3VycmVudFN0eWxlaWQ9JCgiLnBheW1lbnRDYWxjdWxhdG9yVkRQIikuYXR0cigiZGF0YS1zdHlsZWlkIik6CiQoIi5wYXltZW50Q2FsY0J0biIpLmxlbmd0aD9hLmZvcm1kYXRhLmN1cnJlbnRTdHlsZWlkPSQoIi5wYXltZW50Q2FsY0J0biIpLmF0dHIoImRhdGEtc3R5bGVpZCIpOiQoIiNhY3RpdmVTdHlsZUlEIikubGVuZ3RoJiYoYS5mb3JtZGF0YS5jdXJyZW50U3R5bGVpZD0kKCIjYWN0aXZlU3R5bGVJRCIpLnZhbCgpKTskLmdldEpTT04odXJsLGZ1bmN0aW9uKGYpe2lmKGYpe3N3aXRjaChmLnNlY3Rpb24pe2Nhc2UgInN1diI6YS5mb3JtZGF0YS52ZWhpY2xlVHlwZT0iQk9EWVRZUEVfU1VWIjticmVhaztjYXNlICJ0cnVja3MiOmEuZm9ybWRhdGEudmVoaWNsZVR5cGU9IkJPRFlUWVBFX1RSVUNLIjticmVhaztjYXNlICJtaW5pdmFucyI6YS5mb3JtZGF0YS52ZWhpY2xlVHlwZT0iQk9EWVRZUEVfTUlOSVZBTiI7YnJlYWs7ZGVmYXVsdDphLmZvcm1kYXRhLnZlaGljbGVUeXBlPSJCT0RZVFlQRV9DQVIifSIiIT1hLmZvcm1kYXRhLmN1cnJlbnRTdHlsZWlkJiZmLnN0eWxlcy5mb3JFYWNoKGZ1bmN0aW9uKGcpe2cuaWQ9PQphLmZvcm1kYXRhLmN1cnJlbnRTdHlsZWlkJiYoYS5mb3JtZGF0YS5jdXJyZW50VHJpbT0iIiE9Zy50cmltP2cudHJpbTpnLkNGU3R5bGVOYW1lLGEuZm9ybWRhdGEudmVoaWNsZVByaWNlPWcubXNycEFsbEluKX0pfTA9PWEuc3RlcCYmKGEubmV4dCghMCksay5wb3B1cExhdW5jaGVkVHJhY2soKSl9KX1lbHNlIiIhPWEuZm9ybWRhdGEuZW1haWxBZGRyZXNzJiYyMSE9YS5zdGVwJiYiMSIhPSQoIiNmaW5hbmNlX211bHRpc3RlcF9mb3JtICNPUEVORURGUk9NSU1BR0VQT1BVUCIsYikudmFsKCkmJmEucHVzaFBhcnRpYWwmJmsucHVzaERhdGFUb1NlcnZlcigpLC0xPT1hLm9wdGlvbmFsU3RlcC5pbmRleE9mKGEuc3RlcCkmJmEubmV4dCghMCksay5wb3B1cExhdW5jaGVkVHJhY2soKX0sZ2V0Q2xpZW50U3RvcmFnZURhdGE6ZnVuY3Rpb24oZCl7bGV0IGM9IiI7InVuZGVmaW5lZCIhPT10eXBlb2YgY2xpZW50U3RvcmFnZSYmKGM9Y2xpZW50U3RvcmFnZS5nZXQoZCkpO3JldHVybiBjfSwKc2V0Q2xpZW50U3RvcmFnZURhdGE6ZnVuY3Rpb24oZCxjKXsidW5kZWZpbmVkIiE9PXR5cGVvZiBjbGllbnRTdG9yYWdlJiZjbGllbnRTdG9yYWdlLnNldChkLGMpfSxzZXRDbGllbnRTdG9yYWdlRGF0YVZhbHVlczpmdW5jdGlvbigpeyJ1bmRlZmluZWQiIT09dHlwZW9mIGNsaWVudFN0b3JhZ2UmJigiIiE9PWEuZm9ybWRhdGEuZmlyc3ROYW1lJiZrLnNldENsaWVudFN0b3JhZ2VEYXRhKCJmaXJzdG5hbWUiLGEuZm9ybWRhdGEuZmlyc3ROYW1lKSwiIiE9PWEuZm9ybWRhdGEubGFzdE5hbWUmJmsuc2V0Q2xpZW50U3RvcmFnZURhdGEoImxhc3RuYW1lIixhLmZvcm1kYXRhLmxhc3ROYW1lKSwiIiE9PWEuZm9ybWRhdGEuZW1haWxBZGRyZXNzJiZrLnNldENsaWVudFN0b3JhZ2VEYXRhKCJlbWFpbCIsYS5mb3JtZGF0YS5lbWFpbEFkZHJlc3MpLCIiIT09YS5mb3JtZGF0YS5waG9uZU51bWJlciYmay5zZXRDbGllbnRTdG9yYWdlRGF0YSgicGhvbmUiLGEuZm9ybWRhdGEucGhvbmVOdW1iZXIpKX0sCnNldERlcGFydG1lbnQ6ZnVuY3Rpb24oKXt2YXIgZD1lbWFpbEhhbmRsZXIuZ2V0RGVwKCk7aWYoIk5FVyIhPWR8fCJORVdJTlYiIT1kfHwiVVNFRCIhPWQpZD0iTkVXIjthLmN1cnJlbnREZXB0PWQ7Ik5FVyIhPWR8fCJjYXJkZXRhaWwuaHRtbCIhPSQoIiNQQUdFSUQiKS52YWwoKSYmInVzZWRjYXJzLmh0bWwiIT0kKCIjUEFHRUlEIikudmFsKCl8fChhLmN1cnJlbnREZXB0PSJORVdJTlYiKX0sc2V0VHJhZGVJbjpmdW5jdGlvbigpe2EuZm9ybWRhdGEudHJhZGVJbk1ha2U9JChiKS5maW5kKCdpbnB1dFtuYW1lPSJmaW5hbmNlVHJhZGVJbk1ha2UiXScpLnZhbCgpO2EuZm9ybWRhdGEudHJhZGVJbk1vZGVsPSQoYikuZmluZCgnaW5wdXRbbmFtZT0iZmluYW5jZVRyYWRlSW5Nb2RlbCJdJykudmFsKCk7YS5mb3JtZGF0YS50cmFkZUluWWVhcj0kKGIpLmZpbmQoJ2lucHV0W25hbWU9ImZpbmFuY2VUcmFkZUluWWVhciJdJykudmFsKCk7YS5mb3JtZGF0YS50cmFkZUluVHJpbT0kKGIpLmZpbmQoJ2lucHV0W25hbWU9ImZpbmFuY2VUcmFkZUluVHJpbSJdJykudmFsKCk7CmxldCBkPSQoYikuZmluZCgnaW5wdXRbbmFtZT0iZmluYW5jZVRyYWRlSW5WYWx1ZSJdJykudmFsKCksYz0kKGIpLmZpbmQoJ2lucHV0W25hbWU9ImZpbmFuY2VUcmFkZUluVmFsdWUiXScpLmF0dHIoImRhdGEtY3VycmVudCIpO2MmJiIiPT1hLmZvcm1kYXRhLnRyYWRlSW5WYWx1ZT9hLmZvcm1kYXRhLnRyYWRlSW5WYWx1ZT1jOiIiPT1hLmZvcm1kYXRhLnRyYWRlSW5WYWx1ZSYmKGEuZm9ybWRhdGEudHJhZGVJblZhbHVlPWQpOyIiIT1hLmZvcm1kYXRhLnRyYWRlSW5WYWx1ZSYmKCQoIi5wYXltZW50Q2FsY3VsYXRvclRyYWRlSW5GaW5hbCIsYikudmFsKGEuZm9ybWRhdGEudHJhZGVJblZhbHVlKSwkKCIucGF5bWVudENhbGN1bGF0b3JUcmFkZUluRmluYWwiLGIpLmF0dHIoIm1heCIsZCksJCgiLnBheW1lbnRDYWxjdWxhdG9yVHJhZGVJbkZpbmFsIixiKS5zaG93KCksJCgiLnBheW1lbnRDYWxjdWxhdG9yVHJhZGVJbkluaXRpYWwiLGIpLmhpZGUoKSl9LGdldEN1cnJlbnRCdWRnZXQ6ZnVuY3Rpb24oZCl7cmV0dXJuIjEiPT0KJCgnaW5wdXRbbmFtZT0iRklOQU5DRV9NVUxUSVNURVBfSElHSF9CVURHRVRfQ0hFQ0siXScpLnZhbCgpPzUwMD49ZD8iRklOQU5DRV9GT1JNX0JVREdFVF9VTkRFUl81MDAiOjY3Njw9ZCYmODUwPj1kPyJGSU5BTkNFX0ZPUk1fQlVER0VUX0JFVFdFRU5fNjc2X0FORF84NTAiOjg1MTw9ZCYmMTEwMD49ZD8iRklOQU5DRV9GT1JNX0JVREdFVF9CRVRXRUVOXzg1MV9BTkRfMTEwMCI6MTM1MDxkPyJGSU5BTkNFX0ZPUk1fQlVER0VUX09WRVJfMTM1MSI6NTAxPD1kJiY2NzU+PWQ\/IkZJTkFOQ0VfRk9STV9CVURHRVRfQkVUV0VFTl81MDFfQU5EXzY3NSI6IkZJTkFOQ0VfRk9STV9CVURHRVRfQkVUV0VFTl8xMTAxX0FORF8xMzUwIjoiMSI9PSQoJ2lucHV0W25hbWU9IkZJTkFOQ0VfTVVMVElTVEVQX1ZFUllISUdIX0JVREdFVF9DSEVDSyJdJykudmFsKCk\/OTAwPj1kPyJGSU5BTkNFX0ZPUk1fQlVER0VUX1VOREVSXzkwMCI6MTE1MTw9ZCYmMTQwMD49ZD8iRklOQU5DRV9GT1JNX0JVREdFVF9CRVRXRUVOXzExNTFfQU5EXzE0MDAiOgoxNDAxPD1kJiYxNjUwPj1kPyJGSU5BTkNFX0ZPUk1fQlVER0VUX0JFVFdFRU5fMTQwMV9BTkRfMTY1MCI6MTkwMDxkPyJGSU5BTkNFX0ZPUk1fQlVER0VUX09WRVJfMTkwMSI6OTAxPD1kJiYxMTUwPj1kPyJGSU5BTkNFX0ZPUk1fQlVER0VUX0JFVFdFRU5fOTAxX0FORF8xMTUwIjoiRklOQU5DRV9GT1JNX0JVREdFVF9CRVRXRUVOXzE2NTFfQU5EXzE5MDAiOjM1MD49ZD8iRklOQU5DRV9GT1JNX0JVREdFVF9VTkRFUl8zNTAiOjYwMTw9ZCYmNzUwPj1kPyJGSU5BTkNFX0ZPUk1fQlVER0VUX0JFVFdFRU5fNjAxX0FORF83NTAiOjc1MTw9ZCYmOTAwPj1kPyJGSU5BTkNFX0ZPUk1fQlVER0VUX0JFVFdFRU5fNzUxX0FORF85MDAiOjkwMDxkPyJGSU5BTkNFX0ZPUk1fQlVER0VUX09WRVJfOTAxIjozNTE8PWQmJjQ3NT49ZD8iRklOQU5DRV9GT1JNX0JVREdFVF9CRVRXRUVOXzM1MV9BTkRfNDc1IjoiRklOQU5DRV9GT1JNX0JVREdFVF9CRVRXRUVOXzQ3Nl9BTkRfNjAwIn0sc2V0RW1haWxIYW5kbGVyU2VuZDpmdW5jdGlvbigpe2lmKDA9PQphLmZvcm1kYXRhLm11bHRpRnJvbU1pbml8fCJmYWxzZSI9PWEuZm9ybWRhdGEubXVsdGlGcm9tTWluaSllbWFpbEhhbmRsZXIuc2VuZFRvPSQoIiNGSU5BTkNFX0ZPUk1fU0VORFRPX0VNQUlMIixiKS52YWwoKSxlbWFpbEhhbmRsZXIuc2VuZFRvQURGRm9ybWF0PSQoIiNGSU5BTkNFX0ZPUk1fU0VORFRPQURGX0VNQUlMIixiKS52YWwoKSxlbWFpbEhhbmRsZXIuZGVhbGVyTmFtZT0iIiE9JCgiI0ZJTkFOQ0VfRk9STV9ERUFMRVJOQU1FIixiKS52YWwoKT8kKCIjRklOQU5DRV9GT1JNX0RFQUxFUk5BTUUiLGIpLnZhbCgpOmVtYWlsSGFuZGxlci5kZWFsZXJOYW1lO2VtYWlsSGFuZGxlci52ZWhpY2xlVHlwZT1hLmZvcm1kYXRhLnZlaGljbGVUeXBlO2VtYWlsSGFuZGxlci5jYXJpZD1hLmZvcm1kYXRhLmN1cnJlbnRDYXJJZDtpZigtMT09PVstMSwiLTEiLCIiXS5pbmRleE9mKGEuZm9ybWRhdGEubXVsdGlfZGVhbGVyX3NlbmRUbykpe3ZhciBkPSQoIiNtdWx0aXN0ZXAtbXVsdGlhZGRyZXNzIiwKYikuZmluZCgic2VsZWN0IikuZmluZCgiOnNlbGVjdGVkIik7ZW1haWxIYW5kbGVyLnNlbmRUbz1kLmRhdGEoImVtYWlsZmluYW5jZSIpfHxkLmRhdGEoImVtYWlsIik7ZW1haWxIYW5kbGVyLnNlbGVjdGVkU2VuZFRvPWQuZGF0YSgiZW1haWxmaW5hbmNlIil8fGQuZGF0YSgiZW1haWwiKTtlbWFpbEhhbmRsZXIuc2VuZFRvQURGRm9ybWF0PWQuZGF0YSgiZW1haWxhZGZmaW5hbmNlIil8fGQuZGF0YSgiZW1haWxhZGYiKTtlbWFpbEhhbmRsZXIuc2VsZWN0ZWRTZW5kVG9BREZGb3JtYXQ9ZC5kYXRhKCJlbWFpbGFkZmZpbmFuY2UiKXx8ZC5kYXRhKCJlbWFpbGFkZiIpO2VtYWlsSGFuZGxlci5kZWFsZXJOYW1lPWQudGV4dCgpO2VtYWlsSGFuZGxlci5oYXNTZWxlY3RlZE11bHRpQWRkcmVzcz0hMH19LGluaXRTZWxlY3RNdWx0aURlYWxlcjpmdW5jdGlvbigpe3ZhciBkPSQoIiNtdWx0aS1hZGRyZXNzLXN1Ym1pc3Npb24iKTtpZigwPT09ZC5sZW5ndGgpYS5mb3JtZGF0YS5tdWx0aV9kZWFsZXJfc2VuZFRvPQotMSxhLm5leHQoITApO2Vsc2V7dmFyIGM9JCgiI1BPU1RfTEVBRF9TRU5EX1RPX0RFQUxFUl9UWVBFX1NFTEVDVCIpLmxlbmd0aD8kKCIjUE9TVF9MRUFEX1NFTkRfVE9fREVBTEVSX1RZUEVfU0VMRUNUIikudmFsKCk6ImxvY2F0aW9uIjsoMDwkKCIjdGFyZ2V0UGFnZSIpLmxlbmd0aCYmIkNBUkRFVEFJTFMiPT09JCgiI3RhcmdldFBhZ2UiKS52YWwoKXx8IiIhPSQoIiNwb3B1cHN0b2NrbnVtYmVyTXVsdGlzdGVwRm9ybSIpLnZhbCgpJiYiMSI9PSQoIiNGSU5BTkNFX0ZPUk1fQURNSU5fU0hPV1BIWVNJQ0FMQUREUkVTU19DSEVDSyIpLnZhbCgpKSYmImxvY2F0aW9uIj09Yz8oYS5mb3JtZGF0YS5tdWx0aV9kZWFsZXJfc2VuZFRvPS0xLGEubmV4dCghMCkpOiIiPT09JCgiI211bHRpc3RlcC1tdWx0aWFkZHJlc3MiLGIpLnRleHQoKS50cmltKCkmJigkKCIjbXVsdGlzdGVwLW11bHRpYWRkcmVzcyIsYikuYXBwZW5kKGQuaHRtbCgpKSwiIiE9PWEuZm9ybWRhdGEuY3VycmVudE1ha2UmJgoidW5kZWZpbmVkIiE9PXR5cGVvZiBtdWx0aURlYWxlclNlbGVjdCYmKGQ9JCgiI211bHRpc3RlcC1tdWx0aWFkZHJlc3MiLGIpLmZpbmQoInNlbGVjdCIpLG11bHRpRGVhbGVyU2VsZWN0LmZpbHRlcihkKS5ieU1ha2UoYS5mb3JtZGF0YS5jdXJyZW50TWFrZSkpLCQoIiNtdWx0aXN0ZXAtbXVsdGlhZGRyZXNzIixiKS5maW5kKCJzZWxlY3QiKS5vbigiY2hhbmdlIixmdW5jdGlvbigpeyQodGhpcykuY3NzKCJib3JkZXItY29sb3IiLCIiKTthLmZvcm1kYXRhLm11bHRpX2RlYWxlcl9zZW5kVG89JCh0aGlzKS52YWwoKTtrLmNoZWNrVmFsaWRpdHkoKX0pKX19LG11bHRpRGVhbGVyRm9ybVN0YXR1czpmdW5jdGlvbigpe3JldHVybiAwPT09JCgiI211bHRpLWFkZHJlc3Mtc3VibWlzc2lvbiIpLmxlbmd0aD8hMDoiIiE9PWEuZm9ybWRhdGEubXVsdGlfZGVhbGVyX3NlbmRUb30sZW1haWxCb2R5Rm9yTXVsdGlEZWFsZXI6ZnVuY3Rpb24oZCl7aWYoMD09PSQoIiNtdWx0aS1hZGRyZXNzLXN1Ym1pc3Npb24iKS5sZW5ndGgpcmV0dXJuIGQ7CnZhciBjPSQoIiNtdWx0aXN0ZXAtbXVsdGlhZGRyZXNzIixiKS5maW5kKCJzZWxlY3QgOnNlbGVjdGVkIiksZT0kKCIjcG9zdExlYWRMYWJlbCIpLnZhbCgpOyJ1bmRlZmluZWQiIT09dHlwZW9mIGUmJmMubGVuZ3RoPyhlPWUucmVwbGFjZSgieyRNVUxUSURFQUxFUk5BTUV9IixjLnRleHQoKSkucmVwbGFjZSgieyRQT1NUX0xFQURfRU1BSUxTfSIsIiIpLGQ9ZC5yZXBsYWNlKCJ7JERFQUxFUl9TRU5EVE99IixlKSk6JCgnaW5wdXRbZGF0YS1mb3J2YXI9Ik9WRVJXUklUVEVSREVBTEVSIl0nKS5sZW5ndGgmJiIiIT0kKCdpbnB1dFtkYXRhLWZvcnZhcj0iT1ZFUldSSVRURVJERUFMRVIiXScpLnZhbCgpJiYkKCdpbnB1dFtkYXRhLWZvcnZhcj0iREVBTEVSIl0nKS5sZW5ndGgmJiQoJ2lucHV0W2RhdGEtZm9ydmFyPSJPVkVSV1JJVFRFUkRFQUxFUiJdJykudmFsKCkhPSQoJ2lucHV0W2RhdGEtZm9ydmFyPSJERUFMRVIiXScpLnZhbCgpPyhjPSQoImJvZHkiKS5oYXNDbGFzcygiRlJFTkNIIik\/CiJDb25jZXNzaW9uIG\/vv70gZXN0IHNpdHXvv70gbGUgdu+\/vWhpY3VsZTogIjoiRGVhbGVyIHdoZXJlIHRoZSB2ZWhpY2xlIGlzIGxvY2F0ZWQ6ICIsYys9JCgnaW5wdXRbZGF0YS1mb3J2YXI9Ik9WRVJXUklUVEVSREVBTEVSIl0nKS52YWwoKSxkPWQucmVwbGFjZSgieyRERUFMRVJfU0VORFRPfSIsYykpOmQ9ZC5yZXBsYWNlKC88YnJccz9cLz57XCRERUFMRVJfU0VORFRPfShiclxzP1wvKT8vLCIiKS5yZXBsYWNlKCJ7JERFQUxFUl9TRU5EVE99IiwiIik7cmV0dXJuIGR9LGNoZWNrVmFsaWRpdHk6ZnVuY3Rpb24oKXtpZihhLnZhbGlkYXRpb25SdWxlcy5oYXNPd25Qcm9wZXJ0eSgic3RlcCIrYS5zdGVwKSlmb3IodmFyIGQ9MDtkPGEudmFsaWRhdGlvblJ1bGVzWyJzdGVwIithLnN0ZXBdLmxlbmd0aDtkKyspaWYoa1thLnZhbGlkYXRpb25SdWxlc1sic3RlcCIrYS5zdGVwXVtkXS5mdW5jXShhLmZvcm1kYXRhW2EudmFsaWRhdGlvblJ1bGVzWyJzdGVwIithLnN0ZXBdW2RdLnZhbHVlXSkpJCgiI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm1fbmV4dF9idG4gYnV0dG9uI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm1fbmV4dF9idXR0b24iLApiKS5hZGRDbGFzcygiaXNWYWxpZCIpO2Vsc2V7JCgiI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm1fbmV4dF9idG4gYnV0dG9uI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm1fbmV4dF9idXR0b24iLGIpLnJlbW92ZUNsYXNzKCJpc1ZhbGlkIik7YnJlYWt9ZWxzZSAkKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV9uZXh0X2J0biBidXR0b24jZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV9uZXh0X2J1dHRvbiIsYikuYWRkQ2xhc3MoImlzVmFsaWQiKX0scG9wdXBMYXVuY2hlZFRyYWNrOmZ1bmN0aW9uKCl7aCgiUG9wdXAgbGF1bmNoZWQiKTshay51c2VySWQoKSYmYS5maXJzdFN0ZXAmJmxvY2FsU3RvcmFnZS5zZXRJdGVtKCJmaW5hbmNlX211bHRpc3RlcC5saW5lYXJfc3RlcCIsMSk7ay5zdGVwVHJpZ2dlcighMSl9LHN0ZXAyVmlld2VkVHJhY2s6ZnVuY3Rpb24oKXtoKCJTdGVwIDIgdmlld2VkIil9LGVtYWlsU3RlcFZpZXdlZFRyYWNrOmZ1bmN0aW9uKCl7aCgiRW1haWwgc3RlcCB2aWV3ZWQiKX0sCnBob25lU3RlcFZpZXdlZFRyYWNrOmZ1bmN0aW9uKCl7aCgiUGhvbmUgc3RlcCB2aWV3ZWQiKX0sZW1haWxQcm92aWRlZFRyYWNrOmZ1bmN0aW9uKCl7aCgiRW1haWwgcHJvdmlkZWQiKX0scGhvbmVQcm92aWRlZFRyYWNrOmZ1bmN0aW9uKCl7aCgiUGhvbmUgcHJvdmlkZWQiKX0sc3RlcFRyaWdnZXI6ZnVuY3Rpb24oZCl7ZD17c3RlcDphLmdldExpbmVhcnN0ZXAoZCksbWFrZTphLmZvcm1kYXRhLmN1cnJlbnRNYWtlLG1vZGVsOmEuZm9ybWRhdGEuY3VycmVudE1vZGVsLHllYXI6YS5mb3JtZGF0YS5jdXJyZW50WWVhcixib2R5VHlwZTphLmZvcm1kYXRhLnZlaGljbGVUeXBlLHNhbGVzRGVwdDphLmZvcm1kYXRhLnZlaGljbGVTYWxlc0RlcHQsdmVoaWNsZUNvbG9yOmEuZm9ybWRhdGEudmVoaWNsZUNvbG9yLHZlaGljbGVQcmljZTphLmZvcm1kYXRhLnZlaGljbGVQcmljZSx2ZWhpY2xlVGFuc21pc3Npb246YS5mb3JtZGF0YS52ZWhpY2xlVGFuc21pc3Npb24sdmVoaWNsZVRyaW06YS5mb3JtZGF0YS52ZWhpY2xlVHJpbX07CiQoIiNmaW5hbmNlX211bHRpc3RlcF9mb3JtIixiKS50cmlnZ2VyKCJmb3JtLnN0ZXAiLGQpO2EuZmlyc3RTdGVwPSExfX07d2luZG93LmFwcFRlc3Q9YTt2YXIgVTskKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSBpbnB1dCwgI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gc2VsZWN0LCAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSB0ZXh0YXJlYSIpLm9uKCJjaGFuZ2UgaW5wdXQiLGZ1bmN0aW9uKCl7Y2xlYXJUaW1lb3V0KFUpO1U9c2V0VGltZW91dChrLmNoZWNrVmFsaWRpdHksNTAwKX0pOyQoJyNmaW5hbmNlX211bHRpc3RlcF9mb3JtIGlucHV0W3R5cGU9Im51bWJlciJdJykub24oImZvY3VzIixmdW5jdGlvbigpeyQodGhpcykudHJpZ2dlcigic2VsZWN0Iil9KTtyZXR1cm57c3RhcnQ6UCxoYXNVc2VyOmsuaGFzVXNlcn19CiQoZnVuY3Rpb24oKXskKGRvY3VtZW50KS5vbigicmV2ZWFsOm9wZW4iLCIjZmluYW5jZU11bHRpc3RlcFBvcHVwQ29udGFpbmVyIixmdW5jdGlvbigpeyQoZG9jdW1lbnQpLnRyaWdnZXIoImNyZWRpdC5tdWx0aXN0ZXBwb3B1cC5zdGFydCIpfSk7JChkb2N1bWVudCkub24oInJldmVhbDpvcGVuIiwiI2ZpbmFuY2VNdWx0aXN0ZXBJbnN0YW50UG9wdXBDb250YWluZXIiLGZ1bmN0aW9uKCl7JChkb2N1bWVudCkudHJpZ2dlcigiY3JlZGl0Lm11bHRpc3RlcHBvcHVwLnN0YXJ0Iil9KX0pOwovKiogL2pzL2NhbGN1bGF0b3JGdW5jdGlvbnMuanMgKiovCnZhciBfX19kMmNfY2FsY3VsYXRvckZ1bmN0aW9uc2pzX2Nfb249IjIwMjYtMDItMjAgMTE6MzA6MTgiOyd1c2Ugc3RyaWN0JztjbGFzcyBjYWxjdWxhdG9yRnVuY3Rpb25ze2NvbnN0cnVjdG9yKGEpe3RoaXMucGFyZW50PWE7dGhpcy5wYXJlbnROYW1lPXRoaXMucGFyZW50LnJlcGxhY2UoIiMiLCIiKTt0aGlzLnNldFRyaWdnZXJzKCl9aW5pdChhLGUsYixmLG0sZyxoLHAsbil7dmFyIHE9dGhpcy5wYXJlbnQ7dGhpcy5zdHlsZWlkPWE7dGhpcy5wYXltZW50VHlwZT1lO3RoaXMudHJhZGVJblZhbHVlPSQocSsiIC5wYXltZW50Q2FsY3VsYXRvclRyYWRlSW5GaW5hbCIpLnZhbCgpP3BhcnNlSW50KCQocSsiIC5wYXltZW50Q2FsY3VsYXRvclRyYWRlSW5GaW5hbCIpLnZhbCgpKTowO3RoaXMuZG93bnBheW1lbnQ9MD5iLXRoaXMudHJhZGVJblZhbHVlPzA6Yi10aGlzLnRyYWRlSW5WYWx1ZTt0aGlzLm9wdGlvbnNBbW91bnQ9Zjt0aGlzLnBheW1lbnRGcmVxdWVuY3k9bTt0aGlzLmttQWxsb3dhbmNlPWc7dGhpcy5pc0ludmVudG9yeT1oP2g6ITE7dGhpcy5zbj1wP3A6IiI7dGhpcy52aW49bj8KbjoiIjt0aGlzLmxvYWRQYXltZW50cyghMCl9c2V0SW5pdGlhbFZpZXcoYSl7dmFyIGU9dGhpcy5wYXJlbnQsYj10aGlzOyQoZSsiIC5wYXltZW50Q2FsY3VsYXRvckttQWxsb3dhbmNlIG9wdGlvbiIpLnJlbW92ZSgpOyQoZSsiIC5wYXltZW50Q2FsY3VsYXRvckRvd25QYXltZW50IikudmFsKHRoaXMuZG93bnBheW1lbnQpOyQoZSsiIC5wYXltZW50Q2FsY3VsYXRvckludGVydmFsIikudmFsKGEuY3VycmVudFBheW1lbnRbMF0uaW50ZXJ2YWwpO2xldCBmPSJsZWFzZSI9PWEuY3VycmVudFBheW1lbnRbMF0udHlwZT8ibGVhc2luZyI6ImZpbmFuY2luZyI7JChlKyIgLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFR5cGUgbGkiKS5yZW1vdmVDbGFzcygiYWN0aXZlUGF5bWVudFR5cGUiKTskKGUrIiAucGF5bWVudENhbGN1bGF0b3JQYXltZW50VHlwZSBsaVtkYXRhLXR5cGU9JyIrZisiJ10iKS5hZGRDbGFzcygiYWN0aXZlUGF5bWVudFR5cGUiKTswPT1hLmZpbmFuY2UubGVuZ3RoPyQoZSsKIiAucGF5bWVudENhbGN1bGF0b3JQYXltZW50VHlwZUZpbmFuY2UiKS5oaWRlKCk6JChlKyIgLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFR5cGVGaW5hbmNlIikuc2hvdygpO2lmKDA9PWEubGVhc2UubGVuZ3RoKSQoZSsiIC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRUeXBlTGVhc2UiKS5oaWRlKCk7ZWxzZXskKGUrIiAucGF5bWVudENhbGN1bGF0b3JQYXltZW50VHlwZUxlYXNlIikuc2hvdygpO2xldCBnPVtdO2EubGVhc2UuZm9yRWFjaChmdW5jdGlvbihoKXstMT09JC5pbkFycmF5KGgua21fYWxsb3dhbmNlLGcpJiZnLnB1c2goaC5rbV9hbGxvd2FuY2UpfSk7Zy5mb3JFYWNoKGZ1bmN0aW9uKGgpe2xldCBwPWIucGF5bWVudENhbGN1bGF0b3JGb3JtYXROdW1iZXIoaC50b0ZpeGVkKDApKTskKGUrIiAucGF5bWVudENhbGN1bGF0b3JLbUFsbG93YW5jZSIpLmFwcGVuZChuZXcgT3B0aW9uKHArIiBrbSIsaCkpfSk7dmFyIG09MkU0O2EuY3VycmVudFBheW1lbnRbMF0mJiJ1bmRlZmluZWQiIT09CnR5cGVvZiBhLmN1cnJlbnRQYXltZW50WzBdLmttX2FsbG93YW5jZSYmKG09MDxhLmN1cnJlbnRQYXltZW50WzBdLmttX2FsbG93YW5jZT9hLmN1cnJlbnRQYXltZW50WzBdLmttX2FsbG93YW5jZToyRTQpOyQoZSsiIC5wYXltZW50Q2FsY3VsYXRvckttQWxsb3dhbmNlIikudmFsKG0pfXRoaXMua21BbGxvd2FuY2U9JChlKyIgLnBheW1lbnRDYWxjdWxhdG9yS21BbGxvd2FuY2UiKS52YWwoKTsibGVhc2luZyI9PWY\/JChlKyIgLnBheW1lbnRDYWxjdWxhdG9yS21BbGxvd2FuY2VDb250YWluZXIiKS5zaG93KCk6JChlKyIgLnBheW1lbnRDYWxjdWxhdG9yS21BbGxvd2FuY2VDb250YWluZXIiKS5oaWRlKCk7JCgiYm9keSIpLm9uKCJjbGljayB0YXAiLGUrIiAuZmluYW5jaW5nLW9wdGlvbi5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRXcmFwcGVyICoiLGZ1bmN0aW9uKCl7JCh0aGlzKS5maW5kKCdpbnB1dFtuYW1lPSJzZWxlY3RlZFBheW1lbnQiXScpLnByb3AoImNoZWNrZWQiLCJjaGVja2VkIikudHJpZ2dlcigiY2hhbmdlIil9KTsKJCgiYm9keSIpLm9uKCJjaGFuZ2UiLGUrJyBpbnB1dFtuYW1lPSJzZWxlY3RlZFBheW1lbnQiXScsZnVuY3Rpb24oKXt2YXIgZz0kKHRoaXMpLnZhbCgpLGg9JCh0aGlzKS5hdHRyKCJkYXRhLXJhdGV0eXBlIik7JChlKyIgLmZpbmFuY2luZy1vcHRpb24iKS5yZW1vdmVDbGFzcygic2VsZWN0ZWQiKTskKCdpbnB1dFtuYW1lPSJzZWxlY3RlZFBheW1lbnRXaXRoVGF4ZXMiXVt2YWx1ZT0iJytnKyciXVtkYXRhLXJhdGV0eXBlPSInK2grJyJdJykuY2xvc2VzdCgiLmZpbmFuY2luZy1vcHRpb24iKS5hZGRDbGFzcygic2VsZWN0ZWQiKTskKCdpbnB1dFtuYW1lPSJzZWxlY3RlZFBheW1lbnRXaXRoVGF4ZXMiXVt2YWx1ZT0iJytnKyciXVtkYXRhLXJhdGV0eXBlPSInK2grJyJdJykucHJvcCgiY2hlY2tlZCIsITApOyQodGhpcykuY2xvc2VzdCgiLmZpbmFuY2luZy1vcHRpb24iKS5hZGRDbGFzcygic2VsZWN0ZWQiKX0pOyQoImJvZHkiKS5vbigiY2hhbmdlIixlKycgaW5wdXRbbmFtZT0ic2VsZWN0ZWRQYXltZW50V2l0aFRheGVzIl0nLApmdW5jdGlvbigpe3ZhciBnPSQodGhpcykudmFsKCksaD0kKHRoaXMpLmF0dHIoImRhdGEtcmF0ZXR5cGUiKTskKGUrIiAuZmluYW5jaW5nLW9wdGlvbiIpLnJlbW92ZUNsYXNzKCJzZWxlY3RlZCIpOyQoJ2lucHV0W25hbWU9InNlbGVjdGVkUGF5bWVudCJdW3ZhbHVlPSInK2crJyJdW2RhdGEtcmF0ZXR5cGU9IicraCsnIl0nKS5jbG9zZXN0KCIuZmluYW5jaW5nLW9wdGlvbiIpLmFkZENsYXNzKCJzZWxlY3RlZCIpOyQoJ2lucHV0W25hbWU9InNlbGVjdGVkUGF5bWVudCJdW3ZhbHVlPSInK2crJyJdW2RhdGEtcmF0ZXR5cGU9IicraCsnIl0nKS5wcm9wKCJjaGVja2VkIiwhMCk7JCh0aGlzKS5jbG9zZXN0KCIuZmluYW5jaW5nLW9wdGlvbiIpLmFkZENsYXNzKCJzZWxlY3RlZCIpfSl9c2V0VHJpZ2dlcnMoKXt2YXIgYT10aGlzLnBhcmVudCxlPXRoaXM7JChhKyIgLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFR5cGUgbGkiKS5vZmYoImNsaWNrIik7JChhKyIgLnBheW1lbnRDYWxjdWxhdG9ySW5jbHVkZVRheENoZWNrIikub2ZmKCJjaGFuZ2UiKTsKJChhKyIgLnBheW1lbnRDYWxjdWxhdG9ySW50ZXJ2YWwiKS5vZmYoImNoYW5nZSIpOyQoYSsiIC5wYXltZW50Q2FsY3VsYXRvckttQWxsb3dhbmNlIikub2ZmKCJjaGFuZ2UiKTskKGErIiAucGF5bWVudENhbGN1bGF0b3JEb3duUGF5bWVudCIpLm9mZigiYmx1ciIpOyQoYSsiIC5wYXltZW50Q2FsY3VsYXRvclRyYWRlSW5GaW5hbCIpLm9mZigiYmx1ciIpOyQoYSsiIC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRUeXBlIGxpIikub24oImNsaWNrIixmdW5jdGlvbigpeyQoYSsiIC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRUeXBlIGxpIikucmVtb3ZlQ2xhc3MoImFjdGl2ZVBheW1lbnRUeXBlIik7JCh0aGlzKS5hZGRDbGFzcygiYWN0aXZlUGF5bWVudFR5cGUiKTtlLnBheW1lbnRUeXBlPSQodGhpcykuYXR0cigiZGF0YS10eXBlIik7ImxlYXNpbmciPT0kKHRoaXMpLmF0dHIoImRhdGEtdHlwZSIpPyQoYSsiIC5wYXltZW50Q2FsY3VsYXRvckttQWxsb3dhbmNlQ29udGFpbmVyIikuc2hvdygpOgokKGErIiAucGF5bWVudENhbGN1bGF0b3JLbUFsbG93YW5jZUNvbnRhaW5lciIpLmhpZGUoKTtlLmxvYWRQYXltZW50cygpfSk7JChhKyIgLnBheW1lbnRDYWxjdWxhdG9ySW5jbHVkZVRheENoZWNrIikub24oImNoYW5nZSIsZnVuY3Rpb24oKXskKHRoaXMpLmlzKCI6Y2hlY2tlZCIpPygkKGErIiAucGF5bWVudENhbGN1bGF0b3JQYXltZW50Q29udGFpbmVyIikuaGlkZSgpLCQoYSsiIC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRDb250YWluZXJXaXRoVGF4ZXMiKS5zaG93KCkpOigkKGErIiAucGF5bWVudENhbGN1bGF0b3JQYXltZW50Q29udGFpbmVyV2l0aFRheGVzIikuaGlkZSgpLCQoYSsiIC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRDb250YWluZXIiKS5zaG93KCkpfSk7JChhKyIgLnBheW1lbnRDYWxjdWxhdG9ySW5jbHVkZVRheENoZWNrIikudHJpZ2dlcigiY2hhbmdlIik7JChhKyIgLnBheW1lbnRDYWxjdWxhdG9ySW50ZXJ2YWwiKS5vbigiY2hhbmdlIixmdW5jdGlvbigpe2UucGF5bWVudEZyZXF1ZW5jeT0KJCh0aGlzKS52YWwoKTtlLmxvYWRQYXltZW50cygpfSk7JChhKyIgLnBheW1lbnRDYWxjdWxhdG9yS21BbGxvd2FuY2UiKS5vbigiY2hhbmdlIixmdW5jdGlvbigpe2Uua21BbGxvd2FuY2U9JCh0aGlzKS52YWwoKTtlLmxvYWRQYXltZW50cygpfSk7JChhKyIgLnBheW1lbnRDYWxjdWxhdG9yRG93blBheW1lbnQiKS5vbigiYmx1ciIsZnVuY3Rpb24oKXtsZXQgYj1wYXJzZUludCgkKHRoaXMpLnZhbCgpKT9wYXJzZUludCgkKHRoaXMpLnZhbCgpKTowO2UuZG93bnBheW1lbnQ9YjtlLmxvYWRQYXltZW50cygpfSk7JChhKyIgLnBheW1lbnRDYWxjdWxhdG9yVHJhZGVJbkZpbmFsIikub24oImJsdXIiLGZ1bmN0aW9uKCl7bGV0IGI9cGFyc2VJbnQoJCh0aGlzKS5hdHRyKCJtYXgiKSl8fDAsZj1wYXJzZUludCgkKHRoaXMpLnZhbCgpKXx8MDtmPWY+Yj9iOmY7JCh0aGlzKS52YWwoZik7ZS50cmFkZUluVmFsdWU9ZjtfbG9jYWxTdG9yYWdlU2V0KCJ0cmFkZWluX2N1cnJlbnRfdmFsdWUiLApKU09OLnN0cmluZ2lmeSh7dmFsdWU6Zn0pLDEpO2UubG9hZFBheW1lbnRzKCl9KX1sb2FkUGF5bWVudHMoYSl7YT1hP2E6ITE7bGV0IGU9KCQoImJvZHkiKS5oYXNDbGFzcygiRU5HTElTSCIpPyIvZW4iOiIvZnIiKSsiL2FqYXgvZ2V0UGF5bWVudERhdGFGb3JTdHlsZUlEP3dzd2lkdGg9MCI7dmFyIGI9dGhpcztiLnRyYWRlSW5WYWx1ZT1wYXJzZUludCgkKGIucGFyZW50KyIgLnBheW1lbnRDYWxjdWxhdG9yVHJhZGVJbkZpbmFsIikudmFsKCk\/JChiLnBhcmVudCsiIC5wYXltZW50Q2FsY3VsYXRvclRyYWRlSW5GaW5hbCIpLnZhbCgpOjApOyQuYWpheCh7dXJsOmUsdHlwZToiUE9TVCIsZGF0YVR5cGU6IkpTT04iLGRhdGE6e3N0eWxlaWQ6Yi5zdHlsZWlkLHBheW1lbnRUeXBlOmIucGF5bWVudFR5cGUsZG93bnBheW1lbnQ6Yi5kb3ducGF5bWVudCtiLnRyYWRlSW5WYWx1ZSxvcHRpb25zQW1vdW50OmIub3B0aW9uc0Ftb3VudCxwYXltZW50RnJlcXVlbmN5OmIucGF5bWVudEZyZXF1ZW5jeSwKa21BbGxvd2FuY2U6Yi5rbUFsbG93YW5jZSxvcHRpb25zOmIub3B0aW9uc0Ftb3VudCxpc0ludmVudG9yeTpiLmlzSW52ZW50b3J5LHNuOmIuc24sdmluOmIudmluLGZvcmNlVGF4ZXM6ITB9LHN1Y2Nlc3M6ZnVuY3Rpb24oZil7Zi5jdXJyZW50UGF5bWVudCYmZi5jdXJyZW50UGF5bWVudC5sZW5ndGg\/KGEmJmIuc2V0SW5pdGlhbFZpZXcoZiksInVuZGVmaW5lZCIhPT10eXBlb2YgY2FsY0N1clBheW1lbnQmJihjYWxjQ3VyUGF5bWVudD1mKSxiLnNob3dQYXltZW50cyhmLmN1cnJlbnRQYXltZW50LGYucGF5bWVudEZlZXMsZi5tYWtlaWQsZiksJCgiYm9keSAiK2IucGFyZW50KS50cmlnZ2VyKCJwYXltZW50c1JlYWR5IikpOiQoImJvZHkgIitiLnBhcmVudCkudHJpZ2dlcigibm9QYXltZW50Iil9fSl9c2hvd1BheW1lbnRzKGEsZSxiLGYpe3ZhciBtPXRoaXM7JChtLnBhcmVudCsiIC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRDb250YWluZXIiKS5odG1sKCIiKTskKG0ucGFyZW50KwoiIC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRDb250YWluZXJXaXRoVGF4ZXMiKS5odG1sKCIiKTtsZXQgZz0iMSI9PSQoIiNwYXltZW50Q2FsY3VsYXRvclJvdW5kUGF5bWVudCIpLnZhbCgpPzA6MjsiMSI9PSQoIiNwYXltZW50Q2FsY3VsYXRvclN0cmlrZVBheW1lbnQiKS52YWwoKSYmJCgiI3BheW1lbnRDYWxjdWxhdG9yU3RyaWtlUGF5bWVudE9wdGlvbiIpLnZhbCgpO2xldCBoPVtdLHA9JCgiI29lbUNlcnRpZmljYXRpb24iKS52YWwoKXx8MDs1PGEubGVuZ3RoP2EuZm9yRWFjaChmdW5jdGlvbihrKXsoMD09ay50ZXJtJTEyfHw2ND09ay50ZXJtfHw0MD09YiYmNTE9PWsudGVybXx8MjA9PWImJlsyNywzMCwzOSw0Ml0uaW5jbHVkZXMoay50ZXJtKXx8WzE2LDIxXS5pbmNsdWRlcyhiKXx8NDI9PWsudGVybSYmMTAxND09cHx8WzMwLDQyXS5pbmNsdWRlcyhrLnRlcm0pJiZbNDcxNTYyLDQ3MTU2Myw0NzE1NjRdLmluY2x1ZGVzKHBhcnNlSW50KHNldHRpbmdzLnN0eWxlaWQpKXx8CjI3PT1rLnRlcm0mJjI3PT1ifHw1Mj09ay50ZXJtJiYzOT09YikmJmgucHVzaChrKX0pOmg9YTt2YXIgbj17fSxxPSExO2guZm9yRWFjaChmdW5jdGlvbihrLGwpe09iamVjdC5oYXNPd24obixrLnRlcm0pP3E9ITA6bltrLnRlcm1dPXt9O25bay50ZXJtXVtrLnJhdGVfdHlwZV09bH0pO3ZhciBIPVtdO2FbMF0mJiJsZWFzZSI9PWFbMF0udHlwZSYmInVuZGVmaW5lZCIhPT10eXBlb2YgYVswXS5rbV9hbGxvd2FuY2UmJihhPTA8YVswXS5rbV9hbGxvd2FuY2U\/YVswXS5rbV9hbGxvd2FuY2U6MkU0LCQobS5wYXJlbnQrIiAucGF5bWVudENhbGN1bGF0b3JLbUFsbG93YW5jZSIpLnZhbChhKSx0aGlzLmttQWxsb3dhbmNlPSQobS5wYXJlbnQrIiAucGF5bWVudENhbGN1bGF0b3JLbUFsbG93YW5jZSIpLnZhbCgpKTtsZXQgST1mLnRvdGFsSW5jZW50aXZlLEo9cT8kKCIjTE9XRVNUUEFZTUVOVF9MQUJFTCIpLnZhbCgpOiIiLEs9cT8kKCIjTE9XRVNUUkFURV9MQUJFTCIpLnZhbCgpOiIiLApWPTA7JC5lYWNoKGgsZnVuY3Rpb24oayxsKXtpZighSC5pbmNsdWRlcyhsLnRlcm0pKXtILnB1c2gobC50ZXJtKTt2YXIgZD0ic3RhbmRhcmQiPT1sLnJhdGVfdHlwZXx8Mj5PYmplY3Qua2V5cyhuW2wudGVybV0pLmxlbmd0aD9sOmhbbltsLnRlcm1dLnN0YW5kYXJkXSxjPTI9PU9iamVjdC5rZXlzKG5bbC50ZXJtXSkubGVuZ3RoP2hbbltsLnRlcm1dLnN1YnZlbnRlZF06ITEseD0yPT1PYmplY3Qua2V5cyhuW2wudGVybV0pLmxlbmd0aD9uW2wudGVybV0uc3VidmVudGVkOiExLHY9bC50ZXJtLHk9bC5kb3ducGF5bWVudC50b0ZpeGVkKDApLEI9ZC5wYXltZW50LnRvRml4ZWQoZyksVz1kLnBheW1lbnQudG9GaXhlZChnKTtCPUIucmVwbGFjZSgvXC4oWzAtOV0qKS8sZnVuY3Rpb24oQyx3KXtyZXR1cm4nPHN1cCBjbGFzcz0icGQiPicrdysiPC9zdXA+In0pO2w9ZC5wYXltZW50V2l0aFRheGVzLnRvRml4ZWQoZyk7dmFyIFg9ZC5wYXltZW50V2l0aFRheGVzLnRvRml4ZWQoZyk7bD0KbC5yZXBsYWNlKC9cLihbMC05XSopLyxmdW5jdGlvbihDLHcpe3JldHVybic8c3VwIGNsYXNzPSJwZCI+Jyt3KyI8L3N1cD4ifSk7dmFyIEw9ZC5yYXRlLFk9InBheW1lbnQiK2s7az0icGF5bWVudCIraysid2l0aFRheGVzIjt2PSQoImJvZHkiKS5oYXNDbGFzcygiRU5HTElTSCIpPyI8c3Bhbj4iK3YrIjwvc3Bhbj4gbW9udGgiOiI8c3Bhbj4iK3YrIjwvc3Bhbj4gbW9pcyI7eT1gPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+JHt5fTwvc3Bhbj5gKygkKCJib2R5IikuaGFzQ2xhc3MoIkVOR0xJU0giKT8iIGRvd24gcGF5bWVudCI6IiBjb21wdGFudCIpO3ZhciBNPSIiIT0kKCIjZGlzY2xhaW1lclByaWNlVGV4dCIpLnZhbCgpPyI8ZGl2PiIrJCgiI2Rpc2NsYWltZXJQcmljZVRleHQiKS52YWwoKSsiPC9kaXY+IjoiK3R4Iix6PWQuY2FsY3VsYXRlZEVmZmVjdGl2ZVJhdGU\/ZC5jYWxjdWxhdGVkRWZmZWN0aXZlUmF0ZTowLEQ9IiI7MDxwYXJzZUZsb2F0KHopLWQucmF0ZSYmKEQrPQptLmZvcm1hdEVmZmVjdGl2ZVJhdGVUZXh0Q2FsYyh6LCIiLCdjbGFzcz0iLWZzMTAiJykpO3ZhciBOPWQudG90YWxPYmxpZ2F0aW9uQW1vdW50P2QudG90YWxPYmxpZ2F0aW9uQW1vdW50OjAsTz0nZGF0YS10b29sdGlwPSInK2QudG9vbHRpcCsnIicsUD0nZGF0YS10b29sdGlwPSInK2QudG9vbHRpcFdpdGhUYXhlcysnIicscixaPW51bGwhPShyPWQubTJkX2ZpbmFuY2UpP3I6STtyPSJzaW5nbGUtY29sdW1uIjt2YXIgRT0ic21hbGwtYm94Iix0PSIiLHU9IiI7aWYoYyl7cj0ibGVmdC1zZWN0aW9uIjtFPSIiO3Q9Yy5wYXltZW50LnRvRml4ZWQoZyk7bGV0IEM9Yy5wYXltZW50LnRvRml4ZWQoZyk7dD10LnJlcGxhY2UoL1wuKFswLTldKikvLGZ1bmN0aW9uKGFhLEYpe3JldHVybic8c3VwIGNsYXNzPSJwZCI+JytGKyI8L3N1cD4ifSk7dT1jLnBheW1lbnRXaXRoVGF4ZXMudG9GaXhlZChnKTtsZXQgdz1jLnBheW1lbnRXaXRoVGF4ZXMudG9GaXhlZChnKTt1PXUucmVwbGFjZSgvXC4oWzAtOV0qKS8sCmZ1bmN0aW9uKGFhLEYpe3JldHVybic8c3VwIGNsYXNzPSJwZCI+JytGKyI8L3N1cD4ifSk7dmFyIFE9Yy5yYXRlLnRvRml4ZWQoMiksYmE9InBheW1lbnQiK3g7eD0icGF5bWVudCIreCsid2l0aFRheGVzIjtsZXQgQT1jLmNhbGN1bGF0ZWRFZmZlY3RpdmVSYXRlP2MuY2FsY3VsYXRlZEVmZmVjdGl2ZVJhdGU6MCxHPSIiOzA8cGFyc2VGbG9hdChBKS1jLnJhdGUmJihHKz1tLmZvcm1hdEVmZmVjdGl2ZVJhdGVUZXh0Q2FsYyhBLCIiLCdjbGFzcz0iLWZzMTAiJykpO2xldCBSPWMudG90YWxPYmxpZ2F0aW9uQW1vdW50P2MudG90YWxPYmxpZ2F0aW9uQW1vdW50OjAsUz0nZGF0YS10b29sdGlwPSInK2MudG9vbHRpcCsnIicsVD0nZGF0YS10b29sdGlwPSInK2MudG9vbHRpcFdpdGhUYXhlcysnIicsVT1jLm0yZF9maW5hbmNlO3Q9J1x0PGRpdiBpZD0iJytiYSsnIiBjbGFzcz0icmlnaHQtc2VjdGlvbiBwYXltZW50Q2FsY3VsYXRvclBheW1lbnRXcmFwcGVyQ29udGFpbmVyIiAnK1MrJz5cdFx0PGRpdiBjbGFzcz0ibG93ZXN0LXJhdGUiPicrClErJyUgPGkgY2xhc3M9ImZhcyBmYS1pbmZvLWNpcmNsZSBpbmZvLWljb24gcGF5bWVudFRvb2x0aXAgcmlnaHRUb29sdGlwIiAnK1MrIj48L2k+IitHKyc8L2Rpdj5cdFx0PGRpdiBjbGFzcz0iYWN0dWFsLXBheW1lbnQiPjxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPicrdCsnPC9zcGFuPjwvZGl2Plx0XHQ8ZGl2IGNsYXNzPSJkZXRhaWxzVGF4Ij4nK00rJzwvZGl2Plx0XHQ8ZGl2IGNsYXNzPSJyYWRpby1jb250YWluZXIgcGF5bWVudENhbGN1bGF0b3JQYXltZW50U2VsZWN0Ij5cdFx0XHQ8aW5wdXRcdFx0XHRcdFx0dHlwZT0icmFkaW8iXHRcdFx0XHRcdG5hbWU9InNlbGVjdGVkUGF5bWVudCJcdFx0XHRcdFx0dmFsdWU9IicrYy50ZXJtKyciXHRcdFx0XHRcdGRhdGEtYmFzZXBheW1lbnQ9IicrYy5wYXltZW50KyciXHRcdFx0XHRcdGRhdGEtcmVhbHBheW1lbnQ9IicrYy5wYXltZW50KyciXHRcdFx0XHRcdGRhdGEtcmF0ZXR5cGU9IicrYy5yYXRlX3R5cGUrJyJcdFx0XHRcdFx0ZGF0YS1kaXNwbGF5ZWRwYXltZW50PSInKwpDKyciXHRcdFx0XHRcdGRhdGEtcmVzaWR1YWw9IicrYy5yZXNpZHVhbCsnIlx0XHRcdFx0XHRkYXRhLXRvdGFsaW50ZXJlc3Q9IicrYy50b3RhbEludGVyZXN0KyciXHRcdFx0XHRcdGRhdGEtbHV4ZVRheEFtb3VudD0iJytjLmx1eGVUYXhBbW91bnQrJyJcdFx0XHRcdFx0ZGF0YS1lZmZlY3RpdmVSYXRlPSInK0ErJyJcdFx0XHRcdFx0ZGF0YS10b3RhbENvc3Q9IicrUisnIlx0XHRcdFx0XHRkYXRhLXJhdGU9IicrYy5yYXRlKyciICAgICAgICAgICAgICAgICBkYXRhLXJlc2lkdWFsPSInK2MucmVzaWR1YWxWYWx1ZSsnIiAgICAgICAgICAgICAgICAgZGF0YS10b3RhbGluY2VudGl2ZT0iJytVKyciICAgICAgICAgICAgICAgICBkYXRhLWluaXRpYWxQcmljZT0iJytjLmluaXRpYWxQcmljZSsnIiAgICAgICAgICAgICAgICAgZGF0YS1maW5hbFByaWNlPSInK2MuZmluYWxQcmljZSsnIiAgICAgICAgICAgICAgICAgZGF0YS1mZWVzTGlzdD0iJytidG9hKEpTT04uc3RyaW5naWZ5KGMuZmVlc0xpc3QpKSsKJyIgICAgICAgICAgICAgICAgIGRhdGEtaW5jZW50aXZlc0xpc3Q9IicrYnRvYShKU09OLnN0cmluZ2lmeShjLmluY2VudGl2ZXNMaXN0KSkrJyIgICAgICAgICAgICAgICAgIGRhdGEtZ3N0PSIwIiAgICAgICAgICAgICAgICAgZGF0YS1oc3Q9IjAiICAgICAgICAgICAgICAgICBkYXRhLXBzdD0iMCJcdFx0XHRcdD5cdFx0XHQ8bGFiZWwgY2xhc3M9ImZpbmFuY2VDYWxjIj4nK0srIjwvbGFiZWw+XHRcdDwvZGl2Plx0PC9kaXY+Ijt1PSdcdDxkaXYgaWQ9IicreCsnIiBjbGFzcz0icmlnaHQtc2VjdGlvbiBwYXltZW50Q2FsY3VsYXRvclBheW1lbnRXcmFwcGVyQ29udGFpbmVyIiAnK1QrJz5cdFx0PGRpdiBjbGFzcz0ibG93ZXN0LXJhdGUiPicrUSsnJSA8aSBjbGFzcz0iZmFzIGZhLWluZm8tY2lyY2xlIGluZm8taWNvbiBwYXltZW50VG9vbHRpcCByaWdodFRvb2x0aXAiICcrVCsiPjwvaT4iK0crJzwvZGl2Plx0XHQ8ZGl2IGNsYXNzPSJhY3R1YWwtcGF5bWVudCI+PHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+JysKdSsnPC9zcGFuPjwvZGl2Plx0XHQ8ZGl2IGNsYXNzPSJyYWRpby1jb250YWluZXIgcGF5bWVudENhbGN1bGF0b3JQYXltZW50U2VsZWN0Ij5cdFx0XHQ8aW5wdXRcdFx0XHRcdFx0dHlwZT0icmFkaW8iXHRcdFx0XHRcdG5hbWU9InNlbGVjdGVkUGF5bWVudFdpdGhUYXhlcyJcdFx0XHRcdFx0dmFsdWU9IicrYy50ZXJtKyciXHRcdFx0XHRcdGRhdGEtYmFzZXBheW1lbnQ9IicrYy5wYXltZW50KyciXHRcdFx0XHRcdGRhdGEtcmVhbHBheW1lbnQ9IicrYy5wYXltZW50V2l0aFRheGVzKyciXHRcdFx0XHRcdGRhdGEtcmF0ZXR5cGU9IicrYy5yYXRlX3R5cGUrJyJcdFx0XHRcdFx0ZGF0YS1kaXNwbGF5ZWRwYXltZW50PSInK3crJyJcdFx0XHRcdFx0ZGF0YS1yZXNpZHVhbD0iJytjLnJlc2lkdWFsV2l0aFRheGVzKyciXHRcdFx0XHRcdGRhdGEtdG90YWxpbnRlcmVzdD0iJytjLnRvdGFsSW50ZXJlc3RXaXRoVGF4ZXMrJyJcdFx0XHRcdFx0ZGF0YS1sdXhlVGF4QW1vdW50PSInK2MubHV4ZVRheEFtb3VudCsKJyJcdFx0XHRcdFx0ZGF0YS1lZmZlY3RpdmVSYXRlPSInK0ErJyJcdFx0XHRcdFx0ZGF0YS10b3RhbENvc3Q9IicrUisnIlx0XHRcdFx0XHRkYXRhLXJhdGU9IicrYy5yYXRlKyciICAgICAgICAgICAgICAgICBkYXRhLXJlc2lkdWFsPSInK2MucmVzaWR1YWxWYWx1ZVdpdGhUYXhlcysnIiAgICAgICAgICAgICAgICAgZGF0YS10b3RhbGluY2VudGl2ZT0iJytVKyciICAgICAgICAgICAgICAgICBkYXRhLWluaXRpYWxQcmljZT0iJytjLmluaXRpYWxQcmljZSsnIiAgICAgICAgICAgICAgICAgZGF0YS1maW5hbFByaWNlPSInK2MuZmluYWxQcmljZSsnIiAgICAgICAgICAgICAgICAgZGF0YS1mZWVzTGlzdD0iJytidG9hKEpTT04uc3RyaW5naWZ5KGMuZmVlc0xpc3QpKSsnIiAgICAgICAgICAgICAgICAgZGF0YS1pbmNlbnRpdmVzTGlzdD0iJytidG9hKEpTT04uc3RyaW5naWZ5KGMuaW5jZW50aXZlc0xpc3QpKSsnIiAgICAgICAgICAgICAgICAgZGF0YS1nc3Q9IicrYy5nc3QrJyIgICAgICAgICAgICAgICAgIGRhdGEtaHN0PSInKwpjLmhzdCsnIiAgICAgICAgICAgICAgICAgZGF0YS1wc3Q9IicrYy5wc3QrJyJcdFx0XHRcdD5cdFx0XHQ8bGFiZWwgY2xhc3M9ImZpbmFuY2VDYWxjIj4nK0srIjwvbGFiZWw+XHRcdDwvZGl2Plx0PC9kaXY+In1jPSc8ZGl2IGNsYXNzPSJmaW5hbmNpbmctb3B0aW9uIHBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFdyYXBwZXIgJytFKyciPlx0PGRpdiBjbGFzcz0idGVybSI+Jyt2Kyc8L2Rpdj5cdDxkaXYgY2xhc3M9ImRvd24tcGF5bWVudCI+Jyt5Kyc8L2Rpdj5cdDxkaXYgY2xhc3M9InNlcGFyYXRvclBheSI+PC9kaXY+XHQ8ZGl2IGNsYXNzPSJjb250ZW50LWNvbnRhaW5lciI+XHRcdDxkaXYgaWQ9IicrWSsnIiBjbGFzcz0iJytyKycgcGF5bWVudENhbGN1bGF0b3JQYXltZW50V3JhcHBlckNvbnRhaW5lciIgJytPKyc+XHRcdFx0PGRpdiBjbGFzcz0ibG93ZXN0LXBheW1lbnQiPjxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPicrQisnPC9zcGFuPiA8aSBjbGFzcz0iZmFzIGZhLWluZm8tY2lyY2xlIGluZm8taWNvbiBwYXltZW50VG9vbHRpcCBsZWZ0VG9vbHRpcCIgJysKTysnPjwvaT48L2Rpdj5cdFx0XHQ8ZGl2IGNsYXNzPSJkZXRhaWxzVGF4Ij4nK00rJzwvZGl2Plx0XHRcdDxkaXYgY2xhc3M9ImFjdHVhbC1yYXRlIj4nK0wrIiUgIitEKyc8L2Rpdj5cdFx0XHQ8ZGl2IGNsYXNzPSJyYWRpby1jb250YWluZXIgcGF5bWVudENhbGN1bGF0b3JQYXltZW50U2VsZWN0Ij5cdFx0XHRcdDxpbnB1dCBcdFx0XHRcdFx0dHlwZT0icmFkaW8iXHRcdFx0XHRcdFx0XHRcdFx0XHRuYW1lPSJzZWxlY3RlZFBheW1lbnQiXHRcdFx0XHRcdHZhbHVlPSInK2QudGVybSsnIlx0XHRcdFx0XHRkYXRhLWJhc2VwYXltZW50PSInK2QucGF5bWVudCsnIlx0XHRcdFx0XHRkYXRhLXJlYWxwYXltZW50PSInK2QucGF5bWVudCsnIlx0XHRcdFx0XHRkYXRhLXJhdGV0eXBlPSInK2QucmF0ZV90eXBlKyciXHRcdFx0XHRcdGRhdGEtZGlzcGxheWVkcGF5bWVudD0iJytXKyciXHRcdFx0XHRcdGRhdGEtcmVzaWR1YWw9IicrZC5yZXNpZHVhbCsnIlx0XHRcdFx0XHRkYXRhLXRvdGFsaW50ZXJlc3Q9IicrCmQudG90YWxJbnRlcmVzdCsnIlx0XHRcdFx0XHRkYXRhLWx1eGVUYXhBbW91bnQ9IicrZC5sdXhlVGF4QW1vdW50KyciXHRcdFx0XHRcdGRhdGEtZWZmZWN0aXZlUmF0ZT0iJyt6KyciXHRcdFx0XHRcdGRhdGEtdG90YWxDb3N0PSInK04rJyJcdFx0XHRcdFx0ZGF0YS1yYXRlPSInK2QucmF0ZSsnIiAgICAgICAgICAgICAgICAgZGF0YS1yZXNpZHVhbD0iJytkLnJlc2lkdWFsVmFsdWUrJyIgICAgICAgICAgICAgICAgIGRhdGEtdG90YWxpbmNlbnRpdmU9IicrWisnIiAgICAgICAgICAgICAgICAgZGF0YS1pbml0aWFsUHJpY2U9IicrZC5pbml0aWFsUHJpY2UrJyIgICAgICAgICAgICAgICAgIGRhdGEtZmluYWxQcmljZT0iJytkLmZpbmFsUHJpY2UrJyIgICAgICAgICAgICAgICAgIGRhdGEtZmVlc0xpc3Q9IicrYnRvYShKU09OLnN0cmluZ2lmeShkLmZlZXNMaXN0KSkrJyIgICAgICAgICAgICAgICAgIGRhdGEtaW5jZW50aXZlc0xpc3Q9IicrYnRvYShKU09OLnN0cmluZ2lmeShkLmluY2VudGl2ZXNMaXN0KSkrCiciICAgICAgICAgICAgICAgICBkYXRhLWdzdD0iMCIgICAgICAgICAgICAgICAgIGRhdGEtaHN0PSIwIiAgICAgICAgICAgICAgICAgZGF0YS1wc3Q9IjAiXHRcdFx0XHQ+XHRcdFx0XHQ8bGFiZWwgY2xhc3M9ImZpbmFuY2VDYWxjIj4nK0orIjwvbGFiZWw+XHRcdFx0PC9kaXY+XHRcdDwvZGl2PiIrdCsiXHQ8L2Rpdj48L2Rpdj4iO2Q9JzxkaXYgY2xhc3M9ImZpbmFuY2luZy1vcHRpb24gcGF5bWVudENhbGN1bGF0b3JQYXltZW50V3JhcHBlciAnK0UrJyI+XHQ8ZGl2IGNsYXNzPSJ0ZXJtIj4nK3YrJzwvZGl2Plx0PGRpdiBjbGFzcz0iZG93bi1wYXltZW50Ij4nK3krJzwvZGl2Plx0PGRpdiBjbGFzcz0ic2VwYXJhdG9yUGF5Ij48L2Rpdj5cdDxkaXYgY2xhc3M9ImNvbnRlbnQtY29udGFpbmVyIj5cdFx0PGRpdiBpZD0iJytrKyciIGNsYXNzPSInK3IrJyBwYXltZW50Q2FsY3VsYXRvclBheW1lbnRXcmFwcGVyQ29udGFpbmVyIiAnK1ArJz5cdFx0XHQ8ZGl2IGNsYXNzPSJsb3dlc3QtcGF5bWVudCI+PHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+JysKbCsnPC9zcGFuPiA8aSBjbGFzcz0iZmFzIGZhLWluZm8tY2lyY2xlIGluZm8taWNvbiBwYXltZW50VG9vbHRpcCBsZWZ0VG9vbHRpcCIgJytQKyc+PC9pPjwvZGl2Plx0XHRcdDxkaXYgY2xhc3M9ImFjdHVhbC1yYXRlIj4nK0wrIiUgIitEKyc8L2Rpdj5cdFx0XHQ8ZGl2IGNsYXNzPSJyYWRpby1jb250YWluZXIgcGF5bWVudENhbGN1bGF0b3JQYXltZW50U2VsZWN0Ij5cdFx0XHRcdDxpbnB1dCBcdFx0XHRcdFx0dHlwZT0icmFkaW8iXHRcdFx0XHRcdFx0XHRcdFx0XHRuYW1lPSJzZWxlY3RlZFBheW1lbnRXaXRoVGF4ZXMiXHRcdFx0XHRcdHZhbHVlPSInK2QudGVybSsnIlx0XHRcdFx0XHRkYXRhLWJhc2VwYXltZW50PSInK2QucGF5bWVudCsnIlx0XHRcdFx0XHRkYXRhLXJlYWxwYXltZW50PSInK2QucGF5bWVudFdpdGhUYXhlcysnIlx0XHRcdFx0XHRkYXRhLXJhdGV0eXBlPSInK2QucmF0ZV90eXBlKyciXHRcdFx0XHRcdGRhdGEtZGlzcGxheWVkcGF5bWVudD0iJytYKyciXHRcdFx0XHRcdGRhdGEtcmVzaWR1YWw9IicrCmQucmVzaWR1YWwrJyJcdFx0XHRcdFx0ZGF0YS10b3RhbGludGVyZXN0PSInK2QudG90YWxJbnRlcmVzdCsnIlx0XHRcdFx0XHRkYXRhLWx1eGVUYXhBbW91bnQ9IicrZC5sdXhlVGF4QW1vdW50KyciXHRcdFx0XHRcdGRhdGEtZWZmZWN0aXZlUmF0ZT0iJyt6KyciXHRcdFx0XHRcdGRhdGEtdG90YWxDb3N0PSInK04rJyJcdFx0XHRcdFx0ZGF0YS1yYXRlPSInK2QucmF0ZSsnIiAgICAgICAgICAgICAgICAgZGF0YS1yZXNpZHVhbD0iJytkLnJlc2lkdWFsVmFsdWVXaXRoVGF4ZXMrJyIgICAgICAgICAgICAgICAgIGRhdGEtdG90YWxpbmNlbnRpdmU9IicrSSsnIiAgICAgICAgICAgICAgICAgZGF0YS1pbml0aWFsUHJpY2U9IicrZC5pbml0aWFsUHJpY2UrJyIgICAgICAgICAgICAgICAgIGRhdGEtZmluYWxQcmljZT0iJytkLmZpbmFsUHJpY2UrJyIgICAgICAgICAgICAgICAgIGRhdGEtZmVlc0xpc3Q9IicrYnRvYShKU09OLnN0cmluZ2lmeShkLmZlZXNMaXN0KSkrJyIgICAgICAgICAgICAgICAgIGRhdGEtaW5jZW50aXZlc0xpc3Q9IicrCmJ0b2EoSlNPTi5zdHJpbmdpZnkoZC5pbmNlbnRpdmVzTGlzdCkpKyciICAgICAgICAgICAgICAgICBkYXRhLWdzdD0iJytkLmdzdCsnIiAgICAgICAgICAgICAgICAgZGF0YS1oc3Q9IicrZC5oc3QrJyIgICAgICAgICAgICAgICAgIGRhdGEtcHN0PSInK2QucHN0KyciXHRcdFx0XHQ+XHRcdFx0XHQ8bGFiZWwgY2xhc3M9ImZpbmFuY2VDYWxjIj4nK0orIjwvbGFiZWw+XHRcdFx0PC9kaXY+XHRcdDwvZGl2PiIrdSsiXHQ8L2Rpdj48L2Rpdj4iOyQobS5wYXJlbnQrIiAucGF5bWVudENhbGN1bGF0b3JQYXltZW50Q29udGFpbmVyIikuYXBwZW5kKGMpOyQobS5wYXJlbnQrIiAucGF5bWVudENhbGN1bGF0b3JQYXltZW50Q29udGFpbmVyV2l0aFRheGVzIikuYXBwZW5kKGQpO1YrK319KTttLnNldFBheW1lbnRDYWxjdWxhdG9yUG9wdXBUb29sdGlwKCl9c2V0UGF5bWVudENhbGN1bGF0b3JQb3B1cFRvb2x0aXAoKXt2YXIgYT10aGlzLnBhcmVudCxlPXRoaXMucGFyZW50TmFtZTtpZigiMSI9PQokKCIjaXNtb2JpbGUiKS52YWwoKSkkKGErIiAucGF5bWVudENhbGN1bGF0b3JQYXltZW50V3JhcHBlciAucGF5bWVudENhbGN1bGF0b3JQYXltZW50V3JhcHBlckNvbnRhaW5lciAucGF5bWVudFRvb2x0aXAiKS5lYWNoKGZ1bmN0aW9uKGYpe3RyeXt2YXIgbT0kKHRoaXMpLmF0dHIoImRhdGEtdG9vbHRpcCIpLGc9JCh0aGlzKS5oYXNDbGFzcygibGVmdFRvb2x0aXAiKT8id2VzdCI6ImVhc3QiOyQodGhpcykuZGFya1Rvb2x0aXAoe2NvbnRlbnQ6bSxncmF2aXR5OmcsdGhlbWU6ImxpZ2h0Iix0cmlnZ2VyOiJjbGljayIsYW5pbWF0aW9uOiJmbGlwSW4ifSl9Y2F0Y2goaCl7fX0pO2Vsc2V7Zm9yKHZhciBiPTA7NT5iO2IrKykkKCIjZGFya3Rvb2x0aXAtIitlKyJwYXltZW50IitiKS5sZW5ndGgmJigkKCIjZGFya3Rvb2x0aXAtIitlKyJwYXltZW50IitiKS5yZW1vdmUoKSwkKCIjZGFya3Rvb2x0aXAtIitlKyJwYXltZW50IitiKyJ3aXRoVGF4ZXMiKS5yZW1vdmUoKSk7JChhKyIgLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFdyYXBwZXIgLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFdyYXBwZXJDb250YWluZXIiKS5lYWNoKGZ1bmN0aW9uKCl7dHJ5e3ZhciBmPQokKHRoaXMpLmF0dHIoImRhdGEtdG9vbHRpcCIpOyQodGhpcykuZGFya1Rvb2x0aXAoe2NvbnRlbnQ6ZixncmF2aXR5OiJub3J0aCIsdGhlbWU6ImxpZ2h0Iix0cmlnZ2VyOiJob3ZlciIsYW5pbWF0aW9uOiJub25lIn0pfWNhdGNoKG0pe319KX19cGF5bWVudENhbGN1bGF0b3JGb3JtYXROdW1iZXIoYSl7cmV0dXJuIGEucmVwbGFjZSgvXEIoPz0oXGR7M30pKyg\/IVxkKSkvZywiLCIpfWZvcm1hdEVmZmVjdGl2ZVJhdGVUZXh0Q2FsYyhhLGUsYil7Yj12b2lkIDA9PT1iPyIiOmI7YT0iPHNwYW4gIitlKyI+IithKyI8L3NwYW4+JSI7YT0iRU5HTElTSCI9PWFjdGl2ZUxhbmc\/YSsiIEFQUiI6IlRhdXggIithO3JldHVybiAkKCIjaXNtb2JpbGUiKS52YWwoKT8iPGJyLz48ZGl2ICIrYisiPigiK2ErIik8L2Rpdj4iOiIgPGRpdiAiK2IrIj4oICIrYSsiICk8L2Rpdj4ifX07Ci8qKiAvanMvcGF5bWVudENhbGN1bGF0b3IuanMgKiovCnZhciBfX19kMmNfcGF5bWVudENhbGN1bGF0b3Jqc19jX29uPSIyMDI2LTAyLTI3IDEwOjMwOjA3IjsndXNlIHN0cmljdCc7ZnVuY3Rpb24gcG9wdXBDYWxjdWxhdG9ySW5pdGlhbGl6ZWQoKXtmdW5jdGlvbiBhKCl7ZCYmZC5hYm9ydCgpO2NhbGNVcGRhdGVQYXltZW50WGhyJiYoY2FsY1VwZGF0ZVBheW1lbnRYaHIuYWJvcnQoKSxjYWxjVXBkYXRlUGF5bWVudFhocj1udWxsKTt2YXIgYj0oJCgiYm9keSIpLmhhc0NsYXNzKCJFTkdMSVNIIik\/Ii9lbiI6Ii9mciIpKyIvYWpheC9nZXRQYXltZW50RGF0YUZvclN0eWxlSUQ\/d3N3aWR0aD0wIixlPWdldFBvcENvbnRhaW5TZXR0aW5ncygpLGs9Z2V0T3B0aW9uc0Ftb3VudChlKSxsPWdldEFjY2Vzc29yaWVzQW1vdW50KGUpO2xldCBoPWdldFNlbGVjdGVkQWNjZXNzb3JpZXMoZSk7dmFyIHI9Z2V0UHJvdGVjdGlvblBsYW5zQW1vdW50KGUpLHE9ZS5oYXNPd25Qcm9wZXJ0eSgibm9UcmltU2VsZWN0IikmJiJ0cnVlIj09ZS5ub1RyaW1TZWxlY3R8fCJ1c2VkY2Fycy5odG1sIj09JCgiI1BBR0VJRCIpLnZhbCgpfHwKImNhcmRldGFpbC5odG1sIj09JCgiI1BBR0VJRCIpLnZhbCgpLHU9ZS5oYXNPd25Qcm9wZXJ0eSgic3RvY2tOdW1iZXIiKT9lLnN0b2NrTnVtYmVyOiIiLHk9ZS5oYXNPd25Qcm9wZXJ0eSgidmluIik\/ZS52aW46IiI7aWYocSYmIXUpe3ZhciBuPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwaG9uZXN0b2NrbnVtYmVyIik7biYmKHU9bi52YWx1ZXx8IiIpfXEmJiF5JiYobj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicGhvbmV2aW4iKSkmJih5PW4udmFsdWV8fCIiKTtxJiYhZS5zdHlsZWlkJiYobj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYWN0aXZlU3R5bGVJRCIpKSYmKGUuc3R5bGVpZD1uLnZhbHVlfHxlLnN0eWxlaWQpO2lmKCJjYXNoIj09JCgiI3BheW1lbnRDYWxjdWxhdG9yUGF5bWVudFR5cGUgLmFjdGl2ZVBheW1lbnRUeXBlIikuYXR0cigiZGF0YS10eXBlIikpZW5hYmxlQ2FzaE9wdGlvbigpO2Vsc2V7bj1wYXJzZUludCgkKCIucGF5bWVudENhbGN1bGF0b3JUcmFkZUluVmFsdWUiKS52YWwoKXx8CjApK3BhcnNlSW50KCQoIiNwYXltZW50Q2FsY3VsYXRvckRvd25QYXltZW50IikudmFsKCl8fDApO3ZhciB4PVtdO2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5jb25kaXRpb25hbC1yZWJhdGUtY2hlY2tib3giKS5mb3JFYWNoKGZ1bmN0aW9uKGYpe2YuY2hlY2tlZCYmKGY9Zi5nZXRBdHRyaWJ1dGUoImRhdGEtY29uZGl0aW9uYWwtcmViYXRlLWlkIikpJiZ4LnB1c2goZil9KTt2YXIgdD1udWxsO0Nvb2tpZXMuZ2V0KCJwYXltZW50Q2FsY3VsYXRvclNlbGVjdGVkT3B0aW9ucyIpJiYodD1Db29raWVzLmdldCgicGF5bWVudENhbGN1bGF0b3JTZWxlY3RlZE9wdGlvbnMiKS5zcGxpdCgiLSIpKTt2YXIgQT0kKCIjcGF5bWVudENhbGN1bGF0b3JLbUFsbG93YW5jZSIpLnZhbCgpOyFBJiZ0JiZ0WzNdJiYoQT10WzNdKTt2YXIgej0kKCIjcGF5bWVudENhbGN1bGF0b3JQYXltZW50VHlwZSAuYWN0aXZlUGF5bWVudFR5cGUiKS5hdHRyKCJkYXRhLXR5cGUiKTsheiYmdCYmdFswXSYmKHo9CnRbMF0pOyEkKCIjcGF5bWVudENhbGN1bGF0b3JJbnRlcnZhbCIpLnZhbCgpJiZ0JiZ0WzJdJiYkKCIjcGF5bWVudENhbGN1bGF0b3JJbnRlcnZhbCIpLnZhbCh0WzJdKTtkPSQuYWpheCh7dXJsOmIsdHlwZToiUE9TVCIsZGF0YVR5cGU6IkpTT04iLGRhdGE6e3N0eWxlaWQ6ZS5zdHlsZWlkLHBheW1lbnRUeXBlOnosZG93bnBheW1lbnQ6bixvcHRpb25zQW1vdW50OmsscGF5bWVudEZyZXF1ZW5jeTokKCIjcGF5bWVudENhbGN1bGF0b3JJbnRlcnZhbCIpLnZhbCgpLGttQWxsb3dhbmNlOkEsb3B0aW9uczprLGlzSW52ZW50b3J5OnEsc246dSx2aW46eSxjb25kaXRpb25hbFJlYmF0ZUlkczp4LmpvaW4oIiwiKSxhY2Nlc3NvcmllczpsLHNlbGVjdGVkQWNjZXNzb3JpZXM6aCxwcm90ZWN0aW9uUGxhbnM6cn0sc3VjY2VzczpmdW5jdGlvbihmKXtmLmN1cnJlbnRQYXltZW50JiZmLmN1cnJlbnRQYXltZW50Lmxlbmd0aCYmKHNob3dQYXltZW50cyhmLmN1cnJlbnRQYXltZW50LGYucGF5bWVudEZlZXMsCmYubWFrZWlkLGYpLHNldFRpbWVvdXQoZnVuY3Rpb24oKXt2YXIgdz0kKCcjcGF5bWVudENhbGN1bGF0b3JDb250YWluZXIgaW5wdXRbbmFtZT0ic2VsZWN0ZWRQYXltZW50Il06Y2hlY2tlZCcpO3cubGVuZ3RoJiYiTkVXQ0FSUyIhPSgkKCIjdGFyZ2V0UGFnZSIpLnZhbCgpfHwhMSkmJiJVU0VEQ0FSUyIhPSgkKCIjdGFyZ2V0UGFnZSIpLnZhbCgpfHwhMSkmJih3PXtjdXJyZW50UGF5bWVudDp3LmF0dHIoImRhdGEtcmVhbHBheW1lbnQiKSxjdXJyZW50UmF0ZTp3LmF0dHIoImRhdGEtcmF0ZSIpLHBheW1lbnRUZXJtOncudmFsKCkscGF5bWVudFR5cGU6JCgiI3BheW1lbnRDYWxjdWxhdG9yUGF5bWVudFR5cGUgLmFjdGl2ZVBheW1lbnRUeXBlIikuYXR0cigiZGF0YS10eXBlIikscGF5bWVudEludGVydmFsOiQoIiNwYXltZW50Q2FsY3VsYXRvckludGVydmFsIikudmFsKCkscGF5bWVudERvd25QYXltZW50OnBhcnNlSW50KCQoIi5wYXltZW50Q2FsY3VsYXRvclRyYWRlSW5WYWx1ZSIpLnZhbCgpfHwKMCkrcGFyc2VJbnQoJCgiI3BheW1lbnRDYWxjdWxhdG9yRG93blBheW1lbnQiKS52YWwoKXx8MCksdG90YWxJbnRlcmVzdDp3LmF0dHIoImRhdGEtdG90YWxpbnRlcmVzdCIpLGx1eGVUYXhBbW91bnQ6dy5hdHRyKCJkYXRhLWx1eGVUYXhBbW91bnQiKSxyYXRlVHlwZTp3LmF0dHIoImRhdGEtcmF0ZXR5cGUiKSxlZmZlY3RpdmVSYXRlOncuYXR0cigiZGF0YS1lZmZlY3RpdmVSYXRlIiksdG90YWxDb3N0OncuYXR0cigiZGF0YS10b3RhbENvc3QiKX0sY2hhbmdlUGFnZVBheW1lbnRWYWx1ZSh3KSl9LDI1MCkpfX0pfX12YXIgZD1udWxsOyQoIiNwYXltZW50Q2FsY3VsYXRvckludGVydmFsIikub24oImNoYW5nZSIsZnVuY3Rpb24oKXthKCl9KTskKCIjcGF5bWVudENhbGN1bGF0b3JQYXltZW50VHlwZSBsaSIpLm9uKCJjbGljayIsZnVuY3Rpb24oKXskKCIjcGF5bWVudENhbGN1bGF0b3JQYXltZW50VHlwZSBsaSIpLnJlbW92ZUNsYXNzKCJhY3RpdmVQYXltZW50VHlwZSIpO3ZhciBiPQpkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjcGF5bWVudENhbGN1bGF0b3JDb250YWluZXIgLmNhbGMtcGF5bWVudC1jYXNoIik7JCh0aGlzKS5hZGRDbGFzcygiYWN0aXZlUGF5bWVudFR5cGUiKTtzd2l0Y2goITApe2Nhc2UgImxlYXNpbmciPT09JCh0aGlzKS5hdHRyKCJkYXRhLXR5cGUiKTpiLmhpZGRlbj0hMDskKCIucGF5bWVudENhbGN1bGF0b3JLbUFsbG93YW5jZUNvbnRhaW5lciIpLnNob3coKTskKCIucGF5bWVudENhbGN1bGF0b3JJbnB1dENvbnRhaW5lciIpLnNob3coKTticmVhaztjYXNlICJmaW5hbmNpbmciPT09JCh0aGlzKS5hdHRyKCJkYXRhLXR5cGUiKTpiLmhpZGRlbj0hMDskKCIucGF5bWVudENhbGN1bGF0b3JLbUFsbG93YW5jZUNvbnRhaW5lciIpLmhpZGUoKTskKCIucGF5bWVudENhbGN1bGF0b3JJbnB1dENvbnRhaW5lciIpLnNob3coKTticmVhaztjYXNlICJjYXNoIj09PSQodGhpcykuYXR0cigiZGF0YS10eXBlIik6Yi5oaWRkZW49ITEsJCgiLnBheW1lbnRDYWxjdWxhdG9ySW5wdXRDb250YWluZXIiKS5oaWRlKCksCiQoIiNwYXltZW50Q2FsY3VsYXRvclBheW1lbnRDb250YWluZXIiKS5oaWRlKCksJCgiI3BheW1lbnRDYWxjdWxhdG9yUGF5bWVudENvbnRhaW5lcldpdGhUYXhlcyIpLmhpZGUoKSxudWxsIT09Q29va2llcy5nZXQoInBheW1lbnRDYWxjdWxhdG9yU2VsZWN0ZWRPcHRpb25zIikmJihiPUNvb2tpZXMuZ2V0KCJwYXltZW50Q2FsY3VsYXRvclNlbGVjdGVkT3B0aW9ucyIpLnNwbGl0KCItIiksYlswXT0iY2FzaCIsQ29va2llcy5zZXQoInBheW1lbnRDYWxjdWxhdG9yU2VsZWN0ZWRPcHRpb25zIixiLmpvaW4oIi0iKSxudWxsLCIvIikpLHdpbmRvdy5wYXltZW50U2VsZWN0Q2hhbmdlZD0hMCwidW5kZWZpbmVkIiE9PXR5cGVvZiBtb2RlbENvbmZpZyYmImZ1bmN0aW9uIj09PXR5cGVvZiBtb2RlbENvbmZpZy5zZXRCTlBWaWV3JiZtb2RlbENvbmZpZy5zZXRCTlBWaWV3KCEwLCJjYXNoIil9JCgiI3BheW1lbnRDYWxjdWxhdG9yRG93blBheW1lbnQiKS50cmlnZ2VyKCJibHVyIil9KTskKCIjcGF5bWVudENhbGN1bGF0b3JLbUFsbG93YW5jZSIpLm9uKCJjaGFuZ2UiLApmdW5jdGlvbigpe2EoKX0pOyQoIiNwYXltZW50Q2FsY3VsYXRvckRvd25QYXltZW50Iikub24oImJsdXIiLGZ1bmN0aW9uKCl7bGV0IGI9cGFyc2VJbnQoJCh0aGlzKS52YWwoKS5yZXBsYWNlKC9bXlxkXS9nLCIiKSl8fDA7aWYoImxlYXNpbmciPT09JCgiI3BheW1lbnRDYWxjdWxhdG9yUGF5bWVudFR5cGUgLmFjdGl2ZVBheW1lbnRUeXBlIikuYXR0cigiZGF0YS10eXBlIikpe3ZhciBlPXBhcnNlSW50KCQoIiNtYXhEb3duUGF5bWVudEZvclRyaW0iKS52YWwoKSl8fDA7Yj5lJiYoYj1lKX1lbHNlIGU9cGFyc2VJbnQoJCgiI21heERvd25QYXltZW50RmluYW5jZUZvclRyaW0iKS52YWwoKSl8fDAsYj5lJiYoYj1lKTskKHRoaXMpLnZhbChiKTthKCl9KTskKCIucGF5bWVudENhbGN1bGF0b3JUcmFkZUluVmFsdWUiKS5vbigiYmx1ciIsZnVuY3Rpb24oKXtsZXQgYj1wYXJzZUludCgkKHRoaXMpLmF0dHIoIm1heCIpKXx8MCxlPXBhcnNlSW50KCQodGhpcykudmFsKCkpfHwwO2U9ZT4KYj9iOmU7JCh0aGlzKS52YWwoZSk7X2xvY2FsU3RvcmFnZVNldCgidHJhZGVpbl9jdXJyZW50X3ZhbHVlIixKU09OLnN0cmluZ2lmeSh7dmFsdWU6ZX0pLDEpO2EoKX0pOyQoIiNwYXltZW50Q2FsY3VsYXRvckluY2x1ZGVUYXhDaGVjayIpLm9uKCJjaGFuZ2UiLGZ1bmN0aW9uKCl7JCh0aGlzKS5pcygiOmNoZWNrZWQiKT8oJCgiI3BheW1lbnRDYWxjdWxhdG9yUGF5bWVudENvbnRhaW5lciIpLmhpZGUoKSwkKCIjcGF5bWVudENhbGN1bGF0b3JQYXltZW50Q29udGFpbmVyV2l0aFRheGVzIikuc2hvdygpLCQoIi5wYXltZW50Q2FsY3VsYXRvclRheGVJbmNsdWRlZCIpLnNob3coKSwkKCIucGF5bWVudENhbGN1bGF0b3JUYXhlTm90SW5jbHVkZWQiKS5oaWRlKCkpOigkKCIjcGF5bWVudENhbGN1bGF0b3JQYXltZW50Q29udGFpbmVyV2l0aFRheGVzIikuaGlkZSgpLCQoIiNwYXltZW50Q2FsY3VsYXRvclBheW1lbnRDb250YWluZXIiKS5zaG93KCksJCgiLnBheW1lbnRDYWxjdWxhdG9yVGF4ZUluY2x1ZGVkIikuaGlkZSgpLAokKCIucGF5bWVudENhbGN1bGF0b3JUYXhlTm90SW5jbHVkZWQiKS5zaG93KCkpfSk7JCgiI3BheW1lbnRDYWxjdWxhdG9yQ2FsbFRvQWN0aW9uQ29udGFpbmVyIGEiKS5vbigiY2xpY2siLGZ1bmN0aW9uKCl7Z2V0UG9wQ29udGFpblNldHRpbmdzKCkuYWxyZWFkeUluaXQ9ITA7d2luZG93LnBheW1lbnRTZWxlY3RDaGFuZ2VkJiYod2luZG93LnRlbXBQYXltZW50U2VsZWN0Q2hhbmdlZD0hMCk7d2luZG93LnBheW1lbnRTZWxlY3RDaGFuZ2VkPSExO3ZvaWQgMCE9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLnZlaGljbGVDb25maWd1cmF0b3JEUiIpJiYidW5kZWZpbmVkIiE9PXR5cGVvZiBtb2RlbENvbmZpZyYmbW9kZWxDb25maWcuY2hhbmdlUGF5bWVudFBsYW5Qb3B1cCgpOyQoIiNwYXltZW50Q2FsY3VsYXRvclBvcHVwQ29udGFpbmVyIikucG9wdXBpemUoKS5jbG9zZSgpfSk7JCgiI3BheW1lbnRDYWxjdWxhdG9yUG9wdXBDb250YWluZXIgLmNsb3NlLXJldmVhbC1tb2RhbCIpLm9uKCJjbGljayIsCmZ1bmN0aW9uKCl7dm9pZCAwIT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIudmVoaWNsZUNvbmZpZ3VyYXRvckRSIikmJiJ1bmRlZmluZWQiIT09dHlwZW9mIG1vZGVsQ29uZmlnJiZtb2RlbENvbmZpZy5jaGFuZ2VQYXltZW50UGxhblBvcHVwKCl9KTskKCIjcGF5bWVudENhbGN1bGF0b3JUcmltU2VsZWN0Iikub24oImNoYW5nZSIsZnVuY3Rpb24oKXt2YXIgYj1nZXRQb3BDb250YWluU2V0dGluZ3MoKTtiLnN0eWxlaWQ9JCh0aGlzKS52YWwoKTskKCIjYWN0aXZlU3R5bGVJRCIpLmxlbmd0aCYmJCgiI2FjdGl2ZVN0eWxlSUQiKS52YWwoYi5zdHlsZWlkKTtwYXltZW50Q2FsY3VsYXRvclBvcHVwSW5pdCgpO3VwZGF0ZVVybChiKX0pOyQoImJvZHkiKS5vbigiY2xpY2sgdGFwIiwiI3BheW1lbnRDYWxjdWxhdG9yQ29udGFpbmVyIC5maW5hbmNpbmctb3B0aW9uLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFdyYXBwZXIgKiIsZnVuY3Rpb24oKXskKHRoaXMpLmZpbmQoJ2lucHV0W25hbWU9InNlbGVjdGVkUGF5bWVudCJdJykucHJvcCgiY2hlY2tlZCIsCiJjaGVja2VkIikudHJpZ2dlcigiY2hhbmdlIil9KTskKCJib2R5Iikub24oImNoYW5nZSIsJyNwYXltZW50Q2FsY3VsYXRvckNvbnRhaW5lciBpbnB1dFtuYW1lPSJzZWxlY3RlZFBheW1lbnQiXScsZnVuY3Rpb24oKXt2YXIgYj0kKHRoaXMpLnZhbCgpLGU9JCh0aGlzKS5hdHRyKCJkYXRhLXJhdGV0eXBlIik7JCgnaW5wdXRbbmFtZT0ic2VsZWN0ZWRQYXltZW50V2l0aFRheGVzIl1bdmFsdWU9IicrYisnIl1bZGF0YS1yYXRldHlwZT0iJytlKyciXScpLnByb3AoImNoZWNrZWQiLCEwKTskKCIjcGF5bWVudENhbGN1bGF0b3JDb250YWluZXIgLmZpbmFuY2luZy1vcHRpb24iKS5yZW1vdmVDbGFzcygic2VsZWN0ZWQiKTskKCdpbnB1dFtuYW1lPSJzZWxlY3RlZFBheW1lbnRXaXRoVGF4ZXMiXVt2YWx1ZT0iJytiKyciXVtkYXRhLXJhdGV0eXBlPSInK2UrJyJdJykuY2xvc2VzdCgiLmZpbmFuY2luZy1vcHRpb24iKS5hZGRDbGFzcygic2VsZWN0ZWQiKTskKHRoaXMpLmNsb3Nlc3QoIi5maW5hbmNpbmctb3B0aW9uIikuYWRkQ2xhc3MoInNlbGVjdGVkIil9KTsKJCgiYm9keSIpLm9uKCJjaGFuZ2UiLCcjcGF5bWVudENhbGN1bGF0b3JDb250YWluZXIgaW5wdXRbbmFtZT0ic2VsZWN0ZWRQYXltZW50V2l0aFRheGVzIl0nLGZ1bmN0aW9uKCl7dmFyIGI9JCh0aGlzKS52YWwoKSxlPSQodGhpcykuYXR0cigiZGF0YS1yYXRldHlwZSIpOyQoJ2lucHV0W25hbWU9InNlbGVjdGVkUGF5bWVudCJdW3ZhbHVlPSInK2IrJyJdW2RhdGEtcmF0ZXR5cGU9IicrZSsnIl0nKS5wcm9wKCJjaGVja2VkIiwhMCkudHJpZ2dlcigiY2hhbmdlIil9KTt2YXIgYz0hMTskKCJib2R5Iikub24oImNoYW5nZSIsJyNwYXltZW50Q2FsY3VsYXRvckNvbnRhaW5lciBpbnB1dFtuYW1lPSJzZWxlY3RlZFBheW1lbnQiXScsZnVuY3Rpb24oKXt2YXIgYj1nZXRQb3BDb250YWluU2V0dGluZ3MoKSxlPSQoIiNwYXltZW50Q2FsY3VsYXRvclBheW1lbnRUeXBlIC5hY3RpdmVQYXltZW50VHlwZSIpLmF0dHIoImRhdGEtdHlwZSIpLGs9JCh0aGlzKS52YWwoKSxsPSQoIiNwYXltZW50Q2FsY3VsYXRvckludGVydmFsIikudmFsKCksCmg9JCgiI3BheW1lbnRDYWxjdWxhdG9yS21BbGxvd2FuY2UiKS52YWwoKSxyPSQoIiNwYXltZW50Q2FsY3VsYXRvckRvd25QYXltZW50IikudmFsKCk\/JCgiI3BheW1lbnRDYWxjdWxhdG9yRG93blBheW1lbnQiKS52YWwoKTowLHE9JCgiLnBheW1lbnRDYWxjdWxhdG9yVHJhZGVJblZhbHVlIikudmFsKCk\/JCgiLnBheW1lbnRDYWxjdWxhdG9yVHJhZGVJblZhbHVlIikudmFsKCk6MDtyPXBhcnNlSW50KHIpK3BhcnNlSW50KHEpO3I9ci50b0ZpeGVkKDApO3E9ZSsiLSIraysiLSIrbCsiLSIraCsiLSIrcjtxIT1Db29raWVzLmdldCgicGF5bWVudENhbGN1bGF0b3JTZWxlY3RlZE9wdGlvbnMiKSYmbnVsbCE9Q29va2llcy5nZXQoInBheW1lbnRDYWxjdWxhdG9yU2VsZWN0ZWRPcHRpb25zIikmJih3aW5kb3cucGF5bWVudFNlbGVjdENoYW5nZWQ9ITAsdm9pZCAwIT1Db29raWVzLmdldCgicGF5bWVudENhbGN1bGF0b3JTZWxlY3RlZE9wdGlvbnMiKS5zcGxpdCgiLSIpWzBdJiYidW5kZWZpbmVkIiE9CnR5cGVvZiBtb2RlbENvbmZpZyYmdm9pZCAwIT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIudmVoaWNsZUNvbmZpZ3VyYXRvckRSIikmJihjPSEwLG1vZGVsQ29uZmlnLnNldEJOUFZpZXcoYyxlKSksbnVsbCE9Q29va2llcy5nZXQoInBheW1lbnRDYWxjdWxhdG9yU2VsZWN0ZWRPcHRpb25zIikmJkNvb2tpZXMuc2V0KCJwcmV2aW91c3BheW1lbnRDYWxjdWxhdG9yU2VsZWN0ZWRPcHRpb25zIixDb29raWVzLmdldCgicGF5bWVudENhbGN1bGF0b3JTZWxlY3RlZE9wdGlvbnMiKSxudWxsLCIvIikpO2N8fCJ1bmRlZmluZWQiPT10eXBlb2YgbW9kZWxDb25maWd8fCJ1bmRlZmluZWQiPT09dHlwZW9mIG1vZGVsQ29uZmlnfHx2b2lkIDA9PWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi52ZWhpY2xlQ29uZmlndXJhdG9yRFIiKXx8bW9kZWxDb25maWcuc2hvdWxkUmVsb2FkQk5QVmlld09uUGF5bWVudENoYW5nZShjLGUpO0Nvb2tpZXMuc2V0KCJwYXltZW50Q2FsY3VsYXRvclNlbGVjdGVkT3B0aW9ucyIsCnEsbnVsbCwiLyIpO3ZhciB1PSQoImJvZHkiKS5oYXNDbGFzcygiRU5HTElTSCIpPyJtb250aHMiOiJtb2lzIix5PSQoImJvZHkiKS5oYXNDbGFzcygiRU5HTElTSCIpPyIkIityKyIgZG93biBwYXltZW50IjpyKyIgJCBjb21wdGFudCI7cT0kKCJib2R5IikuaGFzQ2xhc3MoIkVOR0xJU0giKT8icGVyIHdlZWsgZm9yIjoicGFyIHNlbWFpbmUgcG91ciI7c3dpdGNoKGwpe2Nhc2UgIndlZWtseSI6cT0kKCJib2R5IikuaGFzQ2xhc3MoIkVOR0xJU0giKT8icGVyIHdlZWsgZm9yIjoicGFyIHNlbWFpbmUgcG91ciI7YnJlYWs7Y2FzZSAiYml3ZWVrbHkiOnE9JCgiYm9keSIpLmhhc0NsYXNzKCJFTkdMSVNIIik\/InBlciAyIHdlZWtzIGZvciI6InBhciAyIHNlbWFpbmVzIHBvdXIiO2JyZWFrO2Nhc2UgInNlbWltb250aGx5IjpxPSQoImJvZHkiKS5oYXNDbGFzcygiRU5HTElTSCIpPyJ0d2ljZSBhIG1vbnRoIGZvciI6IjIgZm9pcyBwYXIgbW9pcyBwb3VyIjticmVhaztjYXNlICJtb250aGx5IjpxPQokKCJib2R5IikuaGFzQ2xhc3MoIkVOR0xJU0giKT8icGVyIG1vbnRoIGZvciI6InBhciBtb2lzIHBvdXIifWg9ImxlYXNpbmciPT09ZT9oKyJrbSI6IiI7dmFyIG49JCgiYm9keSIpLmhhc0NsYXNzKCJFTkdMSVNIIik\/ImxlYXNpbmciPT09ZT8iTGVhc2luZyI6IkZpbmFuY2luZyI6ImxlYXNpbmciPT09ZT8iTG9jYXRpb24iOiJGaW5hbmNlbWVudCI7Yi52ZWhpY2xlSW5mbyYmKGVtYWlsSGFuZGxlci5wYXltZW50VmVoaWNsZT1iLnZlaGljbGVJbmZvLm1ha2UrIiAiKyhiLnZlaGljbGVJbmZvLm1vZGVsfHxiLnZlaGljbGVJbmZvLkNGTW9kZWxOYW1lKSsiICIrYi52ZWhpY2xlSW5mby5DRlN0eWxlTmFtZSxlbWFpbEhhbmRsZXIucGF5bWVudFZlaGljbGU9JCgiYm9keSIpLmhhc0NsYXNzKCJFTkdMSVNIIik\/Yi52ZWhpY2xlSW5mby55ZWFyKyIgIitlbWFpbEhhbmRsZXIucGF5bWVudFZlaGljbGU6ZW1haWxIYW5kbGVyLnBheW1lbnRWZWhpY2xlKyIgIitiLnZlaGljbGVJbmZvLnllYXIsCmVtYWlsSGFuZGxlci5wYXltZW50VmVoaWNsZSs9IigiK24rIiAiK3ErIiAiK2srIiAiK3UrIi4gIit5KyIuICIraCsiKSIsZW1haWxIYW5kbGVyLm1ha2U9Yi52ZWhpY2xlSW5mby5tYWtlLGVtYWlsSGFuZGxlci5tb2RlbD1iLnZlaGljbGVJbmZvLm1vZGVsfHxiLnZlaGljbGVJbmZvLkNGTW9kZWxOYW1lLGVtYWlsSGFuZGxlci50cmltPWIudmVoaWNsZUluZm8uQ0ZTdHlsZU5hbWUsZW1haWxIYW5kbGVyLnllYXI9Yi52ZWhpY2xlSW5mby55ZWFyKTtpZigiTkVXQ0FSUyIhPT0oJCgiI3RhcmdldFBhZ2UiKS52YWwoKXx8ITEpJiYiVVNFRENBUlMiIT09KCQoIiN0YXJnZXRQYWdlIikudmFsKCl8fCExKSl7cT0kKHRoaXMpLmF0dHIoImRhdGEtcmVhbHBheW1lbnQiKTtiPSQodGhpcykuYXR0cigiZGF0YS1yYXRlIik7aD0kKHRoaXMpLmF0dHIoImRhdGEtdG90YWxpbnRlcmVzdCIpO3U9JCh0aGlzKS5hdHRyKCJkYXRhLWx1eGVUYXhBbW91bnQiKTt5PSQodGhpcykuYXR0cigiZGF0YS1lZmZlY3RpdmVSYXRlIik7Cm49JCh0aGlzKS5hdHRyKCJkYXRhLXJhdGV0eXBlIik7dmFyIHg9JCh0aGlzKS5hdHRyKCJkYXRhLXRvdGFsQ29zdCIpO2NoYW5nZVBhZ2VQYXltZW50VmFsdWUoe2N1cnJlbnRQYXltZW50OnEsY3VycmVudFJhdGU6YixwYXltZW50VGVybTprLHBheW1lbnRUeXBlOmUscGF5bWVudEludGVydmFsOmwscGF5bWVudERvd25QYXltZW50OnIsdG90YWxJbnRlcmVzdDpoLGx1eGVUYXhBbW91bnQ6dSxyYXRlVHlwZTpuLGVmZmVjdGl2ZVJhdGU6eSx0b3RhbENvc3Q6eH0pfXk9IiIhPSQoIiNkaXNjbGFpbWVyUHJpY2VUZXh0IikudmFsKCk\/JCgiI2Rpc2NsYWltZXJQcmljZVRleHQiKS52YWwoKToiK3R4IjtpZigkKCIuYm5wX3BheW1lbnRfY29udGFpbmVyIikubGVuZ3RoKXt1PSQoIiNhY3RpdmVzaXRlbGFuZ3VhZ2UiKS52YWwoKXx8IkZSRU5DSCI7cT0kKHRoaXMpLmF0dHIoImRhdGEtcmVhbHBheW1lbnQiKTtiPSQodGhpcykuYXR0cigiZGF0YS1yYXRlIik7aD0iMSI9PSQoIiNyb3VuZFBheW1lbnQiKS52YWwoKT8KMDoyO249cGFyc2VGbG9hdChxKS50b0ZpeGVkKGgpO249bi5yZXBsYWNlKC9cLihbMC05XSopLyxmdW5jdGlvbih0LEEpe3JldHVybic8c3VwIGNsYXNzPSJwZCI+JytBKyI8L3N1cD4ifSk7cT0kKCIjSU5URVJWQUxfU0hPUlRfV0VFS0xZIikudmFsKCk7aD01Mjtzd2l0Y2gobCl7Y2FzZSAid2Vla2x5IjpxPSQoIiNJTlRFUlZBTF9TSE9SVF9XRUVLTFkiKS52YWwoKTtoPTUyO2JyZWFrO2Nhc2UgImJpd2Vla2x5IjpxPSQoIiNJTlRFUlZBTF9TSE9SVF9CSVdFRUtMWSIpLnZhbCgpO2g9MjY7YnJlYWs7Y2FzZSAic2VtaW1vbnRobHkiOnE9JCgiI0lOVEVSVkFMX1NIT1JUX1NFTUlNT05USExZIikudmFsKCk7aD0yNDticmVhaztjYXNlICJtb250aGx5IjpxPSQoIiNJTlRFUlZBTF9TSE9SVF9NT05USExZIikudmFsKCksaD0xMn1sPXkrIi8iK3E7IjEiPT0kKCIjcGF5bWVudENhbGN1bGF0b3JTdHJpa2VQYXltZW50IikudmFsKCkmJiJibHVyIj09PSQoIiNwYXltZW50Q2FsY3VsYXRvclN0cmlrZVBheW1lbnRPcHRpb24iKS52YWwoKSYmCihuPSc8c3BhbiBjbGFzcz0iYmx1ci1wcmljZSI+JytuKyI8L3NwYW4+Iik7cT1EMkNVdGlscy5Gb3JtYXQudG9QcmljZShuKTtyPUQyQ1V0aWxzLkZvcm1hdC50b1ByaWNlKHIpKygiRU5HTElTSCI9PT11PyIgZG93biI6IiBjb21wdGFudCIpO2U9ImZpbmFuY2luZyI9PT1lPyJFTkdMSVNIIj09PXU\/aysiIG1vbnRocyBmaW4uIjoiRmluLiAiK2srIiBtb2lzIjoiRU5HTElTSCI9PT11P2srIiBtb250aHMgbGVhc2UiOiJMb2MuICIraysiIG1vaXMiO2I9cGFyc2VGbG9hdChiKS50b0ZpeGVkKDIpKyIlIjt1PWUrIiAvICIrcisiIEAgIitiKyI6IjsxPT0kKCIjaXNEUlNpdGUiKS5sZW5ndGgmJiIxIj09JCgiI2lzRFJTaXRlIikudmFsKCkmJihrPXBhcnNlSW50KHBhcnNlSW50KGspLzEyKmgpLGg9c3RvcmUuZ2V0KCJpMThuIikuUEFZTUVOVFMudG9Mb3dlckNhc2UoKSx1PWUrIiAvICIraysiICIraCsiIC8gIityKyIgQCAiK2IrIjoiKTskKCIuYm5wX3BheW1lbnRfY29udGFpbmVyIC5icC1wYXltZW50LWRlc2MiKS5odG1sKHUpOwokKCIuYm5wX3BheW1lbnRfY29udGFpbmVyIC5icC1wYXltZW50LWFtb3VudCIpLmh0bWwocSk7JCgiLmJucF9wYXltZW50X2NvbnRhaW5lciAuYnAtdGF4LXR4dCIpLnRleHQobCk7az0kKHRoaXMpLmNsb3Nlc3QoIi5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRXcmFwcGVyQ29udGFpbmVyIik7IjEiPT0kKCIjaXNtb2JpbGUiKS52YWwoKSYmKGs9JCh0aGlzKS5jbG9zZXN0KCIucGF5bWVudENhbGN1bGF0b3JQYXltZW50V3JhcHBlckNvbnRhaW5lciIpLmZpbmQoIi5wYXltZW50VG9vbHRpcCIpKTtrPWsuYXR0cigiZGF0YS10b29sdGlwIik7az1TdHJpbmcoaykucmVwbGFjZSgvJi9nLCImYW1wOyIpLnJlcGxhY2UoLzwvZywiJmx0OyIpLnJlcGxhY2UoLz4vZywiJmd0OyIpLnJlcGxhY2UoLyIvZywiJnF1b3Q7Iik7Y2hhbmdlQm5QVG9vbFRpcE1lc3NhZ2Uoayk7InVuZGVmaW5lZCIhPT10eXBlb2YgbW9kZWxDb25maWcmJihtb2RlbENvbmZpZy5zYXZlQ29uZmlnKCksbW9kZWxDb25maWcuY2FsY3VsYXRlQWNjUGF5bWVudHMoKSl9fSk7CiQoImJvZHkiKS5vbigiY2hhbmdlIiwiLmNvbmRpdGlvbmFsLXJlYmF0ZS1jaGVja2JveCIsZnVuY3Rpb24oKXtpZigkKCIjcGF5bWVudENhbGN1bGF0b3JQb3B1cENvbnRhaW5lciIpLmlzKCI6dmlzaWJsZSIpfHwkKCIjcGF5bWVudENhbGN1bGF0b3JDb250YWluZXIiKS5pcygiOnZpc2libGUiKSkiY2FzaCI9PT0kKCIjcGF5bWVudENhbGN1bGF0b3JQYXltZW50VHlwZSAuYWN0aXZlUGF5bWVudFR5cGUiKS5hdHRyKCJkYXRhLXR5cGUiKT9jYWxjVXBkYXRlUGF5bWVudEluZm8oKTphKCl9KX1mdW5jdGlvbiBlc2NhcGVIVE1MKGEpe3JldHVybiBTdHJpbmcoYSkucmVwbGFjZSgvJi9nLCImYW1wOyIpLnJlcGxhY2UoLzwvZywiJmx0OyIpLnJlcGxhY2UoLz4vZywiJmd0OyIpLnJlcGxhY2UoLyIvZywiJnF1b3Q7IikucmVwbGFjZSgvJy9nLCImIzM5OyIpfQp2YXIgY3RhUGF5bWVudFRleHRGcj1bXSxjdGFQYXltZW50VGV4dEVuPVtdLGNhbGNDdXJQYXltZW50PXt9LGN0YVBheW1lbnRWYWx1ZXM9W10sY2FzaFByaWNlRm9yUGFnZT1udWxsLGNhbGNVcGRhdGVQYXltZW50WGhyPW51bGw7CmZ1bmN0aW9uIHVwZGF0ZVVybChhKXt0cnl7aWYoIWEudmVoaWNsZUluZm8pcmV0dXJuO3ZhciBkPWEudmVoaWNsZUluZm8sYz0idW5kZWZpbmVkIiE9dHlwZW9mIG5ld2NhckRldGFpbHM\/bmV3Y2FyRGV0YWlscy5hY3RpdmVNb2RlbC5zdHlsZXM6ZC5tb2RlbEpTT04uc3R5bGVzLGI9d2luZG93LnBhcmVudC5sb2NhdGlvbi5ocmVmLnNwbGl0KCIvIikuc2xpY2UoMCwtMSkuam9pbigiLyIpLGU9Yy5maWx0ZXIoZnVuY3Rpb24oayl7cmV0dXJuIGsuaWQ9PWEuc3R5bGVpZH0pLnBvcCgpfWNhdGNoKGspe2NvbnNvbGUuZXJyb3Ioayk7cmV0dXJufWUmJihjPWUuZW5nbGlzaFRyaW18fCIiLGQ9Z2V0Q3VycmVudFZlaGljbGVQYXRoKGQpKyItIitjLnJlcGxhY2UoL1xzfC0vZywiICIpLGMubGVuZ3RoJiZ3aW5kb3cucGFyZW50Lmhpc3RvcnkucHVzaFN0YXRlKHt9LCIiLGIrIi8iK2QrIi5odG1sIikpfQpmdW5jdGlvbiBjaGFuZ2VCblBUb29sVGlwTWVzc2FnZShhKXthPSc8c3BhbiBjbGFzcz0icGF5bWVudFRvb2x0aXAgZmFsIGZhLWluZm8tY2lyY2xlIiBkYXRhLXRvb2x0aXA9IicrYSsnIj48L3NwYW4+JzskKCIucGF5bWVudEluZm9CdWJibGVCblAiKS5odG1sKGEpO3RyeXt2YXIgZD0kKCIucGF5bWVudEluZm9CdWJibGVCblAgLnBheW1lbnRUb29sdGlwIikuYXR0cigiZGF0YS10b29sdGlwIik7JCgiLnBheW1lbnRJbmZvQnViYmxlQm5QIC5wYXltZW50VG9vbHRpcCIpLmRhcmtUb29sdGlwKHtjb250ZW50OmQsZ3Jhdml0eToic291dGgiLHRoZW1lOiJsaWdodCIsdHJpZ2dlcjoiaG92ZXIiLGFuaW1hdGlvbjoiZmFkZUluIn0pfWNhdGNoKGMpe319CmZ1bmN0aW9uIHBvcHVwaXplck9uQ2xvc2UoYSxkKXsicGF5bWVudENhbGN1bGF0b3JQb3B1cENvbnRhaW5lciIhPT1hLmN1cnJlbnRUYXJnZXQucGFyZW50RWxlbWVudC5pZCYmKHdpbmRvdy50ZW1wUGF5bWVudFNlbGVjdENoYW5nZWQmJih3aW5kb3cudGVtcFBheW1lbnRTZWxlY3RDaGFuZ2VkPSExLHdpbmRvdy5wYXltZW50U2VsZWN0Q2hhbmdlZD0hMCksJCgiI3BheW1lbnRDYWxjdWxhdG9yUG9wdXBDb250YWluZXIiKS5wb3B1cGl6ZSgpLm9wZW4oMSksJCgiLnJldmVhbC1tb2RhbCIpLm9mZigicG9wdXBpemVyLmNsb3NlIixwb3B1cGl6ZXJPbkNsb3NlKSl9CmZ1bmN0aW9uIGdldFBvcENvbnRhaW5TZXR0aW5ncygpe3ZhciBhPSQoIiNwYXltZW50Q2FsY3VsYXRvclBvcHVwQ29udGFpbmVyIikuZGF0YSgicG9wdXBTZXR0aW5ncyIpO2Eubm9Nb3RvaW5zaWdodExlYXNlUGF5bWVudHM9ITE7YS5ub01vdG9pbnNpZ2h0RmluYW5jZVBheW1lbnRzPSExO2lmKCJ1bmRlZmluZWQiPT09dHlwZW9mIGEpcmV0dXJuITE7InVuZGVmaW5lZCIhPXR5cGVvZiBzZWFyY2hEZXRhaWxzJiZzZWFyY2hEZXRhaWxzLnZlaGljbGU\/KGEucGF5bWVudFR5cGU9IjEiPT0oc2VhcmNoRGV0YWlscy52ZWhpY2xlLm5vTW90b2luc2lnaHRMZWFzZVBheW1lbnRzfHwhMSk\/ImZpbmFuY2UiOmEucGF5bWVudFR5cGUsYS5wYXltZW50VHlwZT0iMSI9PShzZWFyY2hEZXRhaWxzLnZlaGljbGUubm9Nb3RvaW5zaWdodFBheW1lbnR8fCExKT8ibGVhc2UiOmEucGF5bWVudFR5cGUsYS5ub01vdG9pbnNpZ2h0TGVhc2VQYXltZW50cz0iMSI9PShzZWFyY2hEZXRhaWxzLnZlaGljbGUubm9Nb3RvaW5zaWdodExlYXNlUGF5bWVudHN8fAohMSk\/ITA6ITEsYS5ub01vdG9pbnNpZ2h0RmluYW5jZVBheW1lbnRzPSIxIj09KHNlYXJjaERldGFpbHMudmVoaWNsZS5ub01vdG9pbnNpZ2h0UGF5bWVudHx8ITEpPyEwOiExKTooYS5wYXltZW50VHlwZT0iMSI9PShhLm5vTGVhc2V8fCExKT8iZmluYW5jZSI6YS5wYXltZW50VHlwZSxhLnBheW1lbnRUeXBlPSIxIj09KGEubm9GaW5hbmNlfHwhMSk\/ImxlYXNlIjphLnBheW1lbnRUeXBlLGEubm9Nb3RvaW5zaWdodExlYXNlUGF5bWVudHM9IjEiPT0oYS5ub0xlYXNlfHwhMSk\/ITA6ITEsYS5ub01vdG9pbnNpZ2h0RmluYW5jZVBheW1lbnRzPSIxIj09KGEubm9GaW5hbmNlfHwhMSk\/ITA6ITEpO3JldHVybiBhfQpmdW5jdGlvbiBjaGFuZ2VQYWdlUGF5bWVudFZhbHVlKGEpe3ZhciBkPWEuY3VycmVudFBheW1lbnQsYz1hLmN1cnJlbnRSYXRlLGI9YS5wYXltZW50VGVybSxlPWEucGF5bWVudFR5cGUsaz1hLnBheW1lbnRJbnRlcnZhbCxsPWEucGF5bWVudERvd25QYXltZW50LGg9YS50b3RhbEludGVyZXN0LHI9YS5sdXhlVGF4QW1vdW50LHE9YS5yYXRlVHlwZSx1PWEuZWZmZWN0aXZlUmF0ZSx5PWEudG90YWxDb3N0LG49JCgiYm9keSIpLmhhc0NsYXNzKCJFTkdMSVNIIik\/IkVOR0xJU0giOiJGUkVOQ0giLHg9Z2V0UG9wQ29udGFpblNldHRpbmdzKCksdD0iMSI9PSQoIiNwYXltZW50Q2FsY3VsYXRvclJvdW5kUGF5bWVudCIpLnZhbCgpPzA6MixBPTI9PXQ\/TWF0aC5mbG9vcihwYXJzZUZsb2F0KGQpKS50b0ZpeGVkKDApOnBhcnNlRmxvYXQoZCkudG9GaXhlZCgwKTtkPXBhcnNlRmxvYXQoZCkudG9GaXhlZCh0KTt0PWQuc3BsaXQoIi4iKVsxXXx8IiI7ZD1kLnJlcGxhY2UoL1wuKFswLTldKikvLApmdW5jdGlvbihCLEUpe3JldHVybic8c3VwIGNsYXNzPSJwZCI+JytFKyI8L3N1cD4ifSk7IjEiPT0kKCIjcGF5bWVudENhbGN1bGF0b3JTdHJpa2VQYXltZW50IikudmFsKCkmJiJibHVyIj09PSQoIiNwYXltZW50Q2FsY3VsYXRvclN0cmlrZVBheW1lbnRPcHRpb24iKS52YWwoKSYmKGQ9JzxzcGFuIGNsYXNzPSJibHVyLXByaWNlIj4nK2QrIjwvc3Bhbj4iKTt2YXIgej1EMkNVdGlscy5Gb3JtYXQudG9QcmljZShkKSxmPWQrIiQiLHc9IiQiK2Qsdj0ibGVhc2luZyI9PT1lPyJMb2NhdGlvbiI6IkZpbmFuY2VtZW50IixwPSJsZWFzaW5nIj09PWU\/IkxlYXNpbmciOiJGaW5hbmNpbmciLG09YysiJSIsZz0iIiE9JCgiI2Rpc2NsYWltZXJQcmljZVRleHQiKS52YWwoKT8kKCIjZGlzY2xhaW1lclByaWNlVGV4dCIpLnZhbCgpOiIrdHgiLEQ9ZysiL21vaXMiLEM9ZysiL210aCI7c3dpdGNoKGspe2Nhc2UgIndlZWtseSI6RD1nKyIvc2VtIjtDPWcrIi93ZWVrIjticmVhaztjYXNlICJiaXdlZWtseSI6RD0KZysiLzJzZW0iO0M9ZysiLzJ3ZWVrIjticmVhaztjYXNlICJzZW1pbW9udGhseSI6RD1nKyIvYmltZW5zdWVsIjtDPWcrIi9zZW1pbW9udGhseSI7YnJlYWs7ZGVmYXVsdDpEPWcrIi9tb2lzIixDPWcrIi9tb250aCJ9dmFyIEY9IjEiPT0kKCIjcGF5bWVudENhbGN1bGF0b3JTdHJpa2VQYXltZW50IikudmFsKCk\/InNjcmF0Y2giPT09JCgiI3BheW1lbnRDYWxjdWxhdG9yU3RyaWtlUGF5bWVudE9wdGlvbiIpLnZhbCgpPyJzdHJpa2UtcHJpY2UtYmxhY2siOiIiOiIiO2c9RDJDVXRpbHMuRm9ybWF0LnRvUHJpY2UobCkrIiBjb21wdGFudCI7dmFyIEo9RDJDVXRpbHMuRm9ybWF0LnRvUHJpY2UobCkrIiBkb3duIHBheW1lbnQiO2w9disiICIrYisiIG1vaXMiO3A9cCsiICIrYisiIG1vbnRocyI7ej0nPHNwYW4gY2xhc3M9InR4dC1wYXltZW50ICcrRisnIj4nK3orJzwvc3Bhbj4gQCA8c3BhbiBjbGFzcz0idHh0LXBheW1lbnQiPicrbSsiPC9zcGFuPiI7MDx1LWMmJih6Kz1mb3JtYXRFZmZlY3RpdmVSYXRlVGV4dCh1LAonIGNsYXNzPSJ0eHQtcGF5bWVudCIgJykpO3U9KCJFTkdMSVNIIj09PW4\/QzpEKSsiICIrKCJFTkdMSVNIIj09PW4\/SjpnKSsoIjEiPT0kKCIjaXNtb2JpbGUiKS52YWwoKT8iIjonIDxzcGFuIHN0eWxlPSJmb250LXdlaWdodDo3MDA7Y29sb3I6IzAwMDsiIGNsYXNzPSJ2ZHBJbmZvVG9vbHRpcCBmYXIgZmEtaW5mby1jaXJjbGUiPjwvc3Bhbj4nKTskKCIucGF5bWVudFdyYXBwZXIgLnBheW1lbnRMaW5lMiwgLnBheW1lbnRXcmFwcGVyTW9iaWxlVkRQIC5wYXltZW50TGluZTEiKS5odG1sKCJFTkdMSVNIIj09PW4\/cDpsKTskKCIucGF5bWVudFdyYXBwZXIgLnBheW1lbnRMaW5lMSwgLnBheW1lbnRXcmFwcGVyTW9iaWxlVkRQIC5wYXltZW50TGluZTIiKS5odG1sKHopOyQoIi5wYXltZW50V3JhcHBlciAucGF5bWVudExpbmUzLCAucGF5bWVudFdyYXBwZXJNb2JpbGVWRFAgLnBheW1lbnRMaW5lMyIpLmh0bWwodSk7Zz16PSIiO2NhbGNDdXJQYXltZW50LmN1cnJlbnRQYXltZW50JiYKY2FsY0N1clBheW1lbnQuY3VycmVudFBheW1lbnQubGVuZ3RoJiYoZz1jYWxjQ3VyUGF5bWVudC5jdXJyZW50UGF5bWVudFswXS50b3RhbCx6PWBBZmZpY2jDg8KpIMODwqAgJHtnfSRgLGc9YExpc3RlZCBhdCAkJHtnfWApO2N0YVBheW1lbnRUZXh0RnI9W2Ake2Z9ICR7RH1gLGAke2x9IEAgJHttfWAsYCR7en1gXTtjdGFQYXltZW50VGV4dEVuPVtgJHt3fSAke0N9YCxgJHtwfSBAICR7bX1gLGAke2d9YF07Y3RhUGF5bWVudFZhbHVlcz1bYS5jdXJyZW50UGF5bWVudCxjLGIsa107d2luZG93LnBhcmVudC5BTVAmJndpbmRvdy5wYXJlbnQuQU1QLnNldFN0YXRlKHtTU1JfU1RBVEU6e2xlYXNlVGVybVRleHQ6IkVOR0xJU0giPT09bj9wOmwsbGVhc2VQYXltZW50VHh0OkEsbGVhc2VQYXltZW50RGVjaW1hbDp0LGxlYXNlUmF0ZTptLGxlYXNlVGF4VGV4dDp1fX0pO2NhbGNDdXJQYXltZW50LmN1clRlcm09YjtjYWxjQ3VyUGF5bWVudC5jdXJSYXRlPWM7Y2FsY0N1clBheW1lbnQuY3VySW50ZXJ2YWw9Cms7Y2FsY0N1clBheW1lbnQudGF4VGV4dEZyPUQ7Y2FsY0N1clBheW1lbnQudGF4VGV4dEVuPUM7YT0oJCgiYm9keSIpLmhhc0NsYXNzKCJFTkdMSVNIIik\/Ii9lbiI6Ii9mciIpKyIvYWpheC9nZXRQYXltZW50VG9vbHRpcEJ5U3R5bGVJRD93c3dpZHRoPTAiO2U9ImxlYXNpbmciPT1lPyJsZWFzZSI6ImZpbmFuY2UiO249Z2V0T3B0aW9uc0Ftb3VudCh4KTtBPXguaGFzT3duUHJvcGVydHkoIm5vVHJpbVNlbGVjdCIpJiYidHJ1ZSI9PXgubm9UcmltU2VsZWN0fHwidXNlZGNhcnMuaHRtbCI9PT0kKCIjUEFHRUlEIikudmFsKCl8fCJjYXJkZXRhaWwuaHRtbCI9PT0kKCIjUEFHRUlEIikudmFsKCk7dD14Lmhhc093blByb3BlcnR5KCJzdG9ja051bWJlciIpP3guc3RvY2tOdW1iZXI6IiI7Zj14Lmhhc093blByb3BlcnR5KCJ2aW4iKT94LnZpbjoiIjt3PWdldEFjY2Vzc29yaWVzQW1vdW50KHgpO209Z2V0U2VsZWN0ZWRBY2Nlc3Nvcmllcyh4KTtEPWdldFByb3RlY3Rpb25QbGFuc0Ftb3VudCh4KTsKbGV0IEw9W107ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLmNvbmRpdGlvbmFsLXJlYmF0ZS1jaGVja2JveCIpLmZvckVhY2goZnVuY3Rpb24oQil7Qi5jaGVja2VkJiYoQj1CLmdldEF0dHJpYnV0ZSgiZGF0YS1jb25kaXRpb25hbC1yZWJhdGUtaWQiKSkmJkwucHVzaChCKX0pO0EmJiF0JiYoQz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicGhvbmVzdG9ja251bWJlciIpKSYmKHQ9Qy52YWx1ZXx8IiIpO0EmJiFmJiYoQz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicGhvbmV2aW4iKSkmJihmPUMudmFsdWV8fCIiKTskLmFqYXgoe3VybDphLHR5cGU6IlBPU1QiLGRhdGFUeXBlOiJIVE1MIixkYXRhOntzdHlsZWlkOnguc3R5bGVpZCx0eXBlOmUscGF5bWVudDpwYXJzZUZsb2F0KGQpLHRlcm06cGFyc2VJbnQoYikscmF0ZTpwYXJzZUZsb2F0KGMpLGludGVydmFsOmssb3B0aW9uczpuLHRvdGFsSW50ZXJlc3Q6aCxpc0ludmVudG9yeTpBLHNuOnQsdmluOmYsbHV4ZVRheEFtb3VudDpyLApyYXRlX3R5cGU6cSx0b3RhbENvc3Q6eSxjb25kaXRpb25hbFJlYmF0ZUlkczpMLmpvaW4oIiwiKSxhY2Nlc3Nvcmllczp3LHNlbGVjdGVkQWNjZXNzb3JpZXM6bSxwcm90ZWN0aW9uUGxhbnM6RH0sYmVmb3JlU2VuZDpmdW5jdGlvbihCKXt0cnl7bGV0IEU9JCgibWV0YVtuYW1lPSdjc3JmLWRvbWFpbi1jaGVjayddIik7RS5sZW5ndGgmJkIuc2V0UmVxdWVzdEhlYWRlcigiY3NyZi1kb21haW4tY2hlY2siLEUuYXR0cigiY29udGVudCIpKX1jYXRjaChFKXtjb25zb2xlLmVycm9yKEIpfX0sc3VjY2VzczpmdW5jdGlvbihCKXskKCIjZGFya3Rvb2x0aXAtcGF5bWVudFdyYXBwZXIsICNkYXJrdG9vbHRpcC12ZHBQYXltZW50VG9vbHRpcCwgI2Rhcmt0b29sdGlwLXZkcEluZm9Ub29sdGlwLCAjZGFya3Rvb2x0aXAtdmRwVXNlZEluZm9Ub29sdGlwIikucmVtb3ZlKCk7dmFyIEU9JCgiLm5ld1ZkcEFjdGlvbnMiKS5oYXNDbGFzcygid2VzdCIpPyJ3ZXN0IjokKCIudXNlZFZkcEFjdGlvbnMiKS5oYXNDbGFzcygid2VzdCIpPwoid2VzdCI6ImVhc3QiOyQoIi52ZHBQYXltZW50VG9vbHRpcCwgLnBheW1lbnRXcmFwcGVyIC52ZHBJbmZvVG9vbHRpcCwgLnBheW1lbnRXcmFwcGVyIC52ZHBVc2VkSW5mb1Rvb2x0aXAiKS5kYXJrVG9vbHRpcCh7Y29udGVudDpCLGdyYXZpdHk6RSx0aGVtZToibGlnaHQiLHRyaWdnZXI6ImhvdmVyIixhbmltYXRpb246ImZsaXBJbiJ9KX19KX0KZnVuY3Rpb24gZ2V0Q3VycmVudFZlaGljbGVQYXRoKGEpe3ZhciBkPVtkMmNtZWRpYS51cmwuc2FuaXRpemUoYS5tYWtlKSxkMmNtZWRpYS51cmwuc2FuaXRpemUoYS5tb2RlbCksZDJjbWVkaWEudXJsLnNhbml0aXplKGEueWVhcildLmpvaW4oIi0iKTsiRU5HTElTSCI9PT0oJCgiI2FjdGl2ZXNpdGVsYW5ndWFnZSIpLnZhbCgpfHwiRlJFTkNIIikmJihkPVtkMmNtZWRpYS51cmwuc2FuaXRpemUoYS5tYWtlKSxkMmNtZWRpYS51cmwuc2FuaXRpemUoYS5tb2RlbCksZDJjbWVkaWEudXJsLnNhbml0aXplKGEueWVhcildLmpvaW4oIi0iKSk7cmV0dXJuIGR9CmZ1bmN0aW9uIHNob3dQYXltZW50cyhhLGQsYyxiKXskKCIjcGF5bWVudENhbGN1bGF0b3JQYXltZW50Q29udGFpbmVyIikuaHRtbCgiIik7JCgiI3BheW1lbnRDYWxjdWxhdG9yUGF5bWVudENvbnRhaW5lcldpdGhUYXhlcyIpLmh0bWwoIiIpO3ZhciBlPSIxIj09JCgiI3BheW1lbnRDYWxjdWxhdG9yUm91bmRQYXltZW50IikudmFsKCk\/MDoyOyIxIj09JCgiI3BheW1lbnRDYWxjdWxhdG9yU3RyaWtlUGF5bWVudCIpLnZhbCgpJiYkKCIjcGF5bWVudENhbGN1bGF0b3JTdHJpa2VQYXltZW50T3B0aW9uIikudmFsKCk7dmFyIGs9W10sbD0kKCIjb2VtQ2VydGlmaWNhdGlvbiIpLnZhbCgpfHwwOyJmaW5hbmNlIj09YVswXS50eXBlJiZhWzBdLmRvd25wYXltZW50PmIubWF4RG93bkZpbmFuY2U\/KCQoIiNwYXltZW50Q2FsY3VsYXRvckRvd25QYXltZW50RXJyb3JNZXNzYWdlIikuc2hvdygpLCQoIiNwYXltZW50Q2FsY3VsYXRvckRvd25QYXltZW50RXJyb3JNZXNzYWdlRmluYW5jZSIpLnNob3coKSwKJCgiI3BheW1lbnRDYWxjdWxhdG9yRG93blBheW1lbnRFcnJvck1lc3NhZ2VMZWFzZSIpLmhpZGUoKSwkKCIjcGF5bWVudENhbGN1bGF0b3JQYXltZW50Q29udGFpbmVyIikuaGlkZSgpLCQoIiNwYXltZW50Q2FsY3VsYXRvclBheW1lbnRDb250YWluZXJXaXRoVGF4ZXMiKS5oaWRlKCksJCgiI3BheW1lbnRDYWxjdWxhdG9yTm90aWNlQ29udGFpbmVyIikucHJvcCgiaGlkZGVuIiwhMCkpOiJsZWFzZSI9PWFbMF0udHlwZSYmYVswXS5kb3ducGF5bWVudD5iLm1heERvd24\/KCQoIiNwYXltZW50Q2FsY3VsYXRvckRvd25QYXltZW50RXJyb3JNZXNzYWdlIikuc2hvdygpLCQoIiNwYXltZW50Q2FsY3VsYXRvckRvd25QYXltZW50RXJyb3JNZXNzYWdlRmluYW5jZSIpLmhpZGUoKSwkKCIjcGF5bWVudENhbGN1bGF0b3JEb3duUGF5bWVudEVycm9yTWVzc2FnZUxlYXNlIikuc2hvdygpLCQoIiNwYXltZW50Q2FsY3VsYXRvclBheW1lbnRDb250YWluZXIiKS5oaWRlKCksJCgiI3BheW1lbnRDYWxjdWxhdG9yUGF5bWVudENvbnRhaW5lcldpdGhUYXhlcyIpLmhpZGUoKSwKJCgiI3BheW1lbnRDYWxjdWxhdG9yTm90aWNlQ29udGFpbmVyIikucHJvcCgiaGlkZGVuIiwhMCkpOigkKCIjcGF5bWVudENhbGN1bGF0b3JEb3duUGF5bWVudEVycm9yTWVzc2FnZSIpLmhpZGUoKSwkKCIjcGF5bWVudENhbGN1bGF0b3JEb3duUGF5bWVudEVycm9yTWVzc2FnZUZpbmFuY2UiKS5oaWRlKCksJCgiI3BheW1lbnRDYWxjdWxhdG9yRG93blBheW1lbnRFcnJvck1lc3NhZ2VMZWFzZSIpLmhpZGUoKSwkKCIjcGF5bWVudENhbGN1bGF0b3JOb3RpY2VDb250YWluZXIiKS5wcm9wKCJoaWRkZW4iLCExKSwkKCIjcGF5bWVudENhbGN1bGF0b3JJbmNsdWRlVGF4Q2hlY2siKS5pcygiOmNoZWNrZWQiKT8oJCgiI3BheW1lbnRDYWxjdWxhdG9yUGF5bWVudENvbnRhaW5lcldpdGhUYXhlcyIpLnNob3coKSwkKCIjcGF5bWVudENhbGN1bGF0b3JQYXltZW50Q29udGFpbmVyIikuaGlkZSgpKTooJCgiI3BheW1lbnRDYWxjdWxhdG9yUGF5bWVudENvbnRhaW5lciIpLnNob3coKSwkKCIjcGF5bWVudENhbGN1bGF0b3JQYXltZW50Q29udGFpbmVyV2l0aFRheGVzIikuaGlkZSgpKSk7CjU8YS5sZW5ndGg\/YS5mb3JFYWNoKGZ1bmN0aW9uKHYpeygwPT12LnRlcm0lMTJ8fDY0PT12LnRlcm18fDQwPT1jJiY1MT09di50ZXJtfHwyMD09YyYmWzI3LDMwLDM5LDQyXS5pbmNsdWRlcyh2LnRlcm0pfHxbMTYsMjFdLmluY2x1ZGVzKGMpfHw0Mj09di50ZXJtJiYxMDE0PT1sfHxbMzAsNDJdLmluY2x1ZGVzKHYudGVybSkmJls0NzE1NjIsNDcxNTYzLDQ3MTU2NF0uaW5jbHVkZXMocGFyc2VJbnQoc2V0dGluZ3Muc3R5bGVpZCkpfHwyNz09di50ZXJtJiYyNz09Y3x8NTI9PXYudGVybSYmMzk9PWMpJiZrLnB1c2godil9KTprPWE7dmFyIGg9e30scj0hMTtrLmZvckVhY2goZnVuY3Rpb24odixwKXtPYmplY3QuaGFzT3duKGgsdi50ZXJtKT9yPSEwOmhbdi50ZXJtXT17fTtoW3YudGVybV1bdi5yYXRlX3R5cGVdPXB9KTt2YXIgcT1bXSx1PSExLHk9ITE7Q29va2llcy5nZXQoInBheW1lbnRDYWxjdWxhdG9yU2VsZWN0ZWRPcHRpb25zIikmJih1PUNvb2tpZXMuZ2V0KCJwYXltZW50Q2FsY3VsYXRvclNlbGVjdGVkT3B0aW9ucyIpLnNwbGl0KCItIilbMV18fAohMSx5PUNvb2tpZXMuZ2V0KCJwYXltZW50Q2FsY3VsYXRvclNlbGVjdGVkT3B0aW9ucyIpLnNwbGl0KCItIilbMF18fCExKTtpZihhWzBdJiYibGVhc2UiPT1hWzBdLnR5cGUmJiJ1bmRlZmluZWQiIT09dHlwZW9mIGFbMF0ua21fYWxsb3dhbmNlKXt2YXIgbj0wPGIuY3VycmVudFBheW1lbnRbMF0ua21fYWxsb3dhbmNlP2IuY3VycmVudFBheW1lbnRbMF0ua21fYWxsb3dhbmNlOjJFNDskKCIjcGF5bWVudENhbGN1bGF0b3JLbUFsbG93YW5jZSIpLnZhbChuKX1sZXQgeD1iLnRvdGFsSW5jZW50aXZlLHQ9cj8kKCIjTE9XRVNUUEFZTUVOVF9MQUJFTCIpLnZhbCgpOiIiLEE9cj8kKCIjTE9XRVNUUkFURV9MQUJFTCIpLnZhbCgpOiIiO3ZhciB6PTA7JCgiI3BheW1lbnRDYWxjdWxhdG9yTm90aWNlQ29udGFpbmVyIC5qcy10ZW1wS21BbGxvd2VkIikucmVtb3ZlKCk7JC5lYWNoKGssZnVuY3Rpb24odixwKXtpZighcS5pbmNsdWRlcyhwLnRlcm0pKXtxLnB1c2gocC50ZXJtKTt2YXIgbT0KInN0YW5kYXJkIj09cC5yYXRlX3R5cGV8fDI+T2JqZWN0LmtleXMoaFtwLnRlcm1dKS5sZW5ndGg\/cDprW2hbcC50ZXJtXS5zdGFuZGFyZF0sZz0yPT1PYmplY3Qua2V5cyhoW3AudGVybV0pLmxlbmd0aD9rW2hbcC50ZXJtXS5zdWJ2ZW50ZWRdOiExLEQ9Mj09T2JqZWN0LmtleXMoaFtwLnRlcm1dKS5sZW5ndGg\/aFtwLnRlcm1dLnN1YnZlbnRlZDohMSxDPXAudGVybSxGPXAuZG93bnBheW1lbnQudG9GaXhlZCgwKSxKPW0ucGF5bWVudC50b0ZpeGVkKGUpLEw9bS5wYXltZW50LnRvRml4ZWQoZSk7Sj1KLnJlcGxhY2UoL1wuKFswLTldKikvLGZ1bmN0aW9uKE8sSyl7cmV0dXJuJzxzdXAgY2xhc3M9InBkIj4nK0srIjwvc3VwPiJ9KTt2YXIgQj1tLnBheW1lbnRXaXRoVGF4ZXMudG9GaXhlZChlKSxFPW0ucGF5bWVudFdpdGhUYXhlcy50b0ZpeGVkKGUpO0I9Qi5yZXBsYWNlKC9cLihbMC05XSopLyxmdW5jdGlvbihPLEspe3JldHVybic8c3VwIGNsYXNzPSJwZCI+JytLKyI8L3N1cD4ifSk7CnZhciBUPW0ucmF0ZSxkYT0icGF5bWVudCIrdjt2PSJwYXltZW50Iit2KyJ3aXRoVGF4ZXMiO0M9JCgiYm9keSIpLmhhc0NsYXNzKCJFTkdMSVNIIik\/IjxzcGFuPiIrQysiPC9zcGFuPiBtb250aCI6IjxzcGFuPiIrQysiPC9zcGFuPiBtb2lzIjtGPWA8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj4ke0Z9PC9zcGFuPmArKCQoImJvZHkiKS5oYXNDbGFzcygiRU5HTElTSCIpPyIgZG93biBwYXltZW50IjoiIGNvbXB0YW50Iik7dmFyIFU9IiIhPSQoIiNkaXNjbGFpbWVyUHJpY2VUZXh0IikudmFsKCk\/IjxkaXY+IiskKCIjZGlzY2xhaW1lclByaWNlVGV4dCIpLnZhbCgpKyI8L2Rpdj4iOiIrdHgiLE09bS5jYWxjdWxhdGVkRWZmZWN0aXZlUmF0ZT9tLmNhbGN1bGF0ZWRFZmZlY3RpdmVSYXRlOjAsUD0iIjswPHBhcnNlRmxvYXQoTSktbS5yYXRlJiYoUCs9Zm9ybWF0RWZmZWN0aXZlUmF0ZVRleHQoTSwiIiwnY2xhc3M9Ii1mczEwIicpKTt2YXIgVj1tLnRvdGFsT2JsaWdhdGlvbkFtb3VudD8KbS50b3RhbE9ibGlnYXRpb25BbW91bnQ6MCxXPSdkYXRhLXRvb2x0aXA9IicrbS50b29sdGlwKyciJyxYPSdkYXRhLXRvb2x0aXA9IicrbS50b29sdGlwV2l0aFRheGVzKyciJyxHLGVhPW51bGwhPShHPW0ubTJkX2ZpbmFuY2UpP0c6eDtHPSJzaW5nbGUtY29sdW1uIjtwPXUmJnU9PXAudGVybSYmeSYmeT09JCgiI3BheW1lbnRDYWxjdWxhdG9yUGF5bWVudFR5cGUgLmFjdGl2ZVBheW1lbnRUeXBlIikuYXR0cigiZGF0YS10eXBlIik\/ImNoZWNrZWQiOiIiO3ZhciBRPSJzbWFsbC1ib3giLEg9IiIsST0iIjtpZihnKXtHPSJsZWZ0LXNlY3Rpb24iO1E9IiI7SD1nLnBheW1lbnQudG9GaXhlZChlKTtsZXQgTz1nLnBheW1lbnQudG9GaXhlZChlKTtIPUgucmVwbGFjZSgvXC4oWzAtOV0qKS8sZnVuY3Rpb24oZmEsUil7cmV0dXJuJzxzdXAgY2xhc3M9InBkIj4nK1IrIjwvc3VwPiJ9KTtJPWcucGF5bWVudFdpdGhUYXhlcy50b0ZpeGVkKGUpO2xldCBLPWcucGF5bWVudFdpdGhUYXhlcy50b0ZpeGVkKGUpOwpJPUkucmVwbGFjZSgvXC4oWzAtOV0qKS8sZnVuY3Rpb24oZmEsUil7cmV0dXJuJzxzdXAgY2xhc3M9InBkIj4nK1IrIjwvc3VwPiJ9KTt2YXIgWT1nLnJhdGUudG9GaXhlZCgyKSxoYT0icGF5bWVudCIrRDtEPSJwYXltZW50IitEKyJ3aXRoVGF4ZXMiO2xldCBOPWcuY2FsY3VsYXRlZEVmZmVjdGl2ZVJhdGU\/Zy5jYWxjdWxhdGVkRWZmZWN0aXZlUmF0ZTowLFM9IiI7MDxwYXJzZUZsb2F0KE4pLWcucmF0ZSYmKFMrPWZvcm1hdEVmZmVjdGl2ZVJhdGVUZXh0KE4sIiIsJ2NsYXNzPSItZnMxMCInKSk7bGV0IFo9Zy50b3RhbE9ibGlnYXRpb25BbW91bnQ\/Zy50b3RhbE9ibGlnYXRpb25BbW91bnQ6MCxhYT0nZGF0YS10b29sdGlwPSInK2cudG9vbHRpcCsnIicsYmE9J2RhdGEtdG9vbHRpcD0iJytnLnRvb2x0aXBXaXRoVGF4ZXMrJyInLGNhPWcubTJkX2ZpbmFuY2U7SD0nXHQ8ZGl2IGlkPSInK2hhKyciIGNsYXNzPSJyaWdodC1zZWN0aW9uIHBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFdyYXBwZXJDb250YWluZXIiICcrCmFhKyc+XHRcdDxkaXYgY2xhc3M9Imxvd2VzdC1yYXRlIj4nK1krJyUgPGkgY2xhc3M9ImZhcyBmYS1pbmZvLWNpcmNsZSBpbmZvLWljb24gcGF5bWVudFRvb2x0aXAgcmlnaHRUb29sdGlwIiAnK2FhKyI+PC9pPiIrUysnPC9kaXY+XHRcdDxkaXYgY2xhc3M9ImFjdHVhbC1wYXltZW50Ij48c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj4nK0grJzwvc3Bhbj48L2Rpdj5cdFx0PGRpdiBjbGFzcz0iZGV0YWlsc1RheCI+JytVKyc8L2Rpdj5cdFx0PGRpdiBjbGFzcz0icmFkaW8tY29udGFpbmVyIj5cdFx0XHQ8aW5wdXRcdFx0XHRcdFx0dHlwZT0icmFkaW8iXHRcdFx0XHRcdG5hbWU9InNlbGVjdGVkUGF5bWVudCJcdFx0XHRcdFx0dmFsdWU9IicrZy50ZXJtKyciXHRcdFx0XHRcdGRhdGEtYmFzZXBheW1lbnQ9IicrZy5wYXltZW50KyciXHRcdFx0XHRcdGRhdGEtcmVhbHBheW1lbnQ9IicrZy5wYXltZW50KyciXHRcdFx0XHRcdGRhdGEtcmF0ZXR5cGU9IicrZy5yYXRlX3R5cGUrJyJcdFx0XHRcdFx0ZGF0YS1kaXNwbGF5ZWRwYXltZW50PSInKwpPKyciXHRcdFx0XHRcdGRhdGEtcmVzaWR1YWw9IicrZy5yZXNpZHVhbCsnIlx0XHRcdFx0XHRkYXRhLXRvdGFsaW50ZXJlc3Q9IicrZy50b3RhbEludGVyZXN0KyciXHRcdFx0XHRcdGRhdGEtbHV4ZVRheEFtb3VudD0iJytnLmx1eGVUYXhBbW91bnQrJyJcdFx0XHRcdFx0ZGF0YS1lZmZlY3RpdmVSYXRlPSInK04rJyJcdFx0XHRcdFx0ZGF0YS10b3RhbENvc3Q9IicrWisnIlx0XHRcdFx0XHRkYXRhLXJhdGU9IicrZy5yYXRlKyciICAgICAgICAgICAgICAgICBkYXRhLXJlc2lkdWFsPSInK2cucmVzaWR1YWxWYWx1ZSsnIiAgICAgICAgICAgICAgICAgZGF0YS10b3RhbGluY2VudGl2ZT0iJytjYSsnIiAgICAgICAgICAgICAgICAgZGF0YS1nc3Q9IjAiICAgICAgICAgICAgICAgICBkYXRhLWhzdD0iMCIgICAgICAgICAgICAgICAgIGRhdGEtcHN0PSIwIlx0XHRcdFx0Plx0XHRcdDxsYWJlbD4nK0ErIjwvbGFiZWw+XHRcdDwvZGl2Plx0PC9kaXY+IjtJPSdcdDxkaXYgaWQ9IicrRCsKJyIgY2xhc3M9InJpZ2h0LXNlY3Rpb24gcGF5bWVudENhbGN1bGF0b3JQYXltZW50V3JhcHBlckNvbnRhaW5lciIgJytiYSsnPlx0XHQ8ZGl2IGNsYXNzPSJsb3dlc3QtcmF0ZSI+JytZKyclIDxpIGNsYXNzPSJmYXMgZmEtaW5mby1jaXJjbGUgaW5mby1pY29uIHBheW1lbnRUb29sdGlwIHJpZ2h0VG9vbHRpcCIgJytiYSsiPjwvaT4iK1MrJzwvZGl2Plx0XHQ8ZGl2IGNsYXNzPSJhY3R1YWwtcGF5bWVudCI+PHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+JytJKyc8L3NwYW4+PC9kaXY+XHRcdDxkaXYgY2xhc3M9InJhZGlvLWNvbnRhaW5lciI+XHRcdFx0PGlucHV0XHRcdFx0XHRcdHR5cGU9InJhZGlvIlx0XHRcdFx0XHRuYW1lPSJzZWxlY3RlZFBheW1lbnRXaXRoVGF4ZXMiXHRcdFx0XHRcdHZhbHVlPSInK2cudGVybSsnIlx0XHRcdFx0XHRkYXRhLWJhc2VwYXltZW50PSInK2cucGF5bWVudCsnIlx0XHRcdFx0XHRkYXRhLXJlYWxwYXltZW50PSInK2cucGF5bWVudFdpdGhUYXhlcysKJyJcdFx0XHRcdFx0ZGF0YS1yYXRldHlwZT0iJytnLnJhdGVfdHlwZSsnIlx0XHRcdFx0XHRkYXRhLWRpc3BsYXllZHBheW1lbnQ9IicrSysnIlx0XHRcdFx0XHRkYXRhLXJlc2lkdWFsPSInK2cucmVzaWR1YWxXaXRoVGF4ZXMrJyJcdFx0XHRcdFx0ZGF0YS10b3RhbGludGVyZXN0PSInK2cudG90YWxJbnRlcmVzdFdpdGhUYXhlcysnIlx0XHRcdFx0XHRkYXRhLWx1eGVUYXhBbW91bnQ9IicrZy5sdXhlVGF4QW1vdW50KyciXHRcdFx0XHRcdGRhdGEtZWZmZWN0aXZlUmF0ZT0iJytOKyciXHRcdFx0XHRcdGRhdGEtdG90YWxDb3N0PSInK1orJyJcdFx0XHRcdFx0ZGF0YS1yYXRlPSInK2cucmF0ZSsnIiAgICAgICAgICAgICAgICAgZGF0YS1yZXNpZHVhbD0iJytnLnJlc2lkdWFsVmFsdWVXaXRoVGF4ZXMrJyIgICAgICAgICAgICAgICAgIGRhdGEtdG90YWxpbmNlbnRpdmU9IicrY2ErJyIgICAgICAgICAgICAgICAgIGRhdGEtZ3N0PSInK2cuZ3N0KyciICAgICAgICAgICAgICAgICBkYXRhLWhzdD0iJysKZy5oc3QrJyIgICAgICAgICAgICAgICAgIGRhdGEtcHN0PSInK2cucHN0KyciXHRcdFx0XHQ+XHRcdFx0PGxhYmVsPicrQSsiPC9sYWJlbD5cdFx0PC9kaXY+XHQ8L2Rpdj4ifWc9JzxkaXYgY2xhc3M9ImZpbmFuY2luZy1vcHRpb24gcGF5bWVudENhbGN1bGF0b3JQYXltZW50V3JhcHBlciAnK1ErJyI+XHQ8ZGl2IGNsYXNzPSJ0ZXJtIj4nK0MrJzwvZGl2Plx0PGRpdiBjbGFzcz0iZG93bi1wYXltZW50Ij4nK0YrJzwvZGl2Plx0PGRpdiBjbGFzcz0ic2VwYXJhdG9yUGF5Ij48L2Rpdj5cdDxkaXYgY2xhc3M9ImNvbnRlbnQtY29udGFpbmVyIj5cdFx0PGRpdiBpZD0iJytkYSsnIiBjbGFzcz0iJytHKycgcGF5bWVudENhbGN1bGF0b3JQYXltZW50V3JhcHBlckNvbnRhaW5lciIgJytXKyc+XHRcdFx0PGRpdiBjbGFzcz0ibG93ZXN0LXBheW1lbnQiPjxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPicrSisnPC9zcGFuPiA8aSBjbGFzcz0iZmFzIGZhLWluZm8tY2lyY2xlIGluZm8taWNvbiBwYXltZW50VG9vbHRpcCBsZWZ0VG9vbHRpcCIgJysKVysnPjwvaT48L2Rpdj5cdFx0XHQ8ZGl2IGNsYXNzPSJkZXRhaWxzVGF4Ij4nK1UrJzwvZGl2Plx0XHRcdDxkaXYgY2xhc3M9ImFjdHVhbC1yYXRlIj4nK1QrIiUgIitQKyc8L2Rpdj5cdFx0XHQ8ZGl2IGNsYXNzPSJyYWRpby1jb250YWluZXIiPlx0XHRcdFx0PGlucHV0IFx0XHRcdFx0XHR0eXBlPSJyYWRpbyJcdFx0XHRcdFx0JytwKydcdFx0XHRcdFx0bmFtZT0ic2VsZWN0ZWRQYXltZW50Ilx0XHRcdFx0XHR2YWx1ZT0iJyttLnRlcm0rJyJcdFx0XHRcdFx0ZGF0YS1iYXNlcGF5bWVudD0iJyttLnBheW1lbnQrJyJcdFx0XHRcdFx0ZGF0YS1yZWFscGF5bWVudD0iJyttLnBheW1lbnQrJyJcdFx0XHRcdFx0ZGF0YS1yYXRldHlwZT0iJyttLnJhdGVfdHlwZSsnIlx0XHRcdFx0XHRkYXRhLWRpc3BsYXllZHBheW1lbnQ9IicrTCsnIlx0XHRcdFx0XHRkYXRhLXJlc2lkdWFsPSInK20ucmVzaWR1YWwrJyJcdFx0XHRcdFx0ZGF0YS10b3RhbGludGVyZXN0PSInK20udG90YWxJbnRlcmVzdCsKJyJcdFx0XHRcdFx0ZGF0YS1sdXhlVGF4QW1vdW50PSInK20ubHV4ZVRheEFtb3VudCsnIlx0XHRcdFx0XHRkYXRhLWVmZmVjdGl2ZVJhdGU9IicrTSsnIlx0XHRcdFx0XHRkYXRhLXRvdGFsQ29zdD0iJytWKyciXHRcdFx0XHRcdGRhdGEtcmF0ZT0iJyttLnJhdGUrJyIgICAgICAgICAgICAgICAgIGRhdGEtcmVzaWR1YWw9IicrbS5yZXNpZHVhbFZhbHVlKyciICAgICAgICAgICAgICAgICBkYXRhLXRvdGFsaW5jZW50aXZlPSInK2VhKyciICAgICAgICAgICAgICAgICBkYXRhLWdzdD0iMCIgICAgICAgICAgICAgICAgIGRhdGEtaHN0PSIwIiAgICAgICAgICAgICAgICAgZGF0YS1wc3Q9IjAiXHRcdFx0XHQ+XHRcdFx0XHQ8bGFiZWw+Jyt0KyI8L2xhYmVsPlx0XHRcdDwvZGl2Plx0XHQ8L2Rpdj4iK0grIlx0PC9kaXY+PC9kaXY+IjtCPSc8ZGl2IGNsYXNzPSJmaW5hbmNpbmctb3B0aW9uIHBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFdyYXBwZXIgJytRKyciPlx0PGRpdiBjbGFzcz0idGVybSI+JysKQysnPC9kaXY+XHQ8ZGl2IGNsYXNzPSJkb3duLXBheW1lbnQiPicrRisnPC9kaXY+XHQ8ZGl2IGNsYXNzPSJzZXBhcmF0b3JQYXkiPjwvZGl2Plx0PGRpdiBjbGFzcz0iY29udGVudC1jb250YWluZXIiPlx0XHQ8ZGl2IGlkPSInK3YrJyIgY2xhc3M9IicrRysnIHBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFdyYXBwZXJDb250YWluZXIiICcrWCsnPlx0XHRcdDxkaXYgY2xhc3M9Imxvd2VzdC1wYXltZW50Ij48c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj4nK0IrJzwvc3Bhbj4gPGkgY2xhc3M9ImZhcyBmYS1pbmZvLWNpcmNsZSBpbmZvLWljb24gcGF5bWVudFRvb2x0aXAgbGVmdFRvb2x0aXAiICcrWCsnPjwvaT48L2Rpdj5cdFx0XHQ8ZGl2IGNsYXNzPSJhY3R1YWwtcmF0ZSI+JytUKyIlICIrUCsnPC9kaXY+XHRcdFx0PGRpdiBjbGFzcz0icmFkaW8tY29udGFpbmVyIj5cdFx0XHRcdDxpbnB1dCBcdFx0XHRcdFx0dHlwZT0icmFkaW8iXHRcdFx0XHRcdCcrcCsnXHRcdFx0XHRcdG5hbWU9InNlbGVjdGVkUGF5bWVudFdpdGhUYXhlcyJcdFx0XHRcdFx0dmFsdWU9IicrCm0udGVybSsnIlx0XHRcdFx0XHRkYXRhLWJhc2VwYXltZW50PSInK20ucGF5bWVudCsnIlx0XHRcdFx0XHRkYXRhLXJlYWxwYXltZW50PSInK20ucGF5bWVudFdpdGhUYXhlcysnIlx0XHRcdFx0XHRkYXRhLXJhdGV0eXBlPSInK20ucmF0ZV90eXBlKyciXHRcdFx0XHRcdGRhdGEtZGlzcGxheWVkcGF5bWVudD0iJytFKyciXHRcdFx0XHRcdGRhdGEtcmVzaWR1YWw9IicrbS5yZXNpZHVhbCsnIlx0XHRcdFx0XHRkYXRhLXRvdGFsaW50ZXJlc3Q9IicrbS50b3RhbEludGVyZXN0KyciXHRcdFx0XHRcdGRhdGEtbHV4ZVRheEFtb3VudD0iJyttLmx1eGVUYXhBbW91bnQrJyJcdFx0XHRcdFx0ZGF0YS1lZmZlY3RpdmVSYXRlPSInK00rJyJcdFx0XHRcdFx0ZGF0YS10b3RhbENvc3Q9IicrVisnIlx0XHRcdFx0XHRkYXRhLXJhdGU9IicrbS5yYXRlKyciICAgICAgICAgICAgICAgICBkYXRhLXJlc2lkdWFsPSInK20ucmVzaWR1YWxWYWx1ZVdpdGhUYXhlcysnIiAgICAgICAgICAgICAgICAgZGF0YS10b3RhbGluY2VudGl2ZT0iJysKeCsnIiAgICAgICAgICAgICAgICAgZGF0YS1nc3Q9IicrbS5nc3QrJyIgICAgICAgICAgICAgICAgIGRhdGEtaHN0PSInK20uaHN0KyciICAgICAgICAgICAgICAgICBkYXRhLXBzdD0iJyttLnBzdCsnIlx0XHRcdFx0Plx0XHRcdFx0PGxhYmVsPicrdCsiPC9sYWJlbD5cdFx0XHQ8L2Rpdj5cdFx0PC9kaXY+IitJKyJcdDwvZGl2PjwvZGl2PiI7MD09bS5wYXltZW50V2l0aFRheGVzJiYoQj0iIik7JCgiI3BheW1lbnRDYWxjdWxhdG9yUGF5bWVudENvbnRhaW5lciIpLmFwcGVuZChnKTskKCIjcGF5bWVudENhbGN1bGF0b3JQYXltZW50Q29udGFpbmVyV2l0aFRheGVzIikuYXBwZW5kKEIpO3orK319KTtuPSQoJyNwYXltZW50Q2FsY3VsYXRvckNvbnRhaW5lciBpbnB1dFtuYW1lPSJzZWxlY3RlZFBheW1lbnQiXVtjaGVja2VkXScpLmxlbmd0aD8kKCcjcGF5bWVudENhbGN1bGF0b3JDb250YWluZXIgaW5wdXRbbmFtZT0ic2VsZWN0ZWRQYXltZW50Il1bY2hlY2tlZF0nKVswXTokKCcjcGF5bWVudENhbGN1bGF0b3JDb250YWluZXIgaW5wdXRbbmFtZT0ic2VsZWN0ZWRQYXltZW50Il0nKS5sYXN0KClbMF07CiQobikucHJvcCgiY2hlY2tlZCIsImNoZWNrZWQiKS50cmlnZ2VyKCJjaGFuZ2UiKTtuPXBheW1lbnRDYWxjdWxhdG9yRm9ybWF0TnVtYmVyKGFbMF0udG90YWwudG9GaXhlZCgwKSk7JCgiI3BheW1lbnRDYWxjdWxhdG9yTm90aWNlVG90YWwiKS50ZXh0KG4pOyJsZWFzZSI9PWFbMF0udHlwZT8obj1wYXltZW50Q2FsY3VsYXRvckZvcm1hdE51bWJlcihhWzBdLmttX2FsbG93YW5jZS50b0ZpeGVkKDApKSwkKCIjcGF5bWVudENhbGN1bGF0b3JOb3RpY2VLTSIpLnRleHQobiksJCgiLnBheW1lbnRDYWxjdWxhdG9yTm90aWNlQ2FzaCIpLnByb3AoImhpZGRlbiIsITApLCQoIiNwYXltZW50Q2FsY3VsYXRvck5vdGljZUxlYXNlIikuc2hvdygpLCQoIi5wYXltZW50Q2FsY3VsYXRvck5vdGljZUZpbmFuY2UiKS5oaWRlKCkpOigkKCIjcGF5bWVudENhbGN1bGF0b3JOb3RpY2VMZWFzZSIpLmhpZGUoKSwkKCIucGF5bWVudENhbGN1bGF0b3JOb3RpY2VDYXNoIikucHJvcCgiaGlkZGVuIiwhMCksCiQoIi5wYXltZW50Q2FsY3VsYXRvck5vdGljZUZpbmFuY2UiKS5zaG93KCkpOyQoIi5wYXltZW50Q2FsY3VsYXRvckNvbW1vbk5vdGljZSIpLnNob3coKTskKCIjcGF5bWVudENhbGN1bGF0b3JJbmNsdWRlVGF4Q2hlY2siKS5pcygiOmNoZWNrZWQiKT8oJCgiLnBheW1lbnRDYWxjdWxhdG9yVGF4ZUluY2x1ZGVkIikuc2hvdygpLCQoIi5wYXltZW50Q2FsY3VsYXRvclRheGVOb3RJbmNsdWRlZCIpLmhpZGUoKSk6KCQoIi5wYXltZW50Q2FsY3VsYXRvclRheGVJbmNsdWRlZCIpLmhpZGUoKSwkKCIucGF5bWVudENhbGN1bGF0b3JUYXhlTm90SW5jbHVkZWQiKS5zaG93KCkpOzA8ZD8oZD1wYXltZW50Q2FsY3VsYXRvckZvcm1hdE51bWJlcihkLnRvRml4ZWQoMCkpLCQoIiNwYXltZW50Q2FsY3VsYXRvck5vdGljZUZlZXMiKS50ZXh0KGQpLCQoIiNwYXltZW50Q2FsY3VsYXRvck5vdGljZUluY2x1ZGVkRmVlcyIpLnNob3coKSk6JCgiI3BheW1lbnRDYWxjdWxhdG9yTm90aWNlSW5jbHVkZWRGZWVzIikuaGlkZSgpOwokKCIjcGF5bWVudENhbGN1bGF0b3JDdXN0b21GZWVzICNwYXltZW50Q2FsY3VsYXRvckN1c3RvbUZlZXNMaXN0IikuZW1wdHkoKTtpZihiLmN1c3RvbUZlZXMubGVuZ3RoKXt2YXIgZj0iPHVsPiI7JC5lYWNoKGIuY3VzdG9tRmVlcyxmdW5jdGlvbih2LHApe3Y9ZXNjYXBlSFRNTCgkKCJib2R5IikuaGFzQ2xhc3MoIkVOR0xJU0giKT9hdG9iKHAuZGVzY0VuKTphdG9iKHAuZGVzY0ZyKSk7cD1wYXltZW50Q2FsY3VsYXRvckZvcm1hdE51bWJlcihwLmFtb3VudC50b0ZpeGVkKDApKTtwPUQyQ1V0aWxzLkZvcm1hdC50b1ByaWNlKHApO2YrPSI8bGk+Iit2KyIgOiAiK3ArIjwvbGk+In0pO2YrPSI8L3VsPiI7JCgiI3BheW1lbnRDYWxjdWxhdG9yQ3VzdG9tRmVlcyAjcGF5bWVudENhbGN1bGF0b3JDdXN0b21GZWVzTGlzdCIpLmFwcGVuZChmKTskKCIjcGF5bWVudENhbGN1bGF0b3JDdXN0b21GZWVzIikuc2hvdygpfWVsc2UgJCgiI3BheW1lbnRDYWxjdWxhdG9yQ3VzdG9tRmVlcyIpLmhpZGUoKTsKZD0ibGVhc2UiPT1hWzBdLnR5cGU\/KCQoIiNwYXltZW50Q2FsY3VsYXRvckxlYXNlVGV4dCIpLnZhbCgpfHwiIikudG9Mb3dlckNhc2UoKTooJCgiI3BheW1lbnRDYWxjdWxhdG9yRmluYW5jZVRleHQiKS52YWwoKXx8IiIpLnRvTG93ZXJDYXNlKCk7JCgiI3BheW1lbnRDYWxjdWxhdG9yTm90aWNlVHlwZSIpLnRleHQoZCk7MDxhWzBdLnJlYmF0ZT8oYT0kKCJib2R5IikuaGFzQ2xhc3MoIkVOR0xJU0giKT8iJCIrYVswXS5yZWJhdGU6YVswXS5yZWJhdGUrIiAkIiwkKCIjcGF5bWVudENhbGN1bGF0b3JOb3RpY2VSZWJhdGUiKS50ZXh0KGEpLCQoIiNwYXltZW50Q2FsY3VsYXRvck5vdGljZUluY2x1ZGVkUmViYXRlcyIpLnNob3coKSk6JCgiI3BheW1lbnRDYWxjdWxhdG9yTm90aWNlSW5jbHVkZWRSZWJhdGVzIikuaGlkZSgpO2lmKGIuY29uZGl0aW9uYWxSZWJhdGVzJiYwPGIuY29uZGl0aW9uYWxSZWJhdGVzLmxlbmd0aCl7dmFyIHc9IiI7Yi5jb25kaXRpb25hbFJlYmF0ZXMuZm9yRWFjaChmdW5jdGlvbih2KXt2YXIgcD0KcGF5bWVudENhbGN1bGF0b3JGb3JtYXROdW1iZXIodi5hbW91bnQudG9TdHJpbmcoKSk7dys9IjxsaT4iK3YubmFtZSsiOiAtIitEMkNVdGlscy5Gb3JtYXQudG9QcmljZShwKSsiPC9saT4ifSk7dyYmJCgiI3BheW1lbnRDYWxjdWxhdG9yTm90aWNlSW5jbHVkZWRSZWJhdGVzIikuYWZ0ZXIoJzxkaXYgaWQ9InBheW1lbnRDYWxjdWxhdG9yTm90aWNlQ29uZGl0aW9uYWxSZWJhdGVzIiBjbGFzcz0icGF5bWVudENhbGN1bGF0b3JOb3RpY2VTZWN0aW9uIj48c3Ryb25nPicrKCQoImJvZHkiKS5oYXNDbGFzcygiRU5HTElTSCIpPyJTZWxlY3RlZCBDb25kaXRpb25hbCBSZWJhdGVzOiI6IlJhYmFpcyBjb25kaXRpb25uZWxzIHPDg8KpbGVjdGlvbm7Dg8KpczoiKSsiPC9zdHJvbmc+PHVsPiIrdysiPC91bD48L2Rpdj4iKX1lbHNlICQoIiNwYXltZW50Q2FsY3VsYXRvck5vdGljZUNvbmRpdGlvbmFsUmViYXRlcyIpLnJlbW92ZSgpO3NldFBheW1lbnRDYWxjdWxhdG9yUG9wdXBUb29sdGlwKCl9CmZ1bmN0aW9uIHNldFBheW1lbnRDYWxjdWxhdG9yUG9wdXBUb29sdGlwKCl7aWYoIjEiPT0kKCIjaXNtb2JpbGUiKS52YWwoKSkkKCIjcGF5bWVudENhbGN1bGF0b3JDb250YWluZXIgLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFdyYXBwZXIgLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFdyYXBwZXJDb250YWluZXIgLnBheW1lbnRUb29sdGlwIikuZWFjaChmdW5jdGlvbihkKXt0cnl7dmFyIGM9JCh0aGlzKS5hdHRyKCJkYXRhLXRvb2x0aXAiKSxiPSQodGhpcykuaGFzQ2xhc3MoImxlZnRUb29sdGlwIik\/Indlc3QiOiJlYXN0IjskKHRoaXMpLmRhcmtUb29sdGlwKHtjb250ZW50OmMsZ3Jhdml0eTpiLHRoZW1lOiJsaWdodCIsdHJpZ2dlcjoiY2xpY2siLGFuaW1hdGlvbjoiZmxpcEluIn0pfWNhdGNoKGUpe319KTtlbHNle2Zvcih2YXIgYT0wOzU+YTthKyspJCgiI2Rhcmt0b29sdGlwLXBheW1lbnQiK2EpLmxlbmd0aCYmKCQoIiNkYXJrdG9vbHRpcC1wYXltZW50IithKS5yZW1vdmUoKSwKJCgiI2Rhcmt0b29sdGlwLXBheW1lbnQiK2ErIndpdGhUYXhlcyIpLnJlbW92ZSgpKTskKCIjcGF5bWVudENhbGN1bGF0b3JDb250YWluZXIgLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFdyYXBwZXIgLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFdyYXBwZXJDb250YWluZXIiKS5lYWNoKGZ1bmN0aW9uKCl7dHJ5e3ZhciBkPSQodGhpcykuYXR0cigiZGF0YS10b29sdGlwIiksYz0kKHRoaXMpLmZpbmQoIi5wYXltZW50VG9vbHRpcCIpLGI9ImVhc3QiO2MuaGFzQ2xhc3MoImxlZnRUb29sdGlwIik\/Yj0id2VzdCI6Yy5oYXNDbGFzcygicmlnaHRUb29sdGlwIikmJihiPSJlYXN0Iik7JCh0aGlzKS5kYXJrVG9vbHRpcCh7Y29udGVudDpkLGdyYXZpdHk6Yix0aGVtZToibGlnaHQiLHRyaWdnZXI6ImhvdmVyIn0pfWNhdGNoKGUpe319KX19CmZ1bmN0aW9uIHNldFBheW1lbnRDYWxjdWxhdG9yVmVoaWNsZUluZm8oYSl7dmFyIGQ9Z2V0UG9wQ29udGFpblNldHRpbmdzKCk7ZC52ZWhpY2xlSW5mbz1hOyQoIiNwYXltZW50Q2FsY3VsYXRvclZlaGljbGVJbmZvWWVhciIpLnRleHQoYS55ZWFyKTt2YXIgYz1hLkNGTW9kZWxOYW1lfHxhLm1vZGVsLGI9YS5tYWtlLnRvVXBwZXJDYXNlKCkrIiAiK2MudG9VcHBlckNhc2UoKTsiTUVSQ0VERVMtQkVOWiIhPWEubWFrZS50b1VwcGVyQ2FzZSgpfHwvXGJzcHJpbnRlclxiL2kudGVzdChjKXx8KGI9YS5tYWtlLnRvVXBwZXJDYXNlKCkpO2lmKCJidWlsZGFuZHByaWNlLmh0bWwiPT0kKCIjUEFHRUlEIikudmFsKCl8fGQuaGFzT3duUHJvcGVydHkoIm5vVHJpbVNlbGVjdCIpJiYidHJ1ZSI9PWQubm9UcmltU2VsZWN0fHwidXNlZGNhcnMuaHRtbCI9PSQoIiNQQUdFSUQiKS52YWwoKXx8ImNhcmRldGFpbC5odG1sIj09JCgiI1BBR0VJRCIpLnZhbCgpKWIrPSIgIithLkNGU3R5bGVOYW1lLnRvVXBwZXJDYXNlKCksCiQoIiNwYXltZW50Q2FsY3VsYXRvclRyaW1TZWxlY3QiKS5oaWRlKCk7JCgiI3BheW1lbnRDYWxjdWxhdG9yVmVoaWNsZUluZm9NYWtlTW9kZWxUcmltIikudGV4dChiKTtjPWEubWFrZSsifHx8IitjKyJ8fHwiK2EueWVhcjtkLmhhc093blByb3BlcnR5KCJzdG9ja051bWJlciIpJiYoYys9Inx8fChTdG9jazoiK2Quc3RvY2tOdW1iZXIrIikiKTtDb29raWVzLnNldCgibGFzdHZpZXdlZHZlaGljbGUiLGMsbnVsbCwiLyIpO2EuaW1hZ2VzWzBdJiYoYz0oYS5pbWFnZXNbMF0rIiIpLnJlcGxhY2UoL2h0dHAocz8pOlwvXC9tZWRpYS4oY2hyb21lZGF0YXxjYXJib29rKS5jb21cL01lZGlhR2FsbGVyeVwvbWVkaWFcLy8sIi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcnMvY2IlQ0IvJU1BS0UvJU1PREVMLyVZRUFSLyIpLnJlcGxhY2UoIiVDQiIsTWF0aC5yb3VuZCg5OSpNYXRoLnJhbmRvbSgpKSsxRTUpLnJlcGxhY2UoIiVNQUtFIixhLm1ha2UucmVwbGFjZSgiLSIsIl8iKSkucmVwbGFjZSgiJU1PREVMIiwKYS5tb2RlbC5yZXBsYWNlKCItIiwiXyIpKS5yZXBsYWNlKCIlWUVBUiIsYS55ZWFyKSwkKCIjcGF5bWVudENhbGN1bGF0b3JWZWhpY2xlSW1hZ2VEaXYiKS5odG1sKCc8aW1nIGlkPSJwYXltZW50Q2FsY3VsYXRvclZlaGljbGVJbWFnZSIgc3JjPSInK2MucmVwbGFjZSgvJi9nLCImYW1wOyIpLnJlcGxhY2UoLzwvZywiJmx0OyIpLnJlcGxhY2UoLz4vZywiJmd0OyIpLnJlcGxhY2UoLyIvZywiJnF1b3Q7IikucmVwbGFjZSgvJy9nLCImIzAzOTsiKSsnIiBjbGFzcz0icGF5bWVudENhbGN1bGF0b3JWZWhpY2xlSW1hZ2UiPicpKTskKCIjcGF5bWVudENhbGN1bGF0b3JUcmltU2VsZWN0IG9wdGlvbiIpLnJlbW92ZSgpOygidW5kZWZpbmVkIiE9dHlwZW9mIG5ld2NhckRldGFpbHM\/bmV3Y2FyRGV0YWlscy5hbGxTdHlsZXM6YS5tb2RlbEpTT04uc3R5bGVzKS5mb3JFYWNoKGZ1bmN0aW9uKGUpeyQoIiNwYXltZW50Q2FsY3VsYXRvclRyaW1TZWxlY3QiKS5hcHBlbmQobmV3IE9wdGlvbihlLkNGU3R5bGVOYW1lLAplLmlkKSl9KTskKCIjcGF5bWVudENhbGN1bGF0b3JUcmltU2VsZWN0IikudmFsKGQuc3R5bGVpZCk7Y2FsY1VwZGF0ZVBheW1lbnRJbmZvKCl9CmZ1bmN0aW9uIGNhbGNVcGRhdGVTdHlsZUluZm8oYSl7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBuZXdjYXJEZXRhaWxzJiZuZXdjYXJEZXRhaWxzLmFjdGl2ZU1vZGVsKXt2YXIgZD1uZXdjYXJEZXRhaWxzLmFsbFN0eWxlcy5maWx0ZXIoZnVuY3Rpb24oYil7cmV0dXJuIGIuaWQ9PWF9KVswXTtkPWR8fG5ld2NhckRldGFpbHMuYWN0aXZlTW9kZWwuc3R5bGVzWzBdO2QubWFrZT1uZXdjYXJEZXRhaWxzLmFjdGl2ZU1vZGVsLm1ha2U7ZC5tb2RlbD1uZXdjYXJEZXRhaWxzLmFjdGl2ZU1vZGVsLm1vZGVsO2QuaW1hZ2VzPW5ld2NhckRldGFpbHMuYWN0aXZlTW9kZWwuaW1hZ2VzO3NldFBheW1lbnRDYWxjdWxhdG9yVmVoaWNsZUluZm8oZCl9ZWxzZXtkPXNldHRpbmdzLmhhc093blByb3BlcnR5KCJzdG9ja051bWJlciIpP3NldHRpbmdzLnN0b2NrTnVtYmVyOiIiO3ZhciBjPSgkKCJib2R5IikuaGFzQ2xhc3MoIkVOR0xJU0giKT8iL2VuIjoiL2ZyIikrIi9hamF4L2dldFZlaGljbGVKc29uQnlTdHlsZUlEP3dzd2lkdGg9MCI7CiQuYWpheCh7dXJsOmMsdHlwZToiUE9TVCIsZGF0YVR5cGU6IkpTT04iLGRhdGE6e3N0eWxlaWQ6YSx2ZWhpY2xlaWQ6ZH0sc3VjY2VzczpmdW5jdGlvbihiKXtzZXRQYXltZW50Q2FsY3VsYXRvclZlaGljbGVJbmZvKGIpfX0pfX0KZnVuY3Rpb24gcGF5bWVudENhbGN1bGF0b3JQb3B1cEluaXQoKXt2YXIgYT1nZXRQb3BDb250YWluU2V0dGluZ3MoKTskKCIjcGF5bWVudENhbGN1bGF0b3JQYXltZW50VHlwZSBsaSIpLnJlbW92ZUNsYXNzKCJhY3RpdmVQYXltZW50VHlwZSIpOyQoIiNwYXltZW50Q2FsY3VsYXRvcklzTmV3UG9wdXBFbmFibGVkIikudmFsKCk7IiIhPWEucHJvbW9CdXR0b25UZXh0JiYiMSIhPT1Db29raWVzLmdldCgicG9wdXBGb3JtRmlsbGVkIikmJiQoIiNwYXltZW50Q2FsY3VsYXRvcklzTmV3UG9wdXBFbmFibGVkIikudmFsKCk\/KC0xIT09YS5wcm9tb0J1dHRvblRleHQuaW5kZXhPZigiPGJyIikmJihhLnByb21vQnV0dG9uVGV4dD1hLnByb21vQnV0dG9uVGV4dC5zdWJzdHIoMCxhLnByb21vQnV0dG9uVGV4dC5pbmRleE9mKCI8YnIiKSkpLCQoIiNwYXltZW50Q2FsY3VsYXRvckNhbGxUb0FjdGlvbkNvbnRhaW5lciBhIikuaHRtbChhLnByb21vQnV0dG9uVGV4dCksJCgiI3BheW1lbnRDYWxjdWxhdG9yQ2FsbFRvQWN0aW9uQ29udGFpbmVyIikuc2hvdygpKToKJCgiI3BheW1lbnRDYWxjdWxhdG9yQ2FsbFRvQWN0aW9uQ29udGFpbmVyIikuaGlkZSgpO2xldCBkPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNwYXltZW50Q2FsY3VsYXRvclBheW1lbnRUeXBlIGxpW2RhdGEtdHlwZT0ibGVhc2luZyJdJyksYz1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjcGF5bWVudENhbGN1bGF0b3JQYXltZW50VHlwZSBsaVtkYXRhLXR5cGU9ImZpbmFuY2luZyJdJyk7ZC5oaWRkZW49IjEiPT0oYS5ub01vdG9pbnNpZ2h0TGVhc2VQYXltZW50c3x8ITEpO2MuaGlkZGVuPSIxIj09KGEubm9Nb3RvaW5zaWdodEZpbmFuY2VQYXltZW50c3x8ITEpO2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNwYXltZW50Q2FsY3VsYXRvckNvbnRhaW5lciAuY2FsYy1wYXltZW50LWNhc2giKS5oaWRkZW49ITA7c2V0VGltZW91dCgoKT0+e2lmKF9sb2NhbFN0b3JhZ2VHZXQoInRyYWRlaW5fc3VibWl0X2RhdGEiKSYmIiI9PSQoIiNwYXltZW50VHJhZGVJblZhbHVlIikudmFsKCkpe3ZhciBiPQpKU09OLnBhcnNlKF9sb2NhbFN0b3JhZ2VHZXQoInRyYWRlaW5fc3VibWl0X2RhdGEiKSk7JCgiI3BheW1lbnRUcmFkZUluVmFsdWUiKS52YWwoYi52YWx1ZSk7X2xvY2FsU3RvcmFnZUdldCgidHJhZGVpbl9jdXJyZW50X3ZhbHVlIikmJihiPUpTT04ucGFyc2UoX2xvY2FsU3RvcmFnZUdldCgidHJhZGVpbl9jdXJyZW50X3ZhbHVlIikpLCQoIiNwYXltZW50VHJhZGVJblZhbHVlIikuYXR0cigiZGF0YS1jdXJyZW50IixiLnZhbHVlKSl9aWYoIiIhPSQoIiNwYXltZW50VHJhZGVJblZhbHVlIikudmFsKCkmJjA8JCgiI3BheW1lbnRUcmFkZUluVmFsdWUiKS52YWwoKSl7Yj1wYXJzZUludCgkKCIjcGF5bWVudFRyYWRlSW5WYWx1ZSIpLnZhbCgpKXx8MDt2YXIgZT1wYXJzZUludCgkKCIjcGF5bWVudFRyYWRlSW5WYWx1ZSIpLmF0dHIoImRhdGEtY3VycmVudCIpKXx8YjskKCIucGF5bWVudENhbGN1bGF0b3JUcmFkZUluVmFsdWUiKS52YWwoZSk7JCgiLnBheW1lbnRDYWxjdWxhdG9yVHJhZGVJblZhbHVlIikuYXR0cigibWF4IiwKYik7JCgiLnBheW1lbnRDYWxjdWxhdG9yVHJhZGVJbkJ1dHRvbiIpLmhpZGUoKTskKCIucGF5bWVudENhbGN1bGF0b3JUcmFkZUluVmFsdWUiKS5zaG93KCl9ZWxzZSAkKCIucGF5bWVudENhbGN1bGF0b3JUcmFkZUluVmFsdWUiKS52YWwoIiIpLCQoIi5wYXltZW50Q2FsY3VsYXRvclRyYWRlSW5CdXR0b24iKS5zaG93KCksJCgiLnBheW1lbnRDYWxjdWxhdG9yVHJhZGVJblZhbHVlIikuaGlkZSgpOyQoIi5wYXltZW50Q2FsY3VsYXRvclRyYWRlSW5WYWx1ZSIpLnRyaWdnZXIoImJsdXIiKTtpZigidW5kZWZpbmVkIiE9dHlwZW9mIEN0YVRyYWNrJiZDdGFUcmFjay5nZXRUcmFja1N0ZXAoIlBheW1lbnRDYWxjdWxhdG9yQWN0aW9uQm94Iikpe2xldCBrPW5ldyBDdXN0b21FdmVudCgidHJhY2tzdGVwLmNvbXBsZXRlIix7ZGV0YWlsOntzdGVwSWQ6IlBheW1lbnRDYWxjdWxhdG9yQWN0aW9uQm94Iixmb3JjZVVwZGF0ZTohMCxvbkNvbXBsZXRlOmg9PntoLmRhdGFzZXQuY29tcGxfdHh0X2ZyPQpoLmRhdGFzZXQuaW5pdF9jb21wbF90eHRfZnIucmVwbGFjZSgieyRQQVlNRU5UUkFURX0iLGN0YVBheW1lbnRUZXh0RnJbMF0pLnJlcGxhY2UoInskUEFZTUVOVFlQRX0iLGN0YVBheW1lbnRUZXh0RnJbMV0pO2guZGF0YXNldC5jb21wbF90eHRfZW49aC5kYXRhc2V0LmluaXRfY29tcGxfdHh0X2VuLnJlcGxhY2UoInskUEFZTUVOVFJBVEV9IixjdGFQYXltZW50VGV4dEVuWzBdKS5yZXBsYWNlKCJ7JFBBWU1FTlRZUEV9IixjdGFQYXltZW50VGV4dEVuWzFdKTtoPXtwYXltZW50Ont9fTtfbG9jYWxTdG9yYWdlR2V0KCJyZXRhaWxfdHJhY2tfZGF0YSIpJiYoaD1KU09OLnBhcnNlKF9sb2NhbFN0b3JhZ2VHZXQoInJldGFpbF90cmFja19kYXRhIikpKTtsZXQgcj0iRlJFTkNIIj09PSQoIiNhY3RpdmVzaXRlbGFuZ3VhZ2UiKS52YWwoKT9jdGFQYXltZW50VGV4dEZyOmN0YVBheW1lbnRUZXh0RW47aC5wYXltZW50PXtsaXN0UHJpY2U6clsyXXx8IiIscGF5bWVudDpyWzBdfHwiIixyYXRlOnJbMV18fAoiIixwYXltZW50VmFsdWU6Y3RhUGF5bWVudFZhbHVlc3x8W119O19sb2NhbFN0b3JhZ2VTZXQoInJldGFpbF90cmFja19kYXRhIixKU09OLnN0cmluZ2lmeShoKSwzMCk7Q29va2llcy5zZXQoImN0YV9kYXRhX3ZhbGlkIiwxLDEsIi8iKX19fSk7Yj1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjcGF5bWVudENhbGN1bGF0b3JDYWxsVG9BY3Rpb25Db250YWluZXIgYSIpO2IuaW5uZXJUZXh0PSJFTkdMSVNIIj09JCgiI2FjdGl2ZXNpdGVsYW5ndWFnZSIpLnZhbCgpPyJDb25maXJtIjoiQ29uZmlybWVyIjtiLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixoPT57aC5wcmV2ZW50RGVmYXVsdCgpO2g9ImNhc2giPT09JCgiI3BheW1lbnRDYWxjdWxhdG9yUGF5bWVudFR5cGUgLmFjdGl2ZVBheW1lbnRUeXBlIikuYXR0cigiZGF0YS10eXBlIik7JCgiI3BheW1lbnRDYWxjdWxhdG9yUGF5bWVudENvbnRhaW5lciIpLmlzKCI6aGlkZGVuIikmJiFofHxkb2N1bWVudC5kaXNwYXRjaEV2ZW50KGspOwokKCIjcGF5bWVudENhbGN1bGF0b3JQb3B1cENvbnRhaW5lciIpLnBvcHVwaXplKCkuY2xvc2UoKX0pO2U9aD0+e2g9ImNhc2giPT09JCgiI3BheW1lbnRDYWxjdWxhdG9yUGF5bWVudFR5cGUgLmFjdGl2ZVBheW1lbnRUeXBlIikuYXR0cigiZGF0YS10eXBlIik7JCgiI3BheW1lbnRDYWxjdWxhdG9yUGF5bWVudENvbnRhaW5lciIpLmlzKCI6aGlkZGVuIikmJiFofHxkb2N1bWVudC5kaXNwYXRjaEV2ZW50KGspfTtsZXQgbD1hLnBheW1lbnRUeXBlO0Nvb2tpZXMuZ2V0KCJwYXltZW50Q2FsY3VsYXRvclNlbGVjdGVkT3B0aW9ucyIpJiYoYj1Db29raWVzLmdldCgicGF5bWVudENhbGN1bGF0b3JTZWxlY3RlZE9wdGlvbnMiKS5zcGxpdCgiLSIpLGw9InVuZGVmaW5lZCIhPWJbMF0\/YlswXTpsLGw9ImxlYXNpbmciPT09bD8ibGVhc2UiOiJmaW5hbmNpbmciPT09bD8iZmluYW5jZSI6bCk7ImxlYXNlIj09bCYmZD9kLmNsaWNrKCk6ImZpbmFuY2UiPT1sJiZjP2MuY2xpY2soKTpjYXNoVGFiLmNsaWNrKCk7CiQoIi5yZXZlYWwtbW9kYWwiKS5vZmYoInBvcHVwaXplci5jbG9zZSIsZSkub24oInBvcHVwaXplci5jbG9zZSIsZSk7JCgiI3BheW1lbnRDYWxjdWxhdG9yQ2FsbFRvQWN0aW9uQ29udGFpbmVyIikuc2hvdygpfX0sMTAwKTtjYWxjVXBkYXRlU3R5bGVJbmZvKGEuc3R5bGVpZCl9CmZ1bmN0aW9uIGNhbGNVcGRhdGVQYXltZW50SW5mbygpe3ZhciBhPWdldFBvcENvbnRhaW5TZXR0aW5ncygpLGQ9KCQoImJvZHkiKS5oYXNDbGFzcygiRU5HTElTSCIpPyIvZW4iOiIvZnIiKSsiL2FqYXgvZ2V0UGF5bWVudERhdGFGb3JTdHlsZUlEP3dzd2lkdGg9MCIsYz1hLnBheW1lbnRUeXBlLGI9MCxlPXBhcnNlSW50KCQoIi5wYXltZW50Q2FsY3VsYXRvclRyYWRlSW5WYWx1ZSIpLnZhbCgpfHwwKSxrPW51bGwsbD1udWxsLGg9Z2V0T3B0aW9uc0Ftb3VudChhKSxyPWdldEFjY2Vzc29yaWVzQW1vdW50KGEpLHE9Z2V0U2VsZWN0ZWRBY2Nlc3NvcmllcyhhKSx1PWdldFByb3RlY3Rpb25QbGFuc0Ftb3VudChhKSx5PWEuaGFzT3duUHJvcGVydHkoIm5vVHJpbVNlbGVjdCIpJiYidHJ1ZSI9PWEubm9UcmltU2VsZWN0fHwidXNlZGNhcnMuaHRtbCI9PSQoIiNQQUdFSUQiKS52YWwoKXx8ImNhcmRldGFpbC5odG1sIj09JCgiI1BBR0VJRCIpLnZhbCgpLApuPSExLHg9YS5oYXNPd25Qcm9wZXJ0eSgic3RvY2tOdW1iZXIiKT9hLnN0b2NrTnVtYmVyOiIiLHQ9YS5oYXNPd25Qcm9wZXJ0eSgidmluIik\/YS52aW46IiI7aWYoeSYmIXgpe3ZhciBBPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwaG9uZXN0b2NrbnVtYmVyIik7QSYmKHg9QS52YWx1ZXx8IiIpfXkmJiF0JiYoQT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicGhvbmV2aW4iKSkmJih0PUEudmFsdWV8fCIiKTt5JiYhYS5zdHlsZWlkJiYoQT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYWN0aXZlU3R5bGVJRCIpKSYmKGEuc3R5bGVpZD1BLnZhbHVlfHxhLnN0eWxlaWQpO0Nvb2tpZXMuZ2V0KCJwYXltZW50Q2FsY3VsYXRvclNlbGVjdGVkT3B0aW9ucyIpJiYobD1Db29raWVzLmdldCgicGF5bWVudENhbGN1bGF0b3JTZWxlY3RlZE9wdGlvbnMiKS5zcGxpdCgiLSIpLGM9InVuZGVmaW5lZCIhPWxbMF0\/bFswXTpjLG49bFsxXSxiPXBhcnNlSW50KGxbNF0pLWUsYj0wPmI\/MDpiLGs9CmxbMl0sbD1sWzNdKTthLm5vTW90b2luc2lnaHRMZWFzZVBheW1lbnRzJiYibGVhc2UiPT1jJiYoYz0iZmluYW5jZSIsbj0hMSxiPTAsbD1rPW51bGwpO2Eubm9Nb3RvaW5zaWdodEZpbmFuY2VQYXltZW50cyYmWyJmaW5hbmNlIiwiZmluYW5jaW5nIl0uaW5jbHVkZXMoYykmJihjPSJsZWFzZSIsbj0hMSxiPTAsbD1rPW51bGwpO2xldCB6PVtdO2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5jb25kaXRpb25hbC1yZWJhdGUtY2hlY2tib3giKS5mb3JFYWNoKGZ1bmN0aW9uKGYpe2YuY2hlY2tlZCYmKGY9Zi5nZXRBdHRyaWJ1dGUoImRhdGEtY29uZGl0aW9uYWwtcmViYXRlLWlkIikpJiZ6LnB1c2goZil9KTtjYWxjVXBkYXRlUGF5bWVudFhocj0kLmFqYXgoe3VybDpkLHR5cGU6IlBPU1QiLGRhdGFUeXBlOiJKU09OIixkYXRhOntzdHlsZWlkOmEuc3R5bGVpZCxwYXltZW50VHlwZTpjLGRvd25wYXltZW50OmUrYixvcHRpb25zQW1vdW50OmgscGF5bWVudEZyZXF1ZW5jeTprLGttQWxsb3dhbmNlOmwsCmlzSW52ZW50b3J5Onksb3B0aW9uczpoLHNuOngsdmluOnQsY29uZGl0aW9uYWxSZWJhdGVJZHM6ei5qb2luKCIsIiksYWNjZXNzb3JpZXM6cixzZWxlY3RlZEFjY2Vzc29yaWVzOnEscHJvdGVjdGlvblBsYW5zOnV9LHN1Y2Nlc3M6ZnVuY3Rpb24oZil7Zi5zZWxlY3RlZFRlcm09bjskKCIjbWF4RG93blBheW1lbnRGb3JUcmltIikudmFsKGYubWF4RG93bik7JCgiI21heERvd25QYXltZW50RmluYW5jZUZvclRyaW0iKS52YWwoZi5tYXhEb3duRmluYW5jZSk7JCgiI3BheW1lbnRDYWxjdWxhdG9yS21BbGxvd2FuY2Ugb3B0aW9uIikucmVtb3ZlKCk7JCgiI3BheW1lbnRDYWxjdWxhdG9yRG93blBheW1lbnQiKS52YWwoYik7Yz0ibGVhc2UiPT09Yz8ibGVhc2luZyI6ImZpbmFuY2UiPT09Yz8iZmluYW5jaW5nIjpjOyJjYXNoIj09PWMmJigkKCIjcGF5bWVudENhbGN1bGF0b3JQYXltZW50Q29udGFpbmVyIikuaGlkZSgpLCQoIiNwYXltZW50Q2FsY3VsYXRvclBheW1lbnRDb250YWluZXJXaXRoVGF4ZXMiKS5oaWRlKCkpOwpmLmN1cnJlbnRQYXltZW50JiYwIT09Zi5jdXJyZW50UGF5bWVudC5sZW5ndGh8fCJjYXNoIj09PWM\/KCQoIiNwYXltZW50Q2FsY3VsYXRvckVycm9yTWVzc2FnZSIpLmhpZGUoKSwkKCIjcGF5bWVudENhbGN1bGF0b3JEb3duUGF5bWVudEVycm9yTWVzc2FnZSIpLmhpZGUoKSwkKCIjcGF5bWVudENhbGN1bGF0b3JEb3duUGF5bWVudEVycm9yTWVzc2FnZUZpbmFuY2UiKS5oaWRlKCksJCgiI3BheW1lbnRDYWxjdWxhdG9yRG93blBheW1lbnRFcnJvck1lc3NhZ2VMZWFzZSIpLmhpZGUoKSwkKCIjcGF5bWVudENhbGN1bGF0b3JPcHRpb25Db250YWluZXIiKS5zaG93KCksJCgiI3BheW1lbnRDYWxjdWxhdG9yTm90aWNlQ29udGFpbmVyIikucHJvcCgiaGlkZGVuIiwhMSksZi5jdXJyZW50UGF5bWVudCYmMDxmLmN1cnJlbnRQYXltZW50Lmxlbmd0aCYmKCQoIiNwYXltZW50Q2FsY3VsYXRvckludGVydmFsIikudmFsKGYuY3VycmVudFBheW1lbnRbMF0uaW50ZXJ2YWwpLGM9Y3x8KCJsZWFzZSI9PT0KZi5jdXJyZW50UGF5bWVudFswXS50eXBlPyJsZWFzaW5nIjoiZmluYW5jaW5nIikpKTooJCgiI3BheW1lbnRDYWxjdWxhdG9yT3B0aW9uQ29udGFpbmVyIikuaGlkZSgpLCQoIiNwYXltZW50Q2FsY3VsYXRvclBheW1lbnRDb250YWluZXIiKS5oaWRlKCksJCgiI3BheW1lbnRDYWxjdWxhdG9yUGF5bWVudENvbnRhaW5lcldpdGhUYXhlcyIpLmhpZGUoKSwkKCIjcGF5bWVudENhbGN1bGF0b3JOb3RpY2VDb250YWluZXIiKS5wcm9wKCJoaWRkZW4iLCEwKSwkKCIjcGF5bWVudENhbGN1bGF0b3JFcnJvck1lc3NhZ2UiKS5zaG93KCkpOyQoIiNwYXltZW50Q2FsY3VsYXRvclBheW1lbnRUeXBlIGxpIikucmVtb3ZlQ2xhc3MoImFjdGl2ZVBheW1lbnRUeXBlIik7dm9pZCAwIT0kKCIjcGF5bWVudENhbGN1bGF0b3JQYXltZW50VHlwZSBsaVtkYXRhLXR5cGU9JyIrYysiJ10iKSYmJCgiI3BheW1lbnRDYWxjdWxhdG9yUGF5bWVudFR5cGUgbGlbZGF0YS10eXBlPSciK2MrIiddIikuYWRkQ2xhc3MoImFjdGl2ZVBheW1lbnRUeXBlIik7CiJjYXNoIiE9PWMmJih2b2lkIDAhPWYuZmluYW5jZSYmMD09PWYuZmluYW5jZS5sZW5ndGg\/JCgiI3BheW1lbnRDYWxjdWxhdG9yUGF5bWVudFR5cGVGaW5hbmNlIikuaGlkZSgpOiQoIiNwYXltZW50Q2FsY3VsYXRvclBheW1lbnRUeXBlRmluYW5jZSIpLnNob3coKSx2b2lkIDAhPWYubGVhc2UmJjA9PT1mLmxlYXNlLmxlbmd0aD8kKCIjcGF5bWVudENhbGN1bGF0b3JQYXltZW50VHlwZUxlYXNlIikuaGlkZSgpOiQoIiNwYXltZW50Q2FsY3VsYXRvclBheW1lbnRUeXBlTGVhc2UiKS5zaG93KCkpO2lmKGYubGVhc2UmJjA8Zi5sZWFzZS5sZW5ndGgpe3ZhciB3PVtdO2YubGVhc2UuZm9yRWFjaChmdW5jdGlvbihwKXstMT09JC5pbkFycmF5KHAua21fYWxsb3dhbmNlLHcpJiZ3LnB1c2gocC5rbV9hbGxvd2FuY2UpfSk7dy5mb3JFYWNoKGZ1bmN0aW9uKHApe3ZhciBtPXBheW1lbnRDYWxjdWxhdG9yRm9ybWF0TnVtYmVyKHAudG9GaXhlZCgwKSk7JCgiI3BheW1lbnRDYWxjdWxhdG9yS21BbGxvd2FuY2UiKS5hcHBlbmQobmV3IE9wdGlvbihtKwoiIGttIixwKSl9KTt2YXIgdj0yRTQ7Zi5jdXJyZW50UGF5bWVudFswXSYmInVuZGVmaW5lZCIhPT10eXBlb2YgZi5jdXJyZW50UGF5bWVudFswXS5rbV9hbGxvd2FuY2UmJih2PTA8Zi5jdXJyZW50UGF5bWVudFswXS5rbV9hbGxvd2FuY2U\/Zi5jdXJyZW50UGF5bWVudFswXS5rbV9hbGxvd2FuY2U6MkU0KTskKCIjcGF5bWVudENhbGN1bGF0b3JLbUFsbG93YW5jZSIpLnZhbCh2KX0ibGVhc2luZyI9PWM\/JCgiLnBheW1lbnRDYWxjdWxhdG9yS21BbGxvd2FuY2VDb250YWluZXIiKS5zaG93KCk6JCgiLnBheW1lbnRDYWxjdWxhdG9yS21BbGxvd2FuY2VDb250YWluZXIiKS5oaWRlKCk7Z2V0Q2FzaFByaWNlQmxvY2soZik7ImNhc2giPT09Yz9lbmFibGVDYXNoT3B0aW9uKCk6Zi5jdXJyZW50UGF5bWVudCYmZi5jdXJyZW50UGF5bWVudC5sZW5ndGgmJihjYWxjQ3VyUGF5bWVudD1mLHNob3dQYXltZW50cyhmLmN1cnJlbnRQYXltZW50LGYucGF5bWVudEZlZXMsZi5tYWtlaWQsZikpfX0pfQpmdW5jdGlvbiBlbmFibGVDYXNoT3B0aW9uKCl7JCgiI3BheW1lbnRDYWxjdWxhdG9yUGF5bWVudFR5cGUgbGkiKS5yZW1vdmVDbGFzcygiYWN0aXZlUGF5bWVudFR5cGUiKTskKCIjcGF5bWVudENhbGN1bGF0b3JQYXltZW50VHlwZSBsaVtkYXRhLXR5cGU9J2Nhc2gnXSIpLmFkZENsYXNzKCJhY3RpdmVQYXltZW50VHlwZSIpOyQoIi5wYXltZW50Q2FsY3VsYXRvcklucHV0Q29udGFpbmVyIikuaGlkZSgpOyQoIiNwYXltZW50Q2FsY3VsYXRvclBheW1lbnRDb250YWluZXIiKS5oaWRlKCk7JCgiI3BheW1lbnRDYWxjdWxhdG9yUGF5bWVudENvbnRhaW5lcldpdGhUYXhlcyIpLmhpZGUoKTskKCIjcGF5bWVudENhbGN1bGF0b3JOb3RpY2VMZWFzZSIpLmhpZGUoKTskKCIucGF5bWVudENhbGN1bGF0b3JOb3RpY2VGaW5hbmNlIikuaGlkZSgpOyQoIiNwYXltZW50Q2FsY3VsYXRvckN1c3RvbUZlZXMiKS5oaWRlKCk7JCgiLnBheW1lbnRDYWxjdWxhdG9yQ29tbW9uTm90aWNlIikuaGlkZSgpOwokKCIjcGF5bWVudENhbGN1bGF0b3JOb3RpY2VJbmNsdWRlZEZlZXMiKS5oaWRlKCk7JCgiLnBheW1lbnRDYWxjdWxhdG9yTm90aWNlQ2FzaCIpLnByb3AoImhpZGRlbiIsITEpOyQoIiNwYXltZW50Q2FsY3VsYXRvckVycm9yTWVzc2FnZSIpLmhpZGUoKTskKCIjcGF5bWVudENhbGN1bGF0b3JEb3duUGF5bWVudEVycm9yTWVzc2FnZSIpLmhpZGUoKTskKCIjcGF5bWVudENhbGN1bGF0b3JEb3duUGF5bWVudEVycm9yTWVzc2FnZUZpbmFuY2UiKS5oaWRlKCk7JCgiI3BheW1lbnRDYWxjdWxhdG9yRG93blBheW1lbnRFcnJvck1lc3NhZ2VMZWFzZSIpLmhpZGUoKTskKCIjcGF5bWVudENhbGN1bGF0b3JPcHRpb25Db250YWluZXIiKS5zaG93KCk7ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI3BheW1lbnRDYWxjdWxhdG9yQ29udGFpbmVyIC5jYWxjLXBheW1lbnQtY2FzaCIpLmhpZGRlbj0hMTskKCIjcGF5bWVudENhbGN1bGF0b3JOb3RpY2VDb250YWluZXIiKS5wcm9wKCJoaWRkZW4iLCExKTsKMT09JCgiI2lzRFJTaXRlIikubGVuZ3RoJiYiMSI9PSQoIiNpc0RSU2l0ZSIpLnZhbCgpJiZjaGFuZ2VQYWdlQ2FzaFZhbHVlKCl9CmZ1bmN0aW9uIGNoYW5nZVBhZ2VDYXNoVmFsdWUoKXtpZihudWxsIT09Y2FzaFByaWNlRm9yUGFnZSl7dmFyIGE9JCgiYm9keSIpLmhhc0NsYXNzKCJFTkdMSVNIIik\/IkVOR0xJU0giOiJGUkVOQ0giLGQ9cGF5bWVudENhbGN1bGF0b3JGb3JtYXROdW1iZXIoY2FzaFByaWNlRm9yUGFnZS50b1N0cmluZygpKSxjPXN0b3JlLmdldCgiaTE4biIpLkRFRkFVTFRfUEFZTUVOVF9DQVNILGI9JzxzcGFuIGNsYXNzPSJ0eHQtcGF5bWVudCBmb3JtYXQtcHJpY2UiPicrZCsiPC9zcGFuPiIsZT1zdG9yZS5nZXQoImkxOG4iKS5MQUJFTF9CRUZPUkVfVEFYRVMudG9Mb3dlckNhc2UoKTskKCIucGF5bWVudFdyYXBwZXIgLnBheW1lbnRMaW5lMiwgLnBheW1lbnRXcmFwcGVyTW9iaWxlVkRQIC5wYXltZW50TGluZTEiKS5odG1sKGMpOyQoIi5wYXltZW50V3JhcHBlciAucGF5bWVudExpbmUxLCAucGF5bWVudFdyYXBwZXJNb2JpbGVWRFAgLnBheW1lbnRMaW5lMiIpLmh0bWwoYik7JCgiLnBheW1lbnRXcmFwcGVyIC5wYXltZW50TGluZTMsIC5wYXltZW50V3JhcHBlck1vYmlsZVZEUCAucGF5bWVudExpbmUzIikuaHRtbChlKTsKYT0iRU5HTElTSCI9PT1hPyIkIitkOmQrIiAkIjtjdGFQYXltZW50VGV4dEZyPVthLCJDb21wdGFudCIsIiJdO2N0YVBheW1lbnRUZXh0RW49W2EsIkNhc2giLCIiXTtjdGFQYXltZW50VmFsdWVzPVtjYXNoUHJpY2VGb3JQYWdlLDAsMCwiY2FzaCJdOyQoIi5ibnBfcGF5bWVudF9jb250YWluZXIiKS5sZW5ndGgmJigkKCIuYm5wX3BheW1lbnRfY29udGFpbmVyIikuaGlkZSgpLCQoIi5wYXltZW50SW5mb0J1YmJsZUJuUCIpLmhpZGUoKSk7JCgiI2Rhcmt0b29sdGlwLXBheW1lbnRXcmFwcGVyLCAjZGFya3Rvb2x0aXAtdmRwUGF5bWVudFRvb2x0aXAsICNkYXJrdG9vbHRpcC12ZHBJbmZvVG9vbHRpcCwgI2Rhcmt0b29sdGlwLXZkcFVzZWRJbmZvVG9vbHRpcCIpLnJlbW92ZSgpOyQoIi52ZHBQYXltZW50VG9vbHRpcCwgLnBheW1lbnRXcmFwcGVyIC52ZHBJbmZvVG9vbHRpcCwgLnBheW1lbnRXcmFwcGVyIC52ZHBVc2VkSW5mb1Rvb2x0aXAiKS5kYXJrVG9vbHRpcCh7b3BhY2l0eTowfSl9fQpmdW5jdGlvbiBnZXRDYXNoUHJpY2VCbG9jayhhKXt2YXIgZD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjcGF5bWVudENhbGN1bGF0b3JQb3B1cENvbnRhaW5lciIpLGM9Z2V0UG9wQ29udGFpblNldHRpbmdzKCksYj1jLmhhc093blByb3BlcnR5KCJub1RyaW1TZWxlY3QiKSYmInRydWUiPT1jLm5vVHJpbVNlbGVjdHx8InVzZWRjYXJzLmh0bWwiPT0kKCIjUEFHRUlEIikudmFsKCl8fCJjYXJkZXRhaWwuaHRtbCI9PSQoIiNQQUdFSUQiKS52YWwoKSxlPSQoIiNhY3RpdmVzaXRlbGFuZ3VhZ2UiKS52YWwoKXx8IkZSRU5DSCI7bGV0IGs9cGFyc2VJbnQoYS5vcmlnaW5hbFByaWNlfHxjLnZlaGljbGVJbmZvJiZjLnZlaGljbGVJbmZvLm1zcnBBbGxJbnx8MCk7dmFyIGw9cGF5bWVudENhbGN1bGF0b3JGb3JtYXROdW1iZXIoay50b1N0cmluZygpKTtsZXQgaD1kLnF1ZXJ5U2VsZWN0b3IoIi5jYWxjLXBheW1lbnQtY2FzaCIpO3ZhciByPSIxIj09ZC5xdWVyeVNlbGVjdG9yKCIjZGlzcGxheUJyZWFrZG93biIpLnZhbHVlOwpsZXQgcT0iMSI9PWQucXVlcnlTZWxlY3RvcigiI2hpZGVSZWJhdGVzIikudmFsdWU7dmFyIHU9IjEiPT1kLnF1ZXJ5U2VsZWN0b3IoIiNzY3JhdGNoT3JpZ2luYWxQcmljZSIpLnZhbHVlO2xldCB5PSJFTkdMSVNIIj09ZT8iU3RhcnRpbmcgYXQiOiLDg8KAIHBhcnRpciBkZSI7ZD0iRU5HTElTSCI9PWU\/IllvdXIgcHJpY2UiOiJWb3RyZSBwcml4IjtiJiYoeT0kKCIjTkVXSU5WX1BSSUNFX0xBQkVMX09SSUdJTkFMIikudmFsKCksZD0kKCIjTkVXSU5WX1BSSUNFX0xBQkVMX0ZJTkFMIikudmFsKCksYy52ZWhpY2xlSW5mbyYmeS5yZXBsYWNlKCJ7JE1BS0V9IixjLnZlaGljbGVJbmZvLm1ha2UpLnJlcGxhY2UoInskTU9ERUx9IixjLnZlaGljbGVJbmZvLkNGTW9kZWxOYW1lKS5yZXBsYWNlKCJ7JFZFUlNJT059IixjLnZlaGljbGVJbmZvLkNGU3R5bGVOYW1lKS5yZXBsYWNlKCJ7JFlFQVJ9IixjLnZlaGljbGVJbmZvLnllYXIpKTtsZXQgbj0iRU5HTElTSCI9PWU\/ImRlc2NFbiI6ImRlc2NGciI7CiQoIiNwYXltZW50Q2FsY3VsYXRvck5vdGljZVRvdGFsIikuaHRtbChrKTtjPXUmJmEucHJpY2VBbWVuZGVtZW50cyYmMD5hLnByaWNlQW1lbmRlbWVudHMudG90YWw\/InN0cmlrZS1wcmljZSI6IiI7bD1gCgkJPGRpdiBjbGFzcz0icHJpY2VSb3ciPgoJCQk8c3BhbiBjbGFzcz0icHJpY2VOYW1lIj4ke3ImJiFxP2Q6eX08L3NwYW4+CgkJCTxzcGFuIGNsYXNzPSJwcmljZS12YWx1ZSAkeyJmb3JtYXQtcHJpY2UifSAke2N9Ij4ke2x9PC9zcGFuPgoJCTwvZGl2PmA7aWYoMD09KGEucHJpY2VBbWVuZGVtZW50c3x8W10pLmxlbmd0aCloLmlubmVySFRNTD1sO2Vsc2V7dT0oYS5wcmljZUFtZW5kZW1lbnRzLmZlZXNMaXN0fHxbXSkucmVkdWNlKCh6LGYpPT57aWYoMD09Zi5hbW91bnQpcmV0dXJuIHo7bGV0IHc9cGF5bWVudENhbGN1bGF0b3JGb3JtYXROdW1iZXIoZi5hbW91bnQudG9TdHJpbmcoKSk7cmV0dXJuIHorYAoJCQk8ZGl2IGNsYXNzPSJwcmljZVJvdyI+CgkJCQk8c3BhbiBjbGFzcz0icHJpY2VOYW1lIj4ke2VzY2FwZUhUTUwoYXRvYihmW25dKSl9PC9zcGFuPgoJCQkJPHNwYW4gY2xhc3M9InByaWNlLXZhbHVlICR7ImZvcm1hdC1wcmljZSJ9Ij4ke3d9PC9zcGFuPgoJCQk8L2Rpdj4KCQlgfSwiIik7dmFyIHg9KGEucHJpY2VBbWVuZGVtZW50cy5pbmNlbnRpdmVzTGlzdHx8W10pLnJlZHVjZSgoeixmKT0+e2lmKDA9PWYuYW1vdW50KXJldHVybiB6O2xldCB3PXBheW1lbnRDYWxjdWxhdG9yRm9ybWF0TnVtYmVyKGYuYW1vdW50LnRvU3RyaW5nKCkpO3JldHVybiB6K2AKCQkJPGRpdiBjbGFzcz0icHJpY2VSb3ciPgoJCQkJPHNwYW4gY2xhc3M9InByaWNlTmFtZSI+JHtlc2NhcGVIVE1MKGF0b2IoZltuXSkpfTwvc3Bhbj4KCQkJCTxzcGFuIGNsYXNzPSJwcmljZS12YWx1ZSAkeyJmb3JtYXQtcHJpY2UifSI+LSR7d308L3NwYW4+CgkJCTwvZGl2PgoJCWB9LCIiKTtiPShhLnByaWNlQW1lbmRlbWVudHMucG9zdFRheEluY2VudGl2ZXNMaXN0fHxbXSkucmVkdWNlKCh6LGYpPT57aWYoMD09Zi5hbW91bnQpcmV0dXJuIHo7bGV0IHc9cGF5bWVudENhbGN1bGF0b3JGb3JtYXROdW1iZXIoZi5hbW91bnQudG9TdHJpbmcoKSk7cmV0dXJuIHorYAoJCQk8ZGl2IGNsYXNzPSJwcmljZVJvdyI+CgkJCQk8c3BhbiBjbGFzcz0icHJpY2VOYW1lIj4ke2VzY2FwZUhUTUwoYXRvYihmW25dKSl9PC9zcGFuPgoJCQkJPHNwYW4gY2xhc3M9InByaWNlLXZhbHVlICR7ImZvcm1hdC1wcmljZSJ9Ij4tJHt3fTwvc3Bhbj4KCQkJPC9kaXY+CgkJYH0sIiIpO3ZhciB0PWstKGEucHJpY2VBbWVuZGVtZW50cy50b3RhbEZlZXx8MCkrKGEucHJpY2VBbWVuZGVtZW50cy50b3RhbFJlYmF0ZXx8MCksQT0wPChhLnByaWNlQW1lbmRlbWVudHMuY29uZGl0aW9uYWxSZWJhdGVzVG90YWx8fDApO2U9QSYmYS5wcmljZUFtZW5kZW1lbnRzLmZpbmFsUHJpY2U\/YS5wcmljZUFtZW5kZW1lbnRzLmZpbmFsUHJpY2U6aztbIk5FV0NBUlMiLCJORVdDQVJERVRBSUxTIl0uaW5jbHVkZXMoc2l0ZVBhZ2UubmFtZSl8fCh0PWstKGEucHJpY2VBbWVuZGVtZW50cy50b3RhbEZlZXx8MCkrKGEucHJpY2VBbWVuZGVtZW50cy50b3RhbFJlYmF0ZXx8MCksZT1BJiZhLnByaWNlQW1lbmRlbWVudHMuZmluYWxQcmljZT9hLnByaWNlQW1lbmRlbWVudHMuZmluYWxQcmljZTprKTtjYXNoUHJpY2VGb3JQYWdlPWU7dD1wYXltZW50Q2FsY3VsYXRvckZvcm1hdE51bWJlcih0LnRvU3RyaW5nKCkpO2U9cGF5bWVudENhbGN1bGF0b3JGb3JtYXROdW1iZXIoZS50b1N0cmluZygpKTsKYT11Lmxlbmd0aHx8eC5sZW5ndGg7cj1yJiYhcSYmYT9gCgkJPGRpdiBjbGFzcz0icHJpY2VSb3ciPgoJCQk8c3BhbiBjbGFzcz0icHJpY2VOYW1lIj4ke3l9PC9zcGFuPgoJCQk8c3BhbiBjbGFzcz0icHJpY2UtdmFsdWUgJHsiZm9ybWF0LXByaWNlIn0gJHtjfSI+JHt0fTwvc3Bhbj4KCQk8L2Rpdj5gK3UreDoiIjthJiYobD1gCgkJCTxkaXYgY2xhc3M9InByaWNlUm93Ij4KCQkJCTxzcGFuIGNsYXNzPSJwcmljZU5hbWUiPiR7ZH08L3NwYW4+CgkJCQk8c3BhbiBjbGFzcz0iJHsiIiE9cj8icHJpY2VGaW5hbCI6IiJ9ICR7ImZvcm1hdC1wcmljZSJ9Ij4ke2V9PC9zcGFuPgoJCQk8L2Rpdj5gKTtoLmlubmVySFRNTD1yK2wrYn19CmZ1bmN0aW9uIGdldE9wdGlvbnNBbW91bnQoYSl7dmFyIGQ9YS5wYXltZW50T3B0aW9ucz9hLnBheW1lbnRPcHRpb25zOjA7YS5oYXNPd25Qcm9wZXJ0eSgibm9UcmltU2VsZWN0IikmJiJ0cnVlIj09YS5ub1RyaW1TZWxlY3R8fCJ1c2VkY2Fycy5odG1sIj09JCgiI1BBR0VJRCIpLnZhbCgpfHwkKCIjUEFHRUlEIikudmFsKCk7YT1hLmNvbnNpZGVySW52ZW50b3J5P2EuY29uc2lkZXJJbnZlbnRvcnk6IjAiO3ZhciBjPSJ1bmRlZmluZWQiIT10eXBlb2YgbW9kZWxDb25maWcmJiJmdW5jdGlvbiI9PT10eXBlb2YgbW9kZWxDb25maWcuZ2V0U2VsZWN0ZWRTdHlsZTtpZihjfHxhJiZjKWQ9bW9kZWxDb25maWcuZ2V0U2VsZWN0ZWRTdHlsZSgpLnNlbGVjdGVkT3B0aW9uc1RvdGFsLGE9cGFyc2VJbnQobW9kZWxDb25maWcuZ2V0U2VsZWN0ZWRTdHlsZSgpLmRlZmF1bHRPcHRpb25BbW91bnQpLDA8YSYmKGQtPWEsZD1NYXRoLm1heCgwLGQpKTtyZXR1cm4gZHx8MH0KZnVuY3Rpb24gZ2V0QWNjZXNzb3JpZXNBbW91bnQoYSl7dmFyIGQ9MDthLmhhc093blByb3BlcnR5KCJub1RyaW1TZWxlY3QiKSYmInRydWUiPT1hLm5vVHJpbVNlbGVjdHx8InVzZWRjYXJzLmh0bWwiPT0kKCIjUEFHRUlEIikudmFsKCl8fCQoIiNQQUdFSUQiKS52YWwoKTthPWEuY29uc2lkZXJJbnZlbnRvcnk\/YS5jb25zaWRlckludmVudG9yeToiMCI7dmFyIGM9InVuZGVmaW5lZCIhPXR5cGVvZiBtb2RlbENvbmZpZyYmImZ1bmN0aW9uIj09PXR5cGVvZiBtb2RlbENvbmZpZy5nZXRTZWxlY3RlZFN0eWxlOyhjfHxhJiZjKSYmdm9pZCAwIT1tb2RlbENvbmZpZy5nZXRTZWxlY3RlZFN0eWxlKCkuc2VsZWN0ZWRBY2NUb3RhbCYmKGQ9bW9kZWxDb25maWcuZ2V0U2VsZWN0ZWRTdHlsZSgpLnNlbGVjdGVkQWNjVG90YWwpO3JldHVybiBkfHwwfQpmdW5jdGlvbiBnZXRTZWxlY3RlZEFjY2Vzc29yaWVzKGEpe3ZhciBkPSIiO2E9YS5jb25zaWRlckludmVudG9yeT9hLmNvbnNpZGVySW52ZW50b3J5OiIwIjt2YXIgYz0idW5kZWZpbmVkIiE9dHlwZW9mIG1vZGVsQ29uZmlnJiYiZnVuY3Rpb24iPT09dHlwZW9mIG1vZGVsQ29uZmlnLmdldFNlbGVjdGVkU3R5bGU7KGN8fGEmJmMpJiZ2b2lkIDAhPW1vZGVsQ29uZmlnLmdldFNlbGVjdGVkU3R5bGUoKS5zZWxlY3RlZEFjY0lkcyYmKGQ9bW9kZWxDb25maWcuZ2V0U2VsZWN0ZWRTdHlsZSgpLnNlbGVjdGVkQWNjSWRzLmpvaW4oIiwiKSk7cmV0dXJuIGR8fCIifQpmdW5jdGlvbiBnZXRQcm90ZWN0aW9uUGxhbnNBbW91bnQoYSl7dmFyIGQ9MDthLmhhc093blByb3BlcnR5KCJub1RyaW1TZWxlY3QiKSYmInRydWUiPT1hLm5vVHJpbVNlbGVjdHx8InVzZWRjYXJzLmh0bWwiPT0kKCIjUEFHRUlEIikudmFsKCl8fCQoIiNQQUdFSUQiKS52YWwoKTthPWEuY29uc2lkZXJJbnZlbnRvcnk\/YS5jb25zaWRlckludmVudG9yeToiMCI7dmFyIGM9InVuZGVmaW5lZCIhPXR5cGVvZiBtb2RlbENvbmZpZyYmImZ1bmN0aW9uIj09PXR5cGVvZiBtb2RlbENvbmZpZy5nZXRTZWxlY3RlZFN0eWxlOyhjfHxhJiZjKSYmdm9pZCAwIT1tb2RlbENvbmZpZy5nZXRTZWxlY3RlZFN0eWxlKCkuc2VsZWN0ZWRQcm90ZWN0aW9uUGxhblRvdGFsJiYoZD1tb2RlbENvbmZpZy5nZXRTZWxlY3RlZFN0eWxlKCkuc2VsZWN0ZWRQcm90ZWN0aW9uUGxhblRvdGFsKTtyZXR1cm4gZHx8MH0KZnVuY3Rpb24gcGF5bWVudENhbGN1bGF0b3JGb3JtYXROdW1iZXIoYSl7cmV0dXJuIGEucmVwbGFjZSgvXEIoPz0oXGR7M30pKyg\/IVxkKSkvZywiLCIpfWZ1bmN0aW9uIHBheW1lbnRDYWxjdWxhdG9yQ2xpY2tlZFRyaWdnZXIoYSxkKXskKGEpLnRyaWdnZXIoInBheW1lbnRDYWxjdWxhdG9yLmNsaWNrIix7b3JpZ0V2ZW50OmR9KTthPW5ldyBFdmVudCgicGF5bWVudENhbGN1bGF0b3IuY2xpY2siKTtkb2N1bWVudC5kaXNwYXRjaEV2ZW50KGEpfWZ1bmN0aW9uIHBheW1lbnRDYWxjdWxhdG9yQ2xpY2tlZE5ld1ZEUFRyaWdnZXIoYSxkKXt2YXIgYz0kKCIjcG9wdXBtYWtlIikudmFsKCksYj0kKCIjcG9wdXBtb2RlbCIpLnZhbCgpLGU9JCgiI3BvcHVweWVhciIpLnZhbCgpO2dhVHJhY2soIl90cmFja0V2ZW50IiwiTmV3LVZEUC1PdXRib3VuZC1jbGlja3MiLCJDYWxjdWxhdHJpY2UiLGMrIi0iK2IrIi0iK2UpO3BheW1lbnRDYWxjdWxhdG9yQ2xpY2tlZFRyaWdnZXIoYSxkKX0KZnVuY3Rpb24gZm9ybWF0RWZmZWN0aXZlUmF0ZVRleHQoYSxkLGMpe2M9dm9pZCAwPT09Yz8iIjpjO2E9IjxzcGFuICIrZCsiPiIrYSsiPC9zcGFuPiUiO2E9IkVOR0xJU0giPT1hY3RpdmVMYW5nP2ErIiBBUFIiOiJUYXV4ICIrYTtyZXR1cm4gJCgiI2lzbW9iaWxlIikudmFsKCk\/Ijxici8+PGRpdiAiK2MrIj4oIithKyIpPC9kaXY+IjoiIDxkaXYgIitjKyI+KCAiK2ErIiApPC9kaXY+In07Ci8qKiAvanMvdmFuaWxsYWpzL21vZGFsLmpzICoqLwp2YXIgX19fZDJjX21vZGFsanNfY19vbj0iMjAyNi0wMi0yNyAxNTozMDowMyI7J3VzZSBzdHJpY3QnO2NvbnN0IE1vZGFscz17fSxNb2RhbD1mdW5jdGlvbihoLGIpe2xldCBjPXt9O2NvbnN0IG49e3RpdGxlOmgsY29udGVudFR5cGU6Im5vZGUiLGNvbnRlbnRTcmM6IiIsYWZ0ZXJJbml0OigpPT57fX07bGV0IGs9IiI7Y29uc3QgZT1odG1sVG9Ob2RlKCc8ZGl2IGNsYXNzPSJtb2RhbC1vdmVybGF5Ij48L2Rpdj4nKSxsPWZ1bmN0aW9uKGEpe2Eub25jbGljaz0oKT0+ZigiY2FuY2VsIil9LHA9ZnVuY3Rpb24oKXsoYy5xdWVyeVNlbGVjdG9yKCIub2theSIpfHwhMSkub25jbGljaz0oKT0+Zigib2theSIpO2NvbnN0IGE9Yy5xdWVyeVNlbGVjdG9yQWxsKCIuY2FuY2VsIil8fCExOzE8YS5sZW5ndGg\/JC5lYWNoKGEsZnVuY3Rpb24oZCxnKXtsKGcpfSk6YSYmbChhWzBdKX0sbT1mdW5jdGlvbihhKXsiRXNjYXBlIj09YS5rZXkmJihhLnByZXZlbnREZWZhdWx0KCksYS5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJrZXl1cCIsCm0se2NhcHR1cmU6ITB9KSxmKCkpfSxmPWE9PnthPWF8fCIiO3N3aXRjaChhKXtjYXNlICJjYW5jZWwiOiJmdW5jdGlvbiI9PXR5cGVvZiBiLm9uQmVmb3JlQ2FuY2VsJiZiLm9uQmVmb3JlQ2FuY2VsLmNhbGwoKTticmVhaztjYXNlICJva2F5IjoiZnVuY3Rpb24iPT10eXBlb2YgYi5vbkJlZm9yZVNhdmUmJmIub25CZWZvcmVTYXZlLmNhbGwoKX0iZnVuY3Rpb24iPT10eXBlb2YgYi5vbkJlZm9yZUNsb3NlJiZiLm9uQmVmb3JlQ2xvc2UuY2FsbChhKTtkb2N1bWVudC5ib2R5LnN0eWxlLm92ZXJmbG93WT0iYXV0byI7Yy5jbGFzc0xpc3QudG9nZ2xlKCJpcy1hY3RpdmUiLCExKTtlLnBhcmVudE5vZGUmJihlLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoZSksay5mb2N1cygpKX07Yj1PYmplY3QuYXNzaWduKG4sYik7KGZ1bmN0aW9uKCl7Y29uc3QgYT0rbmV3IERhdGU7dmFyIGQ9IiI7c3dpdGNoKGIuY29udGVudFR5cGUpe2Nhc2UgIm5vZGUiOmQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYi5jb250ZW50U3JjKTsKZC5oaWRkZW49ITE7YnJlYWs7Y2FzZSAiaWZyYW1lIjpkPWh0bWxUb05vZGUoYDxkaXYgY2xhc3M9ImlmcmFtZS13cmFwcGVyIj4KCQkJCQkJCQk8aWZyYW1lCgkJCQkJCQkJCXNyYz0iJHtiLmNvbnRlbnRTcmN9IgoJCQkJCQkJCQlmcmFtZWJvcmRlcj0iMCIKCQkJCQkJCQkJYWxsb3dmdWxsc2NyZWVuPSJ0cnVlIgoJCQkJCQkJCQl3ZWJraXRhbGxvd2Z1bGxzY3JlZW49InRydWUiCgkJCQkJCQkJCW1vemFsbG93ZnVsbHNjcmVlbj0idHJ1ZSIKCQkJCQkJCQk+PC9pZnJhbWU+CgkJCQkJCQk8L2Rpdj5gKX1sZXQgZz0iIjtiLnNob3dZZXNOb0J1dHRvbnMmJihnPWA8ZGl2IGNsYXNzPSJtb2RhbC1mb290ZXIgLXAgLS1zNSBmbGV4LWJldHdlZW4iPgoJCQkJPGRpdj4KCQkJCQk8c3BhbiBjbGFzcz0iIC1tdDIgbWFpblRleHQgLWJvbGQiPiR7Yi5idXR0b25UZXh0fHwiIn08L3NwYW4+CgkJCQk8L2Rpdj4KCQkJCTxkaXY+CgkJCQkJPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJidG4gY2FuY2VsIiBkYXRhLWRpc21pc3M9Im1vZGFsIj4ke2Iubm9CdXR0b258fCJObyJ9PC9idXR0b24+CgkJCQkJPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJidG4gYnRuLW1haW4yIG9rYXkiIGRhdGEtZGlzbWlzcz0ibW9kYWwiPiR7Yi55ZXNCdXR0b258fCJZZXMifTwvYnV0dG9uPgoJCQkJPC9kaXY+YCk7Yz1odG1sVG9Ob2RlKGAKCQkJPGJveC1sYyBjbGFzcz0ibW9kYWwtd3JhcHBlciAtYmctd2hpdGUgLS1zMCI+CgkJCQk8c3RhY2stbGMgY2xhc3M9Ii0tczAiPgoJCQkJCTxkaXYgY2xhc3M9Im1vZGFsLWhlYWRlciBmbGV4LWJldHdlZW4gLXAgLS1zNSI+CgkJCQkJCTxkaXYgY2xhc3M9Im1vZGFsLXRpdGxlIHR4dC11cHBlciAtZnMtbCAtYm9sZCI+CgkJCQkJCQkke2IudGl0bGV9CgkJCQkJCTwvZGl2PgoJCQkJCQk8ZGl2IGNsYXNzPSJtb2RhbC1jb250cm9sIj4KCQkJCQkJCTxidXR0b24gdGl0bGU9ImNsb3NlIiBjbGFzcz0ieC1jbG9zZSBjYW5jZWwiPjwvYnV0dG9uPgoJCQkJCQk8L2Rpdj4KCQkJCQk8L2Rpdj4KCQkJCQk8ZGl2IGNsYXNzPSJtb2RhbC1ib2R5IiBpZD0icS0ke2F9Ij4KCgkJCQkJPC9kaXY+CgkJCQkJJHtnfQoJCQkJPC9zdGFjay1sYz4KCQkJPC9ib3gtbGM+CgkJYCk7Yy5pZD1gbW9kYWwke2h9YDtjLnNldEF0dHJpYnV0ZSgicm9sZSIsImRpYWxvZyIpO2Muc2V0QXR0cmlidXRlKCJhcmlhLWxhYmVsbGVkYnkiLGBxLSR7YX1gKTtjLnF1ZXJ5U2VsZWN0b3IoIi5tb2RhbC1ib2R5IikuYXBwZW5kQ2hpbGQoZCk7ZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChjKTtkb2N1bWVudC5ib2R5LnN0eWxlLm92ZXJmbG93WT0iaGlkZGVuIjtiLmFmdGVySW5pdCgpO3AoKX0pKCk7cmV0dXJue2Rpc3BsYXk6ZnVuY3Rpb24oKXtrPWRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ7ZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlKTtkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJrZXl1cCIsbSx7Y2FwdHVyZTohMH0pO3NldFRpbWVvdXQoZnVuY3Rpb24oKXtjLmNsYXNzTGlzdC50b2dnbGUoImlzLWFjdGl2ZSIsITApfSwxKX0sY2xvc2U6Zn19OwovKiogL2pzL3ZhbmlsbGFqcy9sZWFkLmpzICoqLwp2YXIgX19fZDJjX2xlYWRqc19jX29uPSIyMDI2LTAyLTIwIDExOjMwOjA4IjsndXNlIHN0cmljdCc7dmFyICRqc2NvbXA9JGpzY29tcHx8e307JGpzY29tcC5zY29wZT17fTskanNjb21wLkFTU1VNRV9FUzU9ITE7JGpzY29tcC5BU1NVTUVfTk9fTkFUSVZFX01BUD0hMTskanNjb21wLkFTU1VNRV9OT19OQVRJVkVfU0VUPSExOyRqc2NvbXAuU0lNUExFX0ZST1VORF9QT0xZRklMTD0hMTskanNjb21wLklTT0xBVEVfUE9MWUZJTExTPSExOyRqc2NvbXAuRk9SQ0VfUE9MWUZJTExfUFJPTUlTRT0hMTskanNjb21wLkZPUkNFX1BPTFlGSUxMX1BST01JU0VfV0hFTl9OT19VTkhBTkRMRURfUkVKRUNUSU9OPSExOyRqc2NvbXAuZGVmaW5lUHJvcGVydHk9JGpzY29tcC5BU1NVTUVfRVM1fHwiZnVuY3Rpb24iPT10eXBlb2YgT2JqZWN0LmRlZmluZVByb3BlcnRpZXM\/T2JqZWN0LmRlZmluZVByb3BlcnR5OmZ1bmN0aW9uKGIsYSxjKXtpZihiPT1BcnJheS5wcm90b3R5cGV8fGI9PU9iamVjdC5wcm90b3R5cGUpcmV0dXJuIGI7YlthXT1jLnZhbHVlO3JldHVybiBifTsKJGpzY29tcC5nZXRHbG9iYWw9ZnVuY3Rpb24oYil7Yj1bIm9iamVjdCI9PXR5cGVvZiBnbG9iYWxUaGlzJiZnbG9iYWxUaGlzLGIsIm9iamVjdCI9PXR5cGVvZiB3aW5kb3cmJndpbmRvdywib2JqZWN0Ij09dHlwZW9mIHNlbGYmJnNlbGYsIm9iamVjdCI9PXR5cGVvZiBnbG9iYWwmJmdsb2JhbF07Zm9yKHZhciBhPTA7YTxiLmxlbmd0aDsrK2Epe3ZhciBjPWJbYV07aWYoYyYmYy5NYXRoPT1NYXRoKXJldHVybiBjfXRocm93IEVycm9yKCJDYW5ub3QgZmluZCBnbG9iYWwgb2JqZWN0Iik7fTskanNjb21wLmdsb2JhbD0kanNjb21wLmdldEdsb2JhbCh0aGlzKTskanNjb21wLklTX1NZTUJPTF9OQVRJVkU9ImZ1bmN0aW9uIj09PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT09dHlwZW9mIFN5bWJvbCgieCIpOyRqc2NvbXAuVFJVU1RfRVM2X1BPTFlGSUxMUz0hJGpzY29tcC5JU09MQVRFX1BPTFlGSUxMU3x8JGpzY29tcC5JU19TWU1CT0xfTkFUSVZFOyRqc2NvbXAucG9seWZpbGxzPXt9OwokanNjb21wLnByb3BlcnR5VG9Qb2x5ZmlsbFN5bWJvbD17fTskanNjb21wLlBPTFlGSUxMX1BSRUZJWD0iJGpzY3AkIjt2YXIgJGpzY29tcCRsb29rdXBQb2x5ZmlsbGVkVmFsdWU9ZnVuY3Rpb24oYixhKXt2YXIgYz0kanNjb21wLnByb3BlcnR5VG9Qb2x5ZmlsbFN5bWJvbFthXTtpZihudWxsPT1jKXJldHVybiBiW2FdO2M9YltjXTtyZXR1cm4gdm9pZCAwIT09Yz9jOmJbYV19OyRqc2NvbXAucG9seWZpbGw9ZnVuY3Rpb24oYixhLGMsZSl7YSYmKCRqc2NvbXAuSVNPTEFURV9QT0xZRklMTFM\/JGpzY29tcC5wb2x5ZmlsbElzb2xhdGVkKGIsYSxjLGUpOiRqc2NvbXAucG9seWZpbGxVbmlzb2xhdGVkKGIsYSxjLGUpKX07CiRqc2NvbXAucG9seWZpbGxVbmlzb2xhdGVkPWZ1bmN0aW9uKGIsYSxjLGUpe2M9JGpzY29tcC5nbG9iYWw7Yj1iLnNwbGl0KCIuIik7Zm9yKGU9MDtlPGIubGVuZ3RoLTE7ZSsrKXt2YXIgaD1iW2VdO2lmKCEoaCBpbiBjKSlyZXR1cm47Yz1jW2hdfWI9YltiLmxlbmd0aC0xXTtlPWNbYl07YT1hKGUpO2EhPWUmJm51bGwhPWEmJiRqc2NvbXAuZGVmaW5lUHJvcGVydHkoYyxiLHtjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6YX0pfTsKJGpzY29tcC5wb2x5ZmlsbElzb2xhdGVkPWZ1bmN0aW9uKGIsYSxjLGUpe3ZhciBoPWIuc3BsaXQoIi4iKTtiPTE9PT1oLmxlbmd0aDtlPWhbMF07ZT0hYiYmZSBpbiAkanNjb21wLnBvbHlmaWxscz8kanNjb21wLnBvbHlmaWxsczokanNjb21wLmdsb2JhbDtmb3IodmFyIG49MDtuPGgubGVuZ3RoLTE7bisrKXt2YXIgcD1oW25dO2lmKCEocCBpbiBlKSlyZXR1cm47ZT1lW3BdfWg9aFtoLmxlbmd0aC0xXTtjPSRqc2NvbXAuSVNfU1lNQk9MX05BVElWRSYmImVzNiI9PT1jP2VbaF06bnVsbDthPWEoYyk7bnVsbCE9YSYmKGI\/JGpzY29tcC5kZWZpbmVQcm9wZXJ0eSgkanNjb21wLnBvbHlmaWxscyxoLHtjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6YX0pOmEhPT1jJiYodm9pZCAwPT09JGpzY29tcC5wcm9wZXJ0eVRvUG9seWZpbGxTeW1ib2xbaF0mJihjPTFFOSpNYXRoLnJhbmRvbSgpPj4+MCwkanNjb21wLnByb3BlcnR5VG9Qb2x5ZmlsbFN5bWJvbFtoXT0kanNjb21wLklTX1NZTUJPTF9OQVRJVkU\/CiRqc2NvbXAuZ2xvYmFsLlN5bWJvbChoKTokanNjb21wLlBPTFlGSUxMX1BSRUZJWCtjKyIkIitoKSwkanNjb21wLmRlZmluZVByb3BlcnR5KGUsJGpzY29tcC5wcm9wZXJ0eVRvUG9seWZpbGxTeW1ib2xbaF0se2NvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTphfSkpKX07JGpzY29tcC51bmRlcnNjb3JlUHJvdG9DYW5CZVNldD1mdW5jdGlvbigpe3ZhciBiPXthOiEwfSxhPXt9O3RyeXtyZXR1cm4gYS5fX3Byb3RvX189YixhLmF9Y2F0Y2goYyl7fXJldHVybiExfTsKJGpzY29tcC5zZXRQcm90b3R5cGVPZj0kanNjb21wLlRSVVNUX0VTNl9QT0xZRklMTFMmJiJmdW5jdGlvbiI9PXR5cGVvZiBPYmplY3Quc2V0UHJvdG90eXBlT2Y\/T2JqZWN0LnNldFByb3RvdHlwZU9mOiRqc2NvbXAudW5kZXJzY29yZVByb3RvQ2FuQmVTZXQoKT9mdW5jdGlvbihiLGEpe2IuX19wcm90b19fPWE7aWYoYi5fX3Byb3RvX18hPT1hKXRocm93IG5ldyBUeXBlRXJyb3IoYisiIGlzIG5vdCBleHRlbnNpYmxlIik7cmV0dXJuIGJ9Om51bGw7JGpzY29tcC5hcnJheUl0ZXJhdG9ySW1wbD1mdW5jdGlvbihiKXt2YXIgYT0wO3JldHVybiBmdW5jdGlvbigpe3JldHVybiBhPGIubGVuZ3RoP3tkb25lOiExLHZhbHVlOmJbYSsrXX06e2RvbmU6ITB9fX07JGpzY29tcC5hcnJheUl0ZXJhdG9yPWZ1bmN0aW9uKGIpe3JldHVybntuZXh0OiRqc2NvbXAuYXJyYXlJdGVyYXRvckltcGwoYil9fTsKJGpzY29tcC5tYWtlSXRlcmF0b3I9ZnVuY3Rpb24oYil7dmFyIGE9InVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJlN5bWJvbC5pdGVyYXRvciYmYltTeW1ib2wuaXRlcmF0b3JdO3JldHVybiBhP2EuY2FsbChiKTokanNjb21wLmFycmF5SXRlcmF0b3IoYil9OyRqc2NvbXAuZ2VuZXJhdG9yPXt9OyRqc2NvbXAuZ2VuZXJhdG9yLmVuc3VyZUl0ZXJhdG9yUmVzdWx0SXNPYmplY3RfPWZ1bmN0aW9uKGIpe2lmKCEoYiBpbnN0YW5jZW9mIE9iamVjdCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiSXRlcmF0b3IgcmVzdWx0ICIrYisiIGlzIG5vdCBhbiBvYmplY3QiKTt9OwokanNjb21wLmdlbmVyYXRvci5Db250ZXh0PWZ1bmN0aW9uKCl7dGhpcy5pc1J1bm5pbmdfPSExO3RoaXMueWllbGRBbGxJdGVyYXRvcl89bnVsbDt0aGlzLnlpZWxkUmVzdWx0PXZvaWQgMDt0aGlzLm5leHRBZGRyZXNzPTE7dGhpcy5maW5hbGx5QWRkcmVzc189dGhpcy5jYXRjaEFkZHJlc3NfPTA7dGhpcy5maW5hbGx5Q29udGV4dHNfPXRoaXMuYWJydXB0Q29tcGxldGlvbl89bnVsbH07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuc3RhcnRfPWZ1bmN0aW9uKCl7aWYodGhpcy5pc1J1bm5pbmdfKXRocm93IG5ldyBUeXBlRXJyb3IoIkdlbmVyYXRvciBpcyBhbHJlYWR5IHJ1bm5pbmciKTt0aGlzLmlzUnVubmluZ189ITB9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLnN0b3BfPWZ1bmN0aW9uKCl7dGhpcy5pc1J1bm5pbmdfPSExfTsKJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuanVtcFRvRXJyb3JIYW5kbGVyXz1mdW5jdGlvbigpe3RoaXMubmV4dEFkZHJlc3M9dGhpcy5jYXRjaEFkZHJlc3NffHx0aGlzLmZpbmFsbHlBZGRyZXNzX307JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUubmV4dF89ZnVuY3Rpb24oYil7dGhpcy55aWVsZFJlc3VsdD1ifTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS50aHJvd189ZnVuY3Rpb24oYil7dGhpcy5hYnJ1cHRDb21wbGV0aW9uXz17ZXhjZXB0aW9uOmIsaXNFeGNlcHRpb246ITB9O3RoaXMuanVtcFRvRXJyb3JIYW5kbGVyXygpfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5yZXR1cm49ZnVuY3Rpb24oYil7dGhpcy5hYnJ1cHRDb21wbGV0aW9uXz17cmV0dXJuOmJ9O3RoaXMubmV4dEFkZHJlc3M9dGhpcy5maW5hbGx5QWRkcmVzc199OwokanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5qdW1wVGhyb3VnaEZpbmFsbHlCbG9ja3M9ZnVuY3Rpb24oYil7dGhpcy5hYnJ1cHRDb21wbGV0aW9uXz17anVtcFRvOmJ9O3RoaXMubmV4dEFkZHJlc3M9dGhpcy5maW5hbGx5QWRkcmVzc199OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLnlpZWxkPWZ1bmN0aW9uKGIsYSl7dGhpcy5uZXh0QWRkcmVzcz1hO3JldHVybnt2YWx1ZTpifX07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUueWllbGRBbGw9ZnVuY3Rpb24oYixhKXtiPSRqc2NvbXAubWFrZUl0ZXJhdG9yKGIpO3ZhciBjPWIubmV4dCgpOyRqc2NvbXAuZ2VuZXJhdG9yLmVuc3VyZUl0ZXJhdG9yUmVzdWx0SXNPYmplY3RfKGMpO2lmKGMuZG9uZSl0aGlzLnlpZWxkUmVzdWx0PWMudmFsdWUsdGhpcy5uZXh0QWRkcmVzcz1hO2Vsc2UgcmV0dXJuIHRoaXMueWllbGRBbGxJdGVyYXRvcl89Yix0aGlzLnlpZWxkKGMudmFsdWUsYSl9OwokanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5qdW1wVG89ZnVuY3Rpb24oYil7dGhpcy5uZXh0QWRkcmVzcz1ifTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5qdW1wVG9FbmQ9ZnVuY3Rpb24oKXt0aGlzLm5leHRBZGRyZXNzPTB9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLnNldENhdGNoRmluYWxseUJsb2Nrcz1mdW5jdGlvbihiLGEpe3RoaXMuY2F0Y2hBZGRyZXNzXz1iO3ZvaWQgMCE9YSYmKHRoaXMuZmluYWxseUFkZHJlc3NfPWEpfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5zZXRGaW5hbGx5QmxvY2s9ZnVuY3Rpb24oYil7dGhpcy5jYXRjaEFkZHJlc3NfPTA7dGhpcy5maW5hbGx5QWRkcmVzc189Ynx8MH07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUubGVhdmVUcnlCbG9jaz1mdW5jdGlvbihiLGEpe3RoaXMubmV4dEFkZHJlc3M9Yjt0aGlzLmNhdGNoQWRkcmVzc189YXx8MH07CiRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmVudGVyQ2F0Y2hCbG9jaz1mdW5jdGlvbihiKXt0aGlzLmNhdGNoQWRkcmVzc189Ynx8MDtiPXRoaXMuYWJydXB0Q29tcGxldGlvbl8uZXhjZXB0aW9uO3RoaXMuYWJydXB0Q29tcGxldGlvbl89bnVsbDtyZXR1cm4gYn07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuZW50ZXJGaW5hbGx5QmxvY2s9ZnVuY3Rpb24oYixhLGMpe2M\/dGhpcy5maW5hbGx5Q29udGV4dHNfW2NdPXRoaXMuYWJydXB0Q29tcGxldGlvbl86dGhpcy5maW5hbGx5Q29udGV4dHNfPVt0aGlzLmFicnVwdENvbXBsZXRpb25fXTt0aGlzLmNhdGNoQWRkcmVzc189Ynx8MDt0aGlzLmZpbmFsbHlBZGRyZXNzXz1hfHwwfTsKJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUubGVhdmVGaW5hbGx5QmxvY2s9ZnVuY3Rpb24oYixhKXthPXRoaXMuZmluYWxseUNvbnRleHRzXy5zcGxpY2UoYXx8MClbMF07aWYoYT10aGlzLmFicnVwdENvbXBsZXRpb25fPXRoaXMuYWJydXB0Q29tcGxldGlvbl98fGEpe2lmKGEuaXNFeGNlcHRpb24pcmV0dXJuIHRoaXMuanVtcFRvRXJyb3JIYW5kbGVyXygpO3ZvaWQgMCE9YS5qdW1wVG8mJnRoaXMuZmluYWxseUFkZHJlc3NfPGEuanVtcFRvPyh0aGlzLm5leHRBZGRyZXNzPWEuanVtcFRvLHRoaXMuYWJydXB0Q29tcGxldGlvbl89bnVsbCk6dGhpcy5uZXh0QWRkcmVzcz10aGlzLmZpbmFsbHlBZGRyZXNzX31lbHNlIHRoaXMubmV4dEFkZHJlc3M9Yn07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuZm9ySW49ZnVuY3Rpb24oYil7cmV0dXJuIG5ldyAkanNjb21wLmdlbmVyYXRvci5Db250ZXh0LlByb3BlcnR5SXRlcmF0b3IoYil9OwokanNjb21wLmdlbmVyYXRvci5Db250ZXh0LlByb3BlcnR5SXRlcmF0b3I9ZnVuY3Rpb24oYil7dGhpcy5vYmplY3RfPWI7dGhpcy5wcm9wZXJ0aWVzXz1bXTtmb3IodmFyIGEgaW4gYil0aGlzLnByb3BlcnRpZXNfLnB1c2goYSk7dGhpcy5wcm9wZXJ0aWVzXy5yZXZlcnNlKCl9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQuUHJvcGVydHlJdGVyYXRvci5wcm90b3R5cGUuZ2V0TmV4dD1mdW5jdGlvbigpe2Zvcig7MDx0aGlzLnByb3BlcnRpZXNfLmxlbmd0aDspe3ZhciBiPXRoaXMucHJvcGVydGllc18ucG9wKCk7aWYoYiBpbiB0aGlzLm9iamVjdF8pcmV0dXJuIGJ9cmV0dXJuIG51bGx9OyRqc2NvbXAuZ2VuZXJhdG9yLkVuZ2luZV89ZnVuY3Rpb24oYil7dGhpcy5jb250ZXh0Xz1uZXcgJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dDt0aGlzLnByb2dyYW1fPWJ9OwokanNjb21wLmdlbmVyYXRvci5FbmdpbmVfLnByb3RvdHlwZS5uZXh0Xz1mdW5jdGlvbihiKXt0aGlzLmNvbnRleHRfLnN0YXJ0XygpO2lmKHRoaXMuY29udGV4dF8ueWllbGRBbGxJdGVyYXRvcl8pcmV0dXJuIHRoaXMueWllbGRBbGxTdGVwXyh0aGlzLmNvbnRleHRfLnlpZWxkQWxsSXRlcmF0b3JfLm5leHQsYix0aGlzLmNvbnRleHRfLm5leHRfKTt0aGlzLmNvbnRleHRfLm5leHRfKGIpO3JldHVybiB0aGlzLm5leHRTdGVwXygpfTsKJGpzY29tcC5nZW5lcmF0b3IuRW5naW5lXy5wcm90b3R5cGUucmV0dXJuXz1mdW5jdGlvbihiKXt0aGlzLmNvbnRleHRfLnN0YXJ0XygpO3ZhciBhPXRoaXMuY29udGV4dF8ueWllbGRBbGxJdGVyYXRvcl87aWYoYSlyZXR1cm4gdGhpcy55aWVsZEFsbFN0ZXBfKCJyZXR1cm4iaW4gYT9hWyJyZXR1cm4iXTpmdW5jdGlvbihjKXtyZXR1cm57dmFsdWU6Yyxkb25lOiEwfX0sYix0aGlzLmNvbnRleHRfLnJldHVybik7dGhpcy5jb250ZXh0Xy5yZXR1cm4oYik7cmV0dXJuIHRoaXMubmV4dFN0ZXBfKCl9OwokanNjb21wLmdlbmVyYXRvci5FbmdpbmVfLnByb3RvdHlwZS50aHJvd189ZnVuY3Rpb24oYil7dGhpcy5jb250ZXh0Xy5zdGFydF8oKTtpZih0aGlzLmNvbnRleHRfLnlpZWxkQWxsSXRlcmF0b3JfKXJldHVybiB0aGlzLnlpZWxkQWxsU3RlcF8odGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yX1sidGhyb3ciXSxiLHRoaXMuY29udGV4dF8ubmV4dF8pO3RoaXMuY29udGV4dF8udGhyb3dfKGIpO3JldHVybiB0aGlzLm5leHRTdGVwXygpfTsKJGpzY29tcC5nZW5lcmF0b3IuRW5naW5lXy5wcm90b3R5cGUueWllbGRBbGxTdGVwXz1mdW5jdGlvbihiLGEsYyl7dHJ5e3ZhciBlPWIuY2FsbCh0aGlzLmNvbnRleHRfLnlpZWxkQWxsSXRlcmF0b3JfLGEpOyRqc2NvbXAuZ2VuZXJhdG9yLmVuc3VyZUl0ZXJhdG9yUmVzdWx0SXNPYmplY3RfKGUpO2lmKCFlLmRvbmUpcmV0dXJuIHRoaXMuY29udGV4dF8uc3RvcF8oKSxlO3ZhciBoPWUudmFsdWV9Y2F0Y2gobil7cmV0dXJuIHRoaXMuY29udGV4dF8ueWllbGRBbGxJdGVyYXRvcl89bnVsbCx0aGlzLmNvbnRleHRfLnRocm93XyhuKSx0aGlzLm5leHRTdGVwXygpfXRoaXMuY29udGV4dF8ueWllbGRBbGxJdGVyYXRvcl89bnVsbDtjLmNhbGwodGhpcy5jb250ZXh0XyxoKTtyZXR1cm4gdGhpcy5uZXh0U3RlcF8oKX07CiRqc2NvbXAuZ2VuZXJhdG9yLkVuZ2luZV8ucHJvdG90eXBlLm5leHRTdGVwXz1mdW5jdGlvbigpe2Zvcig7dGhpcy5jb250ZXh0Xy5uZXh0QWRkcmVzczspdHJ5e3ZhciBiPXRoaXMucHJvZ3JhbV8odGhpcy5jb250ZXh0Xyk7aWYoYilyZXR1cm4gdGhpcy5jb250ZXh0Xy5zdG9wXygpLHt2YWx1ZTpiLnZhbHVlLGRvbmU6ITF9fWNhdGNoKGEpe3RoaXMuY29udGV4dF8ueWllbGRSZXN1bHQ9dm9pZCAwLHRoaXMuY29udGV4dF8udGhyb3dfKGEpfXRoaXMuY29udGV4dF8uc3RvcF8oKTtpZih0aGlzLmNvbnRleHRfLmFicnVwdENvbXBsZXRpb25fKXtiPXRoaXMuY29udGV4dF8uYWJydXB0Q29tcGxldGlvbl87dGhpcy5jb250ZXh0Xy5hYnJ1cHRDb21wbGV0aW9uXz1udWxsO2lmKGIuaXNFeGNlcHRpb24pdGhyb3cgYi5leGNlcHRpb247cmV0dXJue3ZhbHVlOmIucmV0dXJuLGRvbmU6ITB9fXJldHVybnt2YWx1ZTp2b2lkIDAsZG9uZTohMH19OwokanNjb21wLmdlbmVyYXRvci5HZW5lcmF0b3JfPWZ1bmN0aW9uKGIpe3RoaXMubmV4dD1mdW5jdGlvbihhKXtyZXR1cm4gYi5uZXh0XyhhKX07dGhpcy50aHJvdz1mdW5jdGlvbihhKXtyZXR1cm4gYi50aHJvd18oYSl9O3RoaXMucmV0dXJuPWZ1bmN0aW9uKGEpe3JldHVybiBiLnJldHVybl8oYSl9O3RoaXNbU3ltYm9sLml0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfX07JGpzY29tcC5nZW5lcmF0b3IuY3JlYXRlR2VuZXJhdG9yPWZ1bmN0aW9uKGIsYSl7YT1uZXcgJGpzY29tcC5nZW5lcmF0b3IuR2VuZXJhdG9yXyhuZXcgJGpzY29tcC5nZW5lcmF0b3IuRW5naW5lXyhhKSk7JGpzY29tcC5zZXRQcm90b3R5cGVPZiYmYi5wcm90b3R5cGUmJiRqc2NvbXAuc2V0UHJvdG90eXBlT2YoYSxiLnByb3RvdHlwZSk7cmV0dXJuIGF9OwokanNjb21wLmFzeW5jRXhlY3V0ZVByb21pc2VHZW5lcmF0b3I9ZnVuY3Rpb24oYil7ZnVuY3Rpb24gYShlKXtyZXR1cm4gYi5uZXh0KGUpfWZ1bmN0aW9uIGMoZSl7cmV0dXJuIGIudGhyb3coZSl9cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKGUsaCl7ZnVuY3Rpb24gbihwKXtwLmRvbmU\/ZShwLnZhbHVlKTpQcm9taXNlLnJlc29sdmUocC52YWx1ZSkudGhlbihhLGMpLnRoZW4obixoKX1uKGIubmV4dCgpKX0pfTskanNjb21wLmFzeW5jRXhlY3V0ZVByb21pc2VHZW5lcmF0b3JGdW5jdGlvbj1mdW5jdGlvbihiKXtyZXR1cm4gJGpzY29tcC5hc3luY0V4ZWN1dGVQcm9taXNlR2VuZXJhdG9yKGIoKSl9OyRqc2NvbXAuYXN5bmNFeGVjdXRlUHJvbWlzZUdlbmVyYXRvclByb2dyYW09ZnVuY3Rpb24oYil7cmV0dXJuICRqc2NvbXAuYXN5bmNFeGVjdXRlUHJvbWlzZUdlbmVyYXRvcihuZXcgJGpzY29tcC5nZW5lcmF0b3IuR2VuZXJhdG9yXyhuZXcgJGpzY29tcC5nZW5lcmF0b3IuRW5naW5lXyhiKSkpfTsKY29uc3QgTGVhZD1mdW5jdGlvbihiKXtjb25zdCBhPU9iamVjdC5hc3NpZ24oe30sYiksYz1hLmxlYWRJZHx8YS5uYW1lO2I9YS5sZWFkTm9kZTtjb25zdCBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmb3JtIitjKTtsZXQgaD0hMSxuPWUucXVlcnlTZWxlY3RvcigiLmxlYWRFbWFpbCBbZGF0YS1zdWJqZWN0XSIpLmlubmVyVGV4dCxwPWUucXVlcnlTZWxlY3RvcigiLmxlYWRFbWFpbCBbZGF0YS1ib2R5XSIpLmlubmVySFRNTCx5PWEudHJpZ2dlcixtPXt9O2NvbnN0IHo9KCk9PntBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKGUuZWxlbWVudHMsZD0+e2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgZC5hdHRyaWJ1dGVzLm5hbWUpe3ZhciBmPWQuYXR0cmlidXRlcy5uYW1lLnZhbHVlfHwhMTtzd2l0Y2goITApe2Nhc2UgWyJuYW1lIl0uaW5jbHVkZXMoZi50b0xvd2VyQ2FzZSgpKTpjYXNlIFsiZmlyc3RuYW1lIl0uaW5jbHVkZXMoZi50b0xvd2VyQ2FzZSgpKTpjYXNlIFsibGFzdG5hbWUiXS5pbmNsdWRlcyhmLnRvTG93ZXJDYXNlKCkpOmNhc2UgImVtYWlsIj09CmYudG9Mb3dlckNhc2UoKTpjYXNlICJkYXRhIj09ZjpicmVhaztjYXNlICJwaG9uZSI9PWYudG9Mb3dlckNhc2UoKTpjYXNlICJ0ZWwiPT1kLnR5cGU6SU1hc2soZCx7bWFzazpbe21hc2s6IjAwMCAwMDAtMDAwMCJ9LHttYXNrOiIxIDAwMCAwMDAtMDAwMCJ9XX0pfX19KTsidW5kZWZpbmVkIiE9PXR5cGVvZiBjbGllbnRTdG9yYWdlJiZBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKGUuZWxlbWVudHMsZD0+e2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgZC5hdHRyaWJ1dGVzLm5hbWUpe3ZhciBmPWQuYXR0cmlidXRlcy5uYW1lLnZhbHVlfHwhMTtzd2l0Y2goITApe2Nhc2UgWyJuYW1lIl0uaW5jbHVkZXMoZi50b0xvd2VyQ2FzZSgpKTp2YXIgZztmPW51bGwhPShnPWNsaWVudFN0b3JhZ2UuZ2V0KCJmaXJzdG5hbWUiKSk\/ZzoiIjt2YXIgaztnPW51bGwhPShrPWNsaWVudFN0b3JhZ2UuZ2V0KCJsYXN0bmFtZSIpKT9rOiIiO2s9ZisoIiIhPWc\/IiAiK2NsaWVudFN0b3JhZ2UuZ2V0KCJsYXN0bmFtZSIpOgoiIik7ZC52YWx1ZT1rO2JyZWFrO2Nhc2UgWyJmaXJzdG5hbWUiXS5pbmNsdWRlcyhmLnRvTG93ZXJDYXNlKCkpOmxldCBsO2QudmFsdWU9bnVsbCE9KGw9Y2xpZW50U3RvcmFnZS5nZXQoImZpcnN0bmFtZSIpKT9sOiIiO2JyZWFrO2Nhc2UgWyJsYXN0bmFtZSJdLmluY2x1ZGVzKGYudG9Mb3dlckNhc2UoKSk6bGV0IHI7ZC52YWx1ZT1udWxsIT0ocj1jbGllbnRTdG9yYWdlLmdldCgibGFzdG5hbWUiKSk\/cjoiIjticmVhaztjYXNlICJlbWFpbCI9PWYudG9Mb3dlckNhc2UoKTpsZXQgdjtkLnZhbHVlPW51bGwhPSh2PWNsaWVudFN0b3JhZ2UuZ2V0KCJlbWFpbCIpKT92OiIiO2JyZWFrO2Nhc2UgInBob25lIj09Zi50b0xvd2VyQ2FzZSgpOmxldCB3O2QudmFsdWU9bnVsbCE9KHc9Y2xpZW50U3RvcmFnZS5nZXQoInBob25lIikpP3c6IiJ9fX0pfSxEPSgpPT57aWYoaClyZXR1cm4hMTtoPSEwO0EoKS50aGVuKGQ9PntpZighZClyZXR1cm4gdCgicG9wdXAudmFsaWRhdGlvbkZhaWxlZCIpLApoPSExO2EudmFsaWRhdGVkPSEwO0IoKTtDKCl9KX0sQj0oKT0+e0FycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwoZS5lbGVtZW50cyxkPT57aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBkLmF0dHJpYnV0ZXMubmFtZSl7dmFyIGY9ZC5hdHRyaWJ1dGVzLm5hbWUudmFsdWV8fCExO2lmKGYpc3dpdGNoKG1bZl09ZC52YWx1ZSwhMCl7Y2FzZSBbIm5hbWUiXS5pbmNsdWRlcyhmLnRvTG93ZXJDYXNlKCkpOmQ9ZC52YWx1ZS5zcGxpdCgiICIpO20udXNlckZpcnN0TmFtZSs9ZC5zaGlmdCgpO20udXNlckxhc3ROYW1lKz1kLmpvaW4oIiAiKTticmVhaztjYXNlIFsiZmlyc3RuYW1lIl0uaW5jbHVkZXMoZi50b0xvd2VyQ2FzZSgpKTptLnVzZXJGaXJzdE5hbWUrPWQudmFsdWU7YnJlYWs7Y2FzZSBbImxhc3RuYW1lIl0uaW5jbHVkZXMoZi50b0xvd2VyQ2FzZSgpKTptLnVzZXJMYXN0TmFtZSs9ZC52YWx1ZTticmVhaztjYXNlICJlbWFpbCI9PWYudG9Mb3dlckNhc2UoKTptLnVzZXJFbWFpbD0KZC52YWx1ZTticmVhaztjYXNlICJwaG9uZSI9PWYudG9Mb3dlckNhc2UoKTpjYXNlICJ0ZWwiPT1kLnR5cGU6SU1hc2soZCx7bWFzazpbe21hc2s6IjAwMCAwMDAtMDAwMCJ9LHttYXNrOiIxIDAwMCAwMDAtMDAwMCJ9XX0pO20udXNlclBob25lPWQudmFsdWU7YnJlYWs7Y2FzZSAiZGF0YSI9PWY6Zm9yKGxldCBnIGluIGQuZGF0YXNldCltW2cucmVwbGFjZSgvLS4vZyxrPT5rWzFdLnRvVXBwZXJDYXNlKCkpXT1kLmRhdGFzZXRbZ119fX0pfSxDPSgpPT57aWYoITE9PT1hLm9uQmVmb3JlU3VibWl0KGEpKXJldHVybiBhLmNsb3NlT25TdWJtaXQmJnEoKSwhMTtpZihDb29raWVzLmdldChhLmxlYWRJZCkpcmV0dXJuIGg9ITEseCghMCksITE7RSgpO3QoInBvcHVwLnN1Ym1pdCIpO3ZhciBkO2lmKCJEaWdpdGFsUmV0YWlsIj09KG51bGw9PShkPW0pP3ZvaWQgMDpkLmludm9rZXIpKXtkPWNsaWVudFN0b3JhZ2UuZ2V0KCJjbGllbnRTdG9yYWdlIil8fHt9O3ZhciBmO2xldCBrO20ubGVhZEludm9rZXJTSUQ9CkYoKG51bGw9PWQ\/dm9pZCAwOm51bGw9PShmPWQuY29udGFjdCk\/dm9pZCAwOmYuZW1haWwpKyhudWxsPT1kP3ZvaWQgMDpudWxsPT0oaz1kLmNvbnRhY3QpP3ZvaWQgMDprLnBob25lKSk7ZW1haWxIYW5kbGVyLmxlYWRJbnZva2VyPSJEaWdpdGFsUmV0YWlsIjtlbWFpbEhhbmRsZXIuZGlnaXRhbFJldGFpbFNJRD1tLmxlYWRJbnZva2VyU0lEfWVtYWlsSGFuZGxlci5ib2R5PUcoKTtlbWFpbEhhbmRsZXIuc3ViamVjdD1uO09iamVjdC5hc3NpZ24oZW1haWxIYW5kbGVyLG0pOyJzdHJpbmciPT10eXBlb2YgZW1haWxIYW5kbGVyLnVzZXJOYW1lJiYoZj1lbWFpbEhhbmRsZXIudXNlck5hbWUuc3BsaXQoIiAiKSxlbWFpbEhhbmRsZXIudXNlckZpcnN0TmFtZT1mLnNoaWZ0KCksZW1haWxIYW5kbGVyLnVzZXJMYXN0TmFtZT1mLmpvaW4oIiAiKSk7ZW1haWxIYW5kbGVyLm9uQmVmb3JlU2hvd0NvbnNlbnQ9ZnVuY3Rpb24oKXtlbWFpbEhhbmRsZXIub25CZWZvcmVTaG93Q29uc2VudD0hMX07CmVtYWlsSGFuZGxlci5vbkFmdGVyQ29uc2VudD1mdW5jdGlvbihrKXtlbWFpbEhhbmRsZXIub25CZWZvcmVTaG93Q29uc2VudD0hMTtlbWFpbEhhbmRsZXIub25BZnRlckNvbnNlbnQ9ITF9O2VtYWlsSGFuZGxlci5vbkR1cGxpY2F0ZVNlbmQ9ZnVuY3Rpb24oKXtlbWFpbEhhbmRsZXIucmVzZXRDYWxsYmFja3MoKX07ZW1haWxIYW5kbGVyLmNhbGxiYWNrPWZ1bmN0aW9uKGspe3ZhciBsPSExO2Euc2hvd0VtYWlsQ29uZmlybWF0aW9uJiYobD1nZXRNYWlsU2VudEhhbmRsZXIoIl8iK2EubmFtZSksbC50aW1lb3V0Q2FsbGJhY2s9ZnVuY3Rpb24oKXtlLnJlc2V0KCl9KTtpZihrKXQoInBvcHVwLmxlYWRfc2VudCIpLCJmdW5jdGlvbiI9PXR5cGVvZiBvcmlnaW5hbENhbGxiYWNrJiZvcmlnaW5hbENhbGxiYWNrLmNhbGwoKSwib25TdWJtaXQiPT1hLmNvb2tpZUNyZWF0ZSYmQ29va2llcy5zZXQoYS5jb29raWVOYW1lLCIxIixhLmNvb2tpZUR1cmF0aW9uLCIvIiksYS5zdWJtaXRGbGFnJiYKQ29va2llcy5zZXQoInBvcHVwRm9ybUZpbGxlZCIsIjEiLDEsIi8iKSxhLmNsb3NlT25TdWJtaXQmJnEoIkNPTlNFTlQiKSxsP2wuc2hvd1N1Y2Nlc3MoKTowPCQoYGZvcm0jZm9ybSR7YS5uYW1lfV9jb25maXJtYCkubGVuZ3RoJiYkKGBmb3JtI2Zvcm0ke2EubmFtZX1fY29uZmlybWApLnRyaWdnZXIoInN1Ym1pdCIpO2Vsc2V7bHx8KGw9Z2V0TWFpbFNlbnRIYW5kbGVyKCkpO3RyeXtsLnNob3dGYWlsKCl9Y2F0Y2gocil7fX14KGspO3UoKTtzZXRUaW1lb3V0KGVtYWlsSGFuZGxlci5yZXNldENhbGxiYWNrcygpLDFFMyk7ayYmQ29va2llcy5zZXQoYS5sZWFkSWQsIjEiLDEsIi8iKX07YS5zdWJtaXR0ZWQ9ITA7aWYoImZ1bmN0aW9uIj09dHlwZW9mIGEub25CZWZvcmVTZW5kTWFpbCYmMD09YS5vbkJlZm9yZVNlbmRNYWlsLmNhbGwoKSlyZXR1cm4hMTtsZXQgZz17fTsiZnVuY3Rpb24iPT10eXBlb2YgYS5vbkFERiYmKGc9YS5vbkFERi5jYWxsKCkpOyJtYWtlIG1vZGVsIHllYXIgc3RvY2tOdW1iZXIgdHJpbSB2aW4gcHJpY2UgY2FyaWQiLnNwbGl0KCIgIikuZm9yRWFjaChrPT4Ke2VtYWlsSGFuZGxlcltrXT1nW2tdfHxlbWFpbEhhbmRsZXJba119KTthLnB1cmNoYXNlSW50ZW50UG9wdXB8fGVtYWlsSGFuZGxlci5zZW5kTWFpbChhLmJ5cGFzc0NvbnNlbnQpO3JldHVybiEwfSx1PSgpPT57bT17dXNlckZpcnN0TmFtZToiIix1c2VyTGFzdE5hbWU6IiIsdXNlckVtYWlsOiIiLHVzZXJQaG9uZToiIn07aD0hMX0sQT1mdW5jdGlvbigpe3JldHVybiAkanNjb21wLmFzeW5jRXhlY3V0ZVByb21pc2VHZW5lcmF0b3JGdW5jdGlvbihmdW5jdGlvbiooKXtpZihhLnNraXBWYWxpZGF0aW9uKXJldHVybiEwO2NvbnN0IGQ9bmV3IFByaXN0aW5lKGUse2NsYXNzVG86ImZvcm0tbGFiZWwiLGVycm9yQ2xhc3M6ImludmFsaWQifSwhMSk7bGV0IGY9ZS5xdWVyeVNlbGVjdG9yKCdbbmFtZT0icGhvbmVudW0iXScpLGc9ITAsaz0hMDtpZihmLnJlcXVpcmVkfHxmLnZhbHVlKWc9bnVsbCxnPXlpZWxkIEgoZi52YWx1ZSk7bnVsbD09PWc\/KGQuYWRkVmFsaWRhdG9yKGYsZnVuY3Rpb24obCl7bD0KbC5yZXBsYWNlKC9bXjAtOV0rL2dpLCIiKTsiMSI9PWxbMF0mJihsPWwuc3Vic3RyaW5nKDEpKTtsPXBhcnNlSW50KGwuc3Vic3RyaW5nKDAsMykpO3JldHVybiBnPVs0MzgsNTE0LDI2Myw0NTAsNTc5LDgxOSwyNDksNzA1LDIyNiw1MTksMjg5LDM2NSw5MDUsNDE2LDQzNyw2NDcsMzQzLDYxMyw3MDksODczLDQxOCw1ODEsNTA2LDkwMl0uaW5jbHVkZXMobCl9LCJFbnRlciBhIHZhbGlkIHBob25lIG51bWJlciIsNSwhMSksaz1kLnZhbGlkYXRlKCkpOihrPWQudmFsaWRhdGUoKSYmZyxmLnBhcmVudEVsZW1lbnQuY2xhc3NMaXN0LnRvZ2dsZSgiaW52YWxpZCIsIWcpKTtmLnJlcXVpcmVkJiYhZyYmInVuZGVmaW5lZCIhPXR5cGVvZiBlbWFpbEhhbmRsZXImJihlbWFpbEhhbmRsZXIucGhvbmVWYWxpZGF0aW9uQXR0ZW1wdHMrKyxlbWFpbEhhbmRsZXIucGhvbmVNYW5kYXRvcnk9ITApO3JldHVybiBrfSl9LEg9ZD0+JGpzY29tcC5hc3luY0V4ZWN1dGVQcm9taXNlR2VuZXJhdG9yRnVuY3Rpb24oZnVuY3Rpb24qKCl7bGV0IGY9Cm51bGw7ZD1kLnJlcGxhY2UoL1teMC05XSsvZ2ksIiIpO3lpZWxkIGF4aW9zLmdldCgiL3Byb3h5X3JkMmMvc2l0ZXMvc3ZjL3ZhbGlkYXRlUGhvbmVOdW1iZXIucGhwIix7dGltZW91dDoyRTMsZGF0YVR5cGU6Impzb24iLHBhcmFtczp7cGhvbmU6ZH0scmVzcG9uc2VUeXBlOiJqc29uIn0pLnRoZW4oZnVuY3Rpb24oZyl7InVuZGVmaW5lZCIhPT10eXBlb2YgZy5kYXRhLmlzT2smJihmPWcuZGF0YS5waG9uZU51bWJlcklzVmFsaWQpfSkuY2F0Y2goZnVuY3Rpb24oZyl7fSk7cmV0dXJuIGZ9KSxFPSgpPT57Y29uc3QgZD1kb2N1bWVudC5mb3Jtcy5lbWFpbG1zZ2ZybXx8ITE7aWYoIWQpcmV0dXJuITE7ZC5xdWVyeVNlbGVjdG9yKCdbbmFtZT0ibGFiZWwiJykudmFsdWU9YCR7YS50eXBlfSAoJHttLmNvbmRpdGlvbn0pYDtkLnF1ZXJ5U2VsZWN0b3IoJ1tuYW1lPSJzZWN0aW9uIicpLnZhbHVlPW0uY29uZGl0aW9ufSxHPWZ1bmN0aW9uKCl7bGV0IGQ9cCxmPXtuYW1lOlsiTU5BTUUiXSwKcGhvbmVudW06WyJNUEhPTkUiLCJQSE9ORSJdLGVtYWlsOlsiTU1BSUwiXX07T2JqZWN0LmtleXMobSkuZm9yRWFjaChnPT57dmFyIGs9bmV3IFJlZ0V4cCgie1xcJCIrZy50b1VwcGVyQ2FzZSgpKyJ9IiwiZyIpO2Q9ZC5yZXBsYWNlKGssbVtnXSk7ZltnXSYmKGs9bmV3IFJlZ0V4cCgie1xcJCgiK2ZbZ10uam9pbigifCIpKyIpfSIsImciKSxkPWQucmVwbGFjZShrLG1bZ10pKX0pO3JldHVybiBkfSx0PWZ1bmN0aW9uKGQpe3ZhciBmPWEudHlwZTtpZighZClyZXR1cm4hMTtpZigicG9wdXAubGVhZF9zZW50Ij09ZCl7dmFyIGc9ImNsaWNrIi5yZXBsYWNlKC8oXlthLXpdezF9KS9nLGZ1bmN0aW9uKGwpe3JldHVybiBsLnRvVXBwZXJDYXNlKCl9KSxrPWQyY21lZGlhLnBhZ2VEZXBhcnRtZW50KCk7Z2FUcmFjaygiYy5fdHJhY2tFdmVudCIsIlBvcHVwLWxlYWRzIixnLGssMSl9InVuZGVmaW5lZCIhPXR5cGVvZiBhY3RpdmVVc2VyUHJvZmlsZU1uZyYmInVuZGVmaW5lZCIhPXR5cGVvZiBhY3RpdmVVc2VyUHJvZmlsZU1uZy5sb2dQYWdlVmlld0V2ZW50PwooInVuZGVmaW5lZCIhPT10eXBlb2YgZGVidWcmJmRlYnVnKCJMb2cgRXZlbnQiLGQsZixzZWxmKSxhY3RpdmVVc2VyUHJvZmlsZU1uZy5sb2dQYWdlVmlld0V2ZW50KGQsZikpOiJ1bmRlZmluZWQiIT09dHlwZW9mIGRlYnVnJiZkZWJ1ZygiIVVOTE9HR0VEIEVWRU5UISIsZCxmKX0scT0oKT0+e2Eub25CZWZvcmVDbG9zZShhKTt1KCk7TW9kYWxzW2NdJiZNb2RhbHNbY10uY2xvc2UoKX0seD1kPT57YS5vbkFmdGVyU3VibWl0KGEsZCk7YS5jbG9zZU9uU3VibWl0JiZkJiZxKCk7ZCYmZS5yZXNldCgpfSxGPWQ9PntsZXQgZj0wO2lmKDA9PWQubGVuZ3RoKXJldHVybiBmO2ZvcihsZXQgZz0wLGs9ZC5sZW5ndGg7ZzxrO2crKyl7bGV0IGw9ZC5jaGFyQ29kZUF0KGcpO2Y9KGY8PDUpLWYrbDtmfD0wfXJldHVybiBNYXRoLmFicyhmKX07KCgpPT57JChlKS50cmlnZ2VyKCJwb3B1cGl6ZXIub25PcGVuIiwkKGUpKTt1KCk7eigpO2Uub25zdWJtaXQ9ZD0+e2QucHJldmVudERlZmF1bHQoKTsKRCgpfTthLm9uQmVmb3JlT3BlbihhKX0pKCk7cmV0dXJue2xlYWRJZDpjLGxlYWROb2RlOmIsdHJpZ2dlcjp5LGRpc3BsYXk6KCk9PnthLmRpc3BsYXk\/YS5kaXNwbGF5KGEpOihhLmNvbnRlbnRTcmM9YGxlYWQke2N9YCxNb2RhbHNbY118fChNb2RhbHNbY109bmV3IE1vZGFsKGMsYSkpLE1vZGFsc1tjXS5kaXNwbGF5KCkpfSxjbG9zZTpxfX0sTGVhZEhhbmRsZXI9ZnVuY3Rpb24oKXtjb25zdCBiPXtvbkJlZm9yZU9wZW46KCk9Pnt9LG9uQmVmb3JlVmFsaWRhdGlvbjooKT0+e30sb25CZWZvcmVTdWJtaXQ6KCk9Pnt9LG9uQWZ0ZXJTdWJtaXQ6KCk9Pnt9LG9uQmVmb3JlQ2FuY2VsOigpPT57fSxvbkJlZm9yZUNsb3NlOigpPT57fSxvbkNsb3NlOigpPT57fSxmb3JtOntlbWFpbGlkOm51bGwsb2ZmZXJ0eXBlOm51bGwsbmFtZTpudWxsLHNlbmRUbzpudWxsLHNlbmRUb0FERjpudWxsLE9LQnV0dG9uQ2xhc3M6InN1Ym1pdEJ0biIsQ2FuY2VsQnV0dG9uQ2xhc3M6ImNhbmNlbEJ0biIsCnNob3dFbWFpbENvbmZpcm1hdGlvbjohMSxmcm9tQUE6ITF9LGdldElkU3VmZml4OmE9Pk1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSpEYXRlLm5vdygpKSxtb2RlOiJzdGF0aWMiLHRyaWdnZXI6ImF1dG8iLGRlbGF5OiExLGRpc3BsYXk6ITEsc3VibWl0dGVkOiExLGNsb3NlT25TdWJtaXQ6ITAsc3VibWl0RmxhZzohMSxieXBhc3NDb25zZW50OiExLHNob3dFbWFpbENvbmZpcm1hdGlvbjohMCxwdXJjaGFzZUludGVudFBvcHVwOiExfTtpbml0PSgpPT57InVuZGVmaW5lZCIhPT10eXBlb2Ygd2luZG93LkFic3RyYWN0VXNlZFNycE9iamVjdCYmKG5ldyBBYnN0cmFjdFVzZWRTcnBPYmplY3Qoe25hbWU6IlZpZXdEaXNjb3ZlckJ0bkhhbmRsZXIifSkpLmFkZFVzZWRTcnBFdmVudE9ic2VydmVyKCJjb250ZW50IixhZGRMZWFkRXZlbnRzKS5pbml0VXNlZFNycE9ic2VydmVyKCk7YWRkTGVhZEV2ZW50cygpfTthZGRMZWFkRXZlbnRzPSgpPT57ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiW2RhdGEtbGVhZC10cmlnZ2VyXSIpLmZvckVhY2goYT0+Cnt0aGlzLmluaXRMZWFkVHJpZ2dlcihhKX0pfTt0aGlzLmluaXRMZWFkVHJpZ2dlcj1hPT57YS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsYz0+e2Muc3RvcFByb3BhZ2F0aW9uKCk7Yz1hLmRhdGFzZXQubGVhZFRyaWdnZXI7bGV0IGU9YS5kYXRhc2V0LmxlYWRpZHx8ITE7TGVhZENvbmZpZ3NbY10udHJpZ2dlcj1hO2M9dGhpcy5nZXRMZWFkKGMsZSk7Yy5kaXNwbGF5KCk7YS5kYXRhc2V0LmxlYWRpZD1jLmxlYWRJZH0pfTt0aGlzLmdldExlYWQ9KGEsYyk9PntpZighKGM9TGVhZHNbY3x8YV0pKXt7Yz1hO2xldCBlPU9iamVjdC5hc3NpZ24oe30sYik7T2JqZWN0LmFzc2lnbihlLExlYWRDb25maWdzW2FdKTtjb25zdCBoPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGBsZWFkJHthfWApO2g\/KGE9aCwic3RhdGljIiE9ZS5tb2RlJiYoYz1gJHtlLm5hbWV9XyR7ZS5nZXRJZFN1ZmZpeChlKX1gLGE9aC5jbG9uZU5vZGUoITApLGEuc2V0QXR0cmlidXRlKCJpZCIsImxlYWQiK2MpLGEucXVlcnlTZWxlY3RvcigiZm9ybSIpLnNldEF0dHJpYnV0ZSgiaWQiLAoiZm9ybSIrYyksZG9jdW1lbnQuYm9keS5hcHBlbmQoYSkpLGUubGVhZElkPWMsZS5sZWFkTm9kZT1hLExlYWRzW2NdPW5ldyBMZWFkKGUpLGM9TGVhZHNbY10pOmM9ITF9fXJldHVybiBjfTtyZXR1cm57aW5pdCxpbml0TGVhZFRyaWdnZXIsZ2V0TGVhZH19O3ZhciBMZWFkcz1MZWFkc3x8e307ZG9jUmVhZHlBcnIucHVzaChMZWFkSGFuZGxlcigpLmluaXQpOwovKiogL2pzL3ZhbmlsbGFqcy9heGlvcy5taW4uanMgKiovCiFmdW5jdGlvbihlLHQpeyJvYmplY3QiPT10eXBlb2YgZXhwb3J0cyYmIm9iamVjdCI9PXR5cGVvZiBtb2R1bGU\/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\/Du3Qgc2VwdCBvY3Qgbm92IGTDqWMiLnNwbGl0KCIgIiksCmxvbmdoYW5kOiJqYW52aWVyIGbDqXZyaWVyIG1hcnMgYXZyaWwgbWFpIGp1aW4ganVpbGxldCBhb8O7dCBzZXB0ZW1icmUgb2N0b2JyZSBub3ZlbWJyZSBkw6ljZW1icmUiLnNwbGl0KCIgIil9LG9yZGluYWw6ZnVuY3Rpb24oZCl7cmV0dXJuIDE8ZD8iIjoiZXIifSxyYW5nZVNlcGFyYXRvcjoiIGF1ICIsd2Vla0FiYnJldmlhdGlvbjoiU2VtIixzY3JvbGxUaXRsZToiRMOpZmlsZXIgcG91ciBhdWdtZW50ZXIgbGEgdmFsZXVyIix0b2dnbGVUaXRsZToiQ2xpcXVlciBwb3VyIGJhc2N1bGVyIix0aW1lXzI0aHI6ITB9O2EubDEwbnMuZnI9YzthPWEubDEwbnM7Yi5GcmVuY2g9YztiLmRlZmF1bHQ9YTtPYmplY3QuZGVmaW5lUHJvcGVydHkoYiwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSl9KTsKLyoqIC9qcy9mci5uZXdjYXJzLmlubGluZS5qcyAqKi8KdmFyIGpzX2QyY19nZXRfdmFsPShqc19kMmNfZ2V0X3ZhbHx8ZnVuY3Rpb24oaWQpe3RyeXtyZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLnZhbHVlO31jYXRjaChleCl7aWYoY29uc29sZSYmY29uc29sZS5sb2cpY29uc29sZS5sb2coIlN5c3RlbSBmYWlsZWQgd2hpbGUgcmV0cmlldmluZyByZXBsYWNlbWVudCB2YWx1ZTogIitpZCxleCk7cmV0dXJuJyc7fX0pO3ZhciBpZGVudF80ODk2NDA0OWM1M2NiNDJjMTZmZWQxZThkZTBkMzM2Njt0cnl7ZnVuY3Rpb24gT3B0YW5vbldyYXBwZXIoKXt9fWNhdGNoKGV6ejEpe2lmKGNvbnNvbGUmJmNvbnNvbGUubG9nKQpjb25zb2xlLmxvZyhlenoxKTt9CnZhciBpZGVudF9mMGFmNzExNWI4NmZiMTJkZmMwMjgyMGFhNGY2YWRmNDt0cnl7RDJTRCh7ImxpYnJhcnlKUyI6IlwvXC90YWdnaW5nLnNoaWZ0ZGlnaXRhbGFwcHMuaW9cL3NjcmlwdHNcL01BWkRBQ0FcL3NkLmpzIiwiY2xpZW50SUQiOiJNQVpEQUNBIiwicHJvdmlkZXJJRCI6IkQyQ01FRElBIiwicmV0YWlsZXJJRCI6IjQ2NTgwIn0seyJsYW5ndWFnZSI6ImZyIiwicGFnZVR5cGUiOiJTaG93cm9vbSIsIndlYnNpdGVUaWVyIjoiVGllciAzIiwicGFnZUJyYW5kIjoiTWF6ZGEiLCJzaXRlVGVjaG5vbG9neVZlcnNpb24iOiI2OWI3ODEyNGUxYmYyIiwiZGVhbGVyTmFtZSI6IlNpdHRlbGxlIE1hemRhIiwiZGVhbGVyQ2l0eSI6IlN0LUdlb3JnZXMiLCJkZWFsZXJTdGF0ZSI6IlFDIiwiZGVhbGVyWmlwQ29kZSI6Ikc1WSAxUjciLCJHRU5FUkFMX0VOQUJMRV9DT09LSUVfT05FQkFOTkVSX1NDUklQVCI6dHJ1ZSwiR0VORVJBTF9FTkFCTEVfVFJBTlNBQ1RJT05fQlVJTERFUiI6ZmFsc2V9LHsiYW1wcG9wdXAiOjB9KTt9Y2F0Y2goZXp6MSl7aWYoY29uc29sZSYmY29uc29sZS5sb2cpCmNvbnNvbGUubG9nKGV6ejEpO30KdmFyIGlkZW50XzcwMDg1MjAwYTI2YTUzYjIxZmJmMzhmZjE3MWJlNGFhO3RyeXtEMkFTQyh7InVzZXJMYW5ndWFnZSI6ImZyZSIsInBhQ29kZSI6IjQ2NTgwIiwiY2xpZW50IjoibWF6ZGEiLCJwYWdlSWQiOiJzaG93cm9vbSIsIm9lbUluZm8iOnsib2VtRGVhbGVyQ29kZSI6IjQ2NTgwIiwiMCI6IjQ2NTgwIiwib2VtIjoiTWF6ZGEgLSBTaGlmdCIsIjEiOiJNYXpkYSAtIFNoaWZ0In0sImRlYWxlcl9uYW1lIjoiIiwiZm9ybU1hcCI6eyJBREZCdXJsaW5ndG9uX0NlbnRyZV8tX0VWX1RvdXJfLV9Ecml2ZWZlIjp7IkZSRU5DSCI6IkRlbWFuZGUgZGUgQnVybGluZ3RvbiBDZW50cmUgLSBFViBUb3VyIC0gRHJpdmVmZXN0ICsgS2lhIFNpZ24gVXAgV2FybSBMZWFkOiBDb250YWN0IERlYWxlciIsIkVOR0xJU0giOiJMZWFkIEZyb20gQnVybGluZ3RvbiBDZW50cmUgLSBFViBUb3VyIC0gRHJpdmVmZXN0ICsgS2lhIFNpZ24gVXAgV2FybSBMZWFkOiBDb250YWN0IERlYWxlciJ9LCJBREZjYW1wYmVsbHJpdmVyY2Fycy5jYV8oRDJDX01lZGlhKV8tX0xlIjp7IkZSRU5DSCI6IkRlbWFuZGUgZGUgY2FtcGJlbGxyaXZlcmNhcnMuY2EgKEQyQyBNZWRpYSkgLSBMZWFkOiBWZWhpY2xlIEF2YWlsYWJpbGl0eSBbR29vZ2xlIC0gVXNlZCAgIExvY19waHlzaWNhbD05MDAxNjEzXSIsIkVOR0xJU0giOiJMZWFkIEZyb20gY2FtcGJlbGxyaXZlcmNhcnMuY2EgKEQyQyBNZWRpYSkgLSBMZWFkOiBWZWhpY2xlIEF2YWlsYWJpbGl0eSBbR29vZ2xlIC0gVXNlZCAgIExvY19waHlzaWNhbD05MDAxNjEzXSJ9LCJBREZjYXJtYXRjaGVyLmNhXyhEMkNfTWVkaWEpXy1fTGVhZDpfQXBwIjp7IkZSRU5DSCI6IkRlbWFuZGUgZGUgY2FybWF0Y2hlci5jYSAoRDJDIE1lZGlhKSAtIExlYWQ6IEFwcG9pbnRtZW50IHJlcXVlc3QgW0dvb2dsZSAtIE9yZ2FuaWNdIiwiRU5HTElTSCI6IkxlYWQgRnJvbSBjYXJtYXRjaGVyLmNhIChEMkMgTWVkaWEpIC0gTGVhZDogQXBwb2ludG1lbnQgcmVxdWVzdCBbR29vZ2xlIC0gT3JnYW5pY10ifSwiQURGY2FybWF0Y2hlci5jYV8oRDJDX01lZGlhKV8tX0xlYWQ6X0NhciI6eyJGUkVOQ0giOiJEZW1hbmRlIGRlIGNhcm1hdGNoZXIuY2EgKEQyQyBNZWRpYSkgLSBMZWFkOiBDYXJGYXggcmVxdWVzdCBbR29vZ2xlIC0gT3JnYW5pY10iLCJFTkdMSVNIIjoiTGVhZCBGcm9tIGNhcm1hdGNoZXIuY2EgKEQyQyBNZWRpYSkgLSBMZWFkOiBDYXJGYXggcmVxdWVzdCBbR29vZ2xlIC0gT3JnYW5pY10ifSwiQURGY2FybWF0Y2hlci5jYV8oRDJDX01lZGlhKV8tX0xlYWQ6X09mZiI6eyJGUkVOQ0giOiJEZW1hbmRlIGRlIGNhcm1hdGNoZXIuY2EgKEQyQyBNZWRpYSkgLSBMZWFkOiBPZmZlciBvbiBhIHZlaGljbGUgW0dvb2dsZSAtIE9yZ2FuaWNdIiwiRU5HTElTSCI6IkxlYWQgRnJvbSBjYXJtYXRjaGVyLmNhIChEMkMgTWVkaWEpIC0gTGVhZDogT2ZmZXIgb24gYSB2ZWhpY2xlIFtHb29nbGUgLSBPcmdhbmljXSJ9LCJBREZjYXJtYXRjaGVyLmNhXyhEMkNfTWVkaWEpXy1fTGVhZDpfUERGIjp7IkZSRU5DSCI6IkRlbWFuZGUgZGUgY2FybWF0Y2hlci5jYSAoRDJDIE1lZGlhKSAtIExlYWQ6IFBERiByZXF1ZXN0IC0gVmVoaWNsZSBpbiBpbnZlbnRvcnkgW0dvb2dsZSAtIE9yZ2FuaWNdIiwiRU5HTElTSCI6IkxlYWQgRnJvbSBjYXJtYXRjaGVyLmNhIChEMkMgTWVkaWEpIC0gTGVhZDogUERGIHJlcXVlc3QgLSBWZWhpY2xlIGluIGludmVudG9yeSBbR29vZ2xlIC0gT3JnYW5pY10ifSwiQURGY2FybWF0Y2hlci5jYV8oRDJDX01lZGlhKV8tX0xlYWQ6X1JlcSI6eyJGUkVOQ0giOiJEZW1hbmRlIGRlIGNhcm1hdGNoZXIuY2EgKEQyQyBNZWRpYSkgLSBMZWFkOiBSZXF1ZXN0IGZvciBmaW5hbmNpbmcgKE11bHRpc3RlcCkgW0dvb2dsZSAtIE9yZ2FuaWNdIiwiRU5HTElTSCI6IkxlYWQgRnJvbSBjYXJtYXRjaGVyLmNhIChEMkMgTWVkaWEpIC0gTGVhZDogUmVxdWVzdCBmb3IgZmluYW5jaW5nIChNdWx0aXN0ZXApIFtHb29nbGUgLSBPcmdhbmljXSJ9LCJBREZjYXJtYXRjaGVyLmNhXyhEMkNfTWVkaWEpXy1fTGVhZDpfU2VyIjp7IkZSRU5DSCI6IkRlbWFuZGUgZGUgY2FybWF0Y2hlci5jYSAoRDJDIE1lZGlhKSAtIExlYWQ6IFNlcnZpY2UgYXBwb2ludG1lbnQgcmVxdWVzdCBbRmFjZWJvb2sgLSBPcmdhbmljXSIsIkVOR0xJU0giOiJMZWFkIEZyb20gY2FybWF0Y2hlci5jYSAoRDJDIE1lZGlhKSAtIExlYWQ6IFNlcnZpY2UgYXBwb2ludG1lbnQgcmVxdWVzdCBbRmFjZWJvb2sgLSBPcmdhbmljXSJ9LCJBREZjYXJtYXRjaGVyLmNhXyhEMkNfTWVkaWEpXy1fTGVhZDpfVHJhIjp7IkZSRU5DSCI6IkRlbWFuZGUgZGUgY2FybWF0Y2hlci5jYSAoRDJDIE1lZGlhKSAtIExlYWQ6IFRyYWRlLWluIHJlcXVlc3QgW0dvb2dsZSAtIE9yZ2FuaWNdIiwiRU5HTElTSCI6IkxlYWQgRnJvbSBjYXJtYXRjaGVyLmNhIChEMkMgTWVkaWEpIC0gTGVhZDogVHJhZGUtaW4gcmVxdWVzdCBbR29vZ2xlIC0gT3JnYW5pY10ifSwiQURGY2FybWF0Y2hlci5jYV8oRDJDX01lZGlhKV8tX0xlYWQ6X1ZlaCI6eyJGUkVOQ0giOiJEZW1hbmRlIGRlIGNhcm1hdGNoZXIuY2EgKEQyQyBNZWRpYSkgLSBMZWFkOiBWZWhpY2xlIEF2YWlsYWJpbGl0eSBbR29vZ2xlIC0gT3JnYW5pY10iLCJFTkdMSVNIIjoiTGVhZCBGcm9tIGNhcm1hdGNoZXIuY2EgKEQyQyBNZWRpYSkgLSBMZWFkOiBWZWhpY2xlIEF2YWlsYWJpbGl0eSBbR29vZ2xlIC0gT3JnYW5pY10ifSwiQURGY2FybWF0Y2hlci5jYV8oRDJDX01lZGlhXy1fT3JnYW5pYylfLSI6eyJGUkVOQ0giOiJEZW1hbmRlIGRlIGNhcm1hdGNoZXIuY2EgKEQyQyBNZWRpYSAtIE9yZ2FuaWMpIC0gTGVhZDogVmVoaWNsZSBBdmFpbGFiaWxpdHkgW09yZ2FuaWNdIiwiRU5HTElTSCI6IkxlYWQgRnJvbSBjYXJtYXRjaGVyLmNhIChEMkMgTWVkaWEgLSBPcmdhbmljKSAtIExlYWQ6IFZlaGljbGUgQXZhaWxhYmlsaXR5IFtPcmdhbmljXSJ9LCJBREZkYW5pZWxwYXJlZG9kZ2UuY29tXyhwYXJfRDJDX01lZGlhKV8tIjp7IkZSRU5DSCI6IkRlbWFuZGUgZGUgZGFuaWVscGFyZWRvZGdlLmNvbSAocGFyIEQyQyBNZWRpYSkgLSBEMkMgTWVkaWEgLSBMZWFkIDogVm9pciBsJ29mZnJlIGNvdXBvbiBTUlAgW0dvb2dsZSAtIE5ldWYtdmxhXSIsIkVOR0xJU0giOiJMZWFkIEZyb20gZGFuaWVscGFyZWRvZGdlLmNvbSAocGFyIEQyQyBNZWRpYSkgLSBEMkMgTWVkaWEgLSBMZWFkIDogVm9pciBsJ29mZnJlIGNvdXBvbiBTUlAgW0dvb2dsZSAtIE5ldWYtdmxhXSJ9LCJBREZkZW1vY3JtLmQyY21lZGlhLmNhXyhEMkNfTWVkaWFfLV9PcmdhIjp7IkZSRU5DSCI6IkRlbWFuZGUgZGUgZGVtb2NybS5kMmNtZWRpYS5jYSAoRDJDIE1lZGlhIC0gT3JnYW5pYykgLSBMZWFkOiBSZXF1ZXN0IGZvciBhIHJlYmF0ZSBjb3Vwb24gKGludmVudG9yeSB2ZWhpY2xlKSBbT3JnYW5pY10iLCJFTkdMSVNIIjoiTGVhZCBGcm9tIGRlbW9jcm0uZDJjbWVkaWEuY2EgKEQyQyBNZWRpYSAtIE9yZ2FuaWMpIC0gTGVhZDogUmVxdWVzdCBmb3IgYSByZWJhdGUgY291cG9uIChpbnZlbnRvcnkgdmVoaWNsZSkgW09yZ2FuaWNdIn0sIkFERk1vbl9zaXRlXy1fRDJDX01lZGlhXy1fTGVhZF86X0RlbWFuZGUiOnsiRlJFTkNIIjoiRGVtYW5kZSBkZSBNb24gc2l0ZSAtIEQyQyBNZWRpYSAtIExlYWQgOiBEZW1hbmRlIGRlIHZhbGV1ciBkJyZBdGlsZGU7JmNvcHk7Y2hhbmdlIChTTVMpIFtHb29nbGUgLSBPcmdhbmljXSIsIkVOR0xJU0giOiJMZWFkIEZyb20gTW9uIHNpdGUgLSBEMkMgTWVkaWEgLSBMZWFkIDogRGVtYW5kZSBkZSB2YWxldXIgZCcmQXRpbGRlOyZjb3B5O2NoYW5nZSAoU01TKSBbR29vZ2xlIC0gT3JnYW5pY10ifSwiQURGcGFsbGFkaW5vYXV0b2dyb3VwLmNvbV8oRDJDX01lZGlhKV8tXyI6eyJGUkVOQ0giOiJEZW1hbmRlIGRlIHBhbGxhZGlub2F1dG9ncm91cC5jb20gKEQyQyBNZWRpYSkgLSBMZWFkOiBDYXJGYXggcmVxdWVzdCBbR29vZ2xlIC0gVXNlZC12bGEgICBMb2NfcGh5c2ljYWw9OTAwMTE0MV0iLCJFTkdMSVNIIjoiTGVhZCBGcm9tIHBhbGxhZGlub2F1dG9ncm91cC5jb20gKEQyQyBNZWRpYSkgLSBMZWFkOiBDYXJGYXggcmVxdWVzdCBbR29vZ2xlIC0gVXNlZC12bGEgICBMb2NfcGh5c2ljYWw9OTAwMTE0MV0ifSwiQURGcGFsbGFkaW5vYXV0b2dyb3VwLmNvbV8oRDJDX01lZGlhKV9fLSI6eyJGUkVOQ0giOiJEZW1hbmRlIGRlIHBhbGxhZGlub2F1dG9ncm91cC5jb20gKEQyQyBNZWRpYSkgIC0gTGVhZDogUmVxdWVzdCBmb3IgY29udGFjdCBbRmFjZWJvb2sgLSBVc2VkIFsgS2V5d29yZDogVXNlZCtUcnVja10gIExvY18iLCJFTkdMSVNIIjoiTGVhZCBGcm9tIHBhbGxhZGlub2F1dG9ncm91cC5jb20gKEQyQyBNZWRpYSkgIC0gTGVhZDogUmVxdWVzdCBmb3IgY29udGFjdCBbRmFjZWJvb2sgLSBVc2VkIFsgS2V5d29yZDogVXNlZCtUcnVja10gIExvY19wIn0sIkFERnBhbGxhZGlub2F1dG9ncm91cC5jb21fKEQyQ19fTWVkaWEpXy0iOnsiRlJFTkNIIjoiRGVtYW5kZSBkZSBwYWxsYWRpbm9hdXRvZ3JvdXAuY29tIChEMkMgIE1lZGlhKSAtIExlYWQ6IFRyYWRlLWluIHJlcXVlc3QgW0dvb2dsZSAtIFRyYWRlICAgTG9jX3BoeXNpY2FsPTkwMDExMThdIiwiRU5HTElTSCI6IkxlYWQgRnJvbSBwYWxsYWRpbm9hdXRvZ3JvdXAuY29tIChEMkMgIE1lZGlhKSAtIExlYWQ6IFRyYWRlLWluIHJlcXVlc3QgW0dvb2dsZSAtIFRyYWRlICAgTG9jX3BoeXNpY2FsPTkwMDExMThdIn0sIkFERnBhbGxhZGlub2F1dG9ncm91cC5jb21fXyhEMkNfTWVkaWEpXy0iOnsiRlJFTkNIIjoiRGVtYW5kZSBkZSBwYWxsYWRpbm9hdXRvZ3JvdXAuY29tICAoRDJDIE1lZGlhKSAtIExlYWQ6IFRyYWRlLWluIHJlcXVlc3QgW0dvb2dsZSAtIFRyYWRlICAgTG9jX3BoeXNpY2FsPTkwMDExMzNdIiwiRU5HTElTSCI6IkxlYWQgRnJvbSBwYWxsYWRpbm9hdXRvZ3JvdXAuY29tICAoRDJDIE1lZGlhKSAtIExlYWQ6IFRyYWRlLWluIHJlcXVlc3QgW0dvb2dsZSAtIFRyYWRlICAgTG9jX3BoeXNpY2FsPTkwMDExMzNdIn0sIkFERnBhbGxhZGlub3N1YmFydS5jYV8ocGFyX0QyQ19NZWRpYV8tX08iOnsiRlJFTkNIIjoiRGVtYW5kZSBkZSBwYWxsYWRpbm9zdWJhcnUuY2EgKHBhciBEMkMgTWVkaWEgLSBPcmdhbmljKSAtIEQyQyBNZWRpYSAtIExlYWQ6IFBERiBicm9jaHVyZSByZXF1ZXN0IFtPcmdhbmljXSIsIkVOR0xJU0giOiJMZWFkIEZyb20gcGFsbGFkaW5vc3ViYXJ1LmNhIChwYXIgRDJDIE1lZGlhIC0gT3JnYW5pYykgLSBEMkMgTWVkaWEgLSBMZWFkOiBQREYgYnJvY2h1cmUgcmVxdWVzdCBbT3JnYW5pY10ifSwiQURGU2NhcmJvcm91Z2hfVG93bl9DZW50cmVfLV9FVl9Ub3VyXy1fRCI6eyJGUkVOQ0giOiJEZW1hbmRlIGRlIFNjYXJib3JvdWdoIFRvd24gQ2VudHJlIC0gRVYgVG91ciAtIERyaXZlZmVzdCArIEtpYSBTaWduIFVwIFdhcm0gTGVhZDogQ29udGFjdCBEZWFsZXIiLCJFTkdMSVNIIjoiTGVhZCBGcm9tIFNjYXJib3JvdWdoIFRvd24gQ2VudHJlIC0gRVYgVG91ciAtIERyaXZlZmVzdCArIEtpYSBTaWduIFVwIFdhcm0gTGVhZDogQ29udGFjdCBEZWFsZXIifSwiQURGU2hlcndheV9HYXJkZW5zXy1fRVZfVG91cl8tX0RyaXZlZmVzdCI6eyJGUkVOQ0giOiJEZW1hbmRlIGRlIFNoZXJ3YXkgR2FyZGVucyAtIEVWIFRvdXIgLSBEcml2ZWZlc3QgU2lnbiBVcCBXYXJtIExlYWQ6IENvbnRhY3QgRGVhbGVyIiwiRU5HTElTSCI6IkxlYWQgRnJvbSBTaGVyd2F5IEdhcmRlbnMgLSBFViBUb3VyIC0gRHJpdmVmZXN0IFNpZ24gVXAgV2FybSBMZWFkOiBDb250YWN0IERlYWxlciJ9LCJBREZTcXVhcmVfT25lXy1fRVZfVG91cl8tX0RyaXZlZmVzdF8rX0tpIjp7IkZSRU5DSCI6IkRlbWFuZGUgZGUgU3F1YXJlIE9uZSAtIEVWIFRvdXIgLSBEcml2ZWZlc3QgKyBLaWEgU2lnbiBVcCBXYXJtIExlYWQ6IENvbnRhY3QgRGVhbGVyIiwiRU5HTElTSCI6IkxlYWQgRnJvbSBTcXVhcmUgT25lIC0gRVYgVG91ciAtIERyaXZlZmVzdCArIEtpYSBTaWduIFVwIFdhcm0gTGVhZDogQ29udGFjdCBEZWFsZXIifSwiQURGU3F1YXJlX09uZV8tX0VWX1RvdXJfLV9LaWFfU2lnbl9VcF9IbyI6eyJGUkVOQ0giOiJEZW1hbmRlIGRlIFNxdWFyZSBPbmUgLSBFViBUb3VyIC0gS2lhIFNpZ24gVXAgSG90IExlYWQ6IENvbnRhY3QgRGVhbGVyIiwiRU5HTElTSCI6IkxlYWQgRnJvbSBTcXVhcmUgT25lIC0gRVYgVG91ciAtIEtpYSBTaWduIFVwIEhvdCBMZWFkOiBDb250YWN0IERlYWxlciJ9LCJBREZVcHBlcl9DYW5hZGFfTWFsbF8tX0VWX1RvdXJfLV9Ecml2ZWZlIjp7IkZSRU5DSCI6IkRlbWFuZGUgZGUgVXBwZXIgQ2FuYWRhIE1hbGwgLSBFViBUb3VyIC0gRHJpdmVmZXN0IFNpZ24gVXAgV2FybSBMZWFkOiBDb250YWN0IERlYWxlciIsIkVOR0xJU0giOiJMZWFkIEZyb20gVXBwZXIgQ2FuYWRhIE1hbGwgLSBFViBUb3VyIC0gRHJpdmVmZXN0IFNpZ24gVXAgV2FybSBMZWFkOiBDb250YWN0IERlYWxlciJ9LCJBdmFpbGFiaWxpdHlVc2VkIjp7IkZSRU5DSCI6IkxlYWQ6IERpc3BvbmliaWxpdGUgZCd1biB2ZWhpY3VsZSIsIkVOR0xJU0giOiJMZWFkOiBWZWhpY2xlIEF2YWlsYWJpbGl0eSJ9LCJCYW5uZXJGb3JtIjp7IkZSRU5DSCI6IkxlYWQ6IERlbWFuZGUgZGUgZm9ybSBiYW5uZXIiLCJFTkdMSVNIIjoiTGVhZDogQmFubmVyIEZvcm0gUmVxdWVzdCJ9LCJCZXN0UHJpY2VSZXF1ZXN0TmV3Ijp7IkZSRU5DSCI6IkxlYWQgOiBEZW1hbmRlIGRlICBtZWlsbGV1ciBwcml4ICh2ZWhpY3VsZSBuZXVmKSIsIkVOR0xJU0giOiJMZWFkOiBSZXF1ZXN0IGZvciBhIGJlc3QgcHJpY2UgKG5ldyB2ZWhpY2xlKSJ9LCJCb2R5U2hvcCI6eyJGUkVOQ0giOiJMZWFkIDogRGVtYW5kZSBkZSByZW5kZXotdm91cyBlbiBjYXJvc3NlcmllIiwiRU5HTElTSCI6IkxlYWQ6IFZlaGljbGUgYm9keSBzaG9wIGFwcG9pbnRtZW50IHJlcXVlc3QifSwiQnJvY2h1cmVzIjp7IkZSRU5DSCI6IkxlYWQgOiBEZW1hbmRlIGRlIGJyb2NodXJlIiwiRU5HTElTSCI6IkxlYWQgOiBCcm9jaHVyZSByZXF1ZXN0In0sIkJyb2NodXJlc1JlcXVlc3QiOnsiRlJFTkNIIjoiTGVhZCA6IERlbWFuZGUgZGUgYnJvY2h1cmUiLCJFTkdMSVNIIjoiTGVhZCA6IEJyb2NodXJlIHJlcXVlc3QifSwiQnVpbGRBbmRQcmljZV9TYXZlIjp7IkZSRU5DSCI6IkxlYWQ6IENvbmZpZ3VyYXRpb24gZCd1biB2ZWhpY3VsZSBuZXVmIiwiRU5HTElTSCI6IkxlYWQ6IE5ldyBWZWhpY2xlIENvbmZpZ3VyYXRpb24gKEJ1aWxkICYgUHJpY2UpIn0sIkJ1aWxkQW5kUHJpY2VfU3RvY2siOnsiRlJFTkNIIjoiTGVhZDogRGlzcG9uaWJpbGl0ZSBkJ3VuIHZlaGljdWxlIiwiRU5HTElTSCI6IkxlYWQ6IFZlaGljbGUgQXZhaWxhYmlsaXR5In0sIkNhcnByb29mTWFpbCI6eyJGUkVOQ0giOiJMZWFkIDogRGVtYW5kZSBkZSBDYXJGYXgiLCJFTkdMSVNIIjoiTGVhZDogQ2FyRmF4IHJlcXVlc3QifSwiQ29udGFjdFJlcXVlc3QiOnsiRlJFTkNIIjoiTGVhZCA6IERlbWFuZGUgZGUgY29udGFjdCIsIkVOR0xJU0giOiJMZWFkOiBSZXF1ZXN0IGZvciBjb250YWN0In0sIkNvbnRhY3RVc1JlcXVlc3QiOnsiRlJFTkNIIjoiTGVhZCA6IERlbWFuZGUgZGUgY29udGFjdCIsIkVOR0xJU0giOiJMZWFkOiBSZXF1ZXN0IGZvciBjb250YWN0In0sIkNvbnRhY3RWaXNpdFJlcXVlc3QiOnsiRlJFTkNIIjoiTGVhZCA6IERlbWFuZGUgZGUgY29udGFjdCBWZW50ZSIsIkVOR0xJU0giOiJMZWFkOiBSZXF1ZXN0IGZvciBjb250YWN0IFNhbGVzIn0sIkNvbnRhY3RWaXNpdFJlcXVlc3ROZXciOnsiRlJFTkNIIjoiTGVhZCA6IERlbWFuZGUgZGUgY29udGFjdCBWZW50ZSIsIkVOR0xJU0giOiJMZWFkOiBSZXF1ZXN0IGZvciBjb250YWN0IFNhbGVzIn0sIkNyZWRpdEJvb3N0TXVsdGkiOnsiRlJFTkNIIjoiTGVhZDogRGVtYW5kZSBkZSBwcmVxdWFsaWZpY2F0aW9uIGRlIGNyZWRpdCIsIkVOR0xJU0giOiJMZWFkOiBSZXF1ZXN0IGZvciBDcmVkaXQgUHJlLVF1YWxpZmljYXRpb24ifSwiQ3JlZGl0TXVsdGlzdGVwUmVxdWVzdCI6eyJGUkVOQ0giOiJMZWFkIDogRGVtYW5kZSBkZSBmaW5hbmNlbWVudCAoUGx1c2lldXJzIGV0YXBlcykiLCJFTkdMSVNIIjoiTGVhZDogUmVxdWVzdCBmb3IgZmluYW5jaW5nIChNdWx0aXN0ZXApIn0sIkNyZWRpdE11bHRpc3RlcFJlcXVlc3QybmRDaGFuY2UiOnsiRlJFTkNIIjoiTGVhZCA6IERlbWFuZGUgZGUgZmluYW5jZW1lbnQgKFBsdXNpZXVycyBldGFwZXMgMmUgY2hhbmNlKSIsIkVOR0xJU0giOiJMZWFkOiBSZXF1ZXN0IGZvciBmaW5hbmNpbmcgKE11bGlzdGVwIDJuZCBjaGFuY2UpIn0sIkNyZWRpdE11bHRpc3RlcFJlcXVlc3RJbnN0YW50Ijp7IkZSRU5DSCI6IkxlYWQ6IEFwcHJvYmF0aW9uIGRlIGNyZWRpdCBpbnN0YW50YW5lZSIsIkVOR0xJU0giOiJMZWFkOiBJbnN0YW50IENyZWRpdCBBcHByb3ZhbCJ9LCJDcmVkaXRSZXF1ZXN0Ijp7IkZSRU5DSCI6IkxlYWQgOiBEZW1hbmRlIGRlIGZpbmFuY2VtZW50IiwiRU5HTElTSCI6IkxlYWQ6IFJlcXVlc3QgZm9yIGZpbmFuY2luZyJ9LCJDcmVkaXRSZXF1ZXN0TW9iaWxlIjp7IkZSRU5DSCI6IkxlYWQgOiBEZW1hbmRlIGRlIGZpbmFuY2VtZW50IiwiRU5HTElTSCI6IkxlYWQ6IFJlcXVlc3QgZm9yIGZpbmFuY2luZyJ9LCJDcmVkaXRSZXF1ZXN0TW9iaWxlRnVsbCI6eyJGUkVOQ0giOiJMZWFkOiBSZXF1ZXN0IGZvciBmaW5hbmNpbmciLCJFTkdMSVNIIjoiTGVhZDogUmVxdWVzdCBmb3IgZmluYW5jaW5nIn0sIkNyZWRpdFJlcXVlc3RfU2hvcnQiOnsiRlJFTkNIIjoiTGVhZCA6IERlbWFuZGUgZGUgZmluYW5jZW1lbnQgKHZlcnNpb24gY291cnRlKSIsIkVOR0xJU0giOiJMZWFkIDogQ3JlZGl0IGFwcGxpY2F0aW9uIChzaG9ydCB2ZXJzaW9uKSJ9LCJEZWFsZXJBcHBvaW50bWVudCI6eyJGUkVOQ0giOiJMZWFkIDogRGVtYW5kZSBkZSByZW5kZXotdm91cyIsIkVOR0xJU0giOiJMZWFkOiBBcHBvaW50bWVudCByZXF1ZXN0In0sIkRpc2NvdmVyT2ZmZXIiOnsiRlJFTkNIIjoiTGVhZCA6IFZvaXIgbCdvZmZyZSBjb3Vwb24gU1JQIiwiRU5HTElTSCI6IkxlYWQ6IFNlZSBPZmZlciBDb3Vwb24gaW4gU1JQIn0sIkVzdGhldGljUmVxdWVzdCI6eyJGUkVOQ0giOiJMZWFkOiBEZW1hbmRlIGRlIHJlbmRlei12b3VzIGEgbCdlc3RoZXRxdWUgZXQgbGF2ZS1hdXRvIiwiRU5HTElTSCI6IkxlYWQ6IFZlaGljbGUgZXN0aGV0aWMgYW5kIGNhciB3YXNoIGFwcG9pbnRtZW50IHJlcXVlc3QifSwiZmFjZWJvb2tDb25uZWN0Ijp7IkZSRU5DSCI6IkxlYWQ6IFJhYmFpcyBGYWNlYm9vayIsIkVOR0xJU0giOiJMZWFkOiBGYWNlYm9vayBSZWJhdGUifSwiRmluZFZlaGljbGUiOnsiRlJFTkNIIjoiTGVhZCA6IERlbWFuZGUgZGUgcmVjaGVyY2hlIGRlIHZlaGljdWxlIiwiRU5HTElTSCI6IkxlYWQ6IFJlcXVlc3QgdG8gZmluZCBhIHByZS1vd25lZCB2ZWhpY2xlIn0sImhlYWRlclNlcnZpY2UiOnsiRlJFTkNIIjoiTGVhZCA6IERlbWFuZGUgZGUgcmVuZGV6LXZvdXMgYXUgc2VydmljZSBFeHByZXNzIiwiRU5HTElTSCI6IkxlYWQ6IFNlcnZpY2UgYXBwb2ludG1lbnQgcmVxdWVzdCBFeHByZXNzIn0sIk1ha2VPZmZlciI6eyJGUkVOQ0giOiJMZWFkIDogT2ZmcmUgZCdhY2hhdCBzdXIgdW4gdmVoaWN1bGUiLCJFTkdMSVNIIjoiTGVhZDogT2ZmZXIgb24gYSB2ZWhpY2xlIn0sIk1ha2VPZmZlck5ldyI6eyJGUkVOQ0giOiJMZWFkIDogT2ZmcmUgZCdhY2hhdCBzdXIgdW4gdmVoaWN1bGUiLCJFTkdMSVNIIjoiTGVhZDogT2ZmZXIgb24gYSB2ZWhpY2xlIn0sIm1lbnVTZXJ2aWNlIjp7IkZSRU5DSCI6IkxlYWQgOiBEZW1hbmRlIGRlIHJlbmRlei12b3VzIGF1IHNlcnZpY2UgRXhwcmVzcyIsIkVOR0xJU0giOiJMZWFkOiBTZXJ2aWNlIGFwcG9pbnRtZW50IHJlcXVlc3QgRXhwcmVzcyJ9LCJNb250aGx5UGF5bWVudHMiOnsiRlJFTkNIIjoiRGVtYW5kZSBkZSBtZW5zdWFsaXRlcyIsIkVOR0xJU0giOiJSZXF1ZXN0IGZvciBtb250aGx5IHBheW1lbnRzIn0sIk1vbnRobHlQYXltZW50c19ORVciOnsiRlJFTkNIIjoiRGVtYW5kZSBkZSBtZW5zdWFsaXRlcyIsIkVOR0xJU0giOiJSZXF1ZXN0IGZvciBtb250aGx5IHBheW1lbnRzIn0sIk1vbnRobHlQYXltZW50c19TTVMiOnsiRlJFTkNIIjoiRGVtYW5kZSBkZSBtZW5zdWFsaXRlcyAtIFNNUyIsIkVOR0xJU0giOiJSZXF1ZXN0IGZvciBtb250aGx5IHBheW1lbnRzIC0gU01TIn0sIk1vbnRobHlQYXltZW50c19TTVNfTkVXIjp7IkZSRU5DSCI6IkRlbWFuZGUgZGUgbWVuc3VhbGl0ZXMgLSBTTVMiLCJFTkdMSVNIIjoiUmVxdWVzdCBmb3IgbW9udGhseSBwYXltZW50cyAtIFNNUyJ9LCJQYXJ0c1JlcXVlc3QiOnsiRlJFTkNIIjoiTGVhZCA6IERlbWFuZGUgZGUgY29tbWFuZGUgcGkmZWdyYXZlO2NlIiwiRU5HTElTSCI6IkxlYWQ6IFJlcXVlc3QgZm9yIHZlaGljbGUgcGFydHMifSwiUGhvdG9SZXF1ZXN0Ijp7IkZSRU5DSCI6IkxlYWQ6IERlbWFuZGUgZGUgcGhvdG9zIiwiRU5HTElTSCI6IkxlYWQ6IFBob3RvIHJlcXVlc3QifSwiUG9wVXBJbnN0YW50UmViYXRlIjp7IkZSRU5DSCI6IkxlYWQ6IERlbWFuZGUgZGUgUmFiYWlzIEluc3RhbnRhbmUiLCJFTkdMSVNIIjoiTGVhZDogSW5zdGFudCBSZWJhdGUgcmVxdWVzdCJ9LCJQb3BVcEluc3RhbnRSZWJhdGUzIjp7IkZSRU5DSCI6IkxlYWQ6IERlbWFuZGUgZGUgUmFiYWlzIEluc3RhbnRhbmUiLCJFTkdMSVNIIjoiTGVhZDogSW5zdGFudCBSZWJhdGUgcmVxdWVzdCJ9LCJQb3BVcEluc3RhbnRSZWJhdGVBQSI6eyJGUkVOQ0giOiJMZWFkOiBEZW1hbmRlIGRlIFJhYmFpcyBJbnN0YW50YW5lIiwiRU5HTElTSCI6IkxlYWQ6IEluc3RhbnQgUmViYXRlIHJlcXVlc3QifSwiUHJpY2VSZXF1ZXN0Ijp7IkZSRU5DSCI6IkxlYWQgOiBEZW1hbmRlIGRlIHByaXgiLCJFTkdMSVNIIjoiTGVhZDogUHJpY2UgcmVxdWVzdCJ9LCJQcmljZVJlcXVlc3ROZXciOnsiRlJFTkNIIjoiTGVhZCA6IERlbWFuZGUgZGUgcHJpeCIsIkVOR0xJU0giOiJMZWFkOiBQcmljZSByZXF1ZXN0In0sIlByaWNlVmVoaWNsZSI6eyJGUkVOQ0giOiJMZWFkIDogRGVtYW5kZSBkZSB2YWxldXIgZCdlY2hhbmdlIiwiRU5HTElTSCI6IkxlYWQ6IFRyYWRlLWluIHJlcXVlc3QifSwiUHJpY2VWZWhpY2xlQWNjdXRyYWRlIjp7IkZSRU5DSCI6IkxlYWQgOiBEZW1hbmRlIGRlIHZhbGV1ciBkJ2VjaGFuZ2UiLCJFTkdMSVNIIjoiTGVhZCA6IExlYWQ6IFRyYWRlLWluIHJlcXVlc3QifSwiUHJpY2VWZWhpY2xlTmV3Ijp7IkZSRU5DSCI6IkxlYWQgOiBEZW1hbmRlIGRlIHZhbGV1ciBkJ2VjaGFuZ2UiLCJFTkdMSVNIIjoiTGVhZDogVHJhZGUtaW4gcmVxdWVzdCJ9LCJRdWlja0VtYWlsIjp7IkZSRU5DSCI6IkxlYWQgOiBEZW1hbmRlIEV4cHJlc3MiLCJFTkdMSVNIIjoiTGVhZDogRXhwcmVzcyByZXF1ZXN0In0sIlF1aWNrRW1haWxOZXdJbnZlbnRvcnkiOnsiRlJFTkNIIjoiTGVhZCA6IERlbWFuZGUgRXhwcmVzcyAoaW52ZW50YWlyZSBuZXVmKSIsIkVOR0xJU0giOiJMZWFkOiBFeHByZXNzIHJlcXVlc3QgKG5ldyBpbnZlbnRvcnkpIn0sIlJlYmF0ZUNvdXBvbiI6eyJGUkVOQ0giOiJMZWFkIDogRGVtYW5kZSBkZSBjb3Vwb24gcmFiYWlzICh2ZWhpY3VsZSBlbiBpbnZlbnRhaXJlKSIsIkVOR0xJU0giOiJMZWFkOiBSZXF1ZXN0IGZvciBhIHJlYmF0ZSBjb3Vwb24gKGludmVudG9yeSB2ZWhpY2xlKSJ9LCJSZWJhdGVDb3Vwb25JbnZlbnRvcnkiOnsiRlJFTkNIIjoiTGVhZCA6IERlbWFuZGUgZGUgY291cG9uIHJhYmFpcyAoaW52ZW50YWlyZSkiLCJFTkdMSVNIIjoiTGVhZDogUmVxdWVzdCBmb3IgYSByZWJhdGUgY291cG9uIChpbnZlbnRvcnkpIn0sIlJlYmF0ZUNvdXBvbk5ldyI6eyJGUkVOQ0giOiJMZWFkIDogRGVtYW5kZSBkZSBjb3Vwb24gcmFiYWlzIiwiRU5HTElTSCI6IkxlYWQ6IFJlcXVlc3QgZm9yIGEgcmViYXRlIGNvdXBvbiJ9LCJSZWJhdGVDb3Vwb25OZXdCTlAiOnsiRlJFTkNIIjoiTGVhZCA6IERlbWFuZGUgZGUgY291cG9uIHJhYmFpcyAoY29uZmlndXJhdGV1cikiLCJFTkdMSVNIIjoiTGVhZDogUmVxdWVzdCBmb3IgYSByZWJhdGUgY291cG9uIChjb25maWd1cmF0b3IpIn0sIlJlYmF0ZUNvdXBvbk5ld0ludmVudG9yeSI6eyJGUkVOQ0giOiJMZWFkIDogRGVtYW5kZSBkZSBjb3Vwb24gcmFiYWlzIChpbnZlbnRhaXJlKSIsIkVOR0xJU0giOiJMZWFkOiBSZXF1ZXN0IGZvciBhIHJlYmF0ZSBjb3Vwb24gKGludmVudG9yeSkifSwiUmViYXRlQ291cG9uTmV3U2xpZGVyIjp7IkZSRU5DSCI6IkxlYWQgOiBEZW1hbmRlIGRlIGNvdXBvbiByYWJhaXMgKGNhcm91c2VsKSIsIkVOR0xJU0giOiJMZWFkOiBSZXF1ZXN0IGZvciBhIHJlYmF0ZSBjb3Vwb24gKHNsaWRlcikifSwiUmViYXRlQ291cG9uUHJvbW8iOnsiRlJFTkNIIjoiTGVhZDogRGVtYW5kZSBkZSBjb3Vwb24gcmFiYWlzIChib3V0b24gJ1Byb21vdGlvbnMnKSIsIkVOR0xJU0giOiJMZWFkOiBSZWJhdGUgQ291cG9uIHJlcXVlc3QgKCdQcm9tb3Rpb25zJyBidXR0b24pIn0sIlJlYmF0ZUNvdXBvblNsaWRlciI6eyJGUkVOQ0giOiJMZWFkIDogRGVtYW5kZSBkZSBjb3Vwb24gcmFiYWlzIChjYXJvdXNlbCkiLCJFTkdMSVNIIjoiTGVhZDogUmVxdWVzdCBmb3IgYSByZWJhdGUgY291cG9uIChzbGlkZXIpIn0sIlJlYmF0ZUNvdXBvblVzZWRTbGlkZXIiOnsiRlJFTkNIIjoiTGVhZCA6IERlbWFuZGUgZGUgY291cG9uIHJhYmFpcyAoY2Fyb3VzZWwpIiwiRU5HTElTSCI6IkxlYWQ6IFJlcXVlc3QgZm9yIGEgcmViYXRlIGNvdXBvbiAoc2xpZGVyKSJ9LCJSZWNhbGxzIjp7IkZSRU5DSCI6IkRlbWFuZGUgZCdpbmZvcm1hdGlvbiBzdXIgbGVzIHJhcHBlbHMiLCJFTkdMSVNIIjoiUmVjYWxsIGluZm9ybWF0aW9uIHJlcXVlc3QifSwiUmVzZXJ2ZUl0Tm93Ijp7IkZSRU5DSCI6IkxlYWQgOiBEZW1hbmRlIHBvdXIgcmVzZXJ2ZXIgdW4gdmVoaWN1bGUiLCJFTkdMSVNIIjoiTGVhZCA6IFJlcXVlc3QgdG8gcHJlLW9yZGVyIGEgdmVoaWNsZSJ9LCJSZXNlcnZlSXROb3dOZXciOnsiRlJFTkNIIjoiTGVhZCA6IERlbWFuZGUgcG91ciByZXNlcnZlciB1biB2ZWhpY3VsZSIsIkVOR0xJU0giOiJMZWFkIDogUmVxdWVzdCB0byBwcmUtb3JkZXIgYSB2ZWhpY2xlIn0sIlNlbGxDYXIiOnsiRlJFTkNIIjoiTGVhZCA6IERlbWFuZGUgZGUgVmVuZGV6IFZlaGljdWxlIiwiRU5HTElTSCI6IkxlYWQgOiBSZXF1ZXN0IHRvIGJ1eSB5b3VyIGNhciJ9LCJTZWxsQ2FyX1Nob3J0Ijp7IkZSRU5DSCI6IkxlYWQgOiBEZW1hbmRlIGRlIFZlbmRlei1ub3VzIHZvdHJlIHZlaGljdWxlICh2ZXJzaW9uIGNvdXJ0ZSkiLCJFTkdMSVNIIjoiTGVhZCA6IFJlcXVlc3QgdG8gYnV5IHlvdXIgY2FyIChTaG9ydCB2ZXJzaW9uKSJ9LCJTZXJ2aWNlUmVxdWVzdCI6eyJGUkVOQ0giOiJMZWFkIDogRGVtYW5kZSBkZSByZW5kZXotdm91cyBhdSBzZXJ2aWNlIiwiRU5HTElTSCI6IkxlYWQ6IFNlcnZpY2UgYXBwb2ludG1lbnQgcmVxdWVzdCJ9LCJTTVNMZWFkIjp7IkZSRU5DSCI6IkxlYWQ6IERlbWFuZGUgU01TIChUZXh0bykiLCJFTkdMSVNIIjoiTGVhZDogU01TIHJlcXVlc3QifSwiU01TTGVhZF9vbGQiOnsiRlJFTkNIIjoiTGVhZCA6IERlbWFuZGUgU01TIChUZXh0bykiLCJFTkdMSVNIIjoiTGVhZCA6IFNNUyByZXF1ZXN0In0sIlNwZWNzUmVxdWVzdCI6eyJGUkVOQ0giOiJMZWFkOiBEZW1hbmRlIGRlIGZpY2hlIFBERiAtIFZlaGljdWxlIGVuIGludmVudGFpcmUiLCJFTkdMSVNIIjoiTGVhZDogUERGIHJlcXVlc3QgLSBWZWhpY2xlIGluIGludmVudG9yeSJ9LCJTcGVjc1JlcXVlc3ROZXciOnsiRlJFTkNIIjoiTGVhZDogRGVtYW5kZSBkZSBicm9jaHVyZSBQREYiLCJFTkdMSVNIIjoiTGVhZDogUERGIGJyb2NodXJlIHJlcXVlc3QifSwiU1JQQ29udGFjdFVzIjp7IkZSRU5DSCI6IkxlYWQgOiBEZW1hbmRlIGRlIGNvbnRhY3QgU1JQIiwiRU5HTElTSCI6IkxlYWQgOiBSZXF1ZXN0IGZvciBjb250YWN0IFNSUCJ9LCJUZXN0RHJpdmUiOnsiRlJFTkNIIjoiTGVhZCA6IERlbWFuZGUgZCdlc3NhaSByb3V0aWVyIiwiRU5HTElTSCI6IkxlYWQ6IFJlcXVlc3QgZm9yIGEgdGVzdCBkcml2ZSJ9LCJUZXN0RHJpdmVOZXciOnsiRlJFTkNIIjoiTGVhZCA6IERlbWFuZGUgZCdlc3NhaSByb3V0aWVyIiwiRU5HTElTSCI6IkxlYWQ6IFJlcXVlc3QgZm9yIGEgdGVzdCBkcml2ZSJ9LCJUaXJlc1JlcXVlc3QiOnsiRlJFTkNIIjoiTGVhZCA6IERlbWFuZGUgZGUgcG5ldXMiLCJFTkdMSVNIIjoiTGVhZDogUmVxdWVzdCBmb3IgdGlyZXMifSwiUHJvbW9NYWlsIjp7IkZSRU5DSCI6IkxlYWQgOiBEZW1hbmRlIGQnaW52aXRhdGlvbiBhIGxhIHZlbnRlIHByaXZlZSIsIkVOR0xJU0giOiJMZWFkOiBSZXF1ZXN0IGZvciBpbnZpdGF0aW9uIHRvIHByaXZhdGUgc2FsZSJ9LCJTbGlkZVdpZGdldEZvcm0iOnsiRlJFTkNIIjoiVUlURVhUIiwiRU5HTElTSCI6IlVJVEVYVCJ9LCJDb21wYXJlRm9ybSI6eyJGUkVOQ0giOiJVSVRFWFQiLCJFTkdMSVNIIjoiVUlURVhUIn0sIlNlYXJjaEZpbHRlcnMiOnsiRlJFTkNIIjoiVUlURVhUIiwiRU5HTElTSCI6IlVJVEVYVCJ9LCJoZWFkZXJHbG9iYWxTZWFyY2giOnsiRlJFTkNIIjoiVUlURVhUIiwiRU5HTElTSCI6IlVJVEVYVCJ9fSwic3ViX2dhNCI6IlkifSk7fWNhdGNoKGV6ejEpe2lmKGNvbnNvbGUmJmNvbnNvbGUubG9nKQpjb25zb2xlLmxvZyhlenoxKTt9CnZhciBpZGVudF9mNzNmYTZhYmJmYjRiYWIzZjQ5ZGFhZmIzODkxZTI3Zjt0cnl7KGZ1bmN0aW9uKHcsZCx0LHIsdSl7dmFyIGYsbixpO3dbdV09d1t1XXx8W10sZj1mdW5jdGlvbigpe3ZhciBvPXt0aToiNTA3OTM5MSIsZW5hYmxlQXV0b1NwYVRyYWNraW5nOnRydWV9O28ucT13W3VdLHdbdV09bmV3IFVFVChvKSx3W3VdLnB1c2goInBhZ2VMb2FkIil9LG49ZC5jcmVhdGVFbGVtZW50KHQpLG4uc3JjPXIsbi5hc3luYz0xLG4uc2V0QXR0cmlidXRlKCJkYXRhLW90LWlnbm9yZSIsdHJ1ZSksbi5zZXRBdHRyaWJ1dGUoInR5cGUiLCJ0ZXh0L2phdmFzY3JpcHQiKSxuLm9ubG9hZD1uLm9ucmVhZHlzdGF0ZWNoYW5nZT1mdW5jdGlvbigpe3ZhciBzPXRoaXMucmVhZHlTdGF0ZTtzJiZzIT09ImxvYWRlZCImJnMhPT0iY29tcGxldGUifHwoZigpLG4ub25sb2FkPW4ub25yZWFkeXN0YXRlY2hhbmdlPW51bGwpfSxpPWQuZ2V0RWxlbWVudHNCeVRhZ05hbWUodClbMF0saS5wYXJlbnROb2RlLmluc2VydEJlZm9yZShuLGkpfSkod2luZG93LGRvY3VtZW50LCJzY3JpcHQiLCIvL2JhdC5iaW5nLmNvbS9iYXQuanMiLCJ1ZXRxIik7fWNhdGNoKGV6ejEpe2lmKGNvbnNvbGUmJmNvbnNvbGUubG9nKQpjb25zb2xlLmxvZyhlenoxKTt9CnZhciBpZGVudF82MDA1NzEwZDI5Mzk1ODlmMGRjNzBhM2YwNjNmM2E0ODt0cnl7dmFyIGRlcGxveW1lbnRUeXBlPScnK2pzX2QyY19nZXRfdmFsKCIyZWpoYmMweXlvZzB3d3ciKSsnJztpZihkZXBsb3ltZW50VHlwZT09J2xpdmUnKXtnYVRyYWNrKCdfdHJhY2tFdmVudCcsJ1BhZ2VzIHZ1ZXMnLCdTZWN0aW9uLU5ldWYnLCcnLDEpO31lbHNlIGlmKGRlcGxveW1lbnRUeXBlPT0nc3RhZ2luZycpe2dhVHJhY2soJ2IuX3RyYWNrRXZlbnQnLCdNb2JpbGUgcGFnZXZpZXdzJywnU3RhbmRhcmQgTW9iaWxlJyx3aW5kb3cubG9jYXRpb24uaHJlZiwnMScpO319Y2F0Y2goZXp6MSl7aWYoY29uc29sZSYmY29uc29sZS5sb2cpCmNvbnNvbGUubG9nKGV6ejEpO30KdmFyIGlkZW50XzkxYzQ5Zjg0ZjY5ZmNmYmI4M2Y2ZTI3OTUwZDZhZDg4O3RyeXskKGZ1bmN0aW9uKCl7dHJ5eyQoJy5kZWFsZXJNYXBMaW5rJykuZGFya1Rvb2x0aXAoe2NvbnRlbnQ6IkRpcmVjdGlvbnMgdmVycyAiK2pzX2QyY19nZXRfdmFsKCIxN2dhOHZobmNodms4Y2drIikrIiIsZ3Jhdml0eTonbm9ydGgnLHRoZW1lOidsaWdodCcsdHJpZ2dlcjonaG92ZXInLH0pO31jYXRjaChlKXt9fSk7fWNhdGNoKGV6ejEpe2lmKGNvbnNvbGUmJmNvbnNvbGUubG9nKQpjb25zb2xlLmxvZyhlenoxKTt9CnZhciBpZGVudF9kNzViNzY4Mjg2ODQ4MDFlMjY2ZGJjYmIzYzgxMjA1NTt0cnl7JChmdW5jdGlvbigpeyQoJy5leHRlbmRlZFBob25lVHJpZ2dlcjpub3QoLm5vdHJpZ2dlciknKS5vbignbW91c2VlbnRlcicsZnVuY3Rpb24oKXskKCcuZXh0ZW5kZWRQaG9uZVRyaWdnZXIgKyAuZXh0ZW5kZWRQaG9uZScpLnNob3coKTt9KS5vbignbW91c2VsZWF2ZScsZnVuY3Rpb24oKXskKCcuZXh0ZW5kZWRQaG9uZVRyaWdnZXIgKyAuZXh0ZW5kZWRQaG9uZScpLmhpZGUoKTt9KTt9KTt9Y2F0Y2goZXp6MSl7aWYoY29uc29sZSYmY29uc29sZS5sb2cpCmNvbnNvbGUubG9nKGV6ejEpO30KdmFyIGlkZW50XzdjMmQyNTA0N2I4ZTdlZTJkOTZmZDY0N2EyOWVkMTkzO3RyeXtpblZpZXdFeGVjKCcjbWFwX29wZW5faG91cnMnLGZ1bmN0aW9uKCl7bGV0IG1hcFVSTD0naHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9tYXBzL2VtYmVkL3YxL3BsYWNlP3E9cGxhY2VfaWQlM0FDaElKWTF0dXJWT1Z1VXdSUC0yWDNobU8xUDAma2V5PV9fS0VZX18mY2VudGVyPTQ2LjEwNTg1MTQwMDAlMkMtNzAuMTM4OTMxOTczMTQ1Jnpvb209MTAmbGFuZ3VhZ2U9ZnImcmVnaW9uPUNBJztsZXQgbWFwRnJhbWU9JCgnI21hcGZyYW1lJyk7aWYobWFwRnJhbWUubGVuZ3RoPjApe2luamVjdEdvb2dsZU1hcHNLZXkoZnVuY3Rpb24oa2V5KXttYXBGcmFtZS5hdHRyKCdzcmMnLG1hcFVSTC5yZXBsYWNlKCdfX0tFWV9fJyxrZXkpKTt9KTt9CihuZXcgT3BlbkhvdXJzKHtjb250YWluZXI6JyNtYXBfb3Blbl9ob3VycycsYXV0b09wZW46dHJ1ZSx9KSkuaW5pdCgpO30pO31jYXRjaChlenoxKXtpZihjb25zb2xlJiZjb25zb2xlLmxvZykKY29uc29sZS5sb2coZXp6MSk7fQp2YXIgaWRlbnRfOTFjNDlmODRmNjlmY2ZiYjgzZjZlMjc5NTBkNmFkODg7dHJ5eyQoZnVuY3Rpb24oKXt0cnl7JCgnLmRlYWxlck1hcExpbmsnKS5kYXJrVG9vbHRpcCh7Y29udGVudDoiRGlyZWN0aW9ucyB2ZXJzICIranNfZDJjX2dldF92YWwoIjE3Z2E4dmhuY2h2azhjZ2siKSsiIixncmF2aXR5Oidub3J0aCcsdGhlbWU6J2xpZ2h0Jyx0cmlnZ2VyOidob3ZlcicsfSk7fWNhdGNoKGUpe319KTt9Y2F0Y2goZXp6MSl7aWYoY29uc29sZSYmY29uc29sZS5sb2cpCmNvbnNvbGUubG9nKGV6ejEpO30KdmFyIGlkZW50X2Q3NWI3NjgyODY4NDgwMWUyNjZkYmNiYjNjODEyMDU1O3RyeXskKGZ1bmN0aW9uKCl7JCgnLmV4dGVuZGVkUGhvbmVUcmlnZ2VyOm5vdCgubm90cmlnZ2VyKScpLm9uKCdtb3VzZWVudGVyJyxmdW5jdGlvbigpeyQoJy5leHRlbmRlZFBob25lVHJpZ2dlciArIC5leHRlbmRlZFBob25lJykuc2hvdygpO30pLm9uKCdtb3VzZWxlYXZlJyxmdW5jdGlvbigpeyQoJy5leHRlbmRlZFBob25lVHJpZ2dlciArIC5leHRlbmRlZFBob25lJykuaGlkZSgpO30pO30pO31jYXRjaChlenoxKXtpZihjb25zb2xlJiZjb25zb2xlLmxvZykKY29uc29sZS5sb2coZXp6MSk7fQp2YXIgaWRlbnRfMGZmM2Q1Yzc2MjJkNzRlYjY1MTA1OWIzMmQxOTU2NGE7dHJ5e3ZhciB1dG1fc291cmNlPWdldFBhcmFtZXRlckJ5TmFtZSgndXRtX3NvdXJjZScpO2pRdWVyeShmdW5jdGlvbigkKXtpZih1dG1fc291cmNlIT0iIil7Q29va2llcy5zZXQoJ3V0bV9sYW5kaW5nX2Zvb3RlcicsbnVsbCxudWxsLCIvIik7fQppZihDb29raWVzLmdldCgidXRtX2xhbmRpbmdfZm9vdGVyIik9PW51bGwpe0Nvb2tpZXMuc2V0KCd1dG1fbGFuZGluZ19mb290ZXInLHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSxudWxsLCIvIik7fQppZigkKCcjZ2VuZXJpY19mb3JtX2NvbmZpcm0nKS5sZW5ndGg8MSl7dmFyIEZvcm09JCgnPGZvcm0gaWQ9ImdlbmVyaWNfZm9ybV9jb25maXJtIiB0YXJnZXQ9ImlmcmFtZWd0cmFjayIgbWV0aG9kPSJwb3N0IiBhY3Rpb249Ii9jb25maXJtYXRpb24uaHRtbCI+PC9mb3JtPicpO3ZhciBtYWtlVmFsPSIiK2pzX2QyY19nZXRfdmFsKCIxZXJpdjkwMHBkYTg4d3c4IikrIiI7dmFyIG1vZGVsVmFsPSIiK2pzX2QyY19nZXRfdmFsKCIxMHBhN3YzcWVsZGNvc2siKSsiIjt2YXIgeWVhclZhbD0iIitqc19kMmNfZ2V0X3ZhbCgicjgyemZreGEyZHdzczAwIikrIiI7dmFyIHJlZmVyYWxWYWw9IiIranNfZDJjX2dldF92YWwoImkzZ3NheGdzNWprOHdjayIpKyIiO3ZhciBzZWN0aW9uVmFsPScnK2pzX2QyY19nZXRfdmFsKCJzbzd5dXFhajRkd2NjOHMiKSsnJzt2YXIgZnJvbUF1dG9hdWJhaW5lPSQoJyNhdXRvYXViYWluZV9wb3B1cCcpLmxlbmd0aD4wJiYoJCgnI2F1dG9hdWJhaW5lX3BvcHVwJykudmFsKCkhPSdmYWxzZScpO3ZhciBpbnB1dHM9W3tuYW1lOiJsYWJlbCIsdmFsdWU6IiIsJ2NsYXNzJzoibGFiZWxlbWFpbCJ9LHtuYW1lOiJzZWN0aW9uIix2YWx1ZToiIiwnY2xhc3MnOiJsYWJlbHNlY3Rpb24ifSx7bmFtZToiYnJhbmQiLHZhbHVlOm1ha2VWYWwsJ2NsYXNzJzoiYnJhbmRlbWFpbCJ9LHtuYW1lOiJtb2RlbCIsdmFsdWU6bW9kZWxWYWwsJ2NsYXNzJzoibW9kZWxlbWFpbCJ9LHtuYW1lOiJ5ZWFyIix2YWx1ZTp5ZWFyVmFsLCdjbGFzcyc6InllYXJlbWFpbCJ9LHtuYW1lOiJnb29nbGVpZCIsdmFsdWU6IiJ9LHtuYW1lOiJnb29nbGVpZGQyY21lZGlhIix2YWx1ZToiIn0se25hbWU6ImJpbmdjb25pZCIsdmFsdWU6IiJ9LHtuYW1lOiJiaW5nYWN0aW9uaWQiLHZhbHVlOiIifSx7bmFtZToiYmluZ2RvbWFpbmlkIix2YWx1ZToiIn0se25hbWU6Imd0YWdfY29udmVyc2lvbiIsdmFsdWU6Imd0YWcifSx7bmFtZToiYWRyb2xsQWR2Iix2YWx1ZToiIn0se25hbWU6ImFkcm9sbFBpeCIsdmFsdWU6IiJ9LHtuYW1lOiJmYWNlYm9va0NvbklkIix2YWx1ZToiMjYwNTI1OTQ2MjkyNzY0NCJ9LHtuYW1lOiJsZWFkX2RlcGFydG1lbnQiLHZhbHVlOiIifSx7bmFtZToibGVhZFR5cGUiLHZhbHVlOiIifSx7bmFtZToicGFnZUlEIix2YWx1ZToiIn0se25hbWU6ImN1cnJlbnRVUkwiLHZhbHVlOiIifSx7bmFtZToiZG9tYWluIix2YWx1ZToic2l0dGVsbGVtYXpkYS5jYSJ9LHtuYW1lOiJyZWZlcnJlciIsdmFsdWU6cmVmZXJhbFZhbH0se25hbWU6ImlzZXhwcmVzcyIsdmFsdWU6IiIsJ2NsYXNzJzonaXNleHByZXNzJ30se25hbWU6ImlzcHJvbW8iLHZhbHVlOiIifSx7bmFtZToiaXNob21lcGFnZSIsdmFsdWU6IiJ9LHtuYW1lOiJ0ZXN0bW9kZSIsdmFsdWU6IjAiLCdjbGFzcyc6InRlc3Rtb2RlIn0se25hbWU6J3RleHRDYXJTZWN0aW9uVHlwZScsdmFsdWU6c2VjdGlvblZhbH0se25hbWU6ImxhbmciLHZhbHVlOiJGUkVOQ0gifSx7bmFtZToiYnV0dG9uUG9zaXRpb24iLHZhbHVlOiIifSx7bmFtZToiZGVhbGVyTmFtZSIsdmFsdWU6IiJ9LHtuYW1lOiJpc0Z1bGxXaWR0aCIsdmFsdWU6IiJ9LHtuYW1lOiJpc01vYmlsZU5ld1ZEUCIsdmFsdWU6IiJ9LHtuYW1lOiJmcm9tQXV0b0F1YmFpbmUiLHZhbHVlOjB9XQpmb3IodmFyIGk9MDtpPGlucHV0cy5sZW5ndGg7aSsrKXskKCc8aW5wdXQgdHlwZT0iaGlkZGVuIiAvPicpLmF0dHIoaW5wdXRzW2ldKS5hcHBlbmRUbyhGb3JtKTt9CkZvcm0uYXBwZW5kVG8oJyNjb25maXJtX2Zvcm1zJyk7Rm9ybS5vbignc3VibWl0JyxvbkNvbmZpcm1TdWJtaXQpO30KaWYoJCgnI2d0cmFja0ZyYW1lJykubGVuZ3RoPDEpeyQoJzxpZnJhbWU+PC9pZnJhbWU+JykuYXR0cih7d2lkdGg6MSxoZWlnaHQ6MSxmcmFtZUJvcmRlcjowLGlkOidndHJhY2tGcmFtZScsbmFtZTonaWZyYW1lZ3RyYWNrJyxyb2xlOidub25lJyxzdHlsZTond2lkdGg6MXB4O2hlaWdodDoxcHg7Jyx0aXRsZTonZnJhbWUnfSkuYXBwZW5kVG8oJyNjb25maXJtX2Zvcm1zJyk7fX0pO3ZhciBzZXRDaGF0WmluZGV4PWZ1bmN0aW9uKCl7dmFyIGNoYXRFbD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdpZnJhbWVbdGl0bGU9ImNoYXQgd2lkZ2V0Il0nKTtpZihjaGF0RWwpe2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2lmcmFtZVt0aXRsZT0iY2hhdCB3aWRnZXQiXScpLnBhcmVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJ3otaW5kZXgnLCcxMCcsJ2ltcG9ydGFudCcpO319CnNldFRpbWVvdXQoc2V0Q2hhdFppbmRleCwzMDAwKTt9Y2F0Y2goZXp6MSl7aWYoY29uc29sZSYmY29uc29sZS5sb2cpCmNvbnNvbGUubG9nKGV6ejEpO30KdmFyIGlkZW50XzNhMjQ2YTc5OGQyNWRjYzMzMTU3NmViNWZkODBkNDdlO3RyeXskKCcuY29uc2VudC5kaXNjbGFpbWVyJykuZGFya1Rvb2x0aXAoe2dyYXZpdHk6J3NvdXRoJyx0aGVtZTonbGlnaHQnLHRyaWdnZXI6J2hvdmVyJyxvcGFjaXR5OjEsfSk7fWNhdGNoKGV6ejEpe2lmKGNvbnNvbGUmJmNvbnNvbGUubG9nKQpjb25zb2xlLmxvZyhlenoxKTt9CnZhciBpZGVudF83YjA5OTJkYzhlNTVmYjRkYmQzMzllZWE5YzYyMWU0YTt0cnl7dHJ5eyFmdW5jdGlvbihmLGIsZSx2LG4sdCxzKXtpZihmLmZicSlyZXR1cm47bj1mLmZicT1mdW5jdGlvbigpe24uY2FsbE1ldGhvZD9uLmNhbGxNZXRob2QuYXBwbHkobixhcmd1bWVudHMpOm4ucXVldWUucHVzaChhcmd1bWVudHMpfTtpZighZi5fZmJxKWYuX2ZicT1uO24ucHVzaD1uO24ubG9hZGVkPSEwO24udmVyc2lvbj0nMi4wJztuLnF1ZXVlPVtdO3Q9Yi5jcmVhdGVFbGVtZW50KGUpO3QuYXN5bmM9ITA7dC5zZXRBdHRyaWJ1dGUoJ2NsYXNzJywnb3B0YW5vbi1jYXRlZ29yeS1DMDAwMi1DMDAwMy1DMDAwNC1DMDAwNScpO3Quc2V0QXR0cmlidXRlKCd0eXBlJywndGV4dC9wbGFpbicpO3Quc3JjPXY7dC5zZXRBdHRyaWJ1dGUoJ2NsYXNzJywnb3B0YW5vbi1jYXRlZ29yeS1DMDAwMi1DMDAwMy1DMDAwNC1DMDAwNScpO3Quc2V0QXR0cmlidXRlKCd0eXBlJywndGV4dC9wbGFpbicpO3M9Yi5nZXRFbGVtZW50c0J5VGFnTmFtZShlKVswXTtzLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKHQscyl9KHdpbmRvdyxkb2N1bWVudCwnc2NyaXB0JywnaHR0cHM6Ly9jb25uZWN0LmZhY2Vib29rLm5ldC9lbl9VUy9mYmV2ZW50cy5qcycpO2ZicSgnaW5pdCcsJzI2MDUyNTk0NjI5Mjc2NDQnKTtmYnEoJ3RyYWNrJywiUGFnZVZpZXciKTtmYnEoJ3RyYWNrJywnVmlld0NvbnRlbnQnKTt9Y2F0Y2goZXgpe307fWNhdGNoKGV6ejEpe2lmKGNvbnNvbGUmJmNvbnNvbGUubG9nKQpjb25zb2xlLmxvZyhlenoxKTt9CnZhciBpZGVudF84M2MyNTI4YTc1MzgwYzA3ODcyZTkyYWQyYzk5YWUyZTt0cnl7aWYodHlwZW9mIHBhZ2UhPT0ndW5kZWZpbmVkJyYmcGFnZT09Ik5FV0NBUkRFVEFJTFMiKXskKGRvY3VtZW50KS5vbignY2xpY2snLCdhJyxmdW5jdGlvbigpe3ZhciBvYmo9JCh0aGlzKTt2YXIgaHJlZj1vYmouYXR0cignaHJlZicpO3ZhciB0ZXh0PW9iai50ZXh0KCk7aWYodGV4dC5sZW5ndGg+MCYmb2JqLmZpbmQoJ2ltZycpLmxlbmd0aD09MCYmdHlwZW9mIGhyZWYhPSd1bmRlZmluZWQnKXt2YXIgdGl0bGU9JCgnLmJyYW5kZW1haWxbbmFtZT0iYnJhbmQiXScpLnZhbCgpKyctJyskKCcubW9kZWxlbWFpbFtuYW1lPSJtb2RlbCJdJykudmFsKCkrJy0nKyQoJy55ZWFyZW1haWwnKS52YWwoKTtpZihocmVmIT0iIyImJmhyZWYhPSIiJiZocmVmLmluZGV4T2YoImphdmFzY3JpcHQiKTwwJiZocmVmLmluZGV4T2YoJ3snKTwwKXt0aXRsZT1ocmVmO30KZ2FUcmFjaygnX3RyYWNrRXZlbnQnLCdOZXctVkRQLU91dGJvdW5kLWNsaWNrcycsb2JqLnRleHQoKSx0aXRsZSk7fX0pO319Y2F0Y2goZXp6MSl7aWYoY29uc29sZSYmY29uc29sZS5sb2cpCmNvbnNvbGUubG9nKGV6ejEpO30KdmFyIGlkZW50XzkyZDI1ODVjNmYyODYyYWE1NmI5YTUxOGZmODM1Mzc5O3RyeXshZnVuY3Rpb24oZixiLGUsdixuLHQscyl7aWYoZi5mYnEpcmV0dXJuO249Zi5mYnE9ZnVuY3Rpb24oKXtuLmNhbGxNZXRob2Q\/bi5jYWxsTWV0aG9kLmFwcGx5KG4sYXJndW1lbnRzKTpuLnF1ZXVlLnB1c2goYXJndW1lbnRzKX07aWYoIWYuX2ZicSlmLl9mYnE9bjtuLnB1c2g9bjtuLmxvYWRlZD0hMDtuLnZlcnNpb249JzIuMCc7bi5xdWV1ZT1bXTt0PWIuY3JlYXRlRWxlbWVudChlKTt0LmFzeW5jPSEwO3Quc2V0QXR0cmlidXRlKCdjbGFzcycsJ29wdGFub24tY2F0ZWdvcnktQzAwMDItQzAwMDMtQzAwMDQtQzAwMDUnKTt0LnNldEF0dHJpYnV0ZSgndHlwZScsJ3RleHQvcGxhaW4nKTt0LnNyYz12O3Quc2V0QXR0cmlidXRlKCdjbGFzcycsJ29wdGFub24tY2F0ZWdvcnktQzAwMDItQzAwMDMtQzAwMDQtQzAwMDUnKTt0LnNldEF0dHJpYnV0ZSgndHlwZScsJ3RleHQvcGxhaW4nKTtzPWIuZ2V0RWxlbWVudHNCeVRhZ05hbWUoZSlbMF07cy5wYXJlbnROb2RlLmluc2VydEJlZm9yZSh0LHMpfSh3aW5kb3csZG9jdW1lbnQsJ3NjcmlwdCcsJ2h0dHBzOi8vY29ubmVjdC5mYWNlYm9vay5uZXQvZW5fVVMvZmJldmVudHMuanMnKTtmYnEoJ2luaXQnLCc3MTU0MzYyNzA2OTkwMTknKTtmYnEoJ3RyYWNrJywnUGFnZVZpZXcnKTt9Y2F0Y2goZXp6MSl7aWYoY29uc29sZSYmY29uc29sZS5sb2cpCmNvbnNvbGUubG9nKGV6ejEpO30KdmFyIGlkZW50X2IyZjg4MzAzMzk1NjE4ZTU3N2YzOTkwMGNkOWVkOTBlO3RyeXtqUXVlcnkoZnVuY3Rpb24oJCl7JCgiI2QyY0Zvb3RlckNvb2tpZURlbGV0ZSIpLnBvcHVwaXplKHsiY29va2llRHVyYXRpb24iOjMwLCJjb29raWVOYW1lIjpudWxsLCJjb29raWVDcmVhdGUiOm51bGwsImdvb2dsZVRyYWNraW5nIjp7ImlkU3VmZml4IjoiIiwibGFiZWwiOiIiLCJsYWJlbHNlY3Rpb24iOiIiLCJpc2V4cHJlc3MiOjAsImlzcHJvbW8iOjAsImlzaG9tZXBhZ2UiOjAsImlzbW9iaWxlIjowfSwiZm9ybSI6eyJlbWFpbGlkIjpudWxsLCJvZmZlcnR5cGUiOm51bGwsIm5hbWUiOm51bGwsInNlbmRUbyI6bnVsbCwic2VuZFRvQURGIjpudWxsLCJPS0J1dHRvbkNsYXNzIjoic3VibWl0QnRuIiwiQ2FuY2VsQnV0dG9uQ2xhc3MiOiJjYW5jZWxCdG4iLCJzaG93RW1haWxDb25maXJtYXRpb24iOmZhbHNlLCJmcm9tQUEiOmZhbHNlLCJjb25maXJtYXRpb24iOnsidGl0bGUiOm51bGwsImJvZHkiOm51bGx9fSwic3RhdGUiOltdLCJ2ZWhpY2xlU3RhdGUiOiJ1c2VkIiwiY2xvc2VPblN1Ym1pdCI6dHJ1ZSwiZmlsbGZsYWciOmZhbHNlLCJub3RyYW5zZm9ybSI6dHJ1ZSwibmFtZSI6ZmFsc2UsImFuaW1hdGlvbiI6ImZhZGVBbmRQb3AiLCJhbmltYXRpb25TcGVlZCI6MzAwLCJjbG9zZU9uQmFja2dyb3VuZENsaWNrIjpmYWxzZSwiZGlzbWlzc01vZGFsQ2xhc3MiOiJjbG9zZS1yZXZlYWwtbW9kYWwiLCJjbG9zZUJ1dHRvbiI6dHJ1ZSwiYnlwYXNzQ29uc2VudCI6ZmFsc2UsInRocmVzaG9sZCI6ZmFsc2UsInRocmVzaG9sZFZhbHVlIjpmYWxzZSwic2Nyb2xsdXAiOmZhbHNlLCJtYWlucG9wdXAiOmZhbHNlLCJzaG93b25sb2FkIjpmYWxzZSwiY291bnRkb3duIjoxNzc0MjM4NDAwLCJjb25maXJtRm9ybSI6W3sibmFtZSI6ImxhYmVsIiwidmFsdWUiOiIiLCJjbGFzcyI6ImxhYmVsZW1haWwifSx7Im5hbWUiOiJzZWN0aW9uIiwidmFsdWUiOiIiLCJjbGFzcyI6ImxhYmVsc2VjdGlvbiJ9LHsibmFtZSI6ImJyYW5kIiwidmFsdWUiOiIiK2pzX2QyY19nZXRfdmFsKCIxZXJpdjkwMHBkYTg4d3c4IikrIiIsImNsYXNzIjoiYnJhbmRlbWFpbCJ9LHsibmFtZSI6Im1vZGVsIiwidmFsdWUiOiIiK2pzX2QyY19nZXRfdmFsKCIxMHBhN3YzcWVsZGNvc2siKSsiIiwiY2xhc3MiOiJtb2RlbGVtYWlsIn0seyJuYW1lIjoieWVhciIsInZhbHVlIjoiIitqc19kMmNfZ2V0X3ZhbCgicjgyemZreGEyZHdzczAwIikrIiIsImNsYXNzIjoieWVhcmVtYWlsIn0seyJuYW1lIjoiZ29vZ2xlaWQiLCJ2YWx1ZSI6IiJ9LHsibmFtZSI6Imdvb2dsZWlkZDJjbWVkaWEiLCJ2YWx1ZSI6IiJ9LHsibmFtZSI6ImJpbmdjb25pZCIsInZhbHVlIjoiIn0seyJuYW1lIjoiYmluZ2FjdGlvbmlkIiwidmFsdWUiOiIifSx7Im5hbWUiOiJiaW5nZG9tYWluaWQiLCJ2YWx1ZSI6IiJ9LHsibmFtZSI6ImFkcm9sbEFkdiIsInZhbHVlIjoiIn0seyJuYW1lIjoiYWRyb2xsUGl4IiwidmFsdWUiOiIifSx7Im5hbWUiOiJmYWNlYm9va0NvbklkIiwidmFsdWUiOiIyNjA1MjU5NDYyOTI3NjQ0In0seyJuYW1lIjoiZG9tYWluIiwidmFsdWUiOiJzaXR0ZWxsZW1hemRhLmNhIn0seyJuYW1lIjoicmVmZXJyZXIiLCJ2YWx1ZSI6IiIranNfZDJjX2dldF92YWwoImkzZ3NheGdzNWprOHdjayIpKyIifSx7Im5hbWUiOiJpc2V4cHJlc3MiLCJ2YWx1ZSI6IjAiLCJjbGFzcyI6ImlzZXhwcmVzcyJ9LHsibmFtZSI6ImlzcHJvbW8iLCJ2YWx1ZSI6IjAifSx7Im5hbWUiOiJpc2hvbWVwYWdlIiwidmFsdWUiOiIwIn0seyJuYW1lIjoidGV4dENhclNlY3Rpb25UeXBlIiwidmFsdWUiOiIiK2pzX2QyY19nZXRfdmFsKCJzbzd5dXFhajRkd2NjOHMiKSsiIn0seyJuYW1lIjoiZnJvbUFBIiwidmFsdWUiOiIifSx7Im5hbWUiOiJsYW5nIiwidmFsdWUiOiJGUkVOQ0gifV19KTt9KTt9Y2F0Y2goZXp6MSl7aWYoY29uc29sZSYmY29uc29sZS5sb2cpCmNvbnNvbGUubG9nKGV6ejEpO30KdmFyIGlkZW50XzhkOWY4Y2ZjMWI4OTM4N2ExMzhlZjQxZjIzOTYyZGY3O3RyeXtqUXVlcnkoZnVuY3Rpb24oJCl7JCgiI2NvbnRhY3Rwb3B1cCIpLnBvcHVwaXplKHsib25BZnRlckluaXRpYWxpemUiOmZ1bmN0aW9uKHNlbGYpe2NvbnRhY3RQb3B1cC5zZXRDb25maWcoe3R5cGU6c2VsZi5zZXR0aW5ncy5mb3JtLnR5cGV9KTtpZih0eXBlb2YgcG9wdXBEZWZhdWx0T25BZnRlckluaXRpYWxpemUhPSJ1bmRlZmluZWQiKXt2YXIgdG1wPXBvcHVwRGVmYXVsdE9uQWZ0ZXJJbml0aWFsaXplKCJuZXciLCIiK2pzX2QyY19nZXRfdmFsKCI2anlwNDY2NHZnd3M4MHciKSsiIix0cnVlLCIiLCIiK2pzX2QyY19nZXRfdmFsKCIxNmQ3dnd0NjZwbW93bzBrIikrIiIsImNvbnRhY3Rwb3B1cCIsdHJ1ZSk7aWYoZmFsc2UmJnRtcClzZWxmLnNldHRpbmdzLnNob3dvbmxvYWQ9MzA7cmV0dXJuIHRtcDt9fSwib25CZWZvcmVTZW5kTWFpbCI6ZnVuY3Rpb24oc2VsZil7Y29udGFjdFBvcHVwLm9uQmVmb3JlU2VuZE1haWwoKTt9LCJjb29raWVEdXJhdGlvbiI6MzAsImNvb2tpZU5hbWUiOm51bGwsImNvb2tpZUNyZWF0ZSI6bnVsbCwiZ29vZ2xlVHJhY2tpbmciOnsiaWRTdWZmaXgiOiIiLCJsYWJlbCI6IiIsImxhYmVsc2VjdGlvbiI6IiIsImlzZXhwcmVzcyI6MCwiaXNwcm9tbyI6MCwiaXNob21lcGFnZSI6MCwiaXNtb2JpbGUiOjB9LCJmb3JtIjp7ImVtYWlsaWQiOiJDb250YWN0VXNSZXF1ZXN0Iiwic2VuZFRvIjpudWxsLCJzZW5kVG9BREYiOm51bGwsInNob3dFbWFpbENvbmZpcm1hdGlvbiI6dHJ1ZSwiY29uZmlybWF0aW9uIjp7InRpdGxlIjoiVm90cmUgbWVzc2FnZSBhIGJpZW4gJmVhY3V0ZTt0JmVhY3V0ZTsgZW52b3kmZWFjdXRlOyEiLCJib2R5IjoiTWVyY2khIFVuIG1lbWJyZSBkZSBub3RyZSAmZWFjdXRlO3F1aXBlIHZvdXMgY29udGFjdGVyYSBzb3VzIHBldS4ifSwidHlwZSI6Im5ldyJ9LCJzdGF0ZSI6W10sInZlaGljbGVTdGF0ZSI6InVzZWQiLCJjbG9zZU9uU3VibWl0Ijp0cnVlLCJmaWxsZmxhZyI6ZmFsc2UsIm5vdHJhbnNmb3JtIjp0cnVlLCJuYW1lIjpmYWxzZSwiYW5pbWF0aW9uIjoiZmFkZUFuZFBvcCIsImFuaW1hdGlvblNwZWVkIjozMDAsImNsb3NlT25CYWNrZ3JvdW5kQ2xpY2siOmZhbHNlLCJkaXNtaXNzTW9kYWxDbGFzcyI6ImNsb3NlLXJldmVhbC1tb2RhbCIsImNsb3NlQnV0dG9uIjp0cnVlLCJieXBhc3NDb25zZW50IjpmYWxzZSwidGhyZXNob2xkIjpmYWxzZSwidGhyZXNob2xkVmFsdWUiOiI3NSIsInNjcm9sbHVwIjpmYWxzZSwibWFpbnBvcHVwIjp0cnVlLCJjb3VudGRvd24iOjE3NzQyMzg0MDAsImNvbmZpcm1Gb3JtIjpbXX0pO30pO31jYXRjaChlenoxKXtpZihjb25zb2xlJiZjb25zb2xlLmxvZykKY29uc29sZS5sb2coZXp6MSk7fQp2YXIgaWRlbnRfM2Q3ODU0Mjc0MTI1ZWE2OWIwMjQ1NzU2NDZhNjk4ZGM7dHJ5e21haWxTZW50SGFuZGxlcj1nZXRNYWlsU2VudEhhbmRsZXIoJ19jb250YWN0cG9wdXAnKTt9Y2F0Y2goZXp6MSl7aWYoY29uc29sZSYmY29uc29sZS5sb2cpCmNvbnNvbGUubG9nKGV6ejEpO30KdmFyIGlkZW50XzY2MzExZWQ4NjVlYzk5ZDJmMjJiOWNhODVhZTExNjViO3RyeXtqUXVlcnkoZnVuY3Rpb24oJCl7JCgiI2NyZWRpdFNjb3JlUG9wdXBDb250YWluZXIiKS5wb3B1cGl6ZSh7Im9uQWZ0ZXJzdWJtaXQiOmZ1bmN0aW9uKHNlbGYpe3NldENvb2tpZSgnY3JlZGl0U2NvcmVFbWJlZGRlZEZpbGxlZCcsMSwzMCk7aWYodHlwZW9mIGdVc2VkU3JwQXBweiE9PSd1bmRlZmluZWQnKXtnVXNlZFNycEFwcHouZmlsdGVySW50ZXJmYWNlLmNsZWFyUHJveHlDYWNoZUFuZFJlRmV0Y2goKTt9fSwib25BZnRlckluaXRpYWxpemUiOmZ1bmN0aW9uKHNlbGYpeyhuZXcgRm9ybSgpKS5tYXNrUGhvbmUoIiNjcmVkaXRTY29yZVBvcHVwQ29udGFpbmVyICNjcmVkaXRTY29yZVBob25lIik7dmFyIGxhbmc9JCgiYm9keSIpLmhhc0NsYXNzKCJFTkdMSVNIIik\/ImVuIjoiZnIiO3ZhciBzdGFydERhdGU9bmV3IERhdGUoKTtzdGFydERhdGUuc2V0RnVsbFllYXIoc3RhcnREYXRlLmdldEZ1bGxZZWFyKCktMzApO3ZhciBtYXhEYXRlPW5ldyBEYXRlKCk7bWF4RGF0ZS5zZXRGdWxsWWVhcihtYXhEYXRlLmdldEZ1bGxZZWFyKCktMTgpO3ZhciBtaW5EYXRlPW5ldyBEYXRlKCk7bWluRGF0ZS5zZXRGdWxsWWVhcihtaW5EYXRlLmdldEZ1bGxZZWFyKCktMTIwKTskKCIuY3JlZGl0U2NvcmVCaXJ0aGRhdGUiKS5uZWJDYWwoe21heERhdGU6bWF4RGF0ZS5mb3JtYXQoInl5eXktTU0tZGQiKSxtaW5EYXRlOm1pbkRhdGUuZm9ybWF0KCJ5eXl5LU1NLWRkIiksZGVmYXVsdERhdGU6c3RhcnREYXRlLmZvcm1hdCgieXl5eS1NTS1kZCIpLGZvcm1hdDoiZGQgTU1NIHl5eXkiLGRlZmF1bHRWaWV3OiJkZWNhZGUifSk7JCgnI2NyZWRpdFNjb3JlUG9wdXBDb250YWluZXIgaW5wdXRbZGF0YS1nb29nbGUtcGxhY2VzLWN1c3RvbT0idHJ1ZSJdJykuZ29vZ2xlUGxhY2VzKCk7dmFyIHBvcHVwVHlwZT0ibmV3IjtpZih0eXBlb2YgcG9wdXBEZWZhdWx0T25BZnRlckluaXRpYWxpemUhPSJ1bmRlZmluZWQiKXt2YXIgdG1wPXBvcHVwRGVmYXVsdE9uQWZ0ZXJJbml0aWFsaXplKCJuZXciLCIiK2pzX2QyY19nZXRfdmFsKCI2anlwNDY2NHZnd3M4MHciKSsiIixmYWxzZSwiIiwiIitqc19kMmNfZ2V0X3ZhbCgiMTZkN3Z3dDY2cG1vd28wayIpKyIiLCJjcmVkaXRTY29yZVBvcHVwQ29udGFpbmVyIixmYWxzZSk7aWYoMCYmdG1wKXtzZWxmLnNldHRpbmdzLnNob3dvbmxvYWQ9MTA7fQplbHNle3NlbGYuc2V0dGluZ3Muc2hvd29ubG9hZD1mYWxzZTt9CnJldHVybiB0bXA7fX0sImNvb2tpZUR1cmF0aW9uIjo2MCwiY29va2llTmFtZSI6ImNyZWRpdFNjb3JlU2hvd24iLCJjb29raWVDcmVhdGUiOiJvbk9wZW4iLCJnb29nbGVUcmFja2luZyI6eyJpZFN1ZmZpeCI6IiIsImxhYmVsIjoiIiwibGFiZWxzZWN0aW9uIjoiIiwiaXNleHByZXNzIjowLCJpc3Byb21vIjowLCJpc2hvbWVwYWdlIjowLCJpc21vYmlsZSI6MH0sImZvcm0iOnsiZW1haWxpZCI6IkNyZWRpdFNjb3JlIiwib2ZmZXJ0eXBlIjoiQ3JlZGl0U2NvcmUiLCJuYW1lIjpudWxsLCJzZW5kVG8iOiIiK2pzX2QyY19nZXRfdmFsKCIxM2RxdHNuY2Q4MXdrODQ0IikrIiIsInNlbmRUb0FERiI6IiIranNfZDJjX2dldF92YWwoIjVjY3lnazkyNW1nd2cwIikrIiIsIk9LQnV0dG9uQ2xhc3MiOiJjcmVkaXRTY29yZV9idG4iLCJDYW5jZWxCdXR0b25DbGFzcyI6ImNhbmNlbEJ0biIsInNob3dFbWFpbENvbmZpcm1hdGlvbiI6dHJ1ZSwiZnJvbUFBIjpmYWxzZSwiY29uZmlybWF0aW9uIjp7InRpdGxlIjoiVm90cmUgZGVtYW5kZSBhIGJpZW4gJmVhY3V0ZTt0JmVhY3V0ZTsgZW52b3kmZWFjdXRlO2UhIiwiYm9keSI6Ik1lcmNpISBVbiBjb25zZWlsbGVyIGNvbW11bmlxdWVyYSBhdmVjIHZvdXMgcG91ciB2b3VzIGRvbm5lciBsZXMgZCZlYWN1dGU7dGFpbHMgc3VyIHZvdHJlIHBvdGVudGllbCBkZSBjciZlYWN1dGU7ZGl0LiJ9fSwic3RhdGUiOltdLCJ2ZWhpY2xlU3RhdGUiOiJ1c2VkIiwiY2xvc2VPblN1Ym1pdCI6dHJ1ZSwiZmlsbGZsYWciOmZhbHNlLCJub3RyYW5zZm9ybSI6dHJ1ZSwibmFtZSI6ZmFsc2UsImFuaW1hdGlvbiI6ImZhZGVBbmRQb3AiLCJhbmltYXRpb25TcGVlZCI6MzAwLCJjbG9zZU9uQmFja2dyb3VuZENsaWNrIjpmYWxzZSwiZGlzbWlzc01vZGFsQ2xhc3MiOiJjbG9zZS1yZXZlYWwtbW9kYWwiLCJjbG9zZUJ1dHRvbiI6dHJ1ZSwiYnlwYXNzQ29uc2VudCI6ZmFsc2UsInRocmVzaG9sZCI6ZmFsc2UsInRocmVzaG9sZFZhbHVlIjowLCJzY3JvbGx1cCI6ZmFsc2UsIm1haW5wb3B1cCI6ZmFsc2UsInNob3dvbmxvYWQiOmZhbHNlLCJjb3VudGRvd24iOjE3NzQyMzg0MDAsImNvbmZpcm1Gb3JtIjpbXX0pO30pO31jYXRjaChlenoxKXtpZihjb25zb2xlJiZjb25zb2xlLmxvZykKY29uc29sZS5sb2coZXp6MSk7fQp2YXIgaWRlbnRfZDY2ZjVkOTQ4NTk3NDJjNmE1MWY4YmFkOWMwZGZhZTA7dHJ5e21haWxTZW50SGFuZGxlcj1nZXRNYWlsU2VudEhhbmRsZXIoJ19jcmVkaXRTY29yZVBvcHVwQ29udGFpbmVyJyk7fWNhdGNoKGV6ejEpe2lmKGNvbnNvbGUmJmNvbnNvbGUubG9nKQpjb25zb2xlLmxvZyhlenoxKTt9CnZhciBpZGVudF81YzY0NTYzNDhkZGM4YjcyMjczYjI2ODM0MTA4MWY1ZDt0cnl7alF1ZXJ5KGZ1bmN0aW9uKCQpeyQoIiNmaW5hbmNlTXVsdGlzdGVwUG9wdXBDb250YWluZXIiKS5wb3B1cGl6ZSh7Im9uQWZ0ZXJJbml0aWFsaXplIjpmdW5jdGlvbihzZWxmKXt2YXIgbXVsdGlzdGVwPWluaXRpYWxpemVGaW5hbmNlTXVsdGlTdGVwKHNlbGYudGFyZ2V0KTskKGRvY3VtZW50KS5vbignY3JlZGl0Lm11bHRpc3RlcHBvcHVwLnN0YXJ0JyxmdW5jdGlvbihlKXttdWx0aXN0ZXAuc3RhcnQoKTt9KTt9LCJjb29raWVEdXJhdGlvbiI6MzAsImNvb2tpZU5hbWUiOm51bGwsImNvb2tpZUNyZWF0ZSI6bnVsbCwiZ29vZ2xlVHJhY2tpbmciOnsiaWRTdWZmaXgiOiIiLCJsYWJlbCI6IiIsImxhYmVsc2VjdGlvbiI6IiIsImlzZXhwcmVzcyI6MCwiaXNwcm9tbyI6MCwiaXNob21lcGFnZSI6MCwiaXNtb2JpbGUiOjB9LCJmb3JtIjp7ImVtYWlsaWQiOiJDcmVkaXRNdWx0aXN0ZXBSZXF1ZXN0Iiwib2ZmZXJ0eXBlIjoiQ3JlZGl0TXVsdGlzdGVwUmVxdWVzdCIsIm5hbWUiOm51bGwsInNlbmRUbyI6IiIranNfZDJjX2dldF92YWwoIjEzZHF0c25jZDgxd2s4NDQiKSsiIiwic2VuZFRvQURGIjoiIitqc19kMmNfZ2V0X3ZhbCgiNWNjeWdrOTI1bWd3ZzAiKSsiIiwiT0tCdXR0b25DbGFzcyI6InN1Ym1pdEJ0biIsIkNhbmNlbEJ1dHRvbkNsYXNzIjoiY2FuY2VsQnRuIiwic2hvd0VtYWlsQ29uZmlybWF0aW9uIjpmYWxzZSwiZnJvbUFBIjpmYWxzZSwiY29uZmlybWF0aW9uIjp7InRpdGxlIjpudWxsLCJib2R5IjpudWxsfX0sInN0YXRlIjpbXSwidmVoaWNsZVN0YXRlIjoidXNlZCIsImNsb3NlT25TdWJtaXQiOnRydWUsImZpbGxmbGFnIjpmYWxzZSwibm90cmFuc2Zvcm0iOnRydWUsIm5hbWUiOmZhbHNlLCJhbmltYXRpb24iOiJmYWRlQW5kUG9wIiwiYW5pbWF0aW9uU3BlZWQiOjMwMCwiY2xvc2VPbkJhY2tncm91bmRDbGljayI6ZmFsc2UsImRpc21pc3NNb2RhbENsYXNzIjoiY2xvc2UtcmV2ZWFsLW1vZGFsIiwiY2xvc2VCdXR0b24iOnRydWUsImJ5cGFzc0NvbnNlbnQiOmZhbHNlLCJ0aHJlc2hvbGQiOmZhbHNlLCJ0aHJlc2hvbGRWYWx1ZSI6MCwic2Nyb2xsdXAiOmZhbHNlLCJtYWlucG9wdXAiOmZhbHNlLCJzaG93b25sb2FkIjpmYWxzZSwiY291bnRkb3duIjoxNzc0MjM4NDAwLCJjb25maXJtRm9ybSI6W3sibmFtZSI6ImxhYmVsIiwidmFsdWUiOiIiLCJjbGFzcyI6ImxhYmVsZW1haWwifSx7Im5hbWUiOiJzZWN0aW9uIiwidmFsdWUiOiIiLCJjbGFzcyI6ImxhYmVsc2VjdGlvbiJ9LHsibmFtZSI6ImJyYW5kIiwidmFsdWUiOiIiK2pzX2QyY19nZXRfdmFsKCIxZXJpdjkwMHBkYTg4d3c4IikrIiIsImNsYXNzIjoiYnJhbmRlbWFpbCJ9LHsibmFtZSI6Im1vZGVsIiwidmFsdWUiOiIiK2pzX2QyY19nZXRfdmFsKCIxMHBhN3YzcWVsZGNvc2siKSsiIiwiY2xhc3MiOiJtb2RlbGVtYWlsIn0seyJuYW1lIjoieWVhciIsInZhbHVlIjoiIitqc19kMmNfZ2V0X3ZhbCgicjgyemZreGEyZHdzczAwIikrIiIsImNsYXNzIjoieWVhcmVtYWlsIn0seyJuYW1lIjoiZ29vZ2xlaWQiLCJ2YWx1ZSI6IiJ9LHsibmFtZSI6Imdvb2dsZWlkZDJjbWVkaWEiLCJ2YWx1ZSI6IiJ9LHsibmFtZSI6ImJpbmdjb25pZCIsInZhbHVlIjoiIn0seyJuYW1lIjoiYmluZ2FjdGlvbmlkIiwidmFsdWUiOiIifSx7Im5hbWUiOiJiaW5nZG9tYWluaWQiLCJ2YWx1ZSI6IiJ9LHsibmFtZSI6ImFkcm9sbEFkdiIsInZhbHVlIjoiIn0seyJuYW1lIjoiYWRyb2xsUGl4IiwidmFsdWUiOiIifSx7Im5hbWUiOiJmYWNlYm9va0NvbklkIiwidmFsdWUiOiIyNjA1MjU5NDYyOTI3NjQ0In0seyJuYW1lIjoiZG9tYWluIiwidmFsdWUiOiJzaXR0ZWxsZW1hemRhLmNhIn0seyJuYW1lIjoicmVmZXJyZXIiLCJ2YWx1ZSI6IiIranNfZDJjX2dldF92YWwoImkzZ3NheGdzNWprOHdjayIpKyIifSx7Im5hbWUiOiJpc2V4cHJlc3MiLCJ2YWx1ZSI6IjAiLCJjbGFzcyI6ImlzZXhwcmVzcyJ9LHsibmFtZSI6ImlzcHJvbW8iLCJ2YWx1ZSI6IjAifSx7Im5hbWUiOiJpc2hvbWVwYWdlIiwidmFsdWUiOiIwIn0seyJuYW1lIjoidGV4dENhclNlY3Rpb25UeXBlIiwidmFsdWUiOiIiK2pzX2QyY19nZXRfdmFsKCJzbzd5dXFhajRkd2NjOHMiKSsiIn0seyJuYW1lIjoiZnJvbUFBIiwidmFsdWUiOiIifSx7Im5hbWUiOiJsYW5nIiwidmFsdWUiOiJGUkVOQ0gifV19KTt9KTt9Y2F0Y2goZXp6MSl7aWYoY29uc29sZSYmY29uc29sZS5sb2cpCmNvbnNvbGUubG9nKGV6ejEpO30KdmFyIGlkZW50XzVhZDI5M2E1Nzk1YjRjZmU2YWZmOTZhY2FjZTI0ZjkyO3RyeXtqUXVlcnkoZnVuY3Rpb24oJCl7JCgiI3BheW1lbnRDYWxjdWxhdG9yUG9wdXBDb250YWluZXIiKS5wb3B1cGl6ZSh7Im9uQmVmb3JlT3BlbiI6ZnVuY3Rpb24oc2VsZil7aWYoc2VsZi5zZXR0aW5ncy5hbHJlYWR5SW5pdCl7c2VsZi5zZXR0aW5ncy5hbHJlYWR5SW5pdD1mYWxzZTtpZihDb29raWVzLmdldCgncG9wdXBGb3JtRmlsbGVkJyk9PSIxIil7JCgiI3BheW1lbnRDYWxjdWxhdG9yQ2FsbFRvQWN0aW9uQ29udGFpbmVyIikuaGlkZSgpO30KcmV0dXJuIHRydWU7fQppZighc2VsZi5zZXR0aW5ncy5zdHlsZWlkKXJldHVybiBmYWxzZTtzZWxmLnNldHRpbmdzLmluaXRpYWxTdHlsZWlkPXNlbGYuc2V0dGluZ3Muc3R5bGVpZDtpZigkKCIuYm5wX3BheW1lbnRfY29udGFpbmVyIikubGVuZ3RoKXtzZWxmLnNldHRpbmdzLnBheW1lbnRPcHRpb25zPXBhcnNlSW50KCQoIiNvcHRpb25QcmljZVRvdGFsIikuaHRtbCgpLnJlcGxhY2UoIiwiLCIiKSk7fQpnYVRyYWNrKCdjLl90cmFja0V2ZW50JywnQ2xpcXVlcyBDYWxjdWxhdHJpY2UnLCdOZXVmJywnT3BlbicsMSk7cGF5bWVudENhbGN1bGF0b3JQb3B1cEluaXQoKTt9LCJvbkNsb3NlIjpmdW5jdGlvbihzZWxmKXtpZighc2VsZi5zZXR0aW5ncy5hbHJlYWR5SW5pdCl7Z2FUcmFjaygnYy5fdHJhY2tFdmVudCcsJ0NsaXF1ZXMgQ2FsY3VsYXRyaWNlJywnTmV1ZicsJ0Nsb3NlJywxKTt9CmlmKCgoJCgnI3RhcmdldFBhZ2UnKS52YWwoKXx8ZmFsc2UpPT0nTkVXQ0FSUyd8fCgkKCcjdGFyZ2V0UGFnZScpLnZhbCgpfHxmYWxzZSk9PSdVU0VEQ0FSUycpJiZ3aW5kb3cucGF5bWVudFNlbGVjdENoYW5nZWQ9PXRydWUpe2xvY2F0aW9uLnJlbG9hZCgpO319LCJvbkFmdGVySW5pdGlhbGl6ZSI6ZnVuY3Rpb24oc2VsZil7cG9wdXBDYWxjdWxhdG9ySW5pdGlhbGl6ZWQoKTt9LCJjb29raWVEdXJhdGlvbiI6MzAsImNvb2tpZU5hbWUiOm51bGwsImNvb2tpZUNyZWF0ZSI6bnVsbCwiZ29vZ2xlVHJhY2tpbmciOnsiaWRTdWZmaXgiOiIiLCJsYWJlbCI6IiIsImxhYmVsc2VjdGlvbiI6IiIsImlzZXhwcmVzcyI6MCwiaXNwcm9tbyI6MCwiaXNob21lcGFnZSI6MCwiaXNtb2JpbGUiOjB9LCJmb3JtIjp7ImVtYWlsaWQiOm51bGwsIm9mZmVydHlwZSI6bnVsbCwibmFtZSI6bnVsbCwic2VuZFRvIjpudWxsLCJzZW5kVG9BREYiOm51bGwsIk9LQnV0dG9uQ2xhc3MiOiJzdWJtaXRCdG4iLCJDYW5jZWxCdXR0b25DbGFzcyI6ImNhbmNlbEJ0biIsInNob3dFbWFpbENvbmZpcm1hdGlvbiI6ZmFsc2UsImZyb21BQSI6ZmFsc2UsImNvbmZpcm1hdGlvbiI6eyJ0aXRsZSI6bnVsbCwiYm9keSI6bnVsbH19LCJzdGF0ZSI6W10sInZlaGljbGVTdGF0ZSI6InVzZWQiLCJjbG9zZU9uU3VibWl0Ijp0cnVlLCJmaWxsZmxhZyI6ZmFsc2UsIm5vdHJhbnNmb3JtIjp0cnVlLCJuYW1lIjpmYWxzZSwiYW5pbWF0aW9uIjoiZmFkZUFuZFBvcCIsImFuaW1hdGlvblNwZWVkIjozMDAsImNsb3NlT25CYWNrZ3JvdW5kQ2xpY2siOmZhbHNlLCJkaXNtaXNzTW9kYWxDbGFzcyI6ImNsb3NlLXJldmVhbC1tb2RhbCIsImNsb3NlQnV0dG9uIjp0cnVlLCJieXBhc3NDb25zZW50IjpmYWxzZSwidGhyZXNob2xkIjpmYWxzZSwidGhyZXNob2xkVmFsdWUiOjAsInNjcm9sbHVwIjpmYWxzZSwibWFpbnBvcHVwIjpmYWxzZSwic2hvd29ubG9hZCI6ZmFsc2UsImNvdW50ZG93biI6MTc3NDIzODQwMCwiY29uZmlybUZvcm0iOlt7Im5hbWUiOiJsYWJlbCIsInZhbHVlIjoiIiwiY2xhc3MiOiJsYWJlbGVtYWlsIn0seyJuYW1lIjoic2VjdGlvbiIsInZhbHVlIjoiIiwiY2xhc3MiOiJsYWJlbHNlY3Rpb24ifSx7Im5hbWUiOiJicmFuZCIsInZhbHVlIjoiIitqc19kMmNfZ2V0X3ZhbCgiMWVyaXY5MDBwZGE4OHd3OCIpKyIiLCJjbGFzcyI6ImJyYW5kZW1haWwifSx7Im5hbWUiOiJtb2RlbCIsInZhbHVlIjoiIitqc19kMmNfZ2V0X3ZhbCgiMTBwYTd2M3FlbGRjb3NrIikrIiIsImNsYXNzIjoibW9kZWxlbWFpbCJ9LHsibmFtZSI6InllYXIiLCJ2YWx1ZSI6IiIranNfZDJjX2dldF92YWwoInI4Mnpma3hhMmR3c3MwMCIpKyIiLCJjbGFzcyI6InllYXJlbWFpbCJ9LHsibmFtZSI6Imdvb2dsZWlkIiwidmFsdWUiOiIifSx7Im5hbWUiOiJnb29nbGVpZGQyY21lZGlhIiwidmFsdWUiOiIifSx7Im5hbWUiOiJiaW5nY29uaWQiLCJ2YWx1ZSI6IiJ9LHsibmFtZSI6ImJpbmdhY3Rpb25pZCIsInZhbHVlIjoiIn0seyJuYW1lIjoiYmluZ2RvbWFpbmlkIiwidmFsdWUiOiIifSx7Im5hbWUiOiJhZHJvbGxBZHYiLCJ2YWx1ZSI6IiJ9LHsibmFtZSI6ImFkcm9sbFBpeCIsInZhbHVlIjoiIn0seyJuYW1lIjoiZmFjZWJvb2tDb25JZCIsInZhbHVlIjoiMjYwNTI1OTQ2MjkyNzY0NCJ9LHsibmFtZSI6ImRvbWFpbiIsInZhbHVlIjoic2l0dGVsbGVtYXpkYS5jYSJ9LHsibmFtZSI6InJlZmVycmVyIiwidmFsdWUiOiIiK2pzX2QyY19nZXRfdmFsKCJpM2dzYXhnczVqazh3Y2siKSsiIn0seyJuYW1lIjoiaXNleHByZXNzIiwidmFsdWUiOiIwIiwiY2xhc3MiOiJpc2V4cHJlc3MifSx7Im5hbWUiOiJpc3Byb21vIiwidmFsdWUiOiIwIn0seyJuYW1lIjoiaXNob21lcGFnZSIsInZhbHVlIjoiMCJ9LHsibmFtZSI6InRleHRDYXJTZWN0aW9uVHlwZSIsInZhbHVlIjoiIitqc19kMmNfZ2V0X3ZhbCgic283eXVxYWo0ZHdjYzhzIikrIiJ9LHsibmFtZSI6ImZyb21BQSIsInZhbHVlIjoiIn0seyJuYW1lIjoibGFuZyIsInZhbHVlIjoiRlJFTkNIIn1dfSk7fSk7fWNhdGNoKGV6ejEpe2lmKGNvbnNvbGUmJmNvbnNvbGUubG9nKQpjb25zb2xlLmxvZyhlenoxKTt9OwovKiogL2pzL3NrZWxldG9uLmNvbnRyb2xsZXIuanMgKiovCnZhciBfX19kMmNfc2tlbGV0b25jb250cm9sbGVyanNfY19vbj0iMjAyNi0wMS0xMiAxMDoxNDo0MiI7J3VzZSBzdHJpY3QnO3RyeXtqUXVlcnkoZnVuY3Rpb24oYyl7bGV0IGU7Y29uc29sZS5sb2coIkdTUEVFRC1BRlRFUi1KUVVFUlk6IisoRGF0ZS5ub3coKS0obnVsbCE9KGU9d2luZG93LmdUZXN0U3BlZWRDb25uKT9lOjApKS8xRTMpO3dpbmRvdy5nUmVzb3VyY2VMb2FkZXJBbmRKcXVlcnlJc1JlYWR5PSEwO3NldFRpbWVvdXQoKCk9Pnt2YXIgYj1jKCIjZW1iZWQtY29udGFpbmVyLXlvdXR1YmUtaG9tZXBhZ2UtYnlpZCIpO2NvbnNvbGUubG9nKCJTS0VMRVRPTnwjZW1iZWQtY29udGFpbmVyLXlvdXR1YmUtaG9tZXBhZ2UtYnlpZCIpO2lmKGIubGVuZ3RoKXt2YXIgYT1iLmF0dHIoImRhdGEtaWZyYW1lLWF0dHJpYnV0ZXMiKTsidW5kZWZpbmVkIiE9PWEmJnZvaWQgMCE9PWEmJihhPUpTT04ucGFyc2UoYXRvYihhKSksYygiPGlmcmFtZS8+IixhKS5hcHBlbmRUbyhiKSl9fSw3RTMpO3NldFRpbWVvdXQoKCk9Pnt2YXIgYj1jKCIjZW1iZWQtY29udGFpbmVyLW1hcHMtaG9tZXBhZ2UtYnlpZCIpOwpjb25zb2xlLmxvZygiU0tFTEVUT058I2VtYmVkLWNvbnRhaW5lci1tYXBzLWhvbWVwYWdlLWJ5aWQiKTtpZihiLmxlbmd0aCl7dmFyIGE9Yi5hdHRyKCJkYXRhLWlmcmFtZS1hdHRyaWJ1dGVzIik7InVuZGVmaW5lZCIhPT1hJiZ2b2lkIDAhPT1hJiYoYT1KU09OLnBhcnNlKGF0b2IoYSkpLGluamVjdEdvb2dsZU1hcHNLZXkoZnVuY3Rpb24oZil7YS5zcmM9YS5zcmMucmVwbGFjZSgiX19LRVlfXyIsZik7YygiPGlmcmFtZS8+IixhKS5hcHBlbmRUbyhiKX0pKX19LDdFMyk7d2luZG93LmRlbGF5ZWRDc3M9ZnVuY3Rpb24oYil7dmFyIGE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3R5bGUiKTthLnR5cGU9InRleHQvY3NzIjthLnN0eWxlU2hlZXQ\/YS5zdHlsZVNoZWV0LmNzc1RleHQ9YjphLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGIpKTtjb25zb2xlLmxvZygiU0tFTEVUT058REVMQVlFRExPQURDU1N8IitiKTtkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKGEpfTsKd2luZG93LmRlbGF5ZWRDc3MoIi5oaWRlT25QcmVMb2Fke3Zpc2liaWxpdHk6dmlzaWJsZSAhaW1wb3J0YW50O30iKTtzZXRUaW1lb3V0KCgpPT57Y29uc29sZS5sb2coIlNLRUxFVE9OfHNldHRpbmcgbWVudSBtdXRhdGlvbiBvYnNlcnZlciIpO3RyeXtudWxsIT09ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLnNrZWxldG9uLnNrZWxldG9uLWRlc2t0b3Auc2tlbGV0b24tY29uZC0yIikmJihuZXcgTXV0YXRpb25PYnNlcnZlcigoYSxmKT0+e2Zvcihjb25zdCBkIG9mIGEpImF0dHJpYnV0ZXMiPT09ZC50eXBlJiYiY2xhc3MiPT09ZC5hdHRyaWJ1dGVOYW1lJiZkLnRhcmdldC5jbGFzc0xpc3QuY29udGFpbnMoInVwX21lbnUiKSYmKGE9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLnNrZWxldG9uLnNrZWxldG9uLWRlc2t0b3Auc2tlbGV0b24tY29uZC0yIiksZC50YXJnZXQuY2xhc3NMaXN0LmNvbnRhaW5zKCJmaXhlZCIpP2EuY2xhc3NMaXN0LmNvbnRhaW5zKCJmaXhlZCIpfHxhLmNsYXNzTGlzdC5hZGQoImZpeGVkIik6CmEuY2xhc3NMaXN0LmNvbnRhaW5zKCJmaXhlZCIpJiZhLmNsYXNzTGlzdC5yZW1vdmUoImZpeGVkIikpfSkpLm9ic2VydmUoZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLnNrZWxldG9uLnNrZWxldG9uLWRlc2t0b3Auc2tlbGV0b24tY29uZC0yID4gLnVwX21lbnUiKSx7YXR0cmlidXRlczohMCxjaGlsZExpc3Q6ITAsc3VidHJlZTohMH0pfWNhdGNoKGEpe2NvbnNvbGUuZXJyb3IoIlNLRUxFVE9OfC5za2VsZXRvbi5za2VsZXRvbi1kZXNrdG9wLnNrZWxldG9uLWNvbmQtMiIsYSl9Y29uc29sZS5sb2coIlNLRUxFVE9OfGlzLWxvYWRlZC1ub3ciKTtjb25zdCBiPWMoIi5za2VsZXRvbiIpO2IuYWRkQ2xhc3MoImlzLWxvYWRlZC1ub3ciKTtzZXRUaW1lb3V0KCgpPT57Y29uc29sZS5sb2coIlNLRUxFVE9OfHJlbW92aW5nIHNrZWxldG9ucyBmaXJzdCBpbWcgYmFja2dyb3VuZCIpO2IuZmluZCgiaW1nLmlzLXNrZWxldG9uLWJnLWltZyIpLnJlbW92ZSgpfSwzPHdpbmRvdy5nU3BlZWRDb25uPwoxRTQ6NkUzKX0sMjAwKX0pfWNhdGNoKGMpe307","menu_new":"","html":"Cgk8c3R5bGU+CgkJaHRtbCB7Zm9udC1zaXplOjEwMCU7fQoJCW1haW4gKiB7bWFyZ2luOmluaXRpYWw7fQoJCWZvb3RlciB7Y2xlYXI6IGJvdGg7fQoJPC9zdHlsZT4KCgk8ZGl2IGlkPSJkMmNfYm9keUNvbnRlbnQiIGNsYXNzPSJkMmMtZW1iZWRkZWQtY29udGVudCI+CgoJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJhY3RpdmVzaXRlbGFuZ3VhZ2UiIHZhbHVlPSJGUkVOQ0giLz4KCgkJPGlucHV0CgkJCXR5cGU9ImhpZGRlbiIKCQkJaWQ9ImQyY0RhdGFTdG9yZSIKCQkJZGF0YS1iYXNldXJsPSJodHRwczovL3NpdHRlbGxlbWF6ZGEuY2EiCgkJCWRhdGEtYm9keWNsYXNzPSIgaGVhZGluZ0NhcHNPbiBGUkVOQ0ggaXNQYWdlRnVsbFdpZHRoRW5hYmxlZCB0ZW1wbGF0ZTEgaXNGdWxsV2lkdGhQYWdlIE5ld1NycDIiCgkJCWRhdGEtaXNtb2JpbGU9IjAiCgkJPgoKCQk8c2NyaXB0IHR5cGU9ImFwcGxpY2F0aW9uL2xkK2pzb24iPgogICAgeyJAY29udGV4dCI6Imh0dHBzOlwvXC9zY2hlbWEub3JnIiwiQHR5cGUiOiJXZWJTaXRlIiwibmFtZSI6IlNpdHRlbGxlIE1hemRhIiwidXJsIjoiaHR0cHM6XC9cL3d3dy5zaXR0ZWxsZW1hemRhLmNhXC8iLCJwb3RlbnRpYWxBY3Rpb24iOnsiQHR5cGUiOiJTZWFyY2hBY3Rpb24iLCJ0YXJnZXQiOiJodHRwczpcL1wvd3d3LnNpdHRlbGxlbWF6ZGEuY2FcL29jY2FzaW9uXC9yZWNoZXJjaGUuaHRtbD9xPXtzZWFyY2hfdGVybV9zdHJpbmd9IiwicXVlcnktaW5wdXQiOiJyZXF1aXJlZCBuYW1lPXNlYXJjaF90ZXJtX3N0cmluZyJ9fQo8L3NjcmlwdD48c2NyaXB0IHR5cGU9ImFwcGxpY2F0aW9uL2xkK2pzb24iPgogICAgeyJAY29udGV4dCI6Imh0dHBzOlwvXC9zY2hlbWEub3JnIiwiQHR5cGUiOiJBdXRvbW90aXZlQnVzaW5lc3MiLCJ1cmwiOiJodHRwczpcL1wvd3d3LnNpdHRlbGxlbWF6ZGEuY2EiLCJuYW1lIjoiU2l0dGVsbGUgTWF6ZGEiLCJpbWFnZSI6Imh0dHBzOlwvXC93d3cuc2l0dGVsbGVtYXpkYS5jYVwvaW1hZ2VzXC9Mb2dvTW9iaWxlXC9zaXRlbGxlLW1hemRhLWxvZ28uc3ZnIiwibG9nbyI6Imh0dHBzOlwvXC93d3cuc2l0dGVsbGVtYXpkYS5jYVwvaW1hZ2VzXC9Mb2dvTW9iaWxlXC9zaXRlbGxlLW1hemRhLWxvZ28uc3ZnIiwic2FtZUFzIjpbImh0dHBzOlwvXC93d3cuZmFjZWJvb2suY29tXC9zaXR0ZWxsZW1hemRhIiwiaHR0cHM6XC9cL3d3dy55b3V0dWJlLmNvbVwvY2hhbm5lbFwvVUNXblJfZ1Q5ZFBCcHhqMmd0V3REajdRIl0sImdlbyI6eyJAdHlwZSI6Ikdlb0Nvb3JkaW5hdGVzIiwibGF0aXR1ZGUiOiI0Ni4xMDU4NTE0MDAwIiwibG9uZ2l0dWRlIjoiLTcwLjY1NzE5NDYwMDAifSwiYWRkcmVzcyI6eyJAdHlwZSI6IlBvc3RhbEFkZHJlc3MiLCJzdHJlZXRBZGRyZXNzIjoiMTUzMjAgQm91bGV2YXJkIExhY3JvaXgiLCJhZGRyZXNzTG9jYWxpdHkiOiJTdC1HZW9yZ2VzIiwiYWRkcmVzc1JlZ2lvbiI6IlF1ZWJlYyIsInBvc3RhbENvZGUiOiJHNVkgMVI3IiwiYWRkcmVzc0NvdW50cnkiOiJDQSJ9LCJ0ZWxlcGhvbmUiOiI0MTgtMjI4LTQ4MTUiLCJwcmljZVJhbmdlIjoiMjc0NDUkLTYxMDQ1JCIsIm9wZW5pbmdIb3Vyc1NwZWNpZmljYXRpb24iOlt7IkB0eXBlIjoiT3BlbmluZ0hvdXJzU3BlY2lmaWNhdGlvbiIsImRheU9mV2VlayI6Ik1vbmRheSIsIm9wZW5zIjoiMDg6MDAiLCJjbG9zZXMiOiIxOTowMCJ9LHsiQHR5cGUiOiJPcGVuaW5nSG91cnNTcGVjaWZpY2F0aW9uIiwiZGF5T2ZXZWVrIjoiVHVlc2RheSIsIm9wZW5zIjoiMDg6MDAiLCJjbG9zZXMiOiIxOTowMCJ9LHsiQHR5cGUiOiJPcGVuaW5nSG91cnNTcGVjaWZpY2F0aW9uIiwiZGF5T2ZXZWVrIjoiV2VkbmVzZGF5Iiwib3BlbnMiOiIwODowMCIsImNsb3NlcyI6IjE5OjAwIn0seyJAdHlwZSI6Ik9wZW5pbmdIb3Vyc1NwZWNpZmljYXRpb24iLCJkYXlPZldlZWsiOiJUaHVyc2RheSIsIm9wZW5zIjoiMDg6MDAiLCJjbG9zZXMiOiIxOTowMCJ9LHsiQHR5cGUiOiJPcGVuaW5nSG91cnNTcGVjaWZpY2F0aW9uIiwiZGF5T2ZXZWVrIjoiRnJpZGF5Iiwib3BlbnMiOiIwODowMCIsImNsb3NlcyI6IjE3OjAwIn1dfQo8L3NjcmlwdD48bGluayByZWw9Imljb24iIGhyZWY9Imh0dHBzOi8vc2l0dGVsbGVtYXpkYS5jYS9pbWFnZXMvRmF2aWNvbi9tYXpkYS1vZmZpY2lhbC1mYXZpY29uLnN2ZyI+PGxpbmsgcmVsPSJhbHRlcm5hdGUiIG1lZGlhPSJvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTYwcHgpIiBocmVmPSJodHRwczovL3d3dy5zaXR0ZWxsZW1hemRhLmNhL2VtYmVkZXIvcHJvY2Vzcy9mcj9uZnI9MSI+PGxpbmsgcmVsPSJhbHRlcm5hdGUiIGhyZWY9Imh0dHBzOi8vd3d3LnNpdHRlbGxlbWF6ZGEuY2EvZW5nLyIgaHJlZmxhbmc9ImVuLWNhIj48bGluayByZWw9InByZWxvYWQiIGFzPSJpbWFnZSIgaHJlZj0iaHR0cHM6Ly9zaXR0ZWxsZW1hemRhLmNhL2ltYWdlcy9Mb2dvL3NpdGVsbGUtbWF6ZGEtbG9nby5zdmciPjxsaW5rIHJlbD0icHJlbG9hZCIgaHJlZj0iLy9mb250cy5kMmNtZWRpYS5jYS93ZWJmb250cy9kZXNrdG9wLWF3ZXNvbWUvd2ViZm9udHMvZmEtbGlnaHQtMzAwLndvZmYyIiBhcz0iZm9udCIgdHlwZT0iZm9udC9XT0ZGMiIgY3Jvc3NvcmlnaW4+PGxpbmsgcmVsPSJwcmVsb2FkIiBocmVmPSIvL2ZvbnRzLmQyY21lZGlhLmNhL3dlYmZvbnRzL2Rlc2t0b3AtYXdlc29tZS93ZWJmb250cy9mYS1zb2xpZC05MDAud29mZjIiIGFzPSJmb250IiB0eXBlPSJmb250L1dPRkYyIiBjcm9zc29yaWdpbj48bGluayByZWw9InByZWxvYWQiIGhyZWY9Ii8vZm9udHMuZDJjbWVkaWEuY2Evd2ViZm9udHMvZGVza3RvcC1hd2Vzb21lL3dlYmZvbnRzL2ZhLXJlZ3VsYXItNDAwLndvZmYyIiBhcz0iZm9udCIgdHlwZT0iZm9udC9XT0ZGMiIgY3Jvc3NvcmlnaW4+PGxpbmsgcmVsPSJwcmVsb2FkIiBocmVmPSIvL2ZvbnRzLmQyY21lZGlhLmNhL01hemRhVHlwZS1Cb2xkLndvZmYyIiBhcz0iZm9udCIgdHlwZT0iZm9udC9XT0ZGMiIgY3Jvc3NvcmlnaW4+PGxpbmsgcmVsPSJwcmVsb2FkIiBocmVmPSIvL2ZvbnRzLmQyY21lZGlhLmNhL01hemRhVHlwZS1SZWd1bGFyLndvZmYyIiBhcz0iZm9udCIgdHlwZT0iZm9udC9XT0ZGMiIgY3Jvc3NvcmlnaW4+PGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL3NpdHRlbGxlbWF6ZGEuY2EvY3NzX3IvcmVzb3VyY2UubG9hZGVyLmZyLmNzcz92PTMmYW1wO2Nzc3JwbD0mYW1wO3dzd2lkdGg9MCZhbXA7ZGV2aWNlPWRlc2t0b3AmYW1wO3VhPVEwTkNiM1F2TWk0d0lDaG9kSFJ3Y3pvdkwyTnZiVzF2Ym1OeVlYZHNMbTl5Wnk5bVlYRXZLUT09Ij48bGluayByZWw9InByZWNvbm5lY3QiIGhyZWY9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhIiBjcm9zc29yaWdpbj48bGluayByZWw9InByZWNvbm5lY3QiIGhyZWY9Imh0dHBzOi8vaW1hZ2VzY2RuLmQyY21lZGlhLmNhIiBjcm9zc29yaWdpbj48bGluayByZWw9InByZWNvbm5lY3QiIGhyZWY9Imh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EiIGNyb3Nzb3JpZ2luPjxsaW5rIHJlbD0iY2Fub25pY2FsIiBocmVmPSJodHRwczovL3d3dy5zaXR0ZWxsZW1hemRhLmNhL2VtYmVkZXIvcHJvY2Vzcy9mciIgZGF0YS1jYW5vbmljYWwtaGVhZGVyLXdpZGdldD0iMSI+PHNjcmlwdCBzcmM9Imh0dHBzOi8vY2RuLmNvb2tpZWxhdy5vcmcvc2NyaXB0dGVtcGxhdGVzL290U0RLU3R1Yi5qcyIgZGF0YS1kb2N1bWVudC1sYW5ndWFnZT0idHJ1ZSIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBjaGFyc2V0PSJVVEYtOCIgZGF0YS1kb21haW4tc2NyaXB0PSJmMzgzOTQ2Yi0wYzUyLTQ2YjAtYjE1My05MjdmOTI1OTI4OTkiPjwvc2NyaXB0PjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vY2RuLmNvb2tpZWxhdy5vcmcvY29uc2VudC9mMzgzOTQ2Yi0wYzUyLTQ2YjAtYjE1My05MjdmOTI1OTI4OTkvT3RBdXRvQmxvY2suanMiPjwvc2NyaXB0PjxkaXYgaWQ9ImRpZ2l0YWxfZGF0YV9pbmZvIiBkYXRhLWFuYWx5dGljcy10eXBlPSJzaGlmdCBkaWdpdGFsIj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0idmVoaWNsZUNhdGVnb3J5IiB2YWx1ZT0iMCI+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InN0YXR1cyIgdmFsdWU9InskU0RWRUhJQ0xFU1RBVFVTfSI+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Im1ha2UiIHZhbHVlPSIiPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJtb2RlbCIgdmFsdWU9IiI+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InllYXIiIHZhbHVlPSIiPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ2aW4iIHZhbHVlPSIiPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ0cmltIiB2YWx1ZT0ieyRWRVJTSU9OfSI+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImRpc3BsYXllZFByaWNlIiB2YWx1ZT0ieyRDQVJESVNQTEFZRURQUklDRX0iPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJtc3JwIiB2YWx1ZT0ieyRDQVJNU1JQfSI+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImZ1ZWxUeXBlIiB2YWx1ZT0ieyRDQVJGVUVMVFlQRX0iPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ0cmFuc21pc3Npb24iIHZhbHVlPSJ7JENBUlRSQU5TTUlTU0lPTn0iPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJkcml2ZVRyYWluIiB2YWx1ZT0ieyRDQVJEUklWRVRSQUlOfSI+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImVuZ2luZSIgdmFsdWU9InskQ0FSRU5HSU5FfSI+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImV4dENvbG9yIiB2YWx1ZT0ieyRDQVJFWFRDT0xPUn0iPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJpbnRDb2xvciIgdmFsdWU9InskQ0FSSU5UQ09MT1J9Ij4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ic2RfY2l0eV90ZXN0IiB2YWx1ZT0iU3QtR2VvcmdlcyI+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InRyYWZmaWNfdHlwZSIgdmFsdWU9IiI+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImRlYWxlckJBQyIgdmFsdWU9IiI+CgkJPC9kaXY+CgkJPCEtLSBPTzo6ZjBhZjcxMTViODZmYjEyZGZjMDI4MjBhYTRmNmFkZjQgLS0+PCEtLSBvZW1DZXJ0aWZpY2F0aW9uICJNYXpkYSAtIFNoaWZ0IiAtLT4JCTxkaXYgaWQ9ImFzY19kaWdpdGFsX2RhdGFfaW5mbyIgZGF0YS1hbmFseXRpY3M9Imdvb2dsZV9hbmFseXRpY3NfNCI+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InZlaGljbGVDYXRlZ29yeSIgdmFsdWU9IiI+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Im1ha2UiIHZhbHVlPSIiPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJtb2RlbCIgdmFsdWU9IiI+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InllYXIiIHZhbHVlPSIiPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ2aW4iIHZhbHVlPSIiPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ0cmltIiB2YWx1ZT0iIj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0icHJpY2UiIHZhbHVlPSIiPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJleHRjb2xvciIgdmFsdWU9IiI+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImRhdGVfbGlzdGluZyIgdmFsdWU9IiI+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImQyYXNjX2lzQ2VydGlmaWVkIiB2YWx1ZT0iIj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0idmVoaWNsZVN0YXR1cyIgdmFsdWU9IiI+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImRlYWxlckNvZGUiIHZhbHVlPSI0NjU4MCI+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InBhZ2VUeXBlIiB2YWx1ZT0iU2hvd3Jvb20iPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJkZWFsZXJfbmFtZSIgdmFsdWU9IlNpdHRlbGxlIE1hemRhIj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZGVhbGVyX2FkZHJlc3MiIHZhbHVlPSIxNTMyMCBCb3VsZXZhcmQgTGFjcm9peCwgU3QtR2VvcmdlcywgQ2hhdWRpw6hyZS1BcHBhbGFjaGVzIj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZGVhbGVyX3Bvc3RhbCIgdmFsdWU9Ikc1WSAxUjciPgoJCTwvZGl2PgoJCTwhLS0gT086OjcwMDg1MjAwYTI2YTUzYjIxZmJmMzhmZjE3MWJlNGFhIC0tPgo8IS0tRU5EX1JFTU9WQUJMRV9DT0RFX0JMT0NLX0NPTU1FTlRfMDAwMi0tPgoKPCEtLUVORF9SRU1PVkFCTEVfQ09ERV9CTE9DS19DT01NRU5UXzAwMDEtLT4KPCEtLSBHbG9iYWwgc2l0ZSB0YWcgKGd0YWcuanMpIC0gR29vZ2xlIEFuYWx5dGljcyAtLT4KCjwhLS1TVEFSVF9SRU1PVkFCTEVfQ09ERV9CTE9DS19DT01NRU5UXzAwMDEtLT4KPHNjcmlwdCBhc3luYyBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZXRhZ21hbmFnZXIuY29tL2d0YWcvanM\/aWQ9Ry1ZTE5QNU5OWlhMIiB0eXBlPSJ0ZXh0L3BsYWluIiBjbGFzcz0ib3B0YW5vbi1jYXRlZ29yeS1DMDAwMSI+PC9zY3JpcHQ+CjwhLS1FTkRfUkVNT1ZBQkxFX0NPREVfQkxPQ0tfQ09NTUVOVF8wMDAxLS0+Cgo8IS0tICMjVk1KUzIjIyAtLT48IS0tIEdPIElEIC0tPgo8IS0tIEJJTkcgU0NSSVBUIC0tPgo8IS0tIE9POjpmNzNmYTZhYmJmYjRiYWIzZjQ5ZGFhZmIzODkxZTI3ZiAtLT4KCTxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyIgZGF0YS1ybD0iMSI+Ci8qKiAvY3NzL3Jvb3QuY3NzICoqLwo6cm9vdHsgLS1yYXRpbzoxLjE1OyAtLXMwOjA7IC0tcy05OmNhbGModmFyKC0tcy04KSAvIHZhcigtLXJhdGlvKSk7IC0tcy04OmNhbGModmFyKC0tcy03KSAvIHZhcigtLXJhdGlvKSk7IC0tcy03OmNhbGModmFyKC0tcy02KSAvIHZhcigtLXJhdGlvKSk7IC0tcy02OmNhbGModmFyKC0tcy01KSAvIHZhcigtLXJhdGlvKSk7IC0tcy01OmNhbGModmFyKC0tcy00KSAvIHZhcigtLXJhdGlvKSk7IC0tcy00OmNhbGModmFyKC0tcy0zKSAvIHZhcigtLXJhdGlvKSk7IC0tcy0zOmNhbGModmFyKC0tcy0yKSAvIHZhcigtLXJhdGlvKSk7IC0tcy0yOmNhbGModmFyKC0tcy0xKSAvIHZhcigtLXJhdGlvKSk7IC0tcy0xOmNhbGModmFyKC0tcykgLyB2YXIoLS1yYXRpbykpOyAtLXM6MC41cmVtOyAtLXMxOmNhbGModmFyKC0tcykgKiB2YXIoLS1yYXRpbykpOyAtLXMyOmNhbGModmFyKC0tczEpICogdmFyKC0tcmF0aW8pKTsgLS1zMzpjYWxjKHZhcigtLXMyKSAqIHZhcigtLXJhdGlvKSk7IC0tczQ6Y2FsYyh2YXIoLS1zMykgKiB2YXIoLS1yYXRpbykpOyAtLXM1OmNhbGModmFyKC0tczQpICogdmFyKC0tcmF0aW8pKTsgLS1zNjpjYWxjKHZhcigtLXM1KSAqIHZhcigtLXJhdGlvKSk7IC0tczc6Y2FsYyh2YXIoLS1zNikgKiB2YXIoLS1yYXRpbykpOyAtLXM4OmNhbGModmFyKC0tczcpICogdmFyKC0tcmF0aW8pKTsgLS1zOTpjYWxjKHZhcigtLXM4KSAqIHZhcigtLXJhdGlvKSk7IC0tZnMtYmFzZTowLjg3NXJlbTsgLS1mczp2YXIoLS1mcy1iYXNlKTsgLS1mcy05OmNhbGModmFyKC0tZnMtOCkgLyB2YXIoLS1yYXRpbykpOyAtLWZzLTggOmNhbGModmFyKC0tZnMtNykgLyB2YXIoLS1yYXRpbykpOyAtLWZzLTcgOmNhbGModmFyKC0tZnMtNikgLyB2YXIoLS1yYXRpbykpOyAtLWZzLTYgOmNhbGModmFyKC0tZnMtNSkgLyB2YXIoLS1yYXRpbykpOyAtLWZzLTUgOmNhbGModmFyKC0tZnMtNCkgLyB2YXIoLS1yYXRpbykpOyAtLWZzLTQgOmNhbGModmFyKC0tZnMtMykgLyB2YXIoLS1yYXRpbykpOyAtLWZzLTMgOmNhbGModmFyKC0tZnMtMikgLyB2YXIoLS1yYXRpbykpOyAtLWZzLTIgOmNhbGModmFyKC0tZnMtMSkgLyB2YXIoLS1yYXRpbykpOyAtLWZzLTEgOmNhbGModmFyKC0tZnMwKSAvIHZhcigtLXJhdGlvKSk7IC0tZnMwIDp2YXIoLS1mcy1iYXNlLCAwLjg3NXJlbSk7IC0tZnMxIDpjYWxjKHZhcigtLWZzMCkgKiB2YXIoLS1yYXRpbykpOyAtLWZzMiA6Y2FsYyh2YXIoLS1mczEpICogdmFyKC0tcmF0aW8pKTsgLS1mczMgOmNhbGModmFyKC0tZnMyKSAqIHZhcigtLXJhdGlvKSk7IC0tZnM0IDpjYWxjKHZhcigtLWZzMykgKiB2YXIoLS1yYXRpbykpOyAtLWZzNSA6Y2FsYyh2YXIoLS1mczQpICogdmFyKC0tcmF0aW8pKTsgLS1mczYgOmNhbGModmFyKC0tZnM1KSAqIHZhcigtLXJhdGlvKSk7IC0tZnM3IDpjYWxjKHZhcigtLWZzNikgKiB2YXIoLS1yYXRpbykpOyAtLWZzOCA6Y2FsYyh2YXIoLS1mczcpICogdmFyKC0tcmF0aW8pKTsgLS1mczkgOmNhbGModmFyKC0tZnM4KSAqIHZhcigtLXJhdGlvKSk7IC0tZGVmYXVsdC1ibGFjazojMTAxMDEwOyAtLXRhYi1jb2xvci1zcGVjaWFsY2FzZTojMTAxMDEwOyAtLXRhYi1jb2xvcjojMTAxMDEwOyAtLXRhYi10ZXh0LWNvbG9yOiNmZmZmZmY7IC0tdGFiLWNvbG9yLW1vYjojMTAxMDEwOyAtLXRhYi10ZXh0LWNvbG9yLW1vYjojZmZmZmZmOyAtLXRhYi1jb2xvci1tb2ItZXg6IzEwMTAxMDsgLS10YWItdGV4dC1jb2xvci1tb2ItZXg6I2ZmZmZmZjsgLS1tZW51LWNvbG9yLWJvcmRlcjojMTAxMDEwOyAtLW1lbnUtY29sb3ItbW9iOiMxMDEwMTA7IC0tbWVudS10ZXh0LWNvbG9yLW1vYjojZmZmZmZmOyAtLW1lbnUtY29sb3ItbW9iLWV4OiMxMDEwMTA7IC0tbWVudS10ZXh0LWNvbG9yLW1vYi1leDojZmZmZmZmOyAtLXByb21vLWNvbG9yOiM5MTBhMmQ7IC0tcHJvbW8tdGV4dC1jb2xvcjojZmZmZmZmOyAtLW5ld3NycC1tb2RlbC1jb2xvcjojMTAxMDEwOyAtLWZvb3Rlci1saW5rLXRpdGxlLWNvbDojZmZmZmZmOyAtLWZvb3Rlci1pdGVtcy1saW5rLWNvbG9yOiM5OTk5OTk7IC0tZm9vdGVyLWNvbmRpdGlvbnMtY29sb3I6Izk5OTk5OTsgLS1mb290ZXItYmctY29sb3I6IzEwMTAxMDsgLS1nZW5lcmFsLWJnLWNvbG9yOiNmZmZmZmY7IC0tdG9wLXByb21vLWJ0bi10eHQ6I2ZmZmZmZjsgLS10b3AtcHJvbW8tYnRuLWJnOiM5MTBhMmQ7IC0tcHJvbW8tYnRuLWNvbG9yOiM5MTBhMmQ7IC0tcHJvbW8tYnRuLXRleHQtY29sb3I6I2ZmZmZmZjsgLS1wcm9tby1idG4taG92ZXItYmctY29sb3I6IzkxMGEyZDsgLS1wcm9tby1idG4taG92ZXItdGV4dC1jb2xvcjojZmZmZmZmOyAtLXByb21vLWJ0bi1ib3JkZXItcmFkaXVzOjFweDsgLS1ob21lLWJnLWNvbG9yOiNmZmZmZmY7IC0tYnVzaW5lc3MtZGVzYy10eHQtY29sb3I6IzAwMDAwMDsgLS1idXNpbmVzcy1kZXNjLWJnLWNvbG9yOiNmNWY1ZjU7IC0tYnVzaW5lc3MtZGVzYy10eHQtY29sb3JfbW9iOiMwMDAwMDA7IC0tYnVzaW5lc3MtZGVzYy1iZy1jb2xvcl9tb2I6I2Y1ZjVmNTsgLS11c2VkLXNsaWRlci1iZzojZmZmZmZmOyAtLXVzZWQtc2xpZGVyLXR4dDojMDAwMDAwOyAtLXVzZWQtc2xpZGVyLXByaWNlOiM5MTBhMmQ7IC0tbmV3LXNsaWRlci1iZzojZmZmZmZmOyAtLW5ldy12ZHAtYmVzdHByaWNlLWJ0bi1iZy1jb2xvcjojOTEwOTJkOyAtLW5ldy12ZHAtYmVzdHByaWNlLWJ0bi10ZXh0LWNvbG9yOiNmZmZmZmY7IC0tZGVhbGVyLW5hbWUtY29sb3I6I2ZmZmZmZjsgLS1uZXdzLWJnLWNvbG9yOiNmNWY1ZjU7IC0tbmV3cy10ZXh0LWNvbG9yOiMwMDAwMDA7IC0tZXhpdC1wb3B1cC1iZ2NvbDo7IC0tdXNlZC1vZmZlci1idG4tdGV4dC1jb2xvcjojZmZmZmZmOyAtLXVzZWQtb2ZmZXItYnRuLWJnLWNvbG9yOiNjYzAwMDA7IC0tZmluYW5jZS1idG4tdGV4dC1jb2xvcjojZmZmZmZmOyAtLWZpbmFuY2UtYnRuLWJnLWNvbG9yOiM5MTBhMmQ7IC0tZmluYW5jZS1idG4tdGV4dC1jb2xvci1uZXdpbnY6OyAtLWZpbmFuY2UtYnRuLWJnLWNvbG9yLW5ld2ludjojOTEwYTJkOyAtLW1lbnUtaG92ZXItdGV4dC1jb2xvcjojZmZmZmZmOyAtLW1lbnUtaG92ZXItYmctY29sb3I6IzkxMDkyZDsgLS1tZW51LWJnLWNvbG9yOnJnYigxNiwxNiwxNik7IC0tbWFpbi1tZW51LWJnLWNvbG9yOnJnYigxNiwxNiwxNik7IC0tZGVhbGVyLWFkZHJlc3MtY29sb3I6I2ZmZmZmZjsgLS1kZWFsZXItYWRkcmVzcy1mb250LXNpemU6MTQ7IC0td2hpdGU6I2ZmZjsgLS1saWdodDojZjZmNmY2OyAtLWxpZ2h0LWdyYXk6I2VmZWZlZjsgLS1taWQtZ3JheTojZGRkOyAtLWdyYXk6Izk5OTsgLS1jbnRyLWdyYXk6Izc2NzY3NjsgLS1kYXJrLWdyYXk6IzY2NjsgLS1ibGFjay1ncmF5OiMzMzM7IC0tYmxhY2s6IzAwMDsgLS1ib3JkZXItdGhpbjoxcHg7IC0tYm9yZGVyLXRoaWNrOjJweDsgLS10eHQtdXBwZXI6dXBwZXJjYXNlOyAtLWZvbnQtbWVudTpNYXpkYVR5cGU7IC0tZm9udC1tZW51LW1vYjpNYXpkYVR5cGU7IC0tZm9udC1tZW51LXdlaWdodDo0MDA7IC0tZm9udC1oMTpNYXpkYVR5cGU7IC0tZm9udC1oMS1tb2I6TWF6ZGFUeXBlOyAtLWZvbnQtaDEtd2VpZ2h0OjQwMDsgLS1mb250LWgyOk1hemRhVHlwZTsgLS1mb250LWgyLW1vYjpNYXpkYVR5cGU7IC0tZm9udC1oMi13ZWlnaHQ6NDAwOyAtLWZvbnQtdGV4dDpNYXpkYVR5cGU7IC0tZm9udC10ZXh0LW1vYjpNYXpkYVR5cGU7IC0tZm9udC10ZXh0LXdlaWdodDo0MDA7IC0tZm9udC1idXR0b25zOk1hemRhVHlwZTsgLS1mb250LWJ1dHRvbnMtbW9iOk1hemRhVHlwZTsgLS1mb250LWJ1dHRvbnMtd2VpZ2h0OjQwMDsgLS1jb3JuZXItcmliYm9uLWJnLWNvbG9yOiM5MTBhMmQ7IC0tY29ybmVyLXJpYmJvbi10ZXh0LWNvbG9yOiNGRkZGRkY7IC0taG9tZXBhZ2UtbWVudS1pdGVtLWNvbG9yOiNmZmZmZmY7IC0taG9tZXBhZ2UtaGVhZGVyLWl0ZW0tY29sb3I6I2ZmZmZmZjsgLS1ob21lcGFnZS1iYW5uZXItc2VhcmNoLWJhci12aWRlby1vcGFjaXR5OjMwOyAtLWhvbWVwYWdlLXNvY2lhbC1iZy1jb2xvcjojZmZmZmZmOyAtLWhvbWVwYWdlLXNvY2lhbC10ZXh0LWNvbG9yOiMwMDAwMDA7IC0taG9tZXBhZ2Utc29jaWFsLWxvZ28tY29sb3I6IzE4NzdmMjsgLS1wcm9tb3Rpb24tYmFja2dyb3VuZC1jb2xvcjojZjVmNWY1OyAtLXByb21vdGlvbi10ZXh0LWNvbG9yOiMxMDEwMTA7IC0tdW5kZXJiYW5uZXJfc2VhcmNoX2Jhcl9iZzojZjNmM2YzOyAtLXVuZGVyYmFubmVyX3NlYXJjaF9iYXJfY29sb3I6IzkxMGEyZDsgLS11bmRlcmJhbm5lcl9zZWFyY2hfYmFyX2J0bl9iZzojOTEwYTJkOyAtLXVuZGVyYmFubmVyX3NlYXJjaF9iYXJfYnRuX2NvbG9yOiNGRkZGRkY7IC0tbmV3dmRwLWJlc3RwcmljZS10ZXh0LWNvbG9yLXByaWNlOiM5MTA5MmQ7IC0tYWRtaW4tc29jaWFsLWN1c3RvbS1jb2xvci1waWNrZXItdGV4dDojZmZmZmZmOyAtLWFkbWluLWdlbmVyYWwtaGVhZGVyLWJnLWNvbG9yOiMxMDEwMTA7IC0tYWRtaW4tZ2VuZXJhbC10ZXh0LXVzLWRlYWxlci1saW5lLXRleHQtY29sb3I6I2ZmZmZmZjsgLS1hZG1pbi1nZW5lcmFsLXRleHQtdXMtZGVhbGVyLWxpbmUtYmctY29sb3I6I2NjMDAwMDsgLS10cmFkZWluYmFyLWJ0bi1iZzojOTEwYTJkOyAtLXRyYWRlaW5iYXItYnRuLWNvbG9yOiNmZmZmZmY7IC0tZGVmYXVsdC1ibGFjay10ZXh0OiMxMDEwMTA7IC0tcHJvbW8tYnRuLWJnLWNvbG9yOiM5MTBhMmQ7IC0tdHJhZGVpbmJhci1iZzojZjNmM2YzOyAtLXRyYWRlaW5iYXItY29sb3I6IzkxMGEyZDsgLS1sYW5ndWFnZS1idG4tYWN0aXZlLWJnLWNvbG9yOiNmNWY1ZjU7IC0taGVhZGVyLXNlcnZpY2UtYXBwb2ludG1lbnQtdGV4dC1jb2xvci1iZzojOTEwOTJkOyAtLWhlYWRlci1zZXJ2aWNlLWFwcG9pbnRtZW50LXRleHQtY29sb3I6I2ZmZmZmZjsgLS1hZG1pbi1nZW5lcmFsLWFsZXJ0LWJhci10ZXh0LWNvbG9yOiNmZmZmZmY7IC0tdG9wLXByb21vLWJ0bi10eHQtY29sb3I6cmdiKDI1NSwyNTUsMjU1KTsgLS10b3AtcHJvbW8tYnRuLWJnLWNvbG9yOnJnYigxNiwxNiwxNik7IC0tbmV3LXZlaGljbGUtY2Fyb3VzZWwtdHh0LWNvbG9yOiMxMDEwMTA7IC0tZGlnaXRhbC1yZXRhaWxpbmctZHJhd2VyLXdpZHRoOiU7IH0gKiB7IGJvcmRlci1jb2xvcjppbmhlcml0OyBib3JkZXItc3R5bGU6c29saWQ7IGJvcmRlci13aWR0aDowOyBmb250LWZhbWlseTppbmhlcml0OyBsaW5lLWhlaWdodDoxLjJlbTsgfSBvbCwgdWwsIG1lbnUgeyBsaXN0LXN0eWxlOm5vbmU7IG1hcmdpbjowOyBwYWRkaW5nOjA7IH0gYSB7IHRleHQtZGVjb3JhdGlvbjpub25lOyBjb2xvcjppbmhlcml0OyB9IGgxLGgyLGgzLGg0LGg1LGg2LCBwIHsgbWFyZ2luOjA7IH0gaDEsaDIsaDMsaDQsaDUsaDZ7IGZvbnQtc2l6ZTppbmhlcml0OyBmb250LXdlaWdodDppbmhlcml0OyB9IGltZyB7IG1heC13aWR0aDoxMDAlOyB9IHRhYmxlIHsgYm9yZGVyLWNvbGxhcHNlOmNvbGxhcHNlOyB9IHRleHRhcmVhIHsgd2hpdGUtc3BhY2U6cmV2ZXJ0OyB9IDp3aGVyZShbaGlkZGVuXSl7IGRpc3BsYXk6bm9uZSAhaW1wb3J0YW50OyB9IDp3aGVyZShbY29udGVudGVkaXRhYmxlXSl7IC1tb3otdXNlci1tb2RpZnk6cmVhZC13cml0ZTsgLXdlYmtpdC11c2VyLW1vZGlmeTpyZWFkLXdyaXRlOyBvdmVyZmxvdy13cmFwOmJyZWFrLXdvcmQ7IGxpbmUtYnJlYWs6YWZ0ZXItd2hpdGUtc3BhY2U7IC13ZWJraXQtbGluZS1icmVhazphZnRlci13aGl0ZS1zcGFjZTsgfSA6d2hlcmUoW2RyYWdnYWJsZT0idHJ1ZSJdKSB7IC13ZWJraXQtdXNlci1kcmFnOmVsZW1lbnQ7IH0gLnJlc3BvbnNpdmUtZWRpdG9yIC5jb250YWluZXItZmx1aWR7IG92ZXJmbG93LXg6aGlkZGVuOyB9IC5yZXNwb25zaXZlLWVkaXRvciAuY29udGFpbmVyLWZsdWlkICogeyBsaW5lLWhlaWdodDppbml0aWFsOyB9IC5ja2VkaXRvcldyYXBwZXJ7IG92ZXJmbG93LXg6aGlkZGVuOyBzY3JvbGxiYXItd2lkdGg6bm9uZTsgfSAqIHsgZm9udC12YXJpYW50LW51bWVyaWM6bGluaW5nLW51bXM7IH0KLyoqIC9jc3MvdjIvbmF2LmNzcyAqKi8KaGVhZGVyLm1vYmlsZS1oZWFkZXJ7IC0tdHh0LWNvbG9yOnZhcigtLW1lbnUtdGV4dC1jb2xvci1tb2IsIHZhcigtLXRhYi10ZXh0LWNvbG9yKSk7IHBvc2l0aW9uOnN0aWNreTsgdG9wOjA7IHdpZHRoOjEwMHZ3OyBoZWlnaHQ6My4ycmVtOyBib3gtc2hhZG93OnJnYmEoMCwgMCwgMCwgMC41KSAwIDAgNXB4IDNweDsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1tZW51LWNvbG9yLW1vYiwgdmFyKC0tdGFiLWNvbG9yKSk7IGNvbG9yOnZhcigtLXR4dC1jb2xvcik7IHotaW5kZXg6MTAwMDsgfSBkaXYubW9iaWxlLWhlYWRlci1zcGFjZXJ7IHBvc2l0aW9uOnJlbGF0aXZlOyB3aWR0aDoxMDB2dzsgaGVpZ2h0OjMuMnJlbTsgZGlzcGxheTpibG9jazsgfSBoZWFkZXIubW9iaWxlLWhlYWRlciA+ICogKyAqIHsgZGlzcGxheTpmbGV4OyBqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOyBhbGlnbi1pdGVtczpjZW50ZXI7IGhlaWdodDoxMDAlOyB9IGhlYWRlci5tb2JpbGUtaGVhZGVyLnRhbGwgPiAqICsgKnsgYm9yZGVyLWxlZnQ6MXB4IHNvbGlkICNkZGQ7IGZsZXg6MSAxIGF1dG87IH0gaGVhZGVyIC5sb2dvLWFjdGlvbiB+ICogeyBtaW4td2lkdGg6Mi41cmVtOyB9IC5oZWFkZXItZGVhbGVyLW5hbWUgeyBjb2xvcjppbmhlcml0OyBmb250LXNpemU6dmFyKC0tZnMtMSk7IC0tZnM6dmFyKC0tZnMtMSk7IH0gaGVhZGVyIGFzaWRleyAtLXR4dC1jb2xvcjp2YXIoLS1tZW51LXRleHQtY29sb3ItbW9iLCB2YXIoLS10YWItdGV4dC1jb2xvcikpOyBwb3NpdGlvbjphYnNvbHV0ZTsgdG9wOjIuOTVyZW07IGxlZnQ6LTE5cmVtOyB3aWR0aDptaW4oODB2dywgMTlyZW0pOyBtaW4taGVpZ2h0OjEwMHZoOyBmb250LXNpemU6dmFyKC0tZnMpOyB0cmFuc2l0aW9uOnRyYW5zZm9ybSAzMDBtcyBlYXNlLWluOyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLW1lbnUtY29sb3ItbW9iLCB2YXIoLS10YWItY29sb3IpKTsgY29sb3I6dmFyKC0tbWVudS10ZXh0LWNvbG9yKTsgbWF4LWhlaWdodDoxMDB2aDsgb3ZlcmZsb3c6YXV0bzsgei1pbmRleDoxMDA7IH0gbmF2eyAtLWZzOnZhcigtLWZzMSk7IGZvbnQtc2l6ZTp2YXIoLS1mcyk7IH0gbmF2IC5tZW51LWl0ZW0sIG5hdiAuc3VibWVudS1pdGVtIHsgcGFkZGluZzp2YXIoLS1zKTsgfSBuYXYgLm1lbnUtaXRlbXsgYWxpZ24taXRlbXM6Y2VudGVyOyB9IG5hdiAubWVudS1pdGVtLmludmVyc2UtY29sb3J7IGNvbG9yOnZhcigtLW1lbnUtaG92ZXItdGV4dC1jb2xvcik7IGJhY2tncm91bmQtY29sb3I6dmFyKC0tbWVudS1ob3Zlci1iZy1jb2xvcik7IH0gbmF2IC5zdWJtZW51LWl0ZW17IGJvcmRlci1jb2xvcjp2YXIoLS1ncmF5KTsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1tZW51LWNvbG9yLW1vYi1leCwgdmFyKC0tdGFiLWNvbG9yKSk7IGNvbG9yOnZhcigtLW1lbnUtdGV4dC1jb2xvci1tb2ItZXgpOyB9IG5hdiAuc3VibWVudS1pdGVtIHN2Zy5pY29uIHsgZmlsbDp2YXIoLS10YWItdGV4dC1jb2xvci1tb2ItZXgsIHZhcigtLXRhYi10ZXh0LWNvbG9yKSk7IH0gbmF2IC5tZW51LWdyb3VwIHsgYm9yZGVyLXRvcC13aWR0aDp2YXIoLS1ib3JkZXItdGhpbik7IH0gbmF2IC5tZW51LWdyb3VwIH4gLm1lbnUtZ3JvdXAgeyBib3JkZXItdG9wLXdpZHRoOjA7IH0gbmF2IC5tZW51Q29sbHBhc2Ugc3ZneyB0cmFuc2Zvcm06cm90YXRlKDE4MGRlZyk7IH0gI2hvbWVuYXYgbmF2eyAtLXR4dC1jb2xvcjp2YXIoLS10YWItdGV4dC1jb2xvci1tb2IsIHZhcigtLXRhYi10ZXh0LWNvbG9yKSk7IH0gI2hvbWVuYXYgbmF2IC5tZW51LWl0ZW17IGJhY2tncm91bmQ6dmFyKC0tdGFiLWNvbG9yLW1vYiwgdmFyKC0tdGFiLWNvbG9yKSk7IGNvbG9yOnZhcigtLXRhYi10ZXh0LWNvbG9yLW1vYiwgdmFyKC0tdGFiLXRleHQtY29sb3IpKTsgfSAjaG9tZW5hdiBuYXYgLm1lbnUtaXRlbS5pbnZlcnNlLWNvbG9yeyBjb2xvcjp2YXIoLS1tZW51LWhvdmVyLXRleHQtY29sb3IpOyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLW1lbnUtaG92ZXItYmctY29sb3IpOyB9ICNob21lbmF2IG5hdiAuc3VibWVudS1pdGVteyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXRhYi1jb2xvci1tb2ItZXgsIHZhcigtLXRhYi1jb2xvcikpOyBjb2xvcjp2YXIoLS10YWItdGV4dC1jb2xvci1tb2ItZXgsIHZhcigtLXRhYi10ZXh0LWNvbG9yKSk7IH0gI2hvbWVuYXYgbmF2IGxpeyBwYWRkaW5nLXRvcDp2YXIoLS1zLTgpOyB9ICNob21lbmF2IG5hdiAubWVudS1pdGVteyBib3JkZXItcmFkaXVzOjAuMjVyZW07IH0gI2hvbWVuYXYgbmF2IC5tZW51LWl0ZW0uTEFOR1VBR0V7IGRpc3BsYXk6bm9uZTsgfSAuYnVyZ2VyLW1lbnUtY29udGFpbmVyeyBwb3NpdGlvbjpyZWxhdGl2ZTsgfSAuYnVyZ2VyX3RvcCB7IHRyYW5zZm9ybS1vcmlnaW46MCA1MCU7IH0gLmJ1cmdlcl9ib3R0b20geyB0cmFuc2Zvcm0tb3JpZ2luOjAgNTAlOyB9IC5idXJnZXItbWVudS1idXR0b24gPiBzcGFuIHsgd2lkdGg6MS42cmVtOyBoZWlnaHQ6MC4yNXJlbTsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1tZW51LXRleHQtY29sb3ItbW9iKTsgYm9yZGVyLXJhZGl1czowLjI1cmVtOyB0cmFuc2l0aW9uOnRyYW5zZm9ybSAwLjRzIGVhc2U7IHotaW5kZXg6MTAxOyB9ICNibV90b2dnbGU6Y2hlY2tlZCB+IC5idXJnZXItbWVudS1idXR0b24gLmJ1cmdlcl90b3AsICNibV9ib3R0b21fdG9nZ2xlOmNoZWNrZWQgfiAuYnVyZ2VyLW1lbnUtYnV0dG9uIC5idXJnZXJfdG9weyBvcGFjaXR5OjE7IHRyYW5zZm9ybTpyb3RhdGUoNDVkZWcpIHRyYW5zbGF0ZSgwLjFyZW0sIDApOyB9ICNibV90b2dnbGU6Y2hlY2tlZCB+IC5idXJnZXItbWVudS1idXR0b24gLmJ1cmdlcl9taWRkbGUsICNibV9ib3R0b21fdG9nZ2xlOmNoZWNrZWQgfiAuYnVyZ2VyLW1lbnUtYnV0dG9uIC5idXJnZXJfbWlkZGxleyBvcGFjaXR5OjA7IHRyYW5zZm9ybTpyb3RhdGUoMGRlZykgc2NhbGUoMC4yLCAwLjIpOyB9ICNibV90b2dnbGU6Y2hlY2tlZCB+IC5idXJnZXItbWVudS1idXR0b24gLmJ1cmdlcl9ib3R0b20sICNibV9ib3R0b21fdG9nZ2xlOmNoZWNrZWQgfiAuYnVyZ2VyLW1lbnUtYnV0dG9uIC5idXJnZXJfYm90dG9teyBvcGFjaXR5OjE7IHRyYW5zZm9ybTpyb3RhdGUoLTQ1ZGVnKSB0cmFuc2xhdGUoMC4xcmVtLCAwKTsgfSAjYm1fdG9nZ2xlOmNoZWNrZWQgfiAuYnVyZ2VyLW1lbnUtYnV0dG9uIH4gYXNpZGV7IHRyYW5zZm9ybTp0cmFuc2xhdGUoMTlyZW0pOyB9IGxhYmVsW2Zvcj0iYm1fdG9nZ2xlIl17IHBvc2l0aW9uOmFic29sdXRlOyB0b3A6MDsgbGVmdDowOyB3aWR0aDoxMDAlOyBoZWlnaHQ6MTAwJTsgei1pbmRleDoxMDI7IH0gLnRoaW5MZWZ0IC5oZWFkZXItZGVhbGVyLW5hbWUgeyBmb250LXNpemU6dmFyKC0tZnMwKTsgbWFyZ2luLWxlZnQ6OHB4OyB9IC50aGluTGVmdCAubG9nby1hY3Rpb24gYSB7IGZsZXgtYmFzaXM6MTUlIH0gaGVhZGVyLnRoaW5MZWZ0IGFzaWRlIHsgbGVmdDp1bnNldDsgcmlnaHQ6MDsgdHJhbnNmb3JtOnNjYWxlWCgwKSB0cmFuc2xhdGVYKDE5cmVtKTsgdHJhbnNmb3JtLW9yaWdpbjoxMDAlIDUwJTsgfSAudGhpbkxlZnQgI2JtX3RvZ2dsZTpjaGVja2VkIH4gLmJ1cmdlci1tZW51LWJ1dHRvbiB+IGFzaWRleyB0cmFuc2Zvcm06dW5zZXQ7IH0KLyoqIC9jc3Mvc2tlbGV0b24uY3NzICoqLwouaGlkZU9uUHJlTG9hZCB7IHZpc2liaWxpdHk6aGlkZGVuOyB9IC5yZXZlYWwtbW9kYWwgeyB2aXNpYmlsaXR5OmhpZGRlbjsgcG9zaXRpb246YWJzb2x1dGU7IHRvcDotMTAwMHB4OyB9IC5za2VsZXRvbiB7IGRpc3BsYXk6YmxvY2s7IHBvc2l0aW9uOnJlbGF0aXZlOyBtYXJnaW46MDsgcGFkZGluZzowOyBiYWNrZ3JvdW5kOiNlZWU7IH0gLnNrZWxldG9uOjpiZWZvcmUgeyBkaXNwbGF5OmZsZXg7IHdpZHRoOjEwMCU7IGhlaWdodDoxMDAlOyBwb3NpdGlvbjphYnNvbHV0ZTsgei1pbmRleDo0OyBjb250ZW50OiIiOyBmb250LXNpemU6MC43NXJlbTsgbGluZS1oZWlnaHQ6MC43NXJlbTsgY29sb3I6Izg4ODsgYW5pbWF0aW9uOnNrZWxldG9uLWFuaW0gMnMgbGluZWFyIGluZmluaXRlOyBqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOyBsZXR0ZXItc3BhY2luZzowLjI1cmVtOyBhbGlnbi1pdGVtczpjZW50ZXI7IGZvbnQtd2VpZ2h0OmJvbGQ7IH0gQGtleWZyYW1lcyBza2VsZXRvbi1hbmltIHsgMCUgeyBjb250ZW50OiIiOyB9IDI1JSB7IGNvbnRlbnQ6InwiOyB9IDUwJSB7IGNvbnRlbnQ6Inx8IjsgfSA3NSUgeyBjb250ZW50OiJ8fHwiOyB9IH0gLnNrZWxldG9uIGRpdjpmaXJzdC1jaGlsZCwgLnNrZWxldG9uIHNwYW46Zmlyc3QtY2hpbGQgeyBvcGFjaXR5OjA7IHRyYW5zaXRpb246b3BhY2l0eSAuMzAwczsgfSAuc2tlbGV0b24uc2tlbGV0b24tZGVza3RvcC5za2VsZXRvbi1jb25kLTIgeyBiYWNrZ3JvdW5kOm5vbmU7IH0gLnNrZWxldG9uLnNrZWxldG9uLWRlc2t0b3Auc2tlbGV0b24tY29uZC0yLmZpeGVkIHsgd2lkdGg6aW5oZXJpdCAhaW1wb3J0YW50OyB9IC5za2VsZXRvbi5pcy1sb2FkZWQtbm93IHsgYmFja2dyb3VuZDp1bnNldDsgfSAuc2tlbGV0b24uaXMtbG9hZGVkLW5vdyBkaXY6Zmlyc3QtY2hpbGQsIC5za2VsZXRvbi5pcy1sb2FkZWQtbm93IHNwYW46Zmlyc3QtY2hpbGQgeyBvcGFjaXR5OjE7IH0gLnNrZWxldG9uLmlzLWxvYWRlZC1ub3c6OmJlZm9yZSB7IGNvbnRlbnQ6IiI7IGRpc3BsYXk6bm9uZTsgYW5pbWF0aW9uOnVuc2V0OyB9IC5za2VsZXRvbi5za2VsZXRvbi1kZXNrdG9wLnNrZWxldG9uLWNvbmQtMi5maXhlZC5pcy1sb2FkZWQtbm93ID4gZGl2OmZpcnN0LWNoaWxkIHsgb3BhY2l0eTouNzU7IH0gLnNrZWxldG9uLnNrZWxldG9uLWRlc2t0b3Auc2tlbGV0b24tY29uZC0yLmZpeGVkLmlzLWxvYWRlZC1ub3cgPiBkaXY6Zmlyc3QtY2hpbGQ6aG92ZXIgeyBvcGFjaXR5OjE7IH0KLyoqIC9jc3MvY3NzLmNzcyAqKi8KaHRtbCwgYm9keSwgc3BhbiwgYXBwbGV0LCBvYmplY3QsIGlmcmFtZSwgaDEsIGgyLCBoMywgaDQsIGg1LCBoNiwgcCwgYmxvY2txdW90ZSwgcHJlLCBhYmJyLCBhY3JvbnltLCBhZGRyZXNzLCBiaWcsIGNpdGUsIGNvZGUsIGRlbCwgZGZuLCBlbSwgZm9udCwgaW1nLCBpbnMsIGtiZCwgcSwgcywgc2FtcCwgc21hbGwsIHN0cmlrZSwgc3Ryb25nLCBzdWIsIHN1cCwgdHQsIHZhciwgYiwgdSwgaSwgY2VudGVyLCBkbCwgZHQsIGRkLCBvbCwgdWwsIGxpLCBmaWVsZHNldCwgZm9ybSwgbGFiZWwsIGxlZ2VuZCwgdGFibGUsIGNhcHRpb24sIHRib2R5LCB0Zm9vdCwgdGhlYWQsIHRyLCB0aCwgdGQgeyBtYXJnaW46MDsgcGFkZGluZzowOyB9IGh0bWx7IGZvbnQtc2l6ZToxcmVtIDsgfSBib2R5IHsgcGFkZGluZzowOyBtYXJnaW4tbGVmdDowcHg7IG1hcmdpbi10b3A6MDsgbWFyZ2luLXJpZ2h0OjBweDsgbWFyZ2luLWJvdHRvbTowcHg7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGZvbnQtZmFtaWx5OnZhcigtLWZvbnQtdGV4dCk7IGZvbnQtd2VpZ2h0OnZhcigtLWZvbnQtdGV4dC13ZWlnaHQpOyBiYWNrZ3JvdW5kOiB0b3AgY2VudGVyIG5vLXJlcGVhdDsgYmFja2dyb3VuZC1pbWFnZTp1cmwoJy9pbWFnZXMvYmxhbmsuZ2lmJyk7IGJhY2tncm91bmQtY29sb3I6dmFyKC0tZ2VuZXJhbC1iZy1jb2xvcik7IH0gaW5wdXQsIHRleHRhcmVhLCBzZWxlY3QsIGJ1dHRvbiB7IGZvbnQtZmFtaWx5OnZhcigtLWZvbnQtdGV4dCk7IGZvbnQtd2VpZ2h0OnZhcigtLWZvbnQtdGV4dC13ZWlnaHQpOyB9IC5uYXYgbGkgYS50b3BfbGluaywgLnVwX21lbnUgdWwubmF2IHVsLnN1YiBsaSBhLnN1YnRpdGxlLCAuaW1nX21lbnUudXBfbWVudSB1bC5uYXYgI01haW5NZW51X05FVz51bC5zdWIgbGk+dWwuc3ViPmxpLmhhc1N1YiBsaSBhLCBib2R5IC53cmFwcGVyIC51cF9tZW51IC5uYXZ7IGZvbnQtZmFtaWx5OnZhcigtLWZvbnQtbWVudSk7IGZvbnQtd2VpZ2h0OnZhcigtLWZvbnQtbWVudS13ZWlnaHQpOyB9IGgxeyBmb250LWZhbWlseTp2YXIoLS1mb250LWgxKTsgZm9udC13ZWlnaHQ6dmFyKC0tZm9udC1oMS13ZWlnaHQpOyBjbGVhcjpib3RoOyB9IC5mbi5vcmd7IGZvbnQtZmFtaWx5OnZhcigtLWZvbnQtaDEpOyBmb250LXdlaWdodDp2YXIoLS1mb250LWgxLXdlaWdodCk7IH0gaW5wdXRbdHlwZT1idXR0b25dLCBidXR0b24uanFUcmFuc2Zvcm1CdXR0b24gc3BhbiBzcGFuLCAuYnV0dG9uXzEgYSwgLmJ1dHRvbl8yIGEsIC5idXR0b25fMyBhLCAuYnV0dG9uX3VuZGVyIGEsIC5idXR0b25fY21wX2xlZnQgYSwgLmJ1dHRvbl9jbXBfcmlnaHQgYSwgLmJ1dHRvbl9jbXBfYWN0IGEsIC5wdWxsb3V0cyBhLCAuaWROYXYxIGxpIGEudG9wX2xpbmsxLCAuY3RhX3ByaWNlLmFsdCwgLmN0YV9jcmVkaXQuYWx0LCAuY3RhX3Rlc3REcml2ZSwgLmN0YV9ldmFsLmFsdCwgLmN0YV9zZXJ2aWNlLmFsdCwgLmN0YV9wYXJ0cy5hbHQsIC5jdGFfdGlyZXMuYWx0LCAuY3RhX3N2Y3Byb21vLmFsdCwgLmJveDE1IGgyIGEsIC5ib3gxOSBoMiBhLCAuYm94MjcgYSwgLnZpb3IsIC5idG4tZGVmYXVsdCwgLmJ0bi1zbSwgLmJ0bi1sZyB7IGZvbnQtZmFtaWx5OnZhcigtLWZvbnQtYnV0dG9ucyk7IGZvbnQtd2VpZ2h0OnZhcigtLWZvbnQtYnV0dG9ucy13ZWlnaHQpOyB9IGgyLGgzLGg0LGg1LGg2eyBmb250LWZhbWlseTp2YXIoLS1mb250LWgyKTsgZm9udC13ZWlnaHQ6dmFyKC0tZm9udC1oMi13ZWlnaHQpOyB9IHN0cm9uZ3sgZm9udC13ZWlnaHQ6OTAwICFpbXBvcnRhbnQ7IH0gI21haW5EaXYud3JhcHBlciAudG9wX2JneyBtYXgtaGVpZ2h0OjI1MHB4OyBtaW4taGVpZ2h0OjExNXB4OyB9IC5oZWFkZXItaW1hZ2Utd3JhcHBlciBpbWcuaW1hZ2UtcGFkZGluZyB7IHBhZGRpbmctYm90dG9tOjVweDsgfSAuY2tlZGl0b3JXcmFwcGVyIGgyIHsgbWFyZ2luLWxlZnQ6MHB4ICFpbXBvcnRhbnQ7IG1hcmdpbi1yaWdodDowcHggIWltcG9ydGFudDsgbWFyZ2luLXRvcDoxNXB4ICFpbXBvcnRhbnQ7IG1hcmdpbi1ib3R0b206MTVweCAhaW1wb3J0YW50OyB9IC5ja2VkaXRvcldyYXBwZXIgYSB7IGZsb2F0Om5vbmUgIWltcG9ydGFudDsgbWFyZ2luLWxlZnQ6MHB4ICFpbXBvcnRhbnQ7IGZvbnQtc2l6ZToxMDAlICFpbXBvcnRhbnQ7IH0gLmNrZWRpdG9yV3JhcHBlciBwIHsgZmxvYXQ6bm9uZSAhaW1wb3J0YW50OyB9IC5ja2VkaXRvcldyYXBwZXIgcDplbXB0eSB7IG1hcmdpbi1ib3R0b206MXJlbTsgfSAuY2xyeyBjbGVhcjpib3RoO30gLmZsZWZ0eyBmbG9hdDpsZWZ0OyB9IGlucHV0OmludmFsaWR7Ym94LXNoYWRvdzpub25lOyAtbW96LWJveC1zaGFkb3c6bm9uZTt9IC5jb25kaXRpb25zLS1jb250YWluZXIgeyBkaXNwbGF5OmZsZXg7IGZsZXgtZGlyZWN0aW9uOnJvdzsganVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47IG1hcmdpbi1ib3R0b206OHB4OyB9IC5jb25kaXRpb25zLS1jb250YWluZXIgLmNvbmRpdGlvbnMgeyBmbGV4LWdyb3c6MjsgZm9udC1zaXplOjAuODEzcmVtIDsgbGluZS1oZWlnaHQ6MThweDsgY29sb3I6Izk5OTk5OTsgfSAuY29uZGl0aW9uc0Zvb3RlcnsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODEzcmVtIDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgbGluZS1oZWlnaHQ6MThweDsgdGV4dC10cmFuc2Zvcm06bm9uZTsgdGV4dC1hbGlnbjpsZWZ0OyBtYXJnaW4tbGVmdDo1cHg7IG1hcmdpbi10b3A6MjVweDsgY29sb3I6Izk5OTk5OTsgfSAuY29uZGl0aW9ucy0tY29udGFpbmVyIGEsIC5jb25kaXRpb25zRm9vdGVyIGEgeyB0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lOyBjdXJzb3I6cG9pbnRlcjsgZm9udC1zaXplOjAuODEzcmVtIDsgY29sb3I6Izk5OTk5OTsgZm9udC13ZWlnaHQ6bm9ybWFsOyB9IC5leHRlbmRlZFBob25lVHJpZ2dlciBheyBjb2xvcjppbmhlcml0OyB9IC5tYWluRGl2LXdyYXBwZXIgPiAubGFuZ3VhZ2VCYXItemVybyB7IG1hcmdpbjowOyBoZWlnaHQ6aW5oZXJpdDsgd2lkdGg6MTAwJTsgfSAuaGVhZGVyLXNlY3Rpb24gLmxhbmd1YWdlQmFyIHsgbWFyZ2luOjAgYXV0byAyLjc1cmVtOyB3aWR0aDppbmhlcml0OyB9IC5oZWFkZXItc2VjdGlvbiAubGFuZ3VhZ2VCYXIgKyAucGhvbmUgeyBtYXJnaW4tYm90dG9tOjAuNXJlbTsgfSAubGFuZ3VhZ2VCYXIgdWwgYTpob3Zlcntmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojNjY2NjY2OyB0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lO30gLmxhbmd1YWdlQmFyIHVsIGE6dmlzaXRlZHtwYWRkaW5nLXJpZ2h0OjM1cHg7IHdpZHRoOmF1dG87IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiM2NjY2NjY7IHRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7IHRleHQtYWxpZ246cmlnaHQ7fSAubGFuZ3VhZ2VCYXIubGFuZ3VhZ2VCYXItemVybyB7IGhlaWdodDowOyBwYWRkaW5nOjA7IG1hcmdpbjowOyB9ICNtYWluRGl2LndyYXBwZXIubm8taWNvbnMgeyBwYWRkaW5nLXRvcDowLjAxcmVtOyB9IC50b3Bfcm91eyB3aWR0aDo5NjBweDsgaGVpZ2h0OjRweDsgZmxvYXQ6bGVmdDsgfSAubG9nb3sgfSAubG9nb05vUGFkZGluZyBpbWd7IHdpZHRoOjEwMCU7fSAubGFuZ3VhZ2VCYXIgYS5kZXNrdG9wX2xhbmdfYnV0dG9uLCAubGFuZ3VhZ2VCYXIgc3Bhbi5kZXNrdG9wX2xhbmdfYnV0dG9ueyBwb3NpdGlvbjpyZWxhdGl2ZTsgZGlzcGxheTppbmxpbmUtYmxvY2s7IGZvbnQtc2l6ZTowLjc1cmVtIDsgd2lkdGg6MjhweDsgaGVpZ2h0OjI2cHg7IHBhZGRpbmc6MDsgdGV4dC1hbGlnbjpjZW50ZXI7IHRleHQtZGVjb3JhdGlvbjpub25lOyB2ZXJ0aWNhbC1hbGlnbjp0b3A7IGJvcmRlcjoxcHggc29saWQgI0I2QjdCOTsgY29sb3I6I0I2QjdCOTsgY29sb3I6I2Y1ZjVmNTsgYmFja2dyb3VuZC1jb2xvcjojZmZmZmZmOyBiYWNrZ3JvdW5kLWNvbG9yOiNmZmZmZmY7IGJhY2tncm91bmQtY29sb3I6IzEwMTAxMDsgfSAubGFuZ3VhZ2VCYXIgLmRlc2t0b3BfbGFuZ19idXR0b24uYWN0aXZlLCAubGFuZ3VhZ2VCYXIgYS5kZXNrdG9wX2xhbmdfYnV0dG9uOmhvdmVyeyBjb2xvcjojZmZmZmZmOyBjb2xvcjojMTAxMDEwOyBiYWNrZ3JvdW5kLWNvbG9yOiNCNkI3Qjk7IGJhY2tncm91bmQtY29sb3I6I2Y1ZjVmNTsgfSAubGFuZ3VhZ2VCYXIgc3Bhbi5kZXNrdG9wX2xhbmdfYnV0dG9uOm50aC1jaGlsZChldmVuKSwgLmxhbmd1YWdlQmFyIGEuZGVza3RvcF9sYW5nX2J1dHRvbjpudGgtY2hpbGQoZXZlbil7IG1hcmdpbi1sZWZ0OjJweDsgfSAubGFuZ3VhZ2VCYXIgYS5kZXNrdG9wX2xhbmdfYnV0dG9uIHNwYW4uZGVza3RvcF9sYW5nX2J1dHRvbl90ZXh0LCAubGFuZ3VhZ2VCYXIgc3Bhbi5kZXNrdG9wX2xhbmdfYnV0dG9uIHNwYW4uZGVza3RvcF9sYW5nX2J1dHRvbl90ZXh0eyBwb3NpdGlvbjphYnNvbHV0ZTsgdG9wOjUwJTsgdHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlLCAtNTAlKTsgfSAubG9nb05vUGFkZGluZ3sgbWF4LXdpZHRoOjUwJTsgZmxvYXQ6bGVmdDsgbWFyZ2luLXRvcDotNHB4O30gLnYtY2FyZC50b3BfYmcgeyBkaXNwbGF5OmZsZXg7IGp1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuOyBhbGlnbi1pdGVtczpjZW50ZXI7IG1hcmdpbi10b3A6MTBweDsgfSAudi1jYXJkLnRvcF9iZy4tbXQwIC5oZWFkZXItc2VjdGlvbjpudGgtY2hpbGQoMikgeyBtYXJnaW4tdG9wOjc0cHg7IH0gLmhlYWRlci1zZWN0aW9uIHsgZGlzcGxheTpmbGV4OyB2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7IGp1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuOyBhbGlnbi1pdGVtczpjZW50ZXI7IH0gLmhlYWRlci1pbWFnZS13cmFwcGVyIHsgbWluLWhlaWdodDo5N3B4OyB9IC5oZWFkZXItc2VjdGlvbi5pbWFnZSB7IHdpZHRoOjI1JTsgfSAuaGVhZGVyLXNlY3Rpb24uaW1hZ2UgPiAuaGVhZGVyLWltYWdlLXdyYXBwZXIgaW1nIHsgbWF4LWhlaWdodDoyNTBweDsgfSAuaGVhZGVyLXNlY3Rpb24gPiBkaXYgeyBkaXNwbGF5OmlubGluZS1ibG9jazsgfSAuaGVhZGVyLXNlY3Rpb24gLnBob25lIHsgd2lkdGg6YXV0bzsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6dmFyKC0tZGVhbGVyLWFkZHJlc3MtY29sb3IpOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgdGV4dC1hbGlnbjpyaWdodDsgcGFkZGluZzowLjVyZW0gMDsgfSAuaGVhZGVyLXNlY3Rpb246bnRoLWNoaWxkKDIpLmltYWdlIHsgdGV4dC1hbGlnbjpyaWdodDsgfSAuaGVhZGVyLXNlY3Rpb24gLnBob25lLnBob25lX3JpZ2h0eyB0ZXh0LWFsaWduOnJpZ2h0OyB9IC5oZWFkZXItc2VjdGlvbiAucGhvbmUucGhvbmVfbGVmdCB7IHRleHQtYWxpZ246bGVmdDsgfSAuaGVhZGVyLXNlY3Rpb24gPiAudi1jYXJkIHsgfSAubXVsdGktYWRkcmVzcy13cmFwcGVyLmV4Y2VwdGlvblN0eWxleyBkaXNwbGF5OmZsZXg7IH0gLm11bHRpLWFkZHJlc3Mtd3JhcHBlci5leGNlcHRpb25TdHlsZSAubXVsdGktYWRkcmVzcy0tcGhvbmV7IHdpZHRoOmF1dG87IGFsaWduLWl0ZW1zOmNlbnRlcjsgfSAubXVsdGktYWRkcmVzcy13cmFwcGVyLmV4Y2VwdGlvblN0eWxlIC5tdWx0aS1hZGRyZXNzLS1waG9uZSBpeyBmb250LXNpemU6MC42MjVyZW0gOyB9IC5tdWx0aS1hZGRyZXNzLXdyYXBwZXIuZXhjZXB0aW9uU3R5bGUgYXsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IH0gLm11bHRpLWFkZHJlc3MgeyBkaXNwbGF5OmZsZXg7IGp1c3RpZnktY29udGVudDpmbGV4LWVuZDsgfSAubXVsdGktYWRkcmVzcy0tcGhvbmUgeyB3aWR0aDoxMzNweDsgZGlzcGxheTpmbGV4OyBqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjsgfSAubXVsdGktYWRkcmVzcyBpIHsgcGFkZGluZy1yaWdodDo1cHg7IHBhZGRpbmctbGVmdDoxMHB4OyB9IC50b3BfYmcgdGFibGUgdGJvZHkgdGQ6bnRoLWNoaWxkKDIpIC5oZWFkZXItc2VjdGlvbiB7IHdpZHRoOjEwMCU7IH0gLnRvcF9iZy5kaXZUYWJsZSAuaGVhZGVyLXNlY3Rpb246bnRoLWNoaWxkKDIpIHsgdGV4dC1hbGlnbjpyaWdodDsgfSAudG9wX2JnIHRhYmxlIHRkIC5oZWFkZXItc2VjdGlvbiB7IGRpc3BsYXk6aW5saW5lLWJsb2NrOyB9IC5waG9uZSBoMnsgZm9udC1zaXplOjEuNXJlbSA7IGNvbG9yOiM1MjUyNTI7IGZvbnQtd2VpZ2h0OmJvbGQ7IHRleHQtZGVjb3JhdGlvbjpub25lO30gLnBob25lIGgxeyBmb250LXNpemU6MS44NzVyZW0gOyBjb2xvcjojNTI1MjUyOyBmb250LXdlaWdodDpib2xkOyB0ZXh0LWRlY29yYXRpb246bm9uZTt9IC5waG9uZSBkaXYub3JneyBmb250LXNpemU6MS4zNzVyZW0gOyBjb2xvcjojNTI1MjUyOyBmb250LXdlaWdodDpib2xkOyB0ZXh0LWRlY29yYXRpb246bm9uZTt9IC5waG9uZV90ZXh0IHsgY29sb3I6dmFyKC0tZGVhbGVyLWFkZHJlc3MtY29sb3IpOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgcGFkZGluZy1sZWZ0OjJweDsgcGFkZGluZy10b3A6MnB4O30gLnBob25lX3RleHQgYXsgY29sb3I6dmFyKC0tZGVhbGVyLWFkZHJlc3MtY29sb3IpOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgZGlzcGxheTppbmxpbmUtYmxvY2s7IHdpbGwtY2hhbmdlOnRyYW5zZm9ybTsgdHJhbnNmb3JtLW9yaWdpbjpyaWdodCBjZW50ZXI7IHRyYW5zaXRpb246dHJhbnNmb3JtIDAuM3MgZWFzZTsgfSAucGhvbmVfdGV4dCBhOmhvdmVyeyB0cmFuc2Zvcm06c2NhbGUoMC45Myk7IGNvbG9yOiMwMDU3OWM7IHRleHQtZGVjb3JhdGlvbjpub25lOyB9IGEucGhvbmUtbGluayB7IGRpc3BsYXkgOmlubGluZS1ibG9jayAhaW1wb3J0YW50OyBwYWRkaW5nIDowICFpbXBvcnRhbnQ7IGNvbG9yIDppbmhlcml0OyB0ZXh0LWRlY29yYXRpb24gOm5vbmU7IH0gYS5waG9uZS1saW5rOmhvdmVyIHsgY29sb3I6aW5oZXJpdDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IH0gI3NsaWRlcnsgd2lkdGg6OTYwcHg7IG1hcmdpbi1sZWZ0OjBweDsgYm94LXNoYWRvdzpub25lOyB9IC5jZW50ZXJlZCB7cG9zaXRpb246YWJzb2x1dGU7IGxlZnQ6NTAlOyB0b3A6NTAlO30gLnVwX21lbnV7IHdpZHRoOjk2MHB4OyBoZWlnaHQ6MzFweDsgei1pbmRleDoxMTExOyBmbG9hdDpyaWdodDt3aGl0ZS1zcGFjZTpub3dyYXA7IH0gLmJhbm5lcnsgd2lkdGg6OTYwcHg7IGhlaWdodDozMDFweDsgZmxvYXQ6bGVmdDsgbWFyZ2luLWxlZnQ6MnB4OyBtYXJnaW4tYm90dG9tOjZweDsgfSAubWVfdG9weyB3aWR0aDo5NjdweDsgaGVpZ2h0OjhweDsgZmxvYXQ6bGVmdDt9IC5tZV9iZ3sgd2lkdGg6OTY3cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL21lX2JnX3JvdS5wbmcpIGxlZnQgdG9wIHJlcGVhdC15O30gLm1lX2Rlc2N7bWFyZ2luOjBweDtoZWlnaHQ6YXV0bztmb250LXNpemU6MC44NzVyZW0gOyBvdmVyZmxvdzpoaWRkZW47cGFkZGluZzo1cHggMTVweH0gLm1lX2JvdXsgd2lkdGg6OTY3cHg7IGhlaWdodDo5cHg7IGZsb2F0OmxlZnQ7fSAub25leyB3aWR0aDoyMjVweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IG1hcmdpbi1sZWZ0OjEwcHg7IG1hcmdpbi10b3A6OHB4O30gLnR3b3sgd2lkdGg6MjI1cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBtYXJnaW4tbGVmdDoxNHB4OyBtYXJnaW4tdG9wOjhweDt9IC50aHJlZXsgd2lkdGg6MjI1cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBtYXJnaW4tbGVmdDoxNHB4OyBtYXJnaW4tdG9wOjhweDt9IC5mb3VyeyB3aWR0aDoyMjVweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IG1hcmdpbi1sZWZ0OjRweDsgbWFyZ2luLXRvcDo0cHg7fSAuVm91c3sgZm9udC1zaXplOjEuMDYzcmVtIDsgY29sb3I6IzEwMTAxMDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHBhZGRpbmctYm90dG9tOjJweDt9IC5jbGFzc3sgZm9udC1zaXplOjAuODEzcmVtIDsgY29sb3I6IzU3NTc1NzsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHBhZGRpbmctYm90dG9tOjBweDsgcGFkZGluZy10b3A6NnB4O30gLmNsYXNzMXsgZm9udC1zaXplOjAuODEzcmVtIDsgY29sb3I6IzU3NTc1NzsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IGhlaWdodDoxNTdweDsgbWFyZ2luLXRvcDo2cHg7fSAuYm9yZGVye2JvcmRlcjoxcHggc29saWQgI2QzZDNkMzsgd2lkdGg6MjE4cHg7fSAuYm94eyB3aWR0aDo3NXB4OyBoZWlnaHQ6NzNweDsgdGV4dC1hbGlnbjpjZW50ZXI7IHBhZGRpbmctdG9wOjEwcHg7IG1hcmdpbjowIGF1dG87fSAuY2F7aGVpZ2h0OjE0M3B4O30gLmJveDIyNXsgd2lkdGg6MjI1cHg7IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IGNvbG9yOiM1NzU3NTc7IHRleHQtZGVjb3JhdGlvbjpub25lOyBwYWRkaW5nLWJvdHRvbTozcHg7fSAuYm94MjI0eyB3aWR0aDoyMjVweDsgZmxvYXQ6bGVmdDsgcGFkZGluZy1ib3R0b206NnB4O30gLmJveDIyM3sgd2lkdGg6MjI1cHg7IGZsb2F0OmxlZnQ7IHBhZGRpbmctdG9wOjNweDt9IC5ub3N7IHdpZHRoOjcxMHB4OyBoZWlnaHQ6MTAwJTsgbWFyZ2luLXRvcDo1cHg7IGZsb2F0OmxlZnQ7IG1hcmdpbi1yaWdodDo1cHg7fSAubm9zX3RvcHsgd2lkdGg6NzE2cHg7IGhlaWdodDo5cHg7IGZsb2F0OmxlZnQ7fSAubm9zX2JneyB3aWR0aDo3MTZweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvbm9zX2JnLnBuZykgbGVmdCB0b3AgcmVwZWF0LXk7fSAubm9zX2JvdXsgd2lkdGg6NzE2cHg7IGhlaWdodDo5cHg7IGZsb2F0OmxlZnQ7fSAubm9zX3RleHR7aGVpZ2h0OjMwcHg7IGZvbnQtc2l6ZToxLjEyNXJlbSA7IGNvbG9yOiM1NzU3NTc7IHRleHQtZGVjb3JhdGlvbjpub25lOyB0ZXh0LWFsaWduOmNlbnRlcjt9IC5hcm93eyB3aWR0aDo2OTVweDsgaGVpZ2h0OjE2MHB4OyBmbG9hdDpsZWZ0OyBtYXJnaW4tbGVmdDo0cHg7fSAuY29ueyBmb250LXNpemU6MC44MTNyZW0gOyBjb2xvcjojM2MzYzNjO30gLmRlc2Mge21heC13aWR0aDoxMDAlO30gLmRlc2NfYmcge3dpZHRoOjEwMCU7IGhlaWdodDoyNDhweDsgZmxvYXQ6bGVmdDsgYmFja2dyb3VuZDp1cmwoIi9pbWFnZXMvbm9zX2JnLnBuZyIpIHJlcGVhdC15IHNjcm9sbCBsZWZ0IHRvcCB0cmFuc3BhcmVudDt9IC5hZGRye21hcmdpbi10b3A6MjVweDt9IC5hZGRyX21pZHtiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL21lX2JnX3JvdS5wbmcpIGxlZnQgdG9wIHJlcGVhdC15O30gLmhpZGRlbntkaXNwbGF5Om5vbmUgIWltcG9ydGFudDt9IC5ob3Vyc19yZW0geyB0ZXh0LWFsaWduOnJpZ2h0O2xpbmUtaGVpZ2h0OjE4cHg7IGZsb2F0OnJpZ2h0O3BhZGRpbmctcmlnaHQ6MTVweDsgfSAuaG91cnNfcmVtIGF7IGZvbnQtc2l6ZTowLjY4OHJlbSA7IHRleHQtZGVjb3JhdGlvbjpub25lOyB9ICNse3dpZHRoOjYwcHg7IGZsb2F0OmxlZnQ7fSAuZGVye3dpZHRoOjQ2MHB4OyBoZWlnaHQ6MjU1cHg7IG1hcmdpbi10b3A6MXB4OyBmbG9hdDpsZWZ0O30gLmRlcl90b3B7IHdpZHRoOjQ2NHB4OyBoZWlnaHQ6OHB4OyBmbG9hdDpsZWZ0O30gLmRlcl9iZ3sgd2lkdGg6NDQ0cHg7IGhlaWdodDoyMjZweDsgZmxvYXQ6bGVmdDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9kZXJfYmcucG5nKSBsZWZ0IHRvcCByZXBlYXQteTsgcGFkZGluZzo2cHggMTBweCAxMHB4IDEwcHg7fSAuZGVyX2JvdXsgd2lkdGg6NDY0cHg7IGhlaWdodDo4cHg7IGZsb2F0OmxlZnQ7fSAuZGVte3dpZHRoOjQ5NXB4OyBoZWlnaHQ6MjU1cHg7IG1hcmdpbi10b3A6M3B4OyBmbG9hdDpsZWZ0OyBtYXJnaW4tbGVmdDo1cHg7bWFyZ2luLWJvdHRvbTo2cHg7fSAuc2JveDF7IHdpZHRoOjI0MHB4OyBoZWlnaHQ6MTIzcHg7IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MCA1cHggMTBweCA1cHh9IC5zYm94Mnsgd2lkdGg6MjQwcHg7IGhlaWdodDoxMjNweDsgZmxvYXQ6bGVmdDsgcGFkZGluZzowIDVweCAxMHB4IDVweH0gLnNib3gzeyB3aWR0aDoyNDBweDsgaGVpZ2h0OjEyM3B4OyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjAgNXB4IDEwcHggNXB4fSAuc2JveDR7IHdpZHRoOjI0MHB4OyBoZWlnaHQ6MTIzcHg7IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MCA1cHggMTBweCA1cHh9IC5ib3R0b200Ym94ZXN7ZmxvYXQ6bGVmdDt3aWR0aDoxMDAlO3BhZGRpbmc6MDtkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47fSAuYm90dG9tNGJveGVzICoge2JveC1zaXppbmc6Ym9yZGVyLWJveDt9IC5ib3R0b200Ym94ZXMgPiAuYm94MjQ1e2Zsb2F0OmxlZnQ7d2lkdGg6MjUlO21heC13aWR0aDoyNDVweDt9IC5ib3R0b200Ym94ZXMgPiAuYm94MjQxe2Zsb2F0OmxlZnQ7bWFyZ2luOjEwcHggNnB4O30gLmJvdHRvbTRib3hlcyA+IC5ib3gyNDE6Zmlyc3QtY2hpbGR7bWFyZ2luLWxlZnQ6MHB4O30gLmJvdHRvbTRib3hlcyA+IC5ib3gyNDE6bGFzdC1jaGlsZHttYXJnaW4tcmlnaHQ6MHB4O30gQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOjEwMjRweCkgeyAuYm90dG9tNGJveGVzIHRhYmxlIHsgcGFkZGluZzowIDEwcHg7IH0gfSAuc2JveFVzZWR7IGZsb2F0OmxlZnQ7IH0gLnNib3hfdG9weyB3aWR0aDoyNDdweDsgaGVpZ2h0OjVweDsgZmxvYXQ6bGVmdDt9IC5zYm94X2JneyB3aWR0aDoyNDdweDsgaGVpZ2h0OjEwN3B4OyBmbG9hdDpsZWZ0OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL3Nib3hfYmcucG5nKSBsZWZ0IHRvcCByZXBlYXQteTsgZm9udC1zaXplOjEuMTg4cmVtIDsgY29sb3I6IzE5MTkxOTsgdGV4dC1hbGlnbjpjZW50ZXI7fSAuc2JveF9ib3V7IHdpZHRoOjI0N3B4OyBoZWlnaHQ6NXB4OyBmbG9hdDpsZWZ0O30gLmRheyBtYXJnaW4tdG9wOjEycHg7fSAuZGExeyBtYXJnaW4tdG9wOjEwcHg7IGZvbnQtc2l6ZToxLjE4OHJlbSA7IGNvbG9yOiMxOTE5MTk7IHRleHQtYWxpZ246Y2VudGVyO30gLmRhMSBoMXsgcGFkZGluZzowOyBtYXJnaW46MDsgZm9udC1zaXplOjEuODc1cmVtIDsgY29sb3I6IzE5MTkxOTsgdGV4dC1hbGlnbjpjZW50ZXI7IGZvbnQtd2VpZ2h0Om5vcm1hbDt9IC5hZGRsaW5leyBjb2xvcjojMTAxMDEwIWltcG9ydGFudDsgb3ZlcmZsb3c6aGlkZGVuOyB0ZXh0LWFsaWduOmNlbnRlcjsgfSAjcmV0dXJuUG9wdXBOZXh0TW9kZWx7IGhlaWdodDo0MHB4IWltcG9ydGFudDsgfSAuYWRkbGluZTo6YmVmb3JlLCAuYWRkbGluZTo6YWZ0ZXIgeyBiYWNrZ3JvdW5kLWNvbG9yOiMwMDA7IGNvbnRlbnQ6IiI7IGRpc3BsYXk6aW5saW5lLWJsb2NrOyBoZWlnaHQ6MXB4OyBwb3NpdGlvbjpyZWxhdGl2ZTsgdmVydGljYWwtYWxpZ246bWlkZGxlOyB3aWR0aDo1MCU7IH0gLmFkZGxpbmU6YmVmb3JlIHsgcmlnaHQ6MC41ZW07IG1hcmdpbi1sZWZ0Oi01MCU7IH0gLmFkZGxpbmU6YWZ0ZXIgeyBsZWZ0OjAuNWVtOyBtYXJnaW4tcmlnaHQ6LTUwJTsgfSAuc2JveDEgYS5jTGluaywgLnNib3gyIGEuY0xpbmssIC5zYm94MyBhLmNMaW5rLCAuc2JveDQgYS5jTGlua3sgZGlzcGxheTpibG9jazsgaGVpZ2h0OjEwMCU7IHdpZHRoOjEwMCU7IHRleHQtZGVjb3JhdGlvbjpub25lOyB9IC5zYm94MSBhLmNMaW5rOmhvdmVyLCAuc2JveDIgYS5jTGluazpob3ZlciwgLnNib3gzIGEuY0xpbms6aG92ZXIsIC5zYm94NCBhLmNMaW5rOmhvdmVyeyB0ZXh0LWRlY29yYXRpb246bm9uZTsgfSAuaG9tZXBhZ2UtLWJ1c2luZXNzLWRlc2NyaXB0aW9uLCAuaG9tZXBhZ2UtLWJ1c2luZXNzLWRlc2NyaXB0aW9uLWNlcnQsIC5ob21lcGFnZS0tYnVzaW5lc3MtZGVzY3JpcHRpb24gLmJvcmRlcl9ib3ggeyBiYWNrZ3JvdW5kLWNvbG9yOiMxMDEwMTA7IGJhY2tncm91bmQtY29sb3I6I2Y1ZjVmNTsgY29sb3I6I2ZmZmZmZjsgY29sb3I6IzAwMDAwMDsgfSAuaG9tZXBhZ2UtLWJ1c2luZXNzLWRlc2NyaXB0aW9uIGEsIC5ob21lcGFnZS0tYnVzaW5lc3MtZGVzY3JpcHRpb24tY2VydCBhIHsgY29sb3I6I2ZmZmZmZjsgY29sb3I6IzAwMDAwMDsgfSAuaG9tZXBhZ2UtLWJ1c2luZXNzLWRlc2NyaXB0aW9uIC5ib3JkZXJfYm94LCAuaG9tZXBhZ2UtLWJ1c2luZXNzLWRlc2NyaXB0aW9uLWNlcnQgLmJvcmRlcl9ib3ggeyBiYWNrZ3JvdW5kLWNvbG9yOmluaGVyaXQ7IGNvbG9yOmluaGVyaXQ7IH0gLmJsYWNrX3RleHR7IGZvbnQtc2l6ZToxLjVyZW0gOyBjb2xvcjojMTkxOTE5OyBtYXJnaW4tYm90dG9tOjRweDt9IC5ncmF5X3RleHR7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IGNvbG9yOiMxOTE5MTk7fSAuYnV0eyBmbG9hdDpyaWdodDsgbWFyZ2luOjBweCAwcHggMHB4IDBweDt9IC5saW5leyBib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZDJkMmQyOyBtYXJnaW4tdG9wOjVweDsgbWFyZ2luLWJvdHRvbTo1cHg7fSAudml2eyBtYXJnaW4tdG9wOjVweDsgbWFyZ2luLWxlZnQ6NXB4OyBmb250LXNpemU6MS41cmVtIDsgY29sb3I6I2ZmZjsgY29sb3I6I2ZmZmZmZjsgdGV4dC1hbGlnbjpqdXN0aWZ5O30gLnR3eyB3aWR0aDoyNjBweDsgaGVpZ2h0OjQwcHg7IGZsb2F0OnJpZ2h0OyBtYXJnaW4tdG9wOjVweDsgdGV4dC1hbGlnbjpyaWdodDt9IC5FTkdMSVNIIC52aXZ7dGV4dC10cmFuc2Zvcm06Y2FwaXRhbGl6ZTt9IC5NYWluQm94TGF5ZXIgLnZpdiB7IG1hcmdpbi1sZWZ0OjA7IH0gLnNvY2lhbC1zaGFyaW5neyB3aWR0aDoxMDAlOyBjbGVhcjpib3RoOyBmbG9hdDpyaWdodDsgbWFyZ2luLXRvcDo1cHg7IH0gLnNvY2lhbC1zaGFyaW5nID4gZGl2LnNvY2lhbHsgZmxvYXQ6cmlnaHQ7IHBhZGRpbmctbGVmdDo1cHg7IH0gLnNvY2lhbC1zaGFyaW5nID4gZGl2LnNvY2lhbDpsYXN0LWNoaWxkeyBwYWRkaW5nLWxlZnQ6MDsgfSAuc29jaWFsLXNoYXJpbmcgPiBkaXYuc29jaWFsOmZpcnN0LWNoaWxkeyBwYWRkaW5nLXJpZ2h0OjVweDsgfSAuTWFpbkJveExheWVyIC5zb2NpYWwtc2hhcmluZyA+IGRpdi5zb2NpYWw6Zmlyc3QtY2hpbGR7IHBhZGRpbmctcmlnaHQ6MDsgfSAjZm9vdGVyRGl2IC5hZGQsICNmb290ZXJEaXYgLmFkZCBhIHsgY29sb3I6dmFyKC0tZm9vdGVyLWl0ZW1zLWxpbmstY29sb3IpOyB9ICNmb290ZXJEaXYgLmFkZCAub3JneyBjb2xvcjp2YXIoLS1mb290ZXItbGluay10aXRsZS1jb2wpOyB9IC5wb3VyeyB3aWR0aDo3MjVweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7fSAucGFnZW5ve3dpZHRoOjIzNnB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgbWFyZ2luLWxlZnQ6NXB4OyBwYWRkaW5nOjA7IHRleHQtdHJhbnNmb3JtOm5vbmU7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgbWFyZ2luLXRvcDoxMHB4OyB9IC5wYWdlbm8gdWx7IGxpc3Qtc3R5bGUtdHlwZTpub25lOyBtYXJnaW46MCAwIDE1cHggMDsgcGFkZGluZzowOyB3aWR0aDoyMzZweDsgdGV4dC10cmFuc2Zvcm06bm9uZTsgZm9udC13ZWlnaHQ6bm9ybWFsOyB9IC5wYWdlbm8gdWwgbGl7IGxpc3Qtc3R5bGUtdHlwZTpub25lOyBtYXJnaW46MDtkaXNwbGF5OmJsb2NrOyBmbG9hdDpub25lOyB3aWR0aDoyMzZweDsgdGV4dC10cmFuc2Zvcm06bm9uZTsgZm9udC13ZWlnaHQ6bm9ybWFsO30gLnBhZ2VubyB1bCBsaSBheyB3aWR0aDoyMzdweDsgbWFyZ2luOjA7IGRpc3BsYXk6YmxvY2s7IGZsb2F0Om5vbmU7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IGNvbG9yOnZhcigtLWZvb3Rlci1pdGVtcy1saW5rLWNvbG9yKTsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgbGluZS1oZWlnaHQ6MThweDsgdGV4dC10cmFuc2Zvcm06bm9uZTsgdGV4dC1hbGlnbjpsZWZ0OyB0ZXh0LXRyYW5zZm9ybTpub25lOyB9IC5wYWdlbm8gdWwgbGkgc3BhbiwgLnBhZ2VubyB1bCBsaSBhLmZ0aXRsZXsgd2lkdGg6MjM2cHg7IG1hcmdpbjowOyBkaXNwbGF5OmJsb2NrOyBmbG9hdDpub25lOyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojZmZmOyBjb2xvcjp2YXIoLS1mb290ZXItbGluay10aXRsZS1jb2wpOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgbWFyZ2luLWJvdHRvbToxMHB4OyBmb250LXdlaWdodDpub3JtYWw7IGxpbmUtaGVpZ2h0OjE4cHg7IHRleHQtYWxpZ246bGVmdDsgfSAucGFnZW5vIHVsIGxpIGEuZnRpdGxlOmhvdmVyeyBtYXJnaW4tYm90dG9tOjEwcHg7fSAucGFnZW5vIHVsIGxpIGE6aG92ZXJ7IGxpc3Qtc3R5bGUtdHlwZTpub25lOyBtYXJnaW46MDsgY29sb3I6dmFyKC0tZm9vdGVyLWxpbmstdGl0bGUtY29sKTsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IGRpc3BsYXk6YmxvY2s7IGxpbmUtaGVpZ2h0OjE4cHg7fSAucGFnZW5vIGxpIGEuYWN0aXZleyBsaXN0LXN0eWxlLXR5cGU6bm9uZTsgbWFyZ2luOjA7IGNvbG9yOiM5MTkxOTE7IHRleHQtZGVjb3JhdGlvbjpub25lOyBkaXNwbGF5OmJsb2NrOyBsaW5lLWhlaWdodDoxOHB4O30gLkVOR0xJU0ggLnBhZ2VubyB1bCBsaSBhe3RleHQtdHJhbnNmb3JtOmNhcGl0YWxpemU7fSAuYWRkeyB3aWR0aDoyMzBweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IGNvbG9yOiM5MTkxOTE7IHRleHQtZGVjb3JhdGlvbjpub25lOyBmb250LXdlaWdodDpub3JtYWw7IGxpbmUtaGVpZ2h0OjE4cHg7IHRleHQtdHJhbnNmb3JtOm5vbmU7IHRleHQtYWxpZ246cmlnaHQ7IHRleHQtdHJhbnNmb3JtOm5vbmU7IG1hcmdpbi10b3A6MTBweDttYXJnaW4tYm90dG9tOjEwcHg7fSAuY29weXsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODEzcmVtIDsgY29sb3I6IzkxOTE5MTsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgbGluZS1oZWlnaHQ6MThweDsgdGV4dC10cmFuc2Zvcm06bm9uZTsgdGV4dC1hbGlnbjpsZWZ0OyB0ZXh0LXRyYW5zZm9ybTpub25lOyBtYXJnaW4tbGVmdDo1cHg7IG1hcmdpbi10b3A6MjVweDt9IC5jb3B5IGF7IHRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7Y3Vyc29yOnBvaW50ZXI7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IGNvbG9yOiM5MTkxOTE7IGZvbnQtd2VpZ2h0Om5vcm1hbH0gLmNvcHkgYTpob3ZlcnsgY29sb3I6I2Q0ZDRkNDsgZm9udC13ZWlnaHQ6Ym9sZDt9IC5mb290ZXItbGlzdHMgbGkgPiBzcGFuIHsgdGV4dC10cmFuc2Zvcm06dmFyKC0tdHh0LXVwcGVyKTsgfSAjZm9vdGVyV3JhcHBlciAudi1jYXJkLmFkZCB7IGxpbmUtaGVpZ2h0OmluaXRpYWw7IH0gI2Zvb3RlciAuZm9vdGVyLXRpdGxlIHsgZm9udC1zaXplOnZhcigtLWZzNCk7IGNvbG9yOnZhcigtLWZvb3Rlci1saW5rLXRpdGxlLWNvbCwgdmFyKC0td2hpdGUpKTsgfSAuRU5HTElTSCAjZm9vdGVyIC5mb290ZXItdGl0bGUgeyB0ZXh0LXRyYW5zZm9ybTpjYXBpdGFsaXplOyB9ICNmb290ZXIgPiAuZmxleC1ib3ggPiAuZm9vdGVyLWxvZ29fX2NvbnRhaW5lciB7IG1hcmdpbi10b3A6MDsgbWFyZ2luLXJpZ2h0OnZhcigtLXM1KTsgfSAjZm9vdGVyID4gLmZsZXgtYm94ID4gLmZvb3Rlci1sb2dvX19jb250YWluZXIgaW1nIHsgbWF4LXdpZHRoOjEwMCU7IG1heC1oZWlnaHQ6MTUwcHg7IH0gLnNvY2lhbC1tZWRpYS1pY29ucyB7IGRpc3BsYXk6ZmxleDsgZmxleC1kaXJlY3Rpb246cm93OyBqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmQ7IHRleHQtYWxpZ246cmlnaHQ7IH0gLmRlYWxlci1hbGlnbi1sZWZ0IC5zb2NpYWwtbWVkaWEtaWNvbnMgeyB0ZXh0LWFsaWduOmxlZnQ7IGp1c3RpZnktY29udGVudDpmbGV4LXN0YXJ0OyB9IC5zb2NpYWwtbWVkaWEtaWNvbnMgLnNvY2lhbC1pY29ucyB7IHdpZHRoIDphdXRvOyBoZWlnaHQ6YXV0bzsgbWFyZ2luOjAgNHB4OyB9ICNmb290ZXIgYS5zb2NpYWwtbGluayA+IHN2ZyB7IGhlaWdodDoyMnB4OyBtYXJnaW4tbGVmdDozcHg7IH0gaGVhZGVyIC5oZWFkZXItc29jaWFsICNzb2NpYWxfbWVkaWFfaWNvbnNfZGl2ID4gYSA+IHN2ZyB7IGhlaWdodDoyMXB4OyBtYXJnaW4tdG9wOjRweDsgfSAuc29jaWFsLW1lZGlhLWljb25zIC5zb2NpYWwtaWNvbnMgLmZhYiB7IG1hcmdpbi10b3A6MDsgZm9udC1zaXplIDoxLjllbTsgY29sb3IgOnZhcigtLWZvb3Rlci1saW5rLXRpdGxlLWNvbCk7IH0gLmRpdlNwYW4uZGl2U3BhbjMgPiAuZm9vdGVyLWxvZ29fX2NvbnRhaW5lciB7IG1hcmdpbi10b3A6MXJlbTsgdGV4dC1hbGlnbjpyaWdodDsgfSAuZGVhbGVyLWFsaWduLWxlZnQgLmZvb3Rlci1sb2dvX19jb250YWluZXIgeyB0ZXh0LWFsaWduOmxlZnQ7IH0gLmRpdlNwYW4uZGl2U3BhbjMgPiAuZm9vdGVyLWxvZ29fX2NvbnRhaW5lciBpbWcgeyBtYXgtd2lkdGg6MTgwcHg7IG1heC1oZWlnaHQ6MTAwcHg7IH0gQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOjEwMjRweCkgeyAuaGVhZGVyLXNlY3Rpb24gLnBob25lLnBob25lX2xlZnQgeyBwYWRkaW5nLWxlZnQ6MTBweDsgfSAjZm9vdGVyIHsgcGFkZGluZy1sZWZ0OjEwcHg7IHBhZGRpbmctcmlnaHQ6MTBweDsgfSB9IEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDo5OTlweCkgeyAjTWFpbk1lbnVfU0VBUkNIX0JBUiB7IGRpc3BsYXk6bm9uZTsgfSAudXBfbWVudSB1bC5uYXYgPiBsaS5maXJzdE1lbnUgeyBwYWRkaW5nLWxlZnQ6MTBweDsgfSAudXBfbWVudSB1bC5uYXYgPiBsaTpudGgtb2YtdHlwZSgyKSB7IHBhZGRpbmctcmlnaHQ6MTBweDsgfSAudXBfbWVudSB1bC5uYXYgPiBsaTpudGgtb2YtdHlwZSgyKSA+IHVsLnN1YiB7IHJpZ2h0OjEwcHg7IH0gLmxhbmd1YWdlQmFyIGRpdjpmaXJzdC1vZi10eXBlIHsgbWFyZ2luLXJpZ2h0OjEwcHg7IH0gLm1lbnU3IC5maW5hbmNlLW1lbnUtZnJlZWNyZWRpdC5jZW50ZXIgeyByaWdodDotMTYwcHggIWltcG9ydGFudDsgbGVmdDphdXRvOyB9IC5tZW51OCAuZmluYW5jZS1tZW51LWZyZWVjcmVkaXQuY2VudGVyIHsgcmlnaHQ6LTE2MHB4ICFpbXBvcnRhbnQ7IGxlZnQ6YXV0bzsgfSAubWVudTUgLmZpbmFuY2UtbWVudS1mcmVlY3JlZGl0LmNlbnRlciB7IHJpZ2h0Oi0zMDBweCAhaW1wb3J0YW50OyBsZWZ0OmF1dG87IH0gfSAuZGl2U3Bhbi5wYWdlbm8geyBtYXJnaW4tbGVmdDowOyB9IC5kaXZTcGFuLnBhZ2VubyB1bCBsaSBzcGFuLCAuZGl2U3Bhbi5wYWdlbm8gdWwgbGkgYS5mdGl0bGUgeyBmb250LXNpemU6MC45MzhyZW0gOyBtYXgtd2lkdGg6MjI1cHg7IH0gLmRpdlNwYW4ucGFnZW5vIHVsIGxpIGEgeyBmb250LXNpemU6MC44NzVyZW0gOyB9IC5hZHIgeyBsaW5lLWhlaWdodDoxLjJyZW07IG1hcmdpbjowLjVyZW0gMDsgfSAjZm9vdGVyLmRlYWxlci1wb3NpdGlvbi1sZWZ0IC5mb290ZXItdGl0bGVfX2NvbnRhaW5lciB7IG1hcmdpbi1ib3R0b206MnJlbTsgfSAjZm9vdGVyLmRlYWxlci1wb3NpdGlvbi1sZWZ0IC5kaXZTcGFuMyB7IGZsb2F0OmxlZnQ7IG1hcmdpbi10b3A6MTVweDsgcGFkZGluZy1yaWdodDozMHB4OyB0ZXh0LWFsaWduOmxlZnQ7IH0gI2Zvb3Rlci5kZWFsZXItcG9zaXRpb24tbGVmdCAuZGl2U3BhbjkgeyBmbG9hdDpyaWdodDsgfSAjZm9vdGVyLmRlYWxlci1wb3NpdGlvbi1sZWZ0IC5zb2NpYWwtc2hhcmluZyB7IGZsb2F0OnVuc2V0OyBjbGVhcjp1bnNldDsgbWFyZ2luOjA7IH0gI2Zvb3Rlci5kZWFsZXItcG9zaXRpb24tbGVmdCAuc29jaWFsIHsgZmxvYXQ6bGVmdDsgfSAjZm9vdGVyLmRlYWxlci1wb3NpdGlvbi1yaWdodC5kZWFsZXItYWxpZ24tbGVmdCAuc29jaWFsLXNoYXJpbmcgeyB3aWR0aDoyNSU7IGZsb2F0OmxlZnQ7IHBhZGRpbmctbGVmdDo3NSU7IH0gI2Zvb3Rlci5kZWFsZXItcG9zaXRpb24tcmlnaHQuZGVhbGVyLWFsaWduLWxlZnQgLnNvY2lhbCB7IGZsb2F0OmxlZnQ7IG1hcmdpbi1sZWZ0OjFyZW07IH0gI2Zvb3Rlci5kZWFsZXItcG9zaXRpb24tcmlnaHQuZGVhbGVyLWFsaWduLWxlZnQgLnNvY2lhbDpmaXJzdC1jaGlsZCB7IG1hcmdpbjowOyBwYWRkaW5nOjA7IH0gI2Zvb3RlciAuaWNvbi10ZXh0eyBtYXJnaW4tYm90dG9tOi40cmVtOyB9ICNmb290ZXIgLmljb24tdGV4dCBzcGFueyB3aWR0aDoyMHB4OyBwYWRkaW5nOjAgIWltcG9ydGFudDsgfSAjZm9vdGVyIC5mbi5vcmcgeyBsaW5lLWhlaWdodDoyLjA2MjVyZW07IH0gLnNtYWxscGljX2JveHt3aWR0aDozMjlweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IG1hcmdpbjowO30gLnNtYWxscGljNDN7d2lkdGg6NDNweDsgaGVpZ2h0OjMxcHg7IGZsb2F0OmxlZnQ7IG1hcmdpbjowIDVweCAwIDA7IGJvcmRlcjoycHggc29saWQgI0ZGRkZGRjt9IC5kZXRhaWxze3dpZHRoOjgxcHg7IGhlaWdodDozMHB4OyBkaXNwbGF5OmJsb2NrOyB9IGEuZGV0YWlsc3t3aWR0aDo4MXB4OyBoZWlnaHQ6MzBweDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9kZXRhaWxzLnBuZykgbGVmdCB0b3Agbm8tcmVwZWF0O30gYTpob3Zlci5kZXRhaWxze3dpZHRoOjgxcHg7IGhlaWdodDozMHB4OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2RldGFpbHMucG5nKSBsZWZ0IC0zMnB4IG5vLXJlcGVhdDt9IC5iaWdfcGljYm94e21pbi1oZWlnaHQ6MTEwcHg7d2lkdGg6MTQ2cHg7fSAuYmlnX3BpY2JveCBpbWd7IGRpc3BsYXk6YmxvY2s7IH0gLnBpY2JveF92aWRlb2J0bl9lbiwgLnBpY2JveF92aWRlb2J0bl9mciB7ZGlzcGxheTpibG9jaztoZWlnaHQ6NDVweDt9IC5waWNib3hfdmlkZW9idG5fZW4ge2JhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL3ZpZGVvLWJ0bi10aHVtYl9lbi5wbmcnKSBuby1yZXBlYXQgc2Nyb2xsIDAgMCAvIDEwMCUgYXV0byB0cmFuc3BhcmVudDt9IC5waWNib3hfdmlkZW9idG5fZnIge2JhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL3ZpZGVvLWJ0bi10aHVtYl9mci5wbmcnKSBuby1yZXBlYXQgc2Nyb2xsIDAgMCAvIDEwMCUgYXV0byB0cmFuc3BhcmVudDt9IC5waWNib3hfdmlkZW9idG5fZW46aG92ZXIge2JhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL3ZpZGVvLWJ0bi10aHVtYl9lbl9ob3Zlci5wbmcnKSBuby1yZXBlYXQgc2Nyb2xsIDAgMCAvIDEwMCUgYXV0byB0cmFuc3BhcmVudDt9IC5waWNib3hfdmlkZW9idG5fZnI6aG92ZXIge2JhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL3ZpZGVvLWJ0bi10aHVtYl9mcl9ob3Zlci5wbmcnKSBuby1yZXBlYXQgc2Nyb2xsIDAgMCAvIDEwMCUgYXV0byB0cmFuc3BhcmVudDt9IC5iaWdfcGljYm94X3dyYXBwZXIgeyB3aWR0aDoxNDZweDsgZmxvYXQ6bGVmdDsgbWFyZ2luOjAgMTBweCAwcHggMjFweDsgfSAudGV4dF90aXRsZSBheyBkaXNwbGF5OmJsb2NrO3RleHQtZGVjb3JhdGlvbjpub25lOyB3aWR0aDozMjlweDsgaGVpZ2h0OmF1dG87IG1hcmdpbjowOyBwYWRkaW5nLWJvdHRvbTo1cHg7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiM0MTQxNDE7IGZvbnQtd2VpZ2h0OmJvbGQ7fSAudGV4dF90aXRsZTJ7d2lkdGg6MzI5cHg7IGhlaWdodDozMnB4OyBmbG9hdDpsZWZ0OyBtYXJnaW46MCA7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiM0MTQxNDE7fSAuc29sZF9jYXJfbm90ZXtiYWNrZ3JvdW5kLWNvbG9yOiMxRTFFMUU7IGJvcmRlci1yYWRpdXM6NXB4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6NXB4OyBjb2xvcjojRkZGOyB3aWR0aDoxMDAlOyBwYWRkaW5nOjEwcHggMDsgdGV4dC1hbGlnbjpjZW50ZXI7IG1hcmdpbi10b3A6MTVweDt9IC5zb2xkX2Nhcl9ub3RlIGEge2NvbG9yOiNGRkY7fSAuc29sZF9jYXJfbm90ZSBhOmhvdmVyIHtjb2xvcjojQkJCO30gLnRleHRfdGl0bGUze3dpZHRoOjMyOXB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgbWFyZ2luOjAgOyBwYWRkaW5nLWJvdHRvbTo3cHg7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiM0ODQ4NDg7fSAudGV4dF9ib3gye3dpZHRoOjMyOXB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgbWFyZ2luOjAgMHB4IDBweCAwcHg7IH0gLm1haW5fcGljYm94e3dpZHRoOjY3MXB4OyBtaW4taGVpZ2h0OjE3MHB4OyBmbG9hdDpsZWZ0OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2xpbmUucG5nKSBsZWZ0IGJvdHRvbSByZXBlYXQteDsgYmFja2dyb3VuZC1wb3NpdGlvbjpib3R0b207IHBhZGRpbmc6MDsgbWFyZ2luOjAgO30gLmJveDJfZGV0YWlsc19mb290ZXIye3dpZHRoOjY4MXB4OyBoZWlnaHQ6MTVweDsgZmxvYXQ6bGVmdDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9ib3hfZm9vdGVyLnBuZykgbGVmdCB0b3Agbm8tcmVwZWF0O30gLmJveDJfZGV0YWlsc19taWRFeHt3aWR0aDoxMDAlOyBoZWlnaHQ6YXV0bzsgYmFja2dyb3VuZDpub25lOyBwYWRkaW5nOjAgMHB4O2hlaWdodDo4NXB4O30gLmJveDJfZGV0YWlsc190ZXh0IHNwYW57IHRleHQtYWxpZ246Y2VudGVyOyBmb250LXNpemU6MS4xMjVyZW0gOyBjb2xvcjojRkZGRkZGOyBmb250LXdlaWdodDpib2xkO30gLmJveDJfZGV0YWlsc19mb290ZXIyMnt3aWR0aDo5NzFweDsgaGVpZ2h0OjE1cHg7IGZsb2F0OmxlZnQ7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvYm94X2Zvb3Rlci5wbmcpIGxlZnQgdG9wIG5vLXJlcGVhdDtiYWNrZ3JvdW5kLXNpemU6OTcxcHggYXV0bzt9IC5ib3gxNzB7cG9zaXRpb246cmVsYXRpdmU7d2lkdGg6NjcxcHg7IG1pbi1oZWlnaHQ6MTcwcHg7IGZsb2F0OmxlZnQ7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvbGluZS5wbmcpIGxlZnQgYm90dG9tIG5vLXJlcGVhdDsgYmFja2dyb3VuZC1wb3NpdGlvbjpib3R0b207IHBhZGRpbmc6MDsgbWFyZ2luOjAgMHB4IDEwcHggMDt9IC5jdXN0b21Cb3hCYXNpY3sgd2lkdGg6MjQxcHg7IGhlaWdodDoxMTZweDsgZmxvYXQ6bGVmdDsgcGFkZGluZzo1cHggMCAwIDA7IGJhY2tncm91bmQtcG9zaXRpb246bGVmdCB0b3A7IGJhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDsgYmFja2dyb3VuZC1zaXplOjI0MXB4IDEyMXB4OyBmb250LXNpemU6MS4xODhyZW0gOyBjb2xvcjojMTkxOTE5OyB0ZXh0LWFsaWduOmNlbnRlcjsgZm9udC13ZWlnaHQ6bm9ybWFsOyBjdXJzb3I6cG9pbnRlcjsgfSAuY3VzdG9tQm94QmFzaWM6aG92ZXJ7IGNvbG9yOiNmZmY7IH0gLmN1c3RvbTUgeyBiYWNrZ3JvdW5kLWltYWdlOnVybCgvaW1hZ2VzL2JveDIyX2hvdmVyLnBuZyk7IH0gLmN1c3RvbTU1IHsgYmFja2dyb3VuZC1pbWFnZTp1cmwoL2ltYWdlcy9ib3gyMi5wbmcpOyB9IC5jdXN0b202NjUgeyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2JveDIzX2hvdmVyLnBuZyk7IH0gLmN1c3RvbTY2NTUgeyBiYWNrZ3JvdW5kLWltYWdlOnVybCgvaW1hZ2VzL2JveDIzLnBuZyk7IH0gLmN1c3RvbTY3NSB7IGJhY2tncm91bmQtaW1hZ2U6dXJsKC9pbWFnZXMvYm94MjcucG5nKTsgfSAuY3VzdG9tNjc1NSB7IGJhY2tncm91bmQtaW1hZ2U6dXJsKC9pbWFnZXMvYm94MjdfaG92ZXIucG5nKTsgfSAuY3VzdG9tNjg1IHsgYmFja2dyb3VuZC1pbWFnZTp1cmwoL2ltYWdlcy9ib3gyOC5wbmcpOyB9IC5jdXN0b202ODU1IHsgYmFja2dyb3VuZC1pbWFnZTp1cmwoL2ltYWdlcy9ib3gyOF9ob3Zlci5wbmcpOyB9IC5pbWFnZV9yaWJib24geyBwb3NpdGlvbjphYnNvbHV0ZTsgbGVmdDotNXB4OyB0b3A6LTRweDsgei1pbmRleDoxOyBvdmVyZmxvdzpoaWRkZW47IHdpZHRoOjExMnB4OyBoZWlnaHQ6MTEycHg7IHRleHQtYWxpZ246cmlnaHQ7IH0gLmltYWdlX3JpYmJvbiBzcGFuIHsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6I2ZmZmZmZjsgdGV4dC1hbGlnbjpjZW50ZXI7IGxpbmUtaGVpZ2h0OjI4cHg7IHRyYW5zZm9ybTpyb3RhdGUoLTQ1ZGVnKTsgLXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKC00NWRlZyk7IHdpZHRoOjE0OHB4OyBkaXNwbGF5OmJsb2NrOyBiYWNrZ3JvdW5kOiM5MTBhMmQ7IGJveC1zaGFkb3c6MCAzcHggMTBweCAtNXB4IHJnYmEoMCwgMCwgMCwgMSk7IHBvc2l0aW9uOmFic29sdXRlOyB0b3A6MzBweDsgbGVmdDotMzBweDsgfSAuaW1hZ2VfcmliYm9uIHNwYW46OmJlZm9yZSB7IGNvbnRlbnQ6IiI7IHBvc2l0aW9uOmFic29sdXRlOyBsZWZ0OjBweDsgdG9wOjEwMCU7IHotaW5kZXg6LTE7IGJvcmRlci1sZWZ0OjNweCBzb2xpZCAjOTEwYTJkOyBib3JkZXItcmlnaHQ6M3B4IHNvbGlkIHRyYW5zcGFyZW50OyBib3JkZXItYm90dG9tOjNweCBzb2xpZCB0cmFuc3BhcmVudDsgYm9yZGVyLXRvcDozcHggc29saWQgIzkxMGEyZDsgfSAuaW1hZ2VfcmliYm9uIHNwYW46OmFmdGVyIHsgY29udGVudDoiIjsgcG9zaXRpb246YWJzb2x1dGU7IHJpZ2h0OjBweDsgdG9wOjEwMCU7IHotaW5kZXg6LTE7IGJvcmRlci1sZWZ0OjNweCBzb2xpZCB0cmFuc3BhcmVudDsgYm9yZGVyLXJpZ2h0OjNweCBzb2xpZCAjOTEwYTJkOyBib3JkZXItYm90dG9tOjNweCBzb2xpZCB0cmFuc3BhcmVudDsgYm9yZGVyLXRvcDozcHggc29saWQgIzkxMGEyZDsgfSAuaW1hZ2VfcmliYm9uX3ZkcCB7IHBvc2l0aW9uOmFic29sdXRlOyBsZWZ0Oi01cHg7IHRvcDotNnB4OyBvdmVyZmxvdzpoaWRkZW47IHdpZHRoOjE5NHB4OyBoZWlnaHQ6MTk0cHg7IHRleHQtYWxpZ246cmlnaHQ7IHotaW5kZXg6NDA7IH0gLmltYWdlX3JpYmJvbl92ZHAgc3BhbiB7IGZvbnQtc2l6ZToxLjA2M3JlbSA7IGNvbG9yOiNmZmZmZmY7IHRleHQtYWxpZ246Y2VudGVyOyBsaW5lLWhlaWdodDozNnB4OyB0cmFuc2Zvcm06cm90YXRlKC00NWRlZyk7IC13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgtNDVkZWcpOyB3aWR0aDoyNzNweDsgZGlzcGxheTpibG9jazsgYmFja2dyb3VuZDojOTEwYTJkOyBib3gtc2hhZG93OjAgM3B4IDEwcHggLTVweCByZ2JhKDAsIDAsIDAsIDEpOyBwb3NpdGlvbjphYnNvbHV0ZTsgdG9wOjY3cHg7IGxlZnQ6LTUxcHg7IH0gLmltYWdlX3JpYmJvbl92ZHAgc3Bhbjo6YmVmb3JlIHsgY29udGVudDoiIjsgcG9zaXRpb246YWJzb2x1dGU7IGxlZnQ6MHB4OyB0b3A6MTAwJTsgei1pbmRleDotMTsgYm9yZGVyLWxlZnQ6M3B4IHNvbGlkICMxMDEwMTA7OyBib3JkZXItcmlnaHQ6M3B4IHNvbGlkIHRyYW5zcGFyZW50OyBib3JkZXItYm90dG9tOjNweCBzb2xpZCB0cmFuc3BhcmVudDsgYm9yZGVyLXRvcDozcHggc29saWQgIzEwMTAxMDs7IH0gLmltYWdlX3JpYmJvbl92ZHAgc3Bhbjo6YWZ0ZXIgeyBjb250ZW50OiIiOyBwb3NpdGlvbjphYnNvbHV0ZTsgcmlnaHQ6MHB4OyB0b3A6MTAwJTsgei1pbmRleDotMTsgYm9yZGVyLWxlZnQ6M3B4IHNvbGlkIHRyYW5zcGFyZW50OyBib3JkZXItcmlnaHQ6M3B4IHNvbGlkICMxMDEwMTA7OyBib3JkZXItYm90dG9tOjNweCBzb2xpZCB0cmFuc3BhcmVudDsgYm9yZGVyLXRvcDozcHggc29saWQgIzEwMTAxMDs7IH0gLnJpYmJvbi1jb250YWluZXIgeyB3aWR0aCA6MzAwcHg7IGhlaWdodCA6MzAwcHg7IG92ZXJmbG93IDpoaWRkZW47IHBvc2l0aW9uIDphYnNvbHV0ZTsgdG9wIDowOyBsZWZ0IDowOyB9IC5yaWJib24tY29udGFpbmVyIC5jb3JuZXItcmliYm9uIHsgei1pbmRleCA6NTU1OyBtYXJnaW4gOjA7IHBhZGRpbmcgOjAuNXJlbSAwICFpbXBvcnRhbnQ7IGJveC1zaGFkb3cgOjAgM3B4IDEwcHggLTVweCByZ2JhKDAsIDAsIDAsIDEpOyBmb250LXNpemUgOjE3cHg7IGxpbmUtaGVpZ2h0IDoyM3B4OyB0ZXh0LWFsaWduIDpjZW50ZXI7IHBvc2l0aW9uIDphYnNvbHV0ZTsgdG9wIDowOyBsZWZ0IDowOyB0cmFuc2Zvcm0gOnRyYW5zbGF0ZVgoLTMwJSkgdHJhbnNsYXRlWSgwJSkgcm90YXRlKC00NWRlZyk7IHRyYW5zZm9ybS1vcmlnaW4gOnRvcCByaWdodDsgYmFja2dyb3VuZCA6IzkxMGEyZDsgY29sb3IgOiNGRkZGRkY7IH0gLnJpYmJvbi1jb250YWluZXIgLmNvcm5lci1yaWJib246YmVmb3JlLCAucmliYm9uLWNvbnRhaW5lciAuY29ybmVyLXJpYmJvbjphZnRlciB7IGNvbnRlbnQgOiIiOyBwb3NpdGlvbiA6YWJzb2x1dGU7IHRvcCA6MDsgbWFyZ2luIDowIC0xcHg7IHdpZHRoIDoxMDAlOyBoZWlnaHQgOjEwMCU7IGJhY2tncm91bmQgOiM5MTBhMmQ7IH0gLnJpYmJvbi1jb250YWluZXIgLmNvcm5lci1yaWJib246YmVmb3JlIHsgbGVmdDoxMDAlOyB9IC5yaWJib24tY29udGFpbmVyIC5jb3JuZXItcmliYm9uOmFmdGVyIHsgcmlnaHQ6MTAwJTsgfSAuc2VhcmNocmlnaHQgeyB3aWR0aDoyODBweDsgaGVpZ2h0OjExNnB4OyBwYWRkaW5nOjVweCAwIDAgMDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9yaWdodC1zZWFyY2gtYm94LnBuZykgbGVmdCB0b3AgcmVwZWF0LXg7IGZvbnQtc2l6ZToxLjE4OHJlbSA7IGNvbG9yOiMxOTE5MTk7IHRleHQtYWxpZ246Y2VudGVyOyBmb250LXdlaWdodDpub3JtYWw7Y3Vyc29yOnBvaW50ZXI7IH0gLnNlYXJjaHJpZ2h0aG92ZXIgeyB3aWR0aDoyODBweDsgaGVpZ2h0OjExNnB4OyBwYWRkaW5nOjVweCAwIDAgMDsgbWFyZ2luOjAgMCAwIDA7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvcmlnaHQtc2VhcmNoLWJveC1ob3Zlci5wbmcpIGxlZnQgdG9wIHJlcGVhdC14OyBmb250LXNpemU6MS4xODhyZW0gOyBjb2xvcjojRkZGRkZGOyB0ZXh0LWFsaWduOmNlbnRlcjsgZm9udC13ZWlnaHQ6bm9ybWFsOyBjdXJzb3I6cG9pbnRlcjsgfSAuc2VhcmNocmlnaHRYWFggeyB3aWR0aDoyODBweDsgaGVpZ2h0OjExNnB4OyBwYWRkaW5nOjVweCAwIDAgMDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9yaWdodC1zZWFyY2gtYm94LnBuZykgbGVmdCB0b3Agbm8tcmVwZWF0ICMyYzdlYzc7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiNGRkZGRkY7IHRleHQtYWxpZ246Y2VudGVyOyBmb250LXdlaWdodDpib2xkO2N1cnNvcjpwb2ludGVyOyBib3JkZXItcmFkaXVzOjhweDsgLW1vei1ib3JkZXItcmFkaXVzOjhweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjhweDsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IC5zZWFyY2hyaWdodGhvdmVyWFhYIHsgd2lkdGg6MjgwcHg7IGhlaWdodDoxMTZweDsgcGFkZGluZzo1cHggMCAwIDA7IG1hcmdpbjowIDAgMCAwOyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL3JpZ2h0LXNlYXJjaC1ib3gtaG92ZXIucG5nKSBsZWZ0IHRvcCBuby1yZXBlYXQgIzJjN2VjNzsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6I0ZGRkZGRjsgdGV4dC1hbGlnbjpjZW50ZXI7IGZvbnQtd2VpZ2h0OmJvbGQ7IGN1cnNvcjpwb2ludGVyOyBib3JkZXItcmFkaXVzOjhweDsgLW1vei1ib3JkZXItcmFkaXVzOjhweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjhweDsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IC5zZWFyY2hyaWdodC10ZXh0eyBtYXJnaW4tbGVmdDoxMDBweDsgdGV4dC1hbGlnbjpsZWZ0OyB3aWR0aDo2MCU7IH0gLnNlYXJjaHJpZ2h0LXRleHQgcHsgbWFyZ2luOjE1cHggMCAwOyB9IC5wYWdlbm8ye2hlaWdodDoyNHB4OyB9IC5wYWdlbm8yIHVseyBsaXN0LXN0eWxlLXR5cGU6bm9uZTsgbWFyZ2luOjA7IHBhZGRpbmc6MDsgdGV4dC10cmFuc2Zvcm06bm9uZTsgfSAucGFnZW5vMiB1bCBsaXsgbGlzdC1zdHlsZS10eXBlOm5vbmU7IG1hcmdpbjowOyBkaXNwbGF5OmlubGluZTt9IC5wYWdlbm8yIHVsIGxpIGF7IGxpc3Qtc3R5bGUtdHlwZTpub25lOyBtYXJnaW46MDsgZGlzcGxheTpibG9jazsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzMyMzIzMjsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHBhZGRpbmc6MCA3cHg7IG1hcmdpbi1yaWdodDoycHg7IGZvbnQtd2VpZ2h0OmJvbGQ7IGxpbmUtaGVpZ2h0OjI0cHg7IHRleHQtdHJhbnNmb3JtOm5vbmU7IHRleHQtYWxpZ246Y2VudGVyOyB0ZXh0LXRyYW5zZm9ybTpub25lOyBiYWNrZ3JvdW5kOiNiM2I0YjU7IGZsb2F0OmxlZnQ7IC1tb3otYm9yZGVyLXJhZGl1czo0cHg7IC13ZWJraXQtYm9yZGVyLXJhZGl1czo0cHg7IGJvcmRlci1yYWRpdXM6NHB4OyAta2h0bWwtYm9yZGVyLXJhZGl1czo0cHg7fSAucGFnZW5vMiB1bCBsaSBhOmhvdmVyeyBsaXN0LXN0eWxlLXR5cGU6bm9uZTsgbWFyZ2luOjA7IGRpc3BsYXk6YmxvY2s7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiNGRkZGRkY7IHRleHQtZGVjb3JhdGlvbjpub25lOyBwYWRkaW5nOjAgN3B4OyBtYXJnaW4tcmlnaHQ6MnB4OyBmb250LXdlaWdodDpib2xkOyBsaW5lLWhlaWdodDoyNHB4OyB0ZXh0LXRyYW5zZm9ybTpub25lOyB0ZXh0LWFsaWduOmNlbnRlcjsgdGV4dC10cmFuc2Zvcm06bm9uZTsgYmFja2dyb3VuZDojMjgyODI4OyBmbG9hdDpsZWZ0OyAtbW96LWJvcmRlci1yYWRpdXM6NHB4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6NHB4OyBib3JkZXItcmFkaXVzOjRweDsgLWtodG1sLWJvcmRlci1yYWRpdXM6NHB4O30gLnBhZ2VubzIgbGkgYS5hY3RpdmV7IGxpc3Qtc3R5bGUtdHlwZTpub25lOyBtYXJnaW46MDsgZGlzcGxheTpibG9jazsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6I0ZGRkZGRjsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHBhZGRpbmc6MCA3cHg7IG1hcmdpbi1yaWdodDoycHg7IGZvbnQtd2VpZ2h0OmJvbGQ7IGxpbmUtaGVpZ2h0OjI0cHg7IHRleHQtdHJhbnNmb3JtOm5vbmU7IHRleHQtYWxpZ246Y2VudGVyOyB0ZXh0LXRyYW5zZm9ybTpub25lOyBiYWNrZ3JvdW5kOiMyODI4Mjg7IGZsb2F0OmxlZnQ7IC1tb3otYm9yZGVyLXJhZGl1czo0cHg7IC13ZWJraXQtYm9yZGVyLXJhZGl1czo0cHg7IGJvcmRlci1yYWRpdXM6NHB4OyAta2h0bWwtYm9yZGVyLXJhZGl1czo0cHg7fSAubWFpbl9ib3h7d2lkdGg6OTYwcHg7IG1hcmdpbjowIGF1dG87fSAubWFpbl9sZWZ0X2JveHt3aWR0aDo2NzBweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7cGFkZGluZy1yaWdodDoxMHB4O30gLm1haW5fbGVmdF9ib3ggdWx7cGFkZGluZzowcHg7fSAuYm94X21pZF9yb3VuZCB7IGJhY2tncm91bmQtY29sb3I6cmdiKDI1NSwyNTUsMjU1KTsgLW1zLWZpbHRlcjpwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuQWxwaGEoT3BhY2l0eT0xMDApOyBiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsMSk7IGJvcmRlci1yYWRpdXM6NXB4OyBib3gtc2hhZG93Om5vbmU7IGZsb2F0OmxlZnQ7IGhlaWdodDphdXRvOyBtYXJnaW4tdG9wOjEwcHg7IH0gLmJveF90b3Bfcm91bmQgeyBkaXNwbGF5Om5vbmU7IH0gLmJveDJfZGV0YWlsc19mb290ZXIyIHsgZGlzcGxheTpub25lOyB9IC5kZXRhaWxzX2JveCBpbWcudmlweyBtYXJnaW4tdG9wOi00OHB4OyB3aWR0aDoxNDBweDsgYm9yZGVyOjFweDsgYm9yZGVyLXJhZGl1czo0cHg7IH0gLmJveF90b3Bfcm91bmQye3dpZHRoOjk3MXB4OyBoZWlnaHQ6MTVweDsgZmxvYXQ6bGVmdDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9ib3hfdG9wLnBuZykgbGVmdCB0b3Agbm8tcmVwZWF0O2JhY2tncm91bmQtc2l6ZTo5NzFweCBhdXRvOyBtYXJnaW4tdG9wOjVweDt9IC5ib3hfbWlkX3JvdW5kMnt3aWR0aDo5NzFweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvYm94X21pZC5wbmcpIGxlZnQgdG9wIHJlcGVhdC15O2JhY2tncm91bmQtc2l6ZTo5NzFweCBhdXRvOyBwYWRkaW5nOjAgNXB4O30gLnBhZ2VfbmFtZXt3aWR0aDo2NTBweDsgaGVpZ2h0OjMwcHg7IGZsb2F0OmxlZnQ7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvc2hvLnBuZykgY2VudGVyIGJvdHRvbSBuby1yZXBlYXQ7IGJhY2tncm91bmQtcG9zaXRpb246Ym90dG9tOyBwYWRkaW5nOjAgMHB4IDBweCAyMXB4OyBsaW5lLWhlaWdodDozMHB4OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojNDE0MTQxO30gLnBhZ2VfbmFtZSBheyBsaW5lLWhlaWdodDozMHB4OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojNDE0MTQxOyB0ZXh0LXRyYW5zZm9ybTpub25lOyB0ZXh0LWRlY29yYXRpb246bm9uZTt9IC5wYWdlX25hbWUgYTpob3ZlcnsgbGluZS1oZWlnaHQ6MzBweDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzAwNTg5YzsgdGV4dC10cmFuc2Zvcm06bm9uZTsgdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTt9IHRhYmxlLnZlaGljbGVMaXN0VGFibGUgYXtkaXNwbGF5OnRhYmxlLWNlbGw7IHZlcnRpY2FsLWFsaWduOm1pZGRsZTtsaW5lLWhlaWdodDoxLjI7fSB0YWJsZS52ZWhpY2xlTGlzdFRhYmxlIGE6aG92ZXJ7ZGlzcGxheTp0YWJsZS1jZWxsOyB2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7bGluZS1oZWlnaHQ6MS4yO30gLlBvcnNjaGUye3dpZHRoOjEwMCU7aGVpZ2h0OjMxcHg7IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MCAwcHggMjBweCAyMXB4OyBtYXJnaW46MTVweCAwIDI1cHggMDsgbGluZS1oZWlnaHQ6MzFweDsgZm9udC1zaXplOjEuODc1cmVtIDsgY29sb3I6IzQxNDE0MTtkaXNwbGF5OmlubGluZX0gLlBvcnNjaGUyIGgxe2ZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zaXplOjEuODc1cmVtIDsgY29sb3I6IzQxNDE0MTt9IC5UcmllcnBhcnsgZm9udC1zaXplOjAuNzVyZW0gOyBjb2xvcjojNUI2OTlDOyBmb250LXdlaWdodDpub3JtYWw7cGFkZGluZy1sZWZ0OjVweDt9IC5zZWxlY3RlZF9ib3gye3dpZHRoOjE3NXB4OyBoZWlnaHQ6MzFweDsgZmxvYXQ6bGVmdDsgcGFkZGluZzowIDBweCAwcHggMHB4OyBtYXJnaW46MTVweCAwOyBsaW5lLWhlaWdodDozMXB4OyBmb250LXNpemU6MS44NzVyZW0gOyBjb2xvcjojNDE0MTQxO30gLnNlbGVjdGVkX29yZGVyYnl7d2lkdGg6MTM1cHg7IGZsb2F0OnJpZ2h0OyBwYWRkaW5nOjAgMHB4IDBweCAwcHg7IG1hcmdpbjoxMHB4IDEwcHggMHB4IDBweDsgZm9udC1zaXplOjEuODc1cmVtIDsgY29sb3I6IzQxNDE0MTt9IC5wcml4e3dpZHRoOjc5cHg7IGhlaWdodDo3OHB4OyBmbG9hdDpsZWZ0OyBwb3NpdGlvbjphYnNvbHV0ZTsgei1pbmRleDoxMTsgbWFyZ2luLXRvcDotNHB4OyBtYXJnaW4tbGVmdDotNHB4OyB0b3A6MHB4O30gLnBhZ2VubzV7d2lkdGg6MTAwJTsgaGVpZ2h0OjI0cHg7IG1hcmdpbjozMHB4IDAgMjBweCAwcHg7IHBhZGRpbmc6MDsgZmxvYXQ6bGVmdCB9IC5wYWdlbm82e3dpZHRoOjI1NHB4OyBoZWlnaHQ6MjRweDsgZmxvYXQ6bGVmdDsgdGV4dC1hbGlnbjpyaWdodDt9IC5zdWl2YW50e3dpZHRoOjI4MHB4OyBoZWlnaHQ6MTlweDsgZmxvYXQ6bGVmdDsgcGFkZGluZy10b3A6NXB4O30gLm1haW5fcmlnaHRfYm94e3dpZHRoOjI4MHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDt9IC5ib3g3e3dpZHRoOjI5MHB4OyBoZWlnaHQ6MTJweDsgZmxvYXQ6bGVmdDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9sZWZ0X2JveF90b3AucG5nKSBsZWZ0IHRvcCBuby1yZXBlYXQ7IH0gLmJveDdMaW5re3dpZHRoOjI5MHB4OyBoZWlnaHQ6MTJweDsgZmxvYXQ6bGVmdDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9sZWZ0X2JveF90b3AucG5nKSBsZWZ0IHRvcCBuby1yZXBlYXQ7IH0gLmJveDdfbWlke3dpZHRoOjI4MHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9sZWZ0X2JveF9taWQucG5nKSBsZWZ0IHRvcCByZXBlYXQteTsgcGFkZGluZzowIDJweDt9IC5ib3g3X21pZF9mdWxse3dpZHRoOjk1NnB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgYmFja2dyb3VuZDpub25lIGxlZnQgdG9wIG5vLXJlcGVhdCAwIDAgdHJhbnNwYXJlbnQ7IHBhZGRpbmc6MCAycHggMTVweDsgYm9yZGVyLWJvdHRvbToxcHggc29saWQgI0JCQjt9IC5zaW11bGFyX3ZfYm94eyB3aWR0aDoyNjVweDsgcGFkZGluZzowcHggMHB4IDVweCAxMHB4OyBtYXJnaW4tYm90dG9tOjVweDsgfSAuYm94U2VhcmNoTmV3c3ttYXJnaW4tdG9wOi0zcHg7bWFyZ2luLWxlZnQ6LTVweDt3aWR0aDoyODVweDsgaGVpZ2h0OjEycHg7IGZsb2F0OmxlZnQ7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvbGVmdF9ib3hfdG9wXzI4MC5wbmcpIGxlZnQgdG9wIG5vLXJlcGVhdDt9IC5ib3hTZWFyY2hOZXdzX21pZHttYXJnaW4tbGVmdDotNXB4O3BhZGRpbmc6MHB4O3dpZHRoOjI4MXB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9sZWZ0X2JveF9taWRfMjgwLnBuZykgbGVmdCB0b3AgcmVwZWF0LXk7IH0gLmJveFNlYXJjaE5ld3NfZm9vdGVyMTV7bWFyZ2luLWxlZnQ6LTVweDt3aWR0aDoyODVweDsgaGVpZ2h0OjEycHg7IGZsb2F0OmxlZnQ7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvbGVmdF9ib3hfZm9vdGVyXzI4MC5wbmcpIGxlZnQgdG9wIG5vLXJlcGVhdDt9IC5ib3g3SF9taWR7d2lkdGg6MjgwcHg7IGZsb2F0OmxlZnQ7IHBhZGRpbmctYm90dG9tOjZweDt9IC5SZWNoZXJjaGUyMntoZWlnaHQ6MjBweDsgcGFkZGluZzoxMHB4IDdweDsgZm9udC1zaXplOjEuMTI1cmVtIDsgY29sb3I6IzEwMTAxMDt9IC5zaW1UaXRsZXtoZWlnaHQ6YXV0bzsgcGFkZGluZzowcHg7IGZvbnQtc2l6ZToxLjEyNXJlbSA7IGNvbG9yOiMwZjFhMWU7fSAuYm94OHt3aWR0aDoyNzBweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MHB4IDBweCAwcHggMTBweDt9IC5ib3g5e3dpZHRoOjIwcHg7IGhlaWdodDoxOHB4OyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjBweCAwcHggMTRweCAwcHg7IGZvbnQtc2l6ZToxLjEyNXJlbSA7IGNvbG9yOiMwZjFhMWU7fSAuYm94MTF7d2lkdGg6MTAwcHg7IGhlaWdodDoxMXB4OyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjdweCAwcHggMTRweCAwcHg7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IGNvbG9yOiM1NzU3NTc7IGxpbmUtaGVpZ2h0OjE4cHg7fSAuYm94MTJ7d2lkdGg6MTMwcHg7IGhlaWdodDoxMXB4OyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjdweCAwcHggMTRweCAwcHg7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IGNvbG9yOiM1NzU3NTc7IGxpbmUtaGVpZ2h0OjE4cHg7fSAuc2VsZWN0X2JveDE0e2hlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjBweCAxMHB4IDBweCAwcHg7IG1hcmdpbi1ib3R0b206M3B4O30gLnNlbGVjdF9ib3gxNntoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgcGFkZGluZzowcHggMTBweCAwcHggMTBweDsgbWFyZ2luLWJvdHRvbTozcHg7fSAuc2VsZWN0X2JveDE1e2hlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjEwcHggMTBweCAwcHggMTBweDsgbWFyZ2luLWJvdHRvbToxMHB4O30gLnNlbGVjdF9ib3gxMTV7d2lkdGg6MTE1cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjBweCAwcHggMHB4IDEwcHg7IG1hcmdpbi1ib3R0b206MTBweDt9IC5zZWxlY3RfYm94ODB7d2lkdGg6ODBweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MHB4IDBweCAwcHggMHB4OyBtYXJnaW4tYm90dG9tOjEwcHg7fSAuYV90ZXh0e3dpZHRoOjIwcHg7IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IGNvbG9yOiM1NzU3NTc7IGxpbmUtaGVpZ2h0OjMxcHg7IHRleHQtYWxpZ246Y2VudGVyOyBwYWRkaW5nOjAgNXB4O30gLmFqb3V0ZXJ7d2lkdGg6MTAwJTsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MTBweCAwOyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojRkZGRkZGOyBiYWNrZ3JvdW5kLWNvbG9yOiMxZjFmMWY7bWFyZ2luOjVweCAwIDEwcHggMHB4O30gLmFqb3V0ZXJfYXtiYWNrZ3JvdW5kOnVybCgiL2ltYWdlcy9zZWFyY2gtZG93bi1hcnJvdy5wbmciKSBuby1yZXBlYXQgc2Nyb2xsIGxlZnQgM3B4IHRyYW5zcGFyZW50OyBwYWRkaW5nLWxlZnQ6MjVweDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6I0ZGRkZGRjsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IH0gLmFqb3V0ZXJfYV9mdWxse2JhY2tncm91bmQ6dXJsKCIvaW1hZ2VzL3NlYXJjaC1yaWdodC1hcnJvdy5wbmciKSBuby1yZXBlYXQgc2Nyb2xsIHJpZ2h0IC0xcHggdHJhbnNwYXJlbnQ7IHBhZGRpbmctcmlnaHQ6MjVweDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6I0ZGRkZGRjsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IH0gLmJveDEze3dpZHRoOjI2MHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgcGFkZGluZzowcHggMTBweCAwcHggMTBweDt9IC5pbnB1dF9ib3gye3dpZHRoOjIwcHg7IGhlaWdodDoxOHB4OyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjBweCAwcHggMTRweCAwcHg7IGZvbnQtc2l6ZToxLjEyNXJlbSA7IGNvbG9yOiMwZjFhMWU7fSAuaW5wdXRfdGV4dHsgd2lkdGg6MTk1cHg7IGhlaWdodDoxMXB4OyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjNweCAwcHggN3B4IDVweDsgZm9udC1zaXplOjAuODEzcmVtIDsgY29sb3I6IzU3NTc1NzsgbGluZS1oZWlnaHQ6MThweDsgfSAuYnV0dG9uX2JveDJ7d2lkdGg6MjYwcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyB9IC5idXR0b25fYm94UzJ7IHdpZHRoOjI0NnB4OyBoZWlnaHQ6MjlweDsgZmxvYXQ6bGVmdDsgcGFkZGluZzoxMHB4IDNweCAxM3B4IDNweDsgfSAuYm94LWZvb3RlcjE1e3dpZHRoOjI5MHB4OyBoZWlnaHQ6MTJweDsgZmxvYXQ6bGVmdDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9sZWZ0X2JveF9mb290ZXIucG5nKSBsZWZ0IHRvcCBuby1yZXBlYXQ7fSAuZGlzeyBtYXJnaW4tdG9wOjVweDsgbWFyZ2luLWxlZnQ6NXB4OyB3aWR0aDoyNDBweDt9IC5kaXNfY3VzdG9teyB3aWR0aDoyNDBweDt3aWR0aDoyNDBweDt9IC5kaXNfdG9weyB3aWR0aDoyNDZweDsgaGVpZ2h0OjlweDsgZmxvYXQ6bGVmdDt9IC5kaXNfdG9wX2N1c3RvbXsgd2lkdGg6MjM4cHg7IGhlaWdodDo0MHB4OyBmbG9hdDpsZWZ0OyBjb2xvcjojMmM3ZWM3OyBiYWNrZ3JvdW5kOiNmZmZmZmY7fSAuZGlzX2JneyB3aWR0aDoyNDZweDsgaGVpZ2h0OjE1MHB4OyBmbG9hdDpsZWZ0OyBjb2xvcjojMjgyODI4OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2Rpc19iZy5wbmcpIGxlZnQgdG9wIHJlcGVhdC15O30gLl9kaXNfYmd7IHdpZHRoOjI0MHB4OyBoZWlnaHQ6MjAwcHg7IGZsb2F0OmxlZnQ7IGNvbG9yOiMyODI4Mjg7fSAuZGlzX2JnX2N1c3RvbXsgZmxvYXQ6bGVmdDsgY29sb3I6IzI4MjgyODsgYmFja2dyb3VuZDpyZ2JhKDI1NSwyNTUsMjU1LDEpO30gLl9kaXNfYmdfY3VzdG9teyBmbG9hdDpsZWZ0OyBjb2xvcjojMjgyODI4OyBiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsMSk7fSAuZGlzX2JvdXsgd2lkdGg6MjQ2cHg7IGhlaWdodDo1MHB4OyBmbG9hdDpsZWZ0OyBjb2xvcjojMmQyZDJkOyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2Rpc19ib3UucG5nKSBsZWZ0IHRvcCBuby1yZXBlYXQ7fSAuX2Rpc19ib3V7IHdpZHRoOjI0MHB4OyBoZWlnaHQ6MzhweDsgZmxvYXQ6bGVmdDsgYm9yZGVyLXJhZGl1czowIDAgNnB4IDZweDsgbWFyZ2luLXRvcDoxNHB4OyBjb2xvcjojMmQyZDJkOzsgfSAuZGlzX2JvdV9jdXN0b217IHdpZHRoOjIzOHB4OyBoZWlnaHQ6NTBweDsgZmxvYXQ6bGVmdDsgcGFkZGluZy10b3A6NXB4OyBjb2xvcjojMTAxMDEwOyBiYWNrZ3JvdW5kOiNmZmZmZmY7fSAuX2Rpc19ib3VfY3VzdG9teyB3aWR0aDoyNDBweDsgaGVpZ2h0OjQwcHg7IGZsb2F0OmxlZnQ7IGNvbG9yOiMxMDEwMTA7IGJvcmRlci1yYWRpdXM6MCAwIDZweCA2cHg7IG1hcmdpbi10b3A6MTJweDsgYmFja2dyb3VuZC1jb2xvcjojZmZmZmZmOyB9IC5kaXNfYm91XzJ7IHdpZHRoOjI0NnB4OyBoZWlnaHQ6OXB4OyBmbG9hdDpsZWZ0OyBjb2xvcjojMmQyZDJkOyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2Rpc19ib3VfMi5wbmcpIGxlZnQgdG9wIG5vLXJlcGVhdDt9IC5kaXNfdGV4dHsgZm9udC1zaXplOjEuNDM4cmVtIDsgcGFkZGluZzo0cHggMHB4IDBweCAxNXB4O30gLmx1bmRpX3RleHR7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IHBhZGRpbmc6MnB4IDBweCAwcHggMjBweDsgbGluZS1oZWlnaHQ6MTRweDt9IC5sdW5kaV90ZXh0X2hvbWVwYWdlX2gyNDh7Zm9udC1zaXplOjAuODEzcmVtIDsgbGluZS1oZWlnaHQ6MThweDsgcGFkZGluZzoxMHB4IDAgMCAyMHB4OyB9IC5sdW5kaV90ZXh0IHRoe3RleHQtYWxpZ246bGVmdDtmb250LXdlaWdodDpub3JtYWw7d2lkdGg6NjBweDt9IC5sdW5kaV90ZXh0IHRke3RleHQtYWxpZ246bGVmdDt9IC5weyBoZWlnaHQ6MTZweDsgZmxvYXQ6bGVmdDsgcGFkZGluZzo3cHggNXB4IDBweCAxMHB4OyBmb250LXNpemU6MC44MTNyZW0gO30gLmV7IGhlaWdodDoxNnB4OyBmbG9hdDpyaWdodDsgcGFkZGluZzo3cHggMHB4IDBweCAwcHg7IGZvbnQtc2l6ZTowLjg3NXJlbSA7fSAuYm94Mjg4LCAuYm94Mjg4X2N1c3RvbXt3aWR0aDoyODBweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IH0gLl9ib3gyODgsIC5fYm94Mjg4X2N1c3RvbXt3aWR0aDoyODBweDsgZmxvYXQ6bGVmdDsgfSAuYm94Mjg4VXNlZHt3aWR0aDoyODBweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IG1hcmdpbi1sZWZ0OjBweDt9IC5ib3gyODhOZXd7d2lkdGg6MjgwcHg7IGZsb2F0OmxlZnQ7IH0gLmJveDI4OE5ld19jdXN0b217ZmxvYXQ6bGVmdDt9IC5ib3gyODhOZXdRTSwgLmJveDI4OE5ld1FNX21vYmlsZSB7IGJvcmRlci1yYWRpdXM6NXB4OyBiYWNrZ3JvdW5kLWNvbG9yOnJnYigyNTUsMjU1LDI1NSk7IC1tcy1maWx0ZXI6cHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LkFscGhhKE9wYWNpdHk9MTAwKTsgYmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LDEpOyBib3gtc2hhZG93Om5vbmU7IGNsZWFyOmJvdGg7IGZsb2F0OmxlZnQ7IHdpZHRoOjI4MHB4OyBtYXJnaW4tYm90dG9tOjVweDsgfSAuYm94Mjg4TmV3UU1fbW9iaWxlIHsgd2lkdGg6MTAwJTsgfSAuYm94Mjg4TmV3UU1fbW9iaWxlIC5SZWNoZXJjaGUyMiB7IHRleHQtYWxpZ246Y2VudGVyOyB9IC5ib3gyODhOZXdRTV9tb2JpbGUgdGFibGUgeyB3aWR0aDoxMDAlOyB9IC5ib3gyODhOZXdRTV9tb2JpbGUgLmpxVHJhbnNmb3JtSW5wdXRXcmFwcGVyIHsgd2lkdGg6MTAwJSFpbXBvcnRhbnQ7IH0gLmJveDI4OE5ld1FNX21vYmlsZSAuanFUcmFuc2Zvcm1JbnB1dFdyYXBwZXIgaW5wdXQgeyB3aWR0aDo5NSUhaW1wb3J0YW50OyB9IC5ib3gyODhRTXsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IG1hcmdpbi10b3A6NXB4OyBmb250LXNpemU6MC44NzVyZW0gO2ZvbnQtd2VpZ2h0Om5vcm1hbDt9IC5ib3gyODhRTV9jdXN0b217d2lkdGg6Mjc4cHg7bWFyZ2luOjVweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IG92ZXJmbG93OmhpZGRlbjtib3JkZXItcmFkaXVzOjZweDtib3gtc2hhZG93OjAgMCA0cHggIzMzMzt9IC50ZXh0QXJlYVFNeyBmb250LXNpemU6MC44MTNyZW0gO2xpbmUtaGVpZ2h0OjE1cHg7fSAuYm94Mjg4X3RvcHt3aWR0aDoyODhweDsgaGVpZ2h0OjE0cHg7IGZsb2F0OmxlZnQ7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvcmlnaHRfYm94NF90b3AucG5nKSBsZWZ0IHRvcCBuby1yZXBlYXQ7IG1hcmdpbi10b3A6MHB4O30gLmJveDI4OF90b3BfY3VzdG9te3dpZHRoOjI3OHB4OyBoZWlnaHQ6NDBweDsgZmxvYXQ6bGVmdDsgY29sb3I6IzJjN2VjNzsgYmFja2dyb3VuZDojZmZmZmZmO30gLl9ib3gyODhRTXsgd2lkdGg6MjgwcHg7IH0gLl9ib3gyODhfdG9we30gLl9ib3gyODhfdG9wX2N1c3RvbXsgaGVpZ2h0OjQwcHg7IGZsb2F0OmxlZnQ7IFdpZHRoOjEwMCU7IGNvbG9yOiMyYzdlYzc7IGJhY2tncm91bmQ6I2ZmZmZmZjsgYm9yZGVyLXJhZGl1czo2cHggNnB4IDAgMDsgfSAuX2JveDI4ODBfbWlke30gLl9ib3gyODgwX21pZF9jdXN0b217YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LDEpO30gLmJveDI4OF9taWR7IGJveC1zaGFkb3c6MCAwIDVweCAjMzMzMzMzOyBib3JkZXItcmFkaXVzOjVweDsgbWFyZ2luLXRvcDo1cHg7IG1hcmdpbi1sZWZ0OjVweDsgZmxvYXQ6bGVmdDsgY29sb3I6IzI4MjgyODsgYmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LDEpOyB9IC5ib3gyODhfbWlkX2N1c3RvbXsgYm94LXNoYWRvdzowIDAgNXB4ICMzMzMzMzM7IGJvcmRlci1yYWRpdXM6NXB4OyBtYXJnaW4tdG9wOjVweDsgbWFyZ2luLWxlZnQ6NXB4OyBmbG9hdDpsZWZ0OyBjb2xvcjojMjgyODI4OyBiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsMSk7fSAuYm94Mjg4MF9taWR7d2lkdGg6MjU4cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBjb2xvcjojMjgyODI4OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL3JpZ2h0X2JveDRfbWlkLnBuZykgbGVmdCB0b3AgcmVwZWF0LXk7IHBhZGRpbmc6MCAxNXB4IDBweCAxNXB4O30gLmJveDI4ODBfbWlkX2N1c3RvbXt3aWR0aDoyMjhweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IHBhZGRpbmc6NXB4IDI1cHg7IGNvbG9yOiMyODI4Mjg7IGJhY2tncm91bmQ6cmdiYSgyNTUsMjU1LDI1NSwxKTt9IC5ib3gyNjlfbWlke3dpZHRoOjI1OHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9yaWdodF9ib3g0X21pZC5wbmcpIGxlZnQgdG9wIHJlcGVhdC15OyBwYWRkaW5nOjAgMTVweCAwcHggMTVweDt9IC56b29tMjJ7d2lkdGg6MjU4cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyB0ZXh0LWFsaWduOmNlbnRlcjt9IC5zZWFyY2hfcmlnaHQge2JhY2tncm91bmQ6dXJsKC9pbWFnZXMvc2VhcmNoLnBuZykgMCAwIG5vLXJlcGVhdDsgd2lkdGg6Mjc4cHg7IGhlaWdodDoxMTFweDsgZGlzcGxheTpibG9jazsgbWFyZ2luOjVweCA1cHggNXB4IDVweH0gLkRlbWFuZGUyMnt3aWR0aDoyNzhweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IHRleHQtYWxpZ246Y2VudGVyOyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojOWEwMTAxOyBsaW5lLWhlaWdodDoyNnB4OyBtYXJnaW4tdG9wOjY3cHg7fSAuRGVtYW5kZTIyIGF7IHRleHQtYWxpZ246Y2VudGVyOyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojOWEwMTAxOyBsaW5lLWhlaWdodDoyMHB4IDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7fSAuRGVtYW5kZTIyIGE6aG92ZXJ7IHRleHQtYWxpZ246Y2VudGVyOyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojOWEwMTAxOyB0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lO30gLkRlbWFuZGUyMiBzcGFuIGF7IHRleHQtYWxpZ246Y2VudGVyOyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojMjkyOTI5OyBsaW5lLWhlaWdodDoyMHB4IDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7fSAuRGVtYW5kZTIyIHNwYW4gYTpob3ZlcnsgdGV4dC1hbGlnbjpjZW50ZXI7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMyOTI5Mjk7IHRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7fSAuYm94Mjg4X2Zvb3Rlcnt3aWR0aDoyODhweDsgaGVpZ2h0OjE0cHg7IGZsb2F0OmxlZnQ7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvcmlnaHRfYm94NF9mb290ZXIucG5nKSBsZWZ0IHRvcCBuby1yZXBlYXQ7fSAuYm94Mjg4X2Zvb3Rlcl9xc3t3aWR0aDoyODhweDsgaGVpZ2h0OjExcHg7IGZsb2F0OmxlZnQ7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvcmlnaHRfYm94NF9mb290ZXIucG5nKSBsZWZ0IHRvcCBuby1yZXBlYXQ7fSAuYm94Mjg4X2Zvb3Rlcl9xc3t3aWR0aDoyODhweDsgaGVpZ2h0OjExcHg7IGZsb2F0OmxlZnQ7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvcmlnaHRfYm94NF9mb290ZXIucG5nKSBsZWZ0IHRvcCBuby1yZXBlYXQ7fSAuYm94Mjg4X2Zvb3RlcjU1eyB3aWR0aDoyODBweDsgaGVpZ2h0OjUwcHg7IGZsb2F0OmxlZnQ7IGNvbG9yOiMyZDJkMmQ7IGJhY2tncm91bmQtY29sb3I6I0NCQ0JDQjsgYm9yZGVyLXJhZGl1czowIDAgNnB4IDZweDsgfSAuYm94Mjg4X2Zvb3RlcjU1X2N1c3RvbXsgd2lkdGg6MjgwcHg7IGhlaWdodDozNXB4OyBwYWRkaW5nLXRvcDo1cHg7IGZsb2F0OmxlZnQ7IGNvbG9yOiMxMDEwMTA7IGJhY2tncm91bmQtY29sb3I6I2ZmZmZmZjsgYm9yZGVyLXJhZGl1czowIDAgNnB4IDZweDsgfSAucCBhe3RleHQtZGVjb3JhdGlvbjpub25lO30gLmdhcDEwe3dpZHRoOjIzMHB4OyBoZWlnaHQ6MTBweDsgZmxvYXQ6bGVmdDt9IC5wYWdlX25hbWUye3dpZHRoOjY1MHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgcGFkZGluZzowIDAgMjBweCAwOyBsaW5lLWhlaWdodDozMHB4OyBmb250LXNpemU6MS42MjVyZW0gOyBjb2xvcjojMTAxMDEwO2ZvbnQtd2VpZ2h0Om5vcm1hbH0gLnBhZ2VfbmFtZTN7IHdpZHRoOjEwMCU7Ym94LXNpemluZzpib3JkZXItYm94OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgcGFkZGluZzowcHggMTBweCAxMHB4IDEwcHg7IGxpbmUtaGVpZ2h0OjMwcHg7IGZvbnQtc2l6ZToxLjVyZW0gOyBjb2xvcjojMjQyNDI0O30gLnBhZ2VfbmFtZTMgaDF7IGZvbnQtc2l6ZToxLjg3NXJlbSA7IGNvbG9yOiMyNDI0MjQ7Zm9udC13ZWlnaHQ6bm9ybWFsfSAucGFnZV9uYW1lNHt3aWR0aDo2NTBweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvc2hvLnBuZykgY2VudGVyIGJvdHRvbSBuby1yZXBlYXQ7IGJhY2tncm91bmQtcG9zaXRpb246Ym90dG9tOyBwYWRkaW5nOjAgMHB4IDEwcHggMjFweDsgbGluZS1oZWlnaHQ6MzBweDsgZm9udC1zaXplOjEuMTI1cmVtIDsgY29sb3I6IzAxNEY4MDt9IC5wYWdlX25hbWU0IGgyeyBmb250LXNpemU6MS41cmVtIDsgY29sb3I6cmdiKDE2LDE2LDE2KTtmb250LXdlaWdodDpub3JtYWx9IC5wYWdlX25hbWU1e3dpZHRoOjEwMCU7aGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvc2hvLnBuZykgY2VudGVyIGJvdHRvbSBuby1yZXBlYXQ7IGJhY2tncm91bmQtcG9zaXRpb246Ym90dG9tOyBwYWRkaW5nOjAgMHB4IDEwcHggMDsgbWFyZ2luLWJvdHRvbToxNXB4OyBsaW5lLWhlaWdodDozMHB4OyBmb250LXNpemU6MS41cmVtIDsgY29sb3I6IzI0MjQyNDtmb250LXdlaWdodDpub3JtYWwgfSAjc2VhcmNoQ29udGFpbmVyUGFyZW50IC5wYWdlX25hbWU1Om5vdCg6Zmlyc3QtY2hpbGQpIHsgbWFyZ2luLXRvcDozMHB4OyB9IC5ib3gyX3RleHR7aGVpZ2h0OmF1dG87IHdpZHRoOjEwMCU7IGZsb2F0OmxlZnQ7IGxpbmUtaGVpZ2h0OjE4cHg7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMyNDI0MjQ7IH0gLmJveDJfdGV4dCBweyBsaW5lLWhlaWdodDoxOHB4OyBmb250LXNpemU6MC44NzVyZW0gO2NvbG9yOiMxMDEwMTA7IG1hcmdpbi1ib3R0b206MjBweDt9IC5wb3NpdGl2ZVJhdGluZ1R4dCBwe2ZvbnQtc2l6ZToxcmVtIDt9IC5wb3NpdGl2ZVJhdGluZ1R4dCBoMywgLnBvc2l0aXZlUmF0aW5nVHh0IGg0e2ZvbnQtd2VpZ2h0Om5vcm1hbDt9IC5wb3NpdGl2ZVJhdGluZ1R4dCAuYnRuLWRlZmF1bHR7dGV4dC10cmFuc2Zvcm06bm9uZTt9IC5wb3NpdGl2ZVJhdGluZ1R4dCAuYnRuLWRlZmF1bHR7Zm9udC1zaXplOjEuMjVyZW0gO30gLmV0YXBle3dpZHRoOmF1dG87IGhlaWdodDo0NnB4OyBmbG9hdDpsZWZ0OyBtYXJnaW4tcmlnaHQ6MjBweDt9IC50ZXh0MXt3aWR0aDphdXRvOyBoZWlnaHQ6NDZweDsgZmxvYXQ6bGVmdDsgcGFkZGluZzowIDBweCAwcHggMHB4O30gLnRleHQxIGF7d2lkdGg6YXV0bzsgaGVpZ2h0OjQ2cHg7IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MCAwcHggMHB4IDBweDsgbGluZS1oZWlnaHQ6NDZweDsgdGV4dC1hbGlnbjpsZWZ0OyBmb250LXNpemU6MS44NzVyZW0gOyBjb2xvcjojNDM0MzQzOyBmb250LXdlaWdodDpib2xkOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgdGV4dC1zaGFkb3c6MXB4IDFweCAxcHggI2YzZjNmMzsgfSAudGV4dDEgYTpob3Zlcnt3aWR0aDphdXRvOyBoZWlnaHQ6NDZweDsgZmxvYXQ6bGVmdDsgcGFkZGluZzowIDBweCAwcHggMHB4OyBsaW5lLWhlaWdodDo0NnB4OyB0ZXh0LWFsaWduOmxlZnQ7IGZvbnQtc2l6ZToxLjg3NXJlbSA7IGNvbG9yOiM0MzQzNDM7IGZvbnQtd2VpZ2h0OmJvbGQ7IHRleHQtZGVjb3JhdGlvbjpub25lOyB0ZXh0LXNoYWRvdzoxcHggMXB4IDFweCAjZjNmM2YzOyB9IC50ZXh0MSBhLmFjdGl2ZXt3aWR0aDphdXRvOyBoZWlnaHQ6NDZweDsgZmxvYXQ6bGVmdDsgcGFkZGluZzowIDBweCAwcHggMHB4OyBsaW5lLWhlaWdodDo0NnB4OyB0ZXh0LWFsaWduOmxlZnQ7IGZvbnQtc2l6ZToxLjg3NXJlbSA7IGNvbG9yOiM0MzQzNDM7IGZvbnQtd2VpZ2h0OmJvbGQ7IHRleHQtZGVjb3JhdGlvbjpub25lOyB0ZXh0LXNoYWRvdzoxcHggMXB4IDFweCAjZjNmM2YzOyB9IC5vbmUxe3dpZHRoOjQ2cHg7IGhlaWdodDo0NnB4OyBmbG9hdDpyaWdodDsgbWFyZ2luLWxlZnQ6MTBweDt9IC5vbmUxIGF7d2lkdGg6NDZweDsgaGVpZ2h0OjQ2cHg7IGZsb2F0OmxlZnQ7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvMV9yb3VuZC5wbmcpIGxlZnQgdG9wIG5vLXJlcGVhdDsgZm9udC1zaXplOjIuMjVyZW0gOyBmb250LXdlaWdodDpib2xkOyBjb2xvcjojRkZGRkZGOyBsaW5lLWhlaWdodDo0NnB4OyB0ZXh0LWFsaWduOmNlbnRlcjsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7fSAub25lMSBhOmhvdmVye3dpZHRoOjQ2cHg7IGhlaWdodDo0NnB4OyBmbG9hdDpsZWZ0OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzLzFfaG92ZXIucG5nKSBsZWZ0IHRvcCBuby1yZXBlYXQ7IGZvbnQtc2l6ZToyLjI1cmVtIDsgY29sb3I6IzEwMTAxMDsgbGluZS1oZWlnaHQ6NDZweDsgZm9udC13ZWlnaHQ6Ym9sZDsgdGV4dC1hbGlnbjpjZW50ZXI7IHRleHQtZGVjb3JhdGlvbjpub25lO30gLm9uZTEgYS5hY3RpdmV7d2lkdGg6NDZweDsgaGVpZ2h0OjQ2cHg7IGZsb2F0OmxlZnQ7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvMV9ob3Zlci5wbmcpIGxlZnQgdG9wIG5vLXJlcGVhdDsgZm9udC1zaXplOjIuMjVyZW0gOyBjb2xvcjojMTAxMDEwOyBsaW5lLWhlaWdodDo0NnB4OyBmb250LXdlaWdodDpib2xkOyB0ZXh0LWFsaWduOmNlbnRlcjsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7fSAuc2VsZWN0aW9ubmV6e3dpZHRoOmF1dG87IGhlaWdodDphdXRvIDsgZmxvYXQ6bGVmdDsgcGFkZGluZy1yaWdodDo1cHg7IHBhZGRpbmctbGVmdDozcHg7IHBhZGRpbmctdG9wOjRweDsgZm9udC1zaXplOjAuODEzcmVtIDsgY29sb3I6IzFhMWExYTsgbGluZS1oZWlnaHQ6MjJweDsgZm9udC13ZWlnaHQ6Ym9sZDsgdGV4dC1hbGlnbjpsZWZ0OyB0ZXh0LWRlY29yYXRpb246bm9uZTt9IC5mb3Jtc19ib3gyMntib3gtc2l6aW5nOmJvcmRlci1ib3g7IHdpZHRoOjEwMCU7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBtYXJnaW46MCAwIDEwcHggMDsgfSAud2l0aF9ib3JkZXIgeyBib3JkZXI6MXB4IHNvbGlkICNkNGQ0ZDQ7IC1tb3otYm9yZGVyLXJhZGl1czo4cHg7IC13ZWJraXQtYm9yZGVyLXJhZGl1czo4cHg7IC1raHRtbC1ib3JkZXItcmFkaXVzOjhweDsgcGFkZGluZzowIDE2cHg7IH0gLlByZW5vbXt3aWR0aDoyNzlweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMyNDI0MjQgOyBwYWRkaW5nOjhweCAwIDEwcHggMDt9IC5QcmVub20gc3BhbnsgZm9udC1zaXplOjEuMzc1cmVtIDsgY29sb3I6I2ZmMDEwMTt9IC5QcmVub20ye3dpZHRoOjMyMXB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzI0MjQyNCA7IHBhZGRpbmc6OHB4IDAgMTBweCAwO30gLlByZW5vbTIgc3BhbnsgZm9udC1zaXplOjEuMzc1cmVtIDsgY29sb3I6I2ZmMDEwMTt9IC5QcmVub20ze3dpZHRoOjI3OXB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzI0MjQyNCA7IHBhZGRpbmc6MHB4IDAgMTBweCAwO30gLlByZW5vbTR7d2lkdGg6MzIxcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojMjQyNDI0IDsgcGFkZGluZzowcHggMCAxMHB4IDA7fSAuUHJlbm9tNXt3aWR0aDoyNzlweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMyNDI0MjQgOyBwYWRkaW5nOnB4IDAgMTBweCAwO30gLlByZW5vbTZ7d2lkdGg6MjE0cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojMjQyNDI0IDsgcGFkZGluZzowcHggMCAxMHB4IDA7fSAuUHJlbm9tN3t3aWR0aDoxMDdweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMyNDI0MjQgOyBwYWRkaW5nOjBweCAwIDEwcHggMDt9IC5QcmVub204e3dpZHRoOjI3OXB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgcGFkZGluZzpweCAwIDEwcHggMDsgZGlzcGxheTpibG9ja30gLlByZW5vbTl7d2lkdGg6MjE0cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjBweCAwIDEwcHggMDtkaXNwbGF5OmJsb2NrfSAuUHJlbm9tMTB7d2lkdGg6MTA3cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjBweCAwIDEwcHggMDtkaXNwbGF5OmJsb2NrfSAudGV4dDE1e3dpZHRoOjI4NXB4OyBmb250LXNpemU6MC44MTNyZW0gOyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgY29sb3I6IzI0MjQyNCA7IHBhZGRpbmc6MHB4IDAgM3B4IDA7fSAudGV4dDE2e3dpZHRoOjE3MnB4OyBmb250LXNpemU6MC44MTNyZW0gOyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgY29sb3I6IzI0MjQyNCA7IHBhZGRpbmc6MHB4IDAgM3B4IDA7fSAudGV4dDE3e3dpZHRoOjExMnB4OyBmb250LXNpemU6MC44MTNyZW0gOyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgY29sb3I6IzI0MjQyNCA7IHBhZGRpbmc6MHB4IDAgM3B4IDA7fSAudGV4dDE4e3dpZHRoOjI4NXB4OyBmb250LXNpemU6MC44MTNyZW0gOyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgY29sb3I6IzI0MjQyNCA7IHBhZGRpbmc6OHB4IDAgM3B4IDA7fSAudGV4dDE1IHNwYW57IGZvbnQtc2l6ZToxLjM3NXJlbSA7IGNvbG9yOiNmZjAxMDE7fSAuYnV0dG9uNXt3aWR0aDoyODVweDsgbWFyZ2luLWJvdHRvbTozMHB4OyBtYXJnaW4tdG9wOjcwcHg7IGZsb2F0OmxlZnQ7IG1hcmdpbi1yaWdodDo1cHg7IHRleHQtYWxpZ246cmlnaHQ7IH0gLmJveF9kYXRle3dpZHRoOjE2N3B4OyBtYXJnaW4tYm90dG9tOjEwcHg7IGZsb2F0OmxlZnQ7IHBhZGRpbmctdG9wOjFweDsgbWFyZ2luLXJpZ2h0OjVweDt9IC5ib3hfZGF0ZTJ7d2lkdGg6MTA3cHg7IG1hcmdpbi1ib3R0b206MTBweDsgZmxvYXQ6bGVmdDsgbWFyZ2luLXJpZ2h0OjVweDsgcGFkZGluZy10b3A6MHB4O30gLmJveF9kYXRlM3t3aWR0aDo4MHB4OyBtYXJnaW4tYm90dG9tOjEwcHg7IGZsb2F0OmxlZnQ7IG1hcmdpbi1yaWdodDo1cHg7fSBzcGFuLmFzdGt7IGNvbG9yOiNGRjAxMDE7Zm9udC1zaXplOjAuNjg4cmVtIDtmbG9hdDpsZWZ0O3BhZGRpbmctcmlnaHQ6M3B4OyB9IC5ib3g2MXt3aWR0aDoyODBweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IG1hcmdpbi10b3A6MTBweDsgZGlzcGxheTpibG9jazsgY2xlYXI6Ym90aDsgfSAuYm94NjE2Nnt3aWR0aDoyODBweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IG1hcmdpbi10b3A6MTBweDsgfSAuUG9saXRpcXVle3dpZHRoOmF1dG87IG1hcmdpbi1ib3R0b206MTBweDsgZmxvYXQ6bGVmdDsgbWFyZ2luLXJpZ2h0OjVweDsgcGFkZGluZzowIDJweCAwcHggMnB4OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojMGQ1OWFmOyBsaW5lLWhlaWdodDoyMnB4OyB9IC5Qb2xpdGlxdWUgYXsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzBkNTlhZjsgbGluZS1oZWlnaHQ6MjRweDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IGJvcmRlci1ib3R0b206MnB4IHNvbGlkICM2YjkxYmQ7IHRleHQtZGVjb3JhdGlvbjpub25lOyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2xpbmUzLnBuZykgYm90dG9tIGxlZnQgcmVwZWF0LXg7IGJhY2tncm91bmQtcG9zaXRpb246Ym90dG9tO30gLlBvbGl0aXF1ZSBhOmhvdmVyeyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojMjQyNDI0OyBsaW5lLWhlaWdodDoyNHB4OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2xpbmU0LnBuZykgYm90dG9tIGxlZnQgcmVwZWF0LXg7IGJhY2tncm91bmQtcG9zaXRpb246Ym90dG9tOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgYm9yZGVyLWJvdHRvbToycHggc29saWQgIzI0MjQyNDt9IC50ZXh0MTU1e3dpZHRoOjI4NXB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODEzcmVtIDsgY29sb3I6IzI0MjQyNCA7IHBhZGRpbmc6MHB4IDAgM3B4IDA7fSAudGV4dDE1NWNoa3toZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODEzcmVtIDsgY29sb3I6IzI0MjQyNCA7IHBhZGRpbmc6MHB4IDEwcHggMTBweCAxNXB4O3RleHQtYWxpZ246bGVmdDt9IC5WZXVpbGxlent3aWR0aDo2MTdweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MTdweCAwOyBmb250LXNpemU6MS4zNzVyZW0gOyBjb2xvcjojMTAxMDEwO2ZvbnQtd2VpZ2h0Om5vcm1hbH0gLlZldWlsbGV6IHNwYW57dGV4dC1hbGlnbjpsZWZ0OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojMjQyNDI0OyBsaW5lLWhlaWdodDoyMnB4O30gLlZldWlsbGV6IHNwYW4gYXsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzI0MjQyNDsgZmxvYXQ6cmlnaHQ7IGxpbmUtaGVpZ2h0OjIycHg7IHRleHQtZGVjb3JhdGlvbjpub25lOyBib3JkZXItYm90dG9tOjJweCBzb2xpZCAjMjQyNDI0OyBkaXNwbGF5OmJsb2NrfSAuVmV1aWxsZXogc3BhbiBhOmhvdmVyeyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojMDA0NDZmOyBmbG9hdDpyaWdodDsgbGluZS1oZWlnaHQ6MjJweDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IGJvcmRlci1ib3R0b206MnB4IHNvbGlkICMwMDQ0NmY7IGRpc3BsYXk6YmxvY2s7fSAuSHlwb3RoZXF1ZXt3aWR0aDoxOTVweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IGNvbG9yOiMyNDI0MjQgOyBwYWRkaW5nOjA7IGxpbmUtaGVpZ2h0OjUwcHg7fSAuSHlwb3RoZXF1ZTIye3dpZHRoOjIyNHB4OyBtYXJnaW4tYm90dG9tOjEwcHg7IGZsb2F0OmxlZnQ7fSAuSHlwb3RoZXF1ZTMze3dpZHRoOjUwcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44MTNyZW0gOyBjb2xvcjojMjQyNDI0IDsgcGFkZGluZzowcHggMCAxMHB4IDA7IGxpbmUtaGVpZ2h0OjM1cHg7fSAuY2l2aXF1ZXt3aWR0aDoxMzBweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IGNvbG9yOiMyNDI0MjQgOyBwYWRkaW5nOjBweCAwIDNweCAwO30gLlJ1ZXt3aWR0aDoyOTBweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IGNvbG9yOiMyNDI0MjQgOyBwYWRkaW5nOjBweCAwIDNweCAwO30gLkFwcHt3aWR0aDoxODBweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IGNvbG9yOiMyNDI0MjQgOyBwYWRkaW5nOjBweCAwIDNweCAwO30gLmZvcm1zMTAwe3dpZHRoOjEzMHB4OyBtYXJnaW4tYm90dG9tOjEwcHg7IGZsb2F0OmxlZnQ7fSAuZm9ybXMxMDF7d2lkdGg6MjkwcHg7IG1hcmdpbi1ib3R0b206MTBweDsgZmxvYXQ6bGVmdDt9IC5mb3JtczEwMnt3aWR0aDoxODBweDsgbWFyZ2luLWJvdHRvbToxMHB4OyBmbG9hdDpsZWZ0O30gLlZpbGxleyB3aWR0aDoyNzBweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IGNvbG9yOiMyNDI0MjQgOyBwYWRkaW5nOjBweCAwIDEzcHggMDt9IC5Qcm92aW5jZXsgd2lkdGg6MTUwcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44MTNyZW0gOyBjb2xvcjojMjQyNDI0IDsgcGFkZGluZzowcHggMCAxM3B4IDA7fSAuQ29kZXsgd2lkdGg6MTYwcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44MTNyZW0gOyBjb2xvcjojMjQyNDI0IDsgcGFkZGluZzowcHggMCAxM3B4IDA7fSAuZm9ybXMxMDN7IHdpZHRoOjEwMCU7IG1hcmdpbi10b3A6MHB4OyB9IC5mb3JtczEwNHsgd2lkdGg6MTAwJTsgbWFyZ2luLXRvcDowcHg7IH0gLmZvcm1zMTA1eyB3aWR0aDoxMDAlOyBtYXJnaW4tdG9wOjBweDsgfSAuZm9ybXMxMDZ7IHdpZHRoOjEwMCU7IG1hcmdpbi1ib3R0b206MTBweDsgZmxvYXQ6bGVmdH0gLlR5cGV7d2lkdGg6MjAwcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44MTNyZW0gOyBjb2xvcjojMjQyNDI0IDsgcGFkZGluZzowcHggMCAzcHggMDt9IC5ib3g2MDB7d2lkdGg6NjAwcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBwYWRkaW5nLWxlZnQ6MHB4OyBwYWRkaW5nLWJvdHRvbToyMHB4OyBtYXJnaW4tcmlnaHQ6MHB4O30gLkRlbWFuZGU1NXttYXJnaW46MTVweCAwOyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2QucG5nKSAxMHB4IHRvcCBuby1yZXBlYXQ7IHBhZGRpbmc6MCAwIDAgNjJweDsgbGluZS1oZWlnaHQ6NDBweDsgZm9udC1zaXplOjEuMTI1cmVtIDsgY29sb3I6IzE5MTkxOTsgZm9udC13ZWlnaHQ6Ym9sZDt9IC5EZW1hbmRlNjZ7bWFyZ2luOjE1cHggMDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9jYWwyLnBuZykgMTBweCB0b3Agbm8tcmVwZWF0OyBwYWRkaW5nOjAgMCAwIDYycHg7IGxpbmUtaGVpZ2h0OjIwcHg7IGZvbnQtc2l6ZToxLjEyNXJlbSA7IGNvbG9yOiMxOTE5MTk7IGZvbnQtd2VpZ2h0OmJvbGQ7fSAuRGVtYW5kZTc3e21hcmdpbjoxNXB4IDA7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvbS5wbmcpIDEwcHggdG9wIG5vLXJlcGVhdDsgcGFkZGluZzowIDAgMCA2MnB4OyBsaW5lLWhlaWdodDo0MHB4OyBmb250LXNpemU6MS4xMjVyZW0gOyBjb2xvcjojMTkxOTE5OyBmb250LXdlaWdodDpib2xkO30gLkRlbWFuZGU4OHttYXJnaW46MTVweCAwOyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2YucG5nKSAxMHB4IHRvcCBuby1yZXBlYXQ7IHBhZGRpbmc6MCAwIDAgNjJweDsgbGluZS1oZWlnaHQ6MjBweDsgZm9udC1zaXplOjEuMTI1cmVtIDsgY29sb3I6IzE5MTkxOTsgZm9udC13ZWlnaHQ6Ym9sZDt9IC5EZW1hbmRlODg3e21hcmdpbjoxNXB4IDA7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvZi5wbmcpIDEwcHggdG9wIG5vLXJlcGVhdDsgcGFkZGluZzowIDAgMCA2MnB4OyBsaW5lLWhlaWdodDoyMHB4OyBmb250LXNpemU6MS4xMjVyZW0gOyBjb2xvcjojMTkxOTE5OyBmb250LXdlaWdodDpib2xkO30gLmJveDJfdGV4dDJ7d2lkdGg6NjQ4cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjEwcHggMHB4IDE1cHggMjNweDsgbGluZS1oZWlnaHQ6MThweDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzI0MjQyNDt9IC5ib3hfYnJhbmR7d2lkdGg6NjQ4cHg7IGZsb2F0OmxlZnQ7cGFkZGluZzoyMHB4IDBweCAxNXB4IDBweDsgbGluZS1oZWlnaHQ6MThweDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzI0MjQyNDsgfSAuYm94Ml90ZXh0M3t3aWR0aDo2NjFweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MCAwcHggMTBweCAxMHB4OyBtYXJnaW4tdG9wOjE1cHg7IGxpbmUtaGVpZ2h0OjE4cHg7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMyNDI0MjQ7IH0gLmNhcl9ib3h7d2lkdGg6MjA4cHg7IGhlaWdodDoxMzBweDsgZmxvYXQ6bGVmdDsgbWFyZ2luOjAgOHB4IDAgMDsgcGFkZGluZzowOyBib3JkZXI6MDt9IC5jYXJfaW1hZ2Vze3dpZHRoOjIwOHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgbWFyZ2luOjA7IHBhZGRpbmc6MDsgYm9yZGVyOjA7IHRleHQtYWxpZ246Y2VudGVyO30gLmNhcl90ZXh0e3dpZHRoOjIwOHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgbGluZS1oZWlnaHQ6MTBweDsgZm9udC1zaXplOjAuODEzcmVtIDsgZm9udC13ZWlnaHQ6Ym9sZDsgY29sb3I6IzEwMTAxMDsgdGV4dC1hbGlnbjpjZW50ZXJ9IC5jYXJfdGV4dCBhIHt0ZXh0LWRlY29yYXRpb246bm9uZTsgY29sb3I6IzEwMTAxMDsgbGluZS1oZWlnaHQ6MS4xO30gLmNhcl90ZXh0IGE6aG92ZXIgeyB0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lOyBjb2xvcjojMTAxMDEwfSAuY2FyX2JveDJ7IGhlaWdodDphdXRvOyBtYXJnaW46MCAxMHB4IDEwcHggMDsgb3ZlcmZsb3c6aGlkZGVuOyBib3JkZXItcmFkaXVzOjVweDsgLW1vei1ib3JkZXItcmFkaXVzOjVweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjVweDsgYmFja2dyb3VuZC1jb2xvcjojRkZGOyAtbW96LWJveC1zaGFkb3c6MCAwIDEwcHggMXB4IHJnYmEoMCwwLDAsMC4yKTsgLXdlYmtpdC1ib3gtc2hhZG93OjAgMCAxMHB4IDFweCByZ2JhKDAsMCwwLDAuMik7IGJveC1zaGFkb3c6MCAwIDEwcHggMXB4IHJnYmEoMCwwLDAsMC4yKTsgfSAuY2FyX2JveDJfdGF4dHtoZWlnaHQ6YXV0bzsgcGFkZGluZy1ib3R0b206NXB4OyBmb250LXNpemU6MXJlbSA7IGNvbG9yOiMzMDMwMzA7IHRleHQtYWxpZ246bGVmdDsgbGluZS1oZWlnaHQ6MjFweDt9IC5waWNfYm94MnsgYm9yZGVyOjFweCBzb2xpZCAjQUFBOyBiYWNrZ3JvdW5kOiNGRkZGRkY7IGJvcmRlci1yYWRpdXM6M3B4OyAtbW96LWJvcmRlci1yYWRpdXM6M3B4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6M3B4OyB9IC5waWNfYm94MiBpbWcge3dpZHRoOjEwMCU7fSAucHJpbnR7d2lkdGg6MTkycHg7IGhlaWdodDphdXRvOyBtYXJnaW46MDsgcGFkZGluZy10b3A6N3B4O30gLnByaW50IGF7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvcHJpbnQucG5nKSAxMHB4IHRvcCBuby1yZXBlYXQ7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMzMDMwMzA7IHBhZGRpbmctbGVmdDozNXB4OyB0ZXh0LWRlY29yYXRpb246bm9uZTt9IC5wcmludCBhOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL3ByaW50X2hvdmVyLnBuZykgMTBweCB0b3Agbm8tcmVwZWF0OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojMDA0YTc4OyBwYWRkaW5nLWxlZnQ6MzVweDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IH0gLnBhZ2VfbmFtZV9jb257d2lkdGg6ODQwcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjIwcHggMjFweCAxMHB4IDIwcHg7IH0gLmhvbWUye3dpZHRoOjIzMHB4OyBoZWlnaHQ6YXV0bzsgbWFyZ2luLWxlZnQ6MjBweDsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjFyZW0gOyBjb2xvcjojMzczNzM3OyBsaW5lLWhlaWdodDoyNHB4OyB0ZXh0LWRlY29yYXRpb246bm9uZTsgfSAuaG9tZTN7d2lkdGg6NTEwcHg7IGhlaWdodDphdXRvOyBtYXJnaW4tbGVmdDoxMHB4OyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MXJlbSA7IGNvbG9yOiMzNzM3Mzc7IGxpbmUtaGVpZ2h0OjI0cHg7IHRleHQtZGVjb3JhdGlvbjpub25lOyB9IC50ZXh0MjB7d2lkdGg6MzEwcHg7IGhlaWdodDozMnB4OyBmbG9hdDpsZWZ0OyBtYXJnaW4tcmlnaHQ6MTBweDsgbWFyZ2luLWJvdHRvbToxMHB4OyBsaW5lLWhlaWdodDozMnB4OyB0ZXh0LWFsaWduOmxlZnQ7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMwZDBkMGQ7IHRleHQtZGVjb3JhdGlvbjpub25lOyB9IC50ZXh0MjAgc3BhbnsgY29sb3I6I0ZGMDAwMDt9IC5pbnB1dDI1e3dpZHRoOjMxMHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgbWFyZ2luLWJvdHRvbToxMHB4OyB9IC52ZXV4e3dpZHRoOjYwMHB4OyBmbG9hdDpsZWZ0OyBtYXJnaW4tYm90dG9tOjEwcHg7IHBhZGRpbmctdG9wOjVweDsgbGluZS1oZWlnaHQ6MTdweDsgdGV4dC1hbGlnbjpsZWZ0OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojMGQwZDBkOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgbWFyZ2luLWJvdHRvbToxMHB4O30gLk5vc3t3aWR0aDoyNjVweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGJhY2tncm91bmQ6IzAwMDAwMDsgLW1vei1ib3JkZXItcmFkaXVzOjVweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjVweDsgYm9yZGVyLXJhZGl1czo1cHg7IC1raHRtbC1ib3JkZXItcmFkaXVzOjVweDsgcGFkZGluZzoxNXB4IDAgMTVweCAxNXB4OyBtYXJnaW46NXB4IDA7IGZvbnQtc2l6ZToxLjVyZW0gOyBjb2xvcjojRkZGRkZGO30gLmJ1dHRvbl9qb2JvZmZlciB7IGRpc3BsYXk6YmxvY2s7IGxpbmUtaGVpZ2h0OjUwcHg7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2ljb25fZW1wbG95LnBuZycpIG5vLXJlcGVhdCBzY3JvbGwgMHB4IDBweCByZ2IoMjMxLCAyMzIsIDIzMik7IHRleHQtYWxpZ246Y2VudGVyOyBmb250LXdlaWdodDpib2xkOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgcGFkZGluZy1sZWZ0OjQwcHg7IGJvcmRlci1yYWRpdXM6M3B4OyB9IC5idXR0b25fMSwgLmJ1dHRvbl8yLCAuYnV0dG9uXzMgeyBtYXJnaW4tYm90dG9tOjEwcHg7IH0gLmJ1dHRvbl8xIGEsIC5idXR0b25fMiBhLCAuYnV0dG9uXzMgYSB7IGRpc3BsYXk6YmxvY2s7IHdpZHRoOjI0OXB4OyBoZWlnaHQ6MzhweDsgYm9yZGVyLXJhZGl1czozcHg7IGZvbnQtc2l6ZToxLjEyNXJlbSA7IHRleHQtZGVjb3JhdGlvbjpub25lOyB0ZXh0LWFsaWduOmNlbnRlcjsgbGluZS1oZWlnaHQ6MzhweDsgfSAuYnV0dG9uXzEgYSwgLmJ1dHRvbl8yIGEgeyBiYWNrZ3JvdW5kOiMxMDEwMTA7IGNvbG9yOiNmZmZmZmY7IGJvcmRlcjoxcHggc29saWQgI2ZmZmZmZjsgfSAuYnV0dG9uXzEgYTpob3ZlciwgLmJ1dHRvbl8yIGE6aG92ZXJ7IGJhY2tncm91bmQ6IzkxMDkyZDsgY29sb3I6I2ZmZmZmZjsgYm9yZGVyOjFweCBzb2xpZCAjZmZmZmZmOyB9IC5idXR0b25fMyBheyBiYWNrZ3JvdW5kOiMwMDA7IGNvbG9yOiNGRkY7IGJvcmRlcjoxcHggc29saWQgIzAwMDsgfSAuYnV0dG9uXzMgYTpob3ZlcnsgYmFja2dyb3VuZDojRkZGOyBjb2xvcjojMDAwOyB9IC5mYkNvbm5lY3RCdG4geyBwb3NpdGlvbjpyZWxhdGl2ZTsgYmFja2dyb3VuZC1jb2xvcjojMzA1ODk4OyBjb2xvcjojZmZmOyBib3JkZXItcmFkaXVzOjNweDsgbGluZS1oZWlnaHQ6MzhweDsgbWFyZ2luLWJvdHRvbToxMHB4OyBmb250LXNpemU6MC44NzVyZW0gOyB0ZXh0LWFsaWduOmNlbnRlcjsgfSAjY2hhdC13aWRnZXQtY29udGFpbmVyLCAjbGl2ZV9jaGF0X3N0YXR1cywgI0NoYXREaXYsICNwb2RpdW0tYnViYmxlLCAjamNvbnQsIGpkaXYsICN0c3dfd3JhcHBlciwgLmZiX2RpYWxvZywgLmZiX2lmcmFtZV93aWRnZXQsIC5mYi1jdXN0b21lcmNoYXQsIC5lay1jaGF0LCAubWF0YWRvci1saXZlY2hhdC0xMjM3ODktbWFpbi13cmFwcGVyLCAjbWF0YWRvci1jb25uZWN0LXRleHQtbGFiZWwsICNtYXRhZG9yLWNvbm5lY3QtdGV4dC1sYWJlbC1iYWRnZXsgei1pbmRleDoxMDAwMCAhaW1wb3J0YW50OyB9IHN2Zy5jaGF0LWJ1YmJsZXsgd2lkdGg6cmV2ZXJ0OyBoZWlnaHQ6cmV2ZXJ0OyB9IC5mYkNvbm5lY3RCdG4gLmZhLWZhY2Vib29reyBjb2xvcjojMzA1ODk4OyB9IGEuZmFjZWJvb2tDb25uZWN0QnRuIHsgY29sb3I6I2ZmZjsgZGlzcGxheTppbmxpbmUtYmxvY2s7IHRleHQtZGVjb3JhdGlvbjpub25lOyBmb250LWZhbWlseTppbmhlcml0OyB9IC5idXR0b25fdmlkZW9zX2ZyIGEsIC5idXR0b25fdmlkZW9zX2VuIGF7IHdpZHRoOjI0OXB4OyBoZWlnaHQ6MzhweDsgZGlzcGxheTpibG9jazsgfSAuYnV0dG9uX3ZpZGVvc19mciBhe2JhY2tncm91bmQ6dXJsKCIvaW1hZ2VzL3ZpZGVvcy1idXR0b25fZnIucG5nIikgbm8tcmVwZWF0IDBweCAwcHggdHJhbnNwYXJlbnQ7fSAuYnV0dG9uX3ZpZGVvc19mciBhOmhvdmVye2JhY2tncm91bmQ6dXJsKCIvaW1hZ2VzL3ZpZGVvcy1idXR0b24taG92ZXJfZnIucG5nIikgbm8tcmVwZWF0IDBweCAwcHggdHJhbnNwYXJlbnQ7fSAuYnV0dG9uX3ZpZGVvc19lbiBhe2JhY2tncm91bmQ6dXJsKCIvaW1hZ2VzL3ZpZGVvcy1idXR0b25fZW4ucG5nIikgbm8tcmVwZWF0IDBweCAwcHggdHJhbnNwYXJlbnQ7fSAuYnV0dG9uX3ZpZGVvc19lbiBhOmhvdmVye2JhY2tncm91bmQ6dXJsKCIvaW1hZ2VzL3ZpZGVvcy1idXR0b24taG92ZXJfZW4ucG5nIikgbm8tcmVwZWF0IDBweCAwcHggdHJhbnNwYXJlbnQ7fSAuYnV0dG9uX3ZpZGVvX2ZyIGEsIC5idXR0b25fdmlkZW9fZW4gYXsgd2lkdGg6MTkzcHg7IGhlaWdodDo1MXB4OyBkaXNwbGF5OmJsb2NrOyB9IC5idXR0b25fdmlkZW9fZnIgYXtiYWNrZ3JvdW5kOnVybCgiL2ltYWdlcy92aWRlby1idXR0b25fZnIucG5nIikgbm8tcmVwZWF0IDBweCAwcHggdHJhbnNwYXJlbnQ7fSAuYnV0dG9uX3ZpZGVvX2ZyIGE6aG92ZXJ7YmFja2dyb3VuZDp1cmwoIi9pbWFnZXMvdmlkZW8tYnV0dG9uLWhvdmVyX2ZyLnBuZyIpIG5vLXJlcGVhdCAwcHggMHB4IHRyYW5zcGFyZW50O30gLmJ1dHRvbl92aWRlb19lbiBhe2JhY2tncm91bmQ6dXJsKCIvaW1hZ2VzL3ZpZGVvLWJ1dHRvbl9lbi5wbmciKSBuby1yZXBlYXQgMHB4IDBweCB0cmFuc3BhcmVudDt9IC5idXR0b25fdmlkZW9fZW4gYTpob3ZlcntiYWNrZ3JvdW5kOnVybCgiL2ltYWdlcy92aWRlby1idXR0b24taG92ZXJfZW4ucG5nIikgbm8tcmVwZWF0IDBweCAwcHggdHJhbnNwYXJlbnQ7fSAuYnV0dG9uX3VuZGVye3dpZHRoOjI0OXB4OyBwYWRkaW5nOjBweDsgbWFyZ2luOjEwcHggMHB4O30gLmJ1dHRvbl91bmRlciBheyB3aWR0aDoxMDAlO21pbi1oZWlnaHQ6MzhweDsgYm9yZGVyLXJhZGl1czozcHg7IGZvbnQtc2l6ZToxLjEyNXJlbSA7IHRleHQtZGVjb3JhdGlvbjpub25lOyB0ZXh0LWFsaWduOmNlbnRlcjsgbGluZS1oZWlnaHQ6MzhweDsgdGV4dC1zaGFkb3c6bm9uZTsgZGlzcGxheTpibG9jayB9IC5idXR0b25fdW5kZXIgYTpob3ZlcnsgYm9yZGVyLXJhZGl1czozcHg7IGZvbnQtc2l6ZToxLjEyNXJlbSA7IHRleHQtZGVjb3JhdGlvbjpub25lOyB0ZXh0LWFsaWduOmNlbnRlcjsgbGluZS1oZWlnaHQ6MzhweDsgdGV4dC1zaGFkb3c6MXB4IDFweCAxcHggIzAwMWUzMTsgfSAuYnV0dG9uX3VuZGVyLnByb21vIGF7YmFja2dyb3VuZC1jb2xvcjojZTgwZDBkOyBiYWNrZ3JvdW5kLWltYWdlOm5vbmU7IGNvbG9yOiNGRkY7IHdpZHRoOjIzN3B4OyBtYXJnaW4tbGVmdDo1cHg7fSAuYnV0dG9uX3VuZGVyLnByb21vMyBhe2JhY2tncm91bmQtY29sb3I6I2ZmMDAwMDsgYmFja2dyb3VuZC1pbWFnZTpub25lOyBjb2xvcjojRkZGOyB3aWR0aDoyMzdweDsgbWFyZ2luLWxlZnQ6NXB4O30gLmJ1dHRvbl91bmRlci5wcm9tbyBhOmhvdmVyLC5idXR0b25fdW5kZXIucHJvbW8yIGE6aG92ZXIsLmJ1dHRvbl91bmRlci5wcm9tbzMgYTpob3ZlcntiYWNrZ3JvdW5kLWltYWdlOnVybCgvaW1hZ2VzL2J1dHRvbl8xaG92ZXIucG5nKX0gLmJ1dHRvbl80e3dpZHRoOjI0OXB4OyBoZWlnaHQ6NTdweDsgZmxvYXQ6bGVmdDsgcGFkZGluZzowcHg7IG1hcmdpbi1ib3R0b206MTBweDt9IC5idXR0b25fNCBheyB3aWR0aDoyNDlweDsgaGVpZ2h0OjUwcHg7IHBhZGRpbmctdG9wOjdweDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9idXR0b25fNC5wbmcpIGxlZnQgdG9wIHJlcGVhdC14OyBib3JkZXItcmFkaXVzOjNweDtmb250LXNpemU6MS4xMjVyZW0gOyBjb2xvcjojRkZGRkZGOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgdGV4dC1hbGlnbjpjZW50ZXI7IGxpbmUtaGVpZ2h0OjIycHg7IHRleHQtc2hhZG93OjFweCAxcHggMXB4ICMwMDFlMzE7IGRpc3BsYXk6YmxvY2sgfSAuYnV0dG9uXzQgYTpob3Zlcnt3aWR0aDoyNDlweDsgaGVpZ2h0OjUwcHg7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvYnV0dG9uXzRob3Zlci5wbmcpIGxlZnQgdG9wIHJlcGVhdC14OyBib3JkZXItcmFkaXVzOjNweDsgZm9udC1zaXplOjEuMTI1cmVtIDsgY29sb3I6I0ZGRkZGRjsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHRleHQtYWxpZ246Y2VudGVyOyBsaW5lLWhlaWdodDoyMnB4OyB0ZXh0LXNoYWRvdzoxcHggMXB4IDFweCAjMDAxZTMxOyB9IC5jaGVja2JveDE1Mnt3aWR0aDphdXRvOyBoZWlnaHQ6MThweDsgZmxvYXQ6bGVmdDsgbWFyZ2luOjA7IHBhZGRpbmc6MCA2cHggMCAwOyBtYXJnaW4tdG9wOjA7IGJvcmRlcjowOyB0b3A6MDsgfSAuQmFzZTIye3dpZHRoOmF1dG87IGhlaWdodDoxOHB4OyBmbG9hdDpsZWZ0OyBtYXJnaW4tcmlnaHQ6NnB4OyBwYWRkaW5nOjZweCA2cHggMCAwOyBtYXJnaW4tdG9wOjA7IGJvcmRlcjowOyB0b3A6MDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzEwMTAxMDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7fSAuYm94OTQwX2xpbmV7d2lkdGg6OTQwcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2xpbmUyNS5wbmcpIGxlZnQgYm90dG9tIHJlcGVhdC14OyBiYWNrZ3JvdW5kLXBvc2l0aW9uOmJvdHRvbTsgYm90dG9tOjA7fSAud2hpdGVfYm94e3dpZHRoOjk0MHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgYmFja2dyb3VuZDojRkZGRkZGOyBvdmVyZmxvdzpoaWRkZW47IC1tb3otYm9yZGVyLXJhZGl1cy10b3BsZWZ0OjZweDsgLW1vei1ib3JkZXItcmFkaXVzLXRvcHJpZ2h0OjZweDsgLW1vei1ib3JkZXItcmFkaXVzLWJvdHRvbXJpZ2h0OjBweDsgLW1vei1ib3JkZXItcmFkaXVzLWJvdHRvbWxlZnQ6MDsgLXdlYmtpdC1ib3JkZXItdG9wLWxlZnQtcmFkaXVzOjZweDsgLXdlYmtpdC1ib3JkZXItdG9wLXJpZ2h0LXJhZGl1czo2cHg7IC13ZWJraXQtYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6MHB4OyAtd2Via2l0LWJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6MDsgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czo2cHg7IGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOjZweDsgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czowOyBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czowO30gLmJveDEwMHt3aWR0aDoyMjBweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMwZjFhMWU7IHRleHQtZGVjb3JhdGlvbjpub25lOyB0ZXh0LWFsaWduOmxlZnQ7IHBhZGRpbmc6MTNweCAwIDE1cHggMTBweDt9IC5ib3gxMDF7d2lkdGg6MTc3cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojMGYxYTFlOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgdGV4dC1hbGlnbjpjZW50ZXI7IHBhZGRpbmc6MTNweCAwIDE1cHg7YmFja2dyb3VuZDp1cmwoIi9pbWFnZXMvbGluZTI1LnBuZyIpIHJlcGVhdC14IHNjcm9sbCBjZW50ZXIgYm90dG9tICNEOUQ5RDk7fSAuYm94MTAye3dpZHRoOjE3N3B4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzBmMWExZTsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHRleHQtYWxpZ246Y2VudGVyOyBwYWRkaW5nOjEzcHggMCAxNXB4O30gLmJveDEwM3t3aWR0aDoxNzdweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMwZjFhMWU7IHRleHQtZGVjb3JhdGlvbjpub25lOyB0ZXh0LWFsaWduOmNlbnRlcjsgcGFkZGluZzoxM3B4IDAgMTVweDtiYWNrZ3JvdW5kOnVybCgiL2ltYWdlcy9saW5lMjUucG5nIikgcmVwZWF0LXggc2Nyb2xsIGNlbnRlciBib3R0b20gI0Q5RDlEOTt9IC5ib3gxMDR7d2lkdGg6MTc4cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojMGYxYTFlOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgdGV4dC1hbGlnbjpjZW50ZXI7IHBhZGRpbmc6MTNweCAwIDE1cHg7fSAuYm94RXZlbnt3aWR0aDoxNzdweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMwZjFhMWU7IHRleHQtZGVjb3JhdGlvbjpub25lOyB0ZXh0LWFsaWduOmNlbnRlcjsgcGFkZGluZzoxM3B4IDBweCAwcHggMHB4O30gLmJveE9kZHt3aWR0aDoxNzdweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMwZjFhMWU7IHRleHQtZGVjb3JhdGlvbjpub25lOyB0ZXh0LWFsaWduOmNlbnRlcjsgcGFkZGluZzoxM3B4IDBweCAwcHggMHB4O2JhY2tncm91bmQ6dXJsKCIvaW1hZ2VzL2xpbmUyNS5wbmciKSByZXBlYXQteCBzY3JvbGwgY2VudGVyIGJvdHRvbSAjRDlEOUQ5O30gLmZpbGVpbnB1dC1idXR0b24sIC5maWxlaW5wdXQtYnV0dG9uOmhvdmVyIHsgZm9udC1zaXplOjAuODc1cmVtICFpbXBvcnRhbnQ7IGxpbmUtaGVpZ2h0OjMxcHg7IHBvc2l0aW9uOnJlbGF0aXZlOyB9IC5maWxlaW5wdXQtYnV0dG9uIGlucHV0IHsgcG9zaXRpb246YWJzb2x1dGU7IHRvcDowOyByaWdodDowOyBtYXJnaW46MDsgb3BhY2l0eTowOyAtbXMtZmlsdGVyOidhbHBoYShvcGFjaXR5PTApJzsgY3Vyc29yOnBvaW50ZXI7IHdpZHRoOjEwMCU7IGhlaWdodDoxMDAlOyB9IC5ib3g5NDBfbWFpbnt3aWR0aDo5NDBweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MHB4IDAgMTVweCAwcHg7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvYm94MjAwX2JnLnBuZykgbGVmdCB0b3AgcmVwZWF0OyAtbW96LWJvcmRlci1yYWRpdXM6NnB4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6NnB4OyBib3JkZXItcmFkaXVzOjZweDsgLWtodG1sLWJvcmRlci1yYWRpdXM6NnB4O30gLndoaXRlX2JveF90ZXh0Mnt3aWR0aDoyMzBweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMwZjFhMWU7IHRleHQtZGVjb3JhdGlvbjpub25lOyB0ZXh0LWFsaWduOmNlbnRlcjt9IC53aGl0ZV9ib3hfdGV4dDN7YmFja2dyb3VuZC1jb2xvcjojRjZGNkY2O2JvcmRlci1sZWZ0OjFweCBzb2xpZCAjQzlDOUM5O2JvcmRlci1yaWdodDoxcHggc29saWQgI0M5QzlDOTtwYWRkaW5nOjEwcHggMHB4O3dpZHRoOjE3NXB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzBmMWExZTsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHRleHQtYWxpZ246Y2VudGVyO30gLndoaXRlX2JveF90ZXh0NHtwYWRkaW5nOjEwcHggMHB4O3dpZHRoOjE3N3B4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzBmMWExZTsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHRleHQtYWxpZ246Y2VudGVyO30gLndoaXRlX2JveF90ZXh0NXtiYWNrZ3JvdW5kLWNvbG9yOiNGNkY2RjY7Ym9yZGVyLWxlZnQ6MXB4IHNvbGlkICNDOUM5Qzk7Ym9yZGVyLXJpZ2h0OjFweCBzb2xpZCAjQzlDOUM5O3BhZGRpbmc6MTBweCAwcHg7d2lkdGg6MTc1cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojMGYxYTFlOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgdGV4dC1hbGlnbjpjZW50ZXI7IH0gLndoaXRlX2JveF90ZXh0NntwYWRkaW5nOjEwcHggMHB4O3dpZHRoOjE3OHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzBmMWExZTsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHRleHQtYWxpZ246Y2VudGVyO30gLndoaXRlX2JveF9ibGFua3t3aWR0aDoxNzhweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMwZjFhMWU7IHRleHQtZGVjb3JhdGlvbjpub25lOyB0ZXh0LWFsaWduOmNlbnRlcjt9IC53aGl0ZV9ib3hfdGV4dE9kZHtwYWRkaW5nOjEwcHggMHB4O3dpZHRoOjE3N3B4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzBmMWExZTsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHRleHQtYWxpZ246Y2VudGVyO30gLndoaXRlX2JveF90ZXh0RXZlbntiYWNrZ3JvdW5kLWNvbG9yOiNGNkY2RjY7Ym9yZGVyLWxlZnQ6MXB4IHNvbGlkICNDOUM5Qzk7Ym9yZGVyLXJpZ2h0OjFweCBzb2xpZCAjQzlDOUM5O3BhZGRpbmc6MTBweCAwcHg7d2lkdGg6MTc1cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojMGYxYTFlOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgdGV4dC1hbGlnbjpjZW50ZXI7fSAuYm94X3RpdGxle3dpZHRoOjkzMHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgcGFkZGluZzozMHB4IDBweCA1cHggMTBweDsgZm9udC1zaXplOjAuOTM4cmVtIDsgY29sb3I6IzBmMWExZTsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHRleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTt9IC5jdXN0b21fMjIge3dpZHRoOjI0MXB4OyBoZWlnaHQ6MTIxcHg7IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MHB4OyBtYXJnaW46MCA4cHggOHB4IDA7IGJhY2tncm91bmQ6I2ViZWJlYjstbW96LWJvcmRlci1yYWRpdXM6OHB4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6OHB4OyBib3JkZXItcmFkaXVzOjhweDsgLWtodG1sLWJvcmRlci1yYWRpdXM6OHB4O2N1cnNvcjpwb2ludGVyO30gLmN1c3RvbV8yMjIge3dpZHRoOjI0MXB4OyBoZWlnaHQ6MTIxcHg7IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MHB4OyBtYXJnaW46MCA4cHggOHB4IDA7IGJhY2tncm91bmQ6I2ZmZmZmZjstbW96LWJvcmRlci1yYWRpdXM6OHB4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6OHB4OyBib3JkZXItcmFkaXVzOjhweDsgLWtodG1sLWJvcmRlci1yYWRpdXM6OHB4O2N1cnNvcjpwb2ludGVyO30gLnRveW90YV9jYW1yeXt3aWR0aDo0MzBweDsgaGVpZ2h0OjIyMnB4OyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjIwcHggMHB4IDBweCAxMHB4OyBtYXJnaW4tcmlnaHQ6OHB4OyBiYWNrZ3JvdW5kOiNlYmViZWI7LW1vei1ib3JkZXItcmFkaXVzOjhweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjhweDsgYm9yZGVyLXJhZGl1czo4cHg7IC1raHRtbC1ib3JkZXItcmFkaXVzOjhweDt9IC50b3lvdGFfY2FtcnkgaDF7IGZvbnQtc2l6ZToxLjg3NXJlbSA7IGNvbG9yOiMzMDMwMzA7IHRleHQtZGVjb3JhdGlvbjpub25lOyBwYWRkaW5nLWJvdHRvbTo1cHg7fSAudG95b3RhX2NhbXJ5IHB7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiM1YTVhNWE7IHRleHQtZGVjb3JhdGlvbjpub25lOyBwYWRkaW5nLWJvdHRvbTo4cHg7fSAuYm94Ml9kZXRhaWxzX3RleHQyNXt3aWR0aDoxMDAlOyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgbWFyZ2luOjE1cHggYXV0bzsgdGV4dC1hbGlnbjpjZW50ZXI7IGZvbnQtc2l6ZToxLjg3NXJlbSA7IGNvbG9yOiNGRkZGRkY7IGZvbnQtd2VpZ2h0OmJvbGQ7IHRleHQtc2hhZG93OjFweCAxcHggNHB4ICM4MjgyODI7fSAuYm94Ml9kZXRhaWxzX3RleHQyNSBzcGFueyB0ZXh0LWFsaWduOmNlbnRlcjsgZm9udC1zaXplOjEuMTI1cmVtIDsgY29sb3I6I2ZmZjsgZm9udC13ZWlnaHQ6Ym9sZDt9IC5ib3gxNXtjdXJzb3I6cG9pbnRlcjt3aWR0aDphdXRvOyBoZWlnaHQ6MjBweDsgZmxvYXQ6bGVmdDsgbWFyZ2luOjBweDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9tZW51MTBfYmcucG5nKSBsZWZ0IHRvcCByZXBlYXQteDsgLW1vei1ib3JkZXItcmFkaXVzOjNweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjNweDsgYm9yZGVyLXJhZGl1czozcHg7IC1raHRtbC1ib3JkZXItcmFkaXVzOjNweDsgcGFkZGluZzo0cHggMnB4OyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojRkZGOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgbWFyZ2luLXJpZ2h0OjFweDsgfSAuYm94MTUgaDJ7Y3Vyc29yOnBvaW50ZXI7ZmxvYXQ6bGVmdDsgcGFkZGluZy1yaWdodDo1cHg7IHBhZGRpbmctdG9wOjBweDt9IC5ib3gxNSBoMiBhe2N1cnNvcjpwb2ludGVyO2Zsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiNGRkY7IHRleHQtZGVjb3JhdGlvbjpub25lOyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2ljb24yLnBuZykgbGVmdCB0b3Agbm8tcmVwZWF0OyBmb250LXdlaWdodDpub3JtYWw7cGFkZGluZy1sZWZ0OjQwcHg7IHBhZGRpbmctcmlnaHQ6MHB4OyBsaW5lLWhlaWdodDoyMHB4O30gLmJveDE1IGgyIGE6aG92ZXJ7Y3Vyc29yOnBvaW50ZXI7ZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6I0ZGRkZGRjsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvaWNvbjIucG5nKSBsZWZ0IHRvcCBuby1yZXBlYXQ7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgbGluZS1oZWlnaHQ6MjBweDt9IC5ib3gxNnt3aWR0aDphdXRvOyBoZWlnaHQ6MjBweDsgZmxvYXQ6bGVmdDsgbWFyZ2luOjBweDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9tZW51MTBfYmcucG5nKSBsZWZ0IHRvcCByZXBlYXQteDsgLW1vei1ib3JkZXItcmFkaXVzOjNweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjNweDsgYm9yZGVyLXJhZGl1czozcHg7IC1raHRtbC1ib3JkZXItcmFkaXVzOjNweDsgcGFkZGluZzo0cHggNHB4IDRweCA4cHg7IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiNGRkY7IHRleHQtZGVjb3JhdGlvbjpub25lOyBtYXJnaW4tcmlnaHQ6MXB4OyB9IC5ib3gxNiBoMntmbG9hdDpsZWZ0OyBwYWRkaW5nLXJpZ2h0OjVweDsgcGFkZGluZy10b3A6MHB4O30gLmJveDE2IGgyIGF7ZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6I0ZGRjsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvaWNvbjMucG5nKSBsZWZ0IHRvcCBuby1yZXBlYXQ7IGZvbnQtd2VpZ2h0Om5vcm1hbDtwYWRkaW5nLWxlZnQ6MjBweDsgcGFkZGluZy1yaWdodDowcHg7IGxpbmUtaGVpZ2h0OjIwcHg7fSAuYm94MTYgaDIgYTpob3ZlcntmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjpyZ2IoMjU1LDI1NSwyNTUpOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9pY29uMy5wbmcpIGxlZnQgdG9wIG5vLXJlcGVhdDsgZm9udC13ZWlnaHQ6bm9ybWFsOyBsaW5lLWhlaWdodDoyMHB4O30gLmJveDE3e3dpZHRoOmF1dG87IGhlaWdodDoyMHB4OyBmbG9hdDpsZWZ0OyBtYXJnaW46MHB4OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL21lbnUxMF9iZy5wbmcpIGxlZnQgdG9wIHJlcGVhdC14OyAtbW96LWJvcmRlci1yYWRpdXM6M3B4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6M3B4OyBib3JkZXItcmFkaXVzOjNweDsgLWtodG1sLWJvcmRlci1yYWRpdXM6M3B4OyBwYWRkaW5nOjRweCA0cHggNHB4IDhweDsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6I0ZGRjsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IG1hcmdpbi1yaWdodDoxcHg7IH0gLmJveDE3IGgye2Zsb2F0OmxlZnQ7IHBhZGRpbmctcmlnaHQ6NXB4OyBwYWRkaW5nLXRvcDowcHg7fSAuYm94MTcgaDIgYXtmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojRkZGOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9pY29uNC5wbmcpIGxlZnQgdG9wIG5vLXJlcGVhdDsgZm9udC13ZWlnaHQ6bm9ybWFsO3BhZGRpbmctbGVmdDoyNXB4OyBwYWRkaW5nLXJpZ2h0OjBweDsgbGluZS1oZWlnaHQ6MjBweDt9IC5ib3gxNyBoMiBhOmhvdmVye2Zsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMwMDU4OWQ7IHRleHQtZGVjb3JhdGlvbjpub25lOyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2ljb240LnBuZykgbGVmdCB0b3Agbm8tcmVwZWF0OyBmb250LXdlaWdodDpub3JtYWw7IGxpbmUtaGVpZ2h0OjIwcHg7fSAuYm94MTh7d2lkdGg6YXV0bzsgaGVpZ2h0OjIwcHg7IGZsb2F0OmxlZnQ7IG1hcmdpbjowcHg7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvbWVudTEwX2JnLnBuZykgbGVmdCB0b3AgcmVwZWF0LXg7IC1tb3otYm9yZGVyLXJhZGl1czozcHg7IC13ZWJraXQtYm9yZGVyLXJhZGl1czozcHg7IGJvcmRlci1yYWRpdXM6M3B4OyAta2h0bWwtYm9yZGVyLXJhZGl1czozcHg7IHBhZGRpbmc6NHB4IDRweCA0cHggOHB4OyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojRkZGOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgbWFyZ2luLXJpZ2h0OjFweDsgfSAuYm94MTggaDJ7ZmxvYXQ6bGVmdDsgcGFkZGluZy1yaWdodDo1cHg7IHBhZGRpbmctdG9wOjBweDt9IC5ib3gxOCBoMiBhe2Zsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiNGRkY7IHRleHQtZGVjb3JhdGlvbjpub25lOyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2ljb241LnBuZykgbGVmdCB0b3Agbm8tcmVwZWF0OyBmb250LXdlaWdodDpub3JtYWw7cGFkZGluZy1sZWZ0OjI1cHg7IHBhZGRpbmctcmlnaHQ6NXB4OyBsaW5lLWhlaWdodDoyMHB4O30gLmJveDE4IGgyIGE6aG92ZXJ7ZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzAwNTg5ZDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvaWNvbjUucG5nKSBsZWZ0IHRvcCBuby1yZXBlYXQ7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgbGluZS1oZWlnaHQ6MjBweDt9IC5ib3gxOXt3aWR0aDphdXRvOyBoZWlnaHQ6MjBweDsgZmxvYXQ6bGVmdDsgbWFyZ2luOjBweDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9tZW51MTBfYmcucG5nKSBsZWZ0IHRvcCByZXBlYXQteDsgLW1vei1ib3JkZXItcmFkaXVzOjNweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjNweDsgYm9yZGVyLXJhZGl1czozcHg7IC1raHRtbC1ib3JkZXItcmFkaXVzOjNweDsgcGFkZGluZzo0cHg7IHBhZGRpbmctcmlnaHQ6M3B4OyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojRkZGOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgbWFyZ2luLXJpZ2h0OjFweDsgfSAuYm94MTkgaDJ7ZmxvYXQ6bGVmdDsgcGFkZGluZy1yaWdodDo1cHg7IHBhZGRpbmctdG9wOjBweDt9IC5ib3gxOSBoMiBhe2Zsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiNGRkY7IHRleHQtZGVjb3JhdGlvbjpub25lOyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2ljb242LnBuZykgbGVmdCB0b3Agbm8tcmVwZWF0OyBmb250LXdlaWdodDpub3JtYWw7cGFkZGluZy1sZWZ0OjI1cHg7IGxpbmUtaGVpZ2h0OjIwcHg7fSAuYm94MTkgaDIgYTpob3ZlcntmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojMDA1ODlkOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9pY29uNi5wbmcpIGxlZnQgdG9wIG5vLXJlcGVhdDsgZm9udC13ZWlnaHQ6bm9ybWFsOyBsaW5lLWhlaWdodDoyMHB4O30gLmJveDExMTR7Y3Vyc29yOnBvaW50ZXI7d2lkdGg6YXV0bzsgaGVpZ2h0OjIwcHg7IGZsb2F0OmxlZnQ7IG1hcmdpbjowcHg7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvYnV0dG9uXzEucG5nKSBsZWZ0IHRvcCByZXBlYXQteDsgLW1vei1ib3JkZXItcmFkaXVzOjNweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjNweDsgYm9yZGVyLXJhZGl1czozcHg7IC1raHRtbC1ib3JkZXItcmFkaXVzOjNweDsgcGFkZGluZzo0cHg7IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiNGRkY7IHRleHQtZGVjb3JhdGlvbjpub25lOyBtYXJnaW4tcmlnaHQ6MXB4OyB9IC5ib3gxMTE0IGgye2N1cnNvcjpwb2ludGVyO2Zsb2F0OmxlZnQ7IHBhZGRpbmctcmlnaHQ6NXB4OyBwYWRkaW5nLXRvcDowcHg7fSAuYm94MTExNCBoMiBhe2N1cnNvcjpwb2ludGVyO2Zsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiNGRkY7IHRleHQtZGVjb3JhdGlvbjpub25lOyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2ljb24yLnBuZykgbGVmdCB0b3Agbm8tcmVwZWF0OyBmb250LXdlaWdodDpub3JtYWw7cGFkZGluZy1sZWZ0OjQwcHg7IHBhZGRpbmctcmlnaHQ6MTBweDsgbGluZS1oZWlnaHQ6MjBweDt9IC5ib3gxMTE0IGgyIGE6aG92ZXJ7Y3Vyc29yOnBvaW50ZXI7ZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzAwNTg5ZDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvaWNvbjIucG5nKSBsZWZ0IHRvcCBuby1yZXBlYXQ7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgbGluZS1oZWlnaHQ6MjBweDt9IC5TcGVjaWZpY2F0aW9uc3t3aWR0aDo2NTFweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IG1hcmdpbjowcHg7IHBhZGRpbmc6MTBweCAwOyBmb250LXNpemU6MS41cmVtIDsgY29sb3I6IzI1MjUyNTsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7Zm9udC13ZWlnaHQ6bm9ybWFsO21hcmdpbi10b3A6NXB4O30gLk1vcmJpMnt3aWR0aDo2MzFweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MTBweDsgbWFyZ2luOjBweDsgYmFja2dyb3VuZDojRUZFRkVGOyAtbW96LWJvcmRlci1yYWRpdXM6M3B4O2ZvbnQtd2VpZ2h0Om5vcm1hbDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjNweDsgYm9yZGVyLXJhZGl1czozcHg7IC1raHRtbC1ib3JkZXItcmFkaXVzOjNweDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzVhNWE1YTsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7fSAuTW9yYmkyIHB7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiM1YTVhNWE7IHRleHQtZGVjb3JhdGlvbjpub25lOyBwYWRkaW5nLWJvdHRvbTo4cHg7fSAuYm94Mjg4OV9taWR7d2lkdGg6Mjc4cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL3JpZ2h0X2JveDRfbWlkLnBuZykgbGVmdCB0b3AgcmVwZWF0LXk7IHBhZGRpbmc6MCA1cHggMjBweCA1cHg7fSAuTW9yYmkyMnt3aWR0aDo2NTFweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MHB4OyBtYXJnaW46MHB4OyAtbW96LWJvcmRlci1yYWRpdXM6M3B4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6M3B4OyBib3JkZXItcmFkaXVzOjNweDsgLWtodG1sLWJvcmRlci1yYWRpdXM6M3B4OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojNWE1YTVhOyB0ZXh0LWRlY29yYXRpb246bm9uZTt9IC5ib3gyODg5X21pZCBoMXsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MTBweCAxMHB4IDIwcHggMTBweDsgZm9udC1zaXplOjEuODc1cmVtIDsgY29sb3I6IzI4MjgyODsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgdGV4dC1hbGlnbjpsZWZ0OyB0ZXh0LXRyYW5zZm9ybTpub25lOyBsaW5lLWhlaWdodDoyNHB4fSAuX2JveDI4ODlfbWlkIGgxeyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgcGFkZGluZzoxMHB4IDEwcHggMjBweCAxMHB4OyBmb250LXNpemU6MS44NzVyZW0gOyBjb2xvcjojMjgyODI4OyB0ZXh0LWRlY29yYXRpb246bm9uZTsgZm9udC13ZWlnaHQ6bm9ybWFsOyB0ZXh0LWFsaWduOmxlZnQ7IHRleHQtdHJhbnNmb3JtOm5vbmU7IGxpbmUtaGVpZ2h0OjI0cHh9IC5ib3gyODg5X21pZCBoMnsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IHBhZGRpbmc6NHB4IDEwcHggMjBweCAxNXB4OyBmb250LXNpemU6MS41cmVtIDsgY29sb3I6IzI4MjgyODsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgdGV4dC1hbGlnbjpsZWZ0OyB0ZXh0LXRyYW5zZm9ybTpub25lOyBsaW5lLWhlaWdodDoyM3B4fSAjc2ltaWxhclRpdGxleyBwYWRkaW5nOjRweCAxMHB4IDlweCAxNXB4OyBmb250LXNpemU6MS40MzhyZW0gOyBmb250LXdlaWdodDpub3JtYWw7IH0gLnRhYmU1e3dpZHRoOjYzMXB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgfSAudGFiZTUgdWx7IGxpc3Qtc3R5bGUtdHlwZTpub25lOyBtYXJnaW46MDsgcGFkZGluZzowOyB0ZXh0LXRyYW5zZm9ybTpub25lOyB9IC50YWJlNSB1bCBsaXsgbGlzdC1zdHlsZS10eXBlOm5vbmU7IG1hcmdpbjowOyBkaXNwbGF5OmJsb2NrO30gLnRhYmU1IHVsIGxpIHNwYW57Y3Vyc29yOnBvaW50ZXI7IGxpc3Qtc3R5bGUtdHlwZTpub25lOyBtYXJnaW46MDsgZGlzcGxheTpibG9jazsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzMyMzIzMjsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHBhZGRpbmc6N3B4IDE1cHggN3B4IDE1cHg7IG1hcmdpbi1yaWdodDoycHg7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgbGluZS1oZWlnaHQ6MThweDsgdGV4dC10cmFuc2Zvcm06bm9uZTsgdGV4dC1hbGlnbjpjZW50ZXI7IHRleHQtdHJhbnNmb3JtOm5vbmU7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvdGFiX2JnLnBuZykgbGVmdCB0b3AgcmVwZWF0LXg7IGZsb2F0OmxlZnQ7IC1tb3otYm9yZGVyLXJhZGl1cy10b3BsZWZ0OjZweDsgLW1vei1ib3JkZXItcmFkaXVzLXRvcHJpZ2h0OjZweDsgLW1vei1ib3JkZXItcmFkaXVzLWJvdHRvbXJpZ2h0OjBweDsgLW1vei1ib3JkZXItcmFkaXVzLWJvdHRvbWxlZnQ6MDsgLXdlYmtpdC1ib3JkZXItdG9wLWxlZnQtcmFkaXVzOjZweDsgLXdlYmtpdC1ib3JkZXItdG9wLXJpZ2h0LXJhZGl1czo2cHg7IC13ZWJraXQtYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6MHB4OyAtd2Via2l0LWJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6MDsgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czo2cHg7IGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOjZweDsgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czowOyBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czowO30gLnRhYmU1IHVsIGxpIHNwYW46aG92ZXJ7IGxpc3Qtc3R5bGUtdHlwZTpub25lOyBkaXNwbGF5OmJsb2NrOyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojN2IwMDAwOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgcGFkZGluZzo3cHggMTVweCA3cHggMTVweDsgbWFyZ2luLXJpZ2h0OjJweDsgZm9udC13ZWlnaHQ6bm9ybWFsOyBsaW5lLWhlaWdodDoxOHB4OyB0ZXh0LXRyYW5zZm9ybTpub25lOyB0ZXh0LWFsaWduOmNlbnRlcjsgdGV4dC10cmFuc2Zvcm06bm9uZTsgYmFja2dyb3VuZDogI2ViZWJlYjsgZmxvYXQ6bGVmdDsgLW1vei1ib3JkZXItcmFkaXVzLXRvcGxlZnQ6NnB4OyAtbW96LWJvcmRlci1yYWRpdXMtdG9wcmlnaHQ6NnB4OyAtbW96LWJvcmRlci1yYWRpdXMtYm90dG9tcmlnaHQ6MHB4OyAtbW96LWJvcmRlci1yYWRpdXMtYm90dG9tbGVmdDowOyAtd2Via2l0LWJvcmRlci10b3AtbGVmdC1yYWRpdXM6NnB4OyAtd2Via2l0LWJvcmRlci10b3AtcmlnaHQtcmFkaXVzOjZweDsgLXdlYmtpdC1ib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czowcHg7IC13ZWJraXQtYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czowOyBib3JkZXItdG9wLWxlZnQtcmFkaXVzOjZweDsgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6NnB4OyBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjA7IGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjA7IH0gLnRhYmU1IHVsIGxpIHNwYW4uYWN0aXZle2N1cnNvcjpkZWZhdWx0OyBsaXN0LXN0eWxlLXR5cGU6bm9uZTsgZGlzcGxheTpibG9jazsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzdiMDAwMDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHBhZGRpbmc6N3B4IDE1cHggN3B4IDE1cHg7IG1hcmdpbi1yaWdodDoycHg7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgbGluZS1oZWlnaHQ6MThweDsgdGV4dC10cmFuc2Zvcm06bm9uZTsgdGV4dC1hbGlnbjpjZW50ZXI7IHRleHQtdHJhbnNmb3JtOm5vbmU7IGJhY2tncm91bmQ6ICNlYmViZWI7IGZsb2F0OmxlZnQ7IC1tb3otYm9yZGVyLXJhZGl1cy10b3BsZWZ0OjZweDsgLW1vei1ib3JkZXItcmFkaXVzLXRvcHJpZ2h0OjZweDsgLW1vei1ib3JkZXItcmFkaXVzLWJvdHRvbXJpZ2h0OjBweDsgLW1vei1ib3JkZXItcmFkaXVzLWJvdHRvbWxlZnQ6MDsgLXdlYmtpdC1ib3JkZXItdG9wLWxlZnQtcmFkaXVzOjZweDsgLXdlYmtpdC1ib3JkZXItdG9wLXJpZ2h0LXJhZGl1czo2cHg7IC13ZWJraXQtYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6MHB4OyAtd2Via2l0LWJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6MDsgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czo2cHg7IGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOjZweDsgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czowOyBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czowOyB9IC50YWJfZGV0YWlsczJ7d2lkdGg6NjMxcHg7IHBhZGRpbmc6MTBweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGJhY2tncm91bmQ6I0VGRUZFRjsgLW1vei1ib3JkZXItcmFkaXVzLXRvcGxlZnQ6MHB4OyAtbW96LWJvcmRlci1yYWRpdXMtdG9wcmlnaHQ6MHB4OyAtbW96LWJvcmRlci1yYWRpdXMtYm90dG9tcmlnaHQ6NnB4OyAtbW96LWJvcmRlci1yYWRpdXMtYm90dG9tbGVmdDo2cHg7IC13ZWJraXQtYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czowcHg7IC13ZWJraXQtYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6MHB4OyAtd2Via2l0LWJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjZweDsgLXdlYmtpdC1ib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjZweDsgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czowcHg7IGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOjBweDsgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czo2cHg7IGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjZweDt9IC5ib3gyNXt3aWR0aDo0ODdweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IG1hcmdpbjowcHg7IGJhY2tncm91bmQ6I0VGRUZFRjsgLW1vei1ib3JkZXItcmFkaXVzOjNweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjNweDsgYm9yZGVyLXJhZGl1czozcHg7IC1raHRtbC1ib3JkZXItcmFkaXVzOjNweDsgbWFyZ2luOjAgMTNweCAwIDA7IHBhZGRpbmc6MjBweCAwIDIwcHggMjBweDt9IC5ib3gyNnt3aWR0aDoyNDNweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7fSAuYm94MjYgdWx7IGxpc3Qtc3R5bGUtdHlwZTpub25lOyBtYXJnaW46MDsgcGFkZGluZzowOyB0ZXh0LXRyYW5zZm9ybTpub25lOyB9IC5ib3gyNiB1bCBsaXsgbGlzdC1zdHlsZS10eXBlOm5vbmU7IG1hcmdpbjowOyBkaXNwbGF5OmJsb2NrO30gLmJveDI2IHVsIGxpIHNwYW57IGxpc3Qtc3R5bGUtdHlwZTpub25lOyBtYXJnaW46MDsgZGlzcGxheTpibG9jazsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzMyMzIzMjsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHBhZGRpbmc6MCA3cHggN3B4IDBweDsgZm9udC13ZWlnaHQ6bm9ybWFsOyBsaW5lLWhlaWdodDoxOHB4OyB0ZXh0LXRyYW5zZm9ybTpub25lOyB0ZXh0LWFsaWduOmxlZnQ7fSAuYm94MjYgdWwgbGkgYXsgbGlzdC1zdHlsZS10eXBlOm5vbmU7IG1hcmdpbjowOyBkaXNwbGF5OmJsb2NrOyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojMzIzMjMyOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgcGFkZGluZzowIDdweCA3cHggMjJweDsgZm9udC13ZWlnaHQ6bm9ybWFsOyBsaW5lLWhlaWdodDoxOHB4OyB0ZXh0LXRyYW5zZm9ybTpub25lOyB0ZXh0LWFsaWduOmxlZnQ7IH0gLmJveDI2IHVsIGxpIGE6aG92ZXJ7IGxpc3Qtc3R5bGUtdHlwZTpub25lOyBtYXJnaW46MDsgZGlzcGxheTpibG9jazsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzdiMDAwMDsgcGFkZGluZzowIDdweCA3cHggMjJweDsgZm9udC13ZWlnaHQ6bm9ybWFsOyBsaW5lLWhlaWdodDoxOHB4OyB0ZXh0LXRyYW5zZm9ybTpub25lOyB0ZXh0LWFsaWduOmxlZnQ7IHRleHQtdHJhbnNmb3JtOm5vbmU7IH0gLmJveDI2IHVsIGxpIGEuYWN0aXZleyBsaXN0LXN0eWxlLXR5cGU6bm9uZTsgbWFyZ2luOjA7IGRpc3BsYXk6YmxvY2s7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiM3YjAwMDA7IHRleHQtZGVjb3JhdGlvbjpub25lOyBwYWRkaW5nOjAgN3B4IDdweCAyMnB4OyBmb250LXdlaWdodDpub3JtYWw7IGxpbmUtaGVpZ2h0OjE4cHg7IHRleHQtYWxpZ246bGVmdDsgdGV4dC10cmFuc2Zvcm06bm9uZTsgfSAuYm94Mjd7d2lkdGg6MTMxcHg7IGhlaWdodDoyOHB4OyBmbG9hdDpsZWZ0OyBtYXJnaW4tYm90dG9tOjhweDsgfSAuYm94MzN7d2lkdGg6NjMxcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0O30gLmJveDMzIHVseyBsaXN0LXN0eWxlLXR5cGU6bm9uZTsgbWFyZ2luOjA7IHBhZGRpbmc6MDsgdGV4dC10cmFuc2Zvcm06bm9uZTsgfSAuYm94MzMgdWwgbGl7IGxpc3Qtc3R5bGUtdHlwZTpub25lOyBtYXJnaW46MDsgZGlzcGxheTpibG9jazt9IC5ib3gzMyB1bCBsaSBheyBsaXN0LXN0eWxlLXR5cGU6bm9uZTsgbWFyZ2luOjA7IGRpc3BsYXk6YmxvY2s7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMzMjMyMzI7IHRleHQtZGVjb3JhdGlvbjpub25lOyBwYWRkaW5nOjAgN3B4IDdweCAwcHg7IG1hcmdpbi1yaWdodDoycHg7IGZvbnQtd2VpZ2h0OmJvbGQ7IGxpbmUtaGVpZ2h0OjE4cHg7IHRleHQtdHJhbnNmb3JtOm5vbmU7IHRleHQtYWxpZ246bGVmdDsgdGV4dC10cmFuc2Zvcm06bm9uZTt9IC5ib3gzMyB1bCBsaSBzcGFueyBsaXN0LXN0eWxlLXR5cGU6bm9uZTsgbWFyZ2luOjA7IGRpc3BsYXk6YmxvY2s7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMzMjMyMzI7IHRleHQtZGVjb3JhdGlvbjpub25lOyBwYWRkaW5nOjAgN3B4IDdweCAwcHg7IG1hcmdpbi1yaWdodDoycHg7IGZvbnQtd2VpZ2h0OmJvbGQ7IGxpbmUtaGVpZ2h0OjE4cHg7IHRleHQtdHJhbnNmb3JtOm5vbmU7IHRleHQtYWxpZ246bGVmdDsgdGV4dC10cmFuc2Zvcm06bm9uZTt9IC5ib3gzMyBweyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojMzIzMjMyOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgcGFkZGluZzowIDBweCA3cHggMHB4OyBmb250LXdlaWdodDpib2xkOyBsaW5lLWhlaWdodDoxOHB4OyB0ZXh0LXRyYW5zZm9ybTpub25lOyB0ZXh0LWFsaWduOmxlZnQ7IH0gLmJveDMzIHVsIGxpIGE6aG92ZXJ7IGxpc3Qtc3R5bGUtdHlwZTpub25lOyBtYXJnaW46MDsgZGlzcGxheTpibG9jazsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzdiMDAwMDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHBhZGRpbmc6MCA3cHggN3B4IDIycHg7IG1hcmdpbi1yaWdodDoycHg7IGZvbnQtd2VpZ2h0OmJvbGQ7IGxpbmUtaGVpZ2h0OjE4cHg7IHRleHQtdHJhbnNmb3JtOm5vbmU7IHRleHQtYWxpZ246bGVmdDsgdGV4dC10cmFuc2Zvcm06bm9uZTsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9hcnJvdzgucG5nKSBsZWZ0IHRvcCBuby1yZXBlYXQ7IH0gLk1vdGV1cnt3aWR0aDoyODBweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IG1hcmdpbi1ib3R0b206NXB4O30gLk1vdGV1ciBoMnt3aGl0ZS1zcGFjZTpub3JtYWw7IHdpZHRoOjEzNXB4OyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC43NXJlbSA7IGNvbG9yOiMyMDIwMjA7fSAuTW90ZXVyIGgze3doaXRlLXNwYWNlOm5vcm1hbDsgd2lkdGg6MTQwcHg7IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgY29sb3I6IzVhNWE1YTt9IC5ib3gyNiB1bCBsaSBzcGFuOmJlZm9yZSwuYm94MzMgdWwgbGkgc3BhbjpiZWZvcmUsLk1vdGV1ciBoMjpiZWZvcmUgeyBjb250ZW50OiJcZjEzOCI7IGZvbnQtZmFtaWx5OidGb250IEF3ZXNvbWUgNSBQcm8nOyBmb250LXdlaWdodDo5MDA7IG1hcmdpbi1yaWdodDo1cHg7IH0gLmJveDI3IGF7d2lkdGg6MTMxcHg7IGhlaWdodDoyOHB4OyBmbG9hdDpsZWZ0OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2J1dHRvbjEwX2JnLnBuZykgbGVmdCB0b3AgcmVwZWF0LXggOyAtbW96LWJvcmRlci1yYWRpdXM6M3B4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6M3B4OyBib3JkZXItcmFkaXVzOjNweDsgLWtodG1sLWJvcmRlci1yYWRpdXM6M3B4OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojRkZGRkZGOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgZm9udC13ZWlnaHQ6bm9ybWFsOyBwYWRkaW5nOjA7IGxpbmUtaGVpZ2h0OjI4cHg7IHRleHQtYWxpZ246Y2VudGVyOyB0ZXh0LXRyYW5zZm9ybTpub25lO30gLmJveDI3IGE6aG92ZXJ7d2lkdGg6MTMxcHg7IGhlaWdodDoyOHB4OyBmbG9hdDpsZWZ0OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2J1dHRvbjEwX2JnLnBuZykgbGVmdCAtMzJweCByZXBlYXQteCA7IC1tb3otYm9yZGVyLXJhZGl1czozcHg7IC13ZWJraXQtYm9yZGVyLXJhZGl1czozcHg7IGJvcmRlci1yYWRpdXM6M3B4OyAta2h0bWwtYm9yZGVyLXJhZGl1czozcHg7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiNGRkZGRkY7IHRleHQtZGVjb3JhdGlvbjpub25lOyBmb250LXdlaWdodDpub3JtYWw7IHRleHQtYWxpZ246Y2VudGVyOyB0ZXh0LXRyYW5zZm9ybTpub25lOyBsaW5lLWhlaWdodDoyOHB4OyB9IC5ib3gyOHt3aWR0aDoxMjdweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IG1hcmdpbjowcHg7IGJhY2tncm91bmQ6IzZmNmY2ZiB1cmwoL2ltYWdlcy9saXRlcl9iZy5wbmcpIGxlZnQgdG9wIHJlcGVhdC14OyAtbW96LWJvcmRlci1yYWRpdXM6M3B4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6M3B4OyBib3JkZXItcmFkaXVzOjNweDsgLWtodG1sLWJvcmRlci1yYWRpdXM6M3B4OyBwYWRkaW5nOjEwcHggMnB4IDEwcHggMnB4OyBtYXJnaW46MCAwcHggMCAwO30gLnRleHQ0NHt3aWR0aDoxMjdweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvbGl0ZXJfbGluZS5wbmcpIGxlZnQgYm90dG9tIHJlcGVhdC14OyBiYWNrZ3JvdW5kLXBvc2l0aW9uOmJvdHRvbTsgdGV4dC1hbGlnbjpjZW50ZXI7IHBhZGRpbmctYm90dG9tOjVweDsgbWFyZ2luLWJvdHRvbTo1cHg7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiNGRkZGRkY7IHRleHQtZGVjb3JhdGlvbjpub25lOyBmb250LXdlaWdodDpub3JtYWw7IHRleHQtYWxpZ246Y2VudGVyOyB0ZXh0LXRyYW5zZm9ybTpub25lOyBsaW5lLWhlaWdodDoxOHB4fSAudGV4dF9ib3g2MHt3aWR0aDoxMzNweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MDsgfSAudGV4dF9ib3g2MCBoMnt3aWR0aDoxMzNweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzI2MjYyNjsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IGZvbnQtd2VpZ2h0OmJvbGQ7IHRleHQtYWxpZ246bGVmdDsgdGV4dC10cmFuc2Zvcm06bm9uZTsgbGluZS1oZWlnaHQ6MThweH0gLnRleHRfYm94NjAgaDN7d2lkdGg6MTMzcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjA7IGZvbnQtc2l6ZToxcmVtIDsgY29sb3I6IzdiMDAwMDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgdGV4dC1hbGlnbjpsZWZ0OyB0ZXh0LXRyYW5zZm9ybTpub25lOyBsaW5lLWhlaWdodDoxOHB4fSAudGV4dF9ib3g2MCBwe3dpZHRoOjEzM3B4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgcGFkZGluZzo1cHggMDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzI2MjYyNjsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IGZvbnQtd2VpZ2h0OmJvbGQ7IHRleHQtYWxpZ246bGVmdDsgdGV4dC10cmFuc2Zvcm06bm9uZTsgbGluZS1oZWlnaHQ6MThweH0gLnZpb3J7d2lkdGg6YXV0bzsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MHB4IDEwcHg7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvdmlvci5wbmcpIGxlZnQgdG9wIHJlcGVhdC14OyBsaW5lLWhlaWdodDoyMnB4OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojRkZGRkZGOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgZm9udC13ZWlnaHQ6bm9ybWFsOyB0ZXh0LWFsaWduOmxlZnQ7IHRleHQtdHJhbnNmb3JtOm5vbmU7IC1tb3otYm9yZGVyLXJhZGl1czo1cHg7IC13ZWJraXQtYm9yZGVyLXJhZGl1czo1cHg7IGJvcmRlci1yYWRpdXM6NXB4OyAta2h0bWwtYm9yZGVyLXJhZGl1czo1cHg7IH0gLmJveDEzM3t3aWR0aDoxMzNweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MDsgbWFyZ2luOjA7fSAuYm94MjU4e3dpZHRoOjI1OHB4OyBib3JkZXItYm90dG9tOjFweCBzb2xpZCAjYjliOWI5OyBwYWRkaW5nOjAgMTBweCA1cHggMTBweDsgbWFyZ2luLWJvdHRvbTo1cHg7IGZsb2F0OmxlZnQ7fSAuYm94MTE2e3dpZHRoOjExNnB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgYm9yZGVyOjJweCBzb2xpZCAjRkZGRkZGOyBwYWRkaW5nOjA7IG1hcmdpbi1yaWdodDo1cHg7fSAuYm94MTE2IGltZ3t3aWR0aDoxMjBweDsgfSAuYm94Mnt3aWR0aDoyNjBweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IG1hcmdpbi1yaWdodDo0N3B4OyBtYXJnaW4tbGVmdDoyMHB4OyBwYWRkaW5nOjAgMCAxMHB4IDVweDsgZm9udC1zaXplOjAuODEzcmVtIDsgY29sb3I6IzI0MjQyNCA7fSAuYm94MiBzcGFue2ZvbnQ6Ym9sZCAxMnB4IFZlcmRhbmEsIEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7IGNvbG9yOiNGRjAwMDB9IC5ib3gze3dpZHRoOjI2MHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgbWFyZ2luLXJpZ2h0OjIwcHg7IHBhZGRpbmc6MCAwIDEwcHggNXB4OyBmb250LXNpemU6MC44MTNyZW0gOyBjb2xvcjojMjQyNDI0IDt9IC5ib3gzIHNwYW57Zm9udDpib2xkIDEycHggVmVyZGFuYSwgQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjsgY29sb3I6I0ZGMDAwMH0gLmJveDR7d2lkdGg6MjY1cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBtYXJnaW46MHB4IDQ1cHggMTBweCAyMHB4OyB9IC5ib3g0NHt3aWR0aDoyNjVweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IG1hcmdpbjowcHggNDdweCAxMHB4IDIwcHg7IHBvc2l0aW9uOnJlbGF0aXZlO30gLmJveDV7d2lkdGg6MjY1cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBtYXJnaW46MHB4IDIwcHggMTBweCAwO30gLmJveDZ7d2lkdGg6MjgwcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBtYXJnaW46MTBweCAwcHggMHB4IDA7fSAuYm94NTV7d2lkdGg6MjY1cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBtYXJnaW46MHB4IDIwcHggMTBweCAwO3Bvc2l0aW9uOnJlbGF0aXZlO30gLmxpbjJ7d2lkdGg6NjE3cHg7IGhlaWdodDoycHg7IGZsb2F0OmxlZnQ7IG1hcmdpbjowcHggMCAxMHB4IDA7IHBhZGRpbmc6MDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9saW5lMi5wbmcpIGxlZnQgdG9wIHJlcGVhdC14O30gLmJveDE0e3BhZGRpbmc6MHB4IDA7IGhlaWdodDoxNXB4OyBmbG9hdDpsZWZ0fSAuYm94MjB7cGFkZGluZzowIDEwcHg7IGZsb2F0OmxlZnQ7IGxpbmUtaGVpZ2h0OjI3cHg7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMyNDI0MjQgOyBmb250LXdlaWdodDpib2xkO30gLnRleHQzMHt3aWR0aDo2MTdweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MTdweCAwOyBmb250LXNpemU6MS4zNzVyZW0gOyBjb2xvcjojMjQyNDI0fSAudGV4dDMwIHNwYW57cGFkZGluZy1yaWdodDoxMHB4OyBmbG9hdDpyaWdodDsgdGV4dC1hbGlnbjpyaWdodDsgZm9udC1zaXplOjAuODc1cmVtIDsgZm9udC13ZWlnaHQ6bm9ybWFsOyBjb2xvcjojMjQyNDI0O30gLnRleHQzMCBzcGFuIHN0cm9uZ3tmb250OmJvbGQgMjBweCBWZXJkYW5hLCBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmOyBjb2xvcjojRkYwMDAwIH0gLmJveDYxN3t3aWR0aDo2MTdweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IHBhZGRpbmctbGVmdDowcHg7IHBhZGRpbmctYm90dG9tOjIwcHg7IG1hcmdpbi1yaWdodDowcHg7fSAubWFpbjYxN3t3aWR0aDo2MTdweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IHBhZGRpbmctbGVmdDowcHg7IG1hcmdpbi10b3A6MTVweDt9IC5ib3gyMEF7cGFkZGluZzowIDVweDsgZmxvYXQ6bGVmdDsgbGluZS1oZWlnaHQ6MjVweDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzI0MjQyNCA7IGZvbnQtd2VpZ2h0OmJvbGQ7fSAub25TaXRlICsgLnByZWZlcnJlZCwgLnByZWZlcnJlZDpoYXMoKy5vblNpdGUpIHsgYWxpZ24tc2VsZjplbmQ7IH0gI3NlcnZpY2VQYWNrYWdlcyB0YWJsZSB7Ym9yZGVyLWNvbGxhcHNlOmNvbGxhcHNlOyB3aWR0aDoxMDAlOyBsaW5lLWhlaWdodDozMHB4OyBtYXJnaW4tYm90dG9tOjE1cHg7IGZvbnQtc2l6ZTo5MCU7fSAjc2VydmljZVBhY2thZ2VzIHRhYmxlIHRib2R5IHRyOm50aC1jaGlsZChvZGQpIHtiYWNrZ3JvdW5kOiNmM2YzZjM7fSAjc2VydmljZVBhY2thZ2VzIHRhYmxlIHRke3BhZGRpbmctdG9wOjAuNXJlbTsgdmVydGljYWwtYWxpZ246dG9wOyBsaW5lLWhlaWdodDoxLjU7fSAjc2VydmljZVBhY2thZ2VzIHRhYmxlIHRkOm50aC1jaGlsZCgyKSB7cGFkZGluZzowLjVyZW07fSAuZGV0YWlsQ2FyVGl0bGUsIC5kZXRhaWxDYXJUaXRsZVdpZGUsIC5kZXRhaWxDYXJUaXRsZUZ1bGwge3dvcmQtd3JhcDpicmVhay13b3JkO2hlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBtYXJnaW46MHB4OyBmb250LXNpemU6MS44NzVyZW0gOyBjb2xvcjojNDE0MTQxO2ZvbnQtd2VpZ2h0Om5vcm1hbDt9IC5kZXRhaWxDYXJUaXRsZSB7d2lkdGg6NDkwcHg7fSAuZGV0YWlsQ2FyVGl0bGVXaWRlIHt3aWR0aDo3NzVweDt9IC5kZXRhaWxDYXJUaXRsZUZ1bGwge3dpZHRoOjEwMCU7fSAubWFpbmJveF90ZXh0YXJlNjE3e2hlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBwYWRkaW5nLWxlZnQ6MHB4OyBtYXJnaW46MjBweCAwOyB0cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUsIDAlKTsgcG9zaXRpb246cmVsYXRpdmU7IGxlZnQ6NTAlO30gLnRleHRib3gyMnt3aWR0aDozODFweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IHBhZGRpbmctbGVmdDowcHg7IG1hcmdpbjowcHggMHB4IDAgMDt9IC5idXR0b241MXsgd2lkdGg6YXV0bzsgaGVpZ2h0OjM2cHg7IGZsb2F0OmxlZnQ7IH0gLmJ1dHRvbjUxIGF7IHdpZHRoOmF1dG87IGhlaWdodDozNnB4OyBmbG9hdDpsZWZ0OyAtbW96LWJvcmRlci1yYWRpdXM6NXB4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6NXB4OyBib3JkZXItcmFkaXVzOjVweDsgLWtodG1sLWJvcmRlci1yYWRpdXM6NXB4OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2J1dHRvbjUucG5nKSBsZWZ0IHRvcCByZXBlYXQteDsgZm9udC1zaXplOjEuMTI1cmVtIDsgY29sb3I6I0ZGRkZGRiA7IHBhZGRpbmc6MCAxMHB4OyBsaW5lLWhlaWdodDozNnB4OyB0ZXh0LWRlY29yYXRpb246bm9uZTsgdGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlOyB9IC5idXR0b241MSBhOmhvdmVyeyB3aWR0aDphdXRvOyBoZWlnaHQ6MzZweDsgZmxvYXQ6bGVmdDsgLW1vei1ib3JkZXItcmFkaXVzOjVweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjVweDsgYm9yZGVyLXJhZGl1czo1cHg7IC1raHRtbC1ib3JkZXItcmFkaXVzOjVweDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9idXR0b241LnBuZykgbGVmdCAtNDRweCByZXBlYXQteDsgZm9udC1zaXplOjEuMTI1cmVtIDsgY29sb3I6I0ZGRkZGRiA7IHBhZGRpbmc6MCAxMHB4OyBsaW5lLWhlaWdodDozNnB4OyB0ZXh0LWRlY29yYXRpb246bm9uZTsgdGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO30gLnRleHQ1NXt3aWR0aDozODFweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IHBhZGRpbmctbGVmdDowcHg7IG1hcmdpbjowcHggMHB4IDIwcHggMDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6dmFyKC0tZGVmYXVsdC1ibGFjaykgOyBsaW5lLWhlaWdodDoxOHB4OyB0ZXh0LWRlY29yYXRpb246bm9uZTsgfSAudGV4dDU1IHB7IHBhZGRpbmctbGVmdDowcHggNXB4IDAgMDsgbWFyZ2luOjBweCAwcHggMHB4IDA7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOnZhcigtLWRlZmF1bHQtYmxhY2spOyBsaW5lLWhlaWdodDoxOHB4OyB0ZXh0LWRlY29yYXRpb246bm9uZTsgfSAucGljYm94XzIyMXtoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgcGFkZGluZy1sZWZ0OjBweDsgbWFyZ2luOjBweCAxNXB4IDAgMDt9IC5waWNib3hfMjIxIGltZyB7IHdpZHRoOjMzMnB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgLW1vei1ib3JkZXItcmFkaXVzOjNweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjNweDsgYm9yZGVyLXJhZGl1czozcHg7IC1raHRtbC1ib3JkZXItcmFkaXVzOjNweDsgfSAuaXNGdWxsV2lkdGhQYWdlIC5waWNib3hfMjIxIGltZyB7IHdpZHRoOjQ0MnB4OyB9IC5waWNib3g2NTF7d2lkdGg6NjUxcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBtYXJnaW46NXB4IDEwcHggMHB4O30gLnBpY2JveDkzMHt3aWR0aDo5MzBweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IG1hcmdpbjo1cHggNXB4IDBweDt9IC5waWNib3g2NTEgaW1nIHsgd2lkdGg6NjUxcHg7IH0gLnBpY2JveDkzMCBpbWcgeyB3aWR0aDo5MzBweDsgfSAucGljYm94NjUxIGltZywgLnBpY2JveDkzMCBpbWcgeyBmbG9hdDpsZWZ0OyBjdXJzb3I6cG9pbnRlcjsgLW1vei1ib3JkZXItcmFkaXVzOjNweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjNweDsgYm9yZGVyLXJhZGl1czozcHg7IC1raHRtbC1ib3JkZXItcmFkaXVzOjNweDsgfSAudG9wUHJvbW9JbWFnZSBpbWcgeyAtbW96LWJvcmRlci1yYWRpdXM6M3B4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6M3B4OyBib3JkZXItcmFkaXVzOjNweDsgLWtodG1sLWJvcmRlci1yYWRpdXM6M3B4OyBtYXJnaW4tdG9wOjVweDsgd2lkdGg6OTMwcHg7IGN1cnNvcjpwb2ludGVyOyB9IC50b3BQcm9tb0ltYWdlVXNlZCBpbWcgeyAtbW96LWJvcmRlci1yYWRpdXM6M3B4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6M3B4OyBib3JkZXItcmFkaXVzOjNweDsgLWtodG1sLWJvcmRlci1yYWRpdXM6M3B4OyB3aWR0aDo2NTBweDsgY3Vyc29yOnBvaW50ZXI7IH0gLnRlYW1fdGl0bGVfZGVhbGVye21hcmdpbi1ib3R0b206MTVweDsgdGV4dC1hbGlnbjpjZW50ZXI7fSAuZm9ybXNfYm94NjYxe3dpZHRoOjk2MHB4OyBoZWlnaHQ6YXV0bzsgbWFyZ2luOjEwcHggYXV0bzsgfSAucGljYm94OTB7d2lkdGg6OTBweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IG1hcmdpbi1yaWdodDo4cHg7IGJvcmRlcjoxcHggc29saWQgI2FjYWNhYzsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjNweDsgYm9yZGVyLXJhZGl1czozcHg7IC1raHRtbC1ib3JkZXItcmFkaXVzOjNweDsgfSAucGljYm94OTAgaW1nIHt3aWR0aDo5MHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgLW1vei1ib3JkZXItcmFkaXVzOjNweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjNweDsgYm9yZGVyLXJhZGl1czozcHg7IC1raHRtbC1ib3JkZXItcmFkaXVzOjNweDsgfSAudGV4dGJveDE5MXt3aWR0aDo1MiU7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44MTNyZW0gOyBsaW5lLWhlaWdodDoxLjI7IGNvbG9yOiMyNDI0MjQ7IH0gLnRleHRib3gxOTEgaDR7IGZvbnQtc2l6ZToxLjEyNXJlbSA7IGNvbG9yOiMyNDI0MjQ7IHBhZGRpbmctYm90dG9tOjVweDsgfSAubWFpbmJveDI5MXt3aWR0aDoyOTFweDsgbWluLWhlaWdodDoxMjNweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IG1hcmdpbjowIDVweCAxMHB4IDA7IGJhY2tncm91bmQ6I2U2ZTZlNjsgYm9yZGVyOjFweCBzb2xpZCAjZDRkNGQ0OyAtbW96LWJvcmRlci1yYWRpdXM6OHB4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6OHB4OyBib3JkZXItcmFkaXVzOjhweDsgLWtodG1sLWJvcmRlci1yYWRpdXM6OHB4OyBwYWRkaW5nOjE1cHggMTBweDt9IC5sYXp5e2JvcmRlcjowO2Rpc3BsYXk6bm9uZX0gLnRlY2hTcGVjc3t3aWR0aDo2MjFweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IG1hcmdpbjowcHg7IHBhZGRpbmc6MjVweCAxNXB4OyBiYWNrZ3JvdW5kOiNlYmViZWI7IGJhY2tncm91bmQtcG9zaXRpb246cmlnaHQgYm90dG9tOyAtbW96LWJvcmRlci1yYWRpdXMtdG9wbGVmdDowcHg7LW1vei1ib3JkZXItcmFkaXVzLXRvcHJpZ2h0OjBweDstbW96LWJvcmRlci1yYWRpdXMtYm90dG9tcmlnaHQ6NnB4Oy1tb3otYm9yZGVyLXJhZGl1cy1ib3R0b21sZWZ0OjZweDstd2Via2l0LWJvcmRlci10b3AtbGVmdC1yYWRpdXM6MHB4Oy13ZWJraXQtYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6MHB4Oy13ZWJraXQtYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6NnB4Oy13ZWJraXQtYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czo2cHg7Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czowcHg7Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6MHB4O2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6NnB4O2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjZweDt9IC5lbWFpbF9saW5re3RleHQtZGVjb3JhdGlvbjpub25lOyBjb2xvcjojODg4O30gLmVtYWlsX2xpbms6aG92ZXJ7dGV4dC1kZWNvcmF0aW9uOm5vbmU7IGNvbG9yOiMzMzM7fSAucGFnZV9uYW1lNTU1IHsgY29sb3I6IzI0MjQyNDsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjEuNXJlbSA7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgaGVpZ2h0OmF1dG87IGxpbmUtaGVpZ2h0OjMwcHg7IHBhZGRpbmc6MCAwIDEwcHggMDsgd2lkdGg6MTAwJTsgYm94LXNpemluZzpib3JkZXItYm94OyBtYXJnaW46MDsgfSAucGFnZV9uYW1lNTU1IGF7IGNvbG9yOiMyNDI0MjQ7IH0gLnBhZ2VfbmFtZTU1NSBhOmhvdmVyeyBjb2xvcjojMjQyNDI0OyB0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lOyB9IC5wYWdlX25hbWU1NTUgYTp2aXNpdGVkeyBjb2xvcjojMjQyNDI0OyB9IC5wYWdlX25hbWVORVc1NTUgeyBjb2xvcjojMjQyNDI0OyBmb250LXdlaWdodDpub3JtYWw7IGhlaWdodDphdXRvOyBmb250LXNpemU6MC44NzVyZW0gOyB9IC5wYWdlX25hbWVORVc1NTUgYXsgY29sb3I6IzI0MjQyNDsgfSAucGFnZV9uYW1lTkVXNTU1IGE6aG92ZXJ7IGNvbG9yOiMyNDI0MjQ7IHRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7IH0gLnBhZ2VfbmFtZU5FVzU1NSBhOnZpc2l0ZWR7IGNvbG9yOiMyNDI0MjQ7IH0gLmJveDJfdGV4dDQ0IHsgY29sb3I6IzI0MjQyNDsgZm9udC1zaXplOjFyZW07IGhlaWdodDphdXRvOyBsaW5lLWhlaWdodDoxOHB4OyBwYWRkaW5nOjEwcHggMCAwIDA7IHdpZHRoOmF1dG87IH0gLnRleHRfYm94MTEgeyBmbG9hdDpsZWZ0OyBoZWlnaHQ6YXV0bzsgbWFyZ2luOjA7IHBhZGRpbmc6MCAyMHB4IDEwcHggMDsgd2lkdGg6YXV0bzsgbGluZS1oZWlnaHQ6MjFweDsgZGlzcGxheTpmbGV4OyBmbGV4LWRpcmVjdGlvbjpjb2x1bW47IH0gLnRleHRfYm94MTEgaDQgeyBjb2xvcjojMjQyNDI0OyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44NzVyZW0gOyBoZWlnaHQ6YXV0bzsgbWFyZ2luOjA7IHBhZGRpbmc6MTBweCAwOyB9IC50ZXh0X2JveDExIGEgeyBjb2xvcjojMjQyNDI0OyBmb250LXNpemU6MC43NXJlbSA7IGhlaWdodDphdXRvOyBtYXJnaW4tbGVmdDowOyBwYWRkaW5nOjEwcHggMDsgZmxvYXQ6bGVmdDsgfSAudGV4dF9ib3gxMSBhOmhvdmVyIHsgY29sb3I6IzI0MjQyNDsgfSAudGV4dF9ib3gxMSBhOnZpc2l0ZWQgeyBjb2xvcjojMjQyNDI0OyB9IC50ZXh0X2JveDExIHVsLCAudGV4dF9ib3gxMSBwIHsgfSAudGV4dF9ib3gxMSB1bCwgLnRleHRfYm94MTEgcCB7IGNvbG9yOiMyNDI0MjQ7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGhlaWdodDphdXRvOyBtYXJnaW46MDsgcGFkZGluZzowIDAgNXB4OyB9IC50ZXh0X2JveDExIHVsIHsgbGlzdC1zdHlsZS1wb3NpdGlvbjppbnNpZGU7IH0gLnRleHRfYm94MTEgcCBhIHsgZm9udC1zaXplOjAuODc1cmVtIDsgbWFyZ2luOjA7IHBhZGRpbmc6MDsgZmxvYXQ6bm9uZTsgfSAucGljYm94MzM2IHsgYm9yZGVyOjFweCBzb2xpZCAjN0Q3RDdEOyBmbG9hdDpsZWZ0OyBoZWlnaHQ6YXV0bzsgbWFyZ2luLXJpZ2h0OjY4cHg7IH0gLmZvbnRfc2l6ZTIxIHsgZm9udC1zaXplOjEuMzEzcmVtICFpbXBvcnRhbnQ7IH0gLnBhZ2VfbmFtZTE4IHsgY29sb3I6IzI0MjQyNDsgZm9udC1zaXplOjEuMTI1cmVtIDsgaGVpZ2h0OmF1dG87IGxpbmUtaGVpZ2h0OjMwcHg7IHBhZGRpbmc6MCAwIDEwcHggMDsgd2lkdGg6MTAwJTsgZm9udC13ZWlnaHQ6Ym9sZDsgfSAucGFnZV9uYW1lMTggYXsgY29sb3I6IzI0MjQyNDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IH0gLnBhZ2VfbmFtZTE4IGE6aG92ZXJ7IGNvbG9yOiMyNDI0MjQ7IHRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7IH0gLnZpZGVvNSB7IGZsb2F0OmxlZnQ7IGhlaWdodDo0MXB4OyBtYXJnaW4tdG9wOjcwcHg7IG1hcmdpbi1sZWZ0OjcwcHg7IH0gLmZsb2F0TG9nb3sgd2lkdGg6NjIxcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBtYXJnaW46MHB4OyBwYWRkaW5nOjI1cHggMTVweDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9MT0dPX0dBX1RSQU5TUEFSRU5ULnBuZykgcmlnaHQgYm90dG9tIG5vLXJlcGVhdDsgYmFja2dyb3VuZC1wb3NpdGlvbjpyaWdodCBib3R0b207IC1tb3otYm9yZGVyLXJhZGl1cy10b3BsZWZ0OjBweDstbW96LWJvcmRlci1yYWRpdXMtdG9wcmlnaHQ6MHB4Oy1tb3otYm9yZGVyLXJhZGl1cy1ib3R0b21yaWdodDo2cHg7LW1vei1ib3JkZXItcmFkaXVzLWJvdHRvbWxlZnQ6NnB4Oy13ZWJraXQtYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czowcHg7LXdlYmtpdC1ib3JkZXItdG9wLXJpZ2h0LXJhZGl1czowcHg7LXdlYmtpdC1ib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czo2cHg7LXdlYmtpdC1ib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjZweDtib3JkZXItdG9wLWxlZnQtcmFkaXVzOjBweDtib3JkZXItdG9wLXJpZ2h0LXJhZGl1czowcHg7Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czo2cHg7Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6NnB4OyB9IC5idXR0b24yLmpxVHJhbnNmb3JtQnV0dG9uIHsgYmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDsgYm9yZGVyOm1lZGl1bSBub25lOyBjb2xvcjojRkZGRkZGOyBjdXJzb3I6cG9pbnRlcjsgZm9udC1zaXplOjAuODEzcmVtIDsgbWFyZ2luOjA7IG92ZXJmbG93OnZpc2libGU7IHBhZGRpbmc6MDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IH0gLmJ1dHRvbjIuanFUcmFuc2Zvcm1CdXR0b24gc3BhbiB7IGJhY2tncm91bmQ6dXJsKCIvaW1hZ2VzL2J0bl9yaWdodDIucG5nIikgbm8tcmVwZWF0IHNjcm9sbCByaWdodCB0b3AgdHJhbnNwYXJlbnQ7IGRpc3BsYXk6YmxvY2s7IGZsb2F0OmxlZnQ7IGhlaWdodDozNXB4OyBtYXJnaW46MDsgcGFkZGluZzowIDZweCAwIDA7IH0gLmJ1dHRvbjIuanFUcmFuc2Zvcm1CdXR0b24gc3BhbiBzcGFuIHsgYmFja2dyb3VuZDp1cmwoIi9pbWFnZXMvYnRuX2xlZnQyLnBuZyIpIG5vLXJlcGVhdCBzY3JvbGwgbGVmdCB0b3AgdHJhbnNwYXJlbnQ7IGNvbG9yOiNGRkZGRkY7IGRpc3BsYXk6YmxvY2s7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgaGVpZ2h0OjI2cHg7IGxpbmUtaGVpZ2h0OjEzcHg7IHBhZGRpbmc6MTJweCAxM3B4IDAgMTVweDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHRleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTsgfSAuYnV0dG9uMi5qcVRyYW5zZm9ybUJ1dHRvbl9ob3ZlciBzcGFuIHNwYW4geyBiYWNrZ3JvdW5kLXBvc2l0aW9uOmxlZnQgLTM4cHg7IH0gLmJ1dHRvbjIuanFUcmFuc2Zvcm1CdXR0b25faG92ZXIgc3BhbiB7IGJhY2tncm91bmQtcG9zaXRpb246cmlnaHQgLTM4cHg7IH0gLmJ1dHRvbjIuanFUcmFuc2Zvcm1CdXR0b25fY2xpY2sgc3BhbiBzcGFuIHsgYmFja2dyb3VuZC1wb3NpdGlvbjpsZWZ0IC02NnB4OyB9IC5idXR0b24yLmpxVHJhbnNmb3JtQnV0dG9uX2NsaWNrIHNwYW4geyBiYWNrZ3JvdW5kLXBvc2l0aW9uOnJpZ2h0IC02NnB4OyB9IC52ZWhpY2xlTGlzdFRhYmxlIHsgbWFyZ2luOjEwcHg7IGZvbnQtc2l6ZTowLjc1cmVtIDsgY29sb3I6IzQxNDE0MTsgfSAudmVoaWNsZUxpc3RUYWJsZSB0ciB0ZCB7IGJvcmRlci1ib3R0b206MXB4IGRvdHRlZCAjNjY2NjY2OyBoZWlnaHQ6MzBweDsgfSAudmVoaWNsZUxpc3RUYWJsZSB0ciB0ZCBheyBjb2xvcjojNDE0MTQxOyBmb250LXNpemU6MC43NXJlbSA7IH0gLnZlaGljbGVMaXN0VGFibGUgdHIgdGQgYTpob3ZlcnsgY29sb3I6IzQxNDE0MTsgZm9udC1zaXplOjAuNzVyZW0gOyB9IC52ZWhpY2xlTGlzdFRhYmxlIHRyIHRkIGE6dmlzaXRlZHsgY29sb3I6IzQxNDE0MTsgZm9udC1zaXplOjAuNzVyZW0gOyB9IC5leHBhbmRSb3d7IGJhY2tncm91bmQtY29sb3I6IzFmMWYxZjsgdGV4dC1hbGlnbjpyaWdodDsgY29sb3I6IzQxNDE0MTsgbWFyZ2luLWxlZnQ6NHB4OyBtYXJnaW4tcmlnaHQ6MnB4OyB9IGRpdi5lcnJvck1zZyB7IGJhY2tncm91bmQtY29sb3I6I2ZmZGRkZDsgYmFja2dyb3VuZC1pbWFnZTp1cmwoIi9pbWFnZXMvZXJyb3IucG5nIik7IGJhY2tncm91bmQtcG9zaXRpb246MTBweCBjZW50ZXI7IGJhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDsgYm9yZGVyOjFweCBzb2xpZDsgY29sb3I6I2QxMDAwYzsgZGlzcGxheTpub25lOyBmbG9hdDpsZWZ0OyB6LWluZGV4Ojk5OTk7IHBhZGRpbmc6MTVweCAxMHB4IDE1cHggNTBweDsgfSBkaXYuZW1haWxTZW50TXNnIHsgYmFja2dyb3VuZC1jb2xvcjojZWZmZmVmOyBiYWNrZ3JvdW5kLWltYWdlOnVybCgiL2ltYWdlcy9hY2NlcHRlZC5wbmciKTsgYmFja2dyb3VuZC1wb3NpdGlvbjoxMHB4IGNlbnRlcjsgYmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0OyBib3JkZXI6MXB4IHNvbGlkICMwOTc3MDA7IGNvbG9yOiMwOTc3MDA7IGRpc3BsYXk6bm9uZTsgZmxvYXQ6bGVmdDsgcGFkZGluZzoxNXB4IDEwcHggMTVweCA1MHB4OyB9IGRpdi50b3lvdEltYWdlIHsgY29sb3I6IzY2NjY2NjsgZm9udC1zaXplOjMuNDM4cmVtIDsgZm9udC13ZWlnaHQ6Ym9sZDsgaGVpZ2h0OjI1MHB4OyBsZWZ0OjA7IG9wYWNpdHk6MC44OyBvdmVyZmxvdzpoaWRkZW47IHBhZGRpbmc6NXB4IDEwcHg7IHBvc2l0aW9uOmFic29sdXRlOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgd2lkdGg6MzgwcHg7IHotaW5kZXg6ODsgfSBkaXYudG95b3RJbWFnZSBwIHsgcGFkZGluZzo1cHg7IG1hcmdpbjowOyBmb250LXNpemU6MC45MzhyZW0gOyBjb2xvcjojQTZBNkE2OyB0ZXh0LWRlY29yYXRpb246bm9uZTsgfSBkaXYubmV3Q2FyTWFpbkJveCB7IHdpZHRoOjk2MHB4OyBtYXJnaW46MCBhdXRvOyB9IGRpdi5uZXdDYXJNYWluQm94MiB7IG1hcmdpbi10b3A6NXB4OyB9IGRpdi5uZXdDYXJNYWluQm94MyB7IHdpZHRoOjk2MHB4OyBoZWlnaHQ6MTJweDsgZmxvYXQ6bGVmdDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9ib3g5NzBfdG9wLnBuZykgbGVmdCB0b3Agbm8tcmVwZWF0OyB9IC5zdG9ja0ltZ1N0eWxleyB3aWR0aDoxMDAlOyBoZWlnaHQ6NTAlOyBmb250LXNpemU6Mi4yNXJlbSA7IHRleHQtYWxpZ246Y2VudGVyOyBmb250LXdlaWdodDpib2xkOyBwYWRkaW5nLXRvcDozMHB4OyBwb3NpdGlvbjphYnNvbHV0ZTsgbWFyZ2luOjBweDsgY29sb3I6IzMwMzAzMDsgfSAjZmlyc3RTbGlkZXJJbWcgeyBiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7IHBvc2l0aW9uOmFic29sdXRlOyB6LWluZGV4OjE1OyB3aWR0aDoxMDAlOyBoZWlnaHQ6YXV0bzsgb3BhY2l0eToxOyBwYWRkaW5nOjA7IG1hcmdpbjowOyB9ICNmaXJzdFNsaWRlckltZyAucGxhY2Vob2xkZXJ7IGJvcmRlcjoxcHggc29saWQgI0ZGRjsgd2lkdGg6NjQwcHg7IGhlaWdodDo0ODBweDsgfSAjZmlyc3RTbGlkZXJJbWcgLnBsYWNlaG9sZGVyIC5pbm5lci1wbGFjZWhvbGRlcnsgcG9zaXRpb246YWJzb2x1dGU7IHdpZHRoOjEwMCU7IGhlaWdodDoxMDAlOyBvdmVyZmxvdzpoaWRkZW47IGRpc3BsYXk6ZmxleDsgdG9wOjA7IGJvdHRvbTowOyBsZWZ0OjA7IHJpZ2h0OjA7IH0gI2ZpcnN0U2xpZGVySW1nIElNR3sgaGVpZ2h0OmF1dG87IG1heC13aWR0aDo2NDBweDsgbWF4LWhlaWdodDo0ODBweDsgd2lkdGg6YXV0bzsgbWFyZ2luOmF1dG87IH0gI2ZpcnN0U2xpZGVySW1nLmZhZGUtb3V0eyB2aXNpYmlsaXR5OmhpZGRlbjsgb3BhY2l0eTowOyAtd2Via2l0LXRyYW5zaXRpb246dmlzaWJpbGl0eSAxbXMgMC4yNXMsIG9wYWNpdHkgMC4yNXMgbGluZWFyOyAtbW96LXRyYW5zaXRpb246dmlzaWJpbGl0eSAxbXMgMC4yNXMsIG9wYWNpdHkgMC4yNXMgbGluZWFyOyAtby10cmFuc2l0aW9uOnZpc2liaWxpdHkgMW1zIDAuMjVzLCBvcGFjaXR5IDAuMjVzIGxpbmVhcjsgdHJhbnNpdGlvbjp2aXNpYmlsaXR5IDFtcyAwLjI1cywgb3BhY2l0eSAwLjI1cyBsaW5lYXI7IH0gI3NvY2lhbFRpbWVsaW5leyB3aWR0aDo5NjBweDsgaGVpZ2h0OmF1dG87IH0gZGl2Lm5ld0Nhck1haW5Cb3g0IHsgd2lkdGg6OTQwcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2JveDk3MF9taWQucG5nKSBsZWZ0IHRvcCByZXBlYXQteTsgcGFkZGluZzoxMHB4IDE1cHg7IH0gZGl2Lm5ld0NhclRpdGxlQm94IGgxeyB3aWR0aDo5NDBweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZToxLjg3NXJlbSA7IGNvbG9yOiMzMDMwMzA7IHRleHQtZGVjb3JhdGlvbjpub25lOyB9IC5ncmF5Ym94IHsgYmFja2dyb3VuZC1jb2xvcjojRUZFRkVGOyBib3JkZXI6MXB4IHNvbGlkICNGRkZGRkY7IGJvcmRlci1yYWRpdXM6M3B4OyBjb2xvcjojMDAwOyBmb250LXNpemU6MC44MTNyZW0gOyBsaW5lLWhlaWdodDpub3JtYWw7IHBhZGRpbmc6MTBweCAwIDEwcHggMDsgdGV4dC1hbGlnbjpjZW50ZXI7IHRleHQtc2hhZG93OjAgMXB4IDAgI0ZGRkZGRjsgfSAuZ3JheWJveCA+IHNwYW4geyBjb2xvcjojMDAwOyBmb250LXNpemU6MC44MTNyZW0gOyB0ZXh0LWFsaWduOmNlbnRlcjsgfSAuZ3JheWJveCAuc21hbGx0ZXh0IHsgYm9yZGVyLWJvdHRvbToxcHggc29saWQgI0NDQ0NDQzsgYm9yZGVyLXRvcDoxcHggc29saWQgI0NDQ0NDQzsgY29sb3I6IzMzMzMzMzsgZm9udC1zaXplOjAuNjg4cmVtIDsgbWFyZ2luLXRvcDoxMHB4OyBwYWRkaW5nOjEwcHg7IH0gLmdyYXlib3ggaDIgeyBjb2xvcjojMDAwOyBmb250LXNpemU6MS41cmVtIDsgZm9udC13ZWlnaHQ6Ym9sZDsgbWFyZ2luOjVweCBhdXRvOyB9IC5leHRlbmRlZFBob25leyBwb3NpdGlvbjpmaXhlZDsgYmFja2dyb3VuZC1jb2xvcjojNjc2NzY3OyBjb2xvcjojZGRkOyBwYWRkaW5nOjAuNmVtOyBib3JkZXItcmFkaXVzOjVweDsgei1pbmRleDo5OTk5OyBmb250LXNpemU6MC44NzVyZW0gOyB0ZXh0LWFsaWduOmxlZnQ7IH0gLmV4dGVuZGVkUGhvbmUgbGFiZWx7IGRpc3BsYXk6aW5saW5lLWJsb2NrOyB9IC5leHRlbmRlZFBob25lIHNwYW57IGNvbG9yOiNmZmY7IH0gLnBob25lTm90ZXsgZm9udC1zaXplOjAuNjg4cmVtIDsgcGFkZGluZy10b3A6N3B4OyB9IC5hZGRlZFNlYXJjaExpbmtzRGl2RXggeyBjb2xvcjojNDE0MTQxOyBmb250LXNpemU6MXJlbSA7IHRleHQtYWxpZ246bGVmdDsgcGFkZGluZy1sZWZ0OjIwcHg7IHBhZGRpbmctdG9wOjMwcHg7IH0gLmFkZGVkU2VhcmNoTGlua3NEaXYgZGl2eyBwYWRkaW5nLWxlZnQ6MTBweDsgcGFkZGluZy10b3A6MTBweDsgd2lkdGg6MjAwcHg7IGZsb2F0OmxlZnQ7IH0gLmFkZGVkU2VhcmNoTGlua3NEaXYgdWx7IG1hcmdpbi1ib3R0b206MjBweDsgZm9udC1zaXplOjAuODEzcmVtIDsgbWFyZ2luLXRvcDo1cHg7IH0gLmFkZGVkU2VhcmNoTGlua3NEaXYgdWwgbGl7IGxpc3Qtc3R5bGU6bm9uZSBvdXRzaWRlIG5vbmU7IGRpc3BsYXk6YmxvY2s7IG1hcmdpbi1sZWZ0OjQwcHg7IHRleHQtaW5kZW50Oi0xMHB4OyB9IC5hZGRlZFNlYXJjaExpbmtzRGl2IHVsIGxpIGF7IGNvbG9yOiMzMzM7IHRleHQtZGVjb3JhdGlvbjpub25lOyBjdXJzb3I6cG9pbnRlcjsgfSAuYWRkZWRTZWFyY2hMaW5rc0RpdiB1bCBsaSBheyBiYWNrZ3JvdW5kOnVybCgiL2ltYWdlcy9hcnJvd19yZWQucG5nIikgbm8tcmVwZWF0IHNjcm9sbCAwIDEwcHggdHJhbnNwYXJlbnQ7IGNvbG9yOiMzMzMzMzM7IG1hcmdpbi1yaWdodDoycHg7IHBhZGRpbmc6NnB4IDEwcHg7IHRleHQtZGVjb3JhdGlvbjpub25lOyB9IC5hZGRlZFNlYXJjaExpbmtzRGl2IHVsIGxpIGE6aG92ZXIgeyB0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lOyB9IC5jb21wYXJlTGlua3MgYXsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IH0gLmNvbXBhcmVMaW5rcyBhOmhvdmVyeyB0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lOyB9IC5lbWFpbEJvZHksIC5lbWFpbFN1YmplY3R7IGRpc3BsYXk6bm9uZTsgfSAjY29udGFjdHVzIGRpdi5lcnJvck1zZyB7IGJhY2tncm91bmQtY29sb3I6I2ZmZGRkZDsgYmFja2dyb3VuZC1pbWFnZTp1cmwoIi9pbWFnZXMvZXJyb3IucG5nIik7IGJhY2tncm91bmQtcG9zaXRpb246MTBweCBjZW50ZXI7IGJhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDsgYm9yZGVyOjFweCBzb2xpZDsgY29sb3I6I2QxMDAwYzsgZGlzcGxheTpub25lOyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjE1cHggMTBweCAxNXB4IDUwcHg7IH0gI2NvbnRhY3R1cyBkaXYuZW1haWxTZW50TXNnIHsgYmFja2dyb3VuZC1jb2xvcjojZWZmZmVmOyBiYWNrZ3JvdW5kLWltYWdlOnVybCgiL2ltYWdlcy9hY2NlcHRlZC5wbmciKTsgYmFja2dyb3VuZC1wb3NpdGlvbjoxMHB4IGNlbnRlcjsgYmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0OyBib3JkZXI6MXB4IHNvbGlkICMwOTc3MDA7IGNvbG9yOiMwOTc3MDA7IGRpc3BsYXk6bm9uZTsgZmxvYXQ6bGVmdDsgcGFkZGluZzoxNXB4IDEwcHggMTVweCA1MHB4OyB9ICNQYWdlRmluYW5jZSAuc3RlcEFjdGl2ZSB7IGJhY2tncm91bmQ6dXJsKCIvaW1hZ2VzLzFfaG92ZXIucG5nIikgbm8tcmVwZWF0IHNjcm9sbCBsZWZ0IHRvcCB0cmFuc3BhcmVudDsgY29sb3I6IzEwMTAxMDsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjIuMjVyZW0gOyBmb250LXdlaWdodDpib2xkOyBoZWlnaHQ6NDZweDsgbGluZS1oZWlnaHQ6NDZweDsgdGV4dC1hbGlnbjpjZW50ZXI7IHRleHQtZGVjb3JhdGlvbjpub25lOyB3aWR0aDo0NnB4OyBtYXJnaW4tbGVmdDoxMHB4OyB9ICNQYWdlRmluYW5jZSAuc3RlcFVuYWN0aXZlIHsgYmFja2dyb3VuZDp1cmwoIi9pbWFnZXMvMV9yb3VuZC5wbmciKSBuby1yZXBlYXQgc2Nyb2xsIGxlZnQgdG9wIHRyYW5zcGFyZW50OyBjb2xvcjojRkZGRkZGOyBmbG9hdDpsZWZ0OyBmb250LXNpemU6Mi4yNXJlbSA7IGZvbnQtd2VpZ2h0OmJvbGQ7IGhlaWdodDo0NnB4OyBsaW5lLWhlaWdodDo0NnB4OyB0ZXh0LWFsaWduOmNlbnRlcjsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHdpZHRoOjQ2cHg7IG1hcmdpbi1sZWZ0OjEwcHg7IH0gI1BhZ2VGaW5hbmNlIC50ZXh0MSBzcGFuIHsgY29sb3I6IzQzNDM0MzsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjEuODc1cmVtIDsgZm9udC13ZWlnaHQ6Ym9sZDsgaGVpZ2h0OjQ2cHg7IGxpbmUtaGVpZ2h0OjQ2cHg7IHBhZGRpbmc6MDsgdGV4dC1hbGlnbjpsZWZ0OyB0ZXh0LWRlY29yYXRpb246bm9uZTsgdGV4dC1zaGFkb3c6MXB4IDFweCAxcHggI0YzRjNGMzsgd2lkdGg6YXV0bzsgfSAjUGFnZUZpbmFuY2UgZGl2LmVtYWlsU2VudE1zZyB7IGJhY2tncm91bmQtY29sb3I6I0I4RkZCODsgYmFja2dyb3VuZC1pbWFnZTp1cmwoIi9pbWFnZXMvYWNjZXB0ZWQucG5nIik7IGJhY2tncm91bmQtcG9zaXRpb246MTBweCBjZW50ZXI7IGJhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDsgYm9yZGVyOjFweCBzb2xpZCAjMEI5NjAwOyBjb2xvcjojMEI5NjAwOyBkaXNwbGF5Om5vbmU7IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MTVweCAxMHB4IDE1cHggNTBweDsgfSAub3RoZXJfbGlua3MgYXsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IH0gLm90aGVyX2xpbmtzIGE6aG92ZXJ7IHRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7IH0gLnByb21vdGlvblNpZGVCdG5BIHsgYmFja2dyb3VuZDojOTEwYTJkOyBjb2xvcjojZmZmZmZmOyBkaXNwbGF5OmJsb2NrO2ZvbnQtc2l6ZToxLjI1cmVtIDt3aWR0aDpmaXQtY29udGVudDtoZWlnaHQ6NTNweDtwYWRkaW5nOjJweCAxNXB4IDBweCAxNXB4O2N1cnNvcjpwb2ludGVyO2xpbmUtaGVpZ2h0OjUzcHg7dGV4dC1kZWNvcmF0aW9uOm5vbmU7YmFja2dyb3VuZC1zaXplOjEwMCU7IC1tb3otYm9yZGVyLXJhZGl1cy10b3BsZWZ0OjNweDsgLW1vei1ib3JkZXItcmFkaXVzLXRvcHJpZ2h0OjNweDsgLW1vei1ib3JkZXItcmFkaXVzLWJvdHRvbXJpZ2h0OjBweDsgLW1vei1ib3JkZXItcmFkaXVzLWJvdHRvbWxlZnQ6MDsgLXdlYmtpdC1ib3JkZXItdG9wLWxlZnQtcmFkaXVzOjNweDsgLXdlYmtpdC1ib3JkZXItdG9wLXJpZ2h0LXJhZGl1czozcHg7IC13ZWJraXQtYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6MDsgLXdlYmtpdC1ib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjA7IGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOjNweDsgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czozcHg7IGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOnB4OyBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjBweDsgdHJhbnNmb3JtOnJvdGF0ZSgtOTBkZWcpOyAtbXMtdHJhbnNmb3JtOnJvdGF0ZSgtOTBkZWcpOyAtd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoLTkwZGVnKTsgfSAuZm9vdGVyTXVsdGlBZGRyZXNzMyB7IGJvcmRlci1yaWdodDoxcHggIzkxOTE5MSBzb2xpZDsgcGFkZGluZy1yaWdodDo3MHB4OyBtYXJnaW4tbGVmdDoxNHB4OyBjb2xvcjojNTc1NzU3OyB9IC5mb290ZXJNdWx0aUFkZHJlc3MyIHsgYm9yZGVyLXJpZ2h0OjFweCAjOTE5MTkxIHNvbGlkOyBwYWRkaW5nLXJpZ2h0OjE1MHB4OyBtYXJnaW4tbGVmdDo5M3B4OyBjb2xvcjojNTc1NzU3OyB9IC5mb290ZXJNdWx0aUFkZHJlc3MxIHsgbWFyZ2luLWxlZnQ6MzQ1cHg7IGNvbG9yOiM1NzU3NTc7IH0gLnNtYWxsQWN0aW9uV2Vic2l0ZUNvbG9yIHsgYmFja2dyb3VuZCA6dXJsKCIvaW1hZ2VzL2JsX2JnMi5wbmciKSBsZWZ0IHRvcCByZXBlYXQteDsgY29sb3I6cmdiKDI1NSwyNTUsMjU1KTsgfSAuc21hbGxBY3Rpb25XZWJzaXRlQ29sb3I6aG92ZXJ7IGJhY2tncm91bmQgOnVybCgiL2ltYWdlcy9tZW51MTBfYmcucG5nIikgbGVmdCB0b3AgcmVwZWF0LXg7IGNvbG9yOiNGRkY7IH0gLm5hdiBsaSBhLnRvcF9saW5rLmlzQm9sZCwgLm5hdiBsaSBhLmlzQm9sZHsgZm9udC13ZWlnaHQ6Ym9sZDsgfSAjbWFpbkhlYWRlciBkaXYuYm94MTVQYWRkaW5neyBwYWRkaW5nLXRvcDoxNXB4OyB9IC5uYXYgLm5vdENsaWNrYWJsZXsgY3Vyc29yOmRlZmF1bHQgIWltcG9ydGFudDsgfSAuUzEwMFBlcmNlbnRXaWR0aHsgd2lkdGg6MTAwJTsgfSAjZmlsdGVyTWFpbkJveCB7IGNvbG9yOiMwMDA7IH0gI2ZpbHRlck1haW5Cb3ggLmZpbHRlclNwYW4sICNmaWx0ZXJNYWluQm94IC5maWx0ZXJDaGVjaywgI2ZpbHRlck1haW5Cb3ggLnJhZGlvU29ydCB7IGN1cnNvcjpwb2ludGVyOyB9IC5iQ29kZVN0eWxlIHsgZmxvYXQ6bGVmdDsgd2lkdGg6MjUlOyBmb250LXNpemU6MC44ZW07IHBhZGRpbmctdG9wOjE1cHg7IHBhZGRpbmctYm90dG9tOjE1cHg7IGJhY2tncm91bmQtY29sb3I6OyB9IC5iQ29kZVNvcnQgeyBmbG9hdDpsZWZ0OyB3aWR0aDoxNiU7IGJhY2tncm91bmQtY29sb3I6OyBmb250LXNpemU6MC44ZW07IHBhZGRpbmctdG9wOjE1cHg7IHBhZGRpbmctYm90dG9tOjE1cHg7IH0gLmJDb2RlU29ydCAuYkNvZGVIZWFkaW5nLCAuYkNvZGVTdHlsZSAuYkNvZGVIZWFkaW5nIHsgbWFyZ2luLWJvdHRvbTo1cHg7IGZvbnQtd2VpZ2h0OmJvbGQ7IHBhZGRpbmctbGVmdDoycHg7IH0gLnBhZ2VfbmFtZTQye3dpZHRoOjk0MHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgcGFkZGluZzowIDBweCAxMHB4IDIxcHg7IGxpbmUtaGVpZ2h0OjMwcHg7IGZvbnQtc2l6ZToxLjVyZW0gOyBjb2xvcjojMTAxMDEwO30gLnBhZ2VfbmFtZTQyIGgyIHtmb250LXNpemU6MS41cmVtIDsgY29sb3I6IzEwMTAxMDtmb250LXdlaWdodDpub3JtYWw7Ym9yZGVyOm5vbmU7fSAucGFnZV9uYW1lNDIgaDIubm90Zmlyc3Qge2ZvbnQtc2l6ZToxLjVyZW0gOyBjb2xvcjojMTAxMDEwO2ZvbnQtd2VpZ2h0Om5vcm1hbDttYXJnaW4tdG9wOjBweDtwYWRkaW5nLXRvcDo0MHB4O2JvcmRlci10b3A6MXB4ICNjY2NjY2Mgc29saWQ7d2lkdGg6OTIwcHg7fSAjZmlsdGVyTWFpbkJveC5uZXdjYXJzc3R5bGUyeyAtbW96LWJvcmRlci1yYWRpdXM6MHB4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6MHB4OyAta2h0bWwtYm9yZGVyLXJhZGl1czowcHg7IGJvcmRlci1yYWRpdXM6MHB4OyBib3JkZXI6bm9uZTsgYm9yZGVyLXRvcDoxcHggc29saWQgI2JlYmViZTsgYm9yZGVyLWJvdHRvbToxcHggc29saWQgI2JlYmViZTsgd2lkdGg6OTU1cHg7IGxlZnQ6M3B4OyB9IGRpdi5pbWRldiBsYWJlbHsgZm9udC13ZWlnaHQ6Ym9sZDsgcGFkZGluZy10b3A6MTBweDsgfSBkaXYuaW1kZXYgZGl2eyBiYWNrZ3JvdW5kOm5vbmU7IGJhY2tncm91bmQtY29sb3I6I0Q5RDlEOTsgcGFkZGluZzoxMHB4IDBweCAxMHB4IDBweDsgd2lkdGg6MTAwJTsgZm9udC1zaXplOjAuODEzcmVtIDsgfSBkaXYuaW1kZXZfaW5uZXIgeyBmb250LXdlaWdodDpub3JtYWw7IG1hcmdpbi1sZWZ0OjMwcHg7IHdpZHRoOjkwJSAhaW1wb3J0YW50OyB9IHVsLnF1aXoge3BhZGRpbmc6MTBweCAwIDEwcHggMjBweDsgbGlzdC1zdHlsZS10eXBlOm5vbmU7IGhlaWdodDoxNzVweDt9IHVsLnF1aXogbGkge3BhZGRpbmc6MTBweDt9IHVsLnF1aXogbGkgaW5wdXQge21hcmdpbi1yaWdodDoxMHB4O30gLm5ld3MtYm9keSB7d2lkdGg6MTAwJTt0ZXh0LWFsaWduOnJpZ2h0O2ZvbnQtc2l6ZTowLjgxM3JlbSA7Y29sb3I6IzE5MTkxOTtwYWRkaW5nLXJpZ2h0OjE1cHg7bWFyZ2luLXRvcDotMjBweDtwYWRkaW5nLWJvdHRvbToxMHB4O30gLm5ld3MtYWxsLXRleHQge2NvbG9yOiMxOTE5MTk7fSAjbmV3c0NvbnRhaW5lciAudGV4dF9ib3gxMSBpbWcgeyBtYXgtd2lkdGg6NjQwcHg7IGRpc3BsYXk6YmxvY2s7IG1hcmdpbjo1cHggYXV0bzsgfSAjbmV3c0NvbnRhaW5lciAudXNlZHsgY2xlYXI6Ym90aDsgfSAuaG9tZV9hY3Rpb25fYWRqIHsgd2lkdGg6OTYxcHg7IH0gLmhvbWVfYWN0aW9uX2FkajIgeyB3aWR0aDo3MzBweCFpbXBvcnRhbnQ7IGhlaWdodDo2MDBweCFpbXBvcnRhbnQ7IH0gLmhvbWVfZW1haWx7IHdpZHRoOjIzMnB4OyBtYXJnaW4tbGVmdDo1cHg7IG1hcmdpbi1ib3R0b206NXB4OyB9IC53aWRnZXRfbWVudV9hZGoxeyBmb250LXNpemU6MC44ZW07IH0gLndpZGdldF9tZW51X2FkajJ7IGZsb2F0OnJpZ2h0O3Bvc2l0aW9uOnJlbGF0aXZlO3RvcDotMnB4OyB9IC53aWRnZXRfbWVudV9leHRlbmRlZFBob25leyBmb250LXNpemU6MC44ZW07IG1hcmdpbi1sZWZ0OjEwNHB4OyB0b3A6MTMycHg7IH0gLndpZGdldF9tZW51X2FkajN7IGZvbnQtc2l6ZTowLjhlbTtjb2xvcjojNTc1NzU3O3Bvc2l0aW9uOnJlbGF0aXZlO2xlZnQ6LThweDsgfSAud2lkZ2V0X21lbnVfYWRqNHsgcG9zaXRpb246cmVsYXRpdmU7IGZvbnQtc2l6ZTowLjhlbTsgZGlzcGxheTp0YWJsZTsgfSAucGhvbmVfdGV4dC5yaWdodCB7IGZsb2F0Om5vbmU7IGhlaWdodDppbml0aWFsOyBtYXJnaW4tbGVmdDphdXRvOyB3aWR0aDppbmhlcml0OyB9IC5waG9uZV90ZXh0IC50ZWwgeyBtYXJnaW4tbGVmdDoxMHB4OyB9IC5waG9uZV90ZXh0IGxhYmVsIHsgZGlzcGxheTpmbGV4OyBqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjsgbWFyZ2luLWJvdHRvbTo0cHg7IH0gLndpZGdldF9tZW51X2FkajQucmlnaHQgeyBwYWRkaW5nLWxlZnQ6MTBweDsgdGV4dC1hbGlnbjpyaWdodDsgfSAud2lkZ2V0X21lbnVfYWRqNC5sZWZ0IHsgcGFkZGluZy1yaWdodDoxMHB4OyB3aWR0aDppbmhlcml0OyB9IC53aWRnZXRfbWVudV9hZGo2eyBmb250LXNpemU6MC44ZW07cG9zaXRpb246cmVsYXRpdmU7bGVmdDotM3B4O2NvbG9yOiM1NzU3NTc7Y3Vyc29yOnBvaW50ZXI7IH0gLndpZGdldF9leHByZXNzX21haWxfcGhvbmVfdGl0bGV7IGJvcmRlci1ib3R0b206MXB4IHNvbGlkICNhYWE7dGV4dC1hbGlnbjogY2VudGVyO2ZvbnQtc2l6ZToxLjVyZW0gOyBmb250LXdlaWdodDpib2xkOyBwYWRkaW5nLWJvdHRvbTo4cHg7IHBhZGRpbmctdG9wOjhweDsgY29sb3I6IzEwMTAxMDsgfSAud2lkZ2V0X2V4cHJlc3NfbWFpbF9hZGoxeyBwYWRkaW5nOjE1cHggMTBweDsgbGluZS1oZWlnaHQ6NjBweDsgZm9udC1zaXplOjJlbTsgcGFkZGluZzoxNXB4IDEwcHg7dGV4dC1hbGlnbjpjZW50ZXI7IH0gLmJhbm5lclBvcHVwQ2xvc2V7IGxlZnQ6NzEwcHg7IHBvc2l0aW9uOnJlbGF0aXZlOyB3aWR0aDoxNXB4OyB0b3A6MjBweDsgY3Vyc29yOnBvaW50ZXI7IH0gLnByaWNlTm90ZSB7IGNvbG9yOiM3NTc1NzU7IGZvbnQtc3R5bGU6aXRhbGljOyB0ZXh0LWFsaWduOmp1c3RpZnk7IGRpc3BsYXk6YmxvY2s7IHBhZGRpbmctcmlnaHQ6MTBweDsgZm9udC1zaXplOjAuNzVyZW0gIWltcG9ydGFudDsgbWFyZ2luLWJvdHRvbToxNHB4OyB9IC5zdGFja2VkRGlzY2xhaW1lcnsgZGlzcGxheTpibG9jazsgbWFyZ2luLXRvcDoxMHB4OyB9IHNwYW4uc3RhY2tlZERpc2NsYWltZXI6YmVmb3JleyBjb250ZW50OiIqKiI7IHBvc2l0aW9uOnJlbGF0aXZlOyBmb250LXNpemU6MXJlbTsgfSAudG9wcmludHsgZGlzcGxheTpub25lOyB9IC5yZWZmZXJlbmNlQ29udGVudERlbW8sIC5yZWZmZXJlbmNlQ29udGVudENsZWFyYW5jZXsgcGFkZGluZzozMHB4IDIwcHg7IGJvcmRlci1ib3R0b206MXB4IHNvbGlkICNjY2M7IG1hcmdpbi1ib3R0b206MjBweDsgfSAuYm94Ml9kZXRhaWxzX3RleHQyIC5jb21wYXJlQnV0dG9uLCAuYm94Ml9kZXRhaWxzX3RleHQyMiAuY29tcGFyZUJ1dHRvbnsgcG9zaXRpb246YWJzb2x1dGU7IG1hcmdpbi10b3A6LTIwcHg7IHotaW5kZXg6MTsgbGVmdDotMzBweDsgfSAudmRweyBjbGVhcjpib3RoOyB3aWR0aDoxNjBweDsgfSAuY29tcGFyZUJ1dHRvbnsgdHJhbnNpdGlvbjpib3gtc2hhZG93IDAuMjVzIGVhc2Utb3V0IDBzOyB0cmFuc2l0aW9uOnRyYW5zZm9ybSAwLjI1cyBlYXNlLW91dCAwczsgZGlzcGxheTpub25lOyB9IGRpdiNzbGlkZXItcHJvLTEyIHsgYm9yZGVyOjFweCBzb2xpZCAjRUJFQkVCOyBib3JkZXItcmFkaXVzOjNweDsgYmFja2dyb3VuZDojZmZmOyB9ICNzbGlkZXJQcm9tb0FsZXJ0eyBib3JkZXItcmFkaXVzOjNweCAzcHggMCAwOyB9IC5zbGlkZS13cmFwcGVyeyBib3JkZXItcmFkaXVzOjNweDsgfSAjc2xpZGVpdCBsYWJlbC5vcGVueyBib3JkZXItcmFkaXVzOjNweCAwIDAgM3B4OyB9IGltZy5pbWFnZSB7IGJvcmRlci1yYWRpdXM6M3B4OyB9IC5uZXdWZHBWaWV3ZXIgLmNvbXBhcmVCdXR0b257IHBvc2l0aW9uOmFic29sdXRlOyBib3R0b206MnB4OyByaWdodDowcHg7IHotaW5kZXg6MTExMTsgfSAubGl2ZUFsZXJ0X2xpbmt7IGNvbG9yOiNGRkZGRkY7IHRleHQtZGVjb3JhdGlvbjpub25lOyBmb250LXdlaWdodDpib2xkOyB9IC5saXZlQWxlcnRfbGluazpob3ZlciB7IHRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7IH0gLmJ1dHRvbi10b2FzdHJ7IGJhY2tncm91bmQ6I0ZGRjtwYWRkaW5nOjRweCAyMHB4O2JvcmRlci1yYWRpdXM6NXB4OyBjb2xvcjojQkQzNjJGIWltcG9ydGFudDsgfSAuYnV0dG9uLXRvYXN0cjpob3ZlcnsgYmFja2dyb3VuZDojMDAwOyBjb2xvcjojRkZGOyB9IC5yZXR1cm5Qb3B1cF9zdWJtaXQgc3BhbiB7IHBvc2l0aW9uOmFic29sdXRlIWltcG9ydGFudDsgdG9wOjUwJSFpbXBvcnRhbnQ7IGRpc3BsYXk6YmxvY2shaW1wb3J0YW50OyB0ZXh0LWFsaWduOmNlbnRlciFpbXBvcnRhbnQ7IGxlZnQ6MCFpbXBvcnRhbnQ7IHJpZ2h0OjAhaW1wb3J0YW50OyBwYWRkaW5nOjAgOHB4IDAgOHB4IWltcG9ydGFudDsgY3Vyc29yOnBvaW50ZXIhaW1wb3J0YW50OyBmb250LXNpemU6MC44NzVyZW0gIWltcG9ydGFudDsgbWFyZ2luOjAhaW1wb3J0YW50OyBjb2xvcjojRkZGIWltcG9ydGFudDsgbWFyZ2luLXRvcDotOXB4IWltcG9ydGFudDsgfSByZXR1cm5Qb3B1cF9zdWJtaXQ6aG92ZXIgeyBiYWNrZ3JvdW5kLWNvbG9yOiMwYmIxZTA7IGNvbG9yOiNmZmY7IH0gLnJldHVyblBvcHVwX3N1Ym1pdCB7IGRpc3BsYXk6YmxvY2s7IGJvcmRlci1zdHlsZTpzb2xpZDsgYm9yZGVyLXJhZGl1czo1cHg7IGxlZnQ6MjI4cHg7IHotaW5kZXg6NTsgd2lkdGg6MjI1cHg7IGhlaWdodDo0MHB4OyBwb3NpdGlvbjphYnNvbHV0ZTsgYmFja2dyb3VuZC1jb2xvcjojOTEwYTJkOyB0ZXh0LXNoYWRvdzoxcHggMXB4ICMwMDJiNDY7IGNvbG9yOiNmZmY7IGJvcmRlci13aWR0aDoxcHg7IGJvcmRlci1jb2xvcjojMzMzMzMzOyBmb250LXNpemU6MXJlbSA7IGxpbmUtaGVpZ2h0OjE5cHg7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgdGV4dC1hbGlnbjpjZW50ZXI7IGJhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDsgfSAjcmV0dXJuUG9wdXBGb3JtX3dyYXBwZXIgeyBkaXNwbGF5OmJsb2NrOyBiYWNrZ3JvdW5kOnJnYmEoNjYsNjYsNjYsMSk7IGJvcmRlci1zdHlsZTpub25lOyBib3JkZXItcmFkaXVzOjExcHg7IGxlZnQ6MjgwcHg7IHRvcDoxNTVweDsgei1pbmRleDoyOyB3aWR0aDo1MzFweDsgaGVpZ2h0OjM4NHB4OyBwb3NpdGlvbjphYnNvbHV0ZTsgfSAjcmV0dXJuUG9wdXBUaWx0ZXsgd2lkdGg6MzM1cHg7IGZsb2F0OnJpZ2h0OyBtYXJnaW46MjBweDsgY29sb3I6IzEwMTAxMDsgZm9udC1zaXplOjEuMTI1cmVtIDsgfSAjcmV0dXJuUG9wdXBUaWx0ZSAucnBfbWN7IGZvbnQtc2l6ZToxLjEyNXJlbSAhaW1wb3J0YW50OyB9ICNyZXR1cm5Qb3B1cFRpbHRlMnsgY29sb3I6I0ZGRjsgbWFyZ2luOjIwcHggMTBweCAyMHB4IDIwcHg7IHBhZGRpbmc6MDsgfSAucmV0dXJuUG9wdXBGb3JtX2xhYmVsIHsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXNpemU6MC44MTNyZW0gOyBsaW5lLWhlaWdodDoxNHB4OyBjb2xvcjojYmZiZmJmOyBtYXJnaW4tbGVmdDoyMHB4OyBkaXNwbGF5OmlubGluZS1ibG9jazsgfSAucmV0dXJuUG9wdXBGb3JtX3RhYmxlIHRyIHRkeyBwYWRkaW5nLWJvdHRvbToxMHB4OyB9IC5ycF9tYyB7IGZvbnQtc2l6ZTowLjg3NXJlbSAhaW1wb3J0YW50OyBjb2xvcjojOTEwYTJkIWltcG9ydGFudDsgcGFkZGluZzowIWltcG9ydGFudDsgbWFyZ2luOjAhaW1wb3J0YW50OyB9ICNleGl0UG9wdXBDb250YWluZXJ7IHBhZGRpbmc6MDsgYmFja2dyb3VuZC1pbWFnZTpub25lOyB9ICNleGl0X3BvcHVwX2FjY3V0cmFkZV9mb3JteyBoZWlnaHQ6MzRyZW07IGJhY2tncm91bmQtaW1hZ2U6dXJsKC9pbWFnZXMvcG9wdXBzL3RyYWRlaW4tZXhpdHBvcHVwLWZyLnBuZyk7IGJhY2tncm91bmQtY29sb3I6dmFyKC0tZXhpdC1wb3B1cC1iZ2NvbCwgI2VlZSk7IH0gYm9keS5FTkdMSVNIICNleGl0X3BvcHVwX2FjY3V0cmFkZV9mb3JteyBiYWNrZ3JvdW5kLWltYWdlOnVybCgvaW1hZ2VzL3BvcHVwcy90cmFkZWluLWV4aXRwb3B1cC1lbi5wbmcpOyB9IC5leGl0X3BvcHVwX2J1dHRvbnMgYnV0dG9uIHsgd2lkdGg6MTFyZW07IGZvbnQtd2VpZ2h0OmJvbGQ7IH0gLmV4aXRfcG9wdXBfdGV4dF9saW5lXzJ7IG1hcmdpbi10b3A6MjdweDsgbWFyZ2luLWJvdHRvbTo1cHg7IH0gLmV4aXRfcG9wdXBfdGV4dF9saW5lXzN7IGZvbnQtc2l6ZToxLjYyNXJlbSA7IG1hcmdpbi1ib3R0b206M3B4OyBmb250LXdlaWdodDpib2xkZXI7IH0gLmV4aXRfcG9wdXBfdGV4dF9saW5lXzUgeyBtYXJnaW4tYm90dG9tOjIwcHg7IGZvbnQtc2l6ZToxLjYyNXJlbSA7IGZvbnQtd2VpZ2h0OmJvbGRlcjsgbWFyZ2luLXRvcDo2M3B4OyB9ICNleGl0X3BvcHVwX2FjY3V0cmFkZV90aXRsZXsgaGVpZ2h0Ojk1cHg7IHdpZHRoOjU3MHB4OyBtYXJnaW4tdG9wOjIwcHg7IH0gI2V4aXRfcG9wdXBfYWNjdXRyYWRlX3RpdGxlLl9GUkVOQ0h7IGJhY2tncm91bmQtaW1hZ2U6dXJsKC9pbWFnZXMvcG9wdXBzL2FjY3UtdHJhZGUtZXhpdC10aXRsZV9mci5wbmcpOyB9ICNleGl0X3BvcHVwX2FjY3V0cmFkZV90aXRsZS5fRU5HTElTSHsgYmFja2dyb3VuZC1pbWFnZTp1cmwoL2ltYWdlcy9wb3B1cHMvYWNjdS10cmFkZS1leGl0LXRpdGxlX2VuLnBuZyk7IH0gI2Jlc3RQcmljZVZkcE5ld1BvcHVwQ29udGFpbmVyeyB3aWR0aDo0ODBweDsgaGVpZ2h0OjUxMHB4OyB9ICNiZXN0UHJpY2VWZHBOZXdQb3B1cENvbnRhaW5lciAucG9wdXBfYmd7IHdpZHRoOjQ4MHB4OyBoZWlnaHQ6NTE1cHg7IH0gI2Jlc3RQcmljZVZkcE5ld1BvcHVwQ29udGFpbmVyIC5wb3B1cF9iZ3sgYmFja2dyb3VuZC1pbWFnZTp1cmwoJy9pbWFnZXMvcG9wdXBzL2ZyL2Jlc3RQcmljZU5ld1ZkcC5wbmcnKTsgfSAucG9wdXBfYmd7IGJhY2tncm91bmQtY29sb3I6IzEwMTAxMDsgYmFja2dyb3VuZC1zaXplOjQ4MHB4IDUxNXB4OyB9IC5wb3B1cEZvcm0gLmFzdGVyaXNreyBjb2xvcjojZDAwOyBmb250LXdlaWdodDpib2xkOyBwYWRkaW5nOjA7IGZvbnQtc2l6ZTppbmhlcml0OyBtYXJnaW46MDsgfSAucG9wdXBGb3JteyB6LWluZGV4OjUwOyBwb3NpdGlvbjphYnNvbHV0ZTsgdG9wOjI0OHB4OyBoZWlnaHQ6MjQ5cHg7IGxlZnQ6ODBweDsgYmFja2dyb3VuZDp1cmwoIi9pbWFnZXMvY291cG9uLWZvcm0tYmctMi5wbmciKSBuby1yZXBlYXQ7IHdpZHRoOjMzNXB4OyBwYWRkaW5nOjMwcHg7IH0gLnBvcHVwRm9ybVRpdGxleyBoZWlnaHQ6NDBweDsgbWFyZ2luOjhweDsgZm9udC1zaXplOjAuOTM4cmVtIDsgZm9udC13ZWlnaHQ6Ym9sZDsgfSAucG9wdXBGb3JtSW5wdXRzIHRkIHsgZm9udC1zaXplOjAuODc1cmVtIDsgdGV4dC1hbGlnbjpyaWdodDsgcGFkZGluZy1yaWdodDoxMHB4OyBwYWRkaW5nLWJvdHRvbTozcHg7IH0gLnBvcHVwRm9ybSBpbnB1dHsgd2lkdGg6MjEwcHg7IH0gI2FzUHVyY2hhc2VJbnRlbnR7IHdpZHRoOjYwMHB4OyBwYWRkaW5nOjMwcHggMzBweDsgaGVpZ2h0OmF1dG87IGNvbG9yOiMwMDA7IGJhY2tncm91bmQtY29sb3I6I2VlZTsgei1pbmRleDoxMDAwMDIxOyB9ICNwcm9tb0Rpc2NvdmVyQnV0dG9ueyB9IC5uZXdWZHBWaWV3ZXIgeyB3aWR0aDo2NDBweDsgaGVpZ2h0OjQ4MHB4OyBmbG9hdDpsZWZ0OyBtYXJnaW4tbGVmdDoyMHB4OyB9IC5sb2NhdGlvbi1uYW1lcyB7IHBvc2l0aW9uOnN0YXRpYzsgfSAjTWFpbk1lbnVfREVBTEVSU0hJUFMgPiB1bC5zdWIgPiBsaSA+IHVsIHsgcG9zaXRpb246c3RhdGljOyB9IC5pbWdfbWVudS51cF9tZW51IHVsLm5hdiB1bC5zdWIgbGkgLmxvY2F0aW9uLW5hbWVzIHsgbWluLXdpZHRoOjIwMHB4OyB9ICNNYWluTWVudV9ERUFMRVJTSElQUyBsaS5sb2NhdGlvbi1uYW1lcyB7IG1pbi13aWR0aDoyMDBweDsgfSAubG9jYXRpb24tbmFtZXMsIC5sb2NhdGlvbi1uYW1lcyBsaSB7IGxpc3Qtc3R5bGU6bm9uZTsgfSAuTDEwMCB7IGxlZnQ6MTAwJTsgfSAuUjEwMCB7IHJpZ2h0OjEwMCU7IH0gLmxvY2F0aW9uLW5hbWVzIC5sb2NhdGlvbi1kZXRhaWxzIHsgcG9zaXRpb246YWJzb2x1dGU7IHRvcDowOyBwYWRkaW5nOjE0cHg7IGJveC1zaGFkb3c6MCA2cHggMTJweCByZ2JhKDAsMCwwLC4xNzUpOyBkaXNwbGF5Om5vbmU7IGJhY2tncm91bmQtY29sb3I6d2hpdGU7IG1pbi13aWR0aDoyOTBweDsgfSAubG9jYXRpb24tbmFtZXMgLmxvY2F0aW9uLWRldGFpbHMgPiAudGl0bGUgeyBtYXJnaW4tYm90dG9tOjFlbTsgZm9udC1zaXplOmluaXRpYWw7IGNvbG9yOiMwMDAwMDA7IH0gLmxvY2F0aW9uLW5hbWVzIC5sb2NhdGlvbi1kZXRhaWxzID4gLmxvY2F0aW9uLWRldGFpbHMtbG9nbyA+IGltZyB7IG1heC13aWR0aDoxMDAlOyBtYXJnaW4tYm90dG9tOjhweDsgfSBsaS5sb2NhdGlvbi1uYW1lczpob3ZlciAubG9jYXRpb24tZGV0YWlscyB7IGRpc3BsYXk6YmxvY2s7IH0gbGkubG9jYXRpb24tbmFtZXM6aG92ZXIgLm1haW5tZW51LXN1Ym1lbnUgeyBvcGFjaXR5OjE7IHZpc2liaWxpdHk6dmlzaWJsZTsgfSAubG9jYXRpb24tbmFtZXMgLmxvY2F0aW9uLWRldGFpbHMgLmxvY2F0aW9uLWRldGFpbHMtbG9nbyB7IGJvcmRlci1ib3R0b206MXB4IHNvbGlkICNlNWU1ZTU7IG1hcmdpbi1ib3R0b206OHB4OyB0ZXh0LWFsaWduOmNlbnRlcjsgfSAjTWFpbk1lbnVfREVBTEVSU0hJUFMgLmxvY2F0aW9uLW5hbWVzIC5tYWlubWVudS1zdWJtZW51IC5sb2NhdGlvbi1kZXRhaWxzIHsgbWF4LWhlaWdodDo2MHZoOyBwb3NpdGlvbjpzdGF0aWM7IH0gLnVwX21lbnUgdWwubmF2IC5sb2NhdGlvbi1kZXRhaWxzLWluZm8gYSB7IGNvbG9yOiMxMDEwMTA7IHBhZGRpbmc6MDsgfSAubG9jYXRpb24tZGV0YWlscy1pbmZvIC5sb2NhdGlvbi1zcGFjaW5nLW1sLTEzIHsgbWFyZ2luLWxlZnQ6MTMuNDlweDsgfSAudXBfbWVudSB1bC5uYXYgbGkuZGV0YWlscy1pbmZvLWxpbmsgYSB7IGRpc3BsYXk6aW5saW5lLWJsb2NrOyB9IC51cF9tZW51IHVsLm5hdiAuZGV0YWlscy1pbmZvLWxpbms6aG92ZXIgYSB7IGNvbG9yOiNmZmZmZmY7IH0gI01haW5NZW51X0RFQUxFUlNISVBTID4gdWwuc3ViID4gbGkgPiB1bCB7IG1heC1oZWlnaHQ6NjB2aDsgb3ZlcmZsb3cteTphdXRvOyBvdmVyZmxvdy14OmhpZGRlbjsgfSBib2R5IC53cmFwcGVyIC51cF9tZW51IC5uYXYgPiBsaTpob3ZlciB1bC5zdWIgbGk6aG92ZXIgLmRldGFpbHMtaW5mby1saW5rIGxpOmhvdmVyIGEgeyBkaXNwbGF5OmlubGluZS1ibG9jazsgYmFja2dyb3VuZC1pbWFnZTpub25lOyBjb2xvcjojZmZmZmZmOyBiYWNrZ3JvdW5kLWNvbG9yOiM5MTA5MmQ7IH0gbGkuZGV0YWlscy1pbmZvLWxpbms6aG92ZXIgeyBiYWNrZ3JvdW5kLWNvbG9yOiM5MTA5MmQ7IGNvbG9yOiNmZmZmZmY7IH0gLmxvY2F0aW9uLWRldGFpbHMtaW5mbyB1bCBsaSB7IHBhZGRpbmctdG9wOjRweDsgcGFkZGluZy1ib3R0b206NHB4OyBmb250LXdlaWdodDoyMDA7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IG1hcmdpbi1ib3R0b206NXB4OyB9IC5sb2NhdGlvbi1kZXRhaWxzLWluZm8gPiB1bCA+IGxpOmJlZm9yZSB7IGNvbnRlbnQ6IiAiOyBib3JkZXI6c29saWQ7IGJvcmRlci13aWR0aDowIDJweCAycHggMDsgZGlzcGxheTppbmxpbmUtYmxvY2s7IHBhZGRpbmc6MnB4OyBib3JkZXItcmFkaXVzOjJweDsgdHJhbnNmb3JtOnJvdGF0ZSgtNDVkZWcpOyAtd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoLTQ1ZGVnKTsgbWFyZ2luLXJpZ2h0OjdweDsgbWFyZ2luLWJvdHRvbToxcHg7IH0gI01haW5NZW51X0RFQUxFUlNISVBTIHVsIHsgcGFkZGluZzowOyB9IEBtZWRpYSBwcmludHsgLnRvcHJpbnR7IGRpc3BsYXk6YmxvY2s7fSB9IC5tci0xNSB7IG1hcmdpbi1yaWdodDoxNXB4OyB9IC5tbC0xNSB7IG1hcmdpbi1sZWZ0OjE1cHg7IH0gLm1sLTcgeyBtYXJnaW4tbGVmdDo3cHg7IH0gc3Bhbi5hcnJvdyB7IGJvcmRlcjpzb2xpZDsgYm9yZGVyLXdpZHRoOjAgMnB4IDJweCAwOyBkaXNwbGF5OmlubGluZS1ibG9jazsgcGFkZGluZzoycHg7IGJvcmRlci1yYWRpdXM6MXB4OyBwb3NpdGlvbjpyZWxhdGl2ZTsgdG9wOi0ycHg7IH0gc3Bhbi5hcnJvdy5hcnJvdy1sYXJnZSB7IGJvcmRlci13aWR0aDowIDNweCAzcHggMDsgcGFkZGluZzo0cHg7IGJvcmRlci1yYWRpdXM6M3B4OyB9IHNwYW4uYXJyb3cuYXJyb3ctcmlnaHQgeyB0cmFuc2Zvcm06cm90YXRlKC00NWRlZyk7IC13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgtNDVkZWcpOyB9IHNwYW4uYXJyb3cuYXJyb3ctbGVmdCB7IHRyYW5zZm9ybTpyb3RhdGUoMTM1ZGVnKTsgLXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDEzNWRlZyk7IH0gc3Bhbi5hcnJvdy5hcnJvdy11cCB7IHRyYW5zZm9ybTpyb3RhdGUoLTEzNWRlZyk7IC13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgtMTM1ZGVnKTsgfSBzcGFuLmFycm93LmFycm93LWRvd24geyB0cmFuc2Zvcm06cm90YXRlKDQ1ZGVnKTsgLXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDQ1ZGVnKTsgfSAudG9wYmFyM2J0bldyYXB7IGJvcmRlci1yYWRpdXM6NXB4OyBiYWNrZ3JvdW5kLWNvbG9yOiM5MTBhMmQ7IGJvcmRlcjoycHggc29saWQgI0Q2RDZENjsgdmVydGljYWwtYWxpZ246bWlkZGxlOyBoZWlnaHQ6NDJweDsgcGFkZGluZzowIDIwcHg7IGNvbG9yOiNmZmZmZmY7IH0gLnRvcGJhcjNidG57IGZvbnQtd2VpZ2h0OmJvbGQ7IHRyYW5zaXRpb246LjJzOyBmb250LXNpemU6MC44NzVyZW0gOyB0ZXh0LXRyYW5zZm9ybTpjYXBpdGFsaXplOyBib3JkZXItY29sb3I6d2hpdGU7IHRleHQtYWxpZ246Y2VudGVyOyBjdXJzb3I6cG9pbnRlcjsgZGlzcGxheTpibG9jazsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IGNvbG9yOmluaGVyaXQ7IH0gLnRyYWRlSW5CYXJfYnRueyBmb250LXdlaWdodDpib2xkOyBib3JkZXItcmFkaXVzOjVweDsgdGV4dC10cmFuc2Zvcm06dmFyKC0tY2VydC10eHQtdHJhbnNmb3JtLCB2YXIoLS10eHQtdXBwZXIpKTsgdHJhbnNpdGlvbjouMnM7IGJvcmRlcjoycHggc29saWQgdHJhbnNwYXJlbnQ7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOndoaXRlOyBib3JkZXItY29sb3I6d2hpdGU7IHRleHQtYWxpZ246Y2VudGVyOyBjdXJzb3I6cG9pbnRlcjsgaGVpZ2h0OjUwcHg7IGJhY2tncm91bmQtY29sb3I6IzkxMGEyZDsgY29sb3I6ICNmZmZmZmY7IGJvcmRlcjoycHggc29saWQgI0Q2RDZENjsgbWluLXdpZHRoOjIwMHB4OyBtYXgtd2lkdGg6MjAwcHg7IH0gLnRyYWRlSW5CYXJfYnRuOmhvdmVyLC50b3BiYXIzYnRuV3JhcDpob3ZlcnsgYmFja2dyb3VuZC1jb2xvcjojZmZmZmZmOyBjb2xvcjojOTEwYTJkIWltcG9ydGFudDsgfSAjZ1JhdGluZ0xhcmdleyBiYWNrZ3JvdW5kOiMxNTgyYmI7IGNvbG9yOiNmZmZmZmY7IGJvcmRlcjoxcHggc29saWQgI2ZmZmZmZjsgZmxvYXQ6bGVmdDsgcGFkZGluZzo1cHggMHB4OyBtYXJnaW4tdG9wOjVweDsgY3Vyc29yOnBvaW50ZXI7IGJvcmRlci1yYWRpdXM6M3B4OyB0ZXh0LWFsaWduOmNlbnRlcjsgd2lkdGg6MTUwcHg7IG1hcmdpbi1sZWZ0OjMwcHg7IH0gI2dSYXRpbmd7IGN1cnNvcjpwb2ludGVyOyB9IC50cmFkZUluVmluSW5wdXR7IGhlaWdodDo1MHB4OyBib3JkZXItcmFkaXVzOjVweDsgdGV4dC1hbGlnbjpjZW50ZXI7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgd2lkdGg6MTAwJTsgZm9udC1zaXplOjFyZW0gOyBjb2xvcjojM2MzODM2OyBib3JkZXI6MnB4IHNvbGlkICNENkQ2RDY7IH0gLnRyYWRlSW5WaW5JbnB1dDo6cGxhY2Vob2xkZXJ7IGZvbnQtc2l6ZToxcmVtIDsgY29sb3I6IzNjMzgzNjsgfSAudHJhZGVJbk9yTGFiZWx7IG1heC13aWR0aDoyNXB4OyB9ICN0cmFkZUluQmFyUG9wdXBfZm9ybVcgLm5pdk1ha2VNb2RlbFNlbGVjdENvbnRhaW5lcnsgd2lkdGg6MTAwJTsgcGFkZGluZzoxMnB4OyBtYXJnaW4tdG9wOjEwcHg7IGZvbnQtc2l6ZToxcmVtIDsgfSAjdHJhZGVJbkJhclBvcHVwX2Zvcm1XIC5uaXZNYWtlTW9kZWxTZWxlY3RDb250YWluZXIgLm5pdk1ha2VNb2RlbFNlbGVjdHsgZGlzcGxheTpub25lOyB9ICN0cmFkZUluQmFyUG9wdXBfZm9ybVcgLm5pdk1ha2VNb2RlbFNlbGVjdENvbnRhaW5lciAubml2TWFrZU1vZGVsU2VsZWN0TGFiZWx7IGRpc3BsYXk6aW5saW5lLWJsb2NrOyBtYXJnaW46MCAxMnB4OyBjdXJzb3I6cG9pbnRlcjsgfSAjdHJhZGVJbkJhclBvcHVwX2Zvcm1XIC5uaXZNYWtlTW9kZWxTZWxlY3RDb250YWluZXIgLm5pdk1ha2VNb2RlbFNlbGVjdDpjaGVja2VkK2xhYmVseyBib3JkZXItYm90dG9tOjJweCBzb2xpZCBibGFjazsgfSAudHJhZGluU2VsZWN0V3sgbWluLXdpZHRoOjIwMHB4OyBtYXgtd2lkdGg6MjAwcHg7IH0gLnRyYWRpblNlbGVjdFcud2l0aFZJTk1ha2V7IG1pbi13aWR0aDoxNDBweDsgbWF4LXdpZHRoOjE0MHB4OyB9IC50cmFkaW5TZWxlY3RXLndpdGhWSU5ZZWFyeyBtaW4td2lkdGg6ODBweDsgbWF4LXdpZHRoOjgwcHg7IH0gLnRyYWRpbklucHV0V3sgbWluLXdpZHRoOjIwMHB4OyBtYXgtd2lkdGg6MjAwcHg7IH0gLnRyYWRpblNlbGVjdEF7IHBvc2l0aW9uOnJlbGF0aXZlOyB9IC50cmFkaW5TZWxlY3RBOmFmdGVyIHsgY29udGVudDoiICI7IGhlaWdodDowOyB3aWR0aDowOyBib3JkZXItbGVmdDo1cHggc29saWQgdHJhbnNwYXJlbnQ7IGJvcmRlci1yaWdodDo1cHggc29saWQgdHJhbnNwYXJlbnQ7IGJvcmRlci10b3A6NXB4IHNvbGlkICMwMDAwMDA7IHBvc2l0aW9uOmFic29sdXRlOyByaWdodDoxNHB4OyB0b3A6MTdweDsgdHJhbnNpdGlvbjphbGwgMC4zcyBsaW5lYXI7IHBvaW50ZXItZXZlbnRzOm5vbmU7IH0gLnRyYWRpblNlbGVjdHsgY29sb3I6IzNjMzgzNjsgYm9yZGVyOjJweCBzb2xpZCAjRDZENkQ2OyBib3JkZXItcmFkaXVzOjVweDsgcGFkZGluZzoxMHB4IDEwcHg7IGZvbnQtc2l6ZToxcmVtIDsgYmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LDEpOyBiYWNrZ3JvdW5kLXBvc2l0aW9uOjk1JSA1MCU7IHdpZHRoOjEwMCU7IC13ZWJraXQtYXBwZWFyYW5jZTpub25lOyAtbW96LWFwcGVhcmFuY2U6bm9uZTsgcGFkZGluZy1yaWdodDoyN3B4OyBoZWlnaHQ6NTBweDsgfSAudHJhZGluU2VsZWN0OmFmdGVyIHsgY29udGVudDoiICI7IGhlaWdodDowOyB3aWR0aDowOyBib3JkZXItbGVmdDo1cHggc29saWQgdHJhbnNwYXJlbnQ7IGJvcmRlci1yaWdodDo1cHggc29saWQgdHJhbnNwYXJlbnQ7IGJvcmRlci10b3A6NXB4IHNvbGlkICMwMDAwMDA7IHBvc2l0aW9uOmFic29sdXRlOyByaWdodDoxNHB4OyB0b3A6MTdweDsgdHJhbnNpdGlvbjphbGwgMC4zcyBsaW5lYXI7IH0gLm11bHRpc2VsZWN0VmVoaWNsZU9wdGlvbnMgc3BhbnsgZm9udC1zaXplOjAuOTM4cmVtICFpbXBvcnRhbnQ7IHBhZGRpbmc6MCAhaW1wb3J0YW50OyBtYXJnaW46MCAhaW1wb3J0YW50OyB9ICN0cmFkZUluQmFyUG9wdXBfZm9ybVcgLnRyYWRlSW5CYXJNdWx0aXNlbGVjdHsgd2lkdGg6NTY4cHghaW1wb3J0YW50OyBib3JkZXItcmFkaXVzOjAuM3JlbSFpbXBvcnRhbnQ7IGJvcmRlci13aWR0aDoxcHghaW1wb3J0YW50OyBib3JkZXItcmFkaXVzOjAuM3JlbSFpbXBvcnRhbnQ7IGJvcmRlci1jb2xvcjojYTlhOWE5IWltcG9ydGFudDsgfSAudWktbXVsdGlzZWxlY3QtbWVudS50cmFkZUluQmFyTXVsdGlzZWxlY3R7IG1pbi13aWR0aDoyNzJweDsgei1pbmRleDoxMDAwMDIwOyBtYXgtaGVpZ2h0OjEyMHB4OyBvdmVyZmxvdzpzY3JvbGw7IH0gLnRyYWRlSW5CYXJEZWFsZXJTdGVweyB0ZXh0LWFsaWduOmNlbnRlcjsgbWFyZ2luLXRvcDoyNXB4OyB9IC50cmFkZUluQmFyRGVhbGVyU3RlcCAudHJhZGVJbkJhckRlYWxlclN0ZXBNYWtlTW9kZWxZZWFyeyBmb250LXdlaWdodDo3MDA7IH0gLnRyYWRlSW5CYXJEZWFsZXJTdGVwIHNwYW57IG1hcmdpbjowIWltcG9ydGFudDsgZm9udC13ZWlnaHQ6NzAwIWltcG9ydGFudDsgY29sb3I6IzAwMDAwMCFpbXBvcnRhbnQ7IH0gQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOjEwMjRweCkgeyAudHJhZGluU2VsZWN0VyB7IG1pbi13aWR0aDpjYWxjKCgyMDBweCAtIHZhcigtLXMpKSAtIHZhcigtLXMsIDAuNXJlbSkpOyBtYXgtd2lkdGg6Y2FsYygoMjAwcHggLSB2YXIoLS1zKSkgLSB2YXIoLS1zLCAwLjVyZW0pKTsgfSB9ICNnb29nbGVSZXZpZXdzRm9vdGVyeyBtYXJnaW46MCBhdXRvOyBiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7IGJvcmRlci1yYWRpdXM6NXB4OyBtYXgtd2lkdGg6OTQwcHg7IGhlaWdodDoyNzVweDsgfSAucmV2aWV3LWl0ZW0geyBmbG9hdDpsZWZ0OyBoZWlnaHQ6MTg1cHg7IHdpZHRoOjEwMCU7IG1heC13aWR0aDo0NjBweDsgbWFyZ2luLXJpZ2h0OjEwcHg7IGJvcmRlci10b3A6NHB4IHNvbGlkICNFQkVCRUI7IHBhZGRpbmctdG9wOjEwcHg7IH0gLmZpcnN0Y2hhcnVwOjpmaXJzdC1sZXR0ZXJ7IHRleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTsgfSBJLmljb24tY29tcGFyZS0xLCBzcGFuLmljb24tY29tcGFyZS0xeyBjb2xvcjojOTEwYTJkOyB9IEkuaWNvbi1jb21wYXJlLTE6aG92ZXIsIHNwYW4uaWNvbi1jb21wYXJlLTE6aG92ZXJ7IGNvbG9yOiNmZmZmZmYgIWltcG9ydGFudDsgdGV4dC1zaGFkb3c6IzkxMGEyZCAxcHggMXB4LCAjOTEwYTJkIC0xcHggMXB4LCAjOTEwYTJkIC0xcHggLTFweCwgIzkxMGEyZCAxcHggLTFweDsgYm9yZGVyLXJhZGl1czoyMHB4OyBiYWNrZ3JvdW5kLWNvbG9yOiM5MTBhMmQ7IH0gLmdSYXRpbmctaWNvbiBpIHsgZm9udC1zaXplOjEuMDYzcmVtIDsgfSAuZ1JhdGluZy1pY29uI2dSYXRpbmcgeyBkaXNwbGF5OmZsZXg7IGFsaWduLWl0ZW1zOmNlbnRlcjsganVzdGlmeS1jb250ZW50OmNlbnRlcjsgd2lkdGg6OTBweDsgaGVpZ2h0OjI4cHg7IGJhY2tncm91bmQtY29sb3I6I2Y1ZjVmNTsgY29sb3I6d2hpdGU7IGNvbG9yOiNmZmZmZmY7IGNvbG9yOiMxMDEwMTA7IGdhcDo3cHg7IH0gLmdSYXRpbmctaW1nI2dSYXRpbmcgeyBiYWNrZ3JvdW5kLWltYWdlOnVybCgvaW1hZ2VzL2dyYXRpbmcucG5nKTsgY29sb3I6IzM1NkNGMjsgd2lkdGg6OTVweDsgaGVpZ2h0OjI4cHg7IHBhZGRpbmc6NHB4IDMxcHggMTBweCAxMHB4OyBtYXJnaW4tdG9wOjFweDsgfSAjZ1JhdGluZ3sgYm94LXNpemluZzpib3JkZXItYm94OyBmb250LXNpemU6MS4wNjNyZW0gOyBmb250LXdlaWdodDpib2xkOyBkaXNwbGF5OmJsb2NrOyB9IElOUFVUW3R5cGU9InRleHQiXS52YWxpZGl0eS1lcnJvbmVvdXN7IGJvcmRlcjoxcHggc29saWQgI2RjMzU0NTsgYmFja2dyb3VuZC1jb2xvcjojZmFkNmRjICFpbXBvcnRhbnQ7IH0gSU5QVVRbdHlwZT0idGVsIl0udmFsaWRpdHktZXJyb25lb3VzeyBib3JkZXI6MXB4IHNvbGlkICNkYzM1NDU7IGJhY2tncm91bmQtY29sb3I6I2ZhZDZkYyAhaW1wb3J0YW50OyB9IElOUFVUW3R5cGU9ImVtYWlsIl0udmFsaWRpdHktZXJyb25lb3VzeyBib3JkZXI6MXB4IHNvbGlkICNkYzM1NDU7IGJhY2tncm91bmQtY29sb3I6I2ZhZDZkYyAhaW1wb3J0YW50OyB9IElOUFVUW3R5cGU9InBhc3N3b3JkIl0udmFsaWRpdHktZXJyb25lb3VzeyBib3JkZXI6MXB4IHNvbGlkICNkYzM1NDU7IGJhY2tncm91bmQtY29sb3I6I2ZhZDZkYyAhaW1wb3J0YW50OyB9IEgxLmRlZmF1bHR7IGZvbnQtc2l6ZToxLjg3NXJlbSA7IGNvbG9yOiMxMDEwMTA7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgY2xlYXI6Ym90aDsgcGFkZGluZzowIDAgMjVweCAwOyB9IEgxLmRlZmF1bHQgQXsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IH0gSDEuZGVmYXVsdCBJLmljb24sIEgxLmRlZmF1bHQgc3Bhbi5pY29uIHsgYm9yZGVyLXJhZGl1czozMHB4OyB3aWR0aDoyM3B4OyBoZWlnaHQ6MjlweDsgcGFkZGluZy10b3A6NHB4OyBwYWRkaW5nLWxlZnQ6MTBweDsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjEuNTYzcmVtIDsgbWFyZ2luLXJpZ2h0OjEwcHg7IGJvcmRlcjoxcHggc29saWQgI2ZmZmZmZjsgY29sb3I6I2ZmZmZmZjsgYmFja2dyb3VuZC1jb2xvcjojMTAxMDEwOyBib3gtc2l6aW5nOmNvbnRlbnQtYm94OyB9IEgxLmRlZmF1bHQgSS5pY29uLm11bHRpTGluZUgxLCBIMS5kZWZhdWx0IHNwYW4uaWNvbi5tdWx0aUxpbmVIMXsgbWFyZ2luLXRvcDoxMHB4OyB9IEgxLmRlZmF1bHQgSS5pY29uLnNpbmdsZUxpbmVIMSwgSDEuZGVmYXVsdCBzcGFuLmljb24uc2luZ2xlTGluZUgxeyBtYXJnaW4tdG9wOjJweDsgfSBIMS5kZWZhdWx0ID4gRElWeyBkaXNwbGF5OnRhYmxlLXJvdzsgfSBIMS5kZWZhdWx0ID4gRElWIERJVjpudGgtY2hpbGQoMSl7IGZvbnQtd2VpZ2h0OmJvbGQ7IH0gSDEuZGVmYXVsdCA+IERJViBESVY6bnRoLWNoaWxkKDIpeyBmb250LXdlaWdodDpub3JtYWw7IGNvbG9yOiM3NTc1NzU7IGZvbnQtc2l6ZToxLjEyNXJlbSA7IH0gSDEuZGVmYXVsdCA+IERJViBESVY6bnRoLWNoaWxkKDMpeyBmb250LXNpemU6MC44cmVtOyBmb250LXNpemU6MC44cmVtOyBjb2xvcjojYmJiOyBwYWRkaW5nLXRvcDo1cHg7IH0gaDEuY2tlZGl0b3ItZGVmYXVsdCB7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc2l6ZToyLjEyNXJlbSA7IHBhZGRpbmc6MCAwIDE1cHggMDsgY29sb3I6IzEwMTAxMDsgfSBoMS5ja2VkaXRvci1kZWZhdWx0OjpiZWZvcmUgeyBjb250ZW50OiJcZjA1NCI7IGZvbnQtZmFtaWx5OkZvbnRBd2Vzb21lOyB3aWR0aDoyOHB4OyBoZWlnaHQ6MzVweDsgbWFyZ2luLXJpZ2h0OjEwcHg7IHBhZGRpbmc6NHB4IDAgMCAxMXB4OyBib3JkZXItcmFkaXVzOjQxcHg7IGZvbnQtc2l6ZToxLjkzOHJlbSA7IGZsb2F0OmxlZnQ7IGJvcmRlcjoxcHggc29saWQgI2ZmZmZmZjsgY29sb3I6I2ZmZmZmZjsgYmFja2dyb3VuZC1jb2xvcjojMTAxMDEwOyB9IEgyLmRlZmF1bHR7IGZvbnQtc2l6ZToxLjVyZW0gOyBjb2xvcjojMTAxMDEwOyBmb250LXdlaWdodDpub3JtYWw7IGNsZWFyOmJvdGg7IHBhZGRpbmc6MTBweCAwOyBtYXJnaW4tdG9wOjEwcHg7IH0gSDIuZGVmYXVsdCBJLmljb24sIEgyLmRlZmF1bHQgc3Bhbi5pY29ueyBib3JkZXItcmFkaXVzOjMwcHg7IHdpZHRoOjIwcHg7IGhlaWdodDoyNXB4OyBwYWRkaW5nLXRvcDo0cHg7IHBhZGRpbmctbGVmdDo5cHg7IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZToxLjM3NXJlbSA7IG1hcmdpbi1yaWdodDoxMHB4OyBib3JkZXI6MXB4IHNvbGlkICNmZmZmZmY7IGNvbG9yOiNmZmZmZmY7IGJhY2tncm91bmQtY29sb3I6IzEwMTAxMDsgfSBIMi5kZWZhdWx0IEkuaWNvbi5tdWx0aUxpbmVIMiwgSDIuZGVmYXVsdCBzcGFuLmljb24ubXVsdGlMaW5lSDJ7IG1hcmdpbi10b3A6N3B4OyB9IEgyLmRlZmF1bHQgSS5pY29uLnNpbmdsZUxpbmVIMiwgSDIuZGVmYXVsdCBzcGFuLmljb24uc2luZ2xlTGluZUgyeyBtYXJnaW4tdG9wOjBweDsgfSBIMi5kZWZhdWx0ID4gRElWeyBkaXNwbGF5OnRhYmxlLXJvdzsgfSBIMi5kZWZhdWx0ID4gRElWIERJVjpudGgtY2hpbGQoMSl7IGZvbnQtd2VpZ2h0OmJvbGQ7IH0gSDIuZGVmYXVsdC5jcmVkc2lpVXNlZE1pbkhlaWdodCAuVGl0bGVUZXh0IHsgd2lkdGg6ODAlOyB9IEgyLmRlZmF1bHQgPiBESVYgRElWOm50aC1jaGlsZCgyKXsgZm9udC13ZWlnaHQ6bm9ybWFsOyBjb2xvcjojNzU3NTc1OyBmb250LXNpemU6MC45MzhyZW0gOyB9IEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDoxMzAxcHgpIHsgYm9keS5pc0Z1bGxXaWR0aFBhZ2UuaXNQYWdlRnVsbFdpZHRoRW5hYmxlZCAjZmlyc3RTbGlkZXJJbWcgLnBsYWNlaG9sZGVyeyB3aWR0aDo4MDBweDsgaGVpZ2h0OjYwMHB4OyB9IGJvZHkuaXNGdWxsV2lkdGhQYWdlLmlzUGFnZUZ1bGxXaWR0aEVuYWJsZWQgI2ZpcnN0U2xpZGVySW1nIElNR3sgbWF4LXdpZHRoOjgwMHB4OyBtYXgtaGVpZ2h0OjYwMHB4OyB9IEJPRFkuaXNGdWxsV2lkdGhQYWdlLmlzUGFnZUZ1bGxXaWR0aEVuYWJsZWQgSDEuZGVmYXVsdCB7IH0gQk9EWS5pc0Z1bGxXaWR0aFBhZ2UuaXNQYWdlRnVsbFdpZHRoRW5hYmxlZCBIMS5kZWZhdWx0ID4gRElWIERJVjpudGgtY2hpbGQoMil7IGZvbnQtc2l6ZToxLjQzOHJlbSA7IH0gQk9EWS5pc0Z1bGxXaWR0aFBhZ2UuaXNQYWdlRnVsbFdpZHRoRW5hYmxlZCBIMS5kZWZhdWx0IEkuaWNvbiwgQk9EWS5pc0Z1bGxXaWR0aFBhZ2UuaXNQYWdlRnVsbFdpZHRoRW5hYmxlZCBIMS5kZWZhdWx0IHNwYW4uaWNvbiB7IHdpZHRoOjI4cHg7IGhlaWdodDozNXB4OyBmb250LXNpemU6MS45MzhyZW0gOyBwYWRkaW5nLWxlZnQ6MTFweDsgYm9yZGVyLXJhZGl1czo0MXB4OyB9IEJPRFkuaXNGdWxsV2lkdGhQYWdlLmlzUGFnZUZ1bGxXaWR0aEVuYWJsZWQgSDEuZGVmYXVsdCBJLmljb24ubXVsdGlMaW5lSDEsIEJPRFkuaXNGdWxsV2lkdGhQYWdlLmlzUGFnZUZ1bGxXaWR0aEVuYWJsZWQgSDEuZGVmYXVsdCBzcGFuLmljb24ubXVsdGlMaW5lSDF7IG1hcmdpbi10b3A6MTFweDsgfSBCT0RZLmlzRnVsbFdpZHRoUGFnZS5pc1BhZ2VGdWxsV2lkdGhFbmFibGVkIEgxLmRlZmF1bHQgSS5pY29uLnNpbmdsZUxpbmVIMSwgQk9EWS5pc0Z1bGxXaWR0aFBhZ2UuaXNQYWdlRnVsbFdpZHRoRW5hYmxlZCBIMS5kZWZhdWx0IHNwYW4uaWNvbi5zaW5nbGVMaW5lSDF7IG1hcmdpbi10b3A6MXB4OyB9IEJPRFkuaXNGdWxsV2lkdGhQYWdlLmlzUGFnZUZ1bGxXaWR0aEVuYWJsZWQgSDIuZGVmYXVsdCB7IGZvbnQtc2l6ZToxLjg3NXJlbSA7IH0gQk9EWS5pc0Z1bGxXaWR0aFBhZ2UuaXNQYWdlRnVsbFdpZHRoRW5hYmxlZCBIMi5kZWZhdWx0ID4gRElWIERJVjpudGgtY2hpbGQoMil7IGZvbnQtc2l6ZToxLjE4OHJlbSA7IH0gQk9EWS5pc0Z1bGxXaWR0aFBhZ2UuaXNQYWdlRnVsbFdpZHRoRW5hYmxlZCBIMi5kZWZhdWx0LmNyZWRzaWlVc2VkTWluSGVpZ2h0IC5UaXRsZVRleHQgeyB3aWR0aDo5MCU7IH0gQk9EWS5pc0Z1bGxXaWR0aFBhZ2UuaXNQYWdlRnVsbFdpZHRoRW5hYmxlZCBIMi5kZWZhdWx0IEkuaWNvbi5tdWx0aUxpbmVIMiwgQk9EWS5pc0Z1bGxXaWR0aFBhZ2UuaXNQYWdlRnVsbFdpZHRoRW5hYmxlZCBIMi5kZWZhdWx0IHNwYW4uaWNvbi5tdWx0aUxpbmVIMnsgbWFyZ2luLXRvcDoxMXB4OyB9IEJPRFkuaXNGdWxsV2lkdGhQYWdlLmlzUGFnZUZ1bGxXaWR0aEVuYWJsZWQgSDIuZGVmYXVsdCBJLmljb24uc2luZ2xlTGluZUgyLCBCT0RZLmlzRnVsbFdpZHRoUGFnZS5pc1BhZ2VGdWxsV2lkdGhFbmFibGVkIEgyLmRlZmF1bHQgc3Bhbi5pY29uLnNpbmdsZUxpbmVIMnsgbWFyZ2luLXRvcDo0cHg7IH0gfSAjY2l0eVRpdGxlIHtjb2xvcjojMTAxMDEwO30gLm1haW5fbGVmdF9ib3ggeyBjb2xvcjojMTAxMDEwOyB9IC5kaXZUYWJsZSB7IGRpc3BsYXk6dGFibGU7IH0gLmRpdlRhYmxlLmFsaWduLWNlbnRlciB7IG1hcmdpbjowIGF1dG87IH0gLmRpdlRhYmxlIC5mb3Jtc19ib3gyMiwgLmRpdlRhYmxlIGZvcm1bbmFtZT0ic2VuZEVtYWlsRm9ybSJdIHsgd2lkdGg6OTQwcHg7IH0gLmRpdlRhYmxlIC50ZXh0MzAgeyB3aWR0aDoxMDAlOyB9IC5zZXJ2aWNlLXRpdGxlIHsgbWFyZ2luLXRvcDoyMHB4OyB9IC5mdWxsV2lkdGhGb3JtIC5mb3Jtc19ib3gyMiB7IHdpZHRoOjEwMCU7IG1hcmdpbi1sZWZ0OjA7IG1hcmdpbi1yaWdodDowOyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IH0gLmZ1bGxXaWR0aEZvcm0gLnRleHQzMCB7IHdpZHRoOjEwMCU7IH0gLmZvcm0tZ3JvdXAgeyBtYXJnaW4tYm90dG9tOjE1cHg7IH0gLmlubGluZS1mb3JtLWdyb3VwIHsgZGlzcGxheTppbmxpbmUtYmxvY2s7IH0gLmZvcm0tZ3JvdXAgbGFiZWwgeyBkaXNwbGF5OmlubGluZS1ibG9jazsgbWF4LXdpZHRoOjEwMCU7IG1hcmdpbi1ib3R0b206NXB4OyBmb250LXdlaWdodDo3MDA7IH0gLmRpdlNlYXJjaE1zZyB7IGZvbnQtc2l6ZTowLjlyZW07IG1hcmdpbjoyMHB4IDAgMCAwOyBwYWRkaW5nOjE1cHg7IGJhY2tncm91bmQtY29sb3I6I2Y3ZjdmNzsgYm9yZGVyLXJhZGl1czo1cHg7IGNsZWFyOmJvdGg7IH0gLmNyZWRzaWlOZXcgeyBkaXNwbGF5OmJsb2NrOyBtYXgtd2lkdGg6NDcwcHg7IG1pbi13aWR0aDozMDBweDsgd2lkdGg6MTAwJTsgY3Vyc29yOnBvaW50ZXI7IG92ZXJmbG93OmhpZGRlbjsgaGVpZ2h0OmF1dG87IHBvc2l0aW9uOmFic29sdXRlOyB0b3A6MDsgcmlnaHQ6MDsgfSAuY3JlZHNpaU5ld1ZEUCB7IGRpc3BsYXk6YmxvY2s7IG1heC13aWR0aDozNTBweDsgbWluLXdpZHRoOjMwMHB4OyB3aWR0aDoxMDAlOyBjdXJzb3I6cG9pbnRlcjsgb3ZlcmZsb3c6aGlkZGVuOyBoZWlnaHQ6YXV0bzsgcG9zaXRpb246cmVsYXRpdmU7IHRvcDowOyByaWdodDowOyB9IC5jcmVkc2lpVXNlZE1pbkhlaWdodCB7IG1pbi1oZWlnaHQ6MTMwcHg7IH0gLmNyZWRzaWlGaW5hbmNlIHsgZGlzcGxheTpibG9jazsgbWF4LXdpZHRoOjk2MHB4OyBtaW4td2lkdGg6MzAwcHg7IHdpZHRoOjEwMCU7IGN1cnNvcjpwb2ludGVyOyBvdmVyZmxvdzpoaWRkZW47IHBvc2l0aW9uOnJlbGF0aXZlOyBoZWlnaHQ6MTI1cHg7IG1hcmdpbi10b3A6MTVweDsgfSAuY3JlZHNpaUZpbmFuY2UgLmNyZWRzaWktd2lkZ2V0LWNvbnRhaW5lcnsgbWF4LXdpZHRoOjEwMCUhaW1wb3J0YW50OyB9IC5jcmVkc2lpRmluYW5jZU1lbnUgeyBkaXNwbGF5OmJsb2NrOyBtYXgtd2lkdGg6MzQ1cHg7IG1pbi13aWR0aDozMDBweDsgd2lkdGg6MTAwJTsgY3Vyc29yOnBvaW50ZXI7IG92ZXJmbG93OmhpZGRlbjsgaGVpZ2h0OmF1dG87IHBvc2l0aW9uOnJlbGF0aXZlOyB0b3A6MDsgcmlnaHQ6MDsgfSAuY3JlZHNpaURpdiAuY3JlZHNpaUZpbmFuY2VNZW51IHsgbWF4LXdpZHRoOjM3NXB4OyB9IC5jcmVkc2lpRmluYW5jZU1lbnUgLmNyZWRzaWktd2lkZ2V0eyBib3JkZXI6MDsgfSAucHJvbW8tY2FyZCB7IHBvc2l0aW9uOnJlbGF0aXZlOyBoZWlnaHQ6YXV0bzsgbWFyZ2luLWJvdHRvbToxMHB4OyBiYWNrZ3JvdW5kLWNvbG9yOiNmMWYxZjE7IHBhZGRpbmc6MjBweDsgb3ZlcmZsb3c6aGlkZGVuOyB9IC5wcm9tby1ib2R5IC5waWNfYm94MiB7IG1pbi1oZWlnaHQ6MTMwcHg7IH0gLnByb21vLWhvdmVyIHsgcG9zaXRpb246YWJzb2x1dGU7IGxlZnQ6MDsgdG9wOjA7IHdpZHRoOjEwMCU7IGhlaWdodDoxMDAlOyAtd2Via2l0LXRyYW5zaXRpb246YWxsIDAuM3M7IC1tb3otdHJhbnNpdGlvbjphbGwgMC4zczsgLW1zLXRyYW5zaXRpb246YWxsIDAuM3M7IC1vLXRyYW5zaXRpb246YWxsIDAuM3M7IHRyYW5zaXRpb246YWxsIDAuM3M7IG9wYWNpdHk6MDsgfSAucHJvbW8tYm9keTpob3ZlciAucHJvbW8taG92ZXIgeyBvcGFjaXR5OjE7IH0gLnByb21vLWJvZHk6aG92ZXIgLnByb21vLWluZm8geyB0cmFuc2Zvcm06dHJhbnNsYXRlWSgtNTAlKSBzY2FsZSgxLDEpOyB9IC5wcm9tby1tYXNrIHsgcG9zaXRpb246YWJzb2x1dGU7IHRvcDowOyBsZWZ0OjA7IHdpZHRoOjEwMCU7IGhlaWdodDoxMDAlOyBiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsMC41KTsgfSAucHJvbW8taW5mbyB7IHBvc2l0aW9uOmFic29sdXRlOyBsZWZ0OjA7IHJpZ2h0OjA7IHRvcDo1MCU7IHdpZHRoOjM1JTsgbWFyZ2luOmF1dG87IC13ZWJraXQtYm9yZGVyLXJhZGl1czoyNXB4OyAtbW96LWJvcmRlci1yYWRpdXM6MjVweDsgYm9yZGVyLXJhZGl1czoyNXB4OyAtd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xNTAlKSBzY2FsZSgwLDApOyAtbW96LXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xNTAlKSBzY2FsZSgwLDApOyAtbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTE1MCUpIHNjYWxlKDAsMCk7IC1vLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xNTAlKSBzY2FsZSgwLDApOyB0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMTUwJSkgc2NhbGUoMCwwKTsgLXdlYmtpdC1ib3gtc2hhZG93OjAgMCAxMHB4IDVweCByYmdhKDAsMCwwLDAuMik7IC1tb3otYm94LXNoYWRvdzowIDAgMTBweCA1cHggcmJnYSgwLDAsMCwwLjIpOyBib3gtc2hhZG93OjAgMCAxMHB4IDVweCByYmdhKDAsMCwwLDAuMik7IC13ZWJraXQtdHJhbnNpdGlvbjphbGwgMC4zczsgLW1vei10cmFuc2l0aW9uOmFsbCAwLjNzOyAtbXMtdHJhbnNpdGlvbjphbGwgMC4zczsgLW8tdHJhbnNpdGlvbjphbGwgMC4zczsgdHJhbnNpdGlvbjphbGwgMC4zczsgfSAuZm9ybS1lbmQgeyBkaXNwbGF5OmZsZXg7IGp1c3RpZnktY29udGVudDpjZW50ZXI7IGFsaWduLWl0ZW1zOmNlbnRlcjsgfSAuZm9ybS1lbmQgLmJ0bi13cmFwcGVyIHsgbWFyZ2luOjAgYXV0bzsgfSAuZm9ybS1lbmQgLmVtcHR5LXNwYWNlIHsgbWFyZ2luOmF1dG87IH0gLmZvcm0tZW5kIC5wcm9tby1idG4geyBwb3NpdGlvbjppbml0aWFsOyB9IC5mb3JtLWVuZCAucHJpbnQgeyBtYXJnaW4tbGVmdDphdXRvOyB3aWR0aDppbml0aWFsOyB9IC5wcm9tby1idG4geyBwYWRkaW5nOjEwcHggMTBweCAxMHB4IDEwcHg7IHdpZHRoOjEwMCU7IGJhY2tncm91bmQtY29sb3I6d2hpdGU7IGJvcmRlcjoxcHggc29saWQ7IHRleHQtdHJhbnNmb3JtOnZhcigtLWNlcnQtdHh0LXRyYW5zZm9ybSwgdmFyKC0tdHh0LXVwcGVyKSk7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgcG9zaXRpb246YWJzb2x1dGU7IHRleHQtYWxpZ246Y2VudGVyOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgYm9yZGVyLWNvbG9yOnZhcigtLXByb21vLWJ0bi10ZXh0LWNvbG9yKTsgY29sb3I6dmFyKC0tcHJvbW8tYnRuLXRleHQtY29sb3IpOyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXByb21vLWJ0bi1jb2xvcik7IGJvcmRlci1yYWRpdXM6dmFyKC0tcHJvbW8tYnRuLWJvcmRlci1yYWRpdXMpOyB0cmFuc2l0aW9uOjAuMjVzOyB9IC5wcm9tb3MgeyBiYWNrZ3JvdW5kOiNmMWYxZjE7IGJvcmRlci1yYWRpdXM6NXB4OyBib3gtc2hhZG93OjAgMCAxMHB4IDFweCByZ2JhKDAsMCwwLDAuMik7IHBvc2l0aW9uOnJlbGF0aXZlOyBjdXJzb3I6ZGVmYXVsdDsgbWFyZ2luOjEycHggMTBweDsgZGlzcGxheTogZ3JpZDsgZ3JpZC1yb3c6c3BhbiA4OyBncmlkLWNvbHVtbjpzcGFuIDE7IGdyaWQtdGVtcGxhdGUtY29sdW1uczpzdWJncmlkOyBncmlkLXRlbXBsYXRlLXJvd3M6c3ViZ3JpZDsgfSAucHJvbW9zIC5oZWFkZXIgeyBncmlkLWFyZWE6aGVhZGVyOyB9ICNzZXJ2aWNlIC5wcm9tb3MgLnByb21vLWNvbnRlbnR7IGRpc3BsYXk6YmxvY2s7IGdyaWQtcm93OmF1dG87IH0gLnByb21vcyAucHJvbW8tY29udGVudCB7IGdyaWQtYXJlYTpjb250ZW50OyBkaXNwbGF5OmdyaWQ7IGdyaWQtdGVtcGxhdGUtcm93czpzdWJncmlkOyBncmlkLXJvdzoyIC8gNzsgfSAucHJvbW9zIC5wcm9tby1mb290ZXIgeyBncmlkLWFyZWE6Zm9vdGVyOyBwYWRkaW5nOjAgMTVweCAxNXB4IDE1cHg7IH0gLnByb21vczpob3ZlciAucHJvbW8tYnRuLCAucHJvbW8tYnRuOmhvdmVyIHsgY29sb3I6dmFyKC0tcHJvbW8tYnRuLWhvdmVyLXRleHQtY29sb3IpOyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXByb21vLWJ0bi1ob3Zlci1iZy1jb2xvcik7IGJvcmRlci1jb2xvcjp2YXIoLS1wcm9tby1idG4taG92ZXItdGV4dC1jb2xvcik7IH0gLnByb21vcyAucHJvbW8tYnRuIHsgd2lkdGg6aW5oZXJpdDsgcG9zaXRpb246aW5pdGlhbDsgZGlzcGxheTpibG9jazsgcGFkZGluZzoxNXB4IDQ1cHg7IH0gLnByb21vcy5wcm9tby1zbWFsbCAucHJvbW8tYnRuIHsgcGFkZGluZzoxMHB4IDI1cHg7IH0gLnByb21vLWJyZWFrIHsgYm9yZGVyLXRvcDoxcHggc29saWQgI2FiYWJhYjsgcGFkZGluZy10b3A6MTBweDsgbWFyZ2luOjE1cHggMDsgfSAucHJvbW8taW1hZ2UsIC5wcm9tby1kZXRhaWxzLWltYWdlIHsgb3ZlcmZsb3c6aGlkZGVuOyAtd2Via2l0LWJvcmRlci1yYWRpdXM6NXB4IDVweCAwIDA7IC1tb3otYm9yZGVyLXJhZGl1czo1cHggNXB4IDAgMDsgYm9yZGVyLXJhZGl1czo1cHggNXB4IDAgMDsgZGlzcGxheTpmbGV4OyBhbGlnbi1pdGVtczpjZW50ZXI7IGJhY2tncm91bmQtc2l6ZTpjb250YWluOyBiYWNrZ3JvdW5kLXBvc2l0aW9uOmNlbnRlcjsgYmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0OyBhc3BlY3QtcmF0aW86dmFyKC0tcHJvbW8taW1nLXJhdGlvLCBub25lKTsgfSAucHJvbW8tZGV0YWlscy1pbWFnZXsgd2lkdGg6MTAwJTsgfSAucHJvbW9zOmhvdmVyIC5wcm9tby1pbWFnZSBpbWcgeyAtd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgxLjEpOyAtbW96LXRyYW5zZm9ybTpzY2FsZSgxLjEpOyAtbXMtdHJhbnNmb3JtOnNjYWxlKDEuMSk7IC1vLXRyYW5zZm9ybTpzY2FsZSgxLjEpOyB0cmFuc2Zvcm06c2NhbGUoMS4xKTsgfSAucHJvbW8taW1hZ2UgaW1nIHsgbWF4LXdpZHRoOjEwMCU7IHRyYW5zaXRpb246dHJhbnNmb3JtIDFzOyBkaXNwbGF5OnRhYmxlLWNlbGw7IG1hcmdpbjowIGF1dG87IH0gLnByb21vLWJvZHkgeyBwYWRkaW5nOjE1cHg7IHBvc2l0aW9uOnJlbGF0aXZlOyB9IC5wcm9tby1ib2R5LmdyaWQgeyBkaXNwbGF5OmdyaWQ7IGhlaWdodDoxMDAlOyBncmlkLXRlbXBsYXRlLXJvd3M6MWZyIDNmcjsgfSAucHJvbW8tYm9keS5ncmlkIC5wcm9tby1jYXB0aW9uLmhlYWRlciB7IGRpc3BsYXk6Z3JpZDsgZ3JpZC10ZW1wbGF0ZS1yb3dzOjFmciBhdXRvOyB9IC5wcm9tby1jb250ZW50LnBhZGRlZCB7IHBhZGRpbmc6MTVweDsgfSAucHJvbW8tZGVzYyB7IGRpc3BsYXk6bm9uZTsgfSAucHJvbW8tdGl0bGUgeyBmb250LXNpemU6MS41cmVtIDsgZGlzcGxheTpibG9jazsgZm9udC13ZWlnaHQ6NjAwOyBjb2xvcjojMzMzMzMzOyBtaW4taGVpZ2h0Ojc4cHg7IH0gLnByb21vLW1lZGl1bSAucHJvbW8tdGl0bGUgeyBtaW4taGVpZ2h0Ojg3cHg7IH0gLnByb21vLXNtYWxsIC5wcm9tby10aXRsZSB7IGZvbnQtc2l6ZToxLjI1cmVtIDsgfSAucHJvbW8tY2FwdGlvbiB7IGNvbG9yOiMzMzMzMzM7IH0gLnByb21vLWNhcHRpb246bm90KDpsYXN0LWNoaWxkKSB7IG1hcmdpbi1ib3R0b206MTBweDsgfSAucHJvbW8tb2ZmZXIgLnByb21vLXRpdGxlIHsgbWluLWhlaWdodDowOyB9IC5wcm9tby1zdWJjYXB0aW9uIHsgbWFyZ2luLXRvcDo1cHg7IGZvbnQtc2l6ZTowLjg3NXJlbTsgfSAucHJvbW8tc3ViY2FwdGlvbi5zdWJoZWFkaW5nLi1taCB7IG1pbi1oZWlnaHQ6MzFweDsgfSAucHJvbW8tc3ViY2FwdGlvbi5kZXNjcmlwdGlvbi4tbWggeyBtaW4taGVpZ2h0OjQ4cHg7IH0gLnByb21vLWRpc2xjYWltZXIgeyBmb250LXNpemU6MC43NXJlbTsgfSAucHJvbW8tbGlua3MgeyBkaXNwbGF5OmZsZXg7IGp1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuOyBhbGlnbi1pdGVtczpjZW50ZXI7IH0gLnByb21vLWxpbmstaXRlbSAucHJpbnQgeyB3aWR0aDphdXRvOyB0ZXh0LWFsaWduOnJpZ2h0OyB9IC5wcm9tb3MtY29udGFpbmVyLmdyaWQgeyBwb3NpdGlvbjpyZWxhdGl2ZTsgZGlzcGxheTpncmlkOyB9IC5wcm9tb3MtY29udGFpbmVyIC5mYS1hcnJvdy1kb3duLXRvLWxpbmUgeyBmb250LXNpemU6MnJlbTsgY29sb3I6IzAwMDAwMDsgcG9zaXRpb246YWJzb2x1dGU7IGxlZnQ6NTAlOyB0b3A6NTAlOyBiYWNrZ3JvdW5kOiNmZmZmZmY7IHBhZGRpbmc6NnB4OyBib3JkZXItcmFkaXVzOjVweDsgYm94LXNoYWRvdzowIDAgMTBweCAxcHggcmdiYSgwLCAwLCAwLCAwLjIpOyB0cmFuc2l0aW9uOmFsbCAwLjI1cyBlYXNlLW91dDsgfSAucHJvbW9zLWNvbnRhaW5lci5ncmlkLnByb21vLW1lZGl1bSB7IGdyaWQtdGVtcGxhdGUtY29sdW1uczpyZXBlYXQoMiwgMWZyKTsgfSAucHJvbW9zLWNvbnRhaW5lci5ncmlkLnByb21vLXNtYWxsIHsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOnJlcGVhdCgzLCAxZnIpOyB9IC5wcm9tb3MtY29udGFpbmVyLmdyaWQuY29sbGFwc2UgeyBoZWlnaHQ6MTQycHg7IG92ZXJmbG93OmhpZGRlbjsgfSAucHJvbW9zLWNvbnRhaW5lci5ncmlkLmNvbGxhcHNlOjpiZWZvcmUgeyBjb250ZW50OiIiOyBwb3NpdGlvbjphYnNvbHV0ZTsgaGVpZ2h0OjEwMCU7IHotaW5kZXg6MTA7IGxlZnQ6MTBweDsgcmlnaHQ6MTBweDsgdG9wOjEwcHg7IGJvcmRlci1yYWRpdXM6NXB4IDVweCAwIDA7IGJhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDBkZWcsIHJnYigwIDAgMCAvIDMwJSkgMCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMCkgMTAwJSkgfSAucHJvbW9zLWNvbnRhaW5lci5ncmlkLmNvbGxhcHNlOmhvdmVyOjpiZWZvcmUgeyBiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgwZGVnLCByZ2IoMTM4IDEzOCAxMzggLyAzMCUpIDAlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDApIDEwMCUpOyBjdXJzb3I6cG9pbnRlcjsgfSAucHJvbW9zLWNvbnRhaW5lci5ncmlkLmNvbGxhcHNlOmhvdmVyIC5mYS1hcnJvdy1kb3duLXRvLWxpbmUgeyB0b3A6NTUlOyBjb2xvcjojODM4MzgzOyB9IC5iYW5uZXItZm9ybSB7IHBvc2l0aW9uOnJlbGF0aXZlOyBkaXNwbGF5OnRhYmxlOyBtYXJnaW46MCBhdXRvOyB9IC5iYW5uZXItZm9ybSAuTWFpbkJveExheWVyIHsgcG9zaXRpb246YWJzb2x1dGU7IHotaW5kZXg6MTA7IGxlZnQ6MDsgcmlnaHQ6MDsgdG9wOjA7IGRpc3BsYXk6dGFibGUtY2VsbDsgaGVpZ2h0OjEwMCU7IH0gLmJhbm5lci1mb3JtLWJveCB7IC13ZWJraXQtYm9yZGVyLXJhZGl1czo1cHg7IC1tb3otYm9yZGVyLXJhZGl1czo1cHg7IGJvcmRlci1yYWRpdXM6NXB4OyBwb3NpdGlvbjphYnNvbHV0ZTsgcmlnaHQ6MDsgbWF4LXdpZHRoOjM1MHB4OyB3aWR0aDoxMDAlOyBtYXJnaW4tdG9wOjM1cHg7IH0gQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOjEzMDFweCkgeyAuTWFpbkJveExheWVyIC5iYW5uZXItZm9ybS1ib3ggeyB0b3A6NTAlOyAtd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVZKC01MCUpOyAtbW96LXRyYW5zZm9ybTp0cmFuc2xhdGVZKC01MCUpOyAtbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSk7IC1vLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC01MCUpOyB0cmFuc2Zvcm06dHJhbnNsYXRlWSgtNTAlKTsgbWFyZ2luLXRvcDowOyB9IH0gQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOjEzMDFweCkgeyAuYmFubmVyLWZvcm0gLmJhbm5lci1mb3JtLWJveCB7IHBhZGRpbmc6MTVweDsgbWF4LXdpZHRoOjI3MHB4OyBmb250LXNpemU6MC44MTNyZW0gOyB9IC5iYW5uZXItZm9ybSAjYmFubmVyRm9ybSAuZm9ybS1jb250cm9sIHsgcGFkZGluZzo0cHggOHB4OyBoZWlnaHQ6MzBweDsgbWFyZ2luLWJvdHRvbToxMnB4OyB9IC5iYW5uZXItZm9ybSAuYmFubmVyLWZvcm0tdGl0bGUgeyBmb250LXNpemU6MTVwdDsgfSAuYmFubmVyLWZvcm0gLmJhbm5lci1mb3JtLXN1YnRpdGxlIHsgZm9udC1zaXplOjExcHQ7IH0gLmJhbm5lci1mb3JtIC5idG4uYmFubmVyLWJ0biB7IHBhZGRpbmc6NHB4IDEycHg7IH0gfSAub3RoZXJMb2dvTWVudUNvbnRhaW5lcnsgZmxvYXQ6bGVmdDsgfSAub3RoZXJMb2dvTWVudUNvbnRhaW5lclJpZ2h0eyBmbG9hdDpyaWdodDsgfSAub3RoZXJMb2dvTWVudUltYWdleyBtYXgtd2lkdGg6MjUwcHg7IG1heC1oZWlnaHQ6MTAwcHg7IH0gLmN0YWJveC0td3JhcHBlciB7IGNsZWFyOmJvdGg7IHBhZGRpbmc6MC43NXJlbSAwOyBiYWNrZ3JvdW5kOiNmZmZmZmY7IH0gLmN0YWJveC0tdGFibGUgeyB3aWR0aDo4NSUhaW1wb3J0YW50OyBtYXgtd2lkdGg6MTIwMHB4OyBtYXJnaW46YXV0bzsgYm9yZGVyLXNwYWNpbmc6MXJlbTsgYm9yZGVyLWNvbGxhcHNlOnVuc2V0OyB9IC5jdGFib3gtLWNlbGwgeyB3aWR0aDoyNSU7IHRyYW5zaXRpb246YWxsIDAuMnMgbGluZWFyOyB9IC5jdGFib3gtLWNlbGw6bm90KFtvbmNsaWNrPScnXSk6aG92ZXIgeyBjdXJzb3I6cG9pbnRlcjsgfSAuY3RhYm94LS1jZWxsLmN0YWJveC0tY2VsbF9fMSB7IHdpZHRoOjEwMCU7IH0gLmN0YWJveC0tY2VsbC5jdGFib3gtLWNlbGxfXzIgeyB3aWR0aDo0ODBweDsgfSAuY3RhYm94LS1jZWxsLmN0YWJveC0tY2VsbF9fMyB7IHdpZHRoOjMzJTsgfSAuY3RhYm94LS1jb250YWluZXIgeyBwYWRkaW5nOjFyZW07IH0gLmN0YWJveC0tY29udGFpbmVyIC5jdGFib3gtLWljb24geyBmb250LXNpemU6MS41NjNyZW0gOyB9IC5jdGFib3gtLWNvbnRhaW5lciAuY3RhYm94LS1pY29uLmN0YWJveC0taWNvbl9fdG9wIHsgcGFkZGluZy1ib3R0b206MTBweDsgfSAuY3RhYm94LS1jb250YWluZXIgLmN0YWJveC0taWNvbi5jdGFib3gtLWljb25fX2xlZnQgeyBmbG9hdDpsZWZ0OyB9IC5jdGFib3gtLWljb25fX2xlZnQgfiAuY3RhYm94LS10aXRsZSwgLmN0YWJveC0taWNvbl9fbGVmdCB+IC5jdGFib3gtLWRlc2NyaXB0aW9uLCAuY3RhYm94LS1pY29uX19sZWZ0IH4gLmN0YWJveC0tYnV0dG9uIHsgbWFyZ2luLWxlZnQ6MzVweDsgfSAuY3RhYm94LS1jb250YWluZXIgLmN0YWJveC0tdGl0bGUgeyBmb250LXdlaWdodDpib2xkOyBmb250LXNpemU6MS41NjNyZW0gOyB9IC5jdGFib3gtLWNvbnRhaW5lciAuY3RhYm94LS1kZXNjcmlwdGlvbiB7IG1hcmdpbi10b3A6MTBweDsgfSAuY3RhYm94LS1jb250YWluZXIgLmN0YWJveC0tYnV0dG9uIHsgbWFyZ2luLXRvcDoyMHB4OyB9IC5wYXJhbGxheC1zZWN0aW9uIHsgYmFja2dyb3VuZC1wb3NpdGlvbjpjZW50ZXI7IGJhY2tncm91bmQtc2l6ZTpjb3ZlcjsgYmFja2dyb3VuZC1hdHRhY2htZW50OmxvY2FsOyBwYWRkaW5nOjI1cHggMDsgLXdlYmtpdC10cmFuc2l0aW9uOmFsbCAwLjNzOyAtbW96LXRyYW5zaXRpb246YWxsIDAuM3M7IC1tcy10cmFuc2l0aW9uOmFsbCAwLjNzOyAtby10cmFuc2l0aW9uOmFsbCAwLjNzOyB0cmFuc2l0aW9uOmFsbCAwLjNzOyBiYWNrZ3JvdW5kLWNvbG9yOiMwMDA7IH0gLnBhcmFsbGF4LXNlY3Rpb24gLmNvbnRhaW5lciB7IHdpZHRoOjYwJTsgcGFkZGluZy1yaWdodDoxNXB4OyBwYWRkaW5nLWxlZnQ6MTVweDsgbWFyZ2luLXJpZ2h0OmF1dG87IG1hcmdpbi1sZWZ0OmF1dG87IH0gLnBhcmFsbGF4LXNlY3Rpb24gLmNvbnRhaW5lci5sYXJnZSB7IHdpZHRoOjgwJTsgYm94LXNpemluZzpib3JkZXItYm94OyB9IC5wYXJhbGxheC1jb250ZW50IHsgd2lkdGg6NDUlOyBwYWRkaW5nOjQwcHggNDBweDsgYmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLDAuNyk7IGNvbG9yOiNmZmY7IH0gLnBhcmFsbGF4LWNvbnRlbnQgLnBhcmFsbGF4LWNvbnRlbnQtYnVzaW5lc3MtdGl0bGUgeyBmb250LXNpemU6MS40MzhyZW0gIWltcG9ydGFudDsgZm9udC13ZWlnaHQ6bm9ybWFsICFpbXBvcnRhbnQ7IG1hcmdpbi1ib3R0b206MjBweDsgY29sb3I6aW5oZXJpdDsgfSAucGFyYWxsYXgtY29udGVudCAucGFyYWxsYXgtY29udGVudC1idXNpbmVzcy1kZXNjIHsgZm9udC1zaXplOjAuOTM4cmVtICFpbXBvcnRhbnQ7IHRleHQtYWxpZ246bGVmdDsgY29sb3I6aW5oZXJpdDsgfSAucGFyYWxsYXgtY29udGVudCAucGFyYWxsYXgtY29udGVudC1idXNpbmVzcy1kZXNjIGF7IGNvbG9yOmluaGVyaXQ7IH0gQG1lZGlhIChtYXgtd2lkdGg6MTMzMHB4KSB7IC5wYXJhbGxheC1zZWN0aW9uIC5jb250YWluZXIgeyB3aWR0aDo4MCU7IH0gLnBhcmFsbGF4LXNlY3Rpb24gLmNvbnRhaW5lci5sYXJnZSB7IHdpZHRoOjEwMCU7IH0gfSAuc3Itb25seSB7IHBvc2l0aW9uOmFic29sdXRlICFpbXBvcnRhbnQ7IHdpZHRoOjFweCAhaW1wb3J0YW50OyBoZWlnaHQ6MXB4ICFpbXBvcnRhbnQ7IHBhZGRpbmc6MCAhaW1wb3J0YW50OyBtYXJnaW46LTFweCAhaW1wb3J0YW50OyBvdmVyZmxvdzpoaWRkZW4gIWltcG9ydGFudDsgY2xpcDpyZWN0KDAsIDAsIDAsIDApICFpbXBvcnRhbnQ7IGJvcmRlcjowICFpbXBvcnRhbnQ7IH0gLmJucF9wdWxsb3V0X2ltZ3sgbWF4LXdpZHRoOjEwcmVtOyBtYXJnaW46YXV0bzsgfSAuYm5wX3B1bGxvdXRfY29sX3NlcGFyYXRvcnsgd2lkdGg6MXB4OyBiYWNrZ3JvdW5kLWNvbG9yOiNFQkVCRUI7IGhlaWdodDo5OHB4OyBwb3NpdGlvbjphYnNvbHV0ZTsgdG9wOjIwcHg7IH0gLmJucF9wdWxsb3V0X21pZF9jb2x7IHdpZHRoOjcwJTsgZGlzcGxheTp0YWJsZS1jZWxsOyB9IC5ibnBfcHVsbG91dF9taWRfY29sX3JpZ2h0eyBib3JkZXItbGVmdC13aWR0aDoxcHg7IH0gLmJucF9wdWxsb3V0X21pZF9jb2xfc2VwYXJhdG9yeyB3aWR0aDoxcHg7IGJhY2tncm91bmQtY29sb3I6I0VCRUJFQjsgaGVpZ2h0OjQwcHg7IHBvc2l0aW9uOmFic29sdXRlOyB0b3A6NzhweDsgfSAuYm5wX3B1bGxvdXRfbWlkX2NvbF9wcmljZV93aXRoX3RpdGxleyBkaXNwbGF5OmZsZXg7IGZsZXgtZGlyZWN0aW9uOmNvbHVtbjsgdGV4dC1hbGlnbjpjZW50ZXI7IHdpZHRoOjQ1JTsgfSAuYm5wX3B1bGxvdXRfbWlkX2NvbF9wcmljZXsgZm9udC1zaXplOjJyZW0gOyBmb250LXdlaWdodDpib2xkOyB9IEBtZWRpYSAobWF4LXdpZHRoOjEzMzBweCkgeyAuYm5wX3B1bGxvdXRfbWlkX2NvbCB7IHdpZHRoOjUwJTsgfSAuYm5wX3B1bGxvdXRfbWlkX2NvbF9wcmljZV93aXRoX3RpdGxlIHsgd2lkdGg6MTAwJTsgfSAuYm5wX3B1bGxvdXRfY29sX3NlcGFyYXRvciB7IGhlaWdodDoxNjRweDsgfSAuYm5wX3B1bGxvdXRfbWlkX2NvbF9zZXBhcmF0b3IgeyBoZWlnaHQ6MTA2cHg7IH0gfSAucHVsbG91dC1jb250ZW50IC5jcmVkaXRTY29yZVB1bGxvdXRJbWd7IGhlaWdodDoxMTBweDsgYmFja2dyb3VuZC1jb2xvcjojMTAxMDEwOyB9IC5wdWxsb3V0LWNvbnRlbnQgLmNyZWRpdFNjb3JlUHVsbG91dEJ1dHRvbnsgYmFja2dyb3VuZDojNDE3RjFBICFpbXBvcnRhbnQ7IGJvcmRlci1yYWRpdXM6M3B4OyBjb2xvcjojZmZmZmZmOyBwYWRkaW5nOjdweCAyMHB4IDdweDsgZm9udC1zaXplOjFyZW0gOyBmb250LXdlaWdodDo3MDA7IHRleHQtc2hhZG93OjAuNHB4IDA7IH0gLnB1bGxvdXQtY29udGVudCAuY3JlZGl0U2NvcmVQdWxsb3V0Q29udGVudHsgY29sb3I6IzAwMDAwMDsgZm9udC1zaXplOjEuNTYzcmVtIDsgZm9udC13ZWlnaHQ6NzAwOyBtYXJnaW4tYm90dG9tOi0xNXB4OyB9IC5wdWxsb3V0LWNvbnRlbnQgLmNyZWRpdFNjb3JlUHVsbG91dENvbnRlbnRTY29yZXsgY29sb3I6IzAwMDAwMDsgZm9udC13ZWlnaHQ6NzAwOyBmb250LXNpemU6MS44NzVyZW0gOyB0ZXh0LXNoYWRvdzoycHggMDsgfSAucHVsbG91dC1jb250ZW50IC5jcmVkaXRTY29yZVB1bGxvdXRDb250ZW50RnJlZXsgY29sb3I6IzQxN0YxQTsgZm9udC13ZWlnaHQ6NzAwOyBmb250LXNpemU6Mi44MTNyZW0gOyB0ZXh0LXNoYWRvdzoycHggMDsgfSAuaXNQYWdlRnVsbFdpZHRoRW5hYmxlZC5pc0Z1bGxXaWR0aFBhZ2UgLnB1bGxvdXQtY29udGVudCAuY3JlZGl0U2NvcmVQdWxsb3V0TWF4V2lkdGh7IG1heC13aWR0aDoxMjAwcHg7IH0gLnB1bGxvdXQtY29udGVudCAuY3JlZGl0U2NvcmVQdWxsb3V0TWF4V2lkdGh7IG1heC13aWR0aDo5NjBweDsgfSAuc2xpZGVyLW1haW4gaW1neyB0cmFuc2l0aW9uOnRyYW5zZm9ybSAwLjVzIGVhc2Utb3V0IH0gLmNvbW11bmljYXRpb25QcmVmeyBwYWRkaW5nOnZhcigtLWlucHV0LXBhZGRpbmcpOyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWlucHV0LWJnLWNvbG9yKTsgYm9yZGVyLXJhZGl1czp2YXIoLS1pbnB1dC1yYWRpdXMpOyBib3JkZXI6MXB4IHNvbGlkIHZhcigtLWlucHV0LWJvcmRlci1jb2xvcik7IGNvbG9yOiMyMTI1Mjk7IGZvbnQtc2l6ZTp2YXIoLS1pbnB1dC1mb250LXNpemUpOyBsaW5lLWhlaWdodDp2YXIoLS1pbnB1dC1saW5lLWhlaWdodCk7IGZvbnQtd2VpZ2h0OjQwMDsgd2lkdGg6NTAlICFpbXBvcnRhbnQ7IH0gLmQyY2Zvcm0geyAtLWxhYmVsLXJlcXVpcmVkLXN5bWJvbDoiKiI7IC0tbGFiZWwtcmVxdWlyZWQtY29sb3I6I0ZGMDAwMDsgLS1pbnB1dC1wYWRkaW5nOnZhcigtLXMtMSkgdmFyKC0tczEpOyAtLWlucHV0LWJnLWNvbG9yOnZhcigtLXdoaXRlKTsgLS1pbnB1dC1ib3JkZXItY29sb3I6dmFyKC0tbWlkLWdyYXkpOyAtLWlucHV0LXJhZGl1czp2YXIoLS1zLTYpOyAtLWlucHV0LWZvbnQtc2l6ZTp2YXIoLS1mczApOyAtLWlucHV0LWxpbmUtaGVpZ2h0OnZhcigtLWZzMik7IH0gLm1haW5EaXZBZGp1c3RIZWFkZXIgLnVwX21lbnUgLlMxMDBQZXJjZW50V2lkdGggeyBiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50OyB9IC51cF9tZW51LmZpeGVkIC5TMTAwUGVyY2VudFdpZHRoeyBiYWNrZ3JvdW5kLWNvbG9yOnJnYigxNiwxNiwxNikgfSAubWFpbkRpdkFkanVzdEhlYWRlciAudi1jYXJkIC5hZGRyZXNzLW1pZGRsZSAub3JnLCAubWFpbkRpdkFkanVzdEhlYWRlciAudi1jYXJkIC5hZGRyZXNzLW1pZGRsZSAuc3RyZWV0LWFkZHJlc3MsIC5tYWluRGl2QWRqdXN0SGVhZGVyIC52LWNhcmQgLmFkZHJlc3MtbWlkZGxlIC5sb2NhbGl0eSwgLm1haW5EaXZBZGp1c3RIZWFkZXIgLnYtY2FyZCAuYWRkcmVzcy1taWRkbGUgLnJlZ2lvbiwgLm1haW5EaXZBZGp1c3RIZWFkZXIgLnYtY2FyZCAuYWRkcmVzcy1taWRkbGUgLnBvc3RhbC1jb2RlLCAubWFpbkRpdkFkanVzdEhlYWRlciAudi1jYXJkIC5hZGRyZXNzLW1pZGRsZSAuZXh0ZW5kZWRQaG9uZVRyaWdnZXIsIC5tYWluRGl2QWRqdXN0SGVhZGVyIC52LWNhcmQgLmFkZHJlc3MtbWlkZGxlIC5waG9uZS1saW5rIHsgY29sb3I6dmFyKC0taG9tZXBhZ2UtaGVhZGVyLWl0ZW0tY29sb3IpICFpbXBvcnRhbnQ7IH0gLm1haW5EaXZBZGp1c3RIZWFkZXIgLnYtY2FyZCAuYWRkcmVzcy1taWRkbGUgLmRlYWxlck1hcExpbmsgc3ZnIHsgZmlsbDp2YXIoLS1ob21lcGFnZS1oZWFkZXItaXRlbS1jb2xvcik7IH0gLm1haW5EaXZBZGp1c3RIZWFkZXIgLnYtY2FyZCAuYWRkcmVzcy1taWRkbGUgLmZhLWNhcmV0LWRvd246OmJlZm9yZSwgLm1haW5EaXZBZGp1c3RIZWFkZXIgLnYtY2FyZCAuYWRkcmVzcy1taWRkbGUgLmZhLXBob25lOjpiZWZvcmUgeyBjb2xvcjp2YXIoLS1ob21lcGFnZS1oZWFkZXItaXRlbS1jb2xvcik7IH0gLm1haW5EaXZBZGp1c3RIZWFkZXIgLnVwX21lbnUgLlMxMDBQZXJjZW50V2lkdGggPiB1bCA+IGxpID4gYS50b3BfbGluayB7IGNvbG9yOnZhcigtLWhvbWVwYWdlLW1lbnUtaXRlbS1jb2xvcik7IH0gLm1haW5EaXZBZGp1c3RIZWFkZXIgLmxhbmd1YWdlQmFyIC5nUmF0aW5nLWljb24jZ1JhdGluZywgLm1haW5EaXZBZGp1c3RIZWFkZXIgLmxhbmd1YWdlQmFyIC5kZXNrdG9wX2xhbmdfYnV0dG9uLmFjdGl2ZSwgLm1haW5EaXZBZGp1c3RIZWFkZXIgLmxhbmd1YWdlQmFyIGEuZGVza3RvcF9sYW5nX2J1dHRvbjpob3ZlciB7IGJhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7IGNvbG9yOnZhcigtLWhvbWVwYWdlLWhlYWRlci1pdGVtLWNvbG9yKTsgYm9yZGVyOjFweCBzb2xpZCB2YXIoLS1ob21lcGFnZS1oZWFkZXItaXRlbS1jb2xvcik7IH0gLm1haW5EaXZBZGp1c3RIZWFkZXIgLmxhbmd1YWdlQmFyIC5kZXNrdG9wX2xhbmdfYnV0dG9uIHsgY29sb3I6IzAwMDAwMDsgYmFja2dyb3VuZDpyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpOyBib3JkZXI6MXB4IHNvbGlkIHZhcigtLWhvbWVwYWdlLWhlYWRlci1pdGVtLWNvbG9yKTsgfSAubWFpbkRpdkFkanVzdEhlYWRlciAubGFuZ3VhZ2VCYXIgZGl2LmQyYy1mYXZzLW5hdi13cmFwcGVyIGkuZmFyIHsgY29sb3I6dmFyKC0taG9tZXBhZ2UtaGVhZGVyLWl0ZW0tY29sb3IpOyB9IC5tYWluRGl2QWRqdXN0SGVhZGVyIC5sYW5ndWFnZUJhciAuc2VydmljZS1oZWFkZXItZm9ybSAuYnRuIHsgYm9yZGVyLWNvbG9yOnZhcigtLWhvbWVwYWdlLWhlYWRlci1pdGVtLWNvbG9yKTsgfSAubGFuZ3VhZ2VCYXIgLmdSYXRpbmctaWNvbiNnUmF0aW5nLCAubGFuZ3VhZ2VCYXIgI3NlcnZpY2VfYXBwb2ludF9oZWFkZXIgPiBhLCAubGFuZ3VhZ2VCYXIgLmRlc2t0b3BfbGFuZ19idXR0b24geyBib3JkZXItcmFkaXVzOnZhcigtLXByb21vLWJ0bi1ib3JkZXItcmFkaXVzKSAhaW1wb3J0YW50OyB9IC5nUmF0aW5nLWljb24jZ1JhdGluZyAucmF0aW5nIHsgZGlzcGxheTpmbGV4OyBhbGlnbi1pdGVtczpjZW50ZXI7IGp1c3RpZnktY29udGVudDpjZW50ZXI7IGxpbmUtaGVpZ2h0OjE7IH0gLm1hcmdpbi1ib3R0b20tLTRweCB7IG1hcmdpbi1ib3R0b206LTRweDsgfSAubWFpbkRpdkFkanVzdEhlYWRlciAubGFuZ3VhZ2VCYXIsIC5tYWluRGl2QWRqdXN0SGVhZGVyIC52LWNhcmQsIC5tYWluRGl2QWRqdXN0SGVhZGVyIC5iYW5uZXItc2VhcmNoLWJveC13cmFwcGVyIHsgei1pbmRleDoyOyBwb3NpdGlvbjpyZWxhdGl2ZSB9Ci8qKiAvY3NzL3Byb19kcm9wZG93bl80LmNzcyAqKi8KLmlkTmF2MSB7IHBhZGRpbmc6MDsgbGlzdC1zdHlsZTpub25lOyBoZWlnaHQ6MjhweDsgZm9udC1zaXplOjAuNzVyZW0gOyBmb250LXN0eWxlOm5vcm1hbDsgZm9udC13ZWlnaHQ6Ym9sZDsgdGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlOyBjb2xvcjojRjlGOUY5OyB9IC5pZE5hdjEgbGkudG9wIHtkaXNwbGF5OmJsb2NrOyBmbG9hdDpsZWZ0OyBoZWlnaHQ6MjhweDsgcGFkZGluZzowO30gLmlkTmF2MSBsaS50b3AxIHtkaXNwbGF5OmJsb2NrOyBmbG9hdDpsZWZ0OyBoZWlnaHQ6MjhweDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9ibF9ob3Zlci5wbmcpIGxlZnQgdG9wIHJlcGVhdC14OyBwYWRkaW5nOjA7IHBhZGRpbmctcmlnaHQ6MnB4OyBmb250LXNpemU6MC44MTNyZW0gOyB0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7IGNvbG9yOiNmZmY7IHRleHQtYWxpZ246Y2VudGVyOyAtbW96LWJvcmRlci1yYWRpdXM6M3B4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6M3B4OyBib3JkZXItcmFkaXVzOjNweDsgLWtodG1sLWJvcmRlci1yYWRpdXM6M3B4O30gLmlkTmF2MSBsaSBhLnRvcF9saW5rIHsgZGlzcGxheTpibG9jazsgZmxvYXQ6bGVmdDsgaGVpZ2h0OjI4cHg7IGxpbmUtaGVpZ2h0OjMwcHg7IHRleHQtZGVjb3JhdGlvbjpub25lOyBmb250LXNpemU6MC44MTNyZW0gOyB0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgcGFkZGluZzowcHggMTJweCAwcHggMTJweDsgY3Vyc29yOnBvaW50ZXI7IC1tb3otYm9yZGVyLXJhZGl1czozcHg7IC13ZWJraXQtYm9yZGVyLXJhZGl1czozcHg7IGJvcmRlci1yYWRpdXM6M3B4OyAta2h0bWwtYm9yZGVyLXJhZGl1czozcHg7IGJhY2tncm91bmQ6IzEwMTAxMDsgY29sb3I6I2ZmZmZmZjsgfSAuaWROYXYxIGxpIGEudG9wX2xpbms6aG92ZXIgeyAtbW96LWJvcmRlci1yYWRpdXM6M3B4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6M3B4OyBib3JkZXItcmFkaXVzOjNweDsgZmlsdGVyOmJyaWdodG5lc3MoOTUlKTsgfSAuaWROYXYxIGxpIGEudG9wX2xpbmsxIHsgY29sb3I6cmdiKDI1NSwyNTUsMjU1KTsgZGlzcGxheTpibG9jazsgZmxvYXQ6bGVmdDsgaGVpZ2h0OjI4cHg7IGxpbmUtaGVpZ2h0OjMwcHg7IGNvbG9yOiNmZWZlZmU7IHRleHQtZGVjb3JhdGlvbjpub25lOyBmb250LXNpemU6MC44MTNyZW0gOyB0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgcGFkZGluZzowcHggMTJweCAwcHggMTJweDsgY3Vyc29yOnBvaW50ZXI7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvYmxfaG92ZXIucG5nKSBsZWZ0IHRvcCByZXBlYXQteDsgLW1vei1ib3JkZXItcmFkaXVzOjNweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjNweDsgYm9yZGVyLXJhZGl1czozcHg7IC1raHRtbC1ib3JkZXItcmFkaXVzOjNweDt9ICNmcm1SZWJhdGUgLmlkTmF2MSBsaSBhLnRvcF9saW5rIHsgY29sb3I6I2ZmZmZmZjsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9idXR0b25fcG9wdXAucG5nKSByZXBlYXQteCBzY3JvbGwgbGVmdCB0b3A7IH0gI2ZybVJlYmF0ZSAuaWROYXYxIGxpIGEudG9wX2xpbms6aG92ZXIgeyBjb2xvcjojZmZmZmZmOyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2JsX2hvdmVyLnBuZykgbGVmdCB0b3AgcmVwZWF0LXg7IH0gLmlkTmF2MSBsaSBhLnNlcnZpY2UtbGlua3sgbWFyZ2luLWJvdHRvbToxMnB4OyB3aWR0aDoyMDJweDsgZm9udC1zaXplOjAuOHJlbTsgZm9udC13ZWlnaHQ6bm9ybWFsOyB9IC5pZE5hdjEgbGkgYS5zZXJ2aWNlLWxpbmtfX3N1Ym1pdCB7IGZvbnQtc2l6ZTowLjhyZW07IGZvbnQtd2VpZ2h0Om5vcm1hbDsgfSAubGFuZ3VhZ2VCYXIgLmlkTmF2MSBsaSBhLnRvcF9saW5rIHsgYmFja2dyb3VuZDppbmhlcml0OyBiYWNrZ3JvdW5kLWNvbG9yOiM5MjkyOTI7IGJhY2tncm91bmQtY29sb3I6I2Y1ZjVmNTsgZm9udC1zaXplOjFyZW0gOyBjb2xvcjojZmZmZmZmOyBjb2xvcjojMTAxMDEwOyB9Ci8qKiAvY3NzL2pxdWVyeS11aS1mYWN0b3J5LzEuMTMuMi9qcXVlcnktdWkubWluLmNzcyAqKi8KLnVpLWhlbHBlci1oaWRkZW57ZGlzcGxheTpub25lfS51aS1oZWxwZXItaGlkZGVuLWFjY2Vzc2libGV7Ym9yZGVyOjA7Y2xpcDpyZWN0KDAgMCAwIDApO2hlaWdodDoxcHg7bWFyZ2luOi0xcHg7b3ZlcmZsb3c6aGlkZGVuO3BhZGRpbmc6MDtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDoxcHh9LnVpLWhlbHBlci1yZXNldHttYXJnaW46MDtwYWRkaW5nOjA7Ym9yZGVyOjA7b3V0bGluZTowO2xpbmUtaGVpZ2h0OjEuMzt0ZXh0LWRlY29yYXRpb246bm9uZTtmb250LXNpemU6MTAwJTtsaXN0LXN0eWxlOm5vbmV9LnVpLWhlbHBlci1jbGVhcmZpeDpiZWZvcmUsLnVpLWhlbHBlci1jbGVhcmZpeDphZnRlcntjb250ZW50OiIiO2Rpc3BsYXk6dGFibGU7Ym9yZGVyLWNvbGxhcHNlOmNvbGxhcHNlfS51aS1oZWxwZXItY2xlYXJmaXg6YWZ0ZXJ7Y2xlYXI6Ym90aH0udWktaGVscGVyLXpmaXh7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTt0b3A6MDtsZWZ0OjA7cG9zaXRpb246YWJzb2x1dGU7b3BhY2l0eTowOy1tcy1maWx0ZXI6ImFscGhhKG9wYWNpdHk9MCkifS51aS1mcm9udHt6LWluZGV4OjEwMH0udWktc3RhdGUtZGlzYWJsZWR7Y3Vyc29yOmRlZmF1bHQhaW1wb3J0YW50O3BvaW50ZXItZXZlbnRzOm5vbmV9LnVpLWljb257ZGlzcGxheTppbmxpbmUtYmxvY2s7dmVydGljYWwtYWxpZ246bWlkZGxlO21hcmdpbi10b3A6LS4yNWVtO3Bvc2l0aW9uOnJlbGF0aXZlO3RleHQtaW5kZW50Oi05OTk5OXB4O292ZXJmbG93OmhpZGRlbjtiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXR9LnVpLXdpZGdldC1pY29uLWJsb2Nre2xlZnQ6NTAlO21hcmdpbi1sZWZ0Oi04cHg7ZGlzcGxheTpibG9ja30udWktd2lkZ2V0LW92ZXJsYXl7cG9zaXRpb246Zml4ZWQ7dG9wOjA7bGVmdDowO3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCV9LnVpLWFjY29yZGlvbiAudWktYWNjb3JkaW9uLWhlYWRlcntkaXNwbGF5OmJsb2NrO2N1cnNvcjpwb2ludGVyO3Bvc2l0aW9uOnJlbGF0aXZlO21hcmdpbjoycHggMCAwIDA7cGFkZGluZzouNWVtIC41ZW0gLjVlbSAuN2VtO2ZvbnQtc2l6ZToxMDAlfS51aS1hY2NvcmRpb24gLnVpLWFjY29yZGlvbi1jb250ZW50e3BhZGRpbmc6MWVtIDIuMmVtO2JvcmRlci10b3A6MDtvdmVyZmxvdzphdXRvfS51aS1zbGlkZXJ7cG9zaXRpb246cmVsYXRpdmU7dGV4dC1hbGlnbjpsZWZ0fS51aS1zbGlkZXIgLnVpLXNsaWRlci1oYW5kbGV7cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoyO3dpZHRoOjEuMmVtO2hlaWdodDoxLjJlbTtjdXJzb3I6cG9pbnRlcjstbXMtdG91Y2gtYWN0aW9uOm5vbmU7dG91Y2gtYWN0aW9uOm5vbmV9LnVpLXNsaWRlciAudWktc2xpZGVyLXJhbmdle3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTtmb250LXNpemU6LjdlbTtkaXNwbGF5OmJsb2NrO2JvcmRlcjowO2JhY2tncm91bmQtcG9zaXRpb246MCAwfS51aS1zbGlkZXIudWktc3RhdGUtZGlzYWJsZWQgLnVpLXNsaWRlci1oYW5kbGUsLnVpLXNsaWRlci51aS1zdGF0ZS1kaXNhYmxlZCAudWktc2xpZGVyLXJhbmdle2ZpbHRlcjppbmhlcml0fS51aS1zbGlkZXItaG9yaXpvbnRhbHtoZWlnaHQ6LjhlbX0udWktc2xpZGVyLWhvcml6b250YWwgLnVpLXNsaWRlci1oYW5kbGV7dG9wOi0uM2VtO21hcmdpbi1sZWZ0Oi0uNmVtfS51aS1zbGlkZXItaG9yaXpvbnRhbCAudWktc2xpZGVyLXJhbmdle3RvcDowO2hlaWdodDoxMDAlfS51aS1zbGlkZXItaG9yaXpvbnRhbCAudWktc2xpZGVyLXJhbmdlLW1pbntsZWZ0OjB9LnVpLXNsaWRlci1ob3Jpem9udGFsIC51aS1zbGlkZXItcmFuZ2UtbWF4e3JpZ2h0OjB9LnVpLXNsaWRlci12ZXJ0aWNhbHt3aWR0aDouOGVtO2hlaWdodDoxMDBweH0udWktc2xpZGVyLXZlcnRpY2FsIC51aS1zbGlkZXItaGFuZGxle2xlZnQ6LS4zZW07bWFyZ2luLWxlZnQ6MDttYXJnaW4tYm90dG9tOi0uNmVtfS51aS1zbGlkZXItdmVydGljYWwgLnVpLXNsaWRlci1yYW5nZXtsZWZ0OjA7d2lkdGg6MTAwJX0udWktc2xpZGVyLXZlcnRpY2FsIC51aS1zbGlkZXItcmFuZ2UtbWlue2JvdHRvbTowfS51aS1zbGlkZXItdmVydGljYWwgLnVpLXNsaWRlci1yYW5nZS1tYXh7dG9wOjB9LnVpLXdpZGdldHtmb250LWZhbWlseTpBcmlhbCxIZWx2ZXRpY2Esc2Fucy1zZXJpZjtmb250LXNpemU6MWVtfS51aS13aWRnZXQgLnVpLXdpZGdldHtmb250LXNpemU6MWVtfS51aS13aWRnZXQgaW5wdXQsLnVpLXdpZGdldCBzZWxlY3QsLnVpLXdpZGdldCB0ZXh0YXJlYSwudWktd2lkZ2V0IGJ1dHRvbntmb250LWZhbWlseTpBcmlhbCxIZWx2ZXRpY2Esc2Fucy1zZXJpZjtmb250LXNpemU6MWVtfS51aS13aWRnZXQudWktd2lkZ2V0LWNvbnRlbnR7Ym9yZGVyOjFweCBzb2xpZCAjYzVjNWM1fS51aS13aWRnZXQtY29udGVudHtib3JkZXI6MXB4IHNvbGlkICNkZGQ7YmFja2dyb3VuZDojZmZmO2NvbG9yOiMzMzN9LnVpLXdpZGdldC1jb250ZW50IGF7Y29sb3I6IzMzM30udWktd2lkZ2V0LWhlYWRlcntib3JkZXI6MXB4IHNvbGlkICNkZGQ7YmFja2dyb3VuZDojZTllOWU5O2NvbG9yOiMzMzM7Zm9udC13ZWlnaHQ6Ym9sZH0udWktd2lkZ2V0LWhlYWRlciBhe2NvbG9yOiMzMzN9LnVpLXN0YXRlLWRlZmF1bHQsLnVpLXdpZGdldC1jb250ZW50IC51aS1zdGF0ZS1kZWZhdWx0LC51aS13aWRnZXQtaGVhZGVyIC51aS1zdGF0ZS1kZWZhdWx0LC51aS1idXR0b24saHRtbCAudWktYnV0dG9uLnVpLXN0YXRlLWRpc2FibGVkOmhvdmVyLGh0bWwgLnVpLWJ1dHRvbi51aS1zdGF0ZS1kaXNhYmxlZDphY3RpdmV7Ym9yZGVyOjFweCBzb2xpZCAjYzVjNWM1O2JhY2tncm91bmQ6I2Y2ZjZmNjtmb250LXdlaWdodDpub3JtYWw7Y29sb3I6IzQ1NDU0NX0udWktc3RhdGUtZGVmYXVsdCBhLC51aS1zdGF0ZS1kZWZhdWx0IGE6bGluaywudWktc3RhdGUtZGVmYXVsdCBhOnZpc2l0ZWQsYS51aS1idXR0b24sYTpsaW5rLnVpLWJ1dHRvbixhOnZpc2l0ZWQudWktYnV0dG9uLC51aS1idXR0b257Y29sb3I6IzQ1NDU0NTt0ZXh0LWRlY29yYXRpb246bm9uZX0udWktc3RhdGUtaG92ZXIsLnVpLXdpZGdldC1jb250ZW50IC51aS1zdGF0ZS1ob3ZlciwudWktd2lkZ2V0LWhlYWRlciAudWktc3RhdGUtaG92ZXIsLnVpLXN0YXRlLWZvY3VzLC51aS13aWRnZXQtY29udGVudCAudWktc3RhdGUtZm9jdXMsLnVpLXdpZGdldC1oZWFkZXIgLnVpLXN0YXRlLWZvY3VzLC51aS1idXR0b246aG92ZXIsLnVpLWJ1dHRvbjpmb2N1c3tib3JkZXI6MXB4IHNvbGlkICNjY2M7YmFja2dyb3VuZDojZWRlZGVkO2ZvbnQtd2VpZ2h0Om5vcm1hbDtjb2xvcjojMmIyYjJifS51aS1zdGF0ZS1ob3ZlciBhLC51aS1zdGF0ZS1ob3ZlciBhOmhvdmVyLC51aS1zdGF0ZS1ob3ZlciBhOmxpbmssLnVpLXN0YXRlLWhvdmVyIGE6dmlzaXRlZCwudWktc3RhdGUtZm9jdXMgYSwudWktc3RhdGUtZm9jdXMgYTpob3ZlciwudWktc3RhdGUtZm9jdXMgYTpsaW5rLC51aS1zdGF0ZS1mb2N1cyBhOnZpc2l0ZWQsYS51aS1idXR0b246aG92ZXIsYS51aS1idXR0b246Zm9jdXN7Y29sb3I6IzJiMmIyYjt0ZXh0LWRlY29yYXRpb246bm9uZX0udWktdmlzdWFsLWZvY3Vze2JveC1zaGFkb3c6MCAwIDNweCAxcHggcmdiKDk0LDE1OCwyMTQpfS51aS1zdGF0ZS1hY3RpdmUsLnVpLXdpZGdldC1jb250ZW50IC51aS1zdGF0ZS1hY3RpdmUsLnVpLXdpZGdldC1oZWFkZXIgLnVpLXN0YXRlLWFjdGl2ZSxhLnVpLWJ1dHRvbjphY3RpdmUsLnVpLWJ1dHRvbjphY3RpdmUsLnVpLWJ1dHRvbi51aS1zdGF0ZS1hY3RpdmU6aG92ZXJ7Ym9yZGVyOjFweCBzb2xpZCAjMDAzZWZmO2JhY2tncm91bmQ6IzAwN2ZmZjtmb250LXdlaWdodDpub3JtYWw7Y29sb3I6I2ZmZn0udWktaWNvbi1iYWNrZ3JvdW5kLC51aS1zdGF0ZS1hY3RpdmUgLnVpLWljb24tYmFja2dyb3VuZHtib3JkZXI6IzAwM2VmZjtiYWNrZ3JvdW5kLWNvbG9yOiNmZmZ9LnVpLXN0YXRlLWFjdGl2ZSBhLC51aS1zdGF0ZS1hY3RpdmUgYTpsaW5rLC51aS1zdGF0ZS1hY3RpdmUgYTp2aXNpdGVke2NvbG9yOiNmZmY7dGV4dC1kZWNvcmF0aW9uOm5vbmV9LnVpLXN0YXRlLWhpZ2hsaWdodCwudWktd2lkZ2V0LWNvbnRlbnQgLnVpLXN0YXRlLWhpZ2hsaWdodCwudWktd2lkZ2V0LWhlYWRlciAudWktc3RhdGUtaGlnaGxpZ2h0e2JvcmRlcjoxcHggc29saWQgI2RhZDU1ZTtiYWNrZ3JvdW5kOiNmZmZhOTA7Y29sb3I6Izc3NzYyMH0udWktc3RhdGUtY2hlY2tlZHtib3JkZXI6MXB4IHNvbGlkICNkYWQ1NWU7YmFja2dyb3VuZDojZmZmYTkwfS51aS1zdGF0ZS1oaWdobGlnaHQgYSwudWktd2lkZ2V0LWNvbnRlbnQgLnVpLXN0YXRlLWhpZ2hsaWdodCBhLC51aS13aWRnZXQtaGVhZGVyIC51aS1zdGF0ZS1oaWdobGlnaHQgYXtjb2xvcjojNzc3NjIwfS51aS1zdGF0ZS1lcnJvciwudWktd2lkZ2V0LWNvbnRlbnQgLnVpLXN0YXRlLWVycm9yLC51aS13aWRnZXQtaGVhZGVyIC51aS1zdGF0ZS1lcnJvcntib3JkZXI6MXB4IHNvbGlkICNmMWE4OTk7YmFja2dyb3VuZDojZmRkZmRmO2NvbG9yOiM1ZjNmM2Z9LnVpLXN0YXRlLWVycm9yIGEsLnVpLXdpZGdldC1jb250ZW50IC51aS1zdGF0ZS1lcnJvciBhLC51aS13aWRnZXQtaGVhZGVyIC51aS1zdGF0ZS1lcnJvciBhe2NvbG9yOiM1ZjNmM2Z9LnVpLXN0YXRlLWVycm9yLXRleHQsLnVpLXdpZGdldC1jb250ZW50IC51aS1zdGF0ZS1lcnJvci10ZXh0LC51aS13aWRnZXQtaGVhZGVyIC51aS1zdGF0ZS1lcnJvci10ZXh0e2NvbG9yOiM1ZjNmM2Z9LnVpLXByaW9yaXR5LXByaW1hcnksLnVpLXdpZGdldC1jb250ZW50IC51aS1wcmlvcml0eS1wcmltYXJ5LC51aS13aWRnZXQtaGVhZGVyIC51aS1wcmlvcml0eS1wcmltYXJ5e2ZvbnQtd2VpZ2h0OmJvbGR9LnVpLXByaW9yaXR5LXNlY29uZGFyeSwudWktd2lkZ2V0LWNvbnRlbnQgLnVpLXByaW9yaXR5LXNlY29uZGFyeSwudWktd2lkZ2V0LWhlYWRlciAudWktcHJpb3JpdHktc2Vjb25kYXJ5e29wYWNpdHk6Ljc7LW1zLWZpbHRlcjoiYWxwaGEob3BhY2l0eT03MCkiO2ZvbnQtd2VpZ2h0Om5vcm1hbH0udWktc3RhdGUtZGlzYWJsZWQsLnVpLXdpZGdldC1jb250ZW50IC51aS1zdGF0ZS1kaXNhYmxlZCwudWktd2lkZ2V0LWhlYWRlciAudWktc3RhdGUtZGlzYWJsZWR7b3BhY2l0eTouMzU7LW1zLWZpbHRlcjoiYWxwaGEob3BhY2l0eT0zNSkiO2JhY2tncm91bmQtaW1hZ2U6bm9uZX0udWktc3RhdGUtZGlzYWJsZWQgLnVpLWljb257LW1zLWZpbHRlcjoiYWxwaGEob3BhY2l0eT0zNSkifS51aS1pY29ue3dpZHRoOjE2cHg7aGVpZ2h0OjE2cHh9LnVpLWljb24sLnVpLXdpZGdldC1jb250ZW50IC51aS1pY29ue2JhY2tncm91bmQtaW1hZ2U6dXJsKCJpbWFnZXMvdWktaWNvbnNfNDQ0NDQ0XzI1NngyNDAucG5nIil9LnVpLXdpZGdldC1oZWFkZXIgLnVpLWljb257YmFja2dyb3VuZC1pbWFnZTp1cmwoImltYWdlcy91aS1pY29uc180NDQ0NDRfMjU2eDI0MC5wbmciKX0udWktc3RhdGUtaG92ZXIgLnVpLWljb24sLnVpLXN0YXRlLWZvY3VzIC51aS1pY29uLC51aS1idXR0b246aG92ZXIgLnVpLWljb24sLnVpLWJ1dHRvbjpmb2N1cyAudWktaWNvbntiYWNrZ3JvdW5kLWltYWdlOnVybCgiaW1hZ2VzL3VpLWljb25zXzU1NTU1NV8yNTZ4MjQwLnBuZyIpfS51aS1zdGF0ZS1hY3RpdmUgLnVpLWljb24sLnVpLWJ1dHRvbjphY3RpdmUgLnVpLWljb257YmFja2dyb3VuZC1pbWFnZTp1cmwoImltYWdlcy91aS1pY29uc19mZmZmZmZfMjU2eDI0MC5wbmciKX0udWktc3RhdGUtaGlnaGxpZ2h0IC51aS1pY29uLC51aS1idXR0b24gLnVpLXN0YXRlLWhpZ2hsaWdodC51aS1pY29ue2JhY2tncm91bmQtaW1hZ2U6dXJsKCJpbWFnZXMvdWktaWNvbnNfNzc3NjIwXzI1NngyNDAucG5nIil9LnVpLXN0YXRlLWVycm9yIC51aS1pY29uLC51aS1zdGF0ZS1lcnJvci10ZXh0IC51aS1pY29ue2JhY2tncm91bmQtaW1hZ2U6dXJsKCJpbWFnZXMvdWktaWNvbnNfY2MwMDAwXzI1NngyNDAucG5nIil9LnVpLWJ1dHRvbiAudWktaWNvbntiYWNrZ3JvdW5kLWltYWdlOnVybCgiaW1hZ2VzL3VpLWljb25zXzc3Nzc3N18yNTZ4MjQwLnBuZyIpfS51aS1pY29uLWJsYW5rLnVpLWljb24tYmxhbmsudWktaWNvbi1ibGFua3tiYWNrZ3JvdW5kLWltYWdlOm5vbmV9LnVpLWljb24tY2FyZXQtMS1ue2JhY2tncm91bmQtcG9zaXRpb246MCAwfS51aS1pY29uLWNhcmV0LTEtbmV7YmFja2dyb3VuZC1wb3NpdGlvbjotMTZweCAwfS51aS1pY29uLWNhcmV0LTEtZXtiYWNrZ3JvdW5kLXBvc2l0aW9uOi0zMnB4IDB9LnVpLWljb24tY2FyZXQtMS1zZXtiYWNrZ3JvdW5kLXBvc2l0aW9uOi00OHB4IDB9LnVpLWljb24tY2FyZXQtMS1ze2JhY2tncm91bmQtcG9zaXRpb246LTY1cHggMH0udWktaWNvbi1jYXJldC0xLXN3e2JhY2tncm91bmQtcG9zaXRpb246LTgwcHggMH0udWktaWNvbi1jYXJldC0xLXd7YmFja2dyb3VuZC1wb3NpdGlvbjotOTZweCAwfS51aS1pY29uLWNhcmV0LTEtbnd7YmFja2dyb3VuZC1wb3NpdGlvbjotMTEycHggMH0udWktaWNvbi1jYXJldC0yLW4tc3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xMjhweCAwfS51aS1pY29uLWNhcmV0LTItZS13e2JhY2tncm91bmQtcG9zaXRpb246LTE0NHB4IDB9LnVpLWljb24tdHJpYW5nbGUtMS1ue2JhY2tncm91bmQtcG9zaXRpb246MCAtMTZweH0udWktaWNvbi10cmlhbmdsZS0xLW5le2JhY2tncm91bmQtcG9zaXRpb246LTE2cHggLTE2cHh9LnVpLWljb24tdHJpYW5nbGUtMS1le2JhY2tncm91bmQtcG9zaXRpb246LTMycHggLTE2cHh9LnVpLWljb24tdHJpYW5nbGUtMS1zZXtiYWNrZ3JvdW5kLXBvc2l0aW9uOi00OHB4IC0xNnB4fS51aS1pY29uLXRyaWFuZ2xlLTEtc3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi02NXB4IC0xNnB4fS51aS1pY29uLXRyaWFuZ2xlLTEtc3d7YmFja2dyb3VuZC1wb3NpdGlvbjotODBweCAtMTZweH0udWktaWNvbi10cmlhbmdsZS0xLXd7YmFja2dyb3VuZC1wb3NpdGlvbjotOTZweCAtMTZweH0udWktaWNvbi10cmlhbmdsZS0xLW53e2JhY2tncm91bmQtcG9zaXRpb246LTExMnB4IC0xNnB4fS51aS1pY29uLXRyaWFuZ2xlLTItbi1ze2JhY2tncm91bmQtcG9zaXRpb246LTEyOHB4IC0xNnB4fS51aS1pY29uLXRyaWFuZ2xlLTItZS13e2JhY2tncm91bmQtcG9zaXRpb246LTE0NHB4IC0xNnB4fS51aS1pY29uLWFycm93LTEtbntiYWNrZ3JvdW5kLXBvc2l0aW9uOjAgLTMycHh9LnVpLWljb24tYXJyb3ctMS1uZXtiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xNnB4IC0zMnB4fS51aS1pY29uLWFycm93LTEtZXtiYWNrZ3JvdW5kLXBvc2l0aW9uOi0zMnB4IC0zMnB4fS51aS1pY29uLWFycm93LTEtc2V7YmFja2dyb3VuZC1wb3NpdGlvbjotNDhweCAtMzJweH0udWktaWNvbi1hcnJvdy0xLXN7YmFja2dyb3VuZC1wb3NpdGlvbjotNjVweCAtMzJweH0udWktaWNvbi1hcnJvdy0xLXN3e2JhY2tncm91bmQtcG9zaXRpb246LTgwcHggLTMycHh9LnVpLWljb24tYXJyb3ctMS13e2JhY2tncm91bmQtcG9zaXRpb246LTk2cHggLTMycHh9LnVpLWljb24tYXJyb3ctMS1ud3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xMTJweCAtMzJweH0udWktaWNvbi1hcnJvdy0yLW4tc3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xMjhweCAtMzJweH0udWktaWNvbi1hcnJvdy0yLW5lLXN3e2JhY2tncm91bmQtcG9zaXRpb246LTE0NHB4IC0zMnB4fS51aS1pY29uLWFycm93LTItZS13e2JhY2tncm91bmQtcG9zaXRpb246LTE2MHB4IC0zMnB4fS51aS1pY29uLWFycm93LTItc2Utbnd7YmFja2dyb3VuZC1wb3NpdGlvbjotMTc2cHggLTMycHh9LnVpLWljb24tYXJyb3dzdG9wLTEtbntiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xOTJweCAtMzJweH0udWktaWNvbi1hcnJvd3N0b3AtMS1le2JhY2tncm91bmQtcG9zaXRpb246LTIwOHB4IC0zMnB4fS51aS1pY29uLWFycm93c3RvcC0xLXN7YmFja2dyb3VuZC1wb3NpdGlvbjotMjI0cHggLTMycHh9LnVpLWljb24tYXJyb3dzdG9wLTEtd3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi0yNDBweCAtMzJweH0udWktaWNvbi1hcnJvd3RoaWNrLTEtbntiYWNrZ3JvdW5kLXBvc2l0aW9uOjFweCAtNDhweH0udWktaWNvbi1hcnJvd3RoaWNrLTEtbmV7YmFja2dyb3VuZC1wb3NpdGlvbjotMTZweCAtNDhweH0udWktaWNvbi1hcnJvd3RoaWNrLTEtZXtiYWNrZ3JvdW5kLXBvc2l0aW9uOi0zMnB4IC00OHB4fS51aS1pY29uLWFycm93dGhpY2stMS1zZXtiYWNrZ3JvdW5kLXBvc2l0aW9uOi00OHB4IC00OHB4fS51aS1pY29uLWFycm93dGhpY2stMS1ze2JhY2tncm91bmQtcG9zaXRpb246LTY0cHggLTQ4cHh9LnVpLWljb24tYXJyb3d0aGljay0xLXN3e2JhY2tncm91bmQtcG9zaXRpb246LTgwcHggLTQ4cHh9LnVpLWljb24tYXJyb3d0aGljay0xLXd7YmFja2dyb3VuZC1wb3NpdGlvbjotOTZweCAtNDhweH0udWktaWNvbi1hcnJvd3RoaWNrLTEtbnd7YmFja2dyb3VuZC1wb3NpdGlvbjotMTEycHggLTQ4cHh9LnVpLWljb24tYXJyb3d0aGljay0yLW4tc3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xMjhweCAtNDhweH0udWktaWNvbi1hcnJvd3RoaWNrLTItbmUtc3d7YmFja2dyb3VuZC1wb3NpdGlvbjotMTQ0cHggLTQ4cHh9LnVpLWljb24tYXJyb3d0aGljay0yLWUtd3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xNjBweCAtNDhweH0udWktaWNvbi1hcnJvd3RoaWNrLTItc2Utbnd7YmFja2dyb3VuZC1wb3NpdGlvbjotMTc2cHggLTQ4cHh9LnVpLWljb24tYXJyb3d0aGlja3N0b3AtMS1ue2JhY2tncm91bmQtcG9zaXRpb246LTE5MnB4IC00OHB4fS51aS1pY29uLWFycm93dGhpY2tzdG9wLTEtZXtiYWNrZ3JvdW5kLXBvc2l0aW9uOi0yMDhweCAtNDhweH0udWktaWNvbi1hcnJvd3RoaWNrc3RvcC0xLXN7YmFja2dyb3VuZC1wb3NpdGlvbjotMjI0cHggLTQ4cHh9LnVpLWljb24tYXJyb3d0aGlja3N0b3AtMS13e2JhY2tncm91bmQtcG9zaXRpb246LTI0MHB4IC00OHB4fS51aS1pY29uLWFycm93cmV0dXJudGhpY2stMS13e2JhY2tncm91bmQtcG9zaXRpb246MCAtNjRweH0udWktaWNvbi1hcnJvd3JldHVybnRoaWNrLTEtbntiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xNnB4IC02NHB4fS51aS1pY29uLWFycm93cmV0dXJudGhpY2stMS1le2JhY2tncm91bmQtcG9zaXRpb246LTMycHggLTY0cHh9LnVpLWljb24tYXJyb3dyZXR1cm50aGljay0xLXN7YmFja2dyb3VuZC1wb3NpdGlvbjotNDhweCAtNjRweH0udWktaWNvbi1hcnJvd3JldHVybi0xLXd7YmFja2dyb3VuZC1wb3NpdGlvbjotNjRweCAtNjRweH0udWktaWNvbi1hcnJvd3JldHVybi0xLW57YmFja2dyb3VuZC1wb3NpdGlvbjotODBweCAtNjRweH0udWktaWNvbi1hcnJvd3JldHVybi0xLWV7YmFja2dyb3VuZC1wb3NpdGlvbjotOTZweCAtNjRweH0udWktaWNvbi1hcnJvd3JldHVybi0xLXN7YmFja2dyb3VuZC1wb3NpdGlvbjotMTEycHggLTY0cHh9LnVpLWljb24tYXJyb3dyZWZyZXNoLTEtd3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xMjhweCAtNjRweH0udWktaWNvbi1hcnJvd3JlZnJlc2gtMS1ue2JhY2tncm91bmQtcG9zaXRpb246LTE0NHB4IC02NHB4fS51aS1pY29uLWFycm93cmVmcmVzaC0xLWV7YmFja2dyb3VuZC1wb3NpdGlvbjotMTYwcHggLTY0cHh9LnVpLWljb24tYXJyb3dyZWZyZXNoLTEtc3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xNzZweCAtNjRweH0udWktaWNvbi1hcnJvdy00e2JhY2tncm91bmQtcG9zaXRpb246MCAtODBweH0udWktaWNvbi1hcnJvdy00LWRpYWd7YmFja2dyb3VuZC1wb3NpdGlvbjotMTZweCAtODBweH0udWktaWNvbi1leHRsaW5re2JhY2tncm91bmQtcG9zaXRpb246LTMycHggLTgwcHh9LnVpLWljb24tbmV3d2lue2JhY2tncm91bmQtcG9zaXRpb246LTQ4cHggLTgwcHh9LnVpLWljb24tcmVmcmVzaHtiYWNrZ3JvdW5kLXBvc2l0aW9uOi02NHB4IC04MHB4fS51aS1pY29uLXNodWZmbGV7YmFja2dyb3VuZC1wb3NpdGlvbjotODBweCAtODBweH0udWktaWNvbi10cmFuc2Zlci1lLXd7YmFja2dyb3VuZC1wb3NpdGlvbjotOTZweCAtODBweH0udWktaWNvbi10cmFuc2ZlcnRoaWNrLWUtd3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xMTJweCAtODBweH0udWktaWNvbi1mb2xkZXItY29sbGFwc2Vke2JhY2tncm91bmQtcG9zaXRpb246MCAtOTZweH0udWktaWNvbi1mb2xkZXItb3BlbntiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xNnB4IC05NnB4fS51aS1pY29uLWRvY3VtZW50e2JhY2tncm91bmQtcG9zaXRpb246LTMycHggLTk2cHh9LnVpLWljb24tZG9jdW1lbnQtYntiYWNrZ3JvdW5kLXBvc2l0aW9uOi00OHB4IC05NnB4fS51aS1pY29uLW5vdGV7YmFja2dyb3VuZC1wb3NpdGlvbjotNjRweCAtOTZweH0udWktaWNvbi1tYWlsLWNsb3NlZHtiYWNrZ3JvdW5kLXBvc2l0aW9uOi04MHB4IC05NnB4fS51aS1pY29uLW1haWwtb3BlbntiYWNrZ3JvdW5kLXBvc2l0aW9uOi05NnB4IC05NnB4fS51aS1pY29uLXN1aXRjYXNle2JhY2tncm91bmQtcG9zaXRpb246LTExMnB4IC05NnB4fS51aS1pY29uLWNvbW1lbnR7YmFja2dyb3VuZC1wb3NpdGlvbjotMTI4cHggLTk2cHh9LnVpLWljb24tcGVyc29ue2JhY2tncm91bmQtcG9zaXRpb246LTE0NHB4IC05NnB4fS51aS1pY29uLXByaW50e2JhY2tncm91bmQtcG9zaXRpb246LTE2MHB4IC05NnB4fS51aS1pY29uLXRyYXNoe2JhY2tncm91bmQtcG9zaXRpb246LTE3NnB4IC05NnB4fS51aS1pY29uLWxvY2tlZHtiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xOTJweCAtOTZweH0udWktaWNvbi11bmxvY2tlZHtiYWNrZ3JvdW5kLXBvc2l0aW9uOi0yMDhweCAtOTZweH0udWktaWNvbi1ib29rbWFya3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi0yMjRweCAtOTZweH0udWktaWNvbi10YWd7YmFja2dyb3VuZC1wb3NpdGlvbjotMjQwcHggLTk2cHh9LnVpLWljb24taG9tZXtiYWNrZ3JvdW5kLXBvc2l0aW9uOjAgLTExMnB4fS51aS1pY29uLWZsYWd7YmFja2dyb3VuZC1wb3NpdGlvbjotMTZweCAtMTEycHh9LnVpLWljb24tY2FsZW5kYXJ7YmFja2dyb3VuZC1wb3NpdGlvbjotMzJweCAtMTEycHh9LnVpLWljb24tY2FydHtiYWNrZ3JvdW5kLXBvc2l0aW9uOi00OHB4IC0xMTJweH0udWktaWNvbi1wZW5jaWx7YmFja2dyb3VuZC1wb3NpdGlvbjotNjRweCAtMTEycHh9LnVpLWljb24tY2xvY2t7YmFja2dyb3VuZC1wb3NpdGlvbjotODBweCAtMTEycHh9LnVpLWljb24tZGlza3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi05NnB4IC0xMTJweH0udWktaWNvbi1jYWxjdWxhdG9ye2JhY2tncm91bmQtcG9zaXRpb246LTExMnB4IC0xMTJweH0udWktaWNvbi16b29taW57YmFja2dyb3VuZC1wb3NpdGlvbjotMTI4cHggLTExMnB4fS51aS1pY29uLXpvb21vdXR7YmFja2dyb3VuZC1wb3NpdGlvbjotMTQ0cHggLTExMnB4fS51aS1pY29uLXNlYXJjaHtiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xNjBweCAtMTEycHh9LnVpLWljb24td3JlbmNoe2JhY2tncm91bmQtcG9zaXRpb246LTE3NnB4IC0xMTJweH0udWktaWNvbi1nZWFye2JhY2tncm91bmQtcG9zaXRpb246LTE5MnB4IC0xMTJweH0udWktaWNvbi1oZWFydHtiYWNrZ3JvdW5kLXBvc2l0aW9uOi0yMDhweCAtMTEycHh9LnVpLWljb24tc3RhcntiYWNrZ3JvdW5kLXBvc2l0aW9uOi0yMjRweCAtMTEycHh9LnVpLWljb24tbGlua3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi0yNDBweCAtMTEycHh9LnVpLWljb24tY2FuY2Vse2JhY2tncm91bmQtcG9zaXRpb246MCAtMTI4cHh9LnVpLWljb24tcGx1c3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xNnB4IC0xMjhweH0udWktaWNvbi1wbHVzdGhpY2t7YmFja2dyb3VuZC1wb3NpdGlvbjotMzJweCAtMTI4cHh9LnVpLWljb24tbWludXN7YmFja2dyb3VuZC1wb3NpdGlvbjotNDhweCAtMTI4cHh9LnVpLWljb24tbWludXN0aGlja3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi02NHB4IC0xMjhweH0udWktaWNvbi1jbG9zZXtiYWNrZ3JvdW5kLXBvc2l0aW9uOi04MHB4IC0xMjhweH0udWktaWNvbi1jbG9zZXRoaWNre2JhY2tncm91bmQtcG9zaXRpb246LTk2cHggLTEyOHB4fS51aS1pY29uLWtleXtiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xMTJweCAtMTI4cHh9LnVpLWljb24tbGlnaHRidWxie2JhY2tncm91bmQtcG9zaXRpb246LTEyOHB4IC0xMjhweH0udWktaWNvbi1zY2lzc29yc3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xNDRweCAtMTI4cHh9LnVpLWljb24tY2xpcGJvYXJke2JhY2tncm91bmQtcG9zaXRpb246LTE2MHB4IC0xMjhweH0udWktaWNvbi1jb3B5e2JhY2tncm91bmQtcG9zaXRpb246LTE3NnB4IC0xMjhweH0udWktaWNvbi1jb250YWN0e2JhY2tncm91bmQtcG9zaXRpb246LTE5MnB4IC0xMjhweH0udWktaWNvbi1pbWFnZXtiYWNrZ3JvdW5kLXBvc2l0aW9uOi0yMDhweCAtMTI4cHh9LnVpLWljb24tdmlkZW97YmFja2dyb3VuZC1wb3NpdGlvbjotMjI0cHggLTEyOHB4fS51aS1pY29uLXNjcmlwdHtiYWNrZ3JvdW5kLXBvc2l0aW9uOi0yNDBweCAtMTI4cHh9LnVpLWljb24tYWxlcnR7YmFja2dyb3VuZC1wb3NpdGlvbjowIC0xNDRweH0udWktaWNvbi1pbmZve2JhY2tncm91bmQtcG9zaXRpb246LTE2cHggLTE0NHB4fS51aS1pY29uLW5vdGljZXtiYWNrZ3JvdW5kLXBvc2l0aW9uOi0zMnB4IC0xNDRweH0udWktaWNvbi1oZWxwe2JhY2tncm91bmQtcG9zaXRpb246LTQ4cHggLTE0NHB4fS51aS1pY29uLWNoZWNre2JhY2tncm91bmQtcG9zaXRpb246LTY0cHggLTE0NHB4fS51aS1pY29uLWJ1bGxldHtiYWNrZ3JvdW5kLXBvc2l0aW9uOi04MHB4IC0xNDRweH0udWktaWNvbi1yYWRpby1vbntiYWNrZ3JvdW5kLXBvc2l0aW9uOi05NnB4IC0xNDRweH0udWktaWNvbi1yYWRpby1vZmZ7YmFja2dyb3VuZC1wb3NpdGlvbjotMTEycHggLTE0NHB4fS51aS1pY29uLXBpbi13e2JhY2tncm91bmQtcG9zaXRpb246LTEyOHB4IC0xNDRweH0udWktaWNvbi1waW4tc3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xNDRweCAtMTQ0cHh9LnVpLWljb24tcGxheXtiYWNrZ3JvdW5kLXBvc2l0aW9uOjAgLTE2MHB4fS51aS1pY29uLXBhdXNle2JhY2tncm91bmQtcG9zaXRpb246LTE2cHggLTE2MHB4fS51aS1pY29uLXNlZWstbmV4dHtiYWNrZ3JvdW5kLXBvc2l0aW9uOi0zMnB4IC0xNjBweH0udWktaWNvbi1zZWVrLXByZXZ7YmFja2dyb3VuZC1wb3NpdGlvbjotNDhweCAtMTYwcHh9LnVpLWljb24tc2Vlay1lbmR7YmFja2dyb3VuZC1wb3NpdGlvbjotNjRweCAtMTYwcHh9LnVpLWljb24tc2Vlay1zdGFydHtiYWNrZ3JvdW5kLXBvc2l0aW9uOi04MHB4IC0xNjBweH0udWktaWNvbi1zZWVrLWZpcnN0e2JhY2tncm91bmQtcG9zaXRpb246LTgwcHggLTE2MHB4fS51aS1pY29uLXN0b3B7YmFja2dyb3VuZC1wb3NpdGlvbjotOTZweCAtMTYwcHh9LnVpLWljb24tZWplY3R7YmFja2dyb3VuZC1wb3NpdGlvbjotMTEycHggLTE2MHB4fS51aS1pY29uLXZvbHVtZS1vZmZ7YmFja2dyb3VuZC1wb3NpdGlvbjotMTI4cHggLTE2MHB4fS51aS1pY29uLXZvbHVtZS1vbntiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xNDRweCAtMTYwcHh9LnVpLWljb24tcG93ZXJ7YmFja2dyb3VuZC1wb3NpdGlvbjowIC0xNzZweH0udWktaWNvbi1zaWduYWwtZGlhZ3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xNnB4IC0xNzZweH0udWktaWNvbi1zaWduYWx7YmFja2dyb3VuZC1wb3NpdGlvbjotMzJweCAtMTc2cHh9LnVpLWljb24tYmF0dGVyeS0we2JhY2tncm91bmQtcG9zaXRpb246LTQ4cHggLTE3NnB4fS51aS1pY29uLWJhdHRlcnktMXtiYWNrZ3JvdW5kLXBvc2l0aW9uOi02NHB4IC0xNzZweH0udWktaWNvbi1iYXR0ZXJ5LTJ7YmFja2dyb3VuZC1wb3NpdGlvbjotODBweCAtMTc2cHh9LnVpLWljb24tYmF0dGVyeS0ze2JhY2tncm91bmQtcG9zaXRpb246LTk2cHggLTE3NnB4fS51aS1pY29uLWNpcmNsZS1wbHVze2JhY2tncm91bmQtcG9zaXRpb246MCAtMTkycHh9LnVpLWljb24tY2lyY2xlLW1pbnVze2JhY2tncm91bmQtcG9zaXRpb246LTE2cHggLTE5MnB4fS51aS1pY29uLWNpcmNsZS1jbG9zZXtiYWNrZ3JvdW5kLXBvc2l0aW9uOi0zMnB4IC0xOTJweH0udWktaWNvbi1jaXJjbGUtdHJpYW5nbGUtZXtiYWNrZ3JvdW5kLXBvc2l0aW9uOi00OHB4IC0xOTJweH0udWktaWNvbi1jaXJjbGUtdHJpYW5nbGUtc3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi02NHB4IC0xOTJweH0udWktaWNvbi1jaXJjbGUtdHJpYW5nbGUtd3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi04MHB4IC0xOTJweH0udWktaWNvbi1jaXJjbGUtdHJpYW5nbGUtbntiYWNrZ3JvdW5kLXBvc2l0aW9uOi05NnB4IC0xOTJweH0udWktaWNvbi1jaXJjbGUtYXJyb3ctZXtiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xMTJweCAtMTkycHh9LnVpLWljb24tY2lyY2xlLWFycm93LXN7YmFja2dyb3VuZC1wb3NpdGlvbjotMTI4cHggLTE5MnB4fS51aS1pY29uLWNpcmNsZS1hcnJvdy13e2JhY2tncm91bmQtcG9zaXRpb246LTE0NHB4IC0xOTJweH0udWktaWNvbi1jaXJjbGUtYXJyb3ctbntiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xNjBweCAtMTkycHh9LnVpLWljb24tY2lyY2xlLXpvb21pbntiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xNzZweCAtMTkycHh9LnVpLWljb24tY2lyY2xlLXpvb21vdXR7YmFja2dyb3VuZC1wb3NpdGlvbjotMTkycHggLTE5MnB4fS51aS1pY29uLWNpcmNsZS1jaGVja3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi0yMDhweCAtMTkycHh9LnVpLWljb24tY2lyY2xlc21hbGwtcGx1c3tiYWNrZ3JvdW5kLXBvc2l0aW9uOjAgLTIwOHB4fS51aS1pY29uLWNpcmNsZXNtYWxsLW1pbnVze2JhY2tncm91bmQtcG9zaXRpb246LTE2cHggLTIwOHB4fS51aS1pY29uLWNpcmNsZXNtYWxsLWNsb3Nle2JhY2tncm91bmQtcG9zaXRpb246LTMycHggLTIwOHB4fS51aS1pY29uLXNxdWFyZXNtYWxsLXBsdXN7YmFja2dyb3VuZC1wb3NpdGlvbjotNDhweCAtMjA4cHh9LnVpLWljb24tc3F1YXJlc21hbGwtbWludXN7YmFja2dyb3VuZC1wb3NpdGlvbjotNjRweCAtMjA4cHh9LnVpLWljb24tc3F1YXJlc21hbGwtY2xvc2V7YmFja2dyb3VuZC1wb3NpdGlvbjotODBweCAtMjA4cHh9LnVpLWljb24tZ3JpcC1kb3R0ZWQtdmVydGljYWx7YmFja2dyb3VuZC1wb3NpdGlvbjowIC0yMjRweH0udWktaWNvbi1ncmlwLWRvdHRlZC1ob3Jpem9udGFse2JhY2tncm91bmQtcG9zaXRpb246LTE2cHggLTIyNHB4fS51aS1pY29uLWdyaXAtc29saWQtdmVydGljYWx7YmFja2dyb3VuZC1wb3NpdGlvbjotMzJweCAtMjI0cHh9LnVpLWljb24tZ3JpcC1zb2xpZC1ob3Jpem9udGFse2JhY2tncm91bmQtcG9zaXRpb246LTQ4cHggLTIyNHB4fS51aS1pY29uLWdyaXBzbWFsbC1kaWFnb25hbC1zZXtiYWNrZ3JvdW5kLXBvc2l0aW9uOi02NHB4IC0yMjRweH0udWktaWNvbi1ncmlwLWRpYWdvbmFsLXNle2JhY2tncm91bmQtcG9zaXRpb246LTgwcHggLTIyNHB4fS51aS1jb3JuZXItYWxsLC51aS1jb3JuZXItdG9wLC51aS1jb3JuZXItbGVmdCwudWktY29ybmVyLXRse2JvcmRlci10b3AtbGVmdC1yYWRpdXM6M3B4fS51aS1jb3JuZXItYWxsLC51aS1jb3JuZXItdG9wLC51aS1jb3JuZXItcmlnaHQsLnVpLWNvcm5lci10cntib3JkZXItdG9wLXJpZ2h0LXJhZGl1czozcHh9LnVpLWNvcm5lci1hbGwsLnVpLWNvcm5lci1ib3R0b20sLnVpLWNvcm5lci1sZWZ0LC51aS1jb3JuZXItYmx7Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czozcHh9LnVpLWNvcm5lci1hbGwsLnVpLWNvcm5lci1ib3R0b20sLnVpLWNvcm5lci1yaWdodCwudWktY29ybmVyLWJye2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjNweH0udWktd2lkZ2V0LW92ZXJsYXl7YmFja2dyb3VuZDojYWFhO29wYWNpdHk6LjM7LW1zLWZpbHRlcjpBbHBoYShPcGFjaXR5PTMwKX0udWktd2lkZ2V0LXNoYWRvd3std2Via2l0LWJveC1zaGFkb3c6MCAwIDVweCAjNjY2O2JveC1zaGFkb3c6MCAwIDVweCAjNjY2fQovKiogL2Nzcy9kYXJrdG9vbHRpcC5jc3MgKiovCi5kYXJrLXRvb2x0aXB7ZGlzcGxheTpub25lO3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTAwMDt0ZXh0LWRlY29yYXRpb246bm9uZTtmb250LXdlaWdodDpub3JtYWw7aGVpZ2h0OmF1dG87dG9wOjA7bGVmdDowfS5kYXJrLXRvb2x0aXAuc21hbGx7cGFkZGluZzo0cHg7Zm9udC1zaXplOjAuNzVyZW0gO21heC13aWR0aDoxNTBweDstd2Via2l0LWJvcmRlci1yYWRpdXM6MnB4Oy1tb3otYm9yZGVyLXJhZGl1czoycHg7Ym9yZGVyLXJhZGl1czoycHh9LmRhcmstdG9vbHRpcC5tZWRpdW17cGFkZGluZzo2cHg7Zm9udC1zaXplOjAuNjg4cmVtIDttYXgtd2lkdGg6MjAwcHg7LXdlYmtpdC1ib3JkZXItcmFkaXVzOjRweDstbW96LWJvcmRlci1yYWRpdXM6NHB4O2JvcmRlci1yYWRpdXM6NHB4fS5kYXJrLXRvb2x0aXAubGFyZ2V7cGFkZGluZzoxNnB4O2ZvbnQtc2l6ZToxcmVtIDttYXgtd2lkdGg6MjUwcHg7LXdlYmtpdC1ib3JkZXItcmFkaXVzOjZweDstbW96LWJvcmRlci1yYWRpdXM6NnB4O2JvcmRlci1yYWRpdXM6NnB4fS5kYXJrLXRvb2x0aXAgLnRpcHt0cmFuc2Zvcm06c2NhbGUoMS4wMSk7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMS4wMSk7dHJhbnNmb3JtOnNjYWxlKDEuMDEpO2NvbnRlbnQ6IiI7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MDtoZWlnaHQ6MDtib3JkZXItc3R5bGU6c29saWQ7bGluZS1oZWlnaHQ6MH0uZGFyay10b29sdGlwLnNvdXRoIC50aXB7bGVmdDo1MCU7dG9wOjEwMCV9LmRhcmstdG9vbHRpcC53ZXN0IC50aXB7bGVmdDowO3RvcDo1MCV9LmRhcmstdG9vbHRpcC5ub3J0aCAudGlwe2xlZnQ6NTAlO3RvcDowfS5kYXJrLXRvb2x0aXAuZWFzdCAudGlwe2xlZnQ6MTAwJTt0b3A6NTAlfS5kYXJrLXRvb2x0aXAuc291dGguc21hbGwgLnRpcHtib3JkZXItd2lkdGg6MCA1cHggMCA1cHg7bWFyZ2luLWxlZnQ6LTVweH0uZGFyay10b29sdGlwLnNvdXRoLm1lZGl1bSAudGlwe2JvcmRlci13aWR0aDowIDZweCAwIDZweDttYXJnaW4tbGVmdDotNnB4fS5kYXJrLXRvb2x0aXAuc291dGgubGFyZ2UgLnRpcHtib3JkZXItd2lkdGg6MCAxMnB4IDAgMTJweDttYXJnaW4tbGVmdDotMTJweH0uZGFyay10b29sdGlwLndlc3Quc21hbGwgLnRpcHtib3JkZXItd2lkdGg6NXB4IDdweCA1cHggMDttYXJnaW4tbGVmdDotN3B4O21hcmdpbi10b3A6LTVweH0uZGFyay10b29sdGlwLndlc3QubWVkaXVtIC50aXB7Ym9yZGVyLXdpZHRoOjZweCA4cHggNnB4IDA7bWFyZ2luLWxlZnQ6LThweDttYXJnaW4tdG9wOi02cHh9LmRhcmstdG9vbHRpcC53ZXN0LmxhcmdlIC50aXB7Ym9yZGVyLXdpZHRoOjEycHggMTRweCAxMnB4IDA7bWFyZ2luLWxlZnQ6LTE0cHg7bWFyZ2luLXRvcDotMTJweH0uZGFyay10b29sdGlwLm5vcnRoLnNtYWxsIC50aXB7Ym9yZGVyLXdpZHRoOjAgNXB4IDdweCA1cHg7bWFyZ2luLWxlZnQ6LTVweDttYXJnaW4tdG9wOi03cHh9LmRhcmstdG9vbHRpcC5ub3J0aC5tZWRpdW0gLnRpcHtib3JkZXItd2lkdGg6MCA2cHggOHB4IDZweDttYXJnaW4tbGVmdDotNnB4O21hcmdpbi10b3A6LThweH0uZGFyay10b29sdGlwLm5vcnRoLmxhcmdlIC50aXB7Ym9yZGVyLXdpZHRoOjAgMTJweCAxNHB4IDEycHg7bWFyZ2luLWxlZnQ6LTEycHg7bWFyZ2luLXRvcDotMTRweH0uZGFyay10b29sdGlwLmVhc3Quc21hbGwgLnRpcHtib3JkZXItd2lkdGg6NXB4IDAgNXB4IDA7bWFyZ2luLXRvcDotNXB4fS5kYXJrLXRvb2x0aXAuZWFzdC5tZWRpdW0gLnRpcHtib3JkZXItd2lkdGg6NnB4IDAgNnB4IDA7bWFyZ2luLXRvcDotNnB4fS5kYXJrLXRvb2x0aXAuZWFzdC5sYXJnZSAudGlwe2JvcmRlci13aWR0aDoxMnB4IDAgMTJweCAwO21hcmdpbi10b3A6LTEycHh9LmRhcmstdG9vbHRpcCB1bC5jb25maXJte2xpc3Qtc3R5bGUtdHlwZTpub25lO21hcmdpbi10b3A6NXB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrO21hcmdpbjowIGF1dG99LmRhcmstdG9vbHRpcCB1bC5jb25maXJtIGxpe3BhZGRpbmc6MTBweDtmbG9hdDpsZWZ0O21hcmdpbjo1cHg7bWluLXdpZHRoOjI1cHg7LXdlYmtpdC1ib3JkZXItcmFkaXVzOjNweDstbW96LWJvcmRlci1yYWRpdXM6M3B4Oy1vLWJvcmRlci1yYWRpdXM6M3B4O2JvcmRlci1yYWRpdXM6M3B4fS5kYXJrLXRvb2x0aXAuZGFya3tiYWNrZ3JvdW5kLWNvbG9yOiNkYWQ5ZGI7Y29sb3I6IzAwMH0uZGFyay10b29sdGlwLmxpZ2h0e2JhY2tncm91bmQtY29sb3I6I2Y1ZjVmNTtjb2xvcjojNWU1ZTVlO2JvcmRlcjoxcHggc29saWQgIzVlNWU1ZTt6LWluZGV4OjEwMDAwMzB9LmRhcmstdG9vbHRpcC5kYXJrLnNvdXRoIC50aXB7Ym9yZGVyLWNvbG9yOiNkYWQ5ZGIgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7X2JvcmRlci1jb2xvcjojZGFkOWRiICMwMDAgIzAwMCAjMDAwO19maWx0ZXI6cHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LkNocm9tYShjb2xvcj0nIzAwMDAwMCcpfS5kYXJrLXRvb2x0aXAuZGFyay53ZXN0IC50aXB7Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50ICNkYWQ5ZGIgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7X2JvcmRlci1jb2xvcjojMDAwICNkYWQ5ZGIgIzAwMCAjMDAwO19maWx0ZXI6cHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LkNocm9tYShjb2xvcj0nIzAwMDAwMCcpfS5kYXJrLXRvb2x0aXAuZGFyay5ub3J0aCAudGlwe2JvcmRlci1jb2xvcjp0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAjZGFkOWRiIHRyYW5zcGFyZW50O19ib3JkZXItY29sb3I6IzAwMCAjMDAwICNkYWQ5ZGIgIzAwMDtfZmlsdGVyOnByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5DaHJvbWEoY29sb3I9JyMwMDAwMDAnKX0uZGFyay10b29sdGlwLmRhcmsuZWFzdCAudGlwe2JvcmRlci1jb2xvcjp0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAjZGFkOWRiO19ib3JkZXItY29sb3I6IzAwMCAjMDAwICMwMDAgI2RhZDlkYjtfZmlsdGVyOnByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5DaHJvbWEoY29sb3I9JyMwMDAwMDAnKX0uZGFyay10b29sdGlwLmxpZ2h0LnNvdXRoIC50aXB7Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50O2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7YmFja2dyb3VuZC1pbWFnZTp1cmwoL2Nzcy90aXBzLnBuZyk7YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0O3dpZHRoOjEycHg7aGVpZ2h0OjhweH0uZGFyay10b29sdGlwLmxpZ2h0Lndlc3QgLnRpcHtib3JkZXItY29sb3I6dHJhbnNwYXJlbnQ7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtiYWNrZ3JvdW5kLWltYWdlOnVybCgvY3NzL3RpcHcucG5nKTtiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7d2lkdGg6OHB4O2hlaWdodDoxMnB4fS5kYXJrLXRvb2x0aXAubGlnaHQubm9ydGggLnRpcHtib3JkZXItY29sb3I6dHJhbnNwYXJlbnQ7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtiYWNrZ3JvdW5kLWltYWdlOnVybCgvY3NzL3RpcG4ucG5nKTtiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7d2lkdGg6MTJweDtoZWlnaHQ6OHB4fS5kYXJrLXRvb2x0aXAubGlnaHQuZWFzdCAudGlwe2JvcmRlci1jb2xvcjp0cmFuc3BhcmVudDtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2JhY2tncm91bmQtaW1hZ2U6dXJsKC9jc3MvdGlwZS5wbmcpO2JhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDtiYWNrZ3JvdW5kLXBvc2l0aW9uOmxlZnQgY2VudGVyO3dpZHRoOjhweDtoZWlnaHQ6MTJweH0uZGFyay10b29sdGlwLmRhcmsgdWwuY29uZmlybSBsaXtiYWNrZ3JvdW5kLWNvbG9yOiM0MTZlODV9LmRhcmstdG9vbHRpcC5kYXJrIHVsLmNvbmZpcm0gbGk6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjojNDE3ZTg1fS5kYXJrLXRvb2x0aXAubGlnaHQgdWwuY29uZmlybSBsaXtiYWNrZ3JvdW5kLWNvbG9yOiNjMWRiZGJ9LmRhcmstdG9vbHRpcC5saWdodCB1bC5jb25maXJtIGxpOmhvdmVye2JhY2tncm91bmQtY29sb3I6I2RjZThlOH0uYW5pbWF0ZWR7LXdlYmtpdC1hbmltYXRpb24tZmlsbC1tb2RlOmJvdGg7LW1vei1hbmltYXRpb24tZmlsbC1tb2RlOmJvdGg7LW1zLWFuaW1hdGlvbi1maWxsLW1vZGU6Ym90aDstby1hbmltYXRpb24tZmlsbC1tb2RlOmJvdGg7YW5pbWF0aW9uLWZpbGwtbW9kZTpib3RoOy13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOi41czstbW96LWFuaW1hdGlvbi1kdXJhdGlvbjouNXM7LW1zLWFuaW1hdGlvbi1kdXJhdGlvbjouNXM7LW8tYW5pbWF0aW9uLWR1cmF0aW9uOi41czthbmltYXRpb24tZHVyYXRpb246LjVzfUAtd2Via2l0LWtleWZyYW1lcyBmbGlwSW5VcHswLjAwMDEley13ZWJraXQtdHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVYKC05MGRlZyk7b3BhY2l0eTowfTQwJXstd2Via2l0LXRyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlWCg1ZGVnKX03MCV7LXdlYmtpdC10cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVgoLTVkZWcpfTEwMCV7LXdlYmtpdC10cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVgoMCk7b3BhY2l0eToxfX1ALW1vei1rZXlmcmFtZXMgZmxpcEluVXB7MC4wMDAxJXt0cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVgoLTkwZGVnKTtvcGFjaXR5OjB9NDAle3RyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlWCg1ZGVnKX03MCV7dHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVYKC01ZGVnKX0xMDAle3RyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlWCgwKTtvcGFjaXR5OjF9fUAtby1rZXlmcmFtZXMgZmxpcEluVXB7MC4wMDAxJXstby10cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVgoLTkwZGVnKTtvcGFjaXR5OjB9NDAley1vLXRyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlWCg1ZGVnKX03MCV7LW8tdHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVYKC01ZGVnKX0xMDAley1vLXRyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlWCgwKTtvcGFjaXR5OjF9fUBrZXlmcmFtZXMgZmxpcEluVXB7MC4wMDAxJXt0cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVgoLTkwZGVnKTtvcGFjaXR5OjB9NDAle3RyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlWCg1ZGVnKX03MCV7dHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVYKC01ZGVnKX0xMDAle3RyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlWCgwKTtvcGFjaXR5OjF9fUAtd2Via2l0LWtleWZyYW1lcyBmbGlwSW5SaWdodHswLjAwMDEley13ZWJraXQtdHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVZKC05MGRlZyk7b3BhY2l0eTowfTQwJXstd2Via2l0LXRyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlWSg1ZGVnKX03MCV7LXdlYmtpdC10cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVkoLTVkZWcpfTEwMCV7LXdlYmtpdC10cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVkoMCk7b3BhY2l0eToxfX1ALW1vei1rZXlmcmFtZXMgZmxpcEluUmlnaHR7MC4wMDAxJXt0cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVkoLTkwZGVnKTtvcGFjaXR5OjB9NDAle3RyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlWSg1ZGVnKX03MCV7dHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVZKC01ZGVnKX0xMDAle3RyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlWSgwKTtvcGFjaXR5OjF9fUAtby1rZXlmcmFtZXMgZmxpcEluUmlnaHR7MC4wMDAxJXstby10cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVkoLTkwZGVnKTtvcGFjaXR5OjB9NDAley1vLXRyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlWSg1ZGVnKX03MCV7LW8tdHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVZKC01ZGVnKX0xMDAley1vLXRyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlWSgwKTtvcGFjaXR5OjF9fUBrZXlmcmFtZXMgZmxpcEluUmlnaHR7MC4wMDAxJXt0cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVkoLTkwZGVnKTtvcGFjaXR5OjB9NDAle3RyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlWSg1ZGVnKX03MCV7dHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVZKC01ZGVnKX0xMDAle3RyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlWSgwKTtvcGFjaXR5OjF9fS5mbGlwSW57LXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OnZpc2libGUgIWltcG9ydGFudDstbW96LWJhY2tmYWNlLXZpc2liaWxpdHk6dmlzaWJsZSAhaW1wb3J0YW50Oy1vLWJhY2tmYWNlLXZpc2liaWxpdHk6dmlzaWJsZSAhaW1wb3J0YW50O2JhY2tmYWNlLXZpc2liaWxpdHk6dmlzaWJsZSAhaW1wb3J0YW50fS5mbGlwSW4uc291dGgsLmZsaXBJbi5ub3J0aHstd2Via2l0LWFuaW1hdGlvbi1uYW1lOmZsaXBJblVwOy1tb3otYW5pbWF0aW9uLW5hbWU6ZmxpcEluVXA7LW8tYW5pbWF0aW9uLW5hbWU6ZmxpcEluVXA7YW5pbWF0aW9uLW5hbWU6ZmxpcEluVXB9LmZsaXBJbi53ZXN0LC5mbGlwSW4uZWFzdHstd2Via2l0LWFuaW1hdGlvbi1uYW1lOmZsaXBJblJpZ2h0Oy1tb3otYW5pbWF0aW9uLW5hbWU6ZmxpcEluUmlnaHQ7LW8tYW5pbWF0aW9uLW5hbWU6ZmxpcEluUmlnaHQ7YW5pbWF0aW9uLW5hbWU6ZmxpcEluUmlnaHR9QC13ZWJraXQta2V5ZnJhbWVzIGZhZGVJbnswe29wYWNpdHk6MH0xMDAle29wYWNpdHk6MX19QC1tb3ota2V5ZnJhbWVzIGZhZGVJbnswe29wYWNpdHk6MH0xMDAle29wYWNpdHk6MX19QC1vLWtleWZyYW1lcyBmYWRlSW57MHtvcGFjaXR5OjB9MTAwJXtvcGFjaXR5OjF9fUBrZXlmcmFtZXMgZmFkZUluezB7b3BhY2l0eTowfTEwMCV7b3BhY2l0eToxfX0uZmFkZUluey13ZWJraXQtYW5pbWF0aW9uLW5hbWU6ZmFkZUluOy1tb3otYW5pbWF0aW9uLW5hbWU6ZmFkZUluOy1vLWFuaW1hdGlvbi1uYW1lOmZhZGVJbjthbmltYXRpb24tbmFtZTpmYWRlSW59Ci8qKiAvY3NzL2Rpdl9ibG9ja3MuY3NzICoqLwpkaXYuZGl2QmxvY2tWaWV3eyBkaXNwbGF5OmJsb2NrOyBmbG9hdDpsZWZ0OyB3aWR0aDoxMDAlOyB9IGRpdi5kaXZCbG9ja1ZpZXcgZGl2LmRpdkJsb2NrVGl0bGUsIGRpdi5kaXZCbG9ja1ZpZXcgbGFiZWwuZGl2QmxvY2tUaXRsZXsgZGlzcGxheTpibG9jazsgZm9udC13ZWlnaHQ6Ym9sZDsgdGV4dC1hbGlnbjpsZWZ0OyBwYWRkaW5nOjMwcHggMTBweCAxMHB4IDEwcHg7IGNvbG9yOiMxMDEwMTA7IHRleHQtZGVjb3JhdGlvbjpub25lOyB0ZXh0LXRyYW5zZm9ybTp2YXIoLS10eHQtdXBwZXIpOyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgfSBkaXYuZGl2QmxvY2tWaWV3IGRpdi5kaXZCbG9ja1RpdGxlLmJsb2NrVGl0bGVTdHlsZTIsIGRpdi5kaXZCbG9ja1ZpZXcgbGFiZWwuZGl2QmxvY2tUaXRsZS5ibG9ja1RpdGxlU3R5bGUyeyBwYWRkaW5nOjAgNDBweCAxMHB4OyB9IGRpdi5kaXZCbG9ja1ZpZXcgZGl2LmRpdkJsb2NrQ29udGVudHsgYmFja2dyb3VuZDpub25lOyBwYWRkaW5nOjE1cHggMHB4OyBtYXJnaW46MDsgZmxvYXQ6bGVmdDsgd2lkdGg6MTAwJTsgfSBkaXYuZGl2QmxvY2tWaWV3IGRpdi5kaXZCbG9ja0NvbnRlbnQgZGl2LmRpdkJsb2NrQ29sdW1ueyBiYWNrZ3JvdW5kOm5vbmU7IHBhZGRpbmc6MCA0MHB4OyBtYXJnaW46MDsgd2lkdGg6ODYwcHggIWltcG9ydGFudDsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOmluaGVyaXQ7IH0gZGl2LmRpdkJsb2NrVmlldyBVTC5kaXZCbG9ja0xpc3R7IGJhY2tncm91bmQ6aW5pdGlhbDsgcGFkZGluZzowOyBtYXJnaW46MCAwIDIwcHggMDsgfSBkaXYuZGl2QmxvY2tWaWV3IFVMLmRpdkJsb2NrTGlzdCBVTC5kaXZJbm5lckJsb2NrTGlzdCB7IHBhZGRpbmc6MTBweCAwIDAgMDsgfSBkaXYuZGl2QmxvY2tWaWV3IFVMLmRpdkJsb2NrTGlzdC5zaXplRm9yNENvbHVtbnNMaXN0eyB9IGRpdi5kaXZCbG9ja1ZpZXcgVUwuZGl2QmxvY2tMaXN0Om5vdCguc2l6ZUZvcjRDb2x1bW5zTGlzdCk6bnRoLWNoaWxkKDNuKzEpLCBkaXYuZGl2QmxvY2tWaWV3IFVMLmRpdkJsb2NrTGlzdC5zaXplRm9yNENvbHVtbnNMaXN0Om50aC1jaGlsZCg0bisxKXsgY2xlYXI6bGVmdDsgfSBkaXYuZGl2QmxvY2tWaWV3IFVMLmRpdkJsb2NrTGlzdCBkaXYuZGl2QmxvY2tMaXN0VGl0bGV7IGJhY2tncm91bmQ6aW5pdGlhbDsgcGFkZGluZzowIDAgMTBweCAwOyBtYXJnaW46MDsgd2lkdGg6MTAwJTsgZmxvYXQ6bGVmdDsgZm9udC13ZWlnaHQ6Ym9sZCB9IGRpdi5kaXZCbG9ja1ZpZXcgVUwuZGl2QmxvY2tMaXN0IExJLmRpdkxpc3RJdGVteyBwYWRkaW5nOjAgMzBweCAxMHB4IDEwcHg7IG1hcmdpbjowOyB0ZXh0LWluZGVudDowOyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hcnJvd19yZWQucG5nJykgbm8tcmVwZWF0IHNjcm9sbCAwIDVweCB0cmFuc3BhcmVudDsgfSBkaXYuZGl2QmxvY2tWaWV3IFVMLmRpdkJsb2NrTGlzdCBMSS5kaXZMaXN0SXRlbSA+IEF7IG1hcmdpbjowOyBwYWRkaW5nOjA7IGJhY2tncm91bmQ6bm9uZTsgZm9udC1zaXplOmluaXRpYWw7IH0gZGl2LmRpdkJsb2NrVmlldyBVTC5kaXZCbG9ja0xpc3QgTEkuZGl2TGlzdFRpdGxlMnsgZm9udC1zaXplOjEuMWVtOyBib3JkZXI6MDsgbWFyZ2luOjA7IHBhZGRpbmc6MCAwIDEwcHggMDsgZm9udC13ZWlnaHQ6Ym9sZDsgbGlzdC1zdHlsZTpub25lOyB9IGRpdi5kaXZCbG9ja1ZpZXcgVUwuZGl2QmxvY2tMaXN0IExJLmRpdkxpc3RJdGVtMnsgcGFkZGluZzowIDMwcHggMTBweCAxMHB4OyB0ZXh0LWluZGVudDowOyBsaXN0LXN0eWxlOm5vbmUgb3V0c2lkZSBub25lOyBkaXNwbGF5OmJsb2NrOyBtYXJnaW46MCAwIDAgMTJweDsgfSBkaXYuZGl2QmxvY2tWaWV3IFVMLmRpdkJsb2NrTGlzdCBMSS5kaXZMaXN0SXRlbTI6YmVmb3JleyBjb250ZW50OiJcZjEzOCI7IGZvbnQtZmFtaWx5OidGb250IEF3ZXNvbWUgNSBQcm8nOyBmb250LXdlaWdodDo5MDA7IG1hcmdpbi1yaWdodDowOyBtYXJnaW4tbGVmdDotMjFweDsgcGFkZGluZy1yaWdodDo1cHg7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IH0gZGl2LmRpdkJsb2NrVmlldyBVTC5kaXZCbG9ja0xpc3QgVUwuZGl2SW5uZXJCbG9ja0xpc3QgTEkuZGl2TGlzdEl0ZW0yOmJlZm9yZXsgZm9udC13ZWlnaHQ6bm9ybWFsOyB9IGRpdi5kaXZCbG9ja1ZpZXcgVUwuZGl2QmxvY2tMaXN0IFVMLmRpdklubmVyQmxvY2tMaXN0IExJIHsgcGFkZGluZzowIDMwcHggMTBweCAxMHB4OyB9IGRpdi5kaXZCbG9ja1ZpZXcgVUwuZGl2QmxvY2tMaXN0IExJLmRpdkxpc3RJdGVtLm5vU3R5bGVJdGVteyBwYWRkaW5nOjAgMCA1cHggMDsgbWFyZ2luOjA7IHRleHQtaW5kZW50OjA7IGJhY2tncm91bmQ6bm9uZTsgbGlzdC1zdHlsZTpub25lOyB9IGRpdi5kaXZCbG9ja1ZpZXcgVUwuZGl2QmxvY2tMaXN0IExJLmRpdkxpc3RJdGVtLm9uU2FtZUxpbmV7IHBhZGRpbmctcmlnaHQ6MTVweDsgZGlzcGxheTppbmxpbmUtdGFibGU7IH0gZGl2LmRpdkJsb2NrVmlldyBVTC5kaXZCbG9ja0xpc3QgTEkuZGl2TGlzdEl0ZW0ub25TYW1lTGluZTpsYXN0LWNoaWxkeyBwYWRkaW5nLXJpZ2h0OjA7IH0gZGl2LmRpdkJsb2NrVmlldyBkaXYuZGl2QmxvY2tUYWJsZU91dGVyeyB9IGRpdi5kaXZCbG9ja1ZpZXcgZGl2LmRpdkJsb2NrVGFibGV7IGRpc3BsYXk6dGFibGU7IHdpZHRoOjEwMCU7IHBhZGRpbmc6MDsgbWFyZ2luOjA7IH0gZGl2LmRpdkJsb2NrVmlldyBkaXYuZGl2QmxvY2tSb3d7IGRpc3BsYXk6dGFibGUtcm93OyB3aWR0aDoxMDAlOyB9IGRpdi5kaXZCbG9ja1ZpZXcgZGl2LmRpdkJsb2NrQ2VsbHsgZGlzcGxheTp0YWJsZS1jZWxsOyB9IGRpdi5kaXZEaXNjbGFpbWVyQmxvY2t7IGJhY2tncm91bmQtY29sb3I6dmFyKC0tZ2VuZXJhbC1iZy1jb2xvcik7IGJvcmRlci1yYWRpdXM6M3B4OyB9IEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDoxMzAxcHgpIHsgYm9keS5pc0Z1bGxXaWR0aFBhZ2UuaXNQYWdlRnVsbFdpZHRoRW5hYmxlZCBkaXYuZGl2QmxvY2tWaWV3IGRpdi5kaXZCbG9ja0NvbnRlbnQgZGl2LmRpdkJsb2NrQ29sdW1uIHsgd2lkdGg6MTEwMHB4ICFpbXBvcnRhbnQ7IH0gfQovKiogL2Nzcy9uZXdjYXJzLmNzcyAqKi8KLmRpdkZpbHRlck91dGVyQm94eyBiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7IGJvcmRlcjoxcHggc29saWQgI2FhYTsgYm9yZGVyLXJhZGl1czo1cHg7IG1hcmdpbjoxNXB4IDAgMCAwOyBwYWRkaW5nOjE1cHg7IH0gLmRpdkZpbHRlck91dGVyQm94IFVMIHsgbGlzdC1zdHlsZTpub25lOyBwYWRkaW5nOjBweCAxMHB4IDIwcHggMDsgbWFyZ2luOjA7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgfSAuZGl2RmlsdGVyT3V0ZXJCb3ggVUwuc2hvd0FzUm93IHsgZGlzcGxheTppbmxpbmUtZmxleDsgZmxleC13cmFwOndyYXA7IH0gLmRpdkZpbHRlck91dGVyQm94IFVMIExJeyBtYXJnaW46MCAwIDNweCAwOyB9IC5kaXZGaWx0ZXJPdXRlckJveCBVTC5zaG93QXNSb3cgTEl7IHBhZGRpbmctcmlnaHQ6MTBweDsgZmxleDowIDAgMTUwcHg7IH0gLmRpdkZpbHRlck91dGVyQm94IC5kaXZGaWx0ZXJUaXRsZXsgZm9udC13ZWlnaHQ6Ym9sZDsgcGFkZGluZy1ib3R0b206MTBweDsgfSAuZGl2RmlsdGVyT3V0ZXJCb3ggLmRpdkZpbHRlckJveFRpdGxleyBtYXJnaW46MCAwIDE1cHggMDsgY29sb3I6IzY2NjsgYm9yZGVyLWJvdHRvbToxcHggc29saWQgI2NjYzsgd2lkdGg6MTAwJTsgcGFkZGluZzowIDAgMTBweCAwOyBmb250LXNpemU6MC45MzhyZW0gOyB0ZXh0LXRyYW5zZm9ybTp2YXIoLS1jZXJ0LXR4dC10cmFuc2Zvcm0sIHZhcigtLXR4dC11cHBlcikpOyB9IGRpdi5kaXZDYXRlZ29yaWVzQm94V3JhcHBlcnsgY29sb3I6IzAwMDsgfSBkaXYuZGl2Q2F0ZWdvcmllc0JveFdyYXBwZXIgZGl2LmRpdkNhdGVnb3J5Qm94V3JhcHBlcnsgbWFyZ2luLWJvdHRvbToyMHB4OyB9IGRpdi5kaXZDYXRlZ29yaWVzQm94V3JhcHBlciBkaXYuZGl2Q2F0ZWdvcnlCb3hXcmFwcGVyOmxhc3QtY2hpbGR7IG1hcmdpbi1ib3R0b206MDsgfSBIMS5kZWZhdWx0LmlzU2luZ2xlVGl0bGUuaXNCb3R0b21Cb3JkZXJlZCwgZGl2LmRpdkNhdGVnb3JpZXNCb3hXcmFwcGVyIGRpdi5kaXZDYXRlZ29yeUJveFdyYXBwZXIgSDJ7IGJvcmRlci1ib3R0b206MXB4IHNvbGlkICNkZGQ7IG1hcmdpbi1ib3R0b206MTBweDsgfSBkaXYuZGl2Q2F0ZWdvcmllc0JveFdyYXBwZXIgZGl2LmRpdkNhdGVnb3J5Qm94V3JhcHBlciBkaXYuZGl2Q2Fyc0JveFdyYXBwZXIgeyBkaXNwbGF5OmZsZXg7IGZsZXgtZmxvdzpyb3cgd3JhcDsgfSBkaXYuZGl2Q2F0ZWdvcmllc0JveFdyYXBwZXIgZGl2LmRpdkNhdGVnb3J5Qm94V3JhcHBlciBkaXYuZGl2Q2FyU2luZ2xlT3V0ZXJCb3h7IHBvc2l0aW9uOnJlbGF0aXZlOyBmbG9hdDpsZWZ0OyBiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7IGJvcmRlci1yYWRpdXM6NXB4OyBtYXJnaW46MTVweCA1cHggMTBweCA1cHg7IHBhZGRpbmc6MTBweDsgYm9yZGVyOjFweCAjZGRkIHNvbGlkOyBoZWlnaHQ6MzIwcHg7IHRyYW5zaXRpb246Ym9yZGVyIDAuMnMgbGluZWFyLCBiYWNrZ3JvdW5kLWNvbG9yIDAuMnMgbGluZWFyOyAtd2Via2l0LXRyYW5zaXRpb246Ym9yZGVyIDAuMnMgbGluZWFyLCBiYWNrZ3JvdW5kLWNvbG9yIDAuMnMgbGluZWFyIDsgYm94LXNpemluZzpib3JkZXItYm94OyB3aWR0aDpjYWxjKDMzLjMzMzMzMyUgLSAxMHB4KTsgfSBkaXYuZGl2Q2F0ZWdvcmllc0JveFdyYXBwZXIgZGl2LmRpdkNhdGVnb3J5Qm94V3JhcHBlciBkaXYuZGl2Q2FyU2luZ2xlT3V0ZXJCb3guZGl2TWFrZUxvZ29Pbmx5eyBoZWlnaHQ6MTU2cHg7IHdpZHRoOmF1dG87IG1hcmdpbi10b3A6MjBweDsgcGFkZGluZzoyMHB4OyBib3JkZXItY29sb3I6I2VlZTsgdGV4dC1hbGlnbjpjZW50ZXI7IH0gZGl2LmRpdkNhdGVnb3JpZXNCb3hXcmFwcGVyIGRpdi5kaXZDYXRlZ29yeUJveFdyYXBwZXIgZGl2LmRpdkNhclNpbmdsZU91dGVyQm94LmRpdk1ha2VMb2dvT25seSBJTUcgeyBoZWlnaHQ6MTAwJTsgd2lkdGg6YXV0bzsgfSBkaXYuZGl2Q2F0ZWdvcmllc0JveFdyYXBwZXIgZGl2LmRpdkNhdGVnb3J5Qm94V3JhcHBlciBkaXYuZGl2Q2FyU2luZ2xlT3V0ZXJCb3g6bnRoLWNoaWxkKDMpeyB9IGRpdi5kaXZDYXRlZ29yaWVzQm94V3JhcHBlciBkaXYuZGl2Q2F0ZWdvcnlCb3hXcmFwcGVyIGRpdi5kaXZDYXJTaW5nbGVPdXRlckJveDpob3ZlciB7IGJhY2tncm91bmQtY29sb3I6I2VmZWZlZjsgfSBkaXYuZGl2Q2F0ZWdvcmllc0JveFdyYXBwZXIgZGl2LmRpdkNhdGVnb3J5Qm94V3JhcHBlciBkaXYuZGl2Q2FyU2luZ2xlT3V0ZXJCb3g6YWN0aXZlIHsgYm9yZGVyLWNvbG9yOiM2NjY7IH0gZGl2LmRpdkNhdGVnb3JpZXNCb3hXcmFwcGVyIGRpdi5kaXZDYXRlZ29yeUJveFdyYXBwZXIgZGl2LmRpdkNhclNpbmdsZU91dGVyQm94Lk1vdmluZ0JveEVmZmVjdCB7IH0gZGl2LmRpdkNhdGVnb3JpZXNCb3hXcmFwcGVyIGRpdi5kaXZDYXRlZ29yeUJveFdyYXBwZXIgZGl2LmRpdkNhclNpbmdsZU91dGVyQm94IGRpdi5kaXZDYXJTaW5nbGVJbm5lckJveHsgbWFyZ2luOjA7IHdpZHRoOjEwMCU7IGhlaWdodDoxMDAlOyBmbG9hdDpsZWZ0OyBvcGFjaXR5OjE7IG92ZXJmbG93OmhpZGRlbjsgcGFkZGluZzowOyBib3JkZXI6MDsgY3Vyc29yOnBvaW50ZXI7IH0gZGl2LmRpdkNhdGVnb3JpZXNCb3hXcmFwcGVyIGRpdi5kaXZDYXRlZ29yeUJveFdyYXBwZXIgZGl2LmRpdkNhclNpbmdsZU91dGVyQm94IGRpdi5kaXZDYXJTaW5nbGVJbm5lckJveCBkaXYuZGl2Q2FyVGl0bGVDb250YWluZXJ7IGZsb2F0OmxlZnQ7IGNsZWFyOmJvdGg7IHdpZHRoOjEwMCU7IGN1cnNvcjpwb2ludGVyOyBwb3NpdGlvbjpyZWxhdGl2ZTsgei1pbmRleDoxOyB9IGRpdi5kaXZDYXRlZ29yaWVzQm94V3JhcHBlciBkaXYuZGl2Q2F0ZWdvcnlCb3hXcmFwcGVyIGRpdi5kaXZDYXJTaW5nbGVPdXRlckJveCBkaXYuZGl2Q2FyU2luZ2xlSW5uZXJCb3ggZGl2LmRpdkNhclRpdGxlQ29udGFpbmVyIEF7IHRleHQtZGVjb3JhdGlvbjpub25lOyB9IGRpdi5kaXZDYXRlZ29yaWVzQm94V3JhcHBlciBkaXYuZGl2Q2F0ZWdvcnlCb3hXcmFwcGVyIGRpdi5kaXZDYXJTaW5nbGVPdXRlckJveCBkaXYuZGl2Q2FyU2luZ2xlSW5uZXJCb3ggZGl2LmRpdkNhclRpdGxlQ29udGFpbmVyIEgzeyB9IGRpdi5kaXZDYXRlZ29yaWVzQm94V3JhcHBlciBkaXYuZGl2Q2F0ZWdvcnlCb3hXcmFwcGVyIGRpdi5kaXZDYXJTaW5nbGVPdXRlckJveCBkaXYuZGl2Q2FyU2luZ2xlSW5uZXJCb3ggZGl2LmRpdkNhclRpdGxlQ29udGFpbmVyIHNwYW4uc3BhbkNhck1ha2V7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zaXplOjAuODc1cmVtIDsgd2lkdGg6YXV0bzsgaGVpZ2h0OmF1dG87IGxpbmUtaGVpZ2h0Om5vcm1hbDsgY29sb3I6IzAwMDsgfSBkaXYuZGl2Q2F0ZWdvcmllc0JveFdyYXBwZXIgZGl2LmRpdkNhdGVnb3J5Qm94V3JhcHBlciBkaXYuZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggZGl2LmRpdkNhclNpbmdsZUlubmVyQm94IGRpdi5kaXZDYXJUaXRsZUNvbnRhaW5lciBzcGFuLnNwYW5Nb2RlbE5hbWV7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc2l6ZToxLjMxM3JlbSA7IHdpZHRoOmF1dG87IGhlaWdodDphdXRvOyBsaW5lLWhlaWdodDpub3JtYWw7IGNvbG9yOiMxMDEwMTA7IH0gZGl2LmRpdkNhdGVnb3JpZXNCb3hXcmFwcGVyIGRpdi5kaXZDYXRlZ29yeUJveFdyYXBwZXIgZGl2LmRpdkNhclNpbmdsZU91dGVyQm94IGRpdi5kaXZDYXJTaW5nbGVJbm5lckJveCBkaXYuZGl2Q2FyVGl0bGVDb250YWluZXIgZGl2LmRpdk5ld0NhclN0YXJ0UHJpY2UsIGRpdi5kaXZDYXRlZ29yaWVzQm94V3JhcHBlciBkaXYuZGl2Q2F0ZWdvcnlCb3hXcmFwcGVyIGRpdi5kaXZDYXJTaW5nbGVPdXRlckJveCBkaXYuZGl2Q2FyU2luZ2xlSW5uZXJCb3ggZGl2LmRpdkNhclRpdGxlQ29udGFpbmVyIGRpdi5kaXZOZXdDYXJQcm9tb1ByaWNleyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc2l6ZTowLjc1cmVtIDsgd2lkdGg6YXV0bzsgaGVpZ2h0OmF1dG87IGxpbmUtaGVpZ2h0Om5vcm1hbDsgY29sb3I6IzAwMDsgfSBkaXYuZGl2Q2F0ZWdvcmllc0JveFdyYXBwZXIgZGl2LmRpdkNhdGVnb3J5Qm94V3JhcHBlciBkaXYuZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggZGl2LmRpdkNhclNpbmdsZUlubmVyQm94IGRpdi5kaXZDYXJJbWFnZUNvbnRhaW5lcnsgcG9zaXRpb246YWJzb2x1dGU7IGJvdHRvbToyMHB4OyBsZWZ0OjEwcHg7IHJpZ2h0OjEwcHg7IGhlaWdodDo4MCU7IH0gZGl2LmRpdkNhdGVnb3JpZXNCb3hXcmFwcGVyIGRpdi5kaXZDYXRlZ29yeUJveFdyYXBwZXIgZGl2LmRpdkNhclNpbmdsZU91dGVyQm94IGRpdi5kaXZDYXJTaW5nbGVJbm5lckJveCBkaXYuZGl2Q2FySW1hZ2VDb250YWluZXIgQXsgZmxvYXQ6bGVmdDsgY2xlYXI6Ym90aDsgd2lkdGg6MTAwJTsgfSBkaXYuZGl2Q2F0ZWdvcmllc0JveFdyYXBwZXIgZGl2LmRpdkNhdGVnb3J5Qm94V3JhcHBlciBkaXYuZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggZGl2LmRpdkNhclNpbmdsZUlubmVyQm94IGRpdi5kaXZDYXJJbWFnZUNvbnRhaW5lciBJTUd7IHdpZHRoOjEwMCU7IGhlaWdodDphdXRvOyB9IEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDoxMzAxcHgpIHsgYm9keS5pc0Z1bGxXaWR0aFBhZ2UuaXNQYWdlRnVsbFdpZHRoRW5hYmxlZCBkaXYuZGl2Q2F0ZWdvcmllc0JveFdyYXBwZXIgZGl2LmRpdkNhdGVnb3J5Qm94V3JhcHBlciBkaXYuZGl2Q2FyU2luZ2xlT3V0ZXJCb3h7IGhlaWdodDozODVweDsgfSBib2R5LmlzRnVsbFdpZHRoUGFnZS5pc1BhZ2VGdWxsV2lkdGhFbmFibGVkIGRpdi5kaXZDYXRlZ29yaWVzQm94V3JhcHBlciBkaXYuZGl2Q2F0ZWdvcnlCb3hXcmFwcGVyIGRpdi5kaXZDYXJTaW5nbGVPdXRlckJveC5kaXZNYWtlTG9nb09ubHl7IGhlaWdodDoxNTZweDsgfSBib2R5LmlzRnVsbFdpZHRoUGFnZS5pc1BhZ2VGdWxsV2lkdGhFbmFibGVkIGRpdi5kaXZDYXRlZ29yaWVzQm94V3JhcHBlciBkaXYuZGl2Q2F0ZWdvcnlCb3hXcmFwcGVyIGRpdi5kaXZDYXJTaW5nbGVPdXRlckJveCBkaXYuZGl2Q2FyU2luZ2xlSW5uZXJCb3ggZGl2LmRpdkNhclRpdGxlQ29udGFpbmVyIHNwYW4uc3BhbkNhck1ha2V7IGZvbnQtc2l6ZToxLjA2M3JlbSA7IH0gYm9keS5pc0Z1bGxXaWR0aFBhZ2UuaXNQYWdlRnVsbFdpZHRoRW5hYmxlZCBkaXYuZGl2Q2F0ZWdvcmllc0JveFdyYXBwZXIgZGl2LmRpdkNhdGVnb3J5Qm94V3JhcHBlciBkaXYuZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggZGl2LmRpdkNhclNpbmdsZUlubmVyQm94IGRpdi5kaXZDYXJUaXRsZUNvbnRhaW5lciBzcGFuLnNwYW5Nb2RlbE5hbWV7IGZvbnQtc2l6ZToxLjYyNXJlbSA7IH0gYm9keS5pc0Z1bGxXaWR0aFBhZ2UuaXNQYWdlRnVsbFdpZHRoRW5hYmxlZCBkaXYuZGl2Q2F0ZWdvcmllc0JveFdyYXBwZXIgZGl2LmRpdkNhdGVnb3J5Qm94V3JhcHBlciBkaXYuZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggZGl2LmRpdkNhclNpbmdsZUlubmVyQm94IGRpdi5kaXZDYXJUaXRsZUNvbnRhaW5lciBkaXYuZGl2TmV3Q2FyU3RhcnRQcmljZXsgZm9udC1zaXplOjAuOTM4cmVtIDsgfSBib2R5LmlzRnVsbFdpZHRoUGFnZS5pc1BhZ2VGdWxsV2lkdGhFbmFibGVkIGRpdi5kaXZGaWx0ZXJPdXRlckJveCBkaXYuZGl2RmlsdGVyQm94VGl0bGV7IHdpZHRoOjExMDBweDsgfSB9IC5yZWJhdGVUYWd7IHBhZGRpbmc6MnB4IDEwcHggNHB4IDEwcHg7IHRleHQtYWxpZ246Y2VudGVyOyBwb3NpdGlvbjphYnNvbHV0ZTsgdG9wOi0xNnB4OyByaWdodDoxNXB4OyBiYWNrZ3JvdW5kOiM5MTBhMmQhaW1wb3J0YW50OyBjb2xvcjojZmZmZmZmIWltcG9ydGFudDsgdGV4dC1zaGFkb3c6bm9uZSFpbXBvcnRhbnQ7IGJvcmRlci1yYWRpdXM6NXB4IDVweCAwIDA7IH0gLnJlYmF0ZVRhZyBzcGFuLnJlYmF0ZVRleHR7IGRpc3BsYXk6YmxvY2s7IGZvbnQtc2l6ZTowLjc1cmVtIDsgfSAucmViYXRlVGFnIHNwYW4ucmViYXRlQW1vdW50eyBkaXNwbGF5OmJsb2NrOyBmb250LXdlaWdodDo3MDA7IH0gZGl2LmRpdkNhdGVnb3JpZXNCb3hXcmFwcGVyIGRpdi5kaXZDYXRlZ29yeUJveFdyYXBwZXIgZGl2LmRpdkNhclNpbmdsZU91dGVyQm94LnJlYmF0ZUJvcmRlckNvbG9yeyBib3JkZXItY29sb3I6I2RkZDsgbWFyZ2luLXRvcDoyMHB4ICFpbXBvcnRhbnQ7IG1hcmdpbi1ib3R0b206MTVweCAhaW1wb3J0YW50OyB9IGRpdi5kaXZDYXJGb290ZXJDb250YWluZXJ7IHBvc2l0aW9uOmFic29sdXRlOyBib3R0b206MHB4OyBsZWZ0OjA7IHJpZ2h0OjA7IHdpZHRoOjEwMCU7IH0gZGl2LmNhclBheW1lbnRXcmFwcGVyeyBoZWlnaHQ6NnJlbTsgfSBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6MTI5OXB4KSB7IGRpdi5kaXZDYXRlZ29yaWVzQm94V3JhcHBlciBkaXYuZGl2Q2F0ZWdvcnlCb3hXcmFwcGVyIGRpdi5kaXZDYXJTaW5nbGVPdXRlckJveHsgaGVpZ2h0OjM4MHB4IWltcG9ydGFudDsgfSBkaXYuY2FyUGF5bWVudFdyYXBwZXJ7IGhlaWdodDo2cmVtIWltcG9ydGFudDsgfSB9IGRpdi5kaXZDYXRlZ29yaWVzQm94V3JhcHBlciBkaXYuZGl2Q2F0ZWdvcnlCb3hXcmFwcGVyIGRpdi5kaXZDYXJTaW5nbGVPdXRlckJveCBkaXYuZGl2Q2FyU2luZ2xlSW5uZXJCb3ggZGl2LmRpdkNhclBheW1lbnRDb250YWluZXIgeyB0ZXh0LWFsaWduOmNlbnRlcjsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jZXJ0LWNvbmNyZXRlLWdyYXksIHZhcigtLWxpZ2h0LWdyYXkpKTsgcGFkZGluZy1ib3R0b206NXB4OyBwYWRkaW5nLXRvcDo1cHg7IH0gZGl2LmRpdkNhdGVnb3JpZXNCb3hXcmFwcGVyIGRpdi5kaXZDYXRlZ29yeUJveFdyYXBwZXIgZGl2LmRpdkNhclNpbmdsZU91dGVyQm94IGRpdi5kaXZDYXJTaW5nbGVJbm5lckJveCBkaXYuZGl2Q2FyUGF5bWVudENvbnRhaW5lciBheyB0ZXh0LWRlY29yYXRpb246bm9uZTsgfSBkaXYuZGl2Q2F0ZWdvcmllc0JveFdyYXBwZXIgZGl2LmRpdkNhdGVnb3J5Qm94V3JhcHBlciBkaXYuZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggZGl2LmRpdkNhclNpbmdsZUlubmVyQm94IGRpdi5kaXZDYXJQYXltZW50Q29udGFpbmVyIC5wYXltZW50TGluZTJ7IGZvbnQtc2l6ZToxLjE4OHJlbSA7IH0gZGl2LmRpdkNhdGVnb3JpZXNCb3hXcmFwcGVyIGRpdi5kaXZDYXRlZ29yeUJveFdyYXBwZXIgZGl2LmRpdkNhclNpbmdsZU91dGVyQm94IGRpdi5kaXZDYXJTaW5nbGVJbm5lckJveCBkaXYuZGl2Q2FyUGF5bWVudENvbnRhaW5lciAucGF5bWVudExpbmUyIHNwYW57IGNvbG9yOiM5MTBhMmQ7IGZvbnQtc2l6ZToxLjE4OHJlbSA7IGZvbnQtd2VpZ2h0OjcwMDsgfSBkaXYuZGl2Q2F0ZWdvcmllc0JveFdyYXBwZXIgZGl2LmRpdkNhdGVnb3J5Qm94V3JhcHBlciBkaXYuZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggZGl2LmRpdkNhclNpbmdsZUlubmVyQm94IGRpdi5kaXZDYXJQYXltZW50Q29udGFpbmVyIC5wYXltZW50TGluZTN7IGZvbnQtc2l6ZTowLjc1cmVtIDsgY29sb3I6IzZCNkI2QjsgfSBkaXYuZGl2Q2F0ZWdvcmllc0JveFdyYXBwZXIgZGl2LmRpdkNhdGVnb3J5Qm94V3JhcHBlciBkaXYuZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggZGl2LmRpdkNhclNpbmdsZUlubmVyQm94IGRpdi5kaXZDYXJQYXltZW50Q29udGFpbmVyIC5wYXltZW50TGluZTF7IGZvbnQtc2l6ZTowLjc1cmVtIDsgY29sb3I6IzZCNkI2QjsgfSBkaXYuZGl2Q2F0ZWdvcmllc0JveFdyYXBwZXIgZGl2LmRpdkNhdGVnb3J5Qm94V3JhcHBlciBkaXYuZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggZGl2LmRpdkNhclNpbmdsZUlubmVyQm94IGRpdi5kaXZDYXJDb250YWN0Q1RBQ29udGFpbmVyeyBiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7IH0gZGl2LmRpdkNhdGVnb3JpZXNCb3hXcmFwcGVyIGRpdi5kaXZDYXRlZ29yeUJveFdyYXBwZXIgZGl2LmRpdkNhclNpbmdsZU91dGVyQm94IGRpdi5kaXZDYXJTaW5nbGVJbm5lckJveCBkaXYuZGl2Q2FyUGF5bWVudENvbnRhaW5lcldpdGhDVEF7IGJvdHRvbTo1MHB4IWltcG9ydGFudDsgfSBkaXYuZGl2Q2FyU2luZ2xlT3V0ZXJCb3hXaXRoQ1RBeyBoZWlnaHQ6NDI1cHghaW1wb3J0YW50OyB9IGRpdi5kaXZDYXRlZ29yaWVzQm94V3JhcHBlciBkaXYuZGl2Q2F0ZWdvcnlCb3hXcmFwcGVyIGRpdi5kaXZDYXJTaW5nbGVPdXRlckJveCBkaXYuZGl2Q2FyU2luZ2xlSW5uZXJCb3ggZGl2LmRpdkNhckltYWdlQ29udGFpbmVyV2l0aENUQXsgYm90dG9tOjYwcHghaW1wb3J0YW50OyB9IC5kaXZDYXJTaW5nbGVPdXRlckJveCAuZGl2Q2FyUGF5bWVudENvbnRhaW5lclRvb2x0aXB7IGRpc3BsYXk6aW5saW5lLXRhYmxlOyBwYWRkaW5nOjAgMTBweDsgY3Vyc29yOnBvaW50ZXI7IH0gLmRpdkNhdGVnb3J5Qm94V3JhcHBlciAuZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggLmRpdkNhclBheW1lbnRDYWxjdWxhdG9yIHsgcG9zaXRpb246YWJzb2x1dGU7IGxlZnQ6MTAlOyB9IC5kaXZDYXRlZ29yeUJveFdyYXBwZXIgLmRpdkNhclNpbmdsZU91dGVyQm94IC5wYXltZW50SW5mb0J1YmJsZXsgZGlzcGxheTpub25lOyB9IGRpdi5kaXZDYXJTaW5nbGVPdXRlckJveDpob3ZlciBkaXYuZGl2Q2FySW5TdG9ja0xpbmt7IGJhY2tncm91bmQtY29sb3I6I2ZmZmZmZjsgfSBkaXYuZGl2Q2FySW5TdG9ja0xpbmt7IGJhY2tncm91bmQtY29sb3I6I2VmZWZlZjsgcGFkZGluZzozcHggOHB4OyBib3JkZXItcmFkaXVzOjNweDsgd2lkdGg6Zml0LWNvbnRlbnQ7IGNvbG9yOiMwMDA7IG1hcmdpbi10b3A6MTBweDsgfSBkaXYuZGl2Q2F0ZWdvcmllc0JveFdyYXBwZXIgZGl2LmRpdkNhdGVnb3J5Qm94V3JhcHBlciBkaXYuZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggZGl2LmRpdkNhclNpbmdsZUlubmVyQm94IGRpdi5kaXZDYXJJblN0b2NrTGluayBheyBjb2xvcjojMDAwOyB9IGRpdi5kaXZEaXNjbGFpbWVyQmxvY2t7IGJhY2tncm91bmQtY29sb3I6dmFyKC0tZ2VuZXJhbC1iZy1jb2xvcik7IGJvcmRlci1yYWRpdXM6M3B4OyB9Ci8qKiAvY3NzL2Rpdl9yYW5nZXNsaWRlci5jc3MgKiovCmRpdi5kaXZQcmljZVJhbmdlU2xpZGVyeyBtYXJnaW46MCAwIDEwcHggMDsgcGFkZGluZzowOyB9IGRpdi5kaXZQcmljZVJhbmdlU2xpZGVyIGRpdi5yYW5nZS1zbGlkZXItdGl0bGV7IGZvbnQtd2VpZ2h0OmJvbGQ7IHBhZGRpbmc6MCAwIDEwcHggMDsgfSBkaXYuZGl2UHJpY2VSYW5nZVNsaWRlciBkaXYucmFuZ2Utc2xpZGVyLXByaWNlc3sgcGFkZGluZzowIDAgMTVweCAwOyBmb250LXNpemU6MS4xMjVyZW0gOyB9IGRpdi5kaXZQcmljZVJhbmdlU2xpZGVyIGRpdi5yYW5nZS1zbGlkZXItcHJpY2VzIHNwYW4ucHJpY2UtbWlue30gZGl2LmRpdlByaWNlUmFuZ2VTbGlkZXIgZGl2LnJhbmdlLXNsaWRlci1wcmljZXMgc3Bhbi5wcmljZS1tYXh7fSBkaXYuZGl2UHJpY2VSYW5nZVNsaWRlciBkaXYucmFuZ2Utc2xpZGVyeyBib3JkZXItcmFkaXVzOjVweCAhaW1wb3J0YW50OyBoZWlnaHQ6MTBweDsgbWFyZ2luOjRweCA2cHggMCAtM3B4OyBwYWRkaW5nOjA7IGJvcmRlcjoxcHggc29saWQgI2NjYzsgfSBkaXYuZGl2UHJpY2VSYW5nZVNsaWRlciBkaXYucmFuZ2Utc2xpZGVyLWxlZnQsIGRpdi5kaXZQcmljZVJhbmdlU2xpZGVyIGRpdi5yYW5nZS1zbGlkZXItcmlnaHR7IGZvbnQtc2l6ZTowLjc1cmVtIDsgbGluZS1oZWlnaHQ6MjBweDsgY29sb3I6Izc1NzU3NTsgfSBkaXYuZGl2UHJpY2VSYW5nZVNsaWRlciBkaXYucmFuZ2Utc2xpZGVyLWxlZnR7IHRleHQtYWxpZ246bGVmdDsgfSBkaXYuZGl2UHJpY2VSYW5nZVNsaWRlciBkaXYucmFuZ2Utc2xpZGVyLXJpZ2h0eyB0ZXh0LWFsaWduOnJpZ2h0OyB9IGRpdi5kaXZQcmljZVJhbmdlU2xpZGVyIGRpdi5yYW5nZS1zbGlkZXIgZGl2LnVpLXNsaWRlci1yYW5nZXsgYmFja2dyb3VuZDojMTAxMDEwOyB9IGRpdi5kaXZQcmljZVJhbmdlU2xpZGVyIGRpdi5yYW5nZS1zbGlkZXIgQS51aS1zbGlkZXItaGFuZGxlLCBkaXYuZGl2UHJpY2VSYW5nZVNsaWRlciBkaXYucmFuZ2Utc2xpZGVyIHNwYW4udWktc2xpZGVyLWhhbmRsZXsgbWFyZ2luOi04cHggMCAwIC0xMXB4OyBib3JkZXI6MXB4IHNvbGlkICNjY2M7IHBhZGRpbmc6MCAhaW1wb3J0YW50OyBib3JkZXItcmFkaXVzOjUwcHggIWltcG9ydGFudDsgYmFja2dyb3VuZDojZmZmICFpbXBvcnRhbnQ7IHRvcDowOyBoZWlnaHQ6MjVweDsgd2lkdGg6MjVweDsgY3Vyc29yOnBvaW50ZXI7IG91dGxpbmU6bm9uZSAhaW1wb3J0YW50OyB9IGRpdi5kaXZQcmljZVJhbmdlU2xpZGVyIGRpdi5yYW5nZS1zbGlkZXIgQS51aS1zbGlkZXItaGFuZGxlLnVpLXN0YXRlLWhvdmVyLCBkaXYuZGl2UHJpY2VSYW5nZVNsaWRlciBkaXYucmFuZ2Utc2xpZGVyIEEudWktc2xpZGVyLWhhbmRsZS51aS1zdGF0ZS1hY3RpdmUsIGRpdi5kaXZQcmljZVJhbmdlU2xpZGVyIGRpdi5yYW5nZS1zbGlkZXIgc3Bhbi51aS1zbGlkZXItaGFuZGxlLnVpLXN0YXRlLWhvdmVyLCBkaXYuZGl2UHJpY2VSYW5nZVNsaWRlciBkaXYucmFuZ2Utc2xpZGVyIHNwYW4udWktc2xpZGVyLWhhbmRsZS51aS1zdGF0ZS1hY3RpdmV7IGJvcmRlci1jb2xvcjojNjY2OyB9IGRpdi5kaXZQcmljZVJhbmdlU2xpZGVyIGRpdi5yYW5nZS1zbGlkZXIgQS51aS1zbGlkZXItaGFuZGxlLnVpLXN0YXRlLWZvY3VzLCBkaXYuZGl2UHJpY2VSYW5nZVNsaWRlciBkaXYucmFuZ2Utc2xpZGVyIHNwYW4udWktc2xpZGVyLWhhbmRsZS51aS1zdGF0ZS1mb2N1c3sgb3V0bGluZTpub25lICFpbXBvcnRhbnQ7IH0KLyoqIC9jc3MvZGl2X2FuaW1hdGlvbnMubWluLmNzcyAqKi8KLmJvdW5jaW5nLXByaWNlLWFycm93ey13ZWJraXQtYW5pbWF0aW9uLW5hbWU6Ym91bmNpbmctYXJyb3c7LXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246NXM7LXdlYmtpdC1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50OmluZmluaXRlO2FuaW1hdGlvbi1uYW1lOmJvdW5jaW5nLWFycm93O2FuaW1hdGlvbi1kdXJhdGlvbjo1czthbmltYXRpb24taXRlcmF0aW9uLWNvdW50OmluZmluaXRlOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlKDVweCwwKSByb3RhdGUoMjUwZGVnKSBzY2FsZSgxKTstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUoNXB4LDApIHJvdGF0ZSgyNTBkZWcpIHNjYWxlKDEpO3RyYW5zZm9ybTp0cmFuc2xhdGUoNXB4LDApIHJvdGF0ZSgyNTBkZWcpIHNjYWxlKDEpfS5mYWRlLWluLW91dCwuZmFkZS1pbi1vdXQtZmFzdHstd2Via2l0LWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6aW5maW5pdGV9QGtleWZyYW1lcyBib3VuY2luZy1hcnJvd3swJSwxMDAlLDE2JSwzMiV7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGUoNXB4LDApIHJvdGF0ZSgyNTBkZWcpIHNjYWxlKDEpOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZSg1cHgsMCkgcm90YXRlKDI1MGRlZykgc2NhbGUoMSk7dHJhbnNmb3JtOnRyYW5zbGF0ZSg1cHgsMCkgcm90YXRlKDI1MGRlZykgc2NhbGUoMSl9MjQlLDgley1tcy10cmFuc2Zvcm06dHJhbnNsYXRlKDAsLTE1cHgpIHJvdGF0ZSgyOTBkZWcpIHNjYWxlKC43NSk7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlKDAsLTE1cHgpIHJvdGF0ZSgyOTBkZWcpIHNjYWxlKC43NSk7dHJhbnNmb3JtOnRyYW5zbGF0ZSgwLC0xNXB4KSByb3RhdGUoMjkwZGVnKSBzY2FsZSguNzUpfX1ALXdlYmtpdC1rZXlmcmFtZXMgYm91bmNpbmctYXJyb3d7MCUsMTAwJSwxNiUsMzIley1tcy10cmFuc2Zvcm06dHJhbnNsYXRlKDVweCwwKSByb3RhdGUoMjUwZGVnKSBzY2FsZSgxKTstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUoNXB4LDApIHJvdGF0ZSgyNTBkZWcpIHNjYWxlKDEpO3RyYW5zZm9ybTp0cmFuc2xhdGUoNXB4LDApIHJvdGF0ZSgyNTBkZWcpIHNjYWxlKDEpfTI0JSw4JXstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZSgwLC0xNXB4KSByb3RhdGUoMjkwZGVnKSBzY2FsZSguNzUpOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZSgwLC0xNXB4KSByb3RhdGUoMjkwZGVnKSBzY2FsZSguNzUpO3RyYW5zZm9ybTp0cmFuc2xhdGUoMCwtMTVweCkgcm90YXRlKDI5MGRlZykgc2NhbGUoLjc1KX19LmZhZGUtaW4tb3V0ey13ZWJraXQtYW5pbWF0aW9uLW5hbWU6ZmFkZS1pbi1vdXQ7LXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246MnM7YW5pbWF0aW9uLW5hbWU6ZmFkZS1pbi1vdXQ7YW5pbWF0aW9uLWR1cmF0aW9uOjJzO2FuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6aW5maW5pdGU7b3BhY2l0eToxfUAtd2Via2l0LWtleWZyYW1lcyBmYWRlLWluLW91dHswJSwxMDAlLDUwJXtvcGFjaXR5OjF9MjUle29wYWNpdHk6LjV9fUBrZXlmcmFtZXMgZmFkZS1pbi1vdXR7MCUsMTAwJSw0MCV7b3BhY2l0eToxfTIwJXtvcGFjaXR5Oi41fX0uZmFkZS1pbi1vdXQtZmFzdHstd2Via2l0LWFuaW1hdGlvbi1uYW1lOmZhZGUtaW4tb3V0LWZhc3Q7LXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246LjVzO2FuaW1hdGlvbi1uYW1lOmZhZGUtaW4tb3V0LWZhc3Q7YW5pbWF0aW9uLWR1cmF0aW9uOi41czthbmltYXRpb24taXRlcmF0aW9uLWNvdW50OmluZmluaXRlO29wYWNpdHk6MX1ALXdlYmtpdC1rZXlmcmFtZXMgZmFkZS1pbi1vdXQtZmFzdHswJSwxMDAle29wYWNpdHk6MX01MCV7b3BhY2l0eTouNX19QGtleWZyYW1lcyBmYWRlLWluLW91dC1mYXN0ezAlLDEwMCV7b3BhY2l0eToxfTUwJXtvcGFjaXR5Oi41fX0uaWNvbi1jaXJjbGluZ3std2Via2l0LWFuaW1hdGlvbi1uYW1lOmljb24tY2lyY2xpbmc7LXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246MXM7LXdlYmtpdC1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50OmluZmluaXRlOy13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjpjdWJpYy1iZXppZXIoLjY4LC0uNTUsLjI3LDEuNTUpO2FuaW1hdGlvbi1uYW1lOmljb24tY2lyY2xpbmc7YW5pbWF0aW9uLWR1cmF0aW9uOjFzO2FuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6aW5maW5pdGU7YW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjpjdWJpYy1iZXppZXIoLjY4LC0uNTUsLjI3LDEuNTUpfUAtd2Via2l0LWtleWZyYW1lcyBpY29uLWNpcmNsaW5ne2Zyb217LW1zLXRyYW5zZm9ybTpyb3RhdGUoMCk7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDApO3RyYW5zZm9ybTpyb3RhdGUoMCl9dG97LW1zLXRyYW5zZm9ybTpyb3RhdGUoMzYwZGVnKTstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMzYwZGVnKTt0cmFuc2Zvcm06cm90YXRlKDM2MGRlZyl9fUBrZXlmcmFtZXMgaWNvbi1jaXJjbGluZ3tmcm9tey1tcy10cmFuc2Zvcm06cm90YXRlKDApOy13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgwKTt0cmFuc2Zvcm06cm90YXRlKDApfXRvey1tcy10cmFuc2Zvcm06cm90YXRlKDM2MGRlZyk7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDM2MGRlZyk7dHJhbnNmb3JtOnJvdGF0ZSgzNjBkZWcpfX0KLyoqIC9jc3MvZm9udHMuY3NzICoqLwpAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidDYWxpYnJpJzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9jYWxpYnJpLXdlYmZvbnQuZW90Jyk7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvY2FsaWJyaS13ZWJmb250LmVvdD8jaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9jYWxpYnJpLXdlYmZvbnQud29mZicpIGZvcm1hdCgnd29mZicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvY2FsaWJyaS13ZWJmb250LnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL2NhbGlicmktd2ViZm9udC5zdmcjQ2FsaWJyaScpIGZvcm1hdCgnc3ZnJyk7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zdHlsZTpub3JtYWw7IGZvbnQtc2l6ZToxZW07IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQ2FsaWJyaSc7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvY2FsaWJyaWItd2ViZm9udC5lb3QnKTsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9jYWxpYnJpYi13ZWJmb250LmVvdD8jaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9jYWxpYnJpYi13ZWJmb250LndvZmYnKSBmb3JtYXQoJ3dvZmYnKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL2NhbGlicmliLXdlYmZvbnQudHRmJykgZm9ybWF0KCd0cnVldHlwZScpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvY2FsaWJyaWItd2ViZm9udC5zdmcjQ2FsaWJyaScpIGZvcm1hdCgnc3ZnJyk7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc3R5bGU6bm9ybWFsOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0NhbGlicmknOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL2NhbGlicmlpLXdlYmZvbnQuZW90Jyk7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvY2FsaWJyaWktd2ViZm9udC5lb3Q\/I2llZml4JykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvY2FsaWJyaWktd2ViZm9udC53b2ZmJykgZm9ybWF0KCd3b2ZmJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9jYWxpYnJpaS13ZWJmb250LnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL2NhbGlicmlpLXdlYmZvbnQuc3ZnI0NhbGlicmknKSBmb3JtYXQoJ3N2ZycpOyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc3R5bGU6aXRhbGljOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0FudGVubmEnOyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6IHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Gb3JkQW50ZW5uYVdHTC1SZWd1bGFyLndvZmYiKSBmb3JtYXQoIndvZmYiKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidBbnRlbm5hJzsgZm9udC1zdHlsZTppdGFsaWM7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgc3JjOiB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvRm9yZEFudGVubmFXR0wtUmVndWxhckl0YWxpYy53b2ZmIikgZm9ybWF0KCJ3b2ZmIik7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQW50ZW5uYSc7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6IHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Gb3JkQW50ZW5uYVdHTC1Cb2xkLndvZmYiKSBmb3JtYXQoIndvZmYiKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidBbnRlbm5hJzsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzogdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0ZvcmRBbnRlbm5hV0dMLUJvbGRJdGFsaWMud29mZiIpIGZvcm1hdCgid29mZiIpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0FudGVubmFMaWdodCc7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzogdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0ZvcmRBbnRlbm5hV0dMLUxpZ2h0LndvZmYiKSBmb3JtYXQoIndvZmYiKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidBbnRlbm5hTGlnaHQnOyBmb250LXN0eWxlOml0YWxpYzsgZm9udC13ZWlnaHQ6bm9ybWFsOyBzcmM6IHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Gb3JkQW50ZW5uYVdHTC1MaWdodEl0YWxpYy53b2ZmIikgZm9ybWF0KCJ3b2ZmIik7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQW50ZW5uYUxpZ2h0JzsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzogdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0ZvcmRBbnRlbm5hV0dMLVNlbWlib2xkLndvZmYiKSBmb3JtYXQoIndvZmYiKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidBbnRlbm5hTGlnaHQnOyBmb250LXdlaWdodDpib2xkOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOiB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvRm9yZEFudGVubmFXR0wtU2VtaWJvbGRJdGFsaWMud29mZiIpIGZvcm1hdCgid29mZiIpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0FudGVubmFDb25kJzsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOiB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvRm9yZEFudGVubmFDb25kV0dMLVJlZy53b2ZmIikgZm9ybWF0KCJ3b2ZmIik7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQW50ZW5uYUNvbmQnOyBmb250LXN0eWxlOml0YWxpYzsgZm9udC13ZWlnaHQ6bm9ybWFsOyBzcmM6IHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Gb3JkQW50ZW5uYUNvbmRXR0wtUmVnSXRhbGljLndvZmYiKSBmb3JtYXQoIndvZmYiKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidBbnRlbm5hQ29uZCc7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6IHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Gb3JkQW50ZW5uYUNvbmRXR0wtQm9sZC53b2ZmIikgZm9ybWF0KCJ3b2ZmIik7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQW50ZW5uYUNvbmQnOyBmb250LXdlaWdodDpib2xkOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOiB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvRm9yZEFudGVubmFDb25kV0dMLUJvbGRJdGFsaWMud29mZiIpIGZvcm1hdCgid29mZiIpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0FudGVubmFDb25kTGlnaHQnOyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6IHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Gb3JkQW50ZW5uYUNvbmRXR0wtTGlnaHQud29mZiIpIGZvcm1hdCgid29mZiIpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0FudGVubmFDb25kTGlnaHQnOyBmb250LXN0eWxlOml0YWxpYzsgZm9udC13ZWlnaHQ6bm9ybWFsOyBzcmM6IHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Gb3JkQW50ZW5uYUNvbmRXR0wtTGlnaHRJdGFsaWMud29mZiIpIGZvcm1hdCgid29mZiIpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0FudGVubmFDb25kTGlnaHQnOyBmb250LXdlaWdodDpib2xkOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOiB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvRm9yZEFudGVubmFDb25kV0dMLU1lZC53b2ZmIikgZm9ybWF0KCJ3b2ZmIik7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQW50ZW5uYUNvbmRMaWdodCc7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6IHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Gb3JkQW50ZW5uYUNvbmRXR0wtTWVkSXRhbGljLndvZmYiKSBmb3JtYXQoIndvZmYiKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidJbnRlcnN0YXRlJzsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOiB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSW50ZXJzdGF0ZS1SZWd1bGFyLndvZmYyIikgZm9ybWF0KCJ3b2ZmMiIpLCB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSW50ZXJzdGF0ZS1SZWd1bGFyLndvZmYiKSBmb3JtYXQoIndvZmYiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0ludGVyc3RhdGUtUmVndWxhci5vdGYiKSBmb3JtYXQoIm9wZW50eXBlIik7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonSW50ZXJzdGF0ZSc7IGZvbnQtc3R5bGU6aXRhbGljOyBmb250LXdlaWdodDpub3JtYWw7IHNyYzogdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0ludGVyc3RhdGUtUmVndWxhckl0YWxpYy53b2ZmMiIpIGZvcm1hdCgid29mZjIiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0ludGVyc3RhdGUtUmVndWxhckl0YWxpYy53b2ZmIikgZm9ybWF0KCJ3b2ZmIiksIHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9JbnRlcnN0YXRlLVJlZ3VsYXJJdGFsaWMub3RmIikgZm9ybWF0KCJvcGVudHlwZSIpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0ludGVyc3RhdGUnOyBmb250LXdlaWdodDpib2xkOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOiB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSW50ZXJzdGF0ZS1Cb2xkLndvZmYyIikgZm9ybWF0KCJ3b2ZmMiIpLCB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSW50ZXJzdGF0ZS1Cb2xkLndvZmYiKSBmb3JtYXQoIndvZmYiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0ludGVyc3RhdGUtQm9sZC5vdGYiKSBmb3JtYXQoIm9wZW50eXBlIik7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonSW50ZXJzdGF0ZSc7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6IHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9JbnRlcnN0YXRlLUJvbGRJdGFsaWMud29mZjIiKSBmb3JtYXQoIndvZmYyIiksIHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9JbnRlcnN0YXRlLUJvbGRJdGFsaWMud29mZiIpIGZvcm1hdCgid29mZiIpLCB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSW50ZXJzdGF0ZS1Cb2xkSXRhbGljLm90ZiIpIGZvcm1hdCgib3BlbnR5cGUiKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidJbnRlcnN0YXRlJzsgZm9udC13ZWlnaHQ6bGlnaHRlcjsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzogdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0ludGVyc3RhdGUtTGlnaHQud29mZjIiKSBmb3JtYXQoIndvZmYyIiksIHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9JbnRlcnN0YXRlLUxpZ2h0LndvZmYiKSBmb3JtYXQoIndvZmYiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0ludGVyc3RhdGUtTGlnaHQub3RmIikgZm9ybWF0KCJvcGVudHlwZSIpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0ludGVyc3RhdGUnOyBmb250LXdlaWdodDpsaWdodGVyOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOiB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSW50ZXJzdGF0ZS1MaWdodEl0YWxpYy53b2ZmMiIpIGZvcm1hdCgid29mZjIiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0ludGVyc3RhdGUtTGlnaHRJdGFsaWMud29mZiIpIGZvcm1hdCgid29mZiIpLCB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSW50ZXJzdGF0ZS1MaWdodEl0YWxpYy5vdGYiKSBmb3JtYXQoIm9wZW50eXBlIik7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonVldUZXh0JzsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOiB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2Evdnd0ZXh0LXJlZ3VsYXItd2ViZm9udC53b2ZmMiIpIGZvcm1hdCgid29mZjIiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL3Z3dGV4dC1yZWd1bGFyLXdlYmZvbnQud29mZiIpIGZvcm1hdCgid29mZiIpLCB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvVldUZXh0LVJlZ3VsYXIub3RmIikgZm9ybWF0KCJvcGVudHlwZSIpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1ZXVGV4dCc7IGZvbnQtc3R5bGU6aXRhbGljOyBmb250LXdlaWdodDpub3JtYWw7IHNyYzogdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL3Z3dGV4dC1yZWd1bGFyaXRhbGljLXdlYmZvbnQud29mZjIiKSBmb3JtYXQoIndvZmYyIiksIHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS92d3RleHQtcmVndWxhcml0YWxpYy13ZWJmb250LndvZmYiKSBmb3JtYXQoIndvZmYiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1ZXVGV4dC1SZWd1bGFySXRhbGljLm90ZiIpIGZvcm1hdCgib3BlbnR5cGUiKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidWV1RleHQnOyBmb250LXdlaWdodDpib2xkOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOiB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2Evdnd0ZXh0LWJvbGQtd2ViZm9udC53b2ZmMiIpIGZvcm1hdCgid29mZjIiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL3Z3dGV4dC1ib2xkLXdlYmZvbnQud29mZiIpIGZvcm1hdCgid29mZiIpLCB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvVldUZXh0LUJvbGQub3RmIikgZm9ybWF0KCJvcGVudHlwZSIpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1ZXVGV4dCc7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6IHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS92d3RleHRvZmZpY2UtYm9sZGl0YWxpYy13ZWJmb250LndvZmYyIikgZm9ybWF0KCJ3b2ZmMiIpLCB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2Evdnd0ZXh0b2ZmaWNlLWJvbGRpdGFsaWMtd2ViZm9udC53b2ZmIikgZm9ybWF0KCJ3b2ZmIiksIHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9WV1RleHRPZmZpY2UtQm9sZEl0YWxpYy50dGYiKSBmb3JtYXQoInRydWV0eXBlIik7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonVldUZXh0JzsgZm9udC13ZWlnaHQ6Ym9sZGVyOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOiB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvdndoZWFkbGluZW90LXNlbWlib2xkXzAtd2ViZm9udC53b2ZmMiIpIGZvcm1hdCgid29mZjIiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL3Z3aGVhZGxpbmVvdC1zZW1pYm9sZF8wLXdlYmZvbnQud29mZiIpIGZvcm1hdCgid29mZiIpLCB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvVldIZWFkbGluZU9ULVNlbWlib2xkXzAudHRmIikgZm9ybWF0KCJ0cnVldHlwZSIpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1ZXVGV4dCc7IGZvbnQtd2VpZ2h0OmxpZ2h0ZXI7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6IHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS92d3RleHQtbGlnaHQtd2ViZm9udC53b2ZmMiIpIGZvcm1hdCgid29mZjIiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL3Z3dGV4dC1saWdodC13ZWJmb250LndvZmYiKSBmb3JtYXQoIndvZmYiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1ZXVGV4dC1MaWdodC5vdGYiKSBmb3JtYXQoIm9wZW50eXBlIik7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonVldIZWFkJzsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvdndoZWFkLXJlZ3VsYXItd2ViZm9udC53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL3Z3aGVhZC1yZWd1bGFyLXdlYmZvbnQud29mZicpIGZvcm1hdCgnd29mZicpLCB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvVldIZWFkLVJlZ3VsYXIub3RmIikgZm9ybWF0KCJvcGVudHlwZSIpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1ZXSGVhZCc7IGZvbnQtc3R5bGU6aXRhbGljOyBmb250LXdlaWdodDpub3JtYWw7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL3Z3aGVhZC1yZWd1bGFyaXRhbGljLXdlYmZvbnQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS92d2hlYWQtcmVndWxhcml0YWxpYy13ZWJmb250LndvZmYnKSBmb3JtYXQoJ3dvZmYnKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1ZXSGVhZC1SZWd1bGFySXRhbGljLm90ZiIpIGZvcm1hdCgib3BlbnR5cGUiKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidWV0hlYWQnOyBmb250LXdlaWdodDpib2xkOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS92d2hlYWQtYm9sZC13ZWJmb250LndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvdndoZWFkLWJvbGQtd2ViZm9udC53b2ZmJykgZm9ybWF0KCd3b2ZmJyksIHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9WV0hlYWQtQm9sZC5vdGYiKSBmb3JtYXQoIm9wZW50eXBlIik7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonVldIZWFkJzsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL3Z3aGVhZC1ib2xkaXRhbGljLXdlYmZvbnQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS92d2hlYWQtYm9sZGl0YWxpYy13ZWJmb250LndvZmYnKSBmb3JtYXQoJ3dvZmYnKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1ZXSGVhZC1Cb2xkSXRhbGljLm90ZiIpIGZvcm1hdCgib3BlbnR5cGUiKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidWV0hlYWQnOyBmb250LXdlaWdodDpib2xkZXI7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS92d2hlYWQtZXh0cmFib2xkLXdlYmZvbnQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS92d2hlYWQtZXh0cmFib2xkLXdlYmZvbnQud29mZicpIGZvcm1hdCgnd29mZicpLCB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvVldIZWFkLUV4dHJhQm9sZC5vdGYiKSBmb3JtYXQoIm9wZW50eXBlIik7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonVldIZWFkT2ZmaWNlJzsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOiB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvVldIZWFkT2ZmaWNlLVJlZ3VsYXIud29mZjIiKSBmb3JtYXQoIndvZmYyIik7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonVldIZWFkT2ZmaWNlJzsgZm9udC1zdHlsZTppdGFsaWM7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgc3JjOiB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvdndoZWFkb2ZmaWNlLXJlZ3VsYXJpdGFsaWMtd2ViZm9udC53b2ZmMiIpIGZvcm1hdCgid29mZjIiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL3Z3aGVhZG9mZmljZS1yZWd1bGFyaXRhbGljLXdlYmZvbnQud29mZiIpIGZvcm1hdCgid29mZiIpLCB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvVldIZWFkT2ZmaWNlLVJlZ3VsYXJJdGFsaWMudHRmIikgZm9ybWF0KCJ0cnVldHlwZSIpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1ZXSGVhZE9mZmljZSc7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6IHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9WV0hlYWRPZmZpY2UtQm9sZC53b2ZmMiIpIGZvcm1hdCgid29mZjIiKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidWV0hlYWRPZmZpY2UnOyBmb250LXN0eWxlOml0YWxpYzsgZm9udC13ZWlnaHQ6Ym9sZDsgc3JjOiB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvdndoZWFkb2ZmaWNlLWJvbGRpdGFsaWMtd2ViZm9udC53b2ZmMiIpIGZvcm1hdCgid29mZjIiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL3Z3aGVhZG9mZmljZS1ib2xkaXRhbGljLXdlYmZvbnQud29mZiIpIGZvcm1hdCgid29mZiIpLCB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvVldIZWFkT2ZmaWNlLUJvbGRJdGFsaWMudHRmIikgZm9ybWF0KCJ0cnVldHlwZSIpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1ZXVGV4dE9mZmljZSc7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzogdXJsKCIvL2ZvbnRzLmQyY21lZGlhLmNhL1ZXVGV4dE9mZmljZS1SZWd1bGFyLndvZmYyIikgZm9ybWF0KCJ3b2ZmMiIpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1ZXVGV4dE9mZmljZSc7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6IHVybCgiLy9mb250cy5kMmNtZWRpYS5jYS9WV1RleHRPZmZpY2UtQm9sZC53b2ZmMiIpIGZvcm1hdCgid29mZjIiKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidMaW5jb2xuTWlsbGVyQic7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzogdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0xpbmNvbG5NaWxsZXJCLUJsYWNrLndvZmYyIikgZm9ybWF0KCJ3b2ZmMiIpLCB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTGluY29sbk1pbGxlckItQmxhY2sud29mZiIpIGZvcm1hdCgid29mZiIpLCB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTGluY29sbk1pbGxlckItQmxhY2sudHRmIikgZm9ybWF0KCJ0cnVldHlwZSIpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0xpbmNvbG5NaWxsZXJCJzsgZm9udC1zdHlsZTppdGFsaWM7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgc3JjOiB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTGluY29sbk1pbGxlckItSXRhbGljLndvZmYyIikgZm9ybWF0KCJ3b2ZmMiIpLCB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTGluY29sbk1pbGxlckItSXRhbGljLndvZmYiKSBmb3JtYXQoIndvZmYiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0xpbmNvbG5NaWxsZXJCLUl0YWxpYy50dGYiKSBmb3JtYXQoInRydWV0eXBlIik7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonTGluY29sbk1pbGxlckInOyBmb250LXdlaWdodDpib2xkOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOiB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTGluY29sbk1pbGxlckItQm9sZC53b2ZmMiIpIGZvcm1hdCgid29mZjIiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0xpbmNvbG5NaWxsZXJCLUJvbGQud29mZiIpIGZvcm1hdCgid29mZiIpLCB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTGluY29sbk1pbGxlckItQm9sZC50dGYiKSBmb3JtYXQoInRydWV0eXBlIik7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonTGluY29sbk1pbGxlckInOyBmb250LXN0eWxlOml0YWxpYzsgZm9udC13ZWlnaHQ6Ym9sZDsgc3JjOiB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTGluY29sbk1pbGxlckItQmxhY2tJdGFsaWMud29mZjIiKSBmb3JtYXQoIndvZmYyIiksIHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9MaW5jb2xuTWlsbGVyQi1CbGFja0l0YWxpYy53b2ZmIikgZm9ybWF0KCJ3b2ZmIiksIHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9MaW5jb2xuTWlsbGVyQi1CbGFja0l0YWxpYy50dGYiKSBmb3JtYXQoInRydWV0eXBlIik7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonTGluY29sbk1pbGxlckInOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9MaW5jb2xuTWlsbGVyQi1MaWdodC53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0xpbmNvbG5NaWxsZXJCLUxpZ2h0LndvZmYnKSBmb3JtYXQoJ3dvZmYnKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0xpbmNvbG5NaWxsZXJCLUxpZ2h0LnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKTsgZm9udC13ZWlnaHQ6bGlnaHRlcjsgZm9udC1zdHlsZTpub3JtYWw7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonTGluY29sblByb3hpbWFOb3ZhJzsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOiB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTGluY29sblByb3hpbWFOb3ZhLndvZmYyIikgZm9ybWF0KCJ3b2ZmMiIpLCB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTGluY29sblByb3hpbWFOb3ZhLndvZmYiKSBmb3JtYXQoIndvZmYiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0xpbmNvbG5Qcm94aW1hTm92YS50dGYiKSBmb3JtYXQoInRydWV0eXBlIik7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonTGluY29sblByb3hpbWFOb3ZhJzsgZm9udC1zdHlsZTppdGFsaWM7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgc3JjOiB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTGluY29sblByb3hpbWFOb3ZhLUl0YWxpYy53b2ZmMiIpIGZvcm1hdCgid29mZjIiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0xpbmNvbG5Qcm94aW1hTm92YS1JdGFsaWMud29mZiIpIGZvcm1hdCgid29mZiIpLCB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTGluY29sblByb3hpbWFOb3ZhLUl0YWxpYy50dGYiKSBmb3JtYXQoInRydWV0eXBlIik7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonTGluY29sblByb3hpbWFOb3ZhJzsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzogdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0xpbmNvbG5Qcm94aW1hTm92YS1Cb2xkLndvZmYyIikgZm9ybWF0KCJ3b2ZmMiIpLCB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTGluY29sblByb3hpbWFOb3ZhLUJvbGQud29mZiIpIGZvcm1hdCgid29mZiIpLCB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTGluY29sblByb3hpbWFOb3ZhLUJvbGQudHRmIikgZm9ybWF0KCJ0cnVldHlwZSIpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0xpbmNvbG5Qcm94aW1hTm92YSc7IGZvbnQtc3R5bGU6aXRhbGljOyBmb250LXdlaWdodDpib2xkOyBzcmM6IHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9MaW5jb2xuUHJveGltYU5vdmEtQm9sZEl0YWxpYy53b2ZmMiIpIGZvcm1hdCgid29mZjIiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0xpbmNvbG5Qcm94aW1hTm92YS1Cb2xkSXRhbGljLndvZmYiKSBmb3JtYXQoIndvZmYiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0xpbmNvbG5Qcm94aW1hTm92YS1Cb2xkSXRhbGljLnR0ZiIpIGZvcm1hdCgidHJ1ZXR5cGUiKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidMaW5jb2xuUHJveGltYU5vdmEnOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9MaW5jb2xuUHJveGltYU5vdmFMaWdodC53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0xpbmNvbG5Qcm94aW1hTm92YUxpZ2h0LndvZmYnKSBmb3JtYXQoJ3dvZmYnKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0xpbmNvbG5Qcm94aW1hTm92YUxpZ2h0LnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKTsgZm9udC13ZWlnaHQ6bGlnaHRlcjsgZm9udC1zdHlsZTpub3JtYWw7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonUHJveGltYU5vdmEnOyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6IHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Qcm94aW1hTm92YS53b2ZmMiIpIGZvcm1hdCgid29mZjIiKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidQcm94aW1hTm92YSc7IGZvbnQtc3R5bGU6aXRhbGljOyBmb250LXdlaWdodDpub3JtYWw7IHNyYzogdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1Byb3hpbWFOb3ZhLUl0YWxpYy53b2ZmMiIpIGZvcm1hdCgid29mZjIiKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidQcm94aW1hTm92YSc7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6IHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Qcm94aW1hTm92YS1Cb2xkLndvZmYyIikgZm9ybWF0KCJ3b2ZmMiIpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1Byb3hpbWFOb3ZhJzsgZm9udC1zdHlsZTppdGFsaWM7IGZvbnQtd2VpZ2h0OmJvbGQ7IHNyYzogdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1Byb3hpbWFOb3ZhLUJvbGRJdGFsaWMud29mZjIiKSBmb3JtYXQoIndvZmYyIik7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonUHJveGltYU5vdmEnOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Qcm94aW1hTm92YUxpZ2h0LndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyBmb250LXdlaWdodDpsaWdodGVyOyBmb250LXN0eWxlOm5vcm1hbDsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidSb2JvdG8nOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1JvYm90by1SZWd1bGFyLXdlYmZvbnQuZW90Jyk7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvUm9ib3RvLVJlZ3VsYXItd2ViZm9udC5lb3Q\/I2llZml4JykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvUm9ib3RvLVJlZ3VsYXItd2ViZm9udC53b2ZmJykgZm9ybWF0KCd3b2ZmJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Sb2JvdG8tUmVndWxhci13ZWJmb250LnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1JvYm90by1SZWd1bGFyLXdlYmZvbnQuc3ZnI1JvYm90bycpIGZvcm1hdCgnc3ZnJyk7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zdHlsZTpub3JtYWw7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonUm9ib3RvJzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Sb2JvdG8tQm9sZEl0YWxpYy13ZWJmb250LmVvdCcpOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1JvYm90by1Cb2xkSXRhbGljLXdlYmZvbnQuZW90PyNpZWZpeCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1JvYm90by1Cb2xkSXRhbGljLXdlYmZvbnQud29mZicpIGZvcm1hdCgnd29mZicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvUm9ib3RvLUJvbGRJdGFsaWMtd2ViZm9udC50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Sb2JvdG8tQm9sZEl0YWxpYy13ZWJmb250LnN2ZyNSb2JvdG9CbGFja0l0YWxpYycpIGZvcm1hdCgnc3ZnJyk7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc3R5bGU6aXRhbGljOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1JvYm90byc7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvUm9ib3RvLUJvbGQtd2ViZm9udC5lb3QnKTsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Sb2JvdG8tQm9sZC13ZWJmb250LmVvdD8jaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Sb2JvdG8tQm9sZC13ZWJmb250LndvZmYnKSBmb3JtYXQoJ3dvZmYnKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1JvYm90by1Cb2xkLXdlYmZvbnQudHRmJykgZm9ybWF0KCd0cnVldHlwZScpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvUm9ib3RvLUJvbGQtd2ViZm9udC5zdmcjUm9ib3RvQm9sZCcpIGZvcm1hdCgnc3ZnJyk7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc3R5bGU6bm9ybWFsOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1JvYm90byc7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvUm9ib3RvLUxpZ2h0LXdlYmZvbnQuZW90Jyk7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvUm9ib3RvLUxpZ2h0LXdlYmZvbnQuZW90PyNpZWZpeCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1JvYm90by1MaWdodC13ZWJmb250LndvZmYnKSBmb3JtYXQoJ3dvZmYnKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1JvYm90by1MaWdodC13ZWJmb250LnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1JvYm90by1MaWdodC13ZWJmb250LnN2ZyNSb2JvdG9MaWdodCcpIGZvcm1hdCgnc3ZnJyk7IGZvbnQtd2VpZ2h0OmxpZ2h0ZXI7IGZvbnQtc3R5bGU6bm9ybWFsOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0Rlc2lnbmtiJzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9kZXNpZ25rYi13ZWJmb250LmVvdCcpOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL2Rlc2lnbmtiLXdlYmZvbnQuZW90PyNpZWZpeCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL2Rlc2lnbmtiLXdlYmZvbnQud29mZicpIGZvcm1hdCgnd29mZicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvZGVzaWdua2Itd2ViZm9udC50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyk7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zdHlsZTpub3JtYWw7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonRGVzaWdua2InOyBzcmM6IHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9kZXNpZ25rYi13ZWJmb250LndvZmYiKSBmb3JtYXQoIndvZmYiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL2Rlc2lnbmtiLXdlYmZvbnQtYm9sZC50dGYiKSBmb3JtYXQoInRydWV0eXBlIik7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc3R5bGU6bm9ybWFsOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0Rlc2lnbmtiJzsgc3JjOiB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvZGVzaWdua2wtd2ViZm9udC53b2ZmIikgZm9ybWF0KCJ3b2ZmIiksIHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9kZXNpZ25rbC13ZWJmb250LWxpZ2h0LnR0ZiIpIGZvcm1hdCgidHJ1ZXR5cGUiKTsgZm9udC13ZWlnaHQ6bGlnaHRlcjsgZm9udC1zdHlsZTpub3JtYWw7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonRGVzaWdua20nOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL2Rlc2lnbmttLXdlYmZvbnQuZW90Jyk7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvZGVzaWdua20td2ViZm9udC5lb3Q\/I2llZml4JykgZm9ybWF0KCJlb3QiKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL2Rlc2lnbmttLXdlYmZvbnQudHRmJykgZm9ybWF0KCd0cnVldHlwZScpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvZGVzaWdua20td2ViZm9udC53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zdHlsZTpub3JtYWw7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonRGVzaWdua20nOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL2Rlc2lnbmttLXdlYmZvbnQud29mZicpIGZvcm1hdCgnd29mZicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvZGVzaWdua20td2ViZm9udC1tZWRpdW0udHRmJykgZm9ybWF0KCd0cnVldHlwZScpOyBmb250LXdlaWdodDptZWRpdW07IGZvbnQtc3R5bGU6bm9ybWFsOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0NvcnBvcmF0ZVMnOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9jb3Jwb3NfcmVndWxhcl93ZWJmb250LndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvY29ycG9zX3JlZ3VsYXJfd2ViZm9udC53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zdHlsZTpub3JtYWw7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQ29ycG9yYXRlUyc7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL2NvcnBvc19saWdodF93ZWJmb250LndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvY29ycG9zX2xpZ2h0X3dlYmZvbnQud29mZicpIGZvcm1hdCgnd29mZicpOyBmb250LXdlaWdodDoxMDA7IGZvbnQtc3R5bGU6bm9ybWFsOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0NvcnBvcmF0ZVMnOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9jb3Jwb3NfYm9sZF93ZWJmb250LndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvY29ycG9zX2JvbGRfd2ViZm9udC53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc3R5bGU6bm9ybWFsOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0NvcnBvcmF0ZUFDb25kZW5zZWQnOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9jb3Jwb3JhdGVhY29uZHByb19yZWd1bGFyX3dlYmZvbnQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9jb3Jwb3JhdGVhY29uZHByb19yZWd1bGFyX3dlYmZvbnQud29mZicpIGZvcm1hdCgnd29mZicpOyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc3R5bGU6bm9ybWFsOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0NvcnBvcmF0ZUFSZWd1bGFyJzsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvY29ycG9yYXRlYXByb19yZWd1bGFyX2xvZ29fd2ViZm9udC53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL2NvcnBvcmF0ZWFwcm9fcmVndWxhcl9sb2dvX3dlYmZvbnQud29mZicpIGZvcm1hdCgnd29mZicpOyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc3R5bGU6bm9ybWFsOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6IlNvdXJjZVNhbnNQcm8iOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL3NvdXJjZXNhbnNwcm8tcmVndWxhci13ZWJmb250LmVvdCcpOyBzcmM6dXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL3NvdXJjZXNhbnNwcm8tcmVndWxhci13ZWJmb250LmVvdD8jaWVmaXgiKSBmb3JtYXQoImVvdCIpLCB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2Evc291cmNlc2Fuc3Byby1yZWd1bGFyLXdlYmZvbnQud29mZiIpIGZvcm1hdCgid29mZiIpLCB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2Evc291cmNlc2Fuc3Byby1yZWd1bGFyLXdlYmZvbnQudHRmIikgZm9ybWF0KCJ0cnVldHlwZSIpLCB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2Evc291cmNlc2Fuc3Byby1yZWd1bGFyLXdlYmZvbnQuc3ZnI3NvdXJjZV9zYW5zX3Byb3JlZ3VsYXIiKSBmb3JtYXQoInN2ZyIpOyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc3R5bGU6bm9ybWFsOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6IlNvdXJjZVNhbnNQcm8iOyBzcmM6dXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL3NvdXJjZXNhbnNwcm8tYm9sZC13ZWJmb250LmVvdCIpOyBzcmM6dXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL3NvdXJjZXNhbnNwcm8tYm9sZC13ZWJmb250LmVvdD8jaWVmaXgiKSBmb3JtYXQoImVvdCIpLCB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2Evc291cmNlc2Fuc3Byby1ib2xkLXdlYmZvbnQud29mZiIpIGZvcm1hdCgid29mZiIpLCB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2Evc291cmNlc2Fuc3Byby1ib2xkLXdlYmZvbnQudHRmIikgZm9ybWF0KCJ0cnVldHlwZSIpLCB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2Evc291cmNlc2Fuc3Byby1ib2xkLXdlYmZvbnQuc3ZnI3NvdXJjZV9zYW5zX3Byb2JvbGQiKSBmb3JtYXQoInN2ZyIpOyBmb250LXdlaWdodDpib2xkOyBmb250LXN0eWxlOm5vcm1hbDsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OiJTb3VyY2VTYW5zUHJvIjsgc3JjOnVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9zb3VyY2VzYW5zcHJvLWxpZ2h0LXdlYmZvbnQuZW90Iik7IHNyYzp1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2Evc291cmNlc2Fuc3Byby1saWdodC13ZWJmb250LmVvdD8jaWVmaXgiKSBmb3JtYXQoImVvdCIpLCB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2Evc291cmNlc2Fuc3Byby1saWdodC13ZWJmb250LndvZmYiKSBmb3JtYXQoIndvZmYiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL3NvdXJjZXNhbnNwcm8tbGlnaHQtd2ViZm9udC50dGYiKSBmb3JtYXQoInRydWV0eXBlIiksIHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9zb3VyY2VzYW5zcHJvLWxpZ2h0LXdlYmZvbnQuc3ZnI3NvdXJjZV9zYW5zX3Byb2xpZ2h0IikgZm9ybWF0KCJzdmciKTsgZm9udC13ZWlnaHQ6MTAwOyBmb250LXN0eWxlOm5vcm1hbDsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidBdWRpJzsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOiB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQXVkaVR5cGUtTm9ybWFsLndvZmYyIikgZm9ybWF0KCJ3b2ZmMiIpLCB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQXVkaVR5cGUtTm9ybWFsLndvZmYiKSBmb3JtYXQoIndvZmYiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0F1ZGlUeXBlVjAzLU5vcm1hbC5vdGYiKSBmb3JtYXQoIm9wZW50eXBlIik7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQXVkaSc7IGZvbnQtc3R5bGU6aXRhbGljOyBmb250LXdlaWdodDpub3JtYWw7IHNyYzogdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0F1ZGlUeXBlLUV4dGVuZGVkSXRhbGljLndvZmYyIikgZm9ybWF0KCJ3b2ZmMiIpLCB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQXVkaVR5cGUtRXh0ZW5kZWRJdGFsaWMud29mZiIpIGZvcm1hdCgid29mZiIpLCB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQXVkaVR5cGVWMDMtSXRhbGljLm90ZiIpIGZvcm1hdCgib3BlbnR5cGUiKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidBdWRpJzsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzogdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0F1ZGlUeXBlLUJvbGQud29mZjIiKSBmb3JtYXQoIndvZmYyIiksIHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9BdWRpVHlwZS1Cb2xkLndvZmYiKSBmb3JtYXQoIndvZmYiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0F1ZGlUeXBlVjAzLUJvbGQiKSBmb3JtYXQoIm9wZW50eXBlIik7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQXVkaSc7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6IHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9BdWRpVHlwZS1FeHRlbmRlZEJvbGRJdGFsaWMud29mZjIiKSBmb3JtYXQoIndvZmYyIiksIHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9BdWRpVHlwZS1FeHRlbmRlZEJvbGRJdGFsaWMud29mZiIpIGZvcm1hdCgid29mZiIpLCB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQXVkaVR5cGVWMDMtRXh0ZW5kZWRCb2xkSXRhbGljLm90ZiIpIGZvcm1hdCgib3BlbnR5cGUiKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidQb3JzY2hlJzsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOiB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvUG9yc2NoZU5leHQtUmVndWxhci5vdGYiKSBmb3JtYXQoIm9wZW50eXBlIiksIHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Qb3JzY2hlTmV4dC1SZWd1bGFyLndvZmYyIikgZm9ybWF0KCJ3b2ZmMiIpLCB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvUG9yc2NoZU5leHQtUmVndWxhci53b2ZmIikgZm9ybWF0KCJ3b2ZmIik7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonUG9yc2NoZSc7IGZvbnQtc3R5bGU6aXRhbGljOyBmb250LXdlaWdodDpub3JtYWw7IHNyYzogdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1BvcnNjaGVOZXh0LUl0YWxpYy53b2ZmMiIpIGZvcm1hdCgid29mZjIiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1BvcnNjaGVOZXh0LUl0YWxpYy53b2ZmIikgZm9ybWF0KCJ3b2ZmIik7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonUG9yc2NoZSc7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6IHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Qb3JzY2hlTmV4dC1Cb2xkLm90ZiIpIGZvcm1hdCgib3BlbnR5cGUiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1BvcnNjaGVOZXh0LUJvbGQud29mZjIiKSBmb3JtYXQoIndvZmYyIiksIHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Qb3JzY2hlTmV4dC1Cb2xkLndvZmYiKSBmb3JtYXQoIndvZmYiKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidQb3JzY2hlJzsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzogdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1BvcnNjaGVOZXh0LUJvbGRJdGFsaWMud29mZjIiKSBmb3JtYXQoIndvZmYyIiksIHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Qb3JzY2hlTmV4dC1Cb2xkSXRhbGljLndvZmYiKSBmb3JtYXQoIndvZmYiKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidQb3JzY2hlJzsgc3JjOiB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvUG9yc2NoZU5leHQtVGhpbi5vdGYiKSBmb3JtYXQoIm9wZW50eXBlIiksIHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Qb3JzY2hlTmV4dC1UaGluLndvZmYyIikgZm9ybWF0KCJ3b2ZmMiIpLCB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvUG9yc2NoZU5leHQtVGhpbi53b2ZmIikgZm9ybWF0KCJ3b2ZmIik7IGZvbnQtd2VpZ2h0OmxpZ2h0ZXI7IGZvbnQtc3R5bGU6bm9ybWFsOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1BvcnNjaGUnOyBzcmM6IHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Qb3JzY2hlTmV4dC1UaGluSXRhbGljLndvZmYyIikgZm9ybWF0KCJ3b2ZmMiIpLCB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvUG9yc2NoZU5leHQtVGhpbkl0YWxpYy53b2ZmIikgZm9ybWF0KCJ3b2ZmIik7IGZvbnQtd2VpZ2h0OmxpZ2h0ZXI7IGZvbnQtc3R5bGU6aXRhbGljOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J09zd2FsZCc7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvT3N3YWxkLmVvdCcpOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL09zd2FsZC53b2ZmJykgZm9ybWF0KCd3b2ZmJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Pc3dhbGQudHRmJykgZm9ybWF0KCd0cnVldHlwZScpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvT3N3YWxkLnN2ZycpIGZvcm1hdCgnc3ZnJyk7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zdHlsZTpub3JtYWw7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonT3N3YWxkQm9sZCc7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvT3N3YWxkQm9sZC5lb3QnKTsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Pc3dhbGRCb2xkLndvZmYnKSBmb3JtYXQoJ3dvZmYnKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL09zd2FsZEJvbGQudHRmJykgZm9ybWF0KCd0cnVldHlwZScpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvT3N3YWxkQm9sZC5zdmcnKSBmb3JtYXQoJ3N2ZycpOyBmb250LXdlaWdodDpib2xkOyBmb250LXN0eWxlOm5vcm1hbDsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidNYXpkYVR5cGUnOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9NYXpkYVR5cGUtUmVndWxhci53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXN0eWxlOm5vcm1hbDsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidNYXpkYVR5cGUnOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9NYXpkYVR5cGUtQm9sZC53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zdHlsZTpub3JtYWw7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonTWF6ZGFUeXBlJzsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTWF6ZGFUeXBlLUJvbGRJdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc3R5bGU6aXRhbGljOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J01hemRhVHlwZSc7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL01hemRhVHlwZS1JdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zdHlsZTppdGFsaWM7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonTWF6ZGFUeXBlJzsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTWF6ZGFUeXBlLU1lZGl1bS53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgZm9udC13ZWlnaHQ6Ym9sZGVyOyBmb250LXN0eWxlOm5vcm1hbDsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidNYXpkYVR5cGUnOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9NYXpkYVR5cGUtTWVkaXVtSXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyBmb250LXdlaWdodDpib2xkZXI7IGZvbnQtc3R5bGU6aXRhbGljOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J3Nob3dyb29tJzsgc3JjOiBsb2NhbCgnc2hvd3Jvb20nKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL3dlYmZvbnRzL3Nob3dyb29tLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2Evd2ViZm9udHMvc2hvd3Jvb20udHRmJykgZm9ybWF0KCd0cnVldHlwZScpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2Evd2ViZm9udHMvc2hvd3Jvb20ud29mZicpIGZvcm1hdCgnd29mZicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2Evd2ViZm9udHMvc2hvd3Jvb20uc3ZnJykgZm9ybWF0KCdzdmcnKTsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXN0eWxlOm5vcm1hbDsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidBdmVuaXInOyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9BdmVuaXJMVFN0ZC1MaWdodC53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0F2ZW5pckxUU3RkLUxpZ2h0LndvZmYnKSBmb3JtYXQoJ3dvZmYnKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0F2ZW5pckxUU3RkLUxpZ2h0Lm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidBdmVuaXInOyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9BdmVuaXJMVFN0ZC1MaWdodE9ibGlxdWUud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9BdmVuaXJMVFN0ZC1MaWdodE9ibGlxdWUud29mZicpIGZvcm1hdCgnd29mZicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQXZlbmlyTFRTdGQtTGlnaHRPYmxpcXVlLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidBdmVuaXInOyBmb250LXdlaWdodDpib2xkOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQXZlbmlyTFRTdGQtQmxhY2sud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9BdmVuaXJMVFN0ZC1CbGFjay53b2ZmMicpIGZvcm1hdCgnd29mZicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQXZlbmlyTFRTdGQtQmxhY2sub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0F2ZW5pcic7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9BdmVuaXJMVFN0ZC1CbGFja09ibGlxdWUud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9BdmVuaXJMVFN0ZC1CbGFja09ibGlxdWUud29mZicpIGZvcm1hdCgnd29mZicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQXZlbmlyTFRTdGQtQmxhY2tPYmxpcXVlLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidBdmVuaXJQcm8nOyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9BdmVuaXJOZXh0UHJvLW5vcm1hbC53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidBdmVuaXJQcm8nOyBmb250LXdlaWdodDpib2xkOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQXZlbmlyTmV4dFByby1ib2xkLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0F2ZW5pck5leHQnOyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9BdmVuaXJOZXh0TFRQcm8tUmVndWxhci53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidBdmVuaXJOZXh0JzsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0F2ZW5pck5leHRMVFByby1Cb2xkLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0F2ZW5pck5leHQnOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9BdmVuaXJOZXh0TFRQcm8tSXQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zdHlsZTppdGFsaWM7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQXZlbmlyTmV4dFJvdW5kZWQnOyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9BdmVuaXJOZXh0Um91bmRlZFN0ZC1SZWcud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQXZlbmlyTmV4dFJvdW5kZWQnOyBmb250LXdlaWdodDpib2xkOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQXZlbmlyTmV4dFJvdW5kZWRTdGQtQm9sZC53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidBdmVuaXJOZXh0Um91bmRlZCc7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0F2ZW5pck5leHRSb3VuZGVkU3RkLUJvbGRJdC53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zdHlsZTppdGFsaWM7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQXZlbmlyTmV4dFJvdW5kZWQnOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9BdmVuaXJOZXh0Um91bmRlZFN0ZC1JdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zdHlsZTppdGFsaWM7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQXBleE5ld0Jvb2snOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL2FwZXgtbmV3LWJvb2stcmVndWxhci50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyk7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zdHlsZTpub3JtYWw7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonTW9udHNlcnJhdCc7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL01vbnRzZXJyYXQtUmVndWxhci53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL21vbnRzZXJyYXQtcmVndWxhci13ZWJmb250LmVvdD8jaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9tb250c2VycmF0LXJlZ3VsYXItd2ViZm9udC53b2ZmJykgZm9ybWF0KCd3b2ZmJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9tb250c2VycmF0LXJlZ3VsYXItd2ViZm9udC50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9tb250c2VycmF0LXJlZ3VsYXItd2ViZm9udC5zdmcjbW9udHNlcnJhdHJlZ3VsYXInKSBmb3JtYXQoJ3N2ZycpOyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc3R5bGU6bm9ybWFsOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J01vbnRzZXJyYXQnOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Nb250c2VycmF0LUJvbGQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9tb250c2VycmF0LWJvbGQtd2ViZm9udC5lb3Q\/I2llZml4JykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvbW9udHNlcnJhdC1ib2xkLXdlYmZvbnQud29mZicpIGZvcm1hdCgnd29mZicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvbW9udHNlcnJhdC1ib2xkLXdlYmZvbnQudHRmJykgZm9ybWF0KCd0cnVldHlwZScpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvbW9udHNlcnJhdC1ib2xkLXdlYmZvbnQuc3ZnI21vbnRzZXJyYXRib2xkJykgZm9ybWF0KCdzdmcnKTsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zdHlsZTpub3JtYWw7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonTW9udHNlcnJhdCc7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL01vbnRzZXJyYXQtQm9sZEl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL21vbnRzZXJyYXQtYm9sZGl0YWxpYy13ZWJmb250LmVvdD8jaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9tb250c2VycmF0LWJvbGRpdGFsaWMtd2ViZm9udC53b2ZmJykgZm9ybWF0KCd3b2ZmJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9tb250c2VycmF0LWJvbGRpdGFsaWMtd2ViZm9udC50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9tb250c2VycmF0LWJvbGRpdGFsaWMtd2ViZm9udC5zdmcjbW9udHNlcnJhdGJvbGRfaXRhbGljJykgZm9ybWF0KCdzdmcnKTsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zdHlsZTppdGFsaWM7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonTW9udHNlcnJhdCc7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL01vbnRzZXJyYXQtSXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvbW9udHNlcnJhdC1yZWd1bGFyaXRhbGljLXdlYmZvbnQuZW90PyNpZWZpeCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL21vbnRzZXJyYXQtcmVndWxhcml0YWxpYy13ZWJmb250LndvZmYnKSBmb3JtYXQoJ3dvZmYnKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL21vbnRzZXJyYXQtcmVndWxhcml0YWxpYy13ZWJmb250LnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL21vbnRzZXJyYXQtcmVndWxhcml0YWxpYy13ZWJmb250LnN2ZyNtb250c2VycmF0aXRhbGljJykgZm9ybWF0KCdzdmcnKTsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXN0eWxlOml0YWxpYzsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidNb250c2VycmF0Jzsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTW9udHNlcnJhdC1NZWRpdW0ud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9tb250c2VycmF0LW1lZGl1bS13ZWJmb250LmVvdD8jaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9tb250c2VycmF0LW1lZGl1bS13ZWJmb250LndvZmYnKSBmb3JtYXQoJ3dvZmYnKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL21vbnRzZXJyYXQtbWVkaXVtLXdlYmZvbnQudHRmJykgZm9ybWF0KCd0cnVldHlwZScpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvbW9udHNlcnJhdC1tZWRpdW0td2ViZm9udC5zdmcjbW9udHNlcnJhdG1lZGl1bScpIGZvcm1hdCgnc3ZnJyk7IGZvbnQtd2VpZ2h0OmJvbGRlcjsgZm9udC1zdHlsZTpub3JtYWw7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonTW9udHNlcnJhdCc7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL01vbnRzZXJyYXQtTWVkaXVtSXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvbW9udHNlcnJhdC1tZWRpdW1pdGFsaWMtd2ViZm9udC5lb3Q\/I2llZml4JykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvbW9udHNlcnJhdC1tZWRpdW1pdGFsaWMtd2ViZm9udC53b2ZmJykgZm9ybWF0KCd3b2ZmJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9tb250c2VycmF0LW1lZGl1bWl0YWxpYy13ZWJmb250LnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL21vbnRzZXJyYXQtbWVkaXVtaXRhbGljLXdlYmZvbnQuc3ZnI21vbnRzZXJyYXRtZWRpdW1faXRhbGljJykgZm9ybWF0KCdzdmcnKTsgZm9udC13ZWlnaHQ6Ym9sZGVyOyBmb250LXN0eWxlOml0YWxpYzsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidNTUMnOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9NTUMtUmVndWxhci53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL01NQy1SZWd1bGFyLmVvdD8jaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9NTUMtUmVndWxhci53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zdHlsZTpub3JtYWw7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonTU1DJzsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTU1DLU1lZGl1bS53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL01NQy1NZWRpdW0uZW90PyNpZWZpeCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL01NQy1NZWRpdW0ud29mZicpIGZvcm1hdCgnd29mZicpOyBmb250LXdlaWdodDo1MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J01NQyc7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL01NQy1Cb2xkLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTU1DLUJvbGQuZW90PyNpZWZpeCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL01NQy1Cb2xkLndvZmYnKSBmb3JtYXQoJ3dvZmYnKTsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zdHlsZTpub3JtYWw7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonSHl1bmRhaVNhbnNIZWFkJzsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSHl1bmRhaVNhbnNIZWFkLVJlZ3VsYXIud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IeXVuZGFpU2Fuc0hlYWQtUmVndWxhci53b2ZmJykgZm9ybWF0KCd3b2ZmJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IeXVuZGFpU2Fuc0hlYWQtUmVndWxhci5lb3Q\/I2llZml4JykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSHl1bmRhaVNhbnNIZWFkLVJlZ3VsYXIudHRmJykgZm9ybWF0KCd0cnVldHlwZScpOyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc3R5bGU6bm9ybWFsOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0h5dW5kYWlTYW5zSGVhZCc7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0h5dW5kYWlTYW5zSGVhZC1NZWRpdW0ud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IeXVuZGFpU2Fuc0hlYWQtTWVkaXVtLndvZmYnKSBmb3JtYXQoJ3dvZmYnKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0h5dW5kYWlTYW5zSGVhZC1NZWRpdW0uZW90PyNpZWZpeCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0h5dW5kYWlTYW5zSGVhZC1NZWRpdW0udHRmJykgZm9ybWF0KCd0cnVldHlwZScpOyBmb250LXdlaWdodDo1MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0h5dW5kYWlTYW5zSGVhZCc7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0h5dW5kYWlTYW5zSGVhZC1Cb2xkLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSHl1bmRhaVNhbnNIZWFkLUJvbGQud29mZicpIGZvcm1hdCgnd29mZicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSHl1bmRhaVNhbnNIZWFkLUJvbGQuZW90PyNpZWZpeCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0h5dW5kYWlTYW5zSGVhZC1Cb2xkLnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKTsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zdHlsZTpub3JtYWw7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonSHl1bmRhaVNhbnNIZWFkJzsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSHl1bmRhaVNhbnNIZWFkLUxpZ2h0LndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSHl1bmRhaVNhbnNIZWFkLUxpZ2h0LndvZmYnKSBmb3JtYXQoJ3dvZmYnKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0h5dW5kYWlTYW5zSGVhZC1MaWdodC5lb3Q\/I2llZml4JykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSHl1bmRhaVNhbnNIZWFkLUxpZ2h0LnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKTsgZm9udC13ZWlnaHQ6bGlnaHRlcjsgZm9udC1zdHlsZTpub3JtYWw7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQk1XJzsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQk1XVHlwZU5leHQtTGlnaHQud29mZicpIGZvcm1hdCgnd29mZicpOyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc3R5bGU6bm9ybWFsOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0JNVyc7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0JNV1R5cGVOZXh0LUJvbGQud29mZicpIGZvcm1hdCgnd29mZicpOyBmb250LXdlaWdodDpib2xkOyBmb250LXN0eWxlOm5vcm1hbDsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidCTVdHbG9iYWxQcm8nOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9CTVdHbG9iYWxfUHJvX3JlZy53b2ZmJykgZm9ybWF0KCd3b2ZmMicpOyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc3R5bGU6bm9ybWFsOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0JNV0dsb2JhbFBybyc7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0JNV0dsb2JhbF9Qcm9fYm9sZC53b2ZmJykgZm9ybWF0KCd3b2ZmMicpOyBmb250LXdlaWdodDpib2xkOyBmb250LXN0eWxlOm5vcm1hbDsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidOYXRpb25hbCc7IGZvbnQtd2VpZ2h0OjEwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNpemUtYWRqdXN0OjExNiU7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL05hdGlvbmFsLVRoaW4ud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9OYXRpb25hbC1UaGluLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidOYXRpb25hbCc7IGZvbnQtd2VpZ2h0OjEwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNpemUtYWRqdXN0OjExNiU7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL05hdGlvbmFsLVRoaW5JdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9OYXRpb25hbC1UaGluSXRhbGljLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidOYXRpb25hbCc7IGZvbnQtd2VpZ2h0OjMwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNpemUtYWRqdXN0OjExNiU7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL05hdGlvbmFsLUxpZ2h0LndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTmF0aW9uYWwtTGlnaHQub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J05hdGlvbmFsJzsgZm9udC13ZWlnaHQ6MzAwOyBmb250LXN0eWxlOml0YWxpYzsgc2l6ZS1hZGp1c3Q6MTE2JTsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTmF0aW9uYWwtTGlnaHRJdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9OYXRpb25hbC1MaWdodEl0YWxpYy5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonTmF0aW9uYWwnOyBmb250LXdlaWdodDo0MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzaXplLWFkanVzdDoxMTYlOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9OYXRpb25hbC1SZWd1bGFyLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTmF0aW9uYWwtUmVndWxhci5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonTmF0aW9uYWwnOyBmb250LXdlaWdodDo0MDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzaXplLWFkanVzdDoxMTYlOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9OYXRpb25hbC1SZWd1bGFySXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTmF0aW9uYWwtUmVndWxhckl0YWxpYy5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonTmF0aW9uYWwnOyBmb250LXdlaWdodDo1MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzaXplLWFkanVzdDoxMTYlOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9OYXRpb25hbC1NZWRpdW0ud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9OYXRpb25hbC1NZWRpdW0ub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J05hdGlvbmFsJzsgZm9udC13ZWlnaHQ6NTAwOyBmb250LXN0eWxlOml0YWxpYzsgc2l6ZS1hZGp1c3Q6MTE2JTsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTmF0aW9uYWwtTWVkaXVtSXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTmF0aW9uYWwtTWVkaXVtSXRhbGljLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidOYXRpb25hbCc7IGZvbnQtd2VpZ2h0OjYwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNpemUtYWRqdXN0OjExNiU7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL05hdGlvbmFsLVNlbWlib2xkLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTmF0aW9uYWwtU2VtaWJvbGQub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J05hdGlvbmFsJzsgZm9udC13ZWlnaHQ6NjAwOyBmb250LXN0eWxlOml0YWxpYzsgc2l6ZS1hZGp1c3Q6MTE2JTsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTmF0aW9uYWwtU2VtaWJvbGRJdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9OYXRpb25hbC1TZW1pYm9sZEl0YWxpYy5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonTmF0aW9uYWwnOyBmb250LXdlaWdodDo3MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzaXplLWFkanVzdDoxMTYlOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9OYXRpb25hbC1Cb2xkLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTmF0aW9uYWwtQm9sZC5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonTmF0aW9uYWwnOyBmb250LXdlaWdodDo3MDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzaXplLWFkanVzdDoxMTYlOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9OYXRpb25hbC1Cb2xkSXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTmF0aW9uYWwtQm9sZEl0YWxpYy5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonTmF0aW9uYWwnOyBmb250LXdlaWdodDo4MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzaXplLWFkanVzdDoxMTYlOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9OYXRpb25hbC1FeHRyYWJvbGQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9OYXRpb25hbC1FeHRyYWJvbGQub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J05hdGlvbmFsJzsgZm9udC13ZWlnaHQ6ODAwOyBmb250LXN0eWxlOml0YWxpYzsgc2l6ZS1hZGp1c3Q6MTE2JTsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTmF0aW9uYWwtRXh0cmFib2xkSXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTmF0aW9uYWwtRXh0cmFib2xkSXRhbGljLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidOYXRpb25hbCc7IGZvbnQtd2VpZ2h0OjkwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNpemUtYWRqdXN0OjExNiU7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL05hdGlvbmFsLUJsYWNrLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTmF0aW9uYWwtQmxhY2sub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J05hdGlvbmFsJzsgZm9udC13ZWlnaHQ6OTAwOyBmb250LXN0eWxlOml0YWxpYzsgc2l6ZS1hZGp1c3Q6MTE2JTsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTmF0aW9uYWwtQmxhY2tJdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9OYXRpb25hbC1CbGFja0l0YWxpYy5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonTmF0aW9uYWxCb29rJzsgZm9udC13ZWlnaHQ6NDAwOyBmb250LXN0eWxlOm5vcm1hbDsgc2l6ZS1hZGp1c3Q6MTE2JTsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTmF0aW9uYWwtQm9vay53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL05hdGlvbmFsLUJvb2sub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J05hdGlvbmFsQm9vayc7IGZvbnQtd2VpZ2h0OjQwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNpemUtYWRqdXN0OjExNiU7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL05hdGlvbmFsLUJvb2tJdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9OYXRpb25hbC1Cb29rSXRhbGljLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidMYW5kUm92ZXInOyBmb250LXdlaWdodDpib2xkOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTGFuZFJvdmVyV2ViLUJvbGQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9MYW5kUm92ZXJXZWItQm9sZC50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonTGFuZFJvdmVyJzsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTGFuZFJvdmVyV2ViLUxpZ2h0LndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTGFuZFJvdmVyV2ViLUxpZ2h0LnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidOaXNzYW4nOyBmb250LXdlaWdodDpib2xkOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTmlzc2FuQnJhbmRCb2xkLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTmlzc2FuQnJhbmRCb2xkLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidOaXNzYW4nOyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9OaXNzYW5CcmFuZEl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL05pc3NhbkJyYW5kSXRhbGljLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidOaXNzYW4nOyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9OaXNzYW5CcmFuZFJlZ3VsYXIud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9OaXNzYW5CcmFuZFJlZ3VsYXIub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0phZ3Vhcic7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0phZ3Vhci1SZWd1bGFyLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0phZ3Vhcic7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9KYWd1YXItQm9sZC53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidKYWd1YXJNb2Rlcm4nOyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9KYWd1YXJNb2Rlcm4tUmVndWxhci53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidKYWd1YXJNb2Rlcm4nOyBmb250LXdlaWdodDpib2xkOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSmFndWFyTW9kZXJuLUJvbGQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonSmFndWFyR290aGFtJzsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSmFndWFyR290aGFtLUxpZ2h0LndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0phZ3VhckdvdGhhbSc7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9KYWd1YXJHb3RoYW0tQm9sZC53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidHb3RoYW0nOyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9HT1RIQU0tTGlnaHQud29mZicpIGZvcm1hdCgnd29mZicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvR09USEFNLUxpZ2h0Lm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidHb3RoYW0nOyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9HT1RIQU0tTGlnaHRJdGFsaWMud29mZicpIGZvcm1hdCgnd29mZicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvR09USEFNLUxpZ2h0SXRhbGljLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidHb3RoYW0nOyBmb250LXdlaWdodDpib2xkOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvR09USEFNLU1lZGl1bS53b2ZmJykgZm9ybWF0KCd3b2ZmJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9HT1RIQU0tTWVkaXVtLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidHb3RoYW0nOyBmb250LXdlaWdodDpib2xkOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvR09USEFNLU1lZGl1bUl0YWxpYy53b2ZmJykgZm9ybWF0KCd3b2ZmJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9HT1RIQU0tTWVkaXVtSXRhbGljLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidJbmZpbml0aSc7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0luZmluaXRpQnJhbmQtTGlnaHQud29mZicpIGZvcm1hdCgnd29mZicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0luZmluaXRpJzsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0luZmluaXRpQnJhbmQtQm9sZC53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonU2lnbmF0dXJlJzsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvS2lhU2lnbmF0dXJlUmVndWxhci53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0tpYVNpZ25hdHVyZVJlZ3VsYXIud29mZicpIGZvcm1hdCgnd29mZicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1NpZ25hdHVyZSc7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9LaWFTaWduYXR1cmVCb2xkLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvS2lhU2lnbmF0dXJlQm9sZC53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonU2lnbmF0dXJlTGlnaHQnOyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9LaWFTaWduYXR1cmVMaWdodC53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0tpYVNpZ25hdHVyZUxpZ2h0LndvZmYnKSBmb3JtYXQoJ3dvZmYnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidTaWduYXR1cmVMaWdodCc7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9LaWFTaWduYXR1cmVCb2xkLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvS2lhU2lnbmF0dXJlQm9sZC53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonVG95b3RhVHlwZSc7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1RveW90YVR5cGUtUmVndWxhci53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1RveW90YVR5cGUtUmVndWxhci53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonVG95b3RhVHlwZSc7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1RveW90YVR5cGUtUmVndWxhckl0LndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvVG95b3RhVHlwZS1SZWd1bGFySXQud29mZicpIGZvcm1hdCgnd29mZicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1RveW90YVR5cGUnOyBmb250LXdlaWdodDpib2xkOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvVG95b3RhVHlwZS1Cb2xkLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvVG95b3RhVHlwZS1Cb2xkLndvZmYnKSBmb3JtYXQoJ3dvZmYnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidUb3lvdGFUeXBlJzsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1RveW90YVR5cGUtQm9sZEl0LndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvVG95b3RhVHlwZS1Cb2xkSXQud29mZicpIGZvcm1hdCgnd29mZicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J092ZXJwYXNzJzsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvT3ZlcnBhc3MtUmVndWxhci53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidPdmVycGFzcyc7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL092ZXJwYXNzLUl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidPdmVycGFzcyc7IGZvbnQtd2VpZ2h0OjIwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL092ZXJwYXNzLVRoaW4ud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonT3ZlcnBhc3MnOyBmb250LXdlaWdodDoyMDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9PdmVycGFzcy1UaGluSXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J092ZXJwYXNzJzsgZm9udC13ZWlnaHQ6MzAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvT3ZlcnBhc3MtTGlnaHQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonT3ZlcnBhc3MnOyBmb250LXdlaWdodDozMDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9PdmVycGFzcy1MaWdodEl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidPdmVycGFzcyc7IGZvbnQtd2VpZ2h0OjUwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL092ZXJwYXNzLU1lZGl1bS53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidPdmVycGFzcyc7IGZvbnQtd2VpZ2h0OjUwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL092ZXJwYXNzLU1lZGl1bUl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidPdmVycGFzcyc7IGZvbnQtd2VpZ2h0OjYwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL092ZXJwYXNzLVNlbWlCb2xkLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J092ZXJwYXNzJzsgZm9udC13ZWlnaHQ6NjAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvT3ZlcnBhc3MtU2VtaUJvbGRJdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonT3ZlcnBhc3MnOyBmb250LXdlaWdodDpib2xkOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvT3ZlcnBhc3MtQm9sZC53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidPdmVycGFzcyc7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9PdmVycGFzcy1Cb2xkSXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1RpdGlsbGl1bVdlYic7IGZvbnQtd2VpZ2h0OjIwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvVGl0aWxsaXVtV2ViLUV4dHJhTGlnaHQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonVGl0aWxsaXVtV2ViJzsgZm9udC13ZWlnaHQ6MjAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9UaXRpbGxpdW1XZWItRXh0cmFMaWdodEl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidUaXRpbGxpdW1XZWInOyBmb250LXdlaWdodDozMDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1RpdGlsbGl1bVdlYi1MaWdodC53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidUaXRpbGxpdW1XZWInOyBmb250LXdlaWdodDozMDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1RpdGlsbGl1bVdlYi1MaWdodEl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidUaXRpbGxpdW1XZWInOyBmb250LXdlaWdodDo0MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1RpdGlsbGl1bVdlYi1SZWd1bGFyLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1RpdGlsbGl1bVdlYic7IGZvbnQtd2VpZ2h0OjQwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvVGl0aWxsaXVtV2ViLUl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidUaXRpbGxpdW1XZWInOyBmb250LXdlaWdodDo2MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1RpdGlsbGl1bVdlYi1TZW1pQm9sZC53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidUaXRpbGxpdW1XZWInOyBmb250LXdlaWdodDo2MDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1RpdGlsbGl1bVdlYi1TZW1pQm9sZEl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidUaXRpbGxpdW1XZWInOyBmb250LXdlaWdodDo3MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1RpdGlsbGl1bVdlYi1Cb2xkLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1RpdGlsbGl1bVdlYic7IGZvbnQtd2VpZ2h0OjcwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvVGl0aWxsaXVtV2ViLUJvbGRJdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonVGl0aWxsaXVtV2ViJzsgZm9udC13ZWlnaHQ6OTAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9UaXRpbGxpdW1XZWItQmxhY2sud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonUmFsZXdheSc7IGZvbnQtd2VpZ2h0OjEwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvUmFsZXdheS1UaGluLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1JhbGV3YXknOyBmb250LXdlaWdodDoxMDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1JhbGV3YXktVGhpbkl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidSYWxld2F5JzsgZm9udC13ZWlnaHQ6MjAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9SYWxld2F5LUV4dHJhTGlnaHQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonUmFsZXdheSc7IGZvbnQtd2VpZ2h0OjIwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvUmFsZXdheS1FeHRyYUxpZ2h0SXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1JhbGV3YXknOyBmb250LXdlaWdodDozMDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1JhbGV3YXktTGlnaHQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonUmFsZXdheSc7IGZvbnQtd2VpZ2h0OjMwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvUmFsZXdheS1MaWdodEl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidSYWxld2F5JzsgZm9udC13ZWlnaHQ6NDAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9SYWxld2F5LVJlZ3VsYXIud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonUmFsZXdheSc7IGZvbnQtd2VpZ2h0OjQwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvUmFsZXdheS1JdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonUmFsZXdheSc7IGZvbnQtd2VpZ2h0OjUwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvUmFsZXdheS1NZWRpdW0ud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonUmFsZXdheSc7IGZvbnQtd2VpZ2h0OjUwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvUmFsZXdheS1NZWRpdW1JdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonUmFsZXdheSc7IGZvbnQtd2VpZ2h0OjYwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvUmFsZXdheS1TZW1pQm9sZC53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidSYWxld2F5JzsgZm9udC13ZWlnaHQ6NjAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9SYWxld2F5LVNlbWlCb2xkSXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1JhbGV3YXknOyBmb250LXdlaWdodDo3MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1JhbGV3YXktQm9sZC53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidSYWxld2F5JzsgZm9udC13ZWlnaHQ6NzAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9SYWxld2F5LUJvbGRJdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonUmFsZXdheSc7IGZvbnQtd2VpZ2h0OjgwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvUmFsZXdheS1FeHRyYUJvbGQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonUmFsZXdheSc7IGZvbnQtd2VpZ2h0OjgwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvUmFsZXdheS1FeHRyYUJvbGRJdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonUmFsZXdheSc7IGZvbnQtd2VpZ2h0OjkwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvUmFsZXdheS1CbGFjay53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidSYWxld2F5JzsgZm9udC13ZWlnaHQ6OTAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9SYWxld2F5LUJsYWNrSXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1BvcHBpbnMnOyBmb250LXdlaWdodDoxMDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1BvcHBpbnMtVGhpbi53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidQb3BwaW5zJzsgZm9udC13ZWlnaHQ6MTAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Qb3BwaW5zLVRoaW5JdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonUG9wcGlucyc7IGZvbnQtd2VpZ2h0OjIwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvUG9wcGlucy1FeHRyYUxpZ2h0LndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1BvcHBpbnMnOyBmb250LXdlaWdodDoyMDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1BvcHBpbnMtRXh0cmFMaWdodEl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidQb3BwaW5zJzsgZm9udC13ZWlnaHQ6MzAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Qb3BwaW5zLUxpZ2h0LndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1BvcHBpbnMnOyBmb250LXdlaWdodDozMDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1BvcHBpbnMtTGlnaHRJdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonUG9wcGlucyc7IGZvbnQtd2VpZ2h0OjQwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvUG9wcGlucy1SZWd1bGFyLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1BvcHBpbnMnOyBmb250LXdlaWdodDo0MDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1BvcHBpbnMtSXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1BvcHBpbnMnOyBmb250LXdlaWdodDo1MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1BvcHBpbnMtTWVkaXVtLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1BvcHBpbnMnOyBmb250LXdlaWdodDo1MDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1BvcHBpbnMtTWVkaXVtSXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1BvcHBpbnMnOyBmb250LXdlaWdodDo2MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1BvcHBpbnMtU2VtaUJvbGQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonUG9wcGlucyc7IGZvbnQtd2VpZ2h0OjYwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvUG9wcGlucy1TZW1pQm9sZEl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidQb3BwaW5zJzsgZm9udC13ZWlnaHQ6NzAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Qb3BwaW5zLUJvbGQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonUG9wcGlucyc7IGZvbnQtd2VpZ2h0OjcwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvUG9wcGlucy1Cb2xkSXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1BvcHBpbnMnOyBmb250LXdlaWdodDo4MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1BvcHBpbnMtRXh0cmFCb2xkLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1BvcHBpbnMnOyBmb250LXdlaWdodDo4MDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1BvcHBpbnMtRXh0cmFCb2xkSXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1BvcHBpbnMnOyBmb250LXdlaWdodDo5MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1BvcHBpbnMtQmxhY2sud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonUG9wcGlucyc7IGZvbnQtd2VpZ2h0OjkwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvUG9wcGlucy1CbGFja0l0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidPcGVuU2Fucyc7IGZvbnQtd2VpZ2h0OjMwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvT3BlblNhbnMtTGlnaHQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonT3BlblNhbnMnOyBmb250LXdlaWdodDozMDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL09wZW5TYW5zLUxpZ2h0SXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J09wZW5TYW5zJzsgZm9udC13ZWlnaHQ6NDAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9PcGVuU2Fucy1SZWd1bGFyLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J09wZW5TYW5zJzsgZm9udC13ZWlnaHQ6NDAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9PcGVuU2Fucy1JdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonT3BlblNhbnMnOyBmb250LXdlaWdodDo1MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL09wZW5TYW5zLU1lZGl1bS53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidPcGVuU2Fucyc7IGZvbnQtd2VpZ2h0OjUwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvT3BlblNhbnMtTWVkaXVtSXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J09wZW5TYW5zJzsgZm9udC13ZWlnaHQ6NjAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9PcGVuU2Fucy1TZW1pQm9sZC53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidPcGVuU2Fucyc7IGZvbnQtd2VpZ2h0OjYwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvT3BlblNhbnMtU2VtaUJvbGRJdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonT3BlblNhbnMnOyBmb250LXdlaWdodDo3MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL09wZW5TYW5zLUJvbGQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonT3BlblNhbnMnOyBmb250LXdlaWdodDo3MDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL09wZW5TYW5zLUJvbGRJdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonT3BlblNhbnMnOyBmb250LXdlaWdodDo4MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL09wZW5TYW5zLUV4dHJhQm9sZC53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidPcGVuU2Fucyc7IGZvbnQtd2VpZ2h0OjgwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvT3BlblNhbnMtRXh0cmFCb2xkSXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0Jhcmxvd0NvbmRlbnNlZCc7IGZvbnQtd2VpZ2h0OjEwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQmFybG93Q29uZGVuc2VkLVRoaW4ud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQmFybG93Q29uZGVuc2VkJzsgZm9udC13ZWlnaHQ6MTAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9CYXJsb3dDb25kZW5zZWQtVGhpbkl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidCYXJsb3dDb25kZW5zZWQnOyBmb250LXdlaWdodDoyMDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0Jhcmxvd0NvbmRlbnNlZC1FeHRyYUxpZ2h0LndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0Jhcmxvd0NvbmRlbnNlZCc7IGZvbnQtd2VpZ2h0OjIwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQmFybG93Q29uZGVuc2VkLUV4dHJhTGlnaHRJdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQmFybG93Q29uZGVuc2VkJzsgZm9udC13ZWlnaHQ6MzAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9CYXJsb3dDb25kZW5zZWQtTGlnaHQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQmFybG93Q29uZGVuc2VkJzsgZm9udC13ZWlnaHQ6MzAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9CYXJsb3dDb25kZW5zZWQtTGlnaHRJdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQmFybG93Q29uZGVuc2VkJzsgZm9udC13ZWlnaHQ6NDAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9CYXJsb3dDb25kZW5zZWQtUmVndWxhci53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidCYXJsb3dDb25kZW5zZWQnOyBmb250LXdlaWdodDo0MDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0Jhcmxvd0NvbmRlbnNlZC1JdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQmFybG93Q29uZGVuc2VkJzsgZm9udC13ZWlnaHQ6NTAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9CYXJsb3dDb25kZW5zZWQtTWVkaXVtLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0Jhcmxvd0NvbmRlbnNlZCc7IGZvbnQtd2VpZ2h0OjUwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQmFybG93Q29uZGVuc2VkLU1lZGl1bUl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidCYXJsb3dDb25kZW5zZWQnOyBmb250LXdlaWdodDo2MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0Jhcmxvd0NvbmRlbnNlZC1TZW1pQm9sZC53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidCYXJsb3dDb25kZW5zZWQnOyBmb250LXdlaWdodDo2MDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0Jhcmxvd0NvbmRlbnNlZC1TZW1pQm9sZEl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidCYXJsb3dDb25kZW5zZWQnOyBmb250LXdlaWdodDo3MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0Jhcmxvd0NvbmRlbnNlZC1Cb2xkLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0Jhcmxvd0NvbmRlbnNlZCc7IGZvbnQtd2VpZ2h0OjcwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQmFybG93Q29uZGVuc2VkLUJvbGRJdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQmFybG93Q29uZGVuc2VkJzsgZm9udC13ZWlnaHQ6ODAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9CYXJsb3dDb25kZW5zZWQtRXh0cmFCb2xkLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0Jhcmxvd0NvbmRlbnNlZCc7IGZvbnQtd2VpZ2h0OjgwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQmFybG93Q29uZGVuc2VkLUV4dHJhQm9sZEl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidCYXJsb3dDb25kZW5zZWQnOyBmb250LXdlaWdodDo5MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0Jhcmxvd0NvbmRlbnNlZC1CbGFjay53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidCYXJsb3dDb25kZW5zZWQnOyBmb250LXdlaWdodDo5MDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0Jhcmxvd0NvbmRlbnNlZC1CbGFja0l0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidCYXJsb3cnOyBmb250LXdlaWdodDoxMDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0Jhcmxvdy1UaGluLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0Jhcmxvdyc7IGZvbnQtd2VpZ2h0OjEwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQmFybG93LVRoaW5JdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQmFybG93JzsgZm9udC13ZWlnaHQ6MjAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9CYXJsb3ctRXh0cmFMaWdodC53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidCYXJsb3cnOyBmb250LXdlaWdodDoyMDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0Jhcmxvdy1FeHRyYUxpZ2h0SXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0Jhcmxvdyc7IGZvbnQtd2VpZ2h0OjMwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQmFybG93LUxpZ2h0LndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0Jhcmxvdyc7IGZvbnQtd2VpZ2h0OjMwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQmFybG93LUxpZ2h0SXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0Jhcmxvdyc7IGZvbnQtd2VpZ2h0OjQwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQmFybG93LVJlZ3VsYXIud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQmFybG93JzsgZm9udC13ZWlnaHQ6NDAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9CYXJsb3ctSXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0Jhcmxvdyc7IGZvbnQtd2VpZ2h0OjUwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQmFybG93LU1lZGl1bS53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidCYXJsb3cnOyBmb250LXdlaWdodDo1MDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0Jhcmxvdy1NZWRpdW1JdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQmFybG93JzsgZm9udC13ZWlnaHQ6NjAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9CYXJsb3ctU2VtaUJvbGQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQmFybG93JzsgZm9udC13ZWlnaHQ6NjAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9CYXJsb3ctU2VtaUJvbGRJdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQmFybG93JzsgZm9udC13ZWlnaHQ6NzAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9CYXJsb3ctQm9sZC53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidCYXJsb3cnOyBmb250LXdlaWdodDo3MDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0Jhcmxvdy1Cb2xkSXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0Jhcmxvdyc7IGZvbnQtd2VpZ2h0OjgwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQmFybG93LUV4dHJhQm9sZC53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidCYXJsb3cnOyBmb250LXdlaWdodDo4MDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0Jhcmxvdy1FeHRyYUJvbGRJdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQmFybG93JzsgZm9udC13ZWlnaHQ6OTAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9CYXJsb3ctQmxhY2sud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQmFybG93JzsgZm9udC13ZWlnaHQ6OTAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9CYXJsb3ctQmxhY2tJdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQnVpY2tGdXR1cmFORCc7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL2J1aWZ1bGJrXy13ZWJmb250LndvZmYnKSBmb3JtYXQoJ3dvZmYnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidCdWlja0Z1dHVyYU5EJzsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvYnVpZnVsYmtpLXdlYmZvbnQud29mZicpIGZvcm1hdCgnd29mZicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0J1aWNrRnV0dXJhTkQnOyBmb250LXdlaWdodDpsaWdodGVyOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9idWlmdWxpZy13ZWJmb250LndvZmYnKSBmb3JtYXQoJ3dvZmYnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidCdWlja0Z1dHVyYU5EJzsgZm9udC13ZWlnaHQ6bGlnaHRlcjsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvYnVpZnVsaXQtd2ViZm9udC53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQnVpY2tGdXR1cmFORCc7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvYnVpZnVtZGktd2ViZm9udC53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQnVpY2tGdXR1cmFORCc7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvYnVpZnVsbWVkLXdlYmZvbnQud29mZicpIGZvcm1hdCgnd29mZicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0dNR2xvYmFsU2Fucyc7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvR01HbG9iYWxTYW5zLTVfUGxhaW4ud29mZicpIGZvcm1hdCgnd29mZicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0dNR2xvYmFsU2Fucyc7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvR01HbG9iYWxTYW5zLTVpUGxhaW5JdGFsaWMud29mZicpIGZvcm1hdCgnd29mZicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0dNR2xvYmFsU2Fucyc7IGZvbnQtd2VpZ2h0OmxpZ2h0ZXI7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0dNR2xvYmFsU2Fucy0zX0xpZ2h0LndvZmYnKSBmb3JtYXQoJ3dvZmYnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidHTUdsb2JhbFNhbnMnOyBmb250LXdlaWdodDpsaWdodGVyOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9HTUdsb2JhbFNhbnMtM2lMaWdodEl0YWxpYy53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonR01HbG9iYWxTYW5zJzsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvR01HbG9iYWxTYW5zLTdfQm9sZC53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonR01HbG9iYWxTYW5zJzsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvR01HbG9iYWxTYW5zLTdpQm9sZEl0YWxpYy53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonR01HbG9iYWxTYW5zQ2QnOyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0dNR2xvYmFsU2Fuc0NkLTVfUGxhaW4ud29mZicpIGZvcm1hdCgnd29mZicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0dNR2xvYmFsU2Fuc0NkJzsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9HTUdsb2JhbFNhbnNDZC01aVBsYWluSXRhbGljLndvZmYnKSBmb3JtYXQoJ3dvZmYnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidHTUdsb2JhbFNhbnNDZCc7IGZvbnQtd2VpZ2h0OmxpZ2h0ZXI7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0dNR2xvYmFsU2Fuc0NkLTNfTGlnaHQud29mZicpIGZvcm1hdCgnd29mZicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0dNR2xvYmFsU2Fuc0NkJzsgZm9udC13ZWlnaHQ6bGlnaHRlcjsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvR01HbG9iYWxTYW5zQ2QtM2lMaWdodEl0YWxpYy53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonR01HbG9iYWxTYW5zQ2QnOyBmb250LXdlaWdodDpib2xkOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9HTUdsb2JhbFNhbnNDZC03X0JvbGQud29mZicpIGZvcm1hdCgnd29mZicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0dNR2xvYmFsU2Fuc0NkJzsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvR01HbG9iYWxTYW5zQ2QtN2lCb2xkSXRhbGljLndvZmYnKSBmb3JtYXQoJ3dvZmYnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidNdWxpJzsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9NdWxpLVJlZ3VsYXIud29mZicpIGZvcm1hdCgnd29mZicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J011bGknOyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL011bGktSXRhbGljLndvZmYnKSBmb3JtYXQoJ3dvZmYnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidNdWxpJzsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTXVsaS1Cb2xkLndvZmYnKSBmb3JtYXQoJ3dvZmYnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidNdWxpJzsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTXVsaS1Cb2xkSXRhbGljLndvZmYnKSBmb3JtYXQoJ3dvZmYnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidNdWxpJzsgZm9udC13ZWlnaHQ6bGlnaHRlcjsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTXVsaS1MaWdodC53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonTXVsaSc7IGZvbnQtd2VpZ2h0OmxpZ2h0ZXI7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL011bGktTGlnaHRJdGFsaWMud29mZicpIGZvcm1hdCgnd29mZicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1N0cmF0dW1HTUMnOyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc3R5bGU6bm9ybWFsOyBzaXplLWFkanVzdDoxMjAlOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1N0cmF0dW1HTUMtUmVndWxhci53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonU3RyYXR1bUdNQyc7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc3R5bGU6bm9ybWFsOyBzaXplLWFkanVzdDoxMjAlOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1N0cmF0dW1HTUMtQm9sZC53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonU3RyYXR1bUdNQyc7IGZvbnQtd2VpZ2h0OjEwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNpemUtYWRqdXN0OjEyMCU7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvU3RyYXR1bUdNQy1UaGluLndvZmYnKSBmb3JtYXQoJ3dvZmYnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidTdHJhdHVtR01DJzsgZm9udC13ZWlnaHQ6MjAwOyBmb250LXN0eWxlOm5vcm1hbDsgc2l6ZS1hZGp1c3Q6MTIwJTsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9TdHJhdHVtR01DLUxpZ2h0LndvZmYnKSBmb3JtYXQoJ3dvZmYnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidTdHJhdHVtR01DJzsgZm9udC13ZWlnaHQ6NTAwOyBmb250LXN0eWxlOm5vcm1hbDsgc2l6ZS1hZGp1c3Q6MTIwJTsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9TdHJhdHVtR01DLU1lZGl1bS53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonU3RyYXR1bUdNQyc7IGZvbnQtd2VpZ2h0OjkwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNpemUtYWRqdXN0OjEyMCU7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvU3RyYXR1bUdNQy1CbGFjay53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonTG91aXMnOyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0xvdWlzR2xvYmFsMi1SZWcud29mZicpIGZvcm1hdCgnd29mZicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0xvdWlzJzsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTG91aXNHbG9iYWwyLUJvbGQud29mZicpIGZvcm1hdCgnd29mZicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0xvdWlzJzsgZm9udC13ZWlnaHQ6OTAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Mb3Vpc0dsb2JhbDItSGVhdnkud29mZicpIGZvcm1hdCgnd29mZicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0NhZGlsbGFjR290aGljJzsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9DYWRpbGxhY0dvdGhpYy1SZWd1bGFyLndvZmYnKSBmb3JtYXQoJ3dvZmYnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidDYWRpbGxhY0dvdGhpYyc7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0NhZGlsbGFjR290aGljLUJvbGQud29mZicpIGZvcm1hdCgnd29mZicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0NhZGlsbGFjR290aGljJzsgZm9udC13ZWlnaHQ6NTAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9DYWRpbGxhY0dvdGhpYy1NZWRpdW0ud29mZicpIGZvcm1hdCgnd29mZicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0NhZGlsbGFjR290aGljV2lkZSc7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQ2FkaWxsYWNHb3RoaWMtV2lkZVJlZ3VsYXIud29mZicpIGZvcm1hdCgnd29mZicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0NhZGlsbGFjR290aGljV2lkZSc7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0NhZGlsbGFjR290aGljLVdpZGVCb2xkLndvZmYnKSBmb3JtYXQoJ3dvZmYnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidDYWRpbGxhY0dvdGhpY1dpZGUnOyBmb250LXdlaWdodDo1MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0NhZGlsbGFjR290aGljLVdpZGVNZWRpdW0ud29mZicpIGZvcm1hdCgnd29mZicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0NhZGlsbGFjR290aGljTmFycm93JzsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9DYWRpbGxhY0dvdGhpYy1OYXJyb3dSZWd1bGFyLndvZmYnKSBmb3JtYXQoJ3dvZmYnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidDYWRpbGxhY0dvdGhpY05hcnJvdyc7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0NhZGlsbGFjR290aGljLU5hcnJvd0JvbGQud29mZicpIGZvcm1hdCgnd29mZicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0NhZGlsbGFjR290aGljTmFycm93JzsgZm9udC13ZWlnaHQ6NTAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9DYWRpbGxhY0dvdGhpYy1OYXJyb3dNZWRpdW0ud29mZicpIGZvcm1hdCgnd29mZicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J01pbmlTZXJpZic7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTUlOSVNlcmlmLVJlZ3VsYXIud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IHNpemUtYWRqdXN0OjEyMCU7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonTWluaVNlcmlmJzsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9NSU5JU2VyaWYtSXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyBzaXplLWFkanVzdDoxMjAlOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J01pbmlTZXJpZic7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL01JTklTZXJpZi1Cb2xkLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyBzaXplLWFkanVzdDoxMjAlOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J01pbmlTZXJpZic7IGZvbnQtd2VpZ2h0OjkwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTUlOSVNlcmlmLUJsYWNrLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyBzaXplLWFkanVzdDoxMjAlOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J05vYmVsJzsgZm9udC13ZWlnaHQ6MzAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Ob2JlbExpZ2h0LndvZmYnKSBmb3JtYXQoJ3dvZmYnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidOb2JlbCc7IGZvbnQtd2VpZ2h0OjQwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTm9iZWxSZWd1bGFyLndvZmYnKSBmb3JtYXQoJ3dvZmYnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidOb2JlbCc7IGZvbnQtd2VpZ2h0OjcwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTm9iZWxCb2xkLndvZmYnKSBmb3JtYXQoJ3dvZmYnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidOb2JlbEJvb2snOyBmb250LXdlaWdodDo0MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL05vYmVsQm9vay53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQW5rbyc7IGZvbnQtd2VpZ2h0OjQwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQW5rby1SZWd1bGFyLndvZmYnKSBmb3JtYXQoJ3dvZmYnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidBbmtvJzsgZm9udC13ZWlnaHQ6NDAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9BbmtvLVJlZ3VsYXJJdGFsaWMud29mZicpIGZvcm1hdCgnd29mZicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0Fua28nOyBmb250LXdlaWdodDo1MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0Fua28tTWVkaXVtLndvZmYnKSBmb3JtYXQoJ3dvZmYnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidBbmtvJzsgZm9udC13ZWlnaHQ6NTAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9BbmtvLU1lZGl1bUl0YWxpYy53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQW5rbyc7IGZvbnQtd2VpZ2h0OjYwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQW5rby1TZW1pQm9sZC53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQW5rbyc7IGZvbnQtd2VpZ2h0OjYwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQW5rby1TZW1pQm9sZEl0YWxpYy53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQW5rbyc7IGZvbnQtd2VpZ2h0OjcwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQW5rby1Cb2xkLndvZmYnKSBmb3JtYXQoJ3dvZmYnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidBbmtvJzsgZm9udC13ZWlnaHQ6NzAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9BbmtvLUJvbGRJdGFsaWMud29mZicpIGZvcm1hdCgnd29mZicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0V2ZXJldHQnOyBmb250LXdlaWdodDoxMDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0V2ZXJldHQtVGhpbi13ZWIud29mZicpIGZvcm1hdCgnd29mZicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvRXZlcmV0dC1UaGluLXdlYi53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidFdmVyZXR0JzsgZm9udC13ZWlnaHQ6MzAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9FdmVyZXR0LUxpZ2h0LXdlYi53b2ZmJykgZm9ybWF0KCd3b2ZmJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9FdmVyZXR0LWxpZ2h0LXdlYi53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidFdmVyZXR0JzsgZm9udC13ZWlnaHQ6NDAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9FdmVyZXR0LVJlZ3VsYXItd2ViLndvZmYnKSBmb3JtYXQoJ3dvZmYnKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0V2ZXJldHQtUmVndWxhci13ZWIud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonRXZlcmV0dCc7IGZvbnQtd2VpZ2h0OjUwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvRXZlcmV0dC1NZWRpdW0td2ViLndvZmYnKSBmb3JtYXQoJ3dvZmYnKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0V2ZXJldHQtTWVkaXVtLXdlYi53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidFdmVyZXR0JzsgZm9udC13ZWlnaHQ6NzAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9FdmVyZXR0LUJvbGQtd2ViLndvZmYnKSBmb3JtYXQoJ3dvZmYnKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0V2ZXJldHQtQm9sZC13ZWIud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonRXZlcmV0dE1vbm8nOyBmb250LXdlaWdodDo0MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0V2ZXJldHRNb25vLVJlZ3VsYXItd2ViLndvZmYnKSBmb3JtYXQoJ3dvZmYnKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0V2ZXJldHRNb25vLVJlZ3VsYXItd2ViLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0hlbHZldGljYU5ldWVMVCc7IGZvbnQtd2VpZ2h0OjEwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULVRoaW4ud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtVGhpbi5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonSGVsdmV0aWNhTmV1ZUxUJzsgZm9udC13ZWlnaHQ6MTAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtVGhpbi1JdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtVGhpbi1JdGFsaWMub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0hlbHZldGljYU5ldWVMVCc7IGZvbnQtd2VpZ2h0OjIwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULVVsdHJhTGlnaHQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtVWx0cmFMaWdodC5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonSGVsdmV0aWNhTmV1ZUxUJzsgZm9udC13ZWlnaHQ6MjAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtVWx0cmFMaWdodC1JdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtVWx0cmFMaWdodC1JdGFsaWMub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0hlbHZldGljYU5ldWVMVCc7IGZvbnQtd2VpZ2h0OjMwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUxpZ2h0LndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUxpZ2h0Lm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidIZWx2ZXRpY2FOZXVlTFQnOyBmb250LXdlaWdodDozMDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1MaWdodC1JdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtTGlnaHQtSXRhbGljLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidIZWx2ZXRpY2FOZXVlTFQnOyBmb250LXdlaWdodDo0MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1SZWd1bGFyLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULVJlZ3VsYXIub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0hlbHZldGljYU5ldWVMVCc7IGZvbnQtd2VpZ2h0OjQwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULVJlZ3VsYXItSXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULVJlZ3VsYXItSXRhbGljLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidIZWx2ZXRpY2FOZXVlTFQnOyBmb250LXdlaWdodDo1MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1NZWRpdW0ud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtTWVkaXVtLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidIZWx2ZXRpY2FOZXVlTFQnOyBmb250LXdlaWdodDo1MDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1NZWRpdW0tSXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULU1lZGl1bS1JdGFsaWMub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0hlbHZldGljYU5ldWVMVCc7IGZvbnQtd2VpZ2h0OjcwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUJvbGQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtQm9sZC5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonSGVsdmV0aWNhTmV1ZUxUJzsgZm9udC13ZWlnaHQ6NzAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtQm9sZC1JdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtQm9sZC1JdGFsaWMub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0hlbHZldGljYU5ldWVMVCc7IGZvbnQtd2VpZ2h0OjgwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUhlYXZ5LndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUhlYXZ5Lm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidIZWx2ZXRpY2FOZXVlTFQnOyBmb250LXdlaWdodDo4MDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1IZWF2eS1JdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtSGVhdnktSXRhbGljLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidIZWx2ZXRpY2FOZXVlTFQnOyBmb250LXdlaWdodDo5MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1CbGFjay53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1CbGFjay5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonSGVsdmV0aWNhTmV1ZUxUJzsgZm9udC13ZWlnaHQ6OTAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtQmxhY2stSXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUJsYWNrLUl0YWxpYy5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonSGVsdmV0aWNhTmV1ZUxULUNvbmRlbnNlZCc7IGZvbnQtd2VpZ2h0OjEwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUNvbmRlbnNlZC1UaGluLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUNvbmRlbnNlZC1UaGluLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidIZWx2ZXRpY2FOZXVlTFQtQ29uZGVuc2VkJzsgZm9udC13ZWlnaHQ6MTAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtQ29uZGVuc2VkLVRoaW4tT2JsaXF1ZS53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1Db25kZW5zZWQtVGhpbi1PYmxpcXVlLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidIZWx2ZXRpY2FOZXVlTFQtQ29uZGVuc2VkJzsgZm9udC13ZWlnaHQ6MjAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtQ29uZGVuc2VkLVVsdHJhTGlnaHQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtQ29uZGVuc2VkLVVsdHJhTGlnaHQub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0hlbHZldGljYU5ldWVMVC1Db25kZW5zZWQnOyBmb250LXdlaWdodDoyMDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1Db25kZW5zZWQtVWx0cmFMaWdodC1PYmxpcXVlLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUNvbmRlbnNlZC1VbHRyYUxpZ2h0LU9ibGlxdWUub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0hlbHZldGljYU5ldWVMVC1Db25kZW5zZWQnOyBmb250LXdlaWdodDozMDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1Db25kZW5zZWQtTGlnaHQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtQ29uZGVuc2VkLUxpZ2h0Lm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidIZWx2ZXRpY2FOZXVlTFQtQ29uZGVuc2VkJzsgZm9udC13ZWlnaHQ6MzAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtQ29uZGVuc2VkLUxpZ2h0LU9ibGlxdWUud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtQ29uZGVuc2VkLUxpZ2h0LU9ibGlxdWUub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0hlbHZldGljYU5ldWVMVC1Db25kZW5zZWQnOyBmb250LXdlaWdodDo0MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1Db25kZW5zZWQtUmVndWxhci53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1Db25kZW5zZWQtUmVndWxhci5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonSGVsdmV0aWNhTmV1ZUxULUNvbmRlbnNlZCc7IGZvbnQtd2VpZ2h0OjQwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUNvbmRlbnNlZC1SZWd1bGFyLU9ibGlxdWUud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtQ29uZGVuc2VkLVJlZ3VsYXItT2JsaXF1ZS5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonSGVsdmV0aWNhTmV1ZUxULUNvbmRlbnNlZCc7IGZvbnQtd2VpZ2h0OjUwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUNvbmRlbnNlZC1NZWRpdW0ud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtQ29uZGVuc2VkLU1lZGl1bS5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonSGVsdmV0aWNhTmV1ZUxULUNvbmRlbnNlZCc7IGZvbnQtd2VpZ2h0OjUwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUNvbmRlbnNlZC1NZWRpdW0tT2JsaXF1ZS53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1Db25kZW5zZWQtTWVkaXVtLU9ibGlxdWUub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0hlbHZldGljYU5ldWVMVC1Db25kZW5zZWQnOyBmb250LXdlaWdodDo2MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1Db25kZW5zZWQtQm9sZC53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1Db25kZW5zZWQtQm9sZC5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonSGVsdmV0aWNhTmV1ZUxULUNvbmRlbnNlZCc7IGZvbnQtd2VpZ2h0OjYwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUNvbmRlbnNlZC1Cb2xkLU9ibGlxdWUud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtQ29uZGVuc2VkLUJvbGQtT2JsaXF1ZS5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonSGVsdmV0aWNhTmV1ZUxULUNvbmRlbnNlZCc7IGZvbnQtd2VpZ2h0OjcwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUNvbmRlbnNlZC1IZWF2eS53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1Db25kZW5zZWQtSGVhdnkub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0hlbHZldGljYU5ldWVMVC1Db25kZW5zZWQnOyBmb250LXdlaWdodDo3MDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1Db25kZW5zZWQtSGVhdnktT2JsaXF1ZS53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1Db25kZW5zZWQtSGVhdnktT2JsaXF1ZS5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonSGVsdmV0aWNhTmV1ZUxULUNvbmRlbnNlZCc7IGZvbnQtd2VpZ2h0OjgwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUNvbmRlbnNlZC1CbGFjay53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1Db25kZW5zZWQtQmxhY2sub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0hlbHZldGljYU5ldWVMVC1Db25kZW5zZWQnOyBmb250LXdlaWdodDo4MDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1Db25kZW5zZWQtQmxhY2stT2JsaXF1ZS53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1Db25kZW5zZWQtQmxhY2stT2JsaXF1ZS5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonSGVsdmV0aWNhTmV1ZUxULUNvbmRlbnNlZCc7IGZvbnQtd2VpZ2h0OjkwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUNvbmRlbnNlZC1FeHRyYUJsYWNrLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUNvbmRlbnNlZC1FeHRyYUJsYWNrLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidIZWx2ZXRpY2FOZXVlTFQtQ29uZGVuc2VkJzsgZm9udC13ZWlnaHQ6OTAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtQ29uZGVuc2VkLUV4dHJhQmxhY2stT2JsaXF1ZS53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1Db25kZW5zZWQtRXh0cmFCbGFjay1PYmxpcXVlLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidIZWx2ZXRpY2FOZXVlTFQtRXh0ZW5kZWQnOyBmb250LXdlaWdodDoxMDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1FeHRlbmRlZC1UaGluLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUV4dGVuZGVkLVRoaW4ub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0hlbHZldGljYU5ldWVMVC1FeHRlbmRlZCc7IGZvbnQtd2VpZ2h0OjEwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUV4dGVuZGVkLVRoaW4tT2JsaXF1ZS53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1FeHRlbmRlZC1UaGluLU9ibGlxdWUub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0hlbHZldGljYU5ldWVMVC1FeHRlbmRlZCc7IGZvbnQtd2VpZ2h0OjMwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUV4dGVuZGVkLUxpZ2h0LndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUV4dGVuZGVkLUxpZ2h0Lm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidIZWx2ZXRpY2FOZXVlTFQtRXh0ZW5kZWQnOyBmb250LXdlaWdodDozMDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1FeHRlbmRlZC1MaWdodC1PYmxpcXVlLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUV4dGVuZGVkLUxpZ2h0LU9ibGlxdWUub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0hlbHZldGljYU5ldWVMVC1FeHRlbmRlZCc7IGZvbnQtd2VpZ2h0OjQwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUV4dGVuZGVkLVJlZ3VsYXIud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtRXh0ZW5kZWQtUmVndWxhci5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonSGVsdmV0aWNhTmV1ZUxULUV4dGVuZGVkJzsgZm9udC13ZWlnaHQ6NDAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtRXh0ZW5kZWQtUmVndWxhci1PYmxpcXVlLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUV4dGVuZGVkLVJlZ3VsYXItT2JsaXF1ZS5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonSGVsdmV0aWNhTmV1ZUxULUV4dGVuZGVkJzsgZm9udC13ZWlnaHQ6NTAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtRXh0ZW5kZWQtTWVkaXVtLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUV4dGVuZGVkLU1lZGl1bS5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonSGVsdmV0aWNhTmV1ZUxULUV4dGVuZGVkJzsgZm9udC13ZWlnaHQ6NTAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtRXh0ZW5kZWQtTWVkaXVtLU9ibGlxdWUud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtRXh0ZW5kZWQtTWVkaXVtLU9ibGlxdWUub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0hlbHZldGljYU5ldWVMVC1FeHRlbmRlZCc7IGZvbnQtd2VpZ2h0OjcwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUV4dGVuZGVkLUJvbGQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtRXh0ZW5kZWQtQm9sZC5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonSGVsdmV0aWNhTmV1ZUxULUV4dGVuZGVkJzsgZm9udC13ZWlnaHQ6NzAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtRXh0ZW5kZWQtQm9sZC1PYmxpcXVlLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUV4dGVuZGVkLUJvbGQtT2JsaXF1ZS5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonSGVsdmV0aWNhTmV1ZUxULUV4dGVuZGVkJzsgZm9udC13ZWlnaHQ6ODAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtRXh0ZW5kZWQtSGVhdnkud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtRXh0ZW5kZWQtSGVhdnkub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0hlbHZldGljYU5ldWVMVC1FeHRlbmRlZCc7IGZvbnQtd2VpZ2h0OjgwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUV4dGVuZGVkLUhlYXZ5LU9ibGlxdWUud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtRXh0ZW5kZWQtSGVhdnktT2JsaXF1ZS5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonSGVsdmV0aWNhTmV1ZUxULUV4dGVuZGVkJzsgZm9udC13ZWlnaHQ6OTAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtRXh0ZW5kZWQtQmxhY2sud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtRXh0ZW5kZWQtQmxhY2sub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0hlbHZldGljYU5ldWVMVC1FeHRlbmRlZCc7IGZvbnQtd2VpZ2h0OjkwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUV4dGVuZGVkLUJsYWNrLU9ibGlxdWUud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtRXh0ZW5kZWQtQmxhY2stT2JsaXF1ZS5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQWN1cmFCZXNwb2tlJzsgZm9udC13ZWlnaHQ6MzAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9BY3VyYUJlc3Bva2UtTGlnaHQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9BY3VyYUJlc3Bva2UtTGlnaHQub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0FjdXJhQmVzcG9rZSc7IGZvbnQtd2VpZ2h0OjQwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQWN1cmFCZXNwb2tlLVJlZ3VsYXIud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9BY3VyYUJlc3Bva2UtUmVndWxhci5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQWN1cmFCZXNwb2tlJzsgZm9udC13ZWlnaHQ6NzAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9BY3VyYUJlc3Bva2UtQm9sZC53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0FjdXJhQmVzcG9rZS1Cb2xkLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidBY3VyYUJlc3Bva2VCb29rJzsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9BY3VyYUJlc3Bva2UtQm9vay53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0FjdXJhQmVzcG9rZS1Cb29rLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidGb3JkRjEnOyBmb250LXdlaWdodDozMDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0ZvcmRGMS1MaWdodC53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidGb3JkRjEnOyBmb250LXdlaWdodDo0MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0ZvcmRGMS1SZWd1bGFyLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0ZvcmRGMSc7IGZvbnQtd2VpZ2h0OjUwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvRm9yZEYxLU1lZGl1bS53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidGb3JkRjEnOyBmb250LXdlaWdodDo2MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0ZvcmRGMS1TZW1pYm9sZC53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidGb3JkRjEnOyBmb250LXdlaWdodDo3MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0ZvcmRGMS1Cb2xkLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0ZlcnJhcmlTYW5zJzsgZm9udC13ZWlnaHQ6NDAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnLy9mb250cy5kMmNtZWRpYS5jYS9GZXJyYXJpLVNhbnNMaWdodC53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidGZXJyYXJpU2Fucyc7IGZvbnQtd2VpZ2h0OjQwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJy8vZm9udHMuZDJjbWVkaWEuY2EvRmVycmFyaS1TYW5zTGlnaHRJdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonRmVycmFyaVNhbnMnOyBmb250LXdlaWdodDo3MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCcvL2ZvbnRzLmQyY21lZGlhLmNhL0ZlcnJhcmktU2Fuc01lZGl1bS53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidGZXJyYXJpU2Fucyc7IGZvbnQtd2VpZ2h0OjcwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJy8vZm9udHMuZDJjbWVkaWEuY2EvRmVycmFyaS1TYW5zTWVkaXVtSXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0ZlcnJhcmlTYW5zJzsgZm9udC13ZWlnaHQ6NTAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnLy9mb250cy5kMmNtZWRpYS5jYS9GZXJyYXJpLVNhbnNSZWd1bGFyLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0ZlcnJhcmlTYW5zJzsgZm9udC13ZWlnaHQ6NTAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnLy9mb250cy5kMmNtZWRpYS5jYS9GZXJyYXJpLVNhbnNSZWd1bGFySXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0ZlcnJhcmlTYW5zJzsgZm9udC13ZWlnaHQ6ODAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnLy9mb250cy5kMmNtZWRpYS5jYS9GZXJyYXJpLVNhbnNCb2xkLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0ZlcnJhcmlTYW5zJzsgZm9udC13ZWlnaHQ6ODAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnLy9mb250cy5kMmNtZWRpYS5jYS9GZXJyYXJpLVNhbnNCb2xkSXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J01jTGFyZW5CZXNwb2tlJzsgZm9udC13ZWlnaHQ6MzAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnLy9mb250cy5kMmNtZWRpYS5jYS9NY0xhcmVuQmVzcG9rZV9MdC53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidNY0xhcmVuQmVzcG9rZSc7IGZvbnQtd2VpZ2h0OjQwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJy8vZm9udHMuZDJjbWVkaWEuY2EvTWNMYXJlbkJlc3Bva2VfUmcud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonTWNMYXJlbkJlc3Bva2UnOyBmb250LXdlaWdodDo3MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCcvL2ZvbnRzLmQyY21lZGlhLmNhL01jTGFyZW5CZXNwb2tlX0JkLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J05vdG9TYW5zJzsgZm9udC13ZWlnaHQ6MTAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnLy9mb250cy5kMmNtZWRpYS5jYS9Ob3RvU2Fucy1UaGluLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J05vdG9TYW5zJzsgZm9udC13ZWlnaHQ6MzAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnLy9mb250cy5kMmNtZWRpYS5jYS9Ob3RvU2Fucy1MaWdodC53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidOb3RvU2Fucyc7IGZvbnQtd2VpZ2h0OjQwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJy8vZm9udHMuZDJjbWVkaWEuY2EvTm90b1NhbnMtUmVndWxhci53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidOb3RvU2Fucyc7IGZvbnQtd2VpZ2h0OjQwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJy8vZm9udHMuZDJjbWVkaWEuY2EvTm90b1NhbnMtSXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J05vdG9TYW5zJzsgZm9udC13ZWlnaHQ6NzAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnLy9mb250cy5kMmNtZWRpYS5jYS9Ob3RvU2Fucy1Cb2xkLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J05vdG9TYW5zJzsgZm9udC13ZWlnaHQ6NzAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnLy9mb250cy5kMmNtZWRpYS5jYS9Ob3RvU2Fucy1Cb2xkSXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0RJTk5leHRMVFBybyc7IGZvbnQtd2VpZ2h0OjMwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJy8vZm9udHMuZDJjbWVkaWEuY2EvRElOTmV4dExUUHJvLUxpZ2h0LndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0RJTk5leHRMVFBybyc7IGZvbnQtd2VpZ2h0OjQwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJy8vZm9udHMuZDJjbWVkaWEuY2EvRElOTmV4dExUUHJvLVJlZ3VsYXIud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonRElOTmV4dExUUHJvJzsgZm9udC13ZWlnaHQ6NzAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnLy9mb250cy5kMmNtZWRpYS5jYS9ESU5OZXh0TFRQcm8tQm9sZC53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidUdW5nc3Rlbic7IGZvbnQtd2VpZ2h0OjMwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJy8vZm9udHMuZDJjbWVkaWEuY2EvVHVuZ3N0ZW4tTGlnaHQub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1R1bmdzdGVuJzsgZm9udC13ZWlnaHQ6NzAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnLy9mb250cy5kMmNtZWRpYS5jYS9UdW5nc3Rlbi1Cb2xkLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfQovKiogL2Nzcy9tYWluLmNzcyAqKi8KLi1sZWZ0IHtmbG9hdDpsZWZ0IWltcG9ydGFudDt9IC4tcmlnaHQge2Zsb2F0OnJpZ2h0fSAuLXNtYWxsIHtmb250LXNpemU6LjhlbTttYXJnaW4tYm90dG9tOjEuODc1ZW07bGluZS1oZWlnaHQ6MS44NzVlbSFpbXBvcnRhbnQ7fSAuLWxhcmdlIHtmb250LXNpemU6MS4yZW07bGluZS1oZWlnaHQ6Mi41ZW07bWFyZ2luLWJvdHRvbToxLjI1ZW0haW1wb3J0YW50O30gLi1oaWRlIHtkaXNwbGF5Om5vbmUhaW1wb3J0YW50O30gLi1xdWlldCB7Y29sb3I6IzY2NiFpbXBvcnRhbnQ7fSAuLWxvdWQge2NvbG9yOiMxMDEwMTAhaW1wb3J0YW50O30gLi1oaWdobGlnaHQge2JhY2tncm91bmQ6I2ZmMCFpbXBvcnRhbnQ7fSAuLWFkZGVkIHtiYWNrZ3JvdW5kOiMwNjA7Y29sb3I6I2ZmZiFpbXBvcnRhbnQ7fSAuLXJlbW92ZWQge2JhY2tncm91bmQ6IzkwMDtjb2xvcjojZmZmIWltcG9ydGFudDt9IC4tcHVzaC1maXJzdCB7bWFyZ2luLWxlZnQ6MDtwYWRkaW5nLWxlZnQ6MCFpbXBvcnRhbnQ7fSAuLXB1c2gtbGFzdCB7bWFyZ2luLXJpZ2h0OjA7cGFkZGluZy1yaWdodDowIWltcG9ydGFudDt9IC4tcHVzaC1sZWZ0IHttYXJnaW4tdG9wOjA7cGFkZGluZy10b3A6MCFpbXBvcnRhbnQ7fSAuLXB1c2gtYm90dG9tIHttYXJnaW4tYm90dG9tOjA7cGFkZGluZy1ib3R0b206MCFpbXBvcnRhbnQ7fSAuLW5vYm9yZGVyIHtib3JkZXI6MCFpbXBvcnRhbnQ7fSAuLW5vZGVjb3JhdGlvbiwgLi1uby10ZXh0LWRlY29yYXRpb24sIC4tbm90ZXh0LWRlY29yYXRpb24ge3RleHQtZGVjb3JhdGlvbjpub25lIWltcG9ydGFudDt9IC4tdGV4dC11cHBlcmNhc2UsIC4tdXBwZXJjYXNlLCAudGV4dC11cHBlcmNhc2Uge3RleHQtdHJhbnNmb3JtOnZhcigtLXR4dC11cHBlcik7fSAuLXRleHQtbG93ZXJjYXNlLCAuLWxvd2VyY2FzZSB7dGV4dC10cmFuc2Zvcm06bG93ZXJjYXNlIWltcG9ydGFudDt9IC4taGlkZGVuIHsgZGlzcGxheTpub25lOyB9IC4tdGV4dC1ib2xkLC5ib2xke2ZvbnQtd2VpZ2h0OmJvbGQhaW1wb3J0YW50O30gLi10ZXh0LW5vcm1hbCwubm9ybWFse2ZvbnQtd2VpZ2h0Om5vcm1hbCFpbXBvcnRhbnQ7fSAuLWFsaWduLXRvcCB7dmVydGljYWwtYWxpZ246dG9wIWltcG9ydGFudDt9IC4tYWxpZ24tbWlkZGxlIHt2ZXJ0aWNhbC1hbGlnbjptaWRkbGUhaW1wb3J0YW50O30gLi1saW5lLWgxeyBsaW5lLWhlaWdodDoxZW07IH0gLi1saW5lLWgyeyBsaW5lLWhlaWdodDoyZW07IH0gLi1ib3R0b20weyBib3R0b206MDsgfSAuLWJvdHRvbTAtaW1wb3J0YW50eyBib3R0b206MCFpbXBvcnRhbnQ7IH0gLlBvcnNjaGUyeyBjbGVhcjpib3RoOyB9IC5ibGFjay10ZXh0IHsgY29sb3I6IzEwMTAxMDsgfSA6OnBsYWNlaG9sZGVyIHsgcGFkZGluZy10b3A6MXB4OyBjb2xvcjojYTlhOWE5OyBvcGFjaXR5OjE7IH0gOi1tcy1pbnB1dC1wbGFjZWhvbGRlciB7IGNvbG9yOiNhOWE5YTk7IH0gOjotbXMtaW5wdXQtcGxhY2Vob2xkZXIgeyBjb2xvcjojYTlhOWE5OyB9ICNjYXJUaXRsZSAuZmEtY2hldnJvbi1yaWdodCwgLlNwZWNpZmljYXRpb25zIC5mYS1jaGV2cm9uLXJpZ2h0IHsgYm9yZGVyLXJhZGl1czozMHB4OyB3aWR0aDoyMHB4OyBoZWlnaHQ6MjVweDsgcGFkZGluZy10b3A6NHB4OyBwYWRkaW5nLWxlZnQ6OXB4OyBmbG9hdDpsZWZ0OyBtYXJnaW4tdG9wOjhweDsgZm9udC1zaXplOjEuMzc1cmVtIDsgYm9yZGVyOjFweCBzb2xpZCAjZmZmZmZmOyBiYWNrZ3JvdW5kLWNvbG9yOiMxMDEwMTA7IGNvbG9yOiNmZmZmZmYgOyBtYXJnaW4tcmlnaHQ6MTBweDsgfSAuU3BlY2lmaWNhdGlvbnMgLmZhLWNoZXZyb24tcmlnaHR7IG1hcmdpbi10b3A6MXB4OyB9ICNjYXJUaXRsZSAubWFrZU1vZGVsWWVhcnsgZm9udC1zaXplOjEuNTYzcmVtIDsgfSAjY2FyVGl0bGUgLmRlYWxlckxjYXRpb25DYXJUaXRsZSB7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgY29sb3I6IzljOWM5YzsgZm9udC1zaXplOjEuMTI1cmVtIDsgbGV0dGVyLXNwYWNpbmc6LTFweDsgfSAuY2FyVGl0bGUgLmZhLWNoZXZyb24tcmlnaHR7IGJvcmRlci1yYWRpdXM6MzBweDsgd2lkdGg6MjBweDsgaGVpZ2h0OjI1cHg7IHBhZGRpbmctdG9wOjRweDsgcGFkZGluZy1sZWZ0OjlweDsgZmxvYXQ6bGVmdDsgbWFyZ2luLXRvcDo4cHg7IGZvbnQtc2l6ZToxLjM3NXJlbSA7IGJvcmRlcjoxcHggc29saWQgI2ZmZmZmZjsgYmFja2dyb3VuZC1jb2xvcjojMTAxMDEwOyBjb2xvcjojZmZmZmZmIDsgbWFyZ2luLXJpZ2h0OjEwcHg7IH0gLmNhclRpdGxlIC5tYWtlTW9kZWxZZWFyeyBmb250LXNpemU6MS40MzhyZW0gOyB9IC5jYXJUaXRsZSAuZGVhbGVyTGNhdGlvbkNhclRpdGxlIHsgZm9udC13ZWlnaHQ6bm9ybWFsOyBjb2xvcjojOWM5YzljOyBmb250LXNpemU6MC45MzhyZW0gOyBsZXR0ZXItc3BhY2luZzotMXB4OyB9ICNTZWFyY2hUaXRsZSAuZmEtY2hldnJvbi1yaWdodHsgYm9yZGVyLXJhZGl1czozMHB4OyB3aWR0aDozMXB4OyBoZWlnaHQ6NDFweDsgcGFkZGluZy10b3A6NXB4OyBwYWRkaW5nLWxlZnQ6MTRweDsgZmxvYXQ6bGVmdDsgbWFyZ2luLXRvcDo4cHg7IGZvbnQtc2l6ZToyLjE4OHJlbSA7IGJvcmRlcjoxcHggc29saWQgI2ZmZmZmZjsgYmFja2dyb3VuZC1jb2xvcjojMTAxMDEwOyBjb2xvcjojZmZmZmZmIDsgbWFyZ2luLXJpZ2h0OjEwcHg7IH0gI1NlYXJjaFRpdGxlIC5kZWFsZXJMY2F0aW9uQ2FyVGl0bGUgeyBmb250LXdlaWdodDpub3JtYWw7IGNvbG9yOiM5YzljOWM7IGZvbnQtc2l6ZToxcmVtIDsgbGV0dGVyLXNwYWNpbmc6LTFweDsgbWFyZ2luLWxlZnQ6NDVweDsgZGlzcGxheTpibG9jazsgfSAudWktbXVsdGlzZWxlY3QtY2hlY2tib3hlcyBsYWJlbCBpbnB1dCB7IHBvc2l0aW9uOnJlbGF0aXZlOyB0b3A6MXB4OyBtYXJnaW4tcmlnaHQ6OHB4OyBoZWlnaHQ6MTNweDsgfSAudWktd2lkZ2V0LC51aS1zdGF0ZS1ob3ZlciwgLnVpLXdpZGdldC1jb250ZW50IC51aS1zdGF0ZS1ob3ZlciwgLnVpLXdpZGdldC1oZWFkZXIgLnVpLXN0YXRlLWhvdmVyLCAudWktc3RhdGUtZm9jdXMsIC51aS13aWRnZXQtY29udGVudCAudWktc3RhdGUtZm9jdXMsIC51aS13aWRnZXQtaGVhZGVyIC51aS1zdGF0ZS1mb2N1cywgLnVpLXN0YXRlLWRlZmF1bHQsIC51aS13aWRnZXQtY29udGVudCAudWktc3RhdGUtZGVmYXVsdCwgLnVpLXdpZGdldC1oZWFkZXIgLnVpLXN0YXRlLWRlZmF1bHR7IGJhY2tncm91bmQ6I2ZmZiFpbXBvcnRhbnQ7IGNvbG9yOiM1NTU7IGZvbnQtc2l6ZTowLjkzOHJlbSAhaW1wb3J0YW50OyB9IC51aS1zdGF0ZS1kZWZhdWx0LCAudWktd2lkZ2V0LWNvbnRlbnQgLnVpLXN0YXRlLWRlZmF1bHQsIC51aS13aWRnZXQtaGVhZGVyIC51aS1zdGF0ZS1kZWZhdWx0eyBwYWRkaW5nOjhweCAxMHB4IWltcG9ydGFudDsgfSAudWktbXVsdGlzZWxlY3QtY2hlY2tib3hlcyBsaXsgZm9udC1zaXplOjAuOTM4cmVtICFpbXBvcnRhbnQ7IH0gLnVpLWNvcm5lci1hbGx7IGJvcmRlci1yYWRpdXM6MHB4IWltcG9ydGFudDsgfSAuLWNvbGxhcHNleyBib3JkZXItY29sbGFwc2U6Y29sbGFwc2U7IH0gLi1saXsgbGlzdC1zdHlsZS10eXBlOm5vbmU7IH0gLi1uby1zaGFkb3csIC4tc2hhZG93MCwgLi1ub3NoYWRvd3sgYm94LXNoYWRvdzpub25lIWltcG9ydGFudDsgfSAuLXVuZGVybGluZXsgdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZSFpbXBvcnRhbnQ7IH0gLi10b3AweyB0b3A6MDsgfSAuLXRleHQtbGVmdHt0ZXh0LWFsaWduOmxlZnQhaW1wb3J0YW50O30gLi10ZXh0LXJpZ2h0e3RleHQtYWxpZ246cmlnaHQhaW1wb3J0YW50O30gLi10ZXh0LWNlbnRlcnt0ZXh0LWFsaWduOmNlbnRlciFpbXBvcnRhbnQ7fSAuLXRleHQtcmVkLCAuLXJlZC10ZXh0e2NvbG9yOnJlZCFpbXBvcnRhbnQ7fSAuLWJsb2Nre2Rpc3BsYXk6YmxvY2shaW1wb3J0YW50O30gLi1pbmxpbmUtYmxvY2t7ZGlzcGxheTppbmxpbmUtYmxvY2shaW1wb3J0YW50O30gLi1ub25lLCAuLWhpZGRlbiwgLi1oaWRkZSB7ZGlzcGxheTpub25lIWltcG9ydGFudDt9IC4taW5saW5lIHtkaXNwbGF5OmlubGluZSFpbXBvcnRhbnQ7fSAuLWNvbG9yMSB7IGNvbG9yOiM1NzU3NTchaW1wb3J0YW50O30gLi10aXRsZTEgeyBmb250LXNpemU6MS40MzhyZW0gIWltcG9ydGFudDsgZm9udC1jb2xvcjojMTAxMDEwICFpbXBvcnRhbnQ7IHRleHQtZGVjb3JhdGlvbjpub25lIWltcG9ydGFudDsgfSAuLWlucHV0IHsgZm9udC1zaXplOjAuODEzcmVtIDsgbGluZS1oZWlnaHQ6MTVweDsgdmVydGljYWwtYWxpZ246bWlkZGxlOyBoZWlnaHQ6MzJweDsgY29sb3I6IzQwNDA0MDsgcGFkZGluZzowcHggNnB4IWltcG9ydGFudDsgbWFyZ2luOjBweDsgb3V0bGluZTpub25lOyBtaW4taGVpZ2h0OjIwcHg7IGJvcmRlcjoxcHggc29saWQgI2NlZDRkYTsgYm9yZGVyLXJhZGl1czouMjVyZW07IHRyYW5zaXRpb246Ym9yZGVyLWNvbG9yIC4xNXMgZWFzZS1pbi1vdXQsYm94LXNoYWRvdyAuMTVzIGVhc2UtaW4tb3V0OyB9IC4taW5wdXQ6Zm9jdXMsIC4taW5wdXQ6aG92ZXJ7IGJvcmRlci1jb2xvcjojODBiZGZmICFpbXBvcnRhbnQ7IGJveC1zaGFkb3c6MCAwIDAgMC4ycmVtIHJnYmEoMCwxMjMsMjU1LC4yNSk7IH0gLi1wb3NpdGlvbi1zdGF0aWMsIC4tcG9zLXN0YXRpYywgLi1wb3Mtc3RhdCB7cG9zaXRpb246c3RhdGljIWltcG9ydGFudDt9IC4tcG9zaXRpb24tYWJzb2x1dGUsIC4tcG9zLWFic29sdXRlLCAuLXBvcy1hYnMge3Bvc2l0aW9uOmFic29sdXRlIWltcG9ydGFudDt9IC4tcG9zaXRpb24tZml4ZWQsIC4tcG9zLWZpeGVkLCAuLXBvcy1maXgge3Bvc2l0aW9uOmZpeGVkIWltcG9ydGFudDt9IC4tcG9zaXRpb24tcmVsYXRpdmUsIC4tcG9zLXJlbGF0aXZlLCAuLXBvcy1yZWwge3Bvc2l0aW9uOnJlbGF0aXZlIWltcG9ydGFudDt9IC4tcG9zaXRpb24taW5oZXJpdCwgLi1wb3MtaW5oZXJpdCwgLi1wb3MtaW5oIHtwb3NpdGlvbjppbmhlcml0IWltcG9ydGFudDt9IC1saC0xLTMsIC1saW5lLWhlaWdodC0xLTN7IGxpbmUtaGVpZ2h0OjEuMzsgfSAtbGgtMjB7IGxpbmUtaGVpZ2h0OjIwcHg7IH0gLi1lcnJvciwgLi1hbGVydCwgLi1ub3RpY2UsIC4tc3VjY2VzcywgLi1pbmZvIHtwYWRkaW5nOjAuOGVtO21hcmdpbi1ib3R0b206MWVtO2JvcmRlcjoycHggc29saWQgI2RkZCFpbXBvcnRhbnQ7fSAuLWVycm9yLCAuLWFsZXJ0IHtiYWNrZ3JvdW5kOiNmYmUzZTQ7Y29sb3I6IzhhMWYxMTtib3JkZXItY29sb3I6I2ZiYzJjNCFpbXBvcnRhbnQ7fSAuLW5vdGljZSB7YmFja2dyb3VuZDojZmZmNmJmO2NvbG9yOiM1MTQ3MjE7Ym9yZGVyLWNvbG9yOiNmZmQzMjQhaW1wb3J0YW50O30gLi1zdWNjZXNzIHtiYWNrZ3JvdW5kOiNlNmVmYzI7Y29sb3I6IzI2NDQwOTtib3JkZXItY29sb3I6I2M2ZDg4MCFpbXBvcnRhbnQ7fSAuLWluZm8ge2JhY2tncm91bmQ6I2Q1ZWRmODtjb2xvcjojMjA1NzkxO2JvcmRlci1jb2xvcjojOTJjYWU0IWltcG9ydGFudDt9IC4tZXJyb3IgYSwgLmFsZXJ0IGEge2NvbG9yOiM4YTFmMTEhaW1wb3J0YW50O30gLi1ub3RpY2UgYSB7Y29sb3I6IzUxNDcyMSFpbXBvcnRhbnQ7fSAuLXN1Y2Nlc3MgYSB7Y29sb3I6IzI2NDQwOSFpbXBvcnRhbnQ7fSAuLWluZm8gYSB7Y29sb3I6IzIwNTc5MSFpbXBvcnRhbnQ7fSAuLWJveCB7cGFkZGluZzoxLjVlbTttYXJnaW4tYm90dG9tOjEuNWVtO2JhY2tncm91bmQ6I2U1ZUNmOSFpbXBvcnRhbnQ7fSAtaHIge2JhY2tncm91bmQ6I2RkZGRkZDtjb2xvcjojZGRkZGRkO2NsZWFyOmJvdGg7ZmxvYXQ6bm9uZTt3aWR0aDoxMDAlO2hlaWdodDoxcHg7bWFyZ2luOjAgMCAxN3B4O2JvcmRlcjpub25lIWltcG9ydGFudDt9IC1zcGFjZSB7YmFja2dyb3VuZDojZmZmO2NvbG9yOiNmZmY7dmlzaWJpbGl0eTpoaWRkZW47Y2xlYXI6Ym90aDtmbG9hdDpub25lO3dpZHRoOjEwMCU7aGVpZ2h0OjFweDttYXJnaW46MCAwIDE3cHg7Ym9yZGVyOm5vbmUhaW1wb3J0YW50O30gLi1jbGVhcmZpeDphZnRlciB7Y29udGVudDoiXDAwMjAiO2Rpc3BsYXk6YmxvY2s7aGVpZ2h0OjA7Y2xlYXI6Ym90aDt2aXNpYmlsaXR5OmhpZGRlbjtvdmVyZmxvdzpoaWRkZW4haW1wb3J0YW50O30gLi1jbGVhcmZpeHtkaXNwbGF5OmJsb2NrIWltcG9ydGFudDt9IC4tY2xlYXIge2NsZWFyOmJvdGghaW1wb3J0YW50O30gLmludmlzaWJsZSB7dmlzaWJpbGl0eTpoaWRkZW47fSAuY2xlYXJmaXg6YWZ0ZXIge2NvbnRlbnQ6IiI7IGRpc3BsYXk6dGFibGU7IGNsZWFyOmJvdGg7fSAuLW92ZXJmbG93LWhpZGRlbiB7b3ZlcmZsb3c6aGlkZGVuIWltcG9ydGFudDt9IC4tdzUge3dpZHRoOjVweCFpbXBvcnRhbnQ7fSAuLXcxMCB7d2lkdGg6MTBweCFpbXBvcnRhbnQ7fSAuLXcxNSB7d2lkdGg6MTVweCFpbXBvcnRhbnQ7fSAuLXcxOCB7d2lkdGg6MThweCFpbXBvcnRhbnQ7fSAuLXcyMCB7d2lkdGg6MjBweCFpbXBvcnRhbnQ7fSAuLXcyNSB7d2lkdGg6MjVweCFpbXBvcnRhbnQ7fSAuLXczMCB7d2lkdGg6MzBweCFpbXBvcnRhbnQ7fSAuLXczNSB7d2lkdGg6MzVweCFpbXBvcnRhbnQ7fSAuLXc0MCB7d2lkdGg6NDBweCFpbXBvcnRhbnQ7fSAuLXc0NSB7d2lkdGg6NDVweCFpbXBvcnRhbnQ7fSAuLXc1MCB7d2lkdGg6NTBweCFpbXBvcnRhbnQ7fSAuLXc1NSB7d2lkdGg6NTVweCFpbXBvcnRhbnQ7fSAuLXc2MCB7d2lkdGg6NjBweCFpbXBvcnRhbnQ7fSAuLXc2NSB7d2lkdGg6NjVweCFpbXBvcnRhbnQ7fSAuLXc3MCB7d2lkdGg6NzBweCFpbXBvcnRhbnQ7fSAuLXc3MyB7d2lkdGg6NzNweCFpbXBvcnRhbnQ7fSAuLXc3NSB7d2lkdGg6NzVweCFpbXBvcnRhbnQ7fSAuLXc4MCB7d2lkdGg6ODBweCFpbXBvcnRhbnQ7fSAuLXc4NSB7d2lkdGg6ODVweCFpbXBvcnRhbnQ7fSAuLXc4OCB7d2lkdGg6ODhweCFpbXBvcnRhbnQ7fSAuLXc5MCB7d2lkdGg6OTBweCFpbXBvcnRhbnQ7fSAuLXc5NSB7d2lkdGg6OTVweCFpbXBvcnRhbnQ7fSAuLXcxMDAge3dpZHRoOjEwMHB4IWltcG9ydGFudDt9IC4tdzExMCB7d2lkdGg6MTEwcHghaW1wb3J0YW50O30gLi13MTIwIHt3aWR0aDoxMjBweCFpbXBvcnRhbnQ7fSAuLXcxMjUge3dpZHRoOjEyNXB4IWltcG9ydGFudDt9IC4tdzEzMCB7d2lkdGg6MTMwcHghaW1wb3J0YW50O30gLi13MTM1IHt3aWR0aDoxMzVweCFpbXBvcnRhbnQ7fSAuLXcxNDAge3dpZHRoOjE0MHB4IWltcG9ydGFudDt9IC4tdzE0MyB7d2lkdGg6MTQzcHghaW1wb3J0YW50O30gLi13MTQ1IHt3aWR0aDoxNDVweCFpbXBvcnRhbnQ7fSAuLXcxNTAge3dpZHRoOjE1MHB4IWltcG9ydGFudDt9IC4tdzE3MCB7d2lkdGg6MTgwcHghaW1wb3J0YW50O30gLi13MTgwIHt3aWR0aDoxODBweCFpbXBvcnRhbnQ7fSAuLXcxODUge3dpZHRoOjE4NXB4IWltcG9ydGFudDt9IC4tdzE5MCB7d2lkdGg6MTkwcHghaW1wb3J0YW50O30gLi13MjAwIHt3aWR0aDoyMDBweCFpbXBvcnRhbnQ7fSAuLXcyMTAge3dpZHRoOjIxMHB4IWltcG9ydGFudDt9IC4tdzIxNSB7d2lkdGg6MjE1cHghaW1wb3J0YW50O30gLi13MjIwIHt3aWR0aDoyMjBweCFpbXBvcnRhbnQ7fSAuLXcyMzAge3dpZHRoOjIzMHB4IWltcG9ydGFudDt9IC4tdzI0MCB7d2lkdGg6MjQwcHghaW1wb3J0YW50O30gLi13MjUwIHt3aWR0aDoyNTBweCFpbXBvcnRhbnQ7fSAuLXcyNTUge3dpZHRoOjI1NXB4IWltcG9ydGFudDt9IC4tdzI2MCB7d2lkdGg6MjYwcHghaW1wb3J0YW50O30gLi13MjcwIHt3aWR0aDoyNzBweCFpbXBvcnRhbnQ7fSAuLXcyNzUge3dpZHRoOjI3NXB4IWltcG9ydGFudDt9IC4tdzI4MCB7d2lkdGg6MjgwcHghaW1wb3J0YW50O30gLi13MjkwIHt3aWR0aDoyOTBweCFpbXBvcnRhbnQ7fSAuLXczMDAge3dpZHRoOjMwMHB4IWltcG9ydGFudDt9IC4tdzMxNSB7d2lkdGg6MzE1cHghaW1wb3J0YW50O30gLi13MzIwIHt3aWR0aDozMjBweCFpbXBvcnRhbnQ7fSAuLXczMjUge3dpZHRoOjMyNXB4IWltcG9ydGFudDt9IC4tdzM1MCB7d2lkdGg6MzUwcHghaW1wb3J0YW50O30gLi13NDAwIHt3aWR0aDo0MDBweCFpbXBvcnRhbnQ7fSAuLXc0NTAge3dpZHRoOjQ1MHB4IWltcG9ydGFudDt9IC4tdzQ2MCB7d2lkdGg6NDUwcHghaW1wb3J0YW50O30gLi13NTAwIHt3aWR0aDo1MDBweCFpbXBvcnRhbnQ7fSAuLXc2MzAge3dpZHRoOjYzMHB4IWltcG9ydGFudDt9IC4tdzYyMCB7d2lkdGg6NjIwcHghaW1wb3J0YW50O30gLi13NjI1IHt3aWR0aDo2MjVweCFpbXBvcnRhbnQ7fSAuLXc2NzUge3dpZHRoOjY3NXB4IWltcG9ydGFudDt9IC4tdzY4MCB7d2lkdGg6NjgwcHghaW1wb3J0YW50O30gLi13NjcwIHt3aWR0aDo2NzBweCFpbXBvcnRhbnQ7fSAuLXc3MDAge3dpZHRoOjcwMHB4IWltcG9ydGFudDt9IC4tdzcyMCB7d2lkdGg6NzIwcHghaW1wb3J0YW50O30gLi13NzI1IHt3aWR0aDo3MjVweCFpbXBvcnRhbnQ7fSAuLXc3MzAge3dpZHRoOjczMHB4IWltcG9ydGFudDt9IC4tdzc1MCB7d2lkdGg6NzUwcHghaW1wb3J0YW50O30gLi13ODAwIHt3aWR0aDo4MDBweCFpbXBvcnRhbnQ7fSAuLXc5MDAge3dpZHRoOjkwMHB4IWltcG9ydGFudDt9IC4tdzkzNyB7d2lkdGg6OTM3cHghaW1wb3J0YW50O30gLi13OTQwIHt3aWR0aDo5NDBweCFpbXBvcnRhbnQ7fSAuLXc5NjAge3dpZHRoOjk2MHB4IWltcG9ydGFudDt9IC4tdzk3MCB7d2lkdGg6OTcwcHghaW1wb3J0YW50O30gLi13MTAwMCB7d2lkdGg6MTAwMHB4IWltcG9ydGFudDt9IC4tdzVwIHt3aWR0aDo1JSFpbXBvcnRhbnQ7fSAuLXcxMHAge3dpZHRoOjEwJSFpbXBvcnRhbnQ7fSAuLXcxNXAge3dpZHRoOjIwJSFpbXBvcnRhbnQ7fSAuLXcyMHAge3dpZHRoOjIwJSFpbXBvcnRhbnQ7fSAuLXdxLCAuLXcyNXAge3dpZHRoOjI1JSFpbXBvcnRhbnQ7fSAuLXczMHAge3dpZHRoOjMwJSFpbXBvcnRhbnQ7fSAuLXczNXAge3dpZHRoOjM1JSFpbXBvcnRhbnQ7fSAuLXc0MHAge3dpZHRoOjQwJSFpbXBvcnRhbnQ7fSAuLXc0NXAge3dpZHRoOjQ1JSFpbXBvcnRhbnQ7fSAuLXdoLC4tdzUwcCB7d2lkdGg6NTAlIWltcG9ydGFudDt9IC4tdzU1cCB7d2lkdGg6NTUlIWltcG9ydGFudDt9IC4tdzYwcCB7d2lkdGg6NjAlIWltcG9ydGFudDt9IC4tdzY1cCB7d2lkdGg6NjUlIWltcG9ydGFudDt9IC4tdzcwcCB7d2lkdGg6NzAlIWltcG9ydGFudDt9IC4tdzc1cCB7d2lkdGg6NzUlIWltcG9ydGFudDt9IC4tdzgwcCB7d2lkdGg6ODAlIWltcG9ydGFudDt9IC4tdzg1cCB7d2lkdGg6ODUlIWltcG9ydGFudDt9IC4tdzkwcCB7d2lkdGg6OTAlIWltcG9ydGFudDt9IC4tdzk1cCB7d2lkdGg6OTUlIWltcG9ydGFudDt9IC4td2YsLi13MTAwcCB7d2lkdGg6MTAwJSFpbXBvcnRhbnQ7fSAuLW1heC13LW5vbmUge21heC13aWR0aDpub25lIWltcG9ydGFudDt9IC4taDUge2hlaWdodDo1cHghaW1wb3J0YW50O30gLi1oNiB7aGVpZ2h0OjZweCFpbXBvcnRhbnQ7fSAuLWg3IHtoZWlnaHQ6N3B4IWltcG9ydGFudDt9IC4taDgge2hlaWdodDo4cHghaW1wb3J0YW50O30gLi1oOSB7aGVpZ2h0OjlweCFpbXBvcnRhbnQ7fSAuLWgxMCB7aGVpZ2h0OjEwcHghaW1wb3J0YW50O30gLi1oMTEge2hlaWdodDoxMXB4IWltcG9ydGFudDt9IC4taDEyIHtoZWlnaHQ6MTJweCFpbXBvcnRhbnQ7fSAuLWgxMyB7aGVpZ2h0OjEzcHghaW1wb3J0YW50O30gLi1oMTQge2hlaWdodDoxNHB4IWltcG9ydGFudDt9IC4taDE1IHtoZWlnaHQ6MTVweCFpbXBvcnRhbnQ7fSAuLWgyMCB7aGVpZ2h0OjIwcHghaW1wb3J0YW50O30gLi1oMjUge2hlaWdodDoyNXB4IWltcG9ydGFudDt9IC4taDMwIHtoZWlnaHQ6MzBweCFpbXBvcnRhbnQ7fSAuLWgzMiB7aGVpZ2h0OjMycHghaW1wb3J0YW50O30gLi1oMzUge2hlaWdodDozNXB4IWltcG9ydGFudDt9IC4taDQwIHtoZWlnaHQ6NDBweCFpbXBvcnRhbnQ7fSAuLWg0NSB7aGVpZ2h0OjQ1cHghaW1wb3J0YW50O30gLi1oNTAge2hlaWdodDo1MHB4IWltcG9ydGFudDt9IC4taDU1IHtoZWlnaHQ6NTVweCFpbXBvcnRhbnQ7fSAuLWg2MCB7aGVpZ2h0OjYwcHghaW1wb3J0YW50O30gLi1oNjUge2hlaWdodDo2NXB4IWltcG9ydGFudDt9IC4taDcwIHtoZWlnaHQ6NzBweCFpbXBvcnRhbnQ7fSAuLWg3NSB7aGVpZ2h0Ojc1cHghaW1wb3J0YW50O30gLi1oODAge2hlaWdodDo4MHB4IWltcG9ydGFudDt9IC4taDg1IHtoZWlnaHQ6ODVweCFpbXBvcnRhbnQ7fSAuLWg5MCB7aGVpZ2h0OjkwcHghaW1wb3J0YW50O30gLi1oOTUge2hlaWdodDo5NXB4IWltcG9ydGFudDt9IC4taDEwMCB7aGVpZ2h0OjEwMHB4IWltcG9ydGFudDt9IC4taDExMCB7aGVpZ2h0OjExMHB4IWltcG9ydGFudDt9IC4taDEyMCB7aGVpZ2h0OjEyMHB4IWltcG9ydGFudDt9IC4taDEzMCB7aGVpZ2h0OjEzMHB4IWltcG9ydGFudDt9IC4taDE0MCB7aGVpZ2h0OjE0MHB4IWltcG9ydGFudDt9IC4taDE1MCB7aGVpZ2h0OjE1MHB4IWltcG9ydGFudDt9IC4taDE2MCB7aGVpZ2h0OjE2MHB4IWltcG9ydGFudDt9IC4taDE3MCB7aGVpZ2h0OjE3MHB4IWltcG9ydGFudDt9IC4taDE4MCB7aGVpZ2h0OjE4MHB4IWltcG9ydGFudDt9IC4taDE5MCB7aGVpZ2h0OjE5MHB4IWltcG9ydGFudDt9IC4taDIwMCB7aGVpZ2h0OjIwMHB4IWltcG9ydGFudDt9IC4taDIyMCB7aGVpZ2h0OjIyMHB4IWltcG9ydGFudDt9IC4taDIzMCB7aGVpZ2h0OjIzMHB4IWltcG9ydGFudDt9IC4taDI0MCB7aGVpZ2h0OjI0MHB4IWltcG9ydGFudDt9IC4taDI0NSB7aGVpZ2h0OjI0NXB4IWltcG9ydGFudDt9IC4taDI0OCB7aGVpZ2h0OjI0OHB4IWltcG9ydGFudDt9IC4taDI1MCB7aGVpZ2h0OjI1MHB4IWltcG9ydGFudDt9IC4taDI1NSB7aGVpZ2h0OjI1NXB4IWltcG9ydGFudDt9IC4taDI2MCB7aGVpZ2h0OjI2MHB4IWltcG9ydGFudDt9IC4taDMwMCB7aGVpZ2h0OjMwMHB4IWltcG9ydGFudDt9IC4taDM1MCB7aGVpZ2h0OjM1MHB4IWltcG9ydGFudDt9IC4taDQwMCB7aGVpZ2h0OjQwMHB4IWltcG9ydGFudDt9IC4taDQ1MCB7aGVpZ2h0OjQ1MHB4IWltcG9ydGFudDt9IC4taDUwMCB7aGVpZ2h0OjUwMHB4IWltcG9ydGFudDt9IC4taDU1MCB7aGVpZ2h0OjU1MHB4IWltcG9ydGFudDt9IC4taDYwMCB7aGVpZ2h0OjYwMHB4IWltcG9ydGFudDt9IC4taDY1MCB7aGVpZ2h0OjY1MHB4IWltcG9ydGFudDt9IC4taDcwMCB7aGVpZ2h0OjcwMHB4IWltcG9ydGFudDt9IC4taDc1MCB7aGVpZ2h0Ojc1MHB4IWltcG9ydGFudDt9IC4taDgwMCB7aGVpZ2h0OjgwMHB4IWltcG9ydGFudDt9IC4taDkwMCB7aGVpZ2h0OjkwMHB4IWltcG9ydGFudDt9IC4taDEwMDAge2hlaWdodDoxMDAwcHghaW1wb3J0YW50O30gLi1oNXAge2hlaWdodDo1JSFpbXBvcnRhbnQ7fSAuLWgxMHAge2hlaWdodDoxMCUhaW1wb3J0YW50O30gLi1oMTVwIHtoZWlnaHQ6MTUlIWltcG9ydGFudDt9IC4taDIwcCB7aGVpZ2h0OjIwJSFpbXBvcnRhbnQ7fSAuLWhxLCAuLWgyNXAge2hlaWdodDoyNSUhaW1wb3J0YW50O30gLi1oaCwuLWg1MHAge2hlaWdodDo1MCUhaW1wb3J0YW50O30gLi1oZiwuLWgxMDBwIHtoZWlnaHQ6MTAwJSFpbXBvcnRhbnQ7fSAuLWJveC1zLWJ7IC13ZWJraXQtYm94LXNpemluZzpib3JkZXItYm94OyAtbW96LWJveC1zaXppbmc6Ym9yZGVyLWJveDsgYm94LXNpemluZzpib3JkZXItYm94OyB9IC4tYm94LWNvbnRlbnR7IGJveC1zaXppbmc6Y29udGVudC1ib3g7IH0gLi1mbGV4e2Rpc3BsYXk6ZmxleDt9IC4tZmxleC1jb2x1bW57ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjt9IC4tYWktY2VudGVye2FsaWduLWl0ZW1zOmNlbnRlcjt9IC4tcDAsLi1ub3BhZGRpbmcsLi1ub3BhZGRpbmdzIHtwYWRkaW5nOjA7fSAuLXAxIHtwYWRkaW5nOjFweCFpbXBvcnRhbnQ7fSAuLXAyIHtwYWRkaW5nOjJweCFpbXBvcnRhbnQ7fSAuLXAzIHtwYWRkaW5nOjNweCFpbXBvcnRhbnQ7fSAuLXA0IHtwYWRkaW5nOjRweCFpbXBvcnRhbnQ7fSAuLXA1IHtwYWRkaW5nOjVweCFpbXBvcnRhbnQ7fSAuLXA2IHtwYWRkaW5nOjZweCFpbXBvcnRhbnQ7fSAuLXA3IHtwYWRkaW5nOjdweCFpbXBvcnRhbnQ7fSAuLXA4IHtwYWRkaW5nOjhweCFpbXBvcnRhbnQ7fSAuLXA5IHtwYWRkaW5nOjlweCFpbXBvcnRhbnQ7fSAuLXAxMCB7cGFkZGluZzoxMHB4IWltcG9ydGFudDt9IC4tcDE1IHtwYWRkaW5nOjE1cHghaW1wb3J0YW50O30gLi1wMjAge3BhZGRpbmc6MjBweCFpbXBvcnRhbnQ7fSAuLXAyNSB7cGFkZGluZzoyNXB4IWltcG9ydGFudDt9IC4tcDMwIHtwYWRkaW5nOjMwcHghaW1wb3J0YW50O30gLi1wMzUge3BhZGRpbmc6MzVweCFpbXBvcnRhbnQ7fSAuLXA0MCB7cGFkZGluZzo0MHB4IWltcG9ydGFudDt9IC4tcDQ1IHtwYWRkaW5nOjQ1cHghaW1wb3J0YW50O30gLi1wNTAge3BhZGRpbmc6NTBweCFpbXBvcnRhbnQ7fSAuLXBsMCB7cGFkZGluZy1sZWZ0OjAhaW1wb3J0YW50O30gLi1wbDEge3BhZGRpbmctbGVmdDoxcHghaW1wb3J0YW50O30gLi1wbDIge3BhZGRpbmctbGVmdDoycHghaW1wb3J0YW50O30gLi1wbDMge3BhZGRpbmctbGVmdDozcHghaW1wb3J0YW50O30gLi1wbDQge3BhZGRpbmctbGVmdDo0cHghaW1wb3J0YW50O30gLi1wbDUge3BhZGRpbmctbGVmdDo1cHghaW1wb3J0YW50O30gLi1wbDYge3BhZGRpbmctbGVmdDo2cHghaW1wb3J0YW50O30gLi1wbDcge3BhZGRpbmctbGVmdDo3cHghaW1wb3J0YW50O30gLi1wbDgge3BhZGRpbmctbGVmdDo4cHghaW1wb3J0YW50O30gLi1wbDkge3BhZGRpbmctbGVmdDo5cHghaW1wb3J0YW50O30gLi1wbDEwIHtwYWRkaW5nLWxlZnQ6MTBweCFpbXBvcnRhbnQ7fSAuLXBsMTUge3BhZGRpbmctbGVmdDoxNXB4IWltcG9ydGFudDt9IC4tcGwxNiB7cGFkZGluZy1sZWZ0OjE2cHghaW1wb3J0YW50O30gLi1wbDE3IHtwYWRkaW5nLWxlZnQ6MTdweCFpbXBvcnRhbnQ7fSAuLXBsMjAge3BhZGRpbmctbGVmdDoyMHB4IWltcG9ydGFudDt9IC4tcGwyNSB7cGFkZGluZy1sZWZ0OjI1cHghaW1wb3J0YW50O30gLi1wbDMwIHtwYWRkaW5nLWxlZnQ6MzBweCFpbXBvcnRhbnQ7fSAuLXBsMzUge3BhZGRpbmctbGVmdDozNXB4IWltcG9ydGFudDt9IC4tcGw0MCB7cGFkZGluZy1sZWZ0OjQwcHghaW1wb3J0YW50O30gLi1wbDQ1IHtwYWRkaW5nLWxlZnQ6NDVweCFpbXBvcnRhbnQ7fSAuLXBsNTAge3BhZGRpbmctbGVmdDo1MHB4IWltcG9ydGFudDt9IC4tcGw1NSB7cGFkZGluZy1sZWZ0OjU1cHghaW1wb3J0YW50O30gLi1wcjAge3BhZGRpbmctcmlnaHQ6MCFpbXBvcnRhbnQ7fSAuLXByMSB7cGFkZGluZy1yaWdodDoxcHghaW1wb3J0YW50O30gLi1wcjIge3BhZGRpbmctcmlnaHQ6MnB4IWltcG9ydGFudDt9IC4tcHIzIHtwYWRkaW5nLXJpZ2h0OjNweCFpbXBvcnRhbnQ7fSAuLXByNCB7cGFkZGluZy1yaWdodDo0cHghaW1wb3J0YW50O30gLi1wcjUge3BhZGRpbmctcmlnaHQ6NXB4IWltcG9ydGFudDt9IC4tcHI2IHtwYWRkaW5nLXJpZ2h0OjZweCFpbXBvcnRhbnQ7fSAuLXByNyB7cGFkZGluZy1yaWdodDo3cHghaW1wb3J0YW50O30gLi1wcjgge3BhZGRpbmctcmlnaHQ6OHB4IWltcG9ydGFudDt9IC4tcHI5IHtwYWRkaW5nLXJpZ2h0OjlweCFpbXBvcnRhbnQ7fSAuLXByMTAge3BhZGRpbmctcmlnaHQ6MTBweCFpbXBvcnRhbnQ7fSAuLXByMTUge3BhZGRpbmctcmlnaHQ6MTVweCFpbXBvcnRhbnQ7fSAuLXByMjAge3BhZGRpbmctcmlnaHQ6MjBweCFpbXBvcnRhbnQ7fSAuLXByMjUge3BhZGRpbmctcmlnaHQ6MjVweCFpbXBvcnRhbnQ7fSAuLXByMzAge3BhZGRpbmctcmlnaHQ6MzBweCFpbXBvcnRhbnQ7fSAuLXByMzUge3BhZGRpbmctcmlnaHQ6MzVweCFpbXBvcnRhbnQ7fSAuLXByNDAge3BhZGRpbmctcmlnaHQ6NDBweCFpbXBvcnRhbnQ7fSAuLXByNDUge3BhZGRpbmctcmlnaHQ6NDVweCFpbXBvcnRhbnQ7fSAuLXByNTAge3BhZGRpbmctcmlnaHQ6NTBweCFpbXBvcnRhbnQ7fSAuLXByNTUge3BhZGRpbmctcmlnaHQ6NTVweCFpbXBvcnRhbnQ7fSAuLXB0MHtwYWRkaW5nLXRvcDowIWltcG9ydGFudDt9IC4tcHQxIHtwYWRkaW5nLXRvcDoxcHghaW1wb3J0YW50O30gLi1wdDIge3BhZGRpbmctdG9wOjJweCFpbXBvcnRhbnQ7fSAuLXB0MyB7cGFkZGluZy10b3A6M3B4IWltcG9ydGFudDt9IC4tcHQ0IHtwYWRkaW5nLXRvcDo0cHghaW1wb3J0YW50O30gLi1wdDUge3BhZGRpbmctdG9wOjVweCFpbXBvcnRhbnQ7fSAuLXB0NiB7cGFkZGluZy10b3A6NnB4IWltcG9ydGFudDt9IC4tcHQ3IHtwYWRkaW5nLXRvcDo3cHghaW1wb3J0YW50O30gLi1wdDgge3BhZGRpbmctdG9wOjhweCFpbXBvcnRhbnQ7fSAuLXB0OSB7cGFkZGluZy10b3A6OXB4IWltcG9ydGFudDt9IC4tcHQxMCB7cGFkZGluZy10b3A6MTBweCFpbXBvcnRhbnQ7fSAuLXB0MTUge3BhZGRpbmctdG9wOjE1cHghaW1wb3J0YW50O30gLi1wdDIwIHtwYWRkaW5nLXRvcDoyMHB4IWltcG9ydGFudDt9IC4tcHQyNSB7cGFkZGluZy10b3A6MjVweCFpbXBvcnRhbnQ7fSAuLXB0MzAge3BhZGRpbmctdG9wOjMwcHghaW1wb3J0YW50O30gLi1wdDM1IHtwYWRkaW5nLXRvcDozNXB4IWltcG9ydGFudDt9IC4tcHQ0MCB7cGFkZGluZy10b3A6NDBweCFpbXBvcnRhbnQ7fSAuLXB0NDUge3BhZGRpbmctdG9wOjQ1cHghaW1wb3J0YW50O30gLi1wdDUwIHtwYWRkaW5nLXRvcDo1MHB4IWltcG9ydGFudDt9IC4tcHQ1NSB7cGFkZGluZy10b3A6NTVweCFpbXBvcnRhbnQ7fSAuLXB0MjAwIHtwYWRkaW5nLXRvcDoyMDBweCFpbXBvcnRhbnQ7fSAuLXBiMCB7cGFkZGluZy1ib3R0b206MCFpbXBvcnRhbnQ7fSAuLXBiMSB7cGFkZGluZy1ib3R0b206MXB4IWltcG9ydGFudDt9IC4tcGIyIHtwYWRkaW5nLWJvdHRvbToycHghaW1wb3J0YW50O30gLi1wYjMge3BhZGRpbmctYm90dG9tOjNweCFpbXBvcnRhbnQ7fSAuLXBiNCB7cGFkZGluZy1ib3R0b206NHB4IWltcG9ydGFudDt9IC4tcGI1IHtwYWRkaW5nLWJvdHRvbTo1cHghaW1wb3J0YW50O30gLi1wYjYge3BhZGRpbmctYm90dG9tOjZweCFpbXBvcnRhbnQ7fSAuLXBiNyB7cGFkZGluZy1ib3R0b206N3B4IWltcG9ydGFudDt9IC4tcGI4IHtwYWRkaW5nLWJvdHRvbTo4cHghaW1wb3J0YW50O30gLi1wYjkge3BhZGRpbmctYm90dG9tOjlweCFpbXBvcnRhbnQ7fSAuLXBiMTAge3BhZGRpbmctYm90dG9tOjEwcHghaW1wb3J0YW50O30gLi1wYjE1IHtwYWRkaW5nLWJvdHRvbToxNXB4IWltcG9ydGFudDt9IC4tcGIyMCB7cGFkZGluZy1ib3R0b206MjBweCFpbXBvcnRhbnQ7fSAuLXBiMjUge3BhZGRpbmctYm90dG9tOjI1cHghaW1wb3J0YW50O30gLi1wYjMwIHtwYWRkaW5nLWJvdHRvbTozMHB4IWltcG9ydGFudDt9IC4tcGI0MCB7cGFkZGluZy1ib3R0b206NDBweCFpbXBvcnRhbnQ7fSAtYm9yZGVyLXJhZGl1czAsLXJhZGl1czAsLXJhZDAge2JvcmRlci1yYWRpdXM6MHB4IWltcG9ydGFudDt9IC1ib3JkZXItcmFkaXVzMSwtcmFkaXVzMSwtcmFkMSB7Ym9yZGVyLXJhZGl1czowcHghaW1wb3J0YW50O30gLWJvcmRlci1yYWRpdXMyLC1yYWRpdXMyLC1yYWQyIHtib3JkZXItcmFkaXVzOjBweCFpbXBvcnRhbnQ7fSAtYm9yZGVyLXJhZGl1czMsLXJhZGl1czMsLXJhZDMge2JvcmRlci1yYWRpdXM6MHB4IWltcG9ydGFudDt9IC1ib3JkZXItcmFkaXVzNCwtcmFkaXVzNCwtcmFkNCB7Ym9yZGVyLXJhZGl1czowcHghaW1wb3J0YW50O30gLWJvcmRlci1yYWRpdXM1LC1yYWRpdXM1LC1yYWQ1IHtib3JkZXItcmFkaXVzOjBweCFpbXBvcnRhbnQ7fSAtYm9yZGVyLXJhZGl1czYsLXJhZGl1czYsLXJhZDYge2JvcmRlci1yYWRpdXM6MHB4IWltcG9ydGFudDt9IC1ib3JkZXItcmFkaXVzNywtcmFkaXVzNywtcmFkNyB7Ym9yZGVyLXJhZGl1czowcHghaW1wb3J0YW50O30gLWJvcmRlci1yYWRpdXM4LC1yYWRpdXM4LC1yYWQ4IHtib3JkZXItcmFkaXVzOjBweCFpbXBvcnRhbnQ7fSAtYm9yZGVyLXJhZGl1czksLXJhZGl1czksLXJhZDkge2JvcmRlci1yYWRpdXM6MHB4IWltcG9ydGFudDt9IC1ib3JkZXItcmFkaXVzMTAsLXJhZGl1czEwLC1yYWQxMCB7Ym9yZGVyLXJhZGl1czowcHghaW1wb3J0YW50O30gLi1tYXV0byB7bWFyZ2luOmF1dG8haW1wb3J0YW50O30gLi1tMCAuLW5vbWFyZ2lucywuLW5vbWFyZ2lue21hcmdpbjowIWltcG9ydGFudDt9IC4tbTEge21hcmdpbjoxcHghaW1wb3J0YW50O30gLi1tMiB7bWFyZ2luOjJweCFpbXBvcnRhbnQ7fSAuLW0zIHttYXJnaW46M3B4IWltcG9ydGFudDt9IC4tbTQge21hcmdpbjo0cHghaW1wb3J0YW50O30gLi1tNSB7bWFyZ2luOjVweCFpbXBvcnRhbnQ7fSAuLW02IHttYXJnaW46NnB4IWltcG9ydGFudDt9IC4tbTcge21hcmdpbjo3cHghaW1wb3J0YW50O30gLi1tOCB7bWFyZ2luOjhweCFpbXBvcnRhbnQ7fSAuLW05IHttYXJnaW46OXB4IWltcG9ydGFudDt9IC4tbTEwIHttYXJnaW46MTBweCFpbXBvcnRhbnQ7fSAuLW0xNSB7bWFyZ2luOjE1cHghaW1wb3J0YW50O30gLi1tMjAge21hcmdpbjoyMHB4IWltcG9ydGFudDt9IC4tbTIyIHttYXJnaW46MjJweCFpbXBvcnRhbnQ7fSAuLW0yNSB7bWFyZ2luOjI1cHghaW1wb3J0YW50O30gLi1tNXAge21hcmdpbjo1JSFpbXBvcnRhbnQ7fSAuLW0xMHAge21hcmdpbjoxMCUhaW1wb3J0YW50O30gLi1tMTVwIHttYXJnaW46MTUlIWltcG9ydGFudDt9IC4tbTIwcCB7bWFyZ2luOjIwJSFpbXBvcnRhbnQ7fSAuLW0yNXAge21hcmdpbjoyNSUhaW1wb3J0YW50O30gLi1tbGF1dG8ge21hcmdpbi1sZWZ0OmF1dG8haW1wb3J0YW50O30gLi1tbDAge21hcmdpbi1sZWZ0OjAhaW1wb3J0YW50O30gLi1tbDEge21hcmdpbi1sZWZ0OjFweCFpbXBvcnRhbnQ7fSAuLW1sMiB7bWFyZ2luLWxlZnQ6MnB4IWltcG9ydGFudDt9IC4tbWwzIHttYXJnaW4tbGVmdDozcHghaW1wb3J0YW50O30gLi1tbDQge21hcmdpbi1sZWZ0OjRweCFpbXBvcnRhbnQ7fSAuLW1sNSB7bWFyZ2luLWxlZnQ6NXB4IWltcG9ydGFudDt9IC4tbWw2IHttYXJnaW4tbGVmdDo2cHghaW1wb3J0YW50O30gLi1tbDcge21hcmdpbi1sZWZ0OjdweCFpbXBvcnRhbnQ7fSAuLW1sOCB7bWFyZ2luLWxlZnQ6OHB4IWltcG9ydGFudDt9IC4tbWw5IHttYXJnaW4tbGVmdDo5cHghaW1wb3J0YW50O30gLi1tbDEwIHttYXJnaW4tbGVmdDoxMHB4IWltcG9ydGFudDt9IC4tbWwxNSB7bWFyZ2luLWxlZnQ6MTVweCFpbXBvcnRhbnQ7fSAuLW1sMjAge21hcmdpbi1sZWZ0OjIwcHghaW1wb3J0YW50O30gLi1tbDI1IHttYXJnaW4tbGVmdDoyNXB4IWltcG9ydGFudDt9IC4tbWwyNyB7bWFyZ2luLWxlZnQ6MjdweCFpbXBvcnRhbnQ7fSAuLW1sMzAge21hcmdpbi1sZWZ0OjMwcHghaW1wb3J0YW50O30gLi1tbDUwIHttYXJnaW4tbGVmdDo1MHB4IWltcG9ydGFudDt9IC4tbWw4MCB7bWFyZ2luLWxlZnQ6ODBweCFpbXBvcnRhbnQ7fSAuLW1sMTAwIHttYXJnaW4tbGVmdDoxMDBweCFpbXBvcnRhbnQ7fSAuLW1sMTMwIHttYXJnaW4tbGVmdDoxMzBweCFpbXBvcnRhbnQ7fSAuLW1sMTUwIHttYXJnaW4tbGVmdDoxNTBweCFpbXBvcnRhbnQ7fSAuLW1sMnAge21hcmdpbi1sZWZ0OjIlIWltcG9ydGFudDt9IC4tbWwzcCB7bWFyZ2luLWxlZnQ6MyUhaW1wb3J0YW50O30gLi1tbDVwIHttYXJnaW4tbGVmdDo1JSFpbXBvcnRhbnQ7fSAuLW1sMTBwIHttYXJnaW4tbGVmdDoxMCUhaW1wb3J0YW50O30gLi1tbDE1cCB7bWFyZ2luLWxlZnQ6MTUlIWltcG9ydGFudDt9IC4tbWwyMHAge21hcmdpbi1sZWZ0OjIwJSFpbXBvcnRhbnQ7fSAuLW1sMjVwIHttYXJnaW4tbGVmdDoyNSUhaW1wb3J0YW50O30gLi1tcmF1dG8ge21hcmdpbi1yaWdodDphdXRvIWltcG9ydGFudDt9IC4tbXIwIHttYXJnaW4tcmlnaHQ6MCFpbXBvcnRhbnQ7fSAuLW1yMSB7bWFyZ2luLXJpZ2h0OjFweCFpbXBvcnRhbnQ7fSAuLW1yMiB7bWFyZ2luLXJpZ2h0OjJweCFpbXBvcnRhbnQ7fSAuLW1yMyB7bWFyZ2luLXJpZ2h0OjNweCFpbXBvcnRhbnQ7fSAuLW1yNCB7bWFyZ2luLXJpZ2h0OjRweCFpbXBvcnRhbnQ7fSAuLW1yNSB7bWFyZ2luLXJpZ2h0OjVweCFpbXBvcnRhbnQ7fSAuLW1yNiB7bWFyZ2luLXJpZ2h0OjZweCFpbXBvcnRhbnQ7fSAuLW1yNyB7bWFyZ2luLXJpZ2h0OjdweCFpbXBvcnRhbnQ7fSAuLW1yOCB7bWFyZ2luLXJpZ2h0OjhweCFpbXBvcnRhbnQ7fSAuLW1yOSB7bWFyZ2luLXJpZ2h0OjlweCFpbXBvcnRhbnQ7fSAuLW1yMTAge21hcmdpbi1yaWdodDoxMHB4IWltcG9ydGFudDt9IC4tbXIxNSB7bWFyZ2luLXJpZ2h0OjE1cHghaW1wb3J0YW50O30gLi1tcjIwIHttYXJnaW4tcmlnaHQ6MjBweCFpbXBvcnRhbnQ7fSAuLW1yMjUge21hcmdpbi1yaWdodDoyNXB4IWltcG9ydGFudDt9IC4tbXIzMCB7bWFyZ2luLXJpZ2h0OjMwcHghaW1wb3J0YW50O30gLi1tcjM1IHttYXJnaW4tcmlnaHQ6MzVweCFpbXBvcnRhbnQ7fSAuLW1yNDAge21hcmdpbi1yaWdodDo0MHB4IWltcG9ydGFudDt9IC4tbXI0NSB7bWFyZ2luLXJpZ2h0OjQ1cHghaW1wb3J0YW50O30gLi1tcjUwIHttYXJnaW4tcmlnaHQ6NTBweCFpbXBvcnRhbnQ7fSAuLW1yMTAwIHttYXJnaW4tcmlnaHQ6MTAwcHghaW1wb3J0YW50O30gLi1tcjJwIHttYXJnaW4tcmlnaHQ6MiUhaW1wb3J0YW50O30gLi1tcjNwIHttYXJnaW4tcmlnaHQ6MyUhaW1wb3J0YW50O30gLi1tcjVwIHttYXJnaW4tcmlnaHQ6NSUhaW1wb3J0YW50O30gLi1tcjEwcCB7bWFyZ2luLXJpZ2h0OjEwJSFpbXBvcnRhbnQ7fSAuLW1yMTVwIHttYXJnaW4tcmlnaHQ6MTUlIWltcG9ydGFudDt9IC4tbXIyMHAge21hcmdpbi1yaWdodDoyMCUhaW1wb3J0YW50O30gLi1tcjI1cCB7bWFyZ2luLXJpZ2h0OjI1JSFpbXBvcnRhbnQ7fSAuLW10YXV0byB7bWFyZ2luLXRvcDphdXRvIWltcG9ydGFudDt9IC4tbXQtN3ttYXJnaW4tdG9wOi03cHghaW1wb3J0YW50O30gLi1tdDB7bWFyZ2luLXRvcDowIWltcG9ydGFudDt9IC4tbXQxIHttYXJnaW4tdG9wOjFweCFpbXBvcnRhbnQ7fSAuLW10MiB7bWFyZ2luLXRvcDoycHghaW1wb3J0YW50O30gLi1tdDMge21hcmdpbi10b3A6M3B4IWltcG9ydGFudDt9IC4tbXQ0IHttYXJnaW4tdG9wOjRweCFpbXBvcnRhbnQ7fSAuLW10NSB7bWFyZ2luLXRvcDo1cHghaW1wb3J0YW50O30gLi1tdDYge21hcmdpbi10b3A6NnB4IWltcG9ydGFudDt9IC4tbXQ3IHttYXJnaW4tdG9wOjdweCFpbXBvcnRhbnQ7fSAuLW10OCB7bWFyZ2luLXRvcDo4cHghaW1wb3J0YW50O30gLi1tdDkge21hcmdpbi10b3A6OXB4IWltcG9ydGFudDt9IC4tbXQxMCB7bWFyZ2luLXRvcDoxMHB4IWltcG9ydGFudDt9IC4tbXQxMSB7bWFyZ2luLXRvcDoxMXB4IWltcG9ydGFudDt9IC4tbXQxMiB7bWFyZ2luLXRvcDoxMnB4IWltcG9ydGFudDt9IC4tbXQxMyB7bWFyZ2luLXRvcDoxM3B4IWltcG9ydGFudDt9IC4tbXQxNCB7bWFyZ2luLXRvcDoxNHB4IWltcG9ydGFudDt9IC4tbXQxNSB7bWFyZ2luLXRvcDoxNXB4IWltcG9ydGFudDt9IC4tbXQyMCB7bWFyZ2luLXRvcDoyMHB4IWltcG9ydGFudDt9IC4tbXQyNSB7bWFyZ2luLXRvcDoyNXB4IWltcG9ydGFudDt9IC4tbXQyNyB7bWFyZ2luLXRvcDoyN3B4IWltcG9ydGFudDt9IC4tbXQzMCB7bWFyZ2luLXRvcDozMHB4IWltcG9ydGFudDt9IC4tbXQzNSB7bWFyZ2luLXRvcDozNXB4IWltcG9ydGFudDt9IC4tbXQ0MCB7bWFyZ2luLXRvcDo0MHB4IWltcG9ydGFudDt9IC4tbXQ1MCB7bWFyZ2luLXRvcDo1MHB4IWltcG9ydGFudDt9IC4tbXQxMTUge21hcmdpbi10b3A6MTE1cHghaW1wb3J0YW50O30gLi1tdDIwMCB7bWFyZ2luLXRvcDoyMDBweCFpbXBvcnRhbnQ7fSAuLW1iYXV0byB7bWFyZ2luLWJvdHRvbTphdXRvIWltcG9ydGFudDt9IC4tbWIwIHttYXJnaW4tYm90dG9tOjAhaW1wb3J0YW50O30gLi1tYjEge21hcmdpbi1ib3R0b206MXB4IWltcG9ydGFudDt9IC4tbWIyIHttYXJnaW4tYm90dG9tOjJweCFpbXBvcnRhbnQ7fSAuLW1iMyB7bWFyZ2luLWJvdHRvbTozcHghaW1wb3J0YW50O30gLi1tYjQge21hcmdpbi1ib3R0b206NHB4IWltcG9ydGFudDt9IC4tbWI1IHttYXJnaW4tYm90dG9tOjVweCFpbXBvcnRhbnQ7fSAuLW1iNiB7bWFyZ2luLWJvdHRvbTo2cHghaW1wb3J0YW50O30gLi1tYjcge21hcmdpbi1ib3R0b206N3B4IWltcG9ydGFudDt9IC4tbWI4IHttYXJnaW4tYm90dG9tOjhweCFpbXBvcnRhbnQ7fSAuLW1iOSB7bWFyZ2luLWJvdHRvbTo5cHghaW1wb3J0YW50O30gLi1tYjEwIHttYXJnaW4tYm90dG9tOjEwcHghaW1wb3J0YW50O30gLi1tYjE1IHttYXJnaW4tYm90dG9tOjE1cHghaW1wb3J0YW50O30gLi1tYjIwIHttYXJnaW4tYm90dG9tOjIwcHghaW1wb3J0YW50O30gLi1tYjI1IHttYXJnaW4tYm90dG9tOjI1cHghaW1wb3J0YW50O30gLi1tYjMwIHttYXJnaW4tYm90dG9tOjMwcHghaW1wb3J0YW50O30gLi1tYjUwIHttYXJnaW4tYm90dG9tOjUwcHghaW1wb3J0YW50O30gLi10b3AtMTAsIC4tdC0xMCB7dG9wOi0xMHB4IWltcG9ydGFudDt9IC4tdG9wMCwgLi10MCB7dG9wOjBweCFpbXBvcnRhbnQ7fSAuLXRvcDEsIC4tdDEge3RvcDoxcHghaW1wb3J0YW50O30gLi10b3AyLCAuLXQyIHt0b3A6MnB4IWltcG9ydGFudDt9IC4tdG9wMywgLi10MyB7dG9wOjNweCFpbXBvcnRhbnQ7fSAuLXRvcDQsIC4tdDQge3RvcDo0cHghaW1wb3J0YW50O30gLi10b3A1LCAuLXQ1IHt0b3A6NXB4IWltcG9ydGFudDt9IC4tdG9wNiwgLi10NiB7dG9wOjZweCFpbXBvcnRhbnQ7fSAuLXRvcDcsIC4tdDcge3RvcDo3cHghaW1wb3J0YW50O30gLi10b3A4LCAuLXQ4IHt0b3A6OHB4IWltcG9ydGFudDt9IC4tdG9wOSwgLi10OSB7dG9wOjlweCFpbXBvcnRhbnQ7fSAuLXRvcDEwLCAuLXQxMCB7dG9wOjEwcHghaW1wb3J0YW50O30gLi10b3AxNSwgLi10MTUge3RvcDoxNXB4IWltcG9ydGFudDt9IC4tdG9wMjAsIC4tdDIwIHt0b3A6MjBweCFpbXBvcnRhbnQ7fSAuLXRvcDI1LCAuLXQyNXt0b3A6MjVweCFpbXBvcnRhbnQ7fSAuLXRvcDMwLCAuLXQzMCB7dG9wOjMwcHghaW1wb3J0YW50O30gLi10b3AzNSwgLi10MzUge3RvcDozNXB4IWltcG9ydGFudDt9IC4tdG9wNDAsIC4tdDQwIHt0b3A6NDBweCFpbXBvcnRhbnQ7fSAuLXRvcDQ1LCAuLXQ0NSB7dG9wOjQ1cHghaW1wb3J0YW50O30gLi10b3A1MCwgLi10NTAge3RvcDo1MHB4IWltcG9ydGFudDt9IC4tdG9wMTAwLCAuLXQxMDAge3RvcDoxMDBweCFpbXBvcnRhbnQ7fSAuLXRvcDIwMCwgLi10MjAwIHt0b3A6MjAwcHghaW1wb3J0YW50O30gLi10b3A1cCwgLi10NXAge3RvcDo1JSFpbXBvcnRhbnQ7fSAuLXRvcDEwcCwgLi10MTBwIHt0b3A6MTAlIWltcG9ydGFudDt9IC4tdG9wMTVwLCAuLXQxNXAge3RvcDoxNSUhaW1wb3J0YW50O30gLi10b3AyMHAsIC4tdDIwcCB7dG9wOjIwJSFpbXBvcnRhbnQ7fSAuLXRvcDI1cCwgLi10MjVwIHt0b3A6MjUlIWltcG9ydGFudDt9IC4tdG9wNTBwLCAuLXQ1MHAge3RvcDo1MCUhaW1wb3J0YW50O30gLi10b3AxMDBwLCAuLXQxMDBwIHt0b3A6MTAwJSFpbXBvcnRhbnQ7fSAuLWxlZnQwLCAuLWwwIHtsZWZ0OjBweCFpbXBvcnRhbnQ7fSAuLWxlZnQxLCAuLWwxIHtsZWZ0OjFweCFpbXBvcnRhbnQ7fSAuLWxlZnQyLCAuLWwyIHtsZWZ0OjJweCFpbXBvcnRhbnQ7fSAuLWxlZnQzLCAuLWwzIHtsZWZ0OjNweCFpbXBvcnRhbnQ7fSAuLWxlZnQ0LCAuLWw0IHtsZWZ0OjRweCFpbXBvcnRhbnQ7fSAuLWxlZnQ1LCAuLWw1IHtsZWZ0OjVweCFpbXBvcnRhbnQ7fSAuLWxlZnQ2LCAuLWw2IHtsZWZ0OjZweCFpbXBvcnRhbnQ7fSAuLWxlZnQ3LCAuLWw3IHtsZWZ0OjdweCFpbXBvcnRhbnQ7fSAuLWxlZnQ4LCAuLWw4IHtsZWZ0OjhweCFpbXBvcnRhbnQ7fSAuLWxlZnQ5LCAuLWw5IHtsZWZ0OjlweCFpbXBvcnRhbnQ7fSAuLWxlZnQxMCwgLi1sMTAge2xlZnQ6MTBweCFpbXBvcnRhbnQ7fSAuLWxlZnQxNSwgLi1sMTUge2xlZnQ6MTVweCFpbXBvcnRhbnQ7fSAuLWxlZnQyMCwgLi1sMjAge2xlZnQ6MjBweCFpbXBvcnRhbnQ7fSAuLWxlZnQyNSwgLi1sMjV7bGVmdDoyNXB4IWltcG9ydGFudDt9IC4tbGVmdDMwLCAuLWwzMCB7bGVmdDozMHB4IWltcG9ydGFudDt9IC4tbGVmdDM1LCAuLWwzNSB7bGVmdDozNXB4IWltcG9ydGFudDt9IC4tbGVmdDQwLCAuLWw0MCB7bGVmdDo0MHB4IWltcG9ydGFudDt9IC4tbGVmdDQ1LCAuLWw0NSB7bGVmdDo0NXB4IWltcG9ydGFudDt9IC4tbGVmdDUwLCAuLWw1MCB7bGVmdDo1MHB4IWltcG9ydGFudDt9IC4tbGVmdDU1LCAuLWw1NSB7bGVmdDo1NXB4IWltcG9ydGFudDt9IC4tbGVmdDYwLCAuLWw2MCB7bGVmdDo2MHB4IWltcG9ydGFudDt9IC4tbGVmdDY1LCAuLWw2NSB7bGVmdDo2NXB4IWltcG9ydGFudDt9IC4tbGVmdDcwLCAuLWw3MCB7bGVmdDo3MHB4IWltcG9ydGFudDt9IC4tbGVmdDc1LCAuLWw3NSB7bGVmdDo3NXB4IWltcG9ydGFudDt9IC4tbGVmdDgwLCAuLWw4MCB7bGVmdDo4MHB4IWltcG9ydGFudDt9IC4tbGVmdDg1LCAuLWw4NSB7bGVmdDo4NXB4IWltcG9ydGFudDt9IC4tbGVmdDkwLCAuLWw5MCB7bGVmdDo5MHB4IWltcG9ydGFudDt9IC4tbGVmdDk1LCAuLWw5NSB7bGVmdDo5NXB4IWltcG9ydGFudDt9IC4tbGVmdDEwMCwgLi1sMTAwIHtsZWZ0OjEwMHB4IWltcG9ydGFudDt9IC4tbGVmdDE1MCwgLi1sMTUwIHtsZWZ0OjE1MHB4IWltcG9ydGFudDt9IC4tbGVmdDIwMCwgLi1sMjAwIHtsZWZ0OjIwMHB4IWltcG9ydGFudDt9IC4tbGVmdDI1MCwgLi1sMjUwIHtsZWZ0OjI1MHB4IWltcG9ydGFudDt9IC4tbGVmdDMwMCwgLi1sMzAwIHtsZWZ0OjMwMHB4IWltcG9ydGFudDt9IC4tbGVmdDVwLCAuLWw1cCB7bGVmdDo1JSFpbXBvcnRhbnQ7fSAuLWxlZnQxMHAsIC4tbDEwcCB7bGVmdDoxMCUhaW1wb3J0YW50O30gLi1sZWZ0MTVwLCAuLWwxNXAge2xlZnQ6MTUlIWltcG9ydGFudDt9IC4tbGVmdDIwcCwgLi1sMjBwIHtsZWZ0OjIwJSFpbXBvcnRhbnQ7fSAuLWxlZnQyNXAsIC4tbDI1cCB7bGVmdDoyNSUhaW1wb3J0YW50O30gLi1sZWZ0NDBwLCAuLWw0MHAge2xlZnQ6NDAlIWltcG9ydGFudDt9IC4tbGVmdDUwcCwgLi1sNTBwIHtsZWZ0OjUwJSFpbXBvcnRhbnQ7fSAuLWxlZnQxMDBwLCAuLWwxMDBwIHtsZWZ0OjEwMCUhaW1wb3J0YW50O30gLi1yaWdodDAsIC4tcjAge3JpZ2h0OjBweCFpbXBvcnRhbnQ7fSAuLXJpZ2h0MSwgLi1yMSB7cmlnaHQ6MXB4IWltcG9ydGFudDt9IC4tcmlnaHQyLCAuLXIyIHtyaWdodDoycHghaW1wb3J0YW50O30gLi1yaWdodDMsIC4tcjMge3JpZ2h0OjNweCFpbXBvcnRhbnQ7fSAuLXJpZ2h0NCwgLi1yNCB7cmlnaHQ6NHB4IWltcG9ydGFudDt9IC4tcmlnaHQ1LCAuLXI1IHtyaWdodDo1cHghaW1wb3J0YW50O30gLi1yaWdodDYsIC4tcjYge3JpZ2h0OjZweCFpbXBvcnRhbnQ7fSAuLXJpZ2h0NywgLi1yNyB7cmlnaHQ6N3B4IWltcG9ydGFudDt9IC4tcmlnaHQ4LCAuLXI4IHtyaWdodDo4cHghaW1wb3J0YW50O30gLi1yaWdodDksIC4tcjkge3JpZ2h0OjlweCFpbXBvcnRhbnQ7fSAuLXJpZ2h0MTAsIC4tcjEwIHtyaWdodDoxMHB4IWltcG9ydGFudDt9IC4tcmlnaHQxNSwgLi1yMTUge3JpZ2h0OjE1cHghaW1wb3J0YW50O30gLi1yaWdodDIwLCAuLXIyMCB7cmlnaHQ6MjBweCFpbXBvcnRhbnQ7fSAuLXJpZ2h0MjUsIC4tcjI1IHtyaWdodDoyNXB4IWltcG9ydGFudDt9IC4tcmlnaHQzMCwgLi1yMzAge3JpZ2h0OjMwcHghaW1wb3J0YW50O30gLi1yaWdodDM1LCAuLXIzNSB7cmlnaHQ6MzVweCFpbXBvcnRhbnQ7fSAuLXJpZ2h0NDAsIC4tcjQwIHtyaWdodDo0MHB4IWltcG9ydGFudDt9IC4tcmlnaHQ0NSwgLi1yNDUge3JpZ2h0OjQ1cHghaW1wb3J0YW50O30gLi1yaWdodDUwLCAuLXI1MCB7cmlnaHQ6NTBweCFpbXBvcnRhbnQ7fSAuLXJpZ2h0NTUsIC4tcjU1IHtyaWdodDo1NXB4IWltcG9ydGFudDt9IC4tcmlnaHQ2MCwgLi1yNjAge3JpZ2h0OjYwcHghaW1wb3J0YW50O30gLi1yaWdodDY1LCAuLXI2NSB7cmlnaHQ6NjVweCFpbXBvcnRhbnQ7fSAuLXJpZ2h0NzAsIC4tcjcwIHtyaWdodDo3MHB4IWltcG9ydGFudDt9IC4tcmlnaHQ3NSwgLi1yNzUge3JpZ2h0Ojc1cHghaW1wb3J0YW50O30gLi1yaWdodDgwLCAuLXI4MCB7cmlnaHQ6ODBweCFpbXBvcnRhbnQ7fSAuLXJpZ2h0ODUsIC4tcjg1IHtyaWdodDo4NXB4IWltcG9ydGFudDt9IC4tcmlnaHQ5MCwgLi1yOTAge3JpZ2h0OjkwcHghaW1wb3J0YW50O30gLi1yaWdodDk1LCAuLXI5NSB7cmlnaHQ6OTVweCFpbXBvcnRhbnQ7fSAuLXJpZ2h0MTAwLCAuLXIxMDAge3JpZ2h0OjEwMHB4IWltcG9ydGFudDt9IC4tcmlnaHQxNTAsIC4tcjE1MCB7cmlnaHQ6MTUwcHghaW1wb3J0YW50O30gLi1yaWdodDIwMCwgLi1yMjAwIHtyaWdodDoyMDBweCFpbXBvcnRhbnQ7fSAuLXJpZ2h0MjUwLCAuLXIyNTAge3JpZ2h0OjI1MHB4IWltcG9ydGFudDt9IC4tcmlnaHQ1cCwgLi1yNXAge3JpZ2h0OjUlIWltcG9ydGFudDt9IC4tcmlnaHQxMHAsIC4tcjEwcCB7cmlnaHQ6MTAlIWltcG9ydGFudDt9IC4tcmlnaHQxNXAsIC4tcjE1cCB7cmlnaHQ6MTUlIWltcG9ydGFudDt9IC4tcmlnaHQyMHAsIC4tcjIwcCB7cmlnaHQ6MjAlIWltcG9ydGFudDt9IC4tcmlnaHQyNXAsIC4tcjI1cCB7cmlnaHQ6MjUlIWltcG9ydGFudDt9IC4tcmlnaHQ1MHAsIC4tcjUwcCB7cmlnaHQ6NTAlIWltcG9ydGFudDt9IC4tcmlnaHQxMDBwLCAuLXIxMDBwIHtyaWdodDoxMDAlIWltcG9ydGFudDt9IC4tei1pbmRleDk5e3otaW5kZXg6OTkhaW1wb3J0YW50O30gLi16LWluZGV4MTAwe3otaW5kZXg6MTAwIWltcG9ydGFudDt9IC4tei1pbmRleDEwMXt6LWluZGV4OjEwMSFpbXBvcnRhbnQ7fSAuLXotaW5kZXgxMDAxLCAuemluZGV4MTAwMXsgei1pbmRleDoxMDAxIWltcG9ydGFudDsgfSAuLXotaW5kZXgzNjAwMSwgLnppbmRleDM2MDAxeyB6LWluZGV4OjM2MDAxIWltcG9ydGFudDsgfSAuLW5vLWJvcmRlci1zcGFjaW5neyBib3JkZXItc3BhY2luZzowIWltcG9ydGFudDsgfSAuLXRhYmxleyBjZWxscGFkZGluZzowIWltcG9ydGFudDsgY2VsbHNwYWNpbmc6MCFpbXBvcnRhbnQ7IGJvcmRlcjowIWltcG9ydGFudDsgfSB0YWJsZS4tdGFibGUgdGhlYWQgdGggeyBiYWNrZ3JvdW5kOiNjM2Q5ZmYhaW1wb3J0YW50OyB9IHRhYmxlLi10YWJsZSB0ciB0aCwgdGFibGUuLXRhYmxlIHRyIHRkIHsgcGFkZGluZzo0cHggMTBweCA0cHggNXB4IWltcG9ydGFudDsgfSB0ci4tYm9yZGVyLWJvdHRvbSB0ZCwgdHIuLWJvcmRlci1ib3R0b20gdGggeyBib3JkZXItYm90dG9tOjFwdCBzb2xpZCBibGFjayFpbXBvcnRhbnQ7IH0gLXdoaXRlLXNwYWNlLW5vd3JhcCB7d2hpdGUtc3BhY2U6bm93cmFwIWltcG9ydGFudDt9IC4tY3Vyc29yLWF1dG8geyBjdXJzb3I6YXV0bzsgfSAuLWN1cnNvci1kZWZhdWx0IHsgY3Vyc29yOmRlZmF1bHQ7IH0gLi1jdXJzb3Itbm9uZSB7IGN1cnNvcjpub25lOyB9IC4tY3Vyc29yLWNvbnRleHQtbWVudSB7IGN1cnNvcjpjb250ZXh0LW1lbnU7IH0gLi1jdXJzb3ItaGVscCB7IGN1cnNvcjpoZWxwOyB9IC4tY3Vyc29yLXBvaW50ZXIgeyBjdXJzb3I6cG9pbnRlcjsgfSAuLWN1cnNvci1wcm9ncmVzcyB7IGN1cnNvcjpwcm9ncmVzczsgfSAuLWN1cnNvci13YWl0IHsgY3Vyc29yOndhaXQ7IH0gLi1jdXJzb3ItY2VsbCB7IGN1cnNvcjpjZWxsOyB9IC4tY3Vyc29yLWNyb3NzaGFpciB7IGN1cnNvcjpjcm9zc2hhaXI7IH0gLi1jdXJzb3ItdGV4dCB7IGN1cnNvcjp0ZXh0OyB9IC4tY3Vyc29yLXZlcnRpY2FsLXRleHQgeyBjdXJzb3I6dmVydGljYWwtdGV4dDsgfSAuLWN1cnNvci1hbGlhcyB7IGN1cnNvcjphbGlhczsgfSAuLWN1cnNvci1jb3B5IHsgY3Vyc29yOmNvcHk7IH0gLi1jdXJzb3ItbW92ZSB7IGN1cnNvcjptb3ZlOyB9IC4tY3Vyc29yLW5vLWRyb3AgeyBjdXJzb3I6bm8tZHJvcDsgfSAuLWN1cnNvci1ub3QtYWxsb3dlZCB7IGN1cnNvcjpub3QtYWxsb3dlZDsgfSAuLWN1cnNvci1hbGwtc2Nyb2xsIHsgY3Vyc29yOmFsbC1zY3JvbGw7IH0gLi1jdXJzb3ItY29sLXJlc2l6ZSB7IGN1cnNvcjpjb2wtcmVzaXplOyB9IC4tY3Vyc29yLXJvdy1yZXNpemUgeyBjdXJzb3I6cm93LXJlc2l6ZTsgfSAuLWN1cnNvci1uLXJlc2l6ZSB7IGN1cnNvcjpuLXJlc2l6ZTsgfSAuLWN1cnNvci1lLXJlc2l6ZSB7IGN1cnNvcjplLXJlc2l6ZTsgfSAuLWN1cnNvci1zLXJlc2l6ZSB7IGN1cnNvcjpzLXJlc2l6ZTsgfSAuLWN1cnNvci13LXJlc2l6ZSB7IGN1cnNvcjp3LXJlc2l6ZTsgfSAuLWN1cnNvci1ucy1yZXNpemUgeyBjdXJzb3I6bnMtcmVzaXplOyB9IC4tY3Vyc29yLWV3LXJlc2l6ZSB7IGN1cnNvcjpldy1yZXNpemU7IH0gLi1jdXJzb3ItbmUtcmVzaXplIHsgY3Vyc29yOm5lLXJlc2l6ZTsgfSAuLWN1cnNvci1udy1yZXNpemUgeyBjdXJzb3I6bnctcmVzaXplOyB9IC4tY3Vyc29yLXNlLXJlc2l6ZSB7IGN1cnNvcjpzZS1yZXNpemU7IH0gLi1jdXJzb3Itc3ctcmVzaXplIHsgY3Vyc29yOnN3LXJlc2l6ZTsgfSAuLWN1cnNvci1uZXN3LXJlc2l6ZSB7IGN1cnNvcjpuZXN3LXJlc2l6ZTsgfSAuLWN1cnNvci1ud3NlLXJlc2l6ZSB7IGN1cnNvcjpud3NlLXJlc2l6ZTsgfSAuLWZvbnQtc2l6ZTAsIC4tZnMweyBmb250LXNpemU6MCFpbXBvcnRhbnQ7fSAuLWZvbnQtc2l6ZTEsIC4tZnMxeyBmb250LXNpemU6MXB4IWltcG9ydGFudDt9IC4tZm9udC1zaXplMiwgLi1mczJ7IGZvbnQtc2l6ZToycHghaW1wb3J0YW50O30gLi1mb250LXNpemUzLCAuLWZzM3sgZm9udC1zaXplOjNweCFpbXBvcnRhbnQ7fSAuLWZvbnQtc2l6ZTQsIC4tZnM0eyBmb250LXNpemU6NHB4IWltcG9ydGFudDt9IC4tZm9udC1zaXplNSwgLi1mczV7IGZvbnQtc2l6ZTo1cHghaW1wb3J0YW50O30gLi1mb250LXNpemU2LCAuLWZzNnsgZm9udC1zaXplOjZweCFpbXBvcnRhbnQ7fSAuLWZvbnQtc2l6ZTcsIC4tZnM3eyBmb250LXNpemU6N3B4IWltcG9ydGFudDt9IC4tZm9udC1zaXplOCwgLi1mczh7IGZvbnQtc2l6ZTowLjVyZW0gIWltcG9ydGFudDt9IC4tZm9udC1zaXplOSwgLi1mczl7IGZvbnQtc2l6ZTowLjU2M3JlbSAhaW1wb3J0YW50O30gLi1mb250LXNpemUxMCwgLi1mczEweyBmb250LXNpemU6MC42MjVyZW0gIWltcG9ydGFudDt9IC4tZm9udC1zaXplMTEsIC4tZnMxMXsgZm9udC1zaXplOjAuNjg4cmVtICFpbXBvcnRhbnQ7fSAuLWZvbnQtc2l6ZTEyLCAuLWZzMTJ7IGZvbnQtc2l6ZTowLjc1cmVtICFpbXBvcnRhbnQ7fSAuLWZvbnQtc2l6ZTEzLCAuLWZzMTN7IGZvbnQtc2l6ZTowLjgxM3JlbSAhaW1wb3J0YW50O30gLi1mb250LXNpemUxNCwgLi1mczE0eyBmb250LXNpemU6MC44NzVyZW0gIWltcG9ydGFudDt9IC4tZm9udC1zaXplMTUsIC4tZnMxNXsgZm9udC1zaXplOjAuOTM4cmVtICFpbXBvcnRhbnQ7fSAuLWZvbnQtc2l6ZTE2LCAuLWZzMTZ7IGZvbnQtc2l6ZToxcmVtICFpbXBvcnRhbnQ7fSAuLWZvbnQtc2l6ZTE3LCAuLWZzMTd7IGZvbnQtc2l6ZToxLjA2M3JlbSAhaW1wb3J0YW50O30gLi1mb250LXNpemUxOCwgLi1mczE4eyBmb250LXNpemU6MS4xMjVyZW0gIWltcG9ydGFudDt9IC4tZm9udC1zaXplMTksIC4tZnMxOXsgZm9udC1zaXplOjEuMTg4cmVtICFpbXBvcnRhbnQ7fSAuLWZvbnQtc2l6ZTIwLCAuLWZzMjB7IGZvbnQtc2l6ZToxLjI1cmVtICFpbXBvcnRhbnQ7fSAuLWZvbnQtc2l6ZTIxLCAuLWZzMjF7IGZvbnQtc2l6ZToxLjMxM3JlbSAhaW1wb3J0YW50O30gLi1mb250LXNpemUyMiwgLi1mczIyeyBmb250LXNpemU6MS4zNzVyZW0gIWltcG9ydGFudDt9IC4tZm9udC1zaXplMjMsIC4tZnMyM3sgZm9udC1zaXplOjEuNDM4cmVtICFpbXBvcnRhbnQ7fSAuLWZvbnQtc2l6ZTI0LCAuLWZzMjR7IGZvbnQtc2l6ZToxLjVyZW0gIWltcG9ydGFudDt9IC4tZm9udC1zaXplMjUsIC4tZnMyNXsgZm9udC1zaXplOjEuNTYzcmVtICFpbXBvcnRhbnQ7fSAuLWZvbnQtc2l6ZTI2LCAuLWZzMjZ7IGZvbnQtc2l6ZToxLjYyNXJlbSAhaW1wb3J0YW50O30gLi1mb250LXNpemUyNywgLi1mczI3eyBmb250LXNpemU6MS42ODhyZW0gIWltcG9ydGFudDt9IC4tZm9udC1zaXplMjgsIC4tZnMyOHsgZm9udC1zaXplOjEuNzVyZW0gIWltcG9ydGFudDt9IC4tZm9udC1zaXplMjksIC4tZnMyOXsgZm9udC1zaXplOjEuODEzcmVtICFpbXBvcnRhbnQ7fSAuLWZvbnQtc2l6ZTMwLCAuLWZzMzB7IGZvbnQtc2l6ZToxLjg3NXJlbSAhaW1wb3J0YW50O30gLi1mb250LXNpemUzMSwgLi1mczMxeyBmb250LXNpemU6MS45MzhyZW0gIWltcG9ydGFudDt9IC4tZm9udC1zaXplMzIsIC4tZnMzMnsgZm9udC1zaXplOjJyZW0gIWltcG9ydGFudDt9IC4tZm9udC1zaXplMzMsIC4tZnMzM3sgZm9udC1zaXplOjIuMDYzcmVtICFpbXBvcnRhbnQ7fSAuLWZvbnQtc2l6ZTM0LCAuLWZzMzR7IGZvbnQtc2l6ZToyLjEyNXJlbSAhaW1wb3J0YW50O30gLi1mb250LXNpemUzNSwgLi1mczM1eyBmb250LXNpemU6Mi4xODhyZW0gIWltcG9ydGFudDt9IC4tZm9udC1zaXplMzYsIC4tZnMzNnsgZm9udC1zaXplOjIuMjVyZW0gIWltcG9ydGFudDt9IC4tZm9udC1zaXplMzcsIC4tZnMzN3sgZm9udC1zaXplOjIuMzEzcmVtICFpbXBvcnRhbnQ7fSAuLWZvbnQtc2l6ZTM4LCAuLWZzMzh7IGZvbnQtc2l6ZToyLjM3NXJlbSAhaW1wb3J0YW50O30gLi1mb250LXNpemUzOSwgLi1mczM5eyBmb250LXNpemU6Mi40MzhyZW0gIWltcG9ydGFudDt9IC4tZm9udC1zaXplNDAsIC4tZnM0MHsgZm9udC1zaXplOjIuNXJlbSAhaW1wb3J0YW50O30gLi1yZWQtbGluZS1oMzV7IGhlaWdodDozNXB4OyBtYXJnaW4tYm90dG9tOi0zNXB4OyBwb3NpdGlvbjpyZWxhdGl2ZTsgdG9wOi0yNXB4OyB9ICNicmVhZGNydW1ic3sgZm9udC1zaXplOjFyZW0gOyBtYXJnaW4tbGVmdDoxMHB4OyBtYXJnaW4tdG9wOjhweDsgbWFyZ2luLWJvdHRvbToxNXB4OyBjb2xvcjojNzU3NTc1OyB9IC5Vc2VkVmRwMk1vYmlsZSAjYnJlYWRjcnVtYnN7IGZvbnQtc2l6ZTowLjlyZW07IGNvbG9yOiMyMjIyMjI7IGZvbnQtd2VpZ2h0OmJvbGQ7IHBhZGRpbmc6MTBweDsgbWFyZ2luOjA7IGxpbmUtaGVpZ2h0OjEuMjVyZW07IH0gI2JyZWFkY3J1bWJzIGF7IGNvbG9yOiM3NTc1NzU7IH0gI2NhcnByb29mX21haW4uY2FycHJvb2ZfbWFpbnsgd2lkdGg6MzQwcHg7IGhlaWdodDphdXRvOyBiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7IHBhZGRpbmc6MjBweDsgZGlzcGxheTpub25lOyB6LWluZGV4Ojk5OTk7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgYm9yZGVyLXJhZGl1czo1cHg7IHBvc2l0aW9uOmZpeGVkOyB0cmFuc2Zvcm06dHJhbnNsYXRlWSgtNTAlKSB0cmFuc2xhdGVYKC01MCUpOyAtbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSkgdHJhbnNsYXRlWCgtNTAlKTsgbGVmdDo1MCU7IHRvcDo1MCU7IH0gI2NhcnByb29mX21haW4gLmNhcnByb29mQ2xvc2VCdXR0b257IGZsb2F0OnJpZ2h0OyB0b3A6MDsgfSAjY2FycHJvb2ZfbWFpbiAuY2FycHJvb2ZNYWluRGl2IHsgd2lkdGg6MTAwJTsgaGVpZ2h0OmF1dG87IHBhZGRpbmc6MDsgYmFja2dyb3VuZDojZmZmOyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IHBvc2l0aW9uOnJlbGF0aXZlOyBmbG9hdDpsZWZ0OyB9ICNjYXJwcm9vZl9tYWluIC5jYXJwcm9vZk1haW5EaXYgVUx7IHdpZHRoOjEwMCU7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgcGFkZGluZzowICFpbXBvcnRhbnQ7IH0gI2NhcnByb29mX21haW4gLmNhcnByb29mTWFpbkRpdiBVTCBMSSB7IGxpc3Qtc3R5bGUtdHlwZTpub25lOyB3aWR0aDoxMDAlOyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjAgMCA1cHggMDsgfSAjY2FycHJvb2ZfbWFpbiAuY2FycHJvb2ZfZmllbGR7IG1hcmdpbi1ib3R0b206N3B4OyB9ICNjYXJwcm9vZl9tYWluIC5jYXJwcm9vZk1lc3NhZ2V7IGZvbnQtc2l6ZToxcmVtOyBjb2xvcjojMDAwOyBmb250LXdlaWdodDpub3JtYWw7IHBhZGRpbmctYm90dG9tOjE1cHg7IHBvc2l0aW9uOnJlbGF0aXZlOyBmbG9hdDpsZWZ0OyB3aWR0aDoxMDAlOyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IH0gI2lubmVyUGFnZURpdnsgZGlzcGxheTp0YWJsZTsgfSAjY2FycHJvb2ZfbWFpbiAuY2FycHJvb2ZfbGFiZWx7IGZvbnQtc2l6ZToxcmVtOyBjb2xvcjojNjY2NjY2OyBmb250LXdlaWdodDpib2xkOyBkaXNwbGF5OmJsb2NrOyBmbG9hdDpsZWZ0OyBtYXJnaW46MDsgdGV4dC1hbGlnbjpsZWZ0OyB3aWR0aDoxMDAlOyBsaW5lLWhlaWdodDoyNXB4OyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IH0gI2NhcnByb29mX21haW4gLmNhcnByb29mX2lucHV0eyBmb250LXNpemU6MXJlbTsgcGFkZGluZzo1cHg7IGJvcmRlcjoxcHggc29saWQgI2I5YmRjMTsgd2lkdGg6MTAwJTsgY29sb3I6Izc5Nzk3OTsgYm94LXNpemluZzpib3JkZXItYm94OyBtYXJnaW4tYm90dG9tOjEwcHg7IGJvcmRlci1yYWRpdXM6NXB4OyB9ICNjYXJwcm9vZl9tYWluIC5jYXJwcm9vZl9pbnB1dDpmb2N1cyB7IGJhY2tncm91bmQtY29sb3I6I0Y0RjRGNDsgY29sb3I6IzEwMTAxMCAhaW1wb3J0YW50OyB9ICNjYXJwcm9vZl9tYWluIC5waG9uZUlucHV0eyBmb250LXNpemU6MXJlbTsgcGFkZGluZzo1cHg7IGJvcmRlcjoxcHggc29saWQgI2I5YmRjMTsgd2lkdGg6NDdweDsgbWFyZ2luLXJpZ2h0OjVweDsgY29sb3I6Izc5Nzk3OTsgYm9yZGVyLXJhZGl1czo1cHg7IH0gI2NhcnByb29mX21haW4gLnBob25lSW5wdXQ6Zm9jdXMgeyBiYWNrZ3JvdW5kLWNvbG9yOiNGNEY0RjQ7IGNvbG9yOiMxMDEwMTA7IH0gI2NhcnByb29mX21haW4gLmNhcnByb29mX2J1dHRvbklFIHsgYm9yZGVyOjFweCBzb2xpZCAjQzgzRjQxOyBtYXJnaW46MTBweCAxMHB4IDEwcHggMDsgcGFkZGluZzozcHggMTBweDsgdGV4dC1hbGlnbjpjZW50ZXI7IGZsb2F0OnJpZ2h0OyB3aWR0aDo2MHB4OyBjb2xvcjojZmZmOyBjdXJzb3I6cG9pbnRlcjsgYm9yZGVyLXRvcC1jb2xvcjojQzgzRjQxOyBib3JkZXItcmlnaHQtY29sb3I6I0M4M0Y0MTsgYm9yZGVyLWJvdHRvbS1jb2xvcjojQzgzRjQxOyBib3JkZXItbGVmdC1jb2xvcjojQzgzRjQxOyBib3JkZXItdG9wLXdpZHRoOjFweDsgYm9yZGVyLXJpZ2h0LXdpZHRoOjFweDsgYm9yZGVyLWJvdHRvbS13aWR0aDoxcHg7IGJvcmRlci1sZWZ0LXdpZHRoOjFweDsgYm9yZGVyLXRvcC1zdHlsZTpzb2xpZDsgYm9yZGVyLXJpZ2h0LXN0eWxlOnNvbGlkOyBib3JkZXItYm90dG9tLXN0eWxlOnNvbGlkOyBib3JkZXItbGVmdC1zdHlsZTpzb2xpZDsgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czo4cHg7IGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOjhweDsgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6OHB4OyBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjhweDsgYm94LXNoYWRvdzowcHggMnB4IDNweCAjNjY2OyBiYWNrZ3JvdW5kLWltYWdlOm5vbmU7IGJhY2tncm91bmQtYXR0YWNobWVudDpzY3JvbGw7IGJhY2tncm91bmQtcmVwZWF0OnJlcGVhdDsgYmFja2dyb3VuZC1wb3NpdGlvbjowIDA7IGJhY2tncm91bmQtc2l6ZTphdXRvOyBiYWNrZ3JvdW5kLW9yaWdpbjpwYWRkaW5nLWJveDsgYmFja2dyb3VuZC1jbGlwOmJvcmRlci1ib3g7IGJhY2tncm91bmQtY29sb3I6cmdiKDIwMCwgNjMsIDY1KTsgZm9udC13ZWlnaHQ6bm9ybWFsOyB9ICNjYXJwcm9vZl9tYWluIC5jYXJwcm9vZl9idXR0b25JRUhvdmVyIHsgYmFja2dyb3VuZC1jb2xvcjojQzgzRjQxOyBmb250LXdlaWdodDpib2xkOyB9ICNjYXJwcm9vZl9tYWluIC5jYXJwcm9vZl9idXR0b24geyBmb250LXNpemU6MS4ycmVtOyBmbG9hdDpyaWdodDsgbWFyZ2luOjI1cHggMCAwOyBmb250LXdlaWdodDpub3JtYWw7IGxpbmUtaGVpZ2h0OjFyZW07IHBhZGRpbmc6MTBweCAxNXB4OyBjdXJzb3I6cG9pbnRlcjsgY29sb3I6I2ZmZjsgdGV4dC1hbGlnbjpjZW50ZXI7IHRleHQtc2hhZG93OjAgLTFweCAxcHggIzY0Nzk5ZTsgYmFja2dyb3VuZDojYmIwMDAzOyBiYWNrZ3JvdW5kOi1tb3otbGluZWFyLWdyYWRpZW50KHRvcCwgI0M4M0Y0MSAwJSwgI2JiMDAwMyAxMDAlKTsgYmFja2dyb3VuZDotd2Via2l0LWdyYWRpZW50KGxpbmVhciwgMCUgMCUsIDAlIDEwMCUsIGZyb20oI0M4M0Y0MSksIHRvKCNiYjAwMDMpKTsgYm9yZGVyOjFweCBzb2xpZCAjNWM2ZjkxOyAtbW96LWJvcmRlci1yYWRpdXM6NXB4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6NXB4OyBib3JkZXItcmFkaXVzOjVweDsgd2lkdGg6MTAwJTsgYm94LXNpemluZzpib3JkZXItYm94OyB9ICNjYXJwcm9vZl9tYWluIC5jYXJwcm9vZl9idXR0b246aG92ZXIgeyBiYWNrZ3JvdW5kOiNDODNGNDE7IGN1cnNvcjpwb2ludGVyOyB9ICNjYXJwcm9vZl9kaWFsb2ctb3ZlcmxheSB7IGJhY2tncm91bmQ6cmdiYSgwLDAsMCwuOCk7IHBvc2l0aW9uOmZpeGVkOyB0b3A6MDsgbGVmdDowOyByaWdodDowOyBib3R0b206MDsgei1pbmRleDo5OTk4OyBkaXNwbGF5Om5vbmU7IH0gLmNhcnByb29mLWJhZGdlLmRlc2t0b3AgeyBtYXJnaW4tbGVmdDotMTVweDsgaGVpZ2h0OjU2cHg7IG92ZXJmbG93OmhpZGRlbjsgbWFyZ2luLXRvcDotMTBweDsgZmxvYXQ6bGVmdDsgfSAucHJlUHJvY2Vzc29ySHRtbENhclBvb2ZBUElyZXBvcnQuY2FycHJvb2YtYmFkZ2UuZGVza3RvcCwgLnByZVByb2Nlc3NvckNhclBvb2ZBUElyZXBvcnRWNS5jYXJwcm9vZi1iYWRnZS5kZXNrdG9wLCAucHJlUHJvY2Vzc29ySHRtbENhclByb29mRGVmYXVsdC5jYXJwcm9vZi1iYWRnZS5kZXNrdG9wIHsgd2lkdGg6MTA2cHg7IG1hcmdpbjoycHggNXB4IDAgMDsgZmxvYXQ6bGVmdDsgfSAjY2FycHJvb2ZfbWFpbiBpbWcgeyB3aWR0aDo1MCU7IGZsb2F0OmxlZnQ7IHBvc2l0aW9uOnJlbGF0aXZlOyBtYXJnaW46MCAwIDE1cHggMDsgfSAjYXNQb3BVcHsgYmFja2dyb3VuZDojZmZmZmZmOyB3aWR0aDo2MDBweDsgcGFkZGluZzozMHB4OyBjb2xvcjojMTAxMDEwOyB6LWluZGV4OjEwMDAwMjE7IH0gI2FzUG9wVXAgLnBvcHVwLXBvbGljeSB7IG1pbi1oZWlnaHQ6MTAwcHg7IG1heC1oZWlnaHQ6MTUwcHg7IG92ZXJmbG93LXk6YXV0bzsgfSAucG9wdXAtcG9saWN5IGEgeyB0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lOyBjb2xvcjpibHVlOyB9ICNhc1BvcFVwIC5hc1RpdGxleyB0ZXh0LWFsaWduOmNlbnRlcjsgZm9udC1zaXplOjIuMjVyZW0gOyBmb250LXdlaWdodDo7IG1hcmdpbi1ib3R0b206MjBweDsgfSAjYXNQb3BVcCAuYnRuRXhwbGljaXR7IGZsb2F0OmxlZnQ7IHBhZGRpbmctbGVmdDo3MHB4OyB3aWR0aDoxMDBweDsgfSAjYXNQb3BVcCAuYnRuSW1wbGljaXR7IGZsb2F0OnJpZ2h0OyB3aWR0aDoxMDBweDsgcGFkZGluZy1yaWdodDo3MHB4OyB9ICNhc1B1cmNoYXNlSW50ZW50LnJldmVhbC1tb2RhbCBzcGFuLmpxVHJhbnNmb3JtUmFkaW9XcmFwcGVyeyBwYWRkaW5nOjA7IG1hcmdpbjo2cHggNHB4IDA7IH0gI2FzUHVyY2hhc2VJbnRlbnQgLnBvcHVwLXBvbGljeSB7IG1heC1oZWlnaHQ6MTcwcHg7IG92ZXJmbG93LXk6YXV0bzsgZm9udC13ZWlnaHQ6Ym9sZDsgfSAjYXNQdXJjaGFzZUludGVudCAuYXNQSVRpdGxleyB0ZXh0LWFsaWduOmxlZnQ7IGZvbnQtc2l6ZToxLjU2M3JlbSA7IG1hcmdpbi1ib3R0b206MDsgcGFkZGluZy1ib3R0b206MTBweDsgZGlzcGxheTpibG9jazsgfSAjYXNQdXJjaGFzZUludGVudCAudmlUZXh0eyBjbGVhcjpib3RoOyBmb250LXdlaWdodDpib2xkOyBwYWRkaW5nLWJvdHRvbToxMHB4OyB9ICNhc1B1cmNoYXNlSW50ZW50IC52aU9wdGlvbnN7IGxpc3Qtc3R5bGU6bm9uZTsgcGFkZGluZzo1cHg7IG1hcmdpbi1ib3R0b206M3B4OyB9ICNhc1B1cmNoYXNlSW50ZW50IC52aU9wdGlvbnMgbGkgeyBwYWRkaW5nOjJweDsgfSAjYXNQdXJjaGFzZUludGVudCAudmlPcHRpb25zIGxpeyBjbGVhcjpib3RoOyBmb250LXNpemU6MTBwdDsgfSAjYXNQdXJjaGFzZUludGVudCBsaSBsYWJlbHsgZm9udC1zaXplOjEwcHQ7IH0gI2FzUHVyY2hhc2VJbnRlbnQgLmJ1dHRvbkRlZmF1bHRDb2xvciB7IG1hcmdpbjowIGF1dG8gNXB4OyBkaXNwbGF5OmJsb2NrOyBjbGVhcjpib3RoOyB9ICNhc1B1cmNoYXNlSW50ZW50IC5zdGVwcyB7IGxpc3Qtc3R5bGU6aW5zaWRlIG5vbmUgbm9uZTsgfSAjYXNQdXJjaGFzZUludGVudCAuc3RlcHMgPiBsaXsgYmFja2dyb3VuZDojZmZmOyBib3JkZXI6MXB4IHNvbGlkICNiYmJiYmI7IGJvcmRlci13aWR0aDowIDFweCAxcHggMDsgcGFkZGluZzoxNXB4OyBtYXJnaW4tYm90dG9tOjE1cHg7IGZvbnQtc2l6ZToxMHB0OyB9ICNhc1B1cmNoYXNlSW50ZW50IC5hc3llc25vIHsgZmxvYXQ6bGVmdDsgcGFkZGluZy1yaWdodDoxMHB4OyB3aWR0aDo5MHB4OyB9ICNhc1B1cmNoYXNlSW50ZW50IC5hc3llc3sgcGFkZGluZy1sZWZ0OjkwcHg7IHdpZHRoOjcwcHg7IH0gLmNvbnNlbnQuZGlzY2xhaW1lciB7IHRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7IGNvbG9yOmJsdWU7IGFsaWduLXNlbGY6Y2VudGVyOyBtYXJnaW4tYm90dG9tOnZhcigtLXMtMyk7IGN1cnNvcjpoZWxwOyB9IC5jdXN0b201X2xlZnQsIC5jdXN0b20yNV9sZWZ0LCAuY3VzdG9tMzVfbGVmdCwgLmN1c3RvbTQ1X2xlZnQsIC5jdGFfcHJpY2UsLmN0YV9jcmVkaXQsLmN0YV90ZXN0RHJpdmUsLmN0YV9ldmFsLC5jdGFfc3ZjcHJvbW8sLmN0YV9zZXJ2aWNlLC5jdGFfcGFydHMsLmN0YV90aXJlcyB7IHdpZHRoOjI4MHB4OyBoZWlnaHQ6NjFweDsgcGFkZGluZzowIDE1cHggMCA2MHB4OyBkaXNwbGF5OnRhYmxlLWNlbGw7IHZlcnRpY2FsLWFsaWduOm1pZGRsZTsgZm9udC1zaXplOjFyZW0gOyBmb250LXdlaWdodDpib2xkOyBjdXJzb3I6cG9pbnRlcjsgY29sb3I6IzE5MTkxOTsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYm94MjUucG5nJykgbm8tcmVwZWF0IHNjcm9sbCBsZWZ0IHRvcDsgYmFja2dyb3VuZC1zaXplOjU4OXB4IDU1MHB4OyB9IC5jdGFfcHJpY2UuYWx0OmhvdmVyLCAuY3RhX2NyZWRpdC5hbHQ6aG92ZXIsIC5jdGFfdGVzdERyaXZlLmFsdDpob3ZlciwgLmN0YV9ldmFsLmFsdDpob3ZlciwgLmN0YV9zZXJ2aWNlLmFsdDpob3ZlciwgLmN0YV9wYXJ0cy5hbHQ6aG92ZXIsIC5jdGFfdGlyZXMuYWx0OmhvdmVyLCAuY3RhX3N2Y3Byb21vLmFsdDpob3ZlciB7IGNvbG9yOiMxOTE5MTk7IH0gLmN1c3RvbTU1X2xlZnQsIC5jdXN0b20yNTVfbGVmdCwgLmN1c3RvbTM1NV9sZWZ0LCAuY3VzdG9tNDU1X2xlZnQsIC5jdGFfcHJpY2UuYWx0LC5jdGFfcHJpY2U6aG92ZXIsIC5jdGFfY3JlZGl0LmFsdCwgLmN0YV9jcmVkaXQ6aG92ZXIsIC5jdGFfdGVzdERyaXZlLmFsdCwgLmN0YV90ZXN0RHJpdmU6aG92ZXIsIC5jdGFfZXZhbC5hbHQsIC5jdGFfZXZhbDpob3ZlciwgLmN0YV9zZXJ2aWNlLmFsdCwgLmN0YV9zZXJ2aWNlOmhvdmVyLCAuY3RhX3BhcnRzLmFsdCwgLmN0YV9wYXJ0czpob3ZlciwgLmN0YV90aXJlcy5hbHQsIC5jdGFfdGlyZXM6aG92ZXIsIC5jdGFfc3ZjcHJvbW8uYWx0LCAuY3RhX3N2Y3Byb21vOmhvdmVyIHsgY29sb3I6I0ZGRkZGRjsgfSAuY3RhX3ByaWNlLCAuY3RhX3ByaWNlLmFsdDpob3ZlciB7IGJhY2tncm91bmQtcG9zaXRpb246MCAwOyB9IC5jdGFfcHJpY2UuYWx0LCAuY3RhX3ByaWNlOmhvdmVyIHsgYmFja2dyb3VuZC1wb3NpdGlvbjotMzA5cHggMDsgfSAuY3RhX2NyZWRpdCwgLmN0YV9jcmVkaXQuYWx0OmhvdmVyIHsgYmFja2dyb3VuZC1wb3NpdGlvbjpsZWZ0IC02N3B4OyB9IC5jdGFfY3JlZGl0LmFsdCwgLmN0YV9jcmVkaXQ6aG92ZXIgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOi0zMDlweCAtNjdweDsgfSAuY3RhX3Rlc3REcml2ZSwgLmN0YV90ZXN0RHJpdmUuYWx0OmhvdmVyIHsgYmFja2dyb3VuZC1wb3NpdGlvbjpsZWZ0IC0xMzVweDsgfSAuY3RhX3Rlc3REcml2ZS5hbHQsIC5jdGFfdGVzdERyaXZlOmhvdmVyIHsgYmFja2dyb3VuZC1wb3NpdGlvbjotMzA5cHggLTEzNXB4OyB9IC5jdGFfZXZhbCwgLmN0YV9ldmFsLmFsdDpob3ZlciB7IGJhY2tncm91bmQtcG9zaXRpb246bGVmdCAtMjA0cHg7IH0gLmN0YV9ldmFsLmFsdCwgLmN0YV9ldmFsOmhvdmVyIHsgYmFja2dyb3VuZC1wb3NpdGlvbjotMzA5cHggLTIwNHB4OyB9IC5jdGFfc3ZjcHJvbW8sIC5jdGFfc3ZjcHJvbW8uYWx0OmhvdmVyIHsgYmFja2dyb3VuZC1wb3NpdGlvbjpsZWZ0IC0yNzNweDsgfSAuY3RhX3N2Y3Byb21vLmFsdCwgLmN0YV9zdmNwcm9tbzpob3ZlciB7IGJhY2tncm91bmQtcG9zaXRpb246LTMwOXB4IC0yNzNweDsgfSAuY3RhX3NlcnZpY2UsIC5jdGFfc2VydmljZS5hbHQ6aG92ZXIgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOmxlZnQgLTM0MXB4OyB9IC5jdGFfc2VydmljZS5hbHQsIC5jdGFfc2VydmljZTpob3ZlciB7IGJhY2tncm91bmQtcG9zaXRpb246LTMwOXB4IC0zNDFweDsgfSAuY3RhX3BhcnRzLCAuY3RhX3BhcnRzLmFsdDpob3ZlciB7IGJhY2tncm91bmQtcG9zaXRpb246bGVmdCAtNDEwcHg7IH0gLmN0YV9wYXJ0cy5hbHQsIC5jdGFfcGFydHM6aG92ZXIgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOi0zMDlweCAtNDEwcHg7IH0gLmN0YV90aXJlcywgLmN0YV90aXJlcy5hbHQ6aG92ZXIgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOmxlZnQgLTQ4MnB4OyB9IC5jdGFfdGlyZXMuYWx0LCAuY3RhX3RpcmVzOmhvdmVyIHsgYmFja2dyb3VuZC1wb3NpdGlvbjotMzA5cHggLTQ4MnB4OyB9IC5jdGFfc2VydmljZS5oaWRlX3RleHQsIC5jdGFfcGFydHMuaGlkZV90ZXh0LCAuY3RhX3RpcmVzLmhpZGVfdGV4dCwgLmN0YV9wcmljZS5oaWRlX3RleHQsIC5jdGFfY3JlZGl0LmhpZGVfdGV4dCwgLmN0YV90ZXN0RHJpdmUuaGlkZV90ZXh0LCAuY3RhX2V2YWwuaGlkZV90ZXh0LCAuY3RhX3N2Y3Byb21vLmhpZGVfdGV4dCB7IHRleHQtaW5kZW50Oi0yMDAwZW07IH0gYm9keS5GUkVOQ0ggLmN0YV9wcmljZS5jdXN0b20sIGJvZHkuRlJFTkNIIC5jdGFfcHJpY2UuY3VzdG9tOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9ibGFuay5naWYnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRlJFTkNIIC5jdGFfY3JlZGl0LmN1c3RvbSwgYm9keS5GUkVOQ0ggLmN0YV9jcmVkaXQuY3VzdG9tOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9ibGFuay5naWYnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRlJFTkNIIC5jdGFfdGVzdERyaXZlLmN1c3RvbSwgYm9keS5GUkVOQ0ggLmN0YV90ZXN0RHJpdmUuY3VzdG9tOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9ibGFuay5naWYnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRlJFTkNIIC5jdGFfZXZhbC5jdXN0b20sIGJvZHkuRlJFTkNIIC5jdGFfZXZhbC5jdXN0b206aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2JsYW5rLmdpZicpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5GUkVOQ0ggLmN0YV9zZXJ2aWNlLmN1c3RvbSwgYm9keS5GUkVOQ0ggLmN0YV9zZXJ2aWNlLmN1c3RvbTpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYmxhbmsuZ2lmJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkZSRU5DSCAuY3RhX3BhcnRzLmN1c3RvbSwgYm9keS5GUkVOQ0ggLmN0YV9wYXJ0cy5jdXN0b206aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2JsYW5rLmdpZicpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5GUkVOQ0ggLmN0YV90aXJlcy5jdXN0b20sIGJvZHkuRlJFTkNIIC5jdGFfdGlyZXMuY3VzdG9tOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9ibGFuay5naWYnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRlJFTkNIIC5jdGFfc3ZjcHJvbW8uY3VzdG9tLCBib2R5LkZSRU5DSCAuY3RhX3N2Y3Byb21vLmN1c3RvbTpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYmxhbmsuZ2lmJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkVOR0xJU0ggLmN0YV9wcmljZS5jdXN0b20sIGJvZHkuRU5HTElTSCAuY3RhX3ByaWNlLmN1c3RvbTpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYmxhbmsuZ2lmJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkVOR0xJU0ggLmN0YV9jcmVkaXQuY3VzdG9tLCBib2R5LkVOR0xJU0ggLmN0YV9jcmVkaXQuY3VzdG9tOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9ibGFuay5naWYnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRU5HTElTSCAuY3RhX3Rlc3REcml2ZS5jdXN0b20sIGJvZHkuRU5HTElTSCAuY3RhX3Rlc3REcml2ZS5jdXN0b206aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2JsYW5rLmdpZicpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5FTkdMSVNIIC5jdGFfZXZhbC5jdXN0b20sIGJvZHkuRU5HTElTSCAuY3RhX2V2YWwuY3VzdG9tOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9ibGFuay5naWYnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRU5HTElTSCAuY3RhX3NlcnZpY2UuY3VzdG9tLCBib2R5LkVOR0xJU0ggLmN0YV9zZXJ2aWNlLmN1c3RvbTpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYmxhbmsuZ2lmJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkVOR0xJU0ggLmN0YV9wYXJ0cy5jdXN0b20sIGJvZHkuRU5HTElTSCAuY3RhX3BhcnRzLmN1c3RvbTpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYmxhbmsuZ2lmJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkVOR0xJU0ggLmN0YV90aXJlcy5jdXN0b20sIGJvZHkuRU5HTElTSCAuY3RhX3RpcmVzLmN1c3RvbTpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYmxhbmsuZ2lmJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkVOR0xJU0ggLmN0YV9zdmNwcm9tby5jdXN0b20sIGJvZHkuRU5HTElTSCAuY3RhX3N2Y3Byb21vLmN1c3RvbTpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYmxhbmsuZ2lmJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkZSRU5DSCAuY3RhX3ByaWNlLmJsYWNrLCBib2R5LkZSRU5DSCAuY3RhX3ByaWNlLmJsYWNrOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfcHJpY2VfYmxhY2tfZnIucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkZSRU5DSCAuY3RhX2NyZWRpdC5ibGFjaywgYm9keS5GUkVOQ0ggLmN0YV9jcmVkaXQuYmxhY2s6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV9maW5hbmNlX2JsYWNrX2ZyLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5GUkVOQ0ggLmN0YV90ZXN0RHJpdmUuYmxhY2ssIGJvZHkuRlJFTkNIIC5jdGFfdGVzdERyaXZlLmJsYWNrOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfdGVzdGRyaXZlX2JsYWNrX2ZyLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5GUkVOQ0ggLmN0YV9ldmFsLmJsYWNrLCBib2R5LkZSRU5DSCAuY3RhX2V2YWwuYmxhY2s6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV90cmFkZWluX2JsYWNrX2ZyLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5GUkVOQ0ggLmN0YV9zZXJ2aWNlLmJsYWNrLCBib2R5LkZSRU5DSCAuY3RhX3NlcnZpY2UuYmxhY2s6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV9zZXJ2aWNlX2JsYWNrX2ZyLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5GUkVOQ0ggLmN0YV9wYXJ0cy5ibGFjaywgYm9keS5GUkVOQ0ggLmN0YV9wYXJ0cy5ibGFjazpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3BhcnRzX2JsYWNrX2ZyLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5GUkVOQ0ggLmN0YV90aXJlcy5ibGFjaywgYm9keS5GUkVOQ0ggLmN0YV90aXJlcy5ibGFjazpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3RpcmVzX2JsYWNrX2ZyLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5GUkVOQ0ggLmN0YV9zdmNwcm9tby5ibGFjaywgYm9keS5GUkVOQ0ggLmN0YV9zdmNwcm9tby5ibGFjazpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3Byb21vc2VydmljZV9ibGFja19mci5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRU5HTElTSCAuY3RhX3ByaWNlLmJsYWNrLCBib2R5LkVOR0xJU0ggLmN0YV9wcmljZS5ibGFjazpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3ByaWNlX2JsYWNrX2VuLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5FTkdMSVNIIC5jdGFfY3JlZGl0LmJsYWNrLCBib2R5LkVOR0xJU0ggLmN0YV9jcmVkaXQuYmxhY2s6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV9maW5hbmNlX2JsYWNrX2VuLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5FTkdMSVNIIC5jdGFfdGVzdERyaXZlLmJsYWNrLCBib2R5LkVOR0xJU0ggLmN0YV90ZXN0RHJpdmUuYmxhY2s6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV90ZXN0ZHJpdmVfYmxhY2tfZW4ucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkVOR0xJU0ggLmN0YV9ldmFsLmJsYWNrLCBib2R5LkVOR0xJU0ggLmN0YV9ldmFsLmJsYWNrOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfdHJhZGVpbl9ibGFja19lbi5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRU5HTElTSCAuY3RhX3NlcnZpY2UuYmxhY2ssIGJvZHkuRU5HTElTSCAuY3RhX3NlcnZpY2UuYmxhY2s6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV9zZXJ2aWNlX2JsYWNrX2VuLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5FTkdMSVNIIC5jdGFfcGFydHMuYmxhY2ssIGJvZHkuRU5HTElTSCAuY3RhX3BhcnRzLmJsYWNrOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfcGFydHNfYmxhY2tfZW4ucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkVOR0xJU0ggLmN0YV90aXJlcy5ibGFjaywgYm9keS5FTkdMSVNIIC5jdGFfdGlyZXMuYmxhY2s6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV90aXJlc19ibGFja19lbi5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRU5HTElTSCAuY3RhX3N2Y3Byb21vLmJsYWNrLCBib2R5LkVOR0xJU0ggLmN0YV9zdmNwcm9tby5ibGFjazpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3Byb21vc2VydmljZV9ibGFja19lbi5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRlJFTkNIIC5jdGFfcHJpY2UuYmx1ZSwgYm9keS5GUkVOQ0ggLmN0YV9wcmljZS5ibHVlOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfcHJpY2VfYmx1ZV9mci5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRlJFTkNIIC5jdGFfY3JlZGl0LmJsdWUsIGJvZHkuRlJFTkNIIC5jdGFfY3JlZGl0LmJsdWU6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV9maW5hbmNlX2JsdWVfZnIucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkZSRU5DSCAuY3RhX3Rlc3REcml2ZS5ibHVlLCBib2R5LkZSRU5DSCAuY3RhX3Rlc3REcml2ZS5ibHVlOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfdGVzdGRyaXZlX2JsdWVfZnIucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkZSRU5DSCAuY3RhX2V2YWwuYmx1ZSwgYm9keS5GUkVOQ0ggLmN0YV9ldmFsLmJsdWU6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV90cmFkZWluX2JsdWVfZnIucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkZSRU5DSCAuY3RhX3NlcnZpY2UuYmx1ZSwgYm9keS5GUkVOQ0ggLmN0YV9zZXJ2aWNlLmJsdWU6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV9zZXJ2aWNlX2JsdWVfZnIucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkZSRU5DSCAuY3RhX3BhcnRzLmJsdWUsIGJvZHkuRlJFTkNIIC5jdGFfcGFydHMuYmx1ZTpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3BhcnRzX2JsdWVfZnIucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkZSRU5DSCAuY3RhX3RpcmVzLmJsdWUsIGJvZHkuRlJFTkNIIC5jdGFfdGlyZXMuYmx1ZTpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3RpcmVzX2JsdWVfZnIucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkZSRU5DSCAuY3RhX3N2Y3Byb21vLmJsdWUsIGJvZHkuRlJFTkNIIC5jdGFfc3ZjcHJvbW8uYmx1ZTpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3Byb21vc2VydmljZV9ibHVlX2ZyLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5FTkdMSVNIIC5jdGFfcHJpY2UuYmx1ZSwgYm9keS5FTkdMSVNIIC5jdGFfcHJpY2UuYmx1ZTpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3ByaWNlX2JsdWVfZW4ucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkVOR0xJU0ggLmN0YV9jcmVkaXQuYmx1ZSwgYm9keS5FTkdMSVNIIC5jdGFfY3JlZGl0LmJsdWU6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV9maW5hbmNlX2JsdWVfZW4ucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkVOR0xJU0ggLmN0YV90ZXN0RHJpdmUuYmx1ZSwgYm9keS5FTkdMSVNIIC5jdGFfdGVzdERyaXZlLmJsdWU6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV90ZXN0ZHJpdmVfYmx1ZV9lbi5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRU5HTElTSCAuY3RhX2V2YWwuYmx1ZSwgYm9keS5FTkdMSVNIIC5jdGFfZXZhbC5ibHVlOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfdHJhZGVpbl9ibHVlX2VuLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5FTkdMSVNIIC5jdGFfc2VydmljZS5ibHVlLCBib2R5LkVOR0xJU0ggLmN0YV9zZXJ2aWNlLmJsdWU6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV9zZXJ2aWNlX2JsdWVfZW4ucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkVOR0xJU0ggLmN0YV9wYXJ0cy5ibHVlLCBib2R5LkVOR0xJU0ggLmN0YV9wYXJ0cy5ibHVlOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfcGFydHNfYmx1ZV9lbi5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRU5HTElTSCAuY3RhX3RpcmVzLmJsdWUsIGJvZHkuRU5HTElTSCAuY3RhX3RpcmVzLmJsdWU6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV90aXJlc19ibHVlX2VuLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5FTkdMSVNIIC5jdGFfc3ZjcHJvbW8uYmx1ZSwgYm9keS5FTkdMSVNIIC5jdGFfc3ZjcHJvbW8uYmx1ZTpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3Byb21vc2VydmljZV9ibHVlX2VuLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5GUkVOQ0ggLmN0YV9wcmljZS5yZWQsIGJvZHkuRlJFTkNIIC5jdGFfcHJpY2UucmVkOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfcHJpY2VfcmVkX2ZyLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5GUkVOQ0ggLmN0YV9jcmVkaXQucmVkLCBib2R5LkZSRU5DSCAuY3RhX2NyZWRpdC5yZWQ6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV9maW5hbmNlX3JlZF9mci5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRlJFTkNIIC5jdGFfdGVzdERyaXZlLnJlZCwgYm9keS5GUkVOQ0ggLmN0YV90ZXN0RHJpdmUucmVkOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfdGVzdGRyaXZlX3JlZF9mci5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRlJFTkNIIC5jdGFfZXZhbC5yZWQsIGJvZHkuRlJFTkNIIC5jdGFfZXZhbC5yZWQ6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV90cmFkZWluX3JlZF9mci5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRlJFTkNIIC5jdGFfc2VydmljZS5yZWQsIGJvZHkuRlJFTkNIIC5jdGFfc2VydmljZS5yZWQ6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV9zZXJ2aWNlX3JlZF9mci5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRlJFTkNIIC5jdGFfcGFydHMucmVkLCBib2R5LkZSRU5DSCAuY3RhX3BhcnRzLnJlZDpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3BhcnRzX3JlZF9mci5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRlJFTkNIIC5jdGFfdGlyZXMucmVkLCBib2R5LkZSRU5DSCAuY3RhX3RpcmVzLnJlZDpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3RpcmVzX3JlZF9mci5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRlJFTkNIIC5jdGFfc3ZjcHJvbW8ucmVkLCBib2R5LkZSRU5DSCAuY3RhX3N2Y3Byb21vLnJlZDpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3Byb21vc2VydmljZV9yZWRfZnIucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkVOR0xJU0ggLmN0YV9wcmljZS5yZWQsIGJvZHkuRU5HTElTSCAuY3RhX3ByaWNlLnJlZDpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3ByaWNlX3JlZF9lbi5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRU5HTElTSCAuY3RhX2NyZWRpdC5yZWQsIGJvZHkuRU5HTElTSCAuY3RhX2NyZWRpdC5yZWQ6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV9maW5hbmNlX3JlZF9lbi5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRU5HTElTSCAuY3RhX3Rlc3REcml2ZS5yZWQsIGJvZHkuRU5HTElTSCAuY3RhX3Rlc3REcml2ZS5yZWQ6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV90ZXN0ZHJpdmVfcmVkX2VuLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5FTkdMSVNIIC5jdGFfZXZhbC5yZWQsIGJvZHkuRU5HTElTSCAuY3RhX2V2YWwucmVkOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfdHJhZGVpbl9yZWRfZW4ucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkVOR0xJU0ggLmN0YV9zZXJ2aWNlLnJlZCwgYm9keS5FTkdMSVNIIC5jdGFfc2VydmljZS5yZWQ6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV9zZXJ2aWNlX3JlZF9lbi5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRU5HTElTSCAuY3RhX3BhcnRzLnJlZCwgYm9keS5FTkdMSVNIIC5jdGFfcGFydHMucmVkOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfcGFydHNfcmVkX2VuLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5FTkdMSVNIIC5jdGFfdGlyZXMucmVkLCBib2R5LkVOR0xJU0ggLmN0YV90aXJlcy5yZWQ6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV90aXJlc19yZWRfZW4ucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkVOR0xJU0ggLmN0YV9zdmNwcm9tby5yZWQsIGJvZHkuRU5HTElTSCAuY3RhX3N2Y3Byb21vLnJlZDpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3Byb21vc2VydmljZV9yZWRfZW4ucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkZSRU5DSCAuY3RhX3ByaWNlLmdyZXksIGJvZHkuRlJFTkNIIC5jdGFfcHJpY2UuZ3JleTpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3ByaWNlX2dyZXlfZnIucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkZSRU5DSCAuY3RhX2NyZWRpdC5ncmV5LCBib2R5LkZSRU5DSCAuY3RhX2NyZWRpdC5ncmV5OmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfZmluYW5jZV9ncmV5X2ZyLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5GUkVOQ0ggLmN0YV90ZXN0RHJpdmUuZ3JleSwgYm9keS5GUkVOQ0ggLmN0YV90ZXN0RHJpdmUuZ3JleTpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3Rlc3Rkcml2ZV9ncmV5X2ZyLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5GUkVOQ0ggLmN0YV9ldmFsLmdyZXksIGJvZHkuRlJFTkNIIC5jdGFfZXZhbC5ncmV5OmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfdHJhZGVpbl9ncmV5X2ZyLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5GUkVOQ0ggLmN0YV9zZXJ2aWNlLmdyZXksIGJvZHkuRlJFTkNIIC5jdGFfc2VydmljZS5ncmV5OmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfc2VydmljZV9ncmV5X2ZyLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5GUkVOQ0ggLmN0YV9wYXJ0cy5ncmV5LCBib2R5LkZSRU5DSCAuY3RhX3BhcnRzLmdyZXk6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV9wYXJ0c19ncmV5X2ZyLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5GUkVOQ0ggLmN0YV90aXJlcy5ncmV5LCBib2R5LkZSRU5DSCAuY3RhX3RpcmVzLmdyZXk6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV90aXJlc19ncmV5X2ZyLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5GUkVOQ0ggLmN0YV9zdmNwcm9tby5ncmV5LCBib2R5LkZSRU5DSCAuY3RhX3N2Y3Byb21vLmdyZXk6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV9wcm9tb3NlcnZpY2VfZ3JleV9mci5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRU5HTElTSCAuY3RhX3ByaWNlLmdyZXksIGJvZHkuRU5HTElTSCAuY3RhX3ByaWNlLmdyZXk6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV9wcmljZV9ncmV5X2VuLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5FTkdMSVNIIC5jdGFfY3JlZGl0LmdyZXksIGJvZHkuRU5HTElTSCAuY3RhX2NyZWRpdC5ncmV5OmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfZmluYW5jZV9ncmV5X2VuLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5FTkdMSVNIIC5jdGFfdGVzdERyaXZlLmdyZXksIGJvZHkuRU5HTElTSCAuY3RhX3Rlc3REcml2ZS5ncmV5OmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfdGVzdGRyaXZlX2dyZXlfZW4ucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkVOR0xJU0ggLmN0YV9ldmFsLmdyZXksIGJvZHkuRU5HTElTSCAuY3RhX2V2YWwuZ3JleTpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3RyYWRlaW5fZ3JleV9lbi5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRU5HTElTSCAuY3RhX3NlcnZpY2UuZ3JleSwgYm9keS5FTkdMSVNIIC5jdGFfc2VydmljZS5ncmV5OmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfc2VydmljZV9ncmV5X2VuLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5FTkdMSVNIIC5jdGFfcGFydHMuZ3JleSwgYm9keS5FTkdMSVNIIC5jdGFfcGFydHMuZ3JleTpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3BhcnRzX2dyZXlfZW4ucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkVOR0xJU0ggLmN0YV90aXJlcy5ncmV5LCBib2R5LkVOR0xJU0ggLmN0YV90aXJlcy5ncmV5OmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfdGlyZXNfZ3JleV9lbi5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRU5HTElTSCAuY3RhX3N2Y3Byb21vLmdyZXksIGJvZHkuRU5HTElTSCAuY3RhX3N2Y3Byb21vLmdyZXk6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV9wcm9tb3NlcnZpY2VfZ3JleV9lbi5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuaGVhZGluZ0NhcHNPbiBoMSwgYm9keS5oZWFkaW5nQ2Fwc09uIGgyLCBib2R5LmhlYWRpbmdDYXBzT24gaDMsIGJvZHkuaGVhZGluZ0NhcHNPbiBzcGFuLmgyLWFsdCwgYm9keS5oZWFkaW5nQ2Fwc09uIHNwYW4uaDMtYWx0LCBib2R5LmhlYWRpbmdDYXBzT24uVXNlZFNycDIgLmNhckJhc2ljcyAuY2FyVGl0bGUgLmRpdkNpdHksIGJvZHkuaGVhZGluZ0NhcHNPbiAudi1jYXJkIC5oZWFkZXItc2VjdGlvbiAub3JnLCBib2R5LmhlYWRpbmdDYXBzT24gI2Zvb3RlciAub3JnLCBib2R5LmhlYWRpbmdDYXBzT24gLmxvZ29hcmVhIC5hZGRyZXNzIC5hZHIgc3BhbjpmaXJzdC1jaGlsZCwgYm9keS5oZWFkaW5nQ2Fwc09uICNmb290ZXIgLnZpdiwgYm9keS5oZWFkaW5nQ2Fwc09uIC5zZWFyY2gtbGlua3Mtd3JhcHBlciAuc2VhcmNoLWxpbmstdGl0bGUsIGJvZHkuaGVhZGluZ0NhcHNPbiAucG9wdXBpemVyQm9keSAjdHJhZGVJbkJhclBvcHVwX2xpbmUxLCBib2R5LmhlYWRpbmdDYXBzT24gLmNhcm91c3NlbCAuY2Fyb3VzZWxUYWJzIC50YWItbGFiZWwsIGJvZHkuaGVhZGluZ0NhcHNPbiAuZm9ybUhlYWRpbmcsIGJvZHkuaGVhZGluZ0NhcHNPbiAuY29tcGFyZS12ZWhpY2xlcy1mb3JtLXRhYmxlIC50cmltLXByZXZpZXcgLmNvbXBhcmUtdGl0bGUgeyB0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2UgIWltcG9ydGFudDsgfSBib2R5LmhlYWRpbmdDYXBzT24gLmNhcm91c3NlbCAuY2Fyb3VzZWxUYWJzIC50YWItbGFiZWwgeyBmb250LXNpemU6MS4yNXJlbTsgfSBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6MTMwMXB4KSB7IGJvZHkuaGVhZGluZ0NhcHNPbiAuZGl2Q2VydGlmaWNhdGlvbkJsb2NrIGgyLmRlZmF1bHQgeyBmb250LXNpemU6MS40cmVtICFpbXBvcnRhbnQ7IH0gfSAuZGl2Q2VydGlmaWNhdGlvbkJsb2NrIGgyIHNwYW4uaWNvbiwgLmRpdkNlcnRpZmljYXRpb25CbG9jayBzcGFuLmgyLWFsdCBzcGFuLmljb24geyBtaW4td2lkdGg6MjBweDsgfSAuZGl2Q2VydGlmaWNhdGlvbkJsb2NrIC5jZXJ0LXRpdGxlIHsgZGlzcGxheTpibG9jazsgbWFyZ2luLWxlZnQ6MjBweDsgZm9udC1zaXplOjEuM2VtOyB9IC5kaXZDZXJ0aWZpY2F0aW9uQmxvY2sgLmNlcnQtc3VidGl0bGUgeyBkaXNwbGF5OmJsb2NrOyBtYXJnaW4tbGVmdDoyMHB4OyBtYXJnaW4tYm90dG9tOjEwcHg7IGNvbG9yOiM3Nzc7IGZvbnQtc2l6ZToxZW07IG1hcmdpbi10b3A6NXB4OyB9IC5kaXZDZXJ0aWZpY2F0aW9uQmxvY2sgLmNlcnQtaGlnaGxpZ2h0ZWQtdmFsdWUgeyBiYWNrZ3JvdW5kLWNvbG9yOiMwMDA7IGJvcmRlcjoxcHggc29saWQgIzAwMDsgY29sb3I6I0ZGRjsgcGFkZGluZzoxMXB4IDIwcHggOXB4IDIwcHg7IGJvcmRlci1yYWRpdXM6M3B4OyBkaXNwbGF5OmlubGluZS1ibG9jazsgfSAuSW5uZXJCb3hMYXllci5kaXZDZXJ0aWZpY2F0aW9uQmxvY2suaXNPbmVSb3cgaW1nIHsgbWF4LXdpZHRoOmF1dG8gIWltcG9ydGFudDsgfSAudXNlZFZkcEFjdGlvbnMgLmFjdGlvbi1ib3ggYS5idG4tZGVmYXVsdCB7IHdpZHRoOjEwMCUgIWltcG9ydGFudDsgZGlzcGxheTpibG9jayAhaW1wb3J0YW50OyBtYXJnaW4tYm90dG9tOjEwcHggIWltcG9ydGFudDsgfSAuY3RhX3ByaWNlOmhvdmVyLCAuY3RhX2NyZWRpdDpob3ZlciwgLmN0YV90ZXN0RHJpdmU6aG92ZXIsIC5jdGFfZXZhbDpob3ZlciwgLmN0YV9zZXJ2aWNlOmhvdmVyLCAuY3RhX3BhcnRzOmhvdmVyLCAuY3RhX3RpcmVzOmhvdmVyLCAuY3RhX3N2Y3Byb21vOmhvdmVyeyBvcGFjaXR5OjAuNzU7IH0gLnNlYXJjaF9jZXJ0X2dlbmVyaWN7IGhlaWdodDo0NHB4OyBtYXJnaW46MnB4IDVweCAwIDA7IGZsb2F0OmxlZnQ7IG1hcmdpbi10b3A6LTBweDsgfSAjbmV3Q2FySW5Vc2VkUGFnZXsgbWFyZ2luLXRvcDotMnB4OyBtYXJnaW4tYm90dG9tOjVweDsgZGlzcGxheTpub25lOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgfSAjbmV3Q2FySW5Vc2VkUGFnZSAuYm94Mjg4X3RvcHsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvcmlnaHRfYm94NF90b3AucG5nJykgbm8tcmVwZWF0IHNjcm9sbCBsZWZ0IHRvcCB0cmFuc3BhcmVudDsgfSAjbmV3Q2FySW5Vc2VkUGFnZSAuYm94Mjg4MF9taWR7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL3JpZ2h0X2JveDRfbWlkLnBuZycpIHJlcGVhdC15IHNjcm9sbCBsZWZ0IHRvcCB0cmFuc3BhcmVudCB9ICNuZXdDYXJJblVzZWRQYWdlIC5ib3gyODhfZm9vdGVyX3FzeyBiYWNrZ3JvdW5kIDp1cmwoJy9pbWFnZXMvcmlnaHRfYm94NF9mb290ZXIucG5nJykgbm8tcmVwZWF0IHNjcm9sbCBsZWZ0IHRvcCB0cmFuc3BhcmVudCB9ICNuZXdDYXJJblVzZWRQYWdlX3NjcmF0Y2hQcmljZXsgd2lkdGg6MTEwcHg7IGhlaWdodDozNXB4OyBmbG9hdDpyaWdodDsgcG9zaXRpb246cmVsYXRpdmU7IGxlZnQ6LTgzcHg7IGRpc3BsYXk6bm9uZTsgfSAjbmV3Q2FySW5Vc2VkUGFnZV90aXRsZXsgZGlzcGxheTpibG9jazt0ZXh0LWFsaWduOmNlbnRlcjtmb250LXNpemU6MC45MzhyZW0gO2ZvbnQtd2VpZ2h0OmJvbGQ7dGV4dC1kZWNvcmF0aW9uOm5vbmU7IH0gdWwjY3JlZGl0X2RyaXZldHJhaW4sIHVsI2NyZWRpdF9mdWVsdHlwZSwgdWwjY3JlZGl0X2JvZHlUeXBlcyB7IGxpc3Qtc3R5bGU6bm9uZTsgZmxvYXQ6bGVmdDsgd2lkdGg6MzMlOyBwYWRkaW5nLWJvdHRvbToxMHB4OyB9IHVsI2NyZWRpdF9kcml2ZXRyYWluIGxpID4gbGFiZWwsIHVsI2NyZWRpdF9mdWVsdHlwZSBsaSA+IGxhYmVsLCB1bCNjcmVkaXRfYm9keVR5cGVzIGxpID4gbGFiZWx7IGRpc3BsYXk6YmxvY2s7IHBhZGRpbmctYm90dG9tOjVweDsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXNpemU6MC44MTNyZW0gOyBjb2xvcjojMjQyNDI0OyBmbG9hdDpub25lOyB9IHVsI2NyZWRpdF9kcml2ZXRyYWluIGxpID4gZGl2LCB1bCNjcmVkaXRfZnVlbHR5cGUgbGkgPiBkaXYsIHVsI2NyZWRpdF9ib2R5VHlwZXMgbGkgPiBkaXZ7IGRpc3BsYXk6YmxvY2s7IHBhZGRpbmctYm90dG9tOjVweDsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXNpemU6MC44MTNyZW0gOyBjb2xvcjojMTAxMDEwOyBmbG9hdDpub25lOyB9IHVsI2NyZWRpdF9kcml2ZXRyYWluIGxpID4gbGFiZWwgPiBzcGFuLCB1bCNjcmVkaXRfZnVlbHR5cGUgbGkgPiBsYWJlbCA+IHNwYW4sIHVsI2NyZWRpdF9ib2R5VHlwZXMgbGkgPiBsYWJlbCA+IHNwYW57IG1hcmdpbi1yaWdodDo4cHg7IG1hcmdpbi10b3A6MHB4OyB9ICNjcmVkaXRfdmlfYWR2YW5jZWQgbGFiZWx7IGZsb2F0OmxlZnQ7IH0gI2NyZWRpdF92aV9hZHZhbmNlZCBsYWJlbCBkaXYubGFiZWx7IGZsb2F0OmxlZnQ7IGxpbmUtaGVpZ2h0OjMycHg7IG1hcmdpbi1yaWdodDo2cHg7IHdpZHRoOjIwMHB4OyB0ZXh0LWFsaWduOnJpZ2h0OyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IGNvbG9yOiMyNDI0MjQ7IH0gLmRldGFpbHNfYm94IC5ib3gyX2RldGFpbHNfbWlkIC5ib3gyX2RldGFpbHNfdGV4dCwgLmRldGFpbHNfYm94IC5ib3gyX2RldGFpbHNfbWlkIC5ib3gyX2RldGFpbHNfdGV4dDI1IHNwYW4sIC5kZXRhaWxzX2JveCAuYm94Ml9kZXRhaWxzX21pZCAuYm94Ml9kZXRhaWxzX3RleHQgc3BhbnsgY29sb3I6IzkxMGEyZDsgfSAudXNwLWNvbG9yIHsgY29sb3I6IzkxMGEyZDsgfSAubXljYXJvdXNlbF90ZHsgZGlzcGxheTpibG9jazsgd2lkdGg6NTYwcHg7IG92ZXJmbG93OmhpZGRlbjsgbWFyZ2luLWxlZnQ6MzBweDsgbWFyZ2luLXRvcDoxMHB4OyB9IC52ZWhpY2xlQ2Fyb3VzZWx7IHdpZHRoOjE5MHB4OyB9IC5kZXRhaWxzX2JveCwgLmRldGFpbHNfYm94IC5ib3gyX2RldGFpbHNfbWlkRXggeyBiYWNrZ3JvdW5kOiNiNWI1YjQ7IH0gI2V4dENvbG9yU2VsZWN0LmZpeGVkV2lkdGggLCAjaW50Q29sb3JTZWxlY3QuZml4ZWRXaWR0aCB7IHdpZHRoOjIzMHB4OyB9IC5jb2xvckNob2ljZXsgaGVpZ2h0OjMxcHg7IHdpZHRoOjMxcHg7IHRleHQtYWxpZ246Y2VudGVyOyB0ZXh0LWluZGVudDotMjAwMGVtOyBsaW5lLWhlaWdodDozMXB4OyBmb250LXNpemU6MC45MzhyZW0gOyBmb250LXdlaWdodDpib2xkOyBmbG9hdDpsZWZ0OyBib3JkZXI6MXB4IHNvbGlkICMwMDA7IG1hcmdpbjoycHg7IGNvbG9yOiNmZmY7IH0gLmNvbG9yQ2hvaWNlLmNob3NlbiB7IHRleHQtaW5kZW50OjA7IH0gLmNvbG9yQ2hvaWNlLnRhbiB7IGJhY2tncm91bmQtY29sb3I6I2QyYjQ4YzsgfSAuY29sb3JDaG9pY2UuYmxhY2sgeyBiYWNrZ3JvdW5kLWNvbG9yOiMwMDAwMDA7IH0gLmNvbG9yQ2hvaWNlLmdvbGQgeyBiYWNrZ3JvdW5kLWNvbG9yOiNiMjk2MDA7IH0gLmNvbG9yQ2hvaWNlLmJyb3duIHsgYmFja2dyb3VuZC1jb2xvcjojNjYzMzBlOyB9IC5jb2xvckNob2ljZS5ncmVlbiB7IGJhY2tncm91bmQtY29sb3I6IzAwOTkwMDsgfSAuY29sb3JDaG9pY2UuZ3JheSB7IGJhY2tncm91bmQtY29sb3I6Izk3OTc5NzsgfSAuY29sb3JDaG9pY2UuZ3JleSB7IGJhY2tncm91bmQtY29sb3I6Izk3OTc5NzsgfSAuY29sb3JDaG9pY2Uub3JhbmdlIHsgYmFja2dyb3VuZC1jb2xvcjojZTY5NDAwOyB9IC5jb2xvckNob2ljZS5zaWx2ZXIgeyBiYWNrZ3JvdW5kLWNvbG9yOiNjMGMwYzA7IGNvbG9yOiMxMDEwMTA7IH0gLmNvbG9yQ2hvaWNlLm1hdXZlIHsgYmFja2dyb3VuZC1jb2xvcjojZDQ3M2Q0OyB9IC5jb2xvckNob2ljZS5yZWQgeyBiYWNrZ3JvdW5kLWNvbG9yOiNjYzAwMDA7IH0gLmNvbG9yQ2hvaWNlLndoaXRlIHsgYmFja2dyb3VuZC1jb2xvcjojRkZGRkZGOyBjb2xvcjojMTAxMDEwOyB9IC5jb2xvckNob2ljZS55ZWxsb3cgeyBiYWNrZ3JvdW5kLWNvbG9yOiNmMGMwMDA7IGNvbG9yOiMxMDEwMTA7IH0gLmNvbG9yQ2hvaWNlLmJsdWUgeyBiYWNrZ3JvdW5kLWNvbG9yOiMxOTE5YzQ7IH0gLmNvbG9yQ2hvaWNlLmNvcHBlciB7IGJhY2tncm91bmQtY29sb3I6I0FGNDc0NDsgfSAuY29sb3JDaG9pY2UucHVycGxlIHsgYmFja2dyb3VuZC1jb2xvcjojNTMxNUIyOyB9IC5saWdodC1ncmF5IHsgYmFja2dyb3VuZC1jb2xvcjojNGI0YzRjOyBjb2xvcjojMTAxMDEwO30gYS5jb2xvckNob2ljZSB7IGNvbG9yOiNmZmY7IHRleHQtZGVjb3JhdGlvbjpub25lOyB9IHRyLmJvcmRlcl9ib3R0b21fbGluZSB0ZCwgdHIuYm9yZGVyX2JvdHRvbV9saW5lIHRoIHsgYm9yZGVyLWJvdHRvbToxcHQgc29saWQgYmxhY2s7IH0gLmJvcmRlcl9ib3h7IGJvcmRlci1yYWRpdXM6NXB4OyBtYXJnaW4tYm90dG9tOjVweDsgYmFja2dyb3VuZC1jb2xvcjpyZ2IoMjU1LDI1NSwyNTUpOyAtbXMtZmlsdGVyOnByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5BbHBoYShPcGFjaXR5PTEwMCk7IGJhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwxKTsgYm94LXNoYWRvdzpub25lOyBjbGVhcjpib3RoOyB9IC5ob21lcGFnZSAuYm9yZGVyX2JveHsgYm94LXNoYWRvdzpub25lIWltcG9ydGFudDsgfSAjaG9tZV9zb2NpYWxUaW1lbGluZXsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1ob21lcGFnZS1zb2NpYWwtYmctY29sb3IpOyB9ICNmb290ZXJXcmFwcGVyeyB3aWR0aDoxMDAlOyBtYXJnaW4tdG9wOjBweDsgY2xlYXI6Ym90aDsgcGFkZGluZy10b3A6MTVweDsgY29sb3I6dmFyKC0tZm9vdGVyLWl0ZW1zLWxpbmstY29sb3IpOyBjb2xvcjojOTk5OTk5OyBiYWNrZ3JvdW5kLWNvbG9yOiMxMDEwMTA7IGJhY2tncm91bmQtY29sb3I6IzEwMTAxMDsgfSAjZm9vdGVyV3JhcHBlciBzdmcgeyBmaWxsOnZhcigtLWZvb3Rlci1saW5rLXRpdGxlLWNvbCk7IH0gLmN1c3RvbWZvcm1fc3VibWl0eyBtYXJnaW4tdG9wOjIwcHg7IG1hcmdpbi1ib3R0b206MjBweDsgfSAuc2VlT3B0aW9uc3sgZGlzcGxheTpub25lOyB9IC5zdHJpa2UtcHJpY2UsIC5zdHJpa2UtcHJpY2UtYmxhY2ssIC5zdHJpa2UtcHJpY2Utd2hpdGUgeyBkaXNwbGF5OmlubGluZS1ibG9jazsgcG9zaXRpb246cmVsYXRpdmU7IH0gLnN0cmlrZS1wcmljZTo6YmVmb3JlLCAuc3RyaWtlLXByaWNlLWJsYWNrOjpiZWZvcmUsIC5zdHJpa2UtcHJpY2Utd2hpdGU6OmJlZm9yZSB7IGNvbnRlbnQ6IiI7IGhlaWdodDoycHg7IHBvc2l0aW9uOmFic29sdXRlOyB0b3A6NDAlOyAtbW96LXRyYW5zZm9ybTpyb3RhdGUoN2RlZyk7IC13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSg3ZGVnKTsgdHJhbnNmb3JtOnJvdGF0ZSg3ZGVnKTsgdHJhbnNmb3JtLW9yaWdpbjo1MCUgNTAlIDA7IHdpZHRoOjEwMCU7IH0gLnN0cmlrZS1wcmljZS4tdGhpbjo6YmVmb3JleyBoZWlnaHQ6MXB4OyB9IC5zdHJpa2UtcHJpY2U6OmJlZm9yZSB7IGJhY2tncm91bmQ6bm9uZSByZXBlYXQgc2Nyb2xsIDAgMCAjMDAwOyB9IC5zdHJpa2UtcHJpY2UtYmxhY2s6OmJlZm9yZSB7IGJhY2tncm91bmQ6bm9uZSByZXBlYXQgc2Nyb2xsIDAgMCBibGFjazsgfSAuc3RyaWtlLXByaWNlLXdoaXRlOjpiZWZvcmUgeyBiYWNrZ3JvdW5kOm5vbmUgcmVwZWF0IHNjcm9sbCAwIDAgd2hpdGU7IH0gLmJsdXItcHJpY2UgeyAtd2Via2l0LWZpbHRlcjpibHVyKDAuMTVlbSk7IC1tb3otZmlsdGVyOmJsdXIoMC4xNWVtKTsgLW1zLWZpbHRlcjpibHVyKDAuMTVlbSk7IC1vLWZpbHRlcjpibHVyKDAuMTVlbSk7IGZpbHRlcjp1cmwoImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgaGVpZ2h0PScwJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnPjxmaWx0ZXIgaWQ9J3N2Z0JsdXInIHg9Jy01JScgeT0nLTUlJyB3aWR0aD0nMTEwJScgaGVpZ2h0PScxMTAlJz48ZmVHYXVzc2lhbkJsdXIgaW49J1NvdXJjZUdyYXBoaWMnIHN0ZERldmlhdGlvbj0nNScvPiNzdmdCbHVyIik7IGZpbHRlcjpwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuQmx1cihQaXhlbFJhZGl1cz0nNScpOyBmaWx0ZXI6Ymx1cigwLjE1ZW0pOyB9IC5sZWZ0X2JveHsgYmFja2dyb3VuZC1jb2xvcjpyZ2IoMjU1LDI1NSwyNTUpOyAtbXMtZmlsdGVyOnByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5BbHBoYShPcGFjaXR5PTEwMCk7IGJhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwxKTsgbWFyZ2luLXRvcDoxMHB4IDsgcGFkZGluZzoxMHB4IDAgMTBweDsgZmxvYXQ6bGVmdDsgaGVpZ2h0OmF1dG87IGJvcmRlci1yYWRpdXM6NXB4OyBib3gtc2hhZG93Om5vbmU7IH0gLmJ0bi1kZWZhdWx0LCAuYnRuLXNtLCAuYnRuLWxnLC5jdXN0b21mb3JtX3N1Ym1pdCwuc3VibWl0eyAtbW96LWJvcmRlci1yYWRpdXM6M3B4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6M3B4OyBkaXNwbGF5OmlubGluZS1ibG9jazsgY3Vyc29yOnBvaW50ZXI7IHRleHQtZGVjb3JhdGlvbjpub25lOyB0ZXh0LXRyYW5zZm9ybTp2YXIoLS1jZXJ0LXR4dC10cmFuc2Zvcm0sIHZhcigtLXR4dC11cHBlcikpOyB9IC5idG4tZGVmYXVsdHsgYmFja2dyb3VuZC1jb2xvcjojMTAxMDEwOyB9IC5idG4tZGVmYXVsdCwgLnN1Ym1pdCwgLmN1c3RvbWZvcm1fc3VibWl0LCBpbnB1dFt0eXBlPWJ1dHRvbl0uYnRuLWRlZmF1bHQsIGlucHV0W3R5cGU9c3VibWl0XS5idG4tZGVmYXVsdCB7IHBhZGRpbmc6MTFweCAyMHB4IDlweCAyMHB4OyBib3JkZXItcmFkaXVzOjNweDsgfSAuYnRuLXNtLCBpbnB1dFt0eXBlPWJ1dHRvbl0uYnRuLXNtLCBpbnB1dFt0eXBlPXN1Ym1pdF0uYnRuLXNtIHsgZm9udC1zaXplOmluaGVyaXQhaW1wb3J0YW50OyBwYWRkaW5nOjRweCAxMHB4IWltcG9ydGFudDsgYm9yZGVyLXJhZGl1czozcHghaW1wb3J0YW50OyB9IC5idG4tbGcsIGlucHV0W3R5cGU9YnV0dG9uXS5idG4tbGcsIGlucHV0W3R5cGU9c3VibWl0XS5idG4tbGcgeyBmb250LXNpemU6MS4wNjNyZW0gOyBwYWRkaW5nOjEycHggNTBweDsgYm9yZGVyLXJhZGl1czo2cHg7IGZvbnQtd2VpZ2h0OmJvbGQ7IH0gLmJ0bi1kZWZhdWx0OmZvY3VzLCAuY3VzdG9tZm9ybV9zdWJtaXQ6Zm9jdXMsIC5idG4tc206Zm9jdXMsIC5idG4tbGc6Zm9jdXMsICNleGl0X3BvcHVwX3llczpmb2N1cywgI2V4aXRfcG9wdXBfbm86Zm9jdXMgeyBvdXRsaW5lOm5vbmU7IH0gLmJ0bi1kZWZhdWx0LmFwcGx5LWNyZWRpdCB7IGRpc3BsYXk6aW5saW5lLWJsb2NrOyB2ZXJ0aWNhbC1hbGlnbjp0b3A7IHdvcmQtd3JhcDpub3JtYWw7IHdpZHRoOjEwMHB4OyB0ZXh0LWFsaWduOmNlbnRlcjsgcGFkZGluZzozcHggNXB4OyBmb250LXNpemU6MC43NXJlbSA7IH0gLmJ0bi1kZWZhdWx0LCAuY3VzdG9tZm9ybV9zdWJtaXQsIGlucHV0W3R5cGU9YnV0dG9uXS5idG4tZGVmYXVsdCwgaW5wdXRbdHlwZT1zdWJtaXRdLmJ0bi1kZWZhdWx0eyBmb250LXNpemU6MC44cmVtOyB9IC5idG4tZGVmYXVsdCwgLmJ0bi1zbSwuYnRuLWxnLCAuc3VibWl0LCAjc2xpZGVpdCBpbnB1dC5zZW5kLCAuY3VzdG9tZm9ybV9zdWJtaXQgeyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXRhYi1jb2xvcik7IGJvcmRlci13aWR0aDoxcHg7IGJvcmRlci1zdHlsZTpzb2xpZDsgYm9yZGVyLWNvbG9yOnZhcigtLXRhYi10ZXh0LWNvbG9yKTsgY29sb3I6dmFyKC0tdGFiLXRleHQtY29sb3IpOyB0ZXh0LXNoYWRvdzpub25lOyB9IC5idG4tZGVmYXVsdC5idG4tYmctc2FtZSB7IGJvcmRlci1jb2xvcjojMTAxMDEwOyB9IC5idG4tZGVmYXVsdC5idG4tYmctc2FtZTpob3ZlciB7IGJvcmRlci1jb2xvcjojOTEwOTJkOyB9IC5idG4tZGVmYXVsdDpob3ZlciwgLmN1c3RvbWZvcm1fc3VibWl0OmhvdmVyLCAuYnRuLXNtOmhvdmVyLCAuYnRuLWxnOmhvdmVyLCAuc3VibWl0OmhvdmVyLCAjc2xpZGVpdCBpbnB1dC5zZW5kOmhvdmVyIHsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1tZW51LWhvdmVyLWJnLWNvbG9yKTsgYm9yZGVyLXdpZHRoOjFweDsgYm9yZGVyLXN0eWxlOnNvbGlkOyBib3JkZXItY29sb3I6dmFyKC0tbWVudS1ob3Zlci10ZXh0LWNvbG9yKTsgY29sb3I6dmFyKC0tbWVudS1ob3Zlci10ZXh0LWNvbG9yKTsgfSAuYnRuLWRlZmF1bHQucHJvbW9jb2xvciwgLmJ0bi1zbS5wcm9tb2NvbG9yLCAuYnRuLWxnLnByb21vY29sb3IgeyBiYWNrZ3JvdW5kLWNvbG9yOiM5MTBhMmQ7IGJvcmRlcjoxcHggc29saWQgIzkxMGEyZDsgY29sb3I6I2ZmZmZmZjsgfSAuYnRuLWRlZmF1bHQucHJvbW9jb2xvcjpob3ZlciwgLmJ0bi1zbS5wcm9tb2NvbG9yOmhvdmVyLCAuYnRuLWxnLnByb21vY29sb3I6aG92ZXJ7IGJhY2tncm91bmQtY29sb3I6I2ZmZmZmZjsgY29sb3I6IzkxMGEyZDsgfSAuYnRuLWRlZmF1bHQuYmxhY2ssIC5idG4tc20uYmxhY2ssIC5idG4tbGcuYmxhY2sgeyBiYWNrZ3JvdW5kLWNvbG9yIDojMDAwMDAwOyBib3JkZXIgOjFweCBzb2xpZCAjMDAwMDAwOyBjb2xvciA6I2ZmZmZmZjsgfSAuYnRuLWRlZmF1bHQuYmxhY2sud2l0aGJvcmRlciwgLmJ0bi1zbS5ibGFjay53aXRoYm9yZGVyLCAuYnRuLWxnLmJsYWNrLndpdGhib3JkZXIgeyBib3JkZXIgOjFweCBzb2xpZCAjZmZmZmZmOyB9IC5idG4tZGVmYXVsdC5ibGFjazpob3ZlciwgLmJ0bi1zbS5ibGFjazpob3ZlciwgLmJ0bi1sZy5ibGFjazpob3ZlciB7IGJhY2tncm91bmQtY29sb3IgOiNmZmZmZmY7IGNvbG9yOiMwMDAwMDA7IH0gLmJ0bi1kZWZhdWx0Lm5vLCAuYnRuLXNtLm5vLCAuYnRuLWxnLm5vIHsgYmFja2dyb3VuZC1jb2xvcjojRkZGOyBib3JkZXI6MXB4IHNvbGlkICM1NTU7IGNvbG9yOiMwMDA7IH0gLmJ0bi1kZWZhdWx0Lm5vOmhvdmVyLCAuYnRuLXNtLm5vOmhvdmVyLCAuYnRuLWxnLm5vOmhvdmVyeyBiYWNrZ3JvdW5kLWNvbG9yOiM2NjY2NjY7IGJvcmRlcjoxcHggc29saWQgIzY2NjY2NjsgY29sb3I6I0ZGRkZGRjsgfSAuYnRuLWRlZmF1bHQuaW52ZXJ0LCAuYnRuLXNtLmludmVydCwgLmJ0bi1sZy5pbnZlcnQsIC5idG4tZGVmYXVsdC5pbnZlcnQuZmxhdCwgLmJ0bi1zbS5pbnZlcnQuZmxhdCwgLmJ0bi1sZy5pbnZlcnQuZmxhdCB7IGJhY2tncm91bmQ6IHZhcigtLXRhYi10ZXh0LWNvbG9yKTsgYm9yZGVyOjFweCBzb2xpZCB2YXIoLS10YWItdGV4dC1jb2xvcik7IGNvbG9yOnZhcigtLXRhYi1jb2xvcik7IGJveC1zaGFkb3c6bm9uZTsgfSAuYnRuLWRlZmF1bHQuaW52ZXJ0OmhvdmVyLCAuYnRuLXNtLmludmVydDpob3ZlciwgLmJ0bi1sZy5pbnZlcnQ6aG92ZXIsIC5idG4tZGVmYXVsdC5pbnZlcnQuZmxhdDpob3ZlciwgLmJ0bi1zbS5pbnZlcnQuZmxhdDpob3ZlciwgLmJ0bi1sZy5pbnZlcnQuZmxhdDpob3ZlciB7IGJhY2tncm91bmQtY29sb3I6dmFyKC0tdGFiLWNvbG9yKTsgYm9yZGVyLWNvbG9yOnZhcigtLXRhYi10ZXh0LWNvbG9yKTsgY29sb3I6dmFyKC0tdGFiLXRleHQtY29sb3IpOyB9IC5idG4tZGVmYXVsdC5yZWQsIC5idG4tc20ucmVkLCAuYnRuLWxnLnJlZCB7IGJhY2tncm91bmQ6I2ZmMzMzMyFpbXBvcnRhbnQ7IGJhY2tncm91bmQtY29sb3I6I2ZmMzMzMyFpbXBvcnRhbnQ7IGJvcmRlcjoxcHggc29saWQgI2Y1MWExYSFpbXBvcnRhbnQ7IGNvbG9yOiNGRkZGRkYhaW1wb3J0YW50OyB9IC5idG4tZGVmYXVsdC5yZWQ6aG92ZXIsIC5idG4tc20ucmVkOmhvdmVyLCAuYnRuLWxnLnJlZDpob3ZlcnsgYmFja2dyb3VuZDojMzMzMzMzIWltcG9ydGFudDsgYmFja2dyb3VuZC1jb2xvcjojMzMzMzMzIWltcG9ydGFudDsgYm9yZGVyOjFweCBzb2xpZCAjMzMzMzMzIWltcG9ydGFudDsgY29sb3I6I0ZGRkZGRiFpbXBvcnRhbnQ7IH0gLmJ0bi1kZWZhdWx0LndoaXRlLCAuYnRuLXNtLndoaXRlLCAuYnRuLWxnLndoaXRlIHsgYmFja2dyb3VuZDojZmZmOyBib3JkZXI6MXB4IHNvbGlkICMwMDA7IGNvbG9yOiMxMDEwMTA7IGJveC1zaGFkb3c6bm9uZTsgfSAuZGVhbGVyLXNlbGVjdC13cmFwcGVyIHsgZGlzcGxheTpncmlkOyBncmlkLXRlbXBsYXRlLWNvbHVtbnM6MWZyIDFmcjsgY29sdW1uLWdhcDoxLjVyZW07IHJvdy1nYXA6MC41cmVtOyBncmlkLWF1dG8tY29sdW1uczowLjVmcjsgbWFyZ2luLWJvdHRvbToxMHB4OyBtYXJnaW4tdG9wOjE1cHg7IH0gLmRlYWxlci1zZWxlY3Qtd3JhcHBlciAuYnRuIHsgdGV4dC13cmFwOmF1dG87IHRleHQtYWxpZ246bGVmdDsgcGFkZGluZy1sZWZ0OjEwcHg7IHRyYW5zaXRpb246MC4ycyBlYXNlLWluLW91dDsgZm9udC13ZWlnaHQ6bm9ybWFsOyB9IC5kZWFsZXItc2VsZWN0LXdyYXBwZXIgLmJ0bi5mb2N1c2VkLCAuZGVhbGVyLXNlbGVjdC13cmFwcGVyIC5idG46Zm9jdXMgeyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXRhYi10ZXh0LWNvbG9yKTsgYm9yZGVyLXdpZHRoOjFweDsgYm9yZGVyLXN0eWxlOnNvbGlkOyBib3JkZXItY29sb3I6dmFyKC0tdGFiLWNvbG9yKTsgY29sb3I6dmFyKC0tdGFiLWNvbG9yKTsgYm94LXNoYWRvdzowIDZweCAxMnB4IHJnYmEoMCwwLDAsLjE3NSk7IHRyYW5zZm9ybTp0cmFuc2xhdGVYKDJweCk7IH0gLmFwcGx5LWNyZWRpdCB7IC1tb3otYm94LXNoYWRvdzppbnNldCAwcHggLTNweCA3cHggMHB4ICM5ZTE3M2E7IC13ZWJraXQtYm94LXNoYWRvdzppbnNldCAwcHggLTNweCA3cHggMHB4ICM5ZTE3M2E7IGJveC1zaGFkb3c6aW5zZXQgMHB4IC0zcHggN3B4IDBweCAjOWUxNzNhOyBiYWNrZ3JvdW5kOi13ZWJraXQtZ3JhZGllbnQobGluZWFyLCBsZWZ0IHRvcCwgbGVmdCBib3R0b20sIGNvbG9yLXN0b3AoMC4wNSwgI2M0M2Q2MCksIGNvbG9yLXN0b3AoMSwgIzkxMGEyZCkpOyBiYWNrZ3JvdW5kOi1tb3otbGluZWFyLWdyYWRpZW50KHRvcCwgI2M0M2Q2MCA1JSwgIzkxMGEyZCAxMDAlKTsgYmFja2dyb3VuZDotd2Via2l0LWxpbmVhci1ncmFkaWVudCh0b3AsICNjNDNkNjAgNSUsICM5MTBhMmQgMTAwJSk7IGJhY2tncm91bmQ6LW8tbGluZWFyLWdyYWRpZW50KHRvcCwgI2M0M2Q2MCA1JSwgIzkxMGEyZCAxMDAlKTsgYmFja2dyb3VuZDotbXMtbGluZWFyLWdyYWRpZW50KHRvcCwgI2M0M2Q2MCA1JSwgIzkxMGEyZCAxMDAlKTsgYmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCAjYzQzZDYwIDUlLCAjOTEwYTJkIDEwMCUpOyBmaWx0ZXI6cHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRpZW50KHN0YXJ0Q29sb3JzdHI9JyNmZjMzMzMnLCBlbmRDb2xvcnN0cj0nI0RCMDAwMCcsR3JhZGllbnRUeXBlPTApOyBiYWNrZ3JvdW5kLWNvbG9yOiNjNDNkNjA7IGJvcmRlcjoxcHggc29saWQgI2FiMjQ0NzsgfSAuYXBwbHktY3JlZGl0OmhvdmVyIHsgYmFja2dyb3VuZDotd2Via2l0LWdyYWRpZW50KGxpbmVhciwgbGVmdCB0b3AsIGxlZnQgYm90dG9tLCBjb2xvci1zdG9wKDAuMDUsICNjNDNkNjApLCBjb2xvci1zdG9wKDEsICM5MTBhMmQpKTsgYmFja2dyb3VuZDotbW96LWxpbmVhci1ncmFkaWVudCh0b3AsICM5MTBhMmQgNSUsICNjNDNkNjAgMTAwJSk7IGJhY2tncm91bmQ6LXdlYmtpdC1saW5lYXItZ3JhZGllbnQodG9wLCAjOTEwYTJkIDUlLCAjYzQzZDYwIDEwMCUpOyBiYWNrZ3JvdW5kOi1vLWxpbmVhci1ncmFkaWVudCh0b3AsICM5MTBhMmQgNSUsICNjNDNkNjAgMTAwJSk7IGJhY2tncm91bmQ6LW1zLWxpbmVhci1ncmFkaWVudCh0b3AsICM5MTBhMmQgNSUsICNjNDNkNjAgMTAwJSk7IGJhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgIzkxMGEyZCA1JSwgI2M0M2Q2MCAxMDAlKTsgZmlsdGVyOnByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudChzdGFydENvbG9yc3RyPScjZmYzMzMzJywgZW5kQ29sb3JzdHI9JyNEQjAwMDAnLEdyYWRpZW50VHlwZT0wKTsgYmFja2dyb3VuZC1jb2xvcjojYzQzZDYwOyB9IC5vZmZlci1idG57IGNvbG9yOnZhcigtLWJ0bi10eHQtY29sLCB2YXIoLS11c2VkLW9mZmVyLWJ0bi10ZXh0LWNvbG9yLCAjZmZmKSk7IGJhY2tncm91bmQtY29sb3I6dmFyKC0tYnRuLWJnLWNvbCwgdmFyKC0tdXNlZC1vZmZlci1idG4tYmctY29sb3IsIHZhcigtLXByb21vLWNvbG9yKSkpOyB9IDppcygubmV3VmRwQWN0aW9ucywgLnVzZWRWZHBBY3Rpb25zKSAqeyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IH0gOmlzKC5uZXdWZHBBY3Rpb25zLCAudXNlZFZkcEFjdGlvbnMpIC5wcm9tb0JUTnsgdGV4dC1hbGlnbjpsZWZ0OyB9IDppcygubmV3VmRwQWN0aW9ucywgLnVzZWRWZHBBY3Rpb25zKSAucHJvbW9CVE46OmFmdGVyeyBmb250LWZhbWlseTonRm9udCBBd2Vzb21lIDUgUHJvJywgc2VyaWY7IGZvbnQtd2VpZ2h0OjkwMDsgfSA6aXMoLm5ld1ZkcEFjdGlvbnMsIC51c2VkVmRwQWN0aW9ucywgLnVzZWQtZGV0YWlscywgLm5ldy1kZXRhaWxzKSAucHJvbW9CVE4gPiBzcGFuLmZheyBkaXNwbGF5OmZsZXg7IHdpZHRoOjEuNWVtOyBoZWlnaHQ6MS41ZW07IGFsaWduLWl0ZW1zOmNlbnRlcjsganVzdGlmeS1jb250ZW50OmNlbnRlcjsgY29sb3I6aW5oZXJpdDsgfSA6aXMoLm5ld1ZkcEFjdGlvbnMsIC51c2VkVmRwQWN0aW9ucykgLmNvbXBsZXRlZC5wcm9tb0JUTjo6YWZ0ZXJ7IGNvbnRlbnQ6IlxmMDBjIjsgY29sb3I6aW5oZXJpdDsgfSA6aXMoLm5ld1ZkcEFjdGlvbnMsIC51c2VkVmRwQWN0aW9ucykgLmNvbXBsZXRlZC5wcm9tb0JUTiBzcGFuLmZheyBjb2xvcjojMDAwOyB9IC5ncmF5Ym94IC5wcm9tb0JUTiwgLnVzZWRWZHBBY3Rpb25zIC5wcm9tb0JUTnsgYm9yZGVyLXJhZGl1czoxcHghaW1wb3J0YW50OyBqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOyB0ZXh0LWFsaWduOnVuc2V0OyBsaW5lLWhlaWdodDoxLjVyZW07IH0gLmdyYXlib3ggLmJ1dHRvbl91bmRlciAucHJvbW9CVE4gc3RhY2stbGMsIC5uZXdWZHBBY3Rpb25zIC5idXR0b25fdW5kZXIgLnByb21vQlROIHN0YWNrLWxjIHsgZmxleC1ncm93OjEgIWltcG9ydGFudDsgdGV4dC1hbGlnbjpjZW50ZXIgIWltcG9ydGFudDsgfSAubXVsdGlmb3JtX2VtYmVkZGVkX2Zvb3RlciAuLWZvcmNlZC0tYS1jZmE6OmFmdGVyIHsgZmxleDowIDE7IH0gLmdyYXlib3ggLnByb21vQlROLmJ0bi1pY29uZWR7IGp1c3RpZnktY29udGVudDpmbGV4LXN0YXJ0OyBkaXNwbGF5OmZsZXg7IGFsaWduLWl0ZW1zOmNlbnRlcjsgbWFyZ2luOmF1dG87IHdpZHRoOjk1JTsgfSAuZ3JheWJveCAucHJvbW9CVE4uYnRuLWRlZmF1bHQgc3Bhbi5mYXsgZGlzcGxheTpub25lOyB9IC5ncmF5Ym94IC5wcm9tb0JUTi5idG4taWNvbmVkIHNwYW4uZmF7IGRpc3BsYXk6ZmxleDsgfSAuZ3JheWJveCAucHJvbW9CVE4gc3BhbiwgLnVzZWRWZHBBY3Rpb25zIC5wcm9tb0JUTiBzcGFueyBtYXJnaW4tbGVmdDp1bnNldDsgbGluZS1oZWlnaHQ6MS41ZW07IH0gLnByb21vQlROLmNoZXZyb24tcmlnaHQgLmN0YS1sYWJlbCB7IHBhZGRpbmctcmlnaHQ6MS41cmVtOyB9IC5wcm9tb0JUTiwgLnByb21vQlROIGEsIC5icm9jaHVyZUJ0bnsgYmFja2dyb3VuZDojOTEwYTJkOyBjb2xvcjojZmZmZmZmOyB0ZXh0LXNoYWRvdzpub25lOyBhbmltYXRpb246YWxsIDNzOyBib3JkZXItY29sb3I6IzkxMGEyZDsgfSAucHJvbW9CVE46aG92ZXIsIC5wcm9tb0JUTiBhOmhvdmVyeyBiYWNrZ3JvdW5kOiM5MTBhMmQ7IGNvbG9yOiNmZmZmZmY7IGJvcmRlcjoxcHggc29saWQgIzkxMGEyZDsgfSAucHJvbW9CVE46aG92ZXIgPiAqID4gLmZhLCAucHJvbW9CVE4gYTpob3ZlciA+ICogPiAuZmEgeyBiYWNrZ3JvdW5kOiNmZmZmZmY7IGNvbG9yOiM5MTBhMmQ7IH0gLnByb21vQlROLmdyb3c6aG92ZXIgeyB0cmFuc2Zvcm06c2NhbGUoMS4xKTsgfSAucHJvbW9CVE4uZ3Jvdzpob3ZlciwgLnByb21vQlROLmdyb3c6aG92ZXIgPiAqID4gLmZhLCAucHJvbW9CVE4uZ3JvdyBhOmhvdmVyID4gKiA+IC5mYSB7IHRyYW5zaXRpb246YWxsIDAuM3MgbGluZWFyOyB9IDpub3QoLmN0YS10cmFjay10cGwpIC5wcm9tb0JUTi5yaXBwbGUgeyBwb3NpdGlvbjpyZWxhdGl2ZTsgei1pbmRleDoxOyBvdmVyZmxvdzpoaWRkZW47IHRyYW5zaXRpb246MXMgYWxsIGVhc2U7IH0gOm5vdCguY3RhLXRyYWNrLXRwbCkgLnByb21vQlROLnJpcHBsZTpiZWZvcmUgeyBjb250ZW50IDoiICI7IHBvc2l0aW9uIDphYnNvbHV0ZTsgei1pbmRleCA6LTE7IGJvcmRlci1yYWRpdXMgOjEwMHB4OyB3aWR0aCA6MCU7IGhlaWdodCA6MTIwJTsgdG9wIDo1MCU7IGJvdHRvbSA6NTAlOyBsZWZ0IDo1MCU7IHJpZ2h0IDo1MCU7IHRyYW5zZm9ybSA6dHJhbnNsYXRlKC01MCUsIC01MCUpOyB0cmFuc2l0aW9uIDphbGwgMC42cyBlYXNlOyBib3JkZXI6dW5zZXQ7IGJhY2tncm91bmQ6IzkxMGEyZDsgfSA6bm90KC5jdGEtdHJhY2stdHBsKSAucHJvbW9CVE4ucmlwcGxlOmhvdmVyIHsgYmFja2dyb3VuZDojOTEwYTJkOyBjb2xvcjp2YXIoLS1wcm9tby1idG4taG92ZXItdGV4dC1jb2xvcik7IGJvcmRlci1jb2xvcjp2YXIoLS1wcm9tby1idG4taG92ZXItdGV4dC1jb2xvcik7OyB9IDpub3QoLmN0YS10cmFjay10cGwpIC5wcm9tb0JUTi5yaXBwbGU6aG92ZXI6YmVmb3JlIHsgd2lkdGg6MTIwJTsgfSAucHJvbW9CVE4ucmlwcGxlOmhvdmVyIHNwYW4uZmF7IGNvbG9yOnZhcigtLXByb21vLWJ0bi1ob3Zlci10ZXh0LWNvbG9yKTsgfSAucHJvbW9BcnJvdywucHJvbW9Db2xvcnsgY29sb3I6IzkxMGEyZCFpbXBvcnRhbnQ7IH0gLmJyb2NodXJlQnRueyBib3JkZXI6bm9uZTsgZGlzcGxheTpibG9jazsgdGV4dC1hbGlnbjpjZW50ZXI7IHBhZGRpbmc6NXB4OyB9IC52ZHAtYnRuIHsgYm9yZGVyLXJhZGl1czozcHg7IG1hcmdpbi1ib3R0b206MTBweDsgdGV4dC10cmFuc2Zvcm06bm9uZTsgdGV4dC1hbGlnbjpjZW50ZXI7IGZvbnQtc2l6ZToxLjA2M3JlbSA7IHBhZGRpbmc6OHB4IDVweDsgd2lkdGg6MjM3cHg7IH0gQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOjQwMHB4KSB7IC5idG4tZGVmYXVsdCwgLmN1c3RvbWZvcm1fc3VibWl0LCBpbnB1dFt0eXBlPWJ1dHRvbl0uYnRuLWRlZmF1bHQsIGlucHV0W3R5cGU9c3VibWl0XS5idG4tZGVmYXVsdHsgZm9udC1zaXplOmluaGVyaXQ7IH0gLmFwcGx5LWNyZWRpdCB7IGJhY2tncm91bmQ6I2M0M2Q2MDsgYm9yZGVyOjFweCBzb2xpZCAjYWIyNDQ3OyB9IC5hcHBseS1jcmVkaXQ6aG92ZXIgeyBiYWNrZ3JvdW5kOnskQVBQTFlfQ1JFRElUX0JUTl9DT0xPUl9FTkRIT1ZFUkNPTE9SfTsgfSB9IC5iZ19ibHVleyBiYWNrZ3JvdW5kLWNvbG9yOiMwNjg4ZmEhaW1wb3J0YW50OyBjb2xvcjojZmZmOyB9IC5iZ19yZWR7IGJhY2tncm91bmQtY29sb3I6I2ZmMDAwMCFpbXBvcnRhbnQ7IGNvbG9yOiNmZmY7IH0gLmJnX2dyZWVueyBiYWNrZ3JvdW5kLWNvbG9yOiM2OGE1NGIhaW1wb3J0YW50OyBjb2xvcjojZmZmOyB9IC5iZ19ibGFja3sgYmFja2dyb3VuZC1jb2xvcjojMDAwMDAwIWltcG9ydGFudDsgY29sb3I6I2ZmZjsgfSAuYmdfZ3JheXsgYmFja2dyb3VuZC1jb2xvcjojNzk3OTc5IWltcG9ydGFudDsgY29sb3I6I2ZmZjsgfSAuYmdfYmx1ZSBhLC5iZ19yZWQgYSwuYmdfZ3JlZW4gYSwuYmdfYmxhY2sgYSwuYmdfZ3JheSBhIHsgY29sb3I6I2ZmZjsgfSAuYmdfZGVmYXVsdHsgYmFja2dyb3VuZC1jb2xvcjojMTAxMDEwIWltcG9ydGFudDsgfSAuYm94Mjd7IHdpZHRoOjEzMXB4OyBoZWlnaHQ6MjhweDsgZmxvYXQ6bGVmdDsgbWFyZ2luLWJvdHRvbTo4cHg7IH0gLmJveDI3IGF7IHdpZHRoOjEzMXB4OyBoZWlnaHQ6MjhweDsgZmxvYXQ6bGVmdDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9idXR0b24xMF9iZy5wbmcpIGxlZnQgdG9wIHJlcGVhdC14IDsgYm9yZGVyLXJhZGl1czozcHg7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiNGRkZGRkY7IHRleHQtZGVjb3JhdGlvbjpub25lOyBmb250LXdlaWdodDpub3JtYWw7IHBhZGRpbmc6MDsgbGluZS1oZWlnaHQ6MjhweDsgdGV4dC1hbGlnbjogY2VudGVyOyB0ZXh0LXRyYW5zZm9ybTpub25lOyB9IC5ib3gyNyBhOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2J1dHRvbjEwX2JnLnBuZykgbGVmdCAtMzJweCByZXBlYXQteDsgY29sb3I6I0ZGRkZGRjsgfSAuYm94Mjh7IHdpZHRoOjEyN3B4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgbWFyZ2luOjBweDsgYmFja2dyb3VuZDojNmY2ZjZmIHVybCgvaW1hZ2VzL2xpdGVyX2JnLnBuZykgbGVmdCB0b3AgcmVwZWF0LXg7IGJvcmRlci1yYWRpdXM6M3B4OyBwYWRkaW5nOjEwcHggMnB4IDEwcHggMnB4OyBtYXJnaW46MCAwcHggMCAwOyB9IC50ZXh0NDR7IHdpZHRoOjEyN3B4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9saXRlcl9saW5lLnBuZykgbGVmdCBib3R0b20gcmVwZWF0LXg7IGJhY2tncm91bmQtcG9zaXRpb246Ym90dG9tOyB0ZXh0LWFsaWduOmNlbnRlcjsgcGFkZGluZy1ib3R0b206NXB4OyBtYXJnaW4tYm90dG9tOjVweDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6I0ZGRkZGRjsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgdGV4dC1hbGlnbjpjZW50ZXI7IHRleHQtdHJhbnNmb3JtOm5vbmU7IGxpbmUtaGVpZ2h0OjE4cHg7IH0gLmNvbnN1bXB0aW9uLW5vdC1hdmFpbGFibGUgPiAudGV4dDQ0ID4gc3BhbiA+ICNjaXR5RnVlbCB7IGRpc3BsYXk6bm9uZTsgfSAuY29uc3VtcHRpb24tbm90LWF2YWlsYWJsZSA+IC50ZXh0NDQgPiBzcGFuID4gI2hpZ2h3YXlGdWVsIHsgZGlzcGxheTpub25lOyB9IC50ZXh0X3NsaWRlIGEgeyBoZWlnaHQ6MzhweDsgbWFyZ2luLXJpZ2h0OjAuM2VtOyBwYWRkaW5nLXRvcDoxcHggIWltcG9ydGFudDsgfSAudGV4dF9zbGlkZSBhID4gYiB7IGRpc3BsYXk6YmxvY2s7IG92ZXJmbG93OmhpZGRlbiAhaW1wb3J0YW50OyBwb3NpdGlvbjpyZWxhdGl2ZTsgaGVpZ2h0OjI1cHg7IHdpZHRoOjEwMCU7IH0gLnRleHRfc2xpZGUgYSA+IGIgPiBtMSB7IGRpc3BsYXk6aW5saW5lLWJsb2NrOyBwb3NpdGlvbjpyZWxhdGl2ZTsgd2hpdGUtc3BhY2U6bm93cmFwOyBsaW5lLWhlaWdodDozOHB4ICFpbXBvcnRhbnQ7IHRvcDotOHB4OyBsZWZ0OjA7IH0gLnRleHRfc2xpZGUudGV4dF9zbGlkZV80IGEgPiBiID4gbTEgeyBhbmltYXRpb246dGV4dF9zbGlkZV80IDRzIGVhc2UgNXM7IGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6aW5maW5pdGU7IH0gLnRleHRfc2xpZGUudGV4dF9zbGlkZV8zIGEgPiBiID4gbTEgeyBhbmltYXRpb246dGV4dF9zbGlkZV8zIDNzIGVhc2UgNHM7IGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6aW5maW5pdGU7IH0gLnRleHRfc2xpZGUudGV4dF9zbGlkZV8yIGEgPiBiID4gbTEgeyBhbmltYXRpb246dGV4dF9zbGlkZV8yIDJzIGVhc2UgMnM7IGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6aW5maW5pdGU7IH0gLnRleHRfc2xpZGUucHJvbW9jb2RlYm94IHsgcGFkZGluZzowcHggMHB4OyBtYXJnaW4tbGVmdDowcHg7IHdpZHRoOjEwMCU7IG1hcmdpbi10b3A6OXB4OyB9IEBrZXlmcmFtZXMgdGV4dF9zbGlkZV80IHsgMCUgeyB0b3A6LThweDsgfSAyNSUgeyB0b3A6LTQ2cHg7IH0gNTAlIHsgdG9wOi04NHB4OyB9IDc1JSB7IHRvcDotMTIycHg7IH0gMTAwJSB7IHRvcDotMTYwcHg7IH0gfSBAa2V5ZnJhbWVzIHRleHRfc2xpZGVfMyB7IDAlIHsgdG9wOi04cHg7IH0gMzMlIHsgdG9wOi00NnB4OyB9IDY2JSB7IHRvcDotODRweDsgfSAxMDAlIHsgdG9wOi0xMjJweDsgfSB9IEBrZXlmcmFtZXMgdGV4dF9zbGlkZV8yIHsgMCUgeyB0b3A6LThweDsgfSA1MCUgeyB0b3A6LTQ2cHg7IH0gMTAwJSB7IHRvcDotODRweDsgfSB9IC5tYXAgeyB3aWR0aDoxMDAlOyB0ZXh0LWFsaWduOmNlbnRlcjsgcG9zaXRpb246cmVsYXRpdmU7IH0gLm1hcCAud3JhcHBlcnsgcG9zaXRpb246c3RhdGljICFpbXBvcnRhbnQ7IH0gLm1hcF9kZWFsZXJfbGlzdCB7IGJhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuOSk7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgcG9zaXRpb246YWJzb2x1dGU7IHRvcDowOyBwYWRkaW5nOjAgMzBweDsgd2lkdGg6MzE1cHg7IGhlaWdodDoxMDAlOyB0ZXh0LWFsaWduOmxlZnQ7IG92ZXJmbG93LXk6YXV0bzsgfSAubWFwX2RlYWxlcl9saXN0X2l0ZW0geyBjdXJzb3I6cG9pbnRlcjsgcGFkZGluZzoxM3B4IDA7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IH0gLm1hcF9kZWFsZXJfbGlzdF9pdGVtX25hbWUgeyBwb3NpdGlvbjphYnNvbHV0ZTsgfSAubWFwX2RlYWxlcl9saXN0X2l0ZW1fbmFtZTpob3ZlciB7IGZvbnQtd2VpZ2h0OjcwMDsgfSAubWFwX2RlYWxlcl9saXN0X2l0ZW1fbmFtZV9hY3RpdmUgeyBmb250LXdlaWdodDo3MDA7IH0gLm1hcmtlclNwYW4geyBoZWlnaHQ6MThweDsgd2lkdGg6MjBweDsgZGlzcGxheTppbmxpbmUtYmxvY2s7IHBvc2l0aW9uOnJlbGF0aXZlOyBkaXNwbGF5OmlubGluZS1ibG9jazsgfSAubWFya2VyU3BhbjpiZWZvcmUgeyBjb250ZW50OicnOyBoZWlnaHQ6NHB4OyB3aWR0aDo0cHg7IGJvcmRlcjoycHggc29saWQgIzMzMzsgZGlzcGxheTpibG9jazsgcG9zaXRpb246YWJzb2x1dGU7IHRvcDoycHg7IGxlZnQ6MHB4OyB6LWluZGV4OjE7IGJhY2tncm91bmQ6I2ZmZjsgbGluZS1oZWlnaHQ6MjZweDsgYm9yZGVyLXJhZGl1czo0MHB4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6NDBweDsgLW1vei1ib3JkZXItcmFkaXVzOjQwcHg7IGNvbG9yOiNmZmY7IHRleHQtYWxpZ246Y2VudGVyOyB9IC5tYXJrZXJTcGFuOmFmdGVyIHsgY29udGVudDonJzsgaGVpZ2h0OjBweDsgd2lkdGg6MHB4OyBkaXNwbGF5OmJsb2NrOyBwb3NpdGlvbjphYnNvbHV0ZTsgYm90dG9tOjJweDsgbGVmdDoycHg7IGJvcmRlcjoxMHB4IHRyYW5zcGFyZW50IHNvbGlkOyBib3JkZXItdG9wLWNvbG9yOiMzMzM7IGJvcmRlci13aWR0aDo3cHggMnB4IDBweCAycHg7IH0gLm1hcF9vcGVuX2hvdXJzIHsgYmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC45KTsgYm94LXNpemluZzpib3JkZXItYm94OyBwb3NpdGlvbjphYnNvbHV0ZTsgdG9wOjA7IHdpZHRoOjQwMHB4OyBoZWlnaHQ6MTAwJTsgdGV4dC1hbGlnbjpsZWZ0OyB9IC5vcGVuX2hvdXJzX2NvbnRhaW5lciB7IGJhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuOSk7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgdGV4dC1hbGlnbjpsZWZ0OyB9IC5tYXBfb3Blbl9ob3VycyAubWFwX29wZW5faG91cnMtLXRpdGxlLCAub3Blbl9ob3Vyc19jb250YWluZXIgaDIsIC5vcGVuX2hvdXJzX2NvbnRhaW5lciBzcGFuLmgyLWFsdCB7IGZvbnQtc2l6ZToxLjVlbTsgZm9udC13ZWlnaHQ6Ym9sZDsgcGFkZGluZy1sZWZ0OjE1cHg7IG1hcmdpbi10b3A6MjBweDsgbWFyZ2luLWJvdHRvbToxMHB4OyBjb2xvcjppbmhlcml0OyB9IC5tYXBfb3Blbl9ob3VycyB1bCwgLm9wZW5faG91cnNfY29udGFpbmVyIHVsIHsgcGFkZGluZzowIDA7IH0gLm1hcF9vcGVuX2hvdXJzIHVsIGxpLCAub3Blbl9ob3Vyc19jb250YWluZXIgdWwgbGkgeyBsaXN0LXN0eWxlOm5vbmU7IGN1cnNvcjpwb2ludGVyOyBjdXJzb3I6aGFuZDsgYm9yZGVyLWJvdHRvbToxcHggc29saWQgI2YzZjNmMzsgfSAubWFwX29wZW5faG91cnNfZXhwYW5keyBwYWRkaW5nOjZweCAzMHB4IDhweCAxNXB4OyBkaXNwbGF5OmJsb2NrOyB9IC5leHBhbmRhYmxlX2NvbnRlbnR7IHBhZGRpbmc6MHB4IDE2cHggNXB4IDE2cHg7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGxpbmUtaGVpZ2h0OjEuNDI4NTcxNDM7IH0gLmV4cGFuZGFibGVfY29udGVudCBkaXYsIC5leHBhbmRhYmxlX2NvbnRlbnRfbXVsdGlsb2NhdGlvbiBkaXYgeyBkaXNwbGF5IDpmbGV4OyBmbGV4LWRpcmVjdGlvbiA6cm93OyB9IC5leHBhbmRhYmxlX2NvbnRlbnQgPiBkaXYgPiBzcGFuOmZpcnN0LW9mLXR5cGUsIC5leHBhbmRhYmxlX2NvbnRlbnRfbXVsdGlsb2NhdGlvbiBkaXYgc3BhbjpmaXJzdC1vZi10eXBlIHsgd2lkdGg6NDAlOyB9IC5leHBhbmRhYmxlX2NvbnRlbnRfbXVsdGlsb2NhdGlvbnsgZm9udC1zaXplOjAuODc1cmVtIDsgbGluZS1oZWlnaHQ6MS40Mjg1NzE0MzsgbWFyZ2luLXRvcDoxNXB4OyB9IEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aCA6NzU5cHgpIHsgLmV4cGFuZGFibGVfY29udGVudCwgLmV4cGFuZGFibGVfY29udGVudF9tdWx0aWxvY2F0aW9uIHsgZm9udC1zaXplOmluaGVyaXQ7IH0gfSAuZXhwYW5kYWJsZV9jb250ZW50X211bHRpbG9jYXRpb24gdGFibGV7IG1hcmdpbi10b3A6MTVweDsgfSAubWFwX29wZW5faG91cnNfZXhwYW5kX2Fycm93eyBmbG9hdDpyaWdodDsgbWFyZ2luLXRvcDozcHg7IH0gLm1hcF9vcGVuX2hvdXJzX2V4cGFuZF9hcnJvdy5leHBhbmRlZHsgdHJhbnNmb3JtOnJvdGF0ZSgxODBkZWcpOyB9IC5tYXBfb3Blbl9ob3Vyc19tb2JpbGV7IGJhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuOSk7IH0gLm1hcF9vcGVuX2hvdXJzX21vYmlsZSAubWFwX29wZW5faG91cnNfbW9iaWxlLS10aXRsZSB7IGZvbnQtc2l6ZTp2YXIoLS1mczQpOyB0ZXh0LWFsaWduOmNlbnRlcjsgfSAubWFwX29wZW5faG91cnNfbW9iaWxlIHVseyBwYWRkaW5nOjAgMDsgfSAubWFwX29wZW5faG91cnNfbW9iaWxlIHVsIGxpeyBsaXN0LXN0eWxlOm5vbmU7IGN1cnNvcjpwb2ludGVyOyBib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZjNmM2YzOyB9IC5tYWluX2xlZnRfYm94ICNmb290ZXJHb29nbGVNYXBIb3Vyc0NvbnRhaW5lcnsgd2lkdGg6OTYwcHg7IH0gLnZpZGVvQnRuU2xpZGVyLCAucGhvdG9CdG5TbGlkZXJ7IGJvcmRlci1yYWRpdXM6NTAlOyBib3JkZXI6MXB4IHNvbGlkICNiM2IzYjM7IGNvbG9yOiNiM2IzYjM7IHdpZHRoOjc1cHg7IGhlaWdodDo3NXB4OyBiYWNrZ3JvdW5kLWNvbG9yOiNmZmZmZmY7IG9wYWNpdHk6MC41OyB9IC52aWRlb0J0blNsaWRlcjpob3ZlciwgLnBob3RvQnRuU2xpZGVyOmhvdmVyeyBib3JkZXItcmFkaXVzOjUwJTsgYm9yZGVyOjFweCBzb2xpZCAjZmZmZmZmOyB3aWR0aDo3NXB4OyBoZWlnaHQ6NzVweDsgYmFja2dyb3VuZC1jb2xvcjojYjNiM2IzOyBvcGFjaXR5OjAuNTsgfSAucGhvdG9CdG5TbGlkZXIgLmZhLCAudmlkZW9CdG5TbGlkZXIgLmZheyBjb2xvcjojYjNiM2IzOyB9IC5waG90b0J0blNsaWRlcjpob3ZlciAuZmEsIC52aWRlb0J0blNsaWRlcjpob3ZlciAuZmF7IGNvbG9yOiNmZmZmZmY7IH0gLnZpZGVvQnRuU2xpZGVyVXNlZCwgLnBob3RvQnRuU2xpZGVyVXNlZHsgYm9yZGVyLXJhZGl1czo1MCU7IGJvcmRlcjoxcHggc29saWQgI2IzYjNiMzsgY29sb3I6I2IzYjNiMzsgd2lkdGg6NzVweDsgaGVpZ2h0Ojc1cHg7IGJhY2tncm91bmQtY29sb3I6I2ZmZmZmZjsgb3BhY2l0eTowLjk7IH0gLnZpZGVvQnRuU2xpZGVyVXNlZDpob3ZlciwgLnBob3RvQnRuU2xpZGVyVXNlZDpob3ZlcnsgYm9yZGVyLXJhZGl1czo1MCU7IGJvcmRlcjoxcHggc29saWQgI2ZmZmZmZjsgd2lkdGg6NzVweDsgaGVpZ2h0Ojc1cHg7IGJhY2tncm91bmQtY29sb3I6I2IzYjNiMzsgb3BhY2l0eTowLjU7IH0gLnBob3RvQnRuU2xpZGVyVXNlZCAuZmEsIC52aWRlb0J0blNsaWRlclVzZWQgLmZheyBjb2xvcjojYjNiM2IzOyB9IC5waG90b0J0blNsaWRlclVzZWQ6aG92ZXIgLmZhLCAudmlkZW9CdG5TbGlkZXJVc2VkOmhvdmVyIC5mYXsgY29sb3I6I2ZmZmZmZjsgfSAudmlkZW9zX3BpY3R1cmVzX2J1dHRvbnNfY29udGFpbmVyeyBsZWZ0OjVweDsgYm90dG9tOjgycHg7IHBvc2l0aW9uOnJlbGF0aXZlOyB6LWluZGV4Ojk5OTsgZmxvYXQ6bGVmdDsgbWFyZ2luLWJvdHRvbTotODBweDsgfSAuLWRpc3BsYXktbm9uZXsgZGlzcGxheTpub25lOyB9ICNkZWZhdWx0VG9wQmFubmVyV3JhcHsgdGV4dC1hbGlnbjpjZW50ZXI7IHZlcnRpY2FsLWFsaWduOm1pZGRsZTsgcGFkZGluZzo0MHB4IDE1cHg7IH0gI2RlZmF1bHRUb3BCYW5uZXJ7IHRleHQtYWxpZ246Y2VudGVyOyB3aWR0aDoxMDAlOyBib3JkZXItcmFkaXVzOjZweDsgY3Vyc29yOnBvaW50ZXI7IH0gI2RlZmF1bHRUb3BCYW5uZXJUaXRsZSwgI2RlZmF1bHRUb3BCYW5uZXJUZXh0eyBmb250LXdlaWdodDpib2xkOyB9ICNkZWZhdWx0VG9wQmFubmVyV3JhcCBkaXYuZGVmYXVsdFRvcEJhbm5lckJ0bldyYXBwZXJ7IG1hcmdpbjozMHB4IDAgMjBweCAwOyB3aWR0aDoxMDAlOyBmbG9hdDpsZWZ0OyB9ICNkZWZhdWx0VG9wQmFubmVyQnRueyBwYWRkaW5nOjEwcHggMzBweDsgYmFja2dyb3VuZDpibGFjazsgYm9yZGVyOjJweCB3aGl0ZSBzb2xpZDsgYm9yZGVyLXJhZGl1czozcHg7IHRleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTsgZm9udC13ZWlnaHQ6Ym9sZDsgY29sb3I6I2ZmZmZmZjsgYm94LXNoYWRvdzowcHggMnB4IDEzcHggMHB4ICMxYjFiMWI7IH0gI3RvcEJhbm5lckltYWdlLk5FV0NBUlMgI2RlZmF1bHRUb3BCYW5uZXJUaXRsZXsgZm9udC1zaXplOjMuMTI1cmVtIDsgfSAjdG9wQmFubmVySW1hZ2UuTkVXQ0FSUyAjZGVmYXVsdFRvcEJhbm5lclRleHR7IGZvbnQtc2l6ZToyLjgxM3JlbSA7IH0gI3RvcEJhbm5lckltYWdlLlVTRURDQVJTICNkZWZhdWx0VG9wQmFubmVyVGl0bGV7IGZvbnQtc2l6ZTozLjEyNXJlbSA7IH0gI3RvcEJhbm5lckltYWdlLlVTRURDQVJTICNkZWZhdWx0VG9wQmFubmVyVGV4dHsgZm9udC1zaXplOjIuODEzcmVtIDsgfSAjdG9wQmFubmVySW1hZ2U6ZW1wdHl7IG1hcmdpbjowICFpbXBvcnRhbnQ7IHBhZGRpbmc6MCAhaW1wb3J0YW50OyB9ICN0b3BCYW5uZXJJbWFnZS5VU0VEQ0FSUyAjZGVmYXVsdFRvcEJhbm5lcldyYXB7IGhlaWdodDoyNjVweDsgYm94LXNpemluZzpib3JkZXItYm94OyBwYWRkaW5nOjQwcHggMTVweDsgfSAjdG9wQmFubmVySW1hZ2UuTkVXQ0FSUyAjZGVmYXVsdFRvcEJhbm5lcldyYXB7IGhlaWdodDoyNjVweDsgYm94LXNpemluZzpib3JkZXItYm94OyBwYWRkaW5nOjQwcHggMTVweDsgfSAjZ29vZ2xlX3Jldmlld3N7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiM2NjY7IH0gI2dvb2dsZV9yZXZpZXdzIC5yZXZpZXctaXRlbSAucmV2aWV3LXN0YXJzIHVsIHsgZGlzcGxheTppbmxpbmUtYmxvY2s7IGxpc3Qtc3R5bGU6bm9uZTsgcGFkZGluZzowOyB9ICNnb29nbGVfcmV2aWV3cyAucmV2aWV3LWl0ZW0gLnJldmlldy1zdGFycyB1bCBsaSB7IGZsb2F0OmxlZnQ7IG1hcmdpbi1yaWdodDo1cHg7IHdpZHRoOmluaXRpYWwgIWltcG9ydGFudDsgcGFkZGluZzppbml0aWFsOyB9ICNnb29nbGVfcmV2aWV3cyAucmV2aWV3LWl0ZW0gLnJldmlldy1zdGFycyB1bCBsaSBpIHsgY29sb3I6I0U0QjI0ODsgZm9udC1zdHlsZTpub3JtYWw7IGZvbnQtc2l6ZTowLjkzOHJlbSA7IH0gI2dvb2dsZV9yZXZpZXdzIC5yZXZpZXctaXRlbSAucmV2aWV3LXN0YXJzIHVsIGxpIGkuaW5hY3RpdmUgeyBjb2xvcjojYzZjNmM2OyB9ICNnb29nbGVfcmV2aWV3cyAucmV2aWV3LWl0ZW0gLnJldmlldy1zdGFyOmFmdGVyIHsgY29udGVudDoiXDI2MDUiOyB9ICNlYXN5LWdwbGFjZXMtcmV2aWV3cy1idXR7IGZvbnQtd2VpZ2h0OmJvbGQ7IHBhZGRpbmc6NXB4IDhweDsgaGVpZ2h0OjI3cHg7IGxpbmUtaGVpZ2h0OjI3cHg7IH0gLnJldmlldy1hdXRob3J7IHRleHQtdHJhbnNmb3JtOmNhcGl0YWxpemU7IH0gI2Vhc3ktZ3BsYWNlcy1yZXZpZXdzLWJ1dC5kZWZhdWx0eyBjb2xvcjojNDQ0OyBiYWNrZ3JvdW5kLWNvbG9yOiNmNWY1ZjU7IGJhY2tncm91bmQtaW1hZ2U6LW1vei1saW5lYXItZ3JhZGllbnQoY2VudGVyIHRvcCAsICNmNWY1ZjUsICNmMWYxZjEpOyBib3JkZXI6MXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4xKTsgfSAjZWFzeS1ncGxhY2VzLXJldmlld3MtYnV0LnJlZHsgY29sb3I6I2ZmZjsgYmFja2dyb3VuZC1jb2xvcjojZjVmNWY1OyBiYWNrZ3JvdW5kLWltYWdlOi1tb3otbGluZWFyLWdyYWRpZW50KGNlbnRlciB0b3AgLCAjREQ0QjM5LCAjRDE0ODM2KTsgYm9yZGVyOjFweCBzb2xpZCAjRDE0ODM2OyB9ICNlYXN5LWdwbGFjZXMtcmV2aWV3cy1idXQuYmx1ZXsgY29sb3I6I2ZmZjsgYmFja2dyb3VuZC1jb2xvcjojNEQ5MEZFOyBiYWNrZ3JvdW5kLWltYWdlOi1tb3otbGluZWFyLWdyYWRpZW50KGNlbnRlciB0b3AgLCAjNEQ5MEZFLCAjNDc4N0VEKTsgYm9yZGVyOjFweCBzb2xpZCAjMzA3OUVEOyB9IC5lbWJlZC1jb250YWluZXIteW91dHViZSBpZnJhbWUsIC5lbWJlZC1jb250YWluZXIteW91dHViZSBvYmplY3QsIC5lbWJlZC1jb250YWluZXIteW91dHViZSBlbWJlZCB7IHBvc2l0aW9uOmFic29sdXRlOyB0b3A6MDsgbGVmdDowOyB3aWR0aDoxMDAlOyBoZWlnaHQ6MTAwJTsgfSAuZW1iZWQtY29udGFpbmVyLXlvdXR1YmUyeyBwb3NpdGlvbjpyZWxhdGl2ZTsgcGFkZGluZy1ib3R0b206NTYuMjUlOyBoZWlnaHQ6MDsgb3ZlcmZsb3c6aGlkZGVuOyBtYXgtd2lkdGg6MTAwJTsgfSAuZW1iZWQtY29udGFpbmVyLXlvdXR1YmUyIGlmcmFtZSwgLmVtYmVkLWNvbnRhaW5lci15b3V0dWJlMiBvYmplY3QsIC5lbWJlZC1jb250YWluZXIteW91dHViZTIgZW1iZWQgeyBwb3NpdGlvbjphYnNvbHV0ZTsgdG9wOjA7IGxlZnQ6MDsgd2lkdGg6MTAwJTsgaGVpZ2h0OjEwMCU7IH0gI3NlYXJjaENyaXRlcmlhVzo6YWZ0ZXIsICNhY3Rpb25Cb3hCdG46OmFmdGVyLCAjbGlua0NvbnRhaW5lcjo6YWZ0ZXJ7IGNvbnRlbnQ6Jyc7IGhlaWdodDoxcHg7IGRpc3BsYXk6aW5saW5lLWJsb2NrOyBtYXJnaW4tYm90dG9tOicxNXB4JzsgfSAjc2VhcmNoQ3JpdGVyaWFXOjphZnRlciwgI2FjdGlvbkJveEJ0bjo6YWZ0ZXIsICNsaW5rQ29udGFpbmVyOjphZnRlcnsgYmFja2dyb3VuZDpub25lOyB3aWR0aDoyODBweDsgfSAuYmFubmVyUG9wdXBDbG9zZXsgY29sb3I6I2FhYTsgfSAuc2VlVmlkZW9CdG4xeyBiYWNrZ3JvdW5kLWNvbG9yOiMwMDAgIWltcG9ydGFudDsgYm9yZGVyOjFweCBzb2xpZCAjZmZmICFpbXBvcnRhbnQ7IGNvbG9yOiNmZmYgIWltcG9ydGFudDsgfSAuc2VlVmlkZW9CdG4xOmhvdmVyeyBiYWNrZ3JvdW5kLWNvbG9yOiNmZmYgIWltcG9ydGFudDsgYm9yZGVyOjFweCBzb2xpZCAjMDAwICFpbXBvcnRhbnQ7IGNvbG9yOiMxMDEwMTAgIWltcG9ydGFudDsgfSAjYm90dG9tTGVmdEJhbm5lckltYWdleyBtYXJnaW46MTBweCAwcHggMHB4OyBmbG9hdDpsZWZ0OyB3aWR0aDoxMDAlOyB9ICNkZWZhdWx0Qm90dG9tTGVmdEJhbm5lcnsgdGV4dC1hbGlnbjpjZW50ZXI7IHdpZHRoOjEwMCU7IGJvcmRlci1yYWRpdXM6NnB4OyBjdXJzb3I6cG9pbnRlcjsgfSAjZGVmYXVsdEJvdHRvbUxlZnRCYW5uZXJXcmFweyB0ZXh0LWFsaWduOmNlbnRlcjsgdmVydGljYWwtYWxpZ246bWlkZGxlOyBwYWRkaW5nOjE1cHg7IH0gI2RlZmF1bHRCb3R0b21MZWZ0QmFubmVyVGl0bGV7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc2l6ZToyLjE4OHJlbSA7IH0gI2RlZmF1bHRCb3R0b21MZWZ0QmFubmVyVGV4dHsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zaXplOjEuOTM4cmVtIDsgfSAjZGVmYXVsdEJvdHRvbUxlZnRCYW5uZXJXcmFwIGRpdi5kZWZhdWx0Qm90dG9tTGVmdEJhbm5lckJ0bldyYXBwZXJ7IG1hcmdpbjoyMHB4IDAgMTBweCAwOyB3aWR0aDoxMDAlOyBmbG9hdDpsZWZ0OyB9ICNkZWZhdWx0Qm90dG9tTGVmdEJhbm5lckJ0bnsgcGFkZGluZzo3cHggMjFweDsgYmFja2dyb3VuZDpibGFjazsgYm9yZGVyOjJweCB3aGl0ZSBzb2xpZDsgYm9yZGVyLXJhZGl1czozcHg7IHRleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTsgZm9udC13ZWlnaHQ6Ym9sZDsgY29sb3I6I2ZmZmZmZjsgYm94LXNoYWRvdzowcHggMnB4IDEzcHggMHB4ICMxYjFiMWI7IGZvbnQtc2l6ZTo3MCU7IH0gLm1haW5EaXYtd3JhcHBlciB7IHBhZGRpbmctdG9wOjAuMDFyZW07IGJhY2tncm91bmQtY29sb3I6IzEwMTAxMDsgfSAubGFuZ3VhZ2VCYXIgI3NlcnZpY2VfYXBwb2ludF9oZWFkZXIgPiBhIHsgcGFkZGluZzowIDEycHg7IGhlaWdodDoyNnB4OyBsaW5lLWhlaWdodDoyN3B4OyBib3JkZXItcmFkaXVzOjA7IH0gI3NlcnZpY2VfYXBwb2ludF9oZWFkZXIgPiBhIHsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IGJhY2tncm91bmQtY29sb3I6I2Y1ZjVmNTsgYmFja2dyb3VuZC1jb2xvcjojOTEwOTJkOyBjb2xvcjp3aGl0ZTsgY29sb3I6I2ZmZmZmZjsgfSAjc2VydmljZV9hcHBvaW50X2hlYWRlciA+IGEuYnRuIHsgZm9udC13ZWlnaHQ6bm9ybWFsOyB9IC5sYW5ndWFnZUJhciAjc2VydmljZV9hcHBvaW50X2hlYWRlciA+IC5idG4tZGVmYXVsdDpob3ZlciB7IGJvcmRlci1jb2xvcjojZjVmNWY1OyBib3JkZXItY29sb3I6IzkxMDkyZDsgfSAjc2VydmljZV9hcHBvaW50X2hlYWRlciAuc2hvcnQtc2VydmljZS1mb3JtIHsgZGlzcGxheTpub25lOyBib3gtc2hhZG93OjAgNnB4IDEycHggcmdiYSgwLCAwLCAwLCAuMTc1KTsgcG9zaXRpb246YWJzb2x1dGU7IHdpZHRoOjM1MHB4OyByaWdodDowOyBwYWRkaW5nOjE1cHg7IHotaW5kZXg6OTk5OTsgYmFja2dyb3VuZC1jb2xvcjp3aGl0ZTsgaGVpZ2h0OmF1dG87IHRvcDoyM3B4OyB9IC5sYW5ndWFnZUJhciAjc2VydmljZV9hcHBvaW50X2hlYWRlciBkaXY6bm90KFtjbGFzc10pIHsgZmxvYXQ6aW5pdGlhbDsgd2lkdGg6MTAwJTsgbWFyZ2luLXJpZ2h0OjA7IHRleHQtYWxpZ246aW5pdGlhbDsgfSAjc2VydmljZV9hcHBvaW50X2hlYWRlcjpob3ZlciAuc2hvcnQtc2VydmljZS1mb3JtIHsgZGlzcGxheTpibG9jazsgfSAjc2VydmljZV9hcHBvaW50X2hlYWRlciB7IHBvc2l0aW9uOnJlbGF0aXZlOyB9ICNzZXJ2aWNlX2FwcG9pbnRfaGVhZGVyLmlzT3BlbiAuc2hvcnQtc2VydmljZS1mb3JtIHsgZGlzcGxheTpibG9jazsgfSAubGFuZ3VhZ2VCYXIgI3NlcnZpY2VfYXBwb2ludF9oZWFkZXIgLm1haWx3aWRnZXQtLWZvcm0tcm93LCAubGFuZ3VhZ2VCYXIgI3NlcnZpY2VfYXBwb2ludF9oZWFkZXIgLm1haWx3aWRnZXQtLWZvcm0tcm93IGRpdiB7IG1hcmdpbi1yaWdodDppbmhlcml0OyB3aWR0aDoxMDAlICFpbXBvcnRhbnQ7IGZsb2F0Om5vbmU7IH0gLmxhbmd1YWdlQmFyICNzZXJ2aWNlX2FwcG9pbnRfaGVhZGVyIC5tYWlsd2lkZ2V0LS1mb3JtLXJvdyB0YWJsZSB0ZXh0YXJlYSB7IHdpZHRoOmNhbGMoMTAwJSArIDJweCkgIWltcG9ydGFudDsgfSAjdXNlZF80MDRfbWVzc2FnZSB7IHRleHQtYWxpZ246Y2VudGVyOyBwYWRkaW5nOjMwcHg7IGJvcmRlcjoxcHggc29saWQgI2YwMDsgbWFyZ2luOjAgMCAyMHB4IDA7IH0gLmF1ZGktdGl0bGUgaDIgeyBmb250LXdlaWdodDpub3JtYWw7IH0gLmF1ZGktY29sb3IgeyBjb2xvcjojYmIwYTMwOyBmb250LXdlaWdodDpib2xkOyB9IGRpdiNzb2NpYWxfbWVkaWFfaWNvbnNfZGl2IHsgZm9udC1zaXplOmluaGVyaXQ7IH0gYS5zb2NpYWwtbGluayB7IC0tZnM6dmFyKC0tZnM2KTsgLS10eHQtY29sb3I6I2Y1ZjVmNTsgfSAjc29jaWFsX21lZGlhX2ljb25zX2RpdiAuc29jaWFsLWxpbmtbZGF0YS10b29sdGlwPSdZb3V0dWJlJ10gLnNvY2lhbC1pY29ucyB7IG1hcmdpbi1yaWdodDozcHg7IH0gLnBheXBhbF9idXR0b25faHRtbCB0YWJsZXsgbWFyZ2luLWxlZnQ6YXV0bzsgbWFyZ2luLXJpZ2h0OmF1dG87IGJhY2tncm91bmQtY29sb3I6YmxhY2s7IGNvbG9yOndoaXRlOyB3aWR0aDoxMDAlOyBwYWRkaW5nOjAgMCAxMHB4IDA7IGJvcmRlci1yYWRpdXM6M3B4IDNweCAwIDA7IHRleHQtYWxpZ246Y2VudGVyOyB9IC5wYXlwYWxfYnV0dG9uX2h0bWwgdGFibGUgdHI6Zmlyc3QtY2hpbGR7IGZvbnQtc2l6ZToxLjEyNXJlbSA7IGhlaWdodDo0MHB4OyB9IC5wYXlwYWxfYnV0dG9uX2h0bWwgdGFibGUgc2VsZWN0eyBib3JkZXItcmFkaXVzOjVweDsgd2lkdGg6MjAwcHg7IGhlaWdodDozNXB4OyBiYWNrZ3JvdW5kLWNvbG9yOndoaXRlOyB9IC5wYXlwYWxfYnV0dG9uX2h0bWwgaW5wdXRbdHlwZT0iaW1hZ2UiXVtuYW1lPSJzdWJtaXQiXXsgd2lkdGg6MTAwJTsgYm9yZGVyOm5vbmU7IHBhZGRpbmc6MDsgfSBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6NDAwcHgpIHsgLnBheXBhbF9idXR0b25faHRtbHsgd2lkdGg6OTAlOyBtYXJnaW46MCBhdXRvOyB9IH0gI211bHRpLWFkZHJlc3Mtc3VibWlzc2lvbiB7IHotaW5kZXg6MTAwMDAwMDAwMjE7IH0gI211bHRpLWFkZHJlc3Mtc3VibWlzc2lvbi5kZXNrdG9wIHsgdGV4dC1hbGlnbjpjZW50ZXI7IH0gI211bHRpLWFkZHJlc3Mtc3VibWlzc2lvbi5kZXNrdG9wIHNlbGVjdCB7IG1heC13aWR0aDozMDBweDsgbWFyZ2luOjAgYXV0bzsgfSAjbXVsdGktYWRkcmVzcy1zdWJtaXNzaW9uLnNtYWxsIHsgcGFkZGluZzoyMHB4IDEwcHg7IH0gI211bHRpLWFkZHJlc3Mtc3VibWlzc2lvbiBsYWJlbCB7IGRpc3BsYXk6YmxvY2s7IG1hcmdpbi1ib3R0b206NXB4OyBmb250LXdlaWdodDpib2xkOyB9ICNtdWx0aS1hZGRyZXNzLXN1Ym1pc3Npb24gI211dGxpQWRkcmVzc1N1Ym1pdCB7IG1hcmdpbjowIGF1dG87IG1hcmdpbi10b3A6OHB4OyBkaXNwbGF5OnRhYmxlOyB9ICNtdWx0aS1hZGRyZXNzLXN1Ym1pc3Npb24gI211bHRpLWRlYWxlci1tYXAgeyBoZWlnaHQ6NTIwcHg7IG1hcmdpbi1ib3R0b206MTJweDsgfSAjbXVsdGktYWRkcmVzcy1zdWJtaXNzaW9uLnJldmVhbC1tb2RhbCBzcGFuIHsgZm9udC1zaXplOmluaGVyaXQ7IH0gLnZhbGlkaXR5LWVycm9uZW91cyB7IGJvcmRlcjoxcHggc29saWQgI2RjMzU0NTsgYmFja2dyb3VuZC1jb2xvcjojZmFkNmRjIWltcG9ydGFudDsgfSAuYm94NC52YWxpZGl0eS1lcnJvbmVvdXMsIC5ib3g1LnZhbGlkaXR5LWVycm9uZW91cyB7IHdpZHRoOjI2M3B4OyB9IC5mb3JtLWNvbnRyb2wgeyBkaXNwbGF5OmJsb2NrOyB3aWR0aDoxMDAlOyBoZWlnaHQ6MzRweDsgcGFkZGluZzo2cHggMTJweDsgZm9udC1zaXplOjAuODc1cmVtIDsgbGluZS1oZWlnaHQ6MS40Mjg1NzE0MzsgY29sb3I6IzU1NTsgYmFja2dyb3VuZC1jb2xvcjojZmZmOyBiYWNrZ3JvdW5kLWltYWdlOm5vbmU7IGJvcmRlcjoxcHggc29saWQgI2NjYzsgYm9yZGVyLXJhZGl1czo0cHg7IC13ZWJraXQtYm94LXNoYWRvdzppbnNldCAwIDFweCAxcHggcmdiYSgwLDAsMCwuMDc1KTsgYm94LXNoYWRvdzppbnNldCAwIDFweCAxcHggcmdiYSgwLDAsMCwuMDc1KTsgLXdlYmtpdC10cmFuc2l0aW9uOmJvcmRlci1jb2xvciBlYXNlLWluLW91dCAuMTVzLGJveC1zaGFkb3cgZWFzZS1pbi1vdXQgLjE1czsgLW8tdHJhbnNpdGlvbjpib3JkZXItY29sb3IgZWFzZS1pbi1vdXQgLjE1cyxib3gtc2hhZG93IGVhc2UtaW4tb3V0IC4xNXM7IC13ZWJraXQtdHJhbnNpdGlvbjpib3JkZXItY29sb3IgZWFzZS1pbi1vdXQgLjE1cywtd2Via2l0LWJveC1zaGFkb3cgZWFzZS1pbi1vdXQgLjE1czsgdHJhbnNpdGlvbjpib3JkZXItY29sb3IgZWFzZS1pbi1vdXQgLjE1cywtd2Via2l0LWJveC1zaGFkb3cgZWFzZS1pbi1vdXQgLjE1czsgdHJhbnNpdGlvbjpib3JkZXItY29sb3IgZWFzZS1pbi1vdXQgLjE1cyxib3gtc2hhZG93IGVhc2UtaW4tb3V0IC4xNXM7IHRyYW5zaXRpb246Ym9yZGVyLWNvbG9yIGVhc2UtaW4tb3V0IC4xNXMsYm94LXNoYWRvdyBlYXNlLWluLW91dCAuMTVzLC13ZWJraXQtYm94LXNoYWRvdyBlYXNlLWluLW91dCAuMTVzOyB9IC5iYW5uZXItZm9ybS1ib3ggeyBwYWRkaW5nOjMwcHg7IGJhY2tncm91bmQtY29sb3I6OyBjb2xvcjo7IH0gLmJhbm5lci1mb3JtLXRpdGxlIHsgZm9udC13ZWlnaHQ6NjAwOyBmb250LXNpemU6MThwdDsgdGV4dC1hbGlnbjpjZW50ZXI7IHRleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTsgbWFyZ2luLWJvdHRvbTo1cHg7IH0gLmJhbm5lci1mb3JtLXN1YnRpdGxlIHsgZm9udC1zaXplOjExLjVwdDsgbWFyZ2luLWJvdHRvbTo1cHg7IH0gLmJhbm5lci1mb3JtLWJvZHkgeyBtYXJnaW4tYm90dG9tOjI1cHg7IH0gLmJhbm5lci1mb3JtLWJvZHkgLmZvcm0tY29udHJvbCB7IGhlaWdodDo0MXB4OyBtYXJnaW4tYm90dG9tOjE1cHg7IC13ZWJraXQtYm94LXNpemluZzpib3JkZXItYm94OyAtbW96LWJveC1zaXppbmc6Ym9yZGVyLWJveDsgYm94LXNpemluZzpib3JkZXItYm94OyB9IC5iYW5uZXItZm9ybS1ib3gtZm9vdGVyIHsgdGV4dC1hbGlnbjpjZW50ZXI7IG1hcmdpbi10b3A6MjVweDsgfSAuYmFubmVyLWZvcm0tYm94LWhlYWRlciB7IHRleHQtYWxpZ246Y2VudGVyOyBtYXJnaW4tYm90dG9tOjE1cHg7IH0gLmJ0bi5iYW5uZXItYnRuIHsgcGFkZGluZzo2cHggMjRweDsgZm9udC13ZWlnaHQ6Ym9sZDsgdGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlOyBiYWNrZ3JvdW5kLWNvbG9yOmJsYWNrOyBjb2xvcjp3aGl0ZTsgYmFja2dyb3VuZC1jb2xvcjo7IGNvbG9yOjsgfSAuYnRuLmJhbm5lci1idG46aG92ZXIgeyBib3gtc2hhZG93Omluc2V0IDAgMCAxMDBweCAxMDBweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSk7IH0gLmJ0biB7IGRpc3BsYXk6aW5saW5lLWJsb2NrOyBwYWRkaW5nOjZweCAxMnB4OyBtYXJnaW4tYm90dG9tOjA7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGZvbnQtd2VpZ2h0OjQwMDsgbGluZS1oZWlnaHQ6MS40Mjg1NzE0MzsgdGV4dC1hbGlnbjpjZW50ZXI7IHdoaXRlLXNwYWNlOm5vd3JhcDsgdmVydGljYWwtYWxpZ246bWlkZGxlOyAtbXMtdG91Y2gtYWN0aW9uOm1hbmlwdWxhdGlvbjsgdG91Y2gtYWN0aW9uOm1hbmlwdWxhdGlvbjsgY3Vyc29yOnBvaW50ZXI7IC13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTsgLW1vei11c2VyLXNlbGVjdDpub25lOyAtbXMtdXNlci1zZWxlY3Q6bm9uZTsgdXNlci1zZWxlY3Q6bm9uZTsgYm9yZGVyLXJhZGl1czo0cHg7IH0gLmxhenlsb2FkeyB2aXNpYmlsaXR5OmhpZGRlbjsgfSAuZ2JveCB7IGJvcmRlci1yYWRpdXM6NXB4OyBib3gtc2hhZG93OjAgMCAxMHB4IDFweCByZ2JhKDAsMCwwLDAuMik7IH0gLnBkIHsgdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTsgZm9udC1zaXplOjAuNWVtOyB2ZXJ0aWNhbC1hbGlnbjpzdXBlcjsgfSAudWktbG9hZGVyLWJhY2tncm91bmR7IHdpZHRoOjEwMCU7IGhlaWdodDoxMDAlOyB0b3A6MDsgcGFkZGluZzowOyBtYXJnaW46MDsgYmFja2dyb3VuZDpyZ2JhKDAsIDAsIDAsIDAuMyk7IGRpc3BsYXk6bm9uZTsgcG9zaXRpb246Zml4ZWQ7IHotaW5kZXg6MTAwMDAwMDAwOyB9IC51aS1sb2FkZXItYmFja2dyb3VuZC1naWZ7IHBvc2l0aW9uOmFic29sdXRlOyB0b3A6NTAlOyBsZWZ0OjUwJTsgfSAuZDJjRm9vdGVyQ29va2llRGVsZXRlVGl0bGUgeyBmb250LXNpemU6MS4zZW07IH0gLmQyY0Zvb3RlckNvb2tpZURlbGV0ZVRleHQgeyBtYXJnaW4tdG9wOjMwcHg7IH0gLm1vbnRobHlQYXltZW50c1BvcHVwQ29udGFpbmVyX2J0bnsgYmFja2dyb3VuZDojOTEwYTJkOyBjb2xvcjojZmZmZmZmOyBwYWRkaW5nOjEwcHggMjBweCAxMHB4IDIwcHg7IGRpc3BsYXk6aW5saW5lLWJsb2NrOyB9IC5tb250aGx5UGF5bWVudHNQb3B1cENvbnRhaW5lcl9idG4gc3BhbnsgYmFja2dyb3VuZDojOTEwYTJkOyBjb2xvcjojZmZmZmZmOyB9ICNtb250aGx5UGF5bWVudHNQb3B1cENvbnRhaW5lcl9zbXN7IGJhY2tncm91bmQ6IzkxMGEyZDsgY29sb3I6I2ZmZmZmZjsgfSAjbW9udGhseVBheW1lbnRzUG9wdXBDb250YWluZXJfc21zIHNwYW57IGJhY2tncm91bmQ6IzkxMGEyZDsgY29sb3I6I2ZmZmZmZjsgfSAuYmxhY2tDb2xvckJvbGR7IGNvbG9yOiMwMDAhaW1wb3J0YW50OyBmb250LXdlaWdodDo3MDAhaW1wb3J0YW50OyBmb250LXNpemU6MXJlbSAhaW1wb3J0YW50OyB9IC5mbGV4LWNlbnRlciAucmVzcG9uc2l2ZS1lZGl0b3IgeyBmbGV4LWdyb3c6MTsgfSAucmV2ZWFsLW1vZGFseyBib3gtc2l6aW5nOmNvbnRlbnQtYm94OyB9IC5nbS1zdHlsZS1pdy1kIHsgcGFkZGluZy10b3A6MTJweDsgbWFyZ2luLXJpZ2h0Oi0yNHB4OyB9IC5nbS1zdHlsZSAuZ20tc3R5bGUtaXctYyB7IGZsZXgtZGlyZWN0aW9uOnJvdy1yZXZlcnNlOyB9Ci8qKiAvY3NzL2Jhc2UuY3NzICoqLwpzdGFjay1sYywgLnN0YWNrLWxjIHsgLS1zcGFjZTp2YXIoLS1zLCAwLjVyZW0pOyBkaXNwbGF5OmZsZXg7IGZsZXgtZGlyZWN0aW9uOmNvbHVtbjsganVzdGlmeS1jb250ZW50OmZsZXgtc3RhcnQ7IH0gc3RhY2stbGMgPiAqLCAuc3RhY2stbGMgPiAqIHsgbWFyZ2luLXRvcDowOyBtYXJnaW4tYm90dG9tOjA7IH0gc3RhY2stbGMgPiAqICsgKiwgLnN0YWNrLWxjID4gKiArICogeyBtYXJnaW4tdG9wOnZhcigtLXNwYWNlKTsgfSBzdGFjay1sYy4tLXMwID4gKiArICosIC5zdGFjay1sYy4tLXMwID4gKiArICogeyBib3JkZXItd2lkdGg6MDsgYm9yZGVyLXRvcC13aWR0aDp2YXIoLS1ib3JkZXItdGhpbik7IGJvcmRlci1jb2xvcjppbmhlcml0OyB9IC5ib3gtbGMsIGJveC1sYyB7IC0tc3BhY2U6dmFyKC0tcywgMC41cmVtKTsgZGlzcGxheTpibG9jazsgcGFkZGluZzp2YXIoLS1zcGFjZSk7IG91dGxpbmU6dmFyKC0tYm9yZGVyLXRoaW4pIHRyYW5zcGFyZW50OyBvdXRsaW5lLW9mZnNldDpjYWxjKHZhcigtLWJvcmRlci10aGluKSAqIC0xKTsgfSAuYm94LWxjLCBib3gtbGMgKiB7IGNvbG9yOmluaGVyaXQ7IH0gLmJnLWJveHsgY29sb3I6dmFyKC0tYmxhY2spOyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXdoaXRlKTsgYm9yZGVyLXdpZHRoOnZhcigtLWJvcmRlci10aGluKTsgfSAuZ2xhc3MtYm94eyBib3JkZXI6bm9uZTsgYmFja2dyb3VuZDpub25lOyBiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50OyBjb2xvcjppbmhlcml0OyB9IC5jdHItYm94LCAuZmxleC1ib3gsIC5mbGV4LWNvbHVtbiwgLmZsZXgtYXJvdW5kLCAuZmxleC1iZXR3ZWVuLCAuZmxleC1ldmVubHksIC5mbGV4LWNlbnRlciwgLmZsZXgtc3RhcnQsIC5mbGV4LWVuZCwgLmZsZXgtYXV0bywgLmZsZXgtZXF1YWx7IGRpc3BsYXk6ZmxleDsgfSAuaW5saW5lLWJveHsgZGlzcGxheTppbmxpbmUtYmxvY2s7IH0gLnNoYWRvdy1ib3h7IGJveC1zaGFkb3c6MCAwIDEwcHggMnB4IHZhcigtLW1pZC1ncmF5KTsgYm9yZGVyLWNvbG9yOnZhcigtLWxpZ2h0LWdyYXkpOyB9IC5mbGV4LWJveDpub3QoOmlzKC5mbGV4LWJldHdlZW4sLmZsZXgtZXZlbmx5LC5mbGV4LWFyb3VuZCkpID4gKiArICp7IG1hcmdpbi1sZWZ0OnZhcigtLXMpOyB9IC5ncm91cC1sYywgZ3JvdXAtbGMgeyAtLXNwYWNlOnZhcigtLXMsIDAuNXJlbSk7IH0gLmdyb3VwLWxjID4gKiwgZ3JvdXAtbGMgPiAqIHsgZGlzcGxheTpmbGV4OyBmbGV4LXdyYXA6d3JhcDsganVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47IGFsaWduLWl0ZW1zOmNlbnRlcjsgbWFyZ2luOmNhbGModmFyKC0tc3BhY2UpIC8gMiAqIC0xKTsgfSAuZ3JvdXAtbGMgPiAqID4gKiwgZ3JvdXAtbGMgPiAqID4gKiB7IG1hcmdpbjpjYWxjKHZhcigtLXNwYWNlKSAvIDIpOyB9IDppcyguc2lkZWJhci1sYyxzaWRlYmFyLWxjKSB7IG92ZXJmbG93OmhpZGRlbjsgfSA6aXMoLnNpZGViYXItbGMsc2lkZWJhci1sYykgPiAqIHsgLS1zcGFjZTp2YXIoLS1zLCAwLjVyZW0pOyBkaXNwbGF5OmZsZXg7IGZsZXgtd3JhcDp3cmFwOyBtYXJnaW46Y2FsYyh2YXIoLS1zcGFjZSkgLyAyICogLTEpOyB9IDppcyguc2lkZWJhci1sYyxzaWRlYmFyLWxjKSA+ICogPiAqIHsgbWFyZ2luOmNhbGModmFyKC0tc3BhY2UpIC8gMik7IGZsZXgtZ3JvdzoxOyB9IDppcyguc2lkZWJhci1sYyxzaWRlYmFyLWxjKSA+ICogPiA6Zmlyc3QtY2hpbGQgeyBmbGV4LWJhc2lzOjA7IGZsZXgtZ3Jvdzo5OTk7IG1pbi13aWR0aDpjYWxjKHZhcigtLXNpZGViYXItYnAsIDUwJSkgLSB2YXIoLS1zcGFjZSkpOyB9IDppcyguc3dpdGNoZXItbGMsc3dpdGNoZXItbGMpID4gKiB7IC0tc3BhY2U6dmFyKC0tcywgMC41cmVtKTsgZGlzcGxheTpmbGV4OyBmbGV4LXdyYXA6d3JhcDsgbWFyZ2luOmNhbGMoKHZhcigtLXNwYWNlKSAvIDIpICogLTEpOyB9IDppcyguc3dpdGNoZXItbGMsc3dpdGNoZXItbGMpID4gKiA+ICogeyBmbGV4LWdyb3c6MTsgZmxleC1iYXNpczpjYWxjKCh2YXIoLS1zd2l0Y2gtYnAsIDMwcmVtKSAtICgxMDAlIC0gdmFyKC0tc3BhY2UpKSkgKiA5OTkpOyBtYXJnaW46Y2FsYyh2YXIoLS1zcGFjZSkgLyAyKTsgfSA6aXMoLnN3aXRjaGVyLWxjLHN3aXRjaGVyLWxjKSA+ICogPiA6bnRoLWxhc3QtY2hpbGQobis1KSwgOmlzKC5zd2l0Y2hlci1sYyxzd2l0Y2hlci1sYykgPiAqID4gOm50aC1sYXN0LWNoaWxkKG4rNSkgfiAqIHsgZmxleC1iYXNpczoxMDAlOyB9IC4tLXMwey0tc3BhY2U6dmFyKC0tczApO30gLi0tcy05ey0tc3BhY2U6dmFyKC0tcy05KTt9IC4tLXMtOHstLXNwYWNlOnZhcigtLXMtOCk7fSAuLS1zLTd7LS1zcGFjZTp2YXIoLS1zLTcpO30gLi0tcy02ey0tc3BhY2U6dmFyKC0tcy02KTt9IC4tLXMtNXstLXNwYWNlOnZhcigtLXMtNSk7fSAuLS1zLTR7LS1zcGFjZTp2YXIoLS1zLTQpO30gLi0tcy0zey0tc3BhY2U6dmFyKC0tcy0zKTt9IC4tLXMtMnstLXNwYWNlOnZhcigtLXMtMik7fSAuLS1zLTF7LS1zcGFjZTp2YXIoLS1zLTEpO30gLi0tc3stLXNwYWNlOnZhcigtLXMpO30gLi0tczF7LS1zcGFjZTp2YXIoLS1zMSk7fSAuLS1zMnstLXNwYWNlOnZhcigtLXMyKTt9IC4tLXMzey0tc3BhY2U6dmFyKC0tczMpO30gLi0tczR7LS1zcGFjZTp2YXIoLS1zNCk7fSAuLS1zNXstLXNwYWNlOnZhcigtLXM1KTt9IC4tLXM2ey0tc3BhY2U6dmFyKC0tczYpO30gLi0tczd7LS1zcGFjZTp2YXIoLS1zNyk7fSAuLS1zOHstLXNwYWNlOnZhcigtLXM4KTt9IC4tLXM5ey0tc3BhY2U6dmFyKC0tczkpO30gLi0tZnMtOXtmb250LXNpemU6dmFyKC0tZnMtOSk7LS1mczp2YXIoLS1mcy05KTt9IC4tLWZzLTh7Zm9udC1zaXplOnZhcigtLWZzLTgpOy0tZnM6dmFyKC0tZnMtOCk7fSAuLS1mcy03e2ZvbnQtc2l6ZTp2YXIoLS1mcy03KTstLWZzOnZhcigtLWZzLTcpO30gLi0tZnMtNntmb250LXNpemU6dmFyKC0tZnMtNik7LS1mczp2YXIoLS1mcy02KTt9IC4tLWZzLTV7Zm9udC1zaXplOnZhcigtLWZzLTUpOy0tZnM6dmFyKC0tZnMtNSk7fSAuLS1mcy00e2ZvbnQtc2l6ZTp2YXIoLS1mcy00KTstLWZzOnZhcigtLWZzLTQpO30gLi0tZnMtM3tmb250LXNpemU6dmFyKC0tZnMtMyk7LS1mczp2YXIoLS1mcy0zKTt9IC4tLWZzLTJ7Zm9udC1zaXplOnZhcigtLWZzLTIpOy0tZnM6dmFyKC0tZnMtMik7fSAuLS1mcy0xe2ZvbnQtc2l6ZTp2YXIoLS1mcy0xKTstLWZzOnZhcigtLWZzLTEpO30gLi0tZnMwe2ZvbnQtc2l6ZTp2YXIoLS1mczApOy0tZnM6dmFyKC0tZnMwKTt9IC4tLWZzMXtmb250LXNpemU6dmFyKC0tZnMxKTstLWZzOnZhcigtLWZzMSk7fSAuLS1mczJ7Zm9udC1zaXplOnZhcigtLWZzMik7LS1mczp2YXIoLS1mczIpO30gLi0tZnMze2ZvbnQtc2l6ZTp2YXIoLS1mczMpOy0tZnM6dmFyKC0tZnMzKTt9IC4tLWZzNHtmb250LXNpemU6dmFyKC0tZnM0KTstLWZzOnZhcigtLWZzNCk7fSAuLS1mczV7Zm9udC1zaXplOnZhcigtLWZzNSk7LS1mczp2YXIoLS1mczUpO30gLi0tZnM2e2ZvbnQtc2l6ZTp2YXIoLS1mczYpOy0tZnM6dmFyKC0tZnM2KTt9IC4tLWZzN3tmb250LXNpemU6dmFyKC0tZnM3KTstLWZzOnZhcigtLWZzNyk7fSAuLS1mczh7Zm9udC1zaXplOnZhcigtLWZzOCk7LS1mczp2YXIoLS1mczgpO30gLi0tZnM5e2ZvbnQtc2l6ZTp2YXIoLS1mczkpOy0tZnM6dmFyKC0tZnM5KTt9IC5zaHJpbmstZ3Jvd3tmbGV4OjEgMTt9IC5mbGV4LXdyYXAge2ZsZXgtd3JhcDp3cmFwO30gLmZsZXgtcmV2ZXJzZSB7ZmxleC1kaXJlY3Rpb246cm93LXJldmVyc2U7fSAuZmxleC1hdXRvID4gKntmbGV4OjEgMSBhdXRvO30gLmZsZXgtZXF1YWwgPiAqe2ZsZXg6MSAxO30gLmFsaWduLWNlbnRlciB7YWxpZ24taXRlbXM6Y2VudGVyO30gLmFsaWduLXN0YXJ0e2FsaWduLWl0ZW1zOmZsZXgtc3RhcnQ7fSAuYWxpZ24tZW5ke2FsaWduLWl0ZW1zOmZsZXgtZW5kO30gLmFsaWduLWJhc2VsaW5le2FsaWduLWl0ZW1zOmJhc2VsaW5lO30gLmZsZXgtY29sdW1uIHtmbGV4LWZsb3c6Y29sdW1uO30gLmZsZXgtcm93IHtmbGV4LWZsb3c6cm93O30gLmZsZXgtYXJvdW5ke2p1c3RpZnktY29udGVudDpzcGFjZS1hcm91bmQ7fSAuZmxleC1iZXR3ZWVue2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO30gLmZsZXgtZXZlbmx5e2p1c3RpZnktY29udGVudDpzcGFjZS1ldmVubHk7fSAuZmxleC1jZW50ZXJ7anVzdGlmeS1jb250ZW50OmNlbnRlcjt9IC5mbGV4LXN0YXJ0e2p1c3RpZnktY29udGVudDpmbGV4LXN0YXJ0O30gLmZsZXgtZW5ke2p1c3RpZnktY29udGVudDpmbGV4LWVuZDt9IC4tcDAge3BhZGRpbmc6MDt9IC4tcHQwIHtwYWRkaW5nLXRvcDowO30gLi1wYjAge3BhZGRpbmctYm90dG9tOjA7fSAuLXB2MCB7cGFkZGluZy10b3A6MDtwYWRkaW5nLWJvdHRvbTowfSAuLXBoMCB7cGFkZGluZy1sZWZ0OjA7cGFkZGluZy1yaWdodDowfSAuLXAge3BhZGRpbmc6dmFyKC0tc3BhY2UpO30gLi1wdntwYWRkaW5nLXRvcDp2YXIoLS1zcGFjZSk7IHBhZGRpbmctYm90dG9tOnZhcigtLXNwYWNlKTt9IC4tcGh7cGFkZGluZy1sZWZ0OnZhcigtLXNwYWNlKTsgcGFkZGluZy1yaWdodDp2YXIoLS1zcGFjZSk7fSAuLXB0e3BhZGRpbmctdG9wOnZhcigtLXNwYWNlKTt9IC4tcGJ7cGFkZGluZy1ib3R0b206dmFyKC0tc3BhY2UpO30gLi1tMCB7bWFyZ2luOjA7fSAuLW10MCB7bWFyZ2luLXRvcDowO30gLi1tYjAge21hcmdpbi1ib3R0b206MDt9IC4tbXYwIHttYXJnaW4tdG9wOjA7bWFyZ2luLWJvdHRvbTowfSAuLW1oMCB7bWFyZ2luLWxlZnQ6MDttYXJnaW4tcmlnaHQ6MH0gLi1tIHttYXJnaW46dmFyKC0tc3BhY2UpO30gLi1tdnttYXJnaW4tdG9wOnZhcigtLXNwYWNlKTsgbWFyZ2luLWJvdHRvbTp2YXIoLS1zcGFjZSk7fSAuLW1oe21hcmdpbi1sZWZ0OnZhcigtLXNwYWNlKTsgbWFyZ2luLXJpZ2h0OnZhcigtLXNwYWNlKTt9IC4tbXR7bWFyZ2luLXRvcDp2YXIoLS1zcGFjZSk7fSAuLW1ie21hcmdpbi1ib3R0b206dmFyKC0tc3BhY2UpO30gLi1iMCB7Ym9yZGVyOm5vbmU7fSAuLWIyIHtib3JkZXItd2lkdGg6MnB4O30gLi1ie2JvcmRlci13aWR0aDoxcHg7fSAuLWJ0e2JvcmRlci10b3Atd2lkdGg6MXB4O30gLi1iYntib3JkZXItYm90dG9tLXdpZHRoOjFweDt9IC4tYnZ7Ym9yZGVyLXRvcC13aWR0aDoxcHg7Ym9yZGVyLWJvdHRvbS13aWR0aDoxcHg7fSAuLWJoe2JvcmRlci1sZWZ0LXdpZHRoOjFweDtib3JkZXItcmlnaHQtd2lkdGg6MXB4O30gLi13LWZ1bGwge3dpZHRoOjEwMHZ3O30gLi13LTEwMCB7d2lkdGg6MTAwJTt9IC4tdy01MCB7d2lkdGg6NTAlO30gLi13LTMzIHt3aWR0aDozMy4zMyU7fSAuLXctMjUge3dpZHRoOjI1JTt9IC4tdy01MHcge3dpZHRoOjUwdnc7fSAuLWZzLXh4c3tmb250LXNpemU6MC4xNXJlbTsgLS1mczowLjE1cmVtO30gLi1mcy14c3tmb250LXNpemU6MC41cmVtOyAtLWZzOjAuNXJlbTt9IC4tZnMtc3tmb250LXNpemU6MC43NXJlbTsgLS1mczowLjc1cmVtO30gLi1mcy1zcntmb250LXNpemU6MC45cmVtOyAtLWZzOjAuOXJlbTt9IC4tZnMtbHJ7Zm9udC1zaXplOjEuMXJlbTsgLS1mczoxLjFyZW07fSAuLWZzLWx7Zm9udC1zaXplOjEuMjVyZW07IC0tZnM6MS4yNXJlbTt9IC4tZnMteGx7Zm9udC1zaXplOjEuNXJlbTsgLS1mczoxLjVyZW07fSAuLWZzLXh4bHtmb250LXNpemU6MnJlbTsgLS1mczoycmVtO30gLi1mcy14eHhse2ZvbnQtc2l6ZToyLjI1cmVtOyAtLWZzOjIuMjVyZW07fSAuLWZ3MSB7Zm9udC13ZWlnaHQ6MTAwO30gLi1mdzIge2ZvbnQtd2VpZ2h0OjIwMDt9IC4tZnczIHtmb250LXdlaWdodDozMDA7fSAuLWZ3NCB7Zm9udC13ZWlnaHQ6NDAwO30gLi1mdzUge2ZvbnQtd2VpZ2h0OjUwMDt9IC4tZnc2IHtmb250LXdlaWdodDo2MDA7fSAuLWZ3NyB7Zm9udC13ZWlnaHQ6NzAwO30gLi1mdzgge2ZvbnQtd2VpZ2h0OjgwMDt9IC4tZnc5IHtmb250LXdlaWdodDo5MDA7fSAuLWJvbGQge2ZvbnQtd2VpZ2h0OmJvbGQ7fSAudHh0LXJlZCB7Y29sb3I6I2NjMDAwMDt9IC50eHQtY2VudGVye3RleHQtYWxpZ246Y2VudGVyO30gLnR4dC1yaWdodHt0ZXh0LWFsaWduOnJpZ2h0O30gLnR4dC1sZWZ0e3RleHQtYWxpZ246bGVmdDt9IC50eHQtdXBwZXJ7dGV4dC10cmFuc2Zvcm06dmFyKC0tY2VydC10eHQtdHJhbnNmb3JtLCB2YXIoLS10eHQtdXBwZXIsIHVwcGVyY2FzZSkpO30gLnR4dC1ub3Rle2ZvbnQtc3R5bGU6aXRhbGljO30gLnR4dC1wYXltZW50IHtjb2xvcjp2YXIoLS1uZXd2ZHAtYmVzdHByaWNlLXRleHQtY29sb3ItcHJpY2UpICFpbXBvcnRhbnQ7fSAuLXBvc3JlbHtwb3NpdGlvbjpyZWxhdGl2ZTt9IC5jZXJ0LXR4dC10cmFuc2Zvcm17dGV4dC10cmFuc2Zvcm06dmFyKC0tY2VydC10eHQtdHJhbnNmb3JtLCBub25lKTt9IFtoaWRkZW5dLCAuaGlkZGVuIHsgZGlzcGxheTpub25lICFpbXBvcnRhbnQ7IH0gLnNrZWxldG9uLXNsaWRlciA+ICp7IGRpc3BsYXk6bm9uZTsgfSAuc2tlbGV0b24tdHh0eyB0ZXh0LWluZGVudDoxMDAlOyB3aGl0ZS1zcGFjZTpub3dyYXA7IG92ZXJmbG93OmhpZGRlbjsgYmFja2dyb3VuZC1jb2xvcjpyZ2JhKDIyMSwgMjIxLCAyMjEsIDAuOCk7IGJvcmRlci1yYWRpdXM6MC41cmVtOyB9IC5za2VsZXRvbi1idG57IHdpZHRoOm1pbigyMHJlbSwxMDAlKTsgaGVpZ2h0OjIuNXJlbTsgYm9yZGVyLXJhZGl1czowLjVyZW07IGJhY2tncm91bmQtY29sb3I6cmdiYSgyMjEsIDIyMSwgMjIxLCAwLjgpOyBtYXJnaW46YXV0bzsgfSAuc2tlbGV0b24tYmxvY2t7IHdpZHRoOjEwMCU7IGhlaWdodDoxMDAlOyBiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjIxLCAyMjEsIDIyMSwgMC44KTsgfSAuc2tlbGV0b24tc2xpZGVyLCAuc2tlbGV0b24tdHh0LCAuc2tlbGV0b24tYnRuLCAuc2tlbGV0b24tYmxvY2sgeyBwb3NpdGlvbjpyZWxhdGl2ZTsgb3ZlcmZsb3c6aGlkZGVuOyBkaXNwbGF5OmJsb2NrOyB9IC5za2VsZXRvbi1zbGlkZXI6OmFmdGVyLCAuc2tlbGV0b24tdHh0OjphZnRlciwgLnNrZWxldG9uLWJ0bjo6YWZ0ZXIsIC5za2VsZXRvbi1ibG9jazo6YWZ0ZXIgeyBjb250ZW50OiIiOyBwb3NpdGlvbjphYnNvbHV0ZTsgdG9wOjA7IHJpZ2h0OjA7IGJvdHRvbTowOyBsZWZ0OjA7IHRyYW5zZm9ybTp0cmFuc2xhdGVYKC0xMDAlKTsgYmFja2dyb3VuZC1pbWFnZTpsaW5lYXItZ3JhZGllbnQoOTBkZWcsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMCkgMCwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIpIDIwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpIDYwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwKSk7IGFuaW1hdGlvbjpzaGltbWVyIDJzIGluZmluaXRlOyB9IC5za2VsZXRvbi1zbGlkZXIgeyBiYWNrZ3JvdW5kLWltYWdlOnVybCgiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCA1MTIgNTEyJyUzRSUzQ3BhdGggZD0nTTQ2NCA0NDhINDhjLTI2LjUxIDAtNDgtMjEuNDktNDgtNDhWMTEyYzAtMjYuNTEgMjEuNDktNDggNDgtNDhoNDE2YzI2LjUxIDAgNDggMjEuNDkgNDggNDh2Mjg4YzAgMjYuNTEtMjEuNDkgNDgtNDggNDh6TTExMiAxMjBjLTMwLjkyOCAwLTU2IDI1LjA3Mi01NiA1NnMyNS4wNzIgNTYgNTYgNTYgNTYtMjUuMDcyIDU2LTU2LTI1LjA3Mi01Ni01Ni01NnpNNjQgMzg0aDM4NFYyNzJsLTg3LjUxNS04Ny41MTVjLTQuNjg2LTQuNjg2LTEyLjI4NC00LjY4Ni0xNi45NzEgMEwyMDggMzIwbC01NS41MTUtNTUuNTE1Yy00LjY4Ni00LjY4Ni0xMi4yODQtNC42ODYtMTYuOTcxIDBMNjQgMzM2djQ4eicgZmlsbD0nJTIzZWVlJy8lM0UlM0Mvc3ZnJTNFIik7IGJhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDsgYmFja2dyb3VuZC1wb3NpdGlvbjpjZW50ZXI7IGJhY2tncm91bmQtY29sb3I6I2NjYzsgb3BhY2l0eTowLjk7IH0gQGtleWZyYW1lcyBzaGltbWVyIHsgMTAwJSB7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoMTAwJSk7fSB9IEBzdXBwb3J0cyAoLXdlYmtpdC10b3VjaC1jYWxsb3V0Om5vbmUpIHsgLnNrZWxldG9uLXNsaWRlcjo6YWZ0ZXIsIC5za2VsZXRvbi10eHQ6OmFmdGVyeyBhbmltYXRpb246bm9uZTsgfSB9IC5jb250ZW50LXNrZWxldG9uIHsgYmFja2dyb3VuZDojZWVlOyBib3JkZXItcmFkaXVzOjAuNXJlbTsgb3ZlcmZsb3c6aGlkZGVuOyB3aWR0aDoxMDAlOyBoZWlnaHQ6MTAwJTsgbWF4LXdpZHRoOjQwMHB4OyBwb3NpdGlvbjpyZWxhdGl2ZTsgfSAuY29udGVudC1za2VsZXRvbi5yZWN0YW5nbGUgeyBhc3BlY3QtcmF0aW86dmFyKC0tcmF0aW8sIDE2LzkpOyB9IC5jb250ZW50LXNrZWxldG9uLnRleHQgeyBoZWlnaHQ6YXV0bzsgcGFkZGluZzoxcmVtOyB9IC5jb250ZW50LXNrZWxldG9uLnRleHQ6OmJlZm9yZSwgLmNvbnRlbnQtc2tlbGV0b24udGV4dDo6YWZ0ZXIgeyBjb250ZW50OiIiOyBkaXNwbGF5OmJsb2NrOyBoZWlnaHQ6MXJlbTsgYmFja2dyb3VuZDojZGRkOyBtYXJnaW4tYm90dG9tOjAuNXJlbTsgYm9yZGVyLXJhZGl1czowLjI1cmVtOyB9IC5jb250ZW50LXNrZWxldG9uLnRleHQ6OmFmdGVyIHsgd2lkdGg6NzAlOyB9IC5jb250ZW50LXNrZWxldG9uLmFjdGl2ZSB7IGJhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDkwZGVnLCAjZjlmOWY5IDI1JSwgI2RlZGVkZSA1MCUsICNmOWY5ZjkgNzUlKTsgYmFja2dyb3VuZC1zaXplOjIwMCUgMTAwJTsgYW5pbWF0aW9uOnNoaW1tZXIgMnMgaW5maW5pdGUgbGluZWFyOyB9IEBrZXlmcmFtZXMgc2hpbW1lciB7IDAlIHsgYmFja2dyb3VuZC1wb3NpdGlvbjoyMDAlIDA7IH0gMTAwJSB7IGJhY2tncm91bmQtcG9zaXRpb246LTIwMCUgMDsgfSB9IC5jb250ZW50LXNrZWxldG9uLmRlYnVnOjphZnRlciB7IGNvbnRlbnQ6YXR0cihkYXRhLWJsb2NrKSAiIHwgIiBhdHRyKGRhdGEtc291cmNlKSAiIHwgIiBhdHRyKGRhdGEtZ2VuZXJhdGVkLWF0KTsgcG9zaXRpb246YWJzb2x1dGU7IHRvcDo0cHg7IGxlZnQ6NHB4OyByaWdodDo0cHg7IGZvbnQtc2l6ZTowLjdyZW07IGZvbnQtZmFtaWx5Om1vbm9zcGFjZSwgc2Fucy1zZXJpZjsgY29sb3I6I2ZmZjsgYmFja2dyb3VuZDpyZ2JhKDAsMCwwLDAuNik7IHBhZGRpbmc6MnB4IDRweDsgYm9yZGVyLXJhZGl1czo0cHg7IHotaW5kZXg6MTA7IHBvaW50ZXItZXZlbnRzOm5vbmU7IH0gYm9keSB7IHdpZHRoOmF1dG87IG1hcmdpbjowOyBwYWRkaW5nOjA7IGZvbnQtc2l6ZToxcmVtOyBmb250LWZhbWlseTp2YXIoLS1mb250LXRleHQtbW9iKTsgY29sb3I6dmFyKC0tZGVmYXVsdC1ibGFjayk7IGZvbnQtd2VpZ2h0OnZhcigtLWZvbnQtdGV4dC13ZWlnaHQpOyB9IHVsIHsgbGlzdC1zdHlsZTpub25lOyBsaXN0LXN0eWxlLXR5cGU6bm9uZTsgbGlzdC1zdHlsZS1wb3NpdGlvbjppbml0aWFsOyBsaXN0LXN0eWxlLWltYWdlOmluaXRpYWw7IH0gLnJlc3BvbnNpdmUtZWRpdG9yIHVsIHsgbGlzdC1zdHlsZTppbmhlcml0OyBsaXN0LXN0eWxlLXR5cGU6aW5oZXJpdDsgbGlzdC1zdHlsZS1wb3NpdGlvbjppbmhlcml0OyBsaXN0LXN0eWxlLWltYWdlOmluaGVyaXQ7IH0gc3ZnLCBzdmcuaWNvbnsgLS1pY29uLXNpemU6Y2FsYyh2YXIoLS1mcywgdmFyKC0tZnMwKSkgLyB2YXIoLS1yYXRpbykpOyBmaWxsOnZhcigtLXR4dC1jb2xvciwgdmFyKC0tYmxhY2spKTsgd2lkdGg6dmFyKC0taWNvbi1zaXplKTsgaGVpZ2h0OnZhcigtLWljb24tc2l6ZSk7IH0gc3ZnLmF1dGhvcml6ZWQtYmxhY2t7ZmlsbDojMjgyODI4IWltcG9ydGFudDt9IHN2Zy5hdXRob3JpemVkLWJsYWNrLWtpYXtmaWxsOiMwNTE0MUYhaW1wb3J0YW50O30gc3ZnLmF1dGhvcml6ZWQtcmVke2ZpbGw6I0ZGMDAwMCFpbXBvcnRhbnQ7fSBzdmcuYXV0aG9yaXplZC13aGl0ZXtmaWxsOiNGRkZGRkYhaW1wb3J0YW50O30gLmF1dGhvcml6ZWQtcmVkLXdoaXRlLXBsYXktYnRue2JhY2tncm91bmQ6cmFkaWFsLWdyYWRpZW50KCNGRkZGRkYgNTAlLHRyYW5zcGFyZW50IDUwJSk7fSBzdmcub2djb2xvci1mYWNlYm9va3tmaWxsOiM0MjY3QjIhaW1wb3J0YW50O30gc3ZnLm9nY29sb3ItdHdpdHRlcntmaWxsOiMxREExRjIhaW1wb3J0YW50O30gc3ZnLm9nY29sb3IteC10d2l0dGVye2ZpbGw6IzE0MTcxQSFpbXBvcnRhbnQ7fSBzdmcub2djb2xvci14LXR3aXR0ZXItd2hpdGV7ZmlsbDojRkZGRkZGIWltcG9ydGFudDt9IHN2Zy5vZ2NvbG9yLWxpbmtlZGlue2ZpbGw6IzAwNzdCNSFpbXBvcnRhbnQ7fSBzdmcub2djb2xvci1ibG9nZ2Vye2ZpbGw6I0ZGNTcyMiFpbXBvcnRhbnQ7fSBzdmcub2djb2xvci1waW50ZXJlc3R7ZmlsbDojRTYwMDIzIWltcG9ydGFudDt9IHN2Zy5vZ2NvbG9yLXlvdXR1YmV7ZmlsbDojRkYwMDAwIWltcG9ydGFudDsgYmFja2dyb3VuZDpyYWRpYWwtZ3JhZGllbnQoI0ZGRkZGRiA1MCUsdHJhbnNwYXJlbnQgNTAlKTt9IHN2Zy5vZ2NvbG9yLWluc3RhZ3JhbXtmaWxsOiM4MzNBQjQhaW1wb3J0YW50O30gc3ZnLm9nY29sb3ItdGlrdG9re2ZpbGw6I2ZmMDA1MCFpbXBvcnRhbnQ7fSAuZmFjZWJvb2stb2dpY29uLXR3ZWFrc3toZWlnaHQ6MjRweCFpbXBvcnRhbnQ7bWFyZ2luLXRvcDoycHghaW1wb3J0YW50O30gI2Zvb3RlciAuZmFjZWJvb2stb2dpY29uLXR3ZWFrc3toZWlnaHQ6MjNweCFpbXBvcnRhbnQ7bWFyZ2luLXRvcDowcHghaW1wb3J0YW50O30gLmluc3RhZ3JhbS1vZ2ljb24tdHdlYWtze2hlaWdodDoyOHB4IWltcG9ydGFudDttYXJnaW4tdG9wOjBweCFpbXBvcnRhbnQ7fSAjZm9vdGVyIC5pbnN0YWdyYW0tb2dpY29uLXR3ZWFrc3toZWlnaHQ6MjlweCFpbXBvcnRhbnQ7bWFyZ2luLXRvcDotNHB4IWltcG9ydGFudDt9IHN2Zy5jdXN0b21tZWRpYS1jb2xvcnBpY2tlcntmaWxsOnZhcigtLWFkbWluLXNvY2lhbC1jdXN0b20tY29sb3ItcGlja2VyLXRleHQpIWltcG9ydGFudDt9IC5zb2NpYWwtbWVkaWFfX2NvbnRhaW5lciAuYmctYXV0aG9yaXplZC1ibGFja3tiYWNrZ3JvdW5kLWNvbG9yOiMyODI4MjghaW1wb3J0YW50O30gLnNvY2lhbC1tZWRpYV9fY29udGFpbmVyIC5iZy1hdXRob3JpemVkLWJsYWNrLWtpYXtiYWNrZ3JvdW5kLWNvbG9yOiMwNTE0MUYhaW1wb3J0YW50O30gLnNvY2lhbC1tZWRpYV9fY29udGFpbmVyIC5iZy1hdXRob3JpemVkLXJlZHtiYWNrZ3JvdW5kLWNvbG9yOiNGRjAwMDAhaW1wb3J0YW50O30gLnNvY2lhbC1tZWRpYV9fY29udGFpbmVyIC5iZy1hdXRob3JpemVkLXdoaXRle2JhY2tncm91bmQtY29sb3I6I0ZGRkZGRiFpbXBvcnRhbnQ7fSAuc29jaWFsLW1lZGlhX19jb250YWluZXIgLmJnLW9nY29sb3ItZmFjZWJvb2t7YmFja2dyb3VuZC1jb2xvcjojM2E1OTk4IWltcG9ydGFudDt9IC5zb2NpYWwtbWVkaWFfX2NvbnRhaW5lciAuYmctb2djb2xvci10d2l0dGVye2JhY2tncm91bmQtY29sb3I6IzAwYWNlZCFpbXBvcnRhbnQ7fSAuc29jaWFsLW1lZGlhX19jb250YWluZXIgLmJnLW9nY29sb3IteC10d2l0dGVye2JhY2tncm91bmQtY29sb3I6IzE0MTcxQSFpbXBvcnRhbnQ7fSAuc29jaWFsLW1lZGlhX19jb250YWluZXIgLmJnLW9nY29sb3IteC10d2l0dGVyLXdoaXRle2JhY2tncm91bmQtY29sb3I6I0ZGRkZGRiFpbXBvcnRhbnQ7fSAuc29jaWFsLW1lZGlhX19jb250YWluZXIgLmJnLW9nY29sb3ItbGlua2VkaW57YmFja2dyb3VuZC1jb2xvcjojMDA3N0I1IWltcG9ydGFudDt9IC5zb2NpYWwtbWVkaWFfX2NvbnRhaW5lciAuYmctb2djb2xvci1ibG9nZ2Vye2JhY2tncm91bmQtY29sb3I6I0ZGNTcyMiFpbXBvcnRhbnQ7fSAuc29jaWFsLW1lZGlhX19jb250YWluZXIgLmJnLW9nY29sb3ItcGludGVyZXN0e2JhY2tncm91bmQtY29sb3I6I0U2MDAyMyFpbXBvcnRhbnQ7fSAuc29jaWFsLW1lZGlhX19jb250YWluZXIgLmJnLW9nY29sb3IteW91dHViZXtiYWNrZ3JvdW5kLWNvbG9yOiNGRjAwMDAhaW1wb3J0YW50O30gLnNvY2lhbC1tZWRpYV9fY29udGFpbmVyIC5iZy1vZ2NvbG9yLWluc3RhZ3JhbXtiYWNrZ3JvdW5kLWNvbG9yOiNmMjM5OTUhaW1wb3J0YW50O30gLnNvY2lhbC1tZWRpYV9fY29udGFpbmVyIC5iZy1vZ2NvbG9yLXRpa3Rva3tiYWNrZ3JvdW5kLWNvbG9yOiNmZjAwNTAhaW1wb3J0YW50O30gLnNvY2lhbC1tZWRpYV9fY29udGFpbmVyIC5iZy1jdXN0b21tZWRpYS1jb2xvcnBpY2tlcntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWFkbWluLXNvY2lhbC1jdXN0b20tY29sb3ItcGlja2VyLXRleHQpIWltcG9ydGFudDt9IC5zb2NpYWwtbWVkaWFfX2NvbnRhaW5lciAuYy1hdXRob3JpemVkLWJsYWNre2NvbG9yOiMyODI4MjghaW1wb3J0YW50O30gLnNvY2lhbC1tZWRpYV9fY29udGFpbmVyIC5jLWF1dGhvcml6ZWQtYmxhY2sta2lhe2NvbG9yOiMwNTE0MUYhaW1wb3J0YW50O30gLnNvY2lhbC1tZWRpYV9fY29udGFpbmVyIC5jLWF1dGhvcml6ZWQtcmVke2NvbG9yOiNGRjAwMDAhaW1wb3J0YW50O30gLnNvY2lhbC1tZWRpYV9fY29udGFpbmVyIC5jLWF1dGhvcml6ZWQtd2hpdGV7Y29sb3I6I0ZGRkZGRiFpbXBvcnRhbnQ7fSAuc29jaWFsLW1lZGlhX19jb250YWluZXIgLmMtb2djb2xvci1mYWNlYm9va3tjb2xvcjojM2E1OTk4IWltcG9ydGFudDt9IC5zb2NpYWwtbWVkaWFfX2NvbnRhaW5lciAuYy1vZ2NvbG9yLXR3aXR0ZXJ7Y29sb3I6IzAwYWNlZCFpbXBvcnRhbnQ7fSAuc29jaWFsLW1lZGlhX19jb250YWluZXIgLmMtb2djb2xvci14LXR3aXR0ZXJ7Y29sb3I6IzE0MTcxQSFpbXBvcnRhbnQ7fSAuc29jaWFsLW1lZGlhX19jb250YWluZXIgLmMtb2djb2xvci14LXR3aXR0ZXItd2hpdGV7Y29sb3I6I0ZGRkZGRiFpbXBvcnRhbnQ7fSAuc29jaWFsLW1lZGlhX19jb250YWluZXIgLmMtb2djb2xvci1saW5rZWRpbntjb2xvcjojMDA3N0I1IWltcG9ydGFudDt9IC5zb2NpYWwtbWVkaWFfX2NvbnRhaW5lciAuYy1vZ2NvbG9yLWJsb2dnZXJ7Y29sb3I6I0ZGNTcyMiFpbXBvcnRhbnQ7fSAuc29jaWFsLW1lZGlhX19jb250YWluZXIgLmMtb2djb2xvci1waW50ZXJlc3R7Y29sb3I6I0U2MDAyMyFpbXBvcnRhbnQ7fSAuc29jaWFsLW1lZGlhX19jb250YWluZXIgLmMtb2djb2xvci15b3V0dWJle2NvbG9yOiNGRjAwMDAhaW1wb3J0YW50OyBiYWNrZ3JvdW5kOnJhZGlhbC1ncmFkaWVudCgjRkZGRkZGIDUwJSx0cmFuc3BhcmVudCA1MCUpO30gLnNvY2lhbC1tZWRpYV9fY29udGFpbmVyIC5jLW9nY29sb3ItaW5zdGFncmFte2NvbG9yOiNmMjM5OTUhaW1wb3J0YW50O30gLnNvY2lhbC1tZWRpYV9fY29udGFpbmVyIC5jLW9nY29sb3ItdGlrdG9re2NvbG9yOiNmZjAwNTAhaW1wb3J0YW50O30gLnNvY2lhbC1tZWRpYV9fY29udGFpbmVyIC5jLWN1c3RvbW1lZGlhLWNvbG9ycGlja2Vye2NvbG9yOnZhcigtLWFkbWluLXNvY2lhbC1jdXN0b20tY29sb3ItcGlja2VyLXRleHQpIWltcG9ydGFudDt9IC5ub3RlLWJveHsgZGlzcGxheTpibG9jazsgYm9yZGVyLXJhZGl1czowLjI1cmVtOyB9IC5ub3RlLXN1Y2Nlc3N7IGNvbG9yOiMxNTU3MjQ7IGJhY2tncm91bmQtY29sb3I6I2Q0ZWRkYTsgYm9yZGVyLWNvbG9yOiMxNTU3MjQ7IGJvcmRlci13aWR0aDp2YXIoLS1ib3JkZXItdGhpbik7IH0gLm5vdGUtZXJyb3J7IGNvbG9yOiNmZmZmZmY7IGJhY2tncm91bmQtY29sb3I6I2ZmMDAwMDsgYm9yZGVyLWNvbG9yOiNmZjAwMDA7IGJvcmRlci13aWR0aDp2YXIoLS1ib3JkZXItdGhpbik7IH0gdWwuY2hlY2tsaXN0IGxpOmJlZm9yZXsgY29udGVudDoiIjsgYm9yZGVyLWxlZnQ6MC4ycmVtIHNvbGlkOyBib3JkZXItYm90dG9tOjAuMnJlbSBzb2xpZDsgd2lkdGg6MC43cmVtOyBoZWlnaHQ6MC40cmVtOyBkaXNwbGF5OmlubGluZS1ibG9jazsgdHJhbnNmb3JtOnJvdGF0ZSgtNDVkZWcpOyBtYXJnaW4tcmlnaHQ6MXJlbTsgfSB1bC5jaGVja2xpc3QgbGl7IG1hcmdpbi10b3A6dmFyKC0tc3BhY2UpOyBkaXNwbGF5OmZsZXg7IGFsaWduLWl0ZW1zOmNlbnRlcjsgfSAuaW52YWxpZCA+IDppcyhpbnB1dCxzZWxlY3QsdGV4dGFyZWEpeyBiYWNrZ3JvdW5kLWNvbG9yOiNmYWQ2ZGM7IH0gLi1iZy13aGl0ZXsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS13aGl0ZSk7IH0gLi1iZy1ncmF5eyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWdyYXkpOyBjb2xvcjp2YXIoLS13aGl0ZSk7IH0gLi1iZy1kYXJrLWdyYXl7IGJhY2tncm91bmQtY29sb3I6dmFyKC0tZGFyay1ncmF5KTsgY29sb3I6dmFyKC0td2hpdGUpOyB9IC4tYmctYmxhY2stZ3JheXsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1ibGFjay1ncmF5KTsgY29sb3I6dmFyKC0td2hpdGUpOyB9IC4tYmctYmxhY2t7IGJhY2tncm91bmQtY29sb3I6dmFyKC0tYmxhY2spOyBjb2xvcjp2YXIoLS13aGl0ZSk7IH0gLi1iZy1saWdodHsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1saWdodCk7IGNvbG9yOnZhcigtLWJsYWNrKTsgfSAuLWJnLWxpZ2h0LWdyYXl7IGJhY2tncm91bmQtY29sb3I6dmFyKC0tbGlnaHQtZ3JheSk7IGNvbG9yOnZhcigtLWJsYWNrKTsgfSAuLWJnLW5vbmV7YmFja2dyb3VuZDp0cmFuc3BhcmVudDt9IC4tcm91bmR7IGJvcmRlci1yYWRpdXM6MC4zcmVtOyB9IC5wdXNoLWRvd257IHBvc2l0aW9uOmFic29sdXRlOyBib3R0b206MHB4OyB9IC5wcmljZS1tYWlueyBjb2xvcjojZmYwMDAwOyB9IC5wcmljZS1zdHJpa2V7IGNvbG9yOiM5OTk7IHRleHQtZGVjb3JhdGlvbjpsaW5lLXRocm91Z2g7IH0gLmZvcm1hdC1wcmljZXsgcG9zaXRpb246cmVsYXRpdmU7IG1heC13aWR0aDpmaXQtY29udGVudDsgbWFyZ2luLXJpZ2h0OjAuN3JlbTsgbGluZS1oZWlnaHQ6MWVtOyB9IDppcyguRU5HTElTSCxbZGF0YS1sYW5nPSJlbiJdKSAuZm9ybWF0LXByaWNleyBtYXJnaW4tbGVmdDowLjZyZW07IG1hcmdpbi1yaWdodDp1bnNldDsgfSAuZm9ybWF0LXByaWNlOmFmdGVyeyBjb250ZW50OiIkIjsgZm9udC1zaXplOm1heCgwLjVyZW0sMC42ZW0pOyBwb3NpdGlvbjphYnNvbHV0ZTsgdG9wOnZhcigtLWZvcm1hdC1waWNlLXNpZ24tcG9zaXRpb24sMCk7IHJpZ2h0Oi0wLjZlbTsgbGluZS1oZWlnaHQ6aW5oZXJpdDsgfSAuZmluYWwtcHJpY2UgLmZvcm1hdC1wcmljZTphZnRlcnsgbWFyZ2luLXRvcDotNXB4OyB9IC5maW5hbC1wcmljZSAuZm9ybWF0LXByaWNleyBkaXNwbGF5OmlubGluZS1ibG9jazsgcGFkZGluZy1yaWdodDoycHg7IH0gOmlzKC5FTkdMSVNILFtkYXRhLWxhbmc9ImVuIl0pIC5mb3JtYXQtcHJpY2U6YWZ0ZXJ7IGxlZnQ6LTAuN2VtOyByaWdodDp1bnNldDsgfSAucHJpY2UtZW46YmVmb3JleyBjb250ZW50OiIkIjsgfSA6aXMoLnByaWNlLWVuKTpiZWZvcmV7IGZvbnQtc2l6ZTowLjZlbTsgcG9zaXRpb246cmVsYXRpdmU7IHRvcDotMC41ZW07IH0gLnByaWNlLWZyOmFmdGVyeyBjb250ZW50OiIgJCI7IH0gOmlzKC5wcmljZS1mcik6YWZ0ZXJ7IGZvbnQtc2l6ZTowLjZlbTsgcG9zaXRpb246cmVsYXRpdmU7IHRvcDotMC41ZW07IH0gLnNjcmF0Y2gtb3ZlciwgLnNjcmF0Y2gtbGVhc2V7IHBvc2l0aW9uOnJlbGF0aXZlOyB9IC5zY3JhdGNoLW92ZXI6YmVmb3JlLCAuc2NyYXRjaC1sZWFzZTpiZWZvcmV7IGJhY2tncm91bmQ6bm9uZSByZXBlYXQgc2Nyb2xsIDAgMCBibGFjazsgY29udGVudDoiICI7IGhlaWdodDoycHg7IHBvc2l0aW9uOmFic29sdXRlOyB0b3A6NDUlOyAtbW96LXRyYW5zZm9ybTpyb3RhdGUoN2RlZyk7IC13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSg3ZGVnKTsgdHJhbnNmb3JtOnJvdGF0ZSg3ZGVnKTsgd2lkdGg6OTAlOyB9IC5FTkdMSVNIIDppcyguc2NyYXRjaC1sZWFzZSwuc2NyYXRjaC1vdmVyKTpoYXMoLmZvcm1hdC1wcmljZSk6YmVmb3JleyBtYXJnaW4tbGVmdDowLjVyZW07IH0gLmJsdXItb3ZlciwgLmJsdXItbGVhc2UgeyAtd2Via2l0LWZpbHRlcjpibHVyKDAuMTVlbSk7IC1tb3otZmlsdGVyOmJsdXIoMC4xNWVtKTsgLW1zLWZpbHRlcjpibHVyKDAuMTVlbSk7IC1vLWZpbHRlcjpibHVyKDAuMTVlbSk7IGZpbHRlcjpibHVyKDAuMTVlbSk7IH0gLm91dC12aWV3eyBwb3NpdGlvbjpmaXhlZDsgdG9wOi0yMHB4OyBjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LDApOyB6LWluZGV4OjA7IH0gLnRvcC1maXhlZCB7IHBvc2l0aW9uOmZpeGVkOyB0b3A6My4ycmVtOyBsZWZ0OjA7IHotaW5kZXg6MTAwOyBhbGlnbi1pdGVtczpjZW50ZXI7IH0gLmZpeGVkLXdyYXBwZXIudG9wLWZpeGVkIHsgd2lkdGg6MTAwJTsgcGFkZGluZzp2YXIoLS1zKTsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1saWdodC1ncmF5KTsgYm9yZGVyLWJvdHRvbS13aWR0aDoxcHg7IGJvcmRlci1ib3R0b20tY29sb3I6IzAwMDsgYm94LXNpemluZzpib3JkZXItYm94OyBkaXNwbGF5OmZsZXg7IGp1c3RpZnktY29udGVudDpjZW50ZXI7IH0gLmZpeGVkLXdyYXBwZXIudG9wLWZpeGVkID4gLnByb21vQlROIHsgbWFyZ2luOjA7IHdpZHRoOjkwdnc7IGp1c3RpZnktY29udGVudDpjZW50ZXI7IH0gLmZpeGVkLXdyYXBwZXIudG9wLWZpeGVkIC5jdGEtbGFiZWx7IHRleHQtYWxpZ246Y2VudGVyOyB9IC5tYWluLWNvbG9yc3sgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS10YWItY29sb3IpOyBjb2xvcjp2YXIoLS10YWItdGV4dC1jb2xvcik7IH0gLnByb21vLWNvbG9yc3sgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS10YWItY29sb3IpOyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXByb21vLWNvbG9yKTsgY29sb3I6dmFyKC0tdGFiLXRleHQtY29sb3IpOyBjb2xvcjp2YXIoLS1wcm9tby10ZXh0LWNvbG9yKTsgfSAuYnRueyAtLWJ0bi1iZy1jb2w6dmFyKC0tdGFiLWNvbG9yKTsgLS1idG4tdHh0LWNvbDp2YXIoLS10YWItdGV4dC1jb2xvcik7IGJhY2tncm91bmQtY29sb3I6dmFyKC0tYnRuLWJnLWNvbCk7IGNvbG9yOnZhcigtLWJ0bi10eHQtY29sKTsgYm9yZGVyOjFweCBzb2xpZCB2YXIoLS1idG4tYnJkLWNvbCwgdmFyKC0tYnRuLXR4dC1jb2wpKTsgcGFkZGluZzowLjVyZW07IGZvbnQtd2VpZ2h0OmJvbGQ7IH0gLmJ0bi1kYXJrLWdyZXksIC5jYkRhcmtHcmV5eyAtLWJ0bi1iZy1jb2w6IzMzMzsgLS1idG4tdHh0LWNvbDojZmZmOyB9IFtyb2xlPSJidXR0b24iXXsgY3Vyc29yOnBvaW50ZXI7IH0gLmJ0bi1wcm9tb3sgLS10eHQtY29sb3I6dmFyKC0tcHJvbW8tdGV4dC1jb2xvciwgdmFyKC0tdGFiLXRleHQtY29sb3IpKTsgY29sb3I6dmFyKC0tdHh0LWNvbG9yKTsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS10YWItY29sb3IpOyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXByb21vLWNvbG9yKTsgYm9yZGVyOjFweCBzb2xpZCB2YXIoLS1wcm9tby10ZXh0LWNvbG9yKTsgcG9zaXRpb246cmVsYXRpdmU7IGFsaWduLWl0ZW1zOmNlbnRlcjsgYm9yZGVyOm5vbmU7IH0gLmJ0bi1jdGE6YWZ0ZXJ7IGNvbnRlbnQ6IlxmMDU0IjsgZm9udC1zdHlsZTpub3JtYWw7IHRleHQtZGVjb3JhdGlvbjppbmhlcml0OyBwb3NpdGlvbjphYnNvbHV0ZTsgcmlnaHQ6MXJlbTsgZm9udC1mYW1pbHk6J0ZvbnQgQXdlc29tZSA1IFBybyc7IGZvbnQtd2VpZ2h0OjkwMDsgfSAuYnRuLW1haW57IC0tYnRuLWJnLWNvbDp2YXIoLS10YWItY29sb3IpOyAtLWJ0bi10eHQtY29sOnZhcigtLXRhYi10ZXh0LWNvbG9yKTsgLS1idG4tYnJkLWNvbDp2YXIoLS10YWItdGV4dC1jb2xvciwgdmFyKC0tdGFiLXRleHQtY29sb3IpKTsgfSAuYnRuLW1haW4yLCAuYnRuLW1haW46aG92ZXJ7IGJhY2tncm91bmQtY29sb3I6dmFyKC0tbWVudS1ob3Zlci1iZy1jb2xvcik7IGJvcmRlcjoxcHggc29saWQgdmFyKC0tbWVudS1ob3Zlci10ZXh0LWNvbG9yKTsgY29sb3I6dmFyKC0tbWVudS1ob3Zlci10ZXh0LWNvbG9yKTsgfSAuYnRuLWJsYWNreyBiYWNrZ3JvdW5kLWNvbG9yOiMwMDA7IGNvbG9yOiNmZmY7IC0tdHh0LWNvbG9yOiNmZmY7IH0gLmJ0bi1saWdodHsgYmFja2dyb3VuZC1jb2xvcjojZmZmOyBib3JkZXI6MXB4IHNvbGlkICNhYWE7IGNvbG9yOiM4ODg7IH0gLmJ0bi1zdWNjZXNzeyAtLWJ0bi1iZy1jb2w6IzRjYWY1MDsgLS1idG4tdHh0LWNvbDojZmZmOyB9IC5idG4td2FybmluZ3sgLS1idG4tYmctY29sOiNmZjk4MDA7IC0tYnRuLXR4dC1jb2w6I2ZmZjsgfSAuYm50LWRpc2FibGVkLCAuYnRuW2Rpc2FibGVkXSB7IGNvbG9yOnZhcigtLWdyYXkpOyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWxpZ2h0LWdyYXkpOyBib3JkZXI6MXB4IHNvbGlkIHZhcigtLWdyYXkpOyB9IC5idG4tZW1haWwtbWUsIC5idG4tdGV4dC1tZXsgZGlzcGxheTpmbGV4OyBhbGlnbi1pdGVtczpjZW50ZXI7IGp1c3RpZnktY29udGVudDpjZW50ZXI7IH0gLmJ0bi1lbWFpbC1tZTpiZWZvcmV7IGNvbnRlbnQ6IlxmMGUwIjsgZm9udC13ZWlnaHQ6OTAwOyB9IC5idG4tdGV4dC1tZTpiZWZvcmV7IGNvbnRlbnQ6IlxmM2NkIjsgZm9udC1zaXplOngtbGFyZ2U7IGZvbnQtd2VpZ2h0OjkwMDsgfSAuYnRuLWVtYWlsLW1lOmJlZm9yZSwgLmJ0bi10ZXh0LW1lOmJlZm9yZXsgZm9udC1mYW1pbHk6J0ZvbnQgQXdlc29tZSA1IFBybyc7IG1hcmdpbi1yaWdodDo1cHg7IHBvc2l0aW9uOnJlbGF0aXZlOyB0b3A6LTFweDsgfSBidXR0b24ucm91bmQtYnV0dG9ueyBhbGw6aW5oZXJpdDsgYm9yZGVyLXJhZGl1czo1MCU7IGJhY2tncm91bmQtY29sb3I6dmFyKC0tdGFiLXRleHQtY29sb3IpOyBmaWxsOnZhcigtLXRhYi1jb2xvcik7IHBhZGRpbmc6MC4zcmVtOyBjdXJzb3I6cG9pbnRlcjsgfSBidXR0b24uaWNvbi1idXR0b257IGNvbG9yOnZhcigtLXByb21vLWJ0bi1jb2xvcik7IGJhY2tncm91bmQtY29sb3I6I2ZmZjsgYm9yZGVyOm5vbmU7IHBhZGRpbmc6MC41cmVtOyB3aWR0aDphdXRvOyB9IC54LWNsb3NleyBiYWNrZ3JvdW5kLWltYWdlOnVybCgiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIGFyaWEtaGlkZGVuPSd0cnVlJyBmb2N1c2FibGU9J2ZhbHNlJyB2aWV3Qm94PScwIDAgMTAgMTAnJTNFJTNDc3R5bGUlM0UudmVydCU3QmZpbGw6JTIzMDAwOyU3RCUzQy9zdHlsZSUzRSUzQ3JlY3QgY2xhc3M9J3ZlcnQnIGhlaWdodD0nOCcgd2lkdGg9JzInIHk9JzEnIHg9JzQnJTNFJTNDL3JlY3QlM0UlM0NyZWN0IGhlaWdodD0nMicgd2lkdGg9JzgnIHk9JzQnIHg9JzEnJTNFJTNDL3JlY3QlM0UlM0Mvc3ZnJTNFIik7IGJhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7IGJvcmRlcjpub25lOyB3aWR0aDoxLjVyZW07IGhlaWdodDoxLjVyZW07IHRyYW5zZm9ybTpyb3RhdGUoNDVkZWcpOyBjdXJzb3I6cG9pbnRlcjsgfSA6bm90KC5jb21wbGV0ZWQpLnJpcHBsZSB7IHBvc2l0aW9uOnJlbGF0aXZlOyBvdmVyZmxvdzpoaWRkZW47IHRyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLCAwLCAwKTsgfSA6bm90KC5jb21wbGV0ZWQpLnJpcHBsZTphZnRlciB7IGNvbnRlbnQ6IiI7IGRpc3BsYXk6YmxvY2s7IHBvc2l0aW9uOmFic29sdXRlOyB3aWR0aDoxMDAlOyBoZWlnaHQ6MTAwJTsgdG9wOjA7IGxlZnQ6MDsgcG9pbnRlci1ldmVudHM6bm9uZTsgYmFja2dyb3VuZC1pbWFnZTpyYWRpYWwtZ3JhZGllbnQoY2lyY2xlLCByZ2IoMCwgMCwgMCkgMTAlLCB0cmFuc3BhcmVudCAxMC4wMSUpOyBiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7IGJhY2tncm91bmQtcG9zaXRpb246NTAlOyB0cmFuc2Zvcm06c2NhbGUoMTAsMTApOyBvcGFjaXR5OjA7IHRyYW5zaXRpb246dHJhbnNmb3JtIC41cywgb3BhY2l0eSAxczsgfSA6bm90KC5jb21wbGV0ZWQpLnJpcHBsZTphY3RpdmU6YWZ0ZXIgeyB0cmFuc2Zvcm06c2NhbGUoMCwwKTsgb3BhY2l0eTouMjsgdHJhbnNpdGlvbjowczsgfSAubG9nb2FyZWEgeyBtaW4taGVpZ2h0OjdyZW07IGJvcmRlci1ib3R0b206MXB4IHNvbGlkICNlZWU7IGJhY2tncm91bmQtY29sb3I6dmFyKC0tYWRtaW4tZ2VuZXJhbC1oZWFkZXItYmctY29sb3IpOyB9IGEgPiA6d2hlcmUoOmlzKHN2ZywgLmZhLCAuZmFzKTpmaXJzdC1jaGlsZDpub3QoOm9ubHktY2hpbGQpKXsgbWFyZ2luLXJpZ2h0OjAuNnJlbTsgfSAucHJvbW9Ub3BCdG4gOmlzKGEsYnV0dG9uKSB7IC0tZnM6dmFyKC0tZnMxKTsgLS10eHQtY29sb3I6dmFyKC0tdG9wLXByb21vLWJ0bi10eHQsIHZhcigtLXRvcC1wcm9tby1idG4tdHh0LWNvbG9yKSk7IGJvcmRlci1yYWRpdXM6NHB4OyBib3JkZXItdG9wLXdpZHRoOjFweDsgYm9yZGVyLWJvdHRvbS13aWR0aDoxcHg7IGJvcmRlci1jb2xvcjojZjNmM2YzOyBoZWlnaHQ6My4ycmVtOyBmb250LXNpemU6dmFyKC0tZnMxKTsgZm9udC13ZWlnaHQ6Ym9sZDsgZGlzcGxheTpmbGV4OyBqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOyBhbGlnbi1pdGVtczpjZW50ZXI7IGJhY2tncm91bmQ6dmFyKC0tdG9wLXByb21vLWJ0bi1iZywgdmFyKC0tdG9wLXByb21vLWJ0bi1iZy1jb2xvcikpOyBjb2xvcjp2YXIoLS10b3AtcHJvbW8tYnRuLXR4dCwgdmFyKC0tdG9wLXByb21vLWJ0bi10eHQtY29sb3IpKTsgfSAucHJvbW9Ub3BCdG4uZGVhbGVyTGluZUJ1dHRvbiA6aXMoYSxidXR0b24peyAtLXR4dC1jb2xvcjp2YXIoLS1hZG1pbi1nZW5lcmFsLXRleHQtdXMtZGVhbGVyLWxpbmUtdGV4dC1jb2xvcik7IGJhY2tncm91bmQ6dmFyKC0tYWRtaW4tZ2VuZXJhbC10ZXh0LXVzLWRlYWxlci1saW5lLWJnLWNvbG9yKTsgY29sb3I6dmFyKC0tYWRtaW4tZ2VuZXJhbC10ZXh0LXVzLWRlYWxlci1saW5lLXRleHQtY29sb3IpOyBib3JkZXItY29sb3I6dmFyKC0tYWRtaW4tZ2VuZXJhbC10ZXh0LXVzLWRlYWxlci1saW5lLXRleHQtY29sb3IpOyB3aWR0aDoxMDAlOyB9IDppcygucHJvbW9Ub3BCdG4sbGFiZWwpLmZsb2F0aW5neyBwb3NpdGlvbjpmaXhlZDsgYm90dG9tOjEuNXJlbTsgcmlnaHQ6MS41cmVtOyB6LWluZGV4OjEwOyB9IC5wcm9tb1RvcEJ0bi5mbG9hdGluZy53aXRoVG9hc3RlciB7Ym90dG9tOjZyZW07fSAucHJvbW9Ub3BCdG4uZmxvYXRpbmcgOmlzKGEsYnV0dG9uKXsgLS1mczp2YXIoLS1mczUpOyBwYWRkaW5nOjFyZW07IGJvcmRlci1yYWRpdXM6NTAlOyBib3JkZXItd2lkdGg6MXB4OyBoZWlnaHQ6dW5zZXQ7IH0gLnByb21vVG9wQnRuLmZsb2F0aW5nIDppcyhhLGJ1dHRvbikgc3BhbiB7ZGlzcGxheTpub25lO30gLmljb24taGVhZGluZyBzcGFuLmZheyBmb250LXNpemU6aW5oZXJpdDsgd2lkdGg6MWVtOyBwYWRkaW5nOjAuMmVtOyBoZWlnaHQ6MWVtOyB0ZXh0LWFsaWduOmNlbnRlcjsgYm9yZGVyLXJhZGl1czo1MCU7IGJvcmRlcjoxcHggc29saWQgdmFyKC0tYmxhY2spOyBjb2xvcjp2YXIoLS13aGl0ZSk7IGJhY2tncm91bmQtY29sb3I6dmFyKC0tYmxhY2spOyBib3gtc2l6aW5nOmNvbnRlbnQtYm94OyB9IC5pY29uLWhlYWRpbmcgLnNlY29uZGFyeVRleHR7IGNvbG9yOiM3NTc1NzU7IGZvbnQtc2l6ZTowLjc1ZW07IH0gLmdyb3VwVGFicyA+ICp7IGN1cnNvcjpwb2ludGVyOyBmb250LXNpemU6Y2FsYygxLjJyZW0gKyAoMjAgLSAxOCkgKiAoKDEwMHZ3IC0gMzIwcHgpIC8gKDExMDAgLSAzMDApKSk7IH0gLmdyb3VwVGFicyA+ICo6aG92ZXJ7IGJhY2tncm91bmQtY29sb3I6I2VmZWZlZjsgfSAuZ3JvdXBUYWJzIC50YWItbGFiZWwsIC5uZXdDYXJTbGlkZXIgLmNhcm91c2VsVGl0bGV7IGNvbG9yOnZhcigtLW5ldy12ZWhpY2xlLWNhcm91c2VsLXR4dC1jb2xvciwgdmFyKC0tZGVmYXVsdC1ibGFjaykpOyB9IC5ncm91cFRhYnMgLmFjdGl2ZVRhYiAudGFiLWxhYmVseyBjb2xvcjp2YXIoLS1uZXctdmVoaWNsZS1jYXJvdXNlbC10eHQtY29sb3IsIHZhcigtLWRlZmF1bHQtYmxhY2spKTsgYm9yZGVyLWJvdHRvbTozcHggc29saWQ7IGJvcmRlci1ib3R0b20tY29sb3I6IzAwMDsgYm9yZGVyLWJvdHRvbS1jb2xvcjp2YXIoLS10YWItY29sb3IpOyB9IC5jYXJTbGlkZXJ7IGRpc3BsYXk6ZmxleDsganVzdGlmeS1jb250ZW50OmNlbnRlcjsgfSAuY2FyU2xpZGVyID4gKnsgd2lkdGg6bWluKDkwcmVtLDEwMCUpOyB9IC5jYXJTbGlkZXIuLWJnLWxpZ2h0LWdyYXkgPiAqeyBtYXgtd2lkdGg6bWluKDc1cmVtLDEwMCUpOyB9IC5uZXdDYXJDYXJkeyBoZWlnaHQ6MTAwJTsgbWluLWhlaWdodDoyN3JlbTsgYm9yZGVyOjFweCBzb2xpZCAjYmJiOyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IHBvc2l0aW9uOnJlbGF0aXZlOyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXdoaXRlKTsgfSAubmV3Q2FyQ2FyZCBpbWd7IHdpZHRoOjEwMCU7IG1hcmdpbi10b3A6LTFyZW07IHBvc2l0aW9uOnJlbGF0aXZlOyB9IC5jYXJQYXltZW50V3JhcHBlcnsgd2lkdGg6bWluKDEwMCUsMjVyZW0pOyBtaW4taGVpZ2h0OjVyZW07IH0gLmNhclBheW1lbnRXcmFwcGVyIC5wYXltZW50QmxvY2t7IGhlaWdodDoxMDAlOyB9IC5wYXltZW50c0Rpc2FibGVkIC5uZXdDYXJDYXJkeyBtaW4taGVpZ2h0OjIycmVtOyB9IC52ZWhpY2xlQ2Fyb3VzZWwgLm5ld0NhckNhcmR7IGJhY2tncm91bmQtY29sb3I6dmFyKC0td2hpdGUpOyB3aWR0aDoyMy43cmVtOyBib3JkZXI6MXB4IHNvbGlkICNiYmI7IG1hcmdpbjowIDAuNHJlbTsgaGVpZ2h0OjEwMCUgfSAubmV3Q2FyQ2FyZCAucHJvbW8tYmFkZ2V7IGhlaWdodDpmaXQtY29udGVudDsgbWluLXdpZHRoOjZyZW07IH0gLm5ld0NhckNhcmQ6aG92ZXJ7IGJveC1zaGFkb3c6MCAwIDEwcHggMnB4IHZhcigtLW1pZC1ncmF5KTsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1saWdodC1ncmF5KTsgfSAubmV3Q2FyQ2FyZDpob3ZlciAuaW5TdG9ja0xpbmsgeyBiYWNrZ3JvdW5kLWNvbG9yOiNmZmZmZmY7IH0gLm5ld0NhckNhcmQgLmNhcmQtYm9keXsgZGlzcGxheTpmbGV4OyBhbGlnbi1pdGVtczpjZW50ZXI7IGhlaWdodDoxMnJlbTsgb3ZlcmZsb3c6aGlkZGVuOyB9IC5uZXdDYXJDYXJkID4gLmJveC1sY3sgbWFyZ2luLXRvcDowOyBwYWRkaW5nLXRvcDowOyBwYWRkaW5nLWJvdHRvbTowOyB9IC5uZXdDYXJDYXJkID4gLmJveC1sYzpmaXJzdC1jaGlsZHsgcGFkZGluZy10b3A6MC41cmVtOyBtYXgtaGVpZ2h0OjEwcmVtOyB9IC5uZXdDYXJDYXJkIC5kZXNrdG9wUGF5bWVudHsgcG9zaXRpb246cmVsYXRpdmU7IH0gLm5ld0NhckNhcmQgc3Bhbi5wYXltZW50Q2FsY0J0bi5kZXNrdG9weyBwb3NpdGlvbjphYnNvbHV0ZTsgcmlnaHQ6NyU7IGZvbnQtc2l6ZToxLjdlbTsgY3Vyc29yOnBvaW50ZXI7IH0gLnVzZWRDYXJTbGlkZXsgZGlzcGxheTpibG9jazsgYm9yZGVyOjFweCBzb2xpZCAjYmJiOyBiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7IGhlaWdodDoxMDAlOyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IH0gLnVzZWRDYXJTbGlkZSAqeyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IH0gLnVzZWRDYXJTbGlkZSAuc2xpZGVDb250ZW50eyBoZWlnaHQ6MTAwJSB9IC5hbmltYXRlZC10cmlhbmdsZSB7IHBvc2l0aW9uOnJlbGF0aXZlOyBtYXJnaW4tcmlnaHQ6MTBweDsgfSAuYW5pbWF0ZWQtdHJpYW5nbGUgPiAuZmE6OmFmdGVyIHsgY29udGVudDoiXGYwNzEiOyB9IC5hbmltYXRlZC10cmlhbmdsZSBpeyBwb3NpdGlvbjpyZWxhdGl2ZTsgfSAuYW5pbWF0ZWQtdHJpYW5nbGUgPiBzdmcsIC5hbmltYXRlZC10cmlhbmdsZSA+IC5mYTo6YWZ0ZXIgeyBhbmltYXRpb246cmlwcGxlLTEgMXMgaW5maW5pdGUgZWFzZS1pbi1vdXQ7IGFuaW1hdGlvbi1kZWxheTowLjVzOyBhbmltYXRpb246cmlwcGxlLTIgMXMgaW5maW5pdGUgZWFzZS1pbi1vdXQ7IGFuaW1hdGlvbi1kZWxheTowLjc1czsgcG9zaXRpb246YWJzb2x1dGU7IH0gLmFuaW1hdGVkLXRyaWFuZ2xlID4gLmZhOjphZnRlcnsgdG9wOjA7IGxlZnQ6MDsgfSAuYW5pbWF0ZWQtdHJpYW5nbGUgPiBzdmd7IHRvcDoxcHg7IGxlZnQ6LTFyZW07IH0gQGtleWZyYW1lcyByaXBwbGUtMSB7IDAlIHsgdHJhbnNmb3JtOnNjYWxlKDEpOyBvcGFjaXR5OjE7IH0gMTAwJSB7IHRyYW5zZm9ybTpzY2FsZSgxLjcpOyBvcGFjaXR5OjA7IH0gfSBAa2V5ZnJhbWVzIHJpcHBsZS0yIHsgMCUgeyB0cmFuc2Zvcm06c2NhbGUoMSk7IG9wYWNpdHk6MTsgfSAxMDAlIHsgdHJhbnNmb3JtOnNjYWxlKDIpOyBvcGFjaXR5OjA7IH0gfSBzcGFuLmFzdGVyaXg6YWZ0ZXJ7IGNvbnRlbnQ6IioiOyBwb3NpdGlvbjpyZWxhdGl2ZTsgZm9udC1zaXplOjJyZW07IH0gZGl2LnByaWNlTm90ZS5hc3Rlcml4OmJlZm9yZXsgY29udGVudDoiKiI7IHBvc2l0aW9uOnJlbGF0aXZlOyBmb250LXNpemU6MXJlbTsgfSBmb290ZXIgeyAtd2Via2l0LWJveC1zaGFkb3c6aW5zZXQgMHB4IDEwcHggMTFweCAtMTFweCByZ2JhKDUwLCA1MCwgNTAsIDAuNzUpOyAtbW96LWJveC1zaGFkb3c6IGluc2V0IDBweCAxMHB4IDExcHggLTExcHggcmdiYSg1MCwgNTAsIDUwLCAwLjc1KTsgYm94LXNoYWRvdzogaW5zZXQgMHB4IDEwcHggMTFweCAtMTFweCByZ2JhKDUwLCA1MCwgNTAsIDAuNzUpOyAtLXR4dC1jb2xvcjp2YXIoLS1mb290ZXItaXRlbXMtbGluay1jb2xvcik7IGJhY2tncm91bmQtY29sb3I6dmFyKC0tZm9vdGVyLWJnLWNvbG9yKTsgY29sb3I6dmFyKC0tZm9vdGVyLWl0ZW1zLWxpbmstY29sb3IpOyB9IGEudmlzaXRDb250YWN0QnV0dG9ueyAtLXR4dC1jb2xvcjp2YXIoLS1wcm9tby1idG4tdGV4dC1jb2xvcik7IGJhY2tncm91bmQtY29sb3I6dmFyKC0tcHJvbW8tYnRuLWJnLWNvbG9yKTsgY29sb3I6dmFyKC0tcHJvbW8tYnRuLXRleHQtY29sb3IpOyB9IC5jRm9vdGVyQ2FyTGlua3MgbGkuY0l0ZW1FeHBlbmR7IGRpc3BsYXk6bm9uZTsgfSAuY0Zvb3RlckNhckxpbmtzIGgzLCAuZm9vdGVyX2FkZHJlc3MgLmFkciA+IHNwYW57IGNvbG9yOnZhcigtLWZvb3Rlci1saW5rLXRpdGxlLWNvbCk7IH0gLmNGb290ZXJDYXJMaW5rcyBzcGFuLmgzLWFsdCB7IGRpc3BsYXk6YmxvY2s7IGNvbG9yOnZhcigtLWZvb3Rlci1saW5rLXRpdGxlLWNvbCk7IH0gLmNGb290ZXJDYXJMaW5rcy5jTGlzdEV4cGVuZGVkIGxpLmNJdGVtRXhwZW5keyBkaXNwbGF5OmJsb2NrOyB9IC5jRXhwZW5kTGlzdCBidXR0b257IHBhZGRpbmc6dmFyKC0tcykgMDsgYmFja2dyb3VuZDpub25lOyB9IC5jb25kaXRpb25zRm9vdGVyIHsgY29sb3I6dmFyKC0tZm9vdGVyLWNvbmRpdGlvbnMtY29sb3IsICM5MTkxOTEpOyAtLXR4dC1jb2xvcjp2YXIoLS1mb290ZXItY29uZGl0aW9ucy1jb2xvcik7IH0gLnRyYWRlSW5CYXJNb2JpbGVCdXR0b24geyBwb3NpdGlvbjpmaXhlZDsgYm90dG9tOjEwcHg7IG1hcmdpbjo1cHggNXB4IDE1cHggMTVweDsgei1pbmRleDo0OyB3aWR0aDoxNDBweCAhaW1wb3J0YW50OyBib3JkZXItd2lkdGg6MXB4OyBiYWNrZ3JvdW5kLWNvbG9yOiNlYTAwMjk7IHRleHQtYWxpZ246bGVmdDsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS10cmFkZWluYmFyLWJ0bi1iZyk7IGNvbG9yOiB2YXIoLS10cmFkZWluYmFyLWJ0bi1jb2xvcik7IGFsaWduLWl0ZW1zOmNlbnRlcjsgYm9yZGVyLXJhZGl1czo4cHg7IGJvcmRlci13aWR0aDoxcHggM3B4IDRweCAxcHg7IGJvcmRlci1jb2xvcjojMzMzMzMzOyBwYWRkaW5nLXRvcDoxMHB4OyB9IC50cmFkZUluQmFyTW9iaWxlQnV0dG9uIGl7IGRpc3BsYXk6aW5saW5lLWZsZXg7IGJvcmRlci1yYWRpdXM6MTAwJTsgd2lkdGg6MmVtOyBhbGlnbi1pdGVtczpjZW50ZXI7IGp1c3RpZnktY29udGVudDpjZW50ZXI7IGJvcmRlcjoycHggc29saWQgI2ZmZjsgYmFja2dyb3VuZC1jb2xvcjojZmZmOyBoZWlnaHQ6MS41ZW07IGNvbG9yOiMwMDA7IGZsb2F0OmxlZnQ7IH0gLnRyYWRlSW5CYXJNb2JpbGVCdXR0b24ud2l0aFRvYXN0ZXIgeyBib3R0b206NXJlbTsgfSAjdHJhZGVJbkJhclBvcHVwX2xpbmUxeyBiYWNrZ3JvdW5kLWNvbG9yOiNmMWYxZjE7IGJvcmRlcjoxcHggc29saWQgZ3JleTsgcGFkZGluZzoyMHB4IDQwcHg7IGZvbnQtc2l6ZToxLjEyNXJlbSA7IHRleHQtYWxpZ246Y2VudGVyOyB9IC5idG4udHJhZGVJbkJhclBvcHVwU3VibWl0eyBwYWRkaW5nOjAuNzVyZW0gMC4zNzVyZW07IGJvcmRlci13aWR0aDoxcHg7IGJvcmRlci1jb2xvcjojMDAwOyBmb250LXdlaWdodDpib2xkOyBib3JkZXItcmFkaXVzOjNweDsgYm9yZGVyOjFweCBzb2xpZCAjMDAwOyB9ICN0cmFkZUluQmFyUG9wdXBfZm9ybVcgaW5wdXR7IG1hcmdpbjo1cHggMCAwOyB9ICN0cmFkZUluQmFyUG9wdXBfZm9ybVd7IGhlaWdodDo1ODBweDsgYmFja2dyb3VuZC1jb2xvcjojZmZmOyBjb2xvcjp2YXIoLS1kZWZhdWx0LWJsYWNrLXRleHQpOyBwYWRkaW5nOjE1cHg7IHBvc2l0aW9uOnJlbGF0aXZlOyB9ICN0cmFkZUluQmFyUG9wdXBfZm9ybVcgaW5wdXR7IHBhZGRpbmc6MTFweCAxMHB4OyBmb250LXNpemU6MC45MzhyZW0gOyB3aWR0aDoyNTBweDsgbWFyZ2luOjVweCAwIDA7IGJvcmRlcjoxcHggc29saWQgI2E5YTlhOSFpbXBvcnRhbnQ7IH0gI3RyYWRlSW5CYXJQb3B1cF9mb3JtVyAudHJhZGluU2VsZWN0UG9wdXB7IGNvbG9yOiMzYzM4MzY7IGZvbnQtc2l6ZToxcmVtOyBiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsMSk7IGJhY2tncm91bmQtcG9zaXRpb246OTUlIDUwJTsgYXBwZWFyYW5jZTpub25lOyAtd2Via2l0LWFwcGVhcmFuY2U6bm9uZTsgLW1vei1hcHBlYXJhbmNlOm5vbmU7IG1hcmdpbjo1cHggMCAwOyB9ICN0cmFkZUluQmFyUG9wdXBfZm9ybVcgOjpwbGFjZWhvbGRlciB7IGNvbG9yOiNhOWE5YTk7IG9wYWNpdHk6MTsgfSAjdHJhZGVJbkJhclBvcHVwX2Zvcm1XIDotbXMtaW5wdXQtcGxhY2Vob2xkZXIgeyBjb2xvcjojYTlhOWE5OyB9ICN0cmFkZUluQmFyUG9wdXBfZm9ybVcgOjotbXMtaW5wdXQtcGxhY2Vob2xkZXIgeyBjb2xvcjojYTlhOWE5OyB9IC50cmFkaW5TZWxlY3QsIC50cmFkaW5TZWxlY3RQb3B1cCB7IGNvbG9yOiMzYzM4MzY7IGZvbnQtc2l6ZToxcmVtOyBtYXJnaW46NXB4IDAgMDsgYXBwZWFyYW5jZTpub25lOyAtd2Via2l0LWFwcGVhcmFuY2U6bm9uZTsgLW1vei1hcHBlYXJhbmNlOm5vbmU7IH0gLnRyYWRpblNlbGVjdEEgeyBwb3NpdGlvbjpyZWxhdGl2ZTsgfSAudHJhZGluU2VsZWN0QTphZnRlciB7IGNvbnRlbnQ6IiAiOyBoZWlnaHQ6MDsgd2lkdGg6MDsgYm9yZGVyLWxlZnQ6NXB4IHNvbGlkIHRyYW5zcGFyZW50OyBib3JkZXItcmlnaHQ6NXB4IHNvbGlkIHRyYW5zcGFyZW50OyBib3JkZXItdG9wOjVweCBzb2xpZCAjMDAwMDAwOyBwb3NpdGlvbjphYnNvbHV0ZTsgcmlnaHQ6MTRweDsgdG9wOjE3cHg7IHRyYW5zaXRpb246YWxsIDAuM3MgbGluZWFyOyBwb2ludGVyLWV2ZW50czpub25lOyB9IC5lbWFpbEJvZHksIC5lbWFpbFN1YmplY3R7IGRpc3BsYXk6bm9uZTsgfSAucmV2ZWFsLW1vZGFsOm5vdCgjcGF5bWVudENhbGN1bGF0b3JQb3B1cENvbnRhaW5lcikgKjpub3QoLmZpbmFuY2VNdWx0aXN0ZXBOZXdDYWxjdWxhdG9yIDppcyhpbnB1dCwgc2VsZWN0KSl7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgfSAucmV2ZWFsLW1vZGFsOm5vdCgjcGF5bWVudENhbGN1bGF0b3JQb3B1cENvbnRhaW5lcikgOmlzKGlucHV0W3R5cGU9InRleHQiXTpub3QoLmZpbmFuY2VNdWx0aXN0ZXBVc2VkQ2FsY3VsYXRvciAuY2FsYy1mb3JtIGlucHV0KSxpbnB1dFt0eXBlPSJlbWFpbCJdLGlucHV0W3R5cGU9InRlbCJdLHNlbGVjdDpub3QoLnBheW1lbnRDYWxjdWxhdG9ySW50ZXJ2YWwsLnBheW1lbnRDYWxjdWxhdG9yS21BbGxvd2FuY2UsLmZpbmFuY2VNdWx0aXN0ZXBVc2VkQ2FsY3VsYXRvciAuY2FsYy1mb3JtIHNlbGVjdCwgc2VsZWN0LnN0ZXAyNHNlbGVjdCkpeyBwYWRkaW5nOjAuNHJlbTsgYm9yZGVyLXdpZHRoOjFweDsgYm9yZGVyLXJhZGl1czowLjNyZW07IHdpZHRoOjEwMCU7IGJvcmRlci1jb2xvcjojYTlhOWE5OyB9IFtkYXRhLXBhZ2U9IkhPTUVQQUdFIl17IGJhY2tncm91bmQtY29sb3I6dmFyKC0taG9tZS1iZy1jb2xvciwgI0ZGRkZGRik7IH0gLnl0LWJnLWNvbnRhaW5lcnsgcG9zaXRpb246cmVsYXRpdmU7IG92ZXJmbG93OmhpZGRlbjsgfSAuYmFubmVyLWJnLWNvbnRhaW5lcnsgYmFja2dyb3VuZC1zaXplOmNvdmVyOyBiYWNrZ3JvdW5kLXBvc2l0aW9uOmNlbnRlciBjZW50ZXI7IGJhY2tncm91bmQtYmxlbmQtbW9kZTpjb2xvcjsgfSAjeW91dHViZV9fY29udGFpbmVyeyBwb3NpdGlvbjpyZWxhdGl2ZTsgd2lkdGg6MTAwJTsgaGVpZ2h0OjA7IG92ZXJmbG93OmhpZGRlbjsgcGFkZGluZy1ib3R0b206bWluKGNhbGMoMTAwdmggLSB2YXIoLS1oZWFkZXItaGVpZ2h0LDEwcmVtKSksNjd2dyk7IGJhY2tncm91bmQtY29sb3I6Izg4ODsgfSAjaG9tZXBhZ2VfeW91dHViZV9wbGF5ZXJ7IHBvc2l0aW9uOmFic29sdXRlOyB0b3A6LTQ1JTsgbGVmdDotMTAlOyBoZWlnaHQ6MTkwJTsgd2lkdGg6MTIwJTsgcG9pbnRlci1ldmVudHM6bm9uZTsgfSAjeW91dHViZV9fY29udGFpbmVyOmlzKC5mdWxsSGVpZ2h0LC52aXNpYmxlSGVpZ2h0KXsgcGFkZGluZy1ib3R0b206Y2FsYygxMDB2aCAtIHZhcigtLWhlYWRlci1oZWlnaHQsMTByZW0pKTsgfSA6aXMoLmZ1bGxIZWlnaHQsLnZpc2libGVIZWlnaHQpICNob21lcGFnZV95b3V0dWJlX3BsYXllcnsgaGVpZ2h0OjEwMCU7IHRvcDowOyB9ICN5b3V0dWJlX19jb250YWluZXIuZnVsbFdpZHRoeyBwYWRkaW5nLWJvdHRvbTo1Ni4yNSU7IH0gI21vYmlsZVNsaWRlciAjeW91dHViZV9fY29udGFpbmVyeyBwYWRkaW5nLWJvdHRvbTptYXgoNjd2dywyNHJlbSk7IH0gI21vYmlsZVNsaWRlciAjeW91dHViZV9fY29udGFpbmVyICNiYW5uZXJfc2VhcmNoX2Jhcl9jb250YWluZXJ7IGhlaWdodDptYXgoNjd2dywyNHJlbSk7IG1pbi1oZWlnaHQ6MThyZW07IHotaW5kZXg6MTsgfSAuZnVsbFdpZHRoICNob21lcGFnZV95b3V0dWJlX3BsYXllcnsgaGVpZ2h0OjEyMCU7IHRvcDotMTAlOyB9IC55dC12aWRlb3sgYmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0OyBiYWNrZ3JvdW5kLXBvc2l0aW9uOmNlbnRlcjsgYmFja2dyb3VuZC1zaXplOmNvdmVyOyB9IC55dC1wbGF5eyBiYWNrZ3JvdW5kLWltYWdlOnVybCgnZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA1NzYgNTEyIj48IS0tIEZvbnQgQXdlc29tZSBGcmVlIDUuMTUuMSBieSBAZm9udGF3ZXNvbWUgLSBodHRwczovL2ZvbnRhd2Vzb21lLmNvbSBMaWNlbnNlIC0gaHR0cHM6Ly9mb250YXdlc29tZS5jb20vbGljZW5zZS9mcmVlIChJY29uczpDQyBCWSA0LjAsIEZvbnRzOlNJTCBPRkwgMS4xLCBDb2RlOk1JVCBMaWNlbnNlKSAtLT48cGF0aCBkPSJNNTQ5LjY1NSAxMjQuMDgzYy02LjI4MS0yMy42NS0yNC43ODctNDIuMjc2LTQ4LjI4NC00OC41OTdDNDU4Ljc4MSA2NCAyODggNjQgMjg4IDY0UzExNy4yMiA2NCA3NC42MjkgNzUuNDg2Yy0yMy40OTcgNi4zMjItNDIuMDAzIDI0Ljk0Ny00OC4yODQgNDguNTk3LTExLjQxMiA0Mi44NjctMTEuNDEyIDEzMi4zMDUtMTEuNDEyIDEzMi4zMDVzMCA4OS40MzggMTEuNDEyIDEzMi4zMDVjNi4yODEgMjMuNjUgMjQuNzg3IDQxLjUgNDguMjg0IDQ3LjgyMUMxMTcuMjIgNDQ4IDI4OCA0NDggMjg4IDQ0OHMxNzAuNzggMCAyMTMuMzcxLTExLjQ4NmMyMy40OTctNi4zMjEgNDIuMDAzLTI0LjE3MSA0OC4yODQtNDcuODIxIDExLjQxMi00Mi44NjcgMTEuNDEyLTEzMi4zMDUgMTEuNDEyLTEzMi4zMDVzMC04OS40MzgtMTEuNDEyLTEzMi4zMDV6bS0zMTcuNTEgMjEzLjUwOFYxNzUuMTg1bDE0Mi43MzkgODEuMjA1LTE0Mi43MzkgODEuMjAxeiIgZmlsbD0iJTIzYzMzYzJkIiAvJTNFJTNDL3N2ZyUzRScpOyB3aWR0aDo1cmVtOyBoZWlnaHQ6NXJlbTsgYmFja2dyb3VuZC1zaXplOmNvbnRhaW47IGJhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDsgYmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDsgb3BhY2l0eTowLjc7IH0gLmVtYmVkLWNvbnRhaW5lci15b3V0dWJlIHsgcG9zaXRpb246cmVsYXRpdmU7IGhlaWdodDpjYWxjKDEwMHZ3IC8gKDE2IC8gOSkpOyBvdmVyZmxvdzpoaWRkZW47IG1heC13aWR0aDoxMDAlOyBiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7IGJhY2tncm91bmQtcG9zaXRpb246Y2VudGVyOyBiYWNrZ3JvdW5kLXNpemU6Y292ZXI7IH0gLm1vYmlsZV9idXNpbmVzc0Rlc2MgeyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWJ1c2luZXNzLWRlc2MtYmctY29sb3JfbW9iLCB2YXIoLS1mb290ZXItYmctY29sb3IpKTsgY29sb3I6dmFyKC0tYnVzaW5lc3MtZGVzYy10eHQtY29sb3JfbW9iLCB2YXIoLS1mb290ZXItbGluay10aXRsZS1jb2wpKTsgfSAuYnVzaW5lc3NEZXNjIHsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1idXNpbmVzcy1kZXNjLWJnLWNvbG9yX21vYiwgdmFyKC0tZm9vdGVyLWJnLWNvbG9yKSk7IGNvbG9yOnZhcigtLWJ1c2luZXNzLWRlc2MtdHh0LWNvbG9yX21vYiwgdmFyKC0tZm9vdGVyLWxpbmstdGl0bGUtY29sKSk7IH0gLmJ1c2luZXNzRGVzYyAqIHsgbGluZS1oZWlnaHQ6MS41cmVtOyB9IC53cmFwcGVyIHsgbWFyZ2luOjAgYXV0bzsgd2lkdGg6OTYwcHg7IHBvc2l0aW9uOnJlbGF0aXZlOyB9IC5sYW5ndWFnZUJhciB7IG1hcmdpbjoxcmVtIGF1dG8gNXB4OyBoZWlnaHQ6MjhweDsgcGFkZGluZzowIHZhcigtLXMpOyB9IC52LWNhcmQudG9wX2JnIHsgZGlzcGxheTpmbGV4OyBqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjsgYWxpZ24taXRlbXM6Y2VudGVyOyBtYXJnaW4tdG9wOjEwcHg7IG1pbi1oZWlnaHQ6OHJlbTsgcGFkZGluZzowIHZhcigtLXMpOyB9IC5oZWFkZXItc2VjdGlvbiB7IGRpc3BsYXk6ZmxleDsgdmVydGljYWwtYWxpZ246bWlkZGxlOyBhbGlnbi1jb250ZW50OnNwYWNlLWJldHdlZW47IGFsaWduLWl0ZW1zOmNlbnRlcjsgfSAjdHJhZGVJbkJhck1vYmlsZXsgYmFja2dyb3VuZC1jb2xvcjpibGFjazsgY29sb3I6IHdoaXRlOyBib3JkZXItcmFkaXVzOjVweDsgZGlzcGxheTpibG9jazsgbWFyZ2luOjNweCA1cHggNXB4IDVweDsgfSAjdHJhZGVJbkJhck1vYmlsZSAubWlkZGxleyBjb2xvcjojZmZmZmZmOyB9ICN0cmFkZUluQmFyTW9iaWxlICNkZWZhdWx0VG9wQmFubmVyVGl0bGV7IHBhZGRpbmc6NXB4IDIwcHggMHB4IDIwcHg7IH0gI3RyYWRlSW5CYXJNb2JpbGUgLmRlZmF1bHRUb3BCYW5uZXJCdG5XcmFwcGVyIGRpdnsgbWF4LXdpZHRoOjMzMHB4OyBtYXJnaW46MTBweCBhdXRvOyBwYWRkaW5nOjEycHggMDsgYm9yZGVyLXJhZGl1czoycHg7IGJhY2tncm91bmQtY29sb3I6dmFyKC0tcHJvbW8tYnRuLWJnLWNvbG9yKTsgfSAjdHJhZGVJbkJhck1vYmlsZSAuZGVmYXVsdFRvcEJhbm5lckJ0bldyYXBwZXIgYXsgdGV4dC1hbGlnbjpjZW50ZXI7IG1hcmdpbjowIGF1dG87IGZvbnQtd2VpZ2h0OjcwMDsgfSAjdHJhZGVJbkJhck1vYmlsZSAjZGVmYXVsdFRvcEJhbm5lckxvZ28gc3BhbnsgZm9udC1zaXplOjAuOHJlbTsgZm9udC13ZWlnaHQ6MzAwOyBjb2xvcjp2YXIoLS1taWQtZ3JheSk7IH0gI3RyYWRlSW5CYXJ7IGJhY2tncm91bmQtY29sb3I6dmFyKC0tdHJhZGVpbmJhci1iZyk7IGNvbG9yOiB2YXIoLS10cmFkZWluYmFyLWNvbG9yKTsgfSAjdHJhZGVJbkJhcldNb2JpbGUsICN0cmFkZUluQmFyVyB7IGRpc3BsYXk6ZmxleDsgbWluLWhlaWdodDo1MHB4OyBtYXJnaW46YXV0bzsgd2lkdGg6bWluKDEwMCUsMTM1MHB4KTsgcG9zaXRpb246cmVsYXRpdmU7IGp1c3RpZnktY29udGVudDpjZW50ZXI7IH0gLmxhbmd1YWdlQmFyIC5zZXJ2aWNlLWhlYWRlci1mb3JtID4gYXsgcGFkZGluZzo0cHggMTJweDsgaGVpZ2h0OjE4cHg7IGxpbmUtaGVpZ2h0OjE4cHg7IGJvcmRlci1yYWRpdXM6MDsgZm9udC13ZWlnaHQ6bm9ybWFsOyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWhlYWRlci1zZXJ2aWNlLWFwcG9pbnRtZW50LXRleHQtY29sb3ItYmcsIHZhcigtLWxhbmd1YWdlLWJ0bi1hY3RpdmUtYmctY29sb3IpKTsgY29sb3I6dmFyKC0taGVhZGVyLXNlcnZpY2UtYXBwb2ludG1lbnQtdGV4dC1jb2xvciwgd2hpdGUgKTsgfSAubGFuZ3VhZ2VCYXIgLnNlcnZpY2UtaGVhZGVyLWZvcm0gYTpob3ZlciB7IGJvcmRlci1jb2xvcjp2YXIoLS1oZWFkZXItc2VydmljZS1hcHBvaW50bWVudC10ZXh0LWNvbG9yLWJnLCB2YXIoLS1sYW5ndWFnZS1idG4tYWN0aXZlLWJnLWNvbG9yKSk7IH0gI2FsZXJ0TXNnQ29udGFpbmVyeyBwb3NpdGlvbjpyZWxhdGl2ZTsgYmFja2dyb3VuZC1jb2xvcjojMDAwOyB6LWluZGV4Ojk5OTsgd2lkdGg6MTAwJTsgY29sb3I6d2hpdGU7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgY29sb3I6dmFyKC0tYWRtaW4tZ2VuZXJhbC1hbGVydC1iYXItdGV4dC1jb2xvcik7IGZvbnQtd2VpZ2h0OjYwMDsgfSAjYWxlcnRNc2dDb250YWluZXIuc3RpY2stdG9weyBwb3NpdGlvbjpzdGlja3k7IHRvcDowOyB6LWluZGV4Ojk5OTk5OyB9IC5mYS1maXgtY2VudGVyOmJlZm9yZSB7IHdpZHRoOjEuNWVtOyBoZWlnaHQ6MS41ZW07IGp1c3RpZnktY29udGVudDpjZW50ZXI7IGFsaWduLWl0ZW1zOmNlbnRlcjsgZGlzcGxheTpmbGV4OyB9ICN5b3V0dWJlX19jb250YWluZXIuZnVsbHNjcmVlbnsgb2JqZWN0LWZpdDpjb3ZlcjsgcG9zaXRpb246cmVsYXRpdmU7IGxlZnQ6MDsgcmlnaHQ6MDsgdG9wOjA7IG9wYWNpdHk6MC44OyB9IC5tYWluRGl2QWRqdXN0SGVhZGVyIHsgcG9zaXRpb246YWJzb2x1dGU7IGJhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7IHRyYW5zaXRpb246YmFja2dyb3VuZC1jb2xvciAuM3MsIGJvcmRlciAuM3M7IHRvcDowOyBsZWZ0OjA7IHJpZ2h0OjA7IGJvdHRvbTowOyB9IC5tYWluRGl2QWRqdXN0SGVhZGVyLndpdGgtYWxlcnQgeyB0b3A6NDBweDsgfSAucGF5bWVudEJsb2NrQ29udGFpbmVyIHsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jZXJ0LWNvbmNyZXRlLWdyYXksIHZhcigtLWxpZ2h0LWdyYXkpKTsgY29sb3I6dmFyKC0tZGFyay1ncmF5KTsgfSAudmVoaWNsZUxvY2F0aW9ueyBib3JkZXItdG9wOjFweCBzb2xpZCAjZGRkOyB0ZXh0LWFsaWduOmNlbnRlcjsgfSAubGluZVNlcGFyYXRvcnsgYm9yZGVyLXRvcDoxcHggc29saWQgI0E5QTlBOTsgbWFyZ2luLXRvcDo0MHB4OyBtYXJnaW4tYm90dG9tOjQwcHg7IH0gLnJldmVhbC1tb2RhbCBzcGFuLmZhLWhhbmQtcG9pbnRlci1jb2xvciB7IGNvbG9yOiNmZmZmZmY7IG1hcmdpbi1yaWdodDo1cHg7IG1hcmdpbi10b3A6NXB4OyB9IC5jb25mbGljdC1yZXNvbHZlLW9wdGlvbnMgeyBmb250LXNpemU6MC44MTNyZW0gOyB9Ci8qKiAvY3NzL2ZvbnRhd2Vzb21lLWFsbC5taW4uY3NzICoqLwouZmEsLmZhcywuZmFyLC5mYWwsLmZhZCwuZmFiey1tb3otb3N4LWZvbnQtc21vb3RoaW5nOmdyYXlzY2FsZTstd2Via2l0LWZvbnQtc21vb3RoaW5nOmFudGlhbGlhc2VkO2Rpc3BsYXk6aW5saW5lLWJsb2NrO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtdmFyaWFudDpub3JtYWw7dGV4dC1yZW5kZXJpbmc6YXV0bztsaW5lLWhlaWdodDoxfS5mYS1sZ3tmb250LXNpemU6MS4zMzMzM2VtO2xpbmUtaGVpZ2h0Oi43NWVtO3ZlcnRpY2FsLWFsaWduOi0uMDY2N2VtfS5mYS14c3tmb250LXNpemU6Ljc1ZW19LmZhLXNte2ZvbnQtc2l6ZTouODc1ZW19LmZhLTF4e2ZvbnQtc2l6ZToxZW19LmZhLTJ4e2ZvbnQtc2l6ZToyZW19LmZhLTN4e2ZvbnQtc2l6ZTozZW19LmZhLTR4e2ZvbnQtc2l6ZTo0ZW19LmZhLTV4e2ZvbnQtc2l6ZTo1ZW19LmZhLTZ4e2ZvbnQtc2l6ZTo2ZW19LmZhLTd4e2ZvbnQtc2l6ZTo3ZW19LmZhLTh4e2ZvbnQtc2l6ZTo4ZW19LmZhLTl4e2ZvbnQtc2l6ZTo5ZW19LmZhLTEweHtmb250LXNpemU6MTBlbX0uZmEtZnd7dGV4dC1hbGlnbjpjZW50ZXI7d2lkdGg6MS4yNWVtfS5mYS11bHtsaXN0LXN0eWxlLXR5cGU6bm9uZTttYXJnaW4tbGVmdDoyLjVlbTtwYWRkaW5nLWxlZnQ6MH0uZmEtdWwgPiBsaXtwb3NpdGlvbjpyZWxhdGl2ZX0uZmEtbGl7bGVmdDotMmVtO3Bvc2l0aW9uOmFic29sdXRlO3RleHQtYWxpZ246Y2VudGVyO3dpZHRoOjJlbTtsaW5lLWhlaWdodDppbmhlcml0fS5mYS1ib3JkZXJ7Ym9yZGVyOnNvbGlkIC4wOGVtICNlZWU7Ym9yZGVyLXJhZGl1czouMWVtO3BhZGRpbmc6LjJlbSAuMjVlbSAuMTVlbX0uZmEtcHVsbC1sZWZ0e2Zsb2F0OmxlZnR9LmZhLXB1bGwtcmlnaHR7ZmxvYXQ6cmlnaHR9LmZhLmZhLXB1bGwtbGVmdCwuZmFzLmZhLXB1bGwtbGVmdCwuZmFyLmZhLXB1bGwtbGVmdCwuZmFsLmZhLXB1bGwtbGVmdCwuZmFiLmZhLXB1bGwtbGVmdHttYXJnaW4tcmlnaHQ6LjNlbX0uZmEuZmEtcHVsbC1yaWdodCwuZmFzLmZhLXB1bGwtcmlnaHQsLmZhci5mYS1wdWxsLXJpZ2h0LC5mYWwuZmEtcHVsbC1yaWdodCwuZmFiLmZhLXB1bGwtcmlnaHR7bWFyZ2luLWxlZnQ6LjNlbX0uZmEtc3Bpbnstd2Via2l0LWFuaW1hdGlvbjpmYS1zcGluIDJzIGluZmluaXRlIGxpbmVhcjthbmltYXRpb246ZmEtc3BpbiAycyBpbmZpbml0ZSBsaW5lYXJ9LmZhLXB1bHNley13ZWJraXQtYW5pbWF0aW9uOmZhLXNwaW4gMXMgaW5maW5pdGUgc3RlcHMoOCk7YW5pbWF0aW9uOmZhLXNwaW4gMXMgaW5maW5pdGUgc3RlcHMoOCl9QC13ZWJraXQta2V5ZnJhbWVzIGZhLXNwaW57MCV7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDBkZWcpO3RyYW5zZm9ybTpyb3RhdGUoMGRlZyl9MTAwJXstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMzYwZGVnKTt0cmFuc2Zvcm06cm90YXRlKDM2MGRlZyl9fUBrZXlmcmFtZXMgZmEtc3BpbnswJXstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMGRlZyk7dHJhbnNmb3JtOnJvdGF0ZSgwZGVnKX0xMDAley13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgzNjBkZWcpO3RyYW5zZm9ybTpyb3RhdGUoMzYwZGVnKX19LmZhLXJvdGF0ZS05MHstbXMtZmlsdGVyOnByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5CYXNpY0ltYWdlKHJvdGF0aW9uPTEpOy13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSg5MGRlZyk7dHJhbnNmb3JtOnJvdGF0ZSg5MGRlZyl9LmZhLXJvdGF0ZS0xODB7LW1zLWZpbHRlcjpwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuQmFzaWNJbWFnZShyb3RhdGlvbj0yKTstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMTgwZGVnKTt0cmFuc2Zvcm06cm90YXRlKDE4MGRlZyl9LmZhLXJvdGF0ZS0yNzB7LW1zLWZpbHRlcjpwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuQmFzaWNJbWFnZShyb3RhdGlvbj0zKTstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMjcwZGVnKTt0cmFuc2Zvcm06cm90YXRlKDI3MGRlZyl9LmZhLWZsaXAtaG9yaXpvbnRhbHstbXMtZmlsdGVyOiJwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuQmFzaWNJbWFnZShyb3RhdGlvbj0wLG1pcnJvcj0xKSI7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoLTEsMSk7dHJhbnNmb3JtOnNjYWxlKC0xLDEpfS5mYS1mbGlwLXZlcnRpY2Fsey1tcy1maWx0ZXI6InByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5CYXNpY0ltYWdlKHJvdGF0aW9uPTIsbWlycm9yPTEpIjstd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgxLC0xKTt0cmFuc2Zvcm06c2NhbGUoMSwtMSl9LmZhLWZsaXAtYm90aCwuZmEtZmxpcC1ob3Jpem9udGFsLmZhLWZsaXAtdmVydGljYWx7LW1zLWZpbHRlcjoicHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LkJhc2ljSW1hZ2Uocm90YXRpb249MixtaXJyb3I9MSkiOy13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKC0xLC0xKTt0cmFuc2Zvcm06c2NhbGUoLTEsLTEpfTpyb290IC5mYS1yb3RhdGUtOTAsOnJvb3QgLmZhLXJvdGF0ZS0xODAsOnJvb3QgLmZhLXJvdGF0ZS0yNzAsOnJvb3QgLmZhLWZsaXAtaG9yaXpvbnRhbCw6cm9vdCAuZmEtZmxpcC12ZXJ0aWNhbCw6cm9vdCAuZmEtZmxpcC1ib3Roey13ZWJraXQtZmlsdGVyOm5vbmU7ZmlsdGVyOm5vbmV9LmZhLXN0YWNre2Rpc3BsYXk6aW5saW5lLWJsb2NrO2hlaWdodDoyZW07bGluZS1oZWlnaHQ6MmVtO3Bvc2l0aW9uOnJlbGF0aXZlO3ZlcnRpY2FsLWFsaWduOm1pZGRsZTt3aWR0aDoyLjVlbX0uZmEtc3RhY2stMXgsLmZhLXN0YWNrLTJ4e2xlZnQ6MDtwb3NpdGlvbjphYnNvbHV0ZTt0ZXh0LWFsaWduOmNlbnRlcjt3aWR0aDoxMDAlfS5mYS1zdGFjay0xeHtsaW5lLWhlaWdodDppbmhlcml0fS5mYS1zdGFjay0yeHtmb250LXNpemU6MmVtfS5mYS1pbnZlcnNle2NvbG9yOiNmZmZ9LmZhLTUwMHB4OmJlZm9yZXtjb250ZW50OiJcZjI2ZSJ9LmZhLWFjY2Vzc2libGUtaWNvbjpiZWZvcmV7Y29udGVudDoiXGYzNjgifS5mYS1hZGRyZXNzLWJvb2s6YmVmb3Jle2NvbnRlbnQ6IlxmMmI5In0uZmEtYWRkcmVzcy1jYXJkOmJlZm9yZXtjb250ZW50OiJcZjJiYiJ9LmZhLWFpci1mcmVzaGVuZXI6YmVmb3Jle2NvbnRlbnQ6IlxmNWQwIn0uZmEtYWxhcm0tY2xvY2s6YmVmb3Jle2NvbnRlbnQ6IlxmMzRlIn0uZmEtYW1idWxhbmNlOmJlZm9yZXtjb250ZW50OiJcZjBmOSJ9LmZhLWFuZHJvaWQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTdiIn0uZmEtYW5nbGUtZG91YmxlLWRvd246YmVmb3Jle2NvbnRlbnQ6IlxmMTAzIn0uZmEtYW5nbGUtZG91YmxlLWxlZnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTAwIn0uZmEtYW5nbGUtZG91YmxlLXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZjEwMSJ9LmZhLWFuZ2xlLWRvdWJsZS11cDpiZWZvcmV7Y29udGVudDoiXGYxMDIifS5mYS1hbmdsZS1kb3duOmJlZm9yZXtjb250ZW50OiJcZjEwNyJ9LmZhLWFuZ2xlLWxlZnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTA0In0uZmEtYW5nbGUtcmlnaHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTA1In0uZmEtYW5nbGUtdXA6YmVmb3Jle2NvbnRlbnQ6IlxmMTA2In0uZmEtYXBwbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMTc5In0uZmEtYXJjaGl2ZTpiZWZvcmV7Y29udGVudDoiXGYxODcifS5mYS1hcnJvdy1hbHQtY2lyY2xlLWRvd246YmVmb3Jle2NvbnRlbnQ6IlxmMzU4In0uZmEtYXJyb3ctYWx0LWNpcmNsZS1sZWZ0OmJlZm9yZXtjb250ZW50OiJcZjM1OSJ9LmZhLWFycm93LWFsdC1jaXJjbGUtcmlnaHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzVhIn0uZmEtYXJyb3ctYWx0LWNpcmNsZS11cDpiZWZvcmV7Y29udGVudDoiXGYzNWIifS5mYS1hcnJvdy1hbHQtZG93bjpiZWZvcmV7Y29udGVudDoiXGYzNTQifS5mYS1hcnJvdy1hbHQtZnJvbS1ib3R0b206YmVmb3Jle2NvbnRlbnQ6IlxmMzQ2In0uZmEtYXJyb3ctYWx0LWZyb20tbGVmdDpiZWZvcmV7Y29udGVudDoiXGYzNDcifS5mYS1hcnJvdy1hbHQtZnJvbS1yaWdodDpiZWZvcmV7Y29udGVudDoiXGYzNDgifS5mYS1hcnJvdy1hbHQtZnJvbS10b3A6YmVmb3Jle2NvbnRlbnQ6IlxmMzQ5In0uZmEtYXJyb3ctYWx0LWxlZnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzU1In0uZmEtYXJyb3ctYWx0LXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZjM1NiJ9LmZhLWFycm93LWFsdC1zcXVhcmUtZG93bjpiZWZvcmV7Y29udGVudDoiXGYzNTAifS5mYS1hcnJvdy1hbHQtc3F1YXJlLWxlZnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzUxIn0uZmEtYXJyb3ctYWx0LXNxdWFyZS1yaWdodDpiZWZvcmV7Y29udGVudDoiXGYzNTIifS5mYS1hcnJvdy1hbHQtc3F1YXJlLXVwOmJlZm9yZXtjb250ZW50OiJcZjM1MyJ9LmZhLWFycm93LWFsdC10by1ib3R0b206YmVmb3Jle2NvbnRlbnQ6IlxmMzRhIn0uZmEtYXJyb3ctYWx0LXRvLWxlZnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzRiIn0uZmEtYXJyb3ctYWx0LXRvLXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZjM0YyJ9LmZhLWFycm93LWFsdC10by10b3A6YmVmb3Jle2NvbnRlbnQ6IlxmMzRkIn0uZmEtYXJyb3ctYWx0LXVwOmJlZm9yZXtjb250ZW50OiJcZjM1NyJ9LmZhLWFycm93LWNpcmNsZS1kb3duOmJlZm9yZXtjb250ZW50OiJcZjBhYiJ9LmZhLWFycm93LWNpcmNsZS1sZWZ0OmJlZm9yZXtjb250ZW50OiJcZjBhOCJ9LmZhLWFycm93LWNpcmNsZS1yaWdodDpiZWZvcmV7Y29udGVudDoiXGYwYTkifS5mYS1hcnJvdy1jaXJjbGUtdXA6YmVmb3Jle2NvbnRlbnQ6IlxmMGFhIn0uZmEtYXJyb3ctZG93bjpiZWZvcmV7Y29udGVudDoiXGYwNjMifS5mYS1hcnJvdy1mcm9tLWJvdHRvbTpiZWZvcmV7Y29udGVudDoiXGYzNDIifS5mYS1hcnJvdy1mcm9tLWxlZnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzQzIn0uZmEtYXJyb3ctZnJvbS1yaWdodDpiZWZvcmV7Y29udGVudDoiXGYzNDQifS5mYS1hcnJvdy1mcm9tLXRvcDpiZWZvcmV7Y29udGVudDoiXGYzNDUifS5mYS1hcnJvdy1sZWZ0OmJlZm9yZXtjb250ZW50OiJcZjA2MCJ9LmZhLWFycm93LXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZjA2MSJ9LmZhLWFycm93LXNxdWFyZS1kb3duOmJlZm9yZXtjb250ZW50OiJcZjMzOSJ9LmZhLWFycm93LXNxdWFyZS1sZWZ0OmJlZm9yZXtjb250ZW50OiJcZjMzYSJ9LmZhLWFycm93LXNxdWFyZS1yaWdodDpiZWZvcmV7Y29udGVudDoiXGYzM2IifS5mYS1hcnJvdy1zcXVhcmUtdXA6YmVmb3Jle2NvbnRlbnQ6IlxmMzNjIn0uZmEtYXJyb3ctdG8tYm90dG9tOmJlZm9yZXtjb250ZW50OiJcZjMzZCJ9LmZhLWFycm93LXRvLWxlZnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzNlIn0uZmEtYXJyb3ctdG8tcmlnaHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzQwIn0uZmEtYXJyb3ctdG8tdG9wOmJlZm9yZXtjb250ZW50OiJcZjM0MSJ9LmZhLWFycm93LXVwOmJlZm9yZXtjb250ZW50OiJcZjA2MiJ9LmZhLWFycm93czpiZWZvcmV7Y29udGVudDoiXGYwNDcifS5mYS1hcnJvd3MtYWx0OmJlZm9yZXtjb250ZW50OiJcZjBiMiJ9LmZhLWFycm93cy1hbHQtaDpiZWZvcmV7Y29udGVudDoiXGYzMzcifS5mYS1hcnJvd3MtYWx0LXY6YmVmb3Jle2NvbnRlbnQ6IlxmMzM4In0uZmEtYXJyb3dzLWg6YmVmb3Jle2NvbnRlbnQ6IlxmMDdlIn0uZmEtYXJyb3dzLXY6YmVmb3Jle2NvbnRlbnQ6IlxmMDdkIn0uZmEtYXNzaXN0aXZlLWxpc3RlbmluZy1zeXN0ZW1zOmJlZm9yZXtjb250ZW50OiJcZjJhMiJ9LmZhLWF0OmJlZm9yZXtjb250ZW50OiJcZjFmYSJ9LmZhLWF1ZGlvLWRlc2NyaXB0aW9uOmJlZm9yZXtjb250ZW50OiJcZjI5ZSJ9LmZhLWF3YXJkOmJlZm9yZXtjb250ZW50OiJcZjU1OSJ9LmZhLWJhZGdlOmJlZm9yZXtjb250ZW50OiJcZjMzNSJ9LmZhLWJhZGdlLWNoZWNrOmJlZm9yZXtjb250ZW50OiJcZjMzNiJ9LmZhLWJhbjpiZWZvcmV7Y29udGVudDoiXGYwNWUifS5mYS1iYXJjb2RlOmJlZm9yZXtjb250ZW50OiJcZjAyYSJ9LmZhLWJhcmNvZGUtYWx0OmJlZm9yZXtjb250ZW50OiJcZjQ2MyJ9LmZhLWJhcnM6YmVmb3Jle2NvbnRlbnQ6IlxmMGM5In0uZmEtYmF0dGVyeS1mdWxsOmJlZm9yZXtjb250ZW50OiJcZjI0MCJ9LmZhLWJhdHRlcnktaGFsZjpiZWZvcmV7Y29udGVudDoiXGYyNDIifS5mYS1iZWxsOmJlZm9yZXtjb250ZW50OiJcZjBmMyJ9LmZhLWJlbGwtZXhjbGFtYXRpb246YmVmb3Jle2NvbnRlbnQ6IlxmODQ4In0uZmEtYmVsbC1wbHVzOmJlZm9yZXtjb250ZW50OiJcZjg0OSJ9LmZhLWJlbGwtc2xhc2g6YmVmb3Jle2NvbnRlbnQ6IlxmMWY2In0uZmEtYmxvZzpiZWZvcmV7Y29udGVudDoiXGY3ODEifS5mYS1ibG9nZ2VyOmJlZm9yZXtjb250ZW50OiJcZjM3YyJ9LmZhLWJsb2dnZXItYjpiZWZvcmV7Y29udGVudDoiXGYzN2QifS5mYS1ibHVldG9vdGg6YmVmb3Jle2NvbnRlbnQ6IlxmMjkzIn0uZmEtYmx1ZXRvb3RoLWI6YmVmb3Jle2NvbnRlbnQ6IlxmMjk0In0uZmEtYm9sdDpiZWZvcmV7Y29udGVudDoiXGYwZTcifS5mYS1ib29rbWFyazpiZWZvcmV7Y29udGVudDoiXGYwMmUifS5mYS1ib3gtb3BlbjpiZWZvcmV7Y29udGVudDoiXGY0OWUifS5mYS1icm9hZGNhc3QtdG93ZXI6YmVmb3Jle2NvbnRlbnQ6IlxmNTE5In0uZmEtYnRjOmJlZm9yZXtjb250ZW50OiJcZjE1YSJ9LmZhLWJ1ZzpiZWZvcmV7Y29udGVudDoiXGYxODgifS5mYS1idWlsZGluZzpiZWZvcmV7Y29udGVudDoiXGYxYWQifS5mYS1idWxsaG9ybjpiZWZvcmV7Y29udGVudDoiXGYwYTEifS5mYS1idWxsc2V5ZTpiZWZvcmV7Y29udGVudDoiXGYxNDAifS5mYS1idXM6YmVmb3Jle2NvbnRlbnQ6IlxmMjA3In0uZmEtYnVzLWFsdDpiZWZvcmV7Y29udGVudDoiXGY1NWUifS5mYS1idXMtc2Nob29sOmJlZm9yZXtjb250ZW50OiJcZjVkZCJ9LmZhLWNhbGN1bGF0b3I6YmVmb3Jle2NvbnRlbnQ6IlxmMWVjIn0uZmEtY2FsY3VsYXRvci1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmNjRjIn0uZmEtY2FsZW5kYXI6YmVmb3Jle2NvbnRlbnQ6IlxmMTMzIn0uZmEtY2FsZW5kYXItYWx0OmJlZm9yZXtjb250ZW50OiJcZjA3MyJ9LmZhLWNhbGVuZGFyLWNoZWNrOmJlZm9yZXtjb250ZW50OiJcZjI3NCJ9LmZhLWNhbGVuZGFyLWVkaXQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzMzIn0uZmEtY2FsZW5kYXItZXhjbGFtYXRpb246YmVmb3Jle2NvbnRlbnQ6IlxmMzM0In0uZmEtY2FsZW5kYXItbWludXM6YmVmb3Jle2NvbnRlbnQ6IlxmMjcyIn0uZmEtY2FsZW5kYXItdGltZXM6YmVmb3Jle2NvbnRlbnQ6IlxmMjczIn0uZmEtY2FtZXJhOmJlZm9yZXtjb250ZW50OiJcZjAzMCJ9LmZhLWNhbWVyYS1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzMyIn0uZmEtY2FtZXJhLWhvbWU6YmVmb3Jle2NvbnRlbnQ6IlxmOGZlIn0uZmEtY2FyOmJlZm9yZXtjb250ZW50OiJcZjFiOSJ9LmZhLWNhci1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmNWRlIn0uZmEtY2FyLWJhdHRlcnk6YmVmb3Jle2NvbnRlbnQ6IlxmNWRmIn0uZmEtY2FyLWJ1aWxkaW5nOmJlZm9yZXtjb250ZW50OiJcZjg1OSJ9LmZhLWNhci1idW1wOmJlZm9yZXtjb250ZW50OiJcZjVlMCJ9LmZhLWNhci1idXM6YmVmb3Jle2NvbnRlbnQ6IlxmODVhIn0uZmEtY2FyLWNyYXNoOmJlZm9yZXtjb250ZW50OiJcZjVlMSJ9LmZhLWNhci1nYXJhZ2U6YmVmb3Jle2NvbnRlbnQ6IlxmNWUyIn0uZmEtY2FyLW1lY2hhbmljOmJlZm9yZXtjb250ZW50OiJcZjVlMyJ9LmZhLWNhci1zaWRlOmJlZm9yZXtjb250ZW50OiJcZjVlNCJ9LmZhLWNhci10aWx0OmJlZm9yZXtjb250ZW50OiJcZjVlNSJ9LmZhLWNhci13YXNoOmJlZm9yZXtjb250ZW50OiJcZjVlNiJ9LmZhLWNhcmF2YW46YmVmb3Jle2NvbnRlbnQ6IlxmOGZmIn0uZmEtY2FyYXZhbi1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxlMDAwIn0uZmEtY2FyZXQtY2lyY2xlLWRvd246YmVmb3Jle2NvbnRlbnQ6IlxmMzJkIn0uZmEtY2FyZXQtY2lyY2xlLWxlZnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzJlIn0uZmEtY2FyZXQtY2lyY2xlLXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZjMzMCJ9LmZhLWNhcmV0LWNpcmNsZS11cDpiZWZvcmV7Y29udGVudDoiXGYzMzEifS5mYS1jYXJldC1kb3duOmJlZm9yZXtjb250ZW50OiJcZjBkNyJ9LmZhLWNhcmV0LWxlZnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMGQ5In0uZmEtY2FyZXQtcmlnaHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMGRhIn0uZmEtY2FyZXQtc3F1YXJlLWRvd246YmVmb3Jle2NvbnRlbnQ6IlxmMTUwIn0uZmEtY2FyZXQtc3F1YXJlLWxlZnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTkxIn0uZmEtY2FyZXQtc3F1YXJlLXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZjE1MiJ9LmZhLWNhcmV0LXNxdWFyZS11cDpiZWZvcmV7Y29udGVudDoiXGYxNTEifS5mYS1jYXJldC11cDpiZWZvcmV7Y29udGVudDoiXGYwZDgifS5mYS1jYXJzOmJlZm9yZXtjb250ZW50OiJcZjg1YiJ9LmZhLWNhcnQtYXJyb3ctZG93bjpiZWZvcmV7Y29udGVudDoiXGYyMTgifS5mYS1jYXJ0LXBsdXM6YmVmb3Jle2NvbnRlbnQ6IlxmMjE3In0uZmEtY2MtcGF5cGFsOmJlZm9yZXtjb250ZW50OiJcZjFmNCJ9LmZhLWNlcnRpZmljYXRlOmJlZm9yZXtjb250ZW50OiJcZjBhMyJ9LmZhLWNoYWlyOmJlZm9yZXtjb250ZW50OiJcZjZjMCJ9LmZhLWNoYWxrYm9hcmQ6YmVmb3Jle2NvbnRlbnQ6IlxmNTFiIn0uZmEtY2hhcmdpbmctc3RhdGlvbjpiZWZvcmV7Y29udGVudDoiXGY1ZTcifS5mYS1jaGFydC1saW5lOmJlZm9yZXtjb250ZW50OiJcZjIwMSJ9LmZhLWNoYXJ0LWxpbmUtZG93bjpiZWZvcmV7Y29udGVudDoiXGY2NGQifS5mYS1jaGVjazpiZWZvcmV7Y29udGVudDoiXGYwMGMifS5mYS1jaGVjay1jaXJjbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMDU4In0uZmEtY2hlY2stZG91YmxlOmJlZm9yZXtjb250ZW50OiJcZjU2MCJ9LmZhLWNoZWNrLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYxNGEifS5mYS1jaGV2cm9uLWNpcmNsZS1kb3duOmJlZm9yZXtjb250ZW50OiJcZjEzYSJ9LmZhLWNoZXZyb24tY2lyY2xlLWxlZnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTM3In0uZmEtY2hldnJvbi1jaXJjbGUtcmlnaHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTM4In0uZmEtY2hldnJvbi1jaXJjbGUtdXA6YmVmb3Jle2NvbnRlbnQ6IlxmMTM5In0uZmEtY2hldnJvbi1kb3VibGUtZG93bjpiZWZvcmV7Y29udGVudDoiXGYzMjIifS5mYS1jaGV2cm9uLWRvdWJsZS1sZWZ0OmJlZm9yZXtjb250ZW50OiJcZjMyMyJ9LmZhLWNoZXZyb24tZG91YmxlLXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZjMyNCJ9LmZhLWNoZXZyb24tZG91YmxlLXVwOmJlZm9yZXtjb250ZW50OiJcZjMyNSJ9LmZhLWNoZXZyb24tZG93bjpiZWZvcmV7Y29udGVudDoiXGYwNzgifS5mYS1jaGV2cm9uLWxlZnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDUzIn0uZmEtY2hldnJvbi1yaWdodDpiZWZvcmV7Y29udGVudDoiXGYwNTQifS5mYS1jaGV2cm9uLXNxdWFyZS1kb3duOmJlZm9yZXtjb250ZW50OiJcZjMyOSJ9LmZhLWNoZXZyb24tc3F1YXJlLWxlZnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzJhIn0uZmEtY2hldnJvbi1zcXVhcmUtcmlnaHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzJiIn0uZmEtY2hldnJvbi1zcXVhcmUtdXA6YmVmb3Jle2NvbnRlbnQ6IlxmMzJjIn0uZmEtY2hldnJvbi11cDpiZWZvcmV7Y29udGVudDoiXGYwNzcifS5mYS1jaXJjbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMTExIn0uZmEtY2lyY2xlLW5vdGNoOmJlZm9yZXtjb250ZW50OiJcZjFjZSJ9LmZhLWNpdHk6YmVmb3Jle2NvbnRlbnQ6IlxmNjRmIn0uZmEtY2xpcGJvYXJkOmJlZm9yZXtjb250ZW50OiJcZjMyOCJ9LmZhLWNsb2NrOmJlZm9yZXtjb250ZW50OiJcZjAxNyJ9LmZhLWNsb25lOmJlZm9yZXtjb250ZW50OiJcZjI0ZCJ9LmZhLWNsb3NlZC1jYXB0aW9uaW5nOmJlZm9yZXtjb250ZW50OiJcZjIwYSJ9LmZhLWNsb3VkOmJlZm9yZXtjb250ZW50OiJcZjBjMiJ9LmZhLWNsb3VkLWRvd25sb2FkOmJlZm9yZXtjb250ZW50OiJcZjBlZCJ9LmZhLWNsb3VkLWRvd25sb2FkLWFsdDpiZWZvcmV7Y29udGVudDoiXGYzODEifS5mYS1jbG91ZC11cGxvYWQ6YmVmb3Jle2NvbnRlbnQ6IlxmMGVlIn0uZmEtY2xvdWQtdXBsb2FkLWFsdDpiZWZvcmV7Y29udGVudDoiXGYzODIifS5mYS1jbHViOmJlZm9yZXtjb250ZW50OiJcZjMyNyJ9LmZhLWNvZmZlZTpiZWZvcmV7Y29udGVudDoiXGYwZjQifS5mYS1jb2c6YmVmb3Jle2NvbnRlbnQ6IlxmMDEzIn0uZmEtY29nczpiZWZvcmV7Y29udGVudDoiXGYwODUifS5mYS1jb21tZW50OmJlZm9yZXtjb250ZW50OiJcZjA3NSJ9LmZhLWNvbW1lbnQtYWx0OmJlZm9yZXtjb250ZW50OiJcZjI3YSJ9LmZhLWNvbW1lbnQtYWx0LWNoZWNrOmJlZm9yZXtjb250ZW50OiJcZjRhMiJ9LmZhLWNvbW1lbnQtYWx0LWRvbGxhcjpiZWZvcmV7Y29udGVudDoiXGY2NTAifS5mYS1jb21tZW50LWRvbGxhcjpiZWZvcmV7Y29udGVudDoiXGY2NTEifS5mYS1jb21tZW50czpiZWZvcmV7Y29udGVudDoiXGYwODYifS5mYS1jb21tZW50cy1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmNGI2In0uZmEtY29tbWVudHMtYWx0LWRvbGxhcjpiZWZvcmV7Y29udGVudDoiXGY2NTIifS5mYS1jb21tZW50cy1kb2xsYXI6YmVmb3Jle2NvbnRlbnQ6IlxmNjUzIn0uZmEtY29tcHJlc3MtYWx0OmJlZm9yZXtjb250ZW50OiJcZjQyMiJ9LmZhLWNvbXByZXNzLWFycm93cy1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmNzhjIn0uZmEtY29weTpiZWZvcmV7Y29udGVudDoiXGYwYzUifS5mYS1jb3B5cmlnaHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMWY5In0uZmEtY291Y2g6YmVmb3Jle2NvbnRlbnQ6IlxmNGI4In0uZmEtY3JlYXRpdmUtY29tbW9ucy1zaGFyZTpiZWZvcmV7Y29udGVudDoiXGY0ZjIifS5mYS1jcmVkaXQtY2FyZDpiZWZvcmV7Y29udGVudDoiXGYwOWQifS5mYS1jdXQ6YmVmb3Jle2NvbnRlbnQ6IlxmMGM0In0uZmEtZGF0YWJhc2U6YmVmb3Jle2NvbnRlbnQ6IlxmMWMwIn0uZmEtZGVza3RvcDpiZWZvcmV7Y29udGVudDoiXGYxMDgifS5mYS1kaWFtb25kOmJlZm9yZXtjb250ZW50OiJcZjIxOSJ9LmZhLWRpZ2l0YWwtdGFjaG9ncmFwaDpiZWZvcmV7Y29udGVudDoiXGY1NjYifS5mYS1kb2xsYXItc2lnbjpiZWZvcmV7Y29udGVudDoiXGYxNTUifS5mYS1kb3QtY2lyY2xlOmJlZm9yZXtjb250ZW50OiJcZjE5MiJ9LmZhLWRvd25sb2FkOmJlZm9yZXtjb250ZW50OiJcZjAxOSJ9LmZhLWVkaXQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDQ0In0uZmEtZWxsaXBzaXMtaDpiZWZvcmV7Y29udGVudDoiXGYxNDEifS5mYS1lbGxpcHNpcy1oLWFsdDpiZWZvcmV7Y29udGVudDoiXGYzOWIifS5mYS1lbGxpcHNpcy12OmJlZm9yZXtjb250ZW50OiJcZjE0MiJ9LmZhLWVsbGlwc2lzLXYtYWx0OmJlZm9yZXtjb250ZW50OiJcZjM5YyJ9LmZhLWVuZ2luZS13YXJuaW5nOmJlZm9yZXtjb250ZW50OiJcZjVmMiJ9LmZhLWVudmVsb3BlOmJlZm9yZXtjb250ZW50OiJcZjBlMCJ9LmZhLWVudmVsb3BlLW9wZW46YmVmb3Jle2NvbnRlbnQ6IlxmMmI2In0uZmEtZW52ZWxvcGUtc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjE5OSJ9LmZhLWVyYXNlcjpiZWZvcmV7Y29udGVudDoiXGYxMmQifS5mYS1leGNoYW5nZTpiZWZvcmV7Y29udGVudDoiXGYwZWMifS5mYS1leGNoYW5nZS1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzYyIn0uZmEtZXhjbGFtYXRpb246YmVmb3Jle2NvbnRlbnQ6IlxmMTJhIn0uZmEtZXhjbGFtYXRpb24tY2lyY2xlOmJlZm9yZXtjb250ZW50OiJcZjA2YSJ9LmZhLWV4Y2xhbWF0aW9uLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYzMjEifS5mYS1leGNsYW1hdGlvbi10cmlhbmdsZTpiZWZvcmV7Y29udGVudDoiXGYwNzEifS5mYS1leHBhbmQtYWx0OmJlZm9yZXtjb250ZW50OiJcZjQyNCJ9LmZhLWV4cGFuZC1hcnJvd3M6YmVmb3Jle2NvbnRlbnQ6IlxmMzFkIn0uZmEtZXhwYW5kLWFycm93cy1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzFlIn0uZmEtZXh0ZXJuYWwtbGluazpiZWZvcmV7Y29udGVudDoiXGYwOGUifS5mYS1leHRlcm5hbC1saW5rLWFsdDpiZWZvcmV7Y29udGVudDoiXGYzNWQifS5mYS1leHRlcm5hbC1saW5rLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYxNGMifS5mYS1leHRlcm5hbC1saW5rLXNxdWFyZS1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzYwIn0uZmEtZXllOmJlZm9yZXtjb250ZW50OiJcZjA2ZSJ9LmZhLWV5ZS1zbGFzaDpiZWZvcmV7Y29udGVudDoiXGYwNzAifS5mYS1mYWNlYm9vazpiZWZvcmV7Y29udGVudDoiXGYwOWEifS5mYS1mYWNlYm9vay1mOmJlZm9yZXtjb250ZW50OiJcZjM5ZSJ9LmZhLWZhY2Vib29rLW1lc3NlbmdlcjpiZWZvcmV7Y29udGVudDoiXGYzOWYifS5mYS1mYWNlYm9vay1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMDgyIn0uZmEtZmF4OmJlZm9yZXtjb250ZW50OiJcZjFhYyJ9LmZhLWZpbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMTViIn0uZmEtZmlsZS1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTVjIn0uZmEtZmlsZS1hcmNoaXZlOmJlZm9yZXtjb250ZW50OiJcZjFjNiJ9LmZhLWZpbGUtYXVkaW86YmVmb3Jle2NvbnRlbnQ6IlxmMWM3In0uZmEtZmlsZS1jaGFydC1saW5lOmJlZm9yZXtjb250ZW50OiJcZjY1OSJ9LmZhLWZpbGUtY2hlY2s6YmVmb3Jle2NvbnRlbnQ6IlxmMzE2In0uZmEtZmlsZS1jb2RlOmJlZm9yZXtjb250ZW50OiJcZjFjOSJ9LmZhLWZpbGUtZG93bmxvYWQ6YmVmb3Jle2NvbnRlbnQ6IlxmNTZkIn0uZmEtZmlsZS1lZGl0OmJlZm9yZXtjb250ZW50OiJcZjMxYyJ9LmZhLWZpbGUtZXhjZWw6YmVmb3Jle2NvbnRlbnQ6IlxmMWMzIn0uZmEtZmlsZS1leGNsYW1hdGlvbjpiZWZvcmV7Y29udGVudDoiXGYzMWEifS5mYS1maWxlLWV4cG9ydDpiZWZvcmV7Y29udGVudDoiXGY1NmUifS5mYS1maWxlLWltYWdlOmJlZm9yZXtjb250ZW50OiJcZjFjNSJ9LmZhLWZpbGUtaW1wb3J0OmJlZm9yZXtjb250ZW50OiJcZjU2ZiJ9LmZhLWZpbGUtaW52b2ljZS1kb2xsYXI6YmVmb3Jle2NvbnRlbnQ6IlxmNTcxIn0uZmEtZmlsZS1taW51czpiZWZvcmV7Y29udGVudDoiXGYzMTgifS5mYS1maWxlLW11c2ljOmJlZm9yZXtjb250ZW50OiJcZjhiNiJ9LmZhLWZpbGUtcGRmOmJlZm9yZXtjb250ZW50OiJcZjFjMSJ9LmZhLWZpbGUtcGx1czpiZWZvcmV7Y29udGVudDoiXGYzMTkifS5mYS1maWxlLXBvd2VycG9pbnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMWM0In0uZmEtZmlsZS1zZWFyY2g6YmVmb3Jle2NvbnRlbnQ6IlxmODY1In0uZmEtZmlsZS10aW1lczpiZWZvcmV7Y29udGVudDoiXGYzMTcifS5mYS1maWxlLXVwbG9hZDpiZWZvcmV7Y29udGVudDoiXGY1NzQifS5mYS1maWxlLXZpZGVvOmJlZm9yZXtjb250ZW50OiJcZjFjOCJ9LmZhLWZpbGUtd29yZDpiZWZvcmV7Y29udGVudDoiXGYxYzIifS5mYS1maWx0ZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMGIwIn0uZmEtZmluZ2VycHJpbnQ6YmVmb3Jle2NvbnRlbnQ6IlxmNTc3In0uZmEtZmlyZTpiZWZvcmV7Y29udGVudDoiXGYwNmQifS5mYS1mbGFnOmJlZm9yZXtjb250ZW50OiJcZjAyNCJ9LmZhLWZsYWctYWx0OmJlZm9yZXtjb250ZW50OiJcZjc0YyJ9LmZhLWZsYWctY2hlY2tlcmVkOmJlZm9yZXtjb250ZW50OiJcZjExZSJ9LmZhLWZsdXgtY2FwYWNpdG9yOmJlZm9yZXtjb250ZW50OiJcZjhiYSJ9LmZhLWZvbGRlcjpiZWZvcmV7Y29udGVudDoiXGYwN2IifS5mYS1mb2xkZXItZG93bmxvYWQ6YmVmb3Jle2NvbnRlbnQ6IlxlMDUzIn0uZmEtZm9sZGVyLW9wZW46YmVmb3Jle2NvbnRlbnQ6IlxmMDdjIn0uZmEtZm9sZGVyLXVwbG9hZDpiZWZvcmV7Y29udGVudDoiXGUwNTQifS5mYS1mcm93bjpiZWZvcmV7Y29udGVudDoiXGYxMTkifS5mYS1mcm93bi1vcGVuOmJlZm9yZXtjb250ZW50OiJcZjU3YSJ9LmZhLWdhbGFjdGljLXNlbmF0ZTpiZWZvcmV7Y29udGVudDoiXGY1MGQifS5mYS1nYXJhZ2U6YmVmb3Jle2NvbnRlbnQ6IlxlMDA5In0uZmEtZ2FyYWdlLWNhcjpiZWZvcmV7Y29udGVudDoiXGUwMGEifS5mYS1nYXJhZ2Utb3BlbjpiZWZvcmV7Y29udGVudDoiXGUwMGIifS5mYS1nYXMtcHVtcDpiZWZvcmV7Y29udGVudDoiXGY1MmYifS5mYS1nYXMtcHVtcC1zbGFzaDpiZWZvcmV7Y29udGVudDoiXGY1ZjQifS5mYS1nbGFzc2VzOmJlZm9yZXtjb250ZW50OiJcZjUzMCJ9LmZhLWdsb2JlOmJlZm9yZXtjb250ZW50OiJcZjBhYyJ9LmZhLWdvb2dsZTpiZWZvcmV7Y29udGVudDoiXGYxYTAifS5mYS1ncmlwLWhvcml6b250YWw6YmVmb3Jle2NvbnRlbnQ6IlxmNThkIn0uZmEtZ3JpcC1saW5lczpiZWZvcmV7Y29udGVudDoiXGY3YTQifS5mYS1ncmlwLWxpbmVzLXZlcnRpY2FsOmJlZm9yZXtjb250ZW50OiJcZjdhNSJ9LmZhLWdyaXAtdmVydGljYWw6YmVmb3Jle2NvbnRlbnQ6IlxmNThlIn0uZmEtaGFuZC1ob2xkaW5nLXVzZDpiZWZvcmV7Y29udGVudDoiXGY0YzAifS5mYS1oYW5kLXBvaW50LWRvd246YmVmb3Jle2NvbnRlbnQ6IlxmMGE3In0uZmEtaGFuZC1wb2ludC1sZWZ0OmJlZm9yZXtjb250ZW50OiJcZjBhNSJ9LmZhLWhhbmQtcG9pbnQtcmlnaHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMGE0In0uZmEtaGFuZC1wb2ludC11cDpiZWZvcmV7Y29udGVudDoiXGYwYTYifS5mYS1oYW5kLXBvaW50ZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMjVhIn0uZmEtaGFuZHMtdXNkOmJlZm9yZXtjb250ZW50OiJcZjRjNSJ9LmZhLWhhc2h0YWc6YmVmb3Jle2NvbnRlbnQ6IlxmMjkyIn0uZmEtaGVhcnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDA0In0uZmEtaGVhcnQtYnJva2VuOmJlZm9yZXtjb250ZW50OiJcZjdhOSJ9LmZhLWhleGFnb246YmVmb3Jle2NvbnRlbnQ6IlxmMzEyIn0uZmEtaGlzdG9yeTpiZWZvcmV7Y29udGVudDoiXGYxZGEifS5mYS1ob21lOmJlZm9yZXtjb250ZW50OiJcZjAxNSJ9LmZhLWhvbWUtYWx0OmJlZm9yZXtjb250ZW50OiJcZjgwYSJ9LmZhLWhvbWUtbGc6YmVmb3Jle2NvbnRlbnQ6IlxmODBiIn0uZmEtaG9tZS1sZy1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmODBjIn0uZmEtaG91c2U6YmVmb3Jle2NvbnRlbnQ6IlxlMDBkIn0uZmEtaS1jdXJzb3I6YmVmb3Jle2NvbnRlbnQ6IlxmMjQ2In0uZmEtaW5ib3g6YmVmb3Jle2NvbnRlbnQ6IlxmMDFjIn0uZmEtaW5ib3gtaW46YmVmb3Jle2NvbnRlbnQ6IlxmMzEwIn0uZmEtaW5ib3gtb3V0OmJlZm9yZXtjb250ZW50OiJcZjMxMSJ9LmZhLWluZm86YmVmb3Jle2NvbnRlbnQ6IlxmMTI5In0uZmEtaW5mby1jaXJjbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMDVhIn0uZmEtaW5mby1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMzBmIn0uZmEtaW5zdGFncmFtOmJlZm9yZXtjb250ZW50OiJcZjE2ZCJ9LmZhLWluc3RhZ3JhbS1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxlMDU1In0uZmEta2V5OmJlZm9yZXtjb250ZW50OiJcZjA4NCJ9LmZhLWxhbmd1YWdlOmJlZm9yZXtjb250ZW50OiJcZjFhYiJ9LmZhLWxhc3NvOmJlZm9yZXtjb250ZW50OiJcZjhjOCJ9LmZhLWxlYWY6YmVmb3Jle2NvbnRlbnQ6IlxmMDZjIn0uZmEtbGV2ZWwtZG93bjpiZWZvcmV7Y29udGVudDoiXGYxNDkifS5mYS1sZXZlbC1kb3duLWFsdDpiZWZvcmV7Y29udGVudDoiXGYzYmUifS5mYS1sZXZlbC11cDpiZWZvcmV7Y29udGVudDoiXGYxNDgifS5mYS1sZXZlbC11cC1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmM2JmIn0uZmEtbGlua2VkaW46YmVmb3Jle2NvbnRlbnQ6IlxmMDhjIn0uZmEtbGlua2VkaW4taW46YmVmb3Jle2NvbnRlbnQ6IlxmMGUxIn0uZmEtbG9jYXRpb24tYXJyb3c6YmVmb3Jle2NvbnRlbnQ6IlxmMTI0In0uZmEtbG9uZy1hcnJvdy1hbHQtZG93bjpiZWZvcmV7Y29udGVudDoiXGYzMDkifS5mYS1sb25nLWFycm93LWFsdC1sZWZ0OmJlZm9yZXtjb250ZW50OiJcZjMwYSJ9LmZhLWxvbmctYXJyb3ctYWx0LXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZjMwYiJ9LmZhLWxvbmctYXJyb3ctYWx0LXVwOmJlZm9yZXtjb250ZW50OiJcZjMwYyJ9LmZhLWxvbmctYXJyb3ctZG93bjpiZWZvcmV7Y29udGVudDoiXGYxNzUifS5mYS1sb25nLWFycm93LWxlZnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTc3In0uZmEtbG9uZy1hcnJvdy1yaWdodDpiZWZvcmV7Y29udGVudDoiXGYxNzgifS5mYS1sb25nLWFycm93LXVwOmJlZm9yZXtjb250ZW50OiJcZjE3NiJ9LmZhLW1hZ2ljOmJlZm9yZXtjb250ZW50OiJcZjBkMCJ9LmZhLW1hcDpiZWZvcmV7Y29udGVudDoiXGYyNzkifS5mYS1tYXAtbWFya2VyOmJlZm9yZXtjb250ZW50OiJcZjA0MSJ9LmZhLW1hcC1tYXJrZXItYWx0OmJlZm9yZXtjb250ZW50OiJcZjNjNSJ9LmZhLW1hcC1waW46YmVmb3Jle2NvbnRlbnQ6IlxmMjc2In0uZmEtbWFwLXNpZ25zOmJlZm9yZXtjb250ZW50OiJcZjI3NyJ9LmZhLW1hcmtlcjpiZWZvcmV7Y29udGVudDoiXGY1YTEifS5mYS1tZWRhbDpiZWZvcmV7Y29udGVudDoiXGY1YTIifS5mYS1tZWg6YmVmb3Jle2NvbnRlbnQ6IlxmMTFhIn0uZmEtbWljcm9jaGlwOmJlZm9yZXtjb250ZW50OiJcZjJkYiJ9LmZhLW1pY3JvcGhvbmU6YmVmb3Jle2NvbnRlbnQ6IlxmMTMwIn0uZmEtbWljcm9waG9uZS1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmM2M5In0uZmEtbWljcm9waG9uZS1hbHQtc2xhc2g6YmVmb3Jle2NvbnRlbnQ6IlxmNTM5In0uZmEtbWljcm9waG9uZS1zbGFzaDpiZWZvcmV7Y29udGVudDoiXGYxMzEifS5mYS1taW5kLXNoYXJlOmJlZm9yZXtjb250ZW50OiJcZjY3NyJ9LmZhLW1pbnVzOmJlZm9yZXtjb250ZW50OiJcZjA2OCJ9LmZhLW1pbnVzLWNpcmNsZTpiZWZvcmV7Y29udGVudDoiXGYwNTYifS5mYS1taW51cy1oZXhhZ29uOmJlZm9yZXtjb250ZW50OiJcZjMwNyJ9LmZhLW1pbnVzLW9jdGFnb246YmVmb3Jle2NvbnRlbnQ6IlxmMzA4In0uZmEtbWludXMtc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjE0NiJ9LmZhLW1vYmlsZTpiZWZvcmV7Y29udGVudDoiXGYxMGIifS5mYS1tb2JpbGUtYWx0OmJlZm9yZXtjb250ZW50OiJcZjNjZCJ9LmZhLW1vYmlsZS1hbmRyb2lkOmJlZm9yZXtjb250ZW50OiJcZjNjZSJ9LmZhLW1vYmlsZS1hbmRyb2lkLWFsdDpiZWZvcmV7Y29udGVudDoiXGYzY2YifS5mYS1tb25leS1jaGVjazpiZWZvcmV7Y29udGVudDoiXGY1M2MifS5mYS1tb25leS1jaGVjay1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmNTNkIn0uZmEtbW9uZXktY2hlY2stZWRpdDpiZWZvcmV7Y29udGVudDoiXGY4NzIifS5mYS1tb25leS1jaGVjay1lZGl0LWFsdDpiZWZvcmV7Y29udGVudDoiXGY4NzMifS5mYS1tb3RvcmN5Y2xlOmJlZm9yZXtjb250ZW50OiJcZjIxYyJ9LmZhLW1vdW50YWluOmJlZm9yZXtjb250ZW50OiJcZjZmYyJ9LmZhLW1vdXNlLXBvaW50ZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMjQ1In0uZmEtbXAzLXBsYXllcjpiZWZvcmV7Y29udGVudDoiXGY4Y2UifS5mYS1tdXNpYzpiZWZvcmV7Y29udGVudDoiXGYwMDEifS5mYS1vY3RhZ29uOmJlZm9yZXtjb250ZW50OiJcZjMwNiJ9LmZhLW9pbC1jYW46YmVmb3Jle2NvbnRlbnQ6IlxmNjEzIn0uZmEtb2lsLXRlbXA6YmVmb3Jle2NvbnRlbnQ6IlxmNjE0In0uZmEtcGFpbnQtYnJ1c2g6YmVmb3Jle2NvbnRlbnQ6IlxmMWZjIn0uZmEtcGFsZXR0ZTpiZWZvcmV7Y29udGVudDoiXGY1M2YifS5mYS1wYXBlci1wbGFuZTpiZWZvcmV7Y29udGVudDoiXGYxZDgifS5mYS1wYXN0ZTpiZWZvcmV7Y29udGVudDoiXGYwZWEifS5mYS1wYXlwYWw6YmVmb3Jle2NvbnRlbnQ6IlxmMWVkIn0uZmEtcGVuOmJlZm9yZXtjb250ZW50OiJcZjMwNCJ9LmZhLXBlbi1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzA1In0uZmEtcGVuLWZhbmN5OmJlZm9yZXtjb250ZW50OiJcZjVhYyJ9LmZhLXBlbmNpbDpiZWZvcmV7Y29udGVudDoiXGYwNDAifS5mYS1wZW5jaWwtYWx0OmJlZm9yZXtjb250ZW50OiJcZjMwMyJ9LmZhLXBlbmNpbC1ydWxlcjpiZWZvcmV7Y29udGVudDoiXGY1YWUifS5mYS1wZW9wbGUtYXJyb3dzOmJlZm9yZXtjb250ZW50OiJcZTA2OCJ9LmZhLXBob25lOmJlZm9yZXtjb250ZW50OiJcZjA5NSJ9LmZhLXBob25lLWFsdDpiZWZvcmV7Y29udGVudDoiXGY4NzkifS5mYS1waG9uZS1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMDk4In0uZmEtcGhvbmUtc3F1YXJlLWFsdDpiZWZvcmV7Y29udGVudDoiXGY4N2IifS5mYS1waG9uZS12b2x1bWU6YmVmb3Jle2NvbnRlbnQ6IlxmMmEwIn0uZmEtcGhvdG8tdmlkZW86YmVmb3Jle2NvbnRlbnQ6IlxmODdjIn0uZmEtcGludGVyZXN0OmJlZm9yZXtjb250ZW50OiJcZjBkMiJ9LmZhLXBpbnRlcmVzdC1wOmJlZm9yZXtjb250ZW50OiJcZjIzMSJ9LmZhLXBpbnRlcmVzdC1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMGQzIn0uZmEtcGxheTpiZWZvcmV7Y29udGVudDoiXGYwNGIifS5mYS1wbGF5LWNpcmNsZTpiZWZvcmV7Y29udGVudDoiXGYxNDQifS5mYS1wbHVnOmJlZm9yZXtjb250ZW50OiJcZjFlNiJ9LmZhLXBsdXM6YmVmb3Jle2NvbnRlbnQ6IlxmMDY3In0uZmEtcGx1cy1jaXJjbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMDU1In0uZmEtcGx1cy1oZXhhZ29uOmJlZm9yZXtjb250ZW50OiJcZjMwMCJ9LmZhLXBsdXMtb2N0YWdvbjpiZWZvcmV7Y29udGVudDoiXGYzMDEifS5mYS1wbHVzLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYwZmUifS5mYS1wb286YmVmb3Jle2NvbnRlbnQ6IlxmMmZlIn0uZmEtcHJpbnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDJmIn0uZmEtcXJjb2RlOmJlZm9yZXtjb250ZW50OiJcZjAyOSJ9LmZhLXF1ZXN0aW9uOmJlZm9yZXtjb250ZW50OiJcZjEyOCJ9LmZhLXF1ZXN0aW9uLWNpcmNsZTpiZWZvcmV7Y29udGVudDoiXGYwNTkifS5mYS1xdWVzdGlvbi1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMmZkIn0uZmEtcXVvdGUtbGVmdDpiZWZvcmV7Y29udGVudDoiXGYxMGQifS5mYS1xdW90ZS1yaWdodDpiZWZvcmV7Y29udGVudDoiXGYxMGUifS5mYS1yYW5kb206YmVmb3Jle2NvbnRlbnQ6IlxmMDc0In0uZmEtcmVjdGFuZ2xlLWxhbmRzY2FwZTpiZWZvcmV7Y29udGVudDoiXGYyZmEifS5mYS1yZWN0YW5nbGUtcG9ydHJhaXQ6YmVmb3Jle2NvbnRlbnQ6IlxmMmZiIn0uZmEtcmVjdGFuZ2xlLXdpZGU6YmVmb3Jle2NvbnRlbnQ6IlxmMmZjIn0uZmEtcmVjeWNsZTpiZWZvcmV7Y29udGVudDoiXGYxYjgifS5mYS1yZWRvOmJlZm9yZXtjb250ZW50OiJcZjAxZSJ9LmZhLXJlZG8tYWx0OmJlZm9yZXtjb250ZW50OiJcZjJmOSJ9LmZhLXJlcGVhdDpiZWZvcmV7Y29udGVudDoiXGYzNjMifS5mYS1yZXBlYXQtMTpiZWZvcmV7Y29udGVudDoiXGYzNjUifS5mYS1yZXBlYXQtMS1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzY2In0uZmEtcmVwZWF0LWFsdDpiZWZvcmV7Y29udGVudDoiXGYzNjQifS5mYS1yZXBseTpiZWZvcmV7Y29udGVudDoiXGYzZTUifS5mYS1yZXBseS1hbGw6YmVmb3Jle2NvbnRlbnQ6IlxmMTIyIn0uZmEtcmV0d2VldDpiZWZvcmV7Y29udGVudDoiXGYwNzkifS5mYS1yZXR3ZWV0LWFsdDpiZWZvcmV7Y29udGVudDoiXGYzNjEifS5mYS1yb2FkOmJlZm9yZXtjb250ZW50OiJcZjAxOCJ9LmZhLXJvYm90OmJlZm9yZXtjb250ZW50OiJcZjU0NCJ9LmZhLXJzczpiZWZvcmV7Y29udGVudDoiXGYwOWUifS5mYS1yc3Mtc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjE0MyJ9LmZhLXJ2OmJlZm9yZXtjb250ZW50OiJcZjdiZSJ9LmZhLXNhdmU6YmVmb3Jle2NvbnRlbnQ6IlxmMGM3In0uZmEtc2NyZXdkcml2ZXI6YmVmb3Jle2NvbnRlbnQ6IlxmNTRhIn0uZmEtc2VhcmNoOmJlZm9yZXtjb250ZW50OiJcZjAwMiJ9LmZhLXNlYXJjaC1taW51czpiZWZvcmV7Y29udGVudDoiXGYwMTAifS5mYS1zZWFyY2gtcGx1czpiZWZvcmV7Y29udGVudDoiXGYwMGUifS5mYS1zaGFwZXM6YmVmb3Jle2NvbnRlbnQ6IlxmNjFmIn0uZmEtc2hhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMDY0In0uZmEtc2hhcmUtYWxsOmJlZm9yZXtjb250ZW50OiJcZjM2NyJ9LmZhLXNoYXJlLWFsdDpiZWZvcmV7Y29udGVudDoiXGYxZTAifS5mYS1zaGFyZS1hbHQtc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjFlMSJ9LmZhLXNoYXJlLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYxNGQifS5mYS1zaGllbGQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTMyIn0uZmEtc2hpZWxkLWFsdDpiZWZvcmV7Y29udGVudDoiXGYzZWQifS5mYS1zaG9wcGluZy1iYXNrZXQ6YmVmb3Jle2NvbnRlbnQ6IlxmMjkxIn0uZmEtc2hvcHBpbmctY2FydDpiZWZvcmV7Y29udGVudDoiXGYwN2EifS5mYS1zaHV0dGxlLXZhbjpiZWZvcmV7Y29udGVudDoiXGY1YjYifS5mYS1zaWduLWluOmJlZm9yZXtjb250ZW50OiJcZjA5MCJ9LmZhLXNpZ24taW4tYWx0OmJlZm9yZXtjb250ZW50OiJcZjJmNiJ9LmZhLXNpZ24tb3V0OmJlZm9yZXtjb250ZW50OiJcZjA4YiJ9LmZhLXNpZ24tb3V0LWFsdDpiZWZvcmV7Y29udGVudDoiXGYyZjUifS5mYS1zaWduYWw6YmVmb3Jle2NvbnRlbnQ6IlxmMDEyIn0uZmEtc2lnbmFsLXN0cmVhbTpiZWZvcmV7Y29udGVudDoiXGY4ZGQifS5mYS1zaXRlbWFwOmJlZm9yZXtjb250ZW50OiJcZjBlOCJ9LmZhLXNsaWRlcnMtaDpiZWZvcmV7Y29udGVudDoiXGYxZGUifS5mYS1zbGlkZXJzLWgtc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjNmMCJ9LmZhLXNsaWRlcnMtdjpiZWZvcmV7Y29udGVudDoiXGYzZjEifS5mYS1zbGlkZXJzLXYtc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjNmMiJ9LmZhLXNtaWxlOmJlZm9yZXtjb250ZW50OiJcZjExOCJ9LmZhLXNtczpiZWZvcmV7Y29udGVudDoiXGY3Y2QifS5mYS1zbm93Zmxha2U6YmVmb3Jle2NvbnRlbnQ6IlxmMmRjIn0uZmEtc29ydDpiZWZvcmV7Y29udGVudDoiXGYwZGMifS5mYS1zb3J0LWFscGhhLWRvd246YmVmb3Jle2NvbnRlbnQ6IlxmMTVkIn0uZmEtc29ydC1hbHBoYS1kb3duLWFsdDpiZWZvcmV7Y29udGVudDoiXGY4ODEifS5mYS1zb3J0LWFscGhhLXVwOmJlZm9yZXtjb250ZW50OiJcZjE1ZSJ9LmZhLXNvcnQtYWxwaGEtdXAtYWx0OmJlZm9yZXtjb250ZW50OiJcZjg4MiJ9LmZhLXNvcnQtYWx0OmJlZm9yZXtjb250ZW50OiJcZjg4MyJ9LmZhLXNvcnQtYW1vdW50LWRvd246YmVmb3Jle2NvbnRlbnQ6IlxmMTYwIn0uZmEtc29ydC1hbW91bnQtZG93bi1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmODg0In0uZmEtc29ydC1hbW91bnQtdXA6YmVmb3Jle2NvbnRlbnQ6IlxmMTYxIn0uZmEtc29ydC1hbW91bnQtdXAtYWx0OmJlZm9yZXtjb250ZW50OiJcZjg4NSJ9LmZhLXNvcnQtY2lyY2xlOmJlZm9yZXtjb250ZW50OiJcZTAzMCJ9LmZhLXNvcnQtY2lyY2xlLWRvd246YmVmb3Jle2NvbnRlbnQ6IlxlMDMxIn0uZmEtc29ydC1jaXJjbGUtdXA6YmVmb3Jle2NvbnRlbnQ6IlxlMDMyIn0uZmEtc29ydC1kb3duOmJlZm9yZXtjb250ZW50OiJcZjBkZCJ9LmZhLXNvcnQtbnVtZXJpYy1kb3duOmJlZm9yZXtjb250ZW50OiJcZjE2MiJ9LmZhLXNvcnQtbnVtZXJpYy1kb3duLWFsdDpiZWZvcmV7Y29udGVudDoiXGY4ODYifS5mYS1zb3J0LW51bWVyaWMtdXA6YmVmb3Jle2NvbnRlbnQ6IlxmMTYzIn0uZmEtc29ydC1udW1lcmljLXVwLWFsdDpiZWZvcmV7Y29udGVudDoiXGY4ODcifS5mYS1zb3J0LXNoYXBlcy1kb3duOmJlZm9yZXtjb250ZW50OiJcZjg4OCJ9LmZhLXNvcnQtc2hhcGVzLWRvd24tYWx0OmJlZm9yZXtjb250ZW50OiJcZjg4OSJ9LmZhLXNvcnQtc2hhcGVzLXVwOmJlZm9yZXtjb250ZW50OiJcZjg4YSJ9LmZhLXNvcnQtc2hhcGVzLXVwLWFsdDpiZWZvcmV7Y29udGVudDoiXGY4OGIifS5mYS1zb3J0LXNpemUtZG93bjpiZWZvcmV7Y29udGVudDoiXGY4OGMifS5mYS1zb3J0LXNpemUtZG93bi1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmODhkIn0uZmEtc29ydC1zaXplLXVwOmJlZm9yZXtjb250ZW50OiJcZjg4ZSJ9LmZhLXNvcnQtc2l6ZS11cC1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmODhmIn0uZmEtc29ydC11cDpiZWZvcmV7Y29udGVudDoiXGYwZGUifS5mYS1zcGFkZTpiZWZvcmV7Y29udGVudDoiXGYyZjQifS5mYS1zcGlubmVyOmJlZm9yZXtjb250ZW50OiJcZjExMCJ9LmZhLXNwaW5uZXItdGhpcmQ6YmVmb3Jle2NvbnRlbnQ6IlxmM2Y0In0uZmEtc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjBjOCJ9LmZhLXN0YXI6YmVmb3Jle2NvbnRlbnQ6IlxmMDA1In0uZmEtc3Rhci1leGNsYW1hdGlvbjpiZWZvcmV7Y29udGVudDoiXGYyZjMifS5mYS1zdGFyLWhhbGY6YmVmb3Jle2NvbnRlbnQ6IlxmMDg5In0uZmEtc3Rhci1oYWxmLWFsdDpiZWZvcmV7Y29udGVudDoiXGY1YzAifS5mYS1zdGVlcmluZy13aGVlbDpiZWZvcmV7Y29udGVudDoiXGY2MjIifS5mYS1zdGlja3ktbm90ZTpiZWZvcmV7Y29udGVudDoiXGYyNDkifS5mYS1zdG9wd2F0Y2g6YmVmb3Jle2NvbnRlbnQ6IlxmMmYyIn0uZmEtc3RvcmU6YmVmb3Jle2NvbnRlbnQ6IlxmNTRlIn0uZmEtc3RvcmUtYWx0OmJlZm9yZXtjb250ZW50OiJcZjU0ZiJ9LmZhLXN1aXRjYXNlLXJvbGxpbmc6YmVmb3Jle2NvbnRlbnQ6IlxmNWMxIn0uZmEtc3VuOmJlZm9yZXtjb250ZW50OiJcZjE4NSJ9LmZhLXN5bmM6YmVmb3Jle2NvbnRlbnQ6IlxmMDIxIn0uZmEtc3luYy1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMmYxIn0uZmEtdGFibGV0OmJlZm9yZXtjb250ZW50OiJcZjEwYSJ9LmZhLXRhYmxldC1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmM2ZhIn0uZmEtdGFjaG9tZXRlcjpiZWZvcmV7Y29udGVudDoiXGYwZTQifS5mYS10YWNob21ldGVyLWFsdDpiZWZvcmV7Y29udGVudDoiXGYzZmQifS5mYS10YWNob21ldGVyLWFsdC1hdmVyYWdlOmJlZm9yZXtjb250ZW50OiJcZjYyNCJ9LmZhLXRhY2hvbWV0ZXItYWx0LWZhc3Q6YmVmb3Jle2NvbnRlbnQ6IlxmNjI1In0uZmEtdGFjaG9tZXRlci1hbHQtZmFzdGVzdDpiZWZvcmV7Y29udGVudDoiXGY2MjYifS5mYS10YWNob21ldGVyLWFsdC1zbG93OmJlZm9yZXtjb250ZW50OiJcZjYyNyJ9LmZhLXRhY2hvbWV0ZXItYWx0LXNsb3dlc3Q6YmVmb3Jle2NvbnRlbnQ6IlxmNjI4In0uZmEtdGFjaG9tZXRlci1hdmVyYWdlOmJlZm9yZXtjb250ZW50OiJcZjYyOSJ9LmZhLXRhY2hvbWV0ZXItZmFzdDpiZWZvcmV7Y29udGVudDoiXGY2MmEifS5mYS10YWNob21ldGVyLWZhc3Rlc3Q6YmVmb3Jle2NvbnRlbnQ6IlxmNjJiIn0uZmEtdGFjaG9tZXRlci1zbG93OmJlZm9yZXtjb250ZW50OiJcZjYyYyJ9LmZhLXRhY2hvbWV0ZXItc2xvd2VzdDpiZWZvcmV7Y29udGVudDoiXGY2MmQifS5mYS10YWc6YmVmb3Jle2NvbnRlbnQ6IlxmMDJiIn0uZmEtdGFnczpiZWZvcmV7Y29udGVudDoiXGYwMmMifS5mYS10YXhpOmJlZm9yZXtjb250ZW50OiJcZjFiYSJ9LmZhLXRlbXBlcmF0dXJlLWhpZ2g6YmVmb3Jle2NvbnRlbnQ6IlxmNzY5In0uZmEtdGVtcGVyYXR1cmUtbG93OmJlZm9yZXtjb250ZW50OiJcZjc2YiJ9LmZhLXRleHQtaGVpZ2h0OmJlZm9yZXtjb250ZW50OiJcZjAzNCJ9LmZhLXRleHQtd2lkdGg6YmVmb3Jle2NvbnRlbnQ6IlxmMDM1In0uZmEtdGhlcm1vbWV0ZXItaGFsZjpiZWZvcmV7Y29udGVudDoiXGYyYzkifS5mYS10aHVtYnMtZG93bjpiZWZvcmV7Y29udGVudDoiXGYxNjUifS5mYS10aHVtYnMtdXA6YmVmb3Jle2NvbnRlbnQ6IlxmMTY0In0uZmEtdGlja2V0OmJlZm9yZXtjb250ZW50OiJcZjE0NSJ9LmZhLXRpa3RvazpiZWZvcmV7Y29udGVudDoiXGUwN2IifS5mYS10aW1lczpiZWZvcmV7Y29udGVudDoiXGYwMGQifS5mYS10aW1lcy1jaXJjbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMDU3In0uZmEtdGltZXMtaGV4YWdvbjpiZWZvcmV7Y29udGVudDoiXGYyZWUifS5mYS10aW1lcy1vY3RhZ29uOmJlZm9yZXtjb250ZW50OiJcZjJmMCJ9LmZhLXRpbWVzLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYyZDMifS5mYS10aW50OmJlZm9yZXtjb250ZW50OiJcZjA0MyJ9LmZhLXRpcmU6YmVmb3Jle2NvbnRlbnQ6IlxmNjMxIn0uZmEtdGlyZS1mbGF0OmJlZm9yZXtjb250ZW50OiJcZjYzMiJ9LmZhLXRpcmUtcHJlc3N1cmUtd2FybmluZzpiZWZvcmV7Y29udGVudDoiXGY2MzMifS5mYS10aXJlLXJ1Z2dlZDpiZWZvcmV7Y29udGVudDoiXGY2MzQifS5mYS10b2dnbGUtb2ZmOmJlZm9yZXtjb250ZW50OiJcZjIwNCJ9LmZhLXRvZ2dsZS1vbjpiZWZvcmV7Y29udGVudDoiXGYyMDUifS5mYS10b29sczpiZWZvcmV7Y29udGVudDoiXGY3ZDkifS5mYS10cmFpbGVyOmJlZm9yZXtjb250ZW50OiJcZTA0MSJ9LmZhLXRyYXNoOmJlZm9yZXtjb250ZW50OiJcZjFmOCJ9LmZhLXRyYXNoLWFsdDpiZWZvcmV7Y29udGVudDoiXGYyZWQifS5mYS10cmFzaC1yZXN0b3JlOmJlZm9yZXtjb250ZW50OiJcZjgyOSJ9LmZhLXRyYXNoLXJlc3RvcmUtYWx0OmJlZm9yZXtjb250ZW50OiJcZjgyYSJ9LmZhLXRyYXNoLXVuZG86YmVmb3Jle2NvbnRlbnQ6IlxmODk1In0uZmEtdHJhc2gtdW5kby1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmODk2In0uZmEtdHJpYW5nbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMmVjIn0uZmEtdHJvcGh5OmJlZm9yZXtjb250ZW50OiJcZjA5MSJ9LmZhLXRyb3BoeS1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMmViIn0uZmEtdHJ1Y2s6YmVmb3Jle2NvbnRlbnQ6IlxmMGQxIn0uZmEtdHJ1Y2stbG9hZGluZzpiZWZvcmV7Y29udGVudDoiXGY0ZGUifS5mYS10cnVjay1tb25zdGVyOmJlZm9yZXtjb250ZW50OiJcZjYzYiJ9LmZhLXRydWNrLXBpY2t1cDpiZWZvcmV7Y29udGVudDoiXGY2M2MifS5mYS10dHk6YmVmb3Jle2NvbnRlbnQ6IlxmMWU0In0uZmEtdHY6YmVmb3Jle2NvbnRlbnQ6IlxmMjZjIn0uZmEtdHdpdHRlcjpiZWZvcmV7Y29udGVudDoiXGYwOTkifS5mYS10d2l0dGVyLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYwODEifS5mYS11bmRvOmJlZm9yZXtjb250ZW50OiJcZjBlMiJ9LmZhLXVuZG8tYWx0OmJlZm9yZXtjb250ZW50OiJcZjJlYSJ9LmZhLXVwbG9hZDpiZWZvcmV7Y29udGVudDoiXGYwOTMifS5mYS11c2QtY2lyY2xlOmJlZm9yZXtjb250ZW50OiJcZjJlOCJ9LmZhLXVzZC1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMmU5In0uZmEtdXNlcjpiZWZvcmV7Y29udGVudDoiXGYwMDcifS5mYS11c2VyLWFsdDpiZWZvcmV7Y29udGVudDoiXGY0MDYifS5mYS11c2VyLWNoZWNrOmJlZm9yZXtjb250ZW50OiJcZjRmYyJ9LmZhLXVzZXItY2lyY2xlOmJlZm9yZXtjb250ZW50OiJcZjJiZCJ9LmZhLXVzZXItZnJpZW5kczpiZWZvcmV7Y29udGVudDoiXGY1MDAifS5mYS11c2VyczpiZWZvcmV7Y29udGVudDoiXGYwYzAifS5mYS12aWRlbzpiZWZvcmV7Y29udGVudDoiXGYwM2QifS5mYS12b2ljZW1haWw6YmVmb3Jle2NvbnRlbnQ6IlxmODk3In0uZmEtdm9sdW1lOmJlZm9yZXtjb250ZW50OiJcZjZhOCJ9LmZhLXZvbHVtZS1kb3duOmJlZm9yZXtjb250ZW50OiJcZjAyNyJ9LmZhLXZvbHVtZS1tdXRlOmJlZm9yZXtjb250ZW50OiJcZjZhOSJ9LmZhLXZvbHVtZS1vZmY6YmVmb3Jle2NvbnRlbnQ6IlxmMDI2In0uZmEtdm9sdW1lLXNsYXNoOmJlZm9yZXtjb250ZW50OiJcZjJlMiJ9LmZhLXZvbHVtZS11cDpiZWZvcmV7Y29udGVudDoiXGYwMjgifS5mYS13YWdvbi1jb3ZlcmVkOmJlZm9yZXtjb250ZW50OiJcZjhlZSJ9LmZhLXdhbGtpZS10YWxraWU6YmVmb3Jle2NvbnRlbnQ6IlxmOGVmIn0uZmEtd2ViY2FtOmJlZm9yZXtjb250ZW50OiJcZjgzMiJ9LmZhLXdlYmNhbS1zbGFzaDpiZWZvcmV7Y29udGVudDoiXGY4MzMifS5mYS13aGVlbGNoYWlyOmJlZm9yZXtjb250ZW50OiJcZjE5MyJ9LmZhLXdpZmk6YmVmb3Jle2NvbnRlbnQ6IlxmMWViIn0uZmEtd3JlbmNoOmJlZm9yZXtjb250ZW50OiJcZjBhZCJ9LmZhLXlvdXR1YmU6YmVmb3Jle2NvbnRlbnQ6IlxmMTY3In0uZmEteW91dHViZS1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmNDMxIn0uZmEtc2hpZWxkLWNoZWNrOmJlZm9yZXtjb250ZW50OiJcZjJmNyJ9LmZhLWxpbms6YmVmb3Jle2NvbnRlbnQ6IlxmMGMxIn0uZmEtdW5saW5rOmJlZm9yZXtjb250ZW50OiJcZjEyNyJ9LmZhLWJhZGdlLWRvbGxhcjpiZWZvcmV7Y29udGVudDoiXGY2NDUifS5mYS1wZW4tc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjE0YiJ9LmZhLWNvbW1lbnQtYWx0LWRvdHM6YmVmb3Jle2NvbnRlbnQ6IlxmNGEzIn0uZmEtYXJyb3ctZG93bi10by1saW5lOmJlZm9yZXtjb250ZW50OiJcZjMzZCJ9LmZhLXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZjM1NiI7fS5zci1vbmx5e2JvcmRlcjowO2NsaXA6cmVjdCgwLDAsMCwwKTtoZWlnaHQ6MXB4O21hcmdpbjotMXB4O292ZXJmbG93OmhpZGRlbjtwYWRkaW5nOjA7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MXB4fS5zci1vbmx5LWZvY3VzYWJsZTphY3RpdmUsLnNyLW9ubHktZm9jdXNhYmxlOmZvY3Vze2NsaXA6YXV0bztoZWlnaHQ6YXV0bzttYXJnaW46MDtvdmVyZmxvdzp2aXNpYmxlO3Bvc2l0aW9uOnN0YXRpYzt3aWR0aDphdXRvfUBmb250LWZhY2V7Zm9udC1mYW1pbHk6J0ZvbnQgQXdlc29tZSA1IEJyYW5kcyc7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtZGlzcGxheTpibG9jaztzcmM6dXJsKC8vZm9udHMuZDJjbWVkaWEuY2Evd2ViZm9udHMvZGVza3RvcC1hd2Vzb21lL3dlYmZvbnRzL2ZhLWJyYW5kcy00MDAuZW90KTtzcmM6dXJsKC8vZm9udHMuZDJjbWVkaWEuY2Evd2ViZm9udHMvZGVza3RvcC1hd2Vzb21lL3dlYmZvbnRzL2ZhLWJyYW5kcy00MDAuZW90PyNpZWZpeCkgZm9ybWF0KCJlbWJlZGRlZC1vcGVudHlwZSIpLHVybCgvL2ZvbnRzLmQyY21lZGlhLmNhL3dlYmZvbnRzL2Rlc2t0b3AtYXdlc29tZS93ZWJmb250cy9mYS1icmFuZHMtNDAwLndvZmYyKSBmb3JtYXQoIndvZmYyIiksdXJsKC8vZm9udHMuZDJjbWVkaWEuY2Evd2ViZm9udHMvZGVza3RvcC1hd2Vzb21lL3dlYmZvbnRzL2ZhLWJyYW5kcy00MDAud29mZikgZm9ybWF0KCJ3b2ZmIiksdXJsKC8vZm9udHMuZDJjbWVkaWEuY2Evd2ViZm9udHMvZGVza3RvcC1hd2Vzb21lL3dlYmZvbnRzL2ZhLWJyYW5kcy00MDAudHRmKSBmb3JtYXQoInRydWV0eXBlIiksdXJsKC8vZm9udHMuZDJjbWVkaWEuY2Evd2ViZm9udHMvZGVza3RvcC1hd2Vzb21lL3dlYmZvbnRzL2ZhLWJyYW5kcy00MDAuc3ZnI2ZvbnRhd2Vzb21lKSBmb3JtYXQoInN2ZyIpfS5mYWJ7Zm9udC1mYW1pbHk6J0ZvbnQgQXdlc29tZSA1IEJyYW5kcyc7Zm9udC13ZWlnaHQ6NDAwfUBmb250LWZhY2V7Zm9udC1mYW1pbHk6J0ZvbnQgQXdlc29tZSA1IFBybyc7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC13ZWlnaHQ6MzAwO2ZvbnQtZGlzcGxheTpibG9jaztzcmM6dXJsKC8vZm9udHMuZDJjbWVkaWEuY2Evd2ViZm9udHMvZGVza3RvcC1hd2Vzb21lL3dlYmZvbnRzL2ZhLWxpZ2h0LTMwMC5lb3QpO3NyYzp1cmwoLy9mb250cy5kMmNtZWRpYS5jYS93ZWJmb250cy9kZXNrdG9wLWF3ZXNvbWUvd2ViZm9udHMvZmEtbGlnaHQtMzAwLmVvdD8jaWVmaXgpIGZvcm1hdCgiZW1iZWRkZWQtb3BlbnR5cGUiKSx1cmwoLy9mb250cy5kMmNtZWRpYS5jYS93ZWJmb250cy9kZXNrdG9wLWF3ZXNvbWUvd2ViZm9udHMvZmEtbGlnaHQtMzAwLndvZmYyKSBmb3JtYXQoIndvZmYyIiksdXJsKC8vZm9udHMuZDJjbWVkaWEuY2Evd2ViZm9udHMvZGVza3RvcC1hd2Vzb21lL3dlYmZvbnRzL2ZhLWxpZ2h0LTMwMC53b2ZmKSBmb3JtYXQoIndvZmYiKSx1cmwoLy9mb250cy5kMmNtZWRpYS5jYS93ZWJmb250cy9kZXNrdG9wLWF3ZXNvbWUvd2ViZm9udHMvZmEtbGlnaHQtMzAwLnR0ZikgZm9ybWF0KCJ0cnVldHlwZSIpLHVybCgvL2ZvbnRzLmQyY21lZGlhLmNhL3dlYmZvbnRzL2Rlc2t0b3AtYXdlc29tZS93ZWJmb250cy9mYS1saWdodC0zMDAuc3ZnI2ZvbnRhd2Vzb21lKSBmb3JtYXQoInN2ZyIpfS5mYWx7Zm9udC1mYW1pbHk6J0ZvbnQgQXdlc29tZSA1IFBybyc7Zm9udC13ZWlnaHQ6MzAwfUBmb250LWZhY2V7Zm9udC1mYW1pbHk6J0ZvbnQgQXdlc29tZSA1IFBybyc7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtZGlzcGxheTpibG9jaztzcmM6dXJsKC8vZm9udHMuZDJjbWVkaWEuY2Evd2ViZm9udHMvZGVza3RvcC1hd2Vzb21lL3dlYmZvbnRzL2ZhLXJlZ3VsYXItNDAwLmVvdCk7c3JjOnVybCgvL2ZvbnRzLmQyY21lZGlhLmNhL3dlYmZvbnRzL2Rlc2t0b3AtYXdlc29tZS93ZWJmb250cy9mYS1yZWd1bGFyLTQwMC5lb3Q\/I2llZml4KSBmb3JtYXQoImVtYmVkZGVkLW9wZW50eXBlIiksdXJsKC8vZm9udHMuZDJjbWVkaWEuY2Evd2ViZm9udHMvZGVza3RvcC1hd2Vzb21lL3dlYmZvbnRzL2ZhLXJlZ3VsYXItNDAwLndvZmYyKSBmb3JtYXQoIndvZmYyIiksdXJsKC8vZm9udHMuZDJjbWVkaWEuY2Evd2ViZm9udHMvZGVza3RvcC1hd2Vzb21lL3dlYmZvbnRzL2ZhLXJlZ3VsYXItNDAwLndvZmYpIGZvcm1hdCgid29mZiIpLHVybCgvL2ZvbnRzLmQyY21lZGlhLmNhL3dlYmZvbnRzL2Rlc2t0b3AtYXdlc29tZS93ZWJmb250cy9mYS1yZWd1bGFyLTQwMC50dGYpIGZvcm1hdCgidHJ1ZXR5cGUiKSx1cmwoLy9mb250cy5kMmNtZWRpYS5jYS93ZWJmb250cy9kZXNrdG9wLWF3ZXNvbWUvd2ViZm9udHMvZmEtcmVndWxhci00MDAuc3ZnI2ZvbnRhd2Vzb21lKSBmb3JtYXQoInN2ZyIpfS5mYXJ7Zm9udC1mYW1pbHk6J0ZvbnQgQXdlc29tZSA1IFBybyc7Zm9udC13ZWlnaHQ6NDAwfUBmb250LWZhY2V7Zm9udC1mYW1pbHk6J0ZvbnQgQXdlc29tZSA1IFBybyc7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC13ZWlnaHQ6OTAwO2ZvbnQtZGlzcGxheTpibG9jaztzcmM6dXJsKC8vZm9udHMuZDJjbWVkaWEuY2Evd2ViZm9udHMvZGVza3RvcC1hd2Vzb21lL3dlYmZvbnRzL2ZhLXNvbGlkLTkwMC5lb3QpO3NyYzp1cmwoLy9mb250cy5kMmNtZWRpYS5jYS93ZWJmb250cy9kZXNrdG9wLWF3ZXNvbWUvd2ViZm9udHMvZmEtc29saWQtOTAwLmVvdD8jaWVmaXgpIGZvcm1hdCgiZW1iZWRkZWQtb3BlbnR5cGUiKSx1cmwoLy9mb250cy5kMmNtZWRpYS5jYS93ZWJmb250cy9kZXNrdG9wLWF3ZXNvbWUvd2ViZm9udHMvZmEtc29saWQtOTAwLndvZmYyKSBmb3JtYXQoIndvZmYyIiksdXJsKC8vZm9udHMuZDJjbWVkaWEuY2Evd2ViZm9udHMvZGVza3RvcC1hd2Vzb21lL3dlYmZvbnRzL2ZhLXNvbGlkLTkwMC53b2ZmKSBmb3JtYXQoIndvZmYiKSx1cmwoLy9mb250cy5kMmNtZWRpYS5jYS93ZWJmb250cy9kZXNrdG9wLWF3ZXNvbWUvd2ViZm9udHMvZmEtc29saWQtOTAwLnR0ZikgZm9ybWF0KCJ0cnVldHlwZSIpLHVybCgvL2ZvbnRzLmQyY21lZGlhLmNhL3dlYmZvbnRzL2Rlc2t0b3AtYXdlc29tZS93ZWJmb250cy9mYS1zb2xpZC05MDAuc3ZnI2ZvbnRhd2Vzb21lKSBmb3JtYXQoInN2ZyIpfS5mYSwuZmFze2ZvbnQtZmFtaWx5OidGb250IEF3ZXNvbWUgNSBQcm8nIWltcG9ydGFudDtmb250LXdlaWdodDo5MDB9QGZvbnQtZmFjZXtmb250LWRpc3BsYXk6c3dhcDtmb250LWZhbWlseTonRDJDQ3VzdG9tSWNvbnMnO3NyYzpsb2NhbChEMkNDdXN0b21JY29ucyksdXJsKC8vZm9udHMuZDJjbWVkaWEuY2Evd2ViZm9udHMvZDJjLWN1c3RvbS1pY29ucy5lb3Q\/I2llZml4KSBmb3JtYXQoImVtYmVkZGVkLW9wZW50eXBlIiksdXJsKC8vZm9udHMuZDJjbWVkaWEuY2Evd2ViZm9udHMvZDJjLWN1c3RvbS1pY29ucy53b2ZmKSBmb3JtYXQoIndvZmYiKSx1cmwoLy9mb250cy5kMmNtZWRpYS5jYS93ZWJmb250cy9kMmMtY3VzdG9tLWljb25zLnR0ZikgZm9ybWF0KCJ0cnVldHlwZSIpLHVybCgvL2ZvbnRzLmQyY21lZGlhLmNhL3dlYmZvbnRzL2QyYy1jdXN0b20taWNvbnMuc3ZnI3N2Z0ZvbnROYW1lKSBmb3JtYXQoInN2ZyIpO2ZvbnQtd2VpZ2h0OjQwMDtmb250LXN0eWxlOm5vcm1hbH0uZmEteC10d2l0dGVyOmJlZm9yZXtmb250LWZhbWlseTonRDJDQ3VzdG9tSWNvbnMnLHNlcmlmO2NvbnRlbnQ6IlxlOTAwIjtkaXNwbGF5OmJsb2NrO2ZvbnQtd2VpZ2h0OjQwMDtmb250LXN0eWxlOm5vcm1hbH0KLyoqIC9jc3MvZm9udC1hd2Vzb21lLmNvbnRlbnQubWluLmNzcyAqKi8KLmZhLTUwMHB4OmJlZm9yZXtjb250ZW50OiJcZjI2ZSJ9LmZhLWFjY2Vzc2libGUtaWNvbjpiZWZvcmV7Y29udGVudDoiXGYzNjgifS5mYS1hY2N1c29mdDpiZWZvcmV7Y29udGVudDoiXGYzNjkifS5mYS1hZGRyZXNzLWJvb2s6YmVmb3Jle2NvbnRlbnQ6IlxmMmI5In0uZmEtYWRkcmVzcy1jYXJkOmJlZm9yZXtjb250ZW50OiJcZjJiYiJ9LmZhLWFkanVzdDpiZWZvcmV7Y29udGVudDoiXGYwNDIifS5mYS1hZG46YmVmb3Jle2NvbnRlbnQ6IlxmMTcwIn0uZmEtYWR2ZXJzYWw6YmVmb3Jle2NvbnRlbnQ6IlxmMzZhIn0uZmEtYWZmaWxpYXRldGhlbWU6YmVmb3Jle2NvbnRlbnQ6IlxmMzZiIn0uZmEtYWxnb2xpYTpiZWZvcmV7Y29udGVudDoiXGYzNmMifS5mYS1hbGlnbi1jZW50ZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMDM3In0uZmEtYWxpZ24tanVzdGlmeTpiZWZvcmV7Y29udGVudDoiXGYwMzkifS5mYS1hbGlnbi1sZWZ0OmJlZm9yZXtjb250ZW50OiJcZjAzNiJ9LmZhLWFsaWduLXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZjAzOCJ9LmZhLWFtYXpvbjpiZWZvcmV7Y29udGVudDoiXGYyNzAifS5mYS1hbWF6b24tcGF5OmJlZm9yZXtjb250ZW50OiJcZjQyYyJ9LmZhLWFtYnVsYW5jZTpiZWZvcmV7Y29udGVudDoiXGYwZjkifS5mYS1hbWVyaWNhbi1zaWduLWxhbmd1YWdlLWludGVycHJldGluZzpiZWZvcmV7Y29udGVudDoiXGYyYTMifS5mYS1hbWlsaWE6YmVmb3Jle2NvbnRlbnQ6IlxmMzZkIn0uZmEtYW5jaG9yOmJlZm9yZXtjb250ZW50OiJcZjEzZCJ9LmZhLWFuZHJvaWQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTdiIn0uZmEtYW5nZWxsaXN0OmJlZm9yZXtjb250ZW50OiJcZjIwOSJ9LmZhLWFuZ2xlLWRvdWJsZS1kb3duOmJlZm9yZXtjb250ZW50OiJcZjEwMyJ9LmZhLWFuZ2xlLWRvdWJsZS1sZWZ0OmJlZm9yZXtjb250ZW50OiJcZjEwMCJ9LmZhLWFuZ2xlLWRvdWJsZS1yaWdodDpiZWZvcmV7Y29udGVudDoiXGYxMDEifS5mYS1hbmdsZS1kb3VibGUtdXA6YmVmb3Jle2NvbnRlbnQ6IlxmMTAyIn0uZmEtYW5nbGUtZG93bjpiZWZvcmV7Y29udGVudDoiXGYxMDcifS5mYS1hbmdsZS1sZWZ0OmJlZm9yZXtjb250ZW50OiJcZjEwNCJ9LmZhLWFuZ2xlLXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZjEwNSJ9LmZhLWFuZ2xlLXVwOmJlZm9yZXtjb250ZW50OiJcZjEwNiJ9LmZhLWFuZ3J5Y3JlYXRpdmU6YmVmb3Jle2NvbnRlbnQ6IlxmMzZlIn0uZmEtYW5ndWxhcjpiZWZvcmV7Y29udGVudDoiXGY0MjAifS5mYS1hcHAtc3RvcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMzZmIn0uZmEtYXBwLXN0b3JlLWlvczpiZWZvcmV7Y29udGVudDoiXGYzNzAifS5mYS1hcHBlcjpiZWZvcmV7Y29udGVudDoiXGYzNzEifS5mYS1hcHBsZTpiZWZvcmV7Y29udGVudDoiXGYxNzkifS5mYS1hcHBsZS1wYXk6YmVmb3Jle2NvbnRlbnQ6IlxmNDE1In0uZmEtYXJjaGl2ZTpiZWZvcmV7Y29udGVudDoiXGYxODcifS5mYS1hcnJvdy1hbHQtY2lyY2xlLWRvd246YmVmb3Jle2NvbnRlbnQ6IlxmMzU4In0uZmEtYXJyb3ctYWx0LWNpcmNsZS1sZWZ0OmJlZm9yZXtjb250ZW50OiJcZjM1OSJ9LmZhLWFycm93LWFsdC1jaXJjbGUtcmlnaHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzVhIn0uZmEtYXJyb3ctYWx0LWNpcmNsZS11cDpiZWZvcmV7Y29udGVudDoiXGYzNWIifS5mYS1hcnJvdy1jaXJjbGUtZG93bjpiZWZvcmV7Y29udGVudDoiXGYwYWIifS5mYS1hcnJvdy1jaXJjbGUtbGVmdDpiZWZvcmV7Y29udGVudDoiXGYwYTgifS5mYS1hcnJvdy1jaXJjbGUtcmlnaHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMGE5In0uZmEtYXJyb3ctY2lyY2xlLXVwOmJlZm9yZXtjb250ZW50OiJcZjBhYSJ9LmZhLWFycm93LWRvd246YmVmb3Jle2NvbnRlbnQ6IlxmMDYzIn0uZmEtYXJyb3ctbGVmdDpiZWZvcmV7Y29udGVudDoiXGYwNjAifS5mYS1hcnJvdy1yaWdodDpiZWZvcmV7Y29udGVudDoiXGYwNjEifS5mYS1hcnJvdy11cDpiZWZvcmV7Y29udGVudDoiXGYwNjIifS5mYS1hcnJvd3MtYWx0OmJlZm9yZXtjb250ZW50OiJcZjBiMiJ9LmZhLWFycm93cy1hbHQtaDpiZWZvcmV7Y29udGVudDoiXGYzMzcifS5mYS1hcnJvd3MtYWx0LXY6YmVmb3Jle2NvbnRlbnQ6IlxmMzM4In0uZmEtYXNzaXN0aXZlLWxpc3RlbmluZy1zeXN0ZW1zOmJlZm9yZXtjb250ZW50OiJcZjJhMiJ9LmZhLWFzdGVyaXNrOmJlZm9yZXtjb250ZW50OiJcZjA2OSJ9LmZhLWFzeW1tZXRyaWs6YmVmb3Jle2NvbnRlbnQ6IlxmMzcyIn0uZmEtYXQ6YmVmb3Jle2NvbnRlbnQ6IlxmMWZhIn0uZmEtYXVkaWJsZTpiZWZvcmV7Y29udGVudDoiXGYzNzMifS5mYS1hdWRpby1kZXNjcmlwdGlvbjpiZWZvcmV7Y29udGVudDoiXGYyOWUifS5mYS1hdXRvcHJlZml4ZXI6YmVmb3Jle2NvbnRlbnQ6IlxmNDFjIn0uZmEtYXZpYW5leDpiZWZvcmV7Y29udGVudDoiXGYzNzQifS5mYS1hdmlhdG86YmVmb3Jle2NvbnRlbnQ6IlxmNDIxIn0uZmEtYXdzOmJlZm9yZXtjb250ZW50OiJcZjM3NSJ9LmZhLWJhY2t3YXJkOmJlZm9yZXtjb250ZW50OiJcZjA0YSJ9LmZhLWJhbGFuY2Utc2NhbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMjRlIn0uZmEtYmFuOmJlZm9yZXtjb250ZW50OiJcZjA1ZSJ9LmZhLWJhbmRjYW1wOmJlZm9yZXtjb250ZW50OiJcZjJkNSJ9LmZhLWJhcmNvZGU6YmVmb3Jle2NvbnRlbnQ6IlxmMDJhIn0uZmEtYmFyczpiZWZvcmV7Y29udGVudDoiXGYwYzkifS5mYS1iYXNlYmFsbC1iYWxsOmJlZm9yZXtjb250ZW50OiJcZjQzMyJ9LmZhLWJhc2tldGJhbGwtYmFsbDpiZWZvcmV7Y29udGVudDoiXGY0MzQifS5mYS1iYXRoOmJlZm9yZXtjb250ZW50OiJcZjJjZCJ9LmZhLWJhdHRlcnktZW1wdHk6YmVmb3Jle2NvbnRlbnQ6IlxmMjQ0In0uZmEtYmF0dGVyeS1mdWxsOmJlZm9yZXtjb250ZW50OiJcZjI0MCJ9LmZhLWJhdHRlcnktaGFsZjpiZWZvcmV7Y29udGVudDoiXGYyNDIifS5mYS1iYXR0ZXJ5LXF1YXJ0ZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMjQzIn0uZmEtYmF0dGVyeS10aHJlZS1xdWFydGVyczpiZWZvcmV7Y29udGVudDoiXGYyNDEifS5mYS1iZWQ6YmVmb3Jle2NvbnRlbnQ6IlxmMjM2In0uZmEtYmVlcjpiZWZvcmV7Y29udGVudDoiXGYwZmMifS5mYS1iZWhhbmNlOmJlZm9yZXtjb250ZW50OiJcZjFiNCJ9LmZhLWJlaGFuY2Utc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjFiNSJ9LmZhLWJlbGw6YmVmb3Jle2NvbnRlbnQ6IlxmMGYzIn0uZmEtYmVsbC1zbGFzaDpiZWZvcmV7Y29udGVudDoiXGYxZjYifS5mYS1iaWN5Y2xlOmJlZm9yZXtjb250ZW50OiJcZjIwNiJ9LmZhLWJpbW9iamVjdDpiZWZvcmV7Y29udGVudDoiXGYzNzgifS5mYS1iaW5vY3VsYXJzOmJlZm9yZXtjb250ZW50OiJcZjFlNSJ9LmZhLWJpcnRoZGF5LWNha2U6YmVmb3Jle2NvbnRlbnQ6IlxmMWZkIn0uZmEtYml0YnVja2V0OmJlZm9yZXtjb250ZW50OiJcZjE3MSJ9LmZhLWJpdGNvaW46YmVmb3Jle2NvbnRlbnQ6IlxmMzc5In0uZmEtYml0eTpiZWZvcmV7Y29udGVudDoiXGYzN2EifS5mYS1ibGFjay10aWU6YmVmb3Jle2NvbnRlbnQ6IlxmMjdlIn0uZmEtYmxhY2tiZXJyeTpiZWZvcmV7Y29udGVudDoiXGYzN2IifS5mYS1ibGluZDpiZWZvcmV7Y29udGVudDoiXGYyOWQifS5mYS1ibG9nZ2VyOmJlZm9yZXtjb250ZW50OiJcZjM3YyJ9LmZhLWJsb2dnZXItYjpiZWZvcmV7Y29udGVudDoiXGYzN2QifS5mYS1ibHVldG9vdGg6YmVmb3Jle2NvbnRlbnQ6IlxmMjkzIn0uZmEtYmx1ZXRvb3RoLWI6YmVmb3Jle2NvbnRlbnQ6IlxmMjk0In0uZmEtYm9sZDpiZWZvcmV7Y29udGVudDoiXGYwMzIifS5mYS1ib2x0OmJlZm9yZXtjb250ZW50OiJcZjBlNyJ9LmZhLWJvbWI6YmVmb3Jle2NvbnRlbnQ6IlxmMWUyIn0uZmEtYm9vazpiZWZvcmV7Y29udGVudDoiXGYwMmQifS5mYS1ib29rbWFyazpiZWZvcmV7Y29udGVudDoiXGYwMmUifS5mYS1ib3dsaW5nLWJhbGw6YmVmb3Jle2NvbnRlbnQ6IlxmNDM2In0uZmEtYnJhaWxsZTpiZWZvcmV7Y29udGVudDoiXGYyYTEifS5mYS1icmllZmNhc2U6YmVmb3Jle2NvbnRlbnQ6IlxmMGIxIn0uZmEtYnRjOmJlZm9yZXtjb250ZW50OiJcZjE1YSJ9LmZhLWJ1ZzpiZWZvcmV7Y29udGVudDoiXGYxODgifS5mYS1idWlsZGluZzpiZWZvcmV7Y29udGVudDoiXGYxYWQifS5mYS1idWxsaG9ybjpiZWZvcmV7Y29udGVudDoiXGYwYTEifS5mYS1idWxsc2V5ZTpiZWZvcmV7Y29udGVudDoiXGYxNDAifS5mYS1idXJvbW9iZWxleHBlcnRlOmJlZm9yZXtjb250ZW50OiJcZjM3ZiJ9LmZhLWJ1czpiZWZvcmV7Y29udGVudDoiXGYyMDcifS5mYS1idXlzZWxsYWRzOmJlZm9yZXtjb250ZW50OiJcZjIwZCJ9LmZhLWNhbGN1bGF0b3I6YmVmb3Jle2NvbnRlbnQ6IlxmMWVjIn0uZmEtY2FsZW5kYXI6YmVmb3Jle2NvbnRlbnQ6IlxmMTMzIn0uZmEtY2FsZW5kYXItYWx0OmJlZm9yZXtjb250ZW50OiJcZjA3MyJ9LmZhLWNhbGVuZGFyLWNoZWNrOmJlZm9yZXtjb250ZW50OiJcZjI3NCJ9LmZhLWNhbGVuZGFyLW1pbnVzOmJlZm9yZXtjb250ZW50OiJcZjI3MiJ9LmZhLWNhbGVuZGFyLXBsdXM6YmVmb3Jle2NvbnRlbnQ6IlxmMjcxIn0uZmEtY2FsZW5kYXItdGltZXM6YmVmb3Jle2NvbnRlbnQ6IlxmMjczIn0uZmEtY2FtZXJhOmJlZm9yZXtjb250ZW50OiJcZjAzMCJ9LmZhLWNhbWVyYS1yZXRybzpiZWZvcmV7Y29udGVudDoiXGYwODMifS5mYS1jYXI6YmVmb3JlLC5mYS1hdXRvbW9iaWxlOmJlZm9yZXtjb250ZW50OiJcZjFiOSJ9LmZhLWNhcmV0LWRvd246YmVmb3Jle2NvbnRlbnQ6IlxmMGQ3In0uZmEtY2FyZXQtbGVmdDpiZWZvcmV7Y29udGVudDoiXGYwZDkifS5mYS1jYXJldC1yaWdodDpiZWZvcmV7Y29udGVudDoiXGYwZGEifS5mYS1jYXJldC1zcXVhcmUtZG93bjpiZWZvcmV7Y29udGVudDoiXGYxNTAifS5mYS1jYXJldC1zcXVhcmUtbGVmdDpiZWZvcmV7Y29udGVudDoiXGYxOTEifS5mYS1jYXJldC1zcXVhcmUtcmlnaHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTUyIn0uZmEtY2FyZXQtc3F1YXJlLXVwOmJlZm9yZXtjb250ZW50OiJcZjE1MSJ9LmZhLWNhcmV0LXVwOmJlZm9yZXtjb250ZW50OiJcZjBkOCJ9LmZhLWNhcnQtYXJyb3ctZG93bjpiZWZvcmV7Y29udGVudDoiXGYyMTgifS5mYS1jYXJ0LXBsdXM6YmVmb3Jle2NvbnRlbnQ6IlxmMjE3In0uZmEtY2MtYW1hem9uLXBheTpiZWZvcmV7Y29udGVudDoiXGY0MmQifS5mYS1jYy1hbWV4OmJlZm9yZXtjb250ZW50OiJcZjFmMyJ9LmZhLWNjLWFwcGxlLXBheTpiZWZvcmV7Y29udGVudDoiXGY0MTYifS5mYS1jYy1kaW5lcnMtY2x1YjpiZWZvcmV7Y29udGVudDoiXGYyNGMifS5mYS1jYy1kaXNjb3ZlcjpiZWZvcmV7Y29udGVudDoiXGYxZjIifS5mYS1jYy1qY2I6YmVmb3Jle2NvbnRlbnQ6IlxmMjRiIn0uZmEtY2MtbWFzdGVyY2FyZDpiZWZvcmV7Y29udGVudDoiXGYxZjEifS5mYS1jYy1wYXlwYWw6YmVmb3Jle2NvbnRlbnQ6IlxmMWY0In0uZmEtY2Mtc3RyaXBlOmJlZm9yZXtjb250ZW50OiJcZjFmNSJ9LmZhLWNjLXZpc2E6YmVmb3Jle2NvbnRlbnQ6IlxmMWYwIn0uZmEtY2VudGVyY29kZTpiZWZvcmV7Y29udGVudDoiXGYzODAifS5mYS1jZXJ0aWZpY2F0ZTpiZWZvcmV7Y29udGVudDoiXGYwYTMifS5mYS1jaGFydC1hcmVhOmJlZm9yZXtjb250ZW50OiJcZjFmZSJ9LmZhLWNoYXJ0LWJhcjpiZWZvcmV7Y29udGVudDoiXGYwODAifS5mYS1jaGFydC1saW5lOmJlZm9yZXtjb250ZW50OiJcZjIwMSJ9LmZhLWNoYXJ0LXBpZTpiZWZvcmV7Y29udGVudDoiXGYyMDAifS5mYS1jaGVjazpiZWZvcmV7Y29udGVudDoiXGYwMGMifS5mYS1jaGVjay1jaXJjbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMDU4In0uZmEtY2hlY2stc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjE0YSJ9LmZhLWNoZXNzOmJlZm9yZXtjb250ZW50OiJcZjQzOSJ9LmZhLWNoZXNzLWJpc2hvcDpiZWZvcmV7Y29udGVudDoiXGY0M2EifS5mYS1jaGVzcy1ib2FyZDpiZWZvcmV7Y29udGVudDoiXGY0M2MifS5mYS1jaGVzcy1raW5nOmJlZm9yZXtjb250ZW50OiJcZjQzZiJ9LmZhLWNoZXNzLWtuaWdodDpiZWZvcmV7Y29udGVudDoiXGY0NDEifS5mYS1jaGVzcy1wYXduOmJlZm9yZXtjb250ZW50OiJcZjQ0MyJ9LmZhLWNoZXNzLXF1ZWVuOmJlZm9yZXtjb250ZW50OiJcZjQ0NSJ9LmZhLWNoZXNzLXJvb2s6YmVmb3Jle2NvbnRlbnQ6IlxmNDQ3In0uZmEtY2hldnJvbi1jaXJjbGUtZG93bjpiZWZvcmV7Y29udGVudDoiXGYxM2EifS5mYS1jaGV2cm9uLWNpcmNsZS1sZWZ0OmJlZm9yZXtjb250ZW50OiJcZjEzNyJ9LmZhLWNoZXZyb24tY2lyY2xlLXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZjEzOCJ9LmZhLWNoZXZyb24tY2lyY2xlLXVwOmJlZm9yZXtjb250ZW50OiJcZjEzOSJ9LmZhLWNoZXZyb24tZG93bjpiZWZvcmV7Y29udGVudDoiXGYwNzgifS5mYS1jaGV2cm9uLWxlZnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDUzIn0uZmEtY2hldnJvbi1yaWdodDpiZWZvcmV7Y29udGVudDoiXGYwNTQifS5mYS1jaGV2cm9uLXVwOmJlZm9yZXtjb250ZW50OiJcZjA3NyJ9LmZhLWNoaWxkOmJlZm9yZXtjb250ZW50OiJcZjFhZSJ9LmZhLWNocm9tZTpiZWZvcmV7Y29udGVudDoiXGYyNjgifS5mYS1jaXJjbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMTExIn0uZmEtY2lyY2xlLW5vdGNoOmJlZm9yZXtjb250ZW50OiJcZjFjZSJ9LmZhLWNsaXBib2FyZDpiZWZvcmV7Y29udGVudDoiXGYzMjgifS5mYS1jbG9jazpiZWZvcmV7Y29udGVudDoiXGYwMTcifS5mYS1jbG9uZTpiZWZvcmV7Y29udGVudDoiXGYyNGQifS5mYS1jbG9zZWQtY2FwdGlvbmluZzpiZWZvcmV7Y29udGVudDoiXGYyMGEifS5mYS1jbG91ZDpiZWZvcmV7Y29udGVudDoiXGYwYzIifS5mYS1jbG91ZC1kb3dubG9hZC1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzgxIn0uZmEtY2xvdWQtdXBsb2FkLWFsdDpiZWZvcmV7Y29udGVudDoiXGYzODIifS5mYS1jbG91ZHNjYWxlOmJlZm9yZXtjb250ZW50OiJcZjM4MyJ9LmZhLWNsb3Vkc21pdGg6YmVmb3Jle2NvbnRlbnQ6IlxmMzg0In0uZmEtY2xvdWR2ZXJzaWZ5OmJlZm9yZXtjb250ZW50OiJcZjM4NSJ9LmZhLWNvZGU6YmVmb3Jle2NvbnRlbnQ6IlxmMTIxIn0uZmEtY29kZS1icmFuY2g6YmVmb3Jle2NvbnRlbnQ6IlxmMTI2In0uZmEtY29kZXBlbjpiZWZvcmV7Y29udGVudDoiXGYxY2IifS5mYS1jb2RpZXBpZTpiZWZvcmV7Y29udGVudDoiXGYyODQifS5mYS1jb2ZmZWU6YmVmb3Jle2NvbnRlbnQ6IlxmMGY0In0uZmEtY29nOmJlZm9yZXtjb250ZW50OiJcZjAxMyJ9LmZhLWNvZ3M6YmVmb3Jle2NvbnRlbnQ6IlxmMDg1In0uZmEtZ2VhcnM6YmVmb3Jle2NvbnRlbnQ6IlxmMDg1In0uZmEtY29sdW1uczpiZWZvcmV7Y29udGVudDoiXGYwZGIifS5mYS1jb21tZW50OmJlZm9yZXtjb250ZW50OiJcZjA3NSJ9LmZhLWNvbW1lbnQtYWx0OmJlZm9yZXtjb250ZW50OiJcZjI3YSJ9LmZhLWNvbW1lbnRzOmJlZm9yZXtjb250ZW50OiJcZjA4NiJ9LmZhLWNvbXBhc3M6YmVmb3Jle2NvbnRlbnQ6IlxmMTRlIn0uZmEtY29tcHJlc3M6YmVmb3Jle2NvbnRlbnQ6IlxmMDY2In0uZmEtY29ubmVjdGRldmVsb3A6YmVmb3Jle2NvbnRlbnQ6IlxmMjBlIn0uZmEtY29udGFvOmJlZm9yZXtjb250ZW50OiJcZjI2ZCJ9LmZhLWNvcHk6YmVmb3Jle2NvbnRlbnQ6IlxmMGM1In0uZmEtY29weXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZjFmOSJ9LmZhLWNwYW5lbDpiZWZvcmV7Y29udGVudDoiXGYzODgifS5mYS1jcmVhdGl2ZS1jb21tb25zOmJlZm9yZXtjb250ZW50OiJcZjI1ZSJ9LmZhLWNyZWRpdC1jYXJkOmJlZm9yZXtjb250ZW50OiJcZjA5ZCJ9LmZhLWNyb3A6YmVmb3Jle2NvbnRlbnQ6IlxmMTI1In0uZmEtY3Jvc3NoYWlyczpiZWZvcmV7Y29udGVudDoiXGYwNWIifS5mYS1jc3MzOmJlZm9yZXtjb250ZW50OiJcZjEzYyJ9LmZhLWNzczMtYWx0OmJlZm9yZXtjb250ZW50OiJcZjM4YiJ9LmZhLWN1YmU6YmVmb3Jle2NvbnRlbnQ6IlxmMWIyIn0uZmEtY3ViZXM6YmVmb3Jle2NvbnRlbnQ6IlxmMWIzIn0uZmEtY3V0OmJlZm9yZXtjb250ZW50OiJcZjBjNCJ9LmZhLWN1dHRsZWZpc2g6YmVmb3Jle2NvbnRlbnQ6IlxmMzhjIn0uZmEtZC1hbmQtZDpiZWZvcmV7Y29udGVudDoiXGYzOGQifS5mYS1kYXNoY3ViZTpiZWZvcmV7Y29udGVudDoiXGYyMTAifS5mYS1kYXRhYmFzZTpiZWZvcmV7Y29udGVudDoiXGYxYzAifS5mYS1kZWFmOmJlZm9yZXtjb250ZW50OiJcZjJhNCJ9LmZhLWRlbGljaW91czpiZWZvcmV7Y29udGVudDoiXGYxYTUifS5mYS1kZXBsb3lkb2c6YmVmb3Jle2NvbnRlbnQ6IlxmMzhlIn0uZmEtZGVza3BybzpiZWZvcmV7Y29udGVudDoiXGYzOGYifS5mYS1kZXNrdG9wOmJlZm9yZXtjb250ZW50OiJcZjEwOCJ9LmZhLWRldmlhbnRhcnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMWJkIn0uZmEtZGlnZzpiZWZvcmV7Y29udGVudDoiXGYxYTYifS5mYS1kaWdpdGFsLW9jZWFuOmJlZm9yZXtjb250ZW50OiJcZjM5MSJ9LmZhLWRpc2NvcmQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzkyIn0uZmEtZGlzY291cnNlOmJlZm9yZXtjb250ZW50OiJcZjM5MyJ9LmZhLWRvY2h1YjpiZWZvcmV7Y29udGVudDoiXGYzOTQifS5mYS1kb2NrZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMzk1In0uZmEtZG9sbGFyLXNpZ246YmVmb3JlLC5mYS1kb2xsYXI6YmVmb3JlLC5mYS11c2Q6YmVmb3Jle2NvbnRlbnQ6IlxmMTU1In0uZmEtZG90LWNpcmNsZTpiZWZvcmV7Y29udGVudDoiXGYxOTIifS5mYS1kb3dubG9hZDpiZWZvcmV7Y29udGVudDoiXGYwMTkifS5mYS1kcmFmdDJkaWdpdGFsOmJlZm9yZXtjb250ZW50OiJcZjM5NiJ9LmZhLWRyaWJiYmxlOmJlZm9yZXtjb250ZW50OiJcZjE3ZCJ9LmZhLWRyaWJiYmxlLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYzOTcifS5mYS1kcm9wYm94OmJlZm9yZXtjb250ZW50OiJcZjE2YiJ9LmZhLWRydXBhbDpiZWZvcmV7Y29udGVudDoiXGYxYTkifS5mYS1keWFsb2c6YmVmb3Jle2NvbnRlbnQ6IlxmMzk5In0uZmEtZWFybHliaXJkczpiZWZvcmV7Y29udGVudDoiXGYzOWEifS5mYS1lZGdlOmJlZm9yZXtjb250ZW50OiJcZjI4MiJ9LmZhLWVkaXQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDQ0In0uZmEtZWplY3Q6YmVmb3Jle2NvbnRlbnQ6IlxmMDUyIn0uZmEtZWxlbWVudG9yOmJlZm9yZXtjb250ZW50OiJcZjQzMCJ9LmZhLWVsbGlwc2lzLWg6YmVmb3Jle2NvbnRlbnQ6IlxmMTQxIn0uZmEtZWxsaXBzaXMtdjpiZWZvcmV7Y29udGVudDoiXGYxNDIifS5mYS1lbWJlcjpiZWZvcmV7Y29udGVudDoiXGY0MjMifS5mYS1lbXBpcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMWQxIn0uZmEtZW52ZWxvcGU6YmVmb3Jle2NvbnRlbnQ6IlxmMGUwIn0uZmEtZW52ZWxvcGUtb3BlbjpiZWZvcmV7Y29udGVudDoiXGYyYjYifS5mYS1lbnZlbG9wZS1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMTk5In0uZmEtZW52aXJhOmJlZm9yZXtjb250ZW50OiJcZjI5OSJ9LmZhLWVyYXNlcjpiZWZvcmV7Y29udGVudDoiXGYxMmQifS5mYS1lcmxhbmc6YmVmb3Jle2NvbnRlbnQ6IlxmMzlkIn0uZmEtZXRoZXJldW06YmVmb3Jle2NvbnRlbnQ6IlxmNDJlIn0uZmEtZXRzeTpiZWZvcmV7Y29udGVudDoiXGYyZDcifS5mYS1ldXJvLXNpZ246YmVmb3Jle2NvbnRlbnQ6IlxmMTUzIn0uZmEtZXhjaGFuZ2UtYWx0OmJlZm9yZXtjb250ZW50OiJcZjM2MiJ9LmZhLWV4Y2xhbWF0aW9uOmJlZm9yZXtjb250ZW50OiJcZjEyYSJ9LmZhLWV4Y2xhbWF0aW9uLWNpcmNsZTpiZWZvcmV7Y29udGVudDoiXGYwNmEifS5mYS1leGNsYW1hdGlvbi10cmlhbmdsZTpiZWZvcmV7Y29udGVudDoiXGYwNzEifS5mYS1leHBhbmQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDY1In0uZmEtZXhwYW5kLWFycm93cy1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzFlIn0uZmEtZXhwZWRpdGVkc3NsOmJlZm9yZXtjb250ZW50OiJcZjIzZSJ9LmZhLWV4dGVybmFsLWxpbmstYWx0OmJlZm9yZXtjb250ZW50OiJcZjM1ZCJ9LmZhLWV4dGVybmFsLWxpbmstc3F1YXJlLWFsdDpiZWZvcmV7Y29udGVudDoiXGYzNjAifS5mYS1leWU6YmVmb3Jle2NvbnRlbnQ6IlxmMDZlIn0uZmEtZXllLWRyb3BwZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMWZiIn0uZmEtZXllLXNsYXNoOmJlZm9yZXtjb250ZW50OiJcZjA3MCJ9LmZhLWZhY2Vib29rOmJlZm9yZXtjb250ZW50OiJcZjA5YSJ9LmZhLWZhY2Vib29rLWY6YmVmb3Jle2NvbnRlbnQ6IlxmMzllIn0uZmEtZmFjZWJvb2stbWVzc2VuZ2VyOmJlZm9yZXtjb250ZW50OiJcZjM5ZiJ9LmZhLWZhY2Vib29rLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYwODIifS5mYS1mYXN0LWJhY2t3YXJkOmJlZm9yZXtjb250ZW50OiJcZjA0OSJ9LmZhLWZhc3QtZm9yd2FyZDpiZWZvcmV7Y29udGVudDoiXGYwNTAifS5mYS1mYXg6YmVmb3Jle2NvbnRlbnQ6IlxmMWFjIn0uZmEtZmVtYWxlOmJlZm9yZXtjb250ZW50OiJcZjE4MiJ9LmZhLWZpZ2h0ZXItamV0OmJlZm9yZXtjb250ZW50OiJcZjBmYiJ9LmZhLWZpbGU6YmVmb3JlLC5mYS1maWxlLW86YmVmb3Jle2NvbnRlbnQ6IlxmMTViIn0uZmEtZmlsZS1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTVjIn0uZmEtZmlsZS1hcmNoaXZlOmJlZm9yZXtjb250ZW50OiJcZjFjNiJ9LmZhLWZpbGUtYXVkaW86YmVmb3Jle2NvbnRlbnQ6IlxmMWM3In0uZmEtZmlsZS1jb2RlOmJlZm9yZXtjb250ZW50OiJcZjFjOSJ9LmZhLWZpbGUtZXhjZWw6YmVmb3Jle2NvbnRlbnQ6IlxmMWMzIn0uZmEtZmlsZS1pbWFnZTpiZWZvcmV7Y29udGVudDoiXGYxYzUifS5mYS1maWxlLXBkZjpiZWZvcmV7Y29udGVudDoiXGYxYzEifS5mYS1maWxlLXBvd2VycG9pbnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMWM0In0uZmEtZmlsZS12aWRlbzpiZWZvcmV7Y29udGVudDoiXGYxYzgifS5mYS1maWxlLXdvcmQ6YmVmb3Jle2NvbnRlbnQ6IlxmMWMyIn0uZmEtZmlsbTpiZWZvcmV7Y29udGVudDoiXGYwMDgifS5mYS1maWx0ZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMGIwIn0uZmEtZmlyZTpiZWZvcmV7Y29udGVudDoiXGYwNmQifS5mYS1maXJlLWV4dGluZ3Vpc2hlcjpiZWZvcmV7Y29udGVudDoiXGYxMzQifS5mYS1maXJlZm94OmJlZm9yZXtjb250ZW50OiJcZjI2OSJ9LmZhLWZpcnN0LW9yZGVyOmJlZm9yZXtjb250ZW50OiJcZjJiMCJ9LmZhLWZpcnN0ZHJhZnQ6YmVmb3Jle2NvbnRlbnQ6IlxmM2ExIn0uZmEtZmxhZzpiZWZvcmV7Y29udGVudDoiXGYwMjQifS5mYS1mbGFnLWNoZWNrZXJlZDpiZWZvcmV7Y29udGVudDoiXGYxMWUifS5mYS1mbGFzazpiZWZvcmV7Y29udGVudDoiXGYwYzMifS5mYS1mbGlja3I6YmVmb3Jle2NvbnRlbnQ6IlxmMTZlIn0uZmEtZmxpcGJvYXJkOmJlZm9yZXtjb250ZW50OiJcZjQ0ZCJ9LmZhLWZseTpiZWZvcmV7Y29udGVudDoiXGY0MTcifS5mYS1mb2xkZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMDdiIn0uZmEtZm9sZGVyLW9wZW46YmVmb3Jle2NvbnRlbnQ6IlxmMDdjIn0uZmEtZm9udDpiZWZvcmV7Y29udGVudDoiXGYwMzEifS5mYS1mb250LWF3ZXNvbWU6YmVmb3Jle2NvbnRlbnQ6IlxmMmI0In0uZmEtZm9udC1hd2Vzb21lLWFsdDpiZWZvcmV7Y29udGVudDoiXGYzNWMifS5mYS1mb250LWF3ZXNvbWUtZmxhZzpiZWZvcmV7Y29udGVudDoiXGY0MjUifS5mYS1mb250aWNvbnM6YmVmb3Jle2NvbnRlbnQ6IlxmMjgwIn0uZmEtZm9udGljb25zLWZpOmJlZm9yZXtjb250ZW50OiJcZjNhMiJ9LmZhLWZvb3RiYWxsLWJhbGw6YmVmb3Jle2NvbnRlbnQ6IlxmNDRlIn0uZmEtZm9ydC1hd2Vzb21lOmJlZm9yZXtjb250ZW50OiJcZjI4NiJ9LmZhLWZvcnQtYXdlc29tZS1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmM2EzIn0uZmEtZm9ydW1iZWU6YmVmb3Jle2NvbnRlbnQ6IlxmMjExIn0uZmEtZm9yd2FyZDpiZWZvcmV7Y29udGVudDoiXGYwNGUifS5mYS1mb3Vyc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjE4MCJ9LmZhLWZyZWUtY29kZS1jYW1wOmJlZm9yZXtjb250ZW50OiJcZjJjNSJ9LmZhLWZyZWVic2Q6YmVmb3Jle2NvbnRlbnQ6IlxmM2E0In0uZmEtZnJvd246YmVmb3Jle2NvbnRlbnQ6IlxmMTE5In0uZmEtZnV0Ym9sOmJlZm9yZXtjb250ZW50OiJcZjFlMyJ9LmZhLWdhbWVwYWQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTFiIn0uZmEtZ2F2ZWw6YmVmb3Jle2NvbnRlbnQ6IlxmMGUzIn0uZmEtZ2VtOmJlZm9yZXtjb250ZW50OiJcZjNhNSJ9LmZhLWdlbmRlcmxlc3M6YmVmb3Jle2NvbnRlbnQ6IlxmMjJkIn0uZmEtZ2V0LXBvY2tldDpiZWZvcmV7Y29udGVudDoiXGYyNjUifS5mYS1nZzpiZWZvcmV7Y29udGVudDoiXGYyNjAifS5mYS1nZy1jaXJjbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMjYxIn0uZmEtZ2lmdDpiZWZvcmV7Y29udGVudDoiXGYwNmIifS5mYS1naXQ6YmVmb3Jle2NvbnRlbnQ6IlxmMWQzIn0uZmEtZ2l0LXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYxZDIifS5mYS1naXRodWI6YmVmb3Jle2NvbnRlbnQ6IlxmMDliIn0uZmEtZ2l0aHViLWFsdDpiZWZvcmV7Y29udGVudDoiXGYxMTMifS5mYS1naXRodWItc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjA5MiJ9LmZhLWdpdGtyYWtlbjpiZWZvcmV7Y29udGVudDoiXGYzYTYifS5mYS1naXRsYWI6YmVmb3Jle2NvbnRlbnQ6IlxmMjk2In0uZmEtZ2l0dGVyOmJlZm9yZXtjb250ZW50OiJcZjQyNiJ9LmZhLWdsYXNzLW1hcnRpbmk6YmVmb3Jle2NvbnRlbnQ6IlxmMDAwIn0uZmEtZ2xpZGU6YmVmb3Jle2NvbnRlbnQ6IlxmMmE1In0uZmEtZ2xpZGUtZzpiZWZvcmV7Y29udGVudDoiXGYyYTYifS5mYS1nbG9iZTpiZWZvcmV7Y29udGVudDoiXGYwYWMifS5mYS1nb2ZvcmU6YmVmb3Jle2NvbnRlbnQ6IlxmM2E3In0uZmEtZ29sZi1iYWxsOmJlZm9yZXtjb250ZW50OiJcZjQ1MCJ9LmZhLWdvb2RyZWFkczpiZWZvcmV7Y29udGVudDoiXGYzYTgifS5mYS1nb29kcmVhZHMtZzpiZWZvcmV7Y29udGVudDoiXGYzYTkifS5mYS1nb29nbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMWEwIn0uZmEtZ29vZ2xlLWRyaXZlOmJlZm9yZXtjb250ZW50OiJcZjNhYSJ9LmZhLWdvb2dsZS1wbGF5OmJlZm9yZXtjb250ZW50OiJcZjNhYiJ9LmZhLWdvb2dsZS1wbHVzOmJlZm9yZXtjb250ZW50OiJcZjJiMyJ9LmZhLWdvb2dsZS1wbHVzLWc6YmVmb3Jle2NvbnRlbnQ6IlxmMGQ1In0uZmEtZ29vZ2xlLXBsdXMtc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjBkNCJ9LmZhLWdvb2dsZS13YWxsZXQ6YmVmb3Jle2NvbnRlbnQ6IlxmMWVlIn0uZmEtZ3JhZHVhdGlvbi1jYXA6YmVmb3Jle2NvbnRlbnQ6IlxmMTlkIn0uZmEtZ3JhdGlwYXk6YmVmb3Jle2NvbnRlbnQ6IlxmMTg0In0uZmEtZ3JhdjpiZWZvcmV7Y29udGVudDoiXGYyZDYifS5mYS1ncmlwZmlyZTpiZWZvcmV7Y29udGVudDoiXGYzYWMifS5mYS1ncnVudDpiZWZvcmV7Y29udGVudDoiXGYzYWQifS5mYS1ndWxwOmJlZm9yZXtjb250ZW50OiJcZjNhZSJ9LmZhLWgtc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjBmZCJ9LmZhLWhhY2tlci1uZXdzOmJlZm9yZXtjb250ZW50OiJcZjFkNCJ9LmZhLWhhY2tlci1uZXdzLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYzYWYifS5mYS1oYW5kLWxpemFyZDpiZWZvcmV7Y29udGVudDoiXGYyNTgifS5mYS1oYW5kLXBhcGVyOmJlZm9yZXtjb250ZW50OiJcZjI1NiJ9LmZhLWhhbmQtcGVhY2U6YmVmb3Jle2NvbnRlbnQ6IlxmMjViIn0uZmEtaGFuZC1wb2ludC1kb3duOmJlZm9yZXtjb250ZW50OiJcZjBhNyJ9LmZhLWhhbmQtcG9pbnQtbGVmdDpiZWZvcmV7Y29udGVudDoiXGYwYTUifS5mYS1oYW5kLXBvaW50LXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZjBhNCJ9LmZhLWhhbmQtcG9pbnQtdXA6YmVmb3Jle2NvbnRlbnQ6IlxmMGE2In0uZmEtaGFuZC1wb2ludGVyOmJlZm9yZSwuZmEtaGFuZC1wb2ludGVyLW86YmVmb3Jle2NvbnRlbnQ6IlxmMjVhIn0uZmEtaGFuZC1yb2NrOmJlZm9yZXtjb250ZW50OiJcZjI1NSJ9LmZhLWhhbmQtc2Npc3NvcnM6YmVmb3Jle2NvbnRlbnQ6IlxmMjU3In0uZmEtaGFuZC1zcG9jazpiZWZvcmV7Y29udGVudDoiXGYyNTkifS5mYS1oYW5kc2hha2U6YmVmb3Jle2NvbnRlbnQ6IlxmMmI1In0uZmEtaGFzaHRhZzpiZWZvcmV7Y29udGVudDoiXGYyOTIifS5mYS1oZGQ6YmVmb3Jle2NvbnRlbnQ6IlxmMGEwIn0uZmEtaGVhZGluZzpiZWZvcmV7Y29udGVudDoiXGYxZGMifS5mYS1oZWFkcGhvbmVzOmJlZm9yZXtjb250ZW50OiJcZjAyNSJ9LmZhLWhlYXJ0OmJlZm9yZXtjb250ZW50OiJcZjAwNCJ9LmZhLWhlYXJ0YmVhdDpiZWZvcmV7Y29udGVudDoiXGYyMWUifS5mYS1oaXBzOmJlZm9yZXtjb250ZW50OiJcZjQ1MiJ9LmZhLWhpcmUtYS1oZWxwZXI6YmVmb3Jle2NvbnRlbnQ6IlxmM2IwIn0uZmEtaGlzdG9yeTpiZWZvcmV7Y29udGVudDoiXGYxZGEifS5mYS1ob2NrZXktcHVjazpiZWZvcmV7Y29udGVudDoiXGY0NTMifS5mYS1ob21lOmJlZm9yZXtjb250ZW50OiJcZjAxNSJ9LmZhLWhvb2xpOmJlZm9yZXtjb250ZW50OiJcZjQyNyJ9LmZhLWhvc3BpdGFsOmJlZm9yZXtjb250ZW50OiJcZjBmOCJ9LmZhLWhvdGphcjpiZWZvcmV7Y29udGVudDoiXGYzYjEifS5mYS1ob3VyZ2xhc3M6YmVmb3Jle2NvbnRlbnQ6IlxmMjU0In0uZmEtaG91cmdsYXNzLWVuZDpiZWZvcmV7Y29udGVudDoiXGYyNTMifS5mYS1ob3VyZ2xhc3MtaGFsZjpiZWZvcmV7Y29udGVudDoiXGYyNTIifS5mYS1ob3VyZ2xhc3Mtc3RhcnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMjUxIn0uZmEtaG91eno6YmVmb3Jle2NvbnRlbnQ6IlxmMjdjIn0uZmEtaHRtbDU6YmVmb3Jle2NvbnRlbnQ6IlxmMTNiIn0uZmEtaHVic3BvdDpiZWZvcmV7Y29udGVudDoiXGYzYjIifS5mYS1pLWN1cnNvcjpiZWZvcmV7Y29udGVudDoiXGYyNDYifS5mYS1pZC1iYWRnZTpiZWZvcmV7Y29udGVudDoiXGYyYzEifS5mYS1pZC1jYXJkOmJlZm9yZXtjb250ZW50OiJcZjJjMiJ9LmZhLWltYWdlOmJlZm9yZXtjb250ZW50OiJcZjAzZSJ9LmZhLWltYWdlczpiZWZvcmV7Y29udGVudDoiXGYzMDIifS5mYS1pbWRiOmJlZm9yZXtjb250ZW50OiJcZjJkOCJ9LmZhLWluYm94OmJlZm9yZXtjb250ZW50OiJcZjAxYyJ9LmZhLWluZGVudDpiZWZvcmV7Y29udGVudDoiXGYwM2MifS5mYS1pbmR1c3RyeTpiZWZvcmV7Y29udGVudDoiXGYyNzUifS5mYS1pbmZvOmJlZm9yZXtjb250ZW50OiJcZjEyOSJ9LmZhLWluZm8tY2lyY2xlOmJlZm9yZXtjb250ZW50OiJcZjA1YSJ9LmZhLWluc3RhZ3JhbTpiZWZvcmV7Y29udGVudDoiXGYxNmQifS5mYS1pbnRlcm5ldC1leHBsb3JlcjpiZWZvcmV7Y29udGVudDoiXGYyNmIifS5mYS1pb3hob3N0OmJlZm9yZXtjb250ZW50OiJcZjIwOCJ9LmZhLWl0YWxpYzpiZWZvcmV7Y29udGVudDoiXGYwMzMifS5mYS1pdHVuZXM6YmVmb3Jle2NvbnRlbnQ6IlxmM2I0In0uZmEtaXR1bmVzLW5vdGU6YmVmb3Jle2NvbnRlbnQ6IlxmM2I1In0uZmEtamVua2luczpiZWZvcmV7Y29udGVudDoiXGYzYjYifS5mYS1qb2dldDpiZWZvcmV7Y29udGVudDoiXGYzYjcifS5mYS1qb29tbGE6YmVmb3Jle2NvbnRlbnQ6IlxmMWFhIn0uZmEtanM6YmVmb3Jle2NvbnRlbnQ6IlxmM2I4In0uZmEtanMtc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjNiOSJ9LmZhLWpzZmlkZGxlOmJlZm9yZXtjb250ZW50OiJcZjFjYyJ9LmZhLWtleTpiZWZvcmV7Y29udGVudDoiXGYwODQifS5mYS1rZXlib2FyZDpiZWZvcmV7Y29udGVudDoiXGYxMWMifS5mYS1rZXljZG46YmVmb3Jle2NvbnRlbnQ6IlxmM2JhIn0uZmEta2lja3N0YXJ0ZXI6YmVmb3Jle2NvbnRlbnQ6IlxmM2JiIn0uZmEta2lja3N0YXJ0ZXItazpiZWZvcmV7Y29udGVudDoiXGYzYmMifS5mYS1rb3J2dWU6YmVmb3Jle2NvbnRlbnQ6IlxmNDJmIn0uZmEtbGFuZ3VhZ2U6YmVmb3Jle2NvbnRlbnQ6IlxmMWFiIn0uZmEtbGFwdG9wOmJlZm9yZXtjb250ZW50OiJcZjEwOSJ9LmZhLWxhcmF2ZWw6YmVmb3Jle2NvbnRlbnQ6IlxmM2JkIn0uZmEtbGFzdGZtOmJlZm9yZXtjb250ZW50OiJcZjIwMiJ9LmZhLWxhc3RmbS1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMjAzIn0uZmEtbGVhZjpiZWZvcmV7Y29udGVudDoiXGYwNmMifS5mYS1sZWFucHViOmJlZm9yZXtjb250ZW50OiJcZjIxMiJ9LmZhLWxlbW9uOmJlZm9yZXtjb250ZW50OiJcZjA5NCJ9LmZhLWxlc3M6YmVmb3Jle2NvbnRlbnQ6IlxmNDFkIn0uZmEtbGV2ZWwtZG93bi1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmM2JlIn0uZmEtbGV2ZWwtdXAtYWx0OmJlZm9yZXtjb250ZW50OiJcZjNiZiJ9LmZhLWxpZmUtcmluZzpiZWZvcmV7Y29udGVudDoiXGYxY2QifS5mYS1saWdodGJ1bGI6YmVmb3Jle2NvbnRlbnQ6IlxmMGViIn0uZmEtbGluZTpiZWZvcmV7Y29udGVudDoiXGYzYzAifS5mYS1saW5rOmJlZm9yZXtjb250ZW50OiJcZjBjMSJ9LmZhLWxpbmtlZGluOmJlZm9yZXtjb250ZW50OiJcZjA4YyJ9LmZhLWxpbmtlZGluLWluOmJlZm9yZXtjb250ZW50OiJcZjBlMSJ9LmZhLWxpbm9kZTpiZWZvcmV7Y29udGVudDoiXGYyYjgifS5mYS1saW51eDpiZWZvcmV7Y29udGVudDoiXGYxN2MifS5mYS1saXJhLXNpZ246YmVmb3Jle2NvbnRlbnQ6IlxmMTk1In0uZmEtbGlzdDpiZWZvcmV7Y29udGVudDoiXGYwM2EifS5mYS1saXN0LWFsdDpiZWZvcmV7Y29udGVudDoiXGYwMjIifS5mYS1saXN0LW9sOmJlZm9yZXtjb250ZW50OiJcZjBjYiJ9LmZhLWxpc3QtdWw6YmVmb3Jle2NvbnRlbnQ6IlxmMGNhIn0uZmEtbG9jYXRpb24tYXJyb3c6YmVmb3Jle2NvbnRlbnQ6IlxmMTI0In0uZmEtbG9jazpiZWZvcmV7Y29udGVudDoiXGYwMjMifS5mYS1sb2NrLW9wZW46YmVmb3Jle2NvbnRlbnQ6IlxmM2MxIn0uZmEtbG9uZy1hcnJvdy1hbHQtZG93bjpiZWZvcmV7Y29udGVudDoiXGYzMDkifS5mYS1sb25nLWFycm93LWFsdC1sZWZ0OmJlZm9yZXtjb250ZW50OiJcZjMwYSJ9LmZhLWxvbmctYXJyb3ctYWx0LXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZjMwYiJ9LmZhLWxvbmctYXJyb3ctYWx0LXVwOmJlZm9yZXtjb250ZW50OiJcZjMwYyJ9LmZhLWxvdy12aXNpb246YmVmb3Jle2NvbnRlbnQ6IlxmMmE4In0uZmEtbHlmdDpiZWZvcmV7Y29udGVudDoiXGYzYzMifS5mYS1tYWdlbnRvOmJlZm9yZXtjb250ZW50OiJcZjNjNCJ9LmZhLW1hZ2ljOmJlZm9yZXtjb250ZW50OiJcZjBkMCJ9LmZhLW1hZ25ldDpiZWZvcmV7Y29udGVudDoiXGYwNzYifS5mYS1tYWxlOmJlZm9yZXtjb250ZW50OiJcZjE4MyJ9LmZhLW1hcDpiZWZvcmV7Y29udGVudDoiXGYyNzkifS5mYS1tYXAtbWFya2VyOmJlZm9yZXtjb250ZW50OiJcZjA0MSJ9LmZhLW1hcC1tYXJrZXItYWx0OmJlZm9yZXtjb250ZW50OiJcZjNjNSJ9LmZhLW1hcC1waW46YmVmb3Jle2NvbnRlbnQ6IlxmMjc2In0uZmEtbWFwLXNpZ25zOmJlZm9yZXtjb250ZW50OiJcZjI3NyJ9LmZhLW1hcnM6YmVmb3Jle2NvbnRlbnQ6IlxmMjIyIn0uZmEtbWFycy1kb3VibGU6YmVmb3Jle2NvbnRlbnQ6IlxmMjI3In0uZmEtbWFycy1zdHJva2U6YmVmb3Jle2NvbnRlbnQ6IlxmMjI5In0uZmEtbWFycy1zdHJva2UtaDpiZWZvcmV7Y29udGVudDoiXGYyMmIifS5mYS1tYXJzLXN0cm9rZS12OmJlZm9yZXtjb250ZW50OiJcZjIyYSJ9LmZhLW1heGNkbjpiZWZvcmV7Y29udGVudDoiXGYxMzYifS5mYS1tZWRhcHBzOmJlZm9yZXtjb250ZW50OiJcZjNjNiJ9LmZhLW1lZGl1bTpiZWZvcmV7Y29udGVudDoiXGYyM2EifS5mYS1tZWRpdW0tbTpiZWZvcmV7Y29udGVudDoiXGYzYzcifS5mYS1tZWRraXQ6YmVmb3Jle2NvbnRlbnQ6IlxmMGZhIn0uZmEtbWVkcnQ6YmVmb3Jle2NvbnRlbnQ6IlxmM2M4In0uZmEtbWVldHVwOmJlZm9yZXtjb250ZW50OiJcZjJlMCJ9LmZhLW1laDpiZWZvcmV7Y29udGVudDoiXGYxMWEifS5mYS1tZXJjdXJ5OmJlZm9yZXtjb250ZW50OiJcZjIyMyJ9LmZhLW1pY3JvY2hpcDpiZWZvcmV7Y29udGVudDoiXGYyZGIifS5mYS1taWNyb3Bob25lOmJlZm9yZXtjb250ZW50OiJcZjEzMCJ9LmZhLW1pY3JvcGhvbmUtc2xhc2g6YmVmb3Jle2NvbnRlbnQ6IlxmMTMxIn0uZmEtbWljcm9zb2Z0OmJlZm9yZXtjb250ZW50OiJcZjNjYSJ9LmZhLW1pbnVzOmJlZm9yZXtjb250ZW50OiJcZjA2OCJ9LmZhLW1pbnVzLWNpcmNsZTpiZWZvcmV7Y29udGVudDoiXGYwNTYifS5mYS1taW51cy1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMTQ2In0uZmEtbWl4OmJlZm9yZXtjb250ZW50OiJcZjNjYiJ9LmZhLW1peGNsb3VkOmJlZm9yZXtjb250ZW50OiJcZjI4OSJ9LmZhLW1penVuaTpiZWZvcmV7Y29udGVudDoiXGYzY2MifS5mYS1tb2JpbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMTBiIn0uZmEtbW9iaWxlLWFsdDpiZWZvcmV7Y29udGVudDoiXGYzY2QifS5mYS1tb2R4OmJlZm9yZXtjb250ZW50OiJcZjI4NSJ9LmZhLW1vbmVybzpiZWZvcmV7Y29udGVudDoiXGYzZDAifS5mYS1tb25leS1iaWxsLWFsdDpiZWZvcmV7Y29udGVudDoiXGYzZDEifS5mYS1tb29uOmJlZm9yZXtjb250ZW50OiJcZjE4NiJ9LmZhLW1vdG9yY3ljbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMjFjIn0uZmEtbW91c2UtcG9pbnRlcjpiZWZvcmV7Y29udGVudDoiXGYyNDUifS5mYS1tdXNpYzpiZWZvcmV7Y29udGVudDoiXGYwMDEifS5mYS1uYXBzdGVyOmJlZm9yZXtjb250ZW50OiJcZjNkMiJ9LmZhLW5ldXRlcjpiZWZvcmV7Y29udGVudDoiXGYyMmMifS5mYS1uZXdzcGFwZXI6YmVmb3JlLC5mYS1uZXdzcGFwZXItbzpiZWZvcmV7Y29udGVudDoiXGYxZWEifS5mYS1uaW50ZW5kby1zd2l0Y2g6YmVmb3Jle2NvbnRlbnQ6IlxmNDE4In0uZmEtbm9kZTpiZWZvcmV7Y29udGVudDoiXGY0MTkifS5mYS1ub2RlLWpzOmJlZm9yZXtjb250ZW50OiJcZjNkMyJ9LmZhLW5wbTpiZWZvcmV7Y29udGVudDoiXGYzZDQifS5mYS1uczg6YmVmb3Jle2NvbnRlbnQ6IlxmM2Q1In0uZmEtbnV0cml0aW9uaXg6YmVmb3Jle2NvbnRlbnQ6IlxmM2Q2In0uZmEtb2JqZWN0LWdyb3VwOmJlZm9yZXtjb250ZW50OiJcZjI0NyJ9LmZhLW9iamVjdC11bmdyb3VwOmJlZm9yZXtjb250ZW50OiJcZjI0OCJ9LmZhLW9kbm9rbGFzc25pa2k6YmVmb3Jle2NvbnRlbnQ6IlxmMjYzIn0uZmEtb2Rub2tsYXNzbmlraS1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMjY0In0uZmEtb3BlbmNhcnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMjNkIn0uZmEtb3BlbmlkOmJlZm9yZXtjb250ZW50OiJcZjE5YiJ9LmZhLW9wZXJhOmJlZm9yZXtjb250ZW50OiJcZjI2YSJ9LmZhLW9wdGluLW1vbnN0ZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMjNjIn0uZmEtb3NpOmJlZm9yZXtjb250ZW50OiJcZjQxYSJ9LmZhLW91dGRlbnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDNiIn0uZmEtcGFnZTQ6YmVmb3Jle2NvbnRlbnQ6IlxmM2Q3In0uZmEtcGFnZWxpbmVzOmJlZm9yZXtjb250ZW50OiJcZjE4YyJ9LmZhLXBhaW50LWJydXNoOmJlZm9yZXtjb250ZW50OiJcZjFmYyJ9LmZhLXBhbGZlZDpiZWZvcmV7Y29udGVudDoiXGYzZDgifS5mYS1wYXBlci1wbGFuZTpiZWZvcmV7Y29udGVudDoiXGYxZDgifS5mYS1wYXBlcmNsaXA6YmVmb3Jle2NvbnRlbnQ6IlxmMGM2In0uZmEtcGFyYWdyYXBoOmJlZm9yZXtjb250ZW50OiJcZjFkZCJ9LmZhLXBhc3RlOmJlZm9yZXtjb250ZW50OiJcZjBlYSJ9LmZhLXBhdHJlb246YmVmb3Jle2NvbnRlbnQ6IlxmM2Q5In0uZmEtcGF1c2U6YmVmb3Jle2NvbnRlbnQ6IlxmMDRjIn0uZmEtcGF1c2UtY2lyY2xlOmJlZm9yZXtjb250ZW50OiJcZjI4YiJ9LmZhLXBhdzpiZWZvcmV7Y29udGVudDoiXGYxYjAifS5mYS1wYXlwYWw6YmVmb3Jle2NvbnRlbnQ6IlxmMWVkIn0uZmEtcGVuLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYxNGIifS5mYS1wZW5jaWwtYWx0OmJlZm9yZXtjb250ZW50OiJcZjMwMyJ9LmZhLXBlcmNlbnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMjk1In0uZmEtcGVyaXNjb3BlOmJlZm9yZXtjb250ZW50OiJcZjNkYSJ9LmZhLXBoYWJyaWNhdG9yOmJlZm9yZXtjb250ZW50OiJcZjNkYiJ9LmZhLXBob2VuaXgtZnJhbWV3b3JrOmJlZm9yZXtjb250ZW50OiJcZjNkYyJ9LmZhLXBob25lOmJlZm9yZXtjb250ZW50OiJcZjA5NSJ9LmZhLXBob25lLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYwOTgifS5mYS1waG9uZS12b2x1bWU6YmVmb3Jle2NvbnRlbnQ6IlxmMmEwIn0uZmEtcGhwOmJlZm9yZXtjb250ZW50OiJcZjQ1NyJ9LmZhLXBpZWQtcGlwZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMmFlIn0uZmEtcGllZC1waXBlci1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMWE4In0uZmEtcGllZC1waXBlci1wcDpiZWZvcmV7Y29udGVudDoiXGYxYTcifS5mYS1waW50ZXJlc3Q6YmVmb3Jle2NvbnRlbnQ6IlxmMGQyIn0uZmEtcGludGVyZXN0LXA6YmVmb3Jle2NvbnRlbnQ6IlxmMjMxIn0uZmEtcGludGVyZXN0LXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYwZDMifS5mYS1wbGFuZTpiZWZvcmV7Y29udGVudDoiXGYwNzIifS5mYS1wbGF5OmJlZm9yZXtjb250ZW50OiJcZjA0YiJ9LmZhLXBsYXktY2lyY2xlOmJlZm9yZXtjb250ZW50OiJcZjE0NCJ9LmZhLXBsYXlzdGF0aW9uOmJlZm9yZXtjb250ZW50OiJcZjNkZiJ9LmZhLXBsdWc6YmVmb3Jle2NvbnRlbnQ6IlxmMWU2In0uZmEtcGx1czpiZWZvcmV7Y29udGVudDoiXGYwNjcifS5mYS1wbHVzLWNpcmNsZTpiZWZvcmV7Y29udGVudDoiXGYwNTUifS5mYS1wbHVzLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYwZmUifS5mYS1wb2RjYXN0OmJlZm9yZXtjb250ZW50OiJcZjJjZSJ9LmZhLXBvdW5kLXNpZ246YmVmb3Jle2NvbnRlbnQ6IlxmMTU0In0uZmEtcG93ZXItb2ZmOmJlZm9yZXtjb250ZW50OiJcZjAxMSJ9LmZhLXByaW50OmJlZm9yZXtjb250ZW50OiJcZjAyZiJ9LmZhLXByb2R1Y3QtaHVudDpiZWZvcmV7Y29udGVudDoiXGYyODgifS5mYS1wdXNoZWQ6YmVmb3Jle2NvbnRlbnQ6IlxmM2UxIn0uZmEtcHV6emxlLXBpZWNlOmJlZm9yZXtjb250ZW50OiJcZjEyZSJ9LmZhLXB5dGhvbjpiZWZvcmV7Y29udGVudDoiXGYzZTIifS5mYS1xcTpiZWZvcmV7Y29udGVudDoiXGYxZDYifS5mYS1xcmNvZGU6YmVmb3Jle2NvbnRlbnQ6IlxmMDI5In0uZmEtcXVlc3Rpb246YmVmb3Jle2NvbnRlbnQ6IlxmMTI4In0uZmEtcXVlc3Rpb24tY2lyY2xlOmJlZm9yZXtjb250ZW50OiJcZjA1OSJ9LmZhLXF1aWRkaXRjaDpiZWZvcmV7Y29udGVudDoiXGY0NTgifS5mYS1xdWluc2NhcGU6YmVmb3Jle2NvbnRlbnQ6IlxmNDU5In0uZmEtcXVvcmE6YmVmb3Jle2NvbnRlbnQ6IlxmMmM0In0uZmEtcXVvdGUtbGVmdDpiZWZvcmV7Y29udGVudDoiXGYxMGQifS5mYS1xdW90ZS1yaWdodDpiZWZvcmV7Y29udGVudDoiXGYxMGUifS5mYS1yYW5kb206YmVmb3Jle2NvbnRlbnQ6IlxmMDc0In0uZmEtcmF2ZWxyeTpiZWZvcmV7Y29udGVudDoiXGYyZDkifS5mYS1yZWFjdDpiZWZvcmV7Y29udGVudDoiXGY0MWIifS5mYS1yZWJlbDpiZWZvcmV7Y29udGVudDoiXGYxZDAifS5mYS1yZWN5Y2xlOmJlZm9yZXtjb250ZW50OiJcZjFiOCJ9LmZhLXJlZC1yaXZlcjpiZWZvcmV7Y29udGVudDoiXGYzZTMifS5mYS1yZWRkaXQ6YmVmb3Jle2NvbnRlbnQ6IlxmMWExIn0uZmEtcmVkZGl0LWFsaWVuOmJlZm9yZXtjb250ZW50OiJcZjI4MSJ9LmZhLXJlZGRpdC1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMWEyIn0uZmEtcmVkbzpiZWZvcmV7Y29udGVudDoiXGYwMWUifS5mYS1yZWRvLWFsdDpiZWZvcmV7Y29udGVudDoiXGYyZjkifS5mYS1yZWdpc3RlcmVkOmJlZm9yZXtjb250ZW50OiJcZjI1ZCJ9LmZhLXJlbmRhY3Q6YmVmb3Jle2NvbnRlbnQ6IlxmM2U0In0uZmEtcmVucmVuOmJlZm9yZXtjb250ZW50OiJcZjE4YiJ9LmZhLXJlcGx5OmJlZm9yZXtjb250ZW50OiJcZjNlNSJ9LmZhLXJlcGx5LWFsbDpiZWZvcmV7Y29udGVudDoiXGYxMjIifS5mYS1yZXBseWQ6YmVmb3Jle2NvbnRlbnQ6IlxmM2U2In0uZmEtcmVzb2x2aW5nOmJlZm9yZXtjb250ZW50OiJcZjNlNyJ9LmZhLXJldHdlZXQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDc5In0uZmEtcm9hZDpiZWZvcmV7Y29udGVudDoiXGYwMTgifS5mYS1yb2NrZXQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTM1In0uZmEtcm9ja2V0Y2hhdDpiZWZvcmV7Y29udGVudDoiXGYzZTgifS5mYS1yb2Nrcm1zOmJlZm9yZXtjb250ZW50OiJcZjNlOSJ9LmZhLXJzczpiZWZvcmV7Y29udGVudDoiXGYwOWUifS5mYS1yc3Mtc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjE0MyJ9LmZhLXJ1YmxlLXNpZ246YmVmb3Jle2NvbnRlbnQ6IlxmMTU4In0uZmEtcnVwZWUtc2lnbjpiZWZvcmV7Y29udGVudDoiXGYxNTYifS5mYS1zYWZhcmk6YmVmb3Jle2NvbnRlbnQ6IlxmMjY3In0uZmEtc2FzczpiZWZvcmV7Y29udGVudDoiXGY0MWUifS5mYS1zYXZlOmJlZm9yZXtjb250ZW50OiJcZjBjNyJ9LmZhLXNjaGxpeDpiZWZvcmV7Y29udGVudDoiXGYzZWEifS5mYS1zY3JpYmQ6YmVmb3Jle2NvbnRlbnQ6IlxmMjhhIn0uZmEtc2VhcmNoOmJlZm9yZXtjb250ZW50OiJcZjAwMiJ9LmZhLXNlYXJjaC1taW51czpiZWZvcmV7Y29udGVudDoiXGYwMTAifS5mYS1zZWFyY2gtcGx1czpiZWZvcmV7Y29udGVudDoiXGYwMGUifS5mYS1zZWFyY2hlbmdpbjpiZWZvcmV7Y29udGVudDoiXGYzZWIifS5mYS1zZWxsY2FzdDpiZWZvcmV7Y29udGVudDoiXGYyZGEifS5mYS1zZWxsc3k6YmVmb3Jle2NvbnRlbnQ6IlxmMjEzIn0uZmEtc2VydmVyOmJlZm9yZXtjb250ZW50OiJcZjIzMyJ9LmZhLXNlcnZpY2VzdGFjazpiZWZvcmV7Y29udGVudDoiXGYzZWMifS5mYS1zaGFyZTpiZWZvcmV7Y29udGVudDoiXGYwNjQifS5mYS1zaGFyZS1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMWUwIn0uZmEtc2hhcmUtYWx0LXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYxZTEifS5mYS1zaGFyZS1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMTRkIn0uZmEtc2hla2VsLXNpZ246YmVmb3Jle2NvbnRlbnQ6IlxmMjBiIn0uZmEtc2hpZWxkLWFsdDpiZWZvcmV7Y29udGVudDoiXGYzZWQifS5mYS1zaGlwOmJlZm9yZXtjb250ZW50OiJcZjIxYSJ9LmZhLXNoaXJ0c2luYnVsazpiZWZvcmV7Y29udGVudDoiXGYyMTQifS5mYS1zaG9wcGluZy1iYWc6YmVmb3Jle2NvbnRlbnQ6IlxmMjkwIn0uZmEtc2hvcHBpbmctYmFza2V0OmJlZm9yZXtjb250ZW50OiJcZjI5MSJ9LmZhLXNob3BwaW5nLWNhcnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDdhIn0uZmEtc2hvd2VyOmJlZm9yZXtjb250ZW50OiJcZjJjYyJ9LmZhLXNpZ24taW4tYWx0OmJlZm9yZXtjb250ZW50OiJcZjJmNiJ9LmZhLXNpZ24tbGFuZ3VhZ2U6YmVmb3Jle2NvbnRlbnQ6IlxmMmE3In0uZmEtc2lnbi1vdXQtYWx0OmJlZm9yZXtjb250ZW50OiJcZjJmNSJ9LmZhLXNpZ25hbDpiZWZvcmV7Y29udGVudDoiXGYwMTIifS5mYS1zaW1wbHlidWlsdDpiZWZvcmV7Y29udGVudDoiXGYyMTUifS5mYS1zaXN0cml4OmJlZm9yZXtjb250ZW50OiJcZjNlZSJ9LmZhLXNpdGVtYXA6YmVmb3Jle2NvbnRlbnQ6IlxmMGU4In0uZmEtc2t5YXRsYXM6YmVmb3Jle2NvbnRlbnQ6IlxmMjE2In0uZmEtc2t5cGU6YmVmb3Jle2NvbnRlbnQ6IlxmMTdlIn0uZmEtc2xhY2s6YmVmb3Jle2NvbnRlbnQ6IlxmMTk4In0uZmEtc2xhY2staGFzaDpiZWZvcmV7Y29udGVudDoiXGYzZWYifS5mYS1zbGlkZXJzLWg6YmVmb3Jle2NvbnRlbnQ6IlxmMWRlIn0uZmEtc2xpZGVzaGFyZTpiZWZvcmV7Y29udGVudDoiXGYxZTcifS5mYS1zbWlsZTpiZWZvcmUsLmZhLXNtaWxlLW86YmVmb3Jle2NvbnRlbnQ6IlxmMTE4In0uZmEtc25hcGNoYXQ6YmVmb3Jle2NvbnRlbnQ6IlxmMmFiIn0uZmEtc25hcGNoYXQtZ2hvc3Q6YmVmb3Jle2NvbnRlbnQ6IlxmMmFjIn0uZmEtc25hcGNoYXQtc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjJhZCJ9LmZhLXNub3dmbGFrZTpiZWZvcmV7Y29udGVudDoiXGYyZGMifS5mYS1zb3J0OmJlZm9yZXtjb250ZW50OiJcZjBkYyJ9LmZhLXNvcnQtYWxwaGEtZG93bjpiZWZvcmV7Y29udGVudDoiXGYxNWQifS5mYS1zb3J0LWFscGhhLXVwOmJlZm9yZXtjb250ZW50OiJcZjE1ZSJ9LmZhLXNvcnQtYW1vdW50LWRvd246YmVmb3Jle2NvbnRlbnQ6IlxmMTYwIn0uZmEtc29ydC1hbW91bnQtdXA6YmVmb3Jle2NvbnRlbnQ6IlxmMTYxIn0uZmEtc29ydC1kb3duOmJlZm9yZXtjb250ZW50OiJcZjBkZCJ9LmZhLXNvcnQtbnVtZXJpYy1kb3duOmJlZm9yZXtjb250ZW50OiJcZjE2MiJ9LmZhLXNvcnQtbnVtZXJpYy11cDpiZWZvcmV7Y29udGVudDoiXGYxNjMifS5mYS1zb3J0LXVwOmJlZm9yZXtjb250ZW50OiJcZjBkZSJ9LmZhLXNvdW5kY2xvdWQ6YmVmb3Jle2NvbnRlbnQ6IlxmMWJlIn0uZmEtc3BhY2Utc2h1dHRsZTpiZWZvcmV7Y29udGVudDoiXGYxOTcifS5mYS1zcGVha2FwOmJlZm9yZXtjb250ZW50OiJcZjNmMyJ9LmZhLXNwaW5uZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMTEwIn0uZmEtc3BvdGlmeTpiZWZvcmV7Y29udGVudDoiXGYxYmMifS5mYS1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMGM4In0uZmEtc3F1YXJlLWZ1bGw6YmVmb3Jle2NvbnRlbnQ6IlxmNDVjIn0uZmEtc3RhY2stZXhjaGFuZ2U6YmVmb3Jle2NvbnRlbnQ6IlxmMThkIn0uZmEtc3RhY2stb3ZlcmZsb3c6YmVmb3Jle2NvbnRlbnQ6IlxmMTZjIn0uZmEtc3RhcjpiZWZvcmV7Y29udGVudDoiXGYwMDUifS5mYS1zdGFyLWhhbGY6YmVmb3Jle2NvbnRlbnQ6IlxmMDg5In0uZmEtc3RheWxpbmtlZDpiZWZvcmV7Y29udGVudDoiXGYzZjUifS5mYS1zdGVhbTpiZWZvcmV7Y29udGVudDoiXGYxYjYifS5mYS1zdGVhbS1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMWI3In0uZmEtc3RlYW0tc3ltYm9sOmJlZm9yZXtjb250ZW50OiJcZjNmNiJ9LmZhLXN0ZXAtYmFja3dhcmQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDQ4In0uZmEtc3RlcC1mb3J3YXJkOmJlZm9yZXtjb250ZW50OiJcZjA1MSJ9LmZhLXN0ZXRob3Njb3BlOmJlZm9yZXtjb250ZW50OiJcZjBmMSJ9LmZhLXN0aWNrZXItbXVsZTpiZWZvcmV7Y29udGVudDoiXGYzZjcifS5mYS1zdGlja3ktbm90ZTpiZWZvcmV7Y29udGVudDoiXGYyNDkifS5mYS1zdG9wOmJlZm9yZXtjb250ZW50OiJcZjA0ZCJ9LmZhLXN0b3AtY2lyY2xlOmJlZm9yZXtjb250ZW50OiJcZjI4ZCJ9LmZhLXN0b3B3YXRjaDpiZWZvcmV7Y29udGVudDoiXGYyZjIifS5mYS1zdHJhdmE6YmVmb3Jle2NvbnRlbnQ6IlxmNDI4In0uZmEtc3RyZWV0LXZpZXc6YmVmb3Jle2NvbnRlbnQ6IlxmMjFkIn0uZmEtc3RyaWtldGhyb3VnaDpiZWZvcmV7Y29udGVudDoiXGYwY2MifS5mYS1zdHJpcGU6YmVmb3Jle2NvbnRlbnQ6IlxmNDI5In0uZmEtc3RyaXBlLXM6YmVmb3Jle2NvbnRlbnQ6IlxmNDJhIn0uZmEtc3R1ZGlvdmluYXJpOmJlZm9yZXtjb250ZW50OiJcZjNmOCJ9LmZhLXN0dW1ibGV1cG9uOmJlZm9yZXtjb250ZW50OiJcZjFhNCJ9LmZhLXN0dW1ibGV1cG9uLWNpcmNsZTpiZWZvcmV7Y29udGVudDoiXGYxYTMifS5mYS1zdWJzY3JpcHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTJjIn0uZmEtc3Vid2F5OmJlZm9yZXtjb250ZW50OiJcZjIzOSJ9LmZhLXN1aXRjYXNlOmJlZm9yZXtjb250ZW50OiJcZjBmMiJ9LmZhLXN1bjpiZWZvcmUsLmZhLXN1bi1vOmJlZm9yZXtjb250ZW50OiJcZjE4NSJ9LmZhLXN1cGVycG93ZXJzOmJlZm9yZXtjb250ZW50OiJcZjJkZCJ9LmZhLXN1cGVyc2NyaXB0OmJlZm9yZXtjb250ZW50OiJcZjEyYiJ9LmZhLXN1cHBsZTpiZWZvcmV7Y29udGVudDoiXGYzZjkifS5mYS1zeW5jOmJlZm9yZXtjb250ZW50OiJcZjAyMSJ9LmZhLXN5bmMtYWx0OmJlZm9yZXtjb250ZW50OiJcZjJmMSJ9LmZhLXRhYmxlOmJlZm9yZXtjb250ZW50OiJcZjBjZSJ9LmZhLXRhYmxlLXRlbm5pczpiZWZvcmV7Y29udGVudDoiXGY0NWQifS5mYS10YWJsZXQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTBhIn0uZmEtdGFibGV0LWFsdDpiZWZvcmV7Y29udGVudDoiXGYzZmEifS5mYS10YWNob21ldGVyLWFsdDpiZWZvcmV7Y29udGVudDoiXGYzZmQifS5mYS10YWc6YmVmb3Jle2NvbnRlbnQ6IlxmMDJiIn0uZmEtdGFnczpiZWZvcmV7Y29udGVudDoiXGYwMmMifS5mYS10YXNrczpiZWZvcmV7Y29udGVudDoiXGYwYWUifS5mYS10YXhpOmJlZm9yZXtjb250ZW50OiJcZjFiYSJ9LmZhLXRlbGVncmFtOmJlZm9yZXtjb250ZW50OiJcZjJjNiJ9LmZhLXRlbGVncmFtLXBsYW5lOmJlZm9yZXtjb250ZW50OiJcZjNmZSJ9LmZhLXRlbmNlbnQtd2VpYm86YmVmb3Jle2NvbnRlbnQ6IlxmMWQ1In0uZmEtdGVybWluYWw6YmVmb3Jle2NvbnRlbnQ6IlxmMTIwIn0uZmEtdGV4dC1oZWlnaHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDM0In0uZmEtdGV4dC13aWR0aDpiZWZvcmV7Y29udGVudDoiXGYwMzUifS5mYS10aDpiZWZvcmV7Y29udGVudDoiXGYwMGEifS5mYS10aC1sYXJnZTpiZWZvcmV7Y29udGVudDoiXGYwMDkifS5mYS10aC1saXN0OmJlZm9yZXtjb250ZW50OiJcZjAwYiJ9LmZhLXRoZW1laXNsZTpiZWZvcmV7Y29udGVudDoiXGYyYjIifS5mYS10aGVybW9tZXRlci1lbXB0eTpiZWZvcmV7Y29udGVudDoiXGYyY2IifS5mYS10aGVybW9tZXRlci1mdWxsOmJlZm9yZXtjb250ZW50OiJcZjJjNyJ9LmZhLXRoZXJtb21ldGVyLWhhbGY6YmVmb3Jle2NvbnRlbnQ6IlxmMmM5In0uZmEtdGhlcm1vbWV0ZXItcXVhcnRlcjpiZWZvcmV7Y29udGVudDoiXGYyY2EifS5mYS10aGVybW9tZXRlci10aHJlZS1xdWFydGVyczpiZWZvcmV7Y29udGVudDoiXGYyYzgifS5mYS10aHVtYnMtZG93bjpiZWZvcmV7Y29udGVudDoiXGYxNjUifS5mYS10aHVtYnMtdXA6YmVmb3Jle2NvbnRlbnQ6IlxmMTY0In0uZmEtdGh1bWJ0YWNrOmJlZm9yZXtjb250ZW50OiJcZjA4ZCJ9LmZhLXRpY2tldC1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmM2ZmIn0uZmEtdGltZXM6YmVmb3Jle2NvbnRlbnQ6IlxmMDBkIn0uZmEtdGltZXMtY2lyY2xlOmJlZm9yZXtjb250ZW50OiJcZjA1NyJ9LmZhLXRpbnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDQzIn0uZmEtdG9nZ2xlLW9mZjpiZWZvcmV7Y29udGVudDoiXGYyMDQifS5mYS10b2dnbGUtb246YmVmb3Jle2NvbnRlbnQ6IlxmMjA1In0uZmEtdHJhZGVtYXJrOmJlZm9yZXtjb250ZW50OiJcZjI1YyJ9LmZhLXRyYWluOmJlZm9yZXtjb250ZW50OiJcZjIzOCJ9LmZhLXRyYW5zZ2VuZGVyOmJlZm9yZXtjb250ZW50OiJcZjIyNCJ9LmZhLXRyYW5zZ2VuZGVyLWFsdDpiZWZvcmV7Y29udGVudDoiXGYyMjUifS5mYS10cmFzaDpiZWZvcmV7Y29udGVudDoiXGYxZjgifS5mYS10cmFzaC1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMmVkIn0uZmEtdHJlZTpiZWZvcmV7Y29udGVudDoiXGYxYmIifS5mYS10cmVsbG86YmVmb3Jle2NvbnRlbnQ6IlxmMTgxIn0uZmEtdHJpcGFkdmlzb3I6YmVmb3Jle2NvbnRlbnQ6IlxmMjYyIn0uZmEtdHJvcGh5OmJlZm9yZXtjb250ZW50OiJcZjA5MSJ9LmZhLXRydWNrOmJlZm9yZXtjb250ZW50OiJcZjBkMSJ9LmZhLXR0eTpiZWZvcmV7Y29udGVudDoiXGYxZTQifS5mYS10dW1ibHI6YmVmb3Jle2NvbnRlbnQ6IlxmMTczIn0uZmEtdHVtYmxyLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYxNzQifS5mYS10djpiZWZvcmV7Y29udGVudDoiXGYyNmMifS5mYS10d2l0Y2g6YmVmb3Jle2NvbnRlbnQ6IlxmMWU4In0uZmEtdHdpdHRlcjpiZWZvcmV7Y29udGVudDoiXGYwOTkifS5mYS10d2l0dGVyLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYwODEifS5mYS10eXBvMzpiZWZvcmV7Y29udGVudDoiXGY0MmIifS5mYS11YmVyOmJlZm9yZXtjb250ZW50OiJcZjQwMiJ9LmZhLXVpa2l0OmJlZm9yZXtjb250ZW50OiJcZjQwMyJ9LmZhLXVtYnJlbGxhOmJlZm9yZXtjb250ZW50OiJcZjBlOSJ9LmZhLXVuZGVybGluZTpiZWZvcmV7Y29udGVudDoiXGYwY2QifS5mYS11bmRvOmJlZm9yZXtjb250ZW50OiJcZjBlMiJ9LmZhLXVuZG8tYWx0OmJlZm9yZXtjb250ZW50OiJcZjJlYSJ9LmZhLXVuaXJlZ2lzdHJ5OmJlZm9yZXtjb250ZW50OiJcZjQwNCJ9LmZhLXVuaXZlcnNhbC1hY2Nlc3M6YmVmb3Jle2NvbnRlbnQ6IlxmMjlhIn0uZmEtdW5pdmVyc2l0eTpiZWZvcmV7Y29udGVudDoiXGYxOWMifS5mYS11bmxpbms6YmVmb3Jle2NvbnRlbnQ6IlxmMTI3In0uZmEtdW5sb2NrOmJlZm9yZXtjb250ZW50OiJcZjA5YyJ9LmZhLXVubG9jay1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTNlIn0uZmEtdW50YXBwZDpiZWZvcmV7Y29udGVudDoiXGY0MDUifS5mYS11cGxvYWQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDkzIn0uZmEtdXNiOmJlZm9yZXtjb250ZW50OiJcZjI4NyJ9LmZhLXVzZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMDA3In0uZmEtdXNlci1jaXJjbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMmJkIn0uZmEtdXNlci1tZDpiZWZvcmV7Y29udGVudDoiXGYwZjAifS5mYS11c2VyLXBsdXM6YmVmb3Jle2NvbnRlbnQ6IlxmMjM0In0uZmEtdXNlci1zZWNyZXQ6YmVmb3Jle2NvbnRlbnQ6IlxmMjFiIn0uZmEtdXNlci10aW1lczpiZWZvcmV7Y29udGVudDoiXGYyMzUifS5mYS11c2VyczpiZWZvcmV7Y29udGVudDoiXGYwYzAifS5mYS11c3N1bm5haDpiZWZvcmV7Y29udGVudDoiXGY0MDcifS5mYS11dGVuc2lsLXNwb29uOmJlZm9yZXtjb250ZW50OiJcZjJlNSJ9LmZhLXV0ZW5zaWxzOmJlZm9yZXtjb250ZW50OiJcZjJlNyJ9LmZhLXZhYWRpbjpiZWZvcmV7Y29udGVudDoiXGY0MDgifS5mYS12ZW51czpiZWZvcmV7Y29udGVudDoiXGYyMjEifS5mYS12ZW51cy1kb3VibGU6YmVmb3Jle2NvbnRlbnQ6IlxmMjI2In0uZmEtdmVudXMtbWFyczpiZWZvcmV7Y29udGVudDoiXGYyMjgifS5mYS12aWFjb2luOmJlZm9yZXtjb250ZW50OiJcZjIzNyJ9LmZhLXZpYWRlbzpiZWZvcmV7Y29udGVudDoiXGYyYTkifS5mYS12aWFkZW8tc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjJhYSJ9LmZhLXZpYmVyOmJlZm9yZXtjb250ZW50OiJcZjQwOSJ9LmZhLXZpZGVvOmJlZm9yZXtjb250ZW50OiJcZjAzZCJ9LmZhLXZpbWVvOmJlZm9yZXtjb250ZW50OiJcZjQwYSJ9LmZhLXZpbWVvLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYxOTQifS5mYS12aW1lby12OmJlZm9yZXtjb250ZW50OiJcZjI3ZCJ9LmZhLXZpbmU6YmVmb3Jle2NvbnRlbnQ6IlxmMWNhIn0uZmEtdms6YmVmb3Jle2NvbnRlbnQ6IlxmMTg5In0uZmEtdm52OmJlZm9yZXtjb250ZW50OiJcZjQwYiJ9LmZhLXZvbGxleWJhbGwtYmFsbDpiZWZvcmV7Y29udGVudDoiXGY0NWYifS5mYS12b2x1bWUtZG93bjpiZWZvcmV7Y29udGVudDoiXGYwMjcifS5mYS12b2x1bWUtb2ZmOmJlZm9yZXtjb250ZW50OiJcZjAyNiJ9LmZhLXZvbHVtZS11cDpiZWZvcmV7Y29udGVudDoiXGYwMjgifS5mYS12dWVqczpiZWZvcmV7Y29udGVudDoiXGY0MWYifS5mYS13ZWlibzpiZWZvcmV7Y29udGVudDoiXGYxOGEifS5mYS13ZWl4aW46YmVmb3Jle2NvbnRlbnQ6IlxmMWQ3In0uZmEtd2hhdHNhcHA6YmVmb3Jle2NvbnRlbnQ6IlxmMjMyIn0uZmEtd2hhdHNhcHAtc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjQwYyJ9LmZhLXdoZWVsY2hhaXI6YmVmb3Jle2NvbnRlbnQ6IlxmMTkzIn0uZmEtd2htY3M6YmVmb3Jle2NvbnRlbnQ6IlxmNDBkIn0uZmEtd2lmaTpiZWZvcmV7Y29udGVudDoiXGYxZWIifS5mYS13aWtpcGVkaWEtdzpiZWZvcmV7Y29udGVudDoiXGYyNjYifS5mYS13aW5kb3ctY2xvc2U6YmVmb3Jle2NvbnRlbnQ6IlxmNDEwIn0uZmEtd2luZG93LW1heGltaXplOmJlZm9yZXtjb250ZW50OiJcZjJkMCJ9LmZhLXdpbmRvdy1taW5pbWl6ZTpiZWZvcmV7Y29udGVudDoiXGYyZDEifS5mYS13aW5kb3ctcmVzdG9yZTpiZWZvcmV7Y29udGVudDoiXGYyZDIifS5mYS13aW5kb3dzOmJlZm9yZXtjb250ZW50OiJcZjE3YSJ9LmZhLXdvbi1zaWduOmJlZm9yZXtjb250ZW50OiJcZjE1OSJ9LmZhLXdvcmRwcmVzczpiZWZvcmV7Y29udGVudDoiXGYxOWEifS5mYS13b3JkcHJlc3Mtc2ltcGxlOmJlZm9yZXtjb250ZW50OiJcZjQxMSJ9LmZhLXdwYmVnaW5uZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMjk3In0uZmEtd3BleHBsb3JlcjpiZWZvcmV7Y29udGVudDoiXGYyZGUifS5mYS13cGZvcm1zOmJlZm9yZXtjb250ZW50OiJcZjI5OCJ9LmZhLXdyZW5jaDpiZWZvcmV7Y29udGVudDoiXGYwYWQifS5mYS14Ym94OmJlZm9yZXtjb250ZW50OiJcZjQxMiJ9LmZhLXhpbmc6YmVmb3Jle2NvbnRlbnQ6IlxmMTY4In0uZmEteGluZy1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMTY5In0uZmEteS1jb21iaW5hdG9yOmJlZm9yZXtjb250ZW50OiJcZjIzYiJ9LmZhLXlhaG9vOmJlZm9yZXtjb250ZW50OiJcZjE5ZSJ9LmZhLXlhbmRleDpiZWZvcmV7Y29udGVudDoiXGY0MTMifS5mYS15YW5kZXgtaW50ZXJuYXRpb25hbDpiZWZvcmV7Y29udGVudDoiXGY0MTQifS5mYS15ZWxwOmJlZm9yZXtjb250ZW50OiJcZjFlOSJ9LmZhLXllbi1zaWduOmJlZm9yZXtjb250ZW50OiJcZjE1NyJ9LmZhLXlvYXN0OmJlZm9yZXtjb250ZW50OiJcZjJiMSJ9LmZhLXlvdXR1YmU6YmVmb3Jle2NvbnRlbnQ6IlxmMTY3In0uZmEteW91dHViZS1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmNDMxIn0KLyoqIC9jc3MvdjIvYW5pbWF0ZS5jc3MgKiovCi5hbmltLWJlYXQgeyAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOmFuaW0tYmVhdDsgYW5pbWF0aW9uLW5hbWU6YW5pbS1iZWF0OyAtd2Via2l0LWFuaW1hdGlvbi1kZWxheTp2YXIoLS1hbmltLWRlbGF5LDBzKTsgYW5pbWF0aW9uLWRlbGF5OnZhcigtLWFuaW0tZGVsYXksMHMpOyAtd2Via2l0LWFuaW1hdGlvbi1kaXJlY3Rpb246dmFyKC0tYW5pbS1kaXJlY3Rpb24sbm9ybWFsKTsgYW5pbWF0aW9uLWRpcmVjdGlvbjp2YXIoLS1hbmltLWRpcmVjdGlvbixub3JtYWwpOyAtd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbjp2YXIoLS1hbmltLWR1cmF0aW9uLDFzKTsgYW5pbWF0aW9uLWR1cmF0aW9uOnZhcigtLWFuaW0tZHVyYXRpb24sMXMpOyAtd2Via2l0LWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6dmFyKC0tYW5pbS1pdGVyYXRpb24tY291bnQsaW5maW5pdGUpOyBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OnZhcigtLWFuaW0taXRlcmF0aW9uLWNvdW50LGluZmluaXRlKTsgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOnZhcigtLWFuaW0tdGltaW5nLGVhc2UtaW4tb3V0KTsgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjp2YXIoLS1hbmltLXRpbWluZyxlYXNlLWluLW91dCkgfSAuYW5pbS1ib3VuY2UgeyAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOmFuaW0tYm91bmNlOyBhbmltYXRpb24tbmFtZTphbmltLWJvdW5jZTsgLXdlYmtpdC1hbmltYXRpb24tZGVsYXk6dmFyKC0tYW5pbS1kZWxheSwwcyk7IGFuaW1hdGlvbi1kZWxheTp2YXIoLS1hbmltLWRlbGF5LDBzKTsgLXdlYmtpdC1hbmltYXRpb24tZGlyZWN0aW9uOnZhcigtLWFuaW0tZGlyZWN0aW9uLG5vcm1hbCk7IGFuaW1hdGlvbi1kaXJlY3Rpb246dmFyKC0tYW5pbS1kaXJlY3Rpb24sbm9ybWFsKTsgLXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246dmFyKC0tYW5pbS1kdXJhdGlvbiwxcyk7IGFuaW1hdGlvbi1kdXJhdGlvbjp2YXIoLS1hbmltLWR1cmF0aW9uLDFzKTsgLXdlYmtpdC1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50OnZhcigtLWFuaW0taXRlcmF0aW9uLWNvdW50LGluZmluaXRlKTsgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDp2YXIoLS1hbmltLWl0ZXJhdGlvbi1jb3VudCxpbmZpbml0ZSk7IC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjp2YXIoLS1hbmltLXRpbWluZyxjdWJpYy1iZXppZXIoLjI4LC44NCwuNDIsMSkpOyBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOnZhcigtLWFuaW0tdGltaW5nLGN1YmljLWJlemllciguMjgsLjg0LC40MiwxKSkgfSAuYW5pbS1mYWRlIHsgLXdlYmtpdC1hbmltYXRpb24tbmFtZTphbmltLWZhZGU7IGFuaW1hdGlvbi1uYW1lOmFuaW0tZmFkZTsgLXdlYmtpdC1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50OnZhcigtLWFuaW0taXRlcmF0aW9uLWNvdW50LGluZmluaXRlKTsgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDp2YXIoLS1hbmltLWl0ZXJhdGlvbi1jb3VudCxpbmZpbml0ZSk7IC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjp2YXIoLS1hbmltLXRpbWluZyxjdWJpYy1iZXppZXIoLjQsMCwuNiwxKSk7IGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246dmFyKC0tYW5pbS10aW1pbmcsY3ViaWMtYmV6aWVyKC40LDAsLjYsMSkpIH0gLmFuaW0tYmVhdC1mYWRlLC5hbmltLWZhZGUgeyAtd2Via2l0LWFuaW1hdGlvbi1kZWxheTp2YXIoLS1hbmltLWRlbGF5LDBzKTsgYW5pbWF0aW9uLWRlbGF5OnZhcigtLWFuaW0tZGVsYXksMHMpOyAtd2Via2l0LWFuaW1hdGlvbi1kaXJlY3Rpb246dmFyKC0tYW5pbS1kaXJlY3Rpb24sbm9ybWFsKTsgYW5pbWF0aW9uLWRpcmVjdGlvbjp2YXIoLS1hbmltLWRpcmVjdGlvbixub3JtYWwpOyAtd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbjp2YXIoLS1hbmltLWR1cmF0aW9uLDFzKTsgYW5pbWF0aW9uLWR1cmF0aW9uOnZhcigtLWFuaW0tZHVyYXRpb24sMXMpIH0gLmFuaW0tYmVhdC1mYWRlIHsgLXdlYmtpdC1hbmltYXRpb24tbmFtZTphbmltLWJlYXQtZmFkZTsgYW5pbWF0aW9uLW5hbWU6YW5pbS1iZWF0LWZhZGU7IC13ZWJraXQtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDp2YXIoLS1hbmltLWl0ZXJhdGlvbi1jb3VudCxpbmZpbml0ZSk7IGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6dmFyKC0tYW5pbS1pdGVyYXRpb24tY291bnQsaW5maW5pdGUpOyAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246dmFyKC0tYW5pbS10aW1pbmcsY3ViaWMtYmV6aWVyKC40LDAsLjYsMSkpOyBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOnZhcigtLWFuaW0tdGltaW5nLGN1YmljLWJlemllciguNCwwLC42LDEpKSB9IC5hbmltLWZsaXAgeyAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOmFuaW0tZmxpcDsgYW5pbWF0aW9uLW5hbWU6YW5pbS1mbGlwOyAtd2Via2l0LWFuaW1hdGlvbi1kZWxheTp2YXIoLS1hbmltLWRlbGF5LDBzKTsgYW5pbWF0aW9uLWRlbGF5OnZhcigtLWFuaW0tZGVsYXksMHMpOyAtd2Via2l0LWFuaW1hdGlvbi1kaXJlY3Rpb246dmFyKC0tYW5pbS1kaXJlY3Rpb24sbm9ybWFsKTsgYW5pbWF0aW9uLWRpcmVjdGlvbjp2YXIoLS1hbmltLWRpcmVjdGlvbixub3JtYWwpOyAtd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbjp2YXIoLS1hbmltLWR1cmF0aW9uLDNzKTsgYW5pbWF0aW9uLWR1cmF0aW9uOnZhcigtLWFuaW0tZHVyYXRpb24sM3MpOyAtd2Via2l0LWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6dmFyKC0tYW5pbS1pdGVyYXRpb24tY291bnQsaW5maW5pdGUpOyBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OnZhcigtLWFuaW0taXRlcmF0aW9uLWNvdW50LGluZmluaXRlKTsgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOnZhcigtLWFuaW0tdGltaW5nLGVhc2UtaW4tb3V0KTsgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjp2YXIoLS1hbmltLXRpbWluZyxlYXNlLWluLW91dCkgfSAuYW5pbS1zaGFrZSB7IC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6YW5pbS1zaGFrZTsgYW5pbWF0aW9uLW5hbWU6YW5pbS1zaGFrZTsgLXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246dmFyKC0tYW5pbS1kdXJhdGlvbiwxcyk7IGFuaW1hdGlvbi1kdXJhdGlvbjp2YXIoLS1hbmltLWR1cmF0aW9uLDFzKTsgLXdlYmtpdC1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50OnZhcigtLWFuaW0taXRlcmF0aW9uLWNvdW50LGluZmluaXRlKTsgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDp2YXIoLS1hbmltLWl0ZXJhdGlvbi1jb3VudCxpbmZpbml0ZSk7IC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjp2YXIoLS1hbmltLXRpbWluZyxsaW5lYXIpOyBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOnZhcigtLWFuaW0tdGltaW5nLGxpbmVhcikgfSAuYW5pbS1zaGFrZSwuYW5pbS1zcGluIHsgLXdlYmtpdC1hbmltYXRpb24tZGVsYXk6dmFyKC0tYW5pbS1kZWxheSwwcyk7IGFuaW1hdGlvbi1kZWxheTp2YXIoLS1hbmltLWRlbGF5LDBzKTsgLXdlYmtpdC1hbmltYXRpb24tZGlyZWN0aW9uOnZhcigtLWFuaW0tZGlyZWN0aW9uLG5vcm1hbCk7IGFuaW1hdGlvbi1kaXJlY3Rpb246dmFyKC0tYW5pbS1kaXJlY3Rpb24sbm9ybWFsKSB9IC5hbmltLXNwaW4geyAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOmFuaW0tc3BpbjsgYW5pbWF0aW9uLW5hbWU6YW5pbS1zcGluOyAtd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbjp2YXIoLS1hbmltLWR1cmF0aW9uLDJzKTsgYW5pbWF0aW9uLWR1cmF0aW9uOnZhcigtLWFuaW0tZHVyYXRpb24sMnMpOyAtd2Via2l0LWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6dmFyKC0tYW5pbS1pdGVyYXRpb24tY291bnQsaW5maW5pdGUpOyBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OnZhcigtLWFuaW0taXRlcmF0aW9uLWNvdW50LGluZmluaXRlKTsgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOnZhcigtLWFuaW0tdGltaW5nLGxpbmVhcik7IGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246dmFyKC0tYW5pbS10aW1pbmcsbGluZWFyKSB9IC5hbmltLXNwaW4tcmV2ZXJzZSB7IC0tYW5pbS1kaXJlY3Rpb246cmV2ZXJzZSB9IC5hbmltLXB1bHNlLC5hbmltLXNwaW4tcHVsc2UgeyAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOmFuaW0tc3BpbjsgYW5pbWF0aW9uLW5hbWU6YW5pbS1zcGluOyAtd2Via2l0LWFuaW1hdGlvbi1kaXJlY3Rpb246dmFyKC0tYW5pbS1kaXJlY3Rpb24sbm9ybWFsKTsgYW5pbWF0aW9uLWRpcmVjdGlvbjp2YXIoLS1hbmltLWRpcmVjdGlvbixub3JtYWwpOyAtd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbjp2YXIoLS1hbmltLWR1cmF0aW9uLDFzKTsgYW5pbWF0aW9uLWR1cmF0aW9uOnZhcigtLWFuaW0tZHVyYXRpb24sMXMpOyAtd2Via2l0LWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6dmFyKC0tYW5pbS1pdGVyYXRpb24tY291bnQsaW5maW5pdGUpOyBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OnZhcigtLWFuaW0taXRlcmF0aW9uLWNvdW50LGluZmluaXRlKTsgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOnZhcigtLWFuaW0tdGltaW5nLHN0ZXBzKDgpKTsgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjp2YXIoLS1hbmltLXRpbWluZyxzdGVwcyg4KSkgfSBALXdlYmtpdC1rZXlmcmFtZXMgYW5pbS1iZWF0IHsgMCUsOTAlIHsgLXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMSk7IHRyYW5zZm9ybTpzY2FsZSgxKSB9IDQ1JSB7IC13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKHZhcigtLWFuaW0tYmVhdC1zY2FsZSwxLjI1KSk7IHRyYW5zZm9ybTpzY2FsZSh2YXIoLS1hbmltLWJlYXQtc2NhbGUsMS4yNSkpIH0gfSBAa2V5ZnJhbWVzIGFuaW0tYmVhdCB7IDAlLDkwJSB7IC13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDEpOyB0cmFuc2Zvcm06c2NhbGUoMSkgfSA0NSUgeyAtd2Via2l0LXRyYW5zZm9ybTpzY2FsZSh2YXIoLS1hbmltLWJlYXQtc2NhbGUsMS4yNSkpOyB0cmFuc2Zvcm06c2NhbGUodmFyKC0tYW5pbS1iZWF0LXNjYWxlLDEuMjUpKSB9IH0gQC13ZWJraXQta2V5ZnJhbWVzIGFuaW0tYm91bmNlIHsgMCUgeyAtd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgxKSB0cmFuc2xhdGVZKDApOyB0cmFuc2Zvcm06c2NhbGUoMSkgdHJhbnNsYXRlWSgwKSB9IDEwJSB7IC13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKHZhcigtLWFuaW0tYm91bmNlLXN0YXJ0LXNjYWxlLXgsMS4xKSx2YXIoLS1hbmltLWJvdW5jZS1zdGFydC1zY2FsZS15LC45KSkgdHJhbnNsYXRlWSgwKTsgdHJhbnNmb3JtOnNjYWxlKHZhcigtLWFuaW0tYm91bmNlLXN0YXJ0LXNjYWxlLXgsMS4xKSx2YXIoLS1hbmltLWJvdW5jZS1zdGFydC1zY2FsZS15LC45KSkgdHJhbnNsYXRlWSgwKSB9IDMwJSB7IC13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKHZhcigtLWFuaW0tYm91bmNlLWp1bXAtc2NhbGUteCwuOSksdmFyKC0tYW5pbS1ib3VuY2UtanVtcC1zY2FsZS15LDEuMSkpIHRyYW5zbGF0ZVkodmFyKC0tYW5pbS1ib3VuY2UtaGVpZ2h0LC0uNWVtKSk7IHRyYW5zZm9ybTpzY2FsZSh2YXIoLS1hbmltLWJvdW5jZS1qdW1wLXNjYWxlLXgsLjkpLHZhcigtLWFuaW0tYm91bmNlLWp1bXAtc2NhbGUteSwxLjEpKSB0cmFuc2xhdGVZKHZhcigtLWFuaW0tYm91bmNlLWhlaWdodCwtLjVlbSkpIH0gNTAlIHsgLXdlYmtpdC10cmFuc2Zvcm06c2NhbGUodmFyKC0tYW5pbS1ib3VuY2UtbGFuZC1zY2FsZS14LDEuMDUpLHZhcigtLWFuaW0tYm91bmNlLWxhbmQtc2NhbGUteSwuOTUpKSB0cmFuc2xhdGVZKDApOyB0cmFuc2Zvcm06c2NhbGUodmFyKC0tYW5pbS1ib3VuY2UtbGFuZC1zY2FsZS14LDEuMDUpLHZhcigtLWFuaW0tYm91bmNlLWxhbmQtc2NhbGUteSwuOTUpKSB0cmFuc2xhdGVZKDApIH0gNTclIHsgLXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMSkgdHJhbnNsYXRlWSh2YXIoLS1hbmltLWJvdW5jZS1yZWJvdW5kLC0uMTI1ZW0pKTsgdHJhbnNmb3JtOnNjYWxlKDEpIHRyYW5zbGF0ZVkodmFyKC0tYW5pbS1ib3VuY2UtcmVib3VuZCwtLjEyNWVtKSkgfSA2NCUgeyAtd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgxKSB0cmFuc2xhdGVZKDApOyB0cmFuc2Zvcm06c2NhbGUoMSkgdHJhbnNsYXRlWSgwKSB9IHRvIHsgLXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMSkgdHJhbnNsYXRlWSgwKTsgdHJhbnNmb3JtOnNjYWxlKDEpIHRyYW5zbGF0ZVkoMCkgfSB9IEBrZXlmcmFtZXMgYW5pbS1ib3VuY2UgeyAwJSB7IC13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDEpIHRyYW5zbGF0ZVkoMCk7IHRyYW5zZm9ybTpzY2FsZSgxKSB0cmFuc2xhdGVZKDApIH0gMTAlIHsgLXdlYmtpdC10cmFuc2Zvcm06c2NhbGUodmFyKC0tYW5pbS1ib3VuY2Utc3RhcnQtc2NhbGUteCwxLjEpLHZhcigtLWFuaW0tYm91bmNlLXN0YXJ0LXNjYWxlLXksLjkpKSB0cmFuc2xhdGVZKDApOyB0cmFuc2Zvcm06c2NhbGUodmFyKC0tYW5pbS1ib3VuY2Utc3RhcnQtc2NhbGUteCwxLjEpLHZhcigtLWFuaW0tYm91bmNlLXN0YXJ0LXNjYWxlLXksLjkpKSB0cmFuc2xhdGVZKDApIH0gMzAlIHsgLXdlYmtpdC10cmFuc2Zvcm06c2NhbGUodmFyKC0tYW5pbS1ib3VuY2UtanVtcC1zY2FsZS14LC45KSx2YXIoLS1hbmltLWJvdW5jZS1qdW1wLXNjYWxlLXksMS4xKSkgdHJhbnNsYXRlWSh2YXIoLS1hbmltLWJvdW5jZS1oZWlnaHQsLS41ZW0pKTsgdHJhbnNmb3JtOnNjYWxlKHZhcigtLWFuaW0tYm91bmNlLWp1bXAtc2NhbGUteCwuOSksdmFyKC0tYW5pbS1ib3VuY2UtanVtcC1zY2FsZS15LDEuMSkpIHRyYW5zbGF0ZVkodmFyKC0tYW5pbS1ib3VuY2UtaGVpZ2h0LC0uNWVtKSkgfSA1MCUgeyAtd2Via2l0LXRyYW5zZm9ybTpzY2FsZSh2YXIoLS1hbmltLWJvdW5jZS1sYW5kLXNjYWxlLXgsMS4wNSksdmFyKC0tYW5pbS1ib3VuY2UtbGFuZC1zY2FsZS15LC45NSkpIHRyYW5zbGF0ZVkoMCk7IHRyYW5zZm9ybTpzY2FsZSh2YXIoLS1hbmltLWJvdW5jZS1sYW5kLXNjYWxlLXgsMS4wNSksdmFyKC0tYW5pbS1ib3VuY2UtbGFuZC1zY2FsZS15LC45NSkpIHRyYW5zbGF0ZVkoMCkgfSA1NyUgeyAtd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgxKSB0cmFuc2xhdGVZKHZhcigtLWFuaW0tYm91bmNlLXJlYm91bmQsLS4xMjVlbSkpOyB0cmFuc2Zvcm06c2NhbGUoMSkgdHJhbnNsYXRlWSh2YXIoLS1hbmltLWJvdW5jZS1yZWJvdW5kLC0uMTI1ZW0pKSB9IDY0JSB7IC13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDEpIHRyYW5zbGF0ZVkoMCk7IHRyYW5zZm9ybTpzY2FsZSgxKSB0cmFuc2xhdGVZKDApIH0gdG8geyAtd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgxKSB0cmFuc2xhdGVZKDApOyB0cmFuc2Zvcm06c2NhbGUoMSkgdHJhbnNsYXRlWSgwKSB9IH0gQC13ZWJraXQta2V5ZnJhbWVzIGFuaW0tZmFkZSB7IDUwJSB7IG9wYWNpdHk6dmFyKC0tYW5pbS1mYWRlLW9wYWNpdHksLjQpIH0gfSBAa2V5ZnJhbWVzIGFuaW0tZmFkZSB7IDUwJSB7IG9wYWNpdHk6dmFyKC0tYW5pbS1mYWRlLW9wYWNpdHksLjQpIH0gfSBALXdlYmtpdC1rZXlmcmFtZXMgYW5pbS1iZWF0LWZhZGUgeyAwJSx0byB7IG9wYWNpdHk6dmFyKC0tYW5pbS1iZWF0LWZhZGUtb3BhY2l0eSwuNCk7IC13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDEpOyB0cmFuc2Zvcm06c2NhbGUoMSkgfSA1MCUgeyBvcGFjaXR5OjE7IC13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKHZhcigtLWFuaW0tYmVhdC1mYWRlLXNjYWxlLDEuMTI1KSk7IHRyYW5zZm9ybTpzY2FsZSh2YXIoLS1hbmltLWJlYXQtZmFkZS1zY2FsZSwxLjEyNSkpIH0gfSBAa2V5ZnJhbWVzIGFuaW0tYmVhdC1mYWRlIHsgMCUsdG8geyBvcGFjaXR5OnZhcigtLWFuaW0tYmVhdC1mYWRlLW9wYWNpdHksLjQpOyAtd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgxKTsgdHJhbnNmb3JtOnNjYWxlKDEpIH0gNTAlIHsgb3BhY2l0eToxOyAtd2Via2l0LXRyYW5zZm9ybTpzY2FsZSh2YXIoLS1hbmltLWJlYXQtZmFkZS1zY2FsZSwxLjEyNSkpOyB0cmFuc2Zvcm06c2NhbGUodmFyKC0tYW5pbS1iZWF0LWZhZGUtc2NhbGUsMS4xMjUpKSB9IH0gQC13ZWJraXQta2V5ZnJhbWVzIGFuaW0tZmxpcCB7IDUwJSB7IC13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZTNkKHZhcigtLWFuaW0tZmxpcC14LDApLHZhcigtLWFuaW0tZmxpcC15LDEpLHZhcigtLWFuaW0tZmxpcC16LDApLHZhcigtLWFuaW0tZmxpcC1hbmdsZSwtMTgwZGVnKSk7IHRyYW5zZm9ybTpyb3RhdGUzZCh2YXIoLS1hbmltLWZsaXAteCwwKSx2YXIoLS1hbmltLWZsaXAteSwxKSx2YXIoLS1hbmltLWZsaXAteiwwKSx2YXIoLS1hbmltLWZsaXAtYW5nbGUsLTE4MGRlZykpIH0gfSBAa2V5ZnJhbWVzIGFuaW0tZmxpcCB7IDUwJSB7IC13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZTNkKHZhcigtLWFuaW0tZmxpcC14LDApLHZhcigtLWFuaW0tZmxpcC15LDEpLHZhcigtLWFuaW0tZmxpcC16LDApLHZhcigtLWFuaW0tZmxpcC1hbmdsZSwtMTgwZGVnKSk7IHRyYW5zZm9ybTpyb3RhdGUzZCh2YXIoLS1hbmltLWZsaXAteCwwKSx2YXIoLS1hbmltLWZsaXAteSwxKSx2YXIoLS1hbmltLWZsaXAteiwwKSx2YXIoLS1hbmltLWZsaXAtYW5nbGUsLTE4MGRlZykpIH0gfSBALXdlYmtpdC1rZXlmcmFtZXMgYW5pbS1zaGFrZSB7IDAlIHsgLXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKC0xNWRlZyk7IHRyYW5zZm9ybTpyb3RhdGUoLTE1ZGVnKSB9IDQlIHsgLXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDE1ZGVnKTsgdHJhbnNmb3JtOnJvdGF0ZSgxNWRlZykgfSA4JSwyNCUgeyAtd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoLTE4ZGVnKTsgdHJhbnNmb3JtOnJvdGF0ZSgtMThkZWcpIH0gMTIlLDI4JSB7IC13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgxOGRlZyk7IHRyYW5zZm9ybTpyb3RhdGUoMThkZWcpIH0gMTYlIHsgLXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKC0yMmRlZyk7IHRyYW5zZm9ybTpyb3RhdGUoLTIyZGVnKSB9IDIwJSB7IC13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgyMmRlZyk7IHRyYW5zZm9ybTpyb3RhdGUoMjJkZWcpIH0gMzIlIHsgLXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKC0xMmRlZyk7IHRyYW5zZm9ybTpyb3RhdGUoLTEyZGVnKSB9IDM2JSB7IC13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgxMmRlZyk7IHRyYW5zZm9ybTpyb3RhdGUoMTJkZWcpIH0gNDAlLHRvIHsgLXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDBkZWcpOyB0cmFuc2Zvcm06cm90YXRlKDBkZWcpIH0gfSBAa2V5ZnJhbWVzIGFuaW0tc2hha2UgeyAwJSB7IC13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgtMTVkZWcpOyB0cmFuc2Zvcm06cm90YXRlKC0xNWRlZykgfSA0JSB7IC13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgxNWRlZyk7IHRyYW5zZm9ybTpyb3RhdGUoMTVkZWcpIH0gOCUsMjQlIHsgLXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKC0xOGRlZyk7IHRyYW5zZm9ybTpyb3RhdGUoLTE4ZGVnKSB9IDEyJSwyOCUgeyAtd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMThkZWcpOyB0cmFuc2Zvcm06cm90YXRlKDE4ZGVnKSB9IDE2JSB7IC13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgtMjJkZWcpOyB0cmFuc2Zvcm06cm90YXRlKC0yMmRlZykgfSAyMCUgeyAtd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMjJkZWcpOyB0cmFuc2Zvcm06cm90YXRlKDIyZGVnKSB9IDMyJSB7IC13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgtMTJkZWcpOyB0cmFuc2Zvcm06cm90YXRlKC0xMmRlZykgfSAzNiUgeyAtd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMTJkZWcpOyB0cmFuc2Zvcm06cm90YXRlKDEyZGVnKSB9IDQwJSx0byB7IC13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgwZGVnKTsgdHJhbnNmb3JtOnJvdGF0ZSgwZGVnKSB9IH0gQC13ZWJraXQta2V5ZnJhbWVzIGFuaW0tc3BpbiB7IDAlIHsgLXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDBkZWcpOyB0cmFuc2Zvcm06cm90YXRlKDBkZWcpIH0gdG8geyAtd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMXR1cm4pOyB0cmFuc2Zvcm06cm90YXRlKDF0dXJuKSB9IH0gQGtleWZyYW1lcyBhbmltLXNwaW4geyAwJSB7IC13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgwZGVnKTsgdHJhbnNmb3JtOnJvdGF0ZSgwZGVnKSB9IHRvIHsgLXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDF0dXJuKTsgdHJhbnNmb3JtOnJvdGF0ZSgxdHVybikgfSB9IEBzdXBwb3J0cyAoLXdlYmtpdC10b3VjaC1jYWxsb3V0Om5vbmUpIHsgYm9keSAjcHJvbW9Ub3BCdG4gLmFuaW0tZmxpcHsgLXdlYmtpdC1hbmltYXRpb24tZGVsYXk6dW5zZXQ7IGFuaW1hdGlvbi1kZWxheTp1bnNldDsgLXdlYmtpdC1hbmltYXRpb24tZGlyZWN0aW9uOnVuc2V0OyBhbmltYXRpb24tZGlyZWN0aW9uOnVuc2V0OyAtd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbjp1bnNldDsgYW5pbWF0aW9uLWR1cmF0aW9uOnVuc2V0OyAtd2Via2l0LWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6dW5zZXQ7IGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6dW5zZXQ7IC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjp1bnNldDsgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjp1bnNldDsgfSB9IC5wdWxzYXRpbmctY2lyY2xlIHsgcG9zaXRpb246cmVsYXRpdmU7IHdpZHRoOjMwcHg7IGhlaWdodDozMHB4OyBmbGV4OjAgMCBhdXRvOyAmOmJlZm9yZSB7IGNvbnRlbnQ6Jyc7IHBvc2l0aW9uOnJlbGF0aXZlOyBkaXNwbGF5OmJsb2NrOyB3aWR0aDozMDAlOyBoZWlnaHQ6MzAwJTsgYm94LXNpemluZzpib3JkZXItYm94OyBtYXJnaW4tbGVmdDotMTAwJTsgbWFyZ2luLXRvcDotMTAwJTsgYm9yZGVyLXJhZGl1czo0NXB4OyBiYWNrZ3JvdW5kLWNvbG9yOiMwMWE0ZTk7IGFuaW1hdGlvbjpwdWxzZS1yaW5nIDEuMjVzIGN1YmljLWJlemllcigwLjIxNSwgMC42MSwgMC4zNTUsIDEpIGluZmluaXRlOyB9ICY6YWZ0ZXIgeyBjb250ZW50OicnOyBwb3NpdGlvbjphYnNvbHV0ZTsgbGVmdDowOyB0b3A6MDsgZGlzcGxheTpibG9jazsgd2lkdGg6MTAwJTsgaGVpZ2h0OjEwMCU7IGJhY2tncm91bmQtY29sb3I6d2hpdGU7IGJvcmRlci1yYWRpdXM6MTVweDsgYm94LXNoYWRvdzowIDAgOHB4IHJnYmEoMCwwLDAsLjMpOyBhbmltYXRpb246cHVsc2UtZG90IDEuMjVzIGN1YmljLWJlemllcigwLjQ1NSwgMC4wMywgMC41MTUsIDAuOTU1KSAtLjRzIGluZmluaXRlOyB9IH0gQGtleWZyYW1lcyBwdWxzZS1yaW5nIHsgMCUgeyB0cmFuc2Zvcm06c2NhbGUoLjMzKTsgfSA4MCUsIDEwMCUgeyBvcGFjaXR5OjA7IH0gfSBAa2V5ZnJhbWVzIHB1bHNlLWRvdCB7IDAlIHsgdHJhbnNmb3JtOnNjYWxlKC44KTsgfSA1MCUgeyB0cmFuc2Zvcm06c2NhbGUoMSk7IH0gMTAwJSB7IHRyYW5zZm9ybTpzY2FsZSguOCk7IH0gfQovKiogL2Nzcy9kaXZfbGF5ZXJzLmNzcyAqKi8KZGl2Lk1haW5Cb3hMYXllcnsgd2lkdGg6bWluKDEwMCUsOTYwcHgpOyBtYXJnaW46MCBhdXRvOyB9IGRpdi5NYWluQm94TGF5ZXIgSDF7IHdpZHRoOjk0MHB4OyB9IGRpdi5NYWluQm94TGF5ZXIgLnJlc3BvbnNpdmUtZWRpdG9yIGgxIHsgd2lkdGg6aW5pdGlhbDsgfSBkaXYuTWFpbkJveExheWVyIGRpdi5jcmVkc2lpRGl2IEgxeyB3aWR0aDphdXRvOyB9IC5jcmVkc2lpRGl2eyB3aGl0ZS1zcGFjZTpub3JtYWw7IH0gZGl2Lk1haW5Cb3hMYXllciBkaXYuTGVmdEJveExheWVyIHsgfSBkaXYuTWFpbkJveExheWVyIGRpdi5SaWdodEJveExheWVyIHsgfSBkaXYuTWFpbkJveExheWVyIGRpdi5PdXRlckJveExheWVyIHsgcGFkZGluZzoxMHB4OyBmbG9hdDpsZWZ0OyB3aWR0aDo5NDBweDsgfSBkaXYuTWFpbkJveExheWVyIGRpdi5Jbm5lckJveExheWVyIHsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MHB4OyBtYXJnaW46MHB4OyB3aWR0aDoxMDAlOyBjbGVhcjpib3RoOyB9IGRpdi5NYWluQm94TGF5ZXIgZGl2LklubmVyQm94TGF5ZXIudG9wQm9yZGVyZWR7IGJvcmRlci10b3A6MXB4IHNvbGlkICNjY2M7IH0gZGl2Lk1haW5Cb3hMYXllciBkaXYuSW5uZXJCb3hMYXllci5ib3R0b21Cb3JkZXJlZHsgYm9yZGVyLWJvdHRvbToxcHggc29saWQgI2NjYzsgfSBkaXYuTWFpbkJveExheWVyIGRpdi5Cb3hDaGlsZCB7IH0gZGl2Lk1haW5Cb3hMYXllciBkaXYuQm94Q2hpbGQuZWFzdHsgZmxvYXQ6cmlnaHQ7IH0gZGl2Lk1haW5Cb3hMYXllciBkaXYuQm94Q2hpbGQud2VzdHsgZmxvYXQ6bGVmdDsgfSBib2R5LmlzRnVsbFdpZHRoUGFnZS5pc1BhZ2VGdWxsV2lkdGhFbmFibGVkIGRpdi5NYWluQm94TGF5ZXIgI3RvcEJhbm5lckltYWdleyB3aWR0aDo5NDBweDsgaGVpZ2h0OmF1dG87IHRleHQtYWxpZ246Y2VudGVyOyBtYXJnaW46MCBhdXRvOyB9IGJvZHkuaXNGdWxsV2lkdGhQYWdlLmlzUGFnZUZ1bGxXaWR0aEVuYWJsZWQgZGl2Lk1haW5Cb3hMYXllciAjdG9wQmFubmVySW1hZ2UgPiBpbWd7IG1heC13aWR0aDoxMDAlICFpbXBvcnRhbnQ7IH0gZGl2Lk1haW5Cb3hMYXllciBkaXYuT3V0ZXJCb3hMYXllciNoaXN0b3J5RGl2IGRpdi5Jbm5lckJveExheWVyICNicmVhZGNydW1icyB7IG1hcmdpbjowOyB9IEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDoxMzAxcHgpIHsgYm9keS5pc0Z1bGxXaWR0aFBhZ2UuaXNQYWdlRnVsbFdpZHRoRW5hYmxlZCBkaXYuTWFpbkJveExheWVyIHsgd2lkdGg6MTIwMHB4OyB9IGJvZHkuaXNGdWxsV2lkdGhQYWdlLmlzUGFnZUZ1bGxXaWR0aEVuYWJsZWQgZGl2Lk1haW5Cb3hMYXllciBkaXYuT3V0ZXJCb3hMYXllciB7IHdpZHRoOjExODBweDsgfSBib2R5LmlzRnVsbFdpZHRoUGFnZS5pc1BhZ2VGdWxsV2lkdGhFbmFibGVkIGRpdi5NYWluQm94TGF5ZXIgZGl2Lk91dGVyQm94TGF5ZXIueHRpbWVGcmFtZSB7IHdpZHRoOjEyMDBweDsgfSBib2R5LmlzRnVsbFdpZHRoUGFnZS5pc1BhZ2VGdWxsV2lkdGhFbmFibGVkIGRpdi5NYWluQm94TGF5ZXIgSDF7IHdpZHRoOjExODBweDsgfSBib2R5LmlzRnVsbFdpZHRoUGFnZS5pc1BhZ2VGdWxsV2lkdGhFbmFibGVkIGRpdi5NYWluQm94TGF5ZXIgLnJlc3BvbnNpdmUtZWRpdG9yIGgxIHsgd2lkdGg6aW5pdGlhbDsgfSBib2R5LmlzRnVsbFdpZHRoUGFnZS5pc1BhZ2VGdWxsV2lkdGhFbmFibGVkIGRpdi5NYWluQm94TGF5ZXIgZGl2LmNyZWRzaWlEaXYgSDF7IHdpZHRoOmF1dG87IH0gYm9keS5pc0Z1bGxXaWR0aFBhZ2UuaXNQYWdlRnVsbFdpZHRoRW5hYmxlZCBkaXYuTWFpbkJveExheWVyICN0b3BCYW5uZXJJbWFnZSB7IHdpZHRoOjExODBweDsgfSBib2R5LmlzRnVsbFdpZHRoUGFnZS5pc1BhZ2VGdWxsV2lkdGhFbmFibGVkIGRpdi5NYWluQm94TGF5ZXIgI3RvcEJhbm5lckltYWdlLlRFQU0geyB3aWR0aDo5NjBweDsgfSB9IGRpdi5NYWluQm94TGF5ZXIudWNwQ29udGVudEZ1bGxXaWR0aCB7IHdpZHRoOjEwMCUhaW1wb3J0YW50OyB9IGRpdi5NYWluQm94TGF5ZXIgZGl2LkxlZnRCb3hMYXllci51Y3BDb250ZW50RnVsbFdpZHRoIHsgd2lkdGg6MTAwJSFpbXBvcnRhbnQ7IH0gZGl2Lk1haW5Cb3hMYXllciBkaXYuT3V0ZXJCb3hMYXllci51Y3BDb250ZW50RnVsbFdpZHRoIHsgd2lkdGg6MTAwJSFpbXBvcnRhbnQ7IH0KLyoqIC9jc3MvZGl2X3NwYW5zLmNzcyAqKi8KLmRpdlNwYW57ZmxvYXQ6bGVmdDtib3gtc2l6aW5nOmJvcmRlci1ib3h9LmRpdlNwYW4uZGl2U3BhbkxlZnR7ZmxvYXQ6bGVmdH0uZGl2U3Bhbi5kaXZTcGFuUmlnaHR7ZmxvYXQ6cmlnaHR9LmRpdlNwYW4uZGl2U3BhbjF7d2lkdGg6OC4zMzMzMzMzMzMzMzMzMzMlfS5kaXZTcGFuLmRpdlNwYW4ye3dpZHRoOjE2LjY2NjY2NjY2NjY2NjY3JX0uZGl2U3Bhbi5kaXZTcGFuM3t3aWR0aDoyNSV9LmRpdlNwYW4uZGl2U3BhbjR7d2lkdGg6MzMuMzMzMzMzMzMzMzMzMzMlfS5kaXZTcGFuLmRpdlNwYW41e3dpZHRoOjQxLjY2NjY2NjY2NjY2NjY3JX0uZGl2U3Bhbi5kaXZTcGFuNnt3aWR0aDo1MCV9LmRpdlNwYW4uZGl2U3Bhbjd7d2lkdGg6NTguMzMzMzMzMzMzMzMzMzMlfS5kaXZTcGFuLmRpdlNwYW44e3dpZHRoOjY2LjY2NjY2NjY2NjY2NjY2JX0uZGl2U3Bhbi5kaXZTcGFuOXt3aWR0aDo3NSV9LmRpdlNwYW4uZGl2U3BhbjEwe3dpZHRoOjgzLjMzMzMzMzMzMzMzMzMzJX0uZGl2U3Bhbi5kaXZTcGFuMTF7d2lkdGg6OTEuNjY2NjY2NjY2NjY2NjYlfS5kaXZTcGFuLmRpdlNwYW4xMnt3aWR0aDoxMDAlfQovKiogL2Nzcy9tZW51LWJhc2UuY3NzICoqLwpib2R5IC51cF9tZW51LCBib2R5IC51cF9tZW51ICogeyBib3gtc2l6aW5nOmNvbnRlbnQtYm94ICFpbXBvcnRhbnQ7IH0gYm9keSAudXBfbWVudSB1bC5uYXYgPiBsaSA+IHVsLnN1YiwgYm9keSAudXBfbWVudSB1bC5uYXYgPiBsaSA+IHVsLnN1YiAqLCBib2R5IC51cF9tZW51IGlucHV0LCBib2R5IC51cF9tZW51IHNlbGVjdCwgYm9keSAudXBfbWVudSB0ZXh0YXJlYSwgYm9keSAudXBfbWVudSBidXR0b24geyBib3gtc2l6aW5nOmJvcmRlci1ib3ggIWltcG9ydGFudDsgfSBib2R5IC51cF9tZW51LCBib2R5IC51cF9tZW51ID4gLlMxMDBQZXJjZW50V2lkdGggeyBib3JkZXItd2lkdGg6aW5pdGlhbDsgYm9yZGVyLXN0eWxlOmluaXRpYWw7IGJvcmRlci1jb2xvcjppbml0aWFsOyB9IC5wcmljZSB7IGRpc3BsYXk6bm9uZTsgfSAubWVudS1zcGVjLXByaWNlID4gLnByaWNlIHsgZGlzcGxheTpibG9jazsgbWFyZ2luOmluaXRpYWw7IG1hcmdpbi10b3A6NHB4OyB3aWR0aDppbml0aWFsOyBmbG9hdDppbml0aWFsOyB9IC5tZW51LXNwZWMtcHJpY2UgPiAucHJpY2UgPiBzcGFuIHsgZGlzcGxheTpsaXN0LWl0ZW07IGxpbmUtaGVpZ2h0OjE1cHg7IH0gaW1nLmhvbWUtaWNvbiB7IHBhZGRpbmctdG9wOjAgIWltcG9ydGFudDsgfSBib2R5ID4gLnVwX21lbnUgPiAubmF2ID4gLmlzQm9sZHsgZm9udC13ZWlnaHQ6Ym9sZDsgfSAubmF2ID4gbGkjTWFpbk1lbnVfSE9NRSA+IGEuaXNJbWFnZSA+IHNwYW57IGhlaWdodDozM3B4OyB3aWR0aDozMXB4OyBwYWRkaW5nOjA7IHRleHQtaW5kZW50Oi0yMDAwZW07IGJhY2tncm91bmQtaW1hZ2U6dXJsKCcvaW1hZ2VzL2ljb25faG9tZV90YWJDb2xvci5wbmcnKTsgYmFja2dyb3VuZC1wb3NpdGlvbjpjZW50ZXIgMDsgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDsgZGlzcGxheTpibG9jazsgfSAubmF2ID4gbGkjTWFpbk1lbnVfSE9NRTpob3ZlciA+IGEuaXNJbWFnZSA+IHNwYW57IGJhY2tncm91bmQtaW1hZ2U6dXJsKCcvaW1hZ2VzL2ljb25faG9tZV9ob3Zlci5wbmcnKTsgfSB1bC5zbGltLXN1Ym1lbnUgPiBsaSA+IGEgeyBwYWRkaW5nOjZweCAxNXB4ICFpbXBvcnRhbnQ7IHRleHQtd3JhcDphdXRvOyB9IHVsLnNsaW0tc3VibWVudS0yID4gbGkgPiBhIHsgcGFkZGluZzo5cHggMTVweCAhaW1wb3J0YW50OyB0ZXh0LXdyYXA6YXV0bzsgfSB1bC5zbGltLXN1Ym1lbnUtMyA+IGxpID4gYSB7IHBhZGRpbmc6MTJweCAxNXB4ICFpbXBvcnRhbnQ7IH0gdWwuc2xpbS1zdWJtZW51LTMgPiBsaSA+IGE6bm90KC50b3BfbGluaykgeyB0ZXh0LXdyYXA6YXV0bzsgbWluLXdpZHRoOjIwMHB4OyB9IHVsLnN1YiA+IGxpID4gYSB7IHRleHQtd3JhcDphdXRvOyBtaW4td2lkdGg6MjAwcHg7IH0gZGl2Lm1haW5tZW51LXN1Ym1lbnUgPiB1bC5zdWIgPiBsaS5oYXNTdWIgPiBhIHsgYm9yZGVyLWJvdHRvbToycHggc29saWQgdmFyKC0tbWVudS1ob3Zlci1iZy1jb2xvcik7IHBhZGRpbmctYm90dG9tOjE1cHg7IHRleHQtdHJhbnNmb3JtOnZhcigtLXR4dC11cHBlcik7IGxldHRlci1zcGFjaW5nOjFweDsgZm9udC13ZWlnaHQ6Ym9sZDsgfSBkaXYubWFpbm1lbnUtc3VibWVudSA+IHVsLnN1YiA+IGxpLmhhc1N1YiA+IGE6YWZ0ZXIgeyBjb250ZW50OiIiOyBkaXNwbGF5Om5vbmU7IH0gLnVwX21lbnUgdWwubmF2ICNNYWluTWVudV9ORVc+dWwuc3ViID4gbGkgPiBkaXYubWFpbm1lbnUtc3VibWVudSA+IHVsLnN1YiA+bGkuaGFzU3ViOmhvdmVyID4gYSwgLnVwX21lbnUgdWwubmF2ICNNYWluTWVudV9UQUJfQ09NTUVSQ0lBTD51bC5zdWIgPiBsaSA+IGRpdi5tYWlubWVudS1zdWJtZW51ID4gdWwuc3ViID5saS5oYXNTdWI6aG92ZXIgPiBheyBiYWNrZ3JvdW5kLWNvbG9yOndoaXRlOyBjb2xvcjp2YXIoLS1ibGFjayk7IH0gZGl2Lm1haW5tZW51LXN1Ym1lbnUgeyBsZWZ0OjE0MCU7IHRvcDowOyBwb3NpdGlvbjphYnNvbHV0ZTsgZGlzcGxheTpibG9jazsgdmlzaWJpbGl0eTpoaWRkZW47IG9wYWNpdHk6MDsgei1pbmRleDoxOyB9IC51cF9tZW51IHVsLm5hdiBsaSNNYWluTWVudV9ORVcgdWwuc3ViID4gbGk6aG92ZXIgPiAubWFpbm1lbnUtc3VibWVudSwgLnVwX21lbnUgdWwubmF2IGxpI01haW5NZW51X1VTRUQgdWwuc3ViID4gbGk6aG92ZXIgPiAubWFpbm1lbnUtc3VibWVudSwgbGlbZGF0YS1pZD0iU1VCX1RBQl9DT01NRVJDSUFMX0NPTU1FUiJdOmhvdmVyID4gLm1haW5tZW51LXN1Ym1lbnUgeyBkaXNwbGF5OmJsb2NrOyB2aXNpYmlsaXR5OnZpc2libGU7IGxlZnQ6MTAwJTsgdHJhbnNpdGlvbjphbGwgMC4ycywgb3BhY2l0eSAwLjVzOyBvcGFjaXR5OjE7IH0gZGl2Lm1haW5tZW51LXN1Ym1lbnUgPiB1bC5zdWIgPiBsaSA+IHVsLnN1YiwgZGl2Lm1haW5tZW51LXN1Ym1lbnUgPiB1bC5zdWIgPiBsaSA+IHVsLnN1YiA+IGxpIHsgcG9zaXRpb246c3RhdGljOyBiYWNrZ3JvdW5kLWNvbG9yOndoaXRlOyB9IGRpdi5tYWlubWVudS1zdWJtZW51ID4gdWwuc3ViID4gbGkgPiB1bC5zdWIsIGRpdi5tYWlubWVudS1zdWJtZW51ID4gdWwuc3ViID4gbGkgPiB1bC5zdWIgPiBsaTpob3ZlciB7IGJhY2tncm91bmQtY29sb3I6dmFyKC0tbWVudS1ob3Zlci1iZy1jb2xvcik7IH0gZGl2Lm1haW5tZW51LXN1Ym1lbnUgPiB1bC5zdWIgPiBsaSA+IHVsLnN1YiA+IGxpIHsgYm9yZGVyLWJvdHRvbToxcHggc29saWQgI2U1ZTVlNTsgZGlzcGxheTpmbGV4OyBmbGV4LWRpcmVjdGlvbjpyb3ctcmV2ZXJzZTsgfSAubWVudS10ZWNoLXNwZWNzIHsgcG9zaXRpb246YWJzb2x1dGU7IGxlZnQ6OTQlOyB0b3A6MDsgLXdlYmtpdC1ib3gtc2hhZG93OjAgNnB4IDEycHggcmdiYSgwLDAsMCwuMTc1KTsgYm94LXNoYWRvdzowIDZweCAxMnB4IHJnYmEoMCwwLDAsLjE3NSk7IGRpc3BsYXk6bm9uZTsgcGFkZGluZzoxNHB4OyBiYWNrZ3JvdW5kOndoaXRlOyB0ZXh0LWFsaWduOmxlZnQ7IHotaW5kZXg6MTA7IGNvbG9yOnZhcigtLWJsYWNrKTsgbWluLXdpZHRoOjI1MHB4OyBkaXNwbGF5Om5vbmU7IHZpc2liaWxpdHk6aGlkZGVuOyBvcGFjaXR5OjA7IH0gLm1lbnUtdGVjaC1zcGVjcyBsaS5kaXZpZGVyIHsgaGVpZ2h0OjFweDsgbWFyZ2luOjlweCAwOyBvdmVyZmxvdzpoaWRkZW47IGJhY2tncm91bmQtY29sb3I6I2U1ZTVlNTsgfSAubWVudS10ZWNoLXNwZWNzID4gLm1lbnUtc3BlY3MtdGl0bGUgeyBtYXJnaW4tYm90dG9tOjFlbTsgZm9udC1zaXplOmluaXRpYWw7IGNvbG9yOmJsYWNrOyB9IHVsLm1lbnUtc3BlY3MtbGlzdCBsaSB7IGZvbnQtc2l6ZTowLjc1cmVtIDsgfSB1bC5tZW51LXNwZWNzLWxpc3QgPiBsaTpudGgtY2hpbGQobiszKSB7IG1hcmdpbi1ib3R0b206MWVtOyB9IC5tZW51LXRlY2gtc3BlY3MgPiB1bC5tZW51LXNwZWNzLWxpc3QgPiBsaSA+IGEgeyBwYWRkaW5nOjNweCA0cHggIWltcG9ydGFudDsgZm9udC13ZWlnaHQ6NDAwICFpbXBvcnRhbnQ7IGZvbnQtc2l6ZTowLjc1cmVtICFpbXBvcnRhbnQ7IHRleHQtYWxpZ246bGVmdCAhaW1wb3J0YW50OyB9IC5tZW51LXNwZWNzLWxpc3QgPiBsaSB7IGJvcmRlci1ib3R0b206bm9uZTsgfSAubWVudS1zcGVjcy1saXN0IGxpIHN0cm9uZywgLm1lbnUtc3BlY3MtbGlzdCBsaSBzcGFuIHsgY29sb3I6dmFyKC0tYmxhY2spOyB9IHVsLm1lbnUtc3BlY3MtbGlzdCA+IGxpID4gc3Ryb25nIHsgZm9udC13ZWlnaHQ6NzAwICFpbXBvcnRhbnQ7OyB9IHVsLm1lbnUtc3BlY3MtbGlzdCA+IGxpID4gc3BhbiB7IGxpbmUtaGVpZ2h0OjI7IH0gLm1haW5tZW51LXN1Ym1lbnUgPiB1bC5zdWIgPiBsaSA+IHVsLnN1YiA+IGxpOmhvdmVyID4gLm1lbnUtdGVjaC1zcGVjcyB7IGRpc3BsYXk6YmxvY2s7IHZpc2liaWxpdHk6dmlzaWJsZTsgdHJhbnNpdGlvbjowLjVzOyBvcGFjaXR5OjE7IH0gLnVwX21lbnUgbGkjTWFpbk1lbnVfTkVXIHVsLnN1YiA+IGxpID4gdWwuc3ViID4gbGkgPiB1bC5zdWIgPiBsaTpob3ZlciA+IC5tZW51LXRlY2gtc3BlY3MsIC51cF9tZW51IGxpI01haW5NZW51X1RBQl9DT01NRVJDSUFMIHVsLnN1YiA+IGxpID4gdWwuc3ViID4gbGkgPiB1bC5zdWIgPiBsaTpob3ZlciA+IC5tZW51LXRlY2gtc3BlY3N7IGRpc3BsYXk6YmxvY2s7IHZpc2liaWxpdHk6dmlzaWJsZTsgdHJhbnNpdGlvbjowLjVzOyBvcGFjaXR5OjE7IH0gYm9keTpub3QoLmlzRnVsbFdpZHRoUGFnZSkgLnVwX21lbnUgeyBwb3NpdGlvbjppbmhlcml0OyB9IGJvZHk6bm90KC5pc0Z1bGxXaWR0aFBhZ2UpICNtYWluRGl2OjphZnRlciB7IGhlaWdodDowOyB9ICNtYWluRGl2LndyYXBwZXIgeyBwYWRkaW5nOjA7IH0gYm9keSAudXBfbWVudXsgaGVpZ2h0OmF1dG87IHdpZHRoOjk2MHB4OyBwb3NpdGlvbjpyZWxhdGl2ZTsgei1pbmRleDoxMDAwOyB3aGl0ZS1zcGFjZTpub3dyYXA7IGNvbG9yOnZhcigtLWJsYWNrKTsgfSBib2R5IC51cF9tZW51LmhpZGRlbmhlYWRlcnsgbWFyZ2luLXRvcDoxMDZweDsgcGFkZGluZy10b3A6M3B4OyB9IGJvZHkgLnVwX21lbnUuaGlkZGVuaGVhZGVyLmZpeGVkLCBib2R5IC51cF9tZW51LmZpeGVkIHsgdG9wOjA7IHBvc2l0aW9uOmZpeGVkOyBtYXJnaW4tdG9wOjA7IG9wYWNpdHk6MC43NTsgfSBib2R5IC51cF9tZW51LndpdGgtYm9yZGVyLmZpeGVkIHsgdG9wOjFweDsgfSBib2R5IC51cF9tZW51LmZpeGVkOmhvdmVyeyBvcGFjaXR5OjE7IH0gYm9keSAudXBfbWVudSA+IC5TMTAwUGVyY2VudFdpZHRoIHsgYmFja2dyb3VuZDp2YXIoLS1tZW51LWJnLWNvbG9yKTsgaGVpZ2h0OmF1dG87IH0gYm9keSAudXBfbWVudSAubmF2ID4gbGkubm9meCA+IGF7IHRyYW5zaXRpb246bm9uZTsgfSBib2R5IC51cF9tZW51IC5uYXYgPiBsaXsgZmxleC1ncm93OjE7IH0gYm9keSAudXBfbWVudSAubmF2ID4gbGkgYXsgZm9udC1zaXplOjAuODc1cmVtIDsgfSAuc3ViIHsgaGVpZ2h0OmF1dG87IH0gdWwuc3ViIHsgcGFkZGluZzowOyB9IC51cF9tZW51IHsgZmxvYXQ6bGVmdDsgbWFyZ2luOjA7IH0gLnVwX21lbnUgdWwgeyBsaXN0LXN0eWxlOm5vbmU7IHBhZGRpbmc6MDsgbWFyZ2luOjA7IHotaW5kZXg6MTsgfSAudXBfbWVudSB1bC5zdWIgeyAtd2Via2l0LWJveC1zaGFkb3c6MCA2cHggMTJweCByZ2JhKDAsMCwwLC4xNzUpOyBib3gtc2hhZG93OjAgNnB4IDEycHggcmdiYSgwLDAsMCwuMTc1KTsgfSAudXBfbWVudSB1bC5uYXYgeyBtYXJnaW46MDsgcGFkZGluZzowOyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLW1haW4tbWVudS1iZy1jb2xvcik7IGRpc3BsYXk6ZmxleDsgd2lkdGg6MTAwJTsganVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47IGFsaWduLWl0ZW1zOmNlbnRlcjsgZmxleC1kaXJlY3Rpb246cm93LXJldmVyc2U7IH0gLnVwX21lbnUgdWwubmF2ID4gbGkjTWFpbk1lbnVfTkVXIHsgcG9zaXRpb246cmVsYXRpdmU7IH0gLnVwX21lbnUgdWwubmF2IGxpID4gYSB7IGRpc3BsYXk6YmxvY2s7IGNvbG9yOnZhcigtLWJsYWNrKTsgdGV4dC1hbGlnbjpsZWZ0OyBwYWRkaW5nOjE1cHggNSU7IHRleHQtZGVjb3JhdGlvbjpub25lOyB3aWR0aDphdXRvOyB9IC51cF9tZW51IHVsLm5hdiBsaSB1bC5zdWIgeyBkaXNwbGF5Om5vbmU7IH0gLnVwX21lbnUgdWwubmF2ID4gbGkgPiBhIHsgY29sb3I6dmFyKC0tdGFiLXRleHQtY29sb3IpOyB0ZXh0LWFsaWduOmNlbnRlcjsgfSAudXBfbWVudSB1bC5uYXYgbGk6aG92ZXIgPiBhLCAudXBfbWVudSB1bC5uYXYgbGkuaXNPcGVuID4gYSB7IGNvbG9yOnZhcigtLW1lbnUtaG92ZXItdGV4dC1jb2xvcik7IGJhY2tncm91bmQtY29sb3I6dmFyKC0tbWVudS1ob3Zlci1iZy1jb2xvcik7IH0gLnVwX21lbnUgdWwubmF2ID4gbGk6aG92ZXIgPiB1bC5zdWIsIC51cF9tZW51IHVsLm5hdiA+IGxpLmlzT3BlbiA+IHVsLnN1YiB7IGRpc3BsYXk6YmxvY2s7IHBvc2l0aW9uOmFic29sdXRlOyBiYWNrZ3JvdW5kLWNvbG9yOndoaXRlOyB9IC51cF9tZW51IHVsLm5hdiA+IGxpI01haW5NZW51X05FVzpob3ZlciA+IHVsLnN1YiwgLnVwX21lbnUgdWwubmF2ID4gbGkjTWFpbk1lbnVfVEFCX0NPTU1FUkNJQUw6aG92ZXIgPiB1bC5zdWJ7IG1pbi13aWR0aDoxMDAlOyB9IC51cF9tZW51IHVsLm5hdiBsaTpob3ZlciA+IHVsLnN1YiA+IGxpID4gdWwuc3ViIHsgbGVmdDoxNDAlOyB0b3A6MDsgcG9zaXRpb246YWJzb2x1dGU7IGRpc3BsYXk6YmxvY2s7IHZpc2liaWxpdHk6aGlkZGVuOyBvcGFjaXR5OjA7IH0gI01haW5NZW51X1RBQl9DT01NRVJDSUFMIHsgcG9zaXRpb246cmVsYXRpdmU7IH0gLnVwX21lbnUgbGkjTWFpbk1lbnVfVEFCX0NPTU1FUkNJQUwgPiB1bC5zdWIgPiBsaSA+IHVsLnN1YiB7IG1heC1oZWlnaHQ6NjQwcHg7IG92ZXJmbG93LXk6YXV0bzsgfSAudXBfbWVudSB1bC5uYXYgPiBsaSA+IHVsLnN1YiA+IGxpOm5vdCgubGFzdEl0ZW0pOm5vdCgubGFzdE1lbnUpOm5vdCguaGFzSXRlbXMpIHsgYm9yZGVyLWJvdHRvbToxcHggc29saWQgI2U1ZTVlNTsgfSAudXBfbWVudSB1bC5uYXYgPiBsaSA+IHVsLnN1YiA+IGxpID4gdWwuc3ViID4gbGkgPiB1bC5zdWIgPiBsaTpub3QoLmxhc3RJdGVtKSB7IGJvcmRlci1ib3R0b206MXB4IHNvbGlkICNlNWU1ZTU7IH0gbGkgdWwuc3ViIGEgeyBiYWNrZ3JvdW5kLWNvbG9yOndoaXRlOyB9IC51cF9tZW51IHVsLm5hdiBsaSNNYWluTWVudV9ORVcgdWwuc3ViID4gbGk6aG92ZXIgdWwuc3ViLCAudXBfbWVudSB1bC5uYXYgbGkjTWFpbk1lbnVfVVNFRCB1bC5zdWIgPiBsaTpob3ZlciB1bC5zdWIsIC51cF9tZW51IHVsLm5hdiBsaSNNYWluTWVudV9UQUJfQ09NTUVSQ0lBTCB1bC5zdWIgPiBsaTpob3ZlciB1bC5zdWIsIC51cF9tZW51IHVsLm5hdiBsaSNNYWluTWVudV9VU0VEIHVsLnN1YiA+IGxpOmhvdmVyIHVsLnN1YiB7IGRpc3BsYXk6YmxvY2s7IHZpc2liaWxpdHk6dmlzaWJsZTsgbGVmdDoxMDAlOyB0cmFuc2l0aW9uOmFsbCAwLjJzLCBvcGFjaXR5IDAuNXM7IG9wYWNpdHk6MTsgfSAudXBfbWVudSB1bC5uYXYgbGkjTWFpbk1lbnVfVVNFRDpob3ZlciB1bC5zdWIgbGkgdWwuc3ViIHsgZGlzcGxheTpibG9jazsgdmlzaWJpbGl0eTp2aXNpYmxlOyBsZWZ0OjA7IHBvc2l0aW9uOnJlbGF0aXZlOyBvcGFjaXR5OjE7IGJveC1zaGFkb3c6bm9uZTsgfSAudXBfbWVudSBsaSNNYWluTWVudV9ORVcgdWwuc3ViID4gbGkuaG92ZXIgPiBhLCAudXBfbWVudSBsaSNNYWluTWVudV9UQUJfQ09NTUVSQ0lBTCB1bC5zdWIgPiBsaS5ob3ZlciA+IGEgeyBjb2xvcjp2YXIoLS1tZW51LWhvdmVyLXRleHQtY29sb3IpOyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLW1lbnUtaG92ZXItYmctY29sb3IpOyB9IC51cF9tZW51IGxpI01haW5NZW51X05FVyB1bC5zdWIgPiBsaS5ob3ZlciBsaSA+IHVsLnN1YiwgLnVwX21lbnUgbGkjTWFpbk1lbnVfVEFCX0NPTU1FUkNJQUwgdWwuc3ViID4gbGkuaG92ZXIgbGkgPiB1bC5zdWIgeyBkaXNwbGF5OmJsb2NrOyB9IC51cF9tZW51IGxpI01haW5NZW51X05FVyB1bC5zdWIgPiBsaTpob3ZlciA+IHVsLnN1YiA+IGxpID4gdWwuc3ViOmZpcnN0LWNoaWxkLCAudXBfbWVudSBsaSNNYWluTWVudV9UQUJfQ09NTUVSQ0lBTCB1bC5zdWIgPiBsaTpob3ZlciA+IHVsLnN1YiA+IGxpID4gdWwuc3ViOmZpcnN0LWNoaWxkIHsgZGlzcGxheTpibG9jazsgfSAjTWFpbk1lbnVfVEFCX0NPTU1FUkNJQUwgPiAuc3ViIHsgbWluLXdpZHRoOjEwMCU7IH0gI01haW5NZW51X05FVyA+IHVsLnN1YiA+IGxpID4gdWwuc3ViLCAudXBfbWVudSBsaSNNYWluTWVudV9UQUJfQ09NTUVSQ0lBTCA+IHVsLnN1YiA+IGxpID4gdWwuc3ViIC5pdGVtLXdyYXAuaW1nTGluayB7IHBhZGRpbmctYm90dG9tOjEwcHg7IH0gI01haW5NZW51X05FVyA+IHVsLnN1YiA+IGxpID4gdWwuc3ViLCAudXBfbWVudSBsaSNNYWluTWVudV9UQUJfQ09NTUVSQ0lBTCA+IHVsLnN1YiA+IGxpID4gdWwuc3ViIHsgYmFja2dyb3VuZDp3aGl0ZTsgd2lkdGg6NDIwcHg7IHBvc2l0aW9uOmFic29sdXRlOyB9IC51cF9tZW51IGxpI01haW5NZW51X05FVyA+IHVsLnN1YiA+IGxpID4gdWwuc3ViID4gbGksIC51cF9tZW51IGxpI01haW5NZW51X1RBQl9DT01NRVJDSUFMID4gdWwuc3ViID4gbGkgPiB1bC5zdWIgPiBsaSB7IGRpc3BsYXk6YmxvY2s7IH0gLnVwX21lbnUgbGkjTWFpbk1lbnVfTkVXID4gdWwuc3ViID4gbGkgPiB1bC5zdWIgPiBsaTpub3QoLmxhc3RJdGVtKSwgLnVwX21lbnUgbGkjTWFpbk1lbnVfVEFCX0NPTU1FUkNJQUwgPiB1bC5zdWIgPiBsaSA+IHVsLnN1YiA+IGxpOm5vdCgubGFzdEl0ZW0pIHsgYm9yZGVyLWJvdHRvbToxcHggc29saWQgI2U1ZTVlNTsgfSAudXBfbWVudSB1bC5uYXYgI01haW5NZW51X05FVz51bC5zdWIgbGk+dWwuc3ViPmxpLmhhc1N1Yjpob3Zlcj5hLCAudXBfbWVudSB1bC5uYXYgI01haW5NZW51X1RBQl9DT01NRVJDSUFMPnVsLnN1YiBsaT51bC5zdWI+bGkuaGFzU3ViOmhvdmVyPmEgeyBiYWNrZ3JvdW5kLWNvbG9yOndoaXRlOyBjb2xvcjp2YXIoLS1ibGFjayk7IH0gLnVwX21lbnUgdWwubmF2ICNNYWluTWVudV9ORVc+dWwuc3ViIGxpIGEuZW1wdHksIC51cF9tZW51IHVsLm5hdiAjTWFpbk1lbnVfVEFCX0NPTU1FUkNJQUw+dWwuc3ViIGxpIGEuZW1wdHkgeyBwYWRkaW5nOjA7IGJvcmRlci1ib3R0b206bm9uZTsgfSAudXBfbWVudSBsaSNNYWluTWVudV9ORVcgdWwuc3ViID4gbGkgPiB1bC5zdWIgPiBsaSA+IHVsLnN1YiwgLnVwX21lbnUgbGkjTWFpbk1lbnVfVEFCX0NPTU1FUkNJQUwgdWwuc3ViID4gbGkgPiB1bC5zdWIgPiBsaSA+IHVsLnN1YiB7IGxlZnQ6MDsgdG9wOmluaGVyaXQ7IHBvc2l0aW9uOnN0YXRpYzsgLXdlYmtpdC1ib3gtc2hhZG93Om5vbmU7IGJveC1zaGFkb3c6bm9uZTsgfSAudXBfbWVudSBsaSNNYWluTWVudV9ORVcgdWwuc3ViID4gbGkgPiB1bC5zdWIgPiBsaTpob3ZlciA+IHVsLnN1YiAsIC51cF9tZW51IGxpI01haW5NZW51X1RBQl9DT01NRVJDSUFMIHVsLnN1YiA+IGxpID4gdWwuc3ViID4gbGk6aG92ZXIgPiB1bC5zdWIgeyBkaXNwbGF5OmJsb2NrOyB9IC51cF9tZW51IGxpI01haW5NZW51X05FVyB1bC5zdWIgPiBsaSA+IHVsLnN1YiA+IGxpID4gdWwuc3ViID4gbGksIC51cF9tZW51IGxpI01haW5NZW51X1RBQl9DT01NRVJDSUFMIHVsLnN1YiA+IGxpID4gdWwuc3ViID4gbGkgPiB1bC5zdWIgPiBsaSB7IGJhY2tncm91bmQtY29sb3I6d2hpdGU7IH0gLnVwX21lbnUgbGkjTWFpbk1lbnVfTkVXIHVsLnN1YiA+IGxpID4gdWwuc3ViID4gbGkgPiB1bC5zdWIgPiBsaTpob3ZlciwgLnVwX21lbnUgbGkjTWFpbk1lbnVfVEFCX0NPTU1FUkNJQUwgdWwuc3ViID4gbGkgPiB1bC5zdWIgPiBsaSA+IHVsLnN1YiA+IGxpOmhvdmVyIHsgY29sb3I6dmFyKC0tbWVudS1ob3Zlci10ZXh0LWNvbG9yKTsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1tZW51LWhvdmVyLWJnLWNvbG9yKTsgfSAudXBfbWVudSBsaSNNYWluTWVudV9ORVcgdWwuc3ViID4gbGkgPiB1bC5zdWIgPiBsaSA+IHVsLnN1YiA+IGxpOmhvdmVyID4gYSwgLnVwX21lbnUgbGkjTWFpbk1lbnVfVEFCX0NPTU1FUkNJQUwgdWwuc3ViID4gbGkgPiB1bC5zdWIgPiBsaSA+IHVsLnN1YiA+IGxpOmhvdmVyID4gYSB7IGNvbG9yOnZhcigtLW1lbnUtaG92ZXItdGV4dC1jb2xvcik7IGJhY2tncm91bmQtY29sb3I6dmFyKC0tbWVudS1ob3Zlci1iZy1jb2xvcik7IH0gLnVwX21lbnUgbGkjTWFpbk1lbnVfTkVXIHVsLnN1YiA+IGxpID4gdWwuc3ViID4gbGkgPiB1bC5zdWIgPiBsaSA+IGE6bm90KC5pdGVtLXdyYXApLCAudXBfbWVudSBsaSNNYWluTWVudV9UQUJfQ09NTUVSQ0lBTCB1bC5zdWIgPiBsaSA+IHVsLnN1YiA+IGxpID4gdWwuc3ViID4gbGkgPiBhOm5vdCguaXRlbS13cmFwKSB7IHBhZGRpbmc6MDsgbGluZS1oZWlnaHQ6NjBweDsgaGVpZ2h0OjYwcHg7IH0gLnVwX21lbnUgbGkjTWFpbk1lbnVfTkVXIHVsLnN1YiA+IGxpID4gdWwuc3ViID4gbGkgPiB1bC5zdWIgPiBsaSA+IGE6Zmlyc3QtY2hpbGQsIC51cF9tZW51IGxpI01haW5NZW51X1RBQl9DT01NRVJDSUFMIHVsLnN1YiA+IGxpID4gdWwuc3ViID4gbGkgPiB1bC5zdWIgPiBsaSA+IGE6Zmlyc3QtY2hpbGQgeyBwYWRkaW5nLXJpZ2h0OjE1cHg7IHdpZHRoOjI1JTsgbWluLXdpZHRoOmZpdC1jb250ZW50OyB9IC51cF9tZW51IGxpI01haW5NZW51X05FVyB1bC5zdWIgPiBsaSA+IHVsLnN1YiA+IGxpID4gdWwuc3ViID4gbGkgPiBhOm50aC1vZi10eXBlKDIpLCAudXBfbWVudSBsaSNNYWluTWVudV9UQUJfQ09NTUVSQ0lBTCB1bC5zdWIgPiBsaSA+IHVsLnN1YiA+IGxpID4gdWwuc3ViID4gbGkgPiBhOm50aC1vZi10eXBlKDIpIHsgcGFkZGluZy1sZWZ0OjE1cHg7IHdpZHRoOjc1JTsgfSAudXBfbWVudSBsaSNNYWluTWVudV9ORVcgdWwuc3ViID4gbGkgPiB1bC5zdWIgPiBsaSA+IHVsLnN1YiA+IGxpID4gYS5pbWdMaW5rLCAudXBfbWVudSBsaSNNYWluTWVudV9UQUJfQ09NTUVSQ0lBTCB1bC5zdWIgPiBsaSA+IHVsLnN1YiA+IGxpID4gdWwuc3ViID4gbGkgPiBhLmltZ0xpbmsgeyBwb3NpdGlvbjphYnNvbHV0ZTsgcmlnaHQ6MDsgfSAudXBfbWVudSBsaSNNYWluTWVudV9ORVcgdWwuc3ViID4gbGkgPiB1bC5zdWIgPiBsaSA+IHVsLnN1YiA+IGxpID4gYS5pbWdMaW5rID4gaW1nLCAudXBfbWVudSBsaSNNYWluTWVudV9UQUJfQ09NTUVSQ0lBTCB1bC5zdWIgPiBsaSA+IHVsLnN1YiA+IGxpID4gdWwuc3ViID4gbGkgPiBhLmltZ0xpbmsgPiBpbWcgeyBoZWlnaHQ6NjBweDsgdmVydGljYWwtYWxpZ246YmFzZWxpbmU7IH0gLnVwX21lbnUgbGkjTWFpbk1lbnVfTkVXIHVsLnN1YiA+IGxpID4gdWwuc3ViID4gbGkuaGFzU3ViID4gYSwgLnVwX21lbnUgbGkjTWFpbk1lbnVfVEFCX0NPTU1FUkNJQUwgdWwuc3ViID4gbGkgPiB1bC5zdWIgPiBsaS5oYXNTdWIgPiBhIHsgYm9yZGVyLWJvdHRvbToycHggc29saWQgdmFyKC0tbWVudS1ob3Zlci1iZy1jb2xvcik7IHBhZGRpbmctYm90dG9tOjE1cHg7IHRleHQtdHJhbnNmb3JtOnZhcigtLXR4dC11cHBlcik7IGxldHRlci1zcGFjaW5nOjFweDsgZm9udC13ZWlnaHQ6Ym9sZDsgfSAudXBfbWVudSBsaSNNYWluTWVudV9ORVcgdWwuc3ViID4gbGkgPiB1bC5zdWIgPiBsaS5oYXNTdWIgPiBhOmFmdGVyLCAudXBfbWVudSBsaSNNYWluTWVudV9UQUJfQ09NTUVSQ0lBTCB1bC5zdWIgPiBsaSA+IHVsLnN1YiA+IGxpLmhhc1N1YiA+IGE6YWZ0ZXIgeyBjb250ZW50OiIiOyBkaXNwbGF5Om5vbmU7IH0gbGkuYWxpZ24tbGV2ZWwgeyBwb3NpdGlvbjpzdGF0aWM7IH0gLnVwX21lbnUgbGkjTWFpbk1lbnVfTkVXIHVsLnN1YiA+IGxpID4gZGl2Lm1haW5tZW51LXN1Ym1lbnUgPiB1bC5zdWIgPiBsaSA+IHVsLnN1YiA+IGxpID4gYTpudGgtb2YtdHlwZSgyKS5pdGVtLXdyYXAsIC51cF9tZW51IGxpI01haW5NZW51X1RBQl9DT01NRVJDSUFMIHVsLnN1YiA+IGxpID4gZGl2Lm1haW5tZW51LXN1Ym1lbnUgPiB1bC5zdWIgPiBsaSA+IHVsLnN1YiA+IGxpID4gYTpudGgtb2YtdHlwZSgyKS5pdGVtLXdyYXB7IHBhZGRpbmctdG9wOjExcHg7IHBhZGRpbmctYm90dG9tOjEwcHg7IHdoaXRlLXNwYWNlOm5vcm1hbDsgfSB1bC5zdWIgbGkgYS5pdGVtLXdyYXAgeyBsaW5lLWhlaWdodDoyMHB4OyB9IC51cF9tZW51IGxpI01haW5NZW51X05FVyB1bC5zdWIgPiBsaSA+IC5tYWlubWVudS1zdWJtZW51ICosIC51cF9tZW51IGxpI01haW5NZW51X05FVyB1bC5zdWIgPiBsaSA+IHVsLnN1YiAqLCAudXBfbWVudSBsaSNNYWluTWVudV9UQUJfQ09NTUVSQ0lBTCB1bC5zdWIgPiBsaSA+IC5tYWlubWVudS1zdWJtZW51ICosIC51cF9tZW51IGxpI01haW5NZW51X1RBQl9DT01NRVJDSUFMIHVsLnN1YiA+IGxpID4gdWwuc3ViICogeyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IH0gLnVwX21lbnUgbGkjTWFpbk1lbnVfTkVXIHVsLnN1YiA+IGxpID4gZGl2Lm1haW5tZW51LXN1Ym1lbnUgPiB1bC5zdWIgPiBsaSA+IHVsLnN1YiA+IGxpID4gYTpub3QoLml0ZW0td3JhcCksIC51cF9tZW51IGxpI01haW5NZW51X1RBQl9DT01NRVJDSUFMIHVsLnN1YiA+IGxpID4gZGl2Lm1haW5tZW51LXN1Ym1lbnUgPiB1bC5zdWIgPiBsaSA+IHVsLnN1YiA+IGxpID4gYTpub3QoLml0ZW0td3JhcCkgeyBwYWRkaW5nOjA7IGxpbmUtaGVpZ2h0OjYwcHg7IGhlaWdodDo2MHB4OyB0ZXh0LWFsaWduOmxlZnQ7IH0gLnVwX21lbnUgbGkjTWFpbk1lbnVfTkVXIHVsLnN1YiA+IGxpID4gZGl2Lm1haW5tZW51LXN1Ym1lbnUgPiB1bC5zdWIgPiBsaSA+IHVsLnN1YiA+IGxpID4gYTpmaXJzdC1jaGlsZCwgLnVwX21lbnUgbGkjTWFpbk1lbnVfVEFCX0NPTU1FUkNJQUwgdWwuc3ViID4gbGkgPiBkaXYubWFpbm1lbnUtc3VibWVudSA+IHVsLnN1YiA+IGxpID4gdWwuc3ViID4gbGkgPiBhOmZpcnN0LWNoaWxkIHsgcGFkZGluZy1yaWdodDoxNXB4OyB3aWR0aDozMCU7IG1pbi13aWR0aDpmaXQtY29udGVudDsgfSAudXBfbWVudSBsaSNNYWluTWVudV9ORVcgdWwuc3ViID4gbGkgPiBkaXYubWFpbm1lbnUtc3VibWVudSA+IHVsLnN1YiA+IGxpID4gdWwuc3ViID4gbGkgPiBhOm50aC1vZi10eXBlKDIpLCAudXBfbWVudSBsaSNNYWluTWVudV9UQUJfQ09NTUVSQ0lBTCB1bC5zdWIgPiBsaSA+IGRpdi5tYWlubWVudS1zdWJtZW51ID4gdWwuc3ViID4gbGkgPiB1bC5zdWIgPiBsaSA+IGE6bnRoLW9mLXR5cGUoMil7IHBhZGRpbmctbGVmdDoxNXB4OyB3aWR0aDo3MCU7IH0gLnVwX21lbnUgbGkjTWFpbk1lbnVfTkVXIHVsLnN1YiA+IGxpID4gZGl2Lm1haW5tZW51LXN1Ym1lbnUgPiB1bC5zdWIgPiBsaSA+IHVsLnN1YiA+IGxpID4gYTpmaXJzdC1jaGlsZDphZnRlciwgLnVwX21lbnUgbGkjTWFpbk1lbnVfVEFCX0NPTU1FUkNJQUwgdWwuc3ViID4gbGkgPiBkaXYubWFpbm1lbnUtc3VibWVudSA+IHVsLnN1YiA+IGxpID4gdWwuc3ViID4gbGkgPiBhOmZpcnN0LWNoaWxkOmFmdGVyeyBjb250ZW50OiIgIjsgYm9yZGVyOnNvbGlkOyBib3JkZXItd2lkdGg6MCAycHggMnB4IDA7IHBhZGRpbmc6MnB4OyBib3JkZXItcmFkaXVzOjJweDsgdHJhbnNmb3JtOnJvdGF0ZSgtNDVkZWcpOyAtd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoLTQ1ZGVnKTsgZGlzcGxheTppbmxpbmUtYmxvY2s7IHRvcDotMjdweDsgcmlnaHQ6LTdweDsgcG9zaXRpb246cmVsYXRpdmU7IH0gLnVwX21lbnUgbGkjTWFpbk1lbnVfTkVXIHVsLnN1YiA+IGxpID4gdWwuc3ViID4gbGkgPiB1bC5zdWIgPiBsaSA+IGE6Zmlyc3QtY2hpbGQ6YWZ0ZXIsIC51cF9tZW51IGxpI01haW5NZW51X1RBQl9DT01NRVJDSUFMIHVsLnN1YiA+IGxpID4gdWwuc3ViID4gbGkgPiB1bC5zdWIgPiBsaSA+IGE6Zmlyc3QtY2hpbGQ6YWZ0ZXJ7IGNvbnRlbnQ6IiAiOyBib3JkZXI6c29saWQ7IGJvcmRlci13aWR0aDowIDJweCAycHggMDsgcGFkZGluZzoycHg7IGJvcmRlci1yYWRpdXM6MnB4OyB0cmFuc2Zvcm06cm90YXRlKC00NWRlZyk7IC13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgtNDVkZWcpOyBkaXNwbGF5OmlubGluZS1ibG9jazsgdG9wOi0yN3B4OyByaWdodDotN3B4OyBwb3NpdGlvbjpyZWxhdGl2ZTsgfSAudXBfbWVudSBsaSNNYWluTWVudV9ORVcgdWwuc3ViID4gbGkgPiBkaXYubWFpbm1lbnUtc3VibWVudSA+IHVsLnN1YiA+IGxpID4gdWwuc3ViID4gbGkgPiBhLmltZ0xpbmssIC51cF9tZW51IGxpI01haW5NZW51X1RBQl9DT01NRVJDSUFMIHVsLnN1YiA+IGxpID4gZGl2Lm1haW5tZW51LXN1Ym1lbnUgPiB1bC5zdWIgPiBsaSA+IHVsLnN1YiA+IGxpID4gYS5pbWdMaW5reyByaWdodDowOyBmbG9hdDpyaWdodDsgfSAudXBfbWVudSBsaSNNYWluTWVudV9ORVcgdWwuc3ViID4gbGkgPiBkaXYubWFpbm1lbnUtc3VibWVudSA+IHVsLnN1YiA+IGxpID4gdWwuc3ViID4gbGkgPiBhLmltZ0xpbmsgPiBpbWcsIC51cF9tZW51IGxpI01haW5NZW51X1RBQl9DT01NRVJDSUFMIHVsLnN1YiA+IGxpID4gZGl2Lm1haW5tZW51LXN1Ym1lbnUgPiB1bC5zdWIgPiBsaSA+IHVsLnN1YiA+IGxpID4gYS5pbWdMaW5rID4gaW1neyBoZWlnaHQ6NjFweDsgdmVydGljYWwtYWxpZ246YmFzZWxpbmU7IH0gbGkubGFzdE1lbnUgdWwuc3ViIHsgcmlnaHQ6MDsgfSAudXBfbWVudSB1bC5uYXYgbGkgdWwuc3ViIGxpIGE6bnRoLW9mLXR5cGUoMSkuaXRlbS13cmFwIHsgcGFkZGluZzowOyB9IGxpLmhhc0l0ZW1zID4gYTphZnRlciB7IGNvbnRlbnQ6IiAiOyB3aWR0aDowOyBoZWlnaHQ6MDsgYm9yZGVyLXJhZGl1czoycHg7IHZlcnRpY2FsLWFsaWduOm1pZGRsZTsgZGlzcGxheTppbmxpbmUtYmxvY2s7IGJvcmRlci1sZWZ0OjVweCBzb2xpZCB0cmFuc3BhcmVudDsgYm9yZGVyLXJpZ2h0OjVweCBzb2xpZCB0cmFuc3BhcmVudDsgYm9yZGVyLXRvcDo1cHggc29saWQ7IG1hcmdpbi1sZWZ0OjdweDsgfSBsaS5oYXNTdWIgPiBhOmFmdGVyIHsgY29udGVudDoiICI7IGJvcmRlcjpzb2xpZDsgYm9yZGVyLXdpZHRoOjAgMnB4IDJweCAwOyBkaXNwbGF5OmlubGluZS1ibG9jazsgcGFkZGluZzoycHg7IGJvcmRlci1yYWRpdXM6MnB4OyB0cmFuc2Zvcm06cm90YXRlKC00NWRlZyk7IC13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgtNDVkZWcpOyBsZWZ0OjEwMCU7IG1hcmdpbi1sZWZ0OjdweDsgcG9zaXRpb246c3RpY2t5OyB9IC51cF9tZW51ICNNYWluTWVudV9VU0VEIGxpLmhhc0l0ZW1zID4gYTphZnRlciB7IGNvbnRlbnQ6IiI7IGRpc3BsYXk6bm9uZTsgfSAudXBfbWVudSAjTWFpbk1lbnVfVVNFRCA+IHVsLnN1YiA+IGxpID4gdWwuc3ViID4gbGkgPiBhOmJlZm9yZSwgLnVwX21lbnUgI01haW5NZW51X1VTRUQgPiB1bC5zdWIgPiBsaSA+IHVsLnN1YiA+IGxpID4gdWwuc3ViID4gbGkgYTpiZWZvcmUgeyBjb250ZW50OiIgIjsgYm9yZGVyOnNvbGlkOyBib3JkZXItd2lkdGg6MCAycHggMnB4IDA7IGRpc3BsYXk6aW5saW5lLWJsb2NrOyBwYWRkaW5nOjJweDsgYm9yZGVyLXJhZGl1czoycHg7IHRyYW5zZm9ybTpyb3RhdGUoLTQ1ZGVnKTsgLXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKC00NWRlZyk7IG1hcmdpbi1yaWdodDo3cHg7IHBvc2l0aW9uOnJlbGF0aXZlOyB0b3A6LTFweDsgfSBpLnRyaWFuZ2xlIHsgd2lkdGg6MDsgaGVpZ2h0OjA7IGJvcmRlci1yYWRpdXM6MnB4OyB2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7IGRpc3BsYXk6aW5saW5lLWJsb2NrOyB9IGkudHJpYW5nbGUudHJpYW5nbGUtdXAgeyBib3JkZXItbGVmdDo1cHggc29saWQgdHJhbnNwYXJlbnQ7IGJvcmRlci1yaWdodDo1cHggc29saWQgdHJhbnNwYXJlbnQ7IGJvcmRlci1ib3R0b206NXB4IHNvbGlkOyB9IGkudHJpYW5nbGUudHJpYW5nbGUtZG93biB7IGJvcmRlci1sZWZ0OjVweCBzb2xpZCB0cmFuc3BhcmVudDsgYm9yZGVyLXJpZ2h0OjVweCBzb2xpZCB0cmFuc3BhcmVudDsgYm9yZGVyLXRvcDo1cHggc29saWQ7IH0gaS50cmlhbmdsZS50cmlhbmdsZS1yaWdodCB7IGJvcmRlci10b3A6NXB4IHNvbGlkIHRyYW5zcGFyZW50OyBib3JkZXItYm90dG9tOjVweCBzb2xpZCB0cmFuc3BhcmVudDsgYm9yZGVyLWxlZnQ6NXB4IHNvbGlkOyB9IGkudHJpYW5nbGUudHJpYW5nbGUtbGVmdCB7IGJvcmRlci10b3A6NXB4IHNvbGlkIHRyYW5zcGFyZW50OyBib3JkZXItYm90dG9tOjVweCBzb2xpZCB0cmFuc3BhcmVudDsgYm9yZGVyLXJpZ2h0OjVweCBzb2xpZDsgfSBsaSNNYWluTWVudV9VU0VEX1NFQVJDSEVTIHVsIGxpIHsgYm9yZGVyLWJvdHRvbToxcHggc29saWQgd2hpdGU7IH0gLm1lbnUtYWRkcmVzcy1kZXNjIHsgYm9yZGVyLWJvdHRvbToxcHggc29saWQgI2U1ZTVlNTsgZm9udC1zaXplOjAuODc1cmVtIDsgcGFkZGluZy1ib3R0b206MjBweDsgYm9yZGVyLWJvdHRvbToxcHggc29saWQgI2U1ZTVlNTsgbGluZS1oZWlnaHQ6MTlweDsgd2hpdGUtc3BhY2U6bm9ybWFsOyB9IC51cF9tZW51ICNNYWluTWVudV9DT05UQUNUIHVsLnN1YiA+IC5jb250YWN0LWNvbnRhaW5lciAjbWVudS1tYXAtbGluayB7IHBhZGRpbmc6MDsgfSAudXBfbWVudSB1bC5uYXYgPiBsaSNNYWluTWVudV9DT05UQUNUID4gdWwuc3ViID4gbGkuY29udGFjdC1jb250YWluZXIgeyBib3JkZXItYm90dG9tOm5vbmU7IGRpc3BsYXk6Z3JpZDsgZ3JpZC1hdXRvLWZsb3c6Y29sdW1uOyBncmlkLWNvbHVtbi1nYXA6MjBweDsgfSAudXBfbWVudSAjTWFpbk1lbnVfQ09OVEFDVCB1bC5zdWIuY29udGFjdHVzLWZvcm0geyB3aWR0aDoxMDAlOyBwYWRkaW5nOjE1cHg7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgbGVmdDowOyB9IC51cF9tZW51ICNNYWluTWVudV9DT05UQUNUIHVsLnN1Yi5jb250YWN0dXMtZm9ybS5jb250YWN0LXNob3J0IHsgd2lkdGg6NjE5cHg7IGxlZnQ6YXV0bzsgcGFkZGluZy1sZWZ0OjA7IHBhZGRpbmctcmlnaHQ6MDsgcmlnaHQ6MDsgfSAudXBfbWVudSAjTWFpbk1lbnVfQ09OVEFDVCB1bC5zdWIuY29udGFjdC1zaG9ydCA+IC5jb250YWN0LWNvbnRhaW5lciA+IC5hZGRyZXNzIHsgcGFkZGluZy1yaWdodDoxNXB4OyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IHdoaXRlLXNwYWNlOm5vcm1hbDsgfSAubWVudS1waG9uZXMgeyBib3JkZXItdG9wOjJweCBzb2xpZCB2YXIoLS10YWItY29sb3Itc3BlY2lhbGNhc2UpOyBtYXJnaW4tdG9wOjhweDsgfSAucGhvbmUtd3JhcHBlciBzcGFuLmZpcnN0IC5mYS1waG9uZSB7IG1hcmdpbi1yaWdodDo4cHg7IH0gLnBob25lLXdyYXBwZXIgeyBwYWRkaW5nLWJvdHRvbTo1cHg7IH0gLm1lbnUtcGhvbmVzIC5waG9uZS13cmFwcGVyIHsgbWFyZ2luLXRvcDo4cHg7IH0gLm1lbnUtYWRkcmVzcy1kZXNjIC5tZW51LWFkZHJlc3Mtd3JhcHBlciB7IGRpc3BsYXk6aW5saW5lLWJsb2NrOyBtYXgtd2lkdGg6MjY2cHg7IGNvbG9yOnZhcigtLWJsYWNrKTsgfSAubWVudS1hZGRyZXNzLWRlc2MgPiAuZmEtbWFwLW1hcmtlciB7IHZlcnRpY2FsLWFsaWduOnRvcDsgbWFyZ2luLXJpZ2h0OjhweDsgfSAubWVudS1tdWx0aWxvY2F0aW9uIHsgYm9yZGVyLXRvcDoycHggc29saWQgdmFyKC0tdGFiLWNvbG9yLXNwZWNpYWxjYXNlKTsgbWFyZ2luLXRvcDo4cHg7IHBhZGRpbmctdG9wOjhweDsgfSAubWVudS1tdWx0aWxvYyB7IG1hcmdpbi10b3A6NnB4OyB9IC5tZW51LW11bHRpbG9jIHN1bW1hcnkgeyBjdXJzb3I6cG9pbnRlcjsgZm9udC13ZWlnaHQ6Ym9sZDsgbGlzdC1zdHlsZTpub25lOyB9IC5tZW51LW11bHRpbG9jIHN1bW1hcnk6Oi13ZWJraXQtZGV0YWlscy1tYXJrZXIgeyBkaXNwbGF5Om5vbmU7IH0gLm1lbnUtbXVsdGlsb2Mgc3VtbWFyeTo6YmVmb3JlIHsgY29udGVudDoiXDI1QjYiOyBkaXNwbGF5OmlubGluZS1ibG9jazsgbWFyZ2luLXJpZ2h0OjZweDsgdHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjJzIGVhc2U7IHRyYW5zZm9ybS1vcmlnaW46Y2VudGVyOyB9IC5tZW51LW11bHRpbG9jW29wZW5dIHN1bW1hcnk6OmJlZm9yZSB7IHRyYW5zZm9ybTpyb3RhdGUoOTBkZWcpOyB9IC5tZW51LW11bHRpbG9jLWJvZHkgeyBwYWRkaW5nLXRvcDo0cHg7IHBhZGRpbmctbGVmdDoxMnB4OyB9IC5jb250YWN0LWNvbnRhaW5lciAudGl0bGUgeyBib3JkZXItYm90dG9tOjJweCBzb2xpZCB2YXIoLS10YWItY29sb3Itc3BlY2lhbGNhc2UpOyB0ZXh0LXRyYW5zZm9ybTp2YXIoLS10ZXh0LXVwcGVyKTsgY29sb3I6dmFyKC0tYmxhY2spOyBkaXNwbGF5OmJsb2NrOyBmb250LXdlaWdodDpib2xkOyBwYWRkaW5nOjZweCAxNXB4IDZweCAwOyBtYXJnaW4tYm90dG9tOjhweDsgfSAuY29udGFjdC1jb250YWluZXIgLlJlY2hlcmNoZTIyIHsgYm9yZGVyLWJvdHRvbToycHggc29saWQgdmFyKC0tdGFiLWNvbG9yLXNwZWNpYWxjYXNlKTsgdGV4dC10cmFuc2Zvcm06dmFyKC0tdGV4dC11cHBlcik7IGNvbG9yOnZhcigtLWJsYWNrKTsgZGlzcGxheTpibG9jazsgcGFkZGluZzo2cHggMTVweCA2cHggMDsgZm9udC1zaXplOjEzLjI4cHg7IGZvbnQtd2VpZ2h0OmJvbGQ7IGhlaWdodDppbmhlcml0OyBtYXJnaW4tYm90dG9tOjhweDsgfSAuY29udGFjdC1jb250YWluZXIgI3F1aWNrRW1haWxGb3JtIHsgbWFyZ2luOjAgYXV0bzsgfSAuY29udGFjdC1jb250YWluZXIgLmFkZHJlc3MgPiB1bCA+IGxpID4gYTpiZWZvcmUgeyBjb250ZW50OiIgIjsgYm9yZGVyOnNvbGlkOyBib3JkZXItd2lkdGg6MCAycHggMnB4IDA7IGRpc3BsYXk6aW5saW5lLWJsb2NrOyBwYWRkaW5nOjJweDsgYm9yZGVyLXJhZGl1czoycHg7IHRyYW5zZm9ybTpyb3RhdGUoLTQ1ZGVnKTsgLXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKC00NWRlZyk7IG1hcmdpbi1yaWdodDo3cHg7IHBvc2l0aW9uOnJlbGF0aXZlOyB0b3A6LTFweDsgfSAuY29udGFjdC1jb250YWluZXIgLmJ1dHRvbl9ib3hTMiB7IGZsb2F0Om5vbmU7IHdpZHRoOjI1NXB4OyBwYWRkaW5nLXJpZ2h0OjA7IHRleHQtYWxpZ246cmlnaHQ7IH0gLnVwX21lbnUgI01haW5NZW51X1NFUlZJQ0UgdWwuc3ViLnNlcnZpY2UtZm9ybSB7IHdpZHRoOjYwJTsgbGVmdDphdXRvOyByaWdodDowOyBwYWRkaW5nLWxlZnQ6MTVweDsgcGFkZGluZy1yaWdodDoxNXB4OyB9IC5tZW51LXNlcnZpY2Utd3JhcHBlciwgLm1lbnUtc2VydmljZS13cmFwcGVyICogeyAtd2Via2l0LWJveC1zaXppbmc6Ym9yZGVyLWJveDsgLW1vei1ib3gtc2l6aW5nOmJvcmRlci1ib3g7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgfSAubWVudS1zZXJ2aWNlLXdyYXBwZXIsIC5tZW51LXNlcnZpY2Utd3JhcHBlciAuanFUcmFuc2Zvcm1JbnB1dFdyYXBwZXIsIC5tZW51LXNlcnZpY2Utd3JhcHBlciwgLm1lbnUtc2VydmljZS13cmFwcGVyIC5qcVRyYW5zZm9ybVNlbGVjdFdyYXBwZXJ7IC13ZWJraXQtYm94LXNpemluZzpjb250ZW50LWJveDsgLW1vei1ib3gtc2l6aW5nOmNvbnRlbnQtYm94OyBib3gtc2l6aW5nOmNvbnRlbnQtYm94OyB9IC5tZW51LXNlcnZpY2Utd3JhcHBlciB7IG1hcmdpbi1sZWZ0Oi0xNXB4OyBtYXJnaW4tcmlnaHQ6LTE1cHg7IH0gLm1lbnUtc2VydmljZS13cmFwcGVyOjpiZWZvcmUsIC5tZW51LXNlcnZpY2Utd3JhcHBlcjo6YWZ0ZXIgeyBkaXNwbGF5OnRhYmxlOyBjb250ZW50OiIgIjsgfSAubWVudS1zZXJ2aWNlLXdyYXBwZXI6OmFmdGVyIHsgY2xlYXI6Ym90aDsgfSAubWVudS1zZXJ2aWNlLXdyYXBwZXIgLnNlcnZpY2UtbGVmdCwgLm1lbnUtc2VydmljZS13cmFwcGVyIC5zZXJ2aWNlLXJpZ2h0IHsgZmxvYXQ6bGVmdDsgcGFkZGluZzoxNXB4OyBwb3NpdGlvbjpyZWxhdGl2ZTsgfSAubWVudS1zZXJ2aWNlLXdyYXBwZXIgLnNlcnZpY2UtZGl2aWRlciB7IGZsb2F0OmxlZnQ7IHdpZHRoOjAuMSU7IGhlaWdodDo0MDJweDsgYm9yZGVyLWxlZnQ6MXB4IHNvbGlkICNlNWU1ZTU7IG1hcmdpbi10b3A6MTVweDsgfSAubWVudS1zZXJ2aWNlLXdyYXBwZXIgLnNlcnZpY2UtcmlnaHQgeyB3aWR0aDozOS44JTsgfSAudXBfbWVudSB1bC5uYXYgPiBsaSNNYWluTWVudV9TRVJWSUNFID4gdWwgPiBsaSA+IC5tZW51LXNlcnZpY2Utd3JhcHBlciA+IC5zZXJ2aWNlLXJpZ2h0IHVsIGxpIHsgYm9yZGVyLWJvdHRvbToxcHggc29saWQgI2U1ZTVlNTsgfSAubWVudS1zZXJ2aWNlLXdyYXBwZXIgLnNlcnZpY2UtbGVmdCB7IHdpZHRoOjYwJTsgfSAuc2hvcnQtc2VydmljZS1mb3JtIGlucHV0IHsgZGlzcGxheTpibG9jazsgfSAuc2VydmljZS1mb3JtLXRpdGxlIHsgYm9yZGVyLWJvdHRvbToycHggc29saWQgdmFyKC0tdGFiLWNvbG9yLXNwZWNpYWxjYXNlKTsgdGV4dC10cmFuc2Zvcm06dmFyKC0tdHh0LXVwcGVyKTsgZGlzcGxheTpibG9jazsgZm9udC13ZWlnaHQ6Ym9sZDsgcGFkZGluZzo2cHggMTVweCA2cHggMDsgbWFyZ2luLWJvdHRvbTo4cHg7IH0gLnNzZi1zdWJtaXQgeyBtYXJnaW4tdG9wOjEwcHg7IHRleHQtYWxpZ246Y2VudGVyOyB9IC5zc2Ytc3VibWl0IC5qcVRyYW5zZm9ybUJ1dHRvbiBzcGFuIHNwYW4geyAtd2Via2l0LWJveC1zaXppbmc6Y29udGVudC1ib3g7IC1tb3otYm94LXNpemluZzpjb250ZW50LWJveDsgYm94LXNpemluZzpjb250ZW50LWJveDsgfSAudXBfbWVudSB1bC5uYXYgbGkubWVudS1hY3RpdmUgdWwuc3ViIHsgZGlzcGxheTpibG9jazsgcG9zaXRpb246YWJzb2x1dGU7IGJhY2tncm91bmQtY29sb3I6d2hpdGU7IH0gLnVwX21lbnUgdWwubmF2IGxpLm1lbnUtYWN0aXZlID4gYSB7IGNvbG9yOnZhcigtLW1lbnUtaG92ZXItdGV4dC1jb2xvcik7IGJhY2tncm91bmQtY29sb3I6dmFyKC0tbWVudS1ob3Zlci1iZy1jb2xvcik7IH0gZm9ybS5zaG9ydC1zZXJ2aWNlLWZvcm0uanF0cmFuc2Zvcm1kb25lIC5qcVRyYW5zZm9ybUlucHV0V3JhcHBlciwgZm9ybS5zaG9ydC1zZXJ2aWNlLWZvcm0uanF0cmFuc2Zvcm1kb25lIC5qcVRyYW5zZm9ybVNlbGVjdFdyYXBwZXIgeyBtYXJnaW4tYm90dG9tOjEwcHg7IH0gLnNzZi1kYXRlLWNhbGVuZGFyIHsgcG9zaXRpb246YWJzb2x1dGU7IHotaW5kZXg6MTsgdG9wOjAuNXJlbTsgcmlnaHQ6MS4zcmVtOyBjb2xvcjojYWFhOyB3aWR0aDowOyB9IC5pdGVtLXdyYXAgeyB3aGl0ZS1zcGFjZTpub3JtYWw7IH0gLnVwX21lbnUgdWwuc3ViIGxpIC5pdGVtLXdyYXAgeyBtaW4taGVpZ2h0OjYxcHg7IH0gYm9keS5pc1BhZ2VGdWxsV2lkdGhFbmFibGVkLmlzRnVsbFdpZHRoUGFnZSAuTWFpbkJveExheWVyIC51cF9tZW51LCBib2R5LmlzUGFnZUZ1bGxXaWR0aEVuYWJsZWQuaXNGdWxsV2lkdGhQYWdlIC53cmFwcGVyLk1haW5Cb3hMYXllciAudXBfbWVudSB7IHdpZHRoOmluaGVyaXQ7IH0gI2Z1bGxXaWR0aE1lbnVCYXIgeyB3aWR0aDpjYWxjKHZhcigtLXZ3cywgMXZ3KSAqIDEwMCk7IGJvdHRvbTowOyBoZWlnaHQ6MTAwJTsgcG9zaXRpb246YWJzb2x1dGU7IGxlZnQ6NTAlOyByaWdodDo1MCU7IG1hcmdpbi1sZWZ0Oi01MHZ3OyBtYXJnaW4tcmlnaHQ6LTUwdnc7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgYmFja2dyb3VuZDppbmhlcml0OyB6LWluZGV4Oi0xOyB9IC51cF9tZW51LndpdGgtYm9yZGVyICNmdWxsV2lkdGhNZW51QmFyIHsgYm9yZGVyLXRvcDoycHggc29saWQgdmFyKC0tbWVudS1jb2xvci1ib3JkZXIpOyBib3JkZXItYm90dG9tOjJweCBzb2xpZCB2YXIoLS1tZW51LWNvbG9yLWJvcmRlcik7IHRyYW5zZm9ybTp0cmFuc2xhdGVZKDJweCk7IH0gLnVwX21lbnUgI01haW5NZW51X1VTRUQgPiB1bC5zdWIgPiBsaS5pbnZlbnRvcnkgPiB1bC5zdWIgeyBvdmVyZmxvdzpoaWRkZW47IH0gLnVwX21lbnUgI01haW5NZW51X1VTRUQuc2hvcnQgPiB1bC5zdWIgeyBsZWZ0OmluaGVyaXQ7IHdpZHRoOmF1dG87IH0gLnVwX21lbnUgI01haW5NZW51X1VTRUQuc2hvcnQgPiB1bC5zdWIgPiBsaVtkYXRhLWlkXj0iVVNFRF8iXSB7IHdpZHRoOmF1dG87IG1pbi13aWR0aDoyNjBweDsgfSAudXBfbWVudSAjTWFpbk1lbnVfVVNFRC5zaG9ydCA+IHVsLnN1YiA+IGxpLmludmVudG9yeSA+IHVsID4gbGlbZGF0YS1pZF49IlVTRURfQ0FSU19HIl0geyB3aWR0aDphdXRvOyB9IC5za2VsZXRvbi5oZWFkZXItbWVudS5maXhlZCB7IHBvc2l0aW9uOmluaGVyaXQ7IH0gQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOjEzMDBweCkgeyAudXBfbWVudSAjTWFpbk1lbnVfVVNFRC5zaG9ydC5zaG9ydC0yID4gdWwuc3ViIHsgbGVmdDowOyB9IH0KLyoqIC9jc3MvbWVudTUuY3NzICoqLwoudXBfbWVudSAjTWFpbk1lbnVfVVNFRCA+IHVsLnN1Ynsgd2lkdGg6MTAwJTsgbGVmdDowOyB9IC51cF9tZW51ICNNYWluTWVudV9VU0VEID4gdWwuc3ViID4gbGkgeyBmbG9hdDpsZWZ0OyB3aWR0aDoyNSU7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgcGFkZGluZzo1cHg7IH0gLnVwX21lbnUgI01haW5NZW51X1VTRUQgPiB1bC5zdWIgPiBsaS5pbnZlbnRvcnkgeyBmbG9hdDpsZWZ0OyB3aWR0aDo3NSU7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgfSAudXBfbWVudSAjTWFpbk1lbnVfVVNFRCA+IHVsLnN1YiA+IGxpID4gYSB7IGJvcmRlci1ib3R0b206MnB4IHNvbGlkIHZhcigtLXRhYi1jb2xvci1zcGVjaWFsY2FzZSk7IHRleHQtdHJhbnNmb3JtOnZhcigtLXR4dC11cHBlcik7IGRpc3BsYXk6YmxvY2s7IH0gLnVwX21lbnUgI01haW5NZW51X1VTRUQgPiB1bC5zdWIgPiBsaTpob3ZlciA+IGEgeyBiYWNrZ3JvdW5kLWNvbG9yOndoaXRlOyBjb2xvcjp2YXIoLS1ibGFjayk7IH0gLnVwX21lbnUgI01haW5NZW51X1VTRUQgPiB1bC5zdWIgPiBsaS5pbnZlbnRvcnkgPiB1bCA+IGxpIHsgd2lkdGg6MzMlOyBmbG9hdDpsZWZ0OyB9IC5jb250YWN0LWNvbnRhaW5lciAjcXVpY2tFbWFpbEZvcm0geyB3aWR0aDoxMDAlOyB9IC5jb250YWN0LWNvbnRhaW5lciAuYnV0dG9uX2JveFMyIHsgbWFyZ2luOmF1dG87IH0gLnVwX21lbnUgI01haW5NZW51X1VTRUQuc2ltcGxpZmllZCB1bC5zdWIgeyB3aWR0aDppbmhlcml0OyBsZWZ0OmluaGVyaXQ7IH0gLmV4cHJlc3MtZm9ybSB0YWJsZSB7IG1hcmdpbjowIGF1dG87IH0gLmV4cHJlc3MtZm9ybSAud2lkZ2V0X2V4cHJlc3NfbWFpbF9waG9uZV90aXRsZSB7IGRpc3BsYXk6bm9uZTsgfSBpbWcjbWVudS1jb250YWN0LW1hcCB7IHdpZHRoOjEwMCU7IH0gLnVwX21lbnUgI01haW5NZW51X1VTRUQuc2ltcGxpZmllZCB1bC5zdWIgI01haW5NZW51X1VTRURfU0VBUkNIRVMgeyB3aWR0aDoxMDAlOyB9IC5maW5hbmNlLW1lbnUtY3JlZHNpaXsgbWluLXdpZHRoOjM3NXB4OyB9IC51cF9tZW51IHVsLm5hdiA+IGxpI01haW5NZW51X0ZJTkFOQ0UgPiB1bCA+IGxpID4gLm1lbnUtZmluYW5jZS13cmFwcGVyID4gdWwgbGkgeyBib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZTVlNWU1OyB9ICNNYWluTWVudV9GSU5BTkNFIHsgcG9zaXRpb246cmVsYXRpdmU7IH0gLm1lbnU1IC5maW5hbmNlLW1lbnUtZnJlZWNyZWRpdC5sZWZ0IHsgbGVmdDowOyByaWdodDphdXRvOyB9IC5tZW51NSAuZmluYW5jZS1tZW51LWZyZWVjcmVkaXQucmlnaHQgeyByaWdodDowOyBsZWZ0OmF1dG87IH0gLm1lbnU1IC5maW5hbmNlLW1lbnUtZnJlZWNyZWRpdC5jZW50ZXIgeyByaWdodDotMjUwcHg7IGxlZnQ6YXV0bzsgfSAubWVudTUgLmZpbmFuY2UtbWVudS1mcmVlY3JlZGl0IHsgbWluLXdpZHRoOjgwMHB4OyB9IC51cF9tZW51IHVsLm5hdiA+IGxpLmxhc3RNZW51ID4gdWwuc3ViID4gbGkgPiB1bCA+IGxpID4gZGl2IHsgcmlnaHQ6MTAwJTsgbGVmdDppbml0aWFsOyB9IC51cF9tZW51IHVsLm5hdiBsaS5pbnZlcnNlLWNvbG9yID4gYSB7IGNvbG9yOnZhcigtLW1lbnUtaG92ZXItdGV4dC1jb2xvcik7IGJhY2tncm91bmQtY29sb3I6dmFyKC0tbWVudS1ob3Zlci1iZy1jb2xvcik7IH0gLmRlYWxlck1hcExpbmsgLmZhLWxvY2F0aW9uLWFycm93IHsgbWFyZ2luOjAgN3B4IDAgMDsgfSAudi1jYXJkLnRvcF9iZy5oZWFkZXItaW5mbyAuaGVhZGVyLXNlY3Rpb24uYWRkcmVzcy1yaWdodCB7IGZsZXgtZ3JvdzoyOyBqdXN0aWZ5LWNvbnRlbnQ6cmlnaHQ7IH0gLnYtY2FyZC50b3BfYmcuaGVhZGVyLWluZm8gLmhlYWRlci1zZWN0aW9uLmxvZ28tcmlnaHQgeyBtYXJnaW4tbGVmdDoxMHB4OyB9Ci8qKiAvY3NzL2Zvcm1zL2Zvcm1zLmNzcyAqKi8KLmQyY2Zvcm0gaW5wdXQ6bm90KFt0eXBlPXN1Ym1pdF0pOm5vdChbdHlwZT0icmFkaW8iXSk6bm90KFt0eXBlPSJjaGVja2JveCJdKSwgLmQyY2Zvcm0gc2VsZWN0LCAuZDJjZm9ybSB0ZXh0YXJlYSB7IHRyYW5zaXRpb246Ym9yZGVyLWNvbG9yIC4xNXMgZWFzZS1pbi1vdXQsYm94LXNoYWRvdyAuMTVzIGVhc2UtaW4tb3V0OyB9IC5kMmNmb3JtIGlucHV0Om5vdChbdHlwZT1zdWJtaXRdKTpub3QoW3R5cGU9InJhZGlvIl0pOm5vdChbdHlwZT0iY2hlY2tib3giXSk6Zm9jdXMsIC5kMmNmb3JtIHNlbGVjdDpmb2N1cywgLmQyY2Zvcm0gdGV4dGFyZWE6Zm9jdXMgeyBib3JkZXItY29sb3I6Izg2YjdmZTsgb3V0bGluZTowOyBib3gtc2hhZG93OjAgMCAwIDAuMnJlbSByZ2IoMTMgMTEwIDI1MyAvIDI1JSk7IH0gLmQyY2Zvcm0gLmlucHV0LWdyb3VwIGlucHV0Om5vdChbdHlwZT1zdWJtaXRdKTpub3QoW3R5cGU9InJhZGlvIl0pOm5vdChbdHlwZT0iY2hlY2tib3giXSk6Zm9jdXMsIC5kMmNmb3JtIC5pbnB1dC1ncm91cCBzZWxlY3Q6Zm9jdXMsIC5kMmNmb3JtIC5pbnB1dC1ncm91cCB0ZXh0YXJlYTpmb2N1cyB7IHotaW5kZXg6MzsgfSAuZDJjZm9ybSBpbnB1dC52YWxpZGl0eS1lcnJvbmVvdXMsIC5kMmNmb3JtIHNlbGVjdC52YWxpZGl0eS1lcnJvbmVvdXMsIC5kMmNmb3JtIHRleHRhcmVhLnZhbGlkaXR5LWVycm9uZW91cywgLmQyY2Zvcm0gLmlucHV0LWdyb3VwIC52YWxpZGl0eS1lcnJvbmVvdXMgKyAuaW5wdXQtZ3JvdXAtdGV4dCB7IGJvcmRlci1jb2xvcjojZGMzNTQ1ICFpbXBvcnRhbnQ7IGJhY2tncm91bmQtY29sb3I6I2ZhZDZkYyAhaW1wb3J0YW50OyB9IC5kMmNmb3JtIGlucHV0LnZhbGlkaXR5LWVycm9uZW91czo6cGxhY2Vob2xkZXIsIC5kMmNmb3JtIHRleHRhcmVhLnZhbGlkaXR5LWVycm9uZW91czo6cGxhY2Vob2xkZXIsIC5kMmNmb3JtIHNlbGVjdC52YWxpZGl0eS1lcnJvbmVvdXMsIC5kMmNmb3JtIC5pbnB1dC1ncm91cCAudmFsaWRpdHktZXJyb25lb3VzICsgLmlucHV0LWdyb3VwLXRleHQgeyBjb2xvcjojZGMzNTQ1OyB9Ci8qKiAvY3NzL2Zvcm1zL2Zvcm1zLnByZWxvYWQuY3NzICoqLwouZDJjZm9ybSB7IC0tbGFiZWwtcmVxdWlyZWQtc3ltYm9sOiIqIjsgLS1sYWJlbC1yZXF1aXJlZC1jb2xvcjojRkYwMDAwOyAtLWlucHV0LXBhZGRpbmc6dmFyKC0tcy0xKSB2YXIoLS1zMSk7IC0taW5wdXQtYmctY29sb3I6dmFyKC0td2hpdGUpOyAtLWlucHV0LWJvcmRlci1jb2xvcjp2YXIoLS1taWQtZ3JheSk7IC0taW5wdXQtcmFkaXVzOnZhcigtLXMtNik7IC0taW5wdXQtZm9udC1zaXplOnZhcigtLWZzMCk7IC0taW5wdXQtbGluZS1oZWlnaHQ6dmFyKC0tZnMyKTsgfSAuZDJjZm9ybSAqIHsgYm94LXNpemluZzpib3JkZXItYm94OyB9IC5kMmNmb3JtIGJveC1sYyB7IC0tc3BhY2U6dmFyKC0tcy00KTsgcGFkZGluZy1sZWZ0OjA7IHBhZGRpbmctcmlnaHQ6MDsgZGlzcGxheTpmbGV4OyBmbGV4LWRpcmVjdGlvbjpjb2x1bW47IGFsaWduLWl0ZW1zOmZsZXgtc3RhcnQ7IH0gLmQyY2Zvcm0tLXRoaW4gYm94LWxjIHsgLS1zcGFjZTp2YXIoLS1zLTkpOyB9IC5kMmNmb3JtLS1yb3cgc3RhY2stbGMgeyBmbGV4LWRpcmVjdGlvbjpyb3c7IGZsZXgtd3JhcDp3cmFwOyB9IC5kMmNmb3JtLS1yb3cgYm94LWxjIHsgcGFkZGluZy1yaWdodDp2YXIoLS1zcGFjZSk7IHBhZGRpbmctbGVmdDp2YXIoLS1zcGFjZSk7IH0gLmQyY2Zvcm0tLWhvcml6b250YWwgYm94LWxjIHsgZmxleC1kaXJlY3Rpb246cm93OyBhbGlnbi1pdGVtczpmbGV4LXN0YXJ0OyB9IC5kMmNmb3JtLS1ob3Jpem9udGFsIGJveC1sYyBsYWJlbCB7IG1pbi13aWR0aDoxMTVweDsgd2lkdGg6MzAlOyBwYWRkaW5nLXJpZ2h0OnZhcigtLXMpOyBtYXJnaW4tdG9wOnZhcigtLXMxKTsgbWFyZ2luLWJvdHRvbTowOyB9IC5kMmNmb3JtIGxhYmVsOmhhcyhbcmVxdWlyZWRdKSBzcGFuOmFmdGVyeyBjb2xvciA6dmFyKC0tbGFiZWwtcmVxdWlyZWQtY29sb3IpOyBjb250ZW50IDp2YXIoLS1sYWJlbC1yZXF1aXJlZC1zeW1ib2wpOyBwYWRkaW5nLWxlZnQgOnZhcigtLXMtNik7IH0gLmQyY2Zvcm0gbGFiZWw6bm90KC5maW5hbmNlQ2FsYyksIC5kMmNmb3JtIC5sYWJlbDpub3QoLmZpbmFuY2VDYWxjKSB7IG1hcmdpbi1ib3R0b206dmFyKC0tcy0zKTsgZm9udC1zaXplOnZhcigtLWlucHV0LWZvbnQtc2l6ZSk7IGxpbmUtaGVpZ2h0OnZhcigtLWlucHV0LWxpbmUtaGVpZ2h0KTsgZm9udC13ZWlnaHQ6NDAwOyB9IC5kMmNmb3JtIGxhYmVsLi0tcmVxdWlyZWQ6bm90KC50eHQtcmlnaHQpOmFmdGVyLCAuZDJjZm9ybSAubGFiZWwuLS1yZXF1aXJlZDpub3QoLnR4dC1yaWdodCk6YWZ0ZXIsIC5kMmNmb3JtIGxhYmVsLi1yZXF1aXJlZDpub3QoLnR4dC1yaWdodCk6YWZ0ZXIsIC5kMmNmb3JtIC5sYWJlbC4tcmVxdWlyZWQ6bm90KC50eHQtcmlnaHQpOmFmdGVyIHsgY29sb3IgOnZhcigtLWxhYmVsLXJlcXVpcmVkLWNvbG9yKTsgY29udGVudCA6dmFyKC0tbGFiZWwtcmVxdWlyZWQtc3ltYm9sKTsgcGFkZGluZy1sZWZ0IDp2YXIoLS1zLTYpOyB9IC5kMmNmb3JtIGxhYmVsLi0tcmVxdWlyZWQudHh0LXJpZ2h0OmJlZm9yZSwgLmQyY2Zvcm0gLmxhYmVsLi0tcmVxdWlyZWQudHh0LXJpZ2h0OmJlZm9yZSwgLmQyY2Zvcm0gbGFiZWwuLXJlcXVpcmVkLnR4dC1yaWdodDpiZWZvcmUsIC5kMmNmb3JtIC5sYWJlbC4tcmVxdWlyZWQudHh0LXJpZ2h0OmJlZm9yZSB7IGNvbG9yIDp2YXIoLS1sYWJlbC1yZXF1aXJlZC1jb2xvcik7IGNvbnRlbnQgOnZhcigtLWxhYmVsLXJlcXVpcmVkLXN5bWJvbCk7IHBhZGRpbmctcmlnaHQgOnZhcigtLXMtNik7IH0gLmQyY2Zvcm0gOndoZXJlKGlucHV0Om5vdChbdHlwZT1zdWJtaXRdLC5wYXltZW50Q2FsY3VsYXRvckRvd25QYXltZW50KTpub3QoW3R5cGU9InJhZGlvIl0pOm5vdChbdHlwZT0iY2hlY2tib3giXSkpLCAuZDJjZm9ybSBzZWxlY3Q6bm90KC5wYXltZW50Q2FsY3VsYXRvckludGVydmFsLC5wYXltZW50Q2FsY3VsYXRvckttQWxsb3dhbmNlLC5maW5hbmNlTXVsdGlzdGVwVXNlZENhbGN1bGF0b3IgLmNhbGMtZm9ybSBzZWxlY3QpLCAuZDJjZm9ybSB0ZXh0YXJlYSB7IHdpZHRoOjEwMCU7IHBhZGRpbmc6dmFyKC0taW5wdXQtcGFkZGluZyk7IGJhY2tncm91bmQtY29sb3I6dmFyKC0taW5wdXQtYmctY29sb3IpOyBib3JkZXItcmFkaXVzOnZhcigtLWlucHV0LXJhZGl1cyk7IGJvcmRlcjoxcHggc29saWQgdmFyKC0taW5wdXQtYm9yZGVyLWNvbG9yKTsgY29sb3I6IzIxMjUyOTsgZm9udC1zaXplOnZhcigtLWlucHV0LWZvbnQtc2l6ZSk7IGxpbmUtaGVpZ2h0OnZhcigtLWlucHV0LWxpbmUtaGVpZ2h0KTsgZm9udC13ZWlnaHQ6NDAwOyB9IC5kMmNmb3JtIGlucHV0Om5vdChbdHlwZT1zdWJtaXRdKTpub3QoW3R5cGU9InJhZGlvIl0pOm5vdChbdHlwZT0iY2hlY2tib3giXSksIC5kMmNmb3JtIHNlbGVjdCB7IGhlaWdodDozNXB4OyB9IC5kMmNmb3JtIC5pbnZhbGlkID4gOmlzKGlucHV0LHNlbGVjdCx0ZXh0YXJlYSl7IGJhY2tncm91bmQtY29sb3I6I2ZhZDZkYzsgfSAuZDJjZm9ybSBpbnB1dDpkaXNhYmxlZCwgLmQyY2Zvcm0gaW5wdXQuZGlzYWJsZWQgeyBiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjM5LCAyMzksIDIzOSwgMC4zKTsgY29sb3I6cmdiKDg0LCA4NCwgODQpOyBib3JkZXItY29sb3I6cmdiYSgxMTgsIDExOCwgMTE4LCAwLjMpOyBjdXJzb3I6bm90LWFsbG93ZWQ7IH0gLmQyY2Zvcm0gaW5wdXQudHh0LXVwcGVyIHsgdGV4dC10cmFuc2Zvcm06bm9uZTsgfSAuZDJjZm9ybSBpbnB1dC50eHQtdXBwZXI6OnBsYWNlaG9sZGVyIHsgdGV4dC10cmFuc2Zvcm06dmFyKC0tdHh0LXVwcGVyLCB1cHBlcmNhc2UpOyB9IC5kMmNmb3JtIC5pbnB1dC1pY29uLWxlZnQsIC5kMmNmb3JtIC5pbnB1dC1pY29uLXJpZ2h0IHsgcG9zaXRpb246cmVsYXRpdmU7IH0gLmQyY2Zvcm0gLmlucHV0LWljb24geyBwb3NpdGlvbjphYnNvbHV0ZTsgei1pbmRleDoxOyB0b3A6dmFyKC0tczEpOyBmb250LXNpemU6dmFyKC0taW5wdXQtZm9udC1zaXplKTsgbGluZS1oZWlnaHQ6dmFyKC0taW5wdXQtbGluZS1oZWlnaHQpOyBjb2xvcjp2YXIoLS1kYXJrLWdyYXkpOyB9IC5kMmNmb3JtIC5pbnB1dC1pY29uLXJpZ2h0IC5pbnB1dC1pY29uIHsgcmlnaHQ6dmFyKC0tczQpOyB9IC5kMmNmb3JtIC5pbnB1dC1pY29uLWxlZnQgLmlucHV0LWljb24geyBsZWZ0OnZhcigtLXM0KTsgfSAuZDJjZm9ybSAuaW5wdXQtaWNvbi1sZWZ0IGlucHV0IHsgcGFkZGluZy1sZWZ0OnZhcigtLXM5KTsgfSAuZDJjZm9ybSAuc2VwYXJhdG9yIHsgd2lkdGg6MTAwJTsgYm9yZGVyLXRvcDoxcHggc29saWQgI2Q0ZDRkNDsgbWFyZ2luLXRvcDp2YXIoLS1zNyk7IG1hcmdpbi1ib3R0b206dmFyKC0tczcpOyB9IC5kMmNmb3JtIC5yYWRpby1pbmxpbmUgeyBkaXNwbGF5OmZsZXg7IHdpZHRoOjEwMCU7IH0gLmQyY2Zvcm0gLmNoZWNrYm94LWxpc3QgeyBkaXNwbGF5OmZsZXg7IGZsZXgtZGlyZWN0aW9uOmNvbHVtbjsgbWFyZ2luLWJvdHRvbTp2YXIoLS1zLTMpOyB9IC5kMmNmb3JtIC5jaGVja2JveC1saXN0ID4gKiB7IG1hcmdpbi1ib3R0b206MDsgfSAuZDJjZm9ybSAubXVsdGlwbGUtaW5wdXQgeyBkaXNwbGF5OmZsZXg7IHdpZHRoOjEwMCU7IH0gLmQyY2Zvcm0gLm11bHRpcGxlLWlucHV0ID4gKjpub3QoOmxhc3Qtb2YtdHlwZSkgeyBtYXJnaW4tcmlnaHQ6dmFyKC0tczEpOyB9IC5kMmNmb3JtIC5pbnB1dC1ncm91cCB7IGRpc3BsYXk6ZmxleDsgd2lkdGggOjEwMCU7IH0gLmQyY2Zvcm0gLmlucHV0LWdyb3VwIC5pbnB1dC1ncm91cC10ZXh0IHsgZGlzcGxheTpmbGV4OyBhbGlnbi1pdGVtczpjZW50ZXI7IHBhZGRpbmc6dmFyKC0taW5wdXQtcGFkZGluZyk7IGJhY2tncm91bmQ6dmFyKC0tbGlnaHQtZ3JheSk7IGJvcmRlcjoxcHggc29saWQgdmFyKC0taW5wdXQtYm9yZGVyLWNvbG9yKTsgYm9yZGVyLXJhZGl1czp2YXIoLS1pbnB1dC1yYWRpdXMpOyBmb250LXNpemU6dmFyKC0taW5wdXQtZm9udC1zaXplKTsgbGluZS1oZWlnaHQ6dmFyKC0taW5wdXQtbGluZS1oZWlnaHQpOyB3aGl0ZS1zcGFjZTpub3dyYXA7IH0gLmQyY2Zvcm0gLmlucHV0LWdyb3VwID4gOm5vdCg6Zmlyc3QtY2hpbGQpIHsgYm9yZGVyLWxlZnQ6MDsgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czowICFpbXBvcnRhbnQ7IGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6MCAhaW1wb3J0YW50OyB9IC5kMmNmb3JtIC5pbnB1dC1ncm91cCA+IDpub3QoOmxhc3QtY2hpbGQpIHsgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6MCAhaW1wb3J0YW50OyBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czowICFpbXBvcnRhbnQ7IH0gQG1lZGlhIChtYXgtd2lkdGg6OTgwcHgpIHsgLmQyY2Zvcm0tLWhvcml6b250YWwgYm94LWxjIGxhYmVsIHsgbWluLXdpZHRoOjg1cHg7IH0gfQovKiogL2Nzcy9hZHZhbmNlZC1zbGlkZXItYmFzZS5jc3MgKiovCi5hZHZhbmNlZC1zbGlkZXIgeyBwb3NpdGlvbjpyZWxhdGl2ZTsgb3ZlcmZsb3c6dmlzaWJsZTsgb3V0bGluZTpub25lOyBtYXJnaW4tbGVmdDphdXRvOyBtYXJnaW4tcmlnaHQ6YXV0bzsgfSAuYWR2YW5jZWQtc2xpZGVyICogeyBtYXJnaW46MDsgcGFkZGluZzowOyB9IC5hZHZhbmNlZC1zbGlkZXIgLnNsaWRlci1tYWluIHsgcG9zaXRpb246YWJzb2x1dGU7IHdpZHRoOjEwMCU7IGhlaWdodDoxMDAlOyB6LWluZGV4OjEwOyB9IC5hZHZhbmNlZC1zbGlkZXIgLnNsaWRlLXdyYXBwZXIgeyBwb3NpdGlvbjpyZWxhdGl2ZTsgb3ZlcmZsb3c6dmlzaWJsZTsgd2lkdGg6MTAwJTsgaGVpZ2h0OjEwMCU7IHotaW5kZXg6MTA7IH0gLmFkdmFuY2VkLXNsaWRlciB1bC5zbGlkZXMgeyBwb3NpdGlvbjphYnNvbHV0ZTsgb3ZlcmZsb3c6aGlkZGVuOyBtYXJnaW46MDsgcGFkZGluZzowOyBsaXN0LXN0eWxlOm5vbmU7IHdpZHRoOjEwMCU7IGhlaWdodDoxMDAlOyB6LWluZGV4OjEwOyB9IC5hZHZhbmNlZC1zbGlkZXIgbGkuc2xpZGUgeyBwb3NpdGlvbjphYnNvbHV0ZTsgb3ZlcmZsb3c6aGlkZGVuOyBkaXNwbGF5OmZsZXg7IG1hcmdpbjowOyBwYWRkaW5nOjA7IHdpZHRoOjEwMCU7IGhlaWdodDoxMDAlOyB2aXNpYmlsaXR5OmhpZGRlbjsgbGlzdC1zdHlsZTpub25lOyBmaWx0ZXI6YWxwaGEob3BhY2l0eT0xMDApOyBvcGFjaXR5OjE7IH0gLmFkdmFuY2VkLXNsaWRlciBsaS5zbGlkZSAuaW1hZ2UsIC5hZHZhbmNlZC1zbGlkZXIgbGkuc2xpZGUgLnRodW1ibmFpbCwgLmFkdmFuY2VkLXNsaWRlciBsaS5zbGlkZSAuY2FwdGlvbiwgLmFkdmFuY2VkLXNsaWRlciBsaS5zbGlkZSAuaHRtbCB7IHBvc2l0aW9uOmFic29sdXRlOyB9IC5hZHZhbmNlZC1zbGlkZXIgbGkuc2xpZGUgaW1nLCAuYWR2YW5jZWQtc2xpZGVyIC50aHVtYm5haWwgaW1nIHsgbWF4LXdpZHRoOm5vbmU7IG1heC1oZWlnaHQ6bm9uZTsgYm9yZGVyOjAgbm9uZTsgfSAuYWR2YW5jZWQtc2xpZGVyIGxpLnNsaWRlIC5odG1sIHsgb3ZlcmZsb3c6aGlkZGVuOyB9IC5hZHZhbmNlZC1zbGlkZXIgbGkuc2xpZGUgLnZpZGVvIHsgfSAuYWR2YW5jZWQtc2xpZGVyIGxpLnNsaWRlLmFjdGl2ZSAudmlkZW8geyB9IC5hZHZhbmNlZC1zbGlkZXIgLnNsaWNlLWNvbnRhaW5lciB7IHBvc2l0aW9uOmFic29sdXRlOyB3aWR0aDoxMDAlOyBoZWlnaHQ6MTAwJTsgei1pbmRleDoxMDsgfSAuYWR2YW5jZWQtc2xpZGVyIC5zd2lwZWFibGUtY29udGFpbmVyIHsgcG9zaXRpb246YWJzb2x1dGU7IHdpZHRoOjEwMCU7IGhlaWdodDoxMDAlOyBvdmVyZmxvdzpoaWRkZW47IH0gLmFkdmFuY2VkLXNsaWRlciAuc3dpcGVhYmxlLWNvbnRhaW5lciAuc2xpZGVzIHsgLXdlYmtpdC11c2VyLXNlbGVjdDpub25lOyAtbW96LXVzZXItc2VsZWN0Om5vbmU7IC1vLXVzZXItc2VsZWN0Om5vbmU7IHVzZXItc2VsZWN0Om5vbmU7IH0gLmFkdmFuY2VkLXNsaWRlciAuc3dpcGVhYmxlLWNvbnRhaW5lciAuc2xpZGVzIC5zZWxlY3RhYmxlIHsgLXdlYmtpdC11c2VyLXNlbGVjdDphdXRvOyAtbW96LXVzZXItc2VsZWN0OmF1dG87IC1vLXVzZXItc2VsZWN0OmF1dG87IHVzZXItc2VsZWN0OmF1dG87IGN1cnNvcjphdXRvOyB9IC5hZHZhbmNlZC1zbGlkZXIgLnN3aXBlYWJsZS1jb250YWluZXIgLmdyYWIgeyBjdXJzb3I6Z3JhYjsgfSAuYWR2YW5jZWQtc2xpZGVyIC5zd2lwZWFibGUtY29udGFpbmVyIC5ncmFiYmluZyB7IGN1cnNvcjpncmFiYmluZzsgfSAuYWR2YW5jZWQtc2xpZGVyIC5zbGljZSB7IGRpc3BsYXk6YmxvY2s7IHBvc2l0aW9uOmFic29sdXRlOyB9IC5hZHZhbmNlZC1zbGlkZXIgLnByZWxvYWRlciB7IHBvc2l0aW9uOmFic29sdXRlOyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL3ByZWxvYWRlcjIuZ2lmKSBuby1yZXBlYXQ7IHdpZHRoOjYycHg7IGhlaWdodDoxNHB4OyB6LWluZGV4OjE1OyB9IC5hZHZhbmNlZC1zbGlkZXIgLnNsaWRlLWFycm93cyB7IHBvc2l0aW9uOnN0YXRpYzsgfSAuYWR2YW5jZWQtc2xpZGVyIC5zbGlkZS1hcnJvd3MgYSB7IHBvc2l0aW9uOmFic29sdXRlOyB6LWluZGV4OjMwOyBjdXJzb3I6cG9pbnRlcjsgfSAuYWR2YW5jZWQtc2xpZGVyIC5saWdodGJveC1pY29uIHsgcG9zaXRpb246YWJzb2x1dGU7IHdpZHRoOjgwcHg7IGhlaWdodDo4MHB4OyB0b3A6NTAlOyBsZWZ0OjUwJTsgbWFyZ2luLXRvcDotNDBweDsgbWFyZ2luLWxlZnQ6LTQwcHg7IGN1cnNvcjpwb2ludGVyOyB6LWluZGV4OjEwOyB9IC5hZHZhbmNlZC1zbGlkZXIgLmxpZ2h0Ym94LWljb24ucGxheSB7IGJhY2tncm91bmQtaW1hZ2U6dXJsKC9pbWFnZXMvbGlnaHRib3hfcGxheS5wbmcpOyB9IC5hZHZhbmNlZC1zbGlkZXIgLmxpZ2h0Ym94LWljb24ubWFnbmlmeWluZyB7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvbGlnaHRib3hfbWFnbmlmeWluZ19zbWFsbC5wbmcpIG5vLXJlcGVhdDsgZmxvYXQ6bGVmdDsgbGVmdDowOyB0b3A6MDsgbWFyZ2luLWxlZnQ6MTBweDsgbWFyZ2luLXRvcDoxMHB4OyBkaXNwbGF5Om5vbmU7IH0gfSAuYWR2YW5jZWQtc2xpZGVyIC5saWdodGJveC1pY29uLmh5cGVybGluayB7IGJhY2tncm91bmQtaW1hZ2U6dXJsKC9pbWFnZXMvbGlnaHRib3hfaHlwZXJsaW5rLnBuZyk7IH0gLmFkdmFuY2VkLXNsaWRlciAuc2xpZGVzaG93LWNvbnRyb2xzIHsgcG9zaXRpb246YWJzb2x1dGU7IHotaW5kZXg6NDA7IGN1cnNvcjpwb2ludGVyOyB9IC5hZHZhbmNlZC1zbGlkZXIgLnNoYWRvdyB7IHBvc2l0aW9uOmFic29sdXRlOyBoZWlnaHQ6OTRweDsgbWFyZ2luLXRvcDotNTBweDsgei1pbmRleDo1OyB9IC5hZHZhbmNlZC1zbGlkZXIgLnNoYWRvdyAuc2hhZG93LWxlZnQsIC5hZHZhbmNlZC1zbGlkZXIgLnNoYWRvdyAuc2hhZG93LXJpZ2h0LCAuYWR2YW5jZWQtc2xpZGVyIC5zaGFkb3cgLnNoYWRvdy1taWRkbGUgeyBmbG9hdDpsZWZ0OyB9IC5hZHZhbmNlZC1zbGlkZXIgLmZ1bGwtc2NyZWVuLWNvbnRyb2xzIHsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9mdWxsc2NyZWVuLnBuZykgbm8tcmVwZWF0OyBwb3NpdGlvbjphYnNvbHV0ZTsgd2lkdGg6MzFweDsgaGVpZ2h0OjI3cHg7IHRvcDoyMHB4OyBsZWZ0OjIwcHg7IHotaW5kZXg6NjA7IGN1cnNvcjpwb2ludGVyOyB9IC5hZHZhbmNlZC1zbGlkZXIgLnRpbWVyLWFuaW1hdGlvbiB7IHBvc2l0aW9uOmFic29sdXRlOyB6LWluZGV4OjUwOyB9IC5hZHZhbmNlZC1zbGlkZXIgY2FudmFzIHsgcG9zaXRpb246YWJzb2x1dGU7IH0gLmFkdmFuY2VkLXNsaWRlciAudGltZXItYW5pbWF0aW9uIC50aW1lci1hbmltYXRpb24tY29udHJvbHMgeyBwb3NpdGlvbjphYnNvbHV0ZTsgY3Vyc29yOnBvaW50ZXI7IHdpZHRoOjIwcHg7IGhlaWdodDoyMHB4OyB0b3A6NTAlOyBsZWZ0OjUwJTsgbWFyZ2luLXRvcDotMTBweDsgbWFyZ2luLWxlZnQ6LTEwcHg7IH0gLmFkdmFuY2VkLXNsaWRlciAudGltZXItYW5pbWF0aW9uIC50aW1lci1hbmltYXRpb24tY29udHJvbHMgeyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL3BsYXlwYXVzZV9zbWFsbC5wbmcpIG5vLXJlcGVhdDsgfSAuYWR2YW5jZWQtc2xpZGVyIC50aW1lci1hbmltYXRpb24ucGxheSAudGltZXItYW5pbWF0aW9uLWNvbnRyb2xzIHsgYmFja2dyb3VuZC1wb3NpdGlvbjotMjBweCAwOyB9IC5hZHZhbmNlZC1zbGlkZXIgLnRpbWVyLWFuaW1hdGlvbi5wYXVzZSAudGltZXItYW5pbWF0aW9uLWNvbnRyb2xzIHsgYmFja2dyb3VuZC1wb3NpdGlvbjowIDA7IH0gLmFkdmFuY2VkLXNsaWRlciAuY2FwdGlvbi1jb250YWluZXIgeyBvdmVyZmxvdzpoaWRkZW47IHBvc2l0aW9uOmFic29sdXRlOyB9IC5hZHZhbmNlZC1zbGlkZXIgLmNhcHRpb24tY29udGFpbmVyIC53cmFwcGVyIHsgcG9zaXRpb246YWJzb2x1dGU7IH0gLmFkdmFuY2VkLXNsaWRlciAuY2FwdGlvbi1jb250YWluZXIgLmJhY2tncm91bmQgeyBwb3NpdGlvbjphYnNvbHV0ZTsgd2lkdGg6MTAwJTsgaGVpZ2h0OjEwMCU7IH0gLmFkdmFuY2VkLXNsaWRlciAudGh1bWJuYWlsLXdyYXBwZXIgeyBwb3NpdGlvbjphYnNvbHV0ZTsgfSAuYWR2YW5jZWQtc2xpZGVyIC50aHVtYm5haWwgeyBiYWNrZ3JvdW5kLWltYWdlOnVybCgvaW1hZ2VzL3ByZWxvYWRlci5naWYpOyBiYWNrZ3JvdW5kLXBvc2l0aW9uOmNlbnRlcjsgYmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0OyBwb3NpdGlvbjphYnNvbHV0ZTsgb3ZlcmZsb3c6aGlkZGVuOyB9IC5hZHZhbmNlZC1zbGlkZXIgLnNsaWRlLWJ1dHRvbnMgeyBwb3NpdGlvbjphYnNvbHV0ZTsgei1pbmRleDoyMDsgfSAuYWR2YW5jZWQtc2xpZGVyIC5zbGlkZS1idXR0b25zIC5sZWZ0LCAuYWR2YW5jZWQtc2xpZGVyIC5zbGlkZS1idXR0b25zIC5yaWdodCwgLmFkdmFuY2VkLXNsaWRlciAuc2xpZGUtYnV0dG9ucyAubWlkZGxlIHsgZmxvYXQ6bGVmdDsgfSAuYWR2YW5jZWQtc2xpZGVyIC5zbGlkZS1idXR0b25zIGEgeyBwb3NpdGlvbjpyZWxhdGl2ZTsgY3Vyc29yOnBvaW50ZXI7IGZsb2F0OmxlZnQ7IHRleHQtZGVjb3JhdGlvbjpub25lOyB0ZXh0LWFsaWduOmNlbnRlcjsgfSAuYWR2YW5jZWQtc2xpZGVyIC50aHVtYm5haWwtc2Nyb2xsZXIgeyBwb3NpdGlvbjphYnNvbHV0ZTsgei1pbmRleDoyMDsgfSAuYWR2YW5jZWQtc2xpZGVyIC50aHVtYm5haWwtc2Nyb2xsZXIgLnZpc2libGUtY29udGFpbmVyIHsgcG9zaXRpb246cmVsYXRpdmU7IG92ZXJmbG93OmhpZGRlbjsgfSAuYWR2YW5jZWQtc2xpZGVyIC50aHVtYm5haWwtc2Nyb2xsZXIgLmNvbnRhaW5lciB7IHBvc2l0aW9uOmFic29sdXRlOyBvdmVyZmxvdzp2aXNpYmxlOyB0b3A6MDsgbGVmdDowOyBsaXN0LXN0eWxlOm5vbmU7IG1hcmdpbjowOyBwYWRkaW5nOjA7IH0gLmFkdmFuY2VkLXNsaWRlciAudGh1bWJuYWlsLXNjcm9sbGVyIC50aHVtYm5haWwtd3JhcHBlciB7IGN1cnNvcjpwb2ludGVyOyBsaXN0LXN0eWxlOm5vbmU7IH0gLmFkdmFuY2VkLXNsaWRlciAudGh1bWJuYWlsLXNjcm9sbGVyIC5saWdodGJveC1pY29uIHsgcG9zaXRpb246YWJzb2x1dGU7IHdpZHRoOjMwcHg7IGhlaWdodDozMHB4OyB0b3A6NTAlOyBsZWZ0OjUwJTsgbWFyZ2luLXRvcDotMTVweDsgbWFyZ2luLWxlZnQ6LTE1cHg7IGN1cnNvcjpwb2ludGVyOyB9IC5hZHZhbmNlZC1zbGlkZXIgLnRodW1ibmFpbC1zY3JvbGxlciAubGlnaHRib3gtaWNvbi5wbGF5IHsgYmFja2dyb3VuZC1pbWFnZTp1cmwoL2ltYWdlcy9saWdodGJveF9wbGF5X3NtYWxsLnBuZyk7IH0gLmFkdmFuY2VkLXNsaWRlciAudGh1bWJuYWlsLXNjcm9sbGVyIC5saWdodGJveC1pY29uLm1hZ25pZnlpbmcgeyBiYWNrZ3JvdW5kLWltYWdlOnVybCgvaW1hZ2VzL2xpZ2h0Ym94X21hZ25pZnlpbmdfc21hbGwucG5nKTsgfSAuYWR2YW5jZWQtc2xpZGVyIC50aHVtYm5haWwtc2Nyb2xsZXIgLmxpZ2h0Ym94LWljb24uaHlwZXJsaW5rIHsgYmFja2dyb3VuZC1pbWFnZTp1cmwoL2ltYWdlcy9saWdodGJveF9oeXBlcmxpbmtfc21hbGwucG5nKTsgfSAuYWR2YW5jZWQtc2xpZGVyIC50aHVtYm5haWwgLmNhcHRpb24geyBwb3NpdGlvbjphYnNvbHV0ZTsgd2lkdGg6MTAwJTsgfSAuYWR2YW5jZWQtc2xpZGVyIC50aHVtYm5haWwgLmNhcHRpb24gLmJhY2tncm91bmQgeyBwb3NpdGlvbjphYnNvbHV0ZTsgd2lkdGg6MTAwJTsgaGVpZ2h0OjEwMCU7IHotaW5kZXg6MTA7IH0gLmFkdmFuY2VkLXNsaWRlciAudGh1bWJuYWlsIC5jYXB0aW9uIC5jb250ZW50IHsgcG9zaXRpb246YWJzb2x1dGU7IHdpZHRoOjEwMCU7IHotaW5kZXg6MjA7IH0gLmFkdmFuY2VkLXNsaWRlciAudGh1bWJuYWlsLXNjcm9sbGVyIC5hcnJvd3MgYSB7IHBvc2l0aW9uOmFic29sdXRlOyBjdXJzb3I6cG9pbnRlcjsgfSAuYWR2YW5jZWQtc2xpZGVyIC50aHVtYm5haWwtc2Nyb2xsZXIgLmJ1dHRvbnMgeyBwb3NpdGlvbjphYnNvbHV0ZTsgd2lkdGg6YXV0bzsgfSAuYWR2YW5jZWQtc2xpZGVyIC50aHVtYm5haWwtc2Nyb2xsZXIgLmJ1dHRvbnMgYSB7IHBvc2l0aW9uOmFic29sdXRlOyBjdXJzb3I6cG9pbnRlcjsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IH0gLmFkdmFuY2VkLXNsaWRlci10b29sdGlwIHsgcG9zaXRpb246YWJzb2x1dGU7IHotaW5kZXg6OTk5OTsgfSAub2VtLWltZy1zbGlkZXIgLnNsaWRlIGEgeyBkaXNwbGF5OmZsZXg7IGFsaWduLWl0ZW1zOmNlbnRlcjsganVzdGlmeS1jb250ZW50OmNlbnRlcjsgfSAub2VtLWltZy1zbGlkZXIgLnNsaWRlOm50aC1jaGlsZCgtbis0KSBhIGltZ3sgd2lkdGg6MTE1JSAhaW1wb3J0YW50OyB9IC5vZW0taW1nLXNsaWRlciAuc2xpZGUgYSBpbWd7IGhlaWdodDphdXRvICFpbXBvcnRhbnQ7IG1hcmdpbjowICFpbXBvcnRhbnQ7IG1heC13aWR0aDpub25lICFpbXBvcnRhbnQ7IG1heC1oZWlnaHQ6bm9uZSAhaW1wb3J0YW50OyBwb3NpdGlvbjpyZWxhdGl2ZSAhaW1wb3J0YW50OyBsZWZ0OmluaXRpYWwgIWltcG9ydGFudDsgdG9wOmluaXRpYWwgIWltcG9ydGFudDsgbWF4LXdpZHRoOnVuc2V0ICFpbXBvcnRhbnQ7IG1heC1oZWlnaHQ6dW5zZXQgIWltcG9ydGFudDsgfSAub2VtLWltZy1zbGlkZXIgI2ZpcnN0U2xpZGVySW1nIC5wbGFjZWhvbGRlciB7IGJhY2tncm91bmQtc2l6ZToxMTUlOyB9Ci8qKiAvY3NzL3ZlaGljbGVGZWF0dXJlU3VtbWFyeS5wcmVsb2FkLmNzcyAqKi8KLnZkcEZlYXR1cmVTdW1tYXJ5eyAtLXN3aXRjaC1icDo1MHJlbTsgYm9yZGVyLWNvbG9yOiNjY2NjY2M7IGNsZWFyOmJvdGg7IH0gLnZzZmlJdGVtU3VtbWFyeSB7IGZvbnQtd2VpZ2h0OjcwMDsgZm9udC1zaXplOjEuMnJlbTsgfSAudmRwRmVhdHVyZUNvbnN1bXB0aW9ueyBkaXNwbGF5OmZsZXg7IGZsZXgtd3JhcDp3cmFwOyB9IC52ZHBGZWF0dXJlQ29uc3VtcHRpb24gPiAqeyBmbGV4OjEgMSAzMSU7IG1pbi13aWR0aDo5cmVtOyB9Ci8qKiAvY3NzL3RvYXN0ci5jc3MgKiovCi50b2FzdC10aXRsZXtmb250LXdlaWdodDpib2xkfS50b2FzdC1tZXNzYWdley1tcy13b3JkLXdyYXA6YnJlYWstd29yZDt3b3JkLXdyYXA6YnJlYWstd29yZH0udG9hc3QtbWVzc2FnZSBhLC50b2FzdC1tZXNzYWdlIGxhYmVse2NvbG9yOiNmZmZ9LnRvYXN0LW1lc3NhZ2UgYTpob3Zlcntjb2xvcjojY2NjO3RleHQtZGVjb3JhdGlvbjpub25lfS50b2FzdC1jbG9zZS1idXR0b257cG9zaXRpb246cmVsYXRpdmU7cmlnaHQ6LTAuM2VtO3RvcDotMC4zZW07ZmxvYXQ6cmlnaHQ7Zm9udC1zaXplOjEuMjVyZW0gO2ZvbnQtd2VpZ2h0OmJvbGQ7Y29sb3I6aW5oZXJpdDstd2Via2l0LXRleHQtc2hhZG93OjAgMXB4IDAgI2ZmZjt0ZXh0LXNoYWRvdzowIDFweCAwICNmZmY7b3BhY2l0eTouODstbXMtZmlsdGVyOmFscGhhKG9wYWNpdHk9ODApO2ZpbHRlcjphbHBoYShvcGFjaXR5PTgwKX0udG9hc3QtY2xvc2UtYnV0dG9uOmhvdmVyLC50b2FzdC1jbG9zZS1idXR0b246Zm9jdXN7Y29sb3I6IzEwMTAxMDt0ZXh0LWRlY29yYXRpb246bm9uZTtjdXJzb3I6cG9pbnRlcjtvcGFjaXR5Oi40Oy1tcy1maWx0ZXI6YWxwaGEob3BhY2l0eT00MCk7ZmlsdGVyOmFscGhhKG9wYWNpdHk9NDApfWJ1dHRvbi50b2FzdC1jbG9zZS1idXR0b257cGFkZGluZzowO2N1cnNvcjpwb2ludGVyO2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Ym9yZGVyOjA7LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmV9LnRvYXN0LXRvcC1jZW50ZXJ7dG9wOjA7cmlnaHQ6MDt3aWR0aDoxMDAlfS50b2FzdC1ib3R0b20tY2VudGVye2JvdHRvbTowO3JpZ2h0OjA7d2lkdGg6MTAwJX0udG9hc3QtdG9wLWZ1bGwtd2lkdGh7dG9wOjA7cmlnaHQ6MDt3aWR0aDoxMDAlfS50b2FzdC1ib3R0b20tZnVsbC13aWR0aHtib3R0b206MDtyaWdodDowO3dpZHRoOjEwMCV9LnRvYXN0LXRvcC1sZWZ0e3RvcDoxMnB4O2xlZnQ6MTJweH0udG9hc3QtdG9wLXJpZ2h0e3RvcDoxMnB4O3JpZ2h0OjEycHh9LnRvYXN0LWJvdHRvbS1yaWdodHtyaWdodDoxMnB4O2JvdHRvbToxMnB4fS50b2FzdC1ib3R0b20tbGVmdHtib3R0b206MTJweDtsZWZ0OjEycHh9I3RvYXN0LWNvbnRhaW5lcntwb3NpdGlvbjpmaXhlZDt6LWluZGV4Ojk5OTk5OTtjb2xvcjojRkZGfSN0b2FzdC1jb250YWluZXIgKnstbW96LWJveC1zaXppbmc6Ym9yZGVyLWJveDstd2Via2l0LWJveC1zaXppbmc6Ym9yZGVyLWJveDtib3gtc2l6aW5nOmJvcmRlci1ib3h9I3RvYXN0LWNvbnRhaW5lcj5kaXZ7cG9zaXRpb246cmVsYXRpdmU7b3ZlcmZsb3c6aGlkZGVuO21hcmdpbjowIDAgNnB4O3BhZGRpbmc6MTVweCAxNXB4IDE1cHggNTBweDt3aWR0aDozMDBweDstbW96LWJvcmRlci1yYWRpdXM6M3B4IDNweCAzcHggM3B4Oy13ZWJraXQtYm9yZGVyLXJhZGl1czozcHggM3B4IDNweCAzcHg7Ym9yZGVyLXJhZGl1czozcHggM3B4IDNweCAzcHg7YmFja2dyb3VuZC1wb3NpdGlvbjoxNXB4IGNlbnRlcjtiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7LW1vei1ib3gtc2hhZG93OjAgMCAxMnB4ICM5OTk7LXdlYmtpdC1ib3gtc2hhZG93OjAgMCAxMnB4ICM5OTk7Ym94LXNoYWRvdzowIDAgMTJweCAjOTk5O2NvbG9yOmluaGVyaXQ7b3BhY2l0eTouODstbXMtZmlsdGVyOmFscGhhKG9wYWNpdHk9ODApO2ZpbHRlcjphbHBoYShvcGFjaXR5PTgwKX0jdG9hc3QtY29udGFpbmVyPjpob3ZlcnstbW96LWJveC1zaGFkb3c6MCAwIDEycHggIzAwMDstd2Via2l0LWJveC1zaGFkb3c6MCAwIDEycHggIzAwMDtib3gtc2hhZG93OjAgMCAxMnB4ICMwMDA7b3BhY2l0eToxOy1tcy1maWx0ZXI6YWxwaGEob3BhY2l0eT0xMDApO2ZpbHRlcjphbHBoYShvcGFjaXR5PTEwMCk7Y3Vyc29yOnBvaW50ZXJ9I3RvYXN0LWNvbnRhaW5lcj4udG9hc3QtaW5mb3tiYWNrZ3JvdW5kLWltYWdlOnVybCgiZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFCZ0FBQUFZQ0FZQUFBRGdkejM0QUFBQUFYTlNSMElBcnM0YzZRQUFBQVJuUVUxQkFBQ3hqd3Y4WVFVQUFBQUpjRWhaY3dBQURzTUFBQTdEQWNkdnFHUUFBQUd3U1VSQlZFaEx0WmE5U2dOQkVNYzlzVXh4UmNvVUtTelNXSWhYcEZNaGhZV0ZoYUJnNHlQWWlXQ1haeEJMRVJzTFJTM0VRa0Vmd0NLZGpXSkF3U0tDZ29LQ2N1ZHY0TzVZTHJ0N0V6Z1hoaVUzLzQrYjJja213VmpKU3BLa1E2d0FpNGd3aFQrejN3UkJjRXoweWpTc2VVVHJjUnlmc0hzWG1EMEFtYkhPQzlJaThWSW1udVhCUGdsSHBRNXd3U1ZNN3NOblRHN1phNEp3RGRDanh5QWlIM255QTJtdGFUSnVmaURaNWRDYXFsSXRJTGgxTkhhdGZONXNrdmp4OVozOG02OUNnenVYbVpnVnJQSUdFNzYzSng5cUtzUm96V1l3NnhPSGRFUitubjJLa08rQmIrVVY1Q0JONldDNlF0QmdiUlZvenJhaEFibW02SHRVc2d0UEMxOXRGZHhYWllCT2ZrYm1GSjFWYUhBMVZBSGpkMHBwNzBvVFp6dlIrRVZyeDJZZ2Zkc3E2ZXU1NUJIWVI4aGxja2krbitrRVJVRkc4QnJBMEJ3amVBdjJNOFdMUUJ0Y3krU0Q2Zk5zbW5CM0FsQkxyZ1R0VlcxYzJRTjRiVldMQVRhSVM2MEoyRHU1eTFUaUpnalNCdkZWWmdUbXdDVStkQVpGb1B4R0VFczhueUhDOUJ3ZTJHdkVKdjJXWFpiMHZqZHlGVDRDeGszZS9rSXFsT0dvVkx3d1BldnBZSFQrMDBUK2hXd1hEZjRBSkFPVXFXY0RoYndBQUFBQVNVVk9SSzVDWUlJPSIpICFpbXBvcnRhbnR9I3RvYXN0LWNvbnRhaW5lcj4udG9hc3QtZXJyb3J7YmFja2dyb3VuZC1pbWFnZTp1cmwoImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQmdBQUFBWUNBWUFBQURnZHozNEFBQUFBWE5TUjBJQXJzNGM2UUFBQUFSblFVMUJBQUN4and2OFlRVUFBQUFKY0VoWmN3QUFEc01BQUE3REFjZHZxR1FBQUFIT1NVUkJWRWhMclphL1NnTkJFTVp6aDBXS0NDbFNDS2FJWU9FRCtBQUtlUVFMRzhIV3p0TENJbUJyWWFkZ0lkWStnSUtOWWtCRlN3dTdDQW9xQ2dra29HQkkvRTI4UGRiTFptZURMZ3paemN4ODMveloyU1NYQzFqOWZyK0kxSHE5M2cyeXhINGl3TTF2a29CV0FkeENtcHpUeGZrTjJSY3laTmFIRklrU28xMCs4a2d4a1hJVVJWNUhHeFRtRnVjNzVCMlJmUWtweEhHOGFBZ2FBRmEwdEFIcVlGZlE3SXdlMnloT0RrOCtKNEM3eUFvUlRXSTN3LzRrbEdSZ1I0bE83UnBuOStndk15V3ArdXhGaDgrSCtBUmxnTjFuSnVKdVFBWXZOa0Vud0dGY2sxOEVyNHEzZWdFYy9vTyttaExkS2dSeWhkTkZpYWNDMHJsT0NiaE5WejRIOUZuQVlnREJ2VTNRSWlvWmxKRkxKdHNvSFlSRGZpWm9VeUl4cUN0UnBWbEFOcTBFVTRkQXBqcnRnZXpQRmFkNVMxOVdnamtjMGhOVm51RjRIalZBNkM3UXJTSWJ5bEIrb1plM2FIZ0JzcWxOcUtZSDQ4alh5SktNdUFiaXlWSjhLemFCM2VSYzBwZzlWd1E0bmlGcnlJNjhxaU9pM0Fiandkc2ZuQXRrMGJDalRMSktyNm1yRDlnOGlxL1MvQjgxaGd1T01sUVRuVnlHNDB3QWNqbm1nc0NORVNEcmptZTd3ZmZ0UDRQN1NQNE4zQ0paZHZ6b055R3EyYy9IV09YSkdzdlZnK1JBL2syTUMvd042STJZQTJQdDhHa0FBQUFBU1VWT1JLNUNZSUk9IikgIWltcG9ydGFudH0jdG9hc3QtY29udGFpbmVyPi50b2FzdC1zdWNjZXNze2JhY2tncm91bmQtaW1hZ2U6dXJsKCJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUJnQUFBQVlDQVlBQUFEZ2R6MzRBQUFBQVhOU1IwSUFyczRjNlFBQUFBUm5RVTFCQUFDeGp3djhZUVVBQUFBSmNFaFpjd0FBRHNNQUFBN0RBY2R2cUdRQUFBRHNTVVJCVkVoTFkyQVlCZlFNZ2YvLy8zUDgrL2V2QUlndkEvRnNJRitCYXZZRERXTUJHcm9hU01NQmlFOFZDN0FaRHJJRmFNRm5paTNBWlRqVWdzVVVXVURBOE9kQUg2aVFiUUVodzRIeUdzUEVjS0JYQklDNEFSaGV4NEc0QnNqbXdlVTFzb0lGYUdnL1d0b0ZaUklaZEV2SU1oeGtDQ2pYSVZzQVRWNmdGR0FDczRSc3cwRUdnSUlIM1FKWUpnSFNBUlFaRHJXQUIramF3emdzK1EyVU80OUQ3am5SU1JHb0VGUklMY2RtRU1XR0kwY20wSkoyUXBZQTFSRHZjbXpKRVdoQUJoRC9wcXJMMFMwQ1d1QUJLZ25Sa2k5bExzZVM3ZzJBbHF3SFdRU0tING9LTHJJTHBSR2hFUUN3MkxpUlVJYTRsd0FBQUFCSlJVNUVya0pnZ2c9PSIpICFpbXBvcnRhbnR9I3RvYXN0LWNvbnRhaW5lcj4udG9hc3Qtd2FybmluZ3tiYWNrZ3JvdW5kLWltYWdlOnVybCgiZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFCZ0FBQUFZQ0FZQUFBRGdkejM0QUFBQUFYTlNSMElBcnM0YzZRQUFBQVJuUVUxQkFBQ3hqd3Y4WVFVQUFBQUpjRWhaY3dBQURzTUFBQTdEQWNkdnFHUUFBQUdZU1VSQlZFaEw1WlN2VHNOUUZNYlhaR0lDTVlHWW1KaEFRSUpBSUNZUVBBQUNpU0RCOEFpSUNRUUpUNENxUUV3Z0p2WUFTQVFDaVppWW1KaEFJQkFUQ0FSSnkrOXJUc2xkZDhzS3UxTTArZExiMDU3djYvbGJxLzJySzBtUy9UUk5qOWNXTkFLUFlJSklJN2dJeENjUTUxY3ZxSUQrR0lFWDhBU0c0QjFiSzVnSVpGZVFmb0pkRVhPZmdYNFFBUWc3a0gyQTY1eVE4N2x5eGIyN3NnZ2tBekF1RmhiYmcxSzJrZ0NrQjFiVnd5SVI5bTJMN1BSUEloRFVJWGdHdHlLdzU3NXl6M2xUTnM2WDRKWG5qVitMS00vbTNNeWRuVGJ0T0tJanR6NlZoQ0JxNHZTbTNuY2RyRDJsazBWZ1VYU1ZLalZESlhKemlqVzFSUWRzVTdGNzdIZTh1Njhrb05aVHo4T3o1eUdhNkozSDNsWjB4WWdYQksyUXltbFdXQStSV25ZaHNrTEJ2MnZtRStoQk1DdGJBN0tYNWRyV3lSVC8ySnNxWjJJdmZCOVk0YldETk1GYkpSRm1DOUU3NFNvUzBDcXVsd2prQzArNWJwY1YxQ1o4Tk1lajRwankwVStkb0RRc0d5bzFoelZKdHRJamhRN0duQnRSRk4xVWFyVWxIOEYzeGljdCtIWTA3ckV6b1VHUGxXY2pSRlJyNC9nQ2haZ2MzWkwyZDhvQUFBQUFTVVZPUks1Q1lJST0iKSAhaW1wb3J0YW50fSN0b2FzdC1jb250YWluZXIudG9hc3QtdG9wLWNlbnRlcj5kaXYsI3RvYXN0LWNvbnRhaW5lci50b2FzdC1ib3R0b20tY2VudGVyPmRpdnt3aWR0aDozMDBweDttYXJnaW46YXV0b30jdG9hc3QtY29udGFpbmVyLnRvYXN0LXRvcC1mdWxsLXdpZHRoPmRpdiwjdG9hc3QtY29udGFpbmVyLnRvYXN0LWJvdHRvbS1mdWxsLXdpZHRoPmRpdnt3aWR0aDo5NiU7bWFyZ2luOmF1dG99LnRvYXN0e2JhY2tncm91bmQtY29sb3I6IzAzMDMwM30udG9hc3Qtc3VjY2Vzc3tiYWNrZ3JvdW5kLWNvbG9yOiM1MWEzNTF9LnRvYXN0LWVycm9ye2JhY2tncm91bmQtY29sb3I6I2JkMzYyZn0udG9hc3QtaW5mb3tiYWNrZ3JvdW5kLWNvbG9yOiMyZjk2YjR9LnRvYXN0LXdhcm5pbmd7YmFja2dyb3VuZC1jb2xvcjojZjg5NDA2fS50b2FzdC1wcm9ncmVzc3twb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjA7Ym90dG9tOjA7aGVpZ2h0OjRweDtiYWNrZ3JvdW5kLWNvbG9yOiMwMDA7b3BhY2l0eTouNDstbXMtZmlsdGVyOmFscGhhKG9wYWNpdHk9NDApO2ZpbHRlcjphbHBoYShvcGFjaXR5PTQwKX1AbWVkaWEgYWxsIGFuZCAobWF4LXdpZHRoOjI0MHB4KXsjdG9hc3QtY29udGFpbmVyPmRpdntwYWRkaW5nOjhweCA4cHggOHB4IDUwcHg7d2lkdGg6MTFlbX0jdG9hc3QtY29udGFpbmVyIC50b2FzdC1jbG9zZS1idXR0b257cmlnaHQ6LTAuMmVtO3RvcDotMC4yZW19fUBtZWRpYSBhbGwgYW5kIChtaW4td2lkdGg6MjQxcHgpIGFuZCAobWF4LXdpZHRoOjQ4MHB4KXsjdG9hc3QtY29udGFpbmVyPmRpdntwYWRkaW5nOjhweCA4cHggOHB4IDUwcHg7d2lkdGg6MThlbX0jdG9hc3QtY29udGFpbmVyIC50b2FzdC1jbG9zZS1idXR0b257cmlnaHQ6LTAuMmVtO3RvcDotMC4yZW19fUBtZWRpYSBhbGwgYW5kIChtaW4td2lkdGg6NDgxcHgpIGFuZCAobWF4LXdpZHRoOjc2OHB4KXsjdG9hc3QtY29udGFpbmVyPmRpdntwYWRkaW5nOjE1cHggMTVweCAxNXB4IDUwcHg7d2lkdGg6MjVlbX19Ci8qKiAvY3NzL3JldmVhbC5jc3MgKiovCi5yZXZlYWwtbW9kYWwtYmcgeyBwb3NpdGlvbjpmaXhlZDsgaGVpZ2h0OjEwMCU7IHdpZHRoOjEwMCU7IGJhY2tncm91bmQ6IzAwMDsgYmFja2dyb3VuZDpyZ2JhKDAsMCwwLC44KTsgei1pbmRleDoxMDAwMDA5OyBkaXNwbGF5Om5vbmU7IHRvcDowOyBsZWZ0OjA7IH0gLnJldmVhbC1tb2RhbCB7IHZpc2liaWxpdHk6aGlkZGVuOyB0b3A6LTEwMDBweDsgd2lkdGg6bWluKDUyMHB4LCA5MHZ3KTsgYmFja2dyb3VuZDojZWVlIHVybCgvaW1hZ2VzL21vZGFsLWdsb3NzLnBuZykgbm8tcmVwZWF0IC0yMDBweCAtODBweDsgYmFja2dyb3VuZC1jb2xvcjojZWVlOyBwb3NpdGlvbjphYnNvbHV0ZTsgbGVmdDowOyByaWdodDowOyBtYXJnaW46YXV0bzsgei1pbmRleDoxMDAwMDIwOyBwYWRkaW5nOjMwcHggNDBweCAzNHB4OyAtbW96LWJvcmRlci1yYWRpdXM6NXB4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6NXB4OyBib3JkZXItcmFkaXVzOjVweDsgLW1vei1ib3gtc2hhZG93OjAgMCAxMHB4IHJnYmEoMCwwLDAsLjQpOyAtd2Via2l0LWJveC1zaGFkb3c6MCAwIDEwcHggcmdiYSgwLDAsMCwuNCk7IC1ib3gtc2hhZG93OjAgMCAxMHB4IHJnYmEoMCwwLDAsLjQpOyB9IC5yZXZlYWwtbW9kZWwtZG8tbm90LXNob3cgeyB2aXNpYmlsaXR5OmhpZGRlbjsgdG9wOjEwMHB4OyB3aWR0aDo1MjBweDsgcG9zaXRpb246YWJzb2x1dGU7IHotaW5kZXg6MTAwMDAyMDsgcGFkZGluZzozMHB4IDQwcHggMzRweDsgYmFja2dyb3VuZDpub25lOyAtbW96LWJvcmRlci1yYWRpdXM6MHB4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6MHB4OyBib3JkZXItcmFkaXVzOjBweDsgLW1vei1ib3gtc2hhZG93Om5vbmU7IC13ZWJraXQtYm94LXNoYWRvdzpub25lOyAtYm94LXNoYWRvdzpub25lOyB9IC4tLWlzLXBvcHVwLWZpeGVkLWNvbnRhaW5lciB7IHBvc2l0aW9uOmZpeGVkOyB0b3A6MDsgbGVmdDowOyByaWdodDowOyB6LWluZGV4OjEwMDAwMDAwMDsgfSAucmV2ZWFsLW1vZGFsLnNtYWxsIHsgd2lkdGg6MjAwcHg7fSAucmV2ZWFsLW1vZGFsLm1lZGl1bSB7IHdpZHRoOjQwMHB4O30gLnJldmVhbC1tb2RhbC5sYXJnZSB7IHdpZHRoOjYwMHB4O30gLnJldmVhbC1tb2RhbC54bGFyZ2UgeyB3aWR0aDo4MDBweDt9IC5yZXZlYWwtbW9kYWwgLmNsb3NlLXJldmVhbC1tb2RhbCB7IGZvbnQtc2l6ZToxLjM3NXJlbSA7IGxpbmUtaGVpZ2h0Oi41OyBwb3NpdGlvbjphYnNvbHV0ZTsgdG9wOjlweDsgcmlnaHQ6MTBweDsgY29sb3I6IzQ0NDsgdGV4dC1zaGFkb3c6MCAtMXB4IDFweCByYmdhKDAsMCwwLC42KTsgZm9udC13ZWlnaHQ6Ym9sZDsgY3Vyc29yOnBvaW50ZXI7IH0gLmNsb3NlLXJldmVhbC1tb2RhbC5tb2RhbC1jbG9zZS1oaWRlIHsgZGlzcGxheTpub25lOyB9IC5yZXZlYWwtbW9kYWwgc3BhbiB7IHBhZGRpbmc6MHB4OyBmb250LXNpemU6MS41cmVtIDsgbWFyZ2luLWJvdHRvbToxMHB4OyBjb2xvcjojNDE0MTQxOyB9IC5yZXZlYWwtbW9kYWwgc3Bhbi5zdWNjZXNzIHsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9jaXJjbGUtZ3JlZW4tMjQtbnMucG5nKSBuby1yZXBlYXQgc2Nyb2xsIGxlZnQgY2VudGVyIHRyYW5zcGFyZW50OyB9IC5yZXZlYWwtbW9kYWwgc3Bhbi5mYWlsIHsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9jaXJjbGUtcmVkLTI0LW5zLnBuZykgbm8tcmVwZWF0IHNjcm9sbCBsZWZ0IGNlbnRlciB0cmFuc3BhcmVudDsgfSAucmV2ZWFsLW1vZGFsIHAgeyBtYXJnaW46MCA7IGZvbnQtc2l6ZTowLjkzOHJlbSA7IGNvbG9yOiM0MTQxNDE7IH0gLnBvcHVwLWRvbS1ub3dyYXBwZXIgeyBiYWNrZ3JvdW5kOm5vbmUgIWltcG9ydGFudDsgYm94LXNoYWRvdzpub25lOyB9IEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC1kZXZpY2Utd2lkdGg6NDgwcHgpIHsgLnJldmVhbC1tb2RhbCwgLnJldmVhbC1tb2RlbC1kby1ub3Qtc2hvdyB7IHRvcDoxMHB4OyB6LWluZGV4OjEwMDAwMjA7IHBhZGRpbmc6MC41cmVtOyBwYWRkaW5nLXRvcDoycmVtOyB9IC5yZXZlYWwtbW9kYWwgLmNsb3NlLXJldmVhbC1tb2RhbCB7IGZvbnQtc2l6ZToxLjg3NXJlbSA7IGxpbmUtaGVpZ2h0OjAuNjsgcmlnaHQ6MC41cmVtOyB0b3A6MC41cmVtOyB6LWluZGV4OjE7IH0gfSAuZW1haWwtY29uc2VudC1ib3ggOmlzKC50aXRsZS10eHQsIHApeyBtYXJnaW4tbGVmdDowOyBwYWRkaW5nOjA7IGNvbG9yOiM0MTQxNDE7IH0gLmVtYWlsLWNvbnNlbnQtYm94eyBiYWNrZ3JvdW5kLWNvbG9yOiNlZWU7IGNvbG9yOiM0MTQxNDE7IH0gLmVtYWlsLWNvbnNlbnQtYm94IC5pY29uLXRpdGxleyB0ZXh0LWFsaWduOmNlbnRlcjsgfQovKiogL2Nzcy9jb250YWN0UG9wdXAuY3NzICoqLwojY29udGFjdHBvcHVwIHsgd2lkdGg6NTk4cHg7IG1pbi13aWR0aDoyMzBweDsgfSAjY29udGFjdHBvcHVwLm1vYmlsZSB7IHdpZHRoOjEwMCU7IH0gLmNvbnRhY3Rwb3B1cC5tb2JpbGUgdGFibGUuanFUcmFuc2Zvcm1UZXh0YXJlYSwgLmNvbnRhY3Rwb3B1cC5tb2JpbGUgdGFibGUuanFUcmFuc2Zvcm1UZXh0YXJlYSB0ZXh0YXJlYS5qcXRyYW5zZm9ybWRvbmUgeyB3aWR0aDoxMDAlOyB9IC5jb250YWN0cG9wdXAubW9iaWxlIHRhYmxlLmpxVHJhbnNmb3JtVGV4dGFyZWEgdGQuanFUcmFuc2Zvcm1UZXh0YXJlYS1tbCwgLmNvbnRhY3Rwb3B1cC5tb2JpbGUgdGFibGUuanFUcmFuc2Zvcm1UZXh0YXJlYSB0ZC5qcVRyYW5zZm9ybVRleHRhcmVhLW1yIHsgZGlzcGxheTpub25lOyB9ICNjb250YWN0cG9wdXAgKiB7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgfSAjY29udGFjdHBvcHVwLnJldmVhbC1tb2RhbCB7IHBhZGRpbmc6MDsgfSAjY29udGFjdHBvcHVwLnJldmVhbC1tb2RhbCAuY2xvc2UtcmV2ZWFsLW1vZGFsIHsgZGlzcGxheTpub25lOyB9ICNjb250YWN0cG9wdXAgLmNvbnRhY3Rwb3B1cC1ib2R5IHsgYmFja2dyb3VuZC1jb2xvcjp3aGl0ZTsgcGFkZGluZzozMHB4IDEwcHggMTBweDsgfSAuY29udGFjdHBvcHVwLWJvZHkgaW5wdXQgeyB3aWR0aDoxMDAlOyB9IC5jb250YWN0cG9wdXAtYm9keSAuZGl2QmxvY2tSb3c6bm90KDpsYXN0LWNoaWxkKSAuZGl2U3BhbiB7IG1hcmdpbi1ib3R0b206MTVweDsgfSAuY29udGFjdHBvcHVwLWJvZHkgLmRpdkJsb2NrUm93IC5kaXZTcGFuNjpmaXJzdC1jaGlsZCB7IHBhZGRpbmctcmlnaHQ6MTVweDsgfSAuY29udGFjdHBvcHVwLWJvZHkgLmRpdkJsb2NrUm93IC5kaXZTcGFuNjpsYXN0LWNoaWxkIHsgcGFkZGluZy1sZWZ0OjE1cHg7IH0gLmNvbnRhY3Rwb3B1cC1ib2R5IC5kaXZCbG9ja1JvdyAuZGl2U3BhbjYgLmpxVHJhbnNmb3JtSW5wdXRXcmFwcGVyIHsgbWF4LXdpZHRoOjI3NHB4ICFpbXBvcnRhbnQ7IH0gLmNvbnRhY3Rwb3B1cC1oZWFkZXIgeyBib3JkZXItcmFkaXVzOjVweCA1cHggMCAwOyBwYWRkaW5nOjE1cHggMTVweCAzMHB4IDE1cHg7IHRleHQtYWxpZ246Y2VudGVyOyBwb3NpdGlvbjpyZWxhdGl2ZTsgLXdlYmtpdC1ib3gtc2hhZG93OjAgMCAxMHB4IDJweCByZ2JhKDAsMCwwLDAuMyk7IC1tb3otYm94LXNoYWRvdzowIDAgMTBweCAycHggcmdiYSgwLDAsMCwwLjMpOyBib3gtc2hhZG93OjAgMCAxMHB4IDJweCByZ2JhKDAsMCwwLDAuMyk7IGZvbnQtc2l6ZToxLjYyNXJlbSA7IGNvbG9yOiNmZmZmZmY7IGJhY2tncm91bmQtY29sb3I6IzEwMTAxMDsgfSAuY29udGFjdHBvcHVwLWhlYWRlcjo6YWZ0ZXIgeyBjb250ZW50OiIiOyBwb3NpdGlvbjphYnNvbHV0ZTsgYm90dG9tOi0xNXB4OyBsZWZ0OjUwJTsgLXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUpOyAtbW96LXRyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSk7IC1tcy10cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUpOyAtby10cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUpOyB0cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUpOyBib3JkZXItbGVmdDozMHB4IHNvbGlkIHRyYW5zcGFyZW50OyBib3JkZXItcmlnaHQ6MzBweCBzb2xpZCB0cmFuc3BhcmVudDsgYm9yZGVyLXRvcDoxNXB4IHNvbGlkICMxMDEwMTA7IH0gLmNvbnRhY3Rwb3B1cC1oZWFkZXIgLmZhLXRpbWVzIHsgcG9zaXRpb246YWJzb2x1dGU7IHJpZ2h0OjAuNXJlbTsgdG9wOjAuNXJlbTsgZm9udC1zaXplOmluaXRpYWw7IH0gLmNvbnRhY3Rwb3B1cC1oZWFkZXIgLmZhLXRpbWVzOmhvdmVyIHsgY3Vyc29yOnBvaW50ZXI7IH0gLmNvbnRhY3Rwb3B1cC1oZWFkZXIgLmhlYWRlci1yZXBsYWNlIHsgZGlzcGxheTppbmxpbmUtYmxvY2s7IH0gYnV0dG9uLmNvbnRhY3Qtc3VibWl0IHsgcGFkZGluZzoxMHB4IDE1cHg7IGRpc3BsYXk6YmxvY2s7IGZsb2F0OmxlZnQ7IHdpZHRoOjEwMCU7IGJvcmRlci1jb2xvcjojZmZmZmZmOyBiYWNrZ3JvdW5kOiMxMDEwMTA7IHRyYW5zaXRpb246YWxsIDAuMjVzOyBjb2xvcjojZmZmZmZmOyBmb250LXdlaWdodDo2MDA7IG1hcmdpbjowOyBib3JkZXI6MXB4IHNvbGlkOyB0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7IGJvcmRlci1yYWRpdXM6M3B4OyBmb250LXNpemU6MS41NjNyZW0gOyB9IC5jb250YWN0LXN1Ym1pdDpob3ZlciB7IGN1cnNvcjpwb2ludGVyOyBib3JkZXItY29sb3I6I2ZmZmZmZjsgYmFja2dyb3VuZC1jb2xvcjojOTEwOTJkOyBjb2xvcjojZmZmZmZmOyB9IC5jb250YWN0cG9wdXAtZm9vdGVyIHsgfSAuY29udGFjdHBvcHVwLWZvb3RlciAuYnRuLXdyYXBwZXIgeyBwYWRkaW5nOjEwcHg7IH0gI2NvbnRhY3Rwb3B1cCAuanFUcmFuc2Zvcm1JbnB1dElubmVyIGRpdiB7IGhlaWdodDozMHB4OyB9ICNjb250YWN0cG9wdXAgLmpxVHJhbnNmb3JtSW5wdXRJbm5lciBkaXYudmFsaWRpdHktZXJyb25lb3VzIHsgd2lkdGg6aW5oZXJpdDsgfQovKiogL2Nzcy9kaXZfdGFibGVzLmNzcyAqKi8KZGl2LmRpdlRhYmxlVmlld3sgZmxvYXQ6bGVmdDsgd2lkdGg6MTAwJTsgfSBkaXYuZGl2VGFibGVWaWV3IGRpdi5kaXZUYWJsZVdyYXBlcnsgfSBkaXYuZGl2VGFibGVWaWV3IGRpdi5kaXZUaXRsZXsgZGlzcGxheTpibG9jazsgZm9udC13ZWlnaHQ6Ym9sZDsgdGV4dC1hbGlnbjpsZWZ0OyBmb250LXNpemU6MC45MzhyZW0gOyBwYWRkaW5nOjMwcHggMHB4IDEwcHggMTBweDsgY29sb3I6IzEwMTAxMDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHRleHQtdHJhbnNmb3JtOnZhcigtLXR4dC11cHBlcik7IGhlaWdodDphdXRvOyB9IGRpdi5kaXZUYWJsZVZpZXcgZGl2LmRpdlRhYmxlT3V0ZXJ7IGJvcmRlcjoxcHggc29saWQgI2RkZDsgcGFkZGluZzowOyBib3JkZXItcmFkaXVzOjhweDsgbWFyZ2luOjA7IGJhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsIDI1NSwgMjU1LCAwLjc1KTsgb3ZlcmZsb3c6aGlkZGVuOyB9IGRpdi5kaXZUYWJsZVZpZXcgZGl2LmRpdlRhYmxleyBkaXNwbGF5OnRhYmxlOyB3aWR0aDoxMDAlOyBwYWRkaW5nOjA7IG1hcmdpbjowOyB9IGRpdi5kaXZUYWJsZVZpZXcgZGl2LmRpdkhlYWRpbmd7IGRpc3BsYXk6dGFibGUtcm93OyBmb250LXdlaWdodDppbml0aWFsOyB0ZXh0LWFsaWduOmNlbnRlcjsgZm9udC13ZWlnaHQ6Ym9sZDsgaGVpZ2h0OjQ1cHg7IH0gZGl2LmRpdlRhYmxlVmlldyBkaXYuZGl2Um93eyBkaXNwbGF5OnRhYmxlLXJvdzsgd2lkdGg6MTAwJTsgaGVpZ2h0OjY1cHg7IH0gZGl2LmRpdlRhYmxlVmlldyBkaXYuZGl2Q2VsbHsgZGlzcGxheTp0YWJsZS1jZWxsOyBib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZGRkOyB0ZXh0LWFsaWduOmNlbnRlcjsgcGFkZGluZzoxNXB4IDE1cHggMjVweCAxNXB4OyBib3JkZXItcmlnaHQ6MXB4IHNvbGlkICNkZGQ7IGNvbG9yOiMxMDEwMTA7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IH0gZGl2LmRpdlRhYmxlVmlldyBkaXYuZGl2Q2VsbDpsYXN0LWNoaWxkeyBib3JkZXItcmlnaHQ6MXB4IHNvbGlkIHRyYW5zcGFyZW50OyB9IGRpdi5kaXZUYWJsZVZpZXcgZGl2LmRpdkhlYWRpbmcgZGl2LmRpdkNlbGx7IHBhZGRpbmc6MTBweCAxNXB4OyBiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LCAyNTUsIDI1NSwgMS4wKTsgfSBkaXYuZGl2VGFibGVWaWV3IGRpdi5kaXZIZWFkaW5nIGRpdi5kaXZDZWxsOm50aC1jaGlsZChldmVuKXsgYmFja2dyb3VuZC1jb2xvcjojZWVlOyB9IGRpdi5kaXZUYWJsZVZpZXcgZGl2LmRpdkhlYWRpbmcgZGl2LmRpdkNlbGw6bGFzdC1jaGlsZHsgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6OHB4OyB9IGRpdi5kaXZUYWJsZVZpZXcgZGl2LmRpdkhlYWRpbmcgZGl2LmRpdkNlbGw6Zmlyc3QtY2hpbGR7IGJvcmRlci10b3AtbGVmdC1yYWRpdXM6OHB4OyB9IGRpdi5kaXZUYWJsZVZpZXcgZGl2LmRpdlJvdzpsYXN0LWNoaWxkIGRpdi5kaXZDZWxseyBib3JkZXItYm90dG9tOjBweDsgfSBkaXYuZGl2VGFibGVWaWV3IGRpdi5kaXZSb3cgZGl2LmRpdkNlbGx7IGJhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpOyB9IGRpdi5kaXZUYWJsZVZpZXcgZGl2LmRpdlJvdyBkaXYuZGl2Q2VsbDpudGgtY2hpbGQoZXZlbil7IGJhY2tncm91bmQtY29sb3I6I2Y2ZjdmODsgfQovKiogL2Nzcy9jcmVkaXRTY29yZVBvcHVwLmNzcyAqKi8KI2NyZWRpdFNjb3JlUG9wdXBDb250YWluZXJ7IGJhY2tncm91bmQ6d2hpdGU7IH0gI2NyZWRpdFNjb3JlUG9wdXBDb250YWluZXIgc3BhbnsgbWFyZ2luOjA7IHBhZGRpbmc6MDsgZm9udC1zaXplOjEuMzEzcmVtIDsgfSAjY3JlZGl0U2NvcmVQb3B1cENvbnRhaW5lciBzcGFuLmNyZWRpdFNjb3JlR3JlZW5Db2xvcnsgY29sb3I6IzkxMGEyZDsgZm9udC13ZWlnaHQ6Ym9sZDsgfSAjY3JlZGl0U2NvcmVQb3B1cENvbnRhaW5lciBzcGFuLmNyZWRpdFNjb3JlQm9sZHsgZm9udC13ZWlnaHQ6Ym9sZDsgfSAuY3JlZGl0U2NvcmVfYnRueyBjb2xvcjojZmZmZmZmOyBiYWNrZ3JvdW5kOiM5MTBhMmQ7IH0gLmNyZWRpdFNjb3JlSW1hZ2V7IGhlaWdodDoyMzBweDsgfSAjY3JlZGl0U2NvcmVQb3B1cENvbnRhaW5lciBkaXYuc2NvcmVDcmVkaXRUaXRsZXsgZm9udC1zaXplOjEuNXJlbSA7IG1hcmdpbi10b3A6NTVweDsgfSAjY3JlZGl0U2NvcmVQb3B1cENvbnRhaW5lciBkaXYuc2NvcmVDcmVkaXRJbWFnZXsgdGV4dC1hbGlnbjpyaWdodDsgfSAjY3JlZGl0U2NvcmVQb3B1cENvbnRhaW5lciBzcGFuLmNyZWRpdFNjb3JlVGl0bGVGcmVleyBmb250LXNpemU6Mi44MTNyZW0gOyB0ZXh0LXNoYWRvdzoycHggMDsgfSAjY3JlZGl0U2NvcmVQb3B1cENvbnRhaW5lciBzcGFuLmNyZWRpdFNjb3JlVGl0bGVTY29yZXsgZm9udC1zaXplOjEuODEzcmVtIDsgdGV4dC1zaGFkb3c6MS40cHggMDsgfSAjY3JlZGl0U2NvcmVQb3B1cENvbnRhaW5lciBpbnB1dHsgaGVpZ2h0OjMycHg7IGZvbnQtc2l6ZTowLjkzOHJlbSA7IHdpZHRoOjE2MnB4OyBwYWRkaW5nOjAgMTBweDsgbWFyZ2luLWJvdHRvbToxMHB4OyBib3JkZXI6MXB4IHNvbGlkICNlZWVlZWU7IGJveC1zaXppbmc6Y29udGVudC1ib3g7IH0gI2NyZWRpdFNjb3JlUG9wdXBDb250YWluZXIgLmNyZWRpdFNjb3JlQWRkcmVzc3sgd2lkdGg6MzkzcHg7IH0gI2NyZWRpdFNjb3JlUG9wdXBDb250YWluZXIgLmNyZWRpdFNjb3JlX2J0bnsgd2lkdGg6MTQ1cHg7IHRleHQtYWxpZ246Y2VudGVyOyB9ICNjcmVkaXRTY29yZVBvcHVwQ29udGFpbmVyIGRpdi5jcmVkaXRTY29yZUV4dHJhVGV4dHsgdGV4dC1hbGlnbjpjZW50ZXI7IH0gI2NyZWRpdFNjb3JlUG9wdXBDb250YWluZXIgZGl2LmNyZWRpdFNjb3JlQ29uc2VudE1lc3NhZ2V7IGNvbG9yOiNiM2IzYjM7IGZvbnQtc2l6ZTowLjc1cmVtIDsgdGV4dC1hbGlnbjpjZW50ZXI7IG1hcmdpbi10b3A6MnB4OyB9ICNjcmVkaXRTY29yZVBvcHVwQ29udGFpbmVyIC5jcmVkaXRTY29yZUltYWdleyBiYWNrZ3JvdW5kLWNvbG9yOiMxMDEwMTA7IH0gLnBhYy1jb250YWluZXIgeyB6LWluZGV4OjEwMDAwMjE7IH0KLyoqIC9jc3MvbmViQ2FsL25lYkNhbC5jc3MgKiovCi5uZWJDYWwgKiB7IG92ZXJmbG93OmhpZGRlbjsgcGFkZGluZzowOyBtYXJnaW46MDsgbGluZS1oZWlnaHQ6MTAwJTsgYmFja2dyb3VuZC1jb2xvciA6d2hpdGU7IH0gLm5lYkNhbCAuY2FsLWhlYWRlciAuY2FsLWFycm93LWxlZnQsIC5uZWJDYWwgLmNhbC1oZWFkZXIgLmNhbC1hcnJvdy1yaWdodCB7IGN1cnNvcjpwb2ludGVyO30gLm5lYkNhbCAuY2FsLWhlYWRlciAuY2FsLWFycm93LWxlZnQgeyBmbG9hdDpsZWZ0OyB9IC5uZWJDYWwgLmNhbC1oZWFkZXIgLmNhbC1hcnJvdy1sZWZ0OmJlZm9yZSB7IGNvbnRlbnQ6JzwnOyBmb250LXdlaWdodDpib2xkOyBjb2xvcjojNTIzYTI5OyB9IC5uZWJDYWwgLmNhbC1oZWFkZXIgLmNhbC1hcnJvdy1yaWdodCB7IGZsb2F0OnJpZ2h0OyB9IC5uZWJDYWwgLmNhbC1oZWFkZXIgLmNhbC1hcnJvdy1yaWdodDpiZWZvcmUgeyBjb250ZW50Oic+JzsgZm9udC13ZWlnaHQ6Ym9sZDsgY29sb3I6IzUyM2EyOTsgfSAubmViQ2FsIC5jYWwtaGVhZGVyIC5jYWwtbGFiZWwgeyBkaXNwbGF5OmlubGluZS1ibG9jazsgb3ZlcmZsb3c6dmlzaWJsZTsgd2lkdGg6MTQ2cHg7IH0gLm5lYkNhbCAuY2FsLWhlYWRlciAuY2FsLWxhYmVsLmNhbC1jbGlja2FibGUgeyBjdXJzb3I6cG9pbnRlcjsgfSAubmViQ2FsIC5jYWwtYm9keSB7IHBvc2l0aW9uOnJlbGF0aXZlOyB9IC5uZWJDYWwgLmNhbC1ib2R5IC5jYWwtaW5uZXIgLmNhbC1jb250YWluZXIgeyBwb3NpdGlvbjphYnNvbHV0ZTsgbGVmdDowOyB9IC5uZWJDYWwgLmNhbC1ib2R5IC5jYWwtaW5uZXIgLmNhbC1jb250YWluZXIgLmNhbC1yb3cgZGl2IHsgZmxvYXQ6bGVmdDsgfSAubmViQ2FsIC5jYWwtYm9keSAuY2FsLWlubmVyIC5jYWwtY29udGFpbmVyLmNhbC1tb250aC5jYWwtcGlja2FibGUgLmNhbC1yb3cgZGl2LCAubmViQ2FsIC5jYWwtYm9keSAuY2FsLWlubmVyIC5jYWwtY29udGFpbmVyLmNhbC15ZWFyLWRlY2FkZSAuY2FsLXJvdyBkaXYgeyBjdXJzb3I6cG9pbnRlcjt9IC5uZWJDYWwgeyBjdXJzb3I6ZGVmYXVsdDsgcG9zaXRpb246YWJzb2x1dGU7IHotaW5kZXg6MTAwMDAyMDsgdGV4dC1hbGlnbjpjZW50ZXI7IHdpZHRoOjI5MHB4OyBoZWlnaHQ6MjE1cHg7IGZvbnQtc2l6ZTowLjkzOHJlbSA7IGNvbG9yOiM1MjNhMjk7IH0gLm5lYkNhbC5pbmxpbmUgeyBwb3NpdGlvbjpyZWxhdGl2ZTsgfSAubmViQ2FsLmRlZmF1bHQgLmNhbC13cmFwcGVyIHsgcGFkZGluZzowIDRweDsgYm9yZGVyOnNvbGlkIDFweCAjZGRkZWQ5OyAtbW96LWJveC1zaGFkb3c6MHB4IDBweCA0cHggMnB4ICNkOGQ4ZDg7LXdlYmtpdC1ib3gtc2hhZG93OjBweCAwcHggNHB4IDJweCAjZDhkOGQ4O2JveC1zaGFkb3c6MHB4IDBweCA0cHggMnB4ICNkOGQ4ZDg7fSAubmViQ2FsLmRlZmF1bHQgLmNhbC1oZWFkZXIgeyBoZWlnaHQ6MjVweDsgfSAubmViQ2FsLmRlZmF1bHQgLmNhbC1oZWFkZXIgLmNhbC1hcnJvdy1sZWZ0LCAubmViQ2FsLmRlZmF1bHQgLmNhbC1oZWFkZXIgLmNhbC1hcnJvdy1yaWdodCB7IHdpZHRoOjEycHg7IGhlaWdodDoxM3B4OyBtYXJnaW46NnB4IDdweDsgfSAubmViQ2FsLmRlZmF1bHQgLmNhbC1oZWFkZXIgLmNhbC1hcnJvdy1sZWZ0IHsgfSAubmViQ2FsLmRlZmF1bHQgLmNhbC1oZWFkZXIgLmNhbC1hcnJvdy1sZWZ0OmhvdmVyIHsgfSAubmViQ2FsLmRlZmF1bHQgLmNhbC1oZWFkZXIgLmNhbC1hcnJvdy1yaWdodCB7IH0gLm5lYkNhbC5kZWZhdWx0IC5jYWwtaGVhZGVyIC5jYWwtYXJyb3ctcmlnaHQ6aG92ZXIgeyB9IC5uZWJDYWwuZGVmYXVsdCAuY2FsLWhlYWRlciAuY2FsLWxhYmVsIHsgbGluZS1oZWlnaHQ6MjVweDsgY29sb3I6IzUyM2EyOTsgdGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlOyB9IC5uZWJDYWwuZGVmYXVsdCAuY2FsLWhlYWRlciAuY2FsLWxhYmVsLmNhbC1jbGlja2FibGUgeyBjb2xvcjojMDhhNTNjOyB9IC5uZWJDYWwuZGVmYXVsdCAuY2FsLWhlYWRlciAuY2FsLWxhYmVsLmNhbC1jbGlja2FibGU6aG92ZXIgeyB0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lOyB9IC5uZWJDYWwuZGVmYXVsdCAuY2FsLWJvZHkgeyBoZWlnaHQ6MTgwcHg7IH0gLm5lYkNhbC5kZWZhdWx0IC5jYWwtYm9keSAuY2FsLWlubmVyIC5jYWwtY29udGFpbmVyIHsgd2lkdGg6MjkwcHg7IGhlaWdodDoxODBweDsgfSAubmViQ2FsLmRlZmF1bHQgLmNhbC1ib2R5IC5jYWwtaW5uZXIgLmNhbC1jb250YWluZXIgLmNhbC1yb3cgeyB3aWR0aDoyOTBweDsgfSAubmViQ2FsLmRlZmF1bHQgLmNhbC1ib2R5IC5jYWwtaW5uZXIgLmNhbC1jb250YWluZXIuY2FsLXllYXItZGVjYWRlIC5jYWwtcm93LmNhbC1vZGQgZGl2IHsgbWFyZ2luOjVweDsgYmFja2dyb3VuZC1jb2xvcjojZGVkZWRlO2JvcmRlcjoxcHggc29saWQgI2Q5ZDlkOTt9IC5uZWJDYWwuZGVmYXVsdCAuY2FsLWJvZHkgLmNhbC1pbm5lciAuY2FsLWNvbnRhaW5lci5jYWwteWVhci1kZWNhZGUgLmNhbC1yb3cuY2FsLWV2ZW4gZGl2IHsgbWFyZ2luOjVweDsgYmFja2dyb3VuZC1jb2xvcjojZjBmMGYwO2JvcmRlcjoxcHggc29saWQgI2VjZWNlYzt9IC5uZWJDYWwuZGVmYXVsdCAuY2FsLWJvZHkgLmNhbC1pbm5lciAuY2FsLWNvbnRhaW5lciAuY2FsLXJvdyBkaXYuY2FsLXRvZGF5IHsgdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTsgfSAubmViQ2FsLmRlZmF1bHQgLmNhbC1ib2R5IC5jYWwtaW5uZXIgLmNhbC1jb250YWluZXIgLmNhbC1yb3cgZGl2LmNhbC1zZWxlY3RlZCB7IG1hcmdpbi1sZWZ0OjVweDsgbWFyZ2luLXJpZ2h0OjVweDsgaGVpZ2h0OjIwcHg7Zm9udC1zaXplOjFyZW0gO2ZvbnQtd2VpZ2h0OjYwMDsgY29sb3I6I2ZmZiAhaW1wb3J0YW50O3RleHQtc2hhZG93OjFweCAxcHggMHB4ICMzOWE2NjM7IGJhY2tncm91bmQtY29sb3I6IzU0YmIwMDstd2Via2l0LWJvcmRlci1yYWRpdXM6NXB4Oy1tb3otYm9yZGVyLXJhZGl1czo1cHg7Ym9yZGVyLXJhZGl1czo1cHg7fSAubmViQ2FsLmRlZmF1bHQgLmNhbC1ib2R5IC5jYWwtaW5uZXIgLmNhbC1jb250YWluZXIgLmNhbC1yb3cgZGl2LmNhbC1ub24tc2VsZWN0YWJsZSwgLm5lYkNhbC5kZWZhdWx0IC5jYWwtYm9keSAuY2FsLWlubmVyIC5jYWwtY29udGFpbmVyIC5jYWwtcm93IGRpdi5jYWwtbm9uLXNlbGVjdGFibGU6aG92ZXIgeyBjb2xvcjojYmRiZGJkICFpbXBvcnRhbnQ7IGN1cnNvcjpkZWZhdWx0ICFpbXBvcnRhbnQ7IH0gLm5lYkNhbC5kZWZhdWx0IC5jYWwtYm9keSAuY2FsLWlubmVyIC5jYWwtY29udGFpbmVyLmNhbC1tb250aCAuY2FsLXJvdy5hIGRpdiB7IGN1cnNvcjpkZWZhdWx0ICFpbXBvcnRhbnQ7IGNvbG9yOiMzNzliNTcgIWltcG9ydGFudDt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7IH0gLm5lYkNhbC5kZWZhdWx0IC5jYWwtYm9keSAuY2FsLWlubmVyIC5jYWwtY29udGFpbmVyLmNhbC1tb250aCAuY2FsLXJvdyB7IGhlaWdodDoyNnB4OyB9IC5uZWJDYWwuZGVmYXVsdCAuY2FsLWJvZHkgLmNhbC1pbm5lciAuY2FsLWNvbnRhaW5lci5jYWwtbW9udGggLmNhbC1yb3cgZGl2IHsgbWFyZ2luLXRvcDozcHg7IHdpZHRoOjQwcHg7IH0gLm5lYkNhbC5kZWZhdWx0IC5jYWwtYm9keSAuY2FsLWlubmVyIC5jYWwtY29udGFpbmVyLmNhbC1tb250aCAuY2FsLXJvdyBkaXYuY2FsLXNlbGVjdGVkIHsgbWFyZ2luLXRvcDozcHg7IHdpZHRoOjMwcHg7IH0gLm5lYkNhbC5kZWZhdWx0IC5jYWwtYm9keSAuY2FsLWlubmVyIC5jYWwtY29udGFpbmVyLmNhbC1tb250aCAuY2FsLXJvdyBkaXYuY2FsLWZpcnN0IHsgcGFkZGluZy1sZWZ0OjE2cHg7IH0gLm5lYkNhbC5kZWZhdWx0IC5jYWwtYm9keSAuY2FsLWlubmVyIC5jYWwtY29udGFpbmVyLmNhbC1tb250aCAuY2FsLXJvdyBkaXYuY2FsLWxhc3QgeyBwYWRkaW5nLXJpZ2h0OjE2cHg7IH0gLm5lYkNhbC5kZWZhdWx0IC5jYWwtYm9keSAuY2FsLWlubmVyIC5jYWwtY29udGFpbmVyLmNhbC1tb250aCAuY2FsLXJvdyBkaXYuY2FsLW91dHNpZGUgeyBjb2xvcjojZGVkZWRlOyB9IC5uZWJDYWwuZGVmYXVsdCAuY2FsLWJvZHkgLmNhbC1pbm5lciAuY2FsLWNvbnRhaW5lci5jYWwtbW9udGggLmNhbC1yb3cuY2FsLWV2ZW4gZGl2LmNhbC1vdXRzaWRlIHsgY29sb3I6I2NlY2VjZTsgfSAubmViQ2FsLmRlZmF1bHQgLmNhbC1ib2R5IC5jYWwtaW5uZXIgLmNhbC1jb250YWluZXIuY2FsLW1vbnRoIC5jYWwtcm93LmEgZGl2IHsgY29sb3I6IzljOWM5YzsgfSAubmViQ2FsLmRlZmF1bHQgLmNhbC1ib2R5IC5jYWwtaW5uZXIgLmNhbC1jb250YWluZXIuY2FsLXllYXItZGVjYWRlIC5jYWwtcm93IHsgaGVpZ2h0OjQycHg7IH0gLm5lYkNhbC5kZWZhdWx0IC5jYWwtYm9keSAuY2FsLWlubmVyIC5jYWwtY29udGFpbmVyLmNhbC15ZWFyLWRlY2FkZSAuY2FsLXJvdyBkaXYgeyB3aWR0aDo4MHB4O2xpbmUtaGVpZ2h0OjI3cHg7IGhlaWdodDoyN3B4OyB9IC5uZWJDYWwuZGVmYXVsdCAuY2FsLWJvZHkgLmNhbC1pbm5lciAuY2FsLWNvbnRhaW5lci5jYWwteWVhci1kZWNhZGUgLmNhbC1yb3cgZGl2LmNhbC1maXJzdCB7IG1hcmdpbi1sZWZ0OjE2cHg7IH0gLm5lYkNhbC5kZWZhdWx0IC5jYWwtYm9keSAuY2FsLWlubmVyIC5jYWwtY29udGFpbmVyLmNhbC15ZWFyLWRlY2FkZSAuY2FsLXJvdyBkaXYuY2FsLWxhc3QgeyBtYXJnaW4tcmlnaHQ6MTZweDsgfSAubmViQ2FsLmRlZmF1bHQgLmNhbC1ib2R5IC5jYWwtaW5uZXIgLmNhbC1jb250YWluZXIuY2FsLXllYXItZGVjYWRlIC5jYWwtcm93IGRpdi5jYWwtc2VsZWN0ZWQgeyBiYWNrZ3JvdW5kLWNvbG9yOiM1NGJiMDA7fSAubmViQ2FsLmRlZmF1bHQgLmNhbC1ib2R5IC5jYWwtaW5uZXIgLmNhbC1jb250YWluZXIuY2FsLW1vbnRoLmNhbC1waWNrYWJsZSAuY2FsLXJvdyBkaXY6aG92ZXIsIC5uZWJDYWwuZGVmYXVsdCAuY2FsLWJvZHkgLmNhbC1pbm5lciAuY2FsLWNvbnRhaW5lci5jYWwteWVhci1kZWNhZGUgLmNhbC1yb3cgZGl2OmhvdmVyIHsgY29sb3I6I2IyY2ZlMTsgfSAubmViQ2FsLmRlZmF1bHQgLmNhbC1mb290ZXIgeyBoZWlnaHQ6NHB4OyB9Ci8qKiAvY3NzL2ZpbmFuY2VfbXVsdGlzdGVwLmNzcyAqKi8KI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm17IHRleHQtYWxpZ246Y2VudGVyOyBoZWlnaHQ6MTAwJTsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAuZmluYW5jZU11bHRpc3RlcE5ld0NhbGN1bGF0b3J7IHRleHQtYWxpZ246bGVmdDsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSBoMnsgdGV4dC1hbGlnbjpjZW50ZXI7IG1hcmdpbi10b3A6MjVweDsgbWFyZ2luLWJvdHRvbToyNXB4OyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIGgzeyB0ZXh0LWFsaWduOmNlbnRlcjsgbWFyZ2luLXRvcDoyNXB4OyBtYXJnaW4tYm90dG9tOjI1cHg7IGZvbnQtc2l6ZToxLjEyNXJlbSA7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm1fbmV4dF9idG4geyB0ZXh0LWFsaWduOmNlbnRlcjsgbWFyZ2luLXRvcDoyNXB4OyBtYXJnaW4tYm90dG9tOjI1cHg7IHdpZHRoOjEwMCU7IHBvc2l0aW9uOmFic29sdXRlOyBsZWZ0OjA7IGJvdHRvbTowOyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtICNmaW5hbmNlX211bHRpc3RlcF9mb3JtX25leHRfYnRuIGJ1dHRvbnsgcGFkZGluZzoxN3B4IDY1cHggMTVweCA2NXB4OyBmb250LXNpemU6MS4yNXJlbSA7IGZvbnQtd2VpZ2h0OjQwMDsgd2lkdGg6MjgwcHg7IGJhY2tncm91bmQtY29sb3I6d2hpdGU7IGNvbG9yOiNDMEMwQzA7IGJvcmRlcjpub25lOyBjdXJzb3I6cG9pbnRlcjsgYm9yZGVyOjFweCBzb2xpZCAjQzBDMEMwOyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtICNmaW5hbmNlX211bHRpc3RlcF9mb3JtX25leHRfYnRuIGJ1dHRvbi5pc1ZhbGlkeyBiYWNrZ3JvdW5kLWNvbG9yOiMxMDEwMTA7IGNvbG9yOiNmZmZmZmY7IGJvcmRlcjoxcHggc29saWQgIzAwMDAwMDsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSBpbnB1dFt0eXBlPSJyYWRpbyJdeyBvcGFjaXR5OjA7IHdpZHRoOjA7IGhlaWdodDowOyBwb3NpdGlvbjphYnNvbHV0ZTsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSBsYWJlbC5yYWRpb19sYWJlbCB7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgcGFkZGluZzoyMHB4IDEwcHg7IGN1cnNvcjpwb2ludGVyOyBvcGFjaXR5OjE7IHRyYW5zaXRpb246YWxsIDFzIGVhc2UtaW4tb3V0OyBtYXJnaW4tYm90dG9tOjE1cHg7IGJvcmRlcjoxcHggc29saWQgI2NjY2NjYzsgYm9yZGVyLWJvdHRvbS13aWR0aDo1cHg7IHdpZHRoOjEwMCU7IGZsb2F0OmxlZnQ7IGJhY2tncm91bmQ6I2ZmZmZmZjsgZGlzcGxheTpmbGV4OyBhbGlnbi1pdGVtczpjZW50ZXI7IGp1c3RpZnktY29udGVudDpjZW50ZXI7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gaW5wdXRbdHlwZT0icmFkaW8iXTpjaGVja2VkIH4gbGFiZWwucmFkaW9fbGFiZWwgeyBib3JkZXI6MXB4IHNvbGlkICMwMDA7IGJvcmRlci1ib3R0b20td2lkdGg6NXB4OyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIGxhYmVsLnJhZGlvX2xhYmVsMiB7IGJvcmRlcjoxcHggc29saWQgcmdiYSgyNTAsIDI1MCwgMjUwLCAwLjE1KTsgYm94LXNpemluZzpib3JkZXItYm94OyBwYWRkaW5nOjEwcHggMnB4IDEwcHggMnB4OyBjdXJzb3I6cG9pbnRlcjsgb3BhY2l0eToxOyB0cmFuc2l0aW9uOmFsbCAxcyBlYXNlLWluLW91dDsgbWFyZ2luLWJvdHRvbTo1cHg7IGJvcmRlcjoxcHggc29saWQgI2NjY2NjYzsgYm9yZGVyLWJvdHRvbS13aWR0aDo1cHg7IHdpZHRoOjEwMCU7IGZsb2F0OmxlZnQ7IGJhY2tncm91bmQ6I2ZmZmZmZjsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSBpbnB1dFt0eXBlPSJyYWRpbyJdOmNoZWNrZWQgfiBsYWJlbC5yYWRpb19sYWJlbDIgeyBib3JkZXI6MXB4IHNvbGlkICMwMDA7IGJvcmRlci1ib3R0b20td2lkdGg6NXB4OyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC5yYWRpb19kaXZ7IHdpZHRoOjQ1JTsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAucmFkaW9fZGl2Mnsgd2lkdGg6MzIlIWltcG9ydGFudDsgbWFyZ2luLXJpZ2h0OjVweDsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAucmFkaW9fZGl2MjpudGgtb2YtdHlwZShvZGQpeyBmbG9hdDpsZWZ0IWltcG9ydGFudDsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAucmFkaW9fZGl2MjpudGgtb2YtdHlwZShldmVuKXsgZmxvYXQ6bGVmdCFpbXBvcnRhbnQ7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLnJhZGlvX2RpdjpudGgtb2YtdHlwZShvZGQpeyBmbG9hdDpsZWZ0OyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC5yYWRpb19kaXY6bnRoLW9mLXR5cGUoZXZlbil7IGZsb2F0OnJpZ2h0OyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIGlucHV0W3R5cGU9InRleHQiXXsgd2lkdGg6NDUwcHg7IGhlaWdodDo0MHB4OyB0ZXh0LWFsaWduOmNlbnRlcjsgZm9udC1zaXplOjEuMjVyZW0gOyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIGlucHV0W3R5cGU9Im51bWJlciJdOm5vdCguZmluYW5jZU11bHRpc3RlcE5ld0NhbGN1bGF0b3IgaW5wdXRbdHlwZT0ibnVtYmVyIl0peyBkaXNwbGF5OmJsb2NrOyBmbG9hdDpsZWZ0OyBib3JkZXI6MXB4IHNvbGlkICNkZGRkZGQ7IHdpZHRoOjE0MHB4OyBib3JkZXItcmlnaHQ6bm9uZTsgbWFyZ2luOjAgMCAxMHB4OyBsaW5lLWhlaWdodDozMHB4OyBoZWlnaHQ6NzVweDsgcGFkZGluZzowOyB0ZXh0LWFsaWduOmNlbnRlcjsgZm9udC1zaXplOjEuNXJlbSA7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gaW5wdXRbbmFtZT0ibW9udGhseUluY29tZSJdOmJlZm9yZXsgY29udGVudDoiJCI7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLm51bWJlci10eXBlLWxhYmVseyBkaXNwbGF5OmJsb2NrOyBmbG9hdDpsZWZ0OyBib3JkZXI6MXB4IHNvbGlkICNkZGRkZGQ7IHdpZHRoOjIzMHB4OyBjb2xvcjojMjUyNTI1OyBoZWlnaHQ6NzVweDsgbGluZS1oZWlnaHQ6NzVweDsgZm9udC1zaXplOjEuNXJlbSA7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLm51bWJlci10eXBlLWRpdnsgZmxvYXQ6bGVmdDsgbGVmdDoxMyU7IG1hcmdpbi10b3A6MjBweDsgcG9zaXRpb246cmVsYXRpdmU7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLmZpbmFuY2VfbXVsdGlzdGVwX3NlbGVjdF9jb250YWluZXJ7IG1hcmdpbi10b3A6MTBweDsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAuZmluYW5jZV9tdWx0aXN0ZXBfc2VsZWN0X2NvbnRhaW5lcl9kaXZ7IHdpZHRoOjEwMCU7IG1hcmdpbjowOyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC5maW5hbmNlX211bHRpc3RlcF9zZWxlY3RfY29udGFpbmVyIHNlbGVjdHsgY29sb3I6IzNjMzgzNjsgYm9yZGVyOjJweCBzb2xpZCAjMDAwMDAwOyBib3JkZXItcmFkaXVzOjVweDsgcGFkZGluZzoxMHB4IDEwcHg7IGZvbnQtc2l6ZToxcmVtIDsgYmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC45KTsgYmFja2dyb3VuZC1wb3NpdGlvbjo5NSUgNTAlOyB3aWR0aDoxNTBweDsgLXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7IC1tb3otYXBwZWFyYW5jZTpub25lOyBwYWRkaW5nLXJpZ2h0OjI3cHg7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLmZpbmFuY2VfbXVsdGlzdGVwX3NlbGVjdF9jb250YWluZXJfc2VsZWN0eyBwb3NpdGlvbjpyZWxhdGl2ZTsgd2lkdGg6MTUlOyBtYXJnaW46YXV0bzsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAuZmluYW5jZV9tdWx0aXN0ZXBfc2VsZWN0X2NvbnRhaW5lcl9zZWxlY3Q6YWZ0ZXIgeyBjb250ZW50OiIgIjsgaGVpZ2h0OjA7IHdpZHRoOjA7IGJvcmRlci1sZWZ0OjVweCBzb2xpZCB0cmFuc3BhcmVudDsgYm9yZGVyLXJpZ2h0OjVweCBzb2xpZCB0cmFuc3BhcmVudDsgYm9yZGVyLXRvcDo1cHggc29saWQgIzAwMDsgcG9zaXRpb246YWJzb2x1dGU7IHJpZ2h0OjE0cHg7IHRvcDoxN3B4OyB0cmFuc2l0aW9uOmFsbCAuM3MgbGluZWFyOyBwb2ludGVyLWV2ZW50czpub25lOyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIHNlbGVjdC5zdGVwMjRzZWxlY3R7IG1hcmdpbi10b3A6MTBweDsgd2lkdGg6NTAlOyB9IC5wYWMtY29udGFpbmVyIHsgei1pbmRleDoxMDAwMDIxOyB9IGlucHV0Ojotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uLCBpbnB1dDo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbiB7IC13ZWJraXQtYXBwZWFyYW5jZTpub25lOyBtYXJnaW46MDsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAjbXVsdGlzdGVwLW11bHRpYWRkcmVzcyBzZWxlY3QgeyBtYXgtd2lkdGg6MzM1cHg7IG1hcmdpbjowIGF1dG87IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gI211bHRpc3RlcC1tdWx0aWFkZHJlc3MgbGFiZWwgeyB0ZXh0LWFsaWduOmNlbnRlcjsgbWFyZ2luLXRvcDoyNXB4OyBtYXJnaW4tYm90dG9tOjI1cHg7IGZvbnQtc2l6ZToxLjEyNXJlbSA7IGRpc3BsYXk6YmxvY2s7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gI211bHRpc3RlcC1tdWx0aWFkZHJlc3MgI211dGxpQWRkcmVzc1N1Ym1pdCB7IGRpc3BsYXk6bm9uZTsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAuZmluYW5jZV9tdWx0aXN0ZXBfYmlydGhkYXRlX2lucHV0c3sgZGlzcGxheTppbmxpbmUtZmxleDsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAuZmluYW5jZV9tdWx0aXN0ZXBfYmlydGhkYXRlX2lucHV0X2RpdnsgbWFyZ2luOjIwcHg7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLmZpbmFuY2VfbXVsdGlzdGVwX2JpcnRoZGF0ZV9pbnB1dF9kaXYgbGFiZWx7IGZvbnQtc2l6ZToxLjEyNXJlbSA7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLmZpbmFuY2VfbXVsdGlzdGVwX2JpcnRoZGF0ZV9pbnB1dF9kaXYgaW5wdXRbdHlwZT0ibnVtYmVyIl17IHdpZHRoOjgwcHg7IGhlaWdodDo1MHB4OyBkaXNwbGF5OmJsb2NrOyBmbG9hdDpub25lOyBtYXJnaW4tdG9wOjEwcHg7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLmZpbmFuY2VfbXVsdGlzdGVwX2JpcnRoZGF0ZV9pbnB1dF9kaXYgaW5wdXRbdHlwZT0ibnVtYmVyIl0uYmlydGh5ZWFyeyB3aWR0aDoxMDBweDsgfSAucmV2ZWFsLW1vZGFsLmZpbmFuY2VfYmFja2dyb3VuZF9pbWFnZXsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvcG9wdXBzL2ZpbmFuY2Vwb3B1cC1iZy1kZXNrdG9wLmpwZycpOyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC5maW5hbmNlSWNvbkRpdnsgcG9zaXRpb246cmVsYXRpdmU7IGhlaWdodDoxMjBweDsgbWFyZ2luLWJvdHRvbToyMHB4OyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC5maW5hbmNlSWNvbkRpdiAuZmluYW5jZUNhbGN7IGZvbnQtc2l6ZToxMDBweDsgbGVmdDo0MCU7IHBvc2l0aW9uOmFic29sdXRlOyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC5maW5hbmNlSWNvbkRpdiAuZmluYW5jZUNhcnsgY29sb3I6IzAwMDAwMDsgZm9udC1zaXplOjEwMHB4OyBsZWZ0OjM5JTsgcG9zaXRpb246YWJzb2x1dGU7IHRvcDo1MHB4OyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC5lbXBsb3ltZW50VGV4dExhYmVseyB3aWR0aDoyMCU7IGFsaWduLXNlbGY6Y2VudGVyOyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC5lbXBsb3ltZW50VGV4dHsgd2lkdGg6MzclIWltcG9ydGFudDsgZm9udC1zaXplOjEuMTI1cmVtICFpbXBvcnRhbnQ7IGJvcmRlcjoxcHggc29saWQgI2NjY2NjYzsgbWFyZ2luLWJvdHRvbToxMHB4OyBtYXJnaW4tcmlnaHQ6MTBweDsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSBpbnB1dFt0eXBlPSJudW1iZXIiXS5lbXBsb3ltZW50U3RhdHVzVGltZXsgd2lkdGg6NTBweDsgaGVpZ2h0OjUwcHg7IGJvcmRlcjoxcHggc29saWQgI2E5YTlhOTsgYm9yZGVyLXJhZGl1czo1cHg7IGFsaWduLXNlbGY6Y2VudGVyOyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC5lbXBsb3ltZW50QWRkZWRJbmZveyB3aWR0aDoxMDAlIWltcG9ydGFudDsgcmVzaXplOm5vbmU7IG1hcmdpbi10b3A6MTBweDsgbWFyZ2luLWJvdHRvbToxMHB4OyBib3JkZXI6MXB4IHNvbGlkICNjY2NjY2M7IGZvbnQtc2l6ZTowLjkzOHJlbSAhaW1wb3J0YW50OyB9IC5mYWRlLWVudGVyLCAuZmFkZS1sZWF2ZSB7IG9wYWNpdHk6MDsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAuZW1wbG95bWVudEFkZGVkSW5mb0RpdnsgdGV4dC1hbGlnbjpsZWZ0OyB3aWR0aDo5NyUgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAuZW1wbG95bWVudFRleHRMYWJlbERpdnsgZGlzcGxheTpmbGV4OyB3aWR0aDo5NyUgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAuZmluYW5jZU11bHRpc3RlcFVzZWRDYWxjdWxhdG9yeyBtYXJnaW46MCAyMCU7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLmZpbmFuY2VNdWx0aXN0ZXBVc2VkQ2FsY3VsYXRvciAuY2FsYy1mb3JteyB3aWR0aDoxMDAlOyB0ZXh0LWFsaWduOmNlbnRlcjsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAuZmluYW5jZU11bHRpc3RlcFVzZWRDYWxjdWxhdG9yIC5jYWxjLWZvcm0gbGFiZWx7IG1hcmdpbi1ib3R0b206NXB4OyBwYWRkaW5nOjA7IGRpc3BsYXk6ZmxleDsgYWxpZ24taXRlbXM6Y2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjsgcG9zaXRpb246cmVsYXRpdmU7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLmZpbmFuY2VNdWx0aXN0ZXBVc2VkQ2FsY3VsYXRvciBzcGFueyBmb250LXNpemU6MC45MzhyZW0gOyB3aWR0aDo1MCU7IHRleHQtYWxpZ246bGVmdDsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAuZmluYW5jZU11bHRpc3RlcFVzZWRDYWxjdWxhdG9yIGlucHV0eyB0ZXh0LWFsaWduOmxlZnQ7IGhlaWdodDoyNXB4OyBmb250LXNpemU6MWVtOyBjb2xvcjpibGFjazsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAuZmluYW5jZU11bHRpc3RlcFVzZWRDYWxjdWxhdG9yIHNlbGVjdHsgaGVpZ2h0OjI4cHg7IGNvbG9yOmJsYWNrOyBmb250LXNpemU6MWVtOyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC5maW5hbmNlTXVsdGlzdGVwVXNlZENhbGN1bGF0b3IgLmVzdGltYXRlZFRleHR7IG1hcmdpbjowOyBmb250LXdlaWdodDo3MDA7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLmZpbmFuY2VNdWx0aXN0ZXBVc2VkQ2FsY3VsYXRvciAub3V0cHV0cHJpY2UtdHh0eyB3aWR0aDoyOCU7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLmZpbmFuY2VNdWx0aXN0ZXBVc2VkQ2FsY3VsYXRvciAudGF4ZVRleHR7IHBvc2l0aW9uOmFic29sdXRlOyByaWdodDotNTVweDsgd2lkdGg6Zml0LWNvbnRlbnQ7IG1hcmdpbjowOyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC5maW5hbmNlTXVsdGlzdGVwVXNlZENhbGN1bGF0b3IgLmlucHV0IHsgYm9yZGVyOjFweCBzb2xpZCAjOTk5OyBiYWNrZ3JvdW5kOiNlZWU7IHBhZGRpbmc6MC4yNXJlbTsgYm9yZGVyLXJhZGl1czowLjI1cmVtOyB3aWR0aDptaW4oNTAlLDZyZW0pOyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC5maW5hbmNlTXVsdGlzdGVwVXNlZENhbGN1bGF0b3IgLmNhbGMtZm9ybSBkaXYuZG9sbGFyU3BhbnsgZGlzcGxheTpjb250ZW50czsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAuZmluYW5jZU11bHRpc3RlcFVzZWRDYWxjdWxhdG9yIGRpdi5kb2xsYXJTcGFuIC5pbnB1dHsgcGFkZGluZy1sZWZ0OjEycHg7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLmZpbmFuY2VNdWx0aXN0ZXBVc2VkQ2FsY3VsYXRvciAuY2FsYy1mb3JtIGRpdi5kb2xsYXJTcGFuOjpiZWZvcmV7IGNvbnRlbnQ6IiQiOyBmb250LXNpemU6MWVtOyBwb3NpdGlvbjphYnNvbHV0ZTsgcmlnaHQ6ODVweDsgdG9wOjQ5JTsgdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSk7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLmZpbmFuY2VfbXVsdGlzdGVwX2NvbnNlbnRfdGV4dF9kaXZ7IG92ZXJmbG93LXk6c2Nyb2xsOyBoZWlnaHQ6Mjg1cHg7IHdpZHRoOjEwMCU7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLm11bHRpc3RlcFBheW1lbnRWZWhpY2xleyBmb250LXNpemU6aW5oZXJpdDsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAuZmluYW5jZU11bHRpc3RlcFVzZWRDYWxjdWxhdG9yIC5jYWxjLWZvcm0gLmxvYW5hbW91bnQsICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC5maW5hbmNlTXVsdGlzdGVwVXNlZENhbGN1bGF0b3IgLmNhbGMtZm9ybSAuaW50ZXJlc3RyYXRleyBib3JkZXI6MDsgYmFja2dyb3VuZC1jb2xvcjp1bnNldDsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAuZmluYW5jZU11bHRpc3RlcFVzZWRDYWxjdWxhdG9yIC5jYWxjLWZvcm0gaW5wdXQsICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC5maW5hbmNlTXVsdGlzdGVwVXNlZENhbGN1bGF0b3IgLmNhbGMtZm9ybSBzZWxlY3R7IGJhY2tncm91bmQtY29sb3I6I2ZmZjsgYm9yZGVyLXJhZGl1czowLjNyZW07IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLm11bHRpc3RlcEluaXRpYWxUaXRsZXsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zaXplOjEuMDYzcmVtIDsgbWFyZ2luLXRvcDowOyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIHNwYW4uaDItYWx0eyB0ZXh0LWFsaWduOmNlbnRlcjsgbWFyZ2luLWJvdHRvbToyNXB4OyBkaXNwbGF5OmJsb2NrOyBjb2xvcjp2YXIoLS1kZWZhdWx0LWJsYWNrKTsgbWFyZ2luLWxlZnQ6MDsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSBzcGFuLmgzLWFsdHsgdGV4dC1hbGlnbjpjZW50ZXI7IG1hcmdpbi10b3A6MTBweDsgbWFyZ2luLWJvdHRvbToyNXB4OyBmb250LXNpemU6MS4xMjVyZW0gOyBkaXNwbGF5OmJsb2NrOyBjb2xvcjp2YXIoLS1kZWZhdWx0LWJsYWNrKTsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAuaGlkZGVuSW5wdXR7IGRpc3BsYXk6bm9uZTsgfSAuZmluYW5jZU11bHRpc3RlcE5ld0NhbGN1bGF0b3IgLnBheW1lbnRDYWxjdWxhdG9ySW5jbHVkZVRheENoZWNrRGl2eyBwb3NpdGlvbjphYnNvbHV0ZTsgbWFyZ2luLXRvcDoxMHB4OyByaWdodDoxMDBweDsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAuZmluYW5jZU11bHRpc3RlcE5ld0NhbGN1bGF0b3IgLnBheW1lbnRDYWxjdWxhdG9yVHJhZGVJbkluaXRpYWx7IGZvbnQtc2l6ZTowLjY4OHJlbSA7IGJvcmRlcjoxcHggc29saWQgI2E5YTlhOTsgaGVpZ2h0OjM1cHg7IGJvcmRlci1yYWRpdXM6NXB4OyBiYWNrZ3JvdW5kLWNvbG9yOndoaXRlOyB3aWR0aDoxMjBweDsgdGV4dC1hbGlnbjpjZW50ZXI7IHRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7IHBhZGRpbmc6NHB4IDJweCA1cHg7IGN1cnNvcjpwb2ludGVyOyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC5maW5hbmNlTXVsdGlzdGVwTmV3Q2FsY3VsYXRvciAucGF5bWVudENhbGN1bGF0b3JUcmFkZUluRmluYWx7IGJvcmRlcjoxcHggc29saWQgI2E5YTlhOTsgaGVpZ2h0OjM1cHg7IGJvcmRlci1yYWRpdXM6NXB4OyBiYWNrZ3JvdW5kLWNvbG9yOndoaXRlOyB3aWR0aDoxMjBweDsgdGV4dC1hbGlnbjpjZW50ZXI7IHBhZGRpbmc6NXB4IDJweDsgYmFja2dyb3VuZC1pbWFnZTp1cmwoImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2ZXJzaW9uPScxLjEnIGhlaWdodD0nMjhweCcgd2lkdGg9Jzg1cHgnPjx0ZXh0IHg9JzYnIHk9JzIxJyBmaWxsPScnIGZvbnQtc2l6ZT0nMTYnIGZvbnQtZmFtaWx5PSdhcmlhbCc+JCIpOyBiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7IGZvbnQtc2l6ZToxLjA2M3JlbSA7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLmZpbmFuY2VNdWx0aXN0ZXBVc2VkQ2FsY3VsYXRvciAucGF5bWVudENhbGN1bGF0b3JUcmFkZUluSW5pdGlhbHsgZm9udC1zaXplOjAuNjI1cmVtIDsgYm9yZGVyOjFweCBzb2xpZCAjYTlhOWE5OyBoZWlnaHQ6MzVweDsgYm9yZGVyLXJhZGl1czo1cHg7IGJhY2tncm91bmQtY29sb3I6d2hpdGU7IHdpZHRoOjk2cHg7IHRleHQtYWxpZ246Y2VudGVyOyB0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lOyBwYWRkaW5nOjVweCAycHg7IGN1cnNvcjpwb2ludGVyOyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC5maW5hbmNlTXVsdGlzdGVwVXNlZENhbGN1bGF0b3IgLnBheW1lbnRDYWxjdWxhdG9yVHJhZGVJbkZpbmFseyBib3JkZXI6MXB4IHNvbGlkICNhOWE5YTk7IGhlaWdodDozNXB4OyBib3JkZXItcmFkaXVzOjVweDsgYmFja2dyb3VuZC1jb2xvcjp3aGl0ZTsgd2lkdGg6OTZweDsgdGV4dC1hbGlnbjpjZW50ZXI7IHBhZGRpbmc6NXB4IDJweDsgYmFja2dyb3VuZC1pbWFnZTp1cmwoImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2ZXJzaW9uPScxLjEnIGhlaWdodD0nMjhweCcgd2lkdGg9Jzg1cHgnPjx0ZXh0IHg9JzYnIHk9JzIxJyBmaWxsPScnIGZvbnQtc2l6ZT0nMTYnIGZvbnQtZmFtaWx5PSdhcmlhbCc+JCIpOyBiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7IGZvbnQtc2l6ZToxLjA2M3JlbSA7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLmZvcm1hdC1wcmljZXsgbWFyZ2luLWJvdHRvbTp1bnNldDsgbWFyZ2luLWxlZnQ6MC43cmVtOyB9IDppcyguRU5HTElTSCxbZGF0YS1sYW5nPSJlbiJdKSBsYWJlbCAuZm9ybWF0LXByaWNleyBtYXJnaW4tcmlnaHQ6MC4zcmVtOyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC52d0NvbnNlbnRUZXh0eyBoZWlnaHQ6MTYwcHg7IG92ZXJmbG93LXk6c2Nyb2xsOyBiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7IHBhZGRpbmc6MTBweCAxMHB4OyBsaW5lLWhlaWdodDoxLjUgIWltcG9ydGFudDsgfSAudndDb25zZW50VGV4dCBoMXsgZm9udC1zaXplOjEuMjVyZW0gIWltcG9ydGFudDsgZm9udC13ZWlnaHQ6NzAwICFpbXBvcnRhbnQ7IG1hcmdpbjowIDAgMTZweCAwICFpbXBvcnRhbnQ7IH0gLnZ3Q29uc2VudFRleHQgaDJ7IGZvbnQtc2l6ZToxcmVtICFpbXBvcnRhbnQ7IGZvbnQtd2VpZ2h0OjcwMCAhaW1wb3J0YW50OyBtYXJnaW46MjRweCAwIDEwcHggMCAhaW1wb3J0YW50OyB9IC52d0NvbnNlbnRUZXh0IHB7IGZvbnQtc2l6ZTowLjg3NXJlbSAhaW1wb3J0YW50OyBmb250LXdlaWdodDo0MDAgIWltcG9ydGFudDsgbGluZS1oZWlnaHQ6MS41ICFpbXBvcnRhbnQ7IG1hcmdpbjowIDAgMTJweCAwICFpbXBvcnRhbnQ7IHRleHQtYWxpZ246anVzdGlmeSAhaW1wb3J0YW50OyB9IC52d0NvbnNlbnRUZXh0IHVseyBtYXJnaW46OHB4IDAgMTZweCAyNHB4ICFpbXBvcnRhbnQ7IHBhZGRpbmc6MCAhaW1wb3J0YW50OyB9IC52d0NvbnNlbnRUZXh0IGxpeyBmb250LXNpemU6MC44NzVyZW0gIWltcG9ydGFudDsgZm9udC13ZWlnaHQ6NDAwICFpbXBvcnRhbnQ7IGxpbmUtaGVpZ2h0OjEuNSAhaW1wb3J0YW50OyBtYXJnaW46MCAwIDEycHggMCAhaW1wb3J0YW50OyB0ZXh0LWFsaWduOmp1c3RpZnkgIWltcG9ydGFudDsgfSAudndDb25zZW50VGV4dCBzdHJvbmd7IGZvbnQtd2VpZ2h0OjcwMCAhaW1wb3J0YW50OyB9IC52d0NvbnNlbnRUZXh0IGF7IHRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmUgIWltcG9ydGFudDsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAudndDb25zZW50RGl2c3sgbWFyZ2luLXRvcDoxMHB4OyBmb250LXNpemU6MC43NXJlbSA7IHRleHQtYWxpZ246bGVmdDsgfQovKiogL2Nzcy9wYXltZW50Q2FsY3VsYXRvci5jc3MgKiovCjppcygjcGF5bWVudENhbGN1bGF0b3JDb250YWluZXIsI2ZpbmFuY2VNdWx0aXN0ZXBOZXdDYWxjdWxhdG9yKS5jYWxjLW1vYmlsZSB7IC0td3JhcC1wYXltZW50czp3cmFwOyAtLW1vYmlsZS1kaXNwbGF5Om5vbmU7IC0tbW9iLWZ1bGwtd2lkdGg6MTAwJTsgLS1wYXltZW50LW1pbi13aWR0aDo2LjNyZW07IC0taGVhZGVyLWZvbnQtc2l6ZTp2YXIoLS1mczIpOyAtLWhlYWRlci1pY29uLXNpemU6dmFyKC0tZnM1KTsgfSAjcGF5bWVudENhbGN1bGF0b3JDb250YWluZXJ7IG1pbi1oZWlnaHQ6NDUwcHg7IGNvbG9yOmJsYWNrOyB9ICNwYXltZW50Q2FsY3VsYXRvclBvcHVwQ29udGFpbmVyeyBib3JkZXI6NHB4IHNvbGlkICMxMDEwMTA7IH0gI3BheW1lbnRDYWxjdWxhdG9yUG9wdXBDb250YWluZXI6aGFzKC5jYWxjLW1vYmlsZSl7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgfSAjcGF5bWVudENhbGN1bGF0b3JDb250YWluZXIuY2FsYy1tb2JpbGUgLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudENvbnRhaW5lciwgI2ZpbmFuY2VNdWx0aXN0ZXBOZXdDYWxjdWxhdG9yLmNhbGMtbW9iaWxlIC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRDb250YWluZXJ7IG92ZXJmbG93LXg6dmlzaWJsZTsgb3ZlcmZsb3cteTpzY3JvbGw7IGhlaWdodDozNzBweDsgZmxleC13cmFwOndyYXA7IH0gLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudENvbnRhaW5lciwgLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudENvbnRhaW5lcldpdGhUYXhlcyB7IG92ZXJmbG93LXg6c2Nyb2xsOyBkaXNwbGF5OmZsZXg7IGdhcDoxMHB4OyB9IC5maW5hbmNlTXVsdGlzdGVwTmV3Q2FsY3VsYXRvciAucGF5bWVudENhbGN1bGF0b3JQYXltZW50Q29udGFpbmVyLCAuZmluYW5jZU11bHRpc3RlcE5ld0NhbGN1bGF0b3IgLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudENvbnRhaW5lcldpdGhUYXhlcyB7IHdpZHRoOjEwMCU7IH0gLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudENvbnRhaW5lci5ib3hlczR7IHdpZHRoOjY0JTsgfSAuZmluYW5jZU11bHRpc3RlcE5ld0NhbGN1bGF0b3IgLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudENvbnRhaW5lci5ib3hlczQsIC5maW5hbmNlTXVsdGlzdGVwTmV3Q2FsY3VsYXRvciAucGF5bWVudENhbGN1bGF0b3JQYXltZW50Q29udGFpbmVyV2l0aFRheGVzLmJveGVzNHsgd2lkdGg6ODAlOyB9IC5yZXZlYWwtbW9kYWwgLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudENvbnRhaW5lciBzcGFuLCAucmV2ZWFsLW1vZGFsIC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRDb250YWluZXJXaXRoVGF4ZXMgc3BhbnsgcGFkZGluZzowIWltcG9ydGFudDsgbWFyZ2luLWJvdHRvbTowIWltcG9ydGFudDsgY29sb3I6aW5oZXJpdDsgZm9udC1zaXplOmluaGVyaXQ7IH0gLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFdyYXBwZXJ7IG1hcmdpbi1ib3R0b206dmFyKC0tcyk7IH0gI3BheW1lbnRDYWxjdWxhdG9yQ29udGFpbmVyLmNhbGMtbW9iaWxlIC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRXcmFwcGVyeyBtYXJnaW4tYm90dG9tOjA7IH0gLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudENvbnRhaW5lci5ib3hlczQgLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFdyYXBwZXIsIC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRDb250YWluZXJXaXRoVGF4ZXMuYm94ZXM0IC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRXcmFwcGVyeyB3aWR0aDoyNCU7IH0gLnBheW1lbnRDYWxjdWxhdG9yTGluZXsgYm9yZGVyLWJvdHRvbToxcHggc29saWQgZ3JleTsgbWFyZ2luOjEwcHggMDsgfSAucGF5bWVudENhbGN1bGF0b3JQYXltZW50V3JhcHBlciAucGF5bWVudENhbGN1bGF0b3JQYXltZW50TGluZTF7IGZvbnQtc2l6ZTowLjY4OHJlbSA7IH0gLnJldmVhbC1tb2RhbCAucGF5bWVudENhbGN1bGF0b3JQYXltZW50V3JhcHBlciAucGF5bWVudENhbGN1bGF0b3JQYXltZW50TGluZTEgc3BhbnsgZm9udC1zaXplOjEuNzVyZW0gOyBjb2xvcjojOTEwYTJkOyB9IC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRXcmFwcGVyIC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRMaW5lMnsgZm9udC1zaXplOjAuNzVyZW0gOyB9IC5yZXZlYWwtbW9kYWwgLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFdyYXBwZXIgLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudExpbmUyIHNwYW57IGZvbnQtc2l6ZToxLjM3NXJlbSA7IH0gLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFdyYXBwZXIgLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudExpbmUzeyBmb250LXNpemU6MC43NXJlbSA7IH0gLnJldmVhbC1tb2RhbCAucGF5bWVudENhbGN1bGF0b3JQYXltZW50V3JhcHBlciAucGF5bWVudENhbGN1bGF0b3JQYXltZW50TGluZTMgc3BhbnsgZm9udC1zaXplOjEuMjVyZW0gOyB9IC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRXcmFwcGVyIC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRMaW5lNHsgZm9udC1zaXplOjAuNzVyZW0gOyBjb2xvcjpncmV5OyB3aGl0ZS1zcGFjZTpub3JtYWw7IH0gI3BheW1lbnRDYWxjdWxhdG9yVmVoaWNsZUltYWdlRGl2eyBtYXgtd2lkdGg6MzMlOyBwb3NpdGlvbjphYnNvbHV0ZTsgcmlnaHQ6MDsgdG9wOi01MCU7IGRpc3BsYXk6dmFyKC0tbW9iaWxlLWRpc3BsYXksIGluaXRpYWwpOyB9IC5wYXltZW50Q2FsY3VsYXRvck9wdGlvbkNvbnRhaW5lcnsgd2lkdGg6bWF4KHZhcigtLW1vYi1mdWxsLXdpZHRoLCA2NiUpLCAyMHJlbSk7IH0gLmNhbGMtcGF5bWVudHN7IG1heC13aWR0aDp2YXIoLS1tb2ItZnVsbC13aWR0aCwgNjYlKTsgfSAuY2FsYy1wYXltZW50cyA6aXMoLnByaWNlLWZyLCAucHJpY2UtZW4peyB0ZXh0LWFsaWduOnJldmVydDsgbWluLXdpZHRoOnVuc2V0OyB9IC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRUeXBlQ29udGFpbmVyeyBib3JkZXItYm90dG9tOjFweCBzb2xpZCAjY2NjY2NjOyB9IC5maW5hbmNlTXVsdGlzdGVwTmV3Q2FsY3VsYXRvciAucGF5bWVudENhbGN1bGF0b3JQYXltZW50VHlwZUNvbnRhaW5lcnsgbWFyZ2luLWJvdHRvbToxMHB4OyB9IC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRUeXBleyBsaXN0LXN0eWxlOm5vbmU7IHBhZGRpbmc6MCAwOyBkaXNwbGF5OmlubGluZS1ibG9jazsgfSAucGF5bWVudENhbGN1bGF0b3JQYXltZW50VHlwZSBsaXsgcGFkZGluZzoxMHB4OyBmbG9hdDpsZWZ0OyBtaW4td2lkdGg6NXJlbTsgY3Vyc29yOnBvaW50ZXI7IGJvcmRlci1yYWRpdXM6NXB4IDVweCAwIDA7IGJvcmRlci1ib3R0b206MHB4OyB0ZXh0LWFsaWduOmNlbnRlcjsgYmFja2dyb3VuZC1jb2xvcjp3aGl0ZTsgfSAucGF5bWVudENhbGN1bGF0b3JQYXltZW50VHlwZSBsaTpob3ZlcnsgYmFja2dyb3VuZC1jb2xvcjojZDlkOWQ5OyB9IC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRUeXBlIGxpLmFjdGl2ZVBheW1lbnRUeXBleyBiYWNrZ3JvdW5kLWNvbG9yOiM5ODk4OTg7IGNvbG9yOndoaXRlOyB9IC5wYXltZW50Q2FsY3VsYXRvcklucHV0Q29udGFpbmVyeyBtYXJnaW4tYm90dG9tOjEwcHg7IH0gLnBheW1lbnRDYWxjdWxhdG9ySW5wdXRDb250YWluZXIgPiAqIHsgcGFkZGluZy1ib3R0b206MC41cmVtOyB9IC5wYXltZW50Q2FsY3VsYXRvcklucHV0Q29udGFpbmVyIGxhYmVseyBjb2xvcjpncmV5OyBmb250LXNpemU6MC44NzVyZW0gOyBtYXJnaW4tbGVmdDozcHg7IG1hcmdpbi1ib3R0b206MDsgfSAucGF5bWVudENhbGN1bGF0b3JUcmltU2VsZWN0eyBib3JkZXItcmFkaXVzOjVweDsgcGFkZGluZzo1cHggNXB4OyBmb250LXNpemU6MXJlbSA7IG1pbi13aWR0aDoxMHJlbTsgbWF4LXdpZHRoOjIwcmVtOyAtd2Via2l0LWFwcGVhcmFuY2U6bm9uZTsgLW1vei1hcHBlYXJhbmNlOm5vbmU7IHBhZGRpbmctcmlnaHQ6MjdweDsgYmFja2dyb3VuZC1pbWFnZTp1cmwoJ2RhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQkFBQUFBUUNBWUFBQUFmOC85aEFBQUFoMGxFUVZRNFQ5M1RNUXJDVUF6RzhWOXg4UXppaVlTdVhkekZDN2g0QWNFTE9QUUFkWFlvdlpDSEVBVGxnUVY1R0ZUZTFvekpsei9rUzFJcGpLcXczd1FCVnl5KytKSTB5MUdUZTdEQ0JiTUFja2VOSVFLay9CYW5BTEJCKzE2THRuREVMb01jc00vQkVTRGx6MmhlRFIzV2VQd0tTTG81ZW94ejN6Nk5OY0ZEK3Z1M2lqMTRBcXovRHhHYktCN0NBQUFBQUVsRlRrU3VRbUNDJyk7IGJhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDsgYmFja2dyb3VuZC1wb3NpdGlvbjo5NSUgY2VudGVyOyBib3JkZXItY29sb3I6I2E5YTlhOTsgY29sb3I6aW5oZXJpdDsgYm94LXNoYWRvdzpub25lOyAtd2Via2l0LWJveC1zaGFkb3c6bm9uZTsgfSAucGF5bWVudENhbGN1bGF0b3JJbnRlcnZhbCwgLmQyY2Zvcm0gLnBheW1lbnRDYWxjdWxhdG9ySW50ZXJ2YWwgeyBib3JkZXItcmFkaXVzOjVweDsgcGFkZGluZzo1cHggNXB4OyBmb250LXNpemU6MXJlbSA7IG1pbi13aWR0aDo3cmVtOyAtd2Via2l0LWFwcGVhcmFuY2U6bm9uZTsgLW1vei1hcHBlYXJhbmNlOm5vbmU7IHBhZGRpbmctcmlnaHQ6MjdweDsgYmFja2dyb3VuZC1pbWFnZTp1cmwoJ2RhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQkFBQUFBUUNBWUFBQUFmOC85aEFBQUFoMGxFUVZRNFQ5M1RNUXJDVUF6RzhWOXg4UXppaVlTdVhkekZDN2g0QWNFTE9QUUFkWFlvdlpDSEVBVGxnUVY1R0ZUZTFvekpsei9rUzFJcGpLcXczd1FCVnl5KytKSTB5MUdUZTdEQ0JiTUFja2VOSVFLay9CYW5BTEJCKzE2THRuREVMb01jc00vQkVTRGx6MmhlRFIzV2VQd0tTTG81ZW94ejN6Nk5OY0ZEK3Z1M2lqMTRBcXovRHhHYktCN0NBQUFBQUVsRlRrU3VRbUNDJyk7IGJhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDsgYmFja2dyb3VuZC1wb3NpdGlvbjo5NSUgY2VudGVyOyBib3JkZXItY29sb3I6I2E5YTlhOTsgY29sb3I6aW5oZXJpdDsgYm94LXNoYWRvdzpub25lOyAtd2Via2l0LWJveC1zaGFkb3c6bm9uZTsgfSAucGF5bWVudENhbGN1bGF0b3JLbUFsbG93YW5jZXsgYm9yZGVyLXJhZGl1czo1cHg7IHBhZGRpbmc6NXB4IDVweDsgZm9udC1zaXplOjFyZW0gOyB3aWR0aDoxMTBweDsgLXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7IC1tb3otYXBwZWFyYW5jZTpub25lOyBwYWRkaW5nLXJpZ2h0OjI3cHg7IGJhY2tncm91bmQtaW1hZ2U6dXJsKCdkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUJBQUFBQVFDQVlBQUFBZjgvOWhBQUFBaDBsRVFWUTRUOTNUTVFyQ1VBekc4Vjl4OFF6aWlZU3VYZHpGQzdoNEFjRUxPUFFBZFhZb3ZaQ0hFQVRsZ1FWNUdGVGUxb3pKbHova1MxSXBqS3F3M3dRQlZ5eSsrSkkweTFHVGU3RENCYk1BY2tlTklRS2svQmFuQUxCQisxNkx0bkRFTG9NY3NNL0JFU0RsejJoZURSM1dlUHdLU0xvNWVveHozejZOTmNGRCt2dTNpajE0QXF6L0R4R2JLQjdDQUFBQUFFbEZUa1N1UW1DQycpOyBiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7IGJhY2tncm91bmQtcG9zaXRpb246OTUlIGNlbnRlcjsgYm9yZGVyLWNvbG9yOiNhOWE5YTk7IGNvbG9yOmluaGVyaXQ7IGJveC1zaGFkb3c6bm9uZTsgLXdlYmtpdC1ib3gtc2hhZG93Om5vbmU7IH0gLnBheW1lbnRDYWxjdWxhdG9yRG93blBheW1lbnR7IGJvcmRlcjoxcHggc29saWQgI2E5YTlhOTsgYm9yZGVyLXJhZGl1czo1cHg7IHBhZGRpbmc6NXB4IDVweDsgZm9udC1zaXplOjFyZW0gOyB3aWR0aDo1cmVtOyBwYWRkaW5nLWxlZnQ6MjBweDsgYmFja2dyb3VuZC1pbWFnZTp1cmwoImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2ZXJzaW9uPScxLjEnIGhlaWdodD0nMjhweCcgd2lkdGg9Jzg1cHgnPjx0ZXh0IHg9JzYnIHk9JzIxJyBmaWxsPScnIGZvbnQtc2l6ZT0nMTYnIGZvbnQtZmFtaWx5PSdhcmlhbCc+JCIpOyBiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7IGJhY2tncm91bmQtc2l6ZTo2MCU7IGJhY2tncm91bmQtcG9zaXRpb24teTo0MCU7IC1tb3otYXBwZWFyYW5jZTp0ZXh0ZmllbGQ7IH0gLnBheW1lbnRDYWxjdWxhdG9yRG93blBheW1lbnQ6Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24sIC5wYXltZW50Q2FsY3VsYXRvckRvd25QYXltZW50Ojotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9ueyAtd2Via2l0LWFwcGVhcmFuY2U6bm9uZTsgbWFyZ2luOjA7IH0gLnBheW1lbnRDYWxjdWxhdG9yTm90aWNlQ29udGFpbmVyeyBtaW4td2lkdGg6MThyZW07IGZvbnQtc2l6ZTowLjgxM3JlbSA7IGNvbG9yOiM4Njg2ODY7IHBhZGRpbmc6MDsgbWFyZ2luOjA7IGRpc3BsYXk6dmFyKC0tbW9iaWxlLWRpc3BsYXksIGluaXRpYWwpOyB9IC5wYXltZW50Q2FsY3VsYXRvck5vdGljZUNvbnRhaW5lci5ib3hlczR7IHdpZHRoOjMwJTsgfSAucmV2ZWFsLW1vZGFsIC5wYXltZW50Q2FsY3VsYXRvck5vdGljZUNvbnRhaW5lciBwLCAucmV2ZWFsLW1vZGFsIC5wYXltZW50Q2FsY3VsYXRvck5vdGljZUNvbnRhaW5lciBzcGFueyBjb2xvcjppbmhlcml0OyBwYWRkaW5nOjA7IGZvbnQtc2l6ZToxcmVtOyB9IC5wYXltZW50Q2FsY3VsYXRvckVycm9yTWVzc2FnZXsgd2lkdGg6NTAlOyBtYXJnaW4tdG9wOjMwcHg7IH0gI3BheW1lbnRDYWxjdWxhdG9yVmVoaWNsZUluZm97IHBvc2l0aW9uOnJlbGF0aXZlOyB9ICNwYXltZW50Q2FsY3VsYXRvclZlaGljbGVJbmZvIC5pY29ueyBib3JkZXItcmFkaXVzOjUwJTsgYm9yZGVyOjFweCBzb2xpZCAjZmZmZmZmOyBjb2xvcjojZmZmZmZmOyBtYXJnaW46MDsgcGFkZGluZzowLjRyZW07IC0tdHh0LWNvbG9yOiNmZmZmZmY7IC0tZnM6dmFyKC0taGVhZGVyLWljb24tc2l6ZSwgdmFyKC0tZnM3KSk7IGJhY2tncm91bmQtY29sb3I6IzkxMGEyZDsgfSAjcGF5bWVudENhbGN1bGF0b3JWZWhpY2xlSW5mbyBoMiBzcGFuOmZpcnN0LWNoaWxkeyBmb250LXNpemU6dmFyKC0tZnMxKTsgZm9udC13ZWlnaHQ6bm9ybWFsOyB9ICNwYXltZW50Q2FsY3VsYXRvclZlaGljbGVJbmZvIGgyIHNwYW57IGZvbnQtc2l6ZTp2YXIoLS1oZWFkZXItZm9udC1zaXplLCB2YXIoLS1mczMpKTsgbWFyZ2luOjA7IGxpbmUtaGVpZ2h0Om5vcm1hbDsgZm9udC13ZWlnaHQ6NzAwOyBwYWRkaW5nOjA7IH0gI3BheW1lbnRDYWxjdWxhdG9yVmVoaWNsZUluZm8gaDN7IGZvbnQtc2l6ZToxLjE4OHJlbSA7IH0gI3BheW1lbnRDYWxjdWxhdG9yVmVoaWNsZUluZm8gc3Bhbi5oMi1hbHR7IG1hcmdpbjowOyBwYWRkaW5nOjA7IG1hcmdpbi1sZWZ0OnZhcigtLXMpOyBmb250LXNpemU6aW5oZXJpdDsgZm9udC13ZWlnaHQ6dmFyKC0tZm9udC1oMi13ZWlnaHQpOyBsaW5lLWhlaWdodDoxLjJlbTsgY29sb3I6dmFyKC0tZGVmYXVsdC1ibGFjayk7IH0gI3BheW1lbnRDYWxjdWxhdG9yVmVoaWNsZUluZm8gLmgyLWFsdCBzcGFuOmZpcnN0LWNoaWxkeyBmb250LXNpemU6dmFyKC0tZnMxKTsgZm9udC13ZWlnaHQ6bm9ybWFsOyB9ICNwYXltZW50Q2FsY3VsYXRvclZlaGljbGVJbmZvIC5oMi1hbHQgc3BhbnsgZm9udC1zaXplOnZhcigtLWhlYWRlci1mb250LXNpemUsIHZhcigtLWZzMykpOyBtYXJnaW46MDsgbGluZS1oZWlnaHQ6bm9ybWFsOyBmb250LXdlaWdodDo3MDA7IHBhZGRpbmc6MDsgfSAjcGF5bWVudENhbGN1bGF0b3JWZWhpY2xlSW5mbyAuaDMtYWx0eyBmb250LXNpemU6MS4xODhyZW0gOyB9IC5wYXltZW50Q2FsY3VsYXRvckNhbGxUb0FjdGlvbkNvbnRhaW5lcnsgdGV4dC1hbGlnbjpjZW50ZXI7IH0gLnBheW1lbnRDYWxjdWxhdG9yQ2FsbFRvQWN0aW9uQ29udGFpbmVyLmJveGVzNHsgd2lkdGg6NjQlOyB9IC5wYXltZW50Q2FsY3VsYXRvckNhbGxUb0FjdGlvbkNvbnRhaW5lciBheyB3aWR0aDptaW4oNjQlLDE4cmVtKTsgfSAucGF5bWVudENhbGN1bGF0b3JQYXltZW50U2VsZWN0eyB9IC5mYS5mYS1jYWxjdWxhdG9yeyBjb2xvcjojMDAwMDAwOyB9IC4tYmctYmxhY2sgLmZhLmZhLWNhbGN1bGF0b3J7IGNvbG9yOiNGRkZGRkY7IH0gI3BheW1lbnRDYWxjdWxhdG9yQ29udGFpbmVyIHNlbGVjdDo6LW1zLWV4cGFuZCB7IGRpc3BsYXk6bm9uZTsgfSAuY2FsYy1wYXltZW50LWNhc2ggeyB3aWR0aDptaW4oMTdyZW0sOTAlKTsgcGFkZGluZzowIDEuNXJlbTsgfSAuY2FsYy1wYXltZW50LWNhc2ggc3BhbnsgbWFyZ2luLWJvdHRvbTowOyBmb250LXNpemU6cmV2ZXJ0OyB9IC5jYWxjLXBheW1lbnQtY2FzaCAucHJpY2VGaW5hbCB7IHBhZGRpbmctdG9wOnZhcigtLXMpOyBib3JkZXItdG9wOjFweCBzb2xpZCAjYmJiOyBmb250LXdlaWdodDpib2xkOyB9IC5jYWxjLXBheW1lbnQtY2FzaCAucHJpY2VSb3cgeyBkaXNwbGF5OmZsZXg7IGFsaWduLWl0ZW1zOmNlbnRlcjsganVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47IGxpbmUtaGVpZ2h0Om5vcm1hbDsgfSAuY2FsYy1wYXltZW50LWNhc2ggLnByaWNlTmFtZXsgcGFkZGluZzowOyB0ZXh0LWFsaWduOmxlZnQ7IGZvbnQtc2l6ZTp2YXIoLS1mczApOyB9ICNwYXltZW50Q2FsY3VsYXRvck9wdGlvbkNvbnRhaW5lciAucGF5bWVudENhbGN1bGF0b3JUcmFkZUluQnV0dG9ueyBmb250LXNpemU6MC42MjVyZW0gOyBib3JkZXI6MXB4IHNvbGlkICNhOWE5YTk7IGJvcmRlci1yYWRpdXM6NXB4OyBiYWNrZ3JvdW5kLWNvbG9yOndoaXRlOyB3aWR0aDoxMDVweDsgdGV4dC1hbGlnbjpjZW50ZXI7IHRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7IHBhZGRpbmc6MnB4OyBjdXJzb3I6cG9pbnRlcjsgfSAjcGF5bWVudENhbGN1bGF0b3JPcHRpb25Db250YWluZXIgLnBheW1lbnRDYWxjdWxhdG9yVHJhZGVJblZhbHVleyBib3JkZXI6MXB4IHNvbGlkICNhOWE5YTk7IGJvcmRlci1yYWRpdXM6NXB4OyBwYWRkaW5nOjVweCA1cHg7IGZvbnQtc2l6ZToxcmVtIDsgd2lkdGg6MTAwcHg7IHBhZGRpbmctbGVmdDoxNXB4OyBiYWNrZ3JvdW5kLWltYWdlOnVybCgiZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZlcnNpb249JzEuMScgaGVpZ2h0PScyOHB4JyB3aWR0aD0nODVweCc+PHRleHQgeD0nNicgeT0nMjEnIGZpbGw9JycgZm9udC1zaXplPScxNicgZm9udC1mYW1pbHk9J2FyaWFsJz4kIik7IGJhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDsgYmFja2dyb3VuZC1jb2xvcjp3aGl0ZTsgfSAjcGF5bWVudENhbGN1bGF0b3JDb250YWluZXIgLmZpbmFuY2luZy1vcHRpb24sICNmaW5hbmNlTXVsdGlzdGVwTmV3Q2FsY3VsYXRvciAuZmluYW5jaW5nLW9wdGlvbiB7IGJvcmRlcjoxLjVweCBzb2xpZCAjYWFhOyBib3JkZXItcmFkaXVzOjZweDsgcGFkZGluZzo4cHg7IHdpZHRoOjE5MHB4OyBiYWNrZ3JvdW5kOndoaXRlOyBkaXNwbGF5OmZsZXg7IGZsZXgtZGlyZWN0aW9uOmNvbHVtbjsgYWxpZ24taXRlbXM6Y2VudGVyOyB0ZXh0LWFsaWduOmNlbnRlcjsgZmxleC1zaHJpbms6MDsgbWluLXdpZHRoOjE4N3B4OyBib3gtc2l6aW5nOmNvbnRlbnQtYm94IWltcG9ydGFudDsgfSAjcGF5bWVudENhbGN1bGF0b3JDb250YWluZXIgLmZpbmFuY2luZy1vcHRpb24uc2VsZWN0ZWQsICNmaW5hbmNlTXVsdGlzdGVwTmV3Q2FsY3VsYXRvciAuZmluYW5jaW5nLW9wdGlvbi5zZWxlY3RlZCB7IGJvcmRlci1jb2xvcjojMDA3QkZGOyBib3gtc2hhZG93OjAgMCAxMHB4IHJnYmEoMCwgMTIzLCAyNTUsIDAuNSk7IH0gI3BheW1lbnRDYWxjdWxhdG9yQ29udGFpbmVyIC50ZXJtLCAjZmluYW5jZU11bHRpc3RlcE5ld0NhbGN1bGF0b3IgLnRlcm0geyBmb250LXNpemU6MC44NzVyZW0gOyBmb250LXdlaWdodDpib2xkOyBjb2xvcjojMzMzOyBtYXJnaW4tYm90dG9tOjJweDsgfSAjcGF5bWVudENhbGN1bGF0b3JDb250YWluZXIgLmRvd24tcGF5bWVudCwgI2ZpbmFuY2VNdWx0aXN0ZXBOZXdDYWxjdWxhdG9yIC5kb3duLXBheW1lbnQgeyBmb250LXNpemU6MC42MjVyZW0gOyBjb2xvcjojOTk5OyBtYXJnaW4tYm90dG9tOjVweDsgfSAjcGF5bWVudENhbGN1bGF0b3JDb250YWluZXIgLnNlcGFyYXRvclBheSwgI2ZpbmFuY2VNdWx0aXN0ZXBOZXdDYWxjdWxhdG9yIC5zZXBhcmF0b3JQYXkgeyB3aWR0aDo5MCU7IGhlaWdodDoxcHg7IGJhY2tncm91bmQtY29sb3I6I2NjYzsgbWFyZ2luLWJvdHRvbTo2cHg7IH0gI3BheW1lbnRDYWxjdWxhdG9yQ29udGFpbmVyIC5jb250ZW50LWNvbnRhaW5lciwgI2ZpbmFuY2VNdWx0aXN0ZXBOZXdDYWxjdWxhdG9yIC5jb250ZW50LWNvbnRhaW5lciB7IGRpc3BsYXk6ZmxleDsganVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47IGFsaWduLWl0ZW1zOmNlbnRlcjsgd2lkdGg6MTAwJTsgcGFkZGluZy1ib3R0b206OHB4OyB9ICNwYXltZW50Q2FsY3VsYXRvckNvbnRhaW5lciAubGVmdC1zZWN0aW9uLCAjcGF5bWVudENhbGN1bGF0b3JDb250YWluZXIgLnJpZ2h0LXNlY3Rpb24sICNmaW5hbmNlTXVsdGlzdGVwTmV3Q2FsY3VsYXRvciAubGVmdC1zZWN0aW9uLCAjZmluYW5jZU11bHRpc3RlcE5ld0NhbGN1bGF0b3IgLnJpZ2h0LXNlY3Rpb24geyB3aWR0aDo1MCU7IHRleHQtYWxpZ246Y2VudGVyOyBwYWRkaW5nOjZweDsgcG9zaXRpb246cmVsYXRpdmU7IH0gI3BheW1lbnRDYWxjdWxhdG9yQ29udGFpbmVyIC5sZWZ0LXNlY3Rpb24sICNmaW5hbmNlTXVsdGlzdGVwTmV3Q2FsY3VsYXRvciAubGVmdC1zZWN0aW9uIHsgYm9yZGVyLXJpZ2h0OjFweCBzb2xpZCAjY2NjOyB9ICNwYXltZW50Q2FsY3VsYXRvckNvbnRhaW5lciAubG93ZXN0LXBheW1lbnQsICNwYXltZW50Q2FsY3VsYXRvckNvbnRhaW5lciAubG93ZXN0LXJhdGUsICNmaW5hbmNlTXVsdGlzdGVwTmV3Q2FsY3VsYXRvciAubG93ZXN0LXBheW1lbnQsICNmaW5hbmNlTXVsdGlzdGVwTmV3Q2FsY3VsYXRvciAubG93ZXN0LXJhdGUgeyBmb250LXNpemU6MS4yNXJlbSA7IGNvbG9yOiNkMzJmMmY7IHBvc2l0aW9uOnJlbGF0aXZlOyB9ICNwYXltZW50Q2FsY3VsYXRvckNvbnRhaW5lciAuaW5mby1pY29uLCAjZmluYW5jZU11bHRpc3RlcE5ld0NhbGN1bGF0b3IgLmluZm8taWNvbiB7IGZvbnQtc2l6ZTowLjc1cmVtIDsgY29sb3I6IzY2NjsgY3Vyc29yOnBvaW50ZXI7IG1hcmdpbi1sZWZ0OjRweDsgcG9zaXRpb246YWJzb2x1dGU7IHRvcDoycHg7IH0gI3BheW1lbnRDYWxjdWxhdG9yQ29udGFpbmVyIC5hY3R1YWwtcmF0ZSwgI3BheW1lbnRDYWxjdWxhdG9yQ29udGFpbmVyIC5hY3R1YWwtcGF5bWVudCwgI2ZpbmFuY2VNdWx0aXN0ZXBOZXdDYWxjdWxhdG9yIC5hY3R1YWwtcmF0ZSwgI2ZpbmFuY2VNdWx0aXN0ZXBOZXdDYWxjdWxhdG9yIC5hY3R1YWwtcGF5bWVudCB7IGZvbnQtc2l6ZTowLjkzOHJlbSA7IG1hcmdpbi10b3A6NXB4OyBmb250LXdlaWdodDpib2xkOyB9ICNwYXltZW50Q2FsY3VsYXRvckNvbnRhaW5lciAuYWN0dWFsLXJhdGUsICNmaW5hbmNlTXVsdGlzdGVwTmV3Q2FsY3VsYXRvciAuYWN0dWFsLXJhdGUgeyBjb2xvcjojMzMzOyB9ICNwYXltZW50Q2FsY3VsYXRvckNvbnRhaW5lciAuYWN0dWFsLXBheW1lbnQsICNmaW5hbmNlTXVsdGlzdGVwTmV3Q2FsY3VsYXRvciAuYWN0dWFsLXBheW1lbnQgeyBjb2xvcjojMDAzMzY2OyB9ICNwYXltZW50Q2FsY3VsYXRvckNvbnRhaW5lciAuZGV0YWlsc1RheCwgI2ZpbmFuY2VNdWx0aXN0ZXBOZXdDYWxjdWxhdG9yIC5kZXRhaWxzVGF4IHsgZm9udC1zaXplOjAuNjg4cmVtIDsgY29sb3I6IzMzMzsgbWFyZ2luLXRvcDoycHg7IH0gI3BheW1lbnRDYWxjdWxhdG9yQ29udGFpbmVyIC5yYWRpby1jb250YWluZXIsICNmaW5hbmNlTXVsdGlzdGVwTmV3Q2FsY3VsYXRvciAucmFkaW8tY29udGFpbmVyIHsgZGlzcGxheTpmbGV4OyBqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOyBhbGlnbi1pdGVtczpjZW50ZXI7IGdhcDowcHg7IG1hcmdpbi10b3A6OHB4OyBmb250LXNpemU6MC42ODhyZW0gOyB9ICNwYXltZW50Q2FsY3VsYXRvckNvbnRhaW5lciBpbnB1dFt0eXBlPSJyYWRpbyJdW25hbWU9InNlbGVjdGVkUGF5bWVudCJdLCAjcGF5bWVudENhbGN1bGF0b3JDb250YWluZXIgaW5wdXRbdHlwZT0icmFkaW8iXVtuYW1lPSJzZWxlY3RlZFBheW1lbnRXaXRoVGF4ZXMiXSwgI2ZpbmFuY2VNdWx0aXN0ZXBOZXdDYWxjdWxhdG9yIGlucHV0W3R5cGU9InJhZGlvIl1bbmFtZT0ic2VsZWN0ZWRQYXltZW50Il0sICNmaW5hbmNlTXVsdGlzdGVwTmV3Q2FsY3VsYXRvciBpbnB1dFt0eXBlPSJyYWRpbyJdW25hbWU9InNlbGVjdGVkUGF5bWVudFdpdGhUYXhlcyJdIHsgbWFyZ2luLXJpZ2h0OjRweDsgb3BhY2l0eTp1bnNldDsgd2lkdGg6dW5zZXQ7IGhlaWdodDp1bnNldDsgcG9zaXRpb246dW5zZXQ7IH0gI3BheW1lbnRDYWxjdWxhdG9yQ29udGFpbmVyIC5zaW5nbGUtY29sdW1uLCAjZmluYW5jZU11bHRpc3RlcE5ld0NhbGN1bGF0b3IgLnNpbmdsZS1jb2x1bW4geyBkaXNwbGF5OmZsZXg7IGZsZXgtZGlyZWN0aW9uOmNvbHVtbjsgYWxpZ24taXRlbXM6Y2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOyB3aWR0aDoxMDAlOyBwYWRkaW5nOjhweDsgfSAjcGF5bWVudENhbGN1bGF0b3JDb250YWluZXIgLnNtYWxsLWJveCwgI2ZpbmFuY2VNdWx0aXN0ZXBOZXdDYWxjdWxhdG9yIC5zbWFsbC1ib3ggeyB3aWR0aDoxMDBweDsgcGFkZGluZzo4cHg7IG1pbi13aWR0aDoxMDBweDsgbWF4LXdpZHRoOjEwMHB4OyB9Ci8qKiAvY3NzL2Zvcm1zL2Zvcm1zLnByZWxvYWQuY3NzICoqLwouZDJjZm9ybSB7IC0tbGFiZWwtcmVxdWlyZWQtc3ltYm9sOiIqIjsgLS1sYWJlbC1yZXF1aXJlZC1jb2xvcjojRkYwMDAwOyAtLWlucHV0LXBhZGRpbmc6dmFyKC0tcy0xKSB2YXIoLS1zMSk7IC0taW5wdXQtYmctY29sb3I6dmFyKC0td2hpdGUpOyAtLWlucHV0LWJvcmRlci1jb2xvcjp2YXIoLS1taWQtZ3JheSk7IC0taW5wdXQtcmFkaXVzOnZhcigtLXMtNik7IC0taW5wdXQtZm9udC1zaXplOnZhcigtLWZzMCk7IC0taW5wdXQtbGluZS1oZWlnaHQ6dmFyKC0tZnMyKTsgfSAuZDJjZm9ybSAqIHsgYm94LXNpemluZzpib3JkZXItYm94OyB9IC5kMmNmb3JtIGJveC1sYyB7IC0tc3BhY2U6dmFyKC0tcy00KTsgcGFkZGluZy1sZWZ0OjA7IHBhZGRpbmctcmlnaHQ6MDsgZGlzcGxheTpmbGV4OyBmbGV4LWRpcmVjdGlvbjpjb2x1bW47IGFsaWduLWl0ZW1zOmZsZXgtc3RhcnQ7IH0gLmQyY2Zvcm0tLXRoaW4gYm94LWxjIHsgLS1zcGFjZTp2YXIoLS1zLTkpOyB9IC5kMmNmb3JtLS1yb3cgc3RhY2stbGMgeyBmbGV4LWRpcmVjdGlvbjpyb3c7IGZsZXgtd3JhcDp3cmFwOyB9IC5kMmNmb3JtLS1yb3cgYm94LWxjIHsgcGFkZGluZy1yaWdodDp2YXIoLS1zcGFjZSk7IHBhZGRpbmctbGVmdDp2YXIoLS1zcGFjZSk7IH0gLmQyY2Zvcm0tLWhvcml6b250YWwgYm94LWxjIHsgZmxleC1kaXJlY3Rpb246cm93OyBhbGlnbi1pdGVtczpmbGV4LXN0YXJ0OyB9IC5kMmNmb3JtLS1ob3Jpem9udGFsIGJveC1sYyBsYWJlbCB7IG1pbi13aWR0aDoxMTVweDsgd2lkdGg6MzAlOyBwYWRkaW5nLXJpZ2h0OnZhcigtLXMpOyBtYXJnaW4tdG9wOnZhcigtLXMxKTsgbWFyZ2luLWJvdHRvbTowOyB9IC5kMmNmb3JtIGxhYmVsOmhhcyhbcmVxdWlyZWRdKSBzcGFuOmFmdGVyeyBjb2xvciA6dmFyKC0tbGFiZWwtcmVxdWlyZWQtY29sb3IpOyBjb250ZW50IDp2YXIoLS1sYWJlbC1yZXF1aXJlZC1zeW1ib2wpOyBwYWRkaW5nLWxlZnQgOnZhcigtLXMtNik7IH0gLmQyY2Zvcm0gbGFiZWw6bm90KC5maW5hbmNlQ2FsYyksIC5kMmNmb3JtIC5sYWJlbDpub3QoLmZpbmFuY2VDYWxjKSB7IG1hcmdpbi1ib3R0b206dmFyKC0tcy0zKTsgZm9udC1zaXplOnZhcigtLWlucHV0LWZvbnQtc2l6ZSk7IGxpbmUtaGVpZ2h0OnZhcigtLWlucHV0LWxpbmUtaGVpZ2h0KTsgZm9udC13ZWlnaHQ6NDAwOyB9IC5kMmNmb3JtIGxhYmVsLi0tcmVxdWlyZWQ6bm90KC50eHQtcmlnaHQpOmFmdGVyLCAuZDJjZm9ybSAubGFiZWwuLS1yZXF1aXJlZDpub3QoLnR4dC1yaWdodCk6YWZ0ZXIsIC5kMmNmb3JtIGxhYmVsLi1yZXF1aXJlZDpub3QoLnR4dC1yaWdodCk6YWZ0ZXIsIC5kMmNmb3JtIC5sYWJlbC4tcmVxdWlyZWQ6bm90KC50eHQtcmlnaHQpOmFmdGVyIHsgY29sb3IgOnZhcigtLWxhYmVsLXJlcXVpcmVkLWNvbG9yKTsgY29udGVudCA6dmFyKC0tbGFiZWwtcmVxdWlyZWQtc3ltYm9sKTsgcGFkZGluZy1sZWZ0IDp2YXIoLS1zLTYpOyB9IC5kMmNmb3JtIGxhYmVsLi0tcmVxdWlyZWQudHh0LXJpZ2h0OmJlZm9yZSwgLmQyY2Zvcm0gLmxhYmVsLi0tcmVxdWlyZWQudHh0LXJpZ2h0OmJlZm9yZSwgLmQyY2Zvcm0gbGFiZWwuLXJlcXVpcmVkLnR4dC1yaWdodDpiZWZvcmUsIC5kMmNmb3JtIC5sYWJlbC4tcmVxdWlyZWQudHh0LXJpZ2h0OmJlZm9yZSB7IGNvbG9yIDp2YXIoLS1sYWJlbC1yZXF1aXJlZC1jb2xvcik7IGNvbnRlbnQgOnZhcigtLWxhYmVsLXJlcXVpcmVkLXN5bWJvbCk7IHBhZGRpbmctcmlnaHQgOnZhcigtLXMtNik7IH0gLmQyY2Zvcm0gOndoZXJlKGlucHV0Om5vdChbdHlwZT1zdWJtaXRdLC5wYXltZW50Q2FsY3VsYXRvckRvd25QYXltZW50KTpub3QoW3R5cGU9InJhZGlvIl0pOm5vdChbdHlwZT0iY2hlY2tib3giXSkpLCAuZDJjZm9ybSBzZWxlY3Q6bm90KC5wYXltZW50Q2FsY3VsYXRvckludGVydmFsLC5wYXltZW50Q2FsY3VsYXRvckttQWxsb3dhbmNlLC5maW5hbmNlTXVsdGlzdGVwVXNlZENhbGN1bGF0b3IgLmNhbGMtZm9ybSBzZWxlY3QpLCAuZDJjZm9ybSB0ZXh0YXJlYSB7IHdpZHRoOjEwMCU7IHBhZGRpbmc6dmFyKC0taW5wdXQtcGFkZGluZyk7IGJhY2tncm91bmQtY29sb3I6dmFyKC0taW5wdXQtYmctY29sb3IpOyBib3JkZXItcmFkaXVzOnZhcigtLWlucHV0LXJhZGl1cyk7IGJvcmRlcjoxcHggc29saWQgdmFyKC0taW5wdXQtYm9yZGVyLWNvbG9yKTsgY29sb3I6IzIxMjUyOTsgZm9udC1zaXplOnZhcigtLWlucHV0LWZvbnQtc2l6ZSk7IGxpbmUtaGVpZ2h0OnZhcigtLWlucHV0LWxpbmUtaGVpZ2h0KTsgZm9udC13ZWlnaHQ6NDAwOyB9IC5kMmNmb3JtIGlucHV0Om5vdChbdHlwZT1zdWJtaXRdKTpub3QoW3R5cGU9InJhZGlvIl0pOm5vdChbdHlwZT0iY2hlY2tib3giXSksIC5kMmNmb3JtIHNlbGVjdCB7IGhlaWdodDozNXB4OyB9IC5kMmNmb3JtIC5pbnZhbGlkID4gOmlzKGlucHV0LHNlbGVjdCx0ZXh0YXJlYSl7IGJhY2tncm91bmQtY29sb3I6I2ZhZDZkYzsgfSAuZDJjZm9ybSBpbnB1dDpkaXNhYmxlZCwgLmQyY2Zvcm0gaW5wdXQuZGlzYWJsZWQgeyBiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjM5LCAyMzksIDIzOSwgMC4zKTsgY29sb3I6cmdiKDg0LCA4NCwgODQpOyBib3JkZXItY29sb3I6cmdiYSgxMTgsIDExOCwgMTE4LCAwLjMpOyBjdXJzb3I6bm90LWFsbG93ZWQ7IH0gLmQyY2Zvcm0gaW5wdXQudHh0LXVwcGVyIHsgdGV4dC10cmFuc2Zvcm06bm9uZTsgfSAuZDJjZm9ybSBpbnB1dC50eHQtdXBwZXI6OnBsYWNlaG9sZGVyIHsgdGV4dC10cmFuc2Zvcm06dmFyKC0tdHh0LXVwcGVyLCB1cHBlcmNhc2UpOyB9IC5kMmNmb3JtIC5pbnB1dC1pY29uLWxlZnQsIC5kMmNmb3JtIC5pbnB1dC1pY29uLXJpZ2h0IHsgcG9zaXRpb246cmVsYXRpdmU7IH0gLmQyY2Zvcm0gLmlucHV0LWljb24geyBwb3NpdGlvbjphYnNvbHV0ZTsgei1pbmRleDoxOyB0b3A6dmFyKC0tczEpOyBmb250LXNpemU6dmFyKC0taW5wdXQtZm9udC1zaXplKTsgbGluZS1oZWlnaHQ6dmFyKC0taW5wdXQtbGluZS1oZWlnaHQpOyBjb2xvcjp2YXIoLS1kYXJrLWdyYXkpOyB9IC5kMmNmb3JtIC5pbnB1dC1pY29uLXJpZ2h0IC5pbnB1dC1pY29uIHsgcmlnaHQ6dmFyKC0tczQpOyB9IC5kMmNmb3JtIC5pbnB1dC1pY29uLWxlZnQgLmlucHV0LWljb24geyBsZWZ0OnZhcigtLXM0KTsgfSAuZDJjZm9ybSAuaW5wdXQtaWNvbi1sZWZ0IGlucHV0IHsgcGFkZGluZy1sZWZ0OnZhcigtLXM5KTsgfSAuZDJjZm9ybSAuc2VwYXJhdG9yIHsgd2lkdGg6MTAwJTsgYm9yZGVyLXRvcDoxcHggc29saWQgI2Q0ZDRkNDsgbWFyZ2luLXRvcDp2YXIoLS1zNyk7IG1hcmdpbi1ib3R0b206dmFyKC0tczcpOyB9IC5kMmNmb3JtIC5yYWRpby1pbmxpbmUgeyBkaXNwbGF5OmZsZXg7IHdpZHRoOjEwMCU7IH0gLmQyY2Zvcm0gLmNoZWNrYm94LWxpc3QgeyBkaXNwbGF5OmZsZXg7IGZsZXgtZGlyZWN0aW9uOmNvbHVtbjsgbWFyZ2luLWJvdHRvbTp2YXIoLS1zLTMpOyB9IC5kMmNmb3JtIC5jaGVja2JveC1saXN0ID4gKiB7IG1hcmdpbi1ib3R0b206MDsgfSAuZDJjZm9ybSAubXVsdGlwbGUtaW5wdXQgeyBkaXNwbGF5OmZsZXg7IHdpZHRoOjEwMCU7IH0gLmQyY2Zvcm0gLm11bHRpcGxlLWlucHV0ID4gKjpub3QoOmxhc3Qtb2YtdHlwZSkgeyBtYXJnaW4tcmlnaHQ6dmFyKC0tczEpOyB9IC5kMmNmb3JtIC5pbnB1dC1ncm91cCB7IGRpc3BsYXk6ZmxleDsgd2lkdGggOjEwMCU7IH0gLmQyY2Zvcm0gLmlucHV0LWdyb3VwIC5pbnB1dC1ncm91cC10ZXh0IHsgZGlzcGxheTpmbGV4OyBhbGlnbi1pdGVtczpjZW50ZXI7IHBhZGRpbmc6dmFyKC0taW5wdXQtcGFkZGluZyk7IGJhY2tncm91bmQ6dmFyKC0tbGlnaHQtZ3JheSk7IGJvcmRlcjoxcHggc29saWQgdmFyKC0taW5wdXQtYm9yZGVyLWNvbG9yKTsgYm9yZGVyLXJhZGl1czp2YXIoLS1pbnB1dC1yYWRpdXMpOyBmb250LXNpemU6dmFyKC0taW5wdXQtZm9udC1zaXplKTsgbGluZS1oZWlnaHQ6dmFyKC0taW5wdXQtbGluZS1oZWlnaHQpOyB3aGl0ZS1zcGFjZTpub3dyYXA7IH0gLmQyY2Zvcm0gLmlucHV0LWdyb3VwID4gOm5vdCg6Zmlyc3QtY2hpbGQpIHsgYm9yZGVyLWxlZnQ6MDsgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czowICFpbXBvcnRhbnQ7IGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6MCAhaW1wb3J0YW50OyB9IC5kMmNmb3JtIC5pbnB1dC1ncm91cCA+IDpub3QoOmxhc3QtY2hpbGQpIHsgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6MCAhaW1wb3J0YW50OyBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czowICFpbXBvcnRhbnQ7IH0gQG1lZGlhIChtYXgtd2lkdGg6OTgwcHgpIHsgLmQyY2Zvcm0tLWhvcml6b250YWwgYm94LWxjIGxhYmVsIHsgbWluLXdpZHRoOjg1cHg7IH0gfQovKiogL2Nzcy9mb3Jtcy9mb3Jtcy5jc3MgKiovCi5kMmNmb3JtIGlucHV0Om5vdChbdHlwZT1zdWJtaXRdKTpub3QoW3R5cGU9InJhZGlvIl0pOm5vdChbdHlwZT0iY2hlY2tib3giXSksIC5kMmNmb3JtIHNlbGVjdCwgLmQyY2Zvcm0gdGV4dGFyZWEgeyB0cmFuc2l0aW9uOmJvcmRlci1jb2xvciAuMTVzIGVhc2UtaW4tb3V0LGJveC1zaGFkb3cgLjE1cyBlYXNlLWluLW91dDsgfSAuZDJjZm9ybSBpbnB1dDpub3QoW3R5cGU9c3VibWl0XSk6bm90KFt0eXBlPSJyYWRpbyJdKTpub3QoW3R5cGU9ImNoZWNrYm94Il0pOmZvY3VzLCAuZDJjZm9ybSBzZWxlY3Q6Zm9jdXMsIC5kMmNmb3JtIHRleHRhcmVhOmZvY3VzIHsgYm9yZGVyLWNvbG9yOiM4NmI3ZmU7IG91dGxpbmU6MDsgYm94LXNoYWRvdzowIDAgMCAwLjJyZW0gcmdiKDEzIDExMCAyNTMgLyAyNSUpOyB9IC5kMmNmb3JtIC5pbnB1dC1ncm91cCBpbnB1dDpub3QoW3R5cGU9c3VibWl0XSk6bm90KFt0eXBlPSJyYWRpbyJdKTpub3QoW3R5cGU9ImNoZWNrYm94Il0pOmZvY3VzLCAuZDJjZm9ybSAuaW5wdXQtZ3JvdXAgc2VsZWN0OmZvY3VzLCAuZDJjZm9ybSAuaW5wdXQtZ3JvdXAgdGV4dGFyZWE6Zm9jdXMgeyB6LWluZGV4OjM7IH0gLmQyY2Zvcm0gaW5wdXQudmFsaWRpdHktZXJyb25lb3VzLCAuZDJjZm9ybSBzZWxlY3QudmFsaWRpdHktZXJyb25lb3VzLCAuZDJjZm9ybSB0ZXh0YXJlYS52YWxpZGl0eS1lcnJvbmVvdXMsIC5kMmNmb3JtIC5pbnB1dC1ncm91cCAudmFsaWRpdHktZXJyb25lb3VzICsgLmlucHV0LWdyb3VwLXRleHQgeyBib3JkZXItY29sb3I6I2RjMzU0NSAhaW1wb3J0YW50OyBiYWNrZ3JvdW5kLWNvbG9yOiNmYWQ2ZGMgIWltcG9ydGFudDsgfSAuZDJjZm9ybSBpbnB1dC52YWxpZGl0eS1lcnJvbmVvdXM6OnBsYWNlaG9sZGVyLCAuZDJjZm9ybSB0ZXh0YXJlYS52YWxpZGl0eS1lcnJvbmVvdXM6OnBsYWNlaG9sZGVyLCAuZDJjZm9ybSBzZWxlY3QudmFsaWRpdHktZXJyb25lb3VzLCAuZDJjZm9ybSAuaW5wdXQtZ3JvdXAgLnZhbGlkaXR5LWVycm9uZW91cyArIC5pbnB1dC1ncm91cC10ZXh0IHsgY29sb3I6I2RjMzU0NTsgfQovKiogL2Nzcy92Mi9tb2RhbC5jc3MgKiovCi5tb2RhbC13cmFwcGVyIHsgcG9zaXRpb246Zml4ZWQ7IHRvcDoxNTAlOyBsZWZ0OjUwJTsgdHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlLCAtNTAlKTsgei1pbmRleDoxNjAwMTsgdHJhbnNpdGlvbjp0b3AgMTUwbXMgZWFzZS1pbjsgfSAubW9kYWwtd3JhcHBlci5pcy1hY3RpdmV7IHRvcDo1MCU7IH0gLm1vZGFsLXdyYXBwZXIgLm1vZGFsLWJvZHl7IG1pbi13aWR0aDoyMHJlbTsgbWF4LXdpZHRoOjEwMCU7IG1heC1oZWlnaHQ6ODV2aDsgb3ZlcmZsb3cteTphdXRvOyB9IC5tb2RhbC1vdmVybGF5eyBwb3NpdGlvbjpmaXhlZDsgdG9wOjA7IGxlZnQ6MDsgd2lkdGg6MTAwdnc7IGhlaWdodDoxMDB2aDsgYmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLDAuNSk7IHotaW5kZXg6MTAwMDA7IH0gLmxvYWRpbmctb3ZlcmxheXsgcG9zaXRpb246YWJzb2x1dGU7IHdpZHRoOjEwMCU7IGhlaWdodDoxMDAlOyB0b3A6MDsgbGVmdDowOyBiYWNrZ3JvdW5kLWltYWdlOnVybCgvaW1hZ2VzL2FqYXgtbG9hZGVyLmdpZik7IGJhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDsgYmFja2dyb3VuZC1wb3NpdGlvbjpjZW50ZXI7IH0gLm1vZGFsLXdyYXBwZXIgOmlzKGlucHV0W3R5cGU9InRleHQiXSxpbnB1dFt0eXBlPSJlbWFpbCJdLGlucHV0W3R5cGU9InRlbCJdKXsgcGFkZGluZzowLjRyZW07IGJvcmRlcjoxcHggc29saWQgdmFyKC0tbWlkLWdyYXkpOyBib3JkZXItcmFkaXVzOjAuM3JlbTsgfSAubW9kYWwtYm9keSAuaWZyYW1lLXdyYXBwZXJ7IHdpZHRoOm1heCg5MHZ3LCAyMC41cmVtKTsgaGVpZ2h0Om1heCg4NHZoLCAzMHJlbSk7IHdpZHRoOmNsYW1wKDIwLjVyZW0sIG1heCg5MHZ3LCAyMC41cmVtKSwgNjByZW0pOyBoZWlnaHQ6Y2xhbXAoMzByZW0sIG1heCg4NHZoLCAzMHJlbSksIDYwcmVtKTsgfSAubW9kYWwtYm9keSAuaWZyYW1lLXdyYXBwZXIgaWZyYW1leyB3aWR0aDoxMDAlOyBoZWlnaHQ6MTAwJTsgfQovKiogL2Nzcy92Mi9mbGF0cGlja3IubWluLmNzcyAqKi8KLmZsYXRwaWNrci1jYWxlbmRhcntiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O29wYWNpdHk6MDtkaXNwbGF5Om5vbmU7dGV4dC1hbGlnbjpjZW50ZXI7dmlzaWJpbGl0eTpoaWRkZW47cGFkZGluZzowOy13ZWJraXQtYW5pbWF0aW9uOm5vbmU7YW5pbWF0aW9uOm5vbmU7ZGlyZWN0aW9uOmx0cjtib3JkZXI6MDtmb250LXNpemU6MC44NzVyZW0gO2xpbmUtaGVpZ2h0OjI0cHg7Ym9yZGVyLXJhZGl1czo1cHg7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MzA3Ljg3NXB4Oy13ZWJraXQtYm94LXNpemluZzpib3JkZXItYm94O2JveC1zaXppbmc6Ym9yZGVyLWJveDstbXMtdG91Y2gtYWN0aW9uOm1hbmlwdWxhdGlvbjt0b3VjaC1hY3Rpb246bWFuaXB1bGF0aW9uO2JhY2tncm91bmQ6I2ZmZjstd2Via2l0LWJveC1zaGFkb3c6MXB4IDAgMCAjZTZlNmU2LC0xcHggMCAwICNlNmU2ZTYsMCAxcHggMCAjZTZlNmU2LDAgLTFweCAwICNlNmU2ZTYsMCAzcHggMTNweCByZ2JhKDAsMCwwLDAuMDgpO2JveC1zaGFkb3c6MXB4IDAgMCAjZTZlNmU2LC0xcHggMCAwICNlNmU2ZTYsMCAxcHggMCAjZTZlNmU2LDAgLTFweCAwICNlNmU2ZTYsMCAzcHggMTNweCByZ2JhKDAsMCwwLDAuMDgpfS5mbGF0cGlja3ItY2FsZW5kYXIub3BlbiwuZmxhdHBpY2tyLWNhbGVuZGFyLmlubGluZXtvcGFjaXR5OjE7bWF4LWhlaWdodDo2NDBweDt2aXNpYmlsaXR5OnZpc2libGV9LmZsYXRwaWNrci1jYWxlbmRhci5vcGVue2Rpc3BsYXk6aW5saW5lLWJsb2NrO3otaW5kZXg6OTk5OTl9LmZsYXRwaWNrci1jYWxlbmRhci5hbmltYXRlLm9wZW57LXdlYmtpdC1hbmltYXRpb246ZnBGYWRlSW5Eb3duIDMwMG1zIGN1YmljLWJlemllciguMjMsMSwuMzIsMSk7YW5pbWF0aW9uOmZwRmFkZUluRG93biAzMDBtcyBjdWJpYy1iZXppZXIoLjIzLDEsLjMyLDEpfS5mbGF0cGlja3ItY2FsZW5kYXIuaW5saW5le2Rpc3BsYXk6YmxvY2s7cG9zaXRpb246cmVsYXRpdmU7dG9wOjJweH0uZmxhdHBpY2tyLWNhbGVuZGFyLnN0YXRpY3twb3NpdGlvbjphYnNvbHV0ZTt0b3A6Y2FsYygxMDAlICsgMnB4KX0uZmxhdHBpY2tyLWNhbGVuZGFyLnN0YXRpYy5vcGVue3otaW5kZXg6OTk5O2Rpc3BsYXk6YmxvY2t9LmZsYXRwaWNrci1jYWxlbmRhci5tdWx0aU1vbnRoIC5mbGF0cGlja3ItZGF5cyAuZGF5Q29udGFpbmVyOm50aC1jaGlsZChuKzEpIC5mbGF0cGlja3ItZGF5LmluUmFuZ2U6bnRoLWNoaWxkKDduKzcpey13ZWJraXQtYm94LXNoYWRvdzpub25lICFpbXBvcnRhbnQ7Ym94LXNoYWRvdzpub25lICFpbXBvcnRhbnR9LmZsYXRwaWNrci1jYWxlbmRhci5tdWx0aU1vbnRoIC5mbGF0cGlja3ItZGF5cyAuZGF5Q29udGFpbmVyOm50aC1jaGlsZChuKzIpIC5mbGF0cGlja3ItZGF5LmluUmFuZ2U6bnRoLWNoaWxkKDduKzEpey13ZWJraXQtYm94LXNoYWRvdzotMnB4IDAgMCAjZTZlNmU2LDVweCAwIDAgI2U2ZTZlNjtib3gtc2hhZG93Oi0ycHggMCAwICNlNmU2ZTYsNXB4IDAgMCAjZTZlNmU2fS5mbGF0cGlja3ItY2FsZW5kYXIgLmhhc1dlZWtzIC5kYXlDb250YWluZXIsLmZsYXRwaWNrci1jYWxlbmRhciAuaGFzVGltZSAuZGF5Q29udGFpbmVye2JvcmRlci1ib3R0b206MDtib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czowO2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6MH0uZmxhdHBpY2tyLWNhbGVuZGFyIC5oYXNXZWVrcyAuZGF5Q29udGFpbmVye2JvcmRlci1sZWZ0OjB9LmZsYXRwaWNrci1jYWxlbmRhci5oYXNUaW1lIC5mbGF0cGlja3ItdGltZXtoZWlnaHQ6NDBweDtib3JkZXItdG9wOjFweCBzb2xpZCAjZTZlNmU2fS5mbGF0cGlja3ItY2FsZW5kYXIubm9DYWxlbmRhci5oYXNUaW1lIC5mbGF0cGlja3ItdGltZXtoZWlnaHQ6YXV0b30uZmxhdHBpY2tyLWNhbGVuZGFyOmJlZm9yZSwuZmxhdHBpY2tyLWNhbGVuZGFyOmFmdGVye3Bvc2l0aW9uOmFic29sdXRlO2Rpc3BsYXk6YmxvY2s7cG9pbnRlci1ldmVudHM6bm9uZTtib3JkZXI6c29saWQgdHJhbnNwYXJlbnQ7Y29udGVudDonJztoZWlnaHQ6MDt3aWR0aDowO2xlZnQ6MjJweH0uZmxhdHBpY2tyLWNhbGVuZGFyLnJpZ2h0TW9zdDpiZWZvcmUsLmZsYXRwaWNrci1jYWxlbmRhci5hcnJvd1JpZ2h0OmJlZm9yZSwuZmxhdHBpY2tyLWNhbGVuZGFyLnJpZ2h0TW9zdDphZnRlciwuZmxhdHBpY2tyLWNhbGVuZGFyLmFycm93UmlnaHQ6YWZ0ZXJ7bGVmdDphdXRvO3JpZ2h0OjIycHh9LmZsYXRwaWNrci1jYWxlbmRhci5hcnJvd0NlbnRlcjpiZWZvcmUsLmZsYXRwaWNrci1jYWxlbmRhci5hcnJvd0NlbnRlcjphZnRlcntsZWZ0OjUwJTtyaWdodDo1MCV9LmZsYXRwaWNrci1jYWxlbmRhcjpiZWZvcmV7Ym9yZGVyLXdpZHRoOjVweDttYXJnaW46MCAtNXB4fS5mbGF0cGlja3ItY2FsZW5kYXI6YWZ0ZXJ7Ym9yZGVyLXdpZHRoOjRweDttYXJnaW46MCAtNHB4fS5mbGF0cGlja3ItY2FsZW5kYXIuYXJyb3dUb3A6YmVmb3JlLC5mbGF0cGlja3ItY2FsZW5kYXIuYXJyb3dUb3A6YWZ0ZXJ7Ym90dG9tOjEwMCV9LmZsYXRwaWNrci1jYWxlbmRhci5hcnJvd1RvcDpiZWZvcmV7Ym9yZGVyLWJvdHRvbS1jb2xvcjojZTZlNmU2fS5mbGF0cGlja3ItY2FsZW5kYXIuYXJyb3dUb3A6YWZ0ZXJ7Ym9yZGVyLWJvdHRvbS1jb2xvcjojZmZmfS5mbGF0cGlja3ItY2FsZW5kYXIuYXJyb3dCb3R0b206YmVmb3JlLC5mbGF0cGlja3ItY2FsZW5kYXIuYXJyb3dCb3R0b206YWZ0ZXJ7dG9wOjEwMCV9LmZsYXRwaWNrci1jYWxlbmRhci5hcnJvd0JvdHRvbTpiZWZvcmV7Ym9yZGVyLXRvcC1jb2xvcjojZTZlNmU2fS5mbGF0cGlja3ItY2FsZW5kYXIuYXJyb3dCb3R0b206YWZ0ZXJ7Ym9yZGVyLXRvcC1jb2xvcjojZmZmfS5mbGF0cGlja3ItY2FsZW5kYXI6Zm9jdXN7b3V0bGluZTowfS5mbGF0cGlja3Itd3JhcHBlcntwb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5OmlubGluZS1ibG9ja30uZmxhdHBpY2tyLW1vbnRoc3tkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4fS5mbGF0cGlja3ItbW9udGhzIC5mbGF0cGlja3ItbW9udGh7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtjb2xvcjpyZ2JhKDAsMCwwLDAuOSk7ZmlsbDpyZ2JhKDAsMCwwLDAuOSk7aGVpZ2h0OjM0cHg7bGluZS1oZWlnaHQ6MTt0ZXh0LWFsaWduOmNlbnRlcjtwb3NpdGlvbjpyZWxhdGl2ZTstd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7LW1vei11c2VyLXNlbGVjdDpub25lOy1tcy11c2VyLXNlbGVjdDpub25lO3VzZXItc2VsZWN0Om5vbmU7b3ZlcmZsb3c6aGlkZGVuOy13ZWJraXQtYm94LWZsZXg6MTstd2Via2l0LWZsZXg6MTstbXMtZmxleDoxO2ZsZXg6MX0uZmxhdHBpY2tyLW1vbnRocyAuZmxhdHBpY2tyLXByZXYtbW9udGgsLmZsYXRwaWNrci1tb250aHMgLmZsYXRwaWNrci1uZXh0LW1vbnRoe3RleHQtZGVjb3JhdGlvbjpub25lO2N1cnNvcjpwb2ludGVyO3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2hlaWdodDozNHB4O3BhZGRpbmc6MTBweDt6LWluZGV4OjM7Y29sb3I6cmdiYSgwLDAsMCwwLjkpO2ZpbGw6cmdiYSgwLDAsMCwwLjkpfS5mbGF0cGlja3ItbW9udGhzIC5mbGF0cGlja3ItcHJldi1tb250aC5mbGF0cGlja3ItZGlzYWJsZWQsLmZsYXRwaWNrci1tb250aHMgLmZsYXRwaWNrci1uZXh0LW1vbnRoLmZsYXRwaWNrci1kaXNhYmxlZHtkaXNwbGF5Om5vbmV9LmZsYXRwaWNrci1tb250aHMgLmZsYXRwaWNrci1wcmV2LW1vbnRoIGksLmZsYXRwaWNrci1tb250aHMgLmZsYXRwaWNrci1uZXh0LW1vbnRoIGl7cG9zaXRpb246cmVsYXRpdmV9LmZsYXRwaWNrci1tb250aHMgLmZsYXRwaWNrci1wcmV2LW1vbnRoLmZsYXRwaWNrci1wcmV2LW1vbnRoLC5mbGF0cGlja3ItbW9udGhzIC5mbGF0cGlja3ItbmV4dC1tb250aC5mbGF0cGlja3ItcHJldi1tb250aHtsZWZ0OjB9IC5mbGF0cGlja3ItbW9udGhzIC5mbGF0cGlja3ItcHJldi1tb250aC5mbGF0cGlja3ItbmV4dC1tb250aCwuZmxhdHBpY2tyLW1vbnRocyAuZmxhdHBpY2tyLW5leHQtbW9udGguZmxhdHBpY2tyLW5leHQtbW9udGh7cmlnaHQ6MH0gLmZsYXRwaWNrci1tb250aHMgLmZsYXRwaWNrci1wcmV2LW1vbnRoOmhvdmVyLC5mbGF0cGlja3ItbW9udGhzIC5mbGF0cGlja3ItbmV4dC1tb250aDpob3Zlcntjb2xvcjojOTU5ZWE5fS5mbGF0cGlja3ItbW9udGhzIC5mbGF0cGlja3ItcHJldi1tb250aDpob3ZlciBzdmcsLmZsYXRwaWNrci1tb250aHMgLmZsYXRwaWNrci1uZXh0LW1vbnRoOmhvdmVyIHN2Z3tmaWxsOiNmNjQ3NDd9LmZsYXRwaWNrci1tb250aHMgLmZsYXRwaWNrci1wcmV2LW1vbnRoIHN2ZywuZmxhdHBpY2tyLW1vbnRocyAuZmxhdHBpY2tyLW5leHQtbW9udGggc3Zne3dpZHRoOjE0cHg7aGVpZ2h0OjE0cHh9LmZsYXRwaWNrci1tb250aHMgLmZsYXRwaWNrci1wcmV2LW1vbnRoIHN2ZyBwYXRoLC5mbGF0cGlja3ItbW9udGhzIC5mbGF0cGlja3ItbmV4dC1tb250aCBzdmcgcGF0aHstd2Via2l0LXRyYW5zaXRpb246ZmlsbCAuMXM7dHJhbnNpdGlvbjpmaWxsIC4xcztmaWxsOmluaGVyaXR9Lm51bUlucHV0V3JhcHBlcntwb3NpdGlvbjpyZWxhdGl2ZTtoZWlnaHQ6YXV0b30ubnVtSW5wdXRXcmFwcGVyIGlucHV0LC5udW1JbnB1dFdyYXBwZXIgc3BhbntkaXNwbGF5OmlubGluZS1ibG9ja30ubnVtSW5wdXRXcmFwcGVyIGlucHV0e3dpZHRoOjEwMCV9Lm51bUlucHV0V3JhcHBlciBpbnB1dDo6LW1zLWNsZWFye2Rpc3BsYXk6bm9uZX0ubnVtSW5wdXRXcmFwcGVyIGlucHV0Ojotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uLC5udW1JbnB1dFdyYXBwZXIgaW5wdXQ6Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b257bWFyZ2luOjA7LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmV9Lm51bUlucHV0V3JhcHBlciBzcGFue3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjA7d2lkdGg6MTRweDtwYWRkaW5nOjAgNHB4IDAgMnB4O2hlaWdodDo1MCU7bGluZS1oZWlnaHQ6NTAlO29wYWNpdHk6MDtjdXJzb3I6cG9pbnRlcjtib3JkZXI6MXB4IHNvbGlkIHJnYmEoNTcsNTcsNTcsMC4xNSk7LXdlYmtpdC1ib3gtc2l6aW5nOmJvcmRlci1ib3g7Ym94LXNpemluZzpib3JkZXItYm94fS5udW1JbnB1dFdyYXBwZXIgc3Bhbjpob3ZlcntiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsMC4xKX0ubnVtSW5wdXRXcmFwcGVyIHNwYW46YWN0aXZle2JhY2tncm91bmQ6cmdiYSgwLDAsMCwwLjIpfS5udW1JbnB1dFdyYXBwZXIgc3BhbjphZnRlcntkaXNwbGF5OmJsb2NrO2NvbnRlbnQ6IiI7cG9zaXRpb246YWJzb2x1dGV9Lm51bUlucHV0V3JhcHBlciBzcGFuLmFycm93VXB7dG9wOjA7Ym9yZGVyLWJvdHRvbTowfS5udW1JbnB1dFdyYXBwZXIgc3Bhbi5hcnJvd1VwOmFmdGVye2JvcmRlci1sZWZ0OjRweCBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItcmlnaHQ6NHB4IHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1ib3R0b206NHB4IHNvbGlkIHJnYmEoNTcsNTcsNTcsMC42KTt0b3A6MjYlfS5udW1JbnB1dFdyYXBwZXIgc3Bhbi5hcnJvd0Rvd257dG9wOjUwJX0ubnVtSW5wdXRXcmFwcGVyIHNwYW4uYXJyb3dEb3duOmFmdGVye2JvcmRlci1sZWZ0OjRweCBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItcmlnaHQ6NHB4IHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci10b3A6NHB4IHNvbGlkIHJnYmEoNTcsNTcsNTcsMC42KTt0b3A6NDAlfS5udW1JbnB1dFdyYXBwZXIgc3BhbiBzdmd7d2lkdGg6aW5oZXJpdDtoZWlnaHQ6YXV0b30ubnVtSW5wdXRXcmFwcGVyIHNwYW4gc3ZnIHBhdGh7ZmlsbDpyZ2JhKDAsMCwwLDAuNSl9Lm51bUlucHV0V3JhcHBlcjpob3ZlcntiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsMC4wNSl9Lm51bUlucHV0V3JhcHBlcjpob3ZlciBzcGFue29wYWNpdHk6MX0uZmxhdHBpY2tyLWN1cnJlbnQtbW9udGh7Zm9udC1zaXplOjEzNSU7bGluZS1oZWlnaHQ6aW5oZXJpdDtmb250LXdlaWdodDozMDA7Y29sb3I6aW5oZXJpdDtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDo3NSU7bGVmdDoxMi41JTtwYWRkaW5nOjcuNDhweCAwIDAgMDtsaW5lLWhlaWdodDoxO2hlaWdodDozNHB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrO3RleHQtYWxpZ246Y2VudGVyOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsMCwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwwLDApfS5mbGF0cGlja3ItY3VycmVudC1tb250aCBzcGFuLmN1ci1tb250aHtmb250LWZhbWlseTppbmhlcml0O2ZvbnQtd2VpZ2h0OjcwMDtjb2xvcjppbmhlcml0O2Rpc3BsYXk6aW5saW5lLWJsb2NrO21hcmdpbi1sZWZ0Oi41Y2g7cGFkZGluZzowfS5mbGF0cGlja3ItY3VycmVudC1tb250aCBzcGFuLmN1ci1tb250aDpob3ZlcntiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsMC4wNSl9LmZsYXRwaWNrci1jdXJyZW50LW1vbnRoIC5udW1JbnB1dFdyYXBwZXJ7d2lkdGg6NmNoO3dpZHRoOjdjaFwwO2Rpc3BsYXk6aW5saW5lLWJsb2NrfS5mbGF0cGlja3ItY3VycmVudC1tb250aCAubnVtSW5wdXRXcmFwcGVyIHNwYW4uYXJyb3dVcDphZnRlcntib3JkZXItYm90dG9tLWNvbG9yOnJnYmEoMCwwLDAsMC45KX0uZmxhdHBpY2tyLWN1cnJlbnQtbW9udGggLm51bUlucHV0V3JhcHBlciBzcGFuLmFycm93RG93bjphZnRlcntib3JkZXItdG9wLWNvbG9yOnJnYmEoMCwwLDAsMC45KX0uZmxhdHBpY2tyLWN1cnJlbnQtbW9udGggaW5wdXQuY3VyLXllYXJ7YmFja2dyb3VuZDp0cmFuc3BhcmVudDstd2Via2l0LWJveC1zaXppbmc6Ym9yZGVyLWJveDtib3gtc2l6aW5nOmJvcmRlci1ib3g7Y29sb3I6aW5oZXJpdDtjdXJzb3I6dGV4dDtwYWRkaW5nOjAgMCAwIC41Y2g7bWFyZ2luOjA7ZGlzcGxheTppbmxpbmUtYmxvY2s7Zm9udC1zaXplOmluaGVyaXQ7Zm9udC1mYW1pbHk6aW5oZXJpdDtmb250LXdlaWdodDozMDA7bGluZS1oZWlnaHQ6aW5oZXJpdDtoZWlnaHQ6YXV0bztib3JkZXI6MDtib3JkZXItcmFkaXVzOjA7dmVydGljYWwtYWxpZ246aW5pdGlhbDstd2Via2l0LWFwcGVhcmFuY2U6dGV4dGZpZWxkOy1tb3otYXBwZWFyYW5jZTp0ZXh0ZmllbGQ7YXBwZWFyYW5jZTp0ZXh0ZmllbGR9LmZsYXRwaWNrci1jdXJyZW50LW1vbnRoIGlucHV0LmN1ci15ZWFyOmZvY3Vze291dGxpbmU6MH0uZmxhdHBpY2tyLWN1cnJlbnQtbW9udGggaW5wdXQuY3VyLXllYXJbZGlzYWJsZWRdLC5mbGF0cGlja3ItY3VycmVudC1tb250aCBpbnB1dC5jdXIteWVhcltkaXNhYmxlZF06aG92ZXJ7Zm9udC1zaXplOjEwMCU7Y29sb3I6cmdiYSgwLDAsMCwwLjUpO2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7cG9pbnRlci1ldmVudHM6bm9uZX0uZmxhdHBpY2tyLWN1cnJlbnQtbW9udGggLmZsYXRwaWNrci1tb250aERyb3Bkb3duLW1vbnRoc3thcHBlYXJhbmNlOm1lbnVsaXN0O2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Ym9yZGVyOm5vbmU7Ym9yZGVyLXJhZGl1czowO2JveC1zaXppbmc6Ym9yZGVyLWJveDtjb2xvcjppbmhlcml0O2N1cnNvcjpwb2ludGVyO2ZvbnQtc2l6ZTppbmhlcml0O2ZvbnQtZmFtaWx5OmluaGVyaXQ7Zm9udC13ZWlnaHQ6MzAwO2hlaWdodDphdXRvO2xpbmUtaGVpZ2h0OmluaGVyaXQ7bWFyZ2luOi0xcHggMCAwIDA7b3V0bGluZTpub25lO3BhZGRpbmc6MCAwIDAgLjVjaDtwb3NpdGlvbjpyZWxhdGl2ZTt2ZXJ0aWNhbC1hbGlnbjppbml0aWFsOy13ZWJraXQtYm94LXNpemluZzpib3JkZXItYm94Oy13ZWJraXQtYXBwZWFyYW5jZTptZW51bGlzdDstbW96LWFwcGVhcmFuY2U6bWVudWxpc3Q7d2lkdGg6YXV0b30uZmxhdHBpY2tyLWN1cnJlbnQtbW9udGggLmZsYXRwaWNrci1tb250aERyb3Bkb3duLW1vbnRoczpmb2N1cywuZmxhdHBpY2tyLWN1cnJlbnQtbW9udGggLmZsYXRwaWNrci1tb250aERyb3Bkb3duLW1vbnRoczphY3RpdmV7b3V0bGluZTpub25lfS5mbGF0cGlja3ItY3VycmVudC1tb250aCAuZmxhdHBpY2tyLW1vbnRoRHJvcGRvd24tbW9udGhzOmhvdmVye2JhY2tncm91bmQ6cmdiYSgwLDAsMCwwLjA1KX0uZmxhdHBpY2tyLWN1cnJlbnQtbW9udGggLmZsYXRwaWNrci1tb250aERyb3Bkb3duLW1vbnRocyAuZmxhdHBpY2tyLW1vbnRoRHJvcGRvd24tbW9udGh7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtvdXRsaW5lOm5vbmU7cGFkZGluZzowfS5mbGF0cGlja3Itd2Vla2RheXN7YmFja2dyb3VuZDp0cmFuc3BhcmVudDt0ZXh0LWFsaWduOmNlbnRlcjtvdmVyZmxvdzpoaWRkZW47d2lkdGg6MTAwJTtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYm94LWFsaWduOmNlbnRlcjstd2Via2l0LWFsaWduLWl0ZW1zOmNlbnRlcjstbXMtZmxleC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO2hlaWdodDoyOHB4fS5mbGF0cGlja3Itd2Vla2RheXMgLmZsYXRwaWNrci13ZWVrZGF5Y29udGFpbmVye2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1ib3gtZmxleDoxOy13ZWJraXQtZmxleDoxOy1tcy1mbGV4OjE7ZmxleDoxfXNwYW4uZmxhdHBpY2tyLXdlZWtkYXl7Y3Vyc29yOmRlZmF1bHQ7Zm9udC1zaXplOjkwJTtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O2NvbG9yOnJnYmEoMCwwLDAsMC41NCk7bGluZS1oZWlnaHQ6MTttYXJnaW46MDt0ZXh0LWFsaWduOmNlbnRlcjtkaXNwbGF5OmJsb2NrOy13ZWJraXQtYm94LWZsZXg6MTstd2Via2l0LWZsZXg6MTstbXMtZmxleDoxO2ZsZXg6MTtmb250LXdlaWdodDpib2xkZXJ9LmRheUNvbnRhaW5lciwuZmxhdHBpY2tyLXdlZWtze3BhZGRpbmc6MXB4IDAgMCAwfS5mbGF0cGlja3ItZGF5c3twb3NpdGlvbjpyZWxhdGl2ZTtvdmVyZmxvdzpoaWRkZW47ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleDstd2Via2l0LWJveC1hbGlnbjpzdGFydDstd2Via2l0LWFsaWduLWl0ZW1zOmZsZXgtc3RhcnQ7LW1zLWZsZXgtYWxpZ246c3RhcnQ7YWxpZ24taXRlbXM6ZmxleC1zdGFydDt3aWR0aDozMDcuODc1cHh9LmZsYXRwaWNrci1kYXlzOmZvY3Vze291dGxpbmU6MH0uZGF5Q29udGFpbmVye3BhZGRpbmc6MDtvdXRsaW5lOjA7dGV4dC1hbGlnbjpsZWZ0O3dpZHRoOjMwNy44NzVweDttaW4td2lkdGg6MzA3Ljg3NXB4O21heC13aWR0aDozMDcuODc1cHg7LXdlYmtpdC1ib3gtc2l6aW5nOmJvcmRlci1ib3g7Ym94LXNpemluZzpib3JkZXItYm94O2Rpc3BsYXk6aW5saW5lLWJsb2NrO2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1mbGV4LXdyYXA6d3JhcDtmbGV4LXdyYXA6d3JhcDstbXMtZmxleC13cmFwOndyYXA7LW1zLWZsZXgtcGFjazpqdXN0aWZ5Oy13ZWJraXQtanVzdGlmeS1jb250ZW50OnNwYWNlLWFyb3VuZDtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYXJvdW5kOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsMCwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwwLDApO29wYWNpdHk6MX0uZGF5Q29udGFpbmVyICsgLmRheUNvbnRhaW5lcnstd2Via2l0LWJveC1zaGFkb3c6LTFweCAwIDAgI2U2ZTZlNjtib3gtc2hhZG93Oi0xcHggMCAwICNlNmU2ZTZ9LmZsYXRwaWNrci1kYXl7YmFja2dyb3VuZDpub25lO2JvcmRlcjoxcHggc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLXJhZGl1czoxNTBweDstd2Via2l0LWJveC1zaXppbmc6Ym9yZGVyLWJveDtib3gtc2l6aW5nOmJvcmRlci1ib3g7Y29sb3I6IzM5MzkzOTtjdXJzb3I6cG9pbnRlcjtmb250LXdlaWdodDo0MDA7d2lkdGg6MTQuMjg1NzE0MyU7LXdlYmtpdC1mbGV4LWJhc2lzOjE0LjI4NTcxNDMlOy1tcy1mbGV4LXByZWZlcnJlZC1zaXplOjE0LjI4NTcxNDMlO2ZsZXgtYmFzaXM6MTQuMjg1NzE0MyU7bWF4LXdpZHRoOjM5cHg7aGVpZ2h0OjM5cHg7bGluZS1oZWlnaHQ6MzlweDttYXJnaW46MDtkaXNwbGF5OmlubGluZS1ibG9jaztwb3NpdGlvbjpyZWxhdGl2ZTstd2Via2l0LWJveC1wYWNrOmNlbnRlcjstd2Via2l0LWp1c3RpZnktY29udGVudDpjZW50ZXI7LW1zLWZsZXgtcGFjazpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjt0ZXh0LWFsaWduOmNlbnRlcn0uZmxhdHBpY2tyLWRheS5pblJhbmdlLC5mbGF0cGlja3ItZGF5LnByZXZNb250aERheS5pblJhbmdlLC5mbGF0cGlja3ItZGF5Lm5leHRNb250aERheS5pblJhbmdlLC5mbGF0cGlja3ItZGF5LnRvZGF5LmluUmFuZ2UsLmZsYXRwaWNrci1kYXkucHJldk1vbnRoRGF5LnRvZGF5LmluUmFuZ2UsLmZsYXRwaWNrci1kYXkubmV4dE1vbnRoRGF5LnRvZGF5LmluUmFuZ2UsLmZsYXRwaWNrci1kYXk6aG92ZXIsLmZsYXRwaWNrci1kYXkucHJldk1vbnRoRGF5OmhvdmVyLC5mbGF0cGlja3ItZGF5Lm5leHRNb250aERheTpob3ZlciwuZmxhdHBpY2tyLWRheTpmb2N1cywuZmxhdHBpY2tyLWRheS5wcmV2TW9udGhEYXk6Zm9jdXMsLmZsYXRwaWNrci1kYXkubmV4dE1vbnRoRGF5OmZvY3Vze2N1cnNvcjpwb2ludGVyO291dGxpbmU6MDtiYWNrZ3JvdW5kOiNlNmU2ZTY7Ym9yZGVyLWNvbG9yOiNlNmU2ZTZ9LmZsYXRwaWNrci1kYXkudG9kYXl7Ym9yZGVyLWNvbG9yOiM5NTllYTl9LmZsYXRwaWNrci1kYXkudG9kYXk6aG92ZXIsLmZsYXRwaWNrci1kYXkudG9kYXk6Zm9jdXN7Ym9yZGVyLWNvbG9yOiM5NTllYTk7YmFja2dyb3VuZDojOTU5ZWE5O2NvbG9yOiNmZmZ9LmZsYXRwaWNrci1kYXkuc2VsZWN0ZWQsLmZsYXRwaWNrci1kYXkuc3RhcnRSYW5nZSwuZmxhdHBpY2tyLWRheS5lbmRSYW5nZSwuZmxhdHBpY2tyLWRheS5zZWxlY3RlZC5pblJhbmdlLC5mbGF0cGlja3ItZGF5LnN0YXJ0UmFuZ2UuaW5SYW5nZSwuZmxhdHBpY2tyLWRheS5lbmRSYW5nZS5pblJhbmdlLC5mbGF0cGlja3ItZGF5LnNlbGVjdGVkOmZvY3VzLC5mbGF0cGlja3ItZGF5LnN0YXJ0UmFuZ2U6Zm9jdXMsLmZsYXRwaWNrci1kYXkuZW5kUmFuZ2U6Zm9jdXMsLmZsYXRwaWNrci1kYXkuc2VsZWN0ZWQ6aG92ZXIsLmZsYXRwaWNrci1kYXkuc3RhcnRSYW5nZTpob3ZlciwuZmxhdHBpY2tyLWRheS5lbmRSYW5nZTpob3ZlciwuZmxhdHBpY2tyLWRheS5zZWxlY3RlZC5wcmV2TW9udGhEYXksLmZsYXRwaWNrci1kYXkuc3RhcnRSYW5nZS5wcmV2TW9udGhEYXksLmZsYXRwaWNrci1kYXkuZW5kUmFuZ2UucHJldk1vbnRoRGF5LC5mbGF0cGlja3ItZGF5LnNlbGVjdGVkLm5leHRNb250aERheSwuZmxhdHBpY2tyLWRheS5zdGFydFJhbmdlLm5leHRNb250aERheSwuZmxhdHBpY2tyLWRheS5lbmRSYW5nZS5uZXh0TW9udGhEYXl7YmFja2dyb3VuZDojNTY5ZmY3Oy13ZWJraXQtYm94LXNoYWRvdzpub25lO2JveC1zaGFkb3c6bm9uZTtjb2xvcjojZmZmO2JvcmRlci1jb2xvcjojNTY5ZmY3fS5mbGF0cGlja3ItZGF5LnNlbGVjdGVkLnN0YXJ0UmFuZ2UsLmZsYXRwaWNrci1kYXkuc3RhcnRSYW5nZS5zdGFydFJhbmdlLC5mbGF0cGlja3ItZGF5LmVuZFJhbmdlLnN0YXJ0UmFuZ2V7Ym9yZGVyLXJhZGl1czo1MHB4IDAgMCA1MHB4fS5mbGF0cGlja3ItZGF5LnNlbGVjdGVkLmVuZFJhbmdlLC5mbGF0cGlja3ItZGF5LnN0YXJ0UmFuZ2UuZW5kUmFuZ2UsLmZsYXRwaWNrci1kYXkuZW5kUmFuZ2UuZW5kUmFuZ2V7Ym9yZGVyLXJhZGl1czowIDUwcHggNTBweCAwfS5mbGF0cGlja3ItZGF5LnNlbGVjdGVkLnN0YXJ0UmFuZ2UgKyAuZW5kUmFuZ2U6bm90KDpudGgtY2hpbGQoN24rMSkpLC5mbGF0cGlja3ItZGF5LnN0YXJ0UmFuZ2Uuc3RhcnRSYW5nZSArIC5lbmRSYW5nZTpub3QoOm50aC1jaGlsZCg3bisxKSksLmZsYXRwaWNrci1kYXkuZW5kUmFuZ2Uuc3RhcnRSYW5nZSArIC5lbmRSYW5nZTpub3QoOm50aC1jaGlsZCg3bisxKSl7LXdlYmtpdC1ib3gtc2hhZG93Oi0xMHB4IDAgMCAjNTY5ZmY3O2JveC1zaGFkb3c6LTEwcHggMCAwICM1NjlmZjd9LmZsYXRwaWNrci1kYXkuc2VsZWN0ZWQuc3RhcnRSYW5nZS5lbmRSYW5nZSwuZmxhdHBpY2tyLWRheS5zdGFydFJhbmdlLnN0YXJ0UmFuZ2UuZW5kUmFuZ2UsLmZsYXRwaWNrci1kYXkuZW5kUmFuZ2Uuc3RhcnRSYW5nZS5lbmRSYW5nZXtib3JkZXItcmFkaXVzOjUwcHh9LmZsYXRwaWNrci1kYXkuaW5SYW5nZXtib3JkZXItcmFkaXVzOjA7LXdlYmtpdC1ib3gtc2hhZG93Oi01cHggMCAwICNlNmU2ZTYsNXB4IDAgMCAjZTZlNmU2O2JveC1zaGFkb3c6LTVweCAwIDAgI2U2ZTZlNiw1cHggMCAwICNlNmU2ZTZ9LmZsYXRwaWNrci1kYXkuZmxhdHBpY2tyLWRpc2FibGVkLC5mbGF0cGlja3ItZGF5LmZsYXRwaWNrci1kaXNhYmxlZDpob3ZlciwuZmxhdHBpY2tyLWRheS5wcmV2TW9udGhEYXksLmZsYXRwaWNrci1kYXkubmV4dE1vbnRoRGF5LC5mbGF0cGlja3ItZGF5Lm5vdEFsbG93ZWQsLmZsYXRwaWNrci1kYXkubm90QWxsb3dlZC5wcmV2TW9udGhEYXksLmZsYXRwaWNrci1kYXkubm90QWxsb3dlZC5uZXh0TW9udGhEYXl7Y29sb3I6cmdiYSg1Nyw1Nyw1NywwLjMpO2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50O2N1cnNvcjpkZWZhdWx0fS5mbGF0cGlja3ItZGF5LmZsYXRwaWNrci1kaXNhYmxlZCwuZmxhdHBpY2tyLWRheS5mbGF0cGlja3ItZGlzYWJsZWQ6aG92ZXJ7Y3Vyc29yOm5vdC1hbGxvd2VkO2NvbG9yOnJnYmEoNTcsNTcsNTcsMC4xKX0uZmxhdHBpY2tyLWRheS53ZWVrLnNlbGVjdGVke2JvcmRlci1yYWRpdXM6MDstd2Via2l0LWJveC1zaGFkb3c6LTVweCAwIDAgIzU2OWZmNyw1cHggMCAwICM1NjlmZjc7Ym94LXNoYWRvdzotNXB4IDAgMCAjNTY5ZmY3LDVweCAwIDAgIzU2OWZmN30uZmxhdHBpY2tyLWRheS5oaWRkZW57dmlzaWJpbGl0eTpoaWRkZW59LnJhbmdlTW9kZSAuZmxhdHBpY2tyLWRheXttYXJnaW4tdG9wOjFweH0uZmxhdHBpY2tyLXdlZWt3cmFwcGVye2Zsb2F0OmxlZnR9LmZsYXRwaWNrci13ZWVrd3JhcHBlciAuZmxhdHBpY2tyLXdlZWtze3BhZGRpbmc6MCAxMnB4Oy13ZWJraXQtYm94LXNoYWRvdzoxcHggMCAwICNlNmU2ZTY7Ym94LXNoYWRvdzoxcHggMCAwICNlNmU2ZTZ9LmZsYXRwaWNrci13ZWVrd3JhcHBlciAuZmxhdHBpY2tyLXdlZWtkYXl7ZmxvYXQ6bm9uZTt3aWR0aDoxMDAlO2xpbmUtaGVpZ2h0OjI4cHh9LmZsYXRwaWNrci13ZWVrd3JhcHBlciBzcGFuLmZsYXRwaWNrci1kYXksLmZsYXRwaWNrci13ZWVrd3JhcHBlciBzcGFuLmZsYXRwaWNrci1kYXk6aG92ZXJ7ZGlzcGxheTpibG9jazt3aWR0aDoxMDAlO21heC13aWR0aDpub25lO2NvbG9yOnJnYmEoNTcsNTcsNTcsMC4zKTtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O2N1cnNvcjpkZWZhdWx0O2JvcmRlcjpub25lfS5mbGF0cGlja3ItaW5uZXJDb250YWluZXJ7ZGlzcGxheTpibG9jaztkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYm94LXNpemluZzpib3JkZXItYm94O2JveC1zaXppbmc6Ym9yZGVyLWJveDtvdmVyZmxvdzpoaWRkZW59LmZsYXRwaWNrci1yQ29udGFpbmVye2Rpc3BsYXk6aW5saW5lLWJsb2NrO3BhZGRpbmc6MDstd2Via2l0LWJveC1zaXppbmc6Ym9yZGVyLWJveDtib3gtc2l6aW5nOmJvcmRlci1ib3h9LmZsYXRwaWNrci10aW1le3RleHQtYWxpZ246Y2VudGVyO291dGxpbmU6MDtkaXNwbGF5OmJsb2NrO2hlaWdodDowO2xpbmUtaGVpZ2h0OjQwcHg7bWF4LWhlaWdodDo0MHB4Oy13ZWJraXQtYm94LXNpemluZzpib3JkZXItYm94O2JveC1zaXppbmc6Ym9yZGVyLWJveDtvdmVyZmxvdzpoaWRkZW47ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleH0uZmxhdHBpY2tyLXRpbWU6YWZ0ZXJ7Y29udGVudDoiIjtkaXNwbGF5OnRhYmxlO2NsZWFyOmJvdGh9LmZsYXRwaWNrci10aW1lIC5udW1JbnB1dFdyYXBwZXJ7LXdlYmtpdC1ib3gtZmxleDoxOy13ZWJraXQtZmxleDoxOy1tcy1mbGV4OjE7ZmxleDoxO3dpZHRoOjQwJTtoZWlnaHQ6NDBweDtmbG9hdDpsZWZ0fS5mbGF0cGlja3ItdGltZSAubnVtSW5wdXRXcmFwcGVyIHNwYW4uYXJyb3dVcDphZnRlcntib3JkZXItYm90dG9tLWNvbG9yOiMzOTM5Mzl9LmZsYXRwaWNrci10aW1lIC5udW1JbnB1dFdyYXBwZXIgc3Bhbi5hcnJvd0Rvd246YWZ0ZXJ7Ym9yZGVyLXRvcC1jb2xvcjojMzkzOTM5fS5mbGF0cGlja3ItdGltZS5oYXNTZWNvbmRzIC5udW1JbnB1dFdyYXBwZXJ7d2lkdGg6MjYlfS5mbGF0cGlja3ItdGltZS50aW1lMjRociAubnVtSW5wdXRXcmFwcGVye3dpZHRoOjQ5JX0uZmxhdHBpY2tyLXRpbWUgaW5wdXR7YmFja2dyb3VuZDp0cmFuc3BhcmVudDstd2Via2l0LWJveC1zaGFkb3c6bm9uZTtib3gtc2hhZG93Om5vbmU7Ym9yZGVyOjA7Ym9yZGVyLXJhZGl1czowO3RleHQtYWxpZ246Y2VudGVyO21hcmdpbjowO3BhZGRpbmc6MDtoZWlnaHQ6aW5oZXJpdDtsaW5lLWhlaWdodDppbmhlcml0O2NvbG9yOiMzOTM5Mzk7Zm9udC1zaXplOjAuODc1cmVtIDtwb3NpdGlvbjpyZWxhdGl2ZTstd2Via2l0LWJveC1zaXppbmc6Ym9yZGVyLWJveDtib3gtc2l6aW5nOmJvcmRlci1ib3g7LXdlYmtpdC1hcHBlYXJhbmNlOnRleHRmaWVsZDstbW96LWFwcGVhcmFuY2U6dGV4dGZpZWxkO2FwcGVhcmFuY2U6dGV4dGZpZWxkfS5mbGF0cGlja3ItdGltZSBpbnB1dC5mbGF0cGlja3ItaG91cntmb250LXdlaWdodDpib2xkfS5mbGF0cGlja3ItdGltZSBpbnB1dC5mbGF0cGlja3ItbWludXRlLC5mbGF0cGlja3ItdGltZSBpbnB1dC5mbGF0cGlja3Itc2Vjb25ke2ZvbnQtd2VpZ2h0OjQwMH0uZmxhdHBpY2tyLXRpbWUgaW5wdXQ6Zm9jdXN7b3V0bGluZTowO2JvcmRlcjowfS5mbGF0cGlja3ItdGltZSAuZmxhdHBpY2tyLXRpbWUtc2VwYXJhdG9yLC5mbGF0cGlja3ItdGltZSAuZmxhdHBpY2tyLWFtLXBte2hlaWdodDppbmhlcml0O2Zsb2F0OmxlZnQ7bGluZS1oZWlnaHQ6aW5oZXJpdDtjb2xvcjojMzkzOTM5O2ZvbnQtd2VpZ2h0OmJvbGQ7d2lkdGg6MiU7LXdlYmtpdC11c2VyLXNlbGVjdDpub25lOy1tb3otdXNlci1zZWxlY3Q6bm9uZTstbXMtdXNlci1zZWxlY3Q6bm9uZTt1c2VyLXNlbGVjdDpub25lOy13ZWJraXQtYWxpZ24tc2VsZjpjZW50ZXI7LW1zLWZsZXgtaXRlbS1hbGlnbjpjZW50ZXI7YWxpZ24tc2VsZjpjZW50ZXJ9LmZsYXRwaWNrci10aW1lIC5mbGF0cGlja3ItYW0tcG17b3V0bGluZTowO3dpZHRoOjE4JTtjdXJzb3I6cG9pbnRlcjt0ZXh0LWFsaWduOmNlbnRlcjtmb250LXdlaWdodDo0MDB9LmZsYXRwaWNrci10aW1lIGlucHV0OmhvdmVyLC5mbGF0cGlja3ItdGltZSAuZmxhdHBpY2tyLWFtLXBtOmhvdmVyLC5mbGF0cGlja3ItdGltZSBpbnB1dDpmb2N1cywuZmxhdHBpY2tyLXRpbWUgLmZsYXRwaWNrci1hbS1wbTpmb2N1c3tiYWNrZ3JvdW5kOiNlZWV9LmZsYXRwaWNrci1pbnB1dFtyZWFkb25seV17Y3Vyc29yOnBvaW50ZXJ9QC13ZWJraXQta2V5ZnJhbWVzIGZwRmFkZUluRG93bntmcm9te29wYWNpdHk6MDstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLC0yMHB4LDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLC0yMHB4LDApfXRve29wYWNpdHk6MTstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLDAsMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsMCwwKX19QGtleWZyYW1lcyBmcEZhZGVJbkRvd257ZnJvbXtvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwtMjBweCwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwtMjBweCwwKX10b3tvcGFjaXR5OjE7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwwLDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLDAsMCl9fQovKiogL2Nzcy9pbmxpbmUuZnIubmV3Y2Fycy5jc3MgKiovCmJ1dHRvbiNvbmV0cnVzdC1hY2NlcHQtYnRuLWhhbmRsZXIgeyBiYWNrZ3JvdW5kLWNvbG9yOiM5MTBhMmQgIWltcG9ydGFudDsgY29sb3I6I2ZmZmZmZiAhaW1wb3J0YW50OyBib3JkZXItY29sb3I6I2ZmZmZmZiAhaW1wb3J0YW50OyBib3JkZXItcmFkaXVzOjFweCAhaW1wb3J0YW50OyB9IGJ1dHRvbiNvbmV0cnVzdC1yZWplY3QtYWxsLWhhbmRsZXIgeyBiYWNrZ3JvdW5kLWNvbG9yOiM5MTBhMmQgIWltcG9ydGFudDsgY29sb3I6IzkxMGEyZCAhaW1wb3J0YW50OyBib3JkZXItY29sb3I6IzkxMGEyZCAhaW1wb3J0YW50OyBib3JkZXItcmFkaXVzOjFweCAhaW1wb3J0YW50OyB9IGJ1dHRvbiNvbmV0cnVzdC1wYy1idG4taGFuZGxlciB7IGJhY2tncm91bmQtY29sb3I6I2ZmZmZmZiAhaW1wb3J0YW50OyBjb2xvcjojNjk2OTY5ICFpbXBvcnRhbnQ7IGJvcmRlci1jb2xvcjojOTA5MDkwICFpbXBvcnRhbnQ7IGJvcmRlci1yYWRpdXM6MXB4ICFpbXBvcnRhbnQ7IH0gYnV0dG9uLnNhdmUtcHJlZmVyZW5jZS1idG4taGFuZGxlci5vbmV0cnVzdC1jbG9zZS1idG4taGFuZGxlciB7IGJhY2tncm91bmQtY29sb3I6I2ZmZmZmZiAhaW1wb3J0YW50OyBjb2xvcjojOTEwYTJkICFpbXBvcnRhbnQ7IGJvcmRlci1jb2xvcjojOTEwYTJkICFpbXBvcnRhbnQ7IGJvcmRlci1yYWRpdXM6MXB4ICFpbXBvcnRhbnQ7IH0gYnV0dG9uLm90LXBjLXJlZnVzZS1hbGwtaGFuZGxlciB7IGJhY2tncm91bmQtY29sb3I6IzkxMGEyZCAhaW1wb3J0YW50OyBjb2xvcjojOTEwYTJkICFpbXBvcnRhbnQ7IGJvcmRlci1jb2xvcjojOTEwYTJkICFpbXBvcnRhbnQ7IGJvcmRlci1yYWRpdXM6MXB4ICFpbXBvcnRhbnQ7IH0gYnV0dG9uI2FjY2VwdC1yZWNvbW1lbmRlZC1idG4taGFuZGxlcnsgYmFja2dyb3VuZC1jb2xvcjojOTEwYTJkICFpbXBvcnRhbnQ7IGNvbG9yOiNmZmZmZmYgIWltcG9ydGFudDsgYm9yZGVyLWNvbG9yOiNmZmZmZmYgIWltcG9ydGFudDsgZm9udC1zaXplOnNtYWxsICFpbXBvcnRhbnQ7IGJvcmRlci1yYWRpdXM6MXB4ICFpbXBvcnRhbnQ7IH0gLm90LXBjLWxvZ28gaW1neyBjb250ZW50OnVybCgiL2ltYWdlcy9Mb2dvT25lVHJ1c3QvbWF6ZGEtbG9nby1vbmV0cnVzdC5zdmciKSAhaW1wb3J0YW50OyB9ICNvbmV0cnVzdC1wYy1zZGsgLm90LXBjLWxvZ297IHdpZHRoOjMwJSAhaW1wb3J0YW50OyBqdXN0aWZ5LWNvbnRlbnQ6bGVmdCAhaW1wb3J0YW50OyB9IC5vdC1ibnItbG9nb3sgY29udGVudDp1cmwoIi9pbWFnZXMvTG9nb09uZVRydXN0L21hemRhLWxvZ28tb25ldHJ1c3Quc3ZnIikgIWltcG9ydGFudDsgfSAjb25ldHJ1c3QtYmFubmVyLXNkay5vdC1ibnItdy1sb2dvIC5vdC1ibnItbG9nb3sgd2lkdGg6ODVweCAhaW1wb3J0YW50OyBoZWlnaHQ6YXV0byAhaW1wb3J0YW50OyBtYXJnaW4tbGVmdDoyNXB4ICFpbXBvcnRhbnQ7IH0gI29uZXRydXN0LWJhbm5lci1zZGsub3QtYm5yLXctbG9nbyAjb25ldHJ1c3QtcG9saWN5IHsgbWFyZ2luLWxlZnQ6MTEwcHggIWltcG9ydGFudDsgcGFkZGluZy1sZWZ0OjI1cHg7IH0gQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOjQyNXB4KXsgI29uZXRydXN0LWJhbm5lci1zZGsub3QtYm5yLXctbG9nbyAub3QtYm5yLWxvZ297IHBvc2l0aW9uOnJlbGF0aXZlOyBtYXJnaW46MTVweCAwIDEwcHggMCAhaW1wb3J0YW50OyB0cmFuc2Zvcm06aW5oZXJpdDsgem9vbTo0MCU7IH0gI29uZXRydXN0LWJhbm5lci1zZGsub3QtYm5yLXctbG9nbyAjb25ldHJ1c3QtcG9saWN5IHsgbWFyZ2luLWxlZnQ6MHB4ICFpbXBvcnRhbnQ7IHBhZGRpbmctbGVmdDowcHg7IG1hcmdpbi10b3A6NXB4OyB9ICNvbmV0cnVzdC1jb25zZW50LXNkayAjb25ldHJ1c3QtcG9saWN5LXRpdGxleyBmb250LXNpemU6MWVtICFpbXBvcnRhbnQ7IH0gI29uZXRydXN0LWJhbm5lci1zZGsgI29uZXRydXN0LWFjY2VwdC1idG4taGFuZGxlciwgI29uZXRydXN0LWJhbm5lci1zZGsgI29uZXRydXN0LXJlamVjdC1hbGwtaGFuZGxlciwgI29uZXRydXN0LWJhbm5lci1zZGsgI29uZXRydXN0LXBjLWJ0bi1oYW5kbGVyeyBwYWRkaW5nOjEwcHggMTBweDsgfSAjb25ldHJ1c3QtYmFubmVyLXNkayBidXR0b24sICNvbmV0cnVzdC1wYy1zZGsgYnV0dG9uLCAjb3Qtc2RrLWNvb2tpZS1wb2xpY3kgYnV0dG9ueyBtYXJnaW4tYm90dG9tOjAuNXJlbTsgfSAjb25ldHJ1c3QtcGMtc2RrIGJ1dHRvbiB7IHdpZHRoOmF1dG87IH0gI29uZXRydXN0LWJhbm5lci1zZGsgLm90LXNkay1jb250YWluZXIsICNvbmV0cnVzdC1wYy1zZGsgLm90LXNkay1jb250YWluZXIsICNvdC1zZGstY29va2llLXBvbGljeSAub3Qtc2RrLWNvbnRhaW5lcnsgcGFkZGluZzo1cHggMjBweDsgfSAjb25ldHJ1c3QtYmFubmVyLXNkayAjb25ldHJ1c3QtcG9saWN5eyBtYXJnaW46MDsgfSAjb25ldHJ1c3QtYmFubmVyLXNkayAjb25ldHJ1c3QtYnV0dG9uLWdyb3VwICNvbmV0cnVzdC1hY2NlcHQtYnRuLWhhbmRsZXJ7IGZvbnQtc2l6ZTp2YXIoLS1mczApOyB9IH08L3N0eWxlPgo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgo8L3N0eWxlPgoJCgkJPCEtLSBPTzo6NjAwNTcxMGQyOTM5NTg5ZjBkYzcwYTNmMDYzZjNhNDggLS0+CgkJPGlucHV0IHR5cGU9ImhpZGRlbiIgdmFsdWU9IsOgIHZlbmRyZSIgaWQ9InRleHRGb3JTYWxlIj4KCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iRMOpdGFpbHMiIGlkPSJ0ZXh0RGV0YWlscyI+CgkJPGlucHV0IHR5cGU9ImhpZGRlbiIgdmFsdWU9IlRvdXMiIGlkPSJ0ZXh0QWxsIj4KCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iUHJpeCBSw6lkdWl0IiBpZD0idGV4dFJlZHVjZWQiPgoJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSJTw6lsZWN0aW9ubmV6IHVuZSBtYXJxdWUiIGlkPSJ0ZXh0TWFudVRpdGxlIj4KCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iVm9pciBub3MgbW9kw6hsZXMgTWF6ZGEiIGlkPSJ0ZXh0QnJhbmRUaXRsZSI+CgkJPGlucHV0IHR5cGU9ImhpZGRlbiIgdmFsdWU9Ik1vZMOobGVzIE1hemRhIG5ldWZzIDIwMjUgJmFtcDsgMjAyNiIgaWQ9InRleHRNYWluVGl0bGUiPgoJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSJBdXRvcyBuZXV2ZXMgTWF6ZGEgMjAyNSAmYW1wOyAyMDI2IMOgIHskTkVXQ0lUWX0iIGlkPSJ0ZXh0Q2FyVGl0bGUiPgoJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSJWVVMgbmV1ZnMgTWF6ZGEgMjAyNSAmYW1wOyAyMDI2IMOgIHskTkVXQ0lUWX0iIGlkPSJ0ZXh0U1VWVGl0bGUiPgoJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSJDYW1pb25zIG5ldWZzIE1hemRhIDIwMjUgJmFtcDsgMjAyNiDDoCB7JE5FV0NJVFl9IiBpZD0idGV4dFRydWNrVGl0bGUiPgoJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSJIeWJyaWRlcyBuZXV2ZXMgTWF6ZGEgMjAyNSAmYW1wOyAyMDI2IMOgIHskTkVXQ0lUWX0iIGlkPSJ0ZXh0SHlicmlkVGl0bGUiPgoJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSLDiWxlY3RyaXF1ZSBuZXV2ZXMgTWF6ZGEgMjAyNSAmYW1wOyAyMDI2IMOgIHskTkVXQ0lUWX0iIGlkPSJ0ZXh0RWxlY3RyaWNUaXRsZSI+CgkJPGlucHV0IHR5cGU9ImhpZGRlbiIgdmFsdWU9Im5vdXZlYXUiIGlkPSJ0ZXh0TmV3Ij4KCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iTWF6ZGEgeyRDTEFTU05BTUV9IDIwMjUgJmFtcDsgMjAyNiIgaWQ9InRleHRDbGFzc1ZpZXciPgoJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSJBY2N1ZWlsIiBpZD0idGV4dEhvbWUiPgoJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSIvIiBpZD0idXJpSG9tZSI+CgkJPGlucHV0IHR5cGU9ImhpZGRlbiIgdmFsdWU9Ii9uZXVmcy9ub3V2ZWF1Lmh0bWwiIGlkPSJ1cmlOZXdDYXJzIj4KCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iL25ldWZzLyIgaWQ9InRleHROZXdDYXJGb2xkZXIiPgoJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSJOb3MgbWFycXVlcyIgaWQ9InRleHRNYW51U2VsZWN0Ij4KCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iRW4gU3RvY2sgLyBEaXNwb25pYmxlcyIgaWQ9ImluU3RvY2tMYWJlbCI+CgkJPGlucHV0IHR5cGU9ImhpZGRlbiIgdmFsdWU9Ii9pbWFnZXMvIiBpZD0idGV4dEJhc2VJbWFnZVBhdGgiPgoJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSIvcHJveHlfYXViLyIgaWQ9ImJyYW5kSW1hZ2VQYXRoIj4KCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iYmNlOTZmZTQ0NmUxODgwZGExMjZkMzJkODE3ZWVmNzN8OTU0OTA2NTA1IiBpZD0iZW1haWxVc2VkQ2FycyI+CgkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYnJhbmQiIGNsYXNzPSJicmFuZGVtYWlsIiB2YWx1ZT0iIj4KCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJtb2RlbCIgY2xhc3M9Im1vZGVsZW1haWwiIHZhbHVlPSIiPgoJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImJyYW5kRW1haWxPdmVycmlkZSIgaWQ9ImJyYW5kRW1haWxPdmVycmlkZSIgdmFsdWU9IiI+CgkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYnJhbmRFbWFpbEFkZk92ZXJyaWRlIiBpZD0iYnJhbmRFbWFpbEFkZk92ZXJyaWRlIiB2YWx1ZT0iIj4KCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJmb3JjZVRvRmlsbFBvcHVwX25ldyIgdmFsdWU9Im5vbmUiPgoJCTwhLS0gU1RBUlQgU09SVCBPUkRFUiAtLT4KCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiB2YWx1ZT0ibW9kZWwiIGlkPSJzb3J0QnkiPgoJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSJBc2MiIGlkPSJzb3J0RGlyIj4KCQk8IS0tIEVORCBTT1JUIE9SREVSIC0tPgoJCQkJCQk8c2NyaXB0PgoKCQkvL2dsb2JhbCBzdG9yZQoJCXZhciBzdG9yZSA9IG51bGw7CgoJCWNvbnN0IGluaXRTdG9yZSA9ICgpID0+IHsKCgkJCWlmKHR5cGVvZiBjcmVhdGVEYXRhU3RvcmUgIT09ICdmdW5jdGlvbicpewoJCQkJc2V0VGltZW91dChpbml0U3RvcmUsIDUwKTsKCQkJCXJldHVybjsKCQkJfQoKCQkJc3RvcmUgPSBjcmVhdGVEYXRhU3RvcmUoeyJjb250ZXh0Ijp7ImxhbmciOiJGUkVOQ0giLCJzaG9ydExhbmciOiJmciIsImlzTW9iaWxlIjpmYWxzZSwiY2F0ZWdvcnkiOiJhbGwiLCJzZWN0aW9uIjoiTkVXIiwibG9jYWxlIjoiZnJfQ0EiLCJkYXRlZm9ybWF0IjoiJWUgJUIifSwiZGVhbGVySW5mbyI6eyJhZGRyZXNzIjoiMTUzMjAgQm91bGV2YXJkIExhY3JvaXgiLCJjaXR5IjoiU3QtR2VvcmdlcyIsInByb3ZpbmNlIjoiUXVcdTAwZTliZWMiLCJyZWdpb24iOiJDaGF1ZGlcdTAwZThyZS1BcHBhbGFjaGVzIiwicG9zdGFsIjoiRzVZIDFSNyIsIm5hbWUiOiJTaXR0ZWxsZSBNYXpkYSIsImVtYWlsIjoiYWJvdXJyZXRAc2l0dGVsbGVtYXpkYS5jb20iLCJkZWFsZXJJRCI6IjIyOTEiLCJkZWFsZXJHcm91cCI6eyJncm91cGVOYW1lIjoiR3JvdXBlIENvdXR1cmUiLCJncm91cGVJRCI6IjI0MzkiLCJkZWFsZXJzIjpbeyJkZWFsZXJJRCI6IjIxODQiLCJuYW1lIjoiQmVhdWNlIEF1dG8gRm9yZCIsInNpdGVJRCI6IjU3NiIsImlzTGl2ZSI6IllFUyJ9LHsiZGVhbGVySUQiOiIyNjUzIiwibmFtZSI6IkJlYXVjZSBBdXRvIExpbmNvbG4iLCJzaXRlSUQiOiI3NTciLCJpc0xpdmUiOiJZRVMifSx7ImRlYWxlcklEIjoiMTE4NCIsIm5hbWUiOiJDaGV2cm9sZXQgQnVpY2sgR01DIGRlIExhU2FsbGUiLCJzaXRlSUQiOiI2OTciLCJpc0xpdmUiOiJZRVMifSx7ImRlYWxlcklEIjoiMjQzOSIsIm5hbWUiOiJHcm91cGUgQ291dHVyZSIsInNpdGVJRCI6Ijc1MCIsImlzTGl2ZSI6IllFUyJ9LHsiZGVhbGVySUQiOiIyMjkwIiwibmFtZSI6Ikh5dW5kYWkgQmVhdWNlIiwic2l0ZUlEIjoiNjcyIiwiaXNMaXZlIjoiWUVTIn0seyJkZWFsZXJJRCI6IjIyMzkiLCJuYW1lIjoiSHl1bmRhaSBkdSBSb3lhdW1lIiwic2l0ZUlEIjoiNjI3IiwiaXNMaXZlIjoiWUVTIn0seyJkZWFsZXJJRCI6IjIyNDAiLCJuYW1lIjoiSHl1bmRhaSBkdSBTYWd1ZW5heSIsInNpdGVJRCI6IjY1NCIsImlzTGl2ZSI6IllFUyJ9LHsiZGVhbGVySUQiOiIxMTgwIiwibmFtZSI6IktpYSBkZSBMYVNhbGxlIiwic2l0ZUlEIjoiMTc1IiwiaXNMaXZlIjoiWUVTIn0seyJkZWFsZXJJRCI6IjI3NDQiLCJuYW1lIjoiS2lhIFNhaW50ZS1KdWxpZSIsInNpdGVJRCI6Ijk3NSIsImlzTGl2ZSI6IllFUyJ9LHsiZGVhbGVySUQiOiIxMzAiLCJuYW1lIjoiTGV2aWtvIEh5dW5kYWkiLCJzaXRlSUQiOiI3NTgiLCJpc0xpdmUiOiJZRVMifSx7ImRlYWxlcklEIjoiOTkiLCJuYW1lIjoiTGV2aXMgU3ViYXJ1Iiwic2l0ZUlEIjoiNzY1IiwiaXNMaXZlIjoiWUVTIn0seyJkZWFsZXJJRCI6IjQ4MzEiLCJuYW1lIjoiTW9udHJcdTAwZTlhbCBNaXRzdWJpc2hpIiwic2l0ZUlEIjoiMTkxOSIsImlzTGl2ZSI6IllFUyJ9LHsiZGVhbGVySUQiOiIyNzI5IiwibmFtZSI6IlNlcHQtSWxlcyBIeXVuZGFpIiwic2l0ZUlEIjoiMTc0MSIsImlzTGl2ZSI6IllFUyJ9LHsiZGVhbGVySUQiOiIyNzMwIiwibmFtZSI6IlNlcHQtSWxlcyBLaWEiLCJzaXRlSUQiOiIxNzQwIiwiaXNMaXZlIjoiWUVTIn0seyJkZWFsZXJJRCI6IjIyOTEiLCJuYW1lIjoiU2l0dGVsbGUgTWF6ZGEiLCJzaXRlSUQiOiI2NzciLCJpc0xpdmUiOiJZRVMifSx7ImRlYWxlcklEIjoiNTMxMiIsIm5hbWUiOiJTdC1HZW9yZ2VzIENhZGlsbGFjIiwic2l0ZUlEIjoiMjA3MiIsImlzTGl2ZSI6IllFUyJ9LHsiZGVhbGVySUQiOiIyMTY2IiwibmFtZSI6IlN0LUdlb3JnZXMgQ2hldnJvbGV0IEJ1aWNrIEdNQyIsInNpdGVJRCI6IjU1MCIsImlzTGl2ZSI6IllFUyJ9LHsiZGVhbGVySUQiOiIyMzMwIiwibmFtZSI6IlN0LUdlb3JnZXMgRm9yZCIsInNpdGVJRCI6IjY5MiIsImlzTGl2ZSI6IllFUyJ9LHsiZGVhbGVySUQiOiIyMTY3IiwibmFtZSI6IlN0LUdlb3JnZXMgVG95b3RhIiwic2l0ZUlEIjoiNTUxIiwiaXNMaXZlIjoiWUVTIn0seyJkZWFsZXJJRCI6IjQwNTIiLCJuYW1lIjoiU3QtTmljb2xhcyBIeXVuZGFpIiwic2l0ZUlEIjoiMjQyNiIsImlzTGl2ZSI6IllFUyJ9LHsiZGVhbGVySUQiOiIxNDA2IiwibmFtZSI6IlN0LVJheW1vbmQgRm9yZCIsInNpdGVJRCI6IjE4NjkiLCJpc0xpdmUiOiJZRVMifV19LCJmYXgiOiIiLCJwaG9uZSI6IjQxOC0yMjgtNDgxNSIsImxhdGl0dWRlIjoiNDYuMTA1ODUxNDAwMCIsImxvbmdpdHVkZSI6Ii03MC42NTcxOTQ2MDAwIiwicHJvdmluY2VfY29kZSI6IlFDIiwiZGV0YWlsX3ByaXgiOiIiLCJkZXRhaWxfcHJpeF9hbiI6IiIsImRldGFpbF9wcml4X3VzZWQiOm51bGwsImRldGFpbF9wcml4X3VzZWRfYW4iOm51bGwsIm9lbURlYWxlckNvZGUiOiI0NjU4MCIsInByaWNlX2Rpc2NsYWltZXJfcHJlZmVyZW5jZSI6IjAiLCJwcmljZV9kaXNjbGFpbWVyX3ByZWZlcmVuY2VfdXNlZCI6IjAiLCJnbUJBQyI6IiIsInBsYWNlSWQiOiJDaElKWTF0dXJWT1Z1VXdSUC0yWDNobU8xUDAifSwiaXNWTSI6ZmFsc2UsImZpZWxkcyI6eyJTSE9XUk9PTV9JTUFHRV9TT1VSQ0VfVFlQRSI6ImNocm9tZSIsIk5FV19JTlZfSU1BR0VfU09VUkNFX1RZUEUiOiJjaHJvbWUifSwiaTE4biI6eyJXRUJfU0lURV9HRU5FUkFUT1JfUEFHRV9ORVdJTlYiOiJcL25ldWZzXC9pbnZlbnRhaXJlXC9yZWNoZXJjaGUuaHRtbCIsIlBBWU1FTlRTIjoiUGFpZW1lbnRzIiwiREVGQVVMVF9QQVlNRU5UX0NBU0giOiJDb21wdGFudCIsIkxBQkVMX0JFRk9SRV9UQVhFUyI6IkF2YW50IHRheGVzIiwiTEFCRUxfU0FWRV9CVUlMRF9USVRMRSI6IkVucmVnaXN0cmVyIHZvdHJlIGNvbmZpZ3VyYXRpb24hIiwiV0VCU0lURV9PRU1EUl9MT0FEX0JVSUxEX1RPT0xUSVAiOiJSZXN0YXVyZXogdW5lIGNvbmZpZ3VyYXRpb24gcHJcdTAwZTljXHUwMGU5ZGVtbWVudCBlbnJlZ2lzdHJcdTAwZTllIGVuIHNhaXNpc3NhbnQgdm90cmUgYWRyZXNzZSBlLW1haWwgb3Ugdm90cmUgbnVtXHUwMGU5cm8gZGUgdFx1MDBlOWxcdTAwZTlwaG9uZS4iLCJXRUJTSVRFX09FTURSX0xPQURfQlVJTERfRU1BSUxfUEhPTkUiOiJTYWlzaXNzZXogdm90cmUgYWRyZXNzZSBlLW1haWwgZXRcL291IHZvdHJlIG51bVx1MDBlOXJvIGRlIHRcdTAwZTlsXHUwMGU5cGhvbmUgcG91ciBjaGFyZ2VyIHVuZSBjb25maWd1cmF0aW9uIGVucmVnaXN0clx1MDBlOWUuIiwiV0VCU0lURV9PRU1EUl9MT0FEX0JVSUxEX0VNQUlMX1BIT05FX0VSUk9SIjoiVmV1aWxsZXogc2Fpc2lyIHZvdHJlIGFkcmVzc2UgZS1tYWlsIG91IHZvdHJlIG51bVx1MDBlOXJvIGRlIHRcdTAwZTlsXHUwMGU5cGhvbmUuIiwiV0VCU0lURV9PRU1EUl9MT0FEX0JVSUxEX0VSUk9SIjoiTGVzIGRvbm5cdTAwZTllcyBkZSBjb25maWd1cmF0aW9uIG5lIHNvbnQgcGFzIGRpc3BvbmlibGVzIHBvdXIgY2V0IGVucmVnaXN0cmVtZW50LiIsIldFQlNJVEVfT0VNRFJfTE9BRF9CVUlMRF9SRURJUkVDVElORyI6IkNvbXBpbGF0aW9uIGNoYXJnXHUwMGU5ZSEgUmVkaXJlY3Rpb24gZW4gY291cnMuLi4iLCJXRUJTSVRFX09FTURSX0xPQURfQlVJTERfTElTVF9FUlJPUiI6IkF1Y3VuZSBjb25maWd1cmF0aW9uIG4mIzM5O2EgXHUwMGU5dFx1MDBlOSB0cm91dlx1MDBlOWUgcG91ciBjZXR0ZSBhZHJlc3NlIGUtbWFpbFwvbnVtXHUwMGU5cm8gZGUgdFx1MDBlOWxcdTAwZTlwaG9uZS4iLCJXRUJTSVRFX09FTURSX0xPQURfQlVJTERfSU5WQUxJRF9UT0tFTiI6IkxlIGpldG9uIGVzdCBpbnZhbGlkZSBvdSBhIGV4cGlyXHUwMGU5LiBWZXVpbGxleiByXHUwMGU5ZXNzYXllci4iLCJXRUJTSVRFX09FTURSX0xPQURfQlVJTERfTElTVCI6IkNoYXJnZW1lbnQgZGVzIGNvbmZpZ3VyYXRpb25zIHNhdXZlZ2FyZFx1MDBlOXMuLi4iLCJXRUJTSVRFX09FTURSX0xPQURfQlVJTERfTElTVF9TRUxFQ1QiOiJTXHUwMGU5bGVjdGlvbm5leiB1bmUgY29uZmlndXJhdGlvbiBcdTAwZTAgY2hhcmdlcjoiLCJXRUJTSVRFX09FTURSX0xPQURfQlVJTERfTElTVF9GQUlMRUQiOiJJbXBvc3NpYmxlIGRlIGNoYXJnZXIgbGVzIGNvbmZpZ3VyYXRpb25zLiIsIldFQlNJVEVfT0VNRFJfTUZBX1NFTkRfQ09ERSI6IkVudm9pIGR1IGNvZGUgZGUgdlx1MDBlOXJpZmljYXRpb24uLi4iLCJXRUJTSVRFX09FTURSX01GQV9TVEFSVF9FUlJPUiI6IkltcG9zc2libGUgZGUgZFx1MDBlOW1hcnJlciBsYSB2XHUwMGU5cmlmaWNhdGlvbi4iLCJXRUJTSVRFX09FTURSX01GQV9FTlRFUl9DT0RFIjoiU2Fpc2lzc2V6IGxlIGNvZGUgXHUwMGUwIDYgY2hpZmZyZXMgZW52b3lcdTAwZTkgXHUwMGUwIHZvdHJlIGFkcmVzc2UgZS1tYWlsIG91IFx1MDBlMCB2b3RyZSBudW1cdTAwZTlybyBkZSB0XHUwMGU5bFx1MDBlOXBob25lLiIsIldFQlNJVEVfT0VNRFJfTUZBX0VOVEVSX0NPREVfRVJST1IiOiJWZXVpbGxleiBzYWlzaXIgbGUgY29kZSBkZSB2XHUwMGU5cmlmaWNhdGlvbi4iLCJXRUJTSVRFX09FTURSX01GQV9WRVJJRllfQ09ERSI6IlZcdTAwZTlyaWZpY2F0aW9uIGR1IGNvZGUuLi4iLCJXRUJTSVRFX09FTURSX01GQV9FWFBJUkVEX0NPREUiOiJDb2RlIGludmFsaWRlIG91IGV4cGlyXHUwMGU5LiBWZXVpbGxleiByXHUwMGU5ZXNzYXllci4iLCJXRUJTSVRFX09FTURSX01GQV9WRVJJRllfRkFJTEVEIjoiTGEgdlx1MDBlOXJpZmljYXRpb24gYSBcdTAwZTljaG91XHUwMGU5LiBWZXVpbGxleiByXHUwMGU5ZXNzYXllci4iLCJXRUJTSVRFX09FTURSX1NBVkVfQlVJTERfVVBEQVRJTkciOiJNaXNlIFx1MDBlMCBqb3VyIGRlIGxhIGNvbmZpZ3VhdGlvbi4uLiIsIldFQlNJVEVfT0VNRFJfU0FWRV9CVUlMRF9VUERBVEVfU1VDQ0VTUyI6IkxhIGNvbmZpZ3VhdGlvbiBhIFx1MDBlOXRcdTAwZTkgbWlzZSBcdTAwZTAgam91ciBhdmVjIHN1Y2NcdTAwZThzLiIsIldFQlNJVEVfT0VNRFJfU0FWRV9CVUlMRF9VUERBVEVfRVJST1IiOiJJbXBvc3NpYmxlIGRlIG1ldHRyZSBcdTAwZTAgam91ciBsYSBjb25maWd1YXRpb24uIiwiV0VCU0lURV9PRU1EUl9TQVZFX0JVSUxEX1NBVklORyI6IlNhdXZlZ2FyZGUgZGUgbGEgY29uZmlndWF0aW9uLi4uIiwiV0VCU0lURV9PRU1EUl9TQVZFX0JVSUxEX1NBVkVfU1VDQ0VTUyI6IkNvbmZpZ3VhdGlvbiBlbnJlZ2lzdHJcdTAwZTkgISBWb3VzIHBvdXJyZXogbGUgY2hhcmdlciB1bHRcdTAwZTlyaWV1cmVtZW50IGVuIHV0aWxpc2FudCB2b3RyZSBhZHJlc3NlIGUtbWFpbCBvdSB2b3RyZSBudW1cdTAwZTlybyBkZSB0XHUwMGU5bFx1MDBlOXBob25lLiIsIldFQlNJVEVfT0VNRFJfU0FWRV9CVUlMRF9TQVZFX0VSUk9SIjoiSW1wb3NzaWJsZSBkJiMzOTtlbnJlZ2lzdHJlciBsYSBjb25maWd1cmF0aW9uLiIsIldFQlNJVEVfT0VNRFJfQlROX0xPQUQiOiJDaGFyZ2VyIiwiV0VCU0lURV9PRU1EUl9CVE5fVkVSSUZZIjoiVlx1MDBlOXJpZmllciIsIldFQlNJVEVfT0VNRFJfQlROX1JFU0VORF9DT0RFIjoiUmVudm95ZXIgbGUgY29kZSIsIldFQlNJVEVfT0VNRFJfTUZBX1ZFUklGSUNBVElPTl9DT0RFIjoiTGUgY29kZSBkZSB2XHUwMGU5cmlmaWNhdGlvbiIsIldFQlNJVEVfT0VNRFJfU0FWRV9CVUlMRF9NT0RBTF9USVRMRSI6IkNoYXJnZXIgdW5lIGNvbmZpZ3VyYXRpb24gZW5yZWdpc3RyXHUwMGU5ZSJ9LCJzaG93T2VtSW1hZ2VzIjpmYWxzZX0pOwoJCX07CgoJCWluaXRTdG9yZSgpOwoKCTwvc2NyaXB0PgoJCQkJCQk8c3ZnIGFyaWEtaGlkZGVuPSJ0cnVlIiBzdHlsZT0icG9zaXRpb246IGFic29sdXRlOyB3aWR0aDogMDsgaGVpZ2h0OiAwOyBvdmVyZmxvdzogaGlkZGVuOyIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIj4KCQkJCQoJCQk8L3N2Zz4KCQkJCgkJCTxoZWFkZXIgY2xhc3M9Im1haW5EaXYtd3JhcHBlciI+CgkJCQkKCQkJCTxkaXYgY2xhc3M9IndyYXBwZXIgTWFpbkJveExheWVyIiBpZD0ibWFpbkRpdiIgaGlkZGVuPSIxIj4KCQkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iMSIgaWQ9Im11bHRpLWxhbmd1YWdlIj4KPGlucHV0IHR5cGU9ImhpZGRlbiIgdmFsdWU9IjEiIGlkPSJuZXdfdHJhbnNsYXRlZF90aXRsZXMiPgo8aW5wdXQgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iRlJFTkNIIiBpZD0iYWN0aXZlc2l0ZWxhbmd1YWdlIj4JCQkJPGRpdiBjbGFzcz0ibGFuZ3VhZ2VCYXIgZmxleC1ib3ggZmxleC1lbmQgYWxpZ24tY2VudGVyICIgaWQ9Imxhbmd1YWdlQ2hhbmdlckRpdiI+CgkJCQkJCQoJCgk8ZGl2IGNsYXNzPSJzZXJ2aWNlLWhlYWRlci1mb3JtIGZsZXgtYm94IGFsaWduLWNlbnRlciIgaWQ9InNlcnZpY2VfYXBwb2ludF9oZWFkZXIiPgoJPGEgaHJlZj0iP3BhdGg9L2RlbWFuZGVzL3JlbmRlei12b3VzLWF1LXNlcnZpY2UuaHRtbCIgY2xhc3M9ImJ0biBidG4tZGVmYXVsdCI+CgkJPHNwYW4gY2xhc3M9ImZhIGZhLXdyZW5jaCI+PC9zcGFuPgoJCTxzcGFuPlJlbmRlei12b3VzIGF1IHNlcnZpY2U8L3NwYW4+Cgk8L2E+CgkKPC9kaXY+Cgk8ZGl2Pjx1bCBjbGFzcz0iaWROYXYxIj48bGkgY2xhc3M9InRvcCIgc3R5bGU9InotaW5kZXg6IDk5OyI+ICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZGVza3RvcF9sYW5nX2J1dHRvbiBhY3RpdmUiIHRpdGxlPSJGcmFuw6dhaXMiPgogICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZGVza3RvcF9sYW5nX2J1dHRvbl90ZXh0Ij5GUjwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iP3BhdGg9L2VuZy8iIGNsYXNzPSJkZXNrdG9wX2xhbmdfYnV0dG9uIiB0aXRsZT0iQW5nbGFpcyI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJkZXNrdG9wX2xhbmdfYnV0dG9uX3RleHQiPkVOPC9zcGFuPgogICAgICAgICAgICAgICAgICAgIDwvYT48L2xpPjwvdWw+PC9kaXY+CgkKCQoJCQkJPC9kaXY+CgkJCTwhLS0gSE9NRVBBR0VfRU5HID0+IC9lbmcvIHx8IEhPTUVQQUdFIEZSRSA9PiAvIC0tPgoJCQkKCQkJPGRpdiBjbGFzcz0idi1jYXJkIHRvcF9iZyBoZWFkZXItaW5mbyIgc3R5bGU9ImJhY2tncm91bmQ6bm9uZTsiPgoJCQkJCQkJPGRpdiBjbGFzcz0iaGVhZGVyLXNlY3Rpb24iPgoJPGRpdiBjbGFzcz0iaGVhZGVyLWltYWdlLXdyYXBwZXIiPgoJCTxhIGhyZWY9Ij9wYXRoPS8iIHN0eWxlPSJ0ZXh0LWRlY29yYXRpb246IG5vbmU7IiBhcmlhLWxhYmVsPSJTaXR0ZWxsZSBNYXpkYSBMb2dvIiB0aXRsZT0iU2l0dGVsbGUgTWF6ZGEiPgoJCQk8aW1nIGFsdD0iU2l0dGVsbGUgTWF6ZGEiIGNsYXNzPSJvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIGxpdmVsb2FkIHBob3RvIGltYWdlLXBhZGRpbmcgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1vdC1pZ25vcmUgZGF0YS1zY29kZXJlZj0iNjQ4MTUzLVAiIGlkPSJkZWFsZXJfbG9nbyIgc3JjPSJodHRwczovL3NpdHRlbGxlbWF6ZGEuY2EvL2ltYWdlcy9Mb2dvL3NpdGVsbGUtbWF6ZGEtbG9nby5zdmciIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj4KCQk8L2E+Cgk8L2Rpdj4KPC9kaXY+CgkJCQoJCQk8ZGl2IGNsYXNzPSJoZWFkZXItc2VjdGlvbiBsb2dvLW1pZGRsZSIgc3R5bGU9IiI+PC9kaXY+CgkJCTxkaXYgY2xhc3M9ImhlYWRlci1zZWN0aW9uIGFkZHJlc3MtbWlkZGxlIj4KCTxkaXY+CgkJCgkJPGRpdiBjbGFzcz0icGhvbmUgcGhvbmVfcmlnaHQgIiBzdHlsZT0iY29sb3I6ICNmZmZmZmY7Ij4KCTxkaXYgY2xhc3M9ImZuIG9yZyIgc3R5bGU9ImZvbnQtc2l6ZTogMjBweDtjb2xvcjogI2ZmZmZmZjsiIHJvbGU9ImhlYWRpbmciIGFyaWEtbGV2ZWw9IjMiPlNpdHRlbGxlIE1hemRhPC9kaXY+CgkJCQkJPGRpdiBzdHlsZT0iZm9udC1zaXplOiAxNHB4OyIgY2xhc3M9ImFkciI+CgkJCQkJPCEtLSBPTzo6OTFjNDlmODRmNjlmY2ZiYjgzZjZlMjc5NTBkNmFkODggLS0+PGEgaHJlZj0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNhL21hcHMvZGlyLz9hcGk9MSZhbXA7ZGVzdGluYXRpb249U2l0dGVsbGUlMkJNYXpkYSUyQzE1MzIwK0JvdWxldmFyZCtMYWNyb2l4JTJDU3QtR2VvcmdlcyUyQ1FDJTJDRzVZKzFSNyZhbXA7ZGVzdGluYXRpb25fcGxhY2VfaWQ9Q2hJSlkxdHVyVk9WdVV3UlAtMlgzaG1PMVAwJmFtcDtobD1mciZhbXA7dD1tJmFtcDt6PTE2JmFtcDtpZT1VVEY4IiB0YXJnZXQ9Il9ibGFuayIgYXJpYS1sYWJlbD0iMTUzMjAgQm91bGV2YXJkIExhY3JvaXgsIFN0LUdlb3JnZXMsIFFDLCBHNVkgMVI3LiBHb29nbGUgTWFwIHMnb3V2cmUgZGFucyB1biBub3V2ZWwgb25nbGV0IiB0aXRsZT0iTG9jYXRpb24gOiAxNTMyMCBCb3VsZXZhcmQgTGFjcm9peCwgU3QtR2VvcmdlcywgUUMsIEc1WSAxUjciIHN0eWxlPSJ0ZXh0LWRlY29yYXRpb246bm9uZTtjb2xvcjojZmZmZmZmOyAtLXR4dC1jb2xvcjojZmZmZmZmOyI+CgkJCQkJPHNwYW4gY2xhc3M9ImRlYWxlck1hcExpbmsiIGl0ZW1wcm9wPSJhZGRyZXNzIiBpdGVtc2NvcGUgaXRlbXR5cGU9Imh0dHBzOi8vc2NoZW1hLm9yZy9Qb3N0YWxBZGRyZXNzIj4KCQkJCQkJPHN2ZyBjbGFzcz0iIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdib3g9IjAgMCA1MTIgNTEyIj48IS0tIEZvbnQgQXdlc29tZSBGcmVlIDUuMTUuMSBieSBAZm9udGF3ZXNvbWUgLSBodHRwczovL2ZvbnRhd2Vzb21lLmNvbSBMaWNlbnNlIC0gaHR0cHM6Ly9mb250YXdlc29tZS5jb20vbGljZW5zZS9mcmVlIChJY29uczogQ0MgQlkgNC4wLCBGb250czogU0lMIE9GTCAxLjEsIENvZGU6IE1JVCBMaWNlbnNlKSAtLT48cGF0aCBkPSJNNDQ0LjUyIDMuNTJMMjguNzQgMTk1LjQyYy00Ny45NyAyMi4zOS0zMS45OCA5Mi43NSAxOS4xOSA5Mi43NWgxNzUuOTF2MTc1LjkxYzAgNTEuMTcgNzAuMzYgNjcuMTcgOTIuNzUgMTkuMTlsMTkxLjktNDE1Ljc4YzE1Ljk5LTM4LjM5LTI1LjU5LTc5Ljk3LTYzLjk3LTYzLjk3eiI+PC9wYXRoPjwvc3ZnPgoJCQkJCQkJCQkJPHNwYW4gY2xhc3M9InN0cmVldC1hZGRyZXNzIiBpdGVtcHJvcD0ic3RyZWV0QWRkcmVzcyI+MTUzMjAgQm91bGV2YXJkIExhY3JvaXg8L3NwYW4+LCAKICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImxvY2FsaXR5IiBzdHlsZT0ibWFyZ2luLWxlZnQ6NXB4IiBpdGVtcHJvcD0iYWRkcmVzc0xvY2FsaXR5Ij5TdC1HZW9yZ2VzPC9zcGFuPiwgCiAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJyZWdpb24iIHN0eWxlPSJtYXJnaW4tbGVmdDo1cHgiIGl0ZW1wcm9wPSJhZGRyZXNzUmVnaW9uIj5RQzwvc3Bhbj4sCiAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJwb3N0YWwtY29kZSIgc3R5bGU9Im1hcmdpbi1sZWZ0OjVweCIgaXRlbXByb3A9InBvc3RhbENvZGUiPkc1WSAxUjc8L3NwYW4+CgkJCQkJPC9zcGFuPgoJCQkJCTwvYT4KCQkJCTwvZGl2PgoJPGRpdiBoaWRkZW4+CgkJPG1ldGEgaXRlbXByb3A9ImxhdGl0dWRlIiBjb250ZW50PSI0Ni4xMDU4NTE0MDAwIj4KCQk8bWV0YSBpdGVtcHJvcD0ibG9uZ2l0dWRlIiBjb250ZW50PSItNzAuNjU3MTk0NjAwMCI+CiAgICAgPC9kaXY+CgkKCSA8ZGl2IGNsYXNzPSJwaG9uZV90ZXh0IGljb24tdGV4dCIgc3R5bGU9ImNvbG9yOiAjZmZmZmZmO2ZvbnQtc2l6ZTogMTRweDsiPgoJCQkJCQoJCQk8ZGl2IHN0eWxlPSJkaXNwbGF5OmlubGluZS1ibG9jayIgY2xhc3M9ImZsZXgtYm94Ij4KCQkJPHNwYW4gc3R5bGU9IiIgY2xhc3M9ImZhIGZhLXBob25lIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PC9zcGFuPiAgPHNwYW4gaWQ9ImhlYWRlci1waG9uZS10cmlnZ2VyIiBpdGVtcHJvcD0idGVsZXBob25lIiBjbGFzcz0iZXh0ZW5kZWRQaG9uZVRyaWdnZXIgIiBzdHlsZT0iZGlzcGxheTogaW5saW5lLWJsb2NrOyBjdXJzb3I6IHBvaW50ZXI7Ij48YSBocmVmPSI\/cGF0aD10ZWw6NDE4JTIwMjI4LTQ4MTUiIGNsYXNzPSJwaG9uZS1saW5rIiBkYXRhLWRlcGFydG1lbnQ9IlNhbGVzIj40MTggMjI4LTQ4MTU8L2E+IDxzcGFuIHN0eWxlPSJwb2ludGVyLWV2ZW50czpub25lOyI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxNnB4OyIgY2xhc3M9ImZhIGZhLWNhcmV0LWRvd24iIGFyaWEtaGlkZGVuPSJ0cnVlIj48L3NwYW4+PC9zcGFuPjwvc3Bhbj4KCQkJPGRpdiBjbGFzcz0iZXh0ZW5kZWRQaG9uZSIgc3R5bGU9ImRpc3BsYXk6IG5vbmU7Ij4KCTxkaXY+PGxhYmVsPkfDqW7DqXJhbDogPHNwYW4gY2xhc3M9InRlbCAtbWwxMCI+PGEgaHJlZj0iP3BhdGg9dGVsOjQxOCUyMDIyOC00ODE1IiBjbGFzcz0icGhvbmUtbGluayIgZGF0YS1kZXBhcnRtZW50PSJTYWxlcyI+NDE4IDIyOC00ODE1PC9hPiA8YnI+PC9zcGFuPjwvbGFiZWw+PC9kaXY+Cgk8ZGl2IGNsYXNzPSJwaG9uZU5vdGUiPjwvZGl2PgoJPCEtLSBPTzo6ZDc1Yjc2ODI4Njg0ODAxZTI2NmRiY2JiM2M4MTIwNTUgLS0+CjwvZGl2PgoJCQk8L2Rpdj4KCQkKCQkKCQkKCTwvZGl2PgoJCiAgCjwvZGl2PgoJCQoJPC9kaXY+CjwvZGl2PgoJCQkKCQkJCgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJjbHIiPjwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJza2VsZXRvbiBza2VsZXRvbi1kZXNrdG9wIHNrZWxldG9uLWNvbmQtMiBoZWFkZXItbWVudSIgc3R5bGU9IndpZHRoOmNhbGMoMTAwdncgLSAoMTAwdncgLSAxMDAlKSk7bWluLWhlaWdodDo0OHB4OyI+CgkJCQk8ZGl2IGNsYXNzPSJ1cF9tZW51ICBGUkVOQ0ggaW1nX21lbnUgbWVudTUgd2l0aC1ib3JkZXIgZnVsbF93aWR0aCIgZGF0YS1zY29kZXJlZj0iODk4OTQxNS1BIj4KCQkJCQk8ZGl2IGNsYXNzPSJTMTAwUGVyY2VudFdpZHRoIj4KCQkJCQkJPGRpdiBpZD0iZnVsbFdpZHRoTWVudUJhciI+PC9kaXY+CgkJCQkJCTx1bCBjbGFzcz0ibmF2ICBzaG9ydFNlcGVyYXRvciI+CgkJCQkJCQk8ZGl2IGlkPSJtZW51LXNwZWNzLXRlbXBsYXRlIiBjbGFzcz0ibWVudS10ZWNoLXNwZWNzIj4gPGRpdiBjbGFzcz0ibWVudS1zcGVjcy10aXRsZSI+PHNwYW4gY2xhc3M9ImFycm93IGFycm93LWxhcmdlIGFycm93LXJpZ2h0IG1yLTE1Ij48L3NwYW4+PC9kaXY+IDx1bCBjbGFzcz0ibWVudS1zcGVjcy1saXN0Ij4gPGxpPiA8YSBocmVmPSI\/cGF0aD0jIiBjbGFzcz0ibWVudS1zcGVjLWxpbmsiPiA8c3BhbiBjbGFzcz0iYXJyb3cgYXJyb3ctcmlnaHQgbXItMTUiPjwvc3Bhbj5TcMOpYy4gdGVjaG5pcXVlcyA8L2E+IDwvbGk+IDxsaT4gPGEgaHJlZj0iP3BhdGg9IyIgY2xhc3M9Im1lbnUtc3BlYy1ibnAiPiA8c3BhbiBjbGFzcz0iYXJyb3cgYXJyb3ctcmlnaHQgbXItMTUiPjwvc3Bhbj5Db25maWd1cmV6IHZvdHJlICRNT0RFTCA8L2E+IDwvbGk+IDxsaSBjbGFzcz0iZGl2aWRlciI+IDxsaT4gPHN0cm9uZyBjbGFzcz0ibWVudS1wcmljZS10ZXh0Ij4jI01FTlVNT0RFTCMjICMjTUVOVVRSSU0jIyAjI01FTlVZRUFSIyMgw6AgcGFydGlyIGRlPC9zdHJvbmc+IDxicj48c3BhbiBjbGFzcz0ibWVudS1zcGVjLXByaWNlIj4kOTksOTk5PC9zcGFuPiA8L2xpPiA8bGk+IDxzdHJvbmc+UHVpc3NhbmNlPC9zdHJvbmc+IDxicj48c3BhbiBjbGFzcz0ibWVudS1zcGVjLWhwIj45OTkgaHAgQCA5OTk5IHJwbTwvc3Bhbj4gPC9saT4gPGxpPiA8c3Ryb25nPkN5bGluZHLDqWU8L3N0cm9uZz4gPGJyPjxzcGFuIGNsYXNzPSJtZW51LXNwZWMtcG93ZXIiPjkuOSBMLzk5PC9zcGFuPiA8L2xpPiA8bGk+IDxzdHJvbmc+Q29uc29tbWF0aW9uIGQnZXNzZW5jZTwvc3Ryb25nPiA8YnI+VmlsbGU6IDxzcGFuIGNsYXNzPSJtZW51LXNwZWMtZnVlbC1jaXR5Ij45OSBtcGc8L3NwYW4+IDxicj5BdXRvcm91dGU6IDxzcGFuIGNsYXNzPSJtZW51LXNwZWMtZnVlbC1oaWdod2F5Ij45OSBtcGc8L3NwYW4+IDwvbGk+IDxsaT4gPHN0cm9uZz5Nb3RyaWNpdMOpPC9zdHJvbmc+IDxicj48c3BhbiBjbGFzcz0ibWVudS1zcGVjLWRyaXZldHJhaW4iPjk5OSBrcGg8L3NwYW4+IDwvbGk+IDwvdWw+CjwvZGl2PjxsaSBkYXRhLWlkPSJDT05UQUNUIiBpZD0iTWFpbk1lbnVfQ09OVEFDVCIgY2xhc3M9InRvcCBsYXN0TWVudSBoYXNJdGVtcyI+PGEgY2xhc3M9InRvcF9saW5rIiBocmVmPSI\/cGF0aD0vY29udGFjdGV6bm91cy5odG1sIj7DgCBQUk9QT1M8L2E+PHVsIGNsYXNzPSJzdWIgY29udGFjdHVzLWZvcm0gY29udGFjdC1zaG9ydCI+IDxsaSBkYXRhLWlkPSI2OWI3ZDVkODdhMzEyIiBpZD0iTWFpbk1lbnVfNjliN2Q1ZDg3YTMxMiIgY2xhc3M9ImNvbnRhY3QtY29udGFpbmVyIj4gPGRpdiBjbGFzcz0iZXhwcmVzcy1mb3JtIj4gPGZvcm0gaWQ9InF1aWNrRW1haWxGb3JtIiBjbGFzcz0iZDJjZm9ybSBkMmNmb3JtLS10aGluIGNvbC1tZC0zIG1lbnUgaGlkZU9uUHJlTG9hZCIgYWN0aW9uPSJqYXZhc2NyaXB0OnZvaWQoMCk7Ij4gPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9ImV4cHJlc3NTZWxlY3RSZXF1aXJlZCIgdmFsdWU9IjEiPiA8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iZXhwcmVzc1Bob25lUmVxdWlyZWQiIHZhbHVlPSIxIj4gPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9InRleHRTYXZlTWFpbElEIiBuYW1lPSJ0ZXh0U2F2ZU1haWxJRCIgdmFsdWU9Im1lbnVDb250YWN0VXMiPiA8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0idGV4dFF1aWNrRW1haWxJbmZvIiBuYW1lPSJ0ZXh0UXVpY2tFbWFpbEluZm8iIHZhbHVlPSJJbmZvcm1hdGlvbiBzdXIgeyRMSU5LTUFLRX0geyRMSU5LTU9ERUx9IHskTElOS1lFQVJ9Ij4gPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9ImV4cHJlc3NjYXJ0cmltIiB2YWx1ZT0iIj4gPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9ImV4cHJlc3NjYXJ2aW4iIHZhbHVlPSIiPiA8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iZXhwcmVzc2NhcnByaWNlIiB2YWx1ZT0iIj4gPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9ImV4cHJlc3NjYXJpZCIgdmFsdWU9IiI+IDxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJleHByZXNzY2FybWFrZSIgdmFsdWU9IiI+IDxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJleHByZXNzY2FybW9kZWwiIHZhbHVlPSIiPiA8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iZXhwcmVzc2NhcnllYXIiIHZhbHVlPSIiPiA8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iZXhwcmVzc3N0b2NrbnVtYmVyIiB2YWx1ZT0iIj4gPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9ImV4cHJlc3NTZW5kVG9FbWFpbCIgdmFsdWU9ImJjZTk2ZmU0NDZlMTg4MGRhMTI2ZDMyZDgxN2VlZjczfDk1NDkwNjUwNSI+IDxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJleHByZXNzU2VuZFRvRW1haWxORVciIHZhbHVlPSIiPiA8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iZXhwcmVzc1NlbmRUb0VtYWlsQURGIiB2YWx1ZT0iN2M5MjdkMzVkOWUzYzc1OTQ4MWFjZjYxM2FmYzJkMTd8OTU0OTA2NTA1Ij4gPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9ImV4cHJlc3NTZW5kVG9FbWFpbEFERk5FVyIgdmFsdWU9IiI+IDxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJleHByZXNzU2VuZFRvRW1haWxBREZTRVJWSUNFIiB2YWx1ZT0iMDE1MmU4M2NmM2YzMTQzMDIxZjcwYTUyNTEyYTc1OTd8OTU0OTA2NTA1Ij4gPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9ImV4cHJlc3NJbkRlbW8iIHZhbHVlPSJ7JEVYUFJFU1NJTkRFTU99Ij4gPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9InByaW50RmxhZyIgdmFsdWU9IjAiPiA8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iZXhwcmVzc0RlcGFydG1lbnRFbWFpbF9uZXciIHZhbHVlPSJiY2U5NmZlNDQ2ZTE4ODBkYTEyNmQzMmQ4MTdlZWY3M3w5NTQ5MDY1MDUiPjxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJleHByZXNzRGVwYXJ0bWVudEVtYWlsX3VzZWQiIHZhbHVlPSJiY2U5NmZlNDQ2ZTE4ODBkYTEyNmQzMmQ4MTdlZWY3M3w5NTQ5MDY1MDUiPjxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJleHByZXNzRGVwYXJ0bWVudEVtYWlsX3NlcnZpY2UiIHZhbHVlPSIyZjc5YTg4NTE3ZGU0YjcxNzJjMzczNDIwYjU2OTY3MHw5NTQ5MDY1MDUiPjxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJleHByZXNzRGVwYXJ0bWVudEVtYWlsX3BhcnRzIiB2YWx1ZT0iYTAzOThkYTU0Yjg3YjZmMDkwZTM2ZDk0ZDBhZWU1NTN8OTU0OTA2NTA1Ij48aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iZXhwcmVzc0RlcGFydG1lbnRFbWFpbF9maW5hbmNlIiB2YWx1ZT0iYmNlOTZmZTQ0NmUxODgwZGExMjZkMzJkODE3ZWVmNzN8OTU0OTA2NTA1Ij48aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iZXhwcmVzc0RlcGFydG1lbnRFbWFpbEFkZl9uZXciIHZhbHVlPSI3YzkyN2QzNWQ5ZTNjNzU5NDgxYWNmNjEzYWZjMmQxN3w5NTQ5MDY1MDUiPjxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJleHByZXNzRGVwYXJ0bWVudEVtYWlsQWRmX3VzZWQiIHZhbHVlPSI3YzkyN2QzNWQ5ZTNjNzU5NDgxYWNmNjEzYWZjMmQxN3w5NTQ5MDY1MDUiPjxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJleHByZXNzRGVwYXJ0bWVudEVtYWlsQWRmX3NlcnZpY2UiIHZhbHVlPSIwMTUyZTgzY2YzZjMxNDMwMjFmNzBhNTI1MTJhNzU5N3w5NTQ5MDY1MDUiPjxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJleHByZXNzRGVwYXJ0bWVudEVtYWlsQWRmX3BhcnRzIiB2YWx1ZT0iMDE1MmU4M2NmM2YzMTQzMDIxZjcwYTUyNTEyYTc1OTd8OTU0OTA2NTA1Ij48aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iZXhwcmVzc0RlcGFydG1lbnRFbWFpbEFkZl9maW5hbmNlIiB2YWx1ZT0iN2M5MjdkMzVkOWUzYzc1OTQ4MWFjZjYxM2FmYzJkMTd8OTU0OTA2NTA1Ij4gPCEtLSBQTEFDRSAxLUEgLS0+IDxkaXY+IDxkaXYgY2xhc3M9Il9ib3gyODgwX21pZCAtcGw4IC1wcjgiPiA8ZGl2IGNsYXNzPSJ3aWRnZXRfZXhwcmVzc19tYWlsX3Bob25lX3RpdGxlIiBkYXRhLWRlcGFydG1lbnQ9IlNhbGVzIj40MTggMjI4LTQ4MTU8L2Rpdj4gPGRpdiBjbGFzcz0iUmVjaGVyY2hlMjIgIj5EZW1hbmRlIEV4cHJlc3M8L2Rpdj4gPHN0YWNrLWxjPiA8Ym94LWxjPiA8bGFiZWwgZm9yPSJxdWlja0VtYWlsTmFtZSIgY2xhc3M9InNyLW9ubHkiPk5vbTwvbGFiZWw+IDxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0icXVpY2tFbWFpbE5hbWUiIG5hbWU9Im5hbWUiIHBsYWNlaG9sZGVyPSJOb20iPiA8L2JveC1sYz4gPGJveC1sYz4gPGxhYmVsIGZvcj0icXVpY2tFbWFpbFRlbCIgY2xhc3M9InNyLW9ubHkiPlTDqWzDqXBob25lPC9sYWJlbD4gPGlucHV0IGNsYXNzPSJwaG9uZSByZXF1aXJlZCIgdHlwZT0idGVsIiBpZD0icXVpY2tFbWFpbFRlbCIgbmFtZT0idGVsIiBwbGFjZWhvbGRlcj0iVMOpbMOpcGhvbmUiPiA8L2JveC1sYz4gPGJveC1sYz4gPGxhYmVsIGZvcj0icXVpY2tFbWFpbEFkZHIiIGNsYXNzPSJzci1vbmx5Ij5Db3VycmllbDwvbGFiZWw+IDxpbnB1dCB0eXBlPSJlbWFpbCIgaWQ9InF1aWNrRW1haWxBZGRyIiBuYW1lPSJlbWFpbCIgcGxhY2Vob2xkZXI9IkNvdXJyaWVsIj4gPC9ib3gtbGM+IDxib3gtbGM+IDxsYWJlbCBmb3I9InF1aWNrRW1haWxEZXBhcnRtZW50IiBjbGFzcz0ic3Itb25seSI+U8OpbGVjdGlvbm5lcjwvbGFiZWw+IDxzZWxlY3QgaWQ9InF1aWNrRW1haWxEZXBhcnRtZW50Ij48b3B0aW9uIHZhbHVlPSIiIHNlbGVjdGVkPlPDqWxlY3Rpb25uZXI8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJuZXciPlZlbnRlcyAtIE5ldWY8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJ1c2VkIj5WZW50ZXMgLSBPY2Nhc2lvbjwvb3B0aW9uPjxvcHRpb24gdmFsdWU9InNlcnZpY2UiPlNlcnZpY2U8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJmaW5hbmNlIj5GaW5hbmNlbWVudDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9InBhcnRzIj5QacOoY2VzICZhbXA7IEFjY2Vzc29pcmVzPC9vcHRpb24+PC9zZWxlY3Q+IDwvYm94LWxjPiA8Ym94LWxjPiA8bGFiZWwgZm9yPSJxdWlja0VtYWlsTXNnIiBjbGFzcz0ic3Itb25seSI+TWVzc2FnZTwvbGFiZWw+IDx0ZXh0YXJlYSBpZD0icXVpY2tFbWFpbE1zZyIgcm93cz0iMyIgcGxhY2Vob2xkZXI9Ik1lc3NhZ2UiPjwvdGV4dGFyZWE+IDwvYm94LWxjPiA8L3N0YWNrLWxjPiA8c3RhY2stbGM+IDxib3gtbGM+IDxkaXYgc3R5bGU9ImRpc3BsYXk6IG5vbmU7IiBpZD0iTWlzc2luZ1ZhbGlkYXRpb25Nc2ciIGNsYXNzPSJlcnJvck1zZyI+IDxwPkNlcnRhaW5zIGNoYW1wcyBvYmxpZ2F0b2lyZXMgbidvbnQgcGFzIMOpdMOpIHJlbXBsaXM8L3A+IDwvZGl2PiA8L2JveC1sYz4gPGJveC1sYz4gPGJ1dHRvbiBjbGFzcz0ic2VuZFF1aWNrRW1haWwgLXJpZ2h0IGJ0bi1kZWZhdWx0ICI+RW52b3llcjwvYnV0dG9uPiA8L2JveC1sYz4gPC9zdGFjay1sYz4gPC9kaXY+IDwvZGl2PiA8ZGl2IGlkPSJtZW51Q29udGFjdFVzRGVmIiBzdHlsZT0iZGlzcGxheTpub25lIj4gPGRpdiBpZD0iZW1haWxTdWJqZWN0RGVmX21lbnVDb250YWN0VXMiIHN0eWxlPSJkaXNwbGF5Om5vbmUiPkxlYWQgOiBEZW1hbmRlIGRlIGNvbnRhY3Q8L2Rpdj4gPGRpdiBpZD0iZW1haWxCb2R5RGVmX21lbnVDb250YWN0VXMiIHN0eWxlPSJkaXNwbGF5Om5vbmUiPkJvbmpvdXIsPGJyPjxicj5VbiBjbGllbnQgcG90ZW50aWVsIGF5YW50IHZpc2l0w6kgdm90cmUgc2l0ZSB3ZWIsIGEgcmVtcGxpIGxlIGZvcm11bGFpcmUgZGUgY29udGFjdCA6PGJyPjxicj48dT5SZW5zZWlnbmVtZW50cyBzdXIgbGUgdmlzaXRldXI8L3U+IDo8YnI+Tm9tIDogPHN0cm9uZz57JE5BTUV9PC9zdHJvbmc+PGJyPkNvdXJyaWVsIDogPHN0cm9uZz48YSBocmVmPSI\/cGF0aD1tYWlsdG86JTdCJTI0RU1BSUwlN0QiPnskRU1BSUx9PC9hPjwvc3Ryb25nPiB7JFNQQU1NRVJfV0FSTklOR308YnI+VMOpbMOpcGhvbmUgOiA8c3Ryb25nPjxhIGhyZWY9Ij9wYXRoPXRlbDolN0IlMjRFTUFJTFBIT05FJTdEIj57JEVNQUlMUEhPTkV9PC9hPjwvc3Ryb25nPiB7JFBIT05FX1ZBTElEQVRJT05fQVRURU1QVFN9PGJyPlZpbGxlIDogPHN0cm9uZz57JEVNQUlMQ0lUWX08L3N0cm9uZz48YnI+PGJyPkRlcm5pZXIgdsOpaGljdWxlIHZ1ZTogPHN0cm9uZz57JExBU1RWRUhJQ0xFVklFV0VEfTwvc3Ryb25nPjxicj5EZXJuaWVyIHbDqWhpY3VsZSBjb25maWd1csOpOiA8c3Ryb25nPnskRU1BSUxCVUlMREFORFBSSUNFfTwvc3Ryb25nPjxicj48YnI+RMOpcGFydGVtZW50OiA8c3Ryb25nPnskREVQQVJUTUVOVDJ9PC9zdHJvbmc+PGJyPjxicj48dT5NZXNzYWdlIGR1IHZpc2l0ZXVyPC91PiA6PGJyPjxzdHJvbmc+eyRNRVNTQUdFfTwvc3Ryb25nPjxicj48YnI+PGRpdiBzdHlsZT0iIyNTRU9CTE9DS0RJU1BMQVkjIyI+U291cmNlIE3DqWRpYTogPHN0cm9uZz57JFVUTURFVEFJTFN9PC9zdHJvbmc+PGJyPk5hdmlnYXRldXI6IDxzdHJvbmc+eyRVU0VSQUdFTlR9IC0gPC9zdHJvbmc+PGJyPkhpc3RvcmlxdWUgZGUgbmF2aWdhdGlvbjogPHN0cm9uZz48YSBocmVmPSI\/cGF0aD0lN0IlMjRVVUxJTkslN0QiIHJlbD0ibm9mb2xsb3cgdWdjIHNwb25zb3JlZCBub2luZGV4IiBzdHlsZT0iY29sb3I6YmxhY2s7IHRleHQtZGVjb3JhdGlvbjogbm9uZTsiPkNsaXF1ZXogaWNpPC9hPjwvc3Ryb25nPjxicj48L2Rpdj5Db25zZW50ZW1lbnQ6wqA8c3Ryb25nPnskQ09OU0VOVF9ERVRBSUxTfTwvc3Ryb25nPnskUFVSQ0hBU0VfSU5URU5UfTwvZGl2PiA8L2Rpdj4gPC9mb3JtPiA8L2Rpdj4gPGRpdiBjbGFzcz0iYWRkcmVzcyI+IDxkaXYgY2xhc3M9Im1lbnUtYWRkcmVzcyI+IDxoNSBjbGFzcz0idGl0bGUiPkNvb3Jkb25uw6llczwvaDU+IDxkaXYgY2xhc3M9Im1lbnUtYWRkcmVzcy1kZXNjIj4gPHNwYW4gY2xhc3M9ImZhIGZhLW1hcC1tYXJrZXIiIGFyaWEtaGlkZGVuPSJ0cnVlIj48L3NwYW4+IDxkaXYgY2xhc3M9Im1lbnUtYWRkcmVzcy13cmFwcGVyIj4gU2l0dGVsbGUgTWF6ZGEgPGJyPiAxNTMyMCBCb3VsZXZhcmQgTGFjcm9peCA8YnI+IFN0LUdlb3JnZXMsIFFDIDxicj4gRzVZIDFSNyA8YnI+IDwvZGl2PiA8ZGl2IGNsYXNzPSJtZW51LXBob25lcyI+IDxzdGFjay1sYyBjbGFzcz0icGhvbmUtd3JhcHBlciI+PGEgaHJlZj0iP3BhdGg9dGVsOjQxOCUyMDIyOC00ODE1IiBjbGFzcz0iZmxleC1iZXR3ZWVuIiBkYXRhLWRlcGFydG1lbnQ9IlNhbGVzIj4gPHNwYW4gY2xhc3M9ImZpcnN0Ij48c3BhbiBjbGFzcz0iZmEgZmEtcGhvbmUiIGFyaWEtaGlkZGVuPSJ0cnVlIj48L3NwYW4+R8OpbsOpcmFsOjwvc3Bhbj4gPHNwYW4+NDE4IDIyOC00ODE1PGJyPjwvc3Bhbj4KPC9hPjwvc3RhY2stbGM+IDwvZGl2PiA8L2Rpdj4gPGRpdiBjbGFzcz0iLWZzMTAgLXJpZ2h0IiBzdHlsZT0ibWFyZ2luLXJpZ2h0OiAxMHB4OyI+PC9kaXY+IDwvZGl2PiA8dWwgY2xhc3M9InNsaW0tc3VibWVudSAtbXQxNSI+PGxpIGRhdGEtaWQ9IkNPTlRBQ1RVUyIgaWQ9Ik1haW5NZW51XzY5YjdkNWQ4NzQ0MTYiPjxhIGhyZWY9Ij9wYXRoPS9jb250YWN0ZXpub3VzLmh0bWwiPk5vdXMgam9pbmRyZTwvYT48L2xpPgo8bGkgZGF0YS1pZD0iMTY2MmIyMC01MTUtZDE5Mi04MjQ2LTRkNyIgaWQ9Ik1haW5NZW51XzY5YjdkNWQ4NzQ0M2QiPjxhIGhyZWY9Ij9wYXRoPS9kZW1hbmRlcy9lbXBsb2lzLWF1dG9tb2JpbGUuaHRtbCIgZGF0YS1tZW51LXRyYW5zbGF0ZT0iMTY2MmIyMC01MTUtZDE5Mi04MjQ2LTRkNyI+Q2FycmnDqHJlczwvYT48L2xpPgo8bGkgZGF0YS1pZD0iMmRlMGRlM2MtN2E3MS1iZTA0LTE2OWItNyIgaWQ9Ik1haW5NZW51XzY5YjdkNWQ4NzQ0NDQiPjxhIGhyZWY9Ij9wYXRoPS9lcXVpcGUuaHRtbCIgZGF0YS1tZW51LXRyYW5zbGF0ZT0iMmRlMGRlM2MtN2E3MS1iZTA0LTE2OWItNyI+Tm90cmUgw6lxdWlwZTwvYT48L2xpPgo8L3VsPgo8L2Rpdj4gPC9saT48L3VsPgo8L2xpPgo8bGkgZGF0YS1pZD0iU0VSVklDRSIgaWQ9Ik1haW5NZW51X1NFUlZJQ0UiIGNsYXNzPSJ0b3AgaGFzSXRlbXMiPjxhIGNsYXNzPSJ0b3BfbGluayIgaHJlZj0iP3BhdGg9L3NlcnZpY2VzLW1hemRhLmh0bWwiIGRhdGEtbWVudS10cmFuc2xhdGU9IlNFUlZJQ0UiPlNFUlZJQ0UgJmFtcDsgUEnDiENFUzwvYT48dWwgY2xhc3M9InN1YiI+CjxsaSBkYXRhLWlkPSJBUFBPSU5UIiBpZD0iTWFpbk1lbnVfNjliN2Q1ZDg3YTJjOCIgY2xhc3M9ImZpcnN0SXRlbSI+PGEgaHJlZj0iP3BhdGg9L2RlbWFuZGVzL3JlbmRlei12b3VzLWF1LXNlcnZpY2UuaHRtbCI+UHJlbmRyZSByZW5kZXotdm91czwvYT48L2xpPgo8bGkgZGF0YS1pZD0iUElFQ0VTIiBpZD0iTWFpbk1lbnVfNjliN2Q1ZDg3YTJjZCI+PGEgaHJlZj0iP3BhdGg9L2RlbWFuZGVzL2NvbW1hbmRlLXBpZWNlcy1hY2Nlc3NvaXJlcy1hdXRvbW9iaWxlcy5odG1sIiBkYXRhLW1lbnUtdHJhbnNsYXRlPSJQSUVDRVMiPlBpw6hjZXMgJmFtcDsgQWNjZXNzb2lyZXM8L2E+PC9saT4KPGxpIGRhdGEtaWQ9IlRJUkVTIiBpZD0iTWFpbk1lbnVfNjliN2Q1ZDg3YTJkNCI+PGEgaHJlZj0iP3BhdGg9L2RlbWFuZGVzL2NvbW1hbmRlLWRlLXBuZXVzLmh0bWwiPkNvbW1hbmRleiB2b3MgcG5ldXMgaWNpITwvYT48L2xpPgo8bGkgZGF0YS1pZD0iR1BfYjY2Mjc1N2JmMjI2NTMzYyIgaWQ9Ik1haW5NZW51XzY5YjdkNWQ4N2EyZGEiPjxhIGhyZWY9Ij9wYXRoPS9wcm9ncmFtbWUtZW50cmV0aWVuLW1hemRhLmh0bWwiPlByb2dyYW1tZSBkJ2VudHJldGllbiBNYXpkYTwvYT48L2xpPgo8bGkgZGF0YS1pZD0iQk9EWSIgaWQ9Ik1haW5NZW51XzY5YjdkNWQ4N2EyZTAiPjxhIGhyZWY9Ij9wYXRoPS9kZW1hbmRlcy9yZW5kZXotdm91cy1hdS1jYXJvc3NlcmllLmh0bWwiPkNhcnJvc3NlcmllPC9hPjwvbGk+CjxsaSBkYXRhLWlkPSJHUF84ZDkxY2Q3NGQ0NzgxNDEiIGlkPSJNYWluTWVudV82OWI3ZDVkODdhMmU1Ij48YSBocmVmPSI\/cGF0aD0vbWF6ZGEtZ2FyYW50aWUtaWxsaW1pdGVlLmh0bWwiIGRhdGEtbWVudS10cmFuc2xhdGU9IkdQXzhkOTFjZDc0ZDQ3ODE0MSI+R2FyYW50aWUga2lsb23DqXRyYWdlIGlsbGltaXTDqSBNYXpkYTwvYT48L2xpPgo8bGkgZGF0YS1pZD0iR1BfNWFlMzk0NDZmNzMyYjJhNyIgaWQ9Ik1haW5NZW51XzY5YjdkNWQ4N2EyZWIiPjxhIGhyZWY9Ij9wYXRoPS9waWVjZXMtb3JpZ2luZS1tYXpkYS5odG1sIiBkYXRhLW1lbnUtdHJhbnNsYXRlPSJHUF81YWUzOTQ0NmY3MzJiMmE3Ij5QacOoY2VzIGQnb3JpZ2luZSBNYXpkYTwvYT48L2xpPgo8bGkgZGF0YS1pZD0iYjNhYmNiMzItMmY1NC1hYWM2LTdjMC00NCIgaWQ9Ik1haW5NZW51XzY5YjdkNWQ4N2EyZjAiPjxhIGhyZWY9Ij9wYXRoPS9jYWJpbmUtZXNzYXlhZ2UtbWF6ZGEuaHRtbCI+UG5ldXMgZXQgYWNjZXNzb2lyZXMgTWF6ZGE8L2E+PC9saT4KPGxpIGRhdGEtaWQ9IjllZjMyZWYwLTgxMmEtYWJhZC1lNTdkLTYiIGlkPSJNYWluTWVudV82OWI3ZDVkODdhMmY3IiBjbGFzcz0ibGFzdEl0ZW0iPjxhIGhyZWY9Ij9wYXRoPS9hbGlnbmVtZW50YXV0by5odG1sIj5TZXJ2aWNlIGQnQWxpZ25lbWVudCBBdXRvPC9hPjwvbGk+CjwvdWw+CjwvbGk+CjxsaSBkYXRhLWlkPSJGSU5BTkNFIiBpZD0iTWFpbk1lbnVfRklOQU5DRSIgY2xhc3M9InRvcCBoYXNJdGVtcyI+PGEgY2xhc3M9InRvcF9saW5rIiBocmVmPSI\/cGF0aD0vZGVtYW5kZXMvZmluYW5jZW1lbnQuaHRtbCI+RklOQU5DRU1FTlQ8L2E+PHVsIGNsYXNzPSJzdWIiPgo8bGkgZGF0YS1pZD0iODEzNjk3YzMtZWZhMS1hYTA0LTI1ZDctOCIgaWQ9Ik1haW5NZW51XzY5YjdkNWQ4N2EyYmIiIGNsYXNzPSJmaXJzdEl0ZW0gbGFzdEl0ZW0iPjxhIGhyZWY9Ij9wYXRoPS9kZW1hbmRlcy9maW5hbmNlbWVudC5odG1sIj5EZW1hbmRlIGRlIGZpbmFuY2VtZW50PC9hPjwvbGk+CjwvdWw+CjwvbGk+CjxsaSBkYXRhLWlkPSJQUk9NTyIgaWQ9Ik1haW5NZW51X1BST01PIiBjbGFzcz0idG9wIGhhc0l0ZW1zIj48YSBjbGFzcz0idG9wX2xpbmsiIGhyZWY9Ij9wYXRoPS9wcm9tb3Rpb25zLmh0bWwiIGRhdGEtbWVudS10cmFuc2xhdGU9IlBST01PIj5PRkZSRVMgU1DDiUNJQUxFUzwvYT48dWwgY2xhc3M9InN1YiI+CjxsaSBkYXRhLWlkPSJQUk9NT19NQU5VRkFDVFVSRVIiIGlkPSJNYWluTWVudV82OWI3ZDVkODdhMjk5IiBjbGFzcz0iZmlyc3RJdGVtIj48YSBocmVmPSI\/cGF0aD0vcHJvbW90aW9ucy5odG1sI21hbnVmYWN0dXJlciI+SW5jaXRhdGlmcyBNYXpkYTwvYT48L2xpPgo8bGkgZGF0YS1pZD0iUFJPTU9fU0VSVklDRSIgaWQ9Ik1haW5NZW51XzY5YjdkNWQ4N2EyOWYiPjxhIGhyZWY9Ij9wYXRoPS9wcm9tb3Rpb25zLmh0bWwjc2VydmljZSI+UHJvbW90aW9ucyBkZSBzZXJ2aWNlPC9hPjwvbGk+CjxsaSBkYXRhLWlkPSJHUF8xMTQ4M2I3ZGQ3ODI4MmMiIGlkPSJNYWluTWVudV82OWI3ZDVkODdhMmE0Ij48YSBocmVmPSI\/cGF0aD0vcHJvZ3JhbW1lcy1tYXpkYS5odG1sIiBkYXRhLW1lbnUtdHJhbnNsYXRlPSJHUF8xMTQ4M2I3ZGQ3ODI4MmMiPlByb2dyYW1tZXMgU3DDqWNpYXV4IE1hemRhPC9hPjwvbGk+CjxsaSBkYXRhLWlkPSJQUk9NT19PRU1SRUJBVEVTX01BWkRBIiBpZD0iTWFpbk1lbnVfNjliN2Q1ZDg3YTJhYSIgY2xhc3M9Imxhc3RJdGVtIj48YSBocmVmPSI\/cGF0aD0vcHJvbW90aW9ucy5odG1sI21hemRhcmViYXRlcyIgZGF0YS1tZW51LXRyYW5zbGF0ZT0iUFJPTU9fT0VNUkVCQVRFU19NQVpEQSI+TW9kw6hsZXMgTWF6ZGEgZW4gcmFiYWlzPC9hPjwvbGk+CjwvdWw+CjwvbGk+CjxsaSBkYXRhLWlkPSJVU0VEIiBpZD0iTWFpbk1lbnVfVVNFRCIgY2xhc3M9InRvcCBoYXNJdGVtcyBzaG9ydCBzaG9ydC0yIj48YSBjbGFzcz0idG9wX2xpbmsiIGhyZWY9Ij9wYXRoPS9vY2Nhc2lvbi9yZWNoZXJjaGUuaHRtbCIgZGF0YS1tZW51LXRyYW5zbGF0ZT0iVVNFRCI+T0NDQVNJT048L2E+PHVsIGNsYXNzPSJzdWIgc2xpbS1zdWJtZW51LTMiPgo8bGkgZGF0YS1pZD0iVVNFRF9TRUFSQ0hFUyIgaWQ9Ik1haW5NZW51X1VTRURfU0VBUkNIRVMiIGNsYXNzPSJ0b3AgZmlyc3RNZW51IGhhc0l0ZW1zIGlzQm9sZCI+PGEgY2xhc3M9InRvcF9saW5rIGlzQm9sZCBub3RDbGlja2FibGUiIG9uY2xpY2s9InJldHVybiBmYWxzZTsiIGhyZWY9Ij9wYXRoPSMiPkxpZW5zIFJhcGlkZXM8L2E+PHVsIGNsYXNzPSJzdWIgc2xpbS1zdWJtZW51LTMiPgo8bGkgZGF0YS1pZD0iVVNFRF9BTExJTlYiIGlkPSJNYWluTWVudV82OWI3ZDVkODdhMWU4IiBjbGFzcz0iZmlyc3RJdGVtIj48YSBocmVmPSI\/cGF0aD0vb2NjYXNpb24vcmVjaGVyY2hlLmh0bWwiPkludmVudGFpcmUgZCdvY2Nhc2lvbiAoMzUpPC9hPjwvbGk+CjxsaSBkYXRhLWlkPSJVU0VEX0xFU1MzMEsiIGlkPSJNYWluTWVudV82OWI3ZDVkODdhMWYwIj48YSBocmVmPSI\/cGF0aD0vb2NjYXNpb24vbW9pbnMtZGUtMzAwMDAuaHRtbCI+TW9pbnMgZGUgMzAsMDAwJCAoMTkpPC9hPjwvbGk+CjxsaSBkYXRhLWlkPSJVU0VEX0xFU1MyMEsiIGlkPSJNYWluTWVudV82OWI3ZDVkODdhMWY2Ij48YSBocmVmPSI\/cGF0aD0vb2NjYXNpb24vbW9pbnMtZGUtMjAwMDAuaHRtbCI+TW9pbnMgZGUgMjAsMDAwJCAoNik8L2E+PC9saT4KPGxpIGRhdGEtaWQ9IlVTRURfQ0FUX0NBUiIgaWQ9Ik1haW5NZW51XzY5YjdkNWQ4N2ExZmQiPjxhIGhyZWY9Ij9wYXRoPS9vY2Nhc2lvbi90eXBlL0F1dG9zLmh0bWwiPkF1dG9zICgyKTwvYT48L2xpPgo8bGkgZGF0YS1pZD0iVVNFRF9DQVRfU1VWIiBpZD0iTWFpbk1lbnVfNjliN2Q1ZDg3YTIwMiI+PGEgaHJlZj0iP3BhdGg9L29jY2FzaW9uL3R5cGUvVlVTLmh0bWwiPlZVUyAoMzEpPC9hPjwvbGk+CjxsaSBkYXRhLWlkPSJVU0VEX0NBVF9DT05WRVJUSUJMRSIgaWQ9Ik1haW5NZW51XzY5YjdkNWQ4N2EyMDgiPjxhIGhyZWY9Ij9wYXRoPS9vY2Nhc2lvbi90eXBlL0RlY2Fwb3RhYmxlcy5odG1sIiBkYXRhLW1lbnUtdHJhbnNsYXRlPSJVU0VEX0NBVF9DT05WRVJUSUJMRSI+RMOpY2Fwb3RhYmxlcyAoMSk8L2E+PC9saT4KPGxpIGRhdGEtaWQ9IjEyOGJkZWU4LTI5YmItMjU4OC00MTlkLTQiIGlkPSJNYWluTWVudV82OWI3ZDVkODdhMjBlIiBjbGFzcz0ibGFzdEl0ZW0iPjxhIGhyZWY9Ij9wYXRoPS9hY2hhdC11c2FnZS5odG1sIiBkYXRhLW1lbnUtdHJhbnNsYXRlPSIxMjhiZGVlOC0yOWJiLTI1ODgtNDE5ZC00Ij5PbiBhY2jDqHRlIHZvdHJlIE1hemRhITwvYT48L2xpPgo8L3VsPgo8L2xpPgo8bGkgZGF0YS1pZD0iVVNFRF9DQVJTIiBpZD0iTWFpbk1lbnVfVVNFRF9DQVJTIiBjbGFzcz0idG9wIGxhc3RNZW51IGhhc0l0ZW1zIGlzQm9sZCBpbnZlbnRvcnkiPjxhIGNsYXNzPSJ0b3BfbGluayBpc0JvbGQgbm90Q2xpY2thYmxlIiBvbmNsaWNrPSJyZXR1cm4gZmFsc2U7IiBocmVmPSI\/cGF0aD0jIiBkYXRhLW1lbnUtdHJhbnNsYXRlPSJVU0VEX0NBUlMiPk5vcyB0b3AtMTcgbW9kw6hsZXM8L2E+PHVsIGNsYXNzPSJzdWIgc2xpbS1zdWJtZW51LTMiPgo8bGkgZGF0YS1pZD0iVVNFRF9DQVJTX0cwIiBpZD0iTWFpbk1lbnVfVVNFRF9DQVJTX0cwIiBjbGFzcz0idG9wIGZpcnN0TWVudSBoYXNJdGVtcyBpc0JvbGQiPjxzcGFuIGNsYXNzPSJ0b3BfbGluayBpc0JvbGQiPjwvc3Bhbj48dWwgY2xhc3M9InN1YiBzbGltLXN1Ym1lbnUtMyI+CjxsaSBkYXRhLWlkPSJVU0VEMSIgaWQ9Ik1haW5NZW51XzY5YjdkNWQ4N2EyMmIiIGNsYXNzPSJmaXJzdEl0ZW0iPjxhIGhyZWY9Ij9wYXRoPS9vY2Nhc2lvbi9NYXpkYS1DWF8zLmh0bWwiPk1hemRhIENYLTMgKDEpPC9hPjwvbGk+CjxsaSBkYXRhLWlkPSJVU0VEMiIgaWQ9Ik1haW5NZW51XzY5YjdkNWQ4N2EyMzEiPjxhIGhyZWY9Ij9wYXRoPS9vY2Nhc2lvbi9NYXpkYS1DWF8zMC5odG1sIj5NYXpkYSBDWC0zMCAoNSk8L2E+PC9saT4KPGxpIGRhdGEtaWQ9IlVTRUQzIiBpZD0iTWFpbk1lbnVfNjliN2Q1ZDg3YTIzNyI+PGEgaHJlZj0iP3BhdGg9L29jY2FzaW9uL01hemRhLUNYXzUuaHRtbCI+TWF6ZGEgQ1gtNSAoNCk8L2E+PC9saT4KPGxpIGRhdGEtaWQ9IlVTRUQ0IiBpZD0iTWFpbk1lbnVfNjliN2Q1ZDg3YTIzYyI+PGEgaHJlZj0iP3BhdGg9L29jY2FzaW9uL01hemRhLUNYXzUwLmh0bWwiPk1hemRhIENYLTUwICg1KTwvYT48L2xpPgo8bGkgZGF0YS1pZD0iVVNFRDUiIGlkPSJNYWluTWVudV82OWI3ZDVkODdhMjQxIj48YSBocmVmPSI\/cGF0aD0vb2NjYXNpb24vTWF6ZGEtQ1hfNzBfTUhFVi5odG1sIj5NYXpkYSBDWC03MCBNSEVWICg0KTwvYT48L2xpPgo8bGkgZGF0YS1pZD0iVVNFRDYiIGlkPSJNYWluTWVudV82OWI3ZDVkODdhMjQ2Ij48YSBocmVmPSI\/cGF0aD0vb2NjYXNpb24vTWF6ZGEtQ1hfNzBfUEhFVi5odG1sIj5NYXpkYSBDWC03MCBQSEVWICgxKTwvYT48L2xpPgo8bGkgZGF0YS1pZD0iVVNFRDciIGlkPSJNYWluTWVudV82OWI3ZDVkODdhMjRiIj48YSBocmVmPSI\/cGF0aD0vb2NjYXNpb24vTWF6ZGEtQ1hfOTBfTUhFVi5odG1sIj5NYXpkYSBDWC05MCBNSEVWICgzKTwvYT48L2xpPgo8bGkgZGF0YS1pZD0iVVNFRDgiIGlkPSJNYWluTWVudV82OWI3ZDVkODdhMjRmIj48YSBocmVmPSI\/cGF0aD0vb2NjYXNpb24vTWF6ZGEtTWF6ZGEzLmh0bWwiPk1hemRhMyAoMSk8L2E+PC9saT4KPGxpIGRhdGEtaWQ9IlVTRUQ5IiBpZD0iTWFpbk1lbnVfNjliN2Q1ZDg3YTI1MyIgY2xhc3M9Imxhc3RJdGVtIj48YSBocmVmPSI\/cGF0aD0vb2NjYXNpb24vTWF6ZGEtTVhfNV9SRi5odG1sIj5NYXpkYSBNWC01IFJGICgxKTwvYT48L2xpPgo8L3VsPgo8L2xpPgo8bGkgZGF0YS1pZD0iVVNFRF9DQVJTX0cxIiBpZD0iTWFpbk1lbnVfVVNFRF9DQVJTX0cxIiBjbGFzcz0idG9wIGxhc3RNZW51IGhhc0l0ZW1zIGlzQm9sZCI+PHNwYW4gY2xhc3M9InRvcF9saW5rIGlzQm9sZCI+PC9zcGFuPjx1bCBjbGFzcz0ic3ViIHNsaW0tc3VibWVudS0zIj4KPGxpIGRhdGEtaWQ9IlVTRUQxMCIgaWQ9Ik1haW5NZW51XzY5YjdkNWQ4N2EyNWYiIGNsYXNzPSJmaXJzdEl0ZW0iPjxhIGhyZWY9Ij9wYXRoPS9vY2Nhc2lvbi9IeXVuZGFpLUtvbmEuaHRtbCI+SHl1bmRhaSBLb25hICgzKTwvYT48L2xpPgo8bGkgZGF0YS1pZD0iVVNFRDExIiBpZD0iTWFpbk1lbnVfNjliN2Q1ZDg3YTI2NCI+PGEgaHJlZj0iP3BhdGg9L29jY2FzaW9uL0J1aWNrLUVuY29yZS5odG1sIj5CdWljayBFbmNvcmUgKDEpPC9hPjwvbGk+CjxsaSBkYXRhLWlkPSJVU0VEMTIiIGlkPSJNYWluTWVudV82OWI3ZDVkODdhMjY5Ij48YSBocmVmPSI\/cGF0aD0vb2NjYXNpb24vSHl1bmRhaS1UdWNzb24uaHRtbCI+SHl1bmRhaSBUdWNzb24gKDEpPC9hPjwvbGk+CjxsaSBkYXRhLWlkPSJVU0VEMTMiIGlkPSJNYWluTWVudV82OWI3ZDVkODdhMjZlIj48YSBocmVmPSI\/cGF0aD0vb2NjYXNpb24vSHl1bmRhaS1WZW51ZS5odG1sIj5IeXVuZGFpIFZlbnVlICgxKTwvYT48L2xpPgo8bGkgZGF0YS1pZD0iVVNFRDE0IiBpZD0iTWFpbk1lbnVfNjliN2Q1ZDg3YTI3MiI+PGEgaHJlZj0iP3BhdGg9L29jY2FzaW9uL0tpYS1SaW81Lmh0bWwiPktpYSBSaW81ICgxKTwvYT48L2xpPgo8bGkgZGF0YS1pZD0iVVNFRDE1IiBpZD0iTWFpbk1lbnVfNjliN2Q1ZDg3YTI3NyI+PGEgaHJlZj0iP3BhdGg9L29jY2FzaW9uL0tpYS1Tb3JlbnRvLmh0bWwiPktpYSBTb3JlbnRvICgxKTwvYT48L2xpPgo8bGkgZGF0YS1pZD0iVVNFRDE2IiBpZD0iTWFpbk1lbnVfNjliN2Q1ZDg3YTI3YyI+PGEgaHJlZj0iP3BhdGg9L29jY2FzaW9uL1N1YmFydS1Bc2NlbnQuaHRtbCI+U3ViYXJ1IEFzY2VudCAoMSk8L2E+PC9saT4KPGxpIGRhdGEtaWQ9IlVTRUQxNyIgaWQ9Ik1haW5NZW51XzY5YjdkNWQ4N2EyODIiIGNsYXNzPSJsYXN0SXRlbSI+PGEgaHJlZj0iP3BhdGg9L29jY2FzaW9uL1N1YmFydS1JbXByZXphLmh0bWwiPlN1YmFydSBJbXByZXphICgxKTwvYT48L2xpPgo8L3VsPgo8L2xpPgo8L3VsPgo8L2xpPgo8L3VsPgo8L2xpPgo8bGkgZGF0YS1pZD0iTkVXIiBpZD0iTWFpbk1lbnVfTkVXIiBjbGFzcz0idG9wIGZpcnN0TWVudSBoYXNJdGVtcyI+PGEgY2xhc3M9InRvcF9saW5rIiBocmVmPSI\/cGF0aD0vbmV1ZnMvbm91dmVhdS5odG1sIiBkYXRhLW1lbnUtdHJhbnNsYXRlPSJORVciPlbDiUhJQ1VMRVMgTkVVRlM8L2E+PHVsIGNsYXNzPSJzdWIiPgo8bGkgZGF0YS1pZD0iTkVXX0JVSUxEUFJJQ0UiIGlkPSJNYWluTWVudV82OWI3ZDVkODc5ZmI1IiBjbGFzcz0iZmlyc3RJdGVtIj48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vY29uZmlndXJhdGlvbi1ldC1wcml4L2NvbmZpZ3VyYXRpb24uaHRtbCI+Q29uZmlndXJhdGV1ciBldCBwcml4PC9hPjwvbGk+CjxsaSBkYXRhLWlkPSJORVdJTlYiIGlkPSJNYWluTWVudV82OWI3ZDVkODc5ZmM3Ij48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvaW52ZW50YWlyZS9yZWNoZXJjaGUuaHRtbCI+SW52ZW50YWlyZSBOZXVmICg5OSk8L2E+PC9saT4KPGxpIGRhdGEtaWQ9Ik5FV19TRURBTiIgaWQ9Ik1haW5NZW51XzY5YjdkNWQ4N2EwMjYiIGNsYXNzPSJoYXNTdWIiPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9hdXRvcy5odG1sIj5BdXRvczwvYT48dWwgY2xhc3M9InN1YiI+PGxpIGRhdGEtaWQ9Ik5FV19TRURBTl9NYXpkYSIgaWQ9Ik1haW5NZW51XzY5YjdkNWQ4N2EwMWUiIGNsYXNzPSJmaXJzdEl0ZW0gbGFzdEl0ZW0gaGFzU3ViIGhhc0ltZyI+PHVsIGNsYXNzPSJzdWIiPjxsaSBkYXRhLWlkPSIyMDcwMDAwMDQyIiBpZD0iTWFpbk1lbnVfNjliN2Q1ZDg3OWZkZSIgY2xhc3M9ImZpcnN0SXRlbSBoYXNJbWciIGRhdGEtbW9kZWxpZD0iNTc3MDEiPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9NYXpkYS1NYXpkYTMtMjAyNS5odG1sIiBjbGFzcz0iaW1nTGluayBpc0JvbGQgIj48aW1nIGFsdD0iTWF6ZGEzIDIwMjUiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL01hemRhL01hemRhMy8yMDI1L1QvNDYxMDkyL1JlZC9wcm9maWxlLnBuZz9jYj02OWI3ZDVkMWQ1ZmU5IiBlcnJvcmltZz0iLy9pbWcuZDJjbWVkaWEuY2EvY2FybWFrZXMvbWF6ZGFfYy5wbmciIHRpdGxlPSJNYXpkYTMgMjAyNSIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPjwvYT48c3BhbiBjbGFzcz0icHJpY2UiPjxzcGFuIGNsYXNzPSJwcmljZV90ZXh0Ij7DoCBwYXJ0aXIgZGU8L3NwYW4+PHNwYW4gY2xhc3M9InByaWNlX2FtdCI+MjggMjQwICQ8L3NwYW4+PC9zcGFuPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9NYXpkYS1NYXpkYTMtMjAyNS5odG1sIj5NYXpkYTMgMjAyNTwvYT48L2xpPgo8bGkgZGF0YS1pZD0iMzEzMzgxNjU4NyIgaWQ9Ik1haW5NZW51XzY5YjdkNWQ4NzlmZjciIGNsYXNzPSJoYXNJbWciIGRhdGEtbW9kZWxpZD0iNzUyMTAiPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9NYXpkYS1NYXpkYTMtMjAyNi5odG1sIiBjbGFzcz0iaW1nTGluayBpc0JvbGQgIj48aW1nIGFsdD0iTWF6ZGEzIDIwMjYiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL01hemRhL01hemRhMy8yMDI2L1QvNDgzMDEwL1doaXRlL3Byb2ZpbGUucG5nP2NiPTY5YjdkNWQxZDVmZTkiIGVycm9yaW1nPSIvL2ltZy5kMmNtZWRpYS5jYS9jYXJtYWtlcy9tYXpkYV9jLnBuZyIgdGl0bGU9Ik1hemRhMyAyMDI2IiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+PC9hPjxzcGFuIGNsYXNzPSJwcmljZSI+PHNwYW4gY2xhc3M9InByaWNlX3RleHQiPsOgIHBhcnRpciBkZTwvc3Bhbj48c3BhbiBjbGFzcz0icHJpY2VfYW10Ij4yOCAyNDAgJDwvc3Bhbj48L3NwYW4+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL01hemRhLU1hemRhMy0yMDI2Lmh0bWwiPk1hemRhMyAyMDI2PC9hPjwvbGk+CjxsaSBkYXRhLWlkPSIzMzg2MDI5NjI5IiBpZD0iTWFpbk1lbnVfNjliN2Q1ZDg3YTAwNCIgY2xhc3M9Imhhc0ltZyIgZGF0YS1tb2RlbGlkPSI1NzcwMiI+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL01hemRhLU1hemRhM19TcG9ydC0yMDI1Lmh0bWwiIGNsYXNzPSJpbWdMaW5rIGlzQm9sZCAiPjxpbWcgYWx0PSJNYXpkYTMgU3BvcnQgMjAyNSIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvTWF6ZGEvTWF6ZGEzIFNwb3J0LzIwMjUvVC80NjExMDAvUmVkL3Byb2ZpbGUucG5nP2NiPTY5YjdkNWQxZDVmZTkiIGVycm9yaW1nPSIvL2ltZy5kMmNtZWRpYS5jYS9jYXJtYWtlcy9tYXpkYV9jLnBuZyIgdGl0bGU9Ik1hemRhMyBTcG9ydCAyMDI1IiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+PC9hPjxzcGFuIGNsYXNzPSJwcmljZSI+PHNwYW4gY2xhc3M9InByaWNlX3RleHQiPsOgIHBhcnRpciBkZTwvc3Bhbj48c3BhbiBjbGFzcz0icHJpY2VfYW10Ij4yOCA5OTAgJDwvc3Bhbj48L3NwYW4+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL01hemRhLU1hemRhM19TcG9ydC0yMDI1Lmh0bWwiPk1hemRhMyBTcG9ydCAyMDI1PC9hPjwvbGk+CjxsaSBkYXRhLWlkPSIzMTM1MzI3NDQ2IiBpZD0iTWFpbk1lbnVfNjliN2Q1ZDg3YTAxMSIgY2xhc3M9Imxhc3RJdGVtIGhhc0ltZyIgZGF0YS1tb2RlbGlkPSI3NTIxNSI+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL01hemRhLU1hemRhM19TcG9ydC0yMDI2Lmh0bWwiIGNsYXNzPSJpbWdMaW5rIGlzQm9sZCAiPjxpbWcgYWx0PSJNYXpkYTMgU3BvcnQgMjAyNiIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvTWF6ZGEvTWF6ZGEzIFNwb3J0LzIwMjYvVC80ODMwMzQvV2hpdGUvcHJvZmlsZS5wbmc\/Y2I9NjliN2Q1ZDFkNWZlOSIgZXJyb3JpbWc9Ii8vaW1nLmQyY21lZGlhLmNhL2Nhcm1ha2VzL21hemRhX2MucG5nIiB0aXRsZT0iTWF6ZGEzIFNwb3J0IDIwMjYiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj48L2E+PHNwYW4gY2xhc3M9InByaWNlIj48c3BhbiBjbGFzcz0icHJpY2VfdGV4dCI+w6AgcGFydGlyIGRlPC9zcGFuPjxzcGFuIGNsYXNzPSJwcmljZV9hbXQiPjI4IDk5MCAkPC9zcGFuPjwvc3Bhbj48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvTWF6ZGEtTWF6ZGEzX1Nwb3J0LTIwMjYuaHRtbCI+TWF6ZGEzIFNwb3J0IDIwMjY8L2E+PC9saT4KPC91bD48L2xpPgo8L3VsPjwvbGk+CjxsaSBkYXRhLWlkPSJORVdfU1VWIiBpZD0iTWFpbk1lbnVfNjliN2Q1ZDg3YTBkYyIgY2xhc3M9Imhhc1N1YiI+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL1ZVUy5odG1sIj5WVVM8L2E+PHVsIGNsYXNzPSJzdWIiPjxsaSBkYXRhLWlkPSJORVdfU1VWX01hemRhIiBpZD0iTWFpbk1lbnVfNjliN2Q1ZDg3YTBkNCIgY2xhc3M9ImZpcnN0SXRlbSBsYXN0SXRlbSBoYXNTdWIgaGFzSW1nIj48dWwgY2xhc3M9InN1YiI+PGxpIGRhdGEtaWQ9IjE0NTc0MDU2MjkiIGlkPSJNYWluTWVudV82OWI3ZDVkODdhMDM4IiBjbGFzcz0iZmlyc3RJdGVtIGhhc0ltZyIgZGF0YS1tb2RlbGlkPSI2MDc5NiI+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL01hemRhLUNYXzMwLTIwMjUuaHRtbCIgY2xhc3M9ImltZ0xpbmsgaXNCb2xkICI+PGltZyBhbHQ9IkNYLTMwIDIwMjUiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL01hemRhL0NYXzMwLzIwMjUvVC80NjMwNTcvR3JheS9wcm9maWxlLnBuZz9jYj02OWI3ZDVkMWQ1ZmU5IiBlcnJvcmltZz0iLy9pbWcuZDJjbWVkaWEuY2EvY2FybWFrZXMvbWF6ZGFfYy5wbmciIHRpdGxlPSJDWC0zMCAyMDI1IiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+PC9hPjxzcGFuIGNsYXNzPSJwcmljZSI+PHNwYW4gY2xhc3M9InByaWNlX3RleHQiPsOgIHBhcnRpciBkZTwvc3Bhbj48c3BhbiBjbGFzcz0icHJpY2VfYW10Ij4zMiAzOTAgJDwvc3Bhbj48L3NwYW4+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL01hemRhLUNYXzMwLTIwMjUuaHRtbCI+Q1gtMzAgMjAyNTwvYT48L2xpPgo8bGkgZGF0YS1pZD0iNzc4NjQ3MjkwIiBpZD0iTWFpbk1lbnVfNjliN2Q1ZDg3YTA0MyIgY2xhc3M9Imhhc0ltZyIgZGF0YS1tb2RlbGlkPSI3NTIxMiI+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL01hemRhLUNYXzMwLTIwMjYuaHRtbCIgY2xhc3M9ImltZ0xpbmsgaXNCb2xkICI+PGltZyBhbHQ9IkNYLTMwIDIwMjYiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL01hemRhL0NYXzMwLzIwMjYvVC80ODMwMTgvV2hpdGUvcHJvZmlsZS5wbmc\/Y2I9NjliN2Q1ZDFkNWZlOSIgZXJyb3JpbWc9Ii8vaW1nLmQyY21lZGlhLmNhL2Nhcm1ha2VzL21hemRhX2MucG5nIiB0aXRsZT0iQ1gtMzAgMjAyNiIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPjwvYT48c3BhbiBjbGFzcz0icHJpY2UiPjxzcGFuIGNsYXNzPSJwcmljZV90ZXh0Ij7DoCBwYXJ0aXIgZGU8L3NwYW4+PHNwYW4gY2xhc3M9InByaWNlX2FtdCI+MzIgMzkwICQ8L3NwYW4+PC9zcGFuPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9NYXpkYS1DWF8zMC0yMDI2Lmh0bWwiPkNYLTMwIDIwMjY8L2E+PC9saT4KPGxpIGRhdGEtaWQ9IjM3NDQ0NzczMTMiIGlkPSJNYWluTWVudV82OWI3ZDVkODdhMDRkIiBjbGFzcz0iaGFzSW1nIiBkYXRhLW1vZGVsaWQ9IjU5NzkzIj48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvTWF6ZGEtQ1hfNS0yMDI1Lmh0bWwiIGNsYXNzPSJpbWdMaW5rIGlzQm9sZCAiPjxpbWcgYWx0PSJDWC01IDIwMjUiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL01hemRhL0NYXzUvMjAyNS9ULzQ2MTY5NC9SZWQvcHJvZmlsZS5wbmc\/Y2I9NjliN2Q1ZDFkNWZlOSIgZXJyb3JpbWc9Ii8vaW1nLmQyY21lZGlhLmNhL2Nhcm1ha2VzL21hemRhX2MucG5nIiB0aXRsZT0iQ1gtNSAyMDI1IiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+PC9hPjxzcGFuIGNsYXNzPSJwcmljZSI+PHNwYW4gY2xhc3M9InByaWNlX3RleHQiPsOgIHBhcnRpciBkZTwvc3Bhbj48c3BhbiBjbGFzcz0icHJpY2VfYW10Ij4zNSA5OTAgJDwvc3Bhbj48L3NwYW4+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL01hemRhLUNYXzUtMjAyNS5odG1sIj5DWC01IDIwMjU8L2E+PC9saT4KPGxpIGRhdGEtaWQ9IjM3MjE3NzkxMjAiIGlkPSJNYWluTWVudV82OWI3ZDVkODdhMDU3IiBjbGFzcz0iaGFzSW1nIiBkYXRhLW1vZGVsaWQ9Ijc1MzAzIj48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvTWF6ZGEtQ1hfNS0yMDI2Lmh0bWwiIGNsYXNzPSJpbWdMaW5rIGlzQm9sZCAiPjxpbWcgYWx0PSJDWC01IDIwMjYiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL01hemRhL0NYXzUvMjAyNi9ULzQ4MzI4NC9XaGl0ZS9wcm9maWxlLnBuZz9jYj02OWI3ZDVkMWQ1ZmU5IiBlcnJvcmltZz0iLy9pbWcuZDJjbWVkaWEuY2EvY2FybWFrZXMvbWF6ZGFfYy5wbmciIHRpdGxlPSJDWC01IDIwMjYiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj48L2E+PHNwYW4gY2xhc3M9InByaWNlIj48c3BhbiBjbGFzcz0icHJpY2VfdGV4dCI+w6AgcGFydGlyIGRlPC9zcGFuPjxzcGFuIGNsYXNzPSJwcmljZV9hbXQiPjM5IDM5MCAkPC9zcGFuPjwvc3Bhbj48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvTWF6ZGEtQ1hfNS0yMDI2Lmh0bWwiPkNYLTUgMjAyNjwvYT48L2xpPgo8bGkgZGF0YS1pZD0iMjEwNTIzMDY1NiIgaWQ9Ik1haW5NZW51XzY5YjdkNWQ4N2EwNjMiIGNsYXNzPSJoYXNJbWciIGRhdGEtbW9kZWxpZD0iNjAwOTQiPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9NYXpkYS1DWF81MC0yMDI1Lmh0bWwiIGNsYXNzPSJpbWdMaW5rIGlzQm9sZCAiPjxpbWcgYWx0PSJDWC01MCAyMDI1IiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9NYXpkYS9DWF81MC8yMDI1L1QvNDYxOTk4L1Rhbi9wcm9maWxlLnBuZz9jYj02OWI3ZDVkMWQ1ZmU5IiBlcnJvcmltZz0iLy9pbWcuZDJjbWVkaWEuY2EvY2FybWFrZXMvbWF6ZGFfYy5wbmciIHRpdGxlPSJDWC01MCAyMDI1IiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+PC9hPjxzcGFuIGNsYXNzPSJwcmljZSI+PHNwYW4gY2xhc3M9InByaWNlX3RleHQiPsOgIHBhcnRpciBkZTwvc3Bhbj48c3BhbiBjbGFzcz0icHJpY2VfYW10Ij40MyAwNDAgJDwvc3Bhbj48L3NwYW4+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL01hemRhLUNYXzUwLTIwMjUuaHRtbCI+Q1gtNTAgMjAyNTwvYT48L2xpPgo8bGkgZGF0YS1pZD0iMTAwMzc3Mzk1NiIgaWQ9Ik1haW5NZW51XzY5YjdkNWQ4N2EwNmQiIGNsYXNzPSJoYXNJbWciIGRhdGEtbW9kZWxpZD0iNjAxOTMiPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9NYXpkYS1DWF81MF9IeWJyaWQtMjAyNS5odG1sIiBjbGFzcz0iaW1nTGluayBpc0JvbGQgIj48aW1nIGFsdD0iQ1gtNTAgaHlicmlkZSAyMDI1IiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9NYXpkYS9DWF81MCBIeWJyaWQvMjAyNS9ULzQ2MjM5MC9XaGl0ZS9wcm9maWxlLnBuZz9jYj02OWI3ZDVkMWQ1ZmU5IiBlcnJvcmltZz0iLy9pbWcuZDJjbWVkaWEuY2EvY2FybWFrZXMvbWF6ZGFfYy5wbmciIHRpdGxlPSJDWC01MCBoeWJyaWRlIDIwMjUiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj48L2E+PHNwYW4gY2xhc3M9InByaWNlIj48c3BhbiBjbGFzcz0icHJpY2VfdGV4dCI+w6AgcGFydGlyIGRlPC9zcGFuPjxzcGFuIGNsYXNzPSJwcmljZV9hbXQiPjQ2IDA0MCAkPC9zcGFuPjwvc3Bhbj48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvTWF6ZGEtQ1hfNTBfSHlicmlkLTIwMjUuaHRtbCI+Q1gtNTAgaHlicmlkZSAyMDI1PC9hPjwvbGk+CjxsaSBkYXRhLWlkPSI0MDY2ODA0MzY0IiBpZD0iTWFpbk1lbnVfNjliN2Q1ZDg3YTA3OSIgY2xhc3M9Imhhc0ltZyIgZGF0YS1tb2RlbGlkPSI1Mzc4MCI+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL01hemRhLUNYXzcwX01IRVYtMjAyNS5odG1sIiBjbGFzcz0iaW1nTGluayBpc0JvbGQgIiBkYXRhLW1lbnUtdHJhbnNsYXRlPSI0MDY2ODA0MzY0Ij48aW1nIGFsdD0iQ1gtNzAgaHlicmlkZSBsw6lnZXIgMjAyNSIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvTWF6ZGEvQ1hfNzAgTUhFVi8yMDI1L1QvNDUzNjM3L0dyYXkvcHJvZmlsZS5wbmc\/Y2I9NjliN2Q1ZDFkNWZlOSIgZXJyb3JpbWc9Ii8vaW1nLmQyY21lZGlhLmNhL2Nhcm1ha2VzL21hemRhX2MucG5nIiB0aXRsZT0iQ1gtNzAgaHlicmlkZSBsw6lnZXIgMjAyNSIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPjwvYT48c3BhbiBjbGFzcz0icHJpY2UiPjxzcGFuIGNsYXNzPSJwcmljZV90ZXh0Ij7DoCBwYXJ0aXIgZGU8L3NwYW4+PHNwYW4gY2xhc3M9InByaWNlX2FtdCI+NTIgODQwICQ8L3NwYW4+PC9zcGFuPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9NYXpkYS1DWF83MF9NSEVWLTIwMjUuaHRtbCIgZGF0YS1tZW51LXRyYW5zbGF0ZT0iNDA2NjgwNDM2NCI+Q1gtNzAgaHlicmlkZSBsw6lnZXIgMjAyNTwvYT48L2xpPgo8bGkgZGF0YS1pZD0iMzM5NTU0NTE0OCIgaWQ9Ik1haW5NZW51XzY5YjdkNWQ4N2EwODgiIGNsYXNzPSJoYXNJbWciIGRhdGEtbW9kZWxpZD0iNzUyMjQiPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9NYXpkYS1DWF83MF9NSEVWLTIwMjYuaHRtbCIgY2xhc3M9ImltZ0xpbmsgaXNCb2xkICIgZGF0YS1tZW51LXRyYW5zbGF0ZT0iMzM5NTU0NTE0OCI+PGltZyBhbHQ9IkNYLTcwIGh5YnJpZGUgbMOpZ2VyIDIwMjYiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL01hemRhL0NYXzcwIE1IRVYvMjAyNi9ULzQ4MzA3OC9XaGl0ZS9wcm9maWxlLnBuZz9jYj02OWI3ZDVkMWQ1ZmU5IiBlcnJvcmltZz0iLy9pbWcuZDJjbWVkaWEuY2EvY2FybWFrZXMvbWF6ZGFfYy5wbmciIHRpdGxlPSJDWC03MCBoeWJyaWRlIGzDqWdlciAyMDI2IiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+PC9hPjxzcGFuIGNsYXNzPSJwcmljZSI+PHNwYW4gY2xhc3M9InByaWNlX3RleHQiPsOgIHBhcnRpciBkZTwvc3Bhbj48c3BhbiBjbGFzcz0icHJpY2VfYW10Ij41MiA4NDAgJDwvc3Bhbj48L3NwYW4+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL01hemRhLUNYXzcwX01IRVYtMjAyNi5odG1sIiBkYXRhLW1lbnUtdHJhbnNsYXRlPSIzMzk1NTQ1MTQ4Ij5DWC03MCBoeWJyaWRlIGzDqWdlciAyMDI2PC9hPjwvbGk+CjxsaSBkYXRhLWlkPSIzMzUwNTUyNzQwIiBpZD0iTWFpbk1lbnVfNjliN2Q1ZDg3YTA5NCIgY2xhc3M9Imhhc0ltZyIgZGF0YS1tb2RlbGlkPSI1Mzc4MSI+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL01hemRhLUNYXzcwX1BIRVYtMjAyNS5odG1sIiBjbGFzcz0iaW1nTGluayBpc0JvbGQgIj48aW1nIGFsdD0iQ1gtNzAgaHlicmlkZSByZWNoYXJnZWFibGUgMjAyNSIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvTWF6ZGEvQ1hfNzAgUEhFVi8yMDI1L1QvNDUzNjMzL1doaXRlL3Byb2ZpbGUucG5nP2NiPTY5YjdkNWQxZDVmZTkiIGVycm9yaW1nPSIvL2ltZy5kMmNtZWRpYS5jYS9jYXJtYWtlcy9tYXpkYV9jLnBuZyIgdGl0bGU9IkNYLTcwIGh5YnJpZGUgcmVjaGFyZ2VhYmxlIDIwMjUiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj48L2E+PHNwYW4gY2xhc3M9InByaWNlIj48c3BhbiBjbGFzcz0icHJpY2VfdGV4dCI+w6AgcGFydGlyIGRlPC9zcGFuPjxzcGFuIGNsYXNzPSJwcmljZV9hbXQiPjYxIDg0MCAkPC9zcGFuPjwvc3Bhbj48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvTWF6ZGEtQ1hfNzBfUEhFVi0yMDI1Lmh0bWwiPkNYLTcwIGh5YnJpZGUgcmVjaGFyZ2VhYmxlIDIwMjU8L2E+PC9saT4KPGxpIGRhdGEtaWQ9IjI3MDg0ODQ4NjQiIGlkPSJNYWluTWVudV82OWI3ZDVkODdhMGEwIiBjbGFzcz0iaGFzSW1nIiBkYXRhLW1vZGVsaWQ9Ijc1MjM5Ij48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvTWF6ZGEtQ1hfNzBfUEhFVi0yMDI2Lmh0bWwiIGNsYXNzPSJpbWdMaW5rIGlzQm9sZCAiPjxpbWcgYWx0PSJDWC03MCBoeWJyaWRlIHJlY2hhcmdlYWJsZSAyMDI2IiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9NYXpkYS9DWF83MCBQSEVWLzIwMjYvVC80ODMxMjYvV2hpdGUvcHJvZmlsZS5wbmc\/Y2I9NjliN2Q1ZDFkNWZlOSIgZXJyb3JpbWc9Ii8vaW1nLmQyY21lZGlhLmNhL2Nhcm1ha2VzL21hemRhX2MucG5nIiB0aXRsZT0iQ1gtNzAgaHlicmlkZSByZWNoYXJnZWFibGUgMjAyNiIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPjwvYT48c3BhbiBjbGFzcz0icHJpY2UiPjxzcGFuIGNsYXNzPSJwcmljZV90ZXh0Ij7DoCBwYXJ0aXIgZGU8L3NwYW4+PHNwYW4gY2xhc3M9InByaWNlX2FtdCI+NTUgODQwICQ8L3NwYW4+PC9zcGFuPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9NYXpkYS1DWF83MF9QSEVWLTIwMjYuaHRtbCI+Q1gtNzAgaHlicmlkZSByZWNoYXJnZWFibGUgMjAyNjwvYT48L2xpPgo8bGkgZGF0YS1pZD0iMTA3NzQ2ODI1MyIgaWQ9Ik1haW5NZW51XzY5YjdkNWQ4N2EwYWEiIGNsYXNzPSJoYXNJbWciIGRhdGEtbW9kZWxpZD0iNTk4OTQiPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9NYXpkYS1DWF85MF9NSEVWLTIwMjUuaHRtbCIgY2xhc3M9ImltZ0xpbmsgaXNCb2xkICIgZGF0YS1tZW51LXRyYW5zbGF0ZT0iMTA3NzQ2ODI1MyI+PGltZyBhbHQ9IkNYLTkwIGh5YnJpZGUgbMOpZ2VyIDIwMjUiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL01hemRhL0NYXzkwIE1IRVYvMjAyNS9ULzQ2MTgwNi9CbHVlL3Byb2ZpbGUucG5nP2NiPTY5YjdkNWQxZDVmZTkiIGVycm9yaW1nPSIvL2ltZy5kMmNtZWRpYS5jYS9jYXJtYWtlcy9tYXpkYV9jLnBuZyIgdGl0bGU9IkNYLTkwIGh5YnJpZGUgbMOpZ2VyIDIwMjUiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj48L2E+PHNwYW4gY2xhc3M9InByaWNlIj48c3BhbiBjbGFzcz0icHJpY2VfdGV4dCI+w6AgcGFydGlyIGRlPC9zcGFuPjxzcGFuIGNsYXNzPSJwcmljZV9hbXQiPjQ5IDM0MCAkPC9zcGFuPjwvc3Bhbj48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvTWF6ZGEtQ1hfOTBfTUhFVi0yMDI1Lmh0bWwiIGRhdGEtbWVudS10cmFuc2xhdGU9IjEwNzc0NjgyNTMiPkNYLTkwIGh5YnJpZGUgbMOpZ2VyIDIwMjU8L2E+PC9saT4KPGxpIGRhdGEtaWQ9IjIwMTczMTA0NDUiIGlkPSJNYWluTWVudV82OWI3ZDVkODdhMGI1IiBjbGFzcz0iaGFzSW1nIiBkYXRhLW1vZGVsaWQ9Ijc1MjM3Ij48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvTWF6ZGEtQ1hfOTBfTUhFVi0yMDI2Lmh0bWwiIGNsYXNzPSJpbWdMaW5rIGlzQm9sZCAiIGRhdGEtbWVudS10cmFuc2xhdGU9IjIwMTczMTA0NDUiPjxpbWcgYWx0PSJDWC05MCBoeWJyaWRlIGzDqWdlciAyMDI2IiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9NYXpkYS9DWF85MCBNSEVWLzIwMjYvVC80ODMxMTgvV2hpdGUvcHJvZmlsZS5wbmc\/Y2I9NjliN2Q1ZDFkNWZlOSIgZXJyb3JpbWc9Ii8vaW1nLmQyY21lZGlhLmNhL2Nhcm1ha2VzL21hemRhX2MucG5nIiB0aXRsZT0iQ1gtOTAgaHlicmlkZSBsw6lnZXIgMjAyNiIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPjwvYT48c3BhbiBjbGFzcz0icHJpY2UiPjxzcGFuIGNsYXNzPSJwcmljZV90ZXh0Ij7DoCBwYXJ0aXIgZGU8L3NwYW4+PHNwYW4gY2xhc3M9InByaWNlX2FtdCI+NTAgMTkwICQ8L3NwYW4+PC9zcGFuPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9NYXpkYS1DWF85MF9NSEVWLTIwMjYuaHRtbCIgZGF0YS1tZW51LXRyYW5zbGF0ZT0iMjAxNzMxMDQ0NSI+Q1gtOTAgaHlicmlkZSBsw6lnZXIgMjAyNjwvYT48L2xpPgo8bGkgZGF0YS1pZD0iMzQzNzA5ODYwMSIgaWQ9Ik1haW5NZW51XzY5YjdkNWQ4N2EwYzAiIGNsYXNzPSJoYXNJbWciIGRhdGEtbW9kZWxpZD0iNTk3OTciPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9NYXpkYS1DWF85MF9QSEVWLTIwMjUuaHRtbCIgY2xhc3M9ImltZ0xpbmsgaXNCb2xkICI+PGltZyBhbHQ9IkNYLTkwIGh5YnJpZGUgcmVjaGFyZ2VhYmxlIDIwMjUiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL01hemRhL0NYXzkwIFBIRVYvMjAyNS9ULzQ2MTcwMi9XaGl0ZS9wcm9maWxlLnBuZz9jYj02OWI3ZDVkMWQ1ZmU5IiBlcnJvcmltZz0iLy9pbWcuZDJjbWVkaWEuY2EvY2FybWFrZXMvbWF6ZGFfYy5wbmciIHRpdGxlPSJDWC05MCBoeWJyaWRlIHJlY2hhcmdlYWJsZSAyMDI1IiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+PC9hPjxzcGFuIGNsYXNzPSJwcmljZSI+PHNwYW4gY2xhc3M9InByaWNlX3RleHQiPsOgIHBhcnRpciBkZTwvc3Bhbj48c3BhbiBjbGFzcz0icHJpY2VfYW10Ij41NyA5OTAgJDwvc3Bhbj48L3NwYW4+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL01hemRhLUNYXzkwX1BIRVYtMjAyNS5odG1sIj5DWC05MCBoeWJyaWRlIHJlY2hhcmdlYWJsZSAyMDI1PC9hPjwvbGk+CjxsaSBkYXRhLWlkPSIyODUzNzQyMDI5IiBpZD0iTWFpbk1lbnVfNjliN2Q1ZDg3YTBjYiIgY2xhc3M9Imxhc3RJdGVtIGhhc0ltZyIgZGF0YS1tb2RlbGlkPSI3NTIzOCI+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL01hemRhLUNYXzkwX1BIRVYtMjAyNi5odG1sIiBjbGFzcz0iaW1nTGluayBpc0JvbGQgIj48aW1nIGFsdD0iQ1gtOTAgaHlicmlkZSByZWNoYXJnZWFibGUgMjAyNiIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvTWF6ZGEvQ1hfOTAgUEhFVi8yMDI2L1QvNDgzMTIyL1doaXRlL3Byb2ZpbGUucG5nP2NiPTY5YjdkNWQxZDVmZTkiIGVycm9yaW1nPSIvL2ltZy5kMmNtZWRpYS5jYS9jYXJtYWtlcy9tYXpkYV9jLnBuZyIgdGl0bGU9IkNYLTkwIGh5YnJpZGUgcmVjaGFyZ2VhYmxlIDIwMjYiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj48L2E+PHNwYW4gY2xhc3M9InByaWNlIj48c3BhbiBjbGFzcz0icHJpY2VfdGV4dCI+w6AgcGFydGlyIGRlPC9zcGFuPjxzcGFuIGNsYXNzPSJwcmljZV9hbXQiPjU2IDg0MCAkPC9zcGFuPjwvc3Bhbj48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvTWF6ZGEtQ1hfOTBfUEhFVi0yMDI2Lmh0bWwiPkNYLTkwIGh5YnJpZGUgcmVjaGFyZ2VhYmxlIDIwMjY8L2E+PC9saT4KPC91bD48L2xpPgo8L3VsPjwvbGk+CjxsaSBkYXRhLWlkPSJORVdfUEhFViIgaWQ9Ik1haW5NZW51XzY5YjdkNWQ4N2ExMWIiIGNsYXNzPSJoYXNTdWIiPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9QSEVWLmh0bWwiPkh5YnJpZGVzIHJlY2hhcmdlYWJsZXM8L2E+PHVsIGNsYXNzPSJzdWIiPjxsaSBkYXRhLWlkPSJORVdfUEhFVl9NYXpkYSIgaWQ9Ik1haW5NZW51XzY5YjdkNWQ4N2ExMTYiIGNsYXNzPSJmaXJzdEl0ZW0gbGFzdEl0ZW0gaGFzU3ViIGhhc0ltZyI+PHVsIGNsYXNzPSJzdWIiPjxsaSBkYXRhLWlkPSIzMzUwNTUyNzQwIiBpZD0iTWFpbk1lbnVfNjliN2Q1ZDg3YTBlOSIgY2xhc3M9ImZpcnN0SXRlbSBoYXNJbWciIGRhdGEtbW9kZWxpZD0iNTM3ODEiPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9NYXpkYS1DWF83MF9QSEVWLTIwMjUuaHRtbCIgY2xhc3M9ImltZ0xpbmsgaXNCb2xkICI+PGltZyBhbHQ9IkNYLTcwIGh5YnJpZGUgcmVjaGFyZ2VhYmxlIDIwMjUiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL01hemRhL0NYXzcwIFBIRVYvMjAyNS9ULzQ1MzYzMy9XaGl0ZS9wcm9maWxlLnBuZz9jYj02OWI3ZDVkMWQ1ZmU5IiBlcnJvcmltZz0iLy9pbWcuZDJjbWVkaWEuY2EvY2FybWFrZXMvbWF6ZGFfYy5wbmciIHRpdGxlPSJDWC03MCBoeWJyaWRlIHJlY2hhcmdlYWJsZSAyMDI1IiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+PC9hPjxzcGFuIGNsYXNzPSJwcmljZSI+PHNwYW4gY2xhc3M9InByaWNlX3RleHQiPsOgIHBhcnRpciBkZTwvc3Bhbj48c3BhbiBjbGFzcz0icHJpY2VfYW10Ij42MSA4NDAgJDwvc3Bhbj48L3NwYW4+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL01hemRhLUNYXzcwX1BIRVYtMjAyNS5odG1sIj5DWC03MCBoeWJyaWRlIHJlY2hhcmdlYWJsZSAyMDI1PC9hPjwvbGk+CjxsaSBkYXRhLWlkPSIyNzA4NDg0ODY0IiBpZD0iTWFpbk1lbnVfNjliN2Q1ZDg3YTBmNCIgY2xhc3M9Imhhc0ltZyIgZGF0YS1tb2RlbGlkPSI3NTIzOSI+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL01hemRhLUNYXzcwX1BIRVYtMjAyNi5odG1sIiBjbGFzcz0iaW1nTGluayBpc0JvbGQgIj48aW1nIGFsdD0iQ1gtNzAgaHlicmlkZSByZWNoYXJnZWFibGUgMjAyNiIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvTWF6ZGEvQ1hfNzAgUEhFVi8yMDI2L1QvNDgzMTI2L1doaXRlL3Byb2ZpbGUucG5nP2NiPTY5YjdkNWQxZDVmZTkiIGVycm9yaW1nPSIvL2ltZy5kMmNtZWRpYS5jYS9jYXJtYWtlcy9tYXpkYV9jLnBuZyIgdGl0bGU9IkNYLTcwIGh5YnJpZGUgcmVjaGFyZ2VhYmxlIDIwMjYiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj48L2E+PHNwYW4gY2xhc3M9InByaWNlIj48c3BhbiBjbGFzcz0icHJpY2VfdGV4dCI+w6AgcGFydGlyIGRlPC9zcGFuPjxzcGFuIGNsYXNzPSJwcmljZV9hbXQiPjU1IDg0MCAkPC9zcGFuPjwvc3Bhbj48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvTWF6ZGEtQ1hfNzBfUEhFVi0yMDI2Lmh0bWwiPkNYLTcwIGh5YnJpZGUgcmVjaGFyZ2VhYmxlIDIwMjY8L2E+PC9saT4KPGxpIGRhdGEtaWQ9IjM0MzcwOTg2MDEiIGlkPSJNYWluTWVudV82OWI3ZDVkODdhMTAxIiBjbGFzcz0iaGFzSW1nIiBkYXRhLW1vZGVsaWQ9IjU5Nzk3Ij48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvTWF6ZGEtQ1hfOTBfUEhFVi0yMDI1Lmh0bWwiIGNsYXNzPSJpbWdMaW5rIGlzQm9sZCAiPjxpbWcgYWx0PSJDWC05MCBoeWJyaWRlIHJlY2hhcmdlYWJsZSAyMDI1IiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9NYXpkYS9DWF85MCBQSEVWLzIwMjUvVC80NjE3MDIvV2hpdGUvcHJvZmlsZS5wbmc\/Y2I9NjliN2Q1ZDFkNWZlOSIgZXJyb3JpbWc9Ii8vaW1nLmQyY21lZGlhLmNhL2Nhcm1ha2VzL21hemRhX2MucG5nIiB0aXRsZT0iQ1gtOTAgaHlicmlkZSByZWNoYXJnZWFibGUgMjAyNSIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPjwvYT48c3BhbiBjbGFzcz0icHJpY2UiPjxzcGFuIGNsYXNzPSJwcmljZV90ZXh0Ij7DoCBwYXJ0aXIgZGU8L3NwYW4+PHNwYW4gY2xhc3M9InByaWNlX2FtdCI+NTcgOTkwICQ8L3NwYW4+PC9zcGFuPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9NYXpkYS1DWF85MF9QSEVWLTIwMjUuaHRtbCI+Q1gtOTAgaHlicmlkZSByZWNoYXJnZWFibGUgMjAyNTwvYT48L2xpPgo8bGkgZGF0YS1pZD0iMjg1Mzc0MjAyOSIgaWQ9Ik1haW5NZW51XzY5YjdkNWQ4N2ExMGMiIGNsYXNzPSJsYXN0SXRlbSBoYXNJbWciIGRhdGEtbW9kZWxpZD0iNzUyMzgiPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9NYXpkYS1DWF85MF9QSEVWLTIwMjYuaHRtbCIgY2xhc3M9ImltZ0xpbmsgaXNCb2xkICI+PGltZyBhbHQ9IkNYLTkwIGh5YnJpZGUgcmVjaGFyZ2VhYmxlIDIwMjYiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL01hemRhL0NYXzkwIFBIRVYvMjAyNi9ULzQ4MzEyMi9XaGl0ZS9wcm9maWxlLnBuZz9jYj02OWI3ZDVkMWQ1ZmU5IiBlcnJvcmltZz0iLy9pbWcuZDJjbWVkaWEuY2EvY2FybWFrZXMvbWF6ZGFfYy5wbmciIHRpdGxlPSJDWC05MCBoeWJyaWRlIHJlY2hhcmdlYWJsZSAyMDI2IiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+PC9hPjxzcGFuIGNsYXNzPSJwcmljZSI+PHNwYW4gY2xhc3M9InByaWNlX3RleHQiPsOgIHBhcnRpciBkZTwvc3Bhbj48c3BhbiBjbGFzcz0icHJpY2VfYW10Ij41NiA4NDAgJDwvc3Bhbj48L3NwYW4+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL01hemRhLUNYXzkwX1BIRVYtMjAyNi5odG1sIj5DWC05MCBoeWJyaWRlIHJlY2hhcmdlYWJsZSAyMDI2PC9hPjwvbGk+CjwvdWw+PC9saT4KPC91bD48L2xpPgo8bGkgZGF0YS1pZD0iTkVXX0hZQlJJRCIgaWQ9Ik1haW5NZW51XzY5YjdkNWQ4N2ExNmUiIGNsYXNzPSJoYXNTdWIiPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9IeWJyaWRlcy5odG1sIiBkYXRhLW1lbnUtdHJhbnNsYXRlPSJORVdfSFlCUklEIj5IeWJyaWRlczwvYT48dWwgY2xhc3M9InN1YiI+PGxpIGRhdGEtaWQ9Ik5FV19IWUJSSURfTWF6ZGEiIGlkPSJNYWluTWVudV82OWI3ZDVkODdhMTZiIiBjbGFzcz0iZmlyc3RJdGVtIGxhc3RJdGVtIGhhc1N1YiBoYXNJbWciPjx1bCBjbGFzcz0ic3ViIj48bGkgZGF0YS1pZD0iMTAwMzc3Mzk1NiIgaWQ9Ik1haW5NZW51XzY5YjdkNWQ4N2ExMmIiIGNsYXNzPSJmaXJzdEl0ZW0gaGFzSW1nIiBkYXRhLW1vZGVsaWQ9IjYwMTkzIj48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvTWF6ZGEtQ1hfNTBfSHlicmlkLTIwMjUuaHRtbCIgY2xhc3M9ImltZ0xpbmsgaXNCb2xkICI+PGltZyBhbHQ9IkNYLTUwIGh5YnJpZGUgMjAyNSIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvTWF6ZGEvQ1hfNTAgSHlicmlkLzIwMjUvVC80NjIzOTAvV2hpdGUvcHJvZmlsZS5wbmc\/Y2I9NjliN2Q1ZDFkNWZlOSIgZXJyb3JpbWc9Ii8vaW1nLmQyY21lZGlhLmNhL2Nhcm1ha2VzL21hemRhX2MucG5nIiB0aXRsZT0iQ1gtNTAgaHlicmlkZSAyMDI1IiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+PC9hPjxzcGFuIGNsYXNzPSJwcmljZSI+PHNwYW4gY2xhc3M9InByaWNlX3RleHQiPsOgIHBhcnRpciBkZTwvc3Bhbj48c3BhbiBjbGFzcz0icHJpY2VfYW10Ij40NiAwNDAgJDwvc3Bhbj48L3NwYW4+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL01hemRhLUNYXzUwX0h5YnJpZC0yMDI1Lmh0bWwiPkNYLTUwIGh5YnJpZGUgMjAyNTwvYT48L2xpPgo8bGkgZGF0YS1pZD0iNDA2NjgwNDM2NCIgaWQ9Ik1haW5NZW51XzY5YjdkNWQ4N2ExMzUiIGNsYXNzPSJoYXNJbWciIGRhdGEtbW9kZWxpZD0iNTM3ODAiPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9NYXpkYS1DWF83MF9NSEVWLTIwMjUuaHRtbCIgY2xhc3M9ImltZ0xpbmsgaXNCb2xkICIgZGF0YS1tZW51LXRyYW5zbGF0ZT0iNDA2NjgwNDM2NCI+PGltZyBhbHQ9IkNYLTcwIGh5YnJpZGUgbMOpZ2VyIDIwMjUiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL01hemRhL0NYXzcwIE1IRVYvMjAyNS9ULzQ1MzYzNy9HcmF5L3Byb2ZpbGUucG5nP2NiPTY5YjdkNWQxZDVmZTkiIGVycm9yaW1nPSIvL2ltZy5kMmNtZWRpYS5jYS9jYXJtYWtlcy9tYXpkYV9jLnBuZyIgdGl0bGU9IkNYLTcwIGh5YnJpZGUgbMOpZ2VyIDIwMjUiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj48L2E+PHNwYW4gY2xhc3M9InByaWNlIj48c3BhbiBjbGFzcz0icHJpY2VfdGV4dCI+w6AgcGFydGlyIGRlPC9zcGFuPjxzcGFuIGNsYXNzPSJwcmljZV9hbXQiPjUyIDg0MCAkPC9zcGFuPjwvc3Bhbj48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvTWF6ZGEtQ1hfNzBfTUhFVi0yMDI1Lmh0bWwiIGRhdGEtbWVudS10cmFuc2xhdGU9IjQwNjY4MDQzNjQiPkNYLTcwIGh5YnJpZGUgbMOpZ2VyIDIwMjU8L2E+PC9saT4KPGxpIGRhdGEtaWQ9IjMzOTU1NDUxNDgiIGlkPSJNYWluTWVudV82OWI3ZDVkODdhMTQxIiBjbGFzcz0iaGFzSW1nIiBkYXRhLW1vZGVsaWQ9Ijc1MjI0Ij48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvTWF6ZGEtQ1hfNzBfTUhFVi0yMDI2Lmh0bWwiIGNsYXNzPSJpbWdMaW5rIGlzQm9sZCAiIGRhdGEtbWVudS10cmFuc2xhdGU9IjMzOTU1NDUxNDgiPjxpbWcgYWx0PSJDWC03MCBoeWJyaWRlIGzDqWdlciAyMDI2IiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9NYXpkYS9DWF83MCBNSEVWLzIwMjYvVC80ODMwNzgvV2hpdGUvcHJvZmlsZS5wbmc\/Y2I9NjliN2Q1ZDFkNWZlOSIgZXJyb3JpbWc9Ii8vaW1nLmQyY21lZGlhLmNhL2Nhcm1ha2VzL21hemRhX2MucG5nIiB0aXRsZT0iQ1gtNzAgaHlicmlkZSBsw6lnZXIgMjAyNiIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPjwvYT48c3BhbiBjbGFzcz0icHJpY2UiPjxzcGFuIGNsYXNzPSJwcmljZV90ZXh0Ij7DoCBwYXJ0aXIgZGU8L3NwYW4+PHNwYW4gY2xhc3M9InByaWNlX2FtdCI+NTIgODQwICQ8L3NwYW4+PC9zcGFuPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9NYXpkYS1DWF83MF9NSEVWLTIwMjYuaHRtbCIgZGF0YS1tZW51LXRyYW5zbGF0ZT0iMzM5NTU0NTE0OCI+Q1gtNzAgaHlicmlkZSBsw6lnZXIgMjAyNjwvYT48L2xpPgo8bGkgZGF0YS1pZD0iMTA3NzQ2ODI1MyIgaWQ9Ik1haW5NZW51XzY5YjdkNWQ4N2ExNGIiIGNsYXNzPSJoYXNJbWciIGRhdGEtbW9kZWxpZD0iNTk4OTQiPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9NYXpkYS1DWF85MF9NSEVWLTIwMjUuaHRtbCIgY2xhc3M9ImltZ0xpbmsgaXNCb2xkICIgZGF0YS1tZW51LXRyYW5zbGF0ZT0iMTA3NzQ2ODI1MyI+PGltZyBhbHQ9IkNYLTkwIGh5YnJpZGUgbMOpZ2VyIDIwMjUiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL01hemRhL0NYXzkwIE1IRVYvMjAyNS9ULzQ2MTgwNi9CbHVlL3Byb2ZpbGUucG5nP2NiPTY5YjdkNWQxZDVmZTkiIGVycm9yaW1nPSIvL2ltZy5kMmNtZWRpYS5jYS9jYXJtYWtlcy9tYXpkYV9jLnBuZyIgdGl0bGU9IkNYLTkwIGh5YnJpZGUgbMOpZ2VyIDIwMjUiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj48L2E+PHNwYW4gY2xhc3M9InByaWNlIj48c3BhbiBjbGFzcz0icHJpY2VfdGV4dCI+w6AgcGFydGlyIGRlPC9zcGFuPjxzcGFuIGNsYXNzPSJwcmljZV9hbXQiPjQ5IDM0MCAkPC9zcGFuPjwvc3Bhbj48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvTWF6ZGEtQ1hfOTBfTUhFVi0yMDI1Lmh0bWwiIGRhdGEtbWVudS10cmFuc2xhdGU9IjEwNzc0NjgyNTMiPkNYLTkwIGh5YnJpZGUgbMOpZ2VyIDIwMjU8L2E+PC9saT4KPGxpIGRhdGEtaWQ9IjIwMTczMTA0NDUiIGlkPSJNYWluTWVudV82OWI3ZDVkODdhMTYwIiBjbGFzcz0ibGFzdEl0ZW0gaGFzSW1nIiBkYXRhLW1vZGVsaWQ9Ijc1MjM3Ij48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvTWF6ZGEtQ1hfOTBfTUhFVi0yMDI2Lmh0bWwiIGNsYXNzPSJpbWdMaW5rIGlzQm9sZCAiIGRhdGEtbWVudS10cmFuc2xhdGU9IjIwMTczMTA0NDUiPjxpbWcgYWx0PSJDWC05MCBoeWJyaWRlIGzDqWdlciAyMDI2IiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9NYXpkYS9DWF85MCBNSEVWLzIwMjYvVC80ODMxMTgvV2hpdGUvcHJvZmlsZS5wbmc\/Y2I9NjliN2Q1ZDFkNWZlOSIgZXJyb3JpbWc9Ii8vaW1nLmQyY21lZGlhLmNhL2Nhcm1ha2VzL21hemRhX2MucG5nIiB0aXRsZT0iQ1gtOTAgaHlicmlkZSBsw6lnZXIgMjAyNiIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPjwvYT48c3BhbiBjbGFzcz0icHJpY2UiPjxzcGFuIGNsYXNzPSJwcmljZV90ZXh0Ij7DoCBwYXJ0aXIgZGU8L3NwYW4+PHNwYW4gY2xhc3M9InByaWNlX2FtdCI+NTAgMTkwICQ8L3NwYW4+PC9zcGFuPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9NYXpkYS1DWF85MF9NSEVWLTIwMjYuaHRtbCIgZGF0YS1tZW51LXRyYW5zbGF0ZT0iMjAxNzMxMDQ0NSI+Q1gtOTAgaHlicmlkZSBsw6lnZXIgMjAyNjwvYT48L2xpPgo8L3VsPjwvbGk+CjwvdWw+PC9saT4KPGxpIGRhdGEtaWQ9Ik5FV19DT05WRVJUSUJMRSIgaWQ9Ik1haW5NZW51XzY5YjdkNWQ4N2ExYmIiIGNsYXNzPSJoYXNTdWIiPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9kZWNhcG90YWJsZXMuaHRtbCIgZGF0YS1tZW51LXRyYW5zbGF0ZT0iTkVXX0NPTlZFUlRJQkxFIj5Ew6ljYXBvdGFibGVzPC9hPjx1bCBjbGFzcz0ic3ViIj48bGkgZGF0YS1pZD0iTkVXX0NPTlZFUlRJQkxFX01hemRhIiBpZD0iTWFpbk1lbnVfNjliN2Q1ZDg3YTFiNiIgY2xhc3M9ImZpcnN0SXRlbSBsYXN0SXRlbSBoYXNTdWIgaGFzSW1nIj48dWwgY2xhc3M9InN1YiI+PGxpIGRhdGEtaWQ9IjI3NDc4ODczMjQiIGlkPSJNYWluTWVudV82OWI3ZDVkODdhMThkIiBjbGFzcz0iZmlyc3RJdGVtIGhhc0ltZyIgZGF0YS1tb2RlbGlkPSI1NzcwMyI+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL01hemRhLU1YXzUtMjAyNS5odG1sIiBjbGFzcz0iaW1nTGluayBpc0JvbGQgIj48aW1nIGFsdD0iTVgtNSAyMDI1IiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9NYXpkYS9NWF81LzIwMjUvVC80NzA3ODAvV2hpdGUvcHJvZmlsZS5wbmc\/Y2I9NjliN2Q1ZDFkNWZlOSIgZXJyb3JpbWc9Ii8vaW1nLmQyY21lZGlhLmNhL2Nhcm1ha2VzL21hemRhX2MucG5nIiB0aXRsZT0iTVgtNSAyMDI1IiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+PC9hPjxzcGFuIGNsYXNzPSJwcmljZSI+PHNwYW4gY2xhc3M9InByaWNlX3RleHQiPsOgIHBhcnRpciBkZTwvc3Bhbj48c3BhbiBjbGFzcz0icHJpY2VfYW10Ij4zOCA0NDAgJDwvc3Bhbj48L3NwYW4+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL01hemRhLU1YXzUtMjAyNS5odG1sIj5NWC01IDIwMjU8L2E+PC9saT4KPGxpIGRhdGEtaWQ9IjI3MDQwNTA2NjkiIGlkPSJNYWluTWVudV82OWI3ZDVkODdhMTk4IiBjbGFzcz0iaGFzSW1nIiBkYXRhLW1vZGVsaWQ9Ijc1OTAyIj48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvTWF6ZGEtTVhfNS0yMDI2Lmh0bWwiIGNsYXNzPSJpbWdMaW5rIGlzQm9sZCAiPjxpbWcgYWx0PSJNWC01IDIwMjYiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL01hemRhL01YXzUvMjAyNi9ULzQ4Mzg4My9XaGl0ZS9wcm9maWxlLnBuZz9jYj02OWI3ZDVkMWQ1ZmU5IiBlcnJvcmltZz0iLy9pbWcuZDJjbWVkaWEuY2EvY2FybWFrZXMvbWF6ZGFfYy5wbmciIHRpdGxlPSJNWC01IDIwMjYiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj48L2E+PHNwYW4gY2xhc3M9InByaWNlIj48c3BhbiBjbGFzcz0icHJpY2VfdGV4dCI+w6AgcGFydGlyIGRlPC9zcGFuPjxzcGFuIGNsYXNzPSJwcmljZV9hbXQiPjM4IDY5MCAkPC9zcGFuPjwvc3Bhbj48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvTWF6ZGEtTVhfNS0yMDI2Lmh0bWwiPk1YLTUgMjAyNjwvYT48L2xpPgo8bGkgZGF0YS1pZD0iOTA0OTE2ODk1IiBpZD0iTWFpbk1lbnVfNjliN2Q1ZDg3YTFhMiIgY2xhc3M9Imhhc0ltZyIgZGF0YS1tb2RlbGlkPSI1NzcwNCI+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL01hemRhLU1YXzVfUkYtMjAyNS5odG1sIiBjbGFzcz0iaW1nTGluayBpc0JvbGQgIj48aW1nIGFsdD0iTVgtNSBSRiAyMDI1IiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9NYXpkYS9NWF81IFJGLzIwMjUvVC80Njk4NjQvR3JheS9wcm9maWxlLnBuZz9jYj02OWI3ZDVkMWQ1ZmU5IiBlcnJvcmltZz0iLy9pbWcuZDJjbWVkaWEuY2EvY2FybWFrZXMvbWF6ZGFfYy5wbmciIHRpdGxlPSJNWC01IFJGIDIwMjUiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj48L2E+PHNwYW4gY2xhc3M9InByaWNlIj48c3BhbiBjbGFzcz0icHJpY2VfdGV4dCI+w6AgcGFydGlyIGRlPC9zcGFuPjxzcGFuIGNsYXNzPSJwcmljZV9hbXQiPjQ1IDQ0MCAkPC9zcGFuPjwvc3Bhbj48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvTWF6ZGEtTVhfNV9SRi0yMDI1Lmh0bWwiPk1YLTUgUkYgMjAyNTwvYT48L2xpPgo8bGkgZGF0YS1pZD0iMzE4MDYwODI0NSIgaWQ9Ik1haW5NZW51XzY5YjdkNWQ4N2ExYWQiIGNsYXNzPSJsYXN0SXRlbSBoYXNJbWciIGRhdGEtbW9kZWxpZD0iNzU5MDMiPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9NYXpkYS1NWF81X1JGLTIwMjYuaHRtbCIgY2xhc3M9ImltZ0xpbmsgaXNCb2xkICI+PGltZyBhbHQ9Ik1YLTUgUkYgMjAyNiIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvTWF6ZGEvTVhfNSBSRi8yMDI2L1QvNDgzODg3L1doaXRlL3Byb2ZpbGUucG5nP2NiPTY5YjdkNWQxZDVmZTkiIGVycm9yaW1nPSIvL2ltZy5kMmNtZWRpYS5jYS9jYXJtYWtlcy9tYXpkYV9jLnBuZyIgdGl0bGU9Ik1YLTUgUkYgMjAyNiIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPjwvYT48c3BhbiBjbGFzcz0icHJpY2UiPjxzcGFuIGNsYXNzPSJwcmljZV90ZXh0Ij7DoCBwYXJ0aXIgZGU8L3NwYW4+PHNwYW4gY2xhc3M9InByaWNlX2FtdCI+NDUgNjkwICQ8L3NwYW4+PC9zcGFuPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9NYXpkYS1NWF81X1JGLTIwMjYuaHRtbCI+TVgtNSBSRiAyMDI2PC9hPjwvbGk+CjwvdWw+PC9saT4KPC91bD48L2xpPgo8bGkgZGF0YS1pZD0iR1BfZGRkYWRhYmZjNGJkNTA3IiBpZD0iTWFpbk1lbnVfNjliN2Q1ZDg3YTFjMiIgY2xhc3M9Imxhc3RJdGVtIj48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vdGVjaG5vbG9naWVzLW1hemRhLmh0bWwiPlRlY2hub2xvZ2llcyBNYXpkYTwvYT48L2xpPgo8L3VsPgo8L2xpPgoKCQkJCQkJPC91bD4KCQkJCQk8L2Rpdj4KCQkJCTwvZGl2PgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iY2xyIj48L2Rpdj4KCQkJCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJ0b3ByZWZlcmVyIiBuYW1lPSJ0b3ByZWZlcmVyIiB2YWx1ZT0iIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJ0b3BzaXRlaWQiIG5hbWU9InRvcHNpdGVpZCIgdmFsdWU9IjY3NyI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0idG9wY2FyaWQiIG5hbWU9InRvcGNhcmlkIiB2YWx1ZT0iIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJ0b3BjYXJpZE11bHRpc3RlcEZvcm0iIG5hbWU9InRvcGNhcmlkTXVsdGlzdGVwRm9ybSIgdmFsdWU9IiI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iZU1vZGVsIiBuYW1lPSJlTW9kZWwiIHZhbHVlPSIiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9InN0eWxlaWQiIG5hbWU9IiIgdmFsdWU9IjAiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9InBvcHVwbWFrZSIgbmFtZT0icG9wdXBtYWtlIiB2YWx1ZT0iIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJwb3B1cG1ha2VNdWx0aXN0ZXBGb3JtIiBuYW1lPSJwb3B1cG1ha2VNdWx0aXN0ZXBGb3JtIiB2YWx1ZT0iIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJwb3B1cG1vZGVsIiBuYW1lPSJwb3B1cG1vZGVsIiB2YWx1ZT0iIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJwb3B1cG1vZGVsTXVsdGlzdGVwRm9ybSIgbmFtZT0icG9wdXBtb2RlbE11bHRpc3RlcEZvcm0iIHZhbHVlPSIiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9InBvcHVweWVhciIgbmFtZT0icG9wdXB5ZWFyIiB2YWx1ZT0iIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJwb3B1cHllYXJNdWx0aXN0ZXBGb3JtIiBuYW1lPSJwb3B1cHllYXJNdWx0aXN0ZXBGb3JtIiB2YWx1ZT0iIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJwb3B1cHRyaW0iIG5hbWU9InBvcHVwdHJpbSIgdmFsdWU9InskUE9QVVBUUklNfSI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0icG9wdXBzdG9ja251bWJlciIgbmFtZT0icG9wdXBzdG9ja251bWJlciIgdmFsdWU9IiI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0icG9wdXBzdG9ja251bWJlck11bHRpc3RlcEZvcm0iIG5hbWU9InBvcHVwc3RvY2tudW1iZXJNdWx0aXN0ZXBGb3JtIiB2YWx1ZT0iIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJsYXN0dmlld2VkbWFrZSIgbmFtZT0ibGFzdHZpZXdlZG1ha2UiIHZhbHVlPSIiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9Imxhc3R2aWV3ZWRtb2RlbCIgbmFtZT0ibGFzdHZpZXdlZG1vZGVsIiB2YWx1ZT0iIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJsYXN0dmlld2VkeWVhciIgbmFtZT0ibGFzdHZpZXdlZHllYXIiIHZhbHVlPSIiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9Imxhc3R2aWV3ZWR0cmltIiBuYW1lPSJsYXN0dmlld2VkdHJpbSIgdmFsdWU9IiI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0ibGFzdHZpZXdlZHN0b2NrbnVtYmVyIiBuYW1lPSJsYXN0dmlld2Vkc3RvY2tudW1iZXIiIHZhbHVlPSIiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9InRvcGRlcGxveW1lbnR0eXBlIiBuYW1lPSJ0b3BkZXBsb3ltZW50dHlwZSIgdmFsdWU9ImxpdmUiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9InNlcnZpY2VFbWFpbCIgbmFtZT0ic2VydmljZUVtYWlsIiB2YWx1ZT0iMmY3OWE4ODUxN2RlNGI3MTcyYzM3MzQyMGI1Njk2NzB8OTU0OTA2NTA1Ij4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJzZXJ2aWNlQWRmRW1haWwiIG5hbWU9InNlcnZpY2VBZGZFbWFpbCIgdmFsdWU9IjAxNTJlODNjZjNmMzE0MzAyMWY3MGE1MjUxMmE3NTk3fDk1NDkwNjUwNSI+PHRleHRhcmVhIGlkPSJkMmMtYm5wLWxpbmtydWxlcy10ZXh0YXJlYSIgdGl0bGU9IkxpbmsgUnVsZXMiIGNsYXNzPSJoaWRkZW4iIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij4jI0xJTktSVUxFUyMjPC90ZXh0YXJlYT4KDTwhLS0gVFJBREUgSU4gQkFSIERJU0FCTEVEIC0tPgoNCgkJCQk8L2Rpdj4KCQkJPC9oZWFkZXI+CgkJPCEtLSBPUEVOIE1BSU5CT1hMQVlFUiAtLT4KCQk8ZGl2IGNsYXNzPSJNYWluQm94TGF5ZXIiPgoJCQkJCQk8IS0tIE9QRU4gTEVGVEJPWExBWUVSIC0tPgoJCQk8ZGl2IGlkPSJuZXdjYXJDb250YWluZXIiIGNsYXNzPSJsZWZ0X2JveCBMZWZ0Qm94TGF5ZXIiPgoJCQkJPCEtLSBPUEVOIEhJU1RPUlkgLS0+CgkJCQk8ZGl2IGlkPSJoaXN0b3J5RGl2IiBjbGFzcz0iT3V0ZXJCb3hMYXllciI+CgkJCQkJPGRpdiBjbGFzcz0iSW5uZXJCb3hMYXllciI+CgkJCQkJCQk8IS0tIE9QRU4gQlJFQURDUlVNQiAtLT4KCgk8c2NyaXB0IHR5cGU9ImFwcGxpY2F0aW9uL2xkK2pzb24iPgoJewoJCSJAY29udGV4dCI6ICJodHRwczovL3NjaGVtYS5vcmciLAoJCSJAdHlwZSI6ICJCcmVhZGNydW1iTGlzdCIsCgkJIml0ZW1MaXN0RWxlbWVudCI6IFt7IkB0eXBlIjoiTGlzdEl0ZW0iLCJwb3NpdGlvbiI6MSwiaXRlbSI6eyJAaWQiOiJodHRwczpcL1wvc2l0dGVsbGVtYXpkYS5jYVwvIiwibmFtZSI6IkFjY3VlaWwifX0seyJAdHlwZSI6Ikxpc3RJdGVtIiwicG9zaXRpb24iOjIsIml0ZW0iOnsiQGlkIjoiaHR0cHM6XC9cL3NpdHRlbGxlbWF6ZGEuY2FcL25ldWZzXC9ub3V2ZWF1Lmh0bWwiLCJuYW1lIjoiVlx1MDBlOWhpY3VsZXMgbmV1ZnMifX0seyJAdHlwZSI6Ikxpc3RJdGVtIiwicG9zaXRpb24iOjMsIml0ZW0iOnsiQGlkIjoiaHR0cHM6XC9cL01hemRhIiwibmFtZSI6Ik1hemRhIn19XQoJfQoJPC9zY3JpcHQ+CgoJPGRpdiBpZD0iYnJlYWRjcnVtYnMiIGNsYXNzPSJCUkRDUk1CXzE1ODciPgoJCQk8c3Bhbj4KCQk8YSBocmVmPSI\/cGF0aD0vIj5BY2N1ZWlsPC9hPgoJPC9zcGFuPjxzcGFuIGNsYXNzPSItcGgiPsK7PC9zcGFuPgk8c3Bhbj4KCQk8YSBocmVmPSI\/cGF0aD0vbmV1ZnMvbm91dmVhdS5odG1sIj5Ww6loaWN1bGVzIG5ldWZzPC9hPgoJPC9zcGFuPjxzcGFuIGNsYXNzPSItcGgiPsK7PC9zcGFuPgk8c3Bhbj4KCQk8c3Bhbj5NYXpkYTwvc3Bhbj4KCTwvc3Bhbj4KCTwvZGl2PgoKCTwhLS0gQ0xPU0UgQlJFQURDUlVNQiAtLT4KCQkJCQk8L2Rpdj4KCQkJCTwvZGl2PgoJCQkJPCEtLSBDTE9TRSBISVNUT1JZIC0tPgoJCQkJPCEtLSBPUEVOIEhFQURFUiBJTUFHRSAtLT4KCQkJCQoKCQkJCTwhLS0gQ0xPU0UgSEVBREVSIElNQUdFIC0tPgoJCQkJPGRpdiBpZD0idW5kZXJCYW5uZXIiPjwvZGl2PgoJCQkJPCEtLSBPUEVOIE9VVEVSQk9YTEFZRVIgLS0+CgkJCQk8ZGl2IGNsYXNzPSJPdXRlckJveExheWVyIj4KCQkJCQk8ZGl2IGNsYXNzPSJJbm5lckJveExheWVyIj48aDEgY2xhc3M9ImRlZmF1bHQgSDFfMTY5NCAiPjxkaXY+PGRpdj5NYXpkYSBuZXV2ZXMgMjAyNSAmYW1wOyAyMDI2IMOgIHZlbmRyZcKgPC9kaXY+PGRpdj7DoCBTdC1HZW9yZ2VzwqA8L2Rpdj48L2Rpdj48L2gxPjwvZGl2PjxkaXYgY2xhc3M9IklubmVyQm94TGF5ZXIiPgkgICAgICAgICAgICA8L2Rpdj4JPCEtLSBPUEVOIEZJTFRFUk1BSU5CT1ggKCcuX19MSU5FX18uJyktLT4KCTxkaXYgaWQ9ImZpbHRlck1haW5Cb3giIGNsYXNzPSJJbm5lckJveExheWVyIGJsYWNrLXRleHQiPgoJCTxkaXYgY2xhc3M9ImRpdlNwYW4gZGl2U3BhbjEyIj4KCQkJPGRpdiBjbGFzcz0iZGl2U3BhbiBkaXZTcGFuMTIgZGl2RmlsdGVyT3V0ZXJCb3giPgoJCQkJPGRpdiBjbGFzcz0iZGl2U3BhbiBkaXZTcGFuMTIiPgoJCQkJCTxkaXYgY2xhc3M9ImRpdlNwYW4gZGl2U3BhbjEyIGRpdkZpbHRlckJveFRpdGxlIj4KCQkJCQkJUmFmZmluZXogdm90cmUgcmVjaGVyY2hlIDoKCQkJCQk8L2Rpdj4KCQkJCQk8ZGl2IGNsYXNzPSJkaXZTcGFuIGRpdlNwYW4xMiI+CgkJCQkJCTxkaXYgY2xhc3M9ImRpdlNwYW4gZGl2U3BhbjMiPjxkaXYgY2xhc3M9ImRpdkZpbHRlclRpdGxlIj5UeXBlIGRlIGNhcnJvc3NlcmllPC9kaXY+PHVsIGNsYXNzPSIiPjxsaSBjbGFzcz0iIj48aW5wdXQgY2xhc3M9ImZpbHRlckNoZWNrIGNhdGVnb3J5IiBpZD0ic2hvd0NsYXNzX2NhciIgdHlwZT0iY2hlY2tib3giIHZhbHVlPSJjYXIiIGNoZWNrZWQ+PGxhYmVsIGNsYXNzPSJmaWx0ZXJTcGFuIGNhdGVnb3J5IiBmb3I9InNob3dDbGFzc19jYXIiPkF1dG88L2xhYmVsPjwvbGk+PGxpIGNsYXNzPSIiPjxpbnB1dCBjbGFzcz0iZmlsdGVyQ2hlY2sgY2F0ZWdvcnkiIGlkPSJzaG93Q2xhc3NfY29udmVydGlibGUiIHR5cGU9ImNoZWNrYm94IiB2YWx1ZT0iY29udmVydGlibGUiIGNoZWNrZWQ+PGxhYmVsIGNsYXNzPSJmaWx0ZXJTcGFuIGNhdGVnb3J5IiBmb3I9InNob3dDbGFzc19jb252ZXJ0aWJsZSI+RMOpY2Fwb3RhYmxlPC9sYWJlbD48L2xpPjxsaSBjbGFzcz0iIj48aW5wdXQgY2xhc3M9ImZpbHRlckNoZWNrIGNhdGVnb3J5IiBpZD0ic2hvd0NsYXNzX3N1diIgdHlwZT0iY2hlY2tib3giIHZhbHVlPSJzdXYiIGNoZWNrZWQ+PGxhYmVsIGNsYXNzPSJmaWx0ZXJTcGFuIGNhdGVnb3J5IiBmb3I9InNob3dDbGFzc19zdXYiPlZVUzwvbGFiZWw+PC9saT48L3VsPjwvZGl2PjxkaXYgY2xhc3M9ImRpdlNwYW4gZGl2U3BhbjMiPjxkaXYgY2xhc3M9ImRpdkZpbHRlclRpdGxlIj5Nb3RyaWNpdMOpPC9kaXY+PHVsIGNsYXNzPSIiPjxsaSBjbGFzcz0iIj48aW5wdXQgaWQ9ImZpbHRlckRyaXZlVHJhaW5DaGVjazEiIGNsYXNzPSJmaWx0ZXJDaGVjayBkcml2ZXRyYWluIiB0eXBlPSJjaGVja2JveCIgdmFsdWU9IjEiIGRhdGEtZHJpdmV0cmFpbj0iRldEIiBjaGVja2VkPjxsYWJlbCBmb3I9ImZpbHRlckRyaXZlVHJhaW5DaGVjazEiIGNsYXNzPSJmaWx0ZXJTcGFuIj5UcmFjdGlvbiBhdmFudDwvbGFiZWw+PC9saT48bGkgY2xhc3M9IiI+PGlucHV0IGlkPSJmaWx0ZXJEcml2ZVRyYWluQ2hlY2syIiBjbGFzcz0iZmlsdGVyQ2hlY2sgZHJpdmV0cmFpbiIgdHlwZT0iY2hlY2tib3giIHZhbHVlPSIyIiBkYXRhLWRyaXZldHJhaW49IlJXRCIgY2hlY2tlZD48bGFiZWwgZm9yPSJmaWx0ZXJEcml2ZVRyYWluQ2hlY2syIiBjbGFzcz0iZmlsdGVyU3BhbiI+UHJvcHVsc2lvbiBhcnJpw6hyZTwvbGFiZWw+PC9saT48L3VsPjwvZGl2PjxkaXYgY2xhc3M9ImRpdlNwYW4gZGl2U3BhbjMiPjxkaXYgY2xhc3M9ImRpdkZpbHRlclRpdGxlIj5UeXBlIGRlIGNhcmJ1cmFudDwvZGl2Pjx1bCBjbGFzcz0iIj4JPGxpIGNsYXNzPSIiPgoJCTxpbnB1dCBkYXRhLWVzc2VuY2U9ImdhcyIgY2xhc3M9ImZpbHRlckNoZWNrIGZ1ZWx0eXBlIiBpZD0iZmlsdGVyRXNzZW5jZUNoZWNrMSIgdHlwZT0iY2hlY2tib3giIHZhbHVlPSIxIiBjaGVja2VkPgoJCTxsYWJlbCBmb3I9ImZpbHRlckVzc2VuY2VDaGVjazEiIGNsYXNzPSJmaWx0ZXJTcGFuIj4KCQkJRXNzZW5jZQoJCTwvbGFiZWw+Cgk8L2xpPgk8bGkgY2xhc3M9IiI+CgkJPGlucHV0IGRhdGEtZXNzZW5jZT0iaHlicmlkIiBjbGFzcz0iZmlsdGVyQ2hlY2sgZnVlbHR5cGUiIGlkPSJmaWx0ZXJFc3NlbmNlQ2hlY2s0IiB0eXBlPSJjaGVja2JveCIgdmFsdWU9IjQiIGNoZWNrZWQ+CgkJPGxhYmVsIGZvcj0iZmlsdGVyRXNzZW5jZUNoZWNrNCIgY2xhc3M9ImZpbHRlclNwYW4iPgoJCQlIeWJyaWRlCgkJPC9sYWJlbD4KCTwvbGk+CTxsaSBjbGFzcz0iIj4KCQk8aW5wdXQgZGF0YS1lc3NlbmNlPSJwaGV2IiBjbGFzcz0iZmlsdGVyQ2hlY2sgZnVlbHR5cGUiIGlkPSJmaWx0ZXJFc3NlbmNlQ2hlY2s1IiB0eXBlPSJjaGVja2JveCIgdmFsdWU9IjUiIGNoZWNrZWQ+CgkJPGxhYmVsIGZvcj0iZmlsdGVyRXNzZW5jZUNoZWNrNSIgY2xhc3M9ImZpbHRlclNwYW4iPgoJCQlIeWJyaWRlIHJlY2hhcmdlYWJsZQoJCTwvbGFiZWw+Cgk8L2xpPjwvdWw+PC9kaXY+PGRpdiBjbGFzcz0iZGl2U3BhbiBkaXZTcGFuMyI+PGRpdiBjbGFzcz0iZGl2RmlsdGVyVGl0bGUiPlRyaWVyIHBhcjwvZGl2Pjx1bCBjbGFzcz0iIj48bGkgY2xhc3M9IiI+PGlucHV0IGlkPSJyYWRpb01vZGxlIiBjbGFzcz0icmFkaW9Tb3J0IiB0eXBlPSJyYWRpbyIgbmFtZT0ic29ydGJ5IiB2YWx1ZT0ibW9kZWwiIGNoZWNrZWQ+PGxhYmVsIGNsYXNzPSJmaWx0ZXJTcGFuIiBmb3I9InJhZGlvTW9kbGUiPk1vZMOobGU8bGkgY2xhc3M9IiI+PGlucHV0IGlkPSJyYWRpb1ByaWNlIiBjbGFzcz0icmFkaW9Tb3J0IiB0eXBlPSJyYWRpbyIgbmFtZT0ic29ydGJ5IiB2YWx1ZT0icHJpY2UiPjxsYWJlbCBjbGFzcz0iZmlsdGVyU3BhbiIgZm9yPSJyYWRpb1ByaWNlIj5Qcml4PC9sYWJlbD48L2xpPjxsaSBjbGFzcz0iIj48aW5wdXQgaWQ9InJhZGlvQ29uc28iIGNsYXNzPSJyYWRpb1NvcnQiIHR5cGU9InJhZGlvIiBuYW1lPSJzb3J0YnkiIHZhbHVlPSJjb25zbyI+PGxhYmVsIGNsYXNzPSJmaWx0ZXJTcGFuIiBmb3I9InJhZGlvQ29uc28iPkwvMTAwa208L2xhYmVsPjwvbGk+PC9sYWJlbD48L2xpPjwvdWw+PC9kaXY+CQkJCQkKCQkJCQk8L2Rpdj4KCQkJCQk8ZGl2IGNsYXNzPSJkaXZTcGFuIGRpdlNwYW4xMiI+CgkJCQkJCQoJCQkJCTwvZGl2PgoJCQkJCTxkaXYgY2xhc3M9ImRpdlNwYW4gZGl2U3BhbjEyIj4KCQkJCQkJCQkJCTxkaXYgY2xhc3M9ImRpdlNwYW4gZGl2U3BhbjEyIGRpdlByaWNlUmFuZ2VTbGlkZXIiIGlkPSJwcmljZVJhbmdlU2xpZGVyRmlsdGVyQ29udGFpbmVyIj4KCQkJCQk8ZGl2IGNsYXNzPSJkaXZTcGFuIGRpdlNwYW4xMiBkaXZGaWx0ZXJUaXRsZSI+CgkJCQkJCUZvdXJjaGV0dGUgZGUgcHJpeAoJCQkJCTwvZGl2PgoJCQkJCTxkaXYgY2xhc3M9ImRpdlNwYW4gZGl2U3BhbjEyIHJhbmdlLXNsaWRlci1wcmljZXMiPgoJCQkJCQk8c3BhbiBjbGFzcz0icHJpY2UtbWluIGZvcm1hdC1wcmljZSI+PC9zcGFuPsKgwqDDoMKgwqA8c3BhbiBjbGFzcz0icHJpY2UtbWF4IGZvcm1hdC1wcmljZSI+PC9zcGFuPgoJCQkJCTwvZGl2PgoJCQkJCTxkaXYgY2xhc3M9ImRpdlNwYW4gZGl2U3BhbjYiPgoJCQkJCQk8ZGl2IGNsYXNzPSJkaXZTcGFuIGRpdlNwYW4xIHJhbmdlLXNsaWRlci1sZWZ0Ij5NaW48L2Rpdj4KCQkJCQkJPGRpdiBjbGFzcz0iZGl2U3BhbiBkaXZTcGFuOSByYW5nZS1zbGlkZXIiIGF0dHItcHJpY2UtbWluPSIyODI0MCIgYXR0ci1wcmljZS1tYXg9IjYxODQwIj48L2Rpdj4KCQkJCQkJPGRpdiBjbGFzcz0iZGl2U3BhbiBkaXZTcGFuMSByYW5nZS1zbGlkZXItcmlnaHQiPk1heDwvZGl2PgoJCQkJCTwvZGl2PgoJCQkJPC9kaXY+CgkJCQkJPC9kaXY+CgkJCQk8L2Rpdj4KCQkJPC9kaXY+CgkJPC9kaXY+Cgk8L2Rpdj4KCTwhLS0gQ0xPU0UgRklMVEVSTUFJTkJPWCAoJy5fX0xJTkVfXy4nKS0tPjwhLS0gT1BFTiBDQVRFR09SSUVTQk9YV1JBUFBFUiAoMTk4OCktLT48ZGl2IGNsYXNzPSJJbm5lckJveExheWVyIGRpdkNhdGVnb3JpZXNCb3hXcmFwcGVyIj48IS0tIE9QRU4gQ0FURUdPUllCT1hXUkFQUEVSICgyMDUyKSAtLT48ZGl2IGlkPSJjbGFzc2Nhcl9jb250YWluZXIiIGNsYXNzPSJkaXZTcGFuIGRpdlNwYW4xMiBkaXZDYXRlZ29yeUJveFdyYXBwZXIiIHN0YXRlPSJvcGVuIiBuYnZpc2libGU9IjEiPjxoMiBjbGFzcz0iZGVmYXVsdCBpY29uLWhlYWRpbmcgZmxleC1ib3ggYWxpZ24tY2VudGVyIj4KCTxzcGFuIGNsYXNzPSJmYSBmYS1jaGV2cm9uLXJpZ2h0IiBhcmlhLWhpZGRlbj0idHJ1ZSI+PC9zcGFuPgoJPGJveC1sYyBjbGFzcz0iLXB2MCI+CgkJPGRpdiBjbGFzcz0ibWFpblRleHQgLWJvbGQiPkF1dG9zIG5ldXZlcyBNYXpkYSAyMDI1ICZhbXA7IDIwMjY8L2Rpdj4KCQk8ZGl2IGNsYXNzPSJzZWNvbmRhcnlUZXh0Ij7DoCBTdC1HZW9yZ2VzPC9kaXY+Cgk8L2JveC1sYz4KPC9oMj48ZGl2IGNsYXNzPSJkaXZTcGFuIGRpdlNwYW4xMiBkaXZDYXJzQm94V3JhcHBlciBDTEFTU19jYXIiPgk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVPdXRlckJveCAgIiBpZD0iZmJ4X2Nhcl8xIj4KCQkKCQk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVJbm5lckJveCIgaWQ9IiI+CgkJCQoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJUaXRsZUNvbnRhaW5lciI+CgkJCQk8YSB0aXRsZT0iTWF6ZGEzIDIwMjYiIGhyZWY9Ij9wYXRoPS9uZXVmcy9NYXpkYS1NYXpkYTMtMjAyNi5odG1sIiBkYXRhLW1ha2U9Ik1hemRhIiBkYXRhLW1vZGVsPSJNYXpkYTMgMjAyNiI+CgkJCQkJPGgzPgoJCQkJCQk8c3BhbiBjbGFzcz0ic3BhbkNhck1ha2UgIj48L3NwYW4+PGJyPgoJCQkJCQk8c3BhbiBjbGFzcz0ibW9kZWxOYW1lIHNwYW5Nb2RlbE5hbWUiPk1hemRhMyAyMDI2PC9zcGFuPgoJCQkJCTwvaDM+CgkJCQk8L2E+CgkJCQkgICAgPCEtLSBPUEVOIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CiAgICA8ZGl2IGNsYXNzPSJkaXZOZXdDYXJTdGFydFByaWNlIj4KICAgICAgICDDoCBwYXJ0aXIgZGUKICAgICAgICA8c3BhbiBjbGFzcz0iIj4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+MjggMjQwPC9zcGFuPjwvc3Bhbj4KICAgICAgICA8aSBzdHlsZT0iY29sb3I6IzAwMDtmb250LXNpemU6MjBweDsiIGNsYXNzPSJjYXJQcmljZUluaXRpYWxUb29sVGlwSWNvbiBmYWwgZmEtaW5mby1jaXJjbGUgYmxhY2tDb2xvckJvbGQiIGRhdGEtdG9vbHRpcD0nJmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtQRFNGOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsyNSAyNTAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUcmFuc3BvcnQgJmFtcDsgUHLDqXBhcmF0aW9uOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsyIDA5NSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O0ZyYWlzIGFkbWluLiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDs3OTUmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUYXhlIEFDOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsxMDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUb3RhbCZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsyOCAyNDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jz48L2k+CiAgICA8L2Rpdj4KICAgIDwhLS0gQ0xPU0UgTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KCQkJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJblN0b2NrTGluayIgaGlkZGVuPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBkYXRhLXR5cGU9ImludmRhdGEiIGRhdGEtbWFrZT0iTWF6ZGEiIGRhdGEtbW9kZWw9Ik1hemRhMyIgZGF0YS15ZWFyPSIyMDI2IiBkYXRhLXN0eWxlaWRzPSI0ODMwMDUsNDgzMDA2LDQ4MzAwOCw0ODMwMDcsNDgzMDA5LDQ4MzAxMCIgZGF0YS1oeWJyaWQ9IjAiPgoJPC9kaXY+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJbWFnZUNvbnRhaW5lciBmbGV4LWNlbnRlciBhbGlnbi1jZW50ZXIgIj4KCQkJCTxhIHRpdGxlPSJNYXpkYTMgMjAyNiIgaHJlZj0iP3BhdGg9L25ldWZzL01hemRhLU1hemRhMy0yMDI2Lmh0bWwiPgoJCQkJCTxpbWcgYWx0PSJNYXpkYTMgMjAyNiIgYm9yZGVyPSIwIiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9mci9NYXpkYS9NYXpkYTMvMjAyNi80ODMwMTAvV2hpdGUvcHJvZmlsZS53ZWJwIiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+CgkJCQk8L2E+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJGb290ZXJDb250YWluZXIgc3RhY2stbGMgLS1zLTkiPgoJCQkJCTxkaXYgY2xhc3M9ImNhclBheW1lbnRXcmFwcGVyIj4KCQkJPGRpdiBjbGFzcz0iY29udGVudC1za2VsZXRvbiBodG1sLWJsb2NrIiBkYXRhLWJsb2NrPSJwYXltZW50QmxvY2siIGRhdGEtdHlwZT0iYmxvY2siIGRhdGEtc291cmNlPSJzZXJ2ZXIiIGRhdGEtY2FsbGJhY2s9InBheW1lbnRDYWxjQmxvY2siPgoJCQoJPGlucHV0IG5hbWU9ImJsb2NrLWRhdGEiIHR5cGU9ImhpZGRlbiIgdmFsdWU9InsmcXVvdDtzdHlsZWlkJnF1b3Q7OiZxdW90OzQ4MzAwNSZxdW90OywmcXVvdDt0aXRsZSZxdW90OzomcXVvdDtNYXpkYTMgMjAyNiZxdW90OywmcXVvdDtocmVmJnF1b3Q7OiZxdW90O1wvbmV1ZnNcL01hemRhLU1hemRhMy0yMDI2Lmh0bWwmcXVvdDssJnF1b3Q7bGlua3N0eWxlJnF1b3Q7OiZxdW90OyZxdW90OywmcXVvdDtsaW5rY2xhc3MmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O2NvbnRhaW5lcmNsYXNzJnF1b3Q7OiZxdW90OyZxdW90OywmcXVvdDtwcm9tb3RleHQmcXVvdDs6JnF1b3Q7RFx1MDBlOWNvdXZyZXogbCdvZmZyZSEmcXVvdDt9Ij4KCTwvZGl2PgoJPC9kaXY+CgkJCQkKCQkJPC9kaXY+CgkJPC9kaXY+Cgk8L2Rpdj4JPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggICIgaWQ9ImZieF9jYXJfMiI+CgkJCgkJPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlSW5uZXJCb3giIGlkPSIiPgoJCQkKCQkJPGRpdiBjbGFzcz0iZGl2Q2FyVGl0bGVDb250YWluZXIiPgoJCQkJPGEgdGl0bGU9Ik1hemRhMyAyMDI1IiBocmVmPSI\/cGF0aD0vbmV1ZnMvTWF6ZGEtTWF6ZGEzLTIwMjUuaHRtbCIgZGF0YS1tYWtlPSJNYXpkYSIgZGF0YS1tb2RlbD0iTWF6ZGEzIDIwMjUiPgoJCQkJCTxoMz4KCQkJCQkJPHNwYW4gY2xhc3M9InNwYW5DYXJNYWtlICI+PC9zcGFuPjxicj4KCQkJCQkJPHNwYW4gY2xhc3M9Im1vZGVsTmFtZSBzcGFuTW9kZWxOYW1lIj5NYXpkYTMgMjAyNTwvc3Bhbj4KCQkJCQk8L2gzPgoJCQkJPC9hPgoJCQkJICAgIDwhLS0gT1BFTiBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgogICAgPGRpdiBjbGFzcz0iZGl2TmV3Q2FyU3RhcnRQcmljZSI+CiAgICAgICAgw6AgcGFydGlyIGRlCiAgICAgICAgPHNwYW4gY2xhc3M9IiI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjI4IDI0MDwvc3Bhbj48L3NwYW4+CiAgICAgICAgPGkgc3R5bGU9ImNvbG9yOiMwMDA7Zm9udC1zaXplOjIwcHg7IiBjbGFzcz0iY2FyUHJpY2VJbml0aWFsVG9vbFRpcEljb24gZmFsIGZhLWluZm8tY2lyY2xlIGJsYWNrQ29sb3JCb2xkIiBkYXRhLXRvb2x0aXA9JyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7UERTRjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MjUgMjUwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VHJhbnNwb3J0ICZhbXA7IFByw6lwYXJhdGlvbjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MiAwOTUmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtGcmFpcyBhZG1pbi4mbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7Nzk1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VGF4ZSBBQzombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MTAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VG90YWwmbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MjggMjQwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0Oyc+PC9pPgogICAgPC9kaXY+CiAgICA8IS0tIENMT1NFIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+PCEtLSBPUEVOIE5FVyBDQVIgUFJPTU8gUFJJQ0UgKDI3NCktLT48ZGl2IGNsYXNzPSJkaXZOZXdDYXJQcm9tb1ByaWNlIj5lbiByYWJhaXMgw6AgPHNwYW4gY2xhc3M9IiIgc3R5bGU9ImNvbG9yOiAjOTEwYTJkOyI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjI2IDI0MDwvc3Bhbj48L3NwYW4+PC9kaXY+PCEtLSBDTE9TRSBORVcgQ0FSIFBST01PIFBSSUNFICgyODEpLS0+CgkJCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW5TdG9ja0xpbmsiIGhpZGRlbj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgZGF0YS10eXBlPSJpbnZkYXRhIiBkYXRhLW1ha2U9Ik1hemRhIiBkYXRhLW1vZGVsPSJNYXpkYTMiIGRhdGEteWVhcj0iMjAyNSIgZGF0YS1zdHlsZWlkcz0iNDYxMDg3LDQ2MTA4OCw0NjEwOTAsNDYxMDg5LDQ2MTA5MSw0NjEwOTIiIGRhdGEtaHlicmlkPSIwIj4KCTwvZGl2PgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW1hZ2VDb250YWluZXIgZmxleC1jZW50ZXIgYWxpZ24tY2VudGVyICI+CgkJCQk8YSB0aXRsZT0iTWF6ZGEzIDIwMjUiIGhyZWY9Ij9wYXRoPS9uZXVmcy9NYXpkYS1NYXpkYTMtMjAyNS5odG1sIj4KCQkJCQk8aW1nIGFsdD0iTWF6ZGEzIDIwMjUiIGJvcmRlcj0iMCIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvZnIvTWF6ZGEvTWF6ZGEzLzIwMjUvNDYxMDkyL1JlZC9wcm9maWxlLndlYnAiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj4KCQkJCTwvYT4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckZvb3RlckNvbnRhaW5lciBzdGFjay1sYyAtLXMtOSI+CgkJCQkJPGRpdiBjbGFzcz0iY2FyUGF5bWVudFdyYXBwZXIiPgoJCQk8ZGl2IGNsYXNzPSJjb250ZW50LXNrZWxldG9uIGh0bWwtYmxvY2siIGRhdGEtYmxvY2s9InBheW1lbnRCbG9jayIgZGF0YS10eXBlPSJibG9jayIgZGF0YS1zb3VyY2U9InNlcnZlciIgZGF0YS1jYWxsYmFjaz0icGF5bWVudENhbGNCbG9jayI+CgkJCgk8aW5wdXQgbmFtZT0iYmxvY2stZGF0YSIgdHlwZT0iaGlkZGVuIiB2YWx1ZT0ieyZxdW90O3N0eWxlaWQmcXVvdDs6JnF1b3Q7NDYxMDg3JnF1b3Q7LCZxdW90O3RpdGxlJnF1b3Q7OiZxdW90O01hemRhMyAyMDI1JnF1b3Q7LCZxdW90O2hyZWYmcXVvdDs6JnF1b3Q7XC9uZXVmc1wvTWF6ZGEtTWF6ZGEzLTIwMjUuaHRtbCZxdW90OywmcXVvdDtsaW5rc3R5bGUmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O2xpbmtjbGFzcyZxdW90OzomcXVvdDsmcXVvdDssJnF1b3Q7Y29udGFpbmVyY2xhc3MmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O3Byb21vdGV4dCZxdW90OzomcXVvdDtEXHUwMGU5Y291dnJleiBsJ29mZnJlISZxdW90O30iPgoJPC9kaXY+Cgk8L2Rpdj4KCQkJCQoJCQk8L2Rpdj4KCQk8L2Rpdj4KCTwvZGl2Pgk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVPdXRlckJveCAgIiBpZD0iZmJ4X2Nhcl8zIj4KCQkKCQk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVJbm5lckJveCIgaWQ9IiI+CgkJCQoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJUaXRsZUNvbnRhaW5lciI+CgkJCQk8YSB0aXRsZT0iTWF6ZGEzIFNwb3J0IDIwMjYiIGhyZWY9Ij9wYXRoPS9uZXVmcy9NYXpkYS1NYXpkYTNfU3BvcnQtMjAyNi5odG1sIiBkYXRhLW1ha2U9Ik1hemRhIiBkYXRhLW1vZGVsPSJNYXpkYTMgU3BvcnQgMjAyNiI+CgkJCQkJPGgzPgoJCQkJCQk8c3BhbiBjbGFzcz0ic3BhbkNhck1ha2UgIj48L3NwYW4+PGJyPgoJCQkJCQk8c3BhbiBjbGFzcz0ibW9kZWxOYW1lIHNwYW5Nb2RlbE5hbWUiPk1hemRhMyBTcG9ydCAyMDI2PC9zcGFuPgoJCQkJCTwvaDM+CgkJCQk8L2E+CgkJCQkgICAgPCEtLSBPUEVOIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CiAgICA8ZGl2IGNsYXNzPSJkaXZOZXdDYXJTdGFydFByaWNlIj4KICAgICAgICDDoCBwYXJ0aXIgZGUKICAgICAgICA8c3BhbiBjbGFzcz0iIj4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+MjggOTkwPC9zcGFuPjwvc3Bhbj4KICAgICAgICA8aSBzdHlsZT0iY29sb3I6IzAwMDtmb250LXNpemU6MjBweDsiIGNsYXNzPSJjYXJQcmljZUluaXRpYWxUb29sVGlwSWNvbiBmYWwgZmEtaW5mby1jaXJjbGUgYmxhY2tDb2xvckJvbGQiIGRhdGEtdG9vbHRpcD0nJmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtQRFNGOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsyNiAwMDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUcmFuc3BvcnQgJmFtcDsgUHLDqXBhcmF0aW9uOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsyIDA5NSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O0ZyYWlzIGFkbWluLiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDs3OTUmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUYXhlIEFDOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsxMDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUb3RhbCZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsyOCA5OTAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jz48L2k+CiAgICA8L2Rpdj4KICAgIDwhLS0gQ0xPU0UgTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KCQkJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJblN0b2NrTGluayIgaGlkZGVuPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBkYXRhLXR5cGU9ImludmRhdGEiIGRhdGEtbWFrZT0iTWF6ZGEiIGRhdGEtbW9kZWw9Ik1hemRhMyBTcG9ydCIgZGF0YS15ZWFyPSIyMDI2IiBkYXRhLXN0eWxlaWRzPSI0ODMwMjgsNDgzMDI5LDQ4MzAzMiw0ODMwMzAsNDgzMDMxLDQ4MzAzMyw0ODMwMzQiIGRhdGEtaHlicmlkPSIwIj4KCTwvZGl2PgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW1hZ2VDb250YWluZXIgZmxleC1jZW50ZXIgYWxpZ24tY2VudGVyICI+CgkJCQk8YSB0aXRsZT0iTWF6ZGEzIFNwb3J0IDIwMjYiIGhyZWY9Ij9wYXRoPS9uZXVmcy9NYXpkYS1NYXpkYTNfU3BvcnQtMjAyNi5odG1sIj4KCQkJCQk8aW1nIGFsdD0iTWF6ZGEzIFNwb3J0IDIwMjYiIGJvcmRlcj0iMCIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvZnIvTWF6ZGEvTWF6ZGEzX1Nwb3J0LzIwMjYvNDgzMDM0L1doaXRlL3Byb2ZpbGUud2VicCIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPgoJCQkJPC9hPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyRm9vdGVyQ29udGFpbmVyIHN0YWNrLWxjIC0tcy05Ij4KCQkJCQk8ZGl2IGNsYXNzPSJjYXJQYXltZW50V3JhcHBlciI+CgkJCTxkaXYgY2xhc3M9ImNvbnRlbnQtc2tlbGV0b24gaHRtbC1ibG9jayIgZGF0YS1ibG9jaz0icGF5bWVudEJsb2NrIiBkYXRhLXR5cGU9ImJsb2NrIiBkYXRhLXNvdXJjZT0ic2VydmVyIiBkYXRhLWNhbGxiYWNrPSJwYXltZW50Q2FsY0Jsb2NrIj4KCQkKCTxpbnB1dCBuYW1lPSJibG9jay1kYXRhIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSJ7JnF1b3Q7c3R5bGVpZCZxdW90OzomcXVvdDs0ODMwMjgmcXVvdDssJnF1b3Q7dGl0bGUmcXVvdDs6JnF1b3Q7TWF6ZGEzIFNwb3J0IDIwMjYmcXVvdDssJnF1b3Q7aHJlZiZxdW90OzomcXVvdDtcL25ldWZzXC9NYXpkYS1NYXpkYTNfU3BvcnQtMjAyNi5odG1sJnF1b3Q7LCZxdW90O2xpbmtzdHlsZSZxdW90OzomcXVvdDsmcXVvdDssJnF1b3Q7bGlua2NsYXNzJnF1b3Q7OiZxdW90OyZxdW90OywmcXVvdDtjb250YWluZXJjbGFzcyZxdW90OzomcXVvdDsmcXVvdDssJnF1b3Q7cHJvbW90ZXh0JnF1b3Q7OiZxdW90O0RcdTAwZTljb3V2cmV6IGwnb2ZmcmUhJnF1b3Q7fSI+Cgk8L2Rpdj4KCTwvZGl2PgoJCQkJCgkJCTwvZGl2PgoJCTwvZGl2PgoJPC9kaXY+CTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZU91dGVyQm94ICAiIGlkPSJmYnhfY2FyXzQiPgoJCQoJCTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZUlubmVyQm94IiBpZD0iIj4KCQkJCgkJCTxkaXYgY2xhc3M9ImRpdkNhclRpdGxlQ29udGFpbmVyIj4KCQkJCTxhIHRpdGxlPSJNYXpkYTMgU3BvcnQgMjAyNSIgaHJlZj0iP3BhdGg9L25ldWZzL01hemRhLU1hemRhM19TcG9ydC0yMDI1Lmh0bWwiIGRhdGEtbWFrZT0iTWF6ZGEiIGRhdGEtbW9kZWw9Ik1hemRhMyBTcG9ydCAyMDI1Ij4KCQkJCQk8aDM+CgkJCQkJCTxzcGFuIGNsYXNzPSJzcGFuQ2FyTWFrZSAiPjwvc3Bhbj48YnI+CgkJCQkJCTxzcGFuIGNsYXNzPSJtb2RlbE5hbWUgc3Bhbk1vZGVsTmFtZSI+TWF6ZGEzIFNwb3J0IDIwMjU8L3NwYW4+CgkJCQkJPC9oMz4KCQkJCTwvYT4KCQkJCSAgICA8IS0tIE9QRU4gTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KICAgIDxkaXYgY2xhc3M9ImRpdk5ld0NhclN0YXJ0UHJpY2UiPgogICAgICAgIMOgIHBhcnRpciBkZQogICAgICAgIDxzcGFuIGNsYXNzPSIiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj4yOCA5OTA8L3NwYW4+PC9zcGFuPgogICAgICAgIDxpIHN0eWxlPSJjb2xvcjojMDAwO2ZvbnQtc2l6ZToyMHB4OyIgY2xhc3M9ImNhclByaWNlSW5pdGlhbFRvb2xUaXBJY29uIGZhbCBmYS1pbmZvLWNpcmNsZSBibGFja0NvbG9yQm9sZCIgZGF0YS10b29sdGlwPScmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1BEU0Y6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzI2IDAwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RyYW5zcG9ydCAmYW1wOyBQcsOpcGFyYXRpb246Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzIgMDk1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7RnJhaXMgYWRtaW4uJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0Ozc5NSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RheGUgQUM6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzEwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RvdGFsJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzI4IDk5MCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsnPjwvaT4KICAgIDwvZGl2PgogICAgPCEtLSBDTE9TRSBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPjwhLS0gT1BFTiBORVcgQ0FSIFBST01PIFBSSUNFICgyNzQpLS0+PGRpdiBjbGFzcz0iZGl2TmV3Q2FyUHJvbW9QcmljZSI+ZW4gcmFiYWlzIMOgIDxzcGFuIGNsYXNzPSIiIHN0eWxlPSJjb2xvcjogIzkxMGEyZDsiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj4yNiA5OTA8L3NwYW4+PC9zcGFuPjwvZGl2PjwhLS0gQ0xPU0UgTkVXIENBUiBQUk9NTyBQUklDRSAoMjgxKS0tPgoJCQkJCTxkaXYgY2xhc3M9ImRpdkNhckluU3RvY2tMaW5rIiBoaWRkZW4+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGRhdGEtdHlwZT0iaW52ZGF0YSIgZGF0YS1tYWtlPSJNYXpkYSIgZGF0YS1tb2RlbD0iTWF6ZGEzIFNwb3J0IiBkYXRhLXllYXI9IjIwMjUiIGRhdGEtc3R5bGVpZHM9IjQ2MTA5Myw0NjEwOTQsNDYxMDk3LDQ2MTA5NSw0NjEwOTYsNDYxMDk4LDQ2MTA5OSw0NjExMDAiIGRhdGEtaHlicmlkPSIwIj4KCTwvZGl2PgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW1hZ2VDb250YWluZXIgZmxleC1jZW50ZXIgYWxpZ24tY2VudGVyICI+CgkJCQk8YSB0aXRsZT0iTWF6ZGEzIFNwb3J0IDIwMjUiIGhyZWY9Ij9wYXRoPS9uZXVmcy9NYXpkYS1NYXpkYTNfU3BvcnQtMjAyNS5odG1sIj4KCQkJCQk8aW1nIGFsdD0iTWF6ZGEzIFNwb3J0IDIwMjUiIGJvcmRlcj0iMCIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvZnIvTWF6ZGEvTWF6ZGEzX1Nwb3J0LzIwMjUvNDYxMTAwL1JlZC9wcm9maWxlLndlYnAiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj4KCQkJCTwvYT4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckZvb3RlckNvbnRhaW5lciBzdGFjay1sYyAtLXMtOSI+CgkJCQkJPGRpdiBjbGFzcz0iY2FyUGF5bWVudFdyYXBwZXIiPgoJCQk8ZGl2IGNsYXNzPSJjb250ZW50LXNrZWxldG9uIGh0bWwtYmxvY2siIGRhdGEtYmxvY2s9InBheW1lbnRCbG9jayIgZGF0YS10eXBlPSJibG9jayIgZGF0YS1zb3VyY2U9InNlcnZlciIgZGF0YS1jYWxsYmFjaz0icGF5bWVudENhbGNCbG9jayI+CgkJCgk8aW5wdXQgbmFtZT0iYmxvY2stZGF0YSIgdHlwZT0iaGlkZGVuIiB2YWx1ZT0ieyZxdW90O3N0eWxlaWQmcXVvdDs6JnF1b3Q7NDYxMDkzJnF1b3Q7LCZxdW90O3RpdGxlJnF1b3Q7OiZxdW90O01hemRhMyBTcG9ydCAyMDI1JnF1b3Q7LCZxdW90O2hyZWYmcXVvdDs6JnF1b3Q7XC9uZXVmc1wvTWF6ZGEtTWF6ZGEzX1Nwb3J0LTIwMjUuaHRtbCZxdW90OywmcXVvdDtsaW5rc3R5bGUmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O2xpbmtjbGFzcyZxdW90OzomcXVvdDsmcXVvdDssJnF1b3Q7Y29udGFpbmVyY2xhc3MmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O3Byb21vdGV4dCZxdW90OzomcXVvdDtEXHUwMGU5Y291dnJleiBsJ29mZnJlISZxdW90O30iPgoJPC9kaXY+Cgk8L2Rpdj4KCQkJCQoJCQk8L2Rpdj4KCQk8L2Rpdj4KCTwvZGl2PjwvZGl2PjwvZGl2PjwhLS0gQ0xPU0UgQ0FURUdPUllCT1hXUkFQUEVSICgyMDYwKS0tPjwhLS0gT1BFTiBDQVRFR09SWUJPWFdSQVBQRVIgKDIwNTIpIC0tPjxkaXYgaWQ9ImNsYXNzY29udmVydGlibGVfY29udGFpbmVyIiBjbGFzcz0iZGl2U3BhbiBkaXZTcGFuMTIgZGl2Q2F0ZWdvcnlCb3hXcmFwcGVyIiBzdGF0ZT0ib3BlbiIgbmJ2aXNpYmxlPSIxIj48aDIgY2xhc3M9ImRlZmF1bHQgaWNvbi1oZWFkaW5nIGZsZXgtYm94IGFsaWduLWNlbnRlciI+Cgk8c3BhbiBjbGFzcz0iZmEgZmEtY2hldnJvbi1yaWdodCIgYXJpYS1oaWRkZW49InRydWUiPjwvc3Bhbj4KCTxib3gtbGMgY2xhc3M9Ii1wdjAiPgoJCTxkaXYgY2xhc3M9Im1haW5UZXh0IC1ib2xkIj5Ew6ljYXBvdGFibGVzIG5ldXZlcyBNYXpkYSAyMDI1ICZhbXA7IDIwMjY8L2Rpdj4KCQk8ZGl2IGNsYXNzPSJzZWNvbmRhcnlUZXh0Ij7DoCBTdC1HZW9yZ2VzPC9kaXY+Cgk8L2JveC1sYz4KPC9oMj48ZGl2IGNsYXNzPSJkaXZTcGFuIGRpdlNwYW4xMiBkaXZDYXJzQm94V3JhcHBlciBDTEFTU19jb252ZXJ0aWJsZSI+CTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZU91dGVyQm94ICAiIGlkPSJmYnhfY29udmVydGlibGVfMSI+CgkJCgkJPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlSW5uZXJCb3giIGlkPSIiPgoJCQkKCQkJPGRpdiBjbGFzcz0iZGl2Q2FyVGl0bGVDb250YWluZXIiPgoJCQkJPGEgdGl0bGU9Ik1hemRhIE1YLTUgMjAyNiIgaHJlZj0iP3BhdGg9L25ldWZzL01hemRhLU1YXzUtMjAyNi5odG1sIiBkYXRhLW1ha2U9Ik1hemRhIiBkYXRhLW1vZGVsPSJNWC01IDIwMjYiPgoJCQkJCTxoMz4KCQkJCQkJPHNwYW4gY2xhc3M9InNwYW5DYXJNYWtlICI+TWF6ZGE8L3NwYW4+PGJyPgoJCQkJCQk8c3BhbiBjbGFzcz0ibW9kZWxOYW1lIHNwYW5Nb2RlbE5hbWUiPk1YLTUgMjAyNjwvc3Bhbj4KCQkJCQk8L2gzPgoJCQkJPC9hPgoJCQkJICAgIDwhLS0gT1BFTiBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgogICAgPGRpdiBjbGFzcz0iZGl2TmV3Q2FyU3RhcnRQcmljZSI+CiAgICAgICAgw6AgcGFydGlyIGRlCiAgICAgICAgPHNwYW4gY2xhc3M9IiI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjM4IDY5MDwvc3Bhbj48L3NwYW4+CiAgICAgICAgPGkgc3R5bGU9ImNvbG9yOiMwMDA7Zm9udC1zaXplOjIwcHg7IiBjbGFzcz0iY2FyUHJpY2VJbml0aWFsVG9vbFRpcEljb24gZmFsIGZhLWluZm8tY2lyY2xlIGJsYWNrQ29sb3JCb2xkIiBkYXRhLXRvb2x0aXA9JyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7UERTRjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MzUgNzAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VHJhbnNwb3J0ICZhbXA7IFByw6lwYXJhdGlvbjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MiAwOTUmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtGcmFpcyBhZG1pbi4mbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7Nzk1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VGF4ZSBBQzombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MTAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VG90YWwmbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MzggNjkwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0Oyc+PC9pPgogICAgPC9kaXY+CiAgICA8IS0tIENMT1NFIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CgkJCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW5TdG9ja0xpbmsiIGhpZGRlbj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgZGF0YS10eXBlPSJpbnZkYXRhIiBkYXRhLW1ha2U9Ik1hemRhIiBkYXRhLW1vZGVsPSJNWC01IiBkYXRhLXllYXI9IjIwMjYiIGRhdGEtc3R5bGVpZHM9IjQ4Mzg4MCw0ODM4ODEsNDgzODgyLDQ4Mzg4Myw0ODM4ODQiIGRhdGEtaHlicmlkPSIwIj4KCTwvZGl2PgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW1hZ2VDb250YWluZXIgZmxleC1jZW50ZXIgYWxpZ24tY2VudGVyICI+CgkJCQk8YSB0aXRsZT0iTWF6ZGEgTVgtNSAyMDI2IiBocmVmPSI\/cGF0aD0vbmV1ZnMvTWF6ZGEtTVhfNS0yMDI2Lmh0bWwiPgoJCQkJCTxpbWcgYWx0PSJNYXpkYSBNWC01IDIwMjYiIGJvcmRlcj0iMCIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvZnIvTWF6ZGEvTVhfNS8yMDI2LzQ4Mzg4My9XaGl0ZS9wcm9maWxlLndlYnAiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj4KCQkJCTwvYT4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckZvb3RlckNvbnRhaW5lciBzdGFjay1sYyAtLXMtOSI+CgkJCQkJPGRpdiBjbGFzcz0iY2FyUGF5bWVudFdyYXBwZXIiPgoJCQk8ZGl2IGNsYXNzPSJjb250ZW50LXNrZWxldG9uIGh0bWwtYmxvY2siIGRhdGEtYmxvY2s9InBheW1lbnRCbG9jayIgZGF0YS10eXBlPSJibG9jayIgZGF0YS1zb3VyY2U9InNlcnZlciIgZGF0YS1jYWxsYmFjaz0icGF5bWVudENhbGNCbG9jayI+CgkJCgk8aW5wdXQgbmFtZT0iYmxvY2stZGF0YSIgdHlwZT0iaGlkZGVuIiB2YWx1ZT0ieyZxdW90O3N0eWxlaWQmcXVvdDs6JnF1b3Q7NDgzODgwJnF1b3Q7LCZxdW90O3RpdGxlJnF1b3Q7OiZxdW90O01hemRhIE1YLTUgMjAyNiZxdW90OywmcXVvdDtocmVmJnF1b3Q7OiZxdW90O1wvbmV1ZnNcL01hemRhLU1YXzUtMjAyNi5odG1sJnF1b3Q7LCZxdW90O2xpbmtzdHlsZSZxdW90OzomcXVvdDsmcXVvdDssJnF1b3Q7bGlua2NsYXNzJnF1b3Q7OiZxdW90OyZxdW90OywmcXVvdDtjb250YWluZXJjbGFzcyZxdW90OzomcXVvdDsmcXVvdDssJnF1b3Q7cHJvbW90ZXh0JnF1b3Q7OiZxdW90O0RcdTAwZTljb3V2cmV6IGwnb2ZmcmUhJnF1b3Q7fSI+Cgk8L2Rpdj4KCTwvZGl2PgoJCQkJCgkJCTwvZGl2PgoJCTwvZGl2PgoJPC9kaXY+CTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZU91dGVyQm94ICAiIGlkPSJmYnhfY29udmVydGlibGVfMiI+CgkJCgkJPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlSW5uZXJCb3giIGlkPSIiPgoJCQkKCQkJPGRpdiBjbGFzcz0iZGl2Q2FyVGl0bGVDb250YWluZXIiPgoJCQkJPGEgdGl0bGU9Ik1hemRhIE1YLTUgMjAyNSIgaHJlZj0iP3BhdGg9L25ldWZzL01hemRhLU1YXzUtMjAyNS5odG1sIiBkYXRhLW1ha2U9Ik1hemRhIiBkYXRhLW1vZGVsPSJNWC01IDIwMjUiPgoJCQkJCTxoMz4KCQkJCQkJPHNwYW4gY2xhc3M9InNwYW5DYXJNYWtlICI+TWF6ZGE8L3NwYW4+PGJyPgoJCQkJCQk8c3BhbiBjbGFzcz0ibW9kZWxOYW1lIHNwYW5Nb2RlbE5hbWUiPk1YLTUgMjAyNTwvc3Bhbj4KCQkJCQk8L2gzPgoJCQkJPC9hPgoJCQkJICAgIDwhLS0gT1BFTiBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgogICAgPGRpdiBjbGFzcz0iZGl2TmV3Q2FyU3RhcnRQcmljZSI+CiAgICAgICAgw6AgcGFydGlyIGRlCiAgICAgICAgPHNwYW4gY2xhc3M9IiI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjM4IDQ0MDwvc3Bhbj48L3NwYW4+CiAgICAgICAgPGkgc3R5bGU9ImNvbG9yOiMwMDA7Zm9udC1zaXplOjIwcHg7IiBjbGFzcz0iY2FyUHJpY2VJbml0aWFsVG9vbFRpcEljb24gZmFsIGZhLWluZm8tY2lyY2xlIGJsYWNrQ29sb3JCb2xkIiBkYXRhLXRvb2x0aXA9JyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7UERTRjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MzUgNDUwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VHJhbnNwb3J0ICZhbXA7IFByw6lwYXJhdGlvbjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MiAwOTUmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtGcmFpcyBhZG1pbi4mbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7Nzk1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VGF4ZSBBQzombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MTAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VG90YWwmbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MzggNDQwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0Oyc+PC9pPgogICAgPC9kaXY+CiAgICA8IS0tIENMT1NFIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+PCEtLSBPUEVOIE5FVyBDQVIgUFJPTU8gUFJJQ0UgKDI3NCktLT48ZGl2IGNsYXNzPSJkaXZOZXdDYXJQcm9tb1ByaWNlIj5lbiByYWJhaXMgw6AgPHNwYW4gY2xhc3M9IiIgc3R5bGU9ImNvbG9yOiAjOTEwYTJkOyI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjM1IDQ0MDwvc3Bhbj48L3NwYW4+PC9kaXY+PCEtLSBDTE9TRSBORVcgQ0FSIFBST01PIFBSSUNFICgyODEpLS0+CgkJCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW5TdG9ja0xpbmsiIGhpZGRlbj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgZGF0YS10eXBlPSJpbnZkYXRhIiBkYXRhLW1ha2U9Ik1hemRhIiBkYXRhLW1vZGVsPSJNWC01IiBkYXRhLXllYXI9IjIwMjUiIGRhdGEtc3R5bGVpZHM9IjQ3MDE3MSw0NzAxNzIsNDcwMTczLDQ3MDE3NCw0NzAxNzUsNDcwNzgwIiBkYXRhLWh5YnJpZD0iMCI+Cgk8L2Rpdj4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckltYWdlQ29udGFpbmVyIGZsZXgtY2VudGVyIGFsaWduLWNlbnRlciAiPgoJCQkJPGEgdGl0bGU9Ik1hemRhIE1YLTUgMjAyNSIgaHJlZj0iP3BhdGg9L25ldWZzL01hemRhLU1YXzUtMjAyNS5odG1sIj4KCQkJCQk8aW1nIGFsdD0iTWF6ZGEgTVgtNSAyMDI1IiBib3JkZXI9IjAiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL2ZyL01hemRhL01YXzUvMjAyNS80NzA3ODAvV2hpdGUvcHJvZmlsZS53ZWJwIiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+CgkJCQk8L2E+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJGb290ZXJDb250YWluZXIgc3RhY2stbGMgLS1zLTkiPgoJCQkJCTxkaXYgY2xhc3M9ImNhclBheW1lbnRXcmFwcGVyIj4KCQkJPGRpdiBjbGFzcz0iY29udGVudC1za2VsZXRvbiBodG1sLWJsb2NrIiBkYXRhLWJsb2NrPSJwYXltZW50QmxvY2siIGRhdGEtdHlwZT0iYmxvY2siIGRhdGEtc291cmNlPSJzZXJ2ZXIiIGRhdGEtY2FsbGJhY2s9InBheW1lbnRDYWxjQmxvY2siPgoJCQoJPGlucHV0IG5hbWU9ImJsb2NrLWRhdGEiIHR5cGU9ImhpZGRlbiIgdmFsdWU9InsmcXVvdDtzdHlsZWlkJnF1b3Q7OiZxdW90OzQ3MDE3MSZxdW90OywmcXVvdDt0aXRsZSZxdW90OzomcXVvdDtNYXpkYSBNWC01IDIwMjUmcXVvdDssJnF1b3Q7aHJlZiZxdW90OzomcXVvdDtcL25ldWZzXC9NYXpkYS1NWF81LTIwMjUuaHRtbCZxdW90OywmcXVvdDtsaW5rc3R5bGUmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O2xpbmtjbGFzcyZxdW90OzomcXVvdDsmcXVvdDssJnF1b3Q7Y29udGFpbmVyY2xhc3MmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O3Byb21vdGV4dCZxdW90OzomcXVvdDtEXHUwMGU5Y291dnJleiBsJ29mZnJlISZxdW90O30iPgoJPC9kaXY+Cgk8L2Rpdj4KCQkJCQoJCQk8L2Rpdj4KCQk8L2Rpdj4KCTwvZGl2Pgk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVPdXRlckJveCAgIiBpZD0iZmJ4X2NvbnZlcnRpYmxlXzMiPgoJCQoJCTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZUlubmVyQm94IiBpZD0iIj4KCQkJCgkJCTxkaXYgY2xhc3M9ImRpdkNhclRpdGxlQ29udGFpbmVyIj4KCQkJCTxhIHRpdGxlPSJNYXpkYSBNWC01IFJGIDIwMjYiIGhyZWY9Ij9wYXRoPS9uZXVmcy9NYXpkYS1NWF81X1JGLTIwMjYuaHRtbCIgZGF0YS1tYWtlPSJNYXpkYSIgZGF0YS1tb2RlbD0iTVgtNSBSRiAyMDI2Ij4KCQkJCQk8aDM+CgkJCQkJCTxzcGFuIGNsYXNzPSJzcGFuQ2FyTWFrZSAiPk1hemRhPC9zcGFuPjxicj4KCQkJCQkJPHNwYW4gY2xhc3M9Im1vZGVsTmFtZSBzcGFuTW9kZWxOYW1lIj5NWC01IFJGIDIwMjY8L3NwYW4+CgkJCQkJPC9oMz4KCQkJCTwvYT4KCQkJCSAgICA8IS0tIE9QRU4gTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KICAgIDxkaXYgY2xhc3M9ImRpdk5ld0NhclN0YXJ0UHJpY2UiPgogICAgICAgIMOgIHBhcnRpciBkZQogICAgICAgIDxzcGFuIGNsYXNzPSIiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj40NSA2OTA8L3NwYW4+PC9zcGFuPgogICAgICAgIDxpIHN0eWxlPSJjb2xvcjojMDAwO2ZvbnQtc2l6ZToyMHB4OyIgY2xhc3M9ImNhclByaWNlSW5pdGlhbFRvb2xUaXBJY29uIGZhbCBmYS1pbmZvLWNpcmNsZSBibGFja0NvbG9yQm9sZCIgZGF0YS10b29sdGlwPScmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1BEU0Y6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzQyIDcwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RyYW5zcG9ydCAmYW1wOyBQcsOpcGFyYXRpb246Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzIgMDk1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7RnJhaXMgYWRtaW4uJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0Ozc5NSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RheGUgQUM6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzEwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RvdGFsJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzQ1IDY5MCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsnPjwvaT4KICAgIDwvZGl2PgogICAgPCEtLSBDTE9TRSBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgoJCQkJCTxkaXYgY2xhc3M9ImRpdkNhckluU3RvY2tMaW5rIiBoaWRkZW4+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGRhdGEtdHlwZT0iaW52ZGF0YSIgZGF0YS1tYWtlPSJNYXpkYSIgZGF0YS1tb2RlbD0iTVgtNSBSRiIgZGF0YS15ZWFyPSIyMDI2IiBkYXRhLXN0eWxlaWRzPSI0ODM4ODUsNDgzODg2LDQ4Mzg4Nyw0ODM4ODgiIGRhdGEtaHlicmlkPSIwIj4KCTwvZGl2PgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW1hZ2VDb250YWluZXIgZmxleC1jZW50ZXIgYWxpZ24tY2VudGVyICI+CgkJCQk8YSB0aXRsZT0iTWF6ZGEgTVgtNSBSRiAyMDI2IiBocmVmPSI\/cGF0aD0vbmV1ZnMvTWF6ZGEtTVhfNV9SRi0yMDI2Lmh0bWwiPgoJCQkJCTxpbWcgYWx0PSJNYXpkYSBNWC01IFJGIDIwMjYiIGJvcmRlcj0iMCIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvZnIvTWF6ZGEvTVhfNV9SRi8yMDI2LzQ4Mzg4Ny9XaGl0ZS9wcm9maWxlLndlYnAiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj4KCQkJCTwvYT4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckZvb3RlckNvbnRhaW5lciBzdGFjay1sYyAtLXMtOSI+CgkJCQkJPGRpdiBjbGFzcz0iY2FyUGF5bWVudFdyYXBwZXIiPgoJCQk8ZGl2IGNsYXNzPSJjb250ZW50LXNrZWxldG9uIGh0bWwtYmxvY2siIGRhdGEtYmxvY2s9InBheW1lbnRCbG9jayIgZGF0YS10eXBlPSJibG9jayIgZGF0YS1zb3VyY2U9InNlcnZlciIgZGF0YS1jYWxsYmFjaz0icGF5bWVudENhbGNCbG9jayI+CgkJCgk8aW5wdXQgbmFtZT0iYmxvY2stZGF0YSIgdHlwZT0iaGlkZGVuIiB2YWx1ZT0ieyZxdW90O3N0eWxlaWQmcXVvdDs6JnF1b3Q7NDgzODg1JnF1b3Q7LCZxdW90O3RpdGxlJnF1b3Q7OiZxdW90O01hemRhIE1YLTUgUkYgMjAyNiZxdW90OywmcXVvdDtocmVmJnF1b3Q7OiZxdW90O1wvbmV1ZnNcL01hemRhLU1YXzVfUkYtMjAyNi5odG1sJnF1b3Q7LCZxdW90O2xpbmtzdHlsZSZxdW90OzomcXVvdDsmcXVvdDssJnF1b3Q7bGlua2NsYXNzJnF1b3Q7OiZxdW90OyZxdW90OywmcXVvdDtjb250YWluZXJjbGFzcyZxdW90OzomcXVvdDsmcXVvdDssJnF1b3Q7cHJvbW90ZXh0JnF1b3Q7OiZxdW90O0RcdTAwZTljb3V2cmV6IGwnb2ZmcmUhJnF1b3Q7fSI+Cgk8L2Rpdj4KCTwvZGl2PgoJCQkJCgkJCTwvZGl2PgoJCTwvZGl2PgoJPC9kaXY+CTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZU91dGVyQm94ICAiIGlkPSJmYnhfY29udmVydGlibGVfNCI+CgkJCgkJPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlSW5uZXJCb3giIGlkPSIiPgoJCQkKCQkJPGRpdiBjbGFzcz0iZGl2Q2FyVGl0bGVDb250YWluZXIiPgoJCQkJPGEgdGl0bGU9Ik1hemRhIE1YLTUgUkYgMjAyNSIgaHJlZj0iP3BhdGg9L25ldWZzL01hemRhLU1YXzVfUkYtMjAyNS5odG1sIiBkYXRhLW1ha2U9Ik1hemRhIiBkYXRhLW1vZGVsPSJNWC01IFJGIDIwMjUiPgoJCQkJCTxoMz4KCQkJCQkJPHNwYW4gY2xhc3M9InNwYW5DYXJNYWtlICI+TWF6ZGE8L3NwYW4+PGJyPgoJCQkJCQk8c3BhbiBjbGFzcz0ibW9kZWxOYW1lIHNwYW5Nb2RlbE5hbWUiPk1YLTUgUkYgMjAyNTwvc3Bhbj4KCQkJCQk8L2gzPgoJCQkJPC9hPgoJCQkJICAgIDwhLS0gT1BFTiBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgogICAgPGRpdiBjbGFzcz0iZGl2TmV3Q2FyU3RhcnRQcmljZSI+CiAgICAgICAgw6AgcGFydGlyIGRlCiAgICAgICAgPHNwYW4gY2xhc3M9IiI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjQ1IDQ0MDwvc3Bhbj48L3NwYW4+CiAgICAgICAgPGkgc3R5bGU9ImNvbG9yOiMwMDA7Zm9udC1zaXplOjIwcHg7IiBjbGFzcz0iY2FyUHJpY2VJbml0aWFsVG9vbFRpcEljb24gZmFsIGZhLWluZm8tY2lyY2xlIGJsYWNrQ29sb3JCb2xkIiBkYXRhLXRvb2x0aXA9JyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7UERTRjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7NDIgNDUwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VHJhbnNwb3J0ICZhbXA7IFByw6lwYXJhdGlvbjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MiAwOTUmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtGcmFpcyBhZG1pbi4mbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7Nzk1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VGF4ZSBBQzombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MTAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VG90YWwmbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7NDUgNDQwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0Oyc+PC9pPgogICAgPC9kaXY+CiAgICA8IS0tIENMT1NFIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+PCEtLSBPUEVOIE5FVyBDQVIgUFJPTU8gUFJJQ0UgKDI3NCktLT48ZGl2IGNsYXNzPSJkaXZOZXdDYXJQcm9tb1ByaWNlIj5lbiByYWJhaXMgw6AgPHNwYW4gY2xhc3M9IiIgc3R5bGU9ImNvbG9yOiAjOTEwYTJkOyI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjQyIDQ0MDwvc3Bhbj48L3NwYW4+PC9kaXY+PCEtLSBDTE9TRSBORVcgQ0FSIFBST01PIFBSSUNFICgyODEpLS0+CgkJCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW5TdG9ja0xpbmsiIGhpZGRlbj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgZGF0YS10eXBlPSJpbnZkYXRhIiBkYXRhLW1ha2U9Ik1hemRhIiBkYXRhLW1vZGVsPSJNWC01IFJGIiBkYXRhLXllYXI9IjIwMjUiIGRhdGEtc3R5bGVpZHM9IjQ2OTg2Miw0Njk4NjMsNDY5ODY0LDQ2OTg2NSIgZGF0YS1oeWJyaWQ9IjAiPgoJPC9kaXY+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJbWFnZUNvbnRhaW5lciBmbGV4LWNlbnRlciBhbGlnbi1jZW50ZXIgIj4KCQkJCTxhIHRpdGxlPSJNYXpkYSBNWC01IFJGIDIwMjUiIGhyZWY9Ij9wYXRoPS9uZXVmcy9NYXpkYS1NWF81X1JGLTIwMjUuaHRtbCI+CgkJCQkJPGltZyBhbHQ9Ik1hemRhIE1YLTUgUkYgMjAyNSIgYm9yZGVyPSIwIiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9mci9NYXpkYS9NWF81X1JGLzIwMjUvNDY5ODY0L0dyYXkvcHJvZmlsZS53ZWJwIiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+CgkJCQk8L2E+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJGb290ZXJDb250YWluZXIgc3RhY2stbGMgLS1zLTkiPgoJCQkJCTxkaXYgY2xhc3M9ImNhclBheW1lbnRXcmFwcGVyIj4KCQkJPGRpdiBjbGFzcz0iY29udGVudC1za2VsZXRvbiBodG1sLWJsb2NrIiBkYXRhLWJsb2NrPSJwYXltZW50QmxvY2siIGRhdGEtdHlwZT0iYmxvY2siIGRhdGEtc291cmNlPSJzZXJ2ZXIiIGRhdGEtY2FsbGJhY2s9InBheW1lbnRDYWxjQmxvY2siPgoJCQoJPGlucHV0IG5hbWU9ImJsb2NrLWRhdGEiIHR5cGU9ImhpZGRlbiIgdmFsdWU9InsmcXVvdDtzdHlsZWlkJnF1b3Q7OiZxdW90OzQ2OTg2MiZxdW90OywmcXVvdDt0aXRsZSZxdW90OzomcXVvdDtNYXpkYSBNWC01IFJGIDIwMjUmcXVvdDssJnF1b3Q7aHJlZiZxdW90OzomcXVvdDtcL25ldWZzXC9NYXpkYS1NWF81X1JGLTIwMjUuaHRtbCZxdW90OywmcXVvdDtsaW5rc3R5bGUmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O2xpbmtjbGFzcyZxdW90OzomcXVvdDsmcXVvdDssJnF1b3Q7Y29udGFpbmVyY2xhc3MmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O3Byb21vdGV4dCZxdW90OzomcXVvdDtEXHUwMGU5Y291dnJleiBsJ29mZnJlISZxdW90O30iPgoJPC9kaXY+Cgk8L2Rpdj4KCQkJCQoJCQk8L2Rpdj4KCQk8L2Rpdj4KCTwvZGl2PjwvZGl2PjwvZGl2PjwhLS0gQ0xPU0UgQ0FURUdPUllCT1hXUkFQUEVSICgyMDYwKS0tPjwhLS0gT1BFTiBDQVRFR09SWUJPWFdSQVBQRVIgKDIwNTIpIC0tPjxkaXYgaWQ9ImNsYXNzc3V2X2NvbnRhaW5lciIgY2xhc3M9ImRpdlNwYW4gZGl2U3BhbjEyIGRpdkNhdGVnb3J5Qm94V3JhcHBlciIgc3RhdGU9Im9wZW4iIG5idmlzaWJsZT0iMSI+PGgyIGNsYXNzPSJkZWZhdWx0IGljb24taGVhZGluZyBmbGV4LWJveCBhbGlnbi1jZW50ZXIiPgoJPHNwYW4gY2xhc3M9ImZhIGZhLWNoZXZyb24tcmlnaHQiIGFyaWEtaGlkZGVuPSJ0cnVlIj48L3NwYW4+Cgk8Ym94LWxjIGNsYXNzPSItcHYwIj4KCQk8ZGl2IGNsYXNzPSJtYWluVGV4dCAtYm9sZCI+VlVTIG5ldWZzIE1hemRhIDIwMjUgJmFtcDsgMjAyNjwvZGl2PgoJCTxkaXYgY2xhc3M9InNlY29uZGFyeVRleHQiPsOgIFN0LUdlb3JnZXM8L2Rpdj4KCTwvYm94LWxjPgo8L2gyPjxkaXYgY2xhc3M9ImRpdlNwYW4gZGl2U3BhbjEyIGRpdkNhcnNCb3hXcmFwcGVyIENMQVNTX3N1diI+CTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZU91dGVyQm94ICAiIGlkPSJmYnhfc3V2XzEiPgoJCQoJCTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZUlubmVyQm94IiBpZD0iIj4KCQkJCgkJCTxkaXYgY2xhc3M9ImRpdkNhclRpdGxlQ29udGFpbmVyIj4KCQkJCTxhIHRpdGxlPSJNYXpkYSBDWC0zMCAyMDI2IiBocmVmPSI\/cGF0aD0vbmV1ZnMvTWF6ZGEtQ1hfMzAtMjAyNi5odG1sIiBkYXRhLW1ha2U9Ik1hemRhIiBkYXRhLW1vZGVsPSJDWC0zMCAyMDI2Ij4KCQkJCQk8aDM+CgkJCQkJCTxzcGFuIGNsYXNzPSJzcGFuQ2FyTWFrZSAiPk1hemRhPC9zcGFuPjxicj4KCQkJCQkJPHNwYW4gY2xhc3M9Im1vZGVsTmFtZSBzcGFuTW9kZWxOYW1lIj5DWC0zMCAyMDI2PC9zcGFuPgoJCQkJCTwvaDM+CgkJCQk8L2E+CgkJCQkgICAgPCEtLSBPUEVOIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CiAgICA8ZGl2IGNsYXNzPSJkaXZOZXdDYXJTdGFydFByaWNlIj4KICAgICAgICDDoCBwYXJ0aXIgZGUKICAgICAgICA8c3BhbiBjbGFzcz0iIj4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+MzIgMzkwPC9zcGFuPjwvc3Bhbj4KICAgICAgICA8aSBzdHlsZT0iY29sb3I6IzAwMDtmb250LXNpemU6MjBweDsiIGNsYXNzPSJjYXJQcmljZUluaXRpYWxUb29sVGlwSWNvbiBmYWwgZmEtaW5mby1jaXJjbGUgYmxhY2tDb2xvckJvbGQiIGRhdGEtdG9vbHRpcD0nJmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtQRFNGOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsyOSAzMDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUcmFuc3BvcnQgJmFtcDsgUHLDqXBhcmF0aW9uOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsyIDE5NSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O0ZyYWlzIGFkbWluLiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDs3OTUmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUYXhlIEFDOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsxMDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUb3RhbCZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDszMiAzOTAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jz48L2k+CiAgICA8L2Rpdj4KICAgIDwhLS0gQ0xPU0UgTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KCQkJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJblN0b2NrTGluayIgaGlkZGVuPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBkYXRhLXR5cGU9ImludmRhdGEiIGRhdGEtbWFrZT0iTWF6ZGEiIGRhdGEtbW9kZWw9IkNYLTMwIiBkYXRhLXllYXI9IjIwMjYiIGRhdGEtc3R5bGVpZHM9IjQ4MzAxNSw0ODMwMTYsNDgzMDE3LDQ4MzAxOCIgZGF0YS1oeWJyaWQ9IjAiPgoJPC9kaXY+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJbWFnZUNvbnRhaW5lciBmbGV4LWNlbnRlciBhbGlnbi1jZW50ZXIgIj4KCQkJCTxhIHRpdGxlPSJNYXpkYSBDWC0zMCAyMDI2IiBocmVmPSI\/cGF0aD0vbmV1ZnMvTWF6ZGEtQ1hfMzAtMjAyNi5odG1sIj4KCQkJCQk8aW1nIGFsdD0iTWF6ZGEgQ1gtMzAgMjAyNiIgYm9yZGVyPSIwIiBjbGFzcz0ibGl2ZWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9mci9NYXpkYS9DWF8zMC8yMDI2LzQ4MzAxOC9XaGl0ZS9wcm9maWxlLndlYnAiIHNyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL2ZyL01hemRhL0NYXzMwLzIwMjYvNDgzMDE4L1doaXRlL3Byb2ZpbGUud2VicCIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPgoJCQkJPC9hPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyRm9vdGVyQ29udGFpbmVyIHN0YWNrLWxjIC0tcy05Ij4KCQkJCQk8ZGl2IGNsYXNzPSJjYXJQYXltZW50V3JhcHBlciI+CgkJCTxkaXYgY2xhc3M9ImNvbnRlbnQtc2tlbGV0b24gaHRtbC1ibG9jayIgZGF0YS1ibG9jaz0icGF5bWVudEJsb2NrIiBkYXRhLXR5cGU9ImJsb2NrIiBkYXRhLXNvdXJjZT0ic2VydmVyIiBkYXRhLWNhbGxiYWNrPSJwYXltZW50Q2FsY0Jsb2NrIj4KCQkKCTxpbnB1dCBuYW1lPSJibG9jay1kYXRhIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSJ7JnF1b3Q7c3R5bGVpZCZxdW90OzomcXVvdDs0ODMwMTUmcXVvdDssJnF1b3Q7dGl0bGUmcXVvdDs6JnF1b3Q7TWF6ZGEgQ1gtMzAgMjAyNiZxdW90OywmcXVvdDtocmVmJnF1b3Q7OiZxdW90O1wvbmV1ZnNcL01hemRhLUNYXzMwLTIwMjYuaHRtbCZxdW90OywmcXVvdDtsaW5rc3R5bGUmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O2xpbmtjbGFzcyZxdW90OzomcXVvdDsmcXVvdDssJnF1b3Q7Y29udGFpbmVyY2xhc3MmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O3Byb21vdGV4dCZxdW90OzomcXVvdDtEXHUwMGU5Y291dnJleiBsJ29mZnJlISZxdW90O30iPgoJPC9kaXY+Cgk8L2Rpdj4KCQkJCQoJCQk8L2Rpdj4KCQk8L2Rpdj4KCTwvZGl2Pgk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVPdXRlckJveCAgIiBpZD0iZmJ4X3N1dl8yIj4KCQkKCQk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVJbm5lckJveCIgaWQ9IiI+CgkJCQoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJUaXRsZUNvbnRhaW5lciI+CgkJCQk8YSB0aXRsZT0iTWF6ZGEgQ1gtMzAgMjAyNSIgaHJlZj0iP3BhdGg9L25ldWZzL01hemRhLUNYXzMwLTIwMjUuaHRtbCIgZGF0YS1tYWtlPSJNYXpkYSIgZGF0YS1tb2RlbD0iQ1gtMzAgMjAyNSI+CgkJCQkJPGgzPgoJCQkJCQk8c3BhbiBjbGFzcz0ic3BhbkNhck1ha2UgIj5NYXpkYTwvc3Bhbj48YnI+CgkJCQkJCTxzcGFuIGNsYXNzPSJtb2RlbE5hbWUgc3Bhbk1vZGVsTmFtZSI+Q1gtMzAgMjAyNTwvc3Bhbj4KCQkJCQk8L2gzPgoJCQkJPC9hPgoJCQkJICAgIDwhLS0gT1BFTiBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgogICAgPGRpdiBjbGFzcz0iZGl2TmV3Q2FyU3RhcnRQcmljZSI+CiAgICAgICAgw6AgcGFydGlyIGRlCiAgICAgICAgPHNwYW4gY2xhc3M9IiI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjMyIDM5MDwvc3Bhbj48L3NwYW4+CiAgICAgICAgPGkgc3R5bGU9ImNvbG9yOiMwMDA7Zm9udC1zaXplOjIwcHg7IiBjbGFzcz0iY2FyUHJpY2VJbml0aWFsVG9vbFRpcEljb24gZmFsIGZhLWluZm8tY2lyY2xlIGJsYWNrQ29sb3JCb2xkIiBkYXRhLXRvb2x0aXA9JyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7UERTRjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MjkgMzAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VHJhbnNwb3J0ICZhbXA7IFByw6lwYXJhdGlvbjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MiAxOTUmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtGcmFpcyBhZG1pbi4mbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7Nzk1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VGF4ZSBBQzombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MTAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VG90YWwmbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MzIgMzkwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0Oyc+PC9pPgogICAgPC9kaXY+CiAgICA8IS0tIENMT1NFIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+PCEtLSBPUEVOIE5FVyBDQVIgUFJPTU8gUFJJQ0UgKDI3NCktLT48ZGl2IGNsYXNzPSJkaXZOZXdDYXJQcm9tb1ByaWNlIj5lbiByYWJhaXMgw6AgPHNwYW4gY2xhc3M9IiIgc3R5bGU9ImNvbG9yOiAjOTEwYTJkOyI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjI5IDM5MDwvc3Bhbj48L3NwYW4+PC9kaXY+PCEtLSBDTE9TRSBORVcgQ0FSIFBST01PIFBSSUNFICgyODEpLS0+CgkJCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW5TdG9ja0xpbmsiIGhpZGRlbj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgZGF0YS10eXBlPSJpbnZkYXRhIiBkYXRhLW1ha2U9Ik1hemRhIiBkYXRhLW1vZGVsPSJDWC0zMCIgZGF0YS15ZWFyPSIyMDI1IiBkYXRhLXN0eWxlaWRzPSI0NjMwNTMsNDYzMDU0LDQ2MzA1NSw0NjMwNTYsNDYzMDU3IiBkYXRhLWh5YnJpZD0iMCI+Cgk8L2Rpdj4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckltYWdlQ29udGFpbmVyIGZsZXgtY2VudGVyIGFsaWduLWNlbnRlciAiPgoJCQkJPGEgdGl0bGU9Ik1hemRhIENYLTMwIDIwMjUiIGhyZWY9Ij9wYXRoPS9uZXVmcy9NYXpkYS1DWF8zMC0yMDI1Lmh0bWwiPgoJCQkJCTxpbWcgYWx0PSJNYXpkYSBDWC0zMCAyMDI1IiBib3JkZXI9IjAiIGNsYXNzPSJsaXZlbG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL2ZyL01hemRhL0NYXzMwLzIwMjUvNDYzMDU3L0dyYXkvcHJvZmlsZS53ZWJwIiBzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9mci9NYXpkYS9DWF8zMC8yMDI1LzQ2MzA1Ny9HcmF5L3Byb2ZpbGUud2VicCIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPgoJCQkJPC9hPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyRm9vdGVyQ29udGFpbmVyIHN0YWNrLWxjIC0tcy05Ij4KCQkJCQk8ZGl2IGNsYXNzPSJjYXJQYXltZW50V3JhcHBlciI+CgkJCTxkaXYgY2xhc3M9ImNvbnRlbnQtc2tlbGV0b24gaHRtbC1ibG9jayIgZGF0YS1ibG9jaz0icGF5bWVudEJsb2NrIiBkYXRhLXR5cGU9ImJsb2NrIiBkYXRhLXNvdXJjZT0ic2VydmVyIiBkYXRhLWNhbGxiYWNrPSJwYXltZW50Q2FsY0Jsb2NrIj4KCQkKCTxpbnB1dCBuYW1lPSJibG9jay1kYXRhIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSJ7JnF1b3Q7c3R5bGVpZCZxdW90OzomcXVvdDs0NjMwNTMmcXVvdDssJnF1b3Q7dGl0bGUmcXVvdDs6JnF1b3Q7TWF6ZGEgQ1gtMzAgMjAyNSZxdW90OywmcXVvdDtocmVmJnF1b3Q7OiZxdW90O1wvbmV1ZnNcL01hemRhLUNYXzMwLTIwMjUuaHRtbCZxdW90OywmcXVvdDtsaW5rc3R5bGUmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O2xpbmtjbGFzcyZxdW90OzomcXVvdDsmcXVvdDssJnF1b3Q7Y29udGFpbmVyY2xhc3MmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O3Byb21vdGV4dCZxdW90OzomcXVvdDtEXHUwMGU5Y291dnJleiBsJ29mZnJlISZxdW90O30iPgoJPC9kaXY+Cgk8L2Rpdj4KCQkJCQoJCQk8L2Rpdj4KCQk8L2Rpdj4KCTwvZGl2Pgk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVPdXRlckJveCAgIiBpZD0iZmJ4X3N1dl8zIj4KCQkKCQk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVJbm5lckJveCIgaWQ9IiI+CgkJCQoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJUaXRsZUNvbnRhaW5lciI+CgkJCQk8YSB0aXRsZT0iTWF6ZGEgQ1gtNSAyMDI2IiBocmVmPSI\/cGF0aD0vbmV1ZnMvTWF6ZGEtQ1hfNS0yMDI2Lmh0bWwiIGRhdGEtbWFrZT0iTWF6ZGEiIGRhdGEtbW9kZWw9IkNYLTUgMjAyNiI+CgkJCQkJPGgzPgoJCQkJCQk8c3BhbiBjbGFzcz0ic3BhbkNhck1ha2UgIj5NYXpkYTwvc3Bhbj48YnI+CgkJCQkJCTxzcGFuIGNsYXNzPSJtb2RlbE5hbWUgc3Bhbk1vZGVsTmFtZSI+Q1gtNSAyMDI2PC9zcGFuPgoJCQkJCTwvaDM+CgkJCQk8L2E+CgkJCQkgICAgPCEtLSBPUEVOIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CiAgICA8ZGl2IGNsYXNzPSJkaXZOZXdDYXJTdGFydFByaWNlIj4KICAgICAgICDDoCBwYXJ0aXIgZGUKICAgICAgICA8c3BhbiBjbGFzcz0iIj4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+MzkgMzkwPC9zcGFuPjwvc3Bhbj4KICAgICAgICA8aSBzdHlsZT0iY29sb3I6IzAwMDtmb250LXNpemU6MjBweDsiIGNsYXNzPSJjYXJQcmljZUluaXRpYWxUb29sVGlwSWNvbiBmYWwgZmEtaW5mby1jaXJjbGUgYmxhY2tDb2xvckJvbGQiIGRhdGEtdG9vbHRpcD0nJmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtQRFNGOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDszNiAzMDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUcmFuc3BvcnQgJmFtcDsgUHLDqXBhcmF0aW9uOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsyIDE5NSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O0ZyYWlzIGFkbWluLiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDs3OTUmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUYXhlIEFDOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsxMDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUb3RhbCZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDszOSAzOTAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jz48L2k+CiAgICA8L2Rpdj4KICAgIDwhLS0gQ0xPU0UgTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KCQkJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJblN0b2NrTGluayIgaGlkZGVuPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBkYXRhLXR5cGU9ImludmRhdGEiIGRhdGEtbWFrZT0iTWF6ZGEiIGRhdGEtbW9kZWw9IkNYLTUiIGRhdGEteWVhcj0iMjAyNiIgZGF0YS1zdHlsZWlkcz0iNDgzMjgyLDQ4MzI4Myw0ODMyODQiIGRhdGEtaHlicmlkPSIwIj4KCTwvZGl2PgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW1hZ2VDb250YWluZXIgZmxleC1jZW50ZXIgYWxpZ24tY2VudGVyICI+CgkJCQk8YSB0aXRsZT0iTWF6ZGEgQ1gtNSAyMDI2IiBocmVmPSI\/cGF0aD0vbmV1ZnMvTWF6ZGEtQ1hfNS0yMDI2Lmh0bWwiPgoJCQkJCTxpbWcgYWx0PSJNYXpkYSBDWC01IDIwMjYiIGJvcmRlcj0iMCIgY2xhc3M9ImxpdmVsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvZnIvTWF6ZGEvQ1hfNS8yMDI2LzQ4MzI4NC9XaGl0ZS9wcm9maWxlLndlYnAiIHNyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL2ZyL01hemRhL0NYXzUvMjAyNi80ODMyODQvV2hpdGUvcHJvZmlsZS53ZWJwIiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+CgkJCQk8L2E+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJGb290ZXJDb250YWluZXIgc3RhY2stbGMgLS1zLTkiPgoJCQkJCTxkaXYgY2xhc3M9ImNhclBheW1lbnRXcmFwcGVyIj4KCQkJPGRpdiBjbGFzcz0iY29udGVudC1za2VsZXRvbiBodG1sLWJsb2NrIiBkYXRhLWJsb2NrPSJwYXltZW50QmxvY2siIGRhdGEtdHlwZT0iYmxvY2siIGRhdGEtc291cmNlPSJzZXJ2ZXIiIGRhdGEtY2FsbGJhY2s9InBheW1lbnRDYWxjQmxvY2siPgoJCQoJPGlucHV0IG5hbWU9ImJsb2NrLWRhdGEiIHR5cGU9ImhpZGRlbiIgdmFsdWU9InsmcXVvdDtzdHlsZWlkJnF1b3Q7OiZxdW90OzQ4MzI4MiZxdW90OywmcXVvdDt0aXRsZSZxdW90OzomcXVvdDtNYXpkYSBDWC01IDIwMjYmcXVvdDssJnF1b3Q7aHJlZiZxdW90OzomcXVvdDtcL25ldWZzXC9NYXpkYS1DWF81LTIwMjYuaHRtbCZxdW90OywmcXVvdDtsaW5rc3R5bGUmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O2xpbmtjbGFzcyZxdW90OzomcXVvdDsmcXVvdDssJnF1b3Q7Y29udGFpbmVyY2xhc3MmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O3Byb21vdGV4dCZxdW90OzomcXVvdDtEXHUwMGU5Y291dnJleiBsJ29mZnJlISZxdW90O30iPgoJPC9kaXY+Cgk8L2Rpdj4KCQkJCQoJCQk8L2Rpdj4KCQk8L2Rpdj4KCTwvZGl2Pgk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVPdXRlckJveCAgIiBpZD0iZmJ4X3N1dl80Ij4KCQkKCQk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVJbm5lckJveCIgaWQ9IiI+CgkJCQoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJUaXRsZUNvbnRhaW5lciI+CgkJCQk8YSB0aXRsZT0iTWF6ZGEgQ1gtNSAyMDI1IiBocmVmPSI\/cGF0aD0vbmV1ZnMvTWF6ZGEtQ1hfNS0yMDI1Lmh0bWwiIGRhdGEtbWFrZT0iTWF6ZGEiIGRhdGEtbW9kZWw9IkNYLTUgMjAyNSI+CgkJCQkJPGgzPgoJCQkJCQk8c3BhbiBjbGFzcz0ic3BhbkNhck1ha2UgIj5NYXpkYTwvc3Bhbj48YnI+CgkJCQkJCTxzcGFuIGNsYXNzPSJtb2RlbE5hbWUgc3Bhbk1vZGVsTmFtZSI+Q1gtNSAyMDI1PC9zcGFuPgoJCQkJCTwvaDM+CgkJCQk8L2E+CgkJCQkgICAgPCEtLSBPUEVOIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CiAgICA8ZGl2IGNsYXNzPSJkaXZOZXdDYXJTdGFydFByaWNlIj4KICAgICAgICDDoCBwYXJ0aXIgZGUKICAgICAgICA8c3BhbiBjbGFzcz0iIj4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+MzUgOTkwPC9zcGFuPjwvc3Bhbj4KICAgICAgICA8aSBzdHlsZT0iY29sb3I6IzAwMDtmb250LXNpemU6MjBweDsiIGNsYXNzPSJjYXJQcmljZUluaXRpYWxUb29sVGlwSWNvbiBmYWwgZmEtaW5mby1jaXJjbGUgYmxhY2tDb2xvckJvbGQiIGRhdGEtdG9vbHRpcD0nJmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtQRFNGOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDszMiA5MDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUcmFuc3BvcnQgJmFtcDsgUHLDqXBhcmF0aW9uOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsyIDE5NSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O0ZyYWlzIGFkbWluLiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDs3OTUmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUYXhlIEFDOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsxMDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUb3RhbCZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDszNSA5OTAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jz48L2k+CiAgICA8L2Rpdj4KICAgIDwhLS0gQ0xPU0UgTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT48IS0tIE9QRU4gTkVXIENBUiBQUk9NTyBQUklDRSAoMjc0KS0tPjxkaXYgY2xhc3M9ImRpdk5ld0NhclByb21vUHJpY2UiPmVuIHJhYmFpcyDDoCA8c3BhbiBjbGFzcz0iIiBzdHlsZT0iY29sb3I6ICM5MTBhMmQ7Ij4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+MzMgMjQwPC9zcGFuPjwvc3Bhbj48L2Rpdj48IS0tIENMT1NFIE5FVyBDQVIgUFJPTU8gUFJJQ0UgKDI4MSktLT4KCQkJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJblN0b2NrTGluayIgaGlkZGVuPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBkYXRhLXR5cGU9ImludmRhdGEiIGRhdGEtbWFrZT0iTWF6ZGEiIGRhdGEtbW9kZWw9IkNYLTUiIGRhdGEteWVhcj0iMjAyNSIgZGF0YS1zdHlsZWlkcz0iNDYxNjg4LDQ2MTY4OSw0NjE2OTAsNDYxNjkxLDQ2MTY5Miw0NjE2OTMsNDYxNjk0IiBkYXRhLWh5YnJpZD0iMCI+Cgk8L2Rpdj4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckltYWdlQ29udGFpbmVyIGZsZXgtY2VudGVyIGFsaWduLWNlbnRlciAiPgoJCQkJPGEgdGl0bGU9Ik1hemRhIENYLTUgMjAyNSIgaHJlZj0iP3BhdGg9L25ldWZzL01hemRhLUNYXzUtMjAyNS5odG1sIj4KCQkJCQk8aW1nIGFsdD0iTWF6ZGEgQ1gtNSAyMDI1IiBib3JkZXI9IjAiIGNsYXNzPSJsaXZlbG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL2ZyL01hemRhL0NYXzUvMjAyNS80NjE2OTQvUmVkL3Byb2ZpbGUud2VicCIgc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvZnIvTWF6ZGEvQ1hfNS8yMDI1LzQ2MTY5NC9SZWQvcHJvZmlsZS53ZWJwIiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+CgkJCQk8L2E+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJGb290ZXJDb250YWluZXIgc3RhY2stbGMgLS1zLTkiPgoJCQkJCTxkaXYgY2xhc3M9ImNhclBheW1lbnRXcmFwcGVyIj4KCQkJPGRpdiBjbGFzcz0iY29udGVudC1za2VsZXRvbiBodG1sLWJsb2NrIiBkYXRhLWJsb2NrPSJwYXltZW50QmxvY2siIGRhdGEtdHlwZT0iYmxvY2siIGRhdGEtc291cmNlPSJzZXJ2ZXIiIGRhdGEtY2FsbGJhY2s9InBheW1lbnRDYWxjQmxvY2siPgoJCQoJPGlucHV0IG5hbWU9ImJsb2NrLWRhdGEiIHR5cGU9ImhpZGRlbiIgdmFsdWU9InsmcXVvdDtzdHlsZWlkJnF1b3Q7OiZxdW90OzQ2MTY4OCZxdW90OywmcXVvdDt0aXRsZSZxdW90OzomcXVvdDtNYXpkYSBDWC01IDIwMjUmcXVvdDssJnF1b3Q7aHJlZiZxdW90OzomcXVvdDtcL25ldWZzXC9NYXpkYS1DWF81LTIwMjUuaHRtbCZxdW90OywmcXVvdDtsaW5rc3R5bGUmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O2xpbmtjbGFzcyZxdW90OzomcXVvdDsmcXVvdDssJnF1b3Q7Y29udGFpbmVyY2xhc3MmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O3Byb21vdGV4dCZxdW90OzomcXVvdDtEXHUwMGU5Y291dnJleiBsJ29mZnJlISZxdW90O30iPgoJPC9kaXY+Cgk8L2Rpdj4KCQkJCQoJCQk8L2Rpdj4KCQk8L2Rpdj4KCTwvZGl2Pgk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVPdXRlckJveCAgIiBpZD0iZmJ4X3N1dl81Ij4KCQkKCQk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVJbm5lckJveCIgaWQ9IiI+CgkJCQoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJUaXRsZUNvbnRhaW5lciI+CgkJCQk8YSB0aXRsZT0iTWF6ZGEgQ1gtNTAgMjAyNSIgaHJlZj0iP3BhdGg9L25ldWZzL01hemRhLUNYXzUwLTIwMjUuaHRtbCIgZGF0YS1tYWtlPSJNYXpkYSIgZGF0YS1tb2RlbD0iQ1gtNTAgMjAyNSI+CgkJCQkJPGgzPgoJCQkJCQk8c3BhbiBjbGFzcz0ic3BhbkNhck1ha2UgIj5NYXpkYTwvc3Bhbj48YnI+CgkJCQkJCTxzcGFuIGNsYXNzPSJtb2RlbE5hbWUgc3Bhbk1vZGVsTmFtZSI+Q1gtNTAgMjAyNTwvc3Bhbj4KCQkJCQk8L2gzPgoJCQkJPC9hPgoJCQkJICAgIDwhLS0gT1BFTiBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgogICAgPGRpdiBjbGFzcz0iZGl2TmV3Q2FyU3RhcnRQcmljZSI+CiAgICAgICAgw6AgcGFydGlyIGRlCiAgICAgICAgPHNwYW4gY2xhc3M9IiI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjQzIDA0MDwvc3Bhbj48L3NwYW4+CiAgICAgICAgPGkgc3R5bGU9ImNvbG9yOiMwMDA7Zm9udC1zaXplOjIwcHg7IiBjbGFzcz0iY2FyUHJpY2VJbml0aWFsVG9vbFRpcEljb24gZmFsIGZhLWluZm8tY2lyY2xlIGJsYWNrQ29sb3JCb2xkIiBkYXRhLXRvb2x0aXA9JyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7UERTRjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MzkgOTUwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VHJhbnNwb3J0ICZhbXA7IFByw6lwYXJhdGlvbjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MiAxOTUmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtGcmFpcyBhZG1pbi4mbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7Nzk1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VGF4ZSBBQzombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MTAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VG90YWwmbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7NDMgMDQwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0Oyc+PC9pPgogICAgPC9kaXY+CiAgICA8IS0tIENMT1NFIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CgkJCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW5TdG9ja0xpbmsiIGhpZGRlbj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgZGF0YS10eXBlPSJpbnZkYXRhIiBkYXRhLW1ha2U9Ik1hemRhIiBkYXRhLW1vZGVsPSJDWC01MCIgZGF0YS15ZWFyPSIyMDI1IiBkYXRhLXN0eWxlaWRzPSI0NjE5OTYsNDYxOTk3LDQ2MTk5OCw0NjE5OTkiIGRhdGEtaHlicmlkPSIwIj4KCTwvZGl2PgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW1hZ2VDb250YWluZXIgZmxleC1jZW50ZXIgYWxpZ24tY2VudGVyICI+CgkJCQk8YSB0aXRsZT0iTWF6ZGEgQ1gtNTAgMjAyNSIgaHJlZj0iP3BhdGg9L25ldWZzL01hemRhLUNYXzUwLTIwMjUuaHRtbCI+CgkJCQkJPGltZyBhbHQ9Ik1hemRhIENYLTUwIDIwMjUiIGJvcmRlcj0iMCIgY2xhc3M9ImxpdmVsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvZnIvTWF6ZGEvQ1hfNTAvMjAyNS80NjE5OTkvVGFuL3Byb2ZpbGUud2VicCIgc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvZnIvTWF6ZGEvQ1hfNTAvMjAyNS80NjE5OTkvVGFuL3Byb2ZpbGUud2VicCIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPgoJCQkJPC9hPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyRm9vdGVyQ29udGFpbmVyIHN0YWNrLWxjIC0tcy05Ij4KCQkJCQk8ZGl2IGNsYXNzPSJjYXJQYXltZW50V3JhcHBlciI+CgkJCTxkaXYgY2xhc3M9ImNvbnRlbnQtc2tlbGV0b24gaHRtbC1ibG9jayIgZGF0YS1ibG9jaz0icGF5bWVudEJsb2NrIiBkYXRhLXR5cGU9ImJsb2NrIiBkYXRhLXNvdXJjZT0ic2VydmVyIiBkYXRhLWNhbGxiYWNrPSJwYXltZW50Q2FsY0Jsb2NrIj4KCQkKCTxpbnB1dCBuYW1lPSJibG9jay1kYXRhIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSJ7JnF1b3Q7c3R5bGVpZCZxdW90OzomcXVvdDs0NjE5OTYmcXVvdDssJnF1b3Q7dGl0bGUmcXVvdDs6JnF1b3Q7TWF6ZGEgQ1gtNTAgMjAyNSZxdW90OywmcXVvdDtocmVmJnF1b3Q7OiZxdW90O1wvbmV1ZnNcL01hemRhLUNYXzUwLTIwMjUuaHRtbCZxdW90OywmcXVvdDtsaW5rc3R5bGUmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O2xpbmtjbGFzcyZxdW90OzomcXVvdDsmcXVvdDssJnF1b3Q7Y29udGFpbmVyY2xhc3MmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O3Byb21vdGV4dCZxdW90OzomcXVvdDtEXHUwMGU5Y291dnJleiBsJ29mZnJlISZxdW90O30iPgoJPC9kaXY+Cgk8L2Rpdj4KCQkJCQoJCQk8L2Rpdj4KCQk8L2Rpdj4KCTwvZGl2PjwvZGl2PjwvZGl2PjwhLS0gQ0xPU0UgQ0FURUdPUllCT1hXUkFQUEVSICgyMDYwKS0tPjwhLS0gT1BFTiBDQVRFR09SWUJPWFdSQVBQRVIgKDIwNTIpIC0tPjxkaXYgaWQ9ImNsYXNzaHlicmlkX2NvbnRhaW5lciIgY2xhc3M9ImRpdlNwYW4gZGl2U3BhbjEyIGRpdkNhdGVnb3J5Qm94V3JhcHBlciIgc3RhdGU9Im9wZW4iIG5idmlzaWJsZT0iMSI+PGgyIGNsYXNzPSJkZWZhdWx0IGljb24taGVhZGluZyBmbGV4LWJveCBhbGlnbi1jZW50ZXIiPgoJPHNwYW4gY2xhc3M9ImZhIGZhLWNoZXZyb24tcmlnaHQiIGFyaWEtaGlkZGVuPSJ0cnVlIj48L3NwYW4+Cgk8Ym94LWxjIGNsYXNzPSItcHYwIj4KCQk8ZGl2IGNsYXNzPSJtYWluVGV4dCAtYm9sZCI+SHlicmlkZXMgKEh5YnJpZGUgbMOpZ2VyKSBuZXV2ZXMgTWF6ZGEgMjAyNSAmYW1wOyAyMDI2PC9kaXY+CgkJPGRpdiBjbGFzcz0ic2Vjb25kYXJ5VGV4dCI+w6AgU3QtR2VvcmdlczwvZGl2PgoJPC9ib3gtbGM+CjwvaDI+PGRpdiBjbGFzcz0iZGl2U3BhbiBkaXZTcGFuMTIgZGl2Q2Fyc0JveFdyYXBwZXIgQ0xBU1NfaHlicmlkIj4JPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggICIgaWQ9ImZieF9oeWJyaWRfMSI+CgkJCgkJPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlSW5uZXJCb3giIGlkPSIiPgoJCQkKCQkJPGRpdiBjbGFzcz0iZGl2Q2FyVGl0bGVDb250YWluZXIiPgoJCQkJPGEgdGl0bGU9Ik1hemRhIENYLTUwIEh5YnJpZCAyMDI1IiBocmVmPSI\/cGF0aD0vbmV1ZnMvTWF6ZGEtQ1hfNTBfSHlicmlkLTIwMjUuaHRtbCIgZGF0YS1tYWtlPSJNYXpkYSIgZGF0YS1tb2RlbD0iQ1gtNTAgaHlicmlkZSAyMDI1Ij4KCQkJCQk8aDM+CgkJCQkJCTxzcGFuIGNsYXNzPSJzcGFuQ2FyTWFrZSAiPk1hemRhPC9zcGFuPjxicj4KCQkJCQkJPHNwYW4gY2xhc3M9Im1vZGVsTmFtZSBzcGFuTW9kZWxOYW1lIj5DWC01MCBIeWJyaWQgMjAyNTwvc3Bhbj4KCQkJCQk8L2gzPgoJCQkJPC9hPgoJCQkJICAgIDwhLS0gT1BFTiBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgogICAgPGRpdiBjbGFzcz0iZGl2TmV3Q2FyU3RhcnRQcmljZSI+CiAgICAgICAgw6AgcGFydGlyIGRlCiAgICAgICAgPHNwYW4gY2xhc3M9IiI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjQ2IDA0MDwvc3Bhbj48L3NwYW4+CiAgICAgICAgPGkgc3R5bGU9ImNvbG9yOiMwMDA7Zm9udC1zaXplOjIwcHg7IiBjbGFzcz0iY2FyUHJpY2VJbml0aWFsVG9vbFRpcEljb24gZmFsIGZhLWluZm8tY2lyY2xlIGJsYWNrQ29sb3JCb2xkIiBkYXRhLXRvb2x0aXA9JyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7UERTRjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7NDIgOTUwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VHJhbnNwb3J0ICZhbXA7IFByw6lwYXJhdGlvbjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MiAxOTUmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtGcmFpcyBhZG1pbi4mbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7Nzk1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VGF4ZSBBQzombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MTAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VG90YWwmbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7NDYgMDQwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0Oyc+PC9pPgogICAgPC9kaXY+CiAgICA8IS0tIENMT1NFIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CgkJCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW5TdG9ja0xpbmsiIGhpZGRlbj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgZGF0YS10eXBlPSJpbnZkYXRhIiBkYXRhLW1ha2U9Ik1hemRhIiBkYXRhLW1vZGVsPSJDWC01MCBIeWJyaWQiIGRhdGEteWVhcj0iMjAyNSIgZGF0YS1zdHlsZWlkcz0iNDYyMzg4LDQ2MjM4OSw0NjIzOTAiIGRhdGEtaHlicmlkPSIxIj4KCTwvZGl2PgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW1hZ2VDb250YWluZXIgZmxleC1jZW50ZXIgYWxpZ24tY2VudGVyICI+CgkJCQk8YSB0aXRsZT0iTWF6ZGEgQ1gtNTAgSHlicmlkIDIwMjUiIGhyZWY9Ij9wYXRoPS9uZXVmcy9NYXpkYS1DWF81MF9IeWJyaWQtMjAyNS5odG1sIj4KCQkJCQk8aW1nIGFsdD0iTWF6ZGEgQ1gtNTAgSHlicmlkIDIwMjUiIGJvcmRlcj0iMCIgY2xhc3M9ImxpdmVsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvZnIvTWF6ZGEvQ1hfNTBfSHlicmlkLzIwMjUvNDYyMzkwL1doaXRlL3Byb2ZpbGUud2VicCIgc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvZnIvTWF6ZGEvQ1hfNTBfSHlicmlkLzIwMjUvNDYyMzkwL1doaXRlL3Byb2ZpbGUud2VicCIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPgoJCQkJPC9hPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyRm9vdGVyQ29udGFpbmVyIHN0YWNrLWxjIC0tcy05Ij4KCQkJCQk8ZGl2IGNsYXNzPSJjYXJQYXltZW50V3JhcHBlciI+CgkJCTxkaXYgY2xhc3M9ImNvbnRlbnQtc2tlbGV0b24gaHRtbC1ibG9jayIgZGF0YS1ibG9jaz0icGF5bWVudEJsb2NrIiBkYXRhLXR5cGU9ImJsb2NrIiBkYXRhLXNvdXJjZT0ic2VydmVyIiBkYXRhLWNhbGxiYWNrPSJwYXltZW50Q2FsY0Jsb2NrIj4KCQkKCTxpbnB1dCBuYW1lPSJibG9jay1kYXRhIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSJ7JnF1b3Q7c3R5bGVpZCZxdW90OzomcXVvdDs0NjIzODgmcXVvdDssJnF1b3Q7dGl0bGUmcXVvdDs6JnF1b3Q7TWF6ZGEgQ1gtNTAgSHlicmlkIDIwMjUmcXVvdDssJnF1b3Q7aHJlZiZxdW90OzomcXVvdDtcL25ldWZzXC9NYXpkYS1DWF81MF9IeWJyaWQtMjAyNS5odG1sJnF1b3Q7LCZxdW90O2xpbmtzdHlsZSZxdW90OzomcXVvdDsmcXVvdDssJnF1b3Q7bGlua2NsYXNzJnF1b3Q7OiZxdW90OyZxdW90OywmcXVvdDtjb250YWluZXJjbGFzcyZxdW90OzomcXVvdDsmcXVvdDssJnF1b3Q7cHJvbW90ZXh0JnF1b3Q7OiZxdW90O0RcdTAwZTljb3V2cmV6IGwnb2ZmcmUhJnF1b3Q7fSI+Cgk8L2Rpdj4KCTwvZGl2PgoJCQkJCgkJCTwvZGl2PgoJCTwvZGl2PgoJPC9kaXY+CTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZU91dGVyQm94ICAiIGlkPSJmYnhfaHlicmlkXzIiPgoJCQoJCTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZUlubmVyQm94IiBpZD0iIj4KCQkJCgkJCTxkaXYgY2xhc3M9ImRpdkNhclRpdGxlQ29udGFpbmVyIj4KCQkJCTxhIHRpdGxlPSJNYXpkYSBDWC03MCBNSEVWIDIwMjYiIGhyZWY9Ij9wYXRoPS9uZXVmcy9NYXpkYS1DWF83MF9NSEVWLTIwMjYuaHRtbCIgZGF0YS1tYWtlPSJNYXpkYSIgZGF0YS1tb2RlbD0iQ1gtNzAgaHlicmlkZSBsw6lnZXIgMjAyNiI+CgkJCQkJPGgzPgoJCQkJCQk8c3BhbiBjbGFzcz0ic3BhbkNhck1ha2UgIj5NYXpkYTwvc3Bhbj48YnI+CgkJCQkJCTxzcGFuIGNsYXNzPSJtb2RlbE5hbWUgc3Bhbk1vZGVsTmFtZSI+Q1gtNzAgTUhFViAyMDI2PC9zcGFuPgoJCQkJCTwvaDM+CgkJCQk8L2E+CgkJCQkgICAgPCEtLSBPUEVOIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CiAgICA8ZGl2IGNsYXNzPSJkaXZOZXdDYXJTdGFydFByaWNlIj4KICAgICAgICDDoCBwYXJ0aXIgZGUKICAgICAgICA8c3BhbiBjbGFzcz0iIj4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+NTIgODQwPC9zcGFuPjwvc3Bhbj4KICAgICAgICA8aSBzdHlsZT0iY29sb3I6IzAwMDtmb250LXNpemU6MjBweDsiIGNsYXNzPSJjYXJQcmljZUluaXRpYWxUb29sVGlwSWNvbiBmYWwgZmEtaW5mby1jaXJjbGUgYmxhY2tDb2xvckJvbGQiIGRhdGEtdG9vbHRpcD0nJmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtQRFNGOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDs0OSA3NTAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUcmFuc3BvcnQgJmFtcDsgUHLDqXBhcmF0aW9uOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsyIDE5NSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O0ZyYWlzIGFkbWluLiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDs3OTUmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUYXhlIEFDOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsxMDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUb3RhbCZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDs1MiA4NDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jz48L2k+CiAgICA8L2Rpdj4KICAgIDwhLS0gQ0xPU0UgTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KCQkJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJblN0b2NrTGluayIgaGlkZGVuPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBkYXRhLXR5cGU9ImludmRhdGEiIGRhdGEtbWFrZT0iTWF6ZGEiIGRhdGEtbW9kZWw9IkNYLTcwIE1IRVYiIGRhdGEteWVhcj0iMjAyNiIgZGF0YS1zdHlsZWlkcz0iNDgzMDc1LDQ4MzA3Niw0ODMwNzcsNDgzMDc4IiBkYXRhLWh5YnJpZD0iMCI+Cgk8L2Rpdj4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckltYWdlQ29udGFpbmVyIGZsZXgtY2VudGVyIGFsaWduLWNlbnRlciAiPgoJCQkJPGEgdGl0bGU9Ik1hemRhIENYLTcwIE1IRVYgMjAyNiIgaHJlZj0iP3BhdGg9L25ldWZzL01hemRhLUNYXzcwX01IRVYtMjAyNi5odG1sIj4KCQkJCQk8aW1nIGFsdD0iTWF6ZGEgQ1gtNzAgTUhFViAyMDI2IiBib3JkZXI9IjAiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL2ZyL01hemRhL0NYXzcwX01IRVYvMjAyNi80ODMwNzgvV2hpdGUvcHJvZmlsZS53ZWJwIiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+CgkJCQk8L2E+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJGb290ZXJDb250YWluZXIgc3RhY2stbGMgLS1zLTkiPgoJCQkJCTxkaXYgY2xhc3M9ImNhclBheW1lbnRXcmFwcGVyIj4KCQkJPGRpdiBjbGFzcz0iY29udGVudC1za2VsZXRvbiBodG1sLWJsb2NrIiBkYXRhLWJsb2NrPSJwYXltZW50QmxvY2siIGRhdGEtdHlwZT0iYmxvY2siIGRhdGEtc291cmNlPSJzZXJ2ZXIiIGRhdGEtY2FsbGJhY2s9InBheW1lbnRDYWxjQmxvY2siPgoJCQoJPGlucHV0IG5hbWU9ImJsb2NrLWRhdGEiIHR5cGU9ImhpZGRlbiIgdmFsdWU9InsmcXVvdDtzdHlsZWlkJnF1b3Q7OiZxdW90OzQ4MzA3NSZxdW90OywmcXVvdDt0aXRsZSZxdW90OzomcXVvdDtNYXpkYSBDWC03MCBNSEVWIDIwMjYmcXVvdDssJnF1b3Q7aHJlZiZxdW90OzomcXVvdDtcL25ldWZzXC9NYXpkYS1DWF83MF9NSEVWLTIwMjYuaHRtbCZxdW90OywmcXVvdDtsaW5rc3R5bGUmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O2xpbmtjbGFzcyZxdW90OzomcXVvdDsmcXVvdDssJnF1b3Q7Y29udGFpbmVyY2xhc3MmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O3Byb21vdGV4dCZxdW90OzomcXVvdDtEXHUwMGU5Y291dnJleiBsJ29mZnJlISZxdW90O30iPgoJPC9kaXY+Cgk8L2Rpdj4KCQkJCQoJCQk8L2Rpdj4KCQk8L2Rpdj4KCTwvZGl2Pgk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVPdXRlckJveCAgIiBpZD0iZmJ4X2h5YnJpZF8zIj4KCQkKCQk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVJbm5lckJveCIgaWQ9IiI+CgkJCQoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJUaXRsZUNvbnRhaW5lciI+CgkJCQk8YSB0aXRsZT0iTWF6ZGEgQ1gtNzAgTUhFViAyMDI1IiBocmVmPSI\/cGF0aD0vbmV1ZnMvTWF6ZGEtQ1hfNzBfTUhFVi0yMDI1Lmh0bWwiIGRhdGEtbWFrZT0iTWF6ZGEiIGRhdGEtbW9kZWw9IkNYLTcwIGh5YnJpZGUgbMOpZ2VyIDIwMjUiPgoJCQkJCTxoMz4KCQkJCQkJPHNwYW4gY2xhc3M9InNwYW5DYXJNYWtlICI+TWF6ZGE8L3NwYW4+PGJyPgoJCQkJCQk8c3BhbiBjbGFzcz0ibW9kZWxOYW1lIHNwYW5Nb2RlbE5hbWUiPkNYLTcwIE1IRVYgMjAyNTwvc3Bhbj4KCQkJCQk8L2gzPgoJCQkJPC9hPgoJCQkJICAgIDwhLS0gT1BFTiBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgogICAgPGRpdiBjbGFzcz0iZGl2TmV3Q2FyU3RhcnRQcmljZSI+CiAgICAgICAgw6AgcGFydGlyIGRlCiAgICAgICAgPHNwYW4gY2xhc3M9IiI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjUyIDg0MDwvc3Bhbj48L3NwYW4+CiAgICAgICAgPGkgc3R5bGU9ImNvbG9yOiMwMDA7Zm9udC1zaXplOjIwcHg7IiBjbGFzcz0iY2FyUHJpY2VJbml0aWFsVG9vbFRpcEljb24gZmFsIGZhLWluZm8tY2lyY2xlIGJsYWNrQ29sb3JCb2xkIiBkYXRhLXRvb2x0aXA9JyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7UERTRjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7NDkgNzUwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VHJhbnNwb3J0ICZhbXA7IFByw6lwYXJhdGlvbjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MiAxOTUmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtGcmFpcyBhZG1pbi4mbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7Nzk1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VGF4ZSBBQzombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MTAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VG90YWwmbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7NTIgODQwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0Oyc+PC9pPgogICAgPC9kaXY+CiAgICA8IS0tIENMT1NFIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+PCEtLSBPUEVOIE5FVyBDQVIgUFJPTU8gUFJJQ0UgKDI3NCktLT48ZGl2IGNsYXNzPSJkaXZOZXdDYXJQcm9tb1ByaWNlIj5lbiByYWJhaXMgw6AgPHNwYW4gY2xhc3M9IiIgc3R5bGU9ImNvbG9yOiAjOTEwYTJkOyI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjQ5IDM0MDwvc3Bhbj48L3NwYW4+PC9kaXY+PCEtLSBDTE9TRSBORVcgQ0FSIFBST01PIFBSSUNFICgyODEpLS0+CgkJCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW5TdG9ja0xpbmsiIGhpZGRlbj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgZGF0YS10eXBlPSJpbnZkYXRhIiBkYXRhLW1ha2U9Ik1hemRhIiBkYXRhLW1vZGVsPSJDWC03MCBNSEVWIiBkYXRhLXllYXI9IjIwMjUiIGRhdGEtc3R5bGVpZHM9IjQ1MzYzNCw0NTM2MzUsNDUzNjM2LDQ1MzYzNyIgZGF0YS1oeWJyaWQ9IjAiPgoJPC9kaXY+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJbWFnZUNvbnRhaW5lciBmbGV4LWNlbnRlciBhbGlnbi1jZW50ZXIgIj4KCQkJCTxhIHRpdGxlPSJNYXpkYSBDWC03MCBNSEVWIDIwMjUiIGhyZWY9Ij9wYXRoPS9uZXVmcy9NYXpkYS1DWF83MF9NSEVWLTIwMjUuaHRtbCI+CgkJCQkJPGltZyBhbHQ9Ik1hemRhIENYLTcwIE1IRVYgMjAyNSIgYm9yZGVyPSIwIiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9mci9NYXpkYS9DWF83MF9NSEVWLzIwMjUvNDUzNjM3L0dyYXkvcHJvZmlsZS53ZWJwIiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+CgkJCQk8L2E+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJGb290ZXJDb250YWluZXIgc3RhY2stbGMgLS1zLTkiPgoJCQkJCTxkaXYgY2xhc3M9ImNhclBheW1lbnRXcmFwcGVyIj4KCQkJPGRpdiBjbGFzcz0iY29udGVudC1za2VsZXRvbiBodG1sLWJsb2NrIiBkYXRhLWJsb2NrPSJwYXltZW50QmxvY2siIGRhdGEtdHlwZT0iYmxvY2siIGRhdGEtc291cmNlPSJzZXJ2ZXIiIGRhdGEtY2FsbGJhY2s9InBheW1lbnRDYWxjQmxvY2siPgoJCQoJPGlucHV0IG5hbWU9ImJsb2NrLWRhdGEiIHR5cGU9ImhpZGRlbiIgdmFsdWU9InsmcXVvdDtzdHlsZWlkJnF1b3Q7OiZxdW90OzQ1MzYzNCZxdW90OywmcXVvdDt0aXRsZSZxdW90OzomcXVvdDtNYXpkYSBDWC03MCBNSEVWIDIwMjUmcXVvdDssJnF1b3Q7aHJlZiZxdW90OzomcXVvdDtcL25ldWZzXC9NYXpkYS1DWF83MF9NSEVWLTIwMjUuaHRtbCZxdW90OywmcXVvdDtsaW5rc3R5bGUmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O2xpbmtjbGFzcyZxdW90OzomcXVvdDsmcXVvdDssJnF1b3Q7Y29udGFpbmVyY2xhc3MmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O3Byb21vdGV4dCZxdW90OzomcXVvdDtEXHUwMGU5Y291dnJleiBsJ29mZnJlISZxdW90O30iPgoJPC9kaXY+Cgk8L2Rpdj4KCQkJCQoJCQk8L2Rpdj4KCQk8L2Rpdj4KCTwvZGl2Pgk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVPdXRlckJveCAgIiBpZD0iZmJ4X2h5YnJpZF80Ij4KCQkKCQk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVJbm5lckJveCIgaWQ9IiI+CgkJCQoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJUaXRsZUNvbnRhaW5lciI+CgkJCQk8YSB0aXRsZT0iTWF6ZGEgQ1gtOTAgTUhFViAyMDI2IiBocmVmPSI\/cGF0aD0vbmV1ZnMvTWF6ZGEtQ1hfOTBfTUhFVi0yMDI2Lmh0bWwiIGRhdGEtbWFrZT0iTWF6ZGEiIGRhdGEtbW9kZWw9IkNYLTkwIGh5YnJpZGUgbMOpZ2VyIDIwMjYiPgoJCQkJCTxoMz4KCQkJCQkJPHNwYW4gY2xhc3M9InNwYW5DYXJNYWtlICI+TWF6ZGE8L3NwYW4+PGJyPgoJCQkJCQk8c3BhbiBjbGFzcz0ibW9kZWxOYW1lIHNwYW5Nb2RlbE5hbWUiPkNYLTkwIE1IRVYgMjAyNjwvc3Bhbj4KCQkJCQk8L2gzPgoJCQkJPC9hPgoJCQkJICAgIDwhLS0gT1BFTiBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgogICAgPGRpdiBjbGFzcz0iZGl2TmV3Q2FyU3RhcnRQcmljZSI+CiAgICAgICAgw6AgcGFydGlyIGRlCiAgICAgICAgPHNwYW4gY2xhc3M9IiI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjUwIDE5MDwvc3Bhbj48L3NwYW4+CiAgICAgICAgPGkgc3R5bGU9ImNvbG9yOiMwMDA7Zm9udC1zaXplOjIwcHg7IiBjbGFzcz0iY2FyUHJpY2VJbml0aWFsVG9vbFRpcEljb24gZmFsIGZhLWluZm8tY2lyY2xlIGJsYWNrQ29sb3JCb2xkIiBkYXRhLXRvb2x0aXA9JyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7UERTRjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7NDcgMTAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VHJhbnNwb3J0ICZhbXA7IFByw6lwYXJhdGlvbjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MiAxOTUmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtGcmFpcyBhZG1pbi4mbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7Nzk1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VGF4ZSBBQzombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MTAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VG90YWwmbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7NTAgMTkwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0Oyc+PC9pPgogICAgPC9kaXY+CiAgICA8IS0tIENMT1NFIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CgkJCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW5TdG9ja0xpbmsiIGhpZGRlbj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgZGF0YS10eXBlPSJpbnZkYXRhIiBkYXRhLW1ha2U9Ik1hemRhIiBkYXRhLW1vZGVsPSJDWC05MCBNSEVWIiBkYXRhLXllYXI9IjIwMjYiIGRhdGEtc3R5bGVpZHM9IjQ4MzExNCw0ODMxMTUsNDgzMTE2LDQ4MzExNyw0ODMxMTgiIGRhdGEtaHlicmlkPSIwIj4KCTwvZGl2PgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW1hZ2VDb250YWluZXIgZmxleC1jZW50ZXIgYWxpZ24tY2VudGVyICI+CgkJCQk8YSB0aXRsZT0iTWF6ZGEgQ1gtOTAgTUhFViAyMDI2IiBocmVmPSI\/cGF0aD0vbmV1ZnMvTWF6ZGEtQ1hfOTBfTUhFVi0yMDI2Lmh0bWwiPgoJCQkJCTxpbWcgYWx0PSJNYXpkYSBDWC05MCBNSEVWIDIwMjYiIGJvcmRlcj0iMCIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvZnIvTWF6ZGEvQ1hfOTBfTUhFVi8yMDI2LzQ4MzExOC9XaGl0ZS9wcm9maWxlLndlYnAiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj4KCQkJCTwvYT4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckZvb3RlckNvbnRhaW5lciBzdGFjay1sYyAtLXMtOSI+CgkJCQkJPGRpdiBjbGFzcz0iY2FyUGF5bWVudFdyYXBwZXIiPgoJCQk8ZGl2IGNsYXNzPSJjb250ZW50LXNrZWxldG9uIGh0bWwtYmxvY2siIGRhdGEtYmxvY2s9InBheW1lbnRCbG9jayIgZGF0YS10eXBlPSJibG9jayIgZGF0YS1zb3VyY2U9InNlcnZlciIgZGF0YS1jYWxsYmFjaz0icGF5bWVudENhbGNCbG9jayI+CgkJCgk8aW5wdXQgbmFtZT0iYmxvY2stZGF0YSIgdHlwZT0iaGlkZGVuIiB2YWx1ZT0ieyZxdW90O3N0eWxlaWQmcXVvdDs6JnF1b3Q7NDgzMTE0JnF1b3Q7LCZxdW90O3RpdGxlJnF1b3Q7OiZxdW90O01hemRhIENYLTkwIE1IRVYgMjAyNiZxdW90OywmcXVvdDtocmVmJnF1b3Q7OiZxdW90O1wvbmV1ZnNcL01hemRhLUNYXzkwX01IRVYtMjAyNi5odG1sJnF1b3Q7LCZxdW90O2xpbmtzdHlsZSZxdW90OzomcXVvdDsmcXVvdDssJnF1b3Q7bGlua2NsYXNzJnF1b3Q7OiZxdW90OyZxdW90OywmcXVvdDtjb250YWluZXJjbGFzcyZxdW90OzomcXVvdDsmcXVvdDssJnF1b3Q7cHJvbW90ZXh0JnF1b3Q7OiZxdW90O0RcdTAwZTljb3V2cmV6IGwnb2ZmcmUhJnF1b3Q7fSI+Cgk8L2Rpdj4KCTwvZGl2PgoJCQkJCgkJCTwvZGl2PgoJCTwvZGl2PgoJPC9kaXY+CTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZU91dGVyQm94ICAiIGlkPSJmYnhfaHlicmlkXzUiPgoJCQoJCTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZUlubmVyQm94IiBpZD0iIj4KCQkJCgkJCTxkaXYgY2xhc3M9ImRpdkNhclRpdGxlQ29udGFpbmVyIj4KCQkJCTxhIHRpdGxlPSJNYXpkYSBDWC05MCBNSEVWIDIwMjUiIGhyZWY9Ij9wYXRoPS9uZXVmcy9NYXpkYS1DWF85MF9NSEVWLTIwMjUuaHRtbCIgZGF0YS1tYWtlPSJNYXpkYSIgZGF0YS1tb2RlbD0iQ1gtOTAgaHlicmlkZSBsw6lnZXIgMjAyNSI+CgkJCQkJPGgzPgoJCQkJCQk8c3BhbiBjbGFzcz0ic3BhbkNhck1ha2UgIj5NYXpkYTwvc3Bhbj48YnI+CgkJCQkJCTxzcGFuIGNsYXNzPSJtb2RlbE5hbWUgc3Bhbk1vZGVsTmFtZSI+Q1gtOTAgTUhFViAyMDI1PC9zcGFuPgoJCQkJCTwvaDM+CgkJCQk8L2E+CgkJCQkgICAgPCEtLSBPUEVOIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CiAgICA8ZGl2IGNsYXNzPSJkaXZOZXdDYXJTdGFydFByaWNlIj4KICAgICAgICDDoCBwYXJ0aXIgZGUKICAgICAgICA8c3BhbiBjbGFzcz0iIj4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+NDkgMzQwPC9zcGFuPjwvc3Bhbj4KICAgICAgICA8aSBzdHlsZT0iY29sb3I6IzAwMDtmb250LXNpemU6MjBweDsiIGNsYXNzPSJjYXJQcmljZUluaXRpYWxUb29sVGlwSWNvbiBmYWwgZmEtaW5mby1jaXJjbGUgYmxhY2tDb2xvckJvbGQiIGRhdGEtdG9vbHRpcD0nJmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtQRFNGOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDs0NiAyNTAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUcmFuc3BvcnQgJmFtcDsgUHLDqXBhcmF0aW9uOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsyIDE5NSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O0ZyYWlzIGFkbWluLiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDs3OTUmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUYXhlIEFDOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsxMDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUb3RhbCZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDs0OSAzNDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jz48L2k+CiAgICA8L2Rpdj4KICAgIDwhLS0gQ0xPU0UgTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT48IS0tIE9QRU4gTkVXIENBUiBQUk9NTyBQUklDRSAoMjc0KS0tPjxkaXYgY2xhc3M9ImRpdk5ld0NhclByb21vUHJpY2UiPmVuIHJhYmFpcyDDoCA8c3BhbiBjbGFzcz0iIiBzdHlsZT0iY29sb3I6ICM5MTBhMmQ7Ij4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+NDUgODQwPC9zcGFuPjwvc3Bhbj48L2Rpdj48IS0tIENMT1NFIE5FVyBDQVIgUFJPTU8gUFJJQ0UgKDI4MSktLT4KCQkJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJblN0b2NrTGluayIgaGlkZGVuPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBkYXRhLXR5cGU9ImludmRhdGEiIGRhdGEtbWFrZT0iTWF6ZGEiIGRhdGEtbW9kZWw9IkNYLTkwIE1IRVYiIGRhdGEteWVhcj0iMjAyNSIgZGF0YS1zdHlsZWlkcz0iNDYxODAyLDQ2MTgwMyw0NjE4MDQsNDYxODA1LDQ2MTgwNiIgZGF0YS1oeWJyaWQ9IjAiPgoJPC9kaXY+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJbWFnZUNvbnRhaW5lciBmbGV4LWNlbnRlciBhbGlnbi1jZW50ZXIgIj4KCQkJCTxhIHRpdGxlPSJNYXpkYSBDWC05MCBNSEVWIDIwMjUiIGhyZWY9Ij9wYXRoPS9uZXVmcy9NYXpkYS1DWF85MF9NSEVWLTIwMjUuaHRtbCI+CgkJCQkJPGltZyBhbHQ9Ik1hemRhIENYLTkwIE1IRVYgMjAyNSIgYm9yZGVyPSIwIiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9mci9NYXpkYS9DWF85MF9NSEVWLzIwMjUvNDYxODA2L0JsdWUvcHJvZmlsZS53ZWJwIiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+CgkJCQk8L2E+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJGb290ZXJDb250YWluZXIgc3RhY2stbGMgLS1zLTkiPgoJCQkJCTxkaXYgY2xhc3M9ImNhclBheW1lbnRXcmFwcGVyIj4KCQkJPGRpdiBjbGFzcz0iY29udGVudC1za2VsZXRvbiBodG1sLWJsb2NrIiBkYXRhLWJsb2NrPSJwYXltZW50QmxvY2siIGRhdGEtdHlwZT0iYmxvY2siIGRhdGEtc291cmNlPSJzZXJ2ZXIiIGRhdGEtY2FsbGJhY2s9InBheW1lbnRDYWxjQmxvY2siPgoJCQoJPGlucHV0IG5hbWU9ImJsb2NrLWRhdGEiIHR5cGU9ImhpZGRlbiIgdmFsdWU9InsmcXVvdDtzdHlsZWlkJnF1b3Q7OiZxdW90OzQ2MTgwMiZxdW90OywmcXVvdDt0aXRsZSZxdW90OzomcXVvdDtNYXpkYSBDWC05MCBNSEVWIDIwMjUmcXVvdDssJnF1b3Q7aHJlZiZxdW90OzomcXVvdDtcL25ldWZzXC9NYXpkYS1DWF85MF9NSEVWLTIwMjUuaHRtbCZxdW90OywmcXVvdDtsaW5rc3R5bGUmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O2xpbmtjbGFzcyZxdW90OzomcXVvdDsmcXVvdDssJnF1b3Q7Y29udGFpbmVyY2xhc3MmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O3Byb21vdGV4dCZxdW90OzomcXVvdDtEXHUwMGU5Y291dnJleiBsJ29mZnJlISZxdW90O30iPgoJPC9kaXY+Cgk8L2Rpdj4KCQkJCQoJCQk8L2Rpdj4KCQk8L2Rpdj4KCTwvZGl2PjwvZGl2PjwvZGl2PjwhLS0gQ0xPU0UgQ0FURUdPUllCT1hXUkFQUEVSICgyMDYwKS0tPjwhLS0gT1BFTiBDQVRFR09SWUJPWFdSQVBQRVIgKDIwNTIpIC0tPjxkaXYgaWQ9ImNsYXNzcGhldl9jb250YWluZXIiIGNsYXNzPSJkaXZTcGFuIGRpdlNwYW4xMiBkaXZDYXRlZ29yeUJveFdyYXBwZXIiIHN0YXRlPSJvcGVuIiBuYnZpc2libGU9IjEiPjxoMiBjbGFzcz0iZGVmYXVsdCBpY29uLWhlYWRpbmcgZmxleC1ib3ggYWxpZ24tY2VudGVyIj4KCTxzcGFuIGNsYXNzPSJmYSBmYS1jaGV2cm9uLXJpZ2h0IiBhcmlhLWhpZGRlbj0idHJ1ZSI+PC9zcGFuPgoJPGJveC1sYyBjbGFzcz0iLXB2MCI+CgkJPGRpdiBjbGFzcz0ibWFpblRleHQgLWJvbGQiPkh5YnJpZGVzIHJlY2hhcmdlYWJsZSBuZXVmcyBNYXpkYSAyMDI1ICZhbXA7IDIwMjY8L2Rpdj4KCQk8ZGl2IGNsYXNzPSJzZWNvbmRhcnlUZXh0Ij7DoCBTdC1HZW9yZ2VzPC9kaXY+Cgk8L2JveC1sYz4KPC9oMj48ZGl2IGNsYXNzPSJkaXZTcGFuIGRpdlNwYW4xMiBkaXZDYXJzQm94V3JhcHBlciBDTEFTU19waGV2Ij4JPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggICIgaWQ9ImZieF9waGV2XzEiPgoJCQoJCTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZUlubmVyQm94IiBpZD0iIj4KCQkJCgkJCTxkaXYgY2xhc3M9ImRpdkNhclRpdGxlQ29udGFpbmVyIj4KCQkJCTxhIHRpdGxlPSJNYXpkYSBDWC03MCBQSEVWIDIwMjYiIGhyZWY9Ij9wYXRoPS9uZXVmcy9NYXpkYS1DWF83MF9QSEVWLTIwMjYuaHRtbCIgZGF0YS1tYWtlPSJNYXpkYSIgZGF0YS1tb2RlbD0iQ1gtNzAgaHlicmlkZSByZWNoYXJnZWFibGUgMjAyNiI+CgkJCQkJPGgzPgoJCQkJCQk8c3BhbiBjbGFzcz0ic3BhbkNhck1ha2UgIj5NYXpkYTwvc3Bhbj48YnI+CgkJCQkJCTxzcGFuIGNsYXNzPSJtb2RlbE5hbWUgc3Bhbk1vZGVsTmFtZSI+Q1gtNzAgUEhFViAyMDI2PC9zcGFuPgoJCQkJCTwvaDM+CgkJCQk8L2E+CgkJCQkgICAgPCEtLSBPUEVOIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CiAgICA8ZGl2IGNsYXNzPSJkaXZOZXdDYXJTdGFydFByaWNlIj4KICAgICAgICDDoCBwYXJ0aXIgZGUKICAgICAgICA8c3BhbiBjbGFzcz0iIj4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+NTUgODQwPC9zcGFuPjwvc3Bhbj4KICAgICAgICA8aSBzdHlsZT0iY29sb3I6IzAwMDtmb250LXNpemU6MjBweDsiIGNsYXNzPSJjYXJQcmljZUluaXRpYWxUb29sVGlwSWNvbiBmYWwgZmEtaW5mby1jaXJjbGUgYmxhY2tDb2xvckJvbGQiIGRhdGEtdG9vbHRpcD0nJmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtQRFNGOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDs1MiA3NTAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUcmFuc3BvcnQgJmFtcDsgUHLDqXBhcmF0aW9uOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsyIDE5NSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O0ZyYWlzIGFkbWluLiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDs3OTUmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUYXhlIEFDOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsxMDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUb3RhbCZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDs1NSA4NDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jz48L2k+CiAgICA8L2Rpdj4KICAgIDwhLS0gQ0xPU0UgTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT48IS0tIE9QRU4gTkVXIENBUiBQUk9NTyBQUklDRSAoMjc0KS0tPjxkaXYgY2xhc3M9ImRpdk5ld0NhclByb21vUHJpY2UiPmVuIHJhYmFpcyDDoCA8c3BhbiBjbGFzcz0iIiBzdHlsZT0iY29sb3I6ICM5MTBhMmQ7Ij4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+NDkgOTcxPC9zcGFuPjwvc3Bhbj48L2Rpdj48IS0tIENMT1NFIE5FVyBDQVIgUFJPTU8gUFJJQ0UgKDI4MSktLT4KCQkJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJblN0b2NrTGluayIgaGlkZGVuPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBkYXRhLXR5cGU9ImludmRhdGEiIGRhdGEtbWFrZT0iTWF6ZGEiIGRhdGEtbW9kZWw9IkNYLTcwIFBIRVYiIGRhdGEteWVhcj0iMjAyNiIgZGF0YS1zdHlsZWlkcz0iNDgzMTI0LDQ4MzEyNSw0ODMxMjMsNDgzMTI2IiBkYXRhLWh5YnJpZD0iMSI+Cgk8L2Rpdj4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckltYWdlQ29udGFpbmVyIGZsZXgtY2VudGVyIGFsaWduLWNlbnRlciAiPgoJCQkJPGEgdGl0bGU9Ik1hemRhIENYLTcwIFBIRVYgMjAyNiIgaHJlZj0iP3BhdGg9L25ldWZzL01hemRhLUNYXzcwX1BIRVYtMjAyNi5odG1sIj4KCQkJCQk8aW1nIGFsdD0iTWF6ZGEgQ1gtNzAgUEhFViAyMDI2IiBib3JkZXI9IjAiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL2ZyL01hemRhL0NYXzcwX1BIRVYvMjAyNi80ODMxMjYvV2hpdGUvcHJvZmlsZS53ZWJwIiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+CgkJCQk8L2E+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJGb290ZXJDb250YWluZXIgc3RhY2stbGMgLS1zLTkiPgoJCQkJCTxkaXYgY2xhc3M9ImNhclBheW1lbnRXcmFwcGVyIj4KCQkJPGRpdiBjbGFzcz0iY29udGVudC1za2VsZXRvbiBodG1sLWJsb2NrIiBkYXRhLWJsb2NrPSJwYXltZW50QmxvY2siIGRhdGEtdHlwZT0iYmxvY2siIGRhdGEtc291cmNlPSJzZXJ2ZXIiIGRhdGEtY2FsbGJhY2s9InBheW1lbnRDYWxjQmxvY2siPgoJCQoJPGlucHV0IG5hbWU9ImJsb2NrLWRhdGEiIHR5cGU9ImhpZGRlbiIgdmFsdWU9InsmcXVvdDtzdHlsZWlkJnF1b3Q7OiZxdW90OzQ4MzEyNCZxdW90OywmcXVvdDt0aXRsZSZxdW90OzomcXVvdDtNYXpkYSBDWC03MCBQSEVWIDIwMjYmcXVvdDssJnF1b3Q7aHJlZiZxdW90OzomcXVvdDtcL25ldWZzXC9NYXpkYS1DWF83MF9QSEVWLTIwMjYuaHRtbCZxdW90OywmcXVvdDtsaW5rc3R5bGUmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O2xpbmtjbGFzcyZxdW90OzomcXVvdDsmcXVvdDssJnF1b3Q7Y29udGFpbmVyY2xhc3MmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O3Byb21vdGV4dCZxdW90OzomcXVvdDtEXHUwMGU5Y291dnJleiBsJ29mZnJlISZxdW90O30iPgoJPC9kaXY+Cgk8L2Rpdj4KCQkJCQoJCQk8L2Rpdj4KCQk8L2Rpdj4KCTwvZGl2Pgk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVPdXRlckJveCAgIiBpZD0iZmJ4X3BoZXZfMiI+CgkJCgkJPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlSW5uZXJCb3giIGlkPSIiPgoJCQkKCQkJPGRpdiBjbGFzcz0iZGl2Q2FyVGl0bGVDb250YWluZXIiPgoJCQkJPGEgdGl0bGU9Ik1hemRhIENYLTcwIFBIRVYgMjAyNSIgaHJlZj0iP3BhdGg9L25ldWZzL01hemRhLUNYXzcwX1BIRVYtMjAyNS5odG1sIiBkYXRhLW1ha2U9Ik1hemRhIiBkYXRhLW1vZGVsPSJDWC03MCBoeWJyaWRlIHJlY2hhcmdlYWJsZSAyMDI1Ij4KCQkJCQk8aDM+CgkJCQkJCTxzcGFuIGNsYXNzPSJzcGFuQ2FyTWFrZSAiPk1hemRhPC9zcGFuPjxicj4KCQkJCQkJPHNwYW4gY2xhc3M9Im1vZGVsTmFtZSBzcGFuTW9kZWxOYW1lIj5DWC03MCBQSEVWIDIwMjU8L3NwYW4+CgkJCQkJPC9oMz4KCQkJCTwvYT4KCQkJCSAgICA8IS0tIE9QRU4gTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KICAgIDxkaXYgY2xhc3M9ImRpdk5ld0NhclN0YXJ0UHJpY2UiPgogICAgICAgIMOgIHBhcnRpciBkZQogICAgICAgIDxzcGFuIGNsYXNzPSIiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj42MSA4NDA8L3NwYW4+PC9zcGFuPgogICAgICAgIDxpIHN0eWxlPSJjb2xvcjojMDAwO2ZvbnQtc2l6ZToyMHB4OyIgY2xhc3M9ImNhclByaWNlSW5pdGlhbFRvb2xUaXBJY29uIGZhbCBmYS1pbmZvLWNpcmNsZSBibGFja0NvbG9yQm9sZCIgZGF0YS10b29sdGlwPScmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1BEU0Y6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzU4IDc1MCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RyYW5zcG9ydCAmYW1wOyBQcsOpcGFyYXRpb246Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzIgMTk1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7RnJhaXMgYWRtaW4uJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0Ozc5NSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RheGUgQUM6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzEwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RvdGFsJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzYxIDg0MCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsnPjwvaT4KICAgIDwvZGl2PgogICAgPCEtLSBDTE9TRSBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPjwhLS0gT1BFTiBORVcgQ0FSIFBST01PIFBSSUNFICgyNzQpLS0+PGRpdiBjbGFzcz0iZGl2TmV3Q2FyUHJvbW9QcmljZSI+ZW4gcmFiYWlzIMOgIDxzcGFuIGNsYXNzPSIiIHN0eWxlPSJjb2xvcjogIzkxMGEyZDsiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj41NCA0NzE8L3NwYW4+PC9zcGFuPjwvZGl2PjwhLS0gQ0xPU0UgTkVXIENBUiBQUk9NTyBQUklDRSAoMjgxKS0tPgoJCQkJCTxkaXYgY2xhc3M9ImRpdkNhckluU3RvY2tMaW5rIiBoaWRkZW4+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGRhdGEtdHlwZT0iaW52ZGF0YSIgZGF0YS1tYWtlPSJNYXpkYSIgZGF0YS1tb2RlbD0iQ1gtNzAgUEhFViIgZGF0YS15ZWFyPSIyMDI1IiBkYXRhLXN0eWxlaWRzPSI0NTM2MzIsNDUzNjMzIiBkYXRhLWh5YnJpZD0iMSI+Cgk8L2Rpdj4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckltYWdlQ29udGFpbmVyIGZsZXgtY2VudGVyIGFsaWduLWNlbnRlciAiPgoJCQkJPGEgdGl0bGU9Ik1hemRhIENYLTcwIFBIRVYgMjAyNSIgaHJlZj0iP3BhdGg9L25ldWZzL01hemRhLUNYXzcwX1BIRVYtMjAyNS5odG1sIj4KCQkJCQk8aW1nIGFsdD0iTWF6ZGEgQ1gtNzAgUEhFViAyMDI1IiBib3JkZXI9IjAiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL2ZyL01hemRhL0NYXzcwX1BIRVYvMjAyNS80NTM2MzMvV2hpdGUvcHJvZmlsZS53ZWJwIiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+CgkJCQk8L2E+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJGb290ZXJDb250YWluZXIgc3RhY2stbGMgLS1zLTkiPgoJCQkJCTxkaXYgY2xhc3M9ImNhclBheW1lbnRXcmFwcGVyIj4KCQkJPGRpdiBjbGFzcz0iY29udGVudC1za2VsZXRvbiBodG1sLWJsb2NrIiBkYXRhLWJsb2NrPSJwYXltZW50QmxvY2siIGRhdGEtdHlwZT0iYmxvY2siIGRhdGEtc291cmNlPSJzZXJ2ZXIiIGRhdGEtY2FsbGJhY2s9InBheW1lbnRDYWxjQmxvY2siPgoJCQoJPGlucHV0IG5hbWU9ImJsb2NrLWRhdGEiIHR5cGU9ImhpZGRlbiIgdmFsdWU9InsmcXVvdDtzdHlsZWlkJnF1b3Q7OiZxdW90OzQ1MzYzMiZxdW90OywmcXVvdDt0aXRsZSZxdW90OzomcXVvdDtNYXpkYSBDWC03MCBQSEVWIDIwMjUmcXVvdDssJnF1b3Q7aHJlZiZxdW90OzomcXVvdDtcL25ldWZzXC9NYXpkYS1DWF83MF9QSEVWLTIwMjUuaHRtbCZxdW90OywmcXVvdDtsaW5rc3R5bGUmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O2xpbmtjbGFzcyZxdW90OzomcXVvdDsmcXVvdDssJnF1b3Q7Y29udGFpbmVyY2xhc3MmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O3Byb21vdGV4dCZxdW90OzomcXVvdDtEXHUwMGU5Y291dnJleiBsJ29mZnJlISZxdW90O30iPgoJPC9kaXY+Cgk8L2Rpdj4KCQkJCQoJCQk8L2Rpdj4KCQk8L2Rpdj4KCTwvZGl2Pgk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVPdXRlckJveCAgIiBpZD0iZmJ4X3BoZXZfMyI+CgkJCgkJPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlSW5uZXJCb3giIGlkPSIiPgoJCQkKCQkJPGRpdiBjbGFzcz0iZGl2Q2FyVGl0bGVDb250YWluZXIiPgoJCQkJPGEgdGl0bGU9Ik1hemRhIENYLTkwIFBIRVYgMjAyNiIgaHJlZj0iP3BhdGg9L25ldWZzL01hemRhLUNYXzkwX1BIRVYtMjAyNi5odG1sIiBkYXRhLW1ha2U9Ik1hemRhIiBkYXRhLW1vZGVsPSJDWC05MCBoeWJyaWRlIHJlY2hhcmdlYWJsZSAyMDI2Ij4KCQkJCQk8aDM+CgkJCQkJCTxzcGFuIGNsYXNzPSJzcGFuQ2FyTWFrZSAiPk1hemRhPC9zcGFuPjxicj4KCQkJCQkJPHNwYW4gY2xhc3M9Im1vZGVsTmFtZSBzcGFuTW9kZWxOYW1lIj5DWC05MCBQSEVWIDIwMjY8L3NwYW4+CgkJCQkJPC9oMz4KCQkJCTwvYT4KCQkJCSAgICA8IS0tIE9QRU4gTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KICAgIDxkaXYgY2xhc3M9ImRpdk5ld0NhclN0YXJ0UHJpY2UiPgogICAgICAgIMOgIHBhcnRpciBkZQogICAgICAgIDxzcGFuIGNsYXNzPSIiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj41NiA4NDA8L3NwYW4+PC9zcGFuPgogICAgICAgIDxpIHN0eWxlPSJjb2xvcjojMDAwO2ZvbnQtc2l6ZToyMHB4OyIgY2xhc3M9ImNhclByaWNlSW5pdGlhbFRvb2xUaXBJY29uIGZhbCBmYS1pbmZvLWNpcmNsZSBibGFja0NvbG9yQm9sZCIgZGF0YS10b29sdGlwPScmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1BEU0Y6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzUzIDc1MCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RyYW5zcG9ydCAmYW1wOyBQcsOpcGFyYXRpb246Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzIgMTk1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7RnJhaXMgYWRtaW4uJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0Ozc5NSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RheGUgQUM6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzEwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RvdGFsJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzU2IDg0MCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsnPjwvaT4KICAgIDwvZGl2PgogICAgPCEtLSBDTE9TRSBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPjwhLS0gT1BFTiBORVcgQ0FSIFBST01PIFBSSUNFICgyNzQpLS0+PGRpdiBjbGFzcz0iZGl2TmV3Q2FyUHJvbW9QcmljZSI+ZW4gcmFiYWlzIMOgIDxzcGFuIGNsYXNzPSIiIHN0eWxlPSJjb2xvcjogIzkxMGEyZDsiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj41MCA5NzE8L3NwYW4+PC9zcGFuPjwvZGl2PjwhLS0gQ0xPU0UgTkVXIENBUiBQUk9NTyBQUklDRSAoMjgxKS0tPgoJCQkJCTxkaXYgY2xhc3M9ImRpdkNhckluU3RvY2tMaW5rIiBoaWRkZW4+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGRhdGEtdHlwZT0iaW52ZGF0YSIgZGF0YS1tYWtlPSJNYXpkYSIgZGF0YS1tb2RlbD0iQ1gtOTAgUEhFViIgZGF0YS15ZWFyPSIyMDI2IiBkYXRhLXN0eWxlaWRzPSI0ODMxMTksNDgzMTIwLDQ4MzEyMSw0ODMxMjIiIGRhdGEtaHlicmlkPSIxIj4KCTwvZGl2PgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW1hZ2VDb250YWluZXIgZmxleC1jZW50ZXIgYWxpZ24tY2VudGVyICI+CgkJCQk8YSB0aXRsZT0iTWF6ZGEgQ1gtOTAgUEhFViAyMDI2IiBocmVmPSI\/cGF0aD0vbmV1ZnMvTWF6ZGEtQ1hfOTBfUEhFVi0yMDI2Lmh0bWwiPgoJCQkJCTxpbWcgYWx0PSJNYXpkYSBDWC05MCBQSEVWIDIwMjYiIGJvcmRlcj0iMCIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvZnIvTWF6ZGEvQ1hfOTBfUEhFVi8yMDI2LzQ4MzEyMi9XaGl0ZS9wcm9maWxlLndlYnAiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj4KCQkJCTwvYT4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckZvb3RlckNvbnRhaW5lciBzdGFjay1sYyAtLXMtOSI+CgkJCQkJPGRpdiBjbGFzcz0iY2FyUGF5bWVudFdyYXBwZXIiPgoJCQk8ZGl2IGNsYXNzPSJjb250ZW50LXNrZWxldG9uIGh0bWwtYmxvY2siIGRhdGEtYmxvY2s9InBheW1lbnRCbG9jayIgZGF0YS10eXBlPSJibG9jayIgZGF0YS1zb3VyY2U9InNlcnZlciIgZGF0YS1jYWxsYmFjaz0icGF5bWVudENhbGNCbG9jayI+CgkJCgk8aW5wdXQgbmFtZT0iYmxvY2stZGF0YSIgdHlwZT0iaGlkZGVuIiB2YWx1ZT0ieyZxdW90O3N0eWxlaWQmcXVvdDs6JnF1b3Q7NDgzMTE5JnF1b3Q7LCZxdW90O3RpdGxlJnF1b3Q7OiZxdW90O01hemRhIENYLTkwIFBIRVYgMjAyNiZxdW90OywmcXVvdDtocmVmJnF1b3Q7OiZxdW90O1wvbmV1ZnNcL01hemRhLUNYXzkwX1BIRVYtMjAyNi5odG1sJnF1b3Q7LCZxdW90O2xpbmtzdHlsZSZxdW90OzomcXVvdDsmcXVvdDssJnF1b3Q7bGlua2NsYXNzJnF1b3Q7OiZxdW90OyZxdW90OywmcXVvdDtjb250YWluZXJjbGFzcyZxdW90OzomcXVvdDsmcXVvdDssJnF1b3Q7cHJvbW90ZXh0JnF1b3Q7OiZxdW90O0RcdTAwZTljb3V2cmV6IGwnb2ZmcmUhJnF1b3Q7fSI+Cgk8L2Rpdj4KCTwvZGl2PgoJCQkJCgkJCTwvZGl2PgoJCTwvZGl2PgoJPC9kaXY+CTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZU91dGVyQm94ICAiIGlkPSJmYnhfcGhldl80Ij4KCQkKCQk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVJbm5lckJveCIgaWQ9IiI+CgkJCQoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJUaXRsZUNvbnRhaW5lciI+CgkJCQk8YSB0aXRsZT0iTWF6ZGEgQ1gtOTAgUEhFViAyMDI1IiBocmVmPSI\/cGF0aD0vbmV1ZnMvTWF6ZGEtQ1hfOTBfUEhFVi0yMDI1Lmh0bWwiIGRhdGEtbWFrZT0iTWF6ZGEiIGRhdGEtbW9kZWw9IkNYLTkwIGh5YnJpZGUgcmVjaGFyZ2VhYmxlIDIwMjUiPgoJCQkJCTxoMz4KCQkJCQkJPHNwYW4gY2xhc3M9InNwYW5DYXJNYWtlICI+TWF6ZGE8L3NwYW4+PGJyPgoJCQkJCQk8c3BhbiBjbGFzcz0ibW9kZWxOYW1lIHNwYW5Nb2RlbE5hbWUiPkNYLTkwIFBIRVYgMjAyNTwvc3Bhbj4KCQkJCQk8L2gzPgoJCQkJPC9hPgoJCQkJICAgIDwhLS0gT1BFTiBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgogICAgPGRpdiBjbGFzcz0iZGl2TmV3Q2FyU3RhcnRQcmljZSI+CiAgICAgICAgw6AgcGFydGlyIGRlCiAgICAgICAgPHNwYW4gY2xhc3M9IiI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjU3IDk5MDwvc3Bhbj48L3NwYW4+CiAgICAgICAgPGkgc3R5bGU9ImNvbG9yOiMwMDA7Zm9udC1zaXplOjIwcHg7IiBjbGFzcz0iY2FyUHJpY2VJbml0aWFsVG9vbFRpcEljb24gZmFsIGZhLWluZm8tY2lyY2xlIGJsYWNrQ29sb3JCb2xkIiBkYXRhLXRvb2x0aXA9JyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7UERTRjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7NTQgOTAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VHJhbnNwb3J0ICZhbXA7IFByw6lwYXJhdGlvbjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MiAxOTUmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtGcmFpcyBhZG1pbi4mbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7Nzk1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VGF4ZSBBQzombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MTAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VG90YWwmbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7NTcgOTkwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0Oyc+PC9pPgogICAgPC9kaXY+CiAgICA8IS0tIENMT1NFIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+PCEtLSBPUEVOIE5FVyBDQVIgUFJPTU8gUFJJQ0UgKDI3NCktLT48ZGl2IGNsYXNzPSJkaXZOZXdDYXJQcm9tb1ByaWNlIj5lbiByYWJhaXMgw6AgPHNwYW4gY2xhc3M9IiIgc3R5bGU9ImNvbG9yOiAjOTEwYTJkOyI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjUwIDYyMTwvc3Bhbj48L3NwYW4+PC9kaXY+PCEtLSBDTE9TRSBORVcgQ0FSIFBST01PIFBSSUNFICgyODEpLS0+CgkJCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW5TdG9ja0xpbmsiIGhpZGRlbj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgZGF0YS10eXBlPSJpbnZkYXRhIiBkYXRhLW1ha2U9Ik1hemRhIiBkYXRhLW1vZGVsPSJDWC05MCBQSEVWIiBkYXRhLXllYXI9IjIwMjUiIGRhdGEtc3R5bGVpZHM9IjQ2MTcwMCw0NjE3MDEsNDYxNzAyIiBkYXRhLWh5YnJpZD0iMSI+Cgk8L2Rpdj4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckltYWdlQ29udGFpbmVyIGZsZXgtY2VudGVyIGFsaWduLWNlbnRlciAiPgoJCQkJPGEgdGl0bGU9Ik1hemRhIENYLTkwIFBIRVYgMjAyNSIgaHJlZj0iP3BhdGg9L25ldWZzL01hemRhLUNYXzkwX1BIRVYtMjAyNS5odG1sIj4KCQkJCQk8aW1nIGFsdD0iTWF6ZGEgQ1gtOTAgUEhFViAyMDI1IiBib3JkZXI9IjAiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL2ZyL01hemRhL0NYXzkwX1BIRVYvMjAyNS80NjE3MDIvV2hpdGUvcHJvZmlsZS53ZWJwIiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+CgkJCQk8L2E+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJGb290ZXJDb250YWluZXIgc3RhY2stbGMgLS1zLTkiPgoJCQkJCTxkaXYgY2xhc3M9ImNhclBheW1lbnRXcmFwcGVyIj4KCQkJPGRpdiBjbGFzcz0iY29udGVudC1za2VsZXRvbiBodG1sLWJsb2NrIiBkYXRhLWJsb2NrPSJwYXltZW50QmxvY2siIGRhdGEtdHlwZT0iYmxvY2siIGRhdGEtc291cmNlPSJzZXJ2ZXIiIGRhdGEtY2FsbGJhY2s9InBheW1lbnRDYWxjQmxvY2siPgoJCQoJPGlucHV0IG5hbWU9ImJsb2NrLWRhdGEiIHR5cGU9ImhpZGRlbiIgdmFsdWU9InsmcXVvdDtzdHlsZWlkJnF1b3Q7OiZxdW90OzQ2MTcwMCZxdW90OywmcXVvdDt0aXRsZSZxdW90OzomcXVvdDtNYXpkYSBDWC05MCBQSEVWIDIwMjUmcXVvdDssJnF1b3Q7aHJlZiZxdW90OzomcXVvdDtcL25ldWZzXC9NYXpkYS1DWF85MF9QSEVWLTIwMjUuaHRtbCZxdW90OywmcXVvdDtsaW5rc3R5bGUmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O2xpbmtjbGFzcyZxdW90OzomcXVvdDsmcXVvdDssJnF1b3Q7Y29udGFpbmVyY2xhc3MmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O3Byb21vdGV4dCZxdW90OzomcXVvdDtEXHUwMGU5Y291dnJleiBsJ29mZnJlISZxdW90O30iPgoJPC9kaXY+Cgk8L2Rpdj4KCQkJCQoJCQk8L2Rpdj4KCQk8L2Rpdj4KCTwvZGl2PjwvZGl2PjwvZGl2PjwhLS0gQ0xPU0UgQ0FURUdPUllCT1hXUkFQUEVSICgyMDYwKS0tPjwvZGl2PjwhLS0gQ0xPU0UgQ0FURUdPUklFU0JPWFdSQVBQRVIgKDIwNjYpLS0+PGlucHV0IHR5cGU9ImhpZGRlbiIgdmFsdWU9Ik1hemRhIiBpZD0iaXNCcmFuZFBhZ2UiPgoJCQkJPC9kaXY+CgkJCQk8IS0tIENMT1NFIE9VVEVSQk9YTEFZRVIgLS0+CgkJCQkgICAgPGRpdiBjbGFzcz0iSW5uZXJCb3hMYXllciBkaXZEaXNjbGFpbWVyQmxvY2siPgogICAgICAgIDxkaXYgY2xhc3M9ImRpdkJsb2NrVmlldyI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRpdkJsb2NrQ29udGVudCI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJkaXZCbG9ja1RpdGxlIGJsb2NrVGl0bGVTdHlsZTIiPgogICAgICAgICAgICAgICAgICAgIENsYXVzZSBkZSBub24tcmVzcG9uc2FiaWxpdMOpCiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRpdkJsb2NrQ29sdW1uIGJsYWNrLXRleHQiPgogICAgICAgICAgICAgICAgICAgIExlIG1vbnRhbnQgaW5kaXF1w6kgcmVwcsOpc2VudGUgdW5lIGVzdGltYXRpb24gZHUgbW9udGFudCBxdWUgdm91cyBwb3V2ZXogdm91cyBhdHRlbmRyZSDDoCBwYXllciBlbiBkb2xsYXJzIGNhbmFkaWVucy4gTGVzIHRheGVzIHNvbnQgZXhjbHVlcyAoc2F1ZiBpbmRpY2F0aW9uIGNvbnRyYWlyZSkuIExlcyBwaG90b3MgcmVwcsOpc2VudGVudCBsZSBtb2TDqGxlIG9mZmVydCBtYWlzIHBldXZlbnQgdmFyaWVyIGzDqWfDqHJlbWVudCBlbiBjb3VsZXVyLCBvcHRpb25zLCBvdSBjYXJhY3TDqXJpc3RpcXVlcy4gQmllbiBxdWUgbm91cyBub3VzIGVmZm9yY2lvbnMgZGUgZ2FyYW50aXIgbCdleGFjdGl0dWRlIGRlcyBpbmZvcm1hdGlvbnMgc3VyIGNlIHNpdGUgV2ViLCBub3VzIHZvdXMgcmVjb21tYW5kb25zIGRlIG5vdXMgY29udGFjdGVyIGRpcmVjdGVtZW50IHBvdXIgdsOpcmlmaWVyIGxlcyBkw6l0YWlscyBldCBvYnRlbmlyIGRlcyBpbmZvcm1hdGlvbnMgc3VwcGzDqW1lbnRhaXJlcyBzdXIgbGUgdsOpaGljdWxlLCB5IGNvbXByaXMgbGEgY29uZmlybWF0aW9uIGRlcyBwcml4LCBkZXMgY291bGV1cnMsIGRlcyBmaW5pdGlvbnMsIGRlcyBvcHRpb25zIGV0IGF1dHJlcyBzcMOpY2lmaWNhdGlvbnMuCiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KCQkJPC9kaXY+CgkJCTwhLS0gQ0xPU0UgTEVGVEJPWExBWUVSIC0tPgoJCTwvZGl2PgoJCTwhLS0gQ0xPU0UgTUFJTkJPWExBWUVSIC0tPgoJCTwhLS0gT1BFTiBGT09URVJXSURHRVQgLS0+CgkJCQkJPGRpdiBpZD0iZDJjX3ZhcnMiPjxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSJORVciIGlkPSJzbzd5dXFhajRkd2NjOHMiIGRhdGEtZm9ydmFyPSJTSVRFX0NBUl9TRUNUSU9OX1RZUEUiPgo8aW5wdXQgdHlwZT0iaGlkZGVuIiB2YWx1ZT0ibmV3Y2Fycy5odG1sIiBpZD0iMTZkN3Z3dDY2cG1vd28wayIgZGF0YS1mb3J2YXI9IkNVUlJFTlRQQUdFIj4KPGlucHV0IHR5cGU9ImhpZGRlbiIgdmFsdWU9ImJjZTk2ZmU0NDZlMTg4MGRhMTI2ZDMyZDgxN2VlZjczfDk1NDkwNjUwNSIgaWQ9IjEzZHF0c25jZDgxd2s4NDQiIGRhdGEtZm9ydmFyPSJGSU5BTkNFX0VNQUlMIj4KPGlucHV0IHR5cGU9ImhpZGRlbiIgdmFsdWU9IjdjOTI3ZDM1ZDllM2M3NTk0ODFhY2Y2MTNhZmMyZDE3fDk1NDkwNjUwNSIgaWQ9IjVjY3lnazkyNW1nd2cwIiBkYXRhLWZvcnZhcj0iRklOQU5DRV9BREZfRU1BSUwiPgo8aW5wdXQgdHlwZT0iaGlkZGVuIiB2YWx1ZT0ibGl2ZSIgaWQ9IjJlamhiYzB5eW9nMHd3dyIgZGF0YS1mb3J2YXI9IkRFUExPWU1FTlRUWVBFIj4KPGlucHV0IHR5cGU9ImhpZGRlbiIgdmFsdWU9IlNpdHRlbGxlIE1hemRhIiBpZD0iMTdnYTh2aG5jaHZrOGNnayIgZGF0YS1mb3J2YXI9IkRFQUxFUiI+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSIiIGlkPSIxZXJpdjkwMHBkYTg4d3c4IiBkYXRhLWZvcnZhcj0iTUFLRUZPUkVNQUlMIj4KPGlucHV0IHR5cGU9ImhpZGRlbiIgdmFsdWU9IiIgaWQ9IjEwcGE3djNxZWxkY29zayIgZGF0YS1mb3J2YXI9Ik1PREVMRk9SRU1BSUwiPgo8aW5wdXQgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iIiBpZD0icjgyemZreGEyZHdzczAwIiBkYXRhLWZvcnZhcj0iWUVBUiI+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSIiIGlkPSJpM2dzYXhnczVqazh3Y2siIGRhdGEtZm9ydmFyPSJSRUZFUkVSIj4KPGlucHV0IHR5cGU9ImhpZGRlbiIgdmFsdWU9InJlc2V0IiBpZD0iNmp5cDQ2NjR2Z3dzODB3IiBkYXRhLWZvcnZhcj0iUE9QVVBXSURHRVRUT0FDVElWRSI+CjwvZGl2PjwhLS0gIyNFTkRPRlBBR0UjIyAtLT4KCQoJCiAgICA8ZGl2IGNsYXNzPSJ1aS1sb2FkZXItYmFja2dyb3VuZCI+PGltZyBjbGFzcz0idWktbG9hZGVyLWJhY2tncm91bmQtZ2lmIGxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL3NpdHRlbGxlbWF6ZGEuY2EvL2ltYWdlcy9hamF4LWxvYWRlcjIuZ2lmIiBhbHQ9ImFqYXggbG9hZGVyMiIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPjwvZGl2PgogICAgPGRpdiBpZD0iaW9zX2ZpeGVkX2JnIj48L2Rpdj4KCgkJCgoJCTwhLS0gUHJvbW90aW9uU2lkZUJ0biBESVNBQkxFRCBGT1IgU0VDVElPTjogTkVXIC0tPgogICAgCgkJCgogICAgCgogICAgCgogICAgCgoJCTxkaXYgaWQ9IkhJRERFTl9JTlBVVFMiPgoJCQk8IS0tIGJ1bmRsaW5nIGhpZGRlbiBpbnB1dHMgdG8gcGxlYXNlIEdvb2dsZSAtLT4KCQkJPGRpdiBjbGFzcz0iaGlfX19fMSI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iY3VycmVudEl0ZW1UeXBlIiB2YWx1ZT0iY2FyIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJjdXJyZW50SXRlbVR5cGVVUkxTYWZlRU4iIHZhbHVlPSIiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9ImN1cnJlbnRTdGF0dXMiIHZhbHVlPSJuZXciPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9InR4dFVzZXJBZ2VudCIgdmFsdWU9IiAgIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJjdXJyZW50Q2FyUHJpY2UiIHZhbHVlPSIwIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJ0eHRCdWlsZEFuZFByaWNlRW1haWxMaW5rIiB2YWx1ZT0iRGVybmllciB2w6loaWN1bGUgY29uZmlndXLDqSAobW9kdWxlIENvbmZpZ3VyYXRpb24gJmFtcDsgUHJpeCkgbGUgeyRCQU5QTElOS30iPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9InR4dEJ1aWxkQW5kUHJpY2VGb2xkZXJQYXRoIiB2YWx1ZT0iL2NvbmZpZ3VyYXRpb24tZXQtcHJpeC8iPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9IlRYVE1PTlRIMSIgdmFsdWU9IkphbnZpZXIiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9IlRYVE1PTlRIMiIgdmFsdWU9IkbDqXZyaWVyIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJUWFRNT05USDMiIHZhbHVlPSJNYXJzIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJUWFRNT05USDQiIHZhbHVlPSJBdnJpbCI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iVFhUTU9OVEg1IiB2YWx1ZT0iTWFpIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJUWFRNT05USDYiIHZhbHVlPSJKdWluIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJUWFRNT05USDciIHZhbHVlPSJKdWlsbGV0Ij4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJUWFRNT05USDgiIHZhbHVlPSJBb8O7dCI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iVFhUTU9OVEg5IiB2YWx1ZT0iU2VwdGVtYnJlIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJUWFRNT05USDEwIiB2YWx1ZT0iT2N0b2JyZSI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iVFhUTU9OVEgxMSIgdmFsdWU9Ik5vdmVtYnJlIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJUWFRNT05USDEyIiB2YWx1ZT0iRMOpY2VtYnJlIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJmZmRMMSIgdmFsdWU9IjE5Yzg1N2VjYmUyZmMzNzI3NWIyOTNmZjRjZWIwZjBkZjU3NjkyZjAiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9ImlzQVZHTWFya2V0UHJpY2VBY3RpdmUiIHZhbHVlPSIwIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJpc0FWR01hcmtldFByaWNlQWN0aXZlQ2xlYXJhbmNlIiB2YWx1ZT0iMCI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0ic2hvd09ubHlSZWR1Y2VkUHJpY2VDbGVhcmFuY2UiIHZhbHVlPSIwIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJoYXNNdWx0aXBsZURlYWxlcnMiIHZhbHVlPSIwIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJzZW5kRW1haWxUb0FsbERlYWxlcnMiIHZhbHVlPSIwIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJzZWFyY2hlZFZlaGljbGUiIHZhbHVlPSIgICI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0ic2VhcmNoZWRxdWVyeW1ha2UiIG5hbWU9InNlYXJjaGVkcXVlcnltYWtlIiB2YWx1ZT0iIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJzZWFyY2hlZHF1ZXJ5bW9kZWwiIG5hbWU9InNlYXJjaGVkcXVlcnltb2RlbCIgdmFsdWU9IiI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0ic2VhcmNoZWRxdWVyeXllYXIiIG5hbWU9InNlYXJjaGVkcXVlcnl5ZWFyIiB2YWx1ZT0iIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJpbWdzdnJwb29sYWN0aXZlIiBuYW1lPSJpbWdzdnJwb29sYWN0aXZlIiB2YWx1ZT0iVFJVRSI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0ic2l0ZWNvbXBpbGVpZCIgbmFtZT0ic2l0ZWNvbXBpbGVpZCIgdmFsdWU9IjY5YjdkNWQxZDVmZTkiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9ImVtYWlsTGlzdFN1ZmZpeCIgbmFtZT0iZW1haWxMaXN0U3VmZml4IiB2YWx1ZT0iOTU0OTA2NTA1Ij4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJkaXNhYmxlUG9wdXBzIiBuYW1lPSJkaXNhYmxlUG9wdXBzIiB2YWx1ZT0iMCI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0ic2VydmljZUVuYWJsZWQiIG5hbWU9InNlcnZpY2VFbmFibGVkIiB2YWx1ZT0iMSI+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJoaV9fX18yIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJBRE1JTl9HRU5FUkFMX0JMT0NLX0ZSX0RPTUFJTl9DSEVDSyIgbmFtZT0iQURNSU5fR0VORVJBTF9CTE9DS19GUl9ET01BSU5fQ0hFQ0siIHZhbHVlPSIxIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJuZXdTZWN0aW9ubmFibGVkIiBuYW1lPSJuZXdTZWN0aW9ubmFibGVkIiB2YWx1ZT0iMSI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0idXNlZFNlY3Rpb25uYWJsZWQiIG5hbWU9InVzZWRTZWN0aW9ubmFibGVkIiB2YWx1ZT0iMSI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iZmluYW5jZVNlY3Rpb25uYWJsZWQiIG5hbWU9ImZpbmFuY2VTZWN0aW9ubmFibGVkIiB2YWx1ZT0iMSI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0ic2VydmljZVNlY3Rpb25uYWJsZWQiIG5hbWU9InNlcnZpY2VTZWN0aW9ubmFibGVkIiB2YWx1ZT0iMSI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0icHJvbW9TZWN0aW9ubmFibGVkIiBuYW1lPSJwcm9tb1NlY3Rpb25uYWJsZWQiIHZhbHVlPSIxIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJ0YXJnZXRQYWdlIiBuYW1lPSJ0YXJnZXRQYWdlIiB2YWx1ZT0iTkVXQ0FSUyI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0icGFnZVNlY3Rpb24iIG5hbWU9InBhZ2VTZWN0aW9uIiB2YWx1ZT0iTkVXIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJEaXNjb3VudFBvcHVwT3RoZXJQYWdlcyIgbmFtZT0iRGlzY291bnRQb3B1cE90aGVyUGFnZXMiIHZhbHVlPSIiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9IkRpc2NvdW50UG9wdXBEZWxheVNob3dPdGhlciIgbmFtZT0iRGlzY291bnRQb3B1cERlbGF5U2hvd090aGVyIiB2YWx1ZT0iIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJEaXNjb3VudFBvcHVwRGVsYXlTaG93IiBuYW1lPSJEaXNjb3VudFBvcHVwRGVsYXlTaG93IiB2YWx1ZT0iIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJEaXNjb3VudFBvcHVwRGVsYXlTaG93TmV3IiBuYW1lPSJEaXNjb3VudFBvcHVwRGVsYXlTaG93TmV3IiB2YWx1ZT0iIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJTSE9XX1BPUFVQX0FVVE8iIG5hbWU9IlNIT1dfUE9QVVBfQVVUTyIgdmFsdWU9ImRlbGF5Ij4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJTSE9XX1BPUFVQX0FVVE9fVVNFRCIgbmFtZT0iU0hPV19QT1BVUF9BVVRPX1VTRUQiIHZhbHVlPSJkZWxheSI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iU0hPV19QT1BVUF9BVVRPX05FVyIgbmFtZT0iU0hPV19QT1BVUF9BVVRPX05FVyIgdmFsdWU9InNjcm9sbHVwIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJBVVRPX1BFUkNFTlRfUE9QVVAiIG5hbWU9IkFVVE9fUEVSQ0VOVF9QT1BVUCIgdmFsdWU9Ijc1Ij4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJBVVRPX1BFUkNFTlRfUE9QVVBfVVNFRCIgbmFtZT0iQVVUT19QRVJDRU5UX1BPUFVQX1VTRUQiIHZhbHVlPSI3NSI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iQVVUT19QRVJDRU5UX1BPUFVQX05FVyIgbmFtZT0iQVVUT19QRVJDRU5UX1BPUFVQX05FVyIgdmFsdWU9Ijc1Ij4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJHRU5FUkFMX1VTRURfUEFHRV9QT1BVUF9TRUxFQ1QiIG5hbWU9IkdFTkVSQUxfVVNFRF9QQUdFX1BPUFVQX1NFTEVDVCIgdmFsdWU9IkVYQ0xVRElORyI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iR0VORVJBTF9ORVdfUEFHRV9QT1BVUF9TRUxFQ1QiIG5hbWU9IkdFTkVSQUxfTkVXX1BBR0VfUE9QVVBfU0VMRUNUIiB2YWx1ZT0iSU5DTFVESU5HIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJVU0VEX0xPR09fT05fQ0hFQ0siIG5hbWU9IlVTRURfTE9HT19PTl9DSEVDSyIgdmFsdWU9IiI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iU0VNX0JPT1NURVJfQUNUSVZFIiBuYW1lPSJTRU1fQk9PU1RFUl9BQ1RJVkUiIHZhbHVlPSIxIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJQQUdFSUQiIG5hbWU9IlBBR0VJRCIgdmFsdWU9Im5ld2NhcnMuaHRtbCI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iQ1JNX1dTU19BQ1RJVkUiIG5hbWU9IkNSTV9XU1NfQUNUSVZFIiB2YWx1ZT0ieWVzIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJSRVFVRVNUX1NFTlQiIG5hbWU9IlJFUVVFU1RfU0VOVCIgdmFsdWU9IlZvdHJlIGRlbWFuZGUgYSBiaWVuIMOpdMOpIGVudm95w6llISI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iREVBTEVSQlJBTkQiIG5hbWU9IkRFQUxFUkJSQU5EIiB2YWx1ZT0iTWF6ZGEiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9IkRFQUxFUkJSQU5EX1BSSU1BUlkiIG5hbWU9IkRFQUxFUkJSQU5EX1BSSU1BUlkiIHZhbHVlPSJNYXpkYSI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iREVBTEVSUEFDT0RFIiBuYW1lPSJERUFMRVJQQUNPREUiIHZhbHVlPSI0NjU4MCI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iRklOQU5DRUZPUk1UWVBFIiBuYW1lPSJGSU5BTkNFRk9STVRZUEUiIHZhbHVlPSJtdWx0aXN0ZXAiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9IkRFQUxFUlRJUkVSRURJUkVDVENIRUNLIiBuYW1lPSJERUFMRVJUSVJFUkVESVJFQ1RDSEVDSyIgdmFsdWU9IjEiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9IkRFQUxFUlRJUkVSRURJUkVDVFRZUEUiIG5hbWU9IkRFQUxFUlRJUkVSRURJUkVDVFRZUEUiIHZhbHVlPSJjdXN0b20iPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9IkRFQUxFUlBBUlRSRURJUkVDVFRZUEUiIG5hbWU9IkRFQUxFUlBBUlRSRURJUkVDVFRZUEUiIHZhbHVlPSJjdXN0b20iPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9IklTVk0iIG5hbWU9IklTVk0iIHZhbHVlPSIiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9IkdSV0wiIG5hbWU9IkdSV0wiIHZhbHVlPSJiMmUzNTBiNzFjMTY0NmI3ZWVlYzllMWFmNmM4NTRiMTNjYjFkYjUxO2JhNmI4NjExY2JhMTE3ODAzMWIxN2ZhN2UzNTBhY2YyY2UxMzVhYTU7MDljMzU4MDdiYTQ3YTgyNTkyZWY4OGU1ZDYzMDRlYTY5OWI4Y2JlMiI+CgkJCQk8IS0tIDxpbnB1dCB0eXBlPSdoaWRkZW4nIHZhbHVlPSIvZGVtYW5kZXMvcHJpeC1vY2Nhc2lvbi8iIGlkPSdwcmljZVJlcXVlc3RGb2xkZXInLz4KCQkJCTxpbnB1dCB0eXBlPSdoaWRkZW4nIHZhbHVlPSIvZGVtYW5kZXMvZXNzYWlzLXJvdXRpZXItb2NjYXNpb24vIiBpZD0nU2NoZWR1bGVUZXN0RHJpdmVGb2xkZXInLz4KCQkJCTxpbnB1dCB0eXBlPSdoaWRkZW4nIHZhbHVlPSIvZGVtYW5kZXMvZmluYW5jZW1lbnQvIiBpZD0nRmluYW5jZUZvbGRlcicvPiAtLT4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSIvZGVtYW5kZXMvb2ZmcmUtb2NjYXNpb24vIiBpZD0idGV4dE1ha2VPZmZlckZvbGRlciI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iMCIgaWQ9Imhhc1ZCRENFbmFibGVkIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSIxIiBpZD0ibWVudUxvY2siPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9Im9lbUNlcnRpZmljYXRpb24iIHZhbHVlPSIxMDA4Ij4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJEaXNjb3VudFBvcHVwTmV3UmViYXRlU2hvd1RleHRVcyIgdmFsdWU9IjAiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9IkRpc2NvdW50UG9wdXBVc2VkUmViYXRlU2hvd1RleHRVcyIgdmFsdWU9IjAiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9ImNvb2tpZUxvZ1Rva2VuIiB2YWx1ZT0iTVRJd01EYzJPREk0TXpjME5RPT0iPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9ImNvb2tpZVRvQ2hlY2siIHZhbHVlPSIxIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJkaXNhYmxlSW50ZXJuYWxTZXNzaW9uIiB2YWx1ZT0iMSI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iZGVhbGVyUHJvdmluY2VDb2RlIiB2YWx1ZT0iUUMiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9InNpdGVJRCIgdmFsdWU9IjY3NyI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iQURNSU5fTkVXX0RPTlRfU0hPV19QUklDRV9NT0RFTFMiIHZhbHVlPSIiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9Ik5FV19QUklDRV9URVhUIiB2YWx1ZT0iQXBwZWxleiBwb3VyIHVuIHByaXgiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9IkZpbmFuY2VfRm9ybVR5cGUiIHZhbHVlPSJtdWx0aXN0ZXAiPgoJCQk8L2Rpdj4KCQk8L2Rpdj4KCQk8ZGl2IGlkPSJjb25maXJtX2Zvcm1zIj48L2Rpdj4KCgkJCgoJCTwhLS0gT086OjBmZjNkNWM3NjIyZDc0ZWI2NTEwNTliMzJkMTk1NjRhIC0tPgo8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0ic2l0ZUlEIiB2YWx1ZT0iNjc3Ij4JCQkKCgkJCQoJCTxzdHlsZT4KCgkJCSNsZWFkRGVhbGVyQXBwb2ludG1lbnQgc2lkZWJhci1sYyA+ICp7CgkJCQl3aWR0aDogY2xhbXAoMjAuNXJlbSwgbWF4KDkwdncsIDIwLjVyZW0pLCA2MHJlbSk7CgkJCQlkaXJlY3Rpb246IHJ0bDsKCQkJfQoKCQkJI2xlYWREZWFsZXJBcHBvaW50bWVudCBzaWRlYmFyLWxjID4gKiA+ICp7CgkJCQlkaXJlY3Rpb246IGluaXRpYWw7CgkJCX0KCgkJCSNsZWFkRGVhbGVyQXBwb2ludG1lbnQgc2lkZWJhci1sYyA+ICogPjpsYXN0LWNoaWxkewoJCQkJd2lkdGg6IDIwcmVtOwoJCQl9CgoJCQkjbGVhZERlYWxlckFwcG9pbnRtZW50IHNpZGViYXItbGN7CgkJCQktLXNpZGViYXItYnA6IDQwJTsKCQkJfQoKCQkJI2xlYWREZWFsZXJBcHBvaW50bWVudCBzd2l0Y2hlci1sY3sKCQkJCS0tc3dpdGNoLWJwOiAzNXJlbTsKCQkJfQoKCgkJCSNmb3JtRGVhbGVyQXBwb2ludG1lbnQgbGFiZWx7CgkJCQltYXgtd2lkdGg6MTlyZW07CgkJCQlkaXNwbGF5OiBmbGV4OwoJCQkJZmxleC13cmFwOiB3cmFwOwoJCQkJanVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwoJCQl9CgoJCQkjZm9ybURlYWxlckFwcG9pbnRtZW50IGxhYmVsIHNwYW57CgkJCQl3aWR0aDo0cmVtOwoJCQl9CgoKCQkJI2Zvcm1EZWFsZXJBcHBvaW50bWVudCBbdHlwZT0ic3VibWl0Il17CgkJCQltYXgtd2lkdGg6MTlyZW07CgkJCX0KCgkJCS5jb250YWN0TWFwQ29udGFpbmVyewoJCQkJaGVpZ2h0OjEwMCU7CgkJCQltaW4taGVpZ2h0Om1pbig3NXZoLCAzOHJlbSk7CgkJCX0KCgkJCS5jb250YWN0Rm9ybXsKCQkJCWJvcmRlci1jb2xvcjojYmJiOwoJCQkJYm94LXNpemluZzogYm9yZGVyLWJveDsKCQkJfQoKCQkJI2xlYWREZWFsZXJBcHBvaW50bWVudCAuY29udGFjdEZvcm0gaW5wdXR7CgkJCQltYXgtd2lkdGg6IDEwcmVtOwoJCQl9CgoKCgkJCSNsZWFkRGVhbGVyQXBwb2ludG1lbnQgLmZsYXRwaWNrci1kYXkuc2VsZWN0ZWR7CgkJCQliYWNrZ3JvdW5kLWNvbG9yOiMwMDA7CgkJCQlib3JkZXItY29sb3I6IzAwMDsKCQkJfQoKCQkJI2xlYWREZWFsZXJBcHBvaW50bWVudCAuZmxhdHBpY2tyLXRpbWUgOmlzKGlucHV0OmhvdmVyLGlucHV0OmZvY3VzKXsKCQkJCWJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OwoJCQl9CgoJCQkuZmxhdHBpY2tyLW1vbnRoRHJvcGRvd24tbW9udGgsIC5mbGF0cGlja3ItbW9udGhEcm9wZG93bi1tb250aHN7CgkJCQl0ZXh0LXRyYW5zZm9ybTp2YXIoLS10eHQtdXBwZXIsIHVwcGVyY2FzZSk7CgkJCX0KCgkJCS8qIC5kcC1sYXJnZSAuZmxhdHBpY2tyLWNhbGVuZGFyewoJCQkJd2lkdGg6MzByZW07CgkJCQlmb250LXNpemU6MS4xcmVtOwoJCQl9CgoJCQkuZHAtbGFyZ2UgLmZsYXRwaWNrci13ZWVrZGF5c3sKCQkJCWhlaWdodDoyLjVyZW07CgkJCX0KCgkJCS5kcC1sYXJnZSAuZmxhdHBpY2tyLWRheXsKCQkJCW1heC13aWR0aDogNHJlbTsKCQkJCWhlaWdodDogMi41cmVtOwoJCQkJbGluZS1oZWlnaHQ6IDIuNXJlbTsKCQkJfQoKCQkJLmRwLWxhcmdlIDppcyguZmxhdHBpY2tyLWRheXMsLmRheUNvbnRhaW5lcikgewoJCQkJd2lkdGg6MTAwJTsKCQkJCW1heC13aWR0aDogMzByZW07CgkJCX0gKi8KCQk8L3N0eWxlPgoKCQkJPGRpdiBpZD0ibGVhZERlYWxlckFwcG9pbnRtZW50IiBoaWRkZW4+CgkJCQk8ZGl2IGNsYXNzPSJmbGV4LWNlbnRlciBhbGlnbi1jZW50ZXIiPgoJCQkJPHNpZGViYXItbGM+CgkJCQkJPGRpdj4gPCEtLSBpbnRlcm1lZGlhcnkgd3JhcHBlciAtLT4KCgkJCQkJCTxib3gtbGM+CgkJCQkJCQk8c3RhY2stbGMgY2xhc3M9ImFsaWduLWNlbnRlciI+CgkJCQkJCQkJPHVsIGNsYXNzPSJjaGVja2xpc3QgLWZzLTEgLS1zIj4KCQkJCQkJCQkJPGxpPlVuZSBleHDDqXJpZW5jZSBwZXJzb25uYWxpc8OpZSBkw6hzIHZvdHJlIGFycml2w6llPC9saT4KCQkJCQkJCQkJPGxpPkF1Y3VuZSBhdHRlbnRlIGNoZXogbGUgY29uY2Vzc2lvbm5haXJlPC9saT4KCQkJCQkJCQkJPGxpPkF1Y3VuZSBwYXBlcmFzc2UgaW51dGlsZTogY29uY2VudHJlei12b3VzIHN1ciBsZSB2w6loaWN1bGU8L2xpPgoJCQkJCQkJCTwvdWw+CgkJCQkJCQkJPGJveC1sYyBjbGFzcz0iZmxleC1jZW50ZXIiPgoJCQkJCQkJCQk8aW5wdXQgY2xhc3M9ImRhdGVwaWNrZXIgZmxhdHBpY2tyLWlucHV0IiBoaWRkZW4gdHlwZT0idGV4dCIgdGl0bGU9IlNlbGVjdCBEYXRlLi4uIiBwbGFjZWhvbGRlcj0iU2VsZWN0IERhdGUuLi4iIGRhdGEtaWQ9ImlubGluZSIgcmVhZG9ubHk+CgkJCQkJCQkJPC9ib3gtbGM+CgkJCQkJCQkJPGJveC1sYyBjbGFzcz0iY29udGFjdEZvcm0gLWIgLXctMTAwIGZsZXgtY2VudGVyIC0tczIiPgoJCQkJCQkJCQk8Zm9ybSBpZD0iZm9ybURlYWxlckFwcG9pbnRtZW50IiBjbGFzcz0iLXctMTAwIiBub3ZhbGlkYXRlPgoJCQkJCQkJCQkJPHN0YWNrLWxjIGNsYXNzPSItLXMyIGFsaWduLWNlbnRlciI+CgoJCQkJCQkJCQkJCTxzcGFuIGNsYXNzPSItYm9sZCB0eHQtY2VudGVyIHR4dC11cHBlciBzZWxlY3RlZFRpbWUiPjwvc3Bhbj4KCQkJCQkJCQkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJkYXRlIj4KCgkJCQkJCQkJCQkJPHN3aXRjaGVyLWxjPgoJCQkJCQkJCQkJCQk8ZGl2IGNsYXNzPSJmbGV4LWNlbnRlciI+IDwhLS0gaW50ZXJtZWRpYXJ5IHdyYXBwZXIgLS0+CgkJCQkJCQkJCQkJCQk8bGFiZWwgY2xhc3M9ImZvcm0tbGFiZWwgYWxpZ24tY2VudGVyIj4KCQkJCQkJCQkJCQkJCQk8c3Bhbj5Ob20gKjwvc3Bhbj4KCQkJCQkJCQkJCQkJCQk8aW5wdXQgcmVxdWlyZWQgY2xhc3M9Ii1waCIgbmFtZT0ibmFtZSIgdHlwZT0idGV4dCI+CgkJCQkJCQkJCQkJCQk8L2xhYmVsPgoKCQkJCQkJCQkJCQkJCTxsYWJlbCBjbGFzcz0iZm9ybS1sYWJlbCBhbGlnbi1jZW50ZXIiPgoJCQkJCQkJCQkJCQkJCTxzcGFuPkNvdXJyaWVsICo8L3NwYW4+CgkJCQkJCQkJCQkJCQkJPGlucHV0IG5hbWU9ImVtYWlsIiB0eXBlPSJlbWFpbCIgcmVxdWlyZWQ+CgkJCQkJCQkJCQkJCQk8L2xhYmVsPgoKCQkJCQkJCQkJCQkJCTxsYWJlbCBjbGFzcz0iZm9ybS1sYWJlbCBhbGlnbi1jZW50ZXIiPgoJCQkJCQkJCQkJCQkJCTxzcGFuPlTDqWzDqXBob25lICo8L3NwYW4+CgkJCQkJCQkJCQkJCQkJPGlucHV0IGRhdGEtcHJpc3RpbmUtcGhvbmUgbmFtZT0icGhvbmVudW0iIHR5cGU9InRlbCIgcmVxdWlyZWQ+CgkJCQkJCQkJCQkJCQk8L2xhYmVsPgoJCQkJCQkJCQkJCQk8L2Rpdj4KCQkJCQkJCQkJCQk8L3N3aXRjaGVyLWxjPgoKCQkJCQkJCQkJCQk8YnV0dG9uIG9uc3VibWl0PSJqYXZhc2NyaXB0OnZvaWQoKSIgY2xhc3M9ImJ0biBidG4tcHJvbW8gLWZzLWxyIC13LTEwMCB0eHQtdXBwZXIgLWJvbGQiIHR5cGU9InN1Ym1pdCI+CgkJCQkJCQkJCQkJCVByZW5kcmUgcmVuZGV6LXZvdXMKCQkJCQkJCQkJCQk8L2J1dHRvbj4KCgkJCQkJCQkJCQkJPGlucHV0IG5hbWU9ImRhdGEiIHR5cGU9ImhpZGRlbiIgZGF0YS1tYWtlPSIiIGRhdGEtbW9kZWw9IiIgZGF0YS15ZWFyPSIiIGRhdGEtdHJpbT0iIiBkYXRhLWNvbmRpdGlvbj0iIiBkYXRhLWttPSIiIGRhdGEtdmluPSIiIGRhdGEtc3RvY2stbnVtYmVyPSIiPgoKCQkJCQkJCQkJCQk8aW5wdXQgbmFtZT0ic2VuZFRvIiB2YWx1ZT0iYmNlOTZmZTQ0NmUxODgwZGExMjZkMzJkODE3ZWVmNzN8OTU0OTA2NTA1IiB0eXBlPSJoaWRkZW4iPgoJCQkJCQkJCQkJCTxpbnB1dCBuYW1lPSJzZW5kVG9BREZGb3JtYXQiIHZhbHVlPSI3YzkyN2QzNWQ5ZTNjNzU5NDgxYWNmNjEzYWZjMmQxN3w5NTQ5MDY1MDUiIHR5cGU9ImhpZGRlbiI+CgkJCQkJCQkJCQkJPGlucHV0IG5hbWU9Im1haWxJRCIgdmFsdWU9IkRlYWxlckFwcG9pbnRtZW50IiB0eXBlPSJoaWRkZW4iPgoJCQkJCQkJCQkJCTxpbnB1dCBuYW1lPSJwb3B1cE9mZmVyVHlwZSIgdmFsdWU9IkRlYWxlckFwcG9pbnRtZW50QWxsIiB0eXBlPSJoaWRkZW4iPgoKCQkJCQkJCQkJCQk8ZGl2IGNsYXNzPSJsZWFkRW1haWwiIGhpZGRlbj4KCQkJCQkJCQkJCQkJPHNwYW4gZGF0YS1zdWJqZWN0PkxlYWQgOiBEZW1hbmRlIGRlIHJlbmRlei12b3VzPC9zcGFuPgoJCQkJCQkJCQkJCQk8c3BhbiBkYXRhLWJvZHk+Qm9uam91ciw8YnI+PGJyPlVuIGNsaWVudCBwb3RlbnRpZWwgYXlhbnQgdmlzaXTDqSB2b3RyZSBzaXRlIHdlYiwgYWltZXJhaXQgcHJlbmRyZSB1biByZW5kZXotdm91czo8YnI+PGJyPjx1PlJlbnNlaWduZW1lbnRzIHN1ciBsZSB2w6loaWN1bGU8L3U+Ojxicj5Nb2TDqGxlOiA8c3Ryb25nPiAgPC9zdHJvbmc+PGJyPk5JVjogPHN0cm9uZz57JFZJTn08L3N0cm9uZz48YnI+TnVtw6lybyBkZSBzdG9jazogPHN0cm9uZz57JFNUT0NLTlVNQkVSfTwvc3Ryb25nPjxicj5LaWxvbcOodHJlczogPHN0cm9uZz57JEtNfTwvc3Ryb25nPjxicj48YnI+PHU+RGF0ZSBkdSByZW5kZXotdm91cyBzb3VoYWl0w6k8L3U+IDogPHN0cm9uZz57JERBVEV9PC9zdHJvbmc+PGJyPjxicj48dT5SZW5zZWlnbmVtZW50cyBzdXIgbGUgdmlzaXRldXI8L3U+Ojxicj5Ob206IDxzdHJvbmc+eyROQU1FfTwvc3Ryb25nPjxicj5Db3VycmllbDogPHN0cm9uZz48YSBocmVmPSI\/cGF0aD1tYWlsdG86JTdCJTI0RU1BSUwlN0QiPnskRU1BSUx9PC9hPjwvc3Ryb25nPjxicj5Uw6lsw6lwaG9uZTogPHN0cm9uZz48YSBocmVmPSI\/cGF0aD10ZWw6JTdCJTI0UEhPTkVOVU0lN0QiPnskUEhPTkVOVU19PC9hPjwvc3Ryb25nPiB7JFBIT05FX1ZBTElEQVRJT05fQVRURU1QVFN9PGJyPjxicj48dT5Db25jZXNzaW9uPC91Pjo8YnI+Tm9tIDogPHN0cm9uZz57JERFQUxFUk5BTUV9PC9zdHJvbmc+PGJyPjxicj48ZGl2IHN0eWxlPSIjI1NFT0JMT0NLRElTUExBWSMjIj5Tb3VyY2UgTcOpZGlhOiA8c3Ryb25nPnskVVRNREVUQUlMU308L3N0cm9uZz48YnI+TmF2aWdhdGV1cjogPHN0cm9uZz57JFVTRVJBR0VOVH0gLSA8L3N0cm9uZz48YnI+SGlzdG9yaXF1ZSBkZSBuYXZpZ2F0aW9uOiA8c3Ryb25nPjxhIGhyZWY9Ij9wYXRoPSU3QiUyNFVVTElOSyU3RCIgcmVsPSJub2ZvbGxvdyB1Z2Mgc3BvbnNvcmVkIG5vaW5kZXgiIHN0eWxlPSJjb2xvcjpibGFjazsgdGV4dC1kZWNvcmF0aW9uOiBub25lOyI+Q2xpcXVleiBpY2k8L2E+PC9zdHJvbmc+PGJyPjwvZGl2PkNvbnNlbnRlbWVudDogPHN0cm9uZz57JENPTlNFTlRfREVUQUlMU308L3N0cm9uZz57JFBVUkNIQVNFX0lOVEVOVH08L3NwYW4+CgkJCQkJCQkJCQkJPC9kaXY+CgoJCQkJCQkJCQkJPC9zdGFjay1sYz4KCQkJCQkJCQkJPC9mb3JtPgoJCQkJCQkJCTwvYm94LWxjPgoJCQkJCQkJPC9zdGFjay1sYz4KCQkJCQkJPC9ib3gtbGM+CgoJCQkJCQk8ZGl2PgoJCQkJCQkJPHN0YWNrLWxjIGNsYXNzPSJjb250YWN0TWFwQ29udGFpbmVyIC0tcy04IC1iZy1saWdodCIgaWQ9ImZvb3Rlckdvb2dsZU1hcEhvdXJzQ29udGFpbmVyIj4KCgkJCQkJCQkJCgkJCTxpZnJhbWUgdGl0bGU9Ikdvb2dsZSBNYXAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGZyYW1lYm9yZGVyPSIwIiBjbGFzcz0iIGxhenlsb2FkZWQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9tYXBzL2VtYmVkL3YxL3BsYWNlP3E9cGxhY2VfaWQlM0FDaElKWTF0dXJWT1Z1VXdSUC0yWDNobU8xUDAmYW1wO2tleT1BSXphU3lBR1JOc0VzR091ald6b2xmNDZEYTZzSDYzT01KQ3ZaNjAmYW1wO3pvb209MTImYW1wO3JlZ2lvbj1DQSZhbXA7bGFuZ3VhZ2U9ZnIiIGFsbG93ZnVsbHNjcmVlbj0iIj48L2lmcmFtZT4KCgkJCQkJCQkJPGJveC1sYyBjbGFzcz0iY29udGFjdEJsb2NrIC0tczIgLW0wIj4KCQkJCQkJCQkJPHN0YWNrLWxjIGNsYXNzPSItLXMzIj4KCQkJCQkJCQkJCTxkaXY+CgkJCQkJCQkJCQkJPHN0YWNrLWxjIGNsYXNzPSItLXMtOCI+CgkJCQkJCQkJCQkJCTxzcGFuIGNsYXNzPSItLWZzMCI+U2l0dGVsbGUgTWF6ZGE8L3NwYW4+CgkJCQkJCQkJCQkJCTxhIGhyZWY9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jYS9tYXBzL2Rpci8\/YXBpPTEmYW1wO2Rlc3RpbmF0aW9uPVNpdHRlbGxlJTJCTWF6ZGElMkMxNTMyMCtCb3VsZXZhcmQrTGFjcm9peCUyQ1N0LUdlb3JnZXMlMkNRQyUyQ0c1WSsxUjcmYW1wO2hsPWZyJmFtcDt0PW0mYW1wO3o9MTYmYW1wO2llPVVURjgmYW1wO2Rlc3RpbmF0aW9uX3BsYWNlX2lkPUNoSUpZMXR1clZPVnVVd1JQLTJYM2htTzFQMCIgdGFyZ2V0PSJfYmxhbmsiIGNsYXNzPSItLWZzLTEiPgoJCQkJCQkJCQkJCQkJPHNwYW4+MTUzMjAgQm91bGV2YXJkIExhY3JvaXg8L3NwYW4+CgkJCQkJCQkJCQkJCQk8c3Bhbj5TdC1HZW9yZ2VzLCBRQzwvc3Bhbj4KCQkJCQkJCQkJCQkJCTxzcGFuPkc1WSAxUjc8L3NwYW4+CgkJCQkJCQkJCQkJCTwvYT4KCQkJCQkJCQkJCQk8L3N0YWNrLWxjPgoJCQkJCQkJCQkJPC9kaXY+CgoJCQkJCQkJCQkJPGRpdj4KCQkJCQkJCQkJCQk8c3RhY2stbGMgY2xhc3M9Ii0tcy04Ij4KCQkJCQkJCQkJCQkJPHNwYW4gY2xhc3M9Ii1ib2xkIj5Uw6lsw6lwaG9uZTwvc3Bhbj4KCQkJCQkJCQkJCQkJPHNwYW4gY2xhc3M9Ii0tZnMtMSI+CgkJCQkJCQkJCQkJCQk8YSBocmVmPSI\/cGF0aD10ZWw6NDE4JTIwMjI4LTQ4MTUiIGRhdGEtZGVwYXJ0bWVudD0iU2FsZXMiIHRpdGxlPSJDb250YWN0IFBob25lIj40MTggMjI4LTQ4MTU8L2E+CgkJCQkJCQkJCQkJCTwvc3Bhbj4KCQkJCQkJCQkJCQk8L3N0YWNrLWxjPgoJCQkJCQkJCQkJPC9kaXY+CgoJCQkJCQkJCQkJPGRpdj4KCQkJCQkJCQkJCQk8c3RhY2stbGMgY2xhc3M9Ii0tcy04Ij4KCQkJCQkJCQkJCQkJPHNwYW4gY2xhc3M9Ii1ib2xkIj5IZXVyZXM8L3NwYW4+CgkJCQkJCQkJCQkJCQkJCTxkaXYgaWQ9Iml0ZW1fbmV3Ij4KCQkJCTxzdGFjay1sYyBjbGFzcz0iaG91cnNMaXN0Ij4KCQkJCQkJCQkJPGJveC1sYyBjbGFzcz0iZmxleC1iZXR3ZWVuIC0tZnMtMSAtLXMtOCIgZGF0YS1taW5ob3VyPSIwODowMCIgZGF0YS1tYXhob3VyPSIxOTowMCIgZGF0YS1jbG9zZWQ9IjAiPgoJCQkJCTxzcGFuIGNsYXNzPSJkYXkiPkx1bmRpPC9zcGFuPgoJCQkJCTxzcGFuIGNsYXNzPSJob3VycyI+MDg6MDAgLSAxOTowMDwvc3Bhbj4KCQkJCTwvYm94LWxjPgkJCQk8Ym94LWxjIGNsYXNzPSJmbGV4LWJldHdlZW4gLS1mcy0xIC0tcy04IiBkYXRhLW1pbmhvdXI9IjA4OjAwIiBkYXRhLW1heGhvdXI9IjE5OjAwIiBkYXRhLWNsb3NlZD0iMCI+CgkJCQkJPHNwYW4gY2xhc3M9ImRheSI+TWFyZGk8L3NwYW4+CgkJCQkJPHNwYW4gY2xhc3M9ImhvdXJzIj4wODowMCAtIDE5OjAwPC9zcGFuPgoJCQkJPC9ib3gtbGM+CQkJCTxib3gtbGMgY2xhc3M9ImZsZXgtYmV0d2VlbiAtLWZzLTEgLS1zLTgiIGRhdGEtbWluaG91cj0iMDg6MDAiIGRhdGEtbWF4aG91cj0iMTk6MDAiIGRhdGEtY2xvc2VkPSIwIj4KCQkJCQk8c3BhbiBjbGFzcz0iZGF5Ij5NZXJjcmVkaTwvc3Bhbj4KCQkJCQk8c3BhbiBjbGFzcz0iaG91cnMiPjA4OjAwIC0gMTk6MDA8L3NwYW4+CgkJCQk8L2JveC1sYz4JCQkJPGJveC1sYyBjbGFzcz0iZmxleC1iZXR3ZWVuIC0tZnMtMSAtLXMtOCIgZGF0YS1taW5ob3VyPSIwODowMCIgZGF0YS1tYXhob3VyPSIxOTowMCIgZGF0YS1jbG9zZWQ9IjAiPgoJCQkJCTxzcGFuIGNsYXNzPSJkYXkiPkpldWRpPC9zcGFuPgoJCQkJCTxzcGFuIGNsYXNzPSJob3VycyI+MDg6MDAgLSAxOTowMDwvc3Bhbj4KCQkJCTwvYm94LWxjPgkJCQk8Ym94LWxjIGNsYXNzPSJmbGV4LWJldHdlZW4gLS1mcy0xIC0tcy04IiBkYXRhLW1pbmhvdXI9IjA4OjAwIiBkYXRhLW1heGhvdXI9IjE3OjAwIiBkYXRhLWNsb3NlZD0iMCI+CgkJCQkJPHNwYW4gY2xhc3M9ImRheSI+VmVuZHJlZGk8L3NwYW4+CgkJCQkJPHNwYW4gY2xhc3M9ImhvdXJzIj4wODowMCAtIDE3OjAwPC9zcGFuPgoJCQkJPC9ib3gtbGM+CQkJCTxib3gtbGMgY2xhc3M9ImZsZXgtYmV0d2VlbiAtLWZzLTEgLS1zLTgiIGRhdGEtbWluaG91cj0iMCIgZGF0YS1tYXhob3VyPSIwIiBkYXRhLWNsb3NlZD0iMSI+CgkJCQkJPHNwYW4gY2xhc3M9ImRheSI+U2FtZWRpPC9zcGFuPgoJCQkJCTxzcGFuIGNsYXNzPSJob3VycyI+RmVybcOpPC9zcGFuPgoJCQkJPC9ib3gtbGM+CQkJCTxib3gtbGMgY2xhc3M9ImZsZXgtYmV0d2VlbiAtLWZzLTEgLS1zLTgiIGRhdGEtbWluaG91cj0iMCIgZGF0YS1tYXhob3VyPSIwIiBkYXRhLWNsb3NlZD0iMSI+CgkJCQkJPHNwYW4gY2xhc3M9ImRheSI+RGltYW5jaGU8L3NwYW4+CgkJCQkJPHNwYW4gY2xhc3M9ImhvdXJzIj5GZXJtw6k8L3NwYW4+CgkJCQk8L2JveC1sYz4KCQkJCTwvc3RhY2stbGM+CgkJCTwvZGl2PgoJCQkJCQkJCQkJCTwvc3RhY2stbGM+CgkJCQkJCQkJCQk8L2Rpdj4KCgkJCQkJCQkJCTwvc3RhY2stbGM+CgkJCQkJCQkJPC9ib3gtbGM+CgoJCQkJCQkJPC9zdGFjay1sYz4KCQkJCQkJPC9kaXY+CgoJCQkJCTwvZGl2PgoJCQkJPC9zaWRlYmFyLWxjPgoJCQkJPC9kaXY+CgkJCQk8L2Rpdj4KCgkJCQkKCgkJCQkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iaGlkZGVuU2l0ZUlEIiB2YWx1ZT0iNjc3Ij4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJoaWRkZW5Ta2lwT25sb2FkUHJpbnRzY3JlZW4iIHZhbHVlPSIjI0RPTlRfU0tJUF9PTkxPQUQjIyI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iaGlkZGVuUHJpbnRzY3JlZW5LZXkiIHZhbHVlPSIjI1BSSU5UU0NSRUVOX0tFWSMjIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJoaWRkZW5EZWFsZXJOYW1lIiB2YWx1ZT0iU2l0dGVsbGUgTWF6ZGEiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iQ0JCQ2hlY2tVc2VyIiB2YWx1ZT0iTVRndU9UY3VNVFF1T0RZPSI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJmb3JtX2VtYWlscyIgdmFsdWU9IiI+PCEtLSBPTzo6M2EyNDZhNzk4ZDI1ZGNjMzMxNTc2ZWI1ZmQ4MGQ0N2UgLS0+CQkJPGRpdiBzdHlsZT0icG9zaXRpb246YWJzb2x1dGU7dG9wOjA7d2lkdGg6MXB4O2hlaWdodDoxcHg7b3ZlcmZsb3c6aGlkZGVuOyI+CgkJCSAgCgoJCQkgIAkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJmYWNlYm9vb2tfaXNfYWN0aXZlIiB2YWx1ZT0iMSIgY2xhc3M9Im9wdGFub24tY2F0ZWdvcnktQzAwMDItQzAwMDMtQzAwMDQtQzAwMDUiPgoJCQkJPCEtLSBGYWNlYm9vayBQaXhlbCBDb2RlIFZpZXdDb250ZW50ICAtLT4KCQkJCTwhLS0gT086OjdiMDk5MmRjOGU1NWZiNGRiZDMzOWVlYTljNjIxZTRhIC0tPgoJCQkJPG5vc2NyaXB0PgoJCQkJCTxpbWcgYXJpYS1oaWRkZW49InRydWUiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly93d3cuZmFjZWJvb2suY29tL3RyP2lkPTI2MDUyNTk0NjI5Mjc2NDQmYW1wO2V2PVBhZ2VWaWV3JmFtcDtub3NjcmlwdD0xIiBhbHQ9InRyIGlkIDI2MDUyNTk0NjI5Mjc2NDQgZXYgIHBhZ2UgdmlldyBub3NjcmlwdCAxIiBoZWlnaHQ9IjEiIHN0eWxlPSJkaXNwbGF5Om5vbmUiIHdpZHRoPSIxIiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+CgkJCQk8L25vc2NyaXB0PgoJCQk8IS0tIEVuZCBGYWNlYm9vayBQaXhlbCBDb2RlIFZpZXdDb250ZW50IC0tPgoKCQkgIDwvZGl2PgoKCQkgIDxkaXYgaWQ9ImNvbnZlcnNpb25UYWdzV3JhcHBlciI+PC9kaXY+CgoJCQk8IS0tIERXUC0yNDM5IC0tPgoKCQkJPCEtLSBPTzo6ODNjMjUyOGE3NTM4MGMwNzg3MmU5MmFkMmM5OWFlMmUgLS0+Cgo8IS0tIENVU1RPTSBCT0RZIEZSRUVGSUVMRCAtLT4KIAo8IS0tU1RBUlRfUkVNT1ZBQkxFX0NPREVfQkxPQ0tfQ09NTUVOVF8wMDAxLS0+Cgo8IS0tU1RBUlRfUkVNT1ZBQkxFX0NPREVfQkxPQ0tfQ09NTUVOVF8wMDAyLS0+CjxzY3JpcHQgc3JjPSJodHRwczovL2xpdmVjaGF0LmVrb25zaWxpby5pby82NWM5ZTcyYWRjYzZmNDc5ZGNjMWEzNGIuanMiIGFzeW5jPSIiIGNyb3Nzb3JpZ2luPSJhbm9ueW1vdXMiPjwvc2NyaXB0Pgo8IS0tRU5EX1JFTU9WQUJMRV9DT0RFX0JMT0NLX0NPTU1FTlRfMDAwMi0tPgoKPCEtLUVORF9SRU1PVkFCTEVfQ09ERV9CTE9DS19DT01NRU5UXzAwMDEtLT4KCjwhLS1TVEFSVF9SRU1PVkFCTEVfQ09ERV9CTE9DS19DT01NRU5UXzAwMDEtLT4KCjwhLS1TVEFSVF9SRU1PVkFCTEVfQ09ERV9CTE9DS19DT01NRU5UXzAwMDItLT4KCjwhLS0gU1RBUlQgLS0gRmFjZWJvb2sgLyBNZXRhIFBpeGVsIC0tIFJFUVVFU1RFUjogQ3VzdG9tZXIgLS0+CjwhLS0gT086OjkyZDI1ODVjNmYyODYyYWE1NmI5YTUxOGZmODM1Mzc5IC0tPgo8bm9zY3JpcHQ+PGltZyBhbHQ9ImZhY2Vib29rIHBpeGVsIHRyYWNraW5nIiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vd3d3LmZhY2Vib29rLmNvbS90cj9pZD03MTU0MzYyNzA2OTkwMTkmYW1wO2V2PVBhZ2VWaWV3JmFtcDtub3NjcmlwdD0xIiBoZWlnaHQ9IjEiIHN0eWxlPSJkaXNwbGF5Om5vbmUiIHdpZHRoPSIxIiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+PC9ub3NjcmlwdD4KPCEtLSBFTkQgLS0gRmFjZWJvb2sgLyBNZXRhIFBpeGVsIC0tIFJFUVVFU1RFUjogQ3VzdG9tZXIgLS0+Cgo8IS0tRU5EX1JFTU9WQUJMRV9DT0RFX0JMT0NLX0NPTU1FTlRfMDAwMi0tPgoKPCEtLUVORF9SRU1PVkFCTEVfQ09ERV9CTE9DS19DT01NRU5UXzAwMDEtLT4KCiA8IS0tIEVORCBDVVNUT00gQk9EWSBGUkVFRklFTEQgLS0+CgogICAgPGRpdiBpZD0iZW1haWxTdWNjZXNzTWVzc2FnZSIgY2xhc3M9InJldmVhbC1tb2RhbCBlbWFpbC1jb25zZW50LWJveCI+CiAgICAgIDxkaXYgY2xhc3M9Imljb24tdGl0bGUiPgogICAgICAgIDwhLS0gPHNwYW4gY2xhc3M9InRpdGxlLWljb24gc3VjY2VzcyAtbWwwIj48L3NwYW4+IC0tPgogICAgICAgIDxzcGFuIGNsYXNzPSJ0aXRsZS10eHQiPlZvdHJlIGRlbWFuZGUgYSBiaWVuIMOpdMOpIGVudm95w6llITwvc3Bhbj4KICAgICAgPC9kaXY+CiAgICAgIDxwIGNsYXNzPSJkZWZhdWx0U3VjY2VzcyI+PGJyPlZvdHJlIGRlbWFuZGUgYSDDqXTDqSBlbnZvecOpZSBhdmVjIHN1Y2PDqHMuIFVuIHJlcHLDqXNlbnRhbnQgdm91cyBjb250YWN0ZXJhIHNvdXMgcGV1LjwvcD4KICAgICAgPHAgY2xhc3M9InNlcnZpY2VTdWNjZXNzIiBzdHlsZT0iZGlzcGxheTpub25lOyI+PGJyPk1lcmNpIHBvdXIgdm90cmUgZGVtYW5kZS4gVW4gbWVtYnJlIGRlIG5vdHJlIMOpcXVpcGUgY29tbXVuaXF1ZXJhIGF2ZWMgdm91cyBzb3VzIHBldS48L3A+CiAgICAgIDwhLS0gPGEgY2xhc3M9ImNsb3NlLXJldmVhbC1tb2RhbCI+JiMyMTU7PC9hPiAtLT4KICAgICAgPGRpdiBjbGFzcz0iZW1haWwtY29uc2VudC1idG5zIC1wdDIwIC1yaWdodCBhbXBDb25zZW50UmVzcG9uc2VTZW5kRGlzbWlzcyI+CiAgICAgICAgPGEgaHJlZj0iP3BhdGg9IyIgY2xhc3M9ImNvbmZpcm1fc3VjY2Vzc0NvbnRpbnVlICBidG4tZGVmYXVsdCAiPkZlcm1lcjwvYT4KICAgICAgPC9kaXY+CiAgICAgIDxmb3JtIGlkPSJlbWFpbG1zZ2ZybSIgY2xhc3M9ImNvbmZpcm1faHRtbCIgdGFyZ2V0PSJpZnJhbWUiIG1ldGhvZD0icG9zdCIgYWN0aW9uPSIvY29uZmlybWF0aW9uLmh0bWwiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJsYWJlbCIgY2xhc3M9ImxhYmVsZW1haWwiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJzZWN0aW9uIiBjbGFzcz0ibGFiZWxzZWN0aW9uIiB2YWx1ZT0iT2NjYXNpb24iPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJicmFuZCIgY2xhc3M9ImJyYW5kZW1haWwiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJtb2RlbCIgY2xhc3M9Im1vZGVsZW1haWwiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ5ZWFyIiBjbGFzcz0ieWVhcmVtYWlsIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZ29vZ2xlaWQiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJnb29nbGVpZGQyY21lZGlhIiB2YWx1ZT0iIj4KCQkJCQkJICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJhZHdvcmRzY29uaWQiIHZhbHVlPSI3OTUzODE0NTYiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYWR3b3Jkc2xhYmVsaWQiIHZhbHVlPSJrQ0RJQ0tYb3RZWUJFTkNkb3ZzQyI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImJpbmdjb25pZCIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImJpbmdhY3Rpb25pZCIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImJpbmdkb21haW5pZCIgdmFsdWU9IiI+CgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJhZHJvbGxBZHYiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJhZHJvbGxQaXgiIHZhbHVlPSIiPgoKICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZmFjZWJvb2tDb25JZCIgdmFsdWU9IjI2MDUyNTk0NjI5Mjc2NDQiPgoKICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZG9tYWluIiB2YWx1ZT0ic2l0dGVsbGVtYXpkYS5jYSI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InJlZmVycmVyIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZGVwYXJ0bWVudCIgdmFsdWU9Ik5FVyI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImxlYWRfZGVwYXJ0bWVudCIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImlzZXhwcmVzcyIgY2xhc3M9ImlzZXhwcmVzcyIgdmFsdWU9IjAiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJpc3Byb21vIiB2YWx1ZT0iMCI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImlzaG9tZXBhZ2UiIHZhbHVlPSIwIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0idGVzdG1vZGUiIGNsYXNzPSJ0ZXN0bW9kZSIgdmFsdWU9IjAiPgoKICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ibGVhZFR5cGUiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJwYWdlSUQiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJjdXJyZW50VVJMIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iaXNDb25maXJtUG9wdXAiIHZhbHVlPSIiPgoKICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iY29uZmlybV9lbWFpbCIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImNvbmZpcm1fZmlyc3RfbmFtZSIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImNvbmZpcm1fbGFzdF9uYW1lIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iY29uZmlybV9waG9uZV9udW1iZXIiIHZhbHVlPSIiPgoKICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iaXNGdWxsV2lkdGgiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJkZWFsZXJOYW1lIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYnV0dG9uUG9zaXRpb24iIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJpc01vYmlsZU5ld1ZEUCIgdmFsdWU9IjAiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJmcm9tQXV0b0F1YmFpbmUiIHZhbHVlPSIiPgoKICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgdmFsdWU9Ik5FVyIgbmFtZT0idGV4dENhclNlY3Rpb25UeXBlIiBzdHlsZT0iZGlzcGxheTpub25lOyI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImxhbmciIHZhbHVlPSJmciI+CiAgICAgIDwvZm9ybT4KICAgICAgPGlmcmFtZSB3aWR0aD0iMSIgaGVpZ2h0PSIxIiBuYW1lPSJpZnJhbWUiIGZyYW1lYm9yZGVyPSIwIj48L2lmcmFtZT4KICAgIDwvZGl2PgoKICAgIDxkaXYgaWQ9ImVtYWlsRmFpbE1lc3NhZ2UiIGNsYXNzPSJyZXZlYWwtbW9kYWwgZW1haWwtY29uc2VudC1ib3giPgogICAgICA8c3BhbiBjbGFzcz0iZmFpbCI+VW5lIGVycmV1ciBzJ2VzdCBwcm9kdWl0ZTwvc3Bhbj4KICAgICAgPHA+Tm91cyBuJ2F2b25zIHBhcyBwdSBlbnZveWVyIHZvdHJlIG1lc3NhZ2UuIFMnaWwgdm91cyBwbGHDrnQgcmFmcmHDrmNoaXIgZXQgZXNzYXlleiDDoCBub3V2ZWF1PC9wPgogICAgICA8ZGl2IGNsYXNzPSJjbG9zZS1yZXZlYWwtbW9kYWwiPjxlbSBjbGFzcz0iZmEgZmEtdGltZXMtY2lyY2xlIj48L2VtPjwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSItcHQyMCAtcmlnaHQgYW1wQ29uc2VudFJlc3BvbnNlU2VuZERpc21pc3MiPgogICAgICAgIDxhIGhyZWY9Ij9wYXRoPSMiIGNsYXNzPSJjb25maXJtX2ZhaWxDb250aW51ZSAgYnRuLWRlZmF1bHQgIj5GZXJtZXI8L2E+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CgoKCQkKCQk8ZGl2IGlkPSJkMmNGb290ZXJDb29raWVEZWxldGUiIGNsYXNzPSJyZXZlYWwtbW9kYWwgIiBzdHlsZT0id2lkdGg6NTgwcHg7aGVpZ2h0OjM1MHB4O3BhZGRpbmc6OyIgZGF0YS1sYXp5bG9hZGlkPSJuZXdjYXJzX2QyY2Zvb3RlcmNvb2tpZWRlbGV0ZSI+CgkJCQoJCTwvZGl2PgoKCQk8IS0tIE9POjpiMmY4ODMwMzM5NTYxOGU1NzdmMzk5MDBjZDllZDkwZSAtLT4KCgkJCgkJCgkJPCEtLSBDTE9TRSBGT09URVJXSURHRVQgLS0+CgkJPCEtLSBPUEVOIFBPUFVQV0lER0VUIC0tPgoJCTwhLS0gTUFJTiBQT1BVUCBuZXcgQ29udGFjdFBvcHVwIC0tPgoJCQoJCTxkaXYgaWQ9ImNvbnRhY3Rwb3B1cCIgY2xhc3M9InJldmVhbC1tb2RhbCAiIGRhdGEtbGF6eWxvYWRpZD0ibmV3Y2Fyc19jb250YWN0cG9wdXAiPgoJCQkKCQk8L2Rpdj4KCgkJPCEtLSBPTzo6OGQ5ZjhjZmMxYjg5Mzg3YTEzOGVmNDFmMjM5NjJkZjcgLS0+CgoJCQoKICAgIDxkaXYgaWQ9ImVtYWlsU3VjY2Vzc01lc3NhZ2VfY29udGFjdHBvcHVwIiBjbGFzcz0icmV2ZWFsLW1vZGFsIGVtYWlsLWNvbnNlbnQtYm94Ij4KICAgICAgPGRpdiBjbGFzcz0iaWNvbi10aXRsZSI+CiAgICAgICAgPCEtLSA8c3BhbiBjbGFzcz0idGl0bGUtaWNvbiBzdWNjZXNzIC1tbDAiPjwvc3Bhbj4gLS0+CiAgICAgICAgPHNwYW4gY2xhc3M9InRpdGxlLXR4dCI+Vm90cmUgbWVzc2FnZSBhIGJpZW4gw6l0w6kgZW52b3nDqSE8L3NwYW4+CiAgICAgIDwvZGl2PgogICAgICA8cCBjbGFzcz0iZGVmYXVsdFN1Y2Nlc3MiPjxicj5NZXJjaSEgVW4gbWVtYnJlIGRlIG5vdHJlIMOpcXVpcGUgdm91cyBjb250YWN0ZXJhIHNvdXMgcGV1LjwvcD4KICAgICAgPHAgY2xhc3M9InNlcnZpY2VTdWNjZXNzIiBzdHlsZT0iZGlzcGxheTpub25lOyI+PGJyPk1lcmNpISBVbiBtZW1icmUgZGUgbm90cmUgw6lxdWlwZSB2b3VzIGNvbnRhY3RlcmEgc291cyBwZXUuPC9wPgogICAgICA8IS0tIDxhIGNsYXNzPSJjbG9zZS1yZXZlYWwtbW9kYWwiPiYjMjE1OzwvYT4gLS0+CiAgICAgIDxkaXYgY2xhc3M9ImVtYWlsLWNvbnNlbnQtYnRucyAtcHQyMCAtcmlnaHQgYW1wQ29uc2VudFJlc3BvbnNlU2VuZERpc21pc3MiPgogICAgICAgIDxhIGhyZWY9Ij9wYXRoPSMiIGNsYXNzPSJjb25maXJtX3N1Y2Nlc3NDb250aW51ZSAgYnRuLWRlZmF1bHQgIj5GZXJtZXI8L2E+CiAgICAgIDwvZGl2PgogICAgICA8Zm9ybSBpZD0iZW1haWxtc2dmcm1fY29udGFjdHBvcHVwIiBjbGFzcz0iY29uZmlybV9odG1sIiB0YXJnZXQ9ImlmcmFtZSIgbWV0aG9kPSJwb3N0IiBhY3Rpb249Ii9jb25maXJtYXRpb24uaHRtbCI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImxhYmVsIiBjbGFzcz0ibGFiZWxlbWFpbCIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InNlY3Rpb24iIGNsYXNzPSJsYWJlbHNlY3Rpb24iIHZhbHVlPSJPY2Nhc2lvbiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImJyYW5kIiBjbGFzcz0iYnJhbmRlbWFpbCIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Im1vZGVsIiBjbGFzcz0ibW9kZWxlbWFpbCIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InllYXIiIGNsYXNzPSJ5ZWFyZW1haWwiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJnb29nbGVpZCIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Imdvb2dsZWlkZDJjbWVkaWEiIHZhbHVlPSIiPgoJCQkJCQkgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImFkd29yZHNjb25pZCIgdmFsdWU9Ijc5NTM4MTQ1NiI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJhZHdvcmRzbGFiZWxpZCIgdmFsdWU9ImtDRElDS1hvdFlZQkVOQ2RvdnNDIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYmluZ2NvbmlkIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYmluZ2FjdGlvbmlkIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYmluZ2RvbWFpbmlkIiB2YWx1ZT0iIj4KCiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImFkcm9sbEFkdiIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImFkcm9sbFBpeCIgdmFsdWU9IiI+CgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJmYWNlYm9va0NvbklkIiB2YWx1ZT0iMjYwNTI1OTQ2MjkyNzY0NCI+CgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJkb21haW4iIHZhbHVlPSJzaXR0ZWxsZW1hemRhLmNhIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0icmVmZXJyZXIiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJkZXBhcnRtZW50IiB2YWx1ZT0iTkVXIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ibGVhZF9kZXBhcnRtZW50IiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iaXNleHByZXNzIiBjbGFzcz0iaXNleHByZXNzIiB2YWx1ZT0iMCI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImlzcHJvbW8iIHZhbHVlPSIwIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iaXNob21lcGFnZSIgdmFsdWU9IjAiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ0ZXN0bW9kZSIgY2xhc3M9InRlc3Rtb2RlIiB2YWx1ZT0iMCI+CgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJsZWFkVHlwZSIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InBhZ2VJRCIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImN1cnJlbnRVUkwiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJpc0NvbmZpcm1Qb3B1cCIgdmFsdWU9IiI+CgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJjb25maXJtX2VtYWlsIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iY29uZmlybV9maXJzdF9uYW1lIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iY29uZmlybV9sYXN0X25hbWUiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJjb25maXJtX3Bob25lX251bWJlciIgdmFsdWU9IiI+CgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJpc0Z1bGxXaWR0aCIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImRlYWxlck5hbWUiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJidXR0b25Qb3NpdGlvbiIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImlzTW9iaWxlTmV3VkRQIiB2YWx1ZT0iMCI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImZyb21BdXRvQXViYWluZSIgdmFsdWU9IiI+CgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iTkVXIiBuYW1lPSJ0ZXh0Q2FyU2VjdGlvblR5cGUiIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ibGFuZyIgdmFsdWU9ImZyIj4KICAgICAgPC9mb3JtPgogICAgICA8aWZyYW1lIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIG5hbWU9ImlmcmFtZSIgZnJhbWVib3JkZXI9IjAiPjwvaWZyYW1lPgogICAgPC9kaXY+CgogICAgPGRpdiBpZD0iZW1haWxGYWlsTWVzc2FnZV9jb250YWN0cG9wdXAiIGNsYXNzPSJyZXZlYWwtbW9kYWwgZW1haWwtY29uc2VudC1ib3giPgogICAgICA8c3BhbiBjbGFzcz0iZmFpbCI+VW5lIGVycmV1ciBzJ2VzdCBwcm9kdWl0ZTwvc3Bhbj4KICAgICAgPHA+Tm91cyBuJ2F2b25zIHBhcyBwdSBlbnZveWVyIHZvdHJlIG1lc3NhZ2UuIFMnaWwgdm91cyBwbGHDrnQgcmFmcmHDrmNoaXIgZXQgZXNzYXlleiDDoCBub3V2ZWF1PC9wPgogICAgICA8ZGl2IGNsYXNzPSJjbG9zZS1yZXZlYWwtbW9kYWwiPjxlbSBjbGFzcz0iZmEgZmEtdGltZXMtY2lyY2xlIj48L2VtPjwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSItcHQyMCAtcmlnaHQgYW1wQ29uc2VudFJlc3BvbnNlU2VuZERpc21pc3MiPgogICAgICAgIDxhIGhyZWY9Ij9wYXRoPSMiIGNsYXNzPSJjb25maXJtX2ZhaWxDb250aW51ZSAgYnRuLWRlZmF1bHQgIj5GZXJtZXI8L2E+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CgoKCQkJCTwhLS0gT086OjNkNzg1NDI3NDEyNWVhNjliMDI0NTc1NjQ2YTY5OGRjIC0tPgoJCQo8IS0tIEVORCBuZXcgLS0+Cgo8IS0tIENSRURJVCBTQ09SRSBQT1BVUCAtLT4KCQkKCQk8ZGl2IGlkPSJjcmVkaXRTY29yZVBvcHVwQ29udGFpbmVyIiBjbGFzcz0icmV2ZWFsLW1vZGFsICIgc3R5bGU9IndpZHRoOjc2MHB4O2hlaWdodDozODBweDsiIGRhdGEtbGF6eWxvYWRpZD0ibmV3Y2Fyc19jcmVkaXRzY29yZXBvcHVwY29udGFpbmVyIj4KCQkJCgkJPC9kaXY+CgoJCTwhLS0gT086OjY2MzExZWQ4NjVlYzk5ZDJmMjJiOWNhODVhZTExNjViIC0tPgoKCQkKCiAgICA8ZGl2IGlkPSJlbWFpbFN1Y2Nlc3NNZXNzYWdlX2NyZWRpdFNjb3JlUG9wdXBDb250YWluZXIiIGNsYXNzPSJyZXZlYWwtbW9kYWwgZW1haWwtY29uc2VudC1ib3giPgogICAgICA8ZGl2IGNsYXNzPSJpY29uLXRpdGxlIj4KICAgICAgICA8IS0tIDxzcGFuIGNsYXNzPSJ0aXRsZS1pY29uIHN1Y2Nlc3MgLW1sMCI+PC9zcGFuPiAtLT4KICAgICAgICA8c3BhbiBjbGFzcz0idGl0bGUtdHh0Ij5Wb3RyZSBkZW1hbmRlIGEgYmllbiDDqXTDqSBlbnZvecOpZSE8L3NwYW4+CiAgICAgIDwvZGl2PgogICAgICA8cCBjbGFzcz0iZGVmYXVsdFN1Y2Nlc3MiPjxicj5NZXJjaSEgVW4gY29uc2VpbGxlciBjb21tdW5pcXVlcmEgYXZlYyB2b3VzIHBvdXIgdm91cyBkb25uZXIgbGVzIGTDqXRhaWxzIHN1ciB2b3RyZSBwb3RlbnRpZWwgZGUgY3LDqWRpdC48L3A+CiAgICAgIDxwIGNsYXNzPSJzZXJ2aWNlU3VjY2VzcyIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPjxicj5NZXJjaSEgVW4gY29uc2VpbGxlciBjb21tdW5pcXVlcmEgYXZlYyB2b3VzIHBvdXIgdm91cyBkb25uZXIgbGVzIGTDqXRhaWxzIHN1ciB2b3RyZSBwb3RlbnRpZWwgZGUgY3LDqWRpdC48L3A+CiAgICAgIDwhLS0gPGEgY2xhc3M9ImNsb3NlLXJldmVhbC1tb2RhbCI+JiMyMTU7PC9hPiAtLT4KICAgICAgPGRpdiBjbGFzcz0iZW1haWwtY29uc2VudC1idG5zIC1wdDIwIC1yaWdodCBhbXBDb25zZW50UmVzcG9uc2VTZW5kRGlzbWlzcyI+CiAgICAgICAgPGEgaHJlZj0iP3BhdGg9IyIgY2xhc3M9ImNvbmZpcm1fc3VjY2Vzc0NvbnRpbnVlICBidG4tZGVmYXVsdCAiPkZlcm1lcjwvYT4KICAgICAgPC9kaXY+CiAgICAgIDxmb3JtIGlkPSJlbWFpbG1zZ2ZybV9jcmVkaXRTY29yZVBvcHVwQ29udGFpbmVyIiBjbGFzcz0iY29uZmlybV9odG1sIiB0YXJnZXQ9ImlmcmFtZSIgbWV0aG9kPSJwb3N0IiBhY3Rpb249Ii9jb25maXJtYXRpb24uaHRtbCI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImxhYmVsIiBjbGFzcz0ibGFiZWxlbWFpbCIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InNlY3Rpb24iIGNsYXNzPSJsYWJlbHNlY3Rpb24iIHZhbHVlPSJPY2Nhc2lvbiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImJyYW5kIiBjbGFzcz0iYnJhbmRlbWFpbCIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Im1vZGVsIiBjbGFzcz0ibW9kZWxlbWFpbCIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InllYXIiIGNsYXNzPSJ5ZWFyZW1haWwiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJnb29nbGVpZCIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Imdvb2dsZWlkZDJjbWVkaWEiIHZhbHVlPSIiPgoJCQkJCQkgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImFkd29yZHNjb25pZCIgdmFsdWU9Ijc5NTM4MTQ1NiI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJhZHdvcmRzbGFiZWxpZCIgdmFsdWU9ImtDRElDS1hvdFlZQkVOQ2RvdnNDIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYmluZ2NvbmlkIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYmluZ2FjdGlvbmlkIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYmluZ2RvbWFpbmlkIiB2YWx1ZT0iIj4KCiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImFkcm9sbEFkdiIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImFkcm9sbFBpeCIgdmFsdWU9IiI+CgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJmYWNlYm9va0NvbklkIiB2YWx1ZT0iMjYwNTI1OTQ2MjkyNzY0NCI+CgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJkb21haW4iIHZhbHVlPSJzaXR0ZWxsZW1hemRhLmNhIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0icmVmZXJyZXIiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJkZXBhcnRtZW50IiB2YWx1ZT0iTkVXIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ibGVhZF9kZXBhcnRtZW50IiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iaXNleHByZXNzIiBjbGFzcz0iaXNleHByZXNzIiB2YWx1ZT0iMCI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImlzcHJvbW8iIHZhbHVlPSIwIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iaXNob21lcGFnZSIgdmFsdWU9IjAiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ0ZXN0bW9kZSIgY2xhc3M9InRlc3Rtb2RlIiB2YWx1ZT0iMCI+CgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJsZWFkVHlwZSIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InBhZ2VJRCIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImN1cnJlbnRVUkwiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJpc0NvbmZpcm1Qb3B1cCIgdmFsdWU9IiI+CgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJjb25maXJtX2VtYWlsIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iY29uZmlybV9maXJzdF9uYW1lIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iY29uZmlybV9sYXN0X25hbWUiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJjb25maXJtX3Bob25lX251bWJlciIgdmFsdWU9IiI+CgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJpc0Z1bGxXaWR0aCIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImRlYWxlck5hbWUiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJidXR0b25Qb3NpdGlvbiIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImlzTW9iaWxlTmV3VkRQIiB2YWx1ZT0iMCI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImZyb21BdXRvQXViYWluZSIgdmFsdWU9IiI+CgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iTkVXIiBuYW1lPSJ0ZXh0Q2FyU2VjdGlvblR5cGUiIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ibGFuZyIgdmFsdWU9ImZyIj4KICAgICAgPC9mb3JtPgogICAgICA8aWZyYW1lIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIG5hbWU9ImlmcmFtZSIgZnJhbWVib3JkZXI9IjAiPjwvaWZyYW1lPgogICAgPC9kaXY+CgogICAgPGRpdiBpZD0iZW1haWxGYWlsTWVzc2FnZV9jcmVkaXRTY29yZVBvcHVwQ29udGFpbmVyIiBjbGFzcz0icmV2ZWFsLW1vZGFsIGVtYWlsLWNvbnNlbnQtYm94Ij4KICAgICAgPHNwYW4gY2xhc3M9ImZhaWwiPlVuZSBlcnJldXIgcydlc3QgcHJvZHVpdGU8L3NwYW4+CiAgICAgIDxwPk5vdXMgbidhdm9ucyBwYXMgcHUgZW52b3llciB2b3RyZSBtZXNzYWdlLiBTJ2lsIHZvdXMgcGxhw650IHJhZnJhw65jaGlyIGV0IGVzc2F5ZXogw6Agbm91dmVhdTwvcD4KICAgICAgPGRpdiBjbGFzcz0iY2xvc2UtcmV2ZWFsLW1vZGFsIj48ZW0gY2xhc3M9ImZhIGZhLXRpbWVzLWNpcmNsZSI+PC9lbT48L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0iLXB0MjAgLXJpZ2h0IGFtcENvbnNlbnRSZXNwb25zZVNlbmREaXNtaXNzIj4KICAgICAgICA8YSBocmVmPSI\/cGF0aD0jIiBjbGFzcz0iY29uZmlybV9mYWlsQ29udGludWUgIGJ0bi1kZWZhdWx0ICI+RmVybWVyPC9hPgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgoKCgkJCQk8IS0tIE9POjpkNjZmNWQ5NDg1OTc0MmM2YTUxZjhiYWQ5YzBkZmFlMCAtLT4KCQkKPCEtLSBFTkQgQ1JFRElUIFNDT1JFIFBPUFVQIC0tPgoKPCEtLSBDUkVESVQgU0NPUkUgQ09ORklSTSBQT1BVUCAtLT4KCjwhLS0gRU5EIENSRURJVCBTQ09SRSBDT05GSVJNIFBPUFVQIC0tPgoKCgoKPCEtLSBGSU5BTkNFIE1VTFRJU1RFUCBQT1BVUCBuZXcgLS0+CgkJCgkJPGRpdiBpZD0iZmluYW5jZU11bHRpc3RlcFBvcHVwQ29udGFpbmVyIiBjbGFzcz0icmV2ZWFsLW1vZGFsICIgc3R5bGU9IndpZHRoOjU4MHB4O2hlaWdodDo0NDVweDtwYWRkaW5nOjsiIGRhdGEtbGF6eWxvYWRpZD0ibmV3Y2Fyc19maW5hbmNlbXVsdGlzdGVwcG9wdXBjb250YWluZXIiPgoJCQkKCQk8L2Rpdj4KCgkJPCEtLSBPTzo6NWM2NDU2MzQ4ZGRjOGI3MjI3M2IyNjgzNDEwODFmNWQgLS0+CgoJCQoJCQo8IS0tIEVORCBuZXcgLS0+Cgo8IS0tIEZJTkFOQ0UgTVVMVElTVEVQIElOU1RBTlQgLS0+Cgo8IS0tIEVORCBGSU5BTkNFIE1VTFRJU1RFUCBJTlNUQU5UIC0tPgoKPCEtLSBDUkVESVQgQk9PU1QgTVVMVEkgLS0+Cgo8IS0tIEVORCBDUkVESVQgQk9PU1QgTVVMVEkgLS0+Cgo8IS0tIFNFQ09ORCBDSEFOQ0UgUE9QVVAgbmV3IC0tPgoKPCEtLSBFTkQgbmV3IC0tPgoKPCEtLSBSRVRVUk4gUE9QVVAgbmV3IC0tPgoKPCEtLSBFTkQgbmV3IC0tPgoKPCEtLSBFWElUIFBPUFVQIG5ldyAtLT4KCjwhLS0gRU5EIG5ldyAtLT4KCjwhLS0gQkVTVCBQUkFDVElDRSBQT1BVUCBuZXcgLS0+Cgo8IS0tIEVORCBuZXcgLS0+CgkJPCEtLSBDTE9TRSBQT1BVUFdJREdFVCAtLT4KCQkKCQk8IS0tIFBBWU1FTlQgQ0FMQ1VMQVRPUiBQT1BVUCAgLS0+CgkJCgkJPGRpdiBpZD0icGF5bWVudENhbGN1bGF0b3JQb3B1cENvbnRhaW5lciIgY2xhc3M9InJldmVhbC1tb2RhbCAiIHN0eWxlPSJ3aWR0aDo5MDBweDttaW4taGVpZ2h0OjQ5NXB4OyIgZGF0YS1sYXp5bG9hZGlkPSJuZXdjYXJzX3BheW1lbnRjYWxjdWxhdG9ycG9wdXBjb250YWluZXIiPgoJCQkKCQk8L2Rpdj4KCgkJPCEtLSBPTzo6NWFkMjkzYTU3OTViNGNmZTZhZmY5NmFjYWNlMjRmOTIgLS0+CgoJCQoJCTwhLS0gRU5EIFBBWU1FTlQgQ0FMQ1VMQVRPUiAgLS0+CgoKCQk8ZGl2IGlkPSJzcGVjaWFsU2NoZWR1bGVDb250ZW50Ij48L2Rpdj4KCTxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSJORVciIGlkPSJkZWZhdWx0RGVwYXJ0bWVudCI+CgoJPC9kaXY+","logs":"{\"result\":\"1\",\"error\":\"\",\"sources\":\"https:\\\/\\\/sittellemazda.ca\\\/js_r\\\/resource.loader.fr.js?v=3&js=hVPLjtswDPyhJsGmRX8gbdDDFkixLXoMGJm2GcuiK1Fxs19ferOW7DzQg2F5hjLJ4XB1DKvjn4j-vDyGD6v8ZZgbwhE8gSNrQU8XPCjvAjq5F-BEiWeGAv3j-_NsBwj4-dMVWIBvhNkKdVfMCSwVJKnmFsiNZwuv50CvmqLN4OXeItKiBCPsz6un5dPH5ToT0-hcbdDYJAJqGvsNXGFzY8caQi1wsCnKYW_ApwaLtdmHmkrZF1SRgJ0S79Deo-ivL3FTHoLZV5B06Tw5-VlT-vlcti157Nk391uhFsIDqmTfTqS0PyKZ5utw-k1FhamkCh16Mt-VuBpIpx3IeVez8PqKEg8ukBC724EshaOpX3rqcEpWzJVVtbvUaMks6OfVcIeu5pilrpCf2cBbqndIGIKkYdXS2rUBd4LpeMQ0q9h5LkmHWJLTEd0W6vGEeXYdd7FTj2V_TzzavxgPYuodFCMU-nLmpLRj0UnBfUpWgOAvIRtmicaPYbPUvbsp5vCwATu8vujdrbvFN7nsU8ThmZngAi2kxsWbQUbBVQdncN9GXb8gmIsAa6IF7WYbnRm0zsXCudXN36SIW6e1XEzKSbDFrFVG4S9xuO9Y3YQg5PCBnzV7pxb2_6PLVGJo0KKocQaRPdvJiifqgOVkhnp3XHVydqjlGP4B&jsrpl=&wswidth=0&device=desktop&ua=Q0NCb3QvMi4wIChodHRwczovL2NvbW1vbmNyYXdsLm9yZy9mYXEvKQ==\"}"}