{"title":"PHRpdGxlPkZvcmQgbmV1ZnMgMjAyNSwgMjAyNiAmYW1wOyAyMDI3IMOgIENvYXRpY29vayB8IE1hdXJhaXMgQXV0b21vYmlsZXM8L3RpdGxlPg==","metas":"PG1ldGEgaXRlbXByb3A9Im5hbWUiIGNvbnRlbnQ9IiAgIj48bWV0YSBpdGVtcHJvcD0iZGVzY3JpcHRpb24iIGNvbnRlbnQ9IiI+","js_inline":"CgkoKGQpID0+IHsKCQljb25zdCBjZSA9IGQuY3JlYXRlRWxlbWVudDsKCQlsZXQgdXJsQ2F0QXJyID0gewoJCQknY2xhcml2b3kuY29tJyA6ICdDMDAwMicsCgkJCSdkZWFsZXItbGVhZHMuY2EnIDogJ0MwMDAzJywKCQkJJ3JvYWRzdGVyLmNvbS9yb2Fkc3RlcicgOiAnQzAwMDInLC8vRFdQLTEyMjgxCgkJCSdmemxuay5jb20vc2lnbmFscy5qcycgOiAnQzAwMDInLC8vRFdQLTEyMjg5CgkJCSdsaXZlY2hhdGluYy5jb20vdHJhY2tpbmcuanMnIDogJ0MwMDAzJywvL0RXUC0xMjMwMwoJCQkndGhlbGl2ZWNoYXRzb2Z0d2FyZS5jb20nIDogJ0MwMDAzJywvL0RXUC0xMjI5NwoJCQknY2FuYWRhLmRpZ2l0YWwtaW50ZXJ2aWV3LmNvbScgOiAnQzAwMDMnLC8vRFdQLTEyMzAwCgkJCSdzZGsuYXV0b3ZlcmlmeS5jb20nIDogJ0MwMDAzJywvL0RXUC0xMjMwMQoJCQknYW5hbHl0aWNzLmpzJyA6ICdDMDAwMicsLy9EV1AtMTIzMDkKCQkJJ2hzLXNjcmlwdHMuY29tJyA6ICdDMDAwNCcsLy9EV1AtMTIzMjAKCQkJJ21hcmtldGluZ2F1dG9tYXRpb24uc2VydmljZXMnIDogJ0MwMDA0JywvL0RXUC0xMjMyMgoJCQknbGVhZGZveC5jbycgOiAnQzAwMDQnLAoJCQknc3RhdGljLnVwdHJhY3MuY29tJyA6ICdDMDAwMycsLy9EV1AtMTIzNTQKIAkJCSdiYXQuYmluZy5jb20nIDogJ0MwMDAyJywvL0RXUC0xMjM1NAoJCQknZ3RhZy9qcycgOiAnQzAwMDInLAoJCQknc2QuanMnIDogJ0MwMDAxJywKCQkJJ3NkYS5qcycgOiAnQzAwMDEnLAoJCQkKCQl9OwoJCWxldCB1cmxDYXRSZWdleCA9ICcoJyArIE9iamVjdC5rZXlzKHVybENhdEFycikuam9pbignfCcpLnJlcGxhY2UoL1srPy5dL2csICdcJCYnKSArICcpJzsKCQlsZXQgY3VycmVudENvbnNlbnQgPSBnZXRDb25zZW50KCk7CgkJd2luZG93LnNjcmlwdFVybEFyciA9IFtdOwoJCWQuY3JlYXRlRWxlbWVudCA9IGZ1bmN0aW9uKC4uLmFyZ3MpIHsKCQkJY29uc3QgcyA9IGNlLmJpbmQoZCkoLi4uYXJncyksIHNhID0gcy5zZXRBdHRyaWJ1dGUuYmluZChzKTsKCQkJcy5zZXRBdHRyaWJ1dGUgPSBmdW5jdGlvbihuLCB2KSB7CgkJCQlpZihuID09PSAnc3JjJyAmJiB3aW5kb3cuc2NyaXB0VXJsQXJyLmluZGV4T2Yodi50b1N0cmluZygpKSA9PSAtMSkgewoJCQkJCWlmKChuZXcgUmVnRXhwKHVybENhdFJlZ2V4KSkudGVzdCh2KSl7CgkJCQkJCWZvcihrZXkgaW4gdXJsQ2F0QXJyKXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIAoJCQkJCQkJaWYgKChuZXcgUmVnRXhwKGtleSkpLnRlc3QodikpIHsKCQkJCQkJCQl3aW5kb3cuc2NyaXB0VXJsQXJyLnB1c2godi50b1N0cmluZygpKTsKCQkJCQkJCQlpZihrZXkgPT0gJ2d0YWcvanMnIHx8IGtleSA9PSAnYmF0LmJpbmcuY29tJyB8fCBrZXkgPT0gJ3NkLmpzJyB8fCBrZXkgPT0gJ3NkYS5qcycpewoJCQkJCQkJCQlzYSgnZGF0YS1vdC1pZ25vcmUnLCB0cnVlKTsKCQkJCQkJCQkJc2EoJ3R5cGUnLCAndGV4dC9qYXZhc2NyaXB0Jyk7CgkJCQkJCQkJfSBlbHNlIGlmKGN1cnJlbnRDb25zZW50ID09IG51bGwgfHwgY3VycmVudENvbnNlbnQuaW5kZXhPZih1cmxDYXRBcnJba2V5XSkgPT0gLTEpewoJCQkJCQkJCQlzYSgndHlwZScsICd0ZXh0L3BsYWluJyk7CgkJCQkJCQkJCXNhKCdjbGFzcycsICdvcHRhbm9uLWNhdGVnb3J5LScgKyB1cmxDYXRBcnJba2V5XSk7CgkJCQkJCQkJfQoJCQkJCQkJCWJyZWFrOwoJCQkJCQkJfQoJCQkJCQl9CgkJCQkJfQoJCQkJfQoJCQkJc2Eobiwgdik7CgkJCX0KCQkJcmV0dXJuIHM7CgkJfQoJCWZ1bmN0aW9uIGdldENvbnNlbnQoKXsKCQkJbGV0IG5hbWUgPSAnZDJjX2Nvb2tpZV9jb25zZW50JyArICc9JzsKCQkJbGV0IGNhID0gKCcnK2RvY3VtZW50LmNvb2tpZSkuc3BsaXQoJzsnKTsKCQkJZm9yKGxldCBpID0gMDsgaSA8IGNhLmxlbmd0aDsgaSsrKSB7CgkJCQlsZXQgYyA9IGNhW2ldOwoJCQkJYyA9IGMudHJpbSgpOwoJCQkJaWYgKGMuaW5kZXhPZihuYW1lKSA9PSAwKSB7CgkJCQkJdHJ5ewoJCQkJCQljID0gZGVjb2RlVVJJQ29tcG9uZW50KCBjICk7CgkJCQkJfSBjYXRjaCggZSApCgkJCQkJewoJCQkJCQljb25zb2xlLmxvZyggZSApOwoJCQkJCQlyZXR1cm4gbnVsbDsKCQkJCQl9CgkJCQkJcmV0dXJuIGMuc3Vic3RyaW5nKG5hbWUubGVuZ3RoLCBjLmxlbmd0aCk7CgkJCQl9CgkJCX0KCQkJcmV0dXJuIG51bGw7CgkJfQoJfSkoZG9jdW1lbnQpOwoKCWRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbigpIHsKCS8vIExpc3RlbiBmb3IgY2hhbmdlcyB0byB0aGUgRE9NCgkJbGV0IG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obXV0YXRpb25zKSB7CgkJCW11dGF0aW9ucy5mb3JFYWNoKGZ1bmN0aW9uKG11dGF0aW9uKSB7CgkJCQlpZiAobXV0YXRpb24uYWRkZWROb2RlcyAmJiBtdXRhdGlvbi5hZGRlZE5vZGVzLmxlbmd0aCA+IDApIHsKCQkJCQkvLyBDaGVjayBpZiBvdXIgc2NyaXB0IGhhcyBiZWVuIGFkZGVkIHRvIHRoZSBET00KCQkJCQlmb3IgKGxldCBpID0gMDsgaSA8IG11dGF0aW9uLmFkZGVkTm9kZXMubGVuZ3RoOyBpKyspIHsKCQkJCQkJbGV0IG5vZGUgPSBtdXRhdGlvbi5hZGRlZE5vZGVzW2ldOwoJCQkJCQlpZiAobm9kZS5ub2RlVHlwZSA9PT0gMSAmJiBub2RlLnRhZ05hbWUgPT09ICdTQ1JJUFQnICYmIG5vZGUuc3JjICYmIG5vZGUuc3JjLmluY2x1ZGVzKCdjYW5hZGEuZGlnaXRhbC1pbnRlcnZpZXcuY29tJykgJiYgdHlwZW9mIE9uZVRydXN0ICE9PSAndW5kZWZpbmVkJykgewoJCQkJCQkJc2V0VGltZW91dChmdW5jdGlvbigpewoJCQkJCQkJCXRyeXtEaWdpdGFsSW50ZXJ2aWV3LkxhdW5jaGVyLmVuYWJsZUxhdW5jaFBvaW50cygpO31jYXRjaChlKXt9CgkJCQkJCQl9LCAxMDAwKTsKCQkJCQkJfQoJCQkJCX0KCQkJCX0KCQkJfSk7CgkJfSk7CgkJLy8gU3RhcnQgb2JzZXJ2aW5nIHRoZSBkb2N1bWVudCB3aXRoIHRoZSBjb25maWd1cmVkIHBhcmFtZXRlcnMKCQlvYnNlcnZlci5vYnNlcnZlKGRvY3VtZW50LmJvZHksIHsgY2hpbGRMaXN0OiB0cnVlLCBzdWJ0cmVlOiB0cnVlIH0pOwoJCW9ic2VydmVyLm9ic2VydmUoZG9jdW1lbnQuaGVhZCwgeyBjaGlsZExpc3Q6IHRydWUsIHN1YnRyZWU6IHRydWUgfSk7Cgl9KTsKCi8qPCFbQ0RBVEFbKi8KLy9kYXRhLXNjb2RlcmVmPSJQQUYtMTg2NDU2MzY4MTE4NTEyMjg1IgooZnVuY3Rpb24oKXsidXNlIHN0cmljdCI7dmFyIFNUT1JBR0VfS0VZPSdvbmVycm9yJyxzdG9yYWdlPVtdLGVycm9yQ29sbGVjdGlvbnM9W10scGl4ZWxBZGRyZXNzPScvZnIvYWpheC9sb2dFcnJvcj93c3dpZHRoPTAnO3ZhciBzdGFydFRpbWU9bmV3IERhdGUoKTtsb2FkU3RvcmVkRXJyb3JzKCk7dmFyIHBpeGVsRnJhZ21lbnQ9dW5kZWZpbmVkO2Z1bmN0aW9uIGdldFBpeGVsRnJhZ21lbnQoKXtpZihwaXhlbEZyYWdtZW50IT09dW5kZWZpbmVkKXJldHVybiBwaXhlbEZyYWdtZW50LmNsb25lTm9kZSh0cnVlKTt2YXIgZnJhZz1kb2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCk7dmFyIGRpdj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtmcmFnLmFwcGVuZENoaWxkKGRpdik7cGl4ZWxGcmFnbWVudD1mcmFnLmNsb25lTm9kZSh0cnVlKTtyZXR1cm4gZnJhZzt9CmZ1bmN0aW9uIGhhc1BpeGVsKGRhdGEpe3JldHVybiEhZG9jdW1lbnQucXVlcnlTZWxlY3RvcignZGl2W2RhdGEtbGluZT0iJytkYXRhLmxpbmUrJyJdW2RhdGEtbXNnPSInK2RhdGEubXNnKyciXScpO30KZnVuY3Rpb24gY3JlYXRlUGl4ZWwoZGF0YSl7aWYoaGFzUGl4ZWwoZGF0YSkpcmV0dXJuIHRydWU7dmFyIGZyYWdtZW50PWdldFBpeGVsRnJhZ21lbnQoKTt2YXIgZGl2PWZyYWdtZW50LnF1ZXJ5U2VsZWN0b3IoJ2RpdicpO3ZhciBpbnRlcm5hbD1pc0ZpbGVJbnRlcm5hbChkYXRhLmZpbGUpPzE6MDt2YXIgb2JqPXttc2c6ZGF0YS5tc2csYWdlbnQ6bmF2aWdhdG9yLnVzZXJBZ2VudCx1cmw6d2luZG93LmxvY2F0aW9uLmhyZWYsaW50ZXJuYWw6aW50ZXJuYWwsdWlkOmdldFVJRCgpLHRvcDooKG5ldyBEYXRlKCkpLmdldFRpbWUoKS1zdGFydFRpbWUuZ2V0VGltZSgpKSxtb3VzZU92ZXI6Z2V0Q3VycmVudE1vdXNlT3ZlckVsZW1lbnQoKX07dmFyIGFkZEVsZW1lbnQ9ZnVuY3Rpb24oKXtkaXYuc2V0QXR0cmlidXRlKCdkYXRhLW1zZycsZGF0YS5tc2cpO2Rpdi5zZXRBdHRyaWJ1dGUoJ2RhdGEtbGluZScsZGF0YS5saW5lKTtkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGZyYWdtZW50KTt9O2FqYXgob2JqLGZ1bmN0aW9uKHhocil7Y29uc29sZS5sb2coIklzc3VlIHNlbmRpbmcgZXJyb3IsIHN0YXR1czogIit4aHIuc3RhdHVzKyIgZXJyb3I6ICIreGhyLnJlc3BvbnNlVGV4dCk7YWRkRWxlbWVudCgpO30sZnVuY3Rpb24oeGhyKXthZGRFbGVtZW50KCk7Y29uc29sZS5sb2coeGhyKTt9KTt9CmZ1bmN0aW9uIGFqYXgoZGF0YSxlcnJvcixzdWNjZXNzKXt2YXIgeGhyPW5ldyBYTUxIdHRwUmVxdWVzdCgpO3hoci5vcGVuKCdQT1NUJyxwaXhlbEFkZHJlc3MsdHJ1ZSk7eGhyLnNldFJlcXVlc3RIZWFkZXIoJ0NvbnRlbnQtVHlwZScsJ2FwcGxpY2F0aW9uL2pzb247Y2hhcnNldD1VVEYtOCcpO3hoci5vbnJlYWR5c3RhdGVjaGFuZ2U9ZnVuY3Rpb24oKXtpZih4aHIucmVhZHlTdGF0ZT09PTQpe2lmKHhoci5zdGF0dXM9PT0yMDApe3N1Y2Nlc3MoeGhyKTt9ZWxzZXtlcnJvcih4aHIpO319fTt4aHIuc2VuZChKU09OLnN0cmluZ2lmeShkYXRhKSk7fQpmdW5jdGlvbiBnZXRDdXJyZW50TW91c2VPdmVyRWxlbWVudCgpe3ZhciBob3Zlcj1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCc6aG92ZXInKTtpZihob3Zlcj09PXVuZGVmaW5lZHx8aG92ZXIubGVuZ3RoPT09MCl7cmV0dXJuJ25vbmUnO30KaG92ZXI9aG92ZXJbaG92ZXIubGVuZ3RoLTFdLmNsb25lTm9kZSgpO3JldHVybiBob3Zlci5vdXRlckhUTUw7fQpmdW5jdGlvbiBpc0ZpbGVJbnRlcm5hbChmaWxlKXtyZXR1cm4oZmlsZS5pbmRleE9mKHdpbmRvdy5sb2NhdGlvbi5ob3N0bmFtZSk+LTEpO30KZnVuY3Rpb24gZ2V0VUlEKCl7aWYodHlwZW9mIGFjdGl2ZVVzZXJQcm9maWxlTW5nIT09J3VuZGVmaW5lZCcpe3JldHVybiBhY3RpdmVVc2VyUHJvZmlsZU1uZy51aWQ7fQpyZXR1cm4nJzt9CmZ1bmN0aW9uIGxvYWRTdG9yZWRFcnJvcnMoKXtpZih0eXBlb2Ygc2Vzc2lvblN0b3JhZ2UhPT0ndW5kZWZpbmVkJyl7aWYoc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShTVE9SQUdFX0tFWSkpe3N0b3JhZ2U9SlNPTi5wYXJzZShzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKFNUT1JBR0VfS0VZKSk7fX0KcmV0dXJuIHN0b3JhZ2U7fQpmdW5jdGlvbiBoYXNTZXNzaW9uRXJyb3JTaG93bihtc2cpe2xvYWRTdG9yZWRFcnJvcnMoKTtyZXR1cm4gaGFzRXJyb3JTaG93bihtc2cpO30KZnVuY3Rpb24gaGFzRXJyb3JTaG93bihtc2cpe2lmKHN0b3JhZ2U9PT11bmRlZmluZWQpcmV0dXJuIGZhbHNlO2Zvcih2YXIgaT0wO2k8c3RvcmFnZS5sZW5ndGg7aSsrKXtpZihzdG9yYWdlW2ldPT09bXNnKXtyZXR1cm4gdHJ1ZTt9fQpyZXR1cm4gZmFsc2U7fQppZih3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUuaW5kZXhPZignY3VzdG9tLXBhZ2UtcHJldmlldy5odG1sJyk9PT0tMSl7d2luZG93Lm9uZXJyb3I9ZnVuY3Rpb24obXNnLGZpbGUsbGluZSxjb2wsZXJyb3Ipe2NvbnNvbGUubG9nKCdvbmVycm9yIHJhaXNlZCEnKTtpZighaGFzU2Vzc2lvbkVycm9yU2hvd24obXNnKSl7ZXJyb3JDb2xsZWN0aW9ucy5wdXNoKHttc2c6bXNnLGxpbmU6bGluZSxmaWxlOmZpbGV9KTtzdG9yYWdlLnB1c2gobXNnKTtpZihzZXNzaW9uU3RvcmFnZSE9PXVuZGVmaW5lZCl7c2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbShTVE9SQUdFX0tFWSxKU09OLnN0cmluZ2lmeShzdG9yYWdlKSk7fX0KaWYoZG9jdW1lbnRbJ2JvZHknXSE9PW51bGwmJmRvY3VtZW50Wydib2R5J10hPT11bmRlZmluZWQpe2FkZFBpeGVsc1RvRG9tKCk7fQppZignbGl2ZSc9PSdsaXZlJyYmJ1VTJz09J0NBJyl7Z3RhZygnZXZlbnQnLCdleGNlcHRpb24nLHsnc2VuZF90byc6J0ctWjVROFo1QzdLRicsJ2Rlc2NyaXB0aW9uJzptc2csJ2ZhdGFsJzp0cnVlfSk7fX07fQppZigvV2ViS2l0L2kudGVzdChuYXZpZ2F0b3IudXNlckFnZW50KSl7dmFyIF90aW1lcj1zZXRJbnRlcnZhbChmdW5jdGlvbigpe2lmKC9sb2FkZWR8Y29tcGxldGUvLnRlc3QoZG9jdW1lbnQucmVhZHlTdGF0ZSkpe2NsZWFySW50ZXJ2YWwoX3RpbWVyKTtvbmxvYWQoKTt9fSwxMCk7fQovKkBjY19vbiBAKi8KLypAaWYgKEBfd2luMzIpCgkJCQlkb2N1bWVudC53cml0ZSgiPCIrInNjcmlwdCBpZD1fX2llX29ubG9hZCBkZWZlciBzcmM9amF2YXNjcmlwdDp2b2lkKDApPjxcL3NjcmlwdD4iKTsKCQkJCXZhciBzY3JpcHQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiX19pZV9vbmxvYWQiKTsKCQkJCXNjcmlwdC5vbnJlYWR5c3RhdGVjaGFuZ2UgPSBmdW5jdGlvbigpIHsKCQkJCSAgaWYgKHRoaXMucmVhZHlTdGF0ZSA9PSAiY29tcGxldGUiKSB7CgkJCQkJb25sb2FkKCk7IC8vIGNhbGwgdGhlIG9ubG9hZCBoYW5kbGVyCgkJCQkgIH0KCQkJCX07CgkJCS8qQGVuZCBAKi8KZnVuY3Rpb24gYWRkUGl4ZWxzVG9Eb20oKXtmb3IodmFyIGk9MDtpPGVycm9yQ29sbGVjdGlvbnMubGVuZ3RoO2krKyl7Y29uc29sZS5sb2coJ2NyZWF0ZVBpeGVsJyxlcnJvckNvbGxlY3Rpb25zW2ldKTt9fQpmdW5jdGlvbiBvbmxvYWQoKXthZGRQaXhlbHNUb0RvbSgpO30KZnVuY3Rpb24gX2NyZWF0ZVNjcmlwdCh0ZXh0KXt2YXIgcz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTtzLmFwcGVuZCh0ZXh0KTtyZXR1cm4gczt9CndpbmRvdy5lcnJvclRlc3RzPXtzeW50YXg6ZnVuY3Rpb24oKXt2YXIgc2NyaXB0PV9jcmVhdGVTY3JpcHQoJ30nKTtkb2N1bWVudC5ib2R5LmFwcGVuZChzY3JpcHQpO30sb2ZOdWxsOmZ1bmN0aW9uKCl7dmFyIHRleHQ9J3ZhciBhID0gbnVsbDsgdmFyIGIgPSBhLndoYXQ7Jzt2YXIgc2NyaXB0PV9jcmVhdGVTY3JpcHQodGV4dCk7ZG9jdW1lbnQuYm9keS5hcHBlbmQoc2NyaXB0KTt9LGludmFsaWRBc3NpZ25tZW50OmZ1bmN0aW9uKCl7dmFyIHNjcmlwdD1fY3JlYXRlU2NyaXB0KCcxID0gZnVuYygpOycpO2RvY3VtZW50LmJvZHkuYXBwZW5kKHNjcmlwdCk7fX07d2luZG93LnRyYWNrQ29udmVyc2lvbj1mdW5jdGlvbigpe2lmKHR5cGVvZiBndGFnPT0ndW5kZWZpbmVkJylyZXR1cm4tMTtpZighd2luZG93LmQyY19hd2NJZHx8IXdpbmRvdy5kMmNfYXdjTGFiZWwpcmV0dXJuLTM7aWYoZGVwbG95bWVudFR5cGUudG9Mb3dlckNhc2UoKT09J2xpdmUnJiYnVVMnPT0nQ0EnKXtndGFnKCdldmVudCcsJ2NvbnZlcnNpb24nLHsnc2VuZF90byc6ZDJjX2F3Y0lkKycvJytkMmNfYXdjTGFiZWx9KTt9ZWxzZXtjb25zb2xlLmxvZygiZ3RhZygnZXZlbnQnLCdjb252ZXJzaW9uJywgeyAnc2VuZF90byc6ICIrZDJjX2F3Y0lkKycvJytkMmNfYXdjTGFiZWwrIiB9KTsiKTt9fX0pKCk7Ci8qXV0+Ki8KCi8qPCFbQ0RBVEFbKi8KLy9kYXRhLXNjb2RlcmVmPSJQQUYtMTg2NDU2MzY4MTE4NTEyMjg1IgooZnVuY3Rpb24oKXsidXNlIHN0cmljdCI7dmFyIFNUT1JBR0VfS0VZPSdvbmVycm9yJyxzdG9yYWdlPVtdLGVycm9yQ29sbGVjdGlvbnM9W10scGl4ZWxBZGRyZXNzPScvZnIvYWpheC9sb2dFcnJvcj93c3dpZHRoPTAnO3ZhciBzdGFydFRpbWU9bmV3IERhdGUoKTtsb2FkU3RvcmVkRXJyb3JzKCk7dmFyIHBpeGVsRnJhZ21lbnQ9dW5kZWZpbmVkO2Z1bmN0aW9uIGdldFBpeGVsRnJhZ21lbnQoKXtpZihwaXhlbEZyYWdtZW50IT09dW5kZWZpbmVkKXJldHVybiBwaXhlbEZyYWdtZW50LmNsb25lTm9kZSh0cnVlKTt2YXIgZnJhZz1kb2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCk7dmFyIGRpdj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtmcmFnLmFwcGVuZENoaWxkKGRpdik7cGl4ZWxGcmFnbWVudD1mcmFnLmNsb25lTm9kZSh0cnVlKTtyZXR1cm4gZnJhZzt9CmZ1bmN0aW9uIGhhc1BpeGVsKGRhdGEpe3JldHVybiEhZG9jdW1lbnQucXVlcnlTZWxlY3RvcignZGl2W2RhdGEtbGluZT0iJytkYXRhLmxpbmUrJyJdW2RhdGEtbXNnPSInK2RhdGEubXNnKyciXScpO30KZnVuY3Rpb24gY3JlYXRlUGl4ZWwoZGF0YSl7aWYoaGFzUGl4ZWwoZGF0YSkpcmV0dXJuIHRydWU7dmFyIGZyYWdtZW50PWdldFBpeGVsRnJhZ21lbnQoKTt2YXIgZGl2PWZyYWdtZW50LnF1ZXJ5U2VsZWN0b3IoJ2RpdicpO3ZhciBpbnRlcm5hbD1pc0ZpbGVJbnRlcm5hbChkYXRhLmZpbGUpPzE6MDt2YXIgb2JqPXttc2c6ZGF0YS5tc2csYWdlbnQ6bmF2aWdhdG9yLnVzZXJBZ2VudCx1cmw6d2luZG93LmxvY2F0aW9uLmhyZWYsaW50ZXJuYWw6aW50ZXJuYWwsdWlkOmdldFVJRCgpLHRvcDooKG5ldyBEYXRlKCkpLmdldFRpbWUoKS1zdGFydFRpbWUuZ2V0VGltZSgpKSxtb3VzZU92ZXI6Z2V0Q3VycmVudE1vdXNlT3ZlckVsZW1lbnQoKX07dmFyIGFkZEVsZW1lbnQ9ZnVuY3Rpb24oKXtkaXYuc2V0QXR0cmlidXRlKCdkYXRhLW1zZycsZGF0YS5tc2cpO2Rpdi5zZXRBdHRyaWJ1dGUoJ2RhdGEtbGluZScsZGF0YS5saW5lKTtkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGZyYWdtZW50KTt9O2FqYXgob2JqLGZ1bmN0aW9uKHhocil7Y29uc29sZS5sb2coIklzc3VlIHNlbmRpbmcgZXJyb3IsIHN0YXR1czogIit4aHIuc3RhdHVzKyIgZXJyb3I6ICIreGhyLnJlc3BvbnNlVGV4dCk7YWRkRWxlbWVudCgpO30sZnVuY3Rpb24oeGhyKXthZGRFbGVtZW50KCk7Y29uc29sZS5sb2coeGhyKTt9KTt9CmZ1bmN0aW9uIGFqYXgoZGF0YSxlcnJvcixzdWNjZXNzKXt2YXIgeGhyPW5ldyBYTUxIdHRwUmVxdWVzdCgpO3hoci5vcGVuKCdQT1NUJyxwaXhlbEFkZHJlc3MsdHJ1ZSk7eGhyLnNldFJlcXVlc3RIZWFkZXIoJ0NvbnRlbnQtVHlwZScsJ2FwcGxpY2F0aW9uL2pzb247Y2hhcnNldD1VVEYtOCcpO3hoci5vbnJlYWR5c3RhdGVjaGFuZ2U9ZnVuY3Rpb24oKXtpZih4aHIucmVhZHlTdGF0ZT09PTQpe2lmKHhoci5zdGF0dXM9PT0yMDApe3N1Y2Nlc3MoeGhyKTt9ZWxzZXtlcnJvcih4aHIpO319fTt4aHIuc2VuZChKU09OLnN0cmluZ2lmeShkYXRhKSk7fQpmdW5jdGlvbiBnZXRDdXJyZW50TW91c2VPdmVyRWxlbWVudCgpe3ZhciBob3Zlcj1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCc6aG92ZXInKTtpZihob3Zlcj09PXVuZGVmaW5lZHx8aG92ZXIubGVuZ3RoPT09MCl7cmV0dXJuJ25vbmUnO30KaG92ZXI9aG92ZXJbaG92ZXIubGVuZ3RoLTFdLmNsb25lTm9kZSgpO3JldHVybiBob3Zlci5vdXRlckhUTUw7fQpmdW5jdGlvbiBpc0ZpbGVJbnRlcm5hbChmaWxlKXtyZXR1cm4oZmlsZS5pbmRleE9mKHdpbmRvdy5sb2NhdGlvbi5ob3N0bmFtZSk+LTEpO30KZnVuY3Rpb24gZ2V0VUlEKCl7aWYodHlwZW9mIGFjdGl2ZVVzZXJQcm9maWxlTW5nIT09J3VuZGVmaW5lZCcpe3JldHVybiBhY3RpdmVVc2VyUHJvZmlsZU1uZy51aWQ7fQpyZXR1cm4nJzt9CmZ1bmN0aW9uIGxvYWRTdG9yZWRFcnJvcnMoKXtpZih0eXBlb2Ygc2Vzc2lvblN0b3JhZ2UhPT0ndW5kZWZpbmVkJyl7aWYoc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShTVE9SQUdFX0tFWSkpe3N0b3JhZ2U9SlNPTi5wYXJzZShzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKFNUT1JBR0VfS0VZKSk7fX0KcmV0dXJuIHN0b3JhZ2U7fQpmdW5jdGlvbiBoYXNTZXNzaW9uRXJyb3JTaG93bihtc2cpe2xvYWRTdG9yZWRFcnJvcnMoKTtyZXR1cm4gaGFzRXJyb3JTaG93bihtc2cpO30KZnVuY3Rpb24gaGFzRXJyb3JTaG93bihtc2cpe2lmKHN0b3JhZ2U9PT11bmRlZmluZWQpcmV0dXJuIGZhbHNlO2Zvcih2YXIgaT0wO2k8c3RvcmFnZS5sZW5ndGg7aSsrKXtpZihzdG9yYWdlW2ldPT09bXNnKXtyZXR1cm4gdHJ1ZTt9fQpyZXR1cm4gZmFsc2U7fQppZih3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUuaW5kZXhPZignY3VzdG9tLXBhZ2UtcHJldmlldy5odG1sJyk9PT0tMSl7d2luZG93Lm9uZXJyb3I9ZnVuY3Rpb24obXNnLGZpbGUsbGluZSxjb2wsZXJyb3Ipe2NvbnNvbGUubG9nKCdvbmVycm9yIHJhaXNlZCEnKTtpZighaGFzU2Vzc2lvbkVycm9yU2hvd24obXNnKSl7ZXJyb3JDb2xsZWN0aW9ucy5wdXNoKHttc2c6bXNnLGxpbmU6bGluZSxmaWxlOmZpbGV9KTtzdG9yYWdlLnB1c2gobXNnKTtpZihzZXNzaW9uU3RvcmFnZSE9PXVuZGVmaW5lZCl7c2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbShTVE9SQUdFX0tFWSxKU09OLnN0cmluZ2lmeShzdG9yYWdlKSk7fX0KaWYoZG9jdW1lbnRbJ2JvZHknXSE9PW51bGwmJmRvY3VtZW50Wydib2R5J10hPT11bmRlZmluZWQpe2FkZFBpeGVsc1RvRG9tKCk7fQppZignbGl2ZSc9PSdsaXZlJyYmJ1VTJz09J0NBJyl7Z3RhZygnZXZlbnQnLCdleGNlcHRpb24nLHsnc2VuZF90byc6J0ctWjVROFo1QzdLRicsJ2Rlc2NyaXB0aW9uJzptc2csJ2ZhdGFsJzp0cnVlfSk7fX07fQppZigvV2ViS2l0L2kudGVzdChuYXZpZ2F0b3IudXNlckFnZW50KSl7dmFyIF90aW1lcj1zZXRJbnRlcnZhbChmdW5jdGlvbigpe2lmKC9sb2FkZWR8Y29tcGxldGUvLnRlc3QoZG9jdW1lbnQucmVhZHlTdGF0ZSkpe2NsZWFySW50ZXJ2YWwoX3RpbWVyKTtvbmxvYWQoKTt9fSwxMCk7fQovKkBjY19vbiBAKi8KLypAaWYgKEBfd2luMzIpCgkJCQlkb2N1bWVudC53cml0ZSgiPCIrInNjcmlwdCBpZD1fX2llX29ubG9hZCBkZWZlciBzcmM9amF2YXNjcmlwdDp2b2lkKDApPjxcL3NjcmlwdD4iKTsKCQkJCXZhciBzY3JpcHQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiX19pZV9vbmxvYWQiKTsKCQkJCXNjcmlwdC5vbnJlYWR5c3RhdGVjaGFuZ2UgPSBmdW5jdGlvbigpIHsKCQkJCSAgaWYgKHRoaXMucmVhZHlTdGF0ZSA9PSAiY29tcGxldGUiKSB7CgkJCQkJb25sb2FkKCk7IC8vIGNhbGwgdGhlIG9ubG9hZCBoYW5kbGVyCgkJCQkgIH0KCQkJCX07CgkJCS8qQGVuZCBAKi8KZnVuY3Rpb24gYWRkUGl4ZWxzVG9Eb20oKXtmb3IodmFyIGk9MDtpPGVycm9yQ29sbGVjdGlvbnMubGVuZ3RoO2krKyl7Y29uc29sZS5sb2coJ2NyZWF0ZVBpeGVsJyxlcnJvckNvbGxlY3Rpb25zW2ldKTt9fQpmdW5jdGlvbiBvbmxvYWQoKXthZGRQaXhlbHNUb0RvbSgpO30KZnVuY3Rpb24gX2NyZWF0ZVNjcmlwdCh0ZXh0KXt2YXIgcz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTtzLmFwcGVuZCh0ZXh0KTtyZXR1cm4gczt9CndpbmRvdy5lcnJvclRlc3RzPXtzeW50YXg6ZnVuY3Rpb24oKXt2YXIgc2NyaXB0PV9jcmVhdGVTY3JpcHQoJ30nKTtkb2N1bWVudC5ib2R5LmFwcGVuZChzY3JpcHQpO30sb2ZOdWxsOmZ1bmN0aW9uKCl7dmFyIHRleHQ9J3ZhciBhID0gbnVsbDsgdmFyIGIgPSBhLndoYXQ7Jzt2YXIgc2NyaXB0PV9jcmVhdGVTY3JpcHQodGV4dCk7ZG9jdW1lbnQuYm9keS5hcHBlbmQoc2NyaXB0KTt9LGludmFsaWRBc3NpZ25tZW50OmZ1bmN0aW9uKCl7dmFyIHNjcmlwdD1fY3JlYXRlU2NyaXB0KCcxID0gZnVuYygpOycpO2RvY3VtZW50LmJvZHkuYXBwZW5kKHNjcmlwdCk7fX07d2luZG93LnRyYWNrQ29udmVyc2lvbj1mdW5jdGlvbigpe2lmKHR5cGVvZiBndGFnPT0ndW5kZWZpbmVkJylyZXR1cm4tMTtpZighd2luZG93LmQyY19hd2NJZHx8IXdpbmRvdy5kMmNfYXdjTGFiZWwpcmV0dXJuLTM7aWYoZGVwbG95bWVudFR5cGUudG9Mb3dlckNhc2UoKT09J2xpdmUnJiYnVVMnPT0nQ0EnKXtndGFnKCdldmVudCcsJ2NvbnZlcnNpb24nLHsnc2VuZF90byc6ZDJjX2F3Y0lkKycvJytkMmNfYXdjTGFiZWx9KTt9ZWxzZXtjb25zb2xlLmxvZygiZ3RhZygnZXZlbnQnLCdjb252ZXJzaW9uJywgeyAnc2VuZF90byc6ICIrZDJjX2F3Y0lkKycvJytkMmNfYXdjTGFiZWwrIiB9KTsiKTt9fX0pKCk7Ci8qXV0+Ki8KCgkoKGQpID0+IHsKCQljb25zdCBjZSA9IGQuY3JlYXRlRWxlbWVudDsKCQlsZXQgdXJsQ2F0QXJyID0gewoJCQknY2xhcml2b3kuY29tJyA6ICdDMDAwMicsCgkJCSdkZWFsZXItbGVhZHMuY2EnIDogJ0MwMDAzJywKCQkJJ3JvYWRzdGVyLmNvbS9yb2Fkc3RlcicgOiAnQzAwMDInLC8vRFdQLTEyMjgxCgkJCSdmemxuay5jb20vc2lnbmFscy5qcycgOiAnQzAwMDInLC8vRFdQLTEyMjg5CgkJCSdsaXZlY2hhdGluYy5jb20vdHJhY2tpbmcuanMnIDogJ0MwMDAzJywvL0RXUC0xMjMwMwoJCQkndGhlbGl2ZWNoYXRzb2Z0d2FyZS5jb20nIDogJ0MwMDAzJywvL0RXUC0xMjI5NwoJCQknY2FuYWRhLmRpZ2l0YWwtaW50ZXJ2aWV3LmNvbScgOiAnQzAwMDMnLC8vRFdQLTEyMzAwCgkJCSdzZGsuYXV0b3ZlcmlmeS5jb20nIDogJ0MwMDAzJywvL0RXUC0xMjMwMQoJCQknYW5hbHl0aWNzLmpzJyA6ICdDMDAwMicsLy9EV1AtMTIzMDkKCQkJJ2hzLXNjcmlwdHMuY29tJyA6ICdDMDAwNCcsLy9EV1AtMTIzMjAKCQkJJ21hcmtldGluZ2F1dG9tYXRpb24uc2VydmljZXMnIDogJ0MwMDA0JywvL0RXUC0xMjMyMgoJCQknbGVhZGZveC5jbycgOiAnQzAwMDQnLAoJCQknc3RhdGljLnVwdHJhY3MuY29tJyA6ICdDMDAwMycsLy9EV1AtMTIzNTQKIAkJCSdiYXQuYmluZy5jb20nIDogJ0MwMDAyJywvL0RXUC0xMjM1NAoJCQknZ3RhZy9qcycgOiAnQzAwMDInLAoJCQknc2QuanMnIDogJ0MwMDAxJywKCQkJJ3NkYS5qcycgOiAnQzAwMDEnLAoJCQkKCQl9OwoJCWxldCB1cmxDYXRSZWdleCA9ICcoJyArIE9iamVjdC5rZXlzKHVybENhdEFycikuam9pbignfCcpLnJlcGxhY2UoL1srPy5dL2csICdcJCYnKSArICcpJzsKCQlsZXQgY3VycmVudENvbnNlbnQgPSBnZXRDb25zZW50KCk7CgkJd2luZG93LnNjcmlwdFVybEFyciA9IFtdOwoJCWQuY3JlYXRlRWxlbWVudCA9IGZ1bmN0aW9uKC4uLmFyZ3MpIHsKCQkJY29uc3QgcyA9IGNlLmJpbmQoZCkoLi4uYXJncyksIHNhID0gcy5zZXRBdHRyaWJ1dGUuYmluZChzKTsKCQkJcy5zZXRBdHRyaWJ1dGUgPSBmdW5jdGlvbihuLCB2KSB7CgkJCQlpZihuID09PSAnc3JjJyAmJiB3aW5kb3cuc2NyaXB0VXJsQXJyLmluZGV4T2Yodi50b1N0cmluZygpKSA9PSAtMSkgewoJCQkJCWlmKChuZXcgUmVnRXhwKHVybENhdFJlZ2V4KSkudGVzdCh2KSl7CgkJCQkJCWZvcihrZXkgaW4gdXJsQ2F0QXJyKXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIAoJCQkJCQkJaWYgKChuZXcgUmVnRXhwKGtleSkpLnRlc3QodikpIHsKCQkJCQkJCQl3aW5kb3cuc2NyaXB0VXJsQXJyLnB1c2godi50b1N0cmluZygpKTsKCQkJCQkJCQlpZihrZXkgPT0gJ2d0YWcvanMnIHx8IGtleSA9PSAnYmF0LmJpbmcuY29tJyB8fCBrZXkgPT0gJ3NkLmpzJyB8fCBrZXkgPT0gJ3NkYS5qcycpewoJCQkJCQkJCQlzYSgnZGF0YS1vdC1pZ25vcmUnLCB0cnVlKTsKCQkJCQkJCQkJc2EoJ3R5cGUnLCAndGV4dC9qYXZhc2NyaXB0Jyk7CgkJCQkJCQkJfSBlbHNlIGlmKGN1cnJlbnRDb25zZW50ID09IG51bGwgfHwgY3VycmVudENvbnNlbnQuaW5kZXhPZih1cmxDYXRBcnJba2V5XSkgPT0gLTEpewoJCQkJCQkJCQlzYSgndHlwZScsICd0ZXh0L3BsYWluJyk7CgkJCQkJCQkJCXNhKCdjbGFzcycsICdvcHRhbm9uLWNhdGVnb3J5LScgKyB1cmxDYXRBcnJba2V5XSk7CgkJCQkJCQkJfQoJCQkJCQkJCWJyZWFrOwoJCQkJCQkJfQoJCQkJCQl9CgkJCQkJfQoJCQkJfQoJCQkJc2Eobiwgdik7CgkJCX0KCQkJcmV0dXJuIHM7CgkJfQoJCWZ1bmN0aW9uIGdldENvbnNlbnQoKXsKCQkJbGV0IG5hbWUgPSAnZDJjX2Nvb2tpZV9jb25zZW50JyArICc9JzsKCQkJbGV0IGNhID0gKCcnK2RvY3VtZW50LmNvb2tpZSkuc3BsaXQoJzsnKTsKCQkJZm9yKGxldCBpID0gMDsgaSA8IGNhLmxlbmd0aDsgaSsrKSB7CgkJCQlsZXQgYyA9IGNhW2ldOwoJCQkJYyA9IGMudHJpbSgpOwoJCQkJaWYgKGMuaW5kZXhPZihuYW1lKSA9PSAwKSB7CgkJCQkJdHJ5ewoJCQkJCQljID0gZGVjb2RlVVJJQ29tcG9uZW50KCBjICk7CgkJCQkJfSBjYXRjaCggZSApCgkJCQkJewoJCQkJCQljb25zb2xlLmxvZyggZSApOwoJCQkJCQlyZXR1cm4gbnVsbDsKCQkJCQl9CgkJCQkJcmV0dXJuIGMuc3Vic3RyaW5nKG5hbWUubGVuZ3RoLCBjLmxlbmd0aCk7CgkJCQl9CgkJCX0KCQkJcmV0dXJuIG51bGw7CgkJfQoJfSkoZG9jdW1lbnQpOwoKCWRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbigpIHsKCS8vIExpc3RlbiBmb3IgY2hhbmdlcyB0byB0aGUgRE9NCgkJbGV0IG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obXV0YXRpb25zKSB7CgkJCW11dGF0aW9ucy5mb3JFYWNoKGZ1bmN0aW9uKG11dGF0aW9uKSB7CgkJCQlpZiAobXV0YXRpb24uYWRkZWROb2RlcyAmJiBtdXRhdGlvbi5hZGRlZE5vZGVzLmxlbmd0aCA+IDApIHsKCQkJCQkvLyBDaGVjayBpZiBvdXIgc2NyaXB0IGhhcyBiZWVuIGFkZGVkIHRvIHRoZSBET00KCQkJCQlmb3IgKGxldCBpID0gMDsgaSA8IG11dGF0aW9uLmFkZGVkTm9kZXMubGVuZ3RoOyBpKyspIHsKCQkJCQkJbGV0IG5vZGUgPSBtdXRhdGlvbi5hZGRlZE5vZGVzW2ldOwoJCQkJCQlpZiAobm9kZS5ub2RlVHlwZSA9PT0gMSAmJiBub2RlLnRhZ05hbWUgPT09ICdTQ1JJUFQnICYmIG5vZGUuc3JjICYmIG5vZGUuc3JjLmluY2x1ZGVzKCdjYW5hZGEuZGlnaXRhbC1pbnRlcnZpZXcuY29tJykgJiYgdHlwZW9mIE9uZVRydXN0ICE9PSAndW5kZWZpbmVkJykgewoJCQkJCQkJc2V0VGltZW91dChmdW5jdGlvbigpewoJCQkJCQkJCXRyeXtEaWdpdGFsSW50ZXJ2aWV3LkxhdW5jaGVyLmVuYWJsZUxhdW5jaFBvaW50cygpO31jYXRjaChlKXt9CgkJCQkJCQl9LCAxMDAwKTsKCQkJCQkJfQoJCQkJCX0KCQkJCX0KCQkJfSk7CgkJfSk7CgkJLy8gU3RhcnQgb2JzZXJ2aW5nIHRoZSBkb2N1bWVudCB3aXRoIHRoZSBjb25maWd1cmVkIHBhcmFtZXRlcnMKCQlvYnNlcnZlci5vYnNlcnZlKGRvY3VtZW50LmJvZHksIHsgY2hpbGRMaXN0OiB0cnVlLCBzdWJ0cmVlOiB0cnVlIH0pOwoJCW9ic2VydmVyLm9ic2VydmUoZG9jdW1lbnQuaGVhZCwgeyBjaGlsZExpc3Q6IHRydWUsIHN1YnRyZWU6IHRydWUgfSk7Cgl9KTsKCi8qPCFbQ0RBVEFbKi8KLy9kYXRhLXNjb2RlcmVmPSJaWlotNDE1NTY0OCIKdmFyIGN1cnJlbnRTaXRlSUQ9MTAyMzt2YXIgZDJjX2dhQWNjb3VudHM9eyJhbGwiOltdLCJpbnRlcm5hbCI6W119O3ZhciBkMmNfYXdjSWQ9Jyc7dmFyIGQyY19hd2NMYWJlbD0nJzt2YXIgbGVnYWN5X2dhPWZhbHNlO3dpbmRvdy5kYXRhTGF5ZXI9d2luZG93LmRhdGFMYXllcnx8W107ZnVuY3Rpb24gZ3RhZygpe2RhdGFMYXllci5wdXNoKGFyZ3VtZW50cyk7fQpndGFnKCdqcycsbmV3IERhdGUoKSk7ZDJjX2dhQWNjb3VudHMuYWxsLnB1c2goJ0ctWjVROFo1QzdLRicpO2QyY19nYUFjY291bnRzLmFsbC5wdXNoKCdHLVdFQ0wxRlZMWTQnKTtpZihkMmNfYXdjSWQpe2QyY19nYUFjY291bnRzLmFsbC5wdXNoKGQyY19hd2NJZCk7fQooZDJjX2dhQWNjb3VudHMuYWxsfHxbXSkubWFwKGZ1bmN0aW9uKGlkKXtndGFnKCdjb25maWcnLGlkLHsnc2VuZF9wYWdlX3ZpZXcnOmZhbHNlLCdsaW5rZXInOnsnZG9tYWlucyc6SlNPTi5wYXJzZShhdG9iKCJXMTA9IikpLCdjb29raWVfZG9tYWluJzond3d3Lm1hdXJhaXNhdXRvLmNvbSd9fSk7fSk7Ci8qXV0+Ki8KCi8qPCFbQ0RBVEFbKi8KLy9kYXRhLXNjb2RlcmVmPSJGTFQtMTU2NjQ1ODg5OTY0NTM0MTE1Mzg2Igp2YXIgZG9jUmVhZHlBcnI9W107dmFyIHBhZ2U9Ik5FV0NBUlMiO3ZhciBmYkNoYXRSZWY9e307dmFyIGRlcGxveW1lbnRUeXBlPSdsaXZlJzt2YXIgY3VycmVudFNpdGVJRD0xMDIzO3ZhciBjdXJyZW50RGVhbGVySUQ9MjgwODt2YXIgZ2FUeXBlPSdndGFnJzt2YXIgYWxsQ2FtcGFpZ25zPVtbIm1hdXJhaXNhdXRvLmNvbSIsIkNvdXJyaWVscy1yZWxhbmNlIiwiVG91dGVzIiwiOTU0MSJdLFsibWF1cmFpc2F1dG8uY29tIiwiQ291cnJpZWxzLXJlbGFuY2UiLCJOZXVmcyIsIjk1NDIiXSxbIm1hdXJhaXNhdXRvLmNvbSIsIkNvdXJyaWVscy1yZWxhbmNlIiwiT2NjYXNpb24iLCI5NTQzIl0sWyJtYXVyYWlzYXV0by5jb20iLCJTRU0iLCJBZ2VuY3kiLCI5NTQ0Il0sWyJtYXVyYWlzYXV0by5jb20iLCJUcmFkZXIiLCJSZXRhcmdldGluZyIsIjk1NDUiXSxbIm1hdXJhaXNhdXRvLmNvbSIsIkJpbmciLCJCaW5nIiwiOTU0NiJdLFsiUHJvbW9zLm1hdXJhaXNhdXRvLmNvbSIsIkdvb2dsZSIsIk5ldWYiLCI5NTU5Il1dCnZhciByZXRhcmdldGluZ0NhbXBhaWducz1bXQp2YXIgQUlDdXJyZW50Q29uZmlnSUQ9MDt2YXIgQUlJRFBlck5ld0NhcnNGcmVuY2g9bmV3IEFycmF5KCk7dmFyIEFJSURQZXJOZXdDYXJzRW5nbGlzaD1uZXcgQXJyYXkoKTtmdW5jdGlvbiBwYXJzZVF1ZXJ5KHN0cil7aWYoc3RyLmxlbmd0aDwxKXJldHVybnt9CnZhciB2YXJzPXt9LHY7dmFyIHFzPXN0ci5zcGxpdCgnJicpO2Zvcih2YXIgaT0wO2k8cXMubGVuZ3RoO2krKyl7dj1leHBsb2RlKHFzW2ldLCc9JywxKTt2YXJzW3ZbMF1dPXZbMV07fQpyZXR1cm4gdmFyczt9CmZ1bmN0aW9uIGRlY29kZVN0cmluZyhzdHJpbmcsdGltZXMpe2lmKHRpbWVzPT0iInx8dGltZXM9PSJ1bmRlZmluZWQiKXt0aW1lcz0xO30KZm9yKGk9MDtpPHRpbWVzO2krKyl7c3RyaW5nPWRlY29kZVVSSUNvbXBvbmVudChzdHJpbmcpO30KcmV0dXJuIHN0cmluZzt9CmZ1bmN0aW9uIGRlY29kZUhUTUwoZW5jb2RlZCl7aWYodHlwZW9mIGVuY29kZWQhPT0nc3RyaW5nJylyZXR1cm4gZW5jb2RlZDt2YXIgZWw9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGV4dGFyZWEnKTtlbC5pbm5lckhUTUw9ZW5jb2RlZDtyZXR1cm4gZWwudmFsdWU7fQpmdW5jdGlvbiBleHBsb2RlKHN0cixzZXBhcmF0b3IsbGltaXQpe3N0cj1zdHIuc3BsaXQoc2VwYXJhdG9yKTtpZihzdHIubGVuZ3RoPD1saW1pdClyZXR1cm4gc3RyO3ZhciByZXQ9c3RyLnNwbGljZSgwLGxpbWl0KTtyZXQucHVzaChzdHIuam9pbihzZXBhcmF0b3IpKTtyZXR1cm4gcmV0O30KZnVuY3Rpb24gZ2V0VXJsVmFycygpe3ZhciBxcz0od2luZG93LmxvY2F0aW9uLnNlYXJjaCkuc3Vic3RyaW5nKDEpO3JldHVybiBwYXJzZVF1ZXJ5KHFzKTt9CmZ1bmN0aW9uIGdldENvb2tpZShjX25hbWUpe3JldHVybiBDb29raWVzLmdldChjX25hbWUpO30KZnVuY3Rpb24gZ2V0Q29va2llKGNfbmFtZSl7dmFyIGNfdmFsdWU9ZG9jdW1lbnQuY29va2llO3ZhciBjX3N0YXJ0PWNfdmFsdWUuaW5kZXhPZigiICIrY19uYW1lKyI9Iik7aWYoY19zdGFydD09LTEpe2Nfc3RhcnQ9Y192YWx1ZS5pbmRleE9mKGNfbmFtZSsiPSIpO30KaWYoY19zdGFydD09LTEpe2NfdmFsdWU9bnVsbDt9ZWxzZXtjX3N0YXJ0PWNfdmFsdWUuaW5kZXhPZigiPSIsY19zdGFydCkrMTt2YXIgY19lbmQ9Y192YWx1ZS5pbmRleE9mKCI7IixjX3N0YXJ0KTtpZihjX2VuZD09LTEpe2NfZW5kPWNfdmFsdWUubGVuZ3RoO30KY192YWx1ZT11bmVzY2FwZShjX3ZhbHVlLnN1YnN0cmluZyhjX3N0YXJ0LGNfZW5kKSk7fQpyZXR1cm4gY192YWx1ZTt9CmZ1bmN0aW9uIHNldENvb2tpZShjX25hbWUsdmFsdWUsZXhkYXlzKXtpc0Nvb2tpZUFsbG93ZWQoY19uYW1lLGZ1bmN0aW9uKGFsbG93ZWQpe2lmKCFhbGxvd2VkKXtyZXR1cm4gQ29va2llcy5zZXQoY19uYW1lLHZhbHVlLGV4ZGF5cywnLycpO2xvZ0Nvb2tpZShjX25hbWUsdmFsdWUsZXhkYXlzKTtyZXR1cm47fQp2YXIgZXhkYXRlPW5ldyBEYXRlKCk7ZXhkYXRlLnNldERhdGUoZXhkYXRlLmdldERhdGUoKStleGRheXMpO3ZhciBjX3ZhbHVlPWVzY2FwZSh2YWx1ZSkrKChleGRheXM9PW51bGwpPyIiOiI7IGV4cGlyZXM9IitleGRhdGUudG9VVENTdHJpbmcoKSkrIjsgcGF0aD0vIjtkb2N1bWVudC5jb29raWU9Y19uYW1lKyI9IitjX3ZhbHVlO30pO30KZnVuY3Rpb24gbG9nQ29va2llKG5hbWUsdmFsdWUsZXhwaXJlcyx0cmllcyl7aWYodHlwZW9mIHRyaWVzPT09J3VuZGVmaW5lZCcpe3RyaWVzPTU7fQppZih0eXBlb2Ygd2luZG93LkNvb2tpZUxvZ2dlcj09PSd1bmRlZmluZWQnKXtpZih0cmllcyl7c2V0VGltZW91dChmdW5jdGlvbigpe2xvZ0Nvb2tpZShuYW1lLHZhbHVlLGV4cGlyZXMsdHJpZXMtMSk7fSwxMDAwKTt9fWVsc2V7d2luZG93LkNvb2tpZUxvZ2dlci5sb2cobmFtZSx2YWx1ZSxleHBpcmVzKTt9fQpmdW5jdGlvbiBpc0Nvb2tpZUFsbG93ZWQobmFtZSxjYWxsYmFjayx0cmllcyl7aWYodHlwZW9mIHdpbmRvdy5Db29raWVDb25zZW50PT09J3VuZGVmaW5lZCcpe2lmKHR5cGVvZiB0cmllcz09PSd1bmRlZmluZWQnKXt0cmllcz01O30KaWYodHJpZXMpe3NldFRpbWVvdXQoZnVuY3Rpb24oKXtpc0Nvb2tpZUFsbG93ZWQobmFtZSxjYWxsYmFjayx0cmllcy0xKTt9LDEwMDApO319ZWxzZXt3aW5kb3cuQ29va2llQ29uc2VudC5pc0Nvb2tpZUFsbG93ZWQobmFtZSxjYWxsYmFjayk7fX0KZnVuY3Rpb24gZ2FQYWdlVmlldyhwcCl7KGQyY19nYUFjY291bnRzLmFsbHx8W10pLm1hcChmdW5jdGlvbihpZCl7bGV0IGQ9e3BhZ2VfcGF0aDpwcH07aWYoZGVwbG95bWVudFR5cGUhPSdsaXZlJ3x8J1VTJyE9J0NBJyl7Y29uc29sZS5sb2coJ2d0YWcnLCdjb25maWcnLGlkLGQpCnJldHVybjt9Cmd0YWcoJ2NvbmZpZycsaWQsZCk7fSk7fTtmdW5jdGlvbiBnYTRQYWdlVmlldyhwcCl7aWYoZGVwbG95bWVudFR5cGUhPSdsaXZlJ3x8J1VTJyE9J0NBJyl7cmV0dXJuO30KZ3RhZygnc2V0Jyx7J3BhZ2VfcGF0aCc6cHB9KTtndGFnKCdldmVudCcsJ3BhZ2VfdmlldycseydzZW5kX3RvJzonRy1XRUNMMUZWTFk0J30pO30KZnVuY3Rpb24gZ2V0R2FDbGllbnRJZCgpe3JldHVybigoKHR5cGVvZiB3aW5kb3cuZ2E9PT0nb2JqZWN0JyYmd2luZG93LmdhIT09bnVsbCl8fHR5cGVvZiB3aW5kb3cuZ2E9PT0nZnVuY3Rpb24nKSYmdHlwZW9mIGdhWydnZXRBbGwnXT09PSdmdW5jdGlvbicpP2dhLmdldEFsbCgpWzBdLmdldCgnY2xpZW50SWQnKTonJzt9CmZ1bmN0aW9uIGdhVHJhY2soYWEsYyxhLGwsdil7bGV0IGFjPVtdO2NvbnN0IGNzPWRlcGxveW1lbnRUeXBlIT0nbGl2ZSd8fCdVUychPSdDQSc7Y29uc3QgY2g9KG8sZCk9PnR5cGVvZiBvIT09J3VuZGVmaW5lZCc\/bzpkO2FhPWNoKGFhLCcnKTtjPWNoKGMsJycpO2E9Y2goYSwnJyk7bD1jaChsLCcnKTt2PWNoKHYsMSk7aWYoYWE9PSdpbnRlcm5hbCcpe2FjPWQyY19nYUFjY291bnRzLmludGVybmFsO31lbHNlIGlmKGFhLmxlbmd0aCYmL14oYnxjfGQpXC5fdHJhY2tFdmVudC8udGVzdChhYSkmJnR5cGVvZiBkMmNfZ2FBY2NvdW50c1thYVswXV0hPSd1bmRlZmluZWQnKXthYy5wdXNoKGQyY19nYUFjY291bnRzW2FhWzBdXSk7fQppZihhYy5sZW5ndGgpe2FjLm1hcCgoaWQpPT57Y29uc3QgZD17c2VuZF90bzppZCxldmVudF9hY3Rpb246YSxldmVudF9jYXRlZ29yeTpjLGV2ZW50X2xhYmVsOmwsdmFsdWU6dn07aWYoY3Mpe2NvbnNvbGUubG9nKGBHQVRSQUNLLUdUQUctU0VORC1UT1ske2lkfV06YCwnZXZlbnQnLGEsZCk7cmV0dXJuO30KZ3RhZygnZXZlbnQnLGEsZCk7fSk7fWVsc2V7Y29uc3QgZD17ZXZlbnRfYWN0aW9uOmEsZXZlbnRfY2F0ZWdvcnk6YyxldmVudF9sYWJlbDpsLHZhbHVlOnZ9O2lmKGNzKXtjb25zb2xlLmxvZygnR0FUUkFDSy1HVEFHLU5PLVNFTkQtVE86JywnZXZlbnQnLGEsZCk7fWVsc2V7Z3RhZygnZXZlbnQnLGEsZCk7fX19O2Z1bmN0aW9uIG9uQ29uZmlybVN1Ym1pdChldmVudCl7cmV0dXJuIHRydWU7fQpmdW5jdGlvbiBzZXRTZXNzaW9uQ29va2llKGNfbmFtZSx2YWx1ZSl7dmFyIGV4ZGF5cz1udWxsO3ZhciBjX3ZhbHVlPWVzY2FwZSh2YWx1ZSkrIjtleHBpcmVzPTA7cGF0aD0vIjtkb2N1bWVudC5jb29raWU9Y19uYW1lKyI9IitjX3ZhbHVlO2xvZ0Nvb2tpZShjX25hbWUpO30KZnVuY3Rpb24gaW5pdExDSShwYXJhbXMsbil7aWYobj4yMClyZXR1cm4gbjt2YXIgbj0obik\/bjowO2lmKHR5cGVvZiBMQ19BUEk9PSd1bmRlZmluZWQnfHx0eXBlb2YgTENfSW52aXRlPT0ndW5kZWZpbmVkJyl7c2V0VGltZW91dChmdW5jdGlvbigpe2luaXRMQ0kocGFyYW1zLCsrbik7fSw1MDApO3JldHVybjt9CmlmKHR5cGVvZiBMQ19BUEkhPSd1bmRlZmluZWQnJiZ0eXBlb2YgTENfSW52aXRlIT0ndW5kZWZpbmVkJyYmcGFyYW1zKXtyZXR1cm4gTENfQVBJLnNldF9jdXN0b21fdmFyaWFibGVzKHBhcmFtcyk7fX0KZnVuY3Rpb24gc2FuaXRpemVSZWZlcmVyKHJlZmVyZXIpe3JldHVybiByZWZlcmVyLnJlcGxhY2UoL1snImAoKTw+XFtcXXt9fCFdL2csJycpO30KZnVuY3Rpb24gZ2V0UmVmZXJyZXJWYXJGdW5jdGlvbihyZWZlcmVyKXtyZXR1cm4gZnVuY3Rpb24oKXtpZignJz09cmVmZXJlcilyZWZlcmVyPWRvY3VtZW50LnJlZmVycmVyO3JlZmVyZXI9c2FuaXRpemVSZWZlcmVyKHJlZmVyZXIpO3ZhciBxcyxxc2luZGV4PXJlZmVyZXIuaW5kZXhPZignPycpKzE7aWYocXNpbmRleD4wKXt2YXIgcXM9cmVmZXJlci5zbGljZShxc2luZGV4KTtyZXR1cm4gcGFyc2VRdWVyeShxcyk7fQpyZXR1cm57fX19CnZhciBnZXRSZWZlcmVyVmFycz1nZXRSZWZlcnJlclZhckZ1bmN0aW9uKCcnKTt2YXIgdXRtX2xhbmRpbmdfY29va2llPShnZXRDb29raWUoJ3V0bV9sYW5kaW5nJykhPW51bGwmJnR5cGVvZiBnZXRDb29raWUoJ3V0bV9sYW5kaW5nJykhPSd1bmRlZmluZWQnP2dldENvb2tpZSgndXRtX2xhbmRpbmcnKTonJyk7aWYodXRtX2xhbmRpbmdfY29va2llLmxlbmd0aD09MCl7c2V0Q29va2llKCd1dG1fbGFuZGluZycsd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lKTt9CmlmKGRlcGxveW1lbnRUeXBlPT0nbGl2ZScpe3ZhciBnZW5lcmF0ZUdVSUQ9ZnVuY3Rpb24oKXt2YXIgUzQ9ZnVuY3Rpb24oKXtyZXR1cm4gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjB4MTAwMDApLnRvU3RyaW5nKDE2KTt9O3JldHVybihTNCgpK1M0KCkrIi0iKwpTNCgpKyItIisKUzQoKSsiLSIrClM0KCkrIi0iKwpTNCgpK1M0KCkrUzQoKSk7fQp2YXIgdXJsVmFycz1nZXRVcmxWYXJzKCk7dmFyIHJlZmVyZXJWYXJzPWdldFJlZmVyZXJWYXJzKCk7dmFyIHJlZmVyZXI9Jyc7dmFyIHJhd1JlZmVycmVyPXJlZmVyZXI7cmVmZXJlcj0ocmVmZXJlci5sZW5ndGg8MT8wOnJlZmVyZXIpO2lmKCcnPT1yYXdSZWZlcnJlcilyYXdSZWZlcnJlcj1kb2N1bWVudC5yZWZlcnJlcjt2YXIgaXRlbVR5cGU9J2Nhcic7aXRlbVR5cGU9KGl0ZW1UeXBlLmxlbmd0aDwxPzA6aXRlbVR5cGUpO2lmKGlzTmFOKHJlZmVyZXIpKXtyZWZlcmVyPXJlZmVyZXIucmVwbGFjZSgvXC8vZywifCIpLnJlcGxhY2UoL1w\/L2csIl9fIikucmVwbGFjZSgvXHQvZywnJykucmVwbGFjZSgvXG4vZywnJykucmVwbGFjZSgvXHIvZywnJykucmVwbGFjZUFsbCgnJTBBJywnJykucmVwbGFjZUFsbCgnJTA5JywnJykucmVwbGFjZUFsbCgnJTBCJywnJykucmVwbGFjZUFsbCgnJTAwJywnJykucmVwbGFjZUFsbCgnJTBEJywnJyk7fQp2YXIgbWFrZT0iIjtpZihtYWtlLmxlbmd0aD09MCltYWtlPSIwIjt2YXIgbW9kZWw9IiI7aWYobW9kZWwubGVuZ3RoPT0wKW1vZGVsPSIwIjt2YXIgeWVhcj0iIjtpZih5ZWFyLmxlbmd0aD09MCl5ZWFyPSIwIjt2YXIgaXNtb2JpbGU9IjEiO2lmKGlzbW9iaWxlLmxlbmd0aD09MClpc21vYmlsZT0iMCI7dmFyIG9yaWdTb3VyY2U9IiI7dmFyIG9yaWdDYW1wYWlnbj0iIjt2YXIgb3JpZ0tleXdvcmQ9IiI7aWYodXJsVmFyc1sicmVsYW5jZUlEIl0hPXVuZGVmaW5lZCkKc2V0Q29va2llKCdyZWxhbmNlSUQnLHVybFZhcnNbInJlbGFuY2VJRCJdLDE4MCk7dmFyIHNvdXJjZT0oZ2V0Q29va2llKCd1dG1fc291cmNlJykhPW51bGwmJnR5cGVvZiBnZXRDb29raWUoJ3V0bV9zb3VyY2UnKSE9J3VuZGVmaW5lZCc\/Z2V0Q29va2llKCd1dG1fc291cmNlJyk6JycpO3ZhciBzb3VyY2VDb29raWU9c291cmNlO3ZhciBzb3VyY2VVUkw9IiI7aWYoInV0bV9zb3VyY2UiaW4gdXJsVmFycyl7aWYoc291cmNlLmxlbmd0aD09MClzb3VyY2U9dXJsVmFyc1sndXRtX3NvdXJjZSddO3NvdXJjZVVSTD11cmxWYXJzWyd1dG1fc291cmNlJ107fQp2YXIgY2FtcGFpZ249KGdldENvb2tpZSgndXRtX2NhbXBhaWduJykhPW51bGwmJnR5cGVvZiBnZXRDb29raWUoJ3V0bV9jYW1wYWlnbicpIT0ndW5kZWZpbmVkJz9nZXRDb29raWUoJ3V0bV9jYW1wYWlnbicpOicnKTtpZihjYW1wYWlnbi50b0xvd2VyQ2FzZSgpPT0nZWNvbGUtZXR1ZGlhbnQnKXtjYW1wYWlnbj0nJztzZXRDb29raWUoJ3V0bV9jYW1wYWlnbicsIiIsMSk7fQp2YXIgY2FtcGFpZ25Db29raWU9Y2FtcGFpZ247dmFyIGNhbXBhaWduVVJMPSIiO2lmKCJ1dG1fY2FtcGFpZ24iaW4gdXJsVmFycyl7aWYoY2FtcGFpZ24ubGVuZ3RoPT0wKWNhbXBhaWduPXVybFZhcnNbJ3V0bV9jYW1wYWlnbiddO2NhbXBhaWduVVJMPXVybFZhcnNbJ3V0bV9jYW1wYWlnbiddO30KdmFyIG1lZGl1bT0oZ2V0Q29va2llKCd1dG1fbWVkaXVtJykhPW51bGwmJnR5cGVvZiBnZXRDb29raWUoJ3V0bV9tZWRpdW0nKSE9J3VuZGVmaW5lZCc\/Z2V0Q29va2llKCd1dG1fbWVkaXVtJyk6JycpO3ZhciBtZWRpdW1Db29raWU9bWVkaXVtO3ZhciBtZWRpdW1VUkw9IiI7aWYoInV0bV9tZWRpdW0iaW4gdXJsVmFycyl7aWYobWVkaXVtLmxlbmd0aD09MCltZWRpdW09dXJsVmFyc1sndXRtX21lZGl1bSddO21lZGl1bVVSTD11cmxWYXJzWyd1dG1fbWVkaXVtJ107fQp2YXIgY29va2llSW5DYW1wYWlnbnM9ZmFsc2U7dmFyIHVybEluQ2FtcGFpZ25zPWZhbHNlO3ZhciBoYXNHb29nbGVPcmdhbmljPWZhbHNlO2Zvcih2YXIgaT0wO2k8YWxsQ2FtcGFpZ25zLmxlbmd0aDtpKyspe2lmKGFsbENhbXBhaWduc1tpXVsxXS50b0xvd2VyQ2FzZSgpPT1zb3VyY2VVUkwudG9Mb3dlckNhc2UoKSYmYWxsQ2FtcGFpZ25zW2ldWzJdLnRvTG93ZXJDYXNlKCk9PWNhbXBhaWduVVJMLnRvTG93ZXJDYXNlKCkpdXJsSW5DYW1wYWlnbnM9dHJ1ZTtpZihhbGxDYW1wYWlnbnNbaV1bMV0udG9Mb3dlckNhc2UoKT09c291cmNlQ29va2llLnRvTG93ZXJDYXNlKCkmJmFsbENhbXBhaWduc1tpXVsyXS50b0xvd2VyQ2FzZSgpPT1jYW1wYWlnbkNvb2tpZS50b0xvd2VyQ2FzZSgpKWNvb2tpZUluQ2FtcGFpZ25zPXRydWU7aWYoYWxsQ2FtcGFpZ25zW2ldWzFdLnRvTG93ZXJDYXNlKCk9PSdnb29nbGUnJiZhbGxDYW1wYWlnbnNbaV1bMl0udG9Mb3dlckNhc2UoKT09J29yZ2FuaXF1ZScpaGFzR29vZ2xlT3JnYW5pYz10cnVlO30KaWYoc291cmNlVVJMPT0iIiYmY2FtcGFpZ25VUkw9PSIiJiZzb3VyY2U9PSIiJiZjYW1wYWlnbj09IiImJmhhc0dvb2dsZU9yZ2FuaWMpe3NvdXJjZVVSTD0iR29vZ2xlIjtjYW1wYWlnblVSTD0iT3JnYW5pcXVlIjt1cmxJbkNhbXBhaWducz10cnVlO30KaWYoY29va2llSW5DYW1wYWlnbnM9PWZhbHNlJiZ1cmxJbkNhbXBhaWducz09dHJ1ZSl7c291cmNlPXNvdXJjZVVSTDtjYW1wYWlnbj1jYW1wYWlnblVSTDtzb3VyY2VDb29raWU9c291cmNlVVJMO2NhbXBhaWduQ29va2llPWNhbXBhaWduVVJMO30KaWYoc291cmNlQ29va2llLnRvTG93ZXJDYXNlKCk9PSdzZW0nJiZzb3VyY2VVUkwudG9Mb3dlckNhc2UoKT09J2dvb2dsZScmJnVybEluQ2FtcGFpZ25zKXtzb3VyY2U9c291cmNlVVJMO2NhbXBhaWduPWNhbXBhaWduVVJMO30KdmFyIGN1cnJlbnRTaXRlSUQ9MTAyMztpZigoY3VycmVudFNpdGVJRD09NTkyfHxjdXJyZW50U2l0ZUlEPT00Mzd8fGN1cnJlbnRTaXRlSUQ9PTU3OXx8Y3VycmVudFNpdGVJRD09NTg1KSYmc291cmNlQ29va2llLnRvTG93ZXJDYXNlKCk9PSdzZW0nKXtzb3VyY2VDb29raWU9J0dvb2dsZSc7c291cmNlPSdHb29nbGUnO2NhbXBhaWduQ29va2llPSdOZXVmJztjYW1wYWlnbj0nTmV1Zic7fQppZihjYW1wYWlnbkNvb2tpZS50b0xvd2VyQ2FzZSgpPT0nb3JnYW5pYyd8fGNhbXBhaWduQ29va2llLnRvTG93ZXJDYXNlKCk9PSdvcmdhbmlxdWUnKXtzb3VyY2VDb29raWU9Jyc7Y2FtcGFpZ25Db29raWU9Jyc7bWVkaXVtQ29va2llPScnO30KaWYoc291cmNlLmxlbmd0aD4wJiYoc291cmNlQ29va2llLmxlbmd0aD09MHx8c291cmNlQ29va2llPT1zb3VyY2UpKXNldENvb2tpZSgndXRtX3NvdXJjZScsc291cmNlLDE4MCk7aWYoY2FtcGFpZ24ubGVuZ3RoPjAmJihjYW1wYWlnbkNvb2tpZS5sZW5ndGg9PTB8fGNhbXBhaWduQ29va2llPT1jYW1wYWlnbikpc2V0Q29va2llKCd1dG1fY2FtcGFpZ24nLGNhbXBhaWduLDE4MCk7aWYobWVkaXVtLmxlbmd0aD4wJiYobWVkaXVtQ29va2llLmxlbmd0aD09MHx8bWVkaXVtQ29va2llPT1tZWRpdW0pKXNldENvb2tpZSgndXRtX21lZGl1bScsbWVkaXVtLDE4MCk7dmFyIGtleXdvcmQ9KGdldENvb2tpZSgndXRtX2tleXdvcmQnKSE9bnVsbCYmdHlwZW9mIGdldENvb2tpZSgndXRtX2tleXdvcmQnKSE9J3VuZGVmaW5lZCc\/Z2V0Q29va2llKCd1dG1fa2V5d29yZCcpOicnKTtpZigia3ciaW4gdXJsVmFycyl7a2V5d29yZD1kZWNvZGVTdHJpbmcodXJsVmFyc1sna3cnXSwzKTt9CmlmKGtleXdvcmQubGVuZ3RoPjApc2V0Q29va2llKCd1dG1fa2V5d29yZCcsa2V5d29yZCwxODApO3ZhciBpc1JldGFyZ2V0aW5nPWZhbHNlO2Zvcih2YXIgaT0wO2k8cmV0YXJnZXRpbmdDYW1wYWlnbnMubGVuZ3RoO2krKyl7aWYocmV0YXJnZXRpbmdDYW1wYWlnbnNbaV1bMV0udG9Mb3dlckNhc2UoKT09c291cmNlVVJMLnRvTG93ZXJDYXNlKCkmJnJldGFyZ2V0aW5nQ2FtcGFpZ25zW2ldWzJdLnRvTG93ZXJDYXNlKCk9PWNhbXBhaWduVVJMLnRvTG93ZXJDYXNlKCkpaXNSZXRhcmdldGluZz10cnVlO30KaWYoaXNSZXRhcmdldGluZyl7dmFyIHNvdXJjZVJldGFyZ2V0aW5nPShnZXRDb29raWUoJ3V0bV9zb3VyY2VfcmV0YXJnZXRpbmcnKSE9bnVsbCYmdHlwZW9mIGdldENvb2tpZSgndXRtX3NvdXJjZV9yZXRhcmdldGluZycpIT0ndW5kZWZpbmVkJz9nZXRDb29raWUoJ3V0bV9zb3VyY2VfcmV0YXJnZXRpbmcnKTonJyk7dmFyIGNhbXBhaWduUmV0YXJnZXRpbmc9KGdldENvb2tpZSgndXRtX2NhbXBhaWduX3JldGFyZ2V0aW5nJykhPW51bGwmJnR5cGVvZiBnZXRDb29raWUoJ3V0bV9jYW1wYWlnbl9yZXRhcmdldGluZycpIT0ndW5kZWZpbmVkJz9nZXRDb29raWUoJ3V0bV9jYW1wYWlnbl9yZXRhcmdldGluZycpOicnKTtpZihzb3VyY2UhPXNvdXJjZVVSTHx8Y2FtcGFpZ24hPWNhbXBhaWduVVJMKXtpZihzb3VyY2VVUkwubGVuZ3RoPjAmJnNvdXJjZVJldGFyZ2V0aW5nLmxlbmd0aD09MClzZXRDb29raWUoJ3V0bV9zb3VyY2VfcmV0YXJnZXRpbmcnLHNvdXJjZVVSTCwxODApO2lmKGNhbXBhaWduVVJMLmxlbmd0aD4wJiZjYW1wYWlnblJldGFyZ2V0aW5nLmxlbmd0aD09MClzZXRDb29raWUoJ3V0bV9jYW1wYWlnbl9yZXRhcmdldGluZycsY2FtcGFpZ25VUkwsMTgwKTt9CnNldENvb2tpZSgndXRtX3NvdXJjZScsc291cmNlVVJMLDE4MCk7c2V0Q29va2llKCd1dG1fY2FtcGFpZ24nLGNhbXBhaWduVVJMLDE4MCk7fQp2YXIgc291cmNlUmV0YXJnZXRpbmc9KGdldENvb2tpZSgndXRtX3NvdXJjZV9yZXRhcmdldGluZycpIT1udWxsJiZ0eXBlb2YgZ2V0Q29va2llKCd1dG1fc291cmNlX3JldGFyZ2V0aW5nJykhPSd1bmRlZmluZWQnP2dldENvb2tpZSgndXRtX3NvdXJjZV9yZXRhcmdldGluZycpOicnKTt2YXIgY2FtcGFpZ25SZXRhcmdldGluZz0oZ2V0Q29va2llKCd1dG1fY2FtcGFpZ25fcmV0YXJnZXRpbmcnKSE9bnVsbCYmdHlwZW9mIGdldENvb2tpZSgndXRtX2NhbXBhaWduX3JldGFyZ2V0aW5nJykhPSd1bmRlZmluZWQnP2dldENvb2tpZSgndXRtX2NhbXBhaWduX3JldGFyZ2V0aW5nJyk6JycpO2lmKHNvdXJjZVJldGFyZ2V0aW5nLmxlbmd0aD4wKXNldENvb2tpZSgndXRtX3NvdXJjZV9yZXRhcmdldGluZycsc291cmNlUmV0YXJnZXRpbmcsMTgwKTtpZihjYW1wYWlnblJldGFyZ2V0aW5nLmxlbmd0aD4wKXNldENvb2tpZSgndXRtX2NhbXBhaWduX3JldGFyZ2V0aW5nJyxjYW1wYWlnblJldGFyZ2V0aW5nLDE4MCk7aWYoIXNvdXJjZSl7aWYocmF3UmVmZXJyZXIhPScnKXt2YXIgc2VsZkhvc3Q9KGRvY3VtZW50LmxvY2F0aW9uLmhyZWYpLm1hdGNoKC9eW0Etel0rOlwvXC8oW15cL10rKVwvPy4qLyk7aWYoc2VsZkhvc3Qpe3NlbGZIb3N0PXNlbGZIb3N0WzFdfQp2YXIgaG9zdD0ocmF3UmVmZXJyZXIudG9TdHJpbmcoKSkubWF0Y2goL15bQS16XSs6XC9cLyhbXlwvXSspXC8\/LiovKTtpZihob3N0KXtob3N0PWhvc3RbMV19ZWxzZXtob3N0PXNlbGZIb3N0O30KaWYoaG9zdCE9c2VsZkhvc3Qpe2hvc3Q9aG9zdC5zcGxpdCgnLicpO2lmKGhvc3QubGVuZ3RoPjIpe3NvdXJjZT1ob3N0WzFdO30KaWYoaG9zdC5sZW5ndGg9PTIpe3NvdXJjZT1ob3N0WzBdO30KaWYoc291cmNlKXNldENvb2tpZSgndXRtX3NvdXJjZScsc291cmNlLDE4MCk7aWYoIWNhbXBhaWduKXtjYW1wYWlnbj0nb3JnYW5pYyc7c2V0Q29va2llKCd1dG1fY2FtcGFpZ24nLGNhbXBhaWduLDE4MCk7fX19fQppZihzb3VyY2UubGVuZ3RoPT0wKXNvdXJjZT0iMCI7aWYoY2FtcGFpZ24ubGVuZ3RoPT0wKWNhbXBhaWduPSIwIjtpZihzb3VyY2VSZXRhcmdldGluZy5sZW5ndGg9PTApc291cmNlUmV0YXJnZXRpbmc9IjAiO2lmKGNhbXBhaWduUmV0YXJnZXRpbmcubGVuZ3RoPT0wKWNhbXBhaWduUmV0YXJnZXRpbmc9IjAiO2lmKHVybFZhcnNbIkRpc3BsYXlTb3VyY2UiXSE9dW5kZWZpbmVkKXtpZihnZXRDb29raWUoJ0Rpc3BsYXlTb3VyY2UnKT09bnVsbHx8dHlwZW9mIGdldENvb2tpZSgnRGlzcGxheVNvdXJjZScpPT0ndW5kZWZpbmVkJyl7aWYodXJsVmFyc1sidXRtX2NhbXBhaWduIl0hPXVuZGVmaW5lZCYmKGdldENvb2tpZSgnRGlzcGxheVNvdXJjZVVUTUNhbXBhaWduJyk9PW51bGx8fHR5cGVvZiBnZXRDb29raWUoJ0Rpc3BsYXlTb3VyY2VVVE1DYW1wYWlnbicpPT0ndW5kZWZpbmVkJykpc2V0Q29va2llKCdEaXNwbGF5U291cmNlVVRNQ2FtcGFpZ24nLHVybFZhcnNbInV0bV9jYW1wYWlnbiJdLDE4MCk7aWYodXJsVmFyc1sidXRtX3NvdXJjZSJdIT11bmRlZmluZWQmJihnZXRDb29raWUoJ0Rpc3BsYXlTb3VyY2VVVE1Tb3VyY2UnKT09bnVsbHx8dHlwZW9mIGdldENvb2tpZSgnRGlzcGxheVNvdXJjZVVUTVNvdXJjZScpPT0ndW5kZWZpbmVkJykpc2V0Q29va2llKCdEaXNwbGF5U291cmNlVVRNU291cmNlJyx1cmxWYXJzWyJ1dG1fc291cmNlIl0sMTgwKTt9CnNldENvb2tpZSgnRGlzcGxheVNvdXJjZScsdXJsVmFyc1siRGlzcGxheVNvdXJjZSJdLDE4MCk7fQp2YXIgc2V0R2NsaWRDb29raWU9dHJ1ZTtpZih1cmxWYXJzWyJ1dG1fc291cmNlIl0hPXVuZGVmaW5lZCl7aWYodXJsVmFyc1sidXRtX3NvdXJjZSJdPT0nU0VNJ3x8dXJsVmFyc1sidXRtX3NvdXJjZSJdPT0nVHJhZGVyJ3x8dXJsVmFyc1sidXRtX3NvdXJjZSJdPT0nR29vZ2xlLW5lcmRtYXJrZXRpbmcnKXtzZXRHY2xpZENvb2tpZT1mYWxzZTt9fQppZih1cmxWYXJzWyJnY2xpZCJdIT11bmRlZmluZWQmJnNldEdjbGlkQ29va2llKXtzZXRDb29raWUoJ2djbGlkJyx1cmxWYXJzWyJnY2xpZCJdLDE4MCk7d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLGZ1bmN0aW9uKGV2ZW50KXtpZigndW5kZWZpbmVkJyE9dHlwZW9mIGFjdGl2ZVVzZXJQcm9maWxlTW5nKXtzYXZlR0NMSUQ9ZnVuY3Rpb24oKXtpZigndW5kZWZpbmVkJz09dHlwZW9mIHdpbmRvdy5qUXVlcnkpe3JldHVybjt9CiQucG9zdCgiaHR0cHM6Ly9yZXN0LmQyY21lZGlhLmNhL2djbGlkLnJlc3QuYXBpLnBocCIse3Nlc3Npb25pZDphY3RpdmVVc2VyUHJvZmlsZU1uZy5zZXNzaW9uaWQsZ2NsaWQ6dXJsVmFyc1snZ2NsaWQnXX0pO307dHJ5e2FjdGl2ZVVzZXJQcm9maWxlTW5nLnJlZ2lzdGVyU2Vzc2lvbkNhbGxiYWNrKHNhdmVHQ0xJRCk7fWNhdGNoKGVycm9yKXtjb25zb2xlLmxvZyhlcnJvcik7fX19KTt9CndpbmRvdy5hY3RpdmVQYWdlPXBhZ2U7dmFyIHVpZD0oZ2V0Q29va2llKCd1aWQnKSE9bnVsbCYmdHlwZW9mIGdldENvb2tpZSgndWlkJykhPSd1bmRlZmluZWQnP2dldENvb2tpZSgndWlkJyk6Z2VuZXJhdGVHVUlEKCkpO3NldENvb2tpZSgndWlkJyx1aWQsMTgwKTt2YXIgZGVhbGVyaWQ9MjgwODt2YXIgc2l0ZWlkPTEwMjM7d2luZG93LmFjdGl2ZVNpdGVJRD1zaXRlaWQ7d2luZG93LmFjdGl2ZURlYWxlcklEPWRlYWxlcmlkO3ZhciBjYXJpZD0nJztpZihjYXJpZC5sZW5ndGg9PTApY2FyaWQ9IjAiO2Z1bmN0aW9uIHRhZ0J1aWxkKGludGVybmFscyl7cmV0dXJuJzwnKyhpbnRlcm5hbHMuam9pbignICcpKSsnIC8+Jzt9CnZhciBjYWNoZUNsZWFyZXI9TWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjk5OTk5OTkpO3ZhciBhZGRUa0ltZz1mdW5jdGlvbihzcmMpe3N3aXRjaChkb2N1bWVudC5yZWFkeVN0YXRlKXtjYXNlImxvYWRpbmciOmRvY3VtZW50LndyaXRlKHRhZ0J1aWxkKFsnaW1nJywnc3R5bGU9IndpZHRoOjFweDtoZWlnaHQ6MXB4O3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MHB4O3RvcDowcHg7IicsJ3NyYz0iJytzcmMrJyInLCdhbHQ9IiInXSkpO2JyZWFrO2Nhc2UiaW50ZXJhY3RpdmUiOmNhc2UiY29tcGxldGUiOmRlZmF1bHQ6dHJ5e3ZhciBpbWc9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW1nIik7aW1nLnN0eWxlLmNzc1RleHQ9J3dpZHRoOjFweDtoZWlnaHQ6MXB4O3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MHB4O3RvcDowcHg7JztpbWcuc2V0QXR0cmlidXRlKCdzcmMnLHNyYyk7aW1nLnNldEF0dHJpYnV0ZSgnYWx0JywnVHJhY2tpbmcgcGl4ZWwnKTtkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGltZyk7fWNhdGNoKGV4KXtpZihjb25zb2xlJiZjb25zb2xlLmxvZyljb25zb2xlLmxvZygiRXJyb3IgdGt3aWRnZXQ6ICIrZXgubWVzc2FnZSk7fQpicmVhazt9fTtjYW1wYWlnbj1jYW1wYWlnbi5yZXBsYWNlKC9cdC9nLCcnKS5yZXBsYWNlKC9cbi9nLCcnKS5yZXBsYWNlKC9cci9nLCcnKS5yZXBsYWNlKCclMEEnLCcnKS5yZXBsYWNlKCclMDknLCcnKS5yZXBsYWNlKCclMEInLCcnKS5yZXBsYWNlKCclMDAnLCcnKS5yZXBsYWNlKCclMEQnLCcnKTtzb3VyY2U9c291cmNlLnJlcGxhY2UoL1x0L2csJycpLnJlcGxhY2UoL1xuL2csJycpLnJlcGxhY2UoL1xyL2csJycpLnJlcGxhY2UoJyUwQScsJycpLnJlcGxhY2UoJyUwOScsJycpLnJlcGxhY2UoJyUwQicsJycpLnJlcGxhY2UoJyUwMCcsJycpLnJlcGxhY2UoJyUwRCcsJycpO3ZhciB0a3NyYz0nL3Byb3h5X3NhdWIvd2Vic2l0ZUhpdHMvJysKZGVhbGVyaWQrIi8iK3NpdGVpZCsiLyIrY2FyaWQrIi8iK2VzY2FwZSh1aWQpKyIvIitwYWdlKyIvIitlc2NhcGUoc291cmNlKSsiLyIrZXNjYXBlKGNhbXBhaWduKSsiLyIrZXNjYXBlKG1ha2UpKyIvIitlc2NhcGUobW9kZWwpKyIvIit5ZWFyKyIvIisKaXNtb2JpbGUrIi8iK2VuY29kZVVSSUNvbXBvbmVudChyZWZlcmVyKSsiLyIrZXNjYXBlKGl0ZW1UeXBlKSsiLyIrZXNjYXBlKHNvdXJjZVJldGFyZ2V0aW5nKSsiLyIrZXNjYXBlKGNhbXBhaWduUmV0YXJnZXRpbmcpKyIvIitjYWNoZUNsZWFyZXIrJy5naWYnO2lmKHR5cGVvZiBhY3RpdmVVc2VyUHJvZmlsZU1uZz09J3VuZGVmaW5lZCd8fCFhY3RpdmVVc2VyUHJvZmlsZU1uZy5faXNCb3QoKSlhZGRUa0ltZyh0a3NyYyk7dmFyIGtleXdvcmRzPSIiO2lmKCJwImluIHJlZmVyZXJWYXJzJiZyZWZlcmVyLmluZGV4T2YoInlhaG9vIik+LTEpe2tleXdvcmRzPXJlZmVyZXJWYXJzWydwJ107fQppZigicSJpbiByZWZlcmVyVmFycyYmKHJlZmVyZXIuaW5kZXhPZigiZ29vZ2xlIik+LTF8fHJlZmVyZXIuaW5kZXhPZigiYmluZyIpPi0xKSl7a2V5d29yZHM9cmVmZXJlclZhcnNbJ3EnXTt9CnZhciB1TGFuZz0oZ2V0Q29va2llKCdsYW5nJyk9PSdlbicpPydlbic6J2ZyJzt3aW5kb3cuZmJDaGF0UmVmPXtyOidzaXRlJyxjOmNhbXBhaWduLHM6c291cmNlfTt2YXIgY3VzdG9tX3ZhcmlhYmxlcz1be25hbWU6J2xhbmd1YWdlJyx2YWx1ZTp1TGFuZ30se25hbWU6J3V0bV9jYW1wYWlnbicsdmFsdWU6Y2FtcGFpZ259LHtuYW1lOid1dG1fc291cmNlJyx2YWx1ZTpzb3VyY2V9LHtuYW1lOidwYWdlJyx2YWx1ZTpwYWdlfSx7bmFtZTondWlkJyx2YWx1ZTp1aWR9LHtuYW1lOidjYXJpZCcsdmFsdWU6Y2FyaWR9LHtuYW1lOidtYWtlJyx2YWx1ZTptYWtlfSx7bmFtZTonbW9kZWwnLHZhbHVlOm1vZGVsfSx7bmFtZToneWVhcicsdmFsdWU6eWVhcn0se25hbWU6J2lzTW9iaWxlU2l0ZScsdmFsdWU6aXNtb2JpbGV9XTt3aW5kb3cuY1ZhcmlhYmxlcz1jdXN0b21fdmFyaWFibGVzO3dpbmRvdy5yZWxhbmNlSGFuZGxlckZuYz1mdW5jdGlvbigpe3ZhciByZWxhbmNlSUQ9KGdldENvb2tpZSgncmVsYW5jZUlEJykhPW51bGwmJnR5cGVvZiBnZXRDb29raWUoJ3JlbGFuY2VJRCcpIT0ndW5kZWZpbmVkJz9nZXRDb29raWUoJ3JlbGFuY2VJRCcpOjApO2lmKHR5cGVvZiBhY3RpdmVVc2VyUHJvZmlsZU1uZyE9J3VuZGVmaW5lZCcmJnR5cGVvZiBhY3RpdmVVc2VyUHJvZmlsZU1uZy5sb2dQYWdlVmlld0V2ZW50IT0ndW5kZWZpbmVkJyl7YWN0aXZlVXNlclByb2ZpbGVNbmcubG9nUGFnZVZpZXdFdmVudChyZWxhbmNlSUQsJ3JlbGFuY2VJRCcpO2lmKHVybFZhcnNbIkRpc3BsYXlTb3VyY2UiXSE9dW5kZWZpbmVkKXthY3RpdmVVc2VyUHJvZmlsZU1uZy5sb2dQYWdlVmlld0V2ZW50KHVybFZhcnNbIkRpc3BsYXlTb3VyY2UiXSwnZGlzcGxheVNvdXJjZScpO2lmKHVybFZhcnNbInV0bV9jYW1wYWlnbiJdIT11bmRlZmluZWQpYWN0aXZlVXNlclByb2ZpbGVNbmcubG9nUGFnZVZpZXdFdmVudCh1cmxWYXJzWyJ1dG1fY2FtcGFpZ24iXSwndXRtX2NhbXBhaWduJyk7aWYodXJsVmFyc1sidXRtX3NvdXJjZSJdIT11bmRlZmluZWQpYWN0aXZlVXNlclByb2ZpbGVNbmcubG9nUGFnZVZpZXdFdmVudCh1cmxWYXJzWyJ1dG1fc291cmNlIl0sJ3V0bV9zb3VyY2UnKTt9fQplbHNlCnNldFRpbWVvdXQod2luZG93LnJlbGFuY2VIYW5kbGVyRm5jLDEwMDApO307dmFyIGluaXRGPWZ1bmN0aW9uKCl7aW5pdExDSShjdXN0b21fdmFyaWFibGVzKTt3aW5kb3cucmVsYW5jZUhhbmRsZXJGbmMoKTt9O2lmKHdpbmRvdy5hdHRhY2hFdmVudCl3aW5kb3cuYXR0YWNoRXZlbnQoJ29ubG9hZCcsaW5pdEYpO2Vsc2Ugd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLGluaXRGLGZhbHNlKTt2YXIgYWljdXJyZW50cGFnZT0nbmV3Y2Fycy5odG1sJztpZihBSUN1cnJlbnRDb25maWdJRD4wJiZ0eXBlb2YgYWN0aXZlVXNlclByb2ZpbGVNbmchPSd1bmRlZmluZWQnKXthY3RpdmVVc2VyUHJvZmlsZU1uZy5sb2dQYWdlVmlld0V2ZW50KEFJQ3VycmVudENvbmZpZ0lELCdBSUNvbmZpZycpO30KaWYoQUlJRFBlck5ld0NhcnNGcmVuY2gubGVuZ3RoPjAmJmFpY3VycmVudHBhZ2U9PSduZXdjYXJkZXRhaWwuaHRtbCcmJmdldENvb2tpZSgnbGFzdG5ld3ZlaGljbGUnKSE9bnVsbCl7dmFyIGxhc3RuZXd2ZWhpY2xlPWdldENvb2tpZSgnbGFzdG5ld3ZlaGljbGUnKTt2YXIgbGFzdG5ld3ZlaGljbGVzcGxpdD1sYXN0bmV3dmVoaWNsZS5zcGxpdCgnfHx8Jyk7dmFyIGFpbmV3Y2FyaWQ9MDtpZih0eXBlb2YgQUlJRFBlck5ld0NhcnNGcmVuY2hbbGFzdG5ld3ZlaGljbGVzcGxpdFswXStsYXN0bmV3dmVoaWNsZXNwbGl0WzFdK2xhc3RuZXd2ZWhpY2xlc3BsaXRbMl1dIT09J3VuZGVmaW5lZCcpYWluZXdjYXJpZD1BSUlEUGVyTmV3Q2Fyc0ZyZW5jaFtsYXN0bmV3dmVoaWNsZXNwbGl0WzBdK2xhc3RuZXd2ZWhpY2xlc3BsaXRbMV0rbGFzdG5ld3ZlaGljbGVzcGxpdFsyXV07aWYodHlwZW9mIEFJSURQZXJOZXdDYXJzRW5nbGlzaFtsYXN0bmV3dmVoaWNsZXNwbGl0WzBdK2xhc3RuZXd2ZWhpY2xlc3BsaXRbMV0rbGFzdG5ld3ZlaGljbGVzcGxpdFsyXV0hPT0ndW5kZWZpbmVkJylhaW5ld2NhcmlkPUFJSURQZXJOZXdDYXJzRW5nbGlzaFtsYXN0bmV3dmVoaWNsZXNwbGl0WzBdK2xhc3RuZXd2ZWhpY2xlc3BsaXRbMV0rbGFzdG5ld3ZlaGljbGVzcGxpdFsyXV07aWYoYWluZXdjYXJpZD4wJiZ0eXBlb2YgYWN0aXZlVXNlclByb2ZpbGVNbmchPSd1bmRlZmluZWQnKXthY3RpdmVVc2VyUHJvZmlsZU1uZy5sb2dQYWdlVmlld0V2ZW50KGFpbmV3Y2FyaWQsJ0FJQ29uZmlnTmV3Q2FyJyk7fX19CnNldFRpbWVvdXQoZnVuY3Rpb24oKXt2YXIgZm49ZnVuY3Rpb24oKXtpZih0eXBlb2YgalF1ZXJ5IT0ndW5kZWZpbmVkJyl7cmV0dXJuIGpRdWVyeS5yZWFkeSgpO30Kc2V0VGltZW91dChmbiwxMDApO30KZm4oKTt9LDEwMDApOwovKl1dPiovCgooYXN5bmMgKCkgPT4gewoJCgl0cnkgewoJCXZhciBsYW5nID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignYm9keScpLmNsYXNzTmFtZS5tYXRjaCgnRlJFTkNIJykgPyAnZnInIDogJ2VuJzsKCQkKCQl2YXIgdXJsID0gbmV3IFVSTChgL2pzL2pzb24vbWVudVRpdGxlc18ke2xhbmd9Lmpzb25gLCB3aW5kb3cubG9jYXRpb24ub3JpZ2luKS5ocmVmOwoJCXJlc3BvbnNlID0gYXdhaXQgZmV0Y2godXJsKTsKCQl0ZXh0ID0gYXdhaXQgcmVzcG9uc2UudGV4dCgpOwoJCQoJCWlmICh0ZXh0KSB7CgkJCWRhdGEgPSBKU09OLnBhcnNlKHRleHQpOwoJCQl2YXIgbXVsdGkgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdVU0VEJyk7CgkJCQoJCQlpZiAobXVsdGkubGVuZ3RoKSB7CgkJCQlmb3IodmFyIGkgPSAwOyBpIDwgbXVsdGkubGVuZ3RoOyBpKyspIHsKCQkJCQltdWx0aVtpXS5xdWVyeVNlbGVjdG9yKCcuc2hyaW5rLWdyb3cnKS50ZXh0Q29udGVudCA9IGRhdGFbJ1VTRUQnXS50ZXh0OwoJCQkJfQoJCQl9CgkJCWVsc2UgewoJCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI01haW5NZW51X1VTRUQgPiBhJykudGV4dENvbnRlbnQgPSBkYXRhWydVU0VEJ10udGV4dDsKCQkJCXdpbmRvdy5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgncmVzaXplJykpOwoJCQl9CgkJfQoJCQoJfSBjYXRjaCAoZSl7CgkJY29uc29sZS5sb2coZSk7Cgl9CgkKfSkoKTsKCihhc3luYyAoKSA9PiB7CgkKCXRyeSB7CgkJdmFyIGxhbmcgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdib2R5JykuY2xhc3NOYW1lLm1hdGNoKCdGUkVOQ0gnKSA\/ICdmcicgOiAnZW4nOwoJCQoJCXZhciB1cmwgPSBuZXcgVVJMKGAvanMvanNvbi9tZW51VGl0bGVzXyR7bGFuZ30uanNvbmAsIHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4pLmhyZWY7CgkJcmVzcG9uc2UgPSBhd2FpdCBmZXRjaCh1cmwpOwoJCXRleHQgPSBhd2FpdCByZXNwb25zZS50ZXh0KCk7CgkJCgkJaWYgKHRleHQpIHsKCQkJZGF0YSA9IEpTT04ucGFyc2UodGV4dCk7CgkJCXZhciBtdWx0aSA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ1NFUlZJQ0UnKTsKCQkJCgkJCWlmIChtdWx0aS5sZW5ndGgpIHsKCQkJCWZvcih2YXIgaSA9IDA7IGkgPCBtdWx0aS5sZW5ndGg7IGkrKykgewoJCQkJCW11bHRpW2ldLnF1ZXJ5U2VsZWN0b3IoJy5zaHJpbmstZ3JvdycpLnRleHRDb250ZW50ID0gZGF0YVsnU0VSVklDRSddLnRleHQ7CgkJCQl9CgkJCX0KCQkJZWxzZSB7CgkJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjTWFpbk1lbnVfU0VSVklDRSA+IGEnKS50ZXh0Q29udGVudCA9IGRhdGFbJ1NFUlZJQ0UnXS50ZXh0OwoJCQkJd2luZG93LmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCdyZXNpemUnKSk7CgkJCX0KCQl9CgkJCgl9IGNhdGNoIChlKXsKCQljb25zb2xlLmxvZyhlKTsKCX0KCQp9KSgpOwoKCS8qPCFbQ0RBVEFbKi8KCXZhciBwYXJhbXMgPSBnZXRVcmxWYXJzKCk7CgkvL3NldCBwYXJhbSB2YWx1ZSBpbnRvIHNlc3Npb24gc3RvcmFnZQoJaWYgKHR5cGVvZiBzZXNzaW9uU3RvcmFnZSAhPT0gJ3VuZGVmaW5lZCcpIHsKCgkJaWYocGFyYW1zLmhhc093blByb3BlcnR5KCdoJykpewoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKCdoJyxwYXJhbXMuaCk7CgkJfQoKCQlpZihwYXJhbXMuaGFzT3duUHJvcGVydHkoJ20nKSl7CgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0oJ20nLHBhcmFtcy5tKTsKCQl9CgoJCXZhciBoID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgnaCcpOwoJCXZhciBtID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgnbScpOwoKCQkvL3JlYWQgc2Vzc2lvbiBhbmQgcmVtb3ZlIGhlYWRlciAmIG1lbnUgaWYgb3B0aW9ucyBoYXZlIGJlZW4gc2V0CgkJaWYoaCA9PT0gJ25vJyl7CgkJCS8vc3R1ZmYgdG8gcmVtb3ZlIHRoYXQgaXMgY29uc2lkZXJlZCBwYXJ0IG9mIHRoZSBoZWFkZXIKCQkJdmFyIGhlYWRlcnMgPSBbCgkJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcuaGVhZGVyLWluZm8nKSwKCQkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5oZWFkZXItZm9vdGVyJyksCgkJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcubGFuZ3VhZ2VCYXInKSwKCQkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5oZWFkZXItbG9nbycpLAoJCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLm1vYmlsZS1oZWFkZXIgPiAqOm5vdCguYnVyZ2VyLW1lbnUtY29udGFpbmVyKScpCgkJCV07CgoJCQlmb3IodmFyIGVsZW0gb2YgaGVhZGVycyl7CgkJCQkvL3JlbW92ZSBub2RlIGxpc3QgcXVlcmllcwoJCQkJaWYgKE5vZGVMaXN0LnByb3RvdHlwZS5pc1Byb3RvdHlwZU9mKGVsZW0pKSB7CgkJCQkJZm9yKHZhciBfZWxlbSBvZiBlbGVtKXsKCQkJCQkJaWYgKF9lbGVtICE9PSBudWxsKSB7CgkJCQkJCQlfZWxlbS5yZW1vdmUoKTsKCQkJCQkJfQoJCQkJCX0KCQkJCX0KCQkJCWVsc2UgaWYgKGVsZW0gIT09IG51bGwpewoJCQkJCWVsZW0ucmVtb3ZlKCk7CgkJCQl9CgkJCX0KCQl9CgoJCS8vbWVudQoJCWlmKG0gPT09ICdubycpewoJCQl2YXIgbWVudXMgPSBbCgkJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcuaGVhZGVyLW1lbnUnKSwKCQkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5idXJnZXItbWVudS1jb250YWluZXInKSwKCQkJXTsKCQkJZm9yKHZhciBlbGVtIG9mIG1lbnVzKXsKCQkJCWlmKGVsZW0gIT09IG51bGwpewoJCQkJCWVsZW0ucmVtb3ZlKCk7CgkJCQl9CgkJCX0KCQl9CgoJCS8vc2luY2Ugbm8gaGVhZGVyIG9yIG1lbnUsIHJlbW92ZSBldmVyeXRoaW5nCgkJaWYgKG0gPT09ICdubycgJiYgaCA9PT0gJ25vJykgewoJCQl2YXIgaGVhZGVyID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLm1vYmlsZS1oZWFkZXInKTsKCQkJaWYoaGVhZGVyICE9PSBudWxsKXsKCQkJCWhlYWRlci5yZW1vdmUoKTsKCQkJfQoJCX0KCgl9CgkvKl1dPiovCg==","js_rl":"CgkJCQl3aW5kb3cuZ1Rlc3RTcGVlZENvbm49RGF0ZS5ub3coKTsKCQkJCXdpbmRvdy5nUmVzb3VyY2VMb2FkZXJBbmRKcXVlcnlJc1JlYWR5PWZhbHNlOwoJCQkJd2luZG93LmdTa2VsZXRvbklzUmVtb3ZlZD1mYWxzZTsKCQkJCXdpbmRvdy5nRGVsYXllZExvYWRTY3JpcHQ9d2luZG93LmdEZWxheWVkTG9hZFNjcmlwdHx8ZnVuY3Rpb24oYSxkKXtzZXRUaW1lb3V0KCgpPT57dmFyIGU9ITA7Y29uc29sZS5sb2coIkdERUxBWUVETE9BRFNDUklQVDoiK2EsZCk7dmFyIG49ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7aWYoIm9iamVjdCI9PXR5cGVvZiBkJiZudWxsIT09ZClmb3IodmFyIG8gaW4gZClkLmhhc093blByb3BlcnR5KG8pJiZudWxsIT09ZFtvXSYmKC0xIT09WyJkZWZlciIsImFzeW5jIl0uaW5kZXhPZihvKSYmKGU9ITEpLG5bb109ZFtvXSk7bi5zcmM9YSxlJiYobi5hc3luYz0hMCksZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChuKX0pfTsKCQkJCgkJCQkJLyo8IVtDREFUQVsqLwoJCQkJCXZhciBib3hCbG9ja3MgPSB7InN1diI6eyJmYnhfc3V2XzEiOnsidmlzaWJsZSI6dHJ1ZSwiaWQiOjEsInBvc2l0aW9uIjoxLCJkcml2ZXRyYWluIjoxLCJmdWVsIjoxLCJwcmljZSI6MzUyNDQsImNvbnNvIjo2LjkwMDAwMDAwMDAwMDAwMDM1NTI3MTM2Nzg4MDA1MDA5MjkzNTU2MjEzMzc4OTA2MjUsImNhckNhdGVnb3J5Ijoic3V2IiwiY2FyTWFrZSI6ImZvcmQiLCJjYXJNb2RlbCI6IkVzY2FwZSIsInNwZWNpYWxPcmRlciI6MH0sImZieF9zdXZfMiI6eyJ2aXNpYmxlIjp0cnVlLCJpZCI6MiwicG9zaXRpb24iOjIsImRyaXZldHJhaW4iOjEsImZ1ZWwiOjEsInByaWNlIjozNTg5NCwiY29uc28iOjYuOTAwMDAwMDAwMDAwMDAwMzU1MjcxMzY3ODgwMDUwMDkyOTM1NTYyMTMzNzg5MDYyNSwiY2FyQ2F0ZWdvcnkiOiJzdXYiLCJjYXJNYWtlIjoiZm9yZCIsImNhck1vZGVsIjoiRXNjYXBlIiwic3BlY2lhbE9yZGVyIjowfSwiZmJ4X3N1dl8zIjp7InZpc2libGUiOnRydWUsImlkIjozLCJwb3NpdGlvbiI6MywiZHJpdmV0cmFpbiI6NCwiZnVlbCI6MSwicHJpY2UiOjQxMTkwLCJjb25zbyI6Ny45MDAwMDAwMDAwMDAwMDAzNTUyNzEzNjc4ODAwNTAwOTI5MzU1NjIxMzM3ODkwNjI1LCJjYXJDYXRlZ29yeSI6InN1diIsImNhck1ha2UiOiJmb3JkIiwiY2FyTW9kZWwiOiJCcm9uY28gU3BvcnQiLCJzcGVjaWFsT3JkZXIiOjB9LCJmYnhfc3V2XzQiOnsidmlzaWJsZSI6dHJ1ZSwiaWQiOjQsInBvc2l0aW9uIjo0LCJkcml2ZXRyYWluIjo0LCJmdWVsIjoxLCJwcmljZSI6NDE2NDAsImNvbnNvIjo3Ljc5OTk5OTk5OTk5OTk5OTgyMjM2NDMxNjA1OTk3NDk1MzUzMjIxODkzMzEwNTQ2ODc1LCJjYXJDYXRlZ29yeSI6InN1diIsImNhck1ha2UiOiJmb3JkIiwiY2FyTW9kZWwiOiJCcm9uY28gU3BvcnQiLCJzcGVjaWFsT3JkZXIiOjB9LCJmYnhfc3V2XzUiOnsidmlzaWJsZSI6dHJ1ZSwiaWQiOjUsInBvc2l0aW9uIjo1LCJkcml2ZXRyYWluIjo0LCJmdWVsIjoxLCJwcmljZSI6NTE3NjAsImNvbnNvIjoxMC45MDAwMDAwMDAwMDAwMDAzNTUyNzEzNjc4ODAwNTAwOTI5MzU1NjIxMzM3ODkwNjI1LCJjYXJDYXRlZ29yeSI6InN1diIsImNhck1ha2UiOiJmb3JkIiwiY2FyTW9kZWwiOiJCcm9uY28iLCJzcGVjaWFsT3JkZXIiOjB9LCJmYnhfc3V2XzYiOnsidmlzaWJsZSI6dHJ1ZSwiaWQiOjYsInBvc2l0aW9uIjo2LCJkcml2ZXRyYWluIjo0LCJmdWVsIjoxLCJwcmljZSI6NTM5ODAsImNvbnNvIjo4LjY5OTk5OTk5OTk5OTk5OTI4OTQ1NzI2NDIzOTg5OTgxNDEyODg3NTczMjQyMTg3NSwiY2FyQ2F0ZWdvcnkiOiJzdXYiLCJjYXJNYWtlIjoiZm9yZCIsImNhck1vZGVsIjoiRXhwbG9yZXIiLCJzcGVjaWFsT3JkZXIiOjB9LCJmYnhfc3V2XzciOnsidmlzaWJsZSI6dHJ1ZSwiaWQiOjcsInBvc2l0aW9uIjo3LCJkcml2ZXRyYWluIjo0LCJmdWVsIjoxLCJwcmljZSI6NTQxMTAsImNvbnNvIjoxMC45MDAwMDAwMDAwMDAwMDAzNTUyNzEzNjc4ODAwNTAwOTI5MzU1NjIxMzM3ODkwNjI1LCJjYXJDYXRlZ29yeSI6InN1diIsImNhck1ha2UiOiJmb3JkIiwiY2FyTW9kZWwiOiJCcm9uY28iLCJzcGVjaWFsT3JkZXIiOjB9LCJmYnhfc3V2XzgiOnsidmlzaWJsZSI6dHJ1ZSwiaWQiOjgsInBvc2l0aW9uIjo4LCJkcml2ZXRyYWluIjo0LCJmdWVsIjoxLCJwcmljZSI6NTQ0OTUsImNvbnNvIjo4LjY5OTk5OTk5OTk5OTk5OTI4OTQ1NzI2NDIzOTg5OTgxNDEyODg3NTczMjQyMTg3NSwiY2FyQ2F0ZWdvcnkiOiJzdXYiLCJjYXJNYWtlIjoiZm9yZCIsImNhck1vZGVsIjoiRXhwbG9yZXIiLCJzcGVjaWFsT3JkZXIiOjB9LCJmYnhfc3V2XzkiOnsidmlzaWJsZSI6dHJ1ZSwiaWQiOjksInBvc2l0aW9uIjo5LCJkcml2ZXRyYWluIjo0LCJmdWVsIjoxLCJwcmljZSI6ODQ4MTUsImNvbnNvIjoxMC41OTk5OTk5OTk5OTk5OTk2NDQ3Mjg2MzIxMTk5NDk5MDcwNjQ0Mzc4NjYyMTA5Mzc1LCJjYXJDYXRlZ29yeSI6InN1diIsImNhck1ha2UiOiJmb3JkIiwiY2FyTW9kZWwiOiJFeHBlZGl0aW9uIiwic3BlY2lhbE9yZGVyIjowfSwiZmJ4X3N1dl8xMCI6eyJ2aXNpYmxlIjp0cnVlLCJpZCI6MTAsInBvc2l0aW9uIjoxMCwiZHJpdmV0cmFpbiI6NCwiZnVlbCI6MSwicHJpY2UiOjg2MDY1LCJjb25zbyI6MTAuNTk5OTk5OTk5OTk5OTk5NjQ0NzI4NjMyMTE5OTQ5OTA3MDY0NDM3ODY2MjEwOTM3NSwiY2FyQ2F0ZWdvcnkiOiJzdXYiLCJjYXJNYWtlIjoiZm9yZCIsImNhck1vZGVsIjoiRXhwZWRpdGlvbiIsInNwZWNpYWxPcmRlciI6MH19LCJoeWJyaWQiOnsiZmJ4X2h5YnJpZF8xIjp7InZpc2libGUiOnRydWUsImlkIjoxLCJwb3NpdGlvbiI6MSwiZHJpdmV0cmFpbiI6MSwiZnVlbCI6OCwicHJpY2UiOjM2OTk1LCJjb25zbyI6Ni43MDAwMDAwMDAwMDAwMDAxNzc2MzU2ODM5NDAwMjUwNDY0Njc3ODEwNjY4OTQ1MzEyNSwiY2FyQ2F0ZWdvcnkiOiJ0cnVjayIsImNhck1ha2UiOiJmb3JkIiwiY2FyTW9kZWwiOiJNYXZlcmljayBIeWJyaWQiLCJzcGVjaWFsT3JkZXIiOjB9LCJmYnhfaHlicmlkXzIiOnsidmlzaWJsZSI6dHJ1ZSwiaWQiOjIsInBvc2l0aW9uIjoyLCJkcml2ZXRyYWluIjoxLCJmdWVsIjo4LCJwcmljZSI6Mzc1OTUsImNvbnNvIjo2Ljc5OTk5OTk5OTk5OTk5OTgyMjM2NDMxNjA1OTk3NDk1MzUzMjIxODkzMzEwNTQ2ODc1LCJjYXJDYXRlZ29yeSI6InRydWNrIiwiY2FyTWFrZSI6ImZvcmQiLCJjYXJNb2RlbCI6Ik1hdmVyaWNrIEh5YnJpZCIsInNwZWNpYWxPcmRlciI6MH0sImZieF9oeWJyaWRfMyI6eyJ2aXNpYmxlIjp0cnVlLCJpZCI6MywicG9zaXRpb24iOjMsImRyaXZldHJhaW4iOjEsImZ1ZWwiOjgsInByaWNlIjo0NjM0NCwiY29uc28iOjYuNSwiY2FyQ2F0ZWdvcnkiOiJzdXYiLCJjYXJNYWtlIjoiZm9yZCIsImNhck1vZGVsIjoiRXNjYXBlIEh5YnJpZCIsInNwZWNpYWxPcmRlciI6MH0sImZieF9oeWJyaWRfNCI6eyJ2aXNpYmxlIjp0cnVlLCJpZCI6NCwicG9zaXRpb24iOjQsImRyaXZldHJhaW4iOjEsImZ1ZWwiOjgsInByaWNlIjo0Njk5NCwiY29uc28iOjYuNSwiY2FyQ2F0ZWdvcnkiOiJzdXYiLCJjYXJNYWtlIjoiZm9yZCIsImNhck1vZGVsIjoiRXNjYXBlIEh5YnJpZCIsInNwZWNpYWxPcmRlciI6MH19LCJjYXIiOnsiZmJ4X2Nhcl8xIjp7InZpc2libGUiOnRydWUsImlkIjoxLCJwb3NpdGlvbiI6MSwiZHJpdmV0cmFpbiI6MiwiZnVlbCI6MSwicHJpY2UiOjQxMzI1LCJjb25zbyI6Ny4wOTk5OTk5OTk5OTk5OTk2NDQ3Mjg2MzIxMTk5NDk5MDcwNjQ0Mzc4NjYyMTA5Mzc1LCJjYXJDYXRlZ29yeSI6ImNhciIsImNhck1ha2UiOiJmb3JkIiwiY2FyTW9kZWwiOiJNdXN0YW5nIiwic3BlY2lhbE9yZGVyIjowfSwiZmJ4X2Nhcl8yIjp7InZpc2libGUiOnRydWUsImlkIjoyLCJwb3NpdGlvbiI6MiwiZHJpdmV0cmFpbiI6MiwiZnVlbCI6MSwicHJpY2UiOjQxMzI1LCJjb25zbyI6Ny4wOTk5OTk5OTk5OTk5OTk2NDQ3Mjg2MzIxMTk5NDk5MDcwNjQ0Mzc4NjYyMTA5Mzc1LCJjYXJDYXRlZ29yeSI6ImNhciIsImNhck1ha2UiOiJmb3JkIiwiY2FyTW9kZWwiOiJNdXN0YW5nIiwic3BlY2lhbE9yZGVyIjowfX0sImNvbW1lcmNpYWwiOnsiZmJ4X2NvbW1lcmNpYWxfMSI6eyJ2aXNpYmxlIjp0cnVlLCJpZCI6MSwicG9zaXRpb24iOjEsImRyaXZldHJhaW4iOjIsImZ1ZWwiOjEsInByaWNlIjo0MzQ4NSwiY29uc28iOjEwMDAsImNhckNhdGVnb3J5IjoiY29tbWVyY2lhbCIsImNhck1ha2UiOiJmb3JkIiwiY2FyTW9kZWwiOiJFLVNlcmllcyBTdHJpcHBlZCBDaGFzc2lzIiwic3BlY2lhbE9yZGVyIjowfSwiZmJ4X2NvbW1lcmNpYWxfMiI6eyJ2aXNpYmxlIjp0cnVlLCJpZCI6MiwicG9zaXRpb24iOjIsImRyaXZldHJhaW4iOjIsImZ1ZWwiOjEsInByaWNlIjo0NjkzMCwiY29uc28iOjEwMDAsImNhckNhdGVnb3J5IjoiY29tbWVyY2lhbCIsImNhck1ha2UiOiJmb3JkIiwiY2FyTW9kZWwiOiJFLVNlcmllcyBDdXRhd2F5Iiwic3BlY2lhbE9yZGVyIjowfSwiZmJ4X2NvbW1lcmNpYWxfMyI6eyJ2aXNpYmxlIjp0cnVlLCJpZCI6MywicG9zaXRpb24iOjMsImRyaXZldHJhaW4iOjIsImZ1ZWwiOjEsInByaWNlIjo0ODYzNSwiY29uc28iOjEwMDAsImNhckNhdGVnb3J5IjoiY29tbWVyY2lhbCIsImNhck1ha2UiOiJmb3JkIiwiY2FyTW9kZWwiOiJFLVNlcmllcyBTdHJpcHBlZCBDaGFzc2lzIiwic3BlY2lhbE9yZGVyIjowfSwiZmJ4X2NvbW1lcmNpYWxfNCI6eyJ2aXNpYmxlIjp0cnVlLCJpZCI6NCwicG9zaXRpb24iOjQsImRyaXZldHJhaW4iOjIsImZ1ZWwiOjEsInByaWNlIjo1MjA4MCwiY29uc28iOjEwMDAsImNhckNhdGVnb3J5IjoiY29tbWVyY2lhbCIsImNhck1ha2UiOiJmb3JkIiwiY2FyTW9kZWwiOiJFLVNlcmllcyBDdXRhd2F5Iiwic3BlY2lhbE9yZGVyIjowfSwiZmJ4X2NvbW1lcmNpYWxfNSI6eyJ2aXNpYmxlIjp0cnVlLCJpZCI6NSwicG9zaXRpb24iOjUsImRyaXZldHJhaW4iOjIsImZ1ZWwiOjEsInByaWNlIjo1MjA4MCwiY29uc28iOjEwMDAsImNhckNhdGVnb3J5IjoiY29tbWVyY2lhbCIsImNhck1ha2UiOiJmb3JkIiwiY2FyTW9kZWwiOiJFLVNlcmllcyBDdXRhd2F5Iiwic3BlY2lhbE9yZGVyIjowfSwiZmJ4X2NvbW1lcmNpYWxfNiI6eyJ2aXNpYmxlIjp0cnVlLCJpZCI6NiwicG9zaXRpb24iOjYsImRyaXZldHJhaW4iOjMsImZ1ZWwiOjEsInByaWNlIjo1ODg5NSwiY29uc28iOjEwMDAsImNhckNhdGVnb3J5IjoiY29tbWVyY2lhbCIsImNhck1ha2UiOiJmb3JkIiwiY2FyTW9kZWwiOiJUcmFuc2l0IEN1dGF3YXkiLCJzcGVjaWFsT3JkZXIiOjB9LCJmYnhfY29tbWVyY2lhbF83Ijp7InZpc2libGUiOnRydWUsImlkIjo3LCJwb3NpdGlvbiI6NywiZHJpdmV0cmFpbiI6MywiZnVlbCI6MSwicHJpY2UiOjYwNTQ1LCJjb25zbyI6MTAwMCwiY2FyQ2F0ZWdvcnkiOiJjb21tZXJjaWFsIiwiY2FyTWFrZSI6ImZvcmQiLCJjYXJNb2RlbCI6IlRyYW5zaXQgQ3V0YXdheSIsInNwZWNpYWxPcmRlciI6MH0sImZieF9jb21tZXJjaWFsXzgiOnsidmlzaWJsZSI6dHJ1ZSwiaWQiOjgsInBvc2l0aW9uIjo4LCJkcml2ZXRyYWluIjozLCJmdWVsIjoxLCJwcmljZSI6NjE1OTUsImNvbnNvIjoxMDAwLCJjYXJDYXRlZ29yeSI6ImNvbW1lcmNpYWwiLCJjYXJNYWtlIjoiZm9yZCIsImNhck1vZGVsIjoiVHJhbnNpdCBDYXJnbyBWYW4iLCJzcGVjaWFsT3JkZXIiOjB9LCJmYnhfY29tbWVyY2lhbF85Ijp7InZpc2libGUiOnRydWUsImlkIjo5LCJwb3NpdGlvbiI6OSwiZHJpdmV0cmFpbiI6MywiZnVlbCI6MSwicHJpY2UiOjYyOTk1LCJjb25zbyI6MTAwMCwiY2FyQ2F0ZWdvcnkiOiJjb21tZXJjaWFsIiwiY2FyTWFrZSI6ImZvcmQiLCJjYXJNb2RlbCI6IlRyYW5zaXQgQ2FyZ28gVmFuIiwic3BlY2lhbE9yZGVyIjowfSwiZmJ4X2NvbW1lcmNpYWxfMTAiOnsidmlzaWJsZSI6dHJ1ZSwiaWQiOjEwLCJwb3NpdGlvbiI6MTAsImRyaXZldHJhaW4iOjYsImZ1ZWwiOjEsInByaWNlIjo2NDk3NCwiY29uc28iOjEwMDAsImNhckNhdGVnb3J5IjoidHJ1Y2siLCJjYXJNYWtlIjoiZm9yZCIsImNhck1vZGVsIjoiU3VwZXIgRHV0eSBGLTM1MCBTUlciLCJzcGVjaWFsT3JkZXIiOjB9LCJmYnhfY29tbWVyY2lhbF8xMSI6eyJ2aXNpYmxlIjp0cnVlLCJpZCI6MTEsInBvc2l0aW9uIjoxMSwiZHJpdmV0cmFpbiI6NiwiZnVlbCI6MywicHJpY2UiOjY3MjgwLCJjb25zbyI6MTAwMCwiY2FyQ2F0ZWdvcnkiOiJ0cnVjayIsImNhck1ha2UiOiJmb3JkIiwiY2FyTW9kZWwiOiJTdXBlciBEdXR5IEYtMzUwIERSVyIsInNwZWNpYWxPcmRlciI6MH0sImZieF9jb21tZXJjaWFsXzEyIjp7InZpc2libGUiOnRydWUsImlkIjoxMiwicG9zaXRpb24iOjEyLCJkcml2ZXRyYWluIjo2LCJmdWVsIjozLCJwcmljZSI6NzEyMTAsImNvbnNvIjoxMDAwLCJjYXJDYXRlZ29yeSI6InRydWNrIiwiY2FyTWFrZSI6ImZvcmQiLCJjYXJNb2RlbCI6IlN1cGVyIER1dHkgRi00NTAgRFJXIiwic3BlY2lhbE9yZGVyIjowfSwiZmJ4X2NvbW1lcmNpYWxfMTMiOnsidmlzaWJsZSI6dHJ1ZSwiaWQiOjEzLCJwb3NpdGlvbiI6MTMsImRyaXZldHJhaW4iOjIsImZ1ZWwiOjQsInByaWNlIjo3MTM5NSwiY29uc28iOjEwMDAsImNhckNhdGVnb3J5IjoiY29tbWVyY2lhbCIsImNhck1ha2UiOiJmb3JkIiwiY2FyTW9kZWwiOiJFLVRyYW5zaXQgQ3V0YXdheSIsInNwZWNpYWxPcmRlciI6MH0sImZieF9jb21tZXJjaWFsXzE0Ijp7InZpc2libGUiOnRydWUsImlkIjoxNCwicG9zaXRpb24iOjE0LCJkcml2ZXRyYWluIjo2LCJmdWVsIjozLCJwcmljZSI6NzE4NDksImNvbnNvIjoxMDAwLCJjYXJDYXRlZ29yeSI6ImNvbW1lcmNpYWwiLCJjYXJNYWtlIjoiZm9yZCIsImNhck1vZGVsIjoiU3VwZXIgRHV0eSBGLTU1MCBEUlciLCJzcGVjaWFsT3JkZXIiOjB9LCJmYnhfY29tbWVyY2lhbF8xNSI6eyJ2aXNpYmxlIjp0cnVlLCJpZCI6MTUsInBvc2l0aW9uIjoxNSwiZHJpdmV0cmFpbiI6MiwiZnVlbCI6NCwicHJpY2UiOjcyMDQ1LCJjb25zbyI6MTAwMCwiY2FyQ2F0ZWdvcnkiOiJjb21tZXJjaWFsIiwiY2FyTWFrZSI6ImZvcmQiLCJjYXJNb2RlbCI6IkUtVHJhbnNpdCBDdXRhd2F5Iiwic3BlY2lhbE9yZGVyIjowfSwiZmJ4X2NvbW1lcmNpYWxfMTYiOnsidmlzaWJsZSI6dHJ1ZSwiaWQiOjE2LCJwb3NpdGlvbiI6MTYsImRyaXZldHJhaW4iOjIsImZ1ZWwiOjQsInByaWNlIjo3MjE5NSwiY29uc28iOjEwMDAsImNhckNhdGVnb3J5IjoiY29tbWVyY2lhbCIsImNhck1ha2UiOiJmb3JkIiwiY2FyTW9kZWwiOiJFLVRyYW5zaXQgQ2hhc3NpcyIsInNwZWNpYWxPcmRlciI6MH0sImZieF9jb21tZXJjaWFsXzE3Ijp7InZpc2libGUiOnRydWUsImlkIjoxNywicG9zaXRpb24iOjE3LCJkcml2ZXRyYWluIjozLCJmdWVsIjoxLCJwcmljZSI6NzI0OTUsImNvbnNvIjoxMDAwLCJjYXJDYXRlZ29yeSI6ImNvbW1lcmNpYWwiLCJjYXJNYWtlIjoiZm9yZCIsImNhck1vZGVsIjoiVHJhbnNpdCBQYXNzZW5nZXIgV2Fnb24iLCJzcGVjaWFsT3JkZXIiOjB9LCJmYnhfY29tbWVyY2lhbF8xOCI6eyJ2aXNpYmxlIjp0cnVlLCJpZCI6MTgsInBvc2l0aW9uIjoxOCwiZHJpdmV0cmFpbiI6MiwiZnVlbCI6NCwicHJpY2UiOjcyODQ1LCJjb25zbyI6MTAwMCwiY2FyQ2F0ZWdvcnkiOiJjb21tZXJjaWFsIiwiY2FyTWFrZSI6ImZvcmQiLCJjYXJNb2RlbCI6IkUtVHJhbnNpdCBDaGFzc2lzIiwic3BlY2lhbE9yZGVyIjowfSwiZmJ4X2NvbW1lcmNpYWxfMTkiOnsidmlzaWJsZSI6dHJ1ZSwiaWQiOjE5LCJwb3NpdGlvbiI6MTksImRyaXZldHJhaW4iOjYsImZ1ZWwiOjMsInByaWNlIjo3MzQxMCwiY29uc28iOjEwMDAsImNhckNhdGVnb3J5IjoiY29tbWVyY2lhbCIsImNhck1ha2UiOiJmb3JkIiwiY2FyTW9kZWwiOiJTdXBlciBEdXR5IEYtNTUwIERSVyIsInNwZWNpYWxPcmRlciI6MH0sImZieF9jb21tZXJjaWFsXzIwIjp7InZpc2libGUiOnRydWUsImlkIjoyMCwicG9zaXRpb24iOjIwLCJkcml2ZXRyYWluIjoyLCJmdWVsIjo0LCJwcmljZSI6NzU2OTUsImNvbnNvIjoxMDAwLCJjYXJDYXRlZ29yeSI6ImNvbW1lcmNpYWwiLCJjYXJNYWtlIjoiZm9yZCIsImNhck1vZGVsIjoiRS1UcmFuc2l0IENhcmdvIFZhbiIsInNwZWNpYWxPcmRlciI6MH0sImZieF9jb21tZXJjaWFsXzIxIjp7InZpc2libGUiOnRydWUsImlkIjoyMSwicG9zaXRpb24iOjIxLCJkcml2ZXRyYWluIjo2LCJmdWVsIjoyLCJwcmljZSI6ODY3MjAsImNvbnNvIjoxMDAwLCJjYXJDYXRlZ29yeSI6ImNvbW1lcmNpYWwiLCJjYXJNYWtlIjoiZm9yZCIsImNhck1vZGVsIjoiU3VwZXIgRHV0eSBGLTYwMCBEUlciLCJzcGVjaWFsT3JkZXIiOjB9LCJmYnhfY29tbWVyY2lhbF8yMiI6eyJ2aXNpYmxlIjp0cnVlLCJpZCI6MjIsInBvc2l0aW9uIjoyMiwiZHJpdmV0cmFpbiI6NiwiZnVlbCI6MiwicHJpY2UiOjg5MjgwLCJjb25zbyI6MTAwMCwiY2FyQ2F0ZWdvcnkiOiJjb21tZXJjaWFsIiwiY2FyTWFrZSI6ImZvcmQiLCJjYXJNb2RlbCI6IlN1cGVyIER1dHkgRi02MDAgRFJXIiwic3BlY2lhbE9yZGVyIjowfX0sInBoZXYiOnsiZmJ4X3BoZXZfMSI6eyJ2aXNpYmxlIjp0cnVlLCJpZCI6MSwicG9zaXRpb24iOjEsImRyaXZldHJhaW4iOjEsImZ1ZWwiOjE2LCJwcmljZSI6NDM4OTQsImNvbnNvIjo2LjI5OTk5OTk5OTk5OTk5OTgyMjM2NDMxNjA1OTk3NDk1MzUzMjIxODkzMzEwNTQ2ODc1LCJjYXJDYXRlZ29yeSI6InN1diIsImNhck1ha2UiOiJmb3JkIiwiY2FyTW9kZWwiOiJFc2NhcGUgUEhFViIsInNwZWNpYWxPcmRlciI6MH0sImZieF9waGV2XzIiOnsidmlzaWJsZSI6dHJ1ZSwiaWQiOjIsInBvc2l0aW9uIjoyLCJkcml2ZXRyYWluIjoxLCJmdWVsIjoxNiwicHJpY2UiOjQzOTk0LCJjb25zbyI6Ni4yOTk5OTk5OTk5OTk5OTk4MjIzNjQzMTYwNTk5NzQ5NTM1MzIyMTg5MzMxMDU0Njg3NSwiY2FyQ2F0ZWdvcnkiOiJzdXYiLCJjYXJNYWtlIjoiZm9yZCIsImNhck1vZGVsIjoiRXNjYXBlIFBIRVYiLCJzcGVjaWFsT3JkZXIiOjB9fSwidHJ1Y2siOnsiZmJ4X3RydWNrXzEiOnsidmlzaWJsZSI6dHJ1ZSwiaWQiOjEsInBvc2l0aW9uIjoxLCJkcml2ZXRyYWluIjoxLCJmdWVsIjoxLCJwcmljZSI6NDQyOTUsImNvbnNvIjo3Ljc5OTk5OTk5OTk5OTk5OTgyMjM2NDMxNjA1OTk3NDk1MzUzMjIxODkzMzEwNTQ2ODc1LCJjYXJDYXRlZ29yeSI6InRydWNrIiwiY2FyTWFrZSI6ImZvcmQiLCJjYXJNb2RlbCI6Ik1hdmVyaWNrIiwic3BlY2lhbE9yZGVyIjowfSwiZmJ4X3RydWNrXzIiOnsidmlzaWJsZSI6dHJ1ZSwiaWQiOjIsInBvc2l0aW9uIjoyLCJkcml2ZXRyYWluIjoxLCJmdWVsIjoxLCJwcmljZSI6NDQzOTUsImNvbnNvIjo3Ljc5OTk5OTk5OTk5OTk5OTgyMjM2NDMxNjA1OTk3NDk1MzUzMjIxODkzMzEwNTQ2ODc1LCJjYXJDYXRlZ29yeSI6InRydWNrIiwiY2FyTWFrZSI6ImZvcmQiLCJjYXJNb2RlbCI6Ik1hdmVyaWNrIiwic3BlY2lhbE9yZGVyIjowfSwiZmJ4X3RydWNrXzMiOnsidmlzaWJsZSI6dHJ1ZSwiaWQiOjMsInBvc2l0aW9uIjozLCJkcml2ZXRyYWluIjo0LCJmdWVsIjoxLCJwcmljZSI6NDUzNjUsImNvbnNvIjo5LjgwMDAwMDAwMDAwMDAwMDcxMDU0MjczNTc2MDEwMDE4NTg3MTEyNDI2NzU3ODEyNSwiY2FyQ2F0ZWdvcnkiOiJ0cnVjayIsImNhck1ha2UiOiJmb3JkIiwiY2FyTW9kZWwiOiJSYW5nZXIiLCJzcGVjaWFsT3JkZXIiOjB9LCJmYnhfdHJ1Y2tfNCI6eyJ2aXNpYmxlIjp0cnVlLCJpZCI6NCwicG9zaXRpb24iOjQsImRyaXZldHJhaW4iOjQsImZ1ZWwiOjEsInByaWNlIjo0NTQ2NSwiY29uc28iOjkuOTAwMDAwMDAwMDAwMDAwMzU1MjcxMzY3ODgwMDUwMDkyOTM1NTYyMTMzNzg5MDYyNSwiY2FyQ2F0ZWdvcnkiOiJ0cnVjayIsImNhck1ha2UiOiJmb3JkIiwiY2FyTW9kZWwiOiJSYW5nZXIiLCJzcGVjaWFsT3JkZXIiOjB9LCJmYnhfdHJ1Y2tfNSI6eyJ2aXNpYmxlIjp0cnVlLCJpZCI6NSwicG9zaXRpb24iOjUsImRyaXZldHJhaW4iOjYsImZ1ZWwiOjEsInByaWNlIjo1NDk4NSwiY29uc28iOjEwMDAsImNhckNhdGVnb3J5IjoidHJ1Y2siLCJjYXJNYWtlIjoiZm9yZCIsImNhck1vZGVsIjoiRi0xNTAiLCJzcGVjaWFsT3JkZXIiOjB9LCJmYnhfdHJ1Y2tfNiI6eyJ2aXNpYmxlIjp0cnVlLCJpZCI6NiwicG9zaXRpb24iOjYsImRyaXZldHJhaW4iOjYsImZ1ZWwiOjEsInByaWNlIjo1MzMwMCwiY29uc28iOjkuMzAwMDAwMDAwMDAwMDAwNzEwNTQyNzM1NzYwMTAwMTg1ODcxMTI0MjY3NTc4MTI1LCJjYXJDYXRlZ29yeSI6InRydWNrIiwiY2FyTWFrZSI6ImZvcmQiLCJjYXJNb2RlbCI6IkYtMTUwIiwic3BlY2lhbE9yZGVyIjowfSwiZmJ4X3RydWNrXzciOnsidmlzaWJsZSI6dHJ1ZSwiaWQiOjcsInBvc2l0aW9uIjo3LCJkcml2ZXRyYWluIjo2LCJmdWVsIjoxLCJwcmljZSI6NjI0NzQsImNvbnNvIjoxMDAwLCJjYXJDYXRlZ29yeSI6InRydWNrIiwiY2FyTWFrZSI6ImZvcmQiLCJjYXJNb2RlbCI6IlN1cGVyIER1dHkgRi0yNTAgU1JXIiwic3BlY2lhbE9yZGVyIjowfSwiZmJ4X3RydWNrXzgiOnsidmlzaWJsZSI6dHJ1ZSwiaWQiOjgsInBvc2l0aW9uIjo4LCJkcml2ZXRyYWluIjo2LCJmdWVsIjoxLCJwcmljZSI6NjQwMzQsImNvbnNvIjoxMDAwLCJjYXJDYXRlZ29yeSI6InRydWNrIiwiY2FyTWFrZSI6ImZvcmQiLCJjYXJNb2RlbCI6IlN1cGVyIER1dHkgRi0yNTAgU1JXIiwic3BlY2lhbE9yZGVyIjowfSwiZmJ4X3RydWNrXzkiOnsidmlzaWJsZSI6dHJ1ZSwiaWQiOjksInBvc2l0aW9uIjo5LCJkcml2ZXRyYWluIjo2LCJmdWVsIjozLCJwcmljZSI6NjU3MjAsImNvbnNvIjoxMDAwLCJjYXJDYXRlZ29yeSI6InRydWNrIiwiY2FyTWFrZSI6ImZvcmQiLCJjYXJNb2RlbCI6IlN1cGVyIER1dHkgRi0zNTAgRFJXIiwic3BlY2lhbE9yZGVyIjowfSwiZmJ4X3RydWNrXzEwIjp7InZpc2libGUiOnRydWUsImlkIjoxMCwicG9zaXRpb24iOjEwLCJkcml2ZXRyYWluIjo2LCJmdWVsIjoxLCJwcmljZSI6NjY1MzQsImNvbnNvIjoxMDAwLCJjYXJDYXRlZ29yeSI6InRydWNrIiwiY2FyTWFrZSI6ImZvcmQiLCJjYXJNb2RlbCI6IlN1cGVyIER1dHkgRi0zNTAgU1JXIiwic3BlY2lhbE9yZGVyIjowfSwiZmJ4X3RydWNrXzExIjp7InZpc2libGUiOnRydWUsImlkIjoxMSwicG9zaXRpb24iOjExLCJkcml2ZXRyYWluIjo2LCJmdWVsIjozLCJwcmljZSI6Njk2NDksImNvbnNvIjoxMDAwLCJjYXJDYXRlZ29yeSI6InRydWNrIiwiY2FyTWFrZSI6ImZvcmQiLCJjYXJNb2RlbCI6IlN1cGVyIER1dHkgRi00NTAgRFJXIiwic3BlY2lhbE9yZGVyIjowfX0sImNvbnZlcnRpYmxlIjp7ImZieF9jb252ZXJ0aWJsZV8xIjp7InZpc2libGUiOnRydWUsImlkIjoxLCJwb3NpdGlvbiI6MSwiZHJpdmV0cmFpbiI6MiwiZnVlbCI6MSwicHJpY2UiOjQ4MjI1LCJjb25zbyI6Ny4wOTk5OTk5OTk5OTk5OTk2NDQ3Mjg2MzIxMTk5NDk5MDcwNjQ0Mzc4NjYyMTA5Mzc1LCJjYXJDYXRlZ29yeSI6ImNvbnZlcnRpYmxlIiwiY2FyTWFrZSI6ImZvcmQiLCJjYXJNb2RlbCI6Ik11c3RhbmcgQ29udmVydGlibGUiLCJzcGVjaWFsT3JkZXIiOjB9LCJmYnhfY29udmVydGlibGVfMiI6eyJ2aXNpYmxlIjp0cnVlLCJpZCI6MiwicG9zaXRpb24iOjIsImRyaXZldHJhaW4iOjIsImZ1ZWwiOjEsInByaWNlIjo0ODIyNSwiY29uc28iOjcuMDk5OTk5OTk5OTk5OTk5NjQ0NzI4NjMyMTE5OTQ5OTA3MDY0NDM3ODY2MjEwOTM3NSwiY2FyQ2F0ZWdvcnkiOiJjb252ZXJ0aWJsZSIsImNhck1ha2UiOiJmb3JkIiwiY2FyTW9kZWwiOiJNdXN0YW5nIENvbnZlcnRpYmxlIiwic3BlY2lhbE9yZGVyIjowfX0sImVsZWN0cmljIjp7ImZieF9lbGVjdHJpY18xIjp7InZpc2libGUiOnRydWUsImlkIjoxLCJwb3NpdGlvbiI6MSwiZHJpdmV0cmFpbiI6MywiZnVlbCI6NCwicHJpY2UiOjQ5NjkwLCJjb25zbyI6MTAwMCwiY2FyQ2F0ZWdvcnkiOiJzdXYiLCJjYXJNYWtlIjoiZm9yZCIsImNhck1vZGVsIjoiTXVzdGFuZyBNYWNoLUUiLCJzcGVjaWFsT3JkZXIiOjB9LCJmYnhfZWxlY3RyaWNfMiI6eyJ2aXNpYmxlIjp0cnVlLCJpZCI6MiwicG9zaXRpb24iOjIsImRyaXZldHJhaW4iOjMsImZ1ZWwiOjQsInByaWNlIjo1NTY5MCwiY29uc28iOjEwMDAsImNhckNhdGVnb3J5Ijoic3V2IiwiY2FyTWFrZSI6ImZvcmQiLCJjYXJNb2RlbCI6Ik11c3RhbmcgTWFjaC1FIiwic3BlY2lhbE9yZGVyIjowfSwiZmJ4X2VsZWN0cmljXzMiOnsidmlzaWJsZSI6dHJ1ZSwiaWQiOjMsInBvc2l0aW9uIjozLCJkcml2ZXRyYWluIjoxLCJmdWVsIjo0LCJwcmljZSI6NjI4OTAsImNvbnNvIjoxMDAwLCJjYXJDYXRlZ29yeSI6InRydWNrIiwiY2FyTWFrZSI6ImZvcmQiLCJjYXJNb2RlbCI6IkYtMTUwIExpZ2h0bmluZyIsInNwZWNpYWxPcmRlciI6MH0sImZieF9lbGVjdHJpY180Ijp7InZpc2libGUiOnRydWUsImlkIjo0LCJwb3NpdGlvbiI6NCwiZHJpdmV0cmFpbiI6MSwiZnVlbCI6NCwicHJpY2UiOjczODkwLCJjb25zbyI6MTAwMCwiY2FyQ2F0ZWdvcnkiOiJ0cnVjayIsImNhck1ha2UiOiJmb3JkIiwiY2FyTW9kZWwiOiJGLTE1MCBMaWdodG5pbmciLCJzcGVjaWFsT3JkZXIiOjB9fX07CgkJCQkJLyotLSovCgkJCQkJdmFyIGJveFBvc2l0aW9ucyA9IHsiZmJ4X3N1dl8xIjoxLCJmYnhfc3V2XzIiOjIsImZieF9oeWJyaWRfMSI6MSwiZmJ4X2h5YnJpZF8yIjoyLCJmYnhfc3V2XzMiOjMsImZieF9jYXJfMSI6MSwiZmJ4X2Nhcl8yIjoyLCJmYnhfc3V2XzQiOjQsImZieF9jb21tZXJjaWFsXzEiOjEsImZieF9waGV2XzEiOjEsImZieF9waGV2XzIiOjIsImZieF90cnVja18xIjoxLCJmYnhfdHJ1Y2tfMiI6MiwiZmJ4X3RydWNrXzMiOjMsImZieF90cnVja180Ijo0LCJmYnhfaHlicmlkXzMiOjMsImZieF9jb21tZXJjaWFsXzIiOjIsImZieF9oeWJyaWRfNCI6NCwiZmJ4X2NvbnZlcnRpYmxlXzEiOjEsImZieF9jb252ZXJ0aWJsZV8yIjoyLCJmYnhfY29tbWVyY2lhbF8zIjozLCJmYnhfZWxlY3RyaWNfMSI6MSwiZmJ4X3N1dl81Ijo1LCJmYnhfY29tbWVyY2lhbF80Ijo0LCJmYnhfY29tbWVyY2lhbF81Ijo1LCJmYnhfc3V2XzYiOjYsImZieF9zdXZfNyI6NywiZmJ4X3N1dl84Ijo4LCJmYnhfdHJ1Y2tfNSI6NSwiZmJ4X3RydWNrXzYiOjYsImZieF9lbGVjdHJpY18yIjoyLCJmYnhfY29tbWVyY2lhbF82Ijo2LCJmYnhfY29tbWVyY2lhbF83Ijo3LCJmYnhfY29tbWVyY2lhbF84Ijo4LCJmYnhfdHJ1Y2tfNyI6NywiZmJ4X2VsZWN0cmljXzMiOjMsImZieF9jb21tZXJjaWFsXzkiOjksImZieF90cnVja184Ijo4LCJmYnhfY29tbWVyY2lhbF8xMCI6MTAsImZieF90cnVja185Ijo5LCJmYnhfdHJ1Y2tfMTAiOjEwLCJmYnhfY29tbWVyY2lhbF8xMSI6MTEsImZieF90cnVja18xMSI6MTEsImZieF9jb21tZXJjaWFsXzEyIjoxMiwiZmJ4X2NvbW1lcmNpYWxfMTMiOjEzLCJmYnhfY29tbWVyY2lhbF8xNCI6MTQsImZieF9jb21tZXJjaWFsXzE1IjoxNSwiZmJ4X2NvbW1lcmNpYWxfMTYiOjE2LCJmYnhfY29tbWVyY2lhbF8xNyI6MTcsImZieF9jb21tZXJjaWFsXzE4IjoxOCwiZmJ4X2NvbW1lcmNpYWxfMTkiOjE5LCJmYnhfZWxlY3RyaWNfNCI6NCwiZmJ4X2NvbW1lcmNpYWxfMjAiOjIwLCJmYnhfc3V2XzkiOjksImZieF9zdXZfMTAiOjEwLCJmYnhfY29tbWVyY2lhbF8yMSI6MjEsImZieF9jb21tZXJjaWFsXzIyIjoyMn07CgkJCQkJLyoqIEZpbHRlciBKUyBpbiBuZXdjYXJzLmpzICoqLwoJCQkJCS8qXV0+Ki8KCQkJCQoKCQkJCXZhciBMZWFkQ29uZmlncyA9ICh0eXBlb2YgTGVhZENvbmZpZ3MgIT0gJ3VuZGVmaW5lZCcpID8gTGVhZENvbmZpZ3MgOiB7fTsKCgkJCQlsZXQgYWN0aXZlTGFuZyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhY3RpdmVzaXRlbGFuZ3VhZ2UnKSA\/IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhY3RpdmVzaXRlbGFuZ3VhZ2UnKS52YWx1ZSA6ICdGUkVOQ0gnOwoKCQkJCUxlYWRDb25maWdzLkRlYWxlckFwcG9pbnRtZW50ID0gewoKCQkJCQl0aXRsZTogKGFjdGl2ZUxhbmcgPT0gJ0VOR0xJU0gnID8gJ1JlcXVlc3QgYW4gYXBwb2ludG1lbnQnIDogJ1ByZW5kcmUgUmVuZGV6LXZvdXMnKSwKCQkJCQljbG9zZU9uU3VibWl0IDogdHJ1ZSwKCQkJCQluYW1lIDogJ0RlYWxlckFwcG9pbnRtZW50JywKCgkJCQkJb25CZWZvcmVPcGVuOiBmdW5jdGlvbihsZWFkQ29uZil7CiAgICAgICAgICAgICAgICAgICAgICAgICQoZG9jdW1lbnQpLnRyaWdnZXIoJ2RlYWxlckFwcG9pbnRtZW50LnN0YXJ0Jyk7CgoJCQkJCQljb25zdCB0aW1lVHh0RWwgPSBsZWFkQ29uZi5sZWFkTm9kZS5xdWVyeVNlbGVjdG9yKCcuc2VsZWN0ZWRUaW1lJyk7CgkJCQkJCWNvbnN0IHRpbWVJbnB1dCA9IGxlYWRDb25mLmxlYWROb2RlLnF1ZXJ5U2VsZWN0b3IoJ1tuYW1lPSJkYXRlIl0nKTsKCQkJCQkJY29uc3QgcGlja2VyID0gbGVhZENvbmYubGVhZE5vZGUucXVlcnlTZWxlY3RvcignLmRhdGVwaWNrZXInKTsKCQkJCQkJY29uc3QgcGhvbmVFbCA9IGxlYWRDb25mLmxlYWROb2RlLnF1ZXJ5U2VsZWN0b3IoJ1tuYW1lPSJwaG9uZW51bSJdJyk7CgkJCQkJCWNvbnN0IGhvdXJzQmxvY2sgPSBsZWFkQ29uZi5sZWFkTm9kZS5xdWVyeVNlbGVjdG9yKCcuaG91cnNMaXN0Jyk7CgkJCQkJCWxldCBkYXlOb2RlcyA9IEFycmF5LmZyb20oaG91cnNCbG9jay5jaGlsZHJlbik7CgkJCQkJCWxldCBkYXRlRm9ybWF0ID0gIGFjdGl2ZUxhbmcgPT0gJ0VOR0xJU0gnID8gJ0YgaiBZLCBIOmknIDogJ2ogRiBZLCBIOmknOwoKCgkJCQkJCWNvbnN0IHNldFNlbGVjdGVkID0gKHNlbGVjdGVkRGF0ZXMsIGRhdGVTdHIsIGluc3RhbmNlKSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgY3VycmVudGx5U2VsZWN0ZWREYXRlID0gc2VsZWN0ZWREYXRlc1swXSB8fCBuZXcgRGF0ZSgpOy8vZG9uJ3QgcGxheSB3aXRoIHRoaXMgb3IgbWlnaHQgYWZmZWN0IGRhdGUvdGltZSBzZWxlY3Rpb24KCQkJCQkJCWxldCBkYXlOdW0gPSBjdXJyZW50bHlTZWxlY3RlZERhdGUuZ2V0RGF5KCk7CgoJCQkJCQkJZGF5TnVtID0gZGF5TnVtID09IDAgPyA3IDogZGF5TnVtOwoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkYXlNaW5UaW1lID0gZGF5Tm9kZXNbZGF5TnVtIC0gMV0uZGF0YXNldC5taW5ob3VyIHx8ICcwOTowMCc7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGF5TWF4VGltZSA9IGRheU5vZGVzW2RheU51bSAtIDFdLmRhdGFzZXQubWF4aG91ciB8fCAnMTc6MDAnOwoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vbWluVGltZSBtYW5hZ2VtZW50CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL2lmIGRhdGUgaXMgdG9kYXksIG1pblRpbWUgbmVlZHMgdG8gYmUgYSBtaW5pbXVtIG9mIDFob3VyIGxhdGVyIGZyb20gY3VycmVudCB0aW1lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihzZWxlY3RlZERhdGVzWzBdKXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbm93ID0gbmV3IERhdGUoKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgYWNjZXB0ZWRFeGNlcHRpb24gPSA1Oy8vbWludXRlcwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKHNlbGVjdGVkRGF0ZXNbMF0udG9EYXRlU3RyaW5nKCkgPT0gbm93LnRvRGF0ZVN0cmluZygpKXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG1pbkhvdXIgPSBub3cuZ2V0SG91cnMoKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG1pbk1pbnV0ZSA9IG5vdy5nZXRNaW51dGVzKCkgKyA2MDsvL2FkZCAxIGhvdXIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYobWluTWludXRlID49IDYwKXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pbkhvdXIgKz0gTWF0aC5mbG9vcihtaW5NaW51dGUgLyA2MCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaW5NaW51dGUgPSBtaW5NaW51dGUgJSA2MDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKG1pbk1pbnV0ZSAlIDE1KXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL21ha2UgaXQgc28gdGhhdCBtaW51dGVzIGFyZSBlaXRoZXIgcm91bmRlZCB0byBuZXh0IDE1bWluIGluY3JlbWVudCBvciB0byB0aGUgcHJldmlvdXMgb25lIGlmIHdpdGhpbiBhY2NlcHRlZEV4Y2VwdGlvbgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKG1pbk1pbnV0ZSAlIDE1IDw9IGFjY2VwdGVkRXhjZXB0aW9uKXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWluTWludXRlID0gbWluTWludXRlIC0gKG1pbk1pbnV0ZSAlIDE1KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9ZWxzZSBpZigobWluTWludXRlICUgMTUgPiBhY2NlcHRlZEV4Y2VwdGlvbikpewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaW5NaW51dGUgPSBtaW5NaW51dGUgKyAoMTUgLSAobWluTWludXRlICUgMTUpKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9ZWxzZXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL2RvIG5vdGhpbmcsIGFscmVhZHkgYXQgaW5jcmVtZW50CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYobWluSG91ciA+PSAyNCl7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL25vIG1vcmUgYXZhaWxhYmxlIHRpbWUgdG9kYXksIHNldCB0byBuZXh0IGRheSBhdCAwOTowMAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5zdGFuY2Uuc2V0RGF0ZShuZXcgRGF0ZSgpLmZwX2luY3IoMSksIHRydWUpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gaW5zdGFuY2Uuc2V0KCdtaW5UaW1lJywgZGF5TWluVGltZSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1lbHNlewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF5TWluVGltZSA9IFN0cmluZyhtaW5Ib3VyKS5wYWRTdGFydCgyLCcwJykgKyAnOicgKyBTdHJpbmcobWluTWludXRlKS5wYWRTdGFydCgyLCcwJyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9tYXhUaW1lIG1hbmFnZW1lbnQKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGxhc3QgYXBwb2ludG1lbnQgdGltZSBtYW5hZ2VtZW50ICgxNW1pbiBiZWZvcmUgY2xvc2luZyB0aW1lKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IFtjbG9zaW5nSG91cnMsIGNsb3NpbmdNaW51dGVzXSA9IGRheU1heFRpbWUuc3BsaXQoJzonKS5tYXAoTnVtYmVyKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkYXlEYXRlID0gbmV3IERhdGUoKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRheURhdGUuc2V0SG91cnMoY2xvc2luZ0hvdXJzLCBjbG9zaW5nTWludXRlcywgMCwgMCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXlEYXRlLnNldE1pbnV0ZXMoZGF5RGF0ZS5nZXRNaW51dGVzKCkgLSAxNSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL2Zvcm1hdCB0aGUgbmV3IHRpbWUgYmFjayBpbnRvICdISDptbScgZm9ybWF0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgYWN0dWFsQ2xvc2luZ0hvdXJzID0gZGF5RGF0ZS5nZXRIb3VycygpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwgJzAnKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBhY3R1YWxDbG9zaW5nTWludXRlcyA9IGRheURhdGUuZ2V0TWludXRlcygpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwgJzAnKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRheU1heFRpbWUgPSBhY3R1YWxDbG9zaW5nSG91cnMgKyAnOicgKyBhY3R1YWxDbG9zaW5nTWludXRlczsKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL3NldCBzdGFydC9lbmQgdGltZSBmb3IgdGhhdCBkYXkKCQkJCQkJCWluc3RhbmNlLnNldCgnbWluVGltZScsIGRheU1pblRpbWUpOwoJCQkJCQkJaW5zdGFuY2Uuc2V0KCdtYXhUaW1lJywgZGF5TWF4VGltZSk7CgoJCQkJCQkJLy9TZXQgY3VycmVudCBkYXRlIGluaXRpYWxseQoJCQkJCQkJdGltZVR4dEVsLnRleHRDb250ZW50ID0gIXNlbGVjdGVkRGF0ZXMubGVuZ3RoCgkJCQkJCQkJCQkJCSAgPyBpbnN0YW5jZS5mb3JtYXREYXRlKG5ldyBEYXRlKCkuZnBfaW5jcigxKSwgKGFjdGl2ZUxhbmcgPT0gJ0VOR0xJU0gnID8gJ0YgaiBZLCAxMjowMCcgOiAnaiBGIFksIDEyOjAwJykpCgkJCQkJCQkJCQkJCSAgOiBkYXRlU3RyOwoKCQkJCQkJCS8vZ2V0IHRoZSBkYXRlIGluIGVuZ2xpc2ggYW5kIGZyZW5jaCBmb3IgdGhlIGxvY2FsIHN0b3JhZ2UKCQkJCQkJCXRpbWVUeHRFbC5kYXRhc2V0LmVuID0gaW5zdGFuY2UuZm9ybWF0RGF0ZShuZXcgRGF0ZSgpLmZwX2luY3IoMSksJ0YgaiBZLCAxMjowMCcsIGZsYXRwaWNrci5sMTBucy5lbik7CgkJCQkJCQl0aW1lVHh0RWwuZGF0YXNldC5mciA9IGluc3RhbmNlLmZvcm1hdERhdGUobmV3IERhdGUoKS5mcF9pbmNyKDEpLCdqIEYgWSwgMTI6MDAnLCBmbGF0cGlja3IubDEwbnMuZnIpOwoKCQkJCQkJCXRpbWVJbnB1dC52YWx1ZSA9IHRpbWVUeHRFbC50ZXh0Q29udGVudDsKCgkJCQkJCQlpbnN0YW5jZS5ob3VyRWxlbWVudC5ibHVyKCk7CgkJCQkJCX07CgoJCQkJCQlsZXQgY2xvc2VkRGF5cyA9IFtdOwoJCQkJCQlkYXlOb2Rlcy5mb3JFYWNoKChlLGkpID0+IHsKCQkJCQkJCWlmKChlLmRhdGFzZXQuY2xvc2VkIHx8ICcwJykgPT0gJzEnKSBjbG9zZWREYXlzLnB1c2goaSkKCQkJCQkJfSk7CgoJCQkJCQkvL0FkZCBmcmVuY2ggbG9jYWxpemF0aW9uIHdoZW4gbmVlZGVkCgkJCQkJCWlmKGFjdGl2ZUxhbmcgPT0gJ0ZSRU5DSCcpewoJCQkJCQkJZmxhdHBpY2tyLmxvY2FsaXplKGZsYXRwaWNrci5sMTBucy5mcik7CgkJCQkJCX0KCgoKCQkJCQkJY29uc3QgZnAgPSBmbGF0cGlja3IocGlja2VyLCB7CgkJCQkJCQlpbmxpbmU6dHJ1ZSwKCQkJCQkJCWVuYWJsZVRpbWU6IHRydWUsCgkJCQkJCQltaW5EYXRlOiAndG9kYXknLC8vYmFjayBmcm9tIG5ldyBEYXRlKCkuZnBfaW5jcigxKSBidXQgYWxzbyBhZGRlZCB0aW1lIHZhbGlkYXRpb24gZm9yIG1pblRpbWUKCQkJCQkJCW1pblRpbWU6ICIwOTowMCIsCgkJCQkJCQltYXhUaW1lOiAiMTc6MDAiLAoJCQkJCQkJZGF0ZUZvcm1hdDogZGF0ZUZvcm1hdCwvLyJELCBqIEYgWSwgSDppIiwKCQkJCQkJCW1pbnV0ZUluY3JlbWVudDoxNSwKCQkJCQkJCXRpbWVfMjRocjp0cnVlLAoJCQkJCQkJb25DaGFuZ2U6IHNldFNlbGVjdGVkLAoJCQkJCQkJb25SZWFkeTogc2V0U2VsZWN0ZWQsCgkJCQkJCQlkaXNhYmxlOiBbCgkJCQkJCQkJZnVuY3Rpb24oZGF0ZSl7CgkJCQkJCQkJCWxldCBkYXlOdW0gPSBkYXRlLmdldERheSgpID09IDAgPyA3IDogZGF0ZS5nZXREYXkoKTsKCQkJCQkJCQkJcmV0dXJuIGNsb3NlZERheXMuaW5jbHVkZXMoZGF5TnVtIC0gMSk7CgkJCQkJCQkJfQoJCQkJCQkJXSwKCQkJCQkJCWxvY2FsZTogewoJCQkJCQkJCWZpcnN0RGF5T2ZXZWVrOiAxIC8vIHN0YXJ0IHdlZWsgb24gTW9uZGF5CgkJCQkJCQl9CgoJCQkJCQl9KTsKCgkJCQkJfSwKCgkJCQkJb25CZWZvcmVTdWJtaXQgOiAobGVhZENvbmYpID0+IHsKCQkJCQkJY29uc3QgdGltZVR4dEVsID0gbGVhZENvbmYubGVhZE5vZGUucXVlcnlTZWxlY3RvcignLnNlbGVjdGVkVGltZScpOwoJCQkJCQllbWFpbEhhbmRsZXIuZGVhbGVyQXBwb2ludG1lbnREYXRhID0gewoJCQkJCQkJZGF0ZSA6IHRpbWVUeHRFbC50ZXh0Q29udGVudAoJCQkJCQl9OwoJCQkJCX0sCgoJCQkJCW9uQWZ0ZXJTdWJtaXQgOiAobGVhZENvbmYpID0+IHsKCgkJCQkJCWNvbnN0IHRpbWVUeHRFbCA9IGxlYWRDb25mLmxlYWROb2RlLnF1ZXJ5U2VsZWN0b3IoJy5zZWxlY3RlZFRpbWUnKTsKCgkJCQkJCWNvbnN0IGNiID0gdHJhY2tTdGVwID0+IHsKCQkJCQkJCXRyYWNrU3RlcC5kYXRhc2V0LmNvbXBsX3R4dF9mciA9IHRyYWNrU3RlcC5kYXRhc2V0LmNvbXBsX3R4dF9mci5yZXBsYWNlKCd7JEFQUE9JTlRfREFURX0nLCB0aW1lVHh0RWwuZGF0YXNldC5mcik7CgkJCQkJCQl0cmFja1N0ZXAuZGF0YXNldC5jb21wbF90eHRfZW4gPSB0cmFja1N0ZXAuZGF0YXNldC5jb21wbF90eHRfZW4ucmVwbGFjZSgneyRBUFBPSU5UX0RBVEV9JywgdGltZVR4dEVsLmRhdGFzZXQuZW4pOwoJCQkJCQl9OwoKCQkJCQkJbGV0IGNvbXBsZXRlRXZlbnQgPSBuZXcgQ3VzdG9tRXZlbnQoJ3RyYWNrc3RlcC5jb21wbGV0ZScsewoJCQkJCQkJZGV0YWlsOnsKCQkJCQkJCQlzdGVwSWQgOiAnRGVhbGVyQXBwb2ludG1lbnQnLAoJCQkJCQkJCW9uQ29tcGxldGUgOiBjYgoJCQkJCQkJfQoJCQkJCQl9KTsKCgkJCQkJCWRvY3VtZW50LmRpc3BhdGNoRXZlbnQoY29tcGxldGVFdmVudCk7CgogICAgICAgICAgICAgICAgICAgICAgICAkKGRvY3VtZW50KS50cmlnZ2VyKCdkZWFsZXJBcHBvaW50bWVudC5lbmQnKTsKCQkJCQl9CgoJCQkJfQoKCQkJCi8qKiAvbS9qcy9za2VsZXRvbi5iZWZvcmUuanMgKiovCnZhciBfX19kMmNfc2tlbGV0b25iZWZvcmVqc19jX29uPSIyMDI1LTA1LTIzIDE3OjEzOjAzIjsndXNlIHN0cmljdCc7dmFyIF9fX2QyY19za2VsZXRvbmJlZm9yZWpzX2Nfb249IjIwMjQtMDEtMzEgMTQ6Mzc6NTciOyJ1c2Ugc3RyaWN0IjtfX19kMmNfc2tlbGV0b25iZWZvcmVqc19jX29uPSIyMDIzLTA2LTAxIDEyOjMwOjE5IjsidXNlIHN0cmljdCI7bGV0ICRqc2NvbXAkbnVsbGlzaCR0bXAwO3dpbmRvdy5nU3BlZWRDb25uPXBhcnNlSW50KE1hdGguZmxvb3IoKERhdGUubm93KCktKG51bGwhPSgkanNjb21wJG51bGxpc2gkdG1wMD13aW5kb3cuZ1Rlc3RTcGVlZENvbm4pPyRqc2NvbXAkbnVsbGlzaCR0bXAwOjApKS8xRTMpKTtsZXQgJGpzY29tcCRudWxsaXNoJHRtcDE7Y29uc29sZS5sb2coIkdTUEVFRC1CRUZPUkU6IisoRGF0ZS5ub3coKS0obnVsbCE9KCRqc2NvbXAkbnVsbGlzaCR0bXAxPXdpbmRvdy5nVGVzdFNwZWVkQ29ubik\/JGpzY29tcCRudWxsaXNoJHRtcDE6MCkpLzFFMyk7Ci8qKiAvbS9qcy9qcXVlcnkuanMgKiovCnZhciBfX19kMmNfanF1ZXJ5anNfY19vbj0iMjAyNS0wNS0yMyAxNzowNTo0OSI7J3VzZSBzdHJpY3QnO3ZhciBfX19kMmNfanF1ZXJ5anNfY19vbj0iMjAyNC0wMy0yNSAxMjozMTozMyI7InVzZSBzdHJpY3QiOwohZnVuY3Rpb24obixkYSl7Im9iamVjdCI9PXR5cGVvZiBtb2R1bGUmJiJvYmplY3QiPT10eXBlb2YgbW9kdWxlLmV4cG9ydHM\/bW9kdWxlLmV4cG9ydHM9bi5kb2N1bWVudD9kYShuLCEwKTpmdW5jdGlvbih3YSl7aWYoIXdhLmRvY3VtZW50KXRocm93IEVycm9yKCJqUXVlcnkgcmVxdWlyZXMgYSB3aW5kb3cgd2l0aCBhIGRvY3VtZW50Iik7cmV0dXJuIGRhKHdhKX06ZGEobil9KCJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93P3dpbmRvdzp0aGlzLGZ1bmN0aW9uKG4sZGEpe2Z1bmN0aW9uIHdhKGEsYixjKXt2YXIgZSxmLGc9KGM9Y3x8TCkuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7aWYoZy50ZXh0PWEsYilmb3IoZSBpbiBMYykoZj1iW2VdfHxiLmdldEF0dHJpYnV0ZSYmYi5nZXRBdHRyaWJ1dGUoZSkpJiZnLnNldEF0dHJpYnV0ZShlLGYpO2MuaGVhZC5hcHBlbmRDaGlsZChnKS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGcpfWZ1bmN0aW9uIFUoYSl7cmV0dXJuIG51bGw9PWE\/YSsKIiI6Im9iamVjdCI9PXR5cGVvZiBhfHwiZnVuY3Rpb24iPT10eXBlb2YgYT9NYltrYy5jYWxsKGEpXXx8Im9iamVjdCI6dHlwZW9mIGF9ZnVuY3Rpb24gZWIoYSl7dmFyIGI9ISFhJiYibGVuZ3RoImluIGEmJmEubGVuZ3RoLGM9VShhKTtyZXR1cm4hTShhKSYmIWtiKGEpJiYoImFycmF5Ij09PWN8fDA9PT1ifHwibnVtYmVyIj09dHlwZW9mIGImJjA8YiYmYi0xIGluIGEpfWZ1bmN0aW9uIFgoYSxiKXtyZXR1cm4gYS5ub2RlTmFtZSYmYS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpPT09Yi50b0xvd2VyQ2FzZSgpfWZ1bmN0aW9uIGJhKGEsYil7cmV0dXJuIGI\/Ilx4MDAiPT09YT8iXHVmZmZkIjphLnNsaWNlKDAsLTEpKyJcXCIrYS5jaGFyQ29kZUF0KGEubGVuZ3RoLTEpLnRvU3RyaW5nKDE2KSsiICI6IlxcIithfWZ1bmN0aW9uIGphKGEsYixjKXtyZXR1cm4gTShiKT9kLmdyZXAoYSxmdW5jdGlvbihlLGYpe3JldHVybiEhYi5jYWxsKGUsZixlKSE9PWN9KTpiLm5vZGVUeXBlP2QuZ3JlcChhLApmdW5jdGlvbihlKXtyZXR1cm4gZT09PWIhPT1jfSk6InN0cmluZyIhPXR5cGVvZiBiP2QuZ3JlcChhLGZ1bmN0aW9uKGUpe3JldHVybi0xPE5hLmNhbGwoYixlKSE9PWN9KTpkLmZpbHRlcihiLGEsYyl9ZnVuY3Rpb24gbGIoYSxiKXtmb3IoOyhhPWFbYl0pJiYxIT09YS5ub2RlVHlwZTspO3JldHVybiBhfWZ1bmN0aW9uIFlhKGEpe3JldHVybiBhfWZ1bmN0aW9uIFphKGEpe3Rocm93IGE7fWZ1bmN0aW9uIG1iKGEsYixjLGUpe3ZhciBmO3RyeXthJiZNKGY9YS5wcm9taXNlKT9mLmNhbGwoYSkuZG9uZShiKS5mYWlsKGMpOmEmJk0oZj1hLnRoZW4pP2YuY2FsbChhLGIsYyk6Yi5hcHBseSh2b2lkIDAsW2FdLnNsaWNlKGUpKX1jYXRjaChnKXtjLmFwcGx5KHZvaWQgMCxbZ10pfX1mdW5jdGlvbiBPYSgpe0wucmVtb3ZlRXZlbnRMaXN0ZW5lcigiRE9NQ29udGVudExvYWRlZCIsT2EpO24ucmVtb3ZlRXZlbnRMaXN0ZW5lcigibG9hZCIsT2EpO2QucmVhZHkoKX1mdW5jdGlvbiBOYihhLGIpe3JldHVybiBiLnRvVXBwZXJDYXNlKCl9CmZ1bmN0aW9uIEJhKGEpe3JldHVybiBhLnJlcGxhY2UoTWMsIm1zLSIpLnJlcGxhY2UoTmMsTmIpfWZ1bmN0aW9uIEphKCl7dGhpcy5leHBhbmRvPWQuZXhwYW5kbytKYS51aWQrK31mdW5jdGlvbiBPYihhLGIsYyl7dmFyIGUsZjtpZih2b2lkIDA9PT1jJiYxPT09YS5ub2RlVHlwZSlpZihlPSJkYXRhLSIrYi5yZXBsYWNlKE9jLCItJCYiKS50b0xvd2VyQ2FzZSgpLCJzdHJpbmciPT10eXBlb2YoYz1hLmdldEF0dHJpYnV0ZShlKSkpe3RyeXtjPSJ0cnVlIj09PShmPWMpfHwiZmFsc2UiIT09ZiYmKCJudWxsIj09PWY\/bnVsbDpmPT09K2YrIiI\/K2Y6UGMudGVzdChmKT9KU09OLnBhcnNlKGYpOmYpfWNhdGNoKGcpe314YS5zZXQoYSxiLGMpfWVsc2UgYz12b2lkIDA7cmV0dXJuIGN9ZnVuY3Rpb24gUGIoYSxiLGMsZSl7dmFyIGYsZyxoPTIwLG09ZT9mdW5jdGlvbigpe3JldHVybiBlLmN1cigpfTpmdW5jdGlvbigpe3JldHVybiBkLmNzcyhhLGIsIiIpfSxsPW0oKSx0PWMmJmNbM118fAooZC5jc3NOdW1iZXJbYl0\/IiI6InB4Iiksdz1hLm5vZGVUeXBlJiYoZC5jc3NOdW1iZXJbYl18fCJweCIhPT10JiYrbCkmJnliLmV4ZWMoZC5jc3MoYSxiKSk7aWYodyYmd1szXSE9PXQpe2wvPTI7dD10fHx3WzNdO2Zvcih3PStsfHwxO2gtLTspZC5zdHlsZShhLGIsdyt0KSwwPj0oMS1nKSooMS0oZz1tKCkvbHx8LjUpKSYmKGg9MCksdy89Zzt3Kj0yO2Quc3R5bGUoYSxiLHcrdCk7Yz1jfHxbXX1yZXR1cm4gYyYmKHc9K3d8fCtsfHwwLGY9Y1sxXT93KyhjWzFdKzEpKmNbMl06K2NbMl0sZSYmKGUudW5pdD10LGUuc3RhcnQ9dyxlLmVuZD1mKSksZn1mdW5jdGlvbiAkYShhLGIpe2Zvcih2YXIgYyxlLGYsZyxoLG0sbCx0PVtdLHc9MCxyPWEubGVuZ3RoO3c8cjt3KyspKGU9YVt3XSkuc3R5bGUmJihjPWUuc3R5bGUuZGlzcGxheSxiPygibm9uZSI9PT1jJiYodFt3XT1HLmdldChlLCJkaXNwbGF5Iil8fG51bGwsdFt3XXx8KGUuc3R5bGUuZGlzcGxheT0iIikpLCIiPT09ZS5zdHlsZS5kaXNwbGF5JiYKUWIoZSkmJih0W3ddPShsPWg9Zz12b2lkIDAsaD0oZj1lKS5vd25lckRvY3VtZW50LG09Zi5ub2RlTmFtZSwobD1sY1ttXSl8fChnPWguYm9keS5hcHBlbmRDaGlsZChoLmNyZWF0ZUVsZW1lbnQobSkpLGw9ZC5jc3MoZywiZGlzcGxheSIpLGcucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChnKSwibm9uZSI9PT1sJiYobD0iYmxvY2siKSxsY1ttXT1sKSkpKToibm9uZSIhPT1jJiYodFt3XT0ibm9uZSIsRy5zZXQoZSwiZGlzcGxheSIsYykpKTtmb3Iodz0wO3c8cjt3KyspbnVsbCE9dFt3XSYmKGFbd10uc3R5bGUuZGlzcGxheT10W3ddKTtyZXR1cm4gYX1mdW5jdGlvbiBzYShhLGIpe3ZhciBjO3JldHVybiBjPSJ1bmRlZmluZWQiIT10eXBlb2YgYS5nZXRFbGVtZW50c0J5VGFnTmFtZT9hLmdldEVsZW1lbnRzQnlUYWdOYW1lKGJ8fCIqIik6InVuZGVmaW5lZCIhPXR5cGVvZiBhLnF1ZXJ5U2VsZWN0b3JBbGw\/YS5xdWVyeVNlbGVjdG9yQWxsKGJ8fCIqIik6W10sdm9pZCAwPT09Ynx8YiYmClgoYSxiKT9kLm1lcmdlKFthXSxjKTpjfWZ1bmN0aW9uIG5iKGEsYil7Zm9yKHZhciBjPTAsZT1hLmxlbmd0aDtjPGU7YysrKUcuc2V0KGFbY10sImdsb2JhbEV2YWwiLCFifHxHLmdldChiW2NdLCJnbG9iYWxFdmFsIikpfWZ1bmN0aW9uIFJiKGEsYixjLGUsZil7Zm9yKHZhciBnLGgsbSxsLHQ9Yi5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCksdz1bXSxyPTAsej1hLmxlbmd0aDtyPHo7cisrKWlmKChnPWFbcl0pfHwwPT09ZylpZigib2JqZWN0Ij09PVUoZykpZC5tZXJnZSh3LGcubm9kZVR5cGU\/W2ddOmcpO2Vsc2UgaWYoUWMudGVzdChnKSl7aD1ofHx0LmFwcGVuZENoaWxkKGIuY3JlYXRlRWxlbWVudCgiZGl2IikpO209KG1jLmV4ZWMoZyl8fFsiIiwiIl0pWzFdLnRvTG93ZXJDYXNlKCk7bT1DYVttXXx8Q2EuX2RlZmF1bHQ7aC5pbm5lckhUTUw9bVsxXStkLmh0bWxQcmVmaWx0ZXIoZykrbVsyXTtmb3IobT1tWzBdO20tLTspaD1oLmxhc3RDaGlsZDtkLm1lcmdlKHcsaC5jaGlsZE5vZGVzKTsKKGg9dC5maXJzdENoaWxkKS50ZXh0Q29udGVudD0iIn1lbHNlIHcucHVzaChiLmNyZWF0ZVRleHROb2RlKGcpKTt0LnRleHRDb250ZW50PSIiO2ZvcihyPTA7Zz13W3IrK107KWlmKGUmJi0xPGQuaW5BcnJheShnLGUpKWYmJmYucHVzaChnKTtlbHNlIGlmKGw9b2IoZyksaD1zYSh0LmFwcGVuZENoaWxkKGcpLCJzY3JpcHQiKSxsJiZuYihoKSxjKWZvcihtPTA7Zz1oW20rK107KW5jLnRlc3QoZy50eXBlfHwiIikmJmMucHVzaChnKTtyZXR1cm4gdH1mdW5jdGlvbiBhYigpe3JldHVybiEwfWZ1bmN0aW9uIGJiKCl7cmV0dXJuITF9ZnVuY3Rpb24gZmIoYSxiLGMsZSxmLGcpe3ZhciBoLG07aWYoIm9iamVjdCI9PXR5cGVvZiBiKXtmb3IobSBpbiJzdHJpbmciIT10eXBlb2YgYyYmKGU9ZXx8YyxjPXZvaWQgMCksYilmYihhLG0sYyxlLGJbbV0sZyk7cmV0dXJuIGF9aWYobnVsbD09ZSYmbnVsbD09Zj8oZj1jLGU9Yz12b2lkIDApOm51bGw9PWYmJigic3RyaW5nIj09dHlwZW9mIGM\/KGY9CmUsZT12b2lkIDApOihmPWUsZT1jLGM9dm9pZCAwKSksITE9PT1mKWY9YmI7ZWxzZSBpZighZilyZXR1cm4gYTtyZXR1cm4gMT09PWcmJihoPWYsKGY9ZnVuY3Rpb24obCl7cmV0dXJuIGQoKS5vZmYobCksaC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9KS5ndWlkPWguZ3VpZHx8KGguZ3VpZD1kLmd1aWQrKykpLGEuZWFjaChmdW5jdGlvbigpe2QuZXZlbnQuYWRkKHRoaXMsYixmLGUsYyl9KX1mdW5jdGlvbiBwYihhLGIsYyl7Yz8oRy5zZXQoYSxiLCExKSxkLmV2ZW50LmFkZChhLGIse25hbWVzcGFjZTohMSxoYW5kbGVyOmZ1bmN0aW9uKGUpe3ZhciBmLGc9Ry5nZXQodGhpcyxiKTtpZigxJmUuaXNUcmlnZ2VyJiZ0aGlzW2JdKWlmKGcpKGQuZXZlbnQuc3BlY2lhbFtiXXx8e30pLmRlbGVnYXRlVHlwZSYmZS5zdG9wUHJvcGFnYXRpb24oKTtlbHNle2lmKGc9eWEuY2FsbChhcmd1bWVudHMpLEcuc2V0KHRoaXMsYixnKSx0aGlzW2JdKCksZj1HLmdldCh0aGlzLGIpLEcuc2V0KHRoaXMsYiwKITEpLGchPT1mKXJldHVybiBlLnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpLGUucHJldmVudERlZmF1bHQoKSxmfWVsc2UgZyYmKEcuc2V0KHRoaXMsYixkLmV2ZW50LnRyaWdnZXIoZ1swXSxnLnNsaWNlKDEpLHRoaXMpKSxlLnN0b3BQcm9wYWdhdGlvbigpLGUuaXNJbW1lZGlhdGVQcm9wYWdhdGlvblN0b3BwZWQ9YWIpfX0pKTp2b2lkIDA9PT1HLmdldChhLGIpJiZkLmV2ZW50LmFkZChhLGIsYWIpfWZ1bmN0aW9uIFNiKGEsYil7cmV0dXJuIFgoYSwidGFibGUiKSYmWCgxMSE9PWIubm9kZVR5cGU\/YjpiLmZpcnN0Q2hpbGQsInRyIikmJmQoYSkuY2hpbGRyZW4oInRib2R5IilbMF18fGF9ZnVuY3Rpb24gcWIoYSl7cmV0dXJuIGEudHlwZT0obnVsbCE9PWEuZ2V0QXR0cmlidXRlKCJ0eXBlIikpKyIvIithLnR5cGUsYX1mdW5jdGlvbiAkYihhKXtyZXR1cm4idHJ1ZS8iPT09KGEudHlwZXx8IiIpLnNsaWNlKDAsNSk\/YS50eXBlPWEudHlwZS5zbGljZSg1KTphLnJlbW92ZUF0dHJpYnV0ZSgidHlwZSIpLAphfWZ1bmN0aW9uIGdiKGEsYil7dmFyIGMsZSxmLGcsaDtpZigxPT09Yi5ub2RlVHlwZSl7aWYoRy5oYXNEYXRhKGEpJiYoaD1HLmdldChhKS5ldmVudHMpKWZvcihlIGluIEcucmVtb3ZlKGIsImhhbmRsZSBldmVudHMiKSxoKXt2YXIgbT0wO2ZvcihjPWhbZV0ubGVuZ3RoO208YzttKyspZC5ldmVudC5hZGQoYixlLGhbZV1bbV0pfXhhLmhhc0RhdGEoYSkmJihmPXhhLmFjY2VzcyhhKSxnPWQuZXh0ZW5kKHt9LGYpLHhhLnNldChiLGcpKX19ZnVuY3Rpb24gY2IoYSxiLGMsZSl7Yj1vYyhiKTt2YXIgZixnLGgsbT0wLGw9YS5sZW5ndGgsdD1sLTEsdz1iWzBdLHI9TSh3KTtpZihyfHwxPGwmJiJzdHJpbmciPT10eXBlb2YgdyYmIU4uY2hlY2tDbG9uZSYmUmMudGVzdCh3KSlyZXR1cm4gYS5lYWNoKGZ1bmN0aW9uKEQpe3ZhciBGPWEuZXEoRCk7ciYmKGJbMF09dy5jYWxsKHRoaXMsRCxGLmh0bWwoKSkpO2NiKEYsYixjLGUpfSk7aWYobCYmKGc9KGY9UmIoYixhWzBdLm93bmVyRG9jdW1lbnQsCiExLGEsZSkpLmZpcnN0Q2hpbGQsMT09PWYuY2hpbGROb2Rlcy5sZW5ndGgmJihmPWcpLGd8fGUpKXtmb3IoaD0oZz1kLm1hcChzYShmLCJzY3JpcHQiKSxxYikpLmxlbmd0aDttPGw7bSsrKXt2YXIgej1mO20hPT10JiYoej1kLmNsb25lKHosITAsITApLGgmJmQubWVyZ2UoZyxzYSh6LCJzY3JpcHQiKSkpO2MuY2FsbChhW21dLHosbSl9aWYoaClmb3IoZj1nW2cubGVuZ3RoLTFdLm93bmVyRG9jdW1lbnQsZC5tYXAoZywkYiksbT0wO208aDttKyspej1nW21dLG5jLnRlc3Qoei50eXBlfHwiIikmJiFHLmFjY2Vzcyh6LCJnbG9iYWxFdmFsIikmJmQuY29udGFpbnMoZix6KSYmKHouc3JjJiYibW9kdWxlIiE9PSh6LnR5cGV8fCIiKS50b0xvd2VyQ2FzZSgpP2QuX2V2YWxVcmwmJiF6Lm5vTW9kdWxlJiZkLl9ldmFsVXJsKHouc3JjLHtub25jZTp6Lm5vbmNlfHx6LmdldEF0dHJpYnV0ZSgibm9uY2UiKX0sZik6d2Eoei50ZXh0Q29udGVudC5yZXBsYWNlKFNjLCIiKSx6LGYpKX1yZXR1cm4gYX0KZnVuY3Rpb24gVGIoYSxiLGMpe2Zvcih2YXIgZT1iP2QuZmlsdGVyKGIsYSk6YSxmPTA7bnVsbCE9KGI9ZVtmXSk7ZisrKWN8fDEhPT1iLm5vZGVUeXBlfHxkLmNsZWFuRGF0YShzYShiKSksYi5wYXJlbnROb2RlJiYoYyYmb2IoYikmJm5iKHNhKGIsInNjcmlwdCIpKSxiLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoYikpO3JldHVybiBhfWZ1bmN0aW9uIEthKGEsYixjKXt2YXIgZSxmLGcsaCxtPWFjLnRlc3QoYiksbD1hLnN0eWxlO3JldHVybihjPWN8fFViKGEpKSYmKGg9Yy5nZXRQcm9wZXJ0eVZhbHVlKGIpfHxjW2JdLG0mJmgmJihoPWgucmVwbGFjZSh6YiwiJDEiKXx8dm9pZCAwKSwiIiE9PWh8fG9iKGEpfHwoaD1kLnN0eWxlKGEsYikpLCFOLnBpeGVsQm94U3R5bGVzKCkmJmJjLnRlc3QoaCkmJlRjLnRlc3QoYikmJihlPWwud2lkdGgsZj1sLm1pbldpZHRoLGc9bC5tYXhXaWR0aCxsLm1pbldpZHRoPWwubWF4V2lkdGg9bC53aWR0aD1oLGg9Yy53aWR0aCxsLndpZHRoPWUsbC5taW5XaWR0aD0KZixsLm1heFdpZHRoPWcpKSx2b2lkIDAhPT1oP2grIiI6aH1mdW5jdGlvbiBWYihhLGIpe3JldHVybntnZXQ6ZnVuY3Rpb24oKXtpZighYSgpKXJldHVybih0aGlzLmdldD1iKS5hcHBseSh0aGlzLGFyZ3VtZW50cyk7ZGVsZXRlIHRoaXMuZ2V0fX19ZnVuY3Rpb24gQWIoYSl7dmFyIGI7aWYoIShiPWQuY3NzUHJvcHNbYV18fHBjW2FdKSl7aWYoIShhIGluIHFjKSl7YTp7Yj1hO2Zvcih2YXIgYz1iWzBdLnRvVXBwZXJDYXNlKCkrYi5zbGljZSgxKSxlPXJjLmxlbmd0aDtlLS07KWlmKChiPXJjW2VdK2MpaW4gcWMpYnJlYWsgYTtiPXZvaWQgMH1hPXBjW2FdPWJ8fGF9Yj1hfXJldHVybiBifWZ1bmN0aW9uIFdiKGEsYixjKXtyZXR1cm4oYT15Yi5leGVjKGIpKT9NYXRoLm1heCgwLGFbMl0tKGN8fDApKSsoYVszXXx8InB4Iik6Yn1mdW5jdGlvbiByYihhLGIsYyxlLGYsZyl7dmFyIGg9IndpZHRoIj09PWI\/MTowLG09MCxsPTAsdD0wO2lmKGM9PT0oZT8iYm9yZGVyIjoiY29udGVudCIpKXJldHVybiAwOwpmb3IoOzQ+aDtoKz0yKSJtYXJnaW4iPT09YyYmKHQrPWQuY3NzKGEsYytQYVtoXSwhMCxmKSksZT8oImNvbnRlbnQiPT09YyYmKGwtPWQuY3NzKGEsInBhZGRpbmciK1BhW2hdLCEwLGYpKSwibWFyZ2luIiE9PWMmJihsLT1kLmNzcyhhLCJib3JkZXIiK1BhW2hdKyJXaWR0aCIsITAsZikpKToobCs9ZC5jc3MoYSwicGFkZGluZyIrUGFbaF0sITAsZiksInBhZGRpbmciIT09Yz9sKz1kLmNzcyhhLCJib3JkZXIiK1BhW2hdKyJXaWR0aCIsITAsZik6bSs9ZC5jc3MoYSwiYm9yZGVyIitQYVtoXSsiV2lkdGgiLCEwLGYpKTtyZXR1cm4hZSYmMDw9ZyYmKGwrPU1hdGgubWF4KDAsTWF0aC5jZWlsKGFbIm9mZnNldCIrYlswXS50b1VwcGVyQ2FzZSgpK2Iuc2xpY2UoMSldLWctbC1tLS41KSl8fDApLGwrdH1mdW5jdGlvbiBCYihhLGIsYyl7dmFyIGU9VWIoYSksZj0oIU4uYm94U2l6aW5nUmVsaWFibGUoKXx8YykmJiJib3JkZXItYm94Ij09PWQuY3NzKGEsImJveFNpemluZyIsITEsZSksZz0KZixoPUthKGEsYixlKSxtPSJvZmZzZXQiK2JbMF0udG9VcHBlckNhc2UoKStiLnNsaWNlKDEpO2lmKGJjLnRlc3QoaCkpe2lmKCFjKXJldHVybiBoO2g9ImF1dG8ifXJldHVybighTi5ib3hTaXppbmdSZWxpYWJsZSgpJiZmfHwhTi5yZWxpYWJsZVRyRGltZW5zaW9ucygpJiZYKGEsInRyIil8fCJhdXRvIj09PWh8fCFwYXJzZUZsb2F0KGgpJiYiaW5saW5lIj09PWQuY3NzKGEsImRpc3BsYXkiLCExLGUpKSYmYS5nZXRDbGllbnRSZWN0cygpLmxlbmd0aCYmKGY9ImJvcmRlci1ib3giPT09ZC5jc3MoYSwiYm94U2l6aW5nIiwhMSxlKSwoZz1tIGluIGEpJiYoaD1hW21dKSksKGg9cGFyc2VGbG9hdChoKXx8MCkrcmIoYSxiLGN8fChmPyJib3JkZXIiOiJjb250ZW50IiksZyxlLGgpKyJweCJ9ZnVuY3Rpb24gemEoYSxiLGMsZSxmKXtyZXR1cm4gbmV3IHphLnByb3RvdHlwZS5pbml0KGEsYixjLGUsZil9ZnVuY3Rpb24gQ2IoKXtYYiYmKCExPT09TC5oaWRkZW4mJm4ucmVxdWVzdEFuaW1hdGlvbkZyYW1lPwpuLnJlcXVlc3RBbmltYXRpb25GcmFtZShDYik6bi5zZXRUaW1lb3V0KENiLGQuZnguaW50ZXJ2YWwpLGQuZngudGljaygpKX1mdW5jdGlvbiBEYigpe3JldHVybiBuLnNldFRpbWVvdXQoZnVuY3Rpb24oKXtzYj12b2lkIDB9KSxzYj1EYXRlLm5vdygpfWZ1bmN0aW9uIHRiKGEsYil7dmFyIGMsZT0wLGY9e2hlaWdodDphfTtmb3IoYj1iPzE6MDs0PmU7ZSs9Mi1iKWZbIm1hcmdpbiIrKGM9UGFbZV0pXT1mWyJwYWRkaW5nIitjXT1hO3JldHVybiBiJiYoZi5vcGFjaXR5PWYud2lkdGg9YSksZn1mdW5jdGlvbiB1KGEsYixjKXtmb3IodmFyIGUsZj0oeC50d2VlbmVyc1tiXXx8W10pLmNvbmNhdCh4LnR3ZWVuZXJzWyIqIl0pLGc9MCxoPWYubGVuZ3RoO2c8aDtnKyspaWYoZT1mW2ddLmNhbGwoYyxiLGEpKXJldHVybiBlfWZ1bmN0aW9uIHgoYSxiLGMpe3ZhciBlLGY9MCxnPXgucHJlZmlsdGVycy5sZW5ndGgsaD1kLkRlZmVycmVkKCkuYWx3YXlzKGZ1bmN0aW9uKCl7ZGVsZXRlIG0uZWxlbX0pLAptPWZ1bmN0aW9uKCl7aWYoZSlyZXR1cm4hMTt2YXIgdD1zYnx8RGIoKTt0PU1hdGgubWF4KDAsbC5zdGFydFRpbWUrbC5kdXJhdGlvbi10KTtmb3IodmFyIHc9MS0odC9sLmR1cmF0aW9ufHwwKSxyPTAsej1sLnR3ZWVucy5sZW5ndGg7cjx6O3IrKylsLnR3ZWVuc1tyXS5ydW4odyk7cmV0dXJuIGgubm90aWZ5V2l0aChhLFtsLHcsdF0pLDE+dyYmej90Oih6fHxoLm5vdGlmeVdpdGgoYSxbbCwxLDBdKSxoLnJlc29sdmVXaXRoKGEsW2xdKSwhMSl9LGw9aC5wcm9taXNlKHtlbGVtOmEscHJvcHM6ZC5leHRlbmQoe30sYiksb3B0czpkLmV4dGVuZCghMCx7c3BlY2lhbEVhc2luZzp7fSxlYXNpbmc6ZC5lYXNpbmcuX2RlZmF1bHR9LGMpLG9yaWdpbmFsUHJvcGVydGllczpiLG9yaWdpbmFsT3B0aW9uczpjLHN0YXJ0VGltZTpzYnx8RGIoKSxkdXJhdGlvbjpjLmR1cmF0aW9uLHR3ZWVuczpbXSxjcmVhdGVUd2VlbjpmdW5jdGlvbih0LHcpe3Q9ZC5Ud2VlbihhLGwub3B0cyx0LHcsbC5vcHRzLnNwZWNpYWxFYXNpbmdbdF18fApsLm9wdHMuZWFzaW5nKTtyZXR1cm4gbC50d2VlbnMucHVzaCh0KSx0fSxzdG9wOmZ1bmN0aW9uKHQpe3ZhciB3PTAscj10P2wudHdlZW5zLmxlbmd0aDowO2lmKGUpcmV0dXJuIHRoaXM7Zm9yKGU9ITA7dzxyO3crKylsLnR3ZWVuc1t3XS5ydW4oMSk7cmV0dXJuIHQ\/KGgubm90aWZ5V2l0aChhLFtsLDEsMF0pLGgucmVzb2x2ZVdpdGgoYSxbbCx0XSkpOmgucmVqZWN0V2l0aChhLFtsLHRdKSx0aGlzfX0pO2M9bC5wcm9wczshZnVuY3Rpb24odCx3KXt2YXIgcix6LEQsRixPO2ZvcihyIGluIHQpaWYoRD13W3o9QmEocildLEY9dFtyXSxBcnJheS5pc0FycmF5KEYpJiYoRD1GWzFdLEY9dFtyXT1GWzBdKSxyIT09eiYmKHRbel09RixkZWxldGUgdFtyXSksKE89ZC5jc3NIb29rc1t6XSkmJiJleHBhbmQiaW4gTylmb3IociBpbiBGPU8uZXhwYW5kKEYpLGRlbGV0ZSB0W3pdLEYpciBpbiB0fHwodFtyXT1GW3JdLHdbcl09RCk7ZWxzZSB3W3pdPUR9KGMsbC5vcHRzLnNwZWNpYWxFYXNpbmcpOwpmb3IoO2Y8ZztmKyspaWYoYj14LnByZWZpbHRlcnNbZl0uY2FsbChsLGEsYyxsLm9wdHMpKXJldHVybiBNKGIuc3RvcCkmJihkLl9xdWV1ZUhvb2tzKGwuZWxlbSxsLm9wdHMucXVldWUpLnN0b3A9Yi5zdG9wLmJpbmQoYikpLGI7cmV0dXJuIGQubWFwKGMsdSxsKSxNKGwub3B0cy5zdGFydCkmJmwub3B0cy5zdGFydC5jYWxsKGEsbCksbC5wcm9ncmVzcyhsLm9wdHMucHJvZ3Jlc3MpLmRvbmUobC5vcHRzLmRvbmUsbC5vcHRzLmNvbXBsZXRlKS5mYWlsKGwub3B0cy5mYWlsKS5hbHdheXMobC5vcHRzLmFsd2F5cyksZC5meC50aW1lcihkLmV4dGVuZChtLHtlbGVtOmEsYW5pbTpsLHF1ZXVlOmwub3B0cy5xdWV1ZX0pKSxsfWZ1bmN0aW9uIEMoYSl7cmV0dXJuKGEubWF0Y2goTGEpfHxbXSkuam9pbigiICIpfWZ1bmN0aW9uIEgoYSl7cmV0dXJuIGEuZ2V0QXR0cmlidXRlJiZhLmdldEF0dHJpYnV0ZSgiY2xhc3MiKXx8IiJ9ZnVuY3Rpb24gUChhKXtyZXR1cm4gQXJyYXkuaXNBcnJheShhKT8KYToic3RyaW5nIj09dHlwZW9mIGEmJmEubWF0Y2goTGEpfHxbXX1mdW5jdGlvbiBlYShhLGIsYyxlKXt2YXIgZjtpZihBcnJheS5pc0FycmF5KGIpKWQuZWFjaChiLGZ1bmN0aW9uKGcsaCl7Y3x8VWMudGVzdChhKT9lKGEsaCk6ZWEoYSsiWyIrKCJvYmplY3QiPT10eXBlb2YgaCYmbnVsbCE9aD9nOiIiKSsiXSIsaCxjLGUpfSk7ZWxzZSBpZihjfHwib2JqZWN0IiE9PVUoYikpZShhLGIpO2Vsc2UgZm9yKGYgaW4gYillYShhKyJbIitmKyJdIixiW2ZdLGMsZSl9ZnVuY3Rpb24gUWEoYSl7cmV0dXJuIGZ1bmN0aW9uKGIsYyl7InN0cmluZyIhPXR5cGVvZiBiJiYoYz1iLGI9IioiKTt2YXIgZT0wLGY9Yi50b0xvd2VyQ2FzZSgpLm1hdGNoKExhKXx8W107aWYoTShjKSlmb3IoO2I9ZltlKytdOykiKyI9PT1iWzBdPyhiPWIuc2xpY2UoMSl8fCIqIiwoYVtiXT1hW2JdfHxbXSkudW5zaGlmdChjKSk6KGFbYl09YVtiXXx8W10pLnB1c2goYyl9fWZ1bmN0aW9uIEViKGEsYixjLGUpe2Z1bmN0aW9uIGYobSl7dmFyIGw7CnJldHVybiBnW21dPSEwLGQuZWFjaChhW21dfHxbXSxmdW5jdGlvbih0LHcpe3Q9dyhiLGMsZSk7cmV0dXJuInN0cmluZyIhPXR5cGVvZiB0fHxofHxnW3RdP2g\/IShsPXQpOnZvaWQgMDooYi5kYXRhVHlwZXMudW5zaGlmdCh0KSxmKHQpLCExKX0pLGx9dmFyIGc9e30saD1hPT09Y2M7cmV0dXJuIGYoYi5kYXRhVHlwZXNbMF0pfHwhZ1siKiJdJiZmKCIqIil9ZnVuY3Rpb24gaGIoYSxiKXt2YXIgYyxlLGY9ZC5hamF4U2V0dGluZ3MuZmxhdE9wdGlvbnN8fHt9O2ZvcihjIGluIGIpdm9pZCAwIT09YltjXSYmKChmW2NdP2E6ZXx8KGU9e30pKVtjXT1iW2NdKTtyZXR1cm4gZSYmZC5leHRlbmQoITAsYSxlKSxhfXZhciBvYT1bXSxzYz1PYmplY3QuZ2V0UHJvdG90eXBlT2YseWE9b2Euc2xpY2Usb2M9b2EuZmxhdD9mdW5jdGlvbihhKXtyZXR1cm4gb2EuZmxhdC5jYWxsKGEpfTpmdW5jdGlvbihhKXtyZXR1cm4gb2EuY29uY2F0LmFwcGx5KFtdLGEpfSx1Yj1vYS5wdXNoLE5hPW9hLmluZGV4T2YsCk1iPXt9LGtjPU1iLnRvU3RyaW5nLEZiPU1iLmhhc093blByb3BlcnR5LHRjPUZiLnRvU3RyaW5nLFZjPXRjLmNhbGwoT2JqZWN0KSxOPXt9LE09ZnVuY3Rpb24oYSl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIGEmJiJudW1iZXIiIT10eXBlb2YgYS5ub2RlVHlwZSYmImZ1bmN0aW9uIiE9dHlwZW9mIGEuaXRlbX0sa2I9ZnVuY3Rpb24oYSl7cmV0dXJuIG51bGwhPWEmJmE9PT1hLndpbmRvd30sTD1uLmRvY3VtZW50LExjPXt0eXBlOiEwLHNyYzohMCxub25jZTohMCxub01vZHVsZTohMH0sV2M9L0hUTUwkL2ksZD1mdW5jdGlvbihhLGIpe3JldHVybiBuZXcgZC5mbi5pbml0KGEsYil9O2QuZm49ZC5wcm90b3R5cGU9e2pxdWVyeToiMy43LjAiLGNvbnN0cnVjdG9yOmQsbGVuZ3RoOjAsdG9BcnJheTpmdW5jdGlvbigpe3JldHVybiB5YS5jYWxsKHRoaXMpfSxnZXQ6ZnVuY3Rpb24oYSl7cmV0dXJuIG51bGw9PWE\/eWEuY2FsbCh0aGlzKTowPmE\/dGhpc1thK3RoaXMubGVuZ3RoXTp0aGlzW2FdfSwKcHVzaFN0YWNrOmZ1bmN0aW9uKGEpe2E9ZC5tZXJnZSh0aGlzLmNvbnN0cnVjdG9yKCksYSk7cmV0dXJuIGEucHJldk9iamVjdD10aGlzLGF9LGVhY2g6ZnVuY3Rpb24oYSl7cmV0dXJuIGQuZWFjaCh0aGlzLGEpfSxtYXA6ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMucHVzaFN0YWNrKGQubWFwKHRoaXMsZnVuY3Rpb24oYixjKXtyZXR1cm4gYS5jYWxsKGIsYyxiKX0pKX0sc2xpY2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wdXNoU3RhY2soeWEuYXBwbHkodGhpcyxhcmd1bWVudHMpKX0sZmlyc3Q6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lcSgwKX0sbGFzdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmVxKC0xKX0sZXZlbjpmdW5jdGlvbigpe3JldHVybiB0aGlzLnB1c2hTdGFjayhkLmdyZXAodGhpcyxmdW5jdGlvbihhLGIpe3JldHVybihiKzEpJTJ9KSl9LG9kZDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnB1c2hTdGFjayhkLmdyZXAodGhpcyxmdW5jdGlvbihhLGIpe3JldHVybiBiJQoyfSkpfSxlcTpmdW5jdGlvbihhKXt2YXIgYj10aGlzLmxlbmd0aDthPSthKygwPmE\/YjowKTtyZXR1cm4gdGhpcy5wdXNoU3RhY2soMDw9YSYmYTxiP1t0aGlzW2FdXTpbXSl9LGVuZDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnByZXZPYmplY3R8fHRoaXMuY29uc3RydWN0b3IoKX0scHVzaDp1Yixzb3J0Om9hLnNvcnQsc3BsaWNlOm9hLnNwbGljZX07ZC5leHRlbmQ9ZC5mbi5leHRlbmQ9ZnVuY3Rpb24oKXt2YXIgYSxiLGMsZSxmLGc9YXJndW1lbnRzWzBdfHx7fSxoPTEsbT1hcmd1bWVudHMubGVuZ3RoLGw9ITE7ImJvb2xlYW4iPT10eXBlb2YgZyYmKGw9ZyxnPWFyZ3VtZW50c1toXXx8e30saCsrKTsib2JqZWN0Ij09dHlwZW9mIGd8fE0oZyl8fChnPXt9KTtmb3IoaD09PW0mJihnPXRoaXMsaC0tKTtoPG07aCsrKWlmKG51bGwhPShhPWFyZ3VtZW50c1toXSkpZm9yKGIgaW4gYSl7dmFyIHQ9YVtiXTsiX19wcm90b19fIiE9PWImJmchPT10JiYobCYmdCYmKGQuaXNQbGFpbk9iamVjdCh0KXx8CihlPUFycmF5LmlzQXJyYXkodCkpKT8oYz1nW2JdLGY9ZSYmIUFycmF5LmlzQXJyYXkoYyk\/W106ZXx8ZC5pc1BsYWluT2JqZWN0KGMpP2M6e30sZT0hMSxnW2JdPWQuZXh0ZW5kKGwsZix0KSk6dm9pZCAwIT09dCYmKGdbYl09dCkpfXJldHVybiBnfTtkLmV4dGVuZCh7ZXhwYW5kbzoialF1ZXJ5IisoIjMuNy4wIitNYXRoLnJhbmRvbSgpKS5yZXBsYWNlKC9cRC9nLCIiKSxpc1JlYWR5OiEwLGVycm9yOmZ1bmN0aW9uKGEpe3Rocm93IEVycm9yKGEpO30sbm9vcDpmdW5jdGlvbigpe30saXNQbGFpbk9iamVjdDpmdW5jdGlvbihhKXt2YXIgYixjO3JldHVybiEoIWF8fCJbb2JqZWN0IE9iamVjdF0iIT09a2MuY2FsbChhKSkmJighKGI9c2MoYSkpfHwiZnVuY3Rpb24iPT10eXBlb2YoYz1GYi5jYWxsKGIsImNvbnN0cnVjdG9yIikmJmIuY29uc3RydWN0b3IpJiZ0Yy5jYWxsKGMpPT09VmMpfSxpc0VtcHR5T2JqZWN0OmZ1bmN0aW9uKGEpe2Zvcih2YXIgYiBpbiBhKXJldHVybiExO3JldHVybiEwfSwKZ2xvYmFsRXZhbDpmdW5jdGlvbihhLGIsYyl7d2EoYSx7bm9uY2U6YiYmYi5ub25jZX0sYyl9LGVhY2g6ZnVuY3Rpb24oYSxiKXt2YXIgYyxlPTA7aWYoZWIoYSkpZm9yKGM9YS5sZW5ndGg7ZTxjJiYhMSE9PWIuY2FsbChhW2VdLGUsYVtlXSk7ZSsrKTtlbHNlIGZvcihlIGluIGEpaWYoITE9PT1iLmNhbGwoYVtlXSxlLGFbZV0pKWJyZWFrO3JldHVybiBhfSx0ZXh0OmZ1bmN0aW9uKGEpe3ZhciBiLGM9IiIsZT0wO2lmKGI9YS5ub2RlVHlwZSl7aWYoMT09PWJ8fDk9PT1ifHwxMT09PWIpcmV0dXJuIGEudGV4dENvbnRlbnQ7aWYoMz09PWJ8fDQ9PT1iKXJldHVybiBhLm5vZGVWYWx1ZX1lbHNlIGZvcig7Yj1hW2UrK107KWMrPWQudGV4dChiKTtyZXR1cm4gY30sbWFrZUFycmF5OmZ1bmN0aW9uKGEsYil7Yj1ifHxbXTtyZXR1cm4gbnVsbCE9YSYmKGViKE9iamVjdChhKSk\/ZC5tZXJnZShiLCJzdHJpbmciPT10eXBlb2YgYT9bYV06YSk6dWIuY2FsbChiLGEpKSxifSxpbkFycmF5OmZ1bmN0aW9uKGEsCmIsYyl7cmV0dXJuIG51bGw9PWI\/LTE6TmEuY2FsbChiLGEsYyl9LGlzWE1MRG9jOmZ1bmN0aW9uKGEpe3ZhciBiPWEmJihhLm93bmVyRG9jdW1lbnR8fGEpLmRvY3VtZW50RWxlbWVudDtyZXR1cm4hV2MudGVzdChhJiZhLm5hbWVzcGFjZVVSSXx8YiYmYi5ub2RlTmFtZXx8IkhUTUwiKX0sbWVyZ2U6ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9K2IubGVuZ3RoLGU9MCxmPWEubGVuZ3RoO2U8YztlKyspYVtmKytdPWJbZV07cmV0dXJuIGEubGVuZ3RoPWYsYX0sZ3JlcDpmdW5jdGlvbihhLGIsYyl7dmFyIGU9W10sZj0wLGc9YS5sZW5ndGg7Zm9yKGM9IWM7ZjxnO2YrKykhYihhW2ZdLGYpIT09YyYmZS5wdXNoKGFbZl0pO3JldHVybiBlfSxtYXA6ZnVuY3Rpb24oYSxiLGMpe3ZhciBlLGYsZz0wLGg9W107aWYoZWIoYSkpZm9yKGU9YS5sZW5ndGg7ZzxlO2crKyludWxsIT0oZj1iKGFbZ10sZyxjKSkmJmgucHVzaChmKTtlbHNlIGZvcihnIGluIGEpbnVsbCE9KGY9YihhW2ddLGcsYykpJiYKaC5wdXNoKGYpO3JldHVybiBvYyhoKX0sZ3VpZDoxLHN1cHBvcnQ6Tn0pOyJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJihkLmZuW1N5bWJvbC5pdGVyYXRvcl09b2FbU3ltYm9sLml0ZXJhdG9yXSk7ZC5lYWNoKCJCb29sZWFuIE51bWJlciBTdHJpbmcgRnVuY3Rpb24gQXJyYXkgRGF0ZSBSZWdFeHAgT2JqZWN0IEVycm9yIFN5bWJvbCIuc3BsaXQoIiAiKSxmdW5jdGlvbihhLGIpe01iWyJbb2JqZWN0ICIrYisiXSJdPWIudG9Mb3dlckNhc2UoKX0pO3ZhciBYYz1vYS5wb3AsWWM9b2Euc29ydCxaYz1vYS5zcGxpY2UsemI9UmVnRXhwKCJeW1xceDIwXFx0XFxyXFxuXFxmXSt8KCg\/Ol58W15cXFxcXSkoPzpcXFxcLikqKVtcXHgyMFxcdFxcclxcblxcZl0rJCIsImciKTtkLmNvbnRhaW5zPWZ1bmN0aW9uKGEsYil7Yj1iJiZiLnBhcmVudE5vZGU7cmV0dXJuIGE9PT1ifHwhKCFifHwxIT09Yi5ub2RlVHlwZXx8IShhLmNvbnRhaW5zP2EuY29udGFpbnMoYik6YS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbiYmCjE2JmEuY29tcGFyZURvY3VtZW50UG9zaXRpb24oYikpKX07dmFyICRjPS8oW1wwLVx4MWZceDdmXXxeLT9cZCl8Xi0kfFteXHg4MC1cdUZGRkZcdy1dL2c7ZC5lc2NhcGVTZWxlY3Rvcj1mdW5jdGlvbihhKXtyZXR1cm4oYSsiIikucmVwbGFjZSgkYyxiYSl9O3ZhciBSYT1MOyFmdW5jdGlvbigpe2Z1bmN0aW9uIGEoayxwLHEsdil7dmFyIHksRSxBLEksQj1wJiZwLm93bmVyRG9jdW1lbnQsSj1wP3Aubm9kZVR5cGU6OTtpZihxPXF8fFtdLCJzdHJpbmciIT10eXBlb2Yga3x8IWt8fDEhPT1KJiY5IT09SiYmMTEhPT1KKXJldHVybiBxO2lmKCF2JiYodChwKSxwPXB8fFosdmEpKXtpZigxMSE9PUomJihJPWFkLmV4ZWMoaykpKWlmKHk9SVsxXSlpZig5PT09Sil7aWYoIShFPXAuZ2V0RWxlbWVudEJ5SWQoeSkpKXJldHVybiBxO2lmKEUuaWQ9PT15KXJldHVybiB0YS5jYWxsKHEsRSkscX1lbHNle2lmKEImJihFPUIuZ2V0RWxlbWVudEJ5SWQoeSkpJiZhLmNvbnRhaW5zKHAsRSkmJkUuaWQ9PT0KeSlyZXR1cm4gdGEuY2FsbChxLEUpLHF9ZWxzZXtpZihJWzJdKXJldHVybiB0YS5hcHBseShxLHAuZ2V0RWxlbWVudHNCeVRhZ05hbWUoaykpLHE7aWYoKHk9SVszXSkmJnAuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSlyZXR1cm4gdGEuYXBwbHkocSxwLmdldEVsZW1lbnRzQnlDbGFzc05hbWUoeSkpLHF9aWYoIShZW2srIiAiXXx8a2EmJmthLnRlc3QoaykpKXtpZih5PWssQj1wLDE9PT1KJiYodmIudGVzdChrKXx8SGEudGVzdChrKSkpeyhCPWRjLnRlc3QoaykmJmwocC5wYXJlbnROb2RlKXx8cCk9PXAmJk4uc2NvcGV8fCgoQT1wLmdldEF0dHJpYnV0ZSgiaWQiKSk\/QT1kLmVzY2FwZVNlbGVjdG9yKEEpOnAuc2V0QXR0cmlidXRlKCJpZCIsQT1XKSk7Zm9yKEo9KHk9cihrKSkubGVuZ3RoO0otLTspeVtKXT0oQT8iIyIrQToiOnNjb3BlIikrIiAiK3ooeVtKXSk7eT15LmpvaW4oIiwiKX10cnl7cmV0dXJuIHRhLmFwcGx5KHEsQi5xdWVyeVNlbGVjdG9yQWxsKHkpKSxxfWNhdGNoKFIpe1koaywKITApfWZpbmFsbHl7QT09PVcmJnAucmVtb3ZlQXR0cmlidXRlKCJpZCIpfX19cmV0dXJuIFNhKGsucmVwbGFjZSh6YiwiJDEiKSxwLHEsdil9ZnVuY3Rpb24gYigpe3ZhciBrPVtdO3JldHVybiBmdW5jdGlvbiB5KHEsdil7cmV0dXJuIGsucHVzaChxKyIgIik+Sy5jYWNoZUxlbmd0aCYmZGVsZXRlIHlbay5zaGlmdCgpXSx5W3ErIiAiXT12fX1mdW5jdGlvbiBjKGspe3JldHVybiBrW1ddPSEwLGt9ZnVuY3Rpb24gZShrKXt2YXIgcD1aLmNyZWF0ZUVsZW1lbnQoImZpZWxkc2V0Iik7dHJ5e3JldHVybiEhayhwKX1jYXRjaChxKXtyZXR1cm4hMX1maW5hbGx5e3AucGFyZW50Tm9kZSYmcC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHApfX1mdW5jdGlvbiBmKGspe3JldHVybiBmdW5jdGlvbihwKXtyZXR1cm4gWChwLCJpbnB1dCIpJiZwLnR5cGU9PT1rfX1mdW5jdGlvbiBnKGspe3JldHVybiBmdW5jdGlvbihwKXtyZXR1cm4oWChwLCJpbnB1dCIpfHxYKHAsImJ1dHRvbiIpKSYmcC50eXBlPT09Cmt9fWZ1bmN0aW9uIGgoayl7cmV0dXJuIGZ1bmN0aW9uKHApe3JldHVybiJmb3JtImluIHA\/cC5wYXJlbnROb2RlJiYhMT09PXAuZGlzYWJsZWQ\/ImxhYmVsImluIHA\/ImxhYmVsImluIHAucGFyZW50Tm9kZT9wLnBhcmVudE5vZGUuZGlzYWJsZWQ9PT1rOnAuZGlzYWJsZWQ9PT1rOnAuaXNEaXNhYmxlZD09PWt8fHAuaXNEaXNhYmxlZCE9PSFrJiZiZChwKT09PWs6cC5kaXNhYmxlZD09PWs6ImxhYmVsImluIHAmJnAuZGlzYWJsZWQ9PT1rfX1mdW5jdGlvbiBtKGspe3JldHVybiBjKGZ1bmN0aW9uKHApe3JldHVybiBwPStwLGMoZnVuY3Rpb24ocSx2KXtmb3IodmFyIHksRT1rKFtdLHEubGVuZ3RoLHApLEE9RS5sZW5ndGg7QS0tOylxW3k9RVtBXV0mJihxW3ldPSEodlt5XT1xW3ldKSl9KX0pfWZ1bmN0aW9uIGwoayl7cmV0dXJuIGsmJiJ1bmRlZmluZWQiIT10eXBlb2Ygay5nZXRFbGVtZW50c0J5VGFnTmFtZSYma31mdW5jdGlvbiB0KGspe3ZhciBwO2s9az9rLm93bmVyRG9jdW1lbnR8fAprOlJhO3JldHVybiBrIT1aJiY5PT09ay5ub2RlVHlwZSYmay5kb2N1bWVudEVsZW1lbnQmJihyYT0oWj1rKS5kb2N1bWVudEVsZW1lbnQsdmE9IWQuaXNYTUxEb2MoWiksTWE9cmEubWF0Y2hlc3x8cmEud2Via2l0TWF0Y2hlc1NlbGVjdG9yfHxyYS5tc01hdGNoZXNTZWxlY3RvcixSYSE9WiYmKHA9Wi5kZWZhdWx0VmlldykmJnAudG9wIT09cCYmcC5hZGRFdmVudExpc3RlbmVyKCJ1bmxvYWQiLGNkKSxOLmdldEJ5SWQ9ZShmdW5jdGlvbihxKXtyZXR1cm4gcmEuYXBwZW5kQ2hpbGQocSkuaWQ9ZC5leHBhbmRvLCFaLmdldEVsZW1lbnRzQnlOYW1lfHwhWi5nZXRFbGVtZW50c0J5TmFtZShkLmV4cGFuZG8pLmxlbmd0aH0pLE4uZGlzY29ubmVjdGVkTWF0Y2g9ZShmdW5jdGlvbihxKXtyZXR1cm4gTWEuY2FsbChxLCIqIil9KSxOLnNjb3BlPWUoZnVuY3Rpb24oKXtyZXR1cm4gWi5xdWVyeVNlbGVjdG9yQWxsKCI6c2NvcGUiKX0pLE4uY3NzSGFzPWUoZnVuY3Rpb24oKXt0cnl7cmV0dXJuIFoucXVlcnlTZWxlY3RvcigiOmhhcygqLDpqcWZha2UpIiksCiExfWNhdGNoKHEpe3JldHVybiEwfX0pLE4uZ2V0QnlJZD8oSy5maWx0ZXIuSUQ9ZnVuY3Rpb24ocSl7dmFyIHY9cS5yZXBsYWNlKFRhLFVhKTtyZXR1cm4gZnVuY3Rpb24oeSl7cmV0dXJuIHkuZ2V0QXR0cmlidXRlKCJpZCIpPT09dn19LEsuZmluZC5JRD1mdW5jdGlvbihxLHYpe2lmKCJ1bmRlZmluZWQiIT10eXBlb2Ygdi5nZXRFbGVtZW50QnlJZCYmdmEpcmV0dXJuKHE9di5nZXRFbGVtZW50QnlJZChxKSk\/W3FdOltdfSk6KEsuZmlsdGVyLklEPWZ1bmN0aW9uKHEpe3ZhciB2PXEucmVwbGFjZShUYSxVYSk7cmV0dXJuIGZ1bmN0aW9uKHkpe3JldHVybih5PSJ1bmRlZmluZWQiIT10eXBlb2YgeS5nZXRBdHRyaWJ1dGVOb2RlJiZ5LmdldEF0dHJpYnV0ZU5vZGUoImlkIikpJiZ5LnZhbHVlPT09dn19LEsuZmluZC5JRD1mdW5jdGlvbihxLHYpe2lmKCJ1bmRlZmluZWQiIT10eXBlb2Ygdi5nZXRFbGVtZW50QnlJZCYmdmEpe3ZhciB5LEU9di5nZXRFbGVtZW50QnlJZChxKTtpZihFKXtpZigoeT0KRS5nZXRBdHRyaWJ1dGVOb2RlKCJpZCIpKSYmeS52YWx1ZT09PXEpcmV0dXJuW0VdO3ZhciBBPXYuZ2V0RWxlbWVudHNCeU5hbWUocSk7Zm9yKHY9MDtFPUFbdisrXTspaWYoKHk9RS5nZXRBdHRyaWJ1dGVOb2RlKCJpZCIpKSYmeS52YWx1ZT09PXEpcmV0dXJuW0VdfXJldHVybltdfX0pLEsuZmluZC5UQUc9ZnVuY3Rpb24ocSx2KXtyZXR1cm4idW5kZWZpbmVkIiE9dHlwZW9mIHYuZ2V0RWxlbWVudHNCeVRhZ05hbWU\/di5nZXRFbGVtZW50c0J5VGFnTmFtZShxKTp2LnF1ZXJ5U2VsZWN0b3JBbGwocSl9LEsuZmluZC5DTEFTUz1mdW5jdGlvbihxLHYpe2lmKCJ1bmRlZmluZWQiIT10eXBlb2Ygdi5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lJiZ2YSlyZXR1cm4gdi5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKHEpfSxrYT1bXSxlKGZ1bmN0aW9uKHEpe3ZhciB2O3JhLmFwcGVuZENoaWxkKHEpLmlubmVySFRNTD0iPGEgaWQ9JyIrVysiJyBocmVmPScnIGRpc2FibGVkPSdkaXNhYmxlZCc+PC9hPjxzZWxlY3QgaWQ9JyIrClcrIi1cclxcJyBkaXNhYmxlZD0nZGlzYWJsZWQnPjxvcHRpb24gc2VsZWN0ZWQ9Jyc+PC9vcHRpb24+PC9zZWxlY3Q+IjtxLnF1ZXJ5U2VsZWN0b3JBbGwoIltzZWxlY3RlZF0iKS5sZW5ndGh8fGthLnB1c2goIlxcW1tcXHgyMFxcdFxcclxcblxcZl0qKD86dmFsdWV8Y2hlY2tlZHxzZWxlY3RlZHxhc3luY3xhdXRvZm9jdXN8YXV0b3BsYXl8Y29udHJvbHN8ZGVmZXJ8ZGlzYWJsZWR8aGlkZGVufGlzbWFwfGxvb3B8bXVsdGlwbGV8b3BlbnxyZWFkb25seXxyZXF1aXJlZHxzY29wZWQpIik7cS5xdWVyeVNlbGVjdG9yQWxsKCJbaWR+PSIrVysiLV0iKS5sZW5ndGh8fGthLnB1c2goIn49Iik7cS5xdWVyeVNlbGVjdG9yQWxsKCJhIyIrVysiKyoiKS5sZW5ndGh8fGthLnB1c2goIi4jLitbK35dIik7cS5xdWVyeVNlbGVjdG9yQWxsKCI6Y2hlY2tlZCIpLmxlbmd0aHx8a2EucHVzaCgiOmNoZWNrZWQiKTsodj1aLmNyZWF0ZUVsZW1lbnQoImlucHV0IikpLnNldEF0dHJpYnV0ZSgidHlwZSIsCiJoaWRkZW4iKTtxLmFwcGVuZENoaWxkKHYpLnNldEF0dHJpYnV0ZSgibmFtZSIsIkQiKTtyYS5hcHBlbmRDaGlsZChxKS5kaXNhYmxlZD0hMDsyIT09cS5xdWVyeVNlbGVjdG9yQWxsKCI6ZGlzYWJsZWQiKS5sZW5ndGgmJmthLnB1c2goIjplbmFibGVkIiwiOmRpc2FibGVkIik7KHY9Wi5jcmVhdGVFbGVtZW50KCJpbnB1dCIpKS5zZXRBdHRyaWJ1dGUoIm5hbWUiLCIiKTtxLmFwcGVuZENoaWxkKHYpO3EucXVlcnlTZWxlY3RvckFsbCgiW25hbWU9JyddIikubGVuZ3RofHxrYS5wdXNoKCJcXFtbXFx4MjBcXHRcXHJcXG5cXGZdKm5hbWVbXFx4MjBcXHRcXHJcXG5cXGZdKj1bXFx4MjBcXHRcXHJcXG5cXGZdKig\/OicnfFwiXCIpIil9KSxOLmNzc0hhc3x8a2EucHVzaCgiOmhhcyIpLGthPWthLmxlbmd0aCYmbmV3IFJlZ0V4cChrYS5qb2luKCJ8IikpLGxhPWZ1bmN0aW9uKHEsdil7aWYocT09PXYpcmV0dXJuIGliPSEwLDA7dmFyIHk9IXEuY29tcGFyZURvY3VtZW50UG9zaXRpb24tIXYuY29tcGFyZURvY3VtZW50UG9zaXRpb247CnJldHVybiB5fHwoMSYoeT0ocS5vd25lckRvY3VtZW50fHxxKT09KHYub3duZXJEb2N1bWVudHx8dik\/cS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbih2KToxKXx8IU4uc29ydERldGFjaGVkJiZ2LmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKHEpPT09eT9xPT09Wnx8cS5vd25lckRvY3VtZW50PT1SYSYmYS5jb250YWlucyhSYSxxKT8tMTp2PT09Wnx8di5vd25lckRvY3VtZW50PT1SYSYmYS5jb250YWlucyhSYSx2KT8xOmhhP05hLmNhbGwoaGEscSktTmEuY2FsbChoYSx2KTowOjQmeT8tMToxKX0pLFp9ZnVuY3Rpb24gdygpe31mdW5jdGlvbiByKGsscCl7dmFyIHEsdix5LEUsQSxJO2lmKEE9VmFbaysiICJdKXJldHVybiBwPzA6QS5zbGljZSgwKTtBPWs7dmFyIEI9W107Zm9yKEk9Sy5wcmVGaWx0ZXI7QTspe2ZvcihFIGluIHEmJiEodj1tYS5leGVjKEEpKXx8KHYmJihBPUEuc2xpY2UodlswXS5sZW5ndGgpfHxBKSxCLnB1c2goeT1bXSkpLHE9ITEsKHY9SGEuZXhlYyhBKSkmJihxPQp2LnNoaWZ0KCkseS5wdXNoKHt2YWx1ZTpxLHR5cGU6dlswXS5yZXBsYWNlKHpiLCIgIil9KSxBPUEuc2xpY2UocS5sZW5ndGgpKSxLLmZpbHRlcikhKHY9WWJbRV0uZXhlYyhBKSl8fElbRV0mJiEodj1JW0VdKHYpKXx8KHE9di5zaGlmdCgpLHkucHVzaCh7dmFsdWU6cSx0eXBlOkUsbWF0Y2hlczp2fSksQT1BLnNsaWNlKHEubGVuZ3RoKSk7aWYoIXEpYnJlYWt9cmV0dXJuIHA\/QS5sZW5ndGg6QT9hLmVycm9yKGspOlZhKGssQikuc2xpY2UoMCl9ZnVuY3Rpb24geihrKXtmb3IodmFyIHA9MCxxPWsubGVuZ3RoLHY9IiI7cDxxO3ArKyl2Kz1rW3BdLnZhbHVlO3JldHVybiB2fWZ1bmN0aW9uIEQoayxwLHEpe3ZhciB2PXAuZGlyLHk9cC5uZXh0LEU9eXx8dixBPXEmJiJwYXJlbnROb2RlIj09PUUsST1EYSsrO3JldHVybiBwLmZpcnN0P2Z1bmN0aW9uKEIsSixSKXtmb3IoO0I9Qlt2XTspaWYoMT09PUIubm9kZVR5cGV8fEEpcmV0dXJuIGsoQixKLFIpO3JldHVybiExfTpmdW5jdGlvbihCLApKLFIpe3ZhciBULFYsaWE9W2ZhLEldO2lmKFIpZm9yKDtCPUJbdl07KXtpZigoMT09PUIubm9kZVR5cGV8fEEpJiZrKEIsSixSKSlyZXR1cm4hMH1lbHNlIGZvcig7Qj1CW3ZdOylpZigxPT09Qi5ub2RlVHlwZXx8QSlpZihWPUJbV118fChCW1ddPXt9KSx5JiZYKEIseSkpQj1CW3ZdfHxCO2Vsc2V7aWYoKFQ9VltFXSkmJlRbMF09PT1mYSYmVFsxXT09PUkpcmV0dXJuIGlhWzJdPVRbMl07aWYoKFZbRV09aWEpWzJdPWsoQixKLFIpKXJldHVybiEwfXJldHVybiExfX1mdW5jdGlvbiBGKGspe3JldHVybiAxPGsubGVuZ3RoP2Z1bmN0aW9uKHAscSx2KXtmb3IodmFyIHk9ay5sZW5ndGg7eS0tOylpZigha1t5XShwLHEsdikpcmV0dXJuITE7cmV0dXJuITB9OmtbMF19ZnVuY3Rpb24gTyhrLHAscSx2LHkpe2Zvcih2YXIgRSxBPVtdLEk9MCxCPWsubGVuZ3RoLEo9bnVsbCE9cDtJPEI7SSsrKShFPWtbSV0pJiYocSYmIXEoRSx2LHkpfHwoQS5wdXNoKEUpLEomJnAucHVzaChJKSkpO3JldHVybiBBfQpmdW5jdGlvbiBhYShrLHAscSx2LHksRSl7cmV0dXJuIHYmJiF2W1ddJiYodj1hYSh2KSkseSYmIXlbV10mJih5PWFhKHksRSkpLGMoZnVuY3Rpb24oQSxJLEIsSil7dmFyIFIsVCxWPVtdLGlhPVtdLHBhPUkubGVuZ3RoLG5hO2lmKCEobmE9QSkpe25hPXB8fCIqIjtmb3IodmFyIEVhPUIubm9kZVR5cGU\/W0JdOkIsY2E9W10sQWE9MCxXYT1FYS5sZW5ndGg7QWE8V2E7QWErKylhKG5hLEVhW0FhXSxjYSk7bmE9Y2F9bmE9IWt8fCFBJiZwP25hOk8obmEsVixrLEIsSik7aWYocT9xKG5hLFQ9eXx8KEE\/azpwYXx8dik\/W106SSxCLEopOlQ9bmEsdil7dmFyIEZhPU8oVCxpYSk7dihGYSxbXSxCLEopO2ZvcihCPUZhLmxlbmd0aDtCLS07KShSPUZhW0JdKSYmKFRbaWFbQl1dPSEobmFbaWFbQl1dPVIpKX1pZihBKXtpZih5fHxrKXtpZih5KXtGYT1bXTtmb3IoQj1ULmxlbmd0aDtCLS07KShSPVRbQl0pJiZGYS5wdXNoKG5hW0JdPVIpO3kobnVsbCxUPVtdLEZhLEopfWZvcihCPVQubGVuZ3RoO0ItLTspKFI9ClRbQl0pJiYtMTwoRmE9eT9OYS5jYWxsKEEsUik6VltCXSkmJihBW0ZhXT0hKElbRmFdPVIpKX19ZWxzZSBUPU8oVD09PUk\/VC5zcGxpY2UocGEsVC5sZW5ndGgpOlQpLHk\/eShudWxsLEksVCxKKTp0YS5hcHBseShJLFQpfSl9ZnVuY3Rpb24gR2Eoayl7Zm9yKHZhciBwLHEsdj1rLmxlbmd0aCx5PUsucmVsYXRpdmVba1swXS50eXBlXSxFPXl8fEsucmVsYXRpdmVbIiAiXSxBPXk\/MTowLEk9RChmdW5jdGlvbihSKXtyZXR1cm4gUj09PXB9LEUsITApLEI9RChmdW5jdGlvbihSKXtyZXR1cm4tMTxOYS5jYWxsKHAsUil9LEUsITApLEo9W2Z1bmN0aW9uKFIsVCxWKXtSPSF5JiYoVnx8VCE9Uyl8fCgocD1UKS5ub2RlVHlwZT9JKFIsVCxWKTpCKFIsVCxWKSk7cmV0dXJuIHA9bnVsbCxSfV07QTx2O0ErKylpZihFPUsucmVsYXRpdmVba1tBXS50eXBlXSlKPVtEKEYoSiksRSldO2Vsc2V7aWYoKEU9Sy5maWx0ZXJba1tBXS50eXBlXS5hcHBseShudWxsLGtbQV0ubWF0Y2hlcykpW1ddKXtmb3IocT0KKytBO3E8diYmIUsucmVsYXRpdmVba1txXS50eXBlXTtxKyspO3JldHVybiBhYSgxPEEmJkYoSiksMTxBJiZ6KGsuc2xpY2UoMCxBLTEpLmNvbmNhdCh7dmFsdWU6IiAiPT09a1tBLTJdLnR5cGU\/IioiOiIifSkpLnJlcGxhY2UoemIsIiQxIiksRSxBPHEmJkdhKGsuc2xpY2UoQSxxKSkscTx2JiZHYShrPWsuc2xpY2UocSkpLHE8diYmeihrKSl9Si5wdXNoKEUpfXJldHVybiBGKEopfWZ1bmN0aW9uIHFhKGsscCl7dmFyIHEsdix5LEUsQT1bXSxJPVtdLEI9dWFbaysiICJdO2lmKCFCKXtwfHwocD1yKGspKTtmb3IocT1wLmxlbmd0aDtxLS07KShCPUdhKHBbcV0pKVtXXT9BLnB1c2goQik6SS5wdXNoKEIpOyhCPXVhKGssKHY9MDxBLmxlbmd0aCx5PTA8SS5sZW5ndGgsRT1mdW5jdGlvbihKLFIsVCxWLGlhKXt2YXIgcGEsbmEsRWE9MCxjYT0iMCIsQWE9SiYmW10sV2E9W10sRmE9Uyx1Yz1KfHx5JiZLLmZpbmQuVEFHKCIqIixpYSksdmM9ZmErPW51bGw9PUZhPzE6TWF0aC5yYW5kb20oKXx8Ci4xLGRkPXVjLmxlbmd0aDtmb3IoaWEmJihTPVI9PVp8fFJ8fGlhKTtjYSE9PWRkJiZudWxsIT0ocGE9dWNbY2FdKTtjYSsrKXtpZih5JiZwYSl7dmFyIGVjPTA7Zm9yKFJ8fHBhLm93bmVyRG9jdW1lbnQ9PVp8fCh0KHBhKSxUPSF2YSk7bmE9SVtlYysrXTspaWYobmEocGEsUnx8WixUKSl7dGEuY2FsbChWLHBhKTticmVha31pYSYmKGZhPXZjKX12JiYoKHBhPSFuYSYmcGEpJiZFYS0tLEomJkFhLnB1c2gocGEpKX1pZihFYSs9Y2EsdiYmY2EhPT1FYSl7Zm9yKGVjPTA7bmE9QVtlYysrXTspbmEoQWEsV2EsUixUKTtpZihKKXtpZigwPEVhKWZvcig7Y2EtLTspQWFbY2FdfHxXYVtjYV18fChXYVtjYV09WGMuY2FsbChWKSk7V2E9TyhXYSl9dGEuYXBwbHkoVixXYSk7aWEmJiFKJiYwPFdhLmxlbmd0aCYmMTxFYStBLmxlbmd0aCYmZC51bmlxdWVTb3J0KFYpfXJldHVybiBpYSYmKGZhPXZjLFM9RmEpLEFhfSx2P2MoRSk6RSkpKS5zZWxlY3Rvcj1rfXJldHVybiBCfWZ1bmN0aW9uIFNhKGssCnAscSx2KXt2YXIgeSxFLEEsSSxCLEo9ImZ1bmN0aW9uIj09dHlwZW9mIGsmJmssUj0hdiYmcihrPUouc2VsZWN0b3J8fGspO2lmKHE9cXx8W10sMT09PVIubGVuZ3RoKXtpZigyPChFPVJbMF09UlswXS5zbGljZSgwKSkubGVuZ3RoJiYiSUQiPT09KEE9RVswXSkudHlwZSYmOT09PXAubm9kZVR5cGUmJnZhJiZLLnJlbGF0aXZlW0VbMV0udHlwZV0pe2lmKCEocD0oSy5maW5kLklEKEEubWF0Y2hlc1swXS5yZXBsYWNlKFRhLFVhKSxwKXx8W10pWzBdKSlyZXR1cm4gcTtKJiYocD1wLnBhcmVudE5vZGUpO2s9ay5zbGljZShFLnNoaWZ0KCkudmFsdWUubGVuZ3RoKX1mb3IoeT1ZYi5uZWVkc0NvbnRleHQudGVzdChrKT8wOkUubGVuZ3RoO3ktLSYmKEE9RVt5XSwhSy5yZWxhdGl2ZVtJPUEudHlwZV0pOylpZigoQj1LLmZpbmRbSV0pJiYodj1CKEEubWF0Y2hlc1swXS5yZXBsYWNlKFRhLFVhKSxkYy50ZXN0KEVbMF0udHlwZSkmJmwocC5wYXJlbnROb2RlKXx8cCkpKXtpZihFLnNwbGljZSh5LAoxKSwhKGs9di5sZW5ndGgmJnooRSkpKXJldHVybiB0YS5hcHBseShxLHYpLHE7YnJlYWt9fXJldHVybihKfHxxYShrLFIpKSh2LHAsIXZhLHEsIXB8fGRjLnRlc3QoaykmJmwocC5wYXJlbnROb2RlKXx8cCkscX12YXIgUSxLLFMsaGEsaWIsWixyYSx2YSxrYSxNYSx0YT11YixXPWQuZXhwYW5kbyxmYT0wLERhPTAsZGI9YigpLFZhPWIoKSx1YT1iKCksWT1iKCksbGE9ZnVuY3Rpb24oayxwKXtyZXR1cm4gaz09PXAmJihpYj0hMCksMH0sSWE9UmVnRXhwKCJbXFx4MjBcXHRcXHJcXG5cXGZdKyIsImciKSxtYT1SZWdFeHAoIl5bXFx4MjBcXHRcXHJcXG5cXGZdKixbXFx4MjBcXHRcXHJcXG5cXGZdKiIpLEhhPVJlZ0V4cCgiXltcXHgyMFxcdFxcclxcblxcZl0qKFs+K35dfFtcXHgyMFxcdFxcclxcblxcZl0pW1xceDIwXFx0XFxyXFxuXFxmXSoiKSx2Yj1SZWdFeHAoIltcXHgyMFxcdFxcclxcblxcZl18PiIpLGZjPVJlZ0V4cCgiOigoPzpcXFxcW1xcZGEtZkEtRl17MSw2fVtcXHgyMFxcdFxcclxcblxcZl0\/fFxcXFxbXlxcclxcblxcZl18W1xcdy1dfFteXHgwMC1cXHg3Zl0pKykoPzpcXCgoKCcoKD86XFxcXC58W15cXFxcJ10pKiknfFwiKCg\/OlxcXFwufFteXFxcXFwiXSkqKVwiKXwoKD86XFxcXC58W15cXFxcKClbXFxdXXxcXFtbXFx4MjBcXHRcXHJcXG5cXGZdKigoPzpcXFxcW1xcZGEtZkEtRl17MSw2fVtcXHgyMFxcdFxcclxcblxcZl0\/fFxcXFxbXlxcclxcblxcZl18W1xcdy1dfFteXHgwMC1cXHg3Zl0pKykoPzpbXFx4MjBcXHRcXHJcXG5cXGZdKihbKl4kfCF+XT89KVtcXHgyMFxcdFxcclxcblxcZl0qKD86JygoPzpcXFxcLnxbXlxcXFwnXSkqKSd8XCIoKD86XFxcXC58W15cXFxcXCJdKSopXCJ8KCg\/OlxcXFxbXFxkYS1mQS1GXXsxLDZ9W1xceDIwXFx0XFxyXFxuXFxmXT98XFxcXFteXFxyXFxuXFxmXXxbXFx3LV18W15ceDAwLVxceDdmXSkrKSl8KVtcXHgyMFxcdFxcclxcblxcZl0qXFxdKSopfC4qKVxcKXwpIiksCmVkPVJlZ0V4cCgiXig\/OlxcXFxbXFxkYS1mQS1GXXsxLDZ9W1xceDIwXFx0XFxyXFxuXFxmXT98XFxcXFteXFxyXFxuXFxmXXxbXFx3LV18W15ceDAwLVxceDdmXSkrJCIpLFliPXtJRDpSZWdFeHAoIl4jKCg\/OlxcXFxbXFxkYS1mQS1GXXsxLDZ9W1xceDIwXFx0XFxyXFxuXFxmXT98XFxcXFteXFxyXFxuXFxmXXxbXFx3LV18W15ceDAwLVxceDdmXSkrKSIpLENMQVNTOlJlZ0V4cCgiXlxcLigoPzpcXFxcW1xcZGEtZkEtRl17MSw2fVtcXHgyMFxcdFxcclxcblxcZl0\/fFxcXFxbXlxcclxcblxcZl18W1xcdy1dfFteXHgwMC1cXHg3Zl0pKykiKSxUQUc6UmVnRXhwKCJeKCg\/OlxcXFxbXFxkYS1mQS1GXXsxLDZ9W1xceDIwXFx0XFxyXFxuXFxmXT98XFxcXFteXFxyXFxuXFxmXXxbXFx3LV18W15ceDAwLVxceDdmXSkrfFsqXSkiKSxBVFRSOlJlZ0V4cCgiXlxcW1tcXHgyMFxcdFxcclxcblxcZl0qKCg\/OlxcXFxbXFxkYS1mQS1GXXsxLDZ9W1xceDIwXFx0XFxyXFxuXFxmXT98XFxcXFteXFxyXFxuXFxmXXxbXFx3LV18W15ceDAwLVxceDdmXSkrKSg\/OltcXHgyMFxcdFxcclxcblxcZl0qKFsqXiR8IX5dPz0pW1xceDIwXFx0XFxyXFxuXFxmXSooPzonKCg\/OlxcXFwufFteXFxcXCddKSopJ3xcIigoPzpcXFxcLnxbXlxcXFxcIl0pKilcInwoKD86XFxcXFtcXGRhLWZBLUZdezEsNn1bXFx4MjBcXHRcXHJcXG5cXGZdP3xcXFxcW15cXHJcXG5cXGZdfFtcXHctXXxbXlx4MDAtXFx4N2ZdKSspKXwpW1xceDIwXFx0XFxyXFxuXFxmXSpcXF0iKSwKUFNFVURPOlJlZ0V4cCgiXjooKD86XFxcXFtcXGRhLWZBLUZdezEsNn1bXFx4MjBcXHRcXHJcXG5cXGZdP3xcXFxcW15cXHJcXG5cXGZdfFtcXHctXXxbXlx4MDAtXFx4N2ZdKSspKD86XFwoKCgnKCg\/OlxcXFwufFteXFxcXCddKSopJ3xcIigoPzpcXFxcLnxbXlxcXFxcIl0pKilcIil8KCg\/OlxcXFwufFteXFxcXCgpW1xcXV18XFxbW1xceDIwXFx0XFxyXFxuXFxmXSooKD86XFxcXFtcXGRhLWZBLUZdezEsNn1bXFx4MjBcXHRcXHJcXG5cXGZdP3xcXFxcW15cXHJcXG5cXGZdfFtcXHctXXxbXlx4MDAtXFx4N2ZdKSspKD86W1xceDIwXFx0XFxyXFxuXFxmXSooWypeJHwhfl0\/PSlbXFx4MjBcXHRcXHJcXG5cXGZdKig\/OicoKD86XFxcXC58W15cXFxcJ10pKiknfFwiKCg\/OlxcXFwufFteXFxcXFwiXSkqKVwifCgoPzpcXFxcW1xcZGEtZkEtRl17MSw2fVtcXHgyMFxcdFxcclxcblxcZl0\/fFxcXFxbXlxcclxcblxcZl18W1xcdy1dfFteXHgwMC1cXHg3Zl0pKykpfClbXFx4MjBcXHRcXHJcXG5cXGZdKlxcXSkqKXwuKilcXCl8KSIpLApDSElMRDpSZWdFeHAoIl46KG9ubHl8Zmlyc3R8bGFzdHxudGh8bnRoLWxhc3QpLShjaGlsZHxvZi10eXBlKSg\/OlxcKFtcXHgyMFxcdFxcclxcblxcZl0qKGV2ZW58b2RkfCgoWystXXwpKFxcZCopbnwpW1xceDIwXFx0XFxyXFxuXFxmXSooPzooWystXXwpW1xceDIwXFx0XFxyXFxuXFxmXSooXFxkKyl8KSlbXFx4MjBcXHRcXHJcXG5cXGZdKlxcKXwpIiwiaSIpLGJvb2w6UmVnRXhwKCJeKD86Y2hlY2tlZHxzZWxlY3RlZHxhc3luY3xhdXRvZm9jdXN8YXV0b3BsYXl8Y29udHJvbHN8ZGVmZXJ8ZGlzYWJsZWR8aGlkZGVufGlzbWFwfGxvb3B8bXVsdGlwbGV8b3BlbnxyZWFkb25seXxyZXF1aXJlZHxzY29wZWQpJCIsImkiKSxuZWVkc0NvbnRleHQ6UmVnRXhwKCJeW1xceDIwXFx0XFxyXFxuXFxmXSpbPit+XXw6KGV2ZW58b2RkfGVxfGd0fGx0fG50aHxmaXJzdHxsYXN0KSg\/OlxcKFtcXHgyMFxcdFxcclxcblxcZl0qKCg\/Oi1cXGQpP1xcZCopW1xceDIwXFx0XFxyXFxuXFxmXSpcXCl8KSg\/PVteLV18JCkiLAoiaSIpfSxmZD0vXig\/OmlucHV0fHNlbGVjdHx0ZXh0YXJlYXxidXR0b24pJC9pLGdkPS9eaFxkJC9pLGFkPS9eKD86IyhbXHctXSspfChcdyspfFwuKFtcdy1dKykpJC8sZGM9L1srfl0vLFRhPVJlZ0V4cCgiXFxcXFtcXGRhLWZBLUZdezEsNn1bXFx4MjBcXHRcXHJcXG5cXGZdP3xcXFxcKFteXFxyXFxuXFxmXSkiLCJnIiksVWE9ZnVuY3Rpb24oayxwKXtrPSIweCIray5zbGljZSgxKS02NTUzNjtyZXR1cm4gcHx8KDA+az9TdHJpbmcuZnJvbUNoYXJDb2RlKGsrNjU1MzYpOlN0cmluZy5mcm9tQ2hhckNvZGUoaz4+MTB8NTUyOTYsMTAyMyZrfDU2MzIwKSl9LGNkPWZ1bmN0aW9uKCl7dCgpfSxiZD1EKGZ1bmN0aW9uKGspe3JldHVybiEwPT09ay5kaXNhYmxlZCYmWChrLCJmaWVsZHNldCIpfSx7ZGlyOiJwYXJlbnROb2RlIixuZXh0OiJsZWdlbmQifSk7dHJ5e3RhLmFwcGx5KG9hPXlhLmNhbGwoUmEuY2hpbGROb2RlcyksUmEuY2hpbGROb2Rlcyksb2FbUmEuY2hpbGROb2Rlcy5sZW5ndGhdLm5vZGVUeXBlfWNhdGNoKGspe3RhPQp7YXBwbHk6ZnVuY3Rpb24ocCxxKXt1Yi5hcHBseShwLHlhLmNhbGwocSkpfSxjYWxsOmZ1bmN0aW9uKHApe3ViLmFwcGx5KHAseWEuY2FsbChhcmd1bWVudHMsMSkpfX19Zm9yKFEgaW4gYS5tYXRjaGVzPWZ1bmN0aW9uKGsscCl7cmV0dXJuIGEoayxudWxsLG51bGwscCl9LGEubWF0Y2hlc1NlbGVjdG9yPWZ1bmN0aW9uKGsscCl7aWYodChrKSwhKCF2YXx8WVtwKyIgIl18fGthJiZrYS50ZXN0KHApKSl0cnl7dmFyIHE9TWEuY2FsbChrLHApO2lmKHF8fE4uZGlzY29ubmVjdGVkTWF0Y2h8fGsuZG9jdW1lbnQmJjExIT09ay5kb2N1bWVudC5ub2RlVHlwZSlyZXR1cm4gcX1jYXRjaCh2KXtZKHAsITApfXJldHVybiAwPGEocCxaLG51bGwsW2tdKS5sZW5ndGh9LGEuY29udGFpbnM9ZnVuY3Rpb24oayxwKXtyZXR1cm4oay5vd25lckRvY3VtZW50fHxrKSE9WiYmdChrKSxkLmNvbnRhaW5zKGsscCl9LGEuYXR0cj1mdW5jdGlvbihrLHApeyhrLm93bmVyRG9jdW1lbnR8fGspIT1aJiZ0KGspOwp2YXIgcT1LLmF0dHJIYW5kbGVbcC50b0xvd2VyQ2FzZSgpXTtxPXEmJkZiLmNhbGwoSy5hdHRySGFuZGxlLHAudG9Mb3dlckNhc2UoKSk\/cShrLHAsIXZhKTp2b2lkIDA7cmV0dXJuIHZvaWQgMCE9PXE\/cTprLmdldEF0dHJpYnV0ZShwKX0sYS5lcnJvcj1mdW5jdGlvbihrKXt0aHJvdyBFcnJvcigiU3ludGF4IGVycm9yLCB1bnJlY29nbml6ZWQgZXhwcmVzc2lvbjogIitrKTt9LGQudW5pcXVlU29ydD1mdW5jdGlvbihrKXt2YXIgcCxxPVtdLHY9MCx5PTA7aWYoaWI9IU4uc29ydFN0YWJsZSxoYT0hTi5zb3J0U3RhYmxlJiZ5YS5jYWxsKGssMCksWWMuY2FsbChrLGxhKSxpYil7Zm9yKDtwPWtbeSsrXTspcD09PWtbeV0mJih2PXEucHVzaCh5KSk7Zm9yKDt2LS07KVpjLmNhbGwoayxxW3ZdLDEpfXJldHVybiBoYT1udWxsLGt9LGQuZm4udW5pcXVlU29ydD1mdW5jdGlvbigpe3JldHVybiB0aGlzLnB1c2hTdGFjayhkLnVuaXF1ZVNvcnQoeWEuYXBwbHkodGhpcykpKX0sKEs9ZC5leHByPQp7Y2FjaGVMZW5ndGg6NTAsY3JlYXRlUHNldWRvOmMsbWF0Y2g6WWIsYXR0ckhhbmRsZTp7fSxmaW5kOnt9LHJlbGF0aXZlOnsiPiI6e2RpcjoicGFyZW50Tm9kZSIsZmlyc3Q6ITB9LCIgIjp7ZGlyOiJwYXJlbnROb2RlIn0sIisiOntkaXI6InByZXZpb3VzU2libGluZyIsZmlyc3Q6ITB9LCJ+Ijp7ZGlyOiJwcmV2aW91c1NpYmxpbmcifX0scHJlRmlsdGVyOntBVFRSOmZ1bmN0aW9uKGspe3JldHVybiBrWzFdPWtbMV0ucmVwbGFjZShUYSxVYSksa1szXT0oa1szXXx8a1s0XXx8a1s1XXx8IiIpLnJlcGxhY2UoVGEsVWEpLCJ+PSI9PT1rWzJdJiYoa1szXT0iICIra1szXSsiICIpLGsuc2xpY2UoMCw0KX0sQ0hJTEQ6ZnVuY3Rpb24oayl7cmV0dXJuIGtbMV09a1sxXS50b0xvd2VyQ2FzZSgpLCJudGgiPT09a1sxXS5zbGljZSgwLDMpPyhrWzNdfHxhLmVycm9yKGtbMF0pLGtbNF09KyhrWzRdP2tbNV0rKGtbNl18fDEpOjIqKCJldmVuIj09PWtbM118fCJvZGQiPT09a1szXSkpLGtbNV09Cisoa1s3XStrWzhdfHwib2RkIj09PWtbM10pKTprWzNdJiZhLmVycm9yKGtbMF0pLGt9LFBTRVVETzpmdW5jdGlvbihrKXt2YXIgcCxxPSFrWzZdJiZrWzJdO3JldHVybiBZYi5DSElMRC50ZXN0KGtbMF0pP251bGw6KGtbM10\/a1syXT1rWzRdfHxrWzVdfHwiIjpxJiZmYy50ZXN0KHEpJiYocD1yKHEsITApKSYmKHA9cS5pbmRleE9mKCIpIixxLmxlbmd0aC1wKS1xLmxlbmd0aCkmJihrWzBdPWtbMF0uc2xpY2UoMCxwKSxrWzJdPXEuc2xpY2UoMCxwKSksay5zbGljZSgwLDMpKX19LGZpbHRlcjp7VEFHOmZ1bmN0aW9uKGspe3ZhciBwPWsucmVwbGFjZShUYSxVYSkudG9Mb3dlckNhc2UoKTtyZXR1cm4iKiI9PT1rP2Z1bmN0aW9uKCl7cmV0dXJuITB9OmZ1bmN0aW9uKHEpe3JldHVybiBYKHEscCl9fSxDTEFTUzpmdW5jdGlvbihrKXt2YXIgcD1kYltrKyIgIl07cmV0dXJuIHB8fChwPW5ldyBSZWdFeHAoIihefFtcXHgyMFxcdFxcclxcblxcZl0pIitrKyIoW1xceDIwXFx0XFxyXFxuXFxmXXwkKSIpLApkYihrLGZ1bmN0aW9uKHEpe3JldHVybiBwLnRlc3QoInN0cmluZyI9PXR5cGVvZiBxLmNsYXNzTmFtZSYmcS5jbGFzc05hbWV8fCJ1bmRlZmluZWQiIT10eXBlb2YgcS5nZXRBdHRyaWJ1dGUmJnEuZ2V0QXR0cmlidXRlKCJjbGFzcyIpfHwiIil9KSl9LEFUVFI6ZnVuY3Rpb24oayxwLHEpe3JldHVybiBmdW5jdGlvbih2KXt2PWEuYXR0cih2LGspO3JldHVybiBudWxsPT12PyIhPSI9PT1wOiFwfHwodis9IiIsIj0iPT09cD92PT09cToiIT0iPT09cD92IT09cToiXj0iPT09cD9xJiYwPT09di5pbmRleE9mKHEpOiIqPSI9PT1wP3EmJi0xPHYuaW5kZXhPZihxKToiJD0iPT09cD9xJiZ2LnNsaWNlKC1xLmxlbmd0aCk9PT1xOiJ+PSI9PT1wPy0xPCgiICIrdi5yZXBsYWNlKElhLCIgIikrIiAiKS5pbmRleE9mKHEpOiJ8PSI9PT1wJiYodj09PXF8fHYuc2xpY2UoMCxxLmxlbmd0aCsxKT09PXErIi0iKSl9fSxDSElMRDpmdW5jdGlvbihrLHAscSx2LHkpe3ZhciBFPSJudGgiIT09ay5zbGljZSgwLAozKSxBPSJsYXN0IiE9PWsuc2xpY2UoLTQpLEk9Im9mLXR5cGUiPT09cDtyZXR1cm4gMT09PXYmJjA9PT15P2Z1bmN0aW9uKEIpe3JldHVybiEhQi5wYXJlbnROb2RlfTpmdW5jdGlvbihCLEosUil7dmFyIFQsVixpYTtKPUUhPT1BPyJuZXh0U2libGluZyI6InByZXZpb3VzU2libGluZyI7dmFyIHBhPUIucGFyZW50Tm9kZSxuYT1JJiZCLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCksRWE9IVImJiFJLGNhPSExO2lmKHBhKXtpZihFKXtmb3IoO0o7KXtmb3IoVj1CO1Y9VltKXTspaWYoST9YKFYsbmEpOjE9PT1WLm5vZGVUeXBlKXJldHVybiExO3ZhciBBYT1KPSJvbmx5Ij09PWsmJiFBYSYmIm5leHRTaWJsaW5nIn1yZXR1cm4hMH1pZihBYT1bQT9wYS5maXJzdENoaWxkOnBhLmxhc3RDaGlsZF0sQSYmRWEpZm9yKGNhPShpYT0oVD0oUj1wYVtXXXx8KHBhW1ddPXt9KSlba118fFtdKVswXT09PWZhJiZUWzFdKSYmVFsyXSxWPWlhJiZwYS5jaGlsZE5vZGVzW2lhXTtWPSsraWEmJlYmJlZbSl18fAooY2E9aWE9MCl8fEFhLnBvcCgpOyl7aWYoMT09PVYubm9kZVR5cGUmJisrY2EmJlY9PT1CKXtSW2tdPVtmYSxpYSxjYV07YnJlYWt9fWVsc2UgaWYoRWEmJihjYT1pYT0oVD0oQltXXXx8KEJbV109e30pKVtrXXx8W10pWzBdPT09ZmEmJlRbMV0pLCExPT09Y2EpZm9yKDsoVj0rK2lhJiZWJiZWW0pdfHwoY2E9aWE9MCl8fEFhLnBvcCgpKSYmKChJPyFYKFYsbmEpOjEhPT1WLm5vZGVUeXBlKXx8ISsrY2F8fChFYSYmKChSPVZbV118fChWW1ddPXt9KSlba109W2ZhLGNhXSksViE9PUIpKTspO3JldHVybihjYS09eSk9PT12fHwwPT1jYSV2JiYwPD1jYS92fX19LFBTRVVETzpmdW5jdGlvbihrLHApe3ZhciBxLHY9Sy5wc2V1ZG9zW2tdfHxLLnNldEZpbHRlcnNbay50b0xvd2VyQ2FzZSgpXXx8YS5lcnJvcigidW5zdXBwb3J0ZWQgcHNldWRvOiAiK2spO3JldHVybiB2W1ddP3YocCk6MTx2Lmxlbmd0aD8ocT1bayxrLCIiLHBdLEsuc2V0RmlsdGVycy5oYXNPd25Qcm9wZXJ0eShrLnRvTG93ZXJDYXNlKCkpPwpjKGZ1bmN0aW9uKHksRSl7Zm9yKHZhciBBLEk9dih5LHApLEI9SS5sZW5ndGg7Qi0tOyl5W0E9TmEuY2FsbCh5LElbQl0pXT0hKEVbQV09SVtCXSl9KTpmdW5jdGlvbih5KXtyZXR1cm4gdih5LDAscSl9KTp2fX0scHNldWRvczp7bm90OmMoZnVuY3Rpb24oayl7dmFyIHA9W10scT1bXSx2PXFhKGsucmVwbGFjZSh6YiwiJDEiKSk7cmV0dXJuIHZbV10\/YyhmdW5jdGlvbih5LEUsQSxJKXt2YXIgQjtBPXYoeSxudWxsLEksW10pO2ZvcihJPXkubGVuZ3RoO0ktLTspKEI9QVtJXSkmJih5W0ldPSEoRVtJXT1CKSl9KTpmdW5jdGlvbih5LEUsQSl7cmV0dXJuIHBbMF09eSx2KHAsbnVsbCxBLHEpLHBbMF09bnVsbCwhcS5wb3AoKX19KSxoYXM6YyhmdW5jdGlvbihrKXtyZXR1cm4gZnVuY3Rpb24ocCl7cmV0dXJuIDA8YShrLHApLmxlbmd0aH19KSxjb250YWluczpjKGZ1bmN0aW9uKGspe3JldHVybiBrPWsucmVwbGFjZShUYSxVYSksZnVuY3Rpb24ocCl7cmV0dXJuLTE8KHAudGV4dENvbnRlbnR8fApkLnRleHQocCkpLmluZGV4T2Yoayl9fSksbGFuZzpjKGZ1bmN0aW9uKGspe3JldHVybiBlZC50ZXN0KGt8fCIiKXx8YS5lcnJvcigidW5zdXBwb3J0ZWQgbGFuZzogIitrKSxrPWsucmVwbGFjZShUYSxVYSkudG9Mb3dlckNhc2UoKSxmdW5jdGlvbihwKXt2YXIgcTtkbyBpZihxPXZhP3AubGFuZzpwLmdldEF0dHJpYnV0ZSgieG1sOmxhbmciKXx8cC5nZXRBdHRyaWJ1dGUoImxhbmciKSlyZXR1cm4ocT1xLnRvTG93ZXJDYXNlKCkpPT09a3x8MD09PXEuaW5kZXhPZihrKyItIik7d2hpbGUoKHA9cC5wYXJlbnROb2RlKSYmMT09PXAubm9kZVR5cGUpO3JldHVybiExfX0pLHRhcmdldDpmdW5jdGlvbihrKXt2YXIgcD1uLmxvY2F0aW9uJiZuLmxvY2F0aW9uLmhhc2g7cmV0dXJuIHAmJnAuc2xpY2UoMSk9PT1rLmlkfSxyb290OmZ1bmN0aW9uKGspe3JldHVybiBrPT09cmF9LGZvY3VzOmZ1bmN0aW9uKGspe2E6e3RyeXt2YXIgcD1aLmFjdGl2ZUVsZW1lbnQ7YnJlYWsgYX1jYXRjaChxKXt9cD0Kdm9pZCAwfXJldHVybiBrPT09cCYmWi5oYXNGb2N1cygpJiYhIShrLnR5cGV8fGsuaHJlZnx8fmsudGFiSW5kZXgpfSxlbmFibGVkOmgoITEpLGRpc2FibGVkOmgoITApLGNoZWNrZWQ6ZnVuY3Rpb24oayl7cmV0dXJuIFgoaywiaW5wdXQiKSYmISFrLmNoZWNrZWR8fFgoaywib3B0aW9uIikmJiEhay5zZWxlY3RlZH0sc2VsZWN0ZWQ6ZnVuY3Rpb24oayl7cmV0dXJuIGsucGFyZW50Tm9kZSYmay5wYXJlbnROb2RlLnNlbGVjdGVkSW5kZXgsITA9PT1rLnNlbGVjdGVkfSxlbXB0eTpmdW5jdGlvbihrKXtmb3Ioaz1rLmZpcnN0Q2hpbGQ7aztrPWsubmV4dFNpYmxpbmcpaWYoNj5rLm5vZGVUeXBlKXJldHVybiExO3JldHVybiEwfSxwYXJlbnQ6ZnVuY3Rpb24oayl7cmV0dXJuIUsucHNldWRvcy5lbXB0eShrKX0saGVhZGVyOmZ1bmN0aW9uKGspe3JldHVybiBnZC50ZXN0KGsubm9kZU5hbWUpfSxpbnB1dDpmdW5jdGlvbihrKXtyZXR1cm4gZmQudGVzdChrLm5vZGVOYW1lKX0sYnV0dG9uOmZ1bmN0aW9uKGspe3JldHVybiBYKGssCiJpbnB1dCIpJiYiYnV0dG9uIj09PWsudHlwZXx8WChrLCJidXR0b24iKX0sdGV4dDpmdW5jdGlvbihrKXt2YXIgcDtyZXR1cm4gWChrLCJpbnB1dCIpJiYidGV4dCI9PT1rLnR5cGUmJihudWxsPT0ocD1rLmdldEF0dHJpYnV0ZSgidHlwZSIpKXx8InRleHQiPT09cC50b0xvd2VyQ2FzZSgpKX0sZmlyc3Q6bShmdW5jdGlvbigpe3JldHVyblswXX0pLGxhc3Q6bShmdW5jdGlvbihrLHApe3JldHVybltwLTFdfSksZXE6bShmdW5jdGlvbihrLHAscSl7cmV0dXJuWzA+cT9xK3A6cV19KSxldmVuOm0oZnVuY3Rpb24oayxwKXtmb3IodmFyIHE9MDtxPHA7cSs9MilrLnB1c2gocSk7cmV0dXJuIGt9KSxvZGQ6bShmdW5jdGlvbihrLHApe2Zvcih2YXIgcT0xO3E8cDtxKz0yKWsucHVzaChxKTtyZXR1cm4ga30pLGx0Om0oZnVuY3Rpb24oayxwLHEpe2ZvcihwPTA+cT9xK3A6cDxxP3A6cTswPD0tLXA7KWsucHVzaChwKTtyZXR1cm4ga30pLGd0Om0oZnVuY3Rpb24oayxwLHEpe2ZvcihxPTA+cT8KcStwOnE7KytxPHA7KWsucHVzaChxKTtyZXR1cm4ga30pfX0pLnBzZXVkb3MubnRoPUsucHNldWRvcy5lcSx7cmFkaW86ITAsY2hlY2tib3g6ITAsZmlsZTohMCxwYXNzd29yZDohMCxpbWFnZTohMH0pSy5wc2V1ZG9zW1FdPWYoUSk7Zm9yKFEgaW57c3VibWl0OiEwLHJlc2V0OiEwfSlLLnBzZXVkb3NbUV09ZyhRKTt3LnByb3RvdHlwZT1LLmZpbHRlcnM9Sy5wc2V1ZG9zO0suc2V0RmlsdGVycz1uZXcgdztOLnNvcnRTdGFibGU9Vy5zcGxpdCgiIikuc29ydChsYSkuam9pbigiIik9PT1XO3QoKTtOLnNvcnREZXRhY2hlZD1lKGZ1bmN0aW9uKGspe3JldHVybiAxJmsuY29tcGFyZURvY3VtZW50UG9zaXRpb24oWi5jcmVhdGVFbGVtZW50KCJmaWVsZHNldCIpKX0pO2QuZmluZD1hO2QuZXhwclsiOiJdPWQuZXhwci5wc2V1ZG9zO2QudW5pcXVlPWQudW5pcXVlU29ydDthLmNvbXBpbGU9cWE7YS5zZWxlY3Q9U2E7YS5zZXREb2N1bWVudD10O2EuZXNjYXBlPWQuZXNjYXBlU2VsZWN0b3I7CmEuZ2V0VGV4dD1kLnRleHQ7YS5pc1hNTD1kLmlzWE1MRG9jO2Euc2VsZWN0b3JzPWQuZXhwcjthLnN1cHBvcnQ9ZC5zdXBwb3J0O2EudW5pcXVlU29ydD1kLnVuaXF1ZVNvcnR9KCk7dmFyIHdiPWZ1bmN0aW9uKGEsYixjKXtmb3IodmFyIGU9W10sZj12b2lkIDAhPT1jOyhhPWFbYl0pJiY5IT09YS5ub2RlVHlwZTspaWYoMT09PWEubm9kZVR5cGUpe2lmKGYmJmQoYSkuaXMoYykpYnJlYWs7ZS5wdXNoKGEpfXJldHVybiBlfSx3Yz1mdW5jdGlvbihhLGIpe2Zvcih2YXIgYz1bXTthO2E9YS5uZXh0U2libGluZykxPT09YS5ub2RlVHlwZSYmYSE9PWImJmMucHVzaChhKTtyZXR1cm4gY30seGM9ZC5leHByLm1hdGNoLm5lZWRzQ29udGV4dCx5Yz0vXjwoW2Etel1bXlwvXDA+Olx4MjBcdFxyXG5cZl0qKVtceDIwXHRcclxuXGZdKlwvPz4oPzo8XC9cMT58KSQvaTtkLmZpbHRlcj1mdW5jdGlvbihhLGIsYyl7dmFyIGU9YlswXTtyZXR1cm4gYyYmKGE9Ijpub3QoIithKyIpIiksMT09PWIubGVuZ3RoJiYKMT09PWUubm9kZVR5cGU\/ZC5maW5kLm1hdGNoZXNTZWxlY3RvcihlLGEpP1tlXTpbXTpkLmZpbmQubWF0Y2hlcyhhLGQuZ3JlcChiLGZ1bmN0aW9uKGYpe3JldHVybiAxPT09Zi5ub2RlVHlwZX0pKX07ZC5mbi5leHRlbmQoe2ZpbmQ6ZnVuY3Rpb24oYSl7dmFyIGIsYz10aGlzLmxlbmd0aCxlPXRoaXM7aWYoInN0cmluZyIhPXR5cGVvZiBhKXJldHVybiB0aGlzLnB1c2hTdGFjayhkKGEpLmZpbHRlcihmdW5jdGlvbigpe2ZvcihiPTA7YjxjO2IrKylpZihkLmNvbnRhaW5zKGVbYl0sdGhpcykpcmV0dXJuITB9KSk7dmFyIGY9dGhpcy5wdXNoU3RhY2soW10pO2ZvcihiPTA7YjxjO2IrKylkLmZpbmQoYSxlW2JdLGYpO3JldHVybiAxPGM\/ZC51bmlxdWVTb3J0KGYpOmZ9LGZpbHRlcjpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5wdXNoU3RhY2soamEodGhpcyxhfHxbXSwhMSkpfSxub3Q6ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMucHVzaFN0YWNrKGphKHRoaXMsYXx8W10sITApKX0saXM6ZnVuY3Rpb24oYSl7cmV0dXJuISFqYSh0aGlzLAoic3RyaW5nIj09dHlwZW9mIGEmJnhjLnRlc3QoYSk\/ZChhKTphfHxbXSwhMSkubGVuZ3RofX0pO3ZhciBoZD0vXig\/OlxzKig8W1x3XFddKz4pW14+XSp8IyhbXHctXSspKSQvOyhkLmZuLmluaXQ9ZnVuY3Rpb24oYSxiLGMpe3ZhciBlLGY7aWYoIWEpcmV0dXJuIHRoaXM7aWYoYz1jfHxpZCwic3RyaW5nIj09dHlwZW9mIGEpe2lmKCEoZT0iPCI9PT1hWzBdJiYiPiI9PT1hW2EubGVuZ3RoLTFdJiYzPD1hLmxlbmd0aD9bbnVsbCxhLG51bGxdOmhkLmV4ZWMoYSkpfHwhZVsxXSYmYilyZXR1cm4hYnx8Yi5qcXVlcnk\/KGJ8fGMpLmZpbmQoYSk6dGhpcy5jb25zdHJ1Y3RvcihiKS5maW5kKGEpO2lmKGVbMV0pe2lmKGI9YiBpbnN0YW5jZW9mIGQ\/YlswXTpiLGQubWVyZ2UodGhpcyxkLnBhcnNlSFRNTChlWzFdLGImJmIubm9kZVR5cGU\/Yi5vd25lckRvY3VtZW50fHxiOkwsITApKSx5Yy50ZXN0KGVbMV0pJiZkLmlzUGxhaW5PYmplY3QoYikpZm9yKGUgaW4gYilNKHRoaXNbZV0pP3RoaXNbZV0oYltlXSk6CnRoaXMuYXR0cihlLGJbZV0pO3JldHVybiB0aGlzfXJldHVybihmPUwuZ2V0RWxlbWVudEJ5SWQoZVsyXSkpJiYodGhpc1swXT1mLHRoaXMubGVuZ3RoPTEpLHRoaXN9cmV0dXJuIGEubm9kZVR5cGU\/KHRoaXNbMF09YSx0aGlzLmxlbmd0aD0xLHRoaXMpOk0oYSk\/dm9pZCAwIT09Yy5yZWFkeT9jLnJlYWR5KGEpOmEoZCk6ZC5tYWtlQXJyYXkoYSx0aGlzKX0pLnByb3RvdHlwZT1kLmZuO3ZhciBpZD1kKEwpLGpkPS9eKD86cGFyZW50c3xwcmV2KD86VW50aWx8QWxsKSkvLGtkPXtjaGlsZHJlbjohMCxjb250ZW50czohMCxuZXh0OiEwLHByZXY6ITB9O2QuZm4uZXh0ZW5kKHtoYXM6ZnVuY3Rpb24oYSl7dmFyIGI9ZChhLHRoaXMpLGM9Yi5sZW5ndGg7cmV0dXJuIHRoaXMuZmlsdGVyKGZ1bmN0aW9uKCl7Zm9yKHZhciBlPTA7ZTxjO2UrKylpZihkLmNvbnRhaW5zKHRoaXMsYltlXSkpcmV0dXJuITB9KX0sY2xvc2VzdDpmdW5jdGlvbihhLGIpe3ZhciBjLGU9MCxmPXRoaXMubGVuZ3RoLApnPVtdLGg9InN0cmluZyIhPXR5cGVvZiBhJiZkKGEpO2lmKCF4Yy50ZXN0KGEpKWZvcig7ZTxmO2UrKylmb3IoYz10aGlzW2VdO2MmJmMhPT1iO2M9Yy5wYXJlbnROb2RlKWlmKDExPmMubm9kZVR5cGUmJihoPy0xPGguaW5kZXgoYyk6MT09PWMubm9kZVR5cGUmJmQuZmluZC5tYXRjaGVzU2VsZWN0b3IoYyxhKSkpe2cucHVzaChjKTticmVha31yZXR1cm4gdGhpcy5wdXNoU3RhY2soMTxnLmxlbmd0aD9kLnVuaXF1ZVNvcnQoZyk6Zyl9LGluZGV4OmZ1bmN0aW9uKGEpe3JldHVybiBhPyJzdHJpbmciPT10eXBlb2YgYT9OYS5jYWxsKGQoYSksdGhpc1swXSk6TmEuY2FsbCh0aGlzLGEuanF1ZXJ5P2FbMF06YSk6dGhpc1swXSYmdGhpc1swXS5wYXJlbnROb2RlP3RoaXMuZmlyc3QoKS5wcmV2QWxsKCkubGVuZ3RoOi0xfSxhZGQ6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gdGhpcy5wdXNoU3RhY2soZC51bmlxdWVTb3J0KGQubWVyZ2UodGhpcy5nZXQoKSxkKGEsYikpKSl9LGFkZEJhY2s6ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuYWRkKG51bGw9PQphP3RoaXMucHJldk9iamVjdDp0aGlzLnByZXZPYmplY3QuZmlsdGVyKGEpKX19KTtkLmVhY2goe3BhcmVudDpmdW5jdGlvbihhKXtyZXR1cm4oYT1hLnBhcmVudE5vZGUpJiYxMSE9PWEubm9kZVR5cGU\/YTpudWxsfSxwYXJlbnRzOmZ1bmN0aW9uKGEpe3JldHVybiB3YihhLCJwYXJlbnROb2RlIil9LHBhcmVudHNVbnRpbDpmdW5jdGlvbihhLGIsYyl7cmV0dXJuIHdiKGEsInBhcmVudE5vZGUiLGMpfSxuZXh0OmZ1bmN0aW9uKGEpe3JldHVybiBsYihhLCJuZXh0U2libGluZyIpfSxwcmV2OmZ1bmN0aW9uKGEpe3JldHVybiBsYihhLCJwcmV2aW91c1NpYmxpbmciKX0sbmV4dEFsbDpmdW5jdGlvbihhKXtyZXR1cm4gd2IoYSwibmV4dFNpYmxpbmciKX0scHJldkFsbDpmdW5jdGlvbihhKXtyZXR1cm4gd2IoYSwicHJldmlvdXNTaWJsaW5nIil9LG5leHRVbnRpbDpmdW5jdGlvbihhLGIsYyl7cmV0dXJuIHdiKGEsIm5leHRTaWJsaW5nIixjKX0scHJldlVudGlsOmZ1bmN0aW9uKGEsYiwKYyl7cmV0dXJuIHdiKGEsInByZXZpb3VzU2libGluZyIsYyl9LHNpYmxpbmdzOmZ1bmN0aW9uKGEpe3JldHVybiB3YygoYS5wYXJlbnROb2RlfHx7fSkuZmlyc3RDaGlsZCxhKX0sY2hpbGRyZW46ZnVuY3Rpb24oYSl7cmV0dXJuIHdjKGEuZmlyc3RDaGlsZCl9LGNvbnRlbnRzOmZ1bmN0aW9uKGEpe3JldHVybiBudWxsIT1hLmNvbnRlbnREb2N1bWVudCYmc2MoYS5jb250ZW50RG9jdW1lbnQpP2EuY29udGVudERvY3VtZW50OihYKGEsInRlbXBsYXRlIikmJihhPWEuY29udGVudHx8YSksZC5tZXJnZShbXSxhLmNoaWxkTm9kZXMpKX19LGZ1bmN0aW9uKGEsYil7ZC5mblthXT1mdW5jdGlvbihjLGUpe3ZhciBmPWQubWFwKHRoaXMsYixjKTtyZXR1cm4iVW50aWwiIT09YS5zbGljZSgtNSkmJihlPWMpLGUmJiJzdHJpbmciPT10eXBlb2YgZSYmKGY9ZC5maWx0ZXIoZSxmKSksMTx0aGlzLmxlbmd0aCYmKGtkW2FdfHxkLnVuaXF1ZVNvcnQoZiksamQudGVzdChhKSYmZi5yZXZlcnNlKCkpLAp0aGlzLnB1c2hTdGFjayhmKX19KTt2YXIgTGE9L1teXHgyMFx0XHJcblxmXSsvZztkLkNhbGxiYWNrcz1mdW5jdGlvbihhKXt2YXIgYixjO2E9InN0cmluZyI9PXR5cGVvZiBhPyhiPWEsYz17fSxkLmVhY2goYi5tYXRjaChMYSl8fFtdLGZ1bmN0aW9uKHosRCl7Y1tEXT0hMH0pLGMpOmQuZXh0ZW5kKHt9LGEpO3ZhciBlLGYsZyxoLG09W10sbD1bXSx0PS0xLHc9ZnVuY3Rpb24oKXtoPWh8fGEub25jZTtmb3IoZz1lPSEwO2wubGVuZ3RoO3Q9LTEpZm9yKGY9bC5zaGlmdCgpOysrdDxtLmxlbmd0aDspITE9PT1tW3RdLmFwcGx5KGZbMF0sZlsxXSkmJmEuc3RvcE9uRmFsc2UmJih0PW0ubGVuZ3RoLGY9ITEpO2EubWVtb3J5fHwoZj0hMSk7ZT0hMTtoJiYobT1mP1tdOiIiKX0scj17YWRkOmZ1bmN0aW9uKCl7cmV0dXJuIG0mJihmJiYhZSYmKHQ9bS5sZW5ndGgtMSxsLnB1c2goZikpLGZ1bmN0aW9uIEYoRCl7ZC5lYWNoKEQsZnVuY3Rpb24oTyxhYSl7TShhYSk\/YS51bmlxdWUmJnIuaGFzKGFhKXx8Cm0ucHVzaChhYSk6YWEmJmFhLmxlbmd0aCYmInN0cmluZyIhPT1VKGFhKSYmRihhYSl9KX0oYXJndW1lbnRzKSxmJiYhZSYmdygpKSx0aGlzfSxyZW1vdmU6ZnVuY3Rpb24oKXtyZXR1cm4gZC5lYWNoKGFyZ3VtZW50cyxmdW5jdGlvbih6LEQpe2Zvcih2YXIgRjstMTwoRj1kLmluQXJyYXkoRCxtLEYpKTspbS5zcGxpY2UoRiwxKSxGPD10JiZ0LS19KSx0aGlzfSxoYXM6ZnVuY3Rpb24oeil7cmV0dXJuIHo\/LTE8ZC5pbkFycmF5KHosbSk6MDxtLmxlbmd0aH0sZW1wdHk6ZnVuY3Rpb24oKXtyZXR1cm4gbSYmKG09W10pLHRoaXN9LGRpc2FibGU6ZnVuY3Rpb24oKXtyZXR1cm4gaD1sPVtdLG09Zj0iIix0aGlzfSxkaXNhYmxlZDpmdW5jdGlvbigpe3JldHVybiFtfSxsb2NrOmZ1bmN0aW9uKCl7cmV0dXJuIGg9bD1bXSxmfHxlfHwobT1mPSIiKSx0aGlzfSxsb2NrZWQ6ZnVuY3Rpb24oKXtyZXR1cm4hIWh9LGZpcmVXaXRoOmZ1bmN0aW9uKHosRCl7cmV0dXJuIGh8fChEPVt6LChEPUR8fApbXSkuc2xpY2U\/RC5zbGljZSgpOkRdLGwucHVzaChEKSxlfHx3KCkpLHRoaXN9LGZpcmU6ZnVuY3Rpb24oKXtyZXR1cm4gci5maXJlV2l0aCh0aGlzLGFyZ3VtZW50cyksdGhpc30sZmlyZWQ6ZnVuY3Rpb24oKXtyZXR1cm4hIWd9fTtyZXR1cm4gcn07ZC5leHRlbmQoe0RlZmVycmVkOmZ1bmN0aW9uKGEpe3ZhciBiPVtbIm5vdGlmeSIsInByb2dyZXNzIixkLkNhbGxiYWNrcygibWVtb3J5IiksZC5DYWxsYmFja3MoIm1lbW9yeSIpLDJdLFsicmVzb2x2ZSIsImRvbmUiLGQuQ2FsbGJhY2tzKCJvbmNlIG1lbW9yeSIpLGQuQ2FsbGJhY2tzKCJvbmNlIG1lbW9yeSIpLDAsInJlc29sdmVkIl0sWyJyZWplY3QiLCJmYWlsIixkLkNhbGxiYWNrcygib25jZSBtZW1vcnkiKSxkLkNhbGxiYWNrcygib25jZSBtZW1vcnkiKSwxLCJyZWplY3RlZCJdXSxjPSJwZW5kaW5nIixlPXtzdGF0ZTpmdW5jdGlvbigpe3JldHVybiBjfSxhbHdheXM6ZnVuY3Rpb24oKXtyZXR1cm4gZi5kb25lKGFyZ3VtZW50cykuZmFpbChhcmd1bWVudHMpLAp0aGlzfSwiY2F0Y2giOmZ1bmN0aW9uKGcpe3JldHVybiBlLnRoZW4obnVsbCxnKX0scGlwZTpmdW5jdGlvbigpe3ZhciBnPWFyZ3VtZW50cztyZXR1cm4gZC5EZWZlcnJlZChmdW5jdGlvbihoKXtkLmVhY2goYixmdW5jdGlvbihtLGwpe3ZhciB0PU0oZ1tsWzRdXSkmJmdbbFs0XV07ZltsWzFdXShmdW5jdGlvbigpe3ZhciB3PXQmJnQuYXBwbHkodGhpcyxhcmd1bWVudHMpO3cmJk0ody5wcm9taXNlKT93LnByb21pc2UoKS5wcm9ncmVzcyhoLm5vdGlmeSkuZG9uZShoLnJlc29sdmUpLmZhaWwoaC5yZWplY3QpOmhbbFswXSsiV2l0aCJdKHRoaXMsdD9bd106YXJndW1lbnRzKX0pfSk7Zz1udWxsfSkucHJvbWlzZSgpfSx0aGVuOmZ1bmN0aW9uKGcsaCxtKXtmdW5jdGlvbiBsKHcscix6LEQpe3JldHVybiBmdW5jdGlvbigpe3ZhciBGPXRoaXMsTz1hcmd1bWVudHMsYWE9ZnVuY3Rpb24oKXt2YXIgcWE7aWYoISh3PHQpKXtpZigocWE9ei5hcHBseShGLE8pKT09PXIucHJvbWlzZSgpKXRocm93IG5ldyBUeXBlRXJyb3IoIlRoZW5hYmxlIHNlbGYtcmVzb2x1dGlvbiIpOwp2YXIgU2E9cWEmJigib2JqZWN0Ij09dHlwZW9mIHFhfHwiZnVuY3Rpb24iPT10eXBlb2YgcWEpJiZxYS50aGVuO00oU2EpP0Q\/U2EuY2FsbChxYSxsKHQscixZYSxEKSxsKHQscixaYSxEKSk6KHQrKyxTYS5jYWxsKHFhLGwodCxyLFlhLEQpLGwodCxyLFphLEQpLGwodCxyLFlhLHIubm90aWZ5V2l0aCkpKTooeiE9PVlhJiYoRj12b2lkIDAsTz1bcWFdKSwoRHx8ci5yZXNvbHZlV2l0aCkoRixPKSl9fSxHYT1EP2FhOmZ1bmN0aW9uKCl7dHJ5e2FhKCl9Y2F0Y2gocWEpe2QuRGVmZXJyZWQuZXhjZXB0aW9uSG9vayYmZC5EZWZlcnJlZC5leGNlcHRpb25Ib29rKHFhLEdhLmVycm9yKSx0PD13KzEmJih6IT09WmEmJihGPXZvaWQgMCxPPVtxYV0pLHIucmVqZWN0V2l0aChGLE8pKX19O3c\/R2EoKTooZC5EZWZlcnJlZC5nZXRFcnJvckhvb2s\/R2EuZXJyb3I9ZC5EZWZlcnJlZC5nZXRFcnJvckhvb2soKTpkLkRlZmVycmVkLmdldFN0YWNrSG9vayYmKEdhLmVycm9yPWQuRGVmZXJyZWQuZ2V0U3RhY2tIb29rKCkpLApuLnNldFRpbWVvdXQoR2EpKX19dmFyIHQ9MDtyZXR1cm4gZC5EZWZlcnJlZChmdW5jdGlvbih3KXtiWzBdWzNdLmFkZChsKDAsdyxNKG0pP206WWEsdy5ub3RpZnlXaXRoKSk7YlsxXVszXS5hZGQobCgwLHcsTShnKT9nOllhKSk7YlsyXVszXS5hZGQobCgwLHcsTShoKT9oOlphKSl9KS5wcm9taXNlKCl9LHByb21pc2U6ZnVuY3Rpb24oZyl7cmV0dXJuIG51bGwhPWc\/ZC5leHRlbmQoZyxlKTplfX0sZj17fTtyZXR1cm4gZC5lYWNoKGIsZnVuY3Rpb24oZyxoKXt2YXIgbT1oWzJdLGw9aFs1XTtlW2hbMV1dPW0uYWRkO2wmJm0uYWRkKGZ1bmN0aW9uKCl7Yz1sfSxiWzMtZ11bMl0uZGlzYWJsZSxiWzMtZ11bM10uZGlzYWJsZSxiWzBdWzJdLmxvY2ssYlswXVszXS5sb2NrKTttLmFkZChoWzNdLmZpcmUpO2ZbaFswXV09ZnVuY3Rpb24oKXtyZXR1cm4gZltoWzBdKyJXaXRoIl0odGhpcz09PWY\/dm9pZCAwOnRoaXMsYXJndW1lbnRzKSx0aGlzfTtmW2hbMF0rIldpdGgiXT1tLmZpcmVXaXRofSksCmUucHJvbWlzZShmKSxhJiZhLmNhbGwoZixmKSxmfSx3aGVuOmZ1bmN0aW9uKGEpe3ZhciBiPWFyZ3VtZW50cy5sZW5ndGgsYz1iLGU9QXJyYXkoYyksZj15YS5jYWxsKGFyZ3VtZW50cyksZz1kLkRlZmVycmVkKCksaD1mdW5jdGlvbihtKXtyZXR1cm4gZnVuY3Rpb24obCl7ZVttXT10aGlzO2ZbbV09MTxhcmd1bWVudHMubGVuZ3RoP3lhLmNhbGwoYXJndW1lbnRzKTpsOy0tYnx8Zy5yZXNvbHZlV2l0aChlLGYpfX07aWYoMT49YiYmKG1iKGEsZy5kb25lKGgoYykpLnJlc29sdmUsZy5yZWplY3QsIWIpLCJwZW5kaW5nIj09PWcuc3RhdGUoKXx8TShmW2NdJiZmW2NdLnRoZW4pKSlyZXR1cm4gZy50aGVuKCk7Zm9yKDtjLS07KW1iKGZbY10saChjKSxnLnJlamVjdCk7cmV0dXJuIGcucHJvbWlzZSgpfX0pO3ZhciBsZD0vXihFdmFsfEludGVybmFsfFJhbmdlfFJlZmVyZW5jZXxTeW50YXh8VHlwZXxVUkkpRXJyb3IkLztkLkRlZmVycmVkLmV4Y2VwdGlvbkhvb2s9ZnVuY3Rpb24oYSxiKXtuLmNvbnNvbGUmJgpuLmNvbnNvbGUud2FybiYmYSYmbGQudGVzdChhLm5hbWUpJiZuLmNvbnNvbGUud2FybigialF1ZXJ5LkRlZmVycmVkIGV4Y2VwdGlvbjogIithLm1lc3NhZ2UsYS5zdGFjayxiKX07ZC5yZWFkeUV4Y2VwdGlvbj1mdW5jdGlvbihhKXtuLnNldFRpbWVvdXQoZnVuY3Rpb24oKXt0aHJvdyBhO30pfTt2YXIgZ2M9ZC5EZWZlcnJlZCgpO2QuZm4ucmVhZHk9ZnVuY3Rpb24oYSl7cmV0dXJuIGdjLnRoZW4oYSlbImNhdGNoIl0oZnVuY3Rpb24oYil7ZC5yZWFkeUV4Y2VwdGlvbihiKX0pLHRoaXN9O2QuZXh0ZW5kKHtpc1JlYWR5OiExLHJlYWR5V2FpdDoxLHJlYWR5OmZ1bmN0aW9uKGEpeyghMD09PWE\/LS1kLnJlYWR5V2FpdDpkLmlzUmVhZHkpfHwoZC5pc1JlYWR5PSEwKSE9PWEmJjA8LS1kLnJlYWR5V2FpdHx8Z2MucmVzb2x2ZVdpdGgoTCxbZF0pfX0pO2QucmVhZHkudGhlbj1nYy50aGVuOyJjb21wbGV0ZSI9PT1MLnJlYWR5U3RhdGV8fCJsb2FkaW5nIiE9PUwucmVhZHlTdGF0ZSYmIUwuZG9jdW1lbnRFbGVtZW50LmRvU2Nyb2xsPwpuLnNldFRpbWVvdXQoZC5yZWFkeSk6KEwuYWRkRXZlbnRMaXN0ZW5lcigiRE9NQ29udGVudExvYWRlZCIsT2EpLG4uYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsT2EpKTt2YXIgWGE9ZnVuY3Rpb24oYSxiLGMsZSxmLGcsaCl7dmFyIG09MCxsPWEubGVuZ3RoLHQ9bnVsbD09YztpZigib2JqZWN0Ij09PVUoYykpZm9yKG0gaW4gZj0hMCxjKVhhKGEsYixtLGNbbV0sITAsZyxoKTtlbHNlIGlmKHZvaWQgMCE9PWUmJihmPSEwLE0oZSl8fChoPSEwKSx0JiYoaD8oYi5jYWxsKGEsZSksYj1udWxsKToodD1iLGI9ZnVuY3Rpb24odyxyLHope3JldHVybiB0LmNhbGwoZCh3KSx6KX0pKSxiKSlmb3IoO208bDttKyspYihhW21dLGMsaD9lOmUuY2FsbChhW21dLG0sYihhW21dLGMpKSk7cmV0dXJuIGY\/YTp0P2IuY2FsbChhKTpsP2IoYVswXSxjKTpnfSxNYz0vXi1tcy0vLE5jPS8tKFthLXpdKS9nLEdiPWZ1bmN0aW9uKGEpe3JldHVybiAxPT09YS5ub2RlVHlwZXx8OT09PWEubm9kZVR5cGV8fCErYS5ub2RlVHlwZX07CkphLnVpZD0xO0phLnByb3RvdHlwZT17Y2FjaGU6ZnVuY3Rpb24oYSl7dmFyIGI9YVt0aGlzLmV4cGFuZG9dO3JldHVybiBifHwoYj17fSxHYihhKSYmKGEubm9kZVR5cGU\/YVt0aGlzLmV4cGFuZG9dPWI6T2JqZWN0LmRlZmluZVByb3BlcnR5KGEsdGhpcy5leHBhbmRvLHt2YWx1ZTpiLGNvbmZpZ3VyYWJsZTohMH0pKSksYn0sc2V0OmZ1bmN0aW9uKGEsYixjKXt2YXIgZTthPXRoaXMuY2FjaGUoYSk7aWYoInN0cmluZyI9PXR5cGVvZiBiKWFbQmEoYildPWM7ZWxzZSBmb3IoZSBpbiBiKWFbQmEoZSldPWJbZV07cmV0dXJuIGF9LGdldDpmdW5jdGlvbihhLGIpe3JldHVybiB2b2lkIDA9PT1iP3RoaXMuY2FjaGUoYSk6YVt0aGlzLmV4cGFuZG9dJiZhW3RoaXMuZXhwYW5kb11bQmEoYildfSxhY2Nlc3M6ZnVuY3Rpb24oYSxiLGMpe3JldHVybiB2b2lkIDA9PT1ifHxiJiYic3RyaW5nIj09dHlwZW9mIGImJnZvaWQgMD09PWM\/dGhpcy5nZXQoYSxiKToodGhpcy5zZXQoYSxiLGMpLHZvaWQgMCE9PQpjP2M6Yil9LHJlbW92ZTpmdW5jdGlvbihhLGIpe3ZhciBjPWFbdGhpcy5leHBhbmRvXTtpZih2b2lkIDAhPT1jKXtpZih2b2lkIDAhPT1iKXt2YXIgZT0oYj1BcnJheS5pc0FycmF5KGIpP2IubWFwKEJhKTooYj1CYShiKSlpbiBjP1tiXTpiLm1hdGNoKExhKXx8W10pLmxlbmd0aDtmb3IoO2UtLTspZGVsZXRlIGNbYltlXV19KHZvaWQgMD09PWJ8fGQuaXNFbXB0eU9iamVjdChjKSkmJihhLm5vZGVUeXBlP2FbdGhpcy5leHBhbmRvXT12b2lkIDA6ZGVsZXRlIGFbdGhpcy5leHBhbmRvXSl9fSxoYXNEYXRhOmZ1bmN0aW9uKGEpe2E9YVt0aGlzLmV4cGFuZG9dO3JldHVybiB2b2lkIDAhPT1hJiYhZC5pc0VtcHR5T2JqZWN0KGEpfX07dmFyIEc9bmV3IEphLHhhPW5ldyBKYSxQYz0vXig\/Olx7W1x3XFddKlx9fFxbW1x3XFddKlxdKSQvLE9jPS9bQS1aXS9nO2QuZXh0ZW5kKHtoYXNEYXRhOmZ1bmN0aW9uKGEpe3JldHVybiB4YS5oYXNEYXRhKGEpfHxHLmhhc0RhdGEoYSl9LGRhdGE6ZnVuY3Rpb24oYSwKYixjKXtyZXR1cm4geGEuYWNjZXNzKGEsYixjKX0scmVtb3ZlRGF0YTpmdW5jdGlvbihhLGIpe3hhLnJlbW92ZShhLGIpfSxfZGF0YTpmdW5jdGlvbihhLGIsYyl7cmV0dXJuIEcuYWNjZXNzKGEsYixjKX0sX3JlbW92ZURhdGE6ZnVuY3Rpb24oYSxiKXtHLnJlbW92ZShhLGIpfX0pO2QuZm4uZXh0ZW5kKHtkYXRhOmZ1bmN0aW9uKGEsYil7dmFyIGMsZSxmLGc9dGhpc1swXSxoPWcmJmcuYXR0cmlidXRlcztpZih2b2lkIDA9PT1hKXtpZih0aGlzLmxlbmd0aCYmKGY9eGEuZ2V0KGcpLDE9PT1nLm5vZGVUeXBlJiYhRy5nZXQoZywiaGFzRGF0YUF0dHJzIikpKXtmb3IoYz1oLmxlbmd0aDtjLS07KWhbY10mJjA9PT0oZT1oW2NdLm5hbWUpLmluZGV4T2YoImRhdGEtIikmJihlPUJhKGUuc2xpY2UoNSkpLE9iKGcsZSxmW2VdKSk7Ry5zZXQoZywiaGFzRGF0YUF0dHJzIiwhMCl9cmV0dXJuIGZ9cmV0dXJuIm9iamVjdCI9PXR5cGVvZiBhP3RoaXMuZWFjaChmdW5jdGlvbigpe3hhLnNldCh0aGlzLAphKX0pOlhhKHRoaXMsZnVuY3Rpb24obSl7dmFyIGw7aWYoZyYmdm9pZCAwPT09bSlyZXR1cm4gdm9pZCAwIT09KGw9eGEuZ2V0KGcsYSkpP2w6dm9pZCAwIT09KGw9T2IoZyxhKSk\/bDp2b2lkIDA7dGhpcy5lYWNoKGZ1bmN0aW9uKCl7eGEuc2V0KHRoaXMsYSxtKX0pfSxudWxsLGIsMTxhcmd1bWVudHMubGVuZ3RoLG51bGwsITApfSxyZW1vdmVEYXRhOmZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXt4YS5yZW1vdmUodGhpcyxhKX0pfX0pO2QuZXh0ZW5kKHtxdWV1ZTpmdW5jdGlvbihhLGIsYyl7dmFyIGU7aWYoYSlyZXR1cm4gYj0oYnx8ImZ4IikrInF1ZXVlIixlPUcuZ2V0KGEsYiksYyYmKCFlfHxBcnJheS5pc0FycmF5KGMpP2U9Ry5hY2Nlc3MoYSxiLGQubWFrZUFycmF5KGMpKTplLnB1c2goYykpLGV8fFtdfSxkZXF1ZXVlOmZ1bmN0aW9uKGEsYil7Yj1ifHwiZngiO3ZhciBjPWQucXVldWUoYSxiKSxlPWMubGVuZ3RoLGY9Yy5zaGlmdCgpLGc9ZC5fcXVldWVIb29rcyhhLApiKTsiaW5wcm9ncmVzcyI9PT1mJiYoZj1jLnNoaWZ0KCksZS0tKTtmJiYoImZ4Ij09PWImJmMudW5zaGlmdCgiaW5wcm9ncmVzcyIpLGRlbGV0ZSBnLnN0b3AsZi5jYWxsKGEsZnVuY3Rpb24oKXtkLmRlcXVldWUoYSxiKX0sZykpOyFlJiZnJiZnLmVtcHR5LmZpcmUoKX0sX3F1ZXVlSG9va3M6ZnVuY3Rpb24oYSxiKXt2YXIgYz1iKyJxdWV1ZUhvb2tzIjtyZXR1cm4gRy5nZXQoYSxjKXx8Ry5hY2Nlc3MoYSxjLHtlbXB0eTpkLkNhbGxiYWNrcygib25jZSBtZW1vcnkiKS5hZGQoZnVuY3Rpb24oKXtHLnJlbW92ZShhLFtiKyJxdWV1ZSIsY10pfSl9KX19KTtkLmZuLmV4dGVuZCh7cXVldWU6ZnVuY3Rpb24oYSxiKXt2YXIgYz0yO3JldHVybiJzdHJpbmciIT10eXBlb2YgYSYmKGI9YSxhPSJmeCIsYy0tKSxhcmd1bWVudHMubGVuZ3RoPGM\/ZC5xdWV1ZSh0aGlzWzBdLGEpOnZvaWQgMD09PWI\/dGhpczp0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgZT1kLnF1ZXVlKHRoaXMsYSxiKTtkLl9xdWV1ZUhvb2tzKHRoaXMsCmEpOyJmeCI9PT1hJiYiaW5wcm9ncmVzcyIhPT1lWzBdJiZkLmRlcXVldWUodGhpcyxhKX0pfSxkZXF1ZXVlOmZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXtkLmRlcXVldWUodGhpcyxhKX0pfSxjbGVhclF1ZXVlOmZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLnF1ZXVlKGF8fCJmeCIsW10pfSxwcm9taXNlOmZ1bmN0aW9uKGEsYil7dmFyIGMsZT0xLGY9ZC5EZWZlcnJlZCgpLGc9dGhpcyxoPXRoaXMubGVuZ3RoLG09ZnVuY3Rpb24oKXstLWV8fGYucmVzb2x2ZVdpdGgoZyxbZ10pfTsic3RyaW5nIiE9dHlwZW9mIGEmJihiPWEsYT12b2lkIDApO2ZvcihhPWF8fCJmeCI7aC0tOykoYz1HLmdldChnW2hdLGErInF1ZXVlSG9va3MiKSkmJmMuZW1wdHkmJihlKyssYy5lbXB0eS5hZGQobSkpO3JldHVybiBtKCksZi5wcm9taXNlKGIpfX0pO3ZhciB6Yz0vWystXT8oPzpcZCpcLnwpXGQrKD86W2VFXVsrLV0\/XGQrfCkvLnNvdXJjZSx5Yj1uZXcgUmVnRXhwKCJeKD86KFsrLV0pPXwpKCIrCnpjKyIpKFthLXolXSopJCIsImkiKSxQYT1bIlRvcCIsIlJpZ2h0IiwiQm90dG9tIiwiTGVmdCJdLGpiPUwuZG9jdW1lbnRFbGVtZW50LG9iPWZ1bmN0aW9uKGEpe3JldHVybiBkLmNvbnRhaW5zKGEub3duZXJEb2N1bWVudCxhKX0sbWQ9e2NvbXBvc2VkOiEwfTtqYi5nZXRSb290Tm9kZSYmKG9iPWZ1bmN0aW9uKGEpe3JldHVybiBkLmNvbnRhaW5zKGEub3duZXJEb2N1bWVudCxhKXx8YS5nZXRSb290Tm9kZShtZCk9PT1hLm93bmVyRG9jdW1lbnR9KTt2YXIgUWI9ZnVuY3Rpb24oYSxiKXtyZXR1cm4ibm9uZSI9PT0oYT1ifHxhKS5zdHlsZS5kaXNwbGF5fHwiIj09PWEuc3R5bGUuZGlzcGxheSYmb2IoYSkmJiJub25lIj09PWQuY3NzKGEsImRpc3BsYXkiKX0sbGM9e307ZC5mbi5leHRlbmQoe3Nob3c6ZnVuY3Rpb24oKXtyZXR1cm4gJGEodGhpcywhMCl9LGhpZGU6ZnVuY3Rpb24oKXtyZXR1cm4gJGEodGhpcyl9LHRvZ2dsZTpmdW5jdGlvbihhKXtyZXR1cm4iYm9vbGVhbiI9PXR5cGVvZiBhPwphP3RoaXMuc2hvdygpOnRoaXMuaGlkZSgpOnRoaXMuZWFjaChmdW5jdGlvbigpe1FiKHRoaXMpP2QodGhpcykuc2hvdygpOmQodGhpcykuaGlkZSgpfSl9fSk7dmFyIFpiLEhiPS9eKD86Y2hlY2tib3h8cmFkaW8pJC9pLG1jPS88KFthLXpdW15cL1wwPlx4MjBcdFxyXG5cZl0qKS9pLG5jPS9eJHxebW9kdWxlJHxcLyg\/OmphdmF8ZWNtYSlzY3JpcHQvaSx4Yj1MLmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKS5hcHBlbmRDaGlsZChMLmNyZWF0ZUVsZW1lbnQoImRpdiIpKTsoWmI9TC5jcmVhdGVFbGVtZW50KCJpbnB1dCIpKS5zZXRBdHRyaWJ1dGUoInR5cGUiLCJyYWRpbyIpO1piLnNldEF0dHJpYnV0ZSgiY2hlY2tlZCIsImNoZWNrZWQiKTtaYi5zZXRBdHRyaWJ1dGUoIm5hbWUiLCJ0Iik7eGIuYXBwZW5kQ2hpbGQoWmIpO04uY2hlY2tDbG9uZT14Yi5jbG9uZU5vZGUoITApLmNsb25lTm9kZSghMCkubGFzdENoaWxkLmNoZWNrZWQ7eGIuaW5uZXJIVE1MPSI8dGV4dGFyZWE+eDwvdGV4dGFyZWE+IjsKTi5ub0Nsb25lQ2hlY2tlZD0hIXhiLmNsb25lTm9kZSghMCkubGFzdENoaWxkLmRlZmF1bHRWYWx1ZTt4Yi5pbm5lckhUTUw9IjxvcHRpb24+PC9vcHRpb24+IjtOLm9wdGlvbj0hIXhiLmxhc3RDaGlsZDt2YXIgQ2E9e3RoZWFkOlsxLCI8dGFibGU+IiwiPC90YWJsZT4iXSxjb2w6WzIsIjx0YWJsZT48Y29sZ3JvdXA+IiwiPC9jb2xncm91cD48L3RhYmxlPiJdLHRyOlsyLCI8dGFibGU+PHRib2R5PiIsIjwvdGJvZHk+PC90YWJsZT4iXSx0ZDpbMywiPHRhYmxlPjx0Ym9keT48dHI+IiwiPC90cj48L3Rib2R5PjwvdGFibGU+Il0sX2RlZmF1bHQ6WzAsIiIsIiJdfTtDYS50Ym9keT1DYS50Zm9vdD1DYS5jb2xncm91cD1DYS5jYXB0aW9uPUNhLnRoZWFkO0NhLnRoPUNhLnRkO04ub3B0aW9ufHwoQ2Eub3B0Z3JvdXA9Q2Eub3B0aW9uPVsxLCI8c2VsZWN0IG11bHRpcGxlPSdtdWx0aXBsZSc+IiwiPC9zZWxlY3Q+Il0pO3ZhciBRYz0vPHwmIz9cdys7LyxBYz0vXihbXi5dKikoPzpcLiguKyl8KS87CmQuZXZlbnQ9e2dsb2JhbDp7fSxhZGQ6ZnVuY3Rpb24oYSxiLGMsZSxmKXt2YXIgZyxoLG0sbCx0LHcscix6LEQ9Ry5nZXQoYSk7aWYoR2IoYSkpZm9yKGMuaGFuZGxlciYmKGM9KGc9YykuaGFuZGxlcixmPWcuc2VsZWN0b3IpLGYmJmQuZmluZC5tYXRjaGVzU2VsZWN0b3IoamIsZiksYy5ndWlkfHwoYy5ndWlkPWQuZ3VpZCsrKSwobD1ELmV2ZW50cyl8fChsPUQuZXZlbnRzPU9iamVjdC5jcmVhdGUobnVsbCkpLChoPUQuaGFuZGxlKXx8KGg9RC5oYW5kbGU9ZnVuY3Rpb24oTyl7cmV0dXJuInVuZGVmaW5lZCIhPXR5cGVvZiBkJiZkLmV2ZW50LnRyaWdnZXJlZCE9PU8udHlwZT9kLmV2ZW50LmRpc3BhdGNoLmFwcGx5KGEsYXJndW1lbnRzKTp2b2lkIDB9KSxEPShiPShifHwiIikubWF0Y2goTGEpfHxbIiJdKS5sZW5ndGg7RC0tOyl7dmFyIEY9ej0obT1BYy5leGVjKGJbRF0pfHxbXSlbMV07bT0obVsyXXx8IiIpLnNwbGl0KCIuIikuc29ydCgpO0YmJih3PWQuZXZlbnQuc3BlY2lhbFtGXXx8Cnt9LEY9KGY\/dy5kZWxlZ2F0ZVR5cGU6dy5iaW5kVHlwZSl8fEYsdz1kLmV2ZW50LnNwZWNpYWxbRl18fHt9LHQ9ZC5leHRlbmQoe3R5cGU6RixvcmlnVHlwZTp6LGRhdGE6ZSxoYW5kbGVyOmMsZ3VpZDpjLmd1aWQsc2VsZWN0b3I6ZixuZWVkc0NvbnRleHQ6ZiYmZC5leHByLm1hdGNoLm5lZWRzQ29udGV4dC50ZXN0KGYpLG5hbWVzcGFjZTptLmpvaW4oIi4iKX0sZyksKHI9bFtGXSl8fCgocj1sW0ZdPVtdKS5kZWxlZ2F0ZUNvdW50PTAsdy5zZXR1cCYmITEhPT13LnNldHVwLmNhbGwoYSxlLG0saCl8fGEuYWRkRXZlbnRMaXN0ZW5lciYmYS5hZGRFdmVudExpc3RlbmVyKEYsaCkpLHcuYWRkJiYody5hZGQuY2FsbChhLHQpLHQuaGFuZGxlci5ndWlkfHwodC5oYW5kbGVyLmd1aWQ9Yy5ndWlkKSksZj9yLnNwbGljZShyLmRlbGVnYXRlQ291bnQrKywwLHQpOnIucHVzaCh0KSxkLmV2ZW50Lmdsb2JhbFtGXT0hMCl9fSxyZW1vdmU6ZnVuY3Rpb24oYSxiLGMsZSxmKXt2YXIgZyxoLG0sbCwKdCx3LHIseixEPUcuaGFzRGF0YShhKSYmRy5nZXQoYSk7aWYoRCYmKGw9RC5ldmVudHMpKXtmb3IodD0oYj0oYnx8IiIpLm1hdGNoKExhKXx8WyIiXSkubGVuZ3RoO3QtLTspaWYodz16PShtPUFjLmV4ZWMoYlt0XSl8fFtdKVsxXSxyPShtWzJdfHwiIikuc3BsaXQoIi4iKS5zb3J0KCksdyl7dmFyIEY9ZC5ldmVudC5zcGVjaWFsW3ddfHx7fSxPPWxbdz0oZT9GLmRlbGVnYXRlVHlwZTpGLmJpbmRUeXBlKXx8d118fFtdO209bVsyXSYmbmV3IFJlZ0V4cCgiKF58XFwuKSIrci5qb2luKCJcXC4oPzouKlxcLnwpIikrIihcXC58JCkiKTtmb3IoaD1nPU8ubGVuZ3RoO2ctLTspe3ZhciBhYT1PW2ddOyFmJiZ6IT09YWEub3JpZ1R5cGV8fGMmJmMuZ3VpZCE9PWFhLmd1aWR8fG0mJiFtLnRlc3QoYWEubmFtZXNwYWNlKXx8ZSYmZSE9PWFhLnNlbGVjdG9yJiYoIioqIiE9PWV8fCFhYS5zZWxlY3Rvcil8fChPLnNwbGljZShnLDEpLGFhLnNlbGVjdG9yJiZPLmRlbGVnYXRlQ291bnQtLSxGLnJlbW92ZSYmCkYucmVtb3ZlLmNhbGwoYSxhYSkpfWgmJiFPLmxlbmd0aCYmKEYudGVhcmRvd24mJiExIT09Ri50ZWFyZG93bi5jYWxsKGEscixELmhhbmRsZSl8fGQucmVtb3ZlRXZlbnQoYSx3LEQuaGFuZGxlKSxkZWxldGUgbFt3XSl9ZWxzZSBmb3IodyBpbiBsKWQuZXZlbnQucmVtb3ZlKGEsdytiW3RdLGMsZSwhMCk7ZC5pc0VtcHR5T2JqZWN0KGwpJiZHLnJlbW92ZShhLCJoYW5kbGUgZXZlbnRzIil9fSxkaXNwYXRjaDpmdW5jdGlvbihhKXt2YXIgYixjLGUsZixnPUFycmF5KGFyZ3VtZW50cy5sZW5ndGgpLGg9ZC5ldmVudC5maXgoYSksbT0oRy5nZXQodGhpcywiZXZlbnRzIil8fE9iamVjdC5jcmVhdGUobnVsbCkpW2gudHlwZV18fFtdLGw9ZC5ldmVudC5zcGVjaWFsW2gudHlwZV18fHt9O2dbMF09aDtmb3IoYj0xO2I8YXJndW1lbnRzLmxlbmd0aDtiKyspZ1tiXT1hcmd1bWVudHNbYl07aWYoaC5kZWxlZ2F0ZVRhcmdldD10aGlzLCFsLnByZURpc3BhdGNofHwhMSE9PWwucHJlRGlzcGF0Y2guY2FsbCh0aGlzLApoKSl7dmFyIHQ9ZC5ldmVudC5oYW5kbGVycy5jYWxsKHRoaXMsaCxtKTtmb3IoYj0wOyhlPXRbYisrXSkmJiFoLmlzUHJvcGFnYXRpb25TdG9wcGVkKCk7KWZvcihoLmN1cnJlbnRUYXJnZXQ9ZS5lbGVtLG09MDsoZj1lLmhhbmRsZXJzW20rK10pJiYhaC5pc0ltbWVkaWF0ZVByb3BhZ2F0aW9uU3RvcHBlZCgpOyloLnJuYW1lc3BhY2UmJiExIT09Zi5uYW1lc3BhY2UmJiFoLnJuYW1lc3BhY2UudGVzdChmLm5hbWVzcGFjZSl8fChoLmhhbmRsZU9iaj1mLGguZGF0YT1mLmRhdGEsdm9pZCAwIT09KGM9KChkLmV2ZW50LnNwZWNpYWxbZi5vcmlnVHlwZV18fHt9KS5oYW5kbGV8fGYuaGFuZGxlcikuYXBwbHkoZS5lbGVtLGcpKSYmITE9PT0oaC5yZXN1bHQ9YykmJihoLnByZXZlbnREZWZhdWx0KCksaC5zdG9wUHJvcGFnYXRpb24oKSkpO3JldHVybiBsLnBvc3REaXNwYXRjaCYmbC5wb3N0RGlzcGF0Y2guY2FsbCh0aGlzLGgpLGgucmVzdWx0fX0saGFuZGxlcnM6ZnVuY3Rpb24oYSxiKXt2YXIgYywKZSxmLGc9W10saD1iLmRlbGVnYXRlQ291bnQsbT1hLnRhcmdldDtpZihoJiZtLm5vZGVUeXBlJiYhKCJjbGljayI9PT1hLnR5cGUmJjE8PWEuYnV0dG9uKSlmb3IoO20hPT10aGlzO209bS5wYXJlbnROb2RlfHx0aGlzKWlmKDE9PT1tLm5vZGVUeXBlJiYoImNsaWNrIiE9PWEudHlwZXx8ITAhPT1tLmRpc2FibGVkKSl7dmFyIGw9W10sdD17fTtmb3IoYz0wO2M8aDtjKyspdm9pZCAwPT09dFtmPShlPWJbY10pLnNlbGVjdG9yKyIgIl0mJih0W2ZdPWUubmVlZHNDb250ZXh0Py0xPGQoZix0aGlzKS5pbmRleChtKTpkLmZpbmQoZix0aGlzLG51bGwsW21dKS5sZW5ndGgpLHRbZl0mJmwucHVzaChlKTtsLmxlbmd0aCYmZy5wdXNoKHtlbGVtOm0saGFuZGxlcnM6bH0pfXJldHVybiBtPXRoaXMsaDxiLmxlbmd0aCYmZy5wdXNoKHtlbGVtOm0saGFuZGxlcnM6Yi5zbGljZShoKX0pLGd9LGFkZFByb3A6ZnVuY3Rpb24oYSxiKXtPYmplY3QuZGVmaW5lUHJvcGVydHkoZC5FdmVudC5wcm90b3R5cGUsCmEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLGdldDpNKGIpP2Z1bmN0aW9uKCl7aWYodGhpcy5vcmlnaW5hbEV2ZW50KXJldHVybiBiKHRoaXMub3JpZ2luYWxFdmVudCl9OmZ1bmN0aW9uKCl7aWYodGhpcy5vcmlnaW5hbEV2ZW50KXJldHVybiB0aGlzLm9yaWdpbmFsRXZlbnRbYV19LHNldDpmdW5jdGlvbihjKXtPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcyxhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpjfSl9fSl9LGZpeDpmdW5jdGlvbihhKXtyZXR1cm4gYVtkLmV4cGFuZG9dP2E6bmV3IGQuRXZlbnQoYSl9LHNwZWNpYWw6e2xvYWQ6e25vQnViYmxlOiEwfSxjbGljazp7c2V0dXA6ZnVuY3Rpb24oYSl7YT10aGlzfHxhO3JldHVybiBIYi50ZXN0KGEudHlwZSkmJmEuY2xpY2smJlgoYSwiaW5wdXQiKSYmcGIoYSwiY2xpY2siLCEwKSwhMX0sdHJpZ2dlcjpmdW5jdGlvbihhKXthPXRoaXN8fGE7cmV0dXJuIEhiLnRlc3QoYS50eXBlKSYmCmEuY2xpY2smJlgoYSwiaW5wdXQiKSYmcGIoYSwiY2xpY2siKSwhMH0sX2RlZmF1bHQ6ZnVuY3Rpb24oYSl7YT1hLnRhcmdldDtyZXR1cm4gSGIudGVzdChhLnR5cGUpJiZhLmNsaWNrJiZYKGEsImlucHV0IikmJkcuZ2V0KGEsImNsaWNrIil8fFgoYSwiYSIpfX0sYmVmb3JldW5sb2FkOntwb3N0RGlzcGF0Y2g6ZnVuY3Rpb24oYSl7dm9pZCAwIT09YS5yZXN1bHQmJmEub3JpZ2luYWxFdmVudCYmKGEub3JpZ2luYWxFdmVudC5yZXR1cm5WYWx1ZT1hLnJlc3VsdCl9fX19O2QucmVtb3ZlRXZlbnQ9ZnVuY3Rpb24oYSxiLGMpe2EucmVtb3ZlRXZlbnRMaXN0ZW5lciYmYS5yZW1vdmVFdmVudExpc3RlbmVyKGIsYyl9O2QuRXZlbnQ9ZnVuY3Rpb24oYSxiKXtpZighKHRoaXMgaW5zdGFuY2VvZiBkLkV2ZW50KSlyZXR1cm4gbmV3IGQuRXZlbnQoYSxiKTthJiZhLnR5cGU\/KHRoaXMub3JpZ2luYWxFdmVudD1hLHRoaXMudHlwZT1hLnR5cGUsdGhpcy5pc0RlZmF1bHRQcmV2ZW50ZWQ9YS5kZWZhdWx0UHJldmVudGVkfHwKdm9pZCAwPT09YS5kZWZhdWx0UHJldmVudGVkJiYhMT09PWEucmV0dXJuVmFsdWU\/YWI6YmIsdGhpcy50YXJnZXQ9YS50YXJnZXQmJjM9PT1hLnRhcmdldC5ub2RlVHlwZT9hLnRhcmdldC5wYXJlbnROb2RlOmEudGFyZ2V0LHRoaXMuY3VycmVudFRhcmdldD1hLmN1cnJlbnRUYXJnZXQsdGhpcy5yZWxhdGVkVGFyZ2V0PWEucmVsYXRlZFRhcmdldCk6dGhpcy50eXBlPWE7YiYmZC5leHRlbmQodGhpcyxiKTt0aGlzLnRpbWVTdGFtcD1hJiZhLnRpbWVTdGFtcHx8RGF0ZS5ub3coKTt0aGlzW2QuZXhwYW5kb109ITB9O2QuRXZlbnQucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpkLkV2ZW50LGlzRGVmYXVsdFByZXZlbnRlZDpiYixpc1Byb3BhZ2F0aW9uU3RvcHBlZDpiYixpc0ltbWVkaWF0ZVByb3BhZ2F0aW9uU3RvcHBlZDpiYixpc1NpbXVsYXRlZDohMSxwcmV2ZW50RGVmYXVsdDpmdW5jdGlvbigpe3ZhciBhPXRoaXMub3JpZ2luYWxFdmVudDt0aGlzLmlzRGVmYXVsdFByZXZlbnRlZD1hYjsKYSYmIXRoaXMuaXNTaW11bGF0ZWQmJmEucHJldmVudERlZmF1bHQoKX0sc3RvcFByb3BhZ2F0aW9uOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5vcmlnaW5hbEV2ZW50O3RoaXMuaXNQcm9wYWdhdGlvblN0b3BwZWQ9YWI7YSYmIXRoaXMuaXNTaW11bGF0ZWQmJmEuc3RvcFByb3BhZ2F0aW9uKCl9LHN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbjpmdW5jdGlvbigpe3ZhciBhPXRoaXMub3JpZ2luYWxFdmVudDt0aGlzLmlzSW1tZWRpYXRlUHJvcGFnYXRpb25TdG9wcGVkPWFiO2EmJiF0aGlzLmlzU2ltdWxhdGVkJiZhLnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO3RoaXMuc3RvcFByb3BhZ2F0aW9uKCl9fTtkLmVhY2goe2FsdEtleTohMCxidWJibGVzOiEwLGNhbmNlbGFibGU6ITAsY2hhbmdlZFRvdWNoZXM6ITAsY3RybEtleTohMCxkZXRhaWw6ITAsZXZlbnRQaGFzZTohMCxtZXRhS2V5OiEwLHBhZ2VYOiEwLHBhZ2VZOiEwLHNoaWZ0S2V5OiEwLHZpZXc6ITAsImNoYXIiOiEwLGNvZGU6ITAsCmNoYXJDb2RlOiEwLGtleTohMCxrZXlDb2RlOiEwLGJ1dHRvbjohMCxidXR0b25zOiEwLGNsaWVudFg6ITAsY2xpZW50WTohMCxvZmZzZXRYOiEwLG9mZnNldFk6ITAscG9pbnRlcklkOiEwLHBvaW50ZXJUeXBlOiEwLHNjcmVlblg6ITAsc2NyZWVuWTohMCx0YXJnZXRUb3VjaGVzOiEwLHRvRWxlbWVudDohMCx0b3VjaGVzOiEwLHdoaWNoOiEwfSxkLmV2ZW50LmFkZFByb3ApO2QuZWFjaCh7Zm9jdXM6ImZvY3VzaW4iLGJsdXI6ImZvY3Vzb3V0In0sZnVuY3Rpb24oYSxiKXtmdW5jdGlvbiBjKGUpe2lmKEwuZG9jdW1lbnRNb2RlKXt2YXIgZj1HLmdldCh0aGlzLCJoYW5kbGUiKSxnPWQuZXZlbnQuZml4KGUpO2cudHlwZT0iZm9jdXNpbiI9PT1lLnR5cGU\/ImZvY3VzIjoiYmx1ciI7Zy5pc1NpbXVsYXRlZD0hMDtmKGUpO2cudGFyZ2V0PT09Zy5jdXJyZW50VGFyZ2V0JiZmKGcpfWVsc2UgZC5ldmVudC5zaW11bGF0ZShiLGUudGFyZ2V0LGQuZXZlbnQuZml4KGUpKX1kLmV2ZW50LnNwZWNpYWxbYV09CntzZXR1cDpmdW5jdGlvbigpe3ZhciBlO2lmKHBiKHRoaXMsYSwhMCksIUwuZG9jdW1lbnRNb2RlKXJldHVybiExOyhlPUcuZ2V0KHRoaXMsYikpfHx0aGlzLmFkZEV2ZW50TGlzdGVuZXIoYixjKTtHLnNldCh0aGlzLGIsKGV8fDApKzEpfSx0cmlnZ2VyOmZ1bmN0aW9uKCl7cmV0dXJuIHBiKHRoaXMsYSksITB9LHRlYXJkb3duOmZ1bmN0aW9uKCl7dmFyIGU7aWYoIUwuZG9jdW1lbnRNb2RlKXJldHVybiExOyhlPUcuZ2V0KHRoaXMsYiktMSk\/Ry5zZXQodGhpcyxiLGUpOih0aGlzLnJlbW92ZUV2ZW50TGlzdGVuZXIoYixjKSxHLnJlbW92ZSh0aGlzLGIpKX0sX2RlZmF1bHQ6ZnVuY3Rpb24oZSl7cmV0dXJuIEcuZ2V0KGUudGFyZ2V0LGEpfSxkZWxlZ2F0ZVR5cGU6Yn07ZC5ldmVudC5zcGVjaWFsW2JdPXtzZXR1cDpmdW5jdGlvbigpe3ZhciBlPXRoaXMub3duZXJEb2N1bWVudHx8dGhpcy5kb2N1bWVudHx8dGhpcyxmPUwuZG9jdW1lbnRNb2RlP3RoaXM6ZSxnPUcuZ2V0KGYsYik7Z3x8CihMLmRvY3VtZW50TW9kZT90aGlzLmFkZEV2ZW50TGlzdGVuZXIoYixjKTplLmFkZEV2ZW50TGlzdGVuZXIoYSxjLCEwKSk7Ry5zZXQoZixiLChnfHwwKSsxKX0sdGVhcmRvd246ZnVuY3Rpb24oKXt2YXIgZT10aGlzLm93bmVyRG9jdW1lbnR8fHRoaXMuZG9jdW1lbnR8fHRoaXMsZj1MLmRvY3VtZW50TW9kZT90aGlzOmUsZz1HLmdldChmLGIpLTE7Zz9HLnNldChmLGIsZyk6KEwuZG9jdW1lbnRNb2RlP3RoaXMucmVtb3ZlRXZlbnRMaXN0ZW5lcihiLGMpOmUucmVtb3ZlRXZlbnRMaXN0ZW5lcihhLGMsITApLEcucmVtb3ZlKGYsYikpfX19KTtkLmVhY2goe21vdXNlZW50ZXI6Im1vdXNlb3ZlciIsbW91c2VsZWF2ZToibW91c2VvdXQiLHBvaW50ZXJlbnRlcjoicG9pbnRlcm92ZXIiLHBvaW50ZXJsZWF2ZToicG9pbnRlcm91dCJ9LGZ1bmN0aW9uKGEsYil7ZC5ldmVudC5zcGVjaWFsW2FdPXtkZWxlZ2F0ZVR5cGU6YixiaW5kVHlwZTpiLGhhbmRsZTpmdW5jdGlvbihjKXt2YXIgZSxmPQpjLnJlbGF0ZWRUYXJnZXQsZz1jLmhhbmRsZU9iajtyZXR1cm4gZiYmKGY9PT10aGlzfHxkLmNvbnRhaW5zKHRoaXMsZikpfHwoYy50eXBlPWcub3JpZ1R5cGUsZT1nLmhhbmRsZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpLGMudHlwZT1iKSxlfX19KTtkLmZuLmV4dGVuZCh7b246ZnVuY3Rpb24oYSxiLGMsZSl7cmV0dXJuIGZiKHRoaXMsYSxiLGMsZSl9LG9uZTpmdW5jdGlvbihhLGIsYyxlKXtyZXR1cm4gZmIodGhpcyxhLGIsYyxlLDEpfSxvZmY6ZnVuY3Rpb24oYSxiLGMpe3ZhciBlLGY7aWYoYSYmYS5wcmV2ZW50RGVmYXVsdCYmYS5oYW5kbGVPYmopcmV0dXJuIGU9YS5oYW5kbGVPYmosZChhLmRlbGVnYXRlVGFyZ2V0KS5vZmYoZS5uYW1lc3BhY2U\/ZS5vcmlnVHlwZSsiLiIrZS5uYW1lc3BhY2U6ZS5vcmlnVHlwZSxlLnNlbGVjdG9yLGUuaGFuZGxlciksdGhpcztpZigib2JqZWN0Ij09dHlwZW9mIGEpe2ZvcihmIGluIGEpdGhpcy5vZmYoZixiLGFbZl0pO3JldHVybiB0aGlzfXJldHVybiExIT09CmImJiJmdW5jdGlvbiIhPXR5cGVvZiBifHwoYz1iLGI9dm9pZCAwKSwhMT09PWMmJihjPWJiKSx0aGlzLmVhY2goZnVuY3Rpb24oKXtkLmV2ZW50LnJlbW92ZSh0aGlzLGEsYyxiKX0pfX0pO3ZhciBuZD0vPHNjcmlwdHw8c3R5bGV8PGxpbmsvaSxSYz0vY2hlY2tlZFxzKig\/OltePV18PVxzKi5jaGVja2VkLikvaSxTYz0vXlxzKjwhXFtDREFUQVxbfFxdXF0+XHMqJC9nO2QuZXh0ZW5kKHtodG1sUHJlZmlsdGVyOmZ1bmN0aW9uKGEpe3JldHVybiBhfSxjbG9uZTpmdW5jdGlvbihhLGIsYyl7dmFyIGUsZixnLGg9YS5jbG9uZU5vZGUoITApLG09b2IoYSk7aWYoIShOLm5vQ2xvbmVDaGVja2VkfHwxIT09YS5ub2RlVHlwZSYmMTEhPT1hLm5vZGVUeXBlfHxkLmlzWE1MRG9jKGEpKSl7dmFyIGw9c2EoaCksdD0wO2ZvcihlPShmPXNhKGEpKS5sZW5ndGg7dDxlO3QrKyl7dmFyIHc9Zlt0XSxyPWxbdF07dm9pZCAwOyJpbnB1dCI9PT0oZz1yLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkpJiZIYi50ZXN0KHcudHlwZSk\/CnIuY2hlY2tlZD13LmNoZWNrZWQ6ImlucHV0IiE9PWcmJiJ0ZXh0YXJlYSIhPT1nfHwoci5kZWZhdWx0VmFsdWU9dy5kZWZhdWx0VmFsdWUpfX1pZihiKWlmKGMpZm9yKGY9Znx8c2EoYSksbD1sfHxzYShoKSx0PTAsZT1mLmxlbmd0aDt0PGU7dCsrKWdiKGZbdF0sbFt0XSk7ZWxzZSBnYihhLGgpO3JldHVybiAwPChsPXNhKGgsInNjcmlwdCIpKS5sZW5ndGgmJm5iKGwsIW0mJnNhKGEsInNjcmlwdCIpKSxofSxjbGVhbkRhdGE6ZnVuY3Rpb24oYSl7Zm9yKHZhciBiLGMsZSxmPWQuZXZlbnQuc3BlY2lhbCxnPTA7dm9pZCAwIT09KGM9YVtnXSk7ZysrKWlmKEdiKGMpKXtpZihiPWNbRy5leHBhbmRvXSl7aWYoYi5ldmVudHMpZm9yKGUgaW4gYi5ldmVudHMpZltlXT9kLmV2ZW50LnJlbW92ZShjLGUpOmQucmVtb3ZlRXZlbnQoYyxlLGIuaGFuZGxlKTtjW0cuZXhwYW5kb109dm9pZCAwfWNbeGEuZXhwYW5kb10mJihjW3hhLmV4cGFuZG9dPXZvaWQgMCl9fX0pO2QuZm4uZXh0ZW5kKHtkZXRhY2g6ZnVuY3Rpb24oYSl7cmV0dXJuIFRiKHRoaXMsCmEsITApfSxyZW1vdmU6ZnVuY3Rpb24oYSl7cmV0dXJuIFRiKHRoaXMsYSl9LHRleHQ6ZnVuY3Rpb24oYSl7cmV0dXJuIFhhKHRoaXMsZnVuY3Rpb24oYil7cmV0dXJuIHZvaWQgMD09PWI\/ZC50ZXh0KHRoaXMpOnRoaXMuZW1wdHkoKS5lYWNoKGZ1bmN0aW9uKCl7MSE9PXRoaXMubm9kZVR5cGUmJjExIT09dGhpcy5ub2RlVHlwZSYmOSE9PXRoaXMubm9kZVR5cGV8fCh0aGlzLnRleHRDb250ZW50PWIpfSl9LG51bGwsYSxhcmd1bWVudHMubGVuZ3RoKX0sYXBwZW5kOmZ1bmN0aW9uKCl7cmV0dXJuIGNiKHRoaXMsYXJndW1lbnRzLGZ1bmN0aW9uKGEpezEhPT10aGlzLm5vZGVUeXBlJiYxMSE9PXRoaXMubm9kZVR5cGUmJjkhPT10aGlzLm5vZGVUeXBlfHxTYih0aGlzLGEpLmFwcGVuZENoaWxkKGEpfSl9LHByZXBlbmQ6ZnVuY3Rpb24oKXtyZXR1cm4gY2IodGhpcyxhcmd1bWVudHMsZnVuY3Rpb24oYSl7aWYoMT09PXRoaXMubm9kZVR5cGV8fDExPT09dGhpcy5ub2RlVHlwZXx8OT09PQp0aGlzLm5vZGVUeXBlKXt2YXIgYj1TYih0aGlzLGEpO2IuaW5zZXJ0QmVmb3JlKGEsYi5maXJzdENoaWxkKX19KX0sYmVmb3JlOmZ1bmN0aW9uKCl7cmV0dXJuIGNiKHRoaXMsYXJndW1lbnRzLGZ1bmN0aW9uKGEpe3RoaXMucGFyZW50Tm9kZSYmdGhpcy5wYXJlbnROb2RlLmluc2VydEJlZm9yZShhLHRoaXMpfSl9LGFmdGVyOmZ1bmN0aW9uKCl7cmV0dXJuIGNiKHRoaXMsYXJndW1lbnRzLGZ1bmN0aW9uKGEpe3RoaXMucGFyZW50Tm9kZSYmdGhpcy5wYXJlbnROb2RlLmluc2VydEJlZm9yZShhLHRoaXMubmV4dFNpYmxpbmcpfSl9LGVtcHR5OmZ1bmN0aW9uKCl7Zm9yKHZhciBhLGI9MDtudWxsIT0oYT10aGlzW2JdKTtiKyspMT09PWEubm9kZVR5cGUmJihkLmNsZWFuRGF0YShzYShhLCExKSksYS50ZXh0Q29udGVudD0iIik7cmV0dXJuIHRoaXN9LGNsb25lOmZ1bmN0aW9uKGEsYil7cmV0dXJuIGE9bnVsbCE9YSYmYSxiPW51bGw9PWI\/YTpiLHRoaXMubWFwKGZ1bmN0aW9uKCl7cmV0dXJuIGQuY2xvbmUodGhpcywKYSxiKX0pfSxodG1sOmZ1bmN0aW9uKGEpe3JldHVybiBYYSh0aGlzLGZ1bmN0aW9uKGIpe3ZhciBjPXRoaXNbMF18fHt9LGU9MCxmPXRoaXMubGVuZ3RoO2lmKHZvaWQgMD09PWImJjE9PT1jLm5vZGVUeXBlKXJldHVybiBjLmlubmVySFRNTDtpZigic3RyaW5nIj09dHlwZW9mIGImJiFuZC50ZXN0KGIpJiYhQ2FbKG1jLmV4ZWMoYil8fFsiIiwiIl0pWzFdLnRvTG93ZXJDYXNlKCldKXtiPWQuaHRtbFByZWZpbHRlcihiKTt0cnl7Zm9yKDtlPGY7ZSsrKTE9PT0oYz10aGlzW2VdfHx7fSkubm9kZVR5cGUmJihkLmNsZWFuRGF0YShzYShjLCExKSksYy5pbm5lckhUTUw9Yik7Yz0wfWNhdGNoKGcpe319YyYmdGhpcy5lbXB0eSgpLmFwcGVuZChiKX0sbnVsbCxhLGFyZ3VtZW50cy5sZW5ndGgpfSxyZXBsYWNlV2l0aDpmdW5jdGlvbigpe3ZhciBhPVtdO3JldHVybiBjYih0aGlzLGFyZ3VtZW50cyxmdW5jdGlvbihiKXt2YXIgYz10aGlzLnBhcmVudE5vZGU7MD5kLmluQXJyYXkodGhpcyxhKSYmCihkLmNsZWFuRGF0YShzYSh0aGlzKSksYyYmYy5yZXBsYWNlQ2hpbGQoYix0aGlzKSl9LGEpfX0pO2QuZWFjaCh7YXBwZW5kVG86ImFwcGVuZCIscHJlcGVuZFRvOiJwcmVwZW5kIixpbnNlcnRCZWZvcmU6ImJlZm9yZSIsaW5zZXJ0QWZ0ZXI6ImFmdGVyIixyZXBsYWNlQWxsOiJyZXBsYWNlV2l0aCJ9LGZ1bmN0aW9uKGEsYil7ZC5mblthXT1mdW5jdGlvbihjKXtmb3IodmFyIGU9W10sZj1kKGMpLGc9Zi5sZW5ndGgtMSxoPTA7aDw9ZztoKyspYz1oPT09Zz90aGlzOnRoaXMuY2xvbmUoITApLGQoZltoXSlbYl0oYyksdWIuYXBwbHkoZSxjLmdldCgpKTtyZXR1cm4gdGhpcy5wdXNoU3RhY2soZSl9fSk7dmFyIGJjPW5ldyBSZWdFeHAoIl4oIit6YysiKSg\/IXB4KVthLXolXSskIiwiaSIpLGFjPS9eLS0vLFViPWZ1bmN0aW9uKGEpe3ZhciBiPWEub3duZXJEb2N1bWVudC5kZWZhdWx0VmlldztyZXR1cm4gYiYmYi5vcGVuZXJ8fChiPW4pLGIuZ2V0Q29tcHV0ZWRTdHlsZShhKX0sQmM9ZnVuY3Rpb24oYSwKYixjKXt2YXIgZSxmPXt9O2ZvcihlIGluIGIpZltlXT1hLnN0eWxlW2VdLGEuc3R5bGVbZV09YltlXTtmb3IoZSBpbiBjPWMuY2FsbChhKSxiKWEuc3R5bGVbZV09ZltlXTtyZXR1cm4gY30sVGM9bmV3IFJlZ0V4cChQYS5qb2luKCJ8IiksImkiKTshZnVuY3Rpb24oKXtmdW5jdGlvbiBhKCl7aWYobCl7bS5zdHlsZS5jc3NUZXh0PSJwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0Oi0xMTExMXB4O3dpZHRoOjYwcHg7bWFyZ2luLXRvcDoxcHg7cGFkZGluZzowO2JvcmRlcjowIjtsLnN0eWxlLmNzc1RleHQ9InBvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94O292ZXJmbG93OnNjcm9sbDttYXJnaW46YXV0bztib3JkZXI6MXB4O3BhZGRpbmc6MXB4O3dpZHRoOjYwJTt0b3A6MSUiO2piLmFwcGVuZENoaWxkKG0pLmFwcGVuZENoaWxkKGwpO3ZhciB0PW4uZ2V0Q29tcHV0ZWRTdHlsZShsKTtiPSIxJSIhPT10LnRvcDtoPTEyPT09TWF0aC5yb3VuZChwYXJzZUZsb2F0KHQubWFyZ2luTGVmdCkpOwpsLnN0eWxlLnJpZ2h0PSI2MCUiO2Y9MzY9PT1NYXRoLnJvdW5kKHBhcnNlRmxvYXQodC5yaWdodCkpO2M9MzY9PT1NYXRoLnJvdW5kKHBhcnNlRmxvYXQodC53aWR0aCkpO2wuc3R5bGUucG9zaXRpb249ImFic29sdXRlIjtlPTEyPT09TWF0aC5yb3VuZChwYXJzZUZsb2F0KGwub2Zmc2V0V2lkdGgvMykpO2piLnJlbW92ZUNoaWxkKG0pO2w9bnVsbH19dmFyIGIsYyxlLGYsZyxoLG09TC5jcmVhdGVFbGVtZW50KCJkaXYiKSxsPUwuY3JlYXRlRWxlbWVudCgiZGl2Iik7bC5zdHlsZSYmKGwuc3R5bGUuYmFja2dyb3VuZENsaXA9ImNvbnRlbnQtYm94IixsLmNsb25lTm9kZSghMCkuc3R5bGUuYmFja2dyb3VuZENsaXA9IiIsTi5jbGVhckNsb25lU3R5bGU9ImNvbnRlbnQtYm94Ij09PWwuc3R5bGUuYmFja2dyb3VuZENsaXAsZC5leHRlbmQoTix7Ym94U2l6aW5nUmVsaWFibGU6ZnVuY3Rpb24oKXtyZXR1cm4gYSgpLGN9LHBpeGVsQm94U3R5bGVzOmZ1bmN0aW9uKCl7cmV0dXJuIGEoKSwKZn0scGl4ZWxQb3NpdGlvbjpmdW5jdGlvbigpe3JldHVybiBhKCksYn0scmVsaWFibGVNYXJnaW5MZWZ0OmZ1bmN0aW9uKCl7cmV0dXJuIGEoKSxofSxzY3JvbGxib3hTaXplOmZ1bmN0aW9uKCl7cmV0dXJuIGEoKSxlfSxyZWxpYWJsZVRyRGltZW5zaW9uczpmdW5jdGlvbigpe3ZhciB0LHcscix6O3JldHVybiBudWxsPT1nJiYodD1MLmNyZWF0ZUVsZW1lbnQoInRhYmxlIiksdz1MLmNyZWF0ZUVsZW1lbnQoInRyIikscj1MLmNyZWF0ZUVsZW1lbnQoImRpdiIpLHQuc3R5bGUuY3NzVGV4dD0icG9zaXRpb246YWJzb2x1dGU7bGVmdDotMTExMTFweDtib3JkZXItY29sbGFwc2U6c2VwYXJhdGUiLHcuc3R5bGUuY3NzVGV4dD0iYm9yZGVyOjFweCBzb2xpZCIsdy5zdHlsZS5oZWlnaHQ9IjFweCIsci5zdHlsZS5oZWlnaHQ9IjlweCIsci5zdHlsZS5kaXNwbGF5PSJibG9jayIsamIuYXBwZW5kQ2hpbGQodCkuYXBwZW5kQ2hpbGQodykuYXBwZW5kQ2hpbGQociksej1uLmdldENvbXB1dGVkU3R5bGUodyksCmc9cGFyc2VJbnQoei5oZWlnaHQsMTApK3BhcnNlSW50KHouYm9yZGVyVG9wV2lkdGgsMTApK3BhcnNlSW50KHouYm9yZGVyQm90dG9tV2lkdGgsMTApPT09dy5vZmZzZXRIZWlnaHQsamIucmVtb3ZlQ2hpbGQodCkpLGd9fSkpfSgpO3ZhciByYz1bIldlYmtpdCIsIk1veiIsIm1zIl0scWM9TC5jcmVhdGVFbGVtZW50KCJkaXYiKS5zdHlsZSxwYz17fSxvZD0vXihub25lfHRhYmxlKD8hLWNbZWFdKS4rKS8scGQ9e3Bvc2l0aW9uOiJhYnNvbHV0ZSIsdmlzaWJpbGl0eToiaGlkZGVuIixkaXNwbGF5OiJibG9jayJ9LENjPXtsZXR0ZXJTcGFjaW5nOiIwIixmb250V2VpZ2h0OiI0MDAifTtkLmV4dGVuZCh7Y3NzSG9va3M6e29wYWNpdHk6e2dldDpmdW5jdGlvbihhLGIpe2lmKGIpcmV0dXJuIGE9S2EoYSwib3BhY2l0eSIpLCIiPT09YT8iMSI6YX19fSxjc3NOdW1iZXI6e2FuaW1hdGlvbkl0ZXJhdGlvbkNvdW50OiEwLGFzcGVjdFJhdGlvOiEwLGJvcmRlckltYWdlU2xpY2U6ITAsY29sdW1uQ291bnQ6ITAsCmZsZXhHcm93OiEwLGZsZXhTaHJpbms6ITAsZm9udFdlaWdodDohMCxncmlkQXJlYTohMCxncmlkQ29sdW1uOiEwLGdyaWRDb2x1bW5FbmQ6ITAsZ3JpZENvbHVtblN0YXJ0OiEwLGdyaWRSb3c6ITAsZ3JpZFJvd0VuZDohMCxncmlkUm93U3RhcnQ6ITAsbGluZUhlaWdodDohMCxvcGFjaXR5OiEwLG9yZGVyOiEwLG9ycGhhbnM6ITAsc2NhbGU6ITAsd2lkb3dzOiEwLHpJbmRleDohMCx6b29tOiEwLGZpbGxPcGFjaXR5OiEwLGZsb29kT3BhY2l0eTohMCxzdG9wT3BhY2l0eTohMCxzdHJva2VNaXRlcmxpbWl0OiEwLHN0cm9rZU9wYWNpdHk6ITB9LGNzc1Byb3BzOnt9LHN0eWxlOmZ1bmN0aW9uKGEsYixjLGUpe2lmKGEmJjMhPT1hLm5vZGVUeXBlJiY4IT09YS5ub2RlVHlwZSYmYS5zdHlsZSl7dmFyIGYsZyxoLG09QmEoYiksbD1hYy50ZXN0KGIpLHQ9YS5zdHlsZTtpZihsfHwoYj1BYihtKSksaD1kLmNzc0hvb2tzW2JdfHxkLmNzc0hvb2tzW21dLHZvaWQgMD09PWMpcmV0dXJuIGgmJgoiZ2V0ImluIGgmJnZvaWQgMCE9PShmPWguZ2V0KGEsITEsZSkpP2Y6dFtiXTsic3RyaW5nIj09PShnPXR5cGVvZiBjKSYmKGY9eWIuZXhlYyhjKSkmJmZbMV0mJihjPVBiKGEsYixmKSxnPSJudW1iZXIiKTtudWxsIT1jJiZjPT1jJiYoIm51bWJlciIhPT1nfHxsfHwoYys9ZiYmZlszXXx8KGQuY3NzTnVtYmVyW21dPyIiOiJweCIpKSxOLmNsZWFyQ2xvbmVTdHlsZXx8IiIhPT1jfHwwIT09Yi5pbmRleE9mKCJiYWNrZ3JvdW5kIil8fCh0W2JdPSJpbmhlcml0IiksaCYmInNldCJpbiBoJiZ2b2lkIDA9PT0oYz1oLnNldChhLGMsZSkpfHwobD90LnNldFByb3BlcnR5KGIsYyk6dFtiXT1jKSl9fSxjc3M6ZnVuY3Rpb24oYSxiLGMsZSl7dmFyIGYsZyxoLG09QmEoYik7cmV0dXJuIGFjLnRlc3QoYil8fChiPUFiKG0pKSwoaD1kLmNzc0hvb2tzW2JdfHxkLmNzc0hvb2tzW21dKSYmImdldCJpbiBoJiYoZj1oLmdldChhLCEwLGMpKSx2b2lkIDA9PT1mJiYoZj1LYShhLGIsZSkpLCJub3JtYWwiPT09CmYmJmIgaW4gQ2MmJihmPUNjW2JdKSwiIj09PWN8fGM\/KGc9cGFyc2VGbG9hdChmKSwhMD09PWN8fGlzRmluaXRlKGcpP2d8fDA6Zik6Zn19KTtkLmVhY2goWyJoZWlnaHQiLCJ3aWR0aCJdLGZ1bmN0aW9uKGEsYil7ZC5jc3NIb29rc1tiXT17Z2V0OmZ1bmN0aW9uKGMsZSxmKXtpZihlKXJldHVybiFvZC50ZXN0KGQuY3NzKGMsImRpc3BsYXkiKSl8fGMuZ2V0Q2xpZW50UmVjdHMoKS5sZW5ndGgmJmMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGg\/QmIoYyxiLGYpOkJjKGMscGQsZnVuY3Rpb24oKXtyZXR1cm4gQmIoYyxiLGYpfSl9LHNldDpmdW5jdGlvbihjLGUsZil7dmFyIGcsaD1VYihjKSxtPSFOLnNjcm9sbGJveFNpemUoKSYmImFic29sdXRlIj09PWgucG9zaXRpb24sbD0obXx8ZikmJiJib3JkZXItYm94Ij09PWQuY3NzKGMsImJveFNpemluZyIsITEsaCk7Zj1mP3JiKGMsYixmLGwsaCk6MDtyZXR1cm4gbCYmbSYmKGYtPU1hdGguY2VpbChjWyJvZmZzZXQiK2JbMF0udG9VcHBlckNhc2UoKSsKYi5zbGljZSgxKV0tcGFyc2VGbG9hdChoW2JdKS1yYihjLGIsImJvcmRlciIsITEsaCktLjUpKSxmJiYoZz15Yi5leGVjKGUpKSYmInB4IiE9PShnWzNdfHwicHgiKSYmKGMuc3R5bGVbYl09ZSxlPWQuY3NzKGMsYikpLFdiKDAsZSxmKX19fSk7ZC5jc3NIb29rcy5tYXJnaW5MZWZ0PVZiKE4ucmVsaWFibGVNYXJnaW5MZWZ0LGZ1bmN0aW9uKGEsYil7aWYoYilyZXR1cm4ocGFyc2VGbG9hdChLYShhLCJtYXJnaW5MZWZ0IikpfHxhLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmxlZnQtQmMoYSx7bWFyZ2luTGVmdDowfSxmdW5jdGlvbigpe3JldHVybiBhLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmxlZnR9KSkrInB4In0pO2QuZWFjaCh7bWFyZ2luOiIiLHBhZGRpbmc6IiIsYm9yZGVyOiJXaWR0aCJ9LGZ1bmN0aW9uKGEsYil7ZC5jc3NIb29rc1thK2JdPXtleHBhbmQ6ZnVuY3Rpb24oYyl7dmFyIGU9MCxmPXt9O2ZvcihjPSJzdHJpbmciPT10eXBlb2YgYz9jLnNwbGl0KCIgIik6W2NdOzQ+CmU7ZSsrKWZbYStQYVtlXStiXT1jW2VdfHxjW2UtMl18fGNbMF07cmV0dXJuIGZ9fTsibWFyZ2luIiE9PWEmJihkLmNzc0hvb2tzW2ErYl0uc2V0PVdiKX0pO2QuZm4uZXh0ZW5kKHtjc3M6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gWGEodGhpcyxmdW5jdGlvbihjLGUsZil7dmFyIGcsaD17fSxtPTA7aWYoQXJyYXkuaXNBcnJheShlKSl7Zj1VYihjKTtmb3IoZz1lLmxlbmd0aDttPGc7bSsrKWhbZVttXV09ZC5jc3MoYyxlW21dLCExLGYpO3JldHVybiBofXJldHVybiB2b2lkIDAhPT1mP2Quc3R5bGUoYyxlLGYpOmQuY3NzKGMsZSl9LGEsYiwxPGFyZ3VtZW50cy5sZW5ndGgpfX0pOygoZC5Ud2Vlbj16YSkucHJvdG90eXBlPXtjb25zdHJ1Y3Rvcjp6YSxpbml0OmZ1bmN0aW9uKGEsYixjLGUsZixnKXt0aGlzLmVsZW09YTt0aGlzLnByb3A9Yzt0aGlzLmVhc2luZz1mfHxkLmVhc2luZy5fZGVmYXVsdDt0aGlzLm9wdGlvbnM9Yjt0aGlzLnN0YXJ0PXRoaXMubm93PXRoaXMuY3VyKCk7dGhpcy5lbmQ9CmU7dGhpcy51bml0PWd8fChkLmNzc051bWJlcltjXT8iIjoicHgiKX0sY3VyOmZ1bmN0aW9uKCl7dmFyIGE9emEucHJvcEhvb2tzW3RoaXMucHJvcF07cmV0dXJuIGEmJmEuZ2V0P2EuZ2V0KHRoaXMpOnphLnByb3BIb29rcy5fZGVmYXVsdC5nZXQodGhpcyl9LHJ1bjpmdW5jdGlvbihhKXt2YXIgYixjPXphLnByb3BIb29rc1t0aGlzLnByb3BdO3JldHVybiB0aGlzLm9wdGlvbnMuZHVyYXRpb24\/dGhpcy5wb3M9Yj1kLmVhc2luZ1t0aGlzLmVhc2luZ10oYSx0aGlzLm9wdGlvbnMuZHVyYXRpb24qYSwwLDEsdGhpcy5vcHRpb25zLmR1cmF0aW9uKTp0aGlzLnBvcz1iPWEsdGhpcy5ub3c9KHRoaXMuZW5kLXRoaXMuc3RhcnQpKmIrdGhpcy5zdGFydCx0aGlzLm9wdGlvbnMuc3RlcCYmdGhpcy5vcHRpb25zLnN0ZXAuY2FsbCh0aGlzLmVsZW0sdGhpcy5ub3csdGhpcyksYyYmYy5zZXQ\/Yy5zZXQodGhpcyk6emEucHJvcEhvb2tzLl9kZWZhdWx0LnNldCh0aGlzKSx0aGlzfX0pLmluaXQucHJvdG90eXBlPQp6YS5wcm90b3R5cGU7KHphLnByb3BIb29rcz17X2RlZmF1bHQ6e2dldDpmdW5jdGlvbihhKXt2YXIgYjtyZXR1cm4gMSE9PWEuZWxlbS5ub2RlVHlwZXx8bnVsbCE9YS5lbGVtW2EucHJvcF0mJm51bGw9PWEuZWxlbS5zdHlsZVthLnByb3BdP2EuZWxlbVthLnByb3BdOihiPWQuY3NzKGEuZWxlbSxhLnByb3AsIiIpKSYmImF1dG8iIT09Yj9iOjB9LHNldDpmdW5jdGlvbihhKXtkLmZ4LnN0ZXBbYS5wcm9wXT9kLmZ4LnN0ZXBbYS5wcm9wXShhKToxIT09YS5lbGVtLm5vZGVUeXBlfHwhZC5jc3NIb29rc1thLnByb3BdJiZudWxsPT1hLmVsZW0uc3R5bGVbQWIoYS5wcm9wKV0\/YS5lbGVtW2EucHJvcF09YS5ub3c6ZC5zdHlsZShhLmVsZW0sYS5wcm9wLGEubm93K2EudW5pdCl9fX0pLnNjcm9sbFRvcD16YS5wcm9wSG9va3Muc2Nyb2xsTGVmdD17c2V0OmZ1bmN0aW9uKGEpe2EuZWxlbS5ub2RlVHlwZSYmYS5lbGVtLnBhcmVudE5vZGUmJihhLmVsZW1bYS5wcm9wXT1hLm5vdyl9fTtkLmVhc2luZz0Ke2xpbmVhcjpmdW5jdGlvbihhKXtyZXR1cm4gYX0sc3dpbmc6ZnVuY3Rpb24oYSl7cmV0dXJuLjUtTWF0aC5jb3MoYSpNYXRoLlBJKS8yfSxfZGVmYXVsdDoic3dpbmcifTtkLmZ4PXphLnByb3RvdHlwZS5pbml0O2QuZnguc3RlcD17fTt2YXIgc2IsWGIscWQ9L14oPzp0b2dnbGV8c2hvd3xoaWRlKSQvLHJkPS9xdWV1ZUhvb2tzJC87ZC5BbmltYXRpb249ZC5leHRlbmQoeCx7dHdlZW5lcnM6eyIqIjpbZnVuY3Rpb24oYSxiKXt2YXIgYz10aGlzLmNyZWF0ZVR3ZWVuKGEsYik7cmV0dXJuIFBiKGMuZWxlbSxhLHliLmV4ZWMoYiksYyksY31dfSx0d2VlbmVyOmZ1bmN0aW9uKGEsYil7TShhKT8oYj1hLGE9WyIqIl0pOmE9YS5tYXRjaChMYSk7Zm9yKHZhciBjLGU9MCxmPWEubGVuZ3RoO2U8ZjtlKyspYz1hW2VdLHgudHdlZW5lcnNbY109eC50d2VlbmVyc1tjXXx8W10seC50d2VlbmVyc1tjXS51bnNoaWZ0KGIpfSxwcmVmaWx0ZXJzOltmdW5jdGlvbihhLGIsYyl7dmFyIGUsZixnLGgsCm0sbCx0LHc9IndpZHRoImluIGJ8fCJoZWlnaHQiaW4gYixyPXRoaXMsej17fSxEPWEuc3R5bGUsRj1hLm5vZGVUeXBlJiZRYihhKSxPPUcuZ2V0KGEsImZ4c2hvdyIpO2ZvcihlIGluIGMucXVldWV8fChudWxsPT0oaD1kLl9xdWV1ZUhvb2tzKGEsImZ4IikpLnVucXVldWVkJiYoaC51bnF1ZXVlZD0wLG09aC5lbXB0eS5maXJlLGguZW1wdHkuZmlyZT1mdW5jdGlvbigpe2gudW5xdWV1ZWR8fG0oKX0pLGgudW5xdWV1ZWQrKyxyLmFsd2F5cyhmdW5jdGlvbigpe3IuYWx3YXlzKGZ1bmN0aW9uKCl7aC51bnF1ZXVlZC0tO2QucXVldWUoYSwiZngiKS5sZW5ndGh8fGguZW1wdHkuZmlyZSgpfSl9KSksYilpZihmPWJbZV0scWQudGVzdChmKSl7aWYoZGVsZXRlIGJbZV0sZz1nfHwidG9nZ2xlIj09PWYsZj09PShGPyJoaWRlIjoic2hvdyIpKXtpZigic2hvdyIhPT1mfHwhT3x8dm9pZCAwPT09T1tlXSljb250aW51ZTtGPSEwfXpbZV09TyYmT1tlXXx8ZC5zdHlsZShhLGUpfWlmKChiPSFkLmlzRW1wdHlPYmplY3QoYikpfHwKIWQuaXNFbXB0eU9iamVjdCh6KSlmb3IoZSBpbiB3JiYxPT09YS5ub2RlVHlwZSYmKGMub3ZlcmZsb3c9W0Qub3ZlcmZsb3csRC5vdmVyZmxvd1gsRC5vdmVyZmxvd1ldLG51bGw9PShsPU8mJk8uZGlzcGxheSkmJihsPUcuZ2V0KGEsImRpc3BsYXkiKSksIm5vbmUiPT09KHQ9ZC5jc3MoYSwiZGlzcGxheSIpKSYmKGw\/dD1sOigkYShbYV0sITApLGw9YS5zdHlsZS5kaXNwbGF5fHxsLHQ9ZC5jc3MoYSwiZGlzcGxheSIpLCRhKFthXSkpKSwoImlubGluZSI9PT10fHwiaW5saW5lLWJsb2NrIj09PXQmJm51bGwhPWwpJiYibm9uZSI9PT1kLmNzcyhhLCJmbG9hdCIpJiYoYnx8KHIuZG9uZShmdW5jdGlvbigpe0QuZGlzcGxheT1sfSksbnVsbD09bCYmKHQ9RC5kaXNwbGF5LGw9Im5vbmUiPT09dD8iIjp0KSksRC5kaXNwbGF5PSJpbmxpbmUtYmxvY2siKSksYy5vdmVyZmxvdyYmKEQub3ZlcmZsb3c9ImhpZGRlbiIsci5hbHdheXMoZnVuY3Rpb24oKXtELm92ZXJmbG93PWMub3ZlcmZsb3dbMF07CkQub3ZlcmZsb3dYPWMub3ZlcmZsb3dbMV07RC5vdmVyZmxvd1k9Yy5vdmVyZmxvd1syXX0pKSxiPSExLHopYnx8KE8\/ImhpZGRlbiJpbiBPJiYoRj1PLmhpZGRlbik6Tz1HLmFjY2VzcyhhLCJmeHNob3ciLHtkaXNwbGF5Omx9KSxnJiYoTy5oaWRkZW49IUYpLEYmJiRhKFthXSwhMCksci5kb25lKGZ1bmN0aW9uKCl7Zm9yKGUgaW4gRnx8JGEoW2FdKSxHLnJlbW92ZShhLCJmeHNob3ciKSx6KWQuc3R5bGUoYSxlLHpbZV0pfSkpLGI9dShGP09bZV06MCxlLHIpLGUgaW4gT3x8KE9bZV09Yi5zdGFydCxGJiYoYi5lbmQ9Yi5zdGFydCxiLnN0YXJ0PTApKX1dLHByZWZpbHRlcjpmdW5jdGlvbihhLGIpe2I\/eC5wcmVmaWx0ZXJzLnVuc2hpZnQoYSk6eC5wcmVmaWx0ZXJzLnB1c2goYSl9fSk7ZC5zcGVlZD1mdW5jdGlvbihhLGIsYyl7dmFyIGU9YSYmIm9iamVjdCI9PXR5cGVvZiBhP2QuZXh0ZW5kKHt9LGEpOntjb21wbGV0ZTpjfHwhYyYmYnx8TShhKSYmYSxkdXJhdGlvbjphLGVhc2luZzpjJiYKYnx8YiYmIU0oYikmJmJ9O3JldHVybiBkLmZ4Lm9mZj9lLmR1cmF0aW9uPTA6Im51bWJlciIhPXR5cGVvZiBlLmR1cmF0aW9uJiYoZS5kdXJhdGlvbiBpbiBkLmZ4LnNwZWVkcz9lLmR1cmF0aW9uPWQuZnguc3BlZWRzW2UuZHVyYXRpb25dOmUuZHVyYXRpb249ZC5meC5zcGVlZHMuX2RlZmF1bHQpLG51bGwhPWUucXVldWUmJiEwIT09ZS5xdWV1ZXx8KGUucXVldWU9ImZ4IiksZS5vbGQ9ZS5jb21wbGV0ZSxlLmNvbXBsZXRlPWZ1bmN0aW9uKCl7TShlLm9sZCkmJmUub2xkLmNhbGwodGhpcyk7ZS5xdWV1ZSYmZC5kZXF1ZXVlKHRoaXMsZS5xdWV1ZSl9LGV9O2QuZm4uZXh0ZW5kKHtmYWRlVG86ZnVuY3Rpb24oYSxiLGMsZSl7cmV0dXJuIHRoaXMuZmlsdGVyKFFiKS5jc3MoIm9wYWNpdHkiLDApLnNob3coKS5lbmQoKS5hbmltYXRlKHtvcGFjaXR5OmJ9LGEsYyxlKX0sYW5pbWF0ZTpmdW5jdGlvbihhLGIsYyxlKXt2YXIgZj1kLmlzRW1wdHlPYmplY3QoYSksZz1kLnNwZWVkKGIsYyxlKTsKYj1mdW5jdGlvbigpe3ZhciBoPXgodGhpcyxkLmV4dGVuZCh7fSxhKSxnKTsoZnx8Ry5nZXQodGhpcywiZmluaXNoIikpJiZoLnN0b3AoITApfTtyZXR1cm4gYi5maW5pc2g9YixmfHwhMT09PWcucXVldWU\/dGhpcy5lYWNoKGIpOnRoaXMucXVldWUoZy5xdWV1ZSxiKX0sc3RvcDpmdW5jdGlvbihhLGIsYyl7dmFyIGU9ZnVuY3Rpb24oZil7dmFyIGc9Zi5zdG9wO2RlbGV0ZSBmLnN0b3A7ZyhjKX07cmV0dXJuInN0cmluZyIhPXR5cGVvZiBhJiYoYz1iLGI9YSxhPXZvaWQgMCksYiYmdGhpcy5xdWV1ZShhfHwiZngiLFtdKSx0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgZj0hMCxnPW51bGwhPWEmJmErInF1ZXVlSG9va3MiLGg9ZC50aW1lcnMsbT1HLmdldCh0aGlzKTtpZihnKW1bZ10mJm1bZ10uc3RvcCYmZShtW2ddKTtlbHNlIGZvcihnIGluIG0pbVtnXSYmbVtnXS5zdG9wJiZyZC50ZXN0KGcpJiZlKG1bZ10pO2ZvcihnPWgubGVuZ3RoO2ctLTspaFtnXS5lbGVtIT09dGhpc3x8bnVsbCE9CmEmJmhbZ10ucXVldWUhPT1hfHwoaFtnXS5hbmltLnN0b3AoYyksZj0hMSxoLnNwbGljZShnLDEpKTshZiYmY3x8ZC5kZXF1ZXVlKHRoaXMsYSl9KX0sZmluaXNoOmZ1bmN0aW9uKGEpe3JldHVybiExIT09YSYmKGE9YXx8ImZ4IiksdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIGI9Ry5nZXQodGhpcyksYz1iW2ErInF1ZXVlIl0sZT1iW2ErInF1ZXVlSG9va3MiXSxmPWQudGltZXJzLGc9Yz9jLmxlbmd0aDowO2IuZmluaXNoPSEwO2QucXVldWUodGhpcyxhLFtdKTtlJiZlLnN0b3AmJmUuc3RvcC5jYWxsKHRoaXMsITApO2ZvcihlPWYubGVuZ3RoO2UtLTspZltlXS5lbGVtPT09dGhpcyYmZltlXS5xdWV1ZT09PWEmJihmW2VdLmFuaW0uc3RvcCghMCksZi5zcGxpY2UoZSwxKSk7Zm9yKGU9MDtlPGc7ZSsrKWNbZV0mJmNbZV0uZmluaXNoJiZjW2VdLmZpbmlzaC5jYWxsKHRoaXMpO2RlbGV0ZSBiLmZpbmlzaH0pfX0pO2QuZWFjaChbInRvZ2dsZSIsInNob3ciLCJoaWRlIl0sZnVuY3Rpb24oYSwKYil7dmFyIGM9ZC5mbltiXTtkLmZuW2JdPWZ1bmN0aW9uKGUsZixnKXtyZXR1cm4gbnVsbD09ZXx8ImJvb2xlYW4iPT10eXBlb2YgZT9jLmFwcGx5KHRoaXMsYXJndW1lbnRzKTp0aGlzLmFuaW1hdGUodGIoYiwhMCksZSxmLGcpfX0pO2QuZWFjaCh7c2xpZGVEb3duOnRiKCJzaG93Iiksc2xpZGVVcDp0YigiaGlkZSIpLHNsaWRlVG9nZ2xlOnRiKCJ0b2dnbGUiKSxmYWRlSW46e29wYWNpdHk6InNob3cifSxmYWRlT3V0OntvcGFjaXR5OiJoaWRlIn0sZmFkZVRvZ2dsZTp7b3BhY2l0eToidG9nZ2xlIn19LGZ1bmN0aW9uKGEsYil7ZC5mblthXT1mdW5jdGlvbihjLGUsZil7cmV0dXJuIHRoaXMuYW5pbWF0ZShiLGMsZSxmKX19KTtkLnRpbWVycz1bXTtkLmZ4LnRpY2s9ZnVuY3Rpb24oKXt2YXIgYSxiPTAsYz1kLnRpbWVycztmb3Ioc2I9RGF0ZS5ub3coKTtiPGMubGVuZ3RoO2IrKykoYT1jW2JdKSgpfHxjW2JdIT09YXx8Yy5zcGxpY2UoYi0tLDEpO2MubGVuZ3RofHxkLmZ4LnN0b3AoKTsKc2I9dm9pZCAwfTtkLmZ4LnRpbWVyPWZ1bmN0aW9uKGEpe2QudGltZXJzLnB1c2goYSk7ZC5meC5zdGFydCgpfTtkLmZ4LmludGVydmFsPTEzO2QuZnguc3RhcnQ9ZnVuY3Rpb24oKXtYYnx8KFhiPSEwLENiKCkpfTtkLmZ4LnN0b3A9ZnVuY3Rpb24oKXtYYj1udWxsfTtkLmZ4LnNwZWVkcz17c2xvdzo2MDAsZmFzdDoyMDAsX2RlZmF1bHQ6NDAwfTtkLmZuLmRlbGF5PWZ1bmN0aW9uKGEsYil7cmV0dXJuIGE9ZC5meCYmZC5meC5zcGVlZHNbYV18fGEsYj1ifHwiZngiLHRoaXMucXVldWUoYixmdW5jdGlvbihjLGUpe3ZhciBmPW4uc2V0VGltZW91dChjLGEpO2Uuc3RvcD1mdW5jdGlvbigpe24uY2xlYXJUaW1lb3V0KGYpfX0pfTt2YXIgSWI9TC5jcmVhdGVFbGVtZW50KCJpbnB1dCIpLHNkPUwuY3JlYXRlRWxlbWVudCgic2VsZWN0IikuYXBwZW5kQ2hpbGQoTC5jcmVhdGVFbGVtZW50KCJvcHRpb24iKSk7SWIudHlwZT0iY2hlY2tib3giO04uY2hlY2tPbj0iIiE9PUliLnZhbHVlO04ub3B0U2VsZWN0ZWQ9CnNkLnNlbGVjdGVkOyhJYj1MLmNyZWF0ZUVsZW1lbnQoImlucHV0IikpLnZhbHVlPSJ0IjtJYi50eXBlPSJyYWRpbyI7Ti5yYWRpb1ZhbHVlPSJ0Ij09PUliLnZhbHVlO3ZhciBKYj1kLmV4cHIuYXR0ckhhbmRsZTtkLmZuLmV4dGVuZCh7YXR0cjpmdW5jdGlvbihhLGIpe3JldHVybiBYYSh0aGlzLGQuYXR0cixhLGIsMTxhcmd1bWVudHMubGVuZ3RoKX0scmVtb3ZlQXR0cjpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7ZC5yZW1vdmVBdHRyKHRoaXMsYSl9KX19KTtkLmV4dGVuZCh7YXR0cjpmdW5jdGlvbihhLGIsYyl7dmFyIGUsZixnPWEubm9kZVR5cGU7aWYoMyE9PWcmJjghPT1nJiYyIT09ZylyZXR1cm4idW5kZWZpbmVkIj09dHlwZW9mIGEuZ2V0QXR0cmlidXRlP2QucHJvcChhLGIsYyk6KDE9PT1nJiZkLmlzWE1MRG9jKGEpfHwoZj1kLmF0dHJIb29rc1tiLnRvTG93ZXJDYXNlKCldfHwoZC5leHByLm1hdGNoLmJvb2wudGVzdChiKT90ZDp2b2lkIDApKSwKdm9pZCAwIT09Yz9udWxsPT09Yz92b2lkIGQucmVtb3ZlQXR0cihhLGIpOmYmJiJzZXQiaW4gZiYmdm9pZCAwIT09KGU9Zi5zZXQoYSxjLGIpKT9lOihhLnNldEF0dHJpYnV0ZShiLGMrIiIpLGMpOmYmJiJnZXQiaW4gZiYmbnVsbCE9PShlPWYuZ2V0KGEsYikpP2U6bnVsbD09KGU9ZC5maW5kLmF0dHIoYSxiKSk\/dm9pZCAwOmUpfSxhdHRySG9va3M6e3R5cGU6e3NldDpmdW5jdGlvbihhLGIpe2lmKCFOLnJhZGlvVmFsdWUmJiJyYWRpbyI9PT1iJiZYKGEsImlucHV0Iikpe3ZhciBjPWEudmFsdWU7cmV0dXJuIGEuc2V0QXR0cmlidXRlKCJ0eXBlIixiKSxjJiYoYS52YWx1ZT1jKSxifX19fSxyZW1vdmVBdHRyOmZ1bmN0aW9uKGEsYil7dmFyIGM9MCxlPWImJmIubWF0Y2goTGEpO2lmKGUmJjE9PT1hLm5vZGVUeXBlKWZvcig7Yj1lW2MrK107KWEucmVtb3ZlQXR0cmlidXRlKGIpfX0pO3ZhciB0ZD17c2V0OmZ1bmN0aW9uKGEsYixjKXtyZXR1cm4hMT09PWI\/ZC5yZW1vdmVBdHRyKGEsCmMpOmEuc2V0QXR0cmlidXRlKGMsYyksY319O2QuZWFjaChkLmV4cHIubWF0Y2guYm9vbC5zb3VyY2UubWF0Y2goL1x3Ky9nKSxmdW5jdGlvbihhLGIpe3ZhciBjPUpiW2JdfHxkLmZpbmQuYXR0cjtKYltiXT1mdW5jdGlvbihlLGYsZyl7dmFyIGgsbSxsPWYudG9Mb3dlckNhc2UoKTtyZXR1cm4gZ3x8KG09SmJbbF0sSmJbbF09aCxoPW51bGwhPWMoZSxmLGcpP2w6bnVsbCxKYltsXT1tKSxofX0pO3ZhciB1ZD0vXig\/OmlucHV0fHNlbGVjdHx0ZXh0YXJlYXxidXR0b24pJC9pLHZkPS9eKD86YXxhcmVhKSQvaTtkLmZuLmV4dGVuZCh7cHJvcDpmdW5jdGlvbihhLGIpe3JldHVybiBYYSh0aGlzLGQucHJvcCxhLGIsMTxhcmd1bWVudHMubGVuZ3RoKX0scmVtb3ZlUHJvcDpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7ZGVsZXRlIHRoaXNbZC5wcm9wRml4W2FdfHxhXX0pfX0pO2QuZXh0ZW5kKHtwcm9wOmZ1bmN0aW9uKGEsYixjKXt2YXIgZSxmLGc9YS5ub2RlVHlwZTsKaWYoMyE9PWcmJjghPT1nJiYyIT09ZylyZXR1cm4gMT09PWcmJmQuaXNYTUxEb2MoYSl8fChiPWQucHJvcEZpeFtiXXx8YixmPWQucHJvcEhvb2tzW2JdKSx2b2lkIDAhPT1jP2YmJiJzZXQiaW4gZiYmdm9pZCAwIT09KGU9Zi5zZXQoYSxjLGIpKT9lOmFbYl09YzpmJiYiZ2V0ImluIGYmJm51bGwhPT0oZT1mLmdldChhLGIpKT9lOmFbYl19LHByb3BIb29rczp7dGFiSW5kZXg6e2dldDpmdW5jdGlvbihhKXt2YXIgYj1kLmZpbmQuYXR0cihhLCJ0YWJpbmRleCIpO3JldHVybiBiP3BhcnNlSW50KGIsMTApOnVkLnRlc3QoYS5ub2RlTmFtZSl8fHZkLnRlc3QoYS5ub2RlTmFtZSkmJmEuaHJlZj8wOi0xfX19LHByb3BGaXg6eyJmb3IiOiJodG1sRm9yIiwiY2xhc3MiOiJjbGFzc05hbWUifX0pO04ub3B0U2VsZWN0ZWR8fChkLnByb3BIb29rcy5zZWxlY3RlZD17Z2V0OmZ1bmN0aW9uKGEpe2E9YS5wYXJlbnROb2RlO3JldHVybiBhJiZhLnBhcmVudE5vZGUmJmEucGFyZW50Tm9kZS5zZWxlY3RlZEluZGV4LApudWxsfSxzZXQ6ZnVuY3Rpb24oYSl7YT1hLnBhcmVudE5vZGU7YSYmKGEuc2VsZWN0ZWRJbmRleCxhLnBhcmVudE5vZGUmJmEucGFyZW50Tm9kZS5zZWxlY3RlZEluZGV4KX19KTtkLmVhY2goInRhYkluZGV4IHJlYWRPbmx5IG1heExlbmd0aCBjZWxsU3BhY2luZyBjZWxsUGFkZGluZyByb3dTcGFuIGNvbFNwYW4gdXNlTWFwIGZyYW1lQm9yZGVyIGNvbnRlbnRFZGl0YWJsZSIuc3BsaXQoIiAiKSxmdW5jdGlvbigpe2QucHJvcEZpeFt0aGlzLnRvTG93ZXJDYXNlKCldPXRoaXN9KTtkLmZuLmV4dGVuZCh7YWRkQ2xhc3M6ZnVuY3Rpb24oYSl7dmFyIGIsYyxlLGYsZyxoO3JldHVybiBNKGEpP3RoaXMuZWFjaChmdW5jdGlvbihtKXtkKHRoaXMpLmFkZENsYXNzKGEuY2FsbCh0aGlzLG0sSCh0aGlzKSkpfSk6KGI9UChhKSkubGVuZ3RoP3RoaXMuZWFjaChmdW5jdGlvbigpe2lmKGU9SCh0aGlzKSxjPTE9PT10aGlzLm5vZGVUeXBlJiYiICIrQyhlKSsiICIpe2ZvcihnPTA7ZzxiLmxlbmd0aDtnKyspZj0KYltnXSwwPmMuaW5kZXhPZigiICIrZisiICIpJiYoYys9ZisiICIpO2g9QyhjKTtlIT09aCYmdGhpcy5zZXRBdHRyaWJ1dGUoImNsYXNzIixoKX19KTp0aGlzfSxyZW1vdmVDbGFzczpmdW5jdGlvbihhKXt2YXIgYixjLGUsZixnLGg7cmV0dXJuIE0oYSk\/dGhpcy5lYWNoKGZ1bmN0aW9uKG0pe2QodGhpcykucmVtb3ZlQ2xhc3MoYS5jYWxsKHRoaXMsbSxIKHRoaXMpKSl9KTphcmd1bWVudHMubGVuZ3RoPyhiPVAoYSkpLmxlbmd0aD90aGlzLmVhY2goZnVuY3Rpb24oKXtpZihlPUgodGhpcyksYz0xPT09dGhpcy5ub2RlVHlwZSYmIiAiK0MoZSkrIiAiKXtmb3IoZz0wO2c8Yi5sZW5ndGg7ZysrKWZvcihmPWJbZ107LTE8Yy5pbmRleE9mKCIgIitmKyIgIik7KWM9Yy5yZXBsYWNlKCIgIitmKyIgIiwiICIpO2g9QyhjKTtlIT09aCYmdGhpcy5zZXRBdHRyaWJ1dGUoImNsYXNzIixoKX19KTp0aGlzOnRoaXMuYXR0cigiY2xhc3MiLCIiKX0sdG9nZ2xlQ2xhc3M6ZnVuY3Rpb24oYSxiKXt2YXIgYywKZSxmLGcsaD10eXBlb2YgYSxtPSJzdHJpbmciPT09aHx8QXJyYXkuaXNBcnJheShhKTtyZXR1cm4gTShhKT90aGlzLmVhY2goZnVuY3Rpb24obCl7ZCh0aGlzKS50b2dnbGVDbGFzcyhhLmNhbGwodGhpcyxsLEgodGhpcyksYiksYil9KToiYm9vbGVhbiI9PXR5cGVvZiBiJiZtP2I\/dGhpcy5hZGRDbGFzcyhhKTp0aGlzLnJlbW92ZUNsYXNzKGEpOihjPVAoYSksdGhpcy5lYWNoKGZ1bmN0aW9uKCl7aWYobSlmb3IoZz1kKHRoaXMpLGY9MDtmPGMubGVuZ3RoO2YrKyllPWNbZl0sZy5oYXNDbGFzcyhlKT9nLnJlbW92ZUNsYXNzKGUpOmcuYWRkQ2xhc3MoZSk7ZWxzZSB2b2lkIDAhPT1hJiYiYm9vbGVhbiIhPT1ofHwoKGU9SCh0aGlzKSkmJkcuc2V0KHRoaXMsIl9fY2xhc3NOYW1lX18iLGUpLHRoaXMuc2V0QXR0cmlidXRlJiZ0aGlzLnNldEF0dHJpYnV0ZSgiY2xhc3MiLGV8fCExPT09YT8iIjpHLmdldCh0aGlzLCJfX2NsYXNzTmFtZV9fIil8fCIiKSl9KSl9LGhhc0NsYXNzOmZ1bmN0aW9uKGEpe3ZhciBiLApjPTA7Zm9yKGE9IiAiK2ErIiAiO2I9dGhpc1tjKytdOylpZigxPT09Yi5ub2RlVHlwZSYmLTE8KCIgIitDKEgoYikpKyIgIikuaW5kZXhPZihhKSlyZXR1cm4hMDtyZXR1cm4hMX19KTt2YXIgd2Q9L1xyL2c7ZC5mbi5leHRlbmQoe3ZhbDpmdW5jdGlvbihhKXt2YXIgYixjLGUsZj10aGlzWzBdO3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPU0oYSksdGhpcy5lYWNoKGZ1bmN0aW9uKGcpe3ZhciBoOzE9PT10aGlzLm5vZGVUeXBlJiYobnVsbD09KGg9ZT9hLmNhbGwodGhpcyxnLGQodGhpcykudmFsKCkpOmEpP2g9IiI6Im51bWJlciI9PXR5cGVvZiBoP2grPSIiOkFycmF5LmlzQXJyYXkoaCkmJihoPWQubWFwKGgsZnVuY3Rpb24obSl7cmV0dXJuIG51bGw9PW0\/IiI6bSsiIn0pKSwoYj1kLnZhbEhvb2tzW3RoaXMudHlwZV18fGQudmFsSG9va3NbdGhpcy5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpXSkmJiJzZXQiaW4gYiYmdm9pZCAwIT09Yi5zZXQodGhpcyxoLCJ2YWx1ZSIpfHwodGhpcy52YWx1ZT0KaCkpfSkpOmY\/KGI9ZC52YWxIb29rc1tmLnR5cGVdfHxkLnZhbEhvb2tzW2Yubm9kZU5hbWUudG9Mb3dlckNhc2UoKV0pJiYiZ2V0ImluIGImJnZvaWQgMCE9PShjPWIuZ2V0KGYsInZhbHVlIikpP2M6InN0cmluZyI9PXR5cGVvZihjPWYudmFsdWUpP2MucmVwbGFjZSh3ZCwiIik6bnVsbD09Yz8iIjpjOnZvaWQgMH19KTtkLmV4dGVuZCh7dmFsSG9va3M6e29wdGlvbjp7Z2V0OmZ1bmN0aW9uKGEpe3ZhciBiPWQuZmluZC5hdHRyKGEsInZhbHVlIik7cmV0dXJuIG51bGwhPWI\/YjpDKGQudGV4dChhKSl9fSxzZWxlY3Q6e2dldDpmdW5jdGlvbihhKXt2YXIgYixjLGU9YS5vcHRpb25zLGY9YS5zZWxlY3RlZEluZGV4LGc9InNlbGVjdC1vbmUiPT09YS50eXBlLGg9Zz9udWxsOltdLG09Zz9mKzE6ZS5sZW5ndGg7Zm9yKGM9MD5mP206Zz9mOjA7YzxtO2MrKylpZighKCEoYj1lW2NdKS5zZWxlY3RlZCYmYyE9PWZ8fGIuZGlzYWJsZWR8fGIucGFyZW50Tm9kZS5kaXNhYmxlZCYmWChiLnBhcmVudE5vZGUsCiJvcHRncm91cCIpKSl7aWYoYT1kKGIpLnZhbCgpLGcpcmV0dXJuIGE7aC5wdXNoKGEpfXJldHVybiBofSxzZXQ6ZnVuY3Rpb24oYSxiKXt2YXIgYyxlLGY9YS5vcHRpb25zO2I9ZC5tYWtlQXJyYXkoYik7Zm9yKHZhciBnPWYubGVuZ3RoO2ctLTspKChlPWZbZ10pLnNlbGVjdGVkPS0xPGQuaW5BcnJheShkLnZhbEhvb2tzLm9wdGlvbi5nZXQoZSksYikpJiYoYz0hMCk7cmV0dXJuIGN8fChhLnNlbGVjdGVkSW5kZXg9LTEpLGJ9fX19KTtkLmVhY2goWyJyYWRpbyIsImNoZWNrYm94Il0sZnVuY3Rpb24oKXtkLnZhbEhvb2tzW3RoaXNdPXtzZXQ6ZnVuY3Rpb24oYSxiKXtpZihBcnJheS5pc0FycmF5KGIpKXJldHVybiBhLmNoZWNrZWQ9LTE8ZC5pbkFycmF5KGQoYSkudmFsKCksYil9fTtOLmNoZWNrT258fChkLnZhbEhvb2tzW3RoaXNdLmdldD1mdW5jdGlvbihhKXtyZXR1cm4gbnVsbD09PWEuZ2V0QXR0cmlidXRlKCJ2YWx1ZSIpPyJvbiI6YS52YWx1ZX0pfSk7dmFyIEtiPW4ubG9jYXRpb24sCkRjPURhdGUubm93KCksaGM9L1w\/LztkLnBhcnNlWE1MPWZ1bmN0aW9uKGEpe3ZhciBiO2lmKCFhfHwic3RyaW5nIiE9dHlwZW9mIGEpcmV0dXJuIG51bGw7dHJ5e3ZhciBjPShuZXcgbi5ET01QYXJzZXIpLnBhcnNlRnJvbVN0cmluZyhhLCJ0ZXh0L3htbCIpfWNhdGNoKGUpe31yZXR1cm4gYj1jJiZjLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJwYXJzZXJlcnJvciIpWzBdLGMmJiFifHxkLmVycm9yKCJJbnZhbGlkIFhNTDogIisoYj9kLm1hcChiLmNoaWxkTm9kZXMsZnVuY3Rpb24oZSl7cmV0dXJuIGUudGV4dENvbnRlbnR9KS5qb2luKCJcbiIpOmEpKSxjfTt2YXIgRWM9L14oPzpmb2N1c2luZm9jdXN8Zm9jdXNvdXRibHVyKSQvLEZjPWZ1bmN0aW9uKGEpe2Euc3RvcFByb3BhZ2F0aW9uKCl9O2QuZXh0ZW5kKGQuZXZlbnQse3RyaWdnZXI6ZnVuY3Rpb24oYSxiLGMsZSl7dmFyIGYsZyxoLG0sbCx0LHc9W2N8fExdLHI9RmIuY2FsbChhLCJ0eXBlIik\/YS50eXBlOmEsej1GYi5jYWxsKGEsCiJuYW1lc3BhY2UiKT9hLm5hbWVzcGFjZS5zcGxpdCgiLiIpOltdO2lmKGY9dD1nPWM9Y3x8TCwzIT09Yy5ub2RlVHlwZSYmOCE9PWMubm9kZVR5cGUmJiFFYy50ZXN0KHIrZC5ldmVudC50cmlnZ2VyZWQpJiYoLTE8ci5pbmRleE9mKCIuIikmJihyPSh6PXIuc3BsaXQoIi4iKSkuc2hpZnQoKSx6LnNvcnQoKSksaD0wPnIuaW5kZXhPZigiOiIpJiYib24iK3IsKGE9YVtkLmV4cGFuZG9dP2E6bmV3IGQuRXZlbnQociwib2JqZWN0Ij09dHlwZW9mIGEmJmEpKS5pc1RyaWdnZXI9ZT8yOjMsYS5uYW1lc3BhY2U9ei5qb2luKCIuIiksYS5ybmFtZXNwYWNlPWEubmFtZXNwYWNlP25ldyBSZWdFeHAoIihefFxcLikiK3ouam9pbigiXFwuKD86LipcXC58KSIpKyIoXFwufCQpIik6bnVsbCxhLnJlc3VsdD12b2lkIDAsYS50YXJnZXR8fChhLnRhcmdldD1jKSxiPW51bGw9PWI\/W2FdOmQubWFrZUFycmF5KGIsW2FdKSxsPWQuZXZlbnQuc3BlY2lhbFtyXXx8e30sZXx8IWwudHJpZ2dlcnx8ITEhPT0KbC50cmlnZ2VyLmFwcGx5KGMsYikpKXtpZighZSYmIWwubm9CdWJibGUmJiFrYihjKSl7dmFyIEQ9bC5kZWxlZ2F0ZVR5cGV8fHI7Zm9yKEVjLnRlc3QoRCtyKXx8KGY9Zi5wYXJlbnROb2RlKTtmO2Y9Zi5wYXJlbnROb2RlKXcucHVzaChmKSxnPWY7Zz09PShjLm93bmVyRG9jdW1lbnR8fEwpJiZ3LnB1c2goZy5kZWZhdWx0Vmlld3x8Zy5wYXJlbnRXaW5kb3d8fG4pfWZvcih6PTA7KGY9d1t6KytdKSYmIWEuaXNQcm9wYWdhdGlvblN0b3BwZWQoKTspdD1mLGEudHlwZT0xPHo\/RDpsLmJpbmRUeXBlfHxyLChtPShHLmdldChmLCJldmVudHMiKXx8T2JqZWN0LmNyZWF0ZShudWxsKSlbYS50eXBlXSYmRy5nZXQoZiwiaGFuZGxlIikpJiZtLmFwcGx5KGYsYiksKG09aCYmZltoXSkmJm0uYXBwbHkmJkdiKGYpJiYoYS5yZXN1bHQ9bS5hcHBseShmLGIpLCExPT09YS5yZXN1bHQmJmEucHJldmVudERlZmF1bHQoKSk7cmV0dXJuIGEudHlwZT1yLGV8fGEuaXNEZWZhdWx0UHJldmVudGVkKCl8fApsLl9kZWZhdWx0JiYhMSE9PWwuX2RlZmF1bHQuYXBwbHkody5wb3AoKSxiKXx8IUdiKGMpfHxoJiZNKGNbcl0pJiYha2IoYykmJigoZz1jW2hdKSYmKGNbaF09bnVsbCksZC5ldmVudC50cmlnZ2VyZWQ9cixhLmlzUHJvcGFnYXRpb25TdG9wcGVkKCkmJnQuYWRkRXZlbnRMaXN0ZW5lcihyLEZjKSxjW3JdKCksYS5pc1Byb3BhZ2F0aW9uU3RvcHBlZCgpJiZ0LnJlbW92ZUV2ZW50TGlzdGVuZXIocixGYyksZC5ldmVudC50cmlnZ2VyZWQ9dm9pZCAwLGcmJihjW2hdPWcpKSxhLnJlc3VsdH19LHNpbXVsYXRlOmZ1bmN0aW9uKGEsYixjKXthPWQuZXh0ZW5kKG5ldyBkLkV2ZW50LGMse3R5cGU6YSxpc1NpbXVsYXRlZDohMH0pO2QuZXZlbnQudHJpZ2dlcihhLG51bGwsYil9fSk7ZC5mbi5leHRlbmQoe3RyaWdnZXI6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7ZC5ldmVudC50cmlnZ2VyKGEsYix0aGlzKX0pfSx0cmlnZ2VySGFuZGxlcjpmdW5jdGlvbihhLGIpe3ZhciBjPQp0aGlzWzBdO2lmKGMpcmV0dXJuIGQuZXZlbnQudHJpZ2dlcihhLGIsYywhMCl9fSk7dmFyIFVjPS9cW1xdJC8sR2M9L1xyP1xuL2cseGQ9L14oPzpzdWJtaXR8YnV0dG9ufGltYWdlfHJlc2V0fGZpbGUpJC9pLHlkPS9eKD86aW5wdXR8c2VsZWN0fHRleHRhcmVhfGtleWdlbikvaTtkLnBhcmFtPWZ1bmN0aW9uKGEsYil7dmFyIGMsZT1bXSxmPWZ1bmN0aW9uKGcsaCl7aD1NKGgpP2goKTpoO2VbZS5sZW5ndGhdPWVuY29kZVVSSUNvbXBvbmVudChnKSsiPSIrZW5jb2RlVVJJQ29tcG9uZW50KG51bGw9PWg\/IiI6aCl9O2lmKG51bGw9PWEpcmV0dXJuIiI7aWYoQXJyYXkuaXNBcnJheShhKXx8YS5qcXVlcnkmJiFkLmlzUGxhaW5PYmplY3QoYSkpZC5lYWNoKGEsZnVuY3Rpb24oKXtmKHRoaXMubmFtZSx0aGlzLnZhbHVlKX0pO2Vsc2UgZm9yKGMgaW4gYSllYShjLGFbY10sYixmKTtyZXR1cm4gZS5qb2luKCImIil9O2QuZm4uZXh0ZW5kKHtzZXJpYWxpemU6ZnVuY3Rpb24oKXtyZXR1cm4gZC5wYXJhbSh0aGlzLnNlcmlhbGl6ZUFycmF5KCkpfSwKc2VyaWFsaXplQXJyYXk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tYXAoZnVuY3Rpb24oKXt2YXIgYT1kLnByb3AodGhpcywiZWxlbWVudHMiKTtyZXR1cm4gYT9kLm1ha2VBcnJheShhKTp0aGlzfSkuZmlsdGVyKGZ1bmN0aW9uKCl7dmFyIGE9dGhpcy50eXBlO3JldHVybiB0aGlzLm5hbWUmJiFkKHRoaXMpLmlzKCI6ZGlzYWJsZWQiKSYmeWQudGVzdCh0aGlzLm5vZGVOYW1lKSYmIXhkLnRlc3QoYSkmJih0aGlzLmNoZWNrZWR8fCFIYi50ZXN0KGEpKX0pLm1hcChmdW5jdGlvbihhLGIpe2E9ZCh0aGlzKS52YWwoKTtyZXR1cm4gbnVsbD09YT9udWxsOkFycmF5LmlzQXJyYXkoYSk\/ZC5tYXAoYSxmdW5jdGlvbihjKXtyZXR1cm57bmFtZTpiLm5hbWUsdmFsdWU6Yy5yZXBsYWNlKEdjLCJcclxuIil9fSk6e25hbWU6Yi5uYW1lLHZhbHVlOmEucmVwbGFjZShHYywiXHJcbiIpfX0pLmdldCgpfX0pO3ZhciB6ZD0vJTIwL2csQWQ9LyMuKiQvLEJkPS8oWz8mXSlfPVteJl0qLyxDZD0vXiguKj8pOlsgXHRdKihbXlxyXG5dKikkL2dtLApEZD0vXig\/OkdFVHxIRUFEKSQvLEVkPS9eXC9cLy8sSGM9e30sY2M9e30sSWM9IiovIi5jb25jYXQoIioiKSxpYz1MLmNyZWF0ZUVsZW1lbnQoImEiKTtpYy5ocmVmPUtiLmhyZWY7ZC5leHRlbmQoe2FjdGl2ZTowLGxhc3RNb2RpZmllZDp7fSxldGFnOnt9LGFqYXhTZXR0aW5nczp7dXJsOktiLmhyZWYsdHlwZToiR0VUIixpc0xvY2FsOi9eKD86YWJvdXR8YXBwfGFwcC1zdG9yYWdlfC4rLWV4dGVuc2lvbnxmaWxlfHJlc3x3aWRnZXQpOiQvLnRlc3QoS2IucHJvdG9jb2wpLGdsb2JhbDohMCxwcm9jZXNzRGF0YTohMCxhc3luYzohMCxjb250ZW50VHlwZToiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkOyBjaGFyc2V0PVVURi04IixhY2NlcHRzOnsiKiI6SWMsdGV4dDoidGV4dC9wbGFpbiIsaHRtbDoidGV4dC9odG1sIix4bWw6ImFwcGxpY2F0aW9uL3htbCwgdGV4dC94bWwiLGpzb246ImFwcGxpY2F0aW9uL2pzb24sIHRleHQvamF2YXNjcmlwdCJ9LGNvbnRlbnRzOnt4bWw6L1xieG1sXGIvLApodG1sOi9cYmh0bWwvLGpzb246L1xianNvblxiL30scmVzcG9uc2VGaWVsZHM6e3htbDoicmVzcG9uc2VYTUwiLHRleHQ6InJlc3BvbnNlVGV4dCIsanNvbjoicmVzcG9uc2VKU09OIn0sY29udmVydGVyczp7IiogdGV4dCI6U3RyaW5nLCJ0ZXh0IGh0bWwiOiEwLCJ0ZXh0IGpzb24iOkpTT04ucGFyc2UsInRleHQgeG1sIjpkLnBhcnNlWE1MfSxmbGF0T3B0aW9uczp7dXJsOiEwLGNvbnRleHQ6ITB9fSxhamF4U2V0dXA6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYj9oYihoYihhLGQuYWpheFNldHRpbmdzKSxiKTpoYihkLmFqYXhTZXR0aW5ncyxhKX0sYWpheFByZWZpbHRlcjpRYShIYyksYWpheFRyYW5zcG9ydDpRYShjYyksYWpheDpmdW5jdGlvbihhLGIpe2Z1bmN0aW9uIGMoUyxoYSxpYixaKXt2YXIgcmEsdmEsa2EsTWEsdGEsVz1oYTtLfHwoSz0hMCxtJiZuLmNsZWFyVGltZW91dChtKSxlPXZvaWQgMCxnPVp8fCIiLFEucmVhZHlTdGF0ZT0wPFM\/NDowLHJhPTIwMDw9UyYmMzAwPlN8fAozMDQ9PT1TLGliJiYoTWE9ZnVuY3Rpb24oZmEsRGEsZGIpe2Zvcih2YXIgVmEsdWEsWSxsYSxJYT1mYS5jb250ZW50cyxtYT1mYS5kYXRhVHlwZXM7IioiPT09bWFbMF07KW1hLnNoaWZ0KCksdm9pZCAwPT09VmEmJihWYT1mYS5taW1lVHlwZXx8RGEuZ2V0UmVzcG9uc2VIZWFkZXIoIkNvbnRlbnQtVHlwZSIpKTtpZihWYSlmb3IodWEgaW4gSWEpaWYoSWFbdWFdJiZJYVt1YV0udGVzdChWYSkpe21hLnVuc2hpZnQodWEpO2JyZWFrfWlmKG1hWzBdaW4gZGIpWT1tYVswXTtlbHNle2Zvcih1YSBpbiBkYil7aWYoIW1hWzBdfHxmYS5jb252ZXJ0ZXJzW3VhKyIgIittYVswXV0pe1k9dWE7YnJlYWt9bGF8fChsYT11YSl9WT1ZfHxsYX1pZihZKXJldHVybiBZIT09bWFbMF0mJm1hLnVuc2hpZnQoWSksZGJbWV19KHIsUSxpYikpLCFyYSYmLTE8ZC5pbkFycmF5KCJzY3JpcHQiLHIuZGF0YVR5cGVzKSYmMD5kLmluQXJyYXkoImpzb24iLHIuZGF0YVR5cGVzKSYmKHIuY29udmVydGVyc1sidGV4dCBzY3JpcHQiXT0KZnVuY3Rpb24oKXt9KSxNYT1mdW5jdGlvbihmYSxEYSxkYixWYSl7dmFyIHVhLFksbGEsSWEsbWEsSGE9e30sdmI9ZmEuZGF0YVR5cGVzLnNsaWNlKCk7aWYodmJbMV0pZm9yKGxhIGluIGZhLmNvbnZlcnRlcnMpSGFbbGEudG9Mb3dlckNhc2UoKV09ZmEuY29udmVydGVyc1tsYV07Zm9yKFk9dmIuc2hpZnQoKTtZOylpZihmYS5yZXNwb25zZUZpZWxkc1tZXSYmKGRiW2ZhLnJlc3BvbnNlRmllbGRzW1ldXT1EYSksIW1hJiZWYSYmZmEuZGF0YUZpbHRlciYmKERhPWZhLmRhdGFGaWx0ZXIoRGEsZmEuZGF0YVR5cGUpKSxtYT1ZLFk9dmIuc2hpZnQoKSlpZigiKiI9PT1ZKVk9bWE7ZWxzZSBpZigiKiIhPT1tYSYmbWEhPT1ZKXtpZighKGxhPUhhW21hKyIgIitZXXx8SGFbIiogIitZXSkpZm9yKHVhIGluIEhhKWlmKChJYT11YS5zcGxpdCgiICIpKVsxXT09PVkmJihsYT1IYVttYSsiICIrSWFbMF1dfHxIYVsiKiAiK0lhWzBdXSkpeyEwPT09bGE\/bGE9SGFbdWFdOiEwIT09SGFbdWFdJiYoWT0KSWFbMF0sdmIudW5zaGlmdChJYVsxXSkpO2JyZWFrfWlmKCEwIT09bGEpaWYobGEmJmZhWyJ0aHJvd3MiXSlEYT1sYShEYSk7ZWxzZSB0cnl7RGE9bGEoRGEpfWNhdGNoKGZjKXtyZXR1cm57c3RhdGU6InBhcnNlcmVycm9yIixlcnJvcjpsYT9mYzoiTm8gY29udmVyc2lvbiBmcm9tICIrbWErIiB0byAiK1l9fX1yZXR1cm57c3RhdGU6InN1Y2Nlc3MiLGRhdGE6RGF9fShyLE1hLFEscmEpLHJhPyhyLmlmTW9kaWZpZWQmJigodGE9US5nZXRSZXNwb25zZUhlYWRlcigiTGFzdC1Nb2RpZmllZCIpKSYmKGQubGFzdE1vZGlmaWVkW2ZdPXRhKSwodGE9US5nZXRSZXNwb25zZUhlYWRlcigiZXRhZyIpKSYmKGQuZXRhZ1tmXT10YSkpLDIwND09PVN8fCJIRUFEIj09PXIudHlwZT9XPSJub2NvbnRlbnQiOjMwND09PVM\/Vz0ibm90bW9kaWZpZWQiOihXPU1hLnN0YXRlLHZhPU1hLmRhdGEscmE9IShrYT1NYS5lcnJvcikpKTooa2E9VywhUyYmV3x8KFc9ImVycm9yIiwwPlMmJihTPTApKSksUS5zdGF0dXM9ClMsUS5zdGF0dXNUZXh0PShoYXx8VykrIiIscmE\/Ri5yZXNvbHZlV2l0aCh6LFt2YSxXLFFdKTpGLnJlamVjdFdpdGgoeixbUSxXLGthXSksUS5zdGF0dXNDb2RlKGFhKSxhYT12b2lkIDAsbCYmRC50cmlnZ2VyKHJhPyJhamF4U3VjY2VzcyI6ImFqYXhFcnJvciIsW1EscixyYT92YTprYV0pLE8uZmlyZVdpdGgoeixbUSxXXSksbCYmKEQudHJpZ2dlcigiYWpheENvbXBsZXRlIixbUSxyXSksLS1kLmFjdGl2ZXx8ZC5ldmVudC50cmlnZ2VyKCJhamF4U3RvcCIpKSl9Im9iamVjdCI9PXR5cGVvZiBhJiYoYj1hLGE9dm9pZCAwKTtiPWJ8fHt9O3ZhciBlLGYsZyxoLG0sbCx0LHcscj1kLmFqYXhTZXR1cCh7fSxiKSx6PXIuY29udGV4dHx8cixEPXIuY29udGV4dCYmKHoubm9kZVR5cGV8fHouanF1ZXJ5KT9kKHopOmQuZXZlbnQsRj1kLkRlZmVycmVkKCksTz1kLkNhbGxiYWNrcygib25jZSBtZW1vcnkiKSxhYT1yLnN0YXR1c0NvZGV8fHt9LEdhPXt9LHFhPXt9LFNhPSJjYW5jZWxlZCIsUT0Ke3JlYWR5U3RhdGU6MCxnZXRSZXNwb25zZUhlYWRlcjpmdW5jdGlvbihTKXt2YXIgaGE7aWYoSyl7aWYoIWgpZm9yKGg9e307aGE9Q2QuZXhlYyhnKTspaFtoYVsxXS50b0xvd2VyQ2FzZSgpKyIgIl09KGhbaGFbMV0udG9Mb3dlckNhc2UoKSsiICJdfHxbXSkuY29uY2F0KGhhWzJdKTtoYT1oW1MudG9Mb3dlckNhc2UoKSsiICJdfXJldHVybiBudWxsPT1oYT9udWxsOmhhLmpvaW4oIiwgIil9LGdldEFsbFJlc3BvbnNlSGVhZGVyczpmdW5jdGlvbigpe3JldHVybiBLP2c6bnVsbH0sc2V0UmVxdWVzdEhlYWRlcjpmdW5jdGlvbihTLGhhKXtyZXR1cm4gbnVsbD09SyYmKFM9cWFbUy50b0xvd2VyQ2FzZSgpXT1xYVtTLnRvTG93ZXJDYXNlKCldfHxTLEdhW1NdPWhhKSx0aGlzfSxvdmVycmlkZU1pbWVUeXBlOmZ1bmN0aW9uKFMpe3JldHVybiBudWxsPT1LJiYoci5taW1lVHlwZT1TKSx0aGlzfSxzdGF0dXNDb2RlOmZ1bmN0aW9uKFMpe3ZhciBoYTtpZihTKWlmKEspUS5hbHdheXMoU1tRLnN0YXR1c10pOwplbHNlIGZvcihoYSBpbiBTKWFhW2hhXT1bYWFbaGFdLFNbaGFdXTtyZXR1cm4gdGhpc30sYWJvcnQ6ZnVuY3Rpb24oUyl7Uz1TfHxTYTtyZXR1cm4gZSYmZS5hYm9ydChTKSxjKDAsUyksdGhpc319O2lmKEYucHJvbWlzZShRKSxyLnVybD0oKGF8fHIudXJsfHxLYi5ocmVmKSsiIikucmVwbGFjZShFZCxLYi5wcm90b2NvbCsiLy8iKSxyLnR5cGU9Yi5tZXRob2R8fGIudHlwZXx8ci5tZXRob2R8fHIudHlwZSxyLmRhdGFUeXBlcz0oci5kYXRhVHlwZXx8IioiKS50b0xvd2VyQ2FzZSgpLm1hdGNoKExhKXx8WyIiXSxudWxsPT1yLmNyb3NzRG9tYWluKXthPUwuY3JlYXRlRWxlbWVudCgiYSIpO3RyeXthLmhyZWY9ci51cmwsYS5ocmVmPWEuaHJlZixyLmNyb3NzRG9tYWluPWljLnByb3RvY29sKyIvLyIraWMuaG9zdCE9YS5wcm90b2NvbCsiLy8iK2EuaG9zdH1jYXRjaChTKXtyLmNyb3NzRG9tYWluPSEwfX1pZihyLmRhdGEmJnIucHJvY2Vzc0RhdGEmJiJzdHJpbmciIT10eXBlb2Ygci5kYXRhJiYKKHIuZGF0YT1kLnBhcmFtKHIuZGF0YSxyLnRyYWRpdGlvbmFsKSksRWIoSGMscixiLFEpLEspcmV0dXJuIFE7Zm9yKHQgaW4obD1kLmV2ZW50JiZyLmdsb2JhbCkmJjA9PWQuYWN0aXZlKysmJmQuZXZlbnQudHJpZ2dlcigiYWpheFN0YXJ0Iiksci50eXBlPXIudHlwZS50b1VwcGVyQ2FzZSgpLHIuaGFzQ29udGVudD0hRGQudGVzdChyLnR5cGUpLGY9ci51cmwucmVwbGFjZShBZCwiIiksci5oYXNDb250ZW50P3IuZGF0YSYmci5wcm9jZXNzRGF0YSYmMD09PShyLmNvbnRlbnRUeXBlfHwiIikuaW5kZXhPZigiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIikmJihyLmRhdGE9ci5kYXRhLnJlcGxhY2UoemQsIisiKSk6KHc9ci51cmwuc2xpY2UoZi5sZW5ndGgpLHIuZGF0YSYmKHIucHJvY2Vzc0RhdGF8fCJzdHJpbmciPT10eXBlb2Ygci5kYXRhKSYmKGYrPShoYy50ZXN0KGYpPyImIjoiPyIpK3IuZGF0YSxkZWxldGUgci5kYXRhKSwhMT09PXIuY2FjaGUmJihmPWYucmVwbGFjZShCZCwKIiQxIiksdz0oaGMudGVzdChmKT8iJiI6Ij8iKSsiXz0iK0RjKysgK3cpLHIudXJsPWYrdyksci5pZk1vZGlmaWVkJiYoZC5sYXN0TW9kaWZpZWRbZl0mJlEuc2V0UmVxdWVzdEhlYWRlcigiSWYtTW9kaWZpZWQtU2luY2UiLGQubGFzdE1vZGlmaWVkW2ZdKSxkLmV0YWdbZl0mJlEuc2V0UmVxdWVzdEhlYWRlcigiSWYtTm9uZS1NYXRjaCIsZC5ldGFnW2ZdKSksKHIuZGF0YSYmci5oYXNDb250ZW50JiYhMSE9PXIuY29udGVudFR5cGV8fGIuY29udGVudFR5cGUpJiZRLnNldFJlcXVlc3RIZWFkZXIoIkNvbnRlbnQtVHlwZSIsci5jb250ZW50VHlwZSksUS5zZXRSZXF1ZXN0SGVhZGVyKCJBY2NlcHQiLHIuZGF0YVR5cGVzWzBdJiZyLmFjY2VwdHNbci5kYXRhVHlwZXNbMF1dP3IuYWNjZXB0c1tyLmRhdGFUeXBlc1swXV0rKCIqIiE9PXIuZGF0YVR5cGVzWzBdPyIsICIrSWMrIjsgcT0wLjAxIjoiIik6ci5hY2NlcHRzWyIqIl0pLHIuaGVhZGVycylRLnNldFJlcXVlc3RIZWFkZXIodCxyLmhlYWRlcnNbdF0pOwppZihyLmJlZm9yZVNlbmQmJighMT09PXIuYmVmb3JlU2VuZC5jYWxsKHosUSxyKXx8SykpcmV0dXJuIFEuYWJvcnQoKTtpZihTYT0iYWJvcnQiLE8uYWRkKHIuY29tcGxldGUpLFEuZG9uZShyLnN1Y2Nlc3MpLFEuZmFpbChyLmVycm9yKSxlPUViKGNjLHIsYixRKSl7aWYoUS5yZWFkeVN0YXRlPTEsbCYmRC50cmlnZ2VyKCJhamF4U2VuZCIsW1Escl0pLEspcmV0dXJuIFE7ci5hc3luYyYmMDxyLnRpbWVvdXQmJihtPW4uc2V0VGltZW91dChmdW5jdGlvbigpe1EuYWJvcnQoInRpbWVvdXQiKX0sci50aW1lb3V0KSk7dHJ5e3ZhciBLPSExO2Uuc2VuZChHYSxjKX1jYXRjaChTKXtpZihLKXRocm93IFM7YygtMSxTKX19ZWxzZSBjKC0xLCJObyBUcmFuc3BvcnQiKTtyZXR1cm4gUX0sZ2V0SlNPTjpmdW5jdGlvbihhLGIsYyl7cmV0dXJuIGQuZ2V0KGEsYixjLCJqc29uIil9LGdldFNjcmlwdDpmdW5jdGlvbihhLGIpe3JldHVybiBkLmdldChhLHZvaWQgMCxiLCJzY3JpcHQiKX19KTtkLmVhY2goWyJnZXQiLAoicG9zdCJdLGZ1bmN0aW9uKGEsYil7ZFtiXT1mdW5jdGlvbihjLGUsZixnKXtyZXR1cm4gTShlKSYmKGc9Z3x8ZixmPWUsZT12b2lkIDApLGQuYWpheChkLmV4dGVuZCh7dXJsOmMsdHlwZTpiLGRhdGFUeXBlOmcsZGF0YTplLHN1Y2Nlc3M6Zn0sZC5pc1BsYWluT2JqZWN0KGMpJiZjKSl9fSk7ZC5hamF4UHJlZmlsdGVyKGZ1bmN0aW9uKGEpe2Zvcih2YXIgYiBpbiBhLmhlYWRlcnMpImNvbnRlbnQtdHlwZSI9PT1iLnRvTG93ZXJDYXNlKCkmJihhLmNvbnRlbnRUeXBlPWEuaGVhZGVyc1tiXXx8IiIpfSk7ZC5fZXZhbFVybD1mdW5jdGlvbihhLGIsYyl7cmV0dXJuIGQuYWpheCh7dXJsOmEsdHlwZToiR0VUIixkYXRhVHlwZToic2NyaXB0IixjYWNoZTohMCxhc3luYzohMSxnbG9iYWw6ITEsY29udmVydGVyczp7InRleHQgc2NyaXB0IjpmdW5jdGlvbigpe319LGRhdGFGaWx0ZXI6ZnVuY3Rpb24oZSl7ZC5nbG9iYWxFdmFsKGUsYixjKX19KX07ZC5mbi5leHRlbmQoe3dyYXBBbGw6ZnVuY3Rpb24oYSl7dmFyIGI7CnJldHVybiB0aGlzWzBdJiYoTShhKSYmKGE9YS5jYWxsKHRoaXNbMF0pKSxiPWQoYSx0aGlzWzBdLm93bmVyRG9jdW1lbnQpLmVxKDApLmNsb25lKCEwKSx0aGlzWzBdLnBhcmVudE5vZGUmJmIuaW5zZXJ0QmVmb3JlKHRoaXNbMF0pLGIubWFwKGZ1bmN0aW9uKCl7Zm9yKHZhciBjPXRoaXM7Yy5maXJzdEVsZW1lbnRDaGlsZDspYz1jLmZpcnN0RWxlbWVudENoaWxkO3JldHVybiBjfSkuYXBwZW5kKHRoaXMpKSx0aGlzfSx3cmFwSW5uZXI6ZnVuY3Rpb24oYSl7cmV0dXJuIE0oYSk\/dGhpcy5lYWNoKGZ1bmN0aW9uKGIpe2QodGhpcykud3JhcElubmVyKGEuY2FsbCh0aGlzLGIpKX0pOnRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciBiPWQodGhpcyksYz1iLmNvbnRlbnRzKCk7Yy5sZW5ndGg\/Yy53cmFwQWxsKGEpOmIuYXBwZW5kKGEpfSl9LHdyYXA6ZnVuY3Rpb24oYSl7dmFyIGI9TShhKTtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKGMpe2QodGhpcykud3JhcEFsbChiP2EuY2FsbCh0aGlzLApjKTphKX0pfSx1bndyYXA6ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMucGFyZW50KGEpLm5vdCgiYm9keSIpLmVhY2goZnVuY3Rpb24oKXtkKHRoaXMpLnJlcGxhY2VXaXRoKHRoaXMuY2hpbGROb2Rlcyl9KSx0aGlzfX0pO2QuZXhwci5wc2V1ZG9zLmhpZGRlbj1mdW5jdGlvbihhKXtyZXR1cm4hZC5leHByLnBzZXVkb3MudmlzaWJsZShhKX07ZC5leHByLnBzZXVkb3MudmlzaWJsZT1mdW5jdGlvbihhKXtyZXR1cm4hIShhLm9mZnNldFdpZHRofHxhLm9mZnNldEhlaWdodHx8YS5nZXRDbGllbnRSZWN0cygpLmxlbmd0aCl9O2QuYWpheFNldHRpbmdzLnhocj1mdW5jdGlvbigpe3RyeXtyZXR1cm4gbmV3IG4uWE1MSHR0cFJlcXVlc3R9Y2F0Y2goYSl7fX07dmFyIEZkPXswOjIwMCwxMjIzOjIwNH0sTGI9ZC5hamF4U2V0dGluZ3MueGhyKCk7Ti5jb3JzPSEhTGImJiJ3aXRoQ3JlZGVudGlhbHMiaW4gTGI7Ti5hamF4PUxiPSEhTGI7ZC5hamF4VHJhbnNwb3J0KGZ1bmN0aW9uKGEpe3ZhciBiLApjO2lmKE4uY29yc3x8TGImJiFhLmNyb3NzRG9tYWluKXJldHVybntzZW5kOmZ1bmN0aW9uKGUsZil7dmFyIGcsaD1hLnhocigpO2lmKGgub3BlbihhLnR5cGUsYS51cmwsYS5hc3luYyxhLnVzZXJuYW1lLGEucGFzc3dvcmQpLGEueGhyRmllbGRzKWZvcihnIGluIGEueGhyRmllbGRzKWhbZ109YS54aHJGaWVsZHNbZ107Zm9yKGcgaW4gYS5taW1lVHlwZSYmaC5vdmVycmlkZU1pbWVUeXBlJiZoLm92ZXJyaWRlTWltZVR5cGUoYS5taW1lVHlwZSksYS5jcm9zc0RvbWFpbnx8ZVsiWC1SZXF1ZXN0ZWQtV2l0aCJdfHwoZVsiWC1SZXF1ZXN0ZWQtV2l0aCJdPSJYTUxIdHRwUmVxdWVzdCIpLGUpaC5zZXRSZXF1ZXN0SGVhZGVyKGcsZVtnXSk7Yj1mdW5jdGlvbihtKXtyZXR1cm4gZnVuY3Rpb24oKXtiJiYoYj1jPWgub25sb2FkPWgub25lcnJvcj1oLm9uYWJvcnQ9aC5vbnRpbWVvdXQ9aC5vbnJlYWR5c3RhdGVjaGFuZ2U9bnVsbCwiYWJvcnQiPT09bT9oLmFib3J0KCk6ImVycm9yIj09PW0\/CiJudW1iZXIiIT10eXBlb2YgaC5zdGF0dXM\/ZigwLCJlcnJvciIpOmYoaC5zdGF0dXMsaC5zdGF0dXNUZXh0KTpmKEZkW2guc3RhdHVzXXx8aC5zdGF0dXMsaC5zdGF0dXNUZXh0LCJ0ZXh0IiE9PShoLnJlc3BvbnNlVHlwZXx8InRleHQiKXx8InN0cmluZyIhPXR5cGVvZiBoLnJlc3BvbnNlVGV4dD97YmluYXJ5OmgucmVzcG9uc2V9Ont0ZXh0OmgucmVzcG9uc2VUZXh0fSxoLmdldEFsbFJlc3BvbnNlSGVhZGVycygpKSl9fTtoLm9ubG9hZD1iKCk7Yz1oLm9uZXJyb3I9aC5vbnRpbWVvdXQ9YigiZXJyb3IiKTt2b2lkIDAhPT1oLm9uYWJvcnQ\/aC5vbmFib3J0PWM6aC5vbnJlYWR5c3RhdGVjaGFuZ2U9ZnVuY3Rpb24oKXs0PT09aC5yZWFkeVN0YXRlJiZuLnNldFRpbWVvdXQoZnVuY3Rpb24oKXtiJiZjKCl9KX07Yj1iKCJhYm9ydCIpO3RyeXtoLnNlbmQoYS5oYXNDb250ZW50JiZhLmRhdGF8fG51bGwpfWNhdGNoKG0pe2lmKGIpdGhyb3cgbTt9fSxhYm9ydDpmdW5jdGlvbigpe2ImJgpiKCl9fX0pO2QuYWpheFByZWZpbHRlcihmdW5jdGlvbihhKXthLmNyb3NzRG9tYWluJiYoYS5jb250ZW50cy5zY3JpcHQ9ITEpfSk7ZC5hamF4U2V0dXAoe2FjY2VwdHM6e3NjcmlwdDoidGV4dC9qYXZhc2NyaXB0LCBhcHBsaWNhdGlvbi9qYXZhc2NyaXB0LCBhcHBsaWNhdGlvbi9lY21hc2NyaXB0LCBhcHBsaWNhdGlvbi94LWVjbWFzY3JpcHQifSxjb250ZW50czp7c2NyaXB0Oi9cYig\/OmphdmF8ZWNtYSlzY3JpcHRcYi99LGNvbnZlcnRlcnM6eyJ0ZXh0IHNjcmlwdCI6ZnVuY3Rpb24oYSl7cmV0dXJuIGQuZ2xvYmFsRXZhbChhKSxhfX19KTtkLmFqYXhQcmVmaWx0ZXIoInNjcmlwdCIsZnVuY3Rpb24oYSl7dm9pZCAwPT09YS5jYWNoZSYmKGEuY2FjaGU9ITEpO2EuY3Jvc3NEb21haW4mJihhLnR5cGU9IkdFVCIpfSk7ZC5hamF4VHJhbnNwb3J0KCJzY3JpcHQiLGZ1bmN0aW9uKGEpe3ZhciBiLGM7aWYoYS5jcm9zc0RvbWFpbnx8YS5zY3JpcHRBdHRycylyZXR1cm57c2VuZDpmdW5jdGlvbihlLApmKXtiPWQoIjxzY3JpcHQ+IikuYXR0cihhLnNjcmlwdEF0dHJzfHx7fSkucHJvcCh7Y2hhcnNldDphLnNjcmlwdENoYXJzZXQsc3JjOmEudXJsfSkub24oImxvYWQgZXJyb3IiLGM9ZnVuY3Rpb24oZyl7Yi5yZW1vdmUoKTtjPW51bGw7ZyYmZigiZXJyb3IiPT09Zy50eXBlPzQwNDoyMDAsZy50eXBlKX0pO0wuaGVhZC5hcHBlbmRDaGlsZChiWzBdKX0sYWJvcnQ6ZnVuY3Rpb24oKXtjJiZjKCl9fX0pO3ZhciBKYyxLYz1bXSxqYz0vKD0pXD8oPz0mfCQpfFw\/XD8vO2QuYWpheFNldHVwKHtqc29ucDoiY2FsbGJhY2siLGpzb25wQ2FsbGJhY2s6ZnVuY3Rpb24oKXt2YXIgYT1LYy5wb3AoKXx8ZC5leHBhbmRvKyJfIitEYysrO3JldHVybiB0aGlzW2FdPSEwLGF9fSk7ZC5hamF4UHJlZmlsdGVyKCJqc29uIGpzb25wIixmdW5jdGlvbihhLGIsYyl7dmFyIGUsZixnLGg9ITEhPT1hLmpzb25wJiYoamMudGVzdChhLnVybCk\/InVybCI6InN0cmluZyI9PXR5cGVvZiBhLmRhdGEmJjA9PT0oYS5jb250ZW50VHlwZXx8CiIiKS5pbmRleE9mKCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiKSYmamMudGVzdChhLmRhdGEpJiYiZGF0YSIpO2lmKGh8fCJqc29ucCI9PT1hLmRhdGFUeXBlc1swXSlyZXR1cm4gZT1hLmpzb25wQ2FsbGJhY2s9TShhLmpzb25wQ2FsbGJhY2spP2EuanNvbnBDYWxsYmFjaygpOmEuanNvbnBDYWxsYmFjayxoP2FbaF09YVtoXS5yZXBsYWNlKGpjLCIkMSIrZSk6ITEhPT1hLmpzb25wJiYoYS51cmwrPShoYy50ZXN0KGEudXJsKT8iJiI6Ij8iKSthLmpzb25wKyI9IitlKSxhLmNvbnZlcnRlcnNbInNjcmlwdCBqc29uIl09ZnVuY3Rpb24oKXtyZXR1cm4gZ3x8ZC5lcnJvcihlKyIgd2FzIG5vdCBjYWxsZWQiKSxnWzBdfSxhLmRhdGFUeXBlc1swXT0ianNvbiIsZj1uW2VdLG5bZV09ZnVuY3Rpb24oKXtnPWFyZ3VtZW50c30sYy5hbHdheXMoZnVuY3Rpb24oKXt2b2lkIDA9PT1mP2QobikucmVtb3ZlUHJvcChlKTpuW2VdPWY7YVtlXSYmKGEuanNvbnBDYWxsYmFjaz1iLmpzb25wQ2FsbGJhY2ssCktjLnB1c2goZSkpO2cmJk0oZikmJmYoZ1swXSk7Zz1mPXZvaWQgMH0pLCJzY3JpcHQifSk7Ti5jcmVhdGVIVE1MRG9jdW1lbnQ9KChKYz1MLmltcGxlbWVudGF0aW9uLmNyZWF0ZUhUTUxEb2N1bWVudCgiIikuYm9keSkuaW5uZXJIVE1MPSI8Zm9ybT48L2Zvcm0+PGZvcm0+PC9mb3JtPiIsMj09PUpjLmNoaWxkTm9kZXMubGVuZ3RoKTtkLnBhcnNlSFRNTD1mdW5jdGlvbihhLGIsYyl7cmV0dXJuInN0cmluZyIhPXR5cGVvZiBhP1tdOigiYm9vbGVhbiI9PXR5cGVvZiBiJiYoYz1iLGI9ITEpLGJ8fChOLmNyZWF0ZUhUTUxEb2N1bWVudD8oKGU9KGI9TC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVIVE1MRG9jdW1lbnQoIiIpKS5jcmVhdGVFbGVtZW50KCJiYXNlIikpLmhyZWY9TC5sb2NhdGlvbi5ocmVmLGIuaGVhZC5hcHBlbmRDaGlsZChlKSk6Yj1MKSxnPSFjJiZbXSwoZj15Yy5leGVjKGEpKT9bYi5jcmVhdGVFbGVtZW50KGZbMV0pXTooZj1SYihbYV0sYixnKSxnJiZnLmxlbmd0aCYmZChnKS5yZW1vdmUoKSwKZC5tZXJnZShbXSxmLmNoaWxkTm9kZXMpKSk7dmFyIGUsZixnfTtkLmZuLmxvYWQ9ZnVuY3Rpb24oYSxiLGMpe3ZhciBlLGYsZyxoPXRoaXMsbT1hLmluZGV4T2YoIiAiKTtyZXR1cm4tMTxtJiYoZT1DKGEuc2xpY2UobSkpLGE9YS5zbGljZSgwLG0pKSxNKGIpPyhjPWIsYj12b2lkIDApOmImJiJvYmplY3QiPT10eXBlb2YgYiYmKGY9IlBPU1QiKSwwPGgubGVuZ3RoJiZkLmFqYXgoe3VybDphLHR5cGU6Znx8IkdFVCIsZGF0YVR5cGU6Imh0bWwiLGRhdGE6Yn0pLmRvbmUoZnVuY3Rpb24obCl7Zz1hcmd1bWVudHM7aC5odG1sKGU\/ZCgiPGRpdj4iKS5hcHBlbmQoZC5wYXJzZUhUTUwobCkpLmZpbmQoZSk6bCl9KS5hbHdheXMoYyYmZnVuY3Rpb24obCx0KXtoLmVhY2goZnVuY3Rpb24oKXtjLmFwcGx5KHRoaXMsZ3x8W2wucmVzcG9uc2VUZXh0LHQsbF0pfSl9KSx0aGlzfTtkLmV4cHIucHNldWRvcy5hbmltYXRlZD1mdW5jdGlvbihhKXtyZXR1cm4gZC5ncmVwKGQudGltZXJzLGZ1bmN0aW9uKGIpe3JldHVybiBhPT09CmIuZWxlbX0pLmxlbmd0aH07ZC5vZmZzZXQ9e3NldE9mZnNldDpmdW5jdGlvbihhLGIsYyl7dmFyIGUsZixnLGg9ZC5jc3MoYSwicG9zaXRpb24iKSxtPWQoYSksbD17fTsic3RhdGljIj09PWgmJihhLnN0eWxlLnBvc2l0aW9uPSJyZWxhdGl2ZSIpO3ZhciB0PW0ub2Zmc2V0KCksdz1kLmNzcyhhLCJ0b3AiKSxyPWQuY3NzKGEsImxlZnQiKTsoImFic29sdXRlIj09PWh8fCJmaXhlZCI9PT1oKSYmLTE8KHcrcikuaW5kZXhPZigiYXV0byIpPyhnPShlPW0ucG9zaXRpb24oKSkudG9wLGY9ZS5sZWZ0KTooZz1wYXJzZUZsb2F0KHcpfHwwLGY9cGFyc2VGbG9hdChyKXx8MCk7TShiKSYmKGI9Yi5jYWxsKGEsYyxkLmV4dGVuZCh7fSx0KSkpO251bGwhPWIudG9wJiYobC50b3A9Yi50b3AtdC50b3ArZyk7bnVsbCE9Yi5sZWZ0JiYobC5sZWZ0PWIubGVmdC10LmxlZnQrZik7InVzaW5nImluIGI\/Yi51c2luZy5jYWxsKGEsbCk6bS5jc3MobCl9fTtkLmZuLmV4dGVuZCh7b2Zmc2V0OmZ1bmN0aW9uKGEpe2lmKGFyZ3VtZW50cy5sZW5ndGgpcmV0dXJuIHZvaWQgMD09PQphP3RoaXM6dGhpcy5lYWNoKGZ1bmN0aW9uKGYpe2Qub2Zmc2V0LnNldE9mZnNldCh0aGlzLGEsZil9KTt2YXIgYixjLGU9dGhpc1swXTtyZXR1cm4gZT9lLmdldENsaWVudFJlY3RzKCkubGVuZ3RoPyhiPWUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksYz1lLm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXcse3RvcDpiLnRvcCtjLnBhZ2VZT2Zmc2V0LGxlZnQ6Yi5sZWZ0K2MucGFnZVhPZmZzZXR9KTp7dG9wOjAsbGVmdDowfTp2b2lkIDB9LHBvc2l0aW9uOmZ1bmN0aW9uKCl7aWYodGhpc1swXSl7dmFyIGEsYj10aGlzWzBdLGM9e3RvcDowLGxlZnQ6MH07aWYoImZpeGVkIj09PWQuY3NzKGIsInBvc2l0aW9uIikpdmFyIGU9Yi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtlbHNle2U9dGhpcy5vZmZzZXQoKTt2YXIgZj1iLm93bmVyRG9jdW1lbnQ7Zm9yKGE9Yi5vZmZzZXRQYXJlbnR8fGYuZG9jdW1lbnRFbGVtZW50O2EmJihhPT09Zi5ib2R5fHxhPT09Zi5kb2N1bWVudEVsZW1lbnQpJiYKInN0YXRpYyI9PT1kLmNzcyhhLCJwb3NpdGlvbiIpOylhPWEucGFyZW50Tm9kZTthJiZhIT09YiYmMT09PWEubm9kZVR5cGUmJigoYz1kKGEpLm9mZnNldCgpKS50b3ArPWQuY3NzKGEsImJvcmRlclRvcFdpZHRoIiwhMCksYy5sZWZ0Kz1kLmNzcyhhLCJib3JkZXJMZWZ0V2lkdGgiLCEwKSl9cmV0dXJue3RvcDplLnRvcC1jLnRvcC1kLmNzcyhiLCJtYXJnaW5Ub3AiLCEwKSxsZWZ0OmUubGVmdC1jLmxlZnQtZC5jc3MoYiwibWFyZ2luTGVmdCIsITApfX19LG9mZnNldFBhcmVudDpmdW5jdGlvbigpe3JldHVybiB0aGlzLm1hcChmdW5jdGlvbigpe2Zvcih2YXIgYT10aGlzLm9mZnNldFBhcmVudDthJiYic3RhdGljIj09PWQuY3NzKGEsInBvc2l0aW9uIik7KWE9YS5vZmZzZXRQYXJlbnQ7cmV0dXJuIGF8fGpifSl9fSk7ZC5lYWNoKHtzY3JvbGxMZWZ0OiJwYWdlWE9mZnNldCIsc2Nyb2xsVG9wOiJwYWdlWU9mZnNldCJ9LGZ1bmN0aW9uKGEsYil7dmFyIGM9InBhZ2VZT2Zmc2V0Ij09PQpiO2QuZm5bYV09ZnVuY3Rpb24oZSl7cmV0dXJuIFhhKHRoaXMsZnVuY3Rpb24oZixnLGgpe3ZhciBtO2lmKGtiKGYpP209Zjo5PT09Zi5ub2RlVHlwZSYmKG09Zi5kZWZhdWx0Vmlldyksdm9pZCAwPT09aClyZXR1cm4gbT9tW2JdOmZbZ107bT9tLnNjcm9sbFRvKGM\/bS5wYWdlWE9mZnNldDpoLGM\/aDptLnBhZ2VZT2Zmc2V0KTpmW2ddPWh9LGEsZSxhcmd1bWVudHMubGVuZ3RoKX19KTtkLmVhY2goWyJ0b3AiLCJsZWZ0Il0sZnVuY3Rpb24oYSxiKXtkLmNzc0hvb2tzW2JdPVZiKE4ucGl4ZWxQb3NpdGlvbixmdW5jdGlvbihjLGUpe2lmKGUpcmV0dXJuIGU9S2EoYyxiKSxiYy50ZXN0KGUpP2QoYykucG9zaXRpb24oKVtiXSsicHgiOmV9KX0pO2QuZWFjaCh7SGVpZ2h0OiJoZWlnaHQiLFdpZHRoOiJ3aWR0aCJ9LGZ1bmN0aW9uKGEsYil7ZC5lYWNoKHtwYWRkaW5nOiJpbm5lciIrYSxjb250ZW50OmIsIiI6Im91dGVyIithfSxmdW5jdGlvbihjLGUpe2QuZm5bZV09ZnVuY3Rpb24oZiwKZyl7dmFyIGg9YXJndW1lbnRzLmxlbmd0aCYmKGN8fCJib29sZWFuIiE9dHlwZW9mIGYpLG09Y3x8KCEwPT09Znx8ITA9PT1nPyJtYXJnaW4iOiJib3JkZXIiKTtyZXR1cm4gWGEodGhpcyxmdW5jdGlvbihsLHQsdyl7dmFyIHI7cmV0dXJuIGtiKGwpPzA9PT1lLmluZGV4T2YoIm91dGVyIik\/bFsiaW5uZXIiK2FdOmwuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50WyJjbGllbnQiK2FdOjk9PT1sLm5vZGVUeXBlPyhyPWwuZG9jdW1lbnRFbGVtZW50LE1hdGgubWF4KGwuYm9keVsic2Nyb2xsIithXSxyWyJzY3JvbGwiK2FdLGwuYm9keVsib2Zmc2V0IithXSxyWyJvZmZzZXQiK2FdLHJbImNsaWVudCIrYV0pKTp2b2lkIDA9PT13P2QuY3NzKGwsdCxtKTpkLnN0eWxlKGwsdCx3LG0pfSxiLGg\/Zjp2b2lkIDAsaCl9fSl9KTtkLmVhY2goImFqYXhTdGFydCBhamF4U3RvcCBhamF4Q29tcGxldGUgYWpheEVycm9yIGFqYXhTdWNjZXNzIGFqYXhTZW5kIi5zcGxpdCgiICIpLGZ1bmN0aW9uKGEsCmIpe2QuZm5bYl09ZnVuY3Rpb24oYyl7cmV0dXJuIHRoaXMub24oYixjKX19KTtkLmZuLmV4dGVuZCh7YmluZDpmdW5jdGlvbihhLGIsYyl7cmV0dXJuIHRoaXMub24oYSxudWxsLGIsYyl9LHVuYmluZDpmdW5jdGlvbihhLGIpe3JldHVybiB0aGlzLm9mZihhLG51bGwsYil9LGRlbGVnYXRlOmZ1bmN0aW9uKGEsYixjLGUpe3JldHVybiB0aGlzLm9uKGIsYSxjLGUpfSx1bmRlbGVnYXRlOmZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gMT09PWFyZ3VtZW50cy5sZW5ndGg\/dGhpcy5vZmYoYSwiKioiKTp0aGlzLm9mZihiLGF8fCIqKiIsYyl9LGhvdmVyOmZ1bmN0aW9uKGEsYil7cmV0dXJuIHRoaXMubW91c2VlbnRlcihhKS5tb3VzZWxlYXZlKGJ8fGEpfX0pO2QuZWFjaCgiYmx1ciBmb2N1cyBmb2N1c2luIGZvY3Vzb3V0IHJlc2l6ZSBzY3JvbGwgY2xpY2sgZGJsY2xpY2sgbW91c2Vkb3duIG1vdXNldXAgbW91c2Vtb3ZlIG1vdXNlb3ZlciBtb3VzZW91dCBtb3VzZWVudGVyIG1vdXNlbGVhdmUgY2hhbmdlIHNlbGVjdCBzdWJtaXQga2V5ZG93biBrZXlwcmVzcyBrZXl1cCBjb250ZXh0bWVudSIuc3BsaXQoIiAiKSwKZnVuY3Rpb24oYSxiKXtkLmZuW2JdPWZ1bmN0aW9uKGMsZSl7cmV0dXJuIDA8YXJndW1lbnRzLmxlbmd0aD90aGlzLm9uKGIsbnVsbCxjLGUpOnRoaXMudHJpZ2dlcihiKX19KTt2YXIgR2Q9L15bXHNcdUZFRkZceEEwXSt8KFteXHNcdUZFRkZceEEwXSlbXHNcdUZFRkZceEEwXSskL2c7ZC5wcm94eT1mdW5jdGlvbihhLGIpe3ZhciBjLGUsZjtpZigic3RyaW5nIj09dHlwZW9mIGImJihjPWFbYl0sYj1hLGE9YyksTShhKSlyZXR1cm4gZT15YS5jYWxsKGFyZ3VtZW50cywyKSwoZj1mdW5jdGlvbigpe3JldHVybiBhLmFwcGx5KGJ8fHRoaXMsZS5jb25jYXQoeWEuY2FsbChhcmd1bWVudHMpKSl9KS5ndWlkPWEuZ3VpZD1hLmd1aWR8fGQuZ3VpZCsrLGZ9O2QuaG9sZFJlYWR5PWZ1bmN0aW9uKGEpe2E\/ZC5yZWFkeVdhaXQrKzpkLnJlYWR5KCEwKX07ZC5pc0FycmF5PUFycmF5LmlzQXJyYXk7ZC5wYXJzZUpTT049SlNPTi5wYXJzZTtkLm5vZGVOYW1lPVg7ZC5pc0Z1bmN0aW9uPU07ZC5pc1dpbmRvdz0Ka2I7ZC5jYW1lbENhc2U9QmE7ZC50eXBlPVU7ZC5ub3c9RGF0ZS5ub3c7ZC5pc051bWVyaWM9ZnVuY3Rpb24oYSl7dmFyIGI9ZC50eXBlKGEpO3JldHVybigibnVtYmVyIj09PWJ8fCJzdHJpbmciPT09YikmJiFpc05hTihhLXBhcnNlRmxvYXQoYSkpfTtkLnRyaW09ZnVuY3Rpb24oYSl7cmV0dXJuIG51bGw9PWE\/IiI6KGErIiIpLnJlcGxhY2UoR2QsIiQxIil9OyJmdW5jdGlvbiI9PXR5cGVvZiBkZWZpbmUmJmRlZmluZS5hbWQmJmRlZmluZSgianF1ZXJ5IixbXSxmdW5jdGlvbigpe3JldHVybiBkfSk7dmFyIEhkPW4ualF1ZXJ5LElkPW4uJDtyZXR1cm4gZC5ub0NvbmZsaWN0PWZ1bmN0aW9uKGEpe3JldHVybiBuLiQ9PT1kJiYobi4kPUlkKSxhJiZuLmpRdWVyeT09PWQmJihuLmpRdWVyeT1IZCksZH0sInVuZGVmaW5lZCI9PXR5cGVvZiBkYSYmKG4ualF1ZXJ5PW4uJD1kKSxkfSk7dmFyIG1hdGNoZWQsYnJvd3NlcjsKalF1ZXJ5LnVhTWF0Y2g9ZnVuY3Rpb24obil7bj1uLnRvTG93ZXJDYXNlKCk7bj0vKGNocm9tZSlbIFwvXShbXHcuXSspLy5leGVjKG4pfHwvKHdlYmtpdClbIFwvXShbXHcuXSspLy5leGVjKG4pfHwvKG9wZXJhKSg\/Oi4qdmVyc2lvbnwpWyBcL10oW1x3Ll0rKS8uZXhlYyhuKXx8Lyhtc2llKSAoW1x3Ll0rKS8uZXhlYyhuKXx8MD5uLmluZGV4T2YoImNvbXBhdGlibGUiKSYmLyhtb3ppbGxhKSg\/Oi4qPyBydjooW1x3Ll0rKXwpLy5leGVjKG4pfHxbXTtyZXR1cm57YnJvd3NlcjpuWzFdfHwiIix2ZXJzaW9uOm5bMl18fCIwIn19O21hdGNoZWQ9alF1ZXJ5LnVhTWF0Y2gobmF2aWdhdG9yLnVzZXJBZ2VudCk7YnJvd3Nlcj17fTttYXRjaGVkLmJyb3dzZXImJihicm93c2VyW21hdGNoZWQuYnJvd3Nlcl09ITAsYnJvd3Nlci52ZXJzaW9uPW1hdGNoZWQudmVyc2lvbik7YnJvd3Nlci5jaHJvbWU\/YnJvd3Nlci53ZWJraXQ9ITA6YnJvd3Nlci53ZWJraXQmJihicm93c2VyLnNhZmFyaT0hMCk7CmpRdWVyeS5icm93c2VyPWJyb3dzZXI7CihmdW5jdGlvbihuKXsiZnVuY3Rpb24iPT09dHlwZW9mIGRlZmluZSYmZGVmaW5lLmFtZD9kZWZpbmUoWyJqcXVlcnkiXSxmdW5jdGlvbihkYSl7cmV0dXJuIG4oZGEsd2luZG93KX0pOiJvYmplY3QiPT09dHlwZW9mIG1vZHVsZSYmbW9kdWxlLmV4cG9ydHM\/bW9kdWxlLmV4cG9ydHM9bihyZXF1aXJlKCJqcXVlcnkiKSx3aW5kb3cpOm4oalF1ZXJ5LHdpbmRvdyl9KShmdW5jdGlvbihuLGRhKXtmdW5jdGlvbiB3YSh1KXthOnt2YXIgeD0vXihcZCspXC4oXGQrKVwuKFxkKykvLEM9eC5leGVjKG4uZm4uanF1ZXJ5KXx8W107eD14LmV4ZWModSl8fFtdO2Zvcih1PTE7Mz49dTt1Kyspe2lmKCtDW3VdPit4W3VdKXtDPTE7YnJlYWsgYX1pZigrQ1t1XTwreFt1XSl7Qz0tMTticmVhayBhfX1DPTB9cmV0dXJuIDA8PUN9ZnVuY3Rpb24gVSh1LHgpe3ZhciBDPWRhLmNvbnNvbGU7IW4ubWlncmF0ZUlzUGF0Y2hFbmFibGVkKHUpfHxuLm1pZ3JhdGVEZWR1cGxpY2F0ZVdhcm5pbmdzJiZtYlt4XXx8CihtYlt4XT0hMCxuLm1pZ3JhdGVXYXJuaW5ncy5wdXNoKHgrIiBbIit1KyJdIiksQyYmQy53YXJuJiYhbi5taWdyYXRlTXV0ZSYmKEMud2FybigiSlFNSUdSQVRFOiAiK3gpLG4ubWlncmF0ZVRyYWNlJiZDLnRyYWNlJiZDLnRyYWNlKCkpKX1mdW5jdGlvbiBlYih1LHgsQyxILFApe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh1LHgse2NvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe1UoSCxQKTtyZXR1cm4gQ30sc2V0OmZ1bmN0aW9uKGVhKXtVKEgsUCk7Qz1lYX19KX1mdW5jdGlvbiBYKHUseCxDLEgsUCl7dmFyIGVhLFFhPXVbeF07dVt4XT1mdW5jdGlvbigpe1AmJlUoSCxQKTtlYT1uLm1pZ3JhdGVJc1BhdGNoRW5hYmxlZChIKT9DOlFhfHxuLm5vb3A7cmV0dXJuIGVhLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19ZnVuY3Rpb24gYmEodSx4LEMsSCxQKXtpZighUCl0aHJvdyBFcnJvcigiTm8gd2FybmluZyBtZXNzYWdlIHByb3ZpZGVkIik7cmV0dXJuIFgodSwKeCxDLEgsUCl9ZnVuY3Rpb24gamEodSx4LEMsSCl7cmV0dXJuIFgodSx4LEMsSCl9ZnVuY3Rpb24gbGIodSl7cmV0dXJuIHUucmVwbGFjZSgvLShbYS16XSkvZyxmdW5jdGlvbih4LEMpe3JldHVybiBDLnRvVXBwZXJDYXNlKCl9KX1mdW5jdGlvbiBZYSh1KXtyZXR1cm4gcGIudGVzdCh1KSYmU2IudGVzdCh1WzBdLnRvVXBwZXJDYXNlKCkrdS5zbGljZSgxKSl9bi5taWdyYXRlVmVyc2lvbj0iMy40LjEiO3ZhciBaYT1PYmplY3QuY3JlYXRlKG51bGwpO24ubWlncmF0ZURpc2FibGVQYXRjaGVzPWZ1bmN0aW9uKCl7dmFyIHU7Zm9yKHU9MDt1PGFyZ3VtZW50cy5sZW5ndGg7dSsrKVphW2FyZ3VtZW50c1t1XV09ITB9O24ubWlncmF0ZUVuYWJsZVBhdGNoZXM9ZnVuY3Rpb24oKXt2YXIgdTtmb3IodT0wO3U8YXJndW1lbnRzLmxlbmd0aDt1KyspZGVsZXRlIFphW2FyZ3VtZW50c1t1XV19O24ubWlncmF0ZUlzUGF0Y2hFbmFibGVkPWZ1bmN0aW9uKHUpe3JldHVybiFaYVt1XX07ZGEuY29uc29sZSYmCmRhLmNvbnNvbGUubG9nJiYobiYmd2EoIjMuMC4wIikmJiF3YSgiNS4wLjAiKXx8ZGEuY29uc29sZS5sb2coIkpRTUlHUkFURTogalF1ZXJ5IDMueC00LnggUkVRVUlSRUQiKSxuLm1pZ3JhdGVXYXJuaW5ncyYmZGEuY29uc29sZS5sb2coIkpRTUlHUkFURTogTWlncmF0ZSBwbHVnaW4gbG9hZGVkIG11bHRpcGxlIHRpbWVzIiksZGEuY29uc29sZS5sb2coIkpRTUlHUkFURTogTWlncmF0ZSBpcyBpbnN0YWxsZWQiKyhuLm1pZ3JhdGVNdXRlPyIiOiIgd2l0aCBsb2dnaW5nIGFjdGl2ZSIpKyIsIHZlcnNpb24gIituLm1pZ3JhdGVWZXJzaW9uKSk7dmFyIG1iPXt9O24ubWlncmF0ZURlZHVwbGljYXRlV2FybmluZ3M9ITA7bi5taWdyYXRlV2FybmluZ3M9W107dm9pZCAwPT09bi5taWdyYXRlVHJhY2UmJihuLm1pZ3JhdGVUcmFjZT0hMCk7bi5taWdyYXRlUmVzZXQ9ZnVuY3Rpb24oKXttYj17fTtuLm1pZ3JhdGVXYXJuaW5ncy5sZW5ndGg9MH07IkJhY2tDb21wYXQiPT09ZGEuZG9jdW1lbnQuY29tcGF0TW9kZSYmClUoInF1aXJrcyIsImpRdWVyeSBpcyBub3QgY29tcGF0aWJsZSB3aXRoIFF1aXJrcyBNb2RlIik7dmFyIE9hLE5iPXt9LEJhPW4uZm4uaW5pdCxKYT1uLmZpbmQsT2I9L1xbKFxzKlstXHddK1xzKikoW358XiQqXT89KVxzKihbLVx3I10qPyNbLVx3I10qKVxzKlxdLyxQYj0vXFsoXHMqWy1cd10rXHMqKShbfnxeJCpdPz0pXHMqKFstXHcjXSo\/I1stXHcjXSopXHMqXF0vZywkYT0vXltcc1x1RkVGRlx4QTBdK3woW15cc1x1RkVGRlx4QTBdKVtcc1x1RkVGRlx4QTBdKyQvZztqYShuLmZuLCJpbml0IixmdW5jdGlvbih1KXt2YXIgeD1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMpO24ubWlncmF0ZUlzUGF0Y2hFbmFibGVkKCJzZWxlY3Rvci1lbXB0eS1pZCIpJiYic3RyaW5nIj09PXR5cGVvZiB1JiYiIyI9PT11JiYoVSgic2VsZWN0b3ItZW1wdHktaWQiLCJqUXVlcnkoICcjJyApIGlzIG5vdCBhIHZhbGlkIHNlbGVjdG9yIikseFswXT1bXSk7cmV0dXJuIEJhLmFwcGx5KHRoaXMsCngpfSwic2VsZWN0b3ItZW1wdHktaWQiKTtuLmZuLmluaXQucHJvdG90eXBlPW4uZm47amEobiwiZmluZCIsZnVuY3Rpb24odSl7dmFyIHg9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzKTtpZigic3RyaW5nIj09PXR5cGVvZiB1JiZPYi50ZXN0KHUpKXRyeXtkYS5kb2N1bWVudC5xdWVyeVNlbGVjdG9yKHUpfWNhdGNoKEMpe3U9dS5yZXBsYWNlKFBiLGZ1bmN0aW9uKEgsUCxlYSxRYSl7cmV0dXJuIlsiK1ArZWErJyInK1FhKyciXSd9KTt0cnl7ZGEuZG9jdW1lbnQucXVlcnlTZWxlY3Rvcih1KSxVKCJzZWxlY3Rvci1oYXNoIiwiQXR0cmlidXRlIHNlbGVjdG9yIHdpdGggJyMnIG11c3QgYmUgcXVvdGVkOiAiK3hbMF0pLHhbMF09dX1jYXRjaChIKXtVKCJzZWxlY3Rvci1oYXNoIiwiQXR0cmlidXRlIHNlbGVjdG9yIHdpdGggJyMnIHdhcyBub3QgZml4ZWQ6ICIreFswXSl9fXJldHVybiBKYS5hcHBseSh0aGlzLHgpfSwic2VsZWN0b3ItaGFzaCIpO2ZvcihPYSBpbiBKYSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoSmEsCk9hKSYmKG4uZmluZFtPYV09SmFbT2FdKTtiYShuLmZuLCJzaXplIixmdW5jdGlvbigpe3JldHVybiB0aGlzLmxlbmd0aH0sInNpemUiLCJqUXVlcnkuZm4uc2l6ZSgpIGlzIGRlcHJlY2F0ZWQgYW5kIHJlbW92ZWQ7IHVzZSB0aGUgLmxlbmd0aCBwcm9wZXJ0eSIpO2JhKG4sInBhcnNlSlNPTiIsZnVuY3Rpb24oKXtyZXR1cm4gSlNPTi5wYXJzZS5hcHBseShudWxsLGFyZ3VtZW50cyl9LCJwYXJzZUpTT04iLCJqUXVlcnkucGFyc2VKU09OIGlzIGRlcHJlY2F0ZWQ7IHVzZSBKU09OLnBhcnNlIik7YmEobiwiaG9sZFJlYWR5IixuLmhvbGRSZWFkeSwiaG9sZFJlYWR5IiwialF1ZXJ5LmhvbGRSZWFkeSBpcyBkZXByZWNhdGVkIik7YmEobiwidW5pcXVlIixuLnVuaXF1ZVNvcnQsInVuaXF1ZSIsImpRdWVyeS51bmlxdWUgaXMgZGVwcmVjYXRlZDsgdXNlIGpRdWVyeS51bmlxdWVTb3J0Iik7ZWIobi5leHByLCJmaWx0ZXJzIixuLmV4cHIucHNldWRvcywiZXhwci1wcmUtcHNldWRvcyIsImpRdWVyeS5leHByLmZpbHRlcnMgaXMgZGVwcmVjYXRlZDsgdXNlIGpRdWVyeS5leHByLnBzZXVkb3MiKTsKZWIobi5leHByLCI6IixuLmV4cHIucHNldWRvcywiZXhwci1wcmUtcHNldWRvcyIsImpRdWVyeS5leHByWyc6J10gaXMgZGVwcmVjYXRlZDsgdXNlIGpRdWVyeS5leHByLnBzZXVkb3MiKTt3YSgiMy4xLjEiKSYmYmEobiwidHJpbSIsZnVuY3Rpb24odSl7cmV0dXJuIG51bGw9PXU\/IiI6KHUrIiIpLnJlcGxhY2UoJGEsIiQxIil9LCJ0cmltIiwialF1ZXJ5LnRyaW0gaXMgZGVwcmVjYXRlZDsgdXNlIFN0cmluZy5wcm90b3R5cGUudHJpbSIpO3dhKCIzLjIuMCIpJiYoYmEobiwibm9kZU5hbWUiLGZ1bmN0aW9uKHUseCl7cmV0dXJuIHUubm9kZU5hbWUmJnUubm9kZU5hbWUudG9Mb3dlckNhc2UoKT09PXgudG9Mb3dlckNhc2UoKX0sIm5vZGVOYW1lIiwialF1ZXJ5Lm5vZGVOYW1lIGlzIGRlcHJlY2F0ZWQiKSxiYShuLCJpc0FycmF5IixBcnJheS5pc0FycmF5LCJpc0FycmF5IiwialF1ZXJ5LmlzQXJyYXkgaXMgZGVwcmVjYXRlZDsgdXNlIEFycmF5LmlzQXJyYXkiKSk7d2EoIjMuMy4wIikmJgooYmEobiwiaXNOdW1lcmljIixmdW5jdGlvbih1KXt2YXIgeD10eXBlb2YgdTtyZXR1cm4oIm51bWJlciI9PT14fHwic3RyaW5nIj09PXgpJiYhaXNOYU4odS1wYXJzZUZsb2F0KHUpKX0sImlzTnVtZXJpYyIsImpRdWVyeS5pc051bWVyaWMoKSBpcyBkZXByZWNhdGVkIiksbi5lYWNoKCJCb29sZWFuIE51bWJlciBTdHJpbmcgRnVuY3Rpb24gQXJyYXkgRGF0ZSBSZWdFeHAgT2JqZWN0IEVycm9yIFN5bWJvbCIuc3BsaXQoIiAiKSxmdW5jdGlvbih1LHgpe05iWyJbb2JqZWN0ICIreCsiXSJdPXgudG9Mb3dlckNhc2UoKX0pLGJhKG4sInR5cGUiLGZ1bmN0aW9uKHUpe3JldHVybiBudWxsPT11P3UrIiI6Im9iamVjdCI9PT10eXBlb2YgdXx8ImZ1bmN0aW9uIj09PXR5cGVvZiB1P05iW09iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh1KV18fCJvYmplY3QiOnR5cGVvZiB1fSwidHlwZSIsImpRdWVyeS50eXBlIGlzIGRlcHJlY2F0ZWQiKSxiYShuLCJpc0Z1bmN0aW9uIixmdW5jdGlvbih1KXtyZXR1cm4iZnVuY3Rpb24iPT09CnR5cGVvZiB1fSwiaXNGdW5jdGlvbiIsImpRdWVyeS5pc0Z1bmN0aW9uKCkgaXMgZGVwcmVjYXRlZCIpLGJhKG4sImlzV2luZG93IixmdW5jdGlvbih1KXtyZXR1cm4gbnVsbCE9dSYmdT09PXUud2luZG93fSwiaXNXaW5kb3ciLCJqUXVlcnkuaXNXaW5kb3coKSBpcyBkZXByZWNhdGVkIikpO2lmKG4uYWpheCl7dmFyIHNhPW4uYWpheCxuYj0vKD0pXD8oPz0mfCQpfFw\/XD8vO2phKG4sImFqYXgiLGZ1bmN0aW9uKCl7dmFyIHU9c2EuYXBwbHkodGhpcyxhcmd1bWVudHMpO3UucHJvbWlzZSYmKGJhKHUsInN1Y2Nlc3MiLHUuZG9uZSwianFYSFItbWV0aG9kcyIsImpRWEhSLnN1Y2Nlc3MgaXMgZGVwcmVjYXRlZCBhbmQgcmVtb3ZlZCIpLGJhKHUsImVycm9yIix1LmZhaWwsImpxWEhSLW1ldGhvZHMiLCJqUVhIUi5lcnJvciBpcyBkZXByZWNhdGVkIGFuZCByZW1vdmVkIiksYmEodSwiY29tcGxldGUiLHUuYWx3YXlzLCJqcVhIUi1tZXRob2RzIiwialFYSFIuY29tcGxldGUgaXMgZGVwcmVjYXRlZCBhbmQgcmVtb3ZlZCIpKTsKcmV0dXJuIHV9LCJqcVhIUi1tZXRob2RzIik7d2EoIjQuMC4wIil8fG4uYWpheFByZWZpbHRlcigiK2pzb24iLGZ1bmN0aW9uKHUpeyExIT09dS5qc29ucCYmKG5iLnRlc3QodS51cmwpfHwic3RyaW5nIj09PXR5cGVvZiB1LmRhdGEmJjA9PT0odS5jb250ZW50VHlwZXx8IiIpLmluZGV4T2YoImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIpJiZuYi50ZXN0KHUuZGF0YSkpJiZVKCJqc29ucC1wcm9tb3Rpb24iLCJKU09OLXRvLUpTT05QIGF1dG8tcHJvbW90aW9uIGlzIGRlcHJlY2F0ZWQiKX0pfXZhciBSYj1uLmZuLnJlbW92ZUF0dHIsYWI9bi5mbi50b2dnbGVDbGFzcyxiYj0vXFMrL2c7amEobi5mbiwicmVtb3ZlQXR0ciIsZnVuY3Rpb24odSl7dmFyIHg9dGhpcyxDPSExO24uZWFjaCh1Lm1hdGNoKGJiKSxmdW5jdGlvbihILFApe24uZXhwci5tYXRjaC5ib29sLnRlc3QoUCkmJnguZWFjaChmdW5jdGlvbigpe2lmKCExIT09bih0aGlzKS5wcm9wKFApKXJldHVybiBDPQohMCwhMX0pO0MmJihVKCJyZW1vdmVBdHRyLWJvb2wiLCJqUXVlcnkuZm4ucmVtb3ZlQXR0ciBubyBsb25nZXIgc2V0cyBib29sZWFuIHByb3BlcnRpZXM6ICIrUCkseC5wcm9wKFAsITEpKX0pO3JldHVybiBSYi5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LCJyZW1vdmVBdHRyLWJvb2wiKTtqYShuLmZuLCJ0b2dnbGVDbGFzcyIsZnVuY3Rpb24odSl7aWYodm9pZCAwIT09dSYmImJvb2xlYW4iIT09dHlwZW9mIHUpcmV0dXJuIGFiLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtVKCJ0b2dnbGVDbGFzcy1ib29sIiwialF1ZXJ5LmZuLnRvZ2dsZUNsYXNzKCBib29sZWFuICkgaXMgZGVwcmVjYXRlZCIpO3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgeD10aGlzLmdldEF0dHJpYnV0ZSYmdGhpcy5nZXRBdHRyaWJ1dGUoImNsYXNzIil8fCIiO3gmJm4uZGF0YSh0aGlzLCJfX2NsYXNzTmFtZV9fIix4KTt0aGlzLnNldEF0dHJpYnV0ZSYmdGhpcy5zZXRBdHRyaWJ1dGUoImNsYXNzIix4fHwKITE9PT11PyIiOm4uZGF0YSh0aGlzLCJfX2NsYXNzTmFtZV9fIil8fCIiKX0pfSwidG9nZ2xlQ2xhc3MtYm9vbCIpO3ZhciBmYj0hMSxwYj0vXlthLXpdLyxTYj0vXig\/OkJvcmRlcig\/OlRvcHxSaWdodHxCb3R0b218TGVmdCk\/KD86V2lkdGh8KXwoPzpNYXJnaW58UGFkZGluZyk\/KD86VG9wfFJpZ2h0fEJvdHRvbXxMZWZ0KT98KD86TWlufE1heCk\/KD86V2lkdGh8SGVpZ2h0KSkkLztuLnN3YXAmJm4uZWFjaChbImhlaWdodCIsIndpZHRoIiwicmVsaWFibGVNYXJnaW5SaWdodCJdLGZ1bmN0aW9uKHUseCl7dmFyIEM9bi5jc3NIb29rc1t4XSYmbi5jc3NIb29rc1t4XS5nZXQ7QyYmKG4uY3NzSG9va3NbeF0uZ2V0PWZ1bmN0aW9uKCl7ZmI9ITA7dmFyIEg9Qy5hcHBseSh0aGlzLGFyZ3VtZW50cyk7ZmI9ITE7cmV0dXJuIEh9KX0pO2phKG4sInN3YXAiLGZ1bmN0aW9uKHUseCxDLEgpe3ZhciBQLGVhPXt9O2ZifHxVKCJzd2FwIiwialF1ZXJ5LnN3YXAoKSBpcyB1bmRvY3VtZW50ZWQgYW5kIGRlcHJlY2F0ZWQiKTsKZm9yKFAgaW4geCllYVtQXT11LnN0eWxlW1BdLHUuc3R5bGVbUF09eFtQXTtDPUMuYXBwbHkodSxIfHxbXSk7Zm9yKFAgaW4geCl1LnN0eWxlW1BdPWVhW1BdO3JldHVybiBDfSwic3dhcCIpO3dhKCIzLjQuMCIpJiYidW5kZWZpbmVkIiE9PXR5cGVvZiBQcm94eSYmKG4uY3NzUHJvcHM9bmV3IFByb3h5KG4uY3NzUHJvcHN8fHt9LHtzZXQ6ZnVuY3Rpb24oKXtVKCJjc3NQcm9wcyIsImpRdWVyeS5jc3NQcm9wcyBpcyBkZXByZWNhdGVkIik7cmV0dXJuIFJlZmxlY3Quc2V0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KSk7aWYod2EoIjQuMC4wIikpe3ZhciBxYj17YW5pbWF0aW9uSXRlcmF0aW9uQ291bnQ6ITAsY29sdW1uQ291bnQ6ITAsZmlsbE9wYWNpdHk6ITAsZmxleEdyb3c6ITAsZmxleFNocmluazohMCxmb250V2VpZ2h0OiEwLGdyaWRBcmVhOiEwLGdyaWRDb2x1bW46ITAsZ3JpZENvbHVtbkVuZDohMCxncmlkQ29sdW1uU3RhcnQ6ITAsZ3JpZFJvdzohMCxncmlkUm93RW5kOiEwLApncmlkUm93U3RhcnQ6ITAsbGluZUhlaWdodDohMCxvcGFjaXR5OiEwLG9yZGVyOiEwLG9ycGhhbnM6ITAsd2lkb3dzOiEwLHpJbmRleDohMCx6b29tOiEwfTtuLmNzc051bWJlcj0idW5kZWZpbmVkIiE9PXR5cGVvZiBQcm94eT9uZXcgUHJveHkocWIse2dldDpmdW5jdGlvbigpe1UoImNzcy1udW1iZXIiLCJqUXVlcnkuY3NzTnVtYmVyIGlzIGRlcHJlY2F0ZWQiKTtyZXR1cm4gUmVmbGVjdC5nZXQuYXBwbHkodGhpcyxhcmd1bWVudHMpfSxzZXQ6ZnVuY3Rpb24oKXtVKCJjc3MtbnVtYmVyIiwialF1ZXJ5LmNzc051bWJlciBpcyBkZXByZWNhdGVkIik7cmV0dXJuIFJlZmxlY3Quc2V0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KTpxYn1lbHNlIHFiPW4uY3NzTnVtYmVyO3ZhciAkYj1uLmZuLmNzcztqYShuLmZuLCJjc3MiLGZ1bmN0aW9uKHUseCl7dmFyIEM9dGhpcztpZih1JiYib2JqZWN0Ij09PXR5cGVvZiB1JiYhQXJyYXkuaXNBcnJheSh1KSlyZXR1cm4gbi5lYWNoKHUsZnVuY3Rpb24oUCwKZWEpe24uZm4uY3NzLmNhbGwoQyxQLGVhKX0pLHRoaXM7aWYoIm51bWJlciI9PT10eXBlb2YgeCl7dmFyIEg9bGIodSk7WWEoSCl8fHFiW0hdfHxVKCJjc3MtbnVtYmVyIiwnTnVtYmVyLXR5cGVkIHZhbHVlcyBhcmUgZGVwcmVjYXRlZCBmb3IgalF1ZXJ5LmZuLmNzcyggIicrdSsnIiwgdmFsdWUgKScpfXJldHVybiAkYi5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LCJjc3MtbnVtYmVyIik7dmFyIGdiPW4uZGF0YTtqYShuLCJkYXRhIixmdW5jdGlvbih1LHgsQyl7dmFyIEg7aWYoeCYmIm9iamVjdCI9PT10eXBlb2YgeCYmMj09PWFyZ3VtZW50cy5sZW5ndGgpe3ZhciBQPW4uaGFzRGF0YSh1KSYmZ2IuY2FsbCh0aGlzLHUpLGVhPXt9O2ZvcihIIGluIHgpSCE9PWxiKEgpPyhVKCJkYXRhLWNhbWVsQ2FzZSIsImpRdWVyeS5kYXRhKCkgYWx3YXlzIHNldHMvZ2V0cyBjYW1lbENhc2VkIG5hbWVzOiAiK0gpLFBbSF09eFtIXSk6ZWFbSF09eFtIXTtnYi5jYWxsKHRoaXMsdSxlYSk7cmV0dXJuIHh9cmV0dXJuIHgmJgoic3RyaW5nIj09PXR5cGVvZiB4JiZ4IT09bGIoeCkmJihQPW4uaGFzRGF0YSh1KSYmZ2IuY2FsbCh0aGlzLHUpKSYmeCBpbiBQPyhVKCJkYXRhLWNhbWVsQ2FzZSIsImpRdWVyeS5kYXRhKCkgYWx3YXlzIHNldHMvZ2V0cyBjYW1lbENhc2VkIG5hbWVzOiAiK3gpLDI8YXJndW1lbnRzLmxlbmd0aCYmKFBbeF09QyksUFt4XSk6Z2IuYXBwbHkodGhpcyxhcmd1bWVudHMpfSwiZGF0YS1jYW1lbENhc2UiKTtpZihuLmZ4KXt2YXIgY2I9bi5Ud2Vlbi5wcm90b3R5cGUucnVuLFRiPWZ1bmN0aW9uKHUpe3JldHVybiB1fTtqYShuLlR3ZWVuLnByb3RvdHlwZSwicnVuIixmdW5jdGlvbigpezE8bi5lYXNpbmdbdGhpcy5lYXNpbmddLmxlbmd0aCYmKFUoImVhc2luZy1vbmUtYXJnIiwiJ2pRdWVyeS5lYXNpbmcuIit0aGlzLmVhc2luZy50b1N0cmluZygpKyInIHNob3VsZCB1c2Ugb25seSBvbmUgYXJndW1lbnQiKSxuLmVhc2luZ1t0aGlzLmVhc2luZ109VGIpO2NiLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0sCiJlYXNpbmctb25lLWFyZyIpO3ZhciBLYT1uLmZ4LmludGVydmFsO2RhLnJlcXVlc3RBbmltYXRpb25GcmFtZSYmT2JqZWN0LmRlZmluZVByb3BlcnR5KG4uZngsImludGVydmFsIix7Y29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7ZGEuZG9jdW1lbnQuaGlkZGVufHxVKCJmeC1pbnRlcnZhbCIsImpRdWVyeS5meC5pbnRlcnZhbCBpcyBkZXByZWNhdGVkIik7cmV0dXJuIG4ubWlncmF0ZUlzUGF0Y2hFbmFibGVkKCJmeC1pbnRlcnZhbCIpP3ZvaWQgMD09PUthPzEzOkthOkthfSxzZXQ6ZnVuY3Rpb24odSl7VSgiZngtaW50ZXJ2YWwiLCJqUXVlcnkuZnguaW50ZXJ2YWwgaXMgZGVwcmVjYXRlZCIpO0thPXV9fSl9dmFyIFZiPW4uZm4ubG9hZCxBYj1uLmV2ZW50LmFkZCxXYj1uLmV2ZW50LmZpeDtuLmV2ZW50LnByb3BzPVtdO24uZXZlbnQuZml4SG9va3M9e307ZWIobi5ldmVudC5wcm9wcywiY29uY2F0IixuLmV2ZW50LnByb3BzLmNvbmNhdCwiZXZlbnQtb2xkLXBhdGNoIiwKImpRdWVyeS5ldmVudC5wcm9wcy5jb25jYXQoKSBpcyBkZXByZWNhdGVkIGFuZCByZW1vdmVkIik7amEobi5ldmVudCwiZml4IixmdW5jdGlvbih1KXt2YXIgeD11LnR5cGUsQz10aGlzLmZpeEhvb2tzW3hdLEg9bi5ldmVudC5wcm9wcztpZihILmxlbmd0aClmb3IoVSgiZXZlbnQtb2xkLXBhdGNoIiwialF1ZXJ5LmV2ZW50LnByb3BzIGFyZSBkZXByZWNhdGVkIGFuZCByZW1vdmVkOiAiK0guam9pbigpKTtILmxlbmd0aDspbi5ldmVudC5hZGRQcm9wKEgucG9wKCkpO2lmKEMmJiFDLl9taWdyYXRlZF8mJihDLl9taWdyYXRlZF89ITAsVSgiZXZlbnQtb2xkLXBhdGNoIiwialF1ZXJ5LmV2ZW50LmZpeEhvb2tzIGFyZSBkZXByZWNhdGVkIGFuZCByZW1vdmVkOiAiK3gpLChIPUMucHJvcHMpJiZILmxlbmd0aCkpZm9yKDtILmxlbmd0aDspbi5ldmVudC5hZGRQcm9wKEgucG9wKCkpO3g9V2IuY2FsbCh0aGlzLHUpO3JldHVybiBDJiZDLmZpbHRlcj9DLmZpbHRlcih4LHUpOnh9LCJldmVudC1vbGQtcGF0Y2giKTsKamEobi5ldmVudCwiYWRkIixmdW5jdGlvbih1LHgpe3U9PT1kYSYmImxvYWQiPT09eCYmImNvbXBsZXRlIj09PWRhLmRvY3VtZW50LnJlYWR5U3RhdGUmJlUoImxvYWQtYWZ0ZXItZXZlbnQiLCJqUXVlcnkod2luZG93KS5vbignbG9hZCcuLi4pIGNhbGxlZCBhZnRlciBsb2FkIGV2ZW50IG9jY3VycmVkIik7cmV0dXJuIEFiLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0sImxvYWQtYWZ0ZXItZXZlbnQiKTtuLmVhY2goWyJsb2FkIiwidW5sb2FkIiwiZXJyb3IiXSxmdW5jdGlvbih1LHgpe2phKG4uZm4seCxmdW5jdGlvbigpe3ZhciBDPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywwKTtpZigibG9hZCI9PT14JiYic3RyaW5nIj09PXR5cGVvZiBDWzBdKXJldHVybiBWYi5hcHBseSh0aGlzLEMpO1UoInNob3J0aGFuZC1yZW1vdmVkLXYzIiwialF1ZXJ5LmZuLiIreCsiKCkgaXMgZGVwcmVjYXRlZCIpO0Muc3BsaWNlKDAsMCx4KTtpZihhcmd1bWVudHMubGVuZ3RoKXJldHVybiB0aGlzLm9uLmFwcGx5KHRoaXMsCkMpO3RoaXMudHJpZ2dlckhhbmRsZXIuYXBwbHkodGhpcyxDKTtyZXR1cm4gdGhpc30sInNob3J0aGFuZC1yZW1vdmVkLXYzIil9KTtuLmVhY2goImJsdXIgZm9jdXMgZm9jdXNpbiBmb2N1c291dCByZXNpemUgc2Nyb2xsIGNsaWNrIGRibGNsaWNrIG1vdXNlZG93biBtb3VzZXVwIG1vdXNlbW92ZSBtb3VzZW92ZXIgbW91c2VvdXQgbW91c2VlbnRlciBtb3VzZWxlYXZlIGNoYW5nZSBzZWxlY3Qgc3VibWl0IGtleWRvd24ga2V5cHJlc3Mga2V5dXAgY29udGV4dG1lbnUiLnNwbGl0KCIgIiksZnVuY3Rpb24odSx4KXtiYShuLmZuLHgsZnVuY3Rpb24oQyxIKXtyZXR1cm4gMDxhcmd1bWVudHMubGVuZ3RoP3RoaXMub24oeCxudWxsLEMsSCk6dGhpcy50cmlnZ2VyKHgpfSwic2hvcnRoYW5kLWRlcHJlY2F0ZWQtdjMiLCJqUXVlcnkuZm4uIit4KyIoKSBldmVudCBzaG9ydGhhbmQgaXMgZGVwcmVjYXRlZCIpfSk7bihmdW5jdGlvbigpe24oZGEuZG9jdW1lbnQpLnRyaWdnZXJIYW5kbGVyKCJyZWFkeSIpfSk7Cm4uZXZlbnQuc3BlY2lhbC5yZWFkeT17c2V0dXA6ZnVuY3Rpb24oKXt0aGlzPT09ZGEuZG9jdW1lbnQmJlUoInJlYWR5LWV2ZW50IiwiJ3JlYWR5JyBldmVudCBpcyBkZXByZWNhdGVkIil9fTtiYShuLmZuLCJiaW5kIixmdW5jdGlvbih1LHgsQyl7cmV0dXJuIHRoaXMub24odSxudWxsLHgsQyl9LCJwcmUtb24tbWV0aG9kcyIsImpRdWVyeS5mbi5iaW5kKCkgaXMgZGVwcmVjYXRlZCIpO2JhKG4uZm4sInVuYmluZCIsZnVuY3Rpb24odSx4KXtyZXR1cm4gdGhpcy5vZmYodSxudWxsLHgpfSwicHJlLW9uLW1ldGhvZHMiLCJqUXVlcnkuZm4udW5iaW5kKCkgaXMgZGVwcmVjYXRlZCIpO2JhKG4uZm4sImRlbGVnYXRlIixmdW5jdGlvbih1LHgsQyxIKXtyZXR1cm4gdGhpcy5vbih4LHUsQyxIKX0sInByZS1vbi1tZXRob2RzIiwialF1ZXJ5LmZuLmRlbGVnYXRlKCkgaXMgZGVwcmVjYXRlZCIpO2JhKG4uZm4sInVuZGVsZWdhdGUiLGZ1bmN0aW9uKHUseCxDKXtyZXR1cm4gMT09PWFyZ3VtZW50cy5sZW5ndGg\/CnRoaXMub2ZmKHUsIioqIik6dGhpcy5vZmYoeCx1fHwiKioiLEMpfSwicHJlLW9uLW1ldGhvZHMiLCJqUXVlcnkuZm4udW5kZWxlZ2F0ZSgpIGlzIGRlcHJlY2F0ZWQiKTtiYShuLmZuLCJob3ZlciIsZnVuY3Rpb24odSx4KXtyZXR1cm4gdGhpcy5vbigibW91c2VlbnRlciIsdSkub24oIm1vdXNlbGVhdmUiLHh8fHUpfSwicHJlLW9uLW1ldGhvZHMiLCJqUXVlcnkuZm4uaG92ZXIoKSBpcyBkZXByZWNhdGVkIik7dmFyIHJiPS88KD8hYXJlYXxicnxjb2x8ZW1iZWR8aHJ8aW1nfGlucHV0fGxpbmt8bWV0YXxwYXJhbSkoKFthLXpdW15cL1wwPlx4MjBcdFxyXG5cZl0qKVtePl0qKVwvPi9naSxCYj1mdW5jdGlvbih1KXt2YXIgeD1kYS5kb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVIVE1MRG9jdW1lbnQoIiIpO3guYm9keS5pbm5lckhUTUw9dTtyZXR1cm4geC5ib2R5JiZ4LmJvZHkuaW5uZXJIVE1MfTtuLlVOU0FGRV9yZXN0b3JlTGVnYWN5SHRtbFByZWZpbHRlcj1mdW5jdGlvbigpe24ubWlncmF0ZUVuYWJsZVBhdGNoZXMoInNlbGYtY2xvc2VkLXRhZ3MiKX07CmphKG4sImh0bWxQcmVmaWx0ZXIiLGZ1bmN0aW9uKHUpe3ZhciB4PXUucmVwbGFjZShyYiwiPCQxPjwvJDI+Iik7eCE9PXUmJkJiKHUpIT09QmIoeCkmJlUoInNlbGYtY2xvc2VkLXRhZ3MiLCJIVE1MIHRhZ3MgbXVzdCBiZSBwcm9wZXJseSBuZXN0ZWQgYW5kIGNsb3NlZDogIit1KTtyZXR1cm4gdS5yZXBsYWNlKHJiLCI8JDE+PC8kMj4iKX0sInNlbGYtY2xvc2VkLXRhZ3MiKTtuLm1pZ3JhdGVEaXNhYmxlUGF0Y2hlcygic2VsZi1jbG9zZWQtdGFncyIpO3ZhciB6YT1uLmZuLm9mZnNldDtqYShuLmZuLCJvZmZzZXQiLGZ1bmN0aW9uKCl7dmFyIHU9dGhpc1swXTtyZXR1cm4hdXx8dS5ub2RlVHlwZSYmdS5nZXRCb3VuZGluZ0NsaWVudFJlY3Q\/emEuYXBwbHkodGhpcyxhcmd1bWVudHMpOihVKCJvZmZzZXQtdmFsaWQtZWxlbSIsImpRdWVyeS5mbi5vZmZzZXQoKSByZXF1aXJlcyBhIHZhbGlkIERPTSBlbGVtZW50IiksYXJndW1lbnRzLmxlbmd0aD90aGlzOnZvaWQgMCl9LCJvZmZzZXQtdmFsaWQtZWxlbSIpOwppZihuLmFqYXgpe3ZhciBDYj1uLnBhcmFtO2phKG4sInBhcmFtIixmdW5jdGlvbih1LHgpe3ZhciBDPW4uYWpheFNldHRpbmdzJiZuLmFqYXhTZXR0aW5ncy50cmFkaXRpb25hbDt2b2lkIDA9PT14JiZDJiYoVSgicGFyYW0tYWpheC10cmFkaXRpb25hbCIsImpRdWVyeS5wYXJhbSgpIG5vIGxvbmdlciB1c2VzIGpRdWVyeS5hamF4U2V0dGluZ3MudHJhZGl0aW9uYWwiKSx4PUMpO3JldHVybiBDYi5jYWxsKHRoaXMsdSx4KX0sInBhcmFtLWFqYXgtdHJhZGl0aW9uYWwiKX1iYShuLmZuLCJhbmRTZWxmIixuLmZuLmFkZEJhY2ssImFuZFNlbGYiLCJqUXVlcnkuZm4uYW5kU2VsZigpIGlzIGRlcHJlY2F0ZWQgYW5kIHJlbW92ZWQsIHVzZSBqUXVlcnkuZm4uYWRkQmFjaygpIik7aWYobi5EZWZlcnJlZCl7dmFyIERiPW4uRGVmZXJyZWQsdGI9W1sicmVzb2x2ZSIsImRvbmUiLG4uQ2FsbGJhY2tzKCJvbmNlIG1lbW9yeSIpLG4uQ2FsbGJhY2tzKCJvbmNlIG1lbW9yeSIpLCJyZXNvbHZlZCJdLApbInJlamVjdCIsImZhaWwiLG4uQ2FsbGJhY2tzKCJvbmNlIG1lbW9yeSIpLG4uQ2FsbGJhY2tzKCJvbmNlIG1lbW9yeSIpLCJyZWplY3RlZCJdLFsibm90aWZ5IiwicHJvZ3Jlc3MiLG4uQ2FsbGJhY2tzKCJtZW1vcnkiKSxuLkNhbGxiYWNrcygibWVtb3J5IildXTtqYShuLCJEZWZlcnJlZCIsZnVuY3Rpb24odSl7ZnVuY3Rpb24geCgpe3ZhciBQPWFyZ3VtZW50cztyZXR1cm4gbi5EZWZlcnJlZChmdW5jdGlvbihlYSl7bi5lYWNoKHRiLGZ1bmN0aW9uKFFhLEViKXt2YXIgaGI9ImZ1bmN0aW9uIj09PXR5cGVvZiBQW1FhXSYmUFtRYV07Q1tFYlsxXV0oZnVuY3Rpb24oKXt2YXIgb2E9aGImJmhiLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtpZihvYSYmImZ1bmN0aW9uIj09PXR5cGVvZiBvYS5wcm9taXNlKW9hLnByb21pc2UoKS5kb25lKGVhLnJlc29sdmUpLmZhaWwoZWEucmVqZWN0KS5wcm9ncmVzcyhlYS5ub3RpZnkpO2Vsc2UgZWFbRWJbMF0rIldpdGgiXSh0aGlzPT09SD9lYS5wcm9taXNlKCk6CnRoaXMsaGI\/W29hXTphcmd1bWVudHMpfSl9KTtQPW51bGx9KS5wcm9taXNlKCl9dmFyIEM9RGIoKSxIPUMucHJvbWlzZSgpO2JhKEMsInBpcGUiLHgsImRlZmVycmVkLXBpcGUiLCJkZWZlcnJlZC5waXBlKCkgaXMgZGVwcmVjYXRlZCIpO2JhKEgsInBpcGUiLHgsImRlZmVycmVkLXBpcGUiLCJkZWZlcnJlZC5waXBlKCkgaXMgZGVwcmVjYXRlZCIpO3UmJnUuY2FsbChDLEMpO3JldHVybiBDfSwiZGVmZXJyZWQtcGlwZSIpO24uRGVmZXJyZWQuZXhjZXB0aW9uSG9vaz1EYi5leGNlcHRpb25Ib29rfXJldHVybiBufSk7Ci8qKiAvbS9qcy9qcXVlcnkuY29va2llLmpzICoqLwp2YXIgX19fZDJjX2pxdWVyeWNvb2tpZWpzX2Nfb249IjIwMjUtMDUtMjMgMTc6MDk6MjgiOyd1c2Ugc3RyaWN0Jzt2YXIgX19fZDJjX2pxdWVyeWNvb2tpZWpzX2Nfb249IjIwMjQtMDEtMzEgMTQ6MzY6MDkiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfanF1ZXJ5Y29va2llanNfY19vbj0iMjAyMy0wOS0wNiAxNDozMDowNiI7InVzZSBzdHJpY3QiOwooZnVuY3Rpb24oaCxsLHIpe2Z1bmN0aW9uIHQoYil7cmV0dXJuIGJ9ZnVuY3Rpb24gdShiKXt0cnl7cmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudChiLnJlcGxhY2UobSwiICIpKX1jYXRjaChjKXt0cnl7cmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudCh1bmVzY2FwZShiKS5yZXBsYWNlKG0sIiAiKSl9Y2F0Y2goYSl7cmV0dXJuIGNvbnNvbGUmJmNvbnNvbGUubG9nJiZjb25zb2xlLmxvZyhhLm1lc3NhZ2UpLGJ9fX1mdW5jdGlvbiBuKGIsYyxhLGUsayxmKXsidW5kZWZpbmVkIj09PXR5cGVvZiBmJiYoZj01KTsidW5kZWZpbmVkIj09PXR5cGVvZiB3aW5kb3cuQ29va2llTG9nZ2VyP2YmJnNldFRpbWVvdXQoZnVuY3Rpb24oKXtuKGIsYyxhLGUsayxmLTEpfSwxRTMpOndpbmRvdy5Db29raWVMb2dnZXIubG9nKGIsYyxhLGUsayl9dmFyIG09L1wrL2csZz1oLmNvb2tpZT1mdW5jdGlvbihiLGMsYSl7aWYoYyE9PXIpcmV0dXJuIENvb2tpZXMuaXNDb29raWVBbGxvd2VkKGIsZnVuY3Rpb24oZCl7ZGVidWcoIkNvb2tpZTogIiwKYixkKTthPWguZXh0ZW5kKHt9LGcuZGVmYXVsdHMsYSk7aWYoIWQpcmV0dXJuIENvb2tpZXMucmVtb3ZlKGIsYS5wYXRoLGEuZG9tYWluKSwhMTtudWxsPT09YyYmKGEuZXhwaXJlcz0tMSk7Im51bWJlciI9PT10eXBlb2YgYS5leHBpcmVzSW5NaW51dGVzJiYoYS5leHBpcmVzPWEuZXhwaXJlc0luTWludXRlcy8xNDQwKTtpZigibnVtYmVyIj09PXR5cGVvZiBhLmV4cGlyZXMpe2Q9YS5leHBpcmVzO3ZhciBwPWEuZXhwaXJlcz1uZXcgRGF0ZTtwLnNldFRpbWUoK3ArODY0RTUqZCl9ZD1uZXcgRGF0ZTtkLnNldEZ1bGxZZWFyKGQuZ2V0RnVsbFllYXIoKSsxKTthLmV4cGlyZXM+ZCYmKGEuZXhwaXJlcz1kKTtjPWcuanNvbj9KU09OLnN0cmluZ2lmeShjKTpTdHJpbmcoYyk7bihiLGMsYS5leHBpcmVzLGEucGF0aCxhLmRvbWFpbik7cmV0dXJuIGwuY29va2llPVtlbmNvZGVVUklDb21wb25lbnQoYiksIj0iLGcucmF3P2M6ZW5jb2RlVVJJQ29tcG9uZW50KGMpLGEuZXhwaXJlcz8iOyBleHBpcmVzPSIrCmEuZXhwaXJlcy50b1VUQ1N0cmluZygpOiIiLGEucGF0aD8iOyBwYXRoPSIrYS5wYXRoOiIiLGEuZG9tYWluPyI7IGRvbWFpbj0iK2EuZG9tYWluOiIiLGEuc2VjdXJlPyI7IHNlY3VyZSI6IiJdLmpvaW4oIiIpfSk7Zm9yKHZhciBlPWcucmF3P3Q6dSxrPWwuY29va2llLnNwbGl0KCI7ICIpLGY9MCx2PWsubGVuZ3RoO2Y8djtmKyspe3ZhciBxPWtbZl0uc3BsaXQoIj0iKTtpZihlKHEuc2hpZnQoKSk9PT1iKXJldHVybiBlPWUocS5qb2luKCI9IikpLGcuanNvbj9KU09OLnBhcnNlKGUpOmV9cmV0dXJuIG51bGx9O2cuZGVmYXVsdHM9e307aC5yZW1vdmVDb29raWU9ZnVuY3Rpb24oYixjKXtyZXR1cm4gbnVsbCE9PWguY29va2llKGIpPyhoLmNvb2tpZShiLG51bGwsYyksITApOiExfX0pKGpRdWVyeSxkb2N1bWVudCk7Ci8qKiAvbS9qcy92YW5pbGxhanMvY29va2llcy5jb25zZW50LmpzICoqLwp2YXIgX19fZDJjX2Nvb2tpZXNjb25zZW50anNfY19vbj0iMjAyNS0wNS0yMyAxNzowNToxMyI7J3VzZSBzdHJpY3QnO3ZhciBfX19kMmNfY29va2llc2NvbnNlbnRqc19jX29uPSIyMDI1LTAxLTIyIDEwOjMwOjA4IjsidXNlIHN0cmljdCI7CihmdW5jdGlvbigpe3dpbmRvdy5Db29raWVDb25zZW50PXtDQVRFR09SWUlEX0VTU0VOVElBTDoyLF9jbXBJbnRlcnZhbElEOm51bGwsX2N1cnJlbnRWZW5kb3I6bnVsbCxfY29va2llczpudWxsLF9jYXRlZ29yaWVzOm51bGwsX3JlZ2lzdGVyZWRSZXF1ZXN0czpbXSxpbml0OmZ1bmN0aW9uKCl7Q29va2llQ29uc2VudC5fbG9hZEpTT04obnVsbCk7Q29va2llQ29uc2VudC5fY21wSW50ZXJ2YWxJRD1zZXRJbnRlcnZhbChmdW5jdGlvbigpe0Nvb2tpZUNvbnNlbnQubGlzdGVuRm9yT25lVHJ1c3QoKX0sMUUzKTt2YXIgYj1Db29raWVDb25zZW50LmdldENvbnNlbnQoKTtsZXQgYT1udWxsPT1ifHwtMTxiLmluZGV4T2YoIkMwMDAyIik\/ImdyYW50ZWQiOiJkZW5pZWQiO2I9bnVsbD09Ynx8LTE8Yi5pbmRleE9mKCJDMDAwNCIpPyJncmFudGVkIjoiZGVuaWVkIjtndGFnKCJjb25zZW50IiwiZGVmYXVsdCIse2FkX3N0b3JhZ2U6YixhbmFseXRpY3Nfc3RvcmFnZTphfSk7InVuZGVmaW5lZCIhPT0KdHlwZW9mIGZicSYmZmJxKCJjb25zZW50IiwicmV2b2tlIil9LGxpc3RlbkZvck9uZVRydXN0OmZ1bmN0aW9uKCl7aWYoInVuZGVmaW5lZCIhPT10eXBlb2YgT25lVHJ1c3Qpe2NvbnNvbGUubG9nKCJDb29raWVDb25zZW50Lmxpc3RlbkZvck9uZVRydXN0KCkiKTtDb29raWVDb25zZW50Ll9jdXJyZW50VmVuZG9yPSJPbmVUcnVzdCI7Y2xlYXJJbnRlcnZhbChDb29raWVDb25zZW50Ll9jbXBJbnRlcnZhbElEKTt2YXIgYj1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjb25ldHJ1c3QtY2xvc2UtYnRuLWNvbnRhaW5lciAub25ldHJ1c3QtY2xvc2UtYnRuLWhhbmRsZXIiKTtiJiZiLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbigpe3NldFRpbWVvdXQoZnVuY3Rpb24oKXtsZXQgYT13aW5kb3cubG9jYXRpb24uaG9zdG5hbWUsYz1sb2NhdGlvbi5ob3N0bmFtZS5zcGxpdCgiLiIpLnNsaWNlKC0yKS5qb2luKCIuIik7ZG9jdW1lbnQuY29va2llPSJPcHRhbm9uQWxlcnRCb3hDbG9zZWQ9OyBQYXRoPS87IEV4cGlyZXM9VGh1LCAwMSBKYW4gMTk3MCAwMDowMDowMSBHTVQ7ZG9tYWluPSIrCmErIjsiO2RvY3VtZW50LmNvb2tpZT0iT3B0YW5vbkFsZXJ0Qm94Q2xvc2VkPTsgUGF0aD0vOyBFeHBpcmVzPVRodSwgMDEgSmFuIDE5NzAgMDA6MDA6MDEgR01UO2RvbWFpbj0iK2MrIjsifSwxRTMpfSk7T25lVHJ1c3QuT25Db25zZW50Q2hhbmdlZChmdW5jdGlvbihhKXtpZihhJiZhLmRldGFpbCl7dmFyIGM9Q29va2llQ29uc2VudC5fZ2V0Q29uc2VudENvb2tpZSgpO0Nvb2tpZUNvbnNlbnQuX3VwZGF0ZUNvbnNlbnRDb29raWUoSlNPTi5zdHJpbmdpZnkoYS5kZXRhaWwpKTstMTxhLmRldGFpbC5pbmRleE9mKCJDMDAwNCIpP2d0YWcoImNvbnNlbnQiLCJ1cGRhdGUiLHthZF9zdG9yYWdlOiJncmFudGVkIn0pOmd0YWcoImNvbnNlbnQiLCJ1cGRhdGUiLHthZF9zdG9yYWdlOiJkZW5pZWQifSk7LTE8YS5kZXRhaWwuaW5kZXhPZigiQzAwMDIiKT9ndGFnKCJjb25zZW50IiwidXBkYXRlIix7YW5hbHl0aWNzX3N0b3JhZ2U6ImdyYW50ZWQifSk6Z3RhZygiY29uc2VudCIsInVwZGF0ZSIsCnthbmFseXRpY3Nfc3RvcmFnZToiZGVuaWVkIn0pOyJ1bmRlZmluZWQiIT09dHlwZW9mIGZicSYmKC0xPGEuZGV0YWlsLmluZGV4T2YoIkMwMDA0Iik\/ZmJxKCJjb25zZW50IiwiZ3JhbnQiKTpmYnEoImNvbnNlbnQiLCJyZXZva2UiKSk7MT09YS5kZXRhaWwubGVuZ3RoJiYiQzAwMDEiPT1hLmRldGFpbFswXSYmKG51bGw9PWN8fDE8Yy5sZW5ndGgpJiZkMmNGb290ZXJEZWxldGVBbGxDb29raWVzKCEwKTtpZigtMTxhLmRldGFpbC5pbmRleE9mKCJDMDAwMiIpKXtjPXNlc3Npb25TdG9yYWdlLmdldEl0ZW0oImQyY19jb25zZW50X3dhaXQiKTtjPW51bGwhPWM\/SlNPTi5wYXJzZShhdG9iKGMpKTp7fTtmb3IodmFyIGQgaW4gYylDb29raWVzLnNldChjW2RdLmtleSxjW2RdLnZhbHVlLGNbZF0uZXhwaXJlcyxjW2RdLnBhdGgsY1tkXS5kb21haW4pfXNlc3Npb25TdG9yYWdlLnJlbW92ZUl0ZW0oImQyY19jb25zZW50X3dhaXQiKTtkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJib2R5IikuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoImQyY19jb25zZW50X2NoYW5nZWQiLAp7Y2F0ZWdvcmllczphLmRldGFpbH0pKX19KX19LF91cGRhdGVDb25zZW50Q29va2llOmZ1bmN0aW9uKGIpe0Nvb2tpZXMuc2V0KCJkMmNfY29va2llX2NvbnNlbnQiLGIsMzY1LCIvIil9LF9nZXRDb25zZW50Q29va2llOmZ1bmN0aW9uKCl7aWYoIUNvb2tpZXMuaGFzKCJkMmNfY29va2llX2NvbnNlbnQiKSlyZXR1cm4gbnVsbDtsZXQgYj1Db29raWVzLmdldCgiZDJjX2Nvb2tpZV9jb25zZW50Iik7cmV0dXJuIEpTT04ucGFyc2UoYil9LGdldENvbnNlbnQ6ZnVuY3Rpb24oKXtsZXQgYj0oIiIrZG9jdW1lbnQuY29va2llKS5zcGxpdCgiOyIpO2ZvcihsZXQgYT0wO2E8Yi5sZW5ndGg7YSsrKXtsZXQgYz1iW2FdO2M9Yy50cmltKCk7aWYoMD09Yy5pbmRleE9mKCJkMmNfY29va2llX2NvbnNlbnQ9Iikpe3RyeXtjPWRlY29kZVVSSUNvbXBvbmVudChjKX1jYXRjaChkKXtjb25zb2xlLmxvZyhkKTticmVha31yZXR1cm4gYy5zdWJzdHJpbmcoMTksYy5sZW5ndGgpfX1yZXR1cm4gbnVsbH0sCmlzQ29va2llQWxsb3dlZDpmdW5jdGlvbihiLGEpe2lmKFsiZDJjX2Nvb2tpZV9jb25zZW50IiwiQ1NSRkRPTUFJTkNIRUNLXzEiXS5pbmNsdWRlcyhiKSlhKCEwKTtlbHNlIGlmKG51bGw9PT1Db29raWVDb25zZW50Ll9jb29raWVzfHxudWxsPT09Q29va2llQ29uc2VudC5fY2F0ZWdvcmllcylDb29raWVDb25zZW50Ll9yZWdpc3RlckpTT05Mb2FkZWRFdmVudChmdW5jdGlvbigpe0Nvb2tpZUNvbnNlbnQuaXNDb29raWVBbGxvd2VkKGIsYSl9KTtlbHNlIGlmKENvb2tpZUNvbnNlbnQuX2Nvb2tpZXMuaGFzT3duUHJvcGVydHkoYikpe3ZhciBjPUNvb2tpZUNvbnNlbnQuX2Nvb2tpZXNbYl0sZD1Db29raWVDb25zZW50Ll9nZXRWZW5kb3JDYXRlZ29yeShjKSxlPUNvb2tpZUNvbnNlbnQuX2dldENvbnNlbnRDb29raWUoKTsiZnVuY3Rpb24iPT09dHlwZW9mIGRlYnVnJiZkZWJ1Zyh7bmFtZTpiLGNhdGVnb3J5OmMsdmVuZG9yOmQsY29uc2VudDplfSk7bnVsbD09PWV8fG51bGw9PT1kPwphKCExKToib2JqZWN0Ij09PXR5cGVvZiBkPyhjPTA8ZC5maWx0ZXIoZnVuY3Rpb24oZil7cmV0dXJuLTE8ZS5pbmRleE9mKGYpfSkubGVuZ3RoLGEoYykpOmEoLTE8ZS5pbmRleE9mKGQpKX1lbHNlIGEoITEpfSxfbG9hZEpTT046ZnVuY3Rpb24oYil7ZmV0Y2goIi9qcy9qc29uL2NhdGVnb3JpemVkX2Nvb2tpZXMuanNvbiIpLnRoZW4oZnVuY3Rpb24oYSl7cmV0dXJuIGEuanNvbigpfSkudGhlbihmdW5jdGlvbihhKXtDb29raWVDb25zZW50Ll9jb29raWVzPWEuY29va2llcztDb29raWVDb25zZW50Ll9jYXRlZ29yaWVzPWEuY2F0ZWdvcmllcztpZigiZnVuY3Rpb24iPT09dHlwZW9mIGIpdHJ5e2IoKX1jYXRjaChjKXt9MDxDb29raWVDb25zZW50Ll9yZWdpc3RlcmVkUmVxdWVzdHMubGVuZ3RoJiZDb29raWVDb25zZW50Ll9yZWdpc3RlcmVkUmVxdWVzdHMuZm9yRWFjaChmdW5jdGlvbihjKXt0cnl7YygpfWNhdGNoKGQpe319KX0pfSxfcmVnaXN0ZXJKU09OTG9hZGVkRXZlbnQ6ZnVuY3Rpb24oYil7aWYoImZ1bmN0aW9uIj09PQp0eXBlb2YgYilpZihudWxsIT09Q29va2llQ29uc2VudC5fY29va2llcyl0cnl7YigpfWNhdGNoKGEpe31lbHNlIENvb2tpZUNvbnNlbnQuX3JlZ2lzdGVyZWRSZXF1ZXN0cy5wdXNoKGIpfSxfZ2V0VmVuZG9yQ2F0ZWdvcnk6ZnVuY3Rpb24oYil7aWYobnVsbD09PUNvb2tpZUNvbnNlbnQuX2N1cnJlbnRWZW5kb3Ipe2xldCBjPVtdO09iamVjdC52YWx1ZXMoQ29va2llQ29uc2VudC5fY2F0ZWdvcmllcykuZm9yRWFjaChmdW5jdGlvbihkKXtkLmhhc093blByb3BlcnR5KGIpJiZjLnB1c2goZFtiXSl9KTtyZXR1cm4gY31sZXQgYT1Db29raWVDb25zZW50Ll9jYXRlZ29yaWVzW0Nvb2tpZUNvbnNlbnQuX2N1cnJlbnRWZW5kb3JdO3JldHVybiBhJiZhLmhhc093blByb3BlcnR5KGIpP2FbYl06bnVsbH19O3dpbmRvdy5Db29raWVDb25zZW50LmluaXQoKX0pKCk7Ci8qKiAvbS9qcy92YW5pbGxhanMvY29udGVudExvYWRlci5qcyAqKi8KdmFyIF9fX2QyY19jb250ZW50TG9hZGVyanNfY19vbj0iMjAyNi0wMS0xMiAxMDoxMzoyOSI7J3VzZSBzdHJpY3QnO3ZhciAkanNjb21wPSRqc2NvbXB8fHt9OyRqc2NvbXAuc2NvcGU9e307JGpzY29tcC5BU1NVTUVfRVM1PSExOyRqc2NvbXAuQVNTVU1FX05PX05BVElWRV9NQVA9ITE7JGpzY29tcC5BU1NVTUVfTk9fTkFUSVZFX1NFVD0hMTskanNjb21wLlNJTVBMRV9GUk9VTkRfUE9MWUZJTEw9ITE7JGpzY29tcC5JU09MQVRFX1BPTFlGSUxMUz0hMTskanNjb21wLkZPUkNFX1BPTFlGSUxMX1BST01JU0U9ITE7JGpzY29tcC5GT1JDRV9QT0xZRklMTF9QUk9NSVNFX1dIRU5fTk9fVU5IQU5ETEVEX1JFSkVDVElPTj0hMTskanNjb21wLmRlZmluZVByb3BlcnR5PSRqc2NvbXAuQVNTVU1FX0VTNXx8ImZ1bmN0aW9uIj09dHlwZW9mIE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzP09iamVjdC5kZWZpbmVQcm9wZXJ0eTpmdW5jdGlvbihhLGIsYyl7aWYoYT09QXJyYXkucHJvdG90eXBlfHxhPT1PYmplY3QucHJvdG90eXBlKXJldHVybiBhO2FbYl09Yy52YWx1ZTtyZXR1cm4gYX07CiRqc2NvbXAuZ2V0R2xvYmFsPWZ1bmN0aW9uKGEpe2E9WyJvYmplY3QiPT10eXBlb2YgZ2xvYmFsVGhpcyYmZ2xvYmFsVGhpcyxhLCJvYmplY3QiPT10eXBlb2Ygd2luZG93JiZ3aW5kb3csIm9iamVjdCI9PXR5cGVvZiBzZWxmJiZzZWxmLCJvYmplY3QiPT10eXBlb2YgZ2xvYmFsJiZnbG9iYWxdO2Zvcih2YXIgYj0wO2I8YS5sZW5ndGg7KytiKXt2YXIgYz1hW2JdO2lmKGMmJmMuTWF0aD09TWF0aClyZXR1cm4gY310aHJvdyBFcnJvcigiQ2Fubm90IGZpbmQgZ2xvYmFsIG9iamVjdCIpO307JGpzY29tcC5nbG9iYWw9JGpzY29tcC5nZXRHbG9iYWwodGhpcyk7JGpzY29tcC5JU19TWU1CT0xfTkFUSVZFPSJmdW5jdGlvbiI9PT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09PXR5cGVvZiBTeW1ib2woIngiKTskanNjb21wLlRSVVNUX0VTNl9QT0xZRklMTFM9ISRqc2NvbXAuSVNPTEFURV9QT0xZRklMTFN8fCRqc2NvbXAuSVNfU1lNQk9MX05BVElWRTskanNjb21wLnBvbHlmaWxscz17fTsKJGpzY29tcC5wcm9wZXJ0eVRvUG9seWZpbGxTeW1ib2w9e307JGpzY29tcC5QT0xZRklMTF9QUkVGSVg9IiRqc2NwJCI7dmFyICRqc2NvbXAkbG9va3VwUG9seWZpbGxlZFZhbHVlPWZ1bmN0aW9uKGEsYil7dmFyIGM9JGpzY29tcC5wcm9wZXJ0eVRvUG9seWZpbGxTeW1ib2xbYl07aWYobnVsbD09YylyZXR1cm4gYVtiXTtjPWFbY107cmV0dXJuIHZvaWQgMCE9PWM\/YzphW2JdfTskanNjb21wLnBvbHlmaWxsPWZ1bmN0aW9uKGEsYixjLGQpe2ImJigkanNjb21wLklTT0xBVEVfUE9MWUZJTExTPyRqc2NvbXAucG9seWZpbGxJc29sYXRlZChhLGIsYyxkKTokanNjb21wLnBvbHlmaWxsVW5pc29sYXRlZChhLGIsYyxkKSl9OwokanNjb21wLnBvbHlmaWxsVW5pc29sYXRlZD1mdW5jdGlvbihhLGIsYyxkKXtjPSRqc2NvbXAuZ2xvYmFsO2E9YS5zcGxpdCgiLiIpO2ZvcihkPTA7ZDxhLmxlbmd0aC0xO2QrKyl7dmFyIGU9YVtkXTtpZighKGUgaW4gYykpcmV0dXJuO2M9Y1tlXX1hPWFbYS5sZW5ndGgtMV07ZD1jW2FdO2I9YihkKTtiIT1kJiZudWxsIT1iJiYkanNjb21wLmRlZmluZVByb3BlcnR5KGMsYSx7Y29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmJ9KX07CiRqc2NvbXAucG9seWZpbGxJc29sYXRlZD1mdW5jdGlvbihhLGIsYyxkKXt2YXIgZT1hLnNwbGl0KCIuIik7YT0xPT09ZS5sZW5ndGg7ZD1lWzBdO2Q9IWEmJmQgaW4gJGpzY29tcC5wb2x5ZmlsbHM\/JGpzY29tcC5wb2x5ZmlsbHM6JGpzY29tcC5nbG9iYWw7Zm9yKHZhciBmPTA7ZjxlLmxlbmd0aC0xO2YrKyl7dmFyIGc9ZVtmXTtpZighKGcgaW4gZCkpcmV0dXJuO2Q9ZFtnXX1lPWVbZS5sZW5ndGgtMV07Yz0kanNjb21wLklTX1NZTUJPTF9OQVRJVkUmJiJlczYiPT09Yz9kW2VdOm51bGw7Yj1iKGMpO251bGwhPWImJihhPyRqc2NvbXAuZGVmaW5lUHJvcGVydHkoJGpzY29tcC5wb2x5ZmlsbHMsZSx7Y29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmJ9KTpiIT09YyYmKHZvaWQgMD09PSRqc2NvbXAucHJvcGVydHlUb1BvbHlmaWxsU3ltYm9sW2VdJiYoYz0xRTkqTWF0aC5yYW5kb20oKT4+PjAsJGpzY29tcC5wcm9wZXJ0eVRvUG9seWZpbGxTeW1ib2xbZV09JGpzY29tcC5JU19TWU1CT0xfTkFUSVZFPwokanNjb21wLmdsb2JhbC5TeW1ib2woZSk6JGpzY29tcC5QT0xZRklMTF9QUkVGSVgrYysiJCIrZSksJGpzY29tcC5kZWZpbmVQcm9wZXJ0eShkLCRqc2NvbXAucHJvcGVydHlUb1BvbHlmaWxsU3ltYm9sW2VdLHtjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Yn0pKSl9OyRqc2NvbXAudW5kZXJzY29yZVByb3RvQ2FuQmVTZXQ9ZnVuY3Rpb24oKXt2YXIgYT17YTohMH0sYj17fTt0cnl7cmV0dXJuIGIuX19wcm90b19fPWEsYi5hfWNhdGNoKGMpe31yZXR1cm4hMX07CiRqc2NvbXAuc2V0UHJvdG90eXBlT2Y9JGpzY29tcC5UUlVTVF9FUzZfUE9MWUZJTExTJiYiZnVuY3Rpb24iPT10eXBlb2YgT2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZjokanNjb21wLnVuZGVyc2NvcmVQcm90b0NhbkJlU2V0KCk\/ZnVuY3Rpb24oYSxiKXthLl9fcHJvdG9fXz1iO2lmKGEuX19wcm90b19fIT09Yil0aHJvdyBuZXcgVHlwZUVycm9yKGErIiBpcyBub3QgZXh0ZW5zaWJsZSIpO3JldHVybiBhfTpudWxsOyRqc2NvbXAuYXJyYXlJdGVyYXRvckltcGw9ZnVuY3Rpb24oYSl7dmFyIGI9MDtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gYjxhLmxlbmd0aD97ZG9uZTohMSx2YWx1ZTphW2IrK119Ontkb25lOiEwfX19OyRqc2NvbXAuYXJyYXlJdGVyYXRvcj1mdW5jdGlvbihhKXtyZXR1cm57bmV4dDokanNjb21wLmFycmF5SXRlcmF0b3JJbXBsKGEpfX07CiRqc2NvbXAubWFrZUl0ZXJhdG9yPWZ1bmN0aW9uKGEpe3ZhciBiPSJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZTeW1ib2wuaXRlcmF0b3ImJmFbU3ltYm9sLml0ZXJhdG9yXTtyZXR1cm4gYj9iLmNhbGwoYSk6JGpzY29tcC5hcnJheUl0ZXJhdG9yKGEpfTskanNjb21wLmdlbmVyYXRvcj17fTskanNjb21wLmdlbmVyYXRvci5lbnN1cmVJdGVyYXRvclJlc3VsdElzT2JqZWN0Xz1mdW5jdGlvbihhKXtpZighKGEgaW5zdGFuY2VvZiBPYmplY3QpKXRocm93IG5ldyBUeXBlRXJyb3IoIkl0ZXJhdG9yIHJlc3VsdCAiK2ErIiBpcyBub3QgYW4gb2JqZWN0Iik7fTsKJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dD1mdW5jdGlvbigpe3RoaXMuaXNSdW5uaW5nXz0hMTt0aGlzLnlpZWxkQWxsSXRlcmF0b3JfPW51bGw7dGhpcy55aWVsZFJlc3VsdD12b2lkIDA7dGhpcy5uZXh0QWRkcmVzcz0xO3RoaXMuZmluYWxseUFkZHJlc3NfPXRoaXMuY2F0Y2hBZGRyZXNzXz0wO3RoaXMuZmluYWxseUNvbnRleHRzXz10aGlzLmFicnVwdENvbXBsZXRpb25fPW51bGx9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLnN0YXJ0Xz1mdW5jdGlvbigpe2lmKHRoaXMuaXNSdW5uaW5nXyl0aHJvdyBuZXcgVHlwZUVycm9yKCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBydW5uaW5nIik7dGhpcy5pc1J1bm5pbmdfPSEwfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5zdG9wXz1mdW5jdGlvbigpe3RoaXMuaXNSdW5uaW5nXz0hMX07CiRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmp1bXBUb0Vycm9ySGFuZGxlcl89ZnVuY3Rpb24oKXt0aGlzLm5leHRBZGRyZXNzPXRoaXMuY2F0Y2hBZGRyZXNzX3x8dGhpcy5maW5hbGx5QWRkcmVzc199OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLm5leHRfPWZ1bmN0aW9uKGEpe3RoaXMueWllbGRSZXN1bHQ9YX07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUudGhyb3dfPWZ1bmN0aW9uKGEpe3RoaXMuYWJydXB0Q29tcGxldGlvbl89e2V4Y2VwdGlvbjphLGlzRXhjZXB0aW9uOiEwfTt0aGlzLmp1bXBUb0Vycm9ySGFuZGxlcl8oKX07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUucmV0dXJuPWZ1bmN0aW9uKGEpe3RoaXMuYWJydXB0Q29tcGxldGlvbl89e3JldHVybjphfTt0aGlzLm5leHRBZGRyZXNzPXRoaXMuZmluYWxseUFkZHJlc3NffTsKJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuanVtcFRocm91Z2hGaW5hbGx5QmxvY2tzPWZ1bmN0aW9uKGEpe3RoaXMuYWJydXB0Q29tcGxldGlvbl89e2p1bXBUbzphfTt0aGlzLm5leHRBZGRyZXNzPXRoaXMuZmluYWxseUFkZHJlc3NffTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS55aWVsZD1mdW5jdGlvbihhLGIpe3RoaXMubmV4dEFkZHJlc3M9YjtyZXR1cm57dmFsdWU6YX19OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLnlpZWxkQWxsPWZ1bmN0aW9uKGEsYil7YT0kanNjb21wLm1ha2VJdGVyYXRvcihhKTt2YXIgYz1hLm5leHQoKTskanNjb21wLmdlbmVyYXRvci5lbnN1cmVJdGVyYXRvclJlc3VsdElzT2JqZWN0XyhjKTtpZihjLmRvbmUpdGhpcy55aWVsZFJlc3VsdD1jLnZhbHVlLHRoaXMubmV4dEFkZHJlc3M9YjtlbHNlIHJldHVybiB0aGlzLnlpZWxkQWxsSXRlcmF0b3JfPWEsdGhpcy55aWVsZChjLnZhbHVlLGIpfTsKJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuanVtcFRvPWZ1bmN0aW9uKGEpe3RoaXMubmV4dEFkZHJlc3M9YX07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuanVtcFRvRW5kPWZ1bmN0aW9uKCl7dGhpcy5uZXh0QWRkcmVzcz0wfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5zZXRDYXRjaEZpbmFsbHlCbG9ja3M9ZnVuY3Rpb24oYSxiKXt0aGlzLmNhdGNoQWRkcmVzc189YTt2b2lkIDAhPWImJih0aGlzLmZpbmFsbHlBZGRyZXNzXz1iKX07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuc2V0RmluYWxseUJsb2NrPWZ1bmN0aW9uKGEpe3RoaXMuY2F0Y2hBZGRyZXNzXz0wO3RoaXMuZmluYWxseUFkZHJlc3NfPWF8fDB9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmxlYXZlVHJ5QmxvY2s9ZnVuY3Rpb24oYSxiKXt0aGlzLm5leHRBZGRyZXNzPWE7dGhpcy5jYXRjaEFkZHJlc3NfPWJ8fDB9OwokanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5lbnRlckNhdGNoQmxvY2s9ZnVuY3Rpb24oYSl7dGhpcy5jYXRjaEFkZHJlc3NfPWF8fDA7YT10aGlzLmFicnVwdENvbXBsZXRpb25fLmV4Y2VwdGlvbjt0aGlzLmFicnVwdENvbXBsZXRpb25fPW51bGw7cmV0dXJuIGF9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmVudGVyRmluYWxseUJsb2NrPWZ1bmN0aW9uKGEsYixjKXtjP3RoaXMuZmluYWxseUNvbnRleHRzX1tjXT10aGlzLmFicnVwdENvbXBsZXRpb25fOnRoaXMuZmluYWxseUNvbnRleHRzXz1bdGhpcy5hYnJ1cHRDb21wbGV0aW9uX107dGhpcy5jYXRjaEFkZHJlc3NfPWF8fDA7dGhpcy5maW5hbGx5QWRkcmVzc189Ynx8MH07CiRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmxlYXZlRmluYWxseUJsb2NrPWZ1bmN0aW9uKGEsYil7Yj10aGlzLmZpbmFsbHlDb250ZXh0c18uc3BsaWNlKGJ8fDApWzBdO2lmKGI9dGhpcy5hYnJ1cHRDb21wbGV0aW9uXz10aGlzLmFicnVwdENvbXBsZXRpb25ffHxiKXtpZihiLmlzRXhjZXB0aW9uKXJldHVybiB0aGlzLmp1bXBUb0Vycm9ySGFuZGxlcl8oKTt2b2lkIDAhPWIuanVtcFRvJiZ0aGlzLmZpbmFsbHlBZGRyZXNzXzxiLmp1bXBUbz8odGhpcy5uZXh0QWRkcmVzcz1iLmp1bXBUbyx0aGlzLmFicnVwdENvbXBsZXRpb25fPW51bGwpOnRoaXMubmV4dEFkZHJlc3M9dGhpcy5maW5hbGx5QWRkcmVzc199ZWxzZSB0aGlzLm5leHRBZGRyZXNzPWF9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmZvckluPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcgJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5Qcm9wZXJ0eUl0ZXJhdG9yKGEpfTsKJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5Qcm9wZXJ0eUl0ZXJhdG9yPWZ1bmN0aW9uKGEpe3RoaXMub2JqZWN0Xz1hO3RoaXMucHJvcGVydGllc189W107Zm9yKHZhciBiIGluIGEpdGhpcy5wcm9wZXJ0aWVzXy5wdXNoKGIpO3RoaXMucHJvcGVydGllc18ucmV2ZXJzZSgpfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LlByb3BlcnR5SXRlcmF0b3IucHJvdG90eXBlLmdldE5leHQ9ZnVuY3Rpb24oKXtmb3IoOzA8dGhpcy5wcm9wZXJ0aWVzXy5sZW5ndGg7KXt2YXIgYT10aGlzLnByb3BlcnRpZXNfLnBvcCgpO2lmKGEgaW4gdGhpcy5vYmplY3RfKXJldHVybiBhfXJldHVybiBudWxsfTskanNjb21wLmdlbmVyYXRvci5FbmdpbmVfPWZ1bmN0aW9uKGEpe3RoaXMuY29udGV4dF89bmV3ICRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQ7dGhpcy5wcm9ncmFtXz1hfTsKJGpzY29tcC5nZW5lcmF0b3IuRW5naW5lXy5wcm90b3R5cGUubmV4dF89ZnVuY3Rpb24oYSl7dGhpcy5jb250ZXh0Xy5zdGFydF8oKTtpZih0aGlzLmNvbnRleHRfLnlpZWxkQWxsSXRlcmF0b3JfKXJldHVybiB0aGlzLnlpZWxkQWxsU3RlcF8odGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yXy5uZXh0LGEsdGhpcy5jb250ZXh0Xy5uZXh0Xyk7dGhpcy5jb250ZXh0Xy5uZXh0XyhhKTtyZXR1cm4gdGhpcy5uZXh0U3RlcF8oKX07CiRqc2NvbXAuZ2VuZXJhdG9yLkVuZ2luZV8ucHJvdG90eXBlLnJldHVybl89ZnVuY3Rpb24oYSl7dGhpcy5jb250ZXh0Xy5zdGFydF8oKTt2YXIgYj10aGlzLmNvbnRleHRfLnlpZWxkQWxsSXRlcmF0b3JfO2lmKGIpcmV0dXJuIHRoaXMueWllbGRBbGxTdGVwXygicmV0dXJuImluIGI\/YlsicmV0dXJuIl06ZnVuY3Rpb24oYyl7cmV0dXJue3ZhbHVlOmMsZG9uZTohMH19LGEsdGhpcy5jb250ZXh0Xy5yZXR1cm4pO3RoaXMuY29udGV4dF8ucmV0dXJuKGEpO3JldHVybiB0aGlzLm5leHRTdGVwXygpfTsKJGpzY29tcC5nZW5lcmF0b3IuRW5naW5lXy5wcm90b3R5cGUudGhyb3dfPWZ1bmN0aW9uKGEpe3RoaXMuY29udGV4dF8uc3RhcnRfKCk7aWYodGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yXylyZXR1cm4gdGhpcy55aWVsZEFsbFN0ZXBfKHRoaXMuY29udGV4dF8ueWllbGRBbGxJdGVyYXRvcl9bInRocm93Il0sYSx0aGlzLmNvbnRleHRfLm5leHRfKTt0aGlzLmNvbnRleHRfLnRocm93XyhhKTtyZXR1cm4gdGhpcy5uZXh0U3RlcF8oKX07CiRqc2NvbXAuZ2VuZXJhdG9yLkVuZ2luZV8ucHJvdG90eXBlLnlpZWxkQWxsU3RlcF89ZnVuY3Rpb24oYSxiLGMpe3RyeXt2YXIgZD1hLmNhbGwodGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yXyxiKTskanNjb21wLmdlbmVyYXRvci5lbnN1cmVJdGVyYXRvclJlc3VsdElzT2JqZWN0XyhkKTtpZighZC5kb25lKXJldHVybiB0aGlzLmNvbnRleHRfLnN0b3BfKCksZDt2YXIgZT1kLnZhbHVlfWNhdGNoKGYpe3JldHVybiB0aGlzLmNvbnRleHRfLnlpZWxkQWxsSXRlcmF0b3JfPW51bGwsdGhpcy5jb250ZXh0Xy50aHJvd18oZiksdGhpcy5uZXh0U3RlcF8oKX10aGlzLmNvbnRleHRfLnlpZWxkQWxsSXRlcmF0b3JfPW51bGw7Yy5jYWxsKHRoaXMuY29udGV4dF8sZSk7cmV0dXJuIHRoaXMubmV4dFN0ZXBfKCl9OwokanNjb21wLmdlbmVyYXRvci5FbmdpbmVfLnByb3RvdHlwZS5uZXh0U3RlcF89ZnVuY3Rpb24oKXtmb3IoO3RoaXMuY29udGV4dF8ubmV4dEFkZHJlc3M7KXRyeXt2YXIgYT10aGlzLnByb2dyYW1fKHRoaXMuY29udGV4dF8pO2lmKGEpcmV0dXJuIHRoaXMuY29udGV4dF8uc3RvcF8oKSx7dmFsdWU6YS52YWx1ZSxkb25lOiExfX1jYXRjaChiKXt0aGlzLmNvbnRleHRfLnlpZWxkUmVzdWx0PXZvaWQgMCx0aGlzLmNvbnRleHRfLnRocm93XyhiKX10aGlzLmNvbnRleHRfLnN0b3BfKCk7aWYodGhpcy5jb250ZXh0Xy5hYnJ1cHRDb21wbGV0aW9uXyl7YT10aGlzLmNvbnRleHRfLmFicnVwdENvbXBsZXRpb25fO3RoaXMuY29udGV4dF8uYWJydXB0Q29tcGxldGlvbl89bnVsbDtpZihhLmlzRXhjZXB0aW9uKXRocm93IGEuZXhjZXB0aW9uO3JldHVybnt2YWx1ZTphLnJldHVybixkb25lOiEwfX1yZXR1cm57dmFsdWU6dm9pZCAwLGRvbmU6ITB9fTsKJGpzY29tcC5nZW5lcmF0b3IuR2VuZXJhdG9yXz1mdW5jdGlvbihhKXt0aGlzLm5leHQ9ZnVuY3Rpb24oYil7cmV0dXJuIGEubmV4dF8oYil9O3RoaXMudGhyb3c9ZnVuY3Rpb24oYil7cmV0dXJuIGEudGhyb3dfKGIpfTt0aGlzLnJldHVybj1mdW5jdGlvbihiKXtyZXR1cm4gYS5yZXR1cm5fKGIpfTt0aGlzW1N5bWJvbC5pdGVyYXRvcl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc319OyRqc2NvbXAuZ2VuZXJhdG9yLmNyZWF0ZUdlbmVyYXRvcj1mdW5jdGlvbihhLGIpe2I9bmV3ICRqc2NvbXAuZ2VuZXJhdG9yLkdlbmVyYXRvcl8obmV3ICRqc2NvbXAuZ2VuZXJhdG9yLkVuZ2luZV8oYikpOyRqc2NvbXAuc2V0UHJvdG90eXBlT2YmJmEucHJvdG90eXBlJiYkanNjb21wLnNldFByb3RvdHlwZU9mKGIsYS5wcm90b3R5cGUpO3JldHVybiBifTsKJGpzY29tcC5hc3luY0V4ZWN1dGVQcm9taXNlR2VuZXJhdG9yPWZ1bmN0aW9uKGEpe2Z1bmN0aW9uIGIoZCl7cmV0dXJuIGEubmV4dChkKX1mdW5jdGlvbiBjKGQpe3JldHVybiBhLnRocm93KGQpfXJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihkLGUpe2Z1bmN0aW9uIGYoZyl7Zy5kb25lP2QoZy52YWx1ZSk6UHJvbWlzZS5yZXNvbHZlKGcudmFsdWUpLnRoZW4oYixjKS50aGVuKGYsZSl9ZihhLm5leHQoKSl9KX07JGpzY29tcC5hc3luY0V4ZWN1dGVQcm9taXNlR2VuZXJhdG9yRnVuY3Rpb249ZnVuY3Rpb24oYSl7cmV0dXJuICRqc2NvbXAuYXN5bmNFeGVjdXRlUHJvbWlzZUdlbmVyYXRvcihhKCkpfTskanNjb21wLmFzeW5jRXhlY3V0ZVByb21pc2VHZW5lcmF0b3JQcm9ncmFtPWZ1bmN0aW9uKGEpe3JldHVybiAkanNjb21wLmFzeW5jRXhlY3V0ZVByb21pc2VHZW5lcmF0b3IobmV3ICRqc2NvbXAuZ2VuZXJhdG9yLkdlbmVyYXRvcl8obmV3ICRqc2NvbXAuZ2VuZXJhdG9yLkVuZ2luZV8oYSkpKX07CmNvbnN0IGNvbnRlbnRCbG9ja3M9KCk9Pntjb25zdCBhPWI9PiRqc2NvbXAuYXN5bmNFeGVjdXRlUHJvbWlzZUdlbmVyYXRvckZ1bmN0aW9uKGZ1bmN0aW9uKigpe3ZhciBjPWIuZGF0YXNldCxkLGU9bnVsbD09KGQ9Yi5xdWVyeVNlbGVjdG9yKCdpbnB1dFtuYW1lPSJibG9jay1kYXRhIl0nKSk\/dm9pZCAwOmQudmFsdWU7ZD0iRlJFTkNIIj09ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI2FjdGl2ZXNpdGVsYW5ndWFnZSIpLnZhbHVlPyJmciI6ImVuIjtjPU9iamVjdC5hc3NpZ24oe30sYyx7ZGF0YTplfHwie30ifSk7Yz15aWVsZCh5aWVsZCBmZXRjaChgLyR7ZW5jb2RlVVJJQ29tcG9uZW50KGQpfS9hamF4L2dldFNrZWxldG9uQ29udGVudGAse21ldGhvZDoiUE9TVCIsaGVhZGVyczp7QWNjZXB0OiJhcHBsaWNhdGlvbi9qc29uIiwiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkOyIsY2hhcnNldDoiVVRGLTgifSxib2R5Om5ldyBVUkxTZWFyY2hQYXJhbXMoYyl9KSkuanNvbigpOwppZigidW5kZWZpbmVkIiE9dHlwZW9mIGMuc3RhdHVzJiYic3VjY2VzcyI9PWMuc3RhdHVzKWlmKGM9Yy5jb250ZW50LDE+Yy5sZW5ndGgpYi5yZXBsYWNlV2l0aCgiIik7ZWxzZXtjPWRvY3VtZW50LmNyZWF0ZVJhbmdlKCkuY3JlYXRlQ29udGV4dHVhbEZyYWdtZW50KGMpLmNoaWxkcmVuWzBdO3ZhciBmO2U9bnVsbD09KGY9Yi5kYXRhc2V0KT92b2lkIDA6Zi5jYWxsYmFjaztiLnBhcmVudEVsZW1lbnQuZGF0YXNldC5sb2FkZWQ9IjEiO2IucmVwbGFjZVdpdGgoYyk7ZSYmImZ1bmN0aW9uIj09PXR5cGVvZiBoYW5kbGVyc1tlXSYmaGFuZGxlcnNbZV0oYykuaW5pdCgpfX0pO2hhbmRsZXJzPXtwYXltZW50Q2FsY0Jsb2NrOmI9Pntjb25zdCBjPWIuY2xvc2VzdCgiLmRpdkNhclNpbmdsZUlubmVyQm94Iik7cmV0dXJue2luaXQ6KCk9PnskKGIpLmZpbmQoIi5wYXltZW50VG9vbHRpcCIpLmVhY2goZnVuY3Rpb24oKXt0cnl7dmFyIGQ9JCh0aGlzKS5hdHRyKCJkYXRhLXRvb2x0aXAiKTsKJCh0aGlzKS5kYXJrVG9vbHRpcCh7Y29udGVudDpkLGdyYXZpdHk6ImVhc3QiLHRoZW1lOiJsaWdodCIsdHJpZ2dlcjoiY2xpY2siLGFuaW1hdGlvbjoiZmxpcEluIn0pfWNhdGNoKGUpe319KTtiLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZW50ZXIiLGZ1bmN0aW9uKGQpe2Quc3RvcFByb3BhZ2F0aW9uKCk7aWYoYi5kYXRhc2V0LnRvb2x0aXBDcmVhdGVkKXJldHVybiExO2IuZGF0YXNldC50b29sdGlwQ3JlYXRlZD0iMSI7JChkLmN1cnJlbnRUYXJnZXQucXVlcnlTZWxlY3RvcigiLmNhci1maW5hbmNlLWluZm8iKSkuZGFya1Rvb2x0aXAoe2dyYXZpdHk6Indlc3QiLHRoZW1lOiJsaWdodCIsdHJpZ2dlcjoiaG92ZXIiLGFuaW1hdGlvbjoiZmxpcEluIn0pfSk7Yi5xdWVyeVNlbGVjdG9yKCIuY2FyLWZpbmFuY2UtaW5mbyIpLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbihkKXtkLnByZXZlbnREZWZhdWx0KCk7aWYoIWMpcmV0dXJuITE7ZD1jLnF1ZXJ5U2VsZWN0b3IoIi5kaXZDYXJUaXRsZUNvbnRhaW5lciBhIikuaHJlZjsKd2luZG93Lm9wZW4oZCwiX3NlbGYiKX0pfX19fTtyZXR1cm57c2V0QmxvY2tPYnNlcnZlcjooKT0+e2NvbnN0IGI9bmV3IEludGVyc2VjdGlvbk9ic2VydmVyKGQ9PntkLmZvckVhY2goZT0+e2UuaXNJbnRlcnNlY3RpbmcmJihlLnRhcmdldC5jbGFzc0xpc3QuYWRkKCJhY3RpdmUiKSxiLnVub2JzZXJ2ZShlLnRhcmdldCksY29uc29sZS5sb2coInNrZWxldG9uIG9ic2VydmVkICIrZS50YXJnZXQpLGEoZS50YXJnZXQpKX0pfSx7dGhyZXNob2xkOi4xfSksYz1uZXcgVVJMU2VhcmNoUGFyYW1zKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2gpO2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5jb250ZW50LXNrZWxldG9uIikuZm9yRWFjaChkPT57Yi5vYnNlcnZlKGQpOyJza2VsZXRvbiI9PT1jLmdldCgiZGVidWciKSYmZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLmNvbnRlbnQtc2tlbGV0b24iKS5mb3JFYWNoKGU9PmUuY2xhc3NMaXN0LmFkZCgiZGVidWciKSl9KX0saGFuZGxlcnN9fTsKZG9jUmVhZHlBcnIucHVzaCgoKT0+eyJmdW5jdGlvbiI9PT10eXBlb2YgY29udGVudEJsb2NrcyYmY29udGVudEJsb2NrcygpLnNldEJsb2NrT2JzZXJ2ZXIoKX0pOwovKiogL20vanMvdmFuaWxsYWpzL2Nvb2tpZXMuanMgKiovCnZhciBfX19kMmNfY29va2llc2pzX2Nfb249IjIwMjYtMDEtMTIgMTA6MTM6MjUiOyd1c2Ugc3RyaWN0JzsoZnVuY3Rpb24oKXtmdW5jdGlvbiBsKGEsYyxiLGgsZCxmLGUpe3ZhciBnPSIiO2lmKGIpe2xldCBrPW5ldyBEYXRlO2suc2V0RnVsbFllYXIoay5nZXRGdWxsWWVhcigpKzEpO3N3aXRjaChiLmNvbnN0cnVjdG9yKXtjYXNlIE51bWJlcjozNjU8YiYmKGI9MzY1KTtnPW5ldyBEYXRlO2cuc2V0RGF0ZShnLmdldERhdGUoKStiKTtnPUluZmluaXR5PT09Yj8iOyBleHBpcmVzPUZyaSwgMzEgRGVjIDk5OTkgMjM6NTk6NTkgR01UIjoiOyBleHBpcmVzPSIrZy50b1VUQ1N0cmluZygpO2JyZWFrO2Nhc2UgU3RyaW5nOm5ldyBEYXRlKGIpPmsmJihiPWsudG9VVENTdHJpbmcoKSk7Zz0iOyBleHBpcmVzPSIrYjticmVhaztjYXNlIERhdGU6Yj5rJiYoYj1rKSxnPSI7IGV4cGlyZXM9IitiLnRvVVRDU3RyaW5nKCl9fSJ1bmRlZmluZWQiPT09dHlwZW9mIGYmJihmPSJodHRwczoiPT09d2luZG93LmxvY2F0aW9uLnByb3RvY29sKTtyZXR1cm4gZW5jb2RlVVJJQ29tcG9uZW50KGEpKwoiPSIrZW5jb2RlVVJJQ29tcG9uZW50KGMpK2crKGQ\/IjsgZG9tYWluPSIrZDoiIikrKGg\/IjsgcGF0aD0iK2g6IiIpKyhmPyI7IHNlY3VyZSI6IiIpKyhlJiYibm9fcmVzdHJpY3Rpb24iIT09ZS50b1N0cmluZygpLnRvTG93ZXJDYXNlKCk\/ImxheCI9PT1lLnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKXx8MT09PU1hdGguY2VpbChlKXx8ITA9PT1lPyI7IHNhbWVzaXRlPWxheCI6Im5vbmUiPT09ZS50b1N0cmluZygpLnRvTG93ZXJDYXNlKCl8fDA+ZT8iOyBzYW1lc2l0ZT1ub25lIjoiOyBzYW1lc2l0ZT1zdHJpY3QiOiIiKX1mdW5jdGlvbiBtKGEsYyl7aWYoInVuZGVmaW5lZCI9PT10eXBlb2YgYXx8bnVsbD09PWEpcmV0dXJuLTE7c3dpdGNoKGEuY29uc3RydWN0b3Ipe2Nhc2UgTnVtYmVyOmlmKCJudW1iZXIiPT09Yyl2YXIgYj04NjQwMCphO2Vsc2UgYj1uZXcgRGF0ZSxiLnNldERhdGUoYi5nZXREYXRlKCkrYSksYj1JbmZpbml0eT09PWE\/IkZyaSwgMzEgRGVjIDk5OTkgMjM6NTk6NTkgR01UIjoKYi50b1VUQ1N0cmluZygpO2JyZWFrO2Nhc2UgU3RyaW5nOiJzdHJpbmciPT09Yz9iPWE6KGI9bmV3IERhdGUsYj0oKG5ldyBEYXRlKGEpKS5nZXRUaW1lKCktYi5nZXRUaW1lKCkpLzFFMyk7YnJlYWs7Y2FzZSBEYXRlOiJzdHJpbmciPT09Yz9iPWEudG9VVENTdHJpbmcoKTooYj1uZXcgRGF0ZSxiPShhLmdldFRpbWUoKS1iLmdldFRpbWUoKSkvMUUzKX0ibnVtYmVyIj09PWMmJihiPU1hdGgucm91bmQoYikpO3JldHVybiBifXZhciBuPS9bXC1cLlwrXCpdL2cscD0vXig\/OmV4cGlyZXN8bWF4XC1hZ2V8cGF0aHxkb21haW58c2VjdXJlfHNhbWVzaXRlfGh0dHBvbmx5KSQvaSxxPSJ1dG1fY2FtcGFpZ24gdXRtX2tleXdvcmQgdXRtX2xhbmRpbmcgdXRtX2xhbmRpbmdfZm9vdGVyIHV0bV9tZWRpdW0gdXRtX3NvdXJjZSB1dG1fY2FtcGFpZ25fcmV0YXJnZXRpbmcgdXRtX3NvdXJjZV9yZXRhcmdldGluZyBEaXNwbGF5U291cmNlVVRNQ2FtcGFpZ24gRGlzcGxheVNvdXJjZVVUTVNvdXJjZSIuc3BsaXQoIiAiKTsKd2luZG93LkNvb2tpZXM9e2dldDpmdW5jdGlvbihhKXtyZXR1cm4gYT9kZWNvZGVVUklDb21wb25lbnQoZG9jdW1lbnQuY29va2llLnJlcGxhY2UobmV3IFJlZ0V4cCgiKD86KD86XnwuKjspXFxzKiIrZW5jb2RlVVJJQ29tcG9uZW50KGEpLnJlcGxhY2UobiwiXFwkJiIpKyJcXHMqXFw9XFxzKihbXjtdKikuKiQpfF4uKiQiKSwiJDEiKSl8fG51bGw6bnVsbH0sc2V0OmZ1bmN0aW9uKGEsYyxiLGgsZCxmLGUpe3JldHVybiFhfHxwLnRlc3QoYSk\/ITE6Q29va2llcy5pc0Nvb2tpZUFsbG93ZWQoYSxmdW5jdGlvbihnKXtkPWQ\/ZDoiIjtmPW51bGw9PWY\/ITA6ZjtlPW51bGw9PWU\/Ik5vbmUiOmU7Q29va2llcy5sb2coYSxjLGIsaCxkKTtpZighZylyZXR1cm4tMTxxLmluZGV4T2YoYSkmJm51bGw9PUNvb2tpZXMuZ2V0KCJkMmNfY29va2llX2NvbnNlbnQiKSYmKGc9c2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgiZDJjX2NvbnNlbnRfd2FpdCIpLGc9bnVsbCE9Zz9KU09OLnBhcnNlKGF0b2IoZykpOgp7fSxnW2FdPXtrZXk6YSx2YWx1ZTpjLGV4cGlyZXM6YixwYXRoOmgsZG9tYWluOmR9LHV0bUNvb2tpZXNTdG9yYWdlSlNPTj1KU09OLnN0cmluZ2lmeShnKSxzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKCJkMmNfY29uc2VudF93YWl0IixidG9hKHV0bUNvb2tpZXNTdG9yYWdlSlNPTikpKSxDb29raWVzLnJlbW92ZShhLGgsZCxmLGUpLCExO2RvY3VtZW50LmNvb2tpZT1sKGEsYyxiLGgsZCxmLGUpO3JldHVybiEwfSl9LHJlbW92ZTpmdW5jdGlvbihhLGMsYixoLGQpe2lmKCF0aGlzLmhhcyhhKSlyZXR1cm4hMTtkb2N1bWVudC5jb29raWU9bChhLCIiLCJUaHUsIDAxIEphbiAxOTcwIDAwOjAwOjAwIEdNVCIsYyxiLGgsZCk7cmV0dXJuITB9LGhhczpmdW5jdGlvbihhKXtyZXR1cm4hYXx8cC50ZXN0KGEpPyExOihuZXcgUmVnRXhwKCIoPzpefDtcXHMqKSIrZW5jb2RlVVJJQ29tcG9uZW50KGEpLnJlcGxhY2UobiwiXFwkJiIpKyJcXHMqXFw9IikpLnRlc3QoZG9jdW1lbnQuY29va2llKX0sCmtleXM6ZnVuY3Rpb24oKXtmb3IodmFyIGE9ZG9jdW1lbnQuY29va2llLnJlcGxhY2UoLygoPzpefFxzKjspW149XSspKD89O3wkKXxeXHMqfFxzKig\/Oj1bXjtdKik\/KD86XDF8JCkvZywiIikuc3BsaXQoL1xzKig\/Oj1bXjtdKik\/O1xzKi8pLGM9YS5sZW5ndGgsYj0wO2I8YztiKyspYVtiXT1kZWNvZGVVUklDb21wb25lbnQoYVtiXSk7cmV0dXJuIGF9LGNsZWFyOmZ1bmN0aW9uKGEsYyxiLGgpe2Zvcih2YXIgZD10aGlzLmtleXMoKSxmPWQubGVuZ3RoLGU9MDtlPGY7ZSsrKXRoaXMucmVtb3ZlSXRlbShkW2VdLGEsYyxiLGgpfSxsb2c6ZnVuY3Rpb24oYSxjLGIsaCxkLGYpeyJ1bmRlZmluZWQiPT09dHlwZW9mIGYmJihmPTUpOyJ1bmRlZmluZWQiPT09dHlwZW9mIHdpbmRvdy5Db29raWVMb2dnZXI\/ZiYmc2V0VGltZW91dChmdW5jdGlvbigpe0Nvb2tpZXMubG9nKGEsYyxiLGgsZCxmLTEpfSwxRTMpOndpbmRvdy5Db29raWVMb2dnZXIubG9nKGEsYyxiLGgsZCl9LGlzQ29va2llQWxsb3dlZDpmdW5jdGlvbihhLApjKXtyZXR1cm4idW5kZWZpbmVkIj09PXR5cGVvZiB3aW5kb3cuQ29va2llQ29uc2VudHx8InVuZGVmaW5lZCI9PT10eXBlb2Ygd2luZG93LkNvb2tpZUNvbnNlbnQuaXNDb29raWVBbGxvd2VkP2MoITApOndpbmRvdy5Db29raWVDb25zZW50LmlzQ29va2llQWxsb3dlZChhLGMpfX07d2luZG93LkNvb2tpZUxvZ2dlcj17X3N0YWNrOltdLGluaXQ6ZnVuY3Rpb24oKXtsZXQgYT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGVhbGVyUHJvdmluY2VDb2RlIik7YSYmIlFDIj09bmV3IFN0cmluZyhhLnZhbHVlKSYmMT09TWF0aC5mbG9vcigzKk1hdGgucmFuZG9tKCkpJiZmZXRjaCgiL3Byb3h5X3JkMmMvZDJjYXBpL2xvZy9jb29raWVzL2FjdGl2ZSIpLnRoZW4oZnVuY3Rpb24oYyl7cmV0dXJuIGMuanNvbigpfSkudGhlbihmdW5jdGlvbihjKXsiYWN0aXZlIj09PWMuc3RhdHVzJiZDb29raWVMb2dnZXIud2FpdFN0YWNrKCl9KX0sbG9nOmZ1bmN0aW9uKGEsYyxiLGgsZCl7aWYoImxpdmUiPT09CndpbmRvdy5kZXBsb3ltZW50VHlwZS50b0xvd2VyQ2FzZSgpKXtkZWJ1ZygiTG9nZ2luZyBjb29raWU6Iix7bmFtZTphLHZhbHVlOmN8fCIiLGR1cmF0aW9uOm0oYiwibnVtYmVyIikscGF0aDpoLGRvbWFpbjpkfSk7dmFyIGYsZSxnPSJ1bmRlZmluZWQiIT10eXBlb2YgY3VycmVudFNpdGVJRD9jdXJyZW50U2l0ZUlEOm51bGwhPShlPW51bGw9PShmPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzaXRlSUQiKSk\/dm9pZCAwOmYudmFsdWUpP2U6IiI7dGhpcy5fc3RhY2sucHVzaCh7bmFtZTphLGR1cmF0aW9uOm0oYiwibnVtYmVyIikscGF0aDpofHwiLyIsZG9tYWluOmR8fHdpbmRvdy5sb2NhdGlvbi5ob3N0bmFtZSx1cmk6d2luZG93LmxvY2F0aW9uLnBhdGhuYW1lLHNpdGVpZDpnLHZhbHVlOmJ0b2EoYyl9KX19LF9zZW5kU3RhY2s6ZnVuY3Rpb24oKXtpZigwIT09dGhpcy5fc3RhY2subGVuZ3RoKXt2YXIgYT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29va2llTG9nVG9rZW4iKT8KZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvb2tpZUxvZ1Rva2VuIikudmFsdWU6bnVsbDtpZihhKXt2YXIgYz0idW5kZWZpbmVkIiE9dHlwZW9mIGN1cnJlbnRTaXRlSUQ\/Y3VycmVudFNpdGVJRDpkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2l0ZUlEIik\/ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNpdGVJRCIpLnZhbHVlOiIiOyhuZXcgV29ya2VyKCIvanMvdmFuaWxsYWpzL2Nvb2tpZVdvcmtlci5qcyIpKS5wb3N0TWVzc2FnZSh7dG9rZW46YSxzaXRlSUQ6YyxzdGFjazpDb29raWVMb2dnZXIuX3N0YWNrfSk7Q29va2llTG9nZ2VyLl9zdGFjaz1bXX1lbHNlIGRlYnVnKCJObyBjb29raWUgbG9nIHRva2VuIGZvdW5kLiIpfX0sd2FpdFN0YWNrOmZ1bmN0aW9uKCl7ImxpdmUiPT09d2luZG93LmRlcGxveW1lbnRUeXBlLnRvTG93ZXJDYXNlKCkmJihzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Q29va2llTG9nZ2VyLl9zZW5kU3RhY2soKX0sMUU0KSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigiYmVmb3JldW5sb2FkIiwKZnVuY3Rpb24oKXtDb29raWVMb2dnZXIuX3NlbmRTdGFjaygpfSkpfX07d2luZG93LkNvb2tpZUxvZ2dlci5pbml0KCl9KSgpOwovKiogL20vanMvanF1ZXJ5LmJhc2U2NC5qcyAqKi8KdmFyIF9fX2QyY19qcXVlcnliYXNlNjRqc19jX29uPSIyMDI1LTA1LTIzIDE3OjA5OjI0IjsndXNlIHN0cmljdCc7dmFyIF9fX2QyY19qcXVlcnliYXNlNjRqc19jX29uPSIyMDI0LTAxLTMxIDE0OjM1OjQ4IjsidXNlIHN0cmljdCI7X19fZDJjX2pxdWVyeWJhc2U2NGpzX2Nfb249IjIwMjMtMDEtMTIgMTE6MzU6NTgiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfanF1ZXJ5YmFzZTY0anNfY19vbj0iMjAyMy0wMS0xMiAxMDo0NTozOSI7InVzZSBzdHJpY3QiO19fX2QyY19qcXVlcnliYXNlNjRqc19jX29uPSIyMDIxLTEyLTE1IDEyOjQzOjM0IjsidXNlIHN0cmljdCI7CmpRdWVyeS5iYXNlNjQ9ZnVuY3Rpb24oayl7ZnVuY3Rpb24gZShhLGMpe2E9IkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5Ky8iLmluZGV4T2YoYS5jaGFyQXQoYykpO2lmKC0xPT09YSl0aHJvdyJDYW5ub3QgZGVjb2RlIGJhc2U2NCI7cmV0dXJuIGF9ZnVuY3Rpb24gaChhLGMpe2E9YS5jaGFyQ29kZUF0KGMpO2lmKDI1NTxhKXRocm93IklOVkFMSURfQ0hBUkFDVEVSX0VSUjogRE9NIEV4Y2VwdGlvbiA1IjtyZXR1cm4gYX1yZXR1cm57ZGVjb2RlOmZ1bmN0aW9uKGEpe3ZhciBjPTAsYixmPWEubGVuZ3RoLGQ9W107YT1TdHJpbmcoYSk7aWYoMD09PWYpcmV0dXJuIGE7aWYoMCE9PWYlNCl0aHJvdyJDYW5ub3QgZGVjb2RlIGJhc2U2NCI7Ij0iPT09YS5jaGFyQXQoZi0xKSYmKGM9MSwiPSI9PT1hLmNoYXJBdChmLTIpJiYoYz0yKSxmLT00KTtmb3IoYj0wO2I8ZjtiKz00KXt2YXIgZz1lKGEsYik8PDE4fGUoYSxiKzEpPDwKMTJ8ZShhLGIrMik8PDZ8ZShhLGIrMyk7ZC5wdXNoKFN0cmluZy5mcm9tQ2hhckNvZGUoZz4+MTYsZz4+OCYyNTUsZyYyNTUpKX1zd2l0Y2goYyl7Y2FzZSAxOmc9ZShhLGIpPDwxOHxlKGEsYisxKTw8MTJ8ZShhLGIrMik8PDY7ZC5wdXNoKFN0cmluZy5mcm9tQ2hhckNvZGUoZz4+MTYsZz4+OCYyNTUpKTticmVhaztjYXNlIDI6Zz1lKGEsYik8PDE4fGUoYSxiKzEpPDwxMixkLnB1c2goU3RyaW5nLmZyb21DaGFyQ29kZShnPj4xNikpfXJldHVybiBkLmpvaW4oIiIpfSxlbmNvZGU6ZnVuY3Rpb24oYSl7aWYoMSE9PWFyZ3VtZW50cy5sZW5ndGgpdGhyb3ciU3ludGF4RXJyb3I6IGV4YWN0bHkgb25lIGFyZ3VtZW50IHJlcXVpcmVkIjthPVN0cmluZyhhKTt2YXIgYyxiPVtdLGY9YS5sZW5ndGgtYS5sZW5ndGglMztpZigwPT09YS5sZW5ndGgpcmV0dXJuIGE7Zm9yKGM9MDtjPGY7Yys9Myl7dmFyIGQ9aChhLGMpPDwxNnxoKGEsYysxKTw8OHxoKGEsYysyKTtiLnB1c2goIkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5Ky8iLmNoYXJBdChkPj4KMTgpKTtiLnB1c2goIkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5Ky8iLmNoYXJBdChkPj4xMiY2MykpO2IucHVzaCgiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLyIuY2hhckF0KGQ+PjYmNjMpKTtiLnB1c2goIkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5Ky8iLmNoYXJBdChkJjYzKSl9c3dpdGNoKGEubGVuZ3RoLWYpe2Nhc2UgMTpkPWgoYSxjKTw8MTY7Yi5wdXNoKCJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvIi5jaGFyQXQoZD4+MTgpKyJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvIi5jaGFyQXQoZD4+MTImNjMpKyI9PSIpO2JyZWFrO2Nhc2UgMjpkPQpoKGEsYyk8PDE2fGgoYSxjKzEpPDw4LGIucHVzaCgiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLyIuY2hhckF0KGQ+PjE4KSsiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLyIuY2hhckF0KGQ+PjEyJjYzKSsiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLyIuY2hhckF0KGQ+PjYmNjMpKyI9Iil9cmV0dXJuIGIuam9pbigiIil9LFZFUlNJT046IjEuMCJ9fShqUXVlcnkpOwovKiogL20vanMvanF1ZXJ5LmRhcmt0b29sdGlwLmpzICoqLwp2YXIgX19fZDJjX2pxdWVyeWRhcmt0b29sdGlwanNfY19vbj0iMjAyNS0wNS0yMyAxNzowOTo0OCI7J3VzZSBzdHJpY3QnO3ZhciBfX19kMmNfanF1ZXJ5ZGFya3Rvb2x0aXBqc19jX29uPSIyMDI0LTAzLTI1IDEyOjMzOjA3IjsidXNlIHN0cmljdCI7CihmdW5jdGlvbihiKXtmdW5jdGlvbiBlKGEsYyl7dGhpcy5iZWFyZXI9YTt0aGlzLm9wdGlvbnM9Yzt0aGlzLmhpZGVFdmVudDt0aGlzLmhpZGluZz0hMTt0aGlzLm1vdXNlT3Zlck1vZGU9ImhvdmVyIj09dGhpcy5vcHRpb25zLnRyaWdnZXJ8fCJtb3VzZW92ZXIiPT10aGlzLm9wdGlvbnMudHJpZ2dlcnx8Im9ubW91c2VvdmVyIj09dGhpcy5vcHRpb25zLnRyaWdnZXJ9ZS5wcm90b3R5cGU9e3Nob3c6ZnVuY3Rpb24oKXt2YXIgYT10aGlzO3RoaXMub3B0aW9ucy5tb2RhbCYmdGhpcy5tb2RhbExheWVyLmNzcygiZGlzcGxheSIsImJsb2NrIik7dGhpcy50b29sdGlwLmNzcygiZGlzcGxheSIsImJsb2NrIik7YS5tb3VzZU92ZXJNb2RlJiYodGhpcy50b29sdGlwLm9uKCJtb3VzZW92ZXIiLGZ1bmN0aW9uKCl7Y2xlYXJUaW1lb3V0KGEuaGlkZUV2ZW50KTthLmhpZGluZz0hMX0pLHRoaXMudG9vbHRpcC5vbigibW91c2VvdXQiLGZ1bmN0aW9uKCl7Y2xlYXJUaW1lb3V0KGEuaGlkZUV2ZW50KTsKYS5oaWRlKCk7YS5oaWRpbmc9ITF9KSl9LGhpZGU6ZnVuY3Rpb24oKXt2YXIgYT10aGlzO2EuaGlkaW5nfHwoYS5oaWRpbmc9ITAsdGhpcy5oaWRlRXZlbnQ9c2V0VGltZW91dChmdW5jdGlvbigpe2EuaGlkaW5nPSExO2EudG9vbHRpcC5oaWRlKCl9KSxhLm9wdGlvbnMubW9kYWwmJihhLmhpZGluZz0hMSxhLm1vZGFsTGF5ZXIuaGlkZSgpKSx0aGlzLm9wdGlvbnMub25DbG9zZSgpKX0sdG9nZ2xlOmZ1bmN0aW9uKCl7dGhpcy50b29sdGlwLmlzKCI6dmlzaWJsZSIpP3RoaXMuaGlkZSgpOnRoaXMuc2hvdygpfSxhZGRBbmltYXRpb246ZnVuY3Rpb24oKXtzd2l0Y2godGhpcy5vcHRpb25zLmFuaW1hdGlvbil7Y2FzZSAiZmFkZUluIjp0aGlzLnRvb2x0aXAuYWRkQ2xhc3MoImFuaW1hdGVkIik7dGhpcy50b29sdGlwLmFkZENsYXNzKCJmYWRlSW4iKTticmVhaztjYXNlICJmbGlwSW4iOnRoaXMudG9vbHRpcC5hZGRDbGFzcygiYW5pbWF0ZWQiKSx0aGlzLnRvb2x0aXAuYWRkQ2xhc3MoImZsaXBJbiIpfX0sCnNldENvbnRlbnQ6ZnVuY3Rpb24oKXtiKHRoaXMuYmVhcmVyKS5jc3MoImN1cnNvciIsInBvaW50ZXIiKTtpZih0aGlzLm9wdGlvbnMuY29udGVudCl0aGlzLmNvbnRlbnQ9dGhpcy5vcHRpb25zLmNvbnRlbnQ7ZWxzZSBpZih0aGlzLmJlYXJlci5hdHRyKCJkYXRhLXRvb2x0aXAiKSl0aGlzLmNvbnRlbnQ9dGhpcy5iZWFyZXIuYXR0cigiZGF0YS10b29sdGlwIik7ZWxzZSByZXR1cm47aWYoIiMiPT10aGlzLmNvbnRlbnQuY2hhckF0KDApKXtpZih0aGlzLm9wdGlvbnMuZGVsZXRlX2NvbnRlbnQpe3ZhciBhPWIodGhpcy5jb250ZW50KS5odG1sKCk7Yih0aGlzLmNvbnRlbnQpLmh0bWwoIiIpO3RoaXMuY29udGVudD1hO2RlbGV0ZSBhfWVsc2UgYih0aGlzLmNvbnRlbnQpLmhpZGUoKSx0aGlzLmNvbnRlbnQ9Yih0aGlzLmNvbnRlbnQpLmh0bWwoKTt0aGlzLmNvbnRlbnRUeXBlPSJodG1sIn1lbHNlIHRoaXMuY29udGVudFR5cGU9InRleHQiO2E9IiIhPXRoaXMuYmVhcmVyLmF0dHIoImlkIikmJgoidW5kZWZpbmVkIiE9dGhpcy5iZWFyZXIuYXR0cigiaWQiKT8iaWQ9J2Rhcmt0b29sdGlwLSIrdGhpcy5iZWFyZXIuYXR0cigiaWQiKSsiJyI6ImlkPSdkYXJrdG9vbHRpcC0iKyhEYXRlLm5vdygpK01hdGguZmxvb3IoMUU0Kk1hdGgucmFuZG9tKCkpKSsiJyI7MD09PWIoIklOUy5kYXJrdG9vbHRpcC1tb2RhbC1sYXllciIpLmxlbmd0aCYmKHRoaXMubW9kYWxMYXllcj1iKCI8aW5zIGNsYXNzPSdkYXJrdG9vbHRpcC1tb2RhbC1sYXllcic+PC9pbnM+IikpO3RoaXMudG9vbHRpcD1iKCI8aW5zICIrYSsiIGNsYXNzID0gJ2RhcmstdG9vbHRpcCAiK3RoaXMub3B0aW9ucy50aGVtZSsiICIrdGhpcy5vcHRpb25zLnNpemUrIiAiK3RoaXMub3B0aW9ucy5ncmF2aXR5KyInPjxkaXY+Iit0aGlzLmNvbnRlbnQrIjwvZGl2PjxkaXYgY2xhc3MgPSAndGlwJz48L2Rpdj48L2lucz4iKTt0aGlzLnRpcD10aGlzLnRvb2x0aXAuZmluZCgiLnRpcCIpO2IoImJvZHkiKS5hcHBlbmQodGhpcy5tb2RhbExheWVyKTsKYigiYm9keSIpLmFwcGVuZCh0aGlzLnRvb2x0aXApOyJodG1sIj09dGhpcy5jb250ZW50VHlwZSYmdGhpcy50b29sdGlwLmNzcygibWF4LXdpZHRoIiwibm9uZSIpO3RoaXMudG9vbHRpcC5jc3MoIm9wYWNpdHkiLHRoaXMub3B0aW9ucy5vcGFjaXR5KTt0aGlzLmFkZEFuaW1hdGlvbigpO3RoaXMub3B0aW9ucy5jb25maXJtJiZ0aGlzLmFkZENvbmZpcm0oKX0sc2V0UG9zaXRpb25zOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5iZWFyZXIub2Zmc2V0KCkubGVmdCxjPXRoaXMuYmVhcmVyLm9mZnNldCgpLnRvcDtzd2l0Y2godGhpcy5vcHRpb25zLmdyYXZpdHkpe2Nhc2UgInNvdXRoIjphKz10aGlzLmJlYXJlci5vdXRlcldpZHRoKCkvMi10aGlzLnRvb2x0aXAub3V0ZXJXaWR0aCgpLzI7Yys9LXRoaXMudG9vbHRpcC5vdXRlckhlaWdodCgpLXRoaXMudGlwLm91dGVySGVpZ2h0KCkvMjticmVhaztjYXNlICJ3ZXN0IjphKz10aGlzLmJlYXJlci5vdXRlcldpZHRoKCkrdGhpcy50aXAub3V0ZXJXaWR0aCgpLwoyO2MrPXRoaXMuYmVhcmVyLm91dGVySGVpZ2h0KCkvMi10aGlzLnRvb2x0aXAub3V0ZXJIZWlnaHQoKS8yO2JyZWFrO2Nhc2UgIm5vcnRoIjphKz10aGlzLmJlYXJlci5vdXRlcldpZHRoKCkvMi10aGlzLnRvb2x0aXAub3V0ZXJXaWR0aCgpLzI7Yys9dGhpcy5iZWFyZXIub3V0ZXJIZWlnaHQoKSt0aGlzLnRpcC5vdXRlckhlaWdodCgpLzI7YnJlYWs7Y2FzZSAiZWFzdCI6YSs9LXRoaXMudG9vbHRpcC5vdXRlcldpZHRoKCktdGhpcy50aXAub3V0ZXJXaWR0aCgpLzIsYys9dGhpcy5iZWFyZXIub3V0ZXJIZWlnaHQoKS8yLXRoaXMudG9vbHRpcC5vdXRlckhlaWdodCgpLzJ9dGhpcy5vcHRpb25zLmF1dG9MZWZ0JiZ0aGlzLnRvb2x0aXAuY3NzKCJsZWZ0IixhKTt0aGlzLm9wdGlvbnMuYXV0b1RvcCYmdGhpcy50b29sdGlwLmNzcygidG9wIixjKX0sc2V0RXZlbnRzOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcyxjPWEub3B0aW9ucy5ob3ZlckRlbGF5LGY7aWYoYS5tb3VzZU92ZXJNb2RlKXRoaXMuYmVhcmVyLm9uKCJtb3VzZWVudGVyIiwKZnVuY3Rpb24oKXtmPXNldFRpbWVvdXQoZnVuY3Rpb24oKXthLnNldFBvc2l0aW9ucygpO2Euc2hvdygpfSxjKX0pLm9uKCJtb3VzZWxlYXZlIixmdW5jdGlvbigpe2NsZWFyVGltZW91dChmKTthLmhpZGUoKX0pO2Vsc2UgaWYoImNsaWNrIj09dGhpcy5vcHRpb25zLnRyaWdnZXJ8fCJvbmNsaWsiPT10aGlzLm9wdGlvbnMudHJpZ2dlcil0aGlzLnRvb2x0aXAub24oImNsaWNrIixmdW5jdGlvbihkKXtkLnN0b3BQcm9wYWdhdGlvbigpfSksdGhpcy5iZWFyZXIub24oImNsaWNrIixmdW5jdGlvbihkKXtkLnByZXZlbnREZWZhdWx0KCk7YS5zZXRQb3NpdGlvbnMoKTthLnRvZ2dsZSgpO2Quc3RvcFByb3BhZ2F0aW9uKCl9KSxiKCJodG1sIikub24oImNsaWNrIixmdW5jdGlvbigpe2EuaGlkZSgpfSl9LGFjdGl2YXRlOmZ1bmN0aW9uKCl7dGhpcy5zZXRDb250ZW50KCk7dGhpcy5jb250ZW50JiZ0aGlzLnNldEV2ZW50cygpfSxhZGRDb25maXJtOmZ1bmN0aW9uKCl7dGhpcy50b29sdGlwLmFwcGVuZCgiPHVsIGNsYXNzID0gJ2NvbmZpcm0nPjxsaSBjbGFzcyA9ICdkYXJrdG9vbHRpcC15ZXMnPiIrCnRoaXMub3B0aW9ucy55ZXMrIjwvbGk+PGxpIGNsYXNzID0gJ2Rhcmt0b29sdGlwLW5vJz4iK3RoaXMub3B0aW9ucy5ubysiPC9saT48L3VsPiIpO3RoaXMuc2V0Q29uZmlybUV2ZW50cygpfSxzZXRDb25maXJtRXZlbnRzOmZ1bmN0aW9uKCl7dmFyIGE9dGhpczt0aGlzLnRvb2x0aXAuZmluZCgibGkuZGFya3Rvb2x0aXAteWVzIikub24oImNsaWNrIixmdW5jdGlvbihjKXthLm9uWWVzKCk7Yy5zdG9wUHJvcGFnYXRpb24oKX0pO3RoaXMudG9vbHRpcC5maW5kKCJsaS5kYXJrdG9vbHRpcC1ubyIpLm9uKCJjbGljayIsZnVuY3Rpb24oYyl7YS5vbk5vKCk7Yy5zdG9wUHJvcGFnYXRpb24oKX0pfSxmaW5hbE1lc3NhZ2U6ZnVuY3Rpb24oKXtpZih0aGlzLm9wdGlvbnMuZmluYWxNZXNzYWdlKXt2YXIgYT10aGlzO2EudG9vbHRpcC5maW5kKCJkaXY6Zmlyc3QiKS5odG1sKHRoaXMub3B0aW9ucy5maW5hbE1lc3NhZ2UpO2EudG9vbHRpcC5maW5kKCJ1bCIpLnJlbW92ZSgpO2Euc2V0UG9zaXRpb25zKCk7CnNldFRpbWVvdXQoZnVuY3Rpb24oKXthLmhpZGUoKTthLnNldENvbnRlbnQoKX0sYS5vcHRpb25zLmZpbmFsTWVzc2FnZUR1cmF0aW9uKX1lbHNlIHRoaXMuaGlkZSgpfSxvblllczpmdW5jdGlvbigpe3RoaXMub3B0aW9ucy5vblllcyh0aGlzLmJlYXJlcik7dGhpcy5maW5hbE1lc3NhZ2UoKX0sb25ObzpmdW5jdGlvbigpe3RoaXMub3B0aW9ucy5vbk5vKHRoaXMuYmVhcmVyKTt0aGlzLmhpZGUoKX19O2IuZm4uZGFya1Rvb2x0aXA9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe2E9Yi5leHRlbmQoe30sYi5mbi5kYXJrVG9vbHRpcC5kZWZhdWx0cyxhKTsobmV3IGUoYih0aGlzKSxhKSkuYWN0aXZhdGUoKX0pfTtiLmZuLmRhcmtUb29sdGlwLmRlZmF1bHRzPXthbmltYXRpb246Im5vbmUiLGNvbmZpcm06ITEsY29udGVudDoiIixmaW5hbE1lc3NhZ2U6IiIsZmluYWxNZXNzYWdlRHVyYXRpb246MUUzLGdyYXZpdHk6InNvdXRoIixob3ZlckRlbGF5OjAsbW9kYWw6ITEsCm5vOiJObyIsb25ObzpmdW5jdGlvbigpe30sb25ZZXM6ZnVuY3Rpb24oKXt9LG9wYWNpdHk6Ljksc2l6ZToibWVkaXVtIix0aGVtZToiZGFyayIsdHJpZ2dlcjoiaG92ZXIiLHllczoiWWVzIixhdXRvVG9wOiEwLGF1dG9MZWZ0OiEwLG9uQ2xvc2U6ZnVuY3Rpb24oKXt9fX0pKGpRdWVyeSk7Ci8qKiAvbS9qcy9qcXVlcnkudmFsaWRpdHkubWluLmpzICoqLwooZnVuY3Rpb24oYSl7ZnVuY3Rpb24gYihiLGMsZSl7dmFyIGY9KGIucmVkdWN0aW9ufHxiKS5maWx0ZXIoYS52YWxpZGl0eS5zZXR0aW5ncy5lbGVtZW50U3VwcG9ydCksaT1bXTtyZXR1cm4gMT5iLmxlbmd0aD8oY29uc29sZS5sb2coIkNvdWxkIG5vdCB2YWxpZGF0ZSBlbGVtZW50IixiKSxiKTooZi5lYWNoKGZ1bmN0aW9uKCl7Yyh0aGlzKT9pLnB1c2godGhpcyk6ZCh0aGlzLGcoZSx7ZmllbGQ6aCh0aGlzKX0pKX0pLGIucmVkdWN0aW9uPWEoaSksYil9ZnVuY3Rpb24gYygpe2EudmFsaWRpdHkuaXNWYWxpZGF0aW5nKCkmJihhLnZhbGlkaXR5LnJlcG9ydC5lcnJvcnMrKyxhLnZhbGlkaXR5LnJlcG9ydC52YWxpZD0hMSl9ZnVuY3Rpb24gZChiLGQpe2MoKSxhLnZhbGlkaXR5Lm91dHB1dHNbYS52YWxpZGl0eS5zZXR0aW5ncy5vdXRwdXRNb2RlXSYmYS52YWxpZGl0eS5vdXRwdXRzW2EudmFsaWRpdHkuc2V0dGluZ3Mub3V0cHV0TW9kZV0ucmFpc2UmJmEudmFsaWRpdHkub3V0cHV0c1thLnZhbGlkaXR5LnNldHRpbmdzLm91dHB1dE1vZGVdLnJhaXNlKGEoYiksZCl9ZnVuY3Rpb24gZShiLGQpe2MoKSxhLnZhbGlkaXR5Lm91dHB1dHNbYS52YWxpZGl0eS5zZXR0aW5ncy5vdXRwdXRNb2RlXSYmYS52YWxpZGl0eS5vdXRwdXRzW2EudmFsaWRpdHkuc2V0dGluZ3Mub3V0cHV0TW9kZV0ucmFpc2VBZ2dyZWdhdGUmJmEudmFsaWRpdHkub3V0cHV0c1thLnZhbGlkaXR5LnNldHRpbmdzLm91dHB1dE1vZGVdLnJhaXNlQWdncmVnYXRlKGIsZCl9ZnVuY3Rpb24gZihhKXt2YXIgYj0wO3JldHVybiBhLmVhY2goZnVuY3Rpb24oKXt2YXIgYT1wYXJzZUZsb2F0KHRoaXMudmFsdWUpO2IrPWlzTmFOKGEpPzA6YX0pLGJ9ZnVuY3Rpb24gZyhhLGIpe2Zvcih2YXIgYyBpbiBiKWE9YS5yZXBsYWNlKCIjeyIrYysifSIsYltjXSk7cmV0dXJuIGooYSl9ZnVuY3Rpb24gaChiKXt2YXIgYz1hKGIpLGQ9YS52YWxpZGl0eS5zZXR0aW5ncy5kZWZhdWx0RmllbGROYW1lO2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgYy5hdHRyKCJ0aXRsZSIpJiZjLmF0dHIoInRpdGxlIikubGVuZ3RoKWQ9Yy5hdHRyKCJ0aXRsZSIpO2Vsc2UgaWYoL14oW0EtWjAtOV1bYS16XSopKyQvLnRlc3QoYi5pZCkpZD1iLmlkLnJlcGxhY2UoLyhbQS1aMC05XSlbYS16XSovZywiICQmIik7ZWxzZSBpZigvXlthLXowLTlfXSokLy50ZXN0KGIuaWQpKXtmb3IodmFyIGU9Yi5pZC5zcGxpdCgiXyIpLGY9MDtmPGUubGVuZ3RoOysrZillW2ZdPWooZVtmXSk7ZD1lLmpvaW4oIiAiKX1yZXR1cm4gZH1mdW5jdGlvbiBqKGEpe3JldHVybiBhLnN1YnN0cmluZz9hLnN1YnN0cmluZygwLDEpLnRvVXBwZXJDYXNlKCkrYS5zdWJzdHJpbmcoMSxhLmxlbmd0aCk6YX1hLnZhbGlkaXR5PXtzZXR0aW5nczphLmV4dGVuZCh7b3V0cHV0TW9kZToibGFiZWwiLGNzc0NsYXNzOiJlcnJvciIsc2Nyb2xsVG86ITEsbW9kYWxFcnJvcnNDbGlja2FibGU6ITAsZGVmYXVsdEZpZWxkTmFtZToiVGhpcyBmaWVsZCIsZWxlbWVudFN1cHBvcnQ6Ijp0ZXh0LCBbdHlwZT10ZWxdLCBbdHlwZT1lbWFpbF0sIFt0eXBlPWRhdGVdLCA6cGFzc3dvcmQsIHRleHRhcmVhLCBzZWxlY3QsIDpyYWRpbywgOmNoZWNrYm94IixhcmdUb1N0cmluZzpmdW5jdGlvbihhKXtyZXR1cm4gYS5nZXREYXRlP2EuZ2V0TW9udGgoKSsxKyIvIithLmdldERhdGUoKSsiLyIrYS5nZXRGdWxsWWVhcigpOmF9fSx7fSkscGF0dGVybnM6e2ludGVnZXI6L15cZCskLyxkYXRlOi9eKCgwP1xkKXwoMVswMTJdKSlcLyhbMDEyXT9cZHwzMHwzMSlcL1xkezEsNH0kLyxlbWFpbDovXigoKFthLXpdfFxkfFshI1wkJSYnXCpcK1wtXC89XD9cXl9ge1x8fX5dfFtcdTAwQTAtXHVEN0ZGXHVGOTAwLVx1RkRDRlx1RkRGMC1cdUZGRUZdKSsoXC4oW2Etel18XGR8WyEjXCQlJidcKlwrXC1cLz1cP1xeX2B7XHx9fl18W1x1MDBBMC1cdUQ3RkZcdUY5MDAtXHVGRENGXHVGREYwLVx1RkZFRl0pKykqKXwoKFx4MjIpKCgoKFx4MjB8XHgwOSkqKFx4MGRceDBhKSk\/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\/KGEucGFyZW50KCkuYWRkQ2xhc3MoInZhbGlkaXR5LWVycm9uZW91cyIpLGEucGFyZW50KCkucGFyZW50KCkuYWRkQ2xhc3MoInZhbGlkaXR5LWVycm9uZW91cyIpKTphLmFkZENsYXNzKCJ2YWxpZGl0eS1lcnJvbmVvdXMiKX0scmFpc2VBZ2dyZWdhdGU6ZnVuY3Rpb24oYSl7Y29uc29sZS5sb2coYSksYS5pcygiOnJhZGlvIikmJmEuaXMoIi5qcVRyYW5zZm9ybUhpZGRlbiIpJiZhLnBhcmVudCgpLnBhcmVudCgpLmFkZENsYXNzKCJ2YWxpZGl0eS1lcnJvbmVvdXMiKX19fSgpLGZ1bmN0aW9uKGEpe2EudmFsaWRpdHkub3V0cHV0cy5jc3NPbmx5PXtzdGFydDpmdW5jdGlvbigpe2EoYS52YWxpZGl0eS5zZXR0aW5ncy5jc3NDbGFzcykucmVtb3ZlQ2xhc3MoYS52YWxpZGl0eS5zZXR0aW5ncy5jc3NDbGFzcyl9LGVuZDpmdW5jdGlvbihiKXshYi52YWxpZCYmYS52YWxpZGl0eS5zZXR0aW5ncy5zY3JvbGxUbyYmKGxvY2F0aW9uLmhhc2g9YShhLnZhbGlkaXR5LnNldHRpbmdzLmNzc0NsYXNzKyI6ZXEoMCkiKS5hdHRyKCJpZCIpKX0scmFpc2U6ZnVuY3Rpb24oYil7YShiKS5hZGRDbGFzcyhhLnZhbGlkaXR5LnNldHRpbmdzLmNzc0NsYXNzKX0scmFpc2VBZ2dyZWdhdGU6ZnVuY3Rpb24oYixjKXtiLmxlbmd0aCYmdGhpcy5yYWlzZShhKGIuZ2V0KGIubGVuZ3RoLTEpKSxjKX19fShqUXVlcnkpOwovKiogL20vanMvbWFpbi5qcyAqKi8KdmFyIF9fX2QyY19tYWluanNfY19vbj0iMjAyNi0wMy0wOSAxNDozMDowMyI7J3VzZSBzdHJpY3QnO3ZhciAkanNjb21wPSRqc2NvbXB8fHt9OyRqc2NvbXAuc2NvcGU9e307JGpzY29tcC5BU1NVTUVfRVM1PSExOyRqc2NvbXAuQVNTVU1FX05PX05BVElWRV9NQVA9ITE7JGpzY29tcC5BU1NVTUVfTk9fTkFUSVZFX1NFVD0hMTskanNjb21wLlNJTVBMRV9GUk9VTkRfUE9MWUZJTEw9ITE7JGpzY29tcC5JU09MQVRFX1BPTFlGSUxMUz0hMTskanNjb21wLkZPUkNFX1BPTFlGSUxMX1BST01JU0U9ITE7JGpzY29tcC5GT1JDRV9QT0xZRklMTF9QUk9NSVNFX1dIRU5fTk9fVU5IQU5ETEVEX1JFSkVDVElPTj0hMTskanNjb21wLmRlZmluZVByb3BlcnR5PSRqc2NvbXAuQVNTVU1FX0VTNXx8ImZ1bmN0aW9uIj09dHlwZW9mIE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzP09iamVjdC5kZWZpbmVQcm9wZXJ0eTpmdW5jdGlvbihhLGIsYyl7aWYoYT09QXJyYXkucHJvdG90eXBlfHxhPT1PYmplY3QucHJvdG90eXBlKXJldHVybiBhO2FbYl09Yy52YWx1ZTtyZXR1cm4gYX07CiRqc2NvbXAuZ2V0R2xvYmFsPWZ1bmN0aW9uKGEpe2E9WyJvYmplY3QiPT10eXBlb2YgZ2xvYmFsVGhpcyYmZ2xvYmFsVGhpcyxhLCJvYmplY3QiPT10eXBlb2Ygd2luZG93JiZ3aW5kb3csIm9iamVjdCI9PXR5cGVvZiBzZWxmJiZzZWxmLCJvYmplY3QiPT10eXBlb2YgZ2xvYmFsJiZnbG9iYWxdO2Zvcih2YXIgYj0wO2I8YS5sZW5ndGg7KytiKXt2YXIgYz1hW2JdO2lmKGMmJmMuTWF0aD09TWF0aClyZXR1cm4gY310aHJvdyBFcnJvcigiQ2Fubm90IGZpbmQgZ2xvYmFsIG9iamVjdCIpO307JGpzY29tcC5nbG9iYWw9JGpzY29tcC5nZXRHbG9iYWwodGhpcyk7JGpzY29tcC5JU19TWU1CT0xfTkFUSVZFPSJmdW5jdGlvbiI9PT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09PXR5cGVvZiBTeW1ib2woIngiKTskanNjb21wLlRSVVNUX0VTNl9QT0xZRklMTFM9ISRqc2NvbXAuSVNPTEFURV9QT0xZRklMTFN8fCRqc2NvbXAuSVNfU1lNQk9MX05BVElWRTskanNjb21wLnBvbHlmaWxscz17fTsKJGpzY29tcC5wcm9wZXJ0eVRvUG9seWZpbGxTeW1ib2w9e307JGpzY29tcC5QT0xZRklMTF9QUkVGSVg9IiRqc2NwJCI7dmFyICRqc2NvbXAkbG9va3VwUG9seWZpbGxlZFZhbHVlPWZ1bmN0aW9uKGEsYil7dmFyIGM9JGpzY29tcC5wcm9wZXJ0eVRvUG9seWZpbGxTeW1ib2xbYl07aWYobnVsbD09YylyZXR1cm4gYVtiXTtjPWFbY107cmV0dXJuIHZvaWQgMCE9PWM\/YzphW2JdfTskanNjb21wLnBvbHlmaWxsPWZ1bmN0aW9uKGEsYixjLGQpe2ImJigkanNjb21wLklTT0xBVEVfUE9MWUZJTExTPyRqc2NvbXAucG9seWZpbGxJc29sYXRlZChhLGIsYyxkKTokanNjb21wLnBvbHlmaWxsVW5pc29sYXRlZChhLGIsYyxkKSl9OwokanNjb21wLnBvbHlmaWxsVW5pc29sYXRlZD1mdW5jdGlvbihhLGIsYyxkKXtjPSRqc2NvbXAuZ2xvYmFsO2E9YS5zcGxpdCgiLiIpO2ZvcihkPTA7ZDxhLmxlbmd0aC0xO2QrKyl7dmFyIGU9YVtkXTtpZighKGUgaW4gYykpcmV0dXJuO2M9Y1tlXX1hPWFbYS5sZW5ndGgtMV07ZD1jW2FdO2I9YihkKTtiIT1kJiZudWxsIT1iJiYkanNjb21wLmRlZmluZVByb3BlcnR5KGMsYSx7Y29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmJ9KX07CiRqc2NvbXAucG9seWZpbGxJc29sYXRlZD1mdW5jdGlvbihhLGIsYyxkKXt2YXIgZT1hLnNwbGl0KCIuIik7YT0xPT09ZS5sZW5ndGg7ZD1lWzBdO2Q9IWEmJmQgaW4gJGpzY29tcC5wb2x5ZmlsbHM\/JGpzY29tcC5wb2x5ZmlsbHM6JGpzY29tcC5nbG9iYWw7Zm9yKHZhciBrPTA7azxlLmxlbmd0aC0xO2srKyl7dmFyIGg9ZVtrXTtpZighKGggaW4gZCkpcmV0dXJuO2Q9ZFtoXX1lPWVbZS5sZW5ndGgtMV07Yz0kanNjb21wLklTX1NZTUJPTF9OQVRJVkUmJiJlczYiPT09Yz9kW2VdOm51bGw7Yj1iKGMpO251bGwhPWImJihhPyRqc2NvbXAuZGVmaW5lUHJvcGVydHkoJGpzY29tcC5wb2x5ZmlsbHMsZSx7Y29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmJ9KTpiIT09YyYmKHZvaWQgMD09PSRqc2NvbXAucHJvcGVydHlUb1BvbHlmaWxsU3ltYm9sW2VdJiYoYz0xRTkqTWF0aC5yYW5kb20oKT4+PjAsJGpzY29tcC5wcm9wZXJ0eVRvUG9seWZpbGxTeW1ib2xbZV09JGpzY29tcC5JU19TWU1CT0xfTkFUSVZFPwokanNjb21wLmdsb2JhbC5TeW1ib2woZSk6JGpzY29tcC5QT0xZRklMTF9QUkVGSVgrYysiJCIrZSksJGpzY29tcC5kZWZpbmVQcm9wZXJ0eShkLCRqc2NvbXAucHJvcGVydHlUb1BvbHlmaWxsU3ltYm9sW2VdLHtjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Yn0pKSl9OyRqc2NvbXAudW5kZXJzY29yZVByb3RvQ2FuQmVTZXQ9ZnVuY3Rpb24oKXt2YXIgYT17YTohMH0sYj17fTt0cnl7cmV0dXJuIGIuX19wcm90b19fPWEsYi5hfWNhdGNoKGMpe31yZXR1cm4hMX07CiRqc2NvbXAuc2V0UHJvdG90eXBlT2Y9JGpzY29tcC5UUlVTVF9FUzZfUE9MWUZJTExTJiYiZnVuY3Rpb24iPT10eXBlb2YgT2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZjokanNjb21wLnVuZGVyc2NvcmVQcm90b0NhbkJlU2V0KCk\/ZnVuY3Rpb24oYSxiKXthLl9fcHJvdG9fXz1iO2lmKGEuX19wcm90b19fIT09Yil0aHJvdyBuZXcgVHlwZUVycm9yKGErIiBpcyBub3QgZXh0ZW5zaWJsZSIpO3JldHVybiBhfTpudWxsOyRqc2NvbXAuYXJyYXlJdGVyYXRvckltcGw9ZnVuY3Rpb24oYSl7dmFyIGI9MDtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gYjxhLmxlbmd0aD97ZG9uZTohMSx2YWx1ZTphW2IrK119Ontkb25lOiEwfX19OyRqc2NvbXAuYXJyYXlJdGVyYXRvcj1mdW5jdGlvbihhKXtyZXR1cm57bmV4dDokanNjb21wLmFycmF5SXRlcmF0b3JJbXBsKGEpfX07CiRqc2NvbXAubWFrZUl0ZXJhdG9yPWZ1bmN0aW9uKGEpe3ZhciBiPSJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZTeW1ib2wuaXRlcmF0b3ImJmFbU3ltYm9sLml0ZXJhdG9yXTtyZXR1cm4gYj9iLmNhbGwoYSk6JGpzY29tcC5hcnJheUl0ZXJhdG9yKGEpfTskanNjb21wLmdlbmVyYXRvcj17fTskanNjb21wLmdlbmVyYXRvci5lbnN1cmVJdGVyYXRvclJlc3VsdElzT2JqZWN0Xz1mdW5jdGlvbihhKXtpZighKGEgaW5zdGFuY2VvZiBPYmplY3QpKXRocm93IG5ldyBUeXBlRXJyb3IoIkl0ZXJhdG9yIHJlc3VsdCAiK2ErIiBpcyBub3QgYW4gb2JqZWN0Iik7fTsKJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dD1mdW5jdGlvbigpe3RoaXMuaXNSdW5uaW5nXz0hMTt0aGlzLnlpZWxkQWxsSXRlcmF0b3JfPW51bGw7dGhpcy55aWVsZFJlc3VsdD12b2lkIDA7dGhpcy5uZXh0QWRkcmVzcz0xO3RoaXMuZmluYWxseUFkZHJlc3NfPXRoaXMuY2F0Y2hBZGRyZXNzXz0wO3RoaXMuZmluYWxseUNvbnRleHRzXz10aGlzLmFicnVwdENvbXBsZXRpb25fPW51bGx9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLnN0YXJ0Xz1mdW5jdGlvbigpe2lmKHRoaXMuaXNSdW5uaW5nXyl0aHJvdyBuZXcgVHlwZUVycm9yKCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBydW5uaW5nIik7dGhpcy5pc1J1bm5pbmdfPSEwfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5zdG9wXz1mdW5jdGlvbigpe3RoaXMuaXNSdW5uaW5nXz0hMX07CiRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmp1bXBUb0Vycm9ySGFuZGxlcl89ZnVuY3Rpb24oKXt0aGlzLm5leHRBZGRyZXNzPXRoaXMuY2F0Y2hBZGRyZXNzX3x8dGhpcy5maW5hbGx5QWRkcmVzc199OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLm5leHRfPWZ1bmN0aW9uKGEpe3RoaXMueWllbGRSZXN1bHQ9YX07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUudGhyb3dfPWZ1bmN0aW9uKGEpe3RoaXMuYWJydXB0Q29tcGxldGlvbl89e2V4Y2VwdGlvbjphLGlzRXhjZXB0aW9uOiEwfTt0aGlzLmp1bXBUb0Vycm9ySGFuZGxlcl8oKX07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUucmV0dXJuPWZ1bmN0aW9uKGEpe3RoaXMuYWJydXB0Q29tcGxldGlvbl89e3JldHVybjphfTt0aGlzLm5leHRBZGRyZXNzPXRoaXMuZmluYWxseUFkZHJlc3NffTsKJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuanVtcFRocm91Z2hGaW5hbGx5QmxvY2tzPWZ1bmN0aW9uKGEpe3RoaXMuYWJydXB0Q29tcGxldGlvbl89e2p1bXBUbzphfTt0aGlzLm5leHRBZGRyZXNzPXRoaXMuZmluYWxseUFkZHJlc3NffTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS55aWVsZD1mdW5jdGlvbihhLGIpe3RoaXMubmV4dEFkZHJlc3M9YjtyZXR1cm57dmFsdWU6YX19OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLnlpZWxkQWxsPWZ1bmN0aW9uKGEsYil7YT0kanNjb21wLm1ha2VJdGVyYXRvcihhKTt2YXIgYz1hLm5leHQoKTskanNjb21wLmdlbmVyYXRvci5lbnN1cmVJdGVyYXRvclJlc3VsdElzT2JqZWN0XyhjKTtpZihjLmRvbmUpdGhpcy55aWVsZFJlc3VsdD1jLnZhbHVlLHRoaXMubmV4dEFkZHJlc3M9YjtlbHNlIHJldHVybiB0aGlzLnlpZWxkQWxsSXRlcmF0b3JfPWEsdGhpcy55aWVsZChjLnZhbHVlLGIpfTsKJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuanVtcFRvPWZ1bmN0aW9uKGEpe3RoaXMubmV4dEFkZHJlc3M9YX07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuanVtcFRvRW5kPWZ1bmN0aW9uKCl7dGhpcy5uZXh0QWRkcmVzcz0wfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5zZXRDYXRjaEZpbmFsbHlCbG9ja3M9ZnVuY3Rpb24oYSxiKXt0aGlzLmNhdGNoQWRkcmVzc189YTt2b2lkIDAhPWImJih0aGlzLmZpbmFsbHlBZGRyZXNzXz1iKX07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuc2V0RmluYWxseUJsb2NrPWZ1bmN0aW9uKGEpe3RoaXMuY2F0Y2hBZGRyZXNzXz0wO3RoaXMuZmluYWxseUFkZHJlc3NfPWF8fDB9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmxlYXZlVHJ5QmxvY2s9ZnVuY3Rpb24oYSxiKXt0aGlzLm5leHRBZGRyZXNzPWE7dGhpcy5jYXRjaEFkZHJlc3NfPWJ8fDB9OwokanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5lbnRlckNhdGNoQmxvY2s9ZnVuY3Rpb24oYSl7dGhpcy5jYXRjaEFkZHJlc3NfPWF8fDA7YT10aGlzLmFicnVwdENvbXBsZXRpb25fLmV4Y2VwdGlvbjt0aGlzLmFicnVwdENvbXBsZXRpb25fPW51bGw7cmV0dXJuIGF9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmVudGVyRmluYWxseUJsb2NrPWZ1bmN0aW9uKGEsYixjKXtjP3RoaXMuZmluYWxseUNvbnRleHRzX1tjXT10aGlzLmFicnVwdENvbXBsZXRpb25fOnRoaXMuZmluYWxseUNvbnRleHRzXz1bdGhpcy5hYnJ1cHRDb21wbGV0aW9uX107dGhpcy5jYXRjaEFkZHJlc3NfPWF8fDA7dGhpcy5maW5hbGx5QWRkcmVzc189Ynx8MH07CiRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmxlYXZlRmluYWxseUJsb2NrPWZ1bmN0aW9uKGEsYil7Yj10aGlzLmZpbmFsbHlDb250ZXh0c18uc3BsaWNlKGJ8fDApWzBdO2lmKGI9dGhpcy5hYnJ1cHRDb21wbGV0aW9uXz10aGlzLmFicnVwdENvbXBsZXRpb25ffHxiKXtpZihiLmlzRXhjZXB0aW9uKXJldHVybiB0aGlzLmp1bXBUb0Vycm9ySGFuZGxlcl8oKTt2b2lkIDAhPWIuanVtcFRvJiZ0aGlzLmZpbmFsbHlBZGRyZXNzXzxiLmp1bXBUbz8odGhpcy5uZXh0QWRkcmVzcz1iLmp1bXBUbyx0aGlzLmFicnVwdENvbXBsZXRpb25fPW51bGwpOnRoaXMubmV4dEFkZHJlc3M9dGhpcy5maW5hbGx5QWRkcmVzc199ZWxzZSB0aGlzLm5leHRBZGRyZXNzPWF9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmZvckluPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcgJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5Qcm9wZXJ0eUl0ZXJhdG9yKGEpfTsKJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5Qcm9wZXJ0eUl0ZXJhdG9yPWZ1bmN0aW9uKGEpe3RoaXMub2JqZWN0Xz1hO3RoaXMucHJvcGVydGllc189W107Zm9yKHZhciBiIGluIGEpdGhpcy5wcm9wZXJ0aWVzXy5wdXNoKGIpO3RoaXMucHJvcGVydGllc18ucmV2ZXJzZSgpfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LlByb3BlcnR5SXRlcmF0b3IucHJvdG90eXBlLmdldE5leHQ9ZnVuY3Rpb24oKXtmb3IoOzA8dGhpcy5wcm9wZXJ0aWVzXy5sZW5ndGg7KXt2YXIgYT10aGlzLnByb3BlcnRpZXNfLnBvcCgpO2lmKGEgaW4gdGhpcy5vYmplY3RfKXJldHVybiBhfXJldHVybiBudWxsfTskanNjb21wLmdlbmVyYXRvci5FbmdpbmVfPWZ1bmN0aW9uKGEpe3RoaXMuY29udGV4dF89bmV3ICRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQ7dGhpcy5wcm9ncmFtXz1hfTsKJGpzY29tcC5nZW5lcmF0b3IuRW5naW5lXy5wcm90b3R5cGUubmV4dF89ZnVuY3Rpb24oYSl7dGhpcy5jb250ZXh0Xy5zdGFydF8oKTtpZih0aGlzLmNvbnRleHRfLnlpZWxkQWxsSXRlcmF0b3JfKXJldHVybiB0aGlzLnlpZWxkQWxsU3RlcF8odGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yXy5uZXh0LGEsdGhpcy5jb250ZXh0Xy5uZXh0Xyk7dGhpcy5jb250ZXh0Xy5uZXh0XyhhKTtyZXR1cm4gdGhpcy5uZXh0U3RlcF8oKX07CiRqc2NvbXAuZ2VuZXJhdG9yLkVuZ2luZV8ucHJvdG90eXBlLnJldHVybl89ZnVuY3Rpb24oYSl7dGhpcy5jb250ZXh0Xy5zdGFydF8oKTt2YXIgYj10aGlzLmNvbnRleHRfLnlpZWxkQWxsSXRlcmF0b3JfO2lmKGIpcmV0dXJuIHRoaXMueWllbGRBbGxTdGVwXygicmV0dXJuImluIGI\/YlsicmV0dXJuIl06ZnVuY3Rpb24oYyl7cmV0dXJue3ZhbHVlOmMsZG9uZTohMH19LGEsdGhpcy5jb250ZXh0Xy5yZXR1cm4pO3RoaXMuY29udGV4dF8ucmV0dXJuKGEpO3JldHVybiB0aGlzLm5leHRTdGVwXygpfTsKJGpzY29tcC5nZW5lcmF0b3IuRW5naW5lXy5wcm90b3R5cGUudGhyb3dfPWZ1bmN0aW9uKGEpe3RoaXMuY29udGV4dF8uc3RhcnRfKCk7aWYodGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yXylyZXR1cm4gdGhpcy55aWVsZEFsbFN0ZXBfKHRoaXMuY29udGV4dF8ueWllbGRBbGxJdGVyYXRvcl9bInRocm93Il0sYSx0aGlzLmNvbnRleHRfLm5leHRfKTt0aGlzLmNvbnRleHRfLnRocm93XyhhKTtyZXR1cm4gdGhpcy5uZXh0U3RlcF8oKX07CiRqc2NvbXAuZ2VuZXJhdG9yLkVuZ2luZV8ucHJvdG90eXBlLnlpZWxkQWxsU3RlcF89ZnVuY3Rpb24oYSxiLGMpe3RyeXt2YXIgZD1hLmNhbGwodGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yXyxiKTskanNjb21wLmdlbmVyYXRvci5lbnN1cmVJdGVyYXRvclJlc3VsdElzT2JqZWN0XyhkKTtpZighZC5kb25lKXJldHVybiB0aGlzLmNvbnRleHRfLnN0b3BfKCksZDt2YXIgZT1kLnZhbHVlfWNhdGNoKGspe3JldHVybiB0aGlzLmNvbnRleHRfLnlpZWxkQWxsSXRlcmF0b3JfPW51bGwsdGhpcy5jb250ZXh0Xy50aHJvd18oayksdGhpcy5uZXh0U3RlcF8oKX10aGlzLmNvbnRleHRfLnlpZWxkQWxsSXRlcmF0b3JfPW51bGw7Yy5jYWxsKHRoaXMuY29udGV4dF8sZSk7cmV0dXJuIHRoaXMubmV4dFN0ZXBfKCl9OwokanNjb21wLmdlbmVyYXRvci5FbmdpbmVfLnByb3RvdHlwZS5uZXh0U3RlcF89ZnVuY3Rpb24oKXtmb3IoO3RoaXMuY29udGV4dF8ubmV4dEFkZHJlc3M7KXRyeXt2YXIgYT10aGlzLnByb2dyYW1fKHRoaXMuY29udGV4dF8pO2lmKGEpcmV0dXJuIHRoaXMuY29udGV4dF8uc3RvcF8oKSx7dmFsdWU6YS52YWx1ZSxkb25lOiExfX1jYXRjaChiKXt0aGlzLmNvbnRleHRfLnlpZWxkUmVzdWx0PXZvaWQgMCx0aGlzLmNvbnRleHRfLnRocm93XyhiKX10aGlzLmNvbnRleHRfLnN0b3BfKCk7aWYodGhpcy5jb250ZXh0Xy5hYnJ1cHRDb21wbGV0aW9uXyl7YT10aGlzLmNvbnRleHRfLmFicnVwdENvbXBsZXRpb25fO3RoaXMuY29udGV4dF8uYWJydXB0Q29tcGxldGlvbl89bnVsbDtpZihhLmlzRXhjZXB0aW9uKXRocm93IGEuZXhjZXB0aW9uO3JldHVybnt2YWx1ZTphLnJldHVybixkb25lOiEwfX1yZXR1cm57dmFsdWU6dm9pZCAwLGRvbmU6ITB9fTsKJGpzY29tcC5nZW5lcmF0b3IuR2VuZXJhdG9yXz1mdW5jdGlvbihhKXt0aGlzLm5leHQ9ZnVuY3Rpb24oYil7cmV0dXJuIGEubmV4dF8oYil9O3RoaXMudGhyb3c9ZnVuY3Rpb24oYil7cmV0dXJuIGEudGhyb3dfKGIpfTt0aGlzLnJldHVybj1mdW5jdGlvbihiKXtyZXR1cm4gYS5yZXR1cm5fKGIpfTt0aGlzW1N5bWJvbC5pdGVyYXRvcl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc319OyRqc2NvbXAuZ2VuZXJhdG9yLmNyZWF0ZUdlbmVyYXRvcj1mdW5jdGlvbihhLGIpe2I9bmV3ICRqc2NvbXAuZ2VuZXJhdG9yLkdlbmVyYXRvcl8obmV3ICRqc2NvbXAuZ2VuZXJhdG9yLkVuZ2luZV8oYikpOyRqc2NvbXAuc2V0UHJvdG90eXBlT2YmJmEucHJvdG90eXBlJiYkanNjb21wLnNldFByb3RvdHlwZU9mKGIsYS5wcm90b3R5cGUpO3JldHVybiBifTsKJGpzY29tcC5hc3luY0V4ZWN1dGVQcm9taXNlR2VuZXJhdG9yPWZ1bmN0aW9uKGEpe2Z1bmN0aW9uIGIoZCl7cmV0dXJuIGEubmV4dChkKX1mdW5jdGlvbiBjKGQpe3JldHVybiBhLnRocm93KGQpfXJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihkLGUpe2Z1bmN0aW9uIGsoaCl7aC5kb25lP2QoaC52YWx1ZSk6UHJvbWlzZS5yZXNvbHZlKGgudmFsdWUpLnRoZW4oYixjKS50aGVuKGssZSl9ayhhLm5leHQoKSl9KX07JGpzY29tcC5hc3luY0V4ZWN1dGVQcm9taXNlR2VuZXJhdG9yRnVuY3Rpb249ZnVuY3Rpb24oYSl7cmV0dXJuICRqc2NvbXAuYXN5bmNFeGVjdXRlUHJvbWlzZUdlbmVyYXRvcihhKCkpfTskanNjb21wLmFzeW5jRXhlY3V0ZVByb21pc2VHZW5lcmF0b3JQcm9ncmFtPWZ1bmN0aW9uKGEpe3JldHVybiAkanNjb21wLmFzeW5jRXhlY3V0ZVByb21pc2VHZW5lcmF0b3IobmV3ICRqc2NvbXAuZ2VuZXJhdG9yLkdlbmVyYXRvcl8obmV3ICRqc2NvbXAuZ2VuZXJhdG9yLkVuZ2luZV8oYSkpKX07CmpRdWVyeS5ub0NvbmZsaWN0PWZ1bmN0aW9uKCl7cmV0dXJuIGpRdWVyeX07alF1ZXJ5LmV2ZW50LnNwZWNpYWwudG91Y2hzdGFydD17c2V0dXA6ZnVuY3Rpb24oYSxiLGMpe2IuaW5jbHVkZXMoIm5vUHJldmVudERlZmF1bHQiKT90aGlzLmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoc3RhcnQiLGMse3Bhc3NpdmU6ITF9KTp0aGlzLmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoc3RhcnQiLGMse3Bhc3NpdmU6ITB9KX19O2pRdWVyeS5leHByLnBzZXVkb3MucmVhbGx5VmlzaWJsZT1mdW5jdGlvbihhKXt0cnl7aWYoYT09ZG9jdW1lbnQuYm9keSlyZXR1cm4hMDt2YXIgYj1qUXVlcnkoYSk7cmV0dXJuIGIuaXMoIjp2aXNpYmxlIikmJiJoaWRkZW4iIT09Yi5jc3MoInZpc2liaWxpdHkiKSYmMDxiLnBhcmVudCgiOnJlYWxseVZpc2libGUiKS5sZW5ndGh9Y2F0Y2goYyl7cmV0dXJuIGNvbnNvbGUubG9nKGMubWVzc2FnZSxjKSwhMX19OwpBcnJheS5wcm90b3R5cGUuZmluZHx8T2JqZWN0LmRlZmluZVByb3BlcnR5KEFycmF5LnByb3RvdHlwZSwiZmluZCIse3ZhbHVlOmZ1bmN0aW9uKGEsYil7aWYobnVsbD09dGhpcyl0aHJvdyBUeXBlRXJyb3IoJyJ0aGlzIiBpcyBudWxsIG9yIG5vdCBkZWZpbmVkJyk7dmFyIGM9T2JqZWN0KHRoaXMpLGQ9Yy5sZW5ndGg+Pj4wO2lmKCJmdW5jdGlvbiIhPT10eXBlb2YgYSl0aHJvdyBUeXBlRXJyb3IoInByZWRpY2F0ZSBtdXN0IGJlIGEgZnVuY3Rpb24iKTtmb3IodmFyIGU9MDtlPGQ7KXt2YXIgaz1jW2VdO2lmKGEuY2FsbChiLGssZSxjKSlyZXR1cm4gaztlKyt9fSxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTsKdmFyIGlzRnVuY3Rpb249YT0+ImZ1bmN0aW9uIj09PXR5cGVvZiBhLHRyaW09YT0+YS5yZXBsYWNlKC9eXHMrfFxzKyQvZywiIiksZGVidWc9ZnVuY3Rpb24oKXtpZihkZWJ1Z0VuYWJsZWQoKSl7dmFyIGE9Y29uc29sZSxiPWFyZ3VtZW50czsiZnVuY3Rpb24iPT10eXBlb2YgYS5sb2cmJmEubG9nLmFwcGx5KGEsYil9fSxkZWJ1Z0VuYWJsZWQ9ZnVuY3Rpb24oKXt2YXIgYT1kb2N1bWVudC5sb2NhdGlvbi5ob3N0O3ZhciBiPWRvY3VtZW50LmNvb2tpZS5tYXRjaCgvdGVzdGluZz0oW147XSspL2kpO2I9bnVsbD09Yj8hMTpiWzFdO3JldHVybiBifHwvXihkZWFsZXJ8ZGVtbyl8ZDJjbWVkaWFcLmNhJC8udGVzdChhKSYmIm9mZiIhPWJ9LGVuYWJsZURlYnVnPWZ1bmN0aW9uKCl7Q29va2llcy5zZXQoInRlc3RpbmciLCJvbiIpfSxkaXNhYmxlRGVidWc9ZnVuY3Rpb24oKXtDb29raWVzLnNldCgidGVzdGluZyIsIm9mZiIpfSxBbGVydEJhcj1mdW5jdGlvbihhKXt2YXIgYj1hLnNlY3Rpb25zLnRvTG93ZXJDYXNlKCksCmM9YS5jdXJyZW50LnRvTG93ZXJDYXNlKCksZD0kKCIuaGVhZGVyLXdyYXBwZXIiKS5sZW5ndGg\/JCgiLmhlYWRlci13cmFwcGVyIik6JCgiI21haW5EaXYiKSxlPSQoIiNhbGVydE1zZ0NvbnRhaW5lciIpLGs9JCgiYm9keSIpLGg9JCgiLkFkZGVkVG9wTGlua0RpdiIpLG49bmV3IERhdGU7bi5zZXRUaW1lKG4uZ2V0VGltZSgpKzM2RTUpO3ZhciB4PWZ1bmN0aW9uKCl7Q29va2llcy5zZXQoImFsZXJ0TWVzc2FnZUNsb3NlZCIsMSxuLCIvIik7ZS5oaWRlKCk7ZC5jc3Moe21hcmdpblRvcDowfSk7ay5jc3MoImJhY2tncm91bmQtcG9zaXRpb24teSIsIiIpOzA8aC5sZW5ndGgmJmguY3NzKCJtYXJnaW4tdG9wIiwiIil9Oy0xPGIuaW5kZXhPZihjKSYmIUNvb2tpZXMuZ2V0KCJhbGVydE1lc3NhZ2VDbG9zZWQiKSYmKGUuY3NzKHtiYWNrZ3JvdW5kQ29sb3I6YS5jb2xvcn0pLCQoIi5jbG9zZSIsZSkub24oImNsaWNrIix4KSxkLmNzcygibWFyZ2luLXRvcCIsZS5oZWlnaHQoKSsicHgiKSwKay5jc3MoeyJiYWNrZ3JvdW5kLXBvc2l0aW9uLXkiOmUuaGVpZ2h0KCkrInB4In0pLDA8aC5sZW5ndGgmJmguY3NzKCJtYXJnaW4tdG9wIixlLmhlaWdodCgpKyJweCIpLGUuc2hvdygpKX07ZnVuY3Rpb24gTGVhZEdlbkFERihhLGIsYyxkLGUsayxoLG4pe2lmKHR5cGVvZiBjYXJwcm9vZkhhbmRsZXIpcmV0dXJuIGNhcnByb29mSGFuZGxlci5sZWFkR2VuLmFwcGx5KGNhcnByb29mSGFuZGxlcixhcmd1bWVudHMpfQpmdW5jdGlvbiBydW5JbWFnZVBvcHVwRmlyZXdvcmtzKCl7InVuZGVmaW5lZCIhPXR5cGVvZiBGaXJld29ya1RpbWVyJiYoaW1hZ2VGaXJld29ya3M9ITAsRmlyZXdvcmtUaW1lcigiYmdJbWFnZSIsIkZGRkZGRiIsMjAwLDIwMCksRmlyZXdvcmtUaW1lcigiYmdJbWFnZSIsIkZGMDAwMCIsMzgwLDI1MCwxRTMpLEZpcmV3b3JrVGltZXIoImJnSW1hZ2UiLCIwMGZmMTEiLDkwLDE3MCwyRTMpLEZpcmV3b3JrVGltZXIoImJnSW1hZ2UiLCI0NGNkZmYiLDMyMCwyNTAsM0UzLDAsLjgpLHNldFRpbWVvdXQoZnVuY3Rpb24oKXtydW5JbWFnZVBvcHVwRmlyZXdvcmtzKCl9LDFFNCkpfQpmdW5jdGlvbiBoYW5kbGVBY3Rpb25DbGljayhhKXthPWF8fHdpbmRvdy5ldmVudDthPWEuY3VycmVudFRhcmdldHx8YS5zcmNFbGVtZW50O3ZhciBiPXdpbmRvdy5sb2NhdGlvbi5ocmVmLnN1YnN0cmluZyh3aW5kb3cubG9jYXRpb24uaHJlZi5sYXN0SW5kZXhPZigiLyIpKzEpLGM9InVzZWQiO3ZhciBkPSIiO2lmKC0xPT13aW5kb3cubG9jYXRpb24uaHJlZi5pbmRleE9mKCItaWQiKSl7ZD1iLnJlcGxhY2UoIi5odG1sIiwiIikuc3BsaXQoIi0iKTtpZigzPmQubGVuZ3RofHwtMTxiLmluZGV4T2YoInNlYXJjaCIpfHwtMTxiLmluZGV4T2YoImZpbmQtIil8fC0xPGIuaW5kZXhPZigicmVjaGVyY2hlIil8fC0xPGIuaW5kZXhPZigicHJpeC0iKXx8LTE8Yi5pbmRleE9mKCJwcmljZS0iKXx8LTE8Yi5pbmRleE9mKCJlc3NhaXMtcm91dGllci0iKXx8LTE8Yi5pbmRleE9mKCJ0ZXN0LWRyaXZlLSIpfHwtMTxiLmluZGV4T2YoInZlaGljdWxlLWVjaGFuZ2UtIil8fC0xPGIuaW5kZXhPZigidHJhZGUtaW4tIil8fAotMTxiLmluZGV4T2YoInBuZXVzLXBpZWNlcy0iKXx8LTE8Yi5pbmRleE9mKCJjYXItcGFydHMtIil8fC0xPGIuaW5kZXhPZigicmVuZGV6LXZvdXMtIil8fC0xPGIuaW5kZXhPZigiLWFwcG9pbnRtZW50Iil8fC0xPGIuaW5kZXhPZigiY3JlZGl0Iil8fC0xPGIuaW5kZXhPZigiZmluYW5jZW1lbnQiKXx8LTE8Yi5pbmRleE9mKCJwcmUtYXBwcm8iKXx8LTE8Yi5pbmRleE9mKCJuZXctd2VzdCIpfHwtMTxiLmluZGV4T2YoImNvbmZpZGVudGlhbGl0ZSIpfHwtMTxiLmluZGV4T2YoInByaXZhY3ktcG9saWN5Iil8fC0xPGIuaW5kZXhPZigidGVybWVzLWV0LWNvbmRpdGlvbnMiKXx8LTE8Yi5pbmRleE9mKCJ0ZXJtcy1hbmQtY29uZGl0aW9ucyIpKWQ9Ii5odG1sIjtlbHNle3ZhciBlPShuZXcgRGF0ZSkuZ2V0RnVsbFllYXIoKTsidW5kZWZpbmVkIj09dHlwZW9mIGRbMl18fGUhPWRbMl0mJmUrMSE9ZFsyXXx8KGM9Im5ldyIpO2Q9Ii8iK2J9ZD1hLmdldEF0dHJpYnV0ZSgidGFyZ2V0VVJJIikucmVwbGFjZSgiLmh0bWwiLApkKX1lbHNle3N3aXRjaChhLmdldEF0dHJpYnV0ZSgiYWN0aW9uIikpe2Nhc2UgIlRlc3REcml2ZUFjdGlvbkJveCI6ZD0kKCIjdGVzdERyaXZlRm9sZGVyIikudmFsKCkrYjticmVhaztjYXNlICJQcmljZUFjdGlvbkJveCI6ZD0kKCIjcHJpY2VSZXF1ZXN0Rm9sZGVyIikudmFsKCkrYjticmVhaztjYXNlICJFdmFsQWN0aW9uQm94IjpkPSQoIiNldmFsQ2FyRm9sZGVyIikudmFsKCkrYjticmVhaztjYXNlICJGaW5hbmNlQWN0aW9uQm94IjpkPSQoIiNGaW5hbmNlRm9sZGVyIikudmFsKCkrYjticmVhaztkZWZhdWx0OiJ1bmRlZmluZWQiIT10eXBlb2YgJChhKS5hdHRyKCJmb2xkZXIiKT9kPSQoYSkuYXR0cigiZm9sZGVyIik6InVuZGVmaW5lZCIhPXR5cGVvZiAkKGEpLmF0dHIoInRhcmdldHVyaSIpJiYoZD0kKGEpLmF0dHIoInRhcmdldHVyaSIpKX1Db29raWVzLnNldCgiZnJvbWRldGFpbHNwYWdlIiwiMSIsbnVsbCwiLyIpfWlmKCJ1bmRlZmluZWQiIT10eXBlb2YgZCYmbnVsbCE9CmQmJjA8ZC5sZW5ndGgpe2I9ZDJjbWVkaWEuaHRtbEZpbGUoITEsITApO2U9Yi5zcGxpdCgiLSIpO3ZhciBrPSIiLGg9IiIsbj0iIjswPGUubGVuZ3RoJiYoaz1lWzBdKTsxPGUubGVuZ3RoJiYoaD1lWzFdKTsyPGUubGVuZ3RoJiYobj1lWzJdKTswPGsubGVuZ3RoJiYwPGgubGVuZ3RoJiYwPG4ubGVuZ3RoJiYhaXNOYU4obikmJjQ9PW4udG9TdHJpbmcoKS5sZW5ndGgmJi0xPGQuaW5kZXhPZigiLmh0bSIpJiYoZT1hLmdldEF0dHJpYnV0ZSgiZm9sZGVyIiksZD0idW5kZWZpbmVkIiE9dHlwZW9mIGUmJm51bGwhPWU\/ZTpkLnN1YnN0cmluZygwLGQubGFzdEluZGV4T2YoIi8iKSsxKSxkPWQucmVwbGFjZSgiLmh0bWwiLCIvIikrYisiLmh0bWwiKTskKGEpLmhhc0NsYXNzKCJ0cmFkZWluTGluayIpJiYoMDxhLmdldEF0dHJpYnV0ZSgidGFyZ2V0VVJJIikuaW5kZXhPZigidHJhZGVpbnZhbHVlcyIpfHwwPGEuZ2V0QXR0cmlidXRlKCJ0YXJnZXRVUkkiKS5pbmRleE9mKCJpbnN0YW50b2ZmZXIuYWNjdS10cmFkZS5jb20iKSk\/CnNob3dUcmFkZUluUG9wdXAoYS5nZXRBdHRyaWJ1dGUoInRhcmdldFVSSSIpKTooIm5ldyI9PWMmJihkPWQucmVwbGFjZSgib2NjYXNpb24iLCJuZXVmIikucmVwbGFjZSgidXNlZCIsIm5ldyIpKSx3aW5kb3cubG9jYXRpb24uaHJlZj1kKX19CmZ1bmN0aW9uIG9wZW5GaW5hbmNlTXVsdGlzdGVwRm9ybU9uQ3VycmVudFBhZ2UoYSxiLGMsZCxlLGssaCl7YS5wcmV2ZW50RGVmYXVsdCgpO2Euc3RvcFByb3BhZ2F0aW9uKCk7Yj8kKCIjcG9wdXBtYWtlTXVsdGlzdGVwRm9ybSIpLnZhbChiKToiTkVXQ0FSREVUQUlMUyI9PSQoImJvZHkiKS5hdHRyKCJpZCIpPyQoIiNwb3B1cG1ha2VNdWx0aXN0ZXBGb3JtIikudmFsKCQoIi5icmFuZGVtYWlsIikudmFsKCkpOiJjYXJkZXRhaWwuaHRtbCI9PSQoIiNQQUdFSUQiKS52YWwoKSYmJCgiI3BvcHVwbWFrZU11bHRpc3RlcEZvcm0iKS52YWwoJCgiI3Bob25lbWFrZSIpLnZhbCgpKTtjPyQoIiNwb3B1cG1vZGVsTXVsdGlzdGVwRm9ybSIpLnZhbChjKToiTkVXQ0FSREVUQUlMUyI9PSQoImJvZHkiKS5hdHRyKCJpZCIpPyQoIiNwb3B1cG1vZGVsTXVsdGlzdGVwRm9ybSIpLnZhbCgkKCIubW9kZWxlbWFpbCIpLnZhbCgpKToiY2FyZGV0YWlsLmh0bWwiPT0kKCIjUEFHRUlEIikudmFsKCkmJgokKCIjcG9wdXBtb2RlbE11bHRpc3RlcEZvcm0iKS52YWwoJCgiI3Bob25lbW9kZWwiKS52YWwoKSk7ZD8kKCIjcG9wdXB5ZWFyTXVsdGlzdGVwRm9ybSIpLnZhbChkKToiTkVXQ0FSREVUQUlMUyI9PSQoImJvZHkiKS5hdHRyKCJpZCIpPyQoIiNwb3B1cHllYXJNdWx0aXN0ZXBGb3JtIikudmFsKCQoIi55ZWFyZW1haWwiKS52YWwoKSk6ImNhcmRldGFpbC5odG1sIj09JCgiI1BBR0VJRCIpLnZhbCgpJiYkKCIjcG9wdXB5ZWFyTXVsdGlzdGVwRm9ybSIpLnZhbCgkKCIjcGhvbmVteWVhciIpLnZhbCgpKTtlPyQoIiNwb3B1cHN0b2NrbnVtYmVyTXVsdGlzdGVwRm9ybSIpLnZhbChlKToiTkVXQ0FSREVUQUlMUyI9PSQoImJvZHkiKS5hdHRyKCJpZCIpPyQoIiNwb3B1cHN0b2NrbnVtYmVyTXVsdGlzdGVwRm9ybSIpLnZhbCgiIik6ImNhcmRldGFpbC5odG1sIj09JCgiI1BBR0VJRCIpLnZhbCgpJiYkKCIjcG9wdXBzdG9ja251bWJlck11bHRpc3RlcEZvcm0iKS52YWwoJCgiI3Bob25lc3RvY2tudW1iZXIiKS52YWwoKSk7Cms\/JCgiI3RvcGNhcmlkTXVsdGlzdGVwRm9ybSIpLnZhbChrKToiTkVXQ0FSREVUQUlMUyI9PSQoImJvZHkiKS5hdHRyKCJpZCIpJiYkKCIjdG9wY2FyaWRNdWx0aXN0ZXBGb3JtIikudmFsKCIiKTtoJiYoaC5zZW5kVG8mJiQoIiNGSU5BTkNFX0ZPUk1fU0VORFRPX0VNQUlMIikudmFsKGguc2VuZFRvKSxoLnNlbmRUb0FkZiYmJCgiI0ZJTkFOQ0VfRk9STV9TRU5EVE9BREZfRU1BSUwiKS52YWwoaC5zZW5kVG9BZGYpLGguZGVhbGVyTmFtZSYmJCgiI0ZJTkFOQ0VfRk9STV9ERUFMRVJOQU1FIikudmFsKGguZGVhbGVyTmFtZSkpO2E9ImZpbmFuY2VNdWx0aXN0ZXBQb3B1cENvbnRhaW5lciI7JCgiI0ZpbmFuY2VfRm9ybVR5cGUiKS5sZW5ndGgmJiJtdWx0aXN0ZXBJbnN0YW50Ij09JCgiI0ZpbmFuY2VfRm9ybVR5cGUiKS52YWwoKSYmJCgiI2ZpbmFuY2VNdWx0aXN0ZXBJbnN0YW50UG9wdXBDb250YWluZXIiKS5sZW5ndGgmJihhPSJmaW5hbmNlTXVsdGlzdGVwSW5zdGFudFBvcHVwQ29udGFpbmVyIik7CiQoIiMiK2EpLnBvcHVwaXplKCkuc2V0VHJpZ2dlcigiY2xpY2siKS5vcGVuKDEpfWZ1bmN0aW9uIG9wZW5TaG93cm9vbUNvbnRhY3RQb3B1cChhLGIsYyxkKXthLnByZXZlbnREZWZhdWx0KCk7YS5zdG9wUHJvcGFnYXRpb24oKTtlbWFpbEhhbmRsZXIubWFrZT1iOyQoIiNsYXN0dmlld2VkbWFrZSIpLnZhbChiKTtlbWFpbEhhbmRsZXIubW9kZWw9YzskKCIjbGFzdHZpZXdlZG1vZGVsIikudmFsKGMpO2VtYWlsSGFuZGxlci55ZWFyPWQ7JCgiI2xhc3R2aWV3ZWR5ZWFyIikudmFsKGQpOyQoIiNjb250YWN0cG9wdXAiKS5wb3B1cGl6ZSgpLnNldFRyaWdnZXIoImNsaWNrIikub3BlbigpfXZhciBkMmNtZWRpYT1kMmNtZWRpYXx8e307CmQyY21lZGlhLnNjcm9sbFRvPWZ1bmN0aW9uKGEsYixjKXsidW5kZWZpbmVkIj09dHlwZW9mIGMmJihjPTFFMyk7InVuZGVmaW5lZCI9PXR5cGVvZiBiJiYoYj0wKTskKCJodG1sLCBib2R5IikuYW5pbWF0ZSh7c2Nyb2xsVG9wOiQoYSkub2Zmc2V0KCkudG9wLWJ9LGMpO3JldHVybiExfTsKZDJjbWVkaWEudXJsPXtfc2FuaXRpemU6ITAsZGVzYW5pdGl6ZTpmdW5jdGlvbihhKXtpZigic3RyaW5nIj09PXR5cGVvZiBhKXJldHVybiBhLnJlcGxhY2UoL18vZywiLSIpO2lmKCJvYmplY3QiPT09dHlwZW9mIGEpe2Zvcih2YXIgYiBpbiBhKWFbYl09dGhpcy5kZXNhbml0aXplKGFbYl0pO3JldHVybiBhfX0sZ2VuZXJhdGU6ZnVuY3Rpb24oKXt2YXIgYT0iIjt0aGlzLl9zYW5pdGl6ZSYmKGFyZ3VtZW50cz10aGlzLnNhbml0aXplKGFyZ3VtZW50cykpO2ZvcihpPTA7aTxhcmd1bWVudHMubGVuZ3RoLTE7aSsrKWErPWFyZ3VtZW50c1tpXSsiLSI7cmV0dXJuIGErYXJndW1lbnRzW2ldKyIuaHRtbCJ9LHBhcnNlOmZ1bmN0aW9uKCl7dXJsPWRlY29kZVVSSUNvbXBvbmVudChkb2N1bWVudC5VUkwpO3N0clBhcmFtPXVybC5zdWJzdHJpbmcodXJsLmxhc3RJbmRleE9mKCIvIikpO29ialBhcmFtPXttYWtlOm51bGwsbW9kZWw6bnVsbCx5ZWFyOm51bGwsaWQ6bnVsbH07Zm91bmQ9ITE7CnZhciBhO251bGwhPShhPXN0clBhcmFtLm1hdGNoKC9eXC8oMjBbMC05XXsyfXwxOVswLTldezJ9KS0oW14tXSstW14tXC5dKykoLipcLmh0bWwpLykpJiYoc3RyUGFyYW09Ii8iK2FbMl0rIi0iK2FbMV0rYVszXSk7YT1zdHJQYXJhbS5tYXRjaCgvXC8oW14vXSopLSguKiktKFxkezR9KSgtaWQoXGQqKSk\/Lmh0bWwvKTtmb3VuZHx8bnVsbD09PWF8fChvYmpQYXJhbS5tYWtlPWFbMV0sb2JqUGFyYW0ubW9kZWw9YVsyXSxvYmpQYXJhbS55ZWFyPWFbM10sb2JqUGFyYW0uaWQ9YVs1XSxmb3VuZD0hMCk7YT1zdHJQYXJhbS5tYXRjaCgvXC8oW14vXSopLSguKiktKFxkezR9KSgtY1xkKik\/Lmh0bWwvKTtmb3VuZHx8bnVsbD09PWF8fChvYmpQYXJhbS5tYWtlPWFbMV0sb2JqUGFyYW0ubW9kZWw9YVsyXSxvYmpQYXJhbS55ZWFyPWFbM10sZm91bmQ9ITApO2E9c3RyUGFyYW0ubWF0Y2goL1wvKFteL10qKS0oXGR7NH0pLmh0bWwvKTtmb3VuZHx8bnVsbD09PWF8fChvYmpQYXJhbS5tYWtlPQphWzFdLG9ialBhcmFtLnllYXI9YVsyXSxmb3VuZD0hMCk7YT1zdHJQYXJhbS5tYXRjaCgvXC8oW14vXSopLShbXi5dKikuaHRtbC8pO2ZvdW5kfHxudWxsPT09YXx8KG9ialBhcmFtLm1ha2U9YVsxXSxvYmpQYXJhbS5tb2RlbD1hWzJdLGZvdW5kPSEwKTthPXN0clBhcmFtLm1hdGNoKC9cLyhbXi9dKikuaHRtbC8pO2ZvdW5kfHxudWxsPT09YXx8KG9ialBhcmFtLm1ha2U9YVsxXSxmb3VuZD0hMCk7dGhpcy5fc2FuaXRpemUmJihvYmpQYXJhbT10aGlzLmRlc2FuaXRpemUob2JqUGFyYW0pKTtyZXR1cm4gb2JqUGFyYW19LHNhbml0aXplOmZ1bmN0aW9uKGEpe2lmKCJzdHJpbmciPT09dHlwZW9mIGEpcmV0dXJuIGEucmVwbGFjZSgvLS9nLCJfIik7aWYoIm9iamVjdCI9PT10eXBlb2YgYSl7Zm9yKHZhciBiIGluIGEpYVtiXT10aGlzLnNhbml0aXplKGFbYl0pO3JldHVybiBhfX0sc2FuaXRpemVSZWZlcmVyOmZ1bmN0aW9uKGEpe3JldHVybiBhLnJlcGxhY2UoL1snImAoKTw+XFtcXXt9fCFdL2csCiIiKX19O2QyY21lZGlhLmdldEh0dHBUZXh0PWZ1bmN0aW9uKCl7cmV0dXJuImh0dHBzOiI9PWRvY3VtZW50LmxvY2F0aW9uLnByb3RvY29sJiYkKCIjdG9wZGVwbG95bWVudHR5cGUiKS5sZW5ndGgmJiJsaXZlIj09JCgiI3RvcGRlcGxveW1lbnR0eXBlIikudmFsKCk\/Imh0dHBzIjoiaHR0cCJ9O2QyY21lZGlhLmNhcGl0YWxpc2VGaXJzdExldHRlcj1mdW5jdGlvbihhKXtyZXR1cm4idW5kZWZpbmVkIj09dHlwZW9mIGE\/IiI6YS5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSthLnNsaWNlKDEpfTtkMmNtZWRpYS5jYXBpdGFsaXNlRmlyc3RMZXR0ZXJPZkV2ZXJ5V29yZD1mdW5jdGlvbihhKXtyZXR1cm4idW5kZWZpbmVkIj09dHlwZW9mIGE\/IiI6YS5zcGxpdCgiICIpLnJlZHVjZShmdW5jdGlvbihiLGMpe2M9ZDJjbWVkaWEuY2FwaXRhbGlzZUZpcnN0TGV0dGVyKGMpO3JldHVybiBiP2IrIiAiK2M6Y30sIiIpfTsKZDJjbWVkaWEuc2FmZVN0cmluZz1mdW5jdGlvbihhKXt2YXIgYj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtiLnRleHRDb250ZW50PWE7cmV0dXJuIGIuaW5uZXJUZXh0fTsKZDJjbWVkaWEuaHRtbEZpbGU9ZnVuY3Rpb24oYSxiKXt2YXIgYz13aW5kb3cubG9jYXRpb24uc2VhcmNoLmxlbmd0aCYmLTE8d2luZG93LmxvY2F0aW9uLnNlYXJjaC5pbmRleE9mKCJwYXRoPSIpP3dpbmRvdy5sb2NhdGlvbi5zZWFyY2g6d2luZG93LmxvY2F0aW9uLnBhdGhuYW1lO2M9Yy5zdWJzdHJpbmcoYy5sYXN0SW5kZXhPZigiLyIpKzEpO2M9ZDJjbWVkaWEuc2FmZVN0cmluZyhjKTt0cnl7dmFyIGQ9ZGVjb2RlVVJJQ29tcG9uZW50KGMpfWNhdGNoKGspe3ZhciBlPXsiJUMwIjoiJkFncmF2ZTsiLCIlQzEiOiImQWFjdXRlOyIsIiVDMiI6IiZBY2lyYzsiLCIlQzMiOiImQXRpbGRlOyIsIiVDNCI6IiZBdW1sOyIsIiVDNSI6IiZBcmluZzsiLCIlQzYiOiImQUVsaWc7IiwiJUM3IjoiJkNjZWRpbDsiLCIlQzgiOiImRWdyYXZlOyIsIiVDOSI6IiZFYWN1dGU7IiwiJUNBIjoiJkVjaXJjOyIsIiVDQiI6IiZFdW1sOyIsIiVDQyI6IiZJZ3JhdmU7IiwiJUNEIjoiJklhY3V0ZTsiLCIlQ0UiOiImSWNpcmM7IiwKIiVDRiI6IiZJdW1sOyIsIiVEMCI6IiZFVEg7IiwiJUQxIjoiJk50aWxkZTsiLCIlRDIiOiImT2dyYXZlOyIsIiVEMyI6IiZPYWN1dGU7IiwiJUQ0IjoiJk9jaXJjOyIsIiVENSI6IiZPdGlsZGU7IiwiJUQ2IjoiJk91bWw7IiwiJUQ4IjoiJk9zbGFzaDsiLCIlRDkiOiImVWdyYXZlOyIsIiVEQSI6IiZVYWN1dGU7IiwiJURCIjoiJlVjaXJjOyIsIiVEQyI6IiZVdW1sOyIsIiVERCI6IiZZYWN1dGU7IiwiJURFIjoiJlRIT1JOOyIsIiVERiI6IiZzemxpZzsiLCIlRTAiOiImYWdyYXZlOyIsIiVFMSI6IiZhYWN1dGU7IiwiJUUyIjoiJmFjaXJjOyIsIiVFMyI6IiZhdGlsZGU7IiwiJUU0IjoiJmF1bWw7IiwiJUU1IjoiJmFyaW5nOyIsIiVFNiI6IiZhZWxpZzsiLCIlRTciOiImY2NlZGlsOyIsIiVFOCI6IiZlZ3JhdmU7IiwiJUU5IjoiJmVhY3V0ZTsiLCIlRUEiOiImZWNpcmM7IiwiJUVCIjoiJmV1bWw7IiwiJUVDIjoiJmlncmF2ZTsiLCIlRUQiOiImaWFjdXRlOyIsIiVFRSI6IiZpY2lyYzsiLAoiJUVGIjoiJml1bWw7IiwiJUYwIjoiJmV0aDsiLCIlRjEiOiImbnRpbGRlOyIsIiVGMiI6IiZvZ3JhdmU7IiwiJUYzIjoiJm9hY3V0ZTsiLCIlRjQiOiImb2NpcmM7IiwiJUY1IjoiJm90aWxkZTsiLCIlRjYiOiImb3VtbDsiLCIlRjciOiImZGl2aWRlOyIsIiVGOCI6IiZvc2xhc2g7IiwiJUY5IjoiJnVncmF2ZTsiLCIlRkEiOiImdWFjdXRlOyIsIiVGQiI6IiZ1Y2lyYzsiLCIlRkMiOiImdXVtbDsiLCIlRkQiOiImeWFjdXRlOyIsIiVGRSI6IiZ0aG9ybjsiLCIlRkYiOiImeXVtbDsifTtkPWMucmVwbGFjZSgvJVswLTlBLUZdezJ9L2lnLGZ1bmN0aW9uKGgpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgZVtoXSlyZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KGgpO3ZhciBuPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTtuLnRleHRDb250ZW50PWVbaF07cmV0dXJuIG4uaW5uZXJUZXh0fSl9ZD1kLnN1YnN0cmluZygwLGQuaW5kZXhPZigiLmh0bSIpKTthJiYoZD1kLnJlcGxhY2UoLyAvZywKIl8iKS5yZXBsYWNlKC8nL2csIiIpLnJlcGxhY2UoIi5odG1sIiwiIikpO251bGwhPShhPWQubWF0Y2goL14oMTlbMC05XXsyfXwyMFswLTldezJ9KS0oW14tXSstW14tXSspKC4qKSQvKSkmJihkPWFbMl0rIi0iK2FbMV0rYVszXSwiRU5HTElTSCI9PSgiRU5HTElTSCI9PSQoIiNhY3RpdmVzaXRlbGFuZ3VhZ2UiKS52YWwoKT8iRU5HTElTSCI6IkZSRU5DSCIpJiZiJiYoZD1hWzFdKyItIithWzJdK2FbM10pKTtyZXR1cm4gZH07ZDJjbWVkaWEuaXNIb21lcGFnZT1mdW5jdGlvbigpe3ZhciBhPXdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZTtyZXR1cm4iLyI9PWF8fCIvZW5nLyI9PWF8fCIvZnIvIj09YX07ZDJjbWVkaWEucGFnZURlcGFydG1lbnQ9ZnVuY3Rpb24oKXt2YXIgYT0kKCIjZGVmYXVsdERlcGFydG1lbnQiKS52YWwoKTtyZXR1cm4iT1RIRVIiPT1hJiZkMmNtZWRpYS5pc0hvbWVwYWdlKCk\/IkhPTUVQQUdFIjphfTsKdmFyIGpzX2QyY19nZXRfdmFsPWpzX2QyY19nZXRfdmFsfHxmdW5jdGlvbihhKXt0cnl7cmV0dXJuKGVsPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGEpKT9lbC52YWx1ZToiIn1jYXRjaChiKXtyZXR1cm4gY29uc29sZSYmY29uc29sZS5sb2cmJmNvbnNvbGUubG9nKCJTeXN0ZW0gZmFpbGVkIHdoaWxlIHJldHJpZXZpbmcgcmVwbGFjZW1lbnQgdmFsdWU6ICIrYi5tZXNzYWdlLGIpLGF9fTtTdHJpbmcucHJvdG90eXBlLm5vRDJDUmVwbGFjZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLnZhbHVlT2YoKX07CmQyY0JHQ2xpY2s9ZnVuY3Rpb24oYSl7dmFyIGI9dGhpczskLmV4dGVuZChiLGEpO3RoaXMuc2V0PWZ1bmN0aW9uKGMpeyJ1bmRlZmluZWQiPT10eXBlb2YgYyYmKGM9ITEpO3ZhciBkPWIuYmdJbWdVcmwsZT1iLmJnSW1nUGF0aCxrPWIuYmdJbWdGaXhlZCxoPWIuYmdJbWdSZXNwb25zaXZlLG49Yi5tYWtlLHg9ZG9jdW1lbnQubG9jYXRpb24ucGF0aG5hbWUucmVwbGFjZSgvLS9nLCIiKSx2PSQoIiNhY3RpdmVzaXRlbGFuZ3VhZ2UiKS52YWwoKT8kKCIjYWN0aXZlc2l0ZWxhbmd1YWdlIikudmFsKCkudG9Mb3dlckNhc2UoKToiZnJlbmNoIixmPSIiLGc9ITE7MCE9YyYmKG49Yy50b0xvd2VyQ2FzZSgpKTt2YXIgbT1jPSIiO24\/ZS5oYXNPd25Qcm9wZXJ0eShuKT8oYz1lW25dLG09a1tuXStoW25dLGc9ITApOmUuaGFzT3duUHJvcGVydHkoImFsbCIpPyhjPWUuYWxsLG09ay5hbGwraC5hbGwsZz0hMCk6ZS5oYXNPd25Qcm9wZXJ0eSh2KSYmKGM9ZVt2XSxtPWtbdl0raFt2XSk6ZS5oYXNPd25Qcm9wZXJ0eSh2KSYmCjA9PWcmJihjPWVbdl0sbT1rW3ZdK2hbdl0pO2MmJihiLmJnSW1nPWMuc3BsaXQoIi8iKS5wb3AoKSwkKCJib2R5IikuYXR0cigic3R5bGUiLCJiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJyIrYysiJyk7IGJhY2tncm91bmQtcG9zaXRpb246IHRvcCBjZW50ZXI7IGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7IittKSk7Zm9yKHZhciBsIGluIGQpe2lmKC0xIT14LmluZGV4T2YobCx4KSl7Zj1kW2xdO2JyZWFrfWlmKGw9PXYpe2Y9ZFtsXTticmVha319MD09Zi5sZW5ndGgmJihkLmhhc093blByb3BlcnR5KG4pP2Y9ZFtuXTpkLmhhc093blByb3BlcnR5KCJhbGwiKSYmKGY9ZC5hbGwpKTswPGYubGVuZ3RoJiYoZD0kKHdpbmRvdykud2lkdGgoKS8yLSQoIi53cmFwcGVyIikud2lkdGgoKS8yLGU9JCh3aW5kb3cpLndpZHRoKCkvMiskKCIud3JhcHBlciIpLndpZHRoKCkvMiwkKCIjYmdDbGljazEiKS5yZW1vdmUoKSwkKCIjYmdDbGljazIiKS5yZW1vdmUoKSwkKCJib2R5IikuYXBwZW5kKCI8ZGl2IGlkPSdiZ0NsaWNrMScgc3R5bGU9J3otaW5kZXg6MTAwO2N1cnNvcjpwb2ludGVyO3dpZHRoOiIrCmQrInB4O2hlaWdodDoxMDAlO3Bvc2l0aW9uOmZpeGVkO2xlZnQ6MHB4O3RvcDowcHg7Jz48L2Rpdj4iKSwkKCJib2R5IikuYXBwZW5kKCI8ZGl2IGlkPSdiZ0NsaWNrMicgc3R5bGU9J3otaW5kZXg6MTAwO2N1cnNvcjpwb2ludGVyO3dpZHRoOiIrZCsicHg7aGVpZ2h0OjEwMCU7cG9zaXRpb246Zml4ZWQ7bGVmdDoiK2UrInB4O3RvcDowcHg7Jz48L2Rpdj4iKSwkKCIjYmdDbGljazEiKS5vbigiY2xpY2siLGZ1bmN0aW9uKCl7Yi5yZWRpcmVjdChmKX0pLCQoIiNiZ0NsaWNrMiIpLm9uKCJjbGljayIsZnVuY3Rpb24oKXtiLnJlZGlyZWN0KGYpfSkpfTt0aGlzLnJlc2V0PWZ1bmN0aW9uKGMpe2Iuc2V0KCl9O3RoaXMucmVkaXJlY3Q9ZnVuY3Rpb24oYyl7ImxpdmUiPT1iLmRlcGxveW1lbnRUeXBlJiYoZ2FUcmFjaygiX3RyYWNrRXZlbnQiLCJDbGlxdWVzIiwiSW1hZ2UtZGUtZm9uZCIsYi5iZ0ltZywxKSwiZnVuY3Rpb24iPT10eXBlb2YgYi5kMmNFdmVudCYmYi5kMmNFdmVudC5jYWxsKGIsCmIuYmdJbWcpKTt3aW5kb3cub3BlbihjKX07JCh3aW5kb3cpLm9uKCJyZXNpemUiLGIucmVzZXQpO3JldHVybiB0aGlzfTt2YXIgaW5qZWN0R29vZ2xlTWFwc0tleT1mdW5jdGlvbihhKXtsZXQgYj1udWxsO3JldHVybiBmdW5jdGlvbihjKXtpZihiKXJldHVybiBjKGIpO2EuYWpheCgiL2FqYXgvZ2V0R29vZ2xlTWFwc0tleSIpLmRvbmUoZnVuY3Rpb24oZCl7Yj0oZC5rZXk\/ZC5rZXk6IiIpLnJlcGxhY2UoL1teQS16MC05Xy1dL2csIiIpO2MoYil9KX19KGpRdWVyeSk7CmZ1bmN0aW9uIHJoc1Byb21vSW1hZ2UoYSl7dmFyIGI9dGhpcztiLmRhdGE9YTt2YXIgYz1bXSxkPS0xO2E9d2luZG93LmxvY2F0aW9uO2E9ZGVjb2RlVVJJQ29tcG9uZW50KGEucGF0aG5hbWUrYS5zZWFyY2gpLnRvTG93ZXJDYXNlKCk7Zm9yKHNlYXJjaCBpbiBiLmRhdGEpaWYoImRlZmF1bHQiPT1zZWFyY2h8fC0xIT1hLmluZGV4T2YoZGVjb2RlVVJJQ29tcG9uZW50KChzZWFyY2grIiIpLnRvTG93ZXJDYXNlKCkpKSlmb3IoaT0wO2k8Yi5kYXRhW3NlYXJjaF0ubGVuZ3RoO2krKyljLnB1c2goYi5kYXRhW3NlYXJjaF1baV0pO2Iucm90YXRlPWZ1bmN0aW9uKCl7KytkPmMubGVuZ3RoLTEmJihkPTApO3ZhciBlPWNbZF0saz0kKCI8aW1nIC8+IikuYXR0cih7c3JjOmUuaSxzdHlsZToid2lkdGg6MTAwJTsgbWF4LXdpZHRoOjI4MHB4OyBib3JkZXItcmFkaXVzOiA1cHg7IGN1cnNvcjpwb2ludGVyOyIsYWx0OiIifSk7JCgiZGl2I3JpZ2h0UHJvbW9JbWFnZSIpLmh0bWwoayk7bnVsbCE9CmUudSYmMDxlLnUubGVuZ3RoJiYkKCJkaXYjcmlnaHRQcm9tb0ltYWdlIikuYXR0cigib25jbGljayIsIndpbmRvdy5sb2NhdGlvbiA9ICciK2UudSsiJyIpOyQoImRpdiNyaWdodFByb21vSW1hZ2UiKS5zaG93KCk7MSE9Yy5sZW5ndGgmJnNldFRpbWVvdXQoYi5yb3RhdGUsZS5kZWxheSl9OzA8Yy5sZW5ndGgmJmIucm90YXRlKCl9ZnVuY3Rpb24gY2xlYW5UZXh0KGEpe2E9YS5yZXBsYWNlKC9bXHg2MF0vZywiJyIpO2E9YS5yZXBsYWNlKC\/igJkvZywiJyIpO2E9YS5yZXBsYWNlKC9gL2csIiciKTtyZXR1cm4gYT1hLnJlcGxhY2UoL1tcdTIwMTld4oCZL2csIiciKX0KZnVuY3Rpb24gZW5jb2RlVGV4dChhKXt2YXIgYj1hO3RyeXtiPSQuYmFzZTY0LmVuY29kZShhKX1jYXRjaChrKXtjb25zb2xlLmxvZyhrLm1lc3NhZ2Usayk7YT0iIjtmb3IodmFyIGM9MDtjPGIubGVuZ3RoO2MrKyl7dmFyIGQ9Yi5jaGFyQXQoYyksZT1kLmNoYXJDb2RlQXQoMCk7aWYoNDc8ZSYmNTg+ZXx8NjQ8ZSYmOTE+ZXx8OTY8ZSYmMTIzPmUpYSs9ZDtlbHNlIHRyeXskLmJhc2U2NC5lbmNvZGUoZCksYSs9ZH1jYXRjaChoKXt9fWI9JC5iYXNlNjQuZW5jb2RlKGEpfXJldHVybiBifWZ1bmN0aW9uIGNsZWFuQW5kRW5jb2RlVGV4dChhKXt0cnl7dmFyIGI9IiI7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBhKXJldHVybiIiO2I9InN0cmluZyIhPXR5cGVvZiBhP2EudG9TdHJpbmcoKTphO2I9Y2xlYW5UZXh0KGIpO3JldHVybiBiPWVuY29kZVRleHQoYil9Y2F0Y2goYyl7cmV0dXJuIGNvbnNvbGUubG9nKGMubWVzc2FnZSxjKSxhfX0KZnVuY3Rpb24gRXhQaG9uZShhKXtzd2l0Y2goYS50eXBlKXtjYXNlICJtb3VzZWVudGVyIjokKCIuZXh0ZW5kZWRQaG9uZSIpLnNob3coKTticmVhaztjYXNlICJtb3VzZWxlYXZlIjokKCIuZXh0ZW5kZWRQaG9uZSIpLmhpZGUoKX19ZnVuY3Rpb24gZ2V0UmVzaXplZEltYWdlcygpe2RlYnVnRW5hYmxlZCgpO3JldHVybiExfWZ1bmN0aW9uIGNoYW5nZUhvbWVBY3Rpb25CYWNrSW1hZ2UoYSxiKXskKGEpLmNzcyh7YmFja2dyb3VuZDoidXJsKCIrYisiKSIsYmFja2dyb3VuZFJlcGVhdDoibm8tcmVwZWF0IixiYWNrZ3JvdW5kU2l6ZToiMjQwcHggMTIxcHgifSl9dmFyIF9fY3VycmVudFRocmVhc2hvbGQ7CmZ1bmN0aW9uIHRocmVhZGhvbGRTY3JvbGxQZXJjZW50KCl7X19jdXJyZW50VGhyZWFzaG9sZHx8KF9fY3VycmVudFRocmVhc2hvbGQ9KCQod2luZG93KS5oZWlnaHQoKSskKGRvY3VtZW50KS5zY3JvbGxUb3AoKSkvJChkb2N1bWVudCkuaGVpZ2h0KCksc2V0VGltZW91dCgiX19jdXJyZW50VGhyZWFzaG9sZCA9IG51bGwiLDMzMykpO3JldHVybiBfX2N1cnJlbnRUaHJlYXNob2xkfQpmdW5jdGlvbiB0aHJlc2hvbGRFeGVjKGEsYixjKXt2YXIgZD1udWxsO2M9Yz9jOltdO2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBhKXt2YXIgZT1NYXRoLnJvdW5kKDFFNCphKS8xRTQ7MTxlJiYoZS89MTAwKTthPWZ1bmN0aW9uKCl7cmV0dXJuIGV9fXZhciBrPWZ1bmN0aW9uKCl7aWYodGhyZWFkaG9sZFNjcm9sbFBlcmNlbnQoKT5hKCkpe3RyeXtiLmFwcGx5KG51bGwsYyl9Y2F0Y2goaCl7Y29uc29sZS5sb2coaCl9ZD1jbGVhckludGVydmFsKGQpfX07JChmdW5jdGlvbigpe3NldFRpbWVvdXQoZnVuY3Rpb24oKXtkPXNldEludGVydmFsKGssMzMzKX0sMkUzKX0pfQpmdW5jdGlvbiBzY3JvbGx1cEV4ZWMoYSl7dmFyIGI9bnVsbCxjPTAsZD1mdW5jdGlvbigpeyQod2luZG93KS5vbigic2Nyb2xsIixmdW5jdGlvbihlKXtlPSQodGhpcykuc2Nyb2xsVG9wKCk7ZTxjJiYoYS5jYWxsKG51bGwpLGI9Y2xlYXJJbnRlcnZhbChiKSk7Yz1lfSl9OyQoZnVuY3Rpb24oKXtiPXNldEludGVydmFsKGQsMzMzKX0pfWZ1bmN0aW9uIGluVmlld0V4ZWMoYSxiKXt0aHJlc2hvbGRFeGVjKGZ1bmN0aW9uKCl7dmFyIGM9JChhKTt0cnl7cmV0dXJuIWMubGVuZ3RofHxjLmlzKCI6aGlkZGVuIil8fDA9PWMub2Zmc2V0KCkudG9wPy45NTpjLm9mZnNldCgpLnRvcC8kKGRvY3VtZW50KS5oZWlnaHQoKX1jYXRjaChkKXtyZXR1cm4uOTV9fSxiLFthXSl9dmFyIGx0X0lFOT0iZnVuY3Rpb24iIT10eXBlb2YgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcj8hMDohMSxsdF9JRTExPTA9PSFkb2N1bWVudC5hbGw7CmZ1bmN0aW9uIGlzSUUoKXt2YXIgYT1kb2N1bWVudC5kb2N1bWVudE1vZGU7dHJ5e2RvY3VtZW50LmRvY3VtZW50TW9kZT0iIn1jYXRjaChjKXt9dmFyIGI9Im51bWJlciI9PXR5cGVvZiBkb2N1bWVudC5kb2N1bWVudE1vZGV8fChuZXcgRnVuY3Rpb24oInJldHVybi8qQGNjX29uIUAqLyExIikpKCk7dHJ5e2RvY3VtZW50LmRvY3VtZW50TW9kZT1hfWNhdGNoKGMpe31yZXR1cm4gYn12YXIgdD0wO19fc3RhcnQ9ZnVuY3Rpb24oKXt0PShuZXcgRGF0ZSkuZ2V0VGltZSgpfTtfX3N0b3A9ZnVuY3Rpb24oKXt2YXIgYT0obmV3IERhdGUpLmdldFRpbWUoKTtjb25zb2xlLmxvZygidG9vayIsKGEtdCkvMUUzKX07dmFyIGFsZXJ0RmFsbGJhY2s9ITA7aWYoInVuZGVmaW5lZCI9PT10eXBlb2YgY29uc29sZXx8InVuZGVmaW5lZCI9PT10eXBlb2YgY29uc29sZS5sb2cpY29uc29sZT17fSxjb25zb2xlLmxvZz1hbGVydEZhbGxiYWNrP2Z1bmN0aW9uKGEpe306ZnVuY3Rpb24oKXt9OwpBcnJheS5wcm90b3R5cGUubWFwfHwoQXJyYXkucHJvdG90eXBlLm1hcD1mdW5jdGlvbihhLGIpe3ZhciBjLGQ7aWYobnVsbD09dGhpcyl0aHJvdyBuZXcgVHlwZUVycm9yKCIgdGhpcyBpcyBudWxsIG9yIG5vdCBkZWZpbmVkIik7dmFyIGU9T2JqZWN0KHRoaXMpLGs9ZS5sZW5ndGg+Pj4wO2lmKCJmdW5jdGlvbiIhPT10eXBlb2YgYSl0aHJvdyBuZXcgVHlwZUVycm9yKGErIiBpcyBub3QgYSBmdW5jdGlvbiIpOzE8YXJndW1lbnRzLmxlbmd0aCYmKGM9Yik7dmFyIGg9QXJyYXkoayk7Zm9yKGQ9MDtkPGs7KXtpZihkIGluIGUpe3ZhciBuPWVbZF07bj1hLmNhbGwoYyxuLGQsZSk7aFtkXT1ufWQrK31yZXR1cm4gaH0pO0FycmF5LnByb3RvdHlwZS5pbmRleE9mfHwoQXJyYXkucHJvdG90eXBlLmluZGV4T2Y9ZnVuY3Rpb24oYSxiKXtiPWJ8fDA7Zm9yKHZhciBjPXRoaXMubGVuZ3RoO2I8YztiKyspaWYodGhpc1tiXT09PWEpcmV0dXJuIGI7cmV0dXJuLTF9KTsKQXJyYXkucHJvdG90eXBlLnJlZHVjZXx8T2JqZWN0LmRlZmluZVByb3BlcnR5KEFycmF5LnByb3RvdHlwZSwicmVkdWNlIix7dmFsdWU6ZnVuY3Rpb24oYSl7aWYobnVsbD09PXRoaXMpdGhyb3cgbmV3IFR5cGVFcnJvcigiQXJyYXkucHJvdG90eXBlLnJlZHVjZSBjYWxsZWQgb24gbnVsbCBvciB1bmRlZmluZWQiKTtpZigiZnVuY3Rpb24iIT09dHlwZW9mIGEpdGhyb3cgbmV3IFR5cGVFcnJvcihhKyIgaXMgbm90IGEgZnVuY3Rpb24iKTt2YXIgYj1PYmplY3QodGhpcyksYz1iLmxlbmd0aD4+PjAsZD0wO2lmKDI8PWFyZ3VtZW50cy5sZW5ndGgpdmFyIGU9YXJndW1lbnRzWzFdO2Vsc2V7Zm9yKDtkPGMmJiEoZCBpbiBiKTspZCsrO2lmKGQ+PWMpdGhyb3cgbmV3IFR5cGVFcnJvcigiUmVkdWNlIG9mIGVtcHR5IGFycmF5IHdpdGggbm8gaW5pdGlhbCB2YWx1ZSIpO2U9YltkKytdfWZvcig7ZDxjOylkIGluIGImJihlPWEoZSxiW2RdLGQsYikpLGQrKztyZXR1cm4gZX19KTsKQXJyYXkucHJvdG90eXBlLmZvckVhY2h8fChBcnJheS5wcm90b3R5cGUuZm9yRWFjaD1mdW5jdGlvbihhKXt2YXIgYixjO2lmKG51bGw9PXRoaXMpdGhyb3cgbmV3IFR5cGVFcnJvcigidGhpcyBpcyBudWxsIG9yIG5vdCBkZWZpbmVkIik7dmFyIGQ9T2JqZWN0KHRoaXMpLGU9ZC5sZW5ndGg+Pj4wO2lmKCJmdW5jdGlvbiIhPT10eXBlb2YgYSl0aHJvdyBuZXcgVHlwZUVycm9yKGErIiBpcyBub3QgYSBmdW5jdGlvbiIpOzE8YXJndW1lbnRzLmxlbmd0aCYmKGI9YXJndW1lbnRzWzFdKTtmb3IoYz0wO2M8ZTspe2lmKGMgaW4gZCl7dmFyIGs9ZFtjXTthLmNhbGwoYixrLGMsZCl9YysrfX0pO2Z1bmN0aW9uIGdldERhdGFBdHRyaWJ1dGVzKGEpe3JldHVybiBhLmRhdGFzZXR8fFtdLnNsaWNlLmNhbGwoYS5hdHRyaWJ1dGVzKS5yZWR1Y2UoZnVuY3Rpb24oYixjKXtyZXR1cm4vXmRhdGEtLy50ZXN0KGMubmFtZSkmJihiW2MubmFtZS5zdWJzdHIoNSldPWMudmFsdWUpLGJ9LHt9KX0KZnVuY3Rpb24gZ2V0UGFyYW1ldGVyQnlOYW1lKGEpe2E9YS5yZXBsYWNlKC9bXFtdLywiXFxbIikucmVwbGFjZSgvW1xdXS8sIlxcXSIpO2E9KG5ldyBSZWdFeHAoIltcXD8mXSIrYSsiPShbXiYjXSopIikpLmV4ZWMobG9jYXRpb24uc2VhcmNoKTtyZXR1cm4gbnVsbD09YT8iIjpkZWNvZGVVUklDb21wb25lbnQoYVsxXS5yZXBsYWNlKC9cKy9nLCIgIikpfQpmdW5jdGlvbiBzaG93VHJhZGVJblBvcHVwKGEpe2lmKDA9PSQoIiN0cmFkZWluTGlua1BvcHVwQ29udGFpbmVyIikubGVuZ3RoKXt2YXIgYj0iNzUwcHgiLGM9IjU3MHB4IjsxPT0vTW9iaS8udGVzdChuYXZpZ2F0b3IudXNlckFnZW50KSYmKGI9IjMwMHB4IixjPSI2MDBweCIpOyQoImJvZHkiKS5hcHBlbmQoJzxkaXYgaWQ9InRyYWRlaW5MaW5rUG9wdXBDb250YWluZXIiIHN0eWxlPSJ3aWR0aDogJytiKyI7IGhlaWdodDogIitjKyciPjxkaXYgY2xhc3M9ImNsb3NlLXJldmVhbC1tb2RhbCI+JiMyMTU7PC9kaXY+PGlmcmFtZSBzcmM9IicrYSsnIiBhbGxvd3RyYW5zcGFyZW5jeT0idHJ1ZSIgIGNsYXNzPSItdDAgLWwwIC13MTAwcCAtaDEwMHAiIGlkPSJ0cmFkZWluTGlua1BvcHVwSWZyYW1lIj48L2lmcmFtZT48L2Rpdj4nKX0kKCIjdHJhZGVpbkxpbmtQb3B1cENvbnRhaW5lciIpLnBvcHVwaXplKCkuc2V0VHJpZ2dlcigiY2xpY2siKS5vcGVuKCl9CmZ1bmN0aW9uIGN1cnJlbnRQcm9tb1JlZGlyZWN0KCl7ZXZlbnQucHJldmVudERlZmF1bHQoKTtzd2l0Y2goITApe2Nhc2UgImZ1bmN0aW9uIj09dHlwZW9mIHNob3dQb3B1cFdpZGdldDpzaG93UG9wdXBXaWRnZXQoKTticmVhaztjYXNlICJ1bmRlZmluZWQiIT10eXBlb2YgJCgiI1ZpZXdQcm9tb0FjdGlvbkJveExpbmsiKS5hdHRyKCJocmVmIik6JCgiI1ZpZXdQcm9tb0FjdGlvbkJveExpbmsiKVswXS5jbGljaygpO2JyZWFrO2Nhc2UgInVuZGVmaW5lZCIhPXR5cGVvZiAkKCIjcHJvbW90aW9uU2lkZVZCdXR0b24gYSIpLmF0dHIoImhyZWYiKTokKCIjcHJvbW90aW9uU2lkZVZCdXR0b24gYSIpWzBdLmNsaWNrKCk7YnJlYWs7Y2FzZSAidW5kZWZpbmVkIiE9dHlwZW9mICQoIiNWaWV3Q3VzdG9tUHJvbW9BY3Rpb25Cb3hMaW5rIikuYXR0cigiaHJlZiIpOiQoIiNWaWV3Q3VzdG9tUHJvbW9BY3Rpb25Cb3hMaW5rIilbMF0uY2xpY2soKX19CmZ1bmN0aW9uIHNob3dOZXdSZWJhdGVDb2RlUG9wdXAoKXswIT0kKCIjZGlzYWJsZVBvcHVwcyIpLmxlbmd0aCYmMCE9JCgiI2Rpc2FibGVQb3B1cHMiKS52YWwoKXx8JCgiI0ltYWdlUG9wdXBDb250YWluZXJfbmV3cmViYXRlIikucG9wdXBpemUoKS5zZXRUcmlnZ2VyKCJjbGljayIpLm9wZW4oKX1mdW5jdGlvbiBzaG93TmV3QmVzdFByaWNlVmRwUG9wdXAoKXswIT0kKCIjZGlzYWJsZVBvcHVwcyIpLmxlbmd0aCYmMCE9JCgiI2Rpc2FibGVQb3B1cHMiKS52YWwoKXx8JCgiI2Jlc3RQcmljZVZkcE5ld1BvcHVwQ29udGFpbmVyIikucG9wdXBpemUoKS5zZXRUcmlnZ2VyKCJjbGljayIpLm9wZW4oKX0KZnVuY3Rpb24gcHJpbnRfcHJvbW9fcHJldihhKXt2YXIgYj0hMSxjPSQoYSkucGFyZW50cygiLnByb21vcyIpO2E9Yy5maW5kKCIucHJvbW8tdGl0bGUiKS5odG1sKCk7dmFyIGQ9Yy5maW5kKCIucHJvbW8tZGVzYyIpLmh0bWwoKTtjPWMuZmluZCgiLnByb21vLWltYWdlIGltZyIpLmF0dHIoImRhdGEtcHJpbnQtc3JjIik7JCgiI3Byb21vVG9QcmludCIpLnJlbW92ZSgpOyQoIiNwcm9tb1RvUHJpbnRXcmFwIikucmVtb3ZlKCk7JCgiYm9keSIpLmFwcGVuZCgnPGRpdiBjbGFzcz0idG9wcmludCIgaWQ9InByb21vVG9QcmludCI+PGltZyBib3JkZXI9IjAiIHN0eWxlPSJ3aWR0aDoxMDAlOyIgc3JjPSInK2MrJyIgYWx0PSIiIGlkPSJwcm9tb0ltZyI+PGJyPjxicj48Yj4nK2ErIjwvYj48YnI+IitkKyI8L2Rpdj4iKTskKCIjcHJvbW9JbWciKS5vbigibG9hZCIsZnVuY3Rpb24oKXtifHwkKCIjcHJvbW9Ub1ByaW50IikucHJpbnRFbGVtZW50KCk7Yj0hMH0pO3NldFRpbWVvdXQoZnVuY3Rpb24oKXtifHwKJCgiI3Byb21vVG9QcmludCIpLnByaW50RWxlbWVudCgpO2I9ITB9LDFFMyk7cmV0dXJuITF9ZnVuY3Rpb24gZ2V0TXVsdGlwbGVBZGRyZXNzUGhvbmUoYSl7JCgiLm11bHRpQWRkcmVzc1Bob25lIikuc2xpZGVVcCgpO2E9JCgiLm11bHRpQWRkcmVzc1Bob25lIiwkKCQoYSkucGFyZW50KCkpKTskKGEpLmlzKCI6aGlkZGVuIik\/JChhKS5zbGlkZURvd24oKTokKGEpLnNsaWRlVXAoKX0KZnVuY3Rpb24gYWRkR2VuZXJhbFN0eWxlKCl7dmFyIGE9JCgiI0FETUlOX0dFTkVSQUxfQkdfQ09MT1IiKS52YWwoKSxiPSQoIiNkZWZhdWx0X2JsYWNrX3RleHQiKS52YWwoKTtpZigiIzAwMDAwMCIhPWJ8fCIjMDAwIiE9YikkKCIuVXNlZFZkcDJNb2JpbGUgI2JyZWFkY3J1bWJzIikuYWRkQ2xhc3MoInRleHRDb2xvciIpLCQoImkuZmEtZmFjZWJvb2stc3F1YXJlIikuYWRkQ2xhc3MoInRleHRDb2xvciIpLCQoIi51c2VkLWRldGFpbHMgLmRlZmF1bHQgZGl2OmZpcnN0IikuYWRkQ2xhc3MoInRleHRDb2xvciIpOyIjZmZmZmZmIiE9YiYmIiNmZmYiIT1ifHwkKCIuVXNlZFNycDJNb2JpbGUgLmRlZmF1bHQgLm1ha2VNb2RlbFllYXIiKS5hZGRDbGFzcygidGV4dENvbG9yVXNlZFNSUE1vYmlsZSIpOyIjZmZmZmZmIiE9YSYmKCQoIi5vbGQtZGV0YWlscy10ciIpLmFkZENsYXNzKCJiZ05vbmUiKSwkKCIjc3BlY1RpdGxlIikuYWRkQ2xhc3MoImJnTm9uZSIpLCQoIi5Vc2VkVmRwMk1vYmlsZSIpLmFkZENsYXNzKCJvdGhlckJHIikpfQpmdW5jdGlvbiBhcHBlbmRUcmFkZUJvb3N0QmFubmVyKCl7fWRvY1JlYWR5QXJyLnB1c2goKCk9PnthcHBlbmRUcmFkZUJvb3N0QmFubmVyKCk7YWRkR2VuZXJhbFN0eWxlKCl9KTsKalF1ZXJ5KGZ1bmN0aW9uKGEpe2EoIiNuYXYiKS5hZGRDbGFzcygibmF2Iik7KGZ1bmN0aW9uKCl7TENfQVBJPXdpbmRvdy5MQ19BUEl8fHt9O0xDX0FQSS5vbl90aWNrZXRfY3JlYXRlZD1mdW5jdGlvbihtKXt0cnl7KGZ1bmN0aW9uKGwpe251bGwhPWwmJihsPSc8aW1nIHNyYz0iaHR0cHM6Ly9zdGF0cy5kMmNtZWRpYS5jYS9zZXJ2aWNlL2NvbnRhY3QuZ2lmP3RjPScrKG0udGlja2V0X2lkKyImdT0iK2wpKyciIHN0eWxlPSJ3aWR0aDoxcHg7aGVpZ2h0OjFweDtyaWdodDoxMHB4O3RvcDoxMHB4O3Bvc2l0aW9uOmFic29sdXRlOyIgLz4nLGEoImJvZHkiKS5hcHBlbmQobCkpfSkoZnVuY3Rpb24oKXt2YXIgbD0idW5kZWZpbmVkIiE9PXR5cGVvZiB3aW5kb3cuYWN0aXZlUHJvZmlsZUlEP3dpbmRvdy5hY3RpdmVQcm9maWxlSUQ6bnVsbDtyZXR1cm4gbnVsbD09bD9Db29raWVzLmdldCgidXVpZCIpOmx9KCkpfWNhdGNoKGwpe319fSkoKTtpZigiZnVuY3Rpb24iPT10eXBlb2Ygb25Db25maXJtU3VibWl0KWEoIi5jb25maXJtX2h0bWwiKS5vbigic3VibWl0IiwKb25Db25maXJtU3VibWl0KTt0cnl7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBhKCIjc2xpZGVyLm5pdm9TbGlkZXIiKS5hdHRyKCJpZCIpKXt2YXIgYj0hMSxjPSExLGQ9ITEsZT0hMSxrPSExLGg9ITEsbj0xMDAseD0xPGEoIiNzbGlkZXIubml2b1NsaWRlciBhIikubGVuZ3RoPyEwOiExO2EoIiNiYW5uZXJfc2VhcmNoX2Jhcl9jb250YWluZXIiKS5sZW5ndGgmJihoPWs9ZT1kPWM9Yj0hMCxuPWEoIiNCQU5ORVJfU0VBUkNIX0JBUl9WSURFT19PUEFDSVRZIikubGVuZ3RoP2EoIiNCQU5ORVJfU0VBUkNIX0JBUl9WSURFT19PUEFDSVRZIikudmFsKCk6MTAwKTtkb2NSZWFkeUFyci5wdXNoKCgpPT57c2V0VGltZW91dChmdW5jdGlvbigpe2EoIiNzbGlkZXIubml2b1NsaWRlciIpLm5pdm9TbGlkZXIoe2VmZmVjdDoiZmFkZSIsYmVmb3JlQ2hhbmdlOmZ1bmN0aW9uKCl7YSgiI3BhcmFsbGF4V3JhcHBlciIpLmVubGxheCgpfSxhZnRlckNoYW5nZTpmdW5jdGlvbigpe2EoIiNzbGlkZXIubml2b1NsaWRlciIpLnRyaWdnZXIoIm5pdm9TbGlkZXJDaGFuZ2VkIil9LAphZnRlckxvYWQ6ZnVuY3Rpb24oKXthKCIjc2xpZGVyLm5pdm9TbGlkZXIiKS50cmlnZ2VyKCJuaXZvU2xpZGVyTG9hZGVkIik7YSgiI3BhcmFsbGF4V3JhcHBlciIpLmVubGxheCgpO2EoIiNiYW5uZXJfc2VhcmNoX2Jhcl9jb250YWluZXIiKS5sZW5ndGgmJihhKCIjc2xpZGVyLm5pdm9TbGlkZXIiKS5kYXRhKCJuaXZvOnZhcnMiKS5zdG9wLGEoIi5uaXZvLWNvbnRyb2xOYXYiKS5oaWRlKCksYSgiLm5pdm8tZGlyZWN0aW9uTmF2IikuaGlkZSgpLHRoaXMuc3RhcnRZb3V0dWJlKCkpfSxtYW51YWxBZHZhbmNlOmIsdmlkZW9Pbkxvb3A6YyxoaWRlQ29udHJvbDpkLGhpZGVJbmZvOmUsZnVsbFdpZHRoOmssbXV0ZVZpZGVvOmgsdmlkZW9CcmlnaHRuZXNzOm4sY29udHJvbE5hdjp4LGRpcmVjdGlvbk5hdjp4LHNob3dEaXNjbGFpbWVyOiEwfSl9LDVFMyl9KX1pZigidW5kZWZpbmVkIiE9dHlwZW9mIGEoIi5leHRlbmRlZFBob25lVHJpZ2dlciIpLmF0dHIoImlkIikpYSgiLmV4dGVuZGVkUGhvbmVUcmlnZ2VyIikub24oIm1vdXNlZW50ZXIiLApFeFBob25lKS5vbigibW91c2VsZWF2ZSIsRXhQaG9uZSk7dmFyIHY9ZnVuY3Rpb24oKXt9O2EoIi50cmFkZWluTGluayIpLm9uKCJjbGljayIsZnVuY3Rpb24oKXtpZihhKHRoaXMpLmF0dHIoInRhcmdldFVSSSIpJiY2PGEodGhpcykuYXR0cigidGFyZ2V0VVJJIikubGVuZ3RoKXJldHVybiBzaG93VHJhZGVJblBvcHVwKGEodGhpcykuYXR0cigidGFyZ2V0VVJJIikpLCExfSk7YSgiLnVwX21lbnUiKS5vbmUoIm1vdXNlb3ZlciIsdik7c2V0VGltZW91dCh2LDFFNCk7KGZ1bmN0aW9uKCl7aWYoMCE9YSgiI01haW5NZW51X05FVyIpLmxlbmd0aCl7dmFyIHE9YSgiLmltZ19tZW51LnVwX21lbnUgdWwubmF2ID4gbGkjTWFpbk1lbnVfTkVXID4gdWwuc3ViID4gbGkuZmlyc3RJdGVtIikscj0hMTswIT1xLmxlbmd0aCYmKGEoIiNNYWluTWVudV9ORVciKS5maW5kKCIucHJpY2UiKS5jc3MoImN1cnNvciIsInBvaW50ZXIiKS5vbigiY2xpY2siLGZ1bmN0aW9uKCl7dmFyIHA9YSh0aGlzKS5zaWJsaW5ncygpLmZpcnN0KCk7CndpbmRvdy5sb2NhdGlvbj1wLmF0dHIoImhyZWYiKX0pLGEoIiNNYWluTWVudV9ORVciKS5vbigibW91c2VlbnRlciIsZnVuY3Rpb24oKXtjbGVhclRpbWVvdXQocik7cS5hZGRDbGFzcygiaG92ZXIiKX0pLHEuc2libGluZ3MoKS5vbigibW91c2VlbnRlciIsZnVuY3Rpb24oKXtjbGVhclRpbWVvdXQocik7cS5yZW1vdmVDbGFzcygiaG92ZXIiKX0pLm9uKCJtb3VzZWxlYXZlIixmdW5jdGlvbigpe3I9c2V0VGltZW91dChmdW5jdGlvbigpe3EuYWRkQ2xhc3MoImhvdmVyIil9LDMwMCl9KSl9fSkoKTthKCJpbWdbZXJyb3JpbWddIikub24oImVycm9yIixmdW5jdGlvbigpe3ZhciBxPWEodGhpcyk7cS5hdHRyKCJzcmMiLHEuYXR0cigiZXJyb3JpbWciKSl9KTtjb25zdCBtPWEod2luZG93KSxsPWEoIi51cF9tZW51Iik7aWYobC5sZW5ndGgmJiFsLmhhc0NsYXNzKCJub2xvY2siKSl7bGV0IHE9bC5vZmZzZXQoKS50b3Ascj0hMTthKGRvY3VtZW50KS5vbigic2Nyb2xsIiwoKT0+e3J8fAood2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+e3ZhciBwPW0uc2Nyb2xsVG9wKCksdz1sLmhhc0NsYXNzKCJmaXhlZCIpO3cmJnA8cT9sLnJlbW92ZUNsYXNzKCJmaXhlZCIpOiF3JiZwPnEmJmwuYWRkQ2xhc3MoImZpeGVkIik7KHA9bC5oYXNDbGFzcygiZml4ZWQiKSkmJmEoIiNhbGVydE1zZ0NvbnRhaW5lciIpLmlzKCI6dmlzaWJsZSIpP2wuY3NzKHt0b3A6YSgiI2FsZXJ0TXNnQ29udGFpbmVyIikub3V0ZXJIZWlnaHQoKSsicHgifSk6bC5hdHRyKCJzdHlsZSIsIiIpO3c9YSgiLnB1bGxvdXRzLnNpZGVfdG9wOnZpc2libGUiKTtwJiYwPHcubGVuZ3RoPyh3LmZpbHRlcigiLnB1bGxvdXQtb3BlbmVkIikuY3NzKHt0b3A6bC5oZWlnaHQoKSsicHgifSksdy5maWx0ZXIoIi5wdWxsb3V0LWNsb3NlZCIpLmVhY2goZnVuY3Rpb24oKXt2YXIgej1hKHRoaXMpLEQ9Z2V0X3Bvdyh6LmF0dHIoImlkIikpOyF6LmRhdGEoInBvc1kiKSYmei5kYXRhKCJwb3NZIiwtRC5wb3NpdGlvbik7CkQ9ei5kYXRhKCJwb3NZIikrbC5oZWlnaHQoKTt6LmNzcyh7dG9wOkQrInB4In0pfSkpOih3LmZpbHRlcigiLnB1bGxvdXQtb3BlbmVkIikuY3NzKHt0b3A6MH0pLHcuZmlsdGVyKCIucHVsbG91dC1jbG9zZWQiKS5kYXRhKCJwb3NZIikmJncuZmlsdGVyKCIucHVsbG91dC1jbG9zZWQiKS5lYWNoKGZ1bmN0aW9uKCl7YSh0aGlzKS5jc3Moe3RvcDphKHRoaXMpLmRhdGEoInBvc1kiKSsicHgifSl9KSk7cj0hMX0pLHI9ITApfSl9dj1mdW5jdGlvbigpe2lmKDA9PWEoIiN0cmFkZWluQmFyRmxvYXQiKS5sZW5ndGgpe2EoImJvZHkiKS5hcHBlbmQoJzxkaXYgaWQ9InRyYWRlaW5CYXJGbG9hdCIgc3R5bGU9InRleHQtYWxpZ246Y2VudGVyO3Bvc2l0aW9uOiBmaXhlZDt3aWR0aDogMTAwJTt6LWluZGV4OiAxMDA7ZGlzcGxheTpub25lOyI+PC9kaXY+Jyk7YSgiI3RyYWRlSW5CYXIiKS5jbG9uZSghMCwhMCkuYXBwZW5kVG8oIiN0cmFkZWluQmFyRmxvYXQiKS50cmlnZ2VyKCJ0cmFkZUluQmFyLmNsb25lZCIpOwppZihhKCIjdHJhZGVJbkJhclN0aWNreUJvdHRvbSIpLmxlbmd0aCYmIjEiPT1hKCIjdHJhZGVJbkJhclN0aWNreUJvdHRvbSIpLnZhbCgpKXthKCIjdHJhZGVpbkJhckZsb2F0IikuY3NzKCJib3R0b20iLCItMnB4Iik7dmFyIHE9YSgiLmNlcnRpZmllZC1mb290ZXIiKS5oZWlnaHQoKSxyPWEoIiN0cmFkZWluQmFyRmxvYXQiKS5oZWlnaHQoKTthKCIuY2VydGlmaWVkLWZvb3RlciIpLmhlaWdodChxK3IpfWVsc2V7cT1hKCIjdHJhZGVpbkJhckZsb2F0Iik7cj1xLmNzczt2YXIgcD0iMSI9PWEoIiNtZW51TG9jayIpLnZhbCgpPzQ4OjA7MDxhKCIjYWxlcnRNc2dDb250YWluZXIiKS5sZW5ndGgmJmEoIiNhbGVydE1zZ0NvbnRhaW5lciIpLmlzKCI6dmlzaWJsZSIpJiYocCs9YSgiI2FsZXJ0TXNnQ29udGFpbmVyIikub3V0ZXJIZWlnaHQoKSk7ci5jYWxsKHEsInRvcCIscCl9YSgiI3RyYWRlaW5CYXJGbG9hdCAuLXBiMTAiKS5jc3Moe2Rpc3BsYXk6ImlubGluZS10YWJsZSIsd2lkdGg6YSgiI21haW5EaXYiKS53aWR0aCgpfSl9cT0KIm5ld2NhcmRldGFpbC5odG1sIj09YSgiI1BBR0VJRCIpLnZhbCgpfHwiY2FyZGV0YWlsLmh0bWwiPT1hKCIjUEFHRUlEIikudmFsKCk7cj0ibmV3Y2FyZGV0YWlsLmh0bWwiPT1hKCIjUEFHRUlEIikudmFsKCk\/ITA6ITE7cD0wPGEoIi5tYWluRGl2QWRqdXN0SGVhZGVyIikubGVuZ3RoPyEwOiExO2EoIiN0cmFkZUluQmFyIikuaXNJblZpZXdwb3J0KCl8fHE\/cT8ocj9hKCIubmV3VmRwQWN0aW9ucyIpLmlzQWJvdmVWaWV3cG9ydCgyMDApOmEoIi51c2VkVmRwQWN0aW9ucyIpLmlzQWJvdmVWaWV3cG9ydCgyMDApKT9hKCIjdHJhZGVpbkJhckZsb2F0IikuaGlkZSgpOmEoIiN0cmFkZWluQmFyRmxvYXQiKS5zaG93KCk6YSgiI3RyYWRlaW5CYXJGbG9hdCIpLmhpZGUoKToocCYmIWEoIiN0cmFkZUluQmFyIikuaXNBYm92ZVZpZXdwb3J0KDIwMCl8fCFwKSYmYSgiI3RyYWRlaW5CYXJGbG9hdCIpLnNob3coKTswPGEoIiNhbGVydE1zZ0NvbnRhaW5lciIpLmxlbmd0aCYmYSgiI2FsZXJ0TXNnQ29udGFpbmVyIikuaXMoIjpoaWRkZW4iKSYmCjQ4IT1hKCIjdHJhZGVpbkJhckZsb2F0IikuY3NzKCJ0b3AiKSYmYSgiI3RyYWRlSW5CYXJTdGlja3lCb3R0b20iKS5sZW5ndGgmJiIxIiE9YSgiI3RyYWRlSW5CYXJTdGlja3lCb3R0b20iKS52YWwoKSYmYSgiI3RyYWRlaW5CYXJGbG9hdCIpLmNzcygidG9wIiw0OCl9O2Z1bmN0aW9uIHUocSxyKXt2YXIgcD0wO3JldHVybiBmdW5jdGlvbigpe2NsZWFyVGltZW91dChwKTtwPXNldFRpbWVvdXQocSxyKX19aWYoYSgiI3RyYWRlSW5CYXIiKS5sZW5ndGgpYShkb2N1bWVudCkub24oInNjcm9sbCIsdSh2LDEwMCkpO3ZhciBmPWEoInVsLm5hdiA+IGxpID4gdWwgPiBsaSA+IHVsIik7Zi5lYWNoKGZ1bmN0aW9uKCl7YSh0aGlzKS5wYXJlbnQoKS5vbigibW91c2VlbnRlciIsZnVuY3Rpb24ocSl7YSgidWwiLHRoaXMpLnNjcm9sbFRvcCgwKX0pfSk7Zi5vbigiRE9NTW91c2VTY3JvbGwgbW91c2V3aGVlbCIsZnVuY3Rpb24ocSl7dmFyIHI9YSh0aGlzKSxwPXRoaXMuc2Nyb2xsVG9wLHc9dGhpcy5zY3JvbGxIZWlnaHQsCno9dz50aGlzLmNsaWVudEhlaWdodCxEPXIuaGVpZ2h0KCksQz1xLm9yaWdpbmFsRXZlbnQ7Qz0iRE9NTW91c2VTY3JvbGwiPT1xLnR5cGU\/LTQwKkMuZGV0YWlsOkMud2hlZWxEZWx0YTt2YXIgRT0wPEM7aWYoIXopcmV0dXJuITA7ej1mdW5jdGlvbihHKXtyLnNjcm9sbFRvcChHKTtxLnN0b3BQcm9wYWdhdGlvbigpO3EucHJldmVudERlZmF1bHQoKTtxLnJldHVyblZhbHVlPSExO3JldHVybiEwfTtyZXR1cm4hKCFFJiYtQz53LUQtcCYmeih3KXx8RSYmQz5wJiZ6KDApKX0pfWNhdGNoKG0pe2NvbnNvbGUubG9nKCJFcnJvciIsbSl9aWYoYSgiLnVwX21lbnUuaW1nX21lbnUiKS5sZW5ndGgpe2Y9YSgiLmltZ19zdHlsZV8xICNNYWluTWVudV9ORVciKS5jaGlsZHJlbigiLnN1YiIpO3ZhciBnPWYuZmluZCgiLmZpcnN0SXRlbSIpLmZpbmQoIi5zdWIiKTtmLmNoaWxkcmVuKCJsaSIpLm9uKHttb3VzZWVudGVyOmZ1bmN0aW9uKCl7IWEodGhpcykuaXMoIi5oYXNTdWIiKSYmZy5oaWRlKCl9LAptb3VzZWxlYXZlOmZ1bmN0aW9uKCl7IWEodGhpcykuaXMoIi5oYXNTdWIiKSYmZy5zaG93KCl9fSl9YSgiLm51bWVyaWMiKS5vbigia2V5cHJlc3MiLGZ1bmN0aW9uKG0pe2lmKDQ4Pm0ua2V5Q29kZXx8NTc8bS5rZXlDb2RlKW0ucmV0dXJuVmFsdWU9ITF9KTtpZigib250b3VjaHN0YXJ0ImluIHdpbmRvd3x8d2luZG93LkRvY3VtZW50VG91Y2gmJmRvY3VtZW50IGluc3RhbmNlb2YgRG9jdW1lbnRUb3VjaClhKCIubGVmdF9ib3ggYSIpLm9uKCJ0YXAiLGZ1bmN0aW9uKG0pe209YSh0aGlzKTtpZigicmFkaW8iIT1tLmF0dHIoInR5cGUiKSYmbS5hdHRyKCJvbmNsaWNrIikpcmV0dXJuIG0udHJpZ2dlcigiY2xpY2siKSwhMX0pLGEoIi5oYXNJdGVtcyA+IGEsIC5oYXNTdWIgPiBhIikub24oImNsaWNrIixmdW5jdGlvbihtKXtpZigiY2xpY2siIT1tLnR5cGUpcmV0dXJuITA7dmFyIGw9YSh0aGlzKS5kYXRhKCJjbGlja0NvdW50Iik7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBsfHwiMCI9PQpsKWEoIi5uYXYgbGkuaGFzSXRlbXMgYSwgLm5hdiBsaS5oYXNTdWIgYSIpLmRhdGEoImNsaWNrQ291bnQiLCIwIiksYSh0aGlzKS5kYXRhKCJjbGlja0NvdW50IiwiMSIpLG0ucHJldmVudERlZmF1bHQoKTtlbHNlIHJldHVybiBkb2N1bWVudC5sb2NhdGlvbj1hKHRoaXMpLmF0dHIoImhyZWYiKSxhKHRoaXMpLmRhdGEoImNsaWNrQ291bnQiLCIwIiksITB9KTthKCJkaXYuZ21hcC1wbGFjZWhvbGRlciIpLmVhY2goZnVuY3Rpb24oKXt2YXIgbT1hKHRoaXMpLGw9bS5kYXRhKCk7aW5qZWN0R29vZ2xlTWFwc0tleShmdW5jdGlvbih1KXt1PSJodHRwczovL3d3dy5nb29nbGUuY29tL21hcHMvZW1iZWQvdjEvcGxhY2U\/IitbInE9IitlbmNvZGVVUklDb21wb25lbnQobC5wbGFjZUlkKSwiem9vbT0iK2wuem9vbSwibGFuZ3VhZ2U9IitsLmxhbmd1YWdlLCJyZWdpb249Q0EiLCJrZXk9Iit1XS5qb2luKCImIik7bS5odG1sKCc8aWZyYW1lIHNyYz0iJyt1KyciIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjQwMCIgZnJhbWVib3JkZXI9IjAiIHN0eWxlPSJib3JkZXI6MCIgYWxsb3dmdWxsc2NyZWVuPjwvaWZyYW1lPicpfSl9KTsKdHJ5e2EoIi5hZGR0dCIpLmVhY2goZnVuY3Rpb24oKXt2YXIgbT1bIm9uQ2xvc2UiLCJvblllcyIsIm9uTm8iXSxsPWEodGhpcyksdT1sLmRhdGEoKSxxPXt9LHI7Zm9yKHIgaW4gdSlxW3JdPWZ1bmN0aW9uKHAsdyl7cmV0dXJuLTEhPW0uaW5kZXhPZihwKT9mdW5jdGlvbigpe2V2YWwodyl9Ond9KHIsdVtyXSk7bC5kYXJrVG9vbHRpcChxKX0pfWNhdGNoKG0pe2NvbnNvbGUubG9nKG0ubWVzc2FnZSxtKX19KTtmdW5jdGlvbiBjaGlsZE9mKGEsYil7Zm9yKDsidW5kZWZpbmVkIiE9PXR5cGVvZiBhJiZudWxsIT09YSYmKGE9YS5wYXJlbnROb2RlKSYmYSE9PWI7KTtyZXR1cm4hIWF9dmFyIE1lbnVIYW5kbGVyOwooZnVuY3Rpb24oKXt2YXIgYTtNZW51SGFuZGxlcj1mdW5jdGlvbiBjKCl7ZnVuY3Rpb24gZChmLGcpe2xldCBtPShnLm1vZGVsfHwiIikudHJpbSgpLGw9KGcudHJpbXx8IiIpLnRyaW0oKTtmPWYucmVwbGFjZSgiIyNNRU5VWUVBUiMjIixnLnllYXIpO20mJmwmJihtLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMobC50b0xvd2VyQ2FzZSgpKT9sPSIiOmwudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhtLnRvTG93ZXJDYXNlKCkpJiYobT0iIikpO3JldHVybiBmPWYucmVwbGFjZSgiIyNNRU5VTU9ERUwjIyIsbSkucmVwbGFjZSgiIyNNRU5VVFJJTSMjIixsKS5yZXBsYWNlKC8gKy9nLCIgIil9aWYoYSlyZXR1cm4gYTthPXRoaXM7dGhpcy5nZXRTcGVjVXJsPWZ1bmN0aW9uKCl7dmFyIGY9IkVOR0xJU0giPT0kKCIjYWN0aXZlc2l0ZWxhbmd1YWdlIikudmFsKCl8fCIwIj09PSQoIiNuZXdfdHJhbnNsYXRlZF90aXRsZXMiKS52YWwoKT8iZW4iOiJmciI7IjAiPT0kKCIjbXVsdGktbGFuZ3VhZ2UiKS52YWwoKSYmCihmPSJFTkdMSVNIIj09JCgiI2FjdGl2ZXNpdGVsYW5ndWFnZSIpLnZhbCgpPyJlbiI6ImZyIik7cmV0dXJuIi9qc29uL25ld2NhcnNkZXRhaWxzXyIrZisiLmpzb24ifTt0aGlzLm1lbnU9JCgiLm1lbnU1LCAubWVudTYsIC5tZW51NywgLm1lbnU4LCAubWVudTksIC5tZW51MTAiKTt0aGlzLnNwZWNzQWpheD0kLmdldCh0aGlzLmdldFNwZWNVcmwoKSk7dGhpcy5jYXJzPXtkZXRhaWxzOnt9LGZpbmRCeUlkOmZ1bmN0aW9uKGYpe3ZhciBnPXt9OyQuZWFjaCh0aGlzLmRldGFpbHMubWFrZXMsZnVuY3Rpb24obSxsKXskLmVhY2gobC5tb2RlbHMsZnVuY3Rpb24odSxxKXsxPT1xLmlzc2VyaWVzfHwxPT1xLmlzQ2xhc3M\/JC5lYWNoKHEuc3R5bGVzLGZ1bmN0aW9uKHIscCl7cC5pZD09ZiYmKGc9cCl9KTpxLmlkPT1mJiYoZz1xKX0pOyQuaXNFbXB0eU9iamVjdChnKX0pO3JldHVybiBnfX07dGhpcy5zcGVjc0FqYXguZG9uZShmdW5jdGlvbihmKXtjKCkuY2Fycy5kZXRhaWxzPWZ9KTt0aGlzLnBvc2l0aW9ucz0KZnVuY3Rpb24oZixnLG0pe3JldHVybnt0YXJnZXQ6JChnLmN1cnJlbnRUYXJnZXQpLHNlY29uZExldmVsTWVudTpudWxsLHdpbmRvd0hlaWdodDpudWxsLHNlY29uZExldmVsTWVudVRvcDpudWxsLHNlY29uZExldmVsTWVudUJvdHRvbTpudWxsLHN1Yk1lbnVJdGVtVG9wOm51bGwsc3ViTWVudUl0ZW1IZWlnaHQ6bnVsbCxzdWJNZW51SXRlbUJvdHRvbTpudWxsLGJvdHRvbUFsaWduOm51bGwsc3BlY3M6bnVsbCxzcGVjc1RvcDpudWxsLHNwZWNzSGVpZ2h0Om51bGwsc3BlY3NCb3R0b206bnVsbCxjdXN0b21TZWNvbmRMZXZlbE1lbnU6bnVsbCxyb3VuZDpmdW5jdGlvbihsKXtyZXR1cm4rKE1hdGgucm91bmQobCsiZSsyIikrImUtMiIpfSx1cGRhdGU6ZnVuY3Rpb24oKXt0aGlzLnNlY29uZExldmVsTWVudT0iZnVuY3Rpb24iPT10eXBlb2YgdGhpcy5jdXN0b21TZWNvbmRMZXZlbE1lbnU\/dGhpcy5jdXN0b21TZWNvbmRMZXZlbE1lbnUoKTp0aGlzLnRhcmdldC5maW5kKCJ1bC5zdWI6Zmlyc3QiKTsKdHJ5e3RoaXMud2luZG93SGVpZ2h0PSQod2luZG93KS5oZWlnaHQoKSx0aGlzLnNlY29uZExldmVsTWVudVRvcD10aGlzLnNlY29uZExldmVsTWVudS5wb3NpdGlvbigpLnRvcCx0aGlzLnNlY29uZExldmVsTWVudUhlaWdodD10aGlzLnNlY29uZExldmVsTWVudS5vdXRlckhlaWdodCgpLHRoaXMuc2Vjb25kTGV2ZWxNZW51Qm90dG9tPXRoaXMucm91bmQodGhpcy5zZWNvbmRMZXZlbE1lbnVUb3ArdGhpcy5zZWNvbmRMZXZlbE1lbnVIZWlnaHQpfWNhdGNoKGwpe310cnl7dGhpcy5zdWJNZW51SXRlbVRvcD0kKGYpLnBvc2l0aW9uKCkudG9wLHRoaXMuc3ViTWVudUl0ZW1IZWlnaHQ9JChmKS5vdXRlckhlaWdodCgpLHRoaXMuc3ViTWVudUl0ZW1Cb3R0b209dGhpcy5yb3VuZCh0aGlzLnN1Yk1lbnVJdGVtSGVpZ2h0K3RoaXMuc3ViTWVudUl0ZW1Ub3ApLHRoaXMuYm90dG9tQWxpZ249dGhpcy5yb3VuZCgkKGYpLnBhcmVudCgidWwiKS5vdXRlckhlaWdodCgpKyQoZikucGFyZW50KCJ1bCIpLm9mZnNldCgpLnRvcC0KdGhpcy5zZWNvbmRMZXZlbE1lbnVCb3R0b20pfWNhdGNoKGwpe310cnl7dGhpcy5zcGVjcz1tLHRoaXMuc3BlY3NUb3A9dGhpcy5zcGVjcy5wb3NpdGlvbigpLnRvcCx0aGlzLnNwZWNzSGVpZ2h0PXRoaXMuc3BlY3Mub3V0ZXJIZWlnaHQoKSx0aGlzLnNwZWNzQm90dG9tPXRoaXMucm91bmQodGhpcy5zcGVjc1RvcCt0aGlzLnNwZWNzSGVpZ2h0KX1jYXRjaChsKXt9fSxhZGp1c3RTZWNvbmRMZXZlbDpmdW5jdGlvbigpe2lmKC42NSp0aGlzLndpbmRvd0hlaWdodDx0aGlzLnNlY29uZExldmVsTWVudUhlaWdodCl7aWYodGhpcy5zZWNvbmRMZXZlbE1lbnUuaGFzQ2xhc3MoImxvY2F0aW9uLWRldGFpbHMiKSlyZXR1cm47dGhpcy5zZWNvbmRMZXZlbE1lbnUucmVtb3ZlQXR0cigic3R5bGUiKTt0aGlzLnNlY29uZExldmVsTWVudS5jc3MoImhlaWdodCIsLjY1KnRoaXMud2luZG93SGVpZ2h0KTt0aGlzLnNlY29uZExldmVsTWVudS5jc3MoeyJvdmVyZmxvdy15IjoiYXV0byIsd2lkdGg6IjQwMHB4IiwKcG9zaXRpb246InN0YXRpYyIsZGlyZWN0aW9uOiJydGwifSk7dGhpcy5zZWNvbmRMZXZlbE1lbnUuZmluZCgiPiBsaSIpLmNzcyh7ZGlyZWN0aW9uOiJsdHIifSk7aWYoMD09JChmKS5jaGlsZHJlbigiLm1haW5tZW51LXN1Ym1lbnUiKS5sZW5ndGgpe3ZhciBsPSQoIjxkaXYvPiIpO2wuYWRkQ2xhc3MoIm1haW5tZW51LXN1Ym1lbnUiKTtsLmRldGFjaCgpLmFwcGVuZCh0aGlzLnNlY29uZExldmVsTWVudSk7dGhpcy50YXJnZXQuYXBwZW5kKGwpfXRoaXMudXBkYXRlKCl9aWYodGhpcy5zZWNvbmRMZXZlbE1lbnVCb3R0b208dGhpcy5zdWJNZW51SXRlbVRvcCkkKGYpLmFkZENsYXNzKCJhbGlnbi1sZXZlbCIpLHRoaXMudXBkYXRlKCksbD10aGlzLnNlY29uZExldmVsTWVudUJvdHRvbTwkKGYpLnBhcmVudCgidWwiKS5vdXRlckhlaWdodCgpPyQoZikub3V0ZXJIZWlnaHQoKSskKGYpLnBvc2l0aW9uKCkudG9wLXRoaXMuc2Vjb25kTGV2ZWxNZW51SGVpZ2h0OiQoZikucGFyZW50KCJ1bCIpLm91dGVySGVpZ2h0KCkrCiQoZikucGFyZW50KCJ1bCIpLnBvc2l0aW9uKCkudG9wLXRoaXMuc2Vjb25kTGV2ZWxNZW51Qm90dG9tLHRoaXMuc2Vjb25kTGV2ZWxNZW51LmNzcygidHJhbnNmb3JtIiwidHJhbnNsYXRlWSgiK2wrInB4KSIpO2Vsc2UgaWYodGhpcy5zZWNvbmRMZXZlbE1lbnVCb3R0b20+dGhpcy5zdWJNZW51SXRlbVRvcCYmdGhpcy5zdWJNZW51SXRlbUJvdHRvbT50aGlzLnNlY29uZExldmVsTWVudUJvdHRvbSl7bD0wPnBhcnNlSW50KHRoaXMuc2Vjb25kTGV2ZWxNZW51LmNzcygibGVmdCIpLnJlcGxhY2UoInB4IiwiIikpPyJyaWdodCI6ImxlZnQiO3ZhciB1PXt0cmFuc2Zvcm06InRyYW5zbGF0ZVkoIitNYXRoLmFicyh0aGlzLnNlY29uZExldmVsTWVudUJvdHRvbS10aGlzLnN1Yk1lbnVJdGVtQm90dG9tKSt0aGlzLnNlY29uZExldmVsTWVudVRvcCsicHgpIn07InJpZ2h0IiE9bCYmKHVbbF09dGhpcy50YXJnZXQucG9zaXRpb24oKS5sZWZ0K3RoaXMudGFyZ2V0LndpZHRoKCkpO3RoaXMuc2Vjb25kTGV2ZWxNZW51LmNzcyh1KX1lbHNlIHRoaXMuc2Vjb25kTGV2ZWxNZW51VG9wPgp0aGlzLnN1Yk1lbnVJdGVtVG9wJiZ0aGlzLnNlY29uZExldmVsTWVudS5jc3MoInRyYW5zZm9ybSIsInRyYW5zbGF0ZVkoIit0aGlzLnN1Yk1lbnVJdGVtVG9wKyJweCkiKX0sYWRqdXN0SG9yaXpvbnRhbDpmdW5jdGlvbigpe3RoaXMuc2Vjb25kTGV2ZWxNZW51Lmhhc0NsYXNzKCJpbnZpc2libGUiKXx8dGhpcy5zZWNvbmRMZXZlbE1lbnUuYWRkQ2xhc3MoImludmlzaWJsZSIpO3ZhciBsPXRoaXMuaXNJblZpZXdwb3J0KHRoaXMuc2Vjb25kTGV2ZWxNZW51WzBdKSx1PTA+cGFyc2VJbnQodGhpcy5zZWNvbmRMZXZlbE1lbnUuY3NzKCJsZWZ0IikucmVwbGFjZSgicHgiLCIiKSk\/InJpZ2h0IjoibGVmdCI7bHx8ImxlZnQiIT09dXx8KHRoaXMuc2Vjb25kTGV2ZWxNZW51Lmhhc0NsYXNzKCJMMTAwIikmJnRoaXMuc2Vjb25kTGV2ZWxNZW51LnJlbW92ZUNsYXNzKCJMMTAwIiksdGhpcy5zZWNvbmRMZXZlbE1lbnUuYWRkQ2xhc3MoIlIxMDAiKSk7bD17fTtsW3VdPXRoaXMudGFyZ2V0LnBvc2l0aW9uKCkubGVmdCsKdGhpcy50YXJnZXQud2lkdGgoKTt0aGlzLnNlY29uZExldmVsTWVudS5jc3MobCk7dGhpcy5zZWNvbmRMZXZlbE1lbnUucmVtb3ZlQ2xhc3MoImludmlzaWJsZSIpfSxpc0luVmlld3BvcnQ6ZnVuY3Rpb24obCl7bD1sLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3JldHVybiAwPD1sLnRvcCYmMDw9bC5sZWZ0JiZsLmJvdHRvbTw9KHdpbmRvdy5pbm5lckhlaWdodHx8ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodCkmJmwucmlnaHQ8PSh3aW5kb3cuaW5uZXJXaWR0aHx8ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoKX19fTt0aGlzLm1lbnUub24oIm1vdXNlZW50ZXIgbW91c2VsZWF2ZSIsInVsLm5hdiA+IGxpIixmdW5jdGlvbihmKXt2YXIgZz1hLnBvc2l0aW9ucyh0aGlzLGYpO2cudXBkYXRlKCk7Zy5zZWNvbmRMZXZlbE1lbnVCb3R0b20tJCh3aW5kb3cpLnNjcm9sbFRvcCgpPmcud2luZG93SGVpZ2h0P2cuc2Vjb25kTGV2ZWxNZW51LmFkZENsYXNzKCJzbGltLXN1Ym1lbnUiKToKZy5zZWNvbmRMZXZlbE1lbnUucmVtb3ZlQ2xhc3MoInNsaW0tc3VibWVudSIpOyJtb3VzZWxlYXZlIiE9PWYudHlwZSYmKGY9JCh0aGlzKS5maW5kKCI+IHVsIiksZi5sZW5ndGgmJiFmLmRhdGEoImNhbGN1bGF0ZWQiKSYmKGc9JCh0aGlzKS5vdXRlcldpZHRoKCksZi5vdXRlcldpZHRoKCk8ZyYmZi5jc3MoIndpZHRoIixnKzEpLGYuZGF0YSgiY2FsY3VsYXRlZCIsITApKSl9KTt0aGlzLm1lbnUub24oIm1vdXNlZW50ZXIgbW91c2VsZWF2ZSIsIiNNYWluTWVudV9ORVcgPiB1bC5zdWIgPiBsaSIsZnVuY3Rpb24oZil7dmFyIGc9YS5wb3NpdGlvbnModGhpcyxmKTswIT0kKGYuY3VycmVudFRhcmdldCkuZmluZCgidWwuc3ViID4gbGkiKS5sZW5ndGgmJiJtb3VzZWxlYXZlIiE9Zi50eXBlJiYoZy51cGRhdGUoKSxnLmFkanVzdFNlY29uZExldmVsKCkpfSk7dGhpcy5tZW51Lm9uKCJtb3VzZWVudGVyIG1vdXNlbGVhdmUiLCIjTWFpbk1lbnVfREVBTEVSU0hJUFMgPiB1bC5zdWIgbGkubG9jYXRpb24tbmFtZXMiLApmdW5jdGlvbihmKXt2YXIgZz1hLnBvc2l0aW9ucyh0aGlzLGYpLG09JChmLmN1cnJlbnRUYXJnZXQpLmZpbmQoIi5sb2NhdGlvbi1kZXRhaWxzIik7Zy5jdXN0b21TZWNvbmRMZXZlbE1lbnU9ZnVuY3Rpb24oKXtyZXR1cm4gbX07MCE9JChmLmN1cnJlbnRUYXJnZXQpLmZpbmQoIi5sb2NhdGlvbi1kZXRhaWxzIikubGVuZ3RoJiYibW91c2VsZWF2ZSIhPWYudHlwZSYmKCQoZi5jdXJyZW50VGFyZ2V0KS5maW5kKCIubG9jYXRpb24tZGV0YWlscyIpLm9uKCJsYXp5bG9hZGVkIixmdW5jdGlvbihsKXtnLmN1c3RvbVNlY29uZExldmVsTWVudSgpLmF0dHIoInN0eWxlIixudWxsKTtnLnVwZGF0ZSgpO2cuYWRqdXN0SG9yaXpvbnRhbCgpO2cuYWRqdXN0U2Vjb25kTGV2ZWwoKX0pLGcuY3VzdG9tU2Vjb25kTGV2ZWxNZW51KCkuYXR0cigic3R5bGUiLG51bGwpLGcudXBkYXRlKCksZy5hZGp1c3RIb3Jpem9udGFsKCksZy5hZGp1c3RTZWNvbmRMZXZlbCgpKX0pO3RoaXMubWVudS5vbigibW91c2VlbnRlciBtb3VzZWxlYXZlIiwKJyNNYWluTWVudV9UQUJfQ09NTUVSQ0lBTCA+IHVsLnN1YiA+IFtkYXRhLWlkPSJTVUJfVEFCX0NPTU1FUkNJQUxfQ09NTUVSIl0nLGZ1bmN0aW9uKGYpe2Y9YS5wb3NpdGlvbnModGhpcyxmKTtmLnVwZGF0ZSgpO2YuYWRqdXN0U2Vjb25kTGV2ZWwoKX0pO2lmKCJmb3JkX2xpbmNvbG5fZXh0ZXJuYWwiPT0kKCIjREVBTEVSUEFSVFJFRElSRUNUVFlQRSIpLnZhbCgpJiYwPCQoIiNERUFMRVJCUkFORCIpLmxlbmd0aCYmJCgiI0RFQUxFUkJSQU5EIikudmFsKCkudG9Mb3dlckNhc2UoKS5pbmNsdWRlcygiZm9yZCIpJiYiIiE9JCgiI0RFQUxFUlBBQ09ERSIpLnZhbCgpKXt2YXIgZT0kKCJodG1sIikuYXR0cigibGFuZyIpLGs9JCgiI0RFQUxFUlBBQ09ERSIpLnZhbCgpLGg9ImVuIj09ZT8iL3JlcXVlc3RzL2Nhci1wYXJ0cy1hbmQtYWNjZXNzb3JpZXMuaHRtbCI6Ii9kZW1hbmRlcy9jb21tYW5kZS1waWVjZXMtYWNjZXNzb2lyZXMtYXV0b21vYmlsZXMuaHRtbCIsbj0iaHR0cHM6Ly9mb3JkYWNjZXNzLmNvbS9Gb3JkLmFzcHg\/bG9jYXRpb249IisKazt0aGlzLm1lbnUub24oIm1vdXNlZW50ZXIgbW91c2VsZWF2ZSIsIiNNYWluTWVudV9TRVJWSUNFIHVsLnN1YiBsaVtkYXRhLWlkPSdQSUVDRVMnXSIsZnVuY3Rpb24oKXt2YXIgZj0kKHRoaXMpO2Y9JCgiPiBhIixmKTtmLmF0dHIoImhyZWYiKT09aCYmKGYuYXR0cigiaHJlZiIsbiksZi5hdHRyKCJ0YXJnZXQiLCJfYmxhbmsiKSl9KX10aGlzLm1lbnUub24oIm1vdXNlZW50ZXIgbW91c2VsZWF2ZSIsIiNNYWluTWVudV9GSU5BTkNFID4gYSIsZnVuY3Rpb24oKXt2YXIgZj0kKHRoaXMpLGc9JCgiaHRtbCIpLmF0dHIoImxhbmciKSxtPSQoIiNERUFMRVJQQUNPREUiKS52YWwoKSxsPSQoIiNERUFMRVJCUkFORF9QUklNQVJZIikudmFsKCkudG9Mb3dlckNhc2UoKTsiZm9yZF9saW5jb2xuX2V4dGVybmFsIiE9JCgiI0ZJTkFOQ0VGT1JNVFlQRSIpLnZhbCgpfHwiZm9yZCIhPWwmJiJsaW5jb2xuIiE9bHx8IiI9PW18fChmLmF0dHIoImhyZWYiLCJmb3JkIj09bD8oImVuIj09Zz8iaHR0cHM6Ly93d3cuZm9yZC5jYS9maW5hbmNlL2FwcGx5LzE\/U291cmNlT2ZEYXRhPUNBRENGJmRlYWxlcklkPSI6CiJodHRwczovL2ZyLmZvcmQuY2EvZmluYW5jZS9hcHBseS8xP1NvdXJjZU9mRGF0YT1DQURDRiZkZWFsZXJJZD0iKSttOigiZW4iPT1nPyJodHRwczovL3d3dy5saW5jb2xuY2FuYWRhLmNvbS9maW5hbmNlL2FwcGx5LzE\/U291cmNlT2ZEYXRhPUNBRENMJmRlYWxlcklkPSI6Imh0dHBzOi8vZnIubGluY29sbmNhbmFkYS5jb20vZmluYW5jZS9hcHBseS8xP1NvdXJjZU9mRGF0YT1DQURDTCZkZWFsZXJJZD0iKSttKSxmLmF0dHIoInRhcmdldCIsIl9ibGFuayIpKX0pO3NldFRpbWVvdXQoZnVuY3Rpb24oKXtpZigwPCQoIiNkMmMtYm5wLWxpbmtydWxlcy10ZXh0YXJlYSIpLmxlbmd0aCYmIiIhPSQoIiNkMmMtYm5wLWxpbmtydWxlcy10ZXh0YXJlYSIpLnZhbCgpJiYiIyNMSU5LUlVMRVMjIyIhPSQoIiNkMmMtYm5wLWxpbmtydWxlcy10ZXh0YXJlYSIpLnZhbCgpKXtpZihkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIuY3RhLXRwbCIpLmxlbmd0aCYmInVuZGVmaW5lZCIhPT10eXBlb2YgbmV3Y2FyRGV0YWlscyYmCiJ1bmRlZmluZWQiIT09dHlwZW9mIG5ld2NhckRldGFpbHMuYWN0aXZlTW9kZWwpe2lmKCExPT09KCJjb21tZXJjaWFsIj09bmV3Y2FyRGV0YWlscy5hY3RpdmVNb2RlbC5zZWN0aW9uPyEwOiExKSlyZXR1cm47ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLmN0YS10cGwgYSIpLmZvckVhY2goKGYsZyk9PntnPWYuZ2V0QXR0cmlidXRlKCJocmVmIik7aWYoZy5pbmNsdWRlcygic2hvcC5mb3JkLmNhIikpe2xldCBtPSExO2cuaW5jbHVkZXMoInN1cGVyZHV0eSIpJiYobT1nLnJlcGxhY2UoIi9zdXBlcmR1dHkvIiwiL3N1cGVyZHV0eS1jb21tZXJjaWFsLyIpKTshMSE9PW0mJmYuc2V0QXR0cmlidXRlKCJocmVmIixtKX19KX1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIjY2xhc3Njb21tZXJjaWFsX2NvbnRhaW5lciIpLmxlbmd0aCYmZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLmRpdkNhclNpbmdsZU91dGVyQm94IGEiKS5mb3JFYWNoKChmLGcpPT57Zz1mLmdldEF0dHJpYnV0ZSgiaHJlZiIpOwppZihnLmluY2x1ZGVzKCJzaG9wLmZvcmQuY2EiKSl7bGV0IG09ITE7Zy5pbmNsdWRlcygic3VwZXJkdXR5IikmJihtPWcucmVwbGFjZSgiL3N1cGVyZHV0eS8iLCIvc3VwZXJkdXR5LWNvbW1lcmNpYWwvIikpOyExIT09bSYmZi5zZXRBdHRyaWJ1dGUoImhyZWYiLG0pfX0pfX0sMkUzKTt0aGlzLm1lbnUub24oIm1vdXNlZW50ZXIgbW91c2VsZWF2ZSIsIiNNYWluTWVudV9ORVcgPiB1bC5zdWIgPiBsaSA+IHVsLnN1YiA+IGxpID4gdWwuc3ViID4gbGksICNNYWluTWVudV9ORVcgPiB1bC5zdWIgPiBsaSA+IC5tYWlubWVudS1zdWJtZW51ID4gdWwuc3ViID4gbGkgPiB1bC5zdWIgPiBsaSwgICNNYWluTWVudV9UQUJfQ09NTUVSQ0lBTCA+IHVsLnN1YiA+IGxpID4gdWwuc3ViID4gbGkgPiB1bC5zdWIgPiBsaSwgI01haW5NZW51X1RBQl9DT01NRVJDSUFMID4gdWwuc3ViID4gbGkgPiAubWFpbm1lbnUtc3VibWVudSA+IHVsLnN1YiA+IGxpID4gdWwuc3ViID4gbGkiLGZ1bmN0aW9uKGYpe2lmKCJtb3VzZWxlYXZlIiE9CmYudHlwZSl7dmFyIGc9JCh0aGlzKS5maW5kKCIubWVudS10ZWNoLXNwZWNzIik7MD09Zy5sZW5ndGgmJihnPSQoIiNtZW51LXNwZWNzLXRlbXBsYXRlIikuY2xvbmUoKSk7dmFyIG09dGhpcztpZigwPT0kKG0pLmNoaWxkcmVuKCIubWVudS10ZWNoLXNwZWNzIikubGVuZ3RoKXt2YXIgbD0kKG0pLmZpbmQoImE6bnRoLW9mLXR5cGUoMikiKS50ZXh0KCksdT0kKG0pLmZpbmQoImE6Zmlyc3QtY2hpbGQiKS5hdHRyKCJocmVmIikscT11Lmxhc3RJbmRleE9mKCIvIikrMTtjYXJMaW5rVHJpbW1lZD11LnN1YnN0cmluZyhxLHUubGVuZ3RoKTt2YXIgcj0kKCIjdHh0QnVpbGRBbmRQcmljZUZvbGRlclBhdGgiKS52YWwoKStjYXJMaW5rVHJpbW1lZDsoZnVuY3Rpb24oKXtpZigwPCQoIiNkMmMtYm5wLWxpbmtydWxlcy10ZXh0YXJlYSIpLmxlbmd0aCYmIiIhPSQoIiNkMmMtYm5wLWxpbmtydWxlcy10ZXh0YXJlYSIpLnZhbCgpJiYiIyNMSU5LUlVMRVMjIyIhPSQoIiNkMmMtYm5wLWxpbmtydWxlcy10ZXh0YXJlYSIpLnZhbCgpKXt2YXIgeT0KMDwkKG0pLmNsb3Nlc3QoImxpW2RhdGEtaWRePSdORVdfQ09NTUVSQ0lBTCddIikubGVuZ3RoPyEwOiExLEE9JCgiI2QyYy1ibnAtbGlua3J1bGVzLXRleHRhcmVhIikudmFsKCk7QT1KU09OLnBhcnNlKEEpO3ZhciBJPSQoImh0bWwiKS5hdHRyKCJsYW5nIiksQj1yLm1hdGNoKCJlbiI9PUk\/L1wvYnVpbGQtYW5kLXByaWNlXC8oXGR7NH0tKFx3KyktKFx3KykuKlwuaHRtbCkuKi86L1wvY29uZmlndXJhdGlvbi1ldC1wcml4XC8oKFx3KyktKFx3KyktXGR7NH0pLipcLmh0bWwvKSxKPUJbMF0sRj1CWzJdLnRvTG93ZXJDYXNlKCk7Qj1CWzNdLnRvTG93ZXJDYXNlKCkucmVwbGFjZUFsbCgiXyIsIiAiKTt5JiZCLmluY2x1ZGVzKCJzdXBlciBkdXR5IikmJihCPSJzdXBlciBkdXR5IGNvbW1lcmNpYWwiKTtpZigidW5kZWZpbmVkIiE9PXR5cGVvZiBBW0ZdJiYidW5kZWZpbmVkIj09PXR5cGVvZiBBW0ZdW0JdKWZvcih2YXIgSyBpbiBBW0ZdKWlmKHk9SyxCLmluY2x1ZGVzKHkpKXtCPXk7CmJyZWFrfSJ1bmRlZmluZWQiIT09dHlwZW9mIEFbRl0mJiJ1bmRlZmluZWQiIT09dHlwZW9mIEFbRl1bQl0mJigkKGcpLmZpbmQoIi5tZW51LXNwZWMtYm5wIikuYXR0cigidGFyZ2V0IiwiX2JsYW5rIikscj1yLnJlcGxhY2UoSixBW0ZdW0JdW0ldKSl9fSkoKTskKGcpLmZpbmQoIi5tZW51LXNwZWMtYm5wIikuYXR0cigiaHJlZiIscik7JChnKS5maW5kKCIubWVudS1zcGVjLWxpbmsiKS5hdHRyKCJocmVmIix1KTskKGcpLnJlbW92ZUF0dHIoImlkIik7JChnKS5jaGlsZHJlbigiLm1lbnUtc3BlY3MtdGl0bGUiKS5hcHBlbmQobCk7dmFyIHA9e307JC5pc0VtcHR5T2JqZWN0KGMoKS5jYXJzLmRldGFpbHMpPyQud2hlbihjKCkuc3BlY3NBamF4KS5kb25lKGZ1bmN0aW9uKHkpe3A9YygpLmNhcnMuZmluZEJ5SWQoJChtKS5kYXRhKCJtb2RlbGlkIikpfSk6cD1jKCkuY2Fycy5maW5kQnlJZCgkKG0pLmRhdGEoIm1vZGVsaWQiKSk7aWYoISQuaXNFbXB0eU9iamVjdChwKSl7dmFyIHc9YS5zaG91bGRVc2VGcmVuY2hOYW1lcygpPwpwLm5hbWU6cC5tb2RlbDtwLmhhc093blByb3BlcnR5KCJiYXNlX3N0eWxlIikmJihwPXAuYmFzZV9zdHlsZSx3PXAubW9kZWwpO3E9IkZSRU5DSCI9PSQoIiN0ZXh0TGFuZ3VhZ2UiKS52YWwoKT8iTi9EIjoiTi9BIjtsPSIiPT1wLmRpc3BsYWNlbWVudD9xOnAuZGlzcGxhY2VtZW50O3U9IiI9PXAuY2l0eUZ1ZWw\/cTpwLmNpdHlGdWVsO3E9IiI9PXAuaHd5RnVlbD9xOnAuaHd5RnVlbDt2YXIgej1wLm1zcnBBbGxJbixEPSQoZykuZmluZCgiLm1lbnUtc3BlYy1ibnAiKS50ZXh0KCkudHJpbSgpO0Q9RC5yZXBsYWNlKCIkTU9ERUwiLHcpO3c9YDxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPiR7ei50b0xvY2FsZVN0cmluZygpfTwvc3Bhbj5gO3o9JCgiI0FETUlOX05FV19ET05UX1NIT1dfUFJJQ0VfTU9ERUxTIikudmFsKCkuaW5jbHVkZXMocC5tb2RlbGlkKTtpZigwPCQobSkuY2hpbGRyZW4oIi5wcmljZSIpLmxlbmd0aCl7JChnKS5maW5kKCIubWVudS1zcGVjLXByaWNlIikudGV4dCgiIik7CnZhciBDPSQoJzxkaXYgY2xhc3M9InByaWNlIi8+JyksRT0kKCc8c3BhbiBjbGFzcz0icHJpY2VfYW10Ii8+JyksRz0kKCc8c3BhbiBjbGFzcz0icHJpY2Vfc2NyYXRjaGVkIi8+JyksSD0kKCc8c3BhbiBjbGFzcz0icHJpY2VfcHJvbW8iLz4nKTswPCQobSkuY2hpbGRyZW4oIi5wcmljZSIpLmNoaWxkcmVuKCIucHJpY2Utc2NyYXRjaCIpLmxlbmd0aD8oRy5odG1sKHcpLEUuYXBwZW5kKEcpLEUuY3NzKHsidGV4dC1kZWNvcmF0aW9uIjoibGluZS10aHJvdWdoIixjb2xvcjoicmVkIn0pKTpFLmh0bWwodyk7Qy5hcHBlbmQoRSk7MDwkKG0pLmNoaWxkcmVuKCIucHJpY2UiKS5jaGlsZHJlbigiLnByaWNlX3Byb21vIikubGVuZ3RoJiYoSC50ZXh0KCQobSkuY2hpbGRyZW4oIi5wcmljZSIpLmNoaWxkcmVuKCIucHJpY2VfcHJvbW8iKS50ZXh0KCkpLEguY3NzKHtjb2xvcjoicmVkIn0pLEMuYXBwZW5kKEgpKTskKGcpLmZpbmQoIi5tZW51LXNwZWMtcHJpY2UiKS5hcHBlbmQoQyl9ZWxzZSAkKGcpLmZpbmQoIi5tZW51LXNwZWMtcHJpY2UiKS5odG1sKHcpOwokKGcpLmZpbmQoIi5tZW51LXNwZWMtaHAiKS50ZXh0KHAuaHBBdFJQTSk7JChnKS5maW5kKCIubWVudS1zcGVjLXBvd2VyIikudGV4dChsKTskKGcpLmZpbmQoIi5tZW51LXNwZWMtZnVlbC1jaXR5IikudGV4dCh1KTskKGcpLmZpbmQoIi5tZW51LXNwZWMtZnVlbC1oaWdod2F5IikudGV4dChxKTskKGcpLmZpbmQoIi5tZW51LXNwZWMtZHJpdmV0cmFpbiIpLnRleHQocC5kcml2ZVRyYWluKTskKGcpLmZpbmQoIi5tZW51LXNwZWMtYm5wIikuY29udGVudHMoKS5maWx0ZXIoZnVuY3Rpb24oKXtyZXR1cm4gMz09dGhpcy5ub2RlVHlwZX0pLmxhc3QoKS5yZXBsYWNlV2l0aChEKTt6JiYoJChnKS5maW5kKCIubWVudS1zcGVjLWJucCIpLnJlbW92ZSgpLCQoZykuZmluZCgiLm1lbnUtc3BlYy1wcmljZSIpLnRleHQoJCgiI05FV19QUklDRV9URVhUIikudmFsKCkpKTskKGcpLmZpbmQoIi5tZW51LXByaWNlLXRleHQiKS50ZXh0KGQoJChnKS5maW5kKCIubWVudS1wcmljZS10ZXh0IikudGV4dCgpLApwKSk7NUU4PnAuaWQmJiQobSkuYXBwZW5kKGcuZmFkZUluKDIwMCkpO2w9bmV3IEN1c3RvbUV2ZW50KCJ0b3BuYXYtdGVjaC1zcGVjLWxvYWRlZCIse2RldGFpbDp7dGVtcGxhdGU6Z319KTtkb2N1bWVudC5kaXNwYXRjaEV2ZW50KGwpfX1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dmFyIHk9YS5wb3NpdGlvbnMobSxmLCQoZykpO3kudXBkYXRlKCk7dmFyIEE9JChtKS5wYXJlbnQoInVsLnN1YiIpLnBhcmVudCgpLnBhcmVudCgpO0Eub2Zmc2V0KCk7QS5vdXRlckhlaWdodCgpO3kuc3BlY3NCb3R0b208eS5zdWJNZW51SXRlbVRvcCYmJChnKS5jc3MoInRvcCIseS5zdWJNZW51SXRlbUJvdHRvbS15LnNwZWNzQm90dG9tKTt5LnN1Yk1lbnVJdGVtVG9wPHkuc3BlY3NCb3R0b20mJnkuc3ViTWVudUl0ZW1Cb3R0b20+eS5zcGVjc0JvdHRvbSYmJChnKS5jc3MoInRvcCIsJChnKS5wb3NpdGlvbigpLnRvcCsoeS5zdWJNZW51SXRlbUJvdHRvbS15LnNwZWNzQm90dG9tKSl9LDApO2RlbGV0ZSBwfX0pOwokKCcudXBfbWVudSBbaWRePSJNYWluTWVudV8iXS50b3A6bm90KC5pc09wZW4pJykub24oIm1vdXNlZW50ZXIiLGZ1bmN0aW9uKGYpeyQoZi5jdXJyZW50VGFyZ2V0KS5oYXNDbGFzcygiaXNPcGVuIil8fCQoJy51cF9tZW51IFtpZF49Ik1haW5NZW51XyJdLnRvcCcpLnJlbW92ZUNsYXNzKCJpc09wZW4iKX0pOyQoZG9jdW1lbnQpLm9uKCJjbGljayIsZnVuY3Rpb24oZil7Y2hpbGRPZihkb2N1bWVudC5hY3RpdmVFbGVtZW50LCQoIi51cF9tZW51IilbMF0pfHwkKCcudXBfbWVudSBbaWRePSJNYWluTWVudV8iXS50b3AnKS5yZW1vdmVDbGFzcygiaXNPcGVuIil9KTskKCIjTWFpbk1lbnVfQ09OVEFDVCIpLm9uKCJtb3VzZWVudGVyIG1vdXNlbGVhdmUiLGZ1bmN0aW9uKGYpe3ZhciBnPSQoIiNtZW51LW1hcC1saW5rIik7MD09Zy5sZW5ndGh8fDA8Zy5maW5kKCJpZnJhbWUiKS5sZW5ndGh8fGluamVjdEdvb2dsZU1hcHNLZXkoZnVuY3Rpb24obSl7bT0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9tYXBzL2VtYmVkL3YxL3BsYWNlPyIrClsicT0iK2VuY29kZVVSSUNvbXBvbmVudChnLmRhdGEoInBsYWNlSWQiKSksInpvb209IitnLmRhdGEoInpvb20iKSwibGFuZ3VhZ2U9IitnLmRhdGEoImxhbmd1YWdlIiksInJlZ2lvbj1DQSIsImtleT0iK21dLmpvaW4oIiYiKTtnLmFwcGVuZCgnPGlmcmFtZSBzcmM9IicrbSsnIiB3aWR0aD0iMTAwJSIgaGVpZ2h0PSI0MDAiIGZyYW1lYm9yZGVyPSIwIiBzdHlsZT0iYm9yZGVyOjAiIGFsbG93ZnVsbHNjcmVlbj48L2lmcmFtZT4nKX0pfSk7JCgiI01haW5NZW51X0ZJTkFOQ0UsICNNYWluTWVudV9DT05UQUNUIikub24oIm1vdXNlZW50ZXIgbW91c2VsZWF2ZSIsZnVuY3Rpb24oZil7dmFyIGc9Zi5jdXJyZW50VGFyZ2V0LmlkLG09JCgiIyIrZyk7MD09PSQoIiMiK2crIi5pc09wZW4iKS5sZW5ndGgmJiJtb3VzZWxlYXZlIiE9PWYudHlwZSYmbS5hZGRDbGFzcygiaXNPcGVuIik7aWYoIm1vdXNlbGVhdmUiPT09Zi50eXBlKXt2YXIgbD0kKCIuY3JlZGl0U2NvcmVQb3B1cEZvcm0iKVswXTsKZz0kKCIjIitnKyIgPiBhLnRvcF9saW5rIilbMF07KGwmJmYuZnJvbUVsZW1lbnQ9PT1sfHxnJiZmLmZyb21FbGVtZW50PT09ZykmJm0ucmVtb3ZlQ2xhc3MoImlzT3BlbiIpO2w9JChmLnRvRWxlbWVudCkuaGFzQ2xhc3MoImNhbC13cmFwcGVyIil8fCQoZi50b0VsZW1lbnQpLmNoaWxkcmVuKCkuaGFzQ2xhc3MoImNhbC13cmFwcGVyIil8fCQoZi50b0VsZW1lbnQpLmhhc0NsYXNzKCJuZWJDYWwiKXx8JChmLnRvRWxlbWVudCkuY2xvc2VzdCgiLm5lYkNhbCIpLmxlbmd0aDtnPSQoZi50b0VsZW1lbnQpLmhhc0NsYXNzKCJwYWMtY29udGFpbmVyIik7aWYoIShudWxsPT09Zi50b0VsZW1lbnR8fGNoaWxkT2YoZi50b0VsZW1lbnQsbVswXSl8fGNoaWxkT2YoZG9jdW1lbnQuYWN0aXZlRWxlbWVudCxtWzBdKXx8bHx8Zyl8fGNoaWxkT2YoZi50b0VsZW1lbnQsJCgiLnVwX21lbnUiKVswXSkmJiFjaGlsZE9mKGYudG9FbGVtZW50LG1bMF0pKSQoIi5uZWJDYWwiKS5pcygiOnZpc2libGUiKSYmCihmPSQoIi5maW5hbmNlLW1lbnUtZnJlZWNyZWRpdCAuY3JlZGl0U2NvcmVCaXJ0aGRhdGUiKS5kYXRhKCJuZWJDYWwiKSkmJmYuaGlkZSgpLG0ucmVtb3ZlQ2xhc3MoImlzT3BlbiIpfX0pO2lmKCQoITApKXtlPSQoIi5tZW51NSAubmF2ID4gbGkiKTtrPWUubGVuZ3RoO3ZhciB4PSQoIiNNYWluTWVudV9DT05UQUNUIiksdj0tMTtlLmVhY2goZnVuY3Rpb24oZixnKXskKGcpLmlzKHgpJiYodj1mKX0pOy0xPHYmJi41PD12L2smJnguZmluZCgiLmNvbnRhY3R1cy1mb3JtLmNvbnRhY3Qtc2hvcnQiKS5jc3Moe3JpZ2h0OiJpbmhlcml0In0pfXRoaXMuc2hvdWxkVXNlRnJlbmNoTmFtZXM9ZnVuY3Rpb24oKXtyZXR1cm4iRlJFTkNIIj09JCgiI2FjdGl2ZXNpdGVsYW5ndWFnZSIpLnZhbCgpJiYiMSI9PT0kKCIjbmV3X3RyYW5zbGF0ZWRfdGl0bGVzIikudmFsKCl9O3RoaXMuc2V0TWVudUV4cHJlc3NGb3JtU2VsZWN0ZWRPcHRpb249ZnVuY3Rpb24oKXt2YXIgZj13aW5kb3cubG9jYXRpb24uaHJlZiwKZz0vdXNlZHxvY2Nhc2lvbi8udGVzdChmKSxtPS9uZXd8bmV1ZnMvLnRlc3QoZiksbD0vZmluYW5jZW1lbnR8Y3JlZGl0Ly50ZXN0KGYpLHU9L3NlcnZpY2V8YWNjZXNzb3JpZXN8dGlyZXxwbmV1c3xib2R5c2hvcHxib2R5LXNob3B8Y2Fyb3NzZXJpZS8udGVzdChmKTtmPSIiO20\/Zj0ibmV3IjpnP2Y9InVzZWQiOmw\/Zj0iZmluYW5jZSI6dSYmKGY9InNlcnZpY2UiKTsiIiE9ZiYmKGc9JCgiLm1lbnUgI3F1aWNrRW1haWxEZXBhcnRtZW50IiksJCgnIG9wdGlvblt2YWx1ZT0iJytmKyciXScsZykucHJvcCgic2VsZWN0ZWQiLCJzZWxlY3RlZCIpLG09JCgib3B0aW9uOnNlbGVjdGVkIixnKS5pbmRleCgpLGcucHJldigidWwiKS5maW5kKCJsaSIpLmVxKG0pLmZpbmQoImEiKS50cmlnZ2VyKCJjbGljayIpKX07c2V0VGltZW91dChmdW5jdGlvbigpe2Euc2V0TWVudUV4cHJlc3NGb3JtU2VsZWN0ZWRPcHRpb24oKX0sMTApO2NvbnNvbGUubG9nKCJNZW51SGFuZGxlciBpbml0IC0tIHRlc3QgcmVtb3ZlIGxhdGVyIik7CnRoaXMudHJhbnNsYXRlVGl0bGVzPWZ1bmN0aW9uKCl7cmV0dXJuICRqc2NvbXAuYXN5bmNFeGVjdXRlUHJvbWlzZUdlbmVyYXRvckZ1bmN0aW9uKGZ1bmN0aW9uKigpe3RyeXt2YXIgZj1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCJbZGF0YS1tZW51LXRyYW5zbGF0ZV0iKTtpZihmKXt2YXIgZz1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJib2R5IikuY2xhc3NOYW1lLm1hdGNoKCJGUkVOQ0giKT8iZnIiOiJlbiIsbT0obmV3IFVSTChgL2pzL2pzb24vbWVudVRpdGxlc18ke2d9Lmpzb25gLHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4pKS5ocmVmO3Jlc3BvbnNlPXlpZWxkIGZldGNoKG0pO2lmKHRleHQ9eWllbGQgcmVzcG9uc2UudGV4dCgpKWlmKGRhdGE9SlNPTi5wYXJzZSh0ZXh0KSxmJiYwIT09ZGF0YS5sZW5ndGgpZm9yKGc9MDtnPGYubGVuZ3RoO2crKyl7dmFyIGw9ZltnXS5nZXRBdHRyaWJ1dGUoImRhdGEtbWVudS10cmFuc2xhdGUiKTtkYXRhW2xdJiZCYXNlNjQuaXNCYXNlNjQoZGF0YVtsXS50ZXh0KSYmCihmW2ddLnRleHRDb250ZW50PUJhc2U2NC5kZWNvZGUoZGF0YVtsXS50ZXh0KSl9fX1jYXRjaCh1KXtjb25zb2xlLmxvZyh1KX19KX07dGhpcy50cmFuc2xhdGVUaXRsZXMoKX19KSgpOyQoZnVuY3Rpb24oKXt3aW5kb3cubWVudUhhbmRsZXI9bmV3IE1lbnVIYW5kbGVyfSk7CnZhciBnZXRBY3RpdmVQYWdlPWZ1bmN0aW9uKCl7dmFyIGE9IiI7InVuZGVmaW5lZCI9PT10eXBlb2YgYWN0aXZlUGFnZSYmKGFjdGl2ZVBhZ2U9IiIpO3N3aXRjaChhY3RpdmVQYWdlKXtjYXNlICJIT01FUEFHRSI6YT0iQWNjdWVpbCI7YnJlYWs7Y2FzZSAiQ0FSREVUQUlMUyI6YT0iT2NjYXNpb24tVkRQIjticmVhaztjYXNlICJVU0VEQ0FSUyI6YT0iT2NjYXNpb24tU1JQIjticmVhaztjYXNlICJORVdDQVJTIjphPSJOZXVmLVNSUCI7YnJlYWs7Y2FzZSAiTkVXQ0FSREVUQUlMUyI6YT0iTmV1Zi1WRFAifXJldHVybiBhfSxzZW5kR29vZ2xlQW5hbHl0aWNCYW5uZXJDbGlja2VkRXZlbnQ9ZnVuY3Rpb24oYSxiKXtnYVRyYWNrKCJfdHJhY2tFdmVudCIsIkNsaXF1ZXMgQmFubmllcmUiLGEsYiwxKX07CiQoZG9jdW1lbnQpLm9uKCJjbGljayIsIiNob21lcGFnZS1iYW5uZXIgI3NsaWRlciA+IGEiLGZ1bmN0aW9uKGEpe2lmKGE9Z2V0QWN0aXZlUGFnZSgpKXt2YXIgYj0iIiE9JCh0aGlzKS5hdHRyKCJocmVmIik\/JCh0aGlzKS5hdHRyKCJocmVmIik6IlBvcHVwIjtzZW5kR29vZ2xlQW5hbHl0aWNCYW5uZXJDbGlja2VkRXZlbnQoYSxiKX19KTskKGRvY3VtZW50KS5vbigiY2xpY2siLCIjbW9iaWxlU2xpZGVyICNtb2JpbGVTbGlkZXIyID4gYSIsZnVuY3Rpb24oYSl7aWYoYT1nZXRBY3RpdmVQYWdlKCkpe3ZhciBiPSIiIT0kKHRoaXMpLmF0dHIoImhyZWYiKT8kKHRoaXMpLmF0dHIoImhyZWYiKToiUG9wdXAiO3NlbmRHb29nbGVBbmFseXRpY0Jhbm5lckNsaWNrZWRFdmVudChhLGIpfX0pOwokKGRvY3VtZW50KS5vbigiY2xpY2siLCIjdG9wQmFubmVySW1hZ2UiLGZ1bmN0aW9uKGEpeyhhPWdldEFjdGl2ZVBhZ2UoKSkmJnNlbmRHb29nbGVBbmFseXRpY0Jhbm5lckNsaWNrZWRFdmVudChhLCJQb3B1cCIpfSk7dmFyIGhvbWVQYWdlQmFubmVyVmlldz1bXTskKGRvY3VtZW50KS5vbigiY2xpY2siLCIjaG9tZXBhZ2UtYmFubmVyICNzbGlkZXIgPiBhIixmdW5jdGlvbihhKXsoYT1nZXRBY3RpdmVQYWdlKCkpJiYiQWNjdWVpbCI9PWEmJihhPSQoIiNzbGlkZXIiKS5kYXRhKCJuaXZvOnZhcnMiKS5jdXJyZW50U2xpZGUrMSxnYVRyYWNrKCJjLl90cmFja0V2ZW50IiwiSG9tZS1wYWdlIHNsaWRlciIsIkRlc2t0b3AtY2xpY2siLGEsMSkpfSk7CiQoZG9jdW1lbnQpLm9uKCJuaXZvU2xpZGVyQ2hhbmdlZCBuaXZvU2xpZGVyTG9hZGVkIiwiI2hvbWVwYWdlLWJhbm5lciAjc2xpZGVyIixmdW5jdGlvbihhKXshKGE9Z2V0QWN0aXZlUGFnZSgpKXx8IkFjY3VlaWwiIT1hfHw1MDA8JChkb2N1bWVudCkuc2Nyb2xsVG9wKCl8fChhPSQoIiNzbGlkZXIiKS5kYXRhKCJuaXZvOnZhcnMiKS5jdXJyZW50U2xpZGUrMSwwPiQuaW5BcnJheShhLGhvbWVQYWdlQmFubmVyVmlldykmJihob21lUGFnZUJhbm5lclZpZXcucHVzaChhKSxnYVRyYWNrKCJjLl90cmFja0V2ZW50IiwiSG9tZS1wYWdlIHNsaWRlciIsIkRlc2t0b3AtdmlldyIsYSwxKSkpfSk7CiQoZG9jdW1lbnQpLm9uKCJjbGljayIsIiNtb2JpbGVTbGlkZXIgI21vYmlsZVNsaWRlcjIgPiBhIixmdW5jdGlvbihhKXsoYT1nZXRBY3RpdmVQYWdlKCkpJiYiQWNjdWVpbCI9PWEmJihhPSQoIiNtb2JpbGVTbGlkZXIyIikuZGF0YSgibml2bzp2YXJzIikuY3VycmVudFNsaWRlKzEsZ2FUcmFjaygiYy5fdHJhY2tFdmVudCIsIkhvbWUtcGFnZSBzbGlkZXIiLCJNb2JpbGUtY2xpY2siLGEsMSkpfSk7CiQoZG9jdW1lbnQpLm9uKCJuaXZvU2xpZGVyQ2hhbmdlZCBuaXZvU2xpZGVyTG9hZGVkIiwiI21vYmlsZVNsaWRlciAjbW9iaWxlU2xpZGVyMiIsZnVuY3Rpb24oYSl7IShhPWdldEFjdGl2ZVBhZ2UoKSl8fCJBY2N1ZWlsIiE9YXx8MzUwPCQoZG9jdW1lbnQpLnNjcm9sbFRvcCgpfHwoYT0kKCIjbW9iaWxlU2xpZGVyMiIpLmRhdGEoIm5pdm86dmFycyIpLmN1cnJlbnRTbGlkZSsxLDA+JC5pbkFycmF5KGEsaG9tZVBhZ2VCYW5uZXJWaWV3KSYmKGhvbWVQYWdlQmFubmVyVmlldy5wdXNoKGEpLGdhVHJhY2soImMuX3RyYWNrRXZlbnQiLCJIb21lLXBhZ2Ugc2xpZGVyIiwiTW9iaWxlLXZpZXciLGEsMSkpKX0pOwpmdW5jdGlvbiB0aHJlc2hvbGRQb3B1cCgpe3ZhciBhPWdldFVybFZhcnMoKTtpZihudWxsPT1Db29raWVzLmdldCgicG9wdXBTaG93biIpfHwidW5kZWZpbmVkIiE9dHlwZW9mIGEuZGVidWcpc2hvd1BvcHVwV2lkZ2V0KHtkb05vdFJlZGlyZWN0OiEwfSksQ29va2llcy5zZXQoInBvcHVwU2hvd24iLCIxIiw5MCwiLyIpfWZ1bmN0aW9uIF9sb2NhbFN0b3JhZ2VTZXQoYSxiLGMpe2M9ODY0RTUqKGN8fDEpO2I9e3ZhbHVlOmIsZXhwaXJ5OihuZXcgRGF0ZSkuZ2V0VGltZSgpK2N9O2xvY2FsU3RvcmFnZS5zZXRJdGVtKGEsSlNPTi5zdHJpbmdpZnkoYikpfWZ1bmN0aW9uIF9sb2NhbFN0b3JhZ2VHZXQoYSl7dmFyIGI9bG9jYWxTdG9yYWdlLmdldEl0ZW0oYSk7aWYoIWIpcmV0dXJuIG51bGw7Yj1KU09OLnBhcnNlKGIpO3JldHVybihuZXcgRGF0ZSkuZ2V0VGltZSgpPmIuZXhwaXJ5Pyhsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShhKSxudWxsKTpiLnZhbHVlfQpmdW5jdGlvbiBfbG9jYWxTdG9yYWdlUmVtb3ZlKGEpe2lmKCFsb2NhbFN0b3JhZ2UuZ2V0SXRlbShhKSlyZXR1cm4gbnVsbDtsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShhKTtyZXR1cm4gbnVsbH1mdW5jdGlvbiBnZW5lcmF0ZVVuaXF1ZUlkKCl7cmV0dXJuImlkLSIrRGF0ZS5ub3coKSsiLSIrTWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc2xpY2UoMil9Y29uc3QgaW5pdFRvb2x0aXBzPSgpPT57dHJ5e2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIltkYXRhLXBvcHBlcl0iKS5mb3JFYWNoKGE9PntUb29sdGlwKGEpLmNyZWF0ZSgpfSl9Y2F0Y2goYSl7Y29uc29sZS5sb2coIlRvb2x0aXAgb2JqZWN0IG5vdCBmb3VuZCIpfX07CmZ1bmN0aW9uIGhhbmRsZUNvb2tpZUNvbnRlbnQoKXtkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCJbZGF0YS1jb29raWVoaWRlXSIpLmZvckVhY2goYT0+e2xldCBiPWEuZGF0YXNldC5jb29raWVoaWRlO2IubGVuZ3RoJiZDb29raWVzLmdldChiKSYmKGEuaGlkZGVuPSEwKX0pO2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIltkYXRhLWNvb2tpZXNob3ddIikuZm9yRWFjaChhPT57bGV0IGI9YS5kYXRhc2V0LmNvb2tpZXNob3c7Yi5sZW5ndGgmJkNvb2tpZXMuZ2V0KGIpJiYoYS5oaWRkZW49ITEpfSl9dmFyIHNpdGVQYWdlPXt9Owpjb25zdCBkb2NSZWFkeT1mdW5jdGlvbigpe19sb2NhbFN0b3JhZ2VHZXQoImQyYy11aWQiKXx8X2xvY2FsU3RvcmFnZVNldCgiZDJjLXVpZCIsZ2VuZXJhdGVVbmlxdWVJZCgpLDIpO2lmKCJjb21wbGV0ZSI9PT1kb2N1bWVudC5yZWFkeVN0YXRlKXtsZXQgYTtjb25zb2xlLmxvZygiR1NQRUVELURPQ1JFQURZIENPTVBMRVRFOiIrKERhdGUubm93KCktKG51bGwhPShhPXdpbmRvdy5nVGVzdFNwZWVkQ29ubik\/YTowKSkvMUUzKTtkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIuc2tlbGV0b24tdHh0IikuZm9yRWFjaChiPT57Yi5jbGFzc0xpc3QudG9nZ2xlKCJza2VsZXRvbi10eHQiLCExKX0pO2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5za2VsZXRvbi1zbGlkZXIiKS5mb3JFYWNoKGI9PntiLmNsYXNzTGlzdC50b2dnbGUoInNrZWxldG9uLXNsaWRlciIsITEpfSk7d2luZG93LmdTa2VsZXRvbklzUmVtb3ZlZD0hMDtzaXRlUGFnZT17bmFtZToidW5kZWZpbmVkIiE9dHlwZW9mIHBhZ2U\/CnBhZ2U6IiIsaXNNb2JpbGU6IjEiPT0oZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImlzbW9iaWxlIil8fCIiKS52YWx1ZSxsYW5nOihkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYWN0aXZlc2l0ZWxhbmd1YWdlIil8fCIiKS52YWx1ZXx8IkZSRU5DSCJ9O2hhbmRsZUNvb2tpZUNvbnRlbnQoKTtpbml0VG9vbHRpcHMoKTtkb2NSZWFkeUFyci5mb3JFYWNoKGI9PmIoKSk7ZG9jUmVhZHlBcnI9W119ZWxzZXtsZXQgYTtpZigiaW50ZXJhY3RpdmUiPT09ZG9jdW1lbnQucmVhZHlTdGF0ZSYmd2luZG93LmdSZXNvdXJjZUxvYWRlckFuZEpxdWVyeUlzUmVhZHkmJiExPT09KG51bGwhPShhPXdpbmRvdy5nU2tlbGV0b25Jc1JlbW92ZWQpP2E6ITEpKXtsZXQgYjtjb25zb2xlLmxvZygiR1NQRUVELURPQ1JFQURZIElOVEVSQUNUSVZFOiIrKERhdGUubm93KCktKG51bGwhPShiPXdpbmRvdy5nVGVzdFNwZWVkQ29ubik\/YjowKSkvMUUzKTtkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIuc2tlbGV0b24tdHh0IikuZm9yRWFjaChjPT4Ke2MuY2xhc3NMaXN0LnRvZ2dsZSgic2tlbGV0b24tdHh0IiwhMSl9KTtkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIuc2tlbGV0b24tc2xpZGVyIikuZm9yRWFjaChjPT57Yy5jbGFzc0xpc3QudG9nZ2xlKCJza2VsZXRvbi1zbGlkZXIiLCExKX0pO3dpbmRvdy5nU2tlbGV0b25Jc1JlbW92ZWQ9ITB9c2V0VGltZW91dChkb2NSZWFkeSw1MCl9fTtkb2NSZWFkeSgpOwokKGZ1bmN0aW9uKCl7dmFyIGE9ITA7JCh3aW5kb3cpLm9uKCJzY3JvbGwiLGZ1bmN0aW9uKCl7dmFyIGQ9JChkb2N1bWVudCkuaGVpZ2h0KCksZT0kKHdpbmRvdykuaGVpZ2h0KCkrJCh3aW5kb3cpLnNjcm9sbFRvcCgpOy4wNT4oZC1lKS9kJiZhJiYoYT0hMSwidW5kZWZpbmVkIiE9PXR5cGVvZiBnYVRyYWNrJiZnYVRyYWNrKCJfdHJhY2tFdmVudCIsIkJvdHRvbSBvZiBwYWdlIHJlYWNoZWQiLCQoJ2lucHV0W25hbWU9InRhcmdldFBhZ2UiXScpLnZhbCgpLHdpbmRvdy5sb2NhdGlvbi5ocmVmLDEpKX0pOyQoIi5lbWJlZC1jb250YWluZXIteW91dHViZSIpLnBhcmVudCgiLndyYXBwZXIiKS5yZW1vdmVDbGFzcygid3JhcHBlciIpO2lmKCQoIiNpc0JyYW5kUGFnZSIpLmxlbmd0aCl7dmFyIGI9Z2V0VXJsVmFycygpO2lmKGIua3cmJi0xIT1iLmt3LnRvTG93ZXJDYXNlKCkuaW5kZXhPZigiY2FuYWRhIikpe3ZhciBjPSQoIiNhY3RpdmVzaXRlbGFuZ3VhZ2UiKSYmIkVOR0xJU0giPT0KJCgiI2FjdGl2ZXNpdGVsYW5ndWFnZSIpLnZhbCgpPyJlbiI6ImZyIjtiPSJlbiI9PWM\/IkhlcmUgd2Ugb2ZmZXIgdGhlIGJlc3QgcHJpY2VzIjoiSWNpIG9uIG9mZnJlIGxlcyBtZWlsbGV1cnMgcHJpeCI7Yz0iZW4iPT1jPyJvbiAiKyQoIiNpc0JyYW5kUGFnZSIpLnZhbCgpKyIncyBpbiBDYW5hZGEiOiQoIiNpc0JyYW5kUGFnZSIpLnZhbCgpKyIgYXUgQ2FuYWRhIjskKCIjZGVmYXVsdFRvcEJhbm5lclRpdGxlIikudGV4dChiKTskKCIjZGVmYXVsdFRvcEJhbm5lclRleHQiKS50ZXh0KGMpfX0kKCIjZmluYW5jZU11bHRpc3RlcFBvcHVwQ29udGFpbmVyIikubGVuZ3RoJiYoYj1nZXRVcmxWYXJzKCksYi5maW5hbmNlcG9wJiYieWVzIj09Yi5maW5hbmNlcG9wJiZzZXRUaW1lb3V0KCgpPT57JCgiI2ZpbmFuY2VNdWx0aXN0ZXBQb3B1cENvbnRhaW5lciIpLnBvcHVwaXplKCkub3BlbigpfSwxRTMpKTswPCQoIi50cmFkZXNpaS1yb290IikudGV4dCgpLmxlbmd0aD8kKCIudHJhZGVzaWktcm9vdCIpLmNzcygiei1pbmRleCIsCjFFMyk6c2V0VGltZW91dChmdW5jdGlvbigpeyQoIi50cmFkZXNpaS1yb290IikuY3NzKCJ6LWluZGV4IiwxRTMpfSwxRTMpfSk7ZnVuY3Rpb24gYWRkTWF4TGVuZ3RoKCl7JCgiOmlucHV0IikuZWFjaChmdW5jdGlvbigpe3ZhciBhPSQodGhpcykuYXR0cigidHlwZSIpLGI9JCh0aGlzKS5hdHRyKCJtYXhsZW5ndGgiKTtpZih2b2lkIDA9PWJ8fG51bGw9PWJ8fCIiPT1iKSJ0ZXh0Ij09YXx8InRlbCI9PWF8fCJlbWFpbCI9PWF8fCJ1cmwiPT1hPyQodGhpcykucHJvcCgibWF4bGVuZ3RoIiwyNTYpOiJudW1iZXIiPT1hJiYoJCh0aGlzKS5wcm9wKCJvbmlucHV0IiwidGhpcy52YWx1ZT10aGlzLnZhbHVlLnNsaWNlKDAsdGhpcy5tYXhsZW5ndGgpIiksJCh0aGlzKS5wcm9wKCJtYXhsZW5ndGgiLDI1NikpfSl9ZG9jUmVhZHlBcnIucHVzaCgoKT0+eyQoIi5yZXZlYWwtbW9kYWwiKS5vbigicG9wdXBpemVyLm9uT3BlbiIsZnVuY3Rpb24oKXthZGRNYXhMZW5ndGgoKX0pO2FkZE1heExlbmd0aCgpfSk7CihmdW5jdGlvbihhKXtmdW5jdGlvbiBiKGQsZSl7dGhpcy5lbD1kO3RoaXMuJGVsPWEoZCk7aWYodm9pZCAwPT09ZXx8Im9iamVjdCI9PT10eXBlb2YgZSl0aGlzLnNldHRpbmdzPWEuZXh0ZW5kKGMsZSk7dGhpcy5pbml0KCl9dmFyIGM9e2xhdDoiIixsb25nOiIiLHBvc3RhbDoiIixyYXRpbzouNjg4NSx3aWR0aDoiYXV0byJ9O2IucHJvdG90eXBlPXtpbml0OmZ1bmN0aW9uKCl7dmFyIGQ9dGhpcy4kZWwuaXMoIi5sYXp5bG9hZCIpPyJkYXRhLWltZ3NyYyI6InNyYyI7dGhpcy4kZWwuYXR0cihkLHRoaXMuZ2V0VXJsKCkpfSxpc1Zpc2libGU6ZnVuY3Rpb24oKXt2YXIgZD10aGlzLiRlbC5hdHRyKCJ3aWR0aCIpO3JldHVybiEoIjBweCI9PT10aGlzLiRlbC5hdHRyKCJoZWlnaHQiKXx8IjBweCI9PT1kKX0sZ2V0V2lkdGg6ZnVuY3Rpb24oKXt0aGlzLiRlbC5hdHRyKCJ3aWR0aCIpO3ZhciBkPTA7ImF1dG8iPT09dGhpcy5zZXR0aW5ncy53aWR0aHx8ImF1dG8iPT09dGhpcy4kZWwuZGF0YSgid2lkdGgiKT8KZD10aGlzLiRlbC5wYXJlbnQoKS5jc3MoIndpZHRoIik6aXNOYU4ocGFyc2VJbnQodGhpcy5zZXR0aW5ncy53aWR0aCkpP3ZvaWQgMCE9PXRoaXMuJGVsLmF0dHIoIndpZHRoIikmJihkPXRoaXMuJGVsLmF0dHIoIndpZHRoIikpOmQ9dGhpcy5zZXR0aW5ncy53aWR0aDt0aGlzLiRlbC5hdHRyKCJ3aWR0aCIsZCk7cmV0dXJuIHBhcnNlSW50KGQucmVwbGFjZSgicHgiLCIiKSl9LGdldEhlaWdodDpmdW5jdGlvbigpe3ZhciBkPSJhdXRvIj09PXRoaXMuc2V0dGluZ3Mud2lkdGh8fCJhdXRvIj09PXRoaXMuJGVsLmRhdGEoIndpZHRoIik\/TWF0aC5yb3VuZCh0aGlzLmdldFdpZHRoKCkqdGhpcy5zZXR0aW5ncy5yYXRpbykrInB4Ijp0aGlzLiRlbC5wYXJlbnQoKS5jc3MoImhlaWdodCIpO3RoaXMuJGVsLmF0dHIoImhlaWdodCIsZCk7cmV0dXJuIHBhcnNlSW50KGQucmVwbGFjZSgicHgiLCIiKSl9LGdldFVybDpmdW5jdGlvbigpe3ZhciBkPWdldERhdGFBdHRyaWJ1dGVzKHRoaXMuZWwpLAplPXRoaXMuZ2V0V2lkdGgoKSxrPXRoaXMuZ2V0SGVpZ2h0KCksaD1kLmxhdCsiLCIrZC5sb25nLG49ZC5oYXNPd25Qcm9wZXJ0eSgibWFya2VySWNvbiIpPyJpY29uOiIrZC5tYXJrZXJJY29uKyJ8IjoiIjtkPWEuZXh0ZW5kKHtzaXplOmUrIngiK2ssY2VudGVyOmgsem9vbToiMTIiLG1hcmtlcnM6bitofSxkKTtyZXR1cm4iaHR0cHM6Ly9tYXBzLmdvb2dsZWFwaXMuY29tL21hcHMvYXBpL3N0YXRpY21hcD8iK2EucGFyYW0oZCl9LGRlc3Ryb3k6ZnVuY3Rpb24oKXt0aGlzLiRlbC5yZW1vdmVEYXRhKCl9fTthLmZuLmdvb2dsZVN0YXRpY01hcD1mdW5jdGlvbihkKXt2YXIgZT1hcmd1bWVudHM7aWYoMT50aGlzLmxlbmd0aClyZXR1cm4gdGhpczt0aGlzLmVhY2goZnVuY3Rpb24oKXtpZighYS5kYXRhKHRoaXMsInBsdWdpbl9zdGF0aWNNYXAiKSlyZXR1cm4gYS5kYXRhKHRoaXMsInBsdWdpbl9zdGF0aWNNYXAiLG5ldyBiKHRoaXMsZCkpLHRoaXN9KTtpZigic3RyaW5nIj09PXR5cGVvZiBkJiYKIl8iIT09ZFswXSYmImluaXQiIT09ZCl7MTx0aGlzLmxlbmd0aCYmY29uc29sZS5sb2coImdvb2dsZVN0YXRpY01hcCB3YXJuaW5nIGNvZGUgMSIpO3ZhciBrPWEuZGF0YSh0aGlzLmZpcnN0KClbMF0sInBsdWdpbl9zdGF0aWNNYXAiKTtyZXR1cm4ga1tkXS5hcHBseShrLEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGUsMSkpfXJldHVybiB0aGlzfX0pKGpRdWVyeSk7ZnVuY3Rpb24gcGFyc2VRdWVyeShhKXtpZigxPmEubGVuZ3RoKXJldHVybnt9O2Zvcih2YXIgYj17fSxjPWEuc3BsaXQoIiYiKSxkPTA7ZDxjLmxlbmd0aDtkKyspYT1leHBsb2RlKGNbZF0sIj0iLDEpLGJbYVswXV09YVsxXTtyZXR1cm4gYn1mdW5jdGlvbiBkZWNvZGVTdHJpbmcoYSxiKXtpZigiIj09Ynx8InVuZGVmaW5lZCI9PWIpYj0xO2ZvcihpPTA7aTxiO2krKylhPWRlY29kZVVSSUNvbXBvbmVudChhKTtyZXR1cm4gYX0KZnVuY3Rpb24gZXhwbG9kZShhLGIsYyl7YT1hLnNwbGl0KGIpO2lmKGEubGVuZ3RoPD1jKXJldHVybiBhO2M9YS5zcGxpY2UoMCxjKTtjLnB1c2goYS5qb2luKGIpKTtyZXR1cm4gY31mdW5jdGlvbiBnZXRVcmxWYXJzKCl7dmFyIGE9d2luZG93LmxvY2F0aW9uLnNlYXJjaC5zdWJzdHJpbmcoMSk7cmV0dXJuIHBhcnNlUXVlcnkoYSl9ZnVuY3Rpb24gZ2V0Q29va2llKGEpe3JldHVybiBDb29raWVzLmdldChhKX1mdW5jdGlvbiBzZXRDb29raWUoYSxiLGMpe0Nvb2tpZXMuc2V0KGEsYixjLCIvIil9ZnVuY3Rpb24gZ2V0Q29va2llRDJjKGEpe3JldHVybiBDb29raWVzLmdldChhKX1mdW5jdGlvbiBzZXRDb29raWVEMmMoYSxiLGMpe0Nvb2tpZXMuc2V0KGEsYixjLCIvIil9ZnVuY3Rpb24gaXNTU0woKXtyZXR1cm4iaHR0cHM6Ij09PXdpbmRvdy5sb2NhdGlvbi5wcm90b2NvbH1mdW5jdGlvbiBzZXRTZXNzaW9uQ29va2llKGEsYil7Q29va2llcy5zZXQoYSxiLDAsIi8iKX0KZnVuY3Rpb24gaW5pdExDSShhLGIpe2lmKDIwPGIpcmV0dXJuIGI7Yj1iP2I6MDtpZigidW5kZWZpbmVkIj09dHlwZW9mIExDX0FQSXx8InVuZGVmaW5lZCI9PXR5cGVvZiBMQ19JbnZpdGUpc2V0VGltZW91dChmdW5jdGlvbigpe2luaXRMQ0koYSwrK2IpfSw1MDApO2Vsc2UgaWYoInVuZGVmaW5lZCIhPXR5cGVvZiBMQ19BUEkmJiJ1bmRlZmluZWQiIT10eXBlb2YgTENfSW52aXRlJiZhKXJldHVybiBMQ19BUEkuc2V0X2N1c3RvbV92YXJpYWJsZXMoYSl9ZnVuY3Rpb24gZ2V0UmVmZXJyZXJWYXJGdW5jdGlvbihhKXtyZXR1cm4gZnVuY3Rpb24oKXsiIj09YSYmKGE9ZG9jdW1lbnQucmVmZXJyZXIpO3ZhciBiPWEuaW5kZXhPZigiPyIpKzE7cmV0dXJuIDA8Yj8oYj1hLnNsaWNlKGIpLHBhcnNlUXVlcnkoYikpOnt9fX0KKGZ1bmN0aW9uKGEpe3ZhciBiPXtjYWxsYmFja3M6W10saGFzU2NyaXB0OmZ1bmN0aW9uKCl7dmFyIGU9YSgnaGVhZCBzY3JpcHRbc3JjKj0ibWFwcy5qcy5waHAiXScpO3JldHVybiAwPT1lLmxlbmd0aD8hMTovbWFwc1wuanMvLnRlc3QoZS5hdHRyKCJzcmMiKSl9LGxvYWQ6ZnVuY3Rpb24oZSl7aWYoYi5oYXNTY3JpcHQoKSkidW5kZWZpbmVkIj09PXR5cGVvZiBnb29nbGU\/Yi5jYWxsYmFja3MucHVzaChlKTplKCk7ZWxzZXtiLmNhbGxiYWNrcy5wdXNoKGUpO3RyeXt2YXIgaz0iRU5HTElTSCI9PWEoIiNhY3RpdmVzaXRlbGFuZ3VhZ2UiKS52YWwoKT8iZW4iOiJmciI7KGZ1bmN0aW9uKGgsbix4LHYsZil7aFtmXSYmaFtmXS5tYXBzfHwoaD1uLmNyZWF0ZUVsZW1lbnQoeCksbj1uLmdldEVsZW1lbnRzQnlUYWdOYW1lKHgpWzBdLGguc3JjPXYsaC5hc3luYz0hMSxkb2N1bWVudC5ib2R5LmFkZEV2ZW50TGlzdGVuZXIoImdvb2dsZU1hcHNMb2FkZWQiLGc9Pntmb3IoZz0wO2c8Yi5jYWxsYmFja3MubGVuZ3RoO2crKyliLmNhbGxiYWNrc1tnXS5jYWxsKCl9KSwKbi5wYXJlbnROb2RlLmluc2VydEJlZm9yZShoLG4pKX0pKHdpbmRvdyxkb2N1bWVudCwic2NyaXB0IiwiL2pzL21hcHMuanMucGhwP2xhbmc9IitrLCJnb29nbGUiKX1jYXRjaChoKXtjb25zb2xlLmxvZyhoKX19fX0sYz17YXV0b0NvbXBsZXRlOntjb21wb25lbnRSZXN0cmljdGlvbnM6e2NvdW50cnk6ImNhIn19LHJhZGl1czoxRTV9LGQ9ZnVuY3Rpb24oZSxrKXt2YXIgaD10aGlzO2guZWw9ZTtoLiRlbD1hKGUpO2guc2V0dGluZ3M9YS5leHRlbmQoYyxrKTtoLmFkZHJlc3M9e2NpdHk6IiIsc3RyZWV0X251bWJlcjoiIixzdHJlZXQ6IiIsc3VibG9jYWxpdHk6IiIscHJvdmluY2U6IiIsY291bnRyeToiIixwb3N0YWw6IiJ9O2guJGVsLm9uZSgiZm9jdXMiLGZ1bmN0aW9uKCl7aC5pbml0KCl9KX07ZC5wcm90b3R5cGU9e19jaGVja0Zvckdvb2dsZU1hcHM6ZnVuY3Rpb24oZSl7InVuZGVmaW5lZCI9PT10eXBlb2YgZ29vZ2xlfHwidW5kZWZpbmVkIj09PXR5cGVvZiBnb29nbGUubWFwcz8KYi5sb2FkKGUpOiJmdW5jdGlvbiI9PT10eXBlb2YgZSYmZS5jYWxsKCl9LGdldEFkZHJlc3M6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5hZGRyZXNzfSxfc2V0QWRkcmVzczpmdW5jdGlvbihlKXt2YXIgaz10aGlzO2EuZWFjaChlLGZ1bmN0aW9uKGgsbil7c3dpdGNoKCEwKXtjYXNlIC0xPGEuaW5BcnJheSgic3RyZWV0X251bWJlciIsbi50eXBlcyk6ay5hZGRyZXNzLnN0cmVldF9udW1iZXI9bjticmVhaztjYXNlIC0xPGEuaW5BcnJheSgicm91dGUiLG4udHlwZXMpOmsuYWRkcmVzcy5zdHJlZXQ9bjticmVhaztjYXNlIC0xPGEuaW5BcnJheSgic3VibG9jYWxpdHkiLG4udHlwZXMpOmsuYWRkcmVzcy5zdWJsb2NhbGl0eT1uO2JyZWFrO2Nhc2UgLTE8YS5pbkFycmF5KCJsb2NhbGl0eSIsbi50eXBlcyk6Y2FzZSAtMTxhLmluQXJyYXkoImFkbWluaXN0cmF0aXZlX2FyZWFfbGV2ZWxfMyIsbi50eXBlcyk6IiI9PWsuYWRkcmVzcy5jaXR5JiYoay5hZGRyZXNzLmNpdHk9bik7YnJlYWs7CmNhc2UgLTE8YS5pbkFycmF5KCJhZG1pbmlzdHJhdGl2ZV9hcmVhX2xldmVsXzEiLG4udHlwZXMpOmsuYWRkcmVzcy5wcm92aW5jZT1uO2JyZWFrO2Nhc2UgLTE8YS5pbkFycmF5KCJjb3VudHJ5IixuLnR5cGVzKTprLmFkZHJlc3MuY291bnRyeT1uO2JyZWFrO2Nhc2UgLTE8YS5pbkFycmF5KCJwb3N0YWxfY29kZSIsbi50eXBlcyk6ay5hZGRyZXNzLnBvc3RhbD1ufX0pfSxfc2V0U2VhcmNoQm91bmRzOmZ1bmN0aW9uKGUsayxoKXtrPW5ldyBnb29nbGUubWFwcy5MYXRMbmcoayxoKTtrPW5ldyBnb29nbGUubWFwcy5DaXJjbGUoe2NlbnRlcjprLHJhZGl1czp0aGlzLnNldHRpbmdzLnJhZGl1c30pO2Uuc2V0Qm91bmRzKGsuZ2V0Qm91bmRzKCkpfSxpbml0OmZ1bmN0aW9uKCl7dmFyIGU9dGhpcztlLl9jaGVja0Zvckdvb2dsZU1hcHMoZnVuY3Rpb24oKXt2YXIgaz1uZXcgZ29vZ2xlLm1hcHMuR2VvY29kZXIsaD1uZXcgZ29vZ2xlLm1hcHMucGxhY2VzLkF1dG9jb21wbGV0ZShlLmVsLAplLnNldHRpbmdzLmF1dG9Db21wbGV0ZSk7ZS5zZXR0aW5ncy5oYXNPd25Qcm9wZXJ0eSgibGF0IikmJmUuc2V0dGluZ3MuaGFzT3duUHJvcGVydHkoImxvbmciKT8iIiE9PWUuc2V0dGluZ3MubGF0JiYiIiE9PWUuc2V0dGluZ3MubG9uZyYmZS5fc2V0U2VhcmNoQm91bmRzKGgsZS5zZXR0aW5ncy5sYXQsZS5zZXR0aW5ncy5sb25nKTplLnNldHRpbmdzLmhhc093blByb3BlcnR5KCJhZGRyZXNzIik\/ZS5zZXR0aW5ncy5hZGRyZXNzJiZrLmdlb2NvZGUoe2FkZHJlc3M6ZS5zZXR0aW5ncy5hZGRyZXNzfSxmdW5jdGlvbihuLHgpe2UuX3NldFNlYXJjaEJvdW5kcyhoLG5bMF0uZ2VvbWV0cnkubG9jYXRpb24ubGF0KCksblswXS5nZW9tZXRyeS5sb2NhdGlvbi5sbmcoKSl9KToidW5kZWZpbmVkIiE9PXR5cGVvZiBmb290ZXJNYXBBZGRyZXNzJiYwPGZvb3Rlck1hcEFkZHJlc3MubGVuZ3RoJiZrLmdlb2NvZGUoe2FkZHJlc3M6Zm9vdGVyTWFwQWRkcmVzc1swXS5hZGRyZXNzfSxmdW5jdGlvbihuLAp4KXtlLl9zZXRTZWFyY2hCb3VuZHMoaCxuWzBdLmdlb21ldHJ5LmxvY2F0aW9uLmxhdCgpLG5bMF0uZ2VvbWV0cnkubG9jYXRpb24ubG5nKCkpfSk7Z29vZ2xlLm1hcHMuZXZlbnQuYWRkTGlzdGVuZXIoaCwicGxhY2VfY2hhbmdlZCIsZnVuY3Rpb24oKXt2YXIgbj1oLmdldFBsYWNlKCk7ZS5fc2V0QWRkcmVzcyhuLmFkZHJlc3NfY29tcG9uZW50cyk7ZS4kZWwudmFsKG4uZm9ybWF0dGVkX2FkZHJlc3MpO249bmV3IEV2ZW50KCJpbnB1dCIpO2UuZWwuZGlzcGF0Y2hFdmVudChuKTtlLiRlbC50cmlnZ2VyKCJmb2N1cyIpfSl9KX19O2EuZm4uZ29vZ2xlUGxhY2VzPWZ1bmN0aW9uKGUpe3ZhciBrPWFyZ3VtZW50cztpZih2b2lkIDA9PT1lfHwib2JqZWN0Ij09PXR5cGVvZiBlKXJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXthLmRhdGEodGhpcywicGx1Z2luX3BsYWNlcyIpfHxhLmRhdGEodGhpcywicGx1Z2luX3BsYWNlcyIsbmV3IGQodGhpcyxlKSl9KTtpZigic3RyaW5nIj09PXR5cGVvZiBlJiYKIl8iIT09ZVswXSYmImluaXQiIT09ZSl7dmFyIGg9YS5kYXRhKHRoaXNbMF0sInBsdWdpbl9wbGFjZXMiKTtyZXR1cm4gaFtlXS5hcHBseShoLEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGssMSkpfX19KShqUXVlcnkpOwpmdW5jdGlvbiBzaG93QmFubmVyUG9wdXAoYSl7dHJ5eyQoYSkuaGFzQ2xhc3MoInRyYWRlaW5MaW5rIikmJigwPGEuZ2V0QXR0cmlidXRlKCJ0YXJnZXRVUkkiKS5pbmRleE9mKCJ0cmFkZWludmFsdWVzIil8fDA8YS5nZXRBdHRyaWJ1dGUoInRhcmdldFVSSSIpLmluZGV4T2YoImluc3RhbnRvZmZlci5hY2N1LXRyYWRlLmNvbSIpKT9zaG93VHJhZGVJblBvcHVwKGEuZ2V0QXR0cmlidXRlKCJ0YXJnZXRVUkkiKSk6MDwkKCIjYmFubmVyUG9wdXBDb250YWluZXIiKS5sZW5ndGgmJiQoIiNiYW5uZXJQb3B1cENvbnRhaW5lciIpLnBvcHVwaXplKCkuc2V0VHJpZ2dlcigiY2xpY2siKS5vcGVuKCl9Y2F0Y2goYil7Y29uc29sZSYmY29uc29sZS5sb2cmJmNvbnNvbGUubG9nKCJVbmFibGUgdG8gZGlzcGxheSB0cmFkZWludmFsdWVzIGlmcmFtZS4gRXJyb3I6ICIrYi5tZXNzYWdlKX19CiQoZnVuY3Rpb24oKXswPCQoJ2lucHV0W2RhdGEtZ29vZ2xlLXBsYWNlcz0idHJ1ZSJdJykubGVuZ3RoJiYkKCdpbnB1dFtkYXRhLWdvb2dsZS1wbGFjZXM9InRydWUiXScpLmdvb2dsZVBsYWNlcygpOyJ1bmRlZmluZWQiIT09dHlwZW9mICQuZm4uZGFya1Rvb2x0aXAmJigkKCIjc29jaWFsX21lZGlhX2ljb25zX2RpdiBhLCAuZ1JhdGluZy1pY29uIikuZGFya1Rvb2x0aXAoe2dyYXZpdHk6Im5vcnRoIixvcGFjaXR5OjF9KSwkKCIuc29jaWFsLW1lZGlhLWljb25zIFtkYXRhLXRvb2x0aXBdIikuZGFya1Rvb2x0aXAoe2dyYXZpdHk6InNvdXRoIixvcGFjaXR5OjF9KSwkKCIjbWl0c3ViaXNoaUNlcnRpZmllZEZvb3RlciBhLnNvY2lhbC1tZWRpYV9faWNvbiwgI2h5dW5kYWlDZXJ0aWZpZWRGb290ZXIgYS5zb2NpYWwtbWVkaWFfX2ljb24iKS5kYXJrVG9vbHRpcCh7Z3Jhdml0eToic291dGgiLG9wYWNpdHk6MX0pKTt2YXIgYT0kKCIuZ3JheWJveC51c2VkRGV0YWlsc1Bob25lLCAuZ3JheWJveC5uZXdEZXRhaWxzUGhvbmUiKTsKMD09PWEuY2hpbGRyZW4oKS5sZW5ndGgmJjA9PT1hLnRleHQoKS50cmltKCkubGVuZ3RoJiZhLmhpZGUoKX0pOyQoIiNmaW5hbmNlQWx0RGlzcGxheSAuc3RlcDEgYmlnLnRleHQgYmlnIikuYXR0cigiZGF0YS1kZXBhcnRtZW50IiwiRmluYW5jZSIpOyQoIi5jcmVkaXRfbV9jYWxsdXNfd3JhcHBlciBhIikuYXR0cigiZGF0YS1kZXBhcnRtZW50IiwiRmluYW5jZSIpOwokKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpeyQoIiNkaXZDZXJ0aWZpY2F0aW9uLWNhcmd1cnVzLXdyYXBwZXIiKS5sZW5ndGgmJihlbGVtZW50VG9PYnNlcnZlPXdpbmRvdy5kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGl2Q2VydGlmaWNhdGlvbi1jYXJndXJ1cy13cmFwcGVyIikuY2hpbGRyZW5bMF0sb2JzZXJ2ZXI9bmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24oYSxiKXtiPSQoIiNkaXZDZXJ0aWZpY2F0aW9uLWNhcmd1cnVzLXdyYXBwZXIiKTtsZXQgYz0kKCJzcGFuW2RhdGEtY2ctZXJyb3JdIixiKTtjb25zb2xlLmxvZygiRDJDRyIsYixjLGEpO2MubGVuZ3RoJiZiLnJlbW92ZSgpfSksb2JzZXJ2ZXIub2JzZXJ2ZShlbGVtZW50VG9PYnNlcnZlLHtjaGFyYWN0ZXJEYXRhOiExLGNoaWxkTGlzdDohMCxhdHRyaWJ1dGVzOiExfSkpfSk7JChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKXstMTx3aW5kb3cubG9jYXRpb24uaHJlZi5pbmRleE9mKCIvbmV3LyIpfHwkKCIjbmV3LXZkcC1zcGVjLWJyb2NodXJlIikuaGlkZSgpfSk7CiQoZnVuY3Rpb24oKXskKCIjRm9vdGVyX0ZJTkFOQ0UgPiBhLCBhI0ZpbmFuY2VBY3Rpb25Cb3gsIGEjRmluYW5jZUFjdGlvbkJveExpbmsiKS5vbigibW91c2VlbnRlciBtb3VzZWxlYXZlIixmdW5jdGlvbigpe3ZhciBhPSQodGhpcyksYj0kKCJodG1sIikuYXR0cigibGFuZyIpO2lmKDA8JCgiI0RFQUxFUlBBQ09ERSIpLmxlbmd0aCl7dmFyIGM9JCgiI0RFQUxFUlBBQ09ERSIpLnZhbCgpLGQ9JCgiI0RFQUxFUkJSQU5EX1BSSU1BUlkiKS52YWwoKS50b0xvd2VyQ2FzZSgpO2lmKCJmb3JkX2xpbmNvbG5fZXh0ZXJuYWwiPT0kKCIjRklOQU5DRUZPUk1UWVBFIikudmFsKCkmJigiZm9yZCI9PWR8fCJsaW5jb2xuIj09ZCkmJiIiIT1jKXt2YXIgZT0oImVuIj09Yj8iaHR0cHM6Ly93d3cuZm9yZC5jYS9maW5hbmNlL2FwcGx5LzE\/U291cmNlT2ZEYXRhPUNBRENGJmRlYWxlcklkPSI6Imh0dHBzOi8vZnIuZm9yZC5jYS9maW5hbmNlL2FwcGx5LzE\/U291cmNlT2ZEYXRhPUNBRENGJmRlYWxlcklkPSIpKwpjO2I9KCJlbiI9PWI\/Imh0dHBzOi8vd3d3LmxpbmNvbG5jYW5hZGEuY29tL2ZpbmFuY2UvYXBwbHkvMT9Tb3VyY2VPZkRhdGE9Q0FEQ0wmZGVhbGVySWQ9IjoiaHR0cHM6Ly9mci5saW5jb2xuY2FuYWRhLmNvbS9maW5hbmNlL2FwcGx5LzE\/U291cmNlT2ZEYXRhPUNBRENMJmRlYWxlcklkPSIpK2M7YS5vZmYoImNsaWNrIik7YS5hdHRyKCJocmVmIiwiZm9yZCI9PWQ\/ZTpiKTthLmF0dHIoInRhcmdldCIsIl9ibGFuayIpfX19KX0pOwokKHdpbmRvdykub24oImxvYWQiLGZ1bmN0aW9uKCl7dHJ5e2lmKGdldFBhcmFtZXRlckJ5TmFtZSgicHJvbW8iKSl7dmFyIGE9MDxhY3RpdmF0ZWRQb3B1cERpdklELmxlbmd0aD9hY3RpdmF0ZWRQb3B1cERpdklEOiExO2lmKGEmJjA8YS5sZW5ndGgpe3ZhciBiPSQoIiMiK2EpLnBvcHVwaXplKHtwcmlvcml0eToxMDAsZW5kUG9wdXBRdWV1ZTohMH0pO3BvcHVwU3VwZXJ2aXNvci5yZWdpc3RlcihiKX19Im9iamVjdCI9PXR5cGVvZiBwb3B1cFN1cGVydmlzb3ImJnNldFRpbWVvdXQocG9wdXBTdXBlcnZpc29yLnNob3csNTAwKX1jYXRjaChjKXtjb25zb2xlLmxvZyhjKX19KTsKJChmdW5jdGlvbigpeyQoIi5uYXYgYSIpLm9uKCJjbGljayIsZnVuY3Rpb24oYSl7InVuZGVmaW5lZCIhPXR5cGVvZiBhY3RpdmVVc2VyUHJvZmlsZU1uZyYmInVuZGVmaW5lZCIhPXR5cGVvZiBhY3RpdmVVc2VyUHJvZmlsZU1uZy5sb2dQYWdlVmlld0V2ZW50JiYoKGE9JCh0aGlzKS5hdHRyKCJocmVmIikpJiYhUmVnRXhwKCJqYXZhc2NyaXB0OiIsImdpIikudGVzdChhKSYmYWN0aXZlVXNlclByb2ZpbGVNbmcubG9nUGFnZVZpZXdFdmVudChhLCJNRU5VX2NsaWNrZWRfVVJMIiksKGE9Ii8iPT1hPyJIb21lIjokKHRoaXMpLnRleHQoKSkmJmFjdGl2ZVVzZXJQcm9maWxlTW5nLmxvZ1BhZ2VWaWV3RXZlbnQoYSwiTUVOVV9jbGlja2VkX0lORk8iKSl9KX0pOwp2YXIgRDJDVXRpbHM9e0xhbmc6e2lzRU46ZnVuY3Rpb24oKXtyZXR1cm4hKCJmdW5jdGlvbiI9PT10eXBlb2YgJCYmJCgiQk9EWSIpLmhhc0NsYXNzKCJGUkVOQ0giKSl9LGdldFNob3J0TGFuZzpmdW5jdGlvbihhKXtyZXR1cm4gRDJDVXRpbHMuTGFuZy5pc0VOKCk\/YT8iRU4iOiJlbiI6YT8iRlIiOiJmciJ9fSxGb3JtYXQ6e3RvTnVtYmVyOmZ1bmN0aW9uKGEpe2E9YS50b1N0cmluZygpLnNwbGl0KCIuIik7Zm9yKHZhciBiPS8oXGQrKShcZHszfSkvO2IudGVzdChhWzBdKTspYVswXT1hWzBdLnJlcGxhY2UoYiwiJDEsJDIiKTtyZXR1cm4gYVswXX0sdG9QcmljZTpmdW5jdGlvbihhLGIpe3JldHVybiBiPyhiPUQyQ1V0aWxzLkxhbmcuaXNFTigpPyIiOiIgJCIsYCR7RDJDVXRpbHMuTGFuZy5pc0VOKCk\/IiQiOiIifSR7RDJDVXRpbHMuRm9ybWF0LnRvTnVtYmVyKGEpfSR7Yn1gKTpgPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+JHtEMkNVdGlscy5Gb3JtYXQudG9OdW1iZXIoYSl9PC9zcGFuPmB9fSwKTnVtYmVyOntyb3VuZERvd246ZnVuY3Rpb24oYSl7dmFyIGI9Mj09PWFyZ3VtZW50cy5sZW5ndGg\/cGFyc2VJbnQoYXJndW1lbnRzWzFdKToxO3JldHVybiBNYXRoLmZsb29yKGEvYikqYn0scm91bmRVcDpmdW5jdGlvbihhKXt2YXIgYj0yPT09YXJndW1lbnRzLmxlbmd0aD9wYXJzZUludChhcmd1bWVudHNbMV0pOjE7cmV0dXJuIE1hdGguY2VpbChhL2IpKmJ9fSxBcnJheXM6e2ZpbmQ6ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPWEubGVuZ3RoO2lmKDA8ZClmb3IodmFyIGU9MDtlPGQ7ZSsrKWlmKGFbZV1bYl09PWMpcmV0dXJuIGFbZV07cmV0dXJuLTF9fSxTdHJpbmc6e2NhcGl0YWxpemVGaXJzdExldHRlcjpmdW5jdGlvbihhKXtyZXR1cm4gU3RyaW5nKGEpLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpK1N0cmluZyhhKS5zbGljZSgxKX19LE1vYmlsZTp7aXNNb2JpbGU6ZnVuY3Rpb24oKXtyZXR1cm4gMDwkKCIjaXNNb2JpbGUiKS5sZW5ndGh9fX07CmZ1bmN0aW9uIHNldHVwRmluYW5jaW5nTGluayhhLGIpezQ4NT09KCQoIiNzaXRlSUQiKS52YWwoKXx8JCgiI3RvcHNpdGVpZCIpLnZhbCgpKSYmYi5jbGVhcmFuY2UmJjA8YS5sZW5ndGgmJihiPSQoIiNNYWluTWVudV9mNDgyYmFhYi1hYWM0LWVkYTYtNmI1Mi0zID4gYSIpLDA9PWIubGVuZ3RoJiYoYj0kKCIuQ0xFQVJBTkNFIikucGFyZW50KCkuZmluZCgiLnN1Ym1lbnVJdGVtOmZpcnN0LWNoaWxkIikpLDA8Yi5sZW5ndGgmJihiPWIuYXR0cigiaHJlZiIpLCIiIT09YiYmYS5hdHRyKCJocmVmIixiKSkpfXZhciBvcGVuV2luZG93cz1bXSx3aW5kb3dPcGVuT0c9d2luZG93Lm9wZW47CndpbmRvdy5vcGVuPWZ1bmN0aW9uKCl7dmFyIGE9d2luZG93T3Blbk9HLmFwcGx5KHRoaXMsYXJndW1lbnRzKSxiPXt3aW5kb3c6YSxhcmdzOmFyZ3VtZW50c307b3BlbldpbmRvd3MucHVzaChiKTsidW5kZWZpbmVkIiE9PXR5cGVvZiBqUXVlcnkmJmpRdWVyeShkb2N1bWVudCkudHJpZ2dlcigid2luZG93Lm9wZW4iLGIpO3JldHVybiBhfTsKJChmdW5jdGlvbigpeyQoZG9jdW1lbnQpLm9uKCJ3aW5kb3cub3BlbiIsZnVuY3Rpb24oYSxiKXthPWIuYXJncztmb3IodmFyIGM9ITEsZD0wO2Q8YS5sZW5ndGg7ZCsrKWlmKC0xPGFbZF0uaW5kZXhPZigiY2FyZmF4Iil8fGFbZF0uaW5kZXhPZigiY2FycHJvb2YiKSl7Yz0hMDticmVha31pZihjKXthPXdpbmRvdy5zY3JlZW4uYXZhaWxIZWlnaHR8fHdpbmRvdy5pbm5lckhlaWdodHx8ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodHx8ZG9jdW1lbnQuYm9keS5jbGllbnRIZWlnaHQ7dHJ5e2Iud2luZG93LnJlc2l6ZVRvKGIud2luZG93Lm91dGVyV2lkdGgsTWF0aC5yb3VuZCguOTUqYSkpfWNhdGNoKGUpe319fSl9KTsKJChmdW5jdGlvbigpe3ZhciBhPSQoIi51cF9tZW51IiksYj0kKCIucHJvbW90aW9uU2lkZVZCdXR0b24iKSxjPSQoJyNzbGlkZWl0ID4gbGFiZWxbZm9yPSJvcGVuLWl0ZW0iXTpub3QoLnRleHQtdXMtYnRuKScpO2lmKGEubGVuZ3RoJiZiLmxlbmd0aCl7dmFyIGQ9ITEsZT1mdW5jdGlvbigpe3ZhciBrPSQod2luZG93KS5zY3JvbGxUb3AoKSxoPSQod2luZG93KS5oZWlnaHQoKTtrPWEub2Zmc2V0KCkudG9wK2Eub3V0ZXJIZWlnaHQoKSsxMDAtaztiLmNzcyh7cG9zaXRpb246ImZpeGVkIix0b3A6TWF0aC5tYXgoaC8yLGspKyJweCIsdHJhbnNmb3JtOiJ0cmFuc2xhdGVZKC01MCUpIix0cmFuc2l0aW9uOiJub25lIn0pO2MubGVuZ3RoJiYoaD1iWzBdLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmJvdHRvbSxjLmNzcyh7cG9zaXRpb246ImZpeGVkIix0b3A6aCs1KyJweCJ9KSk7ZD0hMX07JCh3aW5kb3cpLm9uKCJzY3JvbGwgcmVzaXplIixmdW5jdGlvbigpe2R8fCh3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKGUpLApkPSEwKX0pO3NldFRpbWVvdXQoZSwxMDApfX0pO2Z1bmN0aW9uIHJlcGxhY2VVc2VkVmVoaWNsZU1vZGVsRGlzcGxheShhKXtpZigic3RyaW5nIj09PXR5cGVvZiBhfHxhIGluc3RhbmNlb2YgU3RyaW5nKSJmdW5jdGlvbiI9PT10eXBlb2YgJCYmJCgiQk9EWSIpLmhhc0NsYXNzKCJGUkVOQ0giKXx8LTEhPT1hLmluZGV4T2YoIkh5YnJpZGUiKSYmKGE9YS5yZXBsYWNlKCJIeWJyaWRlIiwiSHlicmlkIikpO3JldHVybiBhfQokKGZ1bmN0aW9uKCl7aWYoJCgiLnBheXBhbF9idXR0b25faHRtbCIpLmxlbmd0aCl7dmFyIGE9JCgiQk9EWSIpLmhhc0NsYXNzKCJGUkVOQ0giKT8iZnIiOiJlbiIsYj0kKCJCT0RZIikuaGFzQ2xhc3MoIkZSRU5DSCIpPyJSw6lzZXJ2ZXotbGUgYXZlYyBQYXlQYWwgISI6IlJlc2VydmUgaXQgIHdpdGggUGF5UGFsICEiOyQoIi5wYXlwYWxfYnV0dG9uX2h0bWwiKS5maW5kKCdpbnB1dFt0eXBlPSJpbWFnZSJdW25hbWU9InN1Ym1pdCJdJykuYXR0cigic3JjIiwiL2ltYWdlcy9jb250aW51ZV93aXRoX3BheXBhbF8iK2ErIi5wbmciKTskKCIucGF5cGFsX2J1dHRvbl9odG1sIikuZmluZCgiZm9ybSIpLmF0dHIoInRhcmdldCIsInBheXBhbElmcmFtZSIpOyQoIi5wYXlwYWxfYnV0dG9uX2h0bWwiKS5maW5kKCJ0YWJsZSB0cjpmaXJzdCB0ZCIpLmNvbnRlbnRzKCkuZmlsdGVyKGZ1bmN0aW9uKCl7cmV0dXJuIDM9PXRoaXMubm9kZVR5cGV9KS5maXJzdCgpLnJlcGxhY2VXaXRoKGIpOyQoIi5wYXlwYWxfYnV0dG9uX2h0bWwgZm9ybSIpLmZpbmQoJ1tuYW1lPSJpdGVtX25hbWUiXScpLnJlbW92ZSgpOwokKCIucGF5cGFsX2J1dHRvbl9odG1sIGZvcm0iKS5maW5kKCdbbmFtZT0iaXRlbV9udW1iZXIiXScpLnJlbW92ZSgpO2E9JzxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Iml0ZW1fbmFtZSIgdmFsdWU9IicrJCgiI3Bob25lbWFrZSIpLnZhbCgpKyIgIiskKCIjcGhvbmVtb2RlbCIpLnZhbCgpKyIgIiskKCIjcGhvbmVteWVhciIpLnZhbCgpKyIgU3RvY2soIyIrJCgiI3Bob25lc3RvY2tudW1iZXIiKS52YWwoKSsnKSI+JzskKCIucGF5cGFsX2J1dHRvbl9odG1sIGZvcm0iKS5hcHBlbmQoYSk7JCgiLnBheXBhbF9idXR0b25faHRtbCIpLmZpbmQoJ2lucHV0W3R5cGU9ImltYWdlIl1bbmFtZT0ic3VibWl0Il0nKS5vbigiY2xpY2siLGZ1bmN0aW9uKCl7Z2FUcmFjaygiYy5fdHJhY2tFdmVudCIsIkNsaXF1ZXMgUGF5UGFsIiwiT2NjYXNpb24iLCQoIiNoaWRkZW5EZWFsZXJOYW1lIikudmFsKCkrIi0iKyQoIiNwaG9uZW1ha2UiKS52YWwoKSsiLSIrJCgiI3Bob25lbW9kZWwiKS52YWwoKSsKIi0iKyQoIiNwaG9uZW15ZWFyIikudmFsKCkrIi0iKyQoIiNwaG9uZXN0b2NrbnVtYmVyIikudmFsKCksMSl9KTskKCIjcGF5cGFsUG9wdXAiKS5kZXRhY2goKS5hcHBlbmRUbygiYm9keSIpOyQoJy5wYXlwYWxfYnV0dG9uX2h0bWwgaW5wdXRbbmFtZT0ic3VibWl0Il0nKS5vbigiY2xpY2siLGZ1bmN0aW9uKCl7JCgiI3BheXBhbFBvcHVwIikucG9wdXBpemUoKS5zZXRUcmlnZ2VyKCJjbGljayIpLm9wZW4oKX0pOyQoIi5wYXlwYWxfYnV0dG9uX2h0bWwiKS5zaG93KCl9JCgiI3Rlc3REcml2ZVR5cGUiKS5sZW5ndGgmJigiVmlydHVhbCI9PSQoIiN0ZXN0RHJpdmVUeXBlIikudmFsKCl8fCJWaXJ0dWVsIj09JCgiI3Rlc3REcml2ZVR5cGUiKS52YWwoKSkmJiQoIi5wcmVmZXJlZFZpcnR1YWxUb29sIikuc2hvdygpfSk7CmZ1bmN0aW9uIHByaWNlUmVxdWVzdENvbW1lbnRUZXh0KCl7dmFyIGE9JCgiI2FjdGl2ZXNpdGVsYW5ndWFnZSIpLGI9JCgiI2lzbW9iaWxlIiksYz0kKCIjcXVlc3Rpb25zQ29tbWVudHMiKTthPSJFTkdMSVNIIj09YS52YWwoKT8iSGksIEknZCBsaWtlIHRvIGdldCB5b3VyIGJlc3QgcHJpY2Ugb24gYSAwICAiOiJCb25qb3VyLCBqJ2FpbWVyYWlzIGF2b2lyIHZvdHJlIG1laWxsZXVycyBwcml4IHBvdXIgdW4gICAwIjswPGIubGVuZ3RoJiYiMSI9PWIudmFsKCkmJjA8Yy5sZW5ndGgmJmMudmFsKCk9PWEmJmMudmFsKCIiKX0kKGZ1bmN0aW9uKCl7cHJpY2VSZXF1ZXN0Q29tbWVudFRleHQoKX0pOwokKGZ1bmN0aW9uKCl7dmFyIGE9JCgiI2Zvb3RlciAuaWNvbi10ZXh0IHNwYW5baXRlbXByb3A9J3RlbGVwaG9uZSddIGEucGhvbmUtbGluayIpLGI9JCgiI2Zvb3RlciAuaWNvbi10ZXh0IC5mYS1waG9uZSIpOzA8YS5sZW5ndGgmJjA8Yi5sZW5ndGgmJiIiPT1hLmh0bWwoKS50cmltKCkmJmIuaGlkZSgpfSk7CmZ1bmN0aW9uIHBhZ2VWaWV3Q291bnRHb29nbGVFdmVudCgpe3ZhciBhPXdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSxiPTAsYz1zZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCJkMmNfVkRQTVYiKTtudWxsIT1jPyhjPUpTT04ucGFyc2UoYyksYj1udWxsIT1jW2FdP2NbYV06MCxjW2FdPXBhcnNlSW50KGIpKzEpOihjPXt9LGNbYV09MSk7YT0iMSI9PSQoIiNuZXdTZWN0aW9uT3ZlcnJpZGUiKS52YWwoKT8iTkVXIjokKCIjZGVmYXVsdERlcGFydG1lbnQiKS52YWwoKTswPT1iP2dhVHJhY2soImMuX3RyYWNrRXZlbnQiLCJWRFAgbXVsdGlwbGUgdmlld3MiLGEsIjF4IiwxKToxPT1iP2dhVHJhY2soImMuX3RyYWNrRXZlbnQiLCJWRFAgbXVsdGlwbGUgdmlld3MiLGEsIjJ4IiwxKTpnYVRyYWNrKCJjLl90cmFja0V2ZW50IiwiVkRQIG11bHRpcGxlIHZpZXdzIixhLCIzeCsiLDEpO3Nlc3Npb25TdG9yYWdlLnNldEl0ZW0oImQyY19WRFBNViIsSlNPTi5zdHJpbmdpZnkoYykpfQokLmZuLmlzSW5WaWV3cG9ydD1mdW5jdGlvbigpe3ZhciBhPSQodGhpcykub2Zmc2V0KCkudG9wLGI9YSskKHRoaXMpLm91dGVySGVpZ2h0KCksYz0kKHdpbmRvdykuc2Nyb2xsVG9wKCksZD1jKyQod2luZG93KS5oZWlnaHQoKTtyZXR1cm4gYj5jJiZhPGR9OyQuZm4uaXNBYm92ZVZpZXdwb3J0PWZ1bmN0aW9uKGEpe2E9YXx8MDt2YXIgYj0kKHRoaXMpLm9mZnNldCgpLnRvcCskKHRoaXMpLm91dGVySGVpZ2h0KCksYz0kKHdpbmRvdykuc2Nyb2xsVG9wKCk7cmV0dXJuIGI+YythfTtmdW5jdGlvbiBzZXRQb3B1cE9wZW5PbkNsaWNrKCl7JCgiW2RhdGEtcG9wdXBpZF0iKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIGE9JCh0aGlzKS5hdHRyKCJkYXRhLXBvcHVwaWQiKTskKHRoaXMpLm9uKCJjbGljayB0YXAiLGZ1bmN0aW9uKGIpe2IucHJldmVudERlZmF1bHQoKTskKCIjIithKS5wb3B1cGl6ZSgpLnNldFRyaWdnZXIoImNsaWNrIikub3BlbigpfSl9KX0KZnVuY3Rpb24gYWRkRGVhbGVySW5zaWRlU2NyaXB0KCl7aWYoJCgiLmRlYWxlci1pbnNpZGUtY3RhLWFjdGlvbi1ib3giKS5sZW5ndGgpe3ZhciBhPSQoIi5kZWFsZXItaW5zaWRlLWN0YS1hY3Rpb24tYm94IikuYXR0cigiZGF0YS1pZERlYWxlciIpLGI9JCgiLmRlYWxlci1pbnNpZGUtY3RhLWFjdGlvbi1ib3giKS5hdHRyKCJkYXRhLWxhbmciKSxjPSQoIi5kZWFsZXItaW5zaWRlLWN0YS1hY3Rpb24tYm94IikuYXR0cigiZGF0YS1idXR0b24tdHlwZSIpLGQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7ZC5zZXRBdHRyaWJ1dGUoInR5cGUiLCJ0ZXh0L2phdmFzY3JpcHQiKTtkLnNldEF0dHJpYnV0ZSgic3JjIiwiaHR0cHM6Ly9kZWFsZXJpbnNpZGVhcHAuY29tL3dpZGdldHMvZGVhbGVyX2luc2lkZV9jYWxsLmpzP2RlYWxlcklkPSIrYSsiJmxhbmc9IitiKyImYnV0dG9uVHlwZT0iK2MpO2RvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJoZWFkIilbMF0uYXBwZW5kQ2hpbGQoZCl9fQokKGZ1bmN0aW9uKCl7c2V0UG9wdXBPcGVuT25DbGljaygpO2FkZERlYWxlckluc2lkZVNjcmlwdCgpfSk7ZnVuY3Rpb24gbW90b2luc2lnaHRTaG9wR29vZ2xlT3B0aW1pemUoKXskKCIjanMtbW90b2luc2lnaHRTaG9wUG9wdXBDb250YWluZXItaW5wdXQiKS5sZW5ndGgmJiQoIi5qcy1tb3RvaW5zaWdodFNob3BQb3B1cENvbnRhaW5lciIpLmxlbmd0aCYmJCgiLmpzLW1vdG9pbnNpZ2h0U2hvcFBvcHVwQ29udGFpbmVyIikuYXR0cigiZGF0YS1tb3RvaW5zaWdodHNob3BpZnJhbWV1cmwiLCQoIiNqcy1tb3RvaW5zaWdodFNob3BQb3B1cENvbnRhaW5lci1pbnB1dCIpLnZhbCgpKX1mdW5jdGlvbiBodG1sVG9Ob2RlKGEpe3ZhciBiPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2IuaW5uZXJIVE1MPWEudHJpbSgpO3JldHVybiBiLmZpcnN0RWxlbWVudENoaWxkfQpmdW5jdGlvbiBodG1sVG9Eb2N1bWVudEZyYWcoYSl7cmV0dXJuIGRvY3VtZW50LmNyZWF0ZVJhbmdlKCkuY3JlYXRlQ29udGV4dHVhbEZyYWdtZW50KGEpfWZ1bmN0aW9uIGh0bWxUb0VsZW1lbnRzKGEpe3ZhciBiPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRlbXBsYXRlIik7Yi5pbm5lckhUTUw9YTtyZXR1cm4gYi5jb250ZW50LmNoaWxkTm9kZXN9CmNvbnN0IHZpZXdQb3J0T2JzZXJ2ZXI9ZnVuY3Rpb24oYSl7bGV0IGI9ITEsYz0hMSxkPTUwO2NvbnN0IGU9az0+e2s9a1swXTtsZXQgaD0uMDE+PWsuaW50ZXJzZWN0aW9uUmF0aW8mJmsuYm91bmRpbmdDbGllbnRSZWN0LnRvcDxkO2MuY2xhc3NMaXN0LnRvZ2dsZSgidG9wLWZpeGVkIixoKTtkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIuc21zQ3RhQnRuIikuZm9yRWFjaChuPT5uLmhpZGRlbj0haCk7bnVsbCE9PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0b2FzdC1jb250YWluZXIiKSYmKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0b2FzdC1jb250YWluZXIiKS5oaWRkZW49IWgpfTtyZXR1cm57b2JzZXJ2ZTooKT0+e2lmKGEpe2QrPWEub2Zmc2V0SGVpZ2h0KzE2O3ZhciBrPWEuY2xvc2VzdCgiLm9ic2VydmVkLXdyYXBwZXIiKXx8ITE7aWYoIWspe2xldCBoPWh0bWxUb05vZGUoJzxkaXYgY2xhc3M9ImZpeGVkLXdyYXBwZXIiPjwvZGl2PicpO2s9aHRtbFRvTm9kZSgnPGRpdiBjbGFzcz0ib2JzZXJ2ZWQtd3JhcHBlciI+PC9kaXY+Jyk7CmEuYWZ0ZXIoayk7ay5hcHBlbmRDaGlsZChoKTtoLmFwcGVuZENoaWxkKGEpO2suc3R5bGUuaGVpZ2h0PWAke2gub2Zmc2V0SGVpZ2h0fXB4YH1iPWs7Yz1iLnF1ZXJ5U2VsZWN0b3IoIi5maXhlZC13cmFwcGVyIik7KG5ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcihlLHtyb290TWFyZ2luOmAtJHtkfXB4IDBweCAwcHggMHB4YCx0aHJlc2hvbGQ6WzAsLjAxXX0pKS5vYnNlcnZlKGIpfX19fTsKZnVuY3Rpb24gZDJjRm9vdGVyRGVsZXRlQWxsQ29va2llcyhhKXtsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgiZDJmYXZEYXRhIik7bG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oImZvcm1GaWxsRGF0YSIpO2xvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCJmaW5hbmNlX211bHRpc3RlcF9mb3JtX3VzZXJJZCIpO2xvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCJmaW5hbmNlX211bHRpc3RlcC5saW5lYXJfc3RlcCIpO3ZhciBiPXdpbmRvdy5sb2NhdGlvbi5ob3N0bmFtZSxjPWI7Yj1iLnJlcGxhY2UoInd3dy4iLCIiKTt2YXIgZD1iPWIucmVwbGFjZSgibS4iLCIiKTtiLmluY2x1ZGVzKCJkMmNtZWRpYS5jYSIpJiYoYj0iZDJjbWVkaWEuY2EiKTtmb3IodmFyIGU9ZG9jdW1lbnQuY29va2llLnNwbGl0KCI7Iiksaz0wO2s8ZS5sZW5ndGg7aysrKXt2YXIgaD1lW2tdLG49aC5pbmRleE9mKCI9Iik7aD0tMTxuP2guc3Vic3RyKDAsbik6aDsiZDJjX2Nvb2tpZV9jb25zZW50IiE9aC50cmltKCkmJiJPcHRhbm9uQWxlcnRCb3hDbG9zZWQiIT0KaC50cmltKCkmJiJPcHRhbm9uQ29uc2VudCIhPWgudHJpbSgpJiYoaD1oLnRyaW0oKSxkb2N1bWVudC5jb29raWU9aCsiPTtQYXRoPS87ZG9tYWluPS4iK2IrIjtleHBpcmVzPVRodSwgMDEgSmFuIDE5NzAgMDA6MDA6MDAgR01UIixkb2N1bWVudC5jb29raWU9aCsiPTtQYXRoPS87ZG9tYWluPSIrYisiO2V4cGlyZXM9VGh1LCAwMSBKYW4gMTk3MCAwMDowMDowMCBHTVQiLGRvY3VtZW50LmNvb2tpZT1oKyI9O1BhdGg9Lztkb21haW49IitjKyI7ZXhwaXJlcz1UaHUsIDAxIEphbiAxOTcwIDAwOjAwOjAwIEdNVCIsZG9jdW1lbnQuY29va2llPWgrIj07UGF0aD0vO2RvbWFpbj0uIitkKyI7ZXhwaXJlcz1UaHUsIDAxIEphbiAxOTcwIDAwOjAwOjAwIEdNVCIsZG9jdW1lbnQuY29va2llPWgrIj07UGF0aD0vO2RvbWFpbj0iK2QrIjtleHBpcmVzPVRodSwgMDEgSmFuIDE5NzAgMDA6MDA6MDAgR01UIixkb2N1bWVudC5jb29raWU9aCsiPTtQYXRoPS87ZG9tYWluPS5kMmNtZWRpYS5jYTtleHBpcmVzPVRodSwgMDEgSmFuIDE5NzAgMDA6MDA6MDAgR01UIiwKZG9jdW1lbnQuY29va2llPWgrIj07UGF0aD0vO2RvbWFpbj1kMmNtZWRpYS5jYTtleHBpcmVzPVRodSwgMDEgSmFuIDE5NzAgMDA6MDA6MDAgR01UIixkb2N1bWVudC5jb29raWU9aCsiPTtleHBpcmVzPVRodSwgMDEgSmFuIDE5NzAgMDA6MDA6MDAgR01UIixkb2N1bWVudC5jb29raWU9aCsiPTtQYXRoPS87ZXhwaXJlcz1UaHUsIDAxIEphbiAxOTcwIDAwOjAwOjAwIEdNVCIsY29uc29sZS5sb2coIkQyREMiLGgsYiksaz09cGFyc2VGbG9hdChlLmxlbmd0aCktMSYmKCJ1bmRlZmluZWQiPT09dHlwZW9mIGEmJiQoIiNkMmNGb290ZXJDb29raWVEZWxldGUiKS5wb3B1cGl6ZSgpLnNldFRyaWdnZXIoImNsaWNrIikub3BlbigpLHNldFRpbWVvdXQoZDJjRm9vdGVyRGVsZXRlQWxsQ29va2llc1JlZnJlc2gsMkUzKSkpfXJldHVybiEwfQpmdW5jdGlvbiBkMmNGb290ZXJEZWxldGVBbGxDb29raWVzUmVmcmVzaCgpe3dpbmRvdy50b3A9PT13aW5kb3cuc2VsZiYmbG9jYXRpb24ucmVsb2FkKCl9CmZ1bmN0aW9uIEdvb2dsZUNhcHRjaGEoKXt0aGlzLnJlc3BvbnNlVG9rZW49IiI7dGhpcy53aWRnZXRJZD0tMTt0aGlzLnBhc3NlZD0hMTt2YXIgYT0kLkRlZmVycmVkKCksYj10aGlzO19faW5pdD1mdW5jdGlvbigpe3RyeXtpZighd2luZG93LmdyZWNhcHRjaGEpe3ZhciBjPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpLGQ9ZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInNjcmlwdCIpWzBdO2Muc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL3JlY2FwdGNoYS9hcGkuanMiO2QucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoYyxkKX19Y2F0Y2goZSl7Y29uc29sZS5sb2coZSl9fTtfX2xvYWRDYXB0Y2hhPWZ1bmN0aW9uKCl7aWYoISgtMTxiLndpZGdldElkKSl0cnl7dmFyIGM9Imdvb2dsZVdpZGdldF8iK01hdGguZmxvb3IoMTY3NzcyMTUqTWF0aC5yYW5kb20oKSkudG9TdHJpbmcoMTYpOyQoJzxkaXYgaWQ9IicrYysnIiBzdHlsZT0iZGlzcGxheTpub25lIj48L2Rpdj4nKS5hcHBlbmRUbygiYm9keSIpOwpiLndpZGdldElkPWdyZWNhcHRjaGEucmVuZGVyKGMse3NpdGVrZXk6IjZMZnBkRDBVQUFBQUFQZDRTN0lrZTVFZHgwMXkzWVhkNUktdTNkeFAiLGNhbGxiYWNrOl9fc3VibWl0Q2FwdGNoYSwiZXJyb3ItY2FsbGJhY2siOmIuZmFpbCxzaXplOiJpbnZpc2libGUifSl9Y2F0Y2goZCl7Y29uc29sZS5sb2coZCl9fTtfX3N1Ym1pdENhcHRjaGE9ZnVuY3Rpb24oYyl7Yi5yZXNwb25zZVRva2VuPWM7Yi5wYXNzZWQ9ITA7YS5yZXNvbHZlKCl9O2IuZ2V0UmVzcG9uc2U9ZnVuY3Rpb24oKXt2YXIgYz0kLkRlZmVycmVkKCk7d2luZG93LmdyZWNhcHRjaGE\/KF9fbG9hZENhcHRjaGEoKSxncmVjYXB0Y2hhLmV4ZWN1dGUoYi53aWRnZXRJZCksYS5kb25lKGZ1bmN0aW9uKCl7Yy5yZXNvbHZlKGIucmVzcG9uc2VUb2tlbil9KSk6Yy5yZXNvbHZlKCk7cmV0dXJuIGN9O2IuZmFpbD1mdW5jdGlvbigpe2NvbnNvbGUubG9nKCJHUkMgRmFpbCIsYXJndW1lbnRzKX07X19pbml0KCl9CmZ1bmN0aW9uIGdldEx1eHVyeVRheEFtb3VudChhKXt2YXIgYj0wOzFFNTxhJiYoYj0uMSphLGE9LjIqKGEtMUU1KSxiPWI8YT9iOmEpO3JldHVybiBNYXRoLnJvdW5kKGIpfQp2YXIgd29yZHM9W10scGFydCx3b3JkSW5kZXg9MCxvZmZzZXQ9MCxsZW49MSxmb3J3YXJkcz0hMCxza2lwX2NvdW50PTAsc2tpcF9kZWxheT0xNSxzcGVlZD03MCx3b3JkZmxpY2s9ZnVuY3Rpb24oYSxiKXt3b3Jkcz1hO2xlbj13b3Jkcy5sZW5ndGg7c2V0SW50ZXJ2YWwoZnVuY3Rpb24oKXtmb3J3YXJkcz9vZmZzZXQ+PXdvcmRzW3dvcmRJbmRleF0ubGVuZ3RoJiYoKytza2lwX2NvdW50LHNraXBfY291bnQ9PXNraXBfZGVsYXkmJihmb3J3YXJkcz0hMSxza2lwX2NvdW50PTApKTowPT1vZmZzZXQmJihmb3J3YXJkcz0hMCx3b3JkSW5kZXgrKyxvZmZzZXQ9MCx3b3JkSW5kZXg+PWxlbiYmKHdvcmRJbmRleD0wKSk7cGFydD13b3Jkc1t3b3JkSW5kZXhdLnN1YnN0cigwLG9mZnNldCk7MD09c2tpcF9jb3VudCYmKGZvcndhcmRzP29mZnNldCsrOm9mZnNldC0tKTtiLnRleHQocGFydCl9LHNwZWVkKX07CmZ1bmN0aW9uIGlzSW5WaWV3cG9ydChhLGIpe2I9dm9pZCAwPT09Yj97fTpiO2E9YS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtsZXQgYz1pc051bWVyaWMoYi50b3ApP2IudG9wOjA7Yj1pc051bWVyaWMoYi5sZWZ0KT9iLmxlZnQ6MDtyZXR1cm4gTWF0aC5mbG9vcihhLnRvcCk+PWMmJk1hdGguZmxvb3IoYS5sZWZ0KT49YiYmTWF0aC5mbG9vcihhLmJvdHRvbSk8PSh3aW5kb3cuaW5uZXJIZWlnaHR8fGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQpJiZNYXRoLmZsb29yKGEucmlnaHQpPD0od2luZG93LmlubmVyV2lkdGh8fGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0aCl9ZnVuY3Rpb24gaXNOdW1lcmljKGEpe3JldHVybi9eLT9cZCskL2cudGVzdChhKX0KZG9jUmVhZHlBcnIucHVzaCgoKT0+e2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ1tyb2xlPSJidXR0b24iXScpLmZvckVhY2goYT0+e2EuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsYj0+e2NvbnN0IGM9dm9pZCAwIT09Yi5rZXk\/Yi5rZXk6Yi5rZXlDb2RlO2lmKCJFbnRlciI9PT1jfHwxMz09PWMpYi5wcmV2ZW50RGVmYXVsdCgpLGEuY2xpY2soKX0pfSl9KTsKKCgpPT57bGV0IGE9ZG9jdW1lbnQuY29va2llLGI9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihEb2N1bWVudC5wcm90b3R5cGUsImNvb2tpZSIpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShEb2N1bWVudC5wcm90b3R5cGUsIl9jb29raWUiLGIpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShEb2N1bWVudC5wcm90b3R5cGUsImNvb2tpZSIse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLGdldCgpe3JldHVybiB0aGlzLl9jb29raWV9LHNldChjKXt2YXIgZD1jLnRyaW0oKS5zcGxpdCgiOyIpO2xldCBlPXt9O3ZhciBrPTA7Zm9yKHZhciBoIG9mIGQpZD1oLnRyaW0oKS5zcGxpdCgiPSIpLDA9PWs\/KGUubmFtZT1kWzBdLGUudmFsdWU9ZFsxXXx8MCk6IiIhPWRbMF0mJihlW2RbMF1dPWRbMV18fDApLGsrKztrPWUubmFtZTtoPWUuZXhwaXJlc3x8MDtkPWUucGF0aHx8Ii8iO2xldCBuPWUuZG9tYWlufHwiIjtlLnZhbHVlJiYiIiE9ZS52YWx1ZSYmbnVsbCE9ZS52YWx1ZSYmCndpbmRvdy5Db29raWVMb2dnZXIubG9nKGssZS52YWx1ZSxoLGQsbik7Yz10aGlzLl9jb29raWU9YztpZihjIT09YSl0cnl7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiY29va2llY2hhbmdlIix7ZGV0YWlsOntvbGRWYWx1ZTphLG5ld1ZhbHVlOmN9fSkpfWZpbmFsbHl7YT1jfX19KX0pKCk7ZG9jUmVhZHlBcnIucHVzaCgoKT0+e3ZhciBhPW51bGw7aWYod2luZG93LmxvY2F0aW9uLmhhc2gpe3RyeXthPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoZGVjb2RlVVJJKHdpbmRvdy5sb2NhdGlvbi5oYXNoKSl9Y2F0Y2goYil7cmV0dXJufWEmJihhPWEuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wK3dpbmRvdy5zY3JvbGxZLHdpbmRvdy5zY3JvbGxUbyh7dG9wOmEtMjAsYmVoYXZpb3I6InNtb290aCJ9KSl9fSk7CihmdW5jdGlvbigpe2Z1bmN0aW9uIGEoYyl7ZGVidWcoe2NvbGxlY3Q6Y30pO2M9Yy5uZXdVUkw\/bmV3IFVSTChjLm5ld1VSTCk6d2luZG93LmxvY2F0aW9uOyIiIT09Yy5oYXNoJiZjLmhhc2guc3Vic3RyaW5nKDEpLnNwbGl0KCImIikubWFwKGZ1bmN0aW9uKGQsZSxrKXt0cnl7dmFyIFtoLG5dPWQuc3BsaXQoIj0iKTtzd2l0Y2goaCl7Y2FzZSAidXRtX2UiOnZhciB4PWF0b2Iobikuc3BsaXQoIjo6Iiksdj1udWxsIT1nZXRDb29raWUoInV0bV9jYW1wYWlnbiIpJiYidW5kZWZpbmVkIiE9dHlwZW9mIGdldENvb2tpZSgidXRtX2NhbXBhaWduIik\/Z2V0Q29va2llKCJ1dG1fY2FtcGFpZ24iKTp4WzJdO3YmJnNldENvb2tpZSgidXRtX2NhbXBhaWduIix2LDE4MCk7dmFyIGY9bnVsbCE9Z2V0Q29va2llKCJ1dG1fc291cmNlIikmJiJ1bmRlZmluZWQiIT10eXBlb2YgZ2V0Q29va2llKCJ1dG1fc291cmNlIik\/Z2V0Q29va2llKCJ1dG1fc291cmNlIik6eFszXTtmJiZzZXRDb29raWUoInV0bV9zb3VyY2UiLApmLDE4MCk7YnJlYWs7Y2FzZSAidXRtX2V4Ijp4PWF0b2Iobik7dmFyIGc9bmV3IFVSTCgiaHR0cHM6Ly8iK3dpbmRvdy5sb2NhdGlvbi5ob3N0K3gpOzA8Zy5zZWFyY2hQYXJhbXMuc2l6ZSYmZy5zZWFyY2hQYXJhbXMuZm9yRWFjaChiKX1yZXR1cm57a2V5OmgsdmFsdWU6bn19Y2F0Y2gobSl7ZGVidWcobSl9fSl9ZnVuY3Rpb24gYihjLGQpe3RyeXtzd2l0Y2goZCl7Y2FzZSAiRGlzcGxheVNvdXJjZSI6Y2FzZSAiZ2NsaWQiOmRlYnVnKHtrZXk6ZCxjb29raWU6Z2V0Q29va2llKGQpLHZhbHVlOmN9KSxudWxsIT1nZXRDb29raWUoZCkmJiIiIT1nZXRDb29raWUoZCl8fHNldENvb2tpZShkLGMsMTgwKX19Y2F0Y2goZSl7ZGVidWcoZSl9fXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJsb2FkIixhLCExKTt3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigiaGFzaGNoYW5nZSIsYSwhMSl9KSgpOzA+PSQoIiNzaGFyZU9uRmFjZWJvb2siKS5sZW5ndGgmJiQoImZvb3RlciIpLnByZXBlbmQoJzxkaXYgaWQ9InNoYXJlT25GYWNlYm9vayIgZGF0YS1leHBsYWluPSJob25kYS9hY3VyYSBjZXJ0IHVzZXMgZ3RtLCBpdCBoYXMgYSBiaW5kIHRoYXQgdGhyb3dzIGFuIGVycm9yIGlmIHRoaXMgaWQgZG9lcyBub3QgZXhpc3QuIGNvZGUgaXMgZnJvbSBndG0gc2lkZS4iPjwvZGl2PicpOwooZnVuY3Rpb24oKXtmdW5jdGlvbiBhKCl7aWYoInVuZGVmaW5lZCIhPT10eXBlb2YgJC5jb29raWUpe2xldCBjO3ZhciBiPW51bGwhPShjPSQuY29va2llKCJUZXJ0aWFyeVNvdXJjZSIpKT9jOiIiOyIiIT09YiYmKCQoJypbaHJlZio9IiRGRFRlcnRpYXJ5U291cmNlIl0nKS5lYWNoKGZ1bmN0aW9uKCl7JCh0aGlzKS5hdHRyKCJocmVmIiwkKHRoaXMpLmF0dHIoImhyZWYiKS5yZXBsYWNlKCIkRkRUZXJ0aWFyeVNvdXJjZSIsYikpfSksJCgnKltvbmNsaWNrKj0iJEZEVGVydGlhcnlTb3VyY2UiXScpLmVhY2goZnVuY3Rpb24oKXskKHRoaXMpLmF0dHIoIm9uY2xpY2siLCQodGhpcykuYXR0cigib25jbGljayIpLnJlcGxhY2UoIiRGRFRlcnRpYXJ5U291cmNlIixiKSl9KSwkKCcqW3ZhbHVlKj0iJEZEVGVydGlhcnlTb3VyY2UiXScpLmVhY2goZnVuY3Rpb24oKXskKHRoaXMpLmF0dHIoInZhbHVlIiwkKHRoaXMpLmF0dHIoInZhbHVlIikucmVwbGFjZSgiJEZEVGVydGlhcnlTb3VyY2UiLApiKSl9KSl9fWEoKTtzZXRUaW1lb3V0KGEsMUUzKTtzZXRUaW1lb3V0KGEsNUUzKTswPD1uYXZpZ2F0b3IudXNlckFnZW50LmluZGV4T2YoIk1hYyIpJiYoJCgiLmxhbmd1YWdlQmFyIC5nUmF0aW5nLWljb24jZ1JhdGluZyAucmF0aW5nIikuYWRkQ2xhc3MoIm1hcmdpbi1ib3R0b20tLTRweCIpLCQoIi5sYW5ndWFnZUJhciAuc2VydmljZS1oZWFkZXItZm9ybSBhLmJ0biA+IHNwYW4iKS5hZGRDbGFzcygibWFyZ2luLWJvdHRvbS0tNHB4IiksJCgiLmxhbmd1YWdlQmFyIC5kZXNrdG9wX2xhbmdfYnV0dG9uX3RleHQiKS5hZGRDbGFzcygibWFyZ2luLWJvdHRvbS0tNHB4IiksJCgiLmxhbmd1YWdlQmFyIC5kZXNrdG9wX2xhbmdfYnV0dG9uX3RleHQiKS5jc3MoInRvcCIsIjUyJSIpKX0pKCk7CmZ1bmN0aW9uIGFkZE5vVHJhbnNsYXRlRW1haWxEZWYoKXtkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdbaWQqPSJlbWFpbEJvZHlEZWYiXSwgW2lkKj0iZW1haWxTdWJqZWN0RGVmIl0sIFtjbGFzcyo9ImVtYWlsU3ViamVjdCJdLCBbY2xhc3MqPSJlbWFpbEJvZHkiXSwgW2NsYXNzKj0ibGVhZEVtYWlsIl0sIFtjbGFzcyo9ImVtYWlsLWRlZmluaXRpb24iXScpLmZvckVhY2goYT0+e2Euc2V0QXR0cmlidXRlKCJ0cmFuc2xhdGUiLCJubyIpfSl9YWRkTm9UcmFuc2xhdGVFbWFpbERlZigpO2Z1bmN0aW9uIHZ3cygpe2RvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgiLS12d3MiLGAke3dpbmRvdy5pbm5lcldpZHRoLzEwMC0od2luZG93LmlubmVyV2lkdGgtZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoKS8xMDAvMn1weGApfXZ3cygpO2xldCByb192d3M9bmV3IFJlc2l6ZU9ic2VydmVyKCgpPT57dndzKCl9KTtyb192d3Mub2JzZXJ2ZShkb2N1bWVudC5ib2R5KTsKLyoqIC9tL2pzL2xhenlzaXplcy5taW4uanMgKiovCi8qISBsYXp5c2l6ZXMgLSB2NC4xLjUgKi8KLyohIG1vZGlmaWVkOiBvbGl2aWVyQGQyY21lZGlhLmNhIHRvIHN1cHBvcnQgZGF0YS1pbWdzcmMgYmVjYXVzZSBvZiBvbmVUcnVzdCBicmVha3MgbGF6eWxvYWQgb24gZGF0YS1zcmMgKi8KIWZ1bmN0aW9uKGEsYil7dmFyIGM9YihhLGEuZG9jdW1lbnQpO2EubGF6eVNpemVzPWMsIm9iamVjdCI9PXR5cGVvZiBtb2R1bGUmJm1vZHVsZS5leHBvcnRzJiYobW9kdWxlLmV4cG9ydHM9Yyl9KHdpbmRvdyxmdW5jdGlvbihhLGIpeyJ1c2Ugc3RyaWN0IjtpZihiLmdldEVsZW1lbnRzQnlDbGFzc05hbWUpe3ZhciBjLGQsZT1iLmRvY3VtZW50RWxlbWVudCxmPWEuRGF0ZSxnPWEuSFRNTFBpY3R1cmVFbGVtZW50LGg9ImFkZEV2ZW50TGlzdGVuZXIiLGk9ImdldEF0dHJpYnV0ZSIsaj1hW2hdLGs9YS5zZXRUaW1lb3V0LGw9YS5yZXF1ZXN0QW5pbWF0aW9uRnJhbWV8fGssbT1hLnJlcXVlc3RJZGxlQ2FsbGJhY2ssbj0vXnBpY3R1cmUkL2ksbz1bImxvYWQiLCJlcnJvciIsImxhenlpbmNsdWRlZCIsIl9sYXp5bG9hZGVkIl0scD17fSxxPUFycmF5LnByb3RvdHlwZS5mb3JFYWNoLHI9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gcFtiXXx8KHBbYl09bmV3IFJlZ0V4cCgiKFxcc3xeKSIrYisiKFxcc3wkKSIpKSxwW2JdLnRlc3QoYVtpXSgiY2xhc3MiKXx8IiIpJiZwW2JdfSxzPWZ1bmN0aW9uKGEsYil7cihhLGIpfHxhLnNldEF0dHJpYnV0ZSgiY2xhc3MiLChhW2ldKCJjbGFzcyIpfHwiIikudHJpbSgpKyIgIitiKX0sdD1mdW5jdGlvbihhLGIpe3ZhciBjOyhjPXIoYSxiKSkmJmEuc2V0QXR0cmlidXRlKCJjbGFzcyIsKGFbaV0oImNsYXNzIil8fCIiKS5yZXBsYWNlKGMsIiAiKSl9LHU9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPWM\/aDoicmVtb3ZlRXZlbnRMaXN0ZW5lciI7YyYmdShhLGIpLG8uZm9yRWFjaChmdW5jdGlvbihjKXthW2RdKGMsYil9KX0sdj1mdW5jdGlvbihhLGQsZSxmLGcpe3ZhciBoPWIuY3JlYXRlRXZlbnQoIkV2ZW50Iik7cmV0dXJuIGV8fChlPXt9KSxlLmluc3RhbmNlPWMsaC5pbml0RXZlbnQoZCwhZiwhZyksaC5kZXRhaWw9ZSxhLmRpc3BhdGNoRXZlbnQoaCksaH0sdz1mdW5jdGlvbihiLGMpe3ZhciBlOyFnJiYoZT1hLnBpY3R1cmVmaWxsfHxkLnBmKT8oYyYmYy5zcmMmJiFiW2ldKCJzcmNzZXQiKSYmYi5zZXRBdHRyaWJ1dGUoInNyY3NldCIsYy5zcmMpLGUoe3JlZXZhbHVhdGU6ITAsZWxlbWVudHM6W2JdfSkpOmMmJmMuc3JjJiYoYi5zcmM9Yy5zcmMpfSx4PWZ1bmN0aW9uKGEsYil7cmV0dXJuKGdldENvbXB1dGVkU3R5bGUoYSxudWxsKXx8e30pW2JdfSx5PWZ1bmN0aW9uKGEsYixjKXtmb3IoYz1jfHxhLm9mZnNldFdpZHRoO2M8ZC5taW5TaXplJiZiJiYhYS5fbGF6eXNpemVzV2lkdGg7KWM9Yi5vZmZzZXRXaWR0aCxiPWIucGFyZW50Tm9kZTtyZXR1cm4gY30sej1mdW5jdGlvbigpe3ZhciBhLGMsZD1bXSxlPVtdLGY9ZCxnPWZ1bmN0aW9uKCl7dmFyIGI9Zjtmb3IoZj1kLmxlbmd0aD9lOmQsYT0hMCxjPSExO2IubGVuZ3RoOyliLnNoaWZ0KCkoKTthPSExfSxoPWZ1bmN0aW9uKGQsZSl7YSYmIWU\/ZC5hcHBseSh0aGlzLGFyZ3VtZW50cyk6KGYucHVzaChkKSxjfHwoYz0hMCwoYi5oaWRkZW4\/azpsKShnKSkpfTtyZXR1cm4gaC5fbHNGbHVzaD1nLGh9KCksQT1mdW5jdGlvbihhLGIpe3JldHVybiBiP2Z1bmN0aW9uKCl7eihhKX06ZnVuY3Rpb24oKXt2YXIgYj10aGlzLGM9YXJndW1lbnRzO3ooZnVuY3Rpb24oKXthLmFwcGx5KGIsYyl9KX19LEI9ZnVuY3Rpb24oYSl7dmFyIGIsYz0wLGU9ZC50aHJvdHRsZURlbGF5LGc9ZC5yaWNUaW1lb3V0LGg9ZnVuY3Rpb24oKXtiPSExLGM9Zi5ub3coKSxhKCl9LGk9bSYmZz40OT9mdW5jdGlvbigpe20oaCx7dGltZW91dDpnfSksZyE9PWQucmljVGltZW91dCYmKGc9ZC5yaWNUaW1lb3V0KX06QShmdW5jdGlvbigpe2soaCl9LCEwKTtyZXR1cm4gZnVuY3Rpb24oYSl7dmFyIGQ7KGE9ITA9PT1hKSYmKGc9MzMpLGJ8fChiPSEwLGQ9ZS0oZi5ub3coKS1jKSxkPDAmJihkPTApLGF8fGQ8OT9pKCk6ayhpLGQpKX19LEM9ZnVuY3Rpb24oYSl7dmFyIGIsYyxkPTk5LGU9ZnVuY3Rpb24oKXtiPW51bGwsYSgpfSxnPWZ1bmN0aW9uKCl7dmFyIGE9Zi5ub3coKS1jO2E8ZD9rKGcsZC1hKToobXx8ZSkoZSl9O3JldHVybiBmdW5jdGlvbigpe2M9Zi5ub3coKSxifHwoYj1rKGcsZCkpfX07IWZ1bmN0aW9uKCl7dmFyIGIsYz17bGF6eUNsYXNzOiJsYXp5bG9hZCIsbG9hZGVkQ2xhc3M6Imxhenlsb2FkZWQiLGxvYWRpbmdDbGFzczoibGF6eWxvYWRpbmciLHByZWxvYWRDbGFzczoibGF6eXByZWxvYWQiLGVycm9yQ2xhc3M6ImxhenllcnJvciIsYXV0b3NpemVzQ2xhc3M6ImxhenlhdXRvc2l6ZXMiLHNyY0F0dHI6ImRhdGEtaW1nc3JjIixzcmNzZXRBdHRyOiJkYXRhLXNyY3NldCIsc2l6ZXNBdHRyOiJkYXRhLXNpemVzIixtaW5TaXplOjQwLGN1c3RvbU1lZGlhOnt9LGluaXQ6ITAsZXhwRmFjdG9yOjEuNSxoRmFjOi44LGxvYWRNb2RlOjIsbG9hZEhpZGRlbjohMCxyaWNUaW1lb3V0OjAsdGhyb3R0bGVEZWxheToxMjV9O2Q9YS5sYXp5U2l6ZXNDb25maWd8fGEubGF6eXNpemVzQ29uZmlnfHx7fTtmb3IoYiBpbiBjKWIgaW4gZHx8KGRbYl09Y1tiXSk7YS5sYXp5U2l6ZXNDb25maWc9ZCxrKGZ1bmN0aW9uKCl7ZC5pbml0JiZGKCl9KX0oKTt2YXIgRD1mdW5jdGlvbigpe3ZhciBnLGwsbSxvLHAseSxELEYsRyxILEksSixLLEwsTT0vXmltZyQvaSxOPS9eaWZyYW1lJC9pLE89Im9uc2Nyb2xsImluIGEmJiEvKGdsZXxpbmcpYm90Ly50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpLFA9MCxRPTAsUj0wLFM9LTEsVD1mdW5jdGlvbihhKXtSLS0sYSYmYS50YXJnZXQmJnUoYS50YXJnZXQsVCksKCFhfHxSPDB8fCFhLnRhcmdldCkmJihSPTApfSxVPWZ1bmN0aW9uKGEsYyl7dmFyIGQsZj1hLGc9ImhpZGRlbiI9PXgoYi5ib2R5LCJ2aXNpYmlsaXR5Iil8fCJoaWRkZW4iIT14KGEucGFyZW50Tm9kZSwidmlzaWJpbGl0eSIpJiYiaGlkZGVuIiE9eChhLCJ2aXNpYmlsaXR5Iik7Zm9yKEYtPWMsSSs9YyxHLT1jLEgrPWM7ZyYmKGY9Zi5vZmZzZXRQYXJlbnQpJiZmIT1iLmJvZHkmJmYhPWU7KShnPSh4KGYsIm9wYWNpdHkiKXx8MSk+MCkmJiJ2aXNpYmxlIiE9eChmLCJvdmVyZmxvdyIpJiYoZD1mLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLGc9SD5kLmxlZnQmJkc8ZC5yaWdodCYmST5kLnRvcC0xJiZGPGQuYm90dG9tKzEpO3JldHVybiBnfSxWPWZ1bmN0aW9uKCl7dmFyIGEsZixoLGosayxtLG4scCxxLHI9Yy5lbGVtZW50cztpZigobz1kLmxvYWRNb2RlKSYmUjw4JiYoYT1yLmxlbmd0aCkpe2Y9MCxTKyssbnVsbD09SyYmKCJleHBhbmQiaW4gZHx8KGQuZXhwYW5kPWUuY2xpZW50SGVpZ2h0PjUwMCYmZS5jbGllbnRXaWR0aD41MDA\/NTAwOjM3MCksSj1kLmV4cGFuZCxLPUoqZC5leHBGYWN0b3IpLFE8SyYmUjwxJiZTPjImJm8+MiYmIWIuaGlkZGVuPyhRPUssUz0wKTpRPW8+MSYmUz4xJiZSPDY\/SjpQO2Zvcig7ZjxhO2YrKylpZihyW2ZdJiYhcltmXS5fbGF6eVJhY2UpaWYoTylpZigocD1yW2ZdW2ldKCJkYXRhLWV4cGFuZCIpKSYmKG09MSpwKXx8KG09USkscSE9PW0mJih5PWlubmVyV2lkdGgrbSpMLEQ9aW5uZXJIZWlnaHQrbSxuPS0xKm0scT1tKSxoPXJbZl0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksKEk9aC5ib3R0b20pPj1uJiYoRj1oLnRvcCk8PUQmJihIPWgucmlnaHQpPj1uKkwmJihHPWgubGVmdCk8PXkmJihJfHxIfHxHfHxGKSYmKGQubG9hZEhpZGRlbnx8ImhpZGRlbiIhPXgocltmXSwidmlzaWJpbGl0eSIpKSYmKGwmJlI8MyYmIXAmJihvPDN8fFM8NCl8fFUocltmXSxtKSkpe2lmKGJhKHJbZl0pLGs9ITAsUj45KWJyZWFrfWVsc2UhayYmbCYmIWomJlI8NCYmUzw0JiZvPjImJihnWzBdfHxkLnByZWxvYWRBZnRlckxvYWQpJiYoZ1swXXx8IXAmJihJfHxIfHxHfHxGfHwiYXV0byIhPXJbZl1baV0oZC5zaXplc0F0dHIpKSkmJihqPWdbMF18fHJbZl0pO2Vsc2UgYmEocltmXSk7aiYmIWsmJmJhKGopfX0sVz1CKFYpLFg9ZnVuY3Rpb24oYSl7cyhhLnRhcmdldCxkLmxvYWRlZENsYXNzKSx0KGEudGFyZ2V0LGQubG9hZGluZ0NsYXNzKSx1KGEudGFyZ2V0LFopLHYoYS50YXJnZXQsImxhenlsb2FkZWQiKX0sWT1BKFgpLFo9ZnVuY3Rpb24oYSl7WSh7dGFyZ2V0OmEudGFyZ2V0fSl9LCQ9ZnVuY3Rpb24oYSxiKXt0cnl7YS5jb250ZW50V2luZG93LmxvY2F0aW9uLnJlcGxhY2UoYil9Y2F0Y2goYyl7YS5zcmM9Yn19LF89ZnVuY3Rpb24oYSl7dmFyIGIsYz1hW2ldKGQuc3Jjc2V0QXR0cik7KGI9ZC5jdXN0b21NZWRpYVthW2ldKCJkYXRhLW1lZGlhIil8fGFbaV0oIm1lZGlhIildKSYmYS5zZXRBdHRyaWJ1dGUoIm1lZGlhIixiKSxjJiZhLnNldEF0dHJpYnV0ZSgic3Jjc2V0IixjKX0sYWE9QShmdW5jdGlvbihhLGIsYyxlLGYpe3ZhciBnLGgsaixsLG8scDsobz12KGEsImxhenliZWZvcmV1bnZlaWwiLGIpKS5kZWZhdWx0UHJldmVudGVkfHwoZSYmKGM\/cyhhLGQuYXV0b3NpemVzQ2xhc3MpOmEuc2V0QXR0cmlidXRlKCJzaXplcyIsZSkpLGg9YVtpXShkLnNyY3NldEF0dHIpLGc9YVtpXShkLnNyY0F0dHIpLGYmJihqPWEucGFyZW50Tm9kZSxsPWomJm4udGVzdChqLm5vZGVOYW1lfHwiIikpLHA9Yi5maXJlc0xvYWR8fCJzcmMiaW4gYSYmKGh8fGd8fGwpLG89e3RhcmdldDphfSxwJiYodShhLFQsITApLGNsZWFyVGltZW91dChtKSxtPWsoVCwyNTAwKSxzKGEsZC5sb2FkaW5nQ2xhc3MpLHUoYSxaLCEwKSksbCYmcS5jYWxsKGouZ2V0RWxlbWVudHNCeVRhZ05hbWUoInNvdXJjZSIpLF8pLGg\/YS5zZXRBdHRyaWJ1dGUoInNyY3NldCIsaCk6ZyYmIWwmJihOLnRlc3QoYS5ub2RlTmFtZSk\/JChhLGcpOmEuc3JjPWcpLGYmJihofHxsKSYmdyhhLHtzcmM6Z30pKSxhLl9sYXp5UmFjZSYmZGVsZXRlIGEuX2xhenlSYWNlLHQoYSxkLmxhenlDbGFzcykseihmdW5jdGlvbigpeyghcHx8YS5jb21wbGV0ZSYmYS5uYXR1cmFsV2lkdGg+MSkmJihwP1Qobyk6Ui0tLFgobykpfSwhMCl9KSxiYT1mdW5jdGlvbihhKXt2YXIgYixjPU0udGVzdChhLm5vZGVOYW1lKSxlPWMmJihhW2ldKGQuc2l6ZXNBdHRyKXx8YVtpXSgic2l6ZXMiKSksZj0iYXV0byI9PWU7KCFmJiZsfHwhY3x8IWFbaV0oInNyYyIpJiYhYS5zcmNzZXR8fGEuY29tcGxldGV8fHIoYSxkLmVycm9yQ2xhc3MpfHwhcihhLGQubGF6eUNsYXNzKSkmJihiPXYoYSwibGF6eXVudmVpbHJlYWQiKS5kZXRhaWwsZiYmRS51cGRhdGVFbGVtKGEsITAsYS5vZmZzZXRXaWR0aCksYS5fbGF6eVJhY2U9ITAsUisrLGFhKGEsYixmLGUsYykpfSxjYT1mdW5jdGlvbigpe2lmKCFsKXtpZihmLm5vdygpLXA8OTk5KXJldHVybiB2b2lkIGsoY2EsOTk5KTt2YXIgYT1DKGZ1bmN0aW9uKCl7ZC5sb2FkTW9kZT0zLFcoKX0pO2w9ITAsZC5sb2FkTW9kZT0zLFcoKSxqKCJzY3JvbGwiLGZ1bmN0aW9uKCl7Mz09ZC5sb2FkTW9kZSYmKGQubG9hZE1vZGU9MiksYSgpfSwhMCl9fTtyZXR1cm57XzpmdW5jdGlvbigpe3A9Zi5ub3coKSxjLmVsZW1lbnRzPWIuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZShkLmxhenlDbGFzcyksZz1iLmdldEVsZW1lbnRzQnlDbGFzc05hbWUoZC5sYXp5Q2xhc3MrIiAiK2QucHJlbG9hZENsYXNzKSxMPWQuaEZhYyxqKCJzY3JvbGwiLFcsITApLGooInJlc2l6ZSIsVywhMCksYS5NdXRhdGlvbk9ic2VydmVyP25ldyBNdXRhdGlvbk9ic2VydmVyKFcpLm9ic2VydmUoZSx7Y2hpbGRMaXN0OiEwLHN1YnRyZWU6ITAsYXR0cmlidXRlczohMH0pOihlW2hdKCJET01Ob2RlSW5zZXJ0ZWQiLFcsITApLGVbaF0oIkRPTUF0dHJNb2RpZmllZCIsVywhMCksc2V0SW50ZXJ2YWwoVyw5OTkpKSxqKCJoYXNoY2hhbmdlIixXLCEwKSxbImZvY3VzIiwibW91c2VvdmVyIiwiY2xpY2siLCJsb2FkIiwidHJhbnNpdGlvbmVuZCIsImFuaW1hdGlvbmVuZCIsIndlYmtpdEFuaW1hdGlvbkVuZCJdLmZvckVhY2goZnVuY3Rpb24oYSl7YltoXShhLFcsITApfSksL2QkfF5jLy50ZXN0KGIucmVhZHlTdGF0ZSk\/Y2EoKTooaigibG9hZCIsY2EpLGJbaF0oIkRPTUNvbnRlbnRMb2FkZWQiLFcpLGsoY2EsMmU0KSksYy5lbGVtZW50cy5sZW5ndGg\/KFYoKSx6Ll9sc0ZsdXNoKCkpOlcoKX0sY2hlY2tFbGVtczpXLHVudmVpbDpiYX19KCksRT1mdW5jdGlvbigpe3ZhciBhLGM9QShmdW5jdGlvbihhLGIsYyxkKXt2YXIgZSxmLGc7aWYoYS5fbGF6eXNpemVzV2lkdGg9ZCxkKz0icHgiLGEuc2V0QXR0cmlidXRlKCJzaXplcyIsZCksbi50ZXN0KGIubm9kZU5hbWV8fCIiKSlmb3IoZT1iLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJzb3VyY2UiKSxmPTAsZz1lLmxlbmd0aDtmPGc7ZisrKWVbZl0uc2V0QXR0cmlidXRlKCJzaXplcyIsZCk7Yy5kZXRhaWwuZGF0YUF0dHJ8fHcoYSxjLmRldGFpbCl9KSxlPWZ1bmN0aW9uKGEsYixkKXt2YXIgZSxmPWEucGFyZW50Tm9kZTtmJiYoZD15KGEsZixkKSxlPXYoYSwibGF6eWJlZm9yZXNpemVzIix7d2lkdGg6ZCxkYXRhQXR0cjohIWJ9KSxlLmRlZmF1bHRQcmV2ZW50ZWR8fChkPWUuZGV0YWlsLndpZHRoKSYmZCE9PWEuX2xhenlzaXplc1dpZHRoJiZjKGEsZixlLGQpKX0sZj1mdW5jdGlvbigpe3ZhciBiLGM9YS5sZW5ndGg7aWYoYylmb3IoYj0wO2I8YztiKyspZShhW2JdKX0sZz1DKGYpO3JldHVybntfOmZ1bmN0aW9uKCl7YT1iLmdldEVsZW1lbnRzQnlDbGFzc05hbWUoZC5hdXRvc2l6ZXNDbGFzcyksaigicmVzaXplIixnKX0sY2hlY2tFbGVtczpnLHVwZGF0ZUVsZW06ZX19KCksRj1mdW5jdGlvbigpe0YuaXx8KEYuaT0hMCxFLl8oKSxELl8oKSl9O3JldHVybiBjPXtjZmc6ZCxhdXRvU2l6ZXI6RSxsb2FkZXI6RCxpbml0OkYsdVA6dyxhQzpzLHJDOnQsaEM6cixmaXJlOnYsZ1c6eSxyQUY6en19fSk7Ci8qRU9GKi87Ci8qKiAvbS9qcy9qcXVlcnktdWktZmFjdG9yeS8xLjEzLjIvanF1ZXJ5LXVpLm1pbi5qcyAqKi8KLyohIGpRdWVyeSBVSSAtIHYxLjEzLjIgLSAyMDI0LTAzLTEyCiogaHR0cDovL2pxdWVyeXVpLmNvbQoqIEluY2x1ZGVzOiB3aWRnZXQuanMsIGpxdWVyeS1wYXRjaC5qcywga2V5Y29kZS5qcywgdW5pcXVlLWlkLmpzLCB3aWRnZXRzL2FjY29yZGlvbi5qcywgd2lkZ2V0cy9tb3VzZS5qcywgd2lkZ2V0cy9zbGlkZXIuanMsIGVmZmVjdC5qcwoqIENvcHlyaWdodCBqUXVlcnkgRm91bmRhdGlvbiBhbmQgb3RoZXIgY29udHJpYnV0b3JzOyBMaWNlbnNlZCBNSVQgKi8KCiFmdW5jdGlvbihlKXsidXNlIHN0cmljdCI7ImZ1bmN0aW9uIj09dHlwZW9mIGRlZmluZSYmZGVmaW5lLmFtZD9kZWZpbmUoWyJqcXVlcnkiXSxlKTplKGpRdWVyeSl9KGZ1bmN0aW9uKHUpeyJ1c2Ugc3RyaWN0Ijt1LnVpPXUudWl8fHt9O3UudWkudmVyc2lvbj0iMS4xMy4yIjt2YXIgbixpPTAsbz1BcnJheS5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkscj1BcnJheS5wcm90b3R5cGUuc2xpY2U7dS5jbGVhbkRhdGE9KG49dS5jbGVhbkRhdGEsZnVuY3Rpb24oZSl7Zm9yKHZhciB0LGkscz0wO251bGwhPShpPWVbc10pO3MrKykodD11Ll9kYXRhKGksImV2ZW50cyIpKSYmdC5yZW1vdmUmJnUoaSkudHJpZ2dlckhhbmRsZXIoInJlbW92ZSIpO24oZSl9KSx1LndpZGdldD1mdW5jdGlvbihlLGksdCl7dmFyIHMsbixhLG89e30scj1lLnNwbGl0KCIuIilbMF0saD1yKyItIisoZT1lLnNwbGl0KCIuIilbMV0pO3JldHVybiB0fHwodD1pLGk9dS5XaWRnZXQpLEFycmF5LmlzQXJyYXkodCkmJih0PXUuZXh0ZW5kLmFwcGx5KG51bGwsW3t9XS5jb25jYXQodCkpKSx1LmV4cHIucHNldWRvc1toLnRvTG93ZXJDYXNlKCldPWZ1bmN0aW9uKGUpe3JldHVybiEhdS5kYXRhKGUsaCl9LHVbcl09dVtyXXx8e30scz11W3JdW2VdLG49dVtyXVtlXT1mdW5jdGlvbihlLHQpe2lmKCF0aGlzfHwhdGhpcy5fY3JlYXRlV2lkZ2V0KXJldHVybiBuZXcgbihlLHQpO2FyZ3VtZW50cy5sZW5ndGgmJnRoaXMuX2NyZWF0ZVdpZGdldChlLHQpfSx1LmV4dGVuZChuLHMse3ZlcnNpb246dC52ZXJzaW9uLF9wcm90bzp1LmV4dGVuZCh7fSx0KSxfY2hpbGRDb25zdHJ1Y3RvcnM6W119KSwoYT1uZXcgaSkub3B0aW9ucz11LndpZGdldC5leHRlbmQoe30sYS5vcHRpb25zKSx1LmVhY2godCxmdW5jdGlvbih0LHMpe2Z1bmN0aW9uIG4oKXtyZXR1cm4gaS5wcm90b3R5cGVbdF0uYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIGEoZSl7cmV0dXJuIGkucHJvdG90eXBlW3RdLmFwcGx5KHRoaXMsZSl9b1t0XT0iZnVuY3Rpb24iPT10eXBlb2Ygcz9mdW5jdGlvbigpe3ZhciBlLHQ9dGhpcy5fc3VwZXIsaT10aGlzLl9zdXBlckFwcGx5O3JldHVybiB0aGlzLl9zdXBlcj1uLHRoaXMuX3N1cGVyQXBwbHk9YSxlPXMuYXBwbHkodGhpcyxhcmd1bWVudHMpLHRoaXMuX3N1cGVyPXQsdGhpcy5fc3VwZXJBcHBseT1pLGV9OnN9KSxuLnByb3RvdHlwZT11LndpZGdldC5leHRlbmQoYSx7d2lkZ2V0RXZlbnRQcmVmaXg6cyYmYS53aWRnZXRFdmVudFByZWZpeHx8ZX0sbyx7Y29uc3RydWN0b3I6bixuYW1lc3BhY2U6cix3aWRnZXROYW1lOmUsd2lkZ2V0RnVsbE5hbWU6aH0pLHM\/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\/dCgyKmUpLzI6MS10KC0yKmUrMikvMn19KTt1LmVmZmVjdHN9KTsKLyoqIC9tL2pzL3ZhbmlsbGFqcy9zdG9yZS5qcyAqKi8KdmFyIF9fX2QyY19zdG9yZWpzX2Nfb249IjIwMjYtMDItMjAgMTE6MzA6MTAiOyd1c2Ugc3RyaWN0Jzt2YXIgJGpzY29tcD0kanNjb21wfHx7fTskanNjb21wLnNjb3BlPXt9OyRqc2NvbXAuQVNTVU1FX0VTNT0hMTskanNjb21wLkFTU1VNRV9OT19OQVRJVkVfTUFQPSExOyRqc2NvbXAuQVNTVU1FX05PX05BVElWRV9TRVQ9ITE7JGpzY29tcC5TSU1QTEVfRlJPVU5EX1BPTFlGSUxMPSExOyRqc2NvbXAuSVNPTEFURV9QT0xZRklMTFM9ITE7JGpzY29tcC5GT1JDRV9QT0xZRklMTF9QUk9NSVNFPSExOyRqc2NvbXAuRk9SQ0VfUE9MWUZJTExfUFJPTUlTRV9XSEVOX05PX1VOSEFORExFRF9SRUpFQ1RJT049ITE7JGpzY29tcC5kZWZpbmVQcm9wZXJ0eT0kanNjb21wLkFTU1VNRV9FUzV8fCJmdW5jdGlvbiI9PXR5cGVvZiBPYmplY3QuZGVmaW5lUHJvcGVydGllcz9PYmplY3QuZGVmaW5lUHJvcGVydHk6ZnVuY3Rpb24oYSxiLGMpe2lmKGE9PUFycmF5LnByb3RvdHlwZXx8YT09T2JqZWN0LnByb3RvdHlwZSlyZXR1cm4gYTthW2JdPWMudmFsdWU7cmV0dXJuIGF9OwokanNjb21wLmdldEdsb2JhbD1mdW5jdGlvbihhKXthPVsib2JqZWN0Ij09dHlwZW9mIGdsb2JhbFRoaXMmJmdsb2JhbFRoaXMsYSwib2JqZWN0Ij09dHlwZW9mIHdpbmRvdyYmd2luZG93LCJvYmplY3QiPT10eXBlb2Ygc2VsZiYmc2VsZiwib2JqZWN0Ij09dHlwZW9mIGdsb2JhbCYmZ2xvYmFsXTtmb3IodmFyIGI9MDtiPGEubGVuZ3RoOysrYil7dmFyIGM9YVtiXTtpZihjJiZjLk1hdGg9PU1hdGgpcmV0dXJuIGN9dGhyb3cgRXJyb3IoIkNhbm5vdCBmaW5kIGdsb2JhbCBvYmplY3QiKTt9OyRqc2NvbXAuZ2xvYmFsPSRqc2NvbXAuZ2V0R2xvYmFsKHRoaXMpOyRqc2NvbXAuSVNfU1lNQk9MX05BVElWRT0iZnVuY3Rpb24iPT09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PT10eXBlb2YgU3ltYm9sKCJ4Iik7JGpzY29tcC5UUlVTVF9FUzZfUE9MWUZJTExTPSEkanNjb21wLklTT0xBVEVfUE9MWUZJTExTfHwkanNjb21wLklTX1NZTUJPTF9OQVRJVkU7JGpzY29tcC5wb2x5ZmlsbHM9e307CiRqc2NvbXAucHJvcGVydHlUb1BvbHlmaWxsU3ltYm9sPXt9OyRqc2NvbXAuUE9MWUZJTExfUFJFRklYPSIkanNjcCQiO3ZhciAkanNjb21wJGxvb2t1cFBvbHlmaWxsZWRWYWx1ZT1mdW5jdGlvbihhLGIpe3ZhciBjPSRqc2NvbXAucHJvcGVydHlUb1BvbHlmaWxsU3ltYm9sW2JdO2lmKG51bGw9PWMpcmV0dXJuIGFbYl07Yz1hW2NdO3JldHVybiB2b2lkIDAhPT1jP2M6YVtiXX07JGpzY29tcC5wb2x5ZmlsbD1mdW5jdGlvbihhLGIsYyxkKXtiJiYoJGpzY29tcC5JU09MQVRFX1BPTFlGSUxMUz8kanNjb21wLnBvbHlmaWxsSXNvbGF0ZWQoYSxiLGMsZCk6JGpzY29tcC5wb2x5ZmlsbFVuaXNvbGF0ZWQoYSxiLGMsZCkpfTsKJGpzY29tcC5wb2x5ZmlsbFVuaXNvbGF0ZWQ9ZnVuY3Rpb24oYSxiLGMsZCl7Yz0kanNjb21wLmdsb2JhbDthPWEuc3BsaXQoIi4iKTtmb3IoZD0wO2Q8YS5sZW5ndGgtMTtkKyspe3ZhciBlPWFbZF07aWYoIShlIGluIGMpKXJldHVybjtjPWNbZV19YT1hW2EubGVuZ3RoLTFdO2Q9Y1thXTtiPWIoZCk7YiE9ZCYmbnVsbCE9YiYmJGpzY29tcC5kZWZpbmVQcm9wZXJ0eShjLGEse2NvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpifSl9OwokanNjb21wLnBvbHlmaWxsSXNvbGF0ZWQ9ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU9YS5zcGxpdCgiLiIpO2E9MT09PWUubGVuZ3RoO2Q9ZVswXTtkPSFhJiZkIGluICRqc2NvbXAucG9seWZpbGxzPyRqc2NvbXAucG9seWZpbGxzOiRqc2NvbXAuZ2xvYmFsO2Zvcih2YXIgZj0wO2Y8ZS5sZW5ndGgtMTtmKyspe3ZhciBnPWVbZl07aWYoIShnIGluIGQpKXJldHVybjtkPWRbZ119ZT1lW2UubGVuZ3RoLTFdO2M9JGpzY29tcC5JU19TWU1CT0xfTkFUSVZFJiYiZXM2Ij09PWM\/ZFtlXTpudWxsO2I9YihjKTtudWxsIT1iJiYoYT8kanNjb21wLmRlZmluZVByb3BlcnR5KCRqc2NvbXAucG9seWZpbGxzLGUse2NvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpifSk6YiE9PWMmJih2b2lkIDA9PT0kanNjb21wLnByb3BlcnR5VG9Qb2x5ZmlsbFN5bWJvbFtlXSYmKGM9MUU5Kk1hdGgucmFuZG9tKCk+Pj4wLCRqc2NvbXAucHJvcGVydHlUb1BvbHlmaWxsU3ltYm9sW2VdPSRqc2NvbXAuSVNfU1lNQk9MX05BVElWRT8KJGpzY29tcC5nbG9iYWwuU3ltYm9sKGUpOiRqc2NvbXAuUE9MWUZJTExfUFJFRklYK2MrIiQiK2UpLCRqc2NvbXAuZGVmaW5lUHJvcGVydHkoZCwkanNjb21wLnByb3BlcnR5VG9Qb2x5ZmlsbFN5bWJvbFtlXSx7Y29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmJ9KSkpfTskanNjb21wLnVuZGVyc2NvcmVQcm90b0NhbkJlU2V0PWZ1bmN0aW9uKCl7dmFyIGE9e2E6ITB9LGI9e307dHJ5e3JldHVybiBiLl9fcHJvdG9fXz1hLGIuYX1jYXRjaChjKXt9cmV0dXJuITF9OwokanNjb21wLnNldFByb3RvdHlwZU9mPSRqc2NvbXAuVFJVU1RfRVM2X1BPTFlGSUxMUyYmImZ1bmN0aW9uIj09dHlwZW9mIE9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2Y6JGpzY29tcC51bmRlcnNjb3JlUHJvdG9DYW5CZVNldCgpP2Z1bmN0aW9uKGEsYil7YS5fX3Byb3RvX189YjtpZihhLl9fcHJvdG9fXyE9PWIpdGhyb3cgbmV3IFR5cGVFcnJvcihhKyIgaXMgbm90IGV4dGVuc2libGUiKTtyZXR1cm4gYX06bnVsbDskanNjb21wLmFycmF5SXRlcmF0b3JJbXBsPWZ1bmN0aW9uKGEpe3ZhciBiPTA7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGI8YS5sZW5ndGg\/e2RvbmU6ITEsdmFsdWU6YVtiKytdfTp7ZG9uZTohMH19fTskanNjb21wLmFycmF5SXRlcmF0b3I9ZnVuY3Rpb24oYSl7cmV0dXJue25leHQ6JGpzY29tcC5hcnJheUl0ZXJhdG9ySW1wbChhKX19OwokanNjb21wLm1ha2VJdGVyYXRvcj1mdW5jdGlvbihhKXt2YXIgYj0idW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmU3ltYm9sLml0ZXJhdG9yJiZhW1N5bWJvbC5pdGVyYXRvcl07cmV0dXJuIGI\/Yi5jYWxsKGEpOiRqc2NvbXAuYXJyYXlJdGVyYXRvcihhKX07JGpzY29tcC5nZW5lcmF0b3I9e307JGpzY29tcC5nZW5lcmF0b3IuZW5zdXJlSXRlcmF0b3JSZXN1bHRJc09iamVjdF89ZnVuY3Rpb24oYSl7aWYoIShhIGluc3RhbmNlb2YgT2JqZWN0KSl0aHJvdyBuZXcgVHlwZUVycm9yKCJJdGVyYXRvciByZXN1bHQgIithKyIgaXMgbm90IGFuIG9iamVjdCIpO307CiRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQ9ZnVuY3Rpb24oKXt0aGlzLmlzUnVubmluZ189ITE7dGhpcy55aWVsZEFsbEl0ZXJhdG9yXz1udWxsO3RoaXMueWllbGRSZXN1bHQ9dm9pZCAwO3RoaXMubmV4dEFkZHJlc3M9MTt0aGlzLmZpbmFsbHlBZGRyZXNzXz10aGlzLmNhdGNoQWRkcmVzc189MDt0aGlzLmZpbmFsbHlDb250ZXh0c189dGhpcy5hYnJ1cHRDb21wbGV0aW9uXz1udWxsfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5zdGFydF89ZnVuY3Rpb24oKXtpZih0aGlzLmlzUnVubmluZ18pdGhyb3cgbmV3IFR5cGVFcnJvcigiR2VuZXJhdG9yIGlzIGFscmVhZHkgcnVubmluZyIpO3RoaXMuaXNSdW5uaW5nXz0hMH07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuc3RvcF89ZnVuY3Rpb24oKXt0aGlzLmlzUnVubmluZ189ITF9OwokanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5qdW1wVG9FcnJvckhhbmRsZXJfPWZ1bmN0aW9uKCl7dGhpcy5uZXh0QWRkcmVzcz10aGlzLmNhdGNoQWRkcmVzc198fHRoaXMuZmluYWxseUFkZHJlc3NffTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5uZXh0Xz1mdW5jdGlvbihhKXt0aGlzLnlpZWxkUmVzdWx0PWF9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLnRocm93Xz1mdW5jdGlvbihhKXt0aGlzLmFicnVwdENvbXBsZXRpb25fPXtleGNlcHRpb246YSxpc0V4Y2VwdGlvbjohMH07dGhpcy5qdW1wVG9FcnJvckhhbmRsZXJfKCl9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLnJldHVybj1mdW5jdGlvbihhKXt0aGlzLmFicnVwdENvbXBsZXRpb25fPXtyZXR1cm46YX07dGhpcy5uZXh0QWRkcmVzcz10aGlzLmZpbmFsbHlBZGRyZXNzX307CiRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmp1bXBUaHJvdWdoRmluYWxseUJsb2Nrcz1mdW5jdGlvbihhKXt0aGlzLmFicnVwdENvbXBsZXRpb25fPXtqdW1wVG86YX07dGhpcy5uZXh0QWRkcmVzcz10aGlzLmZpbmFsbHlBZGRyZXNzX307JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUueWllbGQ9ZnVuY3Rpb24oYSxiKXt0aGlzLm5leHRBZGRyZXNzPWI7cmV0dXJue3ZhbHVlOmF9fTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS55aWVsZEFsbD1mdW5jdGlvbihhLGIpe2E9JGpzY29tcC5tYWtlSXRlcmF0b3IoYSk7dmFyIGM9YS5uZXh0KCk7JGpzY29tcC5nZW5lcmF0b3IuZW5zdXJlSXRlcmF0b3JSZXN1bHRJc09iamVjdF8oYyk7aWYoYy5kb25lKXRoaXMueWllbGRSZXN1bHQ9Yy52YWx1ZSx0aGlzLm5leHRBZGRyZXNzPWI7ZWxzZSByZXR1cm4gdGhpcy55aWVsZEFsbEl0ZXJhdG9yXz1hLHRoaXMueWllbGQoYy52YWx1ZSxiKX07CiRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmp1bXBUbz1mdW5jdGlvbihhKXt0aGlzLm5leHRBZGRyZXNzPWF9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmp1bXBUb0VuZD1mdW5jdGlvbigpe3RoaXMubmV4dEFkZHJlc3M9MH07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuc2V0Q2F0Y2hGaW5hbGx5QmxvY2tzPWZ1bmN0aW9uKGEsYil7dGhpcy5jYXRjaEFkZHJlc3NfPWE7dm9pZCAwIT1iJiYodGhpcy5maW5hbGx5QWRkcmVzc189Yil9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLnNldEZpbmFsbHlCbG9jaz1mdW5jdGlvbihhKXt0aGlzLmNhdGNoQWRkcmVzc189MDt0aGlzLmZpbmFsbHlBZGRyZXNzXz1hfHwwfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5sZWF2ZVRyeUJsb2NrPWZ1bmN0aW9uKGEsYil7dGhpcy5uZXh0QWRkcmVzcz1hO3RoaXMuY2F0Y2hBZGRyZXNzXz1ifHwwfTsKJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuZW50ZXJDYXRjaEJsb2NrPWZ1bmN0aW9uKGEpe3RoaXMuY2F0Y2hBZGRyZXNzXz1hfHwwO2E9dGhpcy5hYnJ1cHRDb21wbGV0aW9uXy5leGNlcHRpb247dGhpcy5hYnJ1cHRDb21wbGV0aW9uXz1udWxsO3JldHVybiBhfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5lbnRlckZpbmFsbHlCbG9jaz1mdW5jdGlvbihhLGIsYyl7Yz90aGlzLmZpbmFsbHlDb250ZXh0c19bY109dGhpcy5hYnJ1cHRDb21wbGV0aW9uXzp0aGlzLmZpbmFsbHlDb250ZXh0c189W3RoaXMuYWJydXB0Q29tcGxldGlvbl9dO3RoaXMuY2F0Y2hBZGRyZXNzXz1hfHwwO3RoaXMuZmluYWxseUFkZHJlc3NfPWJ8fDB9OwokanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5sZWF2ZUZpbmFsbHlCbG9jaz1mdW5jdGlvbihhLGIpe2I9dGhpcy5maW5hbGx5Q29udGV4dHNfLnNwbGljZShifHwwKVswXTtpZihiPXRoaXMuYWJydXB0Q29tcGxldGlvbl89dGhpcy5hYnJ1cHRDb21wbGV0aW9uX3x8Yil7aWYoYi5pc0V4Y2VwdGlvbilyZXR1cm4gdGhpcy5qdW1wVG9FcnJvckhhbmRsZXJfKCk7dm9pZCAwIT1iLmp1bXBUbyYmdGhpcy5maW5hbGx5QWRkcmVzc188Yi5qdW1wVG8\/KHRoaXMubmV4dEFkZHJlc3M9Yi5qdW1wVG8sdGhpcy5hYnJ1cHRDb21wbGV0aW9uXz1udWxsKTp0aGlzLm5leHRBZGRyZXNzPXRoaXMuZmluYWxseUFkZHJlc3NffWVsc2UgdGhpcy5uZXh0QWRkcmVzcz1hfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5mb3JJbj1mdW5jdGlvbihhKXtyZXR1cm4gbmV3ICRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQuUHJvcGVydHlJdGVyYXRvcihhKX07CiRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQuUHJvcGVydHlJdGVyYXRvcj1mdW5jdGlvbihhKXt0aGlzLm9iamVjdF89YTt0aGlzLnByb3BlcnRpZXNfPVtdO2Zvcih2YXIgYiBpbiBhKXRoaXMucHJvcGVydGllc18ucHVzaChiKTt0aGlzLnByb3BlcnRpZXNfLnJldmVyc2UoKX07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5Qcm9wZXJ0eUl0ZXJhdG9yLnByb3RvdHlwZS5nZXROZXh0PWZ1bmN0aW9uKCl7Zm9yKDswPHRoaXMucHJvcGVydGllc18ubGVuZ3RoOyl7dmFyIGE9dGhpcy5wcm9wZXJ0aWVzXy5wb3AoKTtpZihhIGluIHRoaXMub2JqZWN0XylyZXR1cm4gYX1yZXR1cm4gbnVsbH07JGpzY29tcC5nZW5lcmF0b3IuRW5naW5lXz1mdW5jdGlvbihhKXt0aGlzLmNvbnRleHRfPW5ldyAkanNjb21wLmdlbmVyYXRvci5Db250ZXh0O3RoaXMucHJvZ3JhbV89YX07CiRqc2NvbXAuZ2VuZXJhdG9yLkVuZ2luZV8ucHJvdG90eXBlLm5leHRfPWZ1bmN0aW9uKGEpe3RoaXMuY29udGV4dF8uc3RhcnRfKCk7aWYodGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yXylyZXR1cm4gdGhpcy55aWVsZEFsbFN0ZXBfKHRoaXMuY29udGV4dF8ueWllbGRBbGxJdGVyYXRvcl8ubmV4dCxhLHRoaXMuY29udGV4dF8ubmV4dF8pO3RoaXMuY29udGV4dF8ubmV4dF8oYSk7cmV0dXJuIHRoaXMubmV4dFN0ZXBfKCl9OwokanNjb21wLmdlbmVyYXRvci5FbmdpbmVfLnByb3RvdHlwZS5yZXR1cm5fPWZ1bmN0aW9uKGEpe3RoaXMuY29udGV4dF8uc3RhcnRfKCk7dmFyIGI9dGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yXztpZihiKXJldHVybiB0aGlzLnlpZWxkQWxsU3RlcF8oInJldHVybiJpbiBiP2JbInJldHVybiJdOmZ1bmN0aW9uKGMpe3JldHVybnt2YWx1ZTpjLGRvbmU6ITB9fSxhLHRoaXMuY29udGV4dF8ucmV0dXJuKTt0aGlzLmNvbnRleHRfLnJldHVybihhKTtyZXR1cm4gdGhpcy5uZXh0U3RlcF8oKX07CiRqc2NvbXAuZ2VuZXJhdG9yLkVuZ2luZV8ucHJvdG90eXBlLnRocm93Xz1mdW5jdGlvbihhKXt0aGlzLmNvbnRleHRfLnN0YXJ0XygpO2lmKHRoaXMuY29udGV4dF8ueWllbGRBbGxJdGVyYXRvcl8pcmV0dXJuIHRoaXMueWllbGRBbGxTdGVwXyh0aGlzLmNvbnRleHRfLnlpZWxkQWxsSXRlcmF0b3JfWyJ0aHJvdyJdLGEsdGhpcy5jb250ZXh0Xy5uZXh0Xyk7dGhpcy5jb250ZXh0Xy50aHJvd18oYSk7cmV0dXJuIHRoaXMubmV4dFN0ZXBfKCl9OwokanNjb21wLmdlbmVyYXRvci5FbmdpbmVfLnByb3RvdHlwZS55aWVsZEFsbFN0ZXBfPWZ1bmN0aW9uKGEsYixjKXt0cnl7dmFyIGQ9YS5jYWxsKHRoaXMuY29udGV4dF8ueWllbGRBbGxJdGVyYXRvcl8sYik7JGpzY29tcC5nZW5lcmF0b3IuZW5zdXJlSXRlcmF0b3JSZXN1bHRJc09iamVjdF8oZCk7aWYoIWQuZG9uZSlyZXR1cm4gdGhpcy5jb250ZXh0Xy5zdG9wXygpLGQ7dmFyIGU9ZC52YWx1ZX1jYXRjaChmKXtyZXR1cm4gdGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yXz1udWxsLHRoaXMuY29udGV4dF8udGhyb3dfKGYpLHRoaXMubmV4dFN0ZXBfKCl9dGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yXz1udWxsO2MuY2FsbCh0aGlzLmNvbnRleHRfLGUpO3JldHVybiB0aGlzLm5leHRTdGVwXygpfTsKJGpzY29tcC5nZW5lcmF0b3IuRW5naW5lXy5wcm90b3R5cGUubmV4dFN0ZXBfPWZ1bmN0aW9uKCl7Zm9yKDt0aGlzLmNvbnRleHRfLm5leHRBZGRyZXNzOyl0cnl7dmFyIGE9dGhpcy5wcm9ncmFtXyh0aGlzLmNvbnRleHRfKTtpZihhKXJldHVybiB0aGlzLmNvbnRleHRfLnN0b3BfKCkse3ZhbHVlOmEudmFsdWUsZG9uZTohMX19Y2F0Y2goYil7dGhpcy5jb250ZXh0Xy55aWVsZFJlc3VsdD12b2lkIDAsdGhpcy5jb250ZXh0Xy50aHJvd18oYil9dGhpcy5jb250ZXh0Xy5zdG9wXygpO2lmKHRoaXMuY29udGV4dF8uYWJydXB0Q29tcGxldGlvbl8pe2E9dGhpcy5jb250ZXh0Xy5hYnJ1cHRDb21wbGV0aW9uXzt0aGlzLmNvbnRleHRfLmFicnVwdENvbXBsZXRpb25fPW51bGw7aWYoYS5pc0V4Y2VwdGlvbil0aHJvdyBhLmV4Y2VwdGlvbjtyZXR1cm57dmFsdWU6YS5yZXR1cm4sZG9uZTohMH19cmV0dXJue3ZhbHVlOnZvaWQgMCxkb25lOiEwfX07CiRqc2NvbXAuZ2VuZXJhdG9yLkdlbmVyYXRvcl89ZnVuY3Rpb24oYSl7dGhpcy5uZXh0PWZ1bmN0aW9uKGIpe3JldHVybiBhLm5leHRfKGIpfTt0aGlzLnRocm93PWZ1bmN0aW9uKGIpe3JldHVybiBhLnRocm93XyhiKX07dGhpcy5yZXR1cm49ZnVuY3Rpb24oYil7cmV0dXJuIGEucmV0dXJuXyhiKX07dGhpc1tTeW1ib2wuaXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9fTskanNjb21wLmdlbmVyYXRvci5jcmVhdGVHZW5lcmF0b3I9ZnVuY3Rpb24oYSxiKXtiPW5ldyAkanNjb21wLmdlbmVyYXRvci5HZW5lcmF0b3JfKG5ldyAkanNjb21wLmdlbmVyYXRvci5FbmdpbmVfKGIpKTskanNjb21wLnNldFByb3RvdHlwZU9mJiZhLnByb3RvdHlwZSYmJGpzY29tcC5zZXRQcm90b3R5cGVPZihiLGEucHJvdG90eXBlKTtyZXR1cm4gYn07CiRqc2NvbXAuYXN5bmNFeGVjdXRlUHJvbWlzZUdlbmVyYXRvcj1mdW5jdGlvbihhKXtmdW5jdGlvbiBiKGQpe3JldHVybiBhLm5leHQoZCl9ZnVuY3Rpb24gYyhkKXtyZXR1cm4gYS50aHJvdyhkKX1yZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24oZCxlKXtmdW5jdGlvbiBmKGcpe2cuZG9uZT9kKGcudmFsdWUpOlByb21pc2UucmVzb2x2ZShnLnZhbHVlKS50aGVuKGIsYykudGhlbihmLGUpfWYoYS5uZXh0KCkpfSl9OyRqc2NvbXAuYXN5bmNFeGVjdXRlUHJvbWlzZUdlbmVyYXRvckZ1bmN0aW9uPWZ1bmN0aW9uKGEpe3JldHVybiAkanNjb21wLmFzeW5jRXhlY3V0ZVByb21pc2VHZW5lcmF0b3IoYSgpKX07JGpzY29tcC5hc3luY0V4ZWN1dGVQcm9taXNlR2VuZXJhdG9yUHJvZ3JhbT1mdW5jdGlvbihhKXtyZXR1cm4gJGpzY29tcC5hc3luY0V4ZWN1dGVQcm9taXNlR2VuZXJhdG9yKG5ldyAkanNjb21wLmdlbmVyYXRvci5HZW5lcmF0b3JfKG5ldyAkanNjb21wLmdlbmVyYXRvci5FbmdpbmVfKGEpKSl9OwpjbGllbnRTdG9yYWdlPXtzZXQ6ZnVuY3Rpb24oYSxiLGMsZCl7Yz12b2lkIDA9PT1jPzE6YztkPXZvaWQgMD09PWQ\/ImxvY2FsIjpkO2NvbnN0IGU9InNlc3Npb24iPT09ZD93aW5kb3cuc2Vzc2lvblN0b3JhZ2U6d2luZG93LmxvY2FsU3RvcmFnZTt0cnl7Yj17dmFsdWU6Yn0sImxvY2FsIj09PWQmJihjKj04NjRFNSxiLmV4cGlyeT0obmV3IERhdGUpLmdldFRpbWUoKStjKSxlLnNldEl0ZW0oYSxKU09OLnN0cmluZ2lmeShiKSl9Y2F0Y2goZil7Y29uc29sZS5lcnJvcihgRXJyb3Igc2F2aW5nIHRvICR7ZH0gc3RvcmFnZWAsZil9fSxnZXQ6ZnVuY3Rpb24oYSxiKXtiPXZvaWQgMD09PWI\/bnVsbDpiO2NvbnN0IGM9KGQsZSk9Pnt0cnl7Y29uc3QgZj1kLmdldEl0ZW0oYSk7aWYoIWYpcmV0dXJuIG51bGw7Y29uc3QgZz1KU09OLnBhcnNlKGYpO2lmKGUmJmcuZXhwaXJ5JiYobmV3IERhdGUpLmdldFRpbWUoKT5nLmV4cGlyeSlyZXR1cm4gZC5yZW1vdmVJdGVtKGEpLG51bGw7bGV0IGg7CnJldHVybiBudWxsIT0oaD1nLnZhbHVlKT9oOmd9Y2F0Y2goZil7cmV0dXJuIG51bGx9fTtyZXR1cm4ibG9jYWwiPT09Yj9jKHdpbmRvdy5sb2NhbFN0b3JhZ2UsITApOiJzZXNzaW9uIj09PWI\/Yyh3aW5kb3cuc2Vzc2lvblN0b3JhZ2UsITEpOmMod2luZG93LmxvY2FsU3RvcmFnZSwhMCl8fGMod2luZG93LnNlc3Npb25TdG9yYWdlLCExKX0scmVtb3ZlOmZ1bmN0aW9uKGEsYil7Yj12b2lkIDA9PT1iP251bGw6YjsibG9jYWwiIT09YiYmbnVsbCE9PWJ8fHdpbmRvdy5sb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShhKTsic2Vzc2lvbiIhPT1iJiZudWxsIT09Ynx8d2luZG93LnNlc3Npb25TdG9yYWdlLnJlbW92ZUl0ZW0oYSl9fTsKY3JlYXRlRGF0YVN0b3JlPWE9PnthPWF8fHt9O2luaXQ9Yz0+T2JqZWN0LmFzc2lnbih7fSxjKTtjb25zdCBiPWluaXQoYSk7cmV0dXJue3NldDpmdW5jdGlvbihjLGQpe2JbY109T2JqZWN0LmFzc2lnbih7fSxiW2NdLGQpO3JldHVybiBiW2NdfSxnZXQ6ZnVuY3Rpb24oYyxkKXtkPXZvaWQgMD09PWQ\/bnVsbDpkO2M9Yy5zcGxpdCgiLiIpO2xldCBlPWI7Zm9yKGNvbnN0IGYgb2YgYyl7aWYodm9pZCAwPT09ZVtmXSlyZXR1cm4gZDtlPWVbZl19cmV0dXJuIHZvaWQgMCE9PWU\/ZTpkfSxmZXRjaDpmdW5jdGlvbihjKXtyZXR1cm4gJGpzY29tcC5hc3luY0V4ZWN1dGVQcm9taXNlR2VuZXJhdG9yRnVuY3Rpb24oZnVuY3Rpb24qKCl7dHJ5e2NvbnN0IGQ9eWllbGQgZmV0Y2goYGh0dHBzOi8vJHtiLmRlYWxlckluZm8uZG9tYWlufS9hamF4Q29udHJvbGxlci8ke2N9YCk7aWYoIWQub2spdGhyb3cgRXJyb3IoIk5ldHdvcmsgcmVzcG9uc2Ugd2FzIG5vdCBvayIpO2NvbnN0IGU9eWllbGQgZC5qc29uKCk7CmJbY109ZTtyZXR1cm4gYltjXX1jYXRjaChkKXt0aHJvdyBFcnJvcihgRmFpbGVkIHRvIGZldGNoIGZyb20gc2VydmVyOiAke2QubWVzc2FnZX1gKTt9fSl9LGRlbGV0ZTpmdW5jdGlvbihjKXtpZighYltjXSl0aHJvdyBFcnJvcigiSUQgbm90IGZvdW5kIik7ZGVsZXRlIGJbY107cmV0dXJuITB9LGdldEFsbDpmdW5jdGlvbigpe3JldHVybiBPYmplY3QuYXNzaWduKHt9LGIpfX19OwovKiogL20vanMvZW1haWxIYW5kbGVyLmpzICoqLwp2YXIgX19fZDJjX2VtYWlsSGFuZGxlcmpzX2Nfb249IjIwMjYtMDItMjAgMTE6MzA6MjYiOyd1c2Ugc3RyaWN0Jzt2YXIgJGpzY29tcD0kanNjb21wfHx7fTskanNjb21wLnNjb3BlPXt9OyRqc2NvbXAuQVNTVU1FX0VTNT0hMTskanNjb21wLkFTU1VNRV9OT19OQVRJVkVfTUFQPSExOyRqc2NvbXAuQVNTVU1FX05PX05BVElWRV9TRVQ9ITE7JGpzY29tcC5TSU1QTEVfRlJPVU5EX1BPTFlGSUxMPSExOyRqc2NvbXAuSVNPTEFURV9QT0xZRklMTFM9ITE7JGpzY29tcC5GT1JDRV9QT0xZRklMTF9QUk9NSVNFPSExOyRqc2NvbXAuRk9SQ0VfUE9MWUZJTExfUFJPTUlTRV9XSEVOX05PX1VOSEFORExFRF9SRUpFQ1RJT049ITE7JGpzY29tcC5kZWZpbmVQcm9wZXJ0eT0kanNjb21wLkFTU1VNRV9FUzV8fCJmdW5jdGlvbiI9PXR5cGVvZiBPYmplY3QuZGVmaW5lUHJvcGVydGllcz9PYmplY3QuZGVmaW5lUHJvcGVydHk6ZnVuY3Rpb24oZSxnLGEpe2lmKGU9PUFycmF5LnByb3RvdHlwZXx8ZT09T2JqZWN0LnByb3RvdHlwZSlyZXR1cm4gZTtlW2ddPWEudmFsdWU7cmV0dXJuIGV9OwokanNjb21wLmdldEdsb2JhbD1mdW5jdGlvbihlKXtlPVsib2JqZWN0Ij09dHlwZW9mIGdsb2JhbFRoaXMmJmdsb2JhbFRoaXMsZSwib2JqZWN0Ij09dHlwZW9mIHdpbmRvdyYmd2luZG93LCJvYmplY3QiPT10eXBlb2Ygc2VsZiYmc2VsZiwib2JqZWN0Ij09dHlwZW9mIGdsb2JhbCYmZ2xvYmFsXTtmb3IodmFyIGc9MDtnPGUubGVuZ3RoOysrZyl7dmFyIGE9ZVtnXTtpZihhJiZhLk1hdGg9PU1hdGgpcmV0dXJuIGF9dGhyb3cgRXJyb3IoIkNhbm5vdCBmaW5kIGdsb2JhbCBvYmplY3QiKTt9OyRqc2NvbXAuZ2xvYmFsPSRqc2NvbXAuZ2V0R2xvYmFsKHRoaXMpOyRqc2NvbXAuSVNfU1lNQk9MX05BVElWRT0iZnVuY3Rpb24iPT09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PT10eXBlb2YgU3ltYm9sKCJ4Iik7JGpzY29tcC5UUlVTVF9FUzZfUE9MWUZJTExTPSEkanNjb21wLklTT0xBVEVfUE9MWUZJTExTfHwkanNjb21wLklTX1NZTUJPTF9OQVRJVkU7JGpzY29tcC5wb2x5ZmlsbHM9e307CiRqc2NvbXAucHJvcGVydHlUb1BvbHlmaWxsU3ltYm9sPXt9OyRqc2NvbXAuUE9MWUZJTExfUFJFRklYPSIkanNjcCQiO3ZhciAkanNjb21wJGxvb2t1cFBvbHlmaWxsZWRWYWx1ZT1mdW5jdGlvbihlLGcpe3ZhciBhPSRqc2NvbXAucHJvcGVydHlUb1BvbHlmaWxsU3ltYm9sW2ddO2lmKG51bGw9PWEpcmV0dXJuIGVbZ107YT1lW2FdO3JldHVybiB2b2lkIDAhPT1hP2E6ZVtnXX07JGpzY29tcC5wb2x5ZmlsbD1mdW5jdGlvbihlLGcsYSxiKXtnJiYoJGpzY29tcC5JU09MQVRFX1BPTFlGSUxMUz8kanNjb21wLnBvbHlmaWxsSXNvbGF0ZWQoZSxnLGEsYik6JGpzY29tcC5wb2x5ZmlsbFVuaXNvbGF0ZWQoZSxnLGEsYikpfTsKJGpzY29tcC5wb2x5ZmlsbFVuaXNvbGF0ZWQ9ZnVuY3Rpb24oZSxnLGEsYil7YT0kanNjb21wLmdsb2JhbDtlPWUuc3BsaXQoIi4iKTtmb3IoYj0wO2I8ZS5sZW5ndGgtMTtiKyspe3ZhciBkPWVbYl07aWYoIShkIGluIGEpKXJldHVybjthPWFbZF19ZT1lW2UubGVuZ3RoLTFdO2I9YVtlXTtnPWcoYik7ZyE9YiYmbnVsbCE9ZyYmJGpzY29tcC5kZWZpbmVQcm9wZXJ0eShhLGUse2NvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpnfSl9OwokanNjb21wLnBvbHlmaWxsSXNvbGF0ZWQ9ZnVuY3Rpb24oZSxnLGEsYil7dmFyIGQ9ZS5zcGxpdCgiLiIpO2U9MT09PWQubGVuZ3RoO2I9ZFswXTtiPSFlJiZiIGluICRqc2NvbXAucG9seWZpbGxzPyRqc2NvbXAucG9seWZpbGxzOiRqc2NvbXAuZ2xvYmFsO2Zvcih2YXIgYz0wO2M8ZC5sZW5ndGgtMTtjKyspe3ZhciBmPWRbY107aWYoIShmIGluIGIpKXJldHVybjtiPWJbZl19ZD1kW2QubGVuZ3RoLTFdO2E9JGpzY29tcC5JU19TWU1CT0xfTkFUSVZFJiYiZXM2Ij09PWE\/YltkXTpudWxsO2c9ZyhhKTtudWxsIT1nJiYoZT8kanNjb21wLmRlZmluZVByb3BlcnR5KCRqc2NvbXAucG9seWZpbGxzLGQse2NvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpnfSk6ZyE9PWEmJih2b2lkIDA9PT0kanNjb21wLnByb3BlcnR5VG9Qb2x5ZmlsbFN5bWJvbFtkXSYmKGE9MUU5Kk1hdGgucmFuZG9tKCk+Pj4wLCRqc2NvbXAucHJvcGVydHlUb1BvbHlmaWxsU3ltYm9sW2RdPSRqc2NvbXAuSVNfU1lNQk9MX05BVElWRT8KJGpzY29tcC5nbG9iYWwuU3ltYm9sKGQpOiRqc2NvbXAuUE9MWUZJTExfUFJFRklYK2ErIiQiK2QpLCRqc2NvbXAuZGVmaW5lUHJvcGVydHkoYiwkanNjb21wLnByb3BlcnR5VG9Qb2x5ZmlsbFN5bWJvbFtkXSx7Y29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmd9KSkpfTskanNjb21wLnVuZGVyc2NvcmVQcm90b0NhbkJlU2V0PWZ1bmN0aW9uKCl7dmFyIGU9e2E6ITB9LGc9e307dHJ5e3JldHVybiBnLl9fcHJvdG9fXz1lLGcuYX1jYXRjaChhKXt9cmV0dXJuITF9OwokanNjb21wLnNldFByb3RvdHlwZU9mPSRqc2NvbXAuVFJVU1RfRVM2X1BPTFlGSUxMUyYmImZ1bmN0aW9uIj09dHlwZW9mIE9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2Y6JGpzY29tcC51bmRlcnNjb3JlUHJvdG9DYW5CZVNldCgpP2Z1bmN0aW9uKGUsZyl7ZS5fX3Byb3RvX189ZztpZihlLl9fcHJvdG9fXyE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcihlKyIgaXMgbm90IGV4dGVuc2libGUiKTtyZXR1cm4gZX06bnVsbDskanNjb21wLmFycmF5SXRlcmF0b3JJbXBsPWZ1bmN0aW9uKGUpe3ZhciBnPTA7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGc8ZS5sZW5ndGg\/e2RvbmU6ITEsdmFsdWU6ZVtnKytdfTp7ZG9uZTohMH19fTskanNjb21wLmFycmF5SXRlcmF0b3I9ZnVuY3Rpb24oZSl7cmV0dXJue25leHQ6JGpzY29tcC5hcnJheUl0ZXJhdG9ySW1wbChlKX19OwokanNjb21wLm1ha2VJdGVyYXRvcj1mdW5jdGlvbihlKXt2YXIgZz0idW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmU3ltYm9sLml0ZXJhdG9yJiZlW1N5bWJvbC5pdGVyYXRvcl07cmV0dXJuIGc\/Zy5jYWxsKGUpOiRqc2NvbXAuYXJyYXlJdGVyYXRvcihlKX07JGpzY29tcC5nZW5lcmF0b3I9e307JGpzY29tcC5nZW5lcmF0b3IuZW5zdXJlSXRlcmF0b3JSZXN1bHRJc09iamVjdF89ZnVuY3Rpb24oZSl7aWYoIShlIGluc3RhbmNlb2YgT2JqZWN0KSl0aHJvdyBuZXcgVHlwZUVycm9yKCJJdGVyYXRvciByZXN1bHQgIitlKyIgaXMgbm90IGFuIG9iamVjdCIpO307CiRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQ9ZnVuY3Rpb24oKXt0aGlzLmlzUnVubmluZ189ITE7dGhpcy55aWVsZEFsbEl0ZXJhdG9yXz1udWxsO3RoaXMueWllbGRSZXN1bHQ9dm9pZCAwO3RoaXMubmV4dEFkZHJlc3M9MTt0aGlzLmZpbmFsbHlBZGRyZXNzXz10aGlzLmNhdGNoQWRkcmVzc189MDt0aGlzLmZpbmFsbHlDb250ZXh0c189dGhpcy5hYnJ1cHRDb21wbGV0aW9uXz1udWxsfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5zdGFydF89ZnVuY3Rpb24oKXtpZih0aGlzLmlzUnVubmluZ18pdGhyb3cgbmV3IFR5cGVFcnJvcigiR2VuZXJhdG9yIGlzIGFscmVhZHkgcnVubmluZyIpO3RoaXMuaXNSdW5uaW5nXz0hMH07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuc3RvcF89ZnVuY3Rpb24oKXt0aGlzLmlzUnVubmluZ189ITF9OwokanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5qdW1wVG9FcnJvckhhbmRsZXJfPWZ1bmN0aW9uKCl7dGhpcy5uZXh0QWRkcmVzcz10aGlzLmNhdGNoQWRkcmVzc198fHRoaXMuZmluYWxseUFkZHJlc3NffTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5uZXh0Xz1mdW5jdGlvbihlKXt0aGlzLnlpZWxkUmVzdWx0PWV9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLnRocm93Xz1mdW5jdGlvbihlKXt0aGlzLmFicnVwdENvbXBsZXRpb25fPXtleGNlcHRpb246ZSxpc0V4Y2VwdGlvbjohMH07dGhpcy5qdW1wVG9FcnJvckhhbmRsZXJfKCl9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLnJldHVybj1mdW5jdGlvbihlKXt0aGlzLmFicnVwdENvbXBsZXRpb25fPXtyZXR1cm46ZX07dGhpcy5uZXh0QWRkcmVzcz10aGlzLmZpbmFsbHlBZGRyZXNzX307CiRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmp1bXBUaHJvdWdoRmluYWxseUJsb2Nrcz1mdW5jdGlvbihlKXt0aGlzLmFicnVwdENvbXBsZXRpb25fPXtqdW1wVG86ZX07dGhpcy5uZXh0QWRkcmVzcz10aGlzLmZpbmFsbHlBZGRyZXNzX307JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUueWllbGQ9ZnVuY3Rpb24oZSxnKXt0aGlzLm5leHRBZGRyZXNzPWc7cmV0dXJue3ZhbHVlOmV9fTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS55aWVsZEFsbD1mdW5jdGlvbihlLGcpe2U9JGpzY29tcC5tYWtlSXRlcmF0b3IoZSk7dmFyIGE9ZS5uZXh0KCk7JGpzY29tcC5nZW5lcmF0b3IuZW5zdXJlSXRlcmF0b3JSZXN1bHRJc09iamVjdF8oYSk7aWYoYS5kb25lKXRoaXMueWllbGRSZXN1bHQ9YS52YWx1ZSx0aGlzLm5leHRBZGRyZXNzPWc7ZWxzZSByZXR1cm4gdGhpcy55aWVsZEFsbEl0ZXJhdG9yXz1lLHRoaXMueWllbGQoYS52YWx1ZSxnKX07CiRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmp1bXBUbz1mdW5jdGlvbihlKXt0aGlzLm5leHRBZGRyZXNzPWV9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmp1bXBUb0VuZD1mdW5jdGlvbigpe3RoaXMubmV4dEFkZHJlc3M9MH07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuc2V0Q2F0Y2hGaW5hbGx5QmxvY2tzPWZ1bmN0aW9uKGUsZyl7dGhpcy5jYXRjaEFkZHJlc3NfPWU7dm9pZCAwIT1nJiYodGhpcy5maW5hbGx5QWRkcmVzc189Zyl9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLnNldEZpbmFsbHlCbG9jaz1mdW5jdGlvbihlKXt0aGlzLmNhdGNoQWRkcmVzc189MDt0aGlzLmZpbmFsbHlBZGRyZXNzXz1lfHwwfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5sZWF2ZVRyeUJsb2NrPWZ1bmN0aW9uKGUsZyl7dGhpcy5uZXh0QWRkcmVzcz1lO3RoaXMuY2F0Y2hBZGRyZXNzXz1nfHwwfTsKJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuZW50ZXJDYXRjaEJsb2NrPWZ1bmN0aW9uKGUpe3RoaXMuY2F0Y2hBZGRyZXNzXz1lfHwwO2U9dGhpcy5hYnJ1cHRDb21wbGV0aW9uXy5leGNlcHRpb247dGhpcy5hYnJ1cHRDb21wbGV0aW9uXz1udWxsO3JldHVybiBlfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5lbnRlckZpbmFsbHlCbG9jaz1mdW5jdGlvbihlLGcsYSl7YT90aGlzLmZpbmFsbHlDb250ZXh0c19bYV09dGhpcy5hYnJ1cHRDb21wbGV0aW9uXzp0aGlzLmZpbmFsbHlDb250ZXh0c189W3RoaXMuYWJydXB0Q29tcGxldGlvbl9dO3RoaXMuY2F0Y2hBZGRyZXNzXz1lfHwwO3RoaXMuZmluYWxseUFkZHJlc3NfPWd8fDB9OwokanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5sZWF2ZUZpbmFsbHlCbG9jaz1mdW5jdGlvbihlLGcpe2c9dGhpcy5maW5hbGx5Q29udGV4dHNfLnNwbGljZShnfHwwKVswXTtpZihnPXRoaXMuYWJydXB0Q29tcGxldGlvbl89dGhpcy5hYnJ1cHRDb21wbGV0aW9uX3x8Zyl7aWYoZy5pc0V4Y2VwdGlvbilyZXR1cm4gdGhpcy5qdW1wVG9FcnJvckhhbmRsZXJfKCk7dm9pZCAwIT1nLmp1bXBUbyYmdGhpcy5maW5hbGx5QWRkcmVzc188Zy5qdW1wVG8\/KHRoaXMubmV4dEFkZHJlc3M9Zy5qdW1wVG8sdGhpcy5hYnJ1cHRDb21wbGV0aW9uXz1udWxsKTp0aGlzLm5leHRBZGRyZXNzPXRoaXMuZmluYWxseUFkZHJlc3NffWVsc2UgdGhpcy5uZXh0QWRkcmVzcz1lfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5mb3JJbj1mdW5jdGlvbihlKXtyZXR1cm4gbmV3ICRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQuUHJvcGVydHlJdGVyYXRvcihlKX07CiRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQuUHJvcGVydHlJdGVyYXRvcj1mdW5jdGlvbihlKXt0aGlzLm9iamVjdF89ZTt0aGlzLnByb3BlcnRpZXNfPVtdO2Zvcih2YXIgZyBpbiBlKXRoaXMucHJvcGVydGllc18ucHVzaChnKTt0aGlzLnByb3BlcnRpZXNfLnJldmVyc2UoKX07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5Qcm9wZXJ0eUl0ZXJhdG9yLnByb3RvdHlwZS5nZXROZXh0PWZ1bmN0aW9uKCl7Zm9yKDswPHRoaXMucHJvcGVydGllc18ubGVuZ3RoOyl7dmFyIGU9dGhpcy5wcm9wZXJ0aWVzXy5wb3AoKTtpZihlIGluIHRoaXMub2JqZWN0XylyZXR1cm4gZX1yZXR1cm4gbnVsbH07JGpzY29tcC5nZW5lcmF0b3IuRW5naW5lXz1mdW5jdGlvbihlKXt0aGlzLmNvbnRleHRfPW5ldyAkanNjb21wLmdlbmVyYXRvci5Db250ZXh0O3RoaXMucHJvZ3JhbV89ZX07CiRqc2NvbXAuZ2VuZXJhdG9yLkVuZ2luZV8ucHJvdG90eXBlLm5leHRfPWZ1bmN0aW9uKGUpe3RoaXMuY29udGV4dF8uc3RhcnRfKCk7aWYodGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yXylyZXR1cm4gdGhpcy55aWVsZEFsbFN0ZXBfKHRoaXMuY29udGV4dF8ueWllbGRBbGxJdGVyYXRvcl8ubmV4dCxlLHRoaXMuY29udGV4dF8ubmV4dF8pO3RoaXMuY29udGV4dF8ubmV4dF8oZSk7cmV0dXJuIHRoaXMubmV4dFN0ZXBfKCl9OwokanNjb21wLmdlbmVyYXRvci5FbmdpbmVfLnByb3RvdHlwZS5yZXR1cm5fPWZ1bmN0aW9uKGUpe3RoaXMuY29udGV4dF8uc3RhcnRfKCk7dmFyIGc9dGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yXztpZihnKXJldHVybiB0aGlzLnlpZWxkQWxsU3RlcF8oInJldHVybiJpbiBnP2dbInJldHVybiJdOmZ1bmN0aW9uKGEpe3JldHVybnt2YWx1ZTphLGRvbmU6ITB9fSxlLHRoaXMuY29udGV4dF8ucmV0dXJuKTt0aGlzLmNvbnRleHRfLnJldHVybihlKTtyZXR1cm4gdGhpcy5uZXh0U3RlcF8oKX07CiRqc2NvbXAuZ2VuZXJhdG9yLkVuZ2luZV8ucHJvdG90eXBlLnRocm93Xz1mdW5jdGlvbihlKXt0aGlzLmNvbnRleHRfLnN0YXJ0XygpO2lmKHRoaXMuY29udGV4dF8ueWllbGRBbGxJdGVyYXRvcl8pcmV0dXJuIHRoaXMueWllbGRBbGxTdGVwXyh0aGlzLmNvbnRleHRfLnlpZWxkQWxsSXRlcmF0b3JfWyJ0aHJvdyJdLGUsdGhpcy5jb250ZXh0Xy5uZXh0Xyk7dGhpcy5jb250ZXh0Xy50aHJvd18oZSk7cmV0dXJuIHRoaXMubmV4dFN0ZXBfKCl9OwokanNjb21wLmdlbmVyYXRvci5FbmdpbmVfLnByb3RvdHlwZS55aWVsZEFsbFN0ZXBfPWZ1bmN0aW9uKGUsZyxhKXt0cnl7dmFyIGI9ZS5jYWxsKHRoaXMuY29udGV4dF8ueWllbGRBbGxJdGVyYXRvcl8sZyk7JGpzY29tcC5nZW5lcmF0b3IuZW5zdXJlSXRlcmF0b3JSZXN1bHRJc09iamVjdF8oYik7aWYoIWIuZG9uZSlyZXR1cm4gdGhpcy5jb250ZXh0Xy5zdG9wXygpLGI7dmFyIGQ9Yi52YWx1ZX1jYXRjaChjKXtyZXR1cm4gdGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yXz1udWxsLHRoaXMuY29udGV4dF8udGhyb3dfKGMpLHRoaXMubmV4dFN0ZXBfKCl9dGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yXz1udWxsO2EuY2FsbCh0aGlzLmNvbnRleHRfLGQpO3JldHVybiB0aGlzLm5leHRTdGVwXygpfTsKJGpzY29tcC5nZW5lcmF0b3IuRW5naW5lXy5wcm90b3R5cGUubmV4dFN0ZXBfPWZ1bmN0aW9uKCl7Zm9yKDt0aGlzLmNvbnRleHRfLm5leHRBZGRyZXNzOyl0cnl7dmFyIGU9dGhpcy5wcm9ncmFtXyh0aGlzLmNvbnRleHRfKTtpZihlKXJldHVybiB0aGlzLmNvbnRleHRfLnN0b3BfKCkse3ZhbHVlOmUudmFsdWUsZG9uZTohMX19Y2F0Y2goZyl7dGhpcy5jb250ZXh0Xy55aWVsZFJlc3VsdD12b2lkIDAsdGhpcy5jb250ZXh0Xy50aHJvd18oZyl9dGhpcy5jb250ZXh0Xy5zdG9wXygpO2lmKHRoaXMuY29udGV4dF8uYWJydXB0Q29tcGxldGlvbl8pe2U9dGhpcy5jb250ZXh0Xy5hYnJ1cHRDb21wbGV0aW9uXzt0aGlzLmNvbnRleHRfLmFicnVwdENvbXBsZXRpb25fPW51bGw7aWYoZS5pc0V4Y2VwdGlvbil0aHJvdyBlLmV4Y2VwdGlvbjtyZXR1cm57dmFsdWU6ZS5yZXR1cm4sZG9uZTohMH19cmV0dXJue3ZhbHVlOnZvaWQgMCxkb25lOiEwfX07CiRqc2NvbXAuZ2VuZXJhdG9yLkdlbmVyYXRvcl89ZnVuY3Rpb24oZSl7dGhpcy5uZXh0PWZ1bmN0aW9uKGcpe3JldHVybiBlLm5leHRfKGcpfTt0aGlzLnRocm93PWZ1bmN0aW9uKGcpe3JldHVybiBlLnRocm93XyhnKX07dGhpcy5yZXR1cm49ZnVuY3Rpb24oZyl7cmV0dXJuIGUucmV0dXJuXyhnKX07dGhpc1tTeW1ib2wuaXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9fTskanNjb21wLmdlbmVyYXRvci5jcmVhdGVHZW5lcmF0b3I9ZnVuY3Rpb24oZSxnKXtnPW5ldyAkanNjb21wLmdlbmVyYXRvci5HZW5lcmF0b3JfKG5ldyAkanNjb21wLmdlbmVyYXRvci5FbmdpbmVfKGcpKTskanNjb21wLnNldFByb3RvdHlwZU9mJiZlLnByb3RvdHlwZSYmJGpzY29tcC5zZXRQcm90b3R5cGVPZihnLGUucHJvdG90eXBlKTtyZXR1cm4gZ307CiRqc2NvbXAuYXN5bmNFeGVjdXRlUHJvbWlzZUdlbmVyYXRvcj1mdW5jdGlvbihlKXtmdW5jdGlvbiBnKGIpe3JldHVybiBlLm5leHQoYil9ZnVuY3Rpb24gYShiKXtyZXR1cm4gZS50aHJvdyhiKX1yZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24oYixkKXtmdW5jdGlvbiBjKGYpe2YuZG9uZT9iKGYudmFsdWUpOlByb21pc2UucmVzb2x2ZShmLnZhbHVlKS50aGVuKGcsYSkudGhlbihjLGQpfWMoZS5uZXh0KCkpfSl9OyRqc2NvbXAuYXN5bmNFeGVjdXRlUHJvbWlzZUdlbmVyYXRvckZ1bmN0aW9uPWZ1bmN0aW9uKGUpe3JldHVybiAkanNjb21wLmFzeW5jRXhlY3V0ZVByb21pc2VHZW5lcmF0b3IoZSgpKX07JGpzY29tcC5hc3luY0V4ZWN1dGVQcm9taXNlR2VuZXJhdG9yUHJvZ3JhbT1mdW5jdGlvbihlKXtyZXR1cm4gJGpzY29tcC5hc3luY0V4ZWN1dGVQcm9taXNlR2VuZXJhdG9yKG5ldyAkanNjb21wLmdlbmVyYXRvci5HZW5lcmF0b3JfKG5ldyAkanNjb21wLmdlbmVyYXRvci5FbmdpbmVfKGUpKSl9Owp2YXIgZW1haWxIYW5kbGVyPWZ1bmN0aW9uKCl7dmFyIGU9ZnVuY3Rpb24oYil7dHJ5e3JldHVybiB3aW5kb3cudG9wLmxvY2F0aW9uW2JdfWNhdGNoKGQpe3JldHVybiB3aW5kb3cubG9jYXRpb25bYl19fSxnPWZ1bmN0aW9uKCl7dGhpcy5hY3Rpb249ZnVuY3Rpb24oKXt9O3RoaXMubmV4dD1udWxsO3RoaXMuX25leHRDYWxsZWQ9ITF9O2cucHJvdG90eXBlPXtleGV1dGU6ZnVuY3Rpb24oKXsiZnVuY3Rpb24iPT09dHlwZW9mIHRoaXMuYWN0aW9uJiZ0aGlzLmFjdGlvbi5jYWxsKHRoaXMpfSxnb3RvTmV4dDpmdW5jdGlvbigpe3RoaXMuX2hhc05leHQoKSYmdGhpcy5uZXh0LmV4ZXV0ZSgpO3RoaXMuX25leHRDYWxsZWQ9ITA7cmV0dXJuIHRoaXN9LHNldE5leHQ6ZnVuY3Rpb24oYil7dGhpcy5uZXh0PWI7cmV0dXJuIHRoaXN9LHNldEFjdGlvbjpmdW5jdGlvbihiKXt0aGlzLmFjdGlvbj1iO3JldHVybiB0aGlzfSxfaGFzTmV4dDpmdW5jdGlvbigpe3JldHVybiBudWxsIT09dGhpcy5uZXh0JiYKIXRoaXMuX25leHRDYWxsZWR9fTt2YXIgYT17c3ViamVjdDoiIixib2R5OiIiLHNlbmRUbzoiIixzZW5kVG9BREZGb3JtYXQ6IiIsc2VsZWN0ZWRTZW5kVG86IiIsc2VsZWN0ZWRTZW5kVG9BREZGb3JtYXQ6IiIsc2VuZEZyb206IiIsdXNlckVtYWlsOiIiLHRyYWRlaW46IiIscG9wdXBkaXY6IiIsdXNlckZpcnN0TmFtZToiIix1c2VyTGFzdE5hbWU6IiIsdXNlclBob25lOiIiLHBob25lTWFuZGF0b3J5OjAscGhvbmVWYWxpZGF0aW9uQXR0ZW1wdHM6MSx1c2VyUG9zdGFsOiIiLHVzZXJBZGRyZXNzOiIiLGJpcnRoZGF0ZToiIix1c2VyQXR0YWNobWVudFBhdGg6IiIsbWFpbElEOiJnZW5lcmljTWFpbCIsbGVhZEludm9rZXI6ImdlbmVyaWMiLGxlYWRJbnZva2VyU0lEOiIiLGlzQ1RBOiExLGJ1dHRvblRleHQ6IiIscmVzZXRDYWxsYmFja3M6ZnVuY3Rpb24oKXskLmV4dGVuZChhLHtjYWxsYmFjazpudWxsLG9uRHVwbGljYXRlU2VuZDohMSxvbkFmdGVyQ29uc2VudDohMSxvbkJlZm9yZVNob3dDb25zZW50OiExfSl9LAptYWtlOiIiLG1vZGVsOiIiLHRyaW06IiIsdmluOiIiLHByaWNlOjAseWVhcjowLHZlaGljbGVUeXBlOiIiLHN0b2NrTnVtYmVyOiIiLHB1cmNoYXNlX2ludGVudDoiIixwdXJjaGFzZV9pbnRlbnRfc2VjdGlvbjoiIixhbGxvd19zaGFyZV9wZXJzb25hbF9kYXRhOiIiLHByZWZlcnJlZF9jb250YWN0OiIiLGNhcmlkOjAsY29uZGl0aW9uOiJVc2VkIixsYW5ndWFnZToiIixpc21vYmlsZXNpdGU6Ik5PIixpc0FtcDoiTk8iLHJlZmVyZXI6IiIscG9wdXBPZmZlclR5cGU6IiIscGFydGlhbDohMSxmcm9tRmFjZWJvb2s6ITEsc2tpcFNlbmRpbmc6ITEsZnJvbU9uTG9hZDohMSxwb3N0U3VibWl0Q2FsbGJhY2s6IiIscmVzdW1lQWN0aXZpdHk6ITAsc3VibWl0RGF0YToiIixzdWJtaXRUeXBlOiJub3JtYWwiLGxhc3RDaGVja3N1bToiIixjb25zZW50RGVhbGVyOiExLGNvbnNlbnRPRU06ITEsY29uc2VudFR5cGU6IkltcGxpY2l0Iixjb25zZW50RXhwaXJhdGlvbjoiIixjb25zZW50RGF0ZToiIiwKY29uc2VudEZyZXF1ZW5jeTotMSxjb25zZW50RGV0YWlsc0ZSOiIiLGNvbnNlbnREZXRhaWxzRU46IiIsZGV0YWlsc0RlZmF1bHRzOiIiLGZyb21BQTowLG93bmVySUQ6MCxkZXBhcnRtZW50OiIiLHNraXBHZXREZXA6ITEsZGVwYXJ0bWVudEJ5U3RvY2s6ITEsYXNrUHVyY2hhc2VJbnRlbnQ6ITEsbGVhZFRpdGxlVUlUZXh0OiIiLGxlYWRUaXRsZVRleHQ6IiIsZ2VvbG9jX3N0YXR1czoiIixnZW9sb2NfbGF0OiIiLGdlb2xvY19sb25nOiIiLGdlb2xvY19hY2N1cmFjeTotMSxnZW9sb2NfdHJhY2tfc3RyOiIiLGdlb2xvY19lbWFpbF9zdHI6IiIsdHJhbnNwb3J0T3B0aW9uOiIiLGNhcjJfbWFrZToiIixjYXIyX21vZGVsOiIiLGNhcjJfdHJpbToiIixjYXIyX3llYXI6IiIsY2FyMl9jb2xvcjoiIixjYXIyX29kb21ldGVyOiIiLGNhcjJfdmluOiIiLGNhcjJfdHJhbnNtaXNzb246IiIsY2FyMl9kcml2ZXRyYWluOiIiLGNhcjJfZnVlbHR5cGU6IiIsY29tbWVudHM6IiIsZ3JlY2FwdGNoYVJlc3BvbnNlVG9rZW46IiIsCmlnbm9yZUNhcHRjaGE6ITEsY29udGFjdElEOjAsY29udGFjdEFkZHJlc3M6IiIsY29udGFjdENpdHk6IiIsY29udGFjdFByb3ZpbmNlOiIiLGNvbnRhY3RaaXA6IiIsY29udGFjdE5BUzoiIixjb250YWN0QmlydGg6IiIsZGVhbGVyTmFtZToiIixnZXROZXdTZXF1ZW5jZTpmdW5jdGlvbigpe3JldHVybiBuZXcgZ30sY3JlYXRlQ2hlY2tzdW06ZnVuY3Rpb24oKXtmb3IodmFyIGI9IiIsZD1bIm1ha2UiLCJtb2RlbCIsInllYXIiLCJtYWlsSUQiXSxjPTA7YzxkLmxlbmd0aDtjKyspe3ZhciBmPWRbY10saz1hW2ZdLG09dHlwZW9mIGs7aWYoInN0cmluZyI9PW18fCJudW1iZXIiPT1tKWIrPWYrIjoiK2srIjsifWQ9IjAwMDAwMDAwIDc3MDczMDk2IEVFMEU2MTJDIDk5MDk1MUJBIDA3NkRDNDE5IDcwNkFGNDhGIEU5NjNBNTM1IDlFNjQ5NUEzIDBFREI4ODMyIDc5RENCOEE0IEUwRDVFOTFFIDk3RDJEOTg4IDA5QjY0QzJCIDdFQjE3Q0JEIEU3QjgyRDA3IDkwQkYxRDkxIDFEQjcxMDY0IDZBQjAyMEYyIEYzQjk3MTQ4IDg0QkU0MURFIDFBREFENDdEIDZERERFNEVCIEY0RDRCNTUxIDgzRDM4NUM3IDEzNkM5ODU2IDY0NkJBOEMwIEZENjJGOTdBIDhBNjVDOUVDIDE0MDE1QzRGIDYzMDY2Q0Q5IEZBMEYzRDYzIDhEMDgwREY1IDNCNkUyMEM4IDRDNjkxMDVFIEQ1NjA0MUU0IEEyNjc3MTcyIDNDMDNFNEQxIDRCMDRENDQ3IEQyMEQ4NUZEIEE1MEFCNTZCIDM1QjVBOEZBIDQyQjI5ODZDIERCQkJDOUQ2IEFDQkNGOTQwIDMyRDg2Q0UzIDQ1REY1Qzc1IERDRDYwRENGIEFCRDEzRDU5IDI2RDkzMEFDIDUxREUwMDNBIEM4RDc1MTgwIEJGRDA2MTE2IDIxQjRGNEI1IDU2QjNDNDIzIENGQkE5NTk5IEI4QkRBNTBGIDI4MDJCODlFIDVGMDU4ODA4IEM2MENEOUIyIEIxMEJFOTI0IDJGNkY3Qzg3IDU4Njg0QzExIEMxNjExREFCIEI2NjYyRDNEIDc2REM0MTkwIDAxREI3MTA2IDk4RDIyMEJDIEVGRDUxMDJBIDcxQjE4NTg5IDA2QjZCNTFGIDlGQkZFNEE1IEU4QjhENDMzIDc4MDdDOUEyIDBGMDBGOTM0IDk2MDlBODhFIEUxMEU5ODE4IDdGNkEwREJCIDA4NkQzRDJEIDkxNjQ2Qzk3IEU2NjM1QzAxIDZCNkI1MUY0IDFDNkM2MTYyIDg1NjUzMEQ4IEYyNjIwMDRFIDZDMDY5NUVEIDFCMDFBNTdCIDgyMDhGNEMxIEY1MEZDNDU3IDY1QjBEOUM2IDEyQjdFOTUwIDhCQkVCOEVBIEZDQjk4ODdDIDYyREQxRERGIDE1REEyRDQ5IDhDRDM3Q0YzIEZCRDQ0QzY1IDREQjI2MTU4IDNBQjU1MUNFIEEzQkMwMDc0IEQ0QkIzMEUyIDRBREZBNTQxIDNERDg5NUQ3IEE0RDFDNDZEIEQzRDZGNEZCIDQzNjlFOTZBIDM0NkVEOUZDIEFENjc4ODQ2IERBNjBCOEQwIDQ0MDQyRDczIDMzMDMxREU1IEFBMEE0QzVGIEREMEQ3Q0M5IDUwMDU3MTNDIDI3MDI0MUFBIEJFMEIxMDEwIEM5MEMyMDg2IDU3NjhCNTI1IDIwNkY4NUIzIEI5NjZENDA5IENFNjFFNDlGIDVFREVGOTBFIDI5RDlDOTk4IEIwRDA5ODIyIEM3RDdBOEI0IDU5QjMzRDE3IDJFQjQwRDgxIEI3QkQ1QzNCIEMwQkE2Q0FEIEVEQjg4MzIwIDlBQkZCM0I2IDAzQjZFMjBDIDc0QjFEMjlBIEVBRDU0NzM5IDlERDI3N0FGIDA0REIyNjE1IDczREMxNjgzIEUzNjMwQjEyIDk0NjQzQjg0IDBENkQ2QTNFIDdBNkE1QUE4IEU0MEVDRjBCIDkzMDlGRjlEIDBBMDBBRTI3IDdEMDc5RUIxIEYwMEY5MzQ0IDg3MDhBM0QyIDFFMDFGMjY4IDY5MDZDMkZFIEY3NjI1NzVEIDgwNjU2N0NCIDE5NkMzNjcxIDZFNkIwNkU3IEZFRDQxQjc2IDg5RDMyQkUwIDEwREE3QTVBIDY3REQ0QUNDIEY5QjlERjZGIDhFQkVFRkY5IDE3QjdCRTQzIDYwQjA4RUQ1IEQ2RDZBM0U4IEExRDE5MzdFIDM4RDhDMkM0IDRGREZGMjUyIEQxQkI2N0YxIEE2QkM1NzY3IDNGQjUwNkREIDQ4QjIzNjRCIEQ4MEQyQkRBIEFGMEExQjRDIDM2MDM0QUY2IDQxMDQ3QTYwIERGNjBFRkMzIEE4NjdERjU1IDMxNkU4RUVGIDQ2NjlCRTc5IENCNjFCMzhDIEJDNjY4MzFBIDI1NkZEMkEwIDUyNjhFMjM2IENDMEM3Nzk1IEJCMEI0NzAzIDIyMDIxNkI5IDU1MDUyNjJGIEM1QkEzQkJFIEIyQkQwQjI4IDJCQjQ1QTkyIDVDQjM2QTA0IEMyRDdGRkE3IEI1RDBDRjMxIDJDRDk5RThCIDVCREVBRTFEIDlCNjRDMkIwIEVDNjNGMjI2IDc1NkFBMzlDIDAyNkQ5MzBBIDlDMDkwNkE5IEVCMEUzNjNGIDcyMDc2Nzg1IDA1MDA1NzEzIDk1QkY0QTgyIEUyQjg3QTE0IDdCQjEyQkFFIDBDQjYxQjM4IDkyRDI4RTlCIEU1RDVCRTBEIDdDRENFRkI3IDBCREJERjIxIDg2RDNEMkQ0IEYxRDRFMjQyIDY4RERCM0Y4IDFGREE4MzZFIDgxQkUxNkNEIEY2QjkyNjVCIDZGQjA3N0UxIDE4Qjc0Nzc3IDg4MDg1QUU2IEZGMEY2QTcwIDY2MDYzQkNBIDExMDEwQjVDIDhGNjU5RUZGIEY4NjJBRTY5IDYxNkJGRkQzIDE2NkNDRjQ1IEEwMEFFMjc4IEQ3MEREMkVFIDRFMDQ4MzU0IDM5MDNCM0MyIEE3NjcyNjYxIEQwNjAxNkY3IDQ5Njk0NzREIDNFNkU3N0RCIEFFRDE2QTRBIEQ5RDY1QURDIDQwREYwQjY2IDM3RDgzQkYwIEE5QkNBRTUzIERFQkI5RUM1IDQ3QjJDRjdGIDMwQjVGRkU5IEJEQkRGMjFDIENBQkFDMjhBIDUzQjM5MzMwIDI0QjRBM0E2IEJBRDAzNjA1IENERDcwNjkzIDU0REU1NzI5IDIzRDk2N0JGIEIzNjY3QTJFIEM0NjE0QUI4IDVENjgxQjAyIDJBNkYyQjk0IEI0MEJCRTM3IEMzMEM4RUExIDVBMDVERjFCIDJEMDJFRjhEIi5zcGxpdCgiICIpLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gcGFyc2VJbnQodCwKMTYpfSk7dmFyIG49bl4tMTtjPTA7Zm9yKGY9Yi5sZW5ndGg7YzxmO2MrKyluPW4+Pj44XmRbKG5eYi5jaGFyQ29kZUF0KGMpKSYyNTVdO3JldHVybihuXi0xKT4+PjB9LHNldE11bHRpRGVhbGVyQm9keTpmdW5jdGlvbihiLGQpe3ZhciBjPSQoIiNwb3N0TGVhZExhYmVsIikudmFsKCk7InVuZGVmaW5lZCIhPT10eXBlb2YgYz8oYz1jLnJlcGxhY2UoInskTVVMVElERUFMRVJOQU1FfSIsYikucmVwbGFjZSgieyRQT1NUX0xFQURfRU1BSUxTfSIsZCksYS5ib2R5PWEuYm9keS5yZXBsYWNlKCJ7JERFQUxFUl9TRU5EVE99IixjKSxhLmRlYWxlck5hbWU9Yik6YS5ib2R5PWEuYm9keS5yZXBsYWNlKC88YnJccz9cLz57XCRERUFMRVJfU0VORFRPfShiclxzP1wvKT8vLCIiKS5yZXBsYWNlKCJ7JERFQUxFUl9TRU5EVE99IiwiIil9LHNob3dDb25zZW50OmZ1bmN0aW9uKGIsZCl7YS5nZXRFbWFpbENvbnNlbnQoZnVuY3Rpb24oYyl7dmFyIGY9YS5nZXROZXdTZXF1ZW5jZSgpLGs9YS5nZXROZXdTZXF1ZW5jZSgpOwpmLnNldEFjdGlvbihmdW5jdGlvbigpe3ZhciBtPXRoaXMsbj0kKCIjbXVsdGktYWRkcmVzcy1zdWJtaXNzaW9uIiksdD1uLmZpbmQoInNlbGVjdCIpLHI9JCgiLmRlYWxlci1zZWxlY3Qtd3JhcHBlciIpLHY9MTExMjthLmhhc1NlbGVjdGVkTXVsdGlBZGRyZXNzPSExO2lmKCgkKCIjY3VzdG9tRm9ybV9zZW5kdG8iKS5sZW5ndGgmJiIiIT0kKCIjY3VzdG9tRm9ybV9zZW5kdG8iKS52YWwoKXx8JCgiI2N1c3RvbUZvcm1fc2VuZHRvQURGIikubGVuZ3RoJiYiIiE9JCgiI2N1c3RvbUZvcm1fc2VuZHRvQURGIikudmFsKCkpJiYwPD0kKCIjUEFHRUlEIikudmFsKCkuaW5kZXhPZigiZ2VuZXJpY18iKXx8MD09bi5sZW5ndGh8fDAhPT1hLmRlYWxlck5hbWUubGVuZ3RofHwiSm9iT2ZmZXIiPT1hLm1haWxJRCYmIiIhPSQoIiN0ZXh0U2VuZFRvRW1haWxEZWZhdWx0IikudmFsKCkpcmV0dXJuIG0uZ290b05leHQoKTt2YXIgcT0kKCIjUE9TVF9MRUFEX1NFTkRfVE9fREVBTEVSX1RZUEVfU0VMRUNUIikubGVuZ3RoPwokKCIjUE9TVF9MRUFEX1NFTkRfVE9fREVBTEVSX1RZUEVfU0VMRUNUIikudmFsKCk6ImxvY2F0aW9uIjtpZigwPCQoIiN0YXJnZXRQYWdlIikubGVuZ3RoJiYiQ0FSREVUQUlMUyI9PT0kKCIjdGFyZ2V0UGFnZSIpLnZhbCgpJiYibG9jYXRpb24iPT09cXx8KCIiIT09YS5zdG9ja051bWJlcnx8YS5jYXJpZHx8YS5nZXRTdG9ja051bWJlcigpKSYmImxvY2F0aW9uIj09PXEpcmV0dXJuIG0uZ290b05leHQoKTskKCIjbXVsdGktZGVhbGVyLW1hcCIpLmxlbmd0aCYmKEdvb2dsZU1hcHNXcmFwcGVyLnNldEdvb2dsZU1hcCgpLHE9JCgiI2Zvb3Rlckdvb2dsZU1hcFpvb20iKS52YWwoKSxxPTE8cGFyc2VJbnQocSkmJjE4Pj1wYXJzZUludChxKT9wYXJzZUludChxKTo5LHE9bmV3IEdvb2dsZU1hcHNXcmFwcGVyKHtlbGVtZW50OiJtdWx0aS1kZWFsZXItbWFwIixhZGRyZXNzZXM6InVuZGVmaW5lZCIhPXR5cGVvZiBmb290ZXJNYXBBZGRyZXNzZXM\/Zm9vdGVyTWFwQWRkcmVzc2VzOltdLHpvb206cSwKb25BZnRlck1hcmtlckNyZWF0ZWQ6ZnVuY3Rpb24oaCxsKXt2YXIgdT0kKGAuZGVhbGVyLXNlbGVjdC13cmFwcGVyIGJ1dHRvbltkYXRhLWRlYWxlcmlkPSIke2guZGVhbGVySWR9Il1gKTt1Lm9uKCJjbGljayIsZnVuY3Rpb24oKXtnb29nbGUubWFwcy5ldmVudC50cmlnZ2VyKGwsImNsaWNrIil9KTtsLmFkZExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oKXskKCIuZGVhbGVyLXNlbGVjdC13cmFwcGVyIGJ1dHRvbiIpLnJlbW92ZUNsYXNzKCJmb2N1c2VkIik7dmFyIHc9JCgnI211bHRpLWFkZHJlc3Mtc3VibWlzc2lvbiBzZWxlY3RbbmFtZT0ibXVsdGlfZGVhbGVyX3NlbmRUbyJdJyk7dS5sZW5ndGgmJih1LmFkZENsYXNzKCJmb2N1c2VkIiksdVswXS5mb2N1cygpLG11bHRpRGVhbGVyU2VsZWN0LnNldFNlbGVjdCh1WzBdLCExKSk7aWYody5sZW5ndGgpe3ZhciB4PXcuZmluZChgb3B0aW9uW2RhdGEtZGVhbGVyaWQ9IiR7aC5kZWFsZXJJZH0iXWApO3gubGVuZ3RoJiZ3LnZhbCh4LnZhbCgpKX19KTsKJChgI211bHRpLWFkZHJlc3Mtc3VibWlzc2lvbiBvcHRpb25bZGF0YS1kZWFsZXJpZD0iJHtoLmRlYWxlcklkfSJdYCkuZGF0YSgibWFya2VyIixsKX0sb25BZnRlckluaXQ6ZnVuY3Rpb24oKXsidW5kZWZpbmVkIiE9dHlwZW9mIGZvb3Rlck1hcEFkZHJlc3NlcyYmMCE9Zm9vdGVyTWFwQWRkcmVzc2VzLmxlbmd0aHx8JCgiI211bHRpLWRlYWxlci1tYXAiKS5oaWRlKCk7JCgnI211bHRpLWFkZHJlc3Mtc3VibWlzc2lvbiBzZWxlY3RbbmFtZT0ibXVsdGlfZGVhbGVyX3NlbmRUbyJdJykub24oImNoYW5nZSIsZnVuY3Rpb24oKXt2YXIgaD0kKHRoaXMpLmZpbmQoIjpzZWxlY3RlZCIpO2gubGVuZ3RoJiZnb29nbGUubWFwcy5ldmVudC50cmlnZ2VyKGguZGF0YSgibWFya2VyIiksImNsaWNrIil9KX19KSwkKCIjbXVsdGktZGVhbGVyLW1hcCIpLnNob3coKSxxLmluaXQoKSk7dC5vZmYoImZvY3VzIikub24oImZvY3VzIixmdW5jdGlvbigpe3QucmVtb3ZlQ2xhc3MoInZhbGlkaXR5LWVycm9uZW91cyIpfSk7CnZhciBwPWZ1bmN0aW9uKGgpe3ZhciBsPWEuZ2V0RGVwKCk7aWYoIkpvYk9mZmVyIj09YS5tYWlsSUQpc3dpdGNoKCQoIiNqb2JvZmZlcl9kZXBhcnRtZW50IikudmFsKCkpe2Nhc2UgIlNhbGVzbmV3IjpsPSJORVciO2JyZWFrO2Nhc2UgIlNhbGVzdXNlZCI6bD0iVVNFRCI7YnJlYWs7Y2FzZSAiU2VydmljZSI6bD0iU0VSVklDRSI7YnJlYWs7Y2FzZSAiUGFydHMiOmw9IlBBUlRTIjticmVhaztkZWZhdWx0Omw9Ik5FVyJ9dmFyIHU9IiIsdz0iIjtzd2l0Y2gobCl7Y2FzZSAiVVNFRCI6dT1oLmRhdGEoImVtYWlsdXNlZCIpO3c9aC5kYXRhKCJlbWFpbGFkZnVzZWQiKTticmVhaztjYXNlICJTRVJWSUNFIjp1PWguZGF0YSgiZW1haWxzZXJ2aWNlIik7dz1oLmRhdGEoImVtYWlsYWRmc2VydmljZSIpO2JyZWFrO2Nhc2UgIlBBUlRTIjp1PWguZGF0YSgiZW1haWxwYXJ0cyIpfHxoLmRhdGEoImVtYWlsc2VydmljZSIpO3c9aC5kYXRhKCJlbWFpbGFkZnBhcnRzIil8fGguZGF0YSgiZW1haWxhZGZzZXJ2aWNlIik7CmJyZWFrO2Nhc2UgIkZJTkFOQ0UiOnU9aC5kYXRhKCJlbWFpbGZpbmFuY2UiKSx3PWguZGF0YSgiZW1haWxhZGZmaW5hbmNlIil9YS5zZW5kVG89dXx8aC5kYXRhKCJlbWFpbCIpfHxoLmRhdGEoImVtYWlsdXNlZCIpO2Euc2VsZWN0ZWRTZW5kVG89dXx8aC5kYXRhKCJlbWFpbCIpfHxoLmRhdGEoImVtYWlsdXNlZCIpO2Euc2VuZFRvQURGRm9ybWF0PXd8fGguZGF0YSgiZW1haWxhZGYiKXx8aC5kYXRhKCJlbWFpbGFkZnVzZWQiKTthLnNlbGVjdGVkU2VuZFRvQURGRm9ybWF0PXd8fGguZGF0YSgiZW1haWxhZGYiKXx8aC5kYXRhKCJlbWFpbGFkZnVzZWQiKTthLmhhc1NlbGVjdGVkTXVsdGlBZGRyZXNzPSEwO2EuZGVhbGVyaWQ9aC5kYXRhKCJkZWFsZXJpZCIpO2Euc2V0TXVsdGlEZWFsZXJCb2R5KGgudGV4dCgpLnRyaW0oKSxhLnNlbmRUbyl9OyQoIiNtdXRsaUFkZHJlc3NTdWJtaXQiKS5vZmYoImNsaWNrIikub24oImNsaWNrIixmdW5jdGlvbigpe2lmKCIiPT09dC52YWwoKSl0LmFkZENsYXNzKCJ2YWxpZGl0eS1lcnJvbmVvdXMiKSwKci5hZGRDbGFzcygidmFsaWRpdHktZXJyb25lb3VzIik7ZWxzZXt2YXIgaD10LmZpbmQoIjpzZWxlY3RlZCIpO3AoaCk7JCgiLnJldmVhbC1tb2RhbC1iZyIpLmNzcygiei1pbmRleCIsdik7bi50cmlnZ2VyKCJyZXZlYWw6Y2xvc2UiKTttLmdvdG9OZXh0KCl9fSk7aWYoJCgiLm11bHRpLWFkZHJlc3Mtc3VibWlzc2lvbi1jbG9zZSIpLmxlbmd0aCkkKCIubXVsdGktYWRkcmVzcy1zdWJtaXNzaW9uLWNsb3NlIikub2ZmKCJjbGljayIpLm9uKCJjbGljayIsZnVuY3Rpb24oKXtMZWFkcyYmT2JqZWN0LmtleXMoTGVhZHMpLmZvckVhY2goZnVuY3Rpb24oaCl7InVuZGVmaW5lZCIhPT10eXBlb2YgTGVhZHNbaF0ubGVhZElkJiZMZWFkSGFuZGxlcigpLmdldExlYWQoTGVhZHNbaF0ubGVhZElkKS5jbG9zZSgpfSk7cG9wdXBTdXBlcnZpc29yJiZwb3B1cFN1cGVydmlzb3IucG9wdXBzJiZwb3B1cFN1cGVydmlzb3IucG9wdXBzLmZvckVhY2goZnVuY3Rpb24oaCl7aCYmdHlwZW9mIGguaXNBY3RpdmUoKSYmCmguY2FuY2VsKCl9KTskKCIucmV2ZWFsLW1vZGFsLWJnIikuY3NzKCJ6LWluZGV4Iix2KTtuLnRyaWdnZXIoInJldmVhbDpjbG9zZSIpfSk7aWYoIiIhPT1hLm1ha2UmJm11bHRpRGVhbGVyU2VsZWN0JiYocT1tdWx0aURlYWxlclNlbGVjdC5maWx0ZXIodCkscS5ieU1ha2UoYS5tYWtlKSxxPXEuaGFzT25seU9uZSgpKSlyZXR1cm4gcChxKSxtLmdvdG9OZXh0KCk7ci5sZW5ndGgmJihxPXIuZmluZCgiYnV0dG9uIikudG9BcnJheSgpLHEubGVuZ3RoJiYocT1mdW5jdGlvbihoKXtmb3IobGV0IGw9aC5sZW5ndGgtMTswPGw7bC0tKXtjb25zdCB1PU1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSoobCsxKSk7W2hbbF0saFt1XV09W2hbdV0saFtsXV19cmV0dXJuIGh9KHEpLHIuZmluZCgiYnV0dG9uIikucmVtb3ZlKCksci5hcHBlbmQocSkpKTtuLnJldmVhbCh7YW5pbWF0aW9uOiJmYWRlQW5kUG9wIixhbmltYXRpb25zcGVlZDozMDAsY2xvc2VvbmJhY2tncm91bmRjbGljazohMSxkaXNtaXNzbW9kYWxjbGFzczoiY2xvc2UtcmV2ZWFsLW1vZGFsMiIsCmNsb3Nlb25lc2NhcGU6ITF9KTt2PSQoIi5yZXZlYWwtbW9kYWwtYmciKS5jc3MoInotaW5kZXgiKTskKCIucmV2ZWFsLW1vZGFsLWJnIikuY3NzKCJ6LWluZGV4IixwYXJzZUludChuLmNzcygiei1pbmRleCIpKS0xKX0pO2suc2V0QWN0aW9uKGZ1bmN0aW9uKCl7dm9pZCAwPT1iJiYoYj0hMSk7dm9pZCAwPT1kJiYoZD0hMSk7dmFyIG09JCgiI2FzUG9wVXAiKSxuPSExOyhhLmFza1B1cmNoYXNlSW50ZW50fHxhLnNob3VsZERpc3BsYXlQdXJjaGFzZUludGVudENvbnRhY3QoKSkmJjA8JCgiI2FzUHVyY2hhc2VJbnRlbnQiKS5sZW5ndGgmJihtPSQoIiNhc1B1cmNoYXNlSW50ZW50Iiksbj0hMCk7aWYoMDxtLmxlbmd0aCl7Z2V0Q29va2llKCJ2aXNpdG9yX2hhc19leHBsaWNpdF9jb25zZW50Iik7dmFyIHQ9cGFyc2VJbnQoZ2V0Q29va2llKCJ2aXNpdG9yX2hhc19zZWVuX3BvcHVwIiksMTApO2lzTmFOKHQpJiYodD0wKTthLnNraXBTZW5kaW5nPWI7YS5mcm9tT25Mb2FkPWQ7aWYoYy5oYXNDb25zZW50KXtzd2l0Y2goYS5zdWJtaXRUeXBlKXtjYXNlICJpbnN0YW50UmViYXRlIjpjYXNlICJzY3JhdGNoIjpyZWFsU3VibWl0UmViYXRlQ291cG9uKCk7CmJyZWFrO2RlZmF1bHQ6IiIhPWEucG9zdFN1Ym1pdENhbGxiYWNrJiZldmFsKGEucG9zdFN1Ym1pdENhbGxiYWNrKX1hLnJlYWR5VG9TZW5kKCl9ZWxzZXtzd2l0Y2goYS5zdWJtaXRUeXBlKXtjYXNlICJzY3JhdGNoIjpjYXNlICJpbnN0YW50UmViYXRlIjpjbG9zZVBvcHVwV2lkZ2V0KCl9ImZ1bmN0aW9uIj09dHlwZW9mIGEub25CZWZvcmVTaG93Q29uc2VudCYmYS5vbkJlZm9yZVNob3dDb25zZW50LmNhbGwoKTtpZihuKWEuc2hvdWxkRGlzcGxheVB1cmNoYXNlSW50ZW50Q29udGFjdCgpP2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNhc1B1cmNoYXNlSW50ZW50IC5zdGVwQ29udGFjdCIpLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpOmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNhc1B1cmNoYXNlSW50ZW50IC5zdGVwQ29udGFjdCIpLmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpLCQoIiNlbWFpbENvbnNlbnRTdWJtaXQiKS5vbigiY2xpY2siLGZ1bmN0aW9uKCl7dmFyIHI9e307bS5maW5kKCJmb3JtIikuc2VyaWFsaXplQXJyYXkoKS5tYXAocD0+CntyW3AubmFtZV09cC52YWx1ZX0pOyQoIiNBTExPV19TSEFSRV9QRVJTT05BTF9JTkZPLCAuc3RlcENvbnNlbnQiKS5jc3Moe2JvcmRlcjoibm9uZSJ9KTskKCIjQUxMT1dfU0hBUkVfUEVSU09OQUxfSU5GT19URVhUX0VSUk9SIikuaGlkZSgpO2lmKDE9PSQoIiNBTExPV19TSEFSRV9QRVJTT05BTF9JTkZPIikuaXMoIjp2aXNpYmxlIikmJighci5zaGFyZV9wZXJzb25hbHx8Im5vIj09ci5zaGFyZV9wZXJzb25hbCkpcmV0dXJuICQoIiNBTExPV19TSEFSRV9QRVJTT05BTF9JTkZPIikuY3NzKHtib3JkZXI6IjFweCBzb2xpZCByZWQifSksJCgiI0FMTE9XX1NIQVJFX1BFUlNPTkFMX0lORk9fVEVYVF9FUlJPUiIpLnNob3coKSwhMTtpZighci5oYXNPd25Qcm9wZXJ0eSgiY29uc2VudCIpKXJldHVybiAkKCIuc3RlcENvbnNlbnQiKS5jc3Moe2JvcmRlcjoiMXB4IHNvbGlkIHJlZCJ9KSwhMTt2YXIgdj17cHVyY2hhc2VfaW50ZW50Oi0xLHNoYXJlX3BlcnNvbmFsOiJubyIscHJlZmVycmVkX2NvbnRhY3Q6IiJ9Owpmb3IodmFyIHEgaW4gdil2Lmhhc093blByb3BlcnR5KHEpJiYoci5oYXNPd25Qcm9wZXJ0eShxKT9zZXRDb29raWUocSxyW3FdKTpyW3FdPXZbcV0pO2EucHVyY2hhc2VfaW50ZW50PXIucHVyY2hhc2VfaW50ZW50O2EuYWxsb3dfc2hhcmVfcGVyc29uYWxfZGF0YT1yLnNoYXJlX3BlcnNvbmFsO2EucHJlZmVycmVkX2NvbnRhY3Q9ci5wcmVmZXJyZWRfY29udGFjdDt2PSItMSIhPXIuY29uc2VudDtxPXIuaGFzT3duUHJvcGVydHkoImNvbnNlbnRfb2VtIikmJiIxIj09ci5jb25zZW50X29lbTthLnN1Ym1pdENvbnNlbnQodixxLCJjb21wbGV4Iik7cmV0dXJuITF9KTtlbHNlICQoIiNjb25zZW50U3VibWl0Iikub24oImNsaWNrIixmdW5jdGlvbihyKXtyLnByZXZlbnREZWZhdWx0KCk7cj0hMTskKCIuZGVhbGVyQ29uc2VudCIpLmNzcyh7Ym9yZGVyOiJub25lIn0pOyQoIi5vZW1Db25zZW50IikuY3NzKHtib3JkZXI6Im5vbmUifSk7dmFyIHY9e307bS5maW5kKCJmb3JtIikuc2VyaWFsaXplQXJyYXkoKS5tYXAocD0+Cnt2W3AubmFtZV09cC52YWx1ZX0pO3YuaGFzT3duUHJvcGVydHkoImNvbnNlbnQiKXx8KCQoIi5kZWFsZXJDb25zZW50IikuY3NzKHtib3JkZXI6IjFweCBzb2xpZCByZWQifSkscj0hMCk7bS5maW5kKCJmb3JtIC5vZW1Db25zZW50IikubGVuZ3RoJiYhdi5oYXNPd25Qcm9wZXJ0eSgiY29uc2VudF9vZW0iKSYmJCgiI29lbUNlcnRpZmljYXRpb24iKS52YWwoKSYmKG0uZmluZCgiZm9ybSAub2VtQ29uc2VudCIpLmNzcyh7Ym9yZGVyOiIxcHggc29saWQgcmVkIn0pLHI9ITApO2lmKHIpcmV0dXJuITE7cj0iLTEiIT12LmNvbnNlbnQ7dmFyIHE9di5oYXNPd25Qcm9wZXJ0eSgiY29uc2VudF9vZW0iKSYmIjEiPT12LmNvbnNlbnRfb2VtO2Euc3VibWl0Q29uc2VudChyLHEpfSk7YS5wcmVTZW5kSW1wbGljaXQoKTttLnJldmVhbCh7YW5pbWF0aW9uOiJmYWRlQW5kUG9wIixhbmltYXRpb25zcGVlZDozMDAsY2xvc2VvbmJhY2tncm91bmRjbGljazohMSxkaXNtaXNzbW9kYWxjbGFzczoiY2xvc2UtcmV2ZWFsLW1vZGFsIiwKY2xvc2VvbmVzY2FwZTohMX0pfX1lbHNlIiI9PWEuY29uc2VudERldGFpbHNFTiYmdm9pZCAwIT1hLmRldGFpbHNEZWZhdWx0cy5FTkdMSVNIJiZ2b2lkIDAhPWEuZGV0YWlsc0RlZmF1bHRzLkZSRU5DSCYmKGEuY29uc2VudERldGFpbHNFTj1hLmRldGFpbHNEZWZhdWx0cy5FTkdMSVNIWzJdLGEuY29uc2VudERldGFpbHNGUj1hLmRldGFpbHNEZWZhdWx0cy5GUkVOQ0hbMl0pLGI\/cmVhbFNob3dQb3B1cFdpZGdldChkKTphLnJlYWR5VG9TZW5kKCl9KTtmLnNldE5leHQoaykuZXhldXRlKCl9KX0saGlkZUNvbnNlbnQ6ZnVuY3Rpb24oKXt2YXIgYj0kKCIjYXNQb3BVcDp2aXNpYmxlIik7JCgiI2FzUHVyY2hhc2VJbnRlbnQiKS5pcygiOnZpc2libGUiKSYmImhpZGRlbiIhPT0kKCIjYXNQdXJjaGFzZUludGVudCIpLmNzcygidmlzaWJpbGl0eSIpJiYoYj0kKCIjYXNQdXJjaGFzZUludGVudDp2aXNpYmxlIiksY29tcGxleD0hMCk7MDxiLmxlbmd0aCYmYi50cmlnZ2VyKCJyZXZlYWw6Y2xvc2UiKX0sCnNhdmVDb25zZW50OmZ1bmN0aW9uKGIsZCxjLGYpeyQoImJvZHkiKS5jc3MoIm92ZXJmbG93IiwiYXV0byIpO2EuaGlkZUNvbnNlbnQoKTt2b2lkIDA9PWMmJihjPSIiKTt2YXIgaz1iPzczMDoxODA7ZD17ZW1haWw6YS51c2VyRW1haWwsZmlyc3Q6YS51c2VyRmlyc3ROYW1lLGxhc3Q6YS51c2VyTGFzdE5hbWUscGhvbmU6YS51c2VyUGhvbmUsc2l0ZUlEOiQoIiNzaXRlSUQiKS52YWwoKSxmcmVxdWVuY3k6Yj8xOi0xLGV4cGxpY2l0OmI\/MTowLGV4cGxpY2l0T0VNOmQ\/MTowLGltZzpjLHJlZmVyZXI6dm9pZCAwIT1kb2N1bWVudC5yZWZlcnJlcj9kb2N1bWVudC5yZWZlcnJlcjoiIixmcm9tOiJFSCJ9O2lmKHZvaWQgMCE9PWEucHJlZmVycmVkX2NvbnRhY3QmJiIiIT09YS5wcmVmZXJyZWRfY29udGFjdHx8dm9pZCAwIT09Z2V0Q29va2llKCJwcmVmZXJyZWRfY29udGFjdCIpJiYiIiE9PWdldENvb2tpZSgicHJlZmVycmVkX2NvbnRhY3QiKSljPWEucHJlZmVycmVkX2NvbnRhY3R8fApnZXRDb29raWUoInByZWZlcnJlZF9jb250YWN0IiksYz17IlTDqWzDqXBob25lIjoiUEhPTkUiLENvdXJyaWVsOiJFTUFJTCJ9W2NdfHxjLG51bGwhPT1jJiYoZC5jb250YWN0UHJlZmVyZW5jZT1jLnRvVXBwZXJDYXNlKCkpO3NldENvb2tpZSgidmlzaXRvcl9mcmVxdWVuY3lfcHJlZmVyZW5jZSIsLTEsayk7c2V0Q29va2llKCJ2aXNpdG9yX2NvbnNlbnRfcHJlZmVyZW5jZSIsYj8iRXhwbGljaXQiOiJJbXBsaWNpdCIsayk7c2V0Q29va2llKCJ2aXNpdG9yX2hhc19leHBsaWNpdF9jb25zZW50IixiPyJ5ZXMiOiJubyIsayk7c2V0Q29va2llKCJ2aXNpdG9yX2VtYWlsX3ByZWZlcmVuY2UiLGQuZW1haWwsOTApOyQoIi51aS1sb2FkZXItYmFja2dyb3VuZCIpLnNob3coKTtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7JCgiLnVpLWxvYWRlci1iYWNrZ3JvdW5kIikuaGlkZSgpfSw1RTMpOyQuYWpheCh7dHlwZToiUE9TVCIsdXJsOiIvYWpheC90cmFja0VtYWlsUHJlZmVyZW5jZT93c3dpZHRoPTAiLApkYXRhVHlwZToianNvbiIsZGF0YTpkLGNvbXBsZXRlOmZ1bmN0aW9uKG0pe3RyeXt2YXIgbj1KU09OLnBhcnNlKG0ucmVzcG9uc2VUZXh0KTthLmNvbnNlbnREZXRhaWxzRU49YnRvYShuLmRldGFpbENvbnNlbnQuRU5HTElTSCk7YS5jb25zZW50RGV0YWlsc0ZSPWJ0b2Eobi5kZXRhaWxDb25zZW50LkZSRU5DSCl9Y2F0Y2godCl7fWEucG9zdFNhdmVDb25zZW50KGIsZil9fSl9LHBvc3RTYXZlQ29uc2VudDpmdW5jdGlvbihiLGQpe3ZvaWQgMCE9YS5kZXRhaWxzRGVmYXVsdHMuRU5HTElTSCYmdm9pZCAwIT1hLmRldGFpbHNEZWZhdWx0cy5GUkVOQ0gmJihiPyhhLmNvbnNlbnREZXRhaWxzRU49YS5kZXRhaWxzRGVmYXVsdHMuRU5HTElTSFsxXSxhLmNvbnNlbnREZXRhaWxzRlI9YS5kZXRhaWxzRGVmYXVsdHMuRlJFTkNIWzFdKTooYS5jb25zZW50RGV0YWlsc0VOPWEuZGV0YWlsc0RlZmF1bHRzLkVOR0xJU0hbMl0sYS5jb25zZW50RGV0YWlsc0ZSPWEuZGV0YWlsc0RlZmF1bHRzLkZSRU5DSFsyXSkpOwppZihkKXtpZihhLmlnbm9yZUNhcHRjaGE\/YS5yZWFkeVRvU2VuZCgpOihhLnJlY2FwdGNoYS5yZXNldFRva2VuKCksYS5yZWNhcHRjaGEuZ2V0UmVzcG9uc2UoKS5kb25lKGZ1bmN0aW9uKGMpe2EuZ3JlY2FwdGNoYVJlc3BvbnNlVG9rZW49YzthLnJlYWR5VG9TZW5kKCl9KSksImZ1bmN0aW9uIj09dHlwZW9mIGEub25BZnRlckNvbnNlbnQpYS5vbkFmdGVyQ29uc2VudChiKX1lbHNlIGEuaGlkZUNvbnNlbnQoKX0sc3VibWl0Q29uc2VudDpmdW5jdGlvbihiLGQsYyl7YS5jb25zZW50RGVhbGVyPWI7YS5jb25zZW50T0VNPWQ7aWYoYyYmImNvbXBsZXgiPT1jKXt2YXIgZj0iIjstMT09YS5wdXJjaGFzZV9pbnRlbnQ\/KGM9IlBhcyBkZSByZXBvbnNlIixmPSJOT19BTlNXRVIiKTpjPWEucHVyY2hhc2VfaW50ZW50O251bGwhPWMubWF0Y2goLzMwLyk\/KGM9Ik1vaW5zIGRlIDMwIGpvdXJzIixmPSJMVF8zMF9EQVlTIik6bnVsbCE9Yy5tYXRjaCgvMy8pPyhjPSJNb2lucyBkZSAzIG1vaXMiLApmPSJMVF8zX01PTlRIUyIpOm51bGwhPWMubWF0Y2goLzYvKSYmKG51bGwhPWMubWF0Y2goL3BsdXN8b3Zlcnxtb3JlLyk\/KGM9IlBsdXMgZGUgNiBtb2lzIixmPSJHVF82X01PTlRIUyIpOihjPSJNb2lucyBkZSA2IG1vaXMiLGY9IkxUXzZfTU9OVEhTIikpO3ZhciBrPSJSZXBvbnNlIC0gIithLnB1cmNoYXNlX2ludGVudF9zZWN0aW9uLnRvVXBwZXJDYXNlKCk7YS5sb2dFdmVudCgiSW50ZW50aW9ucyBhY2hhdDogIitjLCJQVVJDSEFTRV9JTlRFTlRfIitmKTsidW5kZWZpbmVkIiE9PXR5cGVvZiBkZWJ1ZyYmZGVidWcoWyJiLl90cmFja0V2ZW50IiwiSW50ZW50aW9ucyBhY2hhdCIsayxjLDFdKX1zd2l0Y2goYS5zdWJtaXRUeXBlKXtjYXNlICJzY3JhdGNoIjpjYXNlICJpbnN0YW50UmViYXRlIjpyZWFsU3VibWl0UmViYXRlQ291cG9uKCk7YnJlYWs7ZGVmYXVsdDoiIiE9YS5wb3N0U3VibWl0Q2FsbGJhY2smJmV2YWwoYS5wb3N0U3VibWl0Q2FsbGJhY2spfSJzY3JhdGNoIj09YS5zdWJtaXRUeXBlJiYKc2hvd1BvcHVwV2lkZ2V0KCk7JCgiI2xhc3RDb25zZW50UG9wIikudmFsKGI\/IkV4cGxpY2l0IjoiSW1wbGljaXQiKTthLnNhdmVDb25zZW50KGIsZCwiIiwhMCl9LHByZVNlbmRDaGVja3M6ZnVuY3Rpb24oYil7Yj9hLnJlYWR5VG9TZW5kKCk6YS5zaG93Q29uc2VudCgpfSxzZW5kTWFpbDpmdW5jdGlvbihiKXtyZXR1cm4gJGpzY29tcC5hc3luY0V4ZWN1dGVQcm9taXNlR2VuZXJhdG9yRnVuY3Rpb24oZnVuY3Rpb24qKCl7YS5zdWJtaXRUeXBlPSJub3JtYWwiO2I9InVuZGVmaW5lZCIhPXR5cGVvZiBiP2I6ITE7YS5pZ25vcmVDYXB0Y2hhfHwoYS5yZWNhcHRjaGEubG9hZCgpLCJ1bmRlZmluZWQiIT09Z3JlY2FwdGNoYSYmLTE8YS5yZWNhcHRjaGEud2lkZ2V0SWQmJih5aWVsZCBhLnJlY2FwdGNoYS5nZXRSZXNwb25zZSgpKSk7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiAkKCIjb25MZWFkU3VibWl0R2VvbG9jIikudmFsKCl8fDEhPSQoIiNvbkxlYWRTdWJtaXRHZW9sb2MiKS52YWwoKXx8CiJ1bmRlZmluZWQiPT10eXBlb2YgZ2VvTG9jYXRvcnx8YS5za2lwR2VvTG9jKWEucHJlU2VuZENoZWNrcyhiKTtlbHNle3ZhciBkPW5ldyBnZW9Mb2NhdG9yKGZ1bmN0aW9uKGMpe2EuZ2VvbG9jX3N0YXR1cz1jLmdlb2xvY19zdGF0dXM7MT09Yy5yZXN1bHQmJihhLmdlb2xvY19sYXQ9Yy5sYXRpdHVkZSxhLmdlb2xvY19sb25nPWMubG9uZ2l0dWRlLGEuZ2VvbG9jX2FjY3VyYWN5PWMuYWNjdXJhY3ksYS5nZW9sb2NfdHJhY2tfc3RyPWMuZ2VvY29kZV9hZGRyZXNzLGEuZ2VvbG9jX2VtYWlsX3N0cj1jLmdlb2NvZGVfYWRkcmVzc19zdHIsLTE9PWEuYm9keS5pbmRleE9mKCIjI0dFT0xPQ0FUSU9OIyMiKSYmKGEuYm9keT10cmltKGEuYm9keSkucmVwbGFjZSgvPGJyPiZuYnNwOy9nLCI8YnI+IikrIiMjR0VPTE9DQVRJT04jIyIpLCJ1bmRlZmluZWQiIT10eXBlb2YgYWN0aXZlVXNlclByb2ZpbGVNbmcmJiJ1bmRlZmluZWQiIT10eXBlb2YgYWN0aXZlVXNlclByb2ZpbGVNbmcubG9nUGFnZVZpZXdFdmVudCYmCmFjdGl2ZVVzZXJQcm9maWxlTW5nLmxvZ1BhZ2VWaWV3RXZlbnQoIlBPU1RBTF9DT0RFIixjLmdlb2NvZGVfYWRkcmVzc19zdHIpKTsidW5kZWZpbmVkIj09dHlwZW9mICQoIiNsZWFkU2VudCIpLnZhbCgpJiYoYz0kKCI8aW5wdXQ+IikuYXR0cih7aWQ6ImxlYWRTZW50Iix0eXBlOiJoaWRkZW4ifSkudmFsKDEpLCQoIiNmb290ZXJEaXYiKS5hcHBlbmQoYyksYS5wcmVTZW5kQ2hlY2tzKGIpKX0pO2QudHJhY2tMb2NhdGlvbkdBPSEwO2QuZ2V0TG9jYXRpb24oKX19KX0sc2VuZFVzZXJFbWFpbDpmdW5jdGlvbihiLGQpe3NlbmRUb0RhdGE9e307dmFyIGM9Yj0iIixmPSIiLGs9IiI7Zm9yKGkgaW4gZClpZigic3RyaW5nIj09dHlwZW9mIGkpc3dpdGNoKGkudG9Mb3dlckNhc2UoKSl7Y2FzZSAiZW1haWx0byI6Yz1kW2ldO2JyZWFrO2Nhc2UgImVtYWlsaWQiOmI9ZFtpXTticmVhaztjYXNlICJkZWFsZXJlbWFpbCI6Zj1kW2ldO2JyZWFrO2Nhc2UgImRlYWxlcnBob25lIjprPWRbaV07YnJlYWs7CmRlZmF1bHQ6c2VuZFRvRGF0YVtpXT1kW2ldfWQ9e3ZhcnM6SlNPTi5zdHJpbmdpZnkoc2VuZFRvRGF0YSksc2l0ZWlkOiQoIiN0b3BzaXRlaWQiKS52YWwoKSxsYW5ndWFnZTokKCIjYWN0aXZlc2l0ZWxhbmd1YWdlIikudmFsKCksZW1haWxpZDpiLGVtYWlsdG86YyxkZWFsZXJFbWFpbDpmLGRlYWxlclBob25lOmssc291cmNlVVJJOndpbmRvdy5sb2NhdGlvbi5ocmVmfTskLmFqYXgoe3R5cGU6IlBPU1QiLHVybDoiL2FqYXgvYWRkTWFpbFRvU2VuZD93c3dpZHRoPTAiLGRhdGE6ZH0pfSxnZXRTdG9ja051bWJlcjpmdW5jdGlvbigpe2lmKGEuc3RvY2tOdW1iZXIpcmV0dXJuIGEuc3RvY2tOdW1iZXI7aWYoMDwkKCIjbGFzdHZpZXdlZHN0b2NrbnVtYmVyIikubGVuZ3RoJiYwPCQoIiN0YXJnZXRQYWdlIikubGVuZ3RoJiZbIk5FV0NBUkRFVEFJTFMiLCJDQVJERVRBSUxTIiwiUFJPTU8iLCJWRUhJQ0xFRVZBTCJdLmluY2x1ZGVzKCQoIiN0YXJnZXRQYWdlIikudmFsKCkpKXt2YXIgYj0KJCgiI2xhc3R2aWV3ZWRzdG9ja251bWJlciIpLnZhbCgpO2lmKDI8Yi5sZW5ndGgpe3ZhciBkPWIuaW5kZXhPZigiKFN0b2NrIik7LTE8ZCYmKGI9Yi5zdWJzdHIoZCs3KSxkPWIuaW5kZXhPZigiKSIpLC0xPGQmJihiPWIuc3Vic3RyKDAsZCkudHJpbSgpKSk7Yis9IiJ9ZWxzZSBiPSIifWVsc2UgYj1nZXRQYXJhbWV0ZXJCeU5hbWUoInN0b2Nrbm8iKXx8IiI7cmV0dXJuIGIudHJpbSgpfSxnZXRWUERVcmxGcm9tU3RvY2s6ZnVuY3Rpb24oKXt2YXIgYj0iRU5HTElTSCI9PSQoIiNhY3RpdmVzaXRlbGFuZ3VhZ2UiKS52YWwoKT8kKCIjbGFzdHZpZXdlZHllYXIiKS52YWwoKSsiICIrJCgiI2xhc3R2aWV3ZWRtYWtlIikudmFsKCkrIiAiKyQoIiNsYXN0dmlld2VkbW9kZWwiKS52YWwoKSsiICIrJCgiI2xhc3R2aWV3ZWRzdG9ja251bWJlciIpLnZhbCgpOiQoIiNsYXN0dmlld2VkbWFrZSIpLnZhbCgpKyIgIiskKCIjbGFzdHZpZXdlZG1vZGVsIikudmFsKCkrIiAiKyQoIiNsYXN0dmlld2VkeWVhciIpLnZhbCgpKwoiICIrJCgiI2xhc3R2aWV3ZWRzdG9ja251bWJlciIpLnZhbCgpO3RyeXt2YXIgZD1hLmdldFN0b2NrTnVtYmVyKCksYz0iIixmPSJFTkdMSVNIIj09JCgiI2FjdGl2ZXNpdGVsYW5ndWFnZSIpLnZhbCgpPyJ1c2VkIjoib2NjYXNpb24iLGs9ZSgiaHJlZiIpLG09ZSgicHJvdG9jb2wiKSxuPWsucmVwbGFjZShtKyIvLyIsIiIpLnNwbGl0KCIvIiksdD1uWzBdLHI9ay5pbmRleE9mKCItaWQiKTtpZigidW5kZWZpbmVkIj09PXR5cGVvZiBwYWdlfHwiQlVJTERBTkRQUklDRSIhPXBhZ2UmJiJORVdDQVJERVRBSUxTIiE9cGFnZSlpZigtMTxyKXt2YXIgdj1wYXJzZUludChrLnN1YnN0cihyKzMpLnJlcGxhY2UoIi5odG1sIiwiIiksMTApO2lmKCFpc05hTih2KSYmMDx2KXt2YXIgcT1uW24ubGVuZ3RoLTFdOy0xPHEuaW5kZXhPZih2KSYmKGM9JzxhIGhyZWY9IicrbSsiLy8iK3QrIi8iK2YrIi8iK3ErIlwiIHRhcmdldD0nX2JsYW5rJz4iK2IrIjwvYT4iKX19ZWxzZSIiIT09YS50cmltJiYKKGI9IkVOR0xJU0giPT0kKCIjYWN0aXZlc2l0ZWxhbmd1YWdlIikudmFsKCk\/JCgiI2xhc3R2aWV3ZWR5ZWFyIikudmFsKCkrIiAiKyQoIiNsYXN0dmlld2VkbWFrZSIpLnZhbCgpKyIgIiskKCIjbGFzdHZpZXdlZG1vZGVsIikudmFsKCkrIiAiK2EudHJpbTokKCIjbGFzdHZpZXdlZG1ha2UiKS52YWwoKSsiICIrJCgiI2xhc3R2aWV3ZWRtb2RlbCIpLnZhbCgpKyIgIithLnRyaW0rIiAiKyQoIiNsYXN0dmlld2VkeWVhciIpLnZhbCgpKTtlbHNlIiIhPT1hLnRyaW0mJihiPSJFTkdMSVNIIj09JCgiI2FjdGl2ZXNpdGVsYW5ndWFnZSIpLnZhbCgpPyQoIiNsYXN0dmlld2VkeWVhciIpLnZhbCgpKyIgIiskKCIjbGFzdHZpZXdlZG1ha2UiKS52YWwoKSsiICIrJCgiI2xhc3R2aWV3ZWRtb2RlbCIpLnZhbCgpKyIgIithLnRyaW06JCgiI2xhc3R2aWV3ZWRtYWtlIikudmFsKCkrIiAiKyQoIiNsYXN0dmlld2VkbW9kZWwiKS52YWwoKSsiICIrYS50cmltKyIgIiskKCIjbGFzdHZpZXdlZHllYXIiKS52YWwoKSksCmM9JzxhIGhyZWY9IicraysiXCIgdGFyZ2V0PSdfYmxhbmsnPiIrYisiPC9hPiI7aWYoIiI9PWMmJjI8ZC5sZW5ndGgpe3ZhciBwPSQoIiN0b3BzaXRlaWQiKS52YWwoKSxoPSJFTkdMSVNIIj09JCgiI2FjdGl2ZXNpdGVsYW5ndWFnZSIpLnZhbCgpPyJlbiI6ImZyIjskLmFqYXgoe3R5cGU6IkdFVCIsYXN5bmM6ITEsZGF0YVR5cGU6Impzb24iLHVybDoiLyIraCsiL3BocC9nZXRVUkxGcm9tU3RvY2sucGhwP3NpdGVJRD0iK3ArIiZzdG9jaz0iK2Qsc3VjY2VzczpmdW5jdGlvbihsKXsib2JqZWN0Ij09dHlwZW9mIGwmJm51bGwhPWwmJnZvaWQgMCE9bC5tYWtlJiYoYz0nPGEgaHJlZj0iJyttKyIvLyIrdCsiLyIrZisiLyIrKGwubWFrZSsiLSIrbC5tb2RlbCsiLSIrbC55ZWFyKyItaWQiK2wuaWQrIi5odG1sXCIgdGFyZ2V0PSdfYmxhbmsnPiIpK2wuZnVsbCsiPC9hPiIpfX0pfSIiIT1jJiYoYj1jKX1jYXRjaChsKXtjb25zb2xlLmxvZyhsKX1yZXR1cm4gYn0sc2V0U2VuZEFuZERlcGFydG1lbnRPdmVycmlkZTpmdW5jdGlvbihiKXtmdW5jdGlvbiBkKHYsCnEpezA8di5sZW5ndGgmJiIiIT09di52YWwoKSYmKGIuc2VuZFRvPXYudmFsKCkpOzA8cS5sZW5ndGgmJiIiIT09cS52YWwoKSYmKGIuc2VuZFRvQURGRm9ybWF0PXEudmFsKCkpfWlmKDAhPSQoIiNpc0dlbmVyaWNTZWFyY2hQYWdlIikubGVuZ3RoJiYidHJ1ZSI9PT0kKCIjaXNHZW5lcmljU2VhcmNoUGFnZSIpLnZhbCgpKXtzd2l0Y2goYS5tYWlsSUQpe2Nhc2UgIm1lbnVTZXJ2aWNlIjpjYXNlICJtZW51Q29udGFjdFVzIjpjYXNlICJoZWFkZXJTZXJ2aWNlIjpyZXR1cm59dmFyIGM9JCgiI0NVU1RPTV9TRU5EX0xFQUQiKTtpZigwIT09Yy5sZW5ndGgmJjAhPT1jLnZhbCgpJiYibnVsbCIhPT1jLnZhbCgpKXtiLmRlcGFydG1lbnQ9Yy52YWwoKS50b1VwcGVyQ2FzZSgpO3ZhciBmPSQoIiNuZXdFbWFpbCIpLGs9JCgiI25ld0FkZkVtYWlsIiksbT0kKCIjdGV4dFNlbmRUb0VtYWlsIiksbj0kKCIjdGV4dFNlbmRUb0VtYWlsQURGIiksdD0kKCIjZmluYW5jZUVtYWlsIikscj0kKCIjZmluYW5jZUFkZkVtYWlsIik7CnN3aXRjaChjLnZhbCgpKXtjYXNlICJuZXciOmQoZixrKTticmVhaztjYXNlICJ1c2VkIjpkKG0sbik7YnJlYWs7Y2FzZSAiZmluYW5jZSI6ZCh0LHIpfX19fSxnZXRKc29uT2JqZWN0OmZ1bmN0aW9uKCl7YS5yZWNhcHRjaGEuc2V0UmVzcG9uc2UoKTsiIj09YS50cmltJiYkKCIjcG9wdXB0cmltIikubGVuZ3RoJiYieyRQT1BVUFRSSU19IiE9JCgiI3BvcHVwdHJpbSIpLnZhbCgpJiYoYS50cmltPSQoIiNwb3B1cHRyaW0iKS52YWwoKSk7dmFyIGI9e30sZD1mdW5jdGlvbih6KXt0cnl7cmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudCgobnVsbCE9Q29va2llcy5nZXQoeikmJiJ1bmRlZmluZWQiIT10eXBlb2YgQ29va2llcy5nZXQoeik\/ZXNjYXBlKENvb2tpZXMuZ2V0KHopKToiIikrIiIucmVwbGFjZSgvXCsvZywiJTIwIikpfWNhdGNoKEMpe3JldHVybihudWxsIT1Db29raWVzLmdldCh6KSYmInVuZGVmaW5lZCIhPXR5cGVvZiBDb29raWVzLmdldCh6KT9lc2NhcGUoQ29va2llcy5nZXQoeikpOgoiIikrIiIucmVwbGFjZSgvXCsvZywiJTIwIil9fSxjPWQoInJlbGFuY2VJRCIpLGY9ZCgidXRtX3NvdXJjZSIpLGs9ZCgidXRtX2NhbXBhaWduIiksbT1hLmRlY29kZVVSTFJlY3Vyc2l2ZWx5KGQoInV0bV9rZXl3b3JkIikpLG49ZCgidXRtX2xhbmRpbmdfZm9vdGVyIiksdD1kKCJ1dG1fc291cmNlX3JldGFyZ2V0aW5nIikscj1kKCJ1dG1fY2FtcGFpZ25fcmV0YXJnZXRpbmciKSx2PSJFTkdMSVNIIj09JCgiI2FjdGl2ZXNpdGVsYW5ndWFnZSIpLnZhbCgpPyJLZXl3b3JkIjoiTW90LWNsJiMyMzM7IixxPTA8bS5sZW5ndGg\/IlsgIit2KyI6ICIrbSsiXSI6IiIscD0wPG4ubGVuZ3RoPyJbRGVzdGluYXRpb246ICIrZDJjbWVkaWEuZ2V0SHR0cFRleHQoKSsiOi8vIit3aW5kb3cubG9jYXRpb24uaG9zdCtuKyJdIjoiW0Rlc3RpbmF0aW9uOiAiK2QyY21lZGlhLmdldEh0dHBUZXh0KCkrIjovLyIrd2luZG93LmxvY2F0aW9uLmhvc3QrbisiIC5dIjt2PWQoImxvY19pbnRlcmVzdCIpO2Q9CmQoImxvY19waHlzaWNhbCIpO3ZhciBoPXY\/YGxvY19pbnRlcmVzdD0ke3Z9YDoiIixsPWQ\/YGxvY19waHlzaWNhbD0ke2R9YDoiIix1PSQoImJvZHkiKS5oYXNDbGFzcygiRU5HTElTSCIpPyJPcmdhbmljIjoiT3JnYW5pcXVlIjtxPTA8Zi5sZW5ndGg\/YCR7Zn0gLSAke2t9ICR7cX0gJHtofSAke2x9YDp1O3A9ZDJjbWVkaWEuY2FwaXRhbGlzZUZpcnN0TGV0dGVyT2ZFdmVyeVdvcmQocSkrIiAiK3A7bD0iIjtoPWEuZ2V0U3RvY2tOdW1iZXIoKTsiIiE9aCYmKGw9IihTdG9jazoiK2EuZ2V0U3RvY2tOdW1iZXIoKSsiKSIpO3U9e25ldzoiRU5HTElTSCI9PXNpdGVQYWdlLmxhbmc\/Im5ldyI6Im5ldWYiLG5ld2ludjoiRU5HTElTSCI9PXNpdGVQYWdlLmxhbmc\/Im5ldyI6Im5ldWYiLHVzZWQ6IkVOR0xJU0giPT1zaXRlUGFnZS5sYW5nPyJ1c2VkIjoiZCdvY2Nhc2lvbiJ9O2EuYm9keT1hLmJvZHkucmVwbGFjZSgve1wkVVRNREVUQUlMU30vZyxwKTthLmJvZHk9YS5ib2R5LnJlcGxhY2UoL3tcJFVTRVJOQU1FfS9nLAphLnVzZXJGaXJzdE5hbWUpO2EuYm9keT1hLmJvZHkucmVwbGFjZSgve1wkVVNFUlBPU1RBTH0vZyxhLnVzZXJQb3N0YWwudG9VcHBlckNhc2UoKSk7YS5ib2R5PWEuYm9keS5yZXBsYWNlKC97XCRVVE1ERVRBSUxTfS9nLCIiKTthLmJvZHk9YS5ib2R5LnJlcGxhY2UoL3tcJEZPT1RFUn0vZywiIik7YS5ib2R5PWEuYm9keS5yZXBsYWNlKC97XCRFTUFJTEJVSUxEQU5EUFJJQ0V9L2csYS5iYW5kcExpbmsoKSk7YS5ib2R5PWEuYm9keS5yZXBsYWNlKC97XCRTVE9DS05VTUJFUkxBQkVMfS9nLGwpO2EuYm9keT1hLmJvZHkucmVwbGFjZSgve1wkU1RPQ0tOVU1CRVJ9L2csbCk7YS5ib2R5PWEuYm9keS5yZXBsYWNlKC97XCRWRUhJQ0xFX0NPTkRJVElPTn0vZyx1W2EuY29uZGl0aW9uLnRvTG93ZXJDYXNlKCldKTtpZigiIiE9PWEuYm9keSl7dmFyIHc9JCgnaW5wdXRbZGF0YS1mb3J2YXI9Ik9WRVJXUklUVEVSREVBTEVSIl0nKS52YWwoKSYmJCgnaW5wdXRbZGF0YS1mb3J2YXI9Ik9WRVJXUklUVEVSREVBTEVSIl0nKS5sZW5ndGg\/CiQoJ2lucHV0W2RhdGEtZm9ydmFyPSJPVkVSV1JJVFRFUkRFQUxFUiJdJykudmFsKCk6IiI7bD0iIiE9JCgnaW5wdXRbZGF0YS1mb3J2YXI9IkRFQUxFUiJdJykudmFsKCkmJiQoJ2lucHV0W2RhdGEtZm9ydmFyPSJERUFMRVIiXScpLmxlbmd0aD8kKCdpbnB1dFtkYXRhLWZvcnZhcj0iREVBTEVSIl0nKS52YWwoKTokKCIjaGlkZGVuRGVhbGVyTmFtZSIpLnZhbCgpO3c9dyE9bCYmIiIhPXc\/dzpsO2EuZGVhbGVyTmFtZT1hLmRlYWxlck5hbWU\/YS5kZWFsZXJOYW1lOnd9YS5ib2R5PWEuYm9keS5yZXBsYWNlKCJ7JERFQUxFUk5BTUV9IixhLmRlYWxlck5hbWUpO2EuYm9keT1hLmJvZHkucmVwbGFjZSgieyRDVVNUT01WRUhJQ0xFSU5URVJFU1R9IixhLm1ha2UrIiAiK2EubW9kZWwrIiAiK2EueWVhcik7YS5sZWFkUmVxdWVzdFR5cGUmJihhLmJvZHk9YS5ib2R5LnJlcGxhY2VBbGwoInskUkVRVUVTVH0iLGEubGVhZFJlcXVlc3RUeXBlKSxhLnN1YmplY3Q9YS5zdWJqZWN0LnJlcGxhY2VBbGwoInskUkVRVUVTVH0iLAphLmxlYWRSZXF1ZXN0VHlwZSksYS5sZWFkUmVxdWVzdFR5cGU9IiIpO2JvZHlMb3dlcj1hLmJvZHkudG9Mb3dlckNhc2UoKTtmb3IodT0wOy0xPGJvZHlMb3dlci5pbmRleE9mKCJyZW1vdmVlbXB0eSIpOyl7bD1ib2R5TG93ZXIuaW5kZXhPZigicmVtb3ZlZW1wdHkiKTtpZigtMT09bClicmVhaztycGxFbmQ9Ym9keUxvd2VyLmluZGV4T2YoIjxicj4iLGwpO3JwbFN0YXJ0PWJvZHlMb3dlci5sYXN0SW5kZXhPZigiPGJyPiIsbCk7aWYoLTE9PXJwbEVuZHx8LTE9PXJwbFN0YXJ0KWJyZWFrO3JwbFN0cmluZz1hLmJvZHkuc3Vic3RyaW5nKHJwbFN0YXJ0LHJwbEVuZCk7YS5ib2R5PWEuYm9keS5yZXBsYWNlKHJwbFN0cmluZywiIik7Ym9keUxvd2VyPWEuYm9keS50b0xvd2VyQ2FzZSgpO3UrKztpZig1MDx1KWJyZWFrfXU9YS5nZXRWUERVcmxGcm9tU3RvY2soKTswPT11LnRyaW0oKS5sZW5ndGgmJihsPSQoJ2lucHV0W25hbWU9InNlYXJjaGVkdmVoaWNsZSJdJykuZmlsdGVyKCI6dmlzaWJsZTpmaXJzdCIpLAp1PWwubGVuZ3RoP2wudmFsKCk6IiIpO2EucGF5bWVudFZlaGljbGUmJjA8YS5wYXltZW50VmVoaWNsZS5sZW5ndGgmJih1PWEucGF5bWVudFZlaGljbGUpOyIiPT1hLmNhcmlkJiYkKCIjdG9wY2FyaWQiKS5sZW5ndGgmJihhLmNhcmlkPSQoIiN0b3BjYXJpZCIpLnZhbCgpKTsiIj09YS52aW4mJiQoIiNwaG9uZXZpbiIpLmxlbmd0aCYmKGEudmluPSQoIiNwaG9uZXZpbiIpLnZhbCgpKTtsPWEuYm9keS5pbmRleE9mKCI8c3BhbiBpZD0ncGhTRUFSQ0hWRUhJQ0xFJz4iKTtpZigtMTxsKXt2YXIgeD1hLmJvZHkuc3Vic3RyKGwrMjcpLmluZGV4T2YoIjwvc3Bhbj4iKTstMTx4JiYoYS5ib2R5PWEuYm9keS5zdWJzdHIoMCxsKSt1K2EuYm9keS5zdWJzdHIobCt4KzI3KzcpKX1hLmJvZHk9YS5ib2R5LnJlcGxhY2UoLzxzcGFuIGlkPSdwaFNFQVJDSFZFSElDTEUnPi9nLCIiKTthLmJvZHk9YS5ib2R5LnJlcGxhY2UoLzxcL3NwYW4+L2csIiIpO2EuYm9keT1hLmJvZHkucmVwbGFjZSgve1wkU0VBUkNIRURWRUhJQ0xFfS9nLAp1KTtpZigiMSI9PSQoIiNoYXNWQkRDRW5hYmxlZCIpLnZhbCgpKXtsPSIiO3U9MDt4PSIiO0Nvb2tpZXMuZ2V0KCJEMkNVVUlEIik7Zm9yKHZhciB5IGluIHNlc3Npb25TdG9yYWdlKWlmKDA9PXkuaW5kZXhPZigiVkRQTVZCTlAtIikpe3ZhciBCPXNlc3Npb25TdG9yYWdlLmdldEl0ZW0oeSk7Qj49eCYmKHg9QixsPXkucmVwbGFjZSgiVkRQTVZCTlAtIiwiIikpfWlmKCIiPT1sJiYoeD1zZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCJkMmNfVkRQTVYiKSxudWxsIT14KSlmb3IoeSBpbiB4PUpTT04ucGFyc2UoeCkseClCPXhbeV0sMjw9QiYmQj51JiYodT1CLGw9eSk7IiIhPWwmJi0xPT1hLmJvZHkuaW5kZXhPZigiW1ZCREMtSE9UXSIpJiYtMT09YS5ib2R5LmluZGV4T2YoIltWQkRDLU1ZU10iKSYmKHk9d2luZG93LmxvY2F0aW9uLnByb3RvY29sKyIvLyIrd2luZG93LmxvY2F0aW9uLmhvc3QrbCxhLmJvZHkrPSdbVkJEQy1IT1RdIDxhIGhyZWY9IicreSsnIj4nK3krIjwvYT4iKX15PSQoIiNjdXJyZW50U3RhdHVzIikudmFsKCk7Cnk9InVuZGVmaW5lZCI9PXR5cGVvZiB5PyJ1c2VkIjp5LnRvTG93ZXJDYXNlKCk7bD0kKCIjc2VuZEVtYWlsVG9BbGxEZWFsZXJzIik7bD1sLmxlbmd0aCYmMT09bC52YWwoKTtsPSQoIiNoYXNNdWx0aXBsZURlYWxlcnMiKTtsPWwubGVuZ3RoJiYxPT1sLnZhbCgpO2w9JCgiI3RvcGNhcmlkIik7bD0wPGwubGVuZ3RoPyQoIiN0b3BjYXJpZCIpLnZhbCgpOiIiO2w9InVuZGVmaW5lZCIhPXR5cGVvZiAkKCIjYnJhbmRFbWFpbEFkZk92ZXJyaWRlIikudmFsKCk\/JCgiI2JyYW5kRW1haWxBZGZPdmVycmlkZSIpLnZhbCgpOiIiO3U9InVuZGVmaW5lZCIhPXR5cGVvZiAkKCIjYnJhbmRFbWFpbEFkZk92ZXJyaWRlIikudmFsKCk\/JCgiI2JyYW5kRW1haWxBZGZPdmVycmlkZSIpLnZhbCgpOiIiOyJ1bmRlZmluZWQiIT10eXBlb2YgJCgiI25ld1NlY3Rpb25PdmVycmlkZSIpLnZhbCgpJiYkKCIjbmV3U2VjdGlvbk92ZXJyaWRlIikudmFsKCk7InVuZGVmaW5lZCIhPXR5cGVvZiAkKCIjbmV3U2VjdGlvbkVtYWlsIikudmFsKCkmJgokKCIjbmV3U2VjdGlvbkVtYWlsIikudmFsKCk7InVuZGVmaW5lZCIhPXR5cGVvZiAkKCIjbmV3U2VjdGlvbkFkZkVtYWlsIikudmFsKCkmJiQoIiNuZXdTZWN0aW9uQWRmRW1haWwiKS52YWwoKTtzd2l0Y2goITApe2Nhc2UgNTxsLmxlbmd0aCYmIm5ldyI9PXkmJiFhLmhhc1NlbGVjdGVkTXVsdGlBZGRyZXNzOmEuc2VuZFRvPWwsYS5zZW5kVG9BREZGb3JtYXQ9NTx1Lmxlbmd0aD91Omx9Yi5sYW5ndWFnZT0kKCIjYWN0aXZlc2l0ZWxhbmd1YWdlIikudmFsKCk7ImZ1bmN0aW9uIj09dHlwZW9mIGNsZWFuQW5kRW5jb2RlVGV4dD8oYi5zdWJqZWN0PWNsZWFuQW5kRW5jb2RlVGV4dChhLnN1YmplY3QpLGIuYm9keT1jbGVhbkFuZEVuY29kZVRleHQoYS5ib2R5KSk6KGIuc3ViamVjdD0kLmJhc2U2NC5lbmNvZGUoYS5zdWJqZWN0KSxiLmJvZHk9JC5iYXNlNjQuZW5jb2RlKGEuYm9keSkpO2NsZWFuRW1haWxEZWxpbWl0ZXI9ZnVuY3Rpb24oeil7dmFyIEM9IiI7InVuZGVmaW5lZCIhPXR5cGVvZiB6JiYKbnVsbCE9eiYmei5sZW5ndGgmJihDPXouc3BsaXQoIjsiKS5qb2luKCIsIikpO3JldHVybiBDfTsidXNlZGNhcnMuaHRtbCI9PSQoIiNQQUdFSUQiKS52YWwoKSYmIk5FVyI9PWEuZ2V0RGVwKCkmJmEuc2VuZFRvPT0kKCIjU0lURVVTRURFTUFJTCIpLnZhbCgpJiZhLnNlbmRUb0FERkZvcm1hdD09JCgiI1NJVEVVU0VERU1BSUxBREYiKS52YWwoKSYmKGEuc2VuZFRvPSQoIiNTSVRFTkVXRU1BSUwiKS52YWwoKSxhLnNlbmRUb0FERkZvcm1hdD0kKCIjU0lURU5FV0VNQUlMQURGIikudmFsKCkpO2Iuc2VuZFRvPWEuc2VuZFRvO2Iuc2VuZFRvQURGRm9ybWF0PWNsZWFuRW1haWxEZWxpbWl0ZXIoYS5zZW5kVG9BREZGb3JtYXQpO2Iuc2VsZWN0ZWRTZW5kVG89YS5zZWxlY3RlZFNlbmRUbztiLnNlbGVjdGVkU2VuZFRvQURGRm9ybWF0PWEuc2VsZWN0ZWRTZW5kVG9BREZGb3JtYXQ7Yi5lbWFpbExpc3RTdWZmaXg9IiI7JCgiI3NpdGVjb21waWxlaWQiKS5sZW5ndGgmJihiLmVtYWlsTGlzdFN1ZmZpeD0KJCgiI3NpdGVjb21waWxlaWQiKS52YWwoKSk7Yi5sZWFkSW52b2tlcj1hLmxlYWRJbnZva2VyfHwiZ2VuZXJpYyI7Yi5kaWdpdGFsUmV0YWlsU0lEPWEuZGlnaXRhbFJldGFpbFNJRHx8IiI7Yi5jb25zZW50RGVhbGVyPWEuY29uc2VudERlYWxlcjtiLmNvbnNlbnRPRU09YS5jb25zZW50T0VNO2IudXNlckVtYWlsPWEudXNlckVtYWlsO2IudHJhZGVpbj1hLnRyYWRlaW47Yi5wb3B1cGRpdj1hLnBvcHVwZGl2O2IudXNlckF0dGFjaG1lbnRQYXRoPWEudXNlckF0dGFjaG1lbnRQYXRoO2IudXNlckZpcnN0TmFtZT1hLnVzZXJGaXJzdE5hbWU7Yi51c2VyTGFzdE5hbWU9YS51c2VyTGFzdE5hbWU7Yi5saWNlbnNlbnVtPWEubGljZW5zZW51bTtiLnVzZXJQaG9uZT1hLnVzZXJQaG9uZTtiLnBob25lVmFsaWRhdGlvbkF0dGVtcHRzPWEucGhvbmVWYWxpZGF0aW9uQXR0ZW1wdHM7Yi5waG9uZU1hbmRhdG9yeT1hLnBob25lTWFuZGF0b3J5O2IudXNlclBvc3RhbD1hLnVzZXJQb3N0YWwudG9VcHBlckNhc2UoKXx8CmEuY29udGFjdFppcC50b1VwcGVyQ2FzZSgpO2IudXNlckFkZHJlc3M9YS51c2VyQWRkcmVzc3x8YS5jb250YWN0QWRkcmVzcztiLnByb3ZpbmNlPWEuY29udGFjdFByb3ZpbmNlO2IuYmlydGhkYXRlPWEuYmlydGhkYXRlO2Iuc2VuZEZyb209YS5zZW5kRnJvbTtiLm1haWxJRD1hLm1haWxJRDtiLmlzQ1RBPWEuaXNDVEE7Yi5idXR0b25UZXh0PWEuYnV0dG9uVGV4dDtiLmZyb21VUkw9d2luZG93LmxvY2F0aW9uLmhyZWY7Yi5tYWtlPWEubWFrZXx8IiI7Yi5tb2RlbD1hLm1vZGVsfHwiIjtiLnRyaW09YS50cmltfHwiIjtiLnZpbj1hLnZpbnx8IiI7Yi5wcmljZT1hLnByaWNlfHwiIjtiLnllYXI9YS55ZWFyfHwiIjtiLnZlaGljbGVUeXBlPWEudmVoaWNsZVR5cGV8fCIiO2Iuc3RvY2tOdW1iZXI9aDtiLmNhcmlkPWEuY2FyaWR8fCIiO2IuY29uZGl0aW9uPWEuY29uZGl0aW9uO2IuaXNtb2JpbGVzaXRlPWEuaXNtb2JpbGVzaXRlO2IuaXNBbXA9Ik5PIjtiLnJlZmVyZXI9JCgiI3RvcHJlZmVyZXIiKS52YWwoKTsKYi5zaXRlaWQ9JCgiI3RvcHNpdGVpZCIpLnZhbCgpO2IuZGVhbGVyaWQ9YS5kZWFsZXJpZHx8IiI7Yi5vZW1DZXJ0aWZpY2F0aW9uPSQoIiNvZW1DZXJ0aWZpY2F0aW9uIikudmFsKCl8fG51bGw7Yi51dG1fc291cmNlPWY7Yi5yZWxhbmNlSUQ9YztiLnV0bV9jYW1wYWlnbj1rO2IudXRtX2tleXdvcmQ9bTtiLnV0bV9sYW5kaW5nPW47Yi51dG1fZGV0YWlscz1xO2IudXRtX3NvdXJjZV9yZXRhcmdldGluZz10O2IudXRtX2NhbXBhaWduX3JldGFyZ2V0aW5nPXI7Yi5sb2NfaW50ZXJlc3Q9djtiLmxvY19waHlzaWNhbD1kO2IucG9wdXBPZmZlclR5cGU9YS5wb3B1cE9mZmVyVHlwZTtiLmZyb21GYWNlYm9vaz1hLmZyb21GYWNlYm9vaztiLmRldGFpbHNGUj1hLmNvbnNlbnREZXRhaWxzRlI7Yi5kZXRhaWxzRU49YS5jb25zZW50RGV0YWlsc0VOO2IuZnJvbUFBPWEuZnJvbUFBO2Iub3duZXJJRD1hLm93bmVySUQ7Yi5sZWFkVGl0bGVVSVRleHQ9YS5sZWFkVGl0bGVVSVRleHQ7Yi5zbXM9CmEuc21zO2Iub25BZnRlckxlYWRDcmVhdGVkPWEub25BZnRlckxlYWRDcmVhdGVkOyJ1bmRlZmluZWQiIT09dHlwZW9mIGNsaWVudFN0b3JhZ2UmJigiIiE9YS51c2VyRmlyc3ROYW1lJiZjbGllbnRTdG9yYWdlLnNldCgiZmlyc3RuYW1lIixhLnVzZXJGaXJzdE5hbWUpLCIiIT1hLnVzZXJMYXN0TmFtZSYmY2xpZW50U3RvcmFnZS5zZXQoImxhc3RuYW1lIixhLnVzZXJMYXN0TmFtZSksIiIhPWEudXNlckVtYWlsJiZjbGllbnRTdG9yYWdlLnNldCgiZW1haWwiLGEudXNlckVtYWlsKSwiIiE9YS51c2VyUGhvbmUmJmNsaWVudFN0b3JhZ2Uuc2V0KCJwaG9uZSIsYS51c2VyUGhvbmUpKTtiLmNoYXRib3RCb29zdElkPWdldENvb2tpZUQyYygiZDJjY2hhdGJvdGlkIik7Yi5zdHlsZWlkPSQoIiNzdHlsZUlkSW5Vc2UiKS5sZW5ndGg\/JCgiI3N0eWxlSWRJblVzZSIpLnZhbCgpOiQoIiNhY3RpdmVTdHlsZUlEIikubGVuZ3RoPyQoIiNhY3RpdmVTdHlsZUlEIikudmFsKCk6IiI7InVuZGVmaW5lZCIhPT0KdHlwZW9mIHdpbmRvdy5hZHBfZm91cmV5ZXNfaWQmJndpbmRvdy5hZHBfZm91cmV5ZXNfaWQ\/KGIuVW5pdGVXZWJzaXRlQ3VzdG9tZXJJZD13aW5kb3cuYWRwX2ZvdXJleWVzX2lkLGNvbnNvbGUubG9nKCJEMlVEIC0gZW1haWxIYW5kbGVyIEpTIHBhc3NlZCIsd2luZG93LmFkcF9mb3VyZXllc19pZCkpOmNvbnNvbGUubG9nKCJEMlVEIC0gZW1haWxIYW5kbGVyIEpTIC0gd2luZG93LmFkcF9mb3VyZXllc19pZCBpZiB3YXMgdHJpZ2dlcmVkIix3aW5kb3cuYWRwX2ZvdXJleWVzX2lkKTthLm9uQWZ0ZXJMZWFkQ3JlYXRlZCYmKGIub25BZnRlckxlYWRDcmVhdGVkLmZyb209IiIsYS5zZW5kVG89YS5zZW5kVG98fCIiLGM9YS5zZW5kVG8uc3BsaXQoIjsiKSxjWzBdLnRyaW0oKS5sZW5ndGg\/Yi5vbkFmdGVyTGVhZENyZWF0ZWQuZnJvbT1jWzBdLnRyaW0oKTooYz1hLnNlbmRUb0FERkZvcm1hdC5zcGxpdCgiLCIpLGNbMF0udHJpbSgpLmxlbmd0aCYmKGIub25BZnRlckxlYWRDcmVhdGVkLmZyb209CmNbMF0udHJpbSgpKSkpO2IudXNlckFnZW50PSQoIiN0eHRVc2VyQWdlbnQiKS52YWwoKTtiLmdyZWNhcHRjaGFSZXNwb25zZVRva2VuPWEuZ3JlY2FwdGNoYVJlc3BvbnNlVG9rZW47Yi5jb250YWN0SUQ9YS5jb250YWN0SUQ7Yi5jb250YWN0TkFTPWEuY29udGFjdE5BUztiLmNvbnRhY3RCaXJ0aD1hLmNvbnRhY3RCaXJ0aDtiLmRlYWxlck5hbWU9YS5kZWFsZXJOYW1lP2EuZGVhbGVyTmFtZTp3O2IuYWxsb3dfc2hhcmVfcGVyc29uYWxfZGF0YT1hLmFsbG93X3NoYXJlX3BlcnNvbmFsX2RhdGE7Yi5wcmVmZXJyZWRfY29udGFjdD1hLnByZWZlcnJlZF9jb250YWN0O2IudXRtZGV0YWlsc1RvUmVwbGFjZT1wOyIiIT1hLmdlb2xvY19zdGF0dXMmJihiLmdlb2xvY19zdGF0dXM9YS5nZW9sb2Nfc3RhdHVzLGIuZ2VvbG9jX2xhdD1hLmdlb2xvY19sYXQsYi5nZW9sb2NfbG9uZz1hLmdlb2xvY19sb25nLGIuZ2VvbG9jX2FjY3VyYWN5PWEuZ2VvbG9jX2FjY3VyYWN5LCJmdW5jdGlvbiI9PQp0eXBlb2YgY2xlYW5BbmRFbmNvZGVUZXh0PyhiLmdlb2xvY190cmFja19zdHI9Y2xlYW5BbmRFbmNvZGVUZXh0KGEuZ2VvbG9jX3RyYWNrX3N0ciksYi5nZW9sb2NfZW1haWxfc3RyPWNsZWFuQW5kRW5jb2RlVGV4dChhLmdlb2xvY19lbWFpbF9zdHIpKTooYi5nZW9sb2NfdHJhY2tfc3RyPSQuYmFzZTY0LmVuY29kZShhLmdlb2xvY190cmFja19zdHIpLGIuZ2VvbG9jX2VtYWlsX3N0cj0kLmJhc2U2NC5lbmNvZGUoYS5nZW9sb2NfZW1haWxfc3RyKSkpOyIiIT1hLmNhcjJfbWFrZSYmKGIuY2FyMl9tYWtlPWEuY2FyMl9tYWtlLGIuY2FyMl9tb2RlbD1hLmNhcjJfbW9kZWwsYi5jYXIyX3RyaW09YS5jYXIyX3RyaW0sYi5jYXIyX3llYXI9YS5jYXIyX3llYXIsYi5jYXIyX2NvbG9yPWEuY2FyMl9jb2xvcixiLmNhcjJfb2RvbWV0ZXI9YS5jYXIyX29kb21ldGVyLGIuY2FyMl92aW49YS5jYXIyX3ZpbixiLmNhcjJfdHJhbnNtaXNzb249YS5jYXIyX3RyYW5zbWlzc29uLGIuY2FyMl9kcml2ZXRyYWluPQphLmNhcjJfZHJpdmV0cmFpbixiLmNhcjJfZnVlbHR5cGU9YS5jYXIyX2Z1ZWx0eXBlKTtiLnNlcnZpY2VEYXRlMT1hLnNlcnZpY2VEYXRlMXx8IiI7Yi5zZXJ2aWNlRGF0ZTI9YS5zZXJ2aWNlRGF0ZTJ8fCIiO2Iud2FpdGluZ09uU2l0ZT1hLndhaXRpbmdPblNpdGV8fCIiO2IuY29tbWVudHM9YS5jb21tZW50czthLnNraXBHZXREZXA\/Yi5kZXBhcnRtZW50PWEuZGVwYXJ0bWVudDooYi5kZXBhcnRtZW50PWEuZ2V0RGVwKCksYS5kZXBhcnRtZW50PWEuZ2V0RGVwKCkpO2lmKCJVU0VEIj09Yi5kZXBhcnRtZW50JiYwPT1hLmRlcGFydG1lbnRCeVN0b2NrKXt2YXIgQT0kKCdpbnB1dFtuYW1lPSJzZWFyY2hlZHZlaGljbGUiXScpLmZpbHRlcigiOnZpc2libGU6Zmlyc3QiKS52YWwoKTtpZigidW5kZWZpbmVkIiE9dHlwZW9mIEEmJihBPUEuc3BsaXQoIihTdG9jayIpLEFbMV0pKXt2YXIgRT0iVVNFRCI7QT1BWzFdLnJlcGxhY2UoIikiLCIiKS5yZXBsYWNlKCI6IiwiIikucmVwbGFjZSgiIyIsCiIiKS50cmltKCkudG9Mb3dlckNhc2UoKTskLmFqYXgoe3R5cGU6IkdFVCIsYXN5bmM6ITEsZGF0YVR5cGU6Impzb24iLHVybDoiL2pzL2pzb24vdXNlZEJ5UHJpY2VBc2MuanNvbiIsc3VjY2VzczpmdW5jdGlvbih6KXskLmVhY2goeixmdW5jdGlvbihDLEQpe2lmKEQuc24udG9Mb3dlckNhc2UoKT09QSlyZXR1cm4gRT0iMSI9PUQuaXNuZXd8fCIxIj09RC5pc2RlbW8\/Ik5FVyI6IlVTRUQiLCExfSk7YS5kZXBhcnRtZW50QnlTdG9jaz1FfX0pfX0iIiE9PWEuZGVwYXJ0bWVudEJ5U3RvY2smJiExIT09YS5kZXBhcnRtZW50QnlTdG9jayYmKGIuZGVwYXJ0bWVudD1hLmRlcGFydG1lbnRCeVN0b2NrKTshYi5kZXBhcnRtZW50fHwibmV3Ij09Yi5kZXBhcnRtZW50LnRvTG93ZXJDYXNlKCkmJiJ1c2VkIj09Yi5kZXBhcnRtZW50LnRvTG93ZXJDYXNlKCk\/Yi5jb25kaXRpb249Yi5kZXBhcnRtZW50JiYibmV3Ij09Yi5kZXBhcnRtZW50LnRvTG93ZXJDYXNlKCk\/Ik5ldyI6IlVzZWQiOmIuY29uZGl0aW9uPQokKCIjY3VycmVudFN0YXR1cyIpLmxlbmd0aD8kKCIjY3VycmVudFN0YXR1cyIpLnZhbCgpOiJ1bmtub3duIjtiLmRlcGFydG1lbnQudG9Mb3dlckNhc2UoKSE9Yi5jb25kaXRpb24udG9Mb3dlckNhc2UoKSYmKGIuY29uZGl0aW9uPWIuZGVwYXJ0bWVudC50b0xvd2VyQ2FzZSgpKTtudWxsIT1hLmNyZWRpdERhdGEmJihiLmNyZWRpdERhdGE9YS5jcmVkaXREYXRhKTtudWxsIT1hLmRlYWxlckFwcG9pbnRtZW50RGF0YSYmKGIuZGVhbGVyQXBwb2ludG1lbnREYXRhPWEuZGVhbGVyQXBwb2ludG1lbnREYXRhKTswPCQoIiNwdXJjaGFzZV9pbnRlbnRfYW5zd2VyIikubGVuZ3RoJiYoYi5wdXJjaGFzZV9pbnRlbnQ9YS5wdXJjaGFzZV9pbnRlbnQsYi5wdXJjaGFzZV9pbnRlbnRfYW5zd2VyPSQoIiNwdXJjaGFzZV9pbnRlbnRfYW5zd2VyIikudmFsKCksYi5wdXJjaGFzZV9pbnRlbnRfbm9fYW5zd2VyPSQoIiNwdXJjaGFzZV9pbnRlbnRfbm9fYW5zd2VyIikudmFsKCkpO2IucHVyY2hhc2VfaW50ZW50PQphLmFza1B1cmNoYXNlSW50ZW50P2IucHVyY2hhc2VfaW50ZW50P2IucHVyY2hhc2VfaW50ZW50Oi0xOiExOyQoIiNjdXJyZW50SXRlbVR5cGUiKS5sZW5ndGg\/Yi5pdGVtVHlwZT0kKCIjY3VycmVudEl0ZW1UeXBlIikudmFsKCk6Yi5pdGVtVHlwZT0iIjthLmJvZHkrPSJceDNjIS0tIEpTIFVuaXF1ZSBpZDoiK01hdGgucm91bmQoNUUzKk1hdGgucmFuZG9tKCkpKyItLVx4M2UiO3JldHVybiBifSxnZXREZXA6ZnVuY3Rpb24oKXt2YXIgYj0obmV3IERhdGUpLmdldEZ1bGxZZWFyKCksZD0vXGIobmV3fG5ldWZ8bmV1ZnN8Y29uZmlndXJhdGlvbi1ldC1wcml4fGJ1aWxkLWFuZC1wcmljZXxkZW1vc3xkZW1vbnN0cmF0ZXVyc3xjbGVhcmFuY2UpXGIvLnRlc3Qod2luZG93LmxvY2F0aW9uLnBhdGhuYW1lKSxjPS9cYih1c2VkfG9jY2FzaW9uKVxiLy50ZXN0KHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSk7aWYoInVuZGVmaW5lZCIhPT10eXBlb2Ygd2luZG93LmdVc2VkU3JwQXBweiYmInVuZGVmaW5lZCIhPT0KdHlwZW9mIHdpbmRvdy5nVXNlZFNycEFwcHouZmlsdGVySW50ZXJmYWNlJiYiZnVuY3Rpb24iPT09dHlwZW9mIHdpbmRvdy5nVXNlZFNycEFwcHouZmlsdGVySW50ZXJmYWNlLmdldEN1cnJlbnRGaWx0ZXJTdGF0ZSl7dmFyIGY9d2luZG93LmdVc2VkU3JwQXBwei5maWx0ZXJJbnRlcmZhY2UuZ2V0Q3VycmVudEZpbHRlclN0YXRlKCJjYXRlZ29yeSIpO2lmKCExIT09ZiYmZi5sZW5ndGgpaWYoMT09PWYubGVuZ3RoJiYzPT09ZlswXS52YWx1ZSlkPSEwLGM9ITE7ZWxzZXt2YXIgayxtPTAsbj0wO2ZvcihrPTA7ayE9PWYubGVuZ3RoO2srKylmW2tdLm51bT5tJiYobT1mW2tdLm51bSxuPWZba10udmFsdWUpOzE9PT1ufHwyPT09bj8oZD0hMSxjPSEwKTozPT09biYmKGQ9ITAsYz0hMSl9fWY9MDtrPSQoJ2lucHV0W25hbWU9InNlYXJjaGVkdmVoaWNsZSJdJykuZmlsdGVyKCI6cmVhbGx5VmlzaWJsZTpmaXJzdCIpOzA8ay5sZW5ndGgmJihrPWsudmFsKCkubWF0Y2goLzE5WzAtOV17Mn18MjBbMC05XXsyfS9nKSwKbnVsbCE9ayYmKGY9cGFyc2VJbnQoa1swXSkpKTtmfHwoZj1hLnllYXIpO3N3aXRjaChhLm1haWxJRCl7Y2FzZSAiVGlyZXNSZXF1ZXN0IjpjYXNlICJQYXJ0c1JlcXVlc3QiOnJldHVybiJQQVJUUyI7Y2FzZSAiU2VydmljZVJlcXVlc3QiOmNhc2UgIlJlY2FsbHMiOmNhc2UgIkJvZHlTaG9wIjpjYXNlICJtZW51U2VydmljZSI6Y2FzZSAiaGVhZGVyU2VydmljZSI6Y2FzZSAiRXN0aGV0aWNSZXF1ZXN0IjpyZXR1cm4iU0VSVklDRSI7Y2FzZSAiQ3JlZGl0UmVxdWVzdCI6Y2FzZSAiQ3JlZGl0UmVxdWVzdE1vYmlsZSI6Y2FzZSAiRGVhbGVyVHJhY2siOmNhc2UgIkNyZWRpdE11bHRpc3RlcFJlcXVlc3QiOmNhc2UgIkNyZWRpdE11bHRpc3RlcFJlcXVlc3QybmRDaGFuY2UiOmNhc2UgIkNyZWRpdE11bHRpc3RlcFJlcXVlc3RJbnN0YW50IjpjYXNlICJDcmVkaXRTY29yZSI6Y2FzZSAiQ3JlZGl0QXBwQ2FyZCI6cmV0dXJuIkZJTkFOQ0UiO2Nhc2UgIkpvYk9mZmVyIjpyZXR1cm4iSFIiOwpjYXNlICJtZW51Q29udGFjdFVzIjppZigiIiE9PWEuZGVwYXJ0bWVudClyZXR1cm4gYS5kZXBhcnRtZW50LnRvVXBwZXJDYXNlKCk7aWYoInVuZGVmaW5lZCIhPT10eXBlb2YgbWFpbFF1aWNrRW1haWwuZGVwYXJ0bWVudCYmIiIhPT1tYWlsUXVpY2tFbWFpbC5kZXBhcnRtZW50KXJldHVybiBtYWlsUXVpY2tFbWFpbC5kZXBhcnRtZW50LnRvVXBwZXJDYXNlKCl9aWYoMDxmKXtpZihjJiZmPj1iKzEpcmV0dXJuIk5FVyI7aWYoIWQmJiFjKXtpZihmPj1iLTEpcmV0dXJuIk5FVyI7aWYoZjxiLTEpcmV0dXJuIlVTRUQifX1yZXR1cm4iY2FyZGV0YWlsLmh0bWwiPT0kKCIjUEFHRUlEIikudmFsKCk\/JCgiI2RlZmF1bHREZXBhcnRtZW50IikudmFsKCk6Yz8iVVNFRCI6ZD8iTkVXIjoiIiE9PWEuZGVwYXJ0bWVudD9hLmRlcGFydG1lbnQ6InVuZGVmaW5lZCIhPXR5cGVvZiAkKCIjcG9wdXBEZXBhcnRtZW50IikuYXR0cigiaWQiKSYmJCgiI3BvcHVwRGVwYXJ0bWVudCIpLnZhbCgpLmxlbmd0aD8KJCgiI3BvcHVwRGVwYXJ0bWVudCIpLnZhbCgpOiJ1bmRlZmluZWQiIT10eXBlb2YgJCgiI2RlZmF1bHREZXBhcnRtZW50IikuYXR0cigiaWQiKSYmJCgiI2RlZmF1bHREZXBhcnRtZW50IikudmFsKCkubGVuZ3RoPyQoIiNkZWZhdWx0RGVwYXJ0bWVudCIpLnZhbCgpOiJVU0VEIn0scmVhZHlUb1NlbmQ6ZnVuY3Rpb24oKXt2YXIgYj1hLmNyZWF0ZUNoZWNrc3VtKCk7aWYoYS5sYXN0Q2hlY2tzdW09PWIpImZ1bmN0aW9uIj09dHlwZW9mIGEub25EdXBsaWNhdGVTZW5kP2Eub25EdXBsaWNhdGVTZW5kLmNhbGwoKToidW5kZWZpbmVkIiE9PXR5cGVvZiBkZWJ1ZyYmZGVidWcoIkNSQyBNYXRjaCIsYS5sYXN0Q2hlY2tzdW0sYik7ZWxzZXthLmxhc3RDaGVja3N1bT1iOyQoJ2lucHV0W2RhdGEtZm9ydmFyPSJPVkVSV1JJVFRFUkRFQUxFUiJdJykubGVuZ3RoJiYiIiE9JCgnaW5wdXRbZGF0YS1mb3J2YXI9Ik9WRVJXUklUVEVSREVBTEVSIl0nKS52YWwoKSYmJCgnaW5wdXRbZGF0YS1mb3J2YXI9IkRFQUxFUiJdJykubGVuZ3RoJiYKJCgnaW5wdXRbZGF0YS1mb3J2YXI9Ik9WRVJXUklUVEVSREVBTEVSIl0nKS52YWwoKSE9JCgnaW5wdXRbZGF0YS1mb3J2YXI9IkRFQUxFUiJdJykudmFsKCkmJihiPSQoImJvZHkiKS5oYXNDbGFzcygiRlJFTkNIIik\/IkNvbmNlc3Npb24gb++\/vSBlc3Qgc2l0de+\/vSBsZSB277+9aGljdWxlOiAiOiJEZWFsZXIgd2hlcmUgdGhlIHZlaGljbGUgaXMgbG9jYXRlZDogIixiKz0kKCdpbnB1dFtkYXRhLWZvcnZhcj0iT1ZFUldSSVRURVJERUFMRVIiXScpLnZhbCgpLGEuYm9keT1hLmJvZHkucmVwbGFjZSgieyRERUFMRVJfU0VORFRPfSIsYikpOzA8JCgiI2lzbW9iaWxlIikubGVuZ3RoJiYoYS5pc21vYmlsZXNpdGU9IllFUyIpO2lmKDA9PWEuc3ViamVjdC5sZW5ndGh8fDA9PWEuYm9keS5sZW5ndGgpcmV0dXJuITE7YS5pbmplY3RDdGFDb21wbGV0ZWREYXRhKCk7anNvbk9iamVjdD1hLmdldEpzb25PYmplY3QoKTthLmlnbm9yZUNhcHRjaGF8fGEucmVjYXB0Y2hhLnJlc2V0VG9rZW4oKTsKYj1udWxsO2I9SlNPTi5zdHJpbmdpZnkoanNvbk9iamVjdCk7dmFyIGQ9YS5wb3B1cE9mZmVyVHlwZTtiPXtqc29uOmJ9O2lmKGEucGFydGlhbCliLnBhcnRpYWw9ITA7ZWxzZXsidW5kZWZpbmVkIiE9dHlwZW9mIGd0YWcmJndpbmRvdy5kMmNfYXdjSWQmJndpbmRvdy5kMmNfYXdjTGFiZWwmJigibGl2ZSI9PWRlcGxveW1lbnRUeXBlLnRvTG93ZXJDYXNlKCk\/Z3RhZygiZXZlbnQiLCJjb252ZXJzaW9uIix7c2VuZF90bzpkMmNfYXdjSWQrIi8iK2QyY19hd2NMYWJlbH0pOmNvbnNvbGUubG9nKCJndGFnKCdldmVudCcsJ2NvbnZlcnNpb24nLCB7ICdzZW5kX3RvJzogIitkMmNfYXdjSWQrIi8iK2QyY19hd2NMYWJlbCsiIH0pOyIpKTt2YXIgYz17bWFpbElEOmEubWFpbElELG1ha2U6YS5tYWtlLG1vZGVsOmEubW9kZWwseWVhcjphLnllYXIsdmluOmEudmluLGNvbmRpdGlvbjphLmNvbmRpdGlvbixkZXBhcnRtZW50OmEuZGVwYXJ0bWVudCx0cmFkZWluOmEudHJhZGVpbixwb3B1cE9mZmVyVHlwZTphLnBvcHVwT2ZmZXJUeXBlLApib2R5VHlwZTphLnZlaGljbGVUeXBlLHNhbGVzRGVwdDphLnNhbGVzRGVwdCxwb3B1cERpdjphLnBvcHVwZGl2LGlzQ1RBOmEuaXNDVEEsYnV0dG9uVGV4dDphLmJ1dHRvblRleHR9O2pRdWVyeSgiYm9keSIpLnRyaWdnZXIoImVtYWlsSGFuZGxlci5zdWJtaXQiLGMpfSQoIi51aS1sb2FkZXItYmFja2dyb3VuZCIpLnNob3coKTtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7JCgiLnVpLWxvYWRlci1iYWNrZ3JvdW5kIikuaGlkZSgpfSw1RTMpOyQoJ2lucHV0W25hbWU9ImxlYWRfZGVwYXJ0bWVudCJdJykudmFsKGpzb25PYmplY3QuZGVwYXJ0bWVudCk7JCgnaW5wdXRbbmFtZT0ibGVhZFR5cGUiXScpLnZhbChhLnN1YmplY3QucmVwbGFjZSgvW1xuXHJdL2csIiAiKSk7IiIhPWEubGVhZFRpdGxlVGV4dCYmKCQoJ2lucHV0W25hbWU9ImxlYWRUeXBlIl0nKS52YWwoYS5sZWFkVGl0bGVUZXh0LnJlcGxhY2UoL1tcblxyXS9nLCIgIikpLGEubGVhZFRpdGxlVGV4dD0iIik7JCgnaW5wdXRbbmFtZT0icGFnZUlEIl0nKS52YWwoJCgiI1BBR0VJRCIpLnZhbCgpKTsKJCgnaW5wdXRbbmFtZT0iY3VycmVudFVSTCJdJykudmFsKHdpbmRvdy5sb2NhdGlvbi5ocmVmKTskKCdpbnB1dFtuYW1lPSJpc0Z1bGxXaWR0aCJdJykudmFsKCQoIiNpc0Z1bGxXaWR0aFBhZ2VOZXdWRFAiKS52YWwoKSk7JCgnaW5wdXRbbmFtZT0iZGVhbGVyTmFtZSJdJykudmFsKCQoIiNuZXdWRFBEZWFsZXJOYW1lIikudmFsKCkpOyQoJ2lucHV0W25hbWU9ImJ1dHRvblBvc2l0aW9uIl0nKS52YWwoJCgiI25ld1ZEUEJ1dHRvblBvc2l0aW9uIikudmFsKCkpOyQoJ2lucHV0W25hbWU9ImlzTW9iaWxlTmV3VkRQIl0nKS52YWwoJCgiI2lzbW9iaWxlIikudmFsKCkpOyQoJ2lucHV0W25hbWU9ImlzQ29uZmlybVBvcHVwIl0nKS52YWwoMCk7ImNyZWRpdFNjb3JlQ29uZmlybVBvcHVwQ29udGFpbmVyIj09YS5wb3B1cGRpdiYmJCgnaW5wdXRbbmFtZT0iaXNDb25maXJtUG9wdXAiXScpLnZhbCgxKTskKCdpbnB1dFtuYW1lPSJjb25maXJtX2VtYWlsIl0nKS52YWwoYS51c2VyRW1haWwpOwokKCdpbnB1dFtuYW1lPSJjb25maXJtX2ZpcnN0X25hbWUiXScpLnZhbChhLnVzZXJGaXJzdE5hbWUpOyQoJ2lucHV0W25hbWU9ImNvbmZpcm1fbGFzdF9uYW1lIl0nKS52YWwoYS51c2VyTGFzdE5hbWUpOyQoJ2lucHV0W25hbWU9ImNvbmZpcm1fcGhvbmVfbnVtYmVyIl0nKS52YWwoYS51c2VyUGhvbmUpO2Zvcm1GaWxsLnNhdmUoe2VtYWlsOmEudXNlckVtYWlsLGZpcnN0TmFtZTphLnVzZXJGaXJzdE5hbWUsbGFzdE5hbWU6YS51c2VyTGFzdE5hbWUscGhvbmU6YS51c2VyUGhvbmUscG9zdGFsOmEudXNlclBvc3RhbH0pOyQuYWpheCh7dHlwZToiUE9TVCIsdXJsOiIvbWFpbC9zZW5kTWFpbEV4LnBocCIsZGF0YTpiLGJlZm9yZVNlbmQ6ZnVuY3Rpb24oZil7ZiYmZi5vdmVycmlkZU1pbWVUeXBlJiZmLm92ZXJyaWRlTWltZVR5cGUoImFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD1VVEYtOCIpO3RyeXtsZXQgaz0kKCJtZXRhW25hbWU9J2NzcmYtZG9tYWluLWNoZWNrJ10iKTtrLmxlbmd0aCYmCmYuc2V0UmVxdWVzdEhlYWRlcigiY3NyZi1kb21haW4tY2hlY2siLGsuYXR0cigiY29udGVudCIpKX1jYXRjaChrKXtjb25zb2xlLmVycm9yKGYpfX0sc3VjY2VzczpmdW5jdGlvbihmKXthLmxvZ0Zvcm1SZXF1ZXN0KCJGb3JtU3VibWl0dGVkIixhLm1haWxJRCxkKTthLnBhcnRpYWw9ITE7YS5sYXN0Q2hlY2tzdW09ITE7dmFyIGs9IiI7az0ic3RyaW5nIj09dHlwZW9mIGY\/SlNPTi5wYXJzZShmKTpmO2EuX19sYXN0UmV0dXJuPWs7aWYoIm9iamVjdCI9PXR5cGVvZiBrfHwidW5kZWZpbmVkIiE9dHlwZW9mIGsubGVhZGlkKWEuX19sZWFkaWQ9ay5sZWFkaWQ7ImZ1bmN0aW9uIiE9dHlwZW9mIGEuY2FsbGJhY2smJihhLmNhbGxiYWNrPWZ1bmN0aW9uKCl7fSk7alF1ZXJ5KCJib2R5IikudHJpZ2dlcigiZW1haWxIYW5kbGVyLmVtYWlsU2VudCIse21haWxJRDphLm1haWxJRCxtYWtlOmEubWFrZSxtb2RlbDphLm1vZGVsLHllYXI6YS55ZWFyLHZpbjphLnZpbixjb25kaXRpb246YS5jb25kaXRpb24sCmRlcGFydG1lbnQ6YS5kZXBhcnRtZW50LHRyYWRlaW46YS50cmFkZWluLHN1Y2Nlc3M6IlNVQ0NFU1MiPT09ay5zdGF0dXMsZGV0YWlsOntjb25maXJtX2ZpcnN0X25hbWU6YS51c2VyRmlyc3ROYW1lLGNvbmZpcm1fbGFzdF9uYW1lOmEudXNlckxhc3ROYW1lLGNvbmZpcm1fZW1haWw6YS51c2VyRW1haWwsY29uZmlybV9waG9uZV9udW1iZXI6YS51c2VyUGhvbmUseWVhcjphLnllYXIsbWFrZTphLm1ha2UsbW9kZWw6YS5tb2RlbCxpZDprLmxlYWRpZCx2aW46YS52aW4sY29uZGl0aW9uOmEuY29uZGl0aW9uLHZlcnNpb246YS52ZXJzaW9ufHwiIixOSVY6YS52aW4sdHJpbTphLnRyaW0sbGVhZFR5cGU6YS5sZWFkVHlwZXx8IiIsbWFpbElkOmEubWFpbElEfX0pOyJTVUNDRVNTIj09ay5zdGF0dXM\/KGEuY2FsbGJhY2soITApLGEubWFpblByb21vJiYoZj1uZXcgQ3VzdG9tRXZlbnQoInRyYWNrc3RlcC5jb21wbGV0ZSIse2RldGFpbDp7c3RlcElkOiJNYWluUHJvbW9CdG4ifX0pLGRvY3VtZW50LmRpc3BhdGNoRXZlbnQoZikpKToKYS5jYWxsYmFjayghMSk7YS5jYWxsYmFjaz1udWxsfSxmYWlsdXJlOmZ1bmN0aW9uKGYpe2EubG9nRm9ybVJlcXVlc3QoIkZvcm1TdWJtaXR0ZWRFbWFpbE5vdFNlbnQiLGEubWFpbElELGQpO2FsZXJ0KHNhdmVIYW5kbGVyLmZhaWxNZXNzYWdlKyJcbiIrZil9LHN0YXR1c0NvZGU6ezQwNDpmdW5jdGlvbigpe2FsZXJ0KCJwYWdlIG5vdCBmb3VuZCIpfX19KTthLnBvcHVwT2ZmZXJUeXBlPSIifX0saW5qZWN0Q3RhQ29tcGxldGVkRGF0YTpmdW5jdGlvbigpe2xldCBiPSIiLGQ9IiI7dmFyIGM9IiIsZj1nZXRDb29raWVEMmMoImJhbmRwX2NvbmZpZyIpLGs9InVuZGVmaW5lZCIhPT10eXBlb2YgZiYmbnVsbCE9PWY\/SlNPTi5wYXJzZShkZWNvZGVVUklDb21wb25lbnQoZikpOkpTT04ucGFyc2UoInt9Iik7Zj0obSxuKT0+e249bnx8ITE7bGV0IHQ9bS5vcHRpb25zLnJlZHVjZSgodyx4KT0+dytgJHt4fTxicj5gLCIiKSxyPSJFTkdMSVNIIj09JCgiI2FjdGl2ZXNpdGVsYW5ndWFnZSIpLnZhbCgpPwoiVmVoaWNsZSBkZXRhaWxzIjoiVsOpaGljdWxlIGNvbmZpZ3Vyw6kiLHY9IkVOR0xJU0giPT0kKCIjYWN0aXZlc2l0ZWxhbmd1YWdlIikudmFsKCk\/IkZpbmFuY2luZyBkZXRhaWxzIjoiRMOpdGFpbHMgZHUgZmluYW5jZW1lbnQiLHEscCxoO249bj8iIjpgCgkJCQkJCTx1PiR7dn06PC91Pjxicj4KCQkJCQkJJHtudWxsPT1tP3ZvaWQgMDpudWxsPT0ocT1tLnBheW1lbnQpP3ZvaWQgMDpxLnRvdGFsfTxicj4KCQkJCQkJJHtudWxsPT1tP3ZvaWQgMDpudWxsPT0ocD1tLnBheW1lbnQpP3ZvaWQgMDpwLnJhdGV9PGJyPgoJCQkJCQkke251bGw9PW0\/dm9pZCAwOm51bGw9PShoPW0ucGF5bWVudCk\/dm9pZCAwOmguYW1vdW50fTxicj48YnI+CgkJCQkJYDtsZXQgbCx1O3JldHVybmAKCQkJCQk8dT4ke3J9OjwvdT48YnI+CgkJCQkJJHtudWxsPT1tP3ZvaWQgMDptLm1vZGVsfTxicj4KCQkJCQlFeHQ6ICR7KG51bGw9PW0\/dm9pZCAwOm51bGw9PShsPW0uY29sb3JzKT92b2lkIDA6bC5leHQpfHwiIn0sIEludDogJHsobnVsbD09bT92b2lkIDA6bnVsbD09KHU9bS5jb2xvcnMpP3ZvaWQgMDp1LmludCl8fCIifTxicj4KCQkJCQkkeyhudWxsPT1tP3ZvaWQgMDptLmRyaXZlVHJhaW4pfHwiIn08YnI+CgkJCQkJJHt0fTxicj4KCQkJCQkke259CgkJCQlgfTtrLmJhbmRwJiYoYj1mKGsuYmFuZHApLnJlcGxhY2UoLyhcdHxcbikqL2csIiIpKTtpZihDb29raWVzLmdldCgiY3RhX2RhdGFfdmFsaWQiKSl7Yz1KU09OLnBhcnNlKF9sb2NhbFN0b3JhZ2VHZXQoInJldGFpbF90cmFja19kYXRhIil8fCJ7fSIpO2s9ISFjLnBheW1lbnQ7Yy5iYW5kcCYmKGMuYmFuZHAub3B0aW9ucz1jLmJhbmRwLm9wdGlvbnN8fFtdLGI9ZihjLmJhbmRwLGspKTtpZihrKXtsZXQgbSxuLHQ7ZD1gCgkJCQkJCTx1PiR7IkVOR0xJU0giPT0kKCIjYWN0aXZlc2l0ZWxhbmd1YWdlIikudmFsKCk\/IlZlaGljbGUgZGV0YWlscyI6IkTDqXRhaWxzIGR1IGZpbmFuY2VtZW50In06PC91Pjxicj4KCQkJCQkJJHtudWxsPT1jP3ZvaWQgMDpudWxsPT0obT1jLnBheW1lbnQpP3ZvaWQgMDptLmxpc3RQcmljZX08YnI+CgkJCQkJCSR7bnVsbD09Yz92b2lkIDA6bnVsbD09KG49Yy5wYXltZW50KT92b2lkIDA6bi5yYXRlfTxicj4KCQkJCQkJJHtudWxsPT1jP3ZvaWQgMDpudWxsPT0odD1jLnBheW1lbnQpP3ZvaWQgMDp0LnBheW1lbnR9PGJyPgoJCQkJCWB9Yz0iXG5cdFx0XHRcdFx0PGJyPlxuXHRcdFx0XHRcdDxicj5cblx0XHRcdFx0XHQ8dT48c3Ryb25nPlRyYW5zYWN0aW9uIEJ1aWxkZXI6PC9zdHJvbmc+PC91PlxuXG5cdFx0XHRcdCJ9aWYoYnx8ZClhLmJvZHkrPShjK2AKCQkJCQk8YnI+CgkJCQkJPGJyPgoJCQkJCSR7Yn0KCQkJCQkke2R9CgkJCQlgKS5yZXBsYWNlKC9ccj9cbnxcci9nLCIiKX0sZGVjb2RlVVJMUmVjdXJzaXZlbHk6ZnVuY3Rpb24oYil7cmV0dXJuLTEhPWIuaW5kZXhPZigiJSIpP2EuZGVjb2RlVVJMUmVjdXJzaXZlbHkoZGVjb2RlVVJJQ29tcG9uZW50KHVuZXNjYXBlKGIpKSk6Yn0sdmFsaWRhdGVFbWFpbDpmdW5jdGlvbihiKXtyZXR1cm4gJC5hamF4KHt0eXBlOiJHRVQiLHVybDoiL2FqYXgvdmFsaWRhdGVFbWFpbEFjY291bnQ\/d3N3aWR0aD0wJmVtYWlsPSIrYixhc3luYzohMX0pfSxnZXRVVUlEOmZ1bmN0aW9uKCl7cmV0dXJuInVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3cuYWN0aXZlUHJvZmlsZUlEJiZudWxsIT13aW5kb3cuYWN0aXZlUHJvZmlsZUlEP3dpbmRvdy5hY3RpdmVQcm9maWxlSUQ6InVuZGVmaW5lZCIhPXR5cGVvZiBhY3RpdmVVc2VyUHJvZmlsZU1uZyYmbnVsbCE9YWN0aXZlVXNlclByb2ZpbGVNbmcudWlkP2FjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZDoKInVuZGVmaW5lZCIhPXR5cGVvZiBDb29raWVzJiYidW5kZWZpbmVkIiE9Q29va2llcy5nZXQoInV1aWQiKSYmbnVsbCE9Q29va2llcy5nZXQoInV1aWQiKT9Db29raWVzLmdldCgidXVpZCIpOiIifSxzZXRDb250YWN0SW5mbzpmdW5jdGlvbigpe2lmKCJ1bmRlZmluZWQiIT09dHlwZW9mICQuZm4uZ29vZ2xlUGxhY2VzKXt2YXIgYj0kKCdpbnB1dFtkYXRhLWdvb2dsZS1wbGFjZXM9InRydWUiXScpOzAhPWIubGVuZ3RoJiYoYj1iLmdvb2dsZVBsYWNlcygiZ2V0QWRkcmVzcyIpLCIiIT1iLmNpdHkmJiIiPT1hLmNvbnRhY3RDaXR5JiYoYS5jb250YWN0Q2l0eT1iLmNpdHkubG9uZ19uYW1lKSwiIiE9Yi5zdHJlZXQmJiIiIT1iLnN0cmVldF9udW1iZXImJiIiPT1hLmNvbnRhY3RBZGRyZXNzJiYoYS5jb250YWN0QWRkcmVzcz1iLnN0cmVldF9udW1iZXIubG9uZ19uYW1lKyIgIitiLnN0cmVldC5sb25nX25hbWUpLCIiIT1iLnByb3ZpbmNlJiYiIj09YS5jb250YWN0UHJvdmluY2UmJihhLmNvbnRhY3RQcm92aW5jZT0KYi5wcm92aW5jZS5zaG9ydF9uYW1lKSwiIiE9Yi5wb3N0YWwmJiIiPT1hLmNvbnRhY3RaaXAmJihhLmNvbnRhY3RaaXA9Yi5wb3N0YWwubG9uZ19uYW1lKSl9fSxnZXRMb25nRGF0ZVRvU2hvcnRGb3JtYXQ6ZnVuY3Rpb24oYil7aWYoIiI9PWIpcmV0dXJuIGI7Yj1iLnRvTG93ZXJDYXNlKCk7dmFyIGQ9e2phbnZpZXI6ImphbnVhcnkiLCJmw6l2cmllciI6ImZlYnJ1YXJ5IixtYXJzOiJtYXJjaCIsYXZyaWw6ImFwcmlsIixtYWk6Im1heSIsanVpbjoianVuZSIsanVpbGxldDoianVseSIsImFvw7t0IjoiYXVndXN0IixzZXB0ZW1icmU6InNlcHRlbWJlciIsb2N0b2JyZToib2N0b2JlciIsbm92ZW1icmU6Im5vdmVtYmVyIiwiZMOpY2VtYnJlIjoiZGVjZW1iZXIifTtiPWIucmVwbGFjZSgvXGJcUytcYi9pZyxmdW5jdGlvbihjKXt2YXIgZj1jLnRvTG93ZXJDYXNlKCk7cmV0dXJuIGRbZl0\/ZFtmXTpjfSk7cmV0dXJuKG5ldyBEYXRlKGIpKS5mb3JtYXQoInl5eXktTU0tZGQiKX0sZ2V0RW1haWxDb25zZW50OmZ1bmN0aW9uKGIpe3ZhciBkPQpuZXcgRGF0ZTthLnNldENvbnRhY3RJbmZvKCk7dmFyIGM9YS5jb250YWN0QmlydGg\/YS5jb250YWN0QmlydGg6YS5nZXRMb25nRGF0ZVRvU2hvcnRGb3JtYXQoYS5iaXJ0aGRhdGUpOyQoIi51aS1sb2FkZXItYmFja2dyb3VuZCIpLnNob3coKTtnZXREYXRhPXtlbWFpbDphLnVzZXJFbWFpbCxwaG9uZTphLnVzZXJQaG9uZSxuYW1lOmEudXNlckZpcnN0TmFtZSsiICIrYS51c2VyTGFzdE5hbWUsYWRkcjphLmNvbnRhY3RBZGRyZXNzP2EuY29udGFjdEFkZHJlc3M6YS51c2VyQWRkcmVzcyxjaXR5OmEuY29udGFjdENpdHkscHJvdmluY2U6YS5jb250YWN0UHJvdmluY2UsemlwOmEuY29udGFjdFppcD9hLmNvbnRhY3RaaXA6YS51c2VyUG9zdGFsLG5hczphLmNvbnRhY3ROQVMsYmlydGg6YyxzaXRlSUQ6JCgiI3NpdGVJRCIpLnZhbCgpLFVVSUQ6YS5nZXRVVUlEKCksdHM6ZC5nZXRUaW1lKCksbGFuZzokKCIjYWN0aXZlc2l0ZWxhbmd1YWdlIikudmFsKCksdXBkYXRlSW1wbGljaXQ6ITB9OwokLmFqYXgoe3R5cGU6IkdFVCIsdXJsOiIvYWpheC9nZXRFbWFpbENvbnNlbnRGcm9tQ1JNP3dzd2lkdGg9MCIsZGF0YTpnZXREYXRhLGRhdGFUeXBlOiJqc29uIn0pLmFsd2F5cyhmdW5jdGlvbihmLGssbSl7Zj1mP2Y6e2hhc0NvbnNlbnQ6ITF9OyQoIi51aS1sb2FkZXItYmFja2dyb3VuZCIpLmhpZGUoKTt0cnl7InVuZGVmaW5lZCI9PXR5cGVvZiBmJiYidW5kZWZpbmVkIiE9PXR5cGVvZiBkZWJ1ZyYmZGVidWcoIioqKiogZXJyb3IgKioqKiIse2Vycm9yOiJObyBEYXRhIix0ZXh0U3RhdHVzOmsscnZhbHVlOmYsdjpnZXREYXRhLHQ6Ii9hamF4L2dldEVtYWlsQ29uc2VudEZyb21DUk0\/d3N3aWR0aD0wIn0pLFtbImNvbnNlbnRUeXBlIiwiY29uc2VudFR5cGUiXSxbImNvbnNlbnRFeHBpcmF0aW9uIiwiZXhwaXJhdGlvbiJdLFsiY29uc2VudERhdGUiLCJkYXRlIl0sWyJjb25zZW50RnJlcXVlbmN5IiwiZnJlcXVlbmN5Il0sClsiY29uc2VudERldGFpbHNGUiIsImRldGFpbHNGUkVOQ0giXSxbImNvbnNlbnREZXRhaWxzRU4iLCJkZXRhaWxzRU5HTElTSCJdLFsiZGV0YWlsc0RlZmF1bHRzIiwiZGV0YWlsc0RlZmF1bHRzIl0sWyJjb250YWN0SUQiLCJ1aWQiXV0ubWFwKGZ1bmN0aW9uKG4pe3ZhciB0PW5bMF07bj1uWzFdO2RlbGV0ZSB2b2lkIDA7YVt0XT12b2lkIDAhPWZbbl0\/ZltuXTphW3RdfSl9Y2F0Y2gobil7InVuZGVmaW5lZCIhPT10eXBlb2YgZGVidWcmJmRlYnVnKCIqKioqIGVycm9yICoqKioiLHtlcnJvcjpuLHRleHRTdGF0dXM6ayxydmFsdWU6Zix2OmdldERhdGEsdDoiL2FqYXgvZ2V0RW1haWxDb25zZW50RnJvbUNSTT93c3dpZHRoPTAifSl9YihmKX0pfSxiYW5kcExpbms6ZnVuY3Rpb24oYil7Yj1mdW5jdGlvbihyKXtyZXR1cm4gci5yZXBsYWNlKC8tL2csIl8iKS5yZXBsYWNlKC8nL2csIiIpfTtpZigidW5kZWZpbmVkIj09dHlwZW9mIENvb2tpZXMuZ2V0KCJiYW5kcGxpbmsiKXx8Cm51bGw9PUNvb2tpZXMuZ2V0KCJiYW5kcGxpbmsiKXx8InVuZGVmaW5lZCI9PXR5cGVvZiBDb29raWVzLmdldCgic2Vzc2lkIil8fG51bGw9PUNvb2tpZXMuZ2V0KCJzZXNzaWQiKSlyZXR1cm4iIjt2YXIgZD1Db29raWVzLmdldCgiYmFuZHBsaW5rIiksYz1Db29raWVzLmdldCgic2Vzc2lkIik7aWYoMD5kLmluZGV4T2YoInx8fCIpKXJldHVybiIiO3ZhciBmPWQuc3BsaXQoInx8fCIpO2lmKDQ+Zi5sZW5ndGgpcmV0dXJuIiI7ZD0obmV3IFN0cmluZyhmWzBdKSkuc3BsaXQoIi8iKTt2YXIgaz1uZXcgU3RyaW5nKGZbMV0pLG09bmV3IFN0cmluZyhmWzJdKTtmPW5ldyBTdHJpbmcoZlszXSk7dmFyIG49JCgiI3BvcHVwdHJpbSIpLmxlbmd0aCYmInskUE9QVVBUUklNfSIhPSQoIiNwb3B1cHRyaW0iKS52YWwoKT8kKCIjcG9wdXB0cmltIikudmFsKCk6IiIsdD0iPGEgaHJlZj0nIitkMmNtZWRpYS5nZXRIdHRwVGV4dCgpKyI6Ly8iK3dpbmRvdy5sb2NhdGlvbi5ob3N0bmFtZSskKCIjdHh0QnVpbGRBbmRQcmljZUZvbGRlclBhdGgiKS52YWwoKTsKIkVOR0xJU0giPT0kKCIjYWN0aXZlc2l0ZWxhbmd1YWdlIikudmFsKCk\/KHBhcnNlSW50KGRbMl0pLCQoIiNUWFRNT05USCIrcGFyc2VJbnQoZFsxXSkudG9TdHJpbmcoKSkudmFsKCksdCs9ZisiLSIrYihrKSsiLSIrYihtKSsiLmh0bWw\/c2lkPSIrYysiJyB0YXJnZXQ9J19ibGFuayc+IitmKyIgIitrKyIgIittKyIgIituKyI8L2E+Iik6KCQoIiNUWFRNT05USCIrcGFyc2VJbnQoZFsxXSkudG9TdHJpbmcoKSkudmFsKCksdCs9YihrKSsiLSIrYihtKSsiLSIrZisiLmh0bWw\/c2lkPSIrYysiJyB0YXJnZXQ9J19ibGFuayc+IitrKyIgIittKyIgIituKyIgIitmKyI8L2E+Iik7cmV0dXJuIHR9LGxvZ0Zvcm1SZXF1ZXN0OmZ1bmN0aW9uKGIsZCxjKXt2YXIgZj1NYXRoLmZsb29yKDk5OTk5OTkqTWF0aC5yYW5kb20oKSksaz0kKCIjdG9wc2l0ZWlkIikubGVuZ3RoPyQoIiN0b3BzaXRlaWQiKS52YWwoKToiMCIsbT0kKCIjdG9wY2FyaWQiKS5sZW5ndGgmJjA8JCgiI3RvcGNhcmlkIikudmFsKCkubGVuZ3RoPwokKCIjdG9wY2FyaWQiKS52YWwoKToiMCIsbj1Db29raWVzLmdldCgidWlkIik\/Q29va2llcy5nZXQoInVpZCIpOiIwIix0PUNvb2tpZXMuZ2V0KCJ1dG1fc291cmNlIik\/Q29va2llcy5nZXQoInV0bV9zb3VyY2UiKToiMCIscj1Db29raWVzLmdldCgidXRtX2NhbXBhaWduIik\/Q29va2llcy5nZXQoInV0bV9jYW1wYWlnbiIpOiIwIix2PUNvb2tpZXMuZ2V0KCJ1dG1fc291cmNlX3JldGFyZ2V0aW5nIik\/Q29va2llcy5nZXQoInV0bV9zb3VyY2VfcmV0YXJnZXRpbmciKToiMCIscT1Db29raWVzLmdldCgidXRtX2NhbXBhaWduX3JldGFyZ2V0aW5nIik\/Q29va2llcy5nZXQoInV0bV9jYW1wYWlnbl9yZXRhcmdldGluZyIpOiIwIixwPSQoIiN0b3Bpc21vYmlsZSIpLmxlbmd0aCYmMT09JCgiI3RvcGlzbW9iaWxlIikudmFsKCk\/IllFUyI6Ik5PIixoPSQoIiNhY3RpdmVzaXRlbGFuZ3VhZ2UiKS5sZW5ndGg\/JCgiI2FjdGl2ZXNpdGVsYW5ndWFnZSIpLnZhbCgpOiJGUkVOQ0giLGw9dm9pZCAwIT09CmEmJnZvaWQgMCE9PWEucGhvbmVNYW5kYXRvcnk\/YS5waG9uZU1hbmRhdG9yeTowOyJ1bmRlZmluZWQiIT10eXBlb2YgYyYmY3x8KGM9IjAiKTtyPXIucmVwbGFjZSgvXHQvZywiIikucmVwbGFjZSgvXG4vZywiIikucmVwbGFjZSgvXHIvZywiIikucmVwbGFjZUFsbCgiJTBBIiwiIikucmVwbGFjZUFsbCgiJTA5IiwiIikucmVwbGFjZUFsbCgiJTBCIiwiIikucmVwbGFjZUFsbCgiJTAwIiwiIikucmVwbGFjZUFsbCgiJTVDIiwiIikucmVwbGFjZUFsbCgiJTBEIiwiIik7dD10LnJlcGxhY2UoL1x0L2csIiIpLnJlcGxhY2UoL1xuL2csIiIpLnJlcGxhY2UoL1xyL2csIiIpLnJlcGxhY2VBbGwoIiUwQSIsIiIpLnJlcGxhY2VBbGwoIiUwOSIsIiIpLnJlcGxhY2VBbGwoIiUwQiIsIiIpLnJlcGxhY2VBbGwoIiUwMCIsIiIpLnJlcGxhY2VBbGwoIiU1QyIsIiIpLnJlcGxhY2VBbGwoIiUwRCIsIiIpO2I9Ii9wcm94eV9zYXViL2xvZ0Zvcm1SZXF1ZXN0LyIrZW5jb2RlVVJJQ29tcG9uZW50KGspKwoiLyIrZW5jb2RlVVJJQ29tcG9uZW50KG0pKyIvIitlbmNvZGVVUklDb21wb25lbnQobikrIi8iK2VuY29kZVVSSUNvbXBvbmVudCh0KSsiLyIrZW5jb2RlVVJJQ29tcG9uZW50KHIpKyIvIitlbmNvZGVVUklDb21wb25lbnQocCkrIi8iK2VuY29kZVVSSUNvbXBvbmVudChoKSsiLyIrZW5jb2RlVVJJQ29tcG9uZW50KHYpKyIvIitlbmNvZGVVUklDb21wb25lbnQocSkrIi8iK2VuY29kZVVSSUNvbXBvbmVudChkKSsiLyIrZW5jb2RlVVJJQ29tcG9uZW50KGIpKyIvIitlbmNvZGVVUklDb21wb25lbnQoYykrIi8iKyEhbCsiLyIrZW5jb2RlVVJJQ29tcG9uZW50KGYpKyIuZ2lmIjskKCJib2R5IikuYXBwZW5kKCI8aW1nIHN0eWxlPSd3aWR0aDoxcHg7aGVpZ2h0OjFweDtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjBweDt0b3A6MHB4Oycgc3JjPSciK2IrIicgYWx0PScnIC8+Iil9LGdldFVzZWRFbWFpbEZvck11bHRpcGxlRGVhbGVyczpmdW5jdGlvbigpe3ZhciBiPSJmciI7IkVOR0xJU0giPT0KJCgiI2FjdGl2ZXNpdGVsYW5ndWFnZSIpLnZhbCgpJiYoYj0iZW4iKTt1cmk9Ii8iK2IrIi9waHAvZ2V0RGVhbGVyc0VtYWlsVG8ucGhwP21ha2U9IithLm1ha2UrIiZtb2RlbD0iK2EubW9kZWwrIiZ5ZWFyPSIrYS55ZWFyKyImY2I9IitNYXRoLmZsb29yKDk5OTk5OTkqTWF0aC5yYW5kb20oKSk7JC5hamF4KHt1cmw6dXJpLGFzeW5jOiExLHN1Y2Nlc3M6ZnVuY3Rpb24oZCl7ZD1kLnNwbGl0KCJ8fHwiKTsidW5kZWZpbmVkIiE9dHlwZW9mIGRbMF0mJjA8ZFswXS5sZW5ndGgmJihhLnNlbmRUbz1kWzBdKTsidW5kZWZpbmVkIiE9dHlwZW9mIGRbMV0mJjA8ZFsxXS5sZW5ndGgmJihhLnNlbmRUb0FERkZvcm1hdD1kWzFdKX19KX0scHJlU2VuZEltcGxpY2l0OmZ1bmN0aW9uKCl7aWYoYS5wYXJ0aWFsKXJldHVybiExO2pzb25PYmplY3Q9YS5nZXRKc29uT2JqZWN0KCk7dmFyIGI9e2pzb246SlNPTi5zdHJpbmdpZnkoanNvbk9iamVjdCkscGFydGlhbDohMH07JC5hamF4KHt0eXBlOiJQT1NUIiwKdXJsOiIvbWFpbC9zZW5kTWFpbEV4LnBocCIsZGF0YTpiLGJlZm9yZVNlbmQ6ZnVuY3Rpb24oZCl7JCgnaW5wdXRbbmFtZT0ibGVhZF9kZXBhcnRtZW50Il0nKS52YWwoanNvbk9iamVjdC5kZXBhcnRtZW50KTskKCdpbnB1dFtuYW1lPSJsZWFkVHlwZSJdJykudmFsKGEuc3ViamVjdC5yZXBsYWNlKC9bXG5ccl0vZywiICIpKTskKCdpbnB1dFtuYW1lPSJwYWdlSUQiXScpLnZhbCgkKCIjUEFHRUlEIikudmFsKCkpOyQoJ2lucHV0W25hbWU9ImN1cnJlbnRVUkwiXScpLnZhbCh3aW5kb3cubG9jYXRpb24uaHJlZik7JCgnaW5wdXRbbmFtZT0iaXNGdWxsV2lkdGgiXScpLnZhbCgkKCIjaXNGdWxsV2lkdGhQYWdlTmV3VkRQIikudmFsKCkpOyQoJ2lucHV0W25hbWU9ImRlYWxlck5hbWUiXScpLnZhbCgkKCIjbmV3VkRQRGVhbGVyTmFtZSIpLnZhbCgpKTskKCdpbnB1dFtuYW1lPSJidXR0b25Qb3NpdGlvbiJdJykudmFsKCQoIiNuZXdWRFBCdXR0b25Qb3NpdGlvbiIpLnZhbCgpKTskKCdpbnB1dFtuYW1lPSJpc01vYmlsZU5ld1ZEUCJdJykudmFsKCQoIiNpc21vYmlsZSIpLnZhbCgpKTsKZCYmZC5vdmVycmlkZU1pbWVUeXBlJiZkLm92ZXJyaWRlTWltZVR5cGUoImFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD1VVEYtOCIpO3RyeXtsZXQgYz0kKCJtZXRhW25hbWU9J2NzcmYtZG9tYWluLWNoZWNrJ10iKTtjLmxlbmd0aCYmZC5zZXRSZXF1ZXN0SGVhZGVyKCJjc3JmLWRvbWFpbi1jaGVjayIsYy5hdHRyKCJjb250ZW50IikpfWNhdGNoKGMpe2NvbnNvbGUuZXJyb3IoZCl9fSxzdWNjZXNzOmZ1bmN0aW9uKGQpeyJ1bmRlZmluZWQiIT09dHlwZW9mIGRlYnVnJiZkZWJ1ZyhkKX0sZmFpbHVyZTpmdW5jdGlvbihkKXthLmxvZ0Zvcm1SZXF1ZXN0KCJGb3JtU3VibWl0dGVkRW1haWxOb3RTZW50IixhLm1haWxJRCxhLnBvcHVwT2ZmZXJUeXBlKTsidW5kZWZpbmVkIiE9PXR5cGVvZiBkZWJ1ZyYmZGVidWcoc2F2ZUhhbmRsZXIuZmFpbE1lc3NhZ2UsZCl9LHN0YXR1c0NvZGU6ezQwNDpmdW5jdGlvbigpe2FsZXJ0KCJwYWdlIG5vdCBmb3VuZCIpfX19KX0sbG9nRXZlbnQ6ZnVuY3Rpb24oYiwKZCl7ZD1kP2Q6YS5tYWlsSUQ7aWYoIWJ8fCFkKXJldHVybiJ1bmRlZmluZWQiIT09dHlwZW9mIGRlYnVnJiZkZWJ1ZygiIVVOTE9HR0VEIEVWRU5UISIsYixkKSwhMTsidW5kZWZpbmVkIiE9dHlwZW9mIGFjdGl2ZVVzZXJQcm9maWxlTW5nJiYidW5kZWZpbmVkIiE9dHlwZW9mIGFjdGl2ZVVzZXJQcm9maWxlTW5nLmxvZ1BhZ2VWaWV3RXZlbnQ\/YWN0aXZlVXNlclByb2ZpbGVNbmcubG9nUGFnZVZpZXdFdmVudChiLGQpOiJ1bmRlZmluZWQiIT09dHlwZW9mIGRlYnVnJiZkZWJ1ZygiIVVOTE9HR0VEIEVWRU5UISIsYixkKX0sYnVpbGRDUk1LZXk6ZnVuY3Rpb24oKXt2YXIgYj1wYXJzZUludCgkKCIjdG9wc2l0ZWlkIikudmFsKCksMTApLGQ9YS5nZXRVVUlEKCksYz1nZXRDb29raWUoImVtYWlsRnJvbUF1dG9BbnN3ZXIiKTtpZighaXNOYU4oYikmJigiIiE9Y3x8IiIhPWQpJiYibnVtYmVyIj09dHlwZW9mIGImJjA8Yil7dmFyIGY9bmV3IERhdGUsaz1mLmdldE1vbnRoKCkrMTtrPSQuYmFzZTY0LmVuY29kZShmLmdldEZ1bGxZZWFyKCkrCiItIisoMTA+az8iMCIrazprKSsiLSIrKDEwPmYuZ2V0RGF0ZSgpPyIwIitmLmdldERhdGUoKTpmLmdldERhdGUoKSkpO2Y9ay5zdWJzdHIoMCw4KTtrPWsuc3Vic3RyKDgpO3JldHVybiAkLmJhc2U2NC5lbmNvZGUoZiskLmJhc2U2NC5lbmNvZGUoYisiOyIrZCsiOyIrYykrayl9cmV0dXJuIiJ9LHNldE1ha2VNb2RlbFllYXJGcm9tTGFzdFZpZXdlZDpmdW5jdGlvbigpe3ZhciBiPSQoIiNsYXN0dmlld2VkbWFrZSIpLnZhbCgpLGQ9JCgiI2xhc3R2aWV3ZWRtb2RlbCIpLnZhbCgpLGM9JCgiI2xhc3R2aWV3ZWR5ZWFyIikudmFsKCk7InVuZGVmaW5lZCIhPT10eXBlb2YgYiYmIiI9PT1hLm1ha2UmJihhLm1ha2U9Yik7InVuZGVmaW5lZCIhPT10eXBlb2YgZCYmIiI9PT1hLm1vZGVsJiYoYS5tb2RlbD1kKTsidW5kZWZpbmVkIj09PXR5cGVvZiBjfHwiIiE9PWEueWVhciYmMCE9PWEueWVhcnx8KGEueWVhcj1jKX0scmVjYXB0Y2hhOnthc2s6ITAsd2lkZ2V0SWQ6LTEsc2tpcEJ5UGFzczohMSwKb246JC5EZWZlcnJlZCgpLGlzRDJDTG9hZGVkOmZ1bmN0aW9uKCl7cmV0dXJuIHdpbmRvdy5ncmVjYXB0Y2hhJiYidW5kZWZpbmVkIiE9PXR5cGVvZiB3aW5kb3cuZ3JlY2FwdGNoYS5EMkNMb2FkZWR9LGluaXQ6ZnVuY3Rpb24oKXt0cnl7KGZ1bmN0aW9uKGIsZCxjLGYsayl7aWYoIWJba118fCJ1bmRlZmluZWQiPT09dHlwZW9mIGJba10uRDJDTG9hZGVkKXt2YXIgbT1kLmNyZWF0ZUVsZW1lbnQoYyk7ZD1kLmdldEVsZW1lbnRzQnlUYWdOYW1lKGMpWzBdO20uc3JjPWY7ZC5wYXJlbnROb2RlLmluc2VydEJlZm9yZShtLGQpO20ub25sb2FkPSgpPT57YltrXSYmKGJba10uRDJDTG9hZGVkPSEwKX19fSkod2luZG93LGRvY3VtZW50LCJzY3JpcHQiLCJodHRwczovL3d3dy5nb29nbGUuY29tL3JlY2FwdGNoYS9hcGkuanMiLCJncmVjYXB0Y2hhIil9Y2F0Y2goYil7Y29uc29sZS5sb2coYil9fSxsb2FkOmZ1bmN0aW9uKCl7aWYoISgtMTxhLnJlY2FwdGNoYS53aWRnZXRJZCkpdHJ5eyQoJzxkaXYgaWQ9ImVtYWlsaGFuZGxlcl9yZWNhcHRjaGFXaWRnZXQiIHN0eWxlPSJkaXNwbGF5Om5vbmUiPjwvZGl2PicpLmFwcGVuZFRvKCJib2R5IiksCmEucmVjYXB0Y2hhLndpZGdldElkPWdyZWNhcHRjaGEucmVuZGVyKCJlbWFpbGhhbmRsZXJfcmVjYXB0Y2hhV2lkZ2V0Iix7c2l0ZWtleToiNkxmcGREMFVBQUFBQVBkNFM3SWtlNUVkeDAxeTNZWGQ1SS11M2R4UCIsY2FsbGJhY2s6YS5yZWNhcHRjaGEub25TdWJtaXQsImVycm9yLWNhbGxiYWNrIjphLnJlY2FwdGNoYS5vbkZhaWwsc2l6ZToiaW52aXNpYmxlIn0pfWNhdGNoKGIpe2NvbnNvbGUubG9nKGIpfX0sb25TdWJtaXQ6ZnVuY3Rpb24oYil7YS5ncmVjYXB0Y2hhUmVzcG9uc2VUb2tlbj1iO2EucmVjYXB0Y2hhLm9uLnJlc29sdmUoYil9LG9uRmFpbDpmdW5jdGlvbigpe2NvbnNvbGUubG9nKCJHUkMgRmFpbCIsYXJndW1lbnRzKX0sZ2V0UmVzcG9uc2U6ZnVuY3Rpb24oKXtyZXR1cm4gYS5yZWNhcHRjaGEuaXNEMkNMb2FkZWQoKT8oYS5yZWNhcHRjaGEubG9hZCgpLGdyZWNhcHRjaGEuZXhlY3V0ZShhLnJlY2FwdGNoYS53aWRnZXRJZCksYS5yZWNhcHRjaGEub24pOiQuRGVmZXJyZWQoKS5yZXNvbHZlKCl9LApyZXNldFRva2VuOmZ1bmN0aW9uKCl7YS5yZWNhcHRjaGEuaXNEMkNMb2FkZWQoKSYmKGdyZWNhcHRjaGEucmVzZXQoYS5yZWNhcHRjaGEud2lkZ2V0SWQpLGEucmVjYXB0Y2hhLm9uPSQuRGVmZXJyZWQoKSl9LHNldFJlc3BvbnNlOmZ1bmN0aW9uKCl7fX0sc2FuaXRpemVIVE1MOmZ1bmN0aW9uKGIpe3JldHVybiBlbmNvZGVVUkkoYil9LHNob3VsZERpc3BsYXlQdXJjaGFzZUludGVudENvbnRhY3Q6KCk9PntpZihudWxsPT09ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI2FzUHVyY2hhc2VJbnRlbnQiKXx8ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI2FzUHVyY2hhc2VJbnRlbnQgLnN0ZXBDb250YWN0IikuY2xhc3NMaXN0LmNvbnRhaW5zKCJoaWRkZW4iKSlyZXR1cm4hMTtsZXQgYj1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjYXNQdXJjaGFzZUludGVudCAuc3RlcENvbnRhY3QiKS5kYXRhc2V0LmRlcGFydG1lbnRzO2I9Yi5zcGxpdCgiOyIpO2lmKC0xPGIuaW5kZXhPZihhLmRlcGFydG1lbnQudG9Mb3dlckNhc2UoKSkpcmV0dXJuITA7CnZhciBkPSJ1bmRlZmluZWQiIT10eXBlb2YgZG9jdW1lbnQubG9jYXRpb24ucGF0aG5hbWU\/ZG9jdW1lbnQubG9jYXRpb24ucGF0aG5hbWU6ZG9jdW1lbnQubG9jYXRpb24uaHJlZi5tYXRjaCgvW0Etel06XC9cL1teXC9dK1wvKFteXD9dKylcPz8uKi8pWzFdO2Q9YS5zYW5pdGl6ZUhUTUwoZCk7bGV0IGM9T2JqZWN0LnZhbHVlcyhPYmplY3QuZnJvbUVudHJpZXMoT2JqZWN0LmVudHJpZXMoe25ldzpbIm5ldWYiLCJuZXciXSx1c2VkOlsib2NjYXNpb24iLCJ1c2VkIl0sc2VydmljZTpbInNlcnZpY2UiLCJlbnRyZXRpZW4iLCJtYWludGVuYW5jZSIsInJlcGFpciJdLGZpbmFuY2U6WyJmaW5hbmNlbWVudCIsImZpbmFuY2UiLCJjcmVkaXQiLCJsb2FuIl19KS5maWx0ZXIoZj0+e1tmXT1mO3JldHVybi0xPGIuaW5kZXhPZihmKX0pKSkuZmxhdCgpO3JldHVybihuZXcgUmVnRXhwKCIoIitjLmpvaW4oInwiKSsiKSIpKS50ZXN0KGQudG9Mb3dlckNhc2UoKSl9fTtqUXVlcnkoZnVuY3Rpb24oYil7Yj0KanNfZDJjX2dldF92YWwoIklTVk0iKTt2YXIgZD1qc19kMmNfZ2V0X3ZhbCgiZmZkTDEiKSxjPWpzX2QyY19nZXRfdmFsKCJHUldMIikuc3BsaXQoIjsiKTthLmlnbm9yZUNhcHRjaGE9Ynx8LTEhPWMuaW5kZXhPZihkKTthLmlnbm9yZUNhcHRjaGF8fGEucmVjYXB0Y2hhLmluaXQoKX0pO2EucmVzZXRDYWxsYmFja3MoKTthLmFza1B1cmNoYXNlSW50ZW50PWZ1bmN0aW9uKGIpe3ZhciBkPSJ1bmRlaW5mZWQiIT10eXBlb2YgYi5wYXRobmFtZT9iLnBhdGhuYW1lOmIuaHJlZi5tYXRjaCgvW0Etel06XC9cL1teXC9dK1wvKFteXD9dKylcPz8uKi8pWzFdO3ZhciBjPVJlZ0V4cCgiKGRlbW9uc3RyYXRldXJzfGRlbW98bGlxdWlkYXRpb258Y2xlYXJhbmNlfHByb21vdGlvbnN8bmV1ZnxuZXd8b2NjYXNpb258dXNlZHxjcmVkaXR8ZmluYW5jZW1lbnQpIik7Yj17ZGVtb25zdHJhdGV1cnM6ImRlbW8iLGNsZWFyYW5jZToibGlxdWlkYXRpb24iLCJuZXciOiJuZXVmIixwcm9tb3Rpb25zOiJwcm9tbyIsCnVzZWQ6Im9jY2FzaW9uIixjcmVkaXQ6ImZpbmFuY2VtZW50In07cmV0dXJuIGMudGVzdChkLnRvTG93ZXJDYXNlKCkpPyhkPWQubWF0Y2goYyksbnVsbCE9ZCYmKGEucHVyY2hhc2VfaW50ZW50X3NlY3Rpb249InVuZGVmaW5lZCIhPXR5cGVvZiBiW2RbMV1dP2JbZFsxXV06ZFsxXSksITApOiExfShkb2N1bWVudC5sb2NhdGlvbik7cmV0dXJuIGF9KCksZW1haWxUcmFja2luZz1mdW5jdGlvbigpe3ZhciBlPXticmFuZDoiIixtb2RlbDoiIix5ZWFyOiIiLGlzcHJvbW86ITEsaXNleHByZXNzOiExLGlzaG9tZXBhZ2U6ITEsc2VjdGlvbjoiIix0ZXh0Q2FyU2VjdGlvblR5cGU6IlVTRUQiLGlzTW9iaWxlTmV3VkRQOiExLGlzRnVsbFdpZHRoOiExLGJ1dHRvblBvc2l0aW9uOiIiLGRlYWxlck5hbWU6IiJ9LGc9ZnVuY3Rpb24oYyl7dmFyIGY9W10saz1jLmJyYW5kP2MuYnJhbmQ6ZW1haWxIYW5kbGVyLm1ha2UsbT1jLm1vZGVsP2MubW9kZWw6ZW1haWxIYW5kbGVyLm1vZGVsO2M9Yy55ZWFyPwpjLnllYXI6ZW1haWxIYW5kbGVyLnllYXI7ay5sZW5ndGgmJmYucHVzaChrKTttLmxlbmd0aCYmZi5wdXNoKG0pO2MubGVuZ3RoJiZmLnB1c2goYyk7cmV0dXJuIGYuam9pbigiLSIpfSxhPWZ1bmN0aW9uKGMpe3ZhciBmPXsiaG9tZXBhZ2UuaHRtbCI6IkhvbWUtUGFnZSIsImNvbnRhY3R1cy5odG1sIjoiQ29udGFjdFVzIiwibmV3Y2FyZGV0YWlsLmh0bWwiOiJOZXctVkRQIiwibmV3Y2Fycy5odG1sIjoiTmV3LVNSUCIsImJ1aWxkYW5kcHJpY2UuaHRtbCI6Ik5ldy1CJlAiLCJyZXN1bWUtYnVpbGRhbmRwcmljZS5odG1sIjoiTmV3LUImUC1SZXN1bWUiLCJjb21wYXJlTmV3VmVoaWNsZXMuaHRtbCI6Ik5ldy1Db21wYXJlIiwidXNlZGNhcnMuaHRtbCI6IlVzZWQtU1JQIiwiY2FyZGV0YWlsLmh0bWwiOiJVc2VkLVZEUCIsImNyZWRpdC5odG1sIjoiRGVtYW5kZXMgLSBGaW5hbmNlbWVudCIsImRlYWxlcnRyYWNrLmh0bWwiOiJEZW1hbmRlcyAtIEZpbmFuY2VtZW50IiwicHJvbW90aW9uLmh0bWwiOiJQcm9tb3Rpb25zIiwKInByb21vdGlvbnNhbGVzLmh0bWwiOiJQcm9tb3Rpb25zIiwicHJvbW90aW9uc2VydmljZS5odG1sIjoiUHJvbW90aW9ucyIsInBhcnRzUmVxdWVzdC5odG1sIjoiRGVtYW5kZXMgLSBQae+\/vWNlcyIsInNlcnZpY2VzLmh0bWwiOiJTZXJ2aWNlIiwic2VydmljZVJlcXVlc3QuaHRtbCI6IkRlbWFuZGVzIC0gUkRWIFNlcnZpY2UiLCJib2R5U2hvcC5odG1sIjoiRGVtYW5kZXMgLSBSRFYgQ2Fyb3NzZXJpZSIsInRpcmVzUmVxdWVzdC5odG1sIjoiRGVtYW5kZXMgLSBQbmV1cyIsIm91cnRlYW0uaHRtbCI6IlRlYW0iLCJ0ZXN0ZHJpdmUuaHRtbCI6IkRlbWFuZGVzIC0gRXNzYWlzLVJvdXRpZXItT2NjYXNpb24iLCJ0ZXN0ZHJpdmVuZXcuaHRtbCI6IkRlbWFuZGVzIC0gRXNzYWlzLVJvdXRpZXItTmV1ZiIsImJyb2NodXJlcy5odG1sIjoiRGVtYW5kZXMgLSBCcm9jaHVyZXMiLCJqb2JvZmZlci5odG1sIjoiRGVtYW5kZXMgLSBFbXBsb2lzIiwibWFrZW9mZmVybmV3Lmh0bWwiOiJEZW1hbmRlcyAtIE9mZnJlIC0gTmV1ZiIsCiJtYWtlb2ZmZXIuaHRtbCI6IkRlbWFuZGVzIC0gT2ZmcmUgLSBPY2Nhc2lvbiIsInByaWNlcmVxdWVzdG5ldy5odG1sIjoiRGVtYW5kZXMgLSBQcml4IC0gTmV1ZiIsInByaWNlcmVxdWVzdC5odG1sIjoiRGVtYW5kZXMgLSBQcml4IC0gT2NjYXNpb24iLCJmaW5kY2FyLmh0bWwiOiJEZW1hbmRlcyAtIFJlY2hlcmNoZSBPY2Nhc2lvbiIsInRyYWRlaW5uZXcuaHRtbCI6IkRlbWFuZGVzIC0gRWNoYW5nZSBOZXVmIiwidHJhZGVpbi5odG1sIjoiRGVtYW5kZXMgLSBFY2hhbmdlIE9jY2FzaW9uIn0saz0tMSE9KGMuY3VycmVudFVSTHx8IiIpLmluZGV4T2YoInN0ZXA9cmVzdW1lIiksbT0tMSE9KGMuY3VycmVudFVSTHx8IiIpLmluZGV4T2YoInN0ZXA9b3B0aW9ucyIpOyJidWlsZGFuZHByaWNlLmh0bWwiPT1jLnBhZ2VJRCYmKGt8fG0pJiYoYy5wYWdlSUQ9InJlc3VtZS1idWlsZGFuZHByaWNlLmh0bWwiKTtyZXR1cm4idW5kZWZpbmVkIiE9dHlwZW9mIGZbYy5wYWdlSURdP2ZbYy5wYWdlSURdOgoiT3RoZXIifSxiPWZ1bmN0aW9uKGMpe3ZhciBmPSJEZW1hbmRlcyIsaz1jLmJyYW5kP2MuYnJhbmQ6ZW1haWxIYW5kbGVyLm1ha2UsbT1jLm1vZGVsP2MubW9kZWw6ZW1haWxIYW5kbGVyLm1vZGVsO2MuaXNwcm9tbyYmKGYrPSItUHJvbW90aW9uIik7MDxrLmxlbmd0aCYmMDxtLmxlbmd0aCYmIWMuaXNob21lcGFnZT9mPWMuaXNwcm9tbz9mKygiLSIrZyhjKSk6ZitbIiIsayxtLGMuc2VjdGlvbl0uam9pbigiLSIpOmMuaXNwcm9tbyYmYy5pc2hvbWVwYWdlJiYoZis9Ii1JbmRleCIpOyIxIj09Yy5pc2V4cHJlc3MmJihjLnRleHRDYXJTZWN0aW9uVHlwZSYmKGY9IkRlbWFuZGVzLUV4cHJlc3MiKSxmKz0iLSIrZyhjKSxmKz0iLSIrYy5zZWN0aW9uKTtyZXR1cm4gZn0sZD1mdW5jdGlvbihjKXt2YXIgZj0xMjAwPHdpbmRvdy5zY3JlZW4uYXZhaWxXaWR0aD8iPjEyMDBweCAtICIuaXNGdWxsV2lkdGg6IjwxMjAwcHggLSBOb3JtYWwgVkRQIjtbZixjLmJ1dHRvblBvc2l0aW9uXS5qb2luKCItIik7CmM9W2MuZGVhbGVyTmFtZSxmLCJMZWFkIl0uam9pbigiLSIpO2dhVHJhY2soImMiLCJOZXctVkRQLURlc2t0b3AtTGF5b3V0LUNSIixhY3Rpb24sYywxKX07dGhpcy50cmFjaz1mdW5jdGlvbihjKXtpZihnZXRDb29raWUoImxlYWRTZW5kIikpcmV0dXJuIGRlYnVnKCJsZWFkIHNlbnQiKTtzZXRDb29raWUoImxlYWRTZW5kIiwhMCwxKTtjPSQuZXh0ZW5kKHt9LGUsYyk7Yy5jdXJyZW50VVJMPWMuY3VycmVudFVSTD9jLmN1cnJlbnRVUkw6d2luZG93LmxvY2F0aW9uLmhyZWY7Yy5pc3Byb21vPSIxIj09Yy5pc3Byb21vO2MuaXNob21lcGFnZT0iMSI9PWMuaXNob21lcGFnZTt2YXIgZj1hKGMpO2dhVHJhY2soIiIsIkNvdXJyaWVscyIsYy5sYWJlbCxiKGMpLDEpO2dhVHJhY2soImMiLCJDb3VycmllbHMtZGVwdCIsYy5kZXBhcnRtZW50LGcoYyksMSk7Z2FUcmFjaygiYyIsIkNvdXJyaWVscy1wYWdlIixmLGMubGVhZFR5cGUsMSk7Yy5pc01vYmlsZU5ld1ZEUCYmIk5ldy1WRFAiPT1mJiYKZChjKTt0cnl7ZDJjX2dhQWNjb3VudHMuYWxsLm1hcChmdW5jdGlvbihrKXtndGFnKCJjb25maWciLGsse3BhZ2VfcGF0aDoiL2NvbmZpcm1hdGlvbi5odG1sIn0pfSksZ3RhZygiY29uZmlnIiwiRy1aNVE4WjVDN0tGIix7cGFnZV9wYXRoOiIvY29uZmlybWF0aW9uLmh0bWwifSl9Y2F0Y2goayl7ZGVidWcoayl9fTtyZXR1cm4gdGhpc30oKSxnZXRNYWlsU2VudEhhbmRsZXI9ZnVuY3Rpb24oZSl7dmFyIGc9e3RpbWVvdXRDYWxsYmFjazpudWxsLHRpbWVvdXQ6bnVsbH07Zy5pZFRvQWRkPWU\/ZToiIjskKCIjZW1haWxTdWNjZXNzTWVzc2FnZSIpLmZpbmQoIi5kZWZhdWx0U3VjY2VzcyIpLnNob3coKTskKCIjZW1haWxTdWNjZXNzTWVzc2FnZSIpLmZpbmQoIi5zZXJ2aWNlU3VjY2VzcyIpLmhpZGUoKTskKCIjZW1haWxTdWNjZXNzTWVzc2FnZSIrZSkubGVuZ3RofHwoZT0iIixnLmlkVG9BZGQ9IiIsIlNFUlZJQ0UiIT1lbWFpbEhhbmRsZXIuZGVwYXJ0bWVudCYmIlBBUlRTIiE9ZW1haWxIYW5kbGVyLmRlcGFydG1lbnQpfHwKKCQoIiNlbWFpbFN1Y2Nlc3NNZXNzYWdlIikuZmluZCgiLmRlZmF1bHRTdWNjZXNzIikuaGlkZSgpLCQoIiNlbWFpbFN1Y2Nlc3NNZXNzYWdlIikuZmluZCgiLnNlcnZpY2VTdWNjZXNzIikuc2hvdygpKTtnLnNob3dTdWNjZXNzPWZ1bmN0aW9uKCl7Z2V0Q29va2llKCJwcmV2ZW50RHVwbGljYXRlQ3JlZGl0U2NvcmUiKXx8Z2V0Q29va2llKCJjcmVkaXRTY29yZUNvbmZpcm1Qb3B1cFNob3duIil8fGdldENvb2tpZSgiY3JlZGl0U2NvcmVFbWJlZGRlZEZpbGxlZCIpfHwiIiE9ZW1haWxIYW5kbGVyLnVzZXJQaG9uZSYmIiIhPWVtYWlsSGFuZGxlci51c2VyQWRkcmVzcyYmIiIhPWVtYWlsSGFuZGxlci5iaXJ0aGRhdGV8fCJuZXciIT1lbWFpbEhhbmRsZXIuZGVwYXJ0bWVudC50b0xvd2VyQ2FzZSgpJiYidXNlZCIhPWVtYWlsSGFuZGxlci5kZXBhcnRtZW50LnRvTG93ZXJDYXNlKCl8fCEkKCIjY3JlZGl0U2NvcmVDb25maXJtUG9wdXBDb250YWluZXIiKS5sZW5ndGh8fCJUcmFkZUluQmFyUG9wdXBDb250YWluZXIiPT0KZW1haWxIYW5kbGVyLnBvcHVwZGl2PygkKCIjZW1haWxTdWNjZXNzTWVzc2FnZSIrZSkucGFyZW50KCkuaXMoImJvZHkiKXx8JCgiI2VtYWlsU3VjY2Vzc01lc3NhZ2UiK2UpLmFwcGVuZFRvKCJib2R5IiksJCgiI2VtYWlsU3VjY2Vzc01lc3NhZ2UiK2UpLnJldmVhbCh7YW5pbWF0aW9uOiJmYWRlQW5kUG9wIixhbmltYXRpb25zcGVlZDozMDAsY2xvc2VvbmJhY2tncm91bmRjbGljazohMSxkaXNtaXNzbW9kYWxjbGFzczoiY2xvc2UtcmV2ZWFsLW1vZGFsIn0pLCQoIiNlbWFpbFN1Y2Nlc3NNZXNzYWdlIitlKyIgLmNvbmZpcm1fc3VjY2Vzc0NvbnRpbnVlIikub24oImNsaWNrIixnLmNsb3NlU3VjY2VzcykpOiQoIiNjcmVkaXRTY29yZUNvbmZpcm1Qb3B1cENvbnRhaW5lciIpLnBvcHVwaXplKCkuc2V0VHJpZ2dlcigiY2xpY2siKS5vcGVuKDEpOyQoIi51aS1sb2FkZXItYmFja2dyb3VuZCIpLmhpZGUoKTskKCIjZW1haWxtc2dmcm0iK2cuaWRUb0FkZCkudHJpZ2dlcigic3VibWl0Iil9OwpnLmNsb3NlU3VjY2Vzcz1mdW5jdGlvbigpeyQoIiNlbWFpbFN1Y2Nlc3NNZXNzYWdlIitnLmlkVG9BZGQpLnRyaWdnZXIoInJldmVhbDpjbG9zZSIpO251bGwhPWcudGltZW91dENhbGxiYWNrJiZnLnRpbWVvdXRDYWxsYmFjaygpO3JldHVybiExfTtnLnNob3dGYWlsPWZ1bmN0aW9uKCl7JCgiI2VtYWlsRmFpbE1lc3NhZ2UiK2cuaWRUb0FkZCkucmV2ZWFsKHthbmltYXRpb246ImZhZGVBbmRQb3AiLGFuaW1hdGlvbnNwZWVkOjMwMCxjbG9zZW9uYmFja2dyb3VuZGNsaWNrOiExLGRpc21pc3Ntb2RhbGNsYXNzOiJjbG9zZS1yZXZlYWwtbW9kYWwifSk7JCgiI2VtYWlsRmFpbE1lc3NhZ2UiK2UrIiAuY29uZmlybV9mYWlsQ29udGludWUiKS5vbigiY2xpY2siLGZ1bmN0aW9uKCl7JCgiI2VtYWlsRmFpbE1lc3NhZ2UiK2UpLnRyaWdnZXIoInJldmVhbDpjbG9zZSIpfSk7JCgiLnVpLWxvYWRlci1iYWNrZ3JvdW5kIikuaGlkZSgpfTtyZXR1cm4gZ30sbWFpbFNlbnRIYW5kbGVyPW5ldyBnZXRNYWlsU2VudEhhbmRsZXIoIiIpOwpmdW5jdGlvbiBzdG9yYWdlQXZhaWxhYmxlKGUpe3RyeXt2YXIgZz13aW5kb3dbZV07Zy5zZXRJdGVtKCJfX3N0b3JhZ2VfdGVzdF9fIiwiX19zdG9yYWdlX3Rlc3RfXyIpO2cucmVtb3ZlSXRlbSgiX19zdG9yYWdlX3Rlc3RfXyIpO3JldHVybiEwfWNhdGNoKGEpe3JldHVybiBhIGluc3RhbmNlb2YgRE9NRXhjZXB0aW9uJiYoMjI9PT1hLmNvZGV8fDEwMTQ9PT1hLmNvZGV8fCJRdW90YUV4Y2VlZGVkRXJyb3IiPT09YS5uYW1lfHwiTlNfRVJST1JfRE9NX1FVT1RBX1JFQUNIRUQiPT09YS5uYW1lKSYmZyYmMCE9PWcubGVuZ3RofX0KdmFyIGZvcm1GaWxsPWZ1bmN0aW9uKCl7dmFyIGU9dGhpcyxnPXN0b3JhZ2VBdmFpbGFibGUoImxvY2FsU3RvcmFnZSIpLGE9bnVsbCxiPSEwLGQ9W10sYz17bmFtZTpbImlucHV0Lm5hbWUiLCdpbnB1dFtuYW1lPSJuYW1lIl0nXSxwb3N0YWw6WyJpbnB1dC5wb3N0YWwiLCdpbnB1dFtuYW1lPSJwb3N0YWwiXSddLGZpcnN0TmFtZTonaW5wdXQuZmlyc3ROYW1lIGlucHV0LmZpcnN0bmFtZSBpbnB1dFtuYW1lPSJmaXJzdG5hbWUiXSBpbnB1dFtuYW1lPSJmaXJzdE5hbWUiXSBpbnB1dCNmaXJzdG5hbWUgaW5wdXQjZmlyc3ROYW1lIGlucHV0I21pbmlfZm5hbWUnLnNwbGl0KCIgIiksbGFzdE5hbWU6J2lucHV0Lmxhc3ROYW1lIGlucHV0Lmxhc3RuYW1lIGlucHV0W25hbWU9Imxhc3RuYW1lIl0gaW5wdXRbbmFtZT0ibGFzdE5hbWUiXSBpbnB1dCNsYXN0bmFtZSBpbnB1dCNsYXN0TmFtZSBpbnB1dCNtaW5pX2xuYW1lJy5zcGxpdCgiICIpLHBob25lOlsiaW5wdXQucGhvbmUiLCdpbnB1dFtuYW1lPSJwaG9uZSJdJywKJ2lucHV0W25hbWU9InBob25lTnVtYmVyIl0nLCJpbnB1dCNtaW5pX3Bob25lIiwnW3R5cGU9InRlbCJdJ10sZW1haWw6WyJpbnB1dC5lbWFpbCIsJ2lucHV0W25hbWU9ImVtYWlsIl0nLCdpbnB1dFtuYW1lPSJlbWFpbEFkZHJlc3MiXScsImlucHV0I21pbmlfZW1haWwiXX0sZj1mdW5jdGlvbihwKXtpZighZylyZXR1cm4hMTt2YXIgaD1sb2NhbFN0b3JhZ2UuZ2V0SXRlbSgiZm9ybUZpbGxEYXRhIik7aWYobnVsbD09PWgpcmV0dXJuITE7JC5hamF4KHt0eXBlOiJQT1NUIix1cmw6Ii9wcm94eV9zZDJjL3NlcnZpY2UvZDJjLmVuY3J5cHRpb24uZ2V0IixkYXRhOntkYXRhOmh9fSkuZG9uZShmdW5jdGlvbihsKXtpZihsJiYiZnVuY3Rpb24iPT09dHlwZW9mIHApdHJ5e3AoSlNPTi5wYXJzZShsLmRhdGEpKX1jYXRjaCh1KXtjb25zb2xlLmxvZyh1KX19KX0saz1mdW5jdGlvbigpe2I9ITA7YT1udWxsO2QuZm9yRWFjaChmdW5jdGlvbihwKXtwLmZpbGxlZD0hMX0pfSxtPWZ1bmN0aW9uKHApe3EoInVzZXIubG9hZGVkIiwKZnVuY3Rpb24oKXtpZighbihwKSl7ZC5wdXNoKHtzY29wZTpwLGZpbGxlZDohMH0pO2Zvcih2YXIgaCBpbiBjKWEuaGFzT3duUHJvcGVydHkoaCkmJnAuZmluZCgkKGNbaF0uam9pbigiLCIpKSkudmFsKGFbaF0pO3IoImZvcm0uZmlsbGVkIil9fSk7bnVsbD09PWEmJmI\/KGI9ITEsZihmdW5jdGlvbihoKXtoLnBvc3RhbD1oLnBvc3RhbC50b1VwcGVyQ2FzZSgpO2guZmlyc3ROYW1lPWguZmlyc3ROYW1lLnRyaW0oKTtoLmxhc3ROYW1lPWgubGFzdE5hbWUudHJpbSgpO2VtYWlsSGFuZGxlci51c2VyUG9zdGFsPWgucG9zdGFsO2VtYWlsSGFuZGxlci51c2VyRW1haWw9aC5lbWFpbDtlbWFpbEhhbmRsZXIudXNlckZpcnN0TmFtZT1oLmZpcnN0TmFtZTtlbWFpbEhhbmRsZXIudXNlckxhc3ROYW1lPWgubGFzdE5hbWU7ZW1haWxIYW5kbGVyLnVzZXJQaG9uZT1oLnBob25lO2gubmFtZT0oaC5maXJzdE5hbWUrIiAiK2gubGFzdE5hbWUpLnRyaW0oKTthPWg7cigidXNlci5sb2FkZWQiKX0pKToKYSYmcigidXNlci5sb2FkZWQiKX0sbj1mdW5jdGlvbihwKXtyZXR1cm4oX3Njb3BlPWQuZmluZChmdW5jdGlvbihoKXtpZihoLnNjb3BlLmlzKHApKXJldHVybiBofSkpP19zY29wZS5maWxsZWQ6ITF9LHQ9W10scj1mdW5jdGlvbihwKXt2YXIgaD1bXS5zbGljZS5jYWxsKGFyZ3VtZW50cywxKTtpZih0W3BdKXt2YXIgbD10W3BdLnNsaWNlKCk7dmFyIHU9bC5sZW5ndGg7Zm9yKGk9MDtpPHU7aSsrKWxbaV0uYXBwbHkodGhpcyxoKX19LHY9ZnVuY3Rpb24ocCxoKXt0W3BdfHwodFtwXT1bXSk7dFtwXS5wdXNoKGgpfSxxPWZ1bmN0aW9uKHAsaCl7dihwLGZ1bmN0aW9uIHUoKXt0W3BdLnNwbGljZSh0W3BdLmluZGV4T2YodSksMSk7aC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9KX07JChmdW5jdGlvbigpe2cmJigkKGRvY3VtZW50KS5vbigicG9wdXBpemVyLm9uT3BlbiIsZnVuY3Rpb24ocCxoKXtwPWgudGFyZ2V0P2gudGFyZ2V0OiQoaCk7bShwKX0pLCQoZG9jdW1lbnQpLm9uKCJwb3B1cGl6ZXIub25DbG9zZSIsCmZ1bmN0aW9uKHAsaCl7fSksJCgiZm9ybSIpLmVhY2goZnVuY3Rpb24ocCxoKXttKCQoaCkpfSkpfSk7cmV0dXJuIGU9e3NhdmU6ZnVuY3Rpb24ocCl7aWYoIWcpcmV0dXJuITE7YSYmIiI9PT1wLnBvc3RhbCYmKHAucG9zdGFsPWEucG9zdGFsKTskLmFqYXgoe3R5cGU6IlBPU1QiLHVybDoiL3Byb3h5X3NkMmMvc2VydmljZS9kMmMuZW5jcnlwdGlvbi5zZXQiLGRhdGE6e2RhdGE6SlNPTi5zdHJpbmdpZnkocCl9fSkuZG9uZShmdW5jdGlvbihoKXtoJiYobG9jYWxTdG9yYWdlLnNldEl0ZW0oImZvcm1GaWxsRGF0YSIsaC5kYXRhKSxrKCkpfSl9fX0oKTsKLyoqIC9tL2pzL2poYXNodGFibGUuanMgKiovCnZhciBfX19kMmNfamhhc2h0YWJsZWpzX2Nfb249IjIwMjUtMDUtMjMgMTc6MDc6MDciOyd1c2Ugc3RyaWN0Jzt2YXIgX19fZDJjX2poYXNodGFibGVqc19jX29uPSIyMDI0LTAxLTMxIDE0OjM1OjE5IjsidXNlIHN0cmljdCI7X19fZDJjX2poYXNodGFibGVqc19jX29uPSIyMDIzLTAxLTEyIDExOjMzOjQ5IjsidXNlIHN0cmljdCI7X19fZDJjX2poYXNodGFibGVqc19jX29uPSIyMDIzLTAxLTEyIDEwOjQzOjMzIjsidXNlIHN0cmljdCI7X19fZDJjX2poYXNodGFibGVqc19jX29uPSIyMDIxLTEyLTE1IDEyOjQwOjEzIjsidXNlIHN0cmljdCI7CnZhciBIYXNodGFibGU9ZnVuY3Rpb24oKXtmdW5jdGlvbiB1KGEpe2lmKCJzdHJpbmciPT10eXBlb2YgYSlyZXR1cm4gYTtpZigiZnVuY3Rpb24iPT10eXBlb2YgYS5oYXNoQ29kZSlyZXR1cm4gYT1hLmhhc2hDb2RlKCksInN0cmluZyI9PXR5cGVvZiBhP2E6dShhKTtpZigiZnVuY3Rpb24iPT10eXBlb2YgYS50b1N0cmluZylyZXR1cm4gYS50b1N0cmluZygpO3RyeXtyZXR1cm4gU3RyaW5nKGEpfWNhdGNoKGMpe3JldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoYSl9fWZ1bmN0aW9uIEIoYSxjKXtyZXR1cm4gYS5lcXVhbHMoYyl9ZnVuY3Rpb24gQyhhLGMpe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBjLmVxdWFscz9jLmVxdWFscyhhKTphPT09Y31mdW5jdGlvbiB2KGEpe3JldHVybiBmdW5jdGlvbihjKXtpZihudWxsPT09Yyl0aHJvdyBFcnJvcigibnVsbCBpcyBub3QgYSB2YWxpZCAiK2EpO2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgYyl0aHJvdyBFcnJvcihhKwoiIG11c3Qgbm90IGJlIHVuZGVmaW5lZCIpO319ZnVuY3Rpb24gcShhLGMsaCxkKXt0aGlzWzBdPWE7dGhpcy5lbnRyaWVzPVtdO3RoaXMuYWRkRW50cnkoYyxoKTtudWxsIT09ZCYmKHRoaXMuZ2V0RXF1YWxpdHlGdW5jdGlvbj1mdW5jdGlvbigpe3JldHVybiBkfSl9ZnVuY3Rpb24gcihhKXtyZXR1cm4gZnVuY3Rpb24oYyl7Zm9yKHZhciBoPXRoaXMuZW50cmllcy5sZW5ndGgsZCxrPXRoaXMuZ2V0RXF1YWxpdHlGdW5jdGlvbihjKTtoLS07KWlmKGQ9dGhpcy5lbnRyaWVzW2hdLGsoYyxkWzBdKSlzd2l0Y2goYSl7Y2FzZSAwOnJldHVybiEwO2Nhc2UgMTpyZXR1cm4gZDtjYXNlIDI6cmV0dXJuW2gsZFsxXV19cmV0dXJuITF9fWZ1bmN0aW9uIHcoYSl7cmV0dXJuIGZ1bmN0aW9uKGMpe2Zvcih2YXIgaD1jLmxlbmd0aCxkPTAsaz10aGlzLmVudHJpZXMubGVuZ3RoO2Q8azsrK2QpY1toK2RdPXRoaXMuZW50cmllc1tkXVthXX19ZnVuY3Rpb24gbShhLGMpe3JldHVybihhPWFbY10pJiYKYSBpbnN0YW5jZW9mIHE\/YTpudWxsfWZ1bmN0aW9uIHgoYSxjKXt2YXIgaD10aGlzLGQ9W10saz17fSxuPSJmdW5jdGlvbiI9PXR5cGVvZiBhP2E6dSxEPSJmdW5jdGlvbiI9PXR5cGVvZiBjP2M6bnVsbDt0aGlzLnB1dD1mdW5jdGlvbihiLGUpe3AoYik7eShlKTt2YXIgZj1uKGIpLGcsbD1udWxsOyhnPW0oayxmKSk\/KGY9Zy5nZXRFbnRyeUZvcktleShiKSk\/KGw9ZlsxXSxmWzFdPWUpOmcuYWRkRW50cnkoYixlKTooZz1uZXcgcShmLGIsZSxEKSxkW2QubGVuZ3RoXT1nLGtbZl09Zyk7cmV0dXJuIGx9O3RoaXMuZ2V0PWZ1bmN0aW9uKGIpe3AoYik7dmFyIGU9bihiKTtpZihlPW0oayxlKSlpZihiPWUuZ2V0RW50cnlGb3JLZXkoYikpcmV0dXJuIGJbMV07cmV0dXJuIG51bGx9O3RoaXMuY29udGFpbnNLZXk9ZnVuY3Rpb24oYil7cChiKTt2YXIgZT1uKGIpO3JldHVybihlPW0oayxlKSk\/ZS5jb250YWluc0tleShiKTohMX07dGhpcy5jb250YWluc1ZhbHVlPWZ1bmN0aW9uKGIpe3koYik7CmZvcih2YXIgZT1kLmxlbmd0aDtlLS07KWlmKGRbZV0uY29udGFpbnNWYWx1ZShiKSlyZXR1cm4hMDtyZXR1cm4hMX07dGhpcy5jbGVhcj1mdW5jdGlvbigpe2QubGVuZ3RoPTA7az17fX07dGhpcy5pc0VtcHR5PWZ1bmN0aW9uKCl7cmV0dXJuIWQubGVuZ3RofTt2YXIgdD1mdW5jdGlvbihiKXtyZXR1cm4gZnVuY3Rpb24oKXtmb3IodmFyIGU9W10sZj1kLmxlbmd0aDtmLS07KWRbZl1bYl0oZSk7cmV0dXJuIGV9fTt0aGlzLmtleXM9dCgia2V5cyIpO3RoaXMudmFsdWVzPXQoInZhbHVlcyIpO3RoaXMuZW50cmllcz10KCJnZXRFbnRyaWVzIik7dGhpcy5yZW1vdmU9ZnVuY3Rpb24oYil7cChiKTt2YXIgZT1uKGIpLGY9bnVsbCxnPW0oayxlKTtpZihnJiYoZj1nLnJlbW92ZUVudHJ5Rm9yS2V5KGIpLG51bGwhPT1mJiYhZy5lbnRyaWVzLmxlbmd0aCkpe2E6e2ZvcihiPWQubGVuZ3RoO2ItLTspaWYoZz1kW2JdLGU9PT1nWzBdKWJyZWFrIGE7Yj1udWxsfXooZCxiKTtkZWxldGUga1tlXX1yZXR1cm4gZn07CnRoaXMuc2l6ZT1mdW5jdGlvbigpe2Zvcih2YXIgYj0wLGU9ZC5sZW5ndGg7ZS0tOyliKz1kW2VdLmVudHJpZXMubGVuZ3RoO3JldHVybiBifTt0aGlzLmVhY2g9ZnVuY3Rpb24oYil7Zm9yKHZhciBlPWguZW50cmllcygpLGY9ZS5sZW5ndGgsZztmLS07KWc9ZVtmXSxiKGdbMF0sZ1sxXSl9O3RoaXMucHV0QWxsPWZ1bmN0aW9uKGIsZSl7Yj1iLmVudHJpZXMoKTtmb3IodmFyIGYsZyxsLEE9Yi5sZW5ndGgsRT0iZnVuY3Rpb24iPT10eXBlb2YgZTtBLS07KWY9YltBXSxnPWZbMF0sZj1mWzFdLEUmJihsPWguZ2V0KGcpKSYmKGY9ZShnLGwsZikpLGgucHV0KGcsZil9O3RoaXMuY2xvbmU9ZnVuY3Rpb24oKXt2YXIgYj1uZXcgeChhLGMpO2IucHV0QWxsKGgpO3JldHVybiBifX12YXIgej0iZnVuY3Rpb24iPT10eXBlb2YgQXJyYXkucHJvdG90eXBlLnNwbGljZT9mdW5jdGlvbihhLGMpe2Euc3BsaWNlKGMsMSl9OmZ1bmN0aW9uKGEsYyl7dmFyIGg7aWYoYz09PWEubGVuZ3RoLTEpYS5sZW5ndGg9CmM7ZWxzZXt2YXIgZD1hLnNsaWNlKGMrMSk7YS5sZW5ndGg9Yzt2YXIgaz0wO2ZvcihoPWQubGVuZ3RoO2s8aDsrK2spYVtjK2tdPWRba119fSxwPXYoImtleSIpLHk9digidmFsdWUiKTtxLnByb3RvdHlwZT17Z2V0RXF1YWxpdHlGdW5jdGlvbjpmdW5jdGlvbihhKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgYS5lcXVhbHM\/QjpDfSxnZXRFbnRyeUZvcktleTpyKDEpLGdldEVudHJ5QW5kSW5kZXhGb3JLZXk6cigyKSxyZW1vdmVFbnRyeUZvcktleTpmdW5jdGlvbihhKXtyZXR1cm4oYT10aGlzLmdldEVudHJ5QW5kSW5kZXhGb3JLZXkoYSkpPyh6KHRoaXMuZW50cmllcyxhWzBdKSxhWzFdKTpudWxsfSxhZGRFbnRyeTpmdW5jdGlvbihhLGMpe3RoaXMuZW50cmllc1t0aGlzLmVudHJpZXMubGVuZ3RoXT1bYSxjXX0sa2V5czp3KDApLHZhbHVlczp3KDEpLGdldEVudHJpZXM6ZnVuY3Rpb24oYSl7Zm9yKHZhciBjPWEubGVuZ3RoLGg9MCxkPXRoaXMuZW50cmllcy5sZW5ndGg7aDxkOysraClhW2MrCmhdPXRoaXMuZW50cmllc1toXS5zbGljZSgwKX0sY29udGFpbnNLZXk6cigwKSxjb250YWluc1ZhbHVlOmZ1bmN0aW9uKGEpe2Zvcih2YXIgYz10aGlzLmVudHJpZXMubGVuZ3RoO2MtLTspaWYoYT09PXRoaXMuZW50cmllc1tjXVsxXSlyZXR1cm4hMDtyZXR1cm4hMX19O3JldHVybiB4fSgpOwovKiogL20vanMvbmV3Y2Fycy5qcyAqKi8KdmFyIF9fX2QyY19uZXdjYXJzanNfY19vbj0iMjAyNi0wMS0xMiAxMDoxNDoxMiI7J3VzZSBzdHJpY3QnO3ZhciAkanNjb21wPSRqc2NvbXB8fHt9OyRqc2NvbXAuc2NvcGU9e307JGpzY29tcC5BU1NVTUVfRVM1PSExOyRqc2NvbXAuQVNTVU1FX05PX05BVElWRV9NQVA9ITE7JGpzY29tcC5BU1NVTUVfTk9fTkFUSVZFX1NFVD0hMTskanNjb21wLlNJTVBMRV9GUk9VTkRfUE9MWUZJTEw9ITE7JGpzY29tcC5JU09MQVRFX1BPTFlGSUxMUz0hMTskanNjb21wLkZPUkNFX1BPTFlGSUxMX1BST01JU0U9ITE7JGpzY29tcC5GT1JDRV9QT0xZRklMTF9QUk9NSVNFX1dIRU5fTk9fVU5IQU5ETEVEX1JFSkVDVElPTj0hMTskanNjb21wLmRlZmluZVByb3BlcnR5PSRqc2NvbXAuQVNTVU1FX0VTNXx8ImZ1bmN0aW9uIj09dHlwZW9mIE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzP09iamVjdC5kZWZpbmVQcm9wZXJ0eTpmdW5jdGlvbihhLGIsZSl7aWYoYT09QXJyYXkucHJvdG90eXBlfHxhPT1PYmplY3QucHJvdG90eXBlKXJldHVybiBhO2FbYl09ZS52YWx1ZTtyZXR1cm4gYX07CiRqc2NvbXAuZ2V0R2xvYmFsPWZ1bmN0aW9uKGEpe2E9WyJvYmplY3QiPT10eXBlb2YgZ2xvYmFsVGhpcyYmZ2xvYmFsVGhpcyxhLCJvYmplY3QiPT10eXBlb2Ygd2luZG93JiZ3aW5kb3csIm9iamVjdCI9PXR5cGVvZiBzZWxmJiZzZWxmLCJvYmplY3QiPT10eXBlb2YgZ2xvYmFsJiZnbG9iYWxdO2Zvcih2YXIgYj0wO2I8YS5sZW5ndGg7KytiKXt2YXIgZT1hW2JdO2lmKGUmJmUuTWF0aD09TWF0aClyZXR1cm4gZX10aHJvdyBFcnJvcigiQ2Fubm90IGZpbmQgZ2xvYmFsIG9iamVjdCIpO307JGpzY29tcC5nbG9iYWw9JGpzY29tcC5nZXRHbG9iYWwodGhpcyk7JGpzY29tcC5JU19TWU1CT0xfTkFUSVZFPSJmdW5jdGlvbiI9PT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09PXR5cGVvZiBTeW1ib2woIngiKTskanNjb21wLlRSVVNUX0VTNl9QT0xZRklMTFM9ISRqc2NvbXAuSVNPTEFURV9QT0xZRklMTFN8fCRqc2NvbXAuSVNfU1lNQk9MX05BVElWRTskanNjb21wLnBvbHlmaWxscz17fTsKJGpzY29tcC5wcm9wZXJ0eVRvUG9seWZpbGxTeW1ib2w9e307JGpzY29tcC5QT0xZRklMTF9QUkVGSVg9IiRqc2NwJCI7dmFyICRqc2NvbXAkbG9va3VwUG9seWZpbGxlZFZhbHVlPWZ1bmN0aW9uKGEsYil7dmFyIGU9JGpzY29tcC5wcm9wZXJ0eVRvUG9seWZpbGxTeW1ib2xbYl07aWYobnVsbD09ZSlyZXR1cm4gYVtiXTtlPWFbZV07cmV0dXJuIHZvaWQgMCE9PWU\/ZTphW2JdfTskanNjb21wLnBvbHlmaWxsPWZ1bmN0aW9uKGEsYixlLGcpe2ImJigkanNjb21wLklTT0xBVEVfUE9MWUZJTExTPyRqc2NvbXAucG9seWZpbGxJc29sYXRlZChhLGIsZSxnKTokanNjb21wLnBvbHlmaWxsVW5pc29sYXRlZChhLGIsZSxnKSl9OwokanNjb21wLnBvbHlmaWxsVW5pc29sYXRlZD1mdW5jdGlvbihhLGIsZSxnKXtlPSRqc2NvbXAuZ2xvYmFsO2E9YS5zcGxpdCgiLiIpO2ZvcihnPTA7ZzxhLmxlbmd0aC0xO2crKyl7dmFyIGg9YVtnXTtpZighKGggaW4gZSkpcmV0dXJuO2U9ZVtoXX1hPWFbYS5sZW5ndGgtMV07Zz1lW2FdO2I9YihnKTtiIT1nJiZudWxsIT1iJiYkanNjb21wLmRlZmluZVByb3BlcnR5KGUsYSx7Y29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmJ9KX07CiRqc2NvbXAucG9seWZpbGxJc29sYXRlZD1mdW5jdGlvbihhLGIsZSxnKXt2YXIgaD1hLnNwbGl0KCIuIik7YT0xPT09aC5sZW5ndGg7Zz1oWzBdO2c9IWEmJmcgaW4gJGpzY29tcC5wb2x5ZmlsbHM\/JGpzY29tcC5wb2x5ZmlsbHM6JGpzY29tcC5nbG9iYWw7Zm9yKHZhciBuPTA7bjxoLmxlbmd0aC0xO24rKyl7dmFyIHQ9aFtuXTtpZighKHQgaW4gZykpcmV0dXJuO2c9Z1t0XX1oPWhbaC5sZW5ndGgtMV07ZT0kanNjb21wLklTX1NZTUJPTF9OQVRJVkUmJiJlczYiPT09ZT9nW2hdOm51bGw7Yj1iKGUpO251bGwhPWImJihhPyRqc2NvbXAuZGVmaW5lUHJvcGVydHkoJGpzY29tcC5wb2x5ZmlsbHMsaCx7Y29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmJ9KTpiIT09ZSYmKHZvaWQgMD09PSRqc2NvbXAucHJvcGVydHlUb1BvbHlmaWxsU3ltYm9sW2hdJiYoZT0xRTkqTWF0aC5yYW5kb20oKT4+PjAsJGpzY29tcC5wcm9wZXJ0eVRvUG9seWZpbGxTeW1ib2xbaF09JGpzY29tcC5JU19TWU1CT0xfTkFUSVZFPwokanNjb21wLmdsb2JhbC5TeW1ib2woaCk6JGpzY29tcC5QT0xZRklMTF9QUkVGSVgrZSsiJCIraCksJGpzY29tcC5kZWZpbmVQcm9wZXJ0eShnLCRqc2NvbXAucHJvcGVydHlUb1BvbHlmaWxsU3ltYm9sW2hdLHtjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Yn0pKSl9OyRqc2NvbXAudW5kZXJzY29yZVByb3RvQ2FuQmVTZXQ9ZnVuY3Rpb24oKXt2YXIgYT17YTohMH0sYj17fTt0cnl7cmV0dXJuIGIuX19wcm90b19fPWEsYi5hfWNhdGNoKGUpe31yZXR1cm4hMX07CiRqc2NvbXAuc2V0UHJvdG90eXBlT2Y9JGpzY29tcC5UUlVTVF9FUzZfUE9MWUZJTExTJiYiZnVuY3Rpb24iPT10eXBlb2YgT2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZjokanNjb21wLnVuZGVyc2NvcmVQcm90b0NhbkJlU2V0KCk\/ZnVuY3Rpb24oYSxiKXthLl9fcHJvdG9fXz1iO2lmKGEuX19wcm90b19fIT09Yil0aHJvdyBuZXcgVHlwZUVycm9yKGErIiBpcyBub3QgZXh0ZW5zaWJsZSIpO3JldHVybiBhfTpudWxsOyRqc2NvbXAuYXJyYXlJdGVyYXRvckltcGw9ZnVuY3Rpb24oYSl7dmFyIGI9MDtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gYjxhLmxlbmd0aD97ZG9uZTohMSx2YWx1ZTphW2IrK119Ontkb25lOiEwfX19OyRqc2NvbXAuYXJyYXlJdGVyYXRvcj1mdW5jdGlvbihhKXtyZXR1cm57bmV4dDokanNjb21wLmFycmF5SXRlcmF0b3JJbXBsKGEpfX07CiRqc2NvbXAubWFrZUl0ZXJhdG9yPWZ1bmN0aW9uKGEpe3ZhciBiPSJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZTeW1ib2wuaXRlcmF0b3ImJmFbU3ltYm9sLml0ZXJhdG9yXTtyZXR1cm4gYj9iLmNhbGwoYSk6JGpzY29tcC5hcnJheUl0ZXJhdG9yKGEpfTskanNjb21wLmdlbmVyYXRvcj17fTskanNjb21wLmdlbmVyYXRvci5lbnN1cmVJdGVyYXRvclJlc3VsdElzT2JqZWN0Xz1mdW5jdGlvbihhKXtpZighKGEgaW5zdGFuY2VvZiBPYmplY3QpKXRocm93IG5ldyBUeXBlRXJyb3IoIkl0ZXJhdG9yIHJlc3VsdCAiK2ErIiBpcyBub3QgYW4gb2JqZWN0Iik7fTsKJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dD1mdW5jdGlvbigpe3RoaXMuaXNSdW5uaW5nXz0hMTt0aGlzLnlpZWxkQWxsSXRlcmF0b3JfPW51bGw7dGhpcy55aWVsZFJlc3VsdD12b2lkIDA7dGhpcy5uZXh0QWRkcmVzcz0xO3RoaXMuZmluYWxseUFkZHJlc3NfPXRoaXMuY2F0Y2hBZGRyZXNzXz0wO3RoaXMuZmluYWxseUNvbnRleHRzXz10aGlzLmFicnVwdENvbXBsZXRpb25fPW51bGx9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLnN0YXJ0Xz1mdW5jdGlvbigpe2lmKHRoaXMuaXNSdW5uaW5nXyl0aHJvdyBuZXcgVHlwZUVycm9yKCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBydW5uaW5nIik7dGhpcy5pc1J1bm5pbmdfPSEwfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5zdG9wXz1mdW5jdGlvbigpe3RoaXMuaXNSdW5uaW5nXz0hMX07CiRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmp1bXBUb0Vycm9ySGFuZGxlcl89ZnVuY3Rpb24oKXt0aGlzLm5leHRBZGRyZXNzPXRoaXMuY2F0Y2hBZGRyZXNzX3x8dGhpcy5maW5hbGx5QWRkcmVzc199OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLm5leHRfPWZ1bmN0aW9uKGEpe3RoaXMueWllbGRSZXN1bHQ9YX07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUudGhyb3dfPWZ1bmN0aW9uKGEpe3RoaXMuYWJydXB0Q29tcGxldGlvbl89e2V4Y2VwdGlvbjphLGlzRXhjZXB0aW9uOiEwfTt0aGlzLmp1bXBUb0Vycm9ySGFuZGxlcl8oKX07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUucmV0dXJuPWZ1bmN0aW9uKGEpe3RoaXMuYWJydXB0Q29tcGxldGlvbl89e3JldHVybjphfTt0aGlzLm5leHRBZGRyZXNzPXRoaXMuZmluYWxseUFkZHJlc3NffTsKJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuanVtcFRocm91Z2hGaW5hbGx5QmxvY2tzPWZ1bmN0aW9uKGEpe3RoaXMuYWJydXB0Q29tcGxldGlvbl89e2p1bXBUbzphfTt0aGlzLm5leHRBZGRyZXNzPXRoaXMuZmluYWxseUFkZHJlc3NffTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS55aWVsZD1mdW5jdGlvbihhLGIpe3RoaXMubmV4dEFkZHJlc3M9YjtyZXR1cm57dmFsdWU6YX19OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLnlpZWxkQWxsPWZ1bmN0aW9uKGEsYil7YT0kanNjb21wLm1ha2VJdGVyYXRvcihhKTt2YXIgZT1hLm5leHQoKTskanNjb21wLmdlbmVyYXRvci5lbnN1cmVJdGVyYXRvclJlc3VsdElzT2JqZWN0XyhlKTtpZihlLmRvbmUpdGhpcy55aWVsZFJlc3VsdD1lLnZhbHVlLHRoaXMubmV4dEFkZHJlc3M9YjtlbHNlIHJldHVybiB0aGlzLnlpZWxkQWxsSXRlcmF0b3JfPWEsdGhpcy55aWVsZChlLnZhbHVlLGIpfTsKJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuanVtcFRvPWZ1bmN0aW9uKGEpe3RoaXMubmV4dEFkZHJlc3M9YX07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuanVtcFRvRW5kPWZ1bmN0aW9uKCl7dGhpcy5uZXh0QWRkcmVzcz0wfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5zZXRDYXRjaEZpbmFsbHlCbG9ja3M9ZnVuY3Rpb24oYSxiKXt0aGlzLmNhdGNoQWRkcmVzc189YTt2b2lkIDAhPWImJih0aGlzLmZpbmFsbHlBZGRyZXNzXz1iKX07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuc2V0RmluYWxseUJsb2NrPWZ1bmN0aW9uKGEpe3RoaXMuY2F0Y2hBZGRyZXNzXz0wO3RoaXMuZmluYWxseUFkZHJlc3NfPWF8fDB9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmxlYXZlVHJ5QmxvY2s9ZnVuY3Rpb24oYSxiKXt0aGlzLm5leHRBZGRyZXNzPWE7dGhpcy5jYXRjaEFkZHJlc3NfPWJ8fDB9OwokanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5lbnRlckNhdGNoQmxvY2s9ZnVuY3Rpb24oYSl7dGhpcy5jYXRjaEFkZHJlc3NfPWF8fDA7YT10aGlzLmFicnVwdENvbXBsZXRpb25fLmV4Y2VwdGlvbjt0aGlzLmFicnVwdENvbXBsZXRpb25fPW51bGw7cmV0dXJuIGF9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmVudGVyRmluYWxseUJsb2NrPWZ1bmN0aW9uKGEsYixlKXtlP3RoaXMuZmluYWxseUNvbnRleHRzX1tlXT10aGlzLmFicnVwdENvbXBsZXRpb25fOnRoaXMuZmluYWxseUNvbnRleHRzXz1bdGhpcy5hYnJ1cHRDb21wbGV0aW9uX107dGhpcy5jYXRjaEFkZHJlc3NfPWF8fDA7dGhpcy5maW5hbGx5QWRkcmVzc189Ynx8MH07CiRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmxlYXZlRmluYWxseUJsb2NrPWZ1bmN0aW9uKGEsYil7Yj10aGlzLmZpbmFsbHlDb250ZXh0c18uc3BsaWNlKGJ8fDApWzBdO2lmKGI9dGhpcy5hYnJ1cHRDb21wbGV0aW9uXz10aGlzLmFicnVwdENvbXBsZXRpb25ffHxiKXtpZihiLmlzRXhjZXB0aW9uKXJldHVybiB0aGlzLmp1bXBUb0Vycm9ySGFuZGxlcl8oKTt2b2lkIDAhPWIuanVtcFRvJiZ0aGlzLmZpbmFsbHlBZGRyZXNzXzxiLmp1bXBUbz8odGhpcy5uZXh0QWRkcmVzcz1iLmp1bXBUbyx0aGlzLmFicnVwdENvbXBsZXRpb25fPW51bGwpOnRoaXMubmV4dEFkZHJlc3M9dGhpcy5maW5hbGx5QWRkcmVzc199ZWxzZSB0aGlzLm5leHRBZGRyZXNzPWF9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmZvckluPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcgJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5Qcm9wZXJ0eUl0ZXJhdG9yKGEpfTsKJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5Qcm9wZXJ0eUl0ZXJhdG9yPWZ1bmN0aW9uKGEpe3RoaXMub2JqZWN0Xz1hO3RoaXMucHJvcGVydGllc189W107Zm9yKHZhciBiIGluIGEpdGhpcy5wcm9wZXJ0aWVzXy5wdXNoKGIpO3RoaXMucHJvcGVydGllc18ucmV2ZXJzZSgpfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LlByb3BlcnR5SXRlcmF0b3IucHJvdG90eXBlLmdldE5leHQ9ZnVuY3Rpb24oKXtmb3IoOzA8dGhpcy5wcm9wZXJ0aWVzXy5sZW5ndGg7KXt2YXIgYT10aGlzLnByb3BlcnRpZXNfLnBvcCgpO2lmKGEgaW4gdGhpcy5vYmplY3RfKXJldHVybiBhfXJldHVybiBudWxsfTskanNjb21wLmdlbmVyYXRvci5FbmdpbmVfPWZ1bmN0aW9uKGEpe3RoaXMuY29udGV4dF89bmV3ICRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQ7dGhpcy5wcm9ncmFtXz1hfTsKJGpzY29tcC5nZW5lcmF0b3IuRW5naW5lXy5wcm90b3R5cGUubmV4dF89ZnVuY3Rpb24oYSl7dGhpcy5jb250ZXh0Xy5zdGFydF8oKTtpZih0aGlzLmNvbnRleHRfLnlpZWxkQWxsSXRlcmF0b3JfKXJldHVybiB0aGlzLnlpZWxkQWxsU3RlcF8odGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yXy5uZXh0LGEsdGhpcy5jb250ZXh0Xy5uZXh0Xyk7dGhpcy5jb250ZXh0Xy5uZXh0XyhhKTtyZXR1cm4gdGhpcy5uZXh0U3RlcF8oKX07CiRqc2NvbXAuZ2VuZXJhdG9yLkVuZ2luZV8ucHJvdG90eXBlLnJldHVybl89ZnVuY3Rpb24oYSl7dGhpcy5jb250ZXh0Xy5zdGFydF8oKTt2YXIgYj10aGlzLmNvbnRleHRfLnlpZWxkQWxsSXRlcmF0b3JfO2lmKGIpcmV0dXJuIHRoaXMueWllbGRBbGxTdGVwXygicmV0dXJuImluIGI\/YlsicmV0dXJuIl06ZnVuY3Rpb24oZSl7cmV0dXJue3ZhbHVlOmUsZG9uZTohMH19LGEsdGhpcy5jb250ZXh0Xy5yZXR1cm4pO3RoaXMuY29udGV4dF8ucmV0dXJuKGEpO3JldHVybiB0aGlzLm5leHRTdGVwXygpfTsKJGpzY29tcC5nZW5lcmF0b3IuRW5naW5lXy5wcm90b3R5cGUudGhyb3dfPWZ1bmN0aW9uKGEpe3RoaXMuY29udGV4dF8uc3RhcnRfKCk7aWYodGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yXylyZXR1cm4gdGhpcy55aWVsZEFsbFN0ZXBfKHRoaXMuY29udGV4dF8ueWllbGRBbGxJdGVyYXRvcl9bInRocm93Il0sYSx0aGlzLmNvbnRleHRfLm5leHRfKTt0aGlzLmNvbnRleHRfLnRocm93XyhhKTtyZXR1cm4gdGhpcy5uZXh0U3RlcF8oKX07CiRqc2NvbXAuZ2VuZXJhdG9yLkVuZ2luZV8ucHJvdG90eXBlLnlpZWxkQWxsU3RlcF89ZnVuY3Rpb24oYSxiLGUpe3RyeXt2YXIgZz1hLmNhbGwodGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yXyxiKTskanNjb21wLmdlbmVyYXRvci5lbnN1cmVJdGVyYXRvclJlc3VsdElzT2JqZWN0XyhnKTtpZighZy5kb25lKXJldHVybiB0aGlzLmNvbnRleHRfLnN0b3BfKCksZzt2YXIgaD1nLnZhbHVlfWNhdGNoKG4pe3JldHVybiB0aGlzLmNvbnRleHRfLnlpZWxkQWxsSXRlcmF0b3JfPW51bGwsdGhpcy5jb250ZXh0Xy50aHJvd18obiksdGhpcy5uZXh0U3RlcF8oKX10aGlzLmNvbnRleHRfLnlpZWxkQWxsSXRlcmF0b3JfPW51bGw7ZS5jYWxsKHRoaXMuY29udGV4dF8saCk7cmV0dXJuIHRoaXMubmV4dFN0ZXBfKCl9OwokanNjb21wLmdlbmVyYXRvci5FbmdpbmVfLnByb3RvdHlwZS5uZXh0U3RlcF89ZnVuY3Rpb24oKXtmb3IoO3RoaXMuY29udGV4dF8ubmV4dEFkZHJlc3M7KXRyeXt2YXIgYT10aGlzLnByb2dyYW1fKHRoaXMuY29udGV4dF8pO2lmKGEpcmV0dXJuIHRoaXMuY29udGV4dF8uc3RvcF8oKSx7dmFsdWU6YS52YWx1ZSxkb25lOiExfX1jYXRjaChiKXt0aGlzLmNvbnRleHRfLnlpZWxkUmVzdWx0PXZvaWQgMCx0aGlzLmNvbnRleHRfLnRocm93XyhiKX10aGlzLmNvbnRleHRfLnN0b3BfKCk7aWYodGhpcy5jb250ZXh0Xy5hYnJ1cHRDb21wbGV0aW9uXyl7YT10aGlzLmNvbnRleHRfLmFicnVwdENvbXBsZXRpb25fO3RoaXMuY29udGV4dF8uYWJydXB0Q29tcGxldGlvbl89bnVsbDtpZihhLmlzRXhjZXB0aW9uKXRocm93IGEuZXhjZXB0aW9uO3JldHVybnt2YWx1ZTphLnJldHVybixkb25lOiEwfX1yZXR1cm57dmFsdWU6dm9pZCAwLGRvbmU6ITB9fTsKJGpzY29tcC5nZW5lcmF0b3IuR2VuZXJhdG9yXz1mdW5jdGlvbihhKXt0aGlzLm5leHQ9ZnVuY3Rpb24oYil7cmV0dXJuIGEubmV4dF8oYil9O3RoaXMudGhyb3c9ZnVuY3Rpb24oYil7cmV0dXJuIGEudGhyb3dfKGIpfTt0aGlzLnJldHVybj1mdW5jdGlvbihiKXtyZXR1cm4gYS5yZXR1cm5fKGIpfTt0aGlzW1N5bWJvbC5pdGVyYXRvcl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc319OyRqc2NvbXAuZ2VuZXJhdG9yLmNyZWF0ZUdlbmVyYXRvcj1mdW5jdGlvbihhLGIpe2I9bmV3ICRqc2NvbXAuZ2VuZXJhdG9yLkdlbmVyYXRvcl8obmV3ICRqc2NvbXAuZ2VuZXJhdG9yLkVuZ2luZV8oYikpOyRqc2NvbXAuc2V0UHJvdG90eXBlT2YmJmEucHJvdG90eXBlJiYkanNjb21wLnNldFByb3RvdHlwZU9mKGIsYS5wcm90b3R5cGUpO3JldHVybiBifTsKJGpzY29tcC5hc3luY0V4ZWN1dGVQcm9taXNlR2VuZXJhdG9yPWZ1bmN0aW9uKGEpe2Z1bmN0aW9uIGIoZyl7cmV0dXJuIGEubmV4dChnKX1mdW5jdGlvbiBlKGcpe3JldHVybiBhLnRocm93KGcpfXJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihnLGgpe2Z1bmN0aW9uIG4odCl7dC5kb25lP2codC52YWx1ZSk6UHJvbWlzZS5yZXNvbHZlKHQudmFsdWUpLnRoZW4oYixlKS50aGVuKG4saCl9bihhLm5leHQoKSl9KX07JGpzY29tcC5hc3luY0V4ZWN1dGVQcm9taXNlR2VuZXJhdG9yRnVuY3Rpb249ZnVuY3Rpb24oYSl7cmV0dXJuICRqc2NvbXAuYXN5bmNFeGVjdXRlUHJvbWlzZUdlbmVyYXRvcihhKCkpfTskanNjb21wLmFzeW5jRXhlY3V0ZVByb21pc2VHZW5lcmF0b3JQcm9ncmFtPWZ1bmN0aW9uKGEpe3JldHVybiAkanNjb21wLmFzeW5jRXhlY3V0ZVByb21pc2VHZW5lcmF0b3IobmV3ICRqc2NvbXAuZ2VuZXJhdG9yLkdlbmVyYXRvcl8obmV3ICRqc2NvbXAuZ2VuZXJhdG9yLkVuZ2luZV8oYSkpKX07CmxldCAkanNjb21wJG9wdGNoYWluJHRtcDE5MzczODk4NTkkMDsKbmV3Q2Fycz17aXNNb2JpbGU6IjEiPT09KG51bGw9PSgkanNjb21wJG9wdGNoYWluJHRtcDE5MzczODk4NTkkMD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaXNNb2JpbGUiKSk\/dm9pZCAwOiRqc2NvbXAkb3B0Y2hhaW4kdG1wMTkzNzM4OTg1OSQwLnZhbHVlKSxjb250YWluZXI6ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm5ld2NhckNvbnRhaW5lciIpLHJlc2l6ZU1haW5XaW5kb3c6ZnVuY3Rpb24oKXtpZighbmV3Q2Fycy5pc01vYmlsZSl7dmFyIGE9JCgiI3JpZ2h0U2lkZSIpLmhlaWdodCgpLTM1LGI9JCgiI25ld2NhckNvbnRhaW5lciIpLmhlaWdodCgpOyFpc05hTihhKSYmIWlzTmFOKGIpJiZhPmImJigkKCIjbmV3Y2FyQ29udGFpbmVyIikuaGVpZ2h0KGEpLCQoIiNmb290ZXJEaXYiKS5jc3MoInBhZGRpbmciLCIwcHgiKSl9fSxzZXRQYXltZW50VG9vbHRpcHM6KCk9PntuZXdDYXJzLmlzTW9iaWxlPyQoIi5kaXZDYXJzQm94V3JhcHBlciIpLmVhY2goZnVuY3Rpb24oKXskKHRoaXMpLmZpbmQoIi5kaXZDYXJTaW5nbGVPdXRlckJveCAuZGl2Q2FyUGF5bWVudENvbnRhaW5lciAucGF5bWVudEluZm9CdWJibGUgLnBheW1lbnRUb29sdGlwIikuZWFjaChmdW5jdGlvbigpe3RyeXt2YXIgYT0kKHRoaXMpLmF0dHIoImRhdGEtdG9vbHRpcCIpOwokKHRoaXMpLmRhcmtUb29sdGlwKHtjb250ZW50OmEsZ3Jhdml0eToiZWFzdCIsdGhlbWU6ImxpZ2h0Iix0cmlnZ2VyOiJjbGljayIsYW5pbWF0aW9uOiJmbGlwSW4ifSl9Y2F0Y2goYil7fX0pfSk6JCgiLmRpdkNhcnNCb3hXcmFwcGVyIikuZWFjaChmdW5jdGlvbigpeyQodGhpcykuZmluZCgiLmRpdkNhclNpbmdsZU91dGVyQm94Iikub24oIm1vdXNlZW50ZXIgbW91c2VsZWF2ZSIsZnVuY3Rpb24oYSl7dHJ5e2lmKCQodGhpcykuZGF0YSgidG9vbHRpcENyZWF0ZWQiKSlyZXR1cm4hMTskKHRoaXMpLmRhdGEoInRvb2x0aXBDcmVhdGVkIiwxKTskKHRoaXMpLmZpbmQoIi5kaXZDYXJQYXltZW50Q29udGFpbmVyVG9vbHRpcCIpLmRhcmtUb29sdGlwKHtncmF2aXR5OiJ3ZXN0Iix0aGVtZToibGlnaHQiLHRyaWdnZXI6ImhvdmVyIixhbmltYXRpb246ImZsaXBJbiJ9KX1jYXRjaChiKXt9fSl9KX0sbmV3Q2Fyc0ZpbHRlcjooKT0+e2Z1bmN0aW9uIGEoKXt2YXIgYz0kKCIuZGl2Q2F0ZWdvcnlCb3hXcmFwcGVyIikubWFwKGZ1bmN0aW9uKGQsCmYpe3JldHVybiBwYXJzZUludCgkKGYpLmF0dHIoIm5iVmlzaWJsZSIpKX0pLmdldCgpLnJlZHVjZShmdW5jdGlvbihkLGYpe3JldHVybiBkK2Z9LDApO3JldHVybntmaWx0ZXJzOntzdGF0dXM6Ik5ldyIsYm9keVN0eWxlOiQoImlucHV0OmNoZWNrZWQuZmlsdGVyQ2hlY2suY2F0ZWdvcnkiKS5tYXAoZnVuY3Rpb24oZCxmKXtyZXR1cm4gJChmKS52YWwoKX0pLmdldCgpLGZ1ZWxUeXBlOiQoImlucHV0OmNoZWNrZWQuZmlsdGVyQ2hlY2suZnVlbHR5cGUiKS5tYXAoZnVuY3Rpb24oZCxmKXtyZXR1cm4gJChmKS5kYXRhKCJlc3NlbmNlIil9KS5nZXQoKSxkcml2ZVRyYWluOiQoImlucHV0OmNoZWNrZWQuZmlsdGVyQ2hlY2suZHJpdmV0cmFpbiIpLm1hcChmdW5jdGlvbihkLGYpe3JldHVybiAkKGYpLmRhdGEoImRyaXZldHJhaW4iKX0pLmdldCgpLG1heFByaWNlOnAubWF4LG1pblByaWNlOnAubWlufSx2ZWhpY2xlQ291bnQ6Y319dmFyIGI9ITE7dHJ5eyJ1bmRlZmluZWQiPT1qUXVlcnkuYnJvd3Nlci5tc2llPwpiPSEwOjk8PXBhcnNlSW50KGpRdWVyeS5icm93c2VyLnZlcnNpb24sMTApJiYoYj0hMCl9Y2F0Y2goYyl7fWlmKCJ1bmRlZmluZWQiPT10eXBlb2YgYm94QmxvY2tzfHwxPmJveEJsb2Nrcy5sZW5ndGgpYj0hMTstMTx3aW5kb3cubG9jYXRpb24uaHJlZi5pbmRleE9mKCJjYW1pb25zLWNvbW1lcmNpYXV4IikmJihiPSExKTtpZihiKXt2YXIgZT1uZXdDYXJzLmdldEZpbHRlcigpO2I9Z2V0VXJsVmFycygpO3ZhciBnPWIuaGFzT3duUHJvcGVydHkoImJvZHkiKSxoPWIuaGFzT3duUHJvcGVydHkoImZ1ZWwiKTtuZXdDYXJzLmNvbnRhaW5lci5xdWVyeVNlbGVjdG9yQWxsKCIuZmlsdGVyQ2hlY2siKS5mb3JFYWNoKGM9PntnJiZjLmNsYXNzTGlzdC5jb250YWlucygiY2F0ZWdvcnkiKXx8aCYmYy5jbGFzc0xpc3QuY29udGFpbnMoImZ1ZWx0eXBlIil8fChjLmNoZWNrZWQ9IWUuaGFzT3duUHJvcGVydHkoYy5pZCl8fCEwPT09ZVtjLmlkXSl9KTskKCIjZmlsdGVyTWFpbkJveCIpLnNob3coKTsKZm9yKHZhciBuIGluIGJveEJsb2Nrcyl7Yj0wO2Zvcih2YXIgdCBpbiBib3hCbG9ja3Nbbl0pYisrOyQoIiNjbGFzcyIrbisiX2NvbnRhaW5lciIpLmF0dHIoIm5iVmlzaWJsZSIsYil9JCgiLmZpbHRlckNoZWNrIikub24oImNsaWNrIixmdW5jdGlvbigpe3ZhciBjPSQodGhpcyk7bmV3Q2Fycy5zZXRGaWx0ZXIoYy5hdHRyKCJpZCIpLGMuaXMoIjpjaGVja2VkIikpO3NldFRpbWVvdXQoeCwxMDApO2lmKGMuaGFzQ2xhc3MoImNhdGVnb3J5Iikpe3ZhciBkPWMudmFsKCk7c2V0VGltZW91dChmdW5jdGlvbigpe0IoZCl9LDEwMCl9fSk7JCgiLnJhZGlvU29ydCIpLm9uKCJjbGljayIsZnVuY3Rpb24oKXtDKCQodGhpcykudmFsKCkpfSk7JCgiLmZpbHRlclNwYW4iKS5vbigiY2xpY2siLGZ1bmN0aW9uKCl7dmFyIGM9JCh0aGlzKTtuZXdDYXJzLnNldEZpbHRlcigiZmlsdGVyU3BhbiIsYy5hdHRyKCJyZWwiKSk7Yz0iIyIrYy5hdHRyKCJyZWwiKTskKGMpLnRyaWdnZXIoImNsaWNrIil9KTsKdmFyIHk9IiIsdz0iIixHPWZ1bmN0aW9uKGMsZCl7cmV0dXJuIGMuY29uc289PWQuY29uc28\/MDpjLmNvbnNvPmQuY29uc28\/MTotMX0sSD1mdW5jdGlvbihjLGQpe3JldHVybiBjLmNvbnNvPT1kLmNvbnNvPzA6Yy5jb25zbz5kLmNvbnNvPy0xOjF9LEk9ZnVuY3Rpb24oYyxkKXtyZXR1cm4gYy5wcmljZT09ZC5wcmljZT8wOmMucHJpY2U+ZC5wcmljZT8xOi0xfSxKPWZ1bmN0aW9uKGMsZCl7cmV0dXJuIGMucHJpY2U9PWQucHJpY2U\/MDpjLnByaWNlPmQucHJpY2U\/LTE6MX0sSz1mdW5jdGlvbihjLGQpe3JldHVybiBjLmNhck1vZGVsPT1kLmNhck1vZGVsP2MueWVhcj5kLnllYXI\/LTE6Yy55ZWFyPGQueWVhcj8xOjA6Yy5jYXJNb2RlbD5kLmNhck1vZGVsPzE6LTF9LEM9ZnVuY3Rpb24oYyxkKXt3PSJ1bmRlZmluZWQiIT09dHlwZW9mIGQ\/ZDp5PT1jPyJBc2MiPT13PyJEZXNjIjoiQXNjIjoiQXNjIjt5PWM7bmV3Q2Fycy5zZXRGaWx0ZXIoInNvcnRCeSIseSk7bmV3Q2Fycy5zZXRGaWx0ZXIoInNvcnREaXIiLAp3KTtmb3IodmFyIGYgaW4gYm94QmxvY2tzKXtjPTE7ZD1bXTtmb3IodmFyIG0gaW4gYm94QmxvY2tzW2ZdKXt2YXIgbD1ib3hCbG9ja3NbZl1bbV07bC52aXNpYmxlJiYoZFtkLmxlbmd0aF09bCl9c3dpdGNoKHkpe2Nhc2UgInByaWNlIjoiQXNjIj09dz9kLnNvcnQoSSk6ZC5zb3J0KEopO2JyZWFrO2Nhc2UgIm1vZGVsIjpkLnNvcnQoSyk7YnJlYWs7Y2FzZSAiY29uc28iOiJBc2MiPT13P2Quc29ydChHKTpkLnNvcnQoSCl9ZC5zb3J0KGZ1bmN0aW9uKGssdSl7cmV0dXJuIGsuc3BlY2lhbE9yZGVyPT11LnNwZWNpYWxPcmRlcj8wOmsuc3BlY2lhbE9yZGVyPnUuc3BlY2lhbE9yZGVyPzE6LTF9KTtmb3IobD0wO2w8ZC5sZW5ndGg7bCsrKWRbbF0udmlzaWJsZSYmKGRbbF0ucG9zaXRpb24hPWwrMSYmKGRbbF0ucG9zaXRpb249bCsxLEEoZiwiZmJ4XyIrZisiXyIrZFtsXS5pZCwibW92ZSIsbCsxKSksYysrKX19LEw9ZnVuY3Rpb24oKXtmb3IodmFyIGMgaW4gYm94QmxvY2tzKXt2YXIgZD0KMSxmO2ZvcihmIGluIGJveEJsb2Nrc1tjXSl7dmFyIG09Ym94QmxvY2tzW2NdW2ZdO20udmlzaWJsZSYmbS5wb3NpdGlvbiE9ZCYmKG0ucG9zaXRpb249ZCxBKGMsZiwibW92ZSIsZCkpO0EoYyxmLG0udmlzaWJsZT8ic2hvdyI6ImhpZGUiKTttLnZpc2libGUmJmQrK30kKCIjY2xhc3MiK2MrIl9jb250YWluZXIiKS5hdHRyKCJuYlZpc2libGUiLGQtMSl9fSxEPWZ1bmN0aW9uKGMsZCl7Zm9yKHZhciBmPTAsbT0xO208ZDttKyspe3ZhciBsPSQoIiMiK2MrbSk7MDxsLmxlbmd0aCYmbC5wcm9wKCJjaGVja2VkIikmJihmKz1NYXRoLnBvdygyLG0tMSkpfXJldHVybiBmfSx4PWZ1bmN0aW9uKCl7dmFyIGM9RCgiZmlsdGVyRXNzZW5jZUNoZWNrIiw2KSxkPUQoImZpbHRlckRyaXZlVHJhaW5DaGVjayIsNCksZj1bXSxtPVtdOyQoIi5maWx0ZXJDaGVjay5jYXRlZ29yeSIpLmVhY2goZnVuY3Rpb24oKXskKHRoaXMpLmlzKCI6Y2hlY2tlZCIpJiZmLnB1c2goJCh0aGlzKS52YWwoKSl9KTt2YXIgbD0KITE7MDwkKCIuZmlsdGVyQ2hlY2suY2FyTWFrZSIpLmxlbmd0aCYmKCQoIi5maWx0ZXJDaGVjay5jYXJNYWtlIikuZWFjaChmdW5jdGlvbigpeyQodGhpcykuaXMoIjpjaGVja2VkIikmJm0ucHVzaCgkKHRoaXMpLnZhbCgpKX0pLGw9ITApO2Zvcih2YXIgayBpbiBib3hCbG9ja3Mpe3ZhciB1PTAscTtmb3IocSBpbiBib3hCbG9ja3Nba10pe3ZhciBNPXBhcnNlSW50KGJveEJsb2Nrc1trXVtxXS5mdWVsLDEwKSx2PSExO3Y9KHY9KHY9KHY9KHY9IShwYXJzZUludChib3hCbG9ja3Nba11bcV0uZHJpdmV0cmFpbiwxMCkmZCkpfHwhKE0mYykpfHwhKCFib3hCbG9ja3Nba11bcV0uY2FyQ2F0ZWdvcnl8fC0xPCQuaW5BcnJheShib3hCbG9ja3Nba11bcV0uY2FyQ2F0ZWdvcnksZikpKXx8ISghMT09PWx8fC0xPCQuaW5BcnJheShib3hCbG9ja3Nba11bcV0uY2FyTWFrZSxtKSYmbCkpfHwhKDA9PWJveEJsb2Nrc1trXVtxXS5wcmljZXx8Ym94QmxvY2tzW2tdW3FdLnByaWNlPD1wLm1heCYmCmJveEJsb2Nrc1trXVtxXS5wcmljZT49cC5taW4pO2JveEJsb2Nrc1trXVtxXS52aXNpYmxlPSF2O2JveEJsb2Nrc1trXVtxXS52aXNpYmxlJiZ1Kyt9JCgiI2NsYXNzIitrKyJfY29udGFpbmVyIikuYXR0cigibmJWaXNpYmxlIix1KTtCKGspfUwoKTsiMSI9PT0kKCJib2R5IikuZGF0YSgiZmlsdGVyczpsb2FkIikmJiQoImJvZHkiKS50cmlnZ2VyKCQuZXh0ZW5kKHt0eXBlOiJmaWx0ZXJzOmNoYW5nZSJ9LGEoKSkpfSxCPWZ1bmN0aW9uKGMpe3ZhciBkPSQoIiNjbGFzcyIrYysiX2NvbnRhaW5lciIpO2lmKDA8ZC5sZW5ndGgpe3ZhciBmPSQoIiNzaG93Q2xhc3NfIitjKTswPT09Zi5sZW5ndGgmJihmPSQoJ2lucHV0W2RhdGEtZXNzZW5jZT0iJytjKyciXScpKTtmPWYuaXMoIjpjaGVja2VkIik7MDxwYXJzZUludChkLmF0dHIoIm5iVmlzaWJsZSIpLDEwKT8oZiYmKGQuYXR0cigic3RhdGUiLCJvcGVuIiksZC5mYWRlSW4oNjAwKSxuZXdDYXJzLmlzTW9iaWxlfHwoZj1NYXRoLmNlaWwocGFyc2VJbnQoZC5hdHRyKCJuYlZpc2libGUiKSwKMTApLzMpLCQoIi5DTEFTU18iK2MpLmFuaW1hdGUoe2hlaWdodDpyLmhlaWdodCpmKyJweCJ9LDYwMCkpLGY9ITApLGZ8fEUoZCkpOkUoZCl9fSxFPWZ1bmN0aW9uKGMpe2MuYXR0cigic3RhdGUiLCJjbG9zZSIpO2MuZmFkZU91dCg2MDApO3JldHVybiEwfSxBPWZ1bmN0aW9uKGMsZCxmLG0sbCl7aWYoImhpZGUiPT1mKSQoIiMiK2QpLmFuaW1hdGUoe29wYWNpdHk6MH0sNjAwLGZ1bmN0aW9uKCl7JCh0aGlzKS5hdHRyKCJpcy1ib3gtdmlzaWJsZSIsMCkuY3NzKCJ2aXNpYmlsaXR5IiwiaGlkZGVuIil9KSxib3hCbG9ja3NbY11bZF0udmlzaWJsZT0hMSxzaXRlUGFnZS5pc01vYmlsZSYmKG5ld0NhcnMuY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3IoYCMke2R9YCkuaGlkZGVuPSEwKTtlbHNlIGlmKCJzaG93Ij09ZikkKCIjIitkKS5jc3MoInZpc2liaWxpdHkiLCJ2aXNpYmxlIikuYW5pbWF0ZSh7b3BhY2l0eToxfSw2MDAsZnVuY3Rpb24oKXskKHRoaXMpLmF0dHIoImlzLWJveC12aXNpYmxlIiwKMSl9KSxib3hCbG9ja3NbY11bZF0udmlzaWJsZT0hMCxzaXRlUGFnZS5pc01vYmlsZSYmKG5ld0NhcnMuY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3IoYCMke2R9YCkuaGlkZGVuPSExKTtlbHNlIGlmKCFzaXRlUGFnZS5pc01vYmlsZSl7dmFyIGs9JCgiLmRpdkNhdGVnb3JpZXNCb3hXcmFwcGVyIikud2lkdGgoKTtjPU1hdGguZmxvb3Ioay9yLndpZHRoKTtmPWJveFBvc2l0aW9uc1tkXTtrPU1hdGguZmxvb3Ioay9jKTtjPXtsZWZ0OiIrPSIrKChtLTEpJWMqay0oZi0xKSVjKmspKyJweCIsdG9wOiIrPSIrKE1hdGguZmxvb3IoKG0tMSkvYykqci5oZWlnaHQtTWF0aC5mbG9vcigoZi0xKS9jKSpyLmhlaWdodCkrInB4In07dm9pZCAwPT1sPyQoIiMiK2QpLmFkZENsYXNzKCJNb3ZpbmdCb3giKS5hbmltYXRlKGMsNjAwLGZ1bmN0aW9uKCl7JCh0aGlzKS5yZW1vdmVDbGFzcygiTW92aW5nQm94Iil9KTokKCIjIitkKS5hZGRDbGFzcygiTW92aW5nQm94IikuYW5pbWF0ZShjLDYwMCxmdW5jdGlvbigpeyQodGhpcykucmVtb3ZlQ2xhc3MoIk1vdmluZ0JveCIpOwpldmFsKGwpfSk7Ym94UG9zaXRpb25zW2RdPW19fSxGPWZ1bmN0aW9uKCl7dmFyIGM9e3dpZHRoOjAsaGVpZ2h0OjB9OyQoJy5kaXZDYXJTaW5nbGVPdXRlckJveFtpcy1ib3gtdmlzaWJsZT0iMSJdOmZpcnN0JykuZWFjaChmdW5jdGlvbigpe2Mud2lkdGg9JCh0aGlzKS5vdXRlcldpZHRoKCEwKTtjLmhlaWdodD0kKHRoaXMpLm91dGVySGVpZ2h0KCEwKX0pO3JldHVybiBjfSx6PTk2MDskKCIuZGl2Q2FyU2luZ2xlT3V0ZXJCb3giKS5hdHRyKCJpcy1ib3gtdmlzaWJsZSIsMSk7dmFyIHI9RigpOzA8JCgiQk9EWS5pc0Z1bGxXaWR0aFBhZ2UiKS5sZW5ndGgmJjA8JCgiQk9EWS5pc1BhZ2VGdWxsV2lkdGhFbmFibGVkIikubGVuZ3RoJiYoMTMwMDx3aW5kb3cuaW5uZXJXaWR0aCYmKHo9MTIwMCksJCh3aW5kb3cpLm9uKCJyZXNpemUiLGZ1bmN0aW9uKCl7dmFyIGM9ejt6PTEzMDA8d2luZG93LmlubmVyV2lkdGg\/MTIwMDo5NjA7YyE9eiYmc2V0VGltZW91dChmdW5jdGlvbigpe04oKX0pfSkpOwp2YXIgTj1mdW5jdGlvbigpe3ZhciBjPXI7cj1GKCk7JCgiLmRpdkNhcnNCb3hXcmFwcGVyIikuZWFjaChmdW5jdGlvbigpe3ZhciBkPTA7JCh0aGlzKS5maW5kKCIuZGl2Q2FyU2luZ2xlT3V0ZXJCb3giKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIGY9cGFyc2VJbnQoJCh0aGlzKS5jc3MoInRvcCIpKSxtPXBhcnNlSW50KCQodGhpcykuY3NzKCJsZWZ0IikpOzA9PT1mJiYwPT09bXx8JCh0aGlzKS5jc3Moe3RvcDpyLmhlaWdodCooZi9wYXJzZUludChjLmhlaWdodCkpKyJweCJ9KS5jc3Moe2xlZnQ6ci53aWR0aCoobS9wYXJzZUludChjLndpZHRoKSkrInB4In0pOzE9PT1wYXJzZUludCgkKHRoaXMpLmF0dHIoImlzLWJveC12aXNpYmxlIikpJiZkKyt9KTtkJiYkKHRoaXMpLmNzcyh7aGVpZ2h0Ok1hdGguZmxvb3IoZC8zKSpyLmhlaWdodCsoZCUzP3IuaGVpZ2h0OjApKyJweCJ9KX0pfSxwPXttaW46MCxtYXg6MUU2fTsoZnVuY3Rpb24oKXt2YXIgYz0kKCIjcHJpY2VSYW5nZVNsaWRlckZpbHRlckNvbnRhaW5lciIpOwppZigwPGMubGVuZ3RoKXt2YXIgZD1jLmZpbmQoImRpdi5yYW5nZS1zbGlkZXIiKTtpZigwPGQubGVuZ3RoKXt2YXIgZj1udWxsLG09ZnVuY3Rpb24obCxrKXtwPXttaW46RDJDVXRpbHMuTnVtYmVyLnJvdW5kRG93bihrLnZhbHVlc1swXSwxRTMpLG1heDpEMkNVdGlscy5OdW1iZXIucm91bmRVcChrLnZhbHVlc1sxXSwxRTMpfTtudWxsIT09bCYmbmV3Q2Fycy5zZXRGaWx0ZXIoInNldFNob3dlZFZhbHVlcyIscC5taW4rIjoiK3AubWF4KTtjLmZpbmQoInNwYW4ucHJpY2UtbWluIikudGV4dChwLm1pbi50b0xvY2FsZVN0cmluZygpKTtjLmZpbmQoInNwYW4ucHJpY2UtbWF4IikudGV4dChwLm1heC50b0xvY2FsZVN0cmluZygpKTtjbGVhclRpbWVvdXQoZik7Zj1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7eCgpfSw1MDApfTtwPXttaW46RDJDVXRpbHMuTnVtYmVyLnJvdW5kRG93bihkLmF0dHIoImF0dHItcHJpY2UtbWluIikpLG1heDpEMkNVdGlscy5OdW1iZXIucm91bmREb3duKGQuYXR0cigiYXR0ci1wcmljZS1tYXgiKSl9OwpkLnNsaWRlcih7cmFuZ2U6ITAsbWluOnAubWluLG1heDpwLm1heCxzbGlkZTptLGNoYW5nZTptLGNyZWF0ZTpmdW5jdGlvbihsLGspe2w9bmV3Q2Fycy5nZXRGaWx0ZXIoKTtrPVtwLm1pbixwLm1heF07InN0cmluZyI9PT10eXBlb2YgbC5zZXRTaG93ZWRWYWx1ZXMmJihrPWwuc2V0U2hvd2VkVmFsdWVzLnNwbGl0KCI6IikpO2Quc2xpZGVyKCJ2YWx1ZXMiLGspO20obnVsbCx7dmFsdWVzOmt9KTtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7JCgiYm9keSIpLnRyaWdnZXIoJC5leHRlbmQoe3R5cGU6ImZpbHRlcnM6bG9hZCJ9LGEoKSkpfSwzRTMpfX0pfX19KSgpO3NldFRpbWVvdXQoZnVuY3Rpb24oKXt2YXIgYz0kKCIjc29ydEJ5Iik7dmFyIGQ9JCgiI3NvcnREaXIiKSxmPSJtb2RlbCI7dmFyIG09IkFzYyI7dmFyIGw9e21vZGVsOiJyYWRpb01vZGxlIixwcmljZToicmFkaW9QcmljZSIsY29uc286InJhZGlvQ29uc28ifTtjLmxlbmd0aCYmZC5sZW5ndGgmJihmPWMudmFsKCksbT1kLnZhbCgpKTsKZSYmInVuZGVmaW5lZCIhPT10eXBlb2YgbFtlLnNvcnRCeV0\/KGM9ZS5zb3J0QnksbT1lLnNvcnREaXIpOmM9Zjt0cnl7dmFyIGs9JCgiIyIrbFtjXSk7ay5sZW5ndGgmJmsucHJvcCgiY2hlY2tlZCIsImNoZWNrZWQiKTtDKGMsbSl9Y2F0Y2godSl7fX0sNTAwKTtpZigkKCIjdG9nZ2xlRmlsdGVyQnRuIikubGVuZ3RoKSQoIiN0b2dnbGVGaWx0ZXJCdG4iKS5vbigiY2xpY2sgdGFwIixmdW5jdGlvbigpeyQoIiNzaWRlU2lkZWJhckZpbHRlciIpLmxlbmd0aCYmKCQoIiNzaWRlU2lkZWJhckZpbHRlciIpLmhhc0NsYXNzKCJvcGVuIik\/JCgiI3NpZGVTaWRlYmFyRmlsdGVyIikucmVtb3ZlQ2xhc3MoIm9wZW4iKTokKCIjc2lkZVNpZGViYXJGaWx0ZXIiKS5hZGRDbGFzcygib3BlbiIpKX0pO2lmKCQoIiNjbG9zZVNpZGViYXJCdG4iKS5sZW5ndGgpJCgiI2Nsb3NlU2lkZWJhckJ0biIpLm9uKCJjbGljayB0YXAiLGZ1bmN0aW9uKCl7JCgiI3NpZGVTaWRlYmFyRmlsdGVyIikubGVuZ3RoJiYKJCgiI3NpZGVTaWRlYmFyRmlsdGVyIikuaGFzQ2xhc3MoIm9wZW4iKSYmJCgiI3NpZGVTaWRlYmFyRmlsdGVyIikucmVtb3ZlQ2xhc3MoIm9wZW4iKX0pOyQoIi5zZWxlY3RUb2dnbGVXcmFwcGVyQ2FyTWFrZSIpLmxlbmd0aCYmKCQoIiNzZWxlY3RBbGxCdG5DYXJNYWtlIikub24oImNsaWNrIHRhcCIsZnVuY3Rpb24oKXskKCIuZmlsdGVyQ2hlY2suY2FyTWFrZSIpLnByb3AoImNoZWNrZWQiLCEwKTtzZXRUaW1lb3V0KHgsMTAwKX0pLCQoIiN1bnNlbGVjdEFsbEJ0bkNhck1ha2UiKS5vbigiY2xpY2sgdGFwIixmdW5jdGlvbigpeyQoIi5maWx0ZXJDaGVjay5jYXJNYWtlIikucHJvcCgiY2hlY2tlZCIsITEpO3NldFRpbWVvdXQoeCwxMDApfSkpfX0sc2V0RmlsdGVyOihhLGIpPT57dmFyIGU9e30sZz1fbG9jYWxTdG9yYWdlR2V0KCJuZXdTdnBGaWx0ZXIiKTtudWxsIT1nJiYib2JqZWN0IiE9dHlwZW9mIGcmJihlPUpTT04ucGFyc2UoZykpO2c9d2luZG93LmxvY2F0aW9uLnBhdGhuYW1lOwp2b2lkIDA9PWVbZ10mJihlW2ddPXt9KTtlW2ddW2FdPWI7X2xvY2FsU3RvcmFnZVNldCgibmV3U3ZwRmlsdGVyIixKU09OLnN0cmluZ2lmeShlKSl9LGdldEZpbHRlcjooKT0+e2xldCBhPSExO3ZhciBiPV9sb2NhbFN0b3JhZ2VHZXQoIm5ld1N2cEZpbHRlciIpO2xldCBlPXt9O251bGwhPWImJiJvYmplY3QiIT10eXBlb2YgYiYmKGU9SlNPTi5wYXJzZShiKSk7Yj13aW5kb3cubG9jYXRpb24ucGF0aG5hbWU7dm9pZCAwIT1lW2JdJiYoYT1lW2JdKTtyZXR1cm4gYX0sc2V0UHJpY2VUb29sVGlwczooKT0+e25ld0NhcnMuaXNNb2JpbGV8fGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5jYXJQcmljZUluaXRpYWxUb29sVGlwSWNvbiIpLmZvckVhY2goYT0+e2xldCBiPWEuZGF0YXNldC50b29sdGlwOyQoYSkuZGFya1Rvb2x0aXAoe2NvbnRlbnQ6YixncmF2aXR5OiJ3ZXN0Iix0aGVtZToibGlnaHQiLHRyaWdnZXI6ImhvdmVyIixhbmltYXRpb246ImZsaXBJbiJ9KX0pfSxzZXRFdmVudHM6KCk9Pgp7bmV3Q2Fycy5pc01vYmlsZXx8KCQoImltZ1tlcnJvcmltZ10iKS5vbigiZXJyb3IiLGZ1bmN0aW9uKCl7dGhpcy5zcmM9JCh0aGlzKS5hdHRyKCJlcnJvcmltZyIpfSksJCgiaW1nW211bHRpaW1nPXRydWVdIikuZWFjaChmdW5jdGlvbigpeyQodGhpcykub24oIm1vdXNlb3ZlciIsZnVuY3Rpb24oKXskKHRoaXMpLmF0dHIoInNyYyIsJCh0aGlzKS5hdHRyKCJjb2xvcmltZyIpKX0pOyQodGhpcykub24oIm1vdXNlb3V0IixmdW5jdGlvbigpeyQodGhpcykuYXR0cigic3JjIiwkKHRoaXMpLmF0dHIoImJsYWNraW1nIikpfSl9KSl9LGdldEludmVudG9yeURhdGE6KCk9Pntjb25zdCBhPShiLGUpPT57bGV0IGc9IkZSRU5DSCI9PWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNhY3RpdmVzaXRlbGFuZ3VhZ2UiKS52YWx1ZT8iZnIiOiJlbiI7ZmV0Y2goYC8ke2d9L2FqYXgvZ2V0SW52ZW50b3J5RGF0YWAse21ldGhvZDoiUE9TVCIsaGVhZGVyczp7QWNjZXB0OiJhcHBsaWNhdGlvbi9qc29uIiwKIkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZDsiLGNoYXJzZXQ6IlVURi04In0sYm9keTpuZXcgVVJMU2VhcmNoUGFyYW1zKGIpfSkudGhlbihoPT57aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBoJiYhMD09PWgub2smJjIwMD09aC5zdGF0dXMpcmV0dXJuIGguanNvbigpfSkudGhlbihoPT57aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBoLnN0YXR1cyYmInN1Y2Nlc3MiPT1oLnN0YXR1cyl7bGV0IG49aC5jb3VudDtoPWgudXJsO2xldCB0PWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNpblN0b2NrTGFiZWwiKS52YWx1ZTswPG4mJihlLnBhcmVudE5vZGUuaW5zZXJ0QWRqYWNlbnRIVE1MKCJiZWZvcmVlbmQiLGA8YSBocmVmPSIke2h9Ij4ke259ICR7dH08L2E+YCksZS5wYXJlbnROb2RlLmhpZGRlbj0hMSl9fSkuY2F0Y2goZnVuY3Rpb24oaCl7fSl9O2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2lucHV0W2RhdGEtdHlwZT0iaW52ZGF0YSJdJykuZm9yRWFjaChiPT4Ke2Eoe21ha2U6Yi5kYXRhc2V0Lm1ha2UsbW9kZWw6Yi5kYXRhc2V0Lm1vZGVsLHllYXI6Yi5kYXRhc2V0LnllYXIsc3R5bGVpZHM6Yi5kYXRhc2V0LnN0eWxlaWRzLGh5YnJpZDpiLmRhdGFzZXQuaHlicmlkfSxiKX0pfSxnZXRQYXltZW50RGF0YTooKT0+e2NvbnN0IGE9KGIsZSxnKT0+JGpzY29tcC5hc3luY0V4ZWN1dGVQcm9taXNlR2VuZXJhdG9yRnVuY3Rpb24oZnVuY3Rpb24qKCl7dHJ5e2NvbnN0IGg9eWllbGQoeWllbGQgZmV0Y2goYC8ke2VuY29kZVVSSUNvbXBvbmVudChnKX0vYWpheC9nZXRTaG93cm9vbVBheW1lbnRIdG1sYCx7bWV0aG9kOiJQT1NUIixoZWFkZXJzOntBY2NlcHQ6ImFwcGxpY2F0aW9uL2pzb24iLCJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ7IixjaGFyc2V0OiJVVEYtOCJ9LGJvZHk6bmV3IFVSTFNlYXJjaFBhcmFtcyhiKX0pKS5qc29uKCk7ZS5wYXJlbnROb2RlLnF1ZXJ5U2VsZWN0b3IoIi5za2VsZXRvbi1ibG9jayIpLmhpZGRlbj0KITA7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBoLnN0YXR1cyYmInN1Y2Nlc3MiPT1oLnN0YXR1cyl7bGV0IG49aC5jb250ZW50OzA8bi5sZW5ndGgmJihlLnBhcmVudE5vZGUuaW5zZXJ0QWRqYWNlbnRIVE1MKCJiZWZvcmVlbmQiLG4pLGUucGFyZW50Tm9kZS5oaWRkZW49ITEpfX1jYXRjaChoKXt9fSk7ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnaW5wdXRbZGF0YS10eXBlPSJwYXltZW50ZGF0YSJdJykuZm9yRWFjaChiPT57bGV0IGU9IkZSRU5DSCI9PWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNhY3RpdmVzaXRlbGFuZ3VhZ2UiKS52YWx1ZT8iZnIiOiJlbiI7YSh7c3R5bGVpZDpiLmRhdGFzZXQuc3R5bGVpZCx0aXRsZTpiLmRhdGFzZXQudGl0bGUsaHJlZjpiLmRhdGFzZXQuaHJlZixsaW5rU3R5bGU6Yi5kYXRhc2V0LmxpbmtzdHlsZSxsaW5rQ2xhc3M6Yi5kYXRhc2V0LmxpbmtjbGFzcyxjb250YWluZXJDbGFzczpiLmRhdGFzZXQuY29udGFpbmVyY2xhc3MscHJvbW9UZXh0OmIuZGF0YXNldC5wcm9tb3RleHQsCmxhbmc6ZX0sYixlKX0pfX07JCh3aW5kb3cpLm9uKCJsb2FkIixmdW5jdGlvbigpe25ld0NhcnMucmVzaXplTWFpbldpbmRvdygpfSk7ZG9jUmVhZHlBcnIucHVzaCgoKT0+e25ld0NhcnMuZ2V0UGF5bWVudERhdGEoKTtuZXdDYXJzLnNldFBheW1lbnRUb29sdGlwcygpO25ld0NhcnMuc2V0RXZlbnRzKCk7bmV3Q2Fycy5uZXdDYXJzRmlsdGVyKCk7bmV3Q2Fycy5zZXRQcmljZVRvb2xUaXBzKCk7bmV3Q2Fycy5nZXRJbnZlbnRvcnlEYXRhKCl9KTsKLyoqIC9tL2pzL2pxdWVyeS51aS50b3VjaC1wdW5jaC5taW4uanMgKiovCi8qIQogKiBqUXVlcnkgVUkgVG91Y2ggUHVuY2ggMC4yLjMKICoKICogQ29weXJpZ2h0IDIwMTHigJMyMDE0LCBEYXZlIEZ1cmZlcm8KICogRHVhbCBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIG9yIEdQTCBWZXJzaW9uIDIgbGljZW5zZXMuCiAqCiAqIERlcGVuZHM6CiAqICBqcXVlcnkudWkud2lkZ2V0LmpzCiAqICBqcXVlcnkudWkubW91c2UuanMKICovCiFmdW5jdGlvbihhKXtmdW5jdGlvbiBmKGEsYil7aWYoIShhLm9yaWdpbmFsRXZlbnQudG91Y2hlcy5sZW5ndGg+MSkpe2EucHJldmVudERlZmF1bHQoKTt2YXIgYz1hLm9yaWdpbmFsRXZlbnQuY2hhbmdlZFRvdWNoZXNbMF0sZD1kb2N1bWVudC5jcmVhdGVFdmVudCgiTW91c2VFdmVudHMiKTtkLmluaXRNb3VzZUV2ZW50KGIsITAsITAsd2luZG93LDEsYy5zY3JlZW5YLGMuc2NyZWVuWSxjLmNsaWVudFgsYy5jbGllbnRZLCExLCExLCExLCExLDAsbnVsbCksYS50YXJnZXQuZGlzcGF0Y2hFdmVudChkKX19aWYoYS5zdXBwb3J0LnRvdWNoPSJvbnRvdWNoZW5kImluIGRvY3VtZW50LGEuc3VwcG9ydC50b3VjaCl7dmFyIGUsYj1hLnVpLm1vdXNlLnByb3RvdHlwZSxjPWIuX21vdXNlSW5pdCxkPWIuX21vdXNlRGVzdHJveTtiLl90b3VjaFN0YXJ0PWZ1bmN0aW9uKGEpe3ZhciBiPXRoaXM7IWUmJmIuX21vdXNlQ2FwdHVyZShhLm9yaWdpbmFsRXZlbnQuY2hhbmdlZFRvdWNoZXNbMF0pJiYoZT0hMCxiLl90b3VjaE1vdmVkPSExLGYoYSwibW91c2VvdmVyIiksZihhLCJtb3VzZW1vdmUiKSxmKGEsIm1vdXNlZG93biIpKX0sYi5fdG91Y2hNb3ZlPWZ1bmN0aW9uKGEpe2UmJih0aGlzLl90b3VjaE1vdmVkPSEwLGYoYSwibW91c2Vtb3ZlIikpfSxiLl90b3VjaEVuZD1mdW5jdGlvbihhKXtlJiYoZihhLCJtb3VzZXVwIiksZihhLCJtb3VzZW91dCIpLHRoaXMuX3RvdWNoTW92ZWR8fGYoYSwiY2xpY2siKSxlPSExKX0sYi5fbW91c2VJbml0PWZ1bmN0aW9uKCl7dmFyIGI9dGhpcztiLmVsZW1lbnQub24oe3RvdWNoc3RhcnQ6YS5wcm94eShiLCJfdG91Y2hTdGFydCIpLHRvdWNobW92ZTphLnByb3h5KGIsIl90b3VjaE1vdmUiKSx0b3VjaGVuZDphLnByb3h5KGIsIl90b3VjaEVuZCIpfSksYy5jYWxsKGIpfSxiLl9tb3VzZURlc3Ryb3k9ZnVuY3Rpb24oKXt2YXIgYj10aGlzO2IuZWxlbWVudC5vZmYoe3RvdWNoc3RhcnQ6YS5wcm94eShiLCJfdG91Y2hTdGFydCIpLHRvdWNobW92ZTphLnByb3h5KGIsIl90b3VjaE1vdmUiKSx0b3VjaGVuZDphLnByb3h5KGIsIl90b3VjaEVuZCIpfSksZC5jYWxsKGIpfX19KGpRdWVyeSk7LypFT0YqLzsKLyoqIC9tL2pzL3BheW1lbnRDYWxjdWxhdG9yLmpzICoqLwp2YXIgX19fZDJjX3BheW1lbnRDYWxjdWxhdG9yanNfY19vbj0iMjAyNi0wMi0yNyAxMDozMDowNyI7J3VzZSBzdHJpY3QnO2Z1bmN0aW9uIHBvcHVwQ2FsY3VsYXRvckluaXRpYWxpemVkKCl7ZnVuY3Rpb24gYSgpe2QmJmQuYWJvcnQoKTtjYWxjVXBkYXRlUGF5bWVudFhociYmKGNhbGNVcGRhdGVQYXltZW50WGhyLmFib3J0KCksY2FsY1VwZGF0ZVBheW1lbnRYaHI9bnVsbCk7dmFyIGI9KCQoImJvZHkiKS5oYXNDbGFzcygiRU5HTElTSCIpPyIvZW4iOiIvZnIiKSsiL2FqYXgvZ2V0UGF5bWVudERhdGFGb3JTdHlsZUlEP3dzd2lkdGg9MCIsZT1nZXRQb3BDb250YWluU2V0dGluZ3MoKSxrPWdldE9wdGlvbnNBbW91bnQoZSksbD1nZXRBY2Nlc3Nvcmllc0Ftb3VudChlKTtsZXQgaD1nZXRTZWxlY3RlZEFjY2Vzc29yaWVzKGUpO3ZhciByPWdldFByb3RlY3Rpb25QbGFuc0Ftb3VudChlKSxxPWUuaGFzT3duUHJvcGVydHkoIm5vVHJpbVNlbGVjdCIpJiYidHJ1ZSI9PWUubm9UcmltU2VsZWN0fHwidXNlZGNhcnMuaHRtbCI9PSQoIiNQQUdFSUQiKS52YWwoKXx8CiJjYXJkZXRhaWwuaHRtbCI9PSQoIiNQQUdFSUQiKS52YWwoKSx1PWUuaGFzT3duUHJvcGVydHkoInN0b2NrTnVtYmVyIik\/ZS5zdG9ja051bWJlcjoiIix5PWUuaGFzT3duUHJvcGVydHkoInZpbiIpP2UudmluOiIiO2lmKHEmJiF1KXt2YXIgbj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicGhvbmVzdG9ja251bWJlciIpO24mJih1PW4udmFsdWV8fCIiKX1xJiYheSYmKG49ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBob25ldmluIikpJiYoeT1uLnZhbHVlfHwiIik7cSYmIWUuc3R5bGVpZCYmKG49ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFjdGl2ZVN0eWxlSUQiKSkmJihlLnN0eWxlaWQ9bi52YWx1ZXx8ZS5zdHlsZWlkKTtpZigiY2FzaCI9PSQoIiNwYXltZW50Q2FsY3VsYXRvclBheW1lbnRUeXBlIC5hY3RpdmVQYXltZW50VHlwZSIpLmF0dHIoImRhdGEtdHlwZSIpKWVuYWJsZUNhc2hPcHRpb24oKTtlbHNle249cGFyc2VJbnQoJCgiLnBheW1lbnRDYWxjdWxhdG9yVHJhZGVJblZhbHVlIikudmFsKCl8fAowKStwYXJzZUludCgkKCIjcGF5bWVudENhbGN1bGF0b3JEb3duUGF5bWVudCIpLnZhbCgpfHwwKTt2YXIgeD1bXTtkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIuY29uZGl0aW9uYWwtcmViYXRlLWNoZWNrYm94IikuZm9yRWFjaChmdW5jdGlvbihmKXtmLmNoZWNrZWQmJihmPWYuZ2V0QXR0cmlidXRlKCJkYXRhLWNvbmRpdGlvbmFsLXJlYmF0ZS1pZCIpKSYmeC5wdXNoKGYpfSk7dmFyIHQ9bnVsbDtDb29raWVzLmdldCgicGF5bWVudENhbGN1bGF0b3JTZWxlY3RlZE9wdGlvbnMiKSYmKHQ9Q29va2llcy5nZXQoInBheW1lbnRDYWxjdWxhdG9yU2VsZWN0ZWRPcHRpb25zIikuc3BsaXQoIi0iKSk7dmFyIEE9JCgiI3BheW1lbnRDYWxjdWxhdG9yS21BbGxvd2FuY2UiKS52YWwoKTshQSYmdCYmdFszXSYmKEE9dFszXSk7dmFyIHo9JCgiI3BheW1lbnRDYWxjdWxhdG9yUGF5bWVudFR5cGUgLmFjdGl2ZVBheW1lbnRUeXBlIikuYXR0cigiZGF0YS10eXBlIik7IXomJnQmJnRbMF0mJih6PQp0WzBdKTshJCgiI3BheW1lbnRDYWxjdWxhdG9ySW50ZXJ2YWwiKS52YWwoKSYmdCYmdFsyXSYmJCgiI3BheW1lbnRDYWxjdWxhdG9ySW50ZXJ2YWwiKS52YWwodFsyXSk7ZD0kLmFqYXgoe3VybDpiLHR5cGU6IlBPU1QiLGRhdGFUeXBlOiJKU09OIixkYXRhOntzdHlsZWlkOmUuc3R5bGVpZCxwYXltZW50VHlwZTp6LGRvd25wYXltZW50Om4sb3B0aW9uc0Ftb3VudDprLHBheW1lbnRGcmVxdWVuY3k6JCgiI3BheW1lbnRDYWxjdWxhdG9ySW50ZXJ2YWwiKS52YWwoKSxrbUFsbG93YW5jZTpBLG9wdGlvbnM6ayxpc0ludmVudG9yeTpxLHNuOnUsdmluOnksY29uZGl0aW9uYWxSZWJhdGVJZHM6eC5qb2luKCIsIiksYWNjZXNzb3JpZXM6bCxzZWxlY3RlZEFjY2Vzc29yaWVzOmgscHJvdGVjdGlvblBsYW5zOnJ9LHN1Y2Nlc3M6ZnVuY3Rpb24oZil7Zi5jdXJyZW50UGF5bWVudCYmZi5jdXJyZW50UGF5bWVudC5sZW5ndGgmJihzaG93UGF5bWVudHMoZi5jdXJyZW50UGF5bWVudCxmLnBheW1lbnRGZWVzLApmLm1ha2VpZCxmKSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dmFyIHc9JCgnI3BheW1lbnRDYWxjdWxhdG9yQ29udGFpbmVyIGlucHV0W25hbWU9InNlbGVjdGVkUGF5bWVudCJdOmNoZWNrZWQnKTt3Lmxlbmd0aCYmIk5FV0NBUlMiIT0oJCgiI3RhcmdldFBhZ2UiKS52YWwoKXx8ITEpJiYiVVNFRENBUlMiIT0oJCgiI3RhcmdldFBhZ2UiKS52YWwoKXx8ITEpJiYodz17Y3VycmVudFBheW1lbnQ6dy5hdHRyKCJkYXRhLXJlYWxwYXltZW50IiksY3VycmVudFJhdGU6dy5hdHRyKCJkYXRhLXJhdGUiKSxwYXltZW50VGVybTp3LnZhbCgpLHBheW1lbnRUeXBlOiQoIiNwYXltZW50Q2FsY3VsYXRvclBheW1lbnRUeXBlIC5hY3RpdmVQYXltZW50VHlwZSIpLmF0dHIoImRhdGEtdHlwZSIpLHBheW1lbnRJbnRlcnZhbDokKCIjcGF5bWVudENhbGN1bGF0b3JJbnRlcnZhbCIpLnZhbCgpLHBheW1lbnREb3duUGF5bWVudDpwYXJzZUludCgkKCIucGF5bWVudENhbGN1bGF0b3JUcmFkZUluVmFsdWUiKS52YWwoKXx8CjApK3BhcnNlSW50KCQoIiNwYXltZW50Q2FsY3VsYXRvckRvd25QYXltZW50IikudmFsKCl8fDApLHRvdGFsSW50ZXJlc3Q6dy5hdHRyKCJkYXRhLXRvdGFsaW50ZXJlc3QiKSxsdXhlVGF4QW1vdW50OncuYXR0cigiZGF0YS1sdXhlVGF4QW1vdW50IikscmF0ZVR5cGU6dy5hdHRyKCJkYXRhLXJhdGV0eXBlIiksZWZmZWN0aXZlUmF0ZTp3LmF0dHIoImRhdGEtZWZmZWN0aXZlUmF0ZSIpLHRvdGFsQ29zdDp3LmF0dHIoImRhdGEtdG90YWxDb3N0Iil9LGNoYW5nZVBhZ2VQYXltZW50VmFsdWUodykpfSwyNTApKX19KX19dmFyIGQ9bnVsbDskKCIjcGF5bWVudENhbGN1bGF0b3JJbnRlcnZhbCIpLm9uKCJjaGFuZ2UiLGZ1bmN0aW9uKCl7YSgpfSk7JCgiI3BheW1lbnRDYWxjdWxhdG9yUGF5bWVudFR5cGUgbGkiKS5vbigiY2xpY2siLGZ1bmN0aW9uKCl7JCgiI3BheW1lbnRDYWxjdWxhdG9yUGF5bWVudFR5cGUgbGkiKS5yZW1vdmVDbGFzcygiYWN0aXZlUGF5bWVudFR5cGUiKTt2YXIgYj0KZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI3BheW1lbnRDYWxjdWxhdG9yQ29udGFpbmVyIC5jYWxjLXBheW1lbnQtY2FzaCIpOyQodGhpcykuYWRkQ2xhc3MoImFjdGl2ZVBheW1lbnRUeXBlIik7c3dpdGNoKCEwKXtjYXNlICJsZWFzaW5nIj09PSQodGhpcykuYXR0cigiZGF0YS10eXBlIik6Yi5oaWRkZW49ITA7JCgiLnBheW1lbnRDYWxjdWxhdG9yS21BbGxvd2FuY2VDb250YWluZXIiKS5zaG93KCk7JCgiLnBheW1lbnRDYWxjdWxhdG9ySW5wdXRDb250YWluZXIiKS5zaG93KCk7YnJlYWs7Y2FzZSAiZmluYW5jaW5nIj09PSQodGhpcykuYXR0cigiZGF0YS10eXBlIik6Yi5oaWRkZW49ITA7JCgiLnBheW1lbnRDYWxjdWxhdG9yS21BbGxvd2FuY2VDb250YWluZXIiKS5oaWRlKCk7JCgiLnBheW1lbnRDYWxjdWxhdG9ySW5wdXRDb250YWluZXIiKS5zaG93KCk7YnJlYWs7Y2FzZSAiY2FzaCI9PT0kKHRoaXMpLmF0dHIoImRhdGEtdHlwZSIpOmIuaGlkZGVuPSExLCQoIi5wYXltZW50Q2FsY3VsYXRvcklucHV0Q29udGFpbmVyIikuaGlkZSgpLAokKCIjcGF5bWVudENhbGN1bGF0b3JQYXltZW50Q29udGFpbmVyIikuaGlkZSgpLCQoIiNwYXltZW50Q2FsY3VsYXRvclBheW1lbnRDb250YWluZXJXaXRoVGF4ZXMiKS5oaWRlKCksbnVsbCE9PUNvb2tpZXMuZ2V0KCJwYXltZW50Q2FsY3VsYXRvclNlbGVjdGVkT3B0aW9ucyIpJiYoYj1Db29raWVzLmdldCgicGF5bWVudENhbGN1bGF0b3JTZWxlY3RlZE9wdGlvbnMiKS5zcGxpdCgiLSIpLGJbMF09ImNhc2giLENvb2tpZXMuc2V0KCJwYXltZW50Q2FsY3VsYXRvclNlbGVjdGVkT3B0aW9ucyIsYi5qb2luKCItIiksbnVsbCwiLyIpKSx3aW5kb3cucGF5bWVudFNlbGVjdENoYW5nZWQ9ITAsInVuZGVmaW5lZCIhPT10eXBlb2YgbW9kZWxDb25maWcmJiJmdW5jdGlvbiI9PT10eXBlb2YgbW9kZWxDb25maWcuc2V0Qk5QVmlldyYmbW9kZWxDb25maWcuc2V0Qk5QVmlldyghMCwiY2FzaCIpfSQoIiNwYXltZW50Q2FsY3VsYXRvckRvd25QYXltZW50IikudHJpZ2dlcigiYmx1ciIpfSk7JCgiI3BheW1lbnRDYWxjdWxhdG9yS21BbGxvd2FuY2UiKS5vbigiY2hhbmdlIiwKZnVuY3Rpb24oKXthKCl9KTskKCIjcGF5bWVudENhbGN1bGF0b3JEb3duUGF5bWVudCIpLm9uKCJibHVyIixmdW5jdGlvbigpe2xldCBiPXBhcnNlSW50KCQodGhpcykudmFsKCkucmVwbGFjZSgvW15cZF0vZywiIikpfHwwO2lmKCJsZWFzaW5nIj09PSQoIiNwYXltZW50Q2FsY3VsYXRvclBheW1lbnRUeXBlIC5hY3RpdmVQYXltZW50VHlwZSIpLmF0dHIoImRhdGEtdHlwZSIpKXt2YXIgZT1wYXJzZUludCgkKCIjbWF4RG93blBheW1lbnRGb3JUcmltIikudmFsKCkpfHwwO2I+ZSYmKGI9ZSl9ZWxzZSBlPXBhcnNlSW50KCQoIiNtYXhEb3duUGF5bWVudEZpbmFuY2VGb3JUcmltIikudmFsKCkpfHwwLGI+ZSYmKGI9ZSk7JCh0aGlzKS52YWwoYik7YSgpfSk7JCgiLnBheW1lbnRDYWxjdWxhdG9yVHJhZGVJblZhbHVlIikub24oImJsdXIiLGZ1bmN0aW9uKCl7bGV0IGI9cGFyc2VJbnQoJCh0aGlzKS5hdHRyKCJtYXgiKSl8fDAsZT1wYXJzZUludCgkKHRoaXMpLnZhbCgpKXx8MDtlPWU+CmI\/YjplOyQodGhpcykudmFsKGUpO19sb2NhbFN0b3JhZ2VTZXQoInRyYWRlaW5fY3VycmVudF92YWx1ZSIsSlNPTi5zdHJpbmdpZnkoe3ZhbHVlOmV9KSwxKTthKCl9KTskKCIjcGF5bWVudENhbGN1bGF0b3JJbmNsdWRlVGF4Q2hlY2siKS5vbigiY2hhbmdlIixmdW5jdGlvbigpeyQodGhpcykuaXMoIjpjaGVja2VkIik\/KCQoIiNwYXltZW50Q2FsY3VsYXRvclBheW1lbnRDb250YWluZXIiKS5oaWRlKCksJCgiI3BheW1lbnRDYWxjdWxhdG9yUGF5bWVudENvbnRhaW5lcldpdGhUYXhlcyIpLnNob3coKSwkKCIucGF5bWVudENhbGN1bGF0b3JUYXhlSW5jbHVkZWQiKS5zaG93KCksJCgiLnBheW1lbnRDYWxjdWxhdG9yVGF4ZU5vdEluY2x1ZGVkIikuaGlkZSgpKTooJCgiI3BheW1lbnRDYWxjdWxhdG9yUGF5bWVudENvbnRhaW5lcldpdGhUYXhlcyIpLmhpZGUoKSwkKCIjcGF5bWVudENhbGN1bGF0b3JQYXltZW50Q29udGFpbmVyIikuc2hvdygpLCQoIi5wYXltZW50Q2FsY3VsYXRvclRheGVJbmNsdWRlZCIpLmhpZGUoKSwKJCgiLnBheW1lbnRDYWxjdWxhdG9yVGF4ZU5vdEluY2x1ZGVkIikuc2hvdygpKX0pOyQoIiNwYXltZW50Q2FsY3VsYXRvckNhbGxUb0FjdGlvbkNvbnRhaW5lciBhIikub24oImNsaWNrIixmdW5jdGlvbigpe2dldFBvcENvbnRhaW5TZXR0aW5ncygpLmFscmVhZHlJbml0PSEwO3dpbmRvdy5wYXltZW50U2VsZWN0Q2hhbmdlZCYmKHdpbmRvdy50ZW1wUGF5bWVudFNlbGVjdENoYW5nZWQ9ITApO3dpbmRvdy5wYXltZW50U2VsZWN0Q2hhbmdlZD0hMTt2b2lkIDAhPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi52ZWhpY2xlQ29uZmlndXJhdG9yRFIiKSYmInVuZGVmaW5lZCIhPT10eXBlb2YgbW9kZWxDb25maWcmJm1vZGVsQ29uZmlnLmNoYW5nZVBheW1lbnRQbGFuUG9wdXAoKTskKCIjcGF5bWVudENhbGN1bGF0b3JQb3B1cENvbnRhaW5lciIpLnBvcHVwaXplKCkuY2xvc2UoKX0pOyQoIiNwYXltZW50Q2FsY3VsYXRvclBvcHVwQ29udGFpbmVyIC5jbG9zZS1yZXZlYWwtbW9kYWwiKS5vbigiY2xpY2siLApmdW5jdGlvbigpe3ZvaWQgMCE9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLnZlaGljbGVDb25maWd1cmF0b3JEUiIpJiYidW5kZWZpbmVkIiE9PXR5cGVvZiBtb2RlbENvbmZpZyYmbW9kZWxDb25maWcuY2hhbmdlUGF5bWVudFBsYW5Qb3B1cCgpfSk7JCgiI3BheW1lbnRDYWxjdWxhdG9yVHJpbVNlbGVjdCIpLm9uKCJjaGFuZ2UiLGZ1bmN0aW9uKCl7dmFyIGI9Z2V0UG9wQ29udGFpblNldHRpbmdzKCk7Yi5zdHlsZWlkPSQodGhpcykudmFsKCk7JCgiI2FjdGl2ZVN0eWxlSUQiKS5sZW5ndGgmJiQoIiNhY3RpdmVTdHlsZUlEIikudmFsKGIuc3R5bGVpZCk7cGF5bWVudENhbGN1bGF0b3JQb3B1cEluaXQoKTt1cGRhdGVVcmwoYil9KTskKCJib2R5Iikub24oImNsaWNrIHRhcCIsIiNwYXltZW50Q2FsY3VsYXRvckNvbnRhaW5lciAuZmluYW5jaW5nLW9wdGlvbi5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRXcmFwcGVyICoiLGZ1bmN0aW9uKCl7JCh0aGlzKS5maW5kKCdpbnB1dFtuYW1lPSJzZWxlY3RlZFBheW1lbnQiXScpLnByb3AoImNoZWNrZWQiLAoiY2hlY2tlZCIpLnRyaWdnZXIoImNoYW5nZSIpfSk7JCgiYm9keSIpLm9uKCJjaGFuZ2UiLCcjcGF5bWVudENhbGN1bGF0b3JDb250YWluZXIgaW5wdXRbbmFtZT0ic2VsZWN0ZWRQYXltZW50Il0nLGZ1bmN0aW9uKCl7dmFyIGI9JCh0aGlzKS52YWwoKSxlPSQodGhpcykuYXR0cigiZGF0YS1yYXRldHlwZSIpOyQoJ2lucHV0W25hbWU9InNlbGVjdGVkUGF5bWVudFdpdGhUYXhlcyJdW3ZhbHVlPSInK2IrJyJdW2RhdGEtcmF0ZXR5cGU9IicrZSsnIl0nKS5wcm9wKCJjaGVja2VkIiwhMCk7JCgiI3BheW1lbnRDYWxjdWxhdG9yQ29udGFpbmVyIC5maW5hbmNpbmctb3B0aW9uIikucmVtb3ZlQ2xhc3MoInNlbGVjdGVkIik7JCgnaW5wdXRbbmFtZT0ic2VsZWN0ZWRQYXltZW50V2l0aFRheGVzIl1bdmFsdWU9IicrYisnIl1bZGF0YS1yYXRldHlwZT0iJytlKyciXScpLmNsb3Nlc3QoIi5maW5hbmNpbmctb3B0aW9uIikuYWRkQ2xhc3MoInNlbGVjdGVkIik7JCh0aGlzKS5jbG9zZXN0KCIuZmluYW5jaW5nLW9wdGlvbiIpLmFkZENsYXNzKCJzZWxlY3RlZCIpfSk7CiQoImJvZHkiKS5vbigiY2hhbmdlIiwnI3BheW1lbnRDYWxjdWxhdG9yQ29udGFpbmVyIGlucHV0W25hbWU9InNlbGVjdGVkUGF5bWVudFdpdGhUYXhlcyJdJyxmdW5jdGlvbigpe3ZhciBiPSQodGhpcykudmFsKCksZT0kKHRoaXMpLmF0dHIoImRhdGEtcmF0ZXR5cGUiKTskKCdpbnB1dFtuYW1lPSJzZWxlY3RlZFBheW1lbnQiXVt2YWx1ZT0iJytiKyciXVtkYXRhLXJhdGV0eXBlPSInK2UrJyJdJykucHJvcCgiY2hlY2tlZCIsITApLnRyaWdnZXIoImNoYW5nZSIpfSk7dmFyIGM9ITE7JCgiYm9keSIpLm9uKCJjaGFuZ2UiLCcjcGF5bWVudENhbGN1bGF0b3JDb250YWluZXIgaW5wdXRbbmFtZT0ic2VsZWN0ZWRQYXltZW50Il0nLGZ1bmN0aW9uKCl7dmFyIGI9Z2V0UG9wQ29udGFpblNldHRpbmdzKCksZT0kKCIjcGF5bWVudENhbGN1bGF0b3JQYXltZW50VHlwZSAuYWN0aXZlUGF5bWVudFR5cGUiKS5hdHRyKCJkYXRhLXR5cGUiKSxrPSQodGhpcykudmFsKCksbD0kKCIjcGF5bWVudENhbGN1bGF0b3JJbnRlcnZhbCIpLnZhbCgpLApoPSQoIiNwYXltZW50Q2FsY3VsYXRvckttQWxsb3dhbmNlIikudmFsKCkscj0kKCIjcGF5bWVudENhbGN1bGF0b3JEb3duUGF5bWVudCIpLnZhbCgpPyQoIiNwYXltZW50Q2FsY3VsYXRvckRvd25QYXltZW50IikudmFsKCk6MCxxPSQoIi5wYXltZW50Q2FsY3VsYXRvclRyYWRlSW5WYWx1ZSIpLnZhbCgpPyQoIi5wYXltZW50Q2FsY3VsYXRvclRyYWRlSW5WYWx1ZSIpLnZhbCgpOjA7cj1wYXJzZUludChyKStwYXJzZUludChxKTtyPXIudG9GaXhlZCgwKTtxPWUrIi0iK2srIi0iK2wrIi0iK2grIi0iK3I7cSE9Q29va2llcy5nZXQoInBheW1lbnRDYWxjdWxhdG9yU2VsZWN0ZWRPcHRpb25zIikmJm51bGwhPUNvb2tpZXMuZ2V0KCJwYXltZW50Q2FsY3VsYXRvclNlbGVjdGVkT3B0aW9ucyIpJiYod2luZG93LnBheW1lbnRTZWxlY3RDaGFuZ2VkPSEwLHZvaWQgMCE9Q29va2llcy5nZXQoInBheW1lbnRDYWxjdWxhdG9yU2VsZWN0ZWRPcHRpb25zIikuc3BsaXQoIi0iKVswXSYmInVuZGVmaW5lZCIhPQp0eXBlb2YgbW9kZWxDb25maWcmJnZvaWQgMCE9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLnZlaGljbGVDb25maWd1cmF0b3JEUiIpJiYoYz0hMCxtb2RlbENvbmZpZy5zZXRCTlBWaWV3KGMsZSkpLG51bGwhPUNvb2tpZXMuZ2V0KCJwYXltZW50Q2FsY3VsYXRvclNlbGVjdGVkT3B0aW9ucyIpJiZDb29raWVzLnNldCgicHJldmlvdXNwYXltZW50Q2FsY3VsYXRvclNlbGVjdGVkT3B0aW9ucyIsQ29va2llcy5nZXQoInBheW1lbnRDYWxjdWxhdG9yU2VsZWN0ZWRPcHRpb25zIiksbnVsbCwiLyIpKTtjfHwidW5kZWZpbmVkIj09dHlwZW9mIG1vZGVsQ29uZmlnfHwidW5kZWZpbmVkIj09PXR5cGVvZiBtb2RlbENvbmZpZ3x8dm9pZCAwPT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIudmVoaWNsZUNvbmZpZ3VyYXRvckRSIil8fG1vZGVsQ29uZmlnLnNob3VsZFJlbG9hZEJOUFZpZXdPblBheW1lbnRDaGFuZ2UoYyxlKTtDb29raWVzLnNldCgicGF5bWVudENhbGN1bGF0b3JTZWxlY3RlZE9wdGlvbnMiLApxLG51bGwsIi8iKTt2YXIgdT0kKCJib2R5IikuaGFzQ2xhc3MoIkVOR0xJU0giKT8ibW9udGhzIjoibW9pcyIseT0kKCJib2R5IikuaGFzQ2xhc3MoIkVOR0xJU0giKT8iJCIrcisiIGRvd24gcGF5bWVudCI6cisiICQgY29tcHRhbnQiO3E9JCgiYm9keSIpLmhhc0NsYXNzKCJFTkdMSVNIIik\/InBlciB3ZWVrIGZvciI6InBhciBzZW1haW5lIHBvdXIiO3N3aXRjaChsKXtjYXNlICJ3ZWVrbHkiOnE9JCgiYm9keSIpLmhhc0NsYXNzKCJFTkdMSVNIIik\/InBlciB3ZWVrIGZvciI6InBhciBzZW1haW5lIHBvdXIiO2JyZWFrO2Nhc2UgImJpd2Vla2x5IjpxPSQoImJvZHkiKS5oYXNDbGFzcygiRU5HTElTSCIpPyJwZXIgMiB3ZWVrcyBmb3IiOiJwYXIgMiBzZW1haW5lcyBwb3VyIjticmVhaztjYXNlICJzZW1pbW9udGhseSI6cT0kKCJib2R5IikuaGFzQ2xhc3MoIkVOR0xJU0giKT8idHdpY2UgYSBtb250aCBmb3IiOiIyIGZvaXMgcGFyIG1vaXMgcG91ciI7YnJlYWs7Y2FzZSAibW9udGhseSI6cT0KJCgiYm9keSIpLmhhc0NsYXNzKCJFTkdMSVNIIik\/InBlciBtb250aCBmb3IiOiJwYXIgbW9pcyBwb3VyIn1oPSJsZWFzaW5nIj09PWU\/aCsia20iOiIiO3ZhciBuPSQoImJvZHkiKS5oYXNDbGFzcygiRU5HTElTSCIpPyJsZWFzaW5nIj09PWU\/IkxlYXNpbmciOiJGaW5hbmNpbmciOiJsZWFzaW5nIj09PWU\/IkxvY2F0aW9uIjoiRmluYW5jZW1lbnQiO2IudmVoaWNsZUluZm8mJihlbWFpbEhhbmRsZXIucGF5bWVudFZlaGljbGU9Yi52ZWhpY2xlSW5mby5tYWtlKyIgIisoYi52ZWhpY2xlSW5mby5tb2RlbHx8Yi52ZWhpY2xlSW5mby5DRk1vZGVsTmFtZSkrIiAiK2IudmVoaWNsZUluZm8uQ0ZTdHlsZU5hbWUsZW1haWxIYW5kbGVyLnBheW1lbnRWZWhpY2xlPSQoImJvZHkiKS5oYXNDbGFzcygiRU5HTElTSCIpP2IudmVoaWNsZUluZm8ueWVhcisiICIrZW1haWxIYW5kbGVyLnBheW1lbnRWZWhpY2xlOmVtYWlsSGFuZGxlci5wYXltZW50VmVoaWNsZSsiICIrYi52ZWhpY2xlSW5mby55ZWFyLAplbWFpbEhhbmRsZXIucGF5bWVudFZlaGljbGUrPSIoIituKyIgIitxKyIgIitrKyIgIit1KyIuICIreSsiLiAiK2grIikiLGVtYWlsSGFuZGxlci5tYWtlPWIudmVoaWNsZUluZm8ubWFrZSxlbWFpbEhhbmRsZXIubW9kZWw9Yi52ZWhpY2xlSW5mby5tb2RlbHx8Yi52ZWhpY2xlSW5mby5DRk1vZGVsTmFtZSxlbWFpbEhhbmRsZXIudHJpbT1iLnZlaGljbGVJbmZvLkNGU3R5bGVOYW1lLGVtYWlsSGFuZGxlci55ZWFyPWIudmVoaWNsZUluZm8ueWVhcik7aWYoIk5FV0NBUlMiIT09KCQoIiN0YXJnZXRQYWdlIikudmFsKCl8fCExKSYmIlVTRURDQVJTIiE9PSgkKCIjdGFyZ2V0UGFnZSIpLnZhbCgpfHwhMSkpe3E9JCh0aGlzKS5hdHRyKCJkYXRhLXJlYWxwYXltZW50Iik7Yj0kKHRoaXMpLmF0dHIoImRhdGEtcmF0ZSIpO2g9JCh0aGlzKS5hdHRyKCJkYXRhLXRvdGFsaW50ZXJlc3QiKTt1PSQodGhpcykuYXR0cigiZGF0YS1sdXhlVGF4QW1vdW50Iik7eT0kKHRoaXMpLmF0dHIoImRhdGEtZWZmZWN0aXZlUmF0ZSIpOwpuPSQodGhpcykuYXR0cigiZGF0YS1yYXRldHlwZSIpO3ZhciB4PSQodGhpcykuYXR0cigiZGF0YS10b3RhbENvc3QiKTtjaGFuZ2VQYWdlUGF5bWVudFZhbHVlKHtjdXJyZW50UGF5bWVudDpxLGN1cnJlbnRSYXRlOmIscGF5bWVudFRlcm06ayxwYXltZW50VHlwZTplLHBheW1lbnRJbnRlcnZhbDpsLHBheW1lbnREb3duUGF5bWVudDpyLHRvdGFsSW50ZXJlc3Q6aCxsdXhlVGF4QW1vdW50OnUscmF0ZVR5cGU6bixlZmZlY3RpdmVSYXRlOnksdG90YWxDb3N0Onh9KX15PSIiIT0kKCIjZGlzY2xhaW1lclByaWNlVGV4dCIpLnZhbCgpPyQoIiNkaXNjbGFpbWVyUHJpY2VUZXh0IikudmFsKCk6Iit0eCI7aWYoJCgiLmJucF9wYXltZW50X2NvbnRhaW5lciIpLmxlbmd0aCl7dT0kKCIjYWN0aXZlc2l0ZWxhbmd1YWdlIikudmFsKCl8fCJGUkVOQ0giO3E9JCh0aGlzKS5hdHRyKCJkYXRhLXJlYWxwYXltZW50Iik7Yj0kKHRoaXMpLmF0dHIoImRhdGEtcmF0ZSIpO2g9IjEiPT0kKCIjcm91bmRQYXltZW50IikudmFsKCk\/CjA6MjtuPXBhcnNlRmxvYXQocSkudG9GaXhlZChoKTtuPW4ucmVwbGFjZSgvXC4oWzAtOV0qKS8sZnVuY3Rpb24odCxBKXtyZXR1cm4nPHN1cCBjbGFzcz0icGQiPicrQSsiPC9zdXA+In0pO3E9JCgiI0lOVEVSVkFMX1NIT1JUX1dFRUtMWSIpLnZhbCgpO2g9NTI7c3dpdGNoKGwpe2Nhc2UgIndlZWtseSI6cT0kKCIjSU5URVJWQUxfU0hPUlRfV0VFS0xZIikudmFsKCk7aD01MjticmVhaztjYXNlICJiaXdlZWtseSI6cT0kKCIjSU5URVJWQUxfU0hPUlRfQklXRUVLTFkiKS52YWwoKTtoPTI2O2JyZWFrO2Nhc2UgInNlbWltb250aGx5IjpxPSQoIiNJTlRFUlZBTF9TSE9SVF9TRU1JTU9OVEhMWSIpLnZhbCgpO2g9MjQ7YnJlYWs7Y2FzZSAibW9udGhseSI6cT0kKCIjSU5URVJWQUxfU0hPUlRfTU9OVEhMWSIpLnZhbCgpLGg9MTJ9bD15KyIvIitxOyIxIj09JCgiI3BheW1lbnRDYWxjdWxhdG9yU3RyaWtlUGF5bWVudCIpLnZhbCgpJiYiYmx1ciI9PT0kKCIjcGF5bWVudENhbGN1bGF0b3JTdHJpa2VQYXltZW50T3B0aW9uIikudmFsKCkmJgoobj0nPHNwYW4gY2xhc3M9ImJsdXItcHJpY2UiPicrbisiPC9zcGFuPiIpO3E9RDJDVXRpbHMuRm9ybWF0LnRvUHJpY2Uobik7cj1EMkNVdGlscy5Gb3JtYXQudG9QcmljZShyKSsoIkVOR0xJU0giPT09dT8iIGRvd24iOiIgY29tcHRhbnQiKTtlPSJmaW5hbmNpbmciPT09ZT8iRU5HTElTSCI9PT11P2srIiBtb250aHMgZmluLiI6IkZpbi4gIitrKyIgbW9pcyI6IkVOR0xJU0giPT09dT9rKyIgbW9udGhzIGxlYXNlIjoiTG9jLiAiK2srIiBtb2lzIjtiPXBhcnNlRmxvYXQoYikudG9GaXhlZCgyKSsiJSI7dT1lKyIgLyAiK3IrIiBAICIrYisiOiI7MT09JCgiI2lzRFJTaXRlIikubGVuZ3RoJiYiMSI9PSQoIiNpc0RSU2l0ZSIpLnZhbCgpJiYoaz1wYXJzZUludChwYXJzZUludChrKS8xMipoKSxoPXN0b3JlLmdldCgiaTE4biIpLlBBWU1FTlRTLnRvTG93ZXJDYXNlKCksdT1lKyIgLyAiK2srIiAiK2grIiAvICIrcisiIEAgIitiKyI6Iik7JCgiLmJucF9wYXltZW50X2NvbnRhaW5lciAuYnAtcGF5bWVudC1kZXNjIikuaHRtbCh1KTsKJCgiLmJucF9wYXltZW50X2NvbnRhaW5lciAuYnAtcGF5bWVudC1hbW91bnQiKS5odG1sKHEpOyQoIi5ibnBfcGF5bWVudF9jb250YWluZXIgLmJwLXRheC10eHQiKS50ZXh0KGwpO2s9JCh0aGlzKS5jbG9zZXN0KCIucGF5bWVudENhbGN1bGF0b3JQYXltZW50V3JhcHBlckNvbnRhaW5lciIpOyIxIj09JCgiI2lzbW9iaWxlIikudmFsKCkmJihrPSQodGhpcykuY2xvc2VzdCgiLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFdyYXBwZXJDb250YWluZXIiKS5maW5kKCIucGF5bWVudFRvb2x0aXAiKSk7az1rLmF0dHIoImRhdGEtdG9vbHRpcCIpO2s9U3RyaW5nKGspLnJlcGxhY2UoLyYvZywiJmFtcDsiKS5yZXBsYWNlKC88L2csIiZsdDsiKS5yZXBsYWNlKC8+L2csIiZndDsiKS5yZXBsYWNlKC8iL2csIiZxdW90OyIpO2NoYW5nZUJuUFRvb2xUaXBNZXNzYWdlKGspOyJ1bmRlZmluZWQiIT09dHlwZW9mIG1vZGVsQ29uZmlnJiYobW9kZWxDb25maWcuc2F2ZUNvbmZpZygpLG1vZGVsQ29uZmlnLmNhbGN1bGF0ZUFjY1BheW1lbnRzKCkpfX0pOwokKCJib2R5Iikub24oImNoYW5nZSIsIi5jb25kaXRpb25hbC1yZWJhdGUtY2hlY2tib3giLGZ1bmN0aW9uKCl7aWYoJCgiI3BheW1lbnRDYWxjdWxhdG9yUG9wdXBDb250YWluZXIiKS5pcygiOnZpc2libGUiKXx8JCgiI3BheW1lbnRDYWxjdWxhdG9yQ29udGFpbmVyIikuaXMoIjp2aXNpYmxlIikpImNhc2giPT09JCgiI3BheW1lbnRDYWxjdWxhdG9yUGF5bWVudFR5cGUgLmFjdGl2ZVBheW1lbnRUeXBlIikuYXR0cigiZGF0YS10eXBlIik\/Y2FsY1VwZGF0ZVBheW1lbnRJbmZvKCk6YSgpfSl9ZnVuY3Rpb24gZXNjYXBlSFRNTChhKXtyZXR1cm4gU3RyaW5nKGEpLnJlcGxhY2UoLyYvZywiJmFtcDsiKS5yZXBsYWNlKC88L2csIiZsdDsiKS5yZXBsYWNlKC8+L2csIiZndDsiKS5yZXBsYWNlKC8iL2csIiZxdW90OyIpLnJlcGxhY2UoLycvZywiJiMzOTsiKX0KdmFyIGN0YVBheW1lbnRUZXh0RnI9W10sY3RhUGF5bWVudFRleHRFbj1bXSxjYWxjQ3VyUGF5bWVudD17fSxjdGFQYXltZW50VmFsdWVzPVtdLGNhc2hQcmljZUZvclBhZ2U9bnVsbCxjYWxjVXBkYXRlUGF5bWVudFhocj1udWxsOwpmdW5jdGlvbiB1cGRhdGVVcmwoYSl7dHJ5e2lmKCFhLnZlaGljbGVJbmZvKXJldHVybjt2YXIgZD1hLnZlaGljbGVJbmZvLGM9InVuZGVmaW5lZCIhPXR5cGVvZiBuZXdjYXJEZXRhaWxzP25ld2NhckRldGFpbHMuYWN0aXZlTW9kZWwuc3R5bGVzOmQubW9kZWxKU09OLnN0eWxlcyxiPXdpbmRvdy5wYXJlbnQubG9jYXRpb24uaHJlZi5zcGxpdCgiLyIpLnNsaWNlKDAsLTEpLmpvaW4oIi8iKSxlPWMuZmlsdGVyKGZ1bmN0aW9uKGspe3JldHVybiBrLmlkPT1hLnN0eWxlaWR9KS5wb3AoKX1jYXRjaChrKXtjb25zb2xlLmVycm9yKGspO3JldHVybn1lJiYoYz1lLmVuZ2xpc2hUcmltfHwiIixkPWdldEN1cnJlbnRWZWhpY2xlUGF0aChkKSsiLSIrYy5yZXBsYWNlKC9cc3wtL2csIiAiKSxjLmxlbmd0aCYmd2luZG93LnBhcmVudC5oaXN0b3J5LnB1c2hTdGF0ZSh7fSwiIixiKyIvIitkKyIuaHRtbCIpKX0KZnVuY3Rpb24gY2hhbmdlQm5QVG9vbFRpcE1lc3NhZ2UoYSl7YT0nPHNwYW4gY2xhc3M9InBheW1lbnRUb29sdGlwIGZhbCBmYS1pbmZvLWNpcmNsZSIgZGF0YS10b29sdGlwPSInK2ErJyI+PC9zcGFuPic7JCgiLnBheW1lbnRJbmZvQnViYmxlQm5QIikuaHRtbChhKTt0cnl7dmFyIGQ9JCgiLnBheW1lbnRJbmZvQnViYmxlQm5QIC5wYXltZW50VG9vbHRpcCIpLmF0dHIoImRhdGEtdG9vbHRpcCIpOyQoIi5wYXltZW50SW5mb0J1YmJsZUJuUCAucGF5bWVudFRvb2x0aXAiKS5kYXJrVG9vbHRpcCh7Y29udGVudDpkLGdyYXZpdHk6InNvdXRoIix0aGVtZToibGlnaHQiLHRyaWdnZXI6ImhvdmVyIixhbmltYXRpb246ImZhZGVJbiJ9KX1jYXRjaChjKXt9fQpmdW5jdGlvbiBwb3B1cGl6ZXJPbkNsb3NlKGEsZCl7InBheW1lbnRDYWxjdWxhdG9yUG9wdXBDb250YWluZXIiIT09YS5jdXJyZW50VGFyZ2V0LnBhcmVudEVsZW1lbnQuaWQmJih3aW5kb3cudGVtcFBheW1lbnRTZWxlY3RDaGFuZ2VkJiYod2luZG93LnRlbXBQYXltZW50U2VsZWN0Q2hhbmdlZD0hMSx3aW5kb3cucGF5bWVudFNlbGVjdENoYW5nZWQ9ITApLCQoIiNwYXltZW50Q2FsY3VsYXRvclBvcHVwQ29udGFpbmVyIikucG9wdXBpemUoKS5vcGVuKDEpLCQoIi5yZXZlYWwtbW9kYWwiKS5vZmYoInBvcHVwaXplci5jbG9zZSIscG9wdXBpemVyT25DbG9zZSkpfQpmdW5jdGlvbiBnZXRQb3BDb250YWluU2V0dGluZ3MoKXt2YXIgYT0kKCIjcGF5bWVudENhbGN1bGF0b3JQb3B1cENvbnRhaW5lciIpLmRhdGEoInBvcHVwU2V0dGluZ3MiKTthLm5vTW90b2luc2lnaHRMZWFzZVBheW1lbnRzPSExO2Eubm9Nb3RvaW5zaWdodEZpbmFuY2VQYXltZW50cz0hMTtpZigidW5kZWZpbmVkIj09PXR5cGVvZiBhKXJldHVybiExOyJ1bmRlZmluZWQiIT10eXBlb2Ygc2VhcmNoRGV0YWlscyYmc2VhcmNoRGV0YWlscy52ZWhpY2xlPyhhLnBheW1lbnRUeXBlPSIxIj09KHNlYXJjaERldGFpbHMudmVoaWNsZS5ub01vdG9pbnNpZ2h0TGVhc2VQYXltZW50c3x8ITEpPyJmaW5hbmNlIjphLnBheW1lbnRUeXBlLGEucGF5bWVudFR5cGU9IjEiPT0oc2VhcmNoRGV0YWlscy52ZWhpY2xlLm5vTW90b2luc2lnaHRQYXltZW50fHwhMSk\/ImxlYXNlIjphLnBheW1lbnRUeXBlLGEubm9Nb3RvaW5zaWdodExlYXNlUGF5bWVudHM9IjEiPT0oc2VhcmNoRGV0YWlscy52ZWhpY2xlLm5vTW90b2luc2lnaHRMZWFzZVBheW1lbnRzfHwKITEpPyEwOiExLGEubm9Nb3RvaW5zaWdodEZpbmFuY2VQYXltZW50cz0iMSI9PShzZWFyY2hEZXRhaWxzLnZlaGljbGUubm9Nb3RvaW5zaWdodFBheW1lbnR8fCExKT8hMDohMSk6KGEucGF5bWVudFR5cGU9IjEiPT0oYS5ub0xlYXNlfHwhMSk\/ImZpbmFuY2UiOmEucGF5bWVudFR5cGUsYS5wYXltZW50VHlwZT0iMSI9PShhLm5vRmluYW5jZXx8ITEpPyJsZWFzZSI6YS5wYXltZW50VHlwZSxhLm5vTW90b2luc2lnaHRMZWFzZVBheW1lbnRzPSIxIj09KGEubm9MZWFzZXx8ITEpPyEwOiExLGEubm9Nb3RvaW5zaWdodEZpbmFuY2VQYXltZW50cz0iMSI9PShhLm5vRmluYW5jZXx8ITEpPyEwOiExKTtyZXR1cm4gYX0KZnVuY3Rpb24gY2hhbmdlUGFnZVBheW1lbnRWYWx1ZShhKXt2YXIgZD1hLmN1cnJlbnRQYXltZW50LGM9YS5jdXJyZW50UmF0ZSxiPWEucGF5bWVudFRlcm0sZT1hLnBheW1lbnRUeXBlLGs9YS5wYXltZW50SW50ZXJ2YWwsbD1hLnBheW1lbnREb3duUGF5bWVudCxoPWEudG90YWxJbnRlcmVzdCxyPWEubHV4ZVRheEFtb3VudCxxPWEucmF0ZVR5cGUsdT1hLmVmZmVjdGl2ZVJhdGUseT1hLnRvdGFsQ29zdCxuPSQoImJvZHkiKS5oYXNDbGFzcygiRU5HTElTSCIpPyJFTkdMSVNIIjoiRlJFTkNIIix4PWdldFBvcENvbnRhaW5TZXR0aW5ncygpLHQ9IjEiPT0kKCIjcGF5bWVudENhbGN1bGF0b3JSb3VuZFBheW1lbnQiKS52YWwoKT8wOjIsQT0yPT10P01hdGguZmxvb3IocGFyc2VGbG9hdChkKSkudG9GaXhlZCgwKTpwYXJzZUZsb2F0KGQpLnRvRml4ZWQoMCk7ZD1wYXJzZUZsb2F0KGQpLnRvRml4ZWQodCk7dD1kLnNwbGl0KCIuIilbMV18fCIiO2Q9ZC5yZXBsYWNlKC9cLihbMC05XSopLywKZnVuY3Rpb24oQixFKXtyZXR1cm4nPHN1cCBjbGFzcz0icGQiPicrRSsiPC9zdXA+In0pOyIxIj09JCgiI3BheW1lbnRDYWxjdWxhdG9yU3RyaWtlUGF5bWVudCIpLnZhbCgpJiYiYmx1ciI9PT0kKCIjcGF5bWVudENhbGN1bGF0b3JTdHJpa2VQYXltZW50T3B0aW9uIikudmFsKCkmJihkPSc8c3BhbiBjbGFzcz0iYmx1ci1wcmljZSI+JytkKyI8L3NwYW4+Iik7dmFyIHo9RDJDVXRpbHMuRm9ybWF0LnRvUHJpY2UoZCksZj1kKyIkIix3PSIkIitkLHY9ImxlYXNpbmciPT09ZT8iTG9jYXRpb24iOiJGaW5hbmNlbWVudCIscD0ibGVhc2luZyI9PT1lPyJMZWFzaW5nIjoiRmluYW5jaW5nIixtPWMrIiUiLGc9IiIhPSQoIiNkaXNjbGFpbWVyUHJpY2VUZXh0IikudmFsKCk\/JCgiI2Rpc2NsYWltZXJQcmljZVRleHQiKS52YWwoKToiK3R4IixEPWcrIi9tb2lzIixDPWcrIi9tdGgiO3N3aXRjaChrKXtjYXNlICJ3ZWVrbHkiOkQ9ZysiL3NlbSI7Qz1nKyIvd2VlayI7YnJlYWs7Y2FzZSAiYml3ZWVrbHkiOkQ9CmcrIi8yc2VtIjtDPWcrIi8yd2VlayI7YnJlYWs7Y2FzZSAic2VtaW1vbnRobHkiOkQ9ZysiL2JpbWVuc3VlbCI7Qz1nKyIvc2VtaW1vbnRobHkiO2JyZWFrO2RlZmF1bHQ6RD1nKyIvbW9pcyIsQz1nKyIvbW9udGgifXZhciBGPSIxIj09JCgiI3BheW1lbnRDYWxjdWxhdG9yU3RyaWtlUGF5bWVudCIpLnZhbCgpPyJzY3JhdGNoIj09PSQoIiNwYXltZW50Q2FsY3VsYXRvclN0cmlrZVBheW1lbnRPcHRpb24iKS52YWwoKT8ic3RyaWtlLXByaWNlLWJsYWNrIjoiIjoiIjtnPUQyQ1V0aWxzLkZvcm1hdC50b1ByaWNlKGwpKyIgY29tcHRhbnQiO3ZhciBKPUQyQ1V0aWxzLkZvcm1hdC50b1ByaWNlKGwpKyIgZG93biBwYXltZW50IjtsPXYrIiAiK2IrIiBtb2lzIjtwPXArIiAiK2IrIiBtb250aHMiO3o9JzxzcGFuIGNsYXNzPSJ0eHQtcGF5bWVudCAnK0YrJyI+Jyt6Kyc8L3NwYW4+IEAgPHNwYW4gY2xhc3M9InR4dC1wYXltZW50Ij4nK20rIjwvc3Bhbj4iOzA8dS1jJiYoeis9Zm9ybWF0RWZmZWN0aXZlUmF0ZVRleHQodSwKJyBjbGFzcz0idHh0LXBheW1lbnQiICcpKTt1PSgiRU5HTElTSCI9PT1uP0M6RCkrIiAiKygiRU5HTElTSCI9PT1uP0o6ZykrKCIxIj09JCgiI2lzbW9iaWxlIikudmFsKCk\/IiI6JyA8c3BhbiBzdHlsZT0iZm9udC13ZWlnaHQ6NzAwO2NvbG9yOiMwMDA7IiBjbGFzcz0idmRwSW5mb1Rvb2x0aXAgZmFyIGZhLWluZm8tY2lyY2xlIj48L3NwYW4+Jyk7JCgiLnBheW1lbnRXcmFwcGVyIC5wYXltZW50TGluZTIsIC5wYXltZW50V3JhcHBlck1vYmlsZVZEUCAucGF5bWVudExpbmUxIikuaHRtbCgiRU5HTElTSCI9PT1uP3A6bCk7JCgiLnBheW1lbnRXcmFwcGVyIC5wYXltZW50TGluZTEsIC5wYXltZW50V3JhcHBlck1vYmlsZVZEUCAucGF5bWVudExpbmUyIikuaHRtbCh6KTskKCIucGF5bWVudFdyYXBwZXIgLnBheW1lbnRMaW5lMywgLnBheW1lbnRXcmFwcGVyTW9iaWxlVkRQIC5wYXltZW50TGluZTMiKS5odG1sKHUpO2c9ej0iIjtjYWxjQ3VyUGF5bWVudC5jdXJyZW50UGF5bWVudCYmCmNhbGNDdXJQYXltZW50LmN1cnJlbnRQYXltZW50Lmxlbmd0aCYmKGc9Y2FsY0N1clBheW1lbnQuY3VycmVudFBheW1lbnRbMF0udG90YWwsej1gQWZmaWNow4PCqSDDg8KgICR7Z30kYCxnPWBMaXN0ZWQgYXQgJCR7Z31gKTtjdGFQYXltZW50VGV4dEZyPVtgJHtmfSAke0R9YCxgJHtsfSBAICR7bX1gLGAke3p9YF07Y3RhUGF5bWVudFRleHRFbj1bYCR7d30gJHtDfWAsYCR7cH0gQCAke219YCxgJHtnfWBdO2N0YVBheW1lbnRWYWx1ZXM9W2EuY3VycmVudFBheW1lbnQsYyxiLGtdO3dpbmRvdy5wYXJlbnQuQU1QJiZ3aW5kb3cucGFyZW50LkFNUC5zZXRTdGF0ZSh7U1NSX1NUQVRFOntsZWFzZVRlcm1UZXh0OiJFTkdMSVNIIj09PW4\/cDpsLGxlYXNlUGF5bWVudFR4dDpBLGxlYXNlUGF5bWVudERlY2ltYWw6dCxsZWFzZVJhdGU6bSxsZWFzZVRheFRleHQ6dX19KTtjYWxjQ3VyUGF5bWVudC5jdXJUZXJtPWI7Y2FsY0N1clBheW1lbnQuY3VyUmF0ZT1jO2NhbGNDdXJQYXltZW50LmN1ckludGVydmFsPQprO2NhbGNDdXJQYXltZW50LnRheFRleHRGcj1EO2NhbGNDdXJQYXltZW50LnRheFRleHRFbj1DO2E9KCQoImJvZHkiKS5oYXNDbGFzcygiRU5HTElTSCIpPyIvZW4iOiIvZnIiKSsiL2FqYXgvZ2V0UGF5bWVudFRvb2x0aXBCeVN0eWxlSUQ\/d3N3aWR0aD0wIjtlPSJsZWFzaW5nIj09ZT8ibGVhc2UiOiJmaW5hbmNlIjtuPWdldE9wdGlvbnNBbW91bnQoeCk7QT14Lmhhc093blByb3BlcnR5KCJub1RyaW1TZWxlY3QiKSYmInRydWUiPT14Lm5vVHJpbVNlbGVjdHx8InVzZWRjYXJzLmh0bWwiPT09JCgiI1BBR0VJRCIpLnZhbCgpfHwiY2FyZGV0YWlsLmh0bWwiPT09JCgiI1BBR0VJRCIpLnZhbCgpO3Q9eC5oYXNPd25Qcm9wZXJ0eSgic3RvY2tOdW1iZXIiKT94LnN0b2NrTnVtYmVyOiIiO2Y9eC5oYXNPd25Qcm9wZXJ0eSgidmluIik\/eC52aW46IiI7dz1nZXRBY2Nlc3Nvcmllc0Ftb3VudCh4KTttPWdldFNlbGVjdGVkQWNjZXNzb3JpZXMoeCk7RD1nZXRQcm90ZWN0aW9uUGxhbnNBbW91bnQoeCk7CmxldCBMPVtdO2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5jb25kaXRpb25hbC1yZWJhdGUtY2hlY2tib3giKS5mb3JFYWNoKGZ1bmN0aW9uKEIpe0IuY2hlY2tlZCYmKEI9Qi5nZXRBdHRyaWJ1dGUoImRhdGEtY29uZGl0aW9uYWwtcmViYXRlLWlkIikpJiZMLnB1c2goQil9KTtBJiYhdCYmKEM9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBob25lc3RvY2tudW1iZXIiKSkmJih0PUMudmFsdWV8fCIiKTtBJiYhZiYmKEM9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBob25ldmluIikpJiYoZj1DLnZhbHVlfHwiIik7JC5hamF4KHt1cmw6YSx0eXBlOiJQT1NUIixkYXRhVHlwZToiSFRNTCIsZGF0YTp7c3R5bGVpZDp4LnN0eWxlaWQsdHlwZTplLHBheW1lbnQ6cGFyc2VGbG9hdChkKSx0ZXJtOnBhcnNlSW50KGIpLHJhdGU6cGFyc2VGbG9hdChjKSxpbnRlcnZhbDprLG9wdGlvbnM6bix0b3RhbEludGVyZXN0OmgsaXNJbnZlbnRvcnk6QSxzbjp0LHZpbjpmLGx1eGVUYXhBbW91bnQ6ciwKcmF0ZV90eXBlOnEsdG90YWxDb3N0OnksY29uZGl0aW9uYWxSZWJhdGVJZHM6TC5qb2luKCIsIiksYWNjZXNzb3JpZXM6dyxzZWxlY3RlZEFjY2Vzc29yaWVzOm0scHJvdGVjdGlvblBsYW5zOkR9LGJlZm9yZVNlbmQ6ZnVuY3Rpb24oQil7dHJ5e2xldCBFPSQoIm1ldGFbbmFtZT0nY3NyZi1kb21haW4tY2hlY2snXSIpO0UubGVuZ3RoJiZCLnNldFJlcXVlc3RIZWFkZXIoImNzcmYtZG9tYWluLWNoZWNrIixFLmF0dHIoImNvbnRlbnQiKSl9Y2F0Y2goRSl7Y29uc29sZS5lcnJvcihCKX19LHN1Y2Nlc3M6ZnVuY3Rpb24oQil7JCgiI2Rhcmt0b29sdGlwLXBheW1lbnRXcmFwcGVyLCAjZGFya3Rvb2x0aXAtdmRwUGF5bWVudFRvb2x0aXAsICNkYXJrdG9vbHRpcC12ZHBJbmZvVG9vbHRpcCwgI2Rhcmt0b29sdGlwLXZkcFVzZWRJbmZvVG9vbHRpcCIpLnJlbW92ZSgpO3ZhciBFPSQoIi5uZXdWZHBBY3Rpb25zIikuaGFzQ2xhc3MoIndlc3QiKT8id2VzdCI6JCgiLnVzZWRWZHBBY3Rpb25zIikuaGFzQ2xhc3MoIndlc3QiKT8KIndlc3QiOiJlYXN0IjskKCIudmRwUGF5bWVudFRvb2x0aXAsIC5wYXltZW50V3JhcHBlciAudmRwSW5mb1Rvb2x0aXAsIC5wYXltZW50V3JhcHBlciAudmRwVXNlZEluZm9Ub29sdGlwIikuZGFya1Rvb2x0aXAoe2NvbnRlbnQ6QixncmF2aXR5OkUsdGhlbWU6ImxpZ2h0Iix0cmlnZ2VyOiJob3ZlciIsYW5pbWF0aW9uOiJmbGlwSW4ifSl9fSl9CmZ1bmN0aW9uIGdldEN1cnJlbnRWZWhpY2xlUGF0aChhKXt2YXIgZD1bZDJjbWVkaWEudXJsLnNhbml0aXplKGEubWFrZSksZDJjbWVkaWEudXJsLnNhbml0aXplKGEubW9kZWwpLGQyY21lZGlhLnVybC5zYW5pdGl6ZShhLnllYXIpXS5qb2luKCItIik7IkVOR0xJU0giPT09KCQoIiNhY3RpdmVzaXRlbGFuZ3VhZ2UiKS52YWwoKXx8IkZSRU5DSCIpJiYoZD1bZDJjbWVkaWEudXJsLnNhbml0aXplKGEubWFrZSksZDJjbWVkaWEudXJsLnNhbml0aXplKGEubW9kZWwpLGQyY21lZGlhLnVybC5zYW5pdGl6ZShhLnllYXIpXS5qb2luKCItIikpO3JldHVybiBkfQpmdW5jdGlvbiBzaG93UGF5bWVudHMoYSxkLGMsYil7JCgiI3BheW1lbnRDYWxjdWxhdG9yUGF5bWVudENvbnRhaW5lciIpLmh0bWwoIiIpOyQoIiNwYXltZW50Q2FsY3VsYXRvclBheW1lbnRDb250YWluZXJXaXRoVGF4ZXMiKS5odG1sKCIiKTt2YXIgZT0iMSI9PSQoIiNwYXltZW50Q2FsY3VsYXRvclJvdW5kUGF5bWVudCIpLnZhbCgpPzA6MjsiMSI9PSQoIiNwYXltZW50Q2FsY3VsYXRvclN0cmlrZVBheW1lbnQiKS52YWwoKSYmJCgiI3BheW1lbnRDYWxjdWxhdG9yU3RyaWtlUGF5bWVudE9wdGlvbiIpLnZhbCgpO3ZhciBrPVtdLGw9JCgiI29lbUNlcnRpZmljYXRpb24iKS52YWwoKXx8MDsiZmluYW5jZSI9PWFbMF0udHlwZSYmYVswXS5kb3ducGF5bWVudD5iLm1heERvd25GaW5hbmNlPygkKCIjcGF5bWVudENhbGN1bGF0b3JEb3duUGF5bWVudEVycm9yTWVzc2FnZSIpLnNob3coKSwkKCIjcGF5bWVudENhbGN1bGF0b3JEb3duUGF5bWVudEVycm9yTWVzc2FnZUZpbmFuY2UiKS5zaG93KCksCiQoIiNwYXltZW50Q2FsY3VsYXRvckRvd25QYXltZW50RXJyb3JNZXNzYWdlTGVhc2UiKS5oaWRlKCksJCgiI3BheW1lbnRDYWxjdWxhdG9yUGF5bWVudENvbnRhaW5lciIpLmhpZGUoKSwkKCIjcGF5bWVudENhbGN1bGF0b3JQYXltZW50Q29udGFpbmVyV2l0aFRheGVzIikuaGlkZSgpLCQoIiNwYXltZW50Q2FsY3VsYXRvck5vdGljZUNvbnRhaW5lciIpLnByb3AoImhpZGRlbiIsITApKToibGVhc2UiPT1hWzBdLnR5cGUmJmFbMF0uZG93bnBheW1lbnQ+Yi5tYXhEb3duPygkKCIjcGF5bWVudENhbGN1bGF0b3JEb3duUGF5bWVudEVycm9yTWVzc2FnZSIpLnNob3coKSwkKCIjcGF5bWVudENhbGN1bGF0b3JEb3duUGF5bWVudEVycm9yTWVzc2FnZUZpbmFuY2UiKS5oaWRlKCksJCgiI3BheW1lbnRDYWxjdWxhdG9yRG93blBheW1lbnRFcnJvck1lc3NhZ2VMZWFzZSIpLnNob3coKSwkKCIjcGF5bWVudENhbGN1bGF0b3JQYXltZW50Q29udGFpbmVyIikuaGlkZSgpLCQoIiNwYXltZW50Q2FsY3VsYXRvclBheW1lbnRDb250YWluZXJXaXRoVGF4ZXMiKS5oaWRlKCksCiQoIiNwYXltZW50Q2FsY3VsYXRvck5vdGljZUNvbnRhaW5lciIpLnByb3AoImhpZGRlbiIsITApKTooJCgiI3BheW1lbnRDYWxjdWxhdG9yRG93blBheW1lbnRFcnJvck1lc3NhZ2UiKS5oaWRlKCksJCgiI3BheW1lbnRDYWxjdWxhdG9yRG93blBheW1lbnRFcnJvck1lc3NhZ2VGaW5hbmNlIikuaGlkZSgpLCQoIiNwYXltZW50Q2FsY3VsYXRvckRvd25QYXltZW50RXJyb3JNZXNzYWdlTGVhc2UiKS5oaWRlKCksJCgiI3BheW1lbnRDYWxjdWxhdG9yTm90aWNlQ29udGFpbmVyIikucHJvcCgiaGlkZGVuIiwhMSksJCgiI3BheW1lbnRDYWxjdWxhdG9ySW5jbHVkZVRheENoZWNrIikuaXMoIjpjaGVja2VkIik\/KCQoIiNwYXltZW50Q2FsY3VsYXRvclBheW1lbnRDb250YWluZXJXaXRoVGF4ZXMiKS5zaG93KCksJCgiI3BheW1lbnRDYWxjdWxhdG9yUGF5bWVudENvbnRhaW5lciIpLmhpZGUoKSk6KCQoIiNwYXltZW50Q2FsY3VsYXRvclBheW1lbnRDb250YWluZXIiKS5zaG93KCksJCgiI3BheW1lbnRDYWxjdWxhdG9yUGF5bWVudENvbnRhaW5lcldpdGhUYXhlcyIpLmhpZGUoKSkpOwo1PGEubGVuZ3RoP2EuZm9yRWFjaChmdW5jdGlvbih2KXsoMD09di50ZXJtJTEyfHw2ND09di50ZXJtfHw0MD09YyYmNTE9PXYudGVybXx8MjA9PWMmJlsyNywzMCwzOSw0Ml0uaW5jbHVkZXModi50ZXJtKXx8WzE2LDIxXS5pbmNsdWRlcyhjKXx8NDI9PXYudGVybSYmMTAxND09bHx8WzMwLDQyXS5pbmNsdWRlcyh2LnRlcm0pJiZbNDcxNTYyLDQ3MTU2Myw0NzE1NjRdLmluY2x1ZGVzKHBhcnNlSW50KHNldHRpbmdzLnN0eWxlaWQpKXx8Mjc9PXYudGVybSYmMjc9PWN8fDUyPT12LnRlcm0mJjM5PT1jKSYmay5wdXNoKHYpfSk6az1hO3ZhciBoPXt9LHI9ITE7ay5mb3JFYWNoKGZ1bmN0aW9uKHYscCl7T2JqZWN0Lmhhc093bihoLHYudGVybSk\/cj0hMDpoW3YudGVybV09e307aFt2LnRlcm1dW3YucmF0ZV90eXBlXT1wfSk7dmFyIHE9W10sdT0hMSx5PSExO0Nvb2tpZXMuZ2V0KCJwYXltZW50Q2FsY3VsYXRvclNlbGVjdGVkT3B0aW9ucyIpJiYodT1Db29raWVzLmdldCgicGF5bWVudENhbGN1bGF0b3JTZWxlY3RlZE9wdGlvbnMiKS5zcGxpdCgiLSIpWzFdfHwKITEseT1Db29raWVzLmdldCgicGF5bWVudENhbGN1bGF0b3JTZWxlY3RlZE9wdGlvbnMiKS5zcGxpdCgiLSIpWzBdfHwhMSk7aWYoYVswXSYmImxlYXNlIj09YVswXS50eXBlJiYidW5kZWZpbmVkIiE9PXR5cGVvZiBhWzBdLmttX2FsbG93YW5jZSl7dmFyIG49MDxiLmN1cnJlbnRQYXltZW50WzBdLmttX2FsbG93YW5jZT9iLmN1cnJlbnRQYXltZW50WzBdLmttX2FsbG93YW5jZToyRTQ7JCgiI3BheW1lbnRDYWxjdWxhdG9yS21BbGxvd2FuY2UiKS52YWwobil9bGV0IHg9Yi50b3RhbEluY2VudGl2ZSx0PXI\/JCgiI0xPV0VTVFBBWU1FTlRfTEFCRUwiKS52YWwoKToiIixBPXI\/JCgiI0xPV0VTVFJBVEVfTEFCRUwiKS52YWwoKToiIjt2YXIgej0wOyQoIiNwYXltZW50Q2FsY3VsYXRvck5vdGljZUNvbnRhaW5lciAuanMtdGVtcEttQWxsb3dlZCIpLnJlbW92ZSgpOyQuZWFjaChrLGZ1bmN0aW9uKHYscCl7aWYoIXEuaW5jbHVkZXMocC50ZXJtKSl7cS5wdXNoKHAudGVybSk7dmFyIG09CiJzdGFuZGFyZCI9PXAucmF0ZV90eXBlfHwyPk9iamVjdC5rZXlzKGhbcC50ZXJtXSkubGVuZ3RoP3A6a1toW3AudGVybV0uc3RhbmRhcmRdLGc9Mj09T2JqZWN0LmtleXMoaFtwLnRlcm1dKS5sZW5ndGg\/a1toW3AudGVybV0uc3VidmVudGVkXTohMSxEPTI9PU9iamVjdC5rZXlzKGhbcC50ZXJtXSkubGVuZ3RoP2hbcC50ZXJtXS5zdWJ2ZW50ZWQ6ITEsQz1wLnRlcm0sRj1wLmRvd25wYXltZW50LnRvRml4ZWQoMCksSj1tLnBheW1lbnQudG9GaXhlZChlKSxMPW0ucGF5bWVudC50b0ZpeGVkKGUpO0o9Si5yZXBsYWNlKC9cLihbMC05XSopLyxmdW5jdGlvbihPLEspe3JldHVybic8c3VwIGNsYXNzPSJwZCI+JytLKyI8L3N1cD4ifSk7dmFyIEI9bS5wYXltZW50V2l0aFRheGVzLnRvRml4ZWQoZSksRT1tLnBheW1lbnRXaXRoVGF4ZXMudG9GaXhlZChlKTtCPUIucmVwbGFjZSgvXC4oWzAtOV0qKS8sZnVuY3Rpb24oTyxLKXtyZXR1cm4nPHN1cCBjbGFzcz0icGQiPicrSysiPC9zdXA+In0pOwp2YXIgVD1tLnJhdGUsZGE9InBheW1lbnQiK3Y7dj0icGF5bWVudCIrdisid2l0aFRheGVzIjtDPSQoImJvZHkiKS5oYXNDbGFzcygiRU5HTElTSCIpPyI8c3Bhbj4iK0MrIjwvc3Bhbj4gbW9udGgiOiI8c3Bhbj4iK0MrIjwvc3Bhbj4gbW9pcyI7Rj1gPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+JHtGfTwvc3Bhbj5gKygkKCJib2R5IikuaGFzQ2xhc3MoIkVOR0xJU0giKT8iIGRvd24gcGF5bWVudCI6IiBjb21wdGFudCIpO3ZhciBVPSIiIT0kKCIjZGlzY2xhaW1lclByaWNlVGV4dCIpLnZhbCgpPyI8ZGl2PiIrJCgiI2Rpc2NsYWltZXJQcmljZVRleHQiKS52YWwoKSsiPC9kaXY+IjoiK3R4IixNPW0uY2FsY3VsYXRlZEVmZmVjdGl2ZVJhdGU\/bS5jYWxjdWxhdGVkRWZmZWN0aXZlUmF0ZTowLFA9IiI7MDxwYXJzZUZsb2F0KE0pLW0ucmF0ZSYmKFArPWZvcm1hdEVmZmVjdGl2ZVJhdGVUZXh0KE0sIiIsJ2NsYXNzPSItZnMxMCInKSk7dmFyIFY9bS50b3RhbE9ibGlnYXRpb25BbW91bnQ\/Cm0udG90YWxPYmxpZ2F0aW9uQW1vdW50OjAsVz0nZGF0YS10b29sdGlwPSInK20udG9vbHRpcCsnIicsWD0nZGF0YS10b29sdGlwPSInK20udG9vbHRpcFdpdGhUYXhlcysnIicsRyxlYT1udWxsIT0oRz1tLm0yZF9maW5hbmNlKT9HOng7Rz0ic2luZ2xlLWNvbHVtbiI7cD11JiZ1PT1wLnRlcm0mJnkmJnk9PSQoIiNwYXltZW50Q2FsY3VsYXRvclBheW1lbnRUeXBlIC5hY3RpdmVQYXltZW50VHlwZSIpLmF0dHIoImRhdGEtdHlwZSIpPyJjaGVja2VkIjoiIjt2YXIgUT0ic21hbGwtYm94IixIPSIiLEk9IiI7aWYoZyl7Rz0ibGVmdC1zZWN0aW9uIjtRPSIiO0g9Zy5wYXltZW50LnRvRml4ZWQoZSk7bGV0IE89Zy5wYXltZW50LnRvRml4ZWQoZSk7SD1ILnJlcGxhY2UoL1wuKFswLTldKikvLGZ1bmN0aW9uKGZhLFIpe3JldHVybic8c3VwIGNsYXNzPSJwZCI+JytSKyI8L3N1cD4ifSk7ST1nLnBheW1lbnRXaXRoVGF4ZXMudG9GaXhlZChlKTtsZXQgSz1nLnBheW1lbnRXaXRoVGF4ZXMudG9GaXhlZChlKTsKST1JLnJlcGxhY2UoL1wuKFswLTldKikvLGZ1bmN0aW9uKGZhLFIpe3JldHVybic8c3VwIGNsYXNzPSJwZCI+JytSKyI8L3N1cD4ifSk7dmFyIFk9Zy5yYXRlLnRvRml4ZWQoMiksaGE9InBheW1lbnQiK0Q7RD0icGF5bWVudCIrRCsid2l0aFRheGVzIjtsZXQgTj1nLmNhbGN1bGF0ZWRFZmZlY3RpdmVSYXRlP2cuY2FsY3VsYXRlZEVmZmVjdGl2ZVJhdGU6MCxTPSIiOzA8cGFyc2VGbG9hdChOKS1nLnJhdGUmJihTKz1mb3JtYXRFZmZlY3RpdmVSYXRlVGV4dChOLCIiLCdjbGFzcz0iLWZzMTAiJykpO2xldCBaPWcudG90YWxPYmxpZ2F0aW9uQW1vdW50P2cudG90YWxPYmxpZ2F0aW9uQW1vdW50OjAsYWE9J2RhdGEtdG9vbHRpcD0iJytnLnRvb2x0aXArJyInLGJhPSdkYXRhLXRvb2x0aXA9IicrZy50b29sdGlwV2l0aFRheGVzKyciJyxjYT1nLm0yZF9maW5hbmNlO0g9J1x0PGRpdiBpZD0iJytoYSsnIiBjbGFzcz0icmlnaHQtc2VjdGlvbiBwYXltZW50Q2FsY3VsYXRvclBheW1lbnRXcmFwcGVyQ29udGFpbmVyIiAnKwphYSsnPlx0XHQ8ZGl2IGNsYXNzPSJsb3dlc3QtcmF0ZSI+JytZKyclIDxpIGNsYXNzPSJmYXMgZmEtaW5mby1jaXJjbGUgaW5mby1pY29uIHBheW1lbnRUb29sdGlwIHJpZ2h0VG9vbHRpcCIgJythYSsiPjwvaT4iK1MrJzwvZGl2Plx0XHQ8ZGl2IGNsYXNzPSJhY3R1YWwtcGF5bWVudCI+PHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+JytIKyc8L3NwYW4+PC9kaXY+XHRcdDxkaXYgY2xhc3M9ImRldGFpbHNUYXgiPicrVSsnPC9kaXY+XHRcdDxkaXYgY2xhc3M9InJhZGlvLWNvbnRhaW5lciI+XHRcdFx0PGlucHV0XHRcdFx0XHRcdHR5cGU9InJhZGlvIlx0XHRcdFx0XHRuYW1lPSJzZWxlY3RlZFBheW1lbnQiXHRcdFx0XHRcdHZhbHVlPSInK2cudGVybSsnIlx0XHRcdFx0XHRkYXRhLWJhc2VwYXltZW50PSInK2cucGF5bWVudCsnIlx0XHRcdFx0XHRkYXRhLXJlYWxwYXltZW50PSInK2cucGF5bWVudCsnIlx0XHRcdFx0XHRkYXRhLXJhdGV0eXBlPSInK2cucmF0ZV90eXBlKyciXHRcdFx0XHRcdGRhdGEtZGlzcGxheWVkcGF5bWVudD0iJysKTysnIlx0XHRcdFx0XHRkYXRhLXJlc2lkdWFsPSInK2cucmVzaWR1YWwrJyJcdFx0XHRcdFx0ZGF0YS10b3RhbGludGVyZXN0PSInK2cudG90YWxJbnRlcmVzdCsnIlx0XHRcdFx0XHRkYXRhLWx1eGVUYXhBbW91bnQ9IicrZy5sdXhlVGF4QW1vdW50KyciXHRcdFx0XHRcdGRhdGEtZWZmZWN0aXZlUmF0ZT0iJytOKyciXHRcdFx0XHRcdGRhdGEtdG90YWxDb3N0PSInK1orJyJcdFx0XHRcdFx0ZGF0YS1yYXRlPSInK2cucmF0ZSsnIiAgICAgICAgICAgICAgICAgZGF0YS1yZXNpZHVhbD0iJytnLnJlc2lkdWFsVmFsdWUrJyIgICAgICAgICAgICAgICAgIGRhdGEtdG90YWxpbmNlbnRpdmU9IicrY2ErJyIgICAgICAgICAgICAgICAgIGRhdGEtZ3N0PSIwIiAgICAgICAgICAgICAgICAgZGF0YS1oc3Q9IjAiICAgICAgICAgICAgICAgICBkYXRhLXBzdD0iMCJcdFx0XHRcdD5cdFx0XHQ8bGFiZWw+JytBKyI8L2xhYmVsPlx0XHQ8L2Rpdj5cdDwvZGl2PiI7ST0nXHQ8ZGl2IGlkPSInK0QrCiciIGNsYXNzPSJyaWdodC1zZWN0aW9uIHBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFdyYXBwZXJDb250YWluZXIiICcrYmErJz5cdFx0PGRpdiBjbGFzcz0ibG93ZXN0LXJhdGUiPicrWSsnJSA8aSBjbGFzcz0iZmFzIGZhLWluZm8tY2lyY2xlIGluZm8taWNvbiBwYXltZW50VG9vbHRpcCByaWdodFRvb2x0aXAiICcrYmErIj48L2k+IitTKyc8L2Rpdj5cdFx0PGRpdiBjbGFzcz0iYWN0dWFsLXBheW1lbnQiPjxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPicrSSsnPC9zcGFuPjwvZGl2Plx0XHQ8ZGl2IGNsYXNzPSJyYWRpby1jb250YWluZXIiPlx0XHRcdDxpbnB1dFx0XHRcdFx0XHR0eXBlPSJyYWRpbyJcdFx0XHRcdFx0bmFtZT0ic2VsZWN0ZWRQYXltZW50V2l0aFRheGVzIlx0XHRcdFx0XHR2YWx1ZT0iJytnLnRlcm0rJyJcdFx0XHRcdFx0ZGF0YS1iYXNlcGF5bWVudD0iJytnLnBheW1lbnQrJyJcdFx0XHRcdFx0ZGF0YS1yZWFscGF5bWVudD0iJytnLnBheW1lbnRXaXRoVGF4ZXMrCiciXHRcdFx0XHRcdGRhdGEtcmF0ZXR5cGU9IicrZy5yYXRlX3R5cGUrJyJcdFx0XHRcdFx0ZGF0YS1kaXNwbGF5ZWRwYXltZW50PSInK0srJyJcdFx0XHRcdFx0ZGF0YS1yZXNpZHVhbD0iJytnLnJlc2lkdWFsV2l0aFRheGVzKyciXHRcdFx0XHRcdGRhdGEtdG90YWxpbnRlcmVzdD0iJytnLnRvdGFsSW50ZXJlc3RXaXRoVGF4ZXMrJyJcdFx0XHRcdFx0ZGF0YS1sdXhlVGF4QW1vdW50PSInK2cubHV4ZVRheEFtb3VudCsnIlx0XHRcdFx0XHRkYXRhLWVmZmVjdGl2ZVJhdGU9IicrTisnIlx0XHRcdFx0XHRkYXRhLXRvdGFsQ29zdD0iJytaKyciXHRcdFx0XHRcdGRhdGEtcmF0ZT0iJytnLnJhdGUrJyIgICAgICAgICAgICAgICAgIGRhdGEtcmVzaWR1YWw9IicrZy5yZXNpZHVhbFZhbHVlV2l0aFRheGVzKyciICAgICAgICAgICAgICAgICBkYXRhLXRvdGFsaW5jZW50aXZlPSInK2NhKyciICAgICAgICAgICAgICAgICBkYXRhLWdzdD0iJytnLmdzdCsnIiAgICAgICAgICAgICAgICAgZGF0YS1oc3Q9IicrCmcuaHN0KyciICAgICAgICAgICAgICAgICBkYXRhLXBzdD0iJytnLnBzdCsnIlx0XHRcdFx0Plx0XHRcdDxsYWJlbD4nK0ErIjwvbGFiZWw+XHRcdDwvZGl2Plx0PC9kaXY+In1nPSc8ZGl2IGNsYXNzPSJmaW5hbmNpbmctb3B0aW9uIHBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFdyYXBwZXIgJytRKyciPlx0PGRpdiBjbGFzcz0idGVybSI+JytDKyc8L2Rpdj5cdDxkaXYgY2xhc3M9ImRvd24tcGF5bWVudCI+JytGKyc8L2Rpdj5cdDxkaXYgY2xhc3M9InNlcGFyYXRvclBheSI+PC9kaXY+XHQ8ZGl2IGNsYXNzPSJjb250ZW50LWNvbnRhaW5lciI+XHRcdDxkaXYgaWQ9IicrZGErJyIgY2xhc3M9IicrRysnIHBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFdyYXBwZXJDb250YWluZXIiICcrVysnPlx0XHRcdDxkaXYgY2xhc3M9Imxvd2VzdC1wYXltZW50Ij48c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj4nK0orJzwvc3Bhbj4gPGkgY2xhc3M9ImZhcyBmYS1pbmZvLWNpcmNsZSBpbmZvLWljb24gcGF5bWVudFRvb2x0aXAgbGVmdFRvb2x0aXAiICcrClcrJz48L2k+PC9kaXY+XHRcdFx0PGRpdiBjbGFzcz0iZGV0YWlsc1RheCI+JytVKyc8L2Rpdj5cdFx0XHQ8ZGl2IGNsYXNzPSJhY3R1YWwtcmF0ZSI+JytUKyIlICIrUCsnPC9kaXY+XHRcdFx0PGRpdiBjbGFzcz0icmFkaW8tY29udGFpbmVyIj5cdFx0XHRcdDxpbnB1dCBcdFx0XHRcdFx0dHlwZT0icmFkaW8iXHRcdFx0XHRcdCcrcCsnXHRcdFx0XHRcdG5hbWU9InNlbGVjdGVkUGF5bWVudCJcdFx0XHRcdFx0dmFsdWU9IicrbS50ZXJtKyciXHRcdFx0XHRcdGRhdGEtYmFzZXBheW1lbnQ9IicrbS5wYXltZW50KyciXHRcdFx0XHRcdGRhdGEtcmVhbHBheW1lbnQ9IicrbS5wYXltZW50KyciXHRcdFx0XHRcdGRhdGEtcmF0ZXR5cGU9IicrbS5yYXRlX3R5cGUrJyJcdFx0XHRcdFx0ZGF0YS1kaXNwbGF5ZWRwYXltZW50PSInK0wrJyJcdFx0XHRcdFx0ZGF0YS1yZXNpZHVhbD0iJyttLnJlc2lkdWFsKyciXHRcdFx0XHRcdGRhdGEtdG90YWxpbnRlcmVzdD0iJyttLnRvdGFsSW50ZXJlc3QrCiciXHRcdFx0XHRcdGRhdGEtbHV4ZVRheEFtb3VudD0iJyttLmx1eGVUYXhBbW91bnQrJyJcdFx0XHRcdFx0ZGF0YS1lZmZlY3RpdmVSYXRlPSInK00rJyJcdFx0XHRcdFx0ZGF0YS10b3RhbENvc3Q9IicrVisnIlx0XHRcdFx0XHRkYXRhLXJhdGU9IicrbS5yYXRlKyciICAgICAgICAgICAgICAgICBkYXRhLXJlc2lkdWFsPSInK20ucmVzaWR1YWxWYWx1ZSsnIiAgICAgICAgICAgICAgICAgZGF0YS10b3RhbGluY2VudGl2ZT0iJytlYSsnIiAgICAgICAgICAgICAgICAgZGF0YS1nc3Q9IjAiICAgICAgICAgICAgICAgICBkYXRhLWhzdD0iMCIgICAgICAgICAgICAgICAgIGRhdGEtcHN0PSIwIlx0XHRcdFx0Plx0XHRcdFx0PGxhYmVsPicrdCsiPC9sYWJlbD5cdFx0XHQ8L2Rpdj5cdFx0PC9kaXY+IitIKyJcdDwvZGl2PjwvZGl2PiI7Qj0nPGRpdiBjbGFzcz0iZmluYW5jaW5nLW9wdGlvbiBwYXltZW50Q2FsY3VsYXRvclBheW1lbnRXcmFwcGVyICcrUSsnIj5cdDxkaXYgY2xhc3M9InRlcm0iPicrCkMrJzwvZGl2Plx0PGRpdiBjbGFzcz0iZG93bi1wYXltZW50Ij4nK0YrJzwvZGl2Plx0PGRpdiBjbGFzcz0ic2VwYXJhdG9yUGF5Ij48L2Rpdj5cdDxkaXYgY2xhc3M9ImNvbnRlbnQtY29udGFpbmVyIj5cdFx0PGRpdiBpZD0iJyt2KyciIGNsYXNzPSInK0crJyBwYXltZW50Q2FsY3VsYXRvclBheW1lbnRXcmFwcGVyQ29udGFpbmVyIiAnK1grJz5cdFx0XHQ8ZGl2IGNsYXNzPSJsb3dlc3QtcGF5bWVudCI+PHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+JytCKyc8L3NwYW4+IDxpIGNsYXNzPSJmYXMgZmEtaW5mby1jaXJjbGUgaW5mby1pY29uIHBheW1lbnRUb29sdGlwIGxlZnRUb29sdGlwIiAnK1grJz48L2k+PC9kaXY+XHRcdFx0PGRpdiBjbGFzcz0iYWN0dWFsLXJhdGUiPicrVCsiJSAiK1ArJzwvZGl2Plx0XHRcdDxkaXYgY2xhc3M9InJhZGlvLWNvbnRhaW5lciI+XHRcdFx0XHQ8aW5wdXQgXHRcdFx0XHRcdHR5cGU9InJhZGlvIlx0XHRcdFx0XHQnK3ArJ1x0XHRcdFx0XHRuYW1lPSJzZWxlY3RlZFBheW1lbnRXaXRoVGF4ZXMiXHRcdFx0XHRcdHZhbHVlPSInKwptLnRlcm0rJyJcdFx0XHRcdFx0ZGF0YS1iYXNlcGF5bWVudD0iJyttLnBheW1lbnQrJyJcdFx0XHRcdFx0ZGF0YS1yZWFscGF5bWVudD0iJyttLnBheW1lbnRXaXRoVGF4ZXMrJyJcdFx0XHRcdFx0ZGF0YS1yYXRldHlwZT0iJyttLnJhdGVfdHlwZSsnIlx0XHRcdFx0XHRkYXRhLWRpc3BsYXllZHBheW1lbnQ9IicrRSsnIlx0XHRcdFx0XHRkYXRhLXJlc2lkdWFsPSInK20ucmVzaWR1YWwrJyJcdFx0XHRcdFx0ZGF0YS10b3RhbGludGVyZXN0PSInK20udG90YWxJbnRlcmVzdCsnIlx0XHRcdFx0XHRkYXRhLWx1eGVUYXhBbW91bnQ9IicrbS5sdXhlVGF4QW1vdW50KyciXHRcdFx0XHRcdGRhdGEtZWZmZWN0aXZlUmF0ZT0iJytNKyciXHRcdFx0XHRcdGRhdGEtdG90YWxDb3N0PSInK1YrJyJcdFx0XHRcdFx0ZGF0YS1yYXRlPSInK20ucmF0ZSsnIiAgICAgICAgICAgICAgICAgZGF0YS1yZXNpZHVhbD0iJyttLnJlc2lkdWFsVmFsdWVXaXRoVGF4ZXMrJyIgICAgICAgICAgICAgICAgIGRhdGEtdG90YWxpbmNlbnRpdmU9IicrCngrJyIgICAgICAgICAgICAgICAgIGRhdGEtZ3N0PSInK20uZ3N0KyciICAgICAgICAgICAgICAgICBkYXRhLWhzdD0iJyttLmhzdCsnIiAgICAgICAgICAgICAgICAgZGF0YS1wc3Q9IicrbS5wc3QrJyJcdFx0XHRcdD5cdFx0XHRcdDxsYWJlbD4nK3QrIjwvbGFiZWw+XHRcdFx0PC9kaXY+XHRcdDwvZGl2PiIrSSsiXHQ8L2Rpdj48L2Rpdj4iOzA9PW0ucGF5bWVudFdpdGhUYXhlcyYmKEI9IiIpOyQoIiNwYXltZW50Q2FsY3VsYXRvclBheW1lbnRDb250YWluZXIiKS5hcHBlbmQoZyk7JCgiI3BheW1lbnRDYWxjdWxhdG9yUGF5bWVudENvbnRhaW5lcldpdGhUYXhlcyIpLmFwcGVuZChCKTt6Kyt9fSk7bj0kKCcjcGF5bWVudENhbGN1bGF0b3JDb250YWluZXIgaW5wdXRbbmFtZT0ic2VsZWN0ZWRQYXltZW50Il1bY2hlY2tlZF0nKS5sZW5ndGg\/JCgnI3BheW1lbnRDYWxjdWxhdG9yQ29udGFpbmVyIGlucHV0W25hbWU9InNlbGVjdGVkUGF5bWVudCJdW2NoZWNrZWRdJylbMF06JCgnI3BheW1lbnRDYWxjdWxhdG9yQ29udGFpbmVyIGlucHV0W25hbWU9InNlbGVjdGVkUGF5bWVudCJdJykubGFzdCgpWzBdOwokKG4pLnByb3AoImNoZWNrZWQiLCJjaGVja2VkIikudHJpZ2dlcigiY2hhbmdlIik7bj1wYXltZW50Q2FsY3VsYXRvckZvcm1hdE51bWJlcihhWzBdLnRvdGFsLnRvRml4ZWQoMCkpOyQoIiNwYXltZW50Q2FsY3VsYXRvck5vdGljZVRvdGFsIikudGV4dChuKTsibGVhc2UiPT1hWzBdLnR5cGU\/KG49cGF5bWVudENhbGN1bGF0b3JGb3JtYXROdW1iZXIoYVswXS5rbV9hbGxvd2FuY2UudG9GaXhlZCgwKSksJCgiI3BheW1lbnRDYWxjdWxhdG9yTm90aWNlS00iKS50ZXh0KG4pLCQoIi5wYXltZW50Q2FsY3VsYXRvck5vdGljZUNhc2giKS5wcm9wKCJoaWRkZW4iLCEwKSwkKCIjcGF5bWVudENhbGN1bGF0b3JOb3RpY2VMZWFzZSIpLnNob3coKSwkKCIucGF5bWVudENhbGN1bGF0b3JOb3RpY2VGaW5hbmNlIikuaGlkZSgpKTooJCgiI3BheW1lbnRDYWxjdWxhdG9yTm90aWNlTGVhc2UiKS5oaWRlKCksJCgiLnBheW1lbnRDYWxjdWxhdG9yTm90aWNlQ2FzaCIpLnByb3AoImhpZGRlbiIsITApLAokKCIucGF5bWVudENhbGN1bGF0b3JOb3RpY2VGaW5hbmNlIikuc2hvdygpKTskKCIucGF5bWVudENhbGN1bGF0b3JDb21tb25Ob3RpY2UiKS5zaG93KCk7JCgiI3BheW1lbnRDYWxjdWxhdG9ySW5jbHVkZVRheENoZWNrIikuaXMoIjpjaGVja2VkIik\/KCQoIi5wYXltZW50Q2FsY3VsYXRvclRheGVJbmNsdWRlZCIpLnNob3coKSwkKCIucGF5bWVudENhbGN1bGF0b3JUYXhlTm90SW5jbHVkZWQiKS5oaWRlKCkpOigkKCIucGF5bWVudENhbGN1bGF0b3JUYXhlSW5jbHVkZWQiKS5oaWRlKCksJCgiLnBheW1lbnRDYWxjdWxhdG9yVGF4ZU5vdEluY2x1ZGVkIikuc2hvdygpKTswPGQ\/KGQ9cGF5bWVudENhbGN1bGF0b3JGb3JtYXROdW1iZXIoZC50b0ZpeGVkKDApKSwkKCIjcGF5bWVudENhbGN1bGF0b3JOb3RpY2VGZWVzIikudGV4dChkKSwkKCIjcGF5bWVudENhbGN1bGF0b3JOb3RpY2VJbmNsdWRlZEZlZXMiKS5zaG93KCkpOiQoIiNwYXltZW50Q2FsY3VsYXRvck5vdGljZUluY2x1ZGVkRmVlcyIpLmhpZGUoKTsKJCgiI3BheW1lbnRDYWxjdWxhdG9yQ3VzdG9tRmVlcyAjcGF5bWVudENhbGN1bGF0b3JDdXN0b21GZWVzTGlzdCIpLmVtcHR5KCk7aWYoYi5jdXN0b21GZWVzLmxlbmd0aCl7dmFyIGY9Ijx1bD4iOyQuZWFjaChiLmN1c3RvbUZlZXMsZnVuY3Rpb24odixwKXt2PWVzY2FwZUhUTUwoJCgiYm9keSIpLmhhc0NsYXNzKCJFTkdMSVNIIik\/YXRvYihwLmRlc2NFbik6YXRvYihwLmRlc2NGcikpO3A9cGF5bWVudENhbGN1bGF0b3JGb3JtYXROdW1iZXIocC5hbW91bnQudG9GaXhlZCgwKSk7cD1EMkNVdGlscy5Gb3JtYXQudG9QcmljZShwKTtmKz0iPGxpPiIrdisiIDogIitwKyI8L2xpPiJ9KTtmKz0iPC91bD4iOyQoIiNwYXltZW50Q2FsY3VsYXRvckN1c3RvbUZlZXMgI3BheW1lbnRDYWxjdWxhdG9yQ3VzdG9tRmVlc0xpc3QiKS5hcHBlbmQoZik7JCgiI3BheW1lbnRDYWxjdWxhdG9yQ3VzdG9tRmVlcyIpLnNob3coKX1lbHNlICQoIiNwYXltZW50Q2FsY3VsYXRvckN1c3RvbUZlZXMiKS5oaWRlKCk7CmQ9ImxlYXNlIj09YVswXS50eXBlPygkKCIjcGF5bWVudENhbGN1bGF0b3JMZWFzZVRleHQiKS52YWwoKXx8IiIpLnRvTG93ZXJDYXNlKCk6KCQoIiNwYXltZW50Q2FsY3VsYXRvckZpbmFuY2VUZXh0IikudmFsKCl8fCIiKS50b0xvd2VyQ2FzZSgpOyQoIiNwYXltZW50Q2FsY3VsYXRvck5vdGljZVR5cGUiKS50ZXh0KGQpOzA8YVswXS5yZWJhdGU\/KGE9JCgiYm9keSIpLmhhc0NsYXNzKCJFTkdMSVNIIik\/IiQiK2FbMF0ucmViYXRlOmFbMF0ucmViYXRlKyIgJCIsJCgiI3BheW1lbnRDYWxjdWxhdG9yTm90aWNlUmViYXRlIikudGV4dChhKSwkKCIjcGF5bWVudENhbGN1bGF0b3JOb3RpY2VJbmNsdWRlZFJlYmF0ZXMiKS5zaG93KCkpOiQoIiNwYXltZW50Q2FsY3VsYXRvck5vdGljZUluY2x1ZGVkUmViYXRlcyIpLmhpZGUoKTtpZihiLmNvbmRpdGlvbmFsUmViYXRlcyYmMDxiLmNvbmRpdGlvbmFsUmViYXRlcy5sZW5ndGgpe3ZhciB3PSIiO2IuY29uZGl0aW9uYWxSZWJhdGVzLmZvckVhY2goZnVuY3Rpb24odil7dmFyIHA9CnBheW1lbnRDYWxjdWxhdG9yRm9ybWF0TnVtYmVyKHYuYW1vdW50LnRvU3RyaW5nKCkpO3crPSI8bGk+Iit2Lm5hbWUrIjogLSIrRDJDVXRpbHMuRm9ybWF0LnRvUHJpY2UocCkrIjwvbGk+In0pO3cmJiQoIiNwYXltZW50Q2FsY3VsYXRvck5vdGljZUluY2x1ZGVkUmViYXRlcyIpLmFmdGVyKCc8ZGl2IGlkPSJwYXltZW50Q2FsY3VsYXRvck5vdGljZUNvbmRpdGlvbmFsUmViYXRlcyIgY2xhc3M9InBheW1lbnRDYWxjdWxhdG9yTm90aWNlU2VjdGlvbiI+PHN0cm9uZz4nKygkKCJib2R5IikuaGFzQ2xhc3MoIkVOR0xJU0giKT8iU2VsZWN0ZWQgQ29uZGl0aW9uYWwgUmViYXRlczoiOiJSYWJhaXMgY29uZGl0aW9ubmVscyBzw4PCqWxlY3Rpb25uw4PCqXM6IikrIjwvc3Ryb25nPjx1bD4iK3crIjwvdWw+PC9kaXY+Iil9ZWxzZSAkKCIjcGF5bWVudENhbGN1bGF0b3JOb3RpY2VDb25kaXRpb25hbFJlYmF0ZXMiKS5yZW1vdmUoKTtzZXRQYXltZW50Q2FsY3VsYXRvclBvcHVwVG9vbHRpcCgpfQpmdW5jdGlvbiBzZXRQYXltZW50Q2FsY3VsYXRvclBvcHVwVG9vbHRpcCgpe2lmKCIxIj09JCgiI2lzbW9iaWxlIikudmFsKCkpJCgiI3BheW1lbnRDYWxjdWxhdG9yQ29udGFpbmVyIC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRXcmFwcGVyIC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRXcmFwcGVyQ29udGFpbmVyIC5wYXltZW50VG9vbHRpcCIpLmVhY2goZnVuY3Rpb24oZCl7dHJ5e3ZhciBjPSQodGhpcykuYXR0cigiZGF0YS10b29sdGlwIiksYj0kKHRoaXMpLmhhc0NsYXNzKCJsZWZ0VG9vbHRpcCIpPyJ3ZXN0IjoiZWFzdCI7JCh0aGlzKS5kYXJrVG9vbHRpcCh7Y29udGVudDpjLGdyYXZpdHk6Yix0aGVtZToibGlnaHQiLHRyaWdnZXI6ImNsaWNrIixhbmltYXRpb246ImZsaXBJbiJ9KX1jYXRjaChlKXt9fSk7ZWxzZXtmb3IodmFyIGE9MDs1PmE7YSsrKSQoIiNkYXJrdG9vbHRpcC1wYXltZW50IithKS5sZW5ndGgmJigkKCIjZGFya3Rvb2x0aXAtcGF5bWVudCIrYSkucmVtb3ZlKCksCiQoIiNkYXJrdG9vbHRpcC1wYXltZW50IithKyJ3aXRoVGF4ZXMiKS5yZW1vdmUoKSk7JCgiI3BheW1lbnRDYWxjdWxhdG9yQ29udGFpbmVyIC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRXcmFwcGVyIC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRXcmFwcGVyQ29udGFpbmVyIikuZWFjaChmdW5jdGlvbigpe3RyeXt2YXIgZD0kKHRoaXMpLmF0dHIoImRhdGEtdG9vbHRpcCIpLGM9JCh0aGlzKS5maW5kKCIucGF5bWVudFRvb2x0aXAiKSxiPSJlYXN0IjtjLmhhc0NsYXNzKCJsZWZ0VG9vbHRpcCIpP2I9Indlc3QiOmMuaGFzQ2xhc3MoInJpZ2h0VG9vbHRpcCIpJiYoYj0iZWFzdCIpOyQodGhpcykuZGFya1Rvb2x0aXAoe2NvbnRlbnQ6ZCxncmF2aXR5OmIsdGhlbWU6ImxpZ2h0Iix0cmlnZ2VyOiJob3ZlciJ9KX1jYXRjaChlKXt9fSl9fQpmdW5jdGlvbiBzZXRQYXltZW50Q2FsY3VsYXRvclZlaGljbGVJbmZvKGEpe3ZhciBkPWdldFBvcENvbnRhaW5TZXR0aW5ncygpO2QudmVoaWNsZUluZm89YTskKCIjcGF5bWVudENhbGN1bGF0b3JWZWhpY2xlSW5mb1llYXIiKS50ZXh0KGEueWVhcik7dmFyIGM9YS5DRk1vZGVsTmFtZXx8YS5tb2RlbCxiPWEubWFrZS50b1VwcGVyQ2FzZSgpKyIgIitjLnRvVXBwZXJDYXNlKCk7Ik1FUkNFREVTLUJFTloiIT1hLm1ha2UudG9VcHBlckNhc2UoKXx8L1xic3ByaW50ZXJcYi9pLnRlc3QoYyl8fChiPWEubWFrZS50b1VwcGVyQ2FzZSgpKTtpZigiYnVpbGRhbmRwcmljZS5odG1sIj09JCgiI1BBR0VJRCIpLnZhbCgpfHxkLmhhc093blByb3BlcnR5KCJub1RyaW1TZWxlY3QiKSYmInRydWUiPT1kLm5vVHJpbVNlbGVjdHx8InVzZWRjYXJzLmh0bWwiPT0kKCIjUEFHRUlEIikudmFsKCl8fCJjYXJkZXRhaWwuaHRtbCI9PSQoIiNQQUdFSUQiKS52YWwoKSliKz0iICIrYS5DRlN0eWxlTmFtZS50b1VwcGVyQ2FzZSgpLAokKCIjcGF5bWVudENhbGN1bGF0b3JUcmltU2VsZWN0IikuaGlkZSgpOyQoIiNwYXltZW50Q2FsY3VsYXRvclZlaGljbGVJbmZvTWFrZU1vZGVsVHJpbSIpLnRleHQoYik7Yz1hLm1ha2UrInx8fCIrYysifHx8IithLnllYXI7ZC5oYXNPd25Qcm9wZXJ0eSgic3RvY2tOdW1iZXIiKSYmKGMrPSJ8fHwoU3RvY2s6IitkLnN0b2NrTnVtYmVyKyIpIik7Q29va2llcy5zZXQoImxhc3R2aWV3ZWR2ZWhpY2xlIixjLG51bGwsIi8iKTthLmltYWdlc1swXSYmKGM9KGEuaW1hZ2VzWzBdKyIiKS5yZXBsYWNlKC9odHRwKHM\/KTpcL1wvbWVkaWEuKGNocm9tZWRhdGF8Y2FyYm9vaykuY29tXC9NZWRpYUdhbGxlcnlcL21lZGlhXC8vLCIvL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJzL2NiJUNCLyVNQUtFLyVNT0RFTC8lWUVBUi8iKS5yZXBsYWNlKCIlQ0IiLE1hdGgucm91bmQoOTkqTWF0aC5yYW5kb20oKSkrMUU1KS5yZXBsYWNlKCIlTUFLRSIsYS5tYWtlLnJlcGxhY2UoIi0iLCJfIikpLnJlcGxhY2UoIiVNT0RFTCIsCmEubW9kZWwucmVwbGFjZSgiLSIsIl8iKSkucmVwbGFjZSgiJVlFQVIiLGEueWVhciksJCgiI3BheW1lbnRDYWxjdWxhdG9yVmVoaWNsZUltYWdlRGl2IikuaHRtbCgnPGltZyBpZD0icGF5bWVudENhbGN1bGF0b3JWZWhpY2xlSW1hZ2UiIHNyYz0iJytjLnJlcGxhY2UoLyYvZywiJmFtcDsiKS5yZXBsYWNlKC88L2csIiZsdDsiKS5yZXBsYWNlKC8+L2csIiZndDsiKS5yZXBsYWNlKC8iL2csIiZxdW90OyIpLnJlcGxhY2UoLycvZywiJiMwMzk7IikrJyIgY2xhc3M9InBheW1lbnRDYWxjdWxhdG9yVmVoaWNsZUltYWdlIj4nKSk7JCgiI3BheW1lbnRDYWxjdWxhdG9yVHJpbVNlbGVjdCBvcHRpb24iKS5yZW1vdmUoKTsoInVuZGVmaW5lZCIhPXR5cGVvZiBuZXdjYXJEZXRhaWxzP25ld2NhckRldGFpbHMuYWxsU3R5bGVzOmEubW9kZWxKU09OLnN0eWxlcykuZm9yRWFjaChmdW5jdGlvbihlKXskKCIjcGF5bWVudENhbGN1bGF0b3JUcmltU2VsZWN0IikuYXBwZW5kKG5ldyBPcHRpb24oZS5DRlN0eWxlTmFtZSwKZS5pZCkpfSk7JCgiI3BheW1lbnRDYWxjdWxhdG9yVHJpbVNlbGVjdCIpLnZhbChkLnN0eWxlaWQpO2NhbGNVcGRhdGVQYXltZW50SW5mbygpfQpmdW5jdGlvbiBjYWxjVXBkYXRlU3R5bGVJbmZvKGEpe2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgbmV3Y2FyRGV0YWlscyYmbmV3Y2FyRGV0YWlscy5hY3RpdmVNb2RlbCl7dmFyIGQ9bmV3Y2FyRGV0YWlscy5hbGxTdHlsZXMuZmlsdGVyKGZ1bmN0aW9uKGIpe3JldHVybiBiLmlkPT1hfSlbMF07ZD1kfHxuZXdjYXJEZXRhaWxzLmFjdGl2ZU1vZGVsLnN0eWxlc1swXTtkLm1ha2U9bmV3Y2FyRGV0YWlscy5hY3RpdmVNb2RlbC5tYWtlO2QubW9kZWw9bmV3Y2FyRGV0YWlscy5hY3RpdmVNb2RlbC5tb2RlbDtkLmltYWdlcz1uZXdjYXJEZXRhaWxzLmFjdGl2ZU1vZGVsLmltYWdlcztzZXRQYXltZW50Q2FsY3VsYXRvclZlaGljbGVJbmZvKGQpfWVsc2V7ZD1zZXR0aW5ncy5oYXNPd25Qcm9wZXJ0eSgic3RvY2tOdW1iZXIiKT9zZXR0aW5ncy5zdG9ja051bWJlcjoiIjt2YXIgYz0oJCgiYm9keSIpLmhhc0NsYXNzKCJFTkdMSVNIIik\/Ii9lbiI6Ii9mciIpKyIvYWpheC9nZXRWZWhpY2xlSnNvbkJ5U3R5bGVJRD93c3dpZHRoPTAiOwokLmFqYXgoe3VybDpjLHR5cGU6IlBPU1QiLGRhdGFUeXBlOiJKU09OIixkYXRhOntzdHlsZWlkOmEsdmVoaWNsZWlkOmR9LHN1Y2Nlc3M6ZnVuY3Rpb24oYil7c2V0UGF5bWVudENhbGN1bGF0b3JWZWhpY2xlSW5mbyhiKX19KX19CmZ1bmN0aW9uIHBheW1lbnRDYWxjdWxhdG9yUG9wdXBJbml0KCl7dmFyIGE9Z2V0UG9wQ29udGFpblNldHRpbmdzKCk7JCgiI3BheW1lbnRDYWxjdWxhdG9yUGF5bWVudFR5cGUgbGkiKS5yZW1vdmVDbGFzcygiYWN0aXZlUGF5bWVudFR5cGUiKTskKCIjcGF5bWVudENhbGN1bGF0b3JJc05ld1BvcHVwRW5hYmxlZCIpLnZhbCgpOyIiIT1hLnByb21vQnV0dG9uVGV4dCYmIjEiIT09Q29va2llcy5nZXQoInBvcHVwRm9ybUZpbGxlZCIpJiYkKCIjcGF5bWVudENhbGN1bGF0b3JJc05ld1BvcHVwRW5hYmxlZCIpLnZhbCgpPygtMSE9PWEucHJvbW9CdXR0b25UZXh0LmluZGV4T2YoIjxiciIpJiYoYS5wcm9tb0J1dHRvblRleHQ9YS5wcm9tb0J1dHRvblRleHQuc3Vic3RyKDAsYS5wcm9tb0J1dHRvblRleHQuaW5kZXhPZigiPGJyIikpKSwkKCIjcGF5bWVudENhbGN1bGF0b3JDYWxsVG9BY3Rpb25Db250YWluZXIgYSIpLmh0bWwoYS5wcm9tb0J1dHRvblRleHQpLCQoIiNwYXltZW50Q2FsY3VsYXRvckNhbGxUb0FjdGlvbkNvbnRhaW5lciIpLnNob3coKSk6CiQoIiNwYXltZW50Q2FsY3VsYXRvckNhbGxUb0FjdGlvbkNvbnRhaW5lciIpLmhpZGUoKTtsZXQgZD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjcGF5bWVudENhbGN1bGF0b3JQYXltZW50VHlwZSBsaVtkYXRhLXR5cGU9ImxlYXNpbmciXScpLGM9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI3BheW1lbnRDYWxjdWxhdG9yUGF5bWVudFR5cGUgbGlbZGF0YS10eXBlPSJmaW5hbmNpbmciXScpO2QuaGlkZGVuPSIxIj09KGEubm9Nb3RvaW5zaWdodExlYXNlUGF5bWVudHN8fCExKTtjLmhpZGRlbj0iMSI9PShhLm5vTW90b2luc2lnaHRGaW5hbmNlUGF5bWVudHN8fCExKTtkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjcGF5bWVudENhbGN1bGF0b3JDb250YWluZXIgLmNhbGMtcGF5bWVudC1jYXNoIikuaGlkZGVuPSEwO3NldFRpbWVvdXQoKCk9PntpZihfbG9jYWxTdG9yYWdlR2V0KCJ0cmFkZWluX3N1Ym1pdF9kYXRhIikmJiIiPT0kKCIjcGF5bWVudFRyYWRlSW5WYWx1ZSIpLnZhbCgpKXt2YXIgYj0KSlNPTi5wYXJzZShfbG9jYWxTdG9yYWdlR2V0KCJ0cmFkZWluX3N1Ym1pdF9kYXRhIikpOyQoIiNwYXltZW50VHJhZGVJblZhbHVlIikudmFsKGIudmFsdWUpO19sb2NhbFN0b3JhZ2VHZXQoInRyYWRlaW5fY3VycmVudF92YWx1ZSIpJiYoYj1KU09OLnBhcnNlKF9sb2NhbFN0b3JhZ2VHZXQoInRyYWRlaW5fY3VycmVudF92YWx1ZSIpKSwkKCIjcGF5bWVudFRyYWRlSW5WYWx1ZSIpLmF0dHIoImRhdGEtY3VycmVudCIsYi52YWx1ZSkpfWlmKCIiIT0kKCIjcGF5bWVudFRyYWRlSW5WYWx1ZSIpLnZhbCgpJiYwPCQoIiNwYXltZW50VHJhZGVJblZhbHVlIikudmFsKCkpe2I9cGFyc2VJbnQoJCgiI3BheW1lbnRUcmFkZUluVmFsdWUiKS52YWwoKSl8fDA7dmFyIGU9cGFyc2VJbnQoJCgiI3BheW1lbnRUcmFkZUluVmFsdWUiKS5hdHRyKCJkYXRhLWN1cnJlbnQiKSl8fGI7JCgiLnBheW1lbnRDYWxjdWxhdG9yVHJhZGVJblZhbHVlIikudmFsKGUpOyQoIi5wYXltZW50Q2FsY3VsYXRvclRyYWRlSW5WYWx1ZSIpLmF0dHIoIm1heCIsCmIpOyQoIi5wYXltZW50Q2FsY3VsYXRvclRyYWRlSW5CdXR0b24iKS5oaWRlKCk7JCgiLnBheW1lbnRDYWxjdWxhdG9yVHJhZGVJblZhbHVlIikuc2hvdygpfWVsc2UgJCgiLnBheW1lbnRDYWxjdWxhdG9yVHJhZGVJblZhbHVlIikudmFsKCIiKSwkKCIucGF5bWVudENhbGN1bGF0b3JUcmFkZUluQnV0dG9uIikuc2hvdygpLCQoIi5wYXltZW50Q2FsY3VsYXRvclRyYWRlSW5WYWx1ZSIpLmhpZGUoKTskKCIucGF5bWVudENhbGN1bGF0b3JUcmFkZUluVmFsdWUiKS50cmlnZ2VyKCJibHVyIik7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBDdGFUcmFjayYmQ3RhVHJhY2suZ2V0VHJhY2tTdGVwKCJQYXltZW50Q2FsY3VsYXRvckFjdGlvbkJveCIpKXtsZXQgaz1uZXcgQ3VzdG9tRXZlbnQoInRyYWNrc3RlcC5jb21wbGV0ZSIse2RldGFpbDp7c3RlcElkOiJQYXltZW50Q2FsY3VsYXRvckFjdGlvbkJveCIsZm9yY2VVcGRhdGU6ITAsb25Db21wbGV0ZTpoPT57aC5kYXRhc2V0LmNvbXBsX3R4dF9mcj0KaC5kYXRhc2V0LmluaXRfY29tcGxfdHh0X2ZyLnJlcGxhY2UoInskUEFZTUVOVFJBVEV9IixjdGFQYXltZW50VGV4dEZyWzBdKS5yZXBsYWNlKCJ7JFBBWU1FTlRZUEV9IixjdGFQYXltZW50VGV4dEZyWzFdKTtoLmRhdGFzZXQuY29tcGxfdHh0X2VuPWguZGF0YXNldC5pbml0X2NvbXBsX3R4dF9lbi5yZXBsYWNlKCJ7JFBBWU1FTlRSQVRFfSIsY3RhUGF5bWVudFRleHRFblswXSkucmVwbGFjZSgieyRQQVlNRU5UWVBFfSIsY3RhUGF5bWVudFRleHRFblsxXSk7aD17cGF5bWVudDp7fX07X2xvY2FsU3RvcmFnZUdldCgicmV0YWlsX3RyYWNrX2RhdGEiKSYmKGg9SlNPTi5wYXJzZShfbG9jYWxTdG9yYWdlR2V0KCJyZXRhaWxfdHJhY2tfZGF0YSIpKSk7bGV0IHI9IkZSRU5DSCI9PT0kKCIjYWN0aXZlc2l0ZWxhbmd1YWdlIikudmFsKCk\/Y3RhUGF5bWVudFRleHRGcjpjdGFQYXltZW50VGV4dEVuO2gucGF5bWVudD17bGlzdFByaWNlOnJbMl18fCIiLHBheW1lbnQ6clswXXx8IiIscmF0ZTpyWzFdfHwKIiIscGF5bWVudFZhbHVlOmN0YVBheW1lbnRWYWx1ZXN8fFtdfTtfbG9jYWxTdG9yYWdlU2V0KCJyZXRhaWxfdHJhY2tfZGF0YSIsSlNPTi5zdHJpbmdpZnkoaCksMzApO0Nvb2tpZXMuc2V0KCJjdGFfZGF0YV92YWxpZCIsMSwxLCIvIil9fX0pO2I9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI3BheW1lbnRDYWxjdWxhdG9yQ2FsbFRvQWN0aW9uQ29udGFpbmVyIGEiKTtiLmlubmVyVGV4dD0iRU5HTElTSCI9PSQoIiNhY3RpdmVzaXRlbGFuZ3VhZ2UiKS52YWwoKT8iQ29uZmlybSI6IkNvbmZpcm1lciI7Yi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsaD0+e2gucHJldmVudERlZmF1bHQoKTtoPSJjYXNoIj09PSQoIiNwYXltZW50Q2FsY3VsYXRvclBheW1lbnRUeXBlIC5hY3RpdmVQYXltZW50VHlwZSIpLmF0dHIoImRhdGEtdHlwZSIpOyQoIiNwYXltZW50Q2FsY3VsYXRvclBheW1lbnRDb250YWluZXIiKS5pcygiOmhpZGRlbiIpJiYhaHx8ZG9jdW1lbnQuZGlzcGF0Y2hFdmVudChrKTsKJCgiI3BheW1lbnRDYWxjdWxhdG9yUG9wdXBDb250YWluZXIiKS5wb3B1cGl6ZSgpLmNsb3NlKCl9KTtlPWg9PntoPSJjYXNoIj09PSQoIiNwYXltZW50Q2FsY3VsYXRvclBheW1lbnRUeXBlIC5hY3RpdmVQYXltZW50VHlwZSIpLmF0dHIoImRhdGEtdHlwZSIpOyQoIiNwYXltZW50Q2FsY3VsYXRvclBheW1lbnRDb250YWluZXIiKS5pcygiOmhpZGRlbiIpJiYhaHx8ZG9jdW1lbnQuZGlzcGF0Y2hFdmVudChrKX07bGV0IGw9YS5wYXltZW50VHlwZTtDb29raWVzLmdldCgicGF5bWVudENhbGN1bGF0b3JTZWxlY3RlZE9wdGlvbnMiKSYmKGI9Q29va2llcy5nZXQoInBheW1lbnRDYWxjdWxhdG9yU2VsZWN0ZWRPcHRpb25zIikuc3BsaXQoIi0iKSxsPSJ1bmRlZmluZWQiIT1iWzBdP2JbMF06bCxsPSJsZWFzaW5nIj09PWw\/ImxlYXNlIjoiZmluYW5jaW5nIj09PWw\/ImZpbmFuY2UiOmwpOyJsZWFzZSI9PWwmJmQ\/ZC5jbGljaygpOiJmaW5hbmNlIj09bCYmYz9jLmNsaWNrKCk6Y2FzaFRhYi5jbGljaygpOwokKCIucmV2ZWFsLW1vZGFsIikub2ZmKCJwb3B1cGl6ZXIuY2xvc2UiLGUpLm9uKCJwb3B1cGl6ZXIuY2xvc2UiLGUpOyQoIiNwYXltZW50Q2FsY3VsYXRvckNhbGxUb0FjdGlvbkNvbnRhaW5lciIpLnNob3coKX19LDEwMCk7Y2FsY1VwZGF0ZVN0eWxlSW5mbyhhLnN0eWxlaWQpfQpmdW5jdGlvbiBjYWxjVXBkYXRlUGF5bWVudEluZm8oKXt2YXIgYT1nZXRQb3BDb250YWluU2V0dGluZ3MoKSxkPSgkKCJib2R5IikuaGFzQ2xhc3MoIkVOR0xJU0giKT8iL2VuIjoiL2ZyIikrIi9hamF4L2dldFBheW1lbnREYXRhRm9yU3R5bGVJRD93c3dpZHRoPTAiLGM9YS5wYXltZW50VHlwZSxiPTAsZT1wYXJzZUludCgkKCIucGF5bWVudENhbGN1bGF0b3JUcmFkZUluVmFsdWUiKS52YWwoKXx8MCksaz1udWxsLGw9bnVsbCxoPWdldE9wdGlvbnNBbW91bnQoYSkscj1nZXRBY2Nlc3Nvcmllc0Ftb3VudChhKSxxPWdldFNlbGVjdGVkQWNjZXNzb3JpZXMoYSksdT1nZXRQcm90ZWN0aW9uUGxhbnNBbW91bnQoYSkseT1hLmhhc093blByb3BlcnR5KCJub1RyaW1TZWxlY3QiKSYmInRydWUiPT1hLm5vVHJpbVNlbGVjdHx8InVzZWRjYXJzLmh0bWwiPT0kKCIjUEFHRUlEIikudmFsKCl8fCJjYXJkZXRhaWwuaHRtbCI9PSQoIiNQQUdFSUQiKS52YWwoKSwKbj0hMSx4PWEuaGFzT3duUHJvcGVydHkoInN0b2NrTnVtYmVyIik\/YS5zdG9ja051bWJlcjoiIix0PWEuaGFzT3duUHJvcGVydHkoInZpbiIpP2EudmluOiIiO2lmKHkmJiF4KXt2YXIgQT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicGhvbmVzdG9ja251bWJlciIpO0EmJih4PUEudmFsdWV8fCIiKX15JiYhdCYmKEE9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBob25ldmluIikpJiYodD1BLnZhbHVlfHwiIik7eSYmIWEuc3R5bGVpZCYmKEE9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFjdGl2ZVN0eWxlSUQiKSkmJihhLnN0eWxlaWQ9QS52YWx1ZXx8YS5zdHlsZWlkKTtDb29raWVzLmdldCgicGF5bWVudENhbGN1bGF0b3JTZWxlY3RlZE9wdGlvbnMiKSYmKGw9Q29va2llcy5nZXQoInBheW1lbnRDYWxjdWxhdG9yU2VsZWN0ZWRPcHRpb25zIikuc3BsaXQoIi0iKSxjPSJ1bmRlZmluZWQiIT1sWzBdP2xbMF06YyxuPWxbMV0sYj1wYXJzZUludChsWzRdKS1lLGI9MD5iPzA6YixrPQpsWzJdLGw9bFszXSk7YS5ub01vdG9pbnNpZ2h0TGVhc2VQYXltZW50cyYmImxlYXNlIj09YyYmKGM9ImZpbmFuY2UiLG49ITEsYj0wLGw9az1udWxsKTthLm5vTW90b2luc2lnaHRGaW5hbmNlUGF5bWVudHMmJlsiZmluYW5jZSIsImZpbmFuY2luZyJdLmluY2x1ZGVzKGMpJiYoYz0ibGVhc2UiLG49ITEsYj0wLGw9az1udWxsKTtsZXQgej1bXTtkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIuY29uZGl0aW9uYWwtcmViYXRlLWNoZWNrYm94IikuZm9yRWFjaChmdW5jdGlvbihmKXtmLmNoZWNrZWQmJihmPWYuZ2V0QXR0cmlidXRlKCJkYXRhLWNvbmRpdGlvbmFsLXJlYmF0ZS1pZCIpKSYmei5wdXNoKGYpfSk7Y2FsY1VwZGF0ZVBheW1lbnRYaHI9JC5hamF4KHt1cmw6ZCx0eXBlOiJQT1NUIixkYXRhVHlwZToiSlNPTiIsZGF0YTp7c3R5bGVpZDphLnN0eWxlaWQscGF5bWVudFR5cGU6Yyxkb3ducGF5bWVudDplK2Isb3B0aW9uc0Ftb3VudDpoLHBheW1lbnRGcmVxdWVuY3k6ayxrbUFsbG93YW5jZTpsLAppc0ludmVudG9yeTp5LG9wdGlvbnM6aCxzbjp4LHZpbjp0LGNvbmRpdGlvbmFsUmViYXRlSWRzOnouam9pbigiLCIpLGFjY2Vzc29yaWVzOnIsc2VsZWN0ZWRBY2Nlc3NvcmllczpxLHByb3RlY3Rpb25QbGFuczp1fSxzdWNjZXNzOmZ1bmN0aW9uKGYpe2Yuc2VsZWN0ZWRUZXJtPW47JCgiI21heERvd25QYXltZW50Rm9yVHJpbSIpLnZhbChmLm1heERvd24pOyQoIiNtYXhEb3duUGF5bWVudEZpbmFuY2VGb3JUcmltIikudmFsKGYubWF4RG93bkZpbmFuY2UpOyQoIiNwYXltZW50Q2FsY3VsYXRvckttQWxsb3dhbmNlIG9wdGlvbiIpLnJlbW92ZSgpOyQoIiNwYXltZW50Q2FsY3VsYXRvckRvd25QYXltZW50IikudmFsKGIpO2M9ImxlYXNlIj09PWM\/ImxlYXNpbmciOiJmaW5hbmNlIj09PWM\/ImZpbmFuY2luZyI6YzsiY2FzaCI9PT1jJiYoJCgiI3BheW1lbnRDYWxjdWxhdG9yUGF5bWVudENvbnRhaW5lciIpLmhpZGUoKSwkKCIjcGF5bWVudENhbGN1bGF0b3JQYXltZW50Q29udGFpbmVyV2l0aFRheGVzIikuaGlkZSgpKTsKZi5jdXJyZW50UGF5bWVudCYmMCE9PWYuY3VycmVudFBheW1lbnQubGVuZ3RofHwiY2FzaCI9PT1jPygkKCIjcGF5bWVudENhbGN1bGF0b3JFcnJvck1lc3NhZ2UiKS5oaWRlKCksJCgiI3BheW1lbnRDYWxjdWxhdG9yRG93blBheW1lbnRFcnJvck1lc3NhZ2UiKS5oaWRlKCksJCgiI3BheW1lbnRDYWxjdWxhdG9yRG93blBheW1lbnRFcnJvck1lc3NhZ2VGaW5hbmNlIikuaGlkZSgpLCQoIiNwYXltZW50Q2FsY3VsYXRvckRvd25QYXltZW50RXJyb3JNZXNzYWdlTGVhc2UiKS5oaWRlKCksJCgiI3BheW1lbnRDYWxjdWxhdG9yT3B0aW9uQ29udGFpbmVyIikuc2hvdygpLCQoIiNwYXltZW50Q2FsY3VsYXRvck5vdGljZUNvbnRhaW5lciIpLnByb3AoImhpZGRlbiIsITEpLGYuY3VycmVudFBheW1lbnQmJjA8Zi5jdXJyZW50UGF5bWVudC5sZW5ndGgmJigkKCIjcGF5bWVudENhbGN1bGF0b3JJbnRlcnZhbCIpLnZhbChmLmN1cnJlbnRQYXltZW50WzBdLmludGVydmFsKSxjPWN8fCgibGVhc2UiPT09CmYuY3VycmVudFBheW1lbnRbMF0udHlwZT8ibGVhc2luZyI6ImZpbmFuY2luZyIpKSk6KCQoIiNwYXltZW50Q2FsY3VsYXRvck9wdGlvbkNvbnRhaW5lciIpLmhpZGUoKSwkKCIjcGF5bWVudENhbGN1bGF0b3JQYXltZW50Q29udGFpbmVyIikuaGlkZSgpLCQoIiNwYXltZW50Q2FsY3VsYXRvclBheW1lbnRDb250YWluZXJXaXRoVGF4ZXMiKS5oaWRlKCksJCgiI3BheW1lbnRDYWxjdWxhdG9yTm90aWNlQ29udGFpbmVyIikucHJvcCgiaGlkZGVuIiwhMCksJCgiI3BheW1lbnRDYWxjdWxhdG9yRXJyb3JNZXNzYWdlIikuc2hvdygpKTskKCIjcGF5bWVudENhbGN1bGF0b3JQYXltZW50VHlwZSBsaSIpLnJlbW92ZUNsYXNzKCJhY3RpdmVQYXltZW50VHlwZSIpO3ZvaWQgMCE9JCgiI3BheW1lbnRDYWxjdWxhdG9yUGF5bWVudFR5cGUgbGlbZGF0YS10eXBlPSciK2MrIiddIikmJiQoIiNwYXltZW50Q2FsY3VsYXRvclBheW1lbnRUeXBlIGxpW2RhdGEtdHlwZT0nIitjKyInXSIpLmFkZENsYXNzKCJhY3RpdmVQYXltZW50VHlwZSIpOwoiY2FzaCIhPT1jJiYodm9pZCAwIT1mLmZpbmFuY2UmJjA9PT1mLmZpbmFuY2UubGVuZ3RoPyQoIiNwYXltZW50Q2FsY3VsYXRvclBheW1lbnRUeXBlRmluYW5jZSIpLmhpZGUoKTokKCIjcGF5bWVudENhbGN1bGF0b3JQYXltZW50VHlwZUZpbmFuY2UiKS5zaG93KCksdm9pZCAwIT1mLmxlYXNlJiYwPT09Zi5sZWFzZS5sZW5ndGg\/JCgiI3BheW1lbnRDYWxjdWxhdG9yUGF5bWVudFR5cGVMZWFzZSIpLmhpZGUoKTokKCIjcGF5bWVudENhbGN1bGF0b3JQYXltZW50VHlwZUxlYXNlIikuc2hvdygpKTtpZihmLmxlYXNlJiYwPGYubGVhc2UubGVuZ3RoKXt2YXIgdz1bXTtmLmxlYXNlLmZvckVhY2goZnVuY3Rpb24ocCl7LTE9PSQuaW5BcnJheShwLmttX2FsbG93YW5jZSx3KSYmdy5wdXNoKHAua21fYWxsb3dhbmNlKX0pO3cuZm9yRWFjaChmdW5jdGlvbihwKXt2YXIgbT1wYXltZW50Q2FsY3VsYXRvckZvcm1hdE51bWJlcihwLnRvRml4ZWQoMCkpOyQoIiNwYXltZW50Q2FsY3VsYXRvckttQWxsb3dhbmNlIikuYXBwZW5kKG5ldyBPcHRpb24obSsKIiBrbSIscCkpfSk7dmFyIHY9MkU0O2YuY3VycmVudFBheW1lbnRbMF0mJiJ1bmRlZmluZWQiIT09dHlwZW9mIGYuY3VycmVudFBheW1lbnRbMF0ua21fYWxsb3dhbmNlJiYodj0wPGYuY3VycmVudFBheW1lbnRbMF0ua21fYWxsb3dhbmNlP2YuY3VycmVudFBheW1lbnRbMF0ua21fYWxsb3dhbmNlOjJFNCk7JCgiI3BheW1lbnRDYWxjdWxhdG9yS21BbGxvd2FuY2UiKS52YWwodil9ImxlYXNpbmciPT1jPyQoIi5wYXltZW50Q2FsY3VsYXRvckttQWxsb3dhbmNlQ29udGFpbmVyIikuc2hvdygpOiQoIi5wYXltZW50Q2FsY3VsYXRvckttQWxsb3dhbmNlQ29udGFpbmVyIikuaGlkZSgpO2dldENhc2hQcmljZUJsb2NrKGYpOyJjYXNoIj09PWM\/ZW5hYmxlQ2FzaE9wdGlvbigpOmYuY3VycmVudFBheW1lbnQmJmYuY3VycmVudFBheW1lbnQubGVuZ3RoJiYoY2FsY0N1clBheW1lbnQ9ZixzaG93UGF5bWVudHMoZi5jdXJyZW50UGF5bWVudCxmLnBheW1lbnRGZWVzLGYubWFrZWlkLGYpKX19KX0KZnVuY3Rpb24gZW5hYmxlQ2FzaE9wdGlvbigpeyQoIiNwYXltZW50Q2FsY3VsYXRvclBheW1lbnRUeXBlIGxpIikucmVtb3ZlQ2xhc3MoImFjdGl2ZVBheW1lbnRUeXBlIik7JCgiI3BheW1lbnRDYWxjdWxhdG9yUGF5bWVudFR5cGUgbGlbZGF0YS10eXBlPSdjYXNoJ10iKS5hZGRDbGFzcygiYWN0aXZlUGF5bWVudFR5cGUiKTskKCIucGF5bWVudENhbGN1bGF0b3JJbnB1dENvbnRhaW5lciIpLmhpZGUoKTskKCIjcGF5bWVudENhbGN1bGF0b3JQYXltZW50Q29udGFpbmVyIikuaGlkZSgpOyQoIiNwYXltZW50Q2FsY3VsYXRvclBheW1lbnRDb250YWluZXJXaXRoVGF4ZXMiKS5oaWRlKCk7JCgiI3BheW1lbnRDYWxjdWxhdG9yTm90aWNlTGVhc2UiKS5oaWRlKCk7JCgiLnBheW1lbnRDYWxjdWxhdG9yTm90aWNlRmluYW5jZSIpLmhpZGUoKTskKCIjcGF5bWVudENhbGN1bGF0b3JDdXN0b21GZWVzIikuaGlkZSgpOyQoIi5wYXltZW50Q2FsY3VsYXRvckNvbW1vbk5vdGljZSIpLmhpZGUoKTsKJCgiI3BheW1lbnRDYWxjdWxhdG9yTm90aWNlSW5jbHVkZWRGZWVzIikuaGlkZSgpOyQoIi5wYXltZW50Q2FsY3VsYXRvck5vdGljZUNhc2giKS5wcm9wKCJoaWRkZW4iLCExKTskKCIjcGF5bWVudENhbGN1bGF0b3JFcnJvck1lc3NhZ2UiKS5oaWRlKCk7JCgiI3BheW1lbnRDYWxjdWxhdG9yRG93blBheW1lbnRFcnJvck1lc3NhZ2UiKS5oaWRlKCk7JCgiI3BheW1lbnRDYWxjdWxhdG9yRG93blBheW1lbnRFcnJvck1lc3NhZ2VGaW5hbmNlIikuaGlkZSgpOyQoIiNwYXltZW50Q2FsY3VsYXRvckRvd25QYXltZW50RXJyb3JNZXNzYWdlTGVhc2UiKS5oaWRlKCk7JCgiI3BheW1lbnRDYWxjdWxhdG9yT3B0aW9uQ29udGFpbmVyIikuc2hvdygpO2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNwYXltZW50Q2FsY3VsYXRvckNvbnRhaW5lciAuY2FsYy1wYXltZW50LWNhc2giKS5oaWRkZW49ITE7JCgiI3BheW1lbnRDYWxjdWxhdG9yTm90aWNlQ29udGFpbmVyIikucHJvcCgiaGlkZGVuIiwhMSk7CjE9PSQoIiNpc0RSU2l0ZSIpLmxlbmd0aCYmIjEiPT0kKCIjaXNEUlNpdGUiKS52YWwoKSYmY2hhbmdlUGFnZUNhc2hWYWx1ZSgpfQpmdW5jdGlvbiBjaGFuZ2VQYWdlQ2FzaFZhbHVlKCl7aWYobnVsbCE9PWNhc2hQcmljZUZvclBhZ2Upe3ZhciBhPSQoImJvZHkiKS5oYXNDbGFzcygiRU5HTElTSCIpPyJFTkdMSVNIIjoiRlJFTkNIIixkPXBheW1lbnRDYWxjdWxhdG9yRm9ybWF0TnVtYmVyKGNhc2hQcmljZUZvclBhZ2UudG9TdHJpbmcoKSksYz1zdG9yZS5nZXQoImkxOG4iKS5ERUZBVUxUX1BBWU1FTlRfQ0FTSCxiPSc8c3BhbiBjbGFzcz0idHh0LXBheW1lbnQgZm9ybWF0LXByaWNlIj4nK2QrIjwvc3Bhbj4iLGU9c3RvcmUuZ2V0KCJpMThuIikuTEFCRUxfQkVGT1JFX1RBWEVTLnRvTG93ZXJDYXNlKCk7JCgiLnBheW1lbnRXcmFwcGVyIC5wYXltZW50TGluZTIsIC5wYXltZW50V3JhcHBlck1vYmlsZVZEUCAucGF5bWVudExpbmUxIikuaHRtbChjKTskKCIucGF5bWVudFdyYXBwZXIgLnBheW1lbnRMaW5lMSwgLnBheW1lbnRXcmFwcGVyTW9iaWxlVkRQIC5wYXltZW50TGluZTIiKS5odG1sKGIpOyQoIi5wYXltZW50V3JhcHBlciAucGF5bWVudExpbmUzLCAucGF5bWVudFdyYXBwZXJNb2JpbGVWRFAgLnBheW1lbnRMaW5lMyIpLmh0bWwoZSk7CmE9IkVOR0xJU0giPT09YT8iJCIrZDpkKyIgJCI7Y3RhUGF5bWVudFRleHRGcj1bYSwiQ29tcHRhbnQiLCIiXTtjdGFQYXltZW50VGV4dEVuPVthLCJDYXNoIiwiIl07Y3RhUGF5bWVudFZhbHVlcz1bY2FzaFByaWNlRm9yUGFnZSwwLDAsImNhc2giXTskKCIuYm5wX3BheW1lbnRfY29udGFpbmVyIikubGVuZ3RoJiYoJCgiLmJucF9wYXltZW50X2NvbnRhaW5lciIpLmhpZGUoKSwkKCIucGF5bWVudEluZm9CdWJibGVCblAiKS5oaWRlKCkpOyQoIiNkYXJrdG9vbHRpcC1wYXltZW50V3JhcHBlciwgI2Rhcmt0b29sdGlwLXZkcFBheW1lbnRUb29sdGlwLCAjZGFya3Rvb2x0aXAtdmRwSW5mb1Rvb2x0aXAsICNkYXJrdG9vbHRpcC12ZHBVc2VkSW5mb1Rvb2x0aXAiKS5yZW1vdmUoKTskKCIudmRwUGF5bWVudFRvb2x0aXAsIC5wYXltZW50V3JhcHBlciAudmRwSW5mb1Rvb2x0aXAsIC5wYXltZW50V3JhcHBlciAudmRwVXNlZEluZm9Ub29sdGlwIikuZGFya1Rvb2x0aXAoe29wYWNpdHk6MH0pfX0KZnVuY3Rpb24gZ2V0Q2FzaFByaWNlQmxvY2soYSl7dmFyIGQ9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI3BheW1lbnRDYWxjdWxhdG9yUG9wdXBDb250YWluZXIiKSxjPWdldFBvcENvbnRhaW5TZXR0aW5ncygpLGI9Yy5oYXNPd25Qcm9wZXJ0eSgibm9UcmltU2VsZWN0IikmJiJ0cnVlIj09Yy5ub1RyaW1TZWxlY3R8fCJ1c2VkY2Fycy5odG1sIj09JCgiI1BBR0VJRCIpLnZhbCgpfHwiY2FyZGV0YWlsLmh0bWwiPT0kKCIjUEFHRUlEIikudmFsKCksZT0kKCIjYWN0aXZlc2l0ZWxhbmd1YWdlIikudmFsKCl8fCJGUkVOQ0giO2xldCBrPXBhcnNlSW50KGEub3JpZ2luYWxQcmljZXx8Yy52ZWhpY2xlSW5mbyYmYy52ZWhpY2xlSW5mby5tc3JwQWxsSW58fDApO3ZhciBsPXBheW1lbnRDYWxjdWxhdG9yRm9ybWF0TnVtYmVyKGsudG9TdHJpbmcoKSk7bGV0IGg9ZC5xdWVyeVNlbGVjdG9yKCIuY2FsYy1wYXltZW50LWNhc2giKTt2YXIgcj0iMSI9PWQucXVlcnlTZWxlY3RvcigiI2Rpc3BsYXlCcmVha2Rvd24iKS52YWx1ZTsKbGV0IHE9IjEiPT1kLnF1ZXJ5U2VsZWN0b3IoIiNoaWRlUmViYXRlcyIpLnZhbHVlO3ZhciB1PSIxIj09ZC5xdWVyeVNlbGVjdG9yKCIjc2NyYXRjaE9yaWdpbmFsUHJpY2UiKS52YWx1ZTtsZXQgeT0iRU5HTElTSCI9PWU\/IlN0YXJ0aW5nIGF0Ijoiw4PCgCBwYXJ0aXIgZGUiO2Q9IkVOR0xJU0giPT1lPyJZb3VyIHByaWNlIjoiVm90cmUgcHJpeCI7YiYmKHk9JCgiI05FV0lOVl9QUklDRV9MQUJFTF9PUklHSU5BTCIpLnZhbCgpLGQ9JCgiI05FV0lOVl9QUklDRV9MQUJFTF9GSU5BTCIpLnZhbCgpLGMudmVoaWNsZUluZm8mJnkucmVwbGFjZSgieyRNQUtFfSIsYy52ZWhpY2xlSW5mby5tYWtlKS5yZXBsYWNlKCJ7JE1PREVMfSIsYy52ZWhpY2xlSW5mby5DRk1vZGVsTmFtZSkucmVwbGFjZSgieyRWRVJTSU9OfSIsYy52ZWhpY2xlSW5mby5DRlN0eWxlTmFtZSkucmVwbGFjZSgieyRZRUFSfSIsYy52ZWhpY2xlSW5mby55ZWFyKSk7bGV0IG49IkVOR0xJU0giPT1lPyJkZXNjRW4iOiJkZXNjRnIiOwokKCIjcGF5bWVudENhbGN1bGF0b3JOb3RpY2VUb3RhbCIpLmh0bWwoayk7Yz11JiZhLnByaWNlQW1lbmRlbWVudHMmJjA+YS5wcmljZUFtZW5kZW1lbnRzLnRvdGFsPyJzdHJpa2UtcHJpY2UiOiIiO2w9YAoJCTxkaXYgY2xhc3M9InByaWNlUm93Ij4KCQkJPHNwYW4gY2xhc3M9InByaWNlTmFtZSI+JHtyJiYhcT9kOnl9PC9zcGFuPgoJCQk8c3BhbiBjbGFzcz0icHJpY2UtdmFsdWUgJHsiZm9ybWF0LXByaWNlIn0gJHtjfSI+JHtsfTwvc3Bhbj4KCQk8L2Rpdj5gO2lmKDA9PShhLnByaWNlQW1lbmRlbWVudHN8fFtdKS5sZW5ndGgpaC5pbm5lckhUTUw9bDtlbHNle3U9KGEucHJpY2VBbWVuZGVtZW50cy5mZWVzTGlzdHx8W10pLnJlZHVjZSgoeixmKT0+e2lmKDA9PWYuYW1vdW50KXJldHVybiB6O2xldCB3PXBheW1lbnRDYWxjdWxhdG9yRm9ybWF0TnVtYmVyKGYuYW1vdW50LnRvU3RyaW5nKCkpO3JldHVybiB6K2AKCQkJPGRpdiBjbGFzcz0icHJpY2VSb3ciPgoJCQkJPHNwYW4gY2xhc3M9InByaWNlTmFtZSI+JHtlc2NhcGVIVE1MKGF0b2IoZltuXSkpfTwvc3Bhbj4KCQkJCTxzcGFuIGNsYXNzPSJwcmljZS12YWx1ZSAkeyJmb3JtYXQtcHJpY2UifSI+JHt3fTwvc3Bhbj4KCQkJPC9kaXY+CgkJYH0sIiIpO3ZhciB4PShhLnByaWNlQW1lbmRlbWVudHMuaW5jZW50aXZlc0xpc3R8fFtdKS5yZWR1Y2UoKHosZik9PntpZigwPT1mLmFtb3VudClyZXR1cm4gejtsZXQgdz1wYXltZW50Q2FsY3VsYXRvckZvcm1hdE51bWJlcihmLmFtb3VudC50b1N0cmluZygpKTtyZXR1cm4geitgCgkJCTxkaXYgY2xhc3M9InByaWNlUm93Ij4KCQkJCTxzcGFuIGNsYXNzPSJwcmljZU5hbWUiPiR7ZXNjYXBlSFRNTChhdG9iKGZbbl0pKX08L3NwYW4+CgkJCQk8c3BhbiBjbGFzcz0icHJpY2UtdmFsdWUgJHsiZm9ybWF0LXByaWNlIn0iPi0ke3d9PC9zcGFuPgoJCQk8L2Rpdj4KCQlgfSwiIik7Yj0oYS5wcmljZUFtZW5kZW1lbnRzLnBvc3RUYXhJbmNlbnRpdmVzTGlzdHx8W10pLnJlZHVjZSgoeixmKT0+e2lmKDA9PWYuYW1vdW50KXJldHVybiB6O2xldCB3PXBheW1lbnRDYWxjdWxhdG9yRm9ybWF0TnVtYmVyKGYuYW1vdW50LnRvU3RyaW5nKCkpO3JldHVybiB6K2AKCQkJPGRpdiBjbGFzcz0icHJpY2VSb3ciPgoJCQkJPHNwYW4gY2xhc3M9InByaWNlTmFtZSI+JHtlc2NhcGVIVE1MKGF0b2IoZltuXSkpfTwvc3Bhbj4KCQkJCTxzcGFuIGNsYXNzPSJwcmljZS12YWx1ZSAkeyJmb3JtYXQtcHJpY2UifSI+LSR7d308L3NwYW4+CgkJCTwvZGl2PgoJCWB9LCIiKTt2YXIgdD1rLShhLnByaWNlQW1lbmRlbWVudHMudG90YWxGZWV8fDApKyhhLnByaWNlQW1lbmRlbWVudHMudG90YWxSZWJhdGV8fDApLEE9MDwoYS5wcmljZUFtZW5kZW1lbnRzLmNvbmRpdGlvbmFsUmViYXRlc1RvdGFsfHwwKTtlPUEmJmEucHJpY2VBbWVuZGVtZW50cy5maW5hbFByaWNlP2EucHJpY2VBbWVuZGVtZW50cy5maW5hbFByaWNlOms7WyJORVdDQVJTIiwiTkVXQ0FSREVUQUlMUyJdLmluY2x1ZGVzKHNpdGVQYWdlLm5hbWUpfHwodD1rLShhLnByaWNlQW1lbmRlbWVudHMudG90YWxGZWV8fDApKyhhLnByaWNlQW1lbmRlbWVudHMudG90YWxSZWJhdGV8fDApLGU9QSYmYS5wcmljZUFtZW5kZW1lbnRzLmZpbmFsUHJpY2U\/YS5wcmljZUFtZW5kZW1lbnRzLmZpbmFsUHJpY2U6ayk7Y2FzaFByaWNlRm9yUGFnZT1lO3Q9cGF5bWVudENhbGN1bGF0b3JGb3JtYXROdW1iZXIodC50b1N0cmluZygpKTtlPXBheW1lbnRDYWxjdWxhdG9yRm9ybWF0TnVtYmVyKGUudG9TdHJpbmcoKSk7CmE9dS5sZW5ndGh8fHgubGVuZ3RoO3I9ciYmIXEmJmE\/YAoJCTxkaXYgY2xhc3M9InByaWNlUm93Ij4KCQkJPHNwYW4gY2xhc3M9InByaWNlTmFtZSI+JHt5fTwvc3Bhbj4KCQkJPHNwYW4gY2xhc3M9InByaWNlLXZhbHVlICR7ImZvcm1hdC1wcmljZSJ9ICR7Y30iPiR7dH08L3NwYW4+CgkJPC9kaXY+YCt1K3g6IiI7YSYmKGw9YAoJCQk8ZGl2IGNsYXNzPSJwcmljZVJvdyI+CgkJCQk8c3BhbiBjbGFzcz0icHJpY2VOYW1lIj4ke2R9PC9zcGFuPgoJCQkJPHNwYW4gY2xhc3M9IiR7IiIhPXI\/InByaWNlRmluYWwiOiIifSAkeyJmb3JtYXQtcHJpY2UifSI+JHtlfTwvc3Bhbj4KCQkJPC9kaXY+YCk7aC5pbm5lckhUTUw9citsK2J9fQpmdW5jdGlvbiBnZXRPcHRpb25zQW1vdW50KGEpe3ZhciBkPWEucGF5bWVudE9wdGlvbnM\/YS5wYXltZW50T3B0aW9uczowO2EuaGFzT3duUHJvcGVydHkoIm5vVHJpbVNlbGVjdCIpJiYidHJ1ZSI9PWEubm9UcmltU2VsZWN0fHwidXNlZGNhcnMuaHRtbCI9PSQoIiNQQUdFSUQiKS52YWwoKXx8JCgiI1BBR0VJRCIpLnZhbCgpO2E9YS5jb25zaWRlckludmVudG9yeT9hLmNvbnNpZGVySW52ZW50b3J5OiIwIjt2YXIgYz0idW5kZWZpbmVkIiE9dHlwZW9mIG1vZGVsQ29uZmlnJiYiZnVuY3Rpb24iPT09dHlwZW9mIG1vZGVsQ29uZmlnLmdldFNlbGVjdGVkU3R5bGU7aWYoY3x8YSYmYylkPW1vZGVsQ29uZmlnLmdldFNlbGVjdGVkU3R5bGUoKS5zZWxlY3RlZE9wdGlvbnNUb3RhbCxhPXBhcnNlSW50KG1vZGVsQ29uZmlnLmdldFNlbGVjdGVkU3R5bGUoKS5kZWZhdWx0T3B0aW9uQW1vdW50KSwwPGEmJihkLT1hLGQ9TWF0aC5tYXgoMCxkKSk7cmV0dXJuIGR8fDB9CmZ1bmN0aW9uIGdldEFjY2Vzc29yaWVzQW1vdW50KGEpe3ZhciBkPTA7YS5oYXNPd25Qcm9wZXJ0eSgibm9UcmltU2VsZWN0IikmJiJ0cnVlIj09YS5ub1RyaW1TZWxlY3R8fCJ1c2VkY2Fycy5odG1sIj09JCgiI1BBR0VJRCIpLnZhbCgpfHwkKCIjUEFHRUlEIikudmFsKCk7YT1hLmNvbnNpZGVySW52ZW50b3J5P2EuY29uc2lkZXJJbnZlbnRvcnk6IjAiO3ZhciBjPSJ1bmRlZmluZWQiIT10eXBlb2YgbW9kZWxDb25maWcmJiJmdW5jdGlvbiI9PT10eXBlb2YgbW9kZWxDb25maWcuZ2V0U2VsZWN0ZWRTdHlsZTsoY3x8YSYmYykmJnZvaWQgMCE9bW9kZWxDb25maWcuZ2V0U2VsZWN0ZWRTdHlsZSgpLnNlbGVjdGVkQWNjVG90YWwmJihkPW1vZGVsQ29uZmlnLmdldFNlbGVjdGVkU3R5bGUoKS5zZWxlY3RlZEFjY1RvdGFsKTtyZXR1cm4gZHx8MH0KZnVuY3Rpb24gZ2V0U2VsZWN0ZWRBY2Nlc3NvcmllcyhhKXt2YXIgZD0iIjthPWEuY29uc2lkZXJJbnZlbnRvcnk\/YS5jb25zaWRlckludmVudG9yeToiMCI7dmFyIGM9InVuZGVmaW5lZCIhPXR5cGVvZiBtb2RlbENvbmZpZyYmImZ1bmN0aW9uIj09PXR5cGVvZiBtb2RlbENvbmZpZy5nZXRTZWxlY3RlZFN0eWxlOyhjfHxhJiZjKSYmdm9pZCAwIT1tb2RlbENvbmZpZy5nZXRTZWxlY3RlZFN0eWxlKCkuc2VsZWN0ZWRBY2NJZHMmJihkPW1vZGVsQ29uZmlnLmdldFNlbGVjdGVkU3R5bGUoKS5zZWxlY3RlZEFjY0lkcy5qb2luKCIsIikpO3JldHVybiBkfHwiIn0KZnVuY3Rpb24gZ2V0UHJvdGVjdGlvblBsYW5zQW1vdW50KGEpe3ZhciBkPTA7YS5oYXNPd25Qcm9wZXJ0eSgibm9UcmltU2VsZWN0IikmJiJ0cnVlIj09YS5ub1RyaW1TZWxlY3R8fCJ1c2VkY2Fycy5odG1sIj09JCgiI1BBR0VJRCIpLnZhbCgpfHwkKCIjUEFHRUlEIikudmFsKCk7YT1hLmNvbnNpZGVySW52ZW50b3J5P2EuY29uc2lkZXJJbnZlbnRvcnk6IjAiO3ZhciBjPSJ1bmRlZmluZWQiIT10eXBlb2YgbW9kZWxDb25maWcmJiJmdW5jdGlvbiI9PT10eXBlb2YgbW9kZWxDb25maWcuZ2V0U2VsZWN0ZWRTdHlsZTsoY3x8YSYmYykmJnZvaWQgMCE9bW9kZWxDb25maWcuZ2V0U2VsZWN0ZWRTdHlsZSgpLnNlbGVjdGVkUHJvdGVjdGlvblBsYW5Ub3RhbCYmKGQ9bW9kZWxDb25maWcuZ2V0U2VsZWN0ZWRTdHlsZSgpLnNlbGVjdGVkUHJvdGVjdGlvblBsYW5Ub3RhbCk7cmV0dXJuIGR8fDB9CmZ1bmN0aW9uIHBheW1lbnRDYWxjdWxhdG9yRm9ybWF0TnVtYmVyKGEpe3JldHVybiBhLnJlcGxhY2UoL1xCKD89KFxkezN9KSsoPyFcZCkpL2csIiwiKX1mdW5jdGlvbiBwYXltZW50Q2FsY3VsYXRvckNsaWNrZWRUcmlnZ2VyKGEsZCl7JChhKS50cmlnZ2VyKCJwYXltZW50Q2FsY3VsYXRvci5jbGljayIse29yaWdFdmVudDpkfSk7YT1uZXcgRXZlbnQoInBheW1lbnRDYWxjdWxhdG9yLmNsaWNrIik7ZG9jdW1lbnQuZGlzcGF0Y2hFdmVudChhKX1mdW5jdGlvbiBwYXltZW50Q2FsY3VsYXRvckNsaWNrZWROZXdWRFBUcmlnZ2VyKGEsZCl7dmFyIGM9JCgiI3BvcHVwbWFrZSIpLnZhbCgpLGI9JCgiI3BvcHVwbW9kZWwiKS52YWwoKSxlPSQoIiNwb3B1cHllYXIiKS52YWwoKTtnYVRyYWNrKCJfdHJhY2tFdmVudCIsIk5ldy1WRFAtT3V0Ym91bmQtY2xpY2tzIiwiQ2FsY3VsYXRyaWNlIixjKyItIitiKyItIitlKTtwYXltZW50Q2FsY3VsYXRvckNsaWNrZWRUcmlnZ2VyKGEsZCl9CmZ1bmN0aW9uIGZvcm1hdEVmZmVjdGl2ZVJhdGVUZXh0KGEsZCxjKXtjPXZvaWQgMD09PWM\/IiI6YzthPSI8c3BhbiAiK2QrIj4iK2ErIjwvc3Bhbj4lIjthPSJFTkdMSVNIIj09YWN0aXZlTGFuZz9hKyIgQVBSIjoiVGF1eCAiK2E7cmV0dXJuICQoIiNpc21vYmlsZSIpLnZhbCgpPyI8YnIvPjxkaXYgIitjKyI+KCIrYSsiKTwvZGl2PiI6IiA8ZGl2ICIrYysiPiggIithKyIgKTwvZGl2PiJ9OwovKiogL20vanMvdmFuaWxsYWpzL2ltYXNrLm1pbi5qcyAqKi8KIWZ1bmN0aW9uKHQsZSl7Im9iamVjdCI9PXR5cGVvZiBleHBvcnRzJiYidW5kZWZpbmVkIiE9dHlwZW9mIG1vZHVsZT9lKGV4cG9ydHMpOiJmdW5jdGlvbiI9PXR5cGVvZiBkZWZpbmUmJmRlZmluZS5hbWQ\/ZGVmaW5lKFsiZXhwb3J0cyJdLGUpOmUoKHQ9InVuZGVmaW5lZCIhPXR5cGVvZiBnbG9iYWxUaGlzP2dsb2JhbFRoaXM6dHx8c2VsZikuSU1hc2s9e30pfSh0aGlzLChmdW5jdGlvbih0KXsidXNlIHN0cmljdCI7dmFyIGU9InVuZGVmaW5lZCIhPXR5cGVvZiBnbG9iYWxUaGlzP2dsb2JhbFRoaXM6InVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3c\/d2luZG93OiJ1bmRlZmluZWQiIT10eXBlb2YgZ2xvYmFsP2dsb2JhbDoidW5kZWZpbmVkIiE9dHlwZW9mIHNlbGY\/c2VsZjp7fSxuPWZ1bmN0aW9uKHQpe3JldHVybiB0JiZ0Lk1hdGg9PU1hdGgmJnR9LGk9bigib2JqZWN0Ij09dHlwZW9mIGdsb2JhbFRoaXMmJmdsb2JhbFRoaXMpfHxuKCJvYmplY3QiPT10eXBlb2Ygd2luZG93JiZ3aW5kb3cpfHxuKCJvYmplY3QiPT10eXBlb2Ygc2VsZiYmc2VsZil8fG4oIm9iamVjdCI9PXR5cGVvZiBlJiZlKXx8ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30oKXx8RnVuY3Rpb24oInJldHVybiB0aGlzIikoKSxyPXt9LHU9ZnVuY3Rpb24odCl7dHJ5e3JldHVybiEhdCgpfWNhdGNoKHQpe3JldHVybiEwfX0scz0hdSgoZnVuY3Rpb24oKXtyZXR1cm4gNyE9T2JqZWN0LmRlZmluZVByb3BlcnR5KHt9LDEse2dldDpmdW5jdGlvbigpe3JldHVybiA3fX0pWzFdfSkpLGE9IXUoKGZ1bmN0aW9uKCl7dmFyIHQ9ZnVuY3Rpb24oKXt9LmJpbmQoKTtyZXR1cm4iZnVuY3Rpb24iIT10eXBlb2YgdHx8dC5oYXNPd25Qcm9wZXJ0eSgicHJvdG90eXBlIil9KSksbz1hLGw9RnVuY3Rpb24ucHJvdG90eXBlLmNhbGwsaD1vP2wuYmluZChsKTpmdW5jdGlvbigpe3JldHVybiBsLmFwcGx5KGwsYXJndW1lbnRzKX0sYz17fSxmPXt9LnByb3BlcnR5SXNFbnVtZXJhYmxlLHA9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcixkPXAmJiFmLmNhbGwoezE6Mn0sMSk7Yy5mPWQ\/ZnVuY3Rpb24odCl7dmFyIGU9cCh0aGlzLHQpO3JldHVybiEhZSYmZS5lbnVtZXJhYmxlfTpmO3ZhciB2LGcsaz1mdW5jdGlvbih0LGUpe3JldHVybntlbnVtZXJhYmxlOiEoMSZ0KSxjb25maWd1cmFibGU6ISgyJnQpLHdyaXRhYmxlOiEoNCZ0KSx2YWx1ZTplfX0seT1hLG09RnVuY3Rpb24ucHJvdG90eXBlLGI9bS5iaW5kLF89bS5jYWxsLEE9eSYmYi5iaW5kKF8sXyksQz15P2Z1bmN0aW9uKHQpe3JldHVybiB0JiZBKHQpfTpmdW5jdGlvbih0KXtyZXR1cm4gdCYmZnVuY3Rpb24oKXtyZXR1cm4gXy5hcHBseSh0LGFyZ3VtZW50cyl9fSxFPUMsRj1FKHt9LnRvU3RyaW5nKSxTPUUoIiIuc2xpY2UpLHc9ZnVuY3Rpb24odCl7cmV0dXJuIFMoRih0KSw4LC0xKX0sQj1DLEQ9dSx4PXcsTT1pLk9iamVjdCxPPUIoIiIuc3BsaXQpLFA9RCgoZnVuY3Rpb24oKXtyZXR1cm4hTSgieiIpLnByb3BlcnR5SXNFbnVtZXJhYmxlKDApfSkpP2Z1bmN0aW9uKHQpe3JldHVybiJTdHJpbmciPT14KHQpP08odCwiIik6TSh0KX06TSxUPWkuVHlwZUVycm9yLEk9ZnVuY3Rpb24odCl7aWYobnVsbD09dCl0aHJvdyBUKCJDYW4ndCBjYWxsIG1ldGhvZCBvbiAiK3QpO3JldHVybiB0fSxqPVAsUj1JLFY9ZnVuY3Rpb24odCl7cmV0dXJuIGooUih0KSl9LEw9ZnVuY3Rpb24odCl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIHR9LE49TCxVPWZ1bmN0aW9uKHQpe3JldHVybiJvYmplY3QiPT10eXBlb2YgdD9udWxsIT09dDpOKHQpfSx6PWkscT1MLEg9ZnVuY3Rpb24odCl7cmV0dXJuIHEodCk\/dDp2b2lkIDB9LFk9ZnVuY3Rpb24odCxlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aDwyP0goelt0XSk6elt0XSYmelt0XVtlXX0sWj1DKHt9LmlzUHJvdG90eXBlT2YpLEc9WSgibmF2aWdhdG9yIiwidXNlckFnZW50Iil8fCIiLEs9aSwkPUcsVz1LLnByb2Nlc3MsWD1LLkRlbm8sSj1XJiZXLnZlcnNpb25zfHxYJiZYLnZlcnNpb24sUT1KJiZKLnY4O1EmJihnPSh2PVEuc3BsaXQoIi4iKSlbMF0+MCYmdlswXTw0PzE6Kyh2WzBdK3ZbMV0pKSwhZyYmJCYmKCEodj0kLm1hdGNoKC9FZGdlXC8oXGQrKS8pKXx8dlsxXT49NzQpJiYodj0kLm1hdGNoKC9DaHJvbWVcLyhcZCspLykpJiYoZz0rdlsxXSk7dmFyIHR0PWcsZXQ9dSxudD0hIU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMmJiFldCgoZnVuY3Rpb24oKXt2YXIgdD1TeW1ib2woKTtyZXR1cm4hU3RyaW5nKHQpfHwhKE9iamVjdCh0KWluc3RhbmNlb2YgU3ltYm9sKXx8IVN5bWJvbC5zaGFtJiZ0dCYmdHQ8NDF9KSksaXQ9bnQmJiFTeW1ib2wuc2hhbSYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3IscnQ9WSx1dD1MLHN0PVosYXQ9aXQsb3Q9aS5PYmplY3QsbHQ9YXQ\/ZnVuY3Rpb24odCl7cmV0dXJuInN5bWJvbCI9PXR5cGVvZiB0fTpmdW5jdGlvbih0KXt2YXIgZT1ydCgiU3ltYm9sIik7cmV0dXJuIHV0KGUpJiZzdChlLnByb3RvdHlwZSxvdCh0KSl9LGh0PWkuU3RyaW5nLGN0PUwsZnQ9ZnVuY3Rpb24odCl7dHJ5e3JldHVybiBodCh0KX1jYXRjaCh0KXtyZXR1cm4iT2JqZWN0In19LHB0PWkuVHlwZUVycm9yLGR0PWZ1bmN0aW9uKHQpe2lmKGN0KHQpKXJldHVybiB0O3Rocm93IHB0KGZ0KHQpKyIgaXMgbm90IGEgZnVuY3Rpb24iKX0sdnQ9aCxndD1MLGt0PVUseXQ9aS5UeXBlRXJyb3IsbXQ9e2V4cG9ydHM6e319LGJ0PWksX3Q9T2JqZWN0LmRlZmluZVByb3BlcnR5LEF0PWZ1bmN0aW9uKHQsZSl7dHJ5e190KGJ0LHQse3ZhbHVlOmUsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSl9Y2F0Y2gobil7YnRbdF09ZX1yZXR1cm4gZX0sQ3Q9QXQsRXQ9Il9fY29yZS1qc19zaGFyZWRfXyIsRnQ9aVtFdF18fEN0KEV0LHt9KSxTdD1GdDsobXQuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3JldHVybiBTdFt0XXx8KFN0W3RdPXZvaWQgMCE9PWU\/ZTp7fSl9KSgidmVyc2lvbnMiLFtdKS5wdXNoKHt2ZXJzaW9uOiIzLjIxLjAiLG1vZGU6Imdsb2JhbCIsY29weXJpZ2h0OiKpIDIwMTQtMjAyMiBEZW5pcyBQdXNoa2FyZXYgKHpsb2lyb2NrLnJ1KSIsbGljZW5zZToiaHR0cHM6Ly9naXRodWIuY29tL3psb2lyb2NrL2NvcmUtanMvYmxvYi92My4yMS4wL0xJQ0VOU0UiLHNvdXJjZToiaHR0cHM6Ly9naXRodWIuY29tL3psb2lyb2NrL2NvcmUtanMifSk7dmFyIHd0PUksQnQ9aS5PYmplY3QsRHQ9ZnVuY3Rpb24odCl7cmV0dXJuIEJ0KHd0KHQpKX0seHQ9RHQsTXQ9Qyh7fS5oYXNPd25Qcm9wZXJ0eSksT3Q9T2JqZWN0Lmhhc093bnx8ZnVuY3Rpb24odCxlKXtyZXR1cm4gTXQoeHQodCksZSl9LFB0PUMsVHQ9MCxJdD1NYXRoLnJhbmRvbSgpLGp0PVB0KDEuLnRvU3RyaW5nKSxSdD1mdW5jdGlvbih0KXtyZXR1cm4iU3ltYm9sKCIrKHZvaWQgMD09PXQ\/IiI6dCkrIilfIitqdCgrK1R0K0l0LDM2KX0sVnQ9aSxMdD1tdC5leHBvcnRzLE50PU90LFV0PVJ0LHp0PW50LHF0PWl0LEh0PUx0KCJ3a3MiKSxZdD1WdC5TeW1ib2wsWnQ9WXQmJll0LmZvcixHdD1xdD9ZdDpZdCYmWXQud2l0aG91dFNldHRlcnx8VXQsS3Q9ZnVuY3Rpb24odCl7aWYoIU50KEh0LHQpfHwhenQmJiJzdHJpbmciIT10eXBlb2YgSHRbdF0pe3ZhciBlPSJTeW1ib2wuIit0O3p0JiZOdChZdCx0KT9IdFt0XT1ZdFt0XTpIdFt0XT1xdCYmWnQ\/WnQoZSk6R3QoZSl9cmV0dXJuIEh0W3RdfSwkdD1oLFd0PVUsWHQ9bHQsSnQ9ZnVuY3Rpb24odCxlKXt2YXIgbj10W2VdO3JldHVybiBudWxsPT1uP3ZvaWQgMDpkdChuKX0sUXQ9ZnVuY3Rpb24odCxlKXt2YXIgbixpO2lmKCJzdHJpbmciPT09ZSYmZ3Qobj10LnRvU3RyaW5nKSYmIWt0KGk9dnQobix0KSkpcmV0dXJuIGk7aWYoZ3Qobj10LnZhbHVlT2YpJiYha3QoaT12dChuLHQpKSlyZXR1cm4gaTtpZigic3RyaW5nIiE9PWUmJmd0KG49dC50b1N0cmluZykmJiFrdChpPXZ0KG4sdCkpKXJldHVybiBpO3Rocm93IHl0KCJDYW4ndCBjb252ZXJ0IG9iamVjdCB0byBwcmltaXRpdmUgdmFsdWUiKX0sdGU9S3QsZWU9aS5UeXBlRXJyb3IsbmU9dGUoInRvUHJpbWl0aXZlIiksaWU9ZnVuY3Rpb24odCxlKXtpZighV3QodCl8fFh0KHQpKXJldHVybiB0O3ZhciBuLGk9SnQodCxuZSk7aWYoaSl7aWYodm9pZCAwPT09ZSYmKGU9ImRlZmF1bHQiKSxuPSR0KGksdCxlKSwhV3Qobil8fFh0KG4pKXJldHVybiBuO3Rocm93IGVlKCJDYW4ndCBjb252ZXJ0IG9iamVjdCB0byBwcmltaXRpdmUgdmFsdWUiKX1yZXR1cm4gdm9pZCAwPT09ZSYmKGU9Im51bWJlciIpLFF0KHQsZSl9LHJlPWx0LHVlPWZ1bmN0aW9uKHQpe3ZhciBlPWllKHQsInN0cmluZyIpO3JldHVybiByZShlKT9lOmUrIiJ9LHNlPVUsYWU9aS5kb2N1bWVudCxvZT1zZShhZSkmJnNlKGFlLmNyZWF0ZUVsZW1lbnQpLGxlPWZ1bmN0aW9uKHQpe3JldHVybiBvZT9hZS5jcmVhdGVFbGVtZW50KHQpOnt9fSxoZT0hcyYmIXUoKGZ1bmN0aW9uKCl7cmV0dXJuIDchPU9iamVjdC5kZWZpbmVQcm9wZXJ0eShsZSgiZGl2IiksImEiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gN319KS5hfSkpLGNlPXMsZmU9aCxwZT1jLGRlPWssdmU9VixnZT11ZSxrZT1PdCx5ZT1oZSxtZT1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yO3IuZj1jZT9tZTpmdW5jdGlvbih0LGUpe2lmKHQ9dmUodCksZT1nZShlKSx5ZSl0cnl7cmV0dXJuIG1lKHQsZSl9Y2F0Y2godCl7fWlmKGtlKHQsZSkpcmV0dXJuIGRlKCFmZShwZS5mLHQsZSksdFtlXSl9O3ZhciBiZT17fSxfZT1zJiZ1KChmdW5jdGlvbigpe3JldHVybiA0MiE9T2JqZWN0LmRlZmluZVByb3BlcnR5KChmdW5jdGlvbigpe30pLCJwcm90b3R5cGUiLHt2YWx1ZTo0Mix3cml0YWJsZTohMX0pLnByb3RvdHlwZX0pKSxBZT1pLENlPVUsRWU9QWUuU3RyaW5nLEZlPUFlLlR5cGVFcnJvcixTZT1mdW5jdGlvbih0KXtpZihDZSh0KSlyZXR1cm4gdDt0aHJvdyBGZShFZSh0KSsiIGlzIG5vdCBhbiBvYmplY3QiKX0sd2U9cyxCZT1oZSxEZT1fZSx4ZT1TZSxNZT11ZSxPZT1pLlR5cGVFcnJvcixQZT1PYmplY3QuZGVmaW5lUHJvcGVydHksVGU9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcixJZT0iZW51bWVyYWJsZSIsamU9ImNvbmZpZ3VyYWJsZSIsUmU9IndyaXRhYmxlIjtiZS5mPXdlP0RlP2Z1bmN0aW9uKHQsZSxuKXtpZih4ZSh0KSxlPU1lKGUpLHhlKG4pLCJmdW5jdGlvbiI9PXR5cGVvZiB0JiYicHJvdG90eXBlIj09PWUmJiJ2YWx1ZSJpbiBuJiZSZSBpbiBuJiYhbi53cml0YWJsZSl7dmFyIGk9VGUodCxlKTtpJiZpLndyaXRhYmxlJiYodFtlXT1uLnZhbHVlLG49e2NvbmZpZ3VyYWJsZTpqZSBpbiBuP24uY29uZmlndXJhYmxlOmkuY29uZmlndXJhYmxlLGVudW1lcmFibGU6SWUgaW4gbj9uLmVudW1lcmFibGU6aS5lbnVtZXJhYmxlLHdyaXRhYmxlOiExfSl9cmV0dXJuIFBlKHQsZSxuKX06UGU6ZnVuY3Rpb24odCxlLG4pe2lmKHhlKHQpLGU9TWUoZSkseGUobiksQmUpdHJ5e3JldHVybiBQZSh0LGUsbil9Y2F0Y2godCl7fWlmKCJnZXQiaW4gbnx8InNldCJpbiBuKXRocm93IE9lKCJBY2Nlc3NvcnMgbm90IHN1cHBvcnRlZCIpO3JldHVybiJ2YWx1ZSJpbiBuJiYodFtlXT1uLnZhbHVlKSx0fTt2YXIgVmU9YmUsTGU9ayxOZT1zP2Z1bmN0aW9uKHQsZSxuKXtyZXR1cm4gVmUuZih0LGUsTGUoMSxuKSl9OmZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gdFtlXT1uLHR9LFVlPXtleHBvcnRzOnt9fSx6ZT1MLHFlPUZ0LEhlPUMoRnVuY3Rpb24udG9TdHJpbmcpO3plKHFlLmluc3BlY3RTb3VyY2UpfHwocWUuaW5zcGVjdFNvdXJjZT1mdW5jdGlvbih0KXtyZXR1cm4gSGUodCl9KTt2YXIgWWUsWmUsR2UsS2U9cWUuaW5zcGVjdFNvdXJjZSwkZT1MLFdlPUtlLFhlPWkuV2Vha01hcCxKZT0kZShYZSkmJi9uYXRpdmUgY29kZS8udGVzdChXZShYZSkpLFFlPW10LmV4cG9ydHMsdG49UnQsZW49UWUoImtleXMiKSxubj17fSxybj1KZSx1bj1pLHNuPUMsYW49VSxvbj1OZSxsbj1PdCxobj1GdCxjbj1mdW5jdGlvbih0KXtyZXR1cm4gZW5bdF18fChlblt0XT10bih0KSl9LGZuPW5uLHBuPSJPYmplY3QgYWxyZWFkeSBpbml0aWFsaXplZCIsZG49dW4uVHlwZUVycm9yLHZuPXVuLldlYWtNYXA7aWYocm58fGhuLnN0YXRlKXt2YXIgZ249aG4uc3RhdGV8fChobi5zdGF0ZT1uZXcgdm4pLGtuPXNuKGduLmdldCkseW49c24oZ24uaGFzKSxtbj1zbihnbi5zZXQpO1llPWZ1bmN0aW9uKHQsZSl7aWYoeW4oZ24sdCkpdGhyb3cgbmV3IGRuKHBuKTtyZXR1cm4gZS5mYWNhZGU9dCxtbihnbix0LGUpLGV9LFplPWZ1bmN0aW9uKHQpe3JldHVybiBrbihnbix0KXx8e319LEdlPWZ1bmN0aW9uKHQpe3JldHVybiB5bihnbix0KX19ZWxzZXt2YXIgYm49Y24oInN0YXRlIik7Zm5bYm5dPSEwLFllPWZ1bmN0aW9uKHQsZSl7aWYobG4odCxibikpdGhyb3cgbmV3IGRuKHBuKTtyZXR1cm4gZS5mYWNhZGU9dCxvbih0LGJuLGUpLGV9LFplPWZ1bmN0aW9uKHQpe3JldHVybiBsbih0LGJuKT90W2JuXTp7fX0sR2U9ZnVuY3Rpb24odCl7cmV0dXJuIGxuKHQsYm4pfX12YXIgX249e3NldDpZZSxnZXQ6WmUsaGFzOkdlLGVuZm9yY2U6ZnVuY3Rpb24odCl7cmV0dXJuIEdlKHQpP1plKHQpOlllKHQse30pfSxnZXR0ZXJGb3I6ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKGUpe3ZhciBuO2lmKCFhbihlKXx8KG49WmUoZSkpLnR5cGUhPT10KXRocm93IGRuKCJJbmNvbXBhdGlibGUgcmVjZWl2ZXIsICIrdCsiIHJlcXVpcmVkIik7cmV0dXJuIG59fX0sQW49cyxDbj1PdCxFbj1GdW5jdGlvbi5wcm90b3R5cGUsRm49QW4mJk9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IsU249Q24oRW4sIm5hbWUiKSx3bj1TbiYmInNvbWV0aGluZyI9PT1mdW5jdGlvbigpe30ubmFtZSxCbj1TbiYmKCFBbnx8QW4mJkZuKEVuLCJuYW1lIikuY29uZmlndXJhYmxlKSxEbj1pLHhuPUwsTW49T3QsT249TmUsUG49QXQsVG49S2UsSW49e0VYSVNUUzpTbixQUk9QRVI6d24sQ09ORklHVVJBQkxFOkJufS5DT05GSUdVUkFCTEUsam49X24uZ2V0LFJuPV9uLmVuZm9yY2UsVm49U3RyaW5nKFN0cmluZykuc3BsaXQoIlN0cmluZyIpOyhVZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxuLGkpe3ZhciByLHU9ISFpJiYhIWkudW5zYWZlLHM9ISFpJiYhIWkuZW51bWVyYWJsZSxhPSEhaSYmISFpLm5vVGFyZ2V0R2V0LG89aSYmdm9pZCAwIT09aS5uYW1lP2kubmFtZTplO3huKG4pJiYoIlN5bWJvbCgiPT09U3RyaW5nKG8pLnNsaWNlKDAsNykmJihvPSJbIitTdHJpbmcobykucmVwbGFjZSgvXlN5bWJvbFwoKFteKV0qKVwpLywiJDEiKSsiXSIpLCghTW4obiwibmFtZSIpfHxJbiYmbi5uYW1lIT09bykmJk9uKG4sIm5hbWUiLG8pLChyPVJuKG4pKS5zb3VyY2V8fChyLnNvdXJjZT1Wbi5qb2luKCJzdHJpbmciPT10eXBlb2Ygbz9vOiIiKSkpLHQhPT1Ebj8odT8hYSYmdFtlXSYmKHM9ITApOmRlbGV0ZSB0W2VdLHM\/dFtlXT1uOk9uKHQsZSxuKSk6cz90W2VdPW46UG4oZSxuKX0pKEZ1bmN0aW9uLnByb3RvdHlwZSwidG9TdHJpbmciLChmdW5jdGlvbigpe3JldHVybiB4bih0aGlzKSYmam4odGhpcykuc291cmNlfHxUbih0aGlzKX0pKTt2YXIgTG49e30sTm49TWF0aC5jZWlsLFVuPU1hdGguZmxvb3Isem49ZnVuY3Rpb24odCl7dmFyIGU9K3Q7cmV0dXJuIGUhPWV8fDA9PT1lPzA6KGU+MD9VbjpObikoZSl9LHFuPXpuLEhuPU1hdGgubWF4LFluPU1hdGgubWluLFpuPXpuLEduPU1hdGgubWluLEtuPWZ1bmN0aW9uKHQpe3JldHVybiB0PjA\/R24oWm4odCksOTAwNzE5OTI1NDc0MDk5MSk6MH0sJG49S24sV249VixYbj1mdW5jdGlvbih0LGUpe3ZhciBuPXFuKHQpO3JldHVybiBuPDA\/SG4obitlLDApOlluKG4sZSl9LEpuPWZ1bmN0aW9uKHQpe3JldHVybiAkbih0Lmxlbmd0aCl9LFFuPWZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihlLG4saSl7dmFyIHIsdT1XbihlKSxzPUpuKHUpLGE9WG4oaSxzKTtpZih0JiZuIT1uKXtmb3IoO3M+YTspaWYoKHI9dVthKytdKSE9cilyZXR1cm4hMH1lbHNlIGZvcig7cz5hO2ErKylpZigodHx8YSBpbiB1KSYmdVthXT09PW4pcmV0dXJuIHR8fGF8fDA7cmV0dXJuIXQmJi0xfX0sdGk9e2luY2x1ZGVzOlFuKCEwKSxpbmRleE9mOlFuKCExKX0sZWk9T3Qsbmk9VixpaT10aS5pbmRleE9mLHJpPW5uLHVpPUMoW10ucHVzaCksc2k9ZnVuY3Rpb24odCxlKXt2YXIgbixpPW5pKHQpLHI9MCx1PVtdO2ZvcihuIGluIGkpIWVpKHJpLG4pJiZlaShpLG4pJiZ1aSh1LG4pO2Zvcig7ZS5sZW5ndGg+cjspZWkoaSxuPWVbcisrXSkmJih+aWkodSxuKXx8dWkodSxuKSk7cmV0dXJuIHV9LGFpPVsiY29uc3RydWN0b3IiLCJoYXNPd25Qcm9wZXJ0eSIsImlzUHJvdG90eXBlT2YiLCJwcm9wZXJ0eUlzRW51bWVyYWJsZSIsInRvTG9jYWxlU3RyaW5nIiwidG9TdHJpbmciLCJ2YWx1ZU9mIl0sb2k9c2ksbGk9YWkuY29uY2F0KCJsZW5ndGgiLCJwcm90b3R5cGUiKTtMbi5mPU9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzfHxmdW5jdGlvbih0KXtyZXR1cm4gb2kodCxsaSl9O3ZhciBoaT17fTtoaS5mPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM7dmFyIGNpPVksZmk9TG4scGk9aGksZGk9U2Usdmk9QyhbXS5jb25jYXQpLGdpPWNpKCJSZWZsZWN0Iiwib3duS2V5cyIpfHxmdW5jdGlvbih0KXt2YXIgZT1maS5mKGRpKHQpKSxuPXBpLmY7cmV0dXJuIG4\/dmkoZSxuKHQpKTplfSxraT1PdCx5aT1naSxtaT1yLGJpPWJlLF9pPXUsQWk9TCxDaT0vI3xcLnByb3RvdHlwZVwuLyxFaT1mdW5jdGlvbih0LGUpe3ZhciBuPVNpW0ZpKHQpXTtyZXR1cm4gbj09Qml8fG4hPXdpJiYoQWkoZSk\/X2koZSk6ISFlKX0sRmk9RWkubm9ybWFsaXplPWZ1bmN0aW9uKHQpe3JldHVybiBTdHJpbmcodCkucmVwbGFjZShDaSwiLiIpLnRvTG93ZXJDYXNlKCl9LFNpPUVpLmRhdGE9e30sd2k9RWkuTkFUSVZFPSJOIixCaT1FaS5QT0xZRklMTD0iUCIsRGk9RWkseGk9aSxNaT1yLmYsT2k9TmUsUGk9VWUuZXhwb3J0cyxUaT1BdCxJaT1mdW5jdGlvbih0LGUsbil7Zm9yKHZhciBpPXlpKGUpLHI9YmkuZix1PW1pLmYscz0wO3M8aS5sZW5ndGg7cysrKXt2YXIgYT1pW3NdO2tpKHQsYSl8fG4mJmtpKG4sYSl8fHIodCxhLHUoZSxhKSl9fSxqaT1EaSxSaT1mdW5jdGlvbih0LGUpe3ZhciBuLGkscix1LHMsYT10LnRhcmdldCxvPXQuZ2xvYmFsLGw9dC5zdGF0O2lmKG49bz94aTpsP3hpW2FdfHxUaShhLHt9KTooeGlbYV18fHt9KS5wcm90b3R5cGUpZm9yKGkgaW4gZSl7aWYodT1lW2ldLHI9dC5ub1RhcmdldEdldD8ocz1NaShuLGkpKSYmcy52YWx1ZTpuW2ldLCFqaShvP2k6YSsobD8iLiI6IiMiKStpLHQuZm9yY2VkKSYmdm9pZCAwIT09cil7aWYodHlwZW9mIHU9PXR5cGVvZiByKWNvbnRpbnVlO0lpKHUscil9KHQuc2hhbXx8ciYmci5zaGFtKSYmT2kodSwic2hhbSIsITApLFBpKG4saSx1LHQpfX0sVmk9c2ksTGk9YWksTmk9T2JqZWN0LmtleXN8fGZ1bmN0aW9uKHQpe3JldHVybiBWaSh0LExpKX0sVWk9cyx6aT1DLHFpPWgsSGk9dSxZaT1OaSxaaT1oaSxHaT1jLEtpPUR0LCRpPVAsV2k9T2JqZWN0LmFzc2lnbixYaT1PYmplY3QuZGVmaW5lUHJvcGVydHksSmk9emkoW10uY29uY2F0KSxRaT0hV2l8fEhpKChmdW5jdGlvbigpe2lmKFVpJiYxIT09V2koe2I6MX0sV2koWGkoe30sImEiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe1hpKHRoaXMsImIiLHt2YWx1ZTozLGVudW1lcmFibGU6ITF9KX19KSx7YjoyfSkpLmIpcmV0dXJuITA7dmFyIHQ9e30sZT17fSxuPVN5bWJvbCgpLGk9ImFiY2RlZmdoaWprbG1ub3BxcnN0IjtyZXR1cm4gdFtuXT03LGkuc3BsaXQoIiIpLmZvckVhY2goKGZ1bmN0aW9uKHQpe2VbdF09dH0pKSw3IT1XaSh7fSx0KVtuXXx8WWkoV2koe30sZSkpLmpvaW4oIiIpIT1pfSkpP2Z1bmN0aW9uKHQsZSl7Zm9yKHZhciBuPUtpKHQpLGk9YXJndW1lbnRzLmxlbmd0aCxyPTEsdT1aaS5mLHM9R2kuZjtpPnI7KWZvcih2YXIgYSxvPSRpKGFyZ3VtZW50c1tyKytdKSxsPXU\/SmkoWWkobyksdShvKSk6WWkobyksaD1sLmxlbmd0aCxjPTA7aD5jOylhPWxbYysrXSxVaSYmIXFpKHMsbyxhKXx8KG5bYV09b1thXSk7cmV0dXJuIG59OldpLHRyPVFpO1JpKHt0YXJnZXQ6Ik9iamVjdCIsc3RhdDohMCxmb3JjZWQ6T2JqZWN0LmFzc2lnbiE9PXRyfSx7YXNzaWduOnRyfSk7dmFyIGVyPXt9O2VyW0t0KCJ0b1N0cmluZ1RhZyIpXT0ieiI7dmFyIG5yPWksaXI9IltvYmplY3Qgel0iPT09U3RyaW5nKGVyKSxycj1MLHVyPXcsc3I9S3QoInRvU3RyaW5nVGFnIiksYXI9bnIuT2JqZWN0LG9yPSJBcmd1bWVudHMiPT11cihmdW5jdGlvbigpe3JldHVybiBhcmd1bWVudHN9KCkpLGxyPWlyP3VyOmZ1bmN0aW9uKHQpe3ZhciBlLG4saTtyZXR1cm4gdm9pZCAwPT09dD8iVW5kZWZpbmVkIjpudWxsPT09dD8iTnVsbCI6InN0cmluZyI9PXR5cGVvZihuPWZ1bmN0aW9uKHQsZSl7dHJ5e3JldHVybiB0W2VdfWNhdGNoKHQpe319KGU9YXIodCksc3IpKT9uOm9yP3VyKGUpOiJPYmplY3QiPT0oaT11cihlKSkmJnJyKGUuY2FsbGVlKT8iQXJndW1lbnRzIjppfSxocj1pLlN0cmluZyxjcj1mdW5jdGlvbih0KXtpZigiU3ltYm9sIj09PWxyKHQpKXRocm93IFR5cGVFcnJvcigiQ2Fubm90IGNvbnZlcnQgYSBTeW1ib2wgdmFsdWUgdG8gYSBzdHJpbmciKTtyZXR1cm4gaHIodCl9LGZyPXpuLHByPWNyLGRyPUksdnI9aS5SYW5nZUVycm9yLGdyPWZ1bmN0aW9uKHQpe3ZhciBlPXByKGRyKHRoaXMpKSxuPSIiLGk9ZnIodCk7aWYoaTwwfHxpPT0xLzApdGhyb3cgdnIoIldyb25nIG51bWJlciBvZiByZXBldGl0aW9ucyIpO2Zvcig7aT4wOyhpPj4+PTEpJiYoZSs9ZSkpMSZpJiYobis9ZSk7cmV0dXJuIG59O1JpKHt0YXJnZXQ6IlN0cmluZyIscHJvdG86ITB9LHtyZXBlYXQ6Z3J9KTt2YXIga3I9Qyx5cj1Lbixtcj1jcixicj1JLF9yPWtyKGdyKSxBcj1rcigiIi5zbGljZSksQ3I9TWF0aC5jZWlsLEVyPWZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihlLG4saSl7dmFyIHIsdSxzPW1yKGJyKGUpKSxhPXlyKG4pLG89cy5sZW5ndGgsbD12b2lkIDA9PT1pPyIgIjptcihpKTtyZXR1cm4gYTw9b3x8IiI9PWw\/czooKHU9X3IobCxDcigocj1hLW8pL2wubGVuZ3RoKSkpLmxlbmd0aD5yJiYodT1Bcih1LDAscikpLHQ\/cyt1OnUrcyl9fSxGcj17c3RhcnQ6RXIoITEpLGVuZDpFcighMCl9LFNyPS9WZXJzaW9uXC8xMCg\/OlwuXGQrKXsxLDJ9KD86IFtcdy4vXSspPyg\/OiBNb2JpbGVcL1x3Kyk\/IFNhZmFyaVwvLy50ZXN0KEcpLHdyPUZyLnN0YXJ0O1JpKHt0YXJnZXQ6IlN0cmluZyIscHJvdG86ITAsZm9yY2VkOlNyfSx7cGFkU3RhcnQ6ZnVuY3Rpb24odCl7cmV0dXJuIHdyKHRoaXMsdCxhcmd1bWVudHMubGVuZ3RoPjE\/YXJndW1lbnRzWzFdOnZvaWQgMCl9fSk7dmFyIEJyPUZyLmVuZDtmdW5jdGlvbiBEcih0KXtyZXR1cm4gRHI9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I\/ZnVuY3Rpb24odCl7cmV0dXJuIHR5cGVvZiB0fTpmdW5jdGlvbih0KXtyZXR1cm4gdCYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmdC5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmdCE9PVN5bWJvbC5wcm90b3R5cGU\/InN5bWJvbCI6dHlwZW9mIHR9LERyKHQpfWZ1bmN0aW9uIHhyKHQsZSl7aWYoISh0IGluc3RhbmNlb2YgZSkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9ZnVuY3Rpb24gTXIodCxlKXtmb3IodmFyIG49MDtuPGUubGVuZ3RoO24rKyl7dmFyIGk9ZVtuXTtpLmVudW1lcmFibGU9aS5lbnVtZXJhYmxlfHwhMSxpLmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gaSYmKGkud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LGkua2V5LGkpfX1mdW5jdGlvbiBPcih0LGUsbil7cmV0dXJuIGUmJk1yKHQucHJvdG90eXBlLGUpLG4mJk1yKHQsbiksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksdH1mdW5jdGlvbiBQcih0LGUpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBlJiZudWxsIT09ZSl0aHJvdyBuZXcgVHlwZUVycm9yKCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiIpO3QucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZSYmZS5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTp0LHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSxlJiZJcih0LGUpfWZ1bmN0aW9uIFRyKHQpe3JldHVybiBUcj1PYmplY3Quc2V0UHJvdG90eXBlT2Y\/T2JqZWN0LmdldFByb3RvdHlwZU9mOmZ1bmN0aW9uKHQpe3JldHVybiB0Ll9fcHJvdG9fX3x8T2JqZWN0LmdldFByb3RvdHlwZU9mKHQpfSxUcih0KX1mdW5jdGlvbiBJcih0LGUpe3JldHVybiBJcj1PYmplY3Quc2V0UHJvdG90eXBlT2Z8fGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQuX19wcm90b19fPWUsdH0sSXIodCxlKX1mdW5jdGlvbiBqcih0LGUpe2lmKG51bGw9PXQpcmV0dXJue307dmFyIG4saSxyPWZ1bmN0aW9uKHQsZSl7aWYobnVsbD09dClyZXR1cm57fTt2YXIgbixpLHI9e30sdT1PYmplY3Qua2V5cyh0KTtmb3IoaT0wO2k8dS5sZW5ndGg7aSsrKW49dVtpXSxlLmluZGV4T2Yobik+PTB8fChyW25dPXRbbl0pO3JldHVybiByfSh0LGUpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciB1PU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHModCk7Zm9yKGk9MDtpPHUubGVuZ3RoO2krKyluPXVbaV0sZS5pbmRleE9mKG4pPj0wfHxPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwodCxuKSYmKHJbbl09dFtuXSl9cmV0dXJuIHJ9ZnVuY3Rpb24gUnIodCxlKXtpZihlJiYoIm9iamVjdCI9PXR5cGVvZiBlfHwiZnVuY3Rpb24iPT10eXBlb2YgZSkpcmV0dXJuIGU7aWYodm9pZCAwIT09ZSl0aHJvdyBuZXcgVHlwZUVycm9yKCJEZXJpdmVkIGNvbnN0cnVjdG9ycyBtYXkgb25seSByZXR1cm4gb2JqZWN0IG9yIHVuZGVmaW5lZCIpO3JldHVybiBmdW5jdGlvbih0KXtpZih2b2lkIDA9PT10KXRocm93IG5ldyBSZWZlcmVuY2VFcnJvcigidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkIik7cmV0dXJuIHR9KHQpfWZ1bmN0aW9uIFZyKHQpe3ZhciBlPWZ1bmN0aW9uKCl7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBSZWZsZWN0fHwhUmVmbGVjdC5jb25zdHJ1Y3QpcmV0dXJuITE7aWYoUmVmbGVjdC5jb25zdHJ1Y3Quc2hhbSlyZXR1cm4hMTtpZigiZnVuY3Rpb24iPT10eXBlb2YgUHJveHkpcmV0dXJuITA7dHJ5e3JldHVybiBCb29sZWFuLnByb3RvdHlwZS52YWx1ZU9mLmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3QoQm9vbGVhbixbXSwoZnVuY3Rpb24oKXt9KSkpLCEwfWNhdGNoKHQpe3JldHVybiExfX0oKTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixpPVRyKHQpO2lmKGUpe3ZhciByPVRyKHRoaXMpLmNvbnN0cnVjdG9yO249UmVmbGVjdC5jb25zdHJ1Y3QoaSxhcmd1bWVudHMscil9ZWxzZSBuPWkuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiBScih0aGlzLG4pfX1mdW5jdGlvbiBMcih0LGUpe2Zvcig7IU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LGUpJiZudWxsIT09KHQ9VHIodCkpOyk7cmV0dXJuIHR9ZnVuY3Rpb24gTnIoKXtyZXR1cm4gTnI9InVuZGVmaW5lZCIhPXR5cGVvZiBSZWZsZWN0JiZSZWZsZWN0LmdldD9SZWZsZWN0LmdldDpmdW5jdGlvbih0LGUsbil7dmFyIGk9THIodCxlKTtpZihpKXt2YXIgcj1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGksZSk7cmV0dXJuIHIuZ2V0P3IuZ2V0LmNhbGwoYXJndW1lbnRzLmxlbmd0aDwzP3Q6bik6ci52YWx1ZX19LE5yLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBVcih0LGUsbixpKXtyZXR1cm4gVXI9InVuZGVmaW5lZCIhPXR5cGVvZiBSZWZsZWN0JiZSZWZsZWN0LnNldD9SZWZsZWN0LnNldDpmdW5jdGlvbih0LGUsbixpKXt2YXIgcix1PUxyKHQsZSk7aWYodSl7aWYoKHI9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih1LGUpKS5zZXQpcmV0dXJuIHIuc2V0LmNhbGwoaSxuKSwhMDtpZighci53cml0YWJsZSlyZXR1cm4hMX1pZihyPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoaSxlKSl7aWYoIXIud3JpdGFibGUpcmV0dXJuITE7ci52YWx1ZT1uLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLGUscil9ZWxzZSFmdW5jdGlvbih0LGUsbil7ZSBpbiB0P09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LGUse3ZhbHVlOm4sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTp0W2VdPW59KGksZSxuKTtyZXR1cm4hMH0sVXIodCxlLG4saSl9ZnVuY3Rpb24genIodCxlLG4saSxyKXtpZighVXIodCxlLG4saXx8dCkmJnIpdGhyb3cgbmV3IEVycm9yKCJmYWlsZWQgdG8gc2V0IHByb3BlcnR5Iik7cmV0dXJuIG59ZnVuY3Rpb24gcXIodCxlKXtyZXR1cm4gZnVuY3Rpb24odCl7aWYoQXJyYXkuaXNBcnJheSh0KSlyZXR1cm4gdH0odCl8fGZ1bmN0aW9uKHQsZSl7dmFyIG49bnVsbD09dD9udWxsOiJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZ0W1N5bWJvbC5pdGVyYXRvcl18fHRbIkBAaXRlcmF0b3IiXTtpZihudWxsPT1uKXJldHVybjt2YXIgaSxyLHU9W10scz0hMCxhPSExO3RyeXtmb3Iobj1uLmNhbGwodCk7IShzPShpPW4ubmV4dCgpKS5kb25lKSYmKHUucHVzaChpLnZhbHVlKSwhZXx8dS5sZW5ndGghPT1lKTtzPSEwKTt9Y2F0Y2godCl7YT0hMCxyPXR9ZmluYWxseXt0cnl7c3x8bnVsbD09bi5yZXR1cm58fG4ucmV0dXJuKCl9ZmluYWxseXtpZihhKXRocm93IHJ9fXJldHVybiB1fSh0LGUpfHxmdW5jdGlvbih0LGUpe2lmKCF0KXJldHVybjtpZigic3RyaW5nIj09dHlwZW9mIHQpcmV0dXJuIEhyKHQsZSk7dmFyIG49T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHQpLnNsaWNlKDgsLTEpOyJPYmplY3QiPT09biYmdC5jb25zdHJ1Y3RvciYmKG49dC5jb25zdHJ1Y3Rvci5uYW1lKTtpZigiTWFwIj09PW58fCJTZXQiPT09bilyZXR1cm4gQXJyYXkuZnJvbSh0KTtpZigiQXJndW1lbnRzIj09PW58fC9eKD86VWl8SSludCg\/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk\/QXJyYXkkLy50ZXN0KG4pKXJldHVybiBIcih0LGUpfSh0LGUpfHxmdW5jdGlvbigpe3Rocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuIil9KCl9ZnVuY3Rpb24gSHIodCxlKXsobnVsbD09ZXx8ZT50Lmxlbmd0aCkmJihlPXQubGVuZ3RoKTtmb3IodmFyIG49MCxpPW5ldyBBcnJheShlKTtuPGU7bisrKWlbbl09dFtuXTtyZXR1cm4gaX1SaSh7dGFyZ2V0OiJTdHJpbmciLHByb3RvOiEwLGZvcmNlZDpTcn0se3BhZEVuZDpmdW5jdGlvbih0KXtyZXR1cm4gQnIodGhpcyx0LGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwKX19KSxSaSh7Z2xvYmFsOiEwfSx7Z2xvYmFsVGhpczppfSk7dmFyIFlyPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdChlKXt4cih0aGlzLHQpLE9iamVjdC5hc3NpZ24odGhpcyx7aW5zZXJ0ZWQ6IiIscmF3SW5zZXJ0ZWQ6IiIsc2tpcDohMSx0YWlsU2hpZnQ6MH0sZSl9cmV0dXJuIE9yKHQsW3trZXk6ImFnZ3JlZ2F0ZSIsdmFsdWU6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMucmF3SW5zZXJ0ZWQrPXQucmF3SW5zZXJ0ZWQsdGhpcy5za2lwPXRoaXMuc2tpcHx8dC5za2lwLHRoaXMuaW5zZXJ0ZWQrPXQuaW5zZXJ0ZWQsdGhpcy50YWlsU2hpZnQrPXQudGFpbFNoaWZ0LHRoaXN9fSx7a2V5OiJvZmZzZXQiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnRhaWxTaGlmdCt0aGlzLmluc2VydGVkLmxlbmd0aH19XSksdH0oKTtmdW5jdGlvbiBacih0KXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIHR8fHQgaW5zdGFuY2VvZiBTdHJpbmd9dmFyIEdyPSJOT05FIixLcj0iTEVGVCIsJHI9IkZPUkNFX0xFRlQiLFdyPSJSSUdIVCIsWHI9IkZPUkNFX1JJR0hUIjtmdW5jdGlvbiBKcih0KXtyZXR1cm4gdC5yZXBsYWNlKC8oWy4qKz9ePSE6JHt9KCl8W1xdXC9cXF0pL2csIlxcJDEiKX1mdW5jdGlvbiBRcih0KXtyZXR1cm4gQXJyYXkuaXNBcnJheSh0KT90Olt0LG5ldyBZcl19ZnVuY3Rpb24gdHUodCxlKXtpZihlPT09dClyZXR1cm4hMDt2YXIgbixpPUFycmF5LmlzQXJyYXkoZSkscj1BcnJheS5pc0FycmF5KHQpO2lmKGkmJnIpe2lmKGUubGVuZ3RoIT10Lmxlbmd0aClyZXR1cm4hMTtmb3Iobj0wO248ZS5sZW5ndGg7bisrKWlmKCF0dShlW25dLHRbbl0pKXJldHVybiExO3JldHVybiEwfWlmKGkhPXIpcmV0dXJuITE7aWYoZSYmdCYmIm9iamVjdCI9PT1EcihlKSYmIm9iamVjdCI9PT1Ecih0KSl7dmFyIHU9ZSBpbnN0YW5jZW9mIERhdGUscz10IGluc3RhbmNlb2YgRGF0ZTtpZih1JiZzKXJldHVybiBlLmdldFRpbWUoKT09dC5nZXRUaW1lKCk7aWYodSE9cylyZXR1cm4hMTt2YXIgYT1lIGluc3RhbmNlb2YgUmVnRXhwLG89dCBpbnN0YW5jZW9mIFJlZ0V4cDtpZihhJiZvKXJldHVybiBlLnRvU3RyaW5nKCk9PXQudG9TdHJpbmcoKTtpZihhIT1vKXJldHVybiExO3ZhciBsPU9iamVjdC5rZXlzKGUpO2ZvcihuPTA7bjxsLmxlbmd0aDtuKyspaWYoIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LGxbbl0pKXJldHVybiExO2ZvcihuPTA7bjxsLmxlbmd0aDtuKyspaWYoIXR1KHRbbFtuXV0sZVtsW25dXSkpcmV0dXJuITE7cmV0dXJuITB9cmV0dXJuISghZXx8IXR8fCJmdW5jdGlvbiIhPXR5cGVvZiBlfHwiZnVuY3Rpb24iIT10eXBlb2YgdCkmJmUudG9TdHJpbmcoKT09PXQudG9TdHJpbmcoKX12YXIgZXU9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KGUsbixpLHIpe2Zvcih4cih0aGlzLHQpLHRoaXMudmFsdWU9ZSx0aGlzLmN1cnNvclBvcz1uLHRoaXMub2xkVmFsdWU9aSx0aGlzLm9sZFNlbGVjdGlvbj1yO3RoaXMudmFsdWUuc2xpY2UoMCx0aGlzLnN0YXJ0Q2hhbmdlUG9zKSE9PXRoaXMub2xkVmFsdWUuc2xpY2UoMCx0aGlzLnN0YXJ0Q2hhbmdlUG9zKTspLS10aGlzLm9sZFNlbGVjdGlvbi5zdGFydH1yZXR1cm4gT3IodCxbe2tleToic3RhcnRDaGFuZ2VQb3MiLGdldDpmdW5jdGlvbigpe3JldHVybiBNYXRoLm1pbih0aGlzLmN1cnNvclBvcyx0aGlzLm9sZFNlbGVjdGlvbi5zdGFydCl9fSx7a2V5OiJpbnNlcnRlZENvdW50IixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jdXJzb3JQb3MtdGhpcy5zdGFydENoYW5nZVBvc319LHtrZXk6Imluc2VydGVkIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy52YWx1ZS5zdWJzdHIodGhpcy5zdGFydENoYW5nZVBvcyx0aGlzLmluc2VydGVkQ291bnQpfX0se2tleToicmVtb3ZlZENvdW50IixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gTWF0aC5tYXgodGhpcy5vbGRTZWxlY3Rpb24uZW5kLXRoaXMuc3RhcnRDaGFuZ2VQb3N8fHRoaXMub2xkVmFsdWUubGVuZ3RoLXRoaXMudmFsdWUubGVuZ3RoLDApfX0se2tleToicmVtb3ZlZCIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMub2xkVmFsdWUuc3Vic3RyKHRoaXMuc3RhcnRDaGFuZ2VQb3MsdGhpcy5yZW1vdmVkQ291bnQpfX0se2tleToiaGVhZCIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudmFsdWUuc3Vic3RyaW5nKDAsdGhpcy5zdGFydENoYW5nZVBvcyl9fSx7a2V5OiJ0YWlsIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy52YWx1ZS5zdWJzdHJpbmcodGhpcy5zdGFydENoYW5nZVBvcyt0aGlzLmluc2VydGVkQ291bnQpfX0se2tleToicmVtb3ZlRGlyZWN0aW9uIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4hdGhpcy5yZW1vdmVkQ291bnR8fHRoaXMuaW5zZXJ0ZWRDb3VudD9Hcjp0aGlzLm9sZFNlbGVjdGlvbi5lbmQhPT10aGlzLmN1cnNvclBvcyYmdGhpcy5vbGRTZWxlY3Rpb24uc3RhcnQhPT10aGlzLmN1cnNvclBvc3x8dGhpcy5vbGRTZWxlY3Rpb24uZW5kIT09dGhpcy5vbGRTZWxlY3Rpb24uc3RhcnQ\/S3I6V3J9fV0pLHR9KCksbnU9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KCl7dmFyIGU9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0\/YXJndW1lbnRzWzBdOiIiLG49YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0\/YXJndW1lbnRzWzFdOjAsaT1hcmd1bWVudHMubGVuZ3RoPjI\/YXJndW1lbnRzWzJdOnZvaWQgMDt4cih0aGlzLHQpLHRoaXMudmFsdWU9ZSx0aGlzLmZyb209bix0aGlzLnN0b3A9aX1yZXR1cm4gT3IodCxbe2tleToidG9TdHJpbmciLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudmFsdWV9fSx7a2V5OiJleHRlbmQiLHZhbHVlOmZ1bmN0aW9uKHQpe3RoaXMudmFsdWUrPVN0cmluZyh0KX19LHtrZXk6ImFwcGVuZFRvIix2YWx1ZTpmdW5jdGlvbih0KXtyZXR1cm4gdC5hcHBlbmQodGhpcy50b1N0cmluZygpLHt0YWlsOiEwfSkuYWdncmVnYXRlKHQuX2FwcGVuZFBsYWNlaG9sZGVyKCkpfX0se2tleToic3RhdGUiLGdldDpmdW5jdGlvbigpe3JldHVybnt2YWx1ZTp0aGlzLnZhbHVlLGZyb206dGhpcy5mcm9tLHN0b3A6dGhpcy5zdG9wfX0sc2V0OmZ1bmN0aW9uKHQpe09iamVjdC5hc3NpZ24odGhpcyx0KX19LHtrZXk6InVuc2hpZnQiLHZhbHVlOmZ1bmN0aW9uKHQpe2lmKCF0aGlzLnZhbHVlLmxlbmd0aHx8bnVsbCE9dCYmdGhpcy5mcm9tPj10KXJldHVybiIiO3ZhciBlPXRoaXMudmFsdWVbMF07cmV0dXJuIHRoaXMudmFsdWU9dGhpcy52YWx1ZS5zbGljZSgxKSxlfX0se2tleToic2hpZnQiLHZhbHVlOmZ1bmN0aW9uKCl7aWYoIXRoaXMudmFsdWUubGVuZ3RoKXJldHVybiIiO3ZhciB0PXRoaXMudmFsdWVbdGhpcy52YWx1ZS5sZW5ndGgtMV07cmV0dXJuIHRoaXMudmFsdWU9dGhpcy52YWx1ZS5zbGljZSgwLC0xKSx0fX1dKSx0fSgpO2Z1bmN0aW9uIGl1KHQpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp7fTtyZXR1cm4gbmV3IGl1LklucHV0TWFzayh0LGUpfXZhciBydT1mdW5jdGlvbigpe2Z1bmN0aW9uIHQoZSl7eHIodGhpcyx0KSx0aGlzLl92YWx1ZT0iIix0aGlzLl91cGRhdGUoT2JqZWN0LmFzc2lnbih7fSx0LkRFRkFVTFRTLGUpKSx0aGlzLmlzSW5pdGlhbGl6ZWQ9ITB9cmV0dXJuIE9yKHQsW3trZXk6InVwZGF0ZU9wdGlvbnMiLHZhbHVlOmZ1bmN0aW9uKHQpe09iamVjdC5rZXlzKHQpLmxlbmd0aCYmdGhpcy53aXRoVmFsdWVSZWZyZXNoKHRoaXMuX3VwZGF0ZS5iaW5kKHRoaXMsdCkpfX0se2tleToiX3VwZGF0ZSIsdmFsdWU6ZnVuY3Rpb24odCl7T2JqZWN0LmFzc2lnbih0aGlzLHQpfX0se2tleToic3RhdGUiLGdldDpmdW5jdGlvbigpe3JldHVybntfdmFsdWU6dGhpcy52YWx1ZX19LHNldDpmdW5jdGlvbih0KXt0aGlzLl92YWx1ZT10Ll92YWx1ZX19LHtrZXk6InJlc2V0Iix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuX3ZhbHVlPSIifX0se2tleToidmFsdWUiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl92YWx1ZX0sc2V0OmZ1bmN0aW9uKHQpe3RoaXMucmVzb2x2ZSh0KX19LHtrZXk6InJlc29sdmUiLHZhbHVlOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnJlc2V0KCksdGhpcy5hcHBlbmQodCx7aW5wdXQ6ITB9LCIiKSx0aGlzLmRvQ29tbWl0KCksdGhpcy52YWx1ZX19LHtrZXk6InVubWFza2VkVmFsdWUiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnZhbHVlfSxzZXQ6ZnVuY3Rpb24odCl7dGhpcy5yZXNldCgpLHRoaXMuYXBwZW5kKHQse30sIiIpLHRoaXMuZG9Db21taXQoKX19LHtrZXk6InR5cGVkVmFsdWUiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmRvUGFyc2UodGhpcy52YWx1ZSl9LHNldDpmdW5jdGlvbih0KXt0aGlzLnZhbHVlPXRoaXMuZG9Gb3JtYXQodCl9fSx7a2V5OiJyYXdJbnB1dFZhbHVlIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5leHRyYWN0SW5wdXQoMCx0aGlzLnZhbHVlLmxlbmd0aCx7cmF3OiEwfSl9LHNldDpmdW5jdGlvbih0KXt0aGlzLnJlc2V0KCksdGhpcy5hcHBlbmQodCx7cmF3OiEwfSwiIiksdGhpcy5kb0NvbW1pdCgpfX0se2tleToiaXNDb21wbGV0ZSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuITB9fSx7a2V5OiJpc0ZpbGxlZCIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaXNDb21wbGV0ZX19LHtrZXk6Im5lYXJlc3RJbnB1dFBvcyIsdmFsdWU6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdH19LHtrZXk6ImV4dHJhY3RJbnB1dCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06MCxlPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp0aGlzLnZhbHVlLmxlbmd0aDtyZXR1cm4gdGhpcy52YWx1ZS5zbGljZSh0LGUpfX0se2tleToiZXh0cmFjdFRhaWwiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0\/YXJndW1lbnRzWzBdOjAsZT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06dGhpcy52YWx1ZS5sZW5ndGg7cmV0dXJuIG5ldyBudSh0aGlzLmV4dHJhY3RJbnB1dCh0LGUpLHQpfX0se2tleToiYXBwZW5kVGFpbCIsdmFsdWU6ZnVuY3Rpb24odCl7cmV0dXJuIFpyKHQpJiYodD1uZXcgbnUoU3RyaW5nKHQpKSksdC5hcHBlbmRUbyh0aGlzKX19LHtrZXk6Il9hcHBlbmRDaGFyUmF3Iix2YWx1ZTpmdW5jdGlvbih0KXtyZXR1cm4gdD8odGhpcy5fdmFsdWUrPXQsbmV3IFlyKHtpbnNlcnRlZDp0LHJhd0luc2VydGVkOnR9KSk6bmV3IFlyfX0se2tleToiX2FwcGVuZENoYXIiLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlLG49YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0\/YXJndW1lbnRzWzFdOnt9LGk9YXJndW1lbnRzLmxlbmd0aD4yP2FyZ3VtZW50c1syXTp2b2lkIDAscj10aGlzLnN0YXRlLHU9UXIodGhpcy5kb1ByZXBhcmUodCxuKSkscz1xcih1LDIpO2lmKHQ9c1swXSwoZT0oZT1zWzFdKS5hZ2dyZWdhdGUodGhpcy5fYXBwZW5kQ2hhclJhdyh0LG4pKSkuaW5zZXJ0ZWQpe3ZhciBhLG89ITEhPT10aGlzLmRvVmFsaWRhdGUobik7aWYobyYmbnVsbCE9aSl7dmFyIGw9dGhpcy5zdGF0ZTshMD09PXRoaXMub3ZlcndyaXRlJiYoYT1pLnN0YXRlLGkudW5zaGlmdCh0aGlzLnZhbHVlLmxlbmd0aCkpO3ZhciBoPXRoaXMuYXBwZW5kVGFpbChpKTsobz1oLnJhd0luc2VydGVkPT09aS50b1N0cmluZygpKSYmaC5pbnNlcnRlZHx8InNoaWZ0IiE9PXRoaXMub3ZlcndyaXRlfHwodGhpcy5zdGF0ZT1sLGE9aS5zdGF0ZSxpLnNoaWZ0KCksbz0oaD10aGlzLmFwcGVuZFRhaWwoaSkpLnJhd0luc2VydGVkPT09aS50b1N0cmluZygpKSxvJiZoLmluc2VydGVkJiYodGhpcy5zdGF0ZT1sKX1vfHwoZT1uZXcgWXIsdGhpcy5zdGF0ZT1yLGkmJmEmJihpLnN0YXRlPWEpKX1yZXR1cm4gZX19LHtrZXk6Il9hcHBlbmRQbGFjZWhvbGRlciIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IFlyfX0se2tleToiX2FwcGVuZEVhZ2VyIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiBuZXcgWXJ9fSx7a2V5OiJhcHBlbmQiLHZhbHVlOmZ1bmN0aW9uKHQsZSxuKXtpZighWnIodCkpdGhyb3cgbmV3IEVycm9yKCJ2YWx1ZSBzaG91bGQgYmUgc3RyaW5nIik7dmFyIGk9bmV3IFlyLHI9WnIobik\/bmV3IG51KFN0cmluZyhuKSk6bjtlJiZlLnRhaWwmJihlLl9iZWZvcmVUYWlsU3RhdGU9dGhpcy5zdGF0ZSk7Zm9yKHZhciB1PTA7dTx0Lmxlbmd0aDsrK3UpaS5hZ2dyZWdhdGUodGhpcy5fYXBwZW5kQ2hhcih0W3VdLGUscikpO3JldHVybiBudWxsIT1yJiYoaS50YWlsU2hpZnQrPXRoaXMuYXBwZW5kVGFpbChyKS50YWlsU2hpZnQpLHRoaXMuZWFnZXImJm51bGwhPWUmJmUuaW5wdXQmJnQmJmkuYWdncmVnYXRlKHRoaXMuX2FwcGVuZEVhZ2VyKCkpLGl9fSx7a2V5OiJyZW1vdmUiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0\/YXJndW1lbnRzWzBdOjAsZT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06dGhpcy52YWx1ZS5sZW5ndGg7cmV0dXJuIHRoaXMuX3ZhbHVlPXRoaXMudmFsdWUuc2xpY2UoMCx0KSt0aGlzLnZhbHVlLnNsaWNlKGUpLG5ldyBZcn19LHtrZXk6IndpdGhWYWx1ZVJlZnJlc2giLHZhbHVlOmZ1bmN0aW9uKHQpe2lmKHRoaXMuX3JlZnJlc2hpbmd8fCF0aGlzLmlzSW5pdGlhbGl6ZWQpcmV0dXJuIHQoKTt0aGlzLl9yZWZyZXNoaW5nPSEwO3ZhciBlPXRoaXMucmF3SW5wdXRWYWx1ZSxuPXRoaXMudmFsdWUsaT10KCk7cmV0dXJuIHRoaXMucmF3SW5wdXRWYWx1ZT1lLHRoaXMudmFsdWUmJnRoaXMudmFsdWUhPT1uJiYwPT09bi5pbmRleE9mKHRoaXMudmFsdWUpJiZ0aGlzLmFwcGVuZChuLnNsaWNlKHRoaXMudmFsdWUubGVuZ3RoKSx7fSwiIiksZGVsZXRlIHRoaXMuX3JlZnJlc2hpbmcsaX19LHtrZXk6InJ1bklzb2xhdGVkIix2YWx1ZTpmdW5jdGlvbih0KXtpZih0aGlzLl9pc29sYXRlZHx8IXRoaXMuaXNJbml0aWFsaXplZClyZXR1cm4gdCh0aGlzKTt0aGlzLl9pc29sYXRlZD0hMDt2YXIgZT10aGlzLnN0YXRlLG49dCh0aGlzKTtyZXR1cm4gdGhpcy5zdGF0ZT1lLGRlbGV0ZSB0aGlzLl9pc29sYXRlZCxufX0se2tleToiZG9QcmVwYXJlIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06e307cmV0dXJuIHRoaXMucHJlcGFyZT90aGlzLnByZXBhcmUodCx0aGlzLGUpOnR9fSx7a2V5OiJkb1ZhbGlkYXRlIix2YWx1ZTpmdW5jdGlvbih0KXtyZXR1cm4oIXRoaXMudmFsaWRhdGV8fHRoaXMudmFsaWRhdGUodGhpcy52YWx1ZSx0aGlzLHQpKSYmKCF0aGlzLnBhcmVudHx8dGhpcy5wYXJlbnQuZG9WYWxpZGF0ZSh0KSl9fSx7a2V5OiJkb0NvbW1pdCIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmNvbW1pdCYmdGhpcy5jb21taXQodGhpcy52YWx1ZSx0aGlzKX19LHtrZXk6ImRvRm9ybWF0Iix2YWx1ZTpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5mb3JtYXQ\/dGhpcy5mb3JtYXQodCx0aGlzKTp0fX0se2tleToiZG9QYXJzZSIsdmFsdWU6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMucGFyc2U\/dGhpcy5wYXJzZSh0LHRoaXMpOnR9fSx7a2V5OiJzcGxpY2UiLHZhbHVlOmZ1bmN0aW9uKHQsZSxuLGkpe3ZhciByLHU9dCtlLHM9dGhpcy5leHRyYWN0VGFpbCh1KTt0aGlzLmVhZ2VyJiYoaT1mdW5jdGlvbih0KXtzd2l0Y2godCl7Y2FzZSBLcjpyZXR1cm4gJHI7Y2FzZSBXcjpyZXR1cm4gWHI7ZGVmYXVsdDpyZXR1cm4gdH19KGkpLHI9dGhpcy5leHRyYWN0SW5wdXQoMCx1LHtyYXc6ITB9KSk7dmFyIGE9dGhpcy5uZWFyZXN0SW5wdXRQb3ModCxlPjEmJjAhPT10JiYhdGhpcy5lYWdlcj9HcjppKSxvPW5ldyBZcih7dGFpbFNoaWZ0OmEtdH0pLmFnZ3JlZ2F0ZSh0aGlzLnJlbW92ZShhKSk7aWYodGhpcy5lYWdlciYmaSE9PUdyJiZyPT09dGhpcy5yYXdJbnB1dFZhbHVlKWlmKGk9PT0kcilmb3IodmFyIGw7cj09PXRoaXMucmF3SW5wdXRWYWx1ZSYmKGw9dGhpcy52YWx1ZS5sZW5ndGgpOylvLmFnZ3JlZ2F0ZShuZXcgWXIoe3RhaWxTaGlmdDotMX0pKS5hZ2dyZWdhdGUodGhpcy5yZW1vdmUobC0xKSk7ZWxzZSBpPT09WHImJnMudW5zaGlmdCgpO3JldHVybiBvLmFnZ3JlZ2F0ZSh0aGlzLmFwcGVuZChuLHtpbnB1dDohMH0scykpfX0se2tleToibWFza0VxdWFscyIsdmFsdWU6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMubWFzaz09PXR9fV0pLHR9KCk7ZnVuY3Rpb24gdXUodCl7aWYobnVsbD09dCl0aHJvdyBuZXcgRXJyb3IoIm1hc2sgcHJvcGVydHkgc2hvdWxkIGJlIGRlZmluZWQiKTtyZXR1cm4gdCBpbnN0YW5jZW9mIFJlZ0V4cD9pdS5NYXNrZWRSZWdFeHA6WnIodCk\/aXUuTWFza2VkUGF0dGVybjp0IGluc3RhbmNlb2YgRGF0ZXx8dD09PURhdGU\/aXUuTWFza2VkRGF0ZTp0IGluc3RhbmNlb2YgTnVtYmVyfHwibnVtYmVyIj09dHlwZW9mIHR8fHQ9PT1OdW1iZXI\/aXUuTWFza2VkTnVtYmVyOkFycmF5LmlzQXJyYXkodCl8fHQ9PT1BcnJheT9pdS5NYXNrZWREeW5hbWljOml1Lk1hc2tlZCYmdC5wcm90b3R5cGUgaW5zdGFuY2VvZiBpdS5NYXNrZWQ\/dDp0IGluc3RhbmNlb2YgaXUuTWFza2VkP3QuY29uc3RydWN0b3I6dCBpbnN0YW5jZW9mIEZ1bmN0aW9uP2l1Lk1hc2tlZEZ1bmN0aW9uOihjb25zb2xlLndhcm4oIk1hc2sgbm90IGZvdW5kIGZvciBtYXNrIix0KSxpdS5NYXNrZWQpfWZ1bmN0aW9uIHN1KHQpe2lmKGl1Lk1hc2tlZCYmdCBpbnN0YW5jZW9mIGl1Lk1hc2tlZClyZXR1cm4gdDt2YXIgZT0odD1PYmplY3QuYXNzaWduKHt9LHQpKS5tYXNrO2lmKGl1Lk1hc2tlZCYmZSBpbnN0YW5jZW9mIGl1Lk1hc2tlZClyZXR1cm4gZTt2YXIgbj11dShlKTtpZighbil0aHJvdyBuZXcgRXJyb3IoIk1hc2tlZCBjbGFzcyBpcyBub3QgZm91bmQgZm9yIHByb3ZpZGVkIG1hc2ssIGFwcHJvcHJpYXRlIG1vZHVsZSBuZWVkcyB0byBiZSBpbXBvcnQgbWFudWFsbHkgYmVmb3JlIGNyZWF0aW5nIG1hc2suIik7cmV0dXJuIG5ldyBuKHQpfXJ1LkRFRkFVTFRTPXtmb3JtYXQ6ZnVuY3Rpb24odCl7cmV0dXJuIHR9LHBhcnNlOmZ1bmN0aW9uKHQpe3JldHVybiB0fX0saXUuTWFza2VkPXJ1LGl1LmNyZWF0ZU1hc2s9c3U7dmFyIGF1PVsibWFzayJdLG91PXswOi9cZC8sYTovW1x1MDA0MS1cdTAwNUFcdTAwNjEtXHUwMDdBXHUwMEFBXHUwMEI1XHUwMEJBXHUwMEMwLVx1MDBENlx1MDBEOC1cdTAwRjZcdTAwRjgtXHUwMkMxXHUwMkM2LVx1MDJEMVx1MDJFMC1cdTAyRTRcdTAyRUNcdTAyRUVcdTAzNzAtXHUwMzc0XHUwMzc2XHUwMzc3XHUwMzdBLVx1MDM3RFx1MDM4Nlx1MDM4OC1cdTAzOEFcdTAzOENcdTAzOEUtXHUwM0ExXHUwM0EzLVx1MDNGNVx1MDNGNy1cdTA0ODFcdTA0OEEtXHUwNTI3XHUwNTMxLVx1MDU1Nlx1MDU1OVx1MDU2MS1cdTA1ODdcdTA1RDAtXHUwNUVBXHUwNUYwLVx1MDVGMlx1MDYyMC1cdTA2NEFcdTA2NkVcdTA2NkZcdTA2NzEtXHUwNkQzXHUwNkQ1XHUwNkU1XHUwNkU2XHUwNkVFXHUwNkVGXHUwNkZBLVx1MDZGQ1x1MDZGRlx1MDcxMFx1MDcxMi1cdTA3MkZcdTA3NEQtXHUwN0E1XHUwN0IxXHUwN0NBLVx1MDdFQVx1MDdGNFx1MDdGNVx1MDdGQVx1MDgwMC1cdTA4MTVcdTA4MUFcdTA4MjRcdTA4MjhcdTA4NDAtXHUwODU4XHUwOEEwXHUwOEEyLVx1MDhBQ1x1MDkwNC1cdTA5MzlcdTA5M0RcdTA5NTBcdTA5NTgtXHUwOTYxXHUwOTcxLVx1MDk3N1x1MDk3OS1cdTA5N0ZcdTA5ODUtXHUwOThDXHUwOThGXHUwOTkwXHUwOTkzLVx1MDlBOFx1MDlBQS1cdTA5QjBcdTA5QjJcdTA5QjYtXHUwOUI5XHUwOUJEXHUwOUNFXHUwOURDXHUwOUREXHUwOURGLVx1MDlFMVx1MDlGMFx1MDlGMVx1MEEwNS1cdTBBMEFcdTBBMEZcdTBBMTBcdTBBMTMtXHUwQTI4XHUwQTJBLVx1MEEzMFx1MEEzMlx1MEEzM1x1MEEzNVx1MEEzNlx1MEEzOFx1MEEzOVx1MEE1OS1cdTBBNUNcdTBBNUVcdTBBNzItXHUwQTc0XHUwQTg1LVx1MEE4RFx1MEE4Ri1cdTBBOTFcdTBBOTMtXHUwQUE4XHUwQUFBLVx1MEFCMFx1MEFCMlx1MEFCM1x1MEFCNS1cdTBBQjlcdTBBQkRcdTBBRDBcdTBBRTBcdTBBRTFcdTBCMDUtXHUwQjBDXHUwQjBGXHUwQjEwXHUwQjEzLVx1MEIyOFx1MEIyQS1cdTBCMzBcdTBCMzJcdTBCMzNcdTBCMzUtXHUwQjM5XHUwQjNEXHUwQjVDXHUwQjVEXHUwQjVGLVx1MEI2MVx1MEI3MVx1MEI4M1x1MEI4NS1cdTBCOEFcdTBCOEUtXHUwQjkwXHUwQjkyLVx1MEI5NVx1MEI5OVx1MEI5QVx1MEI5Q1x1MEI5RVx1MEI5Rlx1MEJBM1x1MEJBNFx1MEJBOC1cdTBCQUFcdTBCQUUtXHUwQkI5XHUwQkQwXHUwQzA1LVx1MEMwQ1x1MEMwRS1cdTBDMTBcdTBDMTItXHUwQzI4XHUwQzJBLVx1MEMzM1x1MEMzNS1cdTBDMzlcdTBDM0RcdTBDNThcdTBDNTlcdTBDNjBcdTBDNjFcdTBDODUtXHUwQzhDXHUwQzhFLVx1MEM5MFx1MEM5Mi1cdTBDQThcdTBDQUEtXHUwQ0IzXHUwQ0I1LVx1MENCOVx1MENCRFx1MENERVx1MENFMFx1MENFMVx1MENGMVx1MENGMlx1MEQwNS1cdTBEMENcdTBEMEUtXHUwRDEwXHUwRDEyLVx1MEQzQVx1MEQzRFx1MEQ0RVx1MEQ2MFx1MEQ2MVx1MEQ3QS1cdTBEN0ZcdTBEODUtXHUwRDk2XHUwRDlBLVx1MERCMVx1MERCMy1cdTBEQkJcdTBEQkRcdTBEQzAtXHUwREM2XHUwRTAxLVx1MEUzMFx1MEUzMlx1MEUzM1x1MEU0MC1cdTBFNDZcdTBFODFcdTBFODJcdTBFODRcdTBFODdcdTBFODhcdTBFOEFcdTBFOERcdTBFOTQtXHUwRTk3XHUwRTk5LVx1MEU5Rlx1MEVBMS1cdTBFQTNcdTBFQTVcdTBFQTdcdTBFQUFcdTBFQUJcdTBFQUQtXHUwRUIwXHUwRUIyXHUwRUIzXHUwRUJEXHUwRUMwLVx1MEVDNFx1MEVDNlx1MEVEQy1cdTBFREZcdTBGMDBcdTBGNDAtXHUwRjQ3XHUwRjQ5LVx1MEY2Q1x1MEY4OC1cdTBGOENcdTEwMDAtXHUxMDJBXHUxMDNGXHUxMDUwLVx1MTA1NVx1MTA1QS1cdTEwNURcdTEwNjFcdTEwNjVcdTEwNjZcdTEwNkUtXHUxMDcwXHUxMDc1LVx1MTA4MVx1MTA4RVx1MTBBMC1cdTEwQzVcdTEwQzdcdTEwQ0RcdTEwRDAtXHUxMEZBXHUxMEZDLVx1MTI0OFx1MTI0QS1cdTEyNERcdTEyNTAtXHUxMjU2XHUxMjU4XHUxMjVBLVx1MTI1RFx1MTI2MC1cdTEyODhcdTEyOEEtXHUxMjhEXHUxMjkwLVx1MTJCMFx1MTJCMi1cdTEyQjVcdTEyQjgtXHUxMkJFXHUxMkMwXHUxMkMyLVx1MTJDNVx1MTJDOC1cdTEyRDZcdTEyRDgtXHUxMzEwXHUxMzEyLVx1MTMxNVx1MTMxOC1cdTEzNUFcdTEzODAtXHUxMzhGXHUxM0EwLVx1MTNGNFx1MTQwMS1cdTE2NkNcdTE2NkYtXHUxNjdGXHUxNjgxLVx1MTY5QVx1MTZBMC1cdTE2RUFcdTE3MDAtXHUxNzBDXHUxNzBFLVx1MTcxMVx1MTcyMC1cdTE3MzFcdTE3NDAtXHUxNzUxXHUxNzYwLVx1MTc2Q1x1MTc2RS1cdTE3NzBcdTE3ODAtXHUxN0IzXHUxN0Q3XHUxN0RDXHUxODIwLVx1MTg3N1x1MTg4MC1cdTE4QThcdTE4QUFcdTE4QjAtXHUxOEY1XHUxOTAwLVx1MTkxQ1x1MTk1MC1cdTE5NkRcdTE5NzAtXHUxOTc0XHUxOTgwLVx1MTlBQlx1MTlDMS1cdTE5QzdcdTFBMDAtXHUxQTE2XHUxQTIwLVx1MUE1NFx1MUFBN1x1MUIwNS1cdTFCMzNcdTFCNDUtXHUxQjRCXHUxQjgzLVx1MUJBMFx1MUJBRVx1MUJBRlx1MUJCQS1cdTFCRTVcdTFDMDAtXHUxQzIzXHUxQzRELVx1MUM0Rlx1MUM1QS1cdTFDN0RcdTFDRTktXHUxQ0VDXHUxQ0VFLVx1MUNGMVx1MUNGNVx1MUNGNlx1MUQwMC1cdTFEQkZcdTFFMDAtXHUxRjE1XHUxRjE4LVx1MUYxRFx1MUYyMC1cdTFGNDVcdTFGNDgtXHUxRjREXHUxRjUwLVx1MUY1N1x1MUY1OVx1MUY1Qlx1MUY1RFx1MUY1Ri1cdTFGN0RcdTFGODAtXHUxRkI0XHUxRkI2LVx1MUZCQ1x1MUZCRVx1MUZDMi1cdTFGQzRcdTFGQzYtXHUxRkNDXHUxRkQwLVx1MUZEM1x1MUZENi1cdTFGREJcdTFGRTAtXHUxRkVDXHUxRkYyLVx1MUZGNFx1MUZGNi1cdTFGRkNcdTIwNzFcdTIwN0ZcdTIwOTAtXHUyMDlDXHUyMTAyXHUyMTA3XHUyMTBBLVx1MjExM1x1MjExNVx1MjExOS1cdTIxMURcdTIxMjRcdTIxMjZcdTIxMjhcdTIxMkEtXHUyMTJEXHUyMTJGLVx1MjEzOVx1MjEzQy1cdTIxM0ZcdTIxNDUtXHUyMTQ5XHUyMTRFXHUyMTgzXHUyMTg0XHUyQzAwLVx1MkMyRVx1MkMzMC1cdTJDNUVcdTJDNjAtXHUyQ0U0XHUyQ0VCLVx1MkNFRVx1MkNGMlx1MkNGM1x1MkQwMC1cdTJEMjVcdTJEMjdcdTJEMkRcdTJEMzAtXHUyRDY3XHUyRDZGXHUyRDgwLVx1MkQ5Nlx1MkRBMC1cdTJEQTZcdTJEQTgtXHUyREFFXHUyREIwLVx1MkRCNlx1MkRCOC1cdTJEQkVcdTJEQzAtXHUyREM2XHUyREM4LVx1MkRDRVx1MkREMC1cdTJERDZcdTJERDgtXHUyRERFXHUyRTJGXHUzMDA1XHUzMDA2XHUzMDMxLVx1MzAzNVx1MzAzQlx1MzAzQ1x1MzA0MS1cdTMwOTZcdTMwOUQtXHUzMDlGXHUzMEExLVx1MzBGQVx1MzBGQy1cdTMwRkZcdTMxMDUtXHUzMTJEXHUzMTMxLVx1MzE4RVx1MzFBMC1cdTMxQkFcdTMxRjAtXHUzMUZGXHUzNDAwLVx1NERCNVx1NEUwMC1cdTlGQ0NcdUEwMDAtXHVBNDhDXHVBNEQwLVx1QTRGRFx1QTUwMC1cdUE2MENcdUE2MTAtXHVBNjFGXHVBNjJBXHVBNjJCXHVBNjQwLVx1QTY2RVx1QTY3Ri1cdUE2OTdcdUE2QTAtXHVBNkU1XHVBNzE3LVx1QTcxRlx1QTcyMi1cdUE3ODhcdUE3OEItXHVBNzhFXHVBNzkwLVx1QTc5M1x1QTdBMC1cdUE3QUFcdUE3RjgtXHVBODAxXHVBODAzLVx1QTgwNVx1QTgwNy1cdUE4MEFcdUE4MEMtXHVBODIyXHVBODQwLVx1QTg3M1x1QTg4Mi1cdUE4QjNcdUE4RjItXHVBOEY3XHVBOEZCXHVBOTBBLVx1QTkyNVx1QTkzMC1cdUE5NDZcdUE5NjAtXHVBOTdDXHVBOTg0LVx1QTlCMlx1QTlDRlx1QUEwMC1cdUFBMjhcdUFBNDAtXHVBQTQyXHVBQTQ0LVx1QUE0Qlx1QUE2MC1cdUFBNzZcdUFBN0FcdUFBODAtXHVBQUFGXHVBQUIxXHVBQUI1XHVBQUI2XHVBQUI5LVx1QUFCRFx1QUFDMFx1QUFDMlx1QUFEQi1cdUFBRERcdUFBRTAtXHVBQUVBXHVBQUYyLVx1QUFGNFx1QUIwMS1cdUFCMDZcdUFCMDktXHVBQjBFXHVBQjExLVx1QUIxNlx1QUIyMC1cdUFCMjZcdUFCMjgtXHVBQjJFXHVBQkMwLVx1QUJFMlx1QUMwMC1cdUQ3QTNcdUQ3QjAtXHVEN0M2XHVEN0NCLVx1RDdGQlx1RjkwMC1cdUZBNkRcdUZBNzAtXHVGQUQ5XHVGQjAwLVx1RkIwNlx1RkIxMy1cdUZCMTdcdUZCMURcdUZCMUYtXHVGQjI4XHVGQjJBLVx1RkIzNlx1RkIzOC1cdUZCM0NcdUZCM0VcdUZCNDBcdUZCNDFcdUZCNDNcdUZCNDRcdUZCNDYtXHVGQkIxXHVGQkQzLVx1RkQzRFx1RkQ1MC1cdUZEOEZcdUZEOTItXHVGREM3XHVGREYwLVx1RkRGQlx1RkU3MC1cdUZFNzRcdUZFNzYtXHVGRUZDXHVGRjIxLVx1RkYzQVx1RkY0MS1cdUZGNUFcdUZGNjYtXHVGRkJFXHVGRkMyLVx1RkZDN1x1RkZDQS1cdUZGQ0ZcdUZGRDItXHVGRkQ3XHVGRkRBLVx1RkZEQ10vLCIqIjovLi99LGx1PWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdChlKXt4cih0aGlzLHQpO3ZhciBuPWUubWFzayxpPWpyKGUsYXUpO3RoaXMubWFza2VkPXN1KHttYXNrOm59KSxPYmplY3QuYXNzaWduKHRoaXMsaSl9cmV0dXJuIE9yKHQsW3trZXk6InJlc2V0Iix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuaXNGaWxsZWQ9ITEsdGhpcy5tYXNrZWQucmVzZXQoKX19LHtrZXk6InJlbW92ZSIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06MCxlPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp0aGlzLnZhbHVlLmxlbmd0aDtyZXR1cm4gMD09PXQmJmU+PTE\/KHRoaXMuaXNGaWxsZWQ9ITEsdGhpcy5tYXNrZWQucmVtb3ZlKHQsZSkpOm5ldyBZcn19LHtrZXk6InZhbHVlIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tYXNrZWQudmFsdWV8fCh0aGlzLmlzRmlsbGVkJiYhdGhpcy5pc09wdGlvbmFsP3RoaXMucGxhY2Vob2xkZXJDaGFyOiIiKX19LHtrZXk6InVubWFza2VkVmFsdWUiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLm1hc2tlZC51bm1hc2tlZFZhbHVlfX0se2tleToiaXNDb21wbGV0ZSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIEJvb2xlYW4odGhpcy5tYXNrZWQudmFsdWUpfHx0aGlzLmlzT3B0aW9uYWx9fSx7a2V5OiJfYXBwZW5kQ2hhciIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGU9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0\/YXJndW1lbnRzWzFdOnt9O2lmKHRoaXMuaXNGaWxsZWQpcmV0dXJuIG5ldyBZcjt2YXIgbj10aGlzLm1hc2tlZC5zdGF0ZSxpPXRoaXMubWFza2VkLl9hcHBlbmRDaGFyKHQsZSk7cmV0dXJuIGkuaW5zZXJ0ZWQmJiExPT09dGhpcy5kb1ZhbGlkYXRlKGUpJiYoaS5pbnNlcnRlZD1pLnJhd0luc2VydGVkPSIiLHRoaXMubWFza2VkLnN0YXRlPW4pLGkuaW5zZXJ0ZWR8fHRoaXMuaXNPcHRpb25hbHx8dGhpcy5sYXp5fHxlLmlucHV0fHwoaS5pbnNlcnRlZD10aGlzLnBsYWNlaG9sZGVyQ2hhciksaS5za2lwPSFpLmluc2VydGVkJiYhdGhpcy5pc09wdGlvbmFsLHRoaXMuaXNGaWxsZWQ9Qm9vbGVhbihpLmluc2VydGVkKSxpfX0se2tleToiYXBwZW5kIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0O3JldHVybih0PXRoaXMubWFza2VkKS5hcHBlbmQuYXBwbHkodCxhcmd1bWVudHMpfX0se2tleToiX2FwcGVuZFBsYWNlaG9sZGVyIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PW5ldyBZcjtyZXR1cm4gdGhpcy5pc0ZpbGxlZHx8dGhpcy5pc09wdGlvbmFsfHwodGhpcy5pc0ZpbGxlZD0hMCx0Lmluc2VydGVkPXRoaXMucGxhY2Vob2xkZXJDaGFyKSx0fX0se2tleToiX2FwcGVuZEVhZ2VyIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiBuZXcgWXJ9fSx7a2V5OiJleHRyYWN0VGFpbCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdDtyZXR1cm4odD10aGlzLm1hc2tlZCkuZXh0cmFjdFRhaWwuYXBwbHkodCxhcmd1bWVudHMpfX0se2tleToiYXBwZW5kVGFpbCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdDtyZXR1cm4odD10aGlzLm1hc2tlZCkuYXBwZW5kVGFpbC5hcHBseSh0LGFyZ3VtZW50cyl9fSx7a2V5OiJleHRyYWN0SW5wdXQiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0\/YXJndW1lbnRzWzBdOjAsZT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06dGhpcy52YWx1ZS5sZW5ndGgsbj1hcmd1bWVudHMubGVuZ3RoPjI\/YXJndW1lbnRzWzJdOnZvaWQgMDtyZXR1cm4gdGhpcy5tYXNrZWQuZXh0cmFjdElucHV0KHQsZSxuKX19LHtrZXk6Im5lYXJlc3RJbnB1dFBvcyIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGU9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0\/YXJndW1lbnRzWzFdOkdyLG49MCxpPXRoaXMudmFsdWUubGVuZ3RoLHI9TWF0aC5taW4oTWF0aC5tYXgodCxuKSxpKTtzd2l0Y2goZSl7Y2FzZSBLcjpjYXNlICRyOnJldHVybiB0aGlzLmlzQ29tcGxldGU\/cjpuO2Nhc2UgV3I6Y2FzZSBYcjpyZXR1cm4gdGhpcy5pc0NvbXBsZXRlP3I6aTtkZWZhdWx0OnJldHVybiByfX19LHtrZXk6ImRvVmFsaWRhdGUiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQsZTtyZXR1cm4odD10aGlzLm1hc2tlZCkuZG9WYWxpZGF0ZS5hcHBseSh0LGFyZ3VtZW50cykmJighdGhpcy5wYXJlbnR8fChlPXRoaXMucGFyZW50KS5kb1ZhbGlkYXRlLmFwcGx5KGUsYXJndW1lbnRzKSl9fSx7a2V5OiJkb0NvbW1pdCIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLm1hc2tlZC5kb0NvbW1pdCgpfX0se2tleToic3RhdGUiLGdldDpmdW5jdGlvbigpe3JldHVybnttYXNrZWQ6dGhpcy5tYXNrZWQuc3RhdGUsaXNGaWxsZWQ6dGhpcy5pc0ZpbGxlZH19LHNldDpmdW5jdGlvbih0KXt0aGlzLm1hc2tlZC5zdGF0ZT10Lm1hc2tlZCx0aGlzLmlzRmlsbGVkPXQuaXNGaWxsZWR9fV0pLHR9KCksaHU9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KGUpe3hyKHRoaXMsdCksT2JqZWN0LmFzc2lnbih0aGlzLGUpLHRoaXMuX3ZhbHVlPSIiLHRoaXMuaXNGaXhlZD0hMH1yZXR1cm4gT3IodCxbe2tleToidmFsdWUiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl92YWx1ZX19LHtrZXk6InVubWFza2VkVmFsdWUiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmlzVW5tYXNraW5nP3RoaXMudmFsdWU6IiJ9fSx7a2V5OiJyZXNldCIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLl9pc1Jhd0lucHV0PSExLHRoaXMuX3ZhbHVlPSIifX0se2tleToicmVtb3ZlIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTowLGU9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0\/YXJndW1lbnRzWzFdOnRoaXMuX3ZhbHVlLmxlbmd0aDtyZXR1cm4gdGhpcy5fdmFsdWU9dGhpcy5fdmFsdWUuc2xpY2UoMCx0KSt0aGlzLl92YWx1ZS5zbGljZShlKSx0aGlzLl92YWx1ZXx8KHRoaXMuX2lzUmF3SW5wdXQ9ITEpLG5ldyBZcn19LHtrZXk6Im5lYXJlc3RJbnB1dFBvcyIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGU9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0\/YXJndW1lbnRzWzFdOkdyLG49MCxpPXRoaXMuX3ZhbHVlLmxlbmd0aDtzd2l0Y2goZSl7Y2FzZSBLcjpjYXNlICRyOnJldHVybiBuO2RlZmF1bHQ6cmV0dXJuIGl9fX0se2tleToiZXh0cmFjdElucHV0Iix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTowLGU9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0\/YXJndW1lbnRzWzFdOnRoaXMuX3ZhbHVlLmxlbmd0aCxuPWFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdP2FyZ3VtZW50c1syXTp7fTtyZXR1cm4gbi5yYXcmJnRoaXMuX2lzUmF3SW5wdXQmJnRoaXMuX3ZhbHVlLnNsaWNlKHQsZSl8fCIifX0se2tleToiaXNDb21wbGV0ZSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuITB9fSx7a2V5OiJpc0ZpbGxlZCIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIEJvb2xlYW4odGhpcy5fdmFsdWUpfX0se2tleToiX2FwcGVuZENoYXIiLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp7fSxuPW5ldyBZcjtpZih0aGlzLl92YWx1ZSlyZXR1cm4gbjt2YXIgaT10aGlzLmNoYXI9PT10LHI9aSYmKHRoaXMuaXNVbm1hc2tpbmd8fGUuaW5wdXR8fGUucmF3KSYmIXRoaXMuZWFnZXImJiFlLnRhaWw7cmV0dXJuIHImJihuLnJhd0luc2VydGVkPXRoaXMuY2hhciksdGhpcy5fdmFsdWU9bi5pbnNlcnRlZD10aGlzLmNoYXIsdGhpcy5faXNSYXdJbnB1dD1yJiYoZS5yYXd8fGUuaW5wdXQpLG59fSx7a2V5OiJfYXBwZW5kRWFnZXIiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2FwcGVuZENoYXIodGhpcy5jaGFyKX19LHtrZXk6Il9hcHBlbmRQbGFjZWhvbGRlciIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD1uZXcgWXI7cmV0dXJuIHRoaXMuX3ZhbHVlfHwodGhpcy5fdmFsdWU9dC5pbnNlcnRlZD10aGlzLmNoYXIpLHR9fSx7a2V5OiJleHRyYWN0VGFpbCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV18fHRoaXMudmFsdWUubGVuZ3RoLG5ldyBudSgiIil9fSx7a2V5OiJhcHBlbmRUYWlsIix2YWx1ZTpmdW5jdGlvbih0KXtyZXR1cm4gWnIodCkmJih0PW5ldyBudShTdHJpbmcodCkpKSx0LmFwcGVuZFRvKHRoaXMpfX0se2tleToiYXBwZW5kIix2YWx1ZTpmdW5jdGlvbih0LGUsbil7dmFyIGk9dGhpcy5fYXBwZW5kQ2hhcih0WzBdLGUpO3JldHVybiBudWxsIT1uJiYoaS50YWlsU2hpZnQrPXRoaXMuYXBwZW5kVGFpbChuKS50YWlsU2hpZnQpLGl9fSx7a2V5OiJkb0NvbW1pdCIsdmFsdWU6ZnVuY3Rpb24oKXt9fSx7a2V5OiJzdGF0ZSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJue192YWx1ZTp0aGlzLl92YWx1ZSxfaXNSYXdJbnB1dDp0aGlzLl9pc1Jhd0lucHV0fX0sc2V0OmZ1bmN0aW9uKHQpe09iamVjdC5hc3NpZ24odGhpcyx0KX19XSksdH0oKSxjdT1bImNodW5rcyJdLGZ1PWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCgpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTpbXSxuPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTowO3hyKHRoaXMsdCksdGhpcy5jaHVua3M9ZSx0aGlzLmZyb209bn1yZXR1cm4gT3IodCxbe2tleToidG9TdHJpbmciLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2h1bmtzLm1hcChTdHJpbmcpLmpvaW4oIiIpfX0se2tleToiZXh0ZW5kIix2YWx1ZTpmdW5jdGlvbihlKXtpZihTdHJpbmcoZSkpe1pyKGUpJiYoZT1uZXcgbnUoU3RyaW5nKGUpKSk7dmFyIG49dGhpcy5jaHVua3NbdGhpcy5jaHVua3MubGVuZ3RoLTFdLGk9biYmKG4uc3RvcD09PWUuc3RvcHx8bnVsbD09ZS5zdG9wKSYmZS5mcm9tPT09bi5mcm9tK24udG9TdHJpbmcoKS5sZW5ndGg7aWYoZSBpbnN0YW5jZW9mIG51KWk\/bi5leHRlbmQoZS50b1N0cmluZygpKTp0aGlzLmNodW5rcy5wdXNoKGUpO2Vsc2UgaWYoZSBpbnN0YW5jZW9mIHQpe2lmKG51bGw9PWUuc3RvcClmb3IodmFyIHI7ZS5jaHVua3MubGVuZ3RoJiZudWxsPT1lLmNodW5rc1swXS5zdG9wOykocj1lLmNodW5rcy5zaGlmdCgpKS5mcm9tKz1lLmZyb20sdGhpcy5leHRlbmQocik7ZS50b1N0cmluZygpJiYoZS5zdG9wPWUuYmxvY2tJbmRleCx0aGlzLmNodW5rcy5wdXNoKGUpKX19fX0se2tleToiYXBwZW5kVG8iLHZhbHVlOmZ1bmN0aW9uKGUpe2lmKCEoZSBpbnN0YW5jZW9mIGl1Lk1hc2tlZFBhdHRlcm4pKXJldHVybiBuZXcgbnUodGhpcy50b1N0cmluZygpKS5hcHBlbmRUbyhlKTtmb3IodmFyIG49bmV3IFlyLGk9MDtpPHRoaXMuY2h1bmtzLmxlbmd0aCYmIW4uc2tpcDsrK2kpe3ZhciByPXRoaXMuY2h1bmtzW2ldLHU9ZS5fbWFwUG9zVG9CbG9jayhlLnZhbHVlLmxlbmd0aCkscz1yLnN0b3AsYT12b2lkIDA7aWYobnVsbCE9cyYmKCF1fHx1LmluZGV4PD1zKSYmKChyIGluc3RhbmNlb2YgdHx8ZS5fc3RvcHMuaW5kZXhPZihzKT49MCkmJm4uYWdncmVnYXRlKGUuX2FwcGVuZFBsYWNlaG9sZGVyKHMpKSxhPXIgaW5zdGFuY2VvZiB0JiZlLl9ibG9ja3Nbc10pLGEpe3ZhciBvPWEuYXBwZW5kVGFpbChyKTtvLnNraXA9ITEsbi5hZ2dyZWdhdGUobyksZS5fdmFsdWUrPW8uaW5zZXJ0ZWQ7dmFyIGw9ci50b1N0cmluZygpLnNsaWNlKG8ucmF3SW5zZXJ0ZWQubGVuZ3RoKTtsJiZuLmFnZ3JlZ2F0ZShlLmFwcGVuZChsLHt0YWlsOiEwfSkpfWVsc2Ugbi5hZ2dyZWdhdGUoZS5hcHBlbmQoci50b1N0cmluZygpLHt0YWlsOiEwfSkpfXJldHVybiBufX0se2tleToic3RhdGUiLGdldDpmdW5jdGlvbigpe3JldHVybntjaHVua3M6dGhpcy5jaHVua3MubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gdC5zdGF0ZX0pKSxmcm9tOnRoaXMuZnJvbSxzdG9wOnRoaXMuc3RvcCxibG9ja0luZGV4OnRoaXMuYmxvY2tJbmRleH19LHNldDpmdW5jdGlvbihlKXt2YXIgbj1lLmNodW5rcyxpPWpyKGUsY3UpO09iamVjdC5hc3NpZ24odGhpcyxpKSx0aGlzLmNodW5rcz1uLm1hcCgoZnVuY3Rpb24oZSl7dmFyIG49ImNodW5rcyJpbiBlP25ldyB0Om5ldyBudTtyZXR1cm4gbi5zdGF0ZT1lLG59KSl9fSx7a2V5OiJ1bnNoaWZ0Iix2YWx1ZTpmdW5jdGlvbih0KXtpZighdGhpcy5jaHVua3MubGVuZ3RofHxudWxsIT10JiZ0aGlzLmZyb20+PXQpcmV0dXJuIiI7Zm9yKHZhciBlPW51bGwhPXQ\/dC10aGlzLmZyb206dCxuPTA7bjx0aGlzLmNodW5rcy5sZW5ndGg7KXt2YXIgaT10aGlzLmNodW5rc1tuXSxyPWkudW5zaGlmdChlKTtpZihpLnRvU3RyaW5nKCkpe2lmKCFyKWJyZWFrOysrbn1lbHNlIHRoaXMuY2h1bmtzLnNwbGljZShuLDEpO2lmKHIpcmV0dXJuIHJ9cmV0dXJuIiJ9fSx7a2V5OiJzaGlmdCIsdmFsdWU6ZnVuY3Rpb24oKXtpZighdGhpcy5jaHVua3MubGVuZ3RoKXJldHVybiIiO2Zvcih2YXIgdD10aGlzLmNodW5rcy5sZW5ndGgtMTswPD10Oyl7dmFyIGU9dGhpcy5jaHVua3NbdF0sbj1lLnNoaWZ0KCk7aWYoZS50b1N0cmluZygpKXtpZighbilicmVhazstLXR9ZWxzZSB0aGlzLmNodW5rcy5zcGxpY2UodCwxKTtpZihuKXJldHVybiBufXJldHVybiIifX1dKSx0fSgpLHB1PWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdChlLG4pe3hyKHRoaXMsdCksdGhpcy5tYXNrZWQ9ZSx0aGlzLl9sb2c9W107dmFyIGk9ZS5fbWFwUG9zVG9CbG9jayhuKXx8KG48MD97aW5kZXg6MCxvZmZzZXQ6MH06e2luZGV4OnRoaXMubWFza2VkLl9ibG9ja3MubGVuZ3RoLG9mZnNldDowfSkscj1pLm9mZnNldCx1PWkuaW5kZXg7dGhpcy5vZmZzZXQ9cix0aGlzLmluZGV4PXUsdGhpcy5vaz0hMX1yZXR1cm4gT3IodCxbe2tleToiYmxvY2siLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLm1hc2tlZC5fYmxvY2tzW3RoaXMuaW5kZXhdfX0se2tleToicG9zIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tYXNrZWQuX2Jsb2NrU3RhcnRQb3ModGhpcy5pbmRleCkrdGhpcy5vZmZzZXR9fSx7a2V5OiJzdGF0ZSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJue2luZGV4OnRoaXMuaW5kZXgsb2Zmc2V0OnRoaXMub2Zmc2V0LG9rOnRoaXMub2t9fSxzZXQ6ZnVuY3Rpb24odCl7T2JqZWN0LmFzc2lnbih0aGlzLHQpfX0se2tleToicHVzaFN0YXRlIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuX2xvZy5wdXNoKHRoaXMuc3RhdGUpfX0se2tleToicG9wU3RhdGUiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5fbG9nLnBvcCgpO3JldHVybiB0aGlzLnN0YXRlPXQsdH19LHtrZXk6ImJpbmRCbG9jayIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmJsb2NrfHwodGhpcy5pbmRleDwwJiYodGhpcy5pbmRleD0wLHRoaXMub2Zmc2V0PTApLHRoaXMuaW5kZXg+PXRoaXMubWFza2VkLl9ibG9ja3MubGVuZ3RoJiYodGhpcy5pbmRleD10aGlzLm1hc2tlZC5fYmxvY2tzLmxlbmd0aC0xLHRoaXMub2Zmc2V0PXRoaXMuYmxvY2sudmFsdWUubGVuZ3RoKSl9fSx7a2V5OiJfcHVzaExlZnQiLHZhbHVlOmZ1bmN0aW9uKHQpe2Zvcih0aGlzLnB1c2hTdGF0ZSgpLHRoaXMuYmluZEJsb2NrKCk7MDw9dGhpcy5pbmRleDstLXRoaXMuaW5kZXgsdGhpcy5vZmZzZXQ9KG51bGw9PT0oZT10aGlzLmJsb2NrKXx8dm9pZCAwPT09ZT92b2lkIDA6ZS52YWx1ZS5sZW5ndGgpfHwwKXt2YXIgZTtpZih0KCkpcmV0dXJuIHRoaXMub2s9ITB9cmV0dXJuIHRoaXMub2s9ITF9fSx7a2V5OiJfcHVzaFJpZ2h0Iix2YWx1ZTpmdW5jdGlvbih0KXtmb3IodGhpcy5wdXNoU3RhdGUoKSx0aGlzLmJpbmRCbG9jaygpO3RoaXMuaW5kZXg8dGhpcy5tYXNrZWQuX2Jsb2Nrcy5sZW5ndGg7Kyt0aGlzLmluZGV4LHRoaXMub2Zmc2V0PTApaWYodCgpKXJldHVybiB0aGlzLm9rPSEwO3JldHVybiB0aGlzLm9rPSExfX0se2tleToicHVzaExlZnRCZWZvcmVGaWxsZWQiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztyZXR1cm4gdGhpcy5fcHVzaExlZnQoKGZ1bmN0aW9uKCl7aWYoIXQuYmxvY2suaXNGaXhlZCYmdC5ibG9jay52YWx1ZSlyZXR1cm4gdC5vZmZzZXQ9dC5ibG9jay5uZWFyZXN0SW5wdXRQb3ModC5vZmZzZXQsJHIpLDAhPT10Lm9mZnNldHx8dm9pZCAwfSkpfX0se2tleToicHVzaExlZnRCZWZvcmVJbnB1dCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3JldHVybiB0aGlzLl9wdXNoTGVmdCgoZnVuY3Rpb24oKXtpZighdC5ibG9jay5pc0ZpeGVkKXJldHVybiB0Lm9mZnNldD10LmJsb2NrLm5lYXJlc3RJbnB1dFBvcyh0Lm9mZnNldCxLciksITB9KSl9fSx7a2V5OiJwdXNoTGVmdEJlZm9yZVJlcXVpcmVkIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PXRoaXM7cmV0dXJuIHRoaXMuX3B1c2hMZWZ0KChmdW5jdGlvbigpe2lmKCEodC5ibG9jay5pc0ZpeGVkfHx0LmJsb2NrLmlzT3B0aW9uYWwmJiF0LmJsb2NrLnZhbHVlKSlyZXR1cm4gdC5vZmZzZXQ9dC5ibG9jay5uZWFyZXN0SW5wdXRQb3ModC5vZmZzZXQsS3IpLCEwfSkpfX0se2tleToicHVzaFJpZ2h0QmVmb3JlRmlsbGVkIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PXRoaXM7cmV0dXJuIHRoaXMuX3B1c2hSaWdodCgoZnVuY3Rpb24oKXtpZighdC5ibG9jay5pc0ZpeGVkJiZ0LmJsb2NrLnZhbHVlKXJldHVybiB0Lm9mZnNldD10LmJsb2NrLm5lYXJlc3RJbnB1dFBvcyh0Lm9mZnNldCxYciksdC5vZmZzZXQhPT10LmJsb2NrLnZhbHVlLmxlbmd0aHx8dm9pZCAwfSkpfX0se2tleToicHVzaFJpZ2h0QmVmb3JlSW5wdXQiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztyZXR1cm4gdGhpcy5fcHVzaFJpZ2h0KChmdW5jdGlvbigpe2lmKCF0LmJsb2NrLmlzRml4ZWQpcmV0dXJuIHQub2Zmc2V0PXQuYmxvY2submVhcmVzdElucHV0UG9zKHQub2Zmc2V0LEdyKSwhMH0pKX19LHtrZXk6InB1c2hSaWdodEJlZm9yZVJlcXVpcmVkIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PXRoaXM7cmV0dXJuIHRoaXMuX3B1c2hSaWdodCgoZnVuY3Rpb24oKXtpZighKHQuYmxvY2suaXNGaXhlZHx8dC5ibG9jay5pc09wdGlvbmFsJiYhdC5ibG9jay52YWx1ZSkpcmV0dXJuIHQub2Zmc2V0PXQuYmxvY2submVhcmVzdElucHV0UG9zKHQub2Zmc2V0LEdyKSwhMH0pKX19XSksdH0oKSxkdT1mdW5jdGlvbih0KXtQcihuLHQpO3ZhciBlPVZyKG4pO2Z1bmN0aW9uIG4oKXtyZXR1cm4geHIodGhpcyxuKSxlLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1yZXR1cm4gT3Iobixbe2tleToiX3VwZGF0ZSIsdmFsdWU6ZnVuY3Rpb24odCl7dC5tYXNrJiYodC52YWxpZGF0ZT1mdW5jdGlvbihlKXtyZXR1cm4gZS5zZWFyY2godC5tYXNrKT49MH0pLE5yKFRyKG4ucHJvdG90eXBlKSwiX3VwZGF0ZSIsdGhpcykuY2FsbCh0aGlzLHQpfX1dKSxufShydSk7aXUuTWFza2VkUmVnRXhwPWR1O3ZhciB2dT1bIl9ibG9ja3MiXSxndT1mdW5jdGlvbih0KXtQcihuLHQpO3ZhciBlPVZyKG4pO2Z1bmN0aW9uIG4oKXt2YXIgdD1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06e307cmV0dXJuIHhyKHRoaXMsbiksdC5kZWZpbml0aW9ucz1PYmplY3QuYXNzaWduKHt9LG91LHQuZGVmaW5pdGlvbnMpLGUuY2FsbCh0aGlzLE9iamVjdC5hc3NpZ24oe30sbi5ERUZBVUxUUyx0KSl9cmV0dXJuIE9yKG4sW3trZXk6Il91cGRhdGUiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0\/YXJndW1lbnRzWzBdOnt9O3QuZGVmaW5pdGlvbnM9T2JqZWN0LmFzc2lnbih7fSx0aGlzLmRlZmluaXRpb25zLHQuZGVmaW5pdGlvbnMpLE5yKFRyKG4ucHJvdG90eXBlKSwiX3VwZGF0ZSIsdGhpcykuY2FsbCh0aGlzLHQpLHRoaXMuX3JlYnVpbGRNYXNrKCl9fSx7a2V5OiJfcmVidWlsZE1hc2siLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxlPXRoaXMuZGVmaW5pdGlvbnM7dGhpcy5fYmxvY2tzPVtdLHRoaXMuX3N0b3BzPVtdLHRoaXMuX21hc2tlZEJsb2Nrcz17fTt2YXIgaT10aGlzLm1hc2s7aWYoaSYmZSlmb3IodmFyIHI9ITEsdT0hMSxzPTA7czxpLmxlbmd0aDsrK3Mpe2lmKHRoaXMuYmxvY2tzKWlmKCJjb250aW51ZSI9PT1mdW5jdGlvbigpe3ZhciBlPWkuc2xpY2Uocyksbj1PYmplY3Qua2V5cyh0LmJsb2NrcykuZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4gMD09PWUuaW5kZXhPZih0KX0pKTtuLnNvcnQoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGUubGVuZ3RoLXQubGVuZ3RofSkpO3ZhciByPW5bMF07aWYocil7dmFyIHU9c3UoT2JqZWN0LmFzc2lnbih7cGFyZW50OnQsbGF6eTp0LmxhenksZWFnZXI6dC5lYWdlcixwbGFjZWhvbGRlckNoYXI6dC5wbGFjZWhvbGRlckNoYXIsb3ZlcndyaXRlOnQub3ZlcndyaXRlfSx0LmJsb2Nrc1tyXSkpO3JldHVybiB1JiYodC5fYmxvY2tzLnB1c2godSksdC5fbWFza2VkQmxvY2tzW3JdfHwodC5fbWFza2VkQmxvY2tzW3JdPVtdKSx0Ll9tYXNrZWRCbG9ja3Nbcl0ucHVzaCh0Ll9ibG9ja3MubGVuZ3RoLTEpKSxzKz1yLmxlbmd0aC0xLCJjb250aW51ZSJ9fSgpKWNvbnRpbnVlO3ZhciBhPWlbc10sbz1hIGluIGU7aWYoYSE9PW4uU1RPUF9DSEFSKWlmKCJ7IiE9PWEmJiJ9IiE9PWEpaWYoIlsiIT09YSYmIl0iIT09YSl7aWYoYT09PW4uRVNDQVBFX0NIQVIpe2lmKCsrcywhKGE9aVtzXSkpYnJlYWs7bz0hMX12YXIgbD1vP25ldyBsdSh7cGFyZW50OnRoaXMsbGF6eTp0aGlzLmxhenksZWFnZXI6dGhpcy5lYWdlcixwbGFjZWhvbGRlckNoYXI6dGhpcy5wbGFjZWhvbGRlckNoYXIsbWFzazplW2FdLGlzT3B0aW9uYWw6dX0pOm5ldyBodSh7Y2hhcjphLGVhZ2VyOnRoaXMuZWFnZXIsaXNVbm1hc2tpbmc6cn0pO3RoaXMuX2Jsb2Nrcy5wdXNoKGwpfWVsc2UgdT0hdTtlbHNlIHI9IXI7ZWxzZSB0aGlzLl9zdG9wcy5wdXNoKHRoaXMuX2Jsb2Nrcy5sZW5ndGgpfX19LHtrZXk6InN0YXRlIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gT2JqZWN0LmFzc2lnbih7fSxOcihUcihuLnByb3RvdHlwZSksInN0YXRlIix0aGlzKSx7X2Jsb2Nrczp0aGlzLl9ibG9ja3MubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gdC5zdGF0ZX0pKX0pfSxzZXQ6ZnVuY3Rpb24odCl7dmFyIGU9dC5fYmxvY2tzLGk9anIodCx2dSk7dGhpcy5fYmxvY2tzLmZvckVhY2goKGZ1bmN0aW9uKHQsbil7cmV0dXJuIHQuc3RhdGU9ZVtuXX0pKSx6cihUcihuLnByb3RvdHlwZSksInN0YXRlIixpLHRoaXMsITApfX0se2tleToicmVzZXQiLHZhbHVlOmZ1bmN0aW9uKCl7TnIoVHIobi5wcm90b3R5cGUpLCJyZXNldCIsdGhpcykuY2FsbCh0aGlzKSx0aGlzLl9ibG9ja3MuZm9yRWFjaCgoZnVuY3Rpb24odCl7cmV0dXJuIHQucmVzZXQoKX0pKX19LHtrZXk6ImlzQ29tcGxldGUiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9ibG9ja3MuZXZlcnkoKGZ1bmN0aW9uKHQpe3JldHVybiB0LmlzQ29tcGxldGV9KSl9fSx7a2V5OiJpc0ZpbGxlZCIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2Jsb2Nrcy5ldmVyeSgoZnVuY3Rpb24odCl7cmV0dXJuIHQuaXNGaWxsZWR9KSl9fSx7a2V5OiJpc0ZpeGVkIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYmxvY2tzLmV2ZXJ5KChmdW5jdGlvbih0KXtyZXR1cm4gdC5pc0ZpeGVkfSkpfX0se2tleToiaXNPcHRpb25hbCIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2Jsb2Nrcy5ldmVyeSgoZnVuY3Rpb24odCl7cmV0dXJuIHQuaXNPcHRpb25hbH0pKX19LHtrZXk6ImRvQ29tbWl0Iix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuX2Jsb2Nrcy5mb3JFYWNoKChmdW5jdGlvbih0KXtyZXR1cm4gdC5kb0NvbW1pdCgpfSkpLE5yKFRyKG4ucHJvdG90eXBlKSwiZG9Db21taXQiLHRoaXMpLmNhbGwodGhpcyl9fSx7a2V5OiJ1bm1hc2tlZFZhbHVlIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYmxvY2tzLnJlZHVjZSgoZnVuY3Rpb24odCxlKXtyZXR1cm4gdCtlLnVubWFza2VkVmFsdWV9KSwiIil9LHNldDpmdW5jdGlvbih0KXt6cihUcihuLnByb3RvdHlwZSksInVubWFza2VkVmFsdWUiLHQsdGhpcywhMCl9fSx7a2V5OiJ2YWx1ZSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2Jsb2Nrcy5yZWR1Y2UoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQrZS52YWx1ZX0pLCIiKX0sc2V0OmZ1bmN0aW9uKHQpe3pyKFRyKG4ucHJvdG90eXBlKSwidmFsdWUiLHQsdGhpcywhMCl9fSx7a2V5OiJhcHBlbmRUYWlsIix2YWx1ZTpmdW5jdGlvbih0KXtyZXR1cm4gTnIoVHIobi5wcm90b3R5cGUpLCJhcHBlbmRUYWlsIix0aGlzKS5jYWxsKHRoaXMsdCkuYWdncmVnYXRlKHRoaXMuX2FwcGVuZFBsYWNlaG9sZGVyKCkpfX0se2tleToiX2FwcGVuZEVhZ2VyIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0LGU9bmV3IFlyLG49bnVsbD09PSh0PXRoaXMuX21hcFBvc1RvQmxvY2sodGhpcy52YWx1ZS5sZW5ndGgpKXx8dm9pZCAwPT09dD92b2lkIDA6dC5pbmRleDtpZihudWxsPT1uKXJldHVybiBlO3RoaXMuX2Jsb2Nrc1tuXS5pc0ZpbGxlZCYmKytuO2Zvcih2YXIgaT1uO2k8dGhpcy5fYmxvY2tzLmxlbmd0aDsrK2kpe3ZhciByPXRoaXMuX2Jsb2Nrc1tpXS5fYXBwZW5kRWFnZXIoKTtpZighci5pbnNlcnRlZClicmVhaztlLmFnZ3JlZ2F0ZShyKX1yZXR1cm4gZX19LHtrZXk6Il9hcHBlbmRDaGFyUmF3Iix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06e30sbj10aGlzLl9tYXBQb3NUb0Jsb2NrKHRoaXMudmFsdWUubGVuZ3RoKSxpPW5ldyBZcjtpZighbilyZXR1cm4gaTtmb3IodmFyIHI9bi5pbmRleDs7KytyKXt2YXIgdSxzPXRoaXMuX2Jsb2Nrc1tyXTtpZighcylicmVhazt2YXIgYT1zLl9hcHBlbmRDaGFyKHQsT2JqZWN0LmFzc2lnbih7fSxlLHtfYmVmb3JlVGFpbFN0YXRlOm51bGw9PT0odT1lLl9iZWZvcmVUYWlsU3RhdGUpfHx2b2lkIDA9PT11P3ZvaWQgMDp1Ll9ibG9ja3Nbcl19KSksbz1hLnNraXA7aWYoaS5hZ2dyZWdhdGUoYSksb3x8YS5yYXdJbnNlcnRlZClicmVha31yZXR1cm4gaX19LHtrZXk6ImV4dHJhY3RUYWlsIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PXRoaXMsZT1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06MCxuPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp0aGlzLnZhbHVlLmxlbmd0aCxpPW5ldyBmdTtyZXR1cm4gZT09PW58fHRoaXMuX2ZvckVhY2hCbG9ja3NJblJhbmdlKGUsbiwoZnVuY3Rpb24oZSxuLHIsdSl7dmFyIHM9ZS5leHRyYWN0VGFpbChyLHUpO3Muc3RvcD10Ll9maW5kU3RvcEJlZm9yZShuKSxzLmZyb209dC5fYmxvY2tTdGFydFBvcyhuKSxzIGluc3RhbmNlb2YgZnUmJihzLmJsb2NrSW5kZXg9biksaS5leHRlbmQocyl9KSksaX19LHtrZXk6ImV4dHJhY3RJbnB1dCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06MCxlPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp0aGlzLnZhbHVlLmxlbmd0aCxuPWFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdP2FyZ3VtZW50c1syXTp7fTtpZih0PT09ZSlyZXR1cm4iIjt2YXIgaT0iIjtyZXR1cm4gdGhpcy5fZm9yRWFjaEJsb2Nrc0luUmFuZ2UodCxlLChmdW5jdGlvbih0LGUscix1KXtpKz10LmV4dHJhY3RJbnB1dChyLHUsbil9KSksaX19LHtrZXk6Il9maW5kU3RvcEJlZm9yZSIsdmFsdWU6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLG49MDtuPHRoaXMuX3N0b3BzLmxlbmd0aDsrK24pe3ZhciBpPXRoaXMuX3N0b3BzW25dO2lmKCEoaTw9dCkpYnJlYWs7ZT1pfXJldHVybiBlfX0se2tleToiX2FwcGVuZFBsYWNlaG9sZGVyIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT10aGlzLG49bmV3IFlyO2lmKHRoaXMubGF6eSYmbnVsbD09dClyZXR1cm4gbjt2YXIgaT10aGlzLl9tYXBQb3NUb0Jsb2NrKHRoaXMudmFsdWUubGVuZ3RoKTtpZighaSlyZXR1cm4gbjt2YXIgcj1pLmluZGV4LHU9bnVsbCE9dD90OnRoaXMuX2Jsb2Nrcy5sZW5ndGg7cmV0dXJuIHRoaXMuX2Jsb2Nrcy5zbGljZShyLHUpLmZvckVhY2goKGZ1bmN0aW9uKGkpe2lmKCFpLmxhenl8fG51bGwhPXQpe3ZhciByPW51bGwhPWkuX2Jsb2Nrcz9baS5fYmxvY2tzLmxlbmd0aF06W10sdT1pLl9hcHBlbmRQbGFjZWhvbGRlci5hcHBseShpLHIpO2UuX3ZhbHVlKz11Lmluc2VydGVkLG4uYWdncmVnYXRlKHUpfX0pKSxufX0se2tleToiX21hcFBvc1RvQmxvY2siLHZhbHVlOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0iIixuPTA7bjx0aGlzLl9ibG9ja3MubGVuZ3RoOysrbil7dmFyIGk9dGhpcy5fYmxvY2tzW25dLHI9ZS5sZW5ndGg7aWYodDw9KGUrPWkudmFsdWUpLmxlbmd0aClyZXR1cm57aW5kZXg6bixvZmZzZXQ6dC1yfX19fSx7a2V5OiJfYmxvY2tTdGFydFBvcyIsdmFsdWU6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX2Jsb2Nrcy5zbGljZSgwLHQpLnJlZHVjZSgoZnVuY3Rpb24odCxlKXtyZXR1cm4gdCtlLnZhbHVlLmxlbmd0aH0pLDApfX0se2tleToiX2ZvckVhY2hCbG9ja3NJblJhbmdlIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06dGhpcy52YWx1ZS5sZW5ndGgsbj1hcmd1bWVudHMubGVuZ3RoPjI\/YXJndW1lbnRzWzJdOnZvaWQgMCxpPXRoaXMuX21hcFBvc1RvQmxvY2sodCk7aWYoaSl7dmFyIHI9dGhpcy5fbWFwUG9zVG9CbG9jayhlKSx1PXImJmkuaW5kZXg9PT1yLmluZGV4LHM9aS5vZmZzZXQsYT1yJiZ1P3Iub2Zmc2V0OnRoaXMuX2Jsb2Nrc1tpLmluZGV4XS52YWx1ZS5sZW5ndGg7aWYobih0aGlzLl9ibG9ja3NbaS5pbmRleF0saS5pbmRleCxzLGEpLHImJiF1KXtmb3IodmFyIG89aS5pbmRleCsxO288ci5pbmRleDsrK28pbih0aGlzLl9ibG9ja3Nbb10sbywwLHRoaXMuX2Jsb2Nrc1tvXS52YWx1ZS5sZW5ndGgpO24odGhpcy5fYmxvY2tzW3IuaW5kZXhdLHIuaW5kZXgsMCxyLm9mZnNldCl9fX19LHtrZXk6InJlbW92ZSIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06MCxlPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp0aGlzLnZhbHVlLmxlbmd0aCxpPU5yKFRyKG4ucHJvdG90eXBlKSwicmVtb3ZlIix0aGlzKS5jYWxsKHRoaXMsdCxlKTtyZXR1cm4gdGhpcy5fZm9yRWFjaEJsb2Nrc0luUmFuZ2UodCxlLChmdW5jdGlvbih0LGUsbixyKXtpLmFnZ3JlZ2F0ZSh0LnJlbW92ZShuLHIpKX0pKSxpfX0se2tleToibmVhcmVzdElucHV0UG9zIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06R3I7aWYoIXRoaXMuX2Jsb2Nrcy5sZW5ndGgpcmV0dXJuIDA7dmFyIG49bmV3IHB1KHRoaXMsdCk7aWYoZT09PUdyKXJldHVybiBuLnB1c2hSaWdodEJlZm9yZUlucHV0KCk\/bi5wb3M6KG4ucG9wU3RhdGUoKSxuLnB1c2hMZWZ0QmVmb3JlSW5wdXQoKT9uLnBvczp0aGlzLnZhbHVlLmxlbmd0aCk7aWYoZT09PUtyfHxlPT09JHIpe2lmKGU9PT1Lcil7aWYobi5wdXNoUmlnaHRCZWZvcmVGaWxsZWQoKSxuLm9rJiZuLnBvcz09PXQpcmV0dXJuIHQ7bi5wb3BTdGF0ZSgpfWlmKG4ucHVzaExlZnRCZWZvcmVJbnB1dCgpLG4ucHVzaExlZnRCZWZvcmVSZXF1aXJlZCgpLG4ucHVzaExlZnRCZWZvcmVGaWxsZWQoKSxlPT09S3Ipe2lmKG4ucHVzaFJpZ2h0QmVmb3JlSW5wdXQoKSxuLnB1c2hSaWdodEJlZm9yZVJlcXVpcmVkKCksbi5vayYmbi5wb3M8PXQpcmV0dXJuIG4ucG9zO2lmKG4ucG9wU3RhdGUoKSxuLm9rJiZuLnBvczw9dClyZXR1cm4gbi5wb3M7bi5wb3BTdGF0ZSgpfXJldHVybiBuLm9rP24ucG9zOmU9PT0kcj8wOihuLnBvcFN0YXRlKCksbi5vaz9uLnBvczoobi5wb3BTdGF0ZSgpLG4ub2s\/bi5wb3M6MCkpfXJldHVybiBlPT09V3J8fGU9PT1Ycj8obi5wdXNoUmlnaHRCZWZvcmVJbnB1dCgpLG4ucHVzaFJpZ2h0QmVmb3JlUmVxdWlyZWQoKSxuLnB1c2hSaWdodEJlZm9yZUZpbGxlZCgpP24ucG9zOmU9PT1Ycj90aGlzLnZhbHVlLmxlbmd0aDoobi5wb3BTdGF0ZSgpLG4ub2s\/bi5wb3M6KG4ucG9wU3RhdGUoKSxuLm9rP24ucG9zOnRoaXMubmVhcmVzdElucHV0UG9zKHQsS3IpKSkpOnR9fSx7a2V5OiJtYXNrZWRCbG9jayIsdmFsdWU6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMubWFza2VkQmxvY2tzKHQpWzBdfX0se2tleToibWFza2VkQmxvY2tzIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT10aGlzLG49dGhpcy5fbWFza2VkQmxvY2tzW3RdO3JldHVybiBuP24ubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gZS5fYmxvY2tzW3RdfSkpOltdfX1dKSxufShydSk7Z3UuREVGQVVMVFM9e2xhenk6ITAscGxhY2Vob2xkZXJDaGFyOiJfIn0sZ3UuU1RPUF9DSEFSPSJgIixndS5FU0NBUEVfQ0hBUj0iXFwiLGd1LklucHV0RGVmaW5pdGlvbj1sdSxndS5GaXhlZERlZmluaXRpb249aHUsaXUuTWFza2VkUGF0dGVybj1ndTt2YXIga3U9ZnVuY3Rpb24odCl7UHIobix0KTt2YXIgZT1WcihuKTtmdW5jdGlvbiBuKCl7cmV0dXJuIHhyKHRoaXMsbiksZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9cmV0dXJuIE9yKG4sW3trZXk6Il9tYXRjaEZyb20iLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLm1heExlbmd0aC1TdHJpbmcodGhpcy5mcm9tKS5sZW5ndGh9fSx7a2V5OiJfdXBkYXRlIix2YWx1ZTpmdW5jdGlvbih0KXt0PU9iamVjdC5hc3NpZ24oe3RvOnRoaXMudG98fDAsZnJvbTp0aGlzLmZyb218fDAsbWF4TGVuZ3RoOnRoaXMubWF4TGVuZ3RofHwwfSx0KTt2YXIgZT1TdHJpbmcodC50bykubGVuZ3RoO251bGwhPXQubWF4TGVuZ3RoJiYoZT1NYXRoLm1heChlLHQubWF4TGVuZ3RoKSksdC5tYXhMZW5ndGg9ZTtmb3IodmFyIGk9U3RyaW5nKHQuZnJvbSkucGFkU3RhcnQoZSwiMCIpLHI9U3RyaW5nKHQudG8pLnBhZFN0YXJ0KGUsIjAiKSx1PTA7dTxyLmxlbmd0aCYmclt1XT09PWlbdV07KSsrdTt0Lm1hc2s9ci5zbGljZSgwLHUpLnJlcGxhY2UoLzAvZywiXFwwIikrIjAiLnJlcGVhdChlLXUpLE5yKFRyKG4ucHJvdG90eXBlKSwiX3VwZGF0ZSIsdGhpcykuY2FsbCh0aGlzLHQpfX0se2tleToiaXNDb21wbGV0ZSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIE5yKFRyKG4ucHJvdG90eXBlKSwiaXNDb21wbGV0ZSIsdGhpcykmJkJvb2xlYW4odGhpcy52YWx1ZSl9fSx7a2V5OiJib3VuZGFyaWVzIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT0iIixuPSIiLGk9cXIodC5tYXRjaCgvXihcRCopKFxkKikoXEQqKS8pfHxbXSwzKSxyPWlbMV0sdT1pWzJdO3JldHVybiB1JiYoZT0iMCIucmVwZWF0KHIubGVuZ3RoKSt1LG49IjkiLnJlcGVhdChyLmxlbmd0aCkrdSksW2U9ZS5wYWRFbmQodGhpcy5tYXhMZW5ndGgsIjAiKSxuPW4ucGFkRW5kKHRoaXMubWF4TGVuZ3RoLCI5IildfX0se2tleToiZG9QcmVwYXJlIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZSxpPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp7fSxyPVFyKE5yKFRyKG4ucHJvdG90eXBlKSwiZG9QcmVwYXJlIix0aGlzKS5jYWxsKHRoaXMsdC5yZXBsYWNlKC9cRC9nLCIiKSxpKSksdT1xcihyLDIpO2lmKHQ9dVswXSxlPXVbMV0sIXRoaXMuYXV0b2ZpeHx8IXQpcmV0dXJuIHQ7dmFyIHM9U3RyaW5nKHRoaXMuZnJvbSkucGFkU3RhcnQodGhpcy5tYXhMZW5ndGgsIjAiKSxhPVN0cmluZyh0aGlzLnRvKS5wYWRTdGFydCh0aGlzLm1heExlbmd0aCwiMCIpLG89dGhpcy52YWx1ZSt0O2lmKG8ubGVuZ3RoPnRoaXMubWF4TGVuZ3RoKXJldHVybiIiO3ZhciBsPXRoaXMuYm91bmRhcmllcyhvKSxoPXFyKGwsMiksYz1oWzBdLGY9aFsxXTtyZXR1cm4gTnVtYmVyKGYpPHRoaXMuZnJvbT9zW28ubGVuZ3RoLTFdOk51bWJlcihjKT50aGlzLnRvPyJwYWQiPT09dGhpcy5hdXRvZml4JiZvLmxlbmd0aDx0aGlzLm1heExlbmd0aD9bIiIsZS5hZ2dyZWdhdGUodGhpcy5hcHBlbmQoc1tvLmxlbmd0aC0xXSt0LGkpKV06YVtvLmxlbmd0aC0xXTp0fX0se2tleToiZG9WYWxpZGF0ZSIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdCxlPXRoaXMudmFsdWUsaT1lLnNlYXJjaCgvW14wXS8pO2lmKC0xPT09aSYmZS5sZW5ndGg8PXRoaXMuX21hdGNoRnJvbSlyZXR1cm4hMDtmb3IodmFyIHI9dGhpcy5ib3VuZGFyaWVzKGUpLHU9cXIociwyKSxzPXVbMF0sYT11WzFdLG89YXJndW1lbnRzLmxlbmd0aCxsPW5ldyBBcnJheShvKSxoPTA7aDxvO2grKylsW2hdPWFyZ3VtZW50c1toXTtyZXR1cm4gdGhpcy5mcm9tPD1OdW1iZXIoYSkmJk51bWJlcihzKTw9dGhpcy50byYmKHQ9TnIoVHIobi5wcm90b3R5cGUpLCJkb1ZhbGlkYXRlIix0aGlzKSkuY2FsbC5hcHBseSh0LFt0aGlzXS5jb25jYXQobCkpfX1dKSxufShndSk7aXUuTWFza2VkUmFuZ2U9a3U7dmFyIHl1PWZ1bmN0aW9uKHQpe1ByKG4sdCk7dmFyIGU9VnIobik7ZnVuY3Rpb24gbih0KXtyZXR1cm4geHIodGhpcyxuKSxlLmNhbGwodGhpcyxPYmplY3QuYXNzaWduKHt9LG4uREVGQVVMVFMsdCkpfXJldHVybiBPcihuLFt7a2V5OiJfdXBkYXRlIix2YWx1ZTpmdW5jdGlvbih0KXt0Lm1hc2s9PT1EYXRlJiZkZWxldGUgdC5tYXNrLHQucGF0dGVybiYmKHQubWFzaz10LnBhdHRlcm4pO3ZhciBlPXQuYmxvY2tzO3QuYmxvY2tzPU9iamVjdC5hc3NpZ24oe30sbi5HRVRfREVGQVVMVF9CTE9DS1MoKSksdC5taW4mJih0LmJsb2Nrcy5ZLmZyb209dC5taW4uZ2V0RnVsbFllYXIoKSksdC5tYXgmJih0LmJsb2Nrcy5ZLnRvPXQubWF4LmdldEZ1bGxZZWFyKCkpLHQubWluJiZ0Lm1heCYmdC5ibG9ja3MuWS5mcm9tPT09dC5ibG9ja3MuWS50byYmKHQuYmxvY2tzLm0uZnJvbT10Lm1pbi5nZXRNb250aCgpKzEsdC5ibG9ja3MubS50bz10Lm1heC5nZXRNb250aCgpKzEsdC5ibG9ja3MubS5mcm9tPT09dC5ibG9ja3MubS50byYmKHQuYmxvY2tzLmQuZnJvbT10Lm1pbi5nZXREYXRlKCksdC5ibG9ja3MuZC50bz10Lm1heC5nZXREYXRlKCkpKSxPYmplY3QuYXNzaWduKHQuYmxvY2tzLHRoaXMuYmxvY2tzLGUpLE9iamVjdC5rZXlzKHQuYmxvY2tzKS5mb3JFYWNoKChmdW5jdGlvbihlKXt2YXIgbj10LmJsb2Nrc1tlXTshKCJhdXRvZml4ImluIG4pJiYiYXV0b2ZpeCJpbiB0JiYobi5hdXRvZml4PXQuYXV0b2ZpeCl9KSksTnIoVHIobi5wcm90b3R5cGUpLCJfdXBkYXRlIix0aGlzKS5jYWxsKHRoaXMsdCl9fSx7a2V5OiJkb1ZhbGlkYXRlIix2YWx1ZTpmdW5jdGlvbigpe2Zvcih2YXIgdCxlPXRoaXMuZGF0ZSxpPWFyZ3VtZW50cy5sZW5ndGgscj1uZXcgQXJyYXkoaSksdT0wO3U8aTt1Kyspclt1XT1hcmd1bWVudHNbdV07cmV0dXJuKHQ9TnIoVHIobi5wcm90b3R5cGUpLCJkb1ZhbGlkYXRlIix0aGlzKSkuY2FsbC5hcHBseSh0LFt0aGlzXS5jb25jYXQocikpJiYoIXRoaXMuaXNDb21wbGV0ZXx8dGhpcy5pc0RhdGVFeGlzdCh0aGlzLnZhbHVlKSYmbnVsbCE9ZSYmKG51bGw9PXRoaXMubWlufHx0aGlzLm1pbjw9ZSkmJihudWxsPT10aGlzLm1heHx8ZTw9dGhpcy5tYXgpKX19LHtrZXk6ImlzRGF0ZUV4aXN0Iix2YWx1ZTpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5mb3JtYXQodGhpcy5wYXJzZSh0LHRoaXMpLHRoaXMpLmluZGV4T2YodCk+PTB9fSx7a2V5OiJkYXRlIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy50eXBlZFZhbHVlfSxzZXQ6ZnVuY3Rpb24odCl7dGhpcy50eXBlZFZhbHVlPXR9fSx7a2V5OiJ0eXBlZFZhbHVlIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pc0NvbXBsZXRlP05yKFRyKG4ucHJvdG90eXBlKSwidHlwZWRWYWx1ZSIsdGhpcyk6bnVsbH0sc2V0OmZ1bmN0aW9uKHQpe3pyKFRyKG4ucHJvdG90eXBlKSwidHlwZWRWYWx1ZSIsdCx0aGlzLCEwKX19LHtrZXk6Im1hc2tFcXVhbHMiLHZhbHVlOmZ1bmN0aW9uKHQpe3JldHVybiB0PT09RGF0ZXx8TnIoVHIobi5wcm90b3R5cGUpLCJtYXNrRXF1YWxzIix0aGlzKS5jYWxsKHRoaXMsdCl9fV0pLG59KGd1KTt5dS5ERUZBVUxUUz17cGF0dGVybjoiZHsufWBtey59YFkiLGZvcm1hdDpmdW5jdGlvbih0KXtyZXR1cm4gdD9bU3RyaW5nKHQuZ2V0RGF0ZSgpKS5wYWRTdGFydCgyLCIwIiksU3RyaW5nKHQuZ2V0TW9udGgoKSsxKS5wYWRTdGFydCgyLCIwIiksdC5nZXRGdWxsWWVhcigpXS5qb2luKCIuIik6IiJ9LHBhcnNlOmZ1bmN0aW9uKHQpe3ZhciBlPXFyKHQuc3BsaXQoIi4iKSwzKSxuPWVbMF0saT1lWzFdLHI9ZVsyXTtyZXR1cm4gbmV3IERhdGUocixpLTEsbil9fSx5dS5HRVRfREVGQVVMVF9CTE9DS1M9ZnVuY3Rpb24oKXtyZXR1cm57ZDp7bWFzazprdSxmcm9tOjEsdG86MzEsbWF4TGVuZ3RoOjJ9LG06e21hc2s6a3UsZnJvbToxLHRvOjEyLG1heExlbmd0aDoyfSxZOnttYXNrOmt1LGZyb206MTkwMCx0bzo5OTk5fX19LGl1Lk1hc2tlZERhdGU9eXU7dmFyIG11PWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCgpe3hyKHRoaXMsdCl9cmV0dXJuIE9yKHQsW3trZXk6InNlbGVjdGlvblN0YXJ0IixnZXQ6ZnVuY3Rpb24oKXt2YXIgdDt0cnl7dD10aGlzLl91bnNhZmVTZWxlY3Rpb25TdGFydH1jYXRjaCh0KXt9cmV0dXJuIG51bGwhPXQ\/dDp0aGlzLnZhbHVlLmxlbmd0aH19LHtrZXk6InNlbGVjdGlvbkVuZCIsZ2V0OmZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9dGhpcy5fdW5zYWZlU2VsZWN0aW9uRW5kfWNhdGNoKHQpe31yZXR1cm4gbnVsbCE9dD90OnRoaXMudmFsdWUubGVuZ3RofX0se2tleToic2VsZWN0Iix2YWx1ZTpmdW5jdGlvbih0LGUpe2lmKG51bGwhPXQmJm51bGwhPWUmJih0IT09dGhpcy5zZWxlY3Rpb25TdGFydHx8ZSE9PXRoaXMuc2VsZWN0aW9uRW5kKSl0cnl7dGhpcy5fdW5zYWZlU2VsZWN0KHQsZSl9Y2F0Y2godCl7fX19LHtrZXk6Il91bnNhZmVTZWxlY3QiLHZhbHVlOmZ1bmN0aW9uKHQsZSl7fX0se2tleToiaXNBY3RpdmUiLGdldDpmdW5jdGlvbigpe3JldHVybiExfX0se2tleToiYmluZEV2ZW50cyIsdmFsdWU6ZnVuY3Rpb24odCl7fX0se2tleToidW5iaW5kRXZlbnRzIix2YWx1ZTpmdW5jdGlvbigpe319XSksdH0oKTtpdS5NYXNrRWxlbWVudD1tdTt2YXIgYnU9ZnVuY3Rpb24odCl7UHIobix0KTt2YXIgZT1WcihuKTtmdW5jdGlvbiBuKHQpe3ZhciBpO3JldHVybiB4cih0aGlzLG4pLChpPWUuY2FsbCh0aGlzKSkuaW5wdXQ9dCxpLl9oYW5kbGVycz17fSxpfXJldHVybiBPcihuLFt7a2V5OiJyb290RWxlbWVudCIsZ2V0OmZ1bmN0aW9uKCl7dmFyIHQsZSxuO3JldHVybiBudWxsIT09KHQ9bnVsbD09PShlPShuPXRoaXMuaW5wdXQpLmdldFJvb3ROb2RlKXx8dm9pZCAwPT09ZT92b2lkIDA6ZS5jYWxsKG4pKSYmdm9pZCAwIT09dD90OmRvY3VtZW50fX0se2tleToiaXNBY3RpdmUiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmlucHV0PT09dGhpcy5yb290RWxlbWVudC5hY3RpdmVFbGVtZW50fX0se2tleToiX3Vuc2FmZVNlbGVjdGlvblN0YXJ0IixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pbnB1dC5zZWxlY3Rpb25TdGFydH19LHtrZXk6Il91bnNhZmVTZWxlY3Rpb25FbmQiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmlucHV0LnNlbGVjdGlvbkVuZH19LHtrZXk6Il91bnNhZmVTZWxlY3QiLHZhbHVlOmZ1bmN0aW9uKHQsZSl7dGhpcy5pbnB1dC5zZXRTZWxlY3Rpb25SYW5nZSh0LGUpfX0se2tleToidmFsdWUiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmlucHV0LnZhbHVlfSxzZXQ6ZnVuY3Rpb24odCl7dGhpcy5pbnB1dC52YWx1ZT10fX0se2tleToiYmluZEV2ZW50cyIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztPYmplY3Qua2V5cyh0KS5mb3JFYWNoKChmdW5jdGlvbihpKXtyZXR1cm4gZS5fdG9nZ2xlRXZlbnRIYW5kbGVyKG4uRVZFTlRTX01BUFtpXSx0W2ldKX0pKX19LHtrZXk6InVuYmluZEV2ZW50cyIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO09iamVjdC5rZXlzKHRoaXMuX2hhbmRsZXJzKS5mb3JFYWNoKChmdW5jdGlvbihlKXtyZXR1cm4gdC5fdG9nZ2xlRXZlbnRIYW5kbGVyKGUpfSkpfX0se2tleToiX3RvZ2dsZUV2ZW50SGFuZGxlciIsdmFsdWU6ZnVuY3Rpb24odCxlKXt0aGlzLl9oYW5kbGVyc1t0XSYmKHRoaXMuaW5wdXQucmVtb3ZlRXZlbnRMaXN0ZW5lcih0LHRoaXMuX2hhbmRsZXJzW3RdKSxkZWxldGUgdGhpcy5faGFuZGxlcnNbdF0pLGUmJih0aGlzLmlucHV0LmFkZEV2ZW50TGlzdGVuZXIodCxlKSx0aGlzLl9oYW5kbGVyc1t0XT1lKX19XSksbn0obXUpO2J1LkVWRU5UU19NQVA9e3NlbGVjdGlvbkNoYW5nZToia2V5ZG93biIsaW5wdXQ6ImlucHV0Iixkcm9wOiJkcm9wIixjbGljazoiY2xpY2siLGZvY3VzOiJmb2N1cyIsY29tbWl0OiJibHVyIn0saXUuSFRNTE1hc2tFbGVtZW50PWJ1O3ZhciBfdT1mdW5jdGlvbih0KXtQcihuLHQpO3ZhciBlPVZyKG4pO2Z1bmN0aW9uIG4oKXtyZXR1cm4geHIodGhpcyxuKSxlLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1yZXR1cm4gT3Iobixbe2tleToiX3Vuc2FmZVNlbGVjdGlvblN0YXJ0IixnZXQ6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLnJvb3RFbGVtZW50LGU9dC5nZXRTZWxlY3Rpb24mJnQuZ2V0U2VsZWN0aW9uKCksbj1lJiZlLmFuY2hvck9mZnNldCxpPWUmJmUuZm9jdXNPZmZzZXQ7cmV0dXJuIG51bGw9PWl8fG51bGw9PW58fG48aT9uOml9fSx7a2V5OiJfdW5zYWZlU2VsZWN0aW9uRW5kIixnZXQ6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLnJvb3RFbGVtZW50LGU9dC5nZXRTZWxlY3Rpb24mJnQuZ2V0U2VsZWN0aW9uKCksbj1lJiZlLmFuY2hvck9mZnNldCxpPWUmJmUuZm9jdXNPZmZzZXQ7cmV0dXJuIG51bGw9PWl8fG51bGw9PW58fG4+aT9uOml9fSx7a2V5OiJfdW5zYWZlU2VsZWN0Iix2YWx1ZTpmdW5jdGlvbih0LGUpe2lmKHRoaXMucm9vdEVsZW1lbnQuY3JlYXRlUmFuZ2Upe3ZhciBuPXRoaXMucm9vdEVsZW1lbnQuY3JlYXRlUmFuZ2UoKTtuLnNldFN0YXJ0KHRoaXMuaW5wdXQuZmlyc3RDaGlsZHx8dGhpcy5pbnB1dCx0KSxuLnNldEVuZCh0aGlzLmlucHV0Lmxhc3RDaGlsZHx8dGhpcy5pbnB1dCxlKTt2YXIgaT10aGlzLnJvb3RFbGVtZW50LHI9aS5nZXRTZWxlY3Rpb24mJmkuZ2V0U2VsZWN0aW9uKCk7ciYmKHIucmVtb3ZlQWxsUmFuZ2VzKCksci5hZGRSYW5nZShuKSl9fX0se2tleToidmFsdWUiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmlucHV0LnRleHRDb250ZW50fSxzZXQ6ZnVuY3Rpb24odCl7dGhpcy5pbnB1dC50ZXh0Q29udGVudD10fX1dKSxufShidSk7aXUuSFRNTENvbnRlbnRlZGl0YWJsZU1hc2tFbGVtZW50PV91O3ZhciBBdT1bIm1hc2siXSxDdT1mdW5jdGlvbigpe2Z1bmN0aW9uIHQoZSxuKXt4cih0aGlzLHQpLHRoaXMuZWw9ZSBpbnN0YW5jZW9mIG11P2U6ZS5pc0NvbnRlbnRFZGl0YWJsZSYmIklOUFVUIiE9PWUudGFnTmFtZSYmIlRFWFRBUkVBIiE9PWUudGFnTmFtZT9uZXcgX3UoZSk6bmV3IGJ1KGUpLHRoaXMubWFza2VkPXN1KG4pLHRoaXMuX2xpc3RlbmVycz17fSx0aGlzLl92YWx1ZT0iIix0aGlzLl91bm1hc2tlZFZhbHVlPSIiLHRoaXMuX3NhdmVTZWxlY3Rpb249dGhpcy5fc2F2ZVNlbGVjdGlvbi5iaW5kKHRoaXMpLHRoaXMuX29uSW5wdXQ9dGhpcy5fb25JbnB1dC5iaW5kKHRoaXMpLHRoaXMuX29uQ2hhbmdlPXRoaXMuX29uQ2hhbmdlLmJpbmQodGhpcyksdGhpcy5fb25Ecm9wPXRoaXMuX29uRHJvcC5iaW5kKHRoaXMpLHRoaXMuX29uRm9jdXM9dGhpcy5fb25Gb2N1cy5iaW5kKHRoaXMpLHRoaXMuX29uQ2xpY2s9dGhpcy5fb25DbGljay5iaW5kKHRoaXMpLHRoaXMuYWxpZ25DdXJzb3I9dGhpcy5hbGlnbkN1cnNvci5iaW5kKHRoaXMpLHRoaXMuYWxpZ25DdXJzb3JGcmllbmRseT10aGlzLmFsaWduQ3Vyc29yRnJpZW5kbHkuYmluZCh0aGlzKSx0aGlzLl9iaW5kRXZlbnRzKCksdGhpcy51cGRhdGVWYWx1ZSgpLHRoaXMuX29uQ2hhbmdlKCl9cmV0dXJuIE9yKHQsW3trZXk6Im1hc2siLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLm1hc2tlZC5tYXNrfSxzZXQ6ZnVuY3Rpb24odCl7aWYoIXRoaXMubWFza0VxdWFscyh0KSlpZih0IGluc3RhbmNlb2YgaXUuTWFza2VkfHx0aGlzLm1hc2tlZC5jb25zdHJ1Y3RvciE9PXV1KHQpKXt2YXIgZT1zdSh7bWFzazp0fSk7ZS51bm1hc2tlZFZhbHVlPXRoaXMubWFza2VkLnVubWFza2VkVmFsdWUsdGhpcy5tYXNrZWQ9ZX1lbHNlIHRoaXMubWFza2VkLnVwZGF0ZU9wdGlvbnMoe21hc2s6dH0pfX0se2tleToibWFza0VxdWFscyIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGU7cmV0dXJuIG51bGw9PXR8fChudWxsPT09KGU9dGhpcy5tYXNrZWQpfHx2b2lkIDA9PT1lP3ZvaWQgMDplLm1hc2tFcXVhbHModCkpfX0se2tleToidmFsdWUiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl92YWx1ZX0sc2V0OmZ1bmN0aW9uKHQpe3RoaXMubWFza2VkLnZhbHVlPXQsdGhpcy51cGRhdGVDb250cm9sKCksdGhpcy5hbGlnbkN1cnNvcigpfX0se2tleToidW5tYXNrZWRWYWx1ZSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3VubWFza2VkVmFsdWV9LHNldDpmdW5jdGlvbih0KXt0aGlzLm1hc2tlZC51bm1hc2tlZFZhbHVlPXQsdGhpcy51cGRhdGVDb250cm9sKCksdGhpcy5hbGlnbkN1cnNvcigpfX0se2tleToidHlwZWRWYWx1ZSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubWFza2VkLnR5cGVkVmFsdWV9LHNldDpmdW5jdGlvbih0KXt0aGlzLm1hc2tlZC50eXBlZFZhbHVlPXQsdGhpcy51cGRhdGVDb250cm9sKCksdGhpcy5hbGlnbkN1cnNvcigpfX0se2tleToiX2JpbmRFdmVudHMiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5lbC5iaW5kRXZlbnRzKHtzZWxlY3Rpb25DaGFuZ2U6dGhpcy5fc2F2ZVNlbGVjdGlvbixpbnB1dDp0aGlzLl9vbklucHV0LGRyb3A6dGhpcy5fb25Ecm9wLGNsaWNrOnRoaXMuX29uQ2xpY2ssZm9jdXM6dGhpcy5fb25Gb2N1cyxjb21taXQ6dGhpcy5fb25DaGFuZ2V9KX19LHtrZXk6Il91bmJpbmRFdmVudHMiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5lbCYmdGhpcy5lbC51bmJpbmRFdmVudHMoKX19LHtrZXk6Il9maXJlRXZlbnQiLHZhbHVlOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1hcmd1bWVudHMubGVuZ3RoLG49bmV3IEFycmF5KGU+MT9lLTE6MCksaT0xO2k8ZTtpKyspbltpLTFdPWFyZ3VtZW50c1tpXTt2YXIgcj10aGlzLl9saXN0ZW5lcnNbdF07ciYmci5mb3JFYWNoKChmdW5jdGlvbih0KXtyZXR1cm4gdC5hcHBseSh2b2lkIDAsbil9KSl9fSx7a2V5OiJzZWxlY3Rpb25TdGFydCIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2N1cnNvckNoYW5naW5nP3RoaXMuX2NoYW5naW5nQ3Vyc29yUG9zOnRoaXMuZWwuc2VsZWN0aW9uU3RhcnR9fSx7a2V5OiJjdXJzb3JQb3MiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9jdXJzb3JDaGFuZ2luZz90aGlzLl9jaGFuZ2luZ0N1cnNvclBvczp0aGlzLmVsLnNlbGVjdGlvbkVuZH0sc2V0OmZ1bmN0aW9uKHQpe3RoaXMuZWwmJnRoaXMuZWwuaXNBY3RpdmUmJih0aGlzLmVsLnNlbGVjdCh0LHQpLHRoaXMuX3NhdmVTZWxlY3Rpb24oKSl9fSx7a2V5OiJfc2F2ZVNlbGVjdGlvbiIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLnZhbHVlIT09dGhpcy5lbC52YWx1ZSYmY29uc29sZS53YXJuKCJFbGVtZW50IHZhbHVlIHdhcyBjaGFuZ2VkIG91dHNpZGUgb2YgbWFzay4gU3luY3Jvbml6ZSBtYXNrIHVzaW5nIGBtYXNrLnVwZGF0ZVZhbHVlKClgIHRvIHdvcmsgcHJvcGVybHkuIiksdGhpcy5fc2VsZWN0aW9uPXtzdGFydDp0aGlzLnNlbGVjdGlvblN0YXJ0LGVuZDp0aGlzLmN1cnNvclBvc319fSx7a2V5OiJ1cGRhdGVWYWx1ZSIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLm1hc2tlZC52YWx1ZT10aGlzLmVsLnZhbHVlLHRoaXMuX3ZhbHVlPXRoaXMubWFza2VkLnZhbHVlfX0se2tleToidXBkYXRlQ29udHJvbCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLm1hc2tlZC51bm1hc2tlZFZhbHVlLGU9dGhpcy5tYXNrZWQudmFsdWUsbj10aGlzLnVubWFza2VkVmFsdWUhPT10fHx0aGlzLnZhbHVlIT09ZTt0aGlzLl91bm1hc2tlZFZhbHVlPXQsdGhpcy5fdmFsdWU9ZSx0aGlzLmVsLnZhbHVlIT09ZSYmKHRoaXMuZWwudmFsdWU9ZSksbiYmdGhpcy5fZmlyZUNoYW5nZUV2ZW50cygpfX0se2tleToidXBkYXRlT3B0aW9ucyIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGU9dC5tYXNrLG49anIodCxBdSksaT0hdGhpcy5tYXNrRXF1YWxzKGUpLHI9IXR1KHRoaXMubWFza2VkLG4pO2kmJih0aGlzLm1hc2s9ZSksciYmdGhpcy5tYXNrZWQudXBkYXRlT3B0aW9ucyhuKSwoaXx8cikmJnRoaXMudXBkYXRlQ29udHJvbCgpfX0se2tleToidXBkYXRlQ3Vyc29yIix2YWx1ZTpmdW5jdGlvbih0KXtudWxsIT10JiYodGhpcy5jdXJzb3JQb3M9dCx0aGlzLl9kZWxheVVwZGF0ZUN1cnNvcih0KSl9fSx7a2V5OiJfZGVsYXlVcGRhdGVDdXJzb3IiLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7dGhpcy5fYWJvcnRVcGRhdGVDdXJzb3IoKSx0aGlzLl9jaGFuZ2luZ0N1cnNvclBvcz10LHRoaXMuX2N1cnNvckNoYW5naW5nPXNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7ZS5lbCYmKGUuY3Vyc29yUG9zPWUuX2NoYW5naW5nQ3Vyc29yUG9zLGUuX2Fib3J0VXBkYXRlQ3Vyc29yKCkpfSksMTApfX0se2tleToiX2ZpcmVDaGFuZ2VFdmVudHMiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5fZmlyZUV2ZW50KCJhY2NlcHQiLHRoaXMuX2lucHV0RXZlbnQpLHRoaXMubWFza2VkLmlzQ29tcGxldGUmJnRoaXMuX2ZpcmVFdmVudCgiY29tcGxldGUiLHRoaXMuX2lucHV0RXZlbnQpfX0se2tleToiX2Fib3J0VXBkYXRlQ3Vyc29yIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuX2N1cnNvckNoYW5naW5nJiYoY2xlYXJUaW1lb3V0KHRoaXMuX2N1cnNvckNoYW5naW5nKSxkZWxldGUgdGhpcy5fY3Vyc29yQ2hhbmdpbmcpfX0se2tleToiYWxpZ25DdXJzb3IiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5jdXJzb3JQb3M9dGhpcy5tYXNrZWQubmVhcmVzdElucHV0UG9zKHRoaXMubWFza2VkLm5lYXJlc3RJbnB1dFBvcyh0aGlzLmN1cnNvclBvcyxLcikpfX0se2tleToiYWxpZ25DdXJzb3JGcmllbmRseSIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLnNlbGVjdGlvblN0YXJ0PT09dGhpcy5jdXJzb3JQb3MmJnRoaXMuYWxpZ25DdXJzb3IoKX19LHtrZXk6Im9uIix2YWx1ZTpmdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLl9saXN0ZW5lcnNbdF18fCh0aGlzLl9saXN0ZW5lcnNbdF09W10pLHRoaXMuX2xpc3RlbmVyc1t0XS5wdXNoKGUpLHRoaXN9fSx7a2V5OiJvZmYiLHZhbHVlOmZ1bmN0aW9uKHQsZSl7aWYoIXRoaXMuX2xpc3RlbmVyc1t0XSlyZXR1cm4gdGhpcztpZighZSlyZXR1cm4gZGVsZXRlIHRoaXMuX2xpc3RlbmVyc1t0XSx0aGlzO3ZhciBuPXRoaXMuX2xpc3RlbmVyc1t0XS5pbmRleE9mKGUpO3JldHVybiBuPj0wJiZ0aGlzLl9saXN0ZW5lcnNbdF0uc3BsaWNlKG4sMSksdGhpc319LHtrZXk6Il9vbklucHV0Iix2YWx1ZTpmdW5jdGlvbih0KXtpZih0aGlzLl9pbnB1dEV2ZW50PXQsdGhpcy5fYWJvcnRVcGRhdGVDdXJzb3IoKSwhdGhpcy5fc2VsZWN0aW9uKXJldHVybiB0aGlzLnVwZGF0ZVZhbHVlKCk7dmFyIGU9bmV3IGV1KHRoaXMuZWwudmFsdWUsdGhpcy5jdXJzb3JQb3MsdGhpcy52YWx1ZSx0aGlzLl9zZWxlY3Rpb24pLG49dGhpcy5tYXNrZWQucmF3SW5wdXRWYWx1ZSxpPXRoaXMubWFza2VkLnNwbGljZShlLnN0YXJ0Q2hhbmdlUG9zLGUucmVtb3ZlZC5sZW5ndGgsZS5pbnNlcnRlZCxlLnJlbW92ZURpcmVjdGlvbikub2Zmc2V0LHI9bj09PXRoaXMubWFza2VkLnJhd0lucHV0VmFsdWU\/ZS5yZW1vdmVEaXJlY3Rpb246R3IsdT10aGlzLm1hc2tlZC5uZWFyZXN0SW5wdXRQb3MoZS5zdGFydENoYW5nZVBvcytpLHIpO3IhPT1HciYmKHU9dGhpcy5tYXNrZWQubmVhcmVzdElucHV0UG9zKHUsR3IpKSx0aGlzLnVwZGF0ZUNvbnRyb2woKSx0aGlzLnVwZGF0ZUN1cnNvcih1KSxkZWxldGUgdGhpcy5faW5wdXRFdmVudH19LHtrZXk6Il9vbkNoYW5nZSIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLnZhbHVlIT09dGhpcy5lbC52YWx1ZSYmdGhpcy51cGRhdGVWYWx1ZSgpLHRoaXMubWFza2VkLmRvQ29tbWl0KCksdGhpcy51cGRhdGVDb250cm9sKCksdGhpcy5fc2F2ZVNlbGVjdGlvbigpfX0se2tleToiX29uRHJvcCIsdmFsdWU6ZnVuY3Rpb24odCl7dC5wcmV2ZW50RGVmYXVsdCgpLHQuc3RvcFByb3BhZ2F0aW9uKCl9fSx7a2V5OiJfb25Gb2N1cyIsdmFsdWU6ZnVuY3Rpb24odCl7dGhpcy5hbGlnbkN1cnNvckZyaWVuZGx5KCl9fSx7a2V5OiJfb25DbGljayIsdmFsdWU6ZnVuY3Rpb24odCl7dGhpcy5hbGlnbkN1cnNvckZyaWVuZGx5KCl9fSx7a2V5OiJkZXN0cm95Iix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuX3VuYmluZEV2ZW50cygpLHRoaXMuX2xpc3RlbmVycy5sZW5ndGg9MCxkZWxldGUgdGhpcy5lbH19XSksdH0oKTtpdS5JbnB1dE1hc2s9Q3U7dmFyIEV1PWZ1bmN0aW9uKHQpe1ByKG4sdCk7dmFyIGU9VnIobik7ZnVuY3Rpb24gbigpe3JldHVybiB4cih0aGlzLG4pLGUuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiBPcihuLFt7a2V5OiJfdXBkYXRlIix2YWx1ZTpmdW5jdGlvbih0KXt0LmVudW0mJih0Lm1hc2s9IioiLnJlcGVhdCh0LmVudW1bMF0ubGVuZ3RoKSksTnIoVHIobi5wcm90b3R5cGUpLCJfdXBkYXRlIix0aGlzKS5jYWxsKHRoaXMsdCl9fSx7a2V5OiJkb1ZhbGlkYXRlIix2YWx1ZTpmdW5jdGlvbigpe2Zvcih2YXIgdCxlPXRoaXMsaT1hcmd1bWVudHMubGVuZ3RoLHI9bmV3IEFycmF5KGkpLHU9MDt1PGk7dSsrKXJbdV09YXJndW1lbnRzW3VdO3JldHVybiB0aGlzLmVudW0uc29tZSgoZnVuY3Rpb24odCl7cmV0dXJuIHQuaW5kZXhPZihlLnVubWFza2VkVmFsdWUpPj0wfSkpJiYodD1OcihUcihuLnByb3RvdHlwZSksImRvVmFsaWRhdGUiLHRoaXMpKS5jYWxsLmFwcGx5KHQsW3RoaXNdLmNvbmNhdChyKSl9fV0pLG59KGd1KTtpdS5NYXNrZWRFbnVtPUV1O3ZhciBGdT1mdW5jdGlvbih0KXtQcihuLHQpO3ZhciBlPVZyKG4pO2Z1bmN0aW9uIG4odCl7cmV0dXJuIHhyKHRoaXMsbiksZS5jYWxsKHRoaXMsT2JqZWN0LmFzc2lnbih7fSxuLkRFRkFVTFRTLHQpKX1yZXR1cm4gT3Iobixbe2tleToiX3VwZGF0ZSIsdmFsdWU6ZnVuY3Rpb24odCl7TnIoVHIobi5wcm90b3R5cGUpLCJfdXBkYXRlIix0aGlzKS5jYWxsKHRoaXMsdCksdGhpcy5fdXBkYXRlUmVnRXhwcygpfX0se2tleToiX3VwZGF0ZVJlZ0V4cHMiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9Il4iKyh0aGlzLmFsbG93TmVnYXRpdmU\/IlsrfFxcLV0\/IjoiIiksZT0odGhpcy5zY2FsZT8iKCIrSnIodGhpcy5yYWRpeCkrIlxcZHswLCIrdGhpcy5zY2FsZSsifSk\/IjoiIikrIiQiO3RoaXMuX251bWJlclJlZ0V4cElucHV0PW5ldyBSZWdFeHAodCsiKDB8KFsxLTldK1xcZCopKT8iK2UpLHRoaXMuX251bWJlclJlZ0V4cD1uZXcgUmVnRXhwKHQrIlxcZCoiK2UpLHRoaXMuX21hcFRvUmFkaXhSZWdFeHA9bmV3IFJlZ0V4cCgiWyIrdGhpcy5tYXBUb1JhZGl4Lm1hcChKcikuam9pbigiIikrIl0iLCJnIiksdGhpcy5fdGhvdXNhbmRzU2VwYXJhdG9yUmVnRXhwPW5ldyBSZWdFeHAoSnIodGhpcy50aG91c2FuZHNTZXBhcmF0b3IpLCJnIil9fSx7a2V5OiJfcmVtb3ZlVGhvdXNhbmRzU2VwYXJhdG9ycyIsdmFsdWU6ZnVuY3Rpb24odCl7cmV0dXJuIHQucmVwbGFjZSh0aGlzLl90aG91c2FuZHNTZXBhcmF0b3JSZWdFeHAsIiIpfX0se2tleToiX2luc2VydFRob3VzYW5kc1NlcGFyYXRvcnMiLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlPXQuc3BsaXQodGhpcy5yYWRpeCk7cmV0dXJuIGVbMF09ZVswXS5yZXBsYWNlKC9cQig\/PShcZHszfSkrKD8hXGQpKS9nLHRoaXMudGhvdXNhbmRzU2VwYXJhdG9yKSxlLmpvaW4odGhpcy5yYWRpeCl9fSx7a2V5OiJkb1ByZXBhcmUiLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlO3Q9dC5yZXBsYWNlKHRoaXMuX21hcFRvUmFkaXhSZWdFeHAsdGhpcy5yYWRpeCk7Zm9yKHZhciBpPXRoaXMuX3JlbW92ZVRob3VzYW5kc1NlcGFyYXRvcnModCkscj1hcmd1bWVudHMubGVuZ3RoLHU9bmV3IEFycmF5KHI+MT9yLTE6MCkscz0xO3M8cjtzKyspdVtzLTFdPWFyZ3VtZW50c1tzXTt2YXIgYT1RcigoZT1OcihUcihuLnByb3RvdHlwZSksImRvUHJlcGFyZSIsdGhpcykpLmNhbGwuYXBwbHkoZSxbdGhpcyxpXS5jb25jYXQodSkpKSxvPXFyKGEsMiksbD1vWzBdLGg9b1sxXTtyZXR1cm4gdCYmIWkmJihoLnNraXA9ITApLFtsLGhdfX0se2tleToiX3NlcGFyYXRvcnNDb3VudCIsdmFsdWU6ZnVuY3Rpb24odCl7Zm9yKHZhciBlPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdJiZhcmd1bWVudHNbMV0sbj0wLGk9MDtpPHQ7KytpKXRoaXMuX3ZhbHVlLmluZGV4T2YodGhpcy50aG91c2FuZHNTZXBhcmF0b3IsaSk9PT1pJiYoKytuLGUmJih0Kz10aGlzLnRob3VzYW5kc1NlcGFyYXRvci5sZW5ndGgpKTtyZXR1cm4gbn19LHtrZXk6Il9zZXBhcmF0b3JzQ291bnRGcm9tU2xpY2UiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0\/YXJndW1lbnRzWzBdOnRoaXMuX3ZhbHVlO3JldHVybiB0aGlzLl9zZXBhcmF0b3JzQ291bnQodGhpcy5fcmVtb3ZlVGhvdXNhbmRzU2VwYXJhdG9ycyh0KS5sZW5ndGgsITApfX0se2tleToiZXh0cmFjdElucHV0Iix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTowLGU9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0\/YXJndW1lbnRzWzFdOnRoaXMudmFsdWUubGVuZ3RoLGk9YXJndW1lbnRzLmxlbmd0aD4yP2FyZ3VtZW50c1syXTp2b2lkIDAscj10aGlzLl9hZGp1c3RSYW5nZVdpdGhTZXBhcmF0b3JzKHQsZSksdT1xcihyLDIpO3JldHVybiB0PXVbMF0sZT11WzFdLHRoaXMuX3JlbW92ZVRob3VzYW5kc1NlcGFyYXRvcnMoTnIoVHIobi5wcm90b3R5cGUpLCJleHRyYWN0SW5wdXQiLHRoaXMpLmNhbGwodGhpcyx0LGUsaSkpfX0se2tleToiX2FwcGVuZENoYXJSYXciLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp7fTtpZighdGhpcy50aG91c2FuZHNTZXBhcmF0b3IpcmV0dXJuIE5yKFRyKG4ucHJvdG90eXBlKSwiX2FwcGVuZENoYXJSYXciLHRoaXMpLmNhbGwodGhpcyx0LGUpO3ZhciBpPWUudGFpbCYmZS5fYmVmb3JlVGFpbFN0YXRlP2UuX2JlZm9yZVRhaWxTdGF0ZS5fdmFsdWU6dGhpcy5fdmFsdWUscj10aGlzLl9zZXBhcmF0b3JzQ291bnRGcm9tU2xpY2UoaSk7dGhpcy5fdmFsdWU9dGhpcy5fcmVtb3ZlVGhvdXNhbmRzU2VwYXJhdG9ycyh0aGlzLnZhbHVlKTt2YXIgdT1OcihUcihuLnByb3RvdHlwZSksIl9hcHBlbmRDaGFyUmF3Iix0aGlzKS5jYWxsKHRoaXMsdCxlKTt0aGlzLl92YWx1ZT10aGlzLl9pbnNlcnRUaG91c2FuZHNTZXBhcmF0b3JzKHRoaXMuX3ZhbHVlKTt2YXIgcz1lLnRhaWwmJmUuX2JlZm9yZVRhaWxTdGF0ZT9lLl9iZWZvcmVUYWlsU3RhdGUuX3ZhbHVlOnRoaXMuX3ZhbHVlLGE9dGhpcy5fc2VwYXJhdG9yc0NvdW50RnJvbVNsaWNlKHMpO3JldHVybiB1LnRhaWxTaGlmdCs9KGEtcikqdGhpcy50aG91c2FuZHNTZXBhcmF0b3IubGVuZ3RoLHUuc2tpcD0hdS5yYXdJbnNlcnRlZCYmdD09PXRoaXMudGhvdXNhbmRzU2VwYXJhdG9yLHV9fSx7a2V5OiJfZmluZFNlcGFyYXRvckFyb3VuZCIsdmFsdWU6ZnVuY3Rpb24odCl7aWYodGhpcy50aG91c2FuZHNTZXBhcmF0b3Ipe3ZhciBlPXQtdGhpcy50aG91c2FuZHNTZXBhcmF0b3IubGVuZ3RoKzEsbj10aGlzLnZhbHVlLmluZGV4T2YodGhpcy50aG91c2FuZHNTZXBhcmF0b3IsZSk7aWYobjw9dClyZXR1cm4gbn1yZXR1cm4tMX19LHtrZXk6Il9hZGp1c3RSYW5nZVdpdGhTZXBhcmF0b3JzIix2YWx1ZTpmdW5jdGlvbih0LGUpe3ZhciBuPXRoaXMuX2ZpbmRTZXBhcmF0b3JBcm91bmQodCk7bj49MCYmKHQ9bik7dmFyIGk9dGhpcy5fZmluZFNlcGFyYXRvckFyb3VuZChlKTtyZXR1cm4gaT49MCYmKGU9aSt0aGlzLnRob3VzYW5kc1NlcGFyYXRvci5sZW5ndGgpLFt0LGVdfX0se2tleToicmVtb3ZlIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTowLGU9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0\/YXJndW1lbnRzWzFdOnRoaXMudmFsdWUubGVuZ3RoLG49dGhpcy5fYWRqdXN0UmFuZ2VXaXRoU2VwYXJhdG9ycyh0LGUpLGk9cXIobiwyKTt0PWlbMF0sZT1pWzFdO3ZhciByPXRoaXMudmFsdWUuc2xpY2UoMCx0KSx1PXRoaXMudmFsdWUuc2xpY2UoZSkscz10aGlzLl9zZXBhcmF0b3JzQ291bnQoci5sZW5ndGgpO3RoaXMuX3ZhbHVlPXRoaXMuX2luc2VydFRob3VzYW5kc1NlcGFyYXRvcnModGhpcy5fcmVtb3ZlVGhvdXNhbmRzU2VwYXJhdG9ycyhyK3UpKTt2YXIgYT10aGlzLl9zZXBhcmF0b3JzQ291bnRGcm9tU2xpY2Uocik7cmV0dXJuIG5ldyBZcih7dGFpbFNoaWZ0OihhLXMpKnRoaXMudGhvdXNhbmRzU2VwYXJhdG9yLmxlbmd0aH0pfX0se2tleToibmVhcmVzdElucHV0UG9zIix2YWx1ZTpmdW5jdGlvbih0LGUpe2lmKCF0aGlzLnRob3VzYW5kc1NlcGFyYXRvcilyZXR1cm4gdDtzd2l0Y2goZSl7Y2FzZSBHcjpjYXNlIEtyOmNhc2UgJHI6dmFyIG49dGhpcy5fZmluZFNlcGFyYXRvckFyb3VuZCh0LTEpO2lmKG4+PTApe3ZhciBpPW4rdGhpcy50aG91c2FuZHNTZXBhcmF0b3IubGVuZ3RoO2lmKHQ8aXx8dGhpcy52YWx1ZS5sZW5ndGg8PWl8fGU9PT0kcilyZXR1cm4gbn1icmVhaztjYXNlIFdyOmNhc2UgWHI6dmFyIHI9dGhpcy5fZmluZFNlcGFyYXRvckFyb3VuZCh0KTtpZihyPj0wKXJldHVybiByK3RoaXMudGhvdXNhbmRzU2VwYXJhdG9yLmxlbmd0aH1yZXR1cm4gdH19LHtrZXk6ImRvVmFsaWRhdGUiLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlPSh0LmlucHV0P3RoaXMuX251bWJlclJlZ0V4cElucHV0OnRoaXMuX251bWJlclJlZ0V4cCkudGVzdCh0aGlzLl9yZW1vdmVUaG91c2FuZHNTZXBhcmF0b3JzKHRoaXMudmFsdWUpKTtpZihlKXt2YXIgaT10aGlzLm51bWJlcjtlPWUmJiFpc05hTihpKSYmKG51bGw9PXRoaXMubWlufHx0aGlzLm1pbj49MHx8dGhpcy5taW48PXRoaXMubnVtYmVyKSYmKG51bGw9PXRoaXMubWF4fHx0aGlzLm1heDw9MHx8dGhpcy5udW1iZXI8PXRoaXMubWF4KX1yZXR1cm4gZSYmTnIoVHIobi5wcm90b3R5cGUpLCJkb1ZhbGlkYXRlIix0aGlzKS5jYWxsKHRoaXMsdCl9fSx7a2V5OiJkb0NvbW1pdCIsdmFsdWU6ZnVuY3Rpb24oKXtpZih0aGlzLnZhbHVlKXt2YXIgdD10aGlzLm51bWJlcixlPXQ7bnVsbCE9dGhpcy5taW4mJihlPU1hdGgubWF4KGUsdGhpcy5taW4pKSxudWxsIT10aGlzLm1heCYmKGU9TWF0aC5taW4oZSx0aGlzLm1heCkpLGUhPT10JiYodGhpcy51bm1hc2tlZFZhbHVlPVN0cmluZyhlKSk7dmFyIGk9dGhpcy52YWx1ZTt0aGlzLm5vcm1hbGl6ZVplcm9zJiYoaT10aGlzLl9ub3JtYWxpemVaZXJvcyhpKSksdGhpcy5wYWRGcmFjdGlvbmFsWmVyb3MmJnRoaXMuc2NhbGU+MCYmKGk9dGhpcy5fcGFkRnJhY3Rpb25hbFplcm9zKGkpKSx0aGlzLl92YWx1ZT1pfU5yKFRyKG4ucHJvdG90eXBlKSwiZG9Db21taXQiLHRoaXMpLmNhbGwodGhpcyl9fSx7a2V5OiJfbm9ybWFsaXplWmVyb3MiLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuX3JlbW92ZVRob3VzYW5kc1NlcGFyYXRvcnModCkuc3BsaXQodGhpcy5yYWRpeCk7cmV0dXJuIGVbMF09ZVswXS5yZXBsYWNlKC9eKFxEKikoMCopKFxkKikvLChmdW5jdGlvbih0LGUsbixpKXtyZXR1cm4gZStpfSkpLHQubGVuZ3RoJiYhL1xkJC8udGVzdChlWzBdKSYmKGVbMF09ZVswXSsiMCIpLGUubGVuZ3RoPjEmJihlWzFdPWVbMV0ucmVwbGFjZSgvMCokLywiIiksZVsxXS5sZW5ndGh8fChlLmxlbmd0aD0xKSksdGhpcy5faW5zZXJ0VGhvdXNhbmRzU2VwYXJhdG9ycyhlLmpvaW4odGhpcy5yYWRpeCkpfX0se2tleToiX3BhZEZyYWN0aW9uYWxaZXJvcyIsdmFsdWU6ZnVuY3Rpb24odCl7aWYoIXQpcmV0dXJuIHQ7dmFyIGU9dC5zcGxpdCh0aGlzLnJhZGl4KTtyZXR1cm4gZS5sZW5ndGg8MiYmZS5wdXNoKCIiKSxlWzFdPWVbMV0ucGFkRW5kKHRoaXMuc2NhbGUsIjAiKSxlLmpvaW4odGhpcy5yYWRpeCl9fSx7a2V5OiJ1bm1hc2tlZFZhbHVlIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fcmVtb3ZlVGhvdXNhbmRzU2VwYXJhdG9ycyh0aGlzLl9ub3JtYWxpemVaZXJvcyh0aGlzLnZhbHVlKSkucmVwbGFjZSh0aGlzLnJhZGl4LCIuIil9LHNldDpmdW5jdGlvbih0KXt6cihUcihuLnByb3RvdHlwZSksInVubWFza2VkVmFsdWUiLHQucmVwbGFjZSgiLiIsdGhpcy5yYWRpeCksdGhpcywhMCl9fSx7a2V5OiJ0eXBlZFZhbHVlIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gTnVtYmVyKHRoaXMudW5tYXNrZWRWYWx1ZSl9LHNldDpmdW5jdGlvbih0KXt6cihUcihuLnByb3RvdHlwZSksInVubWFza2VkVmFsdWUiLFN0cmluZyh0KSx0aGlzLCEwKX19LHtrZXk6Im51bWJlciIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudHlwZWRWYWx1ZX0sc2V0OmZ1bmN0aW9uKHQpe3RoaXMudHlwZWRWYWx1ZT10fX0se2tleToiYWxsb3dOZWdhdGl2ZSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc2lnbmVkfHxudWxsIT10aGlzLm1pbiYmdGhpcy5taW48MHx8bnVsbCE9dGhpcy5tYXgmJnRoaXMubWF4PDB9fV0pLG59KHJ1KTtGdS5ERUZBVUxUUz17cmFkaXg6IiwiLHRob3VzYW5kc1NlcGFyYXRvcjoiIixtYXBUb1JhZGl4OlsiLiJdLHNjYWxlOjIsc2lnbmVkOiExLG5vcm1hbGl6ZVplcm9zOiEwLHBhZEZyYWN0aW9uYWxaZXJvczohMX0saXUuTWFza2VkTnVtYmVyPUZ1O3ZhciBTdT1mdW5jdGlvbih0KXtQcihuLHQpO3ZhciBlPVZyKG4pO2Z1bmN0aW9uIG4oKXtyZXR1cm4geHIodGhpcyxuKSxlLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1yZXR1cm4gT3Iobixbe2tleToiX3VwZGF0ZSIsdmFsdWU6ZnVuY3Rpb24odCl7dC5tYXNrJiYodC52YWxpZGF0ZT10Lm1hc2spLE5yKFRyKG4ucHJvdG90eXBlKSwiX3VwZGF0ZSIsdGhpcykuY2FsbCh0aGlzLHQpfX1dKSxufShydSk7aXUuTWFza2VkRnVuY3Rpb249U3U7dmFyIHd1PVsiY29tcGlsZWRNYXNrcyIsImN1cnJlbnRNYXNrUmVmIiwiY3VycmVudE1hc2siXSxCdT1mdW5jdGlvbih0KXtQcihuLHQpO3ZhciBlPVZyKG4pO2Z1bmN0aW9uIG4odCl7dmFyIGk7cmV0dXJuIHhyKHRoaXMsbiksKGk9ZS5jYWxsKHRoaXMsT2JqZWN0LmFzc2lnbih7fSxuLkRFRkFVTFRTLHQpKSkuY3VycmVudE1hc2s9bnVsbCxpfXJldHVybiBPcihuLFt7a2V5OiJfdXBkYXRlIix2YWx1ZTpmdW5jdGlvbih0KXtOcihUcihuLnByb3RvdHlwZSksIl91cGRhdGUiLHRoaXMpLmNhbGwodGhpcyx0KSwibWFzayJpbiB0JiYodGhpcy5jb21waWxlZE1hc2tzPUFycmF5LmlzQXJyYXkodC5tYXNrKT90Lm1hc2subWFwKChmdW5jdGlvbih0KXtyZXR1cm4gc3UodCl9KSk6W10pfX0se2tleToiX2FwcGVuZENoYXJSYXciLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp7fSxuPXRoaXMuX2FwcGx5RGlzcGF0Y2godCxlKTtyZXR1cm4gdGhpcy5jdXJyZW50TWFzayYmbi5hZ2dyZWdhdGUodGhpcy5jdXJyZW50TWFzay5fYXBwZW5kQ2hhcih0LGUpKSxufX0se2tleToiX2FwcGx5RGlzcGF0Y2giLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0\/YXJndW1lbnRzWzBdOiIiLGU9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0\/YXJndW1lbnRzWzFdOnt9LG49ZS50YWlsJiZudWxsIT1lLl9iZWZvcmVUYWlsU3RhdGU\/ZS5fYmVmb3JlVGFpbFN0YXRlLl92YWx1ZTp0aGlzLnZhbHVlLGk9dGhpcy5yYXdJbnB1dFZhbHVlLHI9ZS50YWlsJiZudWxsIT1lLl9iZWZvcmVUYWlsU3RhdGU\/ZS5fYmVmb3JlVGFpbFN0YXRlLl9yYXdJbnB1dFZhbHVlOmksdT1pLnNsaWNlKHIubGVuZ3RoKSxzPXRoaXMuY3VycmVudE1hc2ssYT1uZXcgWXIsbz1zJiZzLnN0YXRlO2lmKHRoaXMuY3VycmVudE1hc2s9dGhpcy5kb0Rpc3BhdGNoKHQsT2JqZWN0LmFzc2lnbih7fSxlKSksdGhpcy5jdXJyZW50TWFzaylpZih0aGlzLmN1cnJlbnRNYXNrIT09cyl7aWYodGhpcy5jdXJyZW50TWFzay5yZXNldCgpLHIpe3ZhciBsPXRoaXMuY3VycmVudE1hc2suYXBwZW5kKHIse3JhdzohMH0pO2EudGFpbFNoaWZ0PWwuaW5zZXJ0ZWQubGVuZ3RoLW4ubGVuZ3RofXUmJihhLnRhaWxTaGlmdCs9dGhpcy5jdXJyZW50TWFzay5hcHBlbmQodSx7cmF3OiEwLHRhaWw6ITB9KS50YWlsU2hpZnQpfWVsc2UgdGhpcy5jdXJyZW50TWFzay5zdGF0ZT1vO3JldHVybiBhfX0se2tleToiX2FwcGVuZFBsYWNlaG9sZGVyIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PXRoaXMuX2FwcGx5RGlzcGF0Y2guYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiB0aGlzLmN1cnJlbnRNYXNrJiZ0LmFnZ3JlZ2F0ZSh0aGlzLmN1cnJlbnRNYXNrLl9hcHBlbmRQbGFjZWhvbGRlcigpKSx0fX0se2tleToiX2FwcGVuZEVhZ2VyIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PXRoaXMuX2FwcGx5RGlzcGF0Y2guYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiB0aGlzLmN1cnJlbnRNYXNrJiZ0LmFnZ3JlZ2F0ZSh0aGlzLmN1cnJlbnRNYXNrLl9hcHBlbmRFYWdlcigpKSx0fX0se2tleToiZG9EaXNwYXRjaCIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGU9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0\/YXJndW1lbnRzWzFdOnt9O3JldHVybiB0aGlzLmRpc3BhdGNoKHQsdGhpcyxlKX19LHtrZXk6ImRvVmFsaWRhdGUiLHZhbHVlOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGUsaT1hcmd1bWVudHMubGVuZ3RoLHI9bmV3IEFycmF5KGkpLHU9MDt1PGk7dSsrKXJbdV09YXJndW1lbnRzW3VdO3JldHVybih0PU5yKFRyKG4ucHJvdG90eXBlKSwiZG9WYWxpZGF0ZSIsdGhpcykpLmNhbGwuYXBwbHkodCxbdGhpc10uY29uY2F0KHIpKSYmKCF0aGlzLmN1cnJlbnRNYXNrfHwoZT10aGlzLmN1cnJlbnRNYXNrKS5kb1ZhbGlkYXRlLmFwcGx5KGUscikpfX0se2tleToicmVzZXQiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ7bnVsbD09PSh0PXRoaXMuY3VycmVudE1hc2spfHx2b2lkIDA9PT10fHx0LnJlc2V0KCksdGhpcy5jb21waWxlZE1hc2tzLmZvckVhY2goKGZ1bmN0aW9uKHQpe3JldHVybiB0LnJlc2V0KCl9KSl9fSx7a2V5OiJ2YWx1ZSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY3VycmVudE1hc2s\/dGhpcy5jdXJyZW50TWFzay52YWx1ZToiIn0sc2V0OmZ1bmN0aW9uKHQpe3pyKFRyKG4ucHJvdG90eXBlKSwidmFsdWUiLHQsdGhpcywhMCl9fSx7a2V5OiJ1bm1hc2tlZFZhbHVlIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jdXJyZW50TWFzaz90aGlzLmN1cnJlbnRNYXNrLnVubWFza2VkVmFsdWU6IiJ9LHNldDpmdW5jdGlvbih0KXt6cihUcihuLnByb3RvdHlwZSksInVubWFza2VkVmFsdWUiLHQsdGhpcywhMCl9fSx7a2V5OiJ0eXBlZFZhbHVlIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jdXJyZW50TWFzaz90aGlzLmN1cnJlbnRNYXNrLnR5cGVkVmFsdWU6IiJ9LHNldDpmdW5jdGlvbih0KXt2YXIgZT1TdHJpbmcodCk7dGhpcy5jdXJyZW50TWFzayYmKHRoaXMuY3VycmVudE1hc2sudHlwZWRWYWx1ZT10LGU9dGhpcy5jdXJyZW50TWFzay51bm1hc2tlZFZhbHVlKSx0aGlzLnVubWFza2VkVmFsdWU9ZX19LHtrZXk6ImlzQ29tcGxldGUiLGdldDpmdW5jdGlvbigpe3ZhciB0O3JldHVybiBCb29sZWFuKG51bGw9PT0odD10aGlzLmN1cnJlbnRNYXNrKXx8dm9pZCAwPT09dD92b2lkIDA6dC5pc0NvbXBsZXRlKX19LHtrZXk6ImlzRmlsbGVkIixnZXQ6ZnVuY3Rpb24oKXt2YXIgdDtyZXR1cm4gQm9vbGVhbihudWxsPT09KHQ9dGhpcy5jdXJyZW50TWFzayl8fHZvaWQgMD09PXQ\/dm9pZCAwOnQuaXNGaWxsZWQpfX0se2tleToicmVtb3ZlIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0LGU9bmV3IFlyO3RoaXMuY3VycmVudE1hc2smJmUuYWdncmVnYXRlKCh0PXRoaXMuY3VycmVudE1hc2spLnJlbW92ZS5hcHBseSh0LGFyZ3VtZW50cykpLmFnZ3JlZ2F0ZSh0aGlzLl9hcHBseURpc3BhdGNoKCkpO3JldHVybiBlfX0se2tleToic3RhdGUiLGdldDpmdW5jdGlvbigpe3JldHVybiBPYmplY3QuYXNzaWduKHt9LE5yKFRyKG4ucHJvdG90eXBlKSwic3RhdGUiLHRoaXMpLHtfcmF3SW5wdXRWYWx1ZTp0aGlzLnJhd0lucHV0VmFsdWUsY29tcGlsZWRNYXNrczp0aGlzLmNvbXBpbGVkTWFza3MubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gdC5zdGF0ZX0pKSxjdXJyZW50TWFza1JlZjp0aGlzLmN1cnJlbnRNYXNrLGN1cnJlbnRNYXNrOnRoaXMuY3VycmVudE1hc2smJnRoaXMuY3VycmVudE1hc2suc3RhdGV9KX0sc2V0OmZ1bmN0aW9uKHQpe3ZhciBlPXQuY29tcGlsZWRNYXNrcyxpPXQuY3VycmVudE1hc2tSZWYscj10LmN1cnJlbnRNYXNrLHU9anIodCx3dSk7dGhpcy5jb21waWxlZE1hc2tzLmZvckVhY2goKGZ1bmN0aW9uKHQsbil7cmV0dXJuIHQuc3RhdGU9ZVtuXX0pKSxudWxsIT1pJiYodGhpcy5jdXJyZW50TWFzaz1pLHRoaXMuY3VycmVudE1hc2suc3RhdGU9ciksenIoVHIobi5wcm90b3R5cGUpLCJzdGF0ZSIsdSx0aGlzLCEwKX19LHtrZXk6ImV4dHJhY3RJbnB1dCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdDtyZXR1cm4gdGhpcy5jdXJyZW50TWFzaz8odD10aGlzLmN1cnJlbnRNYXNrKS5leHRyYWN0SW5wdXQuYXBwbHkodCxhcmd1bWVudHMpOiIifX0se2tleToiZXh0cmFjdFRhaWwiLHZhbHVlOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGUsaT1hcmd1bWVudHMubGVuZ3RoLHI9bmV3IEFycmF5KGkpLHU9MDt1PGk7dSsrKXJbdV09YXJndW1lbnRzW3VdO3JldHVybiB0aGlzLmN1cnJlbnRNYXNrPyh0PXRoaXMuY3VycmVudE1hc2spLmV4dHJhY3RUYWlsLmFwcGx5KHQscik6KGU9TnIoVHIobi5wcm90b3R5cGUpLCJleHRyYWN0VGFpbCIsdGhpcykpLmNhbGwuYXBwbHkoZSxbdGhpc10uY29uY2F0KHIpKX19LHtrZXk6ImRvQ29tbWl0Iix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuY3VycmVudE1hc2smJnRoaXMuY3VycmVudE1hc2suZG9Db21taXQoKSxOcihUcihuLnByb3RvdHlwZSksImRvQ29tbWl0Iix0aGlzKS5jYWxsKHRoaXMpfX0se2tleToibmVhcmVzdElucHV0UG9zIix2YWx1ZTpmdW5jdGlvbigpe2Zvcih2YXIgdCxlLGk9YXJndW1lbnRzLmxlbmd0aCxyPW5ldyBBcnJheShpKSx1PTA7dTxpO3UrKylyW3VdPWFyZ3VtZW50c1t1XTtyZXR1cm4gdGhpcy5jdXJyZW50TWFzaz8odD10aGlzLmN1cnJlbnRNYXNrKS5uZWFyZXN0SW5wdXRQb3MuYXBwbHkodCxyKTooZT1OcihUcihuLnByb3RvdHlwZSksIm5lYXJlc3RJbnB1dFBvcyIsdGhpcykpLmNhbGwuYXBwbHkoZSxbdGhpc10uY29uY2F0KHIpKX19LHtrZXk6Im92ZXJ3cml0ZSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY3VycmVudE1hc2s\/dGhpcy5jdXJyZW50TWFzay5vdmVyd3JpdGU6TnIoVHIobi5wcm90b3R5cGUpLCJvdmVyd3JpdGUiLHRoaXMpfSxzZXQ6ZnVuY3Rpb24odCl7Y29uc29sZS53YXJuKCcib3ZlcndyaXRlIiBvcHRpb24gaXMgbm90IGF2YWlsYWJsZSBpbiBkeW5hbWljIG1hc2ssIHVzZSB0aGlzIG9wdGlvbiBpbiBzaWJsaW5ncycpfX0se2tleToiZWFnZXIiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmN1cnJlbnRNYXNrP3RoaXMuY3VycmVudE1hc2suZWFnZXI6TnIoVHIobi5wcm90b3R5cGUpLCJlYWdlciIsdGhpcyl9LHNldDpmdW5jdGlvbih0KXtjb25zb2xlLndhcm4oJyJlYWdlciIgb3B0aW9uIGlzIG5vdCBhdmFpbGFibGUgaW4gZHluYW1pYyBtYXNrLCB1c2UgdGhpcyBvcHRpb24gaW4gc2libGluZ3MnKX19LHtrZXk6Im1hc2tFcXVhbHMiLHZhbHVlOmZ1bmN0aW9uKHQpe3JldHVybiBBcnJheS5pc0FycmF5KHQpJiZ0aGlzLmNvbXBpbGVkTWFza3MuZXZlcnkoKGZ1bmN0aW9uKGUsbil7dmFyIGk7cmV0dXJuIGUubWFza0VxdWFscyhudWxsPT09KGk9dFtuXSl8fHZvaWQgMD09PWk\/dm9pZCAwOmkubWFzayl9KSl9fV0pLG59KHJ1KTtCdS5ERUZBVUxUUz17ZGlzcGF0Y2g6ZnVuY3Rpb24odCxlLG4pe2lmKGUuY29tcGlsZWRNYXNrcy5sZW5ndGgpe3ZhciBpPWUucmF3SW5wdXRWYWx1ZSxyPWUuY29tcGlsZWRNYXNrcy5tYXAoKGZ1bmN0aW9uKGUscil7cmV0dXJuIGUucmVzZXQoKSxlLmFwcGVuZChpLHtyYXc6ITB9KSxlLmFwcGVuZCh0LG4pLHt3ZWlnaHQ6ZS5yYXdJbnB1dFZhbHVlLmxlbmd0aCxpbmRleDpyfX0pKTtyZXR1cm4gci5zb3J0KChmdW5jdGlvbih0LGUpe3JldHVybiBlLndlaWdodC10LndlaWdodH0pKSxlLmNvbXBpbGVkTWFza3NbclswXS5pbmRleF19fX0saXUuTWFza2VkRHluYW1pYz1CdTt2YXIgRHU9e01BU0tFRDoidmFsdWUiLFVOTUFTS0VEOiJ1bm1hc2tlZFZhbHVlIixUWVBFRDoidHlwZWRWYWx1ZSJ9O2Z1bmN0aW9uIHh1KHQpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTpEdS5NQVNLRUQsbj1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXT9hcmd1bWVudHNbMl06RHUuTUFTS0VELGk9c3UodCk7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBpLnJ1bklzb2xhdGVkKChmdW5jdGlvbihpKXtyZXR1cm4gaVtlXT10LGlbbl19KSl9fWZ1bmN0aW9uIE11KHQpe2Zvcih2YXIgZT1hcmd1bWVudHMubGVuZ3RoLG49bmV3IEFycmF5KGU+MT9lLTE6MCksaT0xO2k8ZTtpKyspbltpLTFdPWFyZ3VtZW50c1tpXTtyZXR1cm4geHUuYXBwbHkodm9pZCAwLG4pKHQpfWl1LlBJUEVfVFlQRT1EdSxpdS5jcmVhdGVQaXBlPXh1LGl1LnBpcGU9TXU7dHJ5e2dsb2JhbFRoaXMuSU1hc2s9aXV9Y2F0Y2godCl7fXQuSFRNTENvbnRlbnRlZGl0YWJsZU1hc2tFbGVtZW50PV91LHQuSFRNTE1hc2tFbGVtZW50PWJ1LHQuSW5wdXRNYXNrPUN1LHQuTWFza0VsZW1lbnQ9bXUsdC5NYXNrZWQ9cnUsdC5NYXNrZWREYXRlPXl1LHQuTWFza2VkRHluYW1pYz1CdSx0Lk1hc2tlZEVudW09RXUsdC5NYXNrZWRGdW5jdGlvbj1TdSx0Lk1hc2tlZE51bWJlcj1GdSx0Lk1hc2tlZFBhdHRlcm49Z3UsdC5NYXNrZWRSYW5nZT1rdSx0Lk1hc2tlZFJlZ0V4cD1kdSx0LlBJUEVfVFlQRT1EdSx0LmNyZWF0ZU1hc2s9c3UsdC5jcmVhdGVQaXBlPXh1LHQuZGVmYXVsdD1pdSx0LnBpcGU9TXUsT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pfSkpOw0KLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW1hc2subWluLmpzLm1hcDsKLyoqIC9tL2pzL3ZhbmlsbGFqcy9mb3JtLmpzICoqLwp2YXIgX19fZDJjX2Zvcm1qc19jX29uPSIyMDI1LTA1LTIzIDE3OjA1OjIwIjsndXNlIHN0cmljdCc7dmFyIF9fX2QyY19mb3JtanNfY19vbj0iMjAyNC0wMS0zMSAxNDozMzowOSI7InVzZSBzdHJpY3QiO19fX2QyY19mb3JtanNfY19vbj0iMjAyMy0wNC0yNyAxMDozMDo0OSI7InVzZSBzdHJpY3QiOwpjb25zdCBGb3JtPWZ1bmN0aW9uKCl7dGhpcy5NQVNLUz17cGhvbmU6IjAwMCAwMDAtMDAwMCIsc2luOiIwMDAgMDAwIDAwMCIscG9zdGFsQ29kZToiYTBhIDBhMCJ9O3RoaXMubWFzaz0oYSxiKT0+e2E9ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChhKTthLmxlbmd0aCYmYS5mb3JFYWNoKGM9PntJTWFzayhjLGIpfSl9O3RoaXMubWFza051bWJlcj0oYSxiKT0+e2xldCBjPXttYXNrOk51bWJlcixtaW46MH07YiYmKGMubWF4PWIpO3RoaXMubWFzayhhLGMpfTt0aGlzLm1hc2tQaG9uZT1hPT57dGhpcy5tYXNrKGEse21hc2s6W3ttYXNrOnRoaXMuTUFTS1MucGhvbmV9LHttYXNrOmAxICR7dGhpcy5NQVNLUy5waG9uZX1gfV19KX07dGhpcy5tYXNrUG9zdGFsQ29kZT1hPT57dGhpcy5tYXNrKGEse21hc2s6dGhpcy5NQVNLUy5wb3N0YWxDb2RlLHByZXBhcmU6Yj0+Yi50b1VwcGVyQ2FzZSgpfSl9fTsKLyoqIC9tL2pzL2dlbmVyaWNNYWlsLmpzICoqLwp2YXIgX19fZDJjX2dlbmVyaWNNYWlsanNfY19vbj0iMjAyNS0wNS0yMyAxNzoxMDoxNSI7J3VzZSBzdHJpY3QnO3ZhciBfX19kMmNfZ2VuZXJpY01haWxqc19jX29uPSIyMDI0LTExLTI4IDEwOjMwOjExIjsidXNlIHN0cmljdCI7CkdlbmVyaWNNYWlsPWZ1bmN0aW9uKHYpe2Z1bmN0aW9uIG0oYyl7Yz1jLnRvU3RyaW5nKCk7cmV0dXJuIGMucmVwbGFjZSgvPFwvP1tePl0rPi9naSwiIil9dmFyIGI9dGhpcztiLm1haWxJRD12O2IuZW1haWxTZW50PWZ1bmN0aW9uKGMpe21haWxTZW50SGFuZGxlcj1nZXRNYWlsU2VudEhhbmRsZXIoYi5tYWlsSUQpO2M\/KCJ1bmRlZmluZWQiIT10eXBlb2YgbWFpbFNlbnRIYW5kbGVyJiYobWFpbFNlbnRIYW5kbGVyLnRpbWVvdXRDYWxsYmFjaz1iLm1zZ1NlbnRGaW5pc2hlZEhhbmRsZXIsbWFpbFNlbnRIYW5kbGVyLnNob3dTdWNjZXNzKCkpLGIuY2xlYXJGb3JtKCkpOiJ1bmRlZmluZWQiIT10eXBlb2YgbWFpbFNlbnRIYW5kbGVyJiYobWFpbFNlbnRIYW5kbGVyLnRpbWVvdXRDYWxsYmFjaz1iLm1zZ1NlbnRGaW5pc2hlZEhhbmRsZXIsbWFpbFNlbnRIYW5kbGVyLnNob3dGYWlsKCkpfTtiLmNsZWFyRm9ybT1mdW5jdGlvbigpe3ZhciBjPWIuanFTY29wZTtpZigidW5kZWZpbmVkIj09PQp0eXBlb2YgY3x8IiI9PWMpaWYoJCgiLklubmVyQm94TGF5ZXIiKS5sZW5ndGgpYz0iLklubmVyQm94TGF5ZXIiO2Vsc2UgcmV0dXJuOyQoIi5qcVRyYW5zZm9ybUlucHV0V3JhcHBlciBpbnB1dCwgLmpxVHJhbnNmb3JtVGV4dGFyZWEgdGV4dGFyZWEiLGMpLmVhY2goZnVuY3Rpb24oKXskKHRoaXMpLnZhbCgiIik7JCh0aGlzKS5hdHRyKCJwbGFjZWhvbGRlciIsJCh0aGlzKS5hdHRyKCJhbHQiKSl9KTskKCIjZm9vdGVyRGl2ICNsZWFkU2VudCIpLnJlbW92ZSgpfTtiLm1zZ1NlbnRGaW5pc2hlZEhhbmRsZXI9ZnVuY3Rpb24oKXt9O2IuYmFuZHBMaW5rPWZ1bmN0aW9uKGMpe3JldHVybiBlbWFpbEhhbmRsZXIuYmFuZHBMaW5rKGMpfTtiLnNhdmU9ZnVuY3Rpb24oYyl7InVuZGVmaW5lZCIhPT10eXBlb2YgZGVidWcmJmRlYnVnKGMpO2lmKCFiLl92YWxpZGF0ZUZpZWxkcygpKXJldHVybiAkKCJodG1sLCBib2R5IikuYW5pbWF0ZSh7c2Nyb2xsVG9wOiQoIi52YWxpZGl0eS1lcnJvbmVvdXM6Zmlyc3QiKS5vZmZzZXQoKS50b3AtCjEwMH0sMkUzKSwhMTtiLnByZXBhcmUoKTtlbWFpbEhhbmRsZXIuc2VuZE1haWwoKX07Yi5wcmVwYXJlPWZ1bmN0aW9uKCl7dmFyIGM9ZnVuY3Rpb24oaCl7eD0oaCsiIikuc3BsaXQoIi4iKTt4MT14WzBdO3gyPTE8eC5sZW5ndGg\/Ii4iK3hbMV06IiI7Zm9yKGg9LyhcZCspKFxkezN9KS87aC50ZXN0KHgxKTspeDE9eDEucmVwbGFjZShoLCIkMSwkMiIpO3JldHVybiB4MSt4Mn0sZz1iLmpxU2NvcGU\/Yi5qcVNjb3BlOiIuSW5uZXJCb3hMYXllciIsaz0iIixhPSIiLGU9IiIsZD0iIixmPSIiO2s9MDwkKCIjZW1haWxTdWJqZWN0RGVmXyIrYi5tYWlsSUQsZykubGVuZ3RoPyQoIiNlbWFpbFN1YmplY3REZWZfIitiLm1haWxJRCxnKS50ZXh0KCk6MDwkKCIjZW1haWxTdWJqZWN0RGVmIixnKS5sZW5ndGg\/JCgiI2VtYWlsU3ViamVjdERlZiIsZykudGV4dCgpOiQoIiNlbWFpbFN1YmplY3REZWYiKS50ZXh0KCk7YT0wPCQoIiNlbWFpbEJvZHlEZWZfIitiLm1haWxJRCxnKS5sZW5ndGg\/JCgiI2VtYWlsQm9keURlZl8iKwpiLm1haWxJRCxnKS5odG1sKCk6JCgiI2VtYWlsQm9keURlZiIsZykubGVuZ3RoPyQoIiNlbWFpbEJvZHlEZWYiLGcpLmh0bWwoKTokKCIjZW1haWxCb2R5RGVmIikuaHRtbCgpO3ZhciBsPSJ1bmRlZmluZWQiIT10eXBlb2YgJCgiI3RleHRJc0RlbW8iKS5hdHRyKCJpZCIpJiYiMSI9PSQoIiN0ZXh0SXNEZW1vIikudmFsKCk\/ITA6ITE7InVuZGVmaW5lZCIhPXR5cGVvZiBtYWlsUXVpY2tFbWFpbCYmbnVsbCE9bWFpbFF1aWNrRW1haWwmJiJzdHJpbmciPT09dHlwZW9mIG1haWxRdWlja0VtYWlsLm1lc3NhZ2UmJihlbWFpbEhhbmRsZXIuY29tbWVudHM9bWFpbFF1aWNrRW1haWwubWVzc2FnZSk7c3dpdGNoKGIubWFpbElEKXtjYXNlICJRdWlja0VtYWlsIjpjYXNlICJRdWlja0VtYWlsTmV3SW52ZW50b3J5IjpjYXNlICJtZW51Q29udGFjdFVzIjplbWFpbEhhbmRsZXIucG9wdXBkaXY9InF1aWNrRW1haWxGb3JtIjttYWlsUXVpY2tFbWFpbC5hc3NpZ25WYWx1ZXMoKTthPWEucmVwbGFjZSgve1wkTkFNRX0vZywKZDJjbWVkaWEuY2FwaXRhbGlzZUZpcnN0TGV0dGVyT2ZFdmVyeVdvcmQobWFpbFF1aWNrRW1haWwubmFtZSkpLnJlcGxhY2UoL3tcJEVNQUlMfS9nLG1haWxRdWlja0VtYWlsLmVtYWlsKTthPWEucmVwbGFjZSgve1wkRU1BSUxQSE9ORX0vZyxtYWlsUXVpY2tFbWFpbC5waG9uZSkucmVwbGFjZSgve1wkTUVTU0FHRX0vZyxtYWlsUXVpY2tFbWFpbC5tZXNzYWdlKTthPWEucmVwbGFjZSgve1wkRU1BSUxNQUtFfS9nLG1haWxRdWlja0VtYWlsLm1ha2UpLnJlcGxhY2UoL3tcJEVNQUlMTU9ERUx9L2csbWFpbFF1aWNrRW1haWwubW9kZWwpO2E9YS5yZXBsYWNlKC97XCRFTUFJTFlFQVJ9L2csbWFpbFF1aWNrRW1haWwueWVhcikucmVwbGFjZSgve1wkU1RPQ0tOVU1CRVJ9L2csbWFpbFF1aWNrRW1haWwuc3RvY2tOdW1iZXIpO2E9YS5yZXBsYWNlKC97XCRERVBBUlRNRU5UMn0vZyxtYWlsUXVpY2tFbWFpbC5kZXBhcnRtZW50KTthPWEucmVwbGFjZSgvQ2l0eTovZywiIik7InVuZGVmaW5lZCIhPQp0eXBlb2YgbWFpbFF1aWNrRW1haWwucm9hZFRlc3QmJm51bGwhPW1haWxRdWlja0VtYWlsLnJvYWRUZXN0JiYoYT1hLnJlcGxhY2UoL3tcJEVNQUlMUk9BRFRFU1R9L2csbWFpbFF1aWNrRW1haWwucm9hZFRlc3QpLnJlcGxhY2UoL3tcJEVNQUlMQ0FSRH0vZyxtYWlsUXVpY2tFbWFpbC5naWZ0Q2FyZCkpO2VtYWlsSGFuZGxlci51c2VyRW1haWw9bWFpbFF1aWNrRW1haWwuZW1haWw7ZW1haWxIYW5kbGVyLnVzZXJGaXJzdE5hbWU9bWFpbFF1aWNrRW1haWwubmFtZTtlbWFpbEhhbmRsZXIudXNlclBob25lPW1haWxRdWlja0VtYWlsLnBob25lO2U9bWFpbFF1aWNrRW1haWwubWVzc2FnZTtlbWFpbEhhbmRsZXIudHJpbT0kKCIjZXhwcmVzc2NhcnRyaW0iKS52YWwoKTtlbWFpbEhhbmRsZXIudmluPSQoIiNleHByZXNzY2FydmluIikudmFsKCk7ZW1haWxIYW5kbGVyLnByaWNlPSQoIiNleHByZXNzY2FycHJpY2UiKS52YWwoKTtlbWFpbEhhbmRsZXIubWFrZT0kKCIjZXhwcmVzc2Nhcm1ha2UiKS52YWwoKTsKZW1haWxIYW5kbGVyLm1vZGVsPSQoIiNleHByZXNzY2FybW9kZWwiKS52YWwoKTtlbWFpbEhhbmRsZXIueWVhcj0kKCIjZXhwcmVzc2NhcnllYXIiKS52YWwoKTtlbWFpbEhhbmRsZXIuc3RvY2tOdW1iZXI9bWFpbFF1aWNrRW1haWwuc3RvY2tOdW1iZXI7InVuZGVmaW5lZCI9PXR5cGVvZiAkKCIjZXhwcmVzc2NhcmlkIikuYXR0cigiaWQiKT9lbWFpbEhhbmRsZXIuY2FyaWQ9IiI6ZW1haWxIYW5kbGVyLmNhcmlkPSQoIiNleHByZXNzY2FyaWQiKS52YWwoKTskKCJpbnB1dC5sYWJlbGVtYWlsIikudmFsKCJEZW1hbmRlcy1FeHByZXNzIik7JCgiaW5wdXQuaXNleHByZXNzIikudmFsKCIxIik7InVuZGVmaW5lZCIhPXR5cGVvZiBzZWFyY2hFbmdpbmUmJigkKCJpbnB1dC5icmFuZGVtYWlsIikudmFsKG1haWxRdWlja0VtYWlsLm1ha2UpLCQoImlucHV0Lm1vZGVsZW1haWwiKS52YWwobWFpbFF1aWNrRW1haWwubW9kZWwpLCQoImlucHV0LnllYXJlbWFpbCIpLnZhbChtYWlsUXVpY2tFbWFpbC55ZWFyKSk7CiJ1bmRlZmluZWQiIT10eXBlb2YgJCgiI2V4cHJlc3NjYXJpZCIpLmF0dHIoImlkIik\/MDwkKCIjZXhwcmVzc2NhcmlkIikudmFsKCkubGVuZ3RoP2VtYWlsSGFuZGxlci5jb25kaXRpb249IlVzZWQiOmVtYWlsSGFuZGxlci5jb25kaXRpb249MDxtYWlsUXVpY2tFbWFpbC5tYWtlLmxlbmd0aD8iTmV3IjoiVW5rbm93biI6ZW1haWxIYW5kbGVyLmNvbmRpdGlvbj0iVW5rbm93biI7IiIhPT1tYWlsUXVpY2tFbWFpbC5kZXBhcnRtZW50JiYoZW1haWxIYW5kbGVyLmRlcGFydG1lbnQ9bWFpbFF1aWNrRW1haWwuZGVwYXJ0bWVudCk7ZD1tYWlsUXVpY2tFbWFpbC5nZXRTZW5kVG8oKTtmPW1haWxRdWlja0VtYWlsLmdldFNlbmRUb0FkZigpO2JyZWFrO2Nhc2UgIlJlYmF0ZUNvdXBvblByb21vIjptYWlsUXVpY2tFbWFpbC5hc3NpZ25WYWx1ZXMoKTtlPW1haWxRdWlja0VtYWlsLm1lc3NhZ2U7YT1hLnJlcGxhY2UoL3tcJE5BTUV9L2csZDJjbWVkaWEuY2FwaXRhbGlzZUZpcnN0TGV0dGVyT2ZFdmVyeVdvcmQobWFpbFF1aWNrRW1haWwubmFtZSkpLnJlcGxhY2UoL3tcJEVNQUlMfS9nLAptYWlsUXVpY2tFbWFpbC5lbWFpbCk7YT1hLnJlcGxhY2UoL3tcJEVNQUlMUEhPTkV9L2csbWFpbFF1aWNrRW1haWwucGhvbmUpLnJlcGxhY2UoL3tcJE1FU1NBR0V9L2csbWFpbFF1aWNrRW1haWwubWVzc2FnZSk7YT1hLnJlcGxhY2UoL3tcJENPVVBPTk1BS0V9L2csJCgiI2NvdXBvbm1ha2UiKS52YWwoKSkucmVwbGFjZSgve1wkQ09VUE9OTU9ERUx9L2csJCgiI2NvdXBvbm1vZGVsIikudmFsKCkpO2E9YS5yZXBsYWNlKC97XCRDT1VQT05ZRUFSfS9nLCQoIiNjb3Vwb255ZWFyIikudmFsKCkpLnJlcGxhY2UoL3tcJENPVVBPTlNUT0NLTlVNQkVSfS9nLCQoIiNjb3Vwb25zdG9ja251bWJlciIpLnZhbCgpKTthPWEucmVwbGFjZSgve1wkQ09VUE9OVkFMVUV9L2csJCgiI2NvdXBvblZhbHVlIikudmFsKCkrIiQiKS5yZXBsYWNlKC97XCRQUklDRX0vZywkKCIjdmVoaWNsZU9yaWdQcmljZSIpLnZhbCgpKyIkIik7ZW1haWxIYW5kbGVyLm1ha2U9JCgiI2NvdXBvbm1ha2UiKS52YWwoKTsKZW1haWxIYW5kbGVyLm1vZGVsPSQoIiNjb3Vwb25tb2RlbCIpLnZhbCgpO2VtYWlsSGFuZGxlci55ZWFyPSQoIiNjb3Vwb255ZWFyIikudmFsKCk7ZW1haWxIYW5kbGVyLnVzZXJFbWFpbD1tYWlsUXVpY2tFbWFpbC5lbWFpbDtlbWFpbEhhbmRsZXIudXNlckZpcnN0TmFtZT1tYWlsUXVpY2tFbWFpbC5uYW1lO2VtYWlsSGFuZGxlci51c2VyUGhvbmU9bWFpbFF1aWNrRW1haWwucGhvbmU7ZW1haWxIYW5kbGVyLnRyaW09JCgiI2NvdXBvbnZlaGljbGV0cmltIikudmFsKCk7ZW1haWxIYW5kbGVyLnZpbj0kKCIjY291cG9udmVoaWNsZXZpbiIpLnZhbCgpO2VtYWlsSGFuZGxlci5wcmljZT0kKCIjdmVoaWNsZU9yaWdQcmljZSIpLnZhbCgpO2VtYWlsSGFuZGxlci5zdG9ja051bWJlcj0kKCIjY291cG9uc3RvY2tudW1iZXIiKS52YWwoKTtlbWFpbEhhbmRsZXIuY2FyaWQ9JCgiI2NvdXBvbnZlaGljbGVpZCIpLnZhbCgpOyQoImlucHV0LmxhYmVsZW1haWwiKS52YWwoIlJlYmF0ZUNvdXBvblByb21vIik7CiJ1bmRlZmluZWQiIT10eXBlb2Ygc2VhcmNoRW5naW5lJiYoJCgiaW5wdXQuYnJhbmRlbWFpbCIpLnZhbCgkKCIjY291cG9ubWFrZSIpLnZhbCgpKSwkKCJpbnB1dC5tb2RlbGVtYWlsIikudmFsKCQoIiNjb3Vwb25tb2RlbCIpLnZhbCgpKSwkKCJpbnB1dC55ZWFyZW1haWwiKS52YWwoJCgiI2NvdXBvbnllYXIiKS52YWwoKSkpO2VtYWlsSGFuZGxlci5jb25kaXRpb249IlVzZWQiO2IuZW1haWxTZW50PWZ1bmN0aW9uKGgpeyQoIi5jbG9zZS1yZXZlYWwtbW9kYWwiKS50cmlnZ2VyKCJjbGljayIpfTticmVhaztjYXNlICJDYXJwcm9vZk1haWwiOmVtYWlsSGFuZGxlci5wb3B1cGRpdj0iY2FycHJvb2ZNYWluRGl2IjtrPSQoIiNlbWFpbFN1YmplY3REZWYyIikudGV4dCgpO2E9JCgiI2VtYWlsQm9keURlZjIiKS5odG1sKCk7JCgiaW5wdXQubGFiZWxlbWFpbCIpLnZhbCgiRGVtYW5kZXMtQ2FyUHJvb2YiKTskKCJpbnB1dC5pc2V4cHJlc3MiKS52YWwoIjAiKTskKCJpbnB1dC5icmFuZGVtYWlsIikudmFsKGNhcnByb29mSGFuZGxlci5tYWtlKTsKJCgiaW5wdXQubW9kZWxlbWFpbCIpLnZhbChjYXJwcm9vZkhhbmRsZXIubW9kZWwpOyQoImlucHV0LnllYXJlbWFpbCIpLnZhbChjYXJwcm9vZkhhbmRsZXIueWVhcik7YT1hLnJlcGxhY2UoL3tcJE5BTUV9L2csZDJjbWVkaWEuY2FwaXRhbGlzZUZpcnN0TGV0dGVyT2ZFdmVyeVdvcmQoY2FycHJvb2ZIYW5kbGVyLm5hbWUpKS5yZXBsYWNlKC97XCRFTUFJTH0vZyxjYXJwcm9vZkhhbmRsZXIuZW1haWwpO2E9YS5yZXBsYWNlKC97XCRFTUFJTE1BS0V9L2csY2FycHJvb2ZIYW5kbGVyLm1ha2UpLnJlcGxhY2UoL3tcJEVNQUlMTU9ERUx9L2csY2FycHJvb2ZIYW5kbGVyLm1vZGVsKS5yZXBsYWNlKC97XCRFTUFJTFlFQVJ9L2csY2FycHJvb2ZIYW5kbGVyLnllYXIpO2E9YS5yZXBsYWNlKC97XCRDT0xPUn0vZyxjYXJwcm9vZkhhbmRsZXIuY29sb3IpLnJlcGxhY2UoL3tcJFNUT0NLTlVNQkVSfS9nLGNhcnByb29mSGFuZGxlci5zdG9ja051bWJlcikucmVwbGFjZSgve1wkRU1BSUxQSE9ORX0vZywKY2FycHJvb2ZIYW5kbGVyLnBob25lKTtlbWFpbEhhbmRsZXIudXNlckVtYWlsPWNhcnByb29mSGFuZGxlci5lbWFpbDtlbWFpbEhhbmRsZXIudXNlckZpcnN0TmFtZT1jYXJwcm9vZkhhbmRsZXIubmFtZTtlbWFpbEhhbmRsZXIudXNlclBob25lPWNhcnByb29mSGFuZGxlci5waG9uZTtlbWFpbEhhbmRsZXIubWFrZT1jYXJwcm9vZkhhbmRsZXIubWFrZTtlbWFpbEhhbmRsZXIubW9kZWw9Y2FycHJvb2ZIYW5kbGVyLm1vZGVsO2VtYWlsSGFuZGxlci55ZWFyPWNhcnByb29mSGFuZGxlci55ZWFyO2VtYWlsSGFuZGxlci50cmltPSQoIiNjYXJwcm9vZmNhcnRyaW0iKS52YWwoKTtlbWFpbEhhbmRsZXIudmluPSQoIiNjYXJwcm9vZmNhcnZpbiIpLnZhbCgpO2VtYWlsSGFuZGxlci5wcmljZT0kKCIjY2FycHJvb2ZjYXJwcmljZSIpLnZhbCgpO2VtYWlsSGFuZGxlci5zdG9ja051bWJlcj1jYXJwcm9vZkhhbmRsZXIuc3RvY2tOdW1iZXI7ZW1haWxIYW5kbGVyLmNhcmlkPSQoIiNjYXJwcm9vZmNhcmlkIikudmFsKCk7CmQ9Y2FycHJvb2ZIYW5kbGVyLnNlbmRUby5sZW5ndGgmJiIiIT1jYXJwcm9vZkhhbmRsZXIuc2VuZFRvP2NhcnByb29mSGFuZGxlci5zZW5kVG86JCgiI3RleHRTZW5kVG9FbWFpbCIpLmxlbmd0aD8kKCIjdGV4dFNlbmRUb0VtYWlsIikudmFsKCk6IiI7Zj1jYXJwcm9vZkhhbmRsZXIuc2VuZFRvQWRmLmxlbmd0aCYmIiIhPWNhcnByb29mSGFuZGxlci5zZW5kVG9BZGY\/Y2FycHJvb2ZIYW5kbGVyLnNlbmRUb0FkZjokKCIjdGV4dFNlbmRUb0VtYWlsQURGIikubGVuZ3RoPyQoIiN0ZXh0U2VuZFRvRW1haWxBREYiKS52YWwoKToiIjtlbWFpbEhhbmRsZXIuZGVhbGVyTmFtZT1jYXJwcm9vZkhhbmRsZXIuZGVhbGVyTmFtZTticmVhaztjYXNlICJDdXN0b21lclJhdGluZyI6ZW1haWxIYW5kbGVyLnBvcHVwZGl2PSJDdXN0b21lclJhdGluZyI7bWFpbFJhdGluZy5hc3NpZ25WYWx1ZXMoKTthPWEucmVwbGFjZSgve1wkUkFUSU5HTUVTU0FHRX0vZyxtYWlsUmF0aW5nLm1lc3NhZ2UpLnJlcGxhY2UoL3tcJExOQU1FfS9nLApkMmNtZWRpYS5jYXBpdGFsaXNlRmlyc3RMZXR0ZXJPZkV2ZXJ5V29yZChtYWlsUmF0aW5nLnVzZXJMYXN0TmFtZSkpLnJlcGxhY2UoL3tcJEZOQU1FfS9nLGQyY21lZGlhLmNhcGl0YWxpc2VGaXJzdExldHRlck9mRXZlcnlXb3JkKG1haWxSYXRpbmcudXNlckZpcnN0TmFtZSkpLnJlcGxhY2UoL3tcJEVNQUlMfS9nLG1haWxSYXRpbmcudXNlckVtYWlsKS5yZXBsYWNlKC97XCRQSE9ORX0vZyxtYWlsUmF0aW5nLnVzZXJQaG9uZSkucmVwbGFjZSgve1wkUkFUSU5HU1RBUlN9L2csbWFpbFJhdGluZy5yYXRpbmcpLnJlcGxhY2UoL3tcJENMSUVOVE5BTUV9L2csbWFpbFJhdGluZy51c2VyRmlyc3ROYW1lKyIgIittYWlsUmF0aW5nLnVzZXJMYXN0TmFtZSk7az1rLnJlcGxhY2UoL3tcJENMSUVOVE5BTUV9L2csbWFpbFJhdGluZy51c2VyRmlyc3ROYW1lKyIgIittYWlsUmF0aW5nLnVzZXJMYXN0TmFtZSk7ZW1haWxIYW5kbGVyLnZpbj0iIjtlbWFpbEhhbmRsZXIucHJpY2U9MDtlbWFpbEhhbmRsZXIuc3RvY2tOdW1iZXI9CiIiO2VtYWlsSGFuZGxlci5jYXJpZD0iIjtlbWFpbEhhbmRsZXIuY29uZGl0aW9uPSJVbmtub3duIjtlbWFpbEhhbmRsZXIudXNlckZpcnN0TmFtZT1tYWlsUmF0aW5nLnVzZXJGaXJzdE5hbWU7ZW1haWxIYW5kbGVyLnVzZXJMYXN0TmFtZT1tYWlsUmF0aW5nLnVzZXJMYXN0TmFtZTtlbWFpbEhhbmRsZXIudXNlclBob25lPW1haWxSYXRpbmcudXNlclBob25lO2VtYWlsSGFuZGxlci51c2VyRW1haWw9bWFpbFJhdGluZy51c2VyRW1haWw7ZD1tYWlsUmF0aW5nLnNlbmRUbztmPSIgICI7YnJlYWs7Y2FzZSAiaGVhZGVyU2VydmljZSI6ZW1haWxIYW5kbGVyLnBvcHVwZGl2PSJtZW51U2VydmljZSI7c2VydmljZUZvcm1faGVhZGVyU2VydmljZS5zZXRFbWFpbFNlbnRDYWxsYmFjaygpO2E9c2VydmljZUZvcm1faGVhZGVyU2VydmljZS5zZXRFbWFpbEhhbmRsZXJWYWx1ZXNBbmRCb2R5KGEpO2Q9c2VydmljZUZvcm1faGVhZGVyU2VydmljZS5nZXRTZW5kVG8oKTtrKz0iIEV4cHJlc3MiOwpicmVhaztjYXNlICJtZW51U2VydmljZSI6ZW1haWxIYW5kbGVyLnBvcHVwZGl2PSJtZW51U2VydmljZSI7c2VydmljZUZvcm1fbWVudVNlcnZpY2Uuc2V0RW1haWxTZW50Q2FsbGJhY2soKTthPXNlcnZpY2VGb3JtX21lbnVTZXJ2aWNlLnNldEVtYWlsSGFuZGxlclZhbHVlc0FuZEJvZHkoYSk7ZD1zZXJ2aWNlRm9ybV9tZW51U2VydmljZS5nZXRTZW5kVG8oKTtrKz0iIEV4cHJlc3MiO2JyZWFrO2RlZmF1bHQ6IiI9PWQmJiJ1bmRlZmluZWQiIT10eXBlb2YgJCgiI3RleHRTZW5kVG9FbWFpbCIpLmF0dHIoImlkIikmJihkPSQoIiN0ZXh0U2VuZFRvRW1haWwiKS52YWwoKSk7IiI9PWYmJiJ1bmRlZmluZWQiIT10eXBlb2YgJCgiI3RleHRTZW5kVG9FbWFpbEFERiIpLmF0dHIoImlkIikmJjM8JCgiI3RleHRTZW5kVG9FbWFpbEFERiIpLnZhbCgpLmxlbmd0aCYmKGY9JCgiI3RleHRTZW5kVG9FbWFpbEFERiIpLnZhbCgpKTsidW5kZWZpbmVkIiE9dHlwZW9mIG1haWxWZWhpY2xlV2lkZ2V0JiYKKG1haWxWZWhpY2xlV2lkZ2V0LmFzc2lnblZhbHVlcygpLGE9YS5yZXBsYWNlKC97XCRFTUFJTE1BS0V9L2csbWFpbFZlaGljbGVXaWRnZXQubWFrZSkucmVwbGFjZSgve1wkRU1BSUxNT0RFTH0vZyxtYWlsVmVoaWNsZVdpZGdldC5tb2RlbCkucmVwbGFjZSgve1wkRU1BSUxZRUFSfS9nLG1haWxWZWhpY2xlV2lkZ2V0LnllYXIpLnJlcGxhY2UoL3tcJENPTE9SfS9nLG1haWxWZWhpY2xlV2lkZ2V0LmNvbG9yKS5yZXBsYWNlKC97XCRFTUFJTFNUT0NLTlVNQkVSfS9nLG1haWxWZWhpY2xlV2lkZ2V0LnN0b2NrTnVtYmVyKS5yZXBsYWNlKC97XCRTVE9DS05VTUJFUn0vZyxtYWlsVmVoaWNsZVdpZGdldC5zdG9ja051bWJlcikucmVwbGFjZSgve1wkRlJPTVlFQVJ9L2csbWFpbFZlaGljbGVXaWRnZXQuZnJvbVllYXIpLnJlcGxhY2UoL3tcJFRPWUVBUn0vZyxtYWlsVmVoaWNsZVdpZGdldC50b1llYXIpLnJlcGxhY2UoL3tcJElOVEVOVElPTn0vZyxtYWlsVmVoaWNsZVdpZGdldC5pbnRlbnRpb24pLnJlcGxhY2UoL3tcJFBMQVRFU30vZywKbWFpbFZlaGljbGVXaWRnZXQucGxhdGVzKS5yZXBsYWNlKC97XCRWSU59L2csbWFpbFZlaGljbGVXaWRnZXQudmluKSxtYWlsVmVoaWNsZVdpZGdldC5vZG9tb3RlciYmKGE9YS5yZXBsYWNlKC97XCRLTX0vZyxjKG1haWxWZWhpY2xlV2lkZ2V0Lm9kb21vdGVyKSkpLCQoImlucHV0LmJyYW5kZW1haWwiKS5sZW5ndGgmJiQoImlucHV0LmJyYW5kZW1haWwiKS52YWwobWFpbFZlaGljbGVXaWRnZXQubWFrZSksJCgiaW5wdXQubW9kZWxlbWFpbCIpLmxlbmd0aCYmJCgiaW5wdXQubW9kZWxlbWFpbCIpLnZhbChtYWlsVmVoaWNsZVdpZGdldC5tb2RlbCksJCgiaW5wdXQueWVhcmVtYWlsIikubGVuZ3RoJiYkKCJpbnB1dC55ZWFyZW1haWwiKS52YWwobWFpbFZlaGljbGVXaWRnZXQueWVhciksZW1haWxIYW5kbGVyLm1ha2U9bWFpbFZlaGljbGVXaWRnZXQubWFrZSxlbWFpbEhhbmRsZXIubW9kZWw9bWFpbFZlaGljbGVXaWRnZXQubW9kZWwsZW1haWxIYW5kbGVyLnllYXI9bWFpbFZlaGljbGVXaWRnZXQueWVhciwKZW1haWxIYW5kbGVyLnRyaW09JCgiI2NhcnRyaW0iKS52YWwoKSxlbWFpbEhhbmRsZXIudmluPW1haWxWZWhpY2xlV2lkZ2V0LnZpbixlbWFpbEhhbmRsZXIucHJpY2U9JCgiI2NhcnByaWNlIikudmFsKCksZW1haWxIYW5kbGVyLnN0b2NrTnVtYmVyPW1haWxWZWhpY2xlV2lkZ2V0LnN0b2NrTnVtYmVyLGVtYWlsSGFuZGxlci5jYXJpZD0kKCIjY2FyaWQiKS52YWwoKSwwPCQoIiNjYXJpZCIpLnZhbCgpLmxlbmd0aHx8ZW1haWxIYW5kbGVyLnllYXI8KG5ldyBEYXRlKS5nZXRGdWxsWWVhcigpP2VtYWlsSGFuZGxlci5jb25kaXRpb249IlVzZWQiOmVtYWlsSGFuZGxlci5jb25kaXRpb249MDxtYWlsVmVoaWNsZVdpZGdldC5tYWtlLmxlbmd0aD8iTmV3IjoiVW5rbm93biIpO2E9YS5yZXBsYWNlKC97XCRQTEFURVN9L2csIiIpOyJ1bmRlZmluZWQiIT10eXBlb2YgbWFpbFZlaGljbGVXaWRnZXRFeCYmJCgiI3ZlaGljbGVTZWxlY3RGb3JtRXgiKS5sZW5ndGgmJihtYWlsVmVoaWNsZVdpZGdldEV4LmFzc2lnblZhbHVlcygpLAphPWEucmVwbGFjZSgve1wkTUFLRUVYfS9nLG1haWxWZWhpY2xlV2lkZ2V0RXgubWFrZSkucmVwbGFjZSgve1wkTU9ERUxFWH0vZyxtYWlsVmVoaWNsZVdpZGdldEV4Lm1vZGVsKS5yZXBsYWNlKC97XCRZRUFSRVh9L2csbWFpbFZlaGljbGVXaWRnZXRFeC55ZWFyKS5yZXBsYWNlKC97XCRDT0xPUkVYfS9nLG1haWxWZWhpY2xlV2lkZ2V0RXguY29sb3IpLnJlcGxhY2UoL3tcJFRSSU1FWH0vZyxtYWlsVmVoaWNsZVdpZGdldEV4LnRyaW0pLnJlcGxhY2UoL3tcJFRSQU5TTUlTU0lPTn0vZyxtYWlsVmVoaWNsZVdpZGdldEV4LnRyYW5zbWlzc2lvbikucmVwbGFjZSgve1wkS019L2csYyhtYWlsVmVoaWNsZVdpZGdldEV4Lm9kb21vdGVyKSkucmVwbGFjZSgve1wkVklORVh9L2csbWFpbFZlaGljbGVXaWRnZXRFeC52aW4pLnJlcGxhY2UoL3tcJERSSVZFVFJBSU59L2csbWFpbFZlaGljbGVXaWRnZXRFeC5kcml2ZXRyYWluKS5yZXBsYWNlKC97XCRHQVN9L2csbWFpbFZlaGljbGVXaWRnZXRFeC5mdWVsKSwKJCgiaW5wdXQuYnJhbmRlbWFpbCIpLmxlbmd0aCYmMDxtYWlsVmVoaWNsZVdpZGdldEV4Lm1ha2UubGVuZ3RoJiYkKCJpbnB1dC5icmFuZGVtYWlsIikudmFsKG1haWxWZWhpY2xlV2lkZ2V0RXgubWFrZSksJCgiaW5wdXQubW9kZWxlbWFpbCIpLmxlbmd0aCYmMDxtYWlsVmVoaWNsZVdpZGdldEV4Lm1vZGVsLmxlbmd0aCYmJCgiaW5wdXQubW9kZWxlbWFpbCIpLnZhbChtYWlsVmVoaWNsZVdpZGdldEV4Lm1vZGVsKSwkKCJpbnB1dC55ZWFyZW1haWwiKS5sZW5ndGgmJjA8bWFpbFZlaGljbGVXaWRnZXRFeC5tYWtlLmxlbmd0aCYmJCgiaW5wdXQueWVhcmVtYWlsIikudmFsKG1haWxWZWhpY2xlV2lkZ2V0RXgueWVhciksZW1haWxIYW5kbGVyLm1ha2U9bWFpbFZlaGljbGVXaWRnZXRFeC5tYWtlLGVtYWlsSGFuZGxlci5tb2RlbD1tYWlsVmVoaWNsZVdpZGdldEV4Lm1vZGVsLGVtYWlsSGFuZGxlci55ZWFyPW1haWxWZWhpY2xlV2lkZ2V0RXgueWVhcixlbWFpbEhhbmRsZXIudHJpbT1tYWlsVmVoaWNsZVdpZGdldEV4LnRyaW0sCiJ1bmRlZmluZWQiIT10eXBlb2YgZW1haWxIYW5kbGVyLmlzVHJhZGVJbkJhcnx8IlByaWNlVmVoaWNsZSIhPWIubWFpbElEJiYiUHJpY2VWZWhpY2xlTmV3IiE9Yi5tYWlsSUQmJiJFc3RoZXRpY1JlcXVlc3QiIT1iLm1haWxJRHx8KGVtYWlsSGFuZGxlci5tYWtlPW1haWxWZWhpY2xlV2lkZ2V0Lm1ha2UsZW1haWxIYW5kbGVyLm1vZGVsPW1haWxWZWhpY2xlV2lkZ2V0Lm1vZGVsLGVtYWlsSGFuZGxlci55ZWFyPW1haWxWZWhpY2xlV2lkZ2V0LnllYXIsZW1haWxIYW5kbGVyLnRyaW09bWFpbFZlaGljbGVXaWRnZXQudHJpbSwiUHJpY2VWZWhpY2xlIiE9Yi5tYWlsSUQmJiJQcmljZVZlaGljbGVOZXciIT1iLm1haWxJRCl8fChlbWFpbEhhbmRsZXIuY2FyMl9tYWtlPW1haWxWZWhpY2xlV2lkZ2V0RXgubWFrZSxlbWFpbEhhbmRsZXIuY2FyMl9tb2RlbD1tYWlsVmVoaWNsZVdpZGdldEV4Lm1vZGVsLGVtYWlsSGFuZGxlci5jYXIyX3RyaW09bWFpbFZlaGljbGVXaWRnZXRFeC50cmltLAplbWFpbEhhbmRsZXIuY2FyMl95ZWFyPW1haWxWZWhpY2xlV2lkZ2V0RXgueWVhcixlbWFpbEhhbmRsZXIuY2FyMl9jb2xvcj1tYWlsVmVoaWNsZVdpZGdldEV4LmNvbG9yLGVtYWlsSGFuZGxlci5jYXIyX29kb21ldGVyPWMobWFpbFZlaGljbGVXaWRnZXRFeC5vZG9tb3RlciksZW1haWxIYW5kbGVyLmNhcjJfdmluPW1haWxWZWhpY2xlV2lkZ2V0RXgudmluLGVtYWlsSGFuZGxlci5jYXIyX3RyYW5zbWlzc29uPW1haWxWZWhpY2xlV2lkZ2V0RXgudHJhbnNtaXNzaW9uLGVtYWlsSGFuZGxlci5jYXIyX2RyaXZldHJhaW49bWFpbFZlaGljbGVXaWRnZXRFeC5kcml2ZXRyYWluLGVtYWlsSGFuZGxlci5jYXIyX2Z1ZWx0eXBlPW1haWxWZWhpY2xlV2lkZ2V0RXguZnVlbCxhPWEucmVwbGFjZSgve1wkVFJBREVJTkxPV30vZywiTi9BIiksYT1hLnJlcGxhY2UoL3tcJFRSQURFSU5ISUdIfS9nLCJOL0EiKSxhPWEucmVwbGFjZSgve1wkVFJBREVJTkFWR30vZywiTi9BIikpLGVtYWlsSGFuZGxlci52aW49CiIiLGVtYWlsSGFuZGxlci5wcmljZT0wLGVtYWlsSGFuZGxlci5zdG9ja051bWJlcj0iIixlbWFpbEhhbmRsZXIuY2FyaWQ9IiIsMDwkKCIjY2FyaWQiKS52YWwoKS5sZW5ndGg\/ZW1haWxIYW5kbGVyLmNvbmRpdGlvbj0iVXNlZCI6ZW1haWxIYW5kbGVyLmNvbmRpdGlvbj0wPG1haWxWZWhpY2xlV2lkZ2V0RXgubWFrZS5sZW5ndGg\/Ik5ldyI6IlVua25vd24iKTtpZigidW5kZWZpbmVkIiE9dHlwZW9mICQoIiNzZXJ2aWNlUGFja2FnZXMiKS5wcm9wKCJpZCIpKXt2YXIgbj0hMSxyPSIiOyQoImlucHV0LnNlbGVjdGVkU2VydmljZSIpLmVhY2goZnVuY3Rpb24oaCxwKXtoPSQocCk7aC5pcygiOmNoZWNrZWQiKSYmKHIrPSI8YnI+IitoLnZhbCgpLG49ITApfSk7biYmKHI9Ijxicj48YnI+PHU+IiskKCIjc2VsZWN0ZWRTZXJ2aWNlc1RpdGxlIikudmFsKCkrIjwvdT4iK3IpO2E9YS5yZXBsYWNlKC97XCRTRUxFQ1RFRFNFUlZJQ0VTfS9nLHIpfSJ1bmRlZmluZWQiIT10eXBlb2YgbWFpbFVzZXJJbmZvJiYKKG1haWxVc2VySW5mby5hc3NpZ25WYWx1ZXMoKSxhPWEucmVwbGFjZSgve1wkRk5BTUV9L2csZDJjbWVkaWEuY2FwaXRhbGlzZUZpcnN0TGV0dGVyT2ZFdmVyeVdvcmQobWFpbFVzZXJJbmZvLmZpcnN0TmFtZSkpLnJlcGxhY2UoL3tcJExOQU1FfS9nLGQyY21lZGlhLmNhcGl0YWxpc2VGaXJzdExldHRlck9mRXZlcnlXb3JkKG1haWxVc2VySW5mby5sYXN0TmFtZSkpLnJlcGxhY2UoL3tcJEVNQUlMUEhPTkV9L2csbWFpbFVzZXJJbmZvLnBob25lKS5yZXBsYWNlKC97XCRFTUFJTH0vZyxtYWlsVXNlckluZm8uZW1haWwpKTsidW5kZWZpbmVkIiE9dHlwZW9mIG1haWxKb2JPZmZlciYmKG1haWxKb2JPZmZlci5hc3NpZ25WYWx1ZXMoKSxkPSQoIiN0ZXh0U2VuZFRvRW1haWwiKS52YWwoKSxmPSQoIiN0ZXh0U2VuZFRvRW1haWxBREYiKS52YWwoKSxhPWEucmVwbGFjZSgve1wkSk9CUE9TVH0vZyxtKGQyY21lZGlhLmNhcGl0YWxpc2VGaXJzdExldHRlck9mRXZlcnlXb3JkKG1haWxKb2JPZmZlci5qb2JQb3NpdG9uKSkpLnJlcGxhY2UoL3tcJEpPQkRFUEFSVE1FTlR9L2csCm0oZDJjbWVkaWEuY2FwaXRhbGlzZUZpcnN0TGV0dGVyT2ZFdmVyeVdvcmQobWFpbEpvYk9mZmVyLmpvYkRlcGFydG1lbnQpKSkucmVwbGFjZSgve1wkSk9CTVNHfS9nLG0obWFpbEpvYk9mZmVyLmpvYk1lc3NhZ2UpKSk7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBtYWlsVXNlckFkZHJlc3Mpe21haWxVc2VyQWRkcmVzcy5hc3NpZ25WYWx1ZXMoKTt2YXIgcT10cmltKG1haWxVc2VyQWRkcmVzcy5hZGRyZXNzQXBwKyIgIittYWlsVXNlckFkZHJlc3MuYWRkcmVzc051bWJlcisiICIrbWFpbFVzZXJBZGRyZXNzLmFkZHJlc3NTdHJlZXQpO2E9YS5yZXBsYWNlKC97XCRDVVJSRU5UQUREUkVTU30vZyxtKHEpKS5yZXBsYWNlKC97XCRDVVJSRU5UQ0lUWX0vZyxtKG1haWxVc2VyQWRkcmVzcy5jaXR5KSkucmVwbGFjZSgve1wkQ1VSUkVOVFBST1ZJTkNFfS9nLG0obWFpbFVzZXJBZGRyZXNzLnByb3ZpbmNlKSkucmVwbGFjZSgve1wkQ1VSUkVOVFBPU1RBTENPREV9L2csbShtYWlsVXNlckFkZHJlc3MucG9zdGFsQ29kZSkpfSJ1bmRlZmluZWQiIT0KdHlwZW9mIG1haWxTY2hlZHVsZSYmKG1haWxTY2hlZHVsZS5hc3NpZ25WYWx1ZXMoKSxhPWEucmVwbGFjZSgve1wkREFURTF9L2csbWFpbFNjaGVkdWxlLmZpcnN0Q2hvaWNlKS5yZXBsYWNlKC97XCREQVRFMn0vZyxtYWlsU2NoZWR1bGUuc2Vjb25kQ2hvaWNlKS5yZXBsYWNlKC97XCRXQUlUSU5HT05TSVRFfS9nLG1haWxTY2hlZHVsZS53YWl0aW5nT25TaXRlKS5yZXBsYWNlKC97XCRUUkFOU1BPUlRPUFRJT059L2csbWFpbFNjaGVkdWxlLmdldFRyYW5zcG9ydE9wdGlvblRleHQoKSksZW1haWxIYW5kbGVyLnNlcnZpY2VEYXRlMT1tYWlsU2NoZWR1bGUuZmlyc3RDaG9pY2UsZW1haWxIYW5kbGVyLnNlcnZpY2VEYXRlMj1tYWlsU2NoZWR1bGUuc2Vjb25kQ2hvaWNlLGVtYWlsSGFuZGxlci53YWl0aW5nT25TaXRlPW1haWxTY2hlZHVsZS53YWl0aW5nT25TaXRlLGVtYWlsSGFuZGxlci50cmFuc3BvcnRPcHRpb249bWFpbFNjaGVkdWxlLnRyYW5zcG9ydE9wdGlvbik7dmFyIHQ9cT0iIiwKdT0iIjsidW5kZWZpbmVkIiE9dHlwZW9mICQoIiNmaW5hbmNlT3B0aW9uRGl2IikuYXR0cigiaWQiKSYmKCJjaGVja2VkIj09JCgiI2ZpbmFuY2VPcHRpb25EaXYgaW5wdXQiKS5hdHRyKCJjaGVja2VkIik\/cT0kKCIjdGV4dENhc2giKS52YWwoKToocT0iY2hlY2tlZCI9PSQoIiNmaW5hbmNlT3B0aW9uRGl2MiBpbnB1dCIpLmF0dHIoImNoZWNrZWQiKT8kKCIjdGV4dEZpbmFuY2UiKS52YWwoKTokKCIjdGV4dExlYXNlIikudmFsKCksdT0kKCIjZmluYW5jZVRlcm1TZWxlY3QiKS52YWwoKSksInVuZGVmaW5lZCIhPXR5cGVvZiAkKCIjdmVoaWNsZU9mZmVyIikuYXR0cigiaWQiKSYmKHQ9IiQiK2MoJCgiI3ZlaGljbGVPZmZlciIpLnZhbCgpKSksYT1hLnJlcGxhY2UoL3tcJFBBWU1FTlR9L2cscSkucmVwbGFjZSgve1wkUEFZTUVOVFRFUk19L2csdSkucmVwbGFjZSgve1wkT0ZGRVJ9L2csdCkpOyJ1bmRlZmluZWQiIT10eXBlb2YgJCgiI3F1ZXN0aW9uc0NvbW1lbnRzIikuYXR0cigiaWQiKSYmCihlPW0oJCgiI3F1ZXN0aW9uc0NvbW1lbnRzIikudmFsKCkpLGE9YS5yZXBsYWNlKC97XCRRVUVTVElPTlN9L2csZSksZW1haWxIYW5kbGVyLmNvbW1lbnRzPWUpOyJ1bmRlZmluZWQiIT10eXBlb2YgJCgiI3JlcXVlc3RUeXBlIikuYXR0cigiaWQiKSYmKGE9YS5yZXBsYWNlKC97XCRERU1BTkRFfS9nLCQoIiNyZXF1ZXN0VHlwZSIpLnZhbCgpKSl9JCgiI3Rlc3REcml2ZVR5cGUiKS5sZW5ndGgmJihhPWEucmVwbGFjZSgve1wkVEVTVERSSVZFVFlQRX0vZywkKCIjdGVzdERyaXZlVHlwZSIpLnZhbCgpKSxhPSJWaXJ0dWFsIj09JCgiI3Rlc3REcml2ZVR5cGUiKS52YWwoKXx8IlZpcnR1ZWwiPT0kKCIjdGVzdERyaXZlVHlwZSIpLnZhbCgpP2EucmVwbGFjZSgve1wkVEVTVERSSVZFVklSVFVBTH0vZywkKCIjcHJlZmVyZWRWaXJ0dWFsVG9vbCIpLnZhbCgpKTphLnJlcGxhY2UoL3tcJFRFU1REUklWRVZJUlRVQUx9L2csIk4vQSIpKTskKGcpLmZpbmQoIiNzZXJ2aWNlRW1haWxzU2VsZWN0IikubGVuZ3RoPwplbWFpbEhhbmRsZXIuZGVhbGVyTmFtZT0kKGcpLmZpbmQoIiNzZXJ2aWNlRW1haWxzU2VsZWN0IikuZmluZCgiOnNlbGVjdGVkIikuaHRtbCgpOiIxIj09JCgiI2lzTW9iaWxlIikudmFsKCkmJiQoIiNzZXJ2aWNlRW1haWxzU2VsZWN0IikubGVuZ3RoJiYoZW1haWxIYW5kbGVyLmRlYWxlck5hbWU9JCgiI3NlcnZpY2VFbWFpbHNTZWxlY3QiKS5maW5kKCI6c2VsZWN0ZWQiKS5odG1sKCkpO2VtYWlsSGFuZGxlci5kZWFsZXJOYW1lJiYoYT1hLnJlcGxhY2UoInskREVBTEVSTkFNRX0iLGVtYWlsSGFuZGxlci5kZWFsZXJOYW1lKSk7YT1hLnJlcGxhY2UoL3tcJChEQVRFWzEyXSl9L2csZnVuY3Rpb24oaCxwKXtoPSQoJ2lucHV0W25hbWU9IicrcC50b0xvd2VyQ2FzZSgpKyciXScsZyk7cmV0dXJuIDA8aC5sZW5ndGg\/KG5ldyBEYXRlKGgudmFsKCkpKS5kYXRlRm9ybWF0KCJZLW0tZCBIOmkiKToiIn0pO2M9IiI7MDwkKCIjbGFzdHZpZXdlZG1ha2UiKS52YWwoKS5sZW5ndGgmJihjPSQoIiNsYXN0dmlld2VkbWFrZSIpLnZhbCgpKwoiICIrJCgiI2xhc3R2aWV3ZWRtb2RlbCIpLnZhbCgpKyIgIiskKCIjbGFzdHZpZXdlZHllYXIiKS52YWwoKSsiICIrJCgiI2xhc3R2aWV3ZWRzdG9ja251bWJlciIpLnZhbCgpKTthPWEucmVwbGFjZSgieyRMQVNUVkVISUNMRVZJRVdFRH0iLGMpO2E9YS5yZXBsYWNlKFJlZ0V4cCgie1xcJChRVUVTVElPTlN8TUVTU0FHRXxSQVRJTkdNRVNTQUdFfEVNQUlMUEhPTkV8RU1BSUxNQUtFfEVNQUlMTU9ERUx8RU1BSUxZRUFSfFBBWU1FTlR8UEFZTUVOVFRFUk18T0ZGRVJ8U1RPQ0tOVU1CRVJ8Q09MT1J8Rk5BTUV8TE5BTUV8RU1BSUx8S018VklORVh8U0VMRUNURURTRVJWSUNFU3xFTUFJTENJVFl8UExBVEVTfERBVEUxfERBVEUyfFRSQU5TUE9SVE9QVElPTil9IiwiZyIpLCIiKTthPWEucmVwbGFjZSgve1wkRU1BSUxCVUlMREFORFBSSUNFfS9nLGIuYmFuZHBMaW5rKCkpOyIiPT1kJiYidW5kZWZpbmVkIiE9dHlwZW9mICQoIiNleHByZXNzU2VuZFRvRW1haWwiKS5hdHRyKCJpZCIpJiYKKGQ9bCYmInVuZGVmaW5lZCIhPXR5cGVvZiAkKCIjZXhwcmVzc1NlbmRUb0VtYWlsTkVXIikuYXR0cigiaWQiKSYmMDwkKCIjZXhwcmVzc1NlbmRUb0VtYWlsTkVXIikudmFsKCkubGVuZ3RoPyQoIiNleHByZXNzU2VuZFRvRW1haWxORVciKS52YWwoKTokKCIjZXhwcmVzc1NlbmRUb0VtYWlsIikudmFsKCkpO2lmKCIiPT1mJiYidW5kZWZpbmVkIiE9dHlwZW9mICQoIiNleHByZXNzU2VuZFRvRW1haWxBREYiKS5hdHRyKCJpZCIpKWlmKGwmJiJ1bmRlZmluZWQiIT10eXBlb2YgJCgiI2V4cHJlc3NTZW5kVG9FbWFpbEFERk5FVyIpLmF0dHIoImlkIikmJjA8JCgiI2V4cHJlc3NTZW5kVG9FbWFpbEFERk5FVyIpLnZhbCgpLmxlbmd0aClmPSQoIiNleHByZXNzU2VuZFRvRW1haWxBREZORVciKS52YWwoKTtlbHNlIGlmKCJzZXJ2aWNlIj09ZW1haWxIYW5kbGVyLmRlcGFydG1lbnQudG9Mb3dlckNhc2UoKXx8YiYmKCJtZW51U2VydmljZSI9PWIubWFpbElEfHwiaGVhZGVyU2VydmljZSI9PQpiLm1haWxJRCkpZj0kKCIjZXhwcmVzc1NlbmRUb0VtYWlsQURGU0VSVklDRSIpLnZhbCgpOyIiPT1kJiYkKCIjZXhwcmVzc0luRGVtbyIpLmxlbmd0aCYmIjEiPT0kKCIjZXhwcmVzc0luRGVtbyIpLnZhbCgpJiYoZW1haWxIYW5kbGVyLmNvbmRpdGlvbj0iTmV3IiwwPCQoIiNleHByZXNzU2VuZFRvRW1haWxORVciKS52YWwoKS5sZW5ndGgmJihkPSQoIiNleHByZXNzU2VuZFRvRW1haWxORVciKS52YWwoKSkpOyJRdWlja0VtYWlsIj09Yi5tYWlsSUQmJiJ1bmRlZmluZWQiIT09dHlwZW9mIGUmJjA8ZS5sZW5ndGgmJjA8JCgiI3NlcnZpY2VFbWFpbCIpLmxlbmd0aCYmMDwkKCIjc2VydmljZUFkZkVtYWlsIikubGVuZ3RoJiYodGVybXM9InJhcHBlbDtzZXJ2aWNlO2h1aWxlO3BpZWNlcztwae+\/vWNlcztwbmV1czt0cmFuc21pc3Npb247YWNjZXNzb2lyZXM7YWx0ZXJuYXRldXI7YW50aXJvdWlsbGU7YW50aS1yb3VpbGxlO2JhdHRlcmllO2JhdGVyaWU7cu+\/vXBhcmF0aW9uO3BlaW50dXJlO2ZyZWlucztkaXNxdWVzO2NhcnJvc3NlcmllO2NhdGFseXNldXI7Y2hvYztkZW1hcnJldXI777+9Y2hhcHBlbWVudDttb3RldXI7ZXNzdWllLWdsYWNlO2Vzc3VpLWdsYWNlOyBmZXV4O2NsaWdub3RhbnQ7a2xheG9uO2ZpbHRyZTtob3Jsb2dlO3JhZGlvO3RvaXQtb3V2cmFudDsgbWFnOyBtYWdzO23vv71jYW5pcXVlO211ZmZsZXI7bmF2aWdhdGlvbjtvcmRpbmF0ZXVyOyBwaGFyZXM7bHVtae+\/vXJlcztsdW1pZXJlO3Byb2Js77+9bWU7cHJvYmxlbWU7cmVjYWxsO3BhcnRzO3RpcmU7YWNjZXNzb3JpZXM7YWx0ZXJuYXRvcjtydXN0cHJvb2Zpbmc7YmF0dGVyeTtyZXBhaXI7cGFpbnQ7YnJha2U7ZGlza3M7IGJvZHk7c3RhcnRlcjtleGhhdXN0O2VuZ2luZTt3aXBlcjt3aXBlcnM7IGZsYXNoOyBsaWdodDtmbGFzaGVyO2ZsYXNoZXJzOyBob3JuO2ZpbHRlcjtjbG9jaztyb29mO21lY2FuaWM7Y29tcHV0ZXI7ZWN1O3Byb2JsZW0iLnNwbGl0KCI7IiksCm1hdGNoZWRUZXJtcz1bXSwkLmVhY2godGVybXMsZnVuY3Rpb24oaCxwKXtpZigtMTxlLmluZGV4T2YocCkpcmV0dXJuIGQ9JCgiI3NlcnZpY2VFbWFpbCIpLnZhbCgpLGY9JCgiI3NlcnZpY2VBZGZFbWFpbCIpLnZhbCgpLCExfSkpO2VtYWlsSGFuZGxlci5zdWJqZWN0PWs7ZW1haWxIYW5kbGVyLmJvZHk9YTtlbWFpbEhhbmRsZXIuc2VuZFRvPWQ7ZW1haWxIYW5kbGVyLnNlbmRGcm9tPSIiO2VtYWlsSGFuZGxlci5tYWlsSUQ9Yi5tYWlsSUQ7ZW1haWxIYW5kbGVyLmNhbGxiYWNrPWIuZW1haWxTZW50OyJ1bmRlZmluZWQiIT10eXBlb2YgbWFpbFVzZXJJbmZvJiYibWVudUNvbnRhY3RVcyIhPWVtYWlsSGFuZGxlci5tYWlsSUQmJiJtZW51U2VydmljZSIhPWVtYWlsSGFuZGxlci5tYWlsSUQmJihlbWFpbEhhbmRsZXIudXNlckVtYWlsPW1haWxVc2VySW5mby5lbWFpbCxlbWFpbEhhbmRsZXIudXNlckZpcnN0TmFtZT1tYWlsVXNlckluZm8uZmlyc3ROYW1lLGVtYWlsSGFuZGxlci51c2VyTGFzdE5hbWU9Cm1haWxVc2VySW5mby5sYXN0TmFtZSxlbWFpbEhhbmRsZXIudXNlclBob25lPW1haWxVc2VySW5mby5waG9uZSk7InVuZGVmaW5lZCIhPXR5cGVvZiBtYWlsSm9iT2ZmZXImJihlbWFpbEhhbmRsZXIudXNlckF0dGFjaG1lbnRQYXRoPW1haWxKb2JPZmZlci5qb2JGaWxlKTtlbWFpbEhhbmRsZXIuc2VuZFRvQURGRm9ybWF0PWY7LTEhPWVtYWlsSGFuZGxlci5ib2R5LnRvTG93ZXJDYXNlKCkuaW5kZXhPZigidGVzdEBkMmNtZWRpYS5jYSIpJiYkKCJpbnB1dC50ZXN0bW9kZSIpLnZhbCgiMSIpOyQoZykuZmluZCgiI3NlcnZpY2VFbWFpbHNTZWxlY3QiKS5sZW5ndGg\/ZW1haWxIYW5kbGVyLnNlbmRUbz0kKGcpLmZpbmQoIiNzZXJ2aWNlRW1haWxzU2VsZWN0IikudmFsKCk6IjEiPT0kKCIjaXNNb2JpbGUiKS52YWwoKSYmJCgiI3NlcnZpY2VFbWFpbHNTZWxlY3QiKS5sZW5ndGgmJihlbWFpbEhhbmRsZXIuc2VuZFRvPSQoIiNzZXJ2aWNlRW1haWxzU2VsZWN0IikudmFsKCkpfTtiLl92YWxpZGF0ZUZpZWxkcz0KZnVuY3Rpb24oYyl7dmFyIGc9ITEsaz0kKCIjTWlzc2luZ1ZhbGlkYXRpb25Nc2ciKS5odG1sKCksYT10aGlzLmpxU2NvcGU7aWYoIiNxdWlja0VtYWlsRm9ybSI9PWEpcmV0dXJuITA7JC52YWxpZGl0eS5zdGFydCgpO3ZhciBlPSIuSW5uZXJCb3hMYXllciI7MDwkKCIubWFpbl9sZWZ0X2JveCIpLmxlbmd0aCYmKGU9Ii5tYWluX2xlZnRfYm94Iik7YT1iLmpxU2NvcGU\/Yi5qcVNjb3BlOmU7MT4kKGEpLmxlbmd0aCYmKGE9IiNuZXdkZXRhaWxzIik7MT4kKGEpLmxlbmd0aCYmKGE9Ii5uZXctZGV0YWlscyIpOzE+JChhKS5sZW5ndGgmJihhPSJib2R5Iik7InVuZGVmaW5lZCIhPT10eXBlb2YgZGVidWcmJmRlYnVnKGMpO2M9JChhKS5maW5kKCIucmVxdWlyZWQsLnZhbGlkYXRlIik7JChhKS5maW5kKCJpbnB1dDpub3QoOmhpZGRlbiksIHRleHRhcmVhIikubm9uSHRtbCgpO2MuZmlsdGVyKCIucmVxdWlyZWQiKS5lYWNoKGZ1bmN0aW9uKCl7JCh0aGlzKS5yZXF1aXJlKCkubm9uSHRtbCgpfSk7CmMuZmlsdGVyKCIucmVxdWlyZWQtcGhvbmUiKS5lYWNoKGZ1bmN0aW9uKCl7JCh0aGlzKS5yZXF1aXJlKCkudmFsaWRhdGVQaG9uZSgpfSk7Yy5maWx0ZXIoIi5waG9uZTpub3QoLnJlcXVpcmVkLXBob25lKSIpLmVhY2goKGwsbik9PnskKG4pLnZhbGlkYXRlUGhvbmUoKX0pO2U9JCgiI3Bob25lMSwjcGhvbmUyLCNwaG9uZTMiLGEpLmZpbHRlcigiOnZpc2libGUiKTtpZigwPGUubGVuZ3RoKXt2YXIgZCxmO2xldCBsLG47MDwoZVswXS52YWx1ZSsobnVsbCE9KGw9bnVsbD09KGQ9ZVsxXSk\/dm9pZCAwOmQudmFsdWUpP2w6IiIpKyhudWxsIT0obj1udWxsPT0oZj1lWzJdKT92b2lkIDA6Zi52YWx1ZSk\/bjoiIikpLmxlbmd0aCYmJChlKS52YWxpZGF0ZVBob25lKCl9Yy5maWx0ZXIoIi56aXAiKS5lYWNoKGZ1bmN0aW9uKCl7KCQodGhpcykuaXMoIi5yZXF1aXJlZCIpfHwwIT0kKHRoaXMpLnZhbCgpLmxlbmd0aCkmJiQodGhpcykucmVxdWlyZVBvc3RhbENvZGUoKX0pOzE9PSQoIi52aW4iKS5sZW5ndGgmJgooJCgiLnZpbiIpLmlzKCIucmVxdWlyZWQiKSYmJCgiLnZpbiIpLnJlcXVpcmUoKS5ub25IdG1sKCksMDwkKCIudmluIikudmFsKCkubGVuZ3RoJiYkKCIudmluIikubWluTGVuZ3RoKDE3KSk7MT09JCgiLnZpbkV4IikubGVuZ3RoJiYoJCgiLnZpbkV4IikuaXMoIi5yZXF1aXJlZCIpJiYkKCIudmluRXgiKS5yZXF1aXJlKCkubm9uSHRtbCgpLDA8JCgiLnZpbkV4IikudmFsKCkubGVuZ3RoJiYkKCIudmluRXgiKS5taW5MZW5ndGgoMTcpKTtjLmZpbHRlcigiLmVtYWlsIikuZWFjaChmdW5jdGlvbigpeygkKHRoaXMpLmlzKCIucmVxdWlyZWQiKXx8MCE9JCh0aGlzKS52YWwoKS5sZW5ndGgpJiYkKHRoaXMpLnZhbGlkRW1haWxBZGRyZXNzKCl9KTskKGEpLmZpbmQoIi52YWxpZGF0ZS1ncm91cCIpLmVhY2goZnVuY3Rpb24oKXt2YXIgbD0kKHRoaXMpLnZhbCgpOyQobCxhKS52YWxpZEFsbG9yTm9uZSgpfSk7Yy5maWx0ZXIoIi51cGxvYWQiKS5lYWNoKGZ1bmN0aW9uKCl7ISQodGhpcykuaXMoIi5yZXF1aXJlZCIpJiYKMD09JCh0aGlzKS52YWwoKS5sZW5ndGh8fCIiIT0kKHRoaXMpLnZhbCgpfHwoJCgiI3VwbG9hZFN0YXR1cyIpLmNzcygiY29sb3IiLCJyZWQiKSwkKCIjdXBsb2FkU3RhdHVzIikuaHRtbCgkKCIjZmlsZVVwbG9hZFJlcXVlc3QiKS52YWwoKSksJCgiI3VwbG9hZFN0YXR1cyIpLnNob3coKSl9KTtkPSQudmFsaWRpdHkucmVwb3J0LmVycm9yczskKCIjZW1haWwiKS5tYXRjaCgiZW1haWwiKTskLnZhbGlkaXR5LnJlcG9ydC5lcnJvcnM+ZCYmKGY9JCgiI01pc3NpbmdWYWxpZGF0aW9uTXNnIikudGV4dCgpKyIuPGJyLz4iKyQoIiNlbWFpbEVycm9yTXNnIiwiI3VzZXJJbmZvRm9ybSIpLnZhbCgpKyIuIiwwPT1kJiYoZj0kKCIjZW1haWxFcnJvck1zZyIsIiN1c2VySW5mb0Zvcm0iKS52YWwoKSksJCgiI01pc3NpbmdWYWxpZGF0aW9uTXNnIikuaHRtbChmKSk7InVuZGVmaW5lZCIhPXR5cGVvZiBtYWlsVXNlckluZm8mJiJmdW5jdGlvbiI9PXR5cGVvZiBtYWlsVXNlckluZm8uYWRkZWRWYWxpZGF0aW9uJiYKbWFpbFVzZXJJbmZvLmFkZGVkVmFsaWRhdGlvbihhKTskLnZhbGlkaXR5LmVuZCgpLnZhbGlkP2c9ITA6KCQoIiNNaXNzaW5nVmFsaWRhdGlvbk1zZyIpLnNob3coKSwkKCIjTWlzc2luZ1ZhbGlkYXRpb25Nc2ciKS5jZW50ZXIoKSwkKGRvY3VtZW50KS5vbmUoIm1vdXNlZG93biIsZnVuY3Rpb24obCl7JC52YWxpZGl0eS5jbGVhcigpOyQoIiNNaXNzaW5nVmFsaWRhdGlvbk1zZyIpLmhpZGUoKTskKCIjTWlzc2luZ1ZhbGlkYXRpb25Nc2ciKS5odG1sKGspfSkpO3JldHVybiBnfX07dmFyIG1haWxQYWdlPW5ldyBHZW5lcmljTWFpbDsKJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKXswPCQoIiN0b3Bpc21vYmlsZSIpLmxlbmd0aCYmMTwkKCIjdG9waXNtb2JpbGUiKS52YWwoKSYmKG1haWxQYWdlLmpxU2NvcGU9Ii5uZXctZGV0YWlscyIpOyQoIiNzZW5kRW1haWxGb3JtIGJ1dHRvbiIpLm9uKCJjbGljayB0YXAiLG1haWxQYWdlLnNhdmUpOyQoIiNzZW5kRW1haWxGb3JtU3VibWl0Iikub24oImNsaWNrIHRhcCIsbWFpbFBhZ2Uuc2F2ZSk7bWFpbFBhZ2UubWFpbElEPSQoIiN0ZXh0U2F2ZU1haWxJRCIpLnZhbCgpOyQudmFsaWRpdHkuc2V0dXAoe291dHB1dE1vZGU6InN1bW1hcnkiLHNjcm9sbFRvOiExfSk7alF1ZXJ5LmZuLmNlbnRlcj1mdW5jdGlvbigpeyQoImlzbW9iaWxlIikmJjA8JCgiI3NlbmRFbWFpbEZvcm1TdWJtaXQiKS5sZW5ndGg\/dGhpcy5jc3Moe3Bvc2l0aW9uOiJhYnNvbHV0ZSIsbGVmdDooJCh3aW5kb3cpLndpZHRoKCktJCgiI01pc3NpbmdWYWxpZGF0aW9uTXNnIikub3V0ZXJXaWR0aCgpKS8yLAp0b3A6JCgiI3NlbmRFbWFpbEZvcm1TdWJtaXQiKS5wb3NpdGlvbigpLnRvcC0xMH0pOnRoaXMuY3NzKHtwb3NpdGlvbjoiYWJzb2x1dGUiLGxlZnQ6KCQod2luZG93KS53aWR0aCgpLSQoIiNjb250YWluZXIiKS5vdXRlcldpZHRoKCkpLzIsdG9wOigkKHdpbmRvdykuaGVpZ2h0KCktJCgiI2NvbnRhaW5lciIpLm91dGVySGVpZ2h0KCkpLzJ9KTtyZXR1cm4gdGhpc307InVuZGVmaW5lZCIhPXR5cGVvZiBtYWlsUGFnZS5tYWlsSUQmJmVtYWlsSGFuZGxlci5sb2dGb3JtUmVxdWVzdCgiRm9ybUxvYWRlZCIsbWFpbFBhZ2UubWFpbElEKX0pOwovKiogL20vanMvcG9wdXBpemVyLmpzICoqLwp2YXIgX19fZDJjX3BvcHVwaXplcmpzX2Nfb249IjIwMjYtMDEtMTMgMTY6MzA6MDYiOyd1c2Ugc3RyaWN0Jztpc1NjcmF0Y2hBbmRTYXZlPSJ1bmRlZmluZWQiPT10eXBlb2YgaXNTY3JhdGNoQW5kU2F2ZT8iIjppc1NjcmF0Y2hBbmRTYXZlO3BvcHVwV2lkZ2V0X3BhZ2VWaWV3c0luY3JlbWVudGVkPSJ1bmRlZmluZWQiPT10eXBlb2YgcG9wdXBXaWRnZXRfcGFnZVZpZXdzSW5jcmVtZW50ZWQ\/IiI6cG9wdXBXaWRnZXRfcGFnZVZpZXdzSW5jcmVtZW50ZWQ7c2hvd1BvcHVwV2lkZ2V0PSJmdW5jdGlvbiIhPXR5cGVvZiBzaG93UG9wdXBXaWRnZXQ\/ZnVuY3Rpb24oKXt9OnNob3dQb3B1cFdpZGdldDthY3RpdmF0ZVBvcHVwQmVmb3JlTG9hZD0iZnVuY3Rpb24iIT10eXBlb2YgYWN0aXZhdGVQb3B1cEJlZm9yZUxvYWQ\/ZnVuY3Rpb24oKXt9OmFjdGl2YXRlUG9wdXBCZWZvcmVMb2FkOwp2YXIgcG9wdXBJc1N1Ym1pdHRpbmc9ITEsQ1BvcHVwU3VwZXJ2aXNvcj1mdW5jdGlvbigpe3ZhciBjPXRoaXM7Yy5vbmxvYWRRdWV1ZT1bXTtjLmluZGV4PTA7Yy5pc0FuaW1hdGluZz0hMTtjLnBvcHVwcz1bXTtjLnJlZ2lzdGVyPWZ1bmN0aW9uKGEpe3ZhciBrPTA7MDxOdW1iZXIoYS5zZXR0aW5ncy5zaG93b25sb2FkKSYmITAhPT1hLnNldHRpbmdzLnNob3dvbmxvYWQmJihrPWEuc2V0dGluZ3Muc2hvd29ubG9hZCk7dmFyIGI9MTsxPGEuc2V0dGluZ3MucHJpb3JpdHkmJihiPWEuc2V0dGluZ3MucHJpb3JpdHkpOzEhPUNvb2tpZXMuZ2V0KCJub3VzZWRjdGEiKXx8InVzZWRjYXJzLmh0bWwiIT0kKCIjUEFHRUlEIikudmFsKCkmJiJjYXJkZXRhaWwuaHRtbCIhPSQoIiNQQUdFSUQiKS52YWwoKT9jLm9ubG9hZFF1ZXVlLnB1c2goe3BvcHVwOmEsZGVsYXk6ayxwcmlvcml0eTpifSk6Y29uc29sZS5sb2coIk5vdCBzaG93aW5nIHBvcHVwIG9ubG9hZCwgYmVjYXVzZSBpdHMgYSB1c2VkIHBhZ2UgYW5kIHRoZSBjb29raWUgbm91c2VkY3RhIGlzIHNldCIpfTsKYy5yZXBvc2l0aW9uPWZ1bmN0aW9uKCl7aWYoIShwb3B1cGl6ZXJBY3RpdmUoKXx8InVuZGVmaW5lZCIhPXR5cGVvZiBtb2RlbENvbmZpZyYmbW9kZWxDb25maWcuaXNBY3RpdmUmJm1vZGVsQ29uZmlnLmlzQWN0aXZlKCkpKXJldHVybiAkKCJib2R5IikuY3NzKCJvdmVyZmxvdyIsImF1dG8iKSwhMTtpZihjLmlzQW5pbWF0aW5nKXJldHVybiExO3ZhciBhPSJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93LmlubmVySGVpZ2h0P3dpbmRvdy5pbm5lckhlaWdodDokKHdpbmRvdykuaGVpZ2h0KCksaz0kKGRvY3VtZW50KS5zY3JvbGxUb3AoKSxiPS9Nb2JpLy50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpPzU6MjA7JCgiLnJldmVhbC1tb2RhbCIpLmVhY2goZnVuY3Rpb24oZCxmKXtkPSQodGhpcyk7aWYoInZpc2libGUiPT1kLmNzcygidmlzaWJpbGl0eSIpKXtmPWQub2Zmc2V0KCkudG9wO3ZhciBoPWQub3V0ZXJIZWlnaHQoKSxsPWYraDtpZihhPGgrYnx8bmF2aWdhdG9yLnVzZXJBZ2VudC5tYXRjaCgvKGlQaG9uZXxpUG9kKS9nKSl7aWYoJCgiYm9keSIpLmNzcygib3ZlcmZsb3ciLAoiYXV0byIpLGs+bHx8aythPGYpZj1rK2IsYy5pc0FuaW1hdGluZz0hMCxkLmFuaW1hdGUoe3RvcDpmKyJweCJ9LDIwMCxmdW5jdGlvbigpe2MuaXNBbmltYXRpbmc9ITF9KX1lbHNlIGY9aysoYS1oKS8yLGY9ZjxiP2I6ZixjLmlzQW5pbWF0aW5nPSEwLGQuYW5pbWF0ZSh7dG9wOmYrInB4In0sMjAwLGZ1bmN0aW9uKCl7Yy5pc0FuaW1hdGluZz0hMX0pfX0pfTtjLnNob3c9ZnVuY3Rpb24oKXtpZighKDA8JCgiI2Rpc2FibGVQb3B1cHMiKS5sZW5ndGgmJiIxIj09JCgiI2Rpc2FibGVQb3B1cHMiKS52YWwoKSkmJihjLm9ubG9hZFF1ZXVlLnNvcnQoZnVuY3Rpb24oYSxrKXtpZihhLnByaW9yaXR5PmsucHJpb3JpdHkpcmV0dXJuIDE7aWYoYS5wcmlvcml0eTxrLnByaW9yaXR5KXJldHVybi0xO2lmKGEucHJpb3JpdHk9PWsucHJpb3JpdHkpcmV0dXJuIGEuZGVsYXk8ay5kZWxheT8xOi0xfSksKCJCVUlMREFORFBSSUNFIiE9cGFnZXx8Ii0xIiE9d2luZG93LmxvY2F0aW9uLmhyZWYuaW5kZXhPZigic3RlcD1yZXN1bWUiKSkmJgowPGMub25sb2FkUXVldWUubGVuZ3RoKSl7Zm9yKGtleSBpbiBjLm9ubG9hZFF1ZXVlKWlmKDE9PWMub25sb2FkUXVldWVba2V5XS5wb3B1cC5zZXR0aW5ncy5lbmRQb3B1cFF1ZXVlKXJldHVybiBjLm9ubG9hZFF1ZXVlW2tleV0ucG9wdXAub3BlbihjLm9ubG9hZFF1ZXVlW2tleV0uZGVsYXkpLCExO2ZvcihrZXkgaW4gYy5vbmxvYWRRdWV1ZSljLm9ubG9hZFF1ZXVlW2tleV0ucG9wdXAub3BlbihjLm9ubG9hZFF1ZXVlW2tleV0uZGVsYXkpfX07dmFyIG09ZnVuY3Rpb24oKXtpZihwb3B1cGl6ZXJBY3RpdmUoKSlyZXR1cm4gc2V0VGltZW91dChtLDUwMCksITE7c2V0VGltZW91dChmdW5jdGlvbigpe2lmKHBvcHVwaXplckFjdGl2ZSgpKXJldHVybiBtKCk7JC5wb3N0TWVzc2FnZSgiY2xvc2VQb3B1cCIsIioiLHdpbmRvdy5wYXJlbnQpfSwxRTMpfTtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7MDwkKCIjYXV0b2F1YmFpbmVfcG9wdXAiKS5sZW5ndGgmJiJmYWxzZSIhPSQoIiNhdXRvYXViYWluZV9wb3B1cCIpLnZhbCgpJiYKbSgpfSw1RTMpfSxwb3B1cFN1cGVydmlzb3I9bmV3IENQb3B1cFN1cGVydmlzb3IscG9wdXBpemVyQWN0aXZlPWZ1bmN0aW9uKCl7aWYocG9wdXBpemVyQ29uZmlnLnBvcHVwT3BlbilyZXR1cm4hMDt2YXIgYz0hMTskKCIucmV2ZWFsLW1vZGFsLCAucmV2ZWFsLW1vZGVsLWRvLW5vdC1zaG93IikuZWFjaChmdW5jdGlvbigpe2lmKDEhPWMpe3ZhciBtPSQodGhpcyk7aWYoIW0uaXMoIjpoaWRkZW4iKSlzd2l0Y2gobS5jc3MoInZpc2liaWxpdHkiKSl7Y2FzZSAidW5kZWZpbmVkIjpjYXNlICJ2aXNpYmxlIjpjPSEwfX19KTtpZigkKCIucHBfb3ZlcmxheSIpLmlzKCI6dmlzaWJsZSIpfHxkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIubW9kYWwtb3ZlcmxheSIpKWM9ITA7cmV0dXJuIGN9LHBvcHVwaXplckNvbmZpZz17fTskLmV4dGVuZCghMCxwb3B1cGl6ZXJDb25maWcse3BvcHVwT3BlbjohMX0pOwp2YXIgcG9wdXBpemVyPWZ1bmN0aW9uKGMsbSl7dmFyIGE9dGhpcyxrPSJhdXRvIjtjP2EudGFyZ2V0PWM6Yz1hLnRhcmdldDthLnNldHRpbmdzPW07YS5zZXRUcmlnZ2VyPWZ1bmN0aW9uKGIpe2s9InN0cmluZyI9PXR5cGVvZiBiJiYiY2xpY2siPT1iLnRvTG93ZXJDYXNlKCk\/ImNsaWNrIjoiYXV0byI7YS5zZXR0aW5ncy50cmlnZ2VyPWs7cmV0dXJuIGF9O2EuaW5pdD1mdW5jdGlvbigpe3ZhciBiPSJmdW5jdGlvbiI9PXR5cGVvZiBhLnNldHRpbmdzLm9uQmVmb3JlSW5pdGlhbGl6ZSxkPSJmdW5jdGlvbiI9PXR5cGVvZiBhLnNldHRpbmdzLm9uQWZ0ZXJJbml0aWFsaXplO2lmKGEuaXNDb250ZW50TG9hZGVkKCl8fCFiJiYhZCl7aWYoYil7dmFyIGY9YS5zZXR0aW5ncy5vbkJlZm9yZUluaXRpYWxpemUuY2FsbChjLGEpO2lmKDA9PWYpcmV0dXJufWI9ITE7aWYoYS5zZXR0aW5ncy50aHJlc2hvbGQmJmEuc2V0dGluZ3MubWFpbnBvcHVwKXthLnNldHRpbmdzLnNob3dvbmxvYWQ9ITE7CmlmKCJmdW5jdGlvbiI9PXR5cGVvZiBhLnNldHRpbmdzLm9uQWZ0ZXJJbml0aWFsaXplJiYoYj0hMCxmPWEuc2V0dGluZ3Mub25BZnRlckluaXRpYWxpemUuY2FsbChjLGEpLDA9PWYpKXthLnNhdmVTZXR0aW5ncygpO3JldHVybn10aHJlc2hvbGRFeGVjKGEuc2V0dGluZ3MudGhyZXNob2xkVmFsdWUvMTAwLGEuZXhlY09wZW4pfWlmKGEuc2V0dGluZ3Muc2Nyb2xsdXAmJmEuc2V0dGluZ3MubWFpbnBvcHVwKXthLnNldHRpbmdzLnNob3dvbmxvYWQ9ITE7aWYoZCYmKGI9ITAsZj1hLnNldHRpbmdzLm9uQWZ0ZXJJbml0aWFsaXplLmNhbGwoYyxhKSwwPT1mKSl7YS5zYXZlU2V0dGluZ3MoKTtyZXR1cm59c2Nyb2xsdXBFeGVjKGEuZXhlY09wZW4pfWMuYWRkQ2xhc3MoInJldmVhbC1tb2RhbCIpOyJ1bmRlZmluZWQiIT10eXBlb2YgYS5zZXR0aW5ncy5hZGRlZENsYXNzZXMmJjA8YS5zZXR0aW5ncy5hZGRlZENsYXNzZXMubGVuZ3RoJiZjLmFkZENsYXNzKGEuc2V0dGluZ3MuYWRkZWRDbGFzc2VzKTsKJCgiZm9ybSIsYykub24oInN1Ym1pdCIsYS5zdWJtaXQpO2Y9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIik7YS5zZXR0aW5ncy5hbmltYXRpb24mJmYuZ2V0Q29udGV4dCYmKCJ1bmRlZmluZWQiIT10eXBlb2YgYS5zZXR0aW5ncy5hbmltYXRpb24uZWZmZWN0JiYoYS5zZXR0aW5ncy5yZXZlYWwuYW5pbWF0aW9uPSJleHRlcm5hbEFuaW1hdGlvbiIsYy5hZGRDbGFzcyhhLnNldHRpbmdzLmFuaW1hdGlvbi5lZmZlY3QpKSwidW5kZWZpbmVkIiE9dHlwZW9mIGEuc2V0dGluZ3MuYW5pbWF0aW9uLnNwZWVkJiZjLmFkZENsYXNzKGEuc2V0dGluZ3MuYW5pbWF0aW9uLnNwZWVkKSk7YS5zZXR0aW5ncy5pbml0aWFsaXplZD0hMDtjLnRyaWdnZXIoInBvcHVwaXplci5pbml0aWFsaXplZCIsYSk7aWYoZCYmIWImJihmPWEuc2V0dGluZ3Mub25BZnRlckluaXRpYWxpemUuY2FsbChjLGEpLDA9PWYpKXthLnNhdmVTZXR0aW5ncygpO3JldHVybn1hLnNhdmVTZXR0aW5ncygpO2Q9JCgiI2hpZGRlblNraXBPbmxvYWRQcmludHNjcmVlbiIpOwppZigwPGQubGVuZ3RoJiYiRE9fU0tJUF9QT1BVUCI9PWQudmFsKCkpcmV0dXJuITE7IWEuc2V0dGluZ3Muc2hvd29ubG9hZHx8bnVsbCE9Q29va2llcy5nZXQoInBvcHVwRm9ybUZpbGxlZCIpfHxudWxsIT1Db29raWVzLmdldChhLnNldHRpbmdzLmNvb2tpZU5hbWUpfHwxIT1hLnNldHRpbmdzLmNsb3NlQnV0dG9uJiYwIT1hLnNldHRpbmdzLmNsb3NlQnV0dG9ufHwoLTEhPXdpbmRvdy5sb2NhdGlvbi5ocmVmLmluZGV4T2YoIi9yZXF1ZXN0LyIpfHwtMSE9d2luZG93LmxvY2F0aW9uLmhyZWYuaW5kZXhPZigiL2RlbWFuZGVzLyIpKSYmLTE9PWEuc2V0dGluZ3MubmFtZS5pbmRleE9mKCJpbWFnZVBvcHVwIil8fHBvcHVwU3VwZXJ2aXNvci5yZWdpc3RlcihhKTskKGRvY3VtZW50KS5vZmYoImNsaWNrIiwiLiIrbS5yZXZlYWwuZGlzbWlzc21vZGFsY2xhc3MpLm9uKCJjbGljayIsIi4iK20ucmV2ZWFsLmRpc21pc3Ntb2RhbGNsYXNzLGZ1bmN0aW9uKGgpe2MudHJpZ2dlcigicG9wdXBpemVyLmNsb3NlIiwKYyl9KTskKGRvY3VtZW50KS5vZmYoImtleXVwIikub24oImtleXVwIixmdW5jdGlvbihoKXsyNz09PWgud2hpY2gmJmMudHJpZ2dlcigicG9wdXBpemVyLmNsb3NlIixjKX0pOyJ1bmRlZmluZWQiIT09dHlwZW9mIGEuc2V0dGluZ3MuZm9ybS5mcm9tQUEmJihlbWFpbEhhbmRsZXIuZnJvbUFBPWEuc2V0dGluZ3MuZm9ybS5mcm9tQUEpO3JldHVybiBhfWEubG9hZChhLmluaXQpfTthLm9uT3Blbj1mdW5jdGlvbigpe2EuaXNDb250ZW50TG9hZGVkKCl8fGEubG9hZCgpO2lmKCJhdXRvIj09ayYmbnVsbCE9Q29va2llcy5nZXQoYS5zZXR0aW5ncy5jb29raWVOYW1lKSlyZXR1cm4hMTtjLmZpbmQoIi5wb3B1cGl6ZXJCb2R5Iikuc2hvdygpO2lmKG51bGwhPUNvb2tpZXMuZ2V0KCJwb3B1cEZvcm1GaWxsZWQiKXx8bnVsbCE9Q29va2llcy5nZXQoYS5zZXR0aW5ncy5jb29raWVOYW1lKSljLmZpbmQoIi5jbG9zZS1yZXZlYWwtbW9kYWwiKS5yZW1vdmVDbGFzcygibW9kYWwtY2xvc2UtaGlkZSIpLApjLmZpbmQoIi5jbG9zZS1yZXZlYWwtbW9kYWwiKS5zaG93KCk7YS5jcmVhdGVDb25maXJtRm9ybSgpO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBhLnNldHRpbmdzLm9uQmVmb3JlT3BlbiYmMD09YS5zZXR0aW5ncy5vbkJlZm9yZU9wZW4uY2FsbChjLGEpKXJldHVybiExO3ZhciBiPSIvcG9wdXAtIithLnRhcmdldC5maW5kKCIuZW1haWxTdWJqZWN0IikudGV4dCgpLnJlcGxhY2UoL1tcblxyXS9nLCIgIik7YS50YXJnZXQuZmluZCgiI2ltYWdlUG9wdXBMZWFkVHlwZSIpLmxlbmd0aCYmKGI9Ii9wb3B1cC0iK2EudGFyZ2V0LmZpbmQoIiNpbWFnZVBvcHVwTGVhZFR5cGUiKS5hdHRyKCJkYXRhLXRyYW5zbGF0ZWQiKS5yZXBsYWNlKC9bXG5ccl0vZywiICIpKTthLnRhcmdldC5maW5kKCIjcGF5bWVudENhbGN1bGF0b3JDb250YWluZXIiKS5sZW5ndGgmJihiPSQoImJvZHkiKS5oYXNDbGFzcygiRlJFTkNIIik\/Ii9uZXVmcy9jYWxjdWxhdHJpY2UtcHJldC1hdXRvLXBvcHVwLmh0bWwiOiIvbmV3L2Nhci1sb2FuLWNhbGN1bGF0b3ItcG9wdXAuaHRtbCIpOwpnYVBhZ2VWaWV3KGIpO2dhNFBhZ2VWaWV3KGIpO2EubG9nRXZlbnQoInBvcHVwLm9wZW4iKTsibGl2ZSI9PSQoIiN0b3BkZXBsb3ltZW50dHlwZSIpLnZhbCgpJiZnYVRyYWNrKCJjLl90cmFja0V2ZW50IiwiUG9wdXAtTGF1bmNoZWQiLGEuc2V0dGluZ3MubmFtZSx3aW5kb3cubG9jYXRpb24uaHJlZiwxKTthLnNldHRpbmdzLmNvdW50ZG93biYmYS5pbml0Q291bnRkb3duKCk7Yy5kYXRhKCJvcGVuIiwhMCk7cG9wdXBpemVyQ29uZmlnLnBvcHVwT3Blbj0hMDsib25PcGVuIj09YS5zZXR0aW5ncy5jb29raWVDcmVhdGUmJmEuc2V0Q29va2llKCk7Yj1jLmZpbmQoImZvcm0iKS5maXJzdCgpO2IuZmluZCgnaW5wdXQgW3R5cGU9InRleHQiXScpLmVhY2goZnVuY3Rpb24oKXskKHRoaXMpLm9mZigiZm9jdXMgYmx1ciBjaGFuZ2UiKS5jc3MoImNvbG9yIiwiIzAwMCIpOyQodGhpcykuYXR0cigicGxhY2Vob2xkZXIiLCQodGhpcykuYXR0cigiYWx0IikpfSk7dmFyIGQ9bmV3IEZvcm07ZC5tYXNrUGhvbmUoYy5maW5kKCJmb3JtIikuc2VsZWN0b3IrCiIgaW5wdXQucGhvbmUiKTtkLm1hc2tQaG9uZShjLmZpbmQoImZvcm0iKS5zZWxlY3RvcisiIGlucHV0Lm1vYmlsZSIpOzA8Yi5maW5kKCIucGhvbmUucmVxdWlyZWQiKS5sZW5ndGg\/ZW1haWxIYW5kbGVyLnBob25lTWFuZGF0b3J5PTE6ZW1haWxIYW5kbGVyLnBob25lTWFuZGF0b3J5PTA7YS5zZXR0aW5ncy5mb3JtLmVtYWlsaWQmJmVtYWlsSGFuZGxlci5sb2dGb3JtUmVxdWVzdCgiRm9ybUxvYWRlZCIsYS5zZXR0aW5ncy5mb3JtLmVtYWlsaWQsYS5zZXR0aW5ncy5mb3JtLm9mZmVydHlwZSk7YS5zZXR0aW5ncy5yZXZlYWwuY2xvc2VkPWEub25DbG9zZTtjLnJldmVhbChhLnNldHRpbmdzLnJldmVhbCk7JCgiI2Zsb2F0UHJvbW9Ub3BCdG5Db250YWluZXIiKS5oaWRlKCk7JCgiI2NvbnRhaW5lckZsQiIpLmhpZGUoKTskKCIjdG9hc3QtY29udGFpbmVyIikuaGlkZSgpOyQoIiNhbGVydE1zZ0NvbnRhaW5lciIpLmhpZGUoKTthLnNldHRpbmdzLmZvcm0uT0tCdXR0b25DbGFzcyYmKGI9CmEuc2V0dGluZ3MuZm9ybS5PS0J1dHRvbkNsYXNzLCIuIj09YlswXSYmKGI9Yi5zdWJzdHJpbmcoMSkpLCQoIi4iK2IsYykub2ZmKCJjbGljayIpLm9uKCJjbGljayIsYS5zdWJtaXQpKTthLnNldHRpbmdzLmZvcm0uQ2FuY2VsQnV0dG9uQ2xhc3MmJihiPWEuc2V0dGluZ3MuZm9ybS5DYW5jZWxCdXR0b25DbGFzcywiLiI9PWJbMF0mJihiPWIuc3Vic3RyaW5nKDEpKSwkKCIuIitiLGMpLm9mZigiY2xpY2siKS5vbigiY2xpY2siLGEuY2FuY2VsKSk7Yy50cmlnZ2VyKCJwb3B1cGl6ZXIub25PcGVuIixhKX07YS5vbkNsb3NlPWZ1bmN0aW9uKCl7Yy5kYXRhKCJvcGVuIiwhMSk7cG9wdXBpemVyQ29uZmlnLnBvcHVwT3Blbj0hMTthLnNldHRpbmdzLnN1Ym1pdHRlZHx8YS5sb2dFdmVudCgicG9wdXAuY2FuY2VsIik7c2V0VGltZW91dChmdW5jdGlvbigpeyQoIiN0b2FzdC1jb250YWluZXIiKS5zaG93KCl9LDUwMCk7c2V0VGltZW91dChmdW5jdGlvbigpeyQoIi5yZXZlYWwtbW9kYWwtYmciKS5sZW5ndGgmJgokKCIucmV2ZWFsLW1vZGFsLWJnIikucmVtb3ZlKCl9LDFFMyk7Yy50cmlnZ2VyKCJwb3B1cGl6ZXIub25DbG9zZSIsYSk7ImZ1bmN0aW9uIj09dHlwZW9mIGEuc2V0dGluZ3Mub25DbG9zZSYmYS5zZXR0aW5ncy5vbkNsb3NlLmNhbGwoYyxhKX07YS5zdWJtaXQ9ZnVuY3Rpb24oKXtpZihwb3B1cElzU3VibWl0dGluZylyZXR1cm4hMTtwb3B1cElzU3VibWl0dGluZz0hMDtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7cG9wdXBJc1N1Ym1pdHRpbmc9ITF9LDNFMyk7dmFyIGI9Yy5maW5kKCJmb3JtIikuZmlyc3QoKSxkPVtdLGY9IiIsaD0iIixsPVtdLHA9W10sZz0hMCx0PSIiLHo9IiIsQT0iIjtpZigiZnVuY3Rpb24iPT10eXBlb2YgYS5zZXR0aW5ncy5vbkJlZm9yZVZhbGlkYXRpb24pc3dpdGNoKGEuc2V0dGluZ3Mub25CZWZvcmVWYWxpZGF0aW9uLmNhbGwoYixjLGEpKXtjYXNlICExOmNhc2UgMDpyZXR1cm4gcG9wdXBJc1N1Ym1pdHRpbmc9ITE7Y2FzZSAtMTpnPSExfWlmKGcpeyQudmFsaWRpdHkuc2V0dXAoe291dHB1dE1vZGU6InBvcHVwIiwKc2Nyb2xsVG86ITF9KS5zdGFydCgpO2IuZmluZCgiaW5wdXQ6bm90KDpoaWRkZW4pLCB0ZXh0YXJlYSIpLm5vbkh0bWwoKTtiLmZpbmQoImlucHV0LnJlcXVpcmVkLCBzZWxlY3QucmVxdWlyZWQsIHRleHRhcmVhLnJlcXVpcmVkIikucmVxdWlyZSgpO3ZhciB2PSExLEI9ITEsdz0hMTtiLmZpbmQoImlucHV0IikuZmlsdGVyKCIucmVxUmFkaW8iKS5yYWRpb09wdGlvbkNob3NlbigpO2IuZmluZCgiaW5wdXQiKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIGU9JCh0aGlzKTtlLmhhc0NsYXNzKCJlbWFpbCIpJiYoZS5oYXNDbGFzcygicmVxdWlyZWQiKXx8MDxlLnZhbCgpLmxlbmd0aCkmJih3PSEwKTtpZihlLmhhc0NsYXNzKCJwaG9uZSIpfHxlLmhhc0NsYXNzKCJtb2JpbGUiKSlpZihCPSEwLGUuaGFzQ2xhc3MoInJlcXVpcmVkIil8fDA8ZS52YWwoKS5sZW5ndGgpdj0hMH0pOzA9PXYmJjA9PXcmJihCP3Y9ITA6dz0hMCk7Yi5maW5kKCJpbnB1dCIpLmVhY2goZnVuY3Rpb24oKXt2YXIgZT0kKHRoaXMpOwplLmhhc0NsYXNzKCJlbWFpbCIpJiZlLnZhbGlkRW1haWxBZGRyZXNzKCk7ZS5oYXNDbGFzcygicGhvbmUiKSYmZS52YWxpZGF0ZVBob25lKCk7ZS5oYXNDbGFzcygibW9iaWxlIikmJmUudmFsaWRhdGVNb2JpbGUoKX0pOzE+Yy5maW5kKCIuTWlzc2luZ1ZhbGlkYXRpb25Nc2ciKS5sZW5ndGgmJmMuYXBwZW5kKCc8ZGl2IGNsYXNzPSJNaXNzaW5nVmFsaWRhdGlvbk1zZyI+PC9kaXY+Jyk7aWYoISQudmFsaWRpdHkuZW5kKCkudmFsaWQpcmV0dXJuICQoIi5NaXNzaW5nVmFsaWRhdGlvbk1zZyIsYykuc2hvdygpLCQoZG9jdW1lbnQpLm9uKCJtb3VzZWRvd24iLGZ1bmN0aW9uKGUpeyQoIi5NaXNzaW5nVmFsaWRhdGlvbk1zZyIsYykuaGlkZSgpOyQodGhpcykub2ZmKGUpfSksYS5sb2dFdmVudCgicG9wdXAudmFsaWRhdGlvbkZhaWxlZCIpLHBvcHVwSXNTdWJtaXR0aW5nPSExfWlmKCJmdW5jdGlvbiI9PXR5cGVvZiBhLnNldHRpbmdzLm9uQmVmb3Jlc3VibWl0KXtnPSEwO3RyeXtnPWEuc2V0dGluZ3Mub25CZWZvcmVzdWJtaXQuY2FsbChjLAphKX1jYXRjaChlKXtjb25zb2xlLmxvZygiT24gYmVmb3JlIHN1Ym1pdCBmYWlsZWQsIHJldHVybmluZyB0cnVlLiIsZSl9aWYoMD09ZylyZXR1cm4gYS5zZXR0aW5ncy5jbG9zZU9uU3VibWl0JiZhLmNsb3NlKCksITF9YS5sb2dFdmVudCgicG9wdXAuc3VibWl0Iik7Yi5maW5kKCJpbnB1dCIpLmVhY2goZnVuY3Rpb24oKXt2YXIgZT0kKHRoaXMpOyhlLmhhc0NsYXNzKCJlbWFpbCIpfHwiZW1haWwiPT09ZS5hdHRyKCJ0eXBlIikpJiZkLnB1c2goZS52YWwoKSk7ZS5oYXNDbGFzcygicG9zdGFsIikmJihmPWUudmFsKCkpO2UuaGFzQ2xhc3MoInRyYWRlaW4iKSYmKGg9ZS52YWwoKSk7KGUuaGFzQ2xhc3MoInBob25lIil8fGUuaGFzQ2xhc3MoIm1vYmlsZSIpfHwidGVsIj09PWUuYXR0cigidHlwZSIpKSYmcC5wdXNoKGUudmFsKCkpOyJ1bmRlZmluZWQiPT10eXBlb2YgZS5hdHRyKCJuYW1lIikmJmUuYXR0cigibmFtZSIsIiIpOyhlLmhhc0NsYXNzKCJuYW1lIil8fCJuYW1lIj09ZS5hdHRyKCJuYW1lIikudG9Mb3dlckNhc2UoKSkmJgpsLnB1c2goZS52YWwoKSk7KGUuaGFzQ2xhc3MoImZpcnN0bmFtZSIpfHwiZmlyc3RuYW1lIj09ZS5hdHRyKCJuYW1lIikudG9Mb3dlckNhc2UoKSkmJmwudW5zaGlmdChlLnZhbCgpKTsoZS5oYXNDbGFzcygibGFzdG5hbWUiKXx8Imxhc3RuYW1lIj09ZS5hdHRyKCJuYW1lIikudG9Mb3dlckNhc2UoKSkmJmwucHVzaChlLnZhbCgpKTtpZihlLmhhc0NsYXNzKCJjb21tZW50Iil8fCJjb21tZW50Ij09ZS5hdHRyKCJuYW1lIikudG9Mb3dlckNhc2UoKSl0PWUudmFsKCk7aWYoZS5oYXNDbGFzcygiYWRkcmVzcyIpfHwiYWRkcmVzcyI9PWUuYXR0cigibmFtZSIpLnRvTG93ZXJDYXNlKCkpej1lLnZhbCgpO2lmKGUuaGFzQ2xhc3MoImJpcnRoZGF0ZSIpfHwiYmlydGhkYXRlIj09ZS5hdHRyKCJuYW1lIikudG9Mb3dlckNhc2UoKSlBPWUudmFsKCl9KTtnPWIuc2VyaWFsaXplQXJyYXkoKTt2YXIgeD0kKCIuZW1haWxCb2R5IixjKS5odG1sKCkrIiIsdT0kKCIuZW1haWxTdWJqZWN0IixjKS5odG1sKCkrCiIiOyJQcmljZVZlaGljbGUiPT1hLnNldHRpbmdzLmZvcm0uZW1haWxpZCYmMD09Yi5maW5kKCJbbmFtZT1ub0NCQl0iKS52YWwoKSYmIlNNUyI9PWIuZmluZCgiI3RyYWRlSW5CYXJTbXNPckVtYWlsU21zOmNoZWNrZWQiKS52YWwoKSYmKHUrPSIgKFNNUykiKTt2YXIgcT1bXTtbXS5wdXNoLmFwcGx5KHEsZyk7W10ucHVzaC5hcHBseShxLGEuZ2xvYmFsUmVwbGFjZW1lbnRzKCkpOyQuZWFjaChxLGZ1bmN0aW9uKCl7dmFyIGU9bmV3IFJlZ0V4cCgie1xcJCIrdGhpcy5uYW1lLnRvVXBwZXJDYXNlKCkrIn0iLCJnIiksbj10aGlzLnZhbHVlOyJTRUFSQ0hFRFZFSElDTEUiPT10aGlzLm5hbWUudG9VcHBlckNhc2UoKSYmKG49IjxzcGFuIGlkPSdwaFNFQVJDSFZFSElDTEUnPiIrbisiPC9zcGFuPiIpO3g9eC5yZXBsYWNlKGUsbik7dT11LnJlcGxhY2UoZSx0aGlzLnZhbHVlKX0pO2c9e3NlbmRUbzphLnNldHRpbmdzLmZvcm0uc2VuZFRvLHNlbmRUb0FERkZvcm1hdDphLnNldHRpbmdzLmZvcm0uc2VuZFRvQURGLApjb25kaXRpb246YS5zZXR0aW5ncy52ZWhpY2xlU3RhdGUsbWFpbElEOmEuc2V0dGluZ3MuZm9ybS5lbWFpbGlkLHN1YmplY3Q6dSxib2R5OngsdXNlclBvc3RhbDpmLGFkZHJlc3M6eixiaXJ0aGRhdGU6QSx0cmFkZWluOmgscG9wdXBkaXY6IiIsdXNlckVtYWlsOmQuam9pbigiOyIpLHVzZXJOYW1lOmwuam9pbigiICIpLHVzZXJQaG9uZTpwLmpvaW4oIiwiKSxzbXM6YS5zZXR0aW5ncy5mb3JtLnNtcyxwb3B1cE9mZmVyVHlwZTphLnNldHRpbmdzLmZvcm0ub2ZmZXJ0eXBlLGNvbW1lbnRzOnR9OyQuZXh0ZW5kKCEwLGVtYWlsSGFuZGxlcixnKTsic3RyaW5nIj09dHlwZW9mIGVtYWlsSGFuZGxlci51c2VyTmFtZSYmKGc9ZW1haWxIYW5kbGVyLnVzZXJOYW1lLnNwbGl0KCIgIiksZW1haWxIYW5kbGVyLnVzZXJGaXJzdE5hbWU9Zy5zaGlmdCgpLGVtYWlsSGFuZGxlci51c2VyTGFzdE5hbWU9Zy5qb2luKCIgIikpO2VtYWlsSGFuZGxlci5wb3B1cGRpdj1hLnRhcmdldC5hdHRyKCJpZCIpOwppZihhLnNldHRpbmdzLmZpbGxmbGFnKXZhciBDPWZ1bmN0aW9uKCl7Q29va2llcy5zZXQoInBvcHVwRm9ybUZpbGxlZCIsIjEiLDkwLCIvIik7Yy50cmlnZ2VyKCJwb3B1cGl6ZXIuZm9ybUZpbGxlZCIsYSl9O2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBlbWFpbEhhbmRsZXIuY2FsbGJhY2smJjA8ZW1haWxIYW5kbGVyLmNhbGxiYWNrLmxlbmd0aCl2YXIgRD1lbWFpbEhhbmRsZXIuY2FsbGJhY2s7dmFyIEU9ZnVuY3Rpb24oKXtyZXR1cm4hMH07ImZ1bmN0aW9uIj09dHlwZW9mIGEuc2V0dGluZ3Mub25BZnRlcnN1Ym1pdCYmKEU9YS5zZXR0aW5ncy5vbkFmdGVyc3VibWl0KTtlbWFpbEhhbmRsZXIub25CZWZvcmVTaG93Q29uc2VudD1mdW5jdGlvbigpe2MuY3NzKHtvcGFjaXR5OjEsdmlzaWJpbGl0eToiaGlkZGVuIn0pO2VtYWlsSGFuZGxlci5vbkJlZm9yZVNob3dDb25zZW50PSExfTtlbWFpbEhhbmRsZXIub25BZnRlckNvbnNlbnQ9ZnVuY3Rpb24oZSl7YS5zZXR0aW5ncy5jbG9zZU9uU3VibWl0PwphLmNsb3NlKCk6Yy5yZXZlYWwoYS5zZXR0aW5ncy5yZXZlYWwpO2VtYWlsSGFuZGxlci5vbkJlZm9yZVNob3dDb25zZW50PSExO2VtYWlsSGFuZGxlci5vbkFmdGVyQ29uc2VudD0hMX07ZW1haWxIYW5kbGVyLm9uRHVwbGljYXRlU2VuZD1mdW5jdGlvbigpe2Euc2V0dGluZ3MuY2xvc2VPblN1Ym1pdCYmYS5jbG9zZSgpO2VtYWlsSGFuZGxlci5yZXNldENhbGxiYWNrcygpfTtlbWFpbEhhbmRsZXIuY2FsbGJhY2s9ZnVuY3Rpb24oZSl7dmFyIG49ITE7YS5zZXR0aW5ncy5mb3JtLnNob3dFbWFpbENvbmZpcm1hdGlvbiYmKG49Z2V0TWFpbFNlbnRIYW5kbGVyKCJfIitjLmF0dHIoImlkIikpLG4udGltZW91dENhbGxiYWNrPWZ1bmN0aW9uKCl7Yi50cmlnZ2VyKCJyZXNldCIpfSk7dmFyIEY9YS5zZXR0aW5ncy5jbG9zZU9uU3VibWl0O2lmKGUpYS5sb2dFdmVudCgicG9wdXAubGVhZF9zZW50IiksMD09RS5jYWxsKGMsYSkmJihGPSExKSwiZnVuY3Rpb24iPT10eXBlb2YgQyYmQygpLCJmdW5jdGlvbiI9PQp0eXBlb2YgRCYmRCgpLCJvblN1Ym1pdCI9PWEuc2V0dGluZ3MuY29va2llQ3JlYXRlJiZhLnNldENvb2tpZSgpLEYmJiJoaWRkZW4iIT1jLmNzcygidmlzaWJpbGl0eSIpJiZhLmNsb3NlKCJDT05TRU5UIiksYS5zZXR0aW5ncy5tYWlucG9wdXAmJihlbWFpbEhhbmRsZXIubWFpblByb21vPSEwKSxuP24uc2hvd1N1Y2Nlc3MoKTowPCQoImZvcm0jIitjLmF0dHIoImlkIikrIl9jb25maXJtIikubGVuZ3RoJiYkKCJmb3JtIyIrYy5hdHRyKCJpZCIpKyJfY29uZmlybSIpLnRyaWdnZXIoInN1Ym1pdCIpO2Vsc2V7bnx8KG49Z2V0TWFpbFNlbnRIYW5kbGVyKCkpO3RyeXtuLnNob3dGYWlsKCl9Y2F0Y2goRyl7fX1zZXRUaW1lb3V0KGVtYWlsSGFuZGxlci5yZXNldENhbGxiYWNrcygpLDFFMyl9O2Euc2F2ZVNldHRpbmdzKHtzdWJtaXR0ZWQ6ITB9KTtpZigiZnVuY3Rpb24iPT10eXBlb2YgYS5zZXR0aW5ncy5vbkJlZm9yZVNlbmRNYWlsJiYwPT1hLnNldHRpbmdzLm9uQmVmb3JlU2VuZE1haWwuY2FsbChjLAphKSlyZXR1cm4hMTthLnNldERlZmF1bHRBREYoKTsiZnVuY3Rpb24iPT10eXBlb2YgYS5zZXR0aW5ncy5vbkFERiYmKGc9YS5zZXR0aW5ncy5vbkFERi5jYWxsKGMsYSksIm9iamVjdCI9PXR5cGVvZiBnJiYkLmV4dGVuZChhLnNldHRpbmdzLkFERixnKSk7Zz0ibWFrZSBtb2RlbCB5ZWFyIHN0b2NrTnVtYmVyIHRyaW0gdmluIHByaWNlIGNhcmlkIi5zcGxpdCgiICIpO3E9YS5zZXR0aW5ncy5BREY7Zm9yKHZhciB5PTA7eTxnLmxlbmd0aDt5Kyspe3ZhciByPWdbeV07ZW1haWxIYW5kbGVyW3JdPSIiIT1lbWFpbEhhbmRsZXJbcl0\/ZW1haWxIYW5kbGVyW3JdOnFbcl0\/cVtyXTplbWFpbEhhbmRsZXJbcl19ZW1haWxIYW5kbGVyLmJvZHk9YS5jbGVhbkJsYW5rVmFyaWFibGVzKGVtYWlsSGFuZGxlci5ib2R5KTthLnNob3dQdXJjaGFzZUludGVudFBvcHVwKCl8fGVtYWlsSGFuZGxlci5zZW5kTWFpbChhLnNldHRpbmdzLmJ5cGFzc0NvbnNlbnQpO3JldHVybiEwfTthLnNob3dQdXJjaGFzZUludGVudFBvcHVwPQpmdW5jdGlvbigpe2lmKGEuc2V0dGluZ3MucHVyY2hhc2VJbnRlbnRQb3B1cCl7dmFyIGI9JCgiI2ludGVyc3RpdGlhbFZlaGljbGVJbnRlbnQiKTtpZigxPmIubGVuZ3RofHxudWxsIT1Db29raWVzLmdldCgicHVyY2hhc2VfaW50ZW50IikpcmV0dXJuITE7Z2FUcmFjaygiX3RyYWNrRXZlbnQiLCJJbnRlbnRpb25zIGQnYWNoYXQiLCJQb3B1cCB2dXMiLGEuc2V0dGluZ3MuZ29vZ2xlVHJhY2tpbmcubGFiZWwsMSk7Yy5jc3Moe29wYWNpdHk6MSx2aXNpYmlsaXR5OiJoaWRkZW4ifSk7Yi5maW5kKCJmb3JtIikub24oInN1Ym1pdCIsZnVuY3Rpb24oKXt2YXIgZD0kKHRoaXMpLGY9ZC5maW5kKCJpbnB1dCIpOyQudmFsaWRpdHkuc2V0dXAoe291dHB1dE1vZGU6InBvcHVwIn0pLnN0YXJ0KCk7ZC5maW5kKCJpbnB1dDpub3QoOmhpZGRlbiksIHRleHRhcmVhIikubm9uSHRtbCgpO2YuZmlsdGVyKCIucmVxdWlyZWQiKS5yZXF1aXJlKCkubm9uSHRtbCgpO2YuZmlsdGVyKCIucmVxUmFkaW8iKS5yYWRpb09wdGlvbkNob3NlbigpOwppZigkLnZhbGlkaXR5LmVuZCgpLnZhbGlkKXtiLnRyaWdnZXIoInJldmVhbDpjbG9zZSIpO3ZhciBoPXtwdXJjaGFzZV9pbnRlbnQ6ITB9O2Quc2VyaWFsaXplQXJyYXkoKS5tYXAoZnVuY3Rpb24obCxwLGcpe2hbbC5uYW1lXT1sLnZhbHVlfSk7Q29va2llcy5zZXQoInB1cmNoYXNlX2ludGVudCIsaC5wdXJjaGFzZV9pbnRlbnQsMzAsIi8iKTtnYVRyYWNrKCJfdHJhY2tFdmVudCIsIkludGVudGlvbnMgZCdhY2hhdCIsIlJlcG9uc2VzIixoLnB1cmNoYXNlX2ludGVudCwxKTtlbWFpbEhhbmRsZXIuc2VuZE1haWwoYS5zZXR0aW5ncy5ieXBhc3NDb25zZW50KX1yZXR1cm4hMX0pO2IucmV2ZWFsKHtjbG9zZV9vbl9iYWNrZ3JvdW5kX2NsaWNrOiExLGRpc21pc3NfbW9kYWxfY2xhc3M6Il9fTlVMTF9fIn0pO3JldHVybiEwfXJldHVybiExfTthLmdsb2JhbFJlcGxhY2VtZW50cz1mdW5jdGlvbigpe3ZhciBiPVtdOyQoImlucHV0W3R5cGU9aGlkZGVuXSIpLmVhY2goZnVuY3Rpb24oKXt2YXIgZz0KJCh0aGlzKS5hdHRyKCJuYW1lIik7Zz0idW5kZWZpbmVkIiE9dHlwZW9mIGc\/ZzokKHRoaXMpLmF0dHIoImlkIik7aWYoIWcpcmV0dXJuITA7dmFyIHQ9ITE7ImVtYWlsYnVpbGRhbmRwcmljZSI9PWcudG9Mb3dlckNhc2UoKSYmIiI9PSQodGhpcykudmFsKCkucmVwbGFjZSgvIC9nLCIiKSYmKHQ9ITApO3R8fCgiYnJhbmQiPT1nLnRvTG93ZXJDYXNlKCkmJmIucHVzaCh7bmFtZToibWFrZSIsdmFsdWU6JCh0aGlzKS52YWwoKX0pLGIucHVzaCh7bmFtZTpnLHZhbHVlOiQodGhpcykudmFsKCl9KSl9KTt2YXIgZD0iIjtpZigwPCQoIiNsYXN0dmlld2VkbWFrZSIpLmxlbmd0aCYmMDwkKCIjbGFzdHZpZXdlZG1ha2UiKS52YWwoKS5sZW5ndGgpe3ZhciBmPSQoIiNsYXN0dmlld2Vkc3RvY2tudW1iZXIiKS52YWwoKTtkPSQoIiNsYXN0dmlld2VkbWFrZSIpLnZhbCgpO3ZhciBoPSQoIiNsYXN0dmlld2VkbW9kZWwiKS52YWwoKSxsPSQoIiNsYXN0dmlld2VkeWVhciIpLnZhbCgpLHA9JCgiI2xhc3R2aWV3ZWR0cmltIikudmFsKCl8fAoiIjtkPWQrIiAiK2grIiAiK2wrKHAubGVuZ3RoPyIgIitwOiIiKTtkKz0wPGYubGVuZ3RoPyIgKFN0b2NrIyAiK2YrIikiOiIifWIucHVzaCh7bmFtZToiTEFTVFZFSElDTEVWSUVXRUQiLHZhbHVlOmR9KTtyZXR1cm4gYn07YS5jbGVhbkJsYW5rVmFyaWFibGVzPWZ1bmN0aW9uKGIpe3ZhciBkPWIucmVwbGFjZSgve1wkUVVFU1RJT05TfS9nLCIiKS5yZXBsYWNlKC97XCRNRVNTQUdFfS9nLCIiKS5yZXBsYWNlKC97XCRFTUFJTFBIT05FfS9nLCIiKS5yZXBsYWNlKC97XCRFTUFJTE1BS0V9L2csIiIpLnJlcGxhY2UoL3tcJEVNQUlMTU9ERUx9L2csIiIpLnJlcGxhY2UoL3tcJEVNQUlMWUVBUn0vZywiIikucmVwbGFjZSgve1wkUEFZTUVOVH0vZywiIikucmVwbGFjZSgve1wkUEFZTUVOVFRFUk19L2csIiIpLnJlcGxhY2UoL3tcJE9GRkVSfS9nLCIiKS5yZXBsYWNlKC97XCRTVE9DS05VTUJFUn0vZywiIikucmVwbGFjZSgve1wkQ09MT1J9L2csIiIpLnJlcGxhY2UoL3tcJEZOQU1FfS9nLAoiIikucmVwbGFjZSgve1wkTE5BTUV9L2csIiIpLnJlcGxhY2UoL3tcJEVNQUlMfS9nLCIiKS5yZXBsYWNlKC97XCRVU0VSUEhPTkV9L2csIiIpO21haWxQYWdlJiZiLnJlcGxhY2UoL3tcJEVNQUlMQlVJTERBTkRQUklDRX0vZyxtYWlsUGFnZS5iYW5kcExpbmsoKSk7cmV0dXJuIGR9O2EuY2FuY2VsPWZ1bmN0aW9uKCl7YS5jbG9zZSgiQ0FOQ0VMIil9O2Eub3Blbj1mdW5jdGlvbihiKXtpZigxPT1jLmRhdGEoIm9wZW4iKSlyZXR1cm4hMTsib2JqZWN0Ij09dHlwZW9mIGImJi0xIT0iY2xpY2sgdGFwIi5pbmRleE9mKGIudHlwZS50b0xvd2VyQ2FzZSgpKSYmKGs9ImNsaWNrIik7aWYoIWlzTmFOKGIpKXJldHVybiBzZXRUaW1lb3V0KGEub3BlbiwxRTMqYik7aWYoIWEuaXNDb250ZW50TG9hZGVkKCkpcmV0dXJuIGEubG9hZChhLm9wZW4pO2lmKCJ1bmRlZmluZWQiIT09dHlwZW9mIHdpbmRvdy5uZXdWRFBWaWRlb0lzUGxheWluZyYmMT09d2luZG93Lm5ld1ZEUFZpZGVvSXNQbGF5aW5nJiYKImNsaWNrIiE9a3x8YS5pc0FjdGl2ZSgpKXJldHVybiBhLm9wZW4oNSk7YS5vbk9wZW4oKTtyZXR1cm4gYX07YS5leGVjT3Blbj1mdW5jdGlvbigpe251bGw9PUNvb2tpZXMuZ2V0KCJwb3B1cFNob3duRXhlYyIpJiYoQ29va2llcy5zZXQoInBvcHVwU2hvd25FeGVjIiwiMSIsbnVsbCx3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUpLGEub3BlbigwKSl9O2EuaW5pdENvdW50ZG93bj1mdW5jdGlvbigpe3RyeXt2YXIgYj1uZXcgRGF0ZSgxRTMqYS5zZXR0aW5ncy5jb3VudGRvd24pO2lmKDA8Yy5maW5kKCIuY291bnRkb3duIikubGVuZ3RoKXt2YXIgZD1jLmZpbmQoIi5jb3VudGRvd24iKSxmPW5ldyBEYXRlLGg9Yi5nZXRUaW1lKCktZi5nZXRUaW1lKCk7aWYoMDxoKXt2YXIgbD1bTWF0aC5mbG9vcihoLzg2NEU1KSxNYXRoLmZsb29yKGglODY0RTUvMzZFNSksTWF0aC5mbG9vcihoJTg2NEU1JTM2RTUvNkU0KSxNYXRoLmZsb29yKGglODY0RTUlMzZFNSU2RTQvMUUzKV07Zm9yKGI9MDtiPApsLmxlbmd0aDtiKyspbFtiXT05PGxbYl0\/bFtiXS50b1N0cmluZygpOiIwIitsW2JdO3ZhciBwPWwuam9pbigiOiIpO2QuY291bnRkb3duKHtzdGFydFRpbWU6cCxpbWFnZToiL2ltYWdlcy9kaWdpdHNfc21hbGwucG5nIixkaWdpdFdpZHRoOjI5LGRpZ2l0SGVpZ2h0OjQzfSl9ZWxzZSBkLmhpZGUoKX19Y2F0Y2goZyl7InVuZGVmaW5lZCIhPT10eXBlb2YgZGVidWcmJihkZWJ1ZyhnKSxkZWJ1ZygiSW52YWxpZCBkYXRlICIsYS5zZXR0aW5ncy5jb3VudGRvd24pKX19O2EuY2xvc2U9ZnVuY3Rpb24oYil7aWYoIkNBTkNFTCI9PWImJiJmdW5jdGlvbiI9PXR5cGVvZiBhLnNldHRpbmdzLm9uQmVmb3JlQ2FuY2VsKXt2YXIgZD1hLnNldHRpbmdzLm9uQmVmb3JlQ2FuY2VsLmNhbGwoYyxhKTtpZigwPT1kKXJldHVybiExfWlmKCJmdW5jdGlvbiI9PXR5cGVvZiBhLnNldHRpbmdzLm9uQmVmb3JlQ2xvc2UmJihkPWEuc2V0dGluZ3Mub25CZWZvcmVDbG9zZS5jYWxsKGMsYSxiKSwwPT1kKSlyZXR1cm4hMTsKYy50cmlnZ2VyKCJyZXZlYWw6Y2xvc2UiKX07YS5pc0FjdGl2ZT1mdW5jdGlvbigpe3JldHVybiBwb3B1cGl6ZXJBY3RpdmUoKX07YS5zZXRDb29raWU9ZnVuY3Rpb24oKXtDb29raWVzLnNldChhLnNldHRpbmdzLmNvb2tpZU5hbWUsIjEiLGEuc2V0dGluZ3MuY29va2llRHVyYXRpb24sIi8iKTt2YXIgYj1hLnNldHRpbmdzLmNvb2tpZU5hbWUudG9Mb3dlckNhc2UoKTtpZigicmViYXRlc2hvd24iPT1ifHwicmViYXRlb3RoZXJzaG93biI9PWImJiJ1c2VkIj09JCgiI2N1cnJlbnRTdGF0dXMiKS52YWwoKSliPW5ldyBEYXRlLGIuc2V0VGltZShiLmdldFRpbWUoKSsxOEU0KSxDb29raWVzLnNldCgidXNlZFNsaWRlclBvcHVwRGlzcGxheWVkIiwiMSIsYiwiLyIpfTthLnNhdmVTZXR0aW5ncz1mdW5jdGlvbihiKXtiPSJ1bmRlZmluZWQiPT10eXBlb2YgYj97fTpiO2I9Im9iamVjdCIhPXR5cGVvZiBiP3t1c2VyRGVmaW5lZE5vbk9iamVjdDpifTpiO2MuZGF0YSgicG9wdXBTZXR0aW5ncyIsCiQuZXh0ZW5kKCEwLGEuc2V0dGluZ3MsYikpfTthLnNldERlZmF1bHRBREY9ZnVuY3Rpb24oKXt2YXIgYj0kKCIjcG9wdXBtYWtlIikudmFsKCksZD0kKCIjcG9wdXBtb2RlbCIpLnZhbCgpLGY9JCgiI3BvcHVweWVhciIpLnZhbCgpOzA8JCgiaW5wdXQuYnJhbmRlbWFpbCIpLnZhbCgpLmxlbmd0aCYmMDwkKCJpbnB1dC5tb2RlbGVtYWlsIikudmFsKCkubGVuZ3RoJiYwPCQoImlucHV0LnllYXJlbWFpbCIpLnZhbCgpLmxlbmd0aCYmKGI9JCgiaW5wdXQuYnJhbmRlbWFpbCIpLnZhbCgpLGQ9JCgiaW5wdXQubW9kZWxlbWFpbCIpLnZhbCgpLGY9JCgiaW5wdXQueWVhcmVtYWlsIikudmFsKCkpO2Euc2V0dGluZ3MuQURGPXttYWtlOmIsbW9kZWw6ZCx5ZWFyOmYsc3RvY2tOdW1iZXI6JCgiI3BvcHVwc3RvY2tudW1iZXIiKS52YWwoKX19O2EubG9nRXZlbnQ9ZnVuY3Rpb24oYil7dmFyIGQ9YS5zZXR0aW5ncy5mb3JtO2Q9ZC5vZmZlcnR5cGU\/ZC5vZmZlcnR5cGU6IkVNQUlMSURfIitkLmVtYWlsaWQ7CmlmKCFiKXJldHVybiExOyQoYS50YXJnZXQpLnRyaWdnZXIoYik7aWYoInBvcHVwLmxlYWRfc2VudCI9PWIpe3ZhciBmPWsucmVwbGFjZSgvKF5bYS16XXsxfSkvZyxmdW5jdGlvbihsKXtyZXR1cm4gbC50b1VwcGVyQ2FzZSgpfSksaD1kMmNtZWRpYS5wYWdlRGVwYXJ0bWVudCgpO2dhVHJhY2soImMuX3RyYWNrRXZlbnQiLCJQb3B1cC1sZWFkcyIsZixoLDEpfSJ1bmRlZmluZWQiIT10eXBlb2YgYWN0aXZlVXNlclByb2ZpbGVNbmcmJiJ1bmRlZmluZWQiIT10eXBlb2YgYWN0aXZlVXNlclByb2ZpbGVNbmcubG9nUGFnZVZpZXdFdmVudD8oInVuZGVmaW5lZCIhPT10eXBlb2YgZGVidWcmJmRlYnVnKCJMb2cgRXZlbnQiLGIsZCxhKSxhY3RpdmVVc2VyUHJvZmlsZU1uZy5sb2dQYWdlVmlld0V2ZW50KGIsZCkpOiJ1bmRlZmluZWQiIT09dHlwZW9mIGRlYnVnJiZkZWJ1ZygiIVVOTE9HR0VEIEVWRU5UISIsYixkKX07YS5pc0NvbnRlbnRMb2FkZWQ9ZnVuY3Rpb24oKXtpZighYS50YXJnZXRbMF0uaGFzQXR0cmlidXRlKCJkYXRhLWxhenlsb2FkaWQiKSlyZXR1cm4hMDsKdmFyIGI9MD09PWEudGFyZ2V0Lmh0bWwoKS50cmltKCkubGVuZ3RoLGQ9YS5zZXR0aW5ncy5jb250ZW50TG9hZGVkfHwhMTtyZXR1cm4hYiYmZH07YS5sb2FkPWZ1bmN0aW9uKGIpe2EuaXNDb250ZW50TG9hZGVkKCk\/KGEuc2V0dGluZ3MuY29udGVudExvYWRlZD0hMCxiKCkpOiQuYWpheCh7dHlwZToiR0VUIixjYWNoZTohMCx1cmw6KCJFTkdMSVNIIj09PSQoIiNhY3RpdmVzaXRlbGFuZ3VhZ2UiKS52YWwoKT8iL2VuIjoiL2ZyIikrIi9hamF4L2dldFBvcHVwQ29udGVudCIsZGF0YTp7d3N3aWR0aDoiMCIsXzphLnNldHRpbmdzLmlkZW50LGlkOmEudGFyZ2V0LmRhdGEoImxhenlsb2FkaWQiKSxtYWtlOiQoIiNsYXN0dmlld2VkbWFrZSIpLnZhbCgpfHwiIixtb2RlbDokKCIjbGFzdHZpZXdlZG1vZGVsIikudmFsKCl8fCIiLHllYXI6JCgiI2xhc3R2aWV3ZWR5ZWFyIikudmFsKCl8fCIiLHRyaW06JCgiI2xhc3R2aWV3ZWR0cmltIikudmFsKCl8fCIiLApzdG9ja051bWJlcjokKCIjbGFzdHZpZXdlZHN0b2NrbnVtYmVyIikudmFsKCl8fCIiLHZlaGljbGVJZDokKCIjdG9wY2FyaWQiKS52YWwoKXx8MH0sc3VjY2VzczpmdW5jdGlvbihkKXthLnRhcmdldC5odG1sKGQpO2Euc2V0dGluZ3MuY29udGVudExvYWRlZD0hMDsiZnVuY3Rpb24iPT09dHlwZW9mIGFkZE5vVHJhbnNsYXRlRW1haWxEZWYmJmFkZE5vVHJhbnNsYXRlRW1haWxEZWYoKTtiKCl9fSl9O2EuY3JlYXRlQ29uZmlybUZvcm09ZnVuY3Rpb24oKXt2YXIgYj1hLnRhcmdldC5hdHRyKCJpZCIpKyJfY29uZmlybSI7MT4kKCIjY29uZmlybV9mb3JtcyIpLmxlbmd0aCYmJCgiYm9keSIpLmFwcGVuZCgkKCI8ZGl2PjwvZGl2PiIpLmF0dHIoImlkIiwiY29uZmlybV9mb3JtcyIpKTtpZigxPiQoIiMiK2IpLmxlbmd0aCYmYS5zZXR0aW5ncy5jb25maXJtRm9ybSYmMCE9PWEuc2V0dGluZ3MuY29uZmlybUZvcm0ubGVuZ3RoKXtiPSQoIjxmb3JtPjwvZm9ybT4iKS5hdHRyKCJpZCIsYikuYXR0cigibWV0aG9kIiwKIlBPU1QiKS5hdHRyKCJhY3Rpb24iLCIvY29uZmlybWF0aW9uLmh0bWwiKS5hdHRyKCJ0YXJnZXQiLCJpZnJhbWVndHJhY2siKTt2YXIgZD0kKCIjYXV0b2F1YmFpbmVfcG9wdXAiKTtkPVt7bmFtZToiZ3RhZ19jb252ZXJzaW9uIix2YWx1ZToiZ3RhZyJ9LHtuYW1lOiJsZWFkX2RlcGFydG1lbnQiLHZhbHVlOiIifSx7bmFtZToibGVhZFR5cGUiLHZhbHVlOiIifSx7bmFtZToicGFnZUlEIix2YWx1ZToiIn0se25hbWU6ImN1cnJlbnRVUkwiLHZhbHVlOiIifSx7bmFtZToiYnV0dG9uUG9zaXRpb24iLHZhbHVlOiIifSx7bmFtZToiZGVhbGVyTmFtZSIsdmFsdWU6IiJ9LHtuYW1lOiJpc0Z1bGxXaWR0aCIsdmFsdWU6IiJ9LHtuYW1lOiJpc01vYmlsZU5ld1ZEUCIsdmFsdWU6IiJ9LHtuYW1lOiJ0ZXN0bW9kZSIsdmFsdWU6IjAiLGNsYXNzOiJ0ZXN0bW9kZSJ9LHtuYW1lOiJmcm9tQXV0b0F1YmFpbmUiLHZhbHVlOjA8ZC5sZW5ndGgmJiJmYWxzZSIhPWQudmFsKCl9XTtbXS5wdXNoLmFwcGx5KGQsCmEuc2V0dGluZ3MuY29uZmlybUZvcm0pO2Zvcih2YXIgZj0wO2Y8ZC5sZW5ndGg7ZisrKSQoIjxpbnB1dCAvPiIpLmF0dHIoInR5cGUiLCJoaWRkZW4iKS5hdHRyKGRbZl0pLmFwcGVuZFRvKGIpOyQoIiNjb25maXJtX2Zvcm1zIikuYXBwZW5kKGIpO2Iub24oInN1Ym1pdCIsb25Db25maXJtU3VibWl0KX0xPiQoIiNndHJhY2tGcmFtZSIpLmxlbmd0aCYmJCgiPGlmcmFtZT48L2lmcmFtZT4iKS5hdHRyKHt3aWR0aDoxLGhlaWdodDoxLGZyYW1lQm9yZGVyOjAsaWQ6Imd0cmFja0ZyYW1lIixuYW1lOiJpZnJhbWVndHJhY2siLHN0eWxlOiJ3aWR0aDogMXB4OyBoZWlnaHQ6IDFweDsifSkuYXBwZW5kVG8oIiNjb25maXJtX2Zvcm1zIil9O3JldHVybiBhfTsKalF1ZXJ5KGZ1bmN0aW9uKGMpe3ZhciBtPWMoIiNzaXRlY29tcGlsZWlkIikubGVuZ3RoP2MoIiNzaXRlY29tcGlsZWlkIikudmFsKCk6TWF0aC5yb3VuZCgxRTcqTWF0aC5yYW5kb20oKSkudG9TdHJpbmcoMTYpO2MuZm4ucG9wdXBpemU9ZnVuY3Rpb24oYSl7YT1hP2E6e307dmFyIGs9e3JldmVhbDp7YW5pbWF0aW9uOiJmYWRlQW5kUG9wIixhbmltYXRpb25zcGVlZDozMDAsY2xvc2VvbmJhY2tncm91bmRjbGljazohMSxkaXNtaXNzbW9kYWxjbGFzczoiY2xvc2UtcmV2ZWFsLW1vZGFsIn0sZm9ybTp7ZW1haWxpZDowLG9mZmVydHlwZTowLG5hbWU6MCxzZW5kVG86MCxzZW5kVG9BREY6MCxPS0J1dHRvbkNsYXNzOiJzdWJtaXRCdG4iLENhbmNlbEJ1dHRvbkNsYXNzOiJjYW5jZWxCdG4iLHNob3dFbWFpbENvbmZpcm1hdGlvbjohMX0sQURGOnttYWtlOiIiLG1vZGVsOiIiLHllYXI6IiIsc3RvY2tOdW1iZXI6IiJ9LGlkZW50Om0sZW5kUG9wdXBRdWV1ZTohMSxwcmlvcml0eToxLGFuaW1hdGlvbjohMSwKbm90cmFuc2Zvcm06ITEsZmlsbGZsYWc6ITEsc3VibWl0dGVkOiExLHNob3dvbmxvYWQ6ITEsY29va2llTmFtZTohMSxjb29raWVEdXJhdGlvbjo2MCxjbG9zZU9uU3VibWl0OiEwLGFkZGVkQ2xhc3NlczoiIn07aWYoMT09dGhpcy5sZW5ndGgpe3ZhciBiPXRoaXMuZGF0YSgicG9wdXBTZXR0aW5ncyIpP3RoaXMuZGF0YSgicG9wdXBTZXR0aW5ncyIpOnt9O3NldHRpbmdzPXt9O2MuZXh0ZW5kKCEwLHNldHRpbmdzLGssYixhKTshc2V0dGluZ3MuY29va2llTmFtZSYmMDx0aGlzLmF0dHIoImlkIikubGVuZ3RoJiYoc2V0dGluZ3MuY29va2llTmFtZT0iY3BwXyIrdGhpcy5hdHRyKCJpZCIpKTshc2V0dGluZ3MubmFtZSYmMDx0aGlzLmF0dHIoImlkIikubGVuZ3RoJiYoc2V0dGluZ3MubmFtZT10aGlzLmF0dHIoImlkIikucmVwbGFjZSgvQ29udGFpbmVyXGIvLCIiKSk7dGhpcy5kYXRhKCJwb3B1cFNldHRpbmdzIixzZXR0aW5ncyk7YT1uZXcgcG9wdXBpemVyKHRoaXMsc2V0dGluZ3MpOwpzZXR0aW5ncy5pbml0aWFsaXplZHx8KGEuaW5pdCgpLHBvcHVwU3VwZXJ2aXNvci5wb3B1cHMucHVzaChhKSk7cmV0dXJuIGF9cG9wdXBzPVtdO3RoaXMuZWFjaChmdW5jdGlvbigpe3BvcHVwcy5wdXNoKGModGhpcykucG9wdXBpemUoKSl9KTtyZXR1cm4gcG9wdXBzfTtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dmFyIGE9bnVsbDtjKHdpbmRvdykub24oInRvdWNobW92ZSwgb25zY3JvbGwsIHNjcm9sbCBtb3VzZXdoZWVsIHJlc2l6ZSIsZnVuY3Rpb24oayl7Y2xlYXJUaW1lb3V0KGEpO2E9c2V0VGltZW91dChwb3B1cFN1cGVydmlzb3IucmVwb3NpdGlvbiwxRTMpfSl9LDFFMyl9KTsKLyoqIC9tL2pzL3Z0aXAuanMgKiovCnZhciBfX19kMmNfdnRpcGpzX2Nfb249IjIwMjUtMDUtMjMgMTc6MTA6NDciOyd1c2Ugc3RyaWN0Jzt2YXIgX19fZDJjX3Z0aXBqc19jX29uPSIyMDI0LTAzLTI1IDEyOjM1OjM5IjsidXNlIHN0cmljdCI7CnRoaXMudnRpcD1mdW5jdGlvbigpe3RoaXMueE9mZnNldD0tMTA7dGhpcy55T2Zmc2V0PTEwOyQoIi52dGlwIikub2ZmKCkub24oImhvdmVyIixmdW5jdGlvbihhKXt0aGlzLnQ9dGhpcy50aXRsZTt0aGlzLnRpdGxlPSIiO3RoaXMudG9wPWEucGFnZVkreU9mZnNldDt0aGlzLmxlZnQ9YS5wYWdlWCt4T2Zmc2V0OyQoImJvZHkiKS5hcHBlbmQoJzxwIGlkPSJ2dGlwIiBzdHlsZT0iei1pbmRleDoxMDAwMDA7Ij48aW1nIGlkPSJ2dGlwQXJyb3ciIC8+Jyt0aGlzLnQrIjwvcD4iKTskKCJwI3Z0aXAgI3Z0aXBBcnJvdyIpLmF0dHIoInNyYyIsIi9pbWFnZXMvc2NyYXRjaC92dGlwX2Fycm93LnBuZyIpOyQoInAjdnRpcCIpLmNzcygidG9wIix0aGlzLnRvcCsicHgiKS5jc3MoImxlZnQiLHRoaXMubGVmdCsicHgiKS5mYWRlSW4oInNsb3ciKX0sZnVuY3Rpb24oKXt0aGlzLnRpdGxlPXRoaXMudDskKCJwI3Z0aXAiKS5mYWRlT3V0KCJzbG93IikucmVtb3ZlKCl9KS5vbigibW91c2Vtb3ZlIiwKZnVuY3Rpb24oYSl7dGhpcy50b3A9YS5wYWdlWSt5T2Zmc2V0O3RoaXMubGVmdD1hLnBhZ2VYK3hPZmZzZXQ7JCgicCN2dGlwIikuY3NzKCJ0b3AiLHRoaXMudG9wKyJweCIpLmNzcygibGVmdCIsdGhpcy5sZWZ0KyJweCIpfSl9O2pRdWVyeShkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oYSl7dnRpcCgpfSk7Ci8qKiAvbS9qcy93U2NyYXRjaFBhZC5qcyAqKi8KdmFyIF9fX2QyY193U2NyYXRjaFBhZGpzX2Nfb249IjIwMjUtMDUtMjMgMTc6MTM6MzciOyd1c2Ugc3RyaWN0Jzt2YXIgX19fZDJjX3dTY3JhdGNoUGFkanNfY19vbj0iMjAyNC0wNC0xMiAxODozMDowNiI7InVzZSBzdHJpY3QiOwooZnVuY3Rpb24oZCl7ZnVuY3Rpb24gaChiLGEpe3RoaXMuc3A9bnVsbDt0aGlzLnNldHRpbmdzPWI7dGhpcy4kZWxlbT1hO3RoaXMuZW5hYmxlZD0hMDt0aGlzLnNjcmF0Y2g9ITE7dGhpcy5jdHg9dGhpcy5jYW52YXM9bnVsbDtyZXR1cm4gdGhpc31kLmZuLndTY3JhdGNoUGFkPWZ1bmN0aW9uKGIsYSl7aWYoImVuYWJsZSI9PWIpZCh0aGlzKS5kYXRhKCJfd1NjcmF0Y2hQYWQiKS5lbmFibGUoKTtlbHNle2lmKCJvYmplY3QiPT09dHlwZW9mIGIpYT1iO2Vsc2UgaWYoInN0cmluZyI9PXR5cGVvZiBiKXt2YXIgYz1bXSxmPXRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciBlPWQodGhpcykuZGF0YSgiX3dTY3JhdGNoUGFkIik7ZSYmKCJyZXNldCI9PT1iP2UucmVzZXQoKToiY2xlYXIiPT09Yj9lLmNsZWFyKCk6ImVuYWJsZWQiPT09Yj9lLmVuYWJsZWQ9ITA9PT1hOnZvaWQgMCE9PWQuZm4ud1NjcmF0Y2hQYWQuZGVmYXVsdFNldHRpbmdzW2JdJiYodm9pZCAwIT09YT9lLnNldHRpbmdzW2JdPQphOmMucHVzaChlLnNldHRpbmdzW2JdKSkpfSk7cmV0dXJuIDE9PT1jLmxlbmd0aD9jWzBdOjA8Yy5sZW5ndGg\/YzpmfWE9ZC5leHRlbmQoe30sZC5mbi53U2NyYXRjaFBhZC5kZWZhdWx0U2V0dGluZ3MsYXx8e30pO3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgZT1kKHRoaXMpLGc9alF1ZXJ5LmV4dGVuZCghMCx7fSxhKTtpZighZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIikuZ2V0Q29udGV4dCl7dmFyIGs9IkJyb3dzZXIgZG9lcyBub3Qgc3VwcG9ydCBIVE1MNSBjYW52YXMsIHBsZWFzZSB1cGdyYWRlIHRvIGEgbW9yZSBtb2Rlcm4gYnJvd3Nlci4iO2QoIiN0ZXh0RG9lc05vdFN1cHBvcnRIVE1MNSIpLmxlbmd0aCYmKGs9ZCgiI3RleHREb2VzTm90U3VwcG9ydEhUTUw1IikudmFsKCkpO2UuY3NzKCJwYWRkaW5nLXRvcCIsIjYwcHgiKTtlLmNzcygiaGVpZ2h0IiwiNTVweCIpO2UuaHRtbChrKTsidW5kZWZpbmVkIiE9dHlwZW9mIGcuaWRUb0FkZCYmZCgiI2Jsb2NrYWdlIisKZy5pZFRvQWRkKS5sZW5ndGgmJmQoIiNibG9ja2FnZSIrZy5pZFRvQWRkKS5jc3MoInRvcCIscGFyc2VJbnQoZCgiI2Jsb2NrYWdlIitnLmlkVG9BZGQpLmNzcygidG9wIikpKzMwKyJweCIpO3JldHVybiExfWc9bmV3IGgoZyxlKTtlLmFwcGVuZChnLmdlbmVyYXRlKCkpO2cucGl4ZWxzPWcuY2FudmFzLndpZHRoKmcuY2FudmFzLmhlaWdodDtlLmRhdGEoIl93U2NyYXRjaFBhZCIsZyk7Zy5pbml0KCl9KX19O2QuZm4ud1NjcmF0Y2hQYWQuZGVmYXVsdFNldHRpbmdzPXt3aWR0aDo2MDAsaGVpZ2h0OjExNSxpbWFnZToiL2ltYWdlcy9zY3JhdGNoL3NsaWRlMi5wbmciLGltYWdlMjoiL2ltYWdlcy9wb3B1cHMvc3R5bGUyL3NjcmF0Y2gucG5nIixpbWFnZURpc2FibGVkOiIvaW1hZ2VzL3BvcHVwcy9zdHlsZTIvc2NyYXRjaF9kaXNhYmxlZC5wbmciLGNvbG9yOiIjMzM2Njk5IixvdmVybGF5OiJub25lIixzaXplOjMwLHJlYWx0aW1lUGVyY2VudDohMSxzY3JhdGNoRG93bjpudWxsLHNjcmF0Y2hVcDpudWxsLApzY3JhdGNoTW92ZTpudWxsLGN1cnNvcjpudWxsLGlkVG9BZGQ6IiIsYmFja2dyb3VuZENvbG9yOiIjMDEwYTI4IixlbmFibGVkOiEwfTtoLnByb3RvdHlwZT17Z2VuZXJhdGU6ZnVuY3Rpb24oKXt0aGlzLmNhbnZhcz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKTt0aGlzLmN0eD10aGlzLmNhbnZhcy5nZXRDb250ZXh0KCIyZCIpO3RoaXMuc3A9ZCgiPGRpdj48L2Rpdj4iKS5jc3Moe3Bvc2l0aW9uOiJyZWxhdGl2ZSJ9KS5hcHBlbmQoZCh0aGlzLmNhbnZhcykuYXR0cigid2lkdGgiLHRoaXMuc2V0dGluZ3Mud2lkdGgrInB4IikuYXR0cigiaGVpZ2h0Iix0aGlzLnNldHRpbmdzLmhlaWdodCsicHgiKS5hdHRyKCJzdHlsZSIsInBvc2l0aW9uOmFic29sdXRlO2xlZnQ6LTJweDt0b3A6LTFweDt6LWluZGV4OjE7IikpO3RoaXMuc2V0dGluZ3MuZW5hYmxlZCYmdGhpcy5lbmFibGUoKTtyZXR1cm4gdGhpcy5zcH0sZW5hYmxlOmZ1bmN0aW9uKCl7dGhpcy5kcmF3SW1hZ2UodGhpcy5zZXR0aW5ncy5pbWFnZTIsCiEwKTt0aGlzLmJpbmRCcm93c2VyKCk7dGhpcy5iaW5kTW9iaWxlKHRoaXMuc3ApfSxiaW5kQnJvd3NlcjpmdW5jdGlvbihiKXt2YXIgYT10aGlzO2QodGhpcy5jYW52YXMpLm9uKCJtb3VzZWRvd24iLGZ1bmN0aW9uKGMpe2lmKCFhLmVuYWJsZWQpcmV0dXJuITA7Yy5wcmV2ZW50RGVmYXVsdCgpO2Muc3RvcFByb3BhZ2F0aW9uKCk7YS5jYW52YXNfb2Zmc2V0PWQoYS5jYW52YXMpLm9mZnNldCgpO2Euc2NyYXRjaD0hMDthLnNjcmF0Y2hGdW5jKGMsYSwiRG93biIpfSkub24oIm1vdXNlbW92ZSIsZnVuY3Rpb24oYyl7Yy5wcmV2ZW50RGVmYXVsdCgpO2Muc3RvcFByb3BhZ2F0aW9uKCk7YS5zY3JhdGNoJiZhLnNjcmF0Y2hGdW5jKGMsYSwiTW92ZSIpfSkub24oIm1vdXNldXAiLGZ1bmN0aW9uKGMpe2MucHJldmVudERlZmF1bHQoKTtjLnN0b3BQcm9wYWdhdGlvbigpO2Euc2NyYXRjaCYmKGEuc2NyYXRjaD0hMSxhLnNjcmF0Y2hGdW5jKGMsYSwiVXAiKSl9KX0sYmluZE1vYmlsZTpmdW5jdGlvbihiKXtiLm9uKCJ0b3VjaHN0YXJ0IHRvdWNobW92ZSB0b3VjaGVuZCB0b3VjaGNhbmNlbCIsCmZ1bmN0aW9uKCl7dmFyIGE9ZXZlbnQuY2hhbmdlZFRvdWNoZXNbMF07c3dpdGNoKGV2ZW50LnR5cGUpe2Nhc2UgInRvdWNoc3RhcnQiOnZhciBjPSJtb3VzZWRvd24iO2JyZWFrO2Nhc2UgInRvdWNobW92ZSI6Yz0ibW91c2Vtb3ZlIjticmVhaztjYXNlICJ0b3VjaGVuZCI6Yz0ibW91c2V1cCI7YnJlYWs7ZGVmYXVsdDpyZXR1cm59dmFyIGY9ZG9jdW1lbnQuY3JlYXRlRXZlbnQoIk1vdXNlRXZlbnQiKTtmLmluaXRNb3VzZUV2ZW50KGMsITAsITAsd2luZG93LDEsYS5zY3JlZW5YLGEuc2NyZWVuWSxhLmNsaWVudFgsYS5jbGllbnRZLCExLCExLCExLCExLDAsbnVsbCk7YS50YXJnZXQuZGlzcGF0Y2hFdmVudChmKTtldmVudC5wcmV2ZW50RGVmYXVsdCgpfSl9LGluaXQ6ZnVuY3Rpb24oKXt0aGlzLnNwLmNzcygid2lkdGgiLHRoaXMuc2V0dGluZ3Mud2lkdGgtMik7dGhpcy5zcC5jc3MoImhlaWdodCIsdGhpcy5zZXR0aW5ncy5oZWlnaHQtMik7dGhpcy5zcC5jc3MoImN1cnNvciIsdGhpcy5zZXR0aW5ncy5jdXJzb3I\/Cid1cmwoIicrdGhpcy5zZXR0aW5ncy5jdXJzb3IrJyIpLCBkZWZhdWx0JzoiZGVmYXVsdCIpO2QodGhpcy5jYW52YXMpLmNzcyh7Y3Vyc29yOnRoaXMuc2V0dGluZ3MuY3Vyc29yPyd1cmwoIicrdGhpcy5zZXR0aW5ncy5jdXJzb3IrJyIpLCBkZWZhdWx0JzoiZGVmYXVsdCJ9KTt0aGlzLmNhbnZhcy53aWR0aD10aGlzLnNldHRpbmdzLndpZHRoO3RoaXMuY2FudmFzLmhlaWdodD10aGlzLnNldHRpbmdzLmhlaWdodDt0aGlzLnBpeGVscz10aGlzLmNhbnZhcy53aWR0aCp0aGlzLmNhbnZhcy5oZWlnaHQ7dGhpcy5zZXR0aW5ncy5pbWFnZTI\/KHRoaXMuZHJhd0ltYWdlKHRoaXMuc2V0dGluZ3MuaW1hZ2UyKSx0aGlzLnNldHRpbmdzLmVuYWJsZWR8fHRoaXMuZHJhd0ltYWdlKHRoaXMuc2V0dGluZ3MuaW1hZ2VEaXNhYmxlZCwhMCkpOigibm9uZSIhPXRoaXMuc2V0dGluZ3Mub3ZlcmxheT8odGhpcy5zZXR0aW5ncy5pbWFnZSYmdGhpcy5kcmF3SW1hZ2UodGhpcy5zZXR0aW5ncy5pbWFnZSksCnRoaXMuY3R4Lmdsb2JhbENvbXBvc2l0ZU9wZXJhdGlvbj10aGlzLnNldHRpbmdzLm92ZXJsYXkpOnRoaXMuc2V0QmdJbWFnZSgpLHRoaXMuY3R4LmZpbGxTdHlsZT10aGlzLnNldHRpbmdzLmNvbG9yLHRoaXMuY3R4LmJlZ2luUGF0aCgpLHRoaXMuY3R4LnJlY3QoMCwwLHRoaXMuc2V0dGluZ3Mud2lkdGgsdGhpcy5zZXR0aW5ncy5oZWlnaHQpLHRoaXMuY3R4LmZpbGwoKSl9LHJlc2V0OmZ1bmN0aW9uKCl7dGhpcy5jdHguZ2xvYmFsQ29tcG9zaXRlT3BlcmF0aW9uPSJzb3VyY2Utb3ZlciI7dGhpcy5pbml0KCl9LGNsZWFyOmZ1bmN0aW9uKCl7dGhpcy5jdHguY2xlYXJSZWN0KDAsMCx0aGlzLnNldHRpbmdzLndpZHRoLHRoaXMuc2V0dGluZ3MuaGVpZ2h0KX0sc2V0QmdJbWFnZTpmdW5jdGlvbigpe3RoaXMuc2V0dGluZ3MuaW1hZ2UmJih0aGlzLnNwLmFkZENsYXNzKCJzY3JhdGNoRGl2VGV4dCIpLHRoaXMuc3AuY3NzKCJiYWNrZ3JvdW5kLWNvbG9yIix0aGlzLnNldHRpbmdzLmJhY2tncm91bmRDb2xvciksCnRoaXMuc3AuYXBwZW5kKCI8ZGl2IGlkPSdzY3JhdGNoRGl2VGV4dCIrdGhpcy5zZXR0aW5ncy5pZFRvQWRkKyInIHN0eWxlPSd0ZXh0LWFsaWduOmNlbnRlcjtmb250LXNpemU6MzBweDtjb2xvcjojZmZmO21hcmdpbi1sZWZ0OjBweDtwYWRkaW5nLWxlZnQ6MTBweDtwYWRkaW5nLXJpZ2h0OjEwcHg7cG9zaXRpb246YWJzb2x1dGU7dG9wOjIwcHg7ei1pbmRleDowOyc+IitkKCIjc2NyYXRjaElucHV0VGV4dCIrdGhpcy5zZXR0aW5ncy5pZFRvQWRkKS52YWwoKSsiPC9kaXY+IikpfSxkcmF3SW1hZ2U6ZnVuY3Rpb24oYixhKXt2YXIgYz10aGlzLGY9bmV3IEltYWdlO2Yuc3JjPWI7ZChmKS5vbigibG9hZCIsZnVuY3Rpb24oKXtjLmN0eC5kcmF3SW1hZ2UoZiwwLDApOyJ1bmRlZmluZWQiIT10eXBlb2YgYSYmYXx8Yy5zZXRCZ0ltYWdlKCl9KX0sc2NyYXRjaEZ1bmM6ZnVuY3Rpb24oYixhLGMpe2IucGFnZVg9TWF0aC5mbG9vcihiLnBhZ2VYLWEuY2FudmFzX29mZnNldC5sZWZ0KTtiLnBhZ2VZPQpNYXRoLmZsb29yKGIucGFnZVktYS5jYW52YXNfb2Zmc2V0LnRvcCk7YVsic2NyYXRjaCIrY10oYixhKTsodGhpcy5zZXR0aW5ncy5yZWFsdGltZVBlcmNlbnR8fCJVcCI9PWMpJiZhLnNldHRpbmdzWyJzY3JhdGNoIitjXSYmYS5zZXR0aW5nc1sic2NyYXRjaCIrY10uYXBwbHkoYSxbYixhLnNjcmF0Y2hQZXJjZW50YWdlKGEpXSl9LHNjcmF0Y2hQZXJjZW50YWdlOmZ1bmN0aW9uKGIpe2Zvcih2YXIgYT0wLGM9Yi5jdHguZ2V0SW1hZ2VEYXRhKDAsMCxiLmNhbnZhcy53aWR0aCxiLmNhbnZhcy5oZWlnaHQpLGY9MCxlPWMuZGF0YS5sZW5ndGg7ZjxlO2YrPTQpMD09Yy5kYXRhW2ZdJiYwPT1jLmRhdGFbZisxXSYmMD09Yy5kYXRhW2YrMl0mJjA9PWMuZGF0YVtmKzNdJiZhKys7cmV0dXJuIGEvYi5waXhlbHMqMTAwfSxzY3JhdGNoRG93bjpmdW5jdGlvbihiLGEpe2EuY3R4Lmdsb2JhbENvbXBvc2l0ZU9wZXJhdGlvbj0iZGVzdGluYXRpb24tb3V0IjthLmN0eC5saW5lSm9pbj0icm91bmQiOwphLmN0eC5saW5lQ2FwPSJyb3VuZCI7YS5jdHguc3Ryb2tlU3R5bGU9YS5zZXR0aW5ncy5jb2xvcjthLmN0eC5saW5lV2lkdGg9YS5zZXR0aW5ncy5zaXplO2EuY3R4LmJlZ2luUGF0aCgpO2EuY3R4LmFyYyhiLnBhZ2VYLGIucGFnZVksYS5zZXR0aW5ncy5zaXplLzIsMCwyKk1hdGguUEksITApO2EuY3R4LmNsb3NlUGF0aCgpO2EuY3R4LmZpbGwoKTthLmN0eC5iZWdpblBhdGgoKTthLmN0eC5tb3ZlVG8oYi5wYWdlWCxiLnBhZ2VZKX0sc2NyYXRjaE1vdmU6ZnVuY3Rpb24oYixhKXthLmN0eC5saW5lVG8oYi5wYWdlWCxiLnBhZ2VZKTthLmN0eC5zdHJva2UoKX0sc2NyYXRjaFVwOmZ1bmN0aW9uKGIsYSl7YS5jdHguY2xvc2VQYXRoKCl9fX0pKGpRdWVyeSk7Ci8qKiAvbS9qcy9zd2ZzdG9yZS5qcyAqKi8KdmFyIF9fX2QyY19zd2ZzdG9yZWpzX2Nfb249IjIwMjUtMDUtMjMgMTc6MTI6MjEiOyd1c2Ugc3RyaWN0Jzt2YXIgX19fZDJjX3N3ZnN0b3JlanNfY19vbj0iMjAyNC0wMS0zMSAxNDozNzo1MyI7InVzZSBzdHJpY3QiO19fX2QyY19zd2ZzdG9yZWpzX2Nfb249IjIwMjMtMDEtMTIgMTE6MzU6MTgiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfc3dmc3RvcmVqc19jX29uPSIyMDIzLTAxLTEyIDEwOjQ0OjU4IjsidXNlIHN0cmljdCI7X19fZDJjX3N3ZnN0b3JlanNfY19vbj0iMjAyMS0xMi0xNSAxMjo0MjozMSI7InVzZSBzdHJpY3QiOwooZnVuY3Rpb24oKXtmdW5jdGlvbiBnKGEpe2lmKCJmdW5jdGlvbiI9PT10eXBlb2YgYSl0aHJvdyJTd2ZTdG9yZSBFcnJvcjogRnVuY3Rpb25zIGNhbm5vdCBiZSB1c2VkIGFzIGtleXMgb3IgdmFsdWVzLiI7fXZhciBoPTAsbT0vW15hLXowLTlfXS9naTt3aW5kb3cuU3dmU3RvcmU9ZnVuY3Rpb24oYSl7ZnVuY3Rpb24gZShkKXt2YXIgYj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGIpO2IuaWQ9IlN3ZlN0b3JlXyIrYS5uYW1lc3BhY2UrIl8iK2grKztkfHwoYi5zdHlsZS5wb3NpdGlvbj0iYWJzb2x1dGUiLGIuc3R5bGUudG9wPSItMjAwMHB4IixiLnN0eWxlLmxlZnQ9Ii0yMDAwcHgiKTtyZXR1cm4gYn1hPWF8fHt9O3ZhciBmPXtzd2ZfdXJsOiJzdG9yYWdlLnN3ZiIsbmFtZXNwYWNlOiJzd2ZzdG9yZSIscGF0aDpudWxsLGRlYnVnOiExLHRpbWVvdXQ6MTAsb25yZWFkeTpudWxsLG9uZXJyb3I6bnVsbH07Zm9yKGMgaW4gZilmLmhhc093blByb3BlcnR5KGMpJiYKKGEuaGFzT3duUHJvcGVydHkoYyl8fChhW2NdPWZbY10pKTthLm5hbWVzcGFjZT1hLm5hbWVzcGFjZS5yZXBsYWNlKG0sIl8iKTtpZih3aW5kb3cuU3dmU3RvcmVbYS5uYW1lc3BhY2VdKXRocm93IlRoZXJlIGlzIGFscmVhZHkgYW4gaW5zdGFuY2Ugb2YgU3dmU3RvcmUgdXNpbmcgdGhlICciK2EubmFtZXNwYWNlKyInIG5hbWVzcGFjZS4gVXNlIHRoYXQgaW5zdGFuY2Ugb3Igc3BlY2lmeSBhbiBhbHRlcm5hdGUgbmFtZXNwYWNlIGluIHRoZSBjb25maWcuIjt0aGlzLmNvbmZpZz1hO2lmKGEuZGVidWcpe2lmKCJ1bmRlZmluZWQiPT09dHlwZW9mIGNvbnNvbGUpe3ZhciBuPWUoITApO3dpbmRvdy5jb25zb2xlPXtsb2c6ZnVuY3Rpb24oZCl7dmFyIGI9ZSghMCk7Yi5pbm5lckhUTUw9ZDtuLmFwcGVuZENoaWxkKGIpfX19dGhpcy5sb2c9ZnVuY3Rpb24oZCxiLGspe2I9InN3ZlN0b3JlIj09PWI\/InN3ZiI6YjtpZigidW5kZWZpbmVkIiE9PXR5cGVvZiBjb25zb2xlW2RdKWNvbnNvbGVbZF0oIlN3ZlN0b3JlIC0gIisKYS5uYW1lc3BhY2UrIiAoIitiKyIpOiAiK2spO2Vsc2UgY29uc29sZS5sb2coIlN3ZlN0b3JlIC0gIithLm5hbWVzcGFjZSsiOiAiK2QrIiAoIitiKyIpOiAiK2spfX1lbHNlIHRoaXMubG9nPWZ1bmN0aW9uKCl7fTt0aGlzLmxvZygiaW5mbyIsImpzIiwiSW5pdGlhbGl6aW5nLi4uIik7U3dmU3RvcmVbYS5uYW1lc3BhY2VdPXRoaXM7Zj1lKGEuZGVidWcpO3ZhciBjPSJTd2ZTdG9yZV8iK2EubmFtZXNwYWNlKyJfIitoKyssbD0ibG9nZm49U3dmU3RvcmUuIithLm5hbWVzcGFjZSsiLmxvZyZhbXA7b25sb2FkPVN3ZlN0b3JlLiIrYS5uYW1lc3BhY2UrIi5vbmxvYWQmYW1wO29uZXJyb3I9U3dmU3RvcmUuIithLm5hbWVzcGFjZSsiLm9uZXJyb3ImYW1wOyIrKGEucGF0aD8iTFNPUGF0aD0iK2EucGF0aCsiJmFtcDsiOiIiKSsiTFNPTmFtZT0iK2EubmFtZXNwYWNlO2YuaW5uZXJIVE1MPSc8b2JqZWN0IGhlaWdodD0iMTAwIiB3aWR0aD0iNTAwIiBjb2RlYmFzZT0iaHR0cHM6Ly9kb3dubG9hZC5tYWNyb21lZGlhLmNvbS9wdWIvc2hvY2t3YXZlL2NhYnMvZmxhc2gvc3dmbGFzaC5jYWIiIGlkPSInKwpjKyciIGNsYXNzaWQ9ImNsc2lkOkQyN0NEQjZFLUFFNkQtMTFjZi05NkI4LTQ0NDU1MzU0MDAwMCI+ICAgIDxwYXJhbSB2YWx1ZT0iJythLnN3Zl91cmwrJyIgbmFtZT0ibW92aWUiPiAgPHBhcmFtIHZhbHVlPSInK2wrJyIgbmFtZT0iRmxhc2hWYXJzIj4gICA8cGFyYW0gdmFsdWU9ImFsd2F5cyIgbmFtZT0iYWxsb3dTY3JpcHRBY2Nlc3MiPiAgPGVtYmVkIGhlaWdodD0iMzc1IiBhbGlnbj0ibWlkZGxlIiB3aWR0aD0iNTAwIiBwbHVnaW5zcGFnZT0iaHR0cHM6Ly93d3cubWFjcm9tZWRpYS5jb20vZ28vZ2V0Zmxhc2hwbGF5ZXIiIGZsYXNodmFycz0iJytsKyciIHR5cGU9ImFwcGxpY2F0aW9uL3gtc2hvY2t3YXZlLWZsYXNoIiBhbGxvd3NjcmlwdGFjY2Vzcz0iYWx3YXlzIiBxdWFsaXR5PSJoaWdoIiBsb29wPSJmYWxzZSIgcGxheT0idHJ1ZSIgbmFtZT0iJytjKyciIGJnY29sb3I9IiNmZmZmZmYiIHNyYz0iJythLnN3Zl91cmwrJyI+PC9vYmplY3Q+Jzt0aGlzLnN3Zj1kb2N1bWVudFtjXXx8CndpbmRvd1tjXTt0aGlzLl90aW1lb3V0PXNldFRpbWVvdXQoZnVuY3Rpb24oKXtTd2ZTdG9yZVthLm5hbWVzcGFjZV0ubG9nKCJlcnJvciIsImpzIiwiVGltZW91dCByZWFjaGVkLCBhc3N1bWluZyAiK2Euc3dmX3VybCsiIGZhaWxlZCB0byBsb2FkIGFuZCBmaXJpbmcgdGhlIG9uZXJyb3IgY2FsbGJhY2suIik7aWYoYS5vbmVycm9yKWEub25lcnJvcigpfSwxRTMqYS50aW1lb3V0KX07U3dmU3RvcmUucHJvdG90eXBlPXt2ZXJzaW9uOiIxLjkiLHJlYWR5OiExLHNldDpmdW5jdGlvbihhLGUpe3RoaXMuX2NoZWNrUmVhZHkoKTtnKGEpO2coZSk7dGhpcy5zd2Yuc2V0KGEsZSl9LGdldDpmdW5jdGlvbihhKXt0aGlzLl9jaGVja1JlYWR5KCk7ZyhhKTtyZXR1cm4gdGhpcy5zd2YuZ2V0KGEpfSxnZXRBbGw6ZnVuY3Rpb24oKXt0aGlzLl9jaGVja1JlYWR5KCk7dmFyIGE9dGhpcy5zd2YuZ2V0QWxsKCk7YS5fX2ZsYXNoQnVnRml4JiZkZWxldGUgYS5fX2ZsYXNoQnVnRml4O3JldHVybiBhfSwKY2xlYXI6ZnVuY3Rpb24oYSl7dGhpcy5fY2hlY2tSZWFkeSgpO2coYSk7dGhpcy5zd2YuY2xlYXIoYSl9LF9jaGVja1JlYWR5OmZ1bmN0aW9uKCl7aWYoIXRoaXMucmVhZHkpdGhyb3ciU3dmU3RvcmUgaXMgbm90IHlldCBmaW5pc2hlZCBpbml0aWFsaXppbmcuIFBhc3MgYSBjb25maWcub25yZWFkeSBjYWxsYmFjayBvciB3YWl0IHVudGlsIHRoaXMucmVhZHkgaXMgdHJ1ZSBiZWZvcmUgdHJ5aW5nIHRvIHVzZSBhIFN3ZlN0b3JlIGluc3RhbmNlLiI7fSxvbmxvYWQ6ZnVuY3Rpb24oKXt2YXIgYT10aGlzO3NldFRpbWVvdXQoZnVuY3Rpb24oKXtjbGVhclRpbWVvdXQoYS5fdGltZW91dCk7YS5yZWFkeT0hMDthLnNldCgiX19mbGFzaEJ1Z0ZpeCIsIjEiKTtpZihhLmNvbmZpZy5vbnJlYWR5KWEuY29uZmlnLm9ucmVhZHkoKX0sMCl9LG9uZXJyb3I6ZnVuY3Rpb24oKXtjbGVhclRpbWVvdXQodGhpcy5fdGltZW91dCk7aWYodGhpcy5jb25maWcub25lcnJvcil0aGlzLmNvbmZpZy5vbmVycm9yKCl9fX0pKCk7Ci8qKiAvbS9qcy9qcXVlcnkuY291bnRkb3duLmpzICoqLwp2YXIgX19fZDJjX2pxdWVyeWNvdW50ZG93bmpzX2Nfb249IjIwMjUtMDUtMjMgMTc6MDk6MzIiOyd1c2Ugc3RyaWN0Jzt2YXIgX19fZDJjX2pxdWVyeWNvdW50ZG93bmpzX2Nfb249IjIwMjQtMDEtMzEgMTQ6MzY6MTIiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfanF1ZXJ5Y291bnRkb3duanNfY19vbj0iMjAyMy0wMS0xMiAxMTo0MDoyNSI7InVzZSBzdHJpY3QiO19fX2QyY19qcXVlcnljb3VudGRvd25qc19jX29uPSIyMDIzLTAxLTEyIDEwOjUwOjEwIjsidXNlIHN0cmljdCI7X19fZDJjX2pxdWVyeWNvdW50ZG93bmpzX2Nfb249IjIwMjEtMTItMTUgMTI6NTA6MzUiOyJ1c2Ugc3RyaWN0IjsKalF1ZXJ5LmZuLmNvdW50ZG93bj1mdW5jdGlvbihoKXtpZigxPHRoaXMubGVuZ3RoKXJldHVybiAkKHRoaXMpLmVhY2goZnVuY3Rpb24oKXskKHRoaXMpLmNvdW50ZG93bihoKX0pLHRoaXM7aWYodGhpcy5kYXRhKCJjb3VudGluZyIpKXJldHVybiB0aGlzO3RoaXMuZGF0YSgiY291bnRpbmciLCEwKTt2YXIgYT17c3RlcFRpbWU6NjAsZm9ybWF0OiJkZDpoaDptbTpzcyIsc3RhcnRUaW1lOiIwMToxMjozMjo1NSIsZGlnaXRJbWFnZXM6NixkaWdpdFdpZHRoOjUzLGRpZ2l0SGVpZ2h0Ojc3LHRpbWVyRW5kOmZ1bmN0aW9uKCl7fSxpbWFnZToiZGlnaXRzLnBuZyJ9LGM9W10sZj1mdW5jdGlvbihiLGQpe3JldHVybiB2b2lkIDAhPT1kP2NbYl0uY3NzKHttYXJnaW5Ub3A6ZCsicHgifSk6cGFyc2VJbnQoY1tiXS5jc3MoIm1hcmdpblRvcCIpLnJlcGxhY2UoInB4IiwiIikpfSxrPWZ1bmN0aW9uKGIpe2NbYl0uX2RpZ2l0SW5pdGlhbD0tKGNbYl0uX19tYXgqYS5kaWdpdEhlaWdodCphLmRpZ2l0SW1hZ2VzKTsKcmV0dXJuIGZ1bmN0aW9uIGUoKXttdG9wPWYoYikrYS5kaWdpdEhlaWdodDtpZihtdG9wPT1hLmRpZ2l0SGVpZ2h0KWlmKGYoYixjW2JdLl9kaWdpdEluaXRpYWwpLDA8YilrKGItMSkoKSwwPGImJnZvaWQgMCE9PWNbYl0uX19jb25kbWF4JiZjW2ItMV0uX2RpZ2l0SW5pdGlhbD09ZihiLTEpJiZmKGIsLShjW2JdLl9fY29uZG1heCphLmRpZ2l0SGVpZ2h0KmEuZGlnaXRJbWFnZXMpKTtlbHNle2NsZWFySW50ZXJ2YWwobCk7Zm9yKHZhciBnPTA7ZzxjLmxlbmd0aDtnKyspZihnLDApO2EudGltZXJFbmQoKX1lbHNlIGYoYixtdG9wKSwwIT1mKGIpL2EuZGlnaXRIZWlnaHQlYS5kaWdpdEltYWdlcyYmc2V0VGltZW91dChlLGEuc3RlcFRpbWUpLDA9PW10b3AmJihjW2JdLl9faXNtYXg9ITApfX07JC5leHRlbmQoYSxoKTt0aGlzLmNzcyh7aGVpZ2h0OmEuZGlnaXRIZWlnaHQsb3ZlcmZsb3c6ImhpZGRlbiJ9KTsoZnVuY3Rpb24oYil7Zm9yKHZhciBkPTAsZT0wO2U8YS5zdGFydFRpbWUubGVuZ3RoO2UrKyl7aWYoMDw9CnBhcnNlSW50KGEuc3RhcnRUaW1lW2VdKSl7ZWxlbT0kKCc8ZGl2IGlkPSJjbnRfJytlKyciIGNsYXNzPSJjbnREaWdpdCIgLz4nKS5jc3Moe2hlaWdodDphLmRpZ2l0SGVpZ2h0KmEuZGlnaXRJbWFnZXMqMTAsZmxvYXQ6ImxlZnQiLGJhY2tncm91bmQ6InVybCgnIithLmltYWdlKyInKSIsd2lkdGg6YS5kaWdpdFdpZHRofSk7Yy5wdXNoKGVsZW0pO2YoZCwtKHBhcnNlSW50KGEuc3RhcnRUaW1lW2VdKSphLmRpZ2l0SGVpZ2h0KmEuZGlnaXRJbWFnZXMpKTtjW2RdLl9fbWF4PTk7c3dpdGNoKGEuZm9ybWF0W2VdKXtjYXNlICJoIjpjW2RdLl9fbWF4PTA9PWQlMj8yOjk7MD09ZCUyJiYoY1tkXS5fX2NvbmRtYXg9NCk7YnJlYWs7Y2FzZSAiZCI6Y1tkXS5fX21heD05O2JyZWFrO2Nhc2UgIm0iOmNhc2UgInMiOmNbZF0uX19tYXg9MD09ZCUyPzU6OX0rK2R9ZWxzZSBlbGVtPSQoJzxkaXYgY2xhc3M9ImNudFNlcGFyYXRvciIvPicpLmNzcyh7ZmxvYXQ6ImxlZnQifSkudGV4dChhLnN0YXJ0VGltZVtlXSk7CmIuYXBwZW5kKGVsZW0pfX0pKHRoaXMpO3ZhciBsPXNldEludGVydmFsKGsoYy5sZW5ndGgtMSksMUUzKX07Ci8qKiAvbS9qcy9kYXRlVXRpbHMuanMgKiovCnZhciBfX19kMmNfZGF0ZVV0aWxzanNfY19vbj0iMjAyNS0wNS0yMyAxNzowOTo0NiI7J3VzZSBzdHJpY3QnO3ZhciBfX19kMmNfZGF0ZVV0aWxzanNfY19vbj0iMjAyNC0wMS0zMSAxNDozNjowMSI7InVzZSBzdHJpY3QiO19fX2QyY19kYXRlVXRpbHNqc19jX29uPSIyMDIzLTAxLTEyIDExOjM0OjMzIjsidXNlIHN0cmljdCI7X19fZDJjX2RhdGVVdGlsc2pzX2Nfb249IjIwMjMtMDEtMTIgMTA6NDQ6MTQiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfZGF0ZVV0aWxzanNfY19vbj0iMjAyMS0xMi0xNSAxMjo0MToyMyI7InVzZSBzdHJpY3QiO0RhdGUucHJvdG90eXBlLmFtb3VudEJldHdlZW49ZnVuY3Rpb24oYSxiLGMsZCl7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBhfHxudWxsPT1hfHwidW5kZWZpbmVkIj09dHlwZW9mIGJ8fG51bGw9PWIpcmV0dXJuIG51bGw7YT1hLmdldFRpbWUoKTtiPWIuZ2V0VGltZSgpO3JldHVybiBNYXRoLmZsb29yKChiLWEtZCkvYyl9OwovKiogL20vanMvZDJjX2ZvcmRfdGFnZ2luZy5qcyAqKi8KdmFyIF9fX2QyY19kMmNmb3JkdGFnZ2luZ2pzX2Nfb249IjIwMjYtMDEtMTIgMTA6MTM6NTUiOyd1c2Ugc3RyaWN0Jzt2YXIgZGVidWdfZDJmdD1uZXcgZnVuY3Rpb24oKXt0aGlzLmxvZz1mdW5jdGlvbigpe3ZhciB6PWxvY2FsU3RvcmFnZS5nZXRJdGVtKCJkZWJ1Z19kMmZ0Iik7bnVsbD09eiYmKHo9ImxpdmUiIT1kZXBsb3ltZW50VHlwZSk7MDx6JiZjb25zb2xlLmxvZy5hcHBseShudWxsLGFyZ3VtZW50cyl9O3RoaXMuZW5hYmxlPWZ1bmN0aW9uKHope2xvY2FsU3RvcmFnZS5zZXRJdGVtKCJkZWJ1Z19kMmZ0Iix6KX07cmV0dXJuIHRoaXN9OwpmdW5jdGlvbiBEMkZUKHosSSl7ZnVuY3Rpb24gTygpe3ZhciBkPXQ7aWYoL3NpOnZscy8udGVzdCh0LnBhZ2VJZCkpe3ZhciBiPXQ7dHJ5e2Zvcih2YXIgaD13aW5kb3cuZ1VzZWRTcnBBcHB6LmZpbHRlckludGVyZmFjZS5nZXRGaWx0ZXJDb250cm9sbGVyKCkuZ2V0Q3VycmVudEZpbHRlcnNWYWx1ZXMoKSxjPSIiLGE9MDthPGgubGVuZ3RoO2ErKyl7dmFyIGU9aFthXSxsPWUudmFsdWVzO3N3aXRjaChlLmZpZCl7Y2FzZSAiZmx0Q2F0ZWdvcmllSWQiOjE9PWwubGVuZ3RoJiYoImNwbyIhPWMmJjE9PWxbMF0mJihjPSJ1c2VkIiksMz09bFswXSYmKGM9Im5ldyIpKTticmVhaztjYXNlICJmbHRDZXJ0aWZpZWRJZCI6MDxsLmxlbmd0aCYmKGM9ImNwbyIpfX12YXIgZj1jfWNhdGNoKGcpe2Y9IiJ9Yi5pbnZlbnRvcnlGbGFnPWZ9Yj12b2lkIDAhPT10LmludmVudG9yeUZsYWcmJiIiIT10LmludmVudG9yeUZsYWc\/dC5pbnZlbnRvcnlGbGFnOi9jZXJ0aWZpZVtkc10vLnRlc3Qod2luZG93LmxvY2F0aW9uLmhyZWYpPwoiY3BvIjovdXNlZHxvY2Nhc3Rpb24vLnRlc3Qod2luZG93LmxvY2F0aW9uLmhyZWYpPyJ1c2VkIjovbmUod3x1ZnMpLy50ZXN0KHdpbmRvdy5sb2NhdGlvbi5ocmVmKT8ibmV3Ijoib3RoZXIiO2Quc2lUeXBlPWJ9ZnVuY3Rpb24gUyhkKXtpZigidmVoaWNsZTo8bmFtZXBsYXRlPiI9PWQpcmV0dXJuIjxzaS10eXBlPjpzaTp2ZWhpY2xlIGRldGFpbHM8c2ktc3VmZml4PiI7aWYoL14oVU5LTk9XTnxjdXN0b20pLy50ZXN0KGQpKXtjb25zdCBiPVt7cGF0dGVybjovbWFpbnRlbmFuY2UtcGxhbnxmb3JkLXByb3RlY3R8bGluY29sbi1wcm90ZWN0LyxyZXN1bHQ6InNlcnZpY2U6Zm9yZCBwcm90ZWN0In0se3BhdHRlcm46L2V2LWNoYXJnaW5nLyxyZXN1bHQ6ImV2IGNoYXJnaW5nIn0se3BhdHRlcm46L2V2LShsaWZlc3R5bGV8b3ZlcnZpZXcpLyxyZXN1bHQ6ImV2IGxpZmVzdHlsZSJ9LHtwYXR0ZXJuOi9ldi1vd25lcnNoaXAvLHJlc3VsdDoiZXYgb3duZXJzaGlwIn0se3BhdHRlcm46L2V2LShsaWdodG5pbmd8bWFjaC1lKS8sCnJlc3VsdDoiZXYgdmhwOjxuYW1lcGxhdGU+In1dO2Zvcihjb25zdCBoIG9mIGIpe2NvbnN0IHtwYXR0ZXJuOmMscmVzdWx0OmF9PWg7aWYoYy50ZXN0KHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSkpcmV0dXJuIGF9fXJldHVybiBkfWZ1bmN0aW9uIFQoZCl7cmV0dXJuIHdpbmRvdy5sb2NhdGlvbi5ocmVmLmluY2x1ZGVzKCJvc3RpZ3V5bGluY29sbiIpfHx3aW5kb3cubG9jYXRpb24uaHJlZi5pbmNsdWRlcygidGF5bG9ybGluY29sbiIpPyJsaW5jb2xuIjpkfXZhciB0PUk7dC5zaVR5cGU9IjxzaS10eXBlPiI7dmFyIEo7aWYoIm9iamVjdCI9PT10eXBlb2YgeiYmIXpbd2luZG93LmRlcGxveW1lbnRUeXBlXSlyZXR1cm4gZGVidWdfZDJmdC5sb2coIk5vIGFkb2JlIHRyYWNraW5nIGZvcjogIit3aW5kb3cuZGVwbG95bWVudFR5cGUpLHRoaXM7dD1mdW5jdGlvbihkKXtkLnBhZ2VJZD1TKGQucGFnZUlkKTtkLmNsaWVudD1UKGQuY2xpZW50KTskLmV4dGVuZCghMCxkLGZ1bmN0aW9uKCl7dmFyIGI9Cnt9OyQuZWFjaCgkKCIjZGlnaXRhbF9kYXRhX2luZm8iKS5maW5kKCJpbnB1dCIpLnNlcmlhbGl6ZUFycmF5KCksZnVuY3Rpb24oKXtiW3RoaXMubmFtZV09dGhpcy52YWx1ZX0pO3JldHVybiBifSgpKTsvZXYtbGlnaHRuaW5nKC1mcik\/XC5odG1sLy50ZXN0KHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSkmJihkLm1ha2U9IkZvcmQiLGQubW9kZWw9IkYxNTAgTGlnaHRuaW5nIik7L2V2LW1hY2gtZSgtZnIpP1wuaHRtbC8udGVzdCh3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUpJiYoZC5tYWtlPSJGb3JkIixkLm1vZGVsPSJNdXN0YW5nIE1hY2ggRSIpO3JldHVybiBkfSh0KTtjb25zb2xlLmxvZygiRDJGVCBwYWdlRGF0YSIsdCk7dmFyIFU9e3BhZ2U6e3VzZXJMYW5ndWFnZTpudWxsLGNsaWVudDpudWxsLHNpdGU6bnVsbCxwYWdlTmFtZToiPHBhZ2VOYW1lPiIsc2l0ZVNlY3Rpb246IjxzaXRlU2VjdGlvbj4iLGhpZXJhcmNoeToiPGhpZXJhcmNoeT4iLHBhZ2VOYW1lTm9WZWhpY2xlOiI8cGFnZW5hbWUtbm8tdmVoaWNsZT4iLApyYWRVSVZlcnNpb246IjxyYWRVSVZlcnNpb24+Iix2YXJpYW50TmFtZToiPHZhcmlhbnROYW1lPiIsdG9vbDoiPHRvb2w+Iix0b29sRGVzY3JpcHRvcjoiPHRvb2xEZXNjcmlwdG9yPiIsc2VhcmNoRGVwdGg6IjxzZWFyY2hEZXB0aD4iLHZpbnJlYWw6Ijx2aW5SZWFsPiJ9LHZlaGljbGU6e21vZGVsWWVhcjoiPG1vZGVsWWVhcj4iLG5hbWVwbGF0ZToiPG5hbWVwbGF0ZT4iLGJvZHlNb2RlbFRyaW06Ijx2ZWhpY2xlVHJpbT4iLGV4dEludENvbG9yQ29kZToiPHZlaGljbGVFeHRJbnRDb2xvckNvZGU+IixlbmdpbmVUcmFuczoiPHZlaGljbGVUYW5zbWlzc2lvbj4iLHByaWNlOiI8dmVoaWNsZVByaWNlPiJ9LHVzZXI6e3BhQ29kZTpudWxsLGxlYWRUeXBlOiI8cGFnZUxvYWRMZWFkVHlwZT4iLGNrc1Zpc2l0SWQ6Ijxja3NWaXNpdElkPiJ9fSxLPTAsRz0hMSxCPXsiKiI6eyIubWFwX29wZW5faG91cnNfZXhwYW5kIjp7b25jbGljazp7b25jbGljazoiPG9wZW5faG91cnNfb25jbGljaz4ifX0sCidhW2hyZWYqPSJnb29nbGUiXVtocmVmKj0ibWFwcyJdJzp7b25jbGljazp7b25jbGljazoiaGVscDpkaXJlY3Rpb25zIixvbmNsaWNrTGlua05hbWU6ImRjOmhlbHA6ZGlyZWN0aW9ucyJ9fX0saG9tZTp7Ii50cmFkZUluQmFyX2J0biI6e30sIi5zZWFyY2gtYm94LXRhYnMgYnV0dG9uLnNlYXJjaC1ib3gtdGFiIjp7b25jbGljazp7b25jbGljazpmdW5jdGlvbigpe3ZhciBkPSIiO3RyeXtkPXRoaXMuZXZlbnREYXRhLmVsZW1lbnQuYXR0cigiZGF0YS10eXBlIil9Y2F0Y2goYil7ZGVidWdfZDJmdC5sb2coYil9Im5ld2ludiI9PWQmJihkPSJuZXciKTtyZXR1cm4iPHBhZ2VpZD46Y29udGVudDppbnZlbnRvcnkgc2VhcmNoOiIrZH19fSwiLmNhcm91c3NlbCAuYXJyb3dzIC5hcnJvdy1sZWZ0IC5hcnJvdyI6e29uY2xpY2s6e29uY2xpY2s6IjxwYWdlaWQ+OmNvbnRlbnQ6c2hvd3Jvb20gaW52ZW50b3J5IHNjcm9sbDpsZWZ0In19LCIuY2Fyb3Vzc2VsIC5hcnJvd3MgLmFycm93LXJpZ2h0IC5hcnJvdyI6e29uY2xpY2s6e29uY2xpY2s6IjxwYWdlaWQ+OmNvbnRlbnQ6c2hvd3Jvb20gaW52ZW50b3J5IHNjcm9sbDpyaWdodCJ9fSwKIi5jdGE0X3NwbGl0X2ltYWdlX2J1dHRvbiI6e29uY2xpY2s6e29uY2xpY2s6ZnVuY3Rpb24oKXt2YXIgZD0iIixiPSIiLGg9IiI7dHJ5e2Q9dGhpcy5ldmVudERhdGEuZWxlbWVudC5maW5kKCJzcGFuIikuaHRtbCgpLGI9dGhpcy5ldmVudERhdGEuZWxlbWVudC5hdHRyKCJocmVmIil9Y2F0Y2goYyl7ZGVidWdfZDJmdC5sb2coYyl9L14oY29uZmlnfGJ1aWxkKS9pLnRlc3QoZCkmJihoPSJidWlsZCBhbmQgcHJpY2UiKTsvXmZpbmFuY3xjcmVkaXQvaS50ZXN0KGQrIjo6IitiKSYmKGg9ImFwcGx5IGZvciBmaW5hbmNpbmciKTsvb2ZmW3JlXVtyZV0vaS50ZXN0KGQpJiYoaD0iY3VycmVudCBvZmZlcnMiKTsvKHJlcXVlc3RzfGRlbWFuZGVzKS4qXGJwYXJ0c1xiL2kudGVzdChiKSYmKGg9Im9yZGVyIHBhcnRzIik7LyhyZXF1ZXN0c3xkZW1hbmRlcykuKlxiKGVzc2FpfHRlc3QpXGIvaS50ZXN0KGIpJiYoaD0idGVzdCBkcml2ZSIpO2g9aD9oOmQudG9Mb3dlckNhc2UoKTtyZXR1cm4iaG9tZTpjb250ZW50OiIrCmh9fX0sIiNiYW5uZXJfc2VhcmNoX2Jhcl9mb3JtX2J1dHRvbiI6e29uY2xpY2s6e29uY2xpY2s6ZnVuY3Rpb24oKXt2YXIgZD0kKCIjYmFubmVyX3NlYXJjaF9iYXJfc2VsZWN0X21ha2UiKS52YWwoKSxiPSQoIiNiYW5uZXJfc2VhcmNoX2Jhcl9zZWxlY3RfbW9kZWwgb3B0aW9uOnNlbGVjdGVkIikudGV4dCgpLGg9JCgiI2Jhbm5lcl9zZWFyY2hfYmFyX3NlbGVjdF9tb2RlbCIpLnZhbCgpO2I9Yi5yZXBsYWNlKC9cKFxkK1wpL2csIiIpO3JldHVybiJob21lOmNvbnRlbnQ6aW52ZW50b3J5IHNlYXJjaCIrKCJhbGwiIT1kJiYiYWxsIiE9aD8iOiIrZCsiICIrYjoiIikudG9Mb3dlckNhc2UoKX19fX0sIjxzaS10eXBlPjpzaTp2bHM8c2ktc3VmZml4PiI6eyIuY2FyQm94V3JhcHBlciBhIjp7b25jbGljazp7b25jbGljazoiPHNpLXR5cGU+OnNpOnZsczxzaS1zdWZmaXg+IixvbmNsaWNrTGlua05hbWU6ImRjOjxzaS10eXBlPjpzaTp2bHM6Y29udGVudDphY3Rpb248c2ktc3VmZml4PiJ9fSwKIiNmbHRTb3J0SWQgYnV0dG9uIjp7aWdub3JlOiEwfSwiLmRpdlNwYW5GaWx0ZXJzIC5mbHRXcmFwcGVyIGJ1dHRvbiI6e2lnbm9yZTohMH0sIi5idXlfbm93X2NhcmRfY3RhIjp7aXNHbG9iYWw6ITEsb25jbGljazp7b25jbGljazoiPHNpLXR5cGU+OnNpOnZsczpidXkgbm93IixvbmNsaWNrTGlua05hbWU6ImRjOjxzaS10eXBlPjpzaTp2bHM6Y29udGVudDphY3Rpb24ifX19LCI8c2ktdHlwZT46c2k6dmVoaWNsZSBkZXRhaWxzPHNpLXN1ZmZpeD4iOnsiLndpbmRvdy1zdGlja2VyLWFjdGlvbi1ib3ggYSI6e3BhZ2U6e3ZhcmlhbnROYW1lOiJ3aW5kb3ctc3RpY2tlciIsdG9vbDoiZXZlbnQ6d2luZG93IHN0aWNrZXIiLHRvb2xEZXNjcmlwdG9yOiJ2ZWhpY2xlIGRldGFpbHM6d2luZG93IHN0aWNrZXIifSxvbmNsaWNrOntvbmNsaWNrTGlua05hbWU6ImRjOjxzaS10eXBlPjpzaTp2ZWhpY2xlIGRldGFpbHM6dmlldyB3aW5kb3cgc3RpY2tlcjxzaS1zdWZmaXg+IixvbmNsaWNrOiI8c2ktdHlwZT46c2k6dmVoaWNsZSBkZXRhaWxzOnZpZXcgd2luZG93IHN0aWNrZXI8c2ktc3VmZml4PiJ9fSwKIi5zbGlkZXMgLnNsaWRlIGEiOntjb250ZW50QWN0aW9uOiJwaG90byBjbGljayJ9LCIjcG9wdXBTcGVjc1JlcXVlc3QiOntjb250ZW50QWN0aW9uOiJwcmludCJ9LCIjc2hhcmVPbkZhY2Vib29rIjp7Y29udGVudEFjdGlvbjoiZmFjZWJvb2sgbGlrZSJ9LCIjYnV5Tm93T0VNTW9kZWxfbGluayI6e29uY2xpY2s6e29uY2xpY2s6IjxzaS10eXBlPjpzaTp2ZWhpY2xlIGRldGFpbHM6YnV5IG5vdyIsb25jbGlja0xpbmtOYW1lOiJkYzo8c2ktdHlwZT46c2k6dmxzOmNvbnRlbnQ6YWN0aW9uOjxuYW1lcGxhdGU+In19fSxzaG93cm9vbTp7Ii5kaXZDYXJUaXRsZUNvbnRhaW5lciBhIjp7b25jbGljazp7b25jbGljazoiPHBhZ2VpZD46Y29udGVudDp2ZWhpY2xlIGNsaWNrOjxuYW1lcGxhdGU+In19fSwiY29tbWVyY2lhbDpob21lIjp7Ii5kaXZDYXJUaXRsZUNvbnRhaW5lciBhIjp7cGFnZTp7aGllcmFyY2h5OiJjb21tZXJjaWFsOmhvbWUifSxvbmNsaWNrOntvbmNsaWNrOiI8cGFnZWlkPjpjb250ZW50OnZlaGljbGUgY2xpY2s6PG5hbWVwbGF0ZT4ifX0sCiIjY29tbWVyY2lhbGZvcm1fZm9ybSBidXR0b24iOntwYWdlOntoaWVyYXJjaHk6ImNvbW1lcmNpYWw6aG9tZTpjb250YWN0OnRoYW5rIHlvdTo8bmFtZXBsYXRlPiIscGFnZU5hbWVOb1ZlaGljbGU6ImRjOmNvbW1lcmNpYWw6aG9tZTpjb250YWN0OnRoYW5rIHlvdSIsdG9vbDoiZGVmYXVsdCBmb3JtIix0b29sRGVzY3JpcHRvcjoiY29tbWVyY2lhbDpjb250YWN0In0sdXNlcjp7bGVhZFR5cGU6ImNvbW1lcmNpYWw6Y29udGFjdCJ9fSwiLmRpdkNhckltYWdlQ29udGFpbmVyIGEiOntwYWdlOntoaWVyYXJjaHk6ImNvbW1lcmNpYWw6aG9tZSJ9LG9uY2xpY2s6e29uY2xpY2s6IjxwYWdlaWQ+OmNvbnRlbnQ6dmVoaWNsZSBjbGljazo8bmFtZXBsYXRlPiJ9LHVzZXI6e2xlYWRUeXBlOiIiLHRvb2w6IiIsdG9vbERlc2NyaXB0b3I6IiJ9fSwiLmRpdkNhclBheW1lbnRDb250YWluZXIgYSI6e3BhZ2U6e3ZhcmlhbnROYW1lOiJwYXltZW50LWVzdGltYXRvci1vbmNsaWNrIixoaWVyYXJjaHk6InNob3BwaW5nIHRvb2xzOnBheW1lbnQgZXN0aW1hdG9yOmNvbW1lcmNpYWw6PG5hbWVwbGF0ZT4ifSwKb25jbGljazp7b25jbGljazoidmVoaWNsZSBjbGljazo8bmFtZXBsYXRlPiJ9LHVzZXI6e2xlYWRUeXBlOiJzaG93cm9vbTpwYXltZW50IGVzdGltYXRvciIsdG9vbDoiZXZlbnQ6cGF5bWVudCBlc3RpbWF0b3IiLHRvb2xEZXNjcmlwdG9yOiJzaG93cm9vbTpwYXltZW50IGVzdGltYXRvciJ9fX0scG9wdXA6eyIjVHJhZGVJbkJhclBvcHVwQ29udGFpbmVyIjpmdW5jdGlvbigpe3ZhciBkPXtwYWdlOntoaWVyYXJjaHk6InNob3BwaW5nIHRvb2xzOnZhbHVlIHlvdXIgdHJhZGU8c2ktY2F0ZWdvcnk+PHNpLXN1ZmZpeD4iLHBhZ2VOYW1lOiJkYzo8cGFnZUlkTm9TdWZmaXg+OnZhbHVlIHlvdXIgdHJhZGU8c2ktc3VmZml4PiIscGFnZU5hbWVOb1ZlaGljbGU6ImRjOjxwYWdlSWROb1N1ZmZpeD46dmFsdWUgeW91ciB0cmFkZSJ9LHVzZXI6e2xlYWRUeXBlOiI8c2VjdGlvbj46dmFsdWUgeW91ciB0cmFkZSJ9fTt0cnl7L2Jhbm5lcnx0cmFkZWluYmFyLy50ZXN0KHRoaXMubGFzdEV2ZW50LmRhdGEuc2V0dGluZ3MucG9wdXBFdmVudFNvdXJjZSkmJgokLmV4dGVuZCghMCxkLHtwYWdlOntzaXRlU2VjdGlvbjoiZ2xvYmFsIixwYWdlTmFtZToiZGM6Z2xvYmFsOnZhbHVlIHlvdXIgdHJhZGU8c2ktc3VmZml4PiIscGFnZU5hbWVOb1ZlaGljbGU6ImRjOmdsb2JhbDp2YWx1ZSB5b3VyIHRyYWRlIn19KX1jYXRjaChiKXt9cmV0dXJuIGR9LCIjbW9udGhseVBheW1lbnRzUG9wdXBDb250YWluZXIiOntwYWdlOntoaWVyYXJjaHk6InNob3BwaW5nIHRvb2xzOmdldCBxdW90ZTxzaS1jYXRlZ29yeT48c2ktc3VmZml4PiIscGFnZU5hbWU6ImRjOjxwYWdlSWROb1N1ZmZpeD46dnJmcTxzaS1zdWZmaXg+IixwYWdlTmFtZU5vVmVoaWNsZToiZGM6PHBhZ2VJZE5vU3VmZml4Pjp2cmZxIixzaXRlU2VjdGlvbjoiZ2V0IHF1b3RlIn19LCIjcGF5bWVudENhbGN1bGF0b3JQb3B1cENvbnRhaW5lciI6ZnVuY3Rpb24oKXtyZXR1cm4vOnNpOnZscy8udGVzdCh0aGlzLnN0YXRpY0RhdGEucGFnZUlkKT97Y29udGVudEFjdGlvbjoicGF5bWVudCBlc3RpbWF0b3IiLApwYWdlOnt2YXJpYW50TmFtZToicGF5bWVudC1lc3RpbWF0b3Itb25jbGljayIsaGllcmFyY2h5OiI8cGF5bWVudC1lc3RpbWF0b3ItaGllcmFyY2h5PiIscGFnZU5hbWU6ImRjOjxwYWdlSWROb1N1ZmZpeD46cGF5bWVudCBlc3RpbWF0b3I6Y29udGVudCBhY3Rpb248cGF5bWVudC1lc3RpbWF0b3Itc2ktc3VmZml4PiIscGFnZU5hbWVOb1ZlaGljbGU6ImRjOjxwYWdlSWROb1N1ZmZpeD46cGF5bWVudCBlc3RpbWF0b3I6Y29udGVudCBhY3Rpb24iLHRvb2w6ImV2ZW50OnBheW1lbnQgZXN0aW1hdG9yIix0b29sRGVzY3JpcHRvcjoidmxzOnBheW1lbnQgZXN0aW1hdG9yIixzaXRlU2VjdGlvbjoiPHNpdGVTZWN0aW9uPiJ9LG9uY2xpY2s6e29uY2xpY2tMaW5rTmFtZToiZGM6PHBhZ2VJZE5vU3VmZml4PjpwYXltZW50IGVzdGltYXRvcjpjb250ZW50IGFjdGlvbjxwYXltZW50LWVzdGltYXRvci1zaS1zdWZmaXg+IixvbmNsaWNrOiI8cGFnZUlkTm9TdWZmaXg+OnBheW1lbnQgZXN0aW1hdG9yOmVzdGltYXRlIn0sCnVzZXI6e2xlYWRUeXBlOiJ2bHM6cGF5bWVudCBlc3RpbWF0b3IifX06L3ZlaGljbGU6fHZlaGljbGUgZGV0YWlscy8udGVzdCh0aGlzLnN0YXRpY0RhdGEucGFnZUlkKT97cGFnZTp7aGllcmFyY2h5OiJzaG9wcGluZyB0b29sczpwYXltZW50IGVzdGltYXRvcjxzaS1jYXRlZ29yeT48c2ktc3VmZml4PiIscGFnZU5hbWU6ImRjOjxwYWdlSWROb1N1ZmZpeD46cGF5bWVudCBlc3RpbWF0b3I8c2ktc3VmZml4PiIscGFnZU5hbWVOb1ZlaGljbGU6ImRjOjxwYWdlSWROb1N1ZmZpeD46cGF5bWVudCBlc3RpbWF0b3IiLHNpdGVTZWN0aW9uOiI8c2l0ZVNlY3Rpb24+Iix2YXJpYW50TmFtZToiZ2xvYmFsLW92ZXJsYXkiLHRvb2w6ImV2ZW50OnBheW1lbnQgZXN0aW1hdG9yIix0b29sRGVzY3JpcHRvcjoidmVoaWNsZSBkZXRhaWxzOnBheW1lbnQgZXN0aW1hdG9yIn0sb25jbGljazp7b25jbGljazoiPHNpdGVTZWN0aW9uPjpzaTp2ZWhpY2xlIGRldGFpbHM6cGF5bWVudCBlc3RpbWF0b3I6ZGlzY292ZXIgb2ZmZXIifSwKdXNlcjp7bGVhZFR5cGU6InZkcDpwYXltZW50IGVzdGltYXRvciJ9fTohMX0sIi5zbnNfcG9wdXAiOntwYWdlOntwYWdlTmFtZToiZGM6PHBhZ2VJZE5vU3VmZml4PjpzY3JhdGNoIG9mZmVyPHNpLXN1ZmZpeD4iLHBhZ2VOYW1lTm9WZWhpY2xlOiJkYzo8cGFnZUlkTm9TdWZmaXg+OnNjcmF0Y2ggb2ZmZXIiLGhpZXJhcmNoeToic2hvcHBpbmcgdG9vbHM6c2NyYXRjaCBvZmZlcjxzaS1jYXRlZ29yeT48c2ktc3VmZml4PiJ9fSwiI3BvcHVwQ29udGFpbmVyX2F2YWlsYWJpbGl0eXVzZWQiOntwYWdlOntoaWVyYXJjaHk6InNob3BwaW5nIHRvb2xzOmNvbmZpcm0gYXZhaWxhYmlsaXR5PHNpLWNhdGVnb3J5PjxzaS1zdWZmaXg+IixwYWdlTmFtZToiZGM6PHBhZ2VJZE5vU3VmZml4Pjpjb25maXJtIGF2YWlsYWJpbGl0eTxzaS1zdWZmaXg+IixwYWdlTmFtZU5vVmVoaWNsZToiZGM6PHBhZ2VJZE5vU3VmZml4Pjpjb25maXJtIGF2YWlsYWJpbGl0eSIsc2l0ZVNlY3Rpb246IjxzaXRlU2VjdGlvbj4ifX19fSwKUD1mdW5jdGlvbigpe3ZhciBkPXt9O2lmKCJ1bmRlZmluZWQiPT10eXBlb2Ygd2luZG93LmdVc2VkU3JwQXBweilyZXR1cm4gZDt0cnl7dmFyIGI9d2luZG93LmdVc2VkU3JwQXBwei5maWx0ZXJJbnRlcmZhY2UuZ2V0SHVtYW5GaWx0ZXJTdGF0ZSgpOzE9PWIuZmx0TW9kZWxJZC5sZW5ndGgmJjE9PWIuZmx0TWFrZUlkLmxlbmd0aCYmKGQubWFrZT1iLmZsdE1ha2VJZFswXSxkLm1vZGVsPWIuZmx0TW9kZWxJZFswXSk7MT09Yi5mbHRDYXJvc3NlcmllSWQubGVuZ3RoJiYoZC52ZWhpY2xlQ2F0ZWdvcnk9Yi5mbHRDYXJvc3NlcmllSWRbMF0pfWNhdGNoKGgpe2RlYnVnX2QyZnQubG9nKCJEMkZUIFNlYXJjaCBGaWx0ZXIgRXJyb3IiLGgpfXJldHVybiBkfSxWPXsiI2hvbWVwYWdlLWJhbm5lciAubml2by1pbWFnZUxpbmsiOiJiYW5uZXIgY2xpY2siLCIubmV3Q2FyQ2FyZCBhIjoic2hvd3Jvb20gc2VhcmNoOjxuYW1lcGxhdGU+IiwiLnNsaWRlLWFycm93cyBhIjoicGhvdG8gc2Nyb2xsIiwKIiNzY3JhdGNoYW5kc2F2ZV9lbWJlZGRlZF9idG5fMiI6InNwZWNpYWwgb2ZmZXIiLCIuc2NoZWR1bGVUZXN0RHJpdmVEZWFsZXIiOiJ0ZXN0IGRyaXZlOmRlYWxlcnNoaXAiLCIuc2NoZWR1bGVUZXN0RHJpdmVIb21lIjoidGVzdCBkcml2ZTpob21lIiwiLnNjaGVkdWxlVGVzdERyaXZlVmlydHVhbCI6InRlc3QgZHJpdmU6dmlydHVhbCIsIiNGaW5hbmNlQWN0aW9uQm94X3BvcHVwIjoiZmluYW5jZSBpdCIsIiNDcmVkaXRTY29yZUJ0biI6ImNyZWRpdCBzY29yZSIsIi5zcGVjcy10b2dnbGUgYSI6IjxzcGVjcy10b2dnbGUtdHlwZT4iLCIjc3R5bGVzLWNvbnRhaW5lciBsaSBhIjoidHJpbSBzZWxlY3Q8dmRwLXRyaW0+IiwiI0J1aWxkQW5kUHJpY2VBY3Rpb25Cb3hMaW5rIjoiYnVpbGQgYW5kIHByaWNlIiwiI3NjcmF0Y2hhbmRzYXZlX2VtYmVkZGVkX2J0bl8xIjoiZGlzY292ZXIgb2ZmZXIiLCIjY29tcGFyZV90YWJsZSBhIjoidmVoaWNsZSBjb21wYXJlPGNvbXBhcmlzb24tbmFtZXBsYXRlPiIsCiIuX192aWV3X21hcCI6InZpZXcgb24gbWFwIiwiLnBheW1lbnRDYWxjdWxhdG9yVkRQIjoicGF5bWVudCBlc3RpbWF0b3IiLCIuX19wYXltZW50Q2FsY3VsYXRvciI6InBheW1lbnQgZXN0aW1hdG9yIiwidWwudHJpbVRhYnMgbGkiOiJjb21wYXJlOnRyaW0gc2VsZWN0PGNvbXBhcmlzb24tdHJpbT4iLCIjRXZhbEFjdGlvbkJveExpbmsiOiJ2YWx1ZSB5b3VyIHRyYWRlIiwiI0J1aWxkQW5kUHJpY2VBY3Rpb25Cb3hMaW5rIjoiYnVpbGQgYW5kIHByaWNlIiwiI2NvbXBhcmVTZWxlY3QiOiJjb21wYXJlOnRyaW0gc2VsZWN0OjxzZWxlY3RlZC1vcHRpb24tdGV4dD4iLCIjc2VlX29wdGlvbnMgYSI6InNlZSBvcHRpb25zIiwiI0ZpbmFuY2VNdWx0aXN0ZXBBY3Rpb25Cb3hMaW5rIjoiZ2V0IGFwcHJvdmVkIiwiLnByb21vcy1jb250YWluZXIgLnByb21vcyBhIjoib2ZmZXIgY2xpY2s8cHJvbW8tbmFtZT4iLCdbZGF0YS10YWdnaW5nPSJicm9jaHVyZS1kb3dubG9hZCJdJzoiYnJvY2h1cmUgZG93bmxvYWQ6PGJyb2NodXJlTmFtZT4iLAonW2RhdGEtdGFnZ2luZz0iaW5jZW50aXZlcyJdJzoiZXhwbG9yZSBpbmNlbnRpdmVzIiwnW2RhdGEtdGFnZ2luZz0iY2hhcmdpbmciXSc6ImV4cGxvcmUgY2hhcmdpbmciLCdbZGF0YS10YWdnaW5nPSJvd25lcnNoaXAiXSc6Im93bmVyc2hpcCBpbmZvIiwnW2RhdGEtdGFnZ2luZz0ibWFjaGUiXSc6ImV4cGxvcmUgbWFjaCBlIiwnW2RhdGEtdGFnZ2luZz0iZjE1MCJdJzoiZXhwbG9yZSBmMTUwIiwnW2RhdGEtdGFnZ2luZz0ic2NoZWR1bGUtc2VydmljZSJdJzoic2NoZWR1bGUgc2VydmljZSIsJ1tkYXRhLXRhZ2dpbmc9InZpZXctaW52ZW50b3J5Il0nOiJ2aWV3IGludmVudG9yeSIsJ1tkYXRhLXRhZ2dpbmc9ImNoYXJnaW5nLXVwZGF0ZXMiXSc6ImNoYXJnaW5nIHVwZGF0ZXMifSxXPXsiQ29tbWVyY2lhbFJlcXVlc3RfKEZSfEVOKSI6e3BhZ2U6e2hpZXJhcmNoeToiY29tbWVyY2lhbDpob21lOmNyZWRpdCBjaGVjazp0aGFuayB5b3U6PG5hbWVwbGF0ZT4iLHBhZ2VOYW1lOiJkYzpjb21tZXJjaWFsOmhvbWU6Y29udGFjdDp0aGFuayB5b3UiLApwYWdlTmFtZU5vVmVoaWNsZToiZGM6Y29tbWVyY2lhbDpob21lOmNvbnRhY3Q6dGhhbmsgeW91Iix0b29sOiJkZWZhdWx0IGZvcm0iLHRvb2xEZXNjcmlwdG9yOiJjb21tZXJjaWFsOmNvbnRhY3QifSx1c2VyOntsZWFkVHlwZToiY29tbWVyY2lhbDpjb250YWN0In19LENyZWRpdE11bHRpc3RlcFJlcXVlc3Q6e3BhZ2U6e3ZhcmlhbnROYW1lOiJnZXQtcHJlLWFwcHJvdmVkLXN1Ym1pdCIsaGllcmFyY2h5OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucmVzb2x2ZVByZUFwcHJvdmFsVmFycygiZm9ybS1zdWJtaXQiLCJoaWVyYXJjaHkiKX0scGFnZU5hbWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yZXNvbHZlUHJlQXBwcm92YWxWYXJzKCJmb3JtLXN1Ym1pdCIsInBhZ2VOYW1lIil9LHBhZ2VOYW1lTm9WZWhpY2xlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucmVzb2x2ZVByZUFwcHJvdmFsVmFycygiZm9ybS1zdWJtaXQiLCJwYWdlTmFtZU5vVmVoaWNsZSIpfSx0b29sOiJnZXQgcHJlLWFwcHJvdmVkIiwKdG9vbERlc2NyaXB0b3I6ImdldCBwcmUtYXBwcm92ZWQ6c3VibWl0dGVkIn0sZXZlbnQ6e2FjdGlvbjoiZ2V0IHByZWFwcHJvdmVkfHRvb2wifX0sRmluYW5jZU11bHRpc3RlcEFjdGlvbkJveExpbms6e3BhZ2U6e3ZhcmlhbnROYW1lOiJnZXQtcHJlLWFwcHJvdmVkLXN1Ym1pdCIsaGllcmFyY2h5OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucmVzb2x2ZVByZUFwcHJvdmFsVmFycygiZm9ybS1zdWJtaXQiLCJoaWVyYXJjaHkiKX0scGFnZU5hbWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yZXNvbHZlUHJlQXBwcm92YWxWYXJzKCJmb3JtLXN1Ym1pdCIsInBhZ2VOYW1lIil9LHBhZ2VOYW1lTm9WZWhpY2xlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucmVzb2x2ZVByZUFwcHJvdmFsVmFycygiZm9ybS1zdWJtaXQiLCJwYWdlTmFtZU5vVmVoaWNsZSIpfSx0b29sOiJnZXQgcHJlLWFwcHJvdmVkIix0b29sRGVzY3JpcHRvcjoiZ2V0IHByZS1hcHByb3ZlZDpzdWJtaXR0ZWQifSxldmVudDp7YWN0aW9uOiJnZXQgcHJlYXBwcm92ZWR8dG9vbCJ9fSwKUmViYXRlQ291cG9uOmZ1bmN0aW9uKGQpe3ZhciBiPSJ2ZWhpY2xlIGRldGFpbHMiLGg9InZkcCI7JCgiYm9keSIpLmlzKCIjTkVXQ0FSREVUQUlMUyIpJiYoYj1oPSJ2ZWhpY2xlIik7Yj17cGFnZTp7aGllcmFyY2h5OiJzaG9wcGluZyB0b29sczo8Zm9ybS1sYWJlbD48c2ktY2F0ZWdvcnk+PHNpLXN1ZmZpeD4iLHBhZ2VOYW1lOiJkYzo8cGFnZUlkTm9TdWZmaXg+Ojxmb3JtLWxhYmVsPjp0aGFuayB5b3U8c2ktc3VmZml4PiIscGFnZU5hbWVOb1ZlaGljbGU6ImRjOjxwYWdlSWROb1N1ZmZpeD46PGZvcm0tbGFiZWw+OnRoYW5rIHlvdSIsdG9vbDoiZGVmYXVsdCBmb3JtIix0b29sRGVzY3JpcHRvcjpiKyI6c2NyYXRjaCBvZmZlciJ9LHVzZXI6e2xlYWRUeXBlOmgrIjpzY3JhdGNoIG9mZmVyIn19O2QuZGF0YS5mb3JtTGFiZWw9KCIiK2VtYWlsSGFuZGxlci5wb3B1cE9mZmVyVHlwZSkucmVwbGFjZSgvKFxTPykoW0EtWl0pL2csZnVuY3Rpb24oYyxhLGUpe2M9YTswPGEubGVuZ3RoJiYKKGMrPSItIik7cmV0dXJuIGMrZS50b0xvd2VyQ2FzZSgpfSk7L3NjcmF0Y2gvaS50ZXN0KGVtYWlsSGFuZGxlci5wb3B1cE9mZmVyVHlwZSkmJihkLmRhdGEuZm9ybUxhYmVsPSJzY3JhdGNoIG9mZmVyIik7L2NvdXBvbnxyZWJhdGUvaS50ZXN0KGVtYWlsSGFuZGxlci5wb3B1cE9mZmVyVHlwZSkmJihkLmRhdGEuZm9ybUxhYmVsPSJ2b3VjaGVyIik7IiI9PWQuZGF0YS5mb3JtTGFiZWwmJihkLmRhdGEuZm9ybUxhYmVsPSJzY3JhdGNoIG9mZmVyIik7cmV0dXJuIGJ9LCJwcmljZXZlaGljbGUobmV3KT8iOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucmVzb2x2ZVZhbHVlWW91clRyYWRlVGhhbmtZb3UuYXBwbHkodGhpcyxhcmd1bWVudHMpfSxQYXJ0c1JlcXVlc3Q6e3BhZ2U6e2hpZXJhcmNoeToic2VydmljZSBhbmQgcGFydHM6b3JkZXIgcGFydHMiLHBhZ2VOYW1lOiJkYzpzZXJ2aWNlOm9yZGVyIHBhcnRzOmNvbnRhY3QgdXM6dGhhbmsgeW91IixwYWdlTmFtZU5vVmVoaWNsZToiZGM6c2VydmljZTpvcmRlciBwYXJ0czpjb250YWN0IHVzOnRoYW5rIHlvdSIsCnRvb2w6ImRlZmF1bHQgZm9ybSIsdG9vbERlc2NyaXB0b3I6Im9yZGVyIHBhcnRzOmNvbnRhY3QiLHNpdGVTZWN0aW9uOiJzZXJ2aWNlIGFuZCBwYXJ0cyJ9LHVzZXI6e2xlYWRUeXBlOiJvcmRlciBwYXJ0czpjb250YWN0In0sZXZlbnQ6e2FjdGlvbjoibGVhZCBzdWJtaXR0ZWR8dG9vbCJ9fSxTZXJ2aWNlUmVxdWVzdDp7cGFnZTp7aGllcmFyY2h5OiJzZXJ2aWNlIGFuZCBwYXJ0czpyZXF1ZXN0IGFwcG9pbnRtZW50IixwYWdlTmFtZToiZGM6c2VydmljZTpyZXF1ZXN0IGFwcG9pbnRtZW50OnRoYW5rIHlvdSIscGFnZU5hbWVOb1ZlaGljbGU6ImRjOnNlcnZpY2U6cmVxdWVzdCBhcHBvaW50bWVudDp0aGFuayB5b3UiLHRvb2w6ImRlZmF1bHQgZm9ybSIsdG9vbERlc2NyaXB0b3I6InJlcXVlc3QgYXBwb2ludG1lbnQiLHNpdGVTZWN0aW9uOiJzZXJ2aWNlIGFuZCBwYXJ0cyJ9LHVzZXI6e2xlYWRUeXBlOiJyZXF1ZXN0IGFwcG9pbnRtZW50In0sZXZlbnQ6e2FjdGlvbjoibGVhZCBzdWJtaXR0ZWR8dG9vbCJ9fSwKVGlyZXNSZXF1ZXN0OntwYWdlOntoaWVyYXJjaHk6InNlcnZpY2UgYW5kIHRpcmVzOm9yZGVyIHRpcmVzIixwYWdlTmFtZToiZGM6c2VydmljZTpvcmRlciB0aXJlczpjb250YWN0IHVzOnRoYW5rIHlvdSIscGFnZU5hbWVOb1ZlaGljbGU6ImRjOnNlcnZpY2U6b3JkZXIgdGlyZXM6Y29udGFjdCB1czp0aGFuayB5b3UiLHRvb2w6ImRlZmF1bHQgZm9ybSIsdG9vbERlc2NyaXB0b3I6Im9yZGVyIHRpcmVzOmNvbnRhY3QiLHNpdGVTZWN0aW9uOiJzZXJ2aWNlIGFuZCBwYXJ0cyJ9LHVzZXI6e2xlYWRUeXBlOiJvcmRlciB0aXJlczpjb250YWN0In0sZXZlbnQ6e2FjdGlvbjoibGVhZCBzdWJtaXR0ZWR8dG9vbCJ9fSxCb2R5U2hvcDp7cGFnZTp7aGllcmFyY2h5OiJzZXJ2aWNlIGFuZCBwYXJ0czpyZXF1ZXN0IGJvZHkgc2hvcCIscGFnZU5hbWU6ImRjOnNlcnZpY2U6cmVxdWVzdCBib2R5IHNob3A6dGhhbmsgeW91IixwYWdlTmFtZU5vVmVoaWNsZToiZGM6c2VydmljZTpyZXF1ZXN0IGJvZHkgc2hvcDp0aGFuayB5b3UiLAp0b29sOiJkZWZhdWx0IGZvcm0iLHRvb2xEZXNjcmlwdG9yOiJyZXF1ZXN0IGJvZHkgc2hvcCIsc2l0ZVNlY3Rpb246InNlcnZpY2UgYW5kIHBhcnRzIn0sdXNlcjp7bGVhZFR5cGU6InJlcXVlc3QgYm9keSBzaG9wIn0sZXZlbnQ6e2FjdGlvbjoibGVhZCBzdWJtaXR0ZWR8dG9vbCJ9fSxDb250YWN0UmVxdWVzdDp7cGFnZTp7cGFnZU5hbWU6ImRjOmFib3V0IHVzOmNvbnRhY3QgdXM6dGhhbmsgeW91IixwYWdlTmFtZU5vVmVoaWNsZToiZGM6YWJvdXQgdXM6Y29udGFjdCB1czp0aGFuayB5b3UiLHRvb2w6ImRlZmF1bHQgZm9ybSIsdG9vbERlc2NyaXB0b3I6ImNvbnRhY3QgdXM6Y29udGFjdCJ9LHVzZXI6e2xlYWRUeXBlOiJjb250YWN0IHVzOmNvbnRhY3QifSxldmVudDp7YWN0aW9uOiJsZWFkIHN1Ym1pdHRlZHx0b29sIn19LG1lbnVDb250YWN0VXM6e3BhZ2U6e2hpZXJhcmNoeToiYWJvdXQgdXM6ZXhwcmVzcyByZXF1ZXN0IixwYWdlTmFtZToiZGM6YWJvdXQgdXM6ZXhwcmVzcyByZXF1ZXN0OnRoYW5rIHlvdSIsCnBhZ2VOYW1lTm9WZWhpY2xlOiJkYzphYm91dCB1czpleHByZXNzIHJlcXVlc3Q6dGhhbmsgeW91Iix0b29sOiJkZWZhdWx0IGZvcm0iLHRvb2xEZXNjcmlwdG9yOiJleHByZXNzIHJlcXVlc3Q6Y29udGFjdCIsc2l0ZVNlY3Rpb246ImFib3V0IHVzIn0sdXNlcjp7bGVhZFR5cGU6ImV4cHJlc3MgcmVxdWVzdDpjb250YWN0In0sZXZlbnQ6e2FjdGlvbjoibGVhZCBzdWJtaXR0ZWR8dG9vbCJ9fSxDcmVkaXRTY29yZTpmdW5jdGlvbigpe3ZhciBkPSJ2ZWhpY2xlIGRldGFpbHMiLGI9InZkcCI7JCgiYm9keSIpLmlzKCIjTkVXQ0FSREVUQUlMUyIpJiYoZD1iPSJ2ZWhpY2xlIik7cmV0dXJue3BhZ2U6e2hpZXJhcmNoeToic2hvcHBpbmcgdG9vbHM6Y3JlZGl0IGNoZWNrPHNpLWNhdGVnb3J5PjxzaS1zdWZmaXg+IixwYWdlTmFtZToiZGM6PHBhZ2VJZE5vU3VmZml4PjpjcmVkaXQgY2hlY2s6dGhhbmsgeW91PHNpLXN1ZmZpeD4iLHBhZ2VOYW1lTm9WZWhpY2xlOiJkYzo8cGFnZUlkTm9TdWZmaXg+OmNyZWRpdCBjaGVjazp0aGFuayB5b3UiLAp0b29sOiJkZWZhdWx0IGZvcm0iLHRvb2xEZXNjcmlwdG9yOmQrIjpjcmVkaXQiLHNpdGVTZWN0aW9uOiI8c2l0ZVNlY3Rpb24+In0sdXNlcjp7bGVhZFR5cGU6YisiOmNyZWRpdCJ9LGV2ZW50OnthY3Rpb246ImxlYWQgc3VibWl0dGVkfHRvb2wifX19LE1vbnRobHlQYXltZW50czp7cGFnZTp7aGllcmFyY2h5OiJzaG9wcGluZyB0b29sczpnZXQgcXVvdGU8c2ktY2F0ZWdvcnk+OjxuYW1lcGxhdGU+IixwYWdlTmFtZToiZGM6PHBhZ2VJZE5vU3VmZml4Pjp2cmZxOnRoYW5rIHlvdTxzaS1zdWZmaXg+IixwYWdlTmFtZU5vVmVoaWNsZToiZGM6PHBhZ2VJZE5vU3VmZml4Pjp2cmZxOnRoYW5rIHlvdSIsdG9vbDoiZXZlbnQ6Z2V0IHF1b3RlIix0b29sRGVzY3JpcHRvcjoidmVoaWNsZSBkZXRhaWxzOmdldCBxdW90ZSIsc2l0ZVNlY3Rpb246ImdldCBxdW90ZSIsdmFyaWFudE5hbWU6InZyZnEtY29tcGxldGUifSx1c2VyOntsZWFkVHlwZToidmRwOnZyZnEifSxldmVudDp7YWN0aW9uOiJsZWFkIHN1Ym1pdHRlZHx0b29sIn19LApBdmFpbGFiaWxpdHk6ZnVuY3Rpb24oKXt2YXIgZD0idmVoaWNsZSBkZXRhaWxzIixiPSJ2ZHAiOyQoImJvZHkiKS5pcygiI05FV0NBUkRFVEFJTFMiKSYmKGQ9Yj0idmVoaWNsZSIpO3JldHVybntwYWdlOntoaWVyYXJjaHk6InNob3BwaW5nIHRvb2xzOmNvbmZpcm0gYXZhaWxhYmlsaXR5PHNpLWNhdGVnb3J5PjxzaS1zdWZmaXg+IixwYWdlTmFtZToiZGM6PHBhZ2VJZE5vU3VmZml4Pjpjb25maXJtIGF2YWlsYWJpbGl0eTp0aGFuayB5b3U8c2ktc3VmZml4PiIscGFnZU5hbWVOb1ZlaGljbGU6ImRjOjxwYWdlSWROb1N1ZmZpeD46Y29uZmlybSBhdmFpbGFiaWxpdHk6dGhhbmsgeW91Iix0b29sOiJldmVudDpjb25maXJtIGF2YWlsYWJpbGl0eSIsdG9vbERlc2NyaXB0b3I6ZCsiOmNvbmZpcm0gYXZhaWxhYmlsaXR5IixzaXRlU2VjdGlvbjoiPHNpdGVTZWN0aW9uPiJ9LHVzZXI6e2xlYWRUeXBlOmIrIjpjb25maXJtIGF2YWlsYWJpbGl0eSJ9LGV2ZW50OnthY3Rpb246ImxlYWQgc3VibWl0dGVkfHRvb2wifX19LAoiVGVzdERyaXZlKD86TmV3KT8iOntwYWdlOntoaWVyYXJjaHk6InNob3BwaW5nIHRvb2xzOnRlc3QgZHJpdmU8c2ktY2F0ZWdvcnk+PHNpLXN1ZmZpeD4iLHBhZ2VOYW1lOiJkYzp0ZXN0IGRyaXZlOnRoYW5rIHlvdTxzaS1zdWZmaXg+IixwYWdlTmFtZU5vVmVoaWNsZToiZGM6dGVzdCBkcml2ZTp0aGFuayB5b3UiLHRvb2w6ImV2ZW50OmxlYWQgc3VibWl0dGVkIix0b29sRGVzY3JpcHRvcjoidGVzdCBkcml2ZSIsc2l0ZVNlY3Rpb246InRlc3QgZHJpdmUifSx1c2VyOntsZWFkVHlwZToidGVzdCBkcml2ZSJ9LGV2ZW50OnthY3Rpb246ImxlYWQgc3VibWl0dGVkfHRvb2wifX0sQ29udGFjdFVzUmVxdWVzdDp7cGFnZTp7aGllcmFyY2h5OiJzaG9wcGluZyB0b29sczpjb250YWN0PHNpLWNhdGVnb3J5PjxzaS1zdWZmaXg+IixwYWdlTmFtZToiZGM6dmVoaWNsZTo8dmRwLWN0YS1idG4tdGl0bGU+OnRoYW5rIHlvdTxzaS1zdWZmaXg+IixwYWdlTmFtZU5vVmVoaWNsZToiZGM6dmVoaWNsZTo8dmRwLWN0YS1idG4tdGl0bGU+OnRoYW5rIHlvdSIsCnRvb2w6ImV2ZW50OmxlYWQgc3VibWl0dGVkIix0b29sRGVzY3JpcHRvcjoiPHZkcC1jdGEtYnRuLXRpdGxlPiIsc2l0ZVNlY3Rpb246Ijx2ZHAtY3RhLWJ0bi10aXRsZT4ifSx1c2VyOntsZWFkVHlwZToiPHZkcC1jdGEtYnRuLXRpdGxlPiJ9LGV2ZW50OnthY3Rpb246ImxlYWQgc3VibWl0dGVkfHRvb2wifX0sTXVsdGlGb3JtX1NNUzp7cGFnZTp7aGllcmFyY2h5OiJzaG9wcGluZyB0b29sczpnZW5lcmFsIG9mZmVyPHNpLWNhdGVnb3J5Pjo8bmFtZXBsYXRlPiIscGFnZU5hbWU6ImRjOjxzaS10eXBlPjpzaTp2ZWhpY2xlIGRldGFpbHM6Z2VuZXJhbCBvZmZlcjp0aGFuayB5b3U8c2ktc3VmZml4PiIscGFnZU5hbWVOb1ZlaGljbGU6ImRjOjxzaS10eXBlPjpzaTp2ZWhpY2xlIGRldGFpbHM6Z2VuZXJhbCBvZmZlcjp0aGFuayB5b3UiLHRvb2w6ImRlZmF1bHQgZm9ybSIsdG9vbERlc2NyaXB0b3I6InZlaGljbGUgZGV0YWlsczpnZW5lcmFsIG9mZmVyIixzaXRlU2VjdGlvbjoic2VhcmNoIGludmVudG9yeSJ9LAp1c2VyOntsZWFkVHlwZToidmRwOmdlbmVyYWwgb2ZmZXIifX19LEw9ZnVuY3Rpb24oZCl7cmV0dXJuIGZ1bmN0aW9uKCl7ZGVidWdfZDJmdC5sb2coZCxhcmd1bWVudHMpfX0sWD1mdW5jdGlvbigpe3dpbmRvdy5fc2F0ZWxsaXRlPXdpbmRvdy5fc2F0ZWxsaXRlfHx7fTt3aW5kb3cuX3NhdGVsbGl0ZS5fbW9uaXRvcnM9d2luZG93Ll9zYXRlbGxpdGUuX21vbml0b3JzfHxbXTt3aW5kb3cuX3NhdGVsbGl0ZS5fbW9uaXRvcnMucHVzaCh7cnVsZVRyaWdnZXJlZDpMKCJydWxlIHRyaWdnZXJlZCIpLHJ1bGVDb21wbGV0ZWQ6TCgicnVsZSBjb21wbGV0ZWQiKSxydWxlQ29uZGl0aW9uRmFpbGVkOkwoInJ1bGUgY29uZGl0aW9uIGZhaWxlZCIpfSk7MDwkKCIjYWRvYmVfbGF1bmNoIikubGVuZ3RoP2NvbnNvbGUuZGVidWcoIkQyRlQgOjogQWRvYmUgTGF1bmNoIGFscmVhZHkgbG9hZGVkIik6KCJvYmplY3QiPT09dHlwZW9mIHomJih6PXpbd2luZG93LmRlcGxveW1lbnRUeXBlXSksZnVuY3Rpb24oZCwKYixoKXt2YXIgYz1kLmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpO2MudHlwZT0idGV4dC9qYXZhc2NyaXB0IjtjLmFzeW5jPSEwO2MuaWQ9aDtjLnNyYz1iO2Muc2V0QXR0cmlidXRlKCJkYXRhLW90LWlnbm9yZSIsIiIpO2QuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImhlYWQiKVswXS5hcHBlbmRDaGlsZChjKX0oZG9jdW1lbnQseiwiYWRvYmVfbGF1bmNoIiksL2QyY21lZGlhXC5jYSQvLnRlc3Qod2luZG93LmxvY2F0aW9uLmhvc3QpJiYoZW5hYmxlRGVidWc9ZnVuY3Rpb24oKXt0cnl7d2luZG93Ll9zYXRlbGxpdGUuc2V0RGVidWcoITApfWNhdGNoKGQpe3JldHVybiBkZWJ1Z19kMmZ0LmxvZyhkKSxzZXRUaW1lb3V0KGVuYWJsZURlYnVnLDMwMCl9fSkpfSxZPWZ1bmN0aW9uKGQpe3ZhciBiPXt9O2QucmVwbGFjZSgvKCg\/OkZvcmR8TGluY29sbil8KD86MjBbMC05XXsyfSkpKy0oW14tXSspLSgoPzpbXi1cLl0rKXwoPzoyMFswLTldezJ9KVwuaHRtbCkvLGZ1bmN0aW9uKGgsYyxhLGUpey9eMjBbMC05XXsyfSQvLnRlc3QoYyk\/CihjJiYoYi55ZWFyPWMpLGEmJihiLm1ha2U9YSksZSYmKGIubW9kZWw9ZS5yZXBsYWNlKC9fL2csIiAiKS5yZXBsYWNlKC9cYihbQS1aXSlccy8sIiQxLSIpKSk6L14yMFswLTldezJ9JC8udGVzdChlKSYmKGMmJihiLnllYXI9ZSksYSYmKGIubWFrZT1jKSxlJiYoYi5tb2RlbD1hKSl9KTtyZXR1cm4gYn0seD1uZXcgZnVuY3Rpb24oKXtmdW5jdGlvbiBkKGMsYSl7cmV0dXJuIGZ1bmN0aW9uKCl7Yy5hcHBseShudWxsLGEpfX12YXIgYj10aGlzOyQuZXh0ZW5kKCEwLGIse2xhc3RFdmVudDpudWxsLHN0YXRpY0RhdGE6SSxldmVudERhdGE6bnVsbH0pO3ZhciBoPWZ1bmN0aW9uKGMpe3ZhciBhPSQuZXh0ZW5kKCEwLHt9LHQsYi5ldmVudERhdGEsUCgpKTthLnBhZ2VJZE5vU3VmZml4PWEucGFnZUlkLnJlcGxhY2UoLzo\/KDwoc2ktc3VmZml4fG5hbWVwbGF0ZXwpPnxmaW5hbmNlIGRlcGFydG1lbnQpJC8sIiIpO2M9Yy5yZXBsYWNlKC88KFtePl0rKT4vaWcsZnVuY3Rpb24oZSxsKXt0cnl7c3dpdGNoKGwpe2Nhc2UgInBhZ2VOYW1lIjpyZXR1cm4iZGM6IisKYS5wYWdlSWQ7Y2FzZSAicGFnZUlkTm9TdWZmaXgiOnJldHVybiBhLnBhZ2VJZE5vU3VmZml4O2Nhc2UgInNlY3Rpb24iOnZhciBmPWEucGFnZUlkO2lmKC9ec2VydmljZTovLnRlc3QoZikpcmV0dXJuL3RpcmVzLy50ZXN0KGYpPyJzZXJ2aWNlIGFuZCB0aXJlcyI6InNlcnZpY2UgYW5kIHBhcnRzIjswPGYuaW5kZXhPZigiOiIpJiYoZj1mLnNwbGl0KCI6IilbMF0pO3JldHVybiBmO2Nhc2UgInBhZ2VJZCI6Y2FzZSAicGFnZWlkIjpyZXR1cm4gYS5wYWdlSWQ7Y2FzZSAiY2tzVmlzaXRJZCI6dmFyIGc9bmV3IERhdGUscj1uZXcgRGF0ZShnLmdldEZ1bGxZZWFyKCksZy5nZXRNb250aCgpLGcuZ2V0RGF0ZSgpLDAsMCwwKSxuPU1hdGgucm91bmQoMTAwKk1hdGgucmFuZG9tKCkpLGs9Zy50b0lTT1N0cmluZygpLm1hdGNoKC9cZHsyfShcZHsyfSktKFxkezJ9KS0oXGR7Mn0pLykscD1uKzFFOSsxMDAqKGcuZ2V0VGltZSgpLXIuZ2V0VGltZSgpKSx2PWsuc2xpY2UoMSw0KS5qb2luKCIiKTsKcmV0dXJuIHYrIl9kY18iK3A7Y2FzZSAidmluUmVhbCI6cmV0dXJuKCIiK2EudmluKS50b0xvd2VyQ2FzZSgpO2Nhc2UgIm1vZGVsWWVhciI6dmFyIEM9cGFyc2VJbnQoYS55ZWFyKTtyZXR1cm4gMDxDP0M6IiEhVU5ERUYhISI7Y2FzZSAibmFtZXBsYXRlIjp2YXIgdT1hLm1ha2Usdz1hLm1vZGVsO3c9KCIiK2EubW9kZWwpLnJlcGxhY2UoIl8iLCIgIix3KTtyZXR1cm4gdSYmdyYmImJyYW5kIiE9dS50b0xvd2VyQ2FzZSgpPyh1KyIgIit3KS50b0xvd2VyQ2FzZSgpOiIhIVVOREVGISEiO2Nhc2UgIm9uY2xpY2tMaW5rTmFtZSI6aWYoYS5pc0NsaWNrVG9DYWxsKXJldHVybmBkYzoke2EucGFnZUlkfTpjbGljay10by1jYWxsYDtpZihhLnBhZ2VJZC5tYXRjaCgvOnNpOnZlaGljbGUgZGV0YWlscy8pJiYicGF5bWVudCBlc3RpbWF0b3IiPT09YS5jb250ZW50RmxhZylyZXR1cm4iZGM6IithLnNpVHlwZSsiOnNpOnZlaGljbGUgZGV0YWlsczpwYXltZW50IGVzdGltYXRvcjpjb250ZW50IGFjdGlvbjo8bmFtZXBsYXRlPiI7CmlmKGEucGFnZUlkLm1hdGNoKC9maW5hbmNlOmZpbmFuY2UgZGVwYXJ0bWVudC8pJiYiZ2V0IGFwcHJvdmVkIj09PWEuY29udGVudEZsYWcpcmV0dXJuImRjOmZpbmFuY2U6ZmluYW5jZSBkZXBhcnRtZW50OmNvbnRlbnQ6YWN0aW9uIjtpZihhLnBhZ2VJZC5tYXRjaCgvc3BlY2lhbHM6b2ZmZXJzLykmJmEuY29udGVudEZsYWcubWF0Y2goL29mZmVyIGNsaWNrLykpcmV0dXJuImRjOnNwZWNpYWxzOm9mZmVyczpjb250ZW50OmFjdGlvbiI7aWYoYS5oYXNPd25Qcm9wZXJ0eSgiY29udGVudEZsYWciKSYmYS5jb250ZW50RmxhZy5tYXRjaCgvYnJvY2h1cmUgZG93bmxvYWQvKSlyZXR1cm5gZGM6JHthLnBhZ2VJZE5vU3VmZml4fTpkb3dubG9hZGA7cD0iIjthLnBhZ2VJZC5tYXRjaCgvOnNpOi8pJiYocD0iPHNpLXN1ZmZpeD4iKTtyZXR1cm4iZGM6IithLnBhZ2VJZE5vU3VmZml4KyI6Y29udGVudDphY3Rpb24iK3A7Y2FzZSAib25jbGljayI6Y29uc29sZS5sb2coIkQyRlQgdHJhY2tQcm9wNSBBIiwKbCxhLnBhZ2VJZCxhKTtpZihhLmlzQ2xpY2tUb0NhbGwpe3ZhciBtPSJzYWxlcyI7c3dpdGNoKGEuZGVwdCl7Y2FzZSAiVVNFRCI6Y2FzZSAiTkVXIjptPSJzYWxlcyI7YnJlYWs7Y2FzZSAiUEFSVFMiOmNhc2UgIlNFUlZJQ0UiOm09YS5kZXB0LnRvTG93ZXJDYXNlKCl9cmV0dXJuIGEucGFnZUlkKyI6Y2xpY2stdG8tY2FsbDoiK219cmV0dXJuIGEuaGFzT3duUHJvcGVydHkoImNvbnRlbnRGbGFnIik\/KG09ImNvbnRlbnQ6Iiwvc2k6dmxzfHZlaGljbGUgZGV0YWlscy8udGVzdChhLnBhZ2VJZCkmJihtPSIiKSwvOmZpbmFuY2UgZGVwYXJ0bWVudC8udGVzdChhLnBhZ2VJZCk\/ImRjOmZpbmFuY2U6IGZpbmFuY2UgZGVwYXJ0bWVudDpjb250ZW50OmdldCBhcHByb3ZlZCI6YS5wYWdlSWQubWF0Y2goL2V2IChjaGFyZ2luZ3xsaWZlc3R5bGV8b3duZXJzaGlwfHZocCkvKT9hLmNvbnRlbnRGbGFnLm1hdGNoKC9icm9jaHVyZSBkb3dubG9hZC8pP2EucGFnZUlkKyI6YnJvY2h1cmUgZG93bmxvYWQ6PGJyb2NodXJlTmFtZT4iOgphLmNvbnRlbnRGbGFnLm1hdGNoKC9jaGFyZ2luZyB1cGRhdGVzLyk\/IjxwcmVmaXg+IithLnBhZ2VJZCsiOmdldCB1cGRhdGVzIjphLnBhZ2VJZC5tYXRjaCgvZXYgbGlmZXN0eWxlLyl8fGEucGFnZUlkLm1hdGNoKC9ldiBjaGFyZ2luZy8pP2EuY29udGVudEZsYWcubWF0Y2goL2V4cGxvcmUgKGYxNTB8bWFjaCkvKT8iPHByZWZpeD46ZXYgbGlmZXN0eWxlOnRlc3QgZHJpdmUiOmEucGFnZUlkKyI6Y29udGVudDoiK2EuY29udGVudEZsYWc6YS5wYWdlSWQrIjpjb250ZW50OnJlYWQgYXJ0aWNsZSI6YS5wYWdlSWROb1N1ZmZpeCsiOiIrbStoKGEuY29udGVudEZsYWcpKTphLmlzR2xvYmFsP2EucGFnZUlkTm9TdWZmaXgrIjo8Y29udGVudC1hY3Rpb24+IjoiISFVTkRFRiEhIjtjYXNlICJwYWdlbmFtZS1uby12ZWhpY2xlIjp2YXIgeT1JLnBhZ2VJZDt5PXkucmVwbGFjZSgvOj88KG5hbWVwbGF0ZXxzaS1zdWZmaXgpPiQvLCIiKTtyZXR1cm4iZGM6IitoKHkpO2Nhc2UgInRvb2wiOnJldHVybiBhLmlzQ2xpY2tUb0NhbGw\/CiJldmVudDpjbGljayB0byBjYWxsIjoic3BlY2lhbHM6b2ZmZXJzIj09YS5wYWdlSWQ\/ImV2ZW50OmluY2VudGl2ZSB2aWV3cyI6InVuZGVmaW5lZCIhPT10eXBlb2YgYS5zdGVwJiYxPT1hLnN0ZXA\/ImdldCBwcmUtYXBwcm92ZWQiOiIhIVVOREVGISEiO2Nhc2UgInRvb2xEZXNjcmlwdG9yIjpyZXR1cm4gYS5pc0NsaWNrVG9DYWxsPyhtPSJnbG9iYWwiLC9zaTp2ZWhpY2xlIGRldGFpbHMvLnRlc3QoYS5wYWdlSWQpJiYobT0idmVoaWNsZSBkZXRhaWxzIiksImNsaWNrIHRvIGNhbGw6IittKToidW5kZWZpbmVkIiE9PXR5cGVvZiBhLnN0ZXAmJjE9PWEuc3RlcD8iZ2V0IHByZS1hcHByb3ZlZDpzdGFydGVkIjoic3BlY2lhbHM6b2ZmZXJzIj09YS5wYWdlSWQ\/ImluY2VudGl2ZSB2aWV3czpvZmZlcnMiOiIhIVVOREVGISEiO2Nhc2UgImhvdXJzLWRlcGFydG1lbnQiOnN3aXRjaCgoIiIrYS5kZXB0KS50b0xvd2VyQ2FzZSgpKXtjYXNlICJ1c2VkIjpjYXNlICJuZXciOnJldHVybiJzYWxlcyI7CmNhc2UgInBhcnRzIjpjYXNlICJzZXJ2aWNlIjpyZXR1cm4ic2VydmljZSBhbmQgcGFydHMifWJyZWFrO2Nhc2UgIm9mZmVyLW5hbWUiOnJldHVybiBhLmlzT0VNUmViYXRlPyJyZWJhdGUiOiJ1bmtub3duIjtjYXNlICJwcm9tby1uYW1lIjptPSQoYS5lbGVtZW50KS5jbG9zZXN0KCIucHJvbW9zIik7dmFyIHE9IiI7bS5sZW5ndGgmJihxPSQoIi5wcm9tby10aXRsZSIsbSkudGV4dCgpKTtyZXR1cm4iIiE9cT8iOiIrcToiIjtjYXNlICJzaS1maWx0ZXItdHlwZSI6Y2FzZSAic2ktdHlwZSI6cmV0dXJuIGEuc2FsZXNEZXB0JiYhL3NpOnZscy8udGVzdChhLnBhZ2VJZCkmJiJvdGhlciIhPWEuc2FsZXNEZXB0P2Euc2FsZXNEZXB0OnQuc2lUeXBlO2Nhc2UgInN0ZXAtbnVtYmVyIjp2YXIgTT1hLnN0ZXA\/cGFyc2VJbnQoYS5zdGVwKTowO3JldHVybi9maW5hbmNlLy50ZXN0KGEucGFnZUlkKSYmMT09TT8iMTpjdXN0b21lciBpbmZvIjpNO2Nhc2UgInNpLWZpbHRlci1kZXRhaWwiOnJldHVybiB2PQoiZmlsdGVyIixwPSIiLCJ1bmRlZmluZWQiIT10eXBlb2YgYS5maWx0ZXJUeXBlJiYoIlNvcnQiPT1hLmZpbHRlclR5cGU\/KHY9InNvcnQgYnkiLHA9KCIiK2EuZmlsdGVyRGV0YWlsKS5yZXBsYWNlKC9cVysvZywiICIpKToocD0oIiIrYS5maWx0ZXJUeXBlKS5yZXBsYWNlKC9cVysvZywiICIpLCJDYXJidXJhbnQiPT1wJiYocD0iZnVlbCIpKSksInVuZGVmaW5lZCIhPXAmJihwPSI6IitwKSwoditwKS50b0xvd2VyQ2FzZSgpO2Nhc2UgInNpLXNvcnQtdHlwZSI6aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBhLmJ0blZhbHVlKXJldHVybiIiO3N3aXRjaChhLmJ0blZhbHVlKXtjYXNlIDE6cmV0dXJuInByaWNlLWFzYyI7Y2FzZSAyOnJldHVybiJwcmljZS1kZXNjIjtjYXNlIDM6cmV0dXJuIm1pbGVhZ2UtYXNjIjtjYXNlIDQ6cmV0dXJuIm1pbGVhZ2UtZGVzYyI7Y2FzZSA1OnJldHVybiJ5ZWFyLWFzYyI7Y2FzZSA2OnJldHVybiJ5ZWFyLWRlc2MiO2Nhc2UgNzpyZXR1cm4iYnJhbmQiO2Nhc2UgODpyZXR1cm4iaG91c2UtYnJhbmQiOwpjYXNlIDk6cmV0dXJuImFycml2YWwtYXNjIjtjYXNlIDEwOnJldHVybiJhcnJpdmFsLWRlc2MifWJyZWFrO2Nhc2UgInZkcC1jdGEtYnRuLXRpdGxlIjp2YXIgTj1hLmJ1dHRvblRleHQ7cmV0dXJuIE4\/Tj1OLnJlcGxhY2UoL1teYS16MC05XHMtXS9pZywiIikudHJpbSgpLnJlcGxhY2UoL1xzKy9nLCItIikudG9Mb3dlckNhc2UoKToiIjtjYXNlICJzaS1zdWZmaXgiOnJldHVybiB1PWEubWFrZSx3PWEubW9kZWwsdSYmdz8iOiIrKHUrIiAiK3cpLnRvTG93ZXJDYXNlKCk6IiI7Y2FzZSAic2ktY2F0ZWdvcnkiOnZhciBEPWEudmVoaWNsZUNhdGVnb3J5O3JldHVybiBEJiYiMCIhPUQ\/KCI6IitEKS50b0xvd2VyQ2FzZSgpOiIiO2Nhc2UgInNlYXJjaERlcHRoIjpyZXR1cm4gbnVsbDtjYXNlICJwYWdlTG9hZExlYWRUeXBlIjpyZXR1cm4vOnNpOnZlaGljbGUgZGV0YWlscy8udGVzdChhLnBhZ2VJZCk\/InNpOnZscyI6IiEhVU5ERUYhISI7Y2FzZSAicGFnZUxvYWRFdmVudCI6cmV0dXJuLzpzaTovLnRlc3QoYS5wYWdlSWQpPwoic2VhcmNoIGludmVudG9yeSI6L3NwZWNpYWxzLy50ZXN0KGEucGFnZUlkKT8iaW5jZW50aXZlIHZpZXdzIjovdnl0Ly50ZXN0KGEucGFnZUlkKT8idmFsdWUgeW91ciB0cmFkZSI6IiEhVU5ERUYhISI7Y2FzZSAic2l0ZVNlY3Rpb24iOnJldHVybi86c2k6Ly50ZXN0KGEucGFnZUlkKXx8ImNvbW1lcmNpYWw6aG9tZSI9PWEucGFnZUlkPyJzZWFyY2ggaW52ZW50b3J5Ijovc2VydmljZS8udGVzdChhLnBhZ2VJZCk\/InNlcnZpY2UgYW5kIHBhcnRzIjovc3BlY2lhbHM6b2ZmZXJzLy50ZXN0KGEucGFnZUlkKT8ic3BlY2lhbHMiOi92eXQtcGFnZWlkLy50ZXN0KGEucGFnZUlkKT8idmFsdWUgeW91ciB0cmFkZSI6MDxhLnBhZ2VJZE5vU3VmZml4LmluZGV4T2YoIjoiKT9hLnBhZ2VJZE5vU3VmZml4LnNwbGl0KCI6IilbMF06YS5wYWdlSWROb1N1ZmZpeDtjYXNlICJoaWVyYXJjaHkiOi86c2k6dmxzLy50ZXN0KGEucGFnZUlkKSYmMT09YS5pc0dsb2JhbCYmJChhLmVsZW1lbnRbMF0pLmhhc0NsYXNzKCJkaXZDYXJQYXltZW50Q2FsY3VsYXRvciIpJiYKKEo9YS5lbGVtZW50KTtpZigvOnNpOi8udGVzdChhLnBhZ2VJZCkpaWYoMDwkKCIjZmx0Q2Fyb3NzZXJpZUlkIC5mbHRGaWx0ZXIgLmRpdkFsbFdyYXBwZXIgdWwuZGl2QnV0dG9uQm94ZXMgPiBsaS5zZWxlY3RlZCIpLmxlbmd0aClxPSJzaG9wcGluZyB0b29sczpzZWFyY2ggaW52ZW50b3J5LXZsczxzaS1jYXRlZ29yeT48c2ktc3VmZml4PiI7ZWxzZSByZXR1cm4ic2hvcHBpbmcgdG9vbHM6c2VhcmNoIGludmVudG9yeS12bHMiO2lmKCJ2ZWhpY2xlIj09YS5wYWdlSWROb1N1ZmZpeClyZXR1cm4idmVoaWNsZTo8bW9kZWxZZWFyPjxzaS1jYXRlZ29yeT46PG5hbWVwbGF0ZT4iOy9jb21tZXJjaWFsLy50ZXN0KGEucGFnZUlkKSYmKHE9ImNvbW1lcmNpYWw6aG9tZSIpO2lmKC9zcGVjaWFsczpvZmZlcnMvLnRlc3QoYS5wYWdlSWQpKXJldHVybiJzcGVjaWFscyI7aWYoL3Rlc3QgZHJpdmUvLnRlc3QoYS5wYWdlSWQpKXJldHVybiJzaG9wcGluZyB0b29sczo8cGFnZUlkTm9TdWZmaXg+IjsKaWYoL15maW5hbmNlOi8udGVzdChhLnBhZ2VJZCkpcmV0dXJuIGEucGFnZUlkTm9TdWZmaXg7aWYoL15jdXN0b206Ly50ZXN0KGEucGFnZUlkKSlyZXR1cm4iY3VzdG9tIjttPS9ec2VydmljZTovO3JldHVybiBtLnRlc3QoYS5wYWdlSWQpP2EucGFnZUlkLnJlcGxhY2UobSwiPHNlY3Rpb24+OiIpOnE\/cTphLnBhZ2VJZDtjYXNlICJwYXltZW50LWVzdGltYXRvci1oaWVyYXJjaHkiOnZhciBFPSQoSlswXSk7RD1FLmF0dHIoImRhdGEtYm9keVR5cGUiKTt1PUUuYXR0cigiZGF0YS1tYWtlIik7dz1FLmF0dHIoImRhdGEtbW9kZWwiKTt2YXIgRj0ic2hvcHBpbmcgdG9vbHM6cGF5bWVudCBlc3RpbWF0b3IiO0QmJihGKz0iOiIrRCk7dSYmKEYrPSI6Iit1KyIgIit3KTtyZXR1cm4gRi50b0xvd2VyQ2FzZSgpO2Nhc2UgInBheW1lbnQtZXN0aW1hdG9yLXNpLXN1ZmZpeCI6cmV0dXJuIEU9JChKWzBdKSx1PUUuYXR0cigiZGF0YS1tYWtlIiksdz1FLmF0dHIoImRhdGEtbW9kZWwiKSxGPSIiLAp1JiYoRis9IjoiK3UrIiAiK3cpLEYudG9Mb3dlckNhc2UoKTtjYXNlICJyYWRVSVZlcnNpb24iOm09InBjIjtjb25zdCBIPWRvY3VtZW50LmJvZHkub2Zmc2V0V2lkdGg7NzY4Pkg\/bT0ibW9iaWxlIjo5OTI+SCYmKG09InRhYmxldCIpO3JldHVybiJ1aTpyYWQ6IittO2Nhc2UgInZhcmlhbnROYW1lIjpzd2l0Y2goYS5wYWdlSWQpe2Nhc2UgImhvbWUiOnJldHVybiJob21lLWxvYWQifXJldHVybi9zaTp2ZWhpY2xlIGRldGFpbHMvLnRlc3QoYS5wYWdlSWQpPyJzaS1kZXRhaWxzLWxvYWQiOi9zaTp2bHMvLnRlc3QoYS5wYWdlSWQpPyJzaS1yZXN1bHRzLWxvYWQiOi9zcGVjaWFsczpvZmZlcnMvLnRlc3QoYS5wYWdlSWQpPyJpbmNlbnRpdmUtdmlld3MiOiJnbG9iYWwtbG9hZCI7Y2FzZSAiZ2V0LXByZS1hcHByb3ZlZC12YXJpYW50TmFtZSI6cmV0dXJuL2ZpbmFuY2U6Ly50ZXN0KGEucGFnZUlkKSYmMT09YS5zdGVwPyJnZXQtcHJlLWFwcHJvdmVkLWxvYWQiOiJnbG9iYWwtb3ZlcmxheSI7CmNhc2UgImNvbnRlbnQtYWN0aW9uIjpyZXR1cm4gYS5jb250ZW50QWN0aW9uP2EuY29udGVudEFjdGlvbjoiIjtjYXNlICJjdXN0b20tdGl0bGUiOnZhciBRPXdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZS5tYXRjaCgvXC8oW14vXSspXC5odG1sJC8pO3JldHVybiBRWzFdP1FbMV06ImN1c3RvbSI7Y2FzZSAic3BlY3MtdG9nZ2xlLXR5cGUiOnJldHVybiBhLnNwZWNzVHlwZXx8IiI7Y2FzZSAidmFsdWUtdHJhZGUtcHJlZml4IjpyZXR1cm4vdmVoaWNsZSBkZXRhaWxzLy50ZXN0KGEucGFnZUlkKT8idmRwIjovXnZlaGljbGUvLnRlc3QoYS5wYWdlSWQpPyJ2ZWhpY2xlIjoiZ2xvYmFsIjtjYXNlICJmb3JtLWxhYmVsIjpyZXR1cm4gZGVidWdfZDJmdC5sb2coYSksYS5mb3JtTGFiZWw7Y2FzZSAiZXhpdC10eXBlIjpyZXR1cm4vZmluYW5jZS8udGVzdChhLmhyZWYpPyJkZDpmaW5hbmNlIjovKGNvbmZpZ3VyZXxidWlsZCkvLnRlc3QoYS5ocmVmKT8iZGQ6Y29uZmlndXJlIjovZm9yZGFjY2Vzcy8udGVzdChhLmhyZWYpPwoiZGQ6cGFydHMiOmEucGFnZUlkLm1hdGNoKC9ldiAoY2hhcmdpbmd8bGlmZXN0eWxlfG93bmVyc2hpcHx2aHApLyk\/L2FmZm9yZGFiaWxpdHkvLnRlc3QoYS5ocmVmKT8iZnY6bHA6ZnVlbCBlZmZpY2llbnQ6dGVjaG5vbG9naWVzOmFmZm9yZGFiaWxpdHkiOi9jaGFyZ2luZy8udGVzdChhLmhyZWYpPyJmdjpscDpmdWVsIGVmZmljaWVudDp0ZWNobm9sb2dpZXM6aG9tZSBjaGFyZ2luZyI6ImV4aXQiOiJkZDoiK2EuaHJlZjtjYXNlICJob21lcGFnZS1iYW5uZXItbmFtZXBsYXRlIjp2YXIgQT1hLmVsZW1lbnQuYXR0cigiaHJlZiIpO3JldHVybiIiIT1BJiZ2b2lkIDAhPT1BPyhBPUEucmVwbGFjZSgiLyIsIiIpLEE9QS5yZXBsYWNlKCItZW4uaHRtbCIsIiIpLEE9QS5yZXBsYWNlKCItZnIuaHRtbCIsIiIpLEE9QS5yZXBsYWNlKCItIiwiICIpLCI6IitBKToiIjtjYXNlICJjb21wYXJpc29uLW5hbWVwbGF0ZSI6cmV0dXJuIGEuY29tcGFyZUNhcj8oIjoiK2EuY29tcGFyZUNhcikudG9Mb3dlckNhc2UoKToKYS5lbGVtZW50PygiOiIrYS5lbGVtZW50LnRleHQoKSkudG9Mb3dlckNhc2UoKToiIjtjYXNlICJjb21wYXJpc29uLXRyaW0iOnJldHVybiBtPSIiLDA8JCgiLnRyaW0tbGFiZWwiLGEuZWxlbWVudCkubGVuZ3RoJiYobT0kKCIudHJpbS1sYWJlbCIsYS5lbGVtZW50KS5odG1sKCkudG9Mb3dlckNhc2UoKSksIjoiK207Y2FzZSAic2VsZWN0ZWQtb3B0aW9uLXZhbHVlIjpyZXR1cm4gMDxhLmVsZW1lbnQubGVuZ3RoJiZhLmVsZW1lbnQuaXMoInNlbGVjdCIpP2EuZWxlbWVudC52YWwoKToiIjtjYXNlICJzZWxlY3RlZC1vcHRpb24tdGV4dCI6aWYoMDxhLmVsZW1lbnQubGVuZ3RoJiZhLmVsZW1lbnQuaXMoInNlbGVjdCIpKXt2YXIgUj1hLmVsZW1lbnQuZ2V0KDApO3JldHVybiAkKFIub3B0aW9uc1tSLnNlbGVjdGVkSW5kZXhdKS50ZXh0KCkudG9Mb3dlckNhc2UoKX1yZXR1cm4iIjtjYXNlICJ2ZHAtdHJpbSI6cmV0dXJuIGEuZWxlbWVudD8oIjoiK2EuZWxlbWVudC50ZXh0KCkpLnRvTG93ZXJDYXNlKCk6CiJ1bmtub3duIHRyaW0iO2Nhc2UgIm9wZW5faG91cnNfb25jbGljayI6cmV0dXJuImFib3V0IHVzOmNvbnRhY3QgdXMiPT1hLnBhZ2VJZCYmMDwkKGEuZWxlbWVudCkucGFyZW50cygiLm1haW5fYm94IikubGVuZ3RoP2EucGFnZUlkKyI6Y29udGVudDphY2NvcmRpb24gZXhwYW5kIjoiPHBhZ2VpZD46Y29udGVudDo8aG91cnMtZGVwYXJ0bWVudD4gaG91cnMiO2Nhc2UgInZ5dC1wYWdlaWQiOnJldHVybiBwPSJ2YWx1ZSB5b3VyIHRyYWRlIix2PSIiLGQyY21lZGlhLnBhZ2VEZXBhcnRtZW50KCksZDJjbWVkaWEudXJsLnBhcnNlKCksditwO2Nhc2UgInZlaGljbGVUcmltIjpjYXNlICJ2ZWhpY2xlQ29sb3IiOmNhc2UgInZlaGljbGVUYW5zbWlzc2lvbiI6Y2FzZSAidmVoaWNsZVByaWNlIjpyZXR1cm4idW5kZWZpbmVkIiE9PXR5cGVvZiBhW2xdJiYwPGFbbF0ubGVuZ3RoP2FbbF0udG9Mb3dlckNhc2UoKToiISFVTkRFRiEhIjtjYXNlICJicm9jaHVyZU5hbWUiOnJldHVybiBhLmhyZWYucmVwbGFjZSgvXi4qW1xcL10vLAoiIikucmVwbGFjZSgvXC5wZGYkLywiIil9fWNhdGNoKEgpe2RlYnVnX2QyZnQubG9nKCJSZXBsYWNlckVycm9yIixIKX1yZXR1cm4iISFVTkRFRjo6IitsKyIhISJ9KTtyZXR1cm4vPFtePl0rPi8udGVzdChjKT9oKGMpOmN9O2IuYXN5bmNpZnk9ZnVuY3Rpb24oYyl7c2V0VGltZW91dChjLDApfTtiLmhpdD1mdW5jdGlvbihjKXtkZWJ1Z19kMmZ0LmxvZygiZDJjIHRyYWNrIixjKTt3aW5kb3cuX3NhdGVsbGl0ZS50cmFjayhjKX07Yi5jbGVhclZhcnM9ZnVuY3Rpb24oKXtkZWJ1Z19kMmZ0LmxvZygiQ2xlYXIgX3NhdGVsbGl0ZSB2YXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iKTt0cnl7cy5jbGVhclZhcnMoKX1jYXRjaChjKXt9fTtiLnNldERpZ2l0YWxEYXRhPWZ1bmN0aW9uKGMpe2Z1bmN0aW9uIGEoZyxyKXtyZXR1cm4gZnVuY3Rpb24obixrKXsiZnVuY3Rpb24iPT10eXBlb2YgayYmKGs9ay5jYWxsKGIpKTtnW25dPWUobixyLGspOy9eISFVTkRFRi8udGVzdChnW25dKSYmCmRlbGV0ZSBnW25dO251bGw9PWdbbl0mJmRlbGV0ZSBnW25dOy9zdGVwLW51bWJlci8udGVzdChrKSYmKEc9ITApfX1mdW5jdGlvbiBlKGcscixuKXtyZXR1cm4gbnVsbCE9biYmMDxuLmxlbmd0aD8ic3RyaW5nIiE9dHlwZW9mIG4\/KGRlYnVnX2QyZnQubG9nKG4pLG4pOmgobik6InVuZGVmaW5lZCI9PXR5cGVvZiBmW2ddP251bGw6ImZ1bmN0aW9uIj09PXR5cGVvZiBmW2ddPyhnPWZbZ10uY2FsbChiLG4pLCJzdHJpbmciIT10eXBlb2YgZz9nOmgoZykpOiJzdHJpbmciIT10eXBlb2YgZltnXT9mW2ddOmgoZltnXSl9Yi5jbGVhclZhcnMoKTt2YXIgbD17fTtjfHwoYz17fSk7JC5leHRlbmQoITAsbCxVLGMpO3ZhciBmPXt9OyQuZXh0ZW5kKCEwLGYsYi5zdGF0aWNEYXRhKTtiLnBhcnNlRXZlbnREYXRhKGwpOyQuZWFjaChsLGZ1bmN0aW9uKCl7JC5lYWNoKHRoaXMsYSh0aGlzKSl9KTshMD09PUcmJihLPXBhcnNlRmxvYXQoSykrMSxHPSExKTt3aW5kb3cuZGlnaXRhbGRhdGE9bDtkZWJ1Z19kMmZ0LmxvZygiRDJGVCBGaW5hbCBkaWdpdGFsIGRhdGEiLAp3aW5kb3cuZGlnaXRhbGRhdGEpO08oKX07Yi5sb2NrZWQ9ITE7Yi5wbHJGYWN0b3J5PWZ1bmN0aW9uKGMsYSl7dmFyIGU9e2RhdGE6Yyx0eXBlOmEsaGFuZGxlcjpmdW5jdGlvbihsLGYpe2Y9Zj9mOnt9O3ZhciBnPSQodGhpcyk7Yi5hc3luY2lmeShmdW5jdGlvbigpe2lmKGIubG9ja2VkKXJldHVybiBzZXRUaW1lb3V0KGQoZS5oYW5kbGVyLGFyZ3VtZW50cyksNTAwKTtiLmxhc3RFdmVudD0kLmV4dGVuZCh7fSxsKTtiLmxhc3RFdmVudC5kYXRhPWY7Yi5sb2NrZWQ9ITA7dmFyIHI9e3BhZ2U6e30sdmVoaWNsZTp7fSxldmVudDp7fX07JC5leHRlbmQoITAscixlLmRhdGEpO3ZhciBuPSQuZXh0ZW5kKCEwLHt9LEJbIioiXSxCLnBvcHVwLEJbdC5wYWdlSWRdKTtpZigicGFnZWxvYWQiPT1lLnR5cGUpci5ldmVudC5hY3Rpb249IjxwYWdlTG9hZEV2ZW50PiI7ZWxzZXt2YXIgaz0hMTskLmVhY2gobixmdW5jdGlvbihwLHYpe2cuaXMocCkmJihrPSEwLCJmdW5jdGlvbiI9PXR5cGVvZiB2JiYKKHY9di5jYWxsKGIpLDA9PXYmJihrPSExKSksayYmKHI9JC5leHRlbmQoITAse30scix2KSkpfSk7aWYoInBvcHVwIj09ZS50eXBlJiYhMT09PWspe2IuY2xlYXJWYXJzKCk7Yi5sb2NrZWQ9ITE7cmV0dXJufX1YKCk7Yi5zZXREaWdpdGFsRGF0YShyKTsicGFnZWxvYWQiIT1lLnR5cGUmJndpbmRvdy5kaWdpdGFsZGF0YS5wYWdlLnZhcmlhbnROYW1lJiZiLmhpdCh3aW5kb3cuZGlnaXRhbGRhdGEucGFnZS52YXJpYW50TmFtZSk7Yi5jbGVhclZhcnMoKTtiLmxvY2tlZD0hMX0pfX07cmV0dXJuIGUuaGFuZGxlcn07Yi5kY3JGYWN0b3J5PWZ1bmN0aW9uKGMsYSl7dmFyIGU9e2RhdGE6YyxoYW5kbGVyOmZ1bmN0aW9uKGwsZil7Zj1mP2Y6e307dmFyIGc9JCh0aGlzKSxyPWZ1bmN0aW9uKCl7aWYoYi5sb2NrZWQpcmV0dXJuIHNldFRpbWVvdXQoZChlLmhhbmRsZXIsYXJndW1lbnRzKSw1MDApO2IubG9ja2VkPSEwO3ZhciBuPSExLGs9ZS5kYXRhLHA9bnVsbCE9ay52YXJpYW50TmFtZT9rLnZhcmlhbnROYW1lOgoiZ2xvYmFsLW9uY2xpY2siLHY9JC5leHRlbmQoITAse30sQlsiKiJdLEJbdC5wYWdlSWRdKTskLmVhY2godixmdW5jdGlvbih5LHEpe249Zy5pcyh5KT8hMDpufSk7aWYobiYmMT09ay5pc0dsb2JhbClyZXR1cm4gYi5sb2NrZWQ9ITEsITA7ay5pc09FTVJlYmF0ZSYmKGsuY29udGVudEFjdGlvbj0hMCxmLmNvbnRlbnRGbGFnPSJvZmZlciBjbGljazo8b2ZmZXItbmFtZT4iLGYuaXNPRU1SZWJhdGU9ITApO2lmKGsuaXNHbG9iYWx8fGsuY29udGVudEFjdGlvbilmLmNvbnRlbnRBY3Rpb249ay5jb250ZW50QWN0aW9uLGYuaXNHbG9iYWw9ITAsJC5lYWNoKFYsZnVuY3Rpb24oeSxxKXtnLmlzKHkpJiYoZi5jb250ZW50RmxhZz1xLGYuY29udGVudEFjdGlvbj0hMCl9KTtiLmxhc3RFdmVudD0kLmV4dGVuZCh7fSxsKTtiLmxhc3RFdmVudC5kYXRhPWY7Yi5sYXN0RXZlbnQudGFyZ2V0RWxlbWVudD1nO2IubGFzdEV2ZW50LmNvbnRlbnRGbGFnPWsuY29udGVudEZsYWc7ay5pc0NsaWNrVG9DYWxsPQpiLmlzQ2xpY2tUb0NhbGwoKTtrLmlzQ2xpY2tUb0NhbGwmJihiLmxhc3RFdmVudC5kYXRhLmlzQ2xpY2tUb0NhbGw9ay5pc0NsaWNrVG9DYWxsLHA9ImNsaWNrLXRvLWNhbGwiKTt2YXIgQz17b25jbGljazp7b25jbGlja0xpbmtOYW1lOiI8b25jbGlja0xpbmtOYW1lPiIsb25jbGljazoiPG9uY2xpY2s+In0scGFnZTp7dmFyaWFudE5hbWU6cH19O2lmKGsuaXNFeGl0KXJldHVybiBiLmxvY2tlZD0hMSwhMDt2YXIgdT0hMTtrLmlzU2VhcmNoRmlsdGVyJiYkLmV4dGVuZCghMCxDLHtvbmNsaWNrOntvbmNsaWNrOiI8c2ktZmlsdGVyLXR5cGU+OnNpOnZsczo8c2ktZmlsdGVyLWRldGFpbD4iLG9uY2xpY2tMaW5rTmFtZToiZGM6PHNpLXR5cGU+OnNpOnZsczpjb250ZW50OmFjdGlvbjxzaS1zdWZmaXg+In19KTtpZihrLmlzRm9ybVN1Ym1pdCl7dmFyIHc9ITEsbT17dXNlcjp7Y2tzVmlzaXRJZDoiPGNrc1Zpc2l0SWQ+In0sb25jbGljazp7b25jbGlja0xpbmtOYW1lOm51bGwsb25jbGljazpudWxsfSwKZXZlbnQ6e2FjdGlvbjoibGVhZCBzdWJtaXR0ZWQifX07JC5lYWNoKFcsZnVuY3Rpb24oeSxxKXt0cnl7KG5ldyBSZWdFeHAoeSwiaSIpKS50ZXN0KGYubWFpbElEKSYmKHc9ITAsImZ1bmN0aW9uIj09dHlwZW9mIHE\/JC5leHRlbmQoITAsbSxxLmNhbGwoYixiLmxhc3RFdmVudCxrLGYsZykpOiQuZXh0ZW5kKCEwLG0scSkpfWNhdGNoKE0pe2RlYnVnX2QyZnQubG9nKCJJbnZhbGlkIHJ1bGUgIit5KX19KTskLmV4dGVuZCghMCxDLG0pO3U9IXc7Sz0wO0c9ITF9JC5lYWNoKHYsZnVuY3Rpb24oeSxxKXtnLmlzKHkpPyhxLnBhZ2UmJnEucGFnZS52YXJpYW50TmFtZSYmKHA9cS5wYWdlLnZhcmlhbnROYW1lKSxxLmlnbm9yZSYmKHU9ITApLEM9JC5leHRlbmQoITAse30sQyxxKSk6Ii5idXlfbm93X2NhcmRfY3RhIj09eSYmKGYuY29udGVudEFjdGlvbj0iYnV5IG5vdyIpfSk7aWYodSlyZXR1cm4gYi5sb2NrZWQ9ITEsITA7Yi5zZXREaWdpdGFsRGF0YShDKTtpZihrLmlzR2xvYmFsJiYhay5pc0NsaWNrVG9DYWxsJiYKIWYuY29udGVudEFjdGlvbilyZXR1cm4gYi5sb2NrZWQ9ITEsITA7Yi5oaXQod2luZG93LmRpZ2l0YWxkYXRhLnBhZ2UudmFyaWFudE5hbWUpO2IubG9ja2VkPSExO3JldHVybiEwfTthP2IuYXN5bmNpZnkocik6cigpfX07cmV0dXJuIGUuaGFuZGxlcn07Yi5leGl0RmFjdG9yeT1mdW5jdGlvbihjKXt2YXIgYT17ZGF0YTpjLGhhbmRsZXI6ZnVuY3Rpb24oZSxsKXt2YXIgZj0kKHRoaXMpO2w9e307dmFyIGc9YS5kYXRhLHI9cj9yOnt9O2IubGFzdEV2ZW50PWU7Yi5sYXN0RXZlbnQuZGF0YT1yO2IubGFzdEV2ZW50LnRhcmdldEVsZW1lbnQ9ZjtiLmxhc3RFdmVudC5jb250ZW50RmxhZz1nLmNvbnRlbnRGbGFnO2U9Zi5hdHRyKCJocmVmIik7cj0vaHR0cCg\/OnM\/KTpcL1wvW14vXSpmb3JkKD86YWNjZXNzKT9cLig\/OmNhfGNvbSkvO2UmJnIudGVzdChlKSYmKGIubGFzdEV2ZW50LmRhdGEuaHJlZj1lLGw9JC5leHRlbmQoITAse30sbCx7cGFnZTp7dmFyaWFudE5hbWU6InJlZmVycmFsLWV4aXQifSwKb25jbGljazp7b25jbGljazoicmVmZXJyYWw6PGV4aXQtdHlwZT4iLG9uY2xpY2tMaW5rTmFtZToicmVmZXJyYWw6ZXhpdCJ9LHZlaGljbGU6e21vZGVsWWVhcjoiPG1vZGVsWWVhcj4iLG5hbWVwbGF0ZToiPG5hbWVwbGF0ZT4ifSx1c2VyOntja3NWaXNpdElkOiI8Y2tzVmlzaXRJZD4ifSxldmVudDp7YWN0aW9uOiJicmFuZCByZWZlcnJhbCJ9fSksYi5zZXREaWdpdGFsRGF0YShsKSxiLmhpdCh3aW5kb3cuZGlnaXRhbGRhdGEucGFnZS52YXJpYW50TmFtZSkpfX07cmV0dXJuIGEuaGFuZGxlcn07Yi5pc0NsaWNrVG9DYWxsPWZ1bmN0aW9uKCl7dmFyIGM9IiIrYi5sYXN0RXZlbnQudGFyZ2V0RWxlbWVudC5hdHRyKCJocmVmIik7cmV0dXJuL3RlbDovLnRlc3QoYyk\/ITA6ITF9O2IucGFyc2VFdmVudERhdGE9ZnVuY3Rpb24oYyl7Yz1iLmxhc3RFdmVudC50YXJnZXRFbGVtZW50O2IuZXZlbnREYXRhPXt9O2lmKCFiLmxhc3RFdmVudClyZXR1cm4hMTtpZihudWxsIT1jKXtiLmV2ZW50RGF0YS5lbGVtZW50PQpjO3ZhciBhPWMuZGF0YSgpO2EmJihhLmJvZHl0eXBlJiYoYS5ib2R5VHlwZXx8KGEuYm9keVR5cGU9YS5ib2R5dHlwZSksYS52ZWhpY2xlQ2F0ZWdvcnl8fChhLnZlaGljbGVDYXRlZ29yeT1hLmJvZHl0eXBlKSxkZWxldGUgYS5ib2R5dHlwZSksJC5leHRlbmQoITAsYi5ldmVudERhdGEsYSkpO2E9IiIrYy5hdHRyKCJocmVmIik7Yi5ldmVudERhdGEuaHJlZj1hOyQuZXh0ZW5kKCEwLGIuZXZlbnREYXRhLFkoYSkpOyRwPWMucGFyZW50cygiLmZsdEJveCIpOzA8JHAubGVuZ3RoJiYoYi5ldmVudERhdGEuZmlsdGVyVHlwZT1iLnJlc29sdmVGaWx0ZXJUeXBlKCRwWzBdKSl9JC5leHRlbmQoITAsYi5ldmVudERhdGEsUCgpKTtiLmxhc3RFdmVudC5kYXRhJiYoJC5leHRlbmQoITAsYi5ldmVudERhdGEsYi5sYXN0RXZlbnQuZGF0YSksInVuZGVmaW5lZCIhPXR5cGVvZiBiLmV2ZW50RGF0YS5ib2R5VHlwZSYmKGM9IiIrYi5ldmVudERhdGEuYm9keVR5cGUsL15CT0RZVFlQRV8vLnRlc3QoYykmJgooYi5ldmVudERhdGEudmVoaWNsZUNhdGVnb3J5PWMuc3Vic3RyaW5nKDkpLnRvTG93ZXJDYXNlKCksInZhbiI9PWIuZXZlbnREYXRhLnZlaGljbGVDYXRlZ29yeSYmKGIuZXZlbnREYXRhLnZlaGljbGVDYXRlZ29yeT0ibWluaXZhbiIpKSkpO2IubGFzdEV2ZW50PSExfTtiLnJlc29sdmVGaWx0ZXJUeXBlPWZ1bmN0aW9uKGMpe3N3aXRjaCgkKGMpLnByb3AoImlkIikpe2Nhc2UgImZsdFRleHRTZWFyY2hJZCI6cmV0dXJuInNlYXJjaCI7Y2FzZSAiZmx0Q2F0ZWdvcmllSWQiOnJldHVybiJjYXRlZ29yeSI7Y2FzZSAiZmx0Q2VydGlmaWVkSWQiOnJldHVybiJjZXJ0aWZpZWQiO2Nhc2UgImZsdENhcm9zc2VyaWVJZCI6cmV0dXJuImJvZHkgdHlwZSI7Y2FzZSAiZmx0Q2FyYnVyYW50SWQiOnJldHVybiJmdWVsIjtjYXNlICJmbHRQcmljZUlkIjpyZXR1cm4icHJpY2UiO2Nhc2UgImZsdE1ha2VJZCI6cmV0dXJuIm1ha2UiO2Nhc2UgImZsdE1vZGVsSWQiOnJldHVybiJtb2RlbCI7Y2FzZSAiZmx0VHJpbXNJZCI6cmV0dXJuInRyaW0iOwpjYXNlICJmbHRZZWFySWQiOnJldHVybiJ5ZWFyIjtjYXNlICJmbHRLbUlkIjpyZXR1cm4ibWlsZWFnZSI7Y2FzZSAiZmx0Q29sb3JJZCI6cmV0dXJuImNvbG9yIjtjYXNlICJmbHRUcmFuc21pc3Npb25JZCI6cmV0dXJuInRyYW5zbWlzc2lvbiI7Y2FzZSAiZmx0T3B0aW9uSWQiOnJldHVybiJvcHRpb25zIjtjYXNlICJmbHRBcnJpdmFsc0lkIjpyZXR1cm4idGltZSJ9cmV0dXJuIm90aGVyIn07Yi5yZXNvbHZlVmFsdWVZb3VyVHJhZGVUaGFua1lvdT1mdW5jdGlvbihjLGEsZSxsKXthPSExO3ZhciBmPWw9Imdsb2JhbCI7Yz10aGlzLnN0YXRpY0RhdGEucGFnZUlkO3ZhciBnPSExO2UucG9wdXBEaXYmJihlPSQoIiMiK2UucG9wdXBEaXYpLDA8ZS5sZW5ndGgmJmUuaXMoIi5yZXZlYWwtbW9kYWwiKSYmKGc9ZSkpO2cmJihlPWcucG9wdXBpemUoKS5zZXR0aW5ncy5wb3B1cEV2ZW50U291cmNlLGE9L2Jhbm5lcnx0cmFkZWluYmFyLy50ZXN0KGUpKTthfHwoLzp2ZWhpY2xlIGRldGFpbHMvLnRlc3QoYyk\/CihsPSJ2ZWhpY2xlIGRldGFpbHMiLGY9InZkcCIpOmY9bD0idmVoaWNsZSIpO2U9e3BhZ2U6e3NpdGVTZWN0aW9uOiI8c2l0ZVNlY3Rpb24+IixoaWVyYXJjaHk6InNob3BwaW5nIHRvb2xzOnZhbHVlIHlvdXIgdHJhZGU8c2ktY2F0ZWdvcnk+PHNpLXN1ZmZpeD4iLHBhZ2VOYW1lOiJkYzo8cGFnZUlkTm9TdWZmaXg+OnZhbHVlIHlvdXIgdHJhZGU6dGhhbmsgeW91PHNpLXN1ZmZpeD4iLHBhZ2VOYW1lTm9WZWhpY2xlOiJkYzo8cGFnZUlkTm9TdWZmaXg+OnZhbHVlIHlvdXIgdHJhZGU6dGhhbmsgeW91Iix2YXJpYW50TmFtZToidmFsdWUteW91ci10cmFkZS1zdWJtaXQiLHRvb2w6ImV2ZW50OnZhbHVlIHlvdXIgdHJhZGUiLHRvb2xEZXNjcmlwdG9yOmwrIjp2YWx1ZSB5b3VyIHRyYWRlIn0sdXNlcjp7bGVhZFR5cGU6ZisiOnZhbHVlIHlvdXIgdHJhZGUifX07IjxzaS10eXBlPjpzaTp2ZWhpY2xlIGRldGFpbHM8c2ktc3VmZml4PiI9PWMmJiQuZXh0ZW5kKCEwLGUse3BhZ2U6e2hpZXJhcmNoeToic2hvcHBpbmcgdG9vbHM6dmFsdWUgeW91ciB0cmFkZTxzaS1jYXRlZ29yeT48c2ktc3VmZml4PiIsCnBhZ2VOYW1lOiJkYzo8cGFnZUlkTm9TdWZmaXg+OnZhbHVlIHlvdXIgdHJhZGU6dGhhbmsgeW91PHNpLXN1ZmZpeD4iLHBhZ2VOYW1lTm9WZWhpY2xlOiJkYzo8cGFnZUlkTm9TdWZmaXg+OnZhbHVlIHlvdXIgdHJhZGU6dGhhbmsgeW91Iix0b29sOiJldmVudDp2YWx1ZSB5b3VyIHRyYWRlIix0b29sRGVzY3JpcHRvcjoidmVoaWNsZSBkZXRhaWxzOnZhbHVlIHlvdXIgdHJhZGUifSx1c2VyOntsZWFkVHlwZToidmRwOnZhbHVlIHlvdXIgdHJhZGUifX0pOyI8dnl0LXBhZ2VpZD4iPT1jJiYkLmV4dGVuZCghMCxlLHtwYWdlOntwYWdlTmFtZToiZGM6dmFsdWUgeW91ciB0cmFkZTp0aGFuayB5b3U8c2ktc3VmZml4PiIscGFnZU5hbWVOb1ZlaGljbGU6ImRjOnZhbHVlIHlvdXIgdHJhZGU6dGhhbmsgeW91IixzaXRlU2VjdGlvbjoidmFsdWUgeW91ciB0cmFkZSIsaGllcmFyY2h5OiJ2YWx1ZSB5b3VyIHRyYWRlIix0b29sOiJldmVudDp2YWx1ZSB5b3VyIHRyYWRlIix0b29sRGVzY3JpcHRvcjoidmFsdWUgeW91ciB0cmFkZSJ9LAp1c2VyOntsZWFkVHlwZToidmFsdWUgeW91ciB0cmFkZSJ9fSk7InZhbHVlIHlvdXIgdHJhZGUiPT1jJiYkLmV4dGVuZCghMCxlLHtwYWdlOntwYWdlTmFtZToiZGM6dmFsdWUgeW91ciB0cmFkZTp0aGFuayB5b3U8c2ktc3VmZml4PiIscGFnZU5hbWVOb1ZlaGljbGU6ImRjOnZhbHVlIHlvdXIgdHJhZGU6dGhhbmsgeW91In19KTthJiYkLmV4dGVuZCghMCxlLHtwYWdlOntzaXRlU2VjdGlvbjoiZ2xvYmFsIixwYWdlTmFtZToiZGM6Z2xvYmFsOnZhbHVlIHlvdXIgdHJhZGU6dGhhbmsgeW91PHNpLXN1ZmZpeD4iLHBhZ2VOYW1lTm9WZWhpY2xlOiJkYzpnbG9iYWw6dmFsdWUgeW91ciB0cmFkZTp0aGFuayB5b3UifSx1c2VyOntsZWFkVHlwZToiZ2xvYmFsOnZhbHVlIHlvdXIgdHJhZGUifX0pO3JldHVybiBlfTtiLnJlc29sdmVQcmVBcHByb3ZhbFZhcnM9ZnVuY3Rpb24oYyxhKXt2YXIgZT0iaG9tZSI7c3dpdGNoKHQucGFnZUlkKXtjYXNlICI8c2ktdHlwZT46c2k6dmxzPHNpLXN1ZmZpeD4iOmU9CiJzZWFyY2giO2JyZWFrO2Nhc2UgInZlaGljbGU6PG5hbWVwbGF0ZT4iOmU9InZkcF9uZXciO2JyZWFrO2Nhc2UgIjxzaS10eXBlPjpzaTp2ZWhpY2xlIGRldGFpbHM8c2ktc3VmZml4PiI6ZT0idmRwX3VzZWQiO2JyZWFrO2Nhc2UgImZpbmFuY2U6ZmluYW5jZSBkZXBhcnRtZW50IjplPSJmaW5hbmNlIn1zd2l0Y2goYSl7Y2FzZSAiaGllcmFyY2h5Ijpzd2l0Y2goZSl7Y2FzZSAiZmluYW5jZSI6cmV0dXJuImZpbmFuY2UiO2Nhc2UgImhvbWUiOnJldHVybiI8c2VjdGlvbj46Z2V0IHByZWFwcHJvdmVkIjtjYXNlICJzZWFyY2giOmNhc2UgInZkcF9uZXciOmNhc2UgInZkcF91c2VkIjpyZXR1cm4ic2hvcHBpbmcgdG9vbHM6Z2V0IHByZWFwcHJvdmVkPHNpLWNhdGVnb3J5PjxzaS1zdWZmaXg+IjtkZWZhdWx0OnJldHVybiI8c2VjdGlvbj4ifWNhc2UgInBhZ2VOYW1lIjpjYXNlICJwYWdlTmFtZU5vVmVoaWNsZSI6c3dpdGNoKGMpe2Nhc2UgImZvcm0tc3RlcCI6cmV0dXJuImRjOjxwYWdlSWROb1N1ZmZpeD46Z2V0IHByZS1hcHByb3ZlZDo8c3RlcC1udW1iZXI+IjsKY2FzZSAiZm9ybS1zdWJtaXQiOnJldHVybiJkYzo8cGFnZUlkTm9TdWZmaXg+OmdldCBwcmUtYXBwcm92ZWQ6dGhhbmsgeW91In19fTtyZXR1cm4gYn07TygpOyQoeC5wbHJGYWN0b3J5KHt9LCJwYWdlbG9hZCIpKTtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7JChmdW5jdGlvbigpe3ZhciBkPSQuZXh0ZW5kKCEwLEJbIioiXSxCW3QucGFnZUlkXT9CW3QucGFnZUlkXTp7fSk7JC5lYWNoKGQsZnVuY3Rpb24oYixoKXskKGIpLm9uKCJjbGljayIseC5kY3JGYWN0b3J5KGgpKX0sITEpOyQoImJvZHkiKS5vbigiY2xpY2siLCJhIix4LmRjckZhY3Rvcnkoe2lzR2xvYmFsOiEwfSwhMSkpOyQoImJvZHkiKS5vbigiY2xpY2siLCJhIix4LmV4aXRGYWN0b3J5KHt9LCExKSk7JCgiYm9keSIpLm9uKCJjbGljayIsImJ1dHRvbiIseC5kY3JGYWN0b3J5KHtpc0dsb2JhbDohMH0sITEpKTskKCJib2R5Iikub24oImNoYW5nZSIsInNlbGVjdCIseC5kY3JGYWN0b3J5KHtpc0dsb2JhbDohMCxpc1NlbGVjdENoYW5nZTohMH0sCiExKSk7JCgiYm9keSIpLm9uKCJlbWFpbEhhbmRsZXIuc3VibWl0Iix4LmRjckZhY3Rvcnkoe2lzRm9ybVN1Ym1pdDohMCx2YXJpYW50TmFtZToiZm9ybS1zdWJtaXQifSwhMCkpOyQoZG9jdW1lbnQpLm9uKCJpbnZlbnRvcnlTZWFyY2guZmlsdGVyIiwiYm9keSIseC5kY3JGYWN0b3J5KHtpc1NlYXJjaEZpbHRlcjohMH0sITApKTskKGRvY3VtZW50KS5vbigicGF5bWVudENhbGN1bGF0b3IuY2xpY2siLCJkaXYiLHguZGNyRmFjdG9yeSh7aXNHbG9iYWw6ITB9LCExKSk7JChkb2N1bWVudCkub24oIm9lbV9yZWJhdGUuY2xpY2siLCIucHJvbW8tY2FyZC1vZW0iLHguZGNyRmFjdG9yeSh7aXNPRU1SZWJhdGU6ITB9LCExKSk7JCgiYm9keSIpLm9uKCJjbGljayIsImxpIix4LmRjckZhY3Rvcnkoe2lzR2xvYmFsOiEwfSwhMSkpOyQoZG9jdW1lbnQpLm9uKCJmb3JtLnN0ZXAiLCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSIseC5wbHJGYWN0b3J5KHtwYWdlOntoaWVyYXJjaHk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yZXNvbHZlUHJlQXBwcm92YWxWYXJzKCJmb3JtLXN0ZXAiLAoiaGllcmFyY2h5Iil9LHBhZ2VOYW1lOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucmVzb2x2ZVByZUFwcHJvdmFsVmFycygiZm9ybS1zdGVwIiwicGFnZU5hbWUiKX0scGFnZU5hbWVOb1ZlaGljbGU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yZXNvbHZlUHJlQXBwcm92YWxWYXJzKCJmb3JtLXN0ZXAiLCJwYWdlTmFtZU5vVmVoaWNsZSIpfSx2YXJpYW50TmFtZToiPGdldC1wcmUtYXBwcm92ZWQtdmFyaWFudE5hbWU+Iix0b29sOiI8dG9vbD4iLHRvb2xEZXNjcmlwdG9yOiI8dG9vbERlc2NyaXB0b3I+In19LCJmb3JtLXN0ZXAiKSk7JCgiLnJldmVhbC1tb2RhbCIpLm9uZSgicG9wdXBpemVyLm9uT3BlbiIseC5wbHJGYWN0b3J5KHtwYWdlOnt2YXJpYW50TmFtZToiZ2xvYmFsLW92ZXJsYXkifX0sInBvcHVwIikpfSl9LDI1MCk7d2luZG93LmQyZnQ9eH07Ci8qKiAvbS9qcy9kMmNfYXNjX2dhNC5qcyAqKi8KdmFyIF9fX2QyY19kMmNhc2NnYTRqc19jX29uPSIyMDI2LTAyLTAzIDE2OjMwOjAzIjsndXNlIHN0cmljdCc7dmFyIGFzY1RvcENhckRldGFpbHM9ITEsYXNjTGFzdFNlYXJjaEZpbHRlclNvcnQ9ITEsYXNjTGFzdEZpbHRlckNsaWNrPSExLGFzY0xhc3RDdGFDbGljaz0hMTtmdW5jdGlvbiBkMmFzY1B1YmxpY2F0aW9uRGF0ZShkKXtpZigiIj09ZClyZXR1cm4iIjt2YXIgaD1uZXcgRGF0ZShkKTtkPSIiKyhoLmdldE1vbnRoKCkrMSk7dmFyIGs9IiIraC5nZXREYXRlKCk7aD1oLmdldEZ1bGxZZWFyKCk7MTA+cGFyc2VGbG9hdChkKSYmKGQ9IjAiK2QpOzEwPnBhcnNlRmxvYXQoaykmJihrPSIwIitrKTtyZXR1cm5bZCxrLGhdLmpvaW4oIi8iKX1mdW5jdGlvbiBlbnN1cmVUcnV0aHkoZCl7cmV0dXJuIGQ\/ZDoiIn0KZnVuY3Rpb24gYXNjVXBkYXRlVG9wQ2FyRGF0YShkKXtpZighMSE9PWQpe2xldCBoPWQyYXNjUHVibGljYXRpb25EYXRlKGVuc3VyZVRydXRoeShkLmRhdGVfbGlzdGluZykpLGs9ZC5tYWtlY2VydCsiIjthc2NUb3BDYXJEZXRhaWxzPXtpdGVtX2lkOmVuc3VyZVRydXRoeShkLk5JViksaXRlbV9udW1iZXI6ZW5zdXJlVHJ1dGh5KGQuaWQpLGl0ZW1fcHJpY2U6ZW5zdXJlVHJ1dGh5KGQucHJpY2UpLGl0ZW1fY29uZGl0aW9uOmVuc3VyZVRydXRoeShkLnZjYXRlZ29yeSkudG9Mb3dlckNhc2UoKSxpdGVtX3llYXI6ZW5zdXJlVHJ1dGh5KGQueWVhcikudG9Mb3dlckNhc2UoKSxpdGVtX21ha2U6ZW5zdXJlVHJ1dGh5KGQubWFrZSkudG9Mb3dlckNhc2UoKSxpdGVtX21vZGVsOmVuc3VyZVRydXRoeShkLm1vZGVsKS50b0xvd2VyQ2FzZSgpLGl0ZW1fdmFyaWFudDplbnN1cmVUcnV0aHkoZC52ZXJzaW9uKS50b0xvd2VyQ2FzZSgpLGl0ZW1fY29sb3I6ZW5zdXJlVHJ1dGh5KGQuY29sb3IpLnRvTG93ZXJDYXNlKCksCml0ZW1fdHlwZTplbnN1cmVUcnV0aHkoZC5ib2R5VHlwZUlEKS50b0xvd2VyQ2FzZSgpLGl0ZW1fY2F0ZWdvcnk6ZW5zdXJlVHJ1dGh5KCIiKSxpdGVtX2Z1ZWxfdHlwZTplbnN1cmVUcnV0aHkoZC52Y2FyYnVyYW50KS50b0xvd2VyQ2FzZSgpLGl0ZW1faW52ZW50b3J5X2RhdGU6ZW5zdXJlVHJ1dGh5KGgpfTsiMjEiIT1rJiYiMCIhPWsmJmQyYXNjLnNldFZlaGljbGVTdGF0dXMoIkNQTyIpfWVsc2UgZD0kKCIjYXNjX2RpZ2l0YWxfZGF0YV9pbmZvIiksYXNjVG9wQ2FyRGV0YWlscz17aXRlbV9jb25kaXRpb246Im5ldyIsaXRlbV95ZWFyOiQoImlucHV0W25hbWU9J3llYXInXSIsZCkudmFsKCksaXRlbV9tYWtlOiQoImlucHV0W25hbWU9J21ha2UnXSIsZCkudmFsKCksaXRlbV9tb2RlbDokKCJpbnB1dFtuYW1lPSdtb2RlbCddIixkKS52YWwoKSxpdGVtX3R5cGU6JCgiaW5wdXRbbmFtZT0ndmVoaWNsZUNhdGVnb3J5J10iLGQpLnZhbCgpfTtjb25zb2xlLmxvZygiR0E0IGFzY1RvcENhckRldGFpbHMiLAphc2NUb3BDYXJEZXRhaWxzKX0KZnVuY3Rpb24gZDJhc2NSZXNvbHZlUGFnZUlkKGQpe2Q9ZC5yZXBsYWNlKC88XC8\/W14+XSsoPnwkKS9nLCIiKTtpZihkLmluY2x1ZGVzKCJzaTp2bHMiKSlyZXR1cm4ic2VhcmNoIGludmVudG9yeSI7aWYoZC5pbmNsdWRlcygiOnNpOnZlaGljbGUgZGV0YWlscyIpfHxkLmluY2x1ZGVzKCJ2ZWhpY2xlIikpcmV0dXJuInZkcCI7aWYoZC5pbmNsdWRlcygiY3VzdG9tOiIpKXJldHVybiJibG9nIjtpZihkLmluY2x1ZGVzKCJmaW5hbmNlIikpcmV0dXJuImNyZWRpdCI7aWYoZC5pbmNsdWRlcygic2VydmljZTpyZXF1ZXN0IGFwcG9pbnRtZW50IikpcmV0dXJuInJlcXVlc3QgYXBwb2ludG1lbnQiO2lmKGQuaW5jbHVkZXMoInNlcnZpY2U6b3JkZXIgcGFydHMiKSlyZXR1cm4ib3JkZXIgcGFydHMiO2lmKGQuaW5jbHVkZXMoImFib3V0IHVzOmNvbnRhY3QgdXMiKSlyZXR1cm4iY29udGFjdCB1cyI7aWYoZC5pbmNsdWRlcygiVU5LTk9XTiIpKXtpZigvYnVpbGQtYW5kLXByaWNlLy50ZXN0KHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSl8fC9jb25maWd1cmF0aW9uLWV0LXByaXgvLnRlc3Qod2luZG93LmxvY2F0aW9uLnBhdGhuYW1lKSlyZXR1cm4iYnVpbGQgYW5kIHByaWNlIjsKaWYoL3ByaWNlLW5ldy8udGVzdCh3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUpfHwvcHJpeC1uZXVmLy50ZXN0KHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSkpcmV0dXJuInByaWNlIHJlcXVlc3QiO2lmKC9icm9jaHVyZXMvLnRlc3Qod2luZG93LmxvY2F0aW9uLnBhdGhuYW1lKSlyZXR1cm4iYnJvY2h1cmUiO2lmKC9hdXRvLWpvYnMvLnRlc3Qod2luZG93LmxvY2F0aW9uLnBhdGhuYW1lKXx8L2VtcGxvaXMtYXV0b21vYmlsZS8udGVzdCh3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUpKXJldHVybiJqb2JzIjtpZigvb3VydGVhbS8udGVzdCh3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUpfHwvZXF1aXBlLy50ZXN0KHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSkpcmV0dXJuIm91ciB0ZWFtIn1yZXR1cm4gZH0KZnVuY3Rpb24gZDJhc2NSZXNvbHZlTGVhZFR5cGUoZCxoKXtoPWgudG9Mb3dlckNhc2UoKTtsZXQgaz17fTtmb3IodmFyIGwgaW4gZClrW2wudG9Mb3dlckNhc2UoKV09ZFtsXTtsPSQoImh0bWwiKS5hdHRyKCJsYW5nIik7ZD0iIjtsPSJlbiI9PWwudG9Mb3dlckNhc2UoKXx8ImVuZyI9PWwudG9Mb3dlckNhc2UoKT8iRU5HTElTSCI6IkZSRU5DSCI7dm9pZCAwIT09a1toXSYmdm9pZCAwIT09a1toXVtsXSYmKGQ9a1toXVtsXSk7cmV0dXJuIGR9CmZ1bmN0aW9uIEQyQVNDKGQpe2QucGFnZUlkT3JnPWQucGFnZUlkO2QucGFnZUlkPWQyYXNjUmVzb2x2ZVBhZ2VJZChkLnBhZ2VJZCk7ZC5kZWFsZXJfbmFtZT0kKCIjaGlkZGVuRGVhbGVyTmFtZSIpLnZhbCgpO3ZhciBoPXtzdG9yZV9uYW1lOmQuZGVhbGVyX25hbWUudG9Mb3dlckNhc2UoKSxvZW1fY29kZTpkLnBhQ29kZSxvZW1fYnJhbmQ6ZC5jbGllbnQsYWZmaWxpYXRpb246IiIsbGFuZ3VhZ2U6ZC51c2VyTGFuZ3VhZ2UsY3VycmVuY3k6ImNhZCIscGFnZV90eXBlOmQucGFnZUlkLGl0ZW1zOltdLGV2ZW50czpbXSxtZWFzdXJlbWVudF9pZHM6WyJHLTZHRVoyV1dUM0wiXSxwbGF0Zm9ybV9jdXN0b206IiJ9LGs9e2FzY19jbGlja190b19jYWxsOlsiYS5waG9uZS1saW5rIiwiYS5waG9uZS1hY3Rpb24iXSxhc2NfY3RhX2ludGVyYWN0aW9uOiIudi1jYXJkIGE6bm90KC5waG9uZS1saW5rKTsubGVmdF9ib3ggYTsjZm9vdGVyIGE7I3NjcmF0Y2hhbmRzYXZlX2VtYmVkZGVkX2J0bl8xOyNQdWxsb3V0X0J1aWxkLWFuZC1QcmljZTsjbmV3VmRwRnVsbHdpZHRoVmlkZW9JZnJhbWUiLnNwbGl0KCI7IiksCmFzY19jdGFfaW50ZXJhY3Rpb246IiNwcm9tb0Rpc2NvdmVyQnV0dG9uIC5kaXZDYXJQYXltZW50Q2FsY3VsYXRvciAjc2NyYXRjaGFuZHNhdmVfZW1iZWRkZWQgLmxvYW5DYWxjdWxhdG9yVHJpZ2dlciAub2ZmZXItYnRuIC5jdFByb21vIC50cmFkZUluQmFyX2J0biIuc3BsaXQoIiAiKSxhc2NfY3RhX2ludGVyYWN0aW9uOlsiLm5ld1ZkcEFjdGlvbnMgYSIsIi5jdGEtdHBsIGEiXSxhc2NfZm9ybV9lbmdhZ2VtZW50OlsiaW5wdXQiLCJzZWxlY3QiLCJ0ZXh0YXJlYSJdLGFzY19tZWRpYV9pbnRlcmFjdGlvbjpbIiNuZXdWZHBGdWxsd2lkdGhWaWRlb0lmcmFtZSIsImltZyJdLGFzY19tZW51X2ludGVyYWN0aW9uOlsiLnVwX21lbnUgYSJdLGFzY19lbGVtZW50X2NvbmZpZ3VyYXRpb246WyIubGFuZ3VhZ2VCYXIgYSJdfSxsPSExO2NvbnNvbGUubG9nKCJEMkFTQyBMb2FkaW5nLi4uIixkKTt2YXIgZz1uZXcgZnVuY3Rpb24oKXt2YXIgZT10aGlzO2Uuc2V0VmVoaWNsZVN0YXR1cz1mdW5jdGlvbihiKXtsZXQgYT0KJCgiI2FzY19kaWdpdGFsX2RhdGFfaW5mbyBpbnB1dFtuYW1lPXZlaGljbGVTdGF0dXNdIik7aWYoIiIhPSQoIiNhc2NfZGlnaXRhbF9kYXRhX2luZm8gaW5wdXRbbmFtZT0nbWFrZSddIikudmFsKCkpe2xldCBjPXdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZS50b0xvd2VyQ2FzZSgpO2EudmFsKC91c2VkLy50ZXN0KGMpfHwvb2NjYXNpb24vLnRlc3QoYyk\/IlVzZWQiOiJOZXciKX0hMSE9PWImJmEudmFsKGIpfTtlLnNldERpZ2l0YWxEYXRhPWZ1bmN0aW9uKGIsYSl7bGV0IGM9ZS5hZGRFdmVudChiLGEpO2lmKCExPT09YylyZXR1cm4hMTt2b2lkIDAhPT1jLmZvcm1fbmFtZSYmKGMuZm9ybV9uYW1lPWMuZm9ybV9uYW1lLnJlcGxhY2UoIm1lbnN1YWxpdD9zIiwibWVuc3VhbGl0ZXMiKSxjLmZvcm1fbmFtZT1jLmZvcm1fbmFtZS5yZXBsYWNlKCJ2P2hpY3VsZSIsInZlaGljdWxlIiksYy5mb3JtX25hbWU9Yy5mb3JtX25hbWUucmVwbGFjZSgiP3RhcGVzIiwiZXRhcGVzIiksYy5mb3JtX25hbWU9CiJEMkMgIitjLmZvcm1fbmFtZSk7dm9pZCAwIT09Yy5mb3JtX2xhbmcmJihjLmZvcm1fbGFuZz1lLnN0YW5kYXJkaXplRm9ybUxhbmcoYy5mb3JtX2xhbmcpKTtoLmV2ZW50cy51bnNoaWZ0KEpTT04uc3RyaW5naWZ5KHtuYW1lOmIscGFyYW1zOmN9KSk7InZkcCI9PWMucGFnZV90eXBlJiYoYy5wYWdlX3R5cGU9Iml0ZW0iKTsic2hvd3Jvb20iPT1jLnBhZ2VfdHlwZSYmKGMucGFnZV90eXBlPSJpdGVtIik7InNlYXJjaCBpbnZlbnRvcnkiPT1jLnBhZ2VfdHlwZSYmKGMucGFnZV90eXBlPSJpdGVtbGlzdCIpO2xldCBmPWUuZ2V0RXZlbnRUeXBlKGIpO2UucmVwb3J0KGYsYixjLGgpOyJhc2NfZm9ybV9zdWJtaXNzaW9uIj09YiYmKGUuc2V0RGlnaXRhbERhdGEoImFzY19mb3JtX3N1Ym1pc3Npb25fc2FsZXMiLGEpLGUuc2V0RGlnaXRhbERhdGEoIkQyQ19Gb3JtX3N1Ym1pc3Npb25fc2FsZXMiLGEpLGUuc2V0RGlnaXRhbERhdGEoIkQyQ19MZWFkcyIsYSksc2V0VGltZW91dChmdW5jdGlvbigpe2FzY0xhc3RDdGFDbGljaz0KITF9LDEyNTApKTsiYXNjX2NvbW1fc3VibWlzc2lvbiI9PWImJmUuc2V0RGlnaXRhbERhdGEoImFzY19jb21tX3N1Ym1pc3Npb25fc2FsZXMiLGEpfTtlLmdldEV2ZW50VHlwZT1mdW5jdGlvbihiKXtsZXQgYT0iZW5nYWdlbWVudCI7c3dpdGNoKGIpe2Nhc2UgImFzY19mb3JtX3N1Ym1pc3Npb24iOmNhc2UgImFzY19mb3JtX3N1Ym1pc3Npb25fcGFydHMiOmNhc2UgImFzY19mb3JtX3N1Ym1pc3Npb25fc2FsZXNfYXBwdCI6Y2FzZSAiYXNjX2Zvcm1fc3VibWlzc2lvbl9zYWxlcyI6Y2FzZSAiYXNjX2Zvcm1fc3VibWlzc2lvbl9zZXJ2aWNlIjphPSJjb252ZXJzaW9uIn1yZXR1cm4gYX07ZS5iaW5kRWxlbWVudHM9ZnVuY3Rpb24oYixhKXskLmVhY2goYSxmdW5jdGlvbihjLGYpeyQoZikuZWFjaChmdW5jdGlvbigpe2NvbnN0IG09JCh0aGlzKSxuPSJhc2NfZm9ybV9lbmdhZ2VtZW50Ij09Yj8iYmx1ciI6ImNsaWNrIjskKHRoaXMpLm9uKG4sZnVuY3Rpb24oKXtnLnNldERpZ2l0YWxEYXRhKGIsCm0pfSl9KX0pfTtlLmFkZEV2ZW50PWZ1bmN0aW9uKGIsYSl7dmFyIGM9e2V2ZW50X293bmVyOiJkMmMiLHBhZ2VfdHlwZTpkLnBhZ2VJZCxwYWdlX3VybDp3aW5kb3cubG9jYXRpb24uaHJlZixldmVudF9sYWJlbDpiLGV2ZW50X2NhdGVnb3J5OiQoIiNhc2NfZGlnaXRhbF9kYXRhX2luZm8gaW5wdXRbbmFtZT12ZWhpY2xlU3RhdHVzXSIpLnZhbCgpfSxmPSExIT09YXNjTGFzdEN0YUNsaWNrP2UuQ3RhVGV4dFBhcnNlcihhc2NMYXN0Q3RhQ2xpY2spOiIiO3N3aXRjaChiKXtjYXNlICJhc2NfcGFnZXZpZXciOmJyZWFrO2Nhc2UgImFzY19jbGlja190b19jYWxsIjpmPWEuaGFzQ2xhc3MoInBob25lLWxpbmsiKT9hLnRleHQoKTphLmF0dHIoImhyZWYiKTtmPWYucmVwbGFjZSgvW14wLTlcK10vZywiIik7Yz1PYmplY3QuYXNzaWduKHt9LGMse2NvbW1fcGhvbmVfbnVtYmVyOmYsZGVwYXJ0bWVudDplLmdldEQyY0RlcGFydG1lbnQoYSksYWZmaWxpYXRpb246IiJ9KTticmVhaztjYXNlICJhc2NfY3RhX2ludGVyYWN0aW9uIjpmPQplLkN0YVRleHRQYXJzZXIoYSk7ZS5pc0N0YUNsaWNrKGEpJiYoYXNjTGFzdEN0YUNsaWNrPWEpO2M9T2JqZWN0LmFzc2lnbih7fSxjLHtlbGVtZW50X3RleHQ6ZixlbGVtZW50X29yZGVyOiIiLGVsZW1lbnRfY29sb3I6IiIsZWxlbWVudF90eXBlOmUuZ2V0RWxlbWVudFR5cGUoYSksZXZlbnRfYWN0aW9uOiIiLGV2ZW5fYWN0aW9uX3Jlc3VsdDphLmF0dHIoImhyZWYiKT8icmVkaXJlY3QiOiJwb3B1cCIsbGlua191cmw6YS5hdHRyKCJocmVmIik\/YS5hdHRyKCJocmVmIik6IiJ9KTticmVhaztjYXNlICJhc2NfZm9ybV9lbmdhZ2VtZW50IjpmPWUuZ2V0TGVhZFR5cGVGb3JtTmFtZShhKTtpZighMT09PWYpcmV0dXJuITE7bGV0IG09ZS5hc2NUZXh0UmVwbGFjZXIoYS52YWwoKSksbj1lLmdldEQyY0RlcGFydG1lbnQoYSk7Y29uc29sZS5sb2coIkQyQVNDIEZvcm0gRW5nYWdlbWVudCBEZXRlY3RlZCIsZixuLGEpO2M9T2JqZWN0LmFzc2lnbih7fSxjLHtlbGVtZW50X3RleHQ6bSxjb21tX3R5cGU6ImZvcm0iLApjb21tX3N0YXR1czoic3RhcnQiLGRlcGFydG1lbnQ6bixmb3JtX25hbWU6Zixmb3JtX3R5cGU6ZS5nZXRGb3JtVHlwZShhKSxmb3JtX2xhbmc6JCgiaW5wdXRbbmFtZT0nbGFuZyddIikudmFsKCksZm9ybV9kZXB0Om59KTticmVhaztjYXNlICJhc2NfZm9ybV9zdWJtaXNzaW9uIjpjPU9iamVjdC5hc3NpZ24oe30sYyx7Y29tbV90eXBlOiJmb3JtIixjb21tX291dGNvbWU6ImNsb3NlIixzdWJtaXNzaW9uX2lkOiIiLGVsZW1lbnRfdGV4dDoic3VibWl0IixjdGFfdGV4dDpmLGN1c3RvbWVyX3Bob25lOmEuY29uZmlybV9waG9uZV9udW1iZXIsY3VzdG9tZXJfZW1haWw6YS5jb25maXJtX2VtYWlsLGRlcGFydG1lbnQ6ZS5nZXREMmNEZXBhcnRtZW50KGEpLGZvcm1fbmFtZTphLmxlYWRUeXBlLGZvcm1fdHlwZTplLmdldEZvcm1UeXBlKGEpLGZvcm1fbGFuZzokKCJpbnB1dFtuYW1lPSdsYW5nJ10iKS52YWwoKSxmb3JtX2RlcHQ6ZS5nZXREMmNEZXBhcnRtZW50KGEpfSk7YnJlYWs7Y2FzZSAiYXNjX2Zvcm1fc3VibWlzc2lvbl9wYXJ0cyI6Y2FzZSAiYXNjX2Zvcm1fc3VibWlzc2lvbl9zYWxlcyI6Y2FzZSAiYXNjX2Zvcm1fc3VibWlzc2lvbl9zYWxlc19hcHB0IjpjYXNlICJhc2NfZm9ybV9zdWJtaXNzaW9uX3NlcnZpY2UiOmNhc2UgImFzY19mb3JtX3N1Ym1pc3Npb25fc2VydmljZV9hcHB0IjpjYXNlICJEMkNfTGVhZHMiOmNvbnNvbGUubG9nKCJEMkFTQyBFbWFpbCBTZW50IC0gRGF0YSAyIiwKYSk7YS5jb25maXJtX3Bob25lX251bWJlcj12b2lkIDA9PT1hLmNvbmZpcm1fcGhvbmVfbnVtYmVyPyIiOmEuY29uZmlybV9waG9uZV9udW1iZXI7YS5jb25maXJtX2VtYWlsPXZvaWQgMD09PWEuY29uZmlybV9lbWFpbD8iIjphLmNvbmZpcm1fZW1haWw7Yz1PYmplY3QuYXNzaWduKHt9LGMse2NvbW1fdHlwZToiZm9ybSIsY29tbV9vdXRjb21lOmUuZ2V0Rm9ybU91dGNvbWUoYiksc3VibWlzc2lvbl9pZDoiIixlbGVtZW50X3RleHQ6ZS5hc2NUZXh0UmVwbGFjZXIoInN1Ym1pdCIpLGN0YV90ZXh0OmYsY3VzdG9tZXJfcGhvbmU6YS5jb25maXJtX3Bob25lX251bWJlcixjdXN0b21lcl9lbWFpbDphLmNvbmZpcm1fZW1haWwsZGVwYXJ0bWVudDplLmdldEQyY0RlcGFydG1lbnQoYSksZm9ybV9uYW1lOmEubGVhZFR5cGUsZm9ybV90eXBlOmUuZ2V0Rm9ybVR5cGUoYSksZm9ybV9sYW5nOiQoImlucHV0W25hbWU9J2xhbmcnXSIpLnZhbCgpLGZvcm1fZGVwdDplLmdldEQyY0RlcGFydG1lbnQoYSl9KTsKYnJlYWs7Y2FzZSAiRDJDX0Zvcm1fc3VibWlzc2lvbl9zYWxlcyI6Yz17Zm9ybV9maWxsZWQ6IlllcyJ9O2JyZWFrO2Nhc2UgImFzY19lbGVtZW50X2NvbmZpZ3VyYXRpb24iOmM9dm9pZCAwIT09YS5ldmVudF9hY3Rpb24\/T2JqZWN0LmFzc2lnbih7fSxjLHtldmVudF9hY3Rpb25fcmVzdWx0OmEuZXZlbnRfYWN0aW9uX3Jlc3VsdCxldmVudF9hY3Rpb246YS5ldmVudF9hY3Rpb24scHJvZHVjdF9uYW1lOiIiLGVsZW1lbnRfc3RhdGU6YS5maWx0ZXJJbmZvLnN0YXRlLGVsZW1lbnRfdHlwZToic2VhcmNoIj09YS5ldmVudF9hY3Rpb24\/ImZpbHRlciI6InNvcnQiLGVsZW1lbnRfc3VidHlwZTphLmZpbHRlckluZm8udHlwZSxlbGVtZW50X3RpdGxlOmEuZmlsdGVySW5mby5sYWJlbCxlbGVtZW50X3RleHQ6YS5maWx0ZXJJbmZvLnRpdGxlLGVsZW1lbnRfdmFsdWU6YS5maWx0ZXJJbmZvLnZhbHVlLGVsZW1lbnRfY29sb3I6IiIsZWxlbWVudF9wb3NpdGlvbjoiIixlbGVtZW50X29yZGVyOiIifSk6Ck9iamVjdC5hc3NpZ24oe30sYyx7ZXZlbnRfYWN0aW9uX3Jlc3VsdDoibGFuZ3VhZ2UiLGV2ZW50X2FjdGlvbjoiY2xpY2siLHByb2R1Y3RfbmFtZToiIixlbGVtZW50X3N0YXRlOjAsZWxlbWVudF90eXBlOiJsYW5ndWFnZSB0b2dnbGUsIixlbGVtZW50X3N1YnR5cGU6ImJ1dHRvbiIsZWxlbWVudF90aXRsZTplLmFzY1RleHRSZXBsYWNlcihhLnRleHQoKSksZWxlbWVudF90ZXh0OmUuYXNjVGV4dFJlcGxhY2VyKGEudGV4dCgpKSxlbGVtZW50X3ZhbHVlOmUuYXNjVGV4dFJlcGxhY2VyKGEudGV4dCgpKSxlbGVtZW50X2NvbG9yOiIiLGVsZW1lbnRfcG9zaXRpb246IiIsZWxlbWVudF9vcmRlcjoiIn0pO2JyZWFrO2Nhc2UgImFzY19tZWRpYV9pbnRlcmFjdGlvbiI6Yz1PYmplY3QuYXNzaWduKHt9LGMse2V2ZW50X2FjdGlvbl9yZXN1bHQ6IiIsYWZmaWxpYXRpb246IiIsbWVkaWFfdHlwZToiIixsaW5rX3VybDoiIixjcmVhdGl2ZV9uYW1lOiIifSk7YnJlYWs7Y2FzZSAiYXNjX21lbnVfaW50ZXJhY3Rpb24iOmM9Ck9iamVjdC5hc3NpZ24oe30sYyx7ZWxlbWVudF90ZXh0OmUuYXNjVGV4dFJlcGxhY2VyKGEudGV4dCgpKSxlbGVtZW50X3N1YnR5cGU6Im1lZ2FfbWVudSIsZWxlbWVudF90eXBlOmEuY2xvc2VzdCgibGkiKS5hdHRyKCJkYXRhLWlkIiksZXZlbnRfYWN0aW9uOiJjbGljayJ9KTticmVhaztjYXNlICJhc2NfcmV0YWlsX3Byb2Nlc3MiOmM9T2JqZWN0LmFzc2lnbih7fSxjLHtmbG93X25hbWU6ImZpbmFuY2UiLGVsZW1lbnRfdGl0bGU6IiIsZmxvd19vdXRjb21lOiJwcm9jZWVkIixpdGVtX3BheW1lbnQ6ImZpbmFuY2UiLGZsb3dfc3RhZ2U6IiJ9KTticmVhaztjYXNlICJhc2Nfc3BlY2lhbF9vZmZlciI6Yz1PYmplY3QuYXNzaWduKHt9LGMse3Byb21vdGlvbl9uYW1lOiQoImgyOmZpcnN0LWNoaWxkIixhKS5sZW5ndGg\/ZS5hc2NUZXh0UmVwbGFjZXIoJCgiaDI6Zmlyc3QtY2hpbGQiLGEpLnRleHQoKSk6IkRlYWxlciBQcm9tbyIsZGVwYXJ0bWVudDplLmdldEQyY0RlcGFydG1lbnQoYSksCnByb2R1Y3RfbmFtZToiIixlbGVtZW50X3Bvc2l0aW9uOiJmbG9hdGluZyIsZmxvd19vdXRjb21lOiJzdGFydCJ9KTticmVhaztjYXNlICJhc2NfY29tbV9zdWJtaXNzaW9uIjpjPU9iamVjdC5hc3NpZ24oe30sYyx7Y29tbV90eXBlOiJjaGF0IixhZmZpbGlhdGlvbjoibmF0aXZlIixkZXBhcnRtZW50OmUuZ2V0RDJjRGVwYXJ0bWVudChhKSxhZmZpbGlhdGlvbl9pZDoibXVsdGktdXNlciIsY29tbV9zdGF0dXM6ImNybV91cGRhdGUifSk7YnJlYWs7Y2FzZSAiYXNjX2NvbW1fc3VibWlzc2lvbl9zYWxlcyI6Yz1PYmplY3QuYXNzaWduKHt9LGMse2NvbW1fdHlwZToiY2hhdCIsYWZmaWxpYXRpb246Im5hdGl2ZSIsZGVwYXJ0bWVudDplLmdldEQyY0RlcGFydG1lbnQoYSksYWZmaWxpYXRpb25faWQ6Im11bHRpLXVzZXIiLGNvbW1fc3RhdHVzOiJjcm1fdXBkYXRlIixlbGVtZW50X3Bvc2l0aW9uOiJwb3AtdXAifSk7YnJlYWs7ZGVmYXVsdDpyZXR1cm4gY29uc29sZS5sb2coIkQyQVNDIEVSUk9SKENPREU6MDAxKSIsCmIsYSksITF9ITEhPT1hc2NUb3BDYXJEZXRhaWxzJiYiRDJDX0Zvcm1fc3VibWlzc2lvbl9zYWxlcyIhPWImJihjPU9iamVjdC5hc3NpZ24oe30sYyxhc2NUb3BDYXJEZXRhaWxzKSk7Y29uc29sZS5sb2coIkdBNCBGaW5hbCBEaWdpdGFsIERhdGEiLGMpO3JldHVybiBjfTtlLmlzQ3RhQ2xpY2s9ZnVuY3Rpb24oYil7bGV0IGE9ITE7YiBpbnN0YW5jZW9mIGpRdWVyeSYmKDA8Yi5jbG9zZXN0KCIubmV3VmRwQWN0aW9ucyIpLmxlbmd0aCYmKGE9ITApLDA8Yi5jbG9zZXN0KCIuY3RhLXRwbCIpLmxlbmd0aCYmKGE9ITApLCJwcm9tb0Rpc2NvdmVyQnV0dG9uIj09Yi5hdHRyKCJpZCIpJiYoYT0hMCksYi5oYXNDbGFzcygiZGl2Q2FyUGF5bWVudENhbGN1bGF0b3IiKSYmKGE9ITApLDA8Yi5jbG9zZXN0KCIuZGl2Q2FyUGF5bWVudENhbGN1bGF0b3IiKS5sZW5ndGgmJihhPSEwKSwwPGIuY2xvc2VzdCgiI3NjcmF0Y2hhbmRzYXZlX2VtYmVkZGVkIikubGVuZ3RoJiYoYT0hMCksInNjcmF0Y2hhbmRzYXZlX2VtYmVkZGVkIj09CmIuYXR0cigiaWQiKSYmKGE9ITApLGIuaGFzQ2xhc3MoImxvYW5DYWxjdWxhdG9yVHJpZ2dlciIpJiYoYT0hMCksMDxiLmNsb3Nlc3QoIi5sb2FuQ2FsY3VsYXRvclRyaWdnZXIiKS5sZW5ndGgmJihhPSEwKSxiLmhhc0NsYXNzKCJjdFByb21vIikmJihhPSEwKSwwPGIuY2xvc2VzdCgiLmN0UHJvbW8iKS5sZW5ndGgmJihhPSEwKSxiLmhhc0NsYXNzKCJvZmZlci1idG4iKSYmKGE9ITApLDA8Yi5jbG9zZXN0KCIub2ZmZXItYnRuIikubGVuZ3RoJiYoYT0hMCksYi5oYXNDbGFzcygidHJhZGVJbkJhcl9idG4iKSYmKGE9ITApLDA8Yi5jbG9zZXN0KCIudHJhZGVJbkJhcl9idG4iKS5sZW5ndGgmJihhPSEwKSwiVFJBREVJTiI9PWIuYXR0cigiZGF0YS1pZCIpJiYoYT0hMCkpO3JldHVybiBhfTtlLnN0YW5kYXJkaXplRm9ybUxhbmc9ZnVuY3Rpb24oYil7dm9pZCAwPT09YiYmJCgiaHRtbCIpLmF0dHIoImxhbmciKTtiPWIudG9Mb3dlckNhc2UoKTsiZW5nIj09YiYmKGI9ImVuIik7ImVuZ2xpc2giPT0KYiYmKGI9ImVuIik7ImZybiI9PWImJihiPSJmciIpOyJmcmVuY2giPT1iJiYoYj0iZnIiKTsiZW4iIT1iJiYiZnIiIT1iJiYoYj0iZW4iKTtyZXR1cm4gYn07ZS5DdGFUZXh0UGFyc2VyPWZ1bmN0aW9uKGIpe2QucGFnZUlkLnRvTG93ZXJDYXNlKCk7bGV0IGE9d2luZG93LmxvY2F0aW9uLnBhdGhuYW1lLnRvTG93ZXJDYXNlKCksYz0iIjtpZigvbmV3XC9pbnZlbnRvcnlcL3NlYXJjaC8udGVzdChhKXx8L25ldWZzXC9pbnZlbnRhaXJlXC9yZWNoZXJjaGUvLnRlc3QoYSkpYys9IkQyQyBDVEFNIC0gTmV3IEludmVudG9yeSBTUlA6ICI7ZWxzZSBpZigvbmV3XC9pbnZlbnRvcnkvLnRlc3QoYSl8fC9uZXVmc1wvaW52ZW50YWlyZS8udGVzdChhKSljKz0iRDJDIENUQU0gLSBOZXcgSW52ZW50b3J5IFZEUDogIjtlbHNlIGlmKC9uZXcvLnRlc3QoYSl8fC9uZXVmcy8udGVzdChhKSljKz0iRDJDIENUQU0gLSBOZXcgU2hvd1Jvb20gVkRQOiAiO2Vsc2UgaWYoL3VzZWQvLnRlc3QoYSl8fC9vY2Nhc2lvbi8udGVzdChhKSljKz0KIkQyQyBDVEFNIC0gVXNlZCBJbnZlbnRvcnkgVkRQOiAiO3JldHVybiBjK2UuYXNjVGV4dFJlcGxhY2VyKGIudGV4dCgpKX07ZS5nZXRMZWFkVHlwZUZvcm1OYW1lPWZ1bmN0aW9uKGIpe2xldCBhPTA8Yi5jbG9zZXN0KCJmb3JtIikubGVuZ3RoP2IuY2xvc2VzdCgiZm9ybSIpLmF0dHIoImlkIik6Yi5hdHRyKCJpZCIpLGM9ITE7ZC5wYWdlSWQuaW5jbHVkZXMoIm9yZGVyIHBhcnRzIikmJihjPSJQYXJ0c1JlcXVlc3QiKTtkLnBhZ2VJZC5pbmNsdWRlcygidGVzdCBkcml2ZSIpJiYoYz0iVGVzdERyaXZlIik7ZC5wYWdlSWQuaW5jbHVkZXMoInByaWNlIHJlcXVlc3QiKSYmKGM9IlByaWNlUmVxdWVzdCIpO2QucGFnZUlkLmluY2x1ZGVzKCJicm9jaHVyZSIpJiYoYz0iQnJvY2h1cmVzUmVxdWVzdCIpO2QucGFnZUlkLmluY2x1ZGVzKCJyZXF1ZXN0IGFwcG9pbnRtZW50IikmJihjPSJTZXJ2aWNlUmVxdWVzdCIpO2QucGFnZUlkLmluY2x1ZGVzKCJ0aXJlcyIpJiYoYz0iVGlyZXNSZXF1ZXN0Iik7CmQucGFnZUlkLmluY2x1ZGVzKCJib2R5IHNob3AiKSYmKGM9IkJvZHlTaG9wIik7ZC5wYWdlSWQuaW5jbHVkZXMoInJlY2FsbCIpJiYoYz0iUmVjYWxscyIpO2lmKGIgaW5zdGFuY2VvZiBqUXVlcnkmJigwPGIuY2xvc2VzdCgiLmRpdlNwYW5GaWx0ZXJzIikubGVuZ3RofHwwPGIuY2xvc2VzdCgiI2Jhbm5lcl9zZWFyY2hfYmFyX2NvbnRhaW5lciIpLmxlbmd0aCkpcmV0dXJuITE7Yj1lLmZvcm1EYXRhQnlJZChiKTtyZXR1cm4hMSE9PWI\/Yi5mb3JtTmFtZTohMSE9PWM\/ZDJhc2NSZXNvbHZlTGVhZFR5cGUoZC5mb3JtTWFwLGMpOiJVTktOT1dOOiAiK2F9O2UuZm9ybURhdGFCeUlkPWZ1bmN0aW9uKGIpe2lmKGIgaW5zdGFuY2VvZiBqUXVlcnkpe2xldCBhPTA8Yi5jbG9zZXN0KCJmb3JtIikubGVuZ3RoP2IuY2xvc2VzdCgiZm9ybSIpLmF0dHIoImlkIik6Yi5hdHRyKCJpZCIpO3ZvaWQgMD09PWEmJigwPGIuY2xvc2VzdCgiI2NvbnRhY3Rwb3B1cCIpLmxlbmd0aCYmKGE9IlJlcXVlc3QgZm9yIGNvbnRhY3QiKSwKMDxiLmNsb3Nlc3QoIi5jcmVkaXRTY29yZUlucHV0IikubGVuZ3RoJiYoYT0iY3JlZGl0U2NvcmUiKSwwPGIuY2xvc2VzdCgiI3NjcmF0Y2hBbmRTYXZlUG9wdXBDb250YWluZXJfYm5wIikubGVuZ3RoJiYoYT0iUmViYXRlQ291cG9uTmV3Qk5QIiksMDxiLmNsb3Nlc3QoIi5zY3JhdGNoYW5kc2F2ZV90ZXh0IikubGVuZ3RoJiYoYT0iUmViYXRlQ291cG9uIikpO2lmKGQucGFnZUlkLmluY2x1ZGVzKCJzaG93cm9vbTpjb21wYXJlIikmJnZvaWQgMCE9PWEmJmEuaW5jbHVkZXMoImZlYXR1cmVkUHJvZHVjdF8iKSlyZXR1cm57Zm9ybVR5cGU6InJlc2VhcmNoIixmb3JtTmFtZToiQ29tcGFyZUZvcm0ifTtpZigwPGIuY2xvc2VzdCgiI211bHRpZm9ybV9lbWJlZGRlZCIpLmxlbmd0aCYmMDxiLmNsb3Nlc3QoIiNtdWx0aWZvcm1fZW1iZWRkZWQiKS5maW5kKCIubXVsdGlmb3JtX2VtYmVkZGVkX3N0ZXAxIikubGVuZ3RoKXJldHVybntmb3JtVHlwZToiY29uc3VtZXJfY29udGFjdCIsZm9ybU5hbWU6IkRpc2NvdmVyT2ZmZXIifTsKc3dpdGNoKGEpe2Nhc2UgIm1pbmlmb3JtIjpjYXNlICJmaW5hbmNlX211bHRpc3RlcF9mb3JtIjpyZXR1cm57Zm9ybVR5cGU6ImZpbmFuY2VfY3JlZGl0Iixmb3JtTmFtZToiQ3JlZGl0TXVsdGlzdGVwUmVxdWVzdCJ9O2Nhc2UgImxvYW4tZm9ybSI6cmV0dXJue2Zvcm1UeXBlOiJmaW5hbmNlX2NyZWRpdCIsZm9ybU5hbWU6IlByaWNlUmVxdWVzdCJ9O2Nhc2UgImZvcm1EZWFsZXJBcHBvaW50bWVudCI6cmV0dXJue2Zvcm1UeXBlOiJjb25zdW1lcl9jb250YWN0Iixmb3JtTmFtZToiRGVhbGVyQXBwb2ludG1lbnQifTtjYXNlICJTbGlkZVdpZGdldEZvcm0iOnJldHVybntmb3JtVHlwZToiY29uc3VtZXJfY29udGFjdCIsZm9ybU5hbWU6IlNsaWRlV2lkZ2V0Rm9ybSJ9O2Nhc2UgImNyZWRpdFNjb3JlIjpyZXR1cm57Zm9ybVR5cGU6ImZpbmFuY2VfY3JlZGl0Iixmb3JtTmFtZToiQ3JlZGl0UmVxdWVzdF9TaG9ydCJ9O2Nhc2UgIlJlYmF0ZUNvdXBvbk5ld0JOUCI6cmV0dXJue2Zvcm1UeXBlOiJwcmUtb3JkZXIiLApmb3JtTmFtZToiUmViYXRlQ291cG9uTmV3Qk5QIn07Y2FzZSAiYmFubmVyX3NlYXJjaF9iYXJfc2VsZWN0X2JvZHkiOnJldHVybntmb3JtVHlwZToiY29uc3VtZXJfY29udGFjdCIsZm9ybU5hbWU6IkJhbm5lckZvcm0ifTtjYXNlICJwYXltZW50Q2FsY3VsYXRvckludGVydmFsIjpjYXNlICJwYXltZW50Q2FsY3VsYXRvclRyaW1TZWxlY3QiOmNhc2UgInBheW1lbnRDYWxjdWxhdG9yS21BbGxvd2FuY2UiOmNhc2UgInBheW1lbnRDYWxjdWxhdG9yRG93blBheW1lbnQiOnJldHVybntmb3JtVHlwZToiZmluYW5jZV9jcmVkaXQiLGZvcm1OYW1lOiJNb250aGx5UGF5bWVudHMifTtjYXNlICJjb250YWN0X2Zvcm0iOmNhc2UgImNvbnRhY3RfZm9ybTIiOmNhc2UgImNvbnRhY3RfZm9ybTMiOmNhc2UgIlJlcXVlc3QgZm9yIGNvbnRhY3QiOnJldHVybntmb3JtVHlwZToiY29uc3VtZXJfY29udGFjdCIsZm9ybU5hbWU6IkNvbnRhY3RSZXF1ZXN0In07Y2FzZSAicXVpY2tFbWFpbEZvcm0iOmNhc2UgIm1haWxFeHByZXNzUmVxdWVzdCI6cmV0dXJue2Zvcm1UeXBlOiJjb25zdW1lcl9jb250YWN0IiwKZm9ybU5hbWU6IlF1aWNrRW1haWwifTtjYXNlICJ0cmFkaW5NYWtlIjpjYXNlICJ0cmFkaW5ZZWFyIjpjYXNlICJ0cmFkaW5Nb2RlbCI6Y2FzZSAidHJhZGluVHJpbSI6Y2FzZSAidHJhZGVJbkJhclBvcHVwRm9ybSI6Y2FzZSAiU2VsbENhckZvcm0iOnJldHVybntmb3JtVHlwZToicmVzZWFyY2giLGZvcm1OYW1lOiJQcmljZVZlaGljbGUifX1pZigwPGIuY2xvc2VzdCgiLnNjcmF0Y2hib2R5IikubGVuZ3RofHwwPGIuY2xvc2VzdCgiLnNjcmF0Y2hib2R5MSIpLmxlbmd0aHx8MDxiLmNsb3Nlc3QoIi5zY3JhdGNoYm9keTIiKS5sZW5ndGh8fDA8Yi5jbG9zZXN0KCIuc2NyYXRjaGJvZHkzIikubGVuZ3RoKXJldHVybntmb3JtVHlwZToiY29uc3VtZXJfY29udGFjdCIsZm9ybU5hbWU6IlJlYmF0ZUNvdXBvbk5ldyJ9O2lmKDA8Yi5jbG9zZXN0KCIjbW9udGhseVBheW1lbnRzUG9wdXBDb250YWluZXIiKS5sZW5ndGgpcmV0dXJue2Zvcm1UeXBlOiJmaW5hbmNlX2NyZWRpdCIsZm9ybU5hbWU6Ik1vbnRobHlQYXltZW50cyJ9fXJldHVybiExfTsKZS5jb21tU3ViRGF0YVBhcnNlcj1mdW5jdGlvbihiLGEpe2xldCBjPXtmb3JtX25hbWU6IiIsZm9ybV90eXBlOiIiLGZvcm1fZGVwdDoiIixmb3JtX2xhbmc6IiJ9Oy9hc2NfY29tbV9zdWJtaXNzaW9uLy50ZXN0KGIpJiYiU2xpZGVXaWRnZXRGb3JtIj09YS5jbG9zZXN0KCJmb3JtIikuYXR0cigiaWQiKSYmKGMuZm9ybV9uYW1lPSJMZWFkOiBDaGF0IFN1Ym1pc3Npb24iKTtyZXR1cm4gY307ZS5hc2NUZXh0UmVwbGFjZXI9ZnVuY3Rpb24oYil7Yj1iLnJlcGxhY2UoLyhcclxufFxufFxyfFx0KS9nbSwiIik7Yj1iLnJlcGxhY2UoLzxcLz9bXj5dKyg+fCQpL2csIiIpO3JldHVybiBiPWIudHJpbSgpfTtlLmhhc2hUZXh0PWZ1bmN0aW9uKGIpe2I9KG5ldyBUZXh0RW5jb2RlcikuZW5jb2RlKGIudHJpbSgpLnRvTG93ZXJDYXNlKCkpO3JldHVybiBjcnlwdG8uc3VidGxlLmRpZ2VzdCgiU0hBLTI1NiIsYikudGhlbihhPT5BcnJheS5mcm9tKG5ldyBVaW50OEFycmF5KGEpKS5tYXAoYz0+CmMudG9TdHJpbmcoMTYpLnBhZFN0YXJ0KDIsIjAiKSkuam9pbigiIikpfTtlLmdldEZvcm1PdXRjb21lPWZ1bmN0aW9uKGIpe3N3aXRjaChiKXtjYXNlICJhc2NfZm9ybV9zdWJtaXNzaW9uX3BhcnRzIjpjYXNlICJhc2NfZm9ybV9zdWJtaXNzaW9uX3NhbGVzIjpjYXNlICJhc2NfZm9ybV9zdWJtaXNzaW9uX3NlcnZpY2UiOmNhc2UgIkQyQ19MZWFkcyI6cmV0dXJuImNybV91cGRhdGUiO2Nhc2UgImFzY19mb3JtX3N1Ym1pc3Npb25fc2FsZXNfYXBwdCI6Y2FzZSAiYXNjX2Zvcm1fc3VibWlzc2lvbl9zZXJ2aWNlX2FwcHQiOnJldHVybiJhcHB0X2Jvb2tlZCJ9fTtlLmdldEQyY0RlcGFydG1lbnQ9ZnVuY3Rpb24oYil7bGV0IGE9ZC5wYWdlSWQudG9Mb3dlckNhc2UoKSxjPXdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZS50b0xvd2VyQ2FzZSgpLGY9Ik9USEVSIjsvbmV1ZnMvLnRlc3QoYykmJihmPSJORVciKTsvbmV3Ly50ZXN0KGMpJiYoZj0iTkVXIik7L29jY2FzaW9uLy50ZXN0KGMpJiYKKGY9IlVTRUQiKTsvdXNlZC8udGVzdChjKSYmKGY9IlVTRUQiKTthLmluY2x1ZGVzKCJmaW5hbmNlIikmJihmPSJGSU5BTkNFIik7YS5pbmNsdWRlcygicmVxdWVzdCBhcHBvaW50bWVudCIpJiYoZj0iU0VSVklDRSIpO2EuaW5jbHVkZXMoInBhcnRzIikmJihmPSJTRVJWSUNFIik7YS5pbmNsdWRlcygidGlyZXMiKSYmKGY9IlNFUlZJQ0UiKTthLmluY2x1ZGVzKCJib2R5IHNob3AiKSYmKGY9IlNFUlZJQ0UiKTthLmluY2x1ZGVzKCJmaW5hbmNlIGRlcGFydG1lbnQiKSYmKGY9IkZJTkFOQ0UiKTthLmluY2x1ZGVzKCJjcmVkaXQiKSYmKGY9IkZJTkFOQ0UiKTthLmluY2x1ZGVzKCJjb250YWN0IHVzIikmJihmPSJTQUxFUyIpO2EuaW5jbHVkZXMoInJlY2FsbCIpJiYoZj0iU0VSVklDRSIpO2IgaW5zdGFuY2VvZiBqUXVlcnkmJigwPGIuY2xvc2VzdCgiI2ZpbmFuY2VNdWx0aXN0ZXBQb3B1cENvbnRhaW5lciIpLmxlbmd0aCYmKGY9IkZJTkFOQ0UiKSwiZmluYW5jZU11bHRpc3RlcFBvcHVwQ29udGFpbmVyIj09CmIuYXR0cigiaWQiKSYmKGY9IkZJTkFOQ0UiKSwwPGIuY2xvc2VzdCgiI1NlbGxDYXJGb3JtIikubGVuZ3RoJiYoZj0iRklOQU5DRSIpLHZvaWQgMCE9PWIuYXR0cigiZGF0YS1kZXBhcnRtZW50IikmJihmPWIuYXR0cigiZGF0YS1kZXBhcnRtZW50IikpKTtyZXR1cm4gZn07ZS5nZXRGb3JtVHlwZT1mdW5jdGlvbihiKXtsZXQgYT1kLnBhZ2VJZC50b0xvd2VyQ2FzZSgpO2lmKGEuaW5jbHVkZXMoInJlcXVlc3QgYXBwb2ludG1lbnQiKSlyZXR1cm4ic2VydmljZV9hcHBvaW50bWVudCI7aWYoYS5pbmNsdWRlcygib3JkZXIgcGFydHMiKXx8YS5pbmNsdWRlcygib3JkZXIgdGlyZXMiKSlyZXR1cm4icGFydHMiO2lmKGEuaW5jbHVkZXMoImJvZHkgc2hvcCIpKXJldHVybiJib2R5X3Nob3AiO2lmKGEuaW5jbHVkZXMoImZpbmFuY2UgZGVwYXJ0bWVudCIpfHxhLmluY2x1ZGVzKCJjcmVkaXQiKSlyZXR1cm4iY3JlZGl0IjtiPWUuZm9ybURhdGFCeUlkKGIpO3JldHVybiExIT09Yj9iLmZvcm1UeXBlOgoiY29uc3VtZXJfY29udGFjdCJ9O2UuZ2V0RWxlbWVudFR5cGU9ZnVuY3Rpb24oYil7cmV0dXJuInRvcEJhbm5lckltYWdlIj09Yi5hdHRyKCJpZCIpfHwwPGIuY2xvc2VzdCgiI3RvcEJhbm5lckltYWdlIikubGVuZ3RoPyJiYW5uZXIiOjA8Yi5jbG9zZXN0KCIuaGVhZGVyLWltYWdlLXdyYXBwZXIiKS5sZW5ndGg\/ImhlYWRlciI6MDxiLmNsb3Nlc3QoIi5sYW5ndWFnZUJhciIpLmxlbmd0aD8iYWNjZXNzaWJpbGl0eV90b29sIjowPGIuaGFzKCIuZGVhbGVyTWFwTGluayIpLmxlbmd0aD8ibWFwIjowPGIuY2xvc2VzdCgiLnNsaWRlcyIpLmxlbmd0aD8iZ2FsbGVyeSI6MDxiLmNsb3Nlc3QoIi51c2VkVmRwQWN0aW9ucyIpLmxlbmd0aD8iZGlnaXRhbF9yZXRhaWxpbmdfdG9vbCI6IlB1bGxvdXRfQnVpbGQtYW5kLVByaWNlIj09Yi5hdHRyKCIudXNlZFZkcEFjdGlvbnMiKT8iYmFubmVyIjoibmV3VmRwRnVsbHdpZHRoVmlkZW9JZnJhbWUiPT1iLmF0dHIoIi51c2VkVmRwQWN0aW9ucyIpPwoidmlkZW8iOiJkaWdpdGFsX3JldGFpbGluZyJ9O2UuZ2V0VmVoaWNsZUpTT049ZnVuY3Rpb24oYixhKXskLmdldCgiL2pzL2pzb24vIitiKyIuanNvbiIpLmRvbmUoZnVuY3Rpb24oYyl7Yy5pdGVtX251bWJlcj1iO2lmKCIiIT1hJiZ2b2lkIDAhPT1hKXdpbmRvd1thXShjKTtyZXR1cm4gY30pfTtlLnJlcG9ydD1mdW5jdGlvbihiLGEsYyxmKXtpZih2b2lkIDA9PT1kLnN1Yl9nYTR8fCJOIj09ZC5zdWJfZ2E0KWM9T2JqZWN0LmFzc2lnbih7fSxjLHtzZW5kX3RvOiJHLVo1UThaNUM3S0YifSk7aWYoITA9PT1sJiYiYXNjX2Zvcm1fZW5nYWdlbWVudCI9PWEpcmV0dXJuITE7Z3RhZygiZXZlbnQiLGEsYyk7bD0hMDtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7bD0hMX0sMUUzKX07cmV0dXJuIGV9O3NldFRpbWVvdXQoZnVuY3Rpb24oKXtnLnNldFZlaGljbGVTdGF0dXMoITEpOyJ2ZHAiPT1kLnBhZ2VJZCYmKDA8JCgiI3RvcGNhcmlkIikubGVuZ3RoJiYiIiE9JCgiI3RvcGNhcmlkIikudmFsKCkmJgoiMCIhPSQoIiN0b3BjYXJpZCIpLnZhbCgpP2cuZ2V0VmVoaWNsZUpTT04oJCgiI3RvcGNhcmlkIikudmFsKCksImFzY1VwZGF0ZVRvcENhckRhdGEiKTphc2NVcGRhdGVUb3BDYXJEYXRhKCExKSk7c2V0VGltZW91dChmdW5jdGlvbigpeyQoZnVuY3Rpb24oYil7Zy5zZXREaWdpdGFsRGF0YSgiYXNjX3BhZ2V2aWV3Iix7fSl9KX0sMUUzKTskLmVhY2goayxmdW5jdGlvbihiLGEpe2cuYmluZEVsZW1lbnRzKGIsYSl9LCExKTskKCIucmV2ZWFsLW1vZGFsIikub25lKCJwb3B1cGl6ZXIub25PcGVuIixmdW5jdGlvbihiKXtnLnNldERpZ2l0YWxEYXRhKCJhc2Nfc3BlY2lhbF9vZmZlciIsJChiLnRhcmdldCkpO2cuYmluZEVsZW1lbnRzKCJhc2NfZm9ybV9lbmdhZ2VtZW50IixbJChiLnRhcmdldCkuZmluZCgiZm9ybSBpbnB1dCwgZm9ybSBzZWxlY3QsIGZvcm0gdGV4dGFyZWEiKV0pfSk7c2V0VGltZW91dCgoKT0+eyQoImFbZGF0YS1sZWFkLXRyaWdnZXI9J0RlYWxlckFwcG9pbnRtZW50J10iKS5vbigiY2xpY2siLApmdW5jdGlvbigpe2cuc2V0RGlnaXRhbERhdGEoImFzY19zcGVjaWFsX29mZmVyIiwkKCIjbW9kYWxEZWFsZXJBcHBvaW50bWVudCIpKX0pOyQoImFbZGF0YS1sZWFkLXRyaWdnZXI9J1BheXBhbFBheW1lbnQnXSIpLm9uKCJjbGljayIsZnVuY3Rpb24oKXtnLnNldERpZ2l0YWxEYXRhKCJhc2Nfc3BlY2lhbF9vZmZlciIsJCgiI21vZGFsUGF5cGFsUGF5bWVudCIpKX0pfSwxRTMpOzA8JCgiI2ZsdFNvcnRJZCIpLmxlbmd0aCYmKGFzY0xhc3RTZWFyY2hGaWx0ZXJTb3J0PSQoIiNmbHRTb3J0SWQgLmRpdkFjdGlvbldyYXBwZXIgLmRpdkxhYmVsIikuaHRtbCgpKTtpZigidW5kZWZpbmVkIiE9PXR5cGVvZiB3aW5kb3cuQWJzdHJhY3RVc2VkU3JwT2JqZWN0KXt2YXIgZT1uZXcgQWJzdHJhY3RVc2VkU3JwT2JqZWN0KHtuYW1lOiJkMmNfaG9uZGFfZ3RtIn0pO2UuYWRkVXNlZFNycEV2ZW50T2JzZXJ2ZXIoInByb3h5IixmdW5jdGlvbihiKXtpZigidW5kZWZpbmVkIiE9PXR5cGVvZiBiLmNtZCYmCiJyZXF1ZXN0Ij09PWIuY21kJiYhMSE9PWIuZGF0YSl7bGV0IGE9Yi5kYXRhLmZpbHRlclN0YXRlLmZpbHRlclNlYXJjaDtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7YS5yZXN1bHRzPWIuZGF0YS5maWx0ZXJTdGF0ZS5jb3VudFNlYXJjaFJlc3VsdHM7YS50eXBlZFNlYXJjaD1iLmRhdGEuZmlsdGVyU3RhdGUudHlwZWRTZWFyY2g7YS5ldmVudF9hY3Rpb25fcmVzdWx0PSJzZWFyY2giO2EuZXZlbnRfYWN0aW9uPSJzZWFyY2giO2EuZmlsdGVySW5mbz1hc2NMYXN0RmlsdGVyQ2xpY2s7YXNjTGFzdEZpbHRlckNsaWNrPSExO09iamVjdC5rZXlzKGEpLmluY2x1ZGVzKCJzb3J0IikmJmFzY0xhc3RTZWFyY2hGaWx0ZXJTb3J0IT1hLnNvcnRbMF0mJihhc2NMYXN0U2VhcmNoRmlsdGVyU29ydD1hLnNvcnRbMF0sYS5ldmVudF9hY3Rpb249InNvcnQiKTtnLnNldERpZ2l0YWxEYXRhKCJhc2NfZWxlbWVudF9jb25maWd1cmF0aW9uIixhKX0sMTAwKX19KTtlLmluaXRVc2VkU3JwT2JzZXJ2ZXIoKX0kKGRvY3VtZW50KS5vbigidXNlZFNycEZpbHRlcnMub25DaGFuZ2UiLAoiYm9keSIsKGIsYSk9PntiPSQoIiMiK2EuaWQpO2I9JCgiLmZsdFRpdGxlIixiKS50ZXh0KCk7bGV0IGM9YS52YWx1ZTt2YXIgZj0iIjtsZXQgbT0idGV4dF9zZWFyY2giO2EudmFsdWUmJmEudmFsdWUudG9TdHJpbmcoKS5pbmNsdWRlcygiOjoiKT8obT0iYnV0dG9uIixmPWEudmFsdWUuc3BsaXQoIjo6IiksYS52YWx1ZT1mWzBdLGY9ZlsxXSk6YS52YWx1ZSYmYS52YWx1ZS50b1N0cmluZygpLmluY2x1ZGVzKCIsIikmJihtPSJyYW5nZV9zbGlkZXIiKTthc2NMYXN0RmlsdGVyQ2xpY2s9e2lkOmEuaWQsdGl0bGU6YS5sYWJlbCx2YWx1ZTphLnZhbHVlLG9yZ192YWx1ZTpjLHN0YXRlOmYsdHlwZTptLGxhYmVsOmJ9fSk7JCgiYm9keSIpLm9uKCJlbWFpbEhhbmRsZXIuZW1haWxTZW50IixmdW5jdGlvbihiLGEpe2NvbnNvbGUubG9nKCJEMkFTQyBFbWFpbCBTZW50IFRyaWdnZXIiLGIsYSk7aWYodm9pZCAwIT09YS5kZXRhaWwubGVhZFR5cGUpe2I9YS5kZXRhaWwubGVhZFR5cGU7aWYoYi5pbmNsdWRlcygiTGVhZDogUmVxdWVzdCBmb3IgZmluYW5jaW5nIChNdWx0aXN0ZXApIil8fApiLmluY2x1ZGVzKCJMZWFkIDogRGVtYW5kZSBkZSBmaW5hbmNlbWVudCAoUGx1cyIpKXJldHVybiExO2IuaW5jbHVkZXMoIkxlYWQgOiBEZW1hbmRlIGRlIHZhbGV1ciIpJiYoYj0iTGVhZCA6IERlbWFuZGUgZGUgdmFsZXVyIGQnZWNoYW5nZSIpO2IudHJpbSgpO2EuZGV0YWlsLmxlYWRUeXBlPWJ9dm9pZCAwIT09YS5kZXRhaWwubGVhZFR5cGUmJiIiIT1hLmRldGFpbC5sZWFkVHlwZXx8dm9pZCAwPT09YS5kZXRhaWwubWFpbElkfHwoYS5kZXRhaWwubGVhZFR5cGU9ZDJhc2NSZXNvbHZlTGVhZFR5cGUoZC5mb3JtTWFwLGEuZGV0YWlsLm1haWxJZCkpO2EuZGV0YWlsLmxlYWROYW1lQXJyPWQuZm9ybU1hcDt2b2lkIDA9PT1hLmRldGFpbC5jb25maXJtX2VtYWlsJiYoYS5kZXRhaWwuY29uZmlybV9lbWFpbD0iIik7dm9pZCAwPT09YS5kZXRhaWwuY29uZmlybV9waG9uZV9udW1iZXImJihhLmRldGFpbC5jb25maXJtX3Bob25lX251bWJlcj0iIik7UHJvbWlzZS5hbGwoW2cuaGFzaFRleHQoYS5kZXRhaWwuY29uZmlybV9lbWFpbCksCmcuaGFzaFRleHQoYS5kZXRhaWwuY29uZmlybV9waG9uZV9udW1iZXIpXSkudGhlbihjPT57dmFyIFtmLG1dPWM7YS5kZXRhaWwuY29uZmlybV9lbWFpbD1mO2EuZGV0YWlsLmNvbmZpcm1fcGhvbmVfbnVtYmVyPW19KTt2b2lkIDAhPT1hc2NUb3BDYXJEZXRhaWxzLm1ha2UmJiIiIT1hc2NUb3BDYXJEZXRhaWxzLm1ha2V8fHZvaWQgMD09PWEuZGV0YWlsLm1ha2V8fCIiPT1hLmRldGFpbC5tYWtlfHwoYS5kZXRhaWwudmNhdGVnb3J5PWEuZGV0YWlsLmNvbmRpdGlvbixhLmRldGFpbC52ZXJzaW9uPWEuZGV0YWlsLnRyaW0sYS5kZXRhaWwuYm9keVR5cGVJRD1hLmRldGFpbC50cmltLGEuZGV0YWlsLmNvbG9yPSIiLGEuZGV0YWlsLnZjYXJidXJhbnQ9IiIsYS5kZXRhaWwuZGF0ZV9saXN0aW5nPSIiLGFzY1VwZGF0ZVRvcENhckRhdGEoYS5kZXRhaWwpKTtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Zy5zZXREaWdpdGFsRGF0YSgiYXNjX2Zvcm1fc3VibWlzc2lvbiIsYS5kZXRhaWwpfSwyNTApfSk7CiQoIiNTbGlkZVdpZGdldEZvcm0gYS5idG4tZGVmYXVsdCIpLm9uKCJjbGljayIsZnVuY3Rpb24oKXtsZXQgYj1kMmFzY1Jlc29sdmVMZWFkVHlwZShkLmZvcm1NYXAsIlNsaWRlV2lkZ2V0Rm9ybSIpO2cuc2V0RGlnaXRhbERhdGEoImFzY19mb3JtX3N1Ym1pc3Npb24iLHtkZXBhcnRtZW50OiJzYWxlcyIsbGVhZFR5cGU6YixjdXJyZW50VVJMOiIifSl9KTskKGRvY3VtZW50KS5vbigiZm9ybS5zdGVwIiwiI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0iLGZ1bmN0aW9uKGIpe2cuc2V0RGlnaXRhbERhdGEoImFzY19yZXRhaWxfcHJvY2VzcyIsYil9KTskKGRvY3VtZW50KS5vbigibXVsdGlGb3JtRmluYW5jZVN1Ym1pdCIsZG9jdW1lbnQuYm9keSxmdW5jdGlvbihiKXtiPWQyYXNjUmVzb2x2ZUxlYWRUeXBlKGQuZm9ybU1hcCwiQ3JlZGl0TXVsdGlzdGVwUmVxdWVzdCIpO2cuc2V0RGlnaXRhbERhdGEoImFzY19mb3JtX3N1Ym1pc3Npb24iLHtkZXBhcnRtZW50OiJmaW5hbmNlIixsZWFkVHlwZTpiLApjdXJyZW50VVJMOiIifSl9KX0sMUUzKTt3aW5kb3cuZDJhc2M9Z307Ci8qKiAvbS9qcy9qcXVlcnkucmV2ZWFsLmpzICoqLwp2YXIgX19fZDJjX2pxdWVyeXJldmVhbGpzX2Nfb249IjIwMjUtMDUtMjMgMTc6MDY6NDIiOyd1c2Ugc3RyaWN0Jzt2YXIgX19fZDJjX2pxdWVyeXJldmVhbGpzX2Nfb249IjIwMjQtMDUtMTQgMTA6MzA6MDUiOyJ1c2Ugc3RyaWN0IjsKKGZ1bmN0aW9uKGIpe2IoImJvZHkiKS5vbigiY2xpY2siLCJhW2RhdGEtcmV2ZWFsLWlkXSIsZnVuY3Rpb24oYSl7YS5wcmV2ZW50RGVmYXVsdCgpO2E9Yih0aGlzKS5hdHRyKCJkYXRhLXJldmVhbC1pZCIpO2IoIiMiK2EpLnJldmVhbChiKHRoaXMpLmRhdGEoKSl9KTtiLmZuLnJldmVhbD1mdW5jdGlvbihhKXthPWIuZXh0ZW5kKHt9LHthbmltYXRpb246ImZhZGVBbmRQb3AiLGFuaW1hdGlvbnNwZWVkOjMwMCxjbG9zZW9uYmFja2dyb3VuZGNsaWNrOiEwLGRpc21pc3Ntb2RhbGNsYXNzOiJjbG9zZS1yZXZlYWwtbW9kYWwiLGNsb3Nlb25lc2NhcGU6ITB9LGEpO3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXtmdW5jdGlvbiBmKCl7Im9iamVjdCI9PXR5cGVvZiBwb3B1cFN1cGVydmlzb3ImJnNldFRpbWVvdXQocG9wdXBTdXBlcnZpc29yLnJlcG9zaXRpb24sMUUzKTtnPSExfXZhciBjPWIodGhpcyksaD1wYXJzZUludChjLmNzcygidG9wIikpLG09Yy5oZWlnaHQoKStoLGc9ITEsCmQ9YigiLnJldmVhbC1tb2RhbC1iZyIpOzA9PWQubGVuZ3RoJiYoZD1iKCc8ZGl2IGNsYXNzPSJyZXZlYWwtbW9kYWwtYmciIC8+JykuaW5zZXJ0QWZ0ZXIoYykpO2Mub24oInJldmVhbDpvcGVuIixmdW5jdGlvbigpe3ZhciBrPSJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93LmlubmVySGVpZ2h0P3dpbmRvdy5pbm5lckhlaWdodDpiKHdpbmRvdykuaGVpZ2h0KCksbj1iKGMpLm91dGVySGVpZ2h0KCk7YihjKS5vZmZzZXQoKTtiKGRvY3VtZW50KS5zY3JvbGxUb3AoKTt2YXIgbD0vTW9iaS8udGVzdChuYXZpZ2F0b3IudXNlckFnZW50KT81OjIwLGU9KGstbikvMitsO2U9ZTxsfHxrPG4\/bDplOzA8YigiI2QyY19ib2R5Q29udGVudCIpLmxlbmd0aCYmKGUtPWIoIiNkMmNfYm9keUNvbnRlbnQiKS5vZmZzZXQoKS50b3ApOzA8YigiLnNsb3RNYWNoaW5lQ29udGFpbmVyIikubGVuZ3RoJiZiKCIuc2xvdE1hY2hpbmVDb250YWluZXIiKS5zaG93KCk7ZC5vZmYoImNsaWNrLm1vZGFsRXZlbnQiKTsKYigiLiIrYS5kaXNtaXNzbW9kYWxjbGFzcykub2ZmKCJjbGljay5tb2RhbEV2ZW50Iik7Z3x8KGc9ITAsImZhZGVBbmRQb3AiPT1hLmFuaW1hdGlvbiYmKGMuY3NzKHt0b3A6Yihkb2N1bWVudCkuc2Nyb2xsVG9wKCktbSxvcGFjaXR5OjAsdmlzaWJpbGl0eToidmlzaWJsZSJ9KSxkLmZhZGVJbihhLmFuaW1hdGlvbnNwZWVkLzIpLGMuZGVsYXkoYS5hbmltYXRpb25zcGVlZC8yKS5hbmltYXRlKHt0b3A6Yihkb2N1bWVudCkuc2Nyb2xsVG9wKCkrZSsicHgiLG9wYWNpdHk6MX0sYS5hbmltYXRpb25zcGVlZCxmKCkpKSwiZmFkZSI9PWEuYW5pbWF0aW9uJiYoYy5jc3Moe29wYWNpdHk6MCx2aXNpYmlsaXR5OiJ2aXNpYmxlIix0b3A6Yihkb2N1bWVudCkuc2Nyb2xsVG9wKCkrZX0pLGQuZmFkZUluKGEuYW5pbWF0aW9uc3BlZWQvMiksYy5kZWxheShhLmFuaW1hdGlvbnNwZWVkLzIpLmFuaW1hdGUoe29wYWNpdHk6MX0sYS5hbmltYXRpb25zcGVlZCxmKCkpKSwibm9uZSI9PWEuYW5pbWF0aW9uJiYKKGMuY3NzKHt2aXNpYmlsaXR5OiJ2aXNpYmxlIix0b3A6Yihkb2N1bWVudCkuc2Nyb2xsVG9wKCkrZX0pLGQuY3NzKHtkaXNwbGF5OiJibG9jayJ9KSxmKCkpLCJleHRlcm5hbEFuaW1hdGlvbiI9PWEuYW5pbWF0aW9uJiYoYy5jc3Moe3Zpc2liaWxpdHk6InZpc2libGUiLHRvcDpiKGRvY3VtZW50KS5zY3JvbGxUb3AoKStlLGRpc3BsYXk6Im5vbmUifSkuc2hvdygpLGQuY3NzKHtkaXNwbGF5OiJibG9jayJ9KSxmKCkpKTtjLm9mZigicmV2ZWFsOm9wZW4iKX0pO2Mub24oInJldmVhbDpjbG9zZSIsZnVuY3Rpb24oKXtiKCJib2R5IikuY3NzKCJvdmVyZmxvdyIsImF1dG8iKTtiKCIuc2xvdE1hY2hpbmVDb250YWluZXIiKS5oaWRlKCk7aWYoIWcmJihnPSEwLCJmYWRlQW5kUG9wIj09YS5hbmltYXRpb24mJihkLmRlbGF5KGEuYW5pbWF0aW9uc3BlZWQpLmZhZGVPdXQoYS5hbmltYXRpb25zcGVlZCksYy5hbmltYXRlKHt0b3A6Yihkb2N1bWVudCkuc2Nyb2xsVG9wKCktbSsicHgiLG9wYWNpdHk6MH0sCmEuYW5pbWF0aW9uc3BlZWQvMixmdW5jdGlvbigpe2MuY3NzKHt0b3A6aCxvcGFjaXR5OjEsdmlzaWJpbGl0eToiaGlkZGVuIn0pO2YoKX0pKSwiZmFkZSI9PWEuYW5pbWF0aW9uJiYoZC5kZWxheShhLmFuaW1hdGlvbnNwZWVkKS5mYWRlT3V0KGEuYW5pbWF0aW9uc3BlZWQpLGMuYW5pbWF0ZSh7b3BhY2l0eTowfSxhLmFuaW1hdGlvbnNwZWVkLGZ1bmN0aW9uKCl7Yy5jc3Moe29wYWNpdHk6MSx2aXNpYmlsaXR5OiJoaWRkZW4iLHRvcDpofSk7ZigpfSkpLCJub25lIj09YS5hbmltYXRpb24mJihjLmNzcyh7dmlzaWJpbGl0eToiaGlkZGVuIix0b3A6aH0pLGQuY3NzKHtkaXNwbGF5OiJub25lIn0pKSwiZXh0ZXJuYWxBbmltYXRpb24iPT1hLmFuaW1hdGlvbikpYy5oaWRlKCkub25lKCJhbmltYXRpb25FbmQiLGZ1bmN0aW9uKCl7Yih0aGlzKS5jc3Moe3Zpc2liaWxpdHk6ImhpZGRlbiIsdG9wOmgsZGlzcGxheToibm9uZSJ9KTtkLmNzcyh7ZGlzcGxheToibm9uZSJ9KX0pO2Mub2ZmKCJyZXZlYWw6Y2xvc2UiKTsKInVuZGVmaW5lZCIhPXR5cGVvZiBhLmNsb3NlZCYmYS5jbG9zZWQoKX0pO2MudHJpZ2dlcigicmV2ZWFsOm9wZW4iKTtiKCIuIithLmRpc21pc3Ntb2RhbGNsYXNzKS5vbigiY2xpY2subW9kYWxFdmVudCB0b3VjaHN0YXJ0IixmdW5jdGlvbigpe2MudHJpZ2dlcigicmV2ZWFsOmNsb3NlIil9KTthLmNsb3Nlb25iYWNrZ3JvdW5kY2xpY2smJihkLmNzcyh7Y3Vyc29yOiJwb2ludGVyIn0pLGQub24oImNsaWNrLm1vZGFsRXZlbnQiLGZ1bmN0aW9uKCl7Yy50cmlnZ2VyKCJyZXZlYWw6Y2xvc2UiKX0pKTtpZihhLmNsb3Nlb25lc2NhcGUpYigiYm9keSIpLm9uKCJrZXl1cCIsZnVuY3Rpb24oayl7Mjc9PT1rLndoaWNoJiZjLnRyaWdnZXIoInJldmVhbDpjbG9zZSIpfSl9KX19KShqUXVlcnkpOwovKiogL20vanMvcHJvbW9fZHluYW1pY19maWxlX2ZyLmpzICoqLwooZnVuY3Rpb24oKXt9KTsKLyoqIC9tL2pzL2Jhc2U2NC5qcyAqKi8KdmFyIF9fX2QyY19iYXNlNjRqc19jX29uPSIyMDI1LTA1LTIzIDE3OjA2OjA4IjsndXNlIHN0cmljdCc7dmFyIF9fX2QyY19iYXNlNjRqc19jX29uPSIyMDI0LTA3LTA4IDEwOjMwOjA1IjsidXNlIHN0cmljdCI7CnZhciBCYXNlNjQ9e19rZXlTdHI6IkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5Ky89IixfYjY0VGVzdDpSZWdFeHAoIl4oPzpbQS1aYS16MC05Ky9dezR9KSooPzpbQS1aYS16MC05Ky9dezJ9PT18W0EtWmEtejAtOSsvXXszfT0pPyQiKSxlbmNvZGU6ZnVuY3Rpb24oYSl7dmFyIGQ9IiIsYz0wO2ZvcihhPUJhc2U2NC5fdXRmOF9lbmNvZGUoYSk7YzxhLmxlbmd0aDspe3ZhciBiPWEuY2hhckNvZGVBdChjKyspLGU9YS5jaGFyQ29kZUF0KGMrKyksZj1hLmNoYXJDb2RlQXQoYysrKSxnPWI+PjI7Yj0oYiYzKTw8NHxlPj40O3ZhciBoPShlJjE1KTw8MnxmPj42LGs9ZiY2Mztpc05hTihlKT9oPWs9NjQ6aXNOYU4oZikmJihrPTY0KTtkPWQrdGhpcy5fa2V5U3RyLmNoYXJBdChnKSt0aGlzLl9rZXlTdHIuY2hhckF0KGIpK3RoaXMuX2tleVN0ci5jaGFyQXQoaCkrdGhpcy5fa2V5U3RyLmNoYXJBdChrKX1yZXR1cm4gZH0sZGVjb2RlOmZ1bmN0aW9uKGEpe3ZhciBkPQoiIixjPTA7Zm9yKGE9YS5yZXBsYWNlKC9bXkEtWmEtejAtOVwrXC89XS9nLCIiKTtjPGEubGVuZ3RoOyl7dmFyIGI9dGhpcy5fa2V5U3RyLmluZGV4T2YoYS5jaGFyQXQoYysrKSksZT10aGlzLl9rZXlTdHIuaW5kZXhPZihhLmNoYXJBdChjKyspKSxmPXRoaXMuX2tleVN0ci5pbmRleE9mKGEuY2hhckF0KGMrKykpLGc9dGhpcy5fa2V5U3RyLmluZGV4T2YoYS5jaGFyQXQoYysrKSk7Yj1iPDwyfGU+PjQ7ZT0oZSYxNSk8PDR8Zj4+Mjt2YXIgaD0oZiYzKTw8NnxnO2QrPVN0cmluZy5mcm9tQ2hhckNvZGUoYik7NjQhPWYmJihkKz1TdHJpbmcuZnJvbUNoYXJDb2RlKGUpKTs2NCE9ZyYmKGQrPVN0cmluZy5mcm9tQ2hhckNvZGUoaCkpfXJldHVybiBCYXNlNjQuX3V0ZjhfZGVjb2RlKGQpfSxfdXRmOF9lbmNvZGU6ZnVuY3Rpb24oYSl7dmFyIGQ9IiI7YT1hLnJlcGxhY2UoL1xyXG4vZywiXG4iKTtmb3IodmFyIGM9MDtjPGEubGVuZ3RoO2MrKyl7dmFyIGI9YS5jaGFyQ29kZUF0KGMpOzEyOD4KYj9kKz1TdHJpbmcuZnJvbUNoYXJDb2RlKGIpOigxMjc8YiYmMjA0OD5iP2QrPVN0cmluZy5mcm9tQ2hhckNvZGUoYj4+NnwxOTIpOihkKz1TdHJpbmcuZnJvbUNoYXJDb2RlKGI+PjEyfDIyNCksZCs9U3RyaW5nLmZyb21DaGFyQ29kZShiPj42JjYzfDEyOCkpLGQrPVN0cmluZy5mcm9tQ2hhckNvZGUoYiY2M3wxMjgpKX1yZXR1cm4gZH0sX3V0ZjhfZGVjb2RlOmZ1bmN0aW9uKGEpe2Zvcih2YXIgZD0iIixjPTAsYixlLGY7YzxhLmxlbmd0aDspYj1hLmNoYXJDb2RlQXQoYyksMTI4PmI\/KGQrPVN0cmluZy5mcm9tQ2hhckNvZGUoYiksYysrKToxOTE8YiYmMjI0PmI\/KGU9YS5jaGFyQ29kZUF0KGMrMSksZCs9U3RyaW5nLmZyb21DaGFyQ29kZSgoYiYzMSk8PDZ8ZSY2MyksYys9Mik6KGU9YS5jaGFyQ29kZUF0KGMrMSksZj1hLmNoYXJDb2RlQXQoYysyKSxkKz1TdHJpbmcuZnJvbUNoYXJDb2RlKChiJjE1KTw8MTJ8KGUmNjMpPDw2fGYmNjMpLGMrPTMpO3JldHVybiBkfSx3aGl0ZUxpc3Q6ZnVuY3Rpb24oKXtyZXR1cm5bInRyYWlsZXJzIl19LAppc0Jhc2U2NDpmdW5jdGlvbihhKXtyZXR1cm4gQmFzZTY0LndoaXRlTGlzdCgpLmluY2x1ZGVzKGEudG9Mb3dlckNhc2UoKSl8fCJ1bmRlZmluZWQiPT09dHlwZW9mIGF8fCIiPT09YXx8IiI9PT1hLnRyaW0oKXx8ND49YS5sZW5ndGg\/ITE6QmFzZTY0LmVuY29kZShCYXNlNjQuZGVjb2RlKGEpKT09YX19OwovKiogL20vanMvZDJjdGNrL3Vwcm9maWxlLmZpbmFsLm1pbi5qcyAqKi8KYWN0aXZlVXNlclByb2ZpbGVNbmc9e29ucmVhZHk6bnVsbCxvbm5vdGZvdW5kOm51bGwsZGlzYWJsZWQ6ITEsdWlkOm51bGwsYWN0aXZlU3RlcDowLHN3ZlN0b3JlOiExLHJlZ2lzdGVyZWRQYWdlVmlld3M6bnVsbCxyZWdpc3RlcmVkRXZlbnRzOm51bGwsc2Vzc2lvbmlkOm51bGwscmVnaXN0ZXJlZENhbGxiYWNrczpudWxsLHJlZ2lzdGVyZWRTZXNzaW9uQ2FsbGJhY2tzOm51bGwscGFnZVZpZXdDb3VudDpudWxsLF9fcHJvcGVydGllczpudWxsLGpxdWVyeUFjdGl2ZTohMCxpc0QyQ1NpdGU6ITAsX19yZXNldFY6OSxyZXNldFNlY29uZFBhc3M6ITEsX19vdXRwdXREaXZNc2c6ITEsX19vdXRwdXRDb25zb2xlTXNnOiExLGFqYXhNbmc6e2FzeW5jOiEwLF9sYXN0WDpudWxsLHg6ZnVuY3Rpb24oKXt0cnl7aWYoInVuZGVmaW5lZCIhPT10eXBlb2YgWE1MSHR0cFJlcXVlc3QpcmV0dXJuIG5ldyBYTUxIdHRwUmVxdWVzdDtmb3IodmFyIGE9WyJNU1hNTDIuWG1sSHR0cC41LjAiLAoJCQkiTVNYTUwyLlhtbEh0dHAuNC4wIiwiTVNYTUwyLlhtbEh0dHAuMy4wIiwiTVNYTUwyLlhtbEh0dHAuMi4wIiwiTWljcm9zb2Z0LlhtbEh0dHAiXSxiLGQ9MDtkPGEubGVuZ3RoO2QrKyl0cnl7Yj1uZXcgQWN0aXZlWE9iamVjdChhW2RdKTticmVha31jYXRjaChjKXt9fWNhdGNoKGMpe31yZXR1cm4gYn0sX3NlbmQ6ZnVuY3Rpb24oYSxiLGQsYyxlLGgpe3RyeXt2YXIgZj10aGlzLngoKTt0aGlzLl9sYXN0WD1mO2Yub3BlbihkLGEsZSk7dHJ5e2YuYWRkRXZlbnRMaXN0ZW5lcigiZXJyb3IiLGZ1bmN0aW9uKHEpeyJ1bmRlZmluZWQiIT10eXBlb2YgaCYmbnVsbCE9aCYmaChmLGYuc3RhdHVzVGV4dCxFcnJvcihmLnJlc3BvbnNlVGV4dCkpfSl9Y2F0Y2gocSl7fWYub25yZWFkeXN0YXRlY2hhbmdlPWZ1bmN0aW9uKCl7ND09Zi5yZWFkeVN0YXRlP2IoZi5yZXNwb25zZVRleHQpOiJ1bmRlZmluZWQiIT10eXBlb2YgaCYmbnVsbCE9aCYmaChmLGYuc3RhdHVzVGV4dCxFcnJvcihmLnJlc3BvbnNlVGV4dCkpfTsKCQkJIlBPU1QiPT1kJiZmLnNldFJlcXVlc3RIZWFkZXIoIkNvbnRlbnQtdHlwZSIsImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIpO2Yuc2VuZChjKX1jYXRjaChxKXsidW5kZWZpbmVkIiE9dHlwZW9mIGgmJm51bGwhPWgmJmgoZiwidW5rbm93biIscSl9fSxhamF4OmZ1bmN0aW9uKGEpe3ZhciBiPXRoaXM7dHJ5e2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgYS50eXBlJiYoYS50eXBlPSJHRVQiKSwidW5kZWZpbmVkIj09dHlwZW9mIGEuZGF0YSYmKGEuZGF0YT17fSksd2luZG93LmpRdWVyeSYmInVuZGVmaW5lZCIhPXR5cGVvZiAkLmFqYXgpJC5hamF4KGEpLmRvbmUoZnVuY3Rpb24oYyl7InVuZGVmaW5lZCIhPXR5cGVvZiBhLmRvbmUmJmEuZG9uZShjKX0pLmZhaWwoZnVuY3Rpb24oYyxlLGgpeyJ1bmRlZmluZWQiIT10eXBlb2YgYS5mYWlsJiZhLmZhaWwoYyxlLGgpfSkuYWx3YXlzKGZ1bmN0aW9uKCl7InVuZGVmaW5lZCIhPXR5cGVvZiBhLmFsd2F5cyYmYS5hbHdheXMoKX0pLmRvbmUoZnVuY3Rpb24oYyl7InVuZGVmaW5lZCIhPQoJCXR5cGVvZiBhLnN1Y2Nlc3MmJmEuc3VjY2VzcyhjKX0pLmFsd2F5cyhmdW5jdGlvbihjLGUpeyJ1bmRlZmluZWQiIT10eXBlb2YgYS5jb21wbGV0ZSYmYS5jb21wbGV0ZShiLl9sYXN0WCwidW5kZWZpbmVkIiE9dHlwZW9mIGIuX2xhc3RYLnN0YXR1c1RleHQ\/Yi5fbGFzdFguc3RhdHVzVGV4dDoiIil9KTtlbHNle3ZhciBkPWIuX2dldDsicG9zdCI9PWEudHlwZS50b0xvd2VyQ2FzZSgpJiYoZD1iLl9wb3N0KTtkKGEudXJsLGEuZGF0YSxmdW5jdGlvbihjKXsidW5kZWZpbmVkIiE9dHlwZW9mIGEuZG9uZSYmYS5kb25lKGMpOyJ1bmRlZmluZWQiIT10eXBlb2YgYS5zdWNjZXNzJiZhLnN1Y2Nlc3MoYyk7InVuZGVmaW5lZCIhPXR5cGVvZiBhLmNvbXBsZXRlJiZhLmNvbXBsZXRlKCk7InVuZGVmaW5lZCIhPXR5cGVvZiBhLmFsd2F5cyYmYS5hbHdheXMoKX0sYi5hc3luYyxmdW5jdGlvbihjLGUsaCl7InVuZGVmaW5lZCIhPXR5cGVvZiBhLmZhaWwmJmEuZmFpbChjLGUsaCl9KX19Y2F0Y2goYyl7Y29uc29sZSYmCgkJY29uc29sZS5sb2cmJmNvbnNvbGUubG9nKCJVbmV4cGVjdGVkIGVycm9yIGFjY2Vzc2luZyBhamF4TW5nLmdldDogJXMiLGMubWVzc2FnZSl9fSxfZ2V0OmZ1bmN0aW9uKGEsYixkLGMsZSl7dmFyIGg9W10sZjtmb3IoZiBpbiBiKWgucHVzaChlbmNvZGVVUklDb21wb25lbnQoZikrIj0iK2VuY29kZVVSSUNvbXBvbmVudChiW2ZdKSk7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBjfHxudWxsPT1jKWM9ITA7YWN0aXZlVXNlclByb2ZpbGVNbmcuYWpheE1uZy5fc2VuZChhKyI\/IitoLmpvaW4oIiYiKSxkLCJHRVQiLG51bGwsYyxlKX0sX3Bvc3Q6ZnVuY3Rpb24oYSxiLGQsYyxlKXt2YXIgaD1bXSxmO2ZvcihmIGluIGIpaC5wdXNoKGVuY29kZVVSSUNvbXBvbmVudChmKSsiPSIrZW5jb2RlVVJJQ29tcG9uZW50KGJbZl0pKTtpZigidW5kZWZpbmVkIj09dHlwZW9mIGN8fG51bGw9PWMpYz0hMDthY3RpdmVVc2VyUHJvZmlsZU1uZy5hamF4TW5nLl9zZW5kKGEsZCwiUE9TVCIsaC5qb2luKCImIiksCgkJCWMsZSl9LGdldFNjcmlwdDpmdW5jdGlvbihhLGIpe3RyeXtpZih3aW5kb3cualF1ZXJ5JiYidW5kZWZpbmVkIiE9dHlwZW9mICQuZ2V0U2NyaXB0KSQuZ2V0U2NyaXB0KGEsYik7ZWxzZXt2YXIgZD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKSxjPWRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJzY3JpcHQiKVswXTtkLmFzeW5jPTE7ZC5vbmxvYWQ9ZC5vbnJlYWR5c3RhdGVjaGFuZ2U9ZnVuY3Rpb24oZSxoKXtpZihofHwhZC5yZWFkeVN0YXRlfHwvbG9hZGVkfGNvbXBsZXRlLy50ZXN0KGQucmVhZHlTdGF0ZSkpZC5vbmxvYWQ9ZC5vbnJlYWR5c3RhdGVjaGFuZ2U9bnVsbCxkPXZvaWQgMCwhaCYmYiYmc2V0VGltZW91dChiLDApfTtkLnNyYz1hO2MucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoZCxjKX19Y2F0Y2goZSl7Y29uc29sZSYmY29uc29sZS5sb2cmJmNvbnNvbGUubG9nKCJVbmV4cGVjdGVkIGVycm9yIHJldHJpZXZpbmcganMgc2NyaXB0LiBUaGlzIHNob3VsZCBuZXZlciBoYXBwZW46ICVzIiwKCQkJZS5tZXNzYWdlKX19fSxjb29raWVNbmc6e3JlYWRDb29raWVWYWx1ZTpmdW5jdGlvbihhKXt2YXIgYj1udWxsO3RyeXtpZih3aW5kb3cualF1ZXJ5JiYidW5kZWZpbmVkIiE9dHlwZW9mICQuY29va2llKWI9JC5jb29raWUoYSksInVuZGVmaW5lZCI9PXR5cGVvZiBiJiYoYj1udWxsKTtlbHNle2ErPSI9Ijtmb3IodmFyIGQ9ZG9jdW1lbnQuY29va2llLnNwbGl0KCI7IiksYz0wO2M8ZC5sZW5ndGg7YysrKXtmb3IodmFyIGU9ZFtjXTsiICI9PWUuY2hhckF0KDApOyllPWUuc3Vic3RyaW5nKDEsZS5sZW5ndGgpO2lmKDA9PWUuaW5kZXhPZihhKSl7Yj1lLnN1YnN0cmluZyhhLmxlbmd0aCxlLmxlbmd0aCk7YnJlYWt9fX19Y2F0Y2goaCl7Y29uc29sZSYmY29uc29sZS5sb2cmJmNvbnNvbGUubG9nKCJVbmV4cGVjdGVkIGVycm9yIHJlYWRpbmcgY29va2llOiAlcyIsaC5tZXNzYWdlKX1yZXR1cm4gYn0sc2V0Q29va2llVmFsdWU6ZnVuY3Rpb24oYSxiLGQsYyl7dHJ5e2lmKCEwIT09dGhpcy5kaXNhYmxlZCl7aWYoInVuZGVmaW5lZCI9PQoJCQl0eXBlb2YgZHx8bnVsbD09ZClkPSIvIjtpZigidW5kZWZpbmVkIj09dHlwZW9mIGN8fG51bGw9PWMpYz0wOyJ1bmRlZmluZWQiPT10eXBlb2YgYiYmKGI9bnVsbCk7dmFyIGU9bmV3IERhdGU7ZS5zZXRUaW1lKGUuZ2V0VGltZSgpKzg2NEU1KmMpO3dpbmRvdy5qUXVlcnkmJiJ1bmRlZmluZWQiIT10eXBlb2YgJC5jb29raWU\/JC5jb29raWUoYSxiLHtwYXRoOmQsc2VjdXJlOiEwLGV4cGlyZXM6MD09Yz8iIjplfSk6KGV4cGlyZXM9MCE9Yz8iOyBleHBpcmVzPSIrZS50b0dNVFN0cmluZygpOiIiLGRvY3VtZW50LmNvb2tpZT1hKyI9IitiK2V4cGlyZXMrIjsgc2VjdXJlOyBwYXRoPSIrZCxiJiZhY3RpdmVVc2VyUHJvZmlsZU1uZy5jb29raWVNbmcubG9nQ29va2llKGEsYixjLGQpKX19Y2F0Y2goaCl7Y29uc29sZSYmY29uc29sZS5sb2cmJmNvbnNvbGUubG9nKCJVbmV4cGVjdGVkIGVycm9yIHNldHRpbmcgY29va2llOiAlcyIsaC5tZXNzYWdlKX19LGRlbGV0ZUNvb2tpZTpmdW5jdGlvbihhKXt0cnl7d2luZG93LmpRdWVyeSYmCgkJInVuZGVmaW5lZCIhPXR5cGVvZiAkLmNvb2tpZT8oJC5jb29raWUoYSxudWxsKSwkLmNvb2tpZShhLG51bGwse3BhdGg6Ii8ifSkpOnRoaXMuc2V0Q29va2llVmFsdWUoYSxudWxsLC0xKX1jYXRjaChiKXtjb25zb2xlJiZjb25zb2xlLmxvZyYmY29uc29sZS5sb2coIlVuZXhwZWN0ZWQgZXJyb3IgZGVsZXRpbmcgY29va2llOiAlcyIsYi5tZXNzYWdlKX19LGxvZ0Nvb2tpZTpmdW5jdGlvbihhLGIsZCxjLGUpeyJ1bmRlZmluZWQiPT09dHlwZW9mIGUmJihlPTUpOyJ1bmRlZmluZWQiPT09dHlwZW9mIHdpbmRvdy5Db29raWVMb2dnZXI\/ZSYmc2V0VGltZW91dChmdW5jdGlvbigpe2FjdGl2ZVVzZXJQcm9maWxlTW5nLmNvb2tpZU1uZy5sb2dDb29raWUoYSxiLGQsYyxlLTEpfSwxMDApOndpbmRvdy5Db29raWVMb2dnZXIubG9nKGEsYixkLGMpfX0sX191c2VQcm94eTpmdW5jdGlvbigpe3JldHVybiExPT09dGhpcy5pc0QyQ1NpdGU\/ITE6ITB9LF9pc0JvdDpmdW5jdGlvbigpe3JldHVybi9ib3R8Z29vZ2xlYm90fGNyYXdsZXJ8c3BpZGVyfHJvYm90fGNyYXdsaW5nL2kudGVzdChuYXZpZ2F0b3IudXNlckFnZW50KT8KCQkhMDohMX0sZ2V0U3RhdHNVUkk6ZnVuY3Rpb24oKXt2YXIgYT0iL3Byb3h5X3NkMmMvIjt0cnl7ITE9PT1hY3RpdmVVc2VyUHJvZmlsZU1uZy5pc0QyQ1NpdGUmJihhPSJodHRwOi8vc3RhdHMuZDJjbWVkaWEuY2EvIiwiaHR0cHM6Ij09d2luZG93LmxvY2F0aW9uLnByb3RvY29sJiYoYT0iaHR0cHM6Ly9zc2xzdGF0cy5kMmNtZWRpYS5jYS8iKSl9Y2F0Y2goYil7Y29uc29sZSYmY29uc29sZS5sb2cmJmNvbnNvbGUubG9nKCJVbmV4cGVjdGVkIGVycm9yIGNhdWdodCBpbiBnZXRTdGF0c1VSSTogJXMiLGIubWVzc2FnZSksYT0iaHR0cHM6Ly9zc2xzdGF0cy5kMmNtZWRpYS5jYS8ifXJldHVybiBhfSxnZXRGUFVSSTpmdW5jdGlvbigpe2lmKCEwPT09dGhpcy5kaXNhYmxlZClyZXR1cm4iIjt2YXIgYT0iL2pzL2QyY3Rjay9mcHJpbnQudjIubWluLmpzIjt0cnl7YT0hMT09PWFjdGl2ZVVzZXJQcm9maWxlTW5nLmlzRDJDU2l0ZT9udWxsIT13aW5kb3cubG9jYXRpb24mJiJ1bmRlZmluZWQiIT0KCXR5cGVvZiB3aW5kb3cubG9jYXRpb24uaHJlZiYmLTEhPXdpbmRvdy5sb2NhdGlvbi5ocmVmLmluZGV4T2YoImNybTIuZDJjbWVkaWEuY2EiKT8iaHR0cHM6Ly9jcm0yLmQyY21lZGlhLmNhL2Fzc2V0cy9qcy9kMmN0Y2svZnByaW50LnYyLmpzIjoiaHR0cHM6Ly93d3cuYXV0b2F1YmFpbmUuY29tL2pzL2QyY3Rjay9mcHJpbnQudjIubWluLmpzIjohMD09PXRoaXMuX19vdXRwdXREaXZNc2c\/Ii9qcy9kMmN0Y2svZnByaW50LnYyLmpzIjoiL2pzL2QyY3Rjay9mcHJpbnQudjIubWluLmpzIn1jYXRjaChiKXtjb25zb2xlJiZjb25zb2xlLmxvZyYmY29uc29sZS5sb2coIlVuZXhwZWN0ZWQgZXJyb3IgY2F1Z2h0IGluIGdldEZQVVJJOiAlcyIsYi5tZXNzYWdlKSxhPSIvanMvZDJjdGNrL2ZwcmludC52Mi5taW4uanMifXJldHVybiBhfSxnZXRTZXNzaW9uSUQ6ZnVuY3Rpb24oKXtpZihudWxsIT1hY3RpdmVVc2VyUHJvZmlsZU1uZy5zZXNzaW9uaWQpcmV0dXJuIGFjdGl2ZVVzZXJQcm9maWxlTW5nLnNlc3Npb25pZDsKCQl2YXIgYT13aW5kb3cuYWN0aXZlU2Vzc2lvbklEO2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgYXx8bnVsbD09YXx8MD09YSlyZXR1cm4gYWN0aXZlVXNlclByb2ZpbGVNbmcuc2Vzc2lvbmlkPXdpbmRvdy5hY3RpdmVTZXNzaW9uSUQsYWN0aXZlVXNlclByb2ZpbGVNbmcuc2Vzc2lvbmlkO2E9YWN0aXZlVXNlclByb2ZpbGVNbmcuY29va2llTW5nLnJlYWRDb29raWVWYWx1ZSgidXNpZCIpO3JldHVybiBudWxsIT1hPyhhY3RpdmVVc2VyUHJvZmlsZU1uZy5zZXNzaW9uaWQ9YSxhY3RpdmVVc2VyUHJvZmlsZU1uZy5zZXNzaW9uaWQpOjB9LHJlZ2lzdGVyQ2FsbGJhY2s6ZnVuY3Rpb24oYSl7aWYoITA9PT10aGlzLmRpc2FibGVkKXtpZihudWxsIT1hKXRyeXthKCl9Y2F0Y2goYil7fXJldHVybiExfW51bGw9PWFjdGl2ZVVzZXJQcm9maWxlTW5nLnJlZ2lzdGVyZWRDYWxsYmFja3MmJihhY3RpdmVVc2VyUHJvZmlsZU1uZy5yZWdpc3RlcmVkQ2FsbGJhY2tzPVtdKTsidW5kZWZpbmVkIiE9dHlwZW9mIGFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZCYmCgludWxsIT1hY3RpdmVVc2VyUHJvZmlsZU1uZy51aWQmJiJub25lIiE9YWN0aXZlVXNlclByb2ZpbGVNbmcudWlkP2EoKTphY3RpdmVVc2VyUHJvZmlsZU1uZy5yZWdpc3RlcmVkQ2FsbGJhY2tzLnB1c2goYSl9LHJlZ2lzdGVyU2Vzc2lvbkNhbGxiYWNrOmZ1bmN0aW9uKGEpe2lmKCEwPT09dGhpcy5kaXNhYmxlZCl7aWYobnVsbCE9YSl0cnl7YSgpfWNhdGNoKGIpe31yZXR1cm4hMX1udWxsPT1hY3RpdmVVc2VyUHJvZmlsZU1uZy5yZWdpc3RlcmVkU2Vzc2lvbkNhbGxiYWNrcyYmKGFjdGl2ZVVzZXJQcm9maWxlTW5nLnJlZ2lzdGVyZWRTZXNzaW9uQ2FsbGJhY2tzPVtdKTsidW5kZWZpbmVkIiE9dHlwZW9mIGFjdGl2ZVVzZXJQcm9maWxlTW5nLnNlc3Npb25pZCYmbnVsbCE9YWN0aXZlVXNlclByb2ZpbGVNbmcuc2Vzc2lvbmlkJiYwIT1hY3RpdmVVc2VyUHJvZmlsZU1uZy5zZXNzaW9uaWQ\/YSgpOmFjdGl2ZVVzZXJQcm9maWxlTW5nLnJlZ2lzdGVyZWRTZXNzaW9uQ2FsbGJhY2tzLnB1c2goYSl9LAoJX19ub3RpZnlVVUlEOmZ1bmN0aW9uKCl7dHJ5e2lmKCEwPT09dGhpcy5kaXNhYmxlZCl7dHJ5e2IoKX1jYXRjaChkKXt9cmV0dXJuITF9aWYobnVsbCE9YWN0aXZlVXNlclByb2ZpbGVNbmcucmVnaXN0ZXJlZENhbGxiYWNrcyl7Zm9yKHZhciBhPTA7YTxhY3RpdmVVc2VyUHJvZmlsZU1uZy5yZWdpc3RlcmVkQ2FsbGJhY2tzLmxlbmd0aDthKyspe3ZhciBiPWFjdGl2ZVVzZXJQcm9maWxlTW5nLnJlZ2lzdGVyZWRDYWxsYmFja3NbYV07YigpfWFjdGl2ZVVzZXJQcm9maWxlTW5nLnJlZ2lzdGVyZWRDYWxsYmFja3M9bnVsbH19Y2F0Y2goZCl7Y29uc29sZSYmY29uc29sZS5sb2cmJmNvbnNvbGUubG9nKCJVbmV4cGVjdGVkIGVycm9yIGNhdWdodCBpbiBfX25vdGlmeVVVSUQ6ICVzIixkLm1lc3NhZ2UpfX0sX19ub3RpZnlTZXNzaW9uSUQ6ZnVuY3Rpb24oKXtpZighMD09PXRoaXMuZGlzYWJsZWQpcmV0dXJuITE7dmFyIGE9YWN0aXZlVXNlclByb2ZpbGVNbmcuZ2V0U2Vzc2lvbklEKCk7CgkJaWYoInVuZGVmaW5lZCI9PXR5cGVvZiBhfHxudWxsPT1hfHwiMCI9PWF8fDA9PWEpdmFyIGI9c2V0SW50ZXJ2YWwoZnVuY3Rpb24oKXt0cnl7bnVsbD09YWN0aXZlVXNlclByb2ZpbGVNbmcucmVnaXN0ZXJlZFNlc3Npb25DYWxsYmFja3M\/Y2xlYXJJbnRlcnZhbChiKTowIT09YWN0aXZlVXNlclByb2ZpbGVNbmcuZ2V0U2Vzc2lvbklEKCkmJihjbGVhckludGVydmFsKGIpLGFjdGl2ZVVzZXJQcm9maWxlTW5nLl9fbm90aWZ5U2Vzc2lvbklEKCkpfWNhdGNoKGQpe2NvbnNvbGUmJmNvbnNvbGUubG9nJiZjb25zb2xlLmxvZygiTm90aWZ5IHNlc3Npb25pZCBmYWlsZWQgd2l0aDogJXMiLGQubWVzc2FnZSl9fSw1MDApO2lmKG51bGwhPWFjdGl2ZVVzZXJQcm9maWxlTW5nLnJlZ2lzdGVyZWRTZXNzaW9uQ2FsbGJhY2tzKXRyeXtmb3IoYT0wO2E8YWN0aXZlVXNlclByb2ZpbGVNbmcucmVnaXN0ZXJlZFNlc3Npb25DYWxsYmFja3MubGVuZ3RoO2ErKykoMCxhY3RpdmVVc2VyUHJvZmlsZU1uZy5yZWdpc3RlcmVkU2Vzc2lvbkNhbGxiYWNrc1thXSkoKTsKCQkJYWN0aXZlVXNlclByb2ZpbGVNbmcucmVnaXN0ZXJlZFNlc3Npb25DYWxsYmFja3M9bnVsbH1jYXRjaChkKXtjb25zb2xlJiZjb25zb2xlLmxvZyYmY29uc29sZS5sb2coIlVuZXhwZWN0ZWQgZXJyb3IgY2F1Z2h0IGluIF9fbm90aWZ5U2Vzc2lvbklEOiAlcyIsZC5tZXNzYWdlKX19LGxvZ01zZzpmdW5jdGlvbihhKXt0cnl7aWYoITA9PT10aGlzLmRpc2FibGVkKXJldHVybiExOyEwPT09dGhpcy5fX291dHB1dERpdk1zZyYmJChkb2N1bWVudC5ib2R5KS5hcHBlbmQoIjxkaXY+IithKyI8L2Rpdj4iKTshMD09PXRoaXMuX19vdXRwdXRDb25zb2xlTXNnJiZjb25zb2xlJiZjb25zb2xlLmxvZyYmY29uc29sZS5sb2coYSl9Y2F0Y2goYil7Y29uc29sZSYmY29uc29sZS5sb2cmJmNvbnNvbGUubG9nKCJVbmV4cGVjdGVkIGVycm9yIGNhdWdodCBpbiBtZXNzYWdlIGxvZ2dpbmcuIEhvdyBpcm9uaWM6ICVzIixiLm1lc3NhZ2UpfX0sY2hlY2tTY2hlZHVsZWRSZXNldDpmdW5jdGlvbigpe3ZhciBhPQoJCSExO3RyeXtpZighMD09PWFjdGl2ZVVzZXJQcm9maWxlTW5nLmRpc2FibGVkKXJldHVybiExO3ZhciBiPWFjdGl2ZVVzZXJQcm9maWxlTW5nLmNvb2tpZU1uZy5yZWFkQ29va2llVmFsdWUoInV1aWRfcnN0Iik7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBifHxudWxsPT1iKWI9MDtiIT10aGlzLl9fcmVzZXRWJiYoYT0hMCxhY3RpdmVVc2VyUHJvZmlsZU1uZy5jb29raWVNbmcuc2V0Q29va2llVmFsdWUoInV1aWRfcnN0Iix0aGlzLl9fcmVzZXRWLCIvIiw0RTMpKX1jYXRjaChkKXt0aGlzLmxvZ01zZygiVW5leHBlY3RlZCBlcnJvciBpbiBzY2hlZHVsZWQgcmVzZXQgY2hlY2s6ICIrZC5tZXNzYWdlKX1yZXR1cm4gYX0sZ2V0QWN0aXZlUHJvZmlsZWlkOmZ1bmN0aW9uKCl7aWYobnVsbCE9dGhpcy51aWQpcmV0dXJuIG51bGw9PXdpbmRvdy5hY3RpdmVQcm9maWxlSUQmJih3aW5kb3cuYWN0aXZlUHJvZmlsZUlEPXRoaXMudWlkKSx0aGlzLnVpZDtpZighMD09PWFjdGl2ZVVzZXJQcm9maWxlTW5nLmRpc2FibGVkKXJldHVybiBudWxsOwoJCXZhciBhPXRoaXMuY29va2llTW5nLnJlYWRDb29raWVWYWx1ZSgidXVpZCIpO2lmKG51bGwhPWEmJjA8YS5sZW5ndGgpcmV0dXJuIHRoaXMuYWN0aXZlUHJvZmlsZUlEPXRoaXMudWlkPWEsdGhpcy5fX2ZpcmVSZWFkeUV2ZW50KCksdGhpcy51aWQ7YT1hY3RpdmVVc2VyUHJvZmlsZU1uZy5jb29raWVNbmcucmVhZENvb2tpZVZhbHVlKCJ1dWlkX3ZsZDMiKTtpZihudWxsIT1hJiYwIT1hLmxlbmd0aCl7YWN0aXZlVXNlclByb2ZpbGVNbmcuX19sb2FkVXNlckRhdGFDb29raWUoKTthY3RpdmVVc2VyUHJvZmlsZU1uZy5lbnN1cmVWYWxpZElEKCk7aWYobnVsbCE9YWN0aXZlVXNlclByb2ZpbGVNbmcudWlkKXJldHVybiBhY3RpdmVVc2VyUHJvZmlsZU1uZy51aWQ7YWN0aXZlVXNlclByb2ZpbGVNbmcuX19sb2FkTG9jYWxTdG9yYWdlQ29va2llKCk7YWN0aXZlVXNlclByb2ZpbGVNbmcuZW5zdXJlVmFsaWRJRCgpO2lmKG51bGwhPWFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZClyZXR1cm4gYWN0aXZlVXNlclByb2ZpbGVNbmcudWlkOwoJCQlhY3RpdmVVc2VyUHJvZmlsZU1uZy5fX2xvYWRHbG9iYWxTdG9yYWdlQ29va2llKCk7YWN0aXZlVXNlclByb2ZpbGVNbmcuZW5zdXJlVmFsaWRJRCgpO2lmKG51bGwhPWFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZClyZXR1cm4gYWN0aXZlVXNlclByb2ZpbGVNbmcudWlkO2FjdGl2ZVVzZXJQcm9maWxlTW5nLl9fbG9hZFNlc3Npb25TdG9yYWdlQ29va2llKCk7YWN0aXZlVXNlclByb2ZpbGVNbmcuZW5zdXJlVmFsaWRJRCgpO2lmKG51bGwhPWFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZClyZXR1cm4gYWN0aXZlVXNlclByb2ZpbGVNbmcudWlkO2FjdGl2ZVVzZXJQcm9maWxlTW5nLl9fbG9hZEZyb21Mb2NhbERCKCk7YWN0aXZlVXNlclByb2ZpbGVNbmcuZW5zdXJlVmFsaWRJRCgpO2lmKG51bGwhPWFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZClyZXR1cm4gYWN0aXZlVXNlclByb2ZpbGVNbmcudWlkO2FjdGl2ZVVzZXJQcm9maWxlTW5nLl9fbG9hZEZMVkNvb2tpZSgpfWVsc2Ugc2V0VGltZW91dCgiYWN0aXZlVXNlclByb2ZpbGVNbmcuX19jb250aW51ZUxvYWQoMykiLAoJCQk1MDApO3JldHVybiBudWxsfSxlbnN1cmVWYWxpZElEOmZ1bmN0aW9uKCl7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBhY3RpdmVVc2VyUHJvZmlsZU1uZ3x8InN0cmluZyI9PXR5cGVvZiBhY3RpdmVVc2VyUHJvZmlsZU1uZy51aWQmJjA9PWFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZC5sZW5ndGgpYWN0aXZlVXNlclByb2ZpbGVNbmcudWlkPW51bGx9LHNldEFjdGl2ZVByb2ZpbGVpZDpmdW5jdGlvbigpe2lmKG51bGw9PWFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZHx8ITA9PT1hY3RpdmVVc2VyUHJvZmlsZU1uZy5kaXNhYmxlZClyZXR1cm4hMTthY3RpdmVVc2VyUHJvZmlsZU1uZy5zZXREQkNvb2tpZSgpO2FjdGl2ZVVzZXJQcm9maWxlTW5nLnNldFBOR0Nvb2tpZSgpO2FjdGl2ZVVzZXJQcm9maWxlTW5nLnNldEVUYWdDb29raWUoKTthY3RpdmVVc2VyUHJvZmlsZU1uZy5zZXRVc2VyRGF0YUNvb2tpZSgpO2FjdGl2ZVVzZXJQcm9maWxlTW5nLnNldExvY2FsU3RvcmFnZUNvb2tpZSgpO2FjdGl2ZVVzZXJQcm9maWxlTW5nLnNldEdsb2JhbFN0b3JhZ2VDb29raWUoKTsKCQlhY3RpdmVVc2VyUHJvZmlsZU1uZy5zZXRTZXNzaW9uU3RvcmFnZUNvb2tpZSgpO2FjdGl2ZVVzZXJQcm9maWxlTW5nLnNldEZMVkNvb2tpZSgpO2FjdGl2ZVVzZXJQcm9maWxlTW5nLl9fbm90aWZ5VVVJRCgpfSxfX2NvbnRpbnVlTG9hZDpmdW5jdGlvbihhKXtpZighMD09PWFjdGl2ZVVzZXJQcm9maWxlTW5nLmRpc2FibGVkKXJldHVybiExO2FjdGl2ZVVzZXJQcm9maWxlTW5nLmVuc3VyZVZhbGlkSUQoKTtpZihudWxsIT1hY3RpdmVVc2VyUHJvZmlsZU1uZy51aWQpYWN0aXZlVXNlclByb2ZpbGVNbmcuX19maXJlUmVhZHlFdmVudCgpO2Vsc2Ugc3dpdGNoKGEpe2Nhc2UgMTphY3RpdmVVc2VyUHJvZmlsZU1uZy5fX2xvYWRFVGFnQ29va2llKCk7YnJlYWs7Y2FzZSAyOmFjdGl2ZVVzZXJQcm9maWxlTW5nLl9fbG9hZFBOR0Nvb2tpZSgpO2JyZWFrO2RlZmF1bHQ6YWN0aXZlVXNlclByb2ZpbGVNbmcuX19maXJlTm90Rm91bmQoKX19LF9fZmlyZVJlYWR5RXZlbnQ6ZnVuY3Rpb24oKXtpZihudWxsIT0KCQlhY3RpdmVVc2VyUHJvZmlsZU1uZy5vbnJlYWR5KWFjdGl2ZVVzZXJQcm9maWxlTW5nLm9ucmVhZHkoYWN0aXZlVXNlclByb2ZpbGVNbmcudWlkKTthY3RpdmVVc2VyUHJvZmlsZU1uZy5fX25vdGlmeVVVSUQoKX0sX19maXJlTm90Rm91bmQ6ZnVuY3Rpb24oKXtpZihudWxsIT1hY3RpdmVVc2VyUHJvZmlsZU1uZy5vbm5vdGZvdW5kKWFjdGl2ZVVzZXJQcm9maWxlTW5nLm9ubm90Zm91bmQoKX0sc2V0RkxWQ29va2llOmZ1bmN0aW9uKCl7aWYobnVsbCE9YWN0aXZlVXNlclByb2ZpbGVNbmcudWlkJiYibm9uZSIhPWFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZCl7aWYoITA9PT1hY3RpdmVVc2VyUHJvZmlsZU1uZy5kaXNhYmxlZClyZXR1cm4hMTt0cnl7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBuYXZpZ2F0b3IucGx1Z2lucyYmIm9iamVjdCI9PXR5cGVvZiBuYXZpZ2F0b3IucGx1Z2luc1siU2hvY2t3YXZlIEZsYXNoIl18fHdpbmRvdy5BY3RpdmVYT2JqZWN0JiYwIT1uZXcgQWN0aXZlWE9iamVjdCgiU2hvY2t3YXZlRmxhc2guU2hvY2t3YXZlRmxhc2giKSl7aWYoIWFjdGl2ZVVzZXJQcm9maWxlTW5nLnN3ZlN0b3JlJiYKCQkoYWN0aXZlVXNlclByb2ZpbGVNbmcuc3dmU3RvcmU9ITAsInVuZGVmaW5lZCI9PXR5cGVvZiBTd2ZTdG9yZSkpe2FjdGl2ZVVzZXJQcm9maWxlTW5nLmFqYXhNbmcuZ2V0U2NyaXB0KCIvanMvc3dmc3RvcmUuanMiLGFjdGl2ZVVzZXJQcm9maWxlTW5nLnNldEZMVkNvb2tpZSk7cmV0dXJufXRyeXt2YXIgYT1uZXcgU3dmU3RvcmUoe25hbWVzcGFjZToidXByb2ZpbGUiLHN3Zl91cmw6Ii9mbGFzaC9zdG9yYWdlLnN3ZiIsb25yZWFkeTpmdW5jdGlvbigpe2Euc2V0KCJ1aWQiLGFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZCl9LG9uZXJyb3I6ZnVuY3Rpb24oKXt9fSl9Y2F0Y2goYil7InVuZGVmaW5lZCIhPXR5cGVvZiBjb25zb2xlJiZudWxsIT1jb25zb2xlJiZjb25zb2xlLmxvZyYmY29uc29sZS5sb2coIlVuYWJsZSB0byBzZXQgRkxWIENvb2tpZS4gRXJyb3I6ICIrYi5tZXNzYWdlKX19fWNhdGNoKGIpeyJ1bmRlZmluZWQiIT10eXBlb2YgY29uc29sZSYmbnVsbCE9Y29uc29sZSYmY29uc29sZS5sb2cmJgoJY29uc29sZS5sb2coIk1BSU46IFVuYWJsZSB0byBzZXQgRkxWIENvb2tpZS4gRXJyb3I6ICIrYi5tZXNzYWdlKX19fSxfX2xvYWRGTFZDb29raWU6ZnVuY3Rpb24oKXtpZihudWxsPT1hY3RpdmVVc2VyUHJvZmlsZU1uZy51aWQpe2lmKCEwPT09YWN0aXZlVXNlclByb2ZpbGVNbmcuZGlzYWJsZWQpcmV0dXJuITE7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBuYXZpZ2F0b3IucGx1Z2lucyYmIm9iamVjdCI9PXR5cGVvZiBuYXZpZ2F0b3IucGx1Z2luc1siU2hvY2t3YXZlIEZsYXNoIl18fHdpbmRvdy5BY3RpdmVYT2JqZWN0JiYwIT1uZXcgQWN0aXZlWE9iamVjdCgiU2hvY2t3YXZlRmxhc2guU2hvY2t3YXZlRmxhc2giKSl7aWYoIWFjdGl2ZVVzZXJQcm9maWxlTW5nLnN3ZlN0b3JlJiYoYWN0aXZlVXNlclByb2ZpbGVNbmcuc3dmU3RvcmU9ITAsInVuZGVmaW5lZCI9PXR5cGVvZiBTd2ZTdG9yZSkpe2FjdGl2ZVVzZXJQcm9maWxlTW5nLmFqYXhNbmcuZ2V0U2NyaXB0KCIvanMvc3dmc3RvcmUuanMiLAoJCWFjdGl2ZVVzZXJQcm9maWxlTW5nLl9fbG9hZEZMVkNvb2tpZSk7cmV0dXJufXRyeXt2YXIgYT1uZXcgU3dmU3RvcmUoe25hbWVzcGFjZToidXByb2ZpbGUiLHN3Zl91cmw6Ii9mbGFzaC9zdG9yYWdlLnN3ZiIsb25yZWFkeTpmdW5jdGlvbigpe3ZhciBiPWEuZ2V0KCJ1aWQiKTsidW5kZWZpbmVkIiE9dHlwZW9mIGImJm51bGwhPWImJihhY3RpdmVVc2VyUHJvZmlsZU1uZy51aWQ9Yik7YWN0aXZlVXNlclByb2ZpbGVNbmcuX19jb250aW51ZUxvYWQoMSl9LG9uZXJyb3I6ZnVuY3Rpb24oKXthY3RpdmVVc2VyUHJvZmlsZU1uZy5fX2NvbnRpbnVlTG9hZCgxKX19KX1jYXRjaChiKXt9fWVsc2UgYWN0aXZlVXNlclByb2ZpbGVNbmcuX19jb250aW51ZUxvYWQoMSl9fSxfX2xvYWRGcm9tTG9jYWxEQjpmdW5jdGlvbigpe2lmKG51bGw9PWFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZCl7aWYoITA9PT1hY3RpdmVVc2VyUHJvZmlsZU1uZy5kaXNhYmxlZClyZXR1cm4hMTt0cnl7d2luZG93Lm9wZW5EYXRhYmFzZSYmCglkYXRhYmFzZS50cmFuc2FjdGlvbihmdW5jdGlvbihhKXthLmV4ZWN1dGVTcWwoIlNFTEVDVCB2YWx1ZSBGUk9NIHVwcm9maWxlIFdIRVJFIG5hbWU9PyIsWyJ1aWQiXSxmdW5jdGlvbihiLGQpezE8PWQucm93cy5sZW5ndGgmJihhY3RpdmVVc2VyUHJvZmlsZU1uZy51aWQ9ZC5yb3dzLml0ZW0oMCkudmFsdWUpfSxmdW5jdGlvbihiLGQpe30pfSl9Y2F0Y2goYSl7fX19LHNldERCQ29va2llOmZ1bmN0aW9uKCl7aWYobnVsbCE9YWN0aXZlVXNlclByb2ZpbGVNbmcudWlkJiYibm9uZSIhPWFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZCl7aWYoITA9PT1hY3RpdmVVc2VyUHJvZmlsZU1uZy5kaXNhYmxlZClyZXR1cm4hMTt0cnl7aWYod2luZG93Lm9wZW5EYXRhYmFzZSl7dmFyIGE9d2luZG93Lm9wZW5EYXRhYmFzZSgic3FsaXRlX3Vwcm9maWxlIiwiIiwidXByb2ZpbGUiLDEwNDg1NzYpOyJ1bmRlZmluZWQiIT10eXBlb2YgdmFsdWUmJmEudHJhbnNhY3Rpb24oZnVuY3Rpb24oYil7Yi5leGVjdXRlU3FsKCJDUkVBVEUgVEFCTEUgSUYgTk9UIEVYSVNUUyB1cHJvZmlsZShpZCBJTlRFR0VSIE5PVCBOVUxMIFBSSU1BUlkgS0VZIEFVVE9JTkNSRU1FTlQsIHVpZCBURVhUIE5PVCBOVUxMLCB2YWx1ZSBURVhUIE5PVCBOVUxMLCBVTklRVUUgKHVpZCkpIiwKCQlbXSxmdW5jdGlvbihkLGMpe30sZnVuY3Rpb24oZCxjKXt9KTtiLmV4ZWN1dGVTcWwoIklOU0VSVCBPUiBSRVBMQUNFIElOVE8gdXByb2ZpbGUodWlkLCB2YWx1ZSkgVkFMVUVTKD8sID8pIixbInVpZCIsYWN0aXZlVXNlclByb2ZpbGVNbmcudWlkXSxmdW5jdGlvbihkLGMpe30sZnVuY3Rpb24oZCxjKXt9KX0pfX1jYXRjaChiKXt9fX0sX19sb2FkUE5HQ29va2llOmZ1bmN0aW9uKCl7aWYobnVsbD09YWN0aXZlVXNlclByb2ZpbGVNbmcudWlkKXtpZighMD09PWFjdGl2ZVVzZXJQcm9maWxlTW5nLmRpc2FibGVkKXJldHVybiExO3RyeXtpZihkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKS5nZXRDb250ZXh0KXt2YXIgYT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKTthLnN0eWxlLnZpc2liaWxpdHk9ImhpZGRlbiI7YS5zdHlsZS5wb3NpdGlvbj0iYWJzb2x1dGUiO2Eud2lkdGg9MjAwO2EuaGVpZ2h0PTE7dmFyIGI9YS5nZXRDb250ZXh0KCIyZCIpLGQ9bmV3IEltYWdlOwoJCWQuc3R5bGUudmlzaWJpbGl0eT0iaGlkZGVuIjtkLnN0eWxlLnBvc2l0aW9uPSJhYnNvbHV0ZSI7ZC5zcmM9Ii9pbWFnZXNfYXBpL2QyY2lnY2FjaGUxLnBuZyI7ZC5vbmVycm9yPWZ1bmN0aW9uKCl7YWN0aXZlVXNlclByb2ZpbGVNbmcuX19jb250aW51ZUxvYWQoMyl9O2Qub25sb2FkPWZ1bmN0aW9uKCl7dHJ5e2IuZHJhd0ltYWdlKGQsMCwwKTtmb3IodmFyIGM9Yi5nZXRJbWFnZURhdGEoMCwwLDIwMCwxKS5kYXRhLGU9IiIsaD0wLGY9Yy5sZW5ndGg7aDxmJiYwIT1jW2hdO2grPTQpe2UrPVN0cmluZy5mcm9tQ2hhckNvZGUoY1toXSk7aWYoMD09Y1toKzFdKWJyZWFrO2UrPVN0cmluZy5mcm9tQ2hhckNvZGUoY1toKzFdKTtpZigwPT1jW2grMl0pYnJlYWs7ZSs9U3RyaW5nLmZyb21DaGFyQ29kZShjW2grMl0pfTA8ZS5sZW5ndGgmJihhY3RpdmVVc2VyUHJvZmlsZU1uZy51aWQ9ZSl9Y2F0Y2gocSl7fWFjdGl2ZVVzZXJQcm9maWxlTW5nLl9fY29udGludWVMb2FkKDMpfX19Y2F0Y2goYyl7fX19LAoJc2V0UE5HQ29va2llOmZ1bmN0aW9uKCl7aWYobnVsbCE9YWN0aXZlVXNlclByb2ZpbGVNbmcudWlkJiYibm9uZSIhPWFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZCl7aWYoITA9PT1hY3RpdmVVc2VyUHJvZmlsZU1uZy5kaXNhYmxlZClyZXR1cm4hMTt2YXIgYT1uZXcgSW1hZ2U7YS5zdHlsZS52aXNpYmlsaXR5PSJoaWRkZW4iO2Euc3R5bGUucG9zaXRpb249ImFic29sdXRlIjthLnNyYz0iL2ltYWdlc19hcGkvZDJjaWdjYWNoZTEucG5nP3ZhbD0iK2FjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZH19LF9fbG9hZEVUYWdDb29raWU6ZnVuY3Rpb24oKXtpZihudWxsPT1hY3RpdmVVc2VyUHJvZmlsZU1uZy51aWQpe2lmKCEwPT09YWN0aXZlVXNlclByb2ZpbGVNbmcuZGlzYWJsZWQpcmV0dXJuITE7dGhpcy5hamF4TW5nLmFqYXgoe3VybDoiL2ltYWdlc19hcGkvZDJjaWdjYWNoZTIucG5nIix0eXBlOiJHRVQiLHN1Y2Nlc3M6ZnVuY3Rpb24oYSl7YWN0aXZlVXNlclByb2ZpbGVNbmcudWlkPWF9LAoJCWNvbXBsZXRlOmZ1bmN0aW9uKGEsYil7YWN0aXZlVXNlclByb2ZpbGVNbmcuX19jb250aW51ZUxvYWQoMil9fSl9fSxzZXRFVGFnQ29va2llOmZ1bmN0aW9uKCl7aWYobnVsbCE9YWN0aXZlVXNlclByb2ZpbGVNbmcudWlkJiYibm9uZSIhPWFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZCl7aWYoITA9PT1hY3RpdmVVc2VyUHJvZmlsZU1uZy5kaXNhYmxlZClyZXR1cm4hMTt2YXIgYT1uZXcgSW1hZ2U7YS5zdHlsZS52aXNpYmlsaXR5PSJoaWRkZW4iO2Euc3R5bGUucG9zaXRpb249ImFic29sdXRlIjthLnNyYz0iL2ltYWdlc19hcGkvZDJjaWdjYWNoZTIucG5nP3ZhbD0iK2FjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZH19LF9fbG9hZFVzZXJEYXRhQ29va2llOmZ1bmN0aW9uKCl7aWYobnVsbD09YWN0aXZlVXNlclByb2ZpbGVNbmcudWlkKXtpZighMD09PWFjdGl2ZVVzZXJQcm9maWxlTW5nLmRpc2FibGVkKXJldHVybiExO3RyeXt2YXIgYT10aGlzLmNyZWF0ZUVsZW0oImRpdiIsInVzZXJkYXRhX2VsIiwKCQkxKTthLnN0eWxlLmJlaGF2aW9yPSJ1cmwoI2RlZmF1bHQjdXNlckRhdGEpIjthLmxvYWQoInVpZCIpO2FjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZD1hLmdldEF0dHJpYnV0ZSgidWlkIil9Y2F0Y2goYil7fX19LHNldFVzZXJEYXRhQ29va2llOmZ1bmN0aW9uKCl7aWYobnVsbCE9YWN0aXZlVXNlclByb2ZpbGVNbmcudWlkJiYibm9uZSIhPWFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZCl7aWYoITA9PT1hY3RpdmVVc2VyUHJvZmlsZU1uZy5kaXNhYmxlZClyZXR1cm4hMTt0cnl7dmFyIGE9dGhpcy5jcmVhdGVFbGVtKCJkaXYiLCJ1c2VyZGF0YV9lbCIsMSk7YS5zdHlsZS5iZWhhdmlvcj0idXJsKCNkZWZhdWx0I3VzZXJEYXRhKSI7YS5zZXRBdHRyaWJ1dGUoInVpZCIsYWN0aXZlVXNlclByb2ZpbGVNbmcudWlkKTthLnNhdmUoInVpZCIpfWNhdGNoKGIpe319fSxfX2xvYWRMb2NhbFN0b3JhZ2VDb29raWU6ZnVuY3Rpb24oKXtpZihudWxsPT1hY3RpdmVVc2VyUHJvZmlsZU1uZy51aWQpe2lmKCEwPT09CgkJYWN0aXZlVXNlclByb2ZpbGVNbmcuZGlzYWJsZWQpcmV0dXJuITE7dHJ5e3dpbmRvdy5sb2NhbFN0b3JhZ2UmJihhY3RpdmVVc2VyUHJvZmlsZU1uZy51aWQ9bG9jYWxTdG9yYWdlLmdldEl0ZW0oInVpZCIpKX1jYXRjaChhKXt9fX0sc2V0TG9jYWxTdG9yYWdlQ29va2llOmZ1bmN0aW9uKCl7aWYobnVsbCE9YWN0aXZlVXNlclByb2ZpbGVNbmcudWlkJiYibm9uZSIhPWFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZCl7aWYoITA9PT1hY3RpdmVVc2VyUHJvZmlsZU1uZy5kaXNhYmxlZClyZXR1cm4hMTt0cnl7d2luZG93LmxvY2FsU3RvcmFnZSYmbG9jYWxTdG9yYWdlLnNldEl0ZW0oInVpZCIsYWN0aXZlVXNlclByb2ZpbGVNbmcudWlkKX1jYXRjaChhKXt9fX0sX19sb2FkR2xvYmFsU3RvcmFnZUNvb2tpZTpmdW5jdGlvbigpe2lmKG51bGw9PWFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZCl7aWYoITA9PT1hY3RpdmVVc2VyUHJvZmlsZU1uZy5kaXNhYmxlZClyZXR1cm4hMTt0cnl7aWYod2luZG93Lmdsb2JhbFN0b3JhZ2UpcmV0dXJuIHRoaXMuZ2V0SG9zdCgpLAoJCWV2YWwoImFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZCA9IGdsb2JhbFN0b3JhZ2VbaG9zdF0udWlkIil9Y2F0Y2goYSl7fX19LHNldEdsb2JhbFN0b3JhZ2VDb29raWU6ZnVuY3Rpb24oKXtpZihudWxsIT1hY3RpdmVVc2VyUHJvZmlsZU1uZy51aWQmJiJub25lIiE9YWN0aXZlVXNlclByb2ZpbGVNbmcudWlkKXtpZighMD09PWFjdGl2ZVVzZXJQcm9maWxlTW5nLmRpc2FibGVkKXJldHVybiExO3RyeXt3aW5kb3cuZ2xvYmFsU3RvcmFnZSYmKHRoaXMuZ2V0SG9zdCgpLGV2YWwoImdsb2JhbFN0b3JhZ2VbaG9zdF0udWlkID0gYWN0aXZlVXNlclByb2ZpbGVNbmcudWlkIikpfWNhdGNoKGEpe319fSxfX2xvYWRTZXNzaW9uU3RvcmFnZUNvb2tpZTpmdW5jdGlvbigpe2lmKG51bGw9PWFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZCl7aWYoITA9PT1hY3RpdmVVc2VyUHJvZmlsZU1uZy5kaXNhYmxlZClyZXR1cm4hMTt0cnl7d2luZG93LnNlc3Npb25TdG9yYWdlJiYoYWN0aXZlVXNlclByb2ZpbGVNbmcudWlkPQoJCXdpbmRvdy5zZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCJ1aWQiKSl9Y2F0Y2goYSl7fX19LHNldFNlc3Npb25TdG9yYWdlQ29va2llOmZ1bmN0aW9uKCl7aWYobnVsbCE9YWN0aXZlVXNlclByb2ZpbGVNbmcudWlkJiYibm9uZSIhPWFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZCl7aWYoITA9PT1hY3RpdmVVc2VyUHJvZmlsZU1uZy5kaXNhYmxlZClyZXR1cm4hMTt0cnl7d2luZG93LnNlc3Npb25TdG9yYWdlJiZ3aW5kb3cuc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSgidWlkIixhY3RpdmVVc2VyUHJvZmlsZU1uZy51aWQpfWNhdGNoKGEpe319fSxyZWdpc3RlclBhZ2VWaWV3OmZ1bmN0aW9uKCl7aWYoITA9PT1hY3RpdmVVc2VyUHJvZmlsZU1uZy5kaXNhYmxlZClyZXR1cm4hMDtudWxsPT1hY3RpdmVVc2VyUHJvZmlsZU1uZy5yZWdpc3RlcmVkUGFnZVZpZXdzJiYoYWN0aXZlVXNlclByb2ZpbGVNbmcucmVnaXN0ZXJlZFBhZ2VWaWV3cz1bXSk7Zm9yKHZhciBhPTA7YTxhY3RpdmVVc2VyUHJvZmlsZU1uZy5yZWdpc3RlcmVkUGFnZVZpZXdzLmxlbmd0aDthKyspaWYod2luZG93LmxvY2F0aW9uLmhyZWY9PQoJCWFjdGl2ZVVzZXJQcm9maWxlTW5nLnJlZ2lzdGVyZWRQYWdlVmlld3NbYV0pcmV0dXJuITE7YWN0aXZlVXNlclByb2ZpbGVNbmcucmVnaXN0ZXJlZFBhZ2VWaWV3cy5wdXNoKHdpbmRvdy5sb2NhdGlvbi5ocmVmKTtyZXR1cm4hMH0scmVnaXN0ZXJQYWdlVmlld0V2ZW50OmZ1bmN0aW9uKGEsYixkKXtpZighMD09PWFjdGl2ZVVzZXJQcm9maWxlTW5nLmRpc2FibGVkKXJldHVybiEwO2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgZHx8bnVsbD09ZClkPSIiO2E9YSsifHx8IitiKyJ8fHwiK2Q7bnVsbD09YWN0aXZlVXNlclByb2ZpbGVNbmcucmVnaXN0ZXJlZEV2ZW50cyYmKGFjdGl2ZVVzZXJQcm9maWxlTW5nLnJlZ2lzdGVyZWRFdmVudHM9W10pO2ZvcihiPTA7YjxhY3RpdmVVc2VyUHJvZmlsZU1uZy5yZWdpc3RlcmVkRXZlbnRzLmxlbmd0aDtiKyspaWYoYT09YWN0aXZlVXNlclByb2ZpbGVNbmcucmVnaXN0ZXJlZEV2ZW50c1tiXSlyZXR1cm4hMTthY3RpdmVVc2VyUHJvZmlsZU1uZy5yZWdpc3RlcmVkRXZlbnRzLnB1c2goYSk7CgkJcmV0dXJuITB9LGxvZ1BhZ2VWaWV3RXZlbnQ6ZnVuY3Rpb24oYSxiLGQpe2lmKCFhY3RpdmVVc2VyUHJvZmlsZU1uZy5faXNCb3QoKSl7aWYoITA9PT1hY3RpdmVVc2VyUHJvZmlsZU1uZy5kaXNhYmxlZClyZXR1cm4hMTtpZihhY3RpdmVVc2VyUHJvZmlsZU1uZy5yZWdpc3RlclBhZ2VWaWV3RXZlbnQoYSxiKSl7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBkfHxudWxsPT1kKWQ9IiI7aWYobnVsbD09YWN0aXZlVXNlclByb2ZpbGVNbmcuc2Vzc2lvbmlkfHwwPT1hY3RpdmVVc2VyUHJvZmlsZU1uZy5zZXNzaW9uaWQpYWN0aXZlVXNlclByb2ZpbGVNbmcucmVnaXN0ZXJTZXNzaW9uQ2FsbGJhY2soZnVuY3Rpb24oKXthY3RpdmVVc2VyUHJvZmlsZU1uZy5sb2dQYWdlVmlld0V2ZW50KGEsYixkKX0pO2Vsc2V7dmFyIGM9MDtpZigidW5kZWZpbmVkIj09dHlwZW9mIHdpbmRvdy5sYXN0Vmlld0lEKXt2YXIgZT1hY3RpdmVVc2VyUHJvZmlsZU1uZy5jb29raWVNbmcucmVhZENvb2tpZVZhbHVlKCJ1dmlldyIpOwoJCW51bGwhPWUmJihjPWUpfWVsc2UgYz13aW5kb3cubGFzdFBhZ2VWaWV3SUQ7InVuZGVmaW5lZCI9PXR5cGVvZiBjfHxudWxsPT1jfHwwPT1jP2NvbnNvbGUmJmNvbnNvbGUubG9nJiZjb25zb2xlLmxvZygiVW5hYmxlIHRvIGlkZW50aWZ5IGxhc3QgdmlldyBpZCIpOihlPWFjdGl2ZVVzZXJQcm9maWxlTW5nLmdldFN0YXRzVVJJKCksYz17c2lkOmFjdGl2ZVVzZXJQcm9maWxlTW5nLmdldFNlc3Npb25JRCgpLGFjdGlvbjoiZXZlbnQiLHZpZXdpZDpjLGV2ZW50OmEsZWNhdGVnb3J5OmIsYWRkZWRJbmZvOiJ1bmRlZmluZWQiIT10eXBlb2YgZD9kOiIifSxhY3RpdmVVc2VyUHJvZmlsZU1uZy5hamF4TW5nLmFqYXgoe3VybDplKyJzZXJ2aWNlL3Nlc3Npb25NbmcucGhwIix0eXBlOiJQT1NUIixkYXRhOmN9KSl9fX19LGxvZ1BhZ2VWaWV3RXg6ZnVuY3Rpb24oKXt0cnl7aWYoIWFjdGl2ZVVzZXJQcm9maWxlTW5nLl9pc0JvdCgpJiZhY3RpdmVVc2VyUHJvZmlsZU1uZy5yZWdpc3RlclBhZ2VWaWV3KCkpe2lmKCEwPT09CgkJYWN0aXZlVXNlclByb2ZpbGVNbmcuZGlzYWJsZWQpcmV0dXJuITE7dmFyIGE9bnVsbDsidW5kZWZpbmVkIiE9dHlwZW9mIGdldFVybFZhcnMmJihhPWdldFVybFZhcnMoKSk7Z2V0Q3VzdG9tVlJCPWZ1bmN0aW9uKGssdyl7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBjdXN0b21fdmFyaWFibGVzJiZudWxsIT1jdXN0b21fdmFyaWFibGVzKWZvcih2YXIgdSBpbiBjdXN0b21fdmFyaWFibGVzKXtpZih1Lm5hbWU9PWspcmV0dXJuIHUudmFsdWV9ZWxzZSByZXR1cm4gd307Z2V0Q0tWYWx1ZT1mdW5jdGlvbihrLHcpe3ZhciB1PWdldEN1c3RvbVZSQihrLG51bGwpO2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgdSYmbnVsbCE9dSlyZXR1cm4gdTt1PWFjdGl2ZVVzZXJQcm9maWxlTW5nLmNvb2tpZU1uZy5yZWFkQ29va2llVmFsdWUoayk7cmV0dXJuInVuZGVmaW5lZCI9PXR5cGVvZiB1fHxudWxsPT11P251bGw9PWF8fCJ1bmRlZmluZWQiPT10eXBlb2YgYVtrXT8idW5kZWZpbmVkIj09dHlwZW9mIHc\/CgkJIiI6dzphW2tdOnV9O2dldFVSTFZhbHVlPWZ1bmN0aW9uKGssdyl7az1rLnJlcGxhY2UoL1tcW10vLCJcXFsiKS5yZXBsYWNlKC9bXF1dLywiXFxdIik7az0obmV3IFJlZ0V4cCgiW1xcPyZdIitrKyI9KFteJiNdKikiKSkuZXhlYyh3aW5kb3cubG9jYXRpb24uaHJlZik7az1udWxsPT1rP251bGw6a1sxXTtyZXR1cm4idW5kZWZpbmVkIj09dHlwZW9mIGt8fG51bGw9PWt8fDA9PWsudG9TdHJpbmcoKS5sZW5ndGg\/dzprfTt2YXIgYj0iIixkPTAsYz0iRlJFTkNIIixlPWRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJzY3JpcHQiKSxoPWZ1bmN0aW9uKGspe3ZhciB3PXttYWtlOiIiLG1vZGVsOiIiLHllYXI6IiIscHJpY2U6MCxzaXRlaWQ6MCxkZWFsZXJpZDowLGxhbmd1YWdlOiJGUkVOQ0gifTtpZighaylyZXR1cm4gdztrPWsuc3BsaXQoL1s7Jl0vKTtmb3IodmFyIHU9MDt1PGsubGVuZ3RoO3UrKyl7dmFyIEI9a1t1XS5zcGxpdCgiPSIpO2lmKEImJjI9PUIubGVuZ3RoKXt2YXIgRT0KCQl1bmVzY2FwZShCWzBdKTtCPXVuZXNjYXBlKEJbMV0pO0I9Qi5yZXBsYWNlKC9cKy9nLCIgIik7d1tFXT1CfX1yZXR1cm4gd307aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBlJiZudWxsIT1lKWZvcih2YXIgZj0wO2Y8ZS5sZW5ndGg7ZisrKXt2YXIgcT1lW2ZdO2lmKC0xIT1xLnNyYy5pbmRleE9mKCIvdXBsaWdodC5qcz8iKSl7dmFyIHA9cS5zcmMucmVwbGFjZSgvXlteXD9dK1w\/Py8sIiIpLHk9aChwKTt2YXIgbD15Lm1ha2U7dmFyIEM9eS5tb2RlbDtiPXkueWVhcjt2YXIgQT15LnNpdGVpZDt2YXIgej15LmRlYWxlcmlkO2Q9eS5wcmljZTtjPXkubGFuZ3VhZ2U7YnJlYWt9fXZhciBtPWFjdGl2ZVVzZXJQcm9maWxlTW5nLmdldFNlc3Npb25JRCgpO2U9MDtpZigidW5kZWZpbmVkIj09bXx8MD09bSl7bT0wO3ZhciByPWFjdGl2ZVVzZXJQcm9maWxlTW5nLmNvb2tpZU1uZy5yZWFkQ29va2llVmFsdWUoInVzaWRfdG1wIik7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiByfHxudWxsPT1yKXt2YXIgeD0KCQluZXcgRGF0ZTt4LnNldFRpbWUoeC5nZXRUaW1lKCkrNzJFNSk7dmFyIGc9IjsgZXhwaXJlcz0iK3gudG9HTVRTdHJpbmcoKTtkb2N1bWVudC5jb29raWU9InVzaWRfdG1wPTEiK2crIjsgcGF0aD0vIn1lbHNlIGU9ITB9dmFyIG49d2luZG93LmxvY2F0aW9uLmhyZWY7aWYoLTE8bi5pbmRleE9mKCJzdGVwPXJlc3VtZSIpKXt2YXIgdD1hY3RpdmVVc2VyUHJvZmlsZU1uZy5jb29raWVNbmcucmVhZENvb2tpZVZhbHVlKCJzZXNzaWQiKTtuKz0iJnNlc3NpZD0iKygidW5kZWZpbmVkIiE9dHlwZW9mIHR8fG51bGwhPXQ\/dDoiTlVMTCIpfXZhciB2PXtzaWQ6bSx1dWlkOndpbmRvdy5hY3RpdmVQcm9maWxlSUQsc2l0ZWlkOkEsZGVhbGVyaWQ6eix1dG1Tb3VyY2U6Z2V0VVJMVmFsdWUoInV0bV9zb3VyY2UiLCIiKSx1dG1DYW1wYWlnbjpnZXRVUkxWYWx1ZSgidXRtX2NhbXBhaWduIiwib3JnYW5pYyIpLHV0bUtleXdvcmQ6Z2V0Q0tWYWx1ZSgidXRtX2tleXdvcmQiKSx1dG1MYW5kaW5nOmdldENLVmFsdWUoInV0bV9sYW5kaW5nIiksCgkJdXRtU291cmNlUmV0YXJnZXRpbmc6Z2V0Q0tWYWx1ZSgidXRtX3NvdXJjZV9yZXRhcmdldGluZyIpLHV0bUNhbXBhaWduUmV0YXJnZXRpbmc6Z2V0Q0tWYWx1ZSgidXRtX2NhbXBhaWduX3JldGFyZ2V0aW5nIiksbWFrZTpsLG1vZGVsOkMseWVhcjppc05hTihiKT8obmV3IERhdGUpLmdldEZ1bGxZZWFyKCk6YixsYW5ndWFnZTpjLHBhZ2U6InVuZGVmaW5lZCI9PXR5cGVvZiB3aW5kb3cuYWN0aXZlUGFnZT8iIjp3aW5kb3cuYWN0aXZlUGFnZSxwcmljZTpkLHNsb29rdXA6ZSxocmVmOm59LEQ9YWN0aXZlVXNlclByb2ZpbGVNbmcuZ2V0U3RhdHNVUkkoKTt2PUpTT04uc3RyaW5naWZ5KHYpO3Y9di5yZXBsYWNlQWxsKCIvIiwiXFwvIik7dGhpcy5hamF4TW5nLmFqYXgoe3VybDpEKyJzZXJ2aWNlL3Nlc3Npb25NbmcucGhwIixkYXRhOnYsZG9uZTpmdW5jdGlvbihrKXt0cnl7aWYoInN0cmluZyI9PXR5cGVvZiBrJiYoaz1KU09OLnBhcnNlKGspKSwidW5kZWZpbmVkIiE9dHlwZW9mIGsmJgoJCW51bGwhPWsmJihrLmNvbnN0cnVjdG9yPT1bXS5jb25zdHJ1Y3Rvcnx8ay5jb25zdHJ1Y3Rvcj09e30uY29uc3RydWN0b3IpKXttPWsuc2Vzc2lvbmlkO2xhc3RWaWV3SUQ9ay52aWV3aWQ7YWN0aXZlVXNlclByb2ZpbGVNbmcuX2xvYWRQcm9wZXJ0aWVzKGsucHJvcGVydGllcyk7d2luZG93LmFjdGl2ZVNlc3Npb25JRD1tO3dpbmRvdy5sYXN0UGFnZVZpZXdJRD1sYXN0Vmlld0lEO2FjdGl2ZVVzZXJQcm9maWxlTW5nLnNlc3Npb25pZD1tO3ZhciB3PW5ldyBEYXRlO3cuc2V0VGltZSh3LmdldFRpbWUoKSs3MkU1KTt2YXIgdT0iOyBleHBpcmVzPSIrdy50b0dNVFN0cmluZygpO2RvY3VtZW50LmNvb2tpZT0idXNpZD0iK20rdSsiOyBwYXRoPS8iO2RvY3VtZW50LmNvb2tpZT0idXZpZXc9IitsYXN0Vmlld0lEK3UrIjsgcGF0aD0vIjthY3RpdmVVc2VyUHJvZmlsZU1uZy5fZGVsZXRlQ29va2llKCJ1c2lkX3RtcCIpO2FjdGl2ZVVzZXJQcm9maWxlTW5nLl9fbm90aWZ5U2Vzc2lvbklEKCl9fWNhdGNoKEIpe310cnl7bnVsbCE9CgkJc2l0ZVdlYnNvY2tldExpc3RlbmVyLnNpdGVpZCYmc2l0ZVdlYnNvY2tldExpc3RlbmVyLmNvbm5lY3QoKX1jYXRjaChCKXt9fX0pfX1jYXRjaChrKXtjb25zb2xlJiZjb25zb2xlLmxvZyYmY29uc29sZS5sb2coIlVuYWJsZSB0byBzdGF0IHBhZ2UgZHVlIHRvIGVycm9yOiAiK2subWVzc2FnZSl9fSxsb2dQYWdlVmlldzpmdW5jdGlvbigpe3RyeXtpZighYWN0aXZlVXNlclByb2ZpbGVNbmcuX2lzQm90KCkmJmFjdGl2ZVVzZXJQcm9maWxlTW5nLnJlZ2lzdGVyUGFnZVZpZXcoKSl7aWYoITA9PT1hY3RpdmVVc2VyUHJvZmlsZU1uZy5kaXNhYmxlZClyZXR1cm4hMTtpZighMT09PWFjdGl2ZVVzZXJQcm9maWxlTW5nLmpxdWVyeUFjdGl2ZSlyZXR1cm4gdGhpcy5sb2dQYWdlVmlld0V4KCk7dmFyIGE9ZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInNjcmlwdCIpO2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgYSYmbnVsbCE9YSlmb3IodmFyIGI9MDtiPGEubGVuZ3RoO2IrKylpZigtMSE9CgkJYVtiXS5zcmMuaW5kZXhPZigiL3VwbGlnaHQuanM\/IikpcmV0dXJuIHRoaXMubG9nUGFnZVZpZXdFeCgpO3ZhciBkPW51bGw7InVuZGVmaW5lZCIhPXR5cGVvZiBnZXRVcmxWYXJzJiYoZD1nZXRVcmxWYXJzKCkpO2dldEN1c3RvbVZSQj1mdW5jdGlvbihnLG4pe2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgY3VzdG9tX3ZhcmlhYmxlcyYmbnVsbCE9Y3VzdG9tX3ZhcmlhYmxlcylmb3IodmFyIHQgaW4gY3VzdG9tX3ZhcmlhYmxlcyl7aWYodC5uYW1lPT1nKXJldHVybiB0LnZhbHVlfWVsc2UgcmV0dXJuIG59O2dldENLVmFsdWU9ZnVuY3Rpb24oZyxuKXt2YXIgdD1udWxsO3RyeXt2YXIgdj1nZXRDdXN0b21WUkIoZyxudWxsKTsidW5kZWZpbmVkIiE9dHlwZW9mIHYmJm51bGwhPXYmJih0PXYpO2lmKG51bGw9PXQmJih0PWFjdGl2ZVVzZXJQcm9maWxlTW5nLmNvb2tpZU1uZy5yZWFkQ29va2llVmFsdWUoZyksbnVsbD09dCkpe2lmKG51bGw9PWR8fCJ1bmRlZmluZWQiPT10eXBlb2YgZFtnXSlyZXR1cm4idW5kZWZpbmVkIj09Cgl0eXBlb2Ygbj8iIjpuO3Q9ZFtnXX19Y2F0Y2goRCl7Y29uc29sZSYmY29uc29sZS5sb2cmJmNvbnNvbGUubG9nKCJVbmV4cGVjdGVkIGVycm9yIHJldHJpZXZpbmcgY2tWYWx1ZSAtLSAlcyIsRC5tZXNzYWdlKX1yZXR1cm4gdH07Z2V0VVJMVmFsdWU9ZnVuY3Rpb24oZyxuKXtnPWcucmVwbGFjZSgvW1xbXS8sIlxcWyIpLnJlcGxhY2UoL1tcXV0vLCJcXF0iKTtnPShuZXcgUmVnRXhwKCJbXFw\/Jl0iK2crIj0oW14mI10qKSIpKS5leGVjKHdpbmRvdy5sb2NhdGlvbi5ocmVmKTtnPW51bGw9PWc\/bnVsbDpnWzFdO3JldHVybiJ1bmRlZmluZWQiPT10eXBlb2YgZ3x8bnVsbD09Z3x8MD09Zy50b1N0cmluZygpLmxlbmd0aD9uOmd9O2E9ZnVuY3Rpb24oKXtpZighMT09PWFjdGl2ZVVzZXJQcm9maWxlTW5nLmpxdWVyeUFjdGl2ZSlyZXR1cm5bXTt2YXIgZz1bXTt0cnl7dmFyIG49W10sdD1mdW5jdGlvbihrLHcpe3JldHVybiJ1bmRlZmluZWQiIT10eXBlb2YgJCgiIyIraykuYXR0cigiaWQiKSYmCgkoaz0kKCIjIitrKS52YWwoKSwic3RyaW5nIj09dHlwZW9mIGsmJjA8ay5sZW5ndGgmJi0xPT1rLmluZGV4T2YoIiMjIikpP2s6d307bi5wdXNoKCJwb3B1cCIpO24ucHVzaCgicGhvbmUiKTtuLnB1c2goImxhc3R2aWV3ZWQiKTtuLnB1c2goImV4cHJlc3NjYXIiKTtmb3IodmFyIHY9MDt2PG4ubGVuZ3RoO3YrKyl7dmFyIEQ9dChuW3ZdKyJtYWtlIixudWxsKTtpZihudWxsIT1EKXtnLnB1c2goRCk7Zy5wdXNoKHQoblt2XSsibW9kZWwiLG51bGwpKTtnLnB1c2godChuW3ZdKyJ5ZWFyIixudWxsKSk7YnJlYWt9fX1jYXRjaChrKXtnPVtdLGcucHVzaCgiIiksZy5wdXNoKCIiKSxnLnB1c2goIiIpfTA9PWcubGVuZ3RoJiZnLnB1c2goIiIpOzE9PWcubGVuZ3RoJiZnLnB1c2goIiIpOzI9PWcubGVuZ3RoJiZnLnB1c2goIiIpO3JldHVybiBnfTt2YXIgYz1iPSIiLGU9IiI7dHJ5e3ZhciBoPWEoKTtiPTA8aC5sZW5ndGg\/aFswXTpiO2M9MTxoLmxlbmd0aD9oWzFdOmM7ZT0yPGgubGVuZ3RoPwoJCWhbMl06ZX1jYXRjaChnKXtlPWM9Yj0iIn10cnl7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBzZWFyY2hDcml0ZXJpYSYmbnVsbCE9c2VhcmNoQ3JpdGVyaWEpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgYnx8bnVsbD09Ynx8MD09Yi5sZW5ndGgpYj0tMT09c2VhcmNoQ3JpdGVyaWEubWFrZT8iIjpzZWFyY2hDcml0ZXJpYS5tYWtlO2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgY3x8bnVsbD09Y3x8MD09Yy5sZW5ndGgpYz0tMT09c2VhcmNoQ3JpdGVyaWEubW9kZWw\/IiI6c2VhcmNoQ3JpdGVyaWEubW9kZWw7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBlfHxudWxsPT1lfHwwPT1lLmxlbmd0aCllPS0xPT1zZWFyY2hDcml0ZXJpYS55ZWFyPyIiOnNlYXJjaENyaXRlcmlhLnllYXJ9aWYobnVsbD09Ynx8MD09Yi5sZW5ndGgpInVuZGVmaW5lZCIhPXR5cGVvZiBtYWtlJiZudWxsIT1tYWtlJiYwPG1ha2UubGVuZ3RoJiYiMCIhPW1ha2U\/Yj1tYWtlOihiPSQoIiNwb3B1cG1ha2UiKS52YWwoKSwidW5kZWZpbmVkIj09Cgl0eXBlb2YgYiYmKGI9JCgiI2FjdGl2ZU1ha2UiKS52YWwoKSksInVuZGVmaW5lZCI9PXR5cGVvZiBiJiYoYj0kKCIjY2FyTWFrZSIpLnZhbCgpKSwidW5kZWZpbmVkIj09dHlwZW9mIGImJihiPSQoJ2lucHV0W25hbWU9Im1ha2UiXScpLnZhbCgpKSwidW5kZWZpbmVkIj09dHlwZW9mIGImJihiPWdldENLVmFsdWUoIm1ha2UiLCIiKSkpO2lmKG51bGw9PWN8fDA9PWMubGVuZ3RoKSJ1bmRlZmluZWQiIT10eXBlb2YgbW9kZWwmJm51bGwhPW1vZGVsJiYwPG1vZGVsLmxlbmd0aCYmIjAiIT1tb2RlbD9jPW1vZGVsOihjPSQoIiNwb3B1cG1vZGVsIikudmFsKCksInVuZGVmaW5lZCI9PXR5cGVvZiBjJiYoYz0kKCIjYWN0aXZlTW9kZWwiKS52YWwoKSksInVuZGVmaW5lZCI9PXR5cGVvZiBjJiYoYz0kKCIjY2FyTW9kZWwiKS52YWwoKSksInVuZGVmaW5lZCI9PXR5cGVvZiBjJiYoYz0kKCdpbnB1dFtuYW1lPSJtb2RlbCJdJykudmFsKCkpLCJ1bmRlZmluZWQiPT10eXBlb2YgYyYmKGM9Z2V0Q0tWYWx1ZSgibW9kZWwiLAoJCSIiKSkpO2lmKG51bGw9PWV8fDA9PWUubGVuZ3RoKSJ1bmRlZmluZWQiIT10eXBlb2YgeWVhciYmbnVsbCE9eWVhciYmIWlzTmFOKHllYXIpJiYwPHllYXIubGVuZ3RoJiYiMCIhPXllYXI\/ZT15ZWFyOihlPSQoIiNwb3B1cHllYXIiKS52YWwoKSwidW5kZWZpbmVkIj09dHlwZW9mIGUmJihlPSQoIiNhY3RpdmVZZWFyIikudmFsKCkpLCJ1bmRlZmluZWQiPT10eXBlb2YgZSYmKGU9JCgiI2NhclllYXIiKS52YWwoKSksInVuZGVmaW5lZCI9PXR5cGVvZiBlJiYoZT0kKCIjeWVhciIpLnZhbCgpKSwidW5kZWZpbmVkIj09dHlwZW9mIGUmJihlPSQoJ2lucHV0W25hbWU9InltYXhUZXh0Il0nKS52YWwoKSksInVuZGVmaW5lZCI9PXR5cGVvZiBlJiYoZT0kKCdpbnB1dFtuYW1lPSJ5bWluVGV4dCJdJykudmFsKCkpLCJ1bmRlZmluZWQiPT10eXBlb2YgZSYmKGU9Z2V0Q0tWYWx1ZSgieWVhciIsKG5ldyBEYXRlKS5nZXRGdWxsWWVhcigpKSkpfWNhdGNoKGcpe2NvbnNvbGUmJmNvbnNvbGUubG9nJiYKCWNvbnNvbGUubG9nKCJVbmV4cGVjdGVkIGVycm9yIGlkZW50aWZ5aW5nIG1ha2UtbW9kZWwteWVhcjogIitnLm1lc3NhZ2UpLG51bGw9PWImJihiPSIiKSxudWxsPT1jJiYoYz0iIiksbnVsbD09ZSYmKGU9IiIpfXZhciBmPTA7aWYoITEhPT1hY3RpdmVVc2VyUHJvZmlsZU1uZy5qcXVlcnlBY3RpdmUpe2lmKCJVU0VEQ0FSUyI9PXdpbmRvdy5hY3RpdmVQYWdlKXt2YXIgcT0wOyQoImRpdi5ib3gxNzAgZGl2Lm1haW5fcGljYm94IGRpdi5ib3gyX2RldGFpbHNfbWlkIGRpdi5ib3gyX2RldGFpbHNfdGV4dCBzcGFuIikuZWFjaChmdW5jdGlvbigpe3ZhciBnPSQodGhpcykudGV4dCgpOy0xIT1nLmluZGV4T2YoIiQiKSYmKHErKyxmKz1wYXJzZUludChnLnJlcGxhY2UoIiQiLCIiKS5yZXBsYWNlKCIsIiwiIikpKX0pO2Y9MDxxP2YvcTowO2lzTmFOKGYpJiYoZj0wKX0wIT1mJiYhaXNOYU4oZil8fCJ1bmRlZmluZWQiPT10eXBlb2YgJCgiI2N1cnJlbnRDYXJQcmljZSIpLmF0dHIoImlkIil8fAoJKGY9cGFyc2VJbnQoJCgiI2N1cnJlbnRDYXJQcmljZSIpLnZhbCgpLnJlcGxhY2UoIiQiLCIiKS5yZXBsYWNlKCIsIiwiIikpKTswIT1mJiYhaXNOYU4oZil8fCJ1bmRlZmluZWQiPT10eXBlb2YgJCgiI2NhcnByaWNlIikuYXR0cigiaWQiKXx8KGY9cGFyc2VJbnQoJCgiI2NhcnByaWNlIikudmFsKCkucmVwbGFjZSgiJCIsIiIpLnJlcGxhY2UoIiwiLCIiKSkpOzAhPWYmJiFpc05hTihmKXx8InVuZGVmaW5lZCI9PXR5cGVvZiAkKCIjY2FyUHJpY2UiKS5hdHRyKCJpZCIpfHwoZj1wYXJzZUludCgkKCIjY2FyUHJpY2UiKS52YWwoKS5yZXBsYWNlKCIkIiwiIikucmVwbGFjZSgiLCIsIiIpKSk7MCE9ZiYmIWlzTmFOKGYpfHwidW5kZWZpbmVkIj09dHlwZW9mICQoIiNleHByZXNzY2FycHJpY2UiKS5hdHRyKCJpZCIpfHwoZj1wYXJzZUludCgkKCIjZXhwcmVzc2NhcnByaWNlIikudmFsKCkucmVwbGFjZSgiJCIsIiIpLnJlcGxhY2UoIiwiLCIiKSkpOzAhPWYmJiFpc05hTihmKXx8InVuZGVmaW5lZCI9PQoJdHlwZW9mICQoIiNjYXJwcm9vZmNhcnByaWNlIikuYXR0cigiaWQiKXx8KGY9cGFyc2VJbnQoJCgiI2NhcnByb29mY2FycHJpY2UiKS52YWwoKS5yZXBsYWNlKCIkIiwiIikucmVwbGFjZSgiLCIsIiIpKSk7MCE9ZiYmIWlzTmFOKGYpfHwidW5kZWZpbmVkIj09dHlwZW9mICQoIiNzZWFyY2hSZXN1bHRzQXZnUHJpY2UiKS5hdHRyKCJpZCIpfHwoZj1wYXJzZUludCgkKCIjc2VhcmNoUmVzdWx0c0F2Z1ByaWNlIikudmFsKCkucmVwbGFjZSgiJCIsIiIpLnJlcGxhY2UoIiwiLCIiKSkpOzAhPWYmJiFpc05hTihmKXx8InVuZGVmaW5lZCI9PXR5cGVvZiAkKCdpbnB1dFtuYW1lPSJwbWluIl0nKS5hdHRyKCJpZCIpfHwoZj1wYXJzZUludCgkKCdpbnB1dFtuYW1lPSJwbWluIl0nKS52YWwoKS5yZXBsYWNlKCIkIiwiIikucmVwbGFjZSgiLCIsIiIpKSk7MCE9ZiYmIWlzTmFOKGYpfHwidW5kZWZpbmVkIj09dHlwZW9mICQoJ2lucHV0W25hbWU9InBtYXgiXScpLmF0dHIoImlkIil8fChmPXBhcnNlSW50KCQoJ2lucHV0W25hbWU9InBtYXgiXScpLnZhbCgpLnJlcGxhY2UoIiQiLAoJCSIiKS5yZXBsYWNlKCIsIiwiIikpKTswIT1mJiYhaXNOYU4oZil8fCJ1bmRlZmluZWQiPT10eXBlb2YgJCgiI2NhclByaWNlIikuYXR0cigiaWQiKXx8KGY9JCgiI2NhclByaWNlIikuaGFzQ2xhc3MoImJveDJfZGV0YWlsc190ZXh0MjUiKT9wYXJzZUludCgkKCIjY2FyUHJpY2UiKS5jaGlsZHJlbigiOmZpcnN0IikudGV4dCgpLnJlcGxhY2UoIiQiLCIiKS5yZXBsYWNlKCIsIiwiIikpOnBhcnNlSW50KCQoIiNjYXJQcmljZSIpLnRleHQoKS5yZXBsYWNlKCIkIiwiIikucmVwbGFjZSgiLCIsIiIpKSk7aXNOYU4oZikmJihmPTApO3ZhciBwPTAseT0wOyJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93LmFjdGl2ZVNpdGVJRCYmbnVsbCE9d2luZG93LmFjdGl2ZVNpdGVJRCYmMCE9d2luZG93LmFjdGl2ZVNpdGVJRD9wPXdpbmRvdy5hY3RpdmVTaXRlSUQ6KHA9JCgiI3NpdGVJRCIpLnZhbCgpLCJ1bmRlZmluZWQiPT10eXBlb2YgcCYmKHA9JCgiI3RvcHNpdGVpZCIpLnZhbCgpKSwidW5kZWZpbmVkIj09Cgl0eXBlb2YgcCYmKHA9MCkpOyJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93LmFjdGl2ZURlYWxlcklEJiYoeT13aW5kb3cuYWN0aXZlU2l0ZUlEKTt2YXIgbD1hY3RpdmVVc2VyUHJvZmlsZU1uZy5nZXRTZXNzaW9uSUQoKSxDPTA7aWYoInVuZGVmaW5lZCI9PWx8fDA9PWx8fCIwIj09bClpZihsPTAsInVuZGVmaW5lZCI9PXR5cGVvZiAkLmNvb2tpZSgidXNpZF90bXAiKSl7dmFyIEE9bmV3IERhdGU7QS5zZXRUaW1lKEEuZ2V0VGltZSgpKzcyRTUpO3ZhciB6PSI7IGV4cGlyZXM9IitBLnRvR01UU3RyaW5nKCk7ZG9jdW1lbnQuY29va2llPSJ1c2lkX3RtcD0xIit6KyI7IHBhdGg9LyJ9ZWxzZSBDPSEwO3ZhciBtPXdpbmRvdy5sb2NhdGlvbi5ocmVmOy0xPG0uaW5kZXhPZigic3RlcD1yZXN1bWUiKSYmKG0rPSImc2Vzc2lkPSIrKCJ1bmRlZmluZWQiIT10eXBlb2YgJC5jb29raWUoInNlc3NpZCIpPyQuY29va2llKCJzZXNzaWQiKToiTlVMTCIpKX12YXIgcj17c2lkOmwsdXVpZDphY3RpdmVVc2VyUHJvZmlsZU1uZy5nZXRBY3RpdmVQcm9maWxlaWQoKSwKCQlzaXRlaWQ6cCxkZWFsZXJpZDp5LHV0bVNvdXJjZTpnZXRVUkxWYWx1ZSgidXRtX3NvdXJjZSIsIiIpLHV0bUNhbXBhaWduOmdldFVSTFZhbHVlKCJ1dG1fY2FtcGFpZ24iLCJvcmdhbmljIiksdXRtS2V5d29yZDpnZXRDS1ZhbHVlKCJ1dG1fa2V5d29yZCIpLHV0bUxhbmRpbmc6Z2V0Q0tWYWx1ZSgidXRtX2xhbmRpbmciKSx1dG1Tb3VyY2VSZXRhcmdldGluZzpnZXRDS1ZhbHVlKCJ1dG1fc291cmNlX3JldGFyZ2V0aW5nIiksdXRtQ2FtcGFpZ25SZXRhcmdldGluZzpnZXRDS1ZhbHVlKCJ1dG1fY2FtcGFpZ25fcmV0YXJnZXRpbmciKSxtYWtlOmIsbW9kZWw6Yyx5ZWFyOmlzTmFOKGUpPyhuZXcgRGF0ZSkuZ2V0RnVsbFllYXIoKTplLGxhbmd1YWdlOiQoIiNhY3RpdmVzaXRlbGFuZ3VhZ2UiKS52YWwoKSxwYWdlOiJ1bmRlZmluZWQiPT10eXBlb2Ygd2luZG93LmFjdGl2ZVBhZ2U\/IiI6d2luZG93LmFjdGl2ZVBhZ2UscHJpY2U6ZixzbG9va3VwOkMsaHJlZjptfSx4PWFjdGl2ZVVzZXJQcm9maWxlTW5nLmdldFN0YXRzVVJJKCk7CgkJcj1KU09OLnN0cmluZ2lmeShyKTtyPXIucmVwbGFjZUFsbCgiLyIsIlxcLyIpO3RoaXMuYWpheE1uZy5hamF4KHt0eXBlOiJQT1NUIix1cmw6eCsic2VydmljZS9zZXNzaW9uTW5nLnBocCIsY29udGVudFR5cGU6ImFwcGxpY2F0aW9uL2pzb247IGNoYXJzZXQ9dXRmLTgiLGRhdGE6cixkb25lOmZ1bmN0aW9uKGcpeyJzdHJpbmciPT10eXBlb2YgZyYmKGc9SlNPTi5wYXJzZShnKSk7InVuZGVmaW5lZCI9PXR5cGVvZiBnfHxudWxsPT1nfHxnLmNvbnN0cnVjdG9yIT1bXS5jb25zdHJ1Y3RvciYmZy5jb25zdHJ1Y3RvciE9e30uY29uc3RydWN0b3J8fChsPWcuc2Vzc2lvbmlkLGxhc3RWaWV3SUQ9Zy52aWV3aWQsYWN0aXZlVXNlclByb2ZpbGVNbmcuX2xvYWRQcm9wZXJ0aWVzKGcucHJvcGVydGllcyksd2luZG93LmFjdGl2ZVNlc3Npb25JRD1sLHdpbmRvdy5sYXN0UGFnZVZpZXdJRD1sYXN0Vmlld0lELGFjdGl2ZVVzZXJQcm9maWxlTW5nLnNlc3Npb25pZD1sLGFjdGl2ZVVzZXJQcm9maWxlTW5nLmNvb2tpZU1uZy5zZXRDb29raWVWYWx1ZSgidXNpZCIsCgkJCQlsLCIvIiwyKSxhY3RpdmVVc2VyUHJvZmlsZU1uZy5jb29raWVNbmcuc2V0Q29va2llVmFsdWUoInV2aWV3IixsYXN0Vmlld0lELCIvIiwyKSxhY3RpdmVVc2VyUHJvZmlsZU1uZy5jb29raWVNbmcuZGVsZXRlQ29va2llKCJ1c2lkX3RtcCIpLGFjdGl2ZVVzZXJQcm9maWxlTW5nLl9fbm90aWZ5U2Vzc2lvbklEKCkpfSxmYWlsOmZ1bmN0aW9uKGcsbix0KXtjb25zb2xlJiZjb25zb2xlLmxvZyYmY29uc29sZS5sb2coIlVuYWJsZSB0byBsb2cgcGFnZSB2aWV3LiBFcnJvcjogIit0Lm1lc3NhZ2UpfSxhbHdheXM6ZnVuY3Rpb24oKXt9fSl9fWNhdGNoKGcpe2NvbnNvbGUmJmNvbnNvbGUubG9nJiZjb25zb2xlLmxvZygiVW5hYmxlIHRvIHN0YXQgcGFnZSBkdWUgdG8gZXJyb3I6ICIrZy5tZXNzYWdlKX19LF9sb2FkUHJvcGVydGllczpmdW5jdGlvbihhKXt0cnl7InVuZGVmaW5lZCIhPXR5cGVvZiBhJiZudWxsIT1hJiYoYWN0aXZlVXNlclByb2ZpbGVNbmcuX19wcm9wZXJ0aWVzPWEsYWN0aXZlVXNlclByb2ZpbGVNbmcucGFnZVZpZXdDb3VudD0KCQlhLnBhZ2V2aWV3cyl9Y2F0Y2goYil7fX0sZ2V0UHJvcGVydHk6ZnVuY3Rpb24oYSxiKXtyZXR1cm4idW5kZWZpbmVkIj09dHlwZW9mIGFjdGl2ZVVzZXJQcm9maWxlTW5nLl9fcHJvcGVydGllc3x8bnVsbD09YWN0aXZlVXNlclByb2ZpbGVNbmcuX19wcm9wZXJ0aWVzP251bGw6InVuZGVmaW5lZCI9PXR5cGVvZiBhY3RpdmVVc2VyUHJvZmlsZU1uZy5fX3Byb3BlcnRpZXNbYV0\/InVuZGVmaW5lZCIhPXR5cGVvZiBiP2I6IiI6YWN0aXZlVXNlclByb2ZpbGVNbmcuX19wcm9wZXJ0aWVzW2FdfSxhZGRQcm9wZXJ0eTpmdW5jdGlvbihhLGIsZCl7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBhfHxudWxsPT1hfHwwPT1hLmxlbmd0aHx8InVuZGVmaW5lZCI9PXR5cGVvZiBifHxudWxsPT1ifHwidW5kZWZpbmVkIj09dHlwZW9mIHdpbmRvdy5hY3RpdmVQcm9maWxlSUQpcmV0dXJuIG51bGw7InVuZGVmaW5lZCI9PXR5cGVvZiBkJiYoZD0iVVBEQVRFIik7YWN0aXZlVXNlclByb2ZpbGVNbmcuZ2V0U3RhdHNVUkkoKTsKCQl0aGlzLmFqYXhNbmcuYWpheCh7dHlwZToiR0VUIixhY3Rpb246ImFkZHByb3BlcnR5Iix1dWlkOmFjdGl2ZVVzZXJQcm9maWxlTW5nLmdldEFjdGl2ZVByb2ZpbGVpZCgpLHNpZDphY3RpdmVVc2VyUHJvZmlsZU1uZy5nZXRTZXNzaW9uSUQoKSxwbmFtZTphLHB2YWx1ZTpiLHBtb2RlOmR9KTtyZXR1cm4hMH0sdGFnQnJvd3NlcjpmdW5jdGlvbihhLGIpe3RyeXt2YXIgZD1hLGM9dGhpcztpZighMD09PWFjdGl2ZVVzZXJQcm9maWxlTW5nLmRpc2FibGVkKXJldHVybiExO2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgYXx8bnVsbD09YSlkPWZ1bmN0aW9uKGgpe3RyeXt2YXIgZj1uZXcgU3RyaW5nKGgpO2Y9Zi50cmltKCk7aWYoMDxmLmxlbmd0aCl7Yy5sb2dNc2coIlRhZ2dlZCB3aXRoIHV1aWQgPT4gIitmKTt2YXIgcT1jLmdldEFjdGl2ZVByb2ZpbGVpZCgpO2FjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZD1mLnRyaW0oKTtudWxsIT1xJiYidW5kZWZpbmVkIiE9dHlwZW9mIHEubGVuZ3RoJiYKCTA8cS5sZW5ndGgmJmFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZCE9cSYmYy5jb29raWVNbmcuc2V0Q29va2llVmFsdWUoInV1aWRfdjEiLHEsIi8iLDE4MCk7Yy5jb29raWVNbmcuc2V0Q29va2llVmFsdWUoInV1aWQiLGFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZCwiLyIsNUUzKTtjLmNvb2tpZU1uZy5zZXRDb29raWVWYWx1ZSgidXVpZF92bGQzIiwhMCwiLyIsNUUzKTtjLnNldEFjdGl2ZVByb2ZpbGVpZCgpfX1jYXRjaChwKXtjLmxvZ01zZygiVW5leHBlY3RlZCBlcnJvciByZXR1cm5lZCBmcm9tIHRhZ2dpbmc6ICIrcC5tZXNzYWdlKX19O3RoaXMubG9nTXNnKCJHZW5lcmF0aW5nIGZpbmdlcnByaW50Iik7dmFyIGU9dGhpcy5nZXRGUFVSSSgpO2MuYWpheE1uZy5nZXRTY3JpcHQoZSxmdW5jdGlvbigpe3RyeXt2YXIgaD1mdW5jdGlvbihsKXt0cnl7Yy5sb2dNc2coIkZpbmdlcnByaW50ZWQ6ICIrbCk7dmFyIEM9Yy5nZXRBY3RpdmVQcm9maWxlaWQoKSxBPWVuY29kZVVSSSh3aW5kb3cubG9jYXRpb24ub3JpZ2luKTsKCQlpZigidW5kZWZpbmVkIj09dHlwZW9mIGx8fG51bGw9PWwpcmV0dXJuITE7dmFyIHo9ITE7YWN0aXZlVXNlclByb2ZpbGVNbmcuaXNEMkNTaXRlJiYzPT13aW5kb3cuYWN0aXZlU2l0ZUlEJiYoej0hMCk7Yy5jb29raWVNbmcuc2V0Q29va2llVmFsdWUoInV1ZnAiLGwsIi8iLDVFMyk7dmFyIG09e2Q6QSxmcDE6bC5zdWJzdHJpbmcoMCw4KSxmcDI6bC5zdWJzdHJpbmcoOCwxNiksZnAzOmwuc3Vic3RyaW5nKDE2LDI0KSxmcDQ6bC5zdWJzdHJpbmcoMjQsMzIpLHVpZDpDLGFjdGlvbjoidXBncmFkZWZwIixkYm06eix2OmFjdGl2ZVVzZXJQcm9maWxlTW5nLl9fcmVzZXRWfSxyPWFjdGl2ZVVzZXJQcm9maWxlTW5nLmdldFN0YXRzVVJJKCk7Yy5sb2dNc2cocisic2VydmljZS9kMmMudXBncmFkZS52Ni5mcC5qcyIpO2MubG9nTXNnKEpTT04uc3RyaW5naWZ5KG0pKTtjLmFqYXhNbmcuYWpheCh7dXJsOnIrInNlcnZpY2UvZDJjLnVwZ3JhZGUudjYuZnAuanMiLHR5cGU6IkdFVCIsZGF0YTptLAoJCQlkb25lOmZ1bmN0aW9uKHgpe3RyeXtjLmxvZ01zZygiVVVJRCBhZnRlciB1cHJvZmlsZSB1cGRhdGU6ICIreCksInVuZGVmaW5lZCIhPXR5cGVvZiBkJiZudWxsIT1kP2QoeCk6Yy5jb29raWVNbmcuc2V0Q29va2llVmFsdWUoInV1aWQiLHgsIi8iLDVFMyksInVuZGVmaW5lZCIhPXR5cGVvZiBiJiZudWxsIT1iJiZiKCl9Y2F0Y2goZyl7fX19KX1jYXRjaCh4KXtjLmxvZ01zZygiVW5leHBlY3RlZCBlcnJvciBleGVjdXRpbmcgdGFnTWUgc3RlcDogIit4Lm1lc3NhZ2UpfX0sZj0hMTt0cnl7bmF2aWdhdG9yLnVzZXJBZ2VudC5pbmRleE9mKCJXaW4iKSxuYXZpZ2F0b3IudXNlckFnZW50LmluZGV4T2YoIk1hYyIpLG5hdmlnYXRvci51c2VyQWdlbnQuaW5kZXhPZigiTGludXgiKSxuYXZpZ2F0b3IudXNlckFnZW50LmluZGV4T2YoIkFuZHJvaWQiKSwtMSE9bmF2aWdhdG9yLnVzZXJBZ2VudC5pbmRleE9mKCJsaWtlIE1hYyIpJiYoZj0hMCksbG9jYXRpb24ucHJvdG9jb2wuaW5kZXhPZigiaHR0cHMiKX1jYXRjaChsKXt9dmFyIHE9CgkJe3ByZXByb2Nlc3NvcjpudWxsLGF1ZGlvOnt0aW1lb3V0OjFFMyxleGNsdWRlSU9TMTE6Zn0sZm9udHM6e3N3ZkNvbnRhaW5lcklkOiJkY3RrZGl2ZnAyIixzd2ZQYXRoOiJmbGFzaC9jb21waWxlZC9Gb250TGlzdC5zd2YiLHVzZXJEZWZpbmVkRm9udHM6W10sZXh0ZW5kZWRKc0ZvbnRzOiExfSxzY3JlZW46e2RldGVjdFNjcmVlbk9yaWVudGF0aW9uOiEwfSxwbHVnaW5zOntzb3J0UGx1Z2luc0ZvcjpbL3BhbGVtb29uL2ldLGV4Y2x1ZGVJRTohMX0sZXh0cmFDb21wb25lbnRzOltdLE5PVF9BVkFJTEFCTEU6Im5vdCBhdmFpbGFibGUiLEVSUk9SOiJlcnJvciIsRVhDTFVERUQ6ImV4Y2x1ZGVkIn0scD0hMTtudWxsIT13aW5kb3cmJm51bGwhPXdpbmRvdy5sb2NhdGlvbiYmInVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3cubG9jYXRpb24uaHJlZiYmKC0xPHdpbmRvdy5sb2NhdGlvbi5ocmVmLmluZGV4T2YoImQyY2RlYnVnPTEiKXx8LTEhPXdpbmRvdy5sb2NhdGlvbi5ocmVmLmluZGV4T2YoImNybTIuZDJjbWVkaWEuY2EiKSkmJgoJKHA9ITApO3ZhciB5PWZ1bmN0aW9uKGwpe3RyeXt2YXIgQz1mdW5jdGlvbih6KXt6PXoubWFwKGZ1bmN0aW9uKG0pe3ZhciByPSIiO3RyeXtzd2l0Y2gocCYmY29uc29sZS5sb2cobS5rZXkudG9Mb3dlckNhc2UoKSksbS5rZXkudG9Mb3dlckNhc2UoKSl7Y2FzZSAiY2FudmFzIjpjYXNlICJ3ZWJnbCI6Y2FzZSAiYWRibG9jayI6cj0iIjticmVhaztjYXNlICJ1c2VyYWdlbnQiOmlmKDA8bS52YWx1ZS5sZW5ndGgmJi0xIT1tLnZhbHVlLmluZGV4T2YoIiAiKSlmb3IodmFyIHg9bS52YWx1ZS5zcGxpdCgiICIpLGc9MDtnPHgubGVuZ3RoO2crKyl7dmFyIG49eFtnXTtpZigtMSE9bi5pbmRleE9mKCIvIikpe3ZhciB0PW4uc3BsaXQoIi8iKTtyKz10WzBdfWVsc2UtMT09bi5pbmRleE9mKCIuIikmJihyKz1uKX1wJiZjb25zb2xlLmxvZygiVXNlciBBZ2VudCAtLSAiK3IpO2JyZWFrO2RlZmF1bHQ6InVuZGVmaW5lZCIhPXR5cGVvZiBBcnJheS5pc0FycmF5JiZBcnJheS5pc0FycmF5KG0udmFsdWUpfHwKCW0udmFsdWUuY29uc3RydWN0b3I9PT1BcnJheT8obS52YWx1ZS5zb3J0KCkscj1tLnZhbHVlLmpvaW4oKSk6cj1tLnZhbHVlfX1jYXRjaCh2KXtjb25zb2xlJiZjb25zb2xlLmxvZyYmY29uc29sZS5sb2coIkZQIEZhaWxlZCAtLSAlcyAtICVvIix2Lm1lc3NhZ2UsbSl9aWYoInVuZGVmaW5lZCI9PXR5cGVvZiByfHxudWxsPT1yKXI9IiI7cmV0dXJuIHJ9KTt6LnNvcnQoKTtyZXR1cm4gen0obCk7cCYmY29uc29sZS5sb2coInRvIGhhc2g6ICVvIixDKTt2YXIgQT1GaW5nZXJwcmludDIueDY0aGFzaDEyOChDLmpvaW4oIiIpLDMxKTtwJiZjb25zb2xlLmxvZygiRlAgPT4gJXMiLEEpO2goQSk7Yy5sb2dNc2coIkZpbmdlcnByaW50OiAiK0EpfWNhdGNoKHope2NvbnNvbGUmJmNvbnNvbGUubG9nJiZjb25zb2xlLmxvZygiRlAyIEZhaWxlZCAtLSAlcyIsei5tZXNzYWdlKX19O3dpbmRvdy5yZXF1ZXN0SWRsZUNhbGxiYWNrP3JlcXVlc3RJZGxlQ2FsbGJhY2soZnVuY3Rpb24oKXt0cnl7RmluZ2VycHJpbnQyLmdldChxLAoJCXkpfWNhdGNoKGwpe2MubG9nTXNnKCIxLlVuYWJsZSB0byBpbnN0YW50aWF0ZSBGUDIuIEVycm9yOiAiK2wubWVzc2FnZSl9fSk6c2V0VGltZW91dChmdW5jdGlvbigpe3RyeXtGaW5nZXJwcmludDIuZ2V0KHEseSl9Y2F0Y2gobCl7Yy5sb2dNc2coIjIuVW5hYmxlIHRvIGluc3RhbnRpYXRlIEZQMi4gRXJyb3I6ICIrbC5tZXNzYWdlKX19LDUwMCl9Y2F0Y2gobCl7Yy5sb2dNc2coIlVuZXhwZWN0ZWQgZXJyb3IgZXhlY3V0aW5nIGZpcnN0IHN0ZXA6ICIrbC5tZXNzYWdlKX19KX1jYXRjaChoKXtjLmxvZ01zZygiVW5leHBlY3RlZCBlcnJvciBleGVjdXRpbmcgZmlyc3Qgc3RlcDogIitoLm1lc3NhZ2UpfX0sdXBkYXRlRlA6ZnVuY3Rpb24oKXt0cnl7aWYoITA9PT1hY3RpdmVVc2VyUHJvZmlsZU1uZy5kaXNhYmxlZClyZXR1cm4hMTt0aGlzLmxvZ01zZygiU3RhcnRpbmcgU2FmYXJpIFJ1biIpO2lmKCExPT09dGhpcy5yZXNldFNlY29uZFBhc3Mpe3RoaXMucmVzZXRTZWNvbmRQYXNzPQoJCSEwO3RoaXMubG9nTXNnKCJTdGFydGluZyBmaXJzdCBwYXNzIik7dmFyIGE9dGhpcy5jb29raWVNbmcucmVhZENvb2tpZVZhbHVlKCJ1dWlkIiksYj10aGlzLmNvb2tpZU1uZy5yZWFkQ29va2llVmFsdWUoInV1aWRfaW9zXzIiKTt0aGlzLmxvZ01zZygiVVVJRC4gIithKyIgLS0gSU9TUkVTRVQuICIrYik7bnVsbD09YXx8bnVsbD09Yj8odGhpcy5sb2dNc2coIkRyb3BwaW5nIHJlc2V0IGNvb2tpZSIpLHRoaXMuY29va2llTW5nLnNldENvb2tpZVZhbHVlKCJ1dWlkX2lvc18yIiwxLCIvIiw1RTMpLHRoaXMudGFnQnJvd3NlcihudWxsKSk6KHRoaXMubG9nTXNnKCJTZWNvbmQgcGFzcywgbm90aGluZyB0byBkbyIpLHdpbmRvdy5fX19kMmNDVEtNZXRob2QoKSl9ZWxzZSB3aW5kb3cuX19fZDJjQ1RLTWV0aG9kKCl9Y2F0Y2goZCl7dGhpcy5sb2dNc2coIlVuZXhwZWN0ZWQgZXJyb3IgdXBkYXRpbmcgbW9iaWxlIGNvb2tpZTogIitkLm1lc3NhZ2UpfX19Owp3aW5kb3cuX19fZDJjQ1RLTWV0aG9kPWZ1bmN0aW9uKCl7dHJ5e2lmKCFhY3RpdmVVc2VyUHJvZmlsZU1uZy5faXNCb3QoKSYmITAhPT1hY3RpdmVVc2VyUHJvZmlsZU1uZy5kaXNhYmxlZCl7YWN0aXZlVXNlclByb2ZpbGVNbmcuanF1ZXJ5QWN0aXZlPXdpbmRvdy5qUXVlcnk\/ITA6ITE7dmFyIGE9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRvcHNpdGVpZCIpO2lmKG51bGw9PWF8fCJ1bmRlZmluZWQiPT10eXBlb2YgYS52YWx1ZXx8aXNOYU4oYS52YWx1ZSkpYWN0aXZlVXNlclByb2ZpbGVNbmcubG9nTXNnKCJMb2FkaW5nIGZwc3lzdGVtIG9uIG5vbiBkMmMgd2Vic2l0ZSIpLGFjdGl2ZVVzZXJQcm9maWxlTW5nLmlzRDJDU2l0ZT0hMTtlbHNlIHRyeXt3aW5kb3cuYWN0aXZlU2l0ZUlEPXBhcnNlSW50KGEudmFsdWUpfWNhdGNoKHApe3dpbmRvdy5hY3RpdmVTaXRlSUQ9dm9pZCAwfXZhciBiPWFjdGl2ZVVzZXJQcm9maWxlTW5nLmNoZWNrU2NoZWR1bGVkUmVzZXQoKSxkPWFjdGl2ZVVzZXJQcm9maWxlTW5nLmNvb2tpZU1uZy5yZWFkQ29va2llVmFsdWUoInVzaWQiKTsKCWlmKCJ1bmRlZmluZWQiPT10eXBlb2Ygd2luZG93LmFjdGl2ZVNlc3Npb25JRHx8bnVsbD09d2luZG93LmFjdGl2ZVNlc3Npb25JRCl3aW5kb3cuYWN0aXZlU2Vzc2lvbklEPTA7bnVsbD09ZHx8aXNOYU4oZCl8fCh3aW5kb3cuYWN0aXZlU2Vzc2lvbklEPWQpO2FjdGl2ZVVzZXJQcm9maWxlTW5nLmNvb2tpZU1uZy5kZWxldGVDb29raWUoInV1aWRfdmxkIik7dmFyIGM9YWN0aXZlVXNlclByb2ZpbGVNbmcuZ2V0U3RhdHNVUkkoKSxlPWZ1bmN0aW9uKCl7dHJ5eyJ1bmRlZmluZWQiPT10eXBlb2Ygd2luZG93LnN0YXRFeGVjdXRlZCYmKCJ1bmRlZmluZWQiIT10eXBlb2YgYWN0aXZlVXNlclByb2ZpbGVNbmcmJm51bGwhPWFjdGl2ZVVzZXJQcm9maWxlTW5nJiYidW5kZWZpbmVkIiE9dHlwZW9mIGFjdGl2ZVVzZXJQcm9maWxlTW5nLmxvZ1BhZ2VWaWV3PyhhY3RpdmVVc2VyUHJvZmlsZU1uZy5sb2dQYWdlVmlldygpLHdpbmRvdy5zdGF0RXhlY3V0ZWQ9ITApOmFjdGl2ZVVzZXJQcm9maWxlTW5nLmFqYXhNbmcuYWpheCh7dXJsOmMrCgkJCSJzZXJ2aWNlL3Nlc3Npb25NbmcucGhwIix0eXBlOiJHRVQiLGRhdGE6e2FjdGlvbjoidW5rbm93biIsbXNnOiIxLkVpdGhlciBhY3RpdmVVc2VyUHJvZmlsZU1uZyBpcyBub3QgZGVmaW5lZCBvciBsb2dQYWdlVmlldyBpcyBub3QgZGVmaW5lZCJ9fSkpfWNhdGNoKHApe2FjdGl2ZVVzZXJQcm9maWxlTW5nLmxvZ01zZyhwLm1lc3NhZ2UpLGFjdGl2ZVVzZXJQcm9maWxlTW5nLmFqYXhNbmcuYWpheCh7dXJsOmMrInNlcnZpY2Uvc2Vzc2lvbk1uZy5waHAiLHR5cGU6IkdFVCIsZGF0YTp7YWN0aW9uOiJ1bmtub3duIixtc2c6cC5tZXNzYWdlfX0pfX0saD1hY3RpdmVVc2VyUHJvZmlsZU1uZy5jb29raWVNbmcucmVhZENvb2tpZVZhbHVlKCJ1dWlkIiksZj1udWxsPT1ofHwwPT1oLmxlbmd0aD8hMTohMDtoPWFjdGl2ZVVzZXJQcm9maWxlTW5nLmNvb2tpZU1uZy5yZWFkQ29va2llVmFsdWUoInV1aWRfdmxkMyIpO3ZhciBxPW51bGw9PWh8fDA9PWgubGVuZ3RoPyExOiEwO2lmKCFiJiZmJiYKCQlxKXthY3RpdmVVc2VyUHJvZmlsZU1uZy5yZWdpc3RlckNhbGxiYWNrKGUpO2lmKCJ1bmRlZmluZWQiPT10eXBlb2Ygd2luZG93LmFjdGl2ZVByb2ZpbGVJRHx8bnVsbD09d2luZG93LmFjdGl2ZVByb2ZpbGVJRCl3aW5kb3cuYWN0aXZlUHJvZmlsZUlEPWFjdGl2ZVVzZXJQcm9maWxlTW5nLmdldEFjdGl2ZVByb2ZpbGVpZCgpO2FjdGl2ZVVzZXJQcm9maWxlTW5nLl9fbm90aWZ5VVVJRCgpfWVsc2UgYWN0aXZlVXNlclByb2ZpbGVNbmcuc2Vzc2lvbmlkPW51bGwsd2luZG93LmFjdGl2ZVNlc3Npb25JRD1udWxsLGFjdGl2ZVVzZXJQcm9maWxlTW5nLnRhZ0Jyb3dzZXIobnVsbCxmdW5jdGlvbigpe2FjdGl2ZVVzZXJQcm9maWxlTW5nLnJlZ2lzdGVyQ2FsbGJhY2soZSl9KX19Y2F0Y2gocCl7Yz1hY3RpdmVVc2VyUHJvZmlsZU1uZy5nZXRTdGF0c1VSSSgpLGFjdGl2ZVVzZXJQcm9maWxlTW5nLmFqYXhNbmcuX2dldChjKyJzZXJ2aWNlL3Nlc3Npb25NbmcucGhwP2FjdGlvbj11bmtub3duJm1zZz0yLiIrCgllbmNvZGVVUklDb21wb25lbnQocC5tZXNzYWdlKSksY29uc29sZSYmY29uc29sZS5sb2cmJmNvbnNvbGUubG9nKCIxLiBVbmV4cGVjdGVkIGVycm9yIG9jY3VyZWQgbG9hZGluZyB1cHJvZmlsZS5maW5hbC5qcy4gRXJyb3I6ICIrcC5tZXNzYWdlKX19Owp0cnl7bGV0IGE9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI2Rpc2FibGVJbnRlcm5hbFNlc3Npb24iKTtpZihudWxsIT1hJiYiMSI9PWEudmFsdWUpe2FjdGl2ZVVzZXJQcm9maWxlTW5nLmRpc2FibGVkPSEwO2FjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZD1udWxsO2xldCBiPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiN0b3BzaXRlaWQiKTtudWxsIT1iJiYoYj1wYXJzZUludChiLnZhbHVlKSk7aXNOYU4oYil8fDIzNSE9Yj8oYWN0aXZlVXNlclByb2ZpbGVNbmcuY29va2llTW5nLmRlbGV0ZUNvb2tpZSgidXVpZCIpLGFjdGl2ZVVzZXJQcm9maWxlTW5nLmNvb2tpZU1uZy5kZWxldGVDb29raWUoInVpZCIpLGFjdGl2ZVVzZXJQcm9maWxlTW5nLmNvb2tpZU1uZy5kZWxldGVDb29raWUoInV1aWRfcnN0IiksYWN0aXZlVXNlclByb2ZpbGVNbmcuY29va2llTW5nLmRlbGV0ZUNvb2tpZSgidXNpZCIpLGFjdGl2ZVVzZXJQcm9maWxlTW5nLmNvb2tpZU1uZy5kZWxldGVDb29raWUoInV2aWV3IiksCglhY3RpdmVVc2VyUHJvZmlsZU1uZy5jb29raWVNbmcuZGVsZXRlQ29va2llKCJ1c2lkIiksYWN0aXZlVXNlclByb2ZpbGVNbmcuY29va2llTW5nLmRlbGV0ZUNvb2tpZSgidXNpZF90bXAiKSxhY3RpdmVVc2VyUHJvZmlsZU1uZy5jb29raWVNbmcuZGVsZXRlQ29va2llKCJ1dWlkX3YxIiksYWN0aXZlVXNlclByb2ZpbGVNbmcuY29va2llTW5nLmRlbGV0ZUNvb2tpZSgidXVpZF92bGQzIiksYWN0aXZlVXNlclByb2ZpbGVNbmcuY29va2llTW5nLmRlbGV0ZUNvb2tpZSgidXVmcCIpLGFjdGl2ZVVzZXJQcm9maWxlTW5nLmNvb2tpZU1uZy5kZWxldGVDb29raWUoInV1aWRfaW9zXzIiKSk6Y29uc29sZS5sb2coImJ5cGFzc2luZyBjb29raWUgcHVyZ2UiKX1lbHNlImxvYWRpbmciIT1kb2N1bWVudC5yZWFkeVN0YXRlP3dpbmRvdy5fX19kMmNDVEtNZXRob2QoKTpkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyP2RvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIkRPTUNvbnRlbnRMb2FkZWQiLHdpbmRvdy5fX19kMmNDVEtNZXRob2QpOgoJZG9jdW1lbnQuYXR0YWNoRXZlbnQoIm9ucmVhZHlzdGF0ZWNoYW5nZSIsZnVuY3Rpb24oKXsiY29tcGxldGUiPT1kb2N1bWVudC5yZWFkeVN0YXRlJiZ3aW5kb3cuX19fZDJjQ1RLTWV0aG9kKCl9KX1jYXRjaChhKXtjb25zb2xlJiZjb25zb2xlLmxvZyYmY29uc29sZS5sb2coIjUuIFVuZXhwZWN0ZWQgZXJyb3Igb2NjdXJlZCBsb2FkaW5nIHVwcm9maWxlLmZpbmFsLmpzLiBFcnJvcjogIithLm1lc3NhZ2UpfTsKLyoqIC9tL2pzL2tjLmZhYi5qcyAqKi8KdmFyIF9fX2QyY19rY2ZhYmpzX2Nfb249IjIwMjUtMDUtMjMgMTc6MDM6MTgiOyd1c2Ugc3RyaWN0Jzt2YXIgX19fZDJjX2tjZmFianNfY19vbj0iMjAyNC0wMy0yNSAxMjozMDoxOCI7InVzZSBzdHJpY3QiOwooZnVuY3Rpb24oYSl7YS5rY3x8KGEua2M9e30pO2Eua2MuZmFiPWZ1bmN0aW9uKGgsZSxsKXt2YXIgYj10aGlzO2IuJGVsPWEoaCk7Yi5lbD1oO2IuJGVsLmRhdGEoImtjLmZhYiIsYik7dmFyIGYsaztiLmluaXQ9ZnVuY3Rpb24oKXtpZigidW5kZWZpbmVkIj09PXR5cGVvZiBlfHxudWxsPT09ZSllPVt7dXJsOm51bGwsYmdjb2xvcjoicmVkIixpY29uOiIrIn0se3VybDoiaHR0cDovL3d3dy5leGFtcGxlLmNvbSIsYmdjb2xvcjoib3JhbmdlIixpY29uOiIrIn0se3VybDoiaHR0cDovL3d3dy5leGFtcGxlLmNvbSIsYmdjb2xvcjoieWVsbG93IixpY29uOiIrIn1dO2IubGlua3M9ZTtpZigwPGIubGlua3MubGVuZ3RoKXttYWluX2J0bj1iLmxpbmtzWzBdO2NvbG9yX3N0eWxlPW1haW5fYnRuLmNvbG9yPyJjb2xvcjoiK21haW5fYnRuLmNvbG9yKyI7IjoiIjtiZ19jb2xvcl9zdHlsZT1tYWluX2J0bi5iZ2NvbG9yPyJiYWNrZ3JvdW5kLWNvbG9yOiIrbWFpbl9idG4uYmdjb2xvcisiOyI6CiIiO21haW5fYnRuX2RvbT0iPGJ1dHRvbiBkYXRhLWxpbmstaHJlZj0nIisobWFpbl9idG4udXJsP21haW5fYnRuLnVybDoiIikrIicgZGF0YS1saW5rLXRhcmdldD0nIisobWFpbl9idG4udGFyZ2V0P21haW5fYnRuLnRhcmdldDoiIikrIicgY2xhc3M9J2tjX2ZhYl9tYWluX2J0bicgc3R5bGU9JyIrYmdfY29sb3Jfc3R5bGUrIic+PHNwYW4gc3R5bGU9JyIrY29sb3Jfc3R5bGUrIic+IittYWluX2J0bi5pY29uKyI8L3NwYW4+PC9idXR0b24+IjtzdWJfZmFiX2J0bnNfZG9tPSIiO2IubGlua3Muc2hpZnQoKTtmb3IodmFyIGM9MDtjPGIubGlua3MubGVuZ3RoO2MrKyljb2xvcl9zdHlsZT1iLmxpbmtzW2NdLmNvbG9yPyJjb2xvcjoiK2IubGlua3NbY10uY29sb3IrIjsiOiIiLGJnX2NvbG9yX3N0eWxlPWIubGlua3NbY10uYmdjb2xvcj8iYmFja2dyb3VuZC1jb2xvcjoiK2IubGlua3NbY10uYmdjb2xvcisiOyI6IiIsc3ViX2ZhYl9idG5zX2RvbSs9IjxkaXY+PGJ1dHRvbiBkYXRhLWxpbmstdGl0bGU9JyIrCmIubGlua3NbY10udGl0bGUrIicgZGF0YS1saW5rLWhyZWY9JyIrKGIubGlua3NbY10udXJsP2IubGlua3NbY10udXJsOiIiKSsiJyBkYXRhLWxpbmstdGFyZ2V0PSciKyhiLmxpbmtzW2NdLnRhcmdldD9iLmxpbmtzW2NdLnRhcmdldDoiIikrIicgY2xhc3M9J3N1Yl9mYWJfYnRuJyBzdHlsZT0nIitiZ19jb2xvcl9zdHlsZSsiJz48c3BhbiBzdHlsZT0nIitjb2xvcl9zdHlsZSsiJz4iK2IubGlua3NbY10uaWNvbisiPC9zcGFuPjwvYnV0dG9uPjwvZGl2PiI7c3ViX2ZhYl9idG5zX2RvbT0iPGRpdiBjbGFzcz0nc3ViX2ZhYl9idG5zX3dyYXBwZXInPiIrc3ViX2ZhYl9idG5zX2RvbSsiPC9kaXY+IjtiLiRlbC5hcHBlbmQoc3ViX2ZhYl9idG5zX2RvbSkuYXBwZW5kKG1haW5fYnRuX2RvbSl9ZWxzZSJ1bmRlZmluZWQiPT10eXBlb2YgY29uc29sZSYmKHdpbmRvdy5jb25zb2xlPXtsb2c6ZnVuY3Rpb24oZyl7YWxlcnQoZyl9fSksY29uc29sZS5sb2coIkludmFsaWQgbGlua3MgYXJyYXkgcGFyYW0iKTsKYi5vcHRpb25zPWEuZXh0ZW5kKHt9LGEua2MuZmFiLmRlZmF1bHRPcHRpb25zLGwpO2Y9Yi4kZWwuZmluZCgiLmtjX2ZhYl9tYWluX2J0biIpO2s9Yi4kZWwuZmluZCgiLnN1Yl9mYWJfYnRuc193cmFwcGVyIik7Zi5vbigiY2xpY2siLGZ1bmN0aW9uKGcpezA8YSh0aGlzKS5hdHRyKCJkYXRhLWxpbmstaHJlZiIpLmxlbmd0aCYmKGEodGhpcykuYXR0cigiZGF0YS1saW5rLXRhcmdldCIpP3dpbmRvdy5vcGVuKGEodGhpcykuYXR0cigiZGF0YS1saW5rLWhyZWYiKSxhKHRoaXMpLmF0dHIoImRhdGEtbGluay10YXJnZXQiKSk6d2luZG93LmxvY2F0aW9uLmhyZWY9YSh0aGlzKS5hdHRyKCJkYXRhLWxpbmstaHJlZiIpKTtrLnRvZ2dsZUNsYXNzKCJzaG93Iik7MDxhKCIua2NfZmFiX292ZXJsYXkiKS5sZW5ndGg\/KGEoIi5rY19mYWJfb3ZlcmxheSIpLnJlbW92ZSgpLGYudHJpZ2dlcigiYmx1ciIpKTooZi50cmlnZ2VyKCJmb2N1cyIpLGEoImJvZHkiKS5hcHBlbmQoJzxkaXYgY2xhc3M9ImtjX2ZhYl9vdmVybGF5IiA+PC9kaXY+JyksCmEoImJvZHkiKS5vbigidG91Y2hzdGFydCIsZnVuY3Rpb24oKXtmLnRyaWdnZXIoImJsdXIiKX0pKTswIT09YSh0aGlzKS5maW5kKCIuaW5rIikubGVuZ3RoJiZhKHRoaXMpLmZpbmQoIi5pbmsiKS5yZW1vdmUoKTthKHRoaXMpLnByZXBlbmQoIjxzcGFuIGNsYXNzPSdpbmsnPjwvc3Bhbj4iKTtpbms9YSh0aGlzKS5maW5kKCIuaW5rIik7aW5rLmhlaWdodCgpfHxpbmsud2lkdGgoKXx8KGQ9TWF0aC5tYXgoYSh0aGlzKS5vdXRlcldpZHRoKCksYSh0aGlzKS5vdXRlckhlaWdodCgpKSxpbmsuY3NzKHtoZWlnaHQ6ZCx3aWR0aDpkfSkpO3g9Zy5wYWdlWC1hKHRoaXMpLm9mZnNldCgpLmxlZnQtaW5rLndpZHRoKCkvMjt5PWcucGFnZVktYSh0aGlzKS5vZmZzZXQoKS50b3AtaW5rLmhlaWdodCgpLzI7aW5rLmNzcyh7dG9wOnkrInB4IixsZWZ0OngrInB4In0pLmFkZENsYXNzKCJhbmltYXRlIil9KTtrLmZpbmQoIi5zdWJfZmFiX2J0biIpLm9uKCJtb3VzZWRvd24iLGZ1bmN0aW9uKGcpezA8CmEodGhpcykuYXR0cigiZGF0YS1saW5rLWhyZWYiKS5sZW5ndGgmJihhKHRoaXMpLmF0dHIoImRhdGEtbGluay10YXJnZXQiKT93aW5kb3cub3BlbihhKHRoaXMpLmF0dHIoImRhdGEtbGluay1ocmVmIiksYSh0aGlzKS5hdHRyKCJkYXRhLWxpbmstdGFyZ2V0IikpOndpbmRvdy5sb2NhdGlvbi5ocmVmPWEodGhpcykuYXR0cigiZGF0YS1saW5rLWhyZWYiKSl9KTtmLmZvY3Vzb3V0KGZ1bmN0aW9uKCl7ay5yZW1vdmVDbGFzcygic2hvdyIpO292ZXJsYXk9YSgiLmtjX2ZhYl9vdmVybGF5Iik7b3ZlcmxheS5yZW1vdmUoKTthKCJib2R5Iikub2ZmKCJ0b3VjaHN0YXJ0Iil9KX07Yi5pbml0KCl9O2Eua2MuZmFiLmRlZmF1bHRPcHRpb25zPXt9O2EuZm4ua2NfZmFiPWZ1bmN0aW9uKGgsZSl7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe25ldyBhLmtjLmZhYih0aGlzLGgsZSl9KX19KShqUXVlcnkpOwovKiogL20vanMvb3BlbmhvdXJzLmpzICoqLwp2YXIgX19fZDJjX29wZW5ob3Vyc2pzX2Nfb249IjIwMjUtMDUtMjMgMTc6MTE6MDMiOyd1c2Ugc3RyaWN0Jzt2YXIgX19fZDJjX29wZW5ob3Vyc2pzX2Nfb249IjIwMjUtMDMtMTggMTQ6MzA6MDgiOyJ1c2Ugc3RyaWN0IjsKdmFyIE9wZW5Ib3Vycz1mdW5jdGlvbihiKXtmdW5jdGlvbiBjKGQpe3ZhciBlPSQodGhpcykuc2libGluZ3MoIi5leHBhbmRhYmxlX2NvbnRlbnQiKS5lcSgwKS5oYXNDbGFzcygib3Blbl9ob3Vyc19tYXBfYWN0aXZlIik7JChkLmN1cnJlbnRUYXJnZXQpLmZpbmQoIi5tYXBfb3Blbl9ob3Vyc19leHBhbmRfYXJyb3ciKS50b2dnbGVDbGFzcygiZXhwYW5kZWQiKTskKHRoaXMpLnBhcmVudHMoYS5vcHRpb25zLmNvbnRhaW5lcikuZmluZCgiLm9wZW5faG91cnNfbWFwX2FjdGl2ZSIpLnNsaWRlVG9nZ2xlKCJzbG93Iik7JCh0aGlzKS5wYXJlbnRzKGEub3B0aW9ucy5jb250YWluZXIpLmZpbmQoIi5vcGVuX2hvdXJzX21hcF9hY3RpdmUiKS5yZW1vdmVDbGFzcygib3Blbl9ob3Vyc19tYXBfYWN0aXZlIik7ZXx8KCQodGhpcykuc2libGluZ3MoIi5leHBhbmRhYmxlX2NvbnRlbnQiKS5lcSgwKS5zbGlkZVRvZ2dsZSgic2xvdyIpLCQodGhpcykuc2libGluZ3MoIi5leHBhbmRhYmxlX2NvbnRlbnQiKS5lcSgwKS5hZGRDbGFzcygib3Blbl9ob3Vyc19tYXBfYWN0aXZlIikpfQp2YXIgYT10aGlzO2Eub3B0aW9ucz1iO2EuJGNvbnRhaW5lcj0kKGEub3B0aW9ucy5jb250YWluZXIpO2EuaW5pdD1mdW5jdGlvbigpe2EuJGNvbnRhaW5lci5maW5kKCIubWFwX29wZW5faG91cnNfZXhwYW5kIikub24oImNsaWNrIGF1dG9fb3BlbiIsYyk7MDxhLiRjb250YWluZXIuZmluZCgiLm1hcF9vcGVuX2hvdXJzX2V4cGFuZC5kZWZhdWx0X29wZW5lZCIpLmxlbmd0aD9hLiRjb250YWluZXIuZmluZCgiLm1hcF9vcGVuX2hvdXJzX2V4cGFuZC5kZWZhdWx0X29wZW5lZCIpLnRyaWdnZXIoImF1dG9fb3BlbiIpOjIhPSQoIi5leHBhbmRhYmxlX2NvbnRlbnQiKS5sZW5ndGh8fDA8JCgiLmV4cGFuZGFibGVfY29udGVudCIpLmZpbmQoIi52aXNpdENvbnRhY3RIZWFkZXIiKS5sZW5ndGg\/YS5vcHRpb25zLmhhc093blByb3BlcnR5KCJhdXRvT3BlbiIpJiYhYS5vcHRpb25zLmF1dG9PcGVufHxhLiRjb250YWluZXIuZmluZCgiLm1hcF9vcGVuX2hvdXJzX2V4cGFuZCIpLmZpcnN0KCkudHJpZ2dlcigiYXV0b19vcGVuIik6CiQoIi5leHBhbmRhYmxlX2NvbnRlbnQiKS5zbGlkZVRvZ2dsZSgic2xvdyIpLmFkZENsYXNzKCJvcGVuX2hvdXJzX21hcF9hY3RpdmUiKX07cmV0dXJuIGF9OwovKiogL20vanMvZ29vZ2xlbWFwcy5qcyAqKi8KdmFyIF9fX2QyY19nb29nbGVtYXBzanNfY19vbj0iMjAyNi0wMS0xMiAxMDoxNDo1NCI7J3VzZSBzdHJpY3QnO2NsYXNzIEdvb2dsZU1hcHNXcmFwcGVye2NvbnN0cnVjdG9yKGEpe3RoaXMucHJldmlvdXNJbmZvV2luZG93PSExO3RoaXMub3B0aW9ucz17ZWxlbWVudDphJiZhLmVsZW1lbnQ\/YS5lbGVtZW50OiIiLGNlbnRlcjphJiZhLmNlbnRlcj9hLmNlbnRlcjp7bGF0OjQ1LjQ2NzI3Nyxsbmc6LTczLjgzNDUyNn0sY2VudGVyT2Zmc2V0OmEmJmEuY2VudGVyT2Zmc2V0P2EuY2VudGVyT2Zmc2V0Ont4OjAseTowfSx6b29tOmEmJmEuem9vbT9hLnpvb206OSxhZGRyZXNzZXM6YSYmYS5hZGRyZXNzZXM\/YS5hZGRyZXNzZXM6W10sb25CZWZvcmVJbml0OmEmJmEub25CZWZvcmVJbml0P2Eub25CZWZvcmVJbml0OmZ1bmN0aW9uKCl7fSxvbkFmdGVySW5pdDphJiZhLm9uQWZ0ZXJJbml0P2Eub25BZnRlckluaXQ6ZnVuY3Rpb24oKXt9LG9uQWZ0ZXJNYXJrZXJDcmVhdGVkOmEmJmEub25BZnRlck1hcmtlckNyZWF0ZWQ\/YS5vbkFmdGVyTWFya2VyQ3JlYXRlZDpmdW5jdGlvbigpe319fXN0YXRpYyBzZXRHb29nbGVNYXAoKXt2YXIgYT0KMCxlPWZ1bmN0aW9uKCl7Z29vZ2xlLm1hcHMuTWFwLnByb3RvdHlwZS5zZXRDZW50ZXJXaXRoT2Zmc2V0PWZ1bmN0aW9uKGssZyxsKXt2YXIgYz10aGlzLGI9bmV3IGdvb2dsZS5tYXBzLk92ZXJsYXlWaWV3O2Iub25BZGQ9ZnVuY3Rpb24oKXt2YXIgZj10aGlzLmdldFByb2plY3Rpb24oKSxkPWYuZnJvbUxhdExuZ1RvQ29udGFpbmVyUGl4ZWwoayk7ZC54Kz1nO2QueSs9bDtjLnNldENlbnRlcihmLmZyb21Db250YWluZXJQaXhlbFRvTGF0TG5nKGQpKX07Yi5kcmF3PWZ1bmN0aW9uKCl7fTtiLnNldE1hcCh0aGlzKX19O2lmKCJ1bmRlZmluZWQiIT09dHlwZW9mIGdvb2dsZSllKCk7ZWxzZSB2YXIgaD1zZXRJbnRlcnZhbChmdW5jdGlvbigpezQ+YT8idW5kZWZpbmVkIiE9PXR5cGVvZiBnb29nbGU\/KGNsZWFySW50ZXJ2YWwoaCksZSgpKTphKys6Y2xlYXJJbnRlcnZhbChoKX0sMUUzKX1pbml0KCl7dmFyIGE9dGhpcyxlPWEub3B0aW9ucy5jZW50ZXJPZmZzZXQueD9hLm9wdGlvbnMuY2VudGVyT2Zmc2V0Lng6CjAsaD1hLm9wdGlvbnMuY2VudGVyT2Zmc2V0Lnk\/YS5vcHRpb25zLmNlbnRlck9mZnNldC55OjAsaz1uZXcgZ29vZ2xlLm1hcHMuTGF0TG5nQm91bmRzO2Eub3B0aW9ucy5vbkJlZm9yZUluaXQoKTtpZihhLm9wdGlvbnMuYWRkcmVzc2VzLmxlbmd0aCl7dmFyIGc9YS5vcHRpb25zLmNlbnRlcixsPW5ldyBnb29nbGUubWFwcy5HZW9jb2RlcixjPW5ldyBnb29nbGUubWFwcy5NYXAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYS5vcHRpb25zLmVsZW1lbnQpLHt6b29tOmEub3B0aW9ucy56b29tLGNlbnRlcjphLm9wdGlvbnMuY2VudGVyLG1hcFR5cGVJZDpnb29nbGUubWFwcy5NYXBUeXBlSWQuUk9BRE1BUCxnZXN0dXJlSGFuZGxpbmc6ImdyZWVkeSIsc2Nyb2xsd2hlZWw6ITEsbWFwVHlwZUNvbnRyb2w6ITF9KTtnb29nbGUubWFwcy5ldmVudC5hZGRMaXN0ZW5lck9uY2UoYywiaWRsZSIsZnVuY3Rpb24oKXthLm9wdGlvbnMuYWRkcmVzc2VzLm1hcChmdW5jdGlvbihiLGYsZCl7Zj1mdW5jdGlvbihuLApxKXt0cnl7aWYocT09Z29vZ2xlLm1hcHMuR2VvY29kZXJTdGF0dXMuT0spe2suZXh0ZW5kKG5bMF0uZ2VvbWV0cnkubG9jYXRpb24pO2MuZml0Qm91bmRzKGspO2Muc2V0Wm9vbShhLm9wdGlvbnMuem9vbSk7Zz1jLmdldEJvdW5kcygpLmdldENlbnRlcigpO2Muc2V0Q2VudGVyV2l0aE9mZnNldChnLGUsaCk7dmFyIHA9bmV3IGdvb2dsZS5tYXBzLkluZm9XaW5kb3coe2NvbnRlbnQ6Yi5pbmZvd2luZG93fSksbT1uZXcgZ29vZ2xlLm1hcHMuTWFya2VyKHttYXA6Yyxwb3NpdGlvbjpuWzBdLmdlb21ldHJ5LmxvY2F0aW9uLHRpdGxlOmIudGl0bGUsaWNvbjpiLmljb259KTttLmFkZExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oKXthLnByZXZpb3VzSW5mb1dpbmRvdyYmYS5wcmV2aW91c0luZm9XaW5kb3cuY2xvc2UoKTthLnByZXZpb3VzSW5mb1dpbmRvdz1wO3Aub3BlbihjLG0pfSk7YS5vcHRpb25zLm9uQWZ0ZXJNYXJrZXJDcmVhdGVkKGIsbSl9fWNhdGNoKHIpe2NvbnNvbGUubG9nKHIpfX07CmEuaGFzTGF0KGIpJiZhLmhhc0xuZyhiKT8oZD1uZXcgZ29vZ2xlLm1hcHMuTGF0TG5nKE51bWJlcihiLmdlb21ldHJ5LmxvY2F0aW9uLmxhdCksTnVtYmVyKGIuZ2VvbWV0cnkubG9jYXRpb24ubG5nKSksZihbe2dlb21ldHJ5Ontsb2NhdGlvbjpkfX1dLCJPSyIpKTpsLmdlb2NvZGUoe2FkZHJlc3M6Yi5hZGRyZXNzfSxmKX0pfSk7Z29vZ2xlLm1hcHMuZXZlbnQuYWRkRG9tTGlzdGVuZXIod2luZG93LCJyZXNpemUiLGZ1bmN0aW9uKCl7Yy5zZXRDZW50ZXJXaXRoT2Zmc2V0KGcsZSxoKX0pfWEub3B0aW9ucy5vbkFmdGVySW5pdCgpfV9oYXNMYXRMbmdQcm9wKGEsZSl7cmV0dXJuIGEuaGFzT3duUHJvcGVydHkoImdlb21ldHJ5IikmJmEuZ2VvbWV0cnkuaGFzT3duUHJvcGVydHkoImxvY2F0aW9uIikmJmEuZ2VvbWV0cnkubG9jYXRpb24uaGFzT3duUHJvcGVydHkoZSkmJiJmYWxzZSIhPWEuZ2VvbWV0cnkubG9jYXRpb25bZV0\/ITA6ITF9aGFzTGF0KGEpe3JldHVybiB0aGlzLl9oYXNMYXRMbmdQcm9wKGEsCiJsYXQiKX1oYXNMbmcoYSl7cmV0dXJuIHRoaXMuX2hhc0xhdExuZ1Byb3AoYSwibG5nIil9fTsKLyoqIC9tL2pzL2Zvb3RlcldpZGdldF9NLmpzICoqLwp2YXIgX19fZDJjX2Zvb3RlcldpZGdldE1qc19jX29uPSIyMDI2LTAxLTEyIDEwOjEzOjE2IjsndXNlIHN0cmljdCc7dmFyIHRyYWNrRm9vdGVyTWFwTG9hZD1mdW5jdGlvbigpe3ZhciBhPSQoIiN0YXJnZXRQYWdlIikudmFsKCk7InVuZGVmaW5lZCI9PWEmJihhPSJVTktOT1dOIik7Z2FUcmFjaygiYy5fdHJhY2tFdmVudCIsIkZvb3Rlci1NYXAtTG9hZCIsIk1vYmlsZSIsYSwxKX07CmluVmlld0V4ZWMoIiNmb290ZXJHb29nbGVNYXAiLGZ1bmN0aW9uKCl7aWYoJCgiI2Zvb3Rlckdvb2dsZU1hcCIpLmxlbmd0aCl0cnl7R29vZ2xlTWFwc1dyYXBwZXIuc2V0R29vZ2xlTWFwKCk7dmFyIGE9JCgiI2Zvb3Rlckdvb2dsZU1hcFpvb20iKS52YWwoKSxjPTE8cGFyc2VJbnQoYSkmJjE4Pj1wYXJzZUludChhKT9wYXJzZUludChhKTo5O3dpbmRvdy5mb290ZXJHb29nbGVNYXBPYmplY3Q9bmV3IEdvb2dsZU1hcHNXcmFwcGVyKHtlbGVtZW50OiJmb290ZXJHb29nbGVNYXAiLGFkZHJlc3NlczoidW5kZWZpbmVkIiE9dHlwZW9mIGZvb3Rlck1hcEFkZHJlc3Nlcz9mb290ZXJNYXBBZGRyZXNzZXM6W10sem9vbTpjLG9uQmVmb3JlSW5pdDpmdW5jdGlvbigpe3RyYWNrRm9vdGVyTWFwTG9hZCgpfSxvbkFmdGVySW5pdDpmdW5jdGlvbigpeyJ1bmRlZmluZWQiIT10eXBlb2YgZm9vdGVyTWFwQWRkcmVzc2VzJiYwIT1mb290ZXJNYXBBZGRyZXNzZXMubGVuZ3RofHwkKCIjZm9vdGVyR29vZ2xlTWFwIikuaGlkZSgpfX0pOwp3aW5kb3cuZm9vdGVyR29vZ2xlTWFwT2JqZWN0LmluaXQoKX1jYXRjaChiKXtjb25zb2xlLmxvZyhiKX19KTtpblZpZXdFeGVjKCIjZm9vdGVyR29vZ2xlTWFwSWZyYW1lIixmdW5jdGlvbigpe3RyYWNrRm9vdGVyTWFwTG9hZCgpfSk7CiQoZnVuY3Rpb24oKXtmdW5jdGlvbiBhKCl7InVuZGVmaW5lZCIhPT10eXBlb2Ygd2luZG93LmZvb3Rlckdvb2dsZU1hcE9iamVjdD93aW5kb3cuZm9vdGVyR29vZ2xlTWFwT2JqZWN0LmNhbGN1bGF0ZUFuZERpc3BsYXlSb3V0ZSgpOihjb25zb2xlLmxvZygiSUNJIiksc2V0VGltZW91dChhLDUwMCkpfWluVmlld0V4ZWMoIiNtYXBfb3Blbl9ob3VycyIsZnVuY3Rpb24oKXsobmV3IE9wZW5Ib3Vycyh7Y29udGFpbmVyOiIjbWFwX29wZW5faG91cnMiLGF1dG9PcGVuOiEwfSkpLmluaXQoKX0pOyQoImRpdiNwaG9uZU51bWJlckRpdiBsaSBhIikub24oImNsaWNrIixmdW5jdGlvbigpeyJ1bmRlZmluZWQiIT10eXBlb2YgYWN0aXZlVXNlclByb2ZpbGVNbmcmJiJ1bmRlZmluZWQiIT10eXBlb2YgYWN0aXZlVXNlclByb2ZpbGVNbmcubG9nUGFnZVZpZXdFdmVudCYmYWN0aXZlVXNlclByb2ZpbGVNbmcubG9nUGFnZVZpZXdFdmVudCgicGhvbmUuY2FsbCIsJCh0aGlzKS5hdHRyKCJocmVmIikucmVwbGFjZSgidGVsOiIsCiIiKSl9KTskKCIjZGlyZWN0aW9uc0J1dHRvbkhlYWRlciIpLm9uKCJjbGljayIsZnVuY3Rpb24oYyl7Yy5wcmV2ZW50RGVmYXVsdCgpOyQoImh0bWwsIGJvZHkiKS5hbmltYXRlKHtzY3JvbGxUb3A6JCgiI2Zvb3Rlckdvb2dsZU1hcEhvdXJzIikub2Zmc2V0KCkudG9wfSwyRTMpO2EoKX0pfSk7CndpbmRvdy5vbmxvYWQ9ZnVuY3Rpb24oKXsoZnVuY3Rpb24oKXt2YXIgYT17bmV3X2dlb2xvYzohMSx1c2VyQ29vcmQ6ITEscmVzdWx0OiExLHByZXZfZ2VvbG9jOkNvb2tpZXMuZ2V0KCJnZW9sb2NQcm9jZXNzZWQiKT9KU09OLnBhcnNlKENvb2tpZXMuZ2V0KCJnZW9sb2NQcm9jZXNzZWQiKSk6ITEsZGVhbGVyX3Zpc2l0ZWQ6Q29va2llcy5nZXQoImRlYWxlclZpc2l0ZWQiKT9KU09OLnBhcnNlKENvb2tpZXMuZ2V0KCJkZWFsZXJWaXNpdGVkIikpOiExLGRlYWxlckFkZHJlc3M6IiIsZ2V0UHJldkxvY2F0aW9uOmZ1bmN0aW9uKCl7cmV0dXJuIENvb2tpZXMuZ2V0KCJnZW9sb2NQcm9jZXNzZWQiKT9KU09OLnBhcnNlKENvb2tpZXMuZ2V0KCJnZW9sb2NQcm9jZXNzZWQiKSk6ITF9LHByb2Nlc3NVc2VyTG9jYXRpb246ZnVuY3Rpb24oYil7YS5uZXdfZ2VvbG9jPWI7c3dpdGNoKCEwKXtjYXNlIDA9PWEucHJldl9nZW9sb2N8fGEucHJldl9nZW9sb2MuYWNjZXB0ZWQhPWIucmVzdWx0OmEubmV3X2dlb2xvYy5sb2NhdGlvbl9zdHI9CjE9PWIucmVzdWx0P2IuZ2VvY29kZV9hZGRyZXNzX3N0cisiKCIrYi5hY2N1cmFjeSsiKSI6Ikdlb2xvY2F0aW9uIHJlZnVzZWQiO2EubmV3X2dlb2xvYy5kZXNjcmlwdGlvbj0xPT1iLnJlc3VsdD8iQUNDRVBURUQiOiIiO2EudXNlckNvb3JkPXtsYXQ6Yi5sYXRpdHVkZSwibG9uZyI6Yi5sb25naXR1ZGV9O2EuY29tcGFyZVRvRGVhbGVyTG9jYXRpb24oKTticmVhaztjYXNlIDE9PWEucHJldl9nZW9sb2MuYWNjZXB0ZWQmJjE9PWIucmVzdWx0OnZhciBkPXtsYXQ6YS5wcmV2X2dlb2xvYy5sYXRpdHVkZSwibG9uZyI6YS5wcmV2X2dlb2xvYy5sb25naXR1ZGV9O2EudXNlckNvb3JkPXtsYXQ6Yi5sYXRpdHVkZSwibG9uZyI6Yi5sb25naXR1ZGV9OzIwMDxjLmdldERpc3RhbmNlKGQsYS51c2VyQ29vcmQpJiYoYS5uZXdfZ2VvbG9jLmRlc2NyaXB0aW9uPSJVUERBVEVEIixhLm5ld19nZW9sb2MubG9jYXRpb25fc3RyPWIuZ2VvY29kZV9hZGRyZXNzX3N0cisiKCIrYi5hY2N1cmFjeSsiKSIsCmEuY29tcGFyZVRvRGVhbGVyTG9jYXRpb24oKSl9fSxjb21wYXJlVG9EZWFsZXJMb2NhdGlvbjpmdW5jdGlvbihiKXsib2JqZWN0Ij09dHlwZW9mIGImJmIubGF0JiZiLmxvbmc\/MjAxPmMuZ2V0RGlzdGFuY2UoYS51c2VyQ29vcmQsYik\/MD09YS5kZWFsZXJfdmlzaXRlZCYmKGEubmV3X2dlb2xvYy5sb2NhdGlvbl9zdHI9YS5kZWFsZXJBZGRyZXNzKyIoIithLm5ld19nZW9sb2MuYWNjdXJhY3krIikiLGEubmV3X2dlb2xvYy5kZXNjcmlwdGlvbj0iREVBTEVSX0xPQ0FUSU9OIixhLmxvZ1BhZ2VFdmVudChhLm5ld19nZW9sb2MubG9jYXRpb25fc3RyKSxiPW5ldyBEYXRlLGIuc2V0SG91cnMoMjMsNTksNTksMCksQ29va2llcy5zZXQoImRlYWxlclZpc2l0ZWQiLDEsYiwiLyIpKTowPT1hLnByZXZfZ2VvbG9jJiZhLmxvZ1BhZ2VFdmVudChhLm5ld19nZW9sb2MubG9jYXRpb25fc3RyKTphLmdldERlYWxlckNvb3JkKCl9LGdldERlYWxlckNvb3JkOmZ1bmN0aW9uKCl7YS5kZWFsZXJBZGRyZXNzPQokKCdtZXRhW25hbWU9Imdlby5wbGFjZW5hbWUiXScpLnByb3AoImNvbnRlbnQiKTtjLmdldEFkZHJlc3NDb29yZChhLmRlYWxlckFkZHJlc3MsYS5jb21wYXJlVG9EZWFsZXJMb2NhdGlvbil9LGxvZ1BhZ2VFdmVudDpmdW5jdGlvbihiKXtiJiYwPGIubGVuZ3RoJiYxPT1hLm5ld19nZW9sb2MucmVzdWx0JiYidW5kZWZpbmVkIiE9dHlwZW9mIGFjdGl2ZVVzZXJQcm9maWxlTW5nJiYidW5kZWZpbmVkIiE9dHlwZW9mIGFjdGl2ZVVzZXJQcm9maWxlTW5nLmxvZ1BhZ2VWaWV3RXZlbnQmJihiPWEubmV3X2dlb2xvYy5kZXNjcmlwdGlvbisiOiAiK2IsYWN0aXZlVXNlclByb2ZpbGVNbmcubG9nUGFnZVZpZXdFdmVudCgiVFJBQ0tfR0VPTE9DIixiKSk7Z2V0VVVJRD1mdW5jdGlvbigpe3JldHVybiJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93LmFjdGl2ZVByb2ZpbGVJRCYmbnVsbCE9d2luZG93LmFjdGl2ZVByb2ZpbGVJRD93aW5kb3cuYWN0aXZlUHJvZmlsZUlEOiJ1bmRlZmluZWQiIT0KdHlwZW9mIGFjdGl2ZVVzZXJQcm9maWxlTW5nJiZudWxsIT1hY3RpdmVVc2VyUHJvZmlsZU1uZy51aWQ\/YWN0aXZlVXNlclByb2ZpbGVNbmcudWlkOiJ1bmRlZmluZWQiIT10eXBlb2YgQ29va2llcyYmInVuZGVmaW5lZCIhPUNvb2tpZXMuZ2V0KCJ1dWlkIikmJm51bGwhPUNvb2tpZXMuZ2V0KCJ1dWlkIik\/Q29va2llcy5nZXQoInV1aWQiKToiIn07Yj0idW5kZWZpbmVkIiE9dHlwZW9mIENvb2tpZXMmJiJ1bmRlZmluZWQiIT10eXBlb2YgQ29va2llcy5nZXQoInVzaWQiKSYmbnVsbCE9Q29va2llcy5nZXQoInVzaWQiKT9Db29raWVzLmdldCgidXNpZCIpOjA7dmFyIGQ9Z2V0VVVJRCgpLGU9JCgiI3NpdGVJRCIpLnZhbCgpOyQuYWpheCh7dHlwZToiUE9TVCIsdXJsOiJodHRwczovL3Jlc3QuZDJjbWVkaWEuY2EvZ2VvbG9jVHJhY2tpbmcvc2l0ZXZpc2l0b3IiLGRhdGE6e3V1aWQ6ZCxzZXNzaW9uaWQ6YixzaXRlSUQ6ZSxzdGF0dXM6YS5uZXdfZ2VvbG9jLmdlb2xvY19zdGF0dXMsCmRlc2M6YS5uZXdfZ2VvbG9jLmRlc2NyaXB0aW9uLGxhdGl0dWRlOmEubmV3X2dlb2xvYy5sYXRpdHVkZSxsb25naXR1ZGU6YS5uZXdfZ2VvbG9jLmxvbmdpdHVkZSxwb3N0YWxfY29kZTphLm5ld19nZW9sb2MucG9zdGFsX2NvZGUsYWNjdXJhY3k6YS5uZXdfZ2VvbG9jLmFjY3VyYWN5LGFkZHJlc3M6YS5uZXdfZ2VvbG9jLmdlb2NvZGVfYWRkcmVzc19zdHIsbG9jYXRpb25fc3RyOmEubmV3X2dlb2xvYy5sb2NhdGlvbl9zdHIsZ2VvbG9jX2RhdGU6YS5uZXdfZ2VvbG9jLmdlb2xvY19kYXRlfSxzdWNjZXNzOmZ1bmN0aW9uKGYpe30sZmFpbHVyZTpmdW5jdGlvbihmKXt9fSl9fTtpZigidW5kZWZpbmVkIiE9dHlwZW9mICQoIiNhc2tWaXNpdG9yR2VvbG9jIikudmFsKCkmJjE9PSQoIiNhc2tWaXNpdG9yR2VvbG9jIikudmFsKCkmJiJ1bmRlZmluZWQiIT10eXBlb2YgZ2VvTG9jYXRvcil7dmFyIGM9bmV3IGdlb0xvY2F0b3IoYS5wcm9jZXNzVXNlckxvY2F0aW9uKTtjLmZvcmNlR2VvbG9jQXR0ZW1wdD0KITA7Yy5nZXRMb2NhdGlvbigpfX0pKCl9OyQoZnVuY3Rpb24oKXskKCIuY0V4cGVuZExpc3QgQlVUVE9OIikub24oImNsaWNrIixmdW5jdGlvbigpe3ZhciBhPSQodGhpcykuY2xvc2VzdCgiZGl2LmNGb290ZXJDYXJMaW5rcyIpO2EubGVuZ3RoJiYoYS5oYXNDbGFzcygiY0xpc3RFeHBlbmRlZCIpfHxhLmFkZENsYXNzKCJjTGlzdEV4cGVuZGVkIikuZmluZCgiLmNFeHBlbmRMaXN0IikuaGlkZSgpKX0pfSk7Ci8qKiAvbS9qcy90b2FzdHIuanMgKiovCnZhciBfX19kMmNfdG9hc3RyanNfY19vbj0iMjAyNS0wNS0yMyAxNzoxMjowOSI7J3VzZSBzdHJpY3QnO3ZhciBfX19kMmNfdG9hc3RyanNfY19vbj0iMjAyNC0wMy0yNiAxMjozMDoxNSI7InVzZSBzdHJpY3QiOwooZnVuY3Rpb24oeil7eihbImpxdWVyeSJdLGZ1bmN0aW9uKGQpe3JldHVybiBmdW5jdGlvbigpe2Z1bmN0aW9uIG4oYSxjKXthfHwoYT1sKCkpO2Y9ZCgiIyIrYS5jb250YWluZXJJZCk7aWYoZi5sZW5ndGgpcmV0dXJuIGY7YyYmKGY9ZCgiPGRpdi8+IikuYXR0cigiaWQiLGEuY29udGFpbmVySWQpLmFkZENsYXNzKGEucG9zaXRpb25DbGFzcykuYXR0cigiYXJpYS1saXZlIiwicG9saXRlIikuYXR0cigicm9sZSIsImFsZXJ0IikuY3NzKCJjb2xvciIsYS5jb2xvciksZi5hcHBlbmRUbyhkKGEudGFyZ2V0KSkpO3JldHVybiBmfWZ1bmN0aW9uIEEoYSxjLGUpe2U9ZSYmZS5mb3JjZT9lLmZvcmNlOiExO3JldHVybiBhJiYoZXx8MD09PWQoIjpmb2N1cyIsYSkubGVuZ3RoKT8oYVtjLmhpZGVNZXRob2RdKHtkdXJhdGlvbjpjLmhpZGVEdXJhdGlvbixlYXNpbmc6Yy5oaWRlRWFzaW5nLGNvbXBsZXRlOmZ1bmN0aW9uKCl7dShhKX19KSwhMCk6ITF9ZnVuY3Rpb24gRSgpe3JldHVybnt0YXBUb0Rpc21pc3M6ITAsCnRvYXN0Q2xhc3M6InRvYXN0Iixjb250YWluZXJJZDoidG9hc3QtY29udGFpbmVyIixkZWJ1ZzohMSxzaG93TWV0aG9kOiJmYWRlSW4iLHNob3dEdXJhdGlvbjozMDAsc2hvd0Vhc2luZzoic3dpbmciLG9uU2hvd246ZnVuY3Rpb24oKXtkKCIudHJhZGVJbkJhck1vYmlsZUJ1dHRvbiIpLmFkZENsYXNzKCJ3aXRoVG9hc3RlciIpO2QoIi5wcm9tb1RvcEJ0bi5mbG9hdGluZyIpLmFkZENsYXNzKCJ3aXRoVG9hc3RlciIpfSxoaWRlTWV0aG9kOiJmYWRlT3V0IixoaWRlRHVyYXRpb246MUUzLGhpZGVFYXNpbmc6InN3aW5nIixvbkhpZGRlbjpmdW5jdGlvbigpe2QoIi50cmFkZUluQmFyTW9iaWxlQnV0dG9uIikucmVtb3ZlQ2xhc3MoIndpdGhUb2FzdGVyIik7ZCgiLnByb21vVG9wQnRuLmZsb2F0aW5nIikucmVtb3ZlQ2xhc3MoIndpdGhUb2FzdGVyIil9LG9uQ2xvc2U6ZnVuY3Rpb24oKXtkKCIudHJhZGVJbkJhck1vYmlsZUJ1dHRvbiIpLnJlbW92ZUNsYXNzKCJ3aXRoVG9hc3RlciIpOwpkKCIucHJvbW9Ub3BCdG4uZmxvYXRpbmciKS5yZW1vdmVDbGFzcygid2l0aFRvYXN0ZXIiKX0sZXh0ZW5kZWRUaW1lT3V0OjFFMyxpY29uQ2xhc3Nlczp7ZXJyb3I6InRvYXN0LWVycm9yIixpbmZvOiJ0b2FzdC1pbmZvIixzdWNjZXNzOiJ0b2FzdC1zdWNjZXNzIix3YXJuaW5nOiJ0b2FzdC13YXJuaW5nIn0saWNvbkNsYXNzOiJ0b2FzdC1pbmZvIixjb2xvcjoiI0ZGRiIsYmdDb2xvcjoiIixwb3NpdGlvbkNsYXNzOiJ0b2FzdC10b3AtcmlnaHQiLHRpbWVPdXQ6NUUzLHRpdGxlQ2xhc3M6InRvYXN0LXRpdGxlIixtZXNzYWdlQ2xhc3M6InRvYXN0LW1lc3NhZ2UiLHRhcmdldDoiYm9keSIsY2xvc2VIdG1sOic8YnV0dG9uIHR5cGU9ImJ1dHRvbiI+JnRpbWVzOzwvYnV0dG9uPicsbmV3ZXN0T25Ub3A6ITAscHJldmVudER1cGxpY2F0ZXM6ITEscHJvZ3Jlc3NCYXI6ITF9fWZ1bmN0aW9uIHIoYSl7ZnVuY3Rpb24gYyhrKXtpZighZCgiOmZvY3VzIixnKS5sZW5ndGh8fGspcmV0dXJuIGNsZWFyVGltZW91dChoLmludGVydmFsSWQpLApnW2IuaGlkZU1ldGhvZF0oe2R1cmF0aW9uOmIuaGlkZUR1cmF0aW9uLGVhc2luZzpiLmhpZGVFYXNpbmcsY29tcGxldGU6ZnVuY3Rpb24oKXt1KGcpO2lmKGIub25IaWRkZW4mJiJoaWRkZW4iIT09bS5zdGF0ZSliLm9uSGlkZGVuKCk7bS5zdGF0ZT0iaGlkZGVuIjttLmVuZFRpbWU9bmV3IERhdGU7cCYmcChtKX19KX1mdW5jdGlvbiBlKCl7aWYoMDxiLnRpbWVPdXR8fDA8Yi5leHRlbmRlZFRpbWVPdXQpdj1zZXRUaW1lb3V0KGMsYi5leHRlbmRlZFRpbWVPdXQpLGgubWF4SGlkZVRpbWU9cGFyc2VGbG9hdChiLmV4dGVuZGVkVGltZU91dCksaC5oaWRlRXRhPShuZXcgRGF0ZSkuZ2V0VGltZSgpK2gubWF4SGlkZVRpbWV9ZnVuY3Rpb24gRigpe2NsZWFyVGltZW91dCh2KTtoLmhpZGVFdGE9MDtnLnN0b3AoITAsITApW2Iuc2hvd01ldGhvZF0oe2R1cmF0aW9uOmIuc2hvd0R1cmF0aW9uLGVhc2luZzpiLnNob3dFYXNpbmd9KX1mdW5jdGlvbiBHKCl7dmFyIGs9KGguaGlkZUV0YS0obmV3IERhdGUpLmdldFRpbWUoKSkvCmgubWF4SGlkZVRpbWUqMTAwO3cud2lkdGgoaysiJSIpfXZhciBiPWwoKSx4PWEuaWNvbkNsYXNzfHxiLmljb25DbGFzczsidW5kZWZpbmVkIiE9PXR5cGVvZiBhLm9wdGlvbnNPdmVycmlkZSYmKGI9ZC5leHRlbmQoYixhLm9wdGlvbnNPdmVycmlkZSkseD1hLm9wdGlvbnNPdmVycmlkZS5pY29uQ2xhc3N8fHgpO2E6e2lmKGIucHJldmVudER1cGxpY2F0ZXMpaWYoYS5tZXNzYWdlPT09eSl7dmFyIHE9ITA7YnJlYWsgYX1lbHNlIHk9YS5tZXNzYWdlO3E9ITF9aWYoIXEpe0IrKztmPW4oYiwhMCk7dmFyIHY9bnVsbCxnPWQoIjxkaXYvPiIpO3E9ZCgiPGRpdi8+Iik7dmFyIEM9ZCgiPGRpdi8+Iiksdz1kKCI8ZGl2Lz4iKSx0PWQoYi5jbG9zZUh0bWwpLGg9e2ludGVydmFsSWQ6bnVsbCxoaWRlRXRhOm51bGwsbWF4SGlkZVRpbWU6bnVsbH0sbT17dG9hc3RJZDpCLHN0YXRlOiJ2aXNpYmxlIixzdGFydFRpbWU6bmV3IERhdGUsb3B0aW9uczpiLG1hcDphfTs2PGIuYmdDb2xvci5sZW5ndGgmJgpnLmNzcygiYmFja2dyb3VuZC1jb2xvciIsYi5iZ0NvbG9yKTthLmljb25DbGFzcyYmZy5hZGRDbGFzcyhiLnRvYXN0Q2xhc3MpLmFkZENsYXNzKHgpO2EudGl0bGUmJihxLmFwcGVuZChhLnRpdGxlKS5hZGRDbGFzcyhiLnRpdGxlQ2xhc3MpLGcuYXBwZW5kKHEpKTthLm1lc3NhZ2UmJihDLmFwcGVuZChhLm1lc3NhZ2UpLmFkZENsYXNzKGIubWVzc2FnZUNsYXNzKSxnLmFwcGVuZChDKSk7Yi5jbG9zZUJ1dHRvbiYmKHQuYWRkQ2xhc3MoInRvYXN0LWNsb3NlLWJ1dHRvbiIpLmF0dHIoInJvbGUiLCJidXR0b24iKSxnLnByZXBlbmQodCkpO2IucHJvZ3Jlc3NCYXImJih3LmFkZENsYXNzKCJ0b2FzdC1wcm9ncmVzcyIpLGcucHJlcGVuZCh3KSk7Yi5uZXdlc3RPblRvcD9mLnByZXBlbmQoZyk6Zi5hcHBlbmQoZyk7Zy5oaWRlKCk7Z1tiLnNob3dNZXRob2RdKHtkdXJhdGlvbjpiLnNob3dEdXJhdGlvbixlYXNpbmc6Yi5zaG93RWFzaW5nLGNvbXBsZXRlOmIub25TaG93bn0pOzA8Yi50aW1lT3V0JiYKKHY9c2V0VGltZW91dChjLGIudGltZU91dCksaC5tYXhIaWRlVGltZT1wYXJzZUZsb2F0KGIudGltZU91dCksaC5oaWRlRXRhPShuZXcgRGF0ZSkuZ2V0VGltZSgpK2gubWF4SGlkZVRpbWUsYi5wcm9ncmVzc0JhciYmKGguaW50ZXJ2YWxJZD1zZXRJbnRlcnZhbChHLDEwKSkpOyhmdW5jdGlvbigpe2cub24oIm1vdXNlZW50ZXIiLEYpLm9uKCJtb3VzZWxlYXZlIixlKTtpZighYi5vbmNsaWNrJiZiLnRhcFRvRGlzbWlzcylnLm9uKCJjbGljayIsYyk7aWYoYi5jbG9zZUJ1dHRvbiYmdCl0Lm9uKCJjbGljayIsZnVuY3Rpb24oayl7ay5zdG9wUHJvcGFnYXRpb24\/ay5zdG9wUHJvcGFnYXRpb24oKTp2b2lkIDAhPT1rLmNhbmNlbEJ1YmJsZSYmITAhPT1rLmNhbmNlbEJ1YmJsZSYmKGsuY2FuY2VsQnViYmxlPSEwKTtpZigiZnVuY3Rpb24iPT10eXBlb2YgYi5vbkNsb3NlKWIub25DbG9zZSgpO2MoITApfSk7aWYoYi5vbmNsaWNrKWcub24oImNsaWNrIixmdW5jdGlvbigpe2Iub25jbGljaygpOwpjKCl9KX0pKCk7cCYmcChtKTtiLmRlYnVnJiZjb25zb2xlJiZjb25zb2xlLmxvZyhtKTtyZXR1cm4gZ319ZnVuY3Rpb24gbCgpe3JldHVybiBkLmV4dGVuZCh7fSxFKCksRC5vcHRpb25zKX1mdW5jdGlvbiB1KGEpe2Z8fChmPW4oKSk7YS5pcygiOnZpc2libGUiKXx8KGEucmVtb3ZlKCksMD09PWYuY2hpbGRyZW4oKS5sZW5ndGgmJihmLnJlbW92ZSgpLHk9dm9pZCAwKSl9dmFyIGYscCxCPTAsRD17Y2xlYXI6ZnVuY3Rpb24oYSxjKXt2YXIgZT1sKCk7Znx8bihlKTtpZighQShhLGUsYykpZm9yKGE9Zi5jaGlsZHJlbigpLGM9YS5sZW5ndGgtMTswPD1jO2MtLSlBKGQoYVtjXSksZSl9LHJlbW92ZTpmdW5jdGlvbihhKXt2YXIgYz1sKCk7Znx8bihjKTthJiYwPT09ZCgiOmZvY3VzIixhKS5sZW5ndGg\/dShhKTpmLmNoaWxkcmVuKCkubGVuZ3RoJiZmLnJlbW92ZSgpfSxlcnJvcjpmdW5jdGlvbihhLGMsZSl7cmV0dXJuIHIoe3R5cGU6ImVycm9yIixpY29uQ2xhc3M6bCgpLmljb25DbGFzc2VzLmVycm9yLAptZXNzYWdlOmEsb3B0aW9uc092ZXJyaWRlOmUsdGl0bGU6Y30pfSxnZXRDb250YWluZXI6bixpbmZvOmZ1bmN0aW9uKGEsYyxlKXtyZXR1cm4gcih7dHlwZToiaW5mbyIsaWNvbkNsYXNzOmwoKS5pY29uQ2xhc3Nlcy5pbmZvLG1lc3NhZ2U6YSxvcHRpb25zT3ZlcnJpZGU6ZSx0aXRsZTpjfSl9LG9wdGlvbnM6e30sc3Vic2NyaWJlOmZ1bmN0aW9uKGEpe3A9YX0sc3VjY2VzczpmdW5jdGlvbihhLGMsZSl7cmV0dXJuIHIoe3R5cGU6InN1Y2Nlc3MiLGljb25DbGFzczpsKCkuaWNvbkNsYXNzZXMuc3VjY2VzcyxtZXNzYWdlOmEsb3B0aW9uc092ZXJyaWRlOmUsdGl0bGU6Y30pfSx2ZXJzaW9uOiIyLjEuMSIsd2FybmluZzpmdW5jdGlvbihhLGMsZSl7cmV0dXJuIHIoe3R5cGU6Indhcm5pbmciLGljb25DbGFzczpsKCkuaWNvbkNsYXNzZXMud2FybmluZyxtZXNzYWdlOmEsb3B0aW9uc092ZXJyaWRlOmUsdGl0bGU6Y30pfX0seTtyZXR1cm4gRH0oKX0pfSkoImZ1bmN0aW9uIj09PXR5cGVvZiBkZWZpbmUmJgpkZWZpbmUuYW1kP2RlZmluZTpmdW5jdGlvbih6LGQpeyJ1bmRlZmluZWQiIT09dHlwZW9mIG1vZHVsZSYmbW9kdWxlLmV4cG9ydHM\/bW9kdWxlLmV4cG9ydHM9ZChyZXF1aXJlKCJqcXVlcnkiKSk6d2luZG93LnRvYXN0cj1kKHdpbmRvdy5qUXVlcnkpfSk7Ci8qKiAvbS9qcy9kZWFsZXJTbXNOdW1iZXIuanMgKiovCnZhciBfX19kMmNfZGVhbGVyU21zTnVtYmVyanNfY19vbj0iMjAyNi0wMy0xMiAxNjozMDowMyI7J3VzZSBzdHJpY3QnO3dpbmRvdy5kZWFsZXJTbXNOdW1iZXI9d2luZG93LmRlYWxlclNtc051bWJlcnx8bmV3IGZ1bmN0aW9uKCl7dGhpcy5fbmFtZT0iZGVhbGVyU21zTnVtYmVyIjt0aGlzLl9yaWQ9MDt0aGlzLl9vYnM9W107dGhpcy5fYnVpbGRRdWVyeT1mdW5jdGlvbihhLGMpe2M9InN0cmluZyI9PT10eXBlb2YgYz9jOigkKCJib2R5LkVOR0xJU0giKS5sZW5ndGg\/Ii9lbi8iOiIvZnIvIikrImFqYXgvZ2V0RGVhbGVyU21zTnVtYmVyIjt2YXIgYixkPXt3c3dpZHRoOiIwIn0sZz1bIlVVSUQiLCJtZXNzYWdlVHlwZSJdO2MrPSI\/Ijtmb3IoYiBpbiBnKWlmKCJ1bmRlZmluZWQiPT09dHlwZW9mIGFbZ1tiXV18fCIiPT1hW2dbYl1dKXJldHVybiB0aGlzLl9vbkVycm9yKCdtYW5kYXRvcnkgZmllbGQgaXMgbWlzc2luZyAiJytnW2JdKyciJyksITE7Zm9yKGIgaW4gYSlhLmhhc093blByb3BlcnR5KGIpJiYoZFtiXT1hW2JdKTtmb3IoYiBpbiBkKWQuaGFzT3duUHJvcGVydHkoYikmJgooYys9IiYiK2IrIj0iK2VuY29kZVVSSUNvbXBvbmVudChkW2JdKSk7cmV0dXJuIGN9O3RoaXMuX29uRXJyb3I9ZnVuY3Rpb24oYSl7Y29uc29sZS5lcnJvcih0aGlzLl9uYW1lLGEpfTt0aGlzLl9ub3RpZnlPYnNlcnZlcj1mdW5jdGlvbihhLGMpe3RoaXMuX29ic1thXShjKTtkZWxldGUgdGhpcy5fb2JzW2FdfTt0aGlzLl9kb1JlcXVlc3Q9ZnVuY3Rpb24oYSxjKXt2YXIgYj10aGlzLl9vblJlc3BvbnNlLmJpbmQodGhpcyk7JC5hamF4KHtjYjpiLHJpZDpjLHR5cGU6IkdFVCIsY2FjaGU6ITEsYXN5bmM6ITAsZGF0YVR5cGU6Impzb24iLHVybDphfSkuZG9uZShmdW5jdGlvbihkKXt0aGlzLmNiKHRoaXMucmlkLG51bGw9PT1kPyExOmQsITEpfSkuZmFpbChmdW5jdGlvbihkLGcpe3RoaXMuY2IodGhpcy5yaWQsITEsZyl9KX07dGhpcy5fb25SZXNwb25zZT1mdW5jdGlvbihhLGMsYil7aWYoITEhPT1iKXRoaXMuX29uRXJyb3IoInJlc3BvbnNlIGVycm9yOiAiK2IpO2Vsc2UgdHJ5eyExPT09CmM\/dGhpcy5fb25FcnJvcigiLmRhdGEgZXF1YWwgZmFsc2UiKToidW5kZWZpbmVkIiE9PXR5cGVvZiBjLnN1Y2Nlc3MmJiEwIT09Yy5zdWNjZXNzPyh0aGlzLl9vbkVycm9yKCIuZGF0YSBlcnJvcjogIitjLmVycm9yTWVzc2FnZSksYz0hMSk6KGI9ITEsInN0cmluZyIhPT10eXBlb2YgYy5kYXRhLm51bWJlciYmKHRoaXMuX29uRXJyb3IoIi5kYXRhIGludmFsaWQgc21zIG51bWJlciIpLGI9ITApLCJzdHJpbmciIT09dHlwZW9mIGMuZGF0YS5tZXNzYWdlJiYodGhpcy5fb25FcnJvcigiLm1lc3NhZ2UgaW52YWxpZCBzbXMgbWVzc2FnZSIpLGI9ITApLGM9Yj8hMTp7c21zbnVtYmVyOmMuZGF0YS5udW1iZXIsc21zbWVzc2FnZTpjLmRhdGEubWVzc2FnZSxzbXNjb2RlOmMuZGF0YS5zbXNDb2RlfSl9Y2F0Y2goZCl7dGhpcy5fb25FcnJvcigiLmRhdGEgZXhjZXB0aW9uOiIrZCksYz0hMX10aGlzLl9ub3RpZnlPYnNlcnZlcihhLGMpfTt0aGlzLl9hZGRPYnNlcnZlcj1mdW5jdGlvbihhKXtpZigiZnVuY3Rpb24iPT09CnR5cGVvZiBhKXt2YXIgYz10aGlzLl9yaWQrKzt0aGlzLl9vYnNbY109YTtyZXR1cm4gY310aGlzLl9vbkVycm9yKCJpcyBub3QgYSB2YWxpZCBjYWxsYmFjayBmdW5jdGlvbiIpO3JldHVybiExfTt0aGlzLl9hZGRDb21tb25WYWx1ZXNUb0RhdGE9ZnVuY3Rpb24oYSxjLGIpeyJvYmplY3QiIT09dHlwZW9mIGImJihiPXt9KTtiLlVVSUQ9YTtiLnNlc3Npb25JZD1jO2IudGVjaG5vbG9neT0iSFRNTCI7Yi51cmw9d2luZG93LmxvY2F0aW9uLmhyZWY7YT1nZXRDb29raWUoImdjbGlkIik\/Z2V0Q29va2llKCJnY2xpZCIpOiIiO251bGwhPT1hJiYidW5kZWZpbmVkIiE9PWEmJiIiIT09YSYmITEhPT1hJiYoYi5nb29nbGVDbGlja0lkPWEpO2E9Z2V0R2FDbGllbnRJZCgpO251bGwhPT1hJiYidW5kZWZpbmVkIiE9PWEmJiIiIT09YSYmITEhPT1hJiYoYi5nYUNsaWVudElkPWEpO2E9JCgiI3RleHRTZW5kVG9FbWFpbCIpLmxlbmd0aD8kKCIjdGV4dFNlbmRUb0VtYWlsIikudmFsKCk6IiI7IiIhPT0KYSYmKGIuc2VuZFRvRW1haWw9YSk7YT0kKCIjdGV4dFNlbmRUb0VtYWlsQURGIikubGVuZ3RoPyQoIiN0ZXh0U2VuZFRvRW1haWxBREYiKS52YWwoKToiIjsiIiE9PWEmJihiLnNlbmRUb0VtYWlsQWRmPWEpO2E9JCgnaW5wdXRbZGF0YS1mb3J2YXI9Ik9WRVJXUklUVEVSREVBTEVSIl0nKS5sZW5ndGg\/JCgnaW5wdXRbZGF0YS1mb3J2YXI9Ik9WRVJXUklUVEVSREVBTEVSIl0nKS52YWwoKToiIjsiIiE9PWEmJihiLmRlYWxlck5hbWU9YSk7bGV0IGQ9Yi5tYWtlLnRvTG93ZXJDYXNlKCk7aWYoJCgiI211bHRpLWFkZHJlc3Mtc3VibWlzc2lvbiIpLmxlbmd0aCYmIiIhPT1kJiYiY2FyZGV0YWlsLmh0bWwiIT0kKCIjUEFHRUlEIikudmFsKCkpe2E9JCgiI211bHRpLWFkZHJlc3Mtc3VibWlzc2lvbiIpLmZpbmQoInNlbGVjdCIpO2xldCBnPWVtYWlsSGFuZGxlci5nZXREZXAoKTthLmZpbmQoIm9wdGlvbltkYXRhLWJyYW5kc10iKS5lYWNoKGZ1bmN0aW9uKGUsZil7ZT0kKGYpLmRhdGEoImJyYW5kcyIpLnRvTG93ZXJDYXNlKCk7CmlmKCIiIT1lJiZlLnNwbGl0KCIsIikuaW5jbHVkZXMoZCkpe2xldCBoPWU9IiIsaz1mLnRleHQ7c3dpdGNoKGcpe2Nhc2UgIlVTRUQiOmU9JChmKS5kYXRhKCJlbWFpbHVzZWQiKTtoPSQoZikuZGF0YSgiZW1haWxhZGZ1c2VkIik7YnJlYWs7Y2FzZSAiU0VSVklDRSI6ZT0kKGYpLmRhdGEoImVtYWlsc2VydmljZSIpO2g9JChmKS5kYXRhKCJlbWFpbGFkZnNlcnZpY2UiKTticmVhaztjYXNlICJQQVJUUyI6ZT0kKGYpLmRhdGEoImVtYWlscGFydHMiKXx8JChmKS5kYXRhKCJlbWFpbHNlcnZpY2UiKTtoPSQoZikuZGF0YSgiZW1haWxhZGZwYXJ0cyIpfHwkKGYpLmRhdGEoImVtYWlsYWRmc2VydmljZSIpO2JyZWFrO2Nhc2UgIkZJTkFOQ0UiOmU9JChmKS5kYXRhKCJlbWFpbGZpbmFuY2UiKTtoPSQoZikuZGF0YSgiZW1haWxhZGZmaW5hbmNlIik7YnJlYWs7Y2FzZSAiTkVXIjplPSQoZikuZGF0YSgiZW1haWwiKSxoPSQoZikuZGF0YSgiZW1haWxhZGYiKX1pZigiIiE9PWV8fCIiIT09aCliLnNlbmRUb0VtYWlsPQplLGIuc2VuZFRvRW1haWxBZGY9aCxiLmRlYWxlck5hbWU9a319KX1hPSQoIiNDQU1QQUlHTklEIikubGVuZ3RoPyQoIiNDQU1QQUlHTklEIikudmFsKCk6IiI7IiIhPT1hJiYoYi5jYW1wYWlnbklkPWEpO2NvbnNvbGUubG9nKHRoaXMuX25hbWUrIi5kYXRhIixiKTtyZXR1cm4gYn07dGhpcy5faW5pdD1mdW5jdGlvbihhLGMsYixkLGcpe3ZhciBlO2lmKCExPT09KGE9dGhpcy5fYnVpbGRRdWVyeSh0aGlzLl9hZGRDb21tb25WYWx1ZXNUb0RhdGEoYSxjLGIpLGcpKXx8ITE9PT0oZT10aGlzLl9hZGRPYnNlcnZlcihkKSkpcmV0dXJuITE7c2V0VGltZW91dCh0aGlzLl9kb1JlcXVlc3QuYmluZCh0aGlzLGEsZSkpfTt0aGlzLmdldFNtc051bWJlcj1mdW5jdGlvbihhLGMsYil7aWYoIm9iamVjdCI9PT10eXBlb2Ygd2luZG93LmFjdGl2ZVVzZXJQcm9maWxlTW5nKWFjdGl2ZVVzZXJQcm9maWxlTW5nLnJlZ2lzdGVyQ2FsbGJhY2sodGhpcy5faW5pdC5iaW5kKHRoaXMsd2luZG93LmFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZCwKd2luZG93LmFjdGl2ZVVzZXJQcm9maWxlTW5nLmdldFNlc3Npb25JRCgpLGEsYyxiKSk7ZWxzZSByZXR1cm4gdGhpcy5fb25FcnJvcignImFjdGl2ZVVzZXJQcm9maWxlTW5nIiBpcyBub3QgYW4gb2JqZWN0JyksITE7cmV0dXJuITB9fTsKLyoqIC9tL2pzL2dlb0xvY2F0aW9uLmpzICoqLwp2YXIgX19fZDJjX2dlb0xvY2F0aW9uanNfY19vbj0iMjAyNS0wNS0yMyAxNzoxMDoyNCI7J3VzZSBzdHJpY3QnO3ZhciBfX19kMmNfZ2VvTG9jYXRpb25qc19jX29uPSIyMDI1LTAyLTI2IDA5OjMwOjExIjsidXNlIHN0cmljdCI7CnZhciBnZW9Mb2NhdG9yPWZ1bmN0aW9uKGYpe3ZhciBhPXRoaXM7YS5tYXBzQVBJS2V5PW51bGw7YS51c2VIVE1MNT0hMDthLmdlb2NvZGVMb2NhdGlvbj0hMDthLmF0dGVtcHRQYWdlTnVtPTA7YS50cmFja0xvY2F0aW9uR0E9ITE7YS5mb3JjZUdlb2xvY0F0dGVtcHQ9ITE7YS5zaG93UG9pbnRlck1lc3NhZ2U9ITA7YS50aW1lb3V0cz1bXTthLmJyb3dzZXI9IiI7YS5pc01vYmlsZT0iMSI9PSQoIiNpc21vYmlsZSIpLnZhbCgpO2EuZ2VvbG9jU3RhdHVzZXM9e09LOiJTVUNDRVNTIixSRUZVU0VEOiJSRUZVU0VEIixDT09LSUVfQUNDRVBURUQ6IlBSRV9BQ0NFUFRFRCIsQ09PS0lFX1JFRlVTRUQ6IlBSRV9SRUZVU0VEIixDQU5DRUxFRDoiQ0FOQ0VMRUQiLEZBSUw6IkZBSUxFRCJ9O2EuZ2VvbG9jRXJyb3JzPXtJTlZBTElEX1JFU1BPTlNFOiJJTlZBTElEX1JFU1BPTlNFIixDT05ORUNUSU9OX0ZBSUxFRDoiQ09OTkVDVElPTl9GQUlMRUQiLEdFT0xPQ19GQUlMRUQ6IkdFT0xPQ19GQUlMRUQiLApHRU9MT0NfUkVGVVNFRDoiR0VPTE9DX1JFRlVTRUQiLEdFT0NPREVfRkFJTEVEOiJHRU9DT0RFX0ZBSUxFRCJ9O2EuZ2VvbG9jUmVzdWx0PXtyZXN1bHQ6MCxnZW9sb2NfZGF0ZToiIixnZW9sb2Nfc3RhdHVzOmEuZ2VvbG9jU3RhdHVzZXMuRkFJTCxnZW9jb2RlX3N0YXR1czowLGxhdGl0dWRlOjAsbG9uZ2l0dWRlOjAsYWNjdXJhY3k6MCxwb3N0YWxfY29kZToiIixnZW9jb2RlX2FkZHJlc3M6IiIsZ2VvY29kZV9hZGRyZXNzX3N0cjoiIn07YS5nZW9sb2NDYWxsYmFjaz1mdW5jdGlvbigpe2YoYS5nZW9sb2NSZXN1bHQpO2Y9ZnVuY3Rpb24oKXtjb25zb2xlLmxvZygiR2VvIGNhbGxiYWNrIGFscmVhZHkgZmlyZWQuIil9fTthLl9pbml0PWZ1bmN0aW9uKCl7YS5pc01vYmlsZSYmKGEuc2hvd1BvaW50ZXJNZXNzYWdlPSExKTtpZigwPGEuYXR0ZW1wdFBhZ2VOdW0pe3ZhciBiPW51bGwhPUNvb2tpZXMuZ2V0KCJnZW9sb2NQYWdlVmlld3MiKT9wYXJzZUludChDb29raWVzLmdldCgiZ2VvbG9jUGFnZVZpZXdzIikpKwoxOjE7Q29va2llcy5zZXQoImdlb2xvY1BhZ2VWaWV3cyIsYjxhLmF0dGVtcHRQYWdlTnVtP2I6MCxudWxsLCIvIik7aWYoYjxhLmF0dGVtcHRQYWdlTnVtKXJldHVybiBhLmdlb2xvY1Jlc3VsdC5yZXN1bHQ9MCxhLmdlb2xvY1Jlc3VsdC5zdGF0dXM9YS5nZW9sb2NTdGF0dXNlcy5DQU5DRUxFRCxhLmdlb2xvY0NhbGxiYWNrKCksITF9aWYoIWEuZm9yY2VHZW9sb2NBdHRlbXB0JiZDb29raWVzLmdldCgiZ2VvbG9jUHJvY2Vzc2VkIikpcmV0dXJuIGI9SlNPTi5wYXJzZShDb29raWVzLmdldCgiZ2VvbG9jUHJvY2Vzc2VkIikpLCIxIj09Yi5hY2NlcHRlZD8oYS5nZW9sb2NSZXN1bHQucmVzdWx0PTEsYS5nZW9sb2NSZXN1bHQuZ2VvbG9jX2RhdGU9Yi5nZW9sb2NfZGF0ZSxhLmdlb2xvY1Jlc3VsdC5nZW9sb2Nfc3RhdHVzPWEuZ2VvbG9jU3RhdHVzZXMuQ09PS0lFX0FDQ0VQVEVELGEuZ2VvbG9jUmVzdWx0LmxhdGl0dWRlPWIubGF0aXRpdWRlLGEuZ2VvbG9jUmVzdWx0LmxvbmdpdHVkZT0KYi5sb25naXR1ZGUsYS5nZW9sb2NSZXN1bHQuZ2VvY29kZV9hZGRyZXNzPWIuYWRkcmVzcyxhLmdlb2xvY1Jlc3VsdC5nZW9jb2RlX2FkZHJlc3Nfc3RyPWIuYWRkcmVzc19zdHIpOihhLmdlb2xvY1Jlc3VsdC5yZXN1bHQ9MCxhLmdlb2xvY1Jlc3VsdC5zdGF0dXM9YS5nZW9sb2NTdGF0dXNlcy5DT09LSUVfUkVGVVNFRCksYS5nZW9sb2NDYWxsYmFjaygpLCExO2lmKCJodHRwczoiIT1sb2NhdGlvbi5wcm90b2NvbClyZXR1cm4gYS5nZW9sb2NSZXN1bHQucmVzdWx0PTAsYS5nZW9sb2NSZXN1bHQuc3RhdHVzPWEuZ2VvbG9jU3RhdHVzZXMuQ0FOQ0VMRUQsYS5nZW9sb2NDYWxsYmFjaygpLCExO2lmKGx0X0lFOXx8IW5hdmlnYXRvci5nZW9sb2NhdGlvbilhLnVzZUhUTUw1PSExO25hdmlnYXRvci5icm93c2VyPWZ1bmN0aW9uKCl7dmFyIGM9bmF2aWdhdG9yLnVzZXJBZ2VudCxkPWMubWF0Y2goLyhvcGVyYXxjaHJvbWV8c2FmYXJpfGZpcmVmb3h8bXNpZXx0cmlkZW50KD89XC8pKVwvP1xzKihcZCspL2kpfHwKW107aWYoL3RyaWRlbnQvaS50ZXN0KGRbMV0pKXt2YXIgZT0vXGJydlsgOl0rKFxkKykvZy5leGVjKGMpfHxbXTtyZXR1cm4iSUV4cGxvcmVyICIrKGVbMV18fCIiKX1pZigiQ2hyb21lIj09PWRbMV0mJihlPWMubWF0Y2goL1xiT1BSXC8oXGQrKS8pLG51bGwhPWUpKXJldHVybiJPcGVyYSAiK2VbMV07ZD1kWzJdP1tkWzFdLGRbMl1dOltuYXZpZ2F0b3IuYXBwTmFtZSxuYXZpZ2F0b3IuYXBwVmVyc2lvbiwiLT8iXTtudWxsIT0oZT1jLm1hdGNoKC92ZXJzaW9uXC8oXGQrKS9pKSkmJmQuc3BsaWNlKDEsMSxlWzFdKTtyZXR1cm4gZC5qb2luKCIgIil9KCk7YS5icm93c2VyPW5hdmlnYXRvci5icm93c2VyO3JldHVybiEwfTthLmhhbmRsZUxvY2F0aW9uU3VjY2Vzcz1mdW5jdGlvbigpe3ZhciBiPSJMYXRpdHVkZTogIithLmdlb2xvY1Jlc3VsdC5sYXRpdHVkZSsiOyBMb25naXR1ZGU6ICIrYS5nZW9sb2NSZXN1bHQubG9uZ2l0dWRlOzM8PWEuZ2VvbG9jUmVzdWx0LnBvc3RhbF9jb2RlLmxlbmd0aCYmCihiPWEuZ2VvbG9jUmVzdWx0LnBvc3RhbF9jb2RlKTthLnRyYWNrTG9jYXRpb24oIkdlb2xvY2F0aW9uIiwiQWNjZXB0ZWQiLGIpO2EuZ2VvbG9jUmVzdWx0Lmdlb2xvY19kYXRlPShuZXcgRGF0ZSkuZ2V0VGltZSgpO2I9bmV3IERhdGU7Yi5zZXRIb3VycygyMyw1OSw1OSwwKTtDb29raWVzLnNldCgiZ2VvbG9jUHJvY2Vzc2VkIixKU09OLnN0cmluZ2lmeSh7YWNjZXB0ZWQ6MSxnZW9sb2NfZGF0ZTphLmdlb2xvY1Jlc3VsdC5nZW9sb2NfZGF0ZSxsYXRpdHVkZTphLmdlb2xvY1Jlc3VsdC5sYXRpdHVkZSxsb25naXR1ZGU6YS5nZW9sb2NSZXN1bHQubG9uZ2l0dWRlLHBvc3RhbF9jb2RlOmEuZ2VvbG9jUmVzdWx0LnBvc3RhbF9jb2RlLGFjY3VyYWN5OmEuZ2VvbG9jUmVzdWx0LmFjY3VyYWN5LGFkZHJlc3M6YS5nZW9sb2NSZXN1bHQuZ2VvY29kZV9hZGRyZXNzLGFkZHJlc3Nfc3RyOmEuZ2VvbG9jUmVzdWx0Lmdlb2NvZGVfYWRkcmVzc19zdHJ9KSxiLCIvIik7YS5nZW9sb2NDYWxsYmFjaygpfTsKYS5oYW5kbGVMb2NhdGlvbkVycm9yPWZ1bmN0aW9uKGIsYyl7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBjfHxudWxsPT1jKWM9IiI7YS5nZW9sb2NSZXN1bHQucmVzdWx0PTA7YS5nZW9sb2NSZXN1bHQuZ2VvbG9jX2RhdGU9KG5ldyBEYXRlKS5nZXRUaW1lKCk7YS5nZW9sb2NSZXN1bHQuZ2VvbG9jX3N0YXR1cz1hLmdlb2xvY1N0YXR1c2VzLkZBSUw7c3dpdGNoKGIpe2Nhc2UgYS5nZW9sb2NFcnJvcnMuSU5WQUxJRF9SRVNQT05TRTpjPSJHZW9sb2MgZXJyb3IgbWVzYWdlOiBJbnZhbGlkIHJlc3BvbnNlIGRhdGEiO2JyZWFrO2Nhc2UgYS5nZW9sb2NFcnJvcnMuQ09OTkVDVElPTl9GQUlMRUQ6Yz0iR2VvbG9jIGVycm9yIG1lc2FnZTogQ29uZWN0aW9uIGZhaWxlZCI7YnJlYWs7Y2FzZSBhLmdlb2xvY0Vycm9ycy5HRU9MT0NfUkVGVVNFRDphLmdlb2xvY1Jlc3VsdC5nZW9sb2Nfc3RhdHVzPWEuZ2VvbG9jU3RhdHVzZXMuUkVGVVNFRDticmVhaztjYXNlIGEuZ2VvbG9jRXJyb3JzLkdFT0xPQ19GQUlMRUQ6YnJlYWs7CmNhc2UgYS5nZW9sb2NFcnJvcnMuR0VPQ09ERV9GQUlMRUQ6Yz0iR2VvbG9jIGVycm9yIG1lc2FnZTogSW52YWxpZCByZXNwb25zZSBkYXRhIjticmVhaztkZWZhdWx0OmM9IlVua25vd24gZXJyb3Igb2N1cnJlZCJ9YS50cmFja0xvY2F0aW9uKCJHZW9sb2NhdGlvbiIsIkZhaWxlZCIsYyk7YS5nZW9sb2NDYWxsYmFjaygpfTthLmdldExvY2F0aW9uPWZ1bmN0aW9uKCl7YS5faW5pdCgpJiYoMD09YS51c2VIVE1MNT9hLmdldEdvb2dsZVNlcnZpY2VMb2NhdGlvbigpOmEuZ2V0SFRNTDVMb2NhdGlvbigpKX07YS5nZXRHb29nbGVTZXJ2aWNlTG9jYXRpb249ZnVuY3Rpb24oKXthLmhhbmRsZUxvY2F0aW9uU3VjY2VzcygpO3JldHVybiExfTthLmdldEhUTUw1TG9jYXRpb249ZnVuY3Rpb24oKXthLnNob3dHZW9sb2NNc2coKTtuYXZpZ2F0b3IuZ2VvbG9jYXRpb24uZ2V0Q3VycmVudFBvc2l0aW9uKGZ1bmN0aW9uKGIpe2EuaGlkZUdlb2xvY01zZygpO2EuY2xlYXJTZXRUaW1lb3V0cygpOwphLmdlb2xvY1Jlc3VsdC5yZXN1bHQ9MTthLmdlb2xvY1Jlc3VsdC5nZW9sb2Nfc3RhdHVzPWEuZ2VvbG9jU3RhdHVzZXMuT0s7YS5nZW9sb2NSZXN1bHQubGF0aXR1ZGU9Yi5jb29yZHMubGF0aXR1ZGU7YS5nZW9sb2NSZXN1bHQubG9uZ2l0dWRlPWIuY29vcmRzLmxvbmdpdHVkZTthLmdlb2xvY1Jlc3VsdC5hY2N1cmFjeT1iLmNvb3Jkcy5hY2N1cmFjeTtpZigxIT1hLmdlb2NvZGVMb2NhdGlvbilyZXR1cm4gYS5oYW5kbGVMb2NhdGlvblN1Y2Nlc3MoKSwhMTthLmxhdExvbmdHZW9jb2RlKGIuY29vcmRzLmxhdGl0dWRlLGIuY29vcmRzLmxvbmdpdHVkZSl9LGZ1bmN0aW9uKGIpe2NvbnNvbGUubG9nKGIpO3ZhciBjPSJHZW9sb2MgZXJyb3IgY29kZTogIitiLmNvZGUrIiwgZ2VvbG9jIGVycm9yIG1lc2FnZTogIitiLm1lc3NhZ2U7YS5oaWRlR2VvbG9jTXNnKCk7YS5jbGVhclNldFRpbWVvdXRzKCk7Q29va2llcy5zZXQoImdlb2xvY1Byb2Nlc3NlZCIsSlNPTi5zdHJpbmdpZnkoe2FjY2VwdGVkOjB9KSwKMSwiLyIpO3ZhciBkPWEuZ2VvbG9jRXJyb3JzLkdFT0xPQ19SRUZVU0VEOzEhPXBhcnNlSW50KGIuY29kZSkmJihkPWEuZ2VvbG9jRXJyb3JzLkdFT0xPQ19GQUlMRUQpO2EuaGFuZGxlTG9jYXRpb25FcnJvcihkLGMpfSx7dGltZW91dDoyNUUzfSl9O2EubGF0TG9uZ0dlb2NvZGU9ZnVuY3Rpb24oYixjKXthLmdlb2xvY1Jlc3VsdC5nZW9jb2RlX2FkZHJlc3M9YisifCIrYzthLmdlb2xvY1Jlc3VsdC5nZW9jb2RlX2FkZHJlc3Nfc3RyPSJMYXRpdHVkZTogIitiKyI7IExvbmdpdHVkZTogIitjO2EuaGFuZGxlTG9jYXRpb25TdWNjZXNzKCl9O2EudHJhY2tQb3N0YWw9ZnVuY3Rpb24oKXtpZigkY29va2llPUNvb2tpZXMuZ2V0KCJIVE1MNUdlbyIpKWlmKCRjb29raWU9SlNPTi5wYXJzZSgkY29va2llKSwkY29va2llLnBvc3RhbF9jb2RlKXJldHVybjtpZigidW5kZWZpbmVkIiE9PXR5cGVvZiBhLmdlb2xvY1Jlc3VsdC5wb3N0YWxfY29kZSYmIiIhPT1hLmdlb2xvY1Jlc3VsdC5wb3N0YWxfY29kZSl7dmFyIGI9CmEuZ2VvbG9jUmVzdWx0LnBvc3RhbF9jb2RlKyJ8IithLmdlb2xvY1Jlc3VsdC5hY2N1cmFjeTsidW5kZWZpbmVkIiE9dHlwZW9mIGFjdGl2ZVVzZXJQcm9maWxlTW5nJiYidW5kZWZpbmVkIiE9dHlwZW9mIGFjdGl2ZVVzZXJQcm9maWxlTW5nLmxvZ1BhZ2VWaWV3RXZlbnQ\/KCJ1bmRlZmluZWQiIT09dHlwZW9mIGRlYnVnJiZkZWJ1ZygiTG9nIEV2ZW50IixhLmdlb2xvY1Jlc3VsdC5wb3N0YWxfY29kZSwiSFRNTDVHZW8ucG9zdGFsIiksYWN0aXZlVXNlclByb2ZpbGVNbmcubG9nUGFnZVZpZXdFdmVudChiLCJIVE1MNUdlby5wb3N0YWwiKSk6InVuZGVmaW5lZCIhPT10eXBlb2YgZGVidWcmJmRlYnVnKCIhVU5MT0dHRUQgRVZFTlQhIixhLmdlb2xvY1Jlc3VsdC5wb3N0YWxfY29kZSwiSFRNTDVHZW8ucG9zdGFsIik7Yj1uZXcgRGF0ZTtiLnNldEhvdXJzKDIzLDU5LDU5LDApO0Nvb2tpZXMuc2V0KCJIVE1MNUdlbyIsSlNPTi5zdHJpbmdpZnkoe3Bvc3RhbF9jb2RlOjF9KSxiLCIvIil9fTsKYS5nZXRBZGRyZXNzQ29vcmQ9ZnVuY3Rpb24oYixjKXtyZXR1cm4hMX07YS50cmFja0xvY2F0aW9uPWZ1bmN0aW9uKGIsYyxkKXtpZighYS50cmFja0xvY2F0aW9uR0EpcmV0dXJuITF9O2EuY2xlYXJTZXRUaW1lb3V0cz1mdW5jdGlvbigpe2Zvcih2YXIgYj0wO2I8YS50aW1lb3V0cy5sZW5ndGg7YisrKWNsZWFyVGltZW91dChhLnRpbWVvdXRzW2JdKTthLnRpbWVvdXRzPVtdfTthLnNob3dHZW9sb2NNc2c9ZnVuY3Rpb24oKXtpZighYS5zaG93UG9pbnRlck1lc3NhZ2UpcmV0dXJuITE7YS5jbGVhclNldFRpbWVvdXRzKCk7dmFyIGI9c2V0VGltZW91dChmdW5jdGlvbigpe2dlb2xvY0ZhaWwoKX0sM0U0KTthLnRpbWVvdXRzLnB1c2goYik7aWYoLTE8YS5icm93c2VyLmluZGV4T2YoIkZpcmVmb3giKXx8LTE8YS5icm93c2VyLmluZGV4T2YoIklFIikpJCgiLmdlb2xvYy1tb2RhbC1iZyIpLm9mZigiY2xpY2siKS5vbigiY2xpY2siLGZ1bmN0aW9uKCl7Z2VvbG9jRmFpbCgpO2NsZWFyVGltZW91dChiKX0pLAokKCIjZ2VvbG9jYXRpb25Nc2ciKS5vZmYoImNsaWNrIikub24oImNsaWNrIixmdW5jdGlvbigpe2dlb2xvY0ZhaWwoKTtjbGVhclRpbWVvdXQoYil9KSwkKCIjZ2VvbG9jYXRpb25Nc2dJRSIpLm9mZigiY2xpY2siKS5vbigiY2xpY2siLGZ1bmN0aW9uKCl7Z2VvbG9jRmFpbCgpO2NsZWFyVGltZW91dChiKX0pO3ZhciBjPSJnZW9sb2NhdGlvbk1zZyIsZD0hMCxlPXt0b3A6IjAiLGxlZnQ6IjAifTtzd2l0Y2goITApe2Nhc2UgLTE8YS5icm93c2VyLmluZGV4T2YoIklFIik6ZT17Ym90dG9tOiIwcHgiLGxlZnQ6IjQzJSJ9O2M9Imdlb2xvY2F0aW9uTXNnSUUiO2JyZWFrO2Nhc2UgLTE8YS5icm93c2VyLmluZGV4T2YoIkZpcmVmb3giKTplPXt0b3A6IjkwcHgiLGxlZnQ6IjVweCJ9OyQoImltZy5idXR0b25fcG9pbnRlciIpLmNzcygibGVmdCIsIjc1cHgiKTskKCJpbWcuYnV0dG9uX3BvaW50ZXIiKS5jc3MoInRvcCIsIjM1cHgiKTstMT09JCgiI3R4dFVzZXJBZ2VudCIpLnZhbCgpLmluZGV4T2YoIldpbmRvd3MiKSYmCiQoImltZy5idXR0b25fcG9pbnRlciIpLmNzcygibGVmdCIsIjE3NXB4Iik7YnJlYWs7Y2FzZSAtMTxhLmJyb3dzZXIuaW5kZXhPZigiQ2hyb21lIik6ZT17dG9wOiI2NXB4IixsZWZ0OiIwcHgifTskKCJpbWcuYnV0dG9uX3BvaW50ZXIiKS5jc3MoImxlZnQiLCIyMTBweCIpOy0xPT0kKCIjdHh0VXNlckFnZW50IikudmFsKCkuaW5kZXhPZigiV2luZG93cyIpJiYoZT17dG9wOiI3NXB4IixsZWZ0OiI1MHB4In0sJCgiaW1nLmJ1dHRvbl9wb2ludGVyIikuY3NzKCJsZWZ0IiwiMjQwcHgiKSk7YnJlYWs7Y2FzZSAtMTxhLmJyb3dzZXIuaW5kZXhPZigiU2FmYXJpIik6ZT17dG9wOiI1MTVweCIsbGVmdDoiMzUlIn07ZD0hMDticmVhaztjYXNlIC0xPGEuYnJvd3Nlci5pbmRleE9mKCJPcGVyYSIpOmU9e3RvcDoiMCIsbGVmdDoiMCJ9O2Q9ITE7YnJlYWs7ZGVmYXVsdDplPXt0b3A6IjAiLGxlZnQ6IjAifSxkPSExfWQmJigidW5kZWZpbmVkIiE9dHlwZW9mICQoIi5yZXZlYWwtbW9kYWwtYmciKS52YWwoKSYmCiJibG9jayI9PSQoIi5yZXZlYWwtbW9kYWwtYmciKS5jc3MoImRpc3BsYXkiKSYmJCgiLnJldmVhbC1tb2RhbC1iZyIpLmhpZGUoKSwkKCIuZ2VvbG9jLW1vZGFsLWJnIikuc2hvdygpLCQoIiMiK2MpLmNzcyhlKSwkKCIjIitjKS5zaG93KCksInVuZGVmaW5lZCI9PXR5cGVvZiBzaXRlU2VjdGlvbiYmKHNpdGVTZWN0aW9uPSJVTkRFRklORUQiKSxhLnRyYWNrTG9jYXRpb24oIkdlb2xvY2F0aW9uIiwiU2VjdGlvbi0iK3NpdGVTZWN0aW9uLCIiKSl9O2EuaGlkZUdlb2xvY01zZz1mdW5jdGlvbihiKXtpZighYS5zaG93UG9pbnRlck1lc3NhZ2UpcmV0dXJuITE7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBifHxudWxsPT1iKWI9ITE7JCgiLmdlb2xvYy1tb2RhbC1iZyIpLmhpZGUoKTtifHwoJCgiI2dlb2xvY2F0aW9uTXNnIikuaGlkZSgpLCQoIiNnZW9sb2NhdGlvbk1zZ0lFIikuaGlkZSgpKX07YS5nZW9sb2NGYWlsPWZ1bmN0aW9uKCl7LTE8YS5icm93c2VyLmluZGV4T2YoIklFIikmJgpsb2NhdGlvbi5yZWxvYWQoKTtvdmVybGF5T25seT0hMDtpZigtMTxhLmJyb3dzZXIuaW5kZXhPZigiRmlyZWZveCIpfHwtMTxhLmJyb3dzZXIuaW5kZXhPZigiSUUiKSlvdmVybGF5T25seT0hMTthLmhpZGVHZW9sb2NNc2cob3ZlcmxheU9ubHkpO3JldHVybiExfTthLmdldERpc3RhbmNlPWZ1bmN0aW9uKGIsYyxkKXtyZXR1cm4gYS5nZXREaXN0YW5jZUhhdmVyc2luZShiLGMpfTthLmdldERpc3RhbmNlSGF2ZXJzaW5lPWZ1bmN0aW9uKGIsYyl7dmFyIGQ9KGMubGF0LWIubGF0KSpNYXRoLlBJLzE4MCxlPShjLmxvbmctYi5sb25nKSpNYXRoLlBJLzE4MDtiPU1hdGguc2luKGQvMikqTWF0aC5zaW4oZC8yKStNYXRoLmNvcyhiLmxhdCpNYXRoLlBJLzE4MCkqTWF0aC5jb3MoYy5sYXQqTWF0aC5QSS8xODApKk1hdGguc2luKGUvMikqTWF0aC5zaW4oZS8yKTtyZXR1cm4oMTI3NTYyNzQqTWF0aC5hdGFuMihNYXRoLnNxcnQoYiksTWF0aC5zcXJ0KDEtYikpKS50b0ZpeGVkKDIpfTthLmdldERpc3RhbmNlR21hcHM9CmZ1bmN0aW9uKGIsYyl7cmV0dXJuIGEuZ2V0RGlzdGFuY2VIYXZlcnNpbmUoYixjKX19OwovKiogL20vanMvcHJpbnRUaGlzLmpzICoqLwp2YXIgX19fZDJjX3ByaW50VGhpc2pzX2Nfb249IjIwMjUtMDUtMjMgMTc6MTE6NDAiOyd1c2Ugc3RyaWN0Jzt2YXIgX19fZDJjX3ByaW50VGhpc2pzX2Nfb249IjIwMjQtMDctMzAgMTA6MzA6MDgiOyJ1c2Ugc3RyaWN0IjsKKGZ1bmN0aW9uKGMpe2Z1bmN0aW9uIHIoZCxlKXtlJiZkLmFwcGVuZChlLmpxdWVyeT9lLmNsb25lKCk6ZSl9ZnVuY3Rpb24gdChkLGUsayl7dmFyIGY9ZS5jbG9uZShrLmZvcm1WYWx1ZXMpO2suZm9ybVZhbHVlcyYmdShlLGYsInNlbGVjdCwgdGV4dGFyZWEiKTtrLnJlbW92ZVNjcmlwdHMmJmYuZmluZCgic2NyaXB0IikucmVtb3ZlKCk7ay5wcmludENvbnRhaW5lcj9mLmFwcGVuZFRvKGQpOmYuZWFjaChmdW5jdGlvbigpe2ModGhpcykuY2hpbGRyZW4oKS5hcHBlbmRUbyhkKX0pfWZ1bmN0aW9uIHUoZCxlLGspe3ZhciBmPWQuZmluZChrKTtlLmZpbmQoaykuZWFjaChmdW5jdGlvbihnLHEpe2MocSkudmFsKGYuZXEoZykudmFsKCkpfSl9dmFyIGE7Yy5mbi5wcmludFRoaXM9ZnVuY3Rpb24oZCl7YT1jLmV4dGVuZCh7fSxjLmZuLnByaW50VGhpcy5kZWZhdWx0cyxkKTt2YXIgZT10aGlzIGluc3RhbmNlb2YgalF1ZXJ5P3RoaXM6Yyh0aGlzKTtkPSJwcmludFRoaXMtIisobmV3IERhdGUpLmdldFRpbWUoKTsKaWYod2luZG93LmxvY2F0aW9uLmhvc3RuYW1lIT09ZG9jdW1lbnQuZG9tYWluJiZuYXZpZ2F0b3IudXNlckFnZW50Lm1hdGNoKC9tc2llL2kpKXt2YXIgaz0namF2YXNjcmlwdDpkb2N1bWVudC53cml0ZSgiPGhlYWQ+PHNjcmlwdD5kb2N1bWVudC5kb21haW49XFwiJytkb2N1bWVudC5kb21haW4rJ1xcIjtceDNjL3NjcmlwdD48L2hlYWQ+PGJvZHk+PC9ib2R5PiIpJyxmPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIpO2YubmFtZT0icHJpbnRJZnJhbWUiO2YuaWQ9ZDtmLmNsYXNzTmFtZT0iTVNJRSI7ZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChmKTtmLnNyYz1rfWVsc2UgYygiPGlmcmFtZSBpZD0nIitkKyInIG5hbWU9J3ByaW50SWZyYW1lJyAvPiIpLmFwcGVuZFRvKCJib2R5Iik7dmFyIGc9YygiIyIrZCk7YS5kZWJ1Z3x8Zy5jc3Moe3Bvc2l0aW9uOiJhYnNvbHV0ZSIsd2lkdGg6IjBweCIsaGVpZ2h0OiIwcHgiLGxlZnQ6Ii02MDBweCIsdG9wOiItNjAwcHgifSk7CnNldFRpbWVvdXQoZnVuY3Rpb24oKXtmdW5jdGlvbiBxKGIscCl7Yj1iLmdldCgwKTtiPWIuY29udGVudFdpbmRvd3x8Yi5jb250ZW50RG9jdW1lbnR8fGI7Yj1iLmRvY3VtZW50fHxiLmNvbnRlbnREb2N1bWVudHx8YjtiLm9wZW4oKTtiLndyaXRlKHApO2IuY2xvc2UoKX1hLmRvY3R5cGVTdHJpbmcmJnEoZyxhLmRvY3R5cGVTdHJpbmcpO3ZhciBtPWcuY29udGVudHMoKSxsPW0uZmluZCgiaGVhZCIpLG49bS5maW5kKCJib2R5IiksaD1jKCJiYXNlIik7aD0hMD09PWEuYmFzZSYmMDxoLmxlbmd0aD9oLmF0dHIoImhyZWYiKToic3RyaW5nIj09PXR5cGVvZiBhLmJhc2U\/YS5iYXNlOmRvY3VtZW50LmxvY2F0aW9uLnByb3RvY29sKyIvLyIrZG9jdW1lbnQubG9jYXRpb24uaG9zdDtsLmFwcGVuZCgnPGJhc2UgaHJlZj0iJytoKyciPicpO2EuaW1wb3J0Q1NTJiZjKCJsaW5rW3JlbD1zdHlsZXNoZWV0XSIpLmVhY2goZnVuY3Rpb24oKXt2YXIgYj1jKHRoaXMpLmF0dHIoImhyZWYiKTtpZihiKXt2YXIgcD0KYyh0aGlzKS5hdHRyKCJtZWRpYSIpfHwiYWxsIjtsLmFwcGVuZCgiPGxpbmsgdHlwZT0ndGV4dC9jc3MnIHJlbD0nc3R5bGVzaGVldCcgaHJlZj0nIitiKyInIG1lZGlhPSciK3ArIicvPiIpfX0pO2EuaW1wb3J0U3R5bGUmJmMoInN0eWxlIikuZWFjaChmdW5jdGlvbigpe2wuYXBwZW5kKHRoaXMub3V0ZXJIVE1MKX0pO2EucGFnZVRpdGxlJiZsLmFwcGVuZCgiPHRpdGxlPiIrYS5wYWdlVGl0bGUrIjwvdGl0bGU+Iik7YS5sb2FkQ1NTJiYoQXJyYXkuaXNBcnJheShhLmxvYWRDU1MpP2pRdWVyeS5lYWNoKGEubG9hZENTUyxmdW5jdGlvbihiLHApe2wuYXBwZW5kKCI8bGluayB0eXBlPSd0ZXh0L2NzcycgcmVsPSdzdHlsZXNoZWV0JyBocmVmPSciK3RoaXMrIicvPiIpfSk6bC5hcHBlbmQoIjxsaW5rIHR5cGU9J3RleHQvY3NzJyByZWw9J3N0eWxlc2hlZXQnIGhyZWY9JyIrYS5sb2FkQ1NTKyInLz4iKSk7aWYoaD1hLmNvcHlUYWdDbGFzc2VzKWg9ITA9PT1oPyJiaCI6aCwtMSE9PWguaW5kZXhPZigiYiIpJiYKbi5hZGRDbGFzcyhjKCJib2R5IilbMF0uY2xhc3NOYW1lKSwtMSE9PWguaW5kZXhPZigiaCIpJiZtLmZpbmQoImh0bWwiKS5hZGRDbGFzcyhjKCJodG1sIilbMF0uY2xhc3NOYW1lKTtyKG4sYS5oZWFkZXIpO2lmKGEuY2FudmFzKXt2YXIgdj0wO2UuZmluZCgiY2FudmFzIikuYWRkQmFjaygiY2FudmFzIikuZWFjaChmdW5jdGlvbigpe2ModGhpcykuYXR0cigiZGF0YS1wcmludHRoaXMiLHYrKyl9KX10KG4sZSxhKTthLmNhbnZhcyYmbi5maW5kKCJjYW52YXMiKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIGI9Yyh0aGlzKS5kYXRhKCJwcmludHRoaXMiKTtiPWMoJ1tkYXRhLXByaW50dGhpcz0iJytiKyciXScpO3RoaXMuZ2V0Q29udGV4dCgiMmQiKS5kcmF3SW1hZ2UoYlswXSwwLDApO2IucmVtb3ZlRGF0YSgicHJpbnR0aGlzIil9KTthLnJlbW92ZUlubGluZSYmKGlzRnVuY3Rpb24oYy5yZW1vdmVBdHRyKT9tLmZpbmQoImJvZHkgKiIpLnJlbW92ZUF0dHIoInN0eWxlIik6bS5maW5kKCJib2R5ICoiKS5hdHRyKCJzdHlsZSIsCiIiKSk7cihuLGEuZm9vdGVyKTtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Zy5oYXNDbGFzcygiTVNJRSIpPyh3aW5kb3cuZnJhbWVzLnByaW50SWZyYW1lLnRyaWdnZXIoImZvY3VzIiksbC5hcHBlbmQoIjxzY3JpcHQ+ICB3aW5kb3cucHJpbnQoKTsgXHgzYy9zY3JpcHQ+IikpOmRvY3VtZW50LnF1ZXJ5Q29tbWFuZFN1cHBvcnRlZCgicHJpbnQiKT9nWzBdLmNvbnRlbnRXaW5kb3cuZG9jdW1lbnQuZXhlY0NvbW1hbmQoInByaW50IiwhMSxudWxsKTooZ1swXS5jb250ZW50V2luZG93LnRyaWdnZXIoImZvY3VzIiksZ1swXS5jb250ZW50V2luZG93LnByaW50KCkpO2EuZGVidWd8fHNldFRpbWVvdXQoZnVuY3Rpb24oKXtnLnJlbW92ZSgpfSwxRTMpfSxhLnByaW50RGVsYXkpfSwzMzMpfTtjLmZuLnByaW50VGhpcy5kZWZhdWx0cz17ZGVidWc6ITEsaW1wb3J0Q1NTOiEwLGltcG9ydFN0eWxlOiExLHByaW50Q29udGFpbmVyOiEwLGxvYWRDU1M6IiIscGFnZVRpdGxlOiIiLHJlbW92ZUlubGluZTohMSwKcHJpbnREZWxheTozMzMsaGVhZGVyOm51bGwsZm9vdGVyOm51bGwsZm9ybVZhbHVlczohMCxjYW52YXM6ITEsYmFzZTohMSxkb2N0eXBlU3RyaW5nOiI8IURPQ1RZUEUgaHRtbD4iLHJlbW92ZVNjcmlwdHM6ITEsY29weVRhZ0NsYXNzZXM6ITF9fSkoalF1ZXJ5KTsKLyoqIC9tL2pzL3BvcHVwLmpzICoqLwp2YXIgX19fZDJjX3BvcHVwanNfY19vbj0iMjAyNS0wNS0yMyAxNzoxMToyNyI7J3VzZSBzdHJpY3QnO3ZhciBfX19kMmNfcG9wdXBqc19jX29uPSIyMDI0LTAzLTE1IDEwOjMwOjEwIjsidXNlIHN0cmljdCI7dmFyIGFjdGl2YXRlZFBvcHVwRGl2SUQ9IiIsbWFpblBvcHVwRGl2SUQ9IiIscG9wdXBPbkFmdGVyU3VibWl0Q2xvc2U9ITEsaXNQb3B1cEluaXRpYWxpemVkPSExOwpmdW5jdGlvbiBzaG93UG9wdXBXaWRnZXQoYSxiPSEwKXt2YXIgYz0hMT09PWI\/ITE6ITA7aWYoaXNTbXNUZXh0VXNGb3JtKCkmJmIpcmV0dXJuIHNob3dTbXNUZXh0VXNGb3JtKGMpLCExO2lmKCExPT09aXNQb3B1cEluaXRpYWxpemVkKXJldHVybiExO2E9YT9hOnt9O3NldHRpbmdzPXtzaG93TWFpblBvcHVwOiExLGRvTm90UmVkaXJlY3Q6ITEsZXZlbnRUeXBlOiJjbGljayIsZGVsYXk6ITF9OyQuZXh0ZW5kKHNldHRpbmdzLGEpO2E9c2V0dGluZ3MuZG9Ob3RSZWRpcmVjdDtiPXNldHRpbmdzLmV2ZW50VHlwZTtjPXNldHRpbmdzLmRlbGF5O3ZhciBkPTA8YWN0aXZhdGVkUG9wdXBEaXZJRC5sZW5ndGg\/YWN0aXZhdGVkUG9wdXBEaXZJRDohMTshMD09PXNldHRpbmdzLnNob3dNYWluUG9wdXAmJjA8bWFpblBvcHVwRGl2SUQubGVuZ3RoJiYoZD1tYWluUG9wdXBEaXZJRCk7aWYoZCYmMDxkLmxlbmd0aCkkKCIjIitkKS5wb3B1cGl6ZSgpLnNldFRyaWdnZXIoYikub3BlbihjKTtlbHNlIGlmKCJmdW5jdGlvbiI9PT0KdHlwZW9mIHNob3dQb3B1cFdpZGdldE9MRClzaG93UG9wdXBXaWRnZXRPTEQoITEpO2Vsc2UgaWYoITE9PT1hKTA8JCgiI3Byb21vU2VjdGlvbm5hYmxlZCIpLmxlbmd0aCYmIjAiIT0kKCIjcHJvbW9TZWN0aW9ubmFibGVkIikudmFsKCk\/d2luZG93LmxvY2F0aW9uLmhyZWY9IkVOR0xJU0giPT0kKCIjYWN0aXZlc2l0ZWxhbmd1YWdlIikudmFsKCk\/Ii9vdXItcHJvbW90aW9ucy5odG1sIjoiL3Byb21vdGlvbnMuaHRtbCI6d2luZG93LmxvY2F0aW9uLmhyZWY9Ii8iO2Vsc2UgcmV0dXJuITF9ZnVuY3Rpb24gcG9wdXBQb3N0TWVzc2FnZU9uQXV0b2F1YmFpbmUoKXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7JC5wb3N0TWVzc2FnZSgiY2xvc2VQb3B1cCIsIioiLHBhcmVudCl9LDFFMyl9CmZ1bmN0aW9uIHBvcHVwRGVmYXVsdE9uQWZ0ZXJJbml0aWFsaXplKGEsYixjLGQsZSxmLGcpe2lzUG9wdXBJbml0aWFsaXplZD0hMDtjJiYobWFpblBvcHVwRGl2SUQ9ZitkKTtyZXR1cm4gYj09YSYmY3x8InJlc2V0Ij09YiYmYz8oYWN0aXZhdGVkUG9wdXBEaXZJRD1mK2QsInVzZWRjYXJzLmh0bWwiIT1lfHxnPyJuZXdjYXJzLmh0bWwiIT1lfHxnPyEwOihjb25zb2xlLmxvZygicG9wdXAuanMgcG9wdXBEZWZhdWx0T25BZnRlckluaXRpYWxpemUgLSBuZXdjYXJzIHJldHVybnMgZmFsc2UuIFBvcHVwIG1heSBiZSBjYW5jZWxsZWQuIiksITEpOih0aGlzLmNvbnNvbGUmJiJ1bmRlZmluZWQiIT09dHlwZW9mIGNvbnNvbGUubG9nJiZjb25zb2xlLmxvZygicG9wdXAuanMgcG9wdXBEZWZhdWx0T25BZnRlckluaXRpYWxpemUgLSB1c2VkY2FycyAgcmV0dXJucyBmYWxzZS4gUG9wdXAgbWF5IGJlIGNhbmNlbGxlZC4iKSwhMSkpOiExfQpmdW5jdGlvbiBwb3B1cGNsb3NlUERGKGEsYil7JCgiI3BvcHVwZGl2cGRmIithKS5sZW5ndGgmJiQoIiNwb3B1cGRpdnBkZiIrYSkuY3NzKCJkaXNwbGF5Iiwibm9uZSIpOyQoIiNwb3B1cGRpZnBkZm1vZGFsIikubGVuZ3RoJiYkKCIjcG9wdXBkaWZwZGZtb2RhbCIpLnJlbW92ZSgpOyQoIiNwb3B1cGRpdnBkZmlmcmFtZSIpLmxlbmd0aCYmJCgiI3BvcHVwZGl2cGRmaWZyYW1lIikucmVtb3ZlKCk7YiYmcG9wdXBQb3N0TWVzc2FnZU9uQXV0b2F1YmFpbmUoKX1mdW5jdGlvbiBwcmludFBERklGcmFtZSgpe3dpbmRvdy5mcmFtZXMucG9wdXBkaXZwZGZpZnJhbWUucHJpbnRNZSgpfWZ1bmN0aW9uIHBvcHVwVHJpbShhKXtyZXR1cm4gYS5yZXBsYWNlKC9eXHMrfFxzKyQvZ20sIiIpfQpmdW5jdGlvbiBzaG93UG9wdXBXaWRnZXRBZGRWZWhpY2xlKGEpeyQoJ2lucHV0W25hbWU9InNlYXJjaGVkdmVoaWNsZSJdJykuZWFjaChmdW5jdGlvbigpeyQodGhpcykudmFsKGEpfSk7c2hvd1BvcHVwV2lkZ2V0KCl9ZnVuY3Rpb24gc2hvd1NwZWNpYWxTY2hlZHVsZU9ubG9hZCgpe3ZhciBhPSQoIiNzcGVjaWFsU2NoZWR1bGUiKTswPGEubGVuZ3RoJiZhLnBvcHVwaXplKHtzaG93b25sb2FkOiEwLGNvb2tpZU5hbWU6InNwU2NoZWR1bGVEaXNwbGF5ZWQiLGNvb2tpZUNyZWF0ZToib25PcGVuIixjbG9zZUJ1dHRvbjohMH0pfWZ1bmN0aW9uIHNob3dTcGVjaWFsU2NoZWR1bGUoKXskKCIjc3BlY2lhbFNjaGVkdWxlIikucG9wdXBpemUoKS5zZXRUcmlnZ2VyKCJjbGljayIpLm9wZW4oKX1mdW5jdGlvbiBzaG93VHJhZGVCb29zdFBvcHVwKCl7JCgiI1RyYWRlSW5CYXJQb3B1cENvbnRhaW5lciIpLnBvcHVwaXplKCkuc2V0VHJpZ2dlcigiY2xpY2siKS5vcGVuKCl9CmZ1bmN0aW9uIGlzU21zVGV4dFVzRm9ybSgpe2xldCBhPVsibmV3Y2FyZGV0YWlsLmh0bWwiLCJuZXdjYXJzLmh0bWwiXSxiPVsiY2FyZGV0YWlsLmh0bWwiLCJ1c2VkY2Fycy5odG1sIl07cmV0dXJuIjEiPT0kKCIjRGlzY291bnRQb3B1cE5ld1JlYmF0ZVNob3dUZXh0VXMiKS52YWwoKSYmYS5pbmNsdWRlcygkKCIjUEFHRUlEIikudmFsKCkpfHwiMSI9PSQoIiNEaXNjb3VudFBvcHVwVXNlZFJlYmF0ZVNob3dUZXh0VXMiKS52YWwoKSYmYi5pbmNsdWRlcygkKCIjUEFHRUlEIikudmFsKCkpPyEwOiExfWZ1bmN0aW9uIHNob3dTbXNUZXh0VXNGb3JtKGE9ITApeyQoIiNpc01vYmlsZSIpLmxlbmd0aCYmIjEiPT0kKCIjaXNNb2JpbGUiKS52YWwoKSYmITEhPT1hP2RlYWxlckxpbmVTbXMoKTpkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjc2xpZGVpdCAjb3Blbi1pdGVtIikuY2hlY2tlZD0hMH07Ci8qKiAvbS9qcy9tdWx0aUZvcm1Qb3B1cC5qcyAqKi8KdmFyIF9fX2QyY19tdWx0aUZvcm1Qb3B1cGpzX2Nfb249IjIwMjUtMDUtMjMgMTc6MTA6NTYiOyd1c2Ugc3RyaWN0Jzt2YXIgX19fZDJjX211bHRpRm9ybVBvcHVwanNfY19vbj0iMjAyNC0wMy0yNSAxMjozNDowMCI7InVzZSBzdHJpY3QiOwpmdW5jdGlvbiBtdWx0aUZvcm1Qb3B1cEluaXRpYWxpemUoYSl7YT1hfHwibXVsdGlmb3JtUG9wdXBDb250YWluZXIiOyQoYCMke2F9YCkuZmluZCgiI211bHRpZm9ybV9idG5fMSAiKS5vbigiY2xpY2sgdG91Y2giLGZ1bmN0aW9uKGIpe2IucHJldmVudERlZmF1bHQoKTskLnZhbGlkaXR5LnN0YXJ0KCk7JChgIyR7YX1gKS5maW5kKCIjbXVsdGlmb3JtX3Bvc3RhbCIpLnJlcXVpcmUoKS5yZXF1aXJlUG9zdGFsQ29kZSgpO2lmKCQudmFsaWRpdHkuZW5kKCkudmFsaWQpe2I9JCgiI211bHRpZm9ybV9wb3N0YWwiKS52YWwoKTsidW5kZWZpbmVkIiE9dHlwZW9mIGFjdGl2ZVVzZXJQcm9maWxlTW5nJiYidW5kZWZpbmVkIiE9dHlwZW9mIGFjdGl2ZVVzZXJQcm9maWxlTW5nLmxvZ1BhZ2VWaWV3RXZlbnQ\/KCJ1bmRlZmluZWQiIT09dHlwZW9mIGRlYnVnJiZkZWJ1ZygiTG9nIEV2ZW50IixiLCJVc2VyRm9ybS5wb3N0YWwiKSxhY3RpdmVVc2VyUHJvZmlsZU1uZy5sb2dQYWdlVmlld0V2ZW50KGIsCiJVc2VyRm9ybS5wb3N0YWwiKSk6InVuZGVmaW5lZCIhPT10eXBlb2YgZGVidWcmJmRlYnVnKCIhVU5MT0dHRUQgRVZFTlQhIixiLCJVc2VyRm9ybS5wb3N0YWwiKTskKGAjJHthfWApLmZpbmQoIi5tdWx0aWZvcm1fY2lyY2xlMiIpLmNzcyh7YmFja2dyb3VuZENvbG9yOiQoIi5tdWx0aWZvcm1fY2lyY2xlMSIpLmNzcygiYmFja2dyb3VuZENvbG9yIiksY29sb3I6JCgiLm11bHRpZm9ybV9jaXJjbGUxIikuY3NzKCJjb2xvciIpfSk7JChgIyR7YX1gKS5maW5kKCIubXVsdGlmb3JtX2NpcmNsZTEiKS5jc3Moe2JhY2tncm91bmRDb2xvcjoiI2ZmZiIsY29sb3I6IiMzMzMifSk7JChgIyR7YX1gKS5maW5kKCIubXVsdGlmb3JtX3N0ZXAxIikuaGlkZSgpOyQoYCMke2F9YCkuZmluZCgiLm11bHRpZm9ybV9zdGVwMiIpLnNob3coKTsobmV3IEZvcm0pLm1hc2tQaG9uZSgiI211bHRpZm9ybV9zbXMiKTtiPSQoIi5icmFuZGVtYWlsIikubGVuZ3RoPyQoIi5icmFuZGVtYWlsIikudmFsKCk6IiI7CnZhciBjPSQoIi5tb2RlbGVtYWlsIikubGVuZ3RoPyQoIi5tb2RlbGVtYWlsIikudmFsKCk6IiIsZD0kKCIueWVhcmVtYWlsIikubGVuZ3RoPyQoIi55ZWFyZW1haWwiKS52YWwoKToiIjtiLmxlbmd0aCYmYy5sZW5ndGgmJmQubGVuZ3RoJiYkKGAjJHthfWApLmZpbmQoIiNzZWFyY2hlZHZlaGljbGUiKS52YWwoYisiICIrYysiICIrZCk7JChgIyR7YX1gKS5maW5kKCIjbXVsdGlmb3JtX2Zvcm1XIC5tdWx0aWZvcm1fc3RlcDIgaW5wdXQ6Zmlyc3QiKS50cmlnZ2VyKCJmb2N1cyIpOyQoYCMke2F9YCkuZmluZCgiI211bHRpZm9ybV9mb3JtVyAjc2VhcmNoZWR2ZWhpY2xlIikubGVuZ3RoJiZudWxsIT1Db29raWVzLmdldCgibGFzdHZpZXdlZHZlaGljbGUiKSYmJChgIyR7YX1gKS5maW5kKCIjbXVsdGlmb3JtX2Zvcm1XICNzZWFyY2hlZHZlaGljbGUiKS52YWwoQ29va2llcy5nZXQoImxhc3R2aWV3ZWR2ZWhpY2xlIikucmVwbGFjZUFsbCgifHx8IiwiICIpKX19KX07Ci8qKiAvbS9qcy9wZGZQb3B1cC5qcyAqKi8KdmFyIF9fX2QyY19wZGZQb3B1cGpzX2Nfb249IjIwMjUtMDUtMjMgMTc6MTE6MjUiOyd1c2Ugc3RyaWN0Jzt2YXIgX19fZDJjX3BkZlBvcHVwanNfY19vbj0iMjAyNS0wNC0yOCAxNDozMDoxOSI7InVzZSBzdHJpY3QiOwpmdW5jdGlvbiBzdWJtaXRTcGVjc05ld1BkZlJlcXVlc3QoKXt2YXIgYT0kKCIuZW1haWxTdWJqZWN0IiwiI3BvcHVwVGVjaFNwZWNzTmV3RGl2IikudGV4dCgpLGQ9JCgiLmVtYWlsQm9keSIsIiNwb3B1cFRlY2hTcGVjc05ld0RpdiIpLmh0bWwoKSxjPSQoIiNjbGllbnRFbWFpbCIsIiNwb3B1cFRlY2hTcGVjc05ld0RpdiIpLnZhbCgpLGI9JCgiI2NsaWVudFNtcyIsIiNwb3B1cFRlY2hTcGVjc05ld0RpdiIpLnZhbCgpLGY9InVuZGVmaW5lZCIhPSQoImlucHV0LmJyYW5kZW1haWwiKS52YWwoKT8kKCJpbnB1dC5icmFuZGVtYWlsIikudmFsKCk6IiIsZz0idW5kZWZpbmVkIiE9JCgiaW5wdXQubW9kZWxlbWFpbCIpLnZhbCgpPyQoImlucHV0Lm1vZGVsZW1haWwiKS52YWwoKToiIixoPSJ1bmRlZmluZWQiIT0kKCJpbnB1dC55ZWFyZW1haWwiKS52YWwoKT8kKCJpbnB1dC55ZWFyZW1haWwiKS52YWwoKToiIjtkPWQucmVwbGFjZSgve1wkQ0xJRU5URU1BSUx9L2csYyk7ZD1kLnJlcGxhY2UoL3tcJENMSUVOVFBIT05FfS9nLApiKTtlbWFpbEhhbmRsZXIuc3ViamVjdD1hO2VtYWlsSGFuZGxlci5ib2R5PWQ7ZW1haWxIYW5kbGVyLnNlbmRUbz0kKCIjdGV4dFNlbmRUb0VtYWlsIikudmFsKCk7ZW1haWxIYW5kbGVyLnNlbmRUb0FERkZvcm1hdD0kKCIjdGV4dFNlbmRUb0VtYWlsQURGIikudmFsKCk7ZW1haWxIYW5kbGVyLm1haWxJRD0iU3BlY3NSZXF1ZXN0TmV3IjtlbWFpbEhhbmRsZXIudXNlckVtYWlsPWM7ZW1haWxIYW5kbGVyLnVzZXJQaG9uZT1iO2VtYWlsSGFuZGxlci5jb25kaXRpb249Ik5ldyI7MDxmLmxlbmd0aCYmKGVtYWlsSGFuZGxlci5tYWtlPWYpOzA8Zy5sZW5ndGgmJihlbWFpbEhhbmRsZXIubW9kZWw9Zyk7MDxoLmxlbmd0aCYmKGVtYWlsSGFuZGxlci55ZWFyPWgpO3ZhciBlPWdldE1haWxTZW50SGFuZGxlcigiX3BvcHVwVGVjaFNwZWNzTmV3RGl2Iik7ZW1haWxIYW5kbGVyLmNhbGxiYWNrPWZ1bmN0aW9uKGspe2s\/InVuZGVmaW5lZCIhPXR5cGVvZiBlJiZlLnNob3dTdWNjZXNzKCk6InVuZGVmaW5lZCIhPQp0eXBlb2YgZSYmZS5zaG93RmFpbCgpfTtlbWFpbEhhbmRsZXIuc2VuZE1haWwoKTskKCIjcG9wdXBUZWNoU3BlY3NOZXdEaXYiKS5wb3B1cGl6ZSgpLmNsb3NlKCl9dmFyIGdsb2JhbExvY2FsZT12b2lkIDA7ZnVuY3Rpb24gaXNMb2NhbGUoYSl7dm9pZCAwPT09Z2xvYmFsTG9jYWxlJiYoZ2xvYmFsTG9jYWxlPSQoIiN0ZXh0TGFuZ3VhZ2VEZXRhaWwiKS52YWwoKSk7cmV0dXJuIGdsb2JhbExvY2FsZS50b0xvd2VyQ2FzZSgpPT1hLnRvTG93ZXJDYXNlKCl9ZnVuY3Rpb24gaXNFbmdsaXNoKCl7cmV0dXJuIGlzTG9jYWxlKCJFTkdMSVNIIil9ZnVuY3Rpb24gaXNGcmVuY2goKXtyZXR1cm4gaXNMb2NhbGUoIkZSRU5DSCIpfWZ1bmN0aW9uIHByaW50U3BlY3MoKXt2YXIgYT0oaXNFbmdsaXNoKCk\/Ii91c2VkLyI6Ii9vY2Nhc2lvbi8iKSskKCIjcG9wdXBUZWNoU3BlY3NEaXYgI3ByaW50UGFnZSIpLmF0dHIoImhyZWYiKTt3aW5kb3cub3BlbihhKTtyZXR1cm4hMX0KZnVuY3Rpb24gcHJpbnRTcGVjc05ldygpe3ZhciBhPSQoImlucHV0I3NwZWNCcm9jaHVyZVVyaSIpLnZhbCgpfHwkKCIjc3BlY0Jyb2NodXJlVXJpTmV3IikudmFsKCk7d2luZG93Lm9wZW4oYSk7cmV0dXJuITF9CmZ1bmN0aW9uIHNlbmRTcGVjc05ld1BkZlJlcXVlc3QoKXskLnZhbGlkaXR5LnN0YXJ0KCk7dmFyIGE9MDwkKCIjY2xpZW50U21zIiwiI3BvcHVwVGVjaFNwZWNzTmV3RGl2IikudmFsKCkubGVuZ3RoPyEwOiExO2E\/JCgiI2NsaWVudFNtcyIsIiNwb3B1cFRlY2hTcGVjc05ld0RpdiIpLnJlcXVpcmUoKS52YWxpZGF0ZU1vYmlsZSgpOiQoIiNjbGllbnRFbWFpbCIsIiNwb3B1cFRlY2hTcGVjc05ld0RpdiIpLnJlcXVpcmUoKS52YWxpZEVtYWlsQWRkcmVzcygpO2lmKCQudmFsaWRpdHkuZW5kKCkudmFsaWQpe3ZhciBkPSIiLGM9e307YT9kPSgiRU5HTElTSCI9PSQoIiN0ZXh0TGFuZ3VhZ2UiKS52YWwoKT8iL2VuIjoiL2ZyIikrIi9hamF4L1NlbmRTbXM\/d3N3aWR0aD0wIjooYy5lbWFpbD0kKCIjY2xpZW50RW1haWwiLCIjcG9wdXBUZWNoU3BlY3NOZXdEaXYiKS52YWwoKSxkPSQoIiNwcmludFBhZ2UiLCIjcG9wdXBUZWNoU3BlY3NOZXdEaXYiKS5hdHRyKCJocmVmIikrCiImZW1haWw9IitjLmVtYWlsKTtjLnBob25lPSQoIiNjbGllbnRTbXMiLCIjcG9wdXBUZWNoU3BlY3NOZXdEaXYiKS52YWwoKTtjLm1ha2U9JCgnW25hbWU9ImJyYW5kIl0nKS52YWwoKTtjLm1vZGVsPSQoJ1tuYW1lPSJtb2RlbCJdJykudmFsKCk7Yy55ZWFyPSQoJ1tuYW1lPSJ5ZWFyIl0nKS52YWwoKTskLmFqYXgoe2FzeW5jOiExLHVybDpkLGRhdGE6YyxzdWNjZXNzOmZ1bmN0aW9uKGIpe2I9SlNPTi5wYXJzZShiKTsidW5kZWZpbmVkIiE9PXR5cGVvZiBiLm1lc3NhZ2UmJmNvbnNvbGUubG9nKGIubWVzc2FnZSk7JCgiI2VtYWlsU3VjY2Vzc01lc3NhZ2VfcG9wdXBUZWNoU3BlY3NOZXdEaXYgc3Bhbi5zdWNjZXNzIikuaHRtbCgkKCIjUkVRVUVTVF9TRU5UIikudmFsKCkpO3N1Ym1pdFNwZWNzTmV3UGRmUmVxdWVzdCgpfSxmYWlsdXJlOmZ1bmN0aW9uKGIpe2NvbnNvbGUubG9nKCJhamF4IGZhaWx1cmUiLHNhdmVIYW5kbGVyLmZhaWxNZXNzYWdlKyJcbiIrYik7JCgiI3BvcHVwVGVjaFNwZWNzTmV3RGl2IC5jbG9zZS1yZXZlYWwtbW9kYWwiKS50cmlnZ2VyKCJjbGljayIpfSwKZXJyb3I6ZnVuY3Rpb24oYixmLGcpeyQoIiNwb3B1cFRlY2hTcGVjc05ld0RpdiAuY2xvc2UtcmV2ZWFsLW1vZGFsIikudHJpZ2dlcigiY2xpY2siKTtjb25zb2xlLmxvZygiYWpheCBlcnJvciIsYi5yZXNwb25zZVRleHQpfX0pfX1mdW5jdGlvbiBzaG93U3BlY3NSZXF1ZXN0TmV3UG9wdXAoKXskKCIjcG9wdXBUZWNoU3BlY3NOZXdEaXYiKS5wb3B1cGl6ZSgpLnNldFRyaWdnZXIoImNsaWNrIikub3BlbigpO3JldHVybiExfQpmdW5jdGlvbiBzZW5kU21zKGEsZCxjKXskLnZhbGlkaXR5LnN0YXJ0KCk7dmFyIGI9Ik5FVyI9PWM\/Im5ldyI6IiI7bGV0IGY9Ik5FVyI9PWM\/Ik5ldyI6IiI7Ik1vYmlsZS1SZXF1ZXN0TW9udGhseVBheW1lbnRzIj09ZD8kKGAjY2xpZW50TmFtZSR7Yn1gLCIjbW9udGhseVBheW1lbnRzUG9wdXBDb250YWluZXIiKS5yZXF1aXJlKCkubm9uSHRtbCgpOigkKGAjY2xpZW50U21zJHtifWAsYCNwb3B1cFRlY2hTcGVjcyR7Zn1EaXZgKS5yZXF1aXJlKCkudmFsaWRhdGVNb2JpbGUoKSwkKGAjY2xpZW50TmFtZSR7Yn1gLGAjcG9wdXBUZWNoU3BlY3Mke2Z9RGl2YCkucmVxdWlyZSgpLm5vbkh0bWwoKSk7aWYoJC52YWxpZGl0eS5lbmQoKS52YWxpZCl7dmFyIGc9JChgI2NsaWVudE5hbWUke2J9YCxgI3BvcHVwVGVjaFNwZWNzJHtmfURpdmApLnZhbCgpLGg9JChgI2NsaWVudFNtcyR7Yn1gLGAjcG9wdXBUZWNoU3BlY3Mke2Z9RGl2YCkudmFsKCk7Yj0kKGAjY2xpZW50RW1haWwke2J9YCwKYCNwb3B1cFRlY2hTcGVjcyR7Zn1EaXZgKS52YWwoKTtpZigib2JqZWN0Ij09PXR5cGVvZiBkZWFsZXJTbXNOdW1iZXIpe2E9e2RlcHQ6JCgiI25ld1NlY3Rpb25PdmVycmlkZSIpLmxlbmd0aCYmIjEiPT0kKCIjbmV3U2VjdGlvbk92ZXJyaWRlIikudmFsKCk\/Ik5FVyI6ZW1haWxIYW5kbGVyP2VtYWlsSGFuZGxlci5nZXREZXAoKTpjLnRvVXBwZXJDYXNlKCksbWVzc2FnZVR5cGU6YSx1c2VyTmFtZTpnLHVzZXJQaG9uZTpoLHVzZXJFbWFpbDpifTtjPSQoIiNwaG9uZW15ZWFyIikubGVuZ3RoPyQoIiNwaG9uZW15ZWFyIikudmFsKCk6IiI7Zz0kKCIjcGhvbmVtYWtlIikubGVuZ3RoPyQoIiNwaG9uZW1ha2UiKS52YWwoKToiIjtoPSQoIiNwaG9uZW1vZGVsIikubGVuZ3RoPyQoIiNwaG9uZW1vZGVsIikudmFsKCk6IiI7Yj0kKCIjcGhvbmVzdG9ja251bWJlciIpLmxlbmd0aD8kKCIjcGhvbmVzdG9ja251bWJlciIpLnZhbCgpOiIiO293bmVySWQ9JCgiI3ZlaGljbGVPd25lcklkIikubGVuZ3RoPwokKCIjdmVoaWNsZU93bmVySWQiKS52YWwoKToiIjsiIiE9PWcmJihhLm1ha2U9Zyk7IiIhPT1oJiYoYS5tb2RlbD1oKTsiIiE9PWMmJihhLnllYXI9Yyk7IiIhPT1iJiYoYS5zdG9ja051bWJlcj1iKTsiIiE9PW93bmVySWQmJihhLmRlYWxlcklkPW93bmVySWQpO2EudmVoaWNsZUlkPSIiO2EuVklOPSIiO2EucHJpY2U9IiI7YS5tb2RlbElkPSIiO2lmKHNpdGVQYWdlLm5hbWU9Im9iamVjdCI9PT10eXBlb2Ygc2VhcmNoRGV0YWlscyYmIm9iamVjdCI9PT10eXBlb2Ygc2VhcmNoRGV0YWlscy52ZWhpY2xlKWEudmVoaWNsZUlkPXNlYXJjaERldGFpbHMudmVoaWNsZUlEfHwiIixhLlZJTj1zZWFyY2hEZXRhaWxzLnZlaGljbGUuTklWfHwiIixhLnByaWNlPXNlYXJjaERldGFpbHMudmVoaWNsZS5wcmljZXx8IiI7aWYoc2l0ZVBhZ2UubmFtZT0ib2JqZWN0Ij09PXR5cGVvZiBuZXdjYXJEZXRhaWxzJiYib2JqZWN0Ij09PXR5cGVvZiBuZXdjYXJEZXRhaWxzLmFjdGl2ZU1vZGVsKWEubW9kZWxJZD0KbmV3Y2FyRGV0YWlscy5hY3RpdmVNb2RlbC5pZHx8IiI7ZGVhbGVyU21zTnVtYmVyLmdldFNtc051bWJlcihhLGZ1bmN0aW9uKGUpe2lmKCExIT09ZSl7Im9iamVjdCI9PT10eXBlb2YgYWN0aXZlVXNlclByb2ZpbGVNbmcmJmFjdGl2ZVVzZXJQcm9maWxlTW5nLmxvZ1BhZ2VWaWV3RXZlbnQoZCxlLnNtc21lc3NhZ2UpO3ZhciBrPS9XaW5kb3dzXHNQaG9uZS9pLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCk\/Ij8iOiI\/JiI7ZT0ic21zOiIrZS5zbXNudW1iZXIraysiYm9keT0iK2VuY29kZVVSSUNvbXBvbmVudChlLnNtc21lc3NhZ2UpO2NvbnNvbGUubG9nKCJTTVNIUkVGOiIsZSk7d2luZG93LmxvY2F0aW9uLmhyZWY9ZX19KX19fQokKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpeyQoIiNtb250aGx5UGF5bWVudHNQb3B1cENvbnRhaW5lcl9zbXMiKS5vbigiY2xpY2siLGZ1bmN0aW9uKCl7dmFyIGE9JCgiI3Bob25lbWFrZSIpLnZhbCgpKyItIiskKCIjcGhvbmVtb2RlbCIpLnZhbCgpKyItIiskKCIjcGhvbmVteWVhciIpLnZhbCgpO2dhVHJhY2soIl90cmFja0V2ZW50IiwiQ291cnJpZWxzIiwiIERlbWFuZGUgZGUgbWVuc3VhbGl06XMgKHbpaGljdWxlIGQnb2NjYXNpb24pIiwiRGVtYW5kZXMtIithLDEpO2dhVHJhY2soImMuX3RyYWNrRXZlbnQiLCJDb3VycmllbHMtZGVwdCIsIk9jY2FzaW9uIixhLDEpO2dhVHJhY2soImMuX3RyYWNrRXZlbnQiLCJDb3VycmllbHMtcGFnZSIsIlVzZWQtVkRQIiwiIERlbWFuZGUgZGUgbWVuc3VhbGl06XMgKHbpaGljdWxlIGQnb2NjYXNpb24pIiwxKX0pfSk7Ci8qKiAvbS9qcy9uZWJDYWwvbmViRGF0ZUZuLmpzICoqLwp2YXIgX19fZDJjX25lYkRhdGVGbmpzX2Nfb249IjIwMjUtMDUtMjMgMTc6MDQ6MjQiOyd1c2Ugc3RyaWN0Jzt2YXIgX19fZDJjX25lYkRhdGVGbmpzX2Nfb249IjIwMjQtMDEtMzEgMTQ6MzE6NTciOyJ1c2Ugc3RyaWN0IjtfX19kMmNfbmViRGF0ZUZuanNfY19vbj0iMjAyMy0wMS0xMiAxMTozMjoyMyI7InVzZSBzdHJpY3QiO19fX2QyY19uZWJEYXRlRm5qc19jX29uPSIyMDIzLTAxLTEyIDEwOjQyOjE2IjsidXNlIHN0cmljdCI7X19fZDJjX25lYkRhdGVGbmpzX2Nfb249IjIwMjEtMTItMTUgMTI6Mzg6MzkiOyJ1c2Ugc3RyaWN0Ijtjb25zdCBuZWJEYXRlRm49e307CiQoImJvZHkiKS5oYXNDbGFzcygiRlJFTkNIIik\/JC5uZWJMYW5nPXttb250aE5hbWVzOiJKYW52aWVyIEYmZWFjdXRlO3ZyaWVyIE1hcnMgQXZyaWwgTWFpIEp1aW4gSnVpbGxldCBBbyZ1Y2lyYzt0IFNlcHRlbWJyZSBPY3RvYnJlIE5vdmVtYnJlIEQmZWFjdXRlO2NlbWJyZSIuc3BsaXQoIiAiKSxtb250aE5hbWVzU2hvcnQ6IkphbnYuIEYmZWFjdXRlO3ZyLiBNYXJzIEF2ci4gTWFpIEp1aW4gSnVpbC4gQW8mdWNpcmM7dCBTZXB0LiBPY3QuIE5vdi4gRCZlYWN1dGU7Yy4iLnNwbGl0KCIgIiksZGF5TmFtZXM6IkRpbWFuY2hlIEx1bmRpIE1hcmRpIE1lcmNyZWRpIEpldWRpIFZlbmRyZWRpIFNhbWVkaSIuc3BsaXQoIiAiKSxkYXlOYW1lc1Nob3J0OiJEaW0gTHVuIE1hciBNZXIgSmV1IFZlbiBTYW0iLnNwbGl0KCIgIiksZGF5TmFtZXNNaW46IkRpIEx1IE1hIE1lIEplIFZlIFNhIi5zcGxpdCgiICIpLHdlZWtIZWFkZXI6IlNtIixkYXRlRm9ybWF0OiJ5LU0tZCIsZmlyc3REYXk6MSwKaXNSVEw6ITEsc2hvd01vbnRoQWZ0ZXJZZWFyOiExLHllYXJTdWZmaXg6IiIsaW52YWxpZERhdGVGb3JtYXQ6ImludmFsaWRfZGF0ZSJ9OiQubmViTGFuZz17bW9udGhOYW1lczoiSmFudWFyeSBGZWJydWFyeSBNYXJjaCBBcHJpbCBNYXkgSnVuZSBKdWx5IEF1Z3VzdCBTZXB0ZW1iZXIgT2N0b2JlciBOb3ZlbWJlciBEZWNlbWJlciIuc3BsaXQoIiAiKSxtb250aE5hbWVzU2hvcnQ6Ikphbi4gRmViLiBNYXIuIEFwci4gTWF5IEp1bi4gSnVsLiBBdWcuIFNlcHQuIE9jdC4gTm92LiBEZWMuIi5zcGxpdCgiICIpLGRheU5hbWVzOiJTdW5kYXkgTW9uZGF5IFR1ZXNkYXkgV2VkbmVzZGF5IFRodXJzZGF5IEZyaWRheSBTYXR1cmRheSIuc3BsaXQoIiAiKSxkYXlOYW1lc1Nob3J0OiJTdW4gTW9uIFR1ZSBXZWQgVGh1IEZyaSBTYXQiLnNwbGl0KCIgIiksZGF5TmFtZXNNaW46IlN1IE1vIFR1IFdlIFRoIEZyIFNhIi5zcGxpdCgiICIpLHdlZWtIZWFkZXI6IlNtIixkYXRlRm9ybWF0OiJ5LU0tZCIsCmZpcnN0RGF5OjEsaXNSVEw6ITEsc2hvd01vbnRoQWZ0ZXJZZWFyOiExLHllYXJTdWZmaXg6IiIsaW52YWxpZERhdGVGb3JtYXQ6ImludmFsaWRfZGF0ZSJ9O0RhdGUuTFo9ZnVuY3Rpb24oYSl7cmV0dXJuKDA+YXx8OTxhPyIiOiIwIikrYX07bmViRGF0ZUZuLkxaPWZ1bmN0aW9uKGEpe3JldHVybigwPmF8fDk8YT8iIjoiMCIpK2F9O0RhdGUucHJlZmVyQW1lcmljYW5Gb3JtYXQ9ITA7bmViRGF0ZUZuLmNsZWFyVGltZT1mdW5jdGlvbihhKXthIGluc3RhbmNlb2YgRGF0ZSYmKGEuc2V0SG91cnMoMCksYS5zZXRNaW51dGVzKDApLGEuc2V0U2Vjb25kcygwKSxhLnNldE1pbGxpc2Vjb25kcygwKSk7cmV0dXJuIGF9OwpEYXRlLnByb3RvdHlwZS50b015c3FsRm9ybWF0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0RnVsbFllYXIoKSsiLSIrRGF0ZS5MWigxK3RoaXMuZ2V0TW9udGgoKSkrIi0iK0RhdGUuTFoodGhpcy5nZXREYXRlKCkpKyIgIitEYXRlLkxaKHRoaXMuZ2V0SG91cnMoKSkrIjoiK0RhdGUuTFoodGhpcy5nZXRNaW51dGVzKCkpKyI6IitEYXRlLkxaKHRoaXMuZ2V0U2Vjb25kcygpKX07RGF0ZS5wcm90b3R5cGUuaXNMZWFwWWVhcj1mdW5jdGlvbigpe3JldHVybiAyOT09KG5ldyBEYXRlKHRoaXMuZ2V0RnVsbFllYXIoKSwxLDI5KSkuZ2V0RGF0ZSgpfTtEYXRlLnByb3RvdHlwZS5nZXRMYXN0RGF5T2ZNb250aENhbD1mdW5jdGlvbigpe3JldHVybihuZXcgRGF0ZSh0aGlzLmdldEZ1bGxZZWFyKCksdGhpcy5nZXRNb250aCgpKzEsMCkpLmdldERhdGUoKX07RGF0ZS5wcm90b3R5cGUuc2V0RGF5PWZ1bmN0aW9uKGEpe3RoaXMuc2V0RGF0ZShhKTtyZXR1cm4gdGhpc307CkRhdGUucHJvdG90eXBlLnNldE1vbj1mdW5jdGlvbihhKXt0aGlzLnNldE1vbnRoKGEpO3JldHVybiB0aGlzfTtEYXRlLnByb3RvdHlwZS5zZXRZZWFyPWZ1bmN0aW9uKGEpe3RoaXMuc2V0RnVsbFllYXIoYSk7cmV0dXJuIHRoaXN9O0RhdGUucHJvdG90eXBlLmFkZERheT1mdW5jdGlvbihhKXt0aGlzLnNldERhdGUodGhpcy5nZXREYXRlKCkrYSk7cmV0dXJuIHRoaXN9O0RhdGUucHJvdG90eXBlLmFkZE1vbj1mdW5jdGlvbihhKXt0aGlzLnNldE1vbnRoKHRoaXMuZ2V0TW9udGgoKSthKTtyZXR1cm4gdGhpc307RGF0ZS5wcm90b3R5cGUuYWRkWWVhcj1mdW5jdGlvbihhKXt0aGlzLnNldEZ1bGxZZWFyKHRoaXMuZ2V0RnVsbFllYXIoKSthKTtyZXR1cm4gdGhpc307RGF0ZS5wYXJzZURhdGVUaW1lPWZ1bmN0aW9uKGEpe2E9YS5zcGxpdCgvWy0gOl0vKTtyZXR1cm4gbmV3IERhdGUoYVswXSxhWzFdLTEsYVsyXSxhWzNdLGFbNF0sYVs1XSl9OwpuZWJEYXRlRm4ucGFyc2VTdHJpbmc9ZnVuY3Rpb24oYSxlKXtpZigidW5kZWZpbmVkIj09PXR5cGVvZiBlfHxudWxsPT09ZXx8IiI9PT1lKXtlPVsiTS9kL3kiLCJNLWQteSIsIk0uZC55IiwiTS9kIiwiTS1kIl07dmFyIGM9WyJkL00veSIsImQtTS15IiwiZC5NLnkiLCJkL00iLCJkLU0iXTtlPVsieS1NLWQ7TU1NIGQsIHk7TU1NIGQseTt5LU1NTS1kO2QtTU1NLXk7TU1NIGQ7TU1NLWQ7ZC1NTU0iLnNwbGl0KCI7IiksRGF0ZS5wcmVmZXJBbWVyaWNhbkZvcm1hdD9lOmMsRGF0ZS5wcmVmZXJBbWVyaWNhbkZvcm1hdD9jOmVdO2ZvcihjPTA7YzxlLmxlbmd0aDtjKyspZm9yKHZhciBoPWVbY10saz0wO2s8aC5sZW5ndGg7aysrKXt2YXIgbj1uZWJEYXRlRm4ucGFyc2VTdHJpbmcoYSxoW2tdKTtpZihudWxsIT09bilyZXR1cm4gbn1yZXR1cm4gbnVsbH10aGlzLmlzSW50ZWdlcj1mdW5jdGlvbih1KXtmb3IodmFyIHE9MDtxPHUubGVuZ3RoO3ErKylpZigtMT09IjEyMzQ1Njc4OTAiLmluZGV4T2YodS5jaGFyQXQocSkpKXJldHVybiExOwpyZXR1cm4hMH07dGhpcy5nZXRJbnQ9ZnVuY3Rpb24odSxxLHksdyl7Zm9yKDt3Pj15O3ctLSl7dmFyIHg9dS5zdWJzdHJpbmcocSxxK3cpO2lmKHgubGVuZ3RoPHkpYnJlYWs7aWYodGhpcy5pc0ludGVnZXIoeCkpcmV0dXJuIHh9cmV0dXJuIG51bGx9O2ErPSIiO2UrPSIiO2g9Yz0wO3ZhciBtPSIiLGI9IiIsbD0obmV3IERhdGUpLmdldEZ1bGxZZWFyKCksZz0xLGQ9MSxmPTAscj0wLHQ9MCx2PSIiO209W107Zm9yKGI9MDtoPGUubGVuZ3RoOyl7bT1lLmNoYXJBdChoKTtmb3IoYj0iIjtlLmNoYXJBdChoKT09bSYmaDxlLmxlbmd0aDspYis9ZS5jaGFyQXQoaCsrKTtpZigieXl5eSI9PWJ8fCJ5eSI9PWJ8fCJ5Ij09Yil7Inl5eXkiPT1iJiYobj1rPTQpOyJ5eSI9PWImJihuPWs9Mik7InkiPT1iJiYoaz0yLG49NCk7bD10aGlzLmdldEludChhLGMsayxuKTtpZihudWxsPT09bClyZXR1cm4gbnVsbDtjKz1sLmxlbmd0aDsyPT1sLmxlbmd0aCYmKGw9NzA8bD8xOTAwKyhsLTApOjJFMysKKGwtMCkpfWVsc2UgaWYoIk1NTSI9PWJ8fCJOTk4iPT1iKXtnPTA7bT0iTU1NIj09Yj8kLm5lYkxhbmcubW9udGhOYW1lcy5jb25jYXQoJC5uZWJMYW5nLm1vbnRoTmFtZXNTaG9ydCk6JC5uZWJMYW5nLm1vbnRoTmFtZXNTaG9ydDtmb3IoYj0wO2I8bS5sZW5ndGg7YisrKXt2YXIgcD1tW2JdO2lmKGEuc3Vic3RyaW5nKGMsYytwLmxlbmd0aCkudG9Mb3dlckNhc2UoKT09cC50b0xvd2VyQ2FzZSgpKXtnPWIlMTIrMTtjKz1wLmxlbmd0aDticmVha319aWYoMT5nfHwxMjxnKXJldHVybiBudWxsfWVsc2UgaWYoIkVFIj09Ynx8IkUiPT1iKWZvcihtPSJFRSI9PWI\/JC5uZWJMYW5nLmRheU5hbWVzOiQubmViTGFuZy5kYXlOYW1lc1Nob3J0LGI9MDtiPG0ubGVuZ3RoO2IrKyl7aWYocD1tW2JdLGEuc3Vic3RyaW5nKGMsYytwLmxlbmd0aCkudG9Mb3dlckNhc2UoKT09cC50b0xvd2VyQ2FzZSgpKXtjKz1wLmxlbmd0aDticmVha319ZWxzZSBpZigiTU0iPT1ifHwiTSI9PWIpe2c9dGhpcy5nZXRJbnQoYSwKYyxiLmxlbmd0aCwyKTtpZihudWxsPT09Z3x8MT5nfHwxMjxnKXJldHVybiBudWxsO2MrPWcubGVuZ3RofWVsc2UgaWYoImRkIj09Ynx8ImQiPT1iKXtkPXRoaXMuZ2V0SW50KGEsYyxiLmxlbmd0aCwyKTtpZihudWxsPT09ZHx8MT5kfHwzMTxkKXJldHVybiBudWxsO2MrPWQubGVuZ3RofWVsc2UgaWYoImhoIj09Ynx8ImgiPT1iKXtmPXRoaXMuZ2V0SW50KGEsYyxiLmxlbmd0aCwyKTtpZihudWxsPT09Znx8MT5mfHwxMjxmKXJldHVybiBudWxsO2MrPWYubGVuZ3RofWVsc2UgaWYoIkhIIj09Ynx8IkgiPT1iKXtmPXRoaXMuZ2V0SW50KGEsYyxiLmxlbmd0aCwyKTtpZihudWxsPT09Znx8MD5mfHwyMzxmKXJldHVybiBudWxsO2MrPWYubGVuZ3RofWVsc2UgaWYoIktLIj09Ynx8IksiPT1iKXtmPXRoaXMuZ2V0SW50KGEsYyxiLmxlbmd0aCwyKTtpZihudWxsPT09Znx8MD5mfHwxMTxmKXJldHVybiBudWxsO2MrPWYubGVuZ3RoO2YrK31lbHNlIGlmKCJrayI9PWJ8fCJrIj09Yil7Zj10aGlzLmdldEludChhLApjLGIubGVuZ3RoLDIpO2lmKG51bGw9PT1mfHwxPmZ8fDI0PGYpcmV0dXJuIG51bGw7Yys9Zi5sZW5ndGg7Zi0tfWVsc2UgaWYoIm1tIj09Ynx8Im0iPT1iKXtyPXRoaXMuZ2V0SW50KGEsYyxiLmxlbmd0aCwyKTtpZihudWxsPT09cnx8MD5yfHw1OTxyKXJldHVybiBudWxsO2MrPXIubGVuZ3RofWVsc2UgaWYoInNzIj09Ynx8InMiPT1iKXt0PXRoaXMuZ2V0SW50KGEsYyxiLmxlbmd0aCwyKTtpZihudWxsPT09dHx8MD50fHw1OTx0KXJldHVybiBudWxsO2MrPXQubGVuZ3RofWVsc2UgaWYoImEiPT1iKXtpZigiYW0iPT1hLnN1YnN0cmluZyhjLGMrMikudG9Mb3dlckNhc2UoKSl2PSJBTSI7ZWxzZSBpZigicG0iPT1hLnN1YnN0cmluZyhjLGMrMikudG9Mb3dlckNhc2UoKSl2PSJQTSI7ZWxzZSByZXR1cm4gbnVsbDtjKz0yfWVsc2V7aWYoYS5zdWJzdHJpbmcoYyxjK2IubGVuZ3RoKSE9YilyZXR1cm4gbnVsbDtjKz1iLmxlbmd0aH19aWYoYyE9YS5sZW5ndGgpcmV0dXJuIG51bGw7aWYoMj09CmcpaWYoMD09PWwlNCYmMCE9PWwlMTAwfHwwPT09bCU0MDApe2lmKDI5PGQpcmV0dXJuIG51bGx9ZWxzZSBpZigyODxkKXJldHVybiBudWxsO2lmKDMwPGQmJig0PT1nfHw2PT1nfHw5PT1nfHwxMT09ZykpcmV0dXJuIG51bGw7MTI+ZiYmIlBNIj09dj9mPWYtMCsxMjoxMTxmJiYiQU0iPT12JiYoZi09MTIpO3JldHVybiBuZXcgRGF0ZShsLGctMSxkLGYscix0KX07RGF0ZS5pc1ZhbGlkPWZ1bmN0aW9uKGEsZSl7cmV0dXJuIG51bGwhPT1uZWJEYXRlRm4ucGFyc2VTdHJpbmcoYSxlKX07RGF0ZS5wcm90b3R5cGUuZGlmZj1mdW5jdGlvbihhKXtyZXR1cm4gbnVsbD09PWE\/ITE6dGhpcy5nZXRUaW1lKCk9PWEuZ2V0VGltZSgpPzA6dGhpcy5nZXRUaW1lKCk+YS5nZXRUaW1lKCk\/LTE6MX07CkRhdGUucHJvdG90eXBlLmZvcm1hdD1mdW5jdGlvbihhKXthKz0iIjt2YXIgZT0iIixjPTAsaD10aGlzLmdldEZ1bGxZZWFyKCkrIiIsaz10aGlzLmdldE1vbnRoKCkrMSxuPXRoaXMuZ2V0RGF0ZSgpLG09dGhpcy5nZXREYXkoKSxiPXRoaXMuZ2V0SG91cnMoKSxsPXRoaXMuZ2V0TWludXRlcygpLGc9dGhpcy5nZXRTZWNvbmRzKCksZD17fTs0PmgubGVuZ3RoJiYoaD0iIisoK2grMTkwMCkpO2QueT0iIitoO2QueXl5eT1oO2QueXk9aC5zdWJzdHJpbmcoMiw0KTtkLk09aztkLk1NPURhdGUuTFooayk7ZC5NTU09JC5uZWJMYW5nLm1vbnRoTmFtZXNbay0xXTtkLk5OTj0kLm5lYkxhbmcubW9udGhOYW1lc1Nob3J0W2stMV07ZC5kPW47ZC5kZD1EYXRlLkxaKG4pO2QuRT0kLm5lYkxhbmcuZGF5TmFtZXNTaG9ydFttXTtkLkVFPSQubmViTGFuZy5kYXlOYW1lc1ttXTtkLkg9YjtkLkhIPURhdGUuTFooYik7ZC5oPTA9PT1iPzEyOjEyPGI\/Yi0xMjpiO2QuaGg9RGF0ZS5MWihkLmgpO2QuSz0KZC5oLTE7ZC5rPWQuSCsxO2QuS0s9RGF0ZS5MWihkLkspO2Qua2s9RGF0ZS5MWihkLmspO2QuYT0xMTxiPyJQTSI6IkFNIjtkLm09bDtkLm1tPURhdGUuTFoobCk7ZC5zPWc7Zm9yKGQuc3M9RGF0ZS5MWihnKTtjPGEubGVuZ3RoOyl7aD1hLmNoYXJBdChjKTtmb3Ioaz0iIjthLmNoYXJBdChjKT09aCYmYzxhLmxlbmd0aDspays9YS5jaGFyQXQoYysrKTtlPSJ1bmRlZmluZWQiIT10eXBlb2YgZFtrXT9lK2Rba106ZStrfXJldHVybiBlfTsKRGF0ZS5wcm90b3R5cGUuYWRkPWZ1bmN0aW9uKGEsZSl7aWYoInVuZGVmaW5lZCI9PT10eXBlb2YgYXx8bnVsbD09PWF8fCJ1bmRlZmluZWQiPT09dHlwZW9mIGV8fG51bGw9PT1lKXJldHVybiB0aGlzO2U9K2U7aWYoInkiPT1hKXRoaXMuc2V0RnVsbFllYXIodGhpcy5nZXRGdWxsWWVhcigpK2UpO2Vsc2UgaWYoIk0iPT1hKXRoaXMuc2V0TW9udGgodGhpcy5nZXRNb250aCgpK2UpO2Vsc2UgaWYoImQiPT1hKXRoaXMuc2V0RGF0ZSh0aGlzLmdldERhdGUoKStlKTtlbHNlIGlmKCJ3Ij09YSlmb3IoYT0wPGU\/MTotMTswIT09ZTspe2Zvcih0aGlzLmFkZCgiZCIsYSk7MD09PXRoaXMuZ2V0RGF5KCl8fDY9PT10aGlzLmdldERheSgpOyl0aGlzLmFkZCgiZCIsYSk7ZS09YX1lbHNlImgiPT1hP3RoaXMuc2V0SG91cnModGhpcy5nZXRIb3VycygpK2UpOiJtIj09YT90aGlzLnNldE1pbnV0ZXModGhpcy5nZXRNaW51dGVzKCkrZSk6InMiPT1hJiZ0aGlzLnNldFNlY29uZHModGhpcy5nZXRTZWNvbmRzKCkrCmUpO3JldHVybiB0aGlzfTtEYXRlLnByb3RvdHlwZS5jbG9uZT1mdW5jdGlvbigpe3JldHVybiBuZXcgRGF0ZSh0aGlzLmdldFRpbWUoKSl9OwovKiogL20vanMvbmViQ2FsL25lYkNhbC5qcyAqKi8KdmFyIF9fX2QyY19uZWJDYWxqc19jX29uPSIyMDI1LTA1LTIzIDE3OjA0OjIyIjsndXNlIHN0cmljdCc7dmFyIF9fX2QyY19uZWJDYWxqc19jX29uPSIyMDI0LTA0LTE2IDExOjMwOjA3IjsidXNlIHN0cmljdCI7CihmdW5jdGlvbihlKXtlLm5lYkNhbD1mdW5jdGlvbihoLGcpe3ZhciBsPXtzbGlkZUR1cmF0aW9uOjUwMCxmYWRlRHVyYXRpb246MjAwLHRvZ2dsZUR1cmF0aW9uOjIwMCxwcmVmaWxsOiExLGRlZmF1bHREYXRlOnZvaWQgMCxsaW5rV2l0aElucHV0OiEwLGtleU5hdmlnYXRpb246ITAsdGhlbWU6ImRlZmF1bHQiLGRlZmF1bHRWaWV3OiJtb250aCIsc3RhcnRNb25kYXk6ITEsYWx3YXlzU2hvdzohMSxpbmplY3RJbnNpZGVUYXJnZXQ6ITEsZm9ybWF0OiJ5eXl5LU1NLWRkIixhbGlnblg6Im1pZGRsZSIsYWxpZ25ZOiJib3R0b20iLG9mZnNldFg6MjAsb2Zmc2V0WTowLHBvcnRyYWl0OiEwLHBpY2thYmxlOiEwLHRvZ2dsZXI6dm9pZCAwLGRpc2FsbG93VXNlcklucHV0OiExLG1pbkRhdGU6dm9pZCAwLG1heERhdGU6dm9pZCAwLGV4Y2x1ZGVkV2Vla2RheXM6dm9pZCAwLGV4Y2x1ZGVkRGF0ZXM6dm9pZCAwLGNyZWF0ZUhpZGRlbklucHV0OiExLGhpZGRlbklucHV0TmFtZToiZGF0ZSIsaGlkZGVuSW5wdXRGb3JtYXQ6IiV0IiwKb25TZWxlY3Q6ITEsb25WaWV3Q2hhbmdlOiExfSxhPXRoaXM7YS5vcHRpb25zPXt9O2EudGFyZ2V0PWUoaCk7YS5pbml0PWZ1bmN0aW9uKCl7YS5vcHRpb25zPWUuZXh0ZW5kKHt9LGwsZyk7YS50b2RheT1uZWJEYXRlRm4uY2xlYXJUaW1lKG5ldyBEYXRlKTthLnRyYW5zaXRpb25pbmc9ITE7dm9pZCAwIT09YS5vcHRpb25zLmRlZmF1bHREYXRlP2Euc2VsZWN0ZWREYXRlPW5lYkRhdGVGbi5jbGVhclRpbWUobmViRGF0ZUZuLnBhcnNlU3RyaW5nKGEub3B0aW9ucy5kZWZhdWx0RGF0ZSkpOmEub3B0aW9ucy5saW5rV2l0aElucHV0JiZ2b2lkIDAhPT1hLnRhcmdldC52YWwoKSYmMCE9PWEudGFyZ2V0LnZhbCgpJiYoYS5zZWxlY3RlZERhdGU9bmViRGF0ZUZuLmNsZWFyVGltZShuZWJEYXRlRm4ucGFyc2VTdHJpbmcoYS50YXJnZXQudmFsKCkpKSk7aWYodm9pZCAwPT09YS5zZWxlY3RlZERhdGV8fG51bGw9PT1hLnNlbGVjdGVkRGF0ZSlhLnNlbGVjdGVkRGF0ZT1hLnRvZGF5LmNsb25lKCk7CmEuZWxlbWVudD1lKCc8ZGl2IGNsYXNzPSJuZWJDYWwgJythLm9wdGlvbnMudGhlbWUrJyIgc3R5bGU9ImRpc3BsYXk6ICcrKGEub3B0aW9ucy5hbHdheXNTaG93PyJibG9jayI6Im5vbmUiKSsnIj48ZGl2IGNsYXNzPSJjYWwtd3JhcHBlciI+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+Yi5kaWZmKGEub3B0aW9ucy5tYXhEYXRlKXx8dm9pZCAwIT09YS5vcHRpb25zLmV4Y2x1ZGVkRGF0ZXMmJmEub3B0aW9ucy5leGNsdWRlZERhdGVzLmNvbnRhaW5zKGEuZm9ybWF0KGIsIiV0IikpOyl7aWYoMzE9PWQpYz0hYztlbHNlIGlmKDYyPT1kKXtiPWEub3B0aW9ucy5taW5EYXRlLmNsb25lKCk7YnJlYWt9Yz9iLmFkZCgiZCIsMSk6Yi5hZGQoImQiLC0xKTtkKyt9cmV0dXJuIGJ9O2Euc2V0RGF0ZT1mdW5jdGlvbihiLGMpe3ZvaWQgMD09PWMmJihjPSEwKTtiPW5lYkRhdGVGbi5jbGVhclRpbWUoImRhdGUiPT10eXBlb2YgYj9iOm5lYkRhdGVGbi5wYXJzZVN0cmluZyhiKSk7bnVsbCE9PWImJihhLnNlbGVjdGVkRGF0ZT1hLmNvcnJlY3REYXRlKGIpLGEudmlld0RhdGU9YS5zZWxlY3RlZERhdGUuY2xvbmUoKS5zZXREYXkoMSksCmEucmVuZGVyKCksYyYmYS5waWNrKCkpO3JldHVybiBhfTthLmdldERhdGU9ZnVuY3Rpb24oKXtyZXR1cm4gYS5zZWxlY3RlZERhdGV9O2EuaW5pdCgpfTtlLmZuLm5lYkNhbD1mdW5jdGlvbihoLGcpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXtpZih2b2lkIDA9PT1lKHRoaXMpLmRhdGEoIm5lYkNhbCIpKXtpZigidW5kZWZpbmVkIj09dHlwZW9mIGh8fCJvYmplY3QiPT10eXBlb2YgaCl7dmFyIGw9bmV3IGUubmViQ2FsKHRoaXMsaCk7ZSh0aGlzKS5kYXRhKCJuZWJDYWwiLGwpfX1lbHNlIHN3aXRjaChoKXtjYXNlICJjaGFuZ2VWaWV3IjppZigidW5kZWZpbmVkIj09dHlwZW9mIGcpYnJlYWs7ZSh0aGlzKS5kYXRhKCJuZWJDYWwiKS5jaGFuZ2VWaWV3KGcpO2JyZWFrO2Nhc2UgIm1pbkRhdGUiOmlmKCJ1bmRlZmluZWQiPT10eXBlb2YgZylicmVhaztlKHRoaXMpLmRhdGEoIm5lYkNhbCIpLnVwZGF0ZU1pbkRhdGUoZyk7YnJlYWs7Y2FzZSAibWF4RGF0ZSI6aWYoInVuZGVmaW5lZCI9PQp0eXBlb2YgZylicmVhaztlKHRoaXMpLmRhdGEoIm5lYkNhbCIpLnVwZGF0ZU1heERhdGUoZyk7YnJlYWs7Y2FzZSAic2V0RGF0ZSI6aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBnKWJyZWFrO2UodGhpcykuZGF0YSgibmViQ2FsIikuc2V0RGF0ZShnKTticmVhaztjYXNlICJyZXBvc2l0aW9uIjplKHRoaXMpLmRhdGEoIm5lYkNhbCIpLnBvc2l0aW9uKCl9fSl9O2UuZm4uZ2V0Q29vcmRpbmF0ZXM9ZnVuY3Rpb24oaCl7aD1lKHRoaXMpLm9mZnNldCgpO3ZhciBnPWUodGhpcykud2lkdGgoKSxsPWUodGhpcykuaGVpZ2h0KCksYT1lKHdpbmRvdykud2lkdGgoKS1oLmxlZnQtZyxiPWUod2luZG93KS5oZWlnaHQoKS1oLnRvcC1sO3JldHVybnt0b3A6aC50b3AsbGVmdDpoLmxlZnQsd2lkdGg6ZyxoZWlnaHQ6bCxyaWdodDphLGJvdHRvbTpifX19KShqUXVlcnkpOwovKiogL20vanMvdnVlL3Z1ZS5taW4uanMgKiovCi8qIQ0KICogVnVlLmpzIHYyLjYuMTENCiAqIChjKSAyMDE0LTIwMTkgRXZhbiBZb3UNCiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4NCiAqLw0KIWZ1bmN0aW9uKGUsdCl7Im9iamVjdCI9PXR5cGVvZiBleHBvcnRzJiYidW5kZWZpbmVkIiE9dHlwZW9mIG1vZHVsZT9tb2R1bGUuZXhwb3J0cz10KCk6ImZ1bmN0aW9uIj09dHlwZW9mIGRlZmluZSYmZGVmaW5lLmFtZD9kZWZpbmUodCk6KGU9ZXx8c2VsZikuVnVlPXQoKX0odGhpcyxmdW5jdGlvbigpeyJ1c2Ugc3RyaWN0Ijt2YXIgZT1PYmplY3QuZnJlZXplKHt9KTtmdW5jdGlvbiB0KGUpe3JldHVybiBudWxsPT1lfWZ1bmN0aW9uIG4oZSl7cmV0dXJuIG51bGwhPWV9ZnVuY3Rpb24gcihlKXtyZXR1cm4hMD09PWV9ZnVuY3Rpb24gaShlKXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIGV8fCJudW1iZXIiPT10eXBlb2YgZXx8InN5bWJvbCI9PXR5cGVvZiBlfHwiYm9vbGVhbiI9PXR5cGVvZiBlfWZ1bmN0aW9uIG8oZSl7cmV0dXJuIG51bGwhPT1lJiYib2JqZWN0Ij09dHlwZW9mIGV9dmFyIGE9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZztmdW5jdGlvbiBzKGUpe3JldHVybiJbb2JqZWN0IE9iamVjdF0iPT09YS5jYWxsKGUpfWZ1bmN0aW9uIGMoZSl7dmFyIHQ9cGFyc2VGbG9hdChTdHJpbmcoZSkpO3JldHVybiB0Pj0wJiZNYXRoLmZsb29yKHQpPT09dCYmaXNGaW5pdGUoZSl9ZnVuY3Rpb24gdShlKXtyZXR1cm4gbihlKSYmImZ1bmN0aW9uIj09dHlwZW9mIGUudGhlbiYmImZ1bmN0aW9uIj09dHlwZW9mIGUuY2F0Y2h9ZnVuY3Rpb24gbChlKXtyZXR1cm4gbnVsbD09ZT8iIjpBcnJheS5pc0FycmF5KGUpfHxzKGUpJiZlLnRvU3RyaW5nPT09YT9KU09OLnN0cmluZ2lmeShlLG51bGwsMik6U3RyaW5nKGUpfWZ1bmN0aW9uIGYoZSl7dmFyIHQ9cGFyc2VGbG9hdChlKTtyZXR1cm4gaXNOYU4odCk\/ZTp0fWZ1bmN0aW9uIHAoZSx0KXtmb3IodmFyIG49T2JqZWN0LmNyZWF0ZShudWxsKSxyPWUuc3BsaXQoIiwiKSxpPTA7aTxyLmxlbmd0aDtpKyspbltyW2ldXT0hMDtyZXR1cm4gdD9mdW5jdGlvbihlKXtyZXR1cm4gbltlLnRvTG93ZXJDYXNlKCldfTpmdW5jdGlvbihlKXtyZXR1cm4gbltlXX19dmFyIGQ9cCgic2xvdCxjb21wb25lbnQiLCEwKSx2PXAoImtleSxyZWYsc2xvdCxzbG90LXNjb3BlLGlzIik7ZnVuY3Rpb24gaChlLHQpe2lmKGUubGVuZ3RoKXt2YXIgbj1lLmluZGV4T2YodCk7aWYobj4tMSlyZXR1cm4gZS5zcGxpY2UobiwxKX19dmFyIG09T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTtmdW5jdGlvbiB5KGUsdCl7cmV0dXJuIG0uY2FsbChlLHQpfWZ1bmN0aW9uIGcoZSl7dmFyIHQ9T2JqZWN0LmNyZWF0ZShudWxsKTtyZXR1cm4gZnVuY3Rpb24obil7cmV0dXJuIHRbbl18fCh0W25dPWUobikpfX12YXIgXz0vLShcdykvZyxiPWcoZnVuY3Rpb24oZSl7cmV0dXJuIGUucmVwbGFjZShfLGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQ\/dC50b1VwcGVyQ2FzZSgpOiIifSl9KSwkPWcoZnVuY3Rpb24oZSl7cmV0dXJuIGUuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkrZS5zbGljZSgxKX0pLHc9L1xCKFtBLVpdKS9nLEM9ZyhmdW5jdGlvbihlKXtyZXR1cm4gZS5yZXBsYWNlKHcsIi0kMSIpLnRvTG93ZXJDYXNlKCl9KTt2YXIgeD1GdW5jdGlvbi5wcm90b3R5cGUuYmluZD9mdW5jdGlvbihlLHQpe3JldHVybiBlLmJpbmQodCl9OmZ1bmN0aW9uKGUsdCl7ZnVuY3Rpb24gbihuKXt2YXIgcj1hcmd1bWVudHMubGVuZ3RoO3JldHVybiByP3I+MT9lLmFwcGx5KHQsYXJndW1lbnRzKTplLmNhbGwodCxuKTplLmNhbGwodCl9cmV0dXJuIG4uX2xlbmd0aD1lLmxlbmd0aCxufTtmdW5jdGlvbiBrKGUsdCl7dD10fHwwO2Zvcih2YXIgbj1lLmxlbmd0aC10LHI9bmV3IEFycmF5KG4pO24tLTspcltuXT1lW24rdF07cmV0dXJuIHJ9ZnVuY3Rpb24gQShlLHQpe2Zvcih2YXIgbiBpbiB0KWVbbl09dFtuXTtyZXR1cm4gZX1mdW5jdGlvbiBPKGUpe2Zvcih2YXIgdD17fSxuPTA7bjxlLmxlbmd0aDtuKyspZVtuXSYmQSh0LGVbbl0pO3JldHVybiB0fWZ1bmN0aW9uIFMoZSx0LG4pe312YXIgVD1mdW5jdGlvbihlLHQsbil7cmV0dXJuITF9LEU9ZnVuY3Rpb24oZSl7cmV0dXJuIGV9O2Z1bmN0aW9uIE4oZSx0KXtpZihlPT09dClyZXR1cm4hMDt2YXIgbj1vKGUpLHI9byh0KTtpZighbnx8IXIpcmV0dXJuIW4mJiFyJiZTdHJpbmcoZSk9PT1TdHJpbmcodCk7dHJ5e3ZhciBpPUFycmF5LmlzQXJyYXkoZSksYT1BcnJheS5pc0FycmF5KHQpO2lmKGkmJmEpcmV0dXJuIGUubGVuZ3RoPT09dC5sZW5ndGgmJmUuZXZlcnkoZnVuY3Rpb24oZSxuKXtyZXR1cm4gTihlLHRbbl0pfSk7aWYoZSBpbnN0YW5jZW9mIERhdGUmJnQgaW5zdGFuY2VvZiBEYXRlKXJldHVybiBlLmdldFRpbWUoKT09PXQuZ2V0VGltZSgpO2lmKGl8fGEpcmV0dXJuITE7dmFyIHM9T2JqZWN0LmtleXMoZSksYz1PYmplY3Qua2V5cyh0KTtyZXR1cm4gcy5sZW5ndGg9PT1jLmxlbmd0aCYmcy5ldmVyeShmdW5jdGlvbihuKXtyZXR1cm4gTihlW25dLHRbbl0pfSl9Y2F0Y2goZSl7cmV0dXJuITF9fWZ1bmN0aW9uIGooZSx0KXtmb3IodmFyIG49MDtuPGUubGVuZ3RoO24rKylpZihOKGVbbl0sdCkpcmV0dXJuIG47cmV0dXJuLTF9ZnVuY3Rpb24gRChlKXt2YXIgdD0hMTtyZXR1cm4gZnVuY3Rpb24oKXt0fHwodD0hMCxlLmFwcGx5KHRoaXMsYXJndW1lbnRzKSl9fXZhciBMPSJkYXRhLXNlcnZlci1yZW5kZXJlZCIsTT1bImNvbXBvbmVudCIsImRpcmVjdGl2ZSIsImZpbHRlciJdLEk9WyJiZWZvcmVDcmVhdGUiLCJjcmVhdGVkIiwiYmVmb3JlTW91bnQiLCJtb3VudGVkIiwiYmVmb3JlVXBkYXRlIiwidXBkYXRlZCIsImJlZm9yZURlc3Ryb3kiLCJkZXN0cm95ZWQiLCJhY3RpdmF0ZWQiLCJkZWFjdGl2YXRlZCIsImVycm9yQ2FwdHVyZWQiLCJzZXJ2ZXJQcmVmZXRjaCJdLEY9e29wdGlvbk1lcmdlU3RyYXRlZ2llczpPYmplY3QuY3JlYXRlKG51bGwpLHNpbGVudDohMSxwcm9kdWN0aW9uVGlwOiExLGRldnRvb2xzOiExLHBlcmZvcm1hbmNlOiExLGVycm9ySGFuZGxlcjpudWxsLHdhcm5IYW5kbGVyOm51bGwsaWdub3JlZEVsZW1lbnRzOltdLGtleUNvZGVzOk9iamVjdC5jcmVhdGUobnVsbCksaXNSZXNlcnZlZFRhZzpULGlzUmVzZXJ2ZWRBdHRyOlQsaXNVbmtub3duRWxlbWVudDpULGdldFRhZ05hbWVzcGFjZTpTLHBhcnNlUGxhdGZvcm1UYWdOYW1lOkUsbXVzdFVzZVByb3A6VCxhc3luYzohMCxfbGlmZWN5Y2xlSG9va3M6SX0sUD0vYS16QS1aXHUwMEI3XHUwMEMwLVx1MDBENlx1MDBEOC1cdTAwRjZcdTAwRjgtXHUwMzdEXHUwMzdGLVx1MUZGRlx1MjAwQy1cdTIwMERcdTIwM0YtXHUyMDQwXHUyMDcwLVx1MjE4Rlx1MkMwMC1cdTJGRUZcdTMwMDEtXHVEN0ZGXHVGOTAwLVx1RkRDRlx1RkRGMC1cdUZGRkQvO2Z1bmN0aW9uIFIoZSx0LG4scil7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCx7dmFsdWU6bixlbnVtZXJhYmxlOiEhcix3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9KX12YXIgSD1uZXcgUmVnRXhwKCJbXiIrUC5zb3VyY2UrIi4kX1xcZF0iKTt2YXIgQixVPSJfX3Byb3RvX18iaW57fSx6PSJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93LFY9InVuZGVmaW5lZCIhPXR5cGVvZiBXWEVudmlyb25tZW50JiYhIVdYRW52aXJvbm1lbnQucGxhdGZvcm0sSz1WJiZXWEVudmlyb25tZW50LnBsYXRmb3JtLnRvTG93ZXJDYXNlKCksSj16JiZ3aW5kb3cubmF2aWdhdG9yLnVzZXJBZ2VudC50b0xvd2VyQ2FzZSgpLHE9SiYmL21zaWV8dHJpZGVudC8udGVzdChKKSxXPUomJkouaW5kZXhPZigibXNpZSA5LjAiKT4wLFo9SiYmSi5pbmRleE9mKCJlZGdlLyIpPjAsRz0oSiYmSi5pbmRleE9mKCJhbmRyb2lkIiksSiYmL2lwaG9uZXxpcGFkfGlwb2R8aW9zLy50ZXN0KEopfHwiaW9zIj09PUspLFg9KEomJi9jaHJvbWVcL1xkKy8udGVzdChKKSxKJiYvcGhhbnRvbWpzLy50ZXN0KEopLEomJkoubWF0Y2goL2ZpcmVmb3hcLyhcZCspLykpLFk9e30ud2F0Y2gsUT0hMTtpZih6KXRyeXt2YXIgZWU9e307T2JqZWN0LmRlZmluZVByb3BlcnR5KGVlLCJwYXNzaXZlIix7Z2V0OmZ1bmN0aW9uKCl7UT0hMH19KSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigidGVzdC1wYXNzaXZlIixudWxsLGVlKX1jYXRjaChlKXt9dmFyIHRlPWZ1bmN0aW9uKCl7cmV0dXJuIHZvaWQgMD09PUImJihCPSF6JiYhViYmInVuZGVmaW5lZCIhPXR5cGVvZiBnbG9iYWwmJihnbG9iYWwucHJvY2VzcyYmInNlcnZlciI9PT1nbG9iYWwucHJvY2Vzcy5lbnYuVlVFX0VOVikpLEJ9LG5lPXomJndpbmRvdy5fX1ZVRV9ERVZUT09MU19HTE9CQUxfSE9PS19fO2Z1bmN0aW9uIHJlKGUpe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBlJiYvbmF0aXZlIGNvZGUvLnRlc3QoZS50b1N0cmluZygpKX12YXIgaWUsb2U9InVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJnJlKFN5bWJvbCkmJiJ1bmRlZmluZWQiIT10eXBlb2YgUmVmbGVjdCYmcmUoUmVmbGVjdC5vd25LZXlzKTtpZT0idW5kZWZpbmVkIiE9dHlwZW9mIFNldCYmcmUoU2V0KT9TZXQ6ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKCl7dGhpcy5zZXQ9T2JqZWN0LmNyZWF0ZShudWxsKX1yZXR1cm4gZS5wcm90b3R5cGUuaGFzPWZ1bmN0aW9uKGUpe3JldHVybiEwPT09dGhpcy5zZXRbZV19LGUucHJvdG90eXBlLmFkZD1mdW5jdGlvbihlKXt0aGlzLnNldFtlXT0hMH0sZS5wcm90b3R5cGUuY2xlYXI9ZnVuY3Rpb24oKXt0aGlzLnNldD1PYmplY3QuY3JlYXRlKG51bGwpfSxlfSgpO3ZhciBhZT1TLHNlPTAsY2U9ZnVuY3Rpb24oKXt0aGlzLmlkPXNlKyssdGhpcy5zdWJzPVtdfTtjZS5wcm90b3R5cGUuYWRkU3ViPWZ1bmN0aW9uKGUpe3RoaXMuc3Vicy5wdXNoKGUpfSxjZS5wcm90b3R5cGUucmVtb3ZlU3ViPWZ1bmN0aW9uKGUpe2godGhpcy5zdWJzLGUpfSxjZS5wcm90b3R5cGUuZGVwZW5kPWZ1bmN0aW9uKCl7Y2UudGFyZ2V0JiZjZS50YXJnZXQuYWRkRGVwKHRoaXMpfSxjZS5wcm90b3R5cGUubm90aWZ5PWZ1bmN0aW9uKCl7Zm9yKHZhciBlPXRoaXMuc3Vicy5zbGljZSgpLHQ9MCxuPWUubGVuZ3RoO3Q8bjt0KyspZVt0XS51cGRhdGUoKX0sY2UudGFyZ2V0PW51bGw7dmFyIHVlPVtdO2Z1bmN0aW9uIGxlKGUpe3VlLnB1c2goZSksY2UudGFyZ2V0PWV9ZnVuY3Rpb24gZmUoKXt1ZS5wb3AoKSxjZS50YXJnZXQ9dWVbdWUubGVuZ3RoLTFdfXZhciBwZT1mdW5jdGlvbihlLHQsbixyLGksbyxhLHMpe3RoaXMudGFnPWUsdGhpcy5kYXRhPXQsdGhpcy5jaGlsZHJlbj1uLHRoaXMudGV4dD1yLHRoaXMuZWxtPWksdGhpcy5ucz12b2lkIDAsdGhpcy5jb250ZXh0PW8sdGhpcy5mbkNvbnRleHQ9dm9pZCAwLHRoaXMuZm5PcHRpb25zPXZvaWQgMCx0aGlzLmZuU2NvcGVJZD12b2lkIDAsdGhpcy5rZXk9dCYmdC5rZXksdGhpcy5jb21wb25lbnRPcHRpb25zPWEsdGhpcy5jb21wb25lbnRJbnN0YW5jZT12b2lkIDAsdGhpcy5wYXJlbnQ9dm9pZCAwLHRoaXMucmF3PSExLHRoaXMuaXNTdGF0aWM9ITEsdGhpcy5pc1Jvb3RJbnNlcnQ9ITAsdGhpcy5pc0NvbW1lbnQ9ITEsdGhpcy5pc0Nsb25lZD0hMSx0aGlzLmlzT25jZT0hMSx0aGlzLmFzeW5jRmFjdG9yeT1zLHRoaXMuYXN5bmNNZXRhPXZvaWQgMCx0aGlzLmlzQXN5bmNQbGFjZWhvbGRlcj0hMX0sZGU9e2NoaWxkOntjb25maWd1cmFibGU6ITB9fTtkZS5jaGlsZC5nZXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jb21wb25lbnRJbnN0YW5jZX0sT2JqZWN0LmRlZmluZVByb3BlcnRpZXMocGUucHJvdG90eXBlLGRlKTt2YXIgdmU9ZnVuY3Rpb24oZSl7dm9pZCAwPT09ZSYmKGU9IiIpO3ZhciB0PW5ldyBwZTtyZXR1cm4gdC50ZXh0PWUsdC5pc0NvbW1lbnQ9ITAsdH07ZnVuY3Rpb24gaGUoZSl7cmV0dXJuIG5ldyBwZSh2b2lkIDAsdm9pZCAwLHZvaWQgMCxTdHJpbmcoZSkpfWZ1bmN0aW9uIG1lKGUpe3ZhciB0PW5ldyBwZShlLnRhZyxlLmRhdGEsZS5jaGlsZHJlbiYmZS5jaGlsZHJlbi5zbGljZSgpLGUudGV4dCxlLmVsbSxlLmNvbnRleHQsZS5jb21wb25lbnRPcHRpb25zLGUuYXN5bmNGYWN0b3J5KTtyZXR1cm4gdC5ucz1lLm5zLHQuaXNTdGF0aWM9ZS5pc1N0YXRpYyx0LmtleT1lLmtleSx0LmlzQ29tbWVudD1lLmlzQ29tbWVudCx0LmZuQ29udGV4dD1lLmZuQ29udGV4dCx0LmZuT3B0aW9ucz1lLmZuT3B0aW9ucyx0LmZuU2NvcGVJZD1lLmZuU2NvcGVJZCx0LmFzeW5jTWV0YT1lLmFzeW5jTWV0YSx0LmlzQ2xvbmVkPSEwLHR9dmFyIHllPUFycmF5LnByb3RvdHlwZSxnZT1PYmplY3QuY3JlYXRlKHllKTtbInB1c2giLCJwb3AiLCJzaGlmdCIsInVuc2hpZnQiLCJzcGxpY2UiLCJzb3J0IiwicmV2ZXJzZSJdLmZvckVhY2goZnVuY3Rpb24oZSl7dmFyIHQ9eWVbZV07UihnZSxlLGZ1bmN0aW9uKCl7Zm9yKHZhciBuPVtdLHI9YXJndW1lbnRzLmxlbmd0aDtyLS07KW5bcl09YXJndW1lbnRzW3JdO3ZhciBpLG89dC5hcHBseSh0aGlzLG4pLGE9dGhpcy5fX29iX187c3dpdGNoKGUpe2Nhc2UicHVzaCI6Y2FzZSJ1bnNoaWZ0IjppPW47YnJlYWs7Y2FzZSJzcGxpY2UiOmk9bi5zbGljZSgyKX1yZXR1cm4gaSYmYS5vYnNlcnZlQXJyYXkoaSksYS5kZXAubm90aWZ5KCksb30pfSk7dmFyIF9lPU9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKGdlKSxiZT0hMDtmdW5jdGlvbiAkZShlKXtiZT1lfXZhciB3ZT1mdW5jdGlvbihlKXt2YXIgdDt0aGlzLnZhbHVlPWUsdGhpcy5kZXA9bmV3IGNlLHRoaXMudm1Db3VudD0wLFIoZSwiX19vYl9fIix0aGlzKSxBcnJheS5pc0FycmF5KGUpPyhVPyh0PWdlLGUuX19wcm90b19fPXQpOmZ1bmN0aW9uKGUsdCxuKXtmb3IodmFyIHI9MCxpPW4ubGVuZ3RoO3I8aTtyKyspe3ZhciBvPW5bcl07UihlLG8sdFtvXSl9fShlLGdlLF9lKSx0aGlzLm9ic2VydmVBcnJheShlKSk6dGhpcy53YWxrKGUpfTtmdW5jdGlvbiBDZShlLHQpe3ZhciBuO2lmKG8oZSkmJiEoZSBpbnN0YW5jZW9mIHBlKSlyZXR1cm4geShlLCJfX29iX18iKSYmZS5fX29iX18gaW5zdGFuY2VvZiB3ZT9uPWUuX19vYl9fOmJlJiYhdGUoKSYmKEFycmF5LmlzQXJyYXkoZSl8fHMoZSkpJiZPYmplY3QuaXNFeHRlbnNpYmxlKGUpJiYhZS5faXNWdWUmJihuPW5ldyB3ZShlKSksdCYmbiYmbi52bUNvdW50Kyssbn1mdW5jdGlvbiB4ZShlLHQsbixyLGkpe3ZhciBvPW5ldyBjZSxhPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZSx0KTtpZighYXx8ITEhPT1hLmNvbmZpZ3VyYWJsZSl7dmFyIHM9YSYmYS5nZXQsYz1hJiZhLnNldDtzJiYhY3x8MiE9PWFyZ3VtZW50cy5sZW5ndGh8fChuPWVbdF0pO3ZhciB1PSFpJiZDZShuKTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXt2YXIgdD1zP3MuY2FsbChlKTpuO3JldHVybiBjZS50YXJnZXQmJihvLmRlcGVuZCgpLHUmJih1LmRlcC5kZXBlbmQoKSxBcnJheS5pc0FycmF5KHQpJiZmdW5jdGlvbiBlKHQpe2Zvcih2YXIgbj12b2lkIDAscj0wLGk9dC5sZW5ndGg7cjxpO3IrKykobj10W3JdKSYmbi5fX29iX18mJm4uX19vYl9fLmRlcC5kZXBlbmQoKSxBcnJheS5pc0FycmF5KG4pJiZlKG4pfSh0KSkpLHR9LHNldDpmdW5jdGlvbih0KXt2YXIgcj1zP3MuY2FsbChlKTpuO3Q9PT1yfHx0IT10JiZyIT1yfHxzJiYhY3x8KGM\/Yy5jYWxsKGUsdCk6bj10LHU9IWkmJkNlKHQpLG8ubm90aWZ5KCkpfX0pfX1mdW5jdGlvbiBrZShlLHQsbil7aWYoQXJyYXkuaXNBcnJheShlKSYmYyh0KSlyZXR1cm4gZS5sZW5ndGg9TWF0aC5tYXgoZS5sZW5ndGgsdCksZS5zcGxpY2UodCwxLG4pLG47aWYodCBpbiBlJiYhKHQgaW4gT2JqZWN0LnByb3RvdHlwZSkpcmV0dXJuIGVbdF09bixuO3ZhciByPWUuX19vYl9fO3JldHVybiBlLl9pc1Z1ZXx8ciYmci52bUNvdW50P246cj8oeGUoci52YWx1ZSx0LG4pLHIuZGVwLm5vdGlmeSgpLG4pOihlW3RdPW4sbil9ZnVuY3Rpb24gQWUoZSx0KXtpZihBcnJheS5pc0FycmF5KGUpJiZjKHQpKWUuc3BsaWNlKHQsMSk7ZWxzZXt2YXIgbj1lLl9fb2JfXztlLl9pc1Z1ZXx8biYmbi52bUNvdW50fHx5KGUsdCkmJihkZWxldGUgZVt0XSxuJiZuLmRlcC5ub3RpZnkoKSl9fXdlLnByb3RvdHlwZS53YWxrPWZ1bmN0aW9uKGUpe2Zvcih2YXIgdD1PYmplY3Qua2V5cyhlKSxuPTA7bjx0Lmxlbmd0aDtuKyspeGUoZSx0W25dKX0sd2UucHJvdG90eXBlLm9ic2VydmVBcnJheT1mdW5jdGlvbihlKXtmb3IodmFyIHQ9MCxuPWUubGVuZ3RoO3Q8bjt0KyspQ2UoZVt0XSl9O3ZhciBPZT1GLm9wdGlvbk1lcmdlU3RyYXRlZ2llcztmdW5jdGlvbiBTZShlLHQpe2lmKCF0KXJldHVybiBlO2Zvcih2YXIgbixyLGksbz1vZT9SZWZsZWN0Lm93bktleXModCk6T2JqZWN0LmtleXModCksYT0wO2E8by5sZW5ndGg7YSsrKSJfX29iX18iIT09KG49b1thXSkmJihyPWVbbl0saT10W25dLHkoZSxuKT9yIT09aSYmcyhyKSYmcyhpKSYmU2UocixpKTprZShlLG4saSkpO3JldHVybiBlfWZ1bmN0aW9uIFRlKGUsdCxuKXtyZXR1cm4gbj9mdW5jdGlvbigpe3ZhciByPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3QuY2FsbChuLG4pOnQsaT0iZnVuY3Rpb24iPT10eXBlb2YgZT9lLmNhbGwobixuKTplO3JldHVybiByP1NlKHIsaSk6aX06dD9lP2Z1bmN0aW9uKCl7cmV0dXJuIFNlKCJmdW5jdGlvbiI9PXR5cGVvZiB0P3QuY2FsbCh0aGlzLHRoaXMpOnQsImZ1bmN0aW9uIj09dHlwZW9mIGU\/ZS5jYWxsKHRoaXMsdGhpcyk6ZSl9OnQ6ZX1mdW5jdGlvbiBFZShlLHQpe3ZhciBuPXQ\/ZT9lLmNvbmNhdCh0KTpBcnJheS5pc0FycmF5KHQpP3Q6W3RdOmU7cmV0dXJuIG4\/ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PVtdLG49MDtuPGUubGVuZ3RoO24rKyktMT09PXQuaW5kZXhPZihlW25dKSYmdC5wdXNoKGVbbl0pO3JldHVybiB0fShuKTpufWZ1bmN0aW9uIE5lKGUsdCxuLHIpe3ZhciBpPU9iamVjdC5jcmVhdGUoZXx8bnVsbCk7cmV0dXJuIHQ\/QShpLHQpOml9T2UuZGF0YT1mdW5jdGlvbihlLHQsbil7cmV0dXJuIG4\/VGUoZSx0LG4pOnQmJiJmdW5jdGlvbiIhPXR5cGVvZiB0P2U6VGUoZSx0KX0sSS5mb3JFYWNoKGZ1bmN0aW9uKGUpe09lW2VdPUVlfSksTS5mb3JFYWNoKGZ1bmN0aW9uKGUpe09lW2UrInMiXT1OZX0pLE9lLndhdGNoPWZ1bmN0aW9uKGUsdCxuLHIpe2lmKGU9PT1ZJiYoZT12b2lkIDApLHQ9PT1ZJiYodD12b2lkIDApLCF0KXJldHVybiBPYmplY3QuY3JlYXRlKGV8fG51bGwpO2lmKCFlKXJldHVybiB0O3ZhciBpPXt9O2Zvcih2YXIgbyBpbiBBKGksZSksdCl7dmFyIGE9aVtvXSxzPXRbb107YSYmIUFycmF5LmlzQXJyYXkoYSkmJihhPVthXSksaVtvXT1hP2EuY29uY2F0KHMpOkFycmF5LmlzQXJyYXkocyk\/czpbc119cmV0dXJuIGl9LE9lLnByb3BzPU9lLm1ldGhvZHM9T2UuaW5qZWN0PU9lLmNvbXB1dGVkPWZ1bmN0aW9uKGUsdCxuLHIpe2lmKCFlKXJldHVybiB0O3ZhciBpPU9iamVjdC5jcmVhdGUobnVsbCk7cmV0dXJuIEEoaSxlKSx0JiZBKGksdCksaX0sT2UucHJvdmlkZT1UZTt2YXIgamU9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdm9pZCAwPT09dD9lOnR9O2Z1bmN0aW9uIERlKGUsdCxuKXtpZigiZnVuY3Rpb24iPT10eXBlb2YgdCYmKHQ9dC5vcHRpb25zKSxmdW5jdGlvbihlLHQpe3ZhciBuPWUucHJvcHM7aWYobil7dmFyIHIsaSxvPXt9O2lmKEFycmF5LmlzQXJyYXkobikpZm9yKHI9bi5sZW5ndGg7ci0tOykic3RyaW5nIj09dHlwZW9mKGk9bltyXSkmJihvW2IoaSldPXt0eXBlOm51bGx9KTtlbHNlIGlmKHMobikpZm9yKHZhciBhIGluIG4paT1uW2FdLG9bYihhKV09cyhpKT9pOnt0eXBlOml9O2UucHJvcHM9b319KHQpLGZ1bmN0aW9uKGUsdCl7dmFyIG49ZS5pbmplY3Q7aWYobil7dmFyIHI9ZS5pbmplY3Q9e307aWYoQXJyYXkuaXNBcnJheShuKSlmb3IodmFyIGk9MDtpPG4ubGVuZ3RoO2krKylyW25baV1dPXtmcm9tOm5baV19O2Vsc2UgaWYocyhuKSlmb3IodmFyIG8gaW4gbil7dmFyIGE9bltvXTtyW29dPXMoYSk\/QSh7ZnJvbTpvfSxhKTp7ZnJvbTphfX19fSh0KSxmdW5jdGlvbihlKXt2YXIgdD1lLmRpcmVjdGl2ZXM7aWYodClmb3IodmFyIG4gaW4gdCl7dmFyIHI9dFtuXTsiZnVuY3Rpb24iPT10eXBlb2YgciYmKHRbbl09e2JpbmQ6cix1cGRhdGU6cn0pfX0odCksIXQuX2Jhc2UmJih0LmV4dGVuZHMmJihlPURlKGUsdC5leHRlbmRzLG4pKSx0Lm1peGlucykpZm9yKHZhciByPTAsaT10Lm1peGlucy5sZW5ndGg7cjxpO3IrKyllPURlKGUsdC5taXhpbnNbcl0sbik7dmFyIG8sYT17fTtmb3IobyBpbiBlKWMobyk7Zm9yKG8gaW4gdCl5KGUsbyl8fGMobyk7ZnVuY3Rpb24gYyhyKXt2YXIgaT1PZVtyXXx8amU7YVtyXT1pKGVbcl0sdFtyXSxuLHIpfXJldHVybiBhfWZ1bmN0aW9uIExlKGUsdCxuLHIpe2lmKCJzdHJpbmciPT10eXBlb2Ygbil7dmFyIGk9ZVt0XTtpZih5KGksbikpcmV0dXJuIGlbbl07dmFyIG89YihuKTtpZih5KGksbykpcmV0dXJuIGlbb107dmFyIGE9JChvKTtyZXR1cm4geShpLGEpP2lbYV06aVtuXXx8aVtvXXx8aVthXX19ZnVuY3Rpb24gTWUoZSx0LG4scil7dmFyIGk9dFtlXSxvPSF5KG4sZSksYT1uW2VdLHM9UGUoQm9vbGVhbixpLnR5cGUpO2lmKHM+LTEpaWYobyYmIXkoaSwiZGVmYXVsdCIpKWE9ITE7ZWxzZSBpZigiIj09PWF8fGE9PT1DKGUpKXt2YXIgYz1QZShTdHJpbmcsaS50eXBlKTsoYzwwfHxzPGMpJiYoYT0hMCl9aWYodm9pZCAwPT09YSl7YT1mdW5jdGlvbihlLHQsbil7aWYoIXkodCwiZGVmYXVsdCIpKXJldHVybjt2YXIgcj10LmRlZmF1bHQ7aWYoZSYmZS4kb3B0aW9ucy5wcm9wc0RhdGEmJnZvaWQgMD09PWUuJG9wdGlvbnMucHJvcHNEYXRhW25dJiZ2b2lkIDAhPT1lLl9wcm9wc1tuXSlyZXR1cm4gZS5fcHJvcHNbbl07cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIHImJiJGdW5jdGlvbiIhPT1JZSh0LnR5cGUpP3IuY2FsbChlKTpyfShyLGksZSk7dmFyIHU9YmU7JGUoITApLENlKGEpLCRlKHUpfXJldHVybiBhfWZ1bmN0aW9uIEllKGUpe3ZhciB0PWUmJmUudG9TdHJpbmcoKS5tYXRjaCgvXlxzKmZ1bmN0aW9uIChcdyspLyk7cmV0dXJuIHQ\/dFsxXToiIn1mdW5jdGlvbiBGZShlLHQpe3JldHVybiBJZShlKT09PUllKHQpfWZ1bmN0aW9uIFBlKGUsdCl7aWYoIUFycmF5LmlzQXJyYXkodCkpcmV0dXJuIEZlKHQsZSk\/MDotMTtmb3IodmFyIG49MCxyPXQubGVuZ3RoO248cjtuKyspaWYoRmUodFtuXSxlKSlyZXR1cm4gbjtyZXR1cm4tMX1mdW5jdGlvbiBSZShlLHQsbil7bGUoKTt0cnl7aWYodClmb3IodmFyIHI9dDtyPXIuJHBhcmVudDspe3ZhciBpPXIuJG9wdGlvbnMuZXJyb3JDYXB0dXJlZDtpZihpKWZvcih2YXIgbz0wO288aS5sZW5ndGg7bysrKXRyeXtpZighMT09PWlbb10uY2FsbChyLGUsdCxuKSlyZXR1cm59Y2F0Y2goZSl7QmUoZSxyLCJlcnJvckNhcHR1cmVkIGhvb2siKX19QmUoZSx0LG4pfWZpbmFsbHl7ZmUoKX19ZnVuY3Rpb24gSGUoZSx0LG4scixpKXt2YXIgbzt0cnl7KG89bj9lLmFwcGx5KHQsbik6ZS5jYWxsKHQpKSYmIW8uX2lzVnVlJiZ1KG8pJiYhby5faGFuZGxlZCYmKG8uY2F0Y2goZnVuY3Rpb24oZSl7cmV0dXJuIFJlKGUscixpKyIgKFByb21pc2UvYXN5bmMpIil9KSxvLl9oYW5kbGVkPSEwKX1jYXRjaChlKXtSZShlLHIsaSl9cmV0dXJuIG99ZnVuY3Rpb24gQmUoZSx0LG4pe2lmKEYuZXJyb3JIYW5kbGVyKXRyeXtyZXR1cm4gRi5lcnJvckhhbmRsZXIuY2FsbChudWxsLGUsdCxuKX1jYXRjaCh0KXt0IT09ZSYmVWUodCxudWxsLCJjb25maWcuZXJyb3JIYW5kbGVyIil9VWUoZSx0LG4pfWZ1bmN0aW9uIFVlKGUsdCxuKXtpZigheiYmIVZ8fCJ1bmRlZmluZWQiPT10eXBlb2YgY29uc29sZSl0aHJvdyBlO2NvbnNvbGUuZXJyb3IoZSl9dmFyIHplLFZlPSExLEtlPVtdLEplPSExO2Z1bmN0aW9uIHFlKCl7SmU9ITE7dmFyIGU9S2Uuc2xpY2UoMCk7S2UubGVuZ3RoPTA7Zm9yKHZhciB0PTA7dDxlLmxlbmd0aDt0KyspZVt0XSgpfWlmKCJ1bmRlZmluZWQiIT10eXBlb2YgUHJvbWlzZSYmcmUoUHJvbWlzZSkpe3ZhciBXZT1Qcm9taXNlLnJlc29sdmUoKTt6ZT1mdW5jdGlvbigpe1dlLnRoZW4ocWUpLEcmJnNldFRpbWVvdXQoUyl9LFZlPSEwfWVsc2UgaWYocXx8InVuZGVmaW5lZCI9PXR5cGVvZiBNdXRhdGlvbk9ic2VydmVyfHwhcmUoTXV0YXRpb25PYnNlcnZlcikmJiJbb2JqZWN0IE11dGF0aW9uT2JzZXJ2ZXJDb25zdHJ1Y3Rvcl0iIT09TXV0YXRpb25PYnNlcnZlci50b1N0cmluZygpKXplPSJ1bmRlZmluZWQiIT10eXBlb2Ygc2V0SW1tZWRpYXRlJiZyZShzZXRJbW1lZGlhdGUpP2Z1bmN0aW9uKCl7c2V0SW1tZWRpYXRlKHFlKX06ZnVuY3Rpb24oKXtzZXRUaW1lb3V0KHFlLDApfTtlbHNle3ZhciBaZT0xLEdlPW5ldyBNdXRhdGlvbk9ic2VydmVyKHFlKSxYZT1kb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShTdHJpbmcoWmUpKTtHZS5vYnNlcnZlKFhlLHtjaGFyYWN0ZXJEYXRhOiEwfSksemU9ZnVuY3Rpb24oKXtaZT0oWmUrMSklMixYZS5kYXRhPVN0cmluZyhaZSl9LFZlPSEwfWZ1bmN0aW9uIFllKGUsdCl7dmFyIG47aWYoS2UucHVzaChmdW5jdGlvbigpe2lmKGUpdHJ5e2UuY2FsbCh0KX1jYXRjaChlKXtSZShlLHQsIm5leHRUaWNrIil9ZWxzZSBuJiZuKHQpfSksSmV8fChKZT0hMCx6ZSgpKSwhZSYmInVuZGVmaW5lZCIhPXR5cGVvZiBQcm9taXNlKXJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihlKXtuPWV9KX12YXIgUWU9bmV3IGllO2Z1bmN0aW9uIGV0KGUpeyFmdW5jdGlvbiBlKHQsbil7dmFyIHIsaTt2YXIgYT1BcnJheS5pc0FycmF5KHQpO2lmKCFhJiYhbyh0KXx8T2JqZWN0LmlzRnJvemVuKHQpfHx0IGluc3RhbmNlb2YgcGUpcmV0dXJuO2lmKHQuX19vYl9fKXt2YXIgcz10Ll9fb2JfXy5kZXAuaWQ7aWYobi5oYXMocykpcmV0dXJuO24uYWRkKHMpfWlmKGEpZm9yKHI9dC5sZW5ndGg7ci0tOyllKHRbcl0sbik7ZWxzZSBmb3IoaT1PYmplY3Qua2V5cyh0KSxyPWkubGVuZ3RoO3ItLTspZSh0W2lbcl1dLG4pfShlLFFlKSxRZS5jbGVhcigpfXZhciB0dD1nKGZ1bmN0aW9uKGUpe3ZhciB0PSImIj09PWUuY2hhckF0KDApLG49In4iPT09KGU9dD9lLnNsaWNlKDEpOmUpLmNoYXJBdCgwKSxyPSIhIj09PShlPW4\/ZS5zbGljZSgxKTplKS5jaGFyQXQoMCk7cmV0dXJue25hbWU6ZT1yP2Uuc2xpY2UoMSk6ZSxvbmNlOm4sY2FwdHVyZTpyLHBhc3NpdmU6dH19KTtmdW5jdGlvbiBudChlLHQpe2Z1bmN0aW9uIG4oKXt2YXIgZT1hcmd1bWVudHMscj1uLmZucztpZighQXJyYXkuaXNBcnJheShyKSlyZXR1cm4gSGUocixudWxsLGFyZ3VtZW50cyx0LCJ2LW9uIGhhbmRsZXIiKTtmb3IodmFyIGk9ci5zbGljZSgpLG89MDtvPGkubGVuZ3RoO28rKylIZShpW29dLG51bGwsZSx0LCJ2LW9uIGhhbmRsZXIiKX1yZXR1cm4gbi5mbnM9ZSxufWZ1bmN0aW9uIHJ0KGUsbixpLG8sYSxzKXt2YXIgYyx1LGwsZjtmb3IoYyBpbiBlKXU9ZVtjXSxsPW5bY10sZj10dChjKSx0KHUpfHwodChsKT8odCh1LmZucykmJih1PWVbY109bnQodSxzKSkscihmLm9uY2UpJiYodT1lW2NdPWEoZi5uYW1lLHUsZi5jYXB0dXJlKSksaShmLm5hbWUsdSxmLmNhcHR1cmUsZi5wYXNzaXZlLGYucGFyYW1zKSk6dSE9PWwmJihsLmZucz11LGVbY109bCkpO2ZvcihjIGluIG4pdChlW2NdKSYmbygoZj10dChjKSkubmFtZSxuW2NdLGYuY2FwdHVyZSl9ZnVuY3Rpb24gaXQoZSxpLG8pe3ZhciBhO2UgaW5zdGFuY2VvZiBwZSYmKGU9ZS5kYXRhLmhvb2t8fChlLmRhdGEuaG9vaz17fSkpO3ZhciBzPWVbaV07ZnVuY3Rpb24gYygpe28uYXBwbHkodGhpcyxhcmd1bWVudHMpLGgoYS5mbnMsYyl9dChzKT9hPW50KFtjXSk6bihzLmZucykmJnIocy5tZXJnZWQpPyhhPXMpLmZucy5wdXNoKGMpOmE9bnQoW3MsY10pLGEubWVyZ2VkPSEwLGVbaV09YX1mdW5jdGlvbiBvdChlLHQscixpLG8pe2lmKG4odCkpe2lmKHkodCxyKSlyZXR1cm4gZVtyXT10W3JdLG98fGRlbGV0ZSB0W3JdLCEwO2lmKHkodCxpKSlyZXR1cm4gZVtyXT10W2ldLG98fGRlbGV0ZSB0W2ldLCEwfXJldHVybiExfWZ1bmN0aW9uIGF0KGUpe3JldHVybiBpKGUpP1toZShlKV06QXJyYXkuaXNBcnJheShlKT9mdW5jdGlvbiBlKG8sYSl7dmFyIHM9W107dmFyIGMsdSxsLGY7Zm9yKGM9MDtjPG8ubGVuZ3RoO2MrKyl0KHU9b1tjXSl8fCJib29sZWFuIj09dHlwZW9mIHV8fChsPXMubGVuZ3RoLTEsZj1zW2xdLEFycmF5LmlzQXJyYXkodSk\/dS5sZW5ndGg+MCYmKHN0KCh1PWUodSwoYXx8IiIpKyJfIitjKSlbMF0pJiZzdChmKSYmKHNbbF09aGUoZi50ZXh0K3VbMF0udGV4dCksdS5zaGlmdCgpKSxzLnB1c2guYXBwbHkocyx1KSk6aSh1KT9zdChmKT9zW2xdPWhlKGYudGV4dCt1KToiIiE9PXUmJnMucHVzaChoZSh1KSk6c3QodSkmJnN0KGYpP3NbbF09aGUoZi50ZXh0K3UudGV4dCk6KHIoby5faXNWTGlzdCkmJm4odS50YWcpJiZ0KHUua2V5KSYmbihhKSYmKHUua2V5PSJfX3ZsaXN0IithKyJfIitjKyJfXyIpLHMucHVzaCh1KSkpO3JldHVybiBzfShlKTp2b2lkIDB9ZnVuY3Rpb24gc3QoZSl7cmV0dXJuIG4oZSkmJm4oZS50ZXh0KSYmITE9PT1lLmlzQ29tbWVudH1mdW5jdGlvbiBjdChlLHQpe2lmKGUpe2Zvcih2YXIgbj1PYmplY3QuY3JlYXRlKG51bGwpLHI9b2U\/UmVmbGVjdC5vd25LZXlzKGUpOk9iamVjdC5rZXlzKGUpLGk9MDtpPHIubGVuZ3RoO2krKyl7dmFyIG89cltpXTtpZigiX19vYl9fIiE9PW8pe2Zvcih2YXIgYT1lW29dLmZyb20scz10O3M7KXtpZihzLl9wcm92aWRlZCYmeShzLl9wcm92aWRlZCxhKSl7bltvXT1zLl9wcm92aWRlZFthXTticmVha31zPXMuJHBhcmVudH1pZighcyYmImRlZmF1bHQiaW4gZVtvXSl7dmFyIGM9ZVtvXS5kZWZhdWx0O25bb109ImZ1bmN0aW9uIj09dHlwZW9mIGM\/Yy5jYWxsKHQpOmN9fX1yZXR1cm4gbn19ZnVuY3Rpb24gdXQoZSx0KXtpZighZXx8IWUubGVuZ3RoKXJldHVybnt9O2Zvcih2YXIgbj17fSxyPTAsaT1lLmxlbmd0aDtyPGk7cisrKXt2YXIgbz1lW3JdLGE9by5kYXRhO2lmKGEmJmEuYXR0cnMmJmEuYXR0cnMuc2xvdCYmZGVsZXRlIGEuYXR0cnMuc2xvdCxvLmNvbnRleHQhPT10JiZvLmZuQ29udGV4dCE9PXR8fCFhfHxudWxsPT1hLnNsb3QpKG4uZGVmYXVsdHx8KG4uZGVmYXVsdD1bXSkpLnB1c2gobyk7ZWxzZXt2YXIgcz1hLnNsb3QsYz1uW3NdfHwobltzXT1bXSk7InRlbXBsYXRlIj09PW8udGFnP2MucHVzaC5hcHBseShjLG8uY2hpbGRyZW58fFtdKTpjLnB1c2gobyl9fWZvcih2YXIgdSBpbiBuKW5bdV0uZXZlcnkobHQpJiZkZWxldGUgblt1XTtyZXR1cm4gbn1mdW5jdGlvbiBsdChlKXtyZXR1cm4gZS5pc0NvbW1lbnQmJiFlLmFzeW5jRmFjdG9yeXx8IiAiPT09ZS50ZXh0fWZ1bmN0aW9uIGZ0KHQsbixyKXt2YXIgaSxvPU9iamVjdC5rZXlzKG4pLmxlbmd0aD4wLGE9dD8hIXQuJHN0YWJsZTohbyxzPXQmJnQuJGtleTtpZih0KXtpZih0Ll9ub3JtYWxpemVkKXJldHVybiB0Ll9ub3JtYWxpemVkO2lmKGEmJnImJnIhPT1lJiZzPT09ci4ka2V5JiYhbyYmIXIuJGhhc05vcm1hbClyZXR1cm4gcjtmb3IodmFyIGMgaW4gaT17fSx0KXRbY10mJiIkIiE9PWNbMF0mJihpW2NdPXB0KG4sYyx0W2NdKSl9ZWxzZSBpPXt9O2Zvcih2YXIgdSBpbiBuKXUgaW4gaXx8KGlbdV09ZHQobix1KSk7cmV0dXJuIHQmJk9iamVjdC5pc0V4dGVuc2libGUodCkmJih0Ll9ub3JtYWxpemVkPWkpLFIoaSwiJHN0YWJsZSIsYSksUihpLCIka2V5IixzKSxSKGksIiRoYXNOb3JtYWwiLG8pLGl9ZnVuY3Rpb24gcHQoZSx0LG4pe3ZhciByPWZ1bmN0aW9uKCl7dmFyIGU9YXJndW1lbnRzLmxlbmd0aD9uLmFwcGx5KG51bGwsYXJndW1lbnRzKTpuKHt9KTtyZXR1cm4oZT1lJiYib2JqZWN0Ij09dHlwZW9mIGUmJiFBcnJheS5pc0FycmF5KGUpP1tlXTphdChlKSkmJigwPT09ZS5sZW5ndGh8fDE9PT1lLmxlbmd0aCYmZVswXS5pc0NvbW1lbnQpP3ZvaWQgMDplfTtyZXR1cm4gbi5wcm94eSYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCx7Z2V0OnIsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxyfWZ1bmN0aW9uIGR0KGUsdCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGVbdF19fWZ1bmN0aW9uIHZ0KGUsdCl7dmFyIHIsaSxhLHMsYztpZihBcnJheS5pc0FycmF5KGUpfHwic3RyaW5nIj09dHlwZW9mIGUpZm9yKHI9bmV3IEFycmF5KGUubGVuZ3RoKSxpPTAsYT1lLmxlbmd0aDtpPGE7aSsrKXJbaV09dChlW2ldLGkpO2Vsc2UgaWYoIm51bWJlciI9PXR5cGVvZiBlKWZvcihyPW5ldyBBcnJheShlKSxpPTA7aTxlO2krKylyW2ldPXQoaSsxLGkpO2Vsc2UgaWYobyhlKSlpZihvZSYmZVtTeW1ib2wuaXRlcmF0b3JdKXtyPVtdO2Zvcih2YXIgdT1lW1N5bWJvbC5pdGVyYXRvcl0oKSxsPXUubmV4dCgpOyFsLmRvbmU7KXIucHVzaCh0KGwudmFsdWUsci5sZW5ndGgpKSxsPXUubmV4dCgpfWVsc2UgZm9yKHM9T2JqZWN0LmtleXMoZSkscj1uZXcgQXJyYXkocy5sZW5ndGgpLGk9MCxhPXMubGVuZ3RoO2k8YTtpKyspYz1zW2ldLHJbaV09dChlW2NdLGMsaSk7cmV0dXJuIG4ocil8fChyPVtdKSxyLl9pc1ZMaXN0PSEwLHJ9ZnVuY3Rpb24gaHQoZSx0LG4scil7dmFyIGksbz10aGlzLiRzY29wZWRTbG90c1tlXTtvPyhuPW58fHt9LHImJihuPUEoQSh7fSxyKSxuKSksaT1vKG4pfHx0KTppPXRoaXMuJHNsb3RzW2VdfHx0O3ZhciBhPW4mJm4uc2xvdDtyZXR1cm4gYT90aGlzLiRjcmVhdGVFbGVtZW50KCJ0ZW1wbGF0ZSIse3Nsb3Q6YX0saSk6aX1mdW5jdGlvbiBtdChlKXtyZXR1cm4gTGUodGhpcy4kb3B0aW9ucywiZmlsdGVycyIsZSl8fEV9ZnVuY3Rpb24geXQoZSx0KXtyZXR1cm4gQXJyYXkuaXNBcnJheShlKT8tMT09PWUuaW5kZXhPZih0KTplIT09dH1mdW5jdGlvbiBndChlLHQsbixyLGkpe3ZhciBvPUYua2V5Q29kZXNbdF18fG47cmV0dXJuIGkmJnImJiFGLmtleUNvZGVzW3RdP3l0KGkscik6bz95dChvLGUpOnI\/QyhyKSE9PXQ6dm9pZCAwfWZ1bmN0aW9uIF90KGUsdCxuLHIsaSl7aWYobilpZihvKG4pKXt2YXIgYTtBcnJheS5pc0FycmF5KG4pJiYobj1PKG4pKTt2YXIgcz1mdW5jdGlvbihvKXtpZigiY2xhc3MiPT09b3x8InN0eWxlIj09PW98fHYobykpYT1lO2Vsc2V7dmFyIHM9ZS5hdHRycyYmZS5hdHRycy50eXBlO2E9cnx8Ri5tdXN0VXNlUHJvcCh0LHMsbyk\/ZS5kb21Qcm9wc3x8KGUuZG9tUHJvcHM9e30pOmUuYXR0cnN8fChlLmF0dHJzPXt9KX12YXIgYz1iKG8pLHU9QyhvKTtjIGluIGF8fHUgaW4gYXx8KGFbb109bltvXSxpJiYoKGUub258fChlLm9uPXt9KSlbInVwZGF0ZToiK29dPWZ1bmN0aW9uKGUpe25bb109ZX0pKX07Zm9yKHZhciBjIGluIG4pcyhjKX1lbHNlO3JldHVybiBlfWZ1bmN0aW9uIGJ0KGUsdCl7dmFyIG49dGhpcy5fc3RhdGljVHJlZXN8fCh0aGlzLl9zdGF0aWNUcmVlcz1bXSkscj1uW2VdO3JldHVybiByJiYhdD9yOih3dChyPW5bZV09dGhpcy4kb3B0aW9ucy5zdGF0aWNSZW5kZXJGbnNbZV0uY2FsbCh0aGlzLl9yZW5kZXJQcm94eSxudWxsLHRoaXMpLCJfX3N0YXRpY19fIitlLCExKSxyKX1mdW5jdGlvbiAkdChlLHQsbil7cmV0dXJuIHd0KGUsIl9fb25jZV9fIit0KyhuPyJfIituOiIiKSwhMCksZX1mdW5jdGlvbiB3dChlLHQsbil7aWYoQXJyYXkuaXNBcnJheShlKSlmb3IodmFyIHI9MDtyPGUubGVuZ3RoO3IrKyllW3JdJiYic3RyaW5nIiE9dHlwZW9mIGVbcl0mJkN0KGVbcl0sdCsiXyIrcixuKTtlbHNlIEN0KGUsdCxuKX1mdW5jdGlvbiBDdChlLHQsbil7ZS5pc1N0YXRpYz0hMCxlLmtleT10LGUuaXNPbmNlPW59ZnVuY3Rpb24geHQoZSx0KXtpZih0KWlmKHModCkpe3ZhciBuPWUub249ZS5vbj9BKHt9LGUub24pOnt9O2Zvcih2YXIgciBpbiB0KXt2YXIgaT1uW3JdLG89dFtyXTtuW3JdPWk\/W10uY29uY2F0KGksbyk6b319ZWxzZTtyZXR1cm4gZX1mdW5jdGlvbiBrdChlLHQsbixyKXt0PXR8fHskc3RhYmxlOiFufTtmb3IodmFyIGk9MDtpPGUubGVuZ3RoO2krKyl7dmFyIG89ZVtpXTtBcnJheS5pc0FycmF5KG8pP2t0KG8sdCxuKTpvJiYoby5wcm94eSYmKG8uZm4ucHJveHk9ITApLHRbby5rZXldPW8uZm4pfXJldHVybiByJiYodC4ka2V5PXIpLHR9ZnVuY3Rpb24gQXQoZSx0KXtmb3IodmFyIG49MDtuPHQubGVuZ3RoO24rPTIpe3ZhciByPXRbbl07InN0cmluZyI9PXR5cGVvZiByJiZyJiYoZVt0W25dXT10W24rMV0pfXJldHVybiBlfWZ1bmN0aW9uIE90KGUsdCl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiBlP3QrZTplfWZ1bmN0aW9uIFN0KGUpe2UuX289JHQsZS5fbj1mLGUuX3M9bCxlLl9sPXZ0LGUuX3Q9aHQsZS5fcT1OLGUuX2k9aixlLl9tPWJ0LGUuX2Y9bXQsZS5faz1ndCxlLl9iPV90LGUuX3Y9aGUsZS5fZT12ZSxlLl91PWt0LGUuX2c9eHQsZS5fZD1BdCxlLl9wPU90fWZ1bmN0aW9uIFR0KHQsbixpLG8sYSl7dmFyIHMsYz10aGlzLHU9YS5vcHRpb25zO3kobywiX3VpZCIpPyhzPU9iamVjdC5jcmVhdGUobykpLl9vcmlnaW5hbD1vOihzPW8sbz1vLl9vcmlnaW5hbCk7dmFyIGw9cih1Ll9jb21waWxlZCksZj0hbDt0aGlzLmRhdGE9dCx0aGlzLnByb3BzPW4sdGhpcy5jaGlsZHJlbj1pLHRoaXMucGFyZW50PW8sdGhpcy5saXN0ZW5lcnM9dC5vbnx8ZSx0aGlzLmluamVjdGlvbnM9Y3QodS5pbmplY3QsbyksdGhpcy5zbG90cz1mdW5jdGlvbigpe3JldHVybiBjLiRzbG90c3x8ZnQodC5zY29wZWRTbG90cyxjLiRzbG90cz11dChpLG8pKSxjLiRzbG90c30sT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsInNjb3BlZFNsb3RzIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gZnQodC5zY29wZWRTbG90cyx0aGlzLnNsb3RzKCkpfX0pLGwmJih0aGlzLiRvcHRpb25zPXUsdGhpcy4kc2xvdHM9dGhpcy5zbG90cygpLHRoaXMuJHNjb3BlZFNsb3RzPWZ0KHQuc2NvcGVkU2xvdHMsdGhpcy4kc2xvdHMpKSx1Ll9zY29wZUlkP3RoaXMuX2M9ZnVuY3Rpb24oZSx0LG4scil7dmFyIGk9UHQocyxlLHQsbixyLGYpO3JldHVybiBpJiYhQXJyYXkuaXNBcnJheShpKSYmKGkuZm5TY29wZUlkPXUuX3Njb3BlSWQsaS5mbkNvbnRleHQ9byksaX06dGhpcy5fYz1mdW5jdGlvbihlLHQsbixyKXtyZXR1cm4gUHQocyxlLHQsbixyLGYpfX1mdW5jdGlvbiBFdChlLHQsbixyLGkpe3ZhciBvPW1lKGUpO3JldHVybiBvLmZuQ29udGV4dD1uLG8uZm5PcHRpb25zPXIsdC5zbG90JiYoKG8uZGF0YXx8KG8uZGF0YT17fSkpLnNsb3Q9dC5zbG90KSxvfWZ1bmN0aW9uIE50KGUsdCl7Zm9yKHZhciBuIGluIHQpZVtiKG4pXT10W25dfVN0KFR0LnByb3RvdHlwZSk7dmFyIGp0PXtpbml0OmZ1bmN0aW9uKGUsdCl7aWYoZS5jb21wb25lbnRJbnN0YW5jZSYmIWUuY29tcG9uZW50SW5zdGFuY2UuX2lzRGVzdHJveWVkJiZlLmRhdGEua2VlcEFsaXZlKXt2YXIgcj1lO2p0LnByZXBhdGNoKHIscil9ZWxzZXsoZS5jb21wb25lbnRJbnN0YW5jZT1mdW5jdGlvbihlLHQpe3ZhciByPXtfaXNDb21wb25lbnQ6ITAsX3BhcmVudFZub2RlOmUscGFyZW50OnR9LGk9ZS5kYXRhLmlubGluZVRlbXBsYXRlO24oaSkmJihyLnJlbmRlcj1pLnJlbmRlcixyLnN0YXRpY1JlbmRlckZucz1pLnN0YXRpY1JlbmRlckZucyk7cmV0dXJuIG5ldyBlLmNvbXBvbmVudE9wdGlvbnMuQ3RvcihyKX0oZSxXdCkpLiRtb3VudCh0P2UuZWxtOnZvaWQgMCx0KX19LHByZXBhdGNoOmZ1bmN0aW9uKHQsbil7dmFyIHI9bi5jb21wb25lbnRPcHRpb25zOyFmdW5jdGlvbih0LG4scixpLG8pe3ZhciBhPWkuZGF0YS5zY29wZWRTbG90cyxzPXQuJHNjb3BlZFNsb3RzLGM9ISEoYSYmIWEuJHN0YWJsZXx8cyE9PWUmJiFzLiRzdGFibGV8fGEmJnQuJHNjb3BlZFNsb3RzLiRrZXkhPT1hLiRrZXkpLHU9ISEob3x8dC4kb3B0aW9ucy5fcmVuZGVyQ2hpbGRyZW58fGMpO3QuJG9wdGlvbnMuX3BhcmVudFZub2RlPWksdC4kdm5vZGU9aSx0Ll92bm9kZSYmKHQuX3Zub2RlLnBhcmVudD1pKTtpZih0LiRvcHRpb25zLl9yZW5kZXJDaGlsZHJlbj1vLHQuJGF0dHJzPWkuZGF0YS5hdHRyc3x8ZSx0LiRsaXN0ZW5lcnM9cnx8ZSxuJiZ0LiRvcHRpb25zLnByb3BzKXskZSghMSk7Zm9yKHZhciBsPXQuX3Byb3BzLGY9dC4kb3B0aW9ucy5fcHJvcEtleXN8fFtdLHA9MDtwPGYubGVuZ3RoO3ArKyl7dmFyIGQ9ZltwXSx2PXQuJG9wdGlvbnMucHJvcHM7bFtkXT1NZShkLHYsbix0KX0kZSghMCksdC4kb3B0aW9ucy5wcm9wc0RhdGE9bn1yPXJ8fGU7dmFyIGg9dC4kb3B0aW9ucy5fcGFyZW50TGlzdGVuZXJzO3QuJG9wdGlvbnMuX3BhcmVudExpc3RlbmVycz1yLHF0KHQscixoKSx1JiYodC4kc2xvdHM9dXQobyxpLmNvbnRleHQpLHQuJGZvcmNlVXBkYXRlKCkpfShuLmNvbXBvbmVudEluc3RhbmNlPXQuY29tcG9uZW50SW5zdGFuY2Usci5wcm9wc0RhdGEsci5saXN0ZW5lcnMsbixyLmNoaWxkcmVuKX0saW5zZXJ0OmZ1bmN0aW9uKGUpe3ZhciB0LG49ZS5jb250ZXh0LHI9ZS5jb21wb25lbnRJbnN0YW5jZTtyLl9pc01vdW50ZWR8fChyLl9pc01vdW50ZWQ9ITAsWXQociwibW91bnRlZCIpKSxlLmRhdGEua2VlcEFsaXZlJiYobi5faXNNb3VudGVkPygodD1yKS5faW5hY3RpdmU9ITEsZW4ucHVzaCh0KSk6WHQociwhMCkpfSxkZXN0cm95OmZ1bmN0aW9uKGUpe3ZhciB0PWUuY29tcG9uZW50SW5zdGFuY2U7dC5faXNEZXN0cm95ZWR8fChlLmRhdGEua2VlcEFsaXZlP2Z1bmN0aW9uIGUodCxuKXtpZihuJiYodC5fZGlyZWN0SW5hY3RpdmU9ITAsR3QodCkpKXJldHVybjtpZighdC5faW5hY3RpdmUpe3QuX2luYWN0aXZlPSEwO2Zvcih2YXIgcj0wO3I8dC4kY2hpbGRyZW4ubGVuZ3RoO3IrKyllKHQuJGNoaWxkcmVuW3JdKTtZdCh0LCJkZWFjdGl2YXRlZCIpfX0odCwhMCk6dC4kZGVzdHJveSgpKX19LER0PU9iamVjdC5rZXlzKGp0KTtmdW5jdGlvbiBMdChpLGEscyxjLGwpe2lmKCF0KGkpKXt2YXIgZj1zLiRvcHRpb25zLl9iYXNlO2lmKG8oaSkmJihpPWYuZXh0ZW5kKGkpKSwiZnVuY3Rpb24iPT10eXBlb2YgaSl7dmFyIHA7aWYodChpLmNpZCkmJnZvaWQgMD09PShpPWZ1bmN0aW9uKGUsaSl7aWYocihlLmVycm9yKSYmbihlLmVycm9yQ29tcCkpcmV0dXJuIGUuZXJyb3JDb21wO2lmKG4oZS5yZXNvbHZlZCkpcmV0dXJuIGUucmVzb2x2ZWQ7dmFyIGE9SHQ7YSYmbihlLm93bmVycykmJi0xPT09ZS5vd25lcnMuaW5kZXhPZihhKSYmZS5vd25lcnMucHVzaChhKTtpZihyKGUubG9hZGluZykmJm4oZS5sb2FkaW5nQ29tcCkpcmV0dXJuIGUubG9hZGluZ0NvbXA7aWYoYSYmIW4oZS5vd25lcnMpKXt2YXIgcz1lLm93bmVycz1bYV0sYz0hMCxsPW51bGwsZj1udWxsO2EuJG9uKCJob29rOmRlc3Ryb3llZCIsZnVuY3Rpb24oKXtyZXR1cm4gaChzLGEpfSk7dmFyIHA9ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PTAsbj1zLmxlbmd0aDt0PG47dCsrKXNbdF0uJGZvcmNlVXBkYXRlKCk7ZSYmKHMubGVuZ3RoPTAsbnVsbCE9PWwmJihjbGVhclRpbWVvdXQobCksbD1udWxsKSxudWxsIT09ZiYmKGNsZWFyVGltZW91dChmKSxmPW51bGwpKX0sZD1EKGZ1bmN0aW9uKHQpe2UucmVzb2x2ZWQ9QnQodCxpKSxjP3MubGVuZ3RoPTA6cCghMCl9KSx2PUQoZnVuY3Rpb24odCl7bihlLmVycm9yQ29tcCkmJihlLmVycm9yPSEwLHAoITApKX0pLG09ZShkLHYpO3JldHVybiBvKG0pJiYodShtKT90KGUucmVzb2x2ZWQpJiZtLnRoZW4oZCx2KTp1KG0uY29tcG9uZW50KSYmKG0uY29tcG9uZW50LnRoZW4oZCx2KSxuKG0uZXJyb3IpJiYoZS5lcnJvckNvbXA9QnQobS5lcnJvcixpKSksbihtLmxvYWRpbmcpJiYoZS5sb2FkaW5nQ29tcD1CdChtLmxvYWRpbmcsaSksMD09PW0uZGVsYXk\/ZS5sb2FkaW5nPSEwOmw9c2V0VGltZW91dChmdW5jdGlvbigpe2w9bnVsbCx0KGUucmVzb2x2ZWQpJiZ0KGUuZXJyb3IpJiYoZS5sb2FkaW5nPSEwLHAoITEpKX0sbS5kZWxheXx8MjAwKSksbihtLnRpbWVvdXQpJiYoZj1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Zj1udWxsLHQoZS5yZXNvbHZlZCkmJnYobnVsbCl9LG0udGltZW91dCkpKSksYz0hMSxlLmxvYWRpbmc\/ZS5sb2FkaW5nQ29tcDplLnJlc29sdmVkfX0ocD1pLGYpKSlyZXR1cm4gZnVuY3Rpb24oZSx0LG4scixpKXt2YXIgbz12ZSgpO3JldHVybiBvLmFzeW5jRmFjdG9yeT1lLG8uYXN5bmNNZXRhPXtkYXRhOnQsY29udGV4dDpuLGNoaWxkcmVuOnIsdGFnOml9LG99KHAsYSxzLGMsbCk7YT1hfHx7fSwkbihpKSxuKGEubW9kZWwpJiZmdW5jdGlvbihlLHQpe3ZhciByPWUubW9kZWwmJmUubW9kZWwucHJvcHx8InZhbHVlIixpPWUubW9kZWwmJmUubW9kZWwuZXZlbnR8fCJpbnB1dCI7KHQuYXR0cnN8fCh0LmF0dHJzPXt9KSlbcl09dC5tb2RlbC52YWx1ZTt2YXIgbz10Lm9ufHwodC5vbj17fSksYT1vW2ldLHM9dC5tb2RlbC5jYWxsYmFjaztuKGEpPyhBcnJheS5pc0FycmF5KGEpPy0xPT09YS5pbmRleE9mKHMpOmEhPT1zKSYmKG9baV09W3NdLmNvbmNhdChhKSk6b1tpXT1zfShpLm9wdGlvbnMsYSk7dmFyIGQ9ZnVuY3Rpb24oZSxyLGkpe3ZhciBvPXIub3B0aW9ucy5wcm9wcztpZighdChvKSl7dmFyIGE9e30scz1lLmF0dHJzLGM9ZS5wcm9wcztpZihuKHMpfHxuKGMpKWZvcih2YXIgdSBpbiBvKXt2YXIgbD1DKHUpO290KGEsYyx1LGwsITApfHxvdChhLHMsdSxsLCExKX1yZXR1cm4gYX19KGEsaSk7aWYocihpLm9wdGlvbnMuZnVuY3Rpb25hbCkpcmV0dXJuIGZ1bmN0aW9uKHQscixpLG8sYSl7dmFyIHM9dC5vcHRpb25zLGM9e30sdT1zLnByb3BzO2lmKG4odSkpZm9yKHZhciBsIGluIHUpY1tsXT1NZShsLHUscnx8ZSk7ZWxzZSBuKGkuYXR0cnMpJiZOdChjLGkuYXR0cnMpLG4oaS5wcm9wcykmJk50KGMsaS5wcm9wcyk7dmFyIGY9bmV3IFR0KGksYyxhLG8sdCkscD1zLnJlbmRlci5jYWxsKG51bGwsZi5fYyxmKTtpZihwIGluc3RhbmNlb2YgcGUpcmV0dXJuIEV0KHAsaSxmLnBhcmVudCxzKTtpZihBcnJheS5pc0FycmF5KHApKXtmb3IodmFyIGQ9YXQocCl8fFtdLHY9bmV3IEFycmF5KGQubGVuZ3RoKSxoPTA7aDxkLmxlbmd0aDtoKyspdltoXT1FdChkW2hdLGksZi5wYXJlbnQscyk7cmV0dXJuIHZ9fShpLGQsYSxzLGMpO3ZhciB2PWEub247aWYoYS5vbj1hLm5hdGl2ZU9uLHIoaS5vcHRpb25zLmFic3RyYWN0KSl7dmFyIG09YS5zbG90O2E9e30sbSYmKGEuc2xvdD1tKX0hZnVuY3Rpb24oZSl7Zm9yKHZhciB0PWUuaG9va3x8KGUuaG9vaz17fSksbj0wO248RHQubGVuZ3RoO24rKyl7dmFyIHI9RHRbbl0saT10W3JdLG89anRbcl07aT09PW98fGkmJmkuX21lcmdlZHx8KHRbcl09aT9NdChvLGkpOm8pfX0oYSk7dmFyIHk9aS5vcHRpb25zLm5hbWV8fGw7cmV0dXJuIG5ldyBwZSgidnVlLWNvbXBvbmVudC0iK2kuY2lkKyh5PyItIit5OiIiKSxhLHZvaWQgMCx2b2lkIDAsdm9pZCAwLHMse0N0b3I6aSxwcm9wc0RhdGE6ZCxsaXN0ZW5lcnM6dix0YWc6bCxjaGlsZHJlbjpjfSxwKX19fWZ1bmN0aW9uIE10KGUsdCl7dmFyIG49ZnVuY3Rpb24obixyKXtlKG4sciksdChuLHIpfTtyZXR1cm4gbi5fbWVyZ2VkPSEwLG59dmFyIEl0PTEsRnQ9MjtmdW5jdGlvbiBQdChlLGEscyxjLHUsbCl7cmV0dXJuKEFycmF5LmlzQXJyYXkocyl8fGkocykpJiYodT1jLGM9cyxzPXZvaWQgMCkscihsKSYmKHU9RnQpLGZ1bmN0aW9uKGUsaSxhLHMsYyl7aWYobihhKSYmbihhLl9fb2JfXykpcmV0dXJuIHZlKCk7bihhKSYmbihhLmlzKSYmKGk9YS5pcyk7aWYoIWkpcmV0dXJuIHZlKCk7QXJyYXkuaXNBcnJheShzKSYmImZ1bmN0aW9uIj09dHlwZW9mIHNbMF0mJigoYT1hfHx7fSkuc2NvcGVkU2xvdHM9e2RlZmF1bHQ6c1swXX0scy5sZW5ndGg9MCk7Yz09PUZ0P3M9YXQocyk6Yz09PUl0JiYocz1mdW5jdGlvbihlKXtmb3IodmFyIHQ9MDt0PGUubGVuZ3RoO3QrKylpZihBcnJheS5pc0FycmF5KGVbdF0pKXJldHVybiBBcnJheS5wcm90b3R5cGUuY29uY2F0LmFwcGx5KFtdLGUpO3JldHVybiBlfShzKSk7dmFyIHUsbDtpZigic3RyaW5nIj09dHlwZW9mIGkpe3ZhciBmO2w9ZS4kdm5vZGUmJmUuJHZub2RlLm5zfHxGLmdldFRhZ05hbWVzcGFjZShpKSx1PUYuaXNSZXNlcnZlZFRhZyhpKT9uZXcgcGUoRi5wYXJzZVBsYXRmb3JtVGFnTmFtZShpKSxhLHMsdm9pZCAwLHZvaWQgMCxlKTphJiZhLnByZXx8IW4oZj1MZShlLiRvcHRpb25zLCJjb21wb25lbnRzIixpKSk\/bmV3IHBlKGksYSxzLHZvaWQgMCx2b2lkIDAsZSk6THQoZixhLGUscyxpKX1lbHNlIHU9THQoaSxhLGUscyk7cmV0dXJuIEFycmF5LmlzQXJyYXkodSk\/dTpuKHUpPyhuKGwpJiZmdW5jdGlvbiBlKGksbyxhKXtpLm5zPW87ImZvcmVpZ25PYmplY3QiPT09aS50YWcmJihvPXZvaWQgMCxhPSEwKTtpZihuKGkuY2hpbGRyZW4pKWZvcih2YXIgcz0wLGM9aS5jaGlsZHJlbi5sZW5ndGg7czxjO3MrKyl7dmFyIHU9aS5jaGlsZHJlbltzXTtuKHUudGFnKSYmKHQodS5ucyl8fHIoYSkmJiJzdmciIT09dS50YWcpJiZlKHUsbyxhKX19KHUsbCksbihhKSYmZnVuY3Rpb24oZSl7byhlLnN0eWxlKSYmZXQoZS5zdHlsZSk7byhlLmNsYXNzKSYmZXQoZS5jbGFzcyl9KGEpLHUpOnZlKCl9KGUsYSxzLGMsdSl9dmFyIFJ0LEh0PW51bGw7ZnVuY3Rpb24gQnQoZSx0KXtyZXR1cm4oZS5fX2VzTW9kdWxlfHxvZSYmIk1vZHVsZSI9PT1lW1N5bWJvbC50b1N0cmluZ1RhZ10pJiYoZT1lLmRlZmF1bHQpLG8oZSk\/dC5leHRlbmQoZSk6ZX1mdW5jdGlvbiBVdChlKXtyZXR1cm4gZS5pc0NvbW1lbnQmJmUuYXN5bmNGYWN0b3J5fWZ1bmN0aW9uIHp0KGUpe2lmKEFycmF5LmlzQXJyYXkoZSkpZm9yKHZhciB0PTA7dDxlLmxlbmd0aDt0Kyspe3ZhciByPWVbdF07aWYobihyKSYmKG4oci5jb21wb25lbnRPcHRpb25zKXx8VXQocikpKXJldHVybiByfX1mdW5jdGlvbiBWdChlLHQpe1J0LiRvbihlLHQpfWZ1bmN0aW9uIEt0KGUsdCl7UnQuJG9mZihlLHQpfWZ1bmN0aW9uIEp0KGUsdCl7dmFyIG49UnQ7cmV0dXJuIGZ1bmN0aW9uIHIoKXtudWxsIT09dC5hcHBseShudWxsLGFyZ3VtZW50cykmJm4uJG9mZihlLHIpfX1mdW5jdGlvbiBxdChlLHQsbil7UnQ9ZSxydCh0LG58fHt9LFZ0LEt0LEp0LGUpLFJ0PXZvaWQgMH12YXIgV3Q9bnVsbDtmdW5jdGlvbiBadChlKXt2YXIgdD1XdDtyZXR1cm4gV3Q9ZSxmdW5jdGlvbigpe1d0PXR9fWZ1bmN0aW9uIEd0KGUpe2Zvcig7ZSYmKGU9ZS4kcGFyZW50KTspaWYoZS5faW5hY3RpdmUpcmV0dXJuITA7cmV0dXJuITF9ZnVuY3Rpb24gWHQoZSx0KXtpZih0KXtpZihlLl9kaXJlY3RJbmFjdGl2ZT0hMSxHdChlKSlyZXR1cm59ZWxzZSBpZihlLl9kaXJlY3RJbmFjdGl2ZSlyZXR1cm47aWYoZS5faW5hY3RpdmV8fG51bGw9PT1lLl9pbmFjdGl2ZSl7ZS5faW5hY3RpdmU9ITE7Zm9yKHZhciBuPTA7bjxlLiRjaGlsZHJlbi5sZW5ndGg7bisrKVh0KGUuJGNoaWxkcmVuW25dKTtZdChlLCJhY3RpdmF0ZWQiKX19ZnVuY3Rpb24gWXQoZSx0KXtsZSgpO3ZhciBuPWUuJG9wdGlvbnNbdF0scj10KyIgaG9vayI7aWYobilmb3IodmFyIGk9MCxvPW4ubGVuZ3RoO2k8bztpKyspSGUobltpXSxlLG51bGwsZSxyKTtlLl9oYXNIb29rRXZlbnQmJmUuJGVtaXQoImhvb2s6Iit0KSxmZSgpfXZhciBRdD1bXSxlbj1bXSx0bj17fSxubj0hMSxybj0hMSxvbj0wO3ZhciBhbj0wLHNuPURhdGUubm93O2lmKHomJiFxKXt2YXIgY249d2luZG93LnBlcmZvcm1hbmNlO2NuJiYiZnVuY3Rpb24iPT10eXBlb2YgY24ubm93JiZzbigpPmRvY3VtZW50LmNyZWF0ZUV2ZW50KCJFdmVudCIpLnRpbWVTdGFtcCYmKHNuPWZ1bmN0aW9uKCl7cmV0dXJuIGNuLm5vdygpfSl9ZnVuY3Rpb24gdW4oKXt2YXIgZSx0O2Zvcihhbj1zbigpLHJuPSEwLFF0LnNvcnQoZnVuY3Rpb24oZSx0KXtyZXR1cm4gZS5pZC10LmlkfSksb249MDtvbjxRdC5sZW5ndGg7b24rKykoZT1RdFtvbl0pLmJlZm9yZSYmZS5iZWZvcmUoKSx0PWUuaWQsdG5bdF09bnVsbCxlLnJ1bigpO3ZhciBuPWVuLnNsaWNlKCkscj1RdC5zbGljZSgpO29uPVF0Lmxlbmd0aD1lbi5sZW5ndGg9MCx0bj17fSxubj1ybj0hMSxmdW5jdGlvbihlKXtmb3IodmFyIHQ9MDt0PGUubGVuZ3RoO3QrKyllW3RdLl9pbmFjdGl2ZT0hMCxYdChlW3RdLCEwKX0obiksZnVuY3Rpb24oZSl7dmFyIHQ9ZS5sZW5ndGg7Zm9yKDt0LS07KXt2YXIgbj1lW3RdLHI9bi52bTtyLl93YXRjaGVyPT09biYmci5faXNNb3VudGVkJiYhci5faXNEZXN0cm95ZWQmJll0KHIsInVwZGF0ZWQiKX19KHIpLG5lJiZGLmRldnRvb2xzJiZuZS5lbWl0KCJmbHVzaCIpfXZhciBsbj0wLGZuPWZ1bmN0aW9uKGUsdCxuLHIsaSl7dGhpcy52bT1lLGkmJihlLl93YXRjaGVyPXRoaXMpLGUuX3dhdGNoZXJzLnB1c2godGhpcykscj8odGhpcy5kZWVwPSEhci5kZWVwLHRoaXMudXNlcj0hIXIudXNlcix0aGlzLmxhenk9ISFyLmxhenksdGhpcy5zeW5jPSEhci5zeW5jLHRoaXMuYmVmb3JlPXIuYmVmb3JlKTp0aGlzLmRlZXA9dGhpcy51c2VyPXRoaXMubGF6eT10aGlzLnN5bmM9ITEsdGhpcy5jYj1uLHRoaXMuaWQ9Kytsbix0aGlzLmFjdGl2ZT0hMCx0aGlzLmRpcnR5PXRoaXMubGF6eSx0aGlzLmRlcHM9W10sdGhpcy5uZXdEZXBzPVtdLHRoaXMuZGVwSWRzPW5ldyBpZSx0aGlzLm5ld0RlcElkcz1uZXcgaWUsdGhpcy5leHByZXNzaW9uPSIiLCJmdW5jdGlvbiI9PXR5cGVvZiB0P3RoaXMuZ2V0dGVyPXQ6KHRoaXMuZ2V0dGVyPWZ1bmN0aW9uKGUpe2lmKCFILnRlc3QoZSkpe3ZhciB0PWUuc3BsaXQoIi4iKTtyZXR1cm4gZnVuY3Rpb24oZSl7Zm9yKHZhciBuPTA7bjx0Lmxlbmd0aDtuKyspe2lmKCFlKXJldHVybjtlPWVbdFtuXV19cmV0dXJuIGV9fX0odCksdGhpcy5nZXR0ZXJ8fCh0aGlzLmdldHRlcj1TKSksdGhpcy52YWx1ZT10aGlzLmxhenk\/dm9pZCAwOnRoaXMuZ2V0KCl9O2ZuLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24oKXt2YXIgZTtsZSh0aGlzKTt2YXIgdD10aGlzLnZtO3RyeXtlPXRoaXMuZ2V0dGVyLmNhbGwodCx0KX1jYXRjaChlKXtpZighdGhpcy51c2VyKXRocm93IGU7UmUoZSx0LCdnZXR0ZXIgZm9yIHdhdGNoZXIgIicrdGhpcy5leHByZXNzaW9uKyciJyl9ZmluYWxseXt0aGlzLmRlZXAmJmV0KGUpLGZlKCksdGhpcy5jbGVhbnVwRGVwcygpfXJldHVybiBlfSxmbi5wcm90b3R5cGUuYWRkRGVwPWZ1bmN0aW9uKGUpe3ZhciB0PWUuaWQ7dGhpcy5uZXdEZXBJZHMuaGFzKHQpfHwodGhpcy5uZXdEZXBJZHMuYWRkKHQpLHRoaXMubmV3RGVwcy5wdXNoKGUpLHRoaXMuZGVwSWRzLmhhcyh0KXx8ZS5hZGRTdWIodGhpcykpfSxmbi5wcm90b3R5cGUuY2xlYW51cERlcHM9ZnVuY3Rpb24oKXtmb3IodmFyIGU9dGhpcy5kZXBzLmxlbmd0aDtlLS07KXt2YXIgdD10aGlzLmRlcHNbZV07dGhpcy5uZXdEZXBJZHMuaGFzKHQuaWQpfHx0LnJlbW92ZVN1Yih0aGlzKX12YXIgbj10aGlzLmRlcElkczt0aGlzLmRlcElkcz10aGlzLm5ld0RlcElkcyx0aGlzLm5ld0RlcElkcz1uLHRoaXMubmV3RGVwSWRzLmNsZWFyKCksbj10aGlzLmRlcHMsdGhpcy5kZXBzPXRoaXMubmV3RGVwcyx0aGlzLm5ld0RlcHM9bix0aGlzLm5ld0RlcHMubGVuZ3RoPTB9LGZuLnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24oKXt0aGlzLmxhenk\/dGhpcy5kaXJ0eT0hMDp0aGlzLnN5bmM\/dGhpcy5ydW4oKTpmdW5jdGlvbihlKXt2YXIgdD1lLmlkO2lmKG51bGw9PXRuW3RdKXtpZih0blt0XT0hMCxybil7Zm9yKHZhciBuPVF0Lmxlbmd0aC0xO24+b24mJlF0W25dLmlkPmUuaWQ7KW4tLTtRdC5zcGxpY2UobisxLDAsZSl9ZWxzZSBRdC5wdXNoKGUpO25ufHwobm49ITAsWWUodW4pKX19KHRoaXMpfSxmbi5wcm90b3R5cGUucnVuPWZ1bmN0aW9uKCl7aWYodGhpcy5hY3RpdmUpe3ZhciBlPXRoaXMuZ2V0KCk7aWYoZSE9PXRoaXMudmFsdWV8fG8oZSl8fHRoaXMuZGVlcCl7dmFyIHQ9dGhpcy52YWx1ZTtpZih0aGlzLnZhbHVlPWUsdGhpcy51c2VyKXRyeXt0aGlzLmNiLmNhbGwodGhpcy52bSxlLHQpfWNhdGNoKGUpe1JlKGUsdGhpcy52bSwnY2FsbGJhY2sgZm9yIHdhdGNoZXIgIicrdGhpcy5leHByZXNzaW9uKyciJyl9ZWxzZSB0aGlzLmNiLmNhbGwodGhpcy52bSxlLHQpfX19LGZuLnByb3RvdHlwZS5ldmFsdWF0ZT1mdW5jdGlvbigpe3RoaXMudmFsdWU9dGhpcy5nZXQoKSx0aGlzLmRpcnR5PSExfSxmbi5wcm90b3R5cGUuZGVwZW5kPWZ1bmN0aW9uKCl7Zm9yKHZhciBlPXRoaXMuZGVwcy5sZW5ndGg7ZS0tOyl0aGlzLmRlcHNbZV0uZGVwZW5kKCl9LGZuLnByb3RvdHlwZS50ZWFyZG93bj1mdW5jdGlvbigpe2lmKHRoaXMuYWN0aXZlKXt0aGlzLnZtLl9pc0JlaW5nRGVzdHJveWVkfHxoKHRoaXMudm0uX3dhdGNoZXJzLHRoaXMpO2Zvcih2YXIgZT10aGlzLmRlcHMubGVuZ3RoO2UtLTspdGhpcy5kZXBzW2VdLnJlbW92ZVN1Yih0aGlzKTt0aGlzLmFjdGl2ZT0hMX19O3ZhciBwbj17ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsZ2V0OlMsc2V0OlN9O2Z1bmN0aW9uIGRuKGUsdCxuKXtwbi5nZXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc1t0XVtuXX0scG4uc2V0PWZ1bmN0aW9uKGUpe3RoaXNbdF1bbl09ZX0sT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsbixwbil9ZnVuY3Rpb24gdm4oZSl7ZS5fd2F0Y2hlcnM9W107dmFyIHQ9ZS4kb3B0aW9uczt0LnByb3BzJiZmdW5jdGlvbihlLHQpe3ZhciBuPWUuJG9wdGlvbnMucHJvcHNEYXRhfHx7fSxyPWUuX3Byb3BzPXt9LGk9ZS4kb3B0aW9ucy5fcHJvcEtleXM9W107ZS4kcGFyZW50JiYkZSghMSk7dmFyIG89ZnVuY3Rpb24obyl7aS5wdXNoKG8pO3ZhciBhPU1lKG8sdCxuLGUpO3hlKHIsbyxhKSxvIGluIGV8fGRuKGUsIl9wcm9wcyIsbyl9O2Zvcih2YXIgYSBpbiB0KW8oYSk7JGUoITApfShlLHQucHJvcHMpLHQubWV0aG9kcyYmZnVuY3Rpb24oZSx0KXtlLiRvcHRpb25zLnByb3BzO2Zvcih2YXIgbiBpbiB0KWVbbl09ImZ1bmN0aW9uIiE9dHlwZW9mIHRbbl0\/Uzp4KHRbbl0sZSl9KGUsdC5tZXRob2RzKSx0LmRhdGE\/ZnVuY3Rpb24oZSl7dmFyIHQ9ZS4kb3B0aW9ucy5kYXRhO3ModD1lLl9kYXRhPSJmdW5jdGlvbiI9PXR5cGVvZiB0P2Z1bmN0aW9uKGUsdCl7bGUoKTt0cnl7cmV0dXJuIGUuY2FsbCh0LHQpfWNhdGNoKGUpe3JldHVybiBSZShlLHQsImRhdGEoKSIpLHt9fWZpbmFsbHl7ZmUoKX19KHQsZSk6dHx8e30pfHwodD17fSk7dmFyIG49T2JqZWN0LmtleXModCkscj1lLiRvcHRpb25zLnByb3BzLGk9KGUuJG9wdGlvbnMubWV0aG9kcyxuLmxlbmd0aCk7Zm9yKDtpLS07KXt2YXIgbz1uW2ldO3ImJnkocixvKXx8KGE9dm9pZCAwLDM2IT09KGE9KG8rIiIpLmNoYXJDb2RlQXQoMCkpJiY5NSE9PWEmJmRuKGUsIl9kYXRhIixvKSl9dmFyIGE7Q2UodCwhMCl9KGUpOkNlKGUuX2RhdGE9e30sITApLHQuY29tcHV0ZWQmJmZ1bmN0aW9uKGUsdCl7dmFyIG49ZS5fY29tcHV0ZWRXYXRjaGVycz1PYmplY3QuY3JlYXRlKG51bGwpLHI9dGUoKTtmb3IodmFyIGkgaW4gdCl7dmFyIG89dFtpXSxhPSJmdW5jdGlvbiI9PXR5cGVvZiBvP286by5nZXQ7cnx8KG5baV09bmV3IGZuKGUsYXx8UyxTLGhuKSksaSBpbiBlfHxtbihlLGksbyl9fShlLHQuY29tcHV0ZWQpLHQud2F0Y2gmJnQud2F0Y2ghPT1ZJiZmdW5jdGlvbihlLHQpe2Zvcih2YXIgbiBpbiB0KXt2YXIgcj10W25dO2lmKEFycmF5LmlzQXJyYXkocikpZm9yKHZhciBpPTA7aTxyLmxlbmd0aDtpKyspX24oZSxuLHJbaV0pO2Vsc2UgX24oZSxuLHIpfX0oZSx0LndhdGNoKX12YXIgaG49e2xhenk6ITB9O2Z1bmN0aW9uIG1uKGUsdCxuKXt2YXIgcj0hdGUoKTsiZnVuY3Rpb24iPT10eXBlb2Ygbj8ocG4uZ2V0PXI\/eW4odCk6Z24obikscG4uc2V0PVMpOihwbi5nZXQ9bi5nZXQ\/ciYmITEhPT1uLmNhY2hlP3luKHQpOmduKG4uZ2V0KTpTLHBuLnNldD1uLnNldHx8UyksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCxwbil9ZnVuY3Rpb24geW4oZSl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5fY29tcHV0ZWRXYXRjaGVycyYmdGhpcy5fY29tcHV0ZWRXYXRjaGVyc1tlXTtpZih0KXJldHVybiB0LmRpcnR5JiZ0LmV2YWx1YXRlKCksY2UudGFyZ2V0JiZ0LmRlcGVuZCgpLHQudmFsdWV9fWZ1bmN0aW9uIGduKGUpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBlLmNhbGwodGhpcyx0aGlzKX19ZnVuY3Rpb24gX24oZSx0LG4scil7cmV0dXJuIHMobikmJihyPW4sbj1uLmhhbmRsZXIpLCJzdHJpbmciPT10eXBlb2YgbiYmKG49ZVtuXSksZS4kd2F0Y2godCxuLHIpfXZhciBibj0wO2Z1bmN0aW9uICRuKGUpe3ZhciB0PWUub3B0aW9ucztpZihlLnN1cGVyKXt2YXIgbj0kbihlLnN1cGVyKTtpZihuIT09ZS5zdXBlck9wdGlvbnMpe2Uuc3VwZXJPcHRpb25zPW47dmFyIHI9ZnVuY3Rpb24oZSl7dmFyIHQsbj1lLm9wdGlvbnMscj1lLnNlYWxlZE9wdGlvbnM7Zm9yKHZhciBpIGluIG4pbltpXSE9PXJbaV0mJih0fHwodD17fSksdFtpXT1uW2ldKTtyZXR1cm4gdH0oZSk7ciYmQShlLmV4dGVuZE9wdGlvbnMsciksKHQ9ZS5vcHRpb25zPURlKG4sZS5leHRlbmRPcHRpb25zKSkubmFtZSYmKHQuY29tcG9uZW50c1t0Lm5hbWVdPWUpfX1yZXR1cm4gdH1mdW5jdGlvbiB3bihlKXt0aGlzLl9pbml0KGUpfWZ1bmN0aW9uIENuKGUpe2UuY2lkPTA7dmFyIHQ9MTtlLmV4dGVuZD1mdW5jdGlvbihlKXtlPWV8fHt9O3ZhciBuPXRoaXMscj1uLmNpZCxpPWUuX0N0b3J8fChlLl9DdG9yPXt9KTtpZihpW3JdKXJldHVybiBpW3JdO3ZhciBvPWUubmFtZXx8bi5vcHRpb25zLm5hbWUsYT1mdW5jdGlvbihlKXt0aGlzLl9pbml0KGUpfTtyZXR1cm4oYS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShuLnByb3RvdHlwZSkpLmNvbnN0cnVjdG9yPWEsYS5jaWQ9dCsrLGEub3B0aW9ucz1EZShuLm9wdGlvbnMsZSksYS5zdXBlcj1uLGEub3B0aW9ucy5wcm9wcyYmZnVuY3Rpb24oZSl7dmFyIHQ9ZS5vcHRpb25zLnByb3BzO2Zvcih2YXIgbiBpbiB0KWRuKGUucHJvdG90eXBlLCJfcHJvcHMiLG4pfShhKSxhLm9wdGlvbnMuY29tcHV0ZWQmJmZ1bmN0aW9uKGUpe3ZhciB0PWUub3B0aW9ucy5jb21wdXRlZDtmb3IodmFyIG4gaW4gdCltbihlLnByb3RvdHlwZSxuLHRbbl0pfShhKSxhLmV4dGVuZD1uLmV4dGVuZCxhLm1peGluPW4ubWl4aW4sYS51c2U9bi51c2UsTS5mb3JFYWNoKGZ1bmN0aW9uKGUpe2FbZV09bltlXX0pLG8mJihhLm9wdGlvbnMuY29tcG9uZW50c1tvXT1hKSxhLnN1cGVyT3B0aW9ucz1uLm9wdGlvbnMsYS5leHRlbmRPcHRpb25zPWUsYS5zZWFsZWRPcHRpb25zPUEoe30sYS5vcHRpb25zKSxpW3JdPWEsYX19ZnVuY3Rpb24geG4oZSl7cmV0dXJuIGUmJihlLkN0b3Iub3B0aW9ucy5uYW1lfHxlLnRhZyl9ZnVuY3Rpb24ga24oZSx0KXtyZXR1cm4gQXJyYXkuaXNBcnJheShlKT9lLmluZGV4T2YodCk+LTE6InN0cmluZyI9PXR5cGVvZiBlP2Uuc3BsaXQoIiwiKS5pbmRleE9mKHQpPi0xOihuPWUsIltvYmplY3QgUmVnRXhwXSI9PT1hLmNhbGwobikmJmUudGVzdCh0KSk7dmFyIG59ZnVuY3Rpb24gQW4oZSx0KXt2YXIgbj1lLmNhY2hlLHI9ZS5rZXlzLGk9ZS5fdm5vZGU7Zm9yKHZhciBvIGluIG4pe3ZhciBhPW5bb107aWYoYSl7dmFyIHM9eG4oYS5jb21wb25lbnRPcHRpb25zKTtzJiYhdChzKSYmT24obixvLHIsaSl9fX1mdW5jdGlvbiBPbihlLHQsbixyKXt2YXIgaT1lW3RdOyFpfHxyJiZpLnRhZz09PXIudGFnfHxpLmNvbXBvbmVudEluc3RhbmNlLiRkZXN0cm95KCksZVt0XT1udWxsLGgobix0KX0hZnVuY3Rpb24odCl7dC5wcm90b3R5cGUuX2luaXQ9ZnVuY3Rpb24odCl7dmFyIG49dGhpcztuLl91aWQ9Ym4rKyxuLl9pc1Z1ZT0hMCx0JiZ0Ll9pc0NvbXBvbmVudD9mdW5jdGlvbihlLHQpe3ZhciBuPWUuJG9wdGlvbnM9T2JqZWN0LmNyZWF0ZShlLmNvbnN0cnVjdG9yLm9wdGlvbnMpLHI9dC5fcGFyZW50Vm5vZGU7bi5wYXJlbnQ9dC5wYXJlbnQsbi5fcGFyZW50Vm5vZGU9cjt2YXIgaT1yLmNvbXBvbmVudE9wdGlvbnM7bi5wcm9wc0RhdGE9aS5wcm9wc0RhdGEsbi5fcGFyZW50TGlzdGVuZXJzPWkubGlzdGVuZXJzLG4uX3JlbmRlckNoaWxkcmVuPWkuY2hpbGRyZW4sbi5fY29tcG9uZW50VGFnPWkudGFnLHQucmVuZGVyJiYobi5yZW5kZXI9dC5yZW5kZXIsbi5zdGF0aWNSZW5kZXJGbnM9dC5zdGF0aWNSZW5kZXJGbnMpfShuLHQpOm4uJG9wdGlvbnM9RGUoJG4obi5jb25zdHJ1Y3RvciksdHx8e30sbiksbi5fcmVuZGVyUHJveHk9bixuLl9zZWxmPW4sZnVuY3Rpb24oZSl7dmFyIHQ9ZS4kb3B0aW9ucyxuPXQucGFyZW50O2lmKG4mJiF0LmFic3RyYWN0KXtmb3IoO24uJG9wdGlvbnMuYWJzdHJhY3QmJm4uJHBhcmVudDspbj1uLiRwYXJlbnQ7bi4kY2hpbGRyZW4ucHVzaChlKX1lLiRwYXJlbnQ9bixlLiRyb290PW4\/bi4kcm9vdDplLGUuJGNoaWxkcmVuPVtdLGUuJHJlZnM9e30sZS5fd2F0Y2hlcj1udWxsLGUuX2luYWN0aXZlPW51bGwsZS5fZGlyZWN0SW5hY3RpdmU9ITEsZS5faXNNb3VudGVkPSExLGUuX2lzRGVzdHJveWVkPSExLGUuX2lzQmVpbmdEZXN0cm95ZWQ9ITF9KG4pLGZ1bmN0aW9uKGUpe2UuX2V2ZW50cz1PYmplY3QuY3JlYXRlKG51bGwpLGUuX2hhc0hvb2tFdmVudD0hMTt2YXIgdD1lLiRvcHRpb25zLl9wYXJlbnRMaXN0ZW5lcnM7dCYmcXQoZSx0KX0obiksZnVuY3Rpb24odCl7dC5fdm5vZGU9bnVsbCx0Ll9zdGF0aWNUcmVlcz1udWxsO3ZhciBuPXQuJG9wdGlvbnMscj10LiR2bm9kZT1uLl9wYXJlbnRWbm9kZSxpPXImJnIuY29udGV4dDt0LiRzbG90cz11dChuLl9yZW5kZXJDaGlsZHJlbixpKSx0LiRzY29wZWRTbG90cz1lLHQuX2M9ZnVuY3Rpb24oZSxuLHIsaSl7cmV0dXJuIFB0KHQsZSxuLHIsaSwhMSl9LHQuJGNyZWF0ZUVsZW1lbnQ9ZnVuY3Rpb24oZSxuLHIsaSl7cmV0dXJuIFB0KHQsZSxuLHIsaSwhMCl9O3ZhciBvPXImJnIuZGF0YTt4ZSh0LCIkYXR0cnMiLG8mJm8uYXR0cnN8fGUsbnVsbCwhMCkseGUodCwiJGxpc3RlbmVycyIsbi5fcGFyZW50TGlzdGVuZXJzfHxlLG51bGwsITApfShuKSxZdChuLCJiZWZvcmVDcmVhdGUiKSxmdW5jdGlvbihlKXt2YXIgdD1jdChlLiRvcHRpb25zLmluamVjdCxlKTt0JiYoJGUoITEpLE9iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24obil7eGUoZSxuLHRbbl0pfSksJGUoITApKX0obiksdm4obiksZnVuY3Rpb24oZSl7dmFyIHQ9ZS4kb3B0aW9ucy5wcm92aWRlO3QmJihlLl9wcm92aWRlZD0iZnVuY3Rpb24iPT10eXBlb2YgdD90LmNhbGwoZSk6dCl9KG4pLFl0KG4sImNyZWF0ZWQiKSxuLiRvcHRpb25zLmVsJiZuLiRtb3VudChuLiRvcHRpb25zLmVsKX19KHduKSxmdW5jdGlvbihlKXt2YXIgdD17Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2RhdGF9fSxuPXtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fcHJvcHN9fTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsIiRkYXRhIix0KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsIiRwcm9wcyIsbiksZS5wcm90b3R5cGUuJHNldD1rZSxlLnByb3RvdHlwZS4kZGVsZXRlPUFlLGUucHJvdG90eXBlLiR3YXRjaD1mdW5jdGlvbihlLHQsbil7aWYocyh0KSlyZXR1cm4gX24odGhpcyxlLHQsbik7KG49bnx8e30pLnVzZXI9ITA7dmFyIHI9bmV3IGZuKHRoaXMsZSx0LG4pO2lmKG4uaW1tZWRpYXRlKXRyeXt0LmNhbGwodGhpcyxyLnZhbHVlKX1jYXRjaChlKXtSZShlLHRoaXMsJ2NhbGxiYWNrIGZvciBpbW1lZGlhdGUgd2F0Y2hlciAiJytyLmV4cHJlc3Npb24rJyInKX1yZXR1cm4gZnVuY3Rpb24oKXtyLnRlYXJkb3duKCl9fX0od24pLGZ1bmN0aW9uKGUpe3ZhciB0PS9eaG9vazovO2UucHJvdG90eXBlLiRvbj1mdW5jdGlvbihlLG4pe3ZhciByPXRoaXM7aWYoQXJyYXkuaXNBcnJheShlKSlmb3IodmFyIGk9MCxvPWUubGVuZ3RoO2k8bztpKyspci4kb24oZVtpXSxuKTtlbHNlKHIuX2V2ZW50c1tlXXx8KHIuX2V2ZW50c1tlXT1bXSkpLnB1c2gobiksdC50ZXN0KGUpJiYoci5faGFzSG9va0V2ZW50PSEwKTtyZXR1cm4gcn0sZS5wcm90b3R5cGUuJG9uY2U9ZnVuY3Rpb24oZSx0KXt2YXIgbj10aGlzO2Z1bmN0aW9uIHIoKXtuLiRvZmYoZSxyKSx0LmFwcGx5KG4sYXJndW1lbnRzKX1yZXR1cm4gci5mbj10LG4uJG9uKGUsciksbn0sZS5wcm90b3R5cGUuJG9mZj1mdW5jdGlvbihlLHQpe3ZhciBuPXRoaXM7aWYoIWFyZ3VtZW50cy5sZW5ndGgpcmV0dXJuIG4uX2V2ZW50cz1PYmplY3QuY3JlYXRlKG51bGwpLG47aWYoQXJyYXkuaXNBcnJheShlKSl7Zm9yKHZhciByPTAsaT1lLmxlbmd0aDtyPGk7cisrKW4uJG9mZihlW3JdLHQpO3JldHVybiBufXZhciBvLGE9bi5fZXZlbnRzW2VdO2lmKCFhKXJldHVybiBuO2lmKCF0KXJldHVybiBuLl9ldmVudHNbZV09bnVsbCxuO2Zvcih2YXIgcz1hLmxlbmd0aDtzLS07KWlmKChvPWFbc10pPT09dHx8by5mbj09PXQpe2Euc3BsaWNlKHMsMSk7YnJlYWt9cmV0dXJuIG59LGUucHJvdG90eXBlLiRlbWl0PWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMuX2V2ZW50c1tlXTtpZih0KXt0PXQubGVuZ3RoPjE\/ayh0KTp0O2Zvcih2YXIgbj1rKGFyZ3VtZW50cywxKSxyPSdldmVudCBoYW5kbGVyIGZvciAiJytlKyciJyxpPTAsbz10Lmxlbmd0aDtpPG87aSsrKUhlKHRbaV0sdGhpcyxuLHRoaXMscil9cmV0dXJuIHRoaXN9fSh3biksZnVuY3Rpb24oZSl7ZS5wcm90b3R5cGUuX3VwZGF0ZT1mdW5jdGlvbihlLHQpe3ZhciBuPXRoaXMscj1uLiRlbCxpPW4uX3Zub2RlLG89WnQobik7bi5fdm5vZGU9ZSxuLiRlbD1pP24uX19wYXRjaF9fKGksZSk6bi5fX3BhdGNoX18obi4kZWwsZSx0LCExKSxvKCksciYmKHIuX192dWVfXz1udWxsKSxuLiRlbCYmKG4uJGVsLl9fdnVlX189biksbi4kdm5vZGUmJm4uJHBhcmVudCYmbi4kdm5vZGU9PT1uLiRwYXJlbnQuX3Zub2RlJiYobi4kcGFyZW50LiRlbD1uLiRlbCl9LGUucHJvdG90eXBlLiRmb3JjZVVwZGF0ZT1mdW5jdGlvbigpe3RoaXMuX3dhdGNoZXImJnRoaXMuX3dhdGNoZXIudXBkYXRlKCl9LGUucHJvdG90eXBlLiRkZXN0cm95PWZ1bmN0aW9uKCl7dmFyIGU9dGhpcztpZighZS5faXNCZWluZ0Rlc3Ryb3llZCl7WXQoZSwiYmVmb3JlRGVzdHJveSIpLGUuX2lzQmVpbmdEZXN0cm95ZWQ9ITA7dmFyIHQ9ZS4kcGFyZW50OyF0fHx0Ll9pc0JlaW5nRGVzdHJveWVkfHxlLiRvcHRpb25zLmFic3RyYWN0fHxoKHQuJGNoaWxkcmVuLGUpLGUuX3dhdGNoZXImJmUuX3dhdGNoZXIudGVhcmRvd24oKTtmb3IodmFyIG49ZS5fd2F0Y2hlcnMubGVuZ3RoO24tLTspZS5fd2F0Y2hlcnNbbl0udGVhcmRvd24oKTtlLl9kYXRhLl9fb2JfXyYmZS5fZGF0YS5fX29iX18udm1Db3VudC0tLGUuX2lzRGVzdHJveWVkPSEwLGUuX19wYXRjaF9fKGUuX3Zub2RlLG51bGwpLFl0KGUsImRlc3Ryb3llZCIpLGUuJG9mZigpLGUuJGVsJiYoZS4kZWwuX192dWVfXz1udWxsKSxlLiR2bm9kZSYmKGUuJHZub2RlLnBhcmVudD1udWxsKX19fSh3biksZnVuY3Rpb24oZSl7U3QoZS5wcm90b3R5cGUpLGUucHJvdG90eXBlLiRuZXh0VGljaz1mdW5jdGlvbihlKXtyZXR1cm4gWWUoZSx0aGlzKX0sZS5wcm90b3R5cGUuX3JlbmRlcj1mdW5jdGlvbigpe3ZhciBlLHQ9dGhpcyxuPXQuJG9wdGlvbnMscj1uLnJlbmRlcixpPW4uX3BhcmVudFZub2RlO2kmJih0LiRzY29wZWRTbG90cz1mdChpLmRhdGEuc2NvcGVkU2xvdHMsdC4kc2xvdHMsdC4kc2NvcGVkU2xvdHMpKSx0LiR2bm9kZT1pO3RyeXtIdD10LGU9ci5jYWxsKHQuX3JlbmRlclByb3h5LHQuJGNyZWF0ZUVsZW1lbnQpfWNhdGNoKG4pe1JlKG4sdCwicmVuZGVyIiksZT10Ll92bm9kZX1maW5hbGx5e0h0PW51bGx9cmV0dXJuIEFycmF5LmlzQXJyYXkoZSkmJjE9PT1lLmxlbmd0aCYmKGU9ZVswXSksZSBpbnN0YW5jZW9mIHBlfHwoZT12ZSgpKSxlLnBhcmVudD1pLGV9fSh3bik7dmFyIFNuPVtTdHJpbmcsUmVnRXhwLEFycmF5XSxUbj17S2VlcEFsaXZlOntuYW1lOiJrZWVwLWFsaXZlIixhYnN0cmFjdDohMCxwcm9wczp7aW5jbHVkZTpTbixleGNsdWRlOlNuLG1heDpbU3RyaW5nLE51bWJlcl19LGNyZWF0ZWQ6ZnVuY3Rpb24oKXt0aGlzLmNhY2hlPU9iamVjdC5jcmVhdGUobnVsbCksdGhpcy5rZXlzPVtdfSxkZXN0cm95ZWQ6ZnVuY3Rpb24oKXtmb3IodmFyIGUgaW4gdGhpcy5jYWNoZSlPbih0aGlzLmNhY2hlLGUsdGhpcy5rZXlzKX0sbW91bnRlZDpmdW5jdGlvbigpe3ZhciBlPXRoaXM7dGhpcy4kd2F0Y2goImluY2x1ZGUiLGZ1bmN0aW9uKHQpe0FuKGUsZnVuY3Rpb24oZSl7cmV0dXJuIGtuKHQsZSl9KX0pLHRoaXMuJHdhdGNoKCJleGNsdWRlIixmdW5jdGlvbih0KXtBbihlLGZ1bmN0aW9uKGUpe3JldHVybiFrbih0LGUpfSl9KX0scmVuZGVyOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy4kc2xvdHMuZGVmYXVsdCx0PXp0KGUpLG49dCYmdC5jb21wb25lbnRPcHRpb25zO2lmKG4pe3ZhciByPXhuKG4pLGk9dGhpcy5pbmNsdWRlLG89dGhpcy5leGNsdWRlO2lmKGkmJighcnx8IWtuKGkscikpfHxvJiZyJiZrbihvLHIpKXJldHVybiB0O3ZhciBhPXRoaXMuY2FjaGUscz10aGlzLmtleXMsYz1udWxsPT10LmtleT9uLkN0b3IuY2lkKyhuLnRhZz8iOjoiK24udGFnOiIiKTp0LmtleTthW2NdPyh0LmNvbXBvbmVudEluc3RhbmNlPWFbY10uY29tcG9uZW50SW5zdGFuY2UsaChzLGMpLHMucHVzaChjKSk6KGFbY109dCxzLnB1c2goYyksdGhpcy5tYXgmJnMubGVuZ3RoPnBhcnNlSW50KHRoaXMubWF4KSYmT24oYSxzWzBdLHMsdGhpcy5fdm5vZGUpKSx0LmRhdGEua2VlcEFsaXZlPSEwfXJldHVybiB0fHxlJiZlWzBdfX19OyFmdW5jdGlvbihlKXt2YXIgdD17Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIEZ9fTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiY29uZmlnIix0KSxlLnV0aWw9e3dhcm46YWUsZXh0ZW5kOkEsbWVyZ2VPcHRpb25zOkRlLGRlZmluZVJlYWN0aXZlOnhlfSxlLnNldD1rZSxlLmRlbGV0ZT1BZSxlLm5leHRUaWNrPVllLGUub2JzZXJ2YWJsZT1mdW5jdGlvbihlKXtyZXR1cm4gQ2UoZSksZX0sZS5vcHRpb25zPU9iamVjdC5jcmVhdGUobnVsbCksTS5mb3JFYWNoKGZ1bmN0aW9uKHQpe2Uub3B0aW9uc1t0KyJzIl09T2JqZWN0LmNyZWF0ZShudWxsKX0pLGUub3B0aW9ucy5fYmFzZT1lLEEoZS5vcHRpb25zLmNvbXBvbmVudHMsVG4pLGZ1bmN0aW9uKGUpe2UudXNlPWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMuX2luc3RhbGxlZFBsdWdpbnN8fCh0aGlzLl9pbnN0YWxsZWRQbHVnaW5zPVtdKTtpZih0LmluZGV4T2YoZSk+LTEpcmV0dXJuIHRoaXM7dmFyIG49ayhhcmd1bWVudHMsMSk7cmV0dXJuIG4udW5zaGlmdCh0aGlzKSwiZnVuY3Rpb24iPT10eXBlb2YgZS5pbnN0YWxsP2UuaW5zdGFsbC5hcHBseShlLG4pOiJmdW5jdGlvbiI9PXR5cGVvZiBlJiZlLmFwcGx5KG51bGwsbiksdC5wdXNoKGUpLHRoaXN9fShlKSxmdW5jdGlvbihlKXtlLm1peGluPWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLm9wdGlvbnM9RGUodGhpcy5vcHRpb25zLGUpLHRoaXN9fShlKSxDbihlKSxmdW5jdGlvbihlKXtNLmZvckVhY2goZnVuY3Rpb24odCl7ZVt0XT1mdW5jdGlvbihlLG4pe3JldHVybiBuPygiY29tcG9uZW50Ij09PXQmJnMobikmJihuLm5hbWU9bi5uYW1lfHxlLG49dGhpcy5vcHRpb25zLl9iYXNlLmV4dGVuZChuKSksImRpcmVjdGl2ZSI9PT10JiYiZnVuY3Rpb24iPT10eXBlb2YgbiYmKG49e2JpbmQ6bix1cGRhdGU6bn0pLHRoaXMub3B0aW9uc1t0KyJzIl1bZV09bixuKTp0aGlzLm9wdGlvbnNbdCsicyJdW2VdfX0pfShlKX0od24pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh3bi5wcm90b3R5cGUsIiRpc1NlcnZlciIse2dldDp0ZX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh3bi5wcm90b3R5cGUsIiRzc3JDb250ZXh0Iix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuJHZub2RlJiZ0aGlzLiR2bm9kZS5zc3JDb250ZXh0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh3biwiRnVuY3Rpb25hbFJlbmRlckNvbnRleHQiLHt2YWx1ZTpUdH0pLHduLnZlcnNpb249IjIuNi4xMSI7dmFyIEVuPXAoInN0eWxlLGNsYXNzIiksTm49cCgiaW5wdXQsdGV4dGFyZWEsb3B0aW9uLHNlbGVjdCxwcm9ncmVzcyIpLGpuPWZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4idmFsdWUiPT09biYmTm4oZSkmJiJidXR0b24iIT09dHx8InNlbGVjdGVkIj09PW4mJiJvcHRpb24iPT09ZXx8ImNoZWNrZWQiPT09biYmImlucHV0Ij09PWV8fCJtdXRlZCI9PT1uJiYidmlkZW8iPT09ZX0sRG49cCgiY29udGVudGVkaXRhYmxlLGRyYWdnYWJsZSxzcGVsbGNoZWNrIiksTG49cCgiZXZlbnRzLGNhcmV0LHR5cGluZyxwbGFpbnRleHQtb25seSIpLE1uPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIEhuKHQpfHwiZmFsc2UiPT09dD8iZmFsc2UiOiJjb250ZW50ZWRpdGFibGUiPT09ZSYmTG4odCk\/dDoidHJ1ZSJ9LEluPXAoImFsbG93ZnVsbHNjcmVlbixhc3luYyxhdXRvZm9jdXMsYXV0b3BsYXksY2hlY2tlZCxjb21wYWN0LGNvbnRyb2xzLGRlY2xhcmUsZGVmYXVsdCxkZWZhdWx0Y2hlY2tlZCxkZWZhdWx0bXV0ZWQsZGVmYXVsdHNlbGVjdGVkLGRlZmVyLGRpc2FibGVkLGVuYWJsZWQsZm9ybW5vdmFsaWRhdGUsaGlkZGVuLGluZGV0ZXJtaW5hdGUsaW5lcnQsaXNtYXAsaXRlbXNjb3BlLGxvb3AsbXVsdGlwbGUsbXV0ZWQsbm9ocmVmLG5vcmVzaXplLG5vc2hhZGUsbm92YWxpZGF0ZSxub3dyYXAsb3BlbixwYXVzZW9uZXhpdCxyZWFkb25seSxyZXF1aXJlZCxyZXZlcnNlZCxzY29wZWQsc2VhbWxlc3Msc2VsZWN0ZWQsc29ydGFibGUsdHJhbnNsYXRlLHRydWVzcGVlZCx0eXBlbXVzdG1hdGNoLHZpc2libGUiKSxGbj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIsUG49ZnVuY3Rpb24oZSl7cmV0dXJuIjoiPT09ZS5jaGFyQXQoNSkmJiJ4bGluayI9PT1lLnNsaWNlKDAsNSl9LFJuPWZ1bmN0aW9uKGUpe3JldHVybiBQbihlKT9lLnNsaWNlKDYsZS5sZW5ndGgpOiIifSxIbj1mdW5jdGlvbihlKXtyZXR1cm4gbnVsbD09ZXx8ITE9PT1lfTtmdW5jdGlvbiBCbihlKXtmb3IodmFyIHQ9ZS5kYXRhLHI9ZSxpPWU7bihpLmNvbXBvbmVudEluc3RhbmNlKTspKGk9aS5jb21wb25lbnRJbnN0YW5jZS5fdm5vZGUpJiZpLmRhdGEmJih0PVVuKGkuZGF0YSx0KSk7Zm9yKDtuKHI9ci5wYXJlbnQpOylyJiZyLmRhdGEmJih0PVVuKHQsci5kYXRhKSk7cmV0dXJuIGZ1bmN0aW9uKGUsdCl7aWYobihlKXx8bih0KSlyZXR1cm4gem4oZSxWbih0KSk7cmV0dXJuIiJ9KHQuc3RhdGljQ2xhc3MsdC5jbGFzcyl9ZnVuY3Rpb24gVW4oZSx0KXtyZXR1cm57c3RhdGljQ2xhc3M6em4oZS5zdGF0aWNDbGFzcyx0LnN0YXRpY0NsYXNzKSxjbGFzczpuKGUuY2xhc3MpP1tlLmNsYXNzLHQuY2xhc3NdOnQuY2xhc3N9fWZ1bmN0aW9uIHpuKGUsdCl7cmV0dXJuIGU\/dD9lKyIgIit0OmU6dHx8IiJ9ZnVuY3Rpb24gVm4oZSl7cmV0dXJuIEFycmF5LmlzQXJyYXkoZSk\/ZnVuY3Rpb24oZSl7Zm9yKHZhciB0LHI9IiIsaT0wLG89ZS5sZW5ndGg7aTxvO2krKyluKHQ9Vm4oZVtpXSkpJiYiIiE9PXQmJihyJiYocis9IiAiKSxyKz10KTtyZXR1cm4gcn0oZSk6byhlKT9mdW5jdGlvbihlKXt2YXIgdD0iIjtmb3IodmFyIG4gaW4gZSllW25dJiYodCYmKHQrPSIgIiksdCs9bik7cmV0dXJuIHR9KGUpOiJzdHJpbmciPT10eXBlb2YgZT9lOiIifXZhciBLbj17c3ZnOiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsbWF0aDoiaHR0cDovL3d3dy53My5vcmcvMTk5OC9NYXRoL01hdGhNTCJ9LEpuPXAoImh0bWwsYm9keSxiYXNlLGhlYWQsbGluayxtZXRhLHN0eWxlLHRpdGxlLGFkZHJlc3MsYXJ0aWNsZSxhc2lkZSxmb290ZXIsaGVhZGVyLGgxLGgyLGgzLGg0LGg1LGg2LGhncm91cCxuYXYsc2VjdGlvbixkaXYsZGQsZGwsZHQsZmlnY2FwdGlvbixmaWd1cmUscGljdHVyZSxocixpbWcsbGksbWFpbixvbCxwLHByZSx1bCxhLGIsYWJicixiZGksYmRvLGJyLGNpdGUsY29kZSxkYXRhLGRmbixlbSxpLGtiZCxtYXJrLHEscnAscnQscnRjLHJ1YnkscyxzYW1wLHNtYWxsLHNwYW4sc3Ryb25nLHN1YixzdXAsdGltZSx1LHZhcix3YnIsYXJlYSxhdWRpbyxtYXAsdHJhY2ssdmlkZW8sZW1iZWQsb2JqZWN0LHBhcmFtLHNvdXJjZSxjYW52YXMsc2NyaXB0LG5vc2NyaXB0LGRlbCxpbnMsY2FwdGlvbixjb2wsY29sZ3JvdXAsdGFibGUsdGhlYWQsdGJvZHksdGQsdGgsdHIsYnV0dG9uLGRhdGFsaXN0LGZpZWxkc2V0LGZvcm0saW5wdXQsbGFiZWwsbGVnZW5kLG1ldGVyLG9wdGdyb3VwLG9wdGlvbixvdXRwdXQscHJvZ3Jlc3Msc2VsZWN0LHRleHRhcmVhLGRldGFpbHMsZGlhbG9nLG1lbnUsbWVudWl0ZW0sc3VtbWFyeSxjb250ZW50LGVsZW1lbnQsc2hhZG93LHRlbXBsYXRlLGJsb2NrcXVvdGUsaWZyYW1lLHRmb290IikscW49cCgic3ZnLGFuaW1hdGUsY2lyY2xlLGNsaXBwYXRoLGN1cnNvcixkZWZzLGRlc2MsZWxsaXBzZSxmaWx0ZXIsZm9udC1mYWNlLGZvcmVpZ25PYmplY3QsZyxnbHlwaCxpbWFnZSxsaW5lLG1hcmtlcixtYXNrLG1pc3NpbmctZ2x5cGgscGF0aCxwYXR0ZXJuLHBvbHlnb24scG9seWxpbmUscmVjdCxzd2l0Y2gsc3ltYm9sLHRleHQsdGV4dHBhdGgsdHNwYW4sdXNlLHZpZXciLCEwKSxXbj1mdW5jdGlvbihlKXtyZXR1cm4gSm4oZSl8fHFuKGUpfTtmdW5jdGlvbiBabihlKXtyZXR1cm4gcW4oZSk\/InN2ZyI6Im1hdGgiPT09ZT8ibWF0aCI6dm9pZCAwfXZhciBHbj1PYmplY3QuY3JlYXRlKG51bGwpO3ZhciBYbj1wKCJ0ZXh0LG51bWJlcixwYXNzd29yZCxzZWFyY2gsZW1haWwsdGVsLHVybCIpO2Z1bmN0aW9uIFluKGUpe2lmKCJzdHJpbmciPT10eXBlb2YgZSl7dmFyIHQ9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcihlKTtyZXR1cm4gdHx8ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iil9cmV0dXJuIGV9dmFyIFFuPU9iamVjdC5mcmVlemUoe2NyZWF0ZUVsZW1lbnQ6ZnVuY3Rpb24oZSx0KXt2YXIgbj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KGUpO3JldHVybiJzZWxlY3QiIT09ZT9uOih0LmRhdGEmJnQuZGF0YS5hdHRycyYmdm9pZCAwIT09dC5kYXRhLmF0dHJzLm11bHRpcGxlJiZuLnNldEF0dHJpYnV0ZSgibXVsdGlwbGUiLCJtdWx0aXBsZSIpLG4pfSxjcmVhdGVFbGVtZW50TlM6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKEtuW2VdLHQpfSxjcmVhdGVUZXh0Tm9kZTpmdW5jdGlvbihlKXtyZXR1cm4gZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoZSl9LGNyZWF0ZUNvbW1lbnQ6ZnVuY3Rpb24oZSl7cmV0dXJuIGRvY3VtZW50LmNyZWF0ZUNvbW1lbnQoZSl9LGluc2VydEJlZm9yZTpmdW5jdGlvbihlLHQsbil7ZS5pbnNlcnRCZWZvcmUodCxuKX0scmVtb3ZlQ2hpbGQ6ZnVuY3Rpb24oZSx0KXtlLnJlbW92ZUNoaWxkKHQpfSxhcHBlbmRDaGlsZDpmdW5jdGlvbihlLHQpe2UuYXBwZW5kQ2hpbGQodCl9LHBhcmVudE5vZGU6ZnVuY3Rpb24oZSl7cmV0dXJuIGUucGFyZW50Tm9kZX0sbmV4dFNpYmxpbmc6ZnVuY3Rpb24oZSl7cmV0dXJuIGUubmV4dFNpYmxpbmd9LHRhZ05hbWU6ZnVuY3Rpb24oZSl7cmV0dXJuIGUudGFnTmFtZX0sc2V0VGV4dENvbnRlbnQ6ZnVuY3Rpb24oZSx0KXtlLnRleHRDb250ZW50PXR9LHNldFN0eWxlU2NvcGU6ZnVuY3Rpb24oZSx0KXtlLnNldEF0dHJpYnV0ZSh0LCIiKX19KSxlcj17Y3JlYXRlOmZ1bmN0aW9uKGUsdCl7dHIodCl9LHVwZGF0ZTpmdW5jdGlvbihlLHQpe2UuZGF0YS5yZWYhPT10LmRhdGEucmVmJiYodHIoZSwhMCksdHIodCkpfSxkZXN0cm95OmZ1bmN0aW9uKGUpe3RyKGUsITApfX07ZnVuY3Rpb24gdHIoZSx0KXt2YXIgcj1lLmRhdGEucmVmO2lmKG4ocikpe3ZhciBpPWUuY29udGV4dCxvPWUuY29tcG9uZW50SW5zdGFuY2V8fGUuZWxtLGE9aS4kcmVmczt0P0FycmF5LmlzQXJyYXkoYVtyXSk\/aChhW3JdLG8pOmFbcl09PT1vJiYoYVtyXT12b2lkIDApOmUuZGF0YS5yZWZJbkZvcj9BcnJheS5pc0FycmF5KGFbcl0pP2Fbcl0uaW5kZXhPZihvKTwwJiZhW3JdLnB1c2gobyk6YVtyXT1bb106YVtyXT1vfX12YXIgbnI9bmV3IHBlKCIiLHt9LFtdKSxycj1bImNyZWF0ZSIsImFjdGl2YXRlIiwidXBkYXRlIiwicmVtb3ZlIiwiZGVzdHJveSJdO2Z1bmN0aW9uIGlyKGUsaSl7cmV0dXJuIGUua2V5PT09aS5rZXkmJihlLnRhZz09PWkudGFnJiZlLmlzQ29tbWVudD09PWkuaXNDb21tZW50JiZuKGUuZGF0YSk9PT1uKGkuZGF0YSkmJmZ1bmN0aW9uKGUsdCl7aWYoImlucHV0IiE9PWUudGFnKXJldHVybiEwO3ZhciByLGk9bihyPWUuZGF0YSkmJm4ocj1yLmF0dHJzKSYmci50eXBlLG89bihyPXQuZGF0YSkmJm4ocj1yLmF0dHJzKSYmci50eXBlO3JldHVybiBpPT09b3x8WG4oaSkmJlhuKG8pfShlLGkpfHxyKGUuaXNBc3luY1BsYWNlaG9sZGVyKSYmZS5hc3luY0ZhY3Rvcnk9PT1pLmFzeW5jRmFjdG9yeSYmdChpLmFzeW5jRmFjdG9yeS5lcnJvcikpfWZ1bmN0aW9uIG9yKGUsdCxyKXt2YXIgaSxvLGE9e307Zm9yKGk9dDtpPD1yOysraSluKG89ZVtpXS5rZXkpJiYoYVtvXT1pKTtyZXR1cm4gYX12YXIgYXI9e2NyZWF0ZTpzcix1cGRhdGU6c3IsZGVzdHJveTpmdW5jdGlvbihlKXtzcihlLG5yKX19O2Z1bmN0aW9uIHNyKGUsdCl7KGUuZGF0YS5kaXJlY3RpdmVzfHx0LmRhdGEuZGlyZWN0aXZlcykmJmZ1bmN0aW9uKGUsdCl7dmFyIG4scixpLG89ZT09PW5yLGE9dD09PW5yLHM9dXIoZS5kYXRhLmRpcmVjdGl2ZXMsZS5jb250ZXh0KSxjPXVyKHQuZGF0YS5kaXJlY3RpdmVzLHQuY29udGV4dCksdT1bXSxsPVtdO2ZvcihuIGluIGMpcj1zW25dLGk9Y1tuXSxyPyhpLm9sZFZhbHVlPXIudmFsdWUsaS5vbGRBcmc9ci5hcmcsZnIoaSwidXBkYXRlIix0LGUpLGkuZGVmJiZpLmRlZi5jb21wb25lbnRVcGRhdGVkJiZsLnB1c2goaSkpOihmcihpLCJiaW5kIix0LGUpLGkuZGVmJiZpLmRlZi5pbnNlcnRlZCYmdS5wdXNoKGkpKTtpZih1Lmxlbmd0aCl7dmFyIGY9ZnVuY3Rpb24oKXtmb3IodmFyIG49MDtuPHUubGVuZ3RoO24rKylmcih1W25dLCJpbnNlcnRlZCIsdCxlKX07bz9pdCh0LCJpbnNlcnQiLGYpOmYoKX1sLmxlbmd0aCYmaXQodCwicG9zdHBhdGNoIixmdW5jdGlvbigpe2Zvcih2YXIgbj0wO248bC5sZW5ndGg7bisrKWZyKGxbbl0sImNvbXBvbmVudFVwZGF0ZWQiLHQsZSl9KTtpZighbylmb3IobiBpbiBzKWNbbl18fGZyKHNbbl0sInVuYmluZCIsZSxlLGEpfShlLHQpfXZhciBjcj1PYmplY3QuY3JlYXRlKG51bGwpO2Z1bmN0aW9uIHVyKGUsdCl7dmFyIG4scixpPU9iamVjdC5jcmVhdGUobnVsbCk7aWYoIWUpcmV0dXJuIGk7Zm9yKG49MDtuPGUubGVuZ3RoO24rKykocj1lW25dKS5tb2RpZmllcnN8fChyLm1vZGlmaWVycz1jciksaVtscihyKV09cixyLmRlZj1MZSh0LiRvcHRpb25zLCJkaXJlY3RpdmVzIixyLm5hbWUpO3JldHVybiBpfWZ1bmN0aW9uIGxyKGUpe3JldHVybiBlLnJhd05hbWV8fGUubmFtZSsiLiIrT2JqZWN0LmtleXMoZS5tb2RpZmllcnN8fHt9KS5qb2luKCIuIil9ZnVuY3Rpb24gZnIoZSx0LG4scixpKXt2YXIgbz1lLmRlZiYmZS5kZWZbdF07aWYobyl0cnl7byhuLmVsbSxlLG4scixpKX1jYXRjaChyKXtSZShyLG4uY29udGV4dCwiZGlyZWN0aXZlICIrZS5uYW1lKyIgIit0KyIgaG9vayIpfX12YXIgcHI9W2VyLGFyXTtmdW5jdGlvbiBkcihlLHIpe3ZhciBpPXIuY29tcG9uZW50T3B0aW9ucztpZighKG4oaSkmJiExPT09aS5DdG9yLm9wdGlvbnMuaW5oZXJpdEF0dHJzfHx0KGUuZGF0YS5hdHRycykmJnQoci5kYXRhLmF0dHJzKSkpe3ZhciBvLGEscz1yLmVsbSxjPWUuZGF0YS5hdHRyc3x8e30sdT1yLmRhdGEuYXR0cnN8fHt9O2ZvcihvIGluIG4odS5fX29iX18pJiYodT1yLmRhdGEuYXR0cnM9QSh7fSx1KSksdSlhPXVbb10sY1tvXSE9PWEmJnZyKHMsbyxhKTtmb3IobyBpbihxfHxaKSYmdS52YWx1ZSE9PWMudmFsdWUmJnZyKHMsInZhbHVlIix1LnZhbHVlKSxjKXQodVtvXSkmJihQbihvKT9zLnJlbW92ZUF0dHJpYnV0ZU5TKEZuLFJuKG8pKTpEbihvKXx8cy5yZW1vdmVBdHRyaWJ1dGUobykpfX1mdW5jdGlvbiB2cihlLHQsbil7ZS50YWdOYW1lLmluZGV4T2YoIi0iKT4tMT9ocihlLHQsbik6SW4odCk\/SG4obik\/ZS5yZW1vdmVBdHRyaWJ1dGUodCk6KG49ImFsbG93ZnVsbHNjcmVlbiI9PT10JiYiRU1CRUQiPT09ZS50YWdOYW1lPyJ0cnVlIjp0LGUuc2V0QXR0cmlidXRlKHQsbikpOkRuKHQpP2Uuc2V0QXR0cmlidXRlKHQsTW4odCxuKSk6UG4odCk\/SG4obik\/ZS5yZW1vdmVBdHRyaWJ1dGVOUyhGbixSbih0KSk6ZS5zZXRBdHRyaWJ1dGVOUyhGbix0LG4pOmhyKGUsdCxuKX1mdW5jdGlvbiBocihlLHQsbil7aWYoSG4obikpZS5yZW1vdmVBdHRyaWJ1dGUodCk7ZWxzZXtpZihxJiYhVyYmIlRFWFRBUkVBIj09PWUudGFnTmFtZSYmInBsYWNlaG9sZGVyIj09PXQmJiIiIT09biYmIWUuX19pZXBoKXt2YXIgcj1mdW5jdGlvbih0KXt0LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpLGUucmVtb3ZlRXZlbnRMaXN0ZW5lcigiaW5wdXQiLHIpfTtlLmFkZEV2ZW50TGlzdGVuZXIoImlucHV0IixyKSxlLl9faWVwaD0hMH1lLnNldEF0dHJpYnV0ZSh0LG4pfX12YXIgbXI9e2NyZWF0ZTpkcix1cGRhdGU6ZHJ9O2Z1bmN0aW9uIHlyKGUscil7dmFyIGk9ci5lbG0sbz1yLmRhdGEsYT1lLmRhdGE7aWYoISh0KG8uc3RhdGljQ2xhc3MpJiZ0KG8uY2xhc3MpJiYodChhKXx8dChhLnN0YXRpY0NsYXNzKSYmdChhLmNsYXNzKSkpKXt2YXIgcz1CbihyKSxjPWkuX3RyYW5zaXRpb25DbGFzc2VzO24oYykmJihzPXpuKHMsVm4oYykpKSxzIT09aS5fcHJldkNsYXNzJiYoaS5zZXRBdHRyaWJ1dGUoImNsYXNzIixzKSxpLl9wcmV2Q2xhc3M9cyl9fXZhciBncixfcixiciwkcix3cixDcix4cj17Y3JlYXRlOnlyLHVwZGF0ZTp5cn0sa3I9L1tcdykuK1wtXyRcXV0vO2Z1bmN0aW9uIEFyKGUpe3ZhciB0LG4scixpLG8sYT0hMSxzPSExLGM9ITEsdT0hMSxsPTAsZj0wLHA9MCxkPTA7Zm9yKHI9MDtyPGUubGVuZ3RoO3IrKylpZihuPXQsdD1lLmNoYXJDb2RlQXQociksYSkzOT09PXQmJjkyIT09biYmKGE9ITEpO2Vsc2UgaWYocykzND09PXQmJjkyIT09biYmKHM9ITEpO2Vsc2UgaWYoYyk5Nj09PXQmJjkyIT09biYmKGM9ITEpO2Vsc2UgaWYodSk0Nz09PXQmJjkyIT09biYmKHU9ITEpO2Vsc2UgaWYoMTI0IT09dHx8MTI0PT09ZS5jaGFyQ29kZUF0KHIrMSl8fDEyND09PWUuY2hhckNvZGVBdChyLTEpfHxsfHxmfHxwKXtzd2l0Y2godCl7Y2FzZSAzNDpzPSEwO2JyZWFrO2Nhc2UgMzk6YT0hMDticmVhaztjYXNlIDk2OmM9ITA7YnJlYWs7Y2FzZSA0MDpwKys7YnJlYWs7Y2FzZSA0MTpwLS07YnJlYWs7Y2FzZSA5MTpmKys7YnJlYWs7Y2FzZSA5MzpmLS07YnJlYWs7Y2FzZSAxMjM6bCsrO2JyZWFrO2Nhc2UgMTI1OmwtLX1pZig0Nz09PXQpe2Zvcih2YXIgdj1yLTEsaD12b2lkIDA7dj49MCYmIiAiPT09KGg9ZS5jaGFyQXQodikpO3YtLSk7aCYma3IudGVzdChoKXx8KHU9ITApfX1lbHNlIHZvaWQgMD09PWk\/KGQ9cisxLGk9ZS5zbGljZSgwLHIpLnRyaW0oKSk6bSgpO2Z1bmN0aW9uIG0oKXsob3x8KG89W10pKS5wdXNoKGUuc2xpY2UoZCxyKS50cmltKCkpLGQ9cisxfWlmKHZvaWQgMD09PWk\/aT1lLnNsaWNlKDAscikudHJpbSgpOjAhPT1kJiZtKCksbylmb3Iocj0wO3I8by5sZW5ndGg7cisrKWk9T3IoaSxvW3JdKTtyZXR1cm4gaX1mdW5jdGlvbiBPcihlLHQpe3ZhciBuPXQuaW5kZXhPZigiKCIpO2lmKG48MClyZXR1cm4nX2YoIicrdCsnIikoJytlKyIpIjt2YXIgcj10LnNsaWNlKDAsbiksaT10LnNsaWNlKG4rMSk7cmV0dXJuJ19mKCInK3IrJyIpKCcrZSsoIikiIT09aT8iLCIraTppKX1mdW5jdGlvbiBTcihlLHQpe2NvbnNvbGUuZXJyb3IoIltWdWUgY29tcGlsZXJdOiAiK2UpfWZ1bmN0aW9uIFRyKGUsdCl7cmV0dXJuIGU\/ZS5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIGVbdF19KS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIGV9KTpbXX1mdW5jdGlvbiBFcihlLHQsbixyLGkpeyhlLnByb3BzfHwoZS5wcm9wcz1bXSkpLnB1c2goUnIoe25hbWU6dCx2YWx1ZTpuLGR5bmFtaWM6aX0scikpLGUucGxhaW49ITF9ZnVuY3Rpb24gTnIoZSx0LG4scixpKXsoaT9lLmR5bmFtaWNBdHRyc3x8KGUuZHluYW1pY0F0dHJzPVtdKTplLmF0dHJzfHwoZS5hdHRycz1bXSkpLnB1c2goUnIoe25hbWU6dCx2YWx1ZTpuLGR5bmFtaWM6aX0scikpLGUucGxhaW49ITF9ZnVuY3Rpb24ganIoZSx0LG4scil7ZS5hdHRyc01hcFt0XT1uLGUuYXR0cnNMaXN0LnB1c2goUnIoe25hbWU6dCx2YWx1ZTpufSxyKSl9ZnVuY3Rpb24gRHIoZSx0LG4scixpLG8sYSxzKXsoZS5kaXJlY3RpdmVzfHwoZS5kaXJlY3RpdmVzPVtdKSkucHVzaChScih7bmFtZTp0LHJhd05hbWU6bix2YWx1ZTpyLGFyZzppLGlzRHluYW1pY0FyZzpvLG1vZGlmaWVyczphfSxzKSksZS5wbGFpbj0hMX1mdW5jdGlvbiBMcihlLHQsbil7cmV0dXJuIG4\/Il9wKCIrdCsnLCInK2UrJyIpJzplK3R9ZnVuY3Rpb24gTXIodCxuLHIsaSxvLGEscyxjKXt2YXIgdTsoaT1pfHxlKS5yaWdodD9jP249IigiK24rIik9PT0nY2xpY2snPydjb250ZXh0bWVudSc6KCIrbisiKSI6ImNsaWNrIj09PW4mJihuPSJjb250ZXh0bWVudSIsZGVsZXRlIGkucmlnaHQpOmkubWlkZGxlJiYoYz9uPSIoIituKyIpPT09J2NsaWNrJz8nbW91c2V1cCc6KCIrbisiKSI6ImNsaWNrIj09PW4mJihuPSJtb3VzZXVwIikpLGkuY2FwdHVyZSYmKGRlbGV0ZSBpLmNhcHR1cmUsbj1McigiISIsbixjKSksaS5vbmNlJiYoZGVsZXRlIGkub25jZSxuPUxyKCJ+IixuLGMpKSxpLnBhc3NpdmUmJihkZWxldGUgaS5wYXNzaXZlLG49THIoIiYiLG4sYykpLGkubmF0aXZlPyhkZWxldGUgaS5uYXRpdmUsdT10Lm5hdGl2ZUV2ZW50c3x8KHQubmF0aXZlRXZlbnRzPXt9KSk6dT10LmV2ZW50c3x8KHQuZXZlbnRzPXt9KTt2YXIgbD1Scih7dmFsdWU6ci50cmltKCksZHluYW1pYzpjfSxzKTtpIT09ZSYmKGwubW9kaWZpZXJzPWkpO3ZhciBmPXVbbl07QXJyYXkuaXNBcnJheShmKT9vP2YudW5zaGlmdChsKTpmLnB1c2gobCk6dVtuXT1mP28\/W2wsZl06W2YsbF06bCx0LnBsYWluPSExfWZ1bmN0aW9uIElyKGUsdCxuKXt2YXIgcj1GcihlLCI6Iit0KXx8RnIoZSwidi1iaW5kOiIrdCk7aWYobnVsbCE9cilyZXR1cm4gQXIocik7aWYoITEhPT1uKXt2YXIgaT1GcihlLHQpO2lmKG51bGwhPWkpcmV0dXJuIEpTT04uc3RyaW5naWZ5KGkpfX1mdW5jdGlvbiBGcihlLHQsbil7dmFyIHI7aWYobnVsbCE9KHI9ZS5hdHRyc01hcFt0XSkpZm9yKHZhciBpPWUuYXR0cnNMaXN0LG89MCxhPWkubGVuZ3RoO288YTtvKyspaWYoaVtvXS5uYW1lPT09dCl7aS5zcGxpY2UobywxKTticmVha31yZXR1cm4gbiYmZGVsZXRlIGUuYXR0cnNNYXBbdF0scn1mdW5jdGlvbiBQcihlLHQpe2Zvcih2YXIgbj1lLmF0dHJzTGlzdCxyPTAsaT1uLmxlbmd0aDtyPGk7cisrKXt2YXIgbz1uW3JdO2lmKHQudGVzdChvLm5hbWUpKXJldHVybiBuLnNwbGljZShyLDEpLG99fWZ1bmN0aW9uIFJyKGUsdCl7cmV0dXJuIHQmJihudWxsIT10LnN0YXJ0JiYoZS5zdGFydD10LnN0YXJ0KSxudWxsIT10LmVuZCYmKGUuZW5kPXQuZW5kKSksZX1mdW5jdGlvbiBIcihlLHQsbil7dmFyIHI9bnx8e30saT1yLm51bWJlcixvPSIkJHYiO3IudHJpbSYmKG89Iih0eXBlb2YgJCR2ID09PSAnc3RyaW5nJz8gJCR2LnRyaW0oKTogJCR2KSIpLGkmJihvPSJfbigiK28rIikiKTt2YXIgYT1Ccih0LG8pO2UubW9kZWw9e3ZhbHVlOiIoIit0KyIpIixleHByZXNzaW9uOkpTT04uc3RyaW5naWZ5KHQpLGNhbGxiYWNrOiJmdW5jdGlvbiAoJCR2KSB7IithKyJ9In19ZnVuY3Rpb24gQnIoZSx0KXt2YXIgbj1mdW5jdGlvbihlKXtpZihlPWUudHJpbSgpLGdyPWUubGVuZ3RoLGUuaW5kZXhPZigiWyIpPDB8fGUubGFzdEluZGV4T2YoIl0iKTxnci0xKXJldHVybigkcj1lLmxhc3RJbmRleE9mKCIuIikpPi0xP3tleHA6ZS5zbGljZSgwLCRyKSxrZXk6JyInK2Uuc2xpY2UoJHIrMSkrJyInfTp7ZXhwOmUsa2V5Om51bGx9O19yPWUsJHI9d3I9Q3I9MDtmb3IoOyF6cigpOylWcihicj1VcigpKT9Kcihicik6OTE9PT1iciYmS3IoYnIpO3JldHVybntleHA6ZS5zbGljZSgwLHdyKSxrZXk6ZS5zbGljZSh3cisxLENyKX19KGUpO3JldHVybiBudWxsPT09bi5rZXk\/ZSsiPSIrdDoiJHNldCgiK24uZXhwKyIsICIrbi5rZXkrIiwgIit0KyIpIn1mdW5jdGlvbiBVcigpe3JldHVybiBfci5jaGFyQ29kZUF0KCsrJHIpfWZ1bmN0aW9uIHpyKCl7cmV0dXJuICRyPj1ncn1mdW5jdGlvbiBWcihlKXtyZXR1cm4gMzQ9PT1lfHwzOT09PWV9ZnVuY3Rpb24gS3IoZSl7dmFyIHQ9MTtmb3Iod3I9JHI7IXpyKCk7KWlmKFZyKGU9VXIoKSkpSnIoZSk7ZWxzZSBpZig5MT09PWUmJnQrKyw5Mz09PWUmJnQtLSwwPT09dCl7Q3I9JHI7YnJlYWt9fWZ1bmN0aW9uIEpyKGUpe2Zvcih2YXIgdD1lOyF6cigpJiYoZT1VcigpKSE9PXQ7KTt9dmFyIHFyLFdyPSJfX3IiLFpyPSJfX2MiO2Z1bmN0aW9uIEdyKGUsdCxuKXt2YXIgcj1xcjtyZXR1cm4gZnVuY3Rpb24gaSgpe251bGwhPT10LmFwcGx5KG51bGwsYXJndW1lbnRzKSYmUXIoZSxpLG4scil9fXZhciBYcj1WZSYmIShYJiZOdW1iZXIoWFsxXSk8PTUzKTtmdW5jdGlvbiBZcihlLHQsbixyKXtpZihYcil7dmFyIGk9YW4sbz10O3Q9by5fd3JhcHBlcj1mdW5jdGlvbihlKXtpZihlLnRhcmdldD09PWUuY3VycmVudFRhcmdldHx8ZS50aW1lU3RhbXA+PWl8fGUudGltZVN0YW1wPD0wfHxlLnRhcmdldC5vd25lckRvY3VtZW50IT09ZG9jdW1lbnQpcmV0dXJuIG8uYXBwbHkodGhpcyxhcmd1bWVudHMpfX1xci5hZGRFdmVudExpc3RlbmVyKGUsdCxRP3tjYXB0dXJlOm4scGFzc2l2ZTpyfTpuKX1mdW5jdGlvbiBRcihlLHQsbixyKXsocnx8cXIpLnJlbW92ZUV2ZW50TGlzdGVuZXIoZSx0Ll93cmFwcGVyfHx0LG4pfWZ1bmN0aW9uIGVpKGUscil7aWYoIXQoZS5kYXRhLm9uKXx8IXQoci5kYXRhLm9uKSl7dmFyIGk9ci5kYXRhLm9ufHx7fSxvPWUuZGF0YS5vbnx8e307cXI9ci5lbG0sZnVuY3Rpb24oZSl7aWYobihlW1dyXSkpe3ZhciB0PXE\/ImNoYW5nZSI6ImlucHV0IjtlW3RdPVtdLmNvbmNhdChlW1dyXSxlW3RdfHxbXSksZGVsZXRlIGVbV3JdfW4oZVtacl0pJiYoZS5jaGFuZ2U9W10uY29uY2F0KGVbWnJdLGUuY2hhbmdlfHxbXSksZGVsZXRlIGVbWnJdKX0oaSkscnQoaSxvLFlyLFFyLEdyLHIuY29udGV4dCkscXI9dm9pZCAwfX12YXIgdGksbmk9e2NyZWF0ZTplaSx1cGRhdGU6ZWl9O2Z1bmN0aW9uIHJpKGUscil7aWYoIXQoZS5kYXRhLmRvbVByb3BzKXx8IXQoci5kYXRhLmRvbVByb3BzKSl7dmFyIGksbyxhPXIuZWxtLHM9ZS5kYXRhLmRvbVByb3BzfHx7fSxjPXIuZGF0YS5kb21Qcm9wc3x8e307Zm9yKGkgaW4gbihjLl9fb2JfXykmJihjPXIuZGF0YS5kb21Qcm9wcz1BKHt9LGMpKSxzKWkgaW4gY3x8KGFbaV09IiIpO2ZvcihpIGluIGMpe2lmKG89Y1tpXSwidGV4dENvbnRlbnQiPT09aXx8ImlubmVySFRNTCI9PT1pKXtpZihyLmNoaWxkcmVuJiYoci5jaGlsZHJlbi5sZW5ndGg9MCksbz09PXNbaV0pY29udGludWU7MT09PWEuY2hpbGROb2Rlcy5sZW5ndGgmJmEucmVtb3ZlQ2hpbGQoYS5jaGlsZE5vZGVzWzBdKX1pZigidmFsdWUiPT09aSYmIlBST0dSRVNTIiE9PWEudGFnTmFtZSl7YS5fdmFsdWU9bzt2YXIgdT10KG8pPyIiOlN0cmluZyhvKTtpaShhLHUpJiYoYS52YWx1ZT11KX1lbHNlIGlmKCJpbm5lckhUTUwiPT09aSYmcW4oYS50YWdOYW1lKSYmdChhLmlubmVySFRNTCkpeyh0aT10aXx8ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IikpLmlubmVySFRNTD0iPHN2Zz4iK28rIjwvc3ZnPiI7Zm9yKHZhciBsPXRpLmZpcnN0Q2hpbGQ7YS5maXJzdENoaWxkOylhLnJlbW92ZUNoaWxkKGEuZmlyc3RDaGlsZCk7Zm9yKDtsLmZpcnN0Q2hpbGQ7KWEuYXBwZW5kQ2hpbGQobC5maXJzdENoaWxkKX1lbHNlIGlmKG8hPT1zW2ldKXRyeXthW2ldPW99Y2F0Y2goZSl7fX19fWZ1bmN0aW9uIGlpKGUsdCl7cmV0dXJuIWUuY29tcG9zaW5nJiYoIk9QVElPTiI9PT1lLnRhZ05hbWV8fGZ1bmN0aW9uKGUsdCl7dmFyIG49ITA7dHJ5e249ZG9jdW1lbnQuYWN0aXZlRWxlbWVudCE9PWV9Y2F0Y2goZSl7fXJldHVybiBuJiZlLnZhbHVlIT09dH0oZSx0KXx8ZnVuY3Rpb24oZSx0KXt2YXIgcj1lLnZhbHVlLGk9ZS5fdk1vZGlmaWVycztpZihuKGkpKXtpZihpLm51bWJlcilyZXR1cm4gZihyKSE9PWYodCk7aWYoaS50cmltKXJldHVybiByLnRyaW0oKSE9PXQudHJpbSgpfXJldHVybiByIT09dH0oZSx0KSl9dmFyIG9pPXtjcmVhdGU6cmksdXBkYXRlOnJpfSxhaT1nKGZ1bmN0aW9uKGUpe3ZhciB0PXt9LG49LzooLispLztyZXR1cm4gZS5zcGxpdCgvOyg\/IVteKF0qXCkpL2cpLmZvckVhY2goZnVuY3Rpb24oZSl7aWYoZSl7dmFyIHI9ZS5zcGxpdChuKTtyLmxlbmd0aD4xJiYodFtyWzBdLnRyaW0oKV09clsxXS50cmltKCkpfX0pLHR9KTtmdW5jdGlvbiBzaShlKXt2YXIgdD1jaShlLnN0eWxlKTtyZXR1cm4gZS5zdGF0aWNTdHlsZT9BKGUuc3RhdGljU3R5bGUsdCk6dH1mdW5jdGlvbiBjaShlKXtyZXR1cm4gQXJyYXkuaXNBcnJheShlKT9PKGUpOiJzdHJpbmciPT10eXBlb2YgZT9haShlKTplfXZhciB1aSxsaT0vXi0tLyxmaT0vXHMqIWltcG9ydGFudCQvLHBpPWZ1bmN0aW9uKGUsdCxuKXtpZihsaS50ZXN0KHQpKWUuc3R5bGUuc2V0UHJvcGVydHkodCxuKTtlbHNlIGlmKGZpLnRlc3QobikpZS5zdHlsZS5zZXRQcm9wZXJ0eShDKHQpLG4ucmVwbGFjZShmaSwiIiksImltcG9ydGFudCIpO2Vsc2V7dmFyIHI9dmkodCk7aWYoQXJyYXkuaXNBcnJheShuKSlmb3IodmFyIGk9MCxvPW4ubGVuZ3RoO2k8bztpKyspZS5zdHlsZVtyXT1uW2ldO2Vsc2UgZS5zdHlsZVtyXT1ufX0sZGk9WyJXZWJraXQiLCJNb3oiLCJtcyJdLHZpPWcoZnVuY3Rpb24oZSl7aWYodWk9dWl8fGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLnN0eWxlLCJmaWx0ZXIiIT09KGU9YihlKSkmJmUgaW4gdWkpcmV0dXJuIGU7Zm9yKHZhciB0PWUuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkrZS5zbGljZSgxKSxuPTA7bjxkaS5sZW5ndGg7bisrKXt2YXIgcj1kaVtuXSt0O2lmKHIgaW4gdWkpcmV0dXJuIHJ9fSk7ZnVuY3Rpb24gaGkoZSxyKXt2YXIgaT1yLmRhdGEsbz1lLmRhdGE7aWYoISh0KGkuc3RhdGljU3R5bGUpJiZ0KGkuc3R5bGUpJiZ0KG8uc3RhdGljU3R5bGUpJiZ0KG8uc3R5bGUpKSl7dmFyIGEscyxjPXIuZWxtLHU9by5zdGF0aWNTdHlsZSxsPW8ubm9ybWFsaXplZFN0eWxlfHxvLnN0eWxlfHx7fSxmPXV8fGwscD1jaShyLmRhdGEuc3R5bGUpfHx7fTtyLmRhdGEubm9ybWFsaXplZFN0eWxlPW4ocC5fX29iX18pP0Eoe30scCk6cDt2YXIgZD1mdW5jdGlvbihlLHQpe3ZhciBuLHI9e307aWYodClmb3IodmFyIGk9ZTtpLmNvbXBvbmVudEluc3RhbmNlOykoaT1pLmNvbXBvbmVudEluc3RhbmNlLl92bm9kZSkmJmkuZGF0YSYmKG49c2koaS5kYXRhKSkmJkEocixuKTsobj1zaShlLmRhdGEpKSYmQShyLG4pO2Zvcih2YXIgbz1lO289by5wYXJlbnQ7KW8uZGF0YSYmKG49c2koby5kYXRhKSkmJkEocixuKTtyZXR1cm4gcn0ociwhMCk7Zm9yKHMgaW4gZil0KGRbc10pJiZwaShjLHMsIiIpO2ZvcihzIGluIGQpKGE9ZFtzXSkhPT1mW3NdJiZwaShjLHMsbnVsbD09YT8iIjphKX19dmFyIG1pPXtjcmVhdGU6aGksdXBkYXRlOmhpfSx5aT0vXHMrLztmdW5jdGlvbiBnaShlLHQpe2lmKHQmJih0PXQudHJpbSgpKSlpZihlLmNsYXNzTGlzdCl0LmluZGV4T2YoIiAiKT4tMT90LnNwbGl0KHlpKS5mb3JFYWNoKGZ1bmN0aW9uKHQpe3JldHVybiBlLmNsYXNzTGlzdC5hZGQodCl9KTplLmNsYXNzTGlzdC5hZGQodCk7ZWxzZXt2YXIgbj0iICIrKGUuZ2V0QXR0cmlidXRlKCJjbGFzcyIpfHwiIikrIiAiO24uaW5kZXhPZigiICIrdCsiICIpPDAmJmUuc2V0QXR0cmlidXRlKCJjbGFzcyIsKG4rdCkudHJpbSgpKX19ZnVuY3Rpb24gX2koZSx0KXtpZih0JiYodD10LnRyaW0oKSkpaWYoZS5jbGFzc0xpc3QpdC5pbmRleE9mKCIgIik+LTE\/dC5zcGxpdCh5aSkuZm9yRWFjaChmdW5jdGlvbih0KXtyZXR1cm4gZS5jbGFzc0xpc3QucmVtb3ZlKHQpfSk6ZS5jbGFzc0xpc3QucmVtb3ZlKHQpLGUuY2xhc3NMaXN0Lmxlbmd0aHx8ZS5yZW1vdmVBdHRyaWJ1dGUoImNsYXNzIik7ZWxzZXtmb3IodmFyIG49IiAiKyhlLmdldEF0dHJpYnV0ZSgiY2xhc3MiKXx8IiIpKyIgIixyPSIgIit0KyIgIjtuLmluZGV4T2Yocik+PTA7KW49bi5yZXBsYWNlKHIsIiAiKTsobj1uLnRyaW0oKSk\/ZS5zZXRBdHRyaWJ1dGUoImNsYXNzIixuKTplLnJlbW92ZUF0dHJpYnV0ZSgiY2xhc3MiKX19ZnVuY3Rpb24gYmkoZSl7aWYoZSl7aWYoIm9iamVjdCI9PXR5cGVvZiBlKXt2YXIgdD17fTtyZXR1cm4hMSE9PWUuY3NzJiZBKHQsJGkoZS5uYW1lfHwidiIpKSxBKHQsZSksdH1yZXR1cm4ic3RyaW5nIj09dHlwZW9mIGU\/JGkoZSk6dm9pZCAwfX12YXIgJGk9ZyhmdW5jdGlvbihlKXtyZXR1cm57ZW50ZXJDbGFzczplKyItZW50ZXIiLGVudGVyVG9DbGFzczplKyItZW50ZXItdG8iLGVudGVyQWN0aXZlQ2xhc3M6ZSsiLWVudGVyLWFjdGl2ZSIsbGVhdmVDbGFzczplKyItbGVhdmUiLGxlYXZlVG9DbGFzczplKyItbGVhdmUtdG8iLGxlYXZlQWN0aXZlQ2xhc3M6ZSsiLWxlYXZlLWFjdGl2ZSJ9fSksd2k9eiYmIVcsQ2k9InRyYW5zaXRpb24iLHhpPSJhbmltYXRpb24iLGtpPSJ0cmFuc2l0aW9uIixBaT0idHJhbnNpdGlvbmVuZCIsT2k9ImFuaW1hdGlvbiIsU2k9ImFuaW1hdGlvbmVuZCI7d2kmJih2b2lkIDA9PT13aW5kb3cub250cmFuc2l0aW9uZW5kJiZ2b2lkIDAhPT13aW5kb3cub253ZWJraXR0cmFuc2l0aW9uZW5kJiYoa2k9IldlYmtpdFRyYW5zaXRpb24iLEFpPSJ3ZWJraXRUcmFuc2l0aW9uRW5kIiksdm9pZCAwPT09d2luZG93Lm9uYW5pbWF0aW9uZW5kJiZ2b2lkIDAhPT13aW5kb3cub253ZWJraXRhbmltYXRpb25lbmQmJihPaT0iV2Via2l0QW5pbWF0aW9uIixTaT0id2Via2l0QW5pbWF0aW9uRW5kIikpO3ZhciBUaT16P3dpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWU\/d2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZS5iaW5kKHdpbmRvdyk6c2V0VGltZW91dDpmdW5jdGlvbihlKXtyZXR1cm4gZSgpfTtmdW5jdGlvbiBFaShlKXtUaShmdW5jdGlvbigpe1RpKGUpfSl9ZnVuY3Rpb24gTmkoZSx0KXt2YXIgbj1lLl90cmFuc2l0aW9uQ2xhc3Nlc3x8KGUuX3RyYW5zaXRpb25DbGFzc2VzPVtdKTtuLmluZGV4T2YodCk8MCYmKG4ucHVzaCh0KSxnaShlLHQpKX1mdW5jdGlvbiBqaShlLHQpe2UuX3RyYW5zaXRpb25DbGFzc2VzJiZoKGUuX3RyYW5zaXRpb25DbGFzc2VzLHQpLF9pKGUsdCl9ZnVuY3Rpb24gRGkoZSx0LG4pe3ZhciByPU1pKGUsdCksaT1yLnR5cGUsbz1yLnRpbWVvdXQsYT1yLnByb3BDb3VudDtpZighaSlyZXR1cm4gbigpO3ZhciBzPWk9PT1DaT9BaTpTaSxjPTAsdT1mdW5jdGlvbigpe2UucmVtb3ZlRXZlbnRMaXN0ZW5lcihzLGwpLG4oKX0sbD1mdW5jdGlvbih0KXt0LnRhcmdldD09PWUmJisrYz49YSYmdSgpfTtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7YzxhJiZ1KCl9LG8rMSksZS5hZGRFdmVudExpc3RlbmVyKHMsbCl9dmFyIExpPS9cYih0cmFuc2Zvcm18YWxsKSgsfCQpLztmdW5jdGlvbiBNaShlLHQpe3ZhciBuLHI9d2luZG93LmdldENvbXB1dGVkU3R5bGUoZSksaT0ocltraSsiRGVsYXkiXXx8IiIpLnNwbGl0KCIsICIpLG89KHJba2krIkR1cmF0aW9uIl18fCIiKS5zcGxpdCgiLCAiKSxhPUlpKGksbykscz0ocltPaSsiRGVsYXkiXXx8IiIpLnNwbGl0KCIsICIpLGM9KHJbT2krIkR1cmF0aW9uIl18fCIiKS5zcGxpdCgiLCAiKSx1PUlpKHMsYyksbD0wLGY9MDtyZXR1cm4gdD09PUNpP2E+MCYmKG49Q2ksbD1hLGY9by5sZW5ndGgpOnQ9PT14aT91PjAmJihuPXhpLGw9dSxmPWMubGVuZ3RoKTpmPShuPShsPU1hdGgubWF4KGEsdSkpPjA\/YT51P0NpOnhpOm51bGwpP249PT1DaT9vLmxlbmd0aDpjLmxlbmd0aDowLHt0eXBlOm4sdGltZW91dDpsLHByb3BDb3VudDpmLGhhc1RyYW5zZm9ybTpuPT09Q2kmJkxpLnRlc3QocltraSsiUHJvcGVydHkiXSl9fWZ1bmN0aW9uIElpKGUsdCl7Zm9yKDtlLmxlbmd0aDx0Lmxlbmd0aDspZT1lLmNvbmNhdChlKTtyZXR1cm4gTWF0aC5tYXguYXBwbHkobnVsbCx0Lm1hcChmdW5jdGlvbih0LG4pe3JldHVybiBGaSh0KStGaShlW25dKX0pKX1mdW5jdGlvbiBGaShlKXtyZXR1cm4gMWUzKk51bWJlcihlLnNsaWNlKDAsLTEpLnJlcGxhY2UoIiwiLCIuIikpfWZ1bmN0aW9uIFBpKGUscil7dmFyIGk9ZS5lbG07bihpLl9sZWF2ZUNiKSYmKGkuX2xlYXZlQ2IuY2FuY2VsbGVkPSEwLGkuX2xlYXZlQ2IoKSk7dmFyIGE9YmkoZS5kYXRhLnRyYW5zaXRpb24pO2lmKCF0KGEpJiYhbihpLl9lbnRlckNiKSYmMT09PWkubm9kZVR5cGUpe2Zvcih2YXIgcz1hLmNzcyxjPWEudHlwZSx1PWEuZW50ZXJDbGFzcyxsPWEuZW50ZXJUb0NsYXNzLHA9YS5lbnRlckFjdGl2ZUNsYXNzLGQ9YS5hcHBlYXJDbGFzcyx2PWEuYXBwZWFyVG9DbGFzcyxoPWEuYXBwZWFyQWN0aXZlQ2xhc3MsbT1hLmJlZm9yZUVudGVyLHk9YS5lbnRlcixnPWEuYWZ0ZXJFbnRlcixfPWEuZW50ZXJDYW5jZWxsZWQsYj1hLmJlZm9yZUFwcGVhciwkPWEuYXBwZWFyLHc9YS5hZnRlckFwcGVhcixDPWEuYXBwZWFyQ2FuY2VsbGVkLHg9YS5kdXJhdGlvbixrPVd0LEE9V3QuJHZub2RlO0EmJkEucGFyZW50OylrPUEuY29udGV4dCxBPUEucGFyZW50O3ZhciBPPSFrLl9pc01vdW50ZWR8fCFlLmlzUm9vdEluc2VydDtpZighT3x8JHx8IiI9PT0kKXt2YXIgUz1PJiZkP2Q6dSxUPU8mJmg\/aDpwLEU9TyYmdj92OmwsTj1PJiZifHxtLGo9TyYmImZ1bmN0aW9uIj09dHlwZW9mICQ\/JDp5LEw9TyYmd3x8ZyxNPU8mJkN8fF8sST1mKG8oeCk\/eC5lbnRlcjp4KSxGPSExIT09cyYmIVcsUD1CaShqKSxSPWkuX2VudGVyQ2I9RChmdW5jdGlvbigpe0YmJihqaShpLEUpLGppKGksVCkpLFIuY2FuY2VsbGVkPyhGJiZqaShpLFMpLE0mJk0oaSkpOkwmJkwoaSksaS5fZW50ZXJDYj1udWxsfSk7ZS5kYXRhLnNob3d8fGl0KGUsImluc2VydCIsZnVuY3Rpb24oKXt2YXIgdD1pLnBhcmVudE5vZGUsbj10JiZ0Ll9wZW5kaW5nJiZ0Ll9wZW5kaW5nW2Uua2V5XTtuJiZuLnRhZz09PWUudGFnJiZuLmVsbS5fbGVhdmVDYiYmbi5lbG0uX2xlYXZlQ2IoKSxqJiZqKGksUil9KSxOJiZOKGkpLEYmJihOaShpLFMpLE5pKGksVCksRWkoZnVuY3Rpb24oKXtqaShpLFMpLFIuY2FuY2VsbGVkfHwoTmkoaSxFKSxQfHwoSGkoSSk\/c2V0VGltZW91dChSLEkpOkRpKGksYyxSKSkpfSkpLGUuZGF0YS5zaG93JiYociYmcigpLGomJmooaSxSKSksRnx8UHx8UigpfX19ZnVuY3Rpb24gUmkoZSxyKXt2YXIgaT1lLmVsbTtuKGkuX2VudGVyQ2IpJiYoaS5fZW50ZXJDYi5jYW5jZWxsZWQ9ITAsaS5fZW50ZXJDYigpKTt2YXIgYT1iaShlLmRhdGEudHJhbnNpdGlvbik7aWYodChhKXx8MSE9PWkubm9kZVR5cGUpcmV0dXJuIHIoKTtpZighbihpLl9sZWF2ZUNiKSl7dmFyIHM9YS5jc3MsYz1hLnR5cGUsdT1hLmxlYXZlQ2xhc3MsbD1hLmxlYXZlVG9DbGFzcyxwPWEubGVhdmVBY3RpdmVDbGFzcyxkPWEuYmVmb3JlTGVhdmUsdj1hLmxlYXZlLGg9YS5hZnRlckxlYXZlLG09YS5sZWF2ZUNhbmNlbGxlZCx5PWEuZGVsYXlMZWF2ZSxnPWEuZHVyYXRpb24sXz0hMSE9PXMmJiFXLGI9QmkodiksJD1mKG8oZyk\/Zy5sZWF2ZTpnKSx3PWkuX2xlYXZlQ2I9RChmdW5jdGlvbigpe2kucGFyZW50Tm9kZSYmaS5wYXJlbnROb2RlLl9wZW5kaW5nJiYoaS5wYXJlbnROb2RlLl9wZW5kaW5nW2Uua2V5XT1udWxsKSxfJiYoamkoaSxsKSxqaShpLHApKSx3LmNhbmNlbGxlZD8oXyYmamkoaSx1KSxtJiZtKGkpKToocigpLGgmJmgoaSkpLGkuX2xlYXZlQ2I9bnVsbH0pO3k\/eShDKTpDKCl9ZnVuY3Rpb24gQygpe3cuY2FuY2VsbGVkfHwoIWUuZGF0YS5zaG93JiZpLnBhcmVudE5vZGUmJigoaS5wYXJlbnROb2RlLl9wZW5kaW5nfHwoaS5wYXJlbnROb2RlLl9wZW5kaW5nPXt9KSlbZS5rZXldPWUpLGQmJmQoaSksXyYmKE5pKGksdSksTmkoaSxwKSxFaShmdW5jdGlvbigpe2ppKGksdSksdy5jYW5jZWxsZWR8fChOaShpLGwpLGJ8fChIaSgkKT9zZXRUaW1lb3V0KHcsJCk6RGkoaSxjLHcpKSl9KSksdiYmdihpLHcpLF98fGJ8fHcoKSl9fWZ1bmN0aW9uIEhpKGUpe3JldHVybiJudW1iZXIiPT10eXBlb2YgZSYmIWlzTmFOKGUpfWZ1bmN0aW9uIEJpKGUpe2lmKHQoZSkpcmV0dXJuITE7dmFyIHI9ZS5mbnM7cmV0dXJuIG4ocik\/QmkoQXJyYXkuaXNBcnJheShyKT9yWzBdOnIpOihlLl9sZW5ndGh8fGUubGVuZ3RoKT4xfWZ1bmN0aW9uIFVpKGUsdCl7ITAhPT10LmRhdGEuc2hvdyYmUGkodCl9dmFyIHppPWZ1bmN0aW9uKGUpe3ZhciBvLGEscz17fSxjPWUubW9kdWxlcyx1PWUubm9kZU9wcztmb3Iobz0wO288cnIubGVuZ3RoOysrbylmb3Ioc1tycltvXV09W10sYT0wO2E8Yy5sZW5ndGg7KythKW4oY1thXVtycltvXV0pJiZzW3JyW29dXS5wdXNoKGNbYV1bcnJbb11dKTtmdW5jdGlvbiBsKGUpe3ZhciB0PXUucGFyZW50Tm9kZShlKTtuKHQpJiZ1LnJlbW92ZUNoaWxkKHQsZSl9ZnVuY3Rpb24gZihlLHQsaSxvLGEsYyxsKXtpZihuKGUuZWxtKSYmbihjKSYmKGU9Y1tsXT1tZShlKSksZS5pc1Jvb3RJbnNlcnQ9IWEsIWZ1bmN0aW9uKGUsdCxpLG8pe3ZhciBhPWUuZGF0YTtpZihuKGEpKXt2YXIgYz1uKGUuY29tcG9uZW50SW5zdGFuY2UpJiZhLmtlZXBBbGl2ZTtpZihuKGE9YS5ob29rKSYmbihhPWEuaW5pdCkmJmEoZSwhMSksbihlLmNvbXBvbmVudEluc3RhbmNlKSlyZXR1cm4gZChlLHQpLHYoaSxlLmVsbSxvKSxyKGMpJiZmdW5jdGlvbihlLHQscixpKXtmb3IodmFyIG8sYT1lO2EuY29tcG9uZW50SW5zdGFuY2U7KWlmKGE9YS5jb21wb25lbnRJbnN0YW5jZS5fdm5vZGUsbihvPWEuZGF0YSkmJm4obz1vLnRyYW5zaXRpb24pKXtmb3Iobz0wO288cy5hY3RpdmF0ZS5sZW5ndGg7KytvKXMuYWN0aXZhdGVbb10obnIsYSk7dC5wdXNoKGEpO2JyZWFrfXYocixlLmVsbSxpKX0oZSx0LGksbyksITB9fShlLHQsaSxvKSl7dmFyIGY9ZS5kYXRhLHA9ZS5jaGlsZHJlbixtPWUudGFnO24obSk\/KGUuZWxtPWUubnM\/dS5jcmVhdGVFbGVtZW50TlMoZS5ucyxtKTp1LmNyZWF0ZUVsZW1lbnQobSxlKSxnKGUpLGgoZSxwLHQpLG4oZikmJnkoZSx0KSx2KGksZS5lbG0sbykpOnIoZS5pc0NvbW1lbnQpPyhlLmVsbT11LmNyZWF0ZUNvbW1lbnQoZS50ZXh0KSx2KGksZS5lbG0sbykpOihlLmVsbT11LmNyZWF0ZVRleHROb2RlKGUudGV4dCksdihpLGUuZWxtLG8pKX19ZnVuY3Rpb24gZChlLHQpe24oZS5kYXRhLnBlbmRpbmdJbnNlcnQpJiYodC5wdXNoLmFwcGx5KHQsZS5kYXRhLnBlbmRpbmdJbnNlcnQpLGUuZGF0YS5wZW5kaW5nSW5zZXJ0PW51bGwpLGUuZWxtPWUuY29tcG9uZW50SW5zdGFuY2UuJGVsLG0oZSk\/KHkoZSx0KSxnKGUpKToodHIoZSksdC5wdXNoKGUpKX1mdW5jdGlvbiB2KGUsdCxyKXtuKGUpJiYobihyKT91LnBhcmVudE5vZGUocik9PT1lJiZ1Lmluc2VydEJlZm9yZShlLHQscik6dS5hcHBlbmRDaGlsZChlLHQpKX1mdW5jdGlvbiBoKGUsdCxuKXtpZihBcnJheS5pc0FycmF5KHQpKWZvcih2YXIgcj0wO3I8dC5sZW5ndGg7KytyKWYodFtyXSxuLGUuZWxtLG51bGwsITAsdCxyKTtlbHNlIGkoZS50ZXh0KSYmdS5hcHBlbmRDaGlsZChlLmVsbSx1LmNyZWF0ZVRleHROb2RlKFN0cmluZyhlLnRleHQpKSl9ZnVuY3Rpb24gbShlKXtmb3IoO2UuY29tcG9uZW50SW5zdGFuY2U7KWU9ZS5jb21wb25lbnRJbnN0YW5jZS5fdm5vZGU7cmV0dXJuIG4oZS50YWcpfWZ1bmN0aW9uIHkoZSx0KXtmb3IodmFyIHI9MDtyPHMuY3JlYXRlLmxlbmd0aDsrK3Ipcy5jcmVhdGVbcl0obnIsZSk7bihvPWUuZGF0YS5ob29rKSYmKG4oby5jcmVhdGUpJiZvLmNyZWF0ZShucixlKSxuKG8uaW5zZXJ0KSYmdC5wdXNoKGUpKX1mdW5jdGlvbiBnKGUpe3ZhciB0O2lmKG4odD1lLmZuU2NvcGVJZCkpdS5zZXRTdHlsZVNjb3BlKGUuZWxtLHQpO2Vsc2UgZm9yKHZhciByPWU7cjspbih0PXIuY29udGV4dCkmJm4odD10LiRvcHRpb25zLl9zY29wZUlkKSYmdS5zZXRTdHlsZVNjb3BlKGUuZWxtLHQpLHI9ci5wYXJlbnQ7bih0PVd0KSYmdCE9PWUuY29udGV4dCYmdCE9PWUuZm5Db250ZXh0JiZuKHQ9dC4kb3B0aW9ucy5fc2NvcGVJZCkmJnUuc2V0U3R5bGVTY29wZShlLmVsbSx0KX1mdW5jdGlvbiBfKGUsdCxuLHIsaSxvKXtmb3IoO3I8PWk7KytyKWYobltyXSxvLGUsdCwhMSxuLHIpfWZ1bmN0aW9uIGIoZSl7dmFyIHQscixpPWUuZGF0YTtpZihuKGkpKWZvcihuKHQ9aS5ob29rKSYmbih0PXQuZGVzdHJveSkmJnQoZSksdD0wO3Q8cy5kZXN0cm95Lmxlbmd0aDsrK3Qpcy5kZXN0cm95W3RdKGUpO2lmKG4odD1lLmNoaWxkcmVuKSlmb3Iocj0wO3I8ZS5jaGlsZHJlbi5sZW5ndGg7KytyKWIoZS5jaGlsZHJlbltyXSl9ZnVuY3Rpb24gJChlLHQscil7Zm9yKDt0PD1yOysrdCl7dmFyIGk9ZVt0XTtuKGkpJiYobihpLnRhZyk\/KHcoaSksYihpKSk6bChpLmVsbSkpfX1mdW5jdGlvbiB3KGUsdCl7aWYobih0KXx8bihlLmRhdGEpKXt2YXIgcixpPXMucmVtb3ZlLmxlbmd0aCsxO2ZvcihuKHQpP3QubGlzdGVuZXJzKz1pOnQ9ZnVuY3Rpb24oZSx0KXtmdW5jdGlvbiBuKCl7MD09LS1uLmxpc3RlbmVycyYmbChlKX1yZXR1cm4gbi5saXN0ZW5lcnM9dCxufShlLmVsbSxpKSxuKHI9ZS5jb21wb25lbnRJbnN0YW5jZSkmJm4ocj1yLl92bm9kZSkmJm4oci5kYXRhKSYmdyhyLHQpLHI9MDtyPHMucmVtb3ZlLmxlbmd0aDsrK3Ipcy5yZW1vdmVbcl0oZSx0KTtuKHI9ZS5kYXRhLmhvb2spJiZuKHI9ci5yZW1vdmUpP3IoZSx0KTp0KCl9ZWxzZSBsKGUuZWxtKX1mdW5jdGlvbiBDKGUsdCxyLGkpe2Zvcih2YXIgbz1yO288aTtvKyspe3ZhciBhPXRbb107aWYobihhKSYmaXIoZSxhKSlyZXR1cm4gb319ZnVuY3Rpb24geChlLGksbyxhLGMsbCl7aWYoZSE9PWkpe24oaS5lbG0pJiZuKGEpJiYoaT1hW2NdPW1lKGkpKTt2YXIgcD1pLmVsbT1lLmVsbTtpZihyKGUuaXNBc3luY1BsYWNlaG9sZGVyKSluKGkuYXN5bmNGYWN0b3J5LnJlc29sdmVkKT9PKGUuZWxtLGksbyk6aS5pc0FzeW5jUGxhY2Vob2xkZXI9ITA7ZWxzZSBpZihyKGkuaXNTdGF0aWMpJiZyKGUuaXNTdGF0aWMpJiZpLmtleT09PWUua2V5JiYocihpLmlzQ2xvbmVkKXx8cihpLmlzT25jZSkpKWkuY29tcG9uZW50SW5zdGFuY2U9ZS5jb21wb25lbnRJbnN0YW5jZTtlbHNle3ZhciBkLHY9aS5kYXRhO24odikmJm4oZD12Lmhvb2spJiZuKGQ9ZC5wcmVwYXRjaCkmJmQoZSxpKTt2YXIgaD1lLmNoaWxkcmVuLHk9aS5jaGlsZHJlbjtpZihuKHYpJiZtKGkpKXtmb3IoZD0wO2Q8cy51cGRhdGUubGVuZ3RoOysrZClzLnVwZGF0ZVtkXShlLGkpO24oZD12Lmhvb2spJiZuKGQ9ZC51cGRhdGUpJiZkKGUsaSl9dChpLnRleHQpP24oaCkmJm4oeSk\/aCE9PXkmJmZ1bmN0aW9uKGUscixpLG8sYSl7Zm9yKHZhciBzLGMsbCxwPTAsZD0wLHY9ci5sZW5ndGgtMSxoPXJbMF0sbT1yW3ZdLHk9aS5sZW5ndGgtMSxnPWlbMF0sYj1pW3ldLHc9IWE7cDw9diYmZDw9eTspdChoKT9oPXJbKytwXTp0KG0pP209clstLXZdOmlyKGgsZyk\/KHgoaCxnLG8saSxkKSxoPXJbKytwXSxnPWlbKytkXSk6aXIobSxiKT8oeChtLGIsbyxpLHkpLG09clstLXZdLGI9aVstLXldKTppcihoLGIpPyh4KGgsYixvLGkseSksdyYmdS5pbnNlcnRCZWZvcmUoZSxoLmVsbSx1Lm5leHRTaWJsaW5nKG0uZWxtKSksaD1yWysrcF0sYj1pWy0teV0pOmlyKG0sZyk\/KHgobSxnLG8saSxkKSx3JiZ1Lmluc2VydEJlZm9yZShlLG0uZWxtLGguZWxtKSxtPXJbLS12XSxnPWlbKytkXSk6KHQocykmJihzPW9yKHIscCx2KSksdChjPW4oZy5rZXkpP3NbZy5rZXldOkMoZyxyLHAsdikpP2YoZyxvLGUsaC5lbG0sITEsaSxkKTppcihsPXJbY10sZyk\/KHgobCxnLG8saSxkKSxyW2NdPXZvaWQgMCx3JiZ1Lmluc2VydEJlZm9yZShlLGwuZWxtLGguZWxtKSk6ZihnLG8sZSxoLmVsbSwhMSxpLGQpLGc9aVsrK2RdKTtwPnY\/XyhlLHQoaVt5KzFdKT9udWxsOmlbeSsxXS5lbG0saSxkLHksbyk6ZD55JiYkKHIscCx2KX0ocCxoLHksbyxsKTpuKHkpPyhuKGUudGV4dCkmJnUuc2V0VGV4dENvbnRlbnQocCwiIiksXyhwLG51bGwseSwwLHkubGVuZ3RoLTEsbykpOm4oaCk\/JChoLDAsaC5sZW5ndGgtMSk6bihlLnRleHQpJiZ1LnNldFRleHRDb250ZW50KHAsIiIpOmUudGV4dCE9PWkudGV4dCYmdS5zZXRUZXh0Q29udGVudChwLGkudGV4dCksbih2KSYmbihkPXYuaG9vaykmJm4oZD1kLnBvc3RwYXRjaCkmJmQoZSxpKX19fWZ1bmN0aW9uIGsoZSx0LGkpe2lmKHIoaSkmJm4oZS5wYXJlbnQpKWUucGFyZW50LmRhdGEucGVuZGluZ0luc2VydD10O2Vsc2UgZm9yKHZhciBvPTA7bzx0Lmxlbmd0aDsrK28pdFtvXS5kYXRhLmhvb2suaW5zZXJ0KHRbb10pfXZhciBBPXAoImF0dHJzLGNsYXNzLHN0YXRpY0NsYXNzLHN0YXRpY1N0eWxlLGtleSIpO2Z1bmN0aW9uIE8oZSx0LGksbyl7dmFyIGEscz10LnRhZyxjPXQuZGF0YSx1PXQuY2hpbGRyZW47aWYobz1vfHxjJiZjLnByZSx0LmVsbT1lLHIodC5pc0NvbW1lbnQpJiZuKHQuYXN5bmNGYWN0b3J5KSlyZXR1cm4gdC5pc0FzeW5jUGxhY2Vob2xkZXI9ITAsITA7aWYobihjKSYmKG4oYT1jLmhvb2spJiZuKGE9YS5pbml0KSYmYSh0LCEwKSxuKGE9dC5jb21wb25lbnRJbnN0YW5jZSkpKXJldHVybiBkKHQsaSksITA7aWYobihzKSl7aWYobih1KSlpZihlLmhhc0NoaWxkTm9kZXMoKSlpZihuKGE9YykmJm4oYT1hLmRvbVByb3BzKSYmbihhPWEuaW5uZXJIVE1MKSl7aWYoYSE9PWUuaW5uZXJIVE1MKXJldHVybiExfWVsc2V7Zm9yKHZhciBsPSEwLGY9ZS5maXJzdENoaWxkLHA9MDtwPHUubGVuZ3RoO3ArKyl7aWYoIWZ8fCFPKGYsdVtwXSxpLG8pKXtsPSExO2JyZWFrfWY9Zi5uZXh0U2libGluZ31pZighbHx8ZilyZXR1cm4hMX1lbHNlIGgodCx1LGkpO2lmKG4oYykpe3ZhciB2PSExO2Zvcih2YXIgbSBpbiBjKWlmKCFBKG0pKXt2PSEwLHkodCxpKTticmVha30hdiYmYy5jbGFzcyYmZXQoYy5jbGFzcyl9fWVsc2UgZS5kYXRhIT09dC50ZXh0JiYoZS5kYXRhPXQudGV4dCk7cmV0dXJuITB9cmV0dXJuIGZ1bmN0aW9uKGUsaSxvLGEpe2lmKCF0KGkpKXt2YXIgYyxsPSExLHA9W107aWYodChlKSlsPSEwLGYoaSxwKTtlbHNle3ZhciBkPW4oZS5ub2RlVHlwZSk7aWYoIWQmJmlyKGUsaSkpeChlLGkscCxudWxsLG51bGwsYSk7ZWxzZXtpZihkKXtpZigxPT09ZS5ub2RlVHlwZSYmZS5oYXNBdHRyaWJ1dGUoTCkmJihlLnJlbW92ZUF0dHJpYnV0ZShMKSxvPSEwKSxyKG8pJiZPKGUsaSxwKSlyZXR1cm4gayhpLHAsITApLGU7Yz1lLGU9bmV3IHBlKHUudGFnTmFtZShjKS50b0xvd2VyQ2FzZSgpLHt9LFtdLHZvaWQgMCxjKX12YXIgdj1lLmVsbSxoPXUucGFyZW50Tm9kZSh2KTtpZihmKGkscCx2Ll9sZWF2ZUNiP251bGw6aCx1Lm5leHRTaWJsaW5nKHYpKSxuKGkucGFyZW50KSlmb3IodmFyIHk9aS5wYXJlbnQsZz1tKGkpO3k7KXtmb3IodmFyIF89MDtfPHMuZGVzdHJveS5sZW5ndGg7KytfKXMuZGVzdHJveVtfXSh5KTtpZih5LmVsbT1pLmVsbSxnKXtmb3IodmFyIHc9MDt3PHMuY3JlYXRlLmxlbmd0aDsrK3cpcy5jcmVhdGVbd10obnIseSk7dmFyIEM9eS5kYXRhLmhvb2suaW5zZXJ0O2lmKEMubWVyZ2VkKWZvcih2YXIgQT0xO0E8Qy5mbnMubGVuZ3RoO0ErKylDLmZuc1tBXSgpfWVsc2UgdHIoeSk7eT15LnBhcmVudH1uKGgpPyQoW2VdLDAsMCk6bihlLnRhZykmJmIoZSl9fXJldHVybiBrKGkscCxsKSxpLmVsbX1uKGUpJiZiKGUpfX0oe25vZGVPcHM6UW4sbW9kdWxlczpbbXIseHIsbmksb2ksbWksej97Y3JlYXRlOlVpLGFjdGl2YXRlOlVpLHJlbW92ZTpmdW5jdGlvbihlLHQpeyEwIT09ZS5kYXRhLnNob3c\/UmkoZSx0KTp0KCl9fTp7fV0uY29uY2F0KHByKX0pO1cmJmRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoInNlbGVjdGlvbmNoYW5nZSIsZnVuY3Rpb24oKXt2YXIgZT1kb2N1bWVudC5hY3RpdmVFbGVtZW50O2UmJmUudm1vZGVsJiZYaShlLCJpbnB1dCIpfSk7dmFyIFZpPXtpbnNlcnRlZDpmdW5jdGlvbihlLHQsbixyKXsic2VsZWN0Ij09PW4udGFnPyhyLmVsbSYmIXIuZWxtLl92T3B0aW9ucz9pdChuLCJwb3N0cGF0Y2giLGZ1bmN0aW9uKCl7VmkuY29tcG9uZW50VXBkYXRlZChlLHQsbil9KTpLaShlLHQsbi5jb250ZXh0KSxlLl92T3B0aW9ucz1bXS5tYXAuY2FsbChlLm9wdGlvbnMsV2kpKTooInRleHRhcmVhIj09PW4udGFnfHxYbihlLnR5cGUpKSYmKGUuX3ZNb2RpZmllcnM9dC5tb2RpZmllcnMsdC5tb2RpZmllcnMubGF6eXx8KGUuYWRkRXZlbnRMaXN0ZW5lcigiY29tcG9zaXRpb25zdGFydCIsWmkpLGUuYWRkRXZlbnRMaXN0ZW5lcigiY29tcG9zaXRpb25lbmQiLEdpKSxlLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsR2kpLFcmJihlLnZtb2RlbD0hMCkpKX0sY29tcG9uZW50VXBkYXRlZDpmdW5jdGlvbihlLHQsbil7aWYoInNlbGVjdCI9PT1uLnRhZyl7S2koZSx0LG4uY29udGV4dCk7dmFyIHI9ZS5fdk9wdGlvbnMsaT1lLl92T3B0aW9ucz1bXS5tYXAuY2FsbChlLm9wdGlvbnMsV2kpO2lmKGkuc29tZShmdW5jdGlvbihlLHQpe3JldHVybiFOKGUsclt0XSl9KSkoZS5tdWx0aXBsZT90LnZhbHVlLnNvbWUoZnVuY3Rpb24oZSl7cmV0dXJuIHFpKGUsaSl9KTp0LnZhbHVlIT09dC5vbGRWYWx1ZSYmcWkodC52YWx1ZSxpKSkmJlhpKGUsImNoYW5nZSIpfX19O2Z1bmN0aW9uIEtpKGUsdCxuKXtKaShlLHQsbiksKHF8fFopJiZzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7SmkoZSx0LG4pfSwwKX1mdW5jdGlvbiBKaShlLHQsbil7dmFyIHI9dC52YWx1ZSxpPWUubXVsdGlwbGU7aWYoIWl8fEFycmF5LmlzQXJyYXkocikpe2Zvcih2YXIgbyxhLHM9MCxjPWUub3B0aW9ucy5sZW5ndGg7czxjO3MrKylpZihhPWUub3B0aW9uc1tzXSxpKW89aihyLFdpKGEpKT4tMSxhLnNlbGVjdGVkIT09byYmKGEuc2VsZWN0ZWQ9byk7ZWxzZSBpZihOKFdpKGEpLHIpKXJldHVybiB2b2lkKGUuc2VsZWN0ZWRJbmRleCE9PXMmJihlLnNlbGVjdGVkSW5kZXg9cykpO2l8fChlLnNlbGVjdGVkSW5kZXg9LTEpfX1mdW5jdGlvbiBxaShlLHQpe3JldHVybiB0LmV2ZXJ5KGZ1bmN0aW9uKHQpe3JldHVybiFOKHQsZSl9KX1mdW5jdGlvbiBXaShlKXtyZXR1cm4iX3ZhbHVlImluIGU\/ZS5fdmFsdWU6ZS52YWx1ZX1mdW5jdGlvbiBaaShlKXtlLnRhcmdldC5jb21wb3Npbmc9ITB9ZnVuY3Rpb24gR2koZSl7ZS50YXJnZXQuY29tcG9zaW5nJiYoZS50YXJnZXQuY29tcG9zaW5nPSExLFhpKGUudGFyZ2V0LCJpbnB1dCIpKX1mdW5jdGlvbiBYaShlLHQpe3ZhciBuPWRvY3VtZW50LmNyZWF0ZUV2ZW50KCJIVE1MRXZlbnRzIik7bi5pbml0RXZlbnQodCwhMCwhMCksZS5kaXNwYXRjaEV2ZW50KG4pfWZ1bmN0aW9uIFlpKGUpe3JldHVybiFlLmNvbXBvbmVudEluc3RhbmNlfHxlLmRhdGEmJmUuZGF0YS50cmFuc2l0aW9uP2U6WWkoZS5jb21wb25lbnRJbnN0YW5jZS5fdm5vZGUpfXZhciBRaT17bW9kZWw6Vmksc2hvdzp7YmluZDpmdW5jdGlvbihlLHQsbil7dmFyIHI9dC52YWx1ZSxpPShuPVlpKG4pKS5kYXRhJiZuLmRhdGEudHJhbnNpdGlvbixvPWUuX192T3JpZ2luYWxEaXNwbGF5PSJub25lIj09PWUuc3R5bGUuZGlzcGxheT8iIjplLnN0eWxlLmRpc3BsYXk7ciYmaT8obi5kYXRhLnNob3c9ITAsUGkobixmdW5jdGlvbigpe2Uuc3R5bGUuZGlzcGxheT1vfSkpOmUuc3R5bGUuZGlzcGxheT1yP286Im5vbmUifSx1cGRhdGU6ZnVuY3Rpb24oZSx0LG4pe3ZhciByPXQudmFsdWU7IXIhPSF0Lm9sZFZhbHVlJiYoKG49WWkobikpLmRhdGEmJm4uZGF0YS50cmFuc2l0aW9uPyhuLmRhdGEuc2hvdz0hMCxyP1BpKG4sZnVuY3Rpb24oKXtlLnN0eWxlLmRpc3BsYXk9ZS5fX3ZPcmlnaW5hbERpc3BsYXl9KTpSaShuLGZ1bmN0aW9uKCl7ZS5zdHlsZS5kaXNwbGF5PSJub25lIn0pKTplLnN0eWxlLmRpc3BsYXk9cj9lLl9fdk9yaWdpbmFsRGlzcGxheToibm9uZSIpfSx1bmJpbmQ6ZnVuY3Rpb24oZSx0LG4scixpKXtpfHwoZS5zdHlsZS5kaXNwbGF5PWUuX192T3JpZ2luYWxEaXNwbGF5KX19fSxlbz17bmFtZTpTdHJpbmcsYXBwZWFyOkJvb2xlYW4sY3NzOkJvb2xlYW4sbW9kZTpTdHJpbmcsdHlwZTpTdHJpbmcsZW50ZXJDbGFzczpTdHJpbmcsbGVhdmVDbGFzczpTdHJpbmcsZW50ZXJUb0NsYXNzOlN0cmluZyxsZWF2ZVRvQ2xhc3M6U3RyaW5nLGVudGVyQWN0aXZlQ2xhc3M6U3RyaW5nLGxlYXZlQWN0aXZlQ2xhc3M6U3RyaW5nLGFwcGVhckNsYXNzOlN0cmluZyxhcHBlYXJBY3RpdmVDbGFzczpTdHJpbmcsYXBwZWFyVG9DbGFzczpTdHJpbmcsZHVyYXRpb246W051bWJlcixTdHJpbmcsT2JqZWN0XX07ZnVuY3Rpb24gdG8oZSl7dmFyIHQ9ZSYmZS5jb21wb25lbnRPcHRpb25zO3JldHVybiB0JiZ0LkN0b3Iub3B0aW9ucy5hYnN0cmFjdD90byh6dCh0LmNoaWxkcmVuKSk6ZX1mdW5jdGlvbiBubyhlKXt2YXIgdD17fSxuPWUuJG9wdGlvbnM7Zm9yKHZhciByIGluIG4ucHJvcHNEYXRhKXRbcl09ZVtyXTt2YXIgaT1uLl9wYXJlbnRMaXN0ZW5lcnM7Zm9yKHZhciBvIGluIGkpdFtiKG8pXT1pW29dO3JldHVybiB0fWZ1bmN0aW9uIHJvKGUsdCl7aWYoL1xkLWtlZXAtYWxpdmUkLy50ZXN0KHQudGFnKSlyZXR1cm4gZSgia2VlcC1hbGl2ZSIse3Byb3BzOnQuY29tcG9uZW50T3B0aW9ucy5wcm9wc0RhdGF9KX12YXIgaW89ZnVuY3Rpb24oZSl7cmV0dXJuIGUudGFnfHxVdChlKX0sb289ZnVuY3Rpb24oZSl7cmV0dXJuInNob3ciPT09ZS5uYW1lfSxhbz17bmFtZToidHJhbnNpdGlvbiIscHJvcHM6ZW8sYWJzdHJhY3Q6ITAscmVuZGVyOmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMsbj10aGlzLiRzbG90cy5kZWZhdWx0O2lmKG4mJihuPW4uZmlsdGVyKGlvKSkubGVuZ3RoKXt2YXIgcj10aGlzLm1vZGUsbz1uWzBdO2lmKGZ1bmN0aW9uKGUpe2Zvcig7ZT1lLnBhcmVudDspaWYoZS5kYXRhLnRyYW5zaXRpb24pcmV0dXJuITB9KHRoaXMuJHZub2RlKSlyZXR1cm4gbzt2YXIgYT10byhvKTtpZighYSlyZXR1cm4gbztpZih0aGlzLl9sZWF2aW5nKXJldHVybiBybyhlLG8pO3ZhciBzPSJfX3RyYW5zaXRpb24tIit0aGlzLl91aWQrIi0iO2Eua2V5PW51bGw9PWEua2V5P2EuaXNDb21tZW50P3MrImNvbW1lbnQiOnMrYS50YWc6aShhLmtleSk\/MD09PVN0cmluZyhhLmtleSkuaW5kZXhPZihzKT9hLmtleTpzK2Eua2V5OmEua2V5O3ZhciBjPShhLmRhdGF8fChhLmRhdGE9e30pKS50cmFuc2l0aW9uPW5vKHRoaXMpLHU9dGhpcy5fdm5vZGUsbD10byh1KTtpZihhLmRhdGEuZGlyZWN0aXZlcyYmYS5kYXRhLmRpcmVjdGl2ZXMuc29tZShvbykmJihhLmRhdGEuc2hvdz0hMCksbCYmbC5kYXRhJiYhZnVuY3Rpb24oZSx0KXtyZXR1cm4gdC5rZXk9PT1lLmtleSYmdC50YWc9PT1lLnRhZ30oYSxsKSYmIVV0KGwpJiYoIWwuY29tcG9uZW50SW5zdGFuY2V8fCFsLmNvbXBvbmVudEluc3RhbmNlLl92bm9kZS5pc0NvbW1lbnQpKXt2YXIgZj1sLmRhdGEudHJhbnNpdGlvbj1BKHt9LGMpO2lmKCJvdXQtaW4iPT09cilyZXR1cm4gdGhpcy5fbGVhdmluZz0hMCxpdChmLCJhZnRlckxlYXZlIixmdW5jdGlvbigpe3QuX2xlYXZpbmc9ITEsdC4kZm9yY2VVcGRhdGUoKX0pLHJvKGUsbyk7aWYoImluLW91dCI9PT1yKXtpZihVdChhKSlyZXR1cm4gdTt2YXIgcCxkPWZ1bmN0aW9uKCl7cCgpfTtpdChjLCJhZnRlckVudGVyIixkKSxpdChjLCJlbnRlckNhbmNlbGxlZCIsZCksaXQoZiwiZGVsYXlMZWF2ZSIsZnVuY3Rpb24oZSl7cD1lfSl9fXJldHVybiBvfX19LHNvPUEoe3RhZzpTdHJpbmcsbW92ZUNsYXNzOlN0cmluZ30sZW8pO2Z1bmN0aW9uIGNvKGUpe2UuZWxtLl9tb3ZlQ2ImJmUuZWxtLl9tb3ZlQ2IoKSxlLmVsbS5fZW50ZXJDYiYmZS5lbG0uX2VudGVyQ2IoKX1mdW5jdGlvbiB1byhlKXtlLmRhdGEubmV3UG9zPWUuZWxtLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpfWZ1bmN0aW9uIGxvKGUpe3ZhciB0PWUuZGF0YS5wb3Msbj1lLmRhdGEubmV3UG9zLHI9dC5sZWZ0LW4ubGVmdCxpPXQudG9wLW4udG9wO2lmKHJ8fGkpe2UuZGF0YS5tb3ZlZD0hMDt2YXIgbz1lLmVsbS5zdHlsZTtvLnRyYW5zZm9ybT1vLldlYmtpdFRyYW5zZm9ybT0idHJhbnNsYXRlKCIrcisicHgsIitpKyJweCkiLG8udHJhbnNpdGlvbkR1cmF0aW9uPSIwcyJ9fWRlbGV0ZSBzby5tb2RlO3ZhciBmbz17VHJhbnNpdGlvbjphbyxUcmFuc2l0aW9uR3JvdXA6e3Byb3BzOnNvLGJlZm9yZU1vdW50OmZ1bmN0aW9uKCl7dmFyIGU9dGhpcyx0PXRoaXMuX3VwZGF0ZTt0aGlzLl91cGRhdGU9ZnVuY3Rpb24obixyKXt2YXIgaT1adChlKTtlLl9fcGF0Y2hfXyhlLl92bm9kZSxlLmtlcHQsITEsITApLGUuX3Zub2RlPWUua2VwdCxpKCksdC5jYWxsKGUsbixyKX19LHJlbmRlcjpmdW5jdGlvbihlKXtmb3IodmFyIHQ9dGhpcy50YWd8fHRoaXMuJHZub2RlLmRhdGEudGFnfHwic3BhbiIsbj1PYmplY3QuY3JlYXRlKG51bGwpLHI9dGhpcy5wcmV2Q2hpbGRyZW49dGhpcy5jaGlsZHJlbixpPXRoaXMuJHNsb3RzLmRlZmF1bHR8fFtdLG89dGhpcy5jaGlsZHJlbj1bXSxhPW5vKHRoaXMpLHM9MDtzPGkubGVuZ3RoO3MrKyl7dmFyIGM9aVtzXTtjLnRhZyYmbnVsbCE9Yy5rZXkmJjAhPT1TdHJpbmcoYy5rZXkpLmluZGV4T2YoIl9fdmxpc3QiKSYmKG8ucHVzaChjKSxuW2Mua2V5XT1jLChjLmRhdGF8fChjLmRhdGE9e30pKS50cmFuc2l0aW9uPWEpfWlmKHIpe2Zvcih2YXIgdT1bXSxsPVtdLGY9MDtmPHIubGVuZ3RoO2YrKyl7dmFyIHA9cltmXTtwLmRhdGEudHJhbnNpdGlvbj1hLHAuZGF0YS5wb3M9cC5lbG0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksbltwLmtleV0\/dS5wdXNoKHApOmwucHVzaChwKX10aGlzLmtlcHQ9ZSh0LG51bGwsdSksdGhpcy5yZW1vdmVkPWx9cmV0dXJuIGUodCxudWxsLG8pfSx1cGRhdGVkOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5wcmV2Q2hpbGRyZW4sdD10aGlzLm1vdmVDbGFzc3x8KHRoaXMubmFtZXx8InYiKSsiLW1vdmUiO2UubGVuZ3RoJiZ0aGlzLmhhc01vdmUoZVswXS5lbG0sdCkmJihlLmZvckVhY2goY28pLGUuZm9yRWFjaCh1byksZS5mb3JFYWNoKGxvKSx0aGlzLl9yZWZsb3c9ZG9jdW1lbnQuYm9keS5vZmZzZXRIZWlnaHQsZS5mb3JFYWNoKGZ1bmN0aW9uKGUpe2lmKGUuZGF0YS5tb3ZlZCl7dmFyIG49ZS5lbG0scj1uLnN0eWxlO05pKG4sdCksci50cmFuc2Zvcm09ci5XZWJraXRUcmFuc2Zvcm09ci50cmFuc2l0aW9uRHVyYXRpb249IiIsbi5hZGRFdmVudExpc3RlbmVyKEFpLG4uX21vdmVDYj1mdW5jdGlvbiBlKHIpe3ImJnIudGFyZ2V0IT09bnx8ciYmIS90cmFuc2Zvcm0kLy50ZXN0KHIucHJvcGVydHlOYW1lKXx8KG4ucmVtb3ZlRXZlbnRMaXN0ZW5lcihBaSxlKSxuLl9tb3ZlQ2I9bnVsbCxqaShuLHQpKX0pfX0pKX0sbWV0aG9kczp7aGFzTW92ZTpmdW5jdGlvbihlLHQpe2lmKCF3aSlyZXR1cm4hMTtpZih0aGlzLl9oYXNNb3ZlKXJldHVybiB0aGlzLl9oYXNNb3ZlO3ZhciBuPWUuY2xvbmVOb2RlKCk7ZS5fdHJhbnNpdGlvbkNsYXNzZXMmJmUuX3RyYW5zaXRpb25DbGFzc2VzLmZvckVhY2goZnVuY3Rpb24oZSl7X2kobixlKX0pLGdpKG4sdCksbi5zdHlsZS5kaXNwbGF5PSJub25lIix0aGlzLiRlbC5hcHBlbmRDaGlsZChuKTt2YXIgcj1NaShuKTtyZXR1cm4gdGhpcy4kZWwucmVtb3ZlQ2hpbGQobiksdGhpcy5faGFzTW92ZT1yLmhhc1RyYW5zZm9ybX19fX07d24uY29uZmlnLm11c3RVc2VQcm9wPWpuLHduLmNvbmZpZy5pc1Jlc2VydmVkVGFnPVduLHduLmNvbmZpZy5pc1Jlc2VydmVkQXR0cj1Fbix3bi5jb25maWcuZ2V0VGFnTmFtZXNwYWNlPVpuLHduLmNvbmZpZy5pc1Vua25vd25FbGVtZW50PWZ1bmN0aW9uKGUpe2lmKCF6KXJldHVybiEwO2lmKFduKGUpKXJldHVybiExO2lmKGU9ZS50b0xvd2VyQ2FzZSgpLG51bGwhPUduW2VdKXJldHVybiBHbltlXTt2YXIgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KGUpO3JldHVybiBlLmluZGV4T2YoIi0iKT4tMT9HbltlXT10LmNvbnN0cnVjdG9yPT09d2luZG93LkhUTUxVbmtub3duRWxlbWVudHx8dC5jb25zdHJ1Y3Rvcj09PXdpbmRvdy5IVE1MRWxlbWVudDpHbltlXT0vSFRNTFVua25vd25FbGVtZW50Ly50ZXN0KHQudG9TdHJpbmcoKSl9LEEod24ub3B0aW9ucy5kaXJlY3RpdmVzLFFpKSxBKHduLm9wdGlvbnMuY29tcG9uZW50cyxmbyksd24ucHJvdG90eXBlLl9fcGF0Y2hfXz16P3ppOlMsd24ucHJvdG90eXBlLiRtb3VudD1mdW5jdGlvbihlLHQpe3JldHVybiBmdW5jdGlvbihlLHQsbil7dmFyIHI7cmV0dXJuIGUuJGVsPXQsZS4kb3B0aW9ucy5yZW5kZXJ8fChlLiRvcHRpb25zLnJlbmRlcj12ZSksWXQoZSwiYmVmb3JlTW91bnQiKSxyPWZ1bmN0aW9uKCl7ZS5fdXBkYXRlKGUuX3JlbmRlcigpLG4pfSxuZXcgZm4oZSxyLFMse2JlZm9yZTpmdW5jdGlvbigpe2UuX2lzTW91bnRlZCYmIWUuX2lzRGVzdHJveWVkJiZZdChlLCJiZWZvcmVVcGRhdGUiKX19LCEwKSxuPSExLG51bGw9PWUuJHZub2RlJiYoZS5faXNNb3VudGVkPSEwLFl0KGUsIm1vdW50ZWQiKSksZX0odGhpcyxlPWUmJno\/WW4oZSk6dm9pZCAwLHQpfSx6JiZzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Ri5kZXZ0b29scyYmbmUmJm5lLmVtaXQoImluaXQiLHduKX0sMCk7dmFyIHBvPS9ce1x7KCg\/Oi58XHI\/XG4pKz8pXH1cfS9nLHZvPS9bLS4qKz9eJHt9KCl8W1xdXC9cXF0vZyxobz1nKGZ1bmN0aW9uKGUpe3ZhciB0PWVbMF0ucmVwbGFjZSh2bywiXFwkJiIpLG49ZVsxXS5yZXBsYWNlKHZvLCJcXCQmIik7cmV0dXJuIG5ldyBSZWdFeHAodCsiKCg\/Oi58XFxuKSs\/KSIrbiwiZyIpfSk7dmFyIG1vPXtzdGF0aWNLZXlzOlsic3RhdGljQ2xhc3MiXSx0cmFuc2Zvcm1Ob2RlOmZ1bmN0aW9uKGUsdCl7dC53YXJuO3ZhciBuPUZyKGUsImNsYXNzIik7biYmKGUuc3RhdGljQ2xhc3M9SlNPTi5zdHJpbmdpZnkobikpO3ZhciByPUlyKGUsImNsYXNzIiwhMSk7ciYmKGUuY2xhc3NCaW5kaW5nPXIpfSxnZW5EYXRhOmZ1bmN0aW9uKGUpe3ZhciB0PSIiO3JldHVybiBlLnN0YXRpY0NsYXNzJiYodCs9InN0YXRpY0NsYXNzOiIrZS5zdGF0aWNDbGFzcysiLCIpLGUuY2xhc3NCaW5kaW5nJiYodCs9ImNsYXNzOiIrZS5jbGFzc0JpbmRpbmcrIiwiKSx0fX07dmFyIHlvLGdvPXtzdGF0aWNLZXlzOlsic3RhdGljU3R5bGUiXSx0cmFuc2Zvcm1Ob2RlOmZ1bmN0aW9uKGUsdCl7dC53YXJuO3ZhciBuPUZyKGUsInN0eWxlIik7biYmKGUuc3RhdGljU3R5bGU9SlNPTi5zdHJpbmdpZnkoYWkobikpKTt2YXIgcj1JcihlLCJzdHlsZSIsITEpO3ImJihlLnN0eWxlQmluZGluZz1yKX0sZ2VuRGF0YTpmdW5jdGlvbihlKXt2YXIgdD0iIjtyZXR1cm4gZS5zdGF0aWNTdHlsZSYmKHQrPSJzdGF0aWNTdHlsZToiK2Uuc3RhdGljU3R5bGUrIiwiKSxlLnN0eWxlQmluZGluZyYmKHQrPSJzdHlsZTooIitlLnN0eWxlQmluZGluZysiKSwiKSx0fX0sX289ZnVuY3Rpb24oZSl7cmV0dXJuKHlvPXlvfHxkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSkuaW5uZXJIVE1MPWUseW8udGV4dENvbnRlbnR9LGJvPXAoImFyZWEsYmFzZSxicixjb2wsZW1iZWQsZnJhbWUsaHIsaW1nLGlucHV0LGlzaW5kZXgsa2V5Z2VuLGxpbmssbWV0YSxwYXJhbSxzb3VyY2UsdHJhY2ssd2JyIiksJG89cCgiY29sZ3JvdXAsZGQsZHQsbGksb3B0aW9ucyxwLHRkLHRmb290LHRoLHRoZWFkLHRyLHNvdXJjZSIpLHdvPXAoImFkZHJlc3MsYXJ0aWNsZSxhc2lkZSxiYXNlLGJsb2NrcXVvdGUsYm9keSxjYXB0aW9uLGNvbCxjb2xncm91cCxkZCxkZXRhaWxzLGRpYWxvZyxkaXYsZGwsZHQsZmllbGRzZXQsZmlnY2FwdGlvbixmaWd1cmUsZm9vdGVyLGZvcm0saDEsaDIsaDMsaDQsaDUsaDYsaGVhZCxoZWFkZXIsaGdyb3VwLGhyLGh0bWwsbGVnZW5kLGxpLG1lbnVpdGVtLG1ldGEsb3B0Z3JvdXAsb3B0aW9uLHBhcmFtLHJwLHJ0LHNvdXJjZSxzdHlsZSxzdW1tYXJ5LHRib2R5LHRkLHRmb290LHRoLHRoZWFkLHRpdGxlLHRyLHRyYWNrIiksQ289L15ccyooW15ccyInPD5cLz1dKykoPzpccyooPSlccyooPzoiKFteIl0qKSIrfCcoW14nXSopJyt8KFteXHMiJz08PmBdKykpKT8vLHhvPS9eXHMqKCg\/OnYtW1x3LV0rOnxAfDp8IylcW1tePV0rXF1bXlxzIic8PlwvPV0qKSg\/OlxzKig9KVxzKig\/OiIoW14iXSopIit8JyhbXiddKiknK3woW15ccyInPTw+YF0rKSkpPy8sa289IlthLXpBLVpfXVtcXC1cXC4wLTlfYS16QS1aIitQLnNvdXJjZSsiXSoiLEFvPSIoKD86IitrbysiXFw6KT8iK2tvKyIpIixPbz1uZXcgUmVnRXhwKCJePCIrQW8pLFNvPS9eXHMqKFwvPyk+LyxUbz1uZXcgUmVnRXhwKCJePFxcLyIrQW8rIltePl0qPiIpLEVvPS9ePCFET0NUWVBFIFtePl0rPi9pLE5vPS9ePCFcLS0vLGpvPS9ePCFcWy8sRG89cCgic2NyaXB0LHN0eWxlLHRleHRhcmVhIiwhMCksTG89e30sTW89eyImbHQ7IjoiPCIsIiZndDsiOiI+IiwiJnF1b3Q7IjonIicsIiZhbXA7IjoiJiIsIiYjMTA7IjoiXG4iLCImIzk7IjoiXHQiLCImIzM5OyI6IicifSxJbz0vJig\/Omx0fGd0fHF1b3R8YW1wfCMzOSk7L2csRm89LyYoPzpsdHxndHxxdW90fGFtcHwjMzl8IzEwfCM5KTsvZyxQbz1wKCJwcmUsdGV4dGFyZWEiLCEwKSxSbz1mdW5jdGlvbihlLHQpe3JldHVybiBlJiZQbyhlKSYmIlxuIj09PXRbMF19O2Z1bmN0aW9uIEhvKGUsdCl7dmFyIG49dD9GbzpJbztyZXR1cm4gZS5yZXBsYWNlKG4sZnVuY3Rpb24oZSl7cmV0dXJuIE1vW2VdfSl9dmFyIEJvLFVvLHpvLFZvLEtvLEpvLHFvLFdvLFpvPS9eQHxedi1vbjovLEdvPS9edi18XkB8Xjp8XiMvLFhvPS8oW1xzXFNdKj8pXHMrKD86aW58b2YpXHMrKFtcc1xTXSopLyxZbz0vLChbXixcfVxdXSopKD86LChbXixcfVxdXSopKT8kLyxRbz0vXlwofFwpJC9nLGVhPS9eXFsuKlxdJC8sdGE9LzooLiopJC8sbmE9L146fF5cLnxedi1iaW5kOi8scmE9L1wuW14uXF1dKyg\/PVteXF1dKiQpL2csaWE9L152LXNsb3QoOnwkKXxeIy8sb2E9L1tcclxuXS8sYWE9L1xzKy9nLHNhPWcoX28pLGNhPSJfZW1wdHlfIjtmdW5jdGlvbiB1YShlLHQsbil7cmV0dXJue3R5cGU6MSx0YWc6ZSxhdHRyc0xpc3Q6dCxhdHRyc01hcDptYSh0KSxyYXdBdHRyc01hcDp7fSxwYXJlbnQ6bixjaGlsZHJlbjpbXX19ZnVuY3Rpb24gbGEoZSx0KXtCbz10Lndhcm58fFNyLEpvPXQuaXNQcmVUYWd8fFQscW89dC5tdXN0VXNlUHJvcHx8VCxXbz10LmdldFRhZ05hbWVzcGFjZXx8VDt0LmlzUmVzZXJ2ZWRUYWc7em89VHIodC5tb2R1bGVzLCJ0cmFuc2Zvcm1Ob2RlIiksVm89VHIodC5tb2R1bGVzLCJwcmVUcmFuc2Zvcm1Ob2RlIiksS289VHIodC5tb2R1bGVzLCJwb3N0VHJhbnNmb3JtTm9kZSIpLFVvPXQuZGVsaW1pdGVyczt2YXIgbixyLGk9W10sbz0hMSE9PXQucHJlc2VydmVXaGl0ZXNwYWNlLGE9dC53aGl0ZXNwYWNlLHM9ITEsYz0hMTtmdW5jdGlvbiB1KGUpe2lmKGwoZSksc3x8ZS5wcm9jZXNzZWR8fChlPWZhKGUsdCkpLGkubGVuZ3RofHxlPT09bnx8bi5pZiYmKGUuZWxzZWlmfHxlLmVsc2UpJiZkYShuLHtleHA6ZS5lbHNlaWYsYmxvY2s6ZX0pLHImJiFlLmZvcmJpZGRlbilpZihlLmVsc2VpZnx8ZS5lbHNlKWE9ZSwodT1mdW5jdGlvbihlKXt2YXIgdD1lLmxlbmd0aDtmb3IoO3QtLTspe2lmKDE9PT1lW3RdLnR5cGUpcmV0dXJuIGVbdF07ZS5wb3AoKX19KHIuY2hpbGRyZW4pKSYmdS5pZiYmZGEodSx7ZXhwOmEuZWxzZWlmLGJsb2NrOmF9KTtlbHNle2lmKGUuc2xvdFNjb3BlKXt2YXIgbz1lLnNsb3RUYXJnZXR8fCciZGVmYXVsdCInOyhyLnNjb3BlZFNsb3RzfHwoci5zY29wZWRTbG90cz17fSkpW29dPWV9ci5jaGlsZHJlbi5wdXNoKGUpLGUucGFyZW50PXJ9dmFyIGEsdTtlLmNoaWxkcmVuPWUuY2hpbGRyZW4uZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiFlLnNsb3RTY29wZX0pLGwoZSksZS5wcmUmJihzPSExKSxKbyhlLnRhZykmJihjPSExKTtmb3IodmFyIGY9MDtmPEtvLmxlbmd0aDtmKyspS29bZl0oZSx0KX1mdW5jdGlvbiBsKGUpe2lmKCFjKWZvcih2YXIgdDsodD1lLmNoaWxkcmVuW2UuY2hpbGRyZW4ubGVuZ3RoLTFdKSYmMz09PXQudHlwZSYmIiAiPT09dC50ZXh0OyllLmNoaWxkcmVuLnBvcCgpfXJldHVybiBmdW5jdGlvbihlLHQpe2Zvcih2YXIgbixyLGk9W10sbz10LmV4cGVjdEhUTUwsYT10LmlzVW5hcnlUYWd8fFQscz10LmNhbkJlTGVmdE9wZW5UYWd8fFQsYz0wO2U7KXtpZihuPWUsciYmRG8ocikpe3ZhciB1PTAsbD1yLnRvTG93ZXJDYXNlKCksZj1Mb1tsXXx8KExvW2xdPW5ldyBSZWdFeHAoIihbXFxzXFxTXSo\/KSg8LyIrbCsiW14+XSo+KSIsImkiKSkscD1lLnJlcGxhY2UoZixmdW5jdGlvbihlLG4scil7cmV0dXJuIHU9ci5sZW5ndGgsRG8obCl8fCJub3NjcmlwdCI9PT1sfHwobj1uLnJlcGxhY2UoLzwhXC0tKFtcc1xTXSo\/KS0tPi9nLCIkMSIpLnJlcGxhY2UoLzwhXFtDREFUQVxbKFtcc1xTXSo\/KV1dPi9nLCIkMSIpKSxSbyhsLG4pJiYobj1uLnNsaWNlKDEpKSx0LmNoYXJzJiZ0LmNoYXJzKG4pLCIifSk7Yys9ZS5sZW5ndGgtcC5sZW5ndGgsZT1wLEEobCxjLXUsYyl9ZWxzZXt2YXIgZD1lLmluZGV4T2YoIjwiKTtpZigwPT09ZCl7aWYoTm8udGVzdChlKSl7dmFyIHY9ZS5pbmRleE9mKCItLVx4M2UiKTtpZih2Pj0wKXt0LnNob3VsZEtlZXBDb21tZW50JiZ0LmNvbW1lbnQoZS5zdWJzdHJpbmcoNCx2KSxjLGMrdiszKSxDKHYrMyk7Y29udGludWV9fWlmKGpvLnRlc3QoZSkpe3ZhciBoPWUuaW5kZXhPZigiXT4iKTtpZihoPj0wKXtDKGgrMik7Y29udGludWV9fXZhciBtPWUubWF0Y2goRW8pO2lmKG0pe0MobVswXS5sZW5ndGgpO2NvbnRpbnVlfXZhciB5PWUubWF0Y2goVG8pO2lmKHkpe3ZhciBnPWM7Qyh5WzBdLmxlbmd0aCksQSh5WzFdLGcsYyk7Y29udGludWV9dmFyIF89eCgpO2lmKF8pe2soXyksUm8oXy50YWdOYW1lLGUpJiZDKDEpO2NvbnRpbnVlfX12YXIgYj12b2lkIDAsJD12b2lkIDAsdz12b2lkIDA7aWYoZD49MCl7Zm9yKCQ9ZS5zbGljZShkKTshKFRvLnRlc3QoJCl8fE9vLnRlc3QoJCl8fE5vLnRlc3QoJCl8fGpvLnRlc3QoJCl8fCh3PSQuaW5kZXhPZigiPCIsMSkpPDApOylkKz13LCQ9ZS5zbGljZShkKTtiPWUuc3Vic3RyaW5nKDAsZCl9ZDwwJiYoYj1lKSxiJiZDKGIubGVuZ3RoKSx0LmNoYXJzJiZiJiZ0LmNoYXJzKGIsYy1iLmxlbmd0aCxjKX1pZihlPT09bil7dC5jaGFycyYmdC5jaGFycyhlKTticmVha319ZnVuY3Rpb24gQyh0KXtjKz10LGU9ZS5zdWJzdHJpbmcodCl9ZnVuY3Rpb24geCgpe3ZhciB0PWUubWF0Y2goT28pO2lmKHQpe3ZhciBuLHIsaT17dGFnTmFtZTp0WzFdLGF0dHJzOltdLHN0YXJ0OmN9O2ZvcihDKHRbMF0ubGVuZ3RoKTshKG49ZS5tYXRjaChTbykpJiYocj1lLm1hdGNoKHhvKXx8ZS5tYXRjaChDbykpOylyLnN0YXJ0PWMsQyhyWzBdLmxlbmd0aCksci5lbmQ9YyxpLmF0dHJzLnB1c2gocik7aWYobilyZXR1cm4gaS51bmFyeVNsYXNoPW5bMV0sQyhuWzBdLmxlbmd0aCksaS5lbmQ9YyxpfX1mdW5jdGlvbiBrKGUpe3ZhciBuPWUudGFnTmFtZSxjPWUudW5hcnlTbGFzaDtvJiYoInAiPT09ciYmd28obikmJkEocikscyhuKSYmcj09PW4mJkEobikpO2Zvcih2YXIgdT1hKG4pfHwhIWMsbD1lLmF0dHJzLmxlbmd0aCxmPW5ldyBBcnJheShsKSxwPTA7cDxsO3ArKyl7dmFyIGQ9ZS5hdHRyc1twXSx2PWRbM118fGRbNF18fGRbNV18fCIiLGg9ImEiPT09biYmImhyZWYiPT09ZFsxXT90LnNob3VsZERlY29kZU5ld2xpbmVzRm9ySHJlZjp0LnNob3VsZERlY29kZU5ld2xpbmVzO2ZbcF09e25hbWU6ZFsxXSx2YWx1ZTpIbyh2LGgpfX11fHwoaS5wdXNoKHt0YWc6bixsb3dlckNhc2VkVGFnOm4udG9Mb3dlckNhc2UoKSxhdHRyczpmLHN0YXJ0OmUuc3RhcnQsZW5kOmUuZW5kfSkscj1uKSx0LnN0YXJ0JiZ0LnN0YXJ0KG4sZix1LGUuc3RhcnQsZS5lbmQpfWZ1bmN0aW9uIEEoZSxuLG8pe3ZhciBhLHM7aWYobnVsbD09biYmKG49YyksbnVsbD09byYmKG89YyksZSlmb3Iocz1lLnRvTG93ZXJDYXNlKCksYT1pLmxlbmd0aC0xO2E+PTAmJmlbYV0ubG93ZXJDYXNlZFRhZyE9PXM7YS0tKTtlbHNlIGE9MDtpZihhPj0wKXtmb3IodmFyIHU9aS5sZW5ndGgtMTt1Pj1hO3UtLSl0LmVuZCYmdC5lbmQoaVt1XS50YWcsbixvKTtpLmxlbmd0aD1hLHI9YSYmaVthLTFdLnRhZ31lbHNlImJyIj09PXM\/dC5zdGFydCYmdC5zdGFydChlLFtdLCEwLG4sbyk6InAiPT09cyYmKHQuc3RhcnQmJnQuc3RhcnQoZSxbXSwhMSxuLG8pLHQuZW5kJiZ0LmVuZChlLG4sbykpfUEoKX0oZSx7d2FybjpCbyxleHBlY3RIVE1MOnQuZXhwZWN0SFRNTCxpc1VuYXJ5VGFnOnQuaXNVbmFyeVRhZyxjYW5CZUxlZnRPcGVuVGFnOnQuY2FuQmVMZWZ0T3BlblRhZyxzaG91bGREZWNvZGVOZXdsaW5lczp0LnNob3VsZERlY29kZU5ld2xpbmVzLHNob3VsZERlY29kZU5ld2xpbmVzRm9ySHJlZjp0LnNob3VsZERlY29kZU5ld2xpbmVzRm9ySHJlZixzaG91bGRLZWVwQ29tbWVudDp0LmNvbW1lbnRzLG91dHB1dFNvdXJjZVJhbmdlOnQub3V0cHV0U291cmNlUmFuZ2Usc3RhcnQ6ZnVuY3Rpb24oZSxvLGEsbCxmKXt2YXIgcD1yJiZyLm5zfHxXbyhlKTtxJiYic3ZnIj09PXAmJihvPWZ1bmN0aW9uKGUpe2Zvcih2YXIgdD1bXSxuPTA7bjxlLmxlbmd0aDtuKyspe3ZhciByPWVbbl07eWEudGVzdChyLm5hbWUpfHwoci5uYW1lPXIubmFtZS5yZXBsYWNlKGdhLCIiKSx0LnB1c2gocikpfXJldHVybiB0fShvKSk7dmFyIGQsdj11YShlLG8scik7cCYmKHYubnM9cCksInN0eWxlIiE9PShkPXYpLnRhZyYmKCJzY3JpcHQiIT09ZC50YWd8fGQuYXR0cnNNYXAudHlwZSYmInRleHQvamF2YXNjcmlwdCIhPT1kLmF0dHJzTWFwLnR5cGUpfHx0ZSgpfHwodi5mb3JiaWRkZW49ITApO2Zvcih2YXIgaD0wO2g8Vm8ubGVuZ3RoO2grKyl2PVZvW2hdKHYsdCl8fHY7c3x8KCFmdW5jdGlvbihlKXtudWxsIT1GcihlLCJ2LXByZSIpJiYoZS5wcmU9ITApfSh2KSx2LnByZSYmKHM9ITApKSxKbyh2LnRhZykmJihjPSEwKSxzP2Z1bmN0aW9uKGUpe3ZhciB0PWUuYXR0cnNMaXN0LG49dC5sZW5ndGg7aWYobilmb3IodmFyIHI9ZS5hdHRycz1uZXcgQXJyYXkobiksaT0wO2k8bjtpKyspcltpXT17bmFtZTp0W2ldLm5hbWUsdmFsdWU6SlNPTi5zdHJpbmdpZnkodFtpXS52YWx1ZSl9LG51bGwhPXRbaV0uc3RhcnQmJihyW2ldLnN0YXJ0PXRbaV0uc3RhcnQscltpXS5lbmQ9dFtpXS5lbmQpO2Vsc2UgZS5wcmV8fChlLnBsYWluPSEwKX0odik6di5wcm9jZXNzZWR8fChwYSh2KSxmdW5jdGlvbihlKXt2YXIgdD1GcihlLCJ2LWlmIik7aWYodCllLmlmPXQsZGEoZSx7ZXhwOnQsYmxvY2s6ZX0pO2Vsc2V7bnVsbCE9RnIoZSwidi1lbHNlIikmJihlLmVsc2U9ITApO3ZhciBuPUZyKGUsInYtZWxzZS1pZiIpO24mJihlLmVsc2VpZj1uKX19KHYpLGZ1bmN0aW9uKGUpe251bGwhPUZyKGUsInYtb25jZSIpJiYoZS5vbmNlPSEwKX0odikpLG58fChuPXYpLGE\/dSh2KToocj12LGkucHVzaCh2KSl9LGVuZDpmdW5jdGlvbihlLHQsbil7dmFyIG89aVtpLmxlbmd0aC0xXTtpLmxlbmd0aC09MSxyPWlbaS5sZW5ndGgtMV0sdShvKX0sY2hhcnM6ZnVuY3Rpb24oZSx0LG4pe2lmKHImJighcXx8InRleHRhcmVhIiE9PXIudGFnfHxyLmF0dHJzTWFwLnBsYWNlaG9sZGVyIT09ZSkpe3ZhciBpLHUsbCxmPXIuY2hpbGRyZW47aWYoZT1jfHxlLnRyaW0oKT8ic2NyaXB0Ij09PShpPXIpLnRhZ3x8InN0eWxlIj09PWkudGFnP2U6c2EoZSk6Zi5sZW5ndGg\/YT8iY29uZGVuc2UiPT09YSYmb2EudGVzdChlKT8iIjoiICI6bz8iICI6IiI6IiIpY3x8ImNvbmRlbnNlIiE9PWF8fChlPWUucmVwbGFjZShhYSwiICIpKSwhcyYmIiAiIT09ZSYmKHU9ZnVuY3Rpb24oZSx0KXt2YXIgbj10P2hvKHQpOnBvO2lmKG4udGVzdChlKSl7Zm9yKHZhciByLGksbyxhPVtdLHM9W10sYz1uLmxhc3RJbmRleD0wO3I9bi5leGVjKGUpOyl7KGk9ci5pbmRleCk+YyYmKHMucHVzaChvPWUuc2xpY2UoYyxpKSksYS5wdXNoKEpTT04uc3RyaW5naWZ5KG8pKSk7dmFyIHU9QXIoclsxXS50cmltKCkpO2EucHVzaCgiX3MoIit1KyIpIikscy5wdXNoKHsiQGJpbmRpbmciOnV9KSxjPWkrclswXS5sZW5ndGh9cmV0dXJuIGM8ZS5sZW5ndGgmJihzLnB1c2gobz1lLnNsaWNlKGMpKSxhLnB1c2goSlNPTi5zdHJpbmdpZnkobykpKSx7ZXhwcmVzc2lvbjphLmpvaW4oIisiKSx0b2tlbnM6c319fShlLFVvKSk\/bD17dHlwZToyLGV4cHJlc3Npb246dS5leHByZXNzaW9uLHRva2Vuczp1LnRva2Vucyx0ZXh0OmV9OiIgIj09PWUmJmYubGVuZ3RoJiYiICI9PT1mW2YubGVuZ3RoLTFdLnRleHR8fChsPXt0eXBlOjMsdGV4dDplfSksbCYmZi5wdXNoKGwpfX0sY29tbWVudDpmdW5jdGlvbihlLHQsbil7aWYocil7dmFyIGk9e3R5cGU6Myx0ZXh0OmUsaXNDb21tZW50OiEwfTtyLmNoaWxkcmVuLnB1c2goaSl9fX0pLG59ZnVuY3Rpb24gZmEoZSx0KXt2YXIgbixyOyhyPUlyKG49ZSwia2V5IikpJiYobi5rZXk9ciksZS5wbGFpbj0hZS5rZXkmJiFlLnNjb3BlZFNsb3RzJiYhZS5hdHRyc0xpc3QubGVuZ3RoLGZ1bmN0aW9uKGUpe3ZhciB0PUlyKGUsInJlZiIpO3QmJihlLnJlZj10LGUucmVmSW5Gb3I9ZnVuY3Rpb24oZSl7dmFyIHQ9ZTtmb3IoO3Q7KXtpZih2b2lkIDAhPT10LmZvcilyZXR1cm4hMDt0PXQucGFyZW50fXJldHVybiExfShlKSl9KGUpLGZ1bmN0aW9uKGUpe3ZhciB0OyJ0ZW1wbGF0ZSI9PT1lLnRhZz8odD1GcihlLCJzY29wZSIpLGUuc2xvdFNjb3BlPXR8fEZyKGUsInNsb3Qtc2NvcGUiKSk6KHQ9RnIoZSwic2xvdC1zY29wZSIpKSYmKGUuc2xvdFNjb3BlPXQpO3ZhciBuPUlyKGUsInNsb3QiKTtuJiYoZS5zbG90VGFyZ2V0PSciIic9PT1uPyciZGVmYXVsdCInOm4sZS5zbG90VGFyZ2V0RHluYW1pYz0hKCFlLmF0dHJzTWFwWyI6c2xvdCJdJiYhZS5hdHRyc01hcFsidi1iaW5kOnNsb3QiXSksInRlbXBsYXRlIj09PWUudGFnfHxlLnNsb3RTY29wZXx8TnIoZSwic2xvdCIsbixmdW5jdGlvbihlLHQpe3JldHVybiBlLnJhd0F0dHJzTWFwWyI6Iit0XXx8ZS5yYXdBdHRyc01hcFsidi1iaW5kOiIrdF18fGUucmF3QXR0cnNNYXBbdF19KGUsInNsb3QiKSkpO2lmKCJ0ZW1wbGF0ZSI9PT1lLnRhZyl7dmFyIHI9UHIoZSxpYSk7aWYocil7dmFyIGk9dmEociksbz1pLm5hbWUsYT1pLmR5bmFtaWM7ZS5zbG90VGFyZ2V0PW8sZS5zbG90VGFyZ2V0RHluYW1pYz1hLGUuc2xvdFNjb3BlPXIudmFsdWV8fGNhfX1lbHNle3ZhciBzPVByKGUsaWEpO2lmKHMpe3ZhciBjPWUuc2NvcGVkU2xvdHN8fChlLnNjb3BlZFNsb3RzPXt9KSx1PXZhKHMpLGw9dS5uYW1lLGY9dS5keW5hbWljLHA9Y1tsXT11YSgidGVtcGxhdGUiLFtdLGUpO3Auc2xvdFRhcmdldD1sLHAuc2xvdFRhcmdldER5bmFtaWM9ZixwLmNoaWxkcmVuPWUuY2hpbGRyZW4uZmlsdGVyKGZ1bmN0aW9uKGUpe2lmKCFlLnNsb3RTY29wZSlyZXR1cm4gZS5wYXJlbnQ9cCwhMH0pLHAuc2xvdFNjb3BlPXMudmFsdWV8fGNhLGUuY2hpbGRyZW49W10sZS5wbGFpbj0hMX19fShlKSxmdW5jdGlvbihlKXsic2xvdCI9PT1lLnRhZyYmKGUuc2xvdE5hbWU9SXIoZSwibmFtZSIpKX0oZSksZnVuY3Rpb24oZSl7dmFyIHQ7KHQ9SXIoZSwiaXMiKSkmJihlLmNvbXBvbmVudD10KTtudWxsIT1GcihlLCJpbmxpbmUtdGVtcGxhdGUiKSYmKGUuaW5saW5lVGVtcGxhdGU9ITApfShlKTtmb3IodmFyIGk9MDtpPHpvLmxlbmd0aDtpKyspZT16b1tpXShlLHQpfHxlO3JldHVybiBmdW5jdGlvbihlKXt2YXIgdCxuLHIsaSxvLGEscyxjLHU9ZS5hdHRyc0xpc3Q7Zm9yKHQ9MCxuPXUubGVuZ3RoO3Q8bjt0KyspaWYocj1pPXVbdF0ubmFtZSxvPXVbdF0udmFsdWUsR28udGVzdChyKSlpZihlLmhhc0JpbmRpbmdzPSEwLChhPWhhKHIucmVwbGFjZShHbywiIikpKSYmKHI9ci5yZXBsYWNlKHJhLCIiKSksbmEudGVzdChyKSlyPXIucmVwbGFjZShuYSwiIiksbz1BcihvKSwoYz1lYS50ZXN0KHIpKSYmKHI9ci5zbGljZSgxLC0xKSksYSYmKGEucHJvcCYmIWMmJiJpbm5lckh0bWwiPT09KHI9YihyKSkmJihyPSJpbm5lckhUTUwiKSxhLmNhbWVsJiYhYyYmKHI9YihyKSksYS5zeW5jJiYocz1CcihvLCIkZXZlbnQiKSxjP01yKGUsJyJ1cGRhdGU6IisoJytyKyIpIixzLG51bGwsITEsMCx1W3RdLCEwKTooTXIoZSwidXBkYXRlOiIrYihyKSxzLG51bGwsITEsMCx1W3RdKSxDKHIpIT09YihyKSYmTXIoZSwidXBkYXRlOiIrQyhyKSxzLG51bGwsITEsMCx1W3RdKSkpKSxhJiZhLnByb3B8fCFlLmNvbXBvbmVudCYmcW8oZS50YWcsZS5hdHRyc01hcC50eXBlLHIpP0VyKGUscixvLHVbdF0sYyk6TnIoZSxyLG8sdVt0XSxjKTtlbHNlIGlmKFpvLnRlc3Qocikpcj1yLnJlcGxhY2UoWm8sIiIpLChjPWVhLnRlc3QocikpJiYocj1yLnNsaWNlKDEsLTEpKSxNcihlLHIsbyxhLCExLDAsdVt0XSxjKTtlbHNle3ZhciBsPShyPXIucmVwbGFjZShHbywiIikpLm1hdGNoKHRhKSxmPWwmJmxbMV07Yz0hMSxmJiYocj1yLnNsaWNlKDAsLShmLmxlbmd0aCsxKSksZWEudGVzdChmKSYmKGY9Zi5zbGljZSgxLC0xKSxjPSEwKSksRHIoZSxyLGksbyxmLGMsYSx1W3RdKX1lbHNlIE5yKGUscixKU09OLnN0cmluZ2lmeShvKSx1W3RdKSwhZS5jb21wb25lbnQmJiJtdXRlZCI9PT1yJiZxbyhlLnRhZyxlLmF0dHJzTWFwLnR5cGUscikmJkVyKGUsciwidHJ1ZSIsdVt0XSl9KGUpLGV9ZnVuY3Rpb24gcGEoZSl7dmFyIHQ7aWYodD1GcihlLCJ2LWZvciIpKXt2YXIgbj1mdW5jdGlvbihlKXt2YXIgdD1lLm1hdGNoKFhvKTtpZighdClyZXR1cm47dmFyIG49e307bi5mb3I9dFsyXS50cmltKCk7dmFyIHI9dFsxXS50cmltKCkucmVwbGFjZShRbywiIiksaT1yLm1hdGNoKFlvKTtpPyhuLmFsaWFzPXIucmVwbGFjZShZbywiIikudHJpbSgpLG4uaXRlcmF0b3IxPWlbMV0udHJpbSgpLGlbMl0mJihuLml0ZXJhdG9yMj1pWzJdLnRyaW0oKSkpOm4uYWxpYXM9cjtyZXR1cm4gbn0odCk7biYmQShlLG4pfX1mdW5jdGlvbiBkYShlLHQpe2UuaWZDb25kaXRpb25zfHwoZS5pZkNvbmRpdGlvbnM9W10pLGUuaWZDb25kaXRpb25zLnB1c2godCl9ZnVuY3Rpb24gdmEoZSl7dmFyIHQ9ZS5uYW1lLnJlcGxhY2UoaWEsIiIpO3JldHVybiB0fHwiIyIhPT1lLm5hbWVbMF0mJih0PSJkZWZhdWx0IiksZWEudGVzdCh0KT97bmFtZTp0LnNsaWNlKDEsLTEpLGR5bmFtaWM6ITB9OntuYW1lOiciJyt0KyciJyxkeW5hbWljOiExfX1mdW5jdGlvbiBoYShlKXt2YXIgdD1lLm1hdGNoKHJhKTtpZih0KXt2YXIgbj17fTtyZXR1cm4gdC5mb3JFYWNoKGZ1bmN0aW9uKGUpe25bZS5zbGljZSgxKV09ITB9KSxufX1mdW5jdGlvbiBtYShlKXtmb3IodmFyIHQ9e30sbj0wLHI9ZS5sZW5ndGg7bjxyO24rKyl0W2Vbbl0ubmFtZV09ZVtuXS52YWx1ZTtyZXR1cm4gdH12YXIgeWE9L154bWxuczpOU1xkKy8sZ2E9L15OU1xkKzovO2Z1bmN0aW9uIF9hKGUpe3JldHVybiB1YShlLnRhZyxlLmF0dHJzTGlzdC5zbGljZSgpLGUucGFyZW50KX12YXIgYmE9W21vLGdvLHtwcmVUcmFuc2Zvcm1Ob2RlOmZ1bmN0aW9uKGUsdCl7aWYoImlucHV0Ij09PWUudGFnKXt2YXIgbixyPWUuYXR0cnNNYXA7aWYoIXJbInYtbW9kZWwiXSlyZXR1cm47aWYoKHJbIjp0eXBlIl18fHJbInYtYmluZDp0eXBlIl0pJiYobj1JcihlLCJ0eXBlIikpLHIudHlwZXx8bnx8IXJbInYtYmluZCJdfHwobj0iKCIrclsidi1iaW5kIl0rIikudHlwZSIpLG4pe3ZhciBpPUZyKGUsInYtaWYiLCEwKSxvPWk\/IiYmKCIraSsiKSI6IiIsYT1udWxsIT1GcihlLCJ2LWVsc2UiLCEwKSxzPUZyKGUsInYtZWxzZS1pZiIsITApLGM9X2EoZSk7cGEoYyksanIoYywidHlwZSIsImNoZWNrYm94IiksZmEoYyx0KSxjLnByb2Nlc3NlZD0hMCxjLmlmPSIoIituKyIpPT09J2NoZWNrYm94JyIrbyxkYShjLHtleHA6Yy5pZixibG9jazpjfSk7dmFyIHU9X2EoZSk7RnIodSwidi1mb3IiLCEwKSxqcih1LCJ0eXBlIiwicmFkaW8iKSxmYSh1LHQpLGRhKGMse2V4cDoiKCIrbisiKT09PSdyYWRpbyciK28sYmxvY2s6dX0pO3ZhciBsPV9hKGUpO3JldHVybiBGcihsLCJ2LWZvciIsITApLGpyKGwsIjp0eXBlIixuKSxmYShsLHQpLGRhKGMse2V4cDppLGJsb2NrOmx9KSxhP2MuZWxzZT0hMDpzJiYoYy5lbHNlaWY9cyksY319fX1dO3ZhciAkYSx3YSxDYT17ZXhwZWN0SFRNTDohMCxtb2R1bGVzOmJhLGRpcmVjdGl2ZXM6e21vZGVsOmZ1bmN0aW9uKGUsdCxuKXt2YXIgcj10LnZhbHVlLGk9dC5tb2RpZmllcnMsbz1lLnRhZyxhPWUuYXR0cnNNYXAudHlwZTtpZihlLmNvbXBvbmVudClyZXR1cm4gSHIoZSxyLGkpLCExO2lmKCJzZWxlY3QiPT09bykhZnVuY3Rpb24oZSx0LG4pe3ZhciByPSd2YXIgJCRzZWxlY3RlZFZhbCA9IEFycmF5LnByb3RvdHlwZS5maWx0ZXIuY2FsbCgkZXZlbnQudGFyZ2V0Lm9wdGlvbnMsZnVuY3Rpb24obyl7cmV0dXJuIG8uc2VsZWN0ZWR9KS5tYXAoZnVuY3Rpb24obyl7dmFyIHZhbCA9ICJfdmFsdWUiIGluIG8gPyBvLl92YWx1ZSA6IG8udmFsdWU7cmV0dXJuICcrKG4mJm4ubnVtYmVyPyJfbih2YWwpIjoidmFsIikrIn0pOyI7cj1yKyIgIitCcih0LCIkZXZlbnQudGFyZ2V0Lm11bHRpcGxlID8gJCRzZWxlY3RlZFZhbCA6ICQkc2VsZWN0ZWRWYWxbMF0iKSxNcihlLCJjaGFuZ2UiLHIsbnVsbCwhMCl9KGUscixpKTtlbHNlIGlmKCJpbnB1dCI9PT1vJiYiY2hlY2tib3giPT09YSkhZnVuY3Rpb24oZSx0LG4pe3ZhciByPW4mJm4ubnVtYmVyLGk9SXIoZSwidmFsdWUiKXx8Im51bGwiLG89SXIoZSwidHJ1ZS12YWx1ZSIpfHwidHJ1ZSIsYT1JcihlLCJmYWxzZS12YWx1ZSIpfHwiZmFsc2UiO0VyKGUsImNoZWNrZWQiLCJBcnJheS5pc0FycmF5KCIrdCsiKT9faSgiK3QrIiwiK2krIik+LTEiKygidHJ1ZSI9PT1vPyI6KCIrdCsiKSI6IjpfcSgiK3QrIiwiK28rIikiKSksTXIoZSwiY2hhbmdlIiwidmFyICQkYT0iK3QrIiwkJGVsPSRldmVudC50YXJnZXQsJCRjPSQkZWwuY2hlY2tlZD8oIitvKyIpOigiK2ErIik7aWYoQXJyYXkuaXNBcnJheSgkJGEpKXt2YXIgJCR2PSIrKHI\/Il9uKCIraSsiKSI6aSkrIiwkJGk9X2koJCRhLCQkdik7aWYoJCRlbC5jaGVja2VkKXskJGk8MCYmKCIrQnIodCwiJCRhLmNvbmNhdChbJCR2XSkiKSsiKX1lbHNleyQkaT4tMSYmKCIrQnIodCwiJCRhLnNsaWNlKDAsJCRpKS5jb25jYXQoJCRhLnNsaWNlKCQkaSsxKSkiKSsiKX19ZWxzZXsiK0JyKHQsIiQkYyIpKyJ9IixudWxsLCEwKX0oZSxyLGkpO2Vsc2UgaWYoImlucHV0Ij09PW8mJiJyYWRpbyI9PT1hKSFmdW5jdGlvbihlLHQsbil7dmFyIHI9biYmbi5udW1iZXIsaT1JcihlLCJ2YWx1ZSIpfHwibnVsbCI7RXIoZSwiY2hlY2tlZCIsIl9xKCIrdCsiLCIrKGk9cj8iX24oIitpKyIpIjppKSsiKSIpLE1yKGUsImNoYW5nZSIsQnIodCxpKSxudWxsLCEwKX0oZSxyLGkpO2Vsc2UgaWYoImlucHV0Ij09PW98fCJ0ZXh0YXJlYSI9PT1vKSFmdW5jdGlvbihlLHQsbil7dmFyIHI9ZS5hdHRyc01hcC50eXBlLGk9bnx8e30sbz1pLmxhenksYT1pLm51bWJlcixzPWkudHJpbSxjPSFvJiYicmFuZ2UiIT09cix1PW8\/ImNoYW5nZSI6InJhbmdlIj09PXI\/V3I6ImlucHV0IixsPSIkZXZlbnQudGFyZ2V0LnZhbHVlIjtzJiYobD0iJGV2ZW50LnRhcmdldC52YWx1ZS50cmltKCkiKSxhJiYobD0iX24oIitsKyIpIik7dmFyIGY9QnIodCxsKTtjJiYoZj0iaWYoJGV2ZW50LnRhcmdldC5jb21wb3NpbmcpcmV0dXJuOyIrZiksRXIoZSwidmFsdWUiLCIoIit0KyIpIiksTXIoZSx1LGYsbnVsbCwhMCksKHN8fGEpJiZNcihlLCJibHVyIiwiJGZvcmNlVXBkYXRlKCkiKX0oZSxyLGkpO2Vsc2UgaWYoIUYuaXNSZXNlcnZlZFRhZyhvKSlyZXR1cm4gSHIoZSxyLGkpLCExO3JldHVybiEwfSx0ZXh0OmZ1bmN0aW9uKGUsdCl7dC52YWx1ZSYmRXIoZSwidGV4dENvbnRlbnQiLCJfcygiK3QudmFsdWUrIikiLHQpfSxodG1sOmZ1bmN0aW9uKGUsdCl7dC52YWx1ZSYmRXIoZSwiaW5uZXJIVE1MIiwiX3MoIit0LnZhbHVlKyIpIix0KX19LGlzUHJlVGFnOmZ1bmN0aW9uKGUpe3JldHVybiJwcmUiPT09ZX0saXNVbmFyeVRhZzpibyxtdXN0VXNlUHJvcDpqbixjYW5CZUxlZnRPcGVuVGFnOiRvLGlzUmVzZXJ2ZWRUYWc6V24sZ2V0VGFnTmFtZXNwYWNlOlpuLHN0YXRpY0tleXM6ZnVuY3Rpb24oZSl7cmV0dXJuIGUucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIGUuY29uY2F0KHQuc3RhdGljS2V5c3x8W10pfSxbXSkuam9pbigiLCIpfShiYSl9LHhhPWcoZnVuY3Rpb24oZSl7cmV0dXJuIHAoInR5cGUsdGFnLGF0dHJzTGlzdCxhdHRyc01hcCxwbGFpbixwYXJlbnQsY2hpbGRyZW4sYXR0cnMsc3RhcnQsZW5kLHJhd0F0dHJzTWFwIisoZT8iLCIrZToiIikpfSk7ZnVuY3Rpb24ga2EoZSx0KXtlJiYoJGE9eGEodC5zdGF0aWNLZXlzfHwiIiksd2E9dC5pc1Jlc2VydmVkVGFnfHxULGZ1bmN0aW9uIGUodCl7dC5zdGF0aWM9ZnVuY3Rpb24oZSl7aWYoMj09PWUudHlwZSlyZXR1cm4hMTtpZigzPT09ZS50eXBlKXJldHVybiEwO3JldHVybiEoIWUucHJlJiYoZS5oYXNCaW5kaW5nc3x8ZS5pZnx8ZS5mb3J8fGQoZS50YWcpfHwhd2EoZS50YWcpfHxmdW5jdGlvbihlKXtmb3IoO2UucGFyZW50Oyl7aWYoInRlbXBsYXRlIiE9PShlPWUucGFyZW50KS50YWcpcmV0dXJuITE7aWYoZS5mb3IpcmV0dXJuITB9cmV0dXJuITF9KGUpfHwhT2JqZWN0LmtleXMoZSkuZXZlcnkoJGEpKSl9KHQpO2lmKDE9PT10LnR5cGUpe2lmKCF3YSh0LnRhZykmJiJzbG90IiE9PXQudGFnJiZudWxsPT10LmF0dHJzTWFwWyJpbmxpbmUtdGVtcGxhdGUiXSlyZXR1cm47Zm9yKHZhciBuPTAscj10LmNoaWxkcmVuLmxlbmd0aDtuPHI7bisrKXt2YXIgaT10LmNoaWxkcmVuW25dO2UoaSksaS5zdGF0aWN8fCh0LnN0YXRpYz0hMSl9aWYodC5pZkNvbmRpdGlvbnMpZm9yKHZhciBvPTEsYT10LmlmQ29uZGl0aW9ucy5sZW5ndGg7bzxhO28rKyl7dmFyIHM9dC5pZkNvbmRpdGlvbnNbb10uYmxvY2s7ZShzKSxzLnN0YXRpY3x8KHQuc3RhdGljPSExKX19fShlKSxmdW5jdGlvbiBlKHQsbil7aWYoMT09PXQudHlwZSl7aWYoKHQuc3RhdGljfHx0Lm9uY2UpJiYodC5zdGF0aWNJbkZvcj1uKSx0LnN0YXRpYyYmdC5jaGlsZHJlbi5sZW5ndGgmJigxIT09dC5jaGlsZHJlbi5sZW5ndGh8fDMhPT10LmNoaWxkcmVuWzBdLnR5cGUpKXJldHVybiB2b2lkKHQuc3RhdGljUm9vdD0hMCk7aWYodC5zdGF0aWNSb290PSExLHQuY2hpbGRyZW4pZm9yKHZhciByPTAsaT10LmNoaWxkcmVuLmxlbmd0aDtyPGk7cisrKWUodC5jaGlsZHJlbltyXSxufHwhIXQuZm9yKTtpZih0LmlmQ29uZGl0aW9ucylmb3IodmFyIG89MSxhPXQuaWZDb25kaXRpb25zLmxlbmd0aDtvPGE7bysrKWUodC5pZkNvbmRpdGlvbnNbb10uYmxvY2ssbil9fShlLCExKSl9dmFyIEFhPS9eKFtcdyRfXSt8XChbXildKj9cKSlccyo9PnxeZnVuY3Rpb24oPzpccytbXHckXSspP1xzKlwoLyxPYT0vXChbXildKj9cKTsqJC8sU2E9L15bQS1aYS16XyRdW1x3JF0qKD86XC5bQS1aYS16XyRdW1x3JF0qfFxbJ1teJ10qPyddfFxbIlteIl0qPyJdfFxbXGQrXXxcW1tBLVphLXpfJF1bXHckXSpdKSokLyxUYT17ZXNjOjI3LHRhYjo5LGVudGVyOjEzLHNwYWNlOjMyLHVwOjM4LGxlZnQ6MzcscmlnaHQ6MzksZG93bjo0MCxkZWxldGU6WzgsNDZdfSxFYT17ZXNjOlsiRXNjIiwiRXNjYXBlIl0sdGFiOiJUYWIiLGVudGVyOiJFbnRlciIsc3BhY2U6WyIgIiwiU3BhY2ViYXIiXSx1cDpbIlVwIiwiQXJyb3dVcCJdLGxlZnQ6WyJMZWZ0IiwiQXJyb3dMZWZ0Il0scmlnaHQ6WyJSaWdodCIsIkFycm93UmlnaHQiXSxkb3duOlsiRG93biIsIkFycm93RG93biJdLGRlbGV0ZTpbIkJhY2tzcGFjZSIsIkRlbGV0ZSIsIkRlbCJdfSxOYT1mdW5jdGlvbihlKXtyZXR1cm4iaWYoIitlKyIpcmV0dXJuIG51bGw7In0samE9e3N0b3A6IiRldmVudC5zdG9wUHJvcGFnYXRpb24oKTsiLHByZXZlbnQ6IiRldmVudC5wcmV2ZW50RGVmYXVsdCgpOyIsc2VsZjpOYSgiJGV2ZW50LnRhcmdldCAhPT0gJGV2ZW50LmN1cnJlbnRUYXJnZXQiKSxjdHJsOk5hKCIhJGV2ZW50LmN0cmxLZXkiKSxzaGlmdDpOYSgiISRldmVudC5zaGlmdEtleSIpLGFsdDpOYSgiISRldmVudC5hbHRLZXkiKSxtZXRhOk5hKCIhJGV2ZW50Lm1ldGFLZXkiKSxsZWZ0Ok5hKCInYnV0dG9uJyBpbiAkZXZlbnQgJiYgJGV2ZW50LmJ1dHRvbiAhPT0gMCIpLG1pZGRsZTpOYSgiJ2J1dHRvbicgaW4gJGV2ZW50ICYmICRldmVudC5idXR0b24gIT09IDEiKSxyaWdodDpOYSgiJ2J1dHRvbicgaW4gJGV2ZW50ICYmICRldmVudC5idXR0b24gIT09IDIiKX07ZnVuY3Rpb24gRGEoZSx0KXt2YXIgbj10PyJuYXRpdmVPbjoiOiJvbjoiLHI9IiIsaT0iIjtmb3IodmFyIG8gaW4gZSl7dmFyIGE9TGEoZVtvXSk7ZVtvXSYmZVtvXS5keW5hbWljP2krPW8rIiwiK2ErIiwiOnIrPSciJytvKyciOicrYSsiLCJ9cmV0dXJuIHI9InsiK3Iuc2xpY2UoMCwtMSkrIn0iLGk\/bisiX2QoIityKyIsWyIraS5zbGljZSgwLC0xKSsiXSkiOm4rcn1mdW5jdGlvbiBMYShlKXtpZighZSlyZXR1cm4iZnVuY3Rpb24oKXt9IjtpZihBcnJheS5pc0FycmF5KGUpKXJldHVybiJbIitlLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gTGEoZSl9KS5qb2luKCIsIikrIl0iO3ZhciB0PVNhLnRlc3QoZS52YWx1ZSksbj1BYS50ZXN0KGUudmFsdWUpLHI9U2EudGVzdChlLnZhbHVlLnJlcGxhY2UoT2EsIiIpKTtpZihlLm1vZGlmaWVycyl7dmFyIGk9IiIsbz0iIixhPVtdO2Zvcih2YXIgcyBpbiBlLm1vZGlmaWVycylpZihqYVtzXSlvKz1qYVtzXSxUYVtzXSYmYS5wdXNoKHMpO2Vsc2UgaWYoImV4YWN0Ij09PXMpe3ZhciBjPWUubW9kaWZpZXJzO28rPU5hKFsiY3RybCIsInNoaWZ0IiwiYWx0IiwibWV0YSJdLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4hY1tlXX0pLm1hcChmdW5jdGlvbihlKXtyZXR1cm4iJGV2ZW50LiIrZSsiS2V5In0pLmpvaW4oInx8IikpfWVsc2UgYS5wdXNoKHMpO3JldHVybiBhLmxlbmd0aCYmKGkrPWZ1bmN0aW9uKGUpe3JldHVybiJpZighJGV2ZW50LnR5cGUuaW5kZXhPZigna2V5JykmJiIrZS5tYXAoTWEpLmpvaW4oIiYmIikrIilyZXR1cm4gbnVsbDsifShhKSksbyYmKGkrPW8pLCJmdW5jdGlvbigkZXZlbnQpeyIraSsodD8icmV0dXJuICIrZS52YWx1ZSsiKCRldmVudCkiOm4\/InJldHVybiAoIitlLnZhbHVlKyIpKCRldmVudCkiOnI\/InJldHVybiAiK2UudmFsdWU6ZS52YWx1ZSkrIn0ifXJldHVybiB0fHxuP2UudmFsdWU6ImZ1bmN0aW9uKCRldmVudCl7Iisocj8icmV0dXJuICIrZS52YWx1ZTplLnZhbHVlKSsifSJ9ZnVuY3Rpb24gTWEoZSl7dmFyIHQ9cGFyc2VJbnQoZSwxMCk7aWYodClyZXR1cm4iJGV2ZW50LmtleUNvZGUhPT0iK3Q7dmFyIG49VGFbZV0scj1FYVtlXTtyZXR1cm4iX2soJGV2ZW50LmtleUNvZGUsIitKU09OLnN0cmluZ2lmeShlKSsiLCIrSlNPTi5zdHJpbmdpZnkobikrIiwkZXZlbnQua2V5LCIrSlNPTi5zdHJpbmdpZnkocikrIikifXZhciBJYT17b246ZnVuY3Rpb24oZSx0KXtlLndyYXBMaXN0ZW5lcnM9ZnVuY3Rpb24oZSl7cmV0dXJuIl9nKCIrZSsiLCIrdC52YWx1ZSsiKSJ9fSxiaW5kOmZ1bmN0aW9uKGUsdCl7ZS53cmFwRGF0YT1mdW5jdGlvbihuKXtyZXR1cm4iX2IoIituKyIsJyIrZS50YWcrIicsIit0LnZhbHVlKyIsIisodC5tb2RpZmllcnMmJnQubW9kaWZpZXJzLnByb3A\/InRydWUiOiJmYWxzZSIpKyh0Lm1vZGlmaWVycyYmdC5tb2RpZmllcnMuc3luYz8iLHRydWUiOiIiKSsiKSJ9fSxjbG9hazpTfSxGYT1mdW5jdGlvbihlKXt0aGlzLm9wdGlvbnM9ZSx0aGlzLndhcm49ZS53YXJufHxTcix0aGlzLnRyYW5zZm9ybXM9VHIoZS5tb2R1bGVzLCJ0cmFuc2Zvcm1Db2RlIiksdGhpcy5kYXRhR2VuRm5zPVRyKGUubW9kdWxlcywiZ2VuRGF0YSIpLHRoaXMuZGlyZWN0aXZlcz1BKEEoe30sSWEpLGUuZGlyZWN0aXZlcyk7dmFyIHQ9ZS5pc1Jlc2VydmVkVGFnfHxUO3RoaXMubWF5YmVDb21wb25lbnQ9ZnVuY3Rpb24oZSl7cmV0dXJuISFlLmNvbXBvbmVudHx8IXQoZS50YWcpfSx0aGlzLm9uY2VJZD0wLHRoaXMuc3RhdGljUmVuZGVyRm5zPVtdLHRoaXMucHJlPSExfTtmdW5jdGlvbiBQYShlLHQpe3ZhciBuPW5ldyBGYSh0KTtyZXR1cm57cmVuZGVyOiJ3aXRoKHRoaXMpe3JldHVybiAiKyhlP1JhKGUsbik6J19jKCJkaXYiKScpKyJ9IixzdGF0aWNSZW5kZXJGbnM6bi5zdGF0aWNSZW5kZXJGbnN9fWZ1bmN0aW9uIFJhKGUsdCl7aWYoZS5wYXJlbnQmJihlLnByZT1lLnByZXx8ZS5wYXJlbnQucHJlKSxlLnN0YXRpY1Jvb3QmJiFlLnN0YXRpY1Byb2Nlc3NlZClyZXR1cm4gSGEoZSx0KTtpZihlLm9uY2UmJiFlLm9uY2VQcm9jZXNzZWQpcmV0dXJuIEJhKGUsdCk7aWYoZS5mb3ImJiFlLmZvclByb2Nlc3NlZClyZXR1cm4gemEoZSx0KTtpZihlLmlmJiYhZS5pZlByb2Nlc3NlZClyZXR1cm4gVWEoZSx0KTtpZigidGVtcGxhdGUiIT09ZS50YWd8fGUuc2xvdFRhcmdldHx8dC5wcmUpe2lmKCJzbG90Ij09PWUudGFnKXJldHVybiBmdW5jdGlvbihlLHQpe3ZhciBuPWUuc2xvdE5hbWV8fCciZGVmYXVsdCInLHI9cWEoZSx0KSxpPSJfdCgiK24rKHI\/IiwiK3I6IiIpLG89ZS5hdHRyc3x8ZS5keW5hbWljQXR0cnM\/R2EoKGUuYXR0cnN8fFtdKS5jb25jYXQoZS5keW5hbWljQXR0cnN8fFtdKS5tYXAoZnVuY3Rpb24oZSl7cmV0dXJue25hbWU6YihlLm5hbWUpLHZhbHVlOmUudmFsdWUsZHluYW1pYzplLmR5bmFtaWN9fSkpOm51bGwsYT1lLmF0dHJzTWFwWyJ2LWJpbmQiXTshbyYmIWF8fHJ8fChpKz0iLG51bGwiKTtvJiYoaSs9IiwiK28pO2EmJihpKz0obz8iIjoiLG51bGwiKSsiLCIrYSk7cmV0dXJuIGkrIikifShlLHQpO3ZhciBuO2lmKGUuY29tcG9uZW50KW49ZnVuY3Rpb24oZSx0LG4pe3ZhciByPXQuaW5saW5lVGVtcGxhdGU\/bnVsbDpxYSh0LG4sITApO3JldHVybiJfYygiK2UrIiwiK1ZhKHQsbikrKHI\/IiwiK3I6IiIpKyIpIn0oZS5jb21wb25lbnQsZSx0KTtlbHNle3ZhciByOyghZS5wbGFpbnx8ZS5wcmUmJnQubWF5YmVDb21wb25lbnQoZSkpJiYocj1WYShlLHQpKTt2YXIgaT1lLmlubGluZVRlbXBsYXRlP251bGw6cWEoZSx0LCEwKTtuPSJfYygnIitlLnRhZysiJyIrKHI\/IiwiK3I6IiIpKyhpPyIsIitpOiIiKSsiKSJ9Zm9yKHZhciBvPTA7bzx0LnRyYW5zZm9ybXMubGVuZ3RoO28rKyluPXQudHJhbnNmb3Jtc1tvXShlLG4pO3JldHVybiBufXJldHVybiBxYShlLHQpfHwidm9pZCAwIn1mdW5jdGlvbiBIYShlLHQpe2Uuc3RhdGljUHJvY2Vzc2VkPSEwO3ZhciBuPXQucHJlO3JldHVybiBlLnByZSYmKHQucHJlPWUucHJlKSx0LnN0YXRpY1JlbmRlckZucy5wdXNoKCJ3aXRoKHRoaXMpe3JldHVybiAiK1JhKGUsdCkrIn0iKSx0LnByZT1uLCJfbSgiKyh0LnN0YXRpY1JlbmRlckZucy5sZW5ndGgtMSkrKGUuc3RhdGljSW5Gb3I\/Iix0cnVlIjoiIikrIikifWZ1bmN0aW9uIEJhKGUsdCl7aWYoZS5vbmNlUHJvY2Vzc2VkPSEwLGUuaWYmJiFlLmlmUHJvY2Vzc2VkKXJldHVybiBVYShlLHQpO2lmKGUuc3RhdGljSW5Gb3Ipe2Zvcih2YXIgbj0iIixyPWUucGFyZW50O3I7KXtpZihyLmZvcil7bj1yLmtleTticmVha31yPXIucGFyZW50fXJldHVybiBuPyJfbygiK1JhKGUsdCkrIiwiK3Qub25jZUlkKysrIiwiK24rIikiOlJhKGUsdCl9cmV0dXJuIEhhKGUsdCl9ZnVuY3Rpb24gVWEoZSx0LG4scil7cmV0dXJuIGUuaWZQcm9jZXNzZWQ9ITAsZnVuY3Rpb24gZSh0LG4scixpKXtpZighdC5sZW5ndGgpcmV0dXJuIGl8fCJfZSgpIjt2YXIgbz10LnNoaWZ0KCk7cmV0dXJuIG8uZXhwPyIoIitvLmV4cCsiKT8iK2Eoby5ibG9jaykrIjoiK2UodCxuLHIsaSk6IiIrYShvLmJsb2NrKTtmdW5jdGlvbiBhKGUpe3JldHVybiByP3IoZSxuKTplLm9uY2U\/QmEoZSxuKTpSYShlLG4pfX0oZS5pZkNvbmRpdGlvbnMuc2xpY2UoKSx0LG4scil9ZnVuY3Rpb24gemEoZSx0LG4scil7dmFyIGk9ZS5mb3Isbz1lLmFsaWFzLGE9ZS5pdGVyYXRvcjE\/IiwiK2UuaXRlcmF0b3IxOiIiLHM9ZS5pdGVyYXRvcjI\/IiwiK2UuaXRlcmF0b3IyOiIiO3JldHVybiBlLmZvclByb2Nlc3NlZD0hMCwocnx8Il9sIikrIigoIitpKyIpLGZ1bmN0aW9uKCIrbythK3MrIil7cmV0dXJuICIrKG58fFJhKShlLHQpKyJ9KSJ9ZnVuY3Rpb24gVmEoZSx0KXt2YXIgbj0ieyIscj1mdW5jdGlvbihlLHQpe3ZhciBuPWUuZGlyZWN0aXZlcztpZighbilyZXR1cm47dmFyIHIsaSxvLGEscz0iZGlyZWN0aXZlczpbIixjPSExO2ZvcihyPTAsaT1uLmxlbmd0aDtyPGk7cisrKXtvPW5bcl0sYT0hMDt2YXIgdT10LmRpcmVjdGl2ZXNbby5uYW1lXTt1JiYoYT0hIXUoZSxvLHQud2FybikpLGEmJihjPSEwLHMrPSd7bmFtZToiJytvLm5hbWUrJyIscmF3TmFtZToiJytvLnJhd05hbWUrJyInKyhvLnZhbHVlPyIsdmFsdWU6KCIrby52YWx1ZSsiKSxleHByZXNzaW9uOiIrSlNPTi5zdHJpbmdpZnkoby52YWx1ZSk6IiIpKyhvLmFyZz8iLGFyZzoiKyhvLmlzRHluYW1pY0FyZz9vLmFyZzonIicrby5hcmcrJyInKToiIikrKG8ubW9kaWZpZXJzPyIsbW9kaWZpZXJzOiIrSlNPTi5zdHJpbmdpZnkoby5tb2RpZmllcnMpOiIiKSsifSwiKX1pZihjKXJldHVybiBzLnNsaWNlKDAsLTEpKyJdIn0oZSx0KTtyJiYobis9cisiLCIpLGUua2V5JiYobis9ImtleToiK2Uua2V5KyIsIiksZS5yZWYmJihuKz0icmVmOiIrZS5yZWYrIiwiKSxlLnJlZkluRm9yJiYobis9InJlZkluRm9yOnRydWUsIiksZS5wcmUmJihuKz0icHJlOnRydWUsIiksZS5jb21wb25lbnQmJihuKz0ndGFnOiInK2UudGFnKyciLCcpO2Zvcih2YXIgaT0wO2k8dC5kYXRhR2VuRm5zLmxlbmd0aDtpKyspbis9dC5kYXRhR2VuRm5zW2ldKGUpO2lmKGUuYXR0cnMmJihuKz0iYXR0cnM6IitHYShlLmF0dHJzKSsiLCIpLGUucHJvcHMmJihuKz0iZG9tUHJvcHM6IitHYShlLnByb3BzKSsiLCIpLGUuZXZlbnRzJiYobis9RGEoZS5ldmVudHMsITEpKyIsIiksZS5uYXRpdmVFdmVudHMmJihuKz1EYShlLm5hdGl2ZUV2ZW50cywhMCkrIiwiKSxlLnNsb3RUYXJnZXQmJiFlLnNsb3RTY29wZSYmKG4rPSJzbG90OiIrZS5zbG90VGFyZ2V0KyIsIiksZS5zY29wZWRTbG90cyYmKG4rPWZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1lLmZvcnx8T2JqZWN0LmtleXModCkuc29tZShmdW5jdGlvbihlKXt2YXIgbj10W2VdO3JldHVybiBuLnNsb3RUYXJnZXREeW5hbWljfHxuLmlmfHxuLmZvcnx8S2Eobil9KSxpPSEhZS5pZjtpZighcilmb3IodmFyIG89ZS5wYXJlbnQ7bzspe2lmKG8uc2xvdFNjb3BlJiZvLnNsb3RTY29wZSE9PWNhfHxvLmZvcil7cj0hMDticmVha31vLmlmJiYoaT0hMCksbz1vLnBhcmVudH12YXIgYT1PYmplY3Qua2V5cyh0KS5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIEphKHRbZV0sbil9KS5qb2luKCIsIik7cmV0dXJuInNjb3BlZFNsb3RzOl91KFsiK2ErIl0iKyhyPyIsbnVsbCx0cnVlIjoiIikrKCFyJiZpPyIsbnVsbCxmYWxzZSwiK2Z1bmN0aW9uKGUpe3ZhciB0PTUzODEsbj1lLmxlbmd0aDtmb3IoO247KXQ9MzMqdF5lLmNoYXJDb2RlQXQoLS1uKTtyZXR1cm4gdD4+PjB9KGEpOiIiKSsiKSJ9KGUsZS5zY29wZWRTbG90cyx0KSsiLCIpLGUubW9kZWwmJihuKz0ibW9kZWw6e3ZhbHVlOiIrZS5tb2RlbC52YWx1ZSsiLGNhbGxiYWNrOiIrZS5tb2RlbC5jYWxsYmFjaysiLGV4cHJlc3Npb246IitlLm1vZGVsLmV4cHJlc3Npb24rIn0sIiksZS5pbmxpbmVUZW1wbGF0ZSl7dmFyIG89ZnVuY3Rpb24oZSx0KXt2YXIgbj1lLmNoaWxkcmVuWzBdO2lmKG4mJjE9PT1uLnR5cGUpe3ZhciByPVBhKG4sdC5vcHRpb25zKTtyZXR1cm4iaW5saW5lVGVtcGxhdGU6e3JlbmRlcjpmdW5jdGlvbigpeyIrci5yZW5kZXIrIn0sc3RhdGljUmVuZGVyRm5zOlsiK3Iuc3RhdGljUmVuZGVyRm5zLm1hcChmdW5jdGlvbihlKXtyZXR1cm4iZnVuY3Rpb24oKXsiK2UrIn0ifSkuam9pbigiLCIpKyJdfSJ9fShlLHQpO28mJihuKz1vKyIsIil9cmV0dXJuIG49bi5yZXBsYWNlKC8sJC8sIiIpKyJ9IixlLmR5bmFtaWNBdHRycyYmKG49Il9iKCIrbisnLCInK2UudGFnKyciLCcrR2EoZS5keW5hbWljQXR0cnMpKyIpIiksZS53cmFwRGF0YSYmKG49ZS53cmFwRGF0YShuKSksZS53cmFwTGlzdGVuZXJzJiYobj1lLndyYXBMaXN0ZW5lcnMobikpLG59ZnVuY3Rpb24gS2EoZSl7cmV0dXJuIDE9PT1lLnR5cGUmJigic2xvdCI9PT1lLnRhZ3x8ZS5jaGlsZHJlbi5zb21lKEthKSl9ZnVuY3Rpb24gSmEoZSx0KXt2YXIgbj1lLmF0dHJzTWFwWyJzbG90LXNjb3BlIl07aWYoZS5pZiYmIWUuaWZQcm9jZXNzZWQmJiFuKXJldHVybiBVYShlLHQsSmEsIm51bGwiKTtpZihlLmZvciYmIWUuZm9yUHJvY2Vzc2VkKXJldHVybiB6YShlLHQsSmEpO3ZhciByPWUuc2xvdFNjb3BlPT09Y2E\/IiI6U3RyaW5nKGUuc2xvdFNjb3BlKSxpPSJmdW5jdGlvbigiK3IrIil7cmV0dXJuICIrKCJ0ZW1wbGF0ZSI9PT1lLnRhZz9lLmlmJiZuPyIoIitlLmlmKyIpPyIrKHFhKGUsdCl8fCJ1bmRlZmluZWQiKSsiOnVuZGVmaW5lZCI6cWEoZSx0KXx8InVuZGVmaW5lZCI6UmEoZSx0KSkrIn0iLG89cj8iIjoiLHByb3h5OnRydWUiO3JldHVybiJ7a2V5OiIrKGUuc2xvdFRhcmdldHx8JyJkZWZhdWx0IicpKyIsZm46IitpK28rIn0ifWZ1bmN0aW9uIHFhKGUsdCxuLHIsaSl7dmFyIG89ZS5jaGlsZHJlbjtpZihvLmxlbmd0aCl7dmFyIGE9b1swXTtpZigxPT09by5sZW5ndGgmJmEuZm9yJiYidGVtcGxhdGUiIT09YS50YWcmJiJzbG90IiE9PWEudGFnKXt2YXIgcz1uP3QubWF5YmVDb21wb25lbnQoYSk\/IiwxIjoiLDAiOiIiO3JldHVybiIiKyhyfHxSYSkoYSx0KStzfXZhciBjPW4\/ZnVuY3Rpb24oZSx0KXtmb3IodmFyIG49MCxyPTA7cjxlLmxlbmd0aDtyKyspe3ZhciBpPWVbcl07aWYoMT09PWkudHlwZSl7aWYoV2EoaSl8fGkuaWZDb25kaXRpb25zJiZpLmlmQ29uZGl0aW9ucy5zb21lKGZ1bmN0aW9uKGUpe3JldHVybiBXYShlLmJsb2NrKX0pKXtuPTI7YnJlYWt9KHQoaSl8fGkuaWZDb25kaXRpb25zJiZpLmlmQ29uZGl0aW9ucy5zb21lKGZ1bmN0aW9uKGUpe3JldHVybiB0KGUuYmxvY2spfSkpJiYobj0xKX19cmV0dXJuIG59KG8sdC5tYXliZUNvbXBvbmVudCk6MCx1PWl8fFphO3JldHVybiJbIitvLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gdShlLHQpfSkuam9pbigiLCIpKyJdIisoYz8iLCIrYzoiIil9fWZ1bmN0aW9uIFdhKGUpe3JldHVybiB2b2lkIDAhPT1lLmZvcnx8InRlbXBsYXRlIj09PWUudGFnfHwic2xvdCI9PT1lLnRhZ31mdW5jdGlvbiBaYShlLHQpe3JldHVybiAxPT09ZS50eXBlP1JhKGUsdCk6Mz09PWUudHlwZSYmZS5pc0NvbW1lbnQ\/KHI9ZSwiX2UoIitKU09OLnN0cmluZ2lmeShyLnRleHQpKyIpIik6Il92KCIrKDI9PT0obj1lKS50eXBlP24uZXhwcmVzc2lvbjpYYShKU09OLnN0cmluZ2lmeShuLnRleHQpKSkrIikiO3ZhciBuLHJ9ZnVuY3Rpb24gR2EoZSl7Zm9yKHZhciB0PSIiLG49IiIscj0wO3I8ZS5sZW5ndGg7cisrKXt2YXIgaT1lW3JdLG89WGEoaS52YWx1ZSk7aS5keW5hbWljP24rPWkubmFtZSsiLCIrbysiLCI6dCs9JyInK2kubmFtZSsnIjonK28rIiwifXJldHVybiB0PSJ7Iit0LnNsaWNlKDAsLTEpKyJ9IixuPyJfZCgiK3QrIixbIituLnNsaWNlKDAsLTEpKyJdKSI6dH1mdW5jdGlvbiBYYShlKXtyZXR1cm4gZS5yZXBsYWNlKC9cdTIwMjgvZywiXFx1MjAyOCIpLnJlcGxhY2UoL1x1MjAyOS9nLCJcXHUyMDI5Iil9bmV3IFJlZ0V4cCgiXFxiIisiZG8saWYsZm9yLGxldCxuZXcsdHJ5LHZhcixjYXNlLGVsc2Usd2l0aCxhd2FpdCxicmVhayxjYXRjaCxjbGFzcyxjb25zdCxzdXBlcix0aHJvdyx3aGlsZSx5aWVsZCxkZWxldGUsZXhwb3J0LGltcG9ydCxyZXR1cm4sc3dpdGNoLGRlZmF1bHQsZXh0ZW5kcyxmaW5hbGx5LGNvbnRpbnVlLGRlYnVnZ2VyLGZ1bmN0aW9uLGFyZ3VtZW50cyIuc3BsaXQoIiwiKS5qb2luKCJcXGJ8XFxiIikrIlxcYiIpO2Z1bmN0aW9uIFlhKGUsdCl7dHJ5e3JldHVybiBuZXcgRnVuY3Rpb24oZSl9Y2F0Y2gobil7cmV0dXJuIHQucHVzaCh7ZXJyOm4sY29kZTplfSksU319ZnVuY3Rpb24gUWEoZSl7dmFyIHQ9T2JqZWN0LmNyZWF0ZShudWxsKTtyZXR1cm4gZnVuY3Rpb24obixyLGkpeyhyPUEoe30scikpLndhcm47ZGVsZXRlIHIud2Fybjt2YXIgbz1yLmRlbGltaXRlcnM\/U3RyaW5nKHIuZGVsaW1pdGVycykrbjpuO2lmKHRbb10pcmV0dXJuIHRbb107dmFyIGE9ZShuLHIpLHM9e30sYz1bXTtyZXR1cm4gcy5yZW5kZXI9WWEoYS5yZW5kZXIsYykscy5zdGF0aWNSZW5kZXJGbnM9YS5zdGF0aWNSZW5kZXJGbnMubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBZYShlLGMpfSksdFtvXT1zfX12YXIgZXMsdHMsbnM9KGVzPWZ1bmN0aW9uKGUsdCl7dmFyIG49bGEoZS50cmltKCksdCk7ITEhPT10Lm9wdGltaXplJiZrYShuLHQpO3ZhciByPVBhKG4sdCk7cmV0dXJue2FzdDpuLHJlbmRlcjpyLnJlbmRlcixzdGF0aWNSZW5kZXJGbnM6ci5zdGF0aWNSZW5kZXJGbnN9fSxmdW5jdGlvbihlKXtmdW5jdGlvbiB0KHQsbil7dmFyIHI9T2JqZWN0LmNyZWF0ZShlKSxpPVtdLG89W107aWYobilmb3IodmFyIGEgaW4gbi5tb2R1bGVzJiYoci5tb2R1bGVzPShlLm1vZHVsZXN8fFtdKS5jb25jYXQobi5tb2R1bGVzKSksbi5kaXJlY3RpdmVzJiYoci5kaXJlY3RpdmVzPUEoT2JqZWN0LmNyZWF0ZShlLmRpcmVjdGl2ZXN8fG51bGwpLG4uZGlyZWN0aXZlcykpLG4pIm1vZHVsZXMiIT09YSYmImRpcmVjdGl2ZXMiIT09YSYmKHJbYV09blthXSk7ci53YXJuPWZ1bmN0aW9uKGUsdCxuKXsobj9vOmkpLnB1c2goZSl9O3ZhciBzPWVzKHQudHJpbSgpLHIpO3JldHVybiBzLmVycm9ycz1pLHMudGlwcz1vLHN9cmV0dXJue2NvbXBpbGU6dCxjb21waWxlVG9GdW5jdGlvbnM6UWEodCl9fSkoQ2EpLHJzPShucy5jb21waWxlLG5zLmNvbXBpbGVUb0Z1bmN0aW9ucyk7ZnVuY3Rpb24gaXMoZSl7cmV0dXJuKHRzPXRzfHxkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSkuaW5uZXJIVE1MPWU\/JzxhIGhyZWY9IlxuIi8+JzonPGRpdiBhPSJcbiIvPicsdHMuaW5uZXJIVE1MLmluZGV4T2YoIiYjMTA7Iik+MH12YXIgb3M9ISF6JiZpcyghMSksYXM9ISF6JiZpcyghMCksc3M9ZyhmdW5jdGlvbihlKXt2YXIgdD1ZbihlKTtyZXR1cm4gdCYmdC5pbm5lckhUTUx9KSxjcz13bi5wcm90b3R5cGUuJG1vdW50O3JldHVybiB3bi5wcm90b3R5cGUuJG1vdW50PWZ1bmN0aW9uKGUsdCl7aWYoKGU9ZSYmWW4oZSkpPT09ZG9jdW1lbnQuYm9keXx8ZT09PWRvY3VtZW50LmRvY3VtZW50RWxlbWVudClyZXR1cm4gdGhpczt2YXIgbj10aGlzLiRvcHRpb25zO2lmKCFuLnJlbmRlcil7dmFyIHI9bi50ZW1wbGF0ZTtpZihyKWlmKCJzdHJpbmciPT10eXBlb2YgcikiIyI9PT1yLmNoYXJBdCgwKSYmKHI9c3MocikpO2Vsc2V7aWYoIXIubm9kZVR5cGUpcmV0dXJuIHRoaXM7cj1yLmlubmVySFRNTH1lbHNlIGUmJihyPWZ1bmN0aW9uKGUpe2lmKGUub3V0ZXJIVE1MKXJldHVybiBlLm91dGVySFRNTDt2YXIgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtyZXR1cm4gdC5hcHBlbmRDaGlsZChlLmNsb25lTm9kZSghMCkpLHQuaW5uZXJIVE1MfShlKSk7aWYocil7dmFyIGk9cnMocix7b3V0cHV0U291cmNlUmFuZ2U6ITEsc2hvdWxkRGVjb2RlTmV3bGluZXM6b3Msc2hvdWxkRGVjb2RlTmV3bGluZXNGb3JIcmVmOmFzLGRlbGltaXRlcnM6bi5kZWxpbWl0ZXJzLGNvbW1lbnRzOm4uY29tbWVudHN9LHRoaXMpLG89aS5yZW5kZXIsYT1pLnN0YXRpY1JlbmRlckZucztuLnJlbmRlcj1vLG4uc3RhdGljUmVuZGVyRm5zPWF9fXJldHVybiBjcy5jYWxsKHRoaXMsZSx0KX0sd24uY29tcGlsZT1ycyx3bn0pOwovKiogL20vanMvdnVlL3Z1ZS10aGUtbWFzay5qcyAqKi8KdmFyIF9fX2QyY192dWV0aGVtYXNranNfY19vbj0iMjAyNS0wNS0yMyAxNzowNTozOCI7J3VzZSBzdHJpY3QnO3ZhciBfX19kMmNfdnVldGhlbWFza2pzX2Nfb249IjIwMjQtMDEtMzEgMTQ6MzM6MTUiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfdnVldGhlbWFza2pzX2Nfb249IjIwMjMtMDEtMTIgMTE6NDA6NTUiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfdnVldGhlbWFza2pzX2Nfb249IjIwMjMtMDEtMTIgMTA6NTA6NDEiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfdnVldGhlbWFza2pzX2Nfb249IjIwMjEtMTItMTUgMTI6NTE6MjQiOyJ1c2Ugc3RyaWN0IjsKKGZ1bmN0aW9uKGgsYyl7Im9iamVjdCI9PXR5cGVvZiBleHBvcnRzJiYib2JqZWN0Ij09dHlwZW9mIG1vZHVsZT9tb2R1bGUuZXhwb3J0cz1jKCk6ImZ1bmN0aW9uIj09dHlwZW9mIGRlZmluZSYmZGVmaW5lLmFtZD9kZWZpbmUoW10sYyk6Im9iamVjdCI9PXR5cGVvZiBleHBvcnRzP2V4cG9ydHMuVnVlVGhlTWFzaz1jKCk6aC5WdWVUaGVNYXNrPWMoKX0pKHRoaXMsZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24oaCl7ZnVuY3Rpb24gYyhkKXtpZihhW2RdKXJldHVybiBhW2RdLmV4cG9ydHM7dmFyIGU9YVtkXT17aTpkLGw6ITEsZXhwb3J0czp7fX07cmV0dXJuIGhbZF0uY2FsbChlLmV4cG9ydHMsZSxlLmV4cG9ydHMsYyksZS5sPSEwLGUuZXhwb3J0c312YXIgYT17fTtyZXR1cm4gYy5tPWgsYy5jPWEsYy5pPWZ1bmN0aW9uKGQpe3JldHVybiBkfSxjLmQ9ZnVuY3Rpb24oZCxlLGwpe2MubyhkLGUpfHxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxlLHtjb25maWd1cmFibGU6ITEsZW51bWVyYWJsZTohMCwKZ2V0Omx9KX0sYy5uPWZ1bmN0aW9uKGQpe3ZhciBlPWQmJmQuX19lc01vZHVsZT9mdW5jdGlvbigpe3JldHVybiBkLmRlZmF1bHR9OmZ1bmN0aW9uKCl7cmV0dXJuIGR9O3JldHVybiBjLmQoZSwiYSIsZSksZX0sYy5vPWZ1bmN0aW9uKGQsZSl7cmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChkLGUpfSxjLnA9Ii4iLGMoYy5zPTEwKX0oW2Z1bmN0aW9uKGgsYyl7aC5leHBvcnRzPXsiIyI6e3BhdHRlcm46L1xkL30sWDp7cGF0dGVybjovWzAtOWEtekEtWl0vfSxTOntwYXR0ZXJuOi9bYS16QS1aXS99LEE6e3BhdHRlcm46L1thLXpBLVpdLyx0cmFuc2Zvcm06ZnVuY3Rpb24oYSl7cmV0dXJuIGEudG9Mb2NhbGVVcHBlckNhc2UoKX19LGE6e3BhdHRlcm46L1thLXpBLVpdLyx0cmFuc2Zvcm06ZnVuY3Rpb24oYSl7cmV0dXJuIGEudG9Mb2NhbGVMb3dlckNhc2UoKX19LCIhIjp7ZXNjYXBlOiEwfX19LGZ1bmN0aW9uKGgsYyxhKXtmdW5jdGlvbiBkKGIpe3ZhciBmPQpkb2N1bWVudC5jcmVhdGVFdmVudCgiRXZlbnQiKTtyZXR1cm4gZi5pbml0RXZlbnQoYiwhMCwhMCksZn12YXIgZT1hKDIpO2g9YSgwKTt2YXIgbD1hLm4oaCk7Yy5hPWZ1bmN0aW9uKGIsZil7dmFyIGc9Zi52YWx1ZTtpZigoQXJyYXkuaXNBcnJheShnKXx8InN0cmluZyI9PXR5cGVvZiBnKSYmKGc9e21hc2s6Zyx0b2tlbnM6bC5hfSksIklOUFVUIiE9PWIudGFnTmFtZS50b0xvY2FsZVVwcGVyQ2FzZSgpKXtmPWIuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImlucHV0Iik7aWYoMSE9PWYubGVuZ3RoKXRocm93IEVycm9yKCJ2LW1hc2sgZGlyZWN0aXZlIHJlcXVpcmVzIDEgaW5wdXQsIGZvdW5kICIrZi5sZW5ndGgpO2I9ZlswXX1iLm9uaW5wdXQ9ZnVuY3Rpb24obSl7aWYobS5pc1RydXN0ZWQpe3ZhciBrPWIuc2VsZWN0aW9uRW5kO209Yi52YWx1ZVtrLTFdO2ZvcihiLnZhbHVlPWEuaShlLmEpKGIudmFsdWUsZy5tYXNrLCEwLGcudG9rZW5zKTtrPGIudmFsdWUubGVuZ3RoJiZiLnZhbHVlLmNoYXJBdChrLQoxKSE9PW07KWsrKztiPT09ZG9jdW1lbnQuYWN0aXZlRWxlbWVudCYmKGIuc2V0U2VsZWN0aW9uUmFuZ2UoayxrKSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yi5zZXRTZWxlY3Rpb25SYW5nZShrLGspfSwwKSk7Yi5kaXNwYXRjaEV2ZW50KGQoImlucHV0IikpfX07Zj1hLmkoZS5hKShiLnZhbHVlLGcubWFzaywhMCxnLnRva2Vucyk7ZiE9PWIudmFsdWUmJihiLnZhbHVlPWYsYi5kaXNwYXRjaEV2ZW50KGQoImlucHV0IikpKX19LGZ1bmN0aW9uKGgsYyxhKXt2YXIgZD1hKDYpLGU9YSg1KTtjLmE9ZnVuY3Rpb24obCxiKXt2YXIgZj0hKDI8YXJndW1lbnRzLmxlbmd0aCYmdm9pZCAwIT09YXJndW1lbnRzWzJdKXx8YXJndW1lbnRzWzJdLGc9YXJndW1lbnRzWzNdO3JldHVybiBBcnJheS5pc0FycmF5KGIpP2EuaShlLmEpKGQuYSxiLGcpKGwsYixmLGcpOmEuaShkLmEpKGwsYixmLGcpfX0sZnVuY3Rpb24oaCxjLGEpe2Z1bmN0aW9uIGQoZyl7Zy5jb21wb25lbnQoYi5hLm5hbWUsYi5hKTsKZy5kaXJlY3RpdmUoIm1hc2siLGwuYSl9T2JqZWN0LmRlZmluZVByb3BlcnR5KGMsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO2g9YSgwKTt2YXIgZT1hLm4oaCksbD1hKDEpO2g9YSg3KTt2YXIgYj1hLm4oaCk7YS5kKGMsIlRoZU1hc2siLGZ1bmN0aW9uKCl7cmV0dXJuIGIuYX0pO2EuZChjLCJtYXNrIixmdW5jdGlvbigpe3JldHVybiBsLmF9KTthLmQoYywidG9rZW5zIixmdW5jdGlvbigpe3JldHVybiBlLmF9KTthLmQoYywidmVyc2lvbiIsZnVuY3Rpb24oKXtyZXR1cm4gZn0pO3ZhciBmPSIwLjExLjEiO2MuZGVmYXVsdD1kOyJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93JiZ3aW5kb3cuVnVlJiZ3aW5kb3cuVnVlLnVzZShkKX0sZnVuY3Rpb24oaCxjLGEpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShjLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTtoPWEoMSk7dmFyIGQ9YSgwKSxlPWEubihkKSxsPWEoMik7Yy5kZWZhdWx0PXtuYW1lOiJUaGVNYXNrIixwcm9wczp7dmFsdWU6W1N0cmluZywKTnVtYmVyXSxtYXNrOnt0eXBlOltTdHJpbmcsQXJyYXldLHJlcXVpcmVkOiEwfSxtYXNrZWQ6e3R5cGU6Qm9vbGVhbixkZWZhdWx0OiExfSx0b2tlbnM6e3R5cGU6T2JqZWN0LGRlZmF1bHQ6ZnVuY3Rpb24oKXtyZXR1cm4gZS5hfX19LGRpcmVjdGl2ZXM6e21hc2s6aC5hfSxkYXRhOmZ1bmN0aW9uKCl7cmV0dXJue2xhc3RWYWx1ZTpudWxsLGRpc3BsYXk6dGhpcy52YWx1ZX19LHdhdGNoOnt2YWx1ZTpmdW5jdGlvbihiKXtiIT09dGhpcy5sYXN0VmFsdWUmJih0aGlzLmRpc3BsYXk9Yil9LG1hc2tlZDpmdW5jdGlvbigpe3RoaXMucmVmcmVzaCh0aGlzLmRpc3BsYXkpfX0sY29tcHV0ZWQ6e2NvbmZpZzpmdW5jdGlvbigpe3JldHVybnttYXNrOnRoaXMubWFzayx0b2tlbnM6dGhpcy50b2tlbnMsbWFza2VkOnRoaXMubWFza2VkfX19LG1ldGhvZHM6e29uSW5wdXQ6ZnVuY3Rpb24oYil7Yi5pc1RydXN0ZWR8fHRoaXMucmVmcmVzaChiLnRhcmdldC52YWx1ZSl9LHJlZnJlc2g6ZnVuY3Rpb24oYil7dGhpcy5kaXNwbGF5PQpiO2I9YS5pKGwuYSkoYix0aGlzLm1hc2ssdGhpcy5tYXNrZWQsdGhpcy50b2tlbnMpO2IhPT10aGlzLmxhc3RWYWx1ZSYmKHRoaXMubGFzdFZhbHVlPWIsdGhpcy4kZW1pdCgiaW5wdXQiLGIpKX19fX0sZnVuY3Rpb24oaCxjLGEpe2MuYT1mdW5jdGlvbihkLGUsbCl7cmV0dXJuIGU9ZS5zb3J0KGZ1bmN0aW9uKGIsZil7cmV0dXJuIGIubGVuZ3RoLWYubGVuZ3RofSksZnVuY3Rpb24oYixmKXtmb3IodmFyIGc9ISgyPGFyZ3VtZW50cy5sZW5ndGgmJnZvaWQgMCE9PWFyZ3VtZW50c1syXSl8fGFyZ3VtZW50c1syXSxtPTA7bTxlLmxlbmd0aDspe3ZhciBrPWVbbV07bSsrO3ZhciBuPWVbbV07aWYoIShuJiZkKGIsbiwhMCxsKS5sZW5ndGg+ay5sZW5ndGgpKXJldHVybiBkKGIsayxnLGwpfXJldHVybiIifX19LGZ1bmN0aW9uKGgsYyxhKXtjLmE9ZnVuY3Rpb24oZCxlKXt2YXIgbD0hKDI8YXJndW1lbnRzLmxlbmd0aCYmdm9pZCAwIT09YXJndW1lbnRzWzJdKXx8YXJndW1lbnRzWzJdLGI9CmFyZ3VtZW50c1szXTtkPWR8fCIiO2U9ZXx8IiI7Zm9yKHZhciBmPTAsZz0wLG09IiI7ZjxlLmxlbmd0aCYmZzxkLmxlbmd0aDspe3ZhciBrPWVbZl0sbj1iW2tdLHA9ZFtnXTtuJiYhbi5lc2NhcGU\/KG4ucGF0dGVybi50ZXN0KHApJiYobSs9bi50cmFuc2Zvcm0\/bi50cmFuc2Zvcm0ocCk6cCxmKyspLGcrKyk6KG4mJm4uZXNjYXBlJiYoZisrLGs9ZVtmXSksbCYmKG0rPWspLHA9PT1rJiZnKyssZisrKX1mb3IoZz0iIjtmPGUubGVuZ3RoJiZsOyl7az1lW2ZdO2lmKGJba10pe2c9IiI7YnJlYWt9Zys9aztmKyt9cmV0dXJuIG0rZ319LGZ1bmN0aW9uKGgsYyxhKXtjPWEoOCkoYSg0KSxhKDkpLG51bGwsbnVsbCk7aC5leHBvcnRzPWMuZXhwb3J0c30sZnVuY3Rpb24oaCxjKXtoLmV4cG9ydHM9ZnVuY3Rpb24oYSxkLGUsbCl7dmFyIGIsZj1hPWF8fHt9LGc9dHlwZW9mIGEuZGVmYXVsdDsib2JqZWN0IiE9PWcmJiJmdW5jdGlvbiIhPT1nfHwoYj1hLGY9YS5kZWZhdWx0KTthPSJmdW5jdGlvbiI9PQp0eXBlb2YgZj9mLm9wdGlvbnM6ZjtpZihkJiYoYS5yZW5kZXI9ZC5yZW5kZXIsYS5zdGF0aWNSZW5kZXJGbnM9ZC5zdGF0aWNSZW5kZXJGbnMpLGUmJihhLl9zY29wZUlkPWUpLGwpe3ZhciBtPWEuY29tcHV0ZWR8fChhLmNvbXB1dGVkPXt9KTtPYmplY3Qua2V5cyhsKS5mb3JFYWNoKGZ1bmN0aW9uKGspe3ZhciBuPWxba107bVtrXT1mdW5jdGlvbigpe3JldHVybiBufX0pfXJldHVybntlc01vZHVsZTpiLGV4cG9ydHM6ZixvcHRpb25zOmF9fX0sZnVuY3Rpb24oaCxjKXtoLmV4cG9ydHM9e3JlbmRlcjpmdW5jdGlvbigpe3ZhciBhPXRoaXMuJGNyZWF0ZUVsZW1lbnQ7cmV0dXJuKHRoaXMuX3NlbGYuX2N8fGEpKCJpbnB1dCIse2RpcmVjdGl2ZXM6W3tuYW1lOiJtYXNrIixyYXdOYW1lOiJ2LW1hc2siLHZhbHVlOnRoaXMuY29uZmlnLGV4cHJlc3Npb246ImNvbmZpZyJ9XSxhdHRyczp7dHlwZToidGV4dCJ9LGRvbVByb3BzOnt2YWx1ZTp0aGlzLmRpc3BsYXl9LG9uOntpbnB1dDp0aGlzLm9uSW5wdXR9fSl9LApzdGF0aWNSZW5kZXJGbnM6W119fSxmdW5jdGlvbihoLGMsYSl7aC5leHBvcnRzPWEoMyl9XSl9KTsKLyoqIC9tL2pzL2ZpbmFuY2VfbXVsdGlzdGVwLmpzICoqLwp2YXIgX19fZDJjX2ZpbmFuY2VtdWx0aXN0ZXBqc19jX29uPSIyMDI2LTAzLTA2IDA5OjMwOjAzIjsndXNlIHN0cmljdCc7dmFyICRqc2NvbXA9JGpzY29tcHx8e307JGpzY29tcC5zY29wZT17fTskanNjb21wLkFTU1VNRV9FUzU9ITE7JGpzY29tcC5BU1NVTUVfTk9fTkFUSVZFX01BUD0hMTskanNjb21wLkFTU1VNRV9OT19OQVRJVkVfU0VUPSExOyRqc2NvbXAuU0lNUExFX0ZST1VORF9QT0xZRklMTD0hMTskanNjb21wLklTT0xBVEVfUE9MWUZJTExTPSExOyRqc2NvbXAuRk9SQ0VfUE9MWUZJTExfUFJPTUlTRT0hMTskanNjb21wLkZPUkNFX1BPTFlGSUxMX1BST01JU0VfV0hFTl9OT19VTkhBTkRMRURfUkVKRUNUSU9OPSExOyRqc2NvbXAuZGVmaW5lUHJvcGVydHk9JGpzY29tcC5BU1NVTUVfRVM1fHwiZnVuY3Rpb24iPT10eXBlb2YgT2JqZWN0LmRlZmluZVByb3BlcnRpZXM\/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+\/vWhpY3VsZTogIjoiRGVhbGVyIHdoZXJlIHRoZSB2ZWhpY2xlIGlzIGxvY2F0ZWQ6ICIsYys9JCgnaW5wdXRbZGF0YS1mb3J2YXI9Ik9WRVJXUklUVEVSREVBTEVSIl0nKS52YWwoKSxkPWQucmVwbGFjZSgieyRERUFMRVJfU0VORFRPfSIsYykpOmQ9ZC5yZXBsYWNlKC88YnJccz9cLz57XCRERUFMRVJfU0VORFRPfShiclxzP1wvKT8vLCIiKS5yZXBsYWNlKCJ7JERFQUxFUl9TRU5EVE99IiwiIik7cmV0dXJuIGR9LGNoZWNrVmFsaWRpdHk6ZnVuY3Rpb24oKXtpZihhLnZhbGlkYXRpb25SdWxlcy5oYXNPd25Qcm9wZXJ0eSgic3RlcCIrYS5zdGVwKSlmb3IodmFyIGQ9MDtkPGEudmFsaWRhdGlvblJ1bGVzWyJzdGVwIithLnN0ZXBdLmxlbmd0aDtkKyspaWYoa1thLnZhbGlkYXRpb25SdWxlc1sic3RlcCIrYS5zdGVwXVtkXS5mdW5jXShhLmZvcm1kYXRhW2EudmFsaWRhdGlvblJ1bGVzWyJzdGVwIithLnN0ZXBdW2RdLnZhbHVlXSkpJCgiI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm1fbmV4dF9idG4gYnV0dG9uI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm1fbmV4dF9idXR0b24iLApiKS5hZGRDbGFzcygiaXNWYWxpZCIpO2Vsc2V7JCgiI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm1fbmV4dF9idG4gYnV0dG9uI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm1fbmV4dF9idXR0b24iLGIpLnJlbW92ZUNsYXNzKCJpc1ZhbGlkIik7YnJlYWt9ZWxzZSAkKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV9uZXh0X2J0biBidXR0b24jZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV9uZXh0X2J1dHRvbiIsYikuYWRkQ2xhc3MoImlzVmFsaWQiKX0scG9wdXBMYXVuY2hlZFRyYWNrOmZ1bmN0aW9uKCl7aCgiUG9wdXAgbGF1bmNoZWQiKTshay51c2VySWQoKSYmYS5maXJzdFN0ZXAmJmxvY2FsU3RvcmFnZS5zZXRJdGVtKCJmaW5hbmNlX211bHRpc3RlcC5saW5lYXJfc3RlcCIsMSk7ay5zdGVwVHJpZ2dlcighMSl9LHN0ZXAyVmlld2VkVHJhY2s6ZnVuY3Rpb24oKXtoKCJTdGVwIDIgdmlld2VkIil9LGVtYWlsU3RlcFZpZXdlZFRyYWNrOmZ1bmN0aW9uKCl7aCgiRW1haWwgc3RlcCB2aWV3ZWQiKX0sCnBob25lU3RlcFZpZXdlZFRyYWNrOmZ1bmN0aW9uKCl7aCgiUGhvbmUgc3RlcCB2aWV3ZWQiKX0sZW1haWxQcm92aWRlZFRyYWNrOmZ1bmN0aW9uKCl7aCgiRW1haWwgcHJvdmlkZWQiKX0scGhvbmVQcm92aWRlZFRyYWNrOmZ1bmN0aW9uKCl7aCgiUGhvbmUgcHJvdmlkZWQiKX0sc3RlcFRyaWdnZXI6ZnVuY3Rpb24oZCl7ZD17c3RlcDphLmdldExpbmVhcnN0ZXAoZCksbWFrZTphLmZvcm1kYXRhLmN1cnJlbnRNYWtlLG1vZGVsOmEuZm9ybWRhdGEuY3VycmVudE1vZGVsLHllYXI6YS5mb3JtZGF0YS5jdXJyZW50WWVhcixib2R5VHlwZTphLmZvcm1kYXRhLnZlaGljbGVUeXBlLHNhbGVzRGVwdDphLmZvcm1kYXRhLnZlaGljbGVTYWxlc0RlcHQsdmVoaWNsZUNvbG9yOmEuZm9ybWRhdGEudmVoaWNsZUNvbG9yLHZlaGljbGVQcmljZTphLmZvcm1kYXRhLnZlaGljbGVQcmljZSx2ZWhpY2xlVGFuc21pc3Npb246YS5mb3JtZGF0YS52ZWhpY2xlVGFuc21pc3Npb24sdmVoaWNsZVRyaW06YS5mb3JtZGF0YS52ZWhpY2xlVHJpbX07CiQoIiNmaW5hbmNlX211bHRpc3RlcF9mb3JtIixiKS50cmlnZ2VyKCJmb3JtLnN0ZXAiLGQpO2EuZmlyc3RTdGVwPSExfX07d2luZG93LmFwcFRlc3Q9YTt2YXIgVTskKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSBpbnB1dCwgI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gc2VsZWN0LCAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSB0ZXh0YXJlYSIpLm9uKCJjaGFuZ2UgaW5wdXQiLGZ1bmN0aW9uKCl7Y2xlYXJUaW1lb3V0KFUpO1U9c2V0VGltZW91dChrLmNoZWNrVmFsaWRpdHksNTAwKX0pOyQoJyNmaW5hbmNlX211bHRpc3RlcF9mb3JtIGlucHV0W3R5cGU9Im51bWJlciJdJykub24oImZvY3VzIixmdW5jdGlvbigpeyQodGhpcykudHJpZ2dlcigic2VsZWN0Iil9KTtyZXR1cm57c3RhcnQ6UCxoYXNVc2VyOmsuaGFzVXNlcn19CiQoZnVuY3Rpb24oKXskKGRvY3VtZW50KS5vbigicmV2ZWFsOm9wZW4iLCIjZmluYW5jZU11bHRpc3RlcFBvcHVwQ29udGFpbmVyIixmdW5jdGlvbigpeyQoZG9jdW1lbnQpLnRyaWdnZXIoImNyZWRpdC5tdWx0aXN0ZXBwb3B1cC5zdGFydCIpfSk7JChkb2N1bWVudCkub24oInJldmVhbDpvcGVuIiwiI2ZpbmFuY2VNdWx0aXN0ZXBJbnN0YW50UG9wdXBDb250YWluZXIiLGZ1bmN0aW9uKCl7JChkb2N1bWVudCkudHJpZ2dlcigiY3JlZGl0Lm11bHRpc3RlcHBvcHVwLnN0YXJ0Iil9KX0pOwovKiogL20vanMvY2FsY3VsYXRvckZ1bmN0aW9ucy5qcyAqKi8KdmFyIF9fX2QyY19jYWxjdWxhdG9yRnVuY3Rpb25zanNfY19vbj0iMjAyNi0wMi0yMCAxMTozMDoxOCI7J3VzZSBzdHJpY3QnO2NsYXNzIGNhbGN1bGF0b3JGdW5jdGlvbnN7Y29uc3RydWN0b3IoYSl7dGhpcy5wYXJlbnQ9YTt0aGlzLnBhcmVudE5hbWU9dGhpcy5wYXJlbnQucmVwbGFjZSgiIyIsIiIpO3RoaXMuc2V0VHJpZ2dlcnMoKX1pbml0KGEsZSxiLGYsbSxnLGgscCxuKXt2YXIgcT10aGlzLnBhcmVudDt0aGlzLnN0eWxlaWQ9YTt0aGlzLnBheW1lbnRUeXBlPWU7dGhpcy50cmFkZUluVmFsdWU9JChxKyIgLnBheW1lbnRDYWxjdWxhdG9yVHJhZGVJbkZpbmFsIikudmFsKCk\/cGFyc2VJbnQoJChxKyIgLnBheW1lbnRDYWxjdWxhdG9yVHJhZGVJbkZpbmFsIikudmFsKCkpOjA7dGhpcy5kb3ducGF5bWVudD0wPmItdGhpcy50cmFkZUluVmFsdWU\/MDpiLXRoaXMudHJhZGVJblZhbHVlO3RoaXMub3B0aW9uc0Ftb3VudD1mO3RoaXMucGF5bWVudEZyZXF1ZW5jeT1tO3RoaXMua21BbGxvd2FuY2U9Zzt0aGlzLmlzSW52ZW50b3J5PWg\/aDohMTt0aGlzLnNuPXA\/cDoiIjt0aGlzLnZpbj1uPwpuOiIiO3RoaXMubG9hZFBheW1lbnRzKCEwKX1zZXRJbml0aWFsVmlldyhhKXt2YXIgZT10aGlzLnBhcmVudCxiPXRoaXM7JChlKyIgLnBheW1lbnRDYWxjdWxhdG9yS21BbGxvd2FuY2Ugb3B0aW9uIikucmVtb3ZlKCk7JChlKyIgLnBheW1lbnRDYWxjdWxhdG9yRG93blBheW1lbnQiKS52YWwodGhpcy5kb3ducGF5bWVudCk7JChlKyIgLnBheW1lbnRDYWxjdWxhdG9ySW50ZXJ2YWwiKS52YWwoYS5jdXJyZW50UGF5bWVudFswXS5pbnRlcnZhbCk7bGV0IGY9ImxlYXNlIj09YS5jdXJyZW50UGF5bWVudFswXS50eXBlPyJsZWFzaW5nIjoiZmluYW5jaW5nIjskKGUrIiAucGF5bWVudENhbGN1bGF0b3JQYXltZW50VHlwZSBsaSIpLnJlbW92ZUNsYXNzKCJhY3RpdmVQYXltZW50VHlwZSIpOyQoZSsiIC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRUeXBlIGxpW2RhdGEtdHlwZT0nIitmKyInXSIpLmFkZENsYXNzKCJhY3RpdmVQYXltZW50VHlwZSIpOzA9PWEuZmluYW5jZS5sZW5ndGg\/JChlKwoiIC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRUeXBlRmluYW5jZSIpLmhpZGUoKTokKGUrIiAucGF5bWVudENhbGN1bGF0b3JQYXltZW50VHlwZUZpbmFuY2UiKS5zaG93KCk7aWYoMD09YS5sZWFzZS5sZW5ndGgpJChlKyIgLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFR5cGVMZWFzZSIpLmhpZGUoKTtlbHNleyQoZSsiIC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRUeXBlTGVhc2UiKS5zaG93KCk7bGV0IGc9W107YS5sZWFzZS5mb3JFYWNoKGZ1bmN0aW9uKGgpey0xPT0kLmluQXJyYXkoaC5rbV9hbGxvd2FuY2UsZykmJmcucHVzaChoLmttX2FsbG93YW5jZSl9KTtnLmZvckVhY2goZnVuY3Rpb24oaCl7bGV0IHA9Yi5wYXltZW50Q2FsY3VsYXRvckZvcm1hdE51bWJlcihoLnRvRml4ZWQoMCkpOyQoZSsiIC5wYXltZW50Q2FsY3VsYXRvckttQWxsb3dhbmNlIikuYXBwZW5kKG5ldyBPcHRpb24ocCsiIGttIixoKSl9KTt2YXIgbT0yRTQ7YS5jdXJyZW50UGF5bWVudFswXSYmInVuZGVmaW5lZCIhPT0KdHlwZW9mIGEuY3VycmVudFBheW1lbnRbMF0ua21fYWxsb3dhbmNlJiYobT0wPGEuY3VycmVudFBheW1lbnRbMF0ua21fYWxsb3dhbmNlP2EuY3VycmVudFBheW1lbnRbMF0ua21fYWxsb3dhbmNlOjJFNCk7JChlKyIgLnBheW1lbnRDYWxjdWxhdG9yS21BbGxvd2FuY2UiKS52YWwobSl9dGhpcy5rbUFsbG93YW5jZT0kKGUrIiAucGF5bWVudENhbGN1bGF0b3JLbUFsbG93YW5jZSIpLnZhbCgpOyJsZWFzaW5nIj09Zj8kKGUrIiAucGF5bWVudENhbGN1bGF0b3JLbUFsbG93YW5jZUNvbnRhaW5lciIpLnNob3coKTokKGUrIiAucGF5bWVudENhbGN1bGF0b3JLbUFsbG93YW5jZUNvbnRhaW5lciIpLmhpZGUoKTskKCJib2R5Iikub24oImNsaWNrIHRhcCIsZSsiIC5maW5hbmNpbmctb3B0aW9uLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFdyYXBwZXIgKiIsZnVuY3Rpb24oKXskKHRoaXMpLmZpbmQoJ2lucHV0W25hbWU9InNlbGVjdGVkUGF5bWVudCJdJykucHJvcCgiY2hlY2tlZCIsImNoZWNrZWQiKS50cmlnZ2VyKCJjaGFuZ2UiKX0pOwokKCJib2R5Iikub24oImNoYW5nZSIsZSsnIGlucHV0W25hbWU9InNlbGVjdGVkUGF5bWVudCJdJyxmdW5jdGlvbigpe3ZhciBnPSQodGhpcykudmFsKCksaD0kKHRoaXMpLmF0dHIoImRhdGEtcmF0ZXR5cGUiKTskKGUrIiAuZmluYW5jaW5nLW9wdGlvbiIpLnJlbW92ZUNsYXNzKCJzZWxlY3RlZCIpOyQoJ2lucHV0W25hbWU9InNlbGVjdGVkUGF5bWVudFdpdGhUYXhlcyJdW3ZhbHVlPSInK2crJyJdW2RhdGEtcmF0ZXR5cGU9IicraCsnIl0nKS5jbG9zZXN0KCIuZmluYW5jaW5nLW9wdGlvbiIpLmFkZENsYXNzKCJzZWxlY3RlZCIpOyQoJ2lucHV0W25hbWU9InNlbGVjdGVkUGF5bWVudFdpdGhUYXhlcyJdW3ZhbHVlPSInK2crJyJdW2RhdGEtcmF0ZXR5cGU9IicraCsnIl0nKS5wcm9wKCJjaGVja2VkIiwhMCk7JCh0aGlzKS5jbG9zZXN0KCIuZmluYW5jaW5nLW9wdGlvbiIpLmFkZENsYXNzKCJzZWxlY3RlZCIpfSk7JCgiYm9keSIpLm9uKCJjaGFuZ2UiLGUrJyBpbnB1dFtuYW1lPSJzZWxlY3RlZFBheW1lbnRXaXRoVGF4ZXMiXScsCmZ1bmN0aW9uKCl7dmFyIGc9JCh0aGlzKS52YWwoKSxoPSQodGhpcykuYXR0cigiZGF0YS1yYXRldHlwZSIpOyQoZSsiIC5maW5hbmNpbmctb3B0aW9uIikucmVtb3ZlQ2xhc3MoInNlbGVjdGVkIik7JCgnaW5wdXRbbmFtZT0ic2VsZWN0ZWRQYXltZW50Il1bdmFsdWU9IicrZysnIl1bZGF0YS1yYXRldHlwZT0iJytoKyciXScpLmNsb3Nlc3QoIi5maW5hbmNpbmctb3B0aW9uIikuYWRkQ2xhc3MoInNlbGVjdGVkIik7JCgnaW5wdXRbbmFtZT0ic2VsZWN0ZWRQYXltZW50Il1bdmFsdWU9IicrZysnIl1bZGF0YS1yYXRldHlwZT0iJytoKyciXScpLnByb3AoImNoZWNrZWQiLCEwKTskKHRoaXMpLmNsb3Nlc3QoIi5maW5hbmNpbmctb3B0aW9uIikuYWRkQ2xhc3MoInNlbGVjdGVkIil9KX1zZXRUcmlnZ2Vycygpe3ZhciBhPXRoaXMucGFyZW50LGU9dGhpczskKGErIiAucGF5bWVudENhbGN1bGF0b3JQYXltZW50VHlwZSBsaSIpLm9mZigiY2xpY2siKTskKGErIiAucGF5bWVudENhbGN1bGF0b3JJbmNsdWRlVGF4Q2hlY2siKS5vZmYoImNoYW5nZSIpOwokKGErIiAucGF5bWVudENhbGN1bGF0b3JJbnRlcnZhbCIpLm9mZigiY2hhbmdlIik7JChhKyIgLnBheW1lbnRDYWxjdWxhdG9yS21BbGxvd2FuY2UiKS5vZmYoImNoYW5nZSIpOyQoYSsiIC5wYXltZW50Q2FsY3VsYXRvckRvd25QYXltZW50Iikub2ZmKCJibHVyIik7JChhKyIgLnBheW1lbnRDYWxjdWxhdG9yVHJhZGVJbkZpbmFsIikub2ZmKCJibHVyIik7JChhKyIgLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFR5cGUgbGkiKS5vbigiY2xpY2siLGZ1bmN0aW9uKCl7JChhKyIgLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFR5cGUgbGkiKS5yZW1vdmVDbGFzcygiYWN0aXZlUGF5bWVudFR5cGUiKTskKHRoaXMpLmFkZENsYXNzKCJhY3RpdmVQYXltZW50VHlwZSIpO2UucGF5bWVudFR5cGU9JCh0aGlzKS5hdHRyKCJkYXRhLXR5cGUiKTsibGVhc2luZyI9PSQodGhpcykuYXR0cigiZGF0YS10eXBlIik\/JChhKyIgLnBheW1lbnRDYWxjdWxhdG9yS21BbGxvd2FuY2VDb250YWluZXIiKS5zaG93KCk6CiQoYSsiIC5wYXltZW50Q2FsY3VsYXRvckttQWxsb3dhbmNlQ29udGFpbmVyIikuaGlkZSgpO2UubG9hZFBheW1lbnRzKCl9KTskKGErIiAucGF5bWVudENhbGN1bGF0b3JJbmNsdWRlVGF4Q2hlY2siKS5vbigiY2hhbmdlIixmdW5jdGlvbigpeyQodGhpcykuaXMoIjpjaGVja2VkIik\/KCQoYSsiIC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRDb250YWluZXIiKS5oaWRlKCksJChhKyIgLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudENvbnRhaW5lcldpdGhUYXhlcyIpLnNob3coKSk6KCQoYSsiIC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRDb250YWluZXJXaXRoVGF4ZXMiKS5oaWRlKCksJChhKyIgLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudENvbnRhaW5lciIpLnNob3coKSl9KTskKGErIiAucGF5bWVudENhbGN1bGF0b3JJbmNsdWRlVGF4Q2hlY2siKS50cmlnZ2VyKCJjaGFuZ2UiKTskKGErIiAucGF5bWVudENhbGN1bGF0b3JJbnRlcnZhbCIpLm9uKCJjaGFuZ2UiLGZ1bmN0aW9uKCl7ZS5wYXltZW50RnJlcXVlbmN5PQokKHRoaXMpLnZhbCgpO2UubG9hZFBheW1lbnRzKCl9KTskKGErIiAucGF5bWVudENhbGN1bGF0b3JLbUFsbG93YW5jZSIpLm9uKCJjaGFuZ2UiLGZ1bmN0aW9uKCl7ZS5rbUFsbG93YW5jZT0kKHRoaXMpLnZhbCgpO2UubG9hZFBheW1lbnRzKCl9KTskKGErIiAucGF5bWVudENhbGN1bGF0b3JEb3duUGF5bWVudCIpLm9uKCJibHVyIixmdW5jdGlvbigpe2xldCBiPXBhcnNlSW50KCQodGhpcykudmFsKCkpP3BhcnNlSW50KCQodGhpcykudmFsKCkpOjA7ZS5kb3ducGF5bWVudD1iO2UubG9hZFBheW1lbnRzKCl9KTskKGErIiAucGF5bWVudENhbGN1bGF0b3JUcmFkZUluRmluYWwiKS5vbigiYmx1ciIsZnVuY3Rpb24oKXtsZXQgYj1wYXJzZUludCgkKHRoaXMpLmF0dHIoIm1heCIpKXx8MCxmPXBhcnNlSW50KCQodGhpcykudmFsKCkpfHwwO2Y9Zj5iP2I6ZjskKHRoaXMpLnZhbChmKTtlLnRyYWRlSW5WYWx1ZT1mO19sb2NhbFN0b3JhZ2VTZXQoInRyYWRlaW5fY3VycmVudF92YWx1ZSIsCkpTT04uc3RyaW5naWZ5KHt2YWx1ZTpmfSksMSk7ZS5sb2FkUGF5bWVudHMoKX0pfWxvYWRQYXltZW50cyhhKXthPWE\/YTohMTtsZXQgZT0oJCgiYm9keSIpLmhhc0NsYXNzKCJFTkdMSVNIIik\/Ii9lbiI6Ii9mciIpKyIvYWpheC9nZXRQYXltZW50RGF0YUZvclN0eWxlSUQ\/d3N3aWR0aD0wIjt2YXIgYj10aGlzO2IudHJhZGVJblZhbHVlPXBhcnNlSW50KCQoYi5wYXJlbnQrIiAucGF5bWVudENhbGN1bGF0b3JUcmFkZUluRmluYWwiKS52YWwoKT8kKGIucGFyZW50KyIgLnBheW1lbnRDYWxjdWxhdG9yVHJhZGVJbkZpbmFsIikudmFsKCk6MCk7JC5hamF4KHt1cmw6ZSx0eXBlOiJQT1NUIixkYXRhVHlwZToiSlNPTiIsZGF0YTp7c3R5bGVpZDpiLnN0eWxlaWQscGF5bWVudFR5cGU6Yi5wYXltZW50VHlwZSxkb3ducGF5bWVudDpiLmRvd25wYXltZW50K2IudHJhZGVJblZhbHVlLG9wdGlvbnNBbW91bnQ6Yi5vcHRpb25zQW1vdW50LHBheW1lbnRGcmVxdWVuY3k6Yi5wYXltZW50RnJlcXVlbmN5LAprbUFsbG93YW5jZTpiLmttQWxsb3dhbmNlLG9wdGlvbnM6Yi5vcHRpb25zQW1vdW50LGlzSW52ZW50b3J5OmIuaXNJbnZlbnRvcnksc246Yi5zbix2aW46Yi52aW4sZm9yY2VUYXhlczohMH0sc3VjY2VzczpmdW5jdGlvbihmKXtmLmN1cnJlbnRQYXltZW50JiZmLmN1cnJlbnRQYXltZW50Lmxlbmd0aD8oYSYmYi5zZXRJbml0aWFsVmlldyhmKSwidW5kZWZpbmVkIiE9PXR5cGVvZiBjYWxjQ3VyUGF5bWVudCYmKGNhbGNDdXJQYXltZW50PWYpLGIuc2hvd1BheW1lbnRzKGYuY3VycmVudFBheW1lbnQsZi5wYXltZW50RmVlcyxmLm1ha2VpZCxmKSwkKCJib2R5ICIrYi5wYXJlbnQpLnRyaWdnZXIoInBheW1lbnRzUmVhZHkiKSk6JCgiYm9keSAiK2IucGFyZW50KS50cmlnZ2VyKCJub1BheW1lbnQiKX19KX1zaG93UGF5bWVudHMoYSxlLGIsZil7dmFyIG09dGhpczskKG0ucGFyZW50KyIgLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudENvbnRhaW5lciIpLmh0bWwoIiIpOyQobS5wYXJlbnQrCiIgLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudENvbnRhaW5lcldpdGhUYXhlcyIpLmh0bWwoIiIpO2xldCBnPSIxIj09JCgiI3BheW1lbnRDYWxjdWxhdG9yUm91bmRQYXltZW50IikudmFsKCk\/MDoyOyIxIj09JCgiI3BheW1lbnRDYWxjdWxhdG9yU3RyaWtlUGF5bWVudCIpLnZhbCgpJiYkKCIjcGF5bWVudENhbGN1bGF0b3JTdHJpa2VQYXltZW50T3B0aW9uIikudmFsKCk7bGV0IGg9W10scD0kKCIjb2VtQ2VydGlmaWNhdGlvbiIpLnZhbCgpfHwwOzU8YS5sZW5ndGg\/YS5mb3JFYWNoKGZ1bmN0aW9uKGspeygwPT1rLnRlcm0lMTJ8fDY0PT1rLnRlcm18fDQwPT1iJiY1MT09ay50ZXJtfHwyMD09YiYmWzI3LDMwLDM5LDQyXS5pbmNsdWRlcyhrLnRlcm0pfHxbMTYsMjFdLmluY2x1ZGVzKGIpfHw0Mj09ay50ZXJtJiYxMDE0PT1wfHxbMzAsNDJdLmluY2x1ZGVzKGsudGVybSkmJls0NzE1NjIsNDcxNTYzLDQ3MTU2NF0uaW5jbHVkZXMocGFyc2VJbnQoc2V0dGluZ3Muc3R5bGVpZCkpfHwKMjc9PWsudGVybSYmMjc9PWJ8fDUyPT1rLnRlcm0mJjM5PT1iKSYmaC5wdXNoKGspfSk6aD1hO3ZhciBuPXt9LHE9ITE7aC5mb3JFYWNoKGZ1bmN0aW9uKGssbCl7T2JqZWN0Lmhhc093bihuLGsudGVybSk\/cT0hMDpuW2sudGVybV09e307bltrLnRlcm1dW2sucmF0ZV90eXBlXT1sfSk7dmFyIEg9W107YVswXSYmImxlYXNlIj09YVswXS50eXBlJiYidW5kZWZpbmVkIiE9PXR5cGVvZiBhWzBdLmttX2FsbG93YW5jZSYmKGE9MDxhWzBdLmttX2FsbG93YW5jZT9hWzBdLmttX2FsbG93YW5jZToyRTQsJChtLnBhcmVudCsiIC5wYXltZW50Q2FsY3VsYXRvckttQWxsb3dhbmNlIikudmFsKGEpLHRoaXMua21BbGxvd2FuY2U9JChtLnBhcmVudCsiIC5wYXltZW50Q2FsY3VsYXRvckttQWxsb3dhbmNlIikudmFsKCkpO2xldCBJPWYudG90YWxJbmNlbnRpdmUsSj1xPyQoIiNMT1dFU1RQQVlNRU5UX0xBQkVMIikudmFsKCk6IiIsSz1xPyQoIiNMT1dFU1RSQVRFX0xBQkVMIikudmFsKCk6IiIsClY9MDskLmVhY2goaCxmdW5jdGlvbihrLGwpe2lmKCFILmluY2x1ZGVzKGwudGVybSkpe0gucHVzaChsLnRlcm0pO3ZhciBkPSJzdGFuZGFyZCI9PWwucmF0ZV90eXBlfHwyPk9iamVjdC5rZXlzKG5bbC50ZXJtXSkubGVuZ3RoP2w6aFtuW2wudGVybV0uc3RhbmRhcmRdLGM9Mj09T2JqZWN0LmtleXMobltsLnRlcm1dKS5sZW5ndGg\/aFtuW2wudGVybV0uc3VidmVudGVkXTohMSx4PTI9PU9iamVjdC5rZXlzKG5bbC50ZXJtXSkubGVuZ3RoP25bbC50ZXJtXS5zdWJ2ZW50ZWQ6ITEsdj1sLnRlcm0seT1sLmRvd25wYXltZW50LnRvRml4ZWQoMCksQj1kLnBheW1lbnQudG9GaXhlZChnKSxXPWQucGF5bWVudC50b0ZpeGVkKGcpO0I9Qi5yZXBsYWNlKC9cLihbMC05XSopLyxmdW5jdGlvbihDLHcpe3JldHVybic8c3VwIGNsYXNzPSJwZCI+Jyt3KyI8L3N1cD4ifSk7bD1kLnBheW1lbnRXaXRoVGF4ZXMudG9GaXhlZChnKTt2YXIgWD1kLnBheW1lbnRXaXRoVGF4ZXMudG9GaXhlZChnKTtsPQpsLnJlcGxhY2UoL1wuKFswLTldKikvLGZ1bmN0aW9uKEMsdyl7cmV0dXJuJzxzdXAgY2xhc3M9InBkIj4nK3crIjwvc3VwPiJ9KTt2YXIgTD1kLnJhdGUsWT0icGF5bWVudCIraztrPSJwYXltZW50IitrKyJ3aXRoVGF4ZXMiO3Y9JCgiYm9keSIpLmhhc0NsYXNzKCJFTkdMSVNIIik\/IjxzcGFuPiIrdisiPC9zcGFuPiBtb250aCI6IjxzcGFuPiIrdisiPC9zcGFuPiBtb2lzIjt5PWA8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj4ke3l9PC9zcGFuPmArKCQoImJvZHkiKS5oYXNDbGFzcygiRU5HTElTSCIpPyIgZG93biBwYXltZW50IjoiIGNvbXB0YW50Iik7dmFyIE09IiIhPSQoIiNkaXNjbGFpbWVyUHJpY2VUZXh0IikudmFsKCk\/IjxkaXY+IiskKCIjZGlzY2xhaW1lclByaWNlVGV4dCIpLnZhbCgpKyI8L2Rpdj4iOiIrdHgiLHo9ZC5jYWxjdWxhdGVkRWZmZWN0aXZlUmF0ZT9kLmNhbGN1bGF0ZWRFZmZlY3RpdmVSYXRlOjAsRD0iIjswPHBhcnNlRmxvYXQoeiktZC5yYXRlJiYoRCs9Cm0uZm9ybWF0RWZmZWN0aXZlUmF0ZVRleHRDYWxjKHosIiIsJ2NsYXNzPSItZnMxMCInKSk7dmFyIE49ZC50b3RhbE9ibGlnYXRpb25BbW91bnQ\/ZC50b3RhbE9ibGlnYXRpb25BbW91bnQ6MCxPPSdkYXRhLXRvb2x0aXA9IicrZC50b29sdGlwKyciJyxQPSdkYXRhLXRvb2x0aXA9IicrZC50b29sdGlwV2l0aFRheGVzKyciJyxyLFo9bnVsbCE9KHI9ZC5tMmRfZmluYW5jZSk\/cjpJO3I9InNpbmdsZS1jb2x1bW4iO3ZhciBFPSJzbWFsbC1ib3giLHQ9IiIsdT0iIjtpZihjKXtyPSJsZWZ0LXNlY3Rpb24iO0U9IiI7dD1jLnBheW1lbnQudG9GaXhlZChnKTtsZXQgQz1jLnBheW1lbnQudG9GaXhlZChnKTt0PXQucmVwbGFjZSgvXC4oWzAtOV0qKS8sZnVuY3Rpb24oYWEsRil7cmV0dXJuJzxzdXAgY2xhc3M9InBkIj4nK0YrIjwvc3VwPiJ9KTt1PWMucGF5bWVudFdpdGhUYXhlcy50b0ZpeGVkKGcpO2xldCB3PWMucGF5bWVudFdpdGhUYXhlcy50b0ZpeGVkKGcpO3U9dS5yZXBsYWNlKC9cLihbMC05XSopLywKZnVuY3Rpb24oYWEsRil7cmV0dXJuJzxzdXAgY2xhc3M9InBkIj4nK0YrIjwvc3VwPiJ9KTt2YXIgUT1jLnJhdGUudG9GaXhlZCgyKSxiYT0icGF5bWVudCIreDt4PSJwYXltZW50Iit4KyJ3aXRoVGF4ZXMiO2xldCBBPWMuY2FsY3VsYXRlZEVmZmVjdGl2ZVJhdGU\/Yy5jYWxjdWxhdGVkRWZmZWN0aXZlUmF0ZTowLEc9IiI7MDxwYXJzZUZsb2F0KEEpLWMucmF0ZSYmKEcrPW0uZm9ybWF0RWZmZWN0aXZlUmF0ZVRleHRDYWxjKEEsIiIsJ2NsYXNzPSItZnMxMCInKSk7bGV0IFI9Yy50b3RhbE9ibGlnYXRpb25BbW91bnQ\/Yy50b3RhbE9ibGlnYXRpb25BbW91bnQ6MCxTPSdkYXRhLXRvb2x0aXA9IicrYy50b29sdGlwKyciJyxUPSdkYXRhLXRvb2x0aXA9IicrYy50b29sdGlwV2l0aFRheGVzKyciJyxVPWMubTJkX2ZpbmFuY2U7dD0nXHQ8ZGl2IGlkPSInK2JhKyciIGNsYXNzPSJyaWdodC1zZWN0aW9uIHBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFdyYXBwZXJDb250YWluZXIiICcrUysnPlx0XHQ8ZGl2IGNsYXNzPSJsb3dlc3QtcmF0ZSI+JysKUSsnJSA8aSBjbGFzcz0iZmFzIGZhLWluZm8tY2lyY2xlIGluZm8taWNvbiBwYXltZW50VG9vbHRpcCByaWdodFRvb2x0aXAiICcrUysiPjwvaT4iK0crJzwvZGl2Plx0XHQ8ZGl2IGNsYXNzPSJhY3R1YWwtcGF5bWVudCI+PHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+Jyt0Kyc8L3NwYW4+PC9kaXY+XHRcdDxkaXYgY2xhc3M9ImRldGFpbHNUYXgiPicrTSsnPC9kaXY+XHRcdDxkaXYgY2xhc3M9InJhZGlvLWNvbnRhaW5lciBwYXltZW50Q2FsY3VsYXRvclBheW1lbnRTZWxlY3QiPlx0XHRcdDxpbnB1dFx0XHRcdFx0XHR0eXBlPSJyYWRpbyJcdFx0XHRcdFx0bmFtZT0ic2VsZWN0ZWRQYXltZW50Ilx0XHRcdFx0XHR2YWx1ZT0iJytjLnRlcm0rJyJcdFx0XHRcdFx0ZGF0YS1iYXNlcGF5bWVudD0iJytjLnBheW1lbnQrJyJcdFx0XHRcdFx0ZGF0YS1yZWFscGF5bWVudD0iJytjLnBheW1lbnQrJyJcdFx0XHRcdFx0ZGF0YS1yYXRldHlwZT0iJytjLnJhdGVfdHlwZSsnIlx0XHRcdFx0XHRkYXRhLWRpc3BsYXllZHBheW1lbnQ9IicrCkMrJyJcdFx0XHRcdFx0ZGF0YS1yZXNpZHVhbD0iJytjLnJlc2lkdWFsKyciXHRcdFx0XHRcdGRhdGEtdG90YWxpbnRlcmVzdD0iJytjLnRvdGFsSW50ZXJlc3QrJyJcdFx0XHRcdFx0ZGF0YS1sdXhlVGF4QW1vdW50PSInK2MubHV4ZVRheEFtb3VudCsnIlx0XHRcdFx0XHRkYXRhLWVmZmVjdGl2ZVJhdGU9IicrQSsnIlx0XHRcdFx0XHRkYXRhLXRvdGFsQ29zdD0iJytSKyciXHRcdFx0XHRcdGRhdGEtcmF0ZT0iJytjLnJhdGUrJyIgICAgICAgICAgICAgICAgIGRhdGEtcmVzaWR1YWw9IicrYy5yZXNpZHVhbFZhbHVlKyciICAgICAgICAgICAgICAgICBkYXRhLXRvdGFsaW5jZW50aXZlPSInK1UrJyIgICAgICAgICAgICAgICAgIGRhdGEtaW5pdGlhbFByaWNlPSInK2MuaW5pdGlhbFByaWNlKyciICAgICAgICAgICAgICAgICBkYXRhLWZpbmFsUHJpY2U9IicrYy5maW5hbFByaWNlKyciICAgICAgICAgICAgICAgICBkYXRhLWZlZXNMaXN0PSInK2J0b2EoSlNPTi5zdHJpbmdpZnkoYy5mZWVzTGlzdCkpKwonIiAgICAgICAgICAgICAgICAgZGF0YS1pbmNlbnRpdmVzTGlzdD0iJytidG9hKEpTT04uc3RyaW5naWZ5KGMuaW5jZW50aXZlc0xpc3QpKSsnIiAgICAgICAgICAgICAgICAgZGF0YS1nc3Q9IjAiICAgICAgICAgICAgICAgICBkYXRhLWhzdD0iMCIgICAgICAgICAgICAgICAgIGRhdGEtcHN0PSIwIlx0XHRcdFx0Plx0XHRcdDxsYWJlbCBjbGFzcz0iZmluYW5jZUNhbGMiPicrSysiPC9sYWJlbD5cdFx0PC9kaXY+XHQ8L2Rpdj4iO3U9J1x0PGRpdiBpZD0iJyt4KyciIGNsYXNzPSJyaWdodC1zZWN0aW9uIHBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFdyYXBwZXJDb250YWluZXIiICcrVCsnPlx0XHQ8ZGl2IGNsYXNzPSJsb3dlc3QtcmF0ZSI+JytRKyclIDxpIGNsYXNzPSJmYXMgZmEtaW5mby1jaXJjbGUgaW5mby1pY29uIHBheW1lbnRUb29sdGlwIHJpZ2h0VG9vbHRpcCIgJytUKyI+PC9pPiIrRysnPC9kaXY+XHRcdDxkaXYgY2xhc3M9ImFjdHVhbC1wYXltZW50Ij48c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj4nKwp1Kyc8L3NwYW4+PC9kaXY+XHRcdDxkaXYgY2xhc3M9InJhZGlvLWNvbnRhaW5lciBwYXltZW50Q2FsY3VsYXRvclBheW1lbnRTZWxlY3QiPlx0XHRcdDxpbnB1dFx0XHRcdFx0XHR0eXBlPSJyYWRpbyJcdFx0XHRcdFx0bmFtZT0ic2VsZWN0ZWRQYXltZW50V2l0aFRheGVzIlx0XHRcdFx0XHR2YWx1ZT0iJytjLnRlcm0rJyJcdFx0XHRcdFx0ZGF0YS1iYXNlcGF5bWVudD0iJytjLnBheW1lbnQrJyJcdFx0XHRcdFx0ZGF0YS1yZWFscGF5bWVudD0iJytjLnBheW1lbnRXaXRoVGF4ZXMrJyJcdFx0XHRcdFx0ZGF0YS1yYXRldHlwZT0iJytjLnJhdGVfdHlwZSsnIlx0XHRcdFx0XHRkYXRhLWRpc3BsYXllZHBheW1lbnQ9IicrdysnIlx0XHRcdFx0XHRkYXRhLXJlc2lkdWFsPSInK2MucmVzaWR1YWxXaXRoVGF4ZXMrJyJcdFx0XHRcdFx0ZGF0YS10b3RhbGludGVyZXN0PSInK2MudG90YWxJbnRlcmVzdFdpdGhUYXhlcysnIlx0XHRcdFx0XHRkYXRhLWx1eGVUYXhBbW91bnQ9IicrYy5sdXhlVGF4QW1vdW50KwonIlx0XHRcdFx0XHRkYXRhLWVmZmVjdGl2ZVJhdGU9IicrQSsnIlx0XHRcdFx0XHRkYXRhLXRvdGFsQ29zdD0iJytSKyciXHRcdFx0XHRcdGRhdGEtcmF0ZT0iJytjLnJhdGUrJyIgICAgICAgICAgICAgICAgIGRhdGEtcmVzaWR1YWw9IicrYy5yZXNpZHVhbFZhbHVlV2l0aFRheGVzKyciICAgICAgICAgICAgICAgICBkYXRhLXRvdGFsaW5jZW50aXZlPSInK1UrJyIgICAgICAgICAgICAgICAgIGRhdGEtaW5pdGlhbFByaWNlPSInK2MuaW5pdGlhbFByaWNlKyciICAgICAgICAgICAgICAgICBkYXRhLWZpbmFsUHJpY2U9IicrYy5maW5hbFByaWNlKyciICAgICAgICAgICAgICAgICBkYXRhLWZlZXNMaXN0PSInK2J0b2EoSlNPTi5zdHJpbmdpZnkoYy5mZWVzTGlzdCkpKyciICAgICAgICAgICAgICAgICBkYXRhLWluY2VudGl2ZXNMaXN0PSInK2J0b2EoSlNPTi5zdHJpbmdpZnkoYy5pbmNlbnRpdmVzTGlzdCkpKyciICAgICAgICAgICAgICAgICBkYXRhLWdzdD0iJytjLmdzdCsnIiAgICAgICAgICAgICAgICAgZGF0YS1oc3Q9IicrCmMuaHN0KyciICAgICAgICAgICAgICAgICBkYXRhLXBzdD0iJytjLnBzdCsnIlx0XHRcdFx0Plx0XHRcdDxsYWJlbCBjbGFzcz0iZmluYW5jZUNhbGMiPicrSysiPC9sYWJlbD5cdFx0PC9kaXY+XHQ8L2Rpdj4ifWM9JzxkaXYgY2xhc3M9ImZpbmFuY2luZy1vcHRpb24gcGF5bWVudENhbGN1bGF0b3JQYXltZW50V3JhcHBlciAnK0UrJyI+XHQ8ZGl2IGNsYXNzPSJ0ZXJtIj4nK3YrJzwvZGl2Plx0PGRpdiBjbGFzcz0iZG93bi1wYXltZW50Ij4nK3krJzwvZGl2Plx0PGRpdiBjbGFzcz0ic2VwYXJhdG9yUGF5Ij48L2Rpdj5cdDxkaXYgY2xhc3M9ImNvbnRlbnQtY29udGFpbmVyIj5cdFx0PGRpdiBpZD0iJytZKyciIGNsYXNzPSInK3IrJyBwYXltZW50Q2FsY3VsYXRvclBheW1lbnRXcmFwcGVyQ29udGFpbmVyIiAnK08rJz5cdFx0XHQ8ZGl2IGNsYXNzPSJsb3dlc3QtcGF5bWVudCI+PHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+JytCKyc8L3NwYW4+IDxpIGNsYXNzPSJmYXMgZmEtaW5mby1jaXJjbGUgaW5mby1pY29uIHBheW1lbnRUb29sdGlwIGxlZnRUb29sdGlwIiAnKwpPKyc+PC9pPjwvZGl2Plx0XHRcdDxkaXYgY2xhc3M9ImRldGFpbHNUYXgiPicrTSsnPC9kaXY+XHRcdFx0PGRpdiBjbGFzcz0iYWN0dWFsLXJhdGUiPicrTCsiJSAiK0QrJzwvZGl2Plx0XHRcdDxkaXYgY2xhc3M9InJhZGlvLWNvbnRhaW5lciBwYXltZW50Q2FsY3VsYXRvclBheW1lbnRTZWxlY3QiPlx0XHRcdFx0PGlucHV0IFx0XHRcdFx0XHR0eXBlPSJyYWRpbyJcdFx0XHRcdFx0XHRcdFx0XHRcdG5hbWU9InNlbGVjdGVkUGF5bWVudCJcdFx0XHRcdFx0dmFsdWU9IicrZC50ZXJtKyciXHRcdFx0XHRcdGRhdGEtYmFzZXBheW1lbnQ9IicrZC5wYXltZW50KyciXHRcdFx0XHRcdGRhdGEtcmVhbHBheW1lbnQ9IicrZC5wYXltZW50KyciXHRcdFx0XHRcdGRhdGEtcmF0ZXR5cGU9IicrZC5yYXRlX3R5cGUrJyJcdFx0XHRcdFx0ZGF0YS1kaXNwbGF5ZWRwYXltZW50PSInK1crJyJcdFx0XHRcdFx0ZGF0YS1yZXNpZHVhbD0iJytkLnJlc2lkdWFsKyciXHRcdFx0XHRcdGRhdGEtdG90YWxpbnRlcmVzdD0iJysKZC50b3RhbEludGVyZXN0KyciXHRcdFx0XHRcdGRhdGEtbHV4ZVRheEFtb3VudD0iJytkLmx1eGVUYXhBbW91bnQrJyJcdFx0XHRcdFx0ZGF0YS1lZmZlY3RpdmVSYXRlPSInK3orJyJcdFx0XHRcdFx0ZGF0YS10b3RhbENvc3Q9IicrTisnIlx0XHRcdFx0XHRkYXRhLXJhdGU9IicrZC5yYXRlKyciICAgICAgICAgICAgICAgICBkYXRhLXJlc2lkdWFsPSInK2QucmVzaWR1YWxWYWx1ZSsnIiAgICAgICAgICAgICAgICAgZGF0YS10b3RhbGluY2VudGl2ZT0iJytaKyciICAgICAgICAgICAgICAgICBkYXRhLWluaXRpYWxQcmljZT0iJytkLmluaXRpYWxQcmljZSsnIiAgICAgICAgICAgICAgICAgZGF0YS1maW5hbFByaWNlPSInK2QuZmluYWxQcmljZSsnIiAgICAgICAgICAgICAgICAgZGF0YS1mZWVzTGlzdD0iJytidG9hKEpTT04uc3RyaW5naWZ5KGQuZmVlc0xpc3QpKSsnIiAgICAgICAgICAgICAgICAgZGF0YS1pbmNlbnRpdmVzTGlzdD0iJytidG9hKEpTT04uc3RyaW5naWZ5KGQuaW5jZW50aXZlc0xpc3QpKSsKJyIgICAgICAgICAgICAgICAgIGRhdGEtZ3N0PSIwIiAgICAgICAgICAgICAgICAgZGF0YS1oc3Q9IjAiICAgICAgICAgICAgICAgICBkYXRhLXBzdD0iMCJcdFx0XHRcdD5cdFx0XHRcdDxsYWJlbCBjbGFzcz0iZmluYW5jZUNhbGMiPicrSisiPC9sYWJlbD5cdFx0XHQ8L2Rpdj5cdFx0PC9kaXY+Iit0KyJcdDwvZGl2PjwvZGl2PiI7ZD0nPGRpdiBjbGFzcz0iZmluYW5jaW5nLW9wdGlvbiBwYXltZW50Q2FsY3VsYXRvclBheW1lbnRXcmFwcGVyICcrRSsnIj5cdDxkaXYgY2xhc3M9InRlcm0iPicrdisnPC9kaXY+XHQ8ZGl2IGNsYXNzPSJkb3duLXBheW1lbnQiPicreSsnPC9kaXY+XHQ8ZGl2IGNsYXNzPSJzZXBhcmF0b3JQYXkiPjwvZGl2Plx0PGRpdiBjbGFzcz0iY29udGVudC1jb250YWluZXIiPlx0XHQ8ZGl2IGlkPSInK2srJyIgY2xhc3M9IicrcisnIHBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFdyYXBwZXJDb250YWluZXIiICcrUCsnPlx0XHRcdDxkaXYgY2xhc3M9Imxvd2VzdC1wYXltZW50Ij48c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj4nKwpsKyc8L3NwYW4+IDxpIGNsYXNzPSJmYXMgZmEtaW5mby1jaXJjbGUgaW5mby1pY29uIHBheW1lbnRUb29sdGlwIGxlZnRUb29sdGlwIiAnK1ArJz48L2k+PC9kaXY+XHRcdFx0PGRpdiBjbGFzcz0iYWN0dWFsLXJhdGUiPicrTCsiJSAiK0QrJzwvZGl2Plx0XHRcdDxkaXYgY2xhc3M9InJhZGlvLWNvbnRhaW5lciBwYXltZW50Q2FsY3VsYXRvclBheW1lbnRTZWxlY3QiPlx0XHRcdFx0PGlucHV0IFx0XHRcdFx0XHR0eXBlPSJyYWRpbyJcdFx0XHRcdFx0XHRcdFx0XHRcdG5hbWU9InNlbGVjdGVkUGF5bWVudFdpdGhUYXhlcyJcdFx0XHRcdFx0dmFsdWU9IicrZC50ZXJtKyciXHRcdFx0XHRcdGRhdGEtYmFzZXBheW1lbnQ9IicrZC5wYXltZW50KyciXHRcdFx0XHRcdGRhdGEtcmVhbHBheW1lbnQ9IicrZC5wYXltZW50V2l0aFRheGVzKyciXHRcdFx0XHRcdGRhdGEtcmF0ZXR5cGU9IicrZC5yYXRlX3R5cGUrJyJcdFx0XHRcdFx0ZGF0YS1kaXNwbGF5ZWRwYXltZW50PSInK1grJyJcdFx0XHRcdFx0ZGF0YS1yZXNpZHVhbD0iJysKZC5yZXNpZHVhbCsnIlx0XHRcdFx0XHRkYXRhLXRvdGFsaW50ZXJlc3Q9IicrZC50b3RhbEludGVyZXN0KyciXHRcdFx0XHRcdGRhdGEtbHV4ZVRheEFtb3VudD0iJytkLmx1eGVUYXhBbW91bnQrJyJcdFx0XHRcdFx0ZGF0YS1lZmZlY3RpdmVSYXRlPSInK3orJyJcdFx0XHRcdFx0ZGF0YS10b3RhbENvc3Q9IicrTisnIlx0XHRcdFx0XHRkYXRhLXJhdGU9IicrZC5yYXRlKyciICAgICAgICAgICAgICAgICBkYXRhLXJlc2lkdWFsPSInK2QucmVzaWR1YWxWYWx1ZVdpdGhUYXhlcysnIiAgICAgICAgICAgICAgICAgZGF0YS10b3RhbGluY2VudGl2ZT0iJytJKyciICAgICAgICAgICAgICAgICBkYXRhLWluaXRpYWxQcmljZT0iJytkLmluaXRpYWxQcmljZSsnIiAgICAgICAgICAgICAgICAgZGF0YS1maW5hbFByaWNlPSInK2QuZmluYWxQcmljZSsnIiAgICAgICAgICAgICAgICAgZGF0YS1mZWVzTGlzdD0iJytidG9hKEpTT04uc3RyaW5naWZ5KGQuZmVlc0xpc3QpKSsnIiAgICAgICAgICAgICAgICAgZGF0YS1pbmNlbnRpdmVzTGlzdD0iJysKYnRvYShKU09OLnN0cmluZ2lmeShkLmluY2VudGl2ZXNMaXN0KSkrJyIgICAgICAgICAgICAgICAgIGRhdGEtZ3N0PSInK2QuZ3N0KyciICAgICAgICAgICAgICAgICBkYXRhLWhzdD0iJytkLmhzdCsnIiAgICAgICAgICAgICAgICAgZGF0YS1wc3Q9IicrZC5wc3QrJyJcdFx0XHRcdD5cdFx0XHRcdDxsYWJlbCBjbGFzcz0iZmluYW5jZUNhbGMiPicrSisiPC9sYWJlbD5cdFx0XHQ8L2Rpdj5cdFx0PC9kaXY+Iit1KyJcdDwvZGl2PjwvZGl2PiI7JChtLnBhcmVudCsiIC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRDb250YWluZXIiKS5hcHBlbmQoYyk7JChtLnBhcmVudCsiIC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRDb250YWluZXJXaXRoVGF4ZXMiKS5hcHBlbmQoZCk7VisrfX0pO20uc2V0UGF5bWVudENhbGN1bGF0b3JQb3B1cFRvb2x0aXAoKX1zZXRQYXltZW50Q2FsY3VsYXRvclBvcHVwVG9vbHRpcCgpe3ZhciBhPXRoaXMucGFyZW50LGU9dGhpcy5wYXJlbnROYW1lO2lmKCIxIj09CiQoIiNpc21vYmlsZSIpLnZhbCgpKSQoYSsiIC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRXcmFwcGVyIC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRXcmFwcGVyQ29udGFpbmVyIC5wYXltZW50VG9vbHRpcCIpLmVhY2goZnVuY3Rpb24oZil7dHJ5e3ZhciBtPSQodGhpcykuYXR0cigiZGF0YS10b29sdGlwIiksZz0kKHRoaXMpLmhhc0NsYXNzKCJsZWZ0VG9vbHRpcCIpPyJ3ZXN0IjoiZWFzdCI7JCh0aGlzKS5kYXJrVG9vbHRpcCh7Y29udGVudDptLGdyYXZpdHk6Zyx0aGVtZToibGlnaHQiLHRyaWdnZXI6ImNsaWNrIixhbmltYXRpb246ImZsaXBJbiJ9KX1jYXRjaChoKXt9fSk7ZWxzZXtmb3IodmFyIGI9MDs1PmI7YisrKSQoIiNkYXJrdG9vbHRpcC0iK2UrInBheW1lbnQiK2IpLmxlbmd0aCYmKCQoIiNkYXJrdG9vbHRpcC0iK2UrInBheW1lbnQiK2IpLnJlbW92ZSgpLCQoIiNkYXJrdG9vbHRpcC0iK2UrInBheW1lbnQiK2IrIndpdGhUYXhlcyIpLnJlbW92ZSgpKTskKGErIiAucGF5bWVudENhbGN1bGF0b3JQYXltZW50V3JhcHBlciAucGF5bWVudENhbGN1bGF0b3JQYXltZW50V3JhcHBlckNvbnRhaW5lciIpLmVhY2goZnVuY3Rpb24oKXt0cnl7dmFyIGY9CiQodGhpcykuYXR0cigiZGF0YS10b29sdGlwIik7JCh0aGlzKS5kYXJrVG9vbHRpcCh7Y29udGVudDpmLGdyYXZpdHk6Im5vcnRoIix0aGVtZToibGlnaHQiLHRyaWdnZXI6ImhvdmVyIixhbmltYXRpb246Im5vbmUifSl9Y2F0Y2gobSl7fX0pfX1wYXltZW50Q2FsY3VsYXRvckZvcm1hdE51bWJlcihhKXtyZXR1cm4gYS5yZXBsYWNlKC9cQig\/PShcZHszfSkrKD8hXGQpKS9nLCIsIil9Zm9ybWF0RWZmZWN0aXZlUmF0ZVRleHRDYWxjKGEsZSxiKXtiPXZvaWQgMD09PWI\/IiI6YjthPSI8c3BhbiAiK2UrIj4iK2ErIjwvc3Bhbj4lIjthPSJFTkdMSVNIIj09YWN0aXZlTGFuZz9hKyIgQVBSIjoiVGF1eCAiK2E7cmV0dXJuICQoIiNpc21vYmlsZSIpLnZhbCgpPyI8YnIvPjxkaXYgIitiKyI+KCIrYSsiKTwvZGl2PiI6IiA8ZGl2ICIrYisiPiggIithKyIgKTwvZGl2PiJ9fTsKLyoqIC9tL2pzL2NvbnRhY3RQb3B1cC5qcyAqKi8KdmFyIF9fX2QyY19jb250YWN0UG9wdXBqc19jX29uPSIyMDI2LTAxLTEyIDEwOjEzOjQ2IjsndXNlIHN0cmljdCc7dmFyIGNvbnRhY3RQb3B1cD17cG9wdXA6JCgiI2NvbnRhY3Rwb3B1cCIpLG9wdGlvbnM6e3R5cGU6IiJ9LHNldENvbmZpZzpmdW5jdGlvbihhKXtjb250YWN0UG9wdXAub3B0aW9ucz0kLmV4dGVuZCh7fSxjb250YWN0UG9wdXAub3B0aW9ucyxhKTtyZXR1cm4gY29udGFjdFBvcHVwfSxpbml0OmZ1bmN0aW9uKCl7Y29udGFjdFBvcHVwLnNldENvbmZpZyh7dHlwZTpzZWxmLnNldHRpbmdzLmZvcm0udHlwZX0pO2NvbnRhY3RQb3B1cC5wb3B1cC5wb3B1cGl6ZSh7b25CZWZvcmVTZW5kTWFpbDpjb250YWN0UG9wdXAub25CZWZvcmVTZW5kTWFpbH0pLm9wZW4oKTtyZXR1cm4gY29udGFjdFBvcHVwfSxvbkJlZm9yZVNlbmRNYWlsOmZ1bmN0aW9uKGEpe2NvbnRhY3RQb3B1cC5zZXRFbWFpbEhhbmRsZXJGcm9tQWRkcmVzc2VzKCk7ZW1haWxIYW5kbGVyLmNvbmRpdGlvbj1jb250YWN0UG9wdXAuZ2V0Q29uZGl0aW9uKCk7ZW1haWxIYW5kbGVyLmRlcGFydG1lbnQ9Y29udGFjdFBvcHVwLmdldFR5cGUoKS50b1VwcGVyQ2FzZSgpOwoiQk5QIj09ZW1haWxIYW5kbGVyLmRlcGFydG1lbnQmJihlbWFpbEhhbmRsZXIuZGVwYXJ0bWVudD0iTkVXIik7ZW1haWxIYW5kbGVyLnNraXBHZXREZXA9ITA7ZW1haWxIYW5kbGVyLmJvZHk9ZW1haWxIYW5kbGVyLmJvZHkucmVwbGFjZSgieyROQU1FfSIsZW1haWxIYW5kbGVyLnVzZXJGaXJzdE5hbWUrIiAiK2VtYWlsSGFuZGxlci51c2VyTGFzdE5hbWUpfSxnZXRDb25kaXRpb246ZnVuY3Rpb24oKXtzd2l0Y2goY29udGFjdFBvcHVwLmdldFR5cGUoKSl7Y2FzZSAiYm5wIjpjYXNlICJuZXciOmNhc2UgIm1hbnVmYWN0dXJlciI6cmV0dXJuIm5ldyI7ZGVmYXVsdDpyZXR1cm4idXNlZCJ9fSxnZXRUeXBlOmZ1bmN0aW9uKCl7cmV0dXJuIGNvbnRhY3RQb3B1cC5vcHRpb25zLnR5cGV9LHNldEVtYWlsSGFuZGxlckZyb21BZGRyZXNzZXM6ZnVuY3Rpb24oKXt2YXIgYT1jb250YWN0UG9wdXAuZ2V0VHlwZSgpO3RyeXt2YXIgYj1jb250YWN0UG9wdXAuZ2V0RW1haWxzKGEpOyIiPT09Yi5zZW5kVG8mJgoiIj09PWIuc2VuZFRvQURGJiYoYj1jb250YWN0UG9wdXAuZ2V0RW1haWxzKCJ1c2VkIikpO3ZhciBjPWIuc2VuZFRvLGQ9Yi5zZW5kVG9BREY7IiI9PT1jJiYiIj09PWQmJmNvbnNvbGUubG9nKCJXYXJuaW5nOiBib3RoIGVtYWlsIGFuZCBBREYgYWRkcmVzc2VzIGFyZSBlbXB0eSEiKTtpZigkKCIjY3VzdG9tRm9ybV9vcmlnaW5hbHNlbmR0byIpLmxlbmd0aCYmIk90aGVyIj09JCgiI2N1c3RvbUZvcm1fb3JpZ2luYWxzZW5kdG8iKS52YWwoKSl7dmFyIGU9JCgiI2N1c3RvbUZvcm1fc2VuZHRvIikudmFsKCksZj0kKCIjY3VzdG9tRm9ybV9zZW5kdG9BREYiKS52YWwoKTtpZigiIiE9PWV8fCIiIT09ZiljPWUsZD1mfWVtYWlsSGFuZGxlci5zZW5kVG89YztlbWFpbEhhbmRsZXIuc2VuZFRvQURGRm9ybWF0PWR9Y2F0Y2goZyl7Y29uc29sZS5sb2coZyl9cmV0dXJuIGNvbnRhY3RQb3B1cH0sZ2V0RW1haWxzOmZ1bmN0aW9uKGEpe3ZhciBiPSQoIiNoaWRkZW5Db250YWN0cG9wdXAiKTsKImJucCI9PWEmJihhPSJuZXciKTt2YXIgYz1iLmZpbmQoIiNlbWFpbF8iK2EpLnZhbCgpO2E9Yi5maW5kKCIjZW1haWxBREZfIithKS52YWwoKTtyZXR1cm57c2VuZFRvOmMsc2VuZFRvQURGOmF9fX0saW5pdENvbnRhY3Rwb3B1cD1mdW5jdGlvbihhKXthLnByZXZlbnREZWZhdWx0KCk7Y29udGFjdFBvcHVwLmluaXQoKX0sY29udGFjdFBvcHVwU3VibWl0PWZ1bmN0aW9uKCl7JCgiI2NvbnRhY3Rwb3B1cCIpLnBvcHVwaXplKCkuc3VibWl0KCl9LGNvbnRhY3RQb3B1cENsb3NlPWZ1bmN0aW9uKCl7JCgiI2NvbnRhY3Rwb3B1cCIpLnBvcHVwaXplKCkuY2xvc2UoKX07Ci8qKiAvbS9qcy92YW5pbGxhanMvbW9kYWwuanMgKiovCnZhciBfX19kMmNfbW9kYWxqc19jX29uPSIyMDI2LTAyLTI3IDE1OjMwOjAzIjsndXNlIHN0cmljdCc7Y29uc3QgTW9kYWxzPXt9LE1vZGFsPWZ1bmN0aW9uKGgsYil7bGV0IGM9e307Y29uc3Qgbj17dGl0bGU6aCxjb250ZW50VHlwZToibm9kZSIsY29udGVudFNyYzoiIixhZnRlckluaXQ6KCk9Pnt9fTtsZXQgaz0iIjtjb25zdCBlPWh0bWxUb05vZGUoJzxkaXYgY2xhc3M9Im1vZGFsLW92ZXJsYXkiPjwvZGl2PicpLGw9ZnVuY3Rpb24oYSl7YS5vbmNsaWNrPSgpPT5mKCJjYW5jZWwiKX0scD1mdW5jdGlvbigpeyhjLnF1ZXJ5U2VsZWN0b3IoIi5va2F5Iil8fCExKS5vbmNsaWNrPSgpPT5mKCJva2F5Iik7Y29uc3QgYT1jLnF1ZXJ5U2VsZWN0b3JBbGwoIi5jYW5jZWwiKXx8ITE7MTxhLmxlbmd0aD8kLmVhY2goYSxmdW5jdGlvbihkLGcpe2woZyl9KTphJiZsKGFbMF0pfSxtPWZ1bmN0aW9uKGEpeyJFc2NhcGUiPT1hLmtleSYmKGEucHJldmVudERlZmF1bHQoKSxhLnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoImtleXVwIiwKbSx7Y2FwdHVyZTohMH0pLGYoKSl9LGY9YT0+e2E9YXx8IiI7c3dpdGNoKGEpe2Nhc2UgImNhbmNlbCI6ImZ1bmN0aW9uIj09dHlwZW9mIGIub25CZWZvcmVDYW5jZWwmJmIub25CZWZvcmVDYW5jZWwuY2FsbCgpO2JyZWFrO2Nhc2UgIm9rYXkiOiJmdW5jdGlvbiI9PXR5cGVvZiBiLm9uQmVmb3JlU2F2ZSYmYi5vbkJlZm9yZVNhdmUuY2FsbCgpfSJmdW5jdGlvbiI9PXR5cGVvZiBiLm9uQmVmb3JlQ2xvc2UmJmIub25CZWZvcmVDbG9zZS5jYWxsKGEpO2RvY3VtZW50LmJvZHkuc3R5bGUub3ZlcmZsb3dZPSJhdXRvIjtjLmNsYXNzTGlzdC50b2dnbGUoImlzLWFjdGl2ZSIsITEpO2UucGFyZW50Tm9kZSYmKGUucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChlKSxrLmZvY3VzKCkpfTtiPU9iamVjdC5hc3NpZ24obixiKTsoZnVuY3Rpb24oKXtjb25zdCBhPStuZXcgRGF0ZTt2YXIgZD0iIjtzd2l0Y2goYi5jb250ZW50VHlwZSl7Y2FzZSAibm9kZSI6ZD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZChiLmNvbnRlbnRTcmMpOwpkLmhpZGRlbj0hMTticmVhaztjYXNlICJpZnJhbWUiOmQ9aHRtbFRvTm9kZShgPGRpdiBjbGFzcz0iaWZyYW1lLXdyYXBwZXIiPgoJCQkJCQkJCTxpZnJhbWUKCQkJCQkJCQkJc3JjPSIke2IuY29udGVudFNyY30iCgkJCQkJCQkJCWZyYW1lYm9yZGVyPSIwIgoJCQkJCQkJCQlhbGxvd2Z1bGxzY3JlZW49InRydWUiCgkJCQkJCQkJCXdlYmtpdGFsbG93ZnVsbHNjcmVlbj0idHJ1ZSIKCQkJCQkJCQkJbW96YWxsb3dmdWxsc2NyZWVuPSJ0cnVlIgoJCQkJCQkJCT48L2lmcmFtZT4KCQkJCQkJCTwvZGl2PmApfWxldCBnPSIiO2Iuc2hvd1llc05vQnV0dG9ucyYmKGc9YDxkaXYgY2xhc3M9Im1vZGFsLWZvb3RlciAtcCAtLXM1IGZsZXgtYmV0d2VlbiI+CgkJCQk8ZGl2PgoJCQkJCTxzcGFuIGNsYXNzPSIgLW10MiBtYWluVGV4dCAtYm9sZCI+JHtiLmJ1dHRvblRleHR8fCIifTwvc3Bhbj4KCQkJCTwvZGl2PgoJCQkJPGRpdj4KCQkJCQk8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImJ0biBjYW5jZWwiIGRhdGEtZGlzbWlzcz0ibW9kYWwiPiR7Yi5ub0J1dHRvbnx8Ik5vIn08L2J1dHRvbj4KCQkJCQk8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImJ0biBidG4tbWFpbjIgb2theSIgZGF0YS1kaXNtaXNzPSJtb2RhbCI+JHtiLnllc0J1dHRvbnx8IlllcyJ9PC9idXR0b24+CgkJCQk8L2Rpdj5gKTtjPWh0bWxUb05vZGUoYAoJCQk8Ym94LWxjIGNsYXNzPSJtb2RhbC13cmFwcGVyIC1iZy13aGl0ZSAtLXMwIj4KCQkJCTxzdGFjay1sYyBjbGFzcz0iLS1zMCI+CgkJCQkJPGRpdiBjbGFzcz0ibW9kYWwtaGVhZGVyIGZsZXgtYmV0d2VlbiAtcCAtLXM1Ij4KCQkJCQkJPGRpdiBjbGFzcz0ibW9kYWwtdGl0bGUgdHh0LXVwcGVyIC1mcy1sIC1ib2xkIj4KCQkJCQkJCSR7Yi50aXRsZX0KCQkJCQkJPC9kaXY+CgkJCQkJCTxkaXYgY2xhc3M9Im1vZGFsLWNvbnRyb2wiPgoJCQkJCQkJPGJ1dHRvbiB0aXRsZT0iY2xvc2UiIGNsYXNzPSJ4LWNsb3NlIGNhbmNlbCI+PC9idXR0b24+CgkJCQkJCTwvZGl2PgoJCQkJCTwvZGl2PgoJCQkJCTxkaXYgY2xhc3M9Im1vZGFsLWJvZHkiIGlkPSJxLSR7YX0iPgoKCQkJCQk8L2Rpdj4KCQkJCQkke2d9CgkJCQk8L3N0YWNrLWxjPgoJCQk8L2JveC1sYz4KCQlgKTtjLmlkPWBtb2RhbCR7aH1gO2Muc2V0QXR0cmlidXRlKCJyb2xlIiwiZGlhbG9nIik7Yy5zZXRBdHRyaWJ1dGUoImFyaWEtbGFiZWxsZWRieSIsYHEtJHthfWApO2MucXVlcnlTZWxlY3RvcigiLm1vZGFsLWJvZHkiKS5hcHBlbmRDaGlsZChkKTtkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGMpO2RvY3VtZW50LmJvZHkuc3R5bGUub3ZlcmZsb3dZPSJoaWRkZW4iO2IuYWZ0ZXJJbml0KCk7cCgpfSkoKTtyZXR1cm57ZGlzcGxheTpmdW5jdGlvbigpe2s9ZG9jdW1lbnQuYWN0aXZlRWxlbWVudDtkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGUpO2RvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImtleXVwIixtLHtjYXB0dXJlOiEwfSk7c2V0VGltZW91dChmdW5jdGlvbigpe2MuY2xhc3NMaXN0LnRvZ2dsZSgiaXMtYWN0aXZlIiwhMCl9LDEpfSxjbG9zZTpmfX07Ci8qKiAvbS9qcy92YW5pbGxhanMvbGVhZC5qcyAqKi8KdmFyIF9fX2QyY19sZWFkanNfY19vbj0iMjAyNi0wMi0yMCAxMTozMDowOCI7J3VzZSBzdHJpY3QnO3ZhciAkanNjb21wPSRqc2NvbXB8fHt9OyRqc2NvbXAuc2NvcGU9e307JGpzY29tcC5BU1NVTUVfRVM1PSExOyRqc2NvbXAuQVNTVU1FX05PX05BVElWRV9NQVA9ITE7JGpzY29tcC5BU1NVTUVfTk9fTkFUSVZFX1NFVD0hMTskanNjb21wLlNJTVBMRV9GUk9VTkRfUE9MWUZJTEw9ITE7JGpzY29tcC5JU09MQVRFX1BPTFlGSUxMUz0hMTskanNjb21wLkZPUkNFX1BPTFlGSUxMX1BST01JU0U9ITE7JGpzY29tcC5GT1JDRV9QT0xZRklMTF9QUk9NSVNFX1dIRU5fTk9fVU5IQU5ETEVEX1JFSkVDVElPTj0hMTskanNjb21wLmRlZmluZVByb3BlcnR5PSRqc2NvbXAuQVNTVU1FX0VTNXx8ImZ1bmN0aW9uIj09dHlwZW9mIE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzP09iamVjdC5kZWZpbmVQcm9wZXJ0eTpmdW5jdGlvbihiLGEsYyl7aWYoYj09QXJyYXkucHJvdG90eXBlfHxiPT1PYmplY3QucHJvdG90eXBlKXJldHVybiBiO2JbYV09Yy52YWx1ZTtyZXR1cm4gYn07CiRqc2NvbXAuZ2V0R2xvYmFsPWZ1bmN0aW9uKGIpe2I9WyJvYmplY3QiPT10eXBlb2YgZ2xvYmFsVGhpcyYmZ2xvYmFsVGhpcyxiLCJvYmplY3QiPT10eXBlb2Ygd2luZG93JiZ3aW5kb3csIm9iamVjdCI9PXR5cGVvZiBzZWxmJiZzZWxmLCJvYmplY3QiPT10eXBlb2YgZ2xvYmFsJiZnbG9iYWxdO2Zvcih2YXIgYT0wO2E8Yi5sZW5ndGg7KythKXt2YXIgYz1iW2FdO2lmKGMmJmMuTWF0aD09TWF0aClyZXR1cm4gY310aHJvdyBFcnJvcigiQ2Fubm90IGZpbmQgZ2xvYmFsIG9iamVjdCIpO307JGpzY29tcC5nbG9iYWw9JGpzY29tcC5nZXRHbG9iYWwodGhpcyk7JGpzY29tcC5JU19TWU1CT0xfTkFUSVZFPSJmdW5jdGlvbiI9PT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09PXR5cGVvZiBTeW1ib2woIngiKTskanNjb21wLlRSVVNUX0VTNl9QT0xZRklMTFM9ISRqc2NvbXAuSVNPTEFURV9QT0xZRklMTFN8fCRqc2NvbXAuSVNfU1lNQk9MX05BVElWRTskanNjb21wLnBvbHlmaWxscz17fTsKJGpzY29tcC5wcm9wZXJ0eVRvUG9seWZpbGxTeW1ib2w9e307JGpzY29tcC5QT0xZRklMTF9QUkVGSVg9IiRqc2NwJCI7dmFyICRqc2NvbXAkbG9va3VwUG9seWZpbGxlZFZhbHVlPWZ1bmN0aW9uKGIsYSl7dmFyIGM9JGpzY29tcC5wcm9wZXJ0eVRvUG9seWZpbGxTeW1ib2xbYV07aWYobnVsbD09YylyZXR1cm4gYlthXTtjPWJbY107cmV0dXJuIHZvaWQgMCE9PWM\/YzpiW2FdfTskanNjb21wLnBvbHlmaWxsPWZ1bmN0aW9uKGIsYSxjLGUpe2EmJigkanNjb21wLklTT0xBVEVfUE9MWUZJTExTPyRqc2NvbXAucG9seWZpbGxJc29sYXRlZChiLGEsYyxlKTokanNjb21wLnBvbHlmaWxsVW5pc29sYXRlZChiLGEsYyxlKSl9OwokanNjb21wLnBvbHlmaWxsVW5pc29sYXRlZD1mdW5jdGlvbihiLGEsYyxlKXtjPSRqc2NvbXAuZ2xvYmFsO2I9Yi5zcGxpdCgiLiIpO2ZvcihlPTA7ZTxiLmxlbmd0aC0xO2UrKyl7dmFyIGg9YltlXTtpZighKGggaW4gYykpcmV0dXJuO2M9Y1toXX1iPWJbYi5sZW5ndGgtMV07ZT1jW2JdO2E9YShlKTthIT1lJiZudWxsIT1hJiYkanNjb21wLmRlZmluZVByb3BlcnR5KGMsYix7Y29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmF9KX07CiRqc2NvbXAucG9seWZpbGxJc29sYXRlZD1mdW5jdGlvbihiLGEsYyxlKXt2YXIgaD1iLnNwbGl0KCIuIik7Yj0xPT09aC5sZW5ndGg7ZT1oWzBdO2U9IWImJmUgaW4gJGpzY29tcC5wb2x5ZmlsbHM\/JGpzY29tcC5wb2x5ZmlsbHM6JGpzY29tcC5nbG9iYWw7Zm9yKHZhciBuPTA7bjxoLmxlbmd0aC0xO24rKyl7dmFyIHA9aFtuXTtpZighKHAgaW4gZSkpcmV0dXJuO2U9ZVtwXX1oPWhbaC5sZW5ndGgtMV07Yz0kanNjb21wLklTX1NZTUJPTF9OQVRJVkUmJiJlczYiPT09Yz9lW2hdOm51bGw7YT1hKGMpO251bGwhPWEmJihiPyRqc2NvbXAuZGVmaW5lUHJvcGVydHkoJGpzY29tcC5wb2x5ZmlsbHMsaCx7Y29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmF9KTphIT09YyYmKHZvaWQgMD09PSRqc2NvbXAucHJvcGVydHlUb1BvbHlmaWxsU3ltYm9sW2hdJiYoYz0xRTkqTWF0aC5yYW5kb20oKT4+PjAsJGpzY29tcC5wcm9wZXJ0eVRvUG9seWZpbGxTeW1ib2xbaF09JGpzY29tcC5JU19TWU1CT0xfTkFUSVZFPwokanNjb21wLmdsb2JhbC5TeW1ib2woaCk6JGpzY29tcC5QT0xZRklMTF9QUkVGSVgrYysiJCIraCksJGpzY29tcC5kZWZpbmVQcm9wZXJ0eShlLCRqc2NvbXAucHJvcGVydHlUb1BvbHlmaWxsU3ltYm9sW2hdLHtjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6YX0pKSl9OyRqc2NvbXAudW5kZXJzY29yZVByb3RvQ2FuQmVTZXQ9ZnVuY3Rpb24oKXt2YXIgYj17YTohMH0sYT17fTt0cnl7cmV0dXJuIGEuX19wcm90b19fPWIsYS5hfWNhdGNoKGMpe31yZXR1cm4hMX07CiRqc2NvbXAuc2V0UHJvdG90eXBlT2Y9JGpzY29tcC5UUlVTVF9FUzZfUE9MWUZJTExTJiYiZnVuY3Rpb24iPT10eXBlb2YgT2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZjokanNjb21wLnVuZGVyc2NvcmVQcm90b0NhbkJlU2V0KCk\/ZnVuY3Rpb24oYixhKXtiLl9fcHJvdG9fXz1hO2lmKGIuX19wcm90b19fIT09YSl0aHJvdyBuZXcgVHlwZUVycm9yKGIrIiBpcyBub3QgZXh0ZW5zaWJsZSIpO3JldHVybiBifTpudWxsOyRqc2NvbXAuYXJyYXlJdGVyYXRvckltcGw9ZnVuY3Rpb24oYil7dmFyIGE9MDtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gYTxiLmxlbmd0aD97ZG9uZTohMSx2YWx1ZTpiW2ErK119Ontkb25lOiEwfX19OyRqc2NvbXAuYXJyYXlJdGVyYXRvcj1mdW5jdGlvbihiKXtyZXR1cm57bmV4dDokanNjb21wLmFycmF5SXRlcmF0b3JJbXBsKGIpfX07CiRqc2NvbXAubWFrZUl0ZXJhdG9yPWZ1bmN0aW9uKGIpe3ZhciBhPSJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZTeW1ib2wuaXRlcmF0b3ImJmJbU3ltYm9sLml0ZXJhdG9yXTtyZXR1cm4gYT9hLmNhbGwoYik6JGpzY29tcC5hcnJheUl0ZXJhdG9yKGIpfTskanNjb21wLmdlbmVyYXRvcj17fTskanNjb21wLmdlbmVyYXRvci5lbnN1cmVJdGVyYXRvclJlc3VsdElzT2JqZWN0Xz1mdW5jdGlvbihiKXtpZighKGIgaW5zdGFuY2VvZiBPYmplY3QpKXRocm93IG5ldyBUeXBlRXJyb3IoIkl0ZXJhdG9yIHJlc3VsdCAiK2IrIiBpcyBub3QgYW4gb2JqZWN0Iik7fTsKJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dD1mdW5jdGlvbigpe3RoaXMuaXNSdW5uaW5nXz0hMTt0aGlzLnlpZWxkQWxsSXRlcmF0b3JfPW51bGw7dGhpcy55aWVsZFJlc3VsdD12b2lkIDA7dGhpcy5uZXh0QWRkcmVzcz0xO3RoaXMuZmluYWxseUFkZHJlc3NfPXRoaXMuY2F0Y2hBZGRyZXNzXz0wO3RoaXMuZmluYWxseUNvbnRleHRzXz10aGlzLmFicnVwdENvbXBsZXRpb25fPW51bGx9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLnN0YXJ0Xz1mdW5jdGlvbigpe2lmKHRoaXMuaXNSdW5uaW5nXyl0aHJvdyBuZXcgVHlwZUVycm9yKCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBydW5uaW5nIik7dGhpcy5pc1J1bm5pbmdfPSEwfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5zdG9wXz1mdW5jdGlvbigpe3RoaXMuaXNSdW5uaW5nXz0hMX07CiRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmp1bXBUb0Vycm9ySGFuZGxlcl89ZnVuY3Rpb24oKXt0aGlzLm5leHRBZGRyZXNzPXRoaXMuY2F0Y2hBZGRyZXNzX3x8dGhpcy5maW5hbGx5QWRkcmVzc199OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLm5leHRfPWZ1bmN0aW9uKGIpe3RoaXMueWllbGRSZXN1bHQ9Yn07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUudGhyb3dfPWZ1bmN0aW9uKGIpe3RoaXMuYWJydXB0Q29tcGxldGlvbl89e2V4Y2VwdGlvbjpiLGlzRXhjZXB0aW9uOiEwfTt0aGlzLmp1bXBUb0Vycm9ySGFuZGxlcl8oKX07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUucmV0dXJuPWZ1bmN0aW9uKGIpe3RoaXMuYWJydXB0Q29tcGxldGlvbl89e3JldHVybjpifTt0aGlzLm5leHRBZGRyZXNzPXRoaXMuZmluYWxseUFkZHJlc3NffTsKJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuanVtcFRocm91Z2hGaW5hbGx5QmxvY2tzPWZ1bmN0aW9uKGIpe3RoaXMuYWJydXB0Q29tcGxldGlvbl89e2p1bXBUbzpifTt0aGlzLm5leHRBZGRyZXNzPXRoaXMuZmluYWxseUFkZHJlc3NffTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS55aWVsZD1mdW5jdGlvbihiLGEpe3RoaXMubmV4dEFkZHJlc3M9YTtyZXR1cm57dmFsdWU6Yn19OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLnlpZWxkQWxsPWZ1bmN0aW9uKGIsYSl7Yj0kanNjb21wLm1ha2VJdGVyYXRvcihiKTt2YXIgYz1iLm5leHQoKTskanNjb21wLmdlbmVyYXRvci5lbnN1cmVJdGVyYXRvclJlc3VsdElzT2JqZWN0XyhjKTtpZihjLmRvbmUpdGhpcy55aWVsZFJlc3VsdD1jLnZhbHVlLHRoaXMubmV4dEFkZHJlc3M9YTtlbHNlIHJldHVybiB0aGlzLnlpZWxkQWxsSXRlcmF0b3JfPWIsdGhpcy55aWVsZChjLnZhbHVlLGEpfTsKJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuanVtcFRvPWZ1bmN0aW9uKGIpe3RoaXMubmV4dEFkZHJlc3M9Yn07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuanVtcFRvRW5kPWZ1bmN0aW9uKCl7dGhpcy5uZXh0QWRkcmVzcz0wfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5zZXRDYXRjaEZpbmFsbHlCbG9ja3M9ZnVuY3Rpb24oYixhKXt0aGlzLmNhdGNoQWRkcmVzc189Yjt2b2lkIDAhPWEmJih0aGlzLmZpbmFsbHlBZGRyZXNzXz1hKX07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuc2V0RmluYWxseUJsb2NrPWZ1bmN0aW9uKGIpe3RoaXMuY2F0Y2hBZGRyZXNzXz0wO3RoaXMuZmluYWxseUFkZHJlc3NfPWJ8fDB9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmxlYXZlVHJ5QmxvY2s9ZnVuY3Rpb24oYixhKXt0aGlzLm5leHRBZGRyZXNzPWI7dGhpcy5jYXRjaEFkZHJlc3NfPWF8fDB9OwokanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5lbnRlckNhdGNoQmxvY2s9ZnVuY3Rpb24oYil7dGhpcy5jYXRjaEFkZHJlc3NfPWJ8fDA7Yj10aGlzLmFicnVwdENvbXBsZXRpb25fLmV4Y2VwdGlvbjt0aGlzLmFicnVwdENvbXBsZXRpb25fPW51bGw7cmV0dXJuIGJ9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmVudGVyRmluYWxseUJsb2NrPWZ1bmN0aW9uKGIsYSxjKXtjP3RoaXMuZmluYWxseUNvbnRleHRzX1tjXT10aGlzLmFicnVwdENvbXBsZXRpb25fOnRoaXMuZmluYWxseUNvbnRleHRzXz1bdGhpcy5hYnJ1cHRDb21wbGV0aW9uX107dGhpcy5jYXRjaEFkZHJlc3NfPWJ8fDA7dGhpcy5maW5hbGx5QWRkcmVzc189YXx8MH07CiRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmxlYXZlRmluYWxseUJsb2NrPWZ1bmN0aW9uKGIsYSl7YT10aGlzLmZpbmFsbHlDb250ZXh0c18uc3BsaWNlKGF8fDApWzBdO2lmKGE9dGhpcy5hYnJ1cHRDb21wbGV0aW9uXz10aGlzLmFicnVwdENvbXBsZXRpb25ffHxhKXtpZihhLmlzRXhjZXB0aW9uKXJldHVybiB0aGlzLmp1bXBUb0Vycm9ySGFuZGxlcl8oKTt2b2lkIDAhPWEuanVtcFRvJiZ0aGlzLmZpbmFsbHlBZGRyZXNzXzxhLmp1bXBUbz8odGhpcy5uZXh0QWRkcmVzcz1hLmp1bXBUbyx0aGlzLmFicnVwdENvbXBsZXRpb25fPW51bGwpOnRoaXMubmV4dEFkZHJlc3M9dGhpcy5maW5hbGx5QWRkcmVzc199ZWxzZSB0aGlzLm5leHRBZGRyZXNzPWJ9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmZvckluPWZ1bmN0aW9uKGIpe3JldHVybiBuZXcgJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5Qcm9wZXJ0eUl0ZXJhdG9yKGIpfTsKJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5Qcm9wZXJ0eUl0ZXJhdG9yPWZ1bmN0aW9uKGIpe3RoaXMub2JqZWN0Xz1iO3RoaXMucHJvcGVydGllc189W107Zm9yKHZhciBhIGluIGIpdGhpcy5wcm9wZXJ0aWVzXy5wdXNoKGEpO3RoaXMucHJvcGVydGllc18ucmV2ZXJzZSgpfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LlByb3BlcnR5SXRlcmF0b3IucHJvdG90eXBlLmdldE5leHQ9ZnVuY3Rpb24oKXtmb3IoOzA8dGhpcy5wcm9wZXJ0aWVzXy5sZW5ndGg7KXt2YXIgYj10aGlzLnByb3BlcnRpZXNfLnBvcCgpO2lmKGIgaW4gdGhpcy5vYmplY3RfKXJldHVybiBifXJldHVybiBudWxsfTskanNjb21wLmdlbmVyYXRvci5FbmdpbmVfPWZ1bmN0aW9uKGIpe3RoaXMuY29udGV4dF89bmV3ICRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQ7dGhpcy5wcm9ncmFtXz1ifTsKJGpzY29tcC5nZW5lcmF0b3IuRW5naW5lXy5wcm90b3R5cGUubmV4dF89ZnVuY3Rpb24oYil7dGhpcy5jb250ZXh0Xy5zdGFydF8oKTtpZih0aGlzLmNvbnRleHRfLnlpZWxkQWxsSXRlcmF0b3JfKXJldHVybiB0aGlzLnlpZWxkQWxsU3RlcF8odGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yXy5uZXh0LGIsdGhpcy5jb250ZXh0Xy5uZXh0Xyk7dGhpcy5jb250ZXh0Xy5uZXh0XyhiKTtyZXR1cm4gdGhpcy5uZXh0U3RlcF8oKX07CiRqc2NvbXAuZ2VuZXJhdG9yLkVuZ2luZV8ucHJvdG90eXBlLnJldHVybl89ZnVuY3Rpb24oYil7dGhpcy5jb250ZXh0Xy5zdGFydF8oKTt2YXIgYT10aGlzLmNvbnRleHRfLnlpZWxkQWxsSXRlcmF0b3JfO2lmKGEpcmV0dXJuIHRoaXMueWllbGRBbGxTdGVwXygicmV0dXJuImluIGE\/YVsicmV0dXJuIl06ZnVuY3Rpb24oYyl7cmV0dXJue3ZhbHVlOmMsZG9uZTohMH19LGIsdGhpcy5jb250ZXh0Xy5yZXR1cm4pO3RoaXMuY29udGV4dF8ucmV0dXJuKGIpO3JldHVybiB0aGlzLm5leHRTdGVwXygpfTsKJGpzY29tcC5nZW5lcmF0b3IuRW5naW5lXy5wcm90b3R5cGUudGhyb3dfPWZ1bmN0aW9uKGIpe3RoaXMuY29udGV4dF8uc3RhcnRfKCk7aWYodGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yXylyZXR1cm4gdGhpcy55aWVsZEFsbFN0ZXBfKHRoaXMuY29udGV4dF8ueWllbGRBbGxJdGVyYXRvcl9bInRocm93Il0sYix0aGlzLmNvbnRleHRfLm5leHRfKTt0aGlzLmNvbnRleHRfLnRocm93XyhiKTtyZXR1cm4gdGhpcy5uZXh0U3RlcF8oKX07CiRqc2NvbXAuZ2VuZXJhdG9yLkVuZ2luZV8ucHJvdG90eXBlLnlpZWxkQWxsU3RlcF89ZnVuY3Rpb24oYixhLGMpe3RyeXt2YXIgZT1iLmNhbGwodGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yXyxhKTskanNjb21wLmdlbmVyYXRvci5lbnN1cmVJdGVyYXRvclJlc3VsdElzT2JqZWN0XyhlKTtpZighZS5kb25lKXJldHVybiB0aGlzLmNvbnRleHRfLnN0b3BfKCksZTt2YXIgaD1lLnZhbHVlfWNhdGNoKG4pe3JldHVybiB0aGlzLmNvbnRleHRfLnlpZWxkQWxsSXRlcmF0b3JfPW51bGwsdGhpcy5jb250ZXh0Xy50aHJvd18obiksdGhpcy5uZXh0U3RlcF8oKX10aGlzLmNvbnRleHRfLnlpZWxkQWxsSXRlcmF0b3JfPW51bGw7Yy5jYWxsKHRoaXMuY29udGV4dF8saCk7cmV0dXJuIHRoaXMubmV4dFN0ZXBfKCl9OwokanNjb21wLmdlbmVyYXRvci5FbmdpbmVfLnByb3RvdHlwZS5uZXh0U3RlcF89ZnVuY3Rpb24oKXtmb3IoO3RoaXMuY29udGV4dF8ubmV4dEFkZHJlc3M7KXRyeXt2YXIgYj10aGlzLnByb2dyYW1fKHRoaXMuY29udGV4dF8pO2lmKGIpcmV0dXJuIHRoaXMuY29udGV4dF8uc3RvcF8oKSx7dmFsdWU6Yi52YWx1ZSxkb25lOiExfX1jYXRjaChhKXt0aGlzLmNvbnRleHRfLnlpZWxkUmVzdWx0PXZvaWQgMCx0aGlzLmNvbnRleHRfLnRocm93XyhhKX10aGlzLmNvbnRleHRfLnN0b3BfKCk7aWYodGhpcy5jb250ZXh0Xy5hYnJ1cHRDb21wbGV0aW9uXyl7Yj10aGlzLmNvbnRleHRfLmFicnVwdENvbXBsZXRpb25fO3RoaXMuY29udGV4dF8uYWJydXB0Q29tcGxldGlvbl89bnVsbDtpZihiLmlzRXhjZXB0aW9uKXRocm93IGIuZXhjZXB0aW9uO3JldHVybnt2YWx1ZTpiLnJldHVybixkb25lOiEwfX1yZXR1cm57dmFsdWU6dm9pZCAwLGRvbmU6ITB9fTsKJGpzY29tcC5nZW5lcmF0b3IuR2VuZXJhdG9yXz1mdW5jdGlvbihiKXt0aGlzLm5leHQ9ZnVuY3Rpb24oYSl7cmV0dXJuIGIubmV4dF8oYSl9O3RoaXMudGhyb3c9ZnVuY3Rpb24oYSl7cmV0dXJuIGIudGhyb3dfKGEpfTt0aGlzLnJldHVybj1mdW5jdGlvbihhKXtyZXR1cm4gYi5yZXR1cm5fKGEpfTt0aGlzW1N5bWJvbC5pdGVyYXRvcl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc319OyRqc2NvbXAuZ2VuZXJhdG9yLmNyZWF0ZUdlbmVyYXRvcj1mdW5jdGlvbihiLGEpe2E9bmV3ICRqc2NvbXAuZ2VuZXJhdG9yLkdlbmVyYXRvcl8obmV3ICRqc2NvbXAuZ2VuZXJhdG9yLkVuZ2luZV8oYSkpOyRqc2NvbXAuc2V0UHJvdG90eXBlT2YmJmIucHJvdG90eXBlJiYkanNjb21wLnNldFByb3RvdHlwZU9mKGEsYi5wcm90b3R5cGUpO3JldHVybiBhfTsKJGpzY29tcC5hc3luY0V4ZWN1dGVQcm9taXNlR2VuZXJhdG9yPWZ1bmN0aW9uKGIpe2Z1bmN0aW9uIGEoZSl7cmV0dXJuIGIubmV4dChlKX1mdW5jdGlvbiBjKGUpe3JldHVybiBiLnRocm93KGUpfXJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihlLGgpe2Z1bmN0aW9uIG4ocCl7cC5kb25lP2UocC52YWx1ZSk6UHJvbWlzZS5yZXNvbHZlKHAudmFsdWUpLnRoZW4oYSxjKS50aGVuKG4saCl9bihiLm5leHQoKSl9KX07JGpzY29tcC5hc3luY0V4ZWN1dGVQcm9taXNlR2VuZXJhdG9yRnVuY3Rpb249ZnVuY3Rpb24oYil7cmV0dXJuICRqc2NvbXAuYXN5bmNFeGVjdXRlUHJvbWlzZUdlbmVyYXRvcihiKCkpfTskanNjb21wLmFzeW5jRXhlY3V0ZVByb21pc2VHZW5lcmF0b3JQcm9ncmFtPWZ1bmN0aW9uKGIpe3JldHVybiAkanNjb21wLmFzeW5jRXhlY3V0ZVByb21pc2VHZW5lcmF0b3IobmV3ICRqc2NvbXAuZ2VuZXJhdG9yLkdlbmVyYXRvcl8obmV3ICRqc2NvbXAuZ2VuZXJhdG9yLkVuZ2luZV8oYikpKX07CmNvbnN0IExlYWQ9ZnVuY3Rpb24oYil7Y29uc3QgYT1PYmplY3QuYXNzaWduKHt9LGIpLGM9YS5sZWFkSWR8fGEubmFtZTtiPWEubGVhZE5vZGU7Y29uc3QgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZm9ybSIrYyk7bGV0IGg9ITEsbj1lLnF1ZXJ5U2VsZWN0b3IoIi5sZWFkRW1haWwgW2RhdGEtc3ViamVjdF0iKS5pbm5lclRleHQscD1lLnF1ZXJ5U2VsZWN0b3IoIi5sZWFkRW1haWwgW2RhdGEtYm9keV0iKS5pbm5lckhUTUwseT1hLnRyaWdnZXIsbT17fTtjb25zdCB6PSgpPT57QXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbChlLmVsZW1lbnRzLGQ9PntpZigidW5kZWZpbmVkIiE9dHlwZW9mIGQuYXR0cmlidXRlcy5uYW1lKXt2YXIgZj1kLmF0dHJpYnV0ZXMubmFtZS52YWx1ZXx8ITE7c3dpdGNoKCEwKXtjYXNlIFsibmFtZSJdLmluY2x1ZGVzKGYudG9Mb3dlckNhc2UoKSk6Y2FzZSBbImZpcnN0bmFtZSJdLmluY2x1ZGVzKGYudG9Mb3dlckNhc2UoKSk6Y2FzZSBbImxhc3RuYW1lIl0uaW5jbHVkZXMoZi50b0xvd2VyQ2FzZSgpKTpjYXNlICJlbWFpbCI9PQpmLnRvTG93ZXJDYXNlKCk6Y2FzZSAiZGF0YSI9PWY6YnJlYWs7Y2FzZSAicGhvbmUiPT1mLnRvTG93ZXJDYXNlKCk6Y2FzZSAidGVsIj09ZC50eXBlOklNYXNrKGQse21hc2s6W3ttYXNrOiIwMDAgMDAwLTAwMDAifSx7bWFzazoiMSAwMDAgMDAwLTAwMDAifV19KX19fSk7InVuZGVmaW5lZCIhPT10eXBlb2YgY2xpZW50U3RvcmFnZSYmQXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbChlLmVsZW1lbnRzLGQ9PntpZigidW5kZWZpbmVkIiE9dHlwZW9mIGQuYXR0cmlidXRlcy5uYW1lKXt2YXIgZj1kLmF0dHJpYnV0ZXMubmFtZS52YWx1ZXx8ITE7c3dpdGNoKCEwKXtjYXNlIFsibmFtZSJdLmluY2x1ZGVzKGYudG9Mb3dlckNhc2UoKSk6dmFyIGc7Zj1udWxsIT0oZz1jbGllbnRTdG9yYWdlLmdldCgiZmlyc3RuYW1lIikpP2c6IiI7dmFyIGs7Zz1udWxsIT0oaz1jbGllbnRTdG9yYWdlLmdldCgibGFzdG5hbWUiKSk\/azoiIjtrPWYrKCIiIT1nPyIgIitjbGllbnRTdG9yYWdlLmdldCgibGFzdG5hbWUiKToKIiIpO2QudmFsdWU9azticmVhaztjYXNlIFsiZmlyc3RuYW1lIl0uaW5jbHVkZXMoZi50b0xvd2VyQ2FzZSgpKTpsZXQgbDtkLnZhbHVlPW51bGwhPShsPWNsaWVudFN0b3JhZ2UuZ2V0KCJmaXJzdG5hbWUiKSk\/bDoiIjticmVhaztjYXNlIFsibGFzdG5hbWUiXS5pbmNsdWRlcyhmLnRvTG93ZXJDYXNlKCkpOmxldCByO2QudmFsdWU9bnVsbCE9KHI9Y2xpZW50U3RvcmFnZS5nZXQoImxhc3RuYW1lIikpP3I6IiI7YnJlYWs7Y2FzZSAiZW1haWwiPT1mLnRvTG93ZXJDYXNlKCk6bGV0IHY7ZC52YWx1ZT1udWxsIT0odj1jbGllbnRTdG9yYWdlLmdldCgiZW1haWwiKSk\/djoiIjticmVhaztjYXNlICJwaG9uZSI9PWYudG9Mb3dlckNhc2UoKTpsZXQgdztkLnZhbHVlPW51bGwhPSh3PWNsaWVudFN0b3JhZ2UuZ2V0KCJwaG9uZSIpKT93OiIifX19KX0sRD0oKT0+e2lmKGgpcmV0dXJuITE7aD0hMDtBKCkudGhlbihkPT57aWYoIWQpcmV0dXJuIHQoInBvcHVwLnZhbGlkYXRpb25GYWlsZWQiKSwKaD0hMTthLnZhbGlkYXRlZD0hMDtCKCk7QygpfSl9LEI9KCk9PntBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKGUuZWxlbWVudHMsZD0+e2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgZC5hdHRyaWJ1dGVzLm5hbWUpe3ZhciBmPWQuYXR0cmlidXRlcy5uYW1lLnZhbHVlfHwhMTtpZihmKXN3aXRjaChtW2ZdPWQudmFsdWUsITApe2Nhc2UgWyJuYW1lIl0uaW5jbHVkZXMoZi50b0xvd2VyQ2FzZSgpKTpkPWQudmFsdWUuc3BsaXQoIiAiKTttLnVzZXJGaXJzdE5hbWUrPWQuc2hpZnQoKTttLnVzZXJMYXN0TmFtZSs9ZC5qb2luKCIgIik7YnJlYWs7Y2FzZSBbImZpcnN0bmFtZSJdLmluY2x1ZGVzKGYudG9Mb3dlckNhc2UoKSk6bS51c2VyRmlyc3ROYW1lKz1kLnZhbHVlO2JyZWFrO2Nhc2UgWyJsYXN0bmFtZSJdLmluY2x1ZGVzKGYudG9Mb3dlckNhc2UoKSk6bS51c2VyTGFzdE5hbWUrPWQudmFsdWU7YnJlYWs7Y2FzZSAiZW1haWwiPT1mLnRvTG93ZXJDYXNlKCk6bS51c2VyRW1haWw9CmQudmFsdWU7YnJlYWs7Y2FzZSAicGhvbmUiPT1mLnRvTG93ZXJDYXNlKCk6Y2FzZSAidGVsIj09ZC50eXBlOklNYXNrKGQse21hc2s6W3ttYXNrOiIwMDAgMDAwLTAwMDAifSx7bWFzazoiMSAwMDAgMDAwLTAwMDAifV19KTttLnVzZXJQaG9uZT1kLnZhbHVlO2JyZWFrO2Nhc2UgImRhdGEiPT1mOmZvcihsZXQgZyBpbiBkLmRhdGFzZXQpbVtnLnJlcGxhY2UoLy0uL2csaz0+a1sxXS50b1VwcGVyQ2FzZSgpKV09ZC5kYXRhc2V0W2ddfX19KX0sQz0oKT0+e2lmKCExPT09YS5vbkJlZm9yZVN1Ym1pdChhKSlyZXR1cm4gYS5jbG9zZU9uU3VibWl0JiZxKCksITE7aWYoQ29va2llcy5nZXQoYS5sZWFkSWQpKXJldHVybiBoPSExLHgoITApLCExO0UoKTt0KCJwb3B1cC5zdWJtaXQiKTt2YXIgZDtpZigiRGlnaXRhbFJldGFpbCI9PShudWxsPT0oZD1tKT92b2lkIDA6ZC5pbnZva2VyKSl7ZD1jbGllbnRTdG9yYWdlLmdldCgiY2xpZW50U3RvcmFnZSIpfHx7fTt2YXIgZjtsZXQgazttLmxlYWRJbnZva2VyU0lEPQpGKChudWxsPT1kP3ZvaWQgMDpudWxsPT0oZj1kLmNvbnRhY3QpP3ZvaWQgMDpmLmVtYWlsKSsobnVsbD09ZD92b2lkIDA6bnVsbD09KGs9ZC5jb250YWN0KT92b2lkIDA6ay5waG9uZSkpO2VtYWlsSGFuZGxlci5sZWFkSW52b2tlcj0iRGlnaXRhbFJldGFpbCI7ZW1haWxIYW5kbGVyLmRpZ2l0YWxSZXRhaWxTSUQ9bS5sZWFkSW52b2tlclNJRH1lbWFpbEhhbmRsZXIuYm9keT1HKCk7ZW1haWxIYW5kbGVyLnN1YmplY3Q9bjtPYmplY3QuYXNzaWduKGVtYWlsSGFuZGxlcixtKTsic3RyaW5nIj09dHlwZW9mIGVtYWlsSGFuZGxlci51c2VyTmFtZSYmKGY9ZW1haWxIYW5kbGVyLnVzZXJOYW1lLnNwbGl0KCIgIiksZW1haWxIYW5kbGVyLnVzZXJGaXJzdE5hbWU9Zi5zaGlmdCgpLGVtYWlsSGFuZGxlci51c2VyTGFzdE5hbWU9Zi5qb2luKCIgIikpO2VtYWlsSGFuZGxlci5vbkJlZm9yZVNob3dDb25zZW50PWZ1bmN0aW9uKCl7ZW1haWxIYW5kbGVyLm9uQmVmb3JlU2hvd0NvbnNlbnQ9ITF9OwplbWFpbEhhbmRsZXIub25BZnRlckNvbnNlbnQ9ZnVuY3Rpb24oayl7ZW1haWxIYW5kbGVyLm9uQmVmb3JlU2hvd0NvbnNlbnQ9ITE7ZW1haWxIYW5kbGVyLm9uQWZ0ZXJDb25zZW50PSExfTtlbWFpbEhhbmRsZXIub25EdXBsaWNhdGVTZW5kPWZ1bmN0aW9uKCl7ZW1haWxIYW5kbGVyLnJlc2V0Q2FsbGJhY2tzKCl9O2VtYWlsSGFuZGxlci5jYWxsYmFjaz1mdW5jdGlvbihrKXt2YXIgbD0hMTthLnNob3dFbWFpbENvbmZpcm1hdGlvbiYmKGw9Z2V0TWFpbFNlbnRIYW5kbGVyKCJfIithLm5hbWUpLGwudGltZW91dENhbGxiYWNrPWZ1bmN0aW9uKCl7ZS5yZXNldCgpfSk7aWYoayl0KCJwb3B1cC5sZWFkX3NlbnQiKSwiZnVuY3Rpb24iPT10eXBlb2Ygb3JpZ2luYWxDYWxsYmFjayYmb3JpZ2luYWxDYWxsYmFjay5jYWxsKCksIm9uU3VibWl0Ij09YS5jb29raWVDcmVhdGUmJkNvb2tpZXMuc2V0KGEuY29va2llTmFtZSwiMSIsYS5jb29raWVEdXJhdGlvbiwiLyIpLGEuc3VibWl0RmxhZyYmCkNvb2tpZXMuc2V0KCJwb3B1cEZvcm1GaWxsZWQiLCIxIiwxLCIvIiksYS5jbG9zZU9uU3VibWl0JiZxKCJDT05TRU5UIiksbD9sLnNob3dTdWNjZXNzKCk6MDwkKGBmb3JtI2Zvcm0ke2EubmFtZX1fY29uZmlybWApLmxlbmd0aCYmJChgZm9ybSNmb3JtJHthLm5hbWV9X2NvbmZpcm1gKS50cmlnZ2VyKCJzdWJtaXQiKTtlbHNle2x8fChsPWdldE1haWxTZW50SGFuZGxlcigpKTt0cnl7bC5zaG93RmFpbCgpfWNhdGNoKHIpe319eChrKTt1KCk7c2V0VGltZW91dChlbWFpbEhhbmRsZXIucmVzZXRDYWxsYmFja3MoKSwxRTMpO2smJkNvb2tpZXMuc2V0KGEubGVhZElkLCIxIiwxLCIvIil9O2Euc3VibWl0dGVkPSEwO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBhLm9uQmVmb3JlU2VuZE1haWwmJjA9PWEub25CZWZvcmVTZW5kTWFpbC5jYWxsKCkpcmV0dXJuITE7bGV0IGc9e307ImZ1bmN0aW9uIj09dHlwZW9mIGEub25BREYmJihnPWEub25BREYuY2FsbCgpKTsibWFrZSBtb2RlbCB5ZWFyIHN0b2NrTnVtYmVyIHRyaW0gdmluIHByaWNlIGNhcmlkIi5zcGxpdCgiICIpLmZvckVhY2goaz0+CntlbWFpbEhhbmRsZXJba109Z1trXXx8ZW1haWxIYW5kbGVyW2tdfSk7YS5wdXJjaGFzZUludGVudFBvcHVwfHxlbWFpbEhhbmRsZXIuc2VuZE1haWwoYS5ieXBhc3NDb25zZW50KTtyZXR1cm4hMH0sdT0oKT0+e209e3VzZXJGaXJzdE5hbWU6IiIsdXNlckxhc3ROYW1lOiIiLHVzZXJFbWFpbDoiIix1c2VyUGhvbmU6IiJ9O2g9ITF9LEE9ZnVuY3Rpb24oKXtyZXR1cm4gJGpzY29tcC5hc3luY0V4ZWN1dGVQcm9taXNlR2VuZXJhdG9yRnVuY3Rpb24oZnVuY3Rpb24qKCl7aWYoYS5za2lwVmFsaWRhdGlvbilyZXR1cm4hMDtjb25zdCBkPW5ldyBQcmlzdGluZShlLHtjbGFzc1RvOiJmb3JtLWxhYmVsIixlcnJvckNsYXNzOiJpbnZhbGlkIn0sITEpO2xldCBmPWUucXVlcnlTZWxlY3RvcignW25hbWU9InBob25lbnVtIl0nKSxnPSEwLGs9ITA7aWYoZi5yZXF1aXJlZHx8Zi52YWx1ZSlnPW51bGwsZz15aWVsZCBIKGYudmFsdWUpO251bGw9PT1nPyhkLmFkZFZhbGlkYXRvcihmLGZ1bmN0aW9uKGwpe2w9CmwucmVwbGFjZSgvW14wLTldKy9naSwiIik7IjEiPT1sWzBdJiYobD1sLnN1YnN0cmluZygxKSk7bD1wYXJzZUludChsLnN1YnN0cmluZygwLDMpKTtyZXR1cm4gZz1bNDM4LDUxNCwyNjMsNDUwLDU3OSw4MTksMjQ5LDcwNSwyMjYsNTE5LDI4OSwzNjUsOTA1LDQxNiw0MzcsNjQ3LDM0Myw2MTMsNzA5LDg3Myw0MTgsNTgxLDUwNiw5MDJdLmluY2x1ZGVzKGwpfSwiRW50ZXIgYSB2YWxpZCBwaG9uZSBudW1iZXIiLDUsITEpLGs9ZC52YWxpZGF0ZSgpKTooaz1kLnZhbGlkYXRlKCkmJmcsZi5wYXJlbnRFbGVtZW50LmNsYXNzTGlzdC50b2dnbGUoImludmFsaWQiLCFnKSk7Zi5yZXF1aXJlZCYmIWcmJiJ1bmRlZmluZWQiIT10eXBlb2YgZW1haWxIYW5kbGVyJiYoZW1haWxIYW5kbGVyLnBob25lVmFsaWRhdGlvbkF0dGVtcHRzKyssZW1haWxIYW5kbGVyLnBob25lTWFuZGF0b3J5PSEwKTtyZXR1cm4ga30pfSxIPWQ9PiRqc2NvbXAuYXN5bmNFeGVjdXRlUHJvbWlzZUdlbmVyYXRvckZ1bmN0aW9uKGZ1bmN0aW9uKigpe2xldCBmPQpudWxsO2Q9ZC5yZXBsYWNlKC9bXjAtOV0rL2dpLCIiKTt5aWVsZCBheGlvcy5nZXQoIi9wcm94eV9yZDJjL3NpdGVzL3N2Yy92YWxpZGF0ZVBob25lTnVtYmVyLnBocCIse3RpbWVvdXQ6MkUzLGRhdGFUeXBlOiJqc29uIixwYXJhbXM6e3Bob25lOmR9LHJlc3BvbnNlVHlwZToianNvbiJ9KS50aGVuKGZ1bmN0aW9uKGcpeyJ1bmRlZmluZWQiIT09dHlwZW9mIGcuZGF0YS5pc09rJiYoZj1nLmRhdGEucGhvbmVOdW1iZXJJc1ZhbGlkKX0pLmNhdGNoKGZ1bmN0aW9uKGcpe30pO3JldHVybiBmfSksRT0oKT0+e2NvbnN0IGQ9ZG9jdW1lbnQuZm9ybXMuZW1haWxtc2dmcm18fCExO2lmKCFkKXJldHVybiExO2QucXVlcnlTZWxlY3RvcignW25hbWU9ImxhYmVsIicpLnZhbHVlPWAke2EudHlwZX0gKCR7bS5jb25kaXRpb259KWA7ZC5xdWVyeVNlbGVjdG9yKCdbbmFtZT0ic2VjdGlvbiInKS52YWx1ZT1tLmNvbmRpdGlvbn0sRz1mdW5jdGlvbigpe2xldCBkPXAsZj17bmFtZTpbIk1OQU1FIl0sCnBob25lbnVtOlsiTVBIT05FIiwiUEhPTkUiXSxlbWFpbDpbIk1NQUlMIl19O09iamVjdC5rZXlzKG0pLmZvckVhY2goZz0+e3ZhciBrPW5ldyBSZWdFeHAoIntcXCQiK2cudG9VcHBlckNhc2UoKSsifSIsImciKTtkPWQucmVwbGFjZShrLG1bZ10pO2ZbZ10mJihrPW5ldyBSZWdFeHAoIntcXCQoIitmW2ddLmpvaW4oInwiKSsiKX0iLCJnIiksZD1kLnJlcGxhY2UoayxtW2ddKSl9KTtyZXR1cm4gZH0sdD1mdW5jdGlvbihkKXt2YXIgZj1hLnR5cGU7aWYoIWQpcmV0dXJuITE7aWYoInBvcHVwLmxlYWRfc2VudCI9PWQpe3ZhciBnPSJjbGljayIucmVwbGFjZSgvKF5bYS16XXsxfSkvZyxmdW5jdGlvbihsKXtyZXR1cm4gbC50b1VwcGVyQ2FzZSgpfSksaz1kMmNtZWRpYS5wYWdlRGVwYXJ0bWVudCgpO2dhVHJhY2soImMuX3RyYWNrRXZlbnQiLCJQb3B1cC1sZWFkcyIsZyxrLDEpfSJ1bmRlZmluZWQiIT10eXBlb2YgYWN0aXZlVXNlclByb2ZpbGVNbmcmJiJ1bmRlZmluZWQiIT10eXBlb2YgYWN0aXZlVXNlclByb2ZpbGVNbmcubG9nUGFnZVZpZXdFdmVudD8KKCJ1bmRlZmluZWQiIT09dHlwZW9mIGRlYnVnJiZkZWJ1ZygiTG9nIEV2ZW50IixkLGYsc2VsZiksYWN0aXZlVXNlclByb2ZpbGVNbmcubG9nUGFnZVZpZXdFdmVudChkLGYpKToidW5kZWZpbmVkIiE9PXR5cGVvZiBkZWJ1ZyYmZGVidWcoIiFVTkxPR0dFRCBFVkVOVCEiLGQsZil9LHE9KCk9PnthLm9uQmVmb3JlQ2xvc2UoYSk7dSgpO01vZGFsc1tjXSYmTW9kYWxzW2NdLmNsb3NlKCl9LHg9ZD0+e2Eub25BZnRlclN1Ym1pdChhLGQpO2EuY2xvc2VPblN1Ym1pdCYmZCYmcSgpO2QmJmUucmVzZXQoKX0sRj1kPT57bGV0IGY9MDtpZigwPT1kLmxlbmd0aClyZXR1cm4gZjtmb3IobGV0IGc9MCxrPWQubGVuZ3RoO2c8aztnKyspe2xldCBsPWQuY2hhckNvZGVBdChnKTtmPShmPDw1KS1mK2w7Znw9MH1yZXR1cm4gTWF0aC5hYnMoZil9OygoKT0+eyQoZSkudHJpZ2dlcigicG9wdXBpemVyLm9uT3BlbiIsJChlKSk7dSgpO3ooKTtlLm9uc3VibWl0PWQ9PntkLnByZXZlbnREZWZhdWx0KCk7CkQoKX07YS5vbkJlZm9yZU9wZW4oYSl9KSgpO3JldHVybntsZWFkSWQ6YyxsZWFkTm9kZTpiLHRyaWdnZXI6eSxkaXNwbGF5OigpPT57YS5kaXNwbGF5P2EuZGlzcGxheShhKTooYS5jb250ZW50U3JjPWBsZWFkJHtjfWAsTW9kYWxzW2NdfHwoTW9kYWxzW2NdPW5ldyBNb2RhbChjLGEpKSxNb2RhbHNbY10uZGlzcGxheSgpKX0sY2xvc2U6cX19LExlYWRIYW5kbGVyPWZ1bmN0aW9uKCl7Y29uc3QgYj17b25CZWZvcmVPcGVuOigpPT57fSxvbkJlZm9yZVZhbGlkYXRpb246KCk9Pnt9LG9uQmVmb3JlU3VibWl0OigpPT57fSxvbkFmdGVyU3VibWl0OigpPT57fSxvbkJlZm9yZUNhbmNlbDooKT0+e30sb25CZWZvcmVDbG9zZTooKT0+e30sb25DbG9zZTooKT0+e30sZm9ybTp7ZW1haWxpZDpudWxsLG9mZmVydHlwZTpudWxsLG5hbWU6bnVsbCxzZW5kVG86bnVsbCxzZW5kVG9BREY6bnVsbCxPS0J1dHRvbkNsYXNzOiJzdWJtaXRCdG4iLENhbmNlbEJ1dHRvbkNsYXNzOiJjYW5jZWxCdG4iLApzaG93RW1haWxDb25maXJtYXRpb246ITEsZnJvbUFBOiExfSxnZXRJZFN1ZmZpeDphPT5NYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqRGF0ZS5ub3coKSksbW9kZToic3RhdGljIix0cmlnZ2VyOiJhdXRvIixkZWxheTohMSxkaXNwbGF5OiExLHN1Ym1pdHRlZDohMSxjbG9zZU9uU3VibWl0OiEwLHN1Ym1pdEZsYWc6ITEsYnlwYXNzQ29uc2VudDohMSxzaG93RW1haWxDb25maXJtYXRpb246ITAscHVyY2hhc2VJbnRlbnRQb3B1cDohMX07aW5pdD0oKT0+eyJ1bmRlZmluZWQiIT09dHlwZW9mIHdpbmRvdy5BYnN0cmFjdFVzZWRTcnBPYmplY3QmJihuZXcgQWJzdHJhY3RVc2VkU3JwT2JqZWN0KHtuYW1lOiJWaWV3RGlzY292ZXJCdG5IYW5kbGVyIn0pKS5hZGRVc2VkU3JwRXZlbnRPYnNlcnZlcigiY29udGVudCIsYWRkTGVhZEV2ZW50cykuaW5pdFVzZWRTcnBPYnNlcnZlcigpO2FkZExlYWRFdmVudHMoKX07YWRkTGVhZEV2ZW50cz0oKT0+e2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIltkYXRhLWxlYWQtdHJpZ2dlcl0iKS5mb3JFYWNoKGE9Pgp7dGhpcy5pbml0TGVhZFRyaWdnZXIoYSl9KX07dGhpcy5pbml0TGVhZFRyaWdnZXI9YT0+e2EuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGM9PntjLnN0b3BQcm9wYWdhdGlvbigpO2M9YS5kYXRhc2V0LmxlYWRUcmlnZ2VyO2xldCBlPWEuZGF0YXNldC5sZWFkaWR8fCExO0xlYWRDb25maWdzW2NdLnRyaWdnZXI9YTtjPXRoaXMuZ2V0TGVhZChjLGUpO2MuZGlzcGxheSgpO2EuZGF0YXNldC5sZWFkaWQ9Yy5sZWFkSWR9KX07dGhpcy5nZXRMZWFkPShhLGMpPT57aWYoIShjPUxlYWRzW2N8fGFdKSl7e2M9YTtsZXQgZT1PYmplY3QuYXNzaWduKHt9LGIpO09iamVjdC5hc3NpZ24oZSxMZWFkQ29uZmlnc1thXSk7Y29uc3QgaD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZChgbGVhZCR7YX1gKTtoPyhhPWgsInN0YXRpYyIhPWUubW9kZSYmKGM9YCR7ZS5uYW1lfV8ke2UuZ2V0SWRTdWZmaXgoZSl9YCxhPWguY2xvbmVOb2RlKCEwKSxhLnNldEF0dHJpYnV0ZSgiaWQiLCJsZWFkIitjKSxhLnF1ZXJ5U2VsZWN0b3IoImZvcm0iKS5zZXRBdHRyaWJ1dGUoImlkIiwKImZvcm0iK2MpLGRvY3VtZW50LmJvZHkuYXBwZW5kKGEpKSxlLmxlYWRJZD1jLGUubGVhZE5vZGU9YSxMZWFkc1tjXT1uZXcgTGVhZChlKSxjPUxlYWRzW2NdKTpjPSExfX1yZXR1cm4gY307cmV0dXJue2luaXQsaW5pdExlYWRUcmlnZ2VyLGdldExlYWR9fTt2YXIgTGVhZHM9TGVhZHN8fHt9O2RvY1JlYWR5QXJyLnB1c2goTGVhZEhhbmRsZXIoKS5pbml0KTsKLyoqIC9tL2pzL3ZhbmlsbGFqcy9heGlvcy5taW4uanMgKiovCiFmdW5jdGlvbihlLHQpeyJvYmplY3QiPT10eXBlb2YgZXhwb3J0cyYmIm9iamVjdCI9PXR5cGVvZiBtb2R1bGU\/bW9kdWxlLmV4cG9ydHM9dCgpOiJmdW5jdGlvbiI9PXR5cGVvZiBkZWZpbmUmJmRlZmluZS5hbWQ\/ZGVmaW5lKFtdLHQpOiJvYmplY3QiPT10eXBlb2YgZXhwb3J0cz9leHBvcnRzLmF4aW9zPXQoKTplLmF4aW9zPXQoKX0odGhpcywoZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24oZSl7dmFyIHQ9e307ZnVuY3Rpb24gbihyKXtpZih0W3JdKXJldHVybiB0W3JdLmV4cG9ydHM7dmFyIG89dFtyXT17aTpyLGw6ITEsZXhwb3J0czp7fX07cmV0dXJuIGVbcl0uY2FsbChvLmV4cG9ydHMsbyxvLmV4cG9ydHMsbiksby5sPSEwLG8uZXhwb3J0c31yZXR1cm4gbi5tPWUsbi5jPXQsbi5kPWZ1bmN0aW9uKGUsdCxyKXtuLm8oZSx0KXx8T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCx7ZW51bWVyYWJsZTohMCxnZXQ6cn0pfSxuLnI9ZnVuY3Rpb24oZSl7InVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJlN5bWJvbC50b1N0cmluZ1RhZyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsU3ltYm9sLnRvU3RyaW5nVGFnLHt2YWx1ZToiTW9kdWxlIn0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KX0sbi50PWZ1bmN0aW9uKGUsdCl7aWYoMSZ0JiYoZT1uKGUpKSw4JnQpcmV0dXJuIGU7aWYoNCZ0JiYib2JqZWN0Ij09dHlwZW9mIGUmJmUmJmUuX19lc01vZHVsZSlyZXR1cm4gZTt2YXIgcj1PYmplY3QuY3JlYXRlKG51bGwpO2lmKG4ucihyKSxPYmplY3QuZGVmaW5lUHJvcGVydHkociwiZGVmYXVsdCIse2VudW1lcmFibGU6ITAsdmFsdWU6ZX0pLDImdCYmInN0cmluZyIhPXR5cGVvZiBlKWZvcih2YXIgbyBpbiBlKW4uZChyLG8sZnVuY3Rpb24odCl7cmV0dXJuIGVbdF19LmJpbmQobnVsbCxvKSk7cmV0dXJuIHJ9LG4ubj1mdW5jdGlvbihlKXt2YXIgdD1lJiZlLl9fZXNNb2R1bGU\/ZnVuY3Rpb24oKXtyZXR1cm4gZS5kZWZhdWx0fTpmdW5jdGlvbigpe3JldHVybiBlfTtyZXR1cm4gbi5kKHQsImEiLHQpLHR9LG4ubz1mdW5jdGlvbihlLHQpe3JldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSx0KX0sbi5wPSIiLG4obi5zPTExKX0oW2Z1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigzKSxvPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmc7ZnVuY3Rpb24gaShlKXtyZXR1cm4iW29iamVjdCBBcnJheV0iPT09by5jYWxsKGUpfWZ1bmN0aW9uIHMoZSl7cmV0dXJuIHZvaWQgMD09PWV9ZnVuY3Rpb24gYShlKXtyZXR1cm4gbnVsbCE9PWUmJiJvYmplY3QiPT10eXBlb2YgZX1mdW5jdGlvbiB1KGUpe2lmKCJbb2JqZWN0IE9iamVjdF0iIT09by5jYWxsKGUpKXJldHVybiExO3ZhciB0PU9iamVjdC5nZXRQcm90b3R5cGVPZihlKTtyZXR1cm4gbnVsbD09PXR8fHQ9PT1PYmplY3QucHJvdG90eXBlfWZ1bmN0aW9uIGMoZSl7cmV0dXJuIltvYmplY3QgRnVuY3Rpb25dIj09PW8uY2FsbChlKX1mdW5jdGlvbiBmKGUsdCl7aWYobnVsbCE9ZSlpZigib2JqZWN0IiE9dHlwZW9mIGUmJihlPVtlXSksaShlKSlmb3IodmFyIG49MCxyPWUubGVuZ3RoO248cjtuKyspdC5jYWxsKG51bGwsZVtuXSxuLGUpO2Vsc2UgZm9yKHZhciBvIGluIGUpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUsbykmJnQuY2FsbChudWxsLGVbb10sbyxlKX1lLmV4cG9ydHM9e2lzQXJyYXk6aSxpc0FycmF5QnVmZmVyOmZ1bmN0aW9uKGUpe3JldHVybiJbb2JqZWN0IEFycmF5QnVmZmVyXSI9PT1vLmNhbGwoZSl9LGlzQnVmZmVyOmZ1bmN0aW9uKGUpe3JldHVybiBudWxsIT09ZSYmIXMoZSkmJm51bGwhPT1lLmNvbnN0cnVjdG9yJiYhcyhlLmNvbnN0cnVjdG9yKSYmImZ1bmN0aW9uIj09dHlwZW9mIGUuY29uc3RydWN0b3IuaXNCdWZmZXImJmUuY29uc3RydWN0b3IuaXNCdWZmZXIoZSl9LGlzRm9ybURhdGE6ZnVuY3Rpb24oZSl7cmV0dXJuInVuZGVmaW5lZCIhPXR5cGVvZiBGb3JtRGF0YSYmZSBpbnN0YW5jZW9mIEZvcm1EYXRhfSxpc0FycmF5QnVmZmVyVmlldzpmdW5jdGlvbihlKXtyZXR1cm4idW5kZWZpbmVkIiE9dHlwZW9mIEFycmF5QnVmZmVyJiZBcnJheUJ1ZmZlci5pc1ZpZXc\/QXJyYXlCdWZmZXIuaXNWaWV3KGUpOmUmJmUuYnVmZmVyJiZlLmJ1ZmZlciBpbnN0YW5jZW9mIEFycmF5QnVmZmVyfSxpc1N0cmluZzpmdW5jdGlvbihlKXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIGV9LGlzTnVtYmVyOmZ1bmN0aW9uKGUpe3JldHVybiJudW1iZXIiPT10eXBlb2YgZX0saXNPYmplY3Q6YSxpc1BsYWluT2JqZWN0OnUsaXNVbmRlZmluZWQ6cyxpc0RhdGU6ZnVuY3Rpb24oZSl7cmV0dXJuIltvYmplY3QgRGF0ZV0iPT09by5jYWxsKGUpfSxpc0ZpbGU6ZnVuY3Rpb24oZSl7cmV0dXJuIltvYmplY3QgRmlsZV0iPT09by5jYWxsKGUpfSxpc0Jsb2I6ZnVuY3Rpb24oZSl7cmV0dXJuIltvYmplY3QgQmxvYl0iPT09by5jYWxsKGUpfSxpc0Z1bmN0aW9uOmMsaXNTdHJlYW06ZnVuY3Rpb24oZSl7cmV0dXJuIGEoZSkmJmMoZS5waXBlKX0saXNVUkxTZWFyY2hQYXJhbXM6ZnVuY3Rpb24oZSl7cmV0dXJuInVuZGVmaW5lZCIhPXR5cGVvZiBVUkxTZWFyY2hQYXJhbXMmJmUgaW5zdGFuY2VvZiBVUkxTZWFyY2hQYXJhbXN9LGlzU3RhbmRhcmRCcm93c2VyRW52OmZ1bmN0aW9uKCl7cmV0dXJuKCJ1bmRlZmluZWQiPT10eXBlb2YgbmF2aWdhdG9yfHwiUmVhY3ROYXRpdmUiIT09bmF2aWdhdG9yLnByb2R1Y3QmJiJOYXRpdmVTY3JpcHQiIT09bmF2aWdhdG9yLnByb2R1Y3QmJiJOUyIhPT1uYXZpZ2F0b3IucHJvZHVjdCkmJigidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdyYmInVuZGVmaW5lZCIhPXR5cGVvZiBkb2N1bWVudCl9LGZvckVhY2g6ZixtZXJnZTpmdW5jdGlvbiBlKCl7dmFyIHQ9e307ZnVuY3Rpb24gbihuLHIpe3UodFtyXSkmJnUobik\/dFtyXT1lKHRbcl0sbik6dShuKT90W3JdPWUoe30sbik6aShuKT90W3JdPW4uc2xpY2UoKTp0W3JdPW59Zm9yKHZhciByPTAsbz1hcmd1bWVudHMubGVuZ3RoO3I8bztyKyspZihhcmd1bWVudHNbcl0sbik7cmV0dXJuIHR9LGV4dGVuZDpmdW5jdGlvbihlLHQsbil7cmV0dXJuIGYodCwoZnVuY3Rpb24odCxvKXtlW29dPW4mJiJmdW5jdGlvbiI9PXR5cGVvZiB0P3IodCxuKTp0fSkpLGV9LHRyaW06ZnVuY3Rpb24oZSl7cmV0dXJuIGUudHJpbT9lLnRyaW0oKTplLnJlcGxhY2UoL15ccyt8XHMrJC9nLCIiKX0sc3RyaXBCT006ZnVuY3Rpb24oZSl7cmV0dXJuIDY1Mjc5PT09ZS5jaGFyQ29kZUF0KDApJiYoZT1lLnNsaWNlKDEpKSxlfX19LGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigwKSxvPW4oMTcpLGk9big1KSxzPXsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIn07ZnVuY3Rpb24gYShlLHQpeyFyLmlzVW5kZWZpbmVkKGUpJiZyLmlzVW5kZWZpbmVkKGVbIkNvbnRlbnQtVHlwZSJdKSYmKGVbIkNvbnRlbnQtVHlwZSJdPXQpfXZhciB1LGM9e3RyYW5zaXRpb25hbDp7c2lsZW50SlNPTlBhcnNpbmc6ITAsZm9yY2VkSlNPTlBhcnNpbmc6ITAsY2xhcmlmeVRpbWVvdXRFcnJvcjohMX0sYWRhcHRlcjooKCJ1bmRlZmluZWQiIT10eXBlb2YgWE1MSHR0cFJlcXVlc3R8fCJ1bmRlZmluZWQiIT10eXBlb2YgcHJvY2VzcyYmIltvYmplY3QgcHJvY2Vzc10iPT09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHByb2Nlc3MpKSYmKHU9big2KSksdSksdHJhbnNmb3JtUmVxdWVzdDpbZnVuY3Rpb24oZSx0KXtyZXR1cm4gbyh0LCJBY2NlcHQiKSxvKHQsIkNvbnRlbnQtVHlwZSIpLHIuaXNGb3JtRGF0YShlKXx8ci5pc0FycmF5QnVmZmVyKGUpfHxyLmlzQnVmZmVyKGUpfHxyLmlzU3RyZWFtKGUpfHxyLmlzRmlsZShlKXx8ci5pc0Jsb2IoZSk\/ZTpyLmlzQXJyYXlCdWZmZXJWaWV3KGUpP2UuYnVmZmVyOnIuaXNVUkxTZWFyY2hQYXJhbXMoZSk\/KGEodCwiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkO2NoYXJzZXQ9dXRmLTgiKSxlLnRvU3RyaW5nKCkpOnIuaXNPYmplY3QoZSl8fHQmJiJhcHBsaWNhdGlvbi9qc29uIj09PXRbIkNvbnRlbnQtVHlwZSJdPyhhKHQsImFwcGxpY2F0aW9uL2pzb24iKSxmdW5jdGlvbihlLHQsbil7aWYoci5pc1N0cmluZyhlKSl0cnl7cmV0dXJuKHR8fEpTT04ucGFyc2UpKGUpLHIudHJpbShlKX1jYXRjaChlKXtpZigiU3ludGF4RXJyb3IiIT09ZS5uYW1lKXRocm93IGV9cmV0dXJuKG58fEpTT04uc3RyaW5naWZ5KShlKX0oZSkpOmV9XSx0cmFuc2Zvcm1SZXNwb25zZTpbZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcy50cmFuc2l0aW9uYWx8fGMudHJhbnNpdGlvbmFsLG49dCYmdC5zaWxlbnRKU09OUGFyc2luZyxvPXQmJnQuZm9yY2VkSlNPTlBhcnNpbmcscz0hbiYmImpzb24iPT09dGhpcy5yZXNwb25zZVR5cGU7aWYoc3x8byYmci5pc1N0cmluZyhlKSYmZS5sZW5ndGgpdHJ5e3JldHVybiBKU09OLnBhcnNlKGUpfWNhdGNoKGUpe2lmKHMpe2lmKCJTeW50YXhFcnJvciI9PT1lLm5hbWUpdGhyb3cgaShlLHRoaXMsIkVfSlNPTl9QQVJTRSIpO3Rocm93IGV9fXJldHVybiBlfV0sdGltZW91dDowLHhzcmZDb29raWVOYW1lOiJYU1JGLVRPS0VOIix4c3JmSGVhZGVyTmFtZToiWC1YU1JGLVRPS0VOIixtYXhDb250ZW50TGVuZ3RoOi0xLG1heEJvZHlMZW5ndGg6LTEsdmFsaWRhdGVTdGF0dXM6ZnVuY3Rpb24oZSl7cmV0dXJuIGU+PTIwMCYmZTwzMDB9LGhlYWRlcnM6e2NvbW1vbjp7QWNjZXB0OiJhcHBsaWNhdGlvbi9qc29uLCB0ZXh0L3BsYWluLCAqLyoifX19O3IuZm9yRWFjaChbImRlbGV0ZSIsImdldCIsImhlYWQiXSwoZnVuY3Rpb24oZSl7Yy5oZWFkZXJzW2VdPXt9fSkpLHIuZm9yRWFjaChbInBvc3QiLCJwdXQiLCJwYXRjaCJdLChmdW5jdGlvbihlKXtjLmhlYWRlcnNbZV09ci5tZXJnZShzKX0pKSxlLmV4cG9ydHM9Y30sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiByKGUpe3RoaXMubWVzc2FnZT1lfXIucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIkNhbmNlbCIrKHRoaXMubWVzc2FnZT8iOiAiK3RoaXMubWVzc2FnZToiIil9LHIucHJvdG90eXBlLl9fQ0FOQ0VMX189ITAsZS5leHBvcnRzPXJ9LGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIGZ1bmN0aW9uKCl7Zm9yKHZhciBuPW5ldyBBcnJheShhcmd1bWVudHMubGVuZ3RoKSxyPTA7cjxuLmxlbmd0aDtyKyspbltyXT1hcmd1bWVudHNbcl07cmV0dXJuIGUuYXBwbHkodCxuKX19fSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oMCk7ZnVuY3Rpb24gbyhlKXtyZXR1cm4gZW5jb2RlVVJJQ29tcG9uZW50KGUpLnJlcGxhY2UoLyUzQS9naSwiOiIpLnJlcGxhY2UoLyUyNC9nLCIkIikucmVwbGFjZSgvJTJDL2dpLCIsIikucmVwbGFjZSgvJTIwL2csIisiKS5yZXBsYWNlKC8lNUIvZ2ksIlsiKS5yZXBsYWNlKC8lNUQvZ2ksIl0iKX1lLmV4cG9ydHM9ZnVuY3Rpb24oZSx0LG4pe2lmKCF0KXJldHVybiBlO3ZhciBpO2lmKG4paT1uKHQpO2Vsc2UgaWYoci5pc1VSTFNlYXJjaFBhcmFtcyh0KSlpPXQudG9TdHJpbmcoKTtlbHNle3ZhciBzPVtdO3IuZm9yRWFjaCh0LChmdW5jdGlvbihlLHQpe251bGwhPWUmJihyLmlzQXJyYXkoZSk\/dCs9IltdIjplPVtlXSxyLmZvckVhY2goZSwoZnVuY3Rpb24oZSl7ci5pc0RhdGUoZSk\/ZT1lLnRvSVNPU3RyaW5nKCk6ci5pc09iamVjdChlKSYmKGU9SlNPTi5zdHJpbmdpZnkoZSkpLHMucHVzaChvKHQpKyI9IitvKGUpKX0pKSl9KSksaT1zLmpvaW4oIiYiKX1pZihpKXt2YXIgYT1lLmluZGV4T2YoIiMiKTstMSE9PWEmJihlPWUuc2xpY2UoMCxhKSksZSs9KC0xPT09ZS5pbmRleE9mKCI\/Iik\/Ij8iOiImIikraX1yZXR1cm4gZX19LGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCxuLHIsbyl7cmV0dXJuIGUuY29uZmlnPXQsbiYmKGUuY29kZT1uKSxlLnJlcXVlc3Q9cixlLnJlc3BvbnNlPW8sZS5pc0F4aW9zRXJyb3I9ITAsZS50b0pTT049ZnVuY3Rpb24oKXtyZXR1cm57bWVzc2FnZTp0aGlzLm1lc3NhZ2UsbmFtZTp0aGlzLm5hbWUsZGVzY3JpcHRpb246dGhpcy5kZXNjcmlwdGlvbixudW1iZXI6dGhpcy5udW1iZXIsZmlsZU5hbWU6dGhpcy5maWxlTmFtZSxsaW5lTnVtYmVyOnRoaXMubGluZU51bWJlcixjb2x1bW5OdW1iZXI6dGhpcy5jb2x1bW5OdW1iZXIsc3RhY2s6dGhpcy5zdGFjayxjb25maWc6dGhpcy5jb25maWcsY29kZTp0aGlzLmNvZGUsc3RhdHVzOnRoaXMucmVzcG9uc2UmJnRoaXMucmVzcG9uc2Uuc3RhdHVzP3RoaXMucmVzcG9uc2Uuc3RhdHVzOm51bGx9fSxlfX0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKDApLG89bigxOCksaT1uKDE5KSxzPW4oNCksYT1uKDIwKSx1PW4oMjMpLGM9bigyNCksZj1uKDcpLGw9bigxKSxwPW4oMik7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcgUHJvbWlzZSgoZnVuY3Rpb24odCxuKXt2YXIgZCxoPWUuZGF0YSxtPWUuaGVhZGVycyx2PWUucmVzcG9uc2VUeXBlO2Z1bmN0aW9uIHkoKXtlLmNhbmNlbFRva2VuJiZlLmNhbmNlbFRva2VuLnVuc3Vic2NyaWJlKGQpLGUuc2lnbmFsJiZlLnNpZ25hbC5yZW1vdmVFdmVudExpc3RlbmVyKCJhYm9ydCIsZCl9ci5pc0Zvcm1EYXRhKGgpJiZkZWxldGUgbVsiQ29udGVudC1UeXBlIl07dmFyIGc9bmV3IFhNTEh0dHBSZXF1ZXN0O2lmKGUuYXV0aCl7dmFyIGI9ZS5hdXRoLnVzZXJuYW1lfHwiIix4PWUuYXV0aC5wYXNzd29yZD91bmVzY2FwZShlbmNvZGVVUklDb21wb25lbnQoZS5hdXRoLnBhc3N3b3JkKSk6IiI7bS5BdXRob3JpemF0aW9uPSJCYXNpYyAiK2J0b2EoYisiOiIreCl9dmFyIHc9YShlLmJhc2VVUkwsZS51cmwpO2Z1bmN0aW9uIEUoKXtpZihnKXt2YXIgcj0iZ2V0QWxsUmVzcG9uc2VIZWFkZXJzImluIGc\/dShnLmdldEFsbFJlc3BvbnNlSGVhZGVycygpKTpudWxsLGk9e2RhdGE6diYmInRleHQiIT09diYmImpzb24iIT09dj9nLnJlc3BvbnNlOmcucmVzcG9uc2VUZXh0LHN0YXR1czpnLnN0YXR1cyxzdGF0dXNUZXh0Omcuc3RhdHVzVGV4dCxoZWFkZXJzOnIsY29uZmlnOmUscmVxdWVzdDpnfTtvKChmdW5jdGlvbihlKXt0KGUpLHkoKX0pLChmdW5jdGlvbihlKXtuKGUpLHkoKX0pLGkpLGc9bnVsbH19aWYoZy5vcGVuKGUubWV0aG9kLnRvVXBwZXJDYXNlKCkscyh3LGUucGFyYW1zLGUucGFyYW1zU2VyaWFsaXplciksITApLGcudGltZW91dD1lLnRpbWVvdXQsIm9ubG9hZGVuZCJpbiBnP2cub25sb2FkZW5kPUU6Zy5vbnJlYWR5c3RhdGVjaGFuZ2U9ZnVuY3Rpb24oKXtnJiY0PT09Zy5yZWFkeVN0YXRlJiYoMCE9PWcuc3RhdHVzfHxnLnJlc3BvbnNlVVJMJiYwPT09Zy5yZXNwb25zZVVSTC5pbmRleE9mKCJmaWxlOiIpKSYmc2V0VGltZW91dChFKX0sZy5vbmFib3J0PWZ1bmN0aW9uKCl7ZyYmKG4oZigiUmVxdWVzdCBhYm9ydGVkIixlLCJFQ09OTkFCT1JURUQiLGcpKSxnPW51bGwpfSxnLm9uZXJyb3I9ZnVuY3Rpb24oKXtuKGYoIk5ldHdvcmsgRXJyb3IiLGUsbnVsbCxnKSksZz1udWxsfSxnLm9udGltZW91dD1mdW5jdGlvbigpe3ZhciB0PWUudGltZW91dD8idGltZW91dCBvZiAiK2UudGltZW91dCsibXMgZXhjZWVkZWQiOiJ0aW1lb3V0IGV4Y2VlZGVkIixyPWUudHJhbnNpdGlvbmFsfHxsLnRyYW5zaXRpb25hbDtlLnRpbWVvdXRFcnJvck1lc3NhZ2UmJih0PWUudGltZW91dEVycm9yTWVzc2FnZSksbihmKHQsZSxyLmNsYXJpZnlUaW1lb3V0RXJyb3I\/IkVUSU1FRE9VVCI6IkVDT05OQUJPUlRFRCIsZykpLGc9bnVsbH0sci5pc1N0YW5kYXJkQnJvd3NlckVudigpKXt2YXIgUz0oZS53aXRoQ3JlZGVudGlhbHN8fGModykpJiZlLnhzcmZDb29raWVOYW1lP2kucmVhZChlLnhzcmZDb29raWVOYW1lKTp2b2lkIDA7UyYmKG1bZS54c3JmSGVhZGVyTmFtZV09Uyl9InNldFJlcXVlc3RIZWFkZXIiaW4gZyYmci5mb3JFYWNoKG0sKGZ1bmN0aW9uKGUsdCl7dm9pZCAwPT09aCYmImNvbnRlbnQtdHlwZSI9PT10LnRvTG93ZXJDYXNlKCk\/ZGVsZXRlIG1bdF06Zy5zZXRSZXF1ZXN0SGVhZGVyKHQsZSl9KSksci5pc1VuZGVmaW5lZChlLndpdGhDcmVkZW50aWFscyl8fChnLndpdGhDcmVkZW50aWFscz0hIWUud2l0aENyZWRlbnRpYWxzKSx2JiYianNvbiIhPT12JiYoZy5yZXNwb25zZVR5cGU9ZS5yZXNwb25zZVR5cGUpLCJmdW5jdGlvbiI9PXR5cGVvZiBlLm9uRG93bmxvYWRQcm9ncmVzcyYmZy5hZGRFdmVudExpc3RlbmVyKCJwcm9ncmVzcyIsZS5vbkRvd25sb2FkUHJvZ3Jlc3MpLCJmdW5jdGlvbiI9PXR5cGVvZiBlLm9uVXBsb2FkUHJvZ3Jlc3MmJmcudXBsb2FkJiZnLnVwbG9hZC5hZGRFdmVudExpc3RlbmVyKCJwcm9ncmVzcyIsZS5vblVwbG9hZFByb2dyZXNzKSwoZS5jYW5jZWxUb2tlbnx8ZS5zaWduYWwpJiYoZD1mdW5jdGlvbihlKXtnJiYobighZXx8ZSYmZS50eXBlP25ldyBwKCJjYW5jZWxlZCIpOmUpLGcuYWJvcnQoKSxnPW51bGwpfSxlLmNhbmNlbFRva2VuJiZlLmNhbmNlbFRva2VuLnN1YnNjcmliZShkKSxlLnNpZ25hbCYmKGUuc2lnbmFsLmFib3J0ZWQ\/ZCgpOmUuc2lnbmFsLmFkZEV2ZW50TGlzdGVuZXIoImFib3J0IixkKSkpLGh8fChoPW51bGwpLGcuc2VuZChoKX0pKX19LGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7dmFyIHI9big1KTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0LG4sbyxpKXt2YXIgcz1uZXcgRXJyb3IoZSk7cmV0dXJuIHIocyx0LG4sbyxpKX19LGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3JldHVybiEoIWV8fCFlLl9fQ0FOQ0VMX18pfX0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKDApO2UuZXhwb3J0cz1mdW5jdGlvbihlLHQpe3Q9dHx8e307dmFyIG49e307ZnVuY3Rpb24gbyhlLHQpe3JldHVybiByLmlzUGxhaW5PYmplY3QoZSkmJnIuaXNQbGFpbk9iamVjdCh0KT9yLm1lcmdlKGUsdCk6ci5pc1BsYWluT2JqZWN0KHQpP3IubWVyZ2Uoe30sdCk6ci5pc0FycmF5KHQpP3Quc2xpY2UoKTp0fWZ1bmN0aW9uIGkobil7cmV0dXJuIHIuaXNVbmRlZmluZWQodFtuXSk\/ci5pc1VuZGVmaW5lZChlW25dKT92b2lkIDA6byh2b2lkIDAsZVtuXSk6byhlW25dLHRbbl0pfWZ1bmN0aW9uIHMoZSl7aWYoIXIuaXNVbmRlZmluZWQodFtlXSkpcmV0dXJuIG8odm9pZCAwLHRbZV0pfWZ1bmN0aW9uIGEobil7cmV0dXJuIHIuaXNVbmRlZmluZWQodFtuXSk\/ci5pc1VuZGVmaW5lZChlW25dKT92b2lkIDA6byh2b2lkIDAsZVtuXSk6byh2b2lkIDAsdFtuXSl9ZnVuY3Rpb24gdShuKXtyZXR1cm4gbiBpbiB0P28oZVtuXSx0W25dKTpuIGluIGU\/byh2b2lkIDAsZVtuXSk6dm9pZCAwfXZhciBjPXt1cmw6cyxtZXRob2Q6cyxkYXRhOnMsYmFzZVVSTDphLHRyYW5zZm9ybVJlcXVlc3Q6YSx0cmFuc2Zvcm1SZXNwb25zZTphLHBhcmFtc1NlcmlhbGl6ZXI6YSx0aW1lb3V0OmEsdGltZW91dE1lc3NhZ2U6YSx3aXRoQ3JlZGVudGlhbHM6YSxhZGFwdGVyOmEscmVzcG9uc2VUeXBlOmEseHNyZkNvb2tpZU5hbWU6YSx4c3JmSGVhZGVyTmFtZTphLG9uVXBsb2FkUHJvZ3Jlc3M6YSxvbkRvd25sb2FkUHJvZ3Jlc3M6YSxkZWNvbXByZXNzOmEsbWF4Q29udGVudExlbmd0aDphLG1heEJvZHlMZW5ndGg6YSx0cmFuc3BvcnQ6YSxodHRwQWdlbnQ6YSxodHRwc0FnZW50OmEsY2FuY2VsVG9rZW46YSxzb2NrZXRQYXRoOmEscmVzcG9uc2VFbmNvZGluZzphLHZhbGlkYXRlU3RhdHVzOnV9O3JldHVybiByLmZvckVhY2goT2JqZWN0LmtleXMoZSkuY29uY2F0KE9iamVjdC5rZXlzKHQpKSwoZnVuY3Rpb24oZSl7dmFyIHQ9Y1tlXXx8aSxvPXQoZSk7ci5pc1VuZGVmaW5lZChvKSYmdCE9PXV8fChuW2VdPW8pfSkpLG59fSxmdW5jdGlvbihlLHQpe2UuZXhwb3J0cz17dmVyc2lvbjoiMC4yNC4wIn19LGZ1bmN0aW9uKGUsdCxuKXtlLmV4cG9ydHM9bigxMil9LGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigwKSxvPW4oMyksaT1uKDEzKSxzPW4oOSk7dmFyIGE9ZnVuY3Rpb24gZSh0KXt2YXIgbj1uZXcgaSh0KSxhPW8oaS5wcm90b3R5cGUucmVxdWVzdCxuKTtyZXR1cm4gci5leHRlbmQoYSxpLnByb3RvdHlwZSxuKSxyLmV4dGVuZChhLG4pLGEuY3JlYXRlPWZ1bmN0aW9uKG4pe3JldHVybiBlKHModCxuKSl9LGF9KG4oMSkpO2EuQXhpb3M9aSxhLkNhbmNlbD1uKDIpLGEuQ2FuY2VsVG9rZW49bigyNiksYS5pc0NhbmNlbD1uKDgpLGEuVkVSU0lPTj1uKDEwKS52ZXJzaW9uLGEuYWxsPWZ1bmN0aW9uKGUpe3JldHVybiBQcm9taXNlLmFsbChlKX0sYS5zcHJlYWQ9bigyNyksYS5pc0F4aW9zRXJyb3I9bigyOCksZS5leHBvcnRzPWEsZS5leHBvcnRzLmRlZmF1bHQ9YX0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKDApLG89big0KSxpPW4oMTQpLHM9bigxNSksYT1uKDkpLHU9bigyNSksYz11LnZhbGlkYXRvcnM7ZnVuY3Rpb24gZihlKXt0aGlzLmRlZmF1bHRzPWUsdGhpcy5pbnRlcmNlcHRvcnM9e3JlcXVlc3Q6bmV3IGkscmVzcG9uc2U6bmV3IGl9fWYucHJvdG90eXBlLnJlcXVlc3Q9ZnVuY3Rpb24oZSl7InN0cmluZyI9PXR5cGVvZiBlPyhlPWFyZ3VtZW50c1sxXXx8e30pLnVybD1hcmd1bWVudHNbMF06ZT1lfHx7fSwoZT1hKHRoaXMuZGVmYXVsdHMsZSkpLm1ldGhvZD9lLm1ldGhvZD1lLm1ldGhvZC50b0xvd2VyQ2FzZSgpOnRoaXMuZGVmYXVsdHMubWV0aG9kP2UubWV0aG9kPXRoaXMuZGVmYXVsdHMubWV0aG9kLnRvTG93ZXJDYXNlKCk6ZS5tZXRob2Q9ImdldCI7dmFyIHQ9ZS50cmFuc2l0aW9uYWw7dm9pZCAwIT09dCYmdS5hc3NlcnRPcHRpb25zKHQse3NpbGVudEpTT05QYXJzaW5nOmMudHJhbnNpdGlvbmFsKGMuYm9vbGVhbiksZm9yY2VkSlNPTlBhcnNpbmc6Yy50cmFuc2l0aW9uYWwoYy5ib29sZWFuKSxjbGFyaWZ5VGltZW91dEVycm9yOmMudHJhbnNpdGlvbmFsKGMuYm9vbGVhbil9LCExKTt2YXIgbj1bXSxyPSEwO3RoaXMuaW50ZXJjZXB0b3JzLnJlcXVlc3QuZm9yRWFjaCgoZnVuY3Rpb24odCl7ImZ1bmN0aW9uIj09dHlwZW9mIHQucnVuV2hlbiYmITE9PT10LnJ1bldoZW4oZSl8fChyPXImJnQuc3luY2hyb25vdXMsbi51bnNoaWZ0KHQuZnVsZmlsbGVkLHQucmVqZWN0ZWQpKX0pKTt2YXIgbyxpPVtdO2lmKHRoaXMuaW50ZXJjZXB0b3JzLnJlc3BvbnNlLmZvckVhY2goKGZ1bmN0aW9uKGUpe2kucHVzaChlLmZ1bGZpbGxlZCxlLnJlamVjdGVkKX0pKSwhcil7dmFyIGY9W3Msdm9pZCAwXTtmb3IoQXJyYXkucHJvdG90eXBlLnVuc2hpZnQuYXBwbHkoZixuKSxmPWYuY29uY2F0KGkpLG89UHJvbWlzZS5yZXNvbHZlKGUpO2YubGVuZ3RoOylvPW8udGhlbihmLnNoaWZ0KCksZi5zaGlmdCgpKTtyZXR1cm4gb31mb3IodmFyIGw9ZTtuLmxlbmd0aDspe3ZhciBwPW4uc2hpZnQoKSxkPW4uc2hpZnQoKTt0cnl7bD1wKGwpfWNhdGNoKGUpe2QoZSk7YnJlYWt9fXRyeXtvPXMobCl9Y2F0Y2goZSl7cmV0dXJuIFByb21pc2UucmVqZWN0KGUpfWZvcig7aS5sZW5ndGg7KW89by50aGVuKGkuc2hpZnQoKSxpLnNoaWZ0KCkpO3JldHVybiBvfSxmLnByb3RvdHlwZS5nZXRVcmk9ZnVuY3Rpb24oZSl7cmV0dXJuIGU9YSh0aGlzLmRlZmF1bHRzLGUpLG8oZS51cmwsZS5wYXJhbXMsZS5wYXJhbXNTZXJpYWxpemVyKS5yZXBsYWNlKC9eXD8vLCIiKX0sci5mb3JFYWNoKFsiZGVsZXRlIiwiZ2V0IiwiaGVhZCIsIm9wdGlvbnMiXSwoZnVuY3Rpb24oZSl7Zi5wcm90b3R5cGVbZV09ZnVuY3Rpb24odCxuKXtyZXR1cm4gdGhpcy5yZXF1ZXN0KGEobnx8e30se21ldGhvZDplLHVybDp0LGRhdGE6KG58fHt9KS5kYXRhfSkpfX0pKSxyLmZvckVhY2goWyJwb3N0IiwicHV0IiwicGF0Y2giXSwoZnVuY3Rpb24oZSl7Zi5wcm90b3R5cGVbZV09ZnVuY3Rpb24odCxuLHIpe3JldHVybiB0aGlzLnJlcXVlc3QoYShyfHx7fSx7bWV0aG9kOmUsdXJsOnQsZGF0YTpufSkpfX0pKSxlLmV4cG9ydHM9Zn0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKDApO2Z1bmN0aW9uIG8oKXt0aGlzLmhhbmRsZXJzPVtdfW8ucHJvdG90eXBlLnVzZT1mdW5jdGlvbihlLHQsbil7cmV0dXJuIHRoaXMuaGFuZGxlcnMucHVzaCh7ZnVsZmlsbGVkOmUscmVqZWN0ZWQ6dCxzeW5jaHJvbm91czohIW4mJm4uc3luY2hyb25vdXMscnVuV2hlbjpuP24ucnVuV2hlbjpudWxsfSksdGhpcy5oYW5kbGVycy5sZW5ndGgtMX0sby5wcm90b3R5cGUuZWplY3Q9ZnVuY3Rpb24oZSl7dGhpcy5oYW5kbGVyc1tlXSYmKHRoaXMuaGFuZGxlcnNbZV09bnVsbCl9LG8ucHJvdG90eXBlLmZvckVhY2g9ZnVuY3Rpb24oZSl7ci5mb3JFYWNoKHRoaXMuaGFuZGxlcnMsKGZ1bmN0aW9uKHQpe251bGwhPT10JiZlKHQpfSkpfSxlLmV4cG9ydHM9b30sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKDApLG89bigxNiksaT1uKDgpLHM9bigxKSxhPW4oMik7ZnVuY3Rpb24gdShlKXtpZihlLmNhbmNlbFRva2VuJiZlLmNhbmNlbFRva2VuLnRocm93SWZSZXF1ZXN0ZWQoKSxlLnNpZ25hbCYmZS5zaWduYWwuYWJvcnRlZCl0aHJvdyBuZXcgYSgiY2FuY2VsZWQiKX1lLmV4cG9ydHM9ZnVuY3Rpb24oZSl7cmV0dXJuIHUoZSksZS5oZWFkZXJzPWUuaGVhZGVyc3x8e30sZS5kYXRhPW8uY2FsbChlLGUuZGF0YSxlLmhlYWRlcnMsZS50cmFuc2Zvcm1SZXF1ZXN0KSxlLmhlYWRlcnM9ci5tZXJnZShlLmhlYWRlcnMuY29tbW9ufHx7fSxlLmhlYWRlcnNbZS5tZXRob2RdfHx7fSxlLmhlYWRlcnMpLHIuZm9yRWFjaChbImRlbGV0ZSIsImdldCIsImhlYWQiLCJwb3N0IiwicHV0IiwicGF0Y2giLCJjb21tb24iXSwoZnVuY3Rpb24odCl7ZGVsZXRlIGUuaGVhZGVyc1t0XX0pKSwoZS5hZGFwdGVyfHxzLmFkYXB0ZXIpKGUpLnRoZW4oKGZ1bmN0aW9uKHQpe3JldHVybiB1KGUpLHQuZGF0YT1vLmNhbGwoZSx0LmRhdGEsdC5oZWFkZXJzLGUudHJhbnNmb3JtUmVzcG9uc2UpLHR9KSwoZnVuY3Rpb24odCl7cmV0dXJuIGkodCl8fCh1KGUpLHQmJnQucmVzcG9uc2UmJih0LnJlc3BvbnNlLmRhdGE9by5jYWxsKGUsdC5yZXNwb25zZS5kYXRhLHQucmVzcG9uc2UuaGVhZGVycyxlLnRyYW5zZm9ybVJlc3BvbnNlKSkpLFByb21pc2UucmVqZWN0KHQpfSkpfX0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKDApLG89bigxKTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0LG4pe3ZhciBpPXRoaXN8fG87cmV0dXJuIHIuZm9yRWFjaChuLChmdW5jdGlvbihuKXtlPW4uY2FsbChpLGUsdCl9KSksZX19LGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigwKTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0KXtyLmZvckVhY2goZSwoZnVuY3Rpb24obixyKXtyIT09dCYmci50b1VwcGVyQ2FzZSgpPT09dC50b1VwcGVyQ2FzZSgpJiYoZVt0XT1uLGRlbGV0ZSBlW3JdKX0pKX19LGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7dmFyIHI9big3KTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0LG4pe3ZhciBvPW4uY29uZmlnLnZhbGlkYXRlU3RhdHVzO24uc3RhdHVzJiZvJiYhbyhuLnN0YXR1cyk\/dChyKCJSZXF1ZXN0IGZhaWxlZCB3aXRoIHN0YXR1cyBjb2RlICIrbi5zdGF0dXMsbi5jb25maWcsbnVsbCxuLnJlcXVlc3QsbikpOmUobil9fSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oMCk7ZS5leHBvcnRzPXIuaXNTdGFuZGFyZEJyb3dzZXJFbnYoKT97d3JpdGU6ZnVuY3Rpb24oZSx0LG4sbyxpLHMpe3ZhciBhPVtdO2EucHVzaChlKyI9IitlbmNvZGVVUklDb21wb25lbnQodCkpLHIuaXNOdW1iZXIobikmJmEucHVzaCgiZXhwaXJlcz0iK25ldyBEYXRlKG4pLnRvR01UU3RyaW5nKCkpLHIuaXNTdHJpbmcobykmJmEucHVzaCgicGF0aD0iK28pLHIuaXNTdHJpbmcoaSkmJmEucHVzaCgiZG9tYWluPSIraSksITA9PT1zJiZhLnB1c2goInNlY3VyZSIpLGRvY3VtZW50LmNvb2tpZT1hLmpvaW4oIjsgIil9LHJlYWQ6ZnVuY3Rpb24oZSl7dmFyIHQ9ZG9jdW1lbnQuY29va2llLm1hdGNoKG5ldyBSZWdFeHAoIihefDtcXHMqKSgiK2UrIik9KFteO10qKSIpKTtyZXR1cm4gdD9kZWNvZGVVUklDb21wb25lbnQodFszXSk6bnVsbH0scmVtb3ZlOmZ1bmN0aW9uKGUpe3RoaXMud3JpdGUoZSwiIixEYXRlLm5vdygpLTg2NGU1KX19Ont3cml0ZTpmdW5jdGlvbigpe30scmVhZDpmdW5jdGlvbigpe3JldHVybiBudWxsfSxyZW1vdmU6ZnVuY3Rpb24oKXt9fX0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKDIxKSxvPW4oMjIpO2UuZXhwb3J0cz1mdW5jdGlvbihlLHQpe3JldHVybiBlJiYhcih0KT9vKGUsdCk6dH19LGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3JldHVybi9eKFthLXpdW2EtelxkXCtcLVwuXSo6KT9cL1wvL2kudGVzdChlKX19LGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQ\/ZS5yZXBsYWNlKC9cLyskLywiIikrIi8iK3QucmVwbGFjZSgvXlwvKy8sIiIpOmV9fSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oMCksbz1bImFnZSIsImF1dGhvcml6YXRpb24iLCJjb250ZW50LWxlbmd0aCIsImNvbnRlbnQtdHlwZSIsImV0YWciLCJleHBpcmVzIiwiZnJvbSIsImhvc3QiLCJpZi1tb2RpZmllZC1zaW5jZSIsImlmLXVubW9kaWZpZWQtc2luY2UiLCJsYXN0LW1vZGlmaWVkIiwibG9jYXRpb24iLCJtYXgtZm9yd2FyZHMiLCJwcm94eS1hdXRob3JpemF0aW9uIiwicmVmZXJlciIsInJldHJ5LWFmdGVyIiwidXNlci1hZ2VudCJdO2UuZXhwb3J0cz1mdW5jdGlvbihlKXt2YXIgdCxuLGkscz17fTtyZXR1cm4gZT8oci5mb3JFYWNoKGUuc3BsaXQoIlxuIiksKGZ1bmN0aW9uKGUpe2lmKGk9ZS5pbmRleE9mKCI6IiksdD1yLnRyaW0oZS5zdWJzdHIoMCxpKSkudG9Mb3dlckNhc2UoKSxuPXIudHJpbShlLnN1YnN0cihpKzEpKSx0KXtpZihzW3RdJiZvLmluZGV4T2YodCk+PTApcmV0dXJuO3NbdF09InNldC1jb29raWUiPT09dD8oc1t0XT9zW3RdOltdKS5jb25jYXQoW25dKTpzW3RdP3NbdF0rIiwgIituOm59fSkpLHMpOnN9fSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oMCk7ZS5leHBvcnRzPXIuaXNTdGFuZGFyZEJyb3dzZXJFbnYoKT9mdW5jdGlvbigpe3ZhciBlLHQ9Lyhtc2llfHRyaWRlbnQpL2kudGVzdChuYXZpZ2F0b3IudXNlckFnZW50KSxuPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImEiKTtmdW5jdGlvbiBvKGUpe3ZhciByPWU7cmV0dXJuIHQmJihuLnNldEF0dHJpYnV0ZSgiaHJlZiIscikscj1uLmhyZWYpLG4uc2V0QXR0cmlidXRlKCJocmVmIixyKSx7aHJlZjpuLmhyZWYscHJvdG9jb2w6bi5wcm90b2NvbD9uLnByb3RvY29sLnJlcGxhY2UoLzokLywiIik6IiIsaG9zdDpuLmhvc3Qsc2VhcmNoOm4uc2VhcmNoP24uc2VhcmNoLnJlcGxhY2UoL15cPy8sIiIpOiIiLGhhc2g6bi5oYXNoP24uaGFzaC5yZXBsYWNlKC9eIy8sIiIpOiIiLGhvc3RuYW1lOm4uaG9zdG5hbWUscG9ydDpuLnBvcnQscGF0aG5hbWU6Ii8iPT09bi5wYXRobmFtZS5jaGFyQXQoMCk\/bi5wYXRobmFtZToiLyIrbi5wYXRobmFtZX19cmV0dXJuIGU9byh3aW5kb3cubG9jYXRpb24uaHJlZiksZnVuY3Rpb24odCl7dmFyIG49ci5pc1N0cmluZyh0KT9vKHQpOnQ7cmV0dXJuIG4ucHJvdG9jb2w9PT1lLnByb3RvY29sJiZuLmhvc3Q9PT1lLmhvc3R9fSgpOmZ1bmN0aW9uKCl7cmV0dXJuITB9fSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oMTApLnZlcnNpb24sbz17fTtbIm9iamVjdCIsImJvb2xlYW4iLCJudW1iZXIiLCJmdW5jdGlvbiIsInN0cmluZyIsInN5bWJvbCJdLmZvckVhY2goKGZ1bmN0aW9uKGUsdCl7b1tlXT1mdW5jdGlvbihuKXtyZXR1cm4gdHlwZW9mIG49PT1lfHwiYSIrKHQ8MT8ibiAiOiIgIikrZX19KSk7dmFyIGk9e307by50cmFuc2l0aW9uYWw9ZnVuY3Rpb24oZSx0LG4pe2Z1bmN0aW9uIG8oZSx0KXtyZXR1cm4iW0F4aW9zIHYiK3IrIl0gVHJhbnNpdGlvbmFsIG9wdGlvbiAnIitlKyInIit0KyhuPyIuICIrbjoiIil9cmV0dXJuIGZ1bmN0aW9uKG4scixzKXtpZighMT09PWUpdGhyb3cgbmV3IEVycm9yKG8ociwiIGhhcyBiZWVuIHJlbW92ZWQiKyh0PyIgaW4gIit0OiIiKSkpO3JldHVybiB0JiYhaVtyXSYmKGlbcl09ITAsY29uc29sZS53YXJuKG8ociwiIGhhcyBiZWVuIGRlcHJlY2F0ZWQgc2luY2UgdiIrdCsiIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5lYXIgZnV0dXJlIikpKSwhZXx8ZShuLHIscyl9fSxlLmV4cG9ydHM9e2Fzc2VydE9wdGlvbnM6ZnVuY3Rpb24oZSx0LG4pe2lmKCJvYmplY3QiIT10eXBlb2YgZSl0aHJvdyBuZXcgVHlwZUVycm9yKCJvcHRpb25zIG11c3QgYmUgYW4gb2JqZWN0Iik7Zm9yKHZhciByPU9iamVjdC5rZXlzKGUpLG89ci5sZW5ndGg7by0tID4wOyl7dmFyIGk9cltvXSxzPXRbaV07aWYocyl7dmFyIGE9ZVtpXSx1PXZvaWQgMD09PWF8fHMoYSxpLGUpO2lmKCEwIT09dSl0aHJvdyBuZXcgVHlwZUVycm9yKCJvcHRpb24gIitpKyIgbXVzdCBiZSAiK3UpfWVsc2UgaWYoITAhPT1uKXRocm93IEVycm9yKCJVbmtub3duIG9wdGlvbiAiK2kpfX0sdmFsaWRhdG9yczpvfX0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKDIpO2Z1bmN0aW9uIG8oZSl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGUpdGhyb3cgbmV3IFR5cGVFcnJvcigiZXhlY3V0b3IgbXVzdCBiZSBhIGZ1bmN0aW9uLiIpO3ZhciB0O3RoaXMucHJvbWlzZT1uZXcgUHJvbWlzZSgoZnVuY3Rpb24oZSl7dD1lfSkpO3ZhciBuPXRoaXM7dGhpcy5wcm9taXNlLnRoZW4oKGZ1bmN0aW9uKGUpe2lmKG4uX2xpc3RlbmVycyl7dmFyIHQscj1uLl9saXN0ZW5lcnMubGVuZ3RoO2Zvcih0PTA7dDxyO3QrKyluLl9saXN0ZW5lcnNbdF0oZSk7bi5fbGlzdGVuZXJzPW51bGx9fSkpLHRoaXMucHJvbWlzZS50aGVuPWZ1bmN0aW9uKGUpe3ZhciB0LHI9bmV3IFByb21pc2UoKGZ1bmN0aW9uKGUpe24uc3Vic2NyaWJlKGUpLHQ9ZX0pKS50aGVuKGUpO3JldHVybiByLmNhbmNlbD1mdW5jdGlvbigpe24udW5zdWJzY3JpYmUodCl9LHJ9LGUoKGZ1bmN0aW9uKGUpe24ucmVhc29ufHwobi5yZWFzb249bmV3IHIoZSksdChuLnJlYXNvbikpfSkpfW8ucHJvdG90eXBlLnRocm93SWZSZXF1ZXN0ZWQ9ZnVuY3Rpb24oKXtpZih0aGlzLnJlYXNvbil0aHJvdyB0aGlzLnJlYXNvbn0sby5wcm90b3R5cGUuc3Vic2NyaWJlPWZ1bmN0aW9uKGUpe3RoaXMucmVhc29uP2UodGhpcy5yZWFzb24pOnRoaXMuX2xpc3RlbmVycz90aGlzLl9saXN0ZW5lcnMucHVzaChlKTp0aGlzLl9saXN0ZW5lcnM9W2VdfSxvLnByb3RvdHlwZS51bnN1YnNjcmliZT1mdW5jdGlvbihlKXtpZih0aGlzLl9saXN0ZW5lcnMpe3ZhciB0PXRoaXMuX2xpc3RlbmVycy5pbmRleE9mKGUpOy0xIT09dCYmdGhpcy5fbGlzdGVuZXJzLnNwbGljZSh0LDEpfX0sby5zb3VyY2U9ZnVuY3Rpb24oKXt2YXIgZTtyZXR1cm57dG9rZW46bmV3IG8oKGZ1bmN0aW9uKHQpe2U9dH0pKSxjYW5jZWw6ZX19LGUuZXhwb3J0cz1vfSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIGUuYXBwbHkobnVsbCx0KX19fSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbihlKXtyZXR1cm4ib2JqZWN0Ij09dHlwZW9mIGUmJiEwPT09ZS5pc0F4aW9zRXJyb3J9fV0pfSkpOwovLyMgc291cmNlTWFwcGluZ1VSTD1heGlvcy5taW4ubWFwOwovKiogL20vanMvdmFuaWxsYWpzL3ByaXN0aW5lLm1pbi5qcyAqKi8KIWZ1bmN0aW9uKGUscil7Im9iamVjdCI9PXR5cGVvZiBleHBvcnRzJiYidW5kZWZpbmVkIiE9dHlwZW9mIG1vZHVsZT9tb2R1bGUuZXhwb3J0cz1yKCk6ImZ1bmN0aW9uIj09dHlwZW9mIGRlZmluZSYmZGVmaW5lLmFtZD9kZWZpbmUocik6KGU9InVuZGVmaW5lZCIhPXR5cGVvZiBnbG9iYWxUaGlzP2dsb2JhbFRoaXM6ZXx8c2VsZikuUHJpc3RpbmU9cigpfSh0aGlzLChmdW5jdGlvbigpeyJ1c2Ugc3RyaWN0Ijt2YXIgZT17ZW46e3JlcXVpcmVkOiJUaGlzIGZpZWxkIGlzIHJlcXVpcmVkIixlbWFpbDoiVGhpcyBmaWVsZCByZXF1aXJlcyBhIHZhbGlkIGUtbWFpbCBhZGRyZXNzIixudW1iZXI6IlRoaXMgZmllbGQgcmVxdWlyZXMgYSBudW1iZXIiLGludGVnZXI6IlRoaXMgZmllbGQgcmVxdWlyZXMgYW4gaW50ZWdlciB2YWx1ZSIsdXJsOiJUaGlzIGZpZWxkIHJlcXVpcmVzIGEgdmFsaWQgd2Vic2l0ZSBVUkwiLHRlbDoiVGhpcyBmaWVsZCByZXF1aXJlcyBhIHZhbGlkIHRlbGVwaG9uZSBudW1iZXIiLG1heGxlbmd0aDoiVGhpcyBmaWVsZHMgbGVuZ3RoIG11c3QgYmUgPCAkezF9IixtaW5sZW5ndGg6IlRoaXMgZmllbGRzIGxlbmd0aCBtdXN0IGJlID4gJHsxfSIsbWluOiJNaW5pbXVtIHZhbHVlIGZvciB0aGlzIGZpZWxkIGlzICR7MX0iLG1heDoiTWF4aW11bSB2YWx1ZSBmb3IgdGhpcyBmaWVsZCBpcyAkezF9IixwYXR0ZXJuOiJQbGVhc2UgbWF0Y2ggdGhlIHJlcXVlc3RlZCBmb3JtYXQiLGVxdWFsczoiVGhlIHR3byBmaWVsZHMgZG8gbm90IG1hdGNoIn19O2Z1bmN0aW9uIHIoZSl7dmFyIHI9YXJndW1lbnRzO3JldHVybiB0aGlzLnJlcGxhY2UoL1wkeyhbXnt9XSopfS9nLChmdW5jdGlvbihlLHQpe3JldHVybiByW3RdfSkpfWZ1bmN0aW9uIHQoZSl7cmV0dXJuIGUucHJpc3RpbmUuc2VsZi5mb3JtLnF1ZXJ5U2VsZWN0b3JBbGwoJ2lucHV0W25hbWU9IicrZS5nZXRBdHRyaWJ1dGUoIm5hbWUiKSsnIl06Y2hlY2tlZCcpLmxlbmd0aH12YXIgbj17Y2xhc3NUbzoiZm9ybS1ncm91cCIsZXJyb3JDbGFzczoiaGFzLWRhbmdlciIsc3VjY2Vzc0NsYXNzOiJoYXMtc3VjY2VzcyIsZXJyb3JUZXh0UGFyZW50OiJmb3JtLWdyb3VwIixlcnJvclRleHRUYWc6ImRpdiIsZXJyb3JUZXh0Q2xhc3M6InRleHQtaGVscCJ9LGk9WyJyZXF1aXJlZCIsIm1pbiIsIm1heCIsIm1pbmxlbmd0aCIsIm1heGxlbmd0aCIsInBhdHRlcm4iXSxzPS9eKChbXjw+KClcW1xdXFwuLDs6XHNAIl0rKFwuW148PigpXFtcXVxcLiw7OlxzQCJdKykqKXwoIi4rIikpQCgoXFtbMC05XXsxLDN9XC5bMC05XXsxLDN9XC5bMC05XXsxLDN9XC5bMC05XXsxLDN9XSl8KChbYS16QS1aXC0wLTldK1wuKStbYS16QS1aXXsyLH0pKSQvLGE9Ly1tZXNzYWdlKD86LShbYS16XXsyfSg\/Ol9bQS1aXXsyfSk\/KSk\/LyxvPSJlbiIsbD17fSx1PWZ1bmN0aW9uKGUscil7ci5uYW1lPWUsdm9pZCAwPT09ci5wcmlvcml0eSYmKHIucHJpb3JpdHk9MSksbFtlXT1yfTtmdW5jdGlvbiBmKHQscyx1KXt2YXIgZj10aGlzO2Z1bmN0aW9uIGMoZSxyLHQsbil7dmFyIGk9bFt0XTtpZihpJiYoZS5wdXNoKGkpLG4pKXt2YXIgcz0icGF0dGVybiI9PT10P1tuXTpuLnNwbGl0KCIsIik7cy51bnNoaWZ0KG51bGwpLHJbdF09c319ZnVuY3Rpb24gcCh0KXtmb3IodmFyIG49W10saT0hMCxzPTA7dC52YWxpZGF0b3JzW3NdO3MrKyl7dmFyIGE9dC52YWxpZGF0b3JzW3NdLGw9dC5wYXJhbXNbYS5uYW1lXT90LnBhcmFtc1thLm5hbWVdOltdO2lmKGxbMF09dC5pbnB1dC52YWx1ZSwhYS5mbi5hcHBseSh0LmlucHV0LGwpJiYoaT0hMSwiZnVuY3Rpb24iPT10eXBlb2YgYS5tc2c\/bi5wdXNoKGEubXNnKHQuaW5wdXQudmFsdWUsbCkpOiJzdHJpbmciPT10eXBlb2YgYS5tc2c\/bi5wdXNoKHIuYXBwbHkoYS5tc2csbCkpOmEubXNnPT09T2JqZWN0KGEubXNnKSYmYS5tc2dbb10\/bi5wdXNoKHIuYXBwbHkoYS5tc2dbb10sbCkpOnQubWVzc2FnZXNbb10mJnQubWVzc2FnZXNbb11bYS5uYW1lXT9uLnB1c2goci5hcHBseSh0Lm1lc3NhZ2VzW29dW2EubmFtZV0sbCkpOmVbb10mJmVbb11bYS5uYW1lXSYmbi5wdXNoKHIuYXBwbHkoZVtvXVthLm5hbWVdLGwpKSwhMD09PWEuaGFsdCkpYnJlYWt9cmV0dXJuIHQuZXJyb3JzPW4saX1mdW5jdGlvbiBtKGUpe2lmKGUuZXJyb3JFbGVtZW50cylyZXR1cm4gZS5lcnJvckVsZW1lbnRzO3ZhciByPWZ1bmN0aW9uKGUscil7Zm9yKDsoZT1lLnBhcmVudEVsZW1lbnQpJiYhZS5jbGFzc0xpc3QuY29udGFpbnMocik7KTtyZXR1cm4gZX0oZS5pbnB1dCxmLmNvbmZpZy5jbGFzc1RvKSx0PW51bGwsbj1udWxsO3JldHVybih0PWYuY29uZmlnLmNsYXNzVG89PT1mLmNvbmZpZy5lcnJvclRleHRQYXJlbnQ\/cjpyLnF1ZXJ5U2VsZWN0b3IoIi4iK2YuY29uZmlnLmVycm9yVGV4dFBhcmVudCkpJiYoKG49dC5xdWVyeVNlbGVjdG9yKCIucHJpc3RpbmUtZXJyb3IiKSl8fCgobj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KGYuY29uZmlnLmVycm9yVGV4dFRhZykpLmNsYXNzTmFtZT0icHJpc3RpbmUtZXJyb3IgIitmLmNvbmZpZy5lcnJvclRleHRDbGFzcyx0LmFwcGVuZENoaWxkKG4pLG4ucHJpc3RpbmVEaXNwbGF5PW4uc3R5bGUuZGlzcGxheSkpLGUuZXJyb3JFbGVtZW50cz1bcixuXX1mdW5jdGlvbiBkKGUpe3ZhciByPW0oZSksdD1yWzBdLG49clsxXTt0JiYodC5jbGFzc0xpc3QucmVtb3ZlKGYuY29uZmlnLnN1Y2Nlc3NDbGFzcyksdC5jbGFzc0xpc3QuYWRkKGYuY29uZmlnLmVycm9yQ2xhc3MpKSxuJiYobi5pbm5lckhUTUw9ZS5lcnJvcnMuam9pbigiPGJyLz4iKSxuLnN0eWxlLmRpc3BsYXk9bi5wcmlzdGluZURpc3BsYXl8fCIiKX1mdW5jdGlvbiBoKGUpe3ZhciByPWZ1bmN0aW9uKGUpe3ZhciByPW0oZSksdD1yWzBdLG49clsxXTtyZXR1cm4gdCYmKHQuY2xhc3NMaXN0LnJlbW92ZShmLmNvbmZpZy5lcnJvckNsYXNzKSx0LmNsYXNzTGlzdC5yZW1vdmUoZi5jb25maWcuc3VjY2Vzc0NsYXNzKSksbiYmKG4uaW5uZXJIVE1MPSIiLG4uc3R5bGUuZGlzcGxheT0ibm9uZSIpLHJ9KGUpWzBdO3ImJnIuY2xhc3NMaXN0LmFkZChmLmNvbmZpZy5zdWNjZXNzQ2xhc3MpfXJldHVybiBmdW5jdGlvbihlLHIsdCl7ZS5zZXRBdHRyaWJ1dGUoIm5vdmFsaWRhdGUiLCJ0cnVlIiksZi5mb3JtPWUsZi5jb25maWc9ZnVuY3Rpb24oZSxyKXtmb3IodmFyIHQgaW4gcil0IGluIGV8fChlW3RdPXJbdF0pO3JldHVybiBlfShyfHx7fSxuKSxmLmxpdmU9ISghMT09PXQpLGYuZmllbGRzPUFycmF5LmZyb20oZS5xdWVyeVNlbGVjdG9yQWxsKCJpbnB1dDpub3QoW3R5cGVePWhpZGRlbl0pOm5vdChbdHlwZV49c3VibWl0XSksIHNlbGVjdCwgdGV4dGFyZWEiKSkubWFwKGZ1bmN0aW9uKGUpe3ZhciByPVtdLHQ9e30sbj17fTtyZXR1cm5bXS5mb3JFYWNoLmNhbGwoZS5hdHRyaWJ1dGVzLChmdW5jdGlvbihlKXtpZigvXmRhdGEtcHJpc3RpbmUtLy50ZXN0KGUubmFtZSkpe3ZhciBzPWUubmFtZS5zdWJzdHIoMTQpLG89cy5tYXRjaChhKTtpZihudWxsIT09byl7dmFyIGw9dm9pZCAwPT09b1sxXT8iZW4iOm9bMV07cmV0dXJuIG4uaGFzT3duUHJvcGVydHkobCl8fChuW2xdPXt9KSx2b2lkKG5bbF1bcy5zbGljZSgwLHMubGVuZ3RoLW9bMF0ubGVuZ3RoKV09ZS52YWx1ZSl9InR5cGUiPT09cyYmKHM9ZS52YWx1ZSksYyhyLHQscyxlLnZhbHVlKX1lbHNlfmkuaW5kZXhPZihlLm5hbWUpP2Mocix0LGUubmFtZSxlLnZhbHVlKToidHlwZSI9PT1lLm5hbWUmJmMocix0LGUudmFsdWUpfSkpLHIuc29ydCgoZnVuY3Rpb24oZSxyKXtyZXR1cm4gci5wcmlvcml0eS1lLnByaW9yaXR5fSkpLGYubGl2ZSYmZS5hZGRFdmVudExpc3RlbmVyKH5bInJhZGlvIiwiY2hlY2tib3giXS5pbmRleE9mKGUuZ2V0QXR0cmlidXRlKCJ0eXBlIikpPyJjaGFuZ2UiOiJpbnB1dCIsZnVuY3Rpb24oZSl7Zi52YWxpZGF0ZShlLnRhcmdldCl9LmJpbmQoZikpLGUucHJpc3RpbmU9e2lucHV0OmUsdmFsaWRhdG9yczpyLHBhcmFtczp0LG1lc3NhZ2VzOm4sc2VsZjpmfX0uYmluZChmKSl9KHQscyx1KSxmLnZhbGlkYXRlPWZ1bmN0aW9uKGUscil7cj1lJiYhMD09PXJ8fCEwPT09ZTt2YXIgdD1mLmZpZWxkczshMCE9PWUmJiExIT09ZSYmKGUgaW5zdGFuY2VvZiBIVE1MRWxlbWVudD90PVtlLnByaXN0aW5lXTooZSBpbnN0YW5jZW9mIE5vZGVMaXN0fHxlIGluc3RhbmNlb2Yod2luZG93LiR8fEFycmF5KXx8ZSBpbnN0YW5jZW9mIEFycmF5KSYmKHQ9QXJyYXkuZnJvbShlKS5tYXAoKGZ1bmN0aW9uKGUpe3JldHVybiBlLnByaXN0aW5lfSkpKSk7Zm9yKHZhciBuPSEwLGk9MDt0W2ldO2krKyl7dmFyIHM9dFtpXTtwKHMpPyFyJiZoKHMpOihuPSExLCFyJiZkKHMpKX1yZXR1cm4gbn0sZi5nZXRFcnJvcnM9ZnVuY3Rpb24oZSl7aWYoIWUpe2Zvcih2YXIgcj1bXSx0PTA7dDxmLmZpZWxkcy5sZW5ndGg7dCsrKXt2YXIgbj1mLmZpZWxkc1t0XTtuLmVycm9ycy5sZW5ndGgmJnIucHVzaCh7aW5wdXQ6bi5pbnB1dCxlcnJvcnM6bi5lcnJvcnN9KX1yZXR1cm4gcn1yZXR1cm4gZS50YWdOYW1lJiYic2VsZWN0Ij09PWUudGFnTmFtZS50b0xvd2VyQ2FzZSgpP2UucHJpc3RpbmUuZXJyb3JzOmUubGVuZ3RoP2VbMF0ucHJpc3RpbmUuZXJyb3JzOmUucHJpc3RpbmUuZXJyb3JzfSxmLmFkZFZhbGlkYXRvcj1mdW5jdGlvbihlLHIsdCxuLGkpe2UgaW5zdGFuY2VvZiBIVE1MRWxlbWVudD8oZS5wcmlzdGluZS52YWxpZGF0b3JzLnB1c2goe2ZuOnIsbXNnOnQscHJpb3JpdHk6bixoYWx0Oml9KSxlLnByaXN0aW5lLnZhbGlkYXRvcnMuc29ydCgoZnVuY3Rpb24oZSxyKXtyZXR1cm4gci5wcmlvcml0eS1lLnByaW9yaXR5fSkpKTpjb25zb2xlLndhcm4oIlRoZSBwYXJhbWV0ZXIgZWxlbSBtdXN0IGJlIGEgZG9tIGVsZW1lbnQiKX0sZi5hZGRFcnJvcj1mdW5jdGlvbihlLHIpeyhlPWUubGVuZ3RoP2VbMF06ZSkucHJpc3RpbmUuZXJyb3JzLnB1c2gociksZChlLnByaXN0aW5lKX0sZi5yZXNldD1mdW5jdGlvbigpe2Zvcih2YXIgZT0wO2YuZmllbGRzW2VdO2UrKylmLmZpZWxkc1tlXS5lcnJvckVsZW1lbnRzPW51bGw7QXJyYXkuZnJvbShmLmZvcm0ucXVlcnlTZWxlY3RvckFsbCgiLnByaXN0aW5lLWVycm9yIikpLm1hcCgoZnVuY3Rpb24oZSl7ZS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGUpfSkpLEFycmF5LmZyb20oZi5mb3JtLnF1ZXJ5U2VsZWN0b3JBbGwoIi4iK2YuY29uZmlnLmNsYXNzVG8pKS5tYXAoKGZ1bmN0aW9uKGUpe2UuY2xhc3NMaXN0LnJlbW92ZShmLmNvbmZpZy5zdWNjZXNzQ2xhc3MpLGUuY2xhc3NMaXN0LnJlbW92ZShmLmNvbmZpZy5lcnJvckNsYXNzKX0pKX0sZi5kZXN0cm95PWZ1bmN0aW9uKCl7Zi5yZXNldCgpLGYuZmllbGRzLmZvckVhY2goKGZ1bmN0aW9uKGUpe2RlbGV0ZSBlLmlucHV0LnByaXN0aW5lfSkpLGYuZmllbGRzPVtdfSxmLnNldEdsb2JhbENvbmZpZz1mdW5jdGlvbihlKXtuPWV9LGZ9cmV0dXJuIHUoInRleHQiLHtmbjpmdW5jdGlvbihlKXtyZXR1cm4hMH0scHJpb3JpdHk6MH0pLHUoInJlcXVpcmVkIix7Zm46ZnVuY3Rpb24oZSl7cmV0dXJuInJhZGlvIj09PXRoaXMudHlwZXx8ImNoZWNrYm94Ij09PXRoaXMudHlwZT90KHRoaXMpOnZvaWQgMCE9PWUmJiIiIT09ZX0scHJpb3JpdHk6OTksaGFsdDohMH0pLHUoImVtYWlsIix7Zm46ZnVuY3Rpb24oZSl7cmV0dXJuIWV8fHMudGVzdChlKX19KSx1KCJudW1iZXIiLHtmbjpmdW5jdGlvbihlKXtyZXR1cm4hZXx8IWlzTmFOKHBhcnNlRmxvYXQoZSkpfSxwcmlvcml0eToyfSksdSgiaW50ZWdlciIse2ZuOmZ1bmN0aW9uKGUpe3JldHVybiFlfHwvXlxkKyQvLnRlc3QoZSl9fSksdSgibWlubGVuZ3RoIix7Zm46ZnVuY3Rpb24oZSxyKXtyZXR1cm4hZXx8ZS5sZW5ndGg+PXBhcnNlSW50KHIpfX0pLHUoIm1heGxlbmd0aCIse2ZuOmZ1bmN0aW9uKGUscil7cmV0dXJuIWV8fGUubGVuZ3RoPD1wYXJzZUludChyKX19KSx1KCJtaW4iLHtmbjpmdW5jdGlvbihlLHIpe3JldHVybiFlfHwoImNoZWNrYm94Ij09PXRoaXMudHlwZT90KHRoaXMpPj1wYXJzZUludChyKTpwYXJzZUZsb2F0KGUpPj1wYXJzZUZsb2F0KHIpKX19KSx1KCJtYXgiLHtmbjpmdW5jdGlvbihlLHIpe3JldHVybiFlfHwoImNoZWNrYm94Ij09PXRoaXMudHlwZT90KHRoaXMpPD1wYXJzZUludChyKTpwYXJzZUZsb2F0KGUpPD1wYXJzZUZsb2F0KHIpKX19KSx1KCJwYXR0ZXJuIix7Zm46ZnVuY3Rpb24oZSxyKXt2YXIgdD1yLm1hdGNoKG5ldyBSZWdFeHAoIl4vKC4qPykvKFtnaW15XSopJCIpKTtyZXR1cm4hZXx8bmV3IFJlZ0V4cCh0WzFdLHRbMl0pLnRlc3QoZSl9fSksdSgiZXF1YWxzIix7Zm46ZnVuY3Rpb24oZSxyKXt2YXIgdD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKHIpO3JldHVybiB0JiYoIWUmJiF0LnZhbHVlfHx0LnZhbHVlPT09ZSl9fSksZi5hZGRWYWxpZGF0b3I9ZnVuY3Rpb24oZSxyLHQsbixpKXt1KGUse2ZuOnIsbXNnOnQscHJpb3JpdHk6bixoYWx0Oml9KX0sZi5hZGRNZXNzYWdlcz1mdW5jdGlvbihyLHQpe3ZhciBuPWUuaGFzT3duUHJvcGVydHkocik\/ZVtyXTplW3JdPXt9O09iamVjdC5rZXlzKHQpLmZvckVhY2goKGZ1bmN0aW9uKGUscil7bltlXT10W2VdfSkpfSxmLnNldExvY2FsZT1mdW5jdGlvbihlKXtvPWV9LGZ9KSk7CgovL0V4dGVuc2lvbgovLyBBIHZhbGlkYXRvciB0byBjaGVjayBpZiB0aGUgaW5wdXQgdmFsdWUgaXMgd2l0aGluIGEgc3BlY2lmaWVkIHJhbmdlCi8vIFRoZSBnbG9iYWwgdmFsaWRhdG9yIG11c3QgYmUgYWRkZWQgYmVmb3JlIGNyZWF0aW5nIHRoZSBwcmlzdGluZSBpbnN0YW5jZQoKLy8gUHJpc3RpbmUuYWRkVmFsaWRhdG9yKCJwaG9uZSIsIGZ1bmN0aW9uKHBob25lKSB7CgovLyAJdmFyIFZhbGlkQXJlYUNvZGVzID0gWwovLyAJCTQzOCw1MTQsMjYzLDQ1MCw1NzksODE5LDI0OSw3MDUsMjI2LAovLyAJCTUxOSwyODksMzY1LDkwNSw0MTYsNDM3LDY0NywzNDMsCi8vIAkJNjEzLDcwOSw4NzMsNDE4LDU4MSw1MDYsOTAyCi8vIAldOwoKLy8gCXBob25lID0gcGhvbmUucmVwbGFjZSgvW14wLTldKy9naSwgJycpOwovLyAJaWYodHlwZW9mIGVtYWlsSGFuZGxlciE9J3VuZGVmaW5lZCcgJiYgdGhpcy5oYXNDbGFzcygncmVxdWlyZWQnKSkgewovLyAJCWVtYWlsSGFuZGxlci5waG9uZU1hbmRhdG9yeT10cnVlOwovLyAJfQovLyAJaWYoIHBob25lWzBdID09ICcxJyApewovLyAJCXBob25lID0gcGhvbmUuc3Vic3RyaW5nKCAxICk7Ci8vIAl9CgovLyAJdmFyIGFyZWFDb2RlID0gcGFyc2VJbnQoIHBob25lLnN1YnN0cmluZygwLDMpICk7CgovLyAJYXhpb3MuZ2V0KCdodHRwczovL2F1dG9hdWJhaW5lLmNvbS9zZXJ2aWNlcy92YWxpZGF0ZVBob25lTnVtYmVyLnBocCcsewovLyAJCXRpbWVvdXQ6MjAwMCwKLy8gCQlkYXRhVHlwZTogJ2pzb24nLAovLyAJCXBhcmFtczoge3Bob25lOiBwaG9uZX0sCi8vIAkJcmVzcG9uc2VUeXBlOiAnanNvbicKLy8gCX0pCi8vIAkudGhlbihmdW5jdGlvbihyZXMpIHsKCi8vIAkJaWYgKHR5cGVvZiByZXMuaXNPayAhPT0gJ3VuZGVmaW5lZCcpewovLyAJCQlpZiAocmVzLnBob25lTnVtYmVySXNWYWxpZCA9PT0gZmFsc2UpIHsKLy8gCQkJCS8vY29uc29sZS5sb2coJ3Bob25lICcrcGhvbmUrJyBpcyBpbnZhbGlkJyk7Ci8vIAkJCQlpZih0eXBlb2YgZW1haWxIYW5kbGVyIT0ndW5kZWZpbmVkJyAmJiBlbWFpbEhhbmRsZXIucGhvbmVNYW5kYXRvcnkgKSB7Ci8vIAkJCQkJZW1haWxIYW5kbGVyLnBob25lVmFsaWRhdGlvbkF0dGVtcHRzKys7Ci8vIAkJCQl9Ci8vIAkJCQlyZXR1cm4gdHJ1ZTsKLy8gCQkJfQovLyAJCQl9IGVsc2UgewovLyAJCQkvL3ZhbGlkYXRlIGFyZWFjb2RlIGF0IGxlYXN0Ci8vIAkJCWlmKCB0eXBlb2YgVmFsaWRBcmVhQ29kZXMuaW5kZXhPZiAhPSAndW5kZWZpbmVkJyAmJglWYWxpZEFyZWFDb2Rlcy5pbmRleE9mKCBhcmVhQ29kZSApID09IC0xICl7Ci8vIAkJCQlyZXR1cm4gZmFsc2U7Ci8vIAkJCX0KLy8gCQl9CgovLyAJfSkKLy8gCS5jYXRjaChmdW5jdGlvbihlcnJvcikgewovLyAJCS8vIHZhbGlkYXRlIGFyZWFjb2RlIGF0IGxlYXN0Ci8vIAkJaWYoIHR5cGVvZiBWYWxpZEFyZWFDb2Rlcy5pbmRleE9mICE9ICd1bmRlZmluZWQnICYmCVZhbGlkQXJlYUNvZGVzLmluZGV4T2YoIGFyZWFDb2RlICkgPT0gLTEgKXsKLy8gCQlpZih0eXBlb2YgZW1haWxIYW5kbGVyIT0ndW5kZWZpbmVkJwkmJiBlbWFpbEhhbmRsZXIucGhvbmVNYW5kYXRvcnkpIGVtYWlsSGFuZGxlci5waG9uZVZhbGlkYXRpb25BdHRlbXB0cysrOwovLyAJCQlyZXR1cm4gZmFsc2U7Ci8vIAkJfQovLyAJCS8vY29uc29sZS5sb2coInZhbGlkaXR5IHZhbGlkYXRlUGhvbmVOdW1iZXIgbmV0d29yayBlcnJvciIpOwoKLy8gCQlyZXR1cm4gZmFsc2U7Ci8vIAl9KTsKCgoKLy8gfSwgIlRoZSB2YWx1ZSAoJHswfSkgbXVzdCBiZSBiZXR3ZWVuICR7MX0gYW5kICR7Mn0iLCA1LCBmYWxzZSk7Ci8qKiAvbS9qcy92YW5pbGxhanMvZmxhdHBpY2tyLm1pbi5qcyAqKi8KLyogZmxhdHBpY2tyIHY0LjYuOSwsIEBsaWNlbnNlIE1JVCAqLwohZnVuY3Rpb24oZSx0KXsib2JqZWN0Ij09dHlwZW9mIGV4cG9ydHMmJiJ1bmRlZmluZWQiIT10eXBlb2YgbW9kdWxlP21vZHVsZS5leHBvcnRzPXQoKToiZnVuY3Rpb24iPT10eXBlb2YgZGVmaW5lJiZkZWZpbmUuYW1kP2RlZmluZSh0KTooZT0idW5kZWZpbmVkIiE9dHlwZW9mIGdsb2JhbFRoaXM\/Z2xvYmFsVGhpczplfHxzZWxmKS5mbGF0cGlja3I9dCgpfSh0aGlzLChmdW5jdGlvbigpeyJ1c2Ugc3RyaWN0Ijt2YXIgZT1mdW5jdGlvbigpe3JldHVybihlPU9iamVjdC5hc3NpZ258fGZ1bmN0aW9uKGUpe2Zvcih2YXIgdCxuPTEsYT1hcmd1bWVudHMubGVuZ3RoO248YTtuKyspZm9yKHZhciBpIGluIHQ9YXJndW1lbnRzW25dKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LGkpJiYoZVtpXT10W2ldKTtyZXR1cm4gZX0pLmFwcGx5KHRoaXMsYXJndW1lbnRzKX07ZnVuY3Rpb24gdCgpe2Zvcih2YXIgZT0wLHQ9MCxuPWFyZ3VtZW50cy5sZW5ndGg7dDxuO3QrKyllKz1hcmd1bWVudHNbdF0ubGVuZ3RoO3ZhciBhPUFycmF5KGUpLGk9MDtmb3IodD0wO3Q8bjt0KyspZm9yKHZhciBvPWFyZ3VtZW50c1t0XSxyPTAsbD1vLmxlbmd0aDtyPGw7cisrLGkrKylhW2ldPW9bcl07cmV0dXJuIGF9dmFyIG49WyJvbkNoYW5nZSIsIm9uQ2xvc2UiLCJvbkRheUNyZWF0ZSIsIm9uRGVzdHJveSIsIm9uS2V5RG93biIsIm9uTW9udGhDaGFuZ2UiLCJvbk9wZW4iLCJvblBhcnNlQ29uZmlnIiwib25SZWFkeSIsIm9uVmFsdWVVcGRhdGUiLCJvblllYXJDaGFuZ2UiLCJvblByZUNhbGVuZGFyUG9zaXRpb24iXSxhPXtfZGlzYWJsZTpbXSxhbGxvd0lucHV0OiExLGFsbG93SW52YWxpZFByZWxvYWQ6ITEsYWx0Rm9ybWF0OiJGIGosIFkiLGFsdElucHV0OiExLGFsdElucHV0Q2xhc3M6ImZvcm0tY29udHJvbCBpbnB1dCIsYW5pbWF0ZToib2JqZWN0Ij09dHlwZW9mIHdpbmRvdyYmLTE9PT13aW5kb3cubmF2aWdhdG9yLnVzZXJBZ2VudC5pbmRleE9mKCJNU0lFIiksYXJpYURhdGVGb3JtYXQ6IkYgaiwgWSIsYXV0b0ZpbGxEZWZhdWx0VGltZTohMCxjbGlja09wZW5zOiEwLGNsb3NlT25TZWxlY3Q6ITAsY29uanVuY3Rpb246IiwgIixkYXRlRm9ybWF0OiJZLW0tZCIsZGVmYXVsdEhvdXI6MTIsZGVmYXVsdE1pbnV0ZTowLGRlZmF1bHRTZWNvbmRzOjAsZGlzYWJsZTpbXSxkaXNhYmxlTW9iaWxlOiExLGVuYWJsZVNlY29uZHM6ITEsZW5hYmxlVGltZTohMSxlcnJvckhhbmRsZXI6ZnVuY3Rpb24oZSl7cmV0dXJuInVuZGVmaW5lZCIhPXR5cGVvZiBjb25zb2xlJiZjb25zb2xlLndhcm4oZSl9LGdldFdlZWs6ZnVuY3Rpb24oZSl7dmFyIHQ9bmV3IERhdGUoZS5nZXRUaW1lKCkpO3Quc2V0SG91cnMoMCwwLDAsMCksdC5zZXREYXRlKHQuZ2V0RGF0ZSgpKzMtKHQuZ2V0RGF5KCkrNiklNyk7dmFyIG49bmV3IERhdGUodC5nZXRGdWxsWWVhcigpLDAsNCk7cmV0dXJuIDErTWF0aC5yb3VuZCgoKHQuZ2V0VGltZSgpLW4uZ2V0VGltZSgpKS84NjRlNS0zKyhuLmdldERheSgpKzYpJTcpLzcpfSxob3VySW5jcmVtZW50OjEsaWdub3JlZEZvY3VzRWxlbWVudHM6W10saW5saW5lOiExLGxvY2FsZToiZGVmYXVsdCIsbWludXRlSW5jcmVtZW50OjUsbW9kZToic2luZ2xlIixtb250aFNlbGVjdG9yVHlwZToiZHJvcGRvd24iLG5leHRBcnJvdzoiPHN2ZyB2ZXJzaW9uPScxLjEnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgeG1sbnM6eGxpbms9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsnIHZpZXdCb3g9JzAgMCAxNyAxNyc+PGc+PC9nPjxwYXRoIGQ9J00xMy4yMDcgOC40NzJsLTcuODU0IDcuODU0LTAuNzA3LTAuNzA3IDcuMTQ2LTcuMTQ2LTcuMTQ2LTcuMTQ4IDAuNzA3LTAuNzA3IDcuODU0IDcuODU0eicgLz48L3N2Zz4iLG5vQ2FsZW5kYXI6ITEsbm93Om5ldyBEYXRlLG9uQ2hhbmdlOltdLG9uQ2xvc2U6W10sb25EYXlDcmVhdGU6W10sb25EZXN0cm95OltdLG9uS2V5RG93bjpbXSxvbk1vbnRoQ2hhbmdlOltdLG9uT3BlbjpbXSxvblBhcnNlQ29uZmlnOltdLG9uUmVhZHk6W10sb25WYWx1ZVVwZGF0ZTpbXSxvblllYXJDaGFuZ2U6W10sb25QcmVDYWxlbmRhclBvc2l0aW9uOltdLHBsdWdpbnM6W10scG9zaXRpb246ImF1dG8iLHBvc2l0aW9uRWxlbWVudDp2b2lkIDAscHJldkFycm93OiI8c3ZnIHZlcnNpb249JzEuMScgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB4bWxuczp4bGluaz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluaycgdmlld0JveD0nMCAwIDE3IDE3Jz48Zz48L2c+PHBhdGggZD0nTTUuMjA3IDguNDcxbDcuMTQ2IDcuMTQ3LTAuNzA3IDAuNzA3LTcuODUzLTcuODU0IDcuODU0LTcuODUzIDAuNzA3IDAuNzA3LTcuMTQ3IDcuMTQ2eicgLz48L3N2Zz4iLHNob3J0aGFuZEN1cnJlbnRNb250aDohMSxzaG93TW9udGhzOjEsc3RhdGljOiExLHRpbWVfMjRocjohMSx3ZWVrTnVtYmVyczohMSx3cmFwOiExfSxpPXt3ZWVrZGF5czp7c2hvcnRoYW5kOlsiU3VuIiwiTW9uIiwiVHVlIiwiV2VkIiwiVGh1IiwiRnJpIiwiU2F0Il0sbG9uZ2hhbmQ6WyJTdW5kYXkiLCJNb25kYXkiLCJUdWVzZGF5IiwiV2VkbmVzZGF5IiwiVGh1cnNkYXkiLCJGcmlkYXkiLCJTYXR1cmRheSJdfSxtb250aHM6e3Nob3J0aGFuZDpbIkphbiIsIkZlYiIsIk1hciIsIkFwciIsIk1heSIsIkp1biIsIkp1bCIsIkF1ZyIsIlNlcCIsIk9jdCIsIk5vdiIsIkRlYyJdLGxvbmdoYW5kOlsiSmFudWFyeSIsIkZlYnJ1YXJ5IiwiTWFyY2giLCJBcHJpbCIsIk1heSIsIkp1bmUiLCJKdWx5IiwiQXVndXN0IiwiU2VwdGVtYmVyIiwiT2N0b2JlciIsIk5vdmVtYmVyIiwiRGVjZW1iZXIiXX0sZGF5c0luTW9udGg6WzMxLDI4LDMxLDMwLDMxLDMwLDMxLDMxLDMwLDMxLDMwLDMxXSxmaXJzdERheU9mV2VlazowLG9yZGluYWw6ZnVuY3Rpb24oZSl7dmFyIHQ9ZSUxMDA7aWYodD4zJiZ0PDIxKXJldHVybiJ0aCI7c3dpdGNoKHQlMTApe2Nhc2UgMTpyZXR1cm4ic3QiO2Nhc2UgMjpyZXR1cm4ibmQiO2Nhc2UgMzpyZXR1cm4icmQiO2RlZmF1bHQ6cmV0dXJuInRoIn19LHJhbmdlU2VwYXJhdG9yOiIgdG8gIix3ZWVrQWJicmV2aWF0aW9uOiJXayIsc2Nyb2xsVGl0bGU6IlNjcm9sbCB0byBpbmNyZW1lbnQiLHRvZ2dsZVRpdGxlOiJDbGljayB0byB0b2dnbGUiLGFtUE06WyJBTSIsIlBNIl0seWVhckFyaWFMYWJlbDoiWWVhciIsbW9udGhBcmlhTGFiZWw6Ik1vbnRoIixob3VyQXJpYUxhYmVsOiJIb3VyIixtaW51dGVBcmlhTGFiZWw6Ik1pbnV0ZSIsdGltZV8yNGhyOiExfSxvPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIHZvaWQgMD09PXQmJih0PTIpLCgiMDAwIitlKS5zbGljZSgtMSp0KX0scj1mdW5jdGlvbihlKXtyZXR1cm4hMD09PWU\/MTowfTtmdW5jdGlvbiBsKGUsdCl7dmFyIG47cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGE9dGhpcztjbGVhclRpbWVvdXQobiksbj1zZXRUaW1lb3V0KChmdW5jdGlvbigpe3JldHVybiBlLmFwcGx5KGEsYXJndW1lbnRzKX0pLHQpfX12YXIgYz1mdW5jdGlvbihlKXtyZXR1cm4gZSBpbnN0YW5jZW9mIEFycmF5P2U6W2VdfTtmdW5jdGlvbiBkKGUsdCxuKXtpZighMD09PW4pcmV0dXJuIGUuY2xhc3NMaXN0LmFkZCh0KTtlLmNsYXNzTGlzdC5yZW1vdmUodCl9ZnVuY3Rpb24gcyhlLHQsbil7dmFyIGE9d2luZG93LmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoZSk7cmV0dXJuIHQ9dHx8IiIsbj1ufHwiIixhLmNsYXNzTmFtZT10LHZvaWQgMCE9PW4mJihhLnRleHRDb250ZW50PW4pLGF9ZnVuY3Rpb24gdShlKXtmb3IoO2UuZmlyc3RDaGlsZDspZS5yZW1vdmVDaGlsZChlLmZpcnN0Q2hpbGQpfWZ1bmN0aW9uIGYoZSx0KXtyZXR1cm4gdChlKT9lOmUucGFyZW50Tm9kZT9mKGUucGFyZW50Tm9kZSx0KTp2b2lkIDB9ZnVuY3Rpb24gbShlLHQpe3ZhciBuPXMoImRpdiIsIm51bUlucHV0V3JhcHBlciIpLGE9cygiaW5wdXQiLCJudW1JbnB1dCAiK2UpLGk9cygic3BhbiIsImFycm93VXAiKSxvPXMoInNwYW4iLCJhcnJvd0Rvd24iKTtpZigtMT09PW5hdmlnYXRvci51c2VyQWdlbnQuaW5kZXhPZigiTVNJRSA5LjAiKT9hLnR5cGU9Im51bWJlciI6KGEudHlwZT0idGV4dCIsYS5wYXR0ZXJuPSJcXGQqIiksdm9pZCAwIT09dClmb3IodmFyIHIgaW4gdClhLnNldEF0dHJpYnV0ZShyLHRbcl0pO3JldHVybiBuLmFwcGVuZENoaWxkKGEpLG4uYXBwZW5kQ2hpbGQoaSksbi5hcHBlbmRDaGlsZChvKSxufWZ1bmN0aW9uIGcoZSl7dHJ5e3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBlLmNvbXBvc2VkUGF0aD9lLmNvbXBvc2VkUGF0aCgpWzBdOmUudGFyZ2V0fWNhdGNoKHQpe3JldHVybiBlLnRhcmdldH19dmFyIHA9ZnVuY3Rpb24oKXt9LGg9ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBuLm1vbnRoc1t0PyJzaG9ydGhhbmQiOiJsb25naGFuZCJdW2VdfSx2PXtEOnAsRjpmdW5jdGlvbihlLHQsbil7ZS5zZXRNb250aChuLm1vbnRocy5sb25naGFuZC5pbmRleE9mKHQpKX0sRzpmdW5jdGlvbihlLHQpe2Uuc2V0SG91cnMocGFyc2VGbG9hdCh0KSl9LEg6ZnVuY3Rpb24oZSx0KXtlLnNldEhvdXJzKHBhcnNlRmxvYXQodCkpfSxKOmZ1bmN0aW9uKGUsdCl7ZS5zZXREYXRlKHBhcnNlRmxvYXQodCkpfSxLOmZ1bmN0aW9uKGUsdCxuKXtlLnNldEhvdXJzKGUuZ2V0SG91cnMoKSUxMisxMipyKG5ldyBSZWdFeHAobi5hbVBNWzFdLCJpIikudGVzdCh0KSkpfSxNOmZ1bmN0aW9uKGUsdCxuKXtlLnNldE1vbnRoKG4ubW9udGhzLnNob3J0aGFuZC5pbmRleE9mKHQpKX0sUzpmdW5jdGlvbihlLHQpe2Uuc2V0U2Vjb25kcyhwYXJzZUZsb2F0KHQpKX0sVTpmdW5jdGlvbihlLHQpe3JldHVybiBuZXcgRGF0ZSgxZTMqcGFyc2VGbG9hdCh0KSl9LFc6ZnVuY3Rpb24oZSx0LG4pe3ZhciBhPXBhcnNlSW50KHQpLGk9bmV3IERhdGUoZS5nZXRGdWxsWWVhcigpLDAsMis3KihhLTEpLDAsMCwwLDApO3JldHVybiBpLnNldERhdGUoaS5nZXREYXRlKCktaS5nZXREYXkoKStuLmZpcnN0RGF5T2ZXZWVrKSxpfSxZOmZ1bmN0aW9uKGUsdCl7ZS5zZXRGdWxsWWVhcihwYXJzZUZsb2F0KHQpKX0sWjpmdW5jdGlvbihlLHQpe3JldHVybiBuZXcgRGF0ZSh0KX0sZDpmdW5jdGlvbihlLHQpe2Uuc2V0RGF0ZShwYXJzZUZsb2F0KHQpKX0saDpmdW5jdGlvbihlLHQpe2Uuc2V0SG91cnMocGFyc2VGbG9hdCh0KSl9LGk6ZnVuY3Rpb24oZSx0KXtlLnNldE1pbnV0ZXMocGFyc2VGbG9hdCh0KSl9LGo6ZnVuY3Rpb24oZSx0KXtlLnNldERhdGUocGFyc2VGbG9hdCh0KSl9LGw6cCxtOmZ1bmN0aW9uKGUsdCl7ZS5zZXRNb250aChwYXJzZUZsb2F0KHQpLTEpfSxuOmZ1bmN0aW9uKGUsdCl7ZS5zZXRNb250aChwYXJzZUZsb2F0KHQpLTEpfSxzOmZ1bmN0aW9uKGUsdCl7ZS5zZXRTZWNvbmRzKHBhcnNlRmxvYXQodCkpfSx1OmZ1bmN0aW9uKGUsdCl7cmV0dXJuIG5ldyBEYXRlKHBhcnNlRmxvYXQodCkpfSx3OnAseTpmdW5jdGlvbihlLHQpe2Uuc2V0RnVsbFllYXIoMmUzK3BhcnNlRmxvYXQodCkpfX0sRD17RDoiKFxcdyspIixGOiIoXFx3KykiLEc6IihcXGRcXGR8XFxkKSIsSDoiKFxcZFxcZHxcXGQpIixKOiIoXFxkXFxkfFxcZClcXHcrIixLOiIiLE06IihcXHcrKSIsUzoiKFxcZFxcZHxcXGQpIixVOiIoLispIixXOiIoXFxkXFxkfFxcZCkiLFk6IihcXGR7NH0pIixaOiIoLispIixkOiIoXFxkXFxkfFxcZCkiLGg6IihcXGRcXGR8XFxkKSIsaToiKFxcZFxcZHxcXGQpIixqOiIoXFxkXFxkfFxcZCkiLGw6IihcXHcrKSIsbToiKFxcZFxcZHxcXGQpIixuOiIoXFxkXFxkfFxcZCkiLHM6IihcXGRcXGR8XFxkKSIsdToiKC4rKSIsdzoiKFxcZFxcZHxcXGQpIix5OiIoXFxkezJ9KSJ9LHc9e1o6ZnVuY3Rpb24oZSl7cmV0dXJuIGUudG9JU09TdHJpbmcoKX0sRDpmdW5jdGlvbihlLHQsbil7cmV0dXJuIHQud2Vla2RheXMuc2hvcnRoYW5kW3cudyhlLHQsbildfSxGOmZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gaCh3Lm4oZSx0LG4pLTEsITEsdCl9LEc6ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBvKHcuaChlLHQsbikpfSxIOmZ1bmN0aW9uKGUpe3JldHVybiBvKGUuZ2V0SG91cnMoKSl9LEo6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdm9pZCAwIT09dC5vcmRpbmFsP2UuZ2V0RGF0ZSgpK3Qub3JkaW5hbChlLmdldERhdGUoKSk6ZS5nZXREYXRlKCl9LEs6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdC5hbVBNW3IoZS5nZXRIb3VycygpPjExKV19LE06ZnVuY3Rpb24oZSx0KXtyZXR1cm4gaChlLmdldE1vbnRoKCksITAsdCl9LFM6ZnVuY3Rpb24oZSl7cmV0dXJuIG8oZS5nZXRTZWNvbmRzKCkpfSxVOmZ1bmN0aW9uKGUpe3JldHVybiBlLmdldFRpbWUoKS8xZTN9LFc6ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBuLmdldFdlZWsoZSl9LFk6ZnVuY3Rpb24oZSl7cmV0dXJuIG8oZS5nZXRGdWxsWWVhcigpLDQpfSxkOmZ1bmN0aW9uKGUpe3JldHVybiBvKGUuZ2V0RGF0ZSgpKX0saDpmdW5jdGlvbihlKXtyZXR1cm4gZS5nZXRIb3VycygpJTEyP2UuZ2V0SG91cnMoKSUxMjoxMn0saTpmdW5jdGlvbihlKXtyZXR1cm4gbyhlLmdldE1pbnV0ZXMoKSl9LGo6ZnVuY3Rpb24oZSl7cmV0dXJuIGUuZ2V0RGF0ZSgpfSxsOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQud2Vla2RheXMubG9uZ2hhbmRbZS5nZXREYXkoKV19LG06ZnVuY3Rpb24oZSl7cmV0dXJuIG8oZS5nZXRNb250aCgpKzEpfSxuOmZ1bmN0aW9uKGUpe3JldHVybiBlLmdldE1vbnRoKCkrMX0sczpmdW5jdGlvbihlKXtyZXR1cm4gZS5nZXRTZWNvbmRzKCl9LHU6ZnVuY3Rpb24oZSl7cmV0dXJuIGUuZ2V0VGltZSgpfSx3OmZ1bmN0aW9uKGUpe3JldHVybiBlLmdldERheSgpfSx5OmZ1bmN0aW9uKGUpe3JldHVybiBTdHJpbmcoZS5nZXRGdWxsWWVhcigpKS5zdWJzdHJpbmcoMil9fSxiPWZ1bmN0aW9uKGUpe3ZhciB0PWUuY29uZmlnLG49dm9pZCAwPT09dD9hOnQsbz1lLmwxMG4scj12b2lkIDA9PT1vP2k6byxsPWUuaXNNb2JpbGUsYz12b2lkIDAhPT1sJiZsO3JldHVybiBmdW5jdGlvbihlLHQsYSl7dmFyIGk9YXx8cjtyZXR1cm4gdm9pZCAwPT09bi5mb3JtYXREYXRlfHxjP3Quc3BsaXQoIiIpLm1hcCgoZnVuY3Rpb24odCxhLG8pe3JldHVybiB3W3RdJiYiXFwiIT09b1thLTFdP3dbdF0oZSxpLG4pOiJcXCIhPT10P3Q6IiJ9KSkuam9pbigiIik6bi5mb3JtYXREYXRlKGUsdCxpKX19LEM9ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5jb25maWcsbj12b2lkIDA9PT10P2E6dCxvPWUubDEwbixyPXZvaWQgMD09PW8\/aTpvO3JldHVybiBmdW5jdGlvbihlLHQsaSxvKXtpZigwPT09ZXx8ZSl7dmFyIGwsYz1vfHxyLGQ9ZTtpZihlIGluc3RhbmNlb2YgRGF0ZSlsPW5ldyBEYXRlKGUuZ2V0VGltZSgpKTtlbHNlIGlmKCJzdHJpbmciIT10eXBlb2YgZSYmdm9pZCAwIT09ZS50b0ZpeGVkKWw9bmV3IERhdGUoZSk7ZWxzZSBpZigic3RyaW5nIj09dHlwZW9mIGUpe3ZhciBzPXR8fChufHxhKS5kYXRlRm9ybWF0LHU9U3RyaW5nKGUpLnRyaW0oKTtpZigidG9kYXkiPT09dSlsPW5ldyBEYXRlLGk9ITA7ZWxzZSBpZigvWiQvLnRlc3QodSl8fC9HTVQkLy50ZXN0KHUpKWw9bmV3IERhdGUoZSk7ZWxzZSBpZihuJiZuLnBhcnNlRGF0ZSlsPW4ucGFyc2VEYXRlKGUscyk7ZWxzZXtsPW4mJm4ubm9DYWxlbmRhcj9uZXcgRGF0ZSgobmV3IERhdGUpLnNldEhvdXJzKDAsMCwwLDApKTpuZXcgRGF0ZSgobmV3IERhdGUpLmdldEZ1bGxZZWFyKCksMCwxLDAsMCwwLDApO2Zvcih2YXIgZj12b2lkIDAsbT1bXSxnPTAscD0wLGg9IiI7ZzxzLmxlbmd0aDtnKyspe3ZhciB3PXNbZ10sYj0iXFwiPT09dyxDPSJcXCI9PT1zW2ctMV18fGI7aWYoRFt3XSYmIUMpe2grPURbd107dmFyIE09bmV3IFJlZ0V4cChoKS5leGVjKGUpO00mJihmPSEwKSYmbVsiWSIhPT13PyJwdXNoIjoidW5zaGlmdCJdKHtmbjp2W3ddLHZhbDpNWysrcF19KX1lbHNlIGJ8fChoKz0iLiIpO20uZm9yRWFjaCgoZnVuY3Rpb24oZSl7dmFyIHQ9ZS5mbixuPWUudmFsO3JldHVybiBsPXQobCxuLGMpfHxsfSkpfWw9Zj9sOnZvaWQgMH19aWYobCBpbnN0YW5jZW9mIERhdGUmJiFpc05hTihsLmdldFRpbWUoKSkpcmV0dXJuITA9PT1pJiZsLnNldEhvdXJzKDAsMCwwLDApLGw7bi5lcnJvckhhbmRsZXIobmV3IEVycm9yKCJJbnZhbGlkIGRhdGUgcHJvdmlkZWQ6ICIrZCkpfX19O2Z1bmN0aW9uIE0oZSx0LG4pe3JldHVybiB2b2lkIDA9PT1uJiYobj0hMCksITEhPT1uP25ldyBEYXRlKGUuZ2V0VGltZSgpKS5zZXRIb3VycygwLDAsMCwwKS1uZXcgRGF0ZSh0LmdldFRpbWUoKSkuc2V0SG91cnMoMCwwLDAsMCk6ZS5nZXRUaW1lKCktdC5nZXRUaW1lKCl9dmFyIHk9ODY0ZTU7ZnVuY3Rpb24geChlKXt2YXIgdD1lLmRlZmF1bHRIb3VyLG49ZS5kZWZhdWx0TWludXRlLGE9ZS5kZWZhdWx0U2Vjb25kcztpZih2b2lkIDAhPT1lLm1pbkRhdGUpe3ZhciBpPWUubWluRGF0ZS5nZXRIb3VycygpLG89ZS5taW5EYXRlLmdldE1pbnV0ZXMoKSxyPWUubWluRGF0ZS5nZXRTZWNvbmRzKCk7dDxpJiYodD1pKSx0PT09aSYmbjxvJiYobj1vKSx0PT09aSYmbj09PW8mJmE8ciYmKGE9ZS5taW5EYXRlLmdldFNlY29uZHMoKSl9aWYodm9pZCAwIT09ZS5tYXhEYXRlKXt2YXIgbD1lLm1heERhdGUuZ2V0SG91cnMoKSxjPWUubWF4RGF0ZS5nZXRNaW51dGVzKCk7KHQ9TWF0aC5taW4odCxsKSk9PT1sJiYobj1NYXRoLm1pbihjLG4pKSx0PT09bCYmbj09PWMmJihhPWUubWF4RGF0ZS5nZXRTZWNvbmRzKCkpfXJldHVybntob3Vyczp0LG1pbnV0ZXM6bixzZWNvbmRzOmF9fSJmdW5jdGlvbiIhPXR5cGVvZiBPYmplY3QuYXNzaWduJiYoT2JqZWN0LmFzc2lnbj1mdW5jdGlvbihlKXtmb3IodmFyIHQ9W10sbj0xO248YXJndW1lbnRzLmxlbmd0aDtuKyspdFtuLTFdPWFyZ3VtZW50c1tuXTtpZighZSl0aHJvdyBUeXBlRXJyb3IoIkNhbm5vdCBjb252ZXJ0IHVuZGVmaW5lZCBvciBudWxsIHRvIG9iamVjdCIpO2Zvcih2YXIgYT1mdW5jdGlvbih0KXt0JiZPYmplY3Qua2V5cyh0KS5mb3JFYWNoKChmdW5jdGlvbihuKXtyZXR1cm4gZVtuXT10W25dfSkpfSxpPTAsbz10O2k8by5sZW5ndGg7aSsrKXt2YXIgcj1vW2ldO2Eocil9cmV0dXJuIGV9KTtmdW5jdGlvbiBFKHAsdil7dmFyIHc9e2NvbmZpZzplKGUoe30sYSksVC5kZWZhdWx0Q29uZmlnKSxsMTBuOml9O2Z1bmN0aW9uIEUoZSl7cmV0dXJuIGUuYmluZCh3KX1mdW5jdGlvbiBrKCl7dmFyIGU9dy5jb25maWc7ITE9PT1lLndlZWtOdW1iZXJzJiYxPT09ZS5zaG93TW9udGhzfHwhMCE9PWUubm9DYWxlbmRhciYmd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSgoZnVuY3Rpb24oKXtpZih2b2lkIDAhPT13LmNhbGVuZGFyQ29udGFpbmVyJiYody5jYWxlbmRhckNvbnRhaW5lci5zdHlsZS52aXNpYmlsaXR5PSJoaWRkZW4iLHcuY2FsZW5kYXJDb250YWluZXIuc3R5bGUuZGlzcGxheT0iYmxvY2siKSx2b2lkIDAhPT13LmRheXNDb250YWluZXIpe3ZhciB0PSh3LmRheXMub2Zmc2V0V2lkdGgrMSkqZS5zaG93TW9udGhzO3cuZGF5c0NvbnRhaW5lci5zdHlsZS53aWR0aD10KyJweCIsdy5jYWxlbmRhckNvbnRhaW5lci5zdHlsZS53aWR0aD10Kyh2b2lkIDAhPT13LndlZWtXcmFwcGVyP3cud2Vla1dyYXBwZXIub2Zmc2V0V2lkdGg6MCkrInB4Iix3LmNhbGVuZGFyQ29udGFpbmVyLnN0eWxlLnJlbW92ZVByb3BlcnR5KCJ2aXNpYmlsaXR5Iiksdy5jYWxlbmRhckNvbnRhaW5lci5zdHlsZS5yZW1vdmVQcm9wZXJ0eSgiZGlzcGxheSIpfX0pKX1mdW5jdGlvbiBJKGUpe2lmKDA9PT13LnNlbGVjdGVkRGF0ZXMubGVuZ3RoKXt2YXIgdD12b2lkIDA9PT13LmNvbmZpZy5taW5EYXRlfHxNKG5ldyBEYXRlLHcuY29uZmlnLm1pbkRhdGUpPj0wP25ldyBEYXRlOm5ldyBEYXRlKHcuY29uZmlnLm1pbkRhdGUuZ2V0VGltZSgpKSxuPXgody5jb25maWcpO3Quc2V0SG91cnMobi5ob3VycyxuLm1pbnV0ZXMsbi5zZWNvbmRzLHQuZ2V0TWlsbGlzZWNvbmRzKCkpLHcuc2VsZWN0ZWREYXRlcz1bdF0sdy5sYXRlc3RTZWxlY3RlZERhdGVPYmo9dH12b2lkIDAhPT1lJiYiYmx1ciIhPT1lLnR5cGUmJmZ1bmN0aW9uKGUpe2UucHJldmVudERlZmF1bHQoKTt2YXIgdD0ia2V5ZG93biI9PT1lLnR5cGUsbj1nKGUpLGE9bjt2b2lkIDAhPT13LmFtUE0mJm49PT13LmFtUE0mJih3LmFtUE0udGV4dENvbnRlbnQ9dy5sMTBuLmFtUE1bcih3LmFtUE0udGV4dENvbnRlbnQ9PT13LmwxMG4uYW1QTVswXSldKTt2YXIgaT1wYXJzZUZsb2F0KGEuZ2V0QXR0cmlidXRlKCJtaW4iKSksbD1wYXJzZUZsb2F0KGEuZ2V0QXR0cmlidXRlKCJtYXgiKSksYz1wYXJzZUZsb2F0KGEuZ2V0QXR0cmlidXRlKCJzdGVwIikpLGQ9cGFyc2VJbnQoYS52YWx1ZSwxMCkscz1lLmRlbHRhfHwodD8zOD09PWUud2hpY2g\/MTotMTowKSx1PWQrYypzO2lmKHZvaWQgMCE9PWEudmFsdWUmJjI9PT1hLnZhbHVlLmxlbmd0aCl7dmFyIGY9YT09PXcuaG91ckVsZW1lbnQsbT1hPT09dy5taW51dGVFbGVtZW50O3U8aT8odT1sK3UrcighZikrKHIoZikmJnIoIXcuYW1QTSkpLG0mJmoodm9pZCAwLC0xLHcuaG91ckVsZW1lbnQpKTp1PmwmJih1PWE9PT13LmhvdXJFbGVtZW50P3UtbC1yKCF3LmFtUE0pOmksbSYmaih2b2lkIDAsMSx3LmhvdXJFbGVtZW50KSksdy5hbVBNJiZmJiYoMT09PWM\/dStkPT09MjM6TWF0aC5hYnModS1kKT5jKSYmKHcuYW1QTS50ZXh0Q29udGVudD13LmwxMG4uYW1QTVtyKHcuYW1QTS50ZXh0Q29udGVudD09PXcubDEwbi5hbVBNWzBdKV0pLGEudmFsdWU9byh1KX19KGUpO3ZhciBhPXcuX2lucHV0LnZhbHVlO1MoKSxiZSgpLHcuX2lucHV0LnZhbHVlIT09YSYmdy5fZGVib3VuY2VkQ2hhbmdlKCl9ZnVuY3Rpb24gUygpe2lmKHZvaWQgMCE9PXcuaG91ckVsZW1lbnQmJnZvaWQgMCE9PXcubWludXRlRWxlbWVudCl7dmFyIGUsdCxuPShwYXJzZUludCh3LmhvdXJFbGVtZW50LnZhbHVlLnNsaWNlKC0yKSwxMCl8fDApJTI0LGE9KHBhcnNlSW50KHcubWludXRlRWxlbWVudC52YWx1ZSwxMCl8fDApJTYwLGk9dm9pZCAwIT09dy5zZWNvbmRFbGVtZW50PyhwYXJzZUludCh3LnNlY29uZEVsZW1lbnQudmFsdWUsMTApfHwwKSU2MDowO3ZvaWQgMCE9PXcuYW1QTSYmKGU9bix0PXcuYW1QTS50ZXh0Q29udGVudCxuPWUlMTIrMTIqcih0PT09dy5sMTBuLmFtUE1bMV0pKTt2YXIgbz12b2lkIDAhPT13LmNvbmZpZy5taW5UaW1lfHx3LmNvbmZpZy5taW5EYXRlJiZ3Lm1pbkRhdGVIYXNUaW1lJiZ3LmxhdGVzdFNlbGVjdGVkRGF0ZU9iaiYmMD09PU0ody5sYXRlc3RTZWxlY3RlZERhdGVPYmosdy5jb25maWcubWluRGF0ZSwhMCk7aWYodm9pZCAwIT09dy5jb25maWcubWF4VGltZXx8dy5jb25maWcubWF4RGF0ZSYmdy5tYXhEYXRlSGFzVGltZSYmdy5sYXRlc3RTZWxlY3RlZERhdGVPYmomJjA9PT1NKHcubGF0ZXN0U2VsZWN0ZWREYXRlT2JqLHcuY29uZmlnLm1heERhdGUsITApKXt2YXIgbD12b2lkIDAhPT13LmNvbmZpZy5tYXhUaW1lP3cuY29uZmlnLm1heFRpbWU6dy5jb25maWcubWF4RGF0ZTsobj1NYXRoLm1pbihuLGwuZ2V0SG91cnMoKSkpPT09bC5nZXRIb3VycygpJiYoYT1NYXRoLm1pbihhLGwuZ2V0TWludXRlcygpKSksYT09PWwuZ2V0TWludXRlcygpJiYoaT1NYXRoLm1pbihpLGwuZ2V0U2Vjb25kcygpKSl9aWYobyl7dmFyIGM9dm9pZCAwIT09dy5jb25maWcubWluVGltZT93LmNvbmZpZy5taW5UaW1lOncuY29uZmlnLm1pbkRhdGU7KG49TWF0aC5tYXgobixjLmdldEhvdXJzKCkpKT09PWMuZ2V0SG91cnMoKSYmYTxjLmdldE1pbnV0ZXMoKSYmKGE9Yy5nZXRNaW51dGVzKCkpLGE9PT1jLmdldE1pbnV0ZXMoKSYmKGk9TWF0aC5tYXgoaSxjLmdldFNlY29uZHMoKSkpfU8obixhLGkpfX1mdW5jdGlvbiBfKGUpe3ZhciB0PWV8fHcubGF0ZXN0U2VsZWN0ZWREYXRlT2JqO3QmJk8odC5nZXRIb3VycygpLHQuZ2V0TWludXRlcygpLHQuZ2V0U2Vjb25kcygpKX1mdW5jdGlvbiBPKGUsdCxuKXt2b2lkIDAhPT13LmxhdGVzdFNlbGVjdGVkRGF0ZU9iaiYmdy5sYXRlc3RTZWxlY3RlZERhdGVPYmouc2V0SG91cnMoZSUyNCx0LG58fDAsMCksdy5ob3VyRWxlbWVudCYmdy5taW51dGVFbGVtZW50JiYhdy5pc01vYmlsZSYmKHcuaG91ckVsZW1lbnQudmFsdWU9byh3LmNvbmZpZy50aW1lXzI0aHI\/ZTooMTIrZSklMTIrMTIqcihlJTEyPT0wKSksdy5taW51dGVFbGVtZW50LnZhbHVlPW8odCksdm9pZCAwIT09dy5hbVBNJiYody5hbVBNLnRleHRDb250ZW50PXcubDEwbi5hbVBNW3IoZT49MTIpXSksdm9pZCAwIT09dy5zZWNvbmRFbGVtZW50JiYody5zZWNvbmRFbGVtZW50LnZhbHVlPW8obikpKX1mdW5jdGlvbiBGKGUpe3ZhciB0PWcoZSksbj1wYXJzZUludCh0LnZhbHVlKSsoZS5kZWx0YXx8MCk7KG4vMWUzPjF8fCJFbnRlciI9PT1lLmtleSYmIS9bXlxkXS8udGVzdChuLnRvU3RyaW5nKCkpKSYmUShuKX1mdW5jdGlvbiBBKGUsdCxuLGEpe3JldHVybiB0IGluc3RhbmNlb2YgQXJyYXk\/dC5mb3JFYWNoKChmdW5jdGlvbih0KXtyZXR1cm4gQShlLHQsbixhKX0pKTplIGluc3RhbmNlb2YgQXJyYXk\/ZS5mb3JFYWNoKChmdW5jdGlvbihlKXtyZXR1cm4gQShlLHQsbixhKX0pKTooZS5hZGRFdmVudExpc3RlbmVyKHQsbixhKSx2b2lkIHcuX2hhbmRsZXJzLnB1c2goe3JlbW92ZTpmdW5jdGlvbigpe3JldHVybiBlLnJlbW92ZUV2ZW50TGlzdGVuZXIodCxuKX19KSl9ZnVuY3Rpb24gTigpe3BlKCJvbkNoYW5nZSIpfWZ1bmN0aW9uIFAoZSx0KXt2YXIgbj12b2lkIDAhPT1lP3cucGFyc2VEYXRlKGUpOncubGF0ZXN0U2VsZWN0ZWREYXRlT2JqfHwody5jb25maWcubWluRGF0ZSYmdy5jb25maWcubWluRGF0ZT53Lm5vdz93LmNvbmZpZy5taW5EYXRlOncuY29uZmlnLm1heERhdGUmJncuY29uZmlnLm1heERhdGU8dy5ub3c\/dy5jb25maWcubWF4RGF0ZTp3Lm5vdyksYT13LmN1cnJlbnRZZWFyLGk9dy5jdXJyZW50TW9udGg7dHJ5e3ZvaWQgMCE9PW4mJih3LmN1cnJlbnRZZWFyPW4uZ2V0RnVsbFllYXIoKSx3LmN1cnJlbnRNb250aD1uLmdldE1vbnRoKCkpfWNhdGNoKGUpe2UubWVzc2FnZT0iSW52YWxpZCBkYXRlIHN1cHBsaWVkOiAiK24sdy5jb25maWcuZXJyb3JIYW5kbGVyKGUpfXQmJncuY3VycmVudFllYXIhPT1hJiYocGUoIm9uWWVhckNoYW5nZSIpLEsoKSksIXR8fHcuY3VycmVudFllYXI9PT1hJiZ3LmN1cnJlbnRNb250aD09PWl8fHBlKCJvbk1vbnRoQ2hhbmdlIiksdy5yZWRyYXcoKX1mdW5jdGlvbiBZKGUpe3ZhciB0PWcoZSk7fnQuY2xhc3NOYW1lLmluZGV4T2YoImFycm93IikmJmooZSx0LmNsYXNzTGlzdC5jb250YWlucygiYXJyb3dVcCIpPzE6LTEpfWZ1bmN0aW9uIGooZSx0LG4pe3ZhciBhPWUmJmcoZSksaT1ufHxhJiZhLnBhcmVudE5vZGUmJmEucGFyZW50Tm9kZS5maXJzdENoaWxkLG89aGUoImluY3JlbWVudCIpO28uZGVsdGE9dCxpJiZpLmRpc3BhdGNoRXZlbnQobyl9ZnVuY3Rpb24gSChlLHQsbixhKXt2YXIgaT1YKHQsITApLG89cygic3BhbiIsImZsYXRwaWNrci1kYXkgIitlLHQuZ2V0RGF0ZSgpLnRvU3RyaW5nKCkpO3JldHVybiBvLmRhdGVPYmo9dCxvLiRpPWEsby5zZXRBdHRyaWJ1dGUoImFyaWEtbGFiZWwiLHcuZm9ybWF0RGF0ZSh0LHcuY29uZmlnLmFyaWFEYXRlRm9ybWF0KSksLTE9PT1lLmluZGV4T2YoImhpZGRlbiIpJiYwPT09TSh0LHcubm93KSYmKHcudG9kYXlEYXRlRWxlbT1vLG8uY2xhc3NMaXN0LmFkZCgidG9kYXkiKSxvLnNldEF0dHJpYnV0ZSgiYXJpYS1jdXJyZW50IiwiZGF0ZSIpKSxpPyhvLnRhYkluZGV4PS0xLHZlKHQpJiYoby5jbGFzc0xpc3QuYWRkKCJzZWxlY3RlZCIpLHcuc2VsZWN0ZWREYXRlRWxlbT1vLCJyYW5nZSI9PT13LmNvbmZpZy5tb2RlJiYoZChvLCJzdGFydFJhbmdlIix3LnNlbGVjdGVkRGF0ZXNbMF0mJjA9PT1NKHQsdy5zZWxlY3RlZERhdGVzWzBdLCEwKSksZChvLCJlbmRSYW5nZSIsdy5zZWxlY3RlZERhdGVzWzFdJiYwPT09TSh0LHcuc2VsZWN0ZWREYXRlc1sxXSwhMCkpLCJuZXh0TW9udGhEYXkiPT09ZSYmby5jbGFzc0xpc3QuYWRkKCJpblJhbmdlIikpKSk6by5jbGFzc0xpc3QuYWRkKCJmbGF0cGlja3ItZGlzYWJsZWQiKSwicmFuZ2UiPT09dy5jb25maWcubW9kZSYmZnVuY3Rpb24oZSl7cmV0dXJuISgicmFuZ2UiIT09dy5jb25maWcubW9kZXx8dy5zZWxlY3RlZERhdGVzLmxlbmd0aDwyKSYmKE0oZSx3LnNlbGVjdGVkRGF0ZXNbMF0pPj0wJiZNKGUsdy5zZWxlY3RlZERhdGVzWzFdKTw9MCl9KHQpJiYhdmUodCkmJm8uY2xhc3NMaXN0LmFkZCgiaW5SYW5nZSIpLHcud2Vla051bWJlcnMmJjE9PT13LmNvbmZpZy5zaG93TW9udGhzJiYicHJldk1vbnRoRGF5IiE9PWUmJm4lNz09MSYmdy53ZWVrTnVtYmVycy5pbnNlcnRBZGphY2VudEhUTUwoImJlZm9yZWVuZCIsIjxzcGFuIGNsYXNzPSdmbGF0cGlja3ItZGF5Jz4iK3cuY29uZmlnLmdldFdlZWsodCkrIjwvc3Bhbj4iKSxwZSgib25EYXlDcmVhdGUiLG8pLG99ZnVuY3Rpb24gTChlKXtlLmZvY3VzKCksInJhbmdlIj09PXcuY29uZmlnLm1vZGUmJmFlKGUpfWZ1bmN0aW9uIFcoZSl7Zm9yKHZhciB0PWU+MD8wOncuY29uZmlnLnNob3dNb250aHMtMSxuPWU+MD93LmNvbmZpZy5zaG93TW9udGhzOi0xLGE9dDthIT1uO2ErPWUpZm9yKHZhciBpPXcuZGF5c0NvbnRhaW5lci5jaGlsZHJlblthXSxvPWU+MD8wOmkuY2hpbGRyZW4ubGVuZ3RoLTEscj1lPjA\/aS5jaGlsZHJlbi5sZW5ndGg6LTEsbD1vO2whPXI7bCs9ZSl7dmFyIGM9aS5jaGlsZHJlbltsXTtpZigtMT09PWMuY2xhc3NOYW1lLmluZGV4T2YoImhpZGRlbiIpJiZYKGMuZGF0ZU9iaikpcmV0dXJuIGN9fWZ1bmN0aW9uIFIoZSx0KXt2YXIgbj1lZShkb2N1bWVudC5hY3RpdmVFbGVtZW50fHxkb2N1bWVudC5ib2R5KSxhPXZvaWQgMCE9PWU\/ZTpuP2RvY3VtZW50LmFjdGl2ZUVsZW1lbnQ6dm9pZCAwIT09dy5zZWxlY3RlZERhdGVFbGVtJiZlZSh3LnNlbGVjdGVkRGF0ZUVsZW0pP3cuc2VsZWN0ZWREYXRlRWxlbTp2b2lkIDAhPT13LnRvZGF5RGF0ZUVsZW0mJmVlKHcudG9kYXlEYXRlRWxlbSk\/dy50b2RheURhdGVFbGVtOlcodD4wPzE6LTEpO3ZvaWQgMD09PWE\/dy5faW5wdXQuZm9jdXMoKTpuP2Z1bmN0aW9uKGUsdCl7Zm9yKHZhciBuPS0xPT09ZS5jbGFzc05hbWUuaW5kZXhPZigiTW9udGgiKT9lLmRhdGVPYmouZ2V0TW9udGgoKTp3LmN1cnJlbnRNb250aCxhPXQ+MD93LmNvbmZpZy5zaG93TW9udGhzOi0xLGk9dD4wPzE6LTEsbz1uLXcuY3VycmVudE1vbnRoO28hPWE7bys9aSlmb3IodmFyIHI9dy5kYXlzQ29udGFpbmVyLmNoaWxkcmVuW29dLGw9bi13LmN1cnJlbnRNb250aD09PW8\/ZS4kaSt0OnQ8MD9yLmNoaWxkcmVuLmxlbmd0aC0xOjAsYz1yLmNoaWxkcmVuLmxlbmd0aCxkPWw7ZD49MCYmZDxjJiZkIT0odD4wP2M6LTEpO2QrPWkpe3ZhciBzPXIuY2hpbGRyZW5bZF07aWYoLTE9PT1zLmNsYXNzTmFtZS5pbmRleE9mKCJoaWRkZW4iKSYmWChzLmRhdGVPYmopJiZNYXRoLmFicyhlLiRpLWQpPj1NYXRoLmFicyh0KSlyZXR1cm4gTChzKX13LmNoYW5nZU1vbnRoKGkpLFIoVyhpKSwwKX0oYSx0KTpMKGEpfWZ1bmN0aW9uIEIoZSx0KXtmb3IodmFyIG49KG5ldyBEYXRlKGUsdCwxKS5nZXREYXkoKS13LmwxMG4uZmlyc3REYXlPZldlZWsrNyklNyxhPXcudXRpbHMuZ2V0RGF5c0luTW9udGgoKHQtMSsxMiklMTIsZSksaT13LnV0aWxzLmdldERheXNJbk1vbnRoKHQsZSksbz13aW5kb3cuZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpLHI9dy5jb25maWcuc2hvd01vbnRocz4xLGw9cj8icHJldk1vbnRoRGF5IGhpZGRlbiI6InByZXZNb250aERheSIsYz1yPyJuZXh0TW9udGhEYXkgaGlkZGVuIjoibmV4dE1vbnRoRGF5IixkPWErMS1uLHU9MDtkPD1hO2QrKyx1Kyspby5hcHBlbmRDaGlsZChIKGwsbmV3IERhdGUoZSx0LTEsZCksZCx1KSk7Zm9yKGQ9MTtkPD1pO2QrKyx1Kyspby5hcHBlbmRDaGlsZChIKCIiLG5ldyBEYXRlKGUsdCxkKSxkLHUpKTtmb3IodmFyIGY9aSsxO2Y8PTQyLW4mJigxPT09dy5jb25maWcuc2hvd01vbnRoc3x8dSU3IT0wKTtmKyssdSsrKW8uYXBwZW5kQ2hpbGQoSChjLG5ldyBEYXRlKGUsdCsxLGYlaSksZix1KSk7dmFyIG09cygiZGl2IiwiZGF5Q29udGFpbmVyIik7cmV0dXJuIG0uYXBwZW5kQ2hpbGQobyksbX1mdW5jdGlvbiBKKCl7aWYodm9pZCAwIT09dy5kYXlzQ29udGFpbmVyKXt1KHcuZGF5c0NvbnRhaW5lciksdy53ZWVrTnVtYmVycyYmdSh3LndlZWtOdW1iZXJzKTtmb3IodmFyIGU9ZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpLHQ9MDt0PHcuY29uZmlnLnNob3dNb250aHM7dCsrKXt2YXIgbj1uZXcgRGF0ZSh3LmN1cnJlbnRZZWFyLHcuY3VycmVudE1vbnRoLDEpO24uc2V0TW9udGgody5jdXJyZW50TW9udGgrdCksZS5hcHBlbmRDaGlsZChCKG4uZ2V0RnVsbFllYXIoKSxuLmdldE1vbnRoKCkpKX13LmRheXNDb250YWluZXIuYXBwZW5kQ2hpbGQoZSksdy5kYXlzPXcuZGF5c0NvbnRhaW5lci5maXJzdENoaWxkLCJyYW5nZSI9PT13LmNvbmZpZy5tb2RlJiYxPT09dy5zZWxlY3RlZERhdGVzLmxlbmd0aCYmYWUoKX19ZnVuY3Rpb24gSygpe2lmKCEody5jb25maWcuc2hvd01vbnRocz4xfHwiZHJvcGRvd24iIT09dy5jb25maWcubW9udGhTZWxlY3RvclR5cGUpKXt2YXIgZT1mdW5jdGlvbihlKXtyZXR1cm4hKHZvaWQgMCE9PXcuY29uZmlnLm1pbkRhdGUmJncuY3VycmVudFllYXI9PT13LmNvbmZpZy5taW5EYXRlLmdldEZ1bGxZZWFyKCkmJmU8dy5jb25maWcubWluRGF0ZS5nZXRNb250aCgpKSYmISh2b2lkIDAhPT13LmNvbmZpZy5tYXhEYXRlJiZ3LmN1cnJlbnRZZWFyPT09dy5jb25maWcubWF4RGF0ZS5nZXRGdWxsWWVhcigpJiZlPncuY29uZmlnLm1heERhdGUuZ2V0TW9udGgoKSl9O3cubW9udGhzRHJvcGRvd25Db250YWluZXIudGFiSW5kZXg9LTEsdy5tb250aHNEcm9wZG93bkNvbnRhaW5lci5pbm5lckhUTUw9IiI7Zm9yKHZhciB0PTA7dDwxMjt0KyspaWYoZSh0KSl7dmFyIG49cygib3B0aW9uIiwiZmxhdHBpY2tyLW1vbnRoRHJvcGRvd24tbW9udGgiKTtuLnZhbHVlPW5ldyBEYXRlKHcuY3VycmVudFllYXIsdCkuZ2V0TW9udGgoKS50b1N0cmluZygpLG4udGV4dENvbnRlbnQ9aCh0LHcuY29uZmlnLnNob3J0aGFuZEN1cnJlbnRNb250aCx3LmwxMG4pLG4udGFiSW5kZXg9LTEsdy5jdXJyZW50TW9udGg9PT10JiYobi5zZWxlY3RlZD0hMCksdy5tb250aHNEcm9wZG93bkNvbnRhaW5lci5hcHBlbmRDaGlsZChuKX19fWZ1bmN0aW9uIFUoKXt2YXIgZSx0PXMoImRpdiIsImZsYXRwaWNrci1tb250aCIpLG49d2luZG93LmRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTt3LmNvbmZpZy5zaG93TW9udGhzPjF8fCJzdGF0aWMiPT09dy5jb25maWcubW9udGhTZWxlY3RvclR5cGU\/ZT1zKCJzcGFuIiwiY3VyLW1vbnRoIik6KHcubW9udGhzRHJvcGRvd25Db250YWluZXI9cygic2VsZWN0IiwiZmxhdHBpY2tyLW1vbnRoRHJvcGRvd24tbW9udGhzIiksdy5tb250aHNEcm9wZG93bkNvbnRhaW5lci5zZXRBdHRyaWJ1dGUoImFyaWEtbGFiZWwiLHcubDEwbi5tb250aEFyaWFMYWJlbCksQSh3Lm1vbnRoc0Ryb3Bkb3duQ29udGFpbmVyLCJjaGFuZ2UiLChmdW5jdGlvbihlKXt2YXIgdD1nKGUpLG49cGFyc2VJbnQodC52YWx1ZSwxMCk7dy5jaGFuZ2VNb250aChuLXcuY3VycmVudE1vbnRoKSxwZSgib25Nb250aENoYW5nZSIpfSkpLEsoKSxlPXcubW9udGhzRHJvcGRvd25Db250YWluZXIpO3ZhciBhPW0oImN1ci15ZWFyIix7dGFiaW5kZXg6Ii0xIn0pLGk9YS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaW5wdXQiKVswXTtpLnNldEF0dHJpYnV0ZSgiYXJpYS1sYWJlbCIsdy5sMTBuLnllYXJBcmlhTGFiZWwpLHcuY29uZmlnLm1pbkRhdGUmJmkuc2V0QXR0cmlidXRlKCJtaW4iLHcuY29uZmlnLm1pbkRhdGUuZ2V0RnVsbFllYXIoKS50b1N0cmluZygpKSx3LmNvbmZpZy5tYXhEYXRlJiYoaS5zZXRBdHRyaWJ1dGUoIm1heCIsdy5jb25maWcubWF4RGF0ZS5nZXRGdWxsWWVhcigpLnRvU3RyaW5nKCkpLGkuZGlzYWJsZWQ9ISF3LmNvbmZpZy5taW5EYXRlJiZ3LmNvbmZpZy5taW5EYXRlLmdldEZ1bGxZZWFyKCk9PT13LmNvbmZpZy5tYXhEYXRlLmdldEZ1bGxZZWFyKCkpO3ZhciBvPXMoImRpdiIsImZsYXRwaWNrci1jdXJyZW50LW1vbnRoIik7cmV0dXJuIG8uYXBwZW5kQ2hpbGQoZSksby5hcHBlbmRDaGlsZChhKSxuLmFwcGVuZENoaWxkKG8pLHQuYXBwZW5kQ2hpbGQobikse2NvbnRhaW5lcjp0LHllYXJFbGVtZW50OmksbW9udGhFbGVtZW50OmV9fWZ1bmN0aW9uIHEoKXt1KHcubW9udGhOYXYpLHcubW9udGhOYXYuYXBwZW5kQ2hpbGQody5wcmV2TW9udGhOYXYpLHcuY29uZmlnLnNob3dNb250aHMmJih3LnllYXJFbGVtZW50cz1bXSx3Lm1vbnRoRWxlbWVudHM9W10pO2Zvcih2YXIgZT13LmNvbmZpZy5zaG93TW9udGhzO2UtLTspe3ZhciB0PVUoKTt3LnllYXJFbGVtZW50cy5wdXNoKHQueWVhckVsZW1lbnQpLHcubW9udGhFbGVtZW50cy5wdXNoKHQubW9udGhFbGVtZW50KSx3Lm1vbnRoTmF2LmFwcGVuZENoaWxkKHQuY29udGFpbmVyKX13Lm1vbnRoTmF2LmFwcGVuZENoaWxkKHcubmV4dE1vbnRoTmF2KX1mdW5jdGlvbiAkKCl7dy53ZWVrZGF5Q29udGFpbmVyP3Uody53ZWVrZGF5Q29udGFpbmVyKTp3LndlZWtkYXlDb250YWluZXI9cygiZGl2IiwiZmxhdHBpY2tyLXdlZWtkYXlzIik7Zm9yKHZhciBlPXcuY29uZmlnLnNob3dNb250aHM7ZS0tOyl7dmFyIHQ9cygiZGl2IiwiZmxhdHBpY2tyLXdlZWtkYXljb250YWluZXIiKTt3LndlZWtkYXlDb250YWluZXIuYXBwZW5kQ2hpbGQodCl9cmV0dXJuIHooKSx3LndlZWtkYXlDb250YWluZXJ9ZnVuY3Rpb24geigpe2lmKHcud2Vla2RheUNvbnRhaW5lcil7dmFyIGU9dy5sMTBuLmZpcnN0RGF5T2ZXZWVrLG49dCh3LmwxMG4ud2Vla2RheXMuc2hvcnRoYW5kKTtlPjAmJmU8bi5sZW5ndGgmJihuPXQobi5zcGxpY2UoZSxuLmxlbmd0aCksbi5zcGxpY2UoMCxlKSkpO2Zvcih2YXIgYT13LmNvbmZpZy5zaG93TW9udGhzO2EtLTspdy53ZWVrZGF5Q29udGFpbmVyLmNoaWxkcmVuW2FdLmlubmVySFRNTD0iXG4gICAgICA8c3BhbiBjbGFzcz0nZmxhdHBpY2tyLXdlZWtkYXknPlxuICAgICAgICAiK24uam9pbigiPC9zcGFuPjxzcGFuIGNsYXNzPSdmbGF0cGlja3Itd2Vla2RheSc+IikrIlxuICAgICAgPC9zcGFuPlxuICAgICAgIn19ZnVuY3Rpb24gRyhlLHQpe3ZvaWQgMD09PXQmJih0PSEwKTt2YXIgbj10P2U6ZS13LmN1cnJlbnRNb250aDtuPDAmJiEwPT09dy5faGlkZVByZXZNb250aEFycm93fHxuPjAmJiEwPT09dy5faGlkZU5leHRNb250aEFycm93fHwody5jdXJyZW50TW9udGgrPW4sKHcuY3VycmVudE1vbnRoPDB8fHcuY3VycmVudE1vbnRoPjExKSYmKHcuY3VycmVudFllYXIrPXcuY3VycmVudE1vbnRoPjExPzE6LTEsdy5jdXJyZW50TW9udGg9KHcuY3VycmVudE1vbnRoKzEyKSUxMixwZSgib25ZZWFyQ2hhbmdlIiksSygpKSxKKCkscGUoIm9uTW9udGhDaGFuZ2UiKSxEZSgpKX1mdW5jdGlvbiBWKGUpe3JldHVybiEoIXcuY29uZmlnLmFwcGVuZFRvfHwhdy5jb25maWcuYXBwZW5kVG8uY29udGFpbnMoZSkpfHx3LmNhbGVuZGFyQ29udGFpbmVyLmNvbnRhaW5zKGUpfWZ1bmN0aW9uIFooZSl7aWYody5pc09wZW4mJiF3LmNvbmZpZy5pbmxpbmUpe3ZhciB0PWcoZSksbj1WKHQpLGE9dD09PXcuaW5wdXR8fHQ9PT13LmFsdElucHV0fHx3LmVsZW1lbnQuY29udGFpbnModCl8fGUucGF0aCYmZS5wYXRoLmluZGV4T2YmJih+ZS5wYXRoLmluZGV4T2Yody5pbnB1dCl8fH5lLnBhdGguaW5kZXhPZih3LmFsdElucHV0KSksaT0iYmx1ciI9PT1lLnR5cGU\/YSYmZS5yZWxhdGVkVGFyZ2V0JiYhVihlLnJlbGF0ZWRUYXJnZXQpOiFhJiYhbiYmIVYoZS5yZWxhdGVkVGFyZ2V0KSxvPSF3LmNvbmZpZy5pZ25vcmVkRm9jdXNFbGVtZW50cy5zb21lKChmdW5jdGlvbihlKXtyZXR1cm4gZS5jb250YWlucyh0KX0pKTtpJiZvJiYodm9pZCAwIT09dy50aW1lQ29udGFpbmVyJiZ2b2lkIDAhPT13Lm1pbnV0ZUVsZW1lbnQmJnZvaWQgMCE9PXcuaG91ckVsZW1lbnQmJiIiIT09dy5pbnB1dC52YWx1ZSYmdm9pZCAwIT09dy5pbnB1dC52YWx1ZSYmSSgpLHcuY2xvc2UoKSx3LmNvbmZpZyYmInJhbmdlIj09PXcuY29uZmlnLm1vZGUmJjE9PT13LnNlbGVjdGVkRGF0ZXMubGVuZ3RoJiYody5jbGVhcighMSksdy5yZWRyYXcoKSkpfX1mdW5jdGlvbiBRKGUpe2lmKCEoIWV8fHcuY29uZmlnLm1pbkRhdGUmJmU8dy5jb25maWcubWluRGF0ZS5nZXRGdWxsWWVhcigpfHx3LmNvbmZpZy5tYXhEYXRlJiZlPncuY29uZmlnLm1heERhdGUuZ2V0RnVsbFllYXIoKSkpe3ZhciB0PWUsbj13LmN1cnJlbnRZZWFyIT09dDt3LmN1cnJlbnRZZWFyPXR8fHcuY3VycmVudFllYXIsdy5jb25maWcubWF4RGF0ZSYmdy5jdXJyZW50WWVhcj09PXcuY29uZmlnLm1heERhdGUuZ2V0RnVsbFllYXIoKT93LmN1cnJlbnRNb250aD1NYXRoLm1pbih3LmNvbmZpZy5tYXhEYXRlLmdldE1vbnRoKCksdy5jdXJyZW50TW9udGgpOncuY29uZmlnLm1pbkRhdGUmJncuY3VycmVudFllYXI9PT13LmNvbmZpZy5taW5EYXRlLmdldEZ1bGxZZWFyKCkmJih3LmN1cnJlbnRNb250aD1NYXRoLm1heCh3LmNvbmZpZy5taW5EYXRlLmdldE1vbnRoKCksdy5jdXJyZW50TW9udGgpKSxuJiYody5yZWRyYXcoKSxwZSgib25ZZWFyQ2hhbmdlIiksSygpKX19ZnVuY3Rpb24gWChlLHQpe3ZhciBuO3ZvaWQgMD09PXQmJih0PSEwKTt2YXIgYT13LnBhcnNlRGF0ZShlLHZvaWQgMCx0KTtpZih3LmNvbmZpZy5taW5EYXRlJiZhJiZNKGEsdy5jb25maWcubWluRGF0ZSx2b2lkIDAhPT10P3Q6IXcubWluRGF0ZUhhc1RpbWUpPDB8fHcuY29uZmlnLm1heERhdGUmJmEmJk0oYSx3LmNvbmZpZy5tYXhEYXRlLHZvaWQgMCE9PXQ\/dDohdy5tYXhEYXRlSGFzVGltZSk+MClyZXR1cm4hMTtpZighdy5jb25maWcuZW5hYmxlJiYwPT09dy5jb25maWcuZGlzYWJsZS5sZW5ndGgpcmV0dXJuITA7aWYodm9pZCAwPT09YSlyZXR1cm4hMTtmb3IodmFyIGk9ISF3LmNvbmZpZy5lbmFibGUsbz1udWxsIT09KG49dy5jb25maWcuZW5hYmxlKSYmdm9pZCAwIT09bj9uOncuY29uZmlnLmRpc2FibGUscj0wLGw9dm9pZCAwO3I8by5sZW5ndGg7cisrKXtpZigiZnVuY3Rpb24iPT10eXBlb2YobD1vW3JdKSYmbChhKSlyZXR1cm4gaTtpZihsIGluc3RhbmNlb2YgRGF0ZSYmdm9pZCAwIT09YSYmbC5nZXRUaW1lKCk9PT1hLmdldFRpbWUoKSlyZXR1cm4gaTtpZigic3RyaW5nIj09dHlwZW9mIGwpe3ZhciBjPXcucGFyc2VEYXRlKGwsdm9pZCAwLCEwKTtyZXR1cm4gYyYmYy5nZXRUaW1lKCk9PT1hLmdldFRpbWUoKT9pOiFpfWlmKCJvYmplY3QiPT10eXBlb2YgbCYmdm9pZCAwIT09YSYmbC5mcm9tJiZsLnRvJiZhLmdldFRpbWUoKT49bC5mcm9tLmdldFRpbWUoKSYmYS5nZXRUaW1lKCk8PWwudG8uZ2V0VGltZSgpKXJldHVybiBpfXJldHVybiFpfWZ1bmN0aW9uIGVlKGUpe3JldHVybiB2b2lkIDAhPT13LmRheXNDb250YWluZXImJigtMT09PWUuY2xhc3NOYW1lLmluZGV4T2YoImhpZGRlbiIpJiYtMT09PWUuY2xhc3NOYW1lLmluZGV4T2YoImZsYXRwaWNrci1kaXNhYmxlZCIpJiZ3LmRheXNDb250YWluZXIuY29udGFpbnMoZSkpfWZ1bmN0aW9uIHRlKGUpeyEoZS50YXJnZXQ9PT13Ll9pbnB1dCl8fCEody5zZWxlY3RlZERhdGVzLmxlbmd0aD4wfHx3Ll9pbnB1dC52YWx1ZS5sZW5ndGg+MCl8fGUucmVsYXRlZFRhcmdldCYmVihlLnJlbGF0ZWRUYXJnZXQpfHx3LnNldERhdGUody5faW5wdXQudmFsdWUsITAsZS50YXJnZXQ9PT13LmFsdElucHV0P3cuY29uZmlnLmFsdEZvcm1hdDp3LmNvbmZpZy5kYXRlRm9ybWF0KX1mdW5jdGlvbiBuZShlKXt2YXIgdD1nKGUpLG49dy5jb25maWcud3JhcD9wLmNvbnRhaW5zKHQpOnQ9PT13Ll9pbnB1dCxhPXcuY29uZmlnLmFsbG93SW5wdXQsaT13LmlzT3BlbiYmKCFhfHwhbiksbz13LmNvbmZpZy5pbmxpbmUmJm4mJiFhO2lmKDEzPT09ZS5rZXlDb2RlJiZuKXtpZihhKXJldHVybiB3LnNldERhdGUody5faW5wdXQudmFsdWUsITAsdD09PXcuYWx0SW5wdXQ\/dy5jb25maWcuYWx0Rm9ybWF0OncuY29uZmlnLmRhdGVGb3JtYXQpLHQuYmx1cigpO3cub3BlbigpfWVsc2UgaWYoVih0KXx8aXx8byl7dmFyIHI9ISF3LnRpbWVDb250YWluZXImJncudGltZUNvbnRhaW5lci5jb250YWlucyh0KTtzd2l0Y2goZS5rZXlDb2RlKXtjYXNlIDEzOnI\/KGUucHJldmVudERlZmF1bHQoKSxJKCksc2UoKSk6dWUoZSk7YnJlYWs7Y2FzZSAyNzplLnByZXZlbnREZWZhdWx0KCksc2UoKTticmVhaztjYXNlIDg6Y2FzZSA0NjpuJiYhdy5jb25maWcuYWxsb3dJbnB1dCYmKGUucHJldmVudERlZmF1bHQoKSx3LmNsZWFyKCkpO2JyZWFrO2Nhc2UgMzc6Y2FzZSAzOTppZihyfHxuKXcuaG91ckVsZW1lbnQmJncuaG91ckVsZW1lbnQuZm9jdXMoKTtlbHNlIGlmKGUucHJldmVudERlZmF1bHQoKSx2b2lkIDAhPT13LmRheXNDb250YWluZXImJighMT09PWF8fGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQmJmVlKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQpKSl7dmFyIGw9Mzk9PT1lLmtleUNvZGU\/MTotMTtlLmN0cmxLZXk\/KGUuc3RvcFByb3BhZ2F0aW9uKCksRyhsKSxSKFcoMSksMCkpOlIodm9pZCAwLGwpfWJyZWFrO2Nhc2UgMzg6Y2FzZSA0MDplLnByZXZlbnREZWZhdWx0KCk7dmFyIGM9NDA9PT1lLmtleUNvZGU\/MTotMTt3LmRheXNDb250YWluZXImJnZvaWQgMCE9PXQuJGl8fHQ9PT13LmlucHV0fHx0PT09dy5hbHRJbnB1dD9lLmN0cmxLZXk\/KGUuc3RvcFByb3BhZ2F0aW9uKCksUSh3LmN1cnJlbnRZZWFyLWMpLFIoVygxKSwwKSk6cnx8Uih2b2lkIDAsNypjKTp0PT09dy5jdXJyZW50WWVhckVsZW1lbnQ\/USh3LmN1cnJlbnRZZWFyLWMpOncuY29uZmlnLmVuYWJsZVRpbWUmJighciYmdy5ob3VyRWxlbWVudCYmdy5ob3VyRWxlbWVudC5mb2N1cygpLEkoZSksdy5fZGVib3VuY2VkQ2hhbmdlKCkpO2JyZWFrO2Nhc2UgOTppZihyKXt2YXIgZD1bdy5ob3VyRWxlbWVudCx3Lm1pbnV0ZUVsZW1lbnQsdy5zZWNvbmRFbGVtZW50LHcuYW1QTV0uY29uY2F0KHcucGx1Z2luRWxlbWVudHMpLmZpbHRlcigoZnVuY3Rpb24oZSl7cmV0dXJuIGV9KSkscz1kLmluZGV4T2YodCk7aWYoLTEhPT1zKXt2YXIgdT1kW3MrKGUuc2hpZnRLZXk\/LTE6MSldO2UucHJldmVudERlZmF1bHQoKSwodXx8dy5faW5wdXQpLmZvY3VzKCl9fWVsc2Uhdy5jb25maWcubm9DYWxlbmRhciYmdy5kYXlzQ29udGFpbmVyJiZ3LmRheXNDb250YWluZXIuY29udGFpbnModCkmJmUuc2hpZnRLZXkmJihlLnByZXZlbnREZWZhdWx0KCksdy5faW5wdXQuZm9jdXMoKSl9fWlmKHZvaWQgMCE9PXcuYW1QTSYmdD09PXcuYW1QTSlzd2l0Y2goZS5rZXkpe2Nhc2Ugdy5sMTBuLmFtUE1bMF0uY2hhckF0KDApOmNhc2Ugdy5sMTBuLmFtUE1bMF0uY2hhckF0KDApLnRvTG93ZXJDYXNlKCk6dy5hbVBNLnRleHRDb250ZW50PXcubDEwbi5hbVBNWzBdLFMoKSxiZSgpO2JyZWFrO2Nhc2Ugdy5sMTBuLmFtUE1bMV0uY2hhckF0KDApOmNhc2Ugdy5sMTBuLmFtUE1bMV0uY2hhckF0KDApLnRvTG93ZXJDYXNlKCk6dy5hbVBNLnRleHRDb250ZW50PXcubDEwbi5hbVBNWzFdLFMoKSxiZSgpfShufHxWKHQpKSYmcGUoIm9uS2V5RG93biIsZSl9ZnVuY3Rpb24gYWUoZSl7aWYoMT09PXcuc2VsZWN0ZWREYXRlcy5sZW5ndGgmJighZXx8ZS5jbGFzc0xpc3QuY29udGFpbnMoImZsYXRwaWNrci1kYXkiKSYmIWUuY2xhc3NMaXN0LmNvbnRhaW5zKCJmbGF0cGlja3ItZGlzYWJsZWQiKSkpe2Zvcih2YXIgdD1lP2UuZGF0ZU9iai5nZXRUaW1lKCk6dy5kYXlzLmZpcnN0RWxlbWVudENoaWxkLmRhdGVPYmouZ2V0VGltZSgpLG49dy5wYXJzZURhdGUody5zZWxlY3RlZERhdGVzWzBdLHZvaWQgMCwhMCkuZ2V0VGltZSgpLGE9TWF0aC5taW4odCx3LnNlbGVjdGVkRGF0ZXNbMF0uZ2V0VGltZSgpKSxpPU1hdGgubWF4KHQsdy5zZWxlY3RlZERhdGVzWzBdLmdldFRpbWUoKSksbz0hMSxyPTAsbD0wLGM9YTtjPGk7Yys9eSlYKG5ldyBEYXRlKGMpLCEwKXx8KG89b3x8Yz5hJiZjPGksYzxuJiYoIXJ8fGM+cik\/cj1jOmM+biYmKCFsfHxjPGwpJiYobD1jKSk7Zm9yKHZhciBkPTA7ZDx3LmNvbmZpZy5zaG93TW9udGhzO2QrKylmb3IodmFyIHM9dy5kYXlzQ29udGFpbmVyLmNoaWxkcmVuW2RdLHU9ZnVuY3Rpb24oYSxpKXt2YXIgYyxkLHUsZj1zLmNoaWxkcmVuW2FdLG09Zi5kYXRlT2JqLmdldFRpbWUoKSxnPXI+MCYmbTxyfHxsPjAmJm0+bDtyZXR1cm4gZz8oZi5jbGFzc0xpc3QuYWRkKCJub3RBbGxvd2VkIiksWyJpblJhbmdlIiwic3RhcnRSYW5nZSIsImVuZFJhbmdlIl0uZm9yRWFjaCgoZnVuY3Rpb24oZSl7Zi5jbGFzc0xpc3QucmVtb3ZlKGUpfSkpLCJjb250aW51ZSIpOm8mJiFnPyJjb250aW51ZSI6KFsic3RhcnRSYW5nZSIsImluUmFuZ2UiLCJlbmRSYW5nZSIsIm5vdEFsbG93ZWQiXS5mb3JFYWNoKChmdW5jdGlvbihlKXtmLmNsYXNzTGlzdC5yZW1vdmUoZSl9KSksdm9pZCh2b2lkIDAhPT1lJiYoZS5jbGFzc0xpc3QuYWRkKHQ8PXcuc2VsZWN0ZWREYXRlc1swXS5nZXRUaW1lKCk\/InN0YXJ0UmFuZ2UiOiJlbmRSYW5nZSIpLG48dCYmbT09PW4\/Zi5jbGFzc0xpc3QuYWRkKCJzdGFydFJhbmdlIik6bj50JiZtPT09biYmZi5jbGFzc0xpc3QuYWRkKCJlbmRSYW5nZSIpLG0+PXImJigwPT09bHx8bTw9bCkmJihkPW4sdT10LChjPW0pPk1hdGgubWluKGQsdSkmJmM8TWF0aC5tYXgoZCx1KSkmJmYuY2xhc3NMaXN0LmFkZCgiaW5SYW5nZSIpKSkpfSxmPTAsbT1zLmNoaWxkcmVuLmxlbmd0aDtmPG07ZisrKXUoZil9fWZ1bmN0aW9uIGllKCl7IXcuaXNPcGVufHx3LmNvbmZpZy5zdGF0aWN8fHcuY29uZmlnLmlubGluZXx8Y2UoKX1mdW5jdGlvbiBvZShlKXtyZXR1cm4gZnVuY3Rpb24odCl7dmFyIG49dy5jb25maWdbIl8iK2UrIkRhdGUiXT13LnBhcnNlRGF0ZSh0LHcuY29uZmlnLmRhdGVGb3JtYXQpLGE9dy5jb25maWdbIl8iKygibWluIj09PWU\/Im1heCI6Im1pbiIpKyJEYXRlIl07dm9pZCAwIT09biYmKHdbIm1pbiI9PT1lPyJtaW5EYXRlSGFzVGltZSI6Im1heERhdGVIYXNUaW1lIl09bi5nZXRIb3VycygpPjB8fG4uZ2V0TWludXRlcygpPjB8fG4uZ2V0U2Vjb25kcygpPjApLHcuc2VsZWN0ZWREYXRlcyYmKHcuc2VsZWN0ZWREYXRlcz13LnNlbGVjdGVkRGF0ZXMuZmlsdGVyKChmdW5jdGlvbihlKXtyZXR1cm4gWChlKX0pKSx3LnNlbGVjdGVkRGF0ZXMubGVuZ3RofHwibWluIiE9PWV8fF8obiksYmUoKSksdy5kYXlzQ29udGFpbmVyJiYoZGUoKSx2b2lkIDAhPT1uP3cuY3VycmVudFllYXJFbGVtZW50W2VdPW4uZ2V0RnVsbFllYXIoKS50b1N0cmluZygpOncuY3VycmVudFllYXJFbGVtZW50LnJlbW92ZUF0dHJpYnV0ZShlKSx3LmN1cnJlbnRZZWFyRWxlbWVudC5kaXNhYmxlZD0hIWEmJnZvaWQgMCE9PW4mJmEuZ2V0RnVsbFllYXIoKT09PW4uZ2V0RnVsbFllYXIoKSl9fWZ1bmN0aW9uIHJlKCl7cmV0dXJuIHcuY29uZmlnLndyYXA\/cC5xdWVyeVNlbGVjdG9yKCJbZGF0YS1pbnB1dF0iKTpwfWZ1bmN0aW9uIGxlKCl7Im9iamVjdCIhPXR5cGVvZiB3LmNvbmZpZy5sb2NhbGUmJnZvaWQgMD09PVQubDEwbnNbdy5jb25maWcubG9jYWxlXSYmdy5jb25maWcuZXJyb3JIYW5kbGVyKG5ldyBFcnJvcigiZmxhdHBpY2tyOiBpbnZhbGlkIGxvY2FsZSAiK3cuY29uZmlnLmxvY2FsZSkpLHcubDEwbj1lKGUoe30sVC5sMTBucy5kZWZhdWx0KSwib2JqZWN0Ij09dHlwZW9mIHcuY29uZmlnLmxvY2FsZT93LmNvbmZpZy5sb2NhbGU6ImRlZmF1bHQiIT09dy5jb25maWcubG9jYWxlP1QubDEwbnNbdy5jb25maWcubG9jYWxlXTp2b2lkIDApLEQuSz0iKCIrdy5sMTBuLmFtUE1bMF0rInwiK3cubDEwbi5hbVBNWzFdKyJ8Iit3LmwxMG4uYW1QTVswXS50b0xvd2VyQ2FzZSgpKyJ8Iit3LmwxMG4uYW1QTVsxXS50b0xvd2VyQ2FzZSgpKyIpIix2b2lkIDA9PT1lKGUoe30sdiksSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShwLmRhdGFzZXR8fHt9KSkpLnRpbWVfMjRociYmdm9pZCAwPT09VC5kZWZhdWx0Q29uZmlnLnRpbWVfMjRociYmKHcuY29uZmlnLnRpbWVfMjRocj13LmwxMG4udGltZV8yNGhyKSx3LmZvcm1hdERhdGU9Yih3KSx3LnBhcnNlRGF0ZT1DKHtjb25maWc6dy5jb25maWcsbDEwbjp3LmwxMG59KX1mdW5jdGlvbiBjZShlKXtpZigiZnVuY3Rpb24iIT10eXBlb2Ygdy5jb25maWcucG9zaXRpb24pe2lmKHZvaWQgMCE9PXcuY2FsZW5kYXJDb250YWluZXIpe3BlKCJvblByZUNhbGVuZGFyUG9zaXRpb24iKTt2YXIgdD1lfHx3Ll9wb3NpdGlvbkVsZW1lbnQsbj1BcnJheS5wcm90b3R5cGUucmVkdWNlLmNhbGwody5jYWxlbmRhckNvbnRhaW5lci5jaGlsZHJlbiwoZnVuY3Rpb24oZSx0KXtyZXR1cm4gZSt0Lm9mZnNldEhlaWdodH0pLDApLGE9dy5jYWxlbmRhckNvbnRhaW5lci5vZmZzZXRXaWR0aCxpPXcuY29uZmlnLnBvc2l0aW9uLnNwbGl0KCIgIiksbz1pWzBdLHI9aS5sZW5ndGg+MT9pWzFdOm51bGwsbD10LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLGM9d2luZG93LmlubmVySGVpZ2h0LWwuYm90dG9tLHM9ImFib3ZlIj09PW98fCJiZWxvdyIhPT1vJiZjPG4mJmwudG9wPm4sdT13aW5kb3cucGFnZVlPZmZzZXQrbC50b3ArKHM\/LW4tMjp0Lm9mZnNldEhlaWdodCsyKTtpZihkKHcuY2FsZW5kYXJDb250YWluZXIsImFycm93VG9wIiwhcyksZCh3LmNhbGVuZGFyQ29udGFpbmVyLCJhcnJvd0JvdHRvbSIscyksIXcuY29uZmlnLmlubGluZSl7dmFyIGY9d2luZG93LnBhZ2VYT2Zmc2V0K2wubGVmdCxtPSExLGc9ITE7ImNlbnRlciI9PT1yPyhmLT0oYS1sLndpZHRoKS8yLG09ITApOiJyaWdodCI9PT1yJiYoZi09YS1sLndpZHRoLGc9ITApLGQody5jYWxlbmRhckNvbnRhaW5lciwiYXJyb3dMZWZ0IiwhbSYmIWcpLGQody5jYWxlbmRhckNvbnRhaW5lciwiYXJyb3dDZW50ZXIiLG0pLGQody5jYWxlbmRhckNvbnRhaW5lciwiYXJyb3dSaWdodCIsZyk7dmFyIHA9d2luZG93LmRvY3VtZW50LmJvZHkub2Zmc2V0V2lkdGgtKHdpbmRvdy5wYWdlWE9mZnNldCtsLnJpZ2h0KSxoPWYrYT53aW5kb3cuZG9jdW1lbnQuYm9keS5vZmZzZXRXaWR0aCx2PXArYT53aW5kb3cuZG9jdW1lbnQuYm9keS5vZmZzZXRXaWR0aDtpZihkKHcuY2FsZW5kYXJDb250YWluZXIsInJpZ2h0TW9zdCIsaCksIXcuY29uZmlnLnN0YXRpYylpZih3LmNhbGVuZGFyQ29udGFpbmVyLnN0eWxlLnRvcD11KyJweCIsaClpZih2KXt2YXIgRD1mdW5jdGlvbigpe2Zvcih2YXIgZT1udWxsLHQ9MDt0PGRvY3VtZW50LnN0eWxlU2hlZXRzLmxlbmd0aDt0Kyspe3ZhciBuPWRvY3VtZW50LnN0eWxlU2hlZXRzW3RdO3RyeXtuLmNzc1J1bGVzfWNhdGNoKGUpe2NvbnRpbnVlfWU9bjticmVha31yZXR1cm4gbnVsbCE9ZT9lOihhPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInN0eWxlIiksZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChhKSxhLnNoZWV0KTt2YXIgYX0oKTtpZih2b2lkIDA9PT1EKXJldHVybjt2YXIgYj13aW5kb3cuZG9jdW1lbnQuYm9keS5vZmZzZXRXaWR0aCxDPU1hdGgubWF4KDAsYi8yLWEvMiksTT1ELmNzc1J1bGVzLmxlbmd0aCx5PSJ7bGVmdDoiK2wubGVmdCsicHg7cmlnaHQ6YXV0bzt9IjtkKHcuY2FsZW5kYXJDb250YWluZXIsInJpZ2h0TW9zdCIsITEpLGQody5jYWxlbmRhckNvbnRhaW5lciwiY2VudGVyTW9zdCIsITApLEQuaW5zZXJ0UnVsZSgiLmZsYXRwaWNrci1jYWxlbmRhci5jZW50ZXJNb3N0OmJlZm9yZSwuZmxhdHBpY2tyLWNhbGVuZGFyLmNlbnRlck1vc3Q6YWZ0ZXIiK3ksTSksdy5jYWxlbmRhckNvbnRhaW5lci5zdHlsZS5sZWZ0PUMrInB4Iix3LmNhbGVuZGFyQ29udGFpbmVyLnN0eWxlLnJpZ2h0PSJhdXRvIn1lbHNlIHcuY2FsZW5kYXJDb250YWluZXIuc3R5bGUubGVmdD0iYXV0byIsdy5jYWxlbmRhckNvbnRhaW5lci5zdHlsZS5yaWdodD1wKyJweCI7ZWxzZSB3LmNhbGVuZGFyQ29udGFpbmVyLnN0eWxlLmxlZnQ9ZisicHgiLHcuY2FsZW5kYXJDb250YWluZXIuc3R5bGUucmlnaHQ9ImF1dG8ifX19ZWxzZSB3LmNvbmZpZy5wb3NpdGlvbih3LGUpfWZ1bmN0aW9uIGRlKCl7dy5jb25maWcubm9DYWxlbmRhcnx8dy5pc01vYmlsZXx8KEsoKSxEZSgpLEooKSl9ZnVuY3Rpb24gc2UoKXt3Ll9pbnB1dC5mb2N1cygpLC0xIT09d2luZG93Lm5hdmlnYXRvci51c2VyQWdlbnQuaW5kZXhPZigiTVNJRSIpfHx2b2lkIDAhPT1uYXZpZ2F0b3IubXNNYXhUb3VjaFBvaW50cz9zZXRUaW1lb3V0KHcuY2xvc2UsMCk6dy5jbG9zZSgpfWZ1bmN0aW9uIHVlKGUpe2UucHJldmVudERlZmF1bHQoKSxlLnN0b3BQcm9wYWdhdGlvbigpO3ZhciB0PWYoZyhlKSwoZnVuY3Rpb24oZSl7cmV0dXJuIGUuY2xhc3NMaXN0JiZlLmNsYXNzTGlzdC5jb250YWlucygiZmxhdHBpY2tyLWRheSIpJiYhZS5jbGFzc0xpc3QuY29udGFpbnMoImZsYXRwaWNrci1kaXNhYmxlZCIpJiYhZS5jbGFzc0xpc3QuY29udGFpbnMoIm5vdEFsbG93ZWQiKX0pKTtpZih2b2lkIDAhPT10KXt2YXIgbj10LGE9dy5sYXRlc3RTZWxlY3RlZERhdGVPYmo9bmV3IERhdGUobi5kYXRlT2JqLmdldFRpbWUoKSksaT0oYS5nZXRNb250aCgpPHcuY3VycmVudE1vbnRofHxhLmdldE1vbnRoKCk+dy5jdXJyZW50TW9udGgrdy5jb25maWcuc2hvd01vbnRocy0xKSYmInJhbmdlIiE9PXcuY29uZmlnLm1vZGU7aWYody5zZWxlY3RlZERhdGVFbGVtPW4sInNpbmdsZSI9PT13LmNvbmZpZy5tb2RlKXcuc2VsZWN0ZWREYXRlcz1bYV07ZWxzZSBpZigibXVsdGlwbGUiPT09dy5jb25maWcubW9kZSl7dmFyIG89dmUoYSk7bz93LnNlbGVjdGVkRGF0ZXMuc3BsaWNlKHBhcnNlSW50KG8pLDEpOncuc2VsZWN0ZWREYXRlcy5wdXNoKGEpfWVsc2UicmFuZ2UiPT09dy5jb25maWcubW9kZSYmKDI9PT13LnNlbGVjdGVkRGF0ZXMubGVuZ3RoJiZ3LmNsZWFyKCExLCExKSx3LmxhdGVzdFNlbGVjdGVkRGF0ZU9iaj1hLHcuc2VsZWN0ZWREYXRlcy5wdXNoKGEpLDAhPT1NKGEsdy5zZWxlY3RlZERhdGVzWzBdLCEwKSYmdy5zZWxlY3RlZERhdGVzLnNvcnQoKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIGUuZ2V0VGltZSgpLXQuZ2V0VGltZSgpfSkpKTtpZihTKCksaSl7dmFyIHI9dy5jdXJyZW50WWVhciE9PWEuZ2V0RnVsbFllYXIoKTt3LmN1cnJlbnRZZWFyPWEuZ2V0RnVsbFllYXIoKSx3LmN1cnJlbnRNb250aD1hLmdldE1vbnRoKCksciYmKHBlKCJvblllYXJDaGFuZ2UiKSxLKCkpLHBlKCJvbk1vbnRoQ2hhbmdlIil9aWYoRGUoKSxKKCksYmUoKSxpfHwicmFuZ2UiPT09dy5jb25maWcubW9kZXx8MSE9PXcuY29uZmlnLnNob3dNb250aHM\/dm9pZCAwIT09dy5zZWxlY3RlZERhdGVFbGVtJiZ2b2lkIDA9PT13LmhvdXJFbGVtZW50JiZ3LnNlbGVjdGVkRGF0ZUVsZW0mJncuc2VsZWN0ZWREYXRlRWxlbS5mb2N1cygpOkwobiksdm9pZCAwIT09dy5ob3VyRWxlbWVudCYmdm9pZCAwIT09dy5ob3VyRWxlbWVudCYmdy5ob3VyRWxlbWVudC5mb2N1cygpLHcuY29uZmlnLmNsb3NlT25TZWxlY3Qpe3ZhciBsPSJzaW5nbGUiPT09dy5jb25maWcubW9kZSYmIXcuY29uZmlnLmVuYWJsZVRpbWUsYz0icmFuZ2UiPT09dy5jb25maWcubW9kZSYmMj09PXcuc2VsZWN0ZWREYXRlcy5sZW5ndGgmJiF3LmNvbmZpZy5lbmFibGVUaW1lOyhsfHxjKSYmc2UoKX1OKCl9fXcucGFyc2VEYXRlPUMoe2NvbmZpZzp3LmNvbmZpZyxsMTBuOncubDEwbn0pLHcuX2hhbmRsZXJzPVtdLHcucGx1Z2luRWxlbWVudHM9W10sdy5sb2FkZWRQbHVnaW5zPVtdLHcuX2JpbmQ9QSx3Ll9zZXRIb3Vyc0Zyb21EYXRlPV8sdy5fcG9zaXRpb25DYWxlbmRhcj1jZSx3LmNoYW5nZU1vbnRoPUcsdy5jaGFuZ2VZZWFyPVEsdy5jbGVhcj1mdW5jdGlvbihlLHQpe3ZvaWQgMD09PWUmJihlPSEwKTt2b2lkIDA9PT10JiYodD0hMCk7dy5pbnB1dC52YWx1ZT0iIix2b2lkIDAhPT13LmFsdElucHV0JiYody5hbHRJbnB1dC52YWx1ZT0iIik7dm9pZCAwIT09dy5tb2JpbGVJbnB1dCYmKHcubW9iaWxlSW5wdXQudmFsdWU9IiIpO3cuc2VsZWN0ZWREYXRlcz1bXSx3LmxhdGVzdFNlbGVjdGVkRGF0ZU9iaj12b2lkIDAsITA9PT10JiYody5jdXJyZW50WWVhcj13Ll9pbml0aWFsRGF0ZS5nZXRGdWxsWWVhcigpLHcuY3VycmVudE1vbnRoPXcuX2luaXRpYWxEYXRlLmdldE1vbnRoKCkpO2lmKCEwPT09dy5jb25maWcuZW5hYmxlVGltZSl7dmFyIG49eCh3LmNvbmZpZyksYT1uLmhvdXJzLGk9bi5taW51dGVzLG89bi5zZWNvbmRzO08oYSxpLG8pfXcucmVkcmF3KCksZSYmcGUoIm9uQ2hhbmdlIil9LHcuY2xvc2U9ZnVuY3Rpb24oKXt3LmlzT3Blbj0hMSx3LmlzTW9iaWxlfHwodm9pZCAwIT09dy5jYWxlbmRhckNvbnRhaW5lciYmdy5jYWxlbmRhckNvbnRhaW5lci5jbGFzc0xpc3QucmVtb3ZlKCJvcGVuIiksdm9pZCAwIT09dy5faW5wdXQmJncuX2lucHV0LmNsYXNzTGlzdC5yZW1vdmUoImFjdGl2ZSIpKTtwZSgib25DbG9zZSIpfSx3Ll9jcmVhdGVFbGVtZW50PXMsdy5kZXN0cm95PWZ1bmN0aW9uKCl7dm9pZCAwIT09dy5jb25maWcmJnBlKCJvbkRlc3Ryb3kiKTtmb3IodmFyIGU9dy5faGFuZGxlcnMubGVuZ3RoO2UtLTspdy5faGFuZGxlcnNbZV0ucmVtb3ZlKCk7aWYody5faGFuZGxlcnM9W10sdy5tb2JpbGVJbnB1dCl3Lm1vYmlsZUlucHV0LnBhcmVudE5vZGUmJncubW9iaWxlSW5wdXQucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh3Lm1vYmlsZUlucHV0KSx3Lm1vYmlsZUlucHV0PXZvaWQgMDtlbHNlIGlmKHcuY2FsZW5kYXJDb250YWluZXImJncuY2FsZW5kYXJDb250YWluZXIucGFyZW50Tm9kZSlpZih3LmNvbmZpZy5zdGF0aWMmJncuY2FsZW5kYXJDb250YWluZXIucGFyZW50Tm9kZSl7dmFyIHQ9dy5jYWxlbmRhckNvbnRhaW5lci5wYXJlbnROb2RlO2lmKHQubGFzdENoaWxkJiZ0LnJlbW92ZUNoaWxkKHQubGFzdENoaWxkKSx0LnBhcmVudE5vZGUpe2Zvcig7dC5maXJzdENoaWxkOyl0LnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKHQuZmlyc3RDaGlsZCx0KTt0LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodCl9fWVsc2Ugdy5jYWxlbmRhckNvbnRhaW5lci5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHcuY2FsZW5kYXJDb250YWluZXIpO3cuYWx0SW5wdXQmJih3LmlucHV0LnR5cGU9InRleHQiLHcuYWx0SW5wdXQucGFyZW50Tm9kZSYmdy5hbHRJbnB1dC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHcuYWx0SW5wdXQpLGRlbGV0ZSB3LmFsdElucHV0KTt3LmlucHV0JiYody5pbnB1dC50eXBlPXcuaW5wdXQuX3R5cGUsdy5pbnB1dC5jbGFzc0xpc3QucmVtb3ZlKCJmbGF0cGlja3ItaW5wdXQiKSx3LmlucHV0LnJlbW92ZUF0dHJpYnV0ZSgicmVhZG9ubHkiKSk7WyJfc2hvd1RpbWVJbnB1dCIsImxhdGVzdFNlbGVjdGVkRGF0ZU9iaiIsIl9oaWRlTmV4dE1vbnRoQXJyb3ciLCJfaGlkZVByZXZNb250aEFycm93IiwiX19oaWRlTmV4dE1vbnRoQXJyb3ciLCJfX2hpZGVQcmV2TW9udGhBcnJvdyIsImlzTW9iaWxlIiwiaXNPcGVuIiwic2VsZWN0ZWREYXRlRWxlbSIsIm1pbkRhdGVIYXNUaW1lIiwibWF4RGF0ZUhhc1RpbWUiLCJkYXlzIiwiZGF5c0NvbnRhaW5lciIsIl9pbnB1dCIsIl9wb3NpdGlvbkVsZW1lbnQiLCJpbm5lckNvbnRhaW5lciIsInJDb250YWluZXIiLCJtb250aE5hdiIsInRvZGF5RGF0ZUVsZW0iLCJjYWxlbmRhckNvbnRhaW5lciIsIndlZWtkYXlDb250YWluZXIiLCJwcmV2TW9udGhOYXYiLCJuZXh0TW9udGhOYXYiLCJtb250aHNEcm9wZG93bkNvbnRhaW5lciIsImN1cnJlbnRNb250aEVsZW1lbnQiLCJjdXJyZW50WWVhckVsZW1lbnQiLCJuYXZpZ2F0aW9uQ3VycmVudE1vbnRoIiwic2VsZWN0ZWREYXRlRWxlbSIsImNvbmZpZyJdLmZvckVhY2goKGZ1bmN0aW9uKGUpe3RyeXtkZWxldGUgd1tlXX1jYXRjaChlKXt9fSkpfSx3LmlzRW5hYmxlZD1YLHcuanVtcFRvRGF0ZT1QLHcub3Blbj1mdW5jdGlvbihlLHQpe3ZvaWQgMD09PXQmJih0PXcuX3Bvc2l0aW9uRWxlbWVudCk7aWYoITA9PT13LmlzTW9iaWxlKXtpZihlKXtlLnByZXZlbnREZWZhdWx0KCk7dmFyIG49ZyhlKTtuJiZuLmJsdXIoKX1yZXR1cm4gdm9pZCAwIT09dy5tb2JpbGVJbnB1dCYmKHcubW9iaWxlSW5wdXQuZm9jdXMoKSx3Lm1vYmlsZUlucHV0LmNsaWNrKCkpLHZvaWQgcGUoIm9uT3BlbiIpfWlmKHcuX2lucHV0LmRpc2FibGVkfHx3LmNvbmZpZy5pbmxpbmUpcmV0dXJuO3ZhciBhPXcuaXNPcGVuO3cuaXNPcGVuPSEwLGF8fCh3LmNhbGVuZGFyQ29udGFpbmVyLmNsYXNzTGlzdC5hZGQoIm9wZW4iKSx3Ll9pbnB1dC5jbGFzc0xpc3QuYWRkKCJhY3RpdmUiKSxwZSgib25PcGVuIiksY2UodCkpOyEwPT09dy5jb25maWcuZW5hYmxlVGltZSYmITA9PT13LmNvbmZpZy5ub0NhbGVuZGFyJiYoITEhPT13LmNvbmZpZy5hbGxvd0lucHV0fHx2b2lkIDAhPT1lJiZ3LnRpbWVDb250YWluZXIuY29udGFpbnMoZS5yZWxhdGVkVGFyZ2V0KXx8c2V0VGltZW91dCgoZnVuY3Rpb24oKXtyZXR1cm4gdy5ob3VyRWxlbWVudC5zZWxlY3QoKX0pLDUwKSl9LHcucmVkcmF3PWRlLHcuc2V0PWZ1bmN0aW9uKGUsdCl7aWYobnVsbCE9PWUmJiJvYmplY3QiPT10eXBlb2YgZSlmb3IodmFyIGEgaW4gT2JqZWN0LmFzc2lnbih3LmNvbmZpZyxlKSxlKXZvaWQgMCE9PWZlW2FdJiZmZVthXS5mb3JFYWNoKChmdW5jdGlvbihlKXtyZXR1cm4gZSgpfSkpO2Vsc2Ugdy5jb25maWdbZV09dCx2b2lkIDAhPT1mZVtlXT9mZVtlXS5mb3JFYWNoKChmdW5jdGlvbihlKXtyZXR1cm4gZSgpfSkpOm4uaW5kZXhPZihlKT4tMSYmKHcuY29uZmlnW2VdPWModCkpO3cucmVkcmF3KCksYmUoITApfSx3LnNldERhdGU9ZnVuY3Rpb24oZSx0LG4pe3ZvaWQgMD09PXQmJih0PSExKTt2b2lkIDA9PT1uJiYobj13LmNvbmZpZy5kYXRlRm9ybWF0KTtpZigwIT09ZSYmIWV8fGUgaW5zdGFuY2VvZiBBcnJheSYmMD09PWUubGVuZ3RoKXJldHVybiB3LmNsZWFyKHQpO21lKGUsbiksdy5sYXRlc3RTZWxlY3RlZERhdGVPYmo9dy5zZWxlY3RlZERhdGVzW3cuc2VsZWN0ZWREYXRlcy5sZW5ndGgtMV0sdy5yZWRyYXcoKSxQKHZvaWQgMCx0KSxfKCksMD09PXcuc2VsZWN0ZWREYXRlcy5sZW5ndGgmJncuY2xlYXIoITEpO2JlKHQpLHQmJnBlKCJvbkNoYW5nZSIpfSx3LnRvZ2dsZT1mdW5jdGlvbihlKXtpZighMD09PXcuaXNPcGVuKXJldHVybiB3LmNsb3NlKCk7dy5vcGVuKGUpfTt2YXIgZmU9e2xvY2FsZTpbbGUsel0sc2hvd01vbnRoczpbcSxrLCRdLG1pbkRhdGU6W1BdLG1heERhdGU6W1BdLGNsaWNrT3BlbnM6W2Z1bmN0aW9uKCl7ITA9PT13LmNvbmZpZy5jbGlja09wZW5zPyhBKHcuX2lucHV0LCJmb2N1cyIsdy5vcGVuKSxBKHcuX2lucHV0LCJjbGljayIsdy5vcGVuKSk6KHcuX2lucHV0LnJlbW92ZUV2ZW50TGlzdGVuZXIoImZvY3VzIix3Lm9wZW4pLHcuX2lucHV0LnJlbW92ZUV2ZW50TGlzdGVuZXIoImNsaWNrIix3Lm9wZW4pKX1dfTtmdW5jdGlvbiBtZShlLHQpe3ZhciBuPVtdO2lmKGUgaW5zdGFuY2VvZiBBcnJheSluPWUubWFwKChmdW5jdGlvbihlKXtyZXR1cm4gdy5wYXJzZURhdGUoZSx0KX0pKTtlbHNlIGlmKGUgaW5zdGFuY2VvZiBEYXRlfHwibnVtYmVyIj09dHlwZW9mIGUpbj1bdy5wYXJzZURhdGUoZSx0KV07ZWxzZSBpZigic3RyaW5nIj09dHlwZW9mIGUpc3dpdGNoKHcuY29uZmlnLm1vZGUpe2Nhc2Uic2luZ2xlIjpjYXNlInRpbWUiOm49W3cucGFyc2VEYXRlKGUsdCldO2JyZWFrO2Nhc2UibXVsdGlwbGUiOm49ZS5zcGxpdCh3LmNvbmZpZy5jb25qdW5jdGlvbikubWFwKChmdW5jdGlvbihlKXtyZXR1cm4gdy5wYXJzZURhdGUoZSx0KX0pKTticmVhaztjYXNlInJhbmdlIjpuPWUuc3BsaXQody5sMTBuLnJhbmdlU2VwYXJhdG9yKS5tYXAoKGZ1bmN0aW9uKGUpe3JldHVybiB3LnBhcnNlRGF0ZShlLHQpfSkpfWVsc2Ugdy5jb25maWcuZXJyb3JIYW5kbGVyKG5ldyBFcnJvcigiSW52YWxpZCBkYXRlIHN1cHBsaWVkOiAiK0pTT04uc3RyaW5naWZ5KGUpKSk7dy5zZWxlY3RlZERhdGVzPXcuY29uZmlnLmFsbG93SW52YWxpZFByZWxvYWQ\/bjpuLmZpbHRlcigoZnVuY3Rpb24oZSl7cmV0dXJuIGUgaW5zdGFuY2VvZiBEYXRlJiZYKGUsITEpfSkpLCJyYW5nZSI9PT13LmNvbmZpZy5tb2RlJiZ3LnNlbGVjdGVkRGF0ZXMuc29ydCgoZnVuY3Rpb24oZSx0KXtyZXR1cm4gZS5nZXRUaW1lKCktdC5nZXRUaW1lKCl9KSl9ZnVuY3Rpb24gZ2UoZSl7cmV0dXJuIGUuc2xpY2UoKS5tYXAoKGZ1bmN0aW9uKGUpe3JldHVybiJzdHJpbmciPT10eXBlb2YgZXx8Im51bWJlciI9PXR5cGVvZiBlfHxlIGluc3RhbmNlb2YgRGF0ZT93LnBhcnNlRGF0ZShlLHZvaWQgMCwhMCk6ZSYmIm9iamVjdCI9PXR5cGVvZiBlJiZlLmZyb20mJmUudG8\/e2Zyb206dy5wYXJzZURhdGUoZS5mcm9tLHZvaWQgMCksdG86dy5wYXJzZURhdGUoZS50byx2b2lkIDApfTplfSkpLmZpbHRlcigoZnVuY3Rpb24oZSl7cmV0dXJuIGV9KSl9ZnVuY3Rpb24gcGUoZSx0KXtpZih2b2lkIDAhPT13LmNvbmZpZyl7dmFyIG49dy5jb25maWdbZV07aWYodm9pZCAwIT09biYmbi5sZW5ndGg+MClmb3IodmFyIGE9MDtuW2FdJiZhPG4ubGVuZ3RoO2ErKyluW2FdKHcuc2VsZWN0ZWREYXRlcyx3LmlucHV0LnZhbHVlLHcsdCk7Im9uQ2hhbmdlIj09PWUmJih3LmlucHV0LmRpc3BhdGNoRXZlbnQoaGUoImNoYW5nZSIpKSx3LmlucHV0LmRpc3BhdGNoRXZlbnQoaGUoImlucHV0IikpKX19ZnVuY3Rpb24gaGUoZSl7dmFyIHQ9ZG9jdW1lbnQuY3JlYXRlRXZlbnQoIkV2ZW50Iik7cmV0dXJuIHQuaW5pdEV2ZW50KGUsITAsITApLHR9ZnVuY3Rpb24gdmUoZSl7Zm9yKHZhciB0PTA7dDx3LnNlbGVjdGVkRGF0ZXMubGVuZ3RoO3QrKylpZigwPT09TSh3LnNlbGVjdGVkRGF0ZXNbdF0sZSkpcmV0dXJuIiIrdDtyZXR1cm4hMX1mdW5jdGlvbiBEZSgpe3cuY29uZmlnLm5vQ2FsZW5kYXJ8fHcuaXNNb2JpbGV8fCF3Lm1vbnRoTmF2fHwody55ZWFyRWxlbWVudHMuZm9yRWFjaCgoZnVuY3Rpb24oZSx0KXt2YXIgbj1uZXcgRGF0ZSh3LmN1cnJlbnRZZWFyLHcuY3VycmVudE1vbnRoLDEpO24uc2V0TW9udGgody5jdXJyZW50TW9udGgrdCksdy5jb25maWcuc2hvd01vbnRocz4xfHwic3RhdGljIj09PXcuY29uZmlnLm1vbnRoU2VsZWN0b3JUeXBlP3cubW9udGhFbGVtZW50c1t0XS50ZXh0Q29udGVudD1oKG4uZ2V0TW9udGgoKSx3LmNvbmZpZy5zaG9ydGhhbmRDdXJyZW50TW9udGgsdy5sMTBuKSsiICI6dy5tb250aHNEcm9wZG93bkNvbnRhaW5lci52YWx1ZT1uLmdldE1vbnRoKCkudG9TdHJpbmcoKSxlLnZhbHVlPW4uZ2V0RnVsbFllYXIoKS50b1N0cmluZygpfSkpLHcuX2hpZGVQcmV2TW9udGhBcnJvdz12b2lkIDAhPT13LmNvbmZpZy5taW5EYXRlJiYody5jdXJyZW50WWVhcj09PXcuY29uZmlnLm1pbkRhdGUuZ2V0RnVsbFllYXIoKT93LmN1cnJlbnRNb250aDw9dy5jb25maWcubWluRGF0ZS5nZXRNb250aCgpOncuY3VycmVudFllYXI8dy5jb25maWcubWluRGF0ZS5nZXRGdWxsWWVhcigpKSx3Ll9oaWRlTmV4dE1vbnRoQXJyb3c9dm9pZCAwIT09dy5jb25maWcubWF4RGF0ZSYmKHcuY3VycmVudFllYXI9PT13LmNvbmZpZy5tYXhEYXRlLmdldEZ1bGxZZWFyKCk\/dy5jdXJyZW50TW9udGgrMT53LmNvbmZpZy5tYXhEYXRlLmdldE1vbnRoKCk6dy5jdXJyZW50WWVhcj53LmNvbmZpZy5tYXhEYXRlLmdldEZ1bGxZZWFyKCkpKX1mdW5jdGlvbiB3ZShlKXtyZXR1cm4gdy5zZWxlY3RlZERhdGVzLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHcuZm9ybWF0RGF0ZSh0LGUpfSkpLmZpbHRlcigoZnVuY3Rpb24oZSx0LG4pe3JldHVybiJyYW5nZSIhPT13LmNvbmZpZy5tb2RlfHx3LmNvbmZpZy5lbmFibGVUaW1lfHxuLmluZGV4T2YoZSk9PT10fSkpLmpvaW4oInJhbmdlIiE9PXcuY29uZmlnLm1vZGU\/dy5jb25maWcuY29uanVuY3Rpb246dy5sMTBuLnJhbmdlU2VwYXJhdG9yKX1mdW5jdGlvbiBiZShlKXt2b2lkIDA9PT1lJiYoZT0hMCksdm9pZCAwIT09dy5tb2JpbGVJbnB1dCYmdy5tb2JpbGVGb3JtYXRTdHImJih3Lm1vYmlsZUlucHV0LnZhbHVlPXZvaWQgMCE9PXcubGF0ZXN0U2VsZWN0ZWREYXRlT2JqP3cuZm9ybWF0RGF0ZSh3LmxhdGVzdFNlbGVjdGVkRGF0ZU9iaix3Lm1vYmlsZUZvcm1hdFN0cik6IiIpLHcuaW5wdXQudmFsdWU9d2Uody5jb25maWcuZGF0ZUZvcm1hdCksdm9pZCAwIT09dy5hbHRJbnB1dCYmKHcuYWx0SW5wdXQudmFsdWU9d2Uody5jb25maWcuYWx0Rm9ybWF0KSksITEhPT1lJiZwZSgib25WYWx1ZVVwZGF0ZSIpfWZ1bmN0aW9uIENlKGUpe3ZhciB0PWcoZSksbj13LnByZXZNb250aE5hdi5jb250YWlucyh0KSxhPXcubmV4dE1vbnRoTmF2LmNvbnRhaW5zKHQpO258fGE\/RyhuPy0xOjEpOncueWVhckVsZW1lbnRzLmluZGV4T2YodCk+PTA\/dC5zZWxlY3QoKTp0LmNsYXNzTGlzdC5jb250YWlucygiYXJyb3dVcCIpP3cuY2hhbmdlWWVhcih3LmN1cnJlbnRZZWFyKzEpOnQuY2xhc3NMaXN0LmNvbnRhaW5zKCJhcnJvd0Rvd24iKSYmdy5jaGFuZ2VZZWFyKHcuY3VycmVudFllYXItMSl9cmV0dXJuIGZ1bmN0aW9uKCl7dy5lbGVtZW50PXcuaW5wdXQ9cCx3LmlzT3Blbj0hMSxmdW5jdGlvbigpe3ZhciB0PVsid3JhcCIsIndlZWtOdW1iZXJzIiwiYWxsb3dJbnB1dCIsImFsbG93SW52YWxpZFByZWxvYWQiLCJjbGlja09wZW5zIiwidGltZV8yNGhyIiwiZW5hYmxlVGltZSIsIm5vQ2FsZW5kYXIiLCJhbHRJbnB1dCIsInNob3J0aGFuZEN1cnJlbnRNb250aCIsImlubGluZSIsInN0YXRpYyIsImVuYWJsZVNlY29uZHMiLCJkaXNhYmxlTW9iaWxlIl0saT1lKGUoe30sSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShwLmRhdGFzZXR8fHt9KSkpLHYpLG89e307dy5jb25maWcucGFyc2VEYXRlPWkucGFyc2VEYXRlLHcuY29uZmlnLmZvcm1hdERhdGU9aS5mb3JtYXREYXRlLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh3LmNvbmZpZywiZW5hYmxlIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHcuY29uZmlnLl9lbmFibGV9LHNldDpmdW5jdGlvbihlKXt3LmNvbmZpZy5fZW5hYmxlPWdlKGUpfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh3LmNvbmZpZywiZGlzYWJsZSIse2dldDpmdW5jdGlvbigpe3JldHVybiB3LmNvbmZpZy5fZGlzYWJsZX0sc2V0OmZ1bmN0aW9uKGUpe3cuY29uZmlnLl9kaXNhYmxlPWdlKGUpfX0pO3ZhciByPSJ0aW1lIj09PWkubW9kZTtpZighaS5kYXRlRm9ybWF0JiYoaS5lbmFibGVUaW1lfHxyKSl7dmFyIGw9VC5kZWZhdWx0Q29uZmlnLmRhdGVGb3JtYXR8fGEuZGF0ZUZvcm1hdDtvLmRhdGVGb3JtYXQ9aS5ub0NhbGVuZGFyfHxyPyJIOmkiKyhpLmVuYWJsZVNlY29uZHM\/IjpTIjoiIik6bCsiIEg6aSIrKGkuZW5hYmxlU2Vjb25kcz8iOlMiOiIiKX1pZihpLmFsdElucHV0JiYoaS5lbmFibGVUaW1lfHxyKSYmIWkuYWx0Rm9ybWF0KXt2YXIgZD1ULmRlZmF1bHRDb25maWcuYWx0Rm9ybWF0fHxhLmFsdEZvcm1hdDtvLmFsdEZvcm1hdD1pLm5vQ2FsZW5kYXJ8fHI\/Img6aSIrKGkuZW5hYmxlU2Vjb25kcz8iOlMgSyI6IiBLIik6ZCsiIGg6aSIrKGkuZW5hYmxlU2Vjb25kcz8iOlMiOiIiKSsiIEsifU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh3LmNvbmZpZywibWluRGF0ZSIse2dldDpmdW5jdGlvbigpe3JldHVybiB3LmNvbmZpZy5fbWluRGF0ZX0sc2V0Om9lKCJtaW4iKX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh3LmNvbmZpZywibWF4RGF0ZSIse2dldDpmdW5jdGlvbigpe3JldHVybiB3LmNvbmZpZy5fbWF4RGF0ZX0sc2V0Om9lKCJtYXgiKX0pO3ZhciBzPWZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbih0KXt3LmNvbmZpZ1sibWluIj09PWU\/Il9taW5UaW1lIjoiX21heFRpbWUiXT13LnBhcnNlRGF0ZSh0LCJIOmk6UyIpfX07T2JqZWN0LmRlZmluZVByb3BlcnR5KHcuY29uZmlnLCJtaW5UaW1lIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHcuY29uZmlnLl9taW5UaW1lfSxzZXQ6cygibWluIil9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkody5jb25maWcsIm1heFRpbWUiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdy5jb25maWcuX21heFRpbWV9LHNldDpzKCJtYXgiKX0pLCJ0aW1lIj09PWkubW9kZSYmKHcuY29uZmlnLm5vQ2FsZW5kYXI9ITAsdy5jb25maWcuZW5hYmxlVGltZT0hMCk7T2JqZWN0LmFzc2lnbih3LmNvbmZpZyxvLGkpO2Zvcih2YXIgdT0wO3U8dC5sZW5ndGg7dSsrKXcuY29uZmlnW3RbdV1dPSEwPT09dy5jb25maWdbdFt1XV18fCJ0cnVlIj09PXcuY29uZmlnW3RbdV1dO24uZmlsdGVyKChmdW5jdGlvbihlKXtyZXR1cm4gdm9pZCAwIT09dy5jb25maWdbZV19KSkuZm9yRWFjaCgoZnVuY3Rpb24oZSl7dy5jb25maWdbZV09Yyh3LmNvbmZpZ1tlXXx8W10pLm1hcChFKX0pKSx3LmlzTW9iaWxlPSF3LmNvbmZpZy5kaXNhYmxlTW9iaWxlJiYhdy5jb25maWcuaW5saW5lJiYic2luZ2xlIj09PXcuY29uZmlnLm1vZGUmJiF3LmNvbmZpZy5kaXNhYmxlLmxlbmd0aCYmIXcuY29uZmlnLmVuYWJsZSYmIXcuY29uZmlnLndlZWtOdW1iZXJzJiYvQW5kcm9pZHx3ZWJPU3xpUGhvbmV8aVBhZHxpUG9kfEJsYWNrQmVycnl8SUVNb2JpbGV8T3BlcmEgTWluaS9pLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCk7Zm9yKHU9MDt1PHcuY29uZmlnLnBsdWdpbnMubGVuZ3RoO3UrKyl7dmFyIGY9dy5jb25maWcucGx1Z2luc1t1XSh3KXx8e307Zm9yKHZhciBtIGluIGYpbi5pbmRleE9mKG0pPi0xP3cuY29uZmlnW21dPWMoZlttXSkubWFwKEUpLmNvbmNhdCh3LmNvbmZpZ1ttXSk6dm9pZCAwPT09aVttXSYmKHcuY29uZmlnW21dPWZbbV0pfWkuYWx0SW5wdXRDbGFzc3x8KHcuY29uZmlnLmFsdElucHV0Q2xhc3M9cmUoKS5jbGFzc05hbWUrIiAiK3cuY29uZmlnLmFsdElucHV0Q2xhc3MpO3BlKCJvblBhcnNlQ29uZmlnIil9KCksbGUoKSxmdW5jdGlvbigpe2lmKHcuaW5wdXQ9cmUoKSwhdy5pbnB1dClyZXR1cm4gdm9pZCB3LmNvbmZpZy5lcnJvckhhbmRsZXIobmV3IEVycm9yKCJJbnZhbGlkIGlucHV0IGVsZW1lbnQgc3BlY2lmaWVkIikpO3cuaW5wdXQuX3R5cGU9dy5pbnB1dC50eXBlLHcuaW5wdXQudHlwZT0idGV4dCIsdy5pbnB1dC5jbGFzc0xpc3QuYWRkKCJmbGF0cGlja3ItaW5wdXQiKSx3Ll9pbnB1dD13LmlucHV0LHcuY29uZmlnLmFsdElucHV0JiYody5hbHRJbnB1dD1zKHcuaW5wdXQubm9kZU5hbWUsdy5jb25maWcuYWx0SW5wdXRDbGFzcyksdy5faW5wdXQ9dy5hbHRJbnB1dCx3LmFsdElucHV0LnBsYWNlaG9sZGVyPXcuaW5wdXQucGxhY2Vob2xkZXIsdy5hbHRJbnB1dC5kaXNhYmxlZD13LmlucHV0LmRpc2FibGVkLHcuYWx0SW5wdXQucmVxdWlyZWQ9dy5pbnB1dC5yZXF1aXJlZCx3LmFsdElucHV0LnRhYkluZGV4PXcuaW5wdXQudGFiSW5kZXgsdy5hbHRJbnB1dC50eXBlPSJ0ZXh0Iix3LmlucHV0LnNldEF0dHJpYnV0ZSgidHlwZSIsImhpZGRlbiIpLCF3LmNvbmZpZy5zdGF0aWMmJncuaW5wdXQucGFyZW50Tm9kZSYmdy5pbnB1dC5wYXJlbnROb2RlLmluc2VydEJlZm9yZSh3LmFsdElucHV0LHcuaW5wdXQubmV4dFNpYmxpbmcpKTt3LmNvbmZpZy5hbGxvd0lucHV0fHx3Ll9pbnB1dC5zZXRBdHRyaWJ1dGUoInJlYWRvbmx5IiwicmVhZG9ubHkiKTt3Ll9wb3NpdGlvbkVsZW1lbnQ9dy5jb25maWcucG9zaXRpb25FbGVtZW50fHx3Ll9pbnB1dH0oKSxmdW5jdGlvbigpe3cuc2VsZWN0ZWREYXRlcz1bXSx3Lm5vdz13LnBhcnNlRGF0ZSh3LmNvbmZpZy5ub3cpfHxuZXcgRGF0ZTt2YXIgZT13LmNvbmZpZy5kZWZhdWx0RGF0ZXx8KCJJTlBVVCIhPT13LmlucHV0Lm5vZGVOYW1lJiYiVEVYVEFSRUEiIT09dy5pbnB1dC5ub2RlTmFtZXx8IXcuaW5wdXQucGxhY2Vob2xkZXJ8fHcuaW5wdXQudmFsdWUhPT13LmlucHV0LnBsYWNlaG9sZGVyP3cuaW5wdXQudmFsdWU6bnVsbCk7ZSYmbWUoZSx3LmNvbmZpZy5kYXRlRm9ybWF0KTt3Ll9pbml0aWFsRGF0ZT13LnNlbGVjdGVkRGF0ZXMubGVuZ3RoPjA\/dy5zZWxlY3RlZERhdGVzWzBdOncuY29uZmlnLm1pbkRhdGUmJncuY29uZmlnLm1pbkRhdGUuZ2V0VGltZSgpPncubm93LmdldFRpbWUoKT93LmNvbmZpZy5taW5EYXRlOncuY29uZmlnLm1heERhdGUmJncuY29uZmlnLm1heERhdGUuZ2V0VGltZSgpPHcubm93LmdldFRpbWUoKT93LmNvbmZpZy5tYXhEYXRlOncubm93LHcuY3VycmVudFllYXI9dy5faW5pdGlhbERhdGUuZ2V0RnVsbFllYXIoKSx3LmN1cnJlbnRNb250aD13Ll9pbml0aWFsRGF0ZS5nZXRNb250aCgpLHcuc2VsZWN0ZWREYXRlcy5sZW5ndGg+MCYmKHcubGF0ZXN0U2VsZWN0ZWREYXRlT2JqPXcuc2VsZWN0ZWREYXRlc1swXSk7dm9pZCAwIT09dy5jb25maWcubWluVGltZSYmKHcuY29uZmlnLm1pblRpbWU9dy5wYXJzZURhdGUody5jb25maWcubWluVGltZSwiSDppIikpO3ZvaWQgMCE9PXcuY29uZmlnLm1heFRpbWUmJih3LmNvbmZpZy5tYXhUaW1lPXcucGFyc2VEYXRlKHcuY29uZmlnLm1heFRpbWUsIkg6aSIpKTt3Lm1pbkRhdGVIYXNUaW1lPSEhdy5jb25maWcubWluRGF0ZSYmKHcuY29uZmlnLm1pbkRhdGUuZ2V0SG91cnMoKT4wfHx3LmNvbmZpZy5taW5EYXRlLmdldE1pbnV0ZXMoKT4wfHx3LmNvbmZpZy5taW5EYXRlLmdldFNlY29uZHMoKT4wKSx3Lm1heERhdGVIYXNUaW1lPSEhdy5jb25maWcubWF4RGF0ZSYmKHcuY29uZmlnLm1heERhdGUuZ2V0SG91cnMoKT4wfHx3LmNvbmZpZy5tYXhEYXRlLmdldE1pbnV0ZXMoKT4wfHx3LmNvbmZpZy5tYXhEYXRlLmdldFNlY29uZHMoKT4wKX0oKSx3LnV0aWxzPXtnZXREYXlzSW5Nb250aDpmdW5jdGlvbihlLHQpe3JldHVybiB2b2lkIDA9PT1lJiYoZT13LmN1cnJlbnRNb250aCksdm9pZCAwPT09dCYmKHQ9dy5jdXJyZW50WWVhciksMT09PWUmJih0JTQ9PTAmJnQlMTAwIT0wfHx0JTQwMD09MCk\/Mjk6dy5sMTBuLmRheXNJbk1vbnRoW2VdfX0sdy5pc01vYmlsZXx8ZnVuY3Rpb24oKXt2YXIgZT13aW5kb3cuZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpO2lmKHcuY2FsZW5kYXJDb250YWluZXI9cygiZGl2IiwiZmxhdHBpY2tyLWNhbGVuZGFyIiksdy5jYWxlbmRhckNvbnRhaW5lci50YWJJbmRleD0tMSwhdy5jb25maWcubm9DYWxlbmRhcil7aWYoZS5hcHBlbmRDaGlsZCgody5tb250aE5hdj1zKCJkaXYiLCJmbGF0cGlja3ItbW9udGhzIiksdy55ZWFyRWxlbWVudHM9W10sdy5tb250aEVsZW1lbnRzPVtdLHcucHJldk1vbnRoTmF2PXMoInNwYW4iLCJmbGF0cGlja3ItcHJldi1tb250aCIpLHcucHJldk1vbnRoTmF2LmlubmVySFRNTD13LmNvbmZpZy5wcmV2QXJyb3csdy5uZXh0TW9udGhOYXY9cygic3BhbiIsImZsYXRwaWNrci1uZXh0LW1vbnRoIiksdy5uZXh0TW9udGhOYXYuaW5uZXJIVE1MPXcuY29uZmlnLm5leHRBcnJvdyxxKCksT2JqZWN0LmRlZmluZVByb3BlcnR5KHcsIl9oaWRlUHJldk1vbnRoQXJyb3ciLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdy5fX2hpZGVQcmV2TW9udGhBcnJvd30sc2V0OmZ1bmN0aW9uKGUpe3cuX19oaWRlUHJldk1vbnRoQXJyb3chPT1lJiYoZCh3LnByZXZNb250aE5hdiwiZmxhdHBpY2tyLWRpc2FibGVkIixlKSx3Ll9faGlkZVByZXZNb250aEFycm93PWUpfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh3LCJfaGlkZU5leHRNb250aEFycm93Iix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHcuX19oaWRlTmV4dE1vbnRoQXJyb3d9LHNldDpmdW5jdGlvbihlKXt3Ll9faGlkZU5leHRNb250aEFycm93IT09ZSYmKGQody5uZXh0TW9udGhOYXYsImZsYXRwaWNrci1kaXNhYmxlZCIsZSksdy5fX2hpZGVOZXh0TW9udGhBcnJvdz1lKX19KSx3LmN1cnJlbnRZZWFyRWxlbWVudD13LnllYXJFbGVtZW50c1swXSxEZSgpLHcubW9udGhOYXYpKSx3LmlubmVyQ29udGFpbmVyPXMoImRpdiIsImZsYXRwaWNrci1pbm5lckNvbnRhaW5lciIpLHcuY29uZmlnLndlZWtOdW1iZXJzKXt2YXIgdD1mdW5jdGlvbigpe3cuY2FsZW5kYXJDb250YWluZXIuY2xhc3NMaXN0LmFkZCgiaGFzV2Vla3MiKTt2YXIgZT1zKCJkaXYiLCJmbGF0cGlja3Itd2Vla3dyYXBwZXIiKTtlLmFwcGVuZENoaWxkKHMoInNwYW4iLCJmbGF0cGlja3Itd2Vla2RheSIsdy5sMTBuLndlZWtBYmJyZXZpYXRpb24pKTt2YXIgdD1zKCJkaXYiLCJmbGF0cGlja3Itd2Vla3MiKTtyZXR1cm4gZS5hcHBlbmRDaGlsZCh0KSx7d2Vla1dyYXBwZXI6ZSx3ZWVrTnVtYmVyczp0fX0oKSxuPXQud2Vla1dyYXBwZXIsYT10LndlZWtOdW1iZXJzO3cuaW5uZXJDb250YWluZXIuYXBwZW5kQ2hpbGQobiksdy53ZWVrTnVtYmVycz1hLHcud2Vla1dyYXBwZXI9bn13LnJDb250YWluZXI9cygiZGl2IiwiZmxhdHBpY2tyLXJDb250YWluZXIiKSx3LnJDb250YWluZXIuYXBwZW5kQ2hpbGQoJCgpKSx3LmRheXNDb250YWluZXJ8fCh3LmRheXNDb250YWluZXI9cygiZGl2IiwiZmxhdHBpY2tyLWRheXMiKSx3LmRheXNDb250YWluZXIudGFiSW5kZXg9LTEpLEooKSx3LnJDb250YWluZXIuYXBwZW5kQ2hpbGQody5kYXlzQ29udGFpbmVyKSx3LmlubmVyQ29udGFpbmVyLmFwcGVuZENoaWxkKHcuckNvbnRhaW5lciksZS5hcHBlbmRDaGlsZCh3LmlubmVyQ29udGFpbmVyKX13LmNvbmZpZy5lbmFibGVUaW1lJiZlLmFwcGVuZENoaWxkKGZ1bmN0aW9uKCl7dy5jYWxlbmRhckNvbnRhaW5lci5jbGFzc0xpc3QuYWRkKCJoYXNUaW1lIiksdy5jb25maWcubm9DYWxlbmRhciYmdy5jYWxlbmRhckNvbnRhaW5lci5jbGFzc0xpc3QuYWRkKCJub0NhbGVuZGFyIik7dmFyIGU9eCh3LmNvbmZpZyk7dy50aW1lQ29udGFpbmVyPXMoImRpdiIsImZsYXRwaWNrci10aW1lIiksdy50aW1lQ29udGFpbmVyLnRhYkluZGV4PS0xO3ZhciB0PXMoInNwYW4iLCJmbGF0cGlja3ItdGltZS1zZXBhcmF0b3IiLCI6Iiksbj1tKCJmbGF0cGlja3ItaG91ciIseyJhcmlhLWxhYmVsIjp3LmwxMG4uaG91ckFyaWFMYWJlbH0pO3cuaG91ckVsZW1lbnQ9bi5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaW5wdXQiKVswXTt2YXIgYT1tKCJmbGF0cGlja3ItbWludXRlIix7ImFyaWEtbGFiZWwiOncubDEwbi5taW51dGVBcmlhTGFiZWx9KTt3Lm1pbnV0ZUVsZW1lbnQ9YS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaW5wdXQiKVswXSx3LmhvdXJFbGVtZW50LnRhYkluZGV4PXcubWludXRlRWxlbWVudC50YWJJbmRleD0tMSx3LmhvdXJFbGVtZW50LnZhbHVlPW8ody5sYXRlc3RTZWxlY3RlZERhdGVPYmo\/dy5sYXRlc3RTZWxlY3RlZERhdGVPYmouZ2V0SG91cnMoKTp3LmNvbmZpZy50aW1lXzI0aHI\/ZS5ob3VyczpmdW5jdGlvbihlKXtzd2l0Y2goZSUyNCl7Y2FzZSAwOmNhc2UgMTI6cmV0dXJuIDEyO2RlZmF1bHQ6cmV0dXJuIGUlMTJ9fShlLmhvdXJzKSksdy5taW51dGVFbGVtZW50LnZhbHVlPW8ody5sYXRlc3RTZWxlY3RlZERhdGVPYmo\/dy5sYXRlc3RTZWxlY3RlZERhdGVPYmouZ2V0TWludXRlcygpOmUubWludXRlcyksdy5ob3VyRWxlbWVudC5zZXRBdHRyaWJ1dGUoInN0ZXAiLHcuY29uZmlnLmhvdXJJbmNyZW1lbnQudG9TdHJpbmcoKSksdy5taW51dGVFbGVtZW50LnNldEF0dHJpYnV0ZSgic3RlcCIsdy5jb25maWcubWludXRlSW5jcmVtZW50LnRvU3RyaW5nKCkpLHcuaG91ckVsZW1lbnQuc2V0QXR0cmlidXRlKCJtaW4iLHcuY29uZmlnLnRpbWVfMjRocj8iMCI6IjEiKSx3LmhvdXJFbGVtZW50LnNldEF0dHJpYnV0ZSgibWF4Iix3LmNvbmZpZy50aW1lXzI0aHI\/IjIzIjoiMTIiKSx3LmhvdXJFbGVtZW50LnNldEF0dHJpYnV0ZSgibWF4bGVuZ3RoIiwiMiIpLHcubWludXRlRWxlbWVudC5zZXRBdHRyaWJ1dGUoIm1pbiIsIjAiKSx3Lm1pbnV0ZUVsZW1lbnQuc2V0QXR0cmlidXRlKCJtYXgiLCI1OSIpLHcubWludXRlRWxlbWVudC5zZXRBdHRyaWJ1dGUoIm1heGxlbmd0aCIsIjIiKSx3LnRpbWVDb250YWluZXIuYXBwZW5kQ2hpbGQobiksdy50aW1lQ29udGFpbmVyLmFwcGVuZENoaWxkKHQpLHcudGltZUNvbnRhaW5lci5hcHBlbmRDaGlsZChhKSx3LmNvbmZpZy50aW1lXzI0aHImJncudGltZUNvbnRhaW5lci5jbGFzc0xpc3QuYWRkKCJ0aW1lMjRociIpO2lmKHcuY29uZmlnLmVuYWJsZVNlY29uZHMpe3cudGltZUNvbnRhaW5lci5jbGFzc0xpc3QuYWRkKCJoYXNTZWNvbmRzIik7dmFyIGk9bSgiZmxhdHBpY2tyLXNlY29uZCIpO3cuc2Vjb25kRWxlbWVudD1pLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJpbnB1dCIpWzBdLHcuc2Vjb25kRWxlbWVudC52YWx1ZT1vKHcubGF0ZXN0U2VsZWN0ZWREYXRlT2JqP3cubGF0ZXN0U2VsZWN0ZWREYXRlT2JqLmdldFNlY29uZHMoKTplLnNlY29uZHMpLHcuc2Vjb25kRWxlbWVudC5zZXRBdHRyaWJ1dGUoInN0ZXAiLHcubWludXRlRWxlbWVudC5nZXRBdHRyaWJ1dGUoInN0ZXAiKSksdy5zZWNvbmRFbGVtZW50LnNldEF0dHJpYnV0ZSgibWluIiwiMCIpLHcuc2Vjb25kRWxlbWVudC5zZXRBdHRyaWJ1dGUoIm1heCIsIjU5Iiksdy5zZWNvbmRFbGVtZW50LnNldEF0dHJpYnV0ZSgibWF4bGVuZ3RoIiwiMiIpLHcudGltZUNvbnRhaW5lci5hcHBlbmRDaGlsZChzKCJzcGFuIiwiZmxhdHBpY2tyLXRpbWUtc2VwYXJhdG9yIiwiOiIpKSx3LnRpbWVDb250YWluZXIuYXBwZW5kQ2hpbGQoaSl9dy5jb25maWcudGltZV8yNGhyfHwody5hbVBNPXMoInNwYW4iLCJmbGF0cGlja3ItYW0tcG0iLHcubDEwbi5hbVBNW3IoKHcubGF0ZXN0U2VsZWN0ZWREYXRlT2JqP3cuaG91ckVsZW1lbnQudmFsdWU6dy5jb25maWcuZGVmYXVsdEhvdXIpPjExKV0pLHcuYW1QTS50aXRsZT13LmwxMG4udG9nZ2xlVGl0bGUsdy5hbVBNLnRhYkluZGV4PS0xLHcudGltZUNvbnRhaW5lci5hcHBlbmRDaGlsZCh3LmFtUE0pKTtyZXR1cm4gdy50aW1lQ29udGFpbmVyfSgpKTtkKHcuY2FsZW5kYXJDb250YWluZXIsInJhbmdlTW9kZSIsInJhbmdlIj09PXcuY29uZmlnLm1vZGUpLGQody5jYWxlbmRhckNvbnRhaW5lciwiYW5pbWF0ZSIsITA9PT13LmNvbmZpZy5hbmltYXRlKSxkKHcuY2FsZW5kYXJDb250YWluZXIsIm11bHRpTW9udGgiLHcuY29uZmlnLnNob3dNb250aHM+MSksdy5jYWxlbmRhckNvbnRhaW5lci5hcHBlbmRDaGlsZChlKTt2YXIgaT12b2lkIDAhPT13LmNvbmZpZy5hcHBlbmRUbyYmdm9pZCAwIT09dy5jb25maWcuYXBwZW5kVG8ubm9kZVR5cGU7aWYoKHcuY29uZmlnLmlubGluZXx8dy5jb25maWcuc3RhdGljKSYmKHcuY2FsZW5kYXJDb250YWluZXIuY2xhc3NMaXN0LmFkZCh3LmNvbmZpZy5pbmxpbmU\/ImlubGluZSI6InN0YXRpYyIpLHcuY29uZmlnLmlubGluZSYmKCFpJiZ3LmVsZW1lbnQucGFyZW50Tm9kZT93LmVsZW1lbnQucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUody5jYWxlbmRhckNvbnRhaW5lcix3Ll9pbnB1dC5uZXh0U2libGluZyk6dm9pZCAwIT09dy5jb25maWcuYXBwZW5kVG8mJncuY29uZmlnLmFwcGVuZFRvLmFwcGVuZENoaWxkKHcuY2FsZW5kYXJDb250YWluZXIpKSx3LmNvbmZpZy5zdGF0aWMpKXt2YXIgbD1zKCJkaXYiLCJmbGF0cGlja3Itd3JhcHBlciIpO3cuZWxlbWVudC5wYXJlbnROb2RlJiZ3LmVsZW1lbnQucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUobCx3LmVsZW1lbnQpLGwuYXBwZW5kQ2hpbGQody5lbGVtZW50KSx3LmFsdElucHV0JiZsLmFwcGVuZENoaWxkKHcuYWx0SW5wdXQpLGwuYXBwZW5kQ2hpbGQody5jYWxlbmRhckNvbnRhaW5lcil9dy5jb25maWcuc3RhdGljfHx3LmNvbmZpZy5pbmxpbmV8fCh2b2lkIDAhPT13LmNvbmZpZy5hcHBlbmRUbz93LmNvbmZpZy5hcHBlbmRUbzp3aW5kb3cuZG9jdW1lbnQuYm9keSkuYXBwZW5kQ2hpbGQody5jYWxlbmRhckNvbnRhaW5lcil9KCksZnVuY3Rpb24oKXt3LmNvbmZpZy53cmFwJiZbIm9wZW4iLCJjbG9zZSIsInRvZ2dsZSIsImNsZWFyIl0uZm9yRWFjaCgoZnVuY3Rpb24oZSl7QXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbCh3LmVsZW1lbnQucXVlcnlTZWxlY3RvckFsbCgiW2RhdGEtIitlKyJdIiksKGZ1bmN0aW9uKHQpe3JldHVybiBBKHQsImNsaWNrIix3W2VdKX0pKX0pKTtpZih3LmlzTW9iaWxlKXJldHVybiB2b2lkIGZ1bmN0aW9uKCl7dmFyIGU9dy5jb25maWcuZW5hYmxlVGltZT93LmNvbmZpZy5ub0NhbGVuZGFyPyJ0aW1lIjoiZGF0ZXRpbWUtbG9jYWwiOiJkYXRlIjt3Lm1vYmlsZUlucHV0PXMoImlucHV0Iix3LmlucHV0LmNsYXNzTmFtZSsiIGZsYXRwaWNrci1tb2JpbGUiKSx3Lm1vYmlsZUlucHV0LnRhYkluZGV4PTEsdy5tb2JpbGVJbnB1dC50eXBlPWUsdy5tb2JpbGVJbnB1dC5kaXNhYmxlZD13LmlucHV0LmRpc2FibGVkLHcubW9iaWxlSW5wdXQucmVxdWlyZWQ9dy5pbnB1dC5yZXF1aXJlZCx3Lm1vYmlsZUlucHV0LnBsYWNlaG9sZGVyPXcuaW5wdXQucGxhY2Vob2xkZXIsdy5tb2JpbGVGb3JtYXRTdHI9ImRhdGV0aW1lLWxvY2FsIj09PWU\/IlktbS1kXFxUSDppOlMiOiJkYXRlIj09PWU\/IlktbS1kIjoiSDppOlMiLHcuc2VsZWN0ZWREYXRlcy5sZW5ndGg+MCYmKHcubW9iaWxlSW5wdXQuZGVmYXVsdFZhbHVlPXcubW9iaWxlSW5wdXQudmFsdWU9dy5mb3JtYXREYXRlKHcuc2VsZWN0ZWREYXRlc1swXSx3Lm1vYmlsZUZvcm1hdFN0cikpO3cuY29uZmlnLm1pbkRhdGUmJih3Lm1vYmlsZUlucHV0Lm1pbj13LmZvcm1hdERhdGUody5jb25maWcubWluRGF0ZSwiWS1tLWQiKSk7dy5jb25maWcubWF4RGF0ZSYmKHcubW9iaWxlSW5wdXQubWF4PXcuZm9ybWF0RGF0ZSh3LmNvbmZpZy5tYXhEYXRlLCJZLW0tZCIpKTt3LmlucHV0LmdldEF0dHJpYnV0ZSgic3RlcCIpJiYody5tb2JpbGVJbnB1dC5zdGVwPVN0cmluZyh3LmlucHV0LmdldEF0dHJpYnV0ZSgic3RlcCIpKSk7dy5pbnB1dC50eXBlPSJoaWRkZW4iLHZvaWQgMCE9PXcuYWx0SW5wdXQmJih3LmFsdElucHV0LnR5cGU9ImhpZGRlbiIpO3RyeXt3LmlucHV0LnBhcmVudE5vZGUmJncuaW5wdXQucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUody5tb2JpbGVJbnB1dCx3LmlucHV0Lm5leHRTaWJsaW5nKX1jYXRjaChlKXt9QSh3Lm1vYmlsZUlucHV0LCJjaGFuZ2UiLChmdW5jdGlvbihlKXt3LnNldERhdGUoZyhlKS52YWx1ZSwhMSx3Lm1vYmlsZUZvcm1hdFN0cikscGUoIm9uQ2hhbmdlIikscGUoIm9uQ2xvc2UiKX0pKX0oKTt2YXIgZT1sKGllLDUwKTt3Ll9kZWJvdW5jZWRDaGFuZ2U9bChOLDMwMCksdy5kYXlzQ29udGFpbmVyJiYhL2lQaG9uZXxpUGFkfGlQb2QvaS50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpJiZBKHcuZGF5c0NvbnRhaW5lciwibW91c2VvdmVyIiwoZnVuY3Rpb24oZSl7InJhbmdlIj09PXcuY29uZmlnLm1vZGUmJmFlKGcoZSkpfSkpO0Eod2luZG93LmRvY3VtZW50LmJvZHksImtleWRvd24iLG5lKSx3LmNvbmZpZy5pbmxpbmV8fHcuY29uZmlnLnN0YXRpY3x8QSh3aW5kb3csInJlc2l6ZSIsZSk7dm9pZCAwIT09d2luZG93Lm9udG91Y2hzdGFydD9BKHdpbmRvdy5kb2N1bWVudCwidG91Y2hzdGFydCIsWik6QSh3aW5kb3cuZG9jdW1lbnQsIm1vdXNlZG93biIsWik7QSh3aW5kb3cuZG9jdW1lbnQsImZvY3VzIixaLHtjYXB0dXJlOiEwfSksITA9PT13LmNvbmZpZy5jbGlja09wZW5zJiYoQSh3Ll9pbnB1dCwiZm9jdXMiLHcub3BlbiksQSh3Ll9pbnB1dCwiY2xpY2siLHcub3BlbikpO3ZvaWQgMCE9PXcuZGF5c0NvbnRhaW5lciYmKEEody5tb250aE5hdiwiY2xpY2siLENlKSxBKHcubW9udGhOYXYsWyJrZXl1cCIsImluY3JlbWVudCJdLEYpLEEody5kYXlzQ29udGFpbmVyLCJjbGljayIsdWUpKTtpZih2b2lkIDAhPT13LnRpbWVDb250YWluZXImJnZvaWQgMCE9PXcubWludXRlRWxlbWVudCYmdm9pZCAwIT09dy5ob3VyRWxlbWVudCl7dmFyIHQ9ZnVuY3Rpb24oZSl7cmV0dXJuIGcoZSkuc2VsZWN0KCl9O0Eody50aW1lQ29udGFpbmVyLFsiaW5jcmVtZW50Il0sSSksQSh3LnRpbWVDb250YWluZXIsImJsdXIiLEkse2NhcHR1cmU6ITB9KSxBKHcudGltZUNvbnRhaW5lciwiY2xpY2siLFkpLEEoW3cuaG91ckVsZW1lbnQsdy5taW51dGVFbGVtZW50XSxbImZvY3VzIiwiY2xpY2siXSx0KSx2b2lkIDAhPT13LnNlY29uZEVsZW1lbnQmJkEody5zZWNvbmRFbGVtZW50LCJmb2N1cyIsKGZ1bmN0aW9uKCl7cmV0dXJuIHcuc2Vjb25kRWxlbWVudCYmdy5zZWNvbmRFbGVtZW50LnNlbGVjdCgpfSkpLHZvaWQgMCE9PXcuYW1QTSYmQSh3LmFtUE0sImNsaWNrIiwoZnVuY3Rpb24oZSl7SShlKSxOKCl9KSl9dy5jb25maWcuYWxsb3dJbnB1dCYmQSh3Ll9pbnB1dCwiYmx1ciIsdGUpfSgpLCh3LnNlbGVjdGVkRGF0ZXMubGVuZ3RofHx3LmNvbmZpZy5ub0NhbGVuZGFyKSYmKHcuY29uZmlnLmVuYWJsZVRpbWUmJl8ody5jb25maWcubm9DYWxlbmRhcj93LmxhdGVzdFNlbGVjdGVkRGF0ZU9iajp2b2lkIDApLGJlKCExKSksaygpO3ZhciB0PS9eKCg\/IWNocm9tZXxhbmRyb2lkKS4pKnNhZmFyaS9pLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCk7IXcuaXNNb2JpbGUmJnQmJmNlKCkscGUoIm9uUmVhZHkiKX0oKSx3fWZ1bmN0aW9uIGsoZSx0KXtmb3IodmFyIG49QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoZSkuZmlsdGVyKChmdW5jdGlvbihlKXtyZXR1cm4gZSBpbnN0YW5jZW9mIEhUTUxFbGVtZW50fSkpLGE9W10saT0wO2k8bi5sZW5ndGg7aSsrKXt2YXIgbz1uW2ldO3RyeXtpZihudWxsIT09by5nZXRBdHRyaWJ1dGUoImRhdGEtZnAtb21pdCIpKWNvbnRpbnVlO3ZvaWQgMCE9PW8uX2ZsYXRwaWNrciYmKG8uX2ZsYXRwaWNrci5kZXN0cm95KCksby5fZmxhdHBpY2tyPXZvaWQgMCksby5fZmxhdHBpY2tyPUUobyx0fHx7fSksYS5wdXNoKG8uX2ZsYXRwaWNrcil9Y2F0Y2goZSl7Y29uc29sZS5lcnJvcihlKX19cmV0dXJuIDE9PT1hLmxlbmd0aD9hWzBdOmF9InVuZGVmaW5lZCIhPXR5cGVvZiBIVE1MRWxlbWVudCYmInVuZGVmaW5lZCIhPXR5cGVvZiBIVE1MQ29sbGVjdGlvbiYmInVuZGVmaW5lZCIhPXR5cGVvZiBOb2RlTGlzdCYmKEhUTUxDb2xsZWN0aW9uLnByb3RvdHlwZS5mbGF0cGlja3I9Tm9kZUxpc3QucHJvdG90eXBlLmZsYXRwaWNrcj1mdW5jdGlvbihlKXtyZXR1cm4gayh0aGlzLGUpfSxIVE1MRWxlbWVudC5wcm90b3R5cGUuZmxhdHBpY2tyPWZ1bmN0aW9uKGUpe3JldHVybiBrKFt0aGlzXSxlKX0pO3ZhciBUPWZ1bmN0aW9uKGUsdCl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiBlP2sod2luZG93LmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoZSksdCk6ZSBpbnN0YW5jZW9mIE5vZGU\/ayhbZV0sdCk6ayhlLHQpfTtyZXR1cm4gVC5kZWZhdWx0Q29uZmlnPXt9LFQubDEwbnM9e2VuOmUoe30saSksZGVmYXVsdDplKHt9LGkpfSxULmxvY2FsaXplPWZ1bmN0aW9uKHQpe1QubDEwbnMuZGVmYXVsdD1lKGUoe30sVC5sMTBucy5kZWZhdWx0KSx0KX0sVC5zZXREZWZhdWx0cz1mdW5jdGlvbih0KXtULmRlZmF1bHRDb25maWc9ZShlKHt9LFQuZGVmYXVsdENvbmZpZyksdCl9LFQucGFyc2VEYXRlPUMoe30pLFQuZm9ybWF0RGF0ZT1iKHt9KSxULmNvbXBhcmVEYXRlcz1NLCJ1bmRlZmluZWQiIT10eXBlb2YgalF1ZXJ5JiZ2b2lkIDAhPT1qUXVlcnkuZm4mJihqUXVlcnkuZm4uZmxhdHBpY2tyPWZ1bmN0aW9uKGUpe3JldHVybiBrKHRoaXMsZSl9KSxEYXRlLnByb3RvdHlwZS5mcF9pbmNyPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcgRGF0ZSh0aGlzLmdldEZ1bGxZZWFyKCksdGhpcy5nZXRNb250aCgpLHRoaXMuZ2V0RGF0ZSgpKygic3RyaW5nIj09dHlwZW9mIGU\/cGFyc2VJbnQoZSwxMCk6ZSkpfSwidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdyYmKHdpbmRvdy5mbGF0cGlja3I9VCksVH0pKTsKLyoqIC9tL2pzL3ZhbmlsbGFqcy9mbGF0cGlja3IuZnIuanMgKiovCnZhciBfX19kMmNfZmxhdHBpY2tyZnJqc19jX29uPSIyMDI1LTA1LTIzIDE3OjA1OjE3IjsndXNlIHN0cmljdCc7dmFyIF9fX2QyY19mbGF0cGlja3JmcmpzX2Nfb249IjIwMjQtMDEtMzEgMTQ6MzI6NDYiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfZmxhdHBpY2tyZnJqc19jX29uPSIyMDIzLTAxLTEyIDExOjQxOjQ2IjsidXNlIHN0cmljdCI7X19fZDJjX2ZsYXRwaWNrcmZyanNfY19vbj0iMjAyMy0wMS0xMiAxMDo1MTozMCI7InVzZSBzdHJpY3QiO19fX2QyY19mbGF0cGlja3JmcmpzX2Nfb249IjIwMjEtMTItMjEgMTM6MzA6NTIiOyJ1c2Ugc3RyaWN0IjsKKGZ1bmN0aW9uKGIsYSl7Im9iamVjdCI9PT10eXBlb2YgZXhwb3J0cyYmInVuZGVmaW5lZCIhPT10eXBlb2YgbW9kdWxlP2EoZXhwb3J0cyk6ImZ1bmN0aW9uIj09PXR5cGVvZiBkZWZpbmUmJmRlZmluZS5hbWQ\/ZGVmaW5lKFsiZXhwb3J0cyJdLGEpOihiPSJ1bmRlZmluZWQiIT09dHlwZW9mIGdsb2JhbFRoaXM\/Z2xvYmFsVGhpczpifHxzZWxmLGEoYi5mcj17fSkpfSkodGhpcyxmdW5jdGlvbihiKXt2YXIgYT0idW5kZWZpbmVkIiE9PXR5cGVvZiB3aW5kb3cmJnZvaWQgMCE9PXdpbmRvdy5mbGF0cGlja3I\/d2luZG93LmZsYXRwaWNrcjp7bDEwbnM6e319LGM9e2ZpcnN0RGF5T2ZXZWVrOjEsd2Vla2RheXM6e3Nob3J0aGFuZDoiZGltIGx1biBtYXIgbWVyIGpldSB2ZW4gc2FtIi5zcGxpdCgiICIpLGxvbmdoYW5kOiJkaW1hbmNoZSBsdW5kaSBtYXJkaSBtZXJjcmVkaSBqZXVkaSB2ZW5kcmVkaSBzYW1lZGkiLnNwbGl0KCIgIil9LG1vbnRoczp7c2hvcnRoYW5kOiJqYW52IGbDqXZyIG1hcnMgYXZyIG1haSBqdWluIGp1aWwgYW\/Du3Qgc2VwdCBvY3Qgbm92IGTDqWMiLnNwbGl0KCIgIiksCmxvbmdoYW5kOiJqYW52aWVyIGbDqXZyaWVyIG1hcnMgYXZyaWwgbWFpIGp1aW4ganVpbGxldCBhb8O7dCBzZXB0ZW1icmUgb2N0b2JyZSBub3ZlbWJyZSBkw6ljZW1icmUiLnNwbGl0KCIgIil9LG9yZGluYWw6ZnVuY3Rpb24oZCl7cmV0dXJuIDE8ZD8iIjoiZXIifSxyYW5nZVNlcGFyYXRvcjoiIGF1ICIsd2Vla0FiYnJldmlhdGlvbjoiU2VtIixzY3JvbGxUaXRsZToiRMOpZmlsZXIgcG91ciBhdWdtZW50ZXIgbGEgdmFsZXVyIix0b2dnbGVUaXRsZToiQ2xpcXVlciBwb3VyIGJhc2N1bGVyIix0aW1lXzI0aHI6ITB9O2EubDEwbnMuZnI9YzthPWEubDEwbnM7Yi5GcmVuY2g9YztiLmRlZmF1bHQ9YTtPYmplY3QuZGVmaW5lUHJvcGVydHkoYiwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSl9KTsKLyoqIC9tL2pzL2ZyLm5ld2NhcnMuaW5saW5lLmpzICoqLwp2YXIganNfZDJjX2dldF92YWw9KGpzX2QyY19nZXRfdmFsfHxmdW5jdGlvbihpZCl7dHJ5e3JldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkudmFsdWU7fWNhdGNoKGV4KXtpZihjb25zb2xlJiZjb25zb2xlLmxvZyljb25zb2xlLmxvZygiU3lzdGVtIGZhaWxlZCB3aGlsZSByZXRyaWV2aW5nIHJlcGxhY2VtZW50IHZhbHVlOiAiK2lkLGV4KTtyZXR1cm4nJzt9fSk7dmFyIGlkZW50XzQ4OTY0MDQ5YzUzY2I0MmMxNmZlZDFlOGRlMGQzMzY2O3RyeXtmdW5jdGlvbiBPcHRhbm9uV3JhcHBlcigpe319Y2F0Y2goZXp6MSl7aWYoY29uc29sZSYmY29uc29sZS5sb2cpCmNvbnNvbGUubG9nKGV6ejEpO30KdmFyIGlkZW50X2JmMDJhN2YwMzRkZjlmNjFjNDZjYmZiMzAxNGI3MzM3O3RyeXtEMkZUKHsibGl2ZSI6IlwvXC9hc3NldHMuYWRvYmVkdG0uY29tXC8yNDhkNjNjMmZmNmJcLzE4MWFkZDE1MmQwMFwvbGF1bmNoLWNmNWZlNGViMmI3Mi5taW4uanMiLCJzdGFnaW5nIjoiXC9cL2Fzc2V0cy5hZG9iZWR0bS5jb21cLzI0OGQ2M2MyZmY2YlwvMTgxYWRkMTUyZDAwXC9sYXVuY2gtOThiYTExZDEyNGNkLXN0YWdpbmcubWluLmpzIn0seyJ1c2VyTGFuZ3VhZ2UiOiJmcmUiLCJwYUNvZGUiOiJCMjIzNSIsImNsaWVudCI6ImZvcmQiLCJzaXRlIjoiZGM6ZDJjOmNhIiwicGFnZUlkIjoic2hvd3Jvb20ifSk7fWNhdGNoKGV6ejEpe2lmKGNvbnNvbGUmJmNvbnNvbGUubG9nKQpjb25zb2xlLmxvZyhlenoxKTt9CnZhciBpZGVudF9iZWY4MjExMmI4NTZjY2RhYmFlMzJlZGZkZWY4Nzg2Nzt0cnl7RDJBU0MoeyJ1c2VyTGFuZ3VhZ2UiOiJmcmUiLCJwYUNvZGUiOiJCMjIzNSIsImNsaWVudCI6ImZvcmQiLCJwYWdlSWQiOiJzaG93cm9vbSIsIm9lbUluZm8iOnsib2VtRGVhbGVyQ29kZSI6IkIyMjM1IiwiMCI6IkIyMjM1Iiwib2VtIjoiRm9yZCBEaXJlY3QiLCIxIjoiRm9yZCBEaXJlY3QifSwiZGVhbGVyX25hbWUiOiIiLCJmb3JtTWFwIjp7IkFERkJ1cmxpbmd0b25fQ2VudHJlXy1fRVZfVG91cl8tX0RyaXZlZmUiOnsiRlJFTkNIIjoiRGVtYW5kZSBkZSBCdXJsaW5ndG9uIENlbnRyZSAtIEVWIFRvdXIgLSBEcml2ZWZlc3QgKyBLaWEgU2lnbiBVcCBXYXJtIExlYWQ6IENvbnRhY3QgRGVhbGVyIiwiRU5HTElTSCI6IkxlYWQgRnJvbSBCdXJsaW5ndG9uIENlbnRyZSAtIEVWIFRvdXIgLSBEcml2ZWZlc3QgKyBLaWEgU2lnbiBVcCBXYXJtIExlYWQ6IENvbnRhY3QgRGVhbGVyIn0sIkFERmNhbXBiZWxscml2ZXJjYXJzLmNhXyhEMkNfTWVkaWEpXy1fTGUiOnsiRlJFTkNIIjoiRGVtYW5kZSBkZSBjYW1wYmVsbHJpdmVyY2Fycy5jYSAoRDJDIE1lZGlhKSAtIExlYWQ6IFZlaGljbGUgQXZhaWxhYmlsaXR5IFtHb29nbGUgLSBVc2VkICAgTG9jX3BoeXNpY2FsPTkwMDE2MTNdIiwiRU5HTElTSCI6IkxlYWQgRnJvbSBjYW1wYmVsbHJpdmVyY2Fycy5jYSAoRDJDIE1lZGlhKSAtIExlYWQ6IFZlaGljbGUgQXZhaWxhYmlsaXR5IFtHb29nbGUgLSBVc2VkICAgTG9jX3BoeXNpY2FsPTkwMDE2MTNdIn0sIkFERmNhcm1hdGNoZXIuY2FfKEQyQ19NZWRpYSlfLV9MZWFkOl9BcHAiOnsiRlJFTkNIIjoiRGVtYW5kZSBkZSBjYXJtYXRjaGVyLmNhIChEMkMgTWVkaWEpIC0gTGVhZDogQXBwb2ludG1lbnQgcmVxdWVzdCBbR29vZ2xlIC0gT3JnYW5pY10iLCJFTkdMSVNIIjoiTGVhZCBGcm9tIGNhcm1hdGNoZXIuY2EgKEQyQyBNZWRpYSkgLSBMZWFkOiBBcHBvaW50bWVudCByZXF1ZXN0IFtHb29nbGUgLSBPcmdhbmljXSJ9LCJBREZjYXJtYXRjaGVyLmNhXyhEMkNfTWVkaWEpXy1fTGVhZDpfQ2FyIjp7IkZSRU5DSCI6IkRlbWFuZGUgZGUgY2FybWF0Y2hlci5jYSAoRDJDIE1lZGlhKSAtIExlYWQ6IENhckZheCByZXF1ZXN0IFtHb29nbGUgLSBPcmdhbmljXSIsIkVOR0xJU0giOiJMZWFkIEZyb20gY2FybWF0Y2hlci5jYSAoRDJDIE1lZGlhKSAtIExlYWQ6IENhckZheCByZXF1ZXN0IFtHb29nbGUgLSBPcmdhbmljXSJ9LCJBREZjYXJtYXRjaGVyLmNhXyhEMkNfTWVkaWEpXy1fTGVhZDpfT2ZmIjp7IkZSRU5DSCI6IkRlbWFuZGUgZGUgY2FybWF0Y2hlci5jYSAoRDJDIE1lZGlhKSAtIExlYWQ6IE9mZmVyIG9uIGEgdmVoaWNsZSBbR29vZ2xlIC0gT3JnYW5pY10iLCJFTkdMSVNIIjoiTGVhZCBGcm9tIGNhcm1hdGNoZXIuY2EgKEQyQyBNZWRpYSkgLSBMZWFkOiBPZmZlciBvbiBhIHZlaGljbGUgW0dvb2dsZSAtIE9yZ2FuaWNdIn0sIkFERmNhcm1hdGNoZXIuY2FfKEQyQ19NZWRpYSlfLV9MZWFkOl9QREYiOnsiRlJFTkNIIjoiRGVtYW5kZSBkZSBjYXJtYXRjaGVyLmNhIChEMkMgTWVkaWEpIC0gTGVhZDogUERGIHJlcXVlc3QgLSBWZWhpY2xlIGluIGludmVudG9yeSBbR29vZ2xlIC0gT3JnYW5pY10iLCJFTkdMSVNIIjoiTGVhZCBGcm9tIGNhcm1hdGNoZXIuY2EgKEQyQyBNZWRpYSkgLSBMZWFkOiBQREYgcmVxdWVzdCAtIFZlaGljbGUgaW4gaW52ZW50b3J5IFtHb29nbGUgLSBPcmdhbmljXSJ9LCJBREZjYXJtYXRjaGVyLmNhXyhEMkNfTWVkaWEpXy1fTGVhZDpfUmVxIjp7IkZSRU5DSCI6IkRlbWFuZGUgZGUgY2FybWF0Y2hlci5jYSAoRDJDIE1lZGlhKSAtIExlYWQ6IFJlcXVlc3QgZm9yIGZpbmFuY2luZyAoTXVsdGlzdGVwKSBbR29vZ2xlIC0gT3JnYW5pY10iLCJFTkdMSVNIIjoiTGVhZCBGcm9tIGNhcm1hdGNoZXIuY2EgKEQyQyBNZWRpYSkgLSBMZWFkOiBSZXF1ZXN0IGZvciBmaW5hbmNpbmcgKE11bHRpc3RlcCkgW0dvb2dsZSAtIE9yZ2FuaWNdIn0sIkFERmNhcm1hdGNoZXIuY2FfKEQyQ19NZWRpYSlfLV9MZWFkOl9TZXIiOnsiRlJFTkNIIjoiRGVtYW5kZSBkZSBjYXJtYXRjaGVyLmNhIChEMkMgTWVkaWEpIC0gTGVhZDogU2VydmljZSBhcHBvaW50bWVudCByZXF1ZXN0IFtGYWNlYm9vayAtIE9yZ2FuaWNdIiwiRU5HTElTSCI6IkxlYWQgRnJvbSBjYXJtYXRjaGVyLmNhIChEMkMgTWVkaWEpIC0gTGVhZDogU2VydmljZSBhcHBvaW50bWVudCByZXF1ZXN0IFtGYWNlYm9vayAtIE9yZ2FuaWNdIn0sIkFERmNhcm1hdGNoZXIuY2FfKEQyQ19NZWRpYSlfLV9MZWFkOl9UcmEiOnsiRlJFTkNIIjoiRGVtYW5kZSBkZSBjYXJtYXRjaGVyLmNhIChEMkMgTWVkaWEpIC0gTGVhZDogVHJhZGUtaW4gcmVxdWVzdCBbR29vZ2xlIC0gT3JnYW5pY10iLCJFTkdMSVNIIjoiTGVhZCBGcm9tIGNhcm1hdGNoZXIuY2EgKEQyQyBNZWRpYSkgLSBMZWFkOiBUcmFkZS1pbiByZXF1ZXN0IFtHb29nbGUgLSBPcmdhbmljXSJ9LCJBREZjYXJtYXRjaGVyLmNhXyhEMkNfTWVkaWEpXy1fTGVhZDpfVmVoIjp7IkZSRU5DSCI6IkRlbWFuZGUgZGUgY2FybWF0Y2hlci5jYSAoRDJDIE1lZGlhKSAtIExlYWQ6IFZlaGljbGUgQXZhaWxhYmlsaXR5IFtHb29nbGUgLSBPcmdhbmljXSIsIkVOR0xJU0giOiJMZWFkIEZyb20gY2FybWF0Y2hlci5jYSAoRDJDIE1lZGlhKSAtIExlYWQ6IFZlaGljbGUgQXZhaWxhYmlsaXR5IFtHb29nbGUgLSBPcmdhbmljXSJ9LCJBREZjYXJtYXRjaGVyLmNhXyhEMkNfTWVkaWFfLV9PcmdhbmljKV8tIjp7IkZSRU5DSCI6IkRlbWFuZGUgZGUgY2FybWF0Y2hlci5jYSAoRDJDIE1lZGlhIC0gT3JnYW5pYykgLSBMZWFkOiBWZWhpY2xlIEF2YWlsYWJpbGl0eSBbT3JnYW5pY10iLCJFTkdMSVNIIjoiTGVhZCBGcm9tIGNhcm1hdGNoZXIuY2EgKEQyQyBNZWRpYSAtIE9yZ2FuaWMpIC0gTGVhZDogVmVoaWNsZSBBdmFpbGFiaWxpdHkgW09yZ2FuaWNdIn0sIkFERmRhbmllbHBhcmVkb2RnZS5jb21fKHBhcl9EMkNfTWVkaWEpXy0iOnsiRlJFTkNIIjoiRGVtYW5kZSBkZSBkYW5pZWxwYXJlZG9kZ2UuY29tIChwYXIgRDJDIE1lZGlhKSAtIEQyQyBNZWRpYSAtIExlYWQgOiBWb2lyIGwnb2ZmcmUgY291cG9uIFNSUCBbR29vZ2xlIC0gTmV1Zi12bGFdIiwiRU5HTElTSCI6IkxlYWQgRnJvbSBkYW5pZWxwYXJlZG9kZ2UuY29tIChwYXIgRDJDIE1lZGlhKSAtIEQyQyBNZWRpYSAtIExlYWQgOiBWb2lyIGwnb2ZmcmUgY291cG9uIFNSUCBbR29vZ2xlIC0gTmV1Zi12bGFdIn0sIkFERmRlbW9jcm0uZDJjbWVkaWEuY2FfKEQyQ19NZWRpYV8tX09yZ2EiOnsiRlJFTkNIIjoiRGVtYW5kZSBkZSBkZW1vY3JtLmQyY21lZGlhLmNhIChEMkMgTWVkaWEgLSBPcmdhbmljKSAtIExlYWQ6IFJlcXVlc3QgZm9yIGEgcmViYXRlIGNvdXBvbiAoaW52ZW50b3J5IHZlaGljbGUpIFtPcmdhbmljXSIsIkVOR0xJU0giOiJMZWFkIEZyb20gZGVtb2NybS5kMmNtZWRpYS5jYSAoRDJDIE1lZGlhIC0gT3JnYW5pYykgLSBMZWFkOiBSZXF1ZXN0IGZvciBhIHJlYmF0ZSBjb3Vwb24gKGludmVudG9yeSB2ZWhpY2xlKSBbT3JnYW5pY10ifSwiQURGTW9uX3NpdGVfLV9EMkNfTWVkaWFfLV9MZWFkXzpfRGVtYW5kZSI6eyJGUkVOQ0giOiJEZW1hbmRlIGRlIE1vbiBzaXRlIC0gRDJDIE1lZGlhIC0gTGVhZCA6IERlbWFuZGUgZGUgdmFsZXVyIGQnJkF0aWxkZTsmY29weTtjaGFuZ2UgKFNNUykgW0dvb2dsZSAtIE9yZ2FuaWNdIiwiRU5HTElTSCI6IkxlYWQgRnJvbSBNb24gc2l0ZSAtIEQyQyBNZWRpYSAtIExlYWQgOiBEZW1hbmRlIGRlIHZhbGV1ciBkJyZBdGlsZGU7JmNvcHk7Y2hhbmdlIChTTVMpIFtHb29nbGUgLSBPcmdhbmljXSJ9LCJBREZwYWxsYWRpbm9hdXRvZ3JvdXAuY29tXyhEMkNfTWVkaWEpXy1fIjp7IkZSRU5DSCI6IkRlbWFuZGUgZGUgcGFsbGFkaW5vYXV0b2dyb3VwLmNvbSAoRDJDIE1lZGlhKSAtIExlYWQ6IENhckZheCByZXF1ZXN0IFtHb29nbGUgLSBVc2VkLXZsYSAgIExvY19waHlzaWNhbD05MDAxMTQxXSIsIkVOR0xJU0giOiJMZWFkIEZyb20gcGFsbGFkaW5vYXV0b2dyb3VwLmNvbSAoRDJDIE1lZGlhKSAtIExlYWQ6IENhckZheCByZXF1ZXN0IFtHb29nbGUgLSBVc2VkLXZsYSAgIExvY19waHlzaWNhbD05MDAxMTQxXSJ9LCJBREZwYWxsYWRpbm9hdXRvZ3JvdXAuY29tXyhEMkNfTWVkaWEpX18tIjp7IkZSRU5DSCI6IkRlbWFuZGUgZGUgcGFsbGFkaW5vYXV0b2dyb3VwLmNvbSAoRDJDIE1lZGlhKSAgLSBMZWFkOiBSZXF1ZXN0IGZvciBjb250YWN0IFtGYWNlYm9vayAtIFVzZWQgWyBLZXl3b3JkOiBVc2VkK1RydWNrXSAgTG9jXyIsIkVOR0xJU0giOiJMZWFkIEZyb20gcGFsbGFkaW5vYXV0b2dyb3VwLmNvbSAoRDJDIE1lZGlhKSAgLSBMZWFkOiBSZXF1ZXN0IGZvciBjb250YWN0IFtGYWNlYm9vayAtIFVzZWQgWyBLZXl3b3JkOiBVc2VkK1RydWNrXSAgTG9jX3AifSwiQURGcGFsbGFkaW5vYXV0b2dyb3VwLmNvbV8oRDJDX19NZWRpYSlfLSI6eyJGUkVOQ0giOiJEZW1hbmRlIGRlIHBhbGxhZGlub2F1dG9ncm91cC5jb20gKEQyQyAgTWVkaWEpIC0gTGVhZDogVHJhZGUtaW4gcmVxdWVzdCBbR29vZ2xlIC0gVHJhZGUgICBMb2NfcGh5c2ljYWw9OTAwMTExOF0iLCJFTkdMSVNIIjoiTGVhZCBGcm9tIHBhbGxhZGlub2F1dG9ncm91cC5jb20gKEQyQyAgTWVkaWEpIC0gTGVhZDogVHJhZGUtaW4gcmVxdWVzdCBbR29vZ2xlIC0gVHJhZGUgICBMb2NfcGh5c2ljYWw9OTAwMTExOF0ifSwiQURGcGFsbGFkaW5vYXV0b2dyb3VwLmNvbV9fKEQyQ19NZWRpYSlfLSI6eyJGUkVOQ0giOiJEZW1hbmRlIGRlIHBhbGxhZGlub2F1dG9ncm91cC5jb20gIChEMkMgTWVkaWEpIC0gTGVhZDogVHJhZGUtaW4gcmVxdWVzdCBbR29vZ2xlIC0gVHJhZGUgICBMb2NfcGh5c2ljYWw9OTAwMTEzM10iLCJFTkdMSVNIIjoiTGVhZCBGcm9tIHBhbGxhZGlub2F1dG9ncm91cC5jb20gIChEMkMgTWVkaWEpIC0gTGVhZDogVHJhZGUtaW4gcmVxdWVzdCBbR29vZ2xlIC0gVHJhZGUgICBMb2NfcGh5c2ljYWw9OTAwMTEzM10ifSwiQURGcGFsbGFkaW5vc3ViYXJ1LmNhXyhwYXJfRDJDX01lZGlhXy1fTyI6eyJGUkVOQ0giOiJEZW1hbmRlIGRlIHBhbGxhZGlub3N1YmFydS5jYSAocGFyIEQyQyBNZWRpYSAtIE9yZ2FuaWMpIC0gRDJDIE1lZGlhIC0gTGVhZDogUERGIGJyb2NodXJlIHJlcXVlc3QgW09yZ2FuaWNdIiwiRU5HTElTSCI6IkxlYWQgRnJvbSBwYWxsYWRpbm9zdWJhcnUuY2EgKHBhciBEMkMgTWVkaWEgLSBPcmdhbmljKSAtIEQyQyBNZWRpYSAtIExlYWQ6IFBERiBicm9jaHVyZSByZXF1ZXN0IFtPcmdhbmljXSJ9LCJBREZTY2FyYm9yb3VnaF9Ub3duX0NlbnRyZV8tX0VWX1RvdXJfLV9EIjp7IkZSRU5DSCI6IkRlbWFuZGUgZGUgU2NhcmJvcm91Z2ggVG93biBDZW50cmUgLSBFViBUb3VyIC0gRHJpdmVmZXN0ICsgS2lhIFNpZ24gVXAgV2FybSBMZWFkOiBDb250YWN0IERlYWxlciIsIkVOR0xJU0giOiJMZWFkIEZyb20gU2NhcmJvcm91Z2ggVG93biBDZW50cmUgLSBFViBUb3VyIC0gRHJpdmVmZXN0ICsgS2lhIFNpZ24gVXAgV2FybSBMZWFkOiBDb250YWN0IERlYWxlciJ9LCJBREZTaGVyd2F5X0dhcmRlbnNfLV9FVl9Ub3VyXy1fRHJpdmVmZXN0Ijp7IkZSRU5DSCI6IkRlbWFuZGUgZGUgU2hlcndheSBHYXJkZW5zIC0gRVYgVG91ciAtIERyaXZlZmVzdCBTaWduIFVwIFdhcm0gTGVhZDogQ29udGFjdCBEZWFsZXIiLCJFTkdMSVNIIjoiTGVhZCBGcm9tIFNoZXJ3YXkgR2FyZGVucyAtIEVWIFRvdXIgLSBEcml2ZWZlc3QgU2lnbiBVcCBXYXJtIExlYWQ6IENvbnRhY3QgRGVhbGVyIn0sIkFERlNxdWFyZV9PbmVfLV9FVl9Ub3VyXy1fRHJpdmVmZXN0XytfS2kiOnsiRlJFTkNIIjoiRGVtYW5kZSBkZSBTcXVhcmUgT25lIC0gRVYgVG91ciAtIERyaXZlZmVzdCArIEtpYSBTaWduIFVwIFdhcm0gTGVhZDogQ29udGFjdCBEZWFsZXIiLCJFTkdMSVNIIjoiTGVhZCBGcm9tIFNxdWFyZSBPbmUgLSBFViBUb3VyIC0gRHJpdmVmZXN0ICsgS2lhIFNpZ24gVXAgV2FybSBMZWFkOiBDb250YWN0IERlYWxlciJ9LCJBREZTcXVhcmVfT25lXy1fRVZfVG91cl8tX0tpYV9TaWduX1VwX0hvIjp7IkZSRU5DSCI6IkRlbWFuZGUgZGUgU3F1YXJlIE9uZSAtIEVWIFRvdXIgLSBLaWEgU2lnbiBVcCBIb3QgTGVhZDogQ29udGFjdCBEZWFsZXIiLCJFTkdMSVNIIjoiTGVhZCBGcm9tIFNxdWFyZSBPbmUgLSBFViBUb3VyIC0gS2lhIFNpZ24gVXAgSG90IExlYWQ6IENvbnRhY3QgRGVhbGVyIn0sIkFERlVwcGVyX0NhbmFkYV9NYWxsXy1fRVZfVG91cl8tX0RyaXZlZmUiOnsiRlJFTkNIIjoiRGVtYW5kZSBkZSBVcHBlciBDYW5hZGEgTWFsbCAtIEVWIFRvdXIgLSBEcml2ZWZlc3QgU2lnbiBVcCBXYXJtIExlYWQ6IENvbnRhY3QgRGVhbGVyIiwiRU5HTElTSCI6IkxlYWQgRnJvbSBVcHBlciBDYW5hZGEgTWFsbCAtIEVWIFRvdXIgLSBEcml2ZWZlc3QgU2lnbiBVcCBXYXJtIExlYWQ6IENvbnRhY3QgRGVhbGVyIn0sIkF2YWlsYWJpbGl0eVVzZWQiOnsiRlJFTkNIIjoiTGVhZDogRGlzcG9uaWJpbGl0ZSBkJ3VuIHZlaGljdWxlIiwiRU5HTElTSCI6IkxlYWQ6IFZlaGljbGUgQXZhaWxhYmlsaXR5In0sIkJhbm5lckZvcm0iOnsiRlJFTkNIIjoiTGVhZDogRGVtYW5kZSBkZSBmb3JtIGJhbm5lciIsIkVOR0xJU0giOiJMZWFkOiBCYW5uZXIgRm9ybSBSZXF1ZXN0In0sIkJlc3RQcmljZVJlcXVlc3ROZXciOnsiRlJFTkNIIjoiTGVhZCA6IERlbWFuZGUgZGUgIG1laWxsZXVyIHByaXggKHZlaGljdWxlIG5ldWYpIiwiRU5HTElTSCI6IkxlYWQ6IFJlcXVlc3QgZm9yIGEgYmVzdCBwcmljZSAobmV3IHZlaGljbGUpIn0sIkJvZHlTaG9wIjp7IkZSRU5DSCI6IkxlYWQgOiBEZW1hbmRlIGRlIHJlbmRlei12b3VzIGVuIGNhcm9zc2VyaWUiLCJFTkdMSVNIIjoiTGVhZDogVmVoaWNsZSBib2R5IHNob3AgYXBwb2ludG1lbnQgcmVxdWVzdCJ9LCJCcm9jaHVyZXMiOnsiRlJFTkNIIjoiTGVhZCA6IERlbWFuZGUgZGUgYnJvY2h1cmUiLCJFTkdMSVNIIjoiTGVhZCA6IEJyb2NodXJlIHJlcXVlc3QifSwiQnJvY2h1cmVzUmVxdWVzdCI6eyJGUkVOQ0giOiJMZWFkIDogRGVtYW5kZSBkZSBicm9jaHVyZSIsIkVOR0xJU0giOiJMZWFkIDogQnJvY2h1cmUgcmVxdWVzdCJ9LCJCdWlsZEFuZFByaWNlX1NhdmUiOnsiRlJFTkNIIjoiTGVhZDogQ29uZmlndXJhdGlvbiBkJ3VuIHZlaGljdWxlIG5ldWYiLCJFTkdMSVNIIjoiTGVhZDogTmV3IFZlaGljbGUgQ29uZmlndXJhdGlvbiAoQnVpbGQgJiBQcmljZSkifSwiQnVpbGRBbmRQcmljZV9TdG9jayI6eyJGUkVOQ0giOiJMZWFkOiBEaXNwb25pYmlsaXRlIGQndW4gdmVoaWN1bGUiLCJFTkdMSVNIIjoiTGVhZDogVmVoaWNsZSBBdmFpbGFiaWxpdHkifSwiQ2FycHJvb2ZNYWlsIjp7IkZSRU5DSCI6IkxlYWQgOiBEZW1hbmRlIGRlIENhckZheCIsIkVOR0xJU0giOiJMZWFkOiBDYXJGYXggcmVxdWVzdCJ9LCJDb250YWN0UmVxdWVzdCI6eyJGUkVOQ0giOiJMZWFkIDogRGVtYW5kZSBkZSBjb250YWN0IiwiRU5HTElTSCI6IkxlYWQ6IFJlcXVlc3QgZm9yIGNvbnRhY3QifSwiQ29udGFjdFVzUmVxdWVzdCI6eyJGUkVOQ0giOiJMZWFkIDogRGVtYW5kZSBkZSBjb250YWN0IiwiRU5HTElTSCI6IkxlYWQ6IFJlcXVlc3QgZm9yIGNvbnRhY3QifSwiQ29udGFjdFZpc2l0UmVxdWVzdCI6eyJGUkVOQ0giOiJMZWFkIDogRGVtYW5kZSBkZSBjb250YWN0IFZlbnRlIiwiRU5HTElTSCI6IkxlYWQ6IFJlcXVlc3QgZm9yIGNvbnRhY3QgU2FsZXMifSwiQ29udGFjdFZpc2l0UmVxdWVzdE5ldyI6eyJGUkVOQ0giOiJMZWFkIDogRGVtYW5kZSBkZSBjb250YWN0IFZlbnRlIiwiRU5HTElTSCI6IkxlYWQ6IFJlcXVlc3QgZm9yIGNvbnRhY3QgU2FsZXMifSwiQ3JlZGl0Qm9vc3RNdWx0aSI6eyJGUkVOQ0giOiJMZWFkOiBEZW1hbmRlIGRlIHByZXF1YWxpZmljYXRpb24gZGUgY3JlZGl0IiwiRU5HTElTSCI6IkxlYWQ6IFJlcXVlc3QgZm9yIENyZWRpdCBQcmUtUXVhbGlmaWNhdGlvbiJ9LCJDcmVkaXRNdWx0aXN0ZXBSZXF1ZXN0Ijp7IkZSRU5DSCI6IkxlYWQgOiBEZW1hbmRlIGRlIGZpbmFuY2VtZW50IChQbHVzaWV1cnMgZXRhcGVzKSIsIkVOR0xJU0giOiJMZWFkOiBSZXF1ZXN0IGZvciBmaW5hbmNpbmcgKE11bHRpc3RlcCkifSwiQ3JlZGl0TXVsdGlzdGVwUmVxdWVzdDJuZENoYW5jZSI6eyJGUkVOQ0giOiJMZWFkIDogRGVtYW5kZSBkZSBmaW5hbmNlbWVudCAoUGx1c2lldXJzIGV0YXBlcyAyZSBjaGFuY2UpIiwiRU5HTElTSCI6IkxlYWQ6IFJlcXVlc3QgZm9yIGZpbmFuY2luZyAoTXVsaXN0ZXAgMm5kIGNoYW5jZSkifSwiQ3JlZGl0TXVsdGlzdGVwUmVxdWVzdEluc3RhbnQiOnsiRlJFTkNIIjoiTGVhZDogQXBwcm9iYXRpb24gZGUgY3JlZGl0IGluc3RhbnRhbmVlIiwiRU5HTElTSCI6IkxlYWQ6IEluc3RhbnQgQ3JlZGl0IEFwcHJvdmFsIn0sIkNyZWRpdFJlcXVlc3QiOnsiRlJFTkNIIjoiTGVhZCA6IERlbWFuZGUgZGUgZmluYW5jZW1lbnQiLCJFTkdMSVNIIjoiTGVhZDogUmVxdWVzdCBmb3IgZmluYW5jaW5nIn0sIkNyZWRpdFJlcXVlc3RNb2JpbGUiOnsiRlJFTkNIIjoiTGVhZCA6IERlbWFuZGUgZGUgZmluYW5jZW1lbnQiLCJFTkdMSVNIIjoiTGVhZDogUmVxdWVzdCBmb3IgZmluYW5jaW5nIn0sIkNyZWRpdFJlcXVlc3RNb2JpbGVGdWxsIjp7IkZSRU5DSCI6IkxlYWQ6IFJlcXVlc3QgZm9yIGZpbmFuY2luZyIsIkVOR0xJU0giOiJMZWFkOiBSZXF1ZXN0IGZvciBmaW5hbmNpbmcifSwiQ3JlZGl0UmVxdWVzdF9TaG9ydCI6eyJGUkVOQ0giOiJMZWFkIDogRGVtYW5kZSBkZSBmaW5hbmNlbWVudCAodmVyc2lvbiBjb3VydGUpIiwiRU5HTElTSCI6IkxlYWQgOiBDcmVkaXQgYXBwbGljYXRpb24gKHNob3J0IHZlcnNpb24pIn0sIkRlYWxlckFwcG9pbnRtZW50Ijp7IkZSRU5DSCI6IkxlYWQgOiBEZW1hbmRlIGRlIHJlbmRlei12b3VzIiwiRU5HTElTSCI6IkxlYWQ6IEFwcG9pbnRtZW50IHJlcXVlc3QifSwiRGlzY292ZXJPZmZlciI6eyJGUkVOQ0giOiJMZWFkIDogVm9pciBsJ29mZnJlIGNvdXBvbiBTUlAiLCJFTkdMSVNIIjoiTGVhZDogU2VlIE9mZmVyIENvdXBvbiBpbiBTUlAifSwiRXN0aGV0aWNSZXF1ZXN0Ijp7IkZSRU5DSCI6IkxlYWQ6IERlbWFuZGUgZGUgcmVuZGV6LXZvdXMgYSBsJ2VzdGhldHF1ZSBldCBsYXZlLWF1dG8iLCJFTkdMSVNIIjoiTGVhZDogVmVoaWNsZSBlc3RoZXRpYyBhbmQgY2FyIHdhc2ggYXBwb2ludG1lbnQgcmVxdWVzdCJ9LCJmYWNlYm9va0Nvbm5lY3QiOnsiRlJFTkNIIjoiTGVhZDogUmFiYWlzIEZhY2Vib29rIiwiRU5HTElTSCI6IkxlYWQ6IEZhY2Vib29rIFJlYmF0ZSJ9LCJGaW5kVmVoaWNsZSI6eyJGUkVOQ0giOiJMZWFkIDogRGVtYW5kZSBkZSByZWNoZXJjaGUgZGUgdmVoaWN1bGUiLCJFTkdMSVNIIjoiTGVhZDogUmVxdWVzdCB0byBmaW5kIGEgcHJlLW93bmVkIHZlaGljbGUifSwiaGVhZGVyU2VydmljZSI6eyJGUkVOQ0giOiJMZWFkIDogRGVtYW5kZSBkZSByZW5kZXotdm91cyBhdSBzZXJ2aWNlIEV4cHJlc3MiLCJFTkdMSVNIIjoiTGVhZDogU2VydmljZSBhcHBvaW50bWVudCByZXF1ZXN0IEV4cHJlc3MifSwiTWFrZU9mZmVyIjp7IkZSRU5DSCI6IkxlYWQgOiBPZmZyZSBkJ2FjaGF0IHN1ciB1biB2ZWhpY3VsZSIsIkVOR0xJU0giOiJMZWFkOiBPZmZlciBvbiBhIHZlaGljbGUifSwiTWFrZU9mZmVyTmV3Ijp7IkZSRU5DSCI6IkxlYWQgOiBPZmZyZSBkJ2FjaGF0IHN1ciB1biB2ZWhpY3VsZSIsIkVOR0xJU0giOiJMZWFkOiBPZmZlciBvbiBhIHZlaGljbGUifSwibWVudVNlcnZpY2UiOnsiRlJFTkNIIjoiTGVhZCA6IERlbWFuZGUgZGUgcmVuZGV6LXZvdXMgYXUgc2VydmljZSBFeHByZXNzIiwiRU5HTElTSCI6IkxlYWQ6IFNlcnZpY2UgYXBwb2ludG1lbnQgcmVxdWVzdCBFeHByZXNzIn0sIk1vbnRobHlQYXltZW50cyI6eyJGUkVOQ0giOiJEZW1hbmRlIGRlIG1lbnN1YWxpdGVzIiwiRU5HTElTSCI6IlJlcXVlc3QgZm9yIG1vbnRobHkgcGF5bWVudHMifSwiTW9udGhseVBheW1lbnRzX05FVyI6eyJGUkVOQ0giOiJEZW1hbmRlIGRlIG1lbnN1YWxpdGVzIiwiRU5HTElTSCI6IlJlcXVlc3QgZm9yIG1vbnRobHkgcGF5bWVudHMifSwiTW9udGhseVBheW1lbnRzX1NNUyI6eyJGUkVOQ0giOiJEZW1hbmRlIGRlIG1lbnN1YWxpdGVzIC0gU01TIiwiRU5HTElTSCI6IlJlcXVlc3QgZm9yIG1vbnRobHkgcGF5bWVudHMgLSBTTVMifSwiTW9udGhseVBheW1lbnRzX1NNU19ORVciOnsiRlJFTkNIIjoiRGVtYW5kZSBkZSBtZW5zdWFsaXRlcyAtIFNNUyIsIkVOR0xJU0giOiJSZXF1ZXN0IGZvciBtb250aGx5IHBheW1lbnRzIC0gU01TIn0sIlBhcnRzUmVxdWVzdCI6eyJGUkVOQ0giOiJMZWFkIDogRGVtYW5kZSBkZSBjb21tYW5kZSBwaSZlZ3JhdmU7Y2UiLCJFTkdMSVNIIjoiTGVhZDogUmVxdWVzdCBmb3IgdmVoaWNsZSBwYXJ0cyJ9LCJQaG90b1JlcXVlc3QiOnsiRlJFTkNIIjoiTGVhZDogRGVtYW5kZSBkZSBwaG90b3MiLCJFTkdMSVNIIjoiTGVhZDogUGhvdG8gcmVxdWVzdCJ9LCJQb3BVcEluc3RhbnRSZWJhdGUiOnsiRlJFTkNIIjoiTGVhZDogRGVtYW5kZSBkZSBSYWJhaXMgSW5zdGFudGFuZSIsIkVOR0xJU0giOiJMZWFkOiBJbnN0YW50IFJlYmF0ZSByZXF1ZXN0In0sIlBvcFVwSW5zdGFudFJlYmF0ZTMiOnsiRlJFTkNIIjoiTGVhZDogRGVtYW5kZSBkZSBSYWJhaXMgSW5zdGFudGFuZSIsIkVOR0xJU0giOiJMZWFkOiBJbnN0YW50IFJlYmF0ZSByZXF1ZXN0In0sIlBvcFVwSW5zdGFudFJlYmF0ZUFBIjp7IkZSRU5DSCI6IkxlYWQ6IERlbWFuZGUgZGUgUmFiYWlzIEluc3RhbnRhbmUiLCJFTkdMSVNIIjoiTGVhZDogSW5zdGFudCBSZWJhdGUgcmVxdWVzdCJ9LCJQcmljZVJlcXVlc3QiOnsiRlJFTkNIIjoiTGVhZCA6IERlbWFuZGUgZGUgcHJpeCIsIkVOR0xJU0giOiJMZWFkOiBQcmljZSByZXF1ZXN0In0sIlByaWNlUmVxdWVzdE5ldyI6eyJGUkVOQ0giOiJMZWFkIDogRGVtYW5kZSBkZSBwcml4IiwiRU5HTElTSCI6IkxlYWQ6IFByaWNlIHJlcXVlc3QifSwiUHJpY2VWZWhpY2xlIjp7IkZSRU5DSCI6IkxlYWQgOiBEZW1hbmRlIGRlIHZhbGV1ciBkJ2VjaGFuZ2UiLCJFTkdMSVNIIjoiTGVhZDogVHJhZGUtaW4gcmVxdWVzdCJ9LCJQcmljZVZlaGljbGVBY2N1dHJhZGUiOnsiRlJFTkNIIjoiTGVhZCA6IERlbWFuZGUgZGUgdmFsZXVyIGQnZWNoYW5nZSIsIkVOR0xJU0giOiJMZWFkIDogTGVhZDogVHJhZGUtaW4gcmVxdWVzdCJ9LCJQcmljZVZlaGljbGVOZXciOnsiRlJFTkNIIjoiTGVhZCA6IERlbWFuZGUgZGUgdmFsZXVyIGQnZWNoYW5nZSIsIkVOR0xJU0giOiJMZWFkOiBUcmFkZS1pbiByZXF1ZXN0In0sIlF1aWNrRW1haWwiOnsiRlJFTkNIIjoiTGVhZCA6IERlbWFuZGUgRXhwcmVzcyIsIkVOR0xJU0giOiJMZWFkOiBFeHByZXNzIHJlcXVlc3QifSwiUXVpY2tFbWFpbE5ld0ludmVudG9yeSI6eyJGUkVOQ0giOiJMZWFkIDogRGVtYW5kZSBFeHByZXNzIChpbnZlbnRhaXJlIG5ldWYpIiwiRU5HTElTSCI6IkxlYWQ6IEV4cHJlc3MgcmVxdWVzdCAobmV3IGludmVudG9yeSkifSwiUmViYXRlQ291cG9uIjp7IkZSRU5DSCI6IkxlYWQgOiBEZW1hbmRlIGRlIGNvdXBvbiByYWJhaXMgKHZlaGljdWxlIGVuIGludmVudGFpcmUpIiwiRU5HTElTSCI6IkxlYWQ6IFJlcXVlc3QgZm9yIGEgcmViYXRlIGNvdXBvbiAoaW52ZW50b3J5IHZlaGljbGUpIn0sIlJlYmF0ZUNvdXBvbkludmVudG9yeSI6eyJGUkVOQ0giOiJMZWFkIDogRGVtYW5kZSBkZSBjb3Vwb24gcmFiYWlzIChpbnZlbnRhaXJlKSIsIkVOR0xJU0giOiJMZWFkOiBSZXF1ZXN0IGZvciBhIHJlYmF0ZSBjb3Vwb24gKGludmVudG9yeSkifSwiUmViYXRlQ291cG9uTmV3Ijp7IkZSRU5DSCI6IkxlYWQgOiBEZW1hbmRlIGRlIGNvdXBvbiByYWJhaXMiLCJFTkdMSVNIIjoiTGVhZDogUmVxdWVzdCBmb3IgYSByZWJhdGUgY291cG9uIn0sIlJlYmF0ZUNvdXBvbk5ld0JOUCI6eyJGUkVOQ0giOiJMZWFkIDogRGVtYW5kZSBkZSBjb3Vwb24gcmFiYWlzIChjb25maWd1cmF0ZXVyKSIsIkVOR0xJU0giOiJMZWFkOiBSZXF1ZXN0IGZvciBhIHJlYmF0ZSBjb3Vwb24gKGNvbmZpZ3VyYXRvcikifSwiUmViYXRlQ291cG9uTmV3SW52ZW50b3J5Ijp7IkZSRU5DSCI6IkxlYWQgOiBEZW1hbmRlIGRlIGNvdXBvbiByYWJhaXMgKGludmVudGFpcmUpIiwiRU5HTElTSCI6IkxlYWQ6IFJlcXVlc3QgZm9yIGEgcmViYXRlIGNvdXBvbiAoaW52ZW50b3J5KSJ9LCJSZWJhdGVDb3Vwb25OZXdTbGlkZXIiOnsiRlJFTkNIIjoiTGVhZCA6IERlbWFuZGUgZGUgY291cG9uIHJhYmFpcyAoY2Fyb3VzZWwpIiwiRU5HTElTSCI6IkxlYWQ6IFJlcXVlc3QgZm9yIGEgcmViYXRlIGNvdXBvbiAoc2xpZGVyKSJ9LCJSZWJhdGVDb3Vwb25Qcm9tbyI6eyJGUkVOQ0giOiJMZWFkOiBEZW1hbmRlIGRlIGNvdXBvbiByYWJhaXMgKGJvdXRvbiAnUHJvbW90aW9ucycpIiwiRU5HTElTSCI6IkxlYWQ6IFJlYmF0ZSBDb3Vwb24gcmVxdWVzdCAoJ1Byb21vdGlvbnMnIGJ1dHRvbikifSwiUmViYXRlQ291cG9uU2xpZGVyIjp7IkZSRU5DSCI6IkxlYWQgOiBEZW1hbmRlIGRlIGNvdXBvbiByYWJhaXMgKGNhcm91c2VsKSIsIkVOR0xJU0giOiJMZWFkOiBSZXF1ZXN0IGZvciBhIHJlYmF0ZSBjb3Vwb24gKHNsaWRlcikifSwiUmViYXRlQ291cG9uVXNlZFNsaWRlciI6eyJGUkVOQ0giOiJMZWFkIDogRGVtYW5kZSBkZSBjb3Vwb24gcmFiYWlzIChjYXJvdXNlbCkiLCJFTkdMSVNIIjoiTGVhZDogUmVxdWVzdCBmb3IgYSByZWJhdGUgY291cG9uIChzbGlkZXIpIn0sIlJlY2FsbHMiOnsiRlJFTkNIIjoiRGVtYW5kZSBkJ2luZm9ybWF0aW9uIHN1ciBsZXMgcmFwcGVscyIsIkVOR0xJU0giOiJSZWNhbGwgaW5mb3JtYXRpb24gcmVxdWVzdCJ9LCJSZXNlcnZlSXROb3ciOnsiRlJFTkNIIjoiTGVhZCA6IERlbWFuZGUgcG91ciByZXNlcnZlciB1biB2ZWhpY3VsZSIsIkVOR0xJU0giOiJMZWFkIDogUmVxdWVzdCB0byBwcmUtb3JkZXIgYSB2ZWhpY2xlIn0sIlJlc2VydmVJdE5vd05ldyI6eyJGUkVOQ0giOiJMZWFkIDogRGVtYW5kZSBwb3VyIHJlc2VydmVyIHVuIHZlaGljdWxlIiwiRU5HTElTSCI6IkxlYWQgOiBSZXF1ZXN0IHRvIHByZS1vcmRlciBhIHZlaGljbGUifSwiU2VsbENhciI6eyJGUkVOQ0giOiJMZWFkIDogRGVtYW5kZSBkZSBWZW5kZXogVmVoaWN1bGUiLCJFTkdMSVNIIjoiTGVhZCA6IFJlcXVlc3QgdG8gYnV5IHlvdXIgY2FyIn0sIlNlbGxDYXJfU2hvcnQiOnsiRlJFTkNIIjoiTGVhZCA6IERlbWFuZGUgZGUgVmVuZGV6LW5vdXMgdm90cmUgdmVoaWN1bGUgKHZlcnNpb24gY291cnRlKSIsIkVOR0xJU0giOiJMZWFkIDogUmVxdWVzdCB0byBidXkgeW91ciBjYXIgKFNob3J0IHZlcnNpb24pIn0sIlNlcnZpY2VSZXF1ZXN0Ijp7IkZSRU5DSCI6IkxlYWQgOiBEZW1hbmRlIGRlIHJlbmRlei12b3VzIGF1IHNlcnZpY2UiLCJFTkdMSVNIIjoiTGVhZDogU2VydmljZSBhcHBvaW50bWVudCByZXF1ZXN0In0sIlNNU0xlYWQiOnsiRlJFTkNIIjoiTGVhZDogRGVtYW5kZSBTTVMgKFRleHRvKSIsIkVOR0xJU0giOiJMZWFkOiBTTVMgcmVxdWVzdCJ9LCJTTVNMZWFkX29sZCI6eyJGUkVOQ0giOiJMZWFkIDogRGVtYW5kZSBTTVMgKFRleHRvKSIsIkVOR0xJU0giOiJMZWFkIDogU01TIHJlcXVlc3QifSwiU3BlY3NSZXF1ZXN0Ijp7IkZSRU5DSCI6IkxlYWQ6IERlbWFuZGUgZGUgZmljaGUgUERGIC0gVmVoaWN1bGUgZW4gaW52ZW50YWlyZSIsIkVOR0xJU0giOiJMZWFkOiBQREYgcmVxdWVzdCAtIFZlaGljbGUgaW4gaW52ZW50b3J5In0sIlNwZWNzUmVxdWVzdE5ldyI6eyJGUkVOQ0giOiJMZWFkOiBEZW1hbmRlIGRlIGJyb2NodXJlIFBERiIsIkVOR0xJU0giOiJMZWFkOiBQREYgYnJvY2h1cmUgcmVxdWVzdCJ9LCJTUlBDb250YWN0VXMiOnsiRlJFTkNIIjoiTGVhZCA6IERlbWFuZGUgZGUgY29udGFjdCBTUlAiLCJFTkdMSVNIIjoiTGVhZCA6IFJlcXVlc3QgZm9yIGNvbnRhY3QgU1JQIn0sIlRlc3REcml2ZSI6eyJGUkVOQ0giOiJMZWFkIDogRGVtYW5kZSBkJ2Vzc2FpIHJvdXRpZXIiLCJFTkdMSVNIIjoiTGVhZDogUmVxdWVzdCBmb3IgYSB0ZXN0IGRyaXZlIn0sIlRlc3REcml2ZU5ldyI6eyJGUkVOQ0giOiJMZWFkIDogRGVtYW5kZSBkJ2Vzc2FpIHJvdXRpZXIiLCJFTkdMSVNIIjoiTGVhZDogUmVxdWVzdCBmb3IgYSB0ZXN0IGRyaXZlIn0sIlRpcmVzUmVxdWVzdCI6eyJGUkVOQ0giOiJMZWFkIDogRGVtYW5kZSBkZSBwbmV1cyIsIkVOR0xJU0giOiJMZWFkOiBSZXF1ZXN0IGZvciB0aXJlcyJ9LCJQcm9tb01haWwiOnsiRlJFTkNIIjoiTGVhZCA6IERlbWFuZGUgZCdpbnZpdGF0aW9uIGEgbGEgdmVudGUgcHJpdmVlIiwiRU5HTElTSCI6IkxlYWQ6IFJlcXVlc3QgZm9yIGludml0YXRpb24gdG8gcHJpdmF0ZSBzYWxlIn0sIlNsaWRlV2lkZ2V0Rm9ybSI6eyJGUkVOQ0giOiJVSVRFWFQiLCJFTkdMSVNIIjoiVUlURVhUIn0sIkNvbXBhcmVGb3JtIjp7IkZSRU5DSCI6IlVJVEVYVCIsIkVOR0xJU0giOiJVSVRFWFQifSwiU2VhcmNoRmlsdGVycyI6eyJGUkVOQ0giOiJVSVRFWFQiLCJFTkdMSVNIIjoiVUlURVhUIn0sImhlYWRlckdsb2JhbFNlYXJjaCI6eyJGUkVOQ0giOiJVSVRFWFQiLCJFTkdMSVNIIjoiVUlURVhUIn19LCJzdWJfZ2E0IjoiWSJ9KTt9Y2F0Y2goZXp6MSl7aWYoY29uc29sZSYmY29uc29sZS5sb2cpCmNvbnNvbGUubG9nKGV6ejEpO30KdmFyIGlkZW50X2Y3M2ZhNmFiYmZiNGJhYjNmNDlkYWFmYjM4OTFlMjdmO3RyeXsoZnVuY3Rpb24odyxkLHQscix1KXt2YXIgZixuLGk7d1t1XT13W3VdfHxbXSxmPWZ1bmN0aW9uKCl7dmFyIG89e3RpOiI1MDc5MzkxIixlbmFibGVBdXRvU3BhVHJhY2tpbmc6dHJ1ZX07by5xPXdbdV0sd1t1XT1uZXcgVUVUKG8pLHdbdV0ucHVzaCgicGFnZUxvYWQiKX0sbj1kLmNyZWF0ZUVsZW1lbnQodCksbi5zcmM9cixuLmFzeW5jPTEsbi5zZXRBdHRyaWJ1dGUoImRhdGEtb3QtaWdub3JlIix0cnVlKSxuLnNldEF0dHJpYnV0ZSgidHlwZSIsInRleHQvamF2YXNjcmlwdCIpLG4ub25sb2FkPW4ub25yZWFkeXN0YXRlY2hhbmdlPWZ1bmN0aW9uKCl7dmFyIHM9dGhpcy5yZWFkeVN0YXRlO3MmJnMhPT0ibG9hZGVkIiYmcyE9PSJjb21wbGV0ZSJ8fChmKCksbi5vbmxvYWQ9bi5vbnJlYWR5c3RhdGVjaGFuZ2U9bnVsbCl9LGk9ZC5nZXRFbGVtZW50c0J5VGFnTmFtZSh0KVswXSxpLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKG4saSl9KSh3aW5kb3csZG9jdW1lbnQsInNjcmlwdCIsIi8vYmF0LmJpbmcuY29tL2JhdC5qcyIsInVldHEiKTt9Y2F0Y2goZXp6MSl7aWYoY29uc29sZSYmY29uc29sZS5sb2cpCmNvbnNvbGUubG9nKGV6ejEpO30KdmFyIGlkZW50XzE1ZGJlMWVjNGJiODE5ZjNiZTlhZjBiYjkxNzMxZDlmO3RyeXt2YXIgZGVwbG95bWVudFR5cGU9JycranNfZDJjX2dldF92YWwoIjJlamhiYzB5eW9nMHd3dyIpKycnO2lmKGRlcGxveW1lbnRUeXBlPT0nbGl2ZScpe2dhVHJhY2soJ190cmFja0V2ZW50JywnUGFnZXMgdnVlcycsJ1NlY3Rpb24tTmV1Zi1Nb2JpbGUnLCcnLDEpO2dhVHJhY2soJ2MuX3RyYWNrRXZlbnQnLCdNb2JpbGUgcGFnZXZpZXdzJywnU3RhbmRhcmQgTW9iaWxlJyx3aW5kb3cubG9jYXRpb24uaHJlZiwnMScpO31lbHNlIGlmKGRlcGxveW1lbnRUeXBlPT0nc3RhZ2luZycpe2dhVHJhY2soJ2IuX3RyYWNrRXZlbnQnLCdNb2JpbGUgcGFnZXZpZXdzJywnU3RhbmRhcmQgTW9iaWxlJyx3aW5kb3cubG9jYXRpb24uaHJlZiwnMScpO319Y2F0Y2goZXp6MSl7aWYoY29uc29sZSYmY29uc29sZS5sb2cpCmNvbnNvbGUubG9nKGV6ejEpO30KdmFyIGlkZW50XzQ1NmM0N2I2MmMyNmM5MjFlZWZiZDRlODE1NWJkMTJkO3RyeXtmdW5jdGlvbiBzaG93UGhvbmVQb3B1cCgpe2dhVHJhY2soJ190cmFja0V2ZW50JywnVGVsZXBob25lcycsJ1NpdGUtTW9iaWxlJywnJywxKTt2YXIgaHRtbD1QaG9uZXNUb1JlcGxhY2UucmVwbGFjZShhdG9iKCJQR1JwZGlCamJHRnpjejBuYldWdWRTYytQSFZzSUdOc1lYTnpQU0p6ZEdGamF5MXNZeUkrUEd4cFBnb0pQR0VnSUdoeVpXWTlJblJsYkRwN0pGVnpaV1JRU0U5T1JVWlBVazFCVkZSRlJIMGlJSFJoY21kbGREMGlYM05sYkdZaUlITjBlV3hsUFNKbWIyNTBMWE5wZW1VNklESXljSGc3SWlCa1lYUmhMV1JsY0dGeWRHMWxiblE5SWxOaGJHVnpJajRLQ1FrOGFTQmpiR0Z6Y3owaVptRWdabUV0Y0dodmJtVWlJSE4wZVd4bFBTSnRZWEpuYVc0NklETndlQ0F4TUhCNElEQWdNVFZ3ZURzaVBqd3ZhVDRLQ1FsV1pXNTBaWE1LQ1R3dllUNEtDUW84TDJ4cFBqeHNhVDRLQ1R4aElDQm9jbVZtUFNKMFpXdzZPREU1T0RRNU1qYzJOeUlnZEdGeVoyVjBQU0pmYzJWc1ppSWdjM1I1YkdVOUltWnZiblF0YzJsNlpUb2dNakp3ZURzaUlHUmhkR0V0WkdWd1lYSjBiV1Z1ZEQwaVUyVnlkbWxqWlNJK0Nna0pQR2tnWTJ4aGMzTTlJbVpoSUdaaExYQm9iMjVsSWlCemRIbHNaVDBpYldGeVoybHVPaUF6Y0hnZ01UQndlQ0F3SURFMWNIZzdJajQ4TDJrK0Nna0pVMlZ5ZG1salpRb0pQQzloUGdvSkNqd3ZiR2srUEM5MWJENDhMMlJwZGo0PSIpKTtpZigkKGh0bWwpLmZpbmQoJ2EnKS5sZW5ndGg9PTEpeyQoJyNwaG9uZU51bWJlckRpdicpLmh0bWwoaHRtbCkuZmluZCgnYScpWzBdLmNsaWNrKCk7cmV0dXJuO30KJCgnI3Bob25lTnVtYmVyRGl2JykuaHRtbChodG1sKS5yZXZlYWwoe2FuaW1hdGlvbjonZmFkZUFuZFBvcCcsYW5pbWF0aW9uc3BlZWQ6MzAwLGNsb3Nlb25iYWNrZ3JvdW5kY2xpY2s6dHJ1ZSxkaXNtaXNzbW9kYWxjbGFzczonY2xvc2UtcmV2ZWFsLW1vZGFsJ30pO30KZnVuY3Rpb24gY2hlY2tBdXRoKCl7Z2FwaS5hdXRoLmF1dGhvcml6ZSh7Y2xpZW50X2lkOmdhcGljbGllbnRJZCxzY29wZTpnYXBpc2NvcGVzLGltbWVkaWF0ZTpmYWxzZX0saGFuZGxlQXV0aFJlc3VsdCk7fQpmdW5jdGlvbiBoYW5kbGVBdXRoUmVzdWx0KGF1dGhSZXN1bHQpe2lmKGF1dGhSZXN1bHQmJiFhdXRoUmVzdWx0LmVycm9yKXtvcGVuR29vZ2xlTWFwKHRydWUpO31lbHNle29wZW5Hb29nbGVNYXAoZmFsc2UpO319CmZ1bmN0aW9uIG9wZW5Hb29nbGVNYXAoKXt2YXIgbWFwVG9Vc2U9IiIranNfZDJjX2dldF92YWwoIjE0MDRyYTA0Yndya280d2ciKSsiIjt2YXIgdXJsPSJodHRwOi8vbWFwcy4iK21hcFRvVXNlKyIuY29tLz9xPTM5NitSdWUrTWFpbitPdWVzdCUyQytDb2F0aWNvb2slMkMrUXUlM0ZiZWMlMkMrSjFBKzFQNyZ6PTEzIjt3aW5kb3cub3Blbih1cmwpO319Y2F0Y2goZXp6MSl7aWYoY29uc29sZSYmY29uc29sZS5sb2cpCmNvbnNvbGUubG9nKGV6ejEpO30KdmFyIGlkZW50XzRkMjViYTA2NDE3MTM4Nzg1YWNmYTUwMDY1YmJiYWE5O3RyeXt9Y2F0Y2goZXp6MSl7aWYoY29uc29sZSYmY29uc29sZS5sb2cpCmNvbnNvbGUubG9nKGV6ejEpO30KdmFyIGlkZW50XzM1Mzc1NDdlNjVjMzFhOTA3YjU2MzIzNzZlMDI0NjdmO3RyeXt2YXIgZXNmRGVsYXk9MTA7ZnVuY3Rpb24gZXNjYXBlRnJhbWUoKXtpZigoZG9jdW1lbnQubG9jYXRpb24rJycpLmluZGV4T2YoJ25mcj0xJyk9PS0xKXJldHVybjskKCdhJykubm90KCdbdGFyZ2V0XScpLmVhY2goZnVuY3Rpb24oKXt2YXIgZWw9JCh0aGlzKTt2YXIgdGFyZ2V0PWVsLmF0dHIoJ3RhcmdldCcpO3ZhciBocmVmPWVsLmF0dHIoJ2hyZWYnKTtpZih0YXJnZXQmJnRhcmdldC5sZW5ndGg+MCl7cmV0dXJuO30KaWYoIWhyZWYpcmV0dXJuO3ZhciBwcm90b2NvbD1ocmVmLm1hdGNoKC9eKFthLXowLTldKyk6Lyk7aWYocHJvdG9jb2whPW51bGwmJiFwcm90b2NvbFsxXS5tYXRjaCgvXmh0dHAvKSl7cmV0dXJuO30KaWYoaHJlZlswXT09PScjJyl7cmV0dXJuO30KZWwuYXR0cigndGFyZ2V0JywnX3RvcCcpO30pO3NldFRpbWVvdXQoZXNjYXBlRnJhbWUsMTAwKmVzZkRlbGF5KyspO30KalF1ZXJ5KGVzY2FwZUZyYW1lKTtmdW5jdGlvbiB0b2dnbGVTdWJtZW51cyhvYmopeyQob2JqKS5jbG9zZXN0KCdsaScpLmZpbmQoJy5zdWJtZW51SXRlbUNvbnRhaW5lciwgLnN1Ym1lbnVJdGVtQ2hpbGRDb250YWluZXInKS5maXJzdCgpLnNsaWRlVG9nZ2xlKCdzbG93Jyk7aWYoJChvYmopLmhhc0NsYXNzKCdtZW51Q29sbHBhc2UnKSl7JChvYmopLnJlbW92ZUNsYXNzKCdtZW51Q29sbHBhc2UnKTt9ZWxzZXskKG9iaikuYWRkQ2xhc3MoJ21lbnVDb2xscGFzZScpO30KcmV0dXJuIGZhbHNlO30KZnVuY3Rpb24gZ2V0UGFyYW1ldGVyQnlOYW1lKG5hbWUpe25hbWU9bmFtZS5yZXBsYWNlKC9bXFtdLywiXFsiKS5yZXBsYWNlKC9bXF1dLywiXF0iKTt2YXIgcmVnZXg9bmV3IFJlZ0V4cCgiW1w\/Jl0iK25hbWUrIj0oW14mI10qKSIpLHJlc3VsdHM9cmVnZXguZXhlYyhsb2NhdGlvbi5zZWFyY2gpO3JldHVybiByZXN1bHRzPT1udWxsPyIiOmRlY29kZVVSSUNvbXBvbmVudChyZXN1bHRzWzFdLnJlcGxhY2UoL1wrL2csIiAiKSk7fQp2YXIgdXRtX3NvdXJjZT1nZXRQYXJhbWV0ZXJCeU5hbWUoJ3V0bV9zb3VyY2UnKTtqUXVlcnkoZnVuY3Rpb24oJCl7JCgnLm5vdENsaWNrYWJsZScpLm9uKCdjbGljaycsZnVuY3Rpb24oZXZlbnQpe2V2ZW50LnByZXZlbnREZWZhdWx0KCk7dG9nZ2xlU3VibWVudXMoJCgnLm1lbnVFeHBhbmQnLHRoaXMpKTtyZXR1cm4gZmFsc2U7fSk7JCgnLm1lbnVFeHBhbmQnKS5vbignY2xpY2snLGZ1bmN0aW9uKGV2ZW50KXtldmVudC5wcmV2ZW50RGVmYXVsdCgpO3RvZ2dsZVN1Ym1lbnVzKCQoJy5tZW51RXhwYW5kJyx0aGlzLmNsb3Nlc3QoJy5tZW51LWl0ZW0nKSkpO3JldHVybiBmYWxzZTt9KTtpZigkKCcudXNlZHBob25lZm9ybWF0ZWQnKS5sZW5ndGg+MCYmJCgnI2FnZW50cGhvbmUnKS5sZW5ndGg+MCYmJCgnI2FnZW50cGhvbmUnKS52YWwoKS5sZW5ndGg+NSl7JCgnLnVzZWRwaG9uZWZvcm1hdGVkJykuYXR0cignaHJlZicsJ3RlbDonKyQoJyNhZ2VudHBob25lJykudmFsKCkpO30Kc2V0VGltZW91dChmdW5jdGlvbigpeyQod2luZG93KS5vbignb3JpZW50YXRpb25jaGFuZ2UnLGZ1bmN0aW9uKGV2ZW50KXtpZih3aW5kb3cub3JpZW50YXRpb249PTkwfHx3aW5kb3cub3JpZW50YXRpb249PS05MHx8d2luZG93Lm9yaWVudGF0aW9uPT0yNzApeyQoJ21ldGFbbmFtZT0idmlld3BvcnQiXScpLmF0dHIoJ2NvbnRlbnQnLCdoZWlnaHQ9ZGV2aWNlLXdpZHRoLHdpZHRoPWRldmljZS1oZWlnaHQsaW5pdGlhbC1zY2FsZT0xLG1heGltdW0tc2NhbGU9MycpOyQod2luZG93KS50cmlnZ2VyKCdyZXNpemUnKTt9ZWxzZXskKCdtZXRhW25hbWU9InZpZXdwb3J0Il0nKS5hdHRyKCdjb250ZW50JywnaGVpZ2h0PWRldmljZS1oZWlnaHQsd2lkdGg9ZGV2aWNlLXdpZHRoLGluaXRpYWwtc2NhbGU9MSxtYXhpbXVtLXNjYWxlPTMnKTskKHdpbmRvdykudHJpZ2dlcigncmVzaXplJyk7fX0pLnRyaWdnZXIoJ29yaWVudGF0aW9uY2hhbmdlJyk7aWYodXRtX3NvdXJjZSE9IiIpe0Nvb2tpZXMuc2V0KCd1dG1fbGFuZGluZ19mb290ZXInLG51bGwsbnVsbCwiLyIpO30KaWYoQ29va2llcy5nZXQoInV0bV9sYW5kaW5nX2Zvb3RlciIpPT1udWxsKXtDb29raWVzLnNldCgndXRtX2xhbmRpbmdfZm9vdGVyJyx3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUsbnVsbCwiLyIpO319KTt9LDEwMDAwKTtmdW5jdGlvbiBzaG93Tm9ybWFsU2l0ZSgpe3ZhciBkb21haW49IiIranNfZDJjX2dldF92YWwoInU2dGhydzlvbGNnOHc4dyIpKyIiO0Nvb2tpZXMuc2V0KCdVc2VGdWxsU2l0ZScsJzEnLG51bGwsIi8iLGRvbWFpbik7d2luZG93LmxvY2F0aW9uLmhyZWY9JycranNfZDJjX2dldF92YWwoImNvdTlobTQyOTFjMGtvYyIpKycnO319Y2F0Y2goZXp6MSl7aWYoY29uc29sZSYmY29uc29sZS5sb2cpCmNvbnNvbGUubG9nKGV6ejEpO30KdmFyIGlkZW50XzMxNGNhYTViZjU5MDkyYzZmN2NmNmEyZmM3MmU5NTEzO3RyeXtpZih0eXBlb2YgcGFnZSE9PSd1bmRlZmluZWQnJiZwYWdlPT0iTkVXQ0FSREVUQUlMUyIpeyQoZG9jdW1lbnQpLm9uKCdjbGljaycsJ2EnLGZ1bmN0aW9uKCl7dmFyIG9iaj0kKHRoaXMpO3ZhciBocmVmPW9iai5hdHRyKCdocmVmJyk7dmFyIHRleHQ9b2JqLnRleHQoKTtpZih0ZXh0Lmxlbmd0aD4wJiZvYmouZmluZCgnaW1nJykubGVuZ3RoPT0wJiZ0eXBlb2YgaHJlZiE9J3VuZGVmaW5lZCcpe3ZhciB0aXRsZT0kKCcuYnJhbmRlbWFpbFtuYW1lPSJicmFuZCJdJykudmFsKCkrJy0nKyQoJy5tb2RlbGVtYWlsW25hbWU9Im1vZGVsIl0nKS52YWwoKSsnLScrJCgnLnllYXJlbWFpbCcpLnZhbCgpO2lmKGhyZWYhPSIjIiYmaHJlZiE9IiImJmhyZWYuaW5kZXhPZigiamF2YXNjcmlwdCIpPDAmJmhyZWYuaW5kZXhPZigneycpPDApe3RpdGxlPWhyZWY7fQpnYVRyYWNrKCdfdHJhY2tFdmVudCcsJ05ldy1WRFAtT3V0Ym91bmQtY2xpY2tzJyxvYmoudGV4dCgpLHRpdGxlKTt9fSl9fWNhdGNoKGV6ejEpe2lmKGNvbnNvbGUmJmNvbnNvbGUubG9nKQpjb25zb2xlLmxvZyhlenoxKTt9CnZhciBpZGVudF8yNTVhYWJmOTE2MGFjZmRkNmY5YmU0MGUxMzlmYjFhZDt0cnl7alF1ZXJ5KGZ1bmN0aW9uKCQpeyQoIiNkMmNGb290ZXJDb29raWVEZWxldGUiKS5wb3B1cGl6ZSh7ImNvb2tpZUR1cmF0aW9uIjozMCwiY29va2llTmFtZSI6bnVsbCwiY29va2llQ3JlYXRlIjpudWxsLCJnb29nbGVUcmFja2luZyI6eyJpZFN1ZmZpeCI6IiIsImxhYmVsIjoiIiwibGFiZWxzZWN0aW9uIjoiIiwiaXNleHByZXNzIjowLCJpc3Byb21vIjowLCJpc2hvbWVwYWdlIjowLCJpc21vYmlsZSI6MH0sImZvcm0iOnsiZW1haWxpZCI6bnVsbCwib2ZmZXJ0eXBlIjpudWxsLCJuYW1lIjpudWxsLCJzZW5kVG8iOm51bGwsInNlbmRUb0FERiI6bnVsbCwiT0tCdXR0b25DbGFzcyI6InN1Ym1pdEJ0biIsIkNhbmNlbEJ1dHRvbkNsYXNzIjoiY2FuY2VsQnRuIiwic2hvd0VtYWlsQ29uZmlybWF0aW9uIjpmYWxzZSwiZnJvbUFBIjpmYWxzZSwiY29uZmlybWF0aW9uIjp7InRpdGxlIjpudWxsLCJib2R5IjpudWxsfX0sInN0YXRlIjpbXSwidmVoaWNsZVN0YXRlIjoidXNlZCIsImNsb3NlT25TdWJtaXQiOnRydWUsImZpbGxmbGFnIjpmYWxzZSwibm90cmFuc2Zvcm0iOnRydWUsIm5hbWUiOmZhbHNlLCJhbmltYXRpb24iOiJmYWRlQW5kUG9wIiwiYW5pbWF0aW9uU3BlZWQiOjMwMCwiY2xvc2VPbkJhY2tncm91bmRDbGljayI6ZmFsc2UsImRpc21pc3NNb2RhbENsYXNzIjoiY2xvc2UtcmV2ZWFsLW1vZGFsIiwiY2xvc2VCdXR0b24iOnRydWUsImJ5cGFzc0NvbnNlbnQiOmZhbHNlLCJ0aHJlc2hvbGQiOmZhbHNlLCJ0aHJlc2hvbGRWYWx1ZSI6ZmFsc2UsInNjcm9sbHVwIjpmYWxzZSwibWFpbnBvcHVwIjpmYWxzZSwic2hvd29ubG9hZCI6ZmFsc2UsImNvdW50ZG93biI6MTc3NDE1MjAwMCwiY29uZmlybUZvcm0iOlt7Im5hbWUiOiJsYWJlbCIsInZhbHVlIjoiIiwiY2xhc3MiOiJsYWJlbGVtYWlsIn0seyJuYW1lIjoic2VjdGlvbiIsInZhbHVlIjoiIiwiY2xhc3MiOiJsYWJlbHNlY3Rpb24ifSx7Im5hbWUiOiJicmFuZCIsInZhbHVlIjoiIitqc19kMmNfZ2V0X3ZhbCgiMWVyaXY5MDBwZGE4OHd3OCIpKyIiLCJjbGFzcyI6ImJyYW5kZW1haWwifSx7Im5hbWUiOiJtb2RlbCIsInZhbHVlIjoiIitqc19kMmNfZ2V0X3ZhbCgiMTBwYTd2M3FlbGRjb3NrIikrIiIsImNsYXNzIjoibW9kZWxlbWFpbCJ9LHsibmFtZSI6InllYXIiLCJ2YWx1ZSI6IiIranNfZDJjX2dldF92YWwoInI4Mnpma3hhMmR3c3MwMCIpKyIiLCJjbGFzcyI6InllYXJlbWFpbCJ9LHsibmFtZSI6Imdvb2dsZWlkIiwidmFsdWUiOiIifSx7Im5hbWUiOiJnb29nbGVpZGQyY21lZGlhIiwidmFsdWUiOiIifSx7Im5hbWUiOiJiaW5nY29uaWQiLCJ2YWx1ZSI6IiJ9LHsibmFtZSI6ImJpbmdhY3Rpb25pZCIsInZhbHVlIjoiIn0seyJuYW1lIjoiYmluZ2RvbWFpbmlkIiwidmFsdWUiOiIifSx7Im5hbWUiOiJhZHJvbGxBZHYiLCJ2YWx1ZSI6IiJ9LHsibmFtZSI6ImFkcm9sbFBpeCIsInZhbHVlIjoiIn0seyJuYW1lIjoiZmFjZWJvb2tDb25JZCIsInZhbHVlIjoiIn0seyJuYW1lIjoiZG9tYWluIiwidmFsdWUiOiJtYXVyYWlzYXV0by5jb20ifSx7Im5hbWUiOiJyZWZlcnJlciIsInZhbHVlIjoiIitqc19kMmNfZ2V0X3ZhbCgiaTNnc2F4Z3M1ams4d2NrIikrIiJ9LHsibmFtZSI6ImlzZXhwcmVzcyIsInZhbHVlIjoiMCIsImNsYXNzIjoiaXNleHByZXNzIn0seyJuYW1lIjoiaXNwcm9tbyIsInZhbHVlIjoiMCJ9LHsibmFtZSI6ImlzaG9tZXBhZ2UiLCJ2YWx1ZSI6IjAifSx7Im5hbWUiOiJ0ZXh0Q2FyU2VjdGlvblR5cGUiLCJ2YWx1ZSI6IiIranNfZDJjX2dldF92YWwoInNvN3l1cWFqNGR3Y2M4cyIpKyIifSx7Im5hbWUiOiJmcm9tQUEiLCJ2YWx1ZSI6IiJ9LHsibmFtZSI6ImxhbmciLCJ2YWx1ZSI6IkZSRU5DSCJ9XX0pO30pO31jYXRjaChlenoxKXtpZihjb25zb2xlJiZjb25zb2xlLmxvZykKY29uc29sZS5sb2coZXp6MSk7fQp2YXIgaWRlbnRfMzdhNTM4ODI3Mzc4NjE1NTdlNGY4OTAyMDUyNWMwODQ7dHJ5e2pRdWVyeShmdW5jdGlvbigkKXtpZigkKCcjZ2VuZXJpY19mb3JtX2NvbmZpcm0nKS5sZW5ndGg8MSl7dmFyIEZvcm09JCgnPGZvcm0gaWQ9ImdlbmVyaWNfZm9ybV9jb25maXJtIiB0YXJnZXQ9ImlmcmFtZWd0cmFjayIgbWV0aG9kPSJwb3N0IiBhY3Rpb249Ii9jb25maXJtYXRpb24uaHRtbCI+PC9mb3JtPicpO3ZhciBtYWtlVmFsPSIiK2pzX2QyY19nZXRfdmFsKCIxZXJpdjkwMHBkYTg4d3c4IikrIiI7dmFyIG1vZGVsVmFsPSIiK2pzX2QyY19nZXRfdmFsKCIxMHBhN3YzcWVsZGNvc2siKSsiIjt2YXIgeWVhclZhbD0iIitqc19kMmNfZ2V0X3ZhbCgicjgyemZreGEyZHdzczAwIikrIiI7dmFyIHJlZmVyYWxWYWw9IiIranNfZDJjX2dldF92YWwoImkzZ3NheGdzNWprOHdjayIpKyIiO3ZhciBzZWN0aW9uVmFsPScnK2pzX2QyY19nZXRfdmFsKCJzbzd5dXFhajRkd2NjOHMiKSsnJzt2YXIgZnJvbUF1dG9hdWJhaW5lPSQoJyNhdXRvYXViYWluZV9wb3B1cCcpLmxlbmd0aD4wJiYoJCgnI2F1dG9hdWJhaW5lX3BvcHVwJykudmFsKCkhPSdmYWxzZScpO3ZhciBpbnB1dHM9KFt7Im5hbWUiOiJsYWJlbCIsInZhbHVlIjoiIiwiY2xhc3MiOiJsYWJlbGVtYWlsIn0seyJuYW1lIjoic2VjdGlvbiIsInZhbHVlIjoiIiwiY2xhc3MiOiJsYWJlbHNlY3Rpb24ifSx7Im5hbWUiOiJicmFuZCIsInZhbHVlIjptYWtlVmFsLCJjbGFzcyI6ImJyYW5kZW1haWwifSx7Im5hbWUiOiJtb2RlbCIsInZhbHVlIjptb2RlbFZhbCwiY2xhc3MiOiJtb2RlbGVtYWlsIn0seyJuYW1lIjoieWVhciIsInZhbHVlIjp5ZWFyVmFsLCJjbGFzcyI6InllYXJlbWFpbCJ9LHsibmFtZSI6Imdvb2dsZWlkIiwidmFsdWUiOiIifSx7Im5hbWUiOiJnb29nbGVpZGQyY21lZGlhIiwidmFsdWUiOiIifSx7Im5hbWUiOiJiaW5nY29uaWQiLCJ2YWx1ZSI6IiJ9LHsibmFtZSI6ImJpbmdhY3Rpb25pZCIsInZhbHVlIjoiIn0seyJuYW1lIjoiYmluZ2RvbWFpbmlkIiwidmFsdWUiOiIifSx7Im5hbWUiOiJndGFnX2NvbnZlcnNpb24iLCJ2YWx1ZSI6Imd0YWcifSx7Im5hbWUiOiJhZHJvbGxBZHYiLCJ2YWx1ZSI6IiJ9LHsibmFtZSI6ImFkcm9sbFBpeCIsInZhbHVlIjoiIn0seyJuYW1lIjoiZmFjZWJvb2tDb25JZCIsInZhbHVlIjoiIn0seyJuYW1lIjoibGVhZF9kZXBhcnRtZW50IiwidmFsdWUiOiIifSx7Im5hbWUiOiJsZWFkVHlwZSIsInZhbHVlIjoiIn0seyJuYW1lIjoicGFnZUlEIiwidmFsdWUiOiIifSx7Im5hbWUiOiJjdXJyZW50VVJMIiwidmFsdWUiOiIifSx7Im5hbWUiOiJkb21haW4iLCJ2YWx1ZSI6Im1hdXJhaXNhdXRvLmNvbSJ9LHsibmFtZSI6InJlZmVycmVyIiwidmFsdWUiOnJlZmVyYWxWYWx9LHsibmFtZSI6ImlzZXhwcmVzcyIsInZhbHVlIjoiIiwiY2xhc3MiOiJpc2V4cHJlc3MifSx7Im5hbWUiOiJpc3Byb21vIiwidmFsdWUiOiIifSx7Im5hbWUiOiJpc2hvbWVwYWdlIiwidmFsdWUiOiIifSx7Im5hbWUiOiJ0ZXN0bW9kZSIsInZhbHVlIjoiMCIsImNsYXNzIjoidGVzdG1vZGUifSx7Im5hbWUiOiJ0ZXh0Q2FyU2VjdGlvblR5cGUiLCJ2YWx1ZSI6c2VjdGlvblZhbH0seyJuYW1lIjoibGFuZyIsInZhbHVlIjoiRlJFTkNIIn0seyJuYW1lIjoiYnV0dG9uUG9zaXRpb24iLCJ2YWx1ZSI6IiJ9LHsibmFtZSI6ImRlYWxlck5hbWUiLCJ2YWx1ZSI6IiJ9LHsibmFtZSI6ImlzRnVsbFdpZHRoIiwidmFsdWUiOiIifSx7Im5hbWUiOiJpc01vYmlsZU5ld1ZEUCIsInZhbHVlIjoiIn0seyJuYW1lIjoiZnJvbUF1dG9BdWJhaW5lIiwidmFsdWUiOjB9XSk7Zm9yKHZhciBpPTA7aTxpbnB1dHMubGVuZ3RoO2krKyl7JCgnPGlucHV0IHR5cGU9ImhpZGRlbiIgLz4nKS5hdHRyKGlucHV0c1tpXSkuYXBwZW5kVG8oRm9ybSk7fQpGb3JtLmFwcGVuZFRvKCdib2R5Jyk7Rm9ybS5vbignc3VibWl0JyxvbkNvbmZpcm1TdWJtaXQpO30KaWYoJCgnI2d0cmFja0ZyYW1lJykubGVuZ3RoPDEpeyQoJzxpZnJhbWU+PC9pZnJhbWU+JykuYXR0cih7d2lkdGg6MSxoZWlnaHQ6MSxmcmFtZUJvcmRlcjowLGlkOidndHJhY2tGcmFtZScsbmFtZTonaWZyYW1lZ3RyYWNrJyxzdHlsZTond2lkdGg6MXB4O2hlaWdodDoxcHg7Jyx0aXRsZTonZnJhbWUnfSkuYXBwZW5kVG8oJyNjb25maXJtX2Zvcm1zJyk7fX0pO31jYXRjaChlenoxKXtpZihjb25zb2xlJiZjb25zb2xlLmxvZykKY29uc29sZS5sb2coZXp6MSk7fQp2YXIgaWRlbnRfY2FjMzVkZDcyNDE3NmI3NjNhZmE3MzMzMTJiYTVjMGI7dHJ5e2pRdWVyeShmdW5jdGlvbigkKXskKCIjbXVsdGlmb3JtUG9wdXBDb250YWluZXIiKS5wb3B1cGl6ZSh7Im9uQmVmb3JlT3BlbiI6ZnVuY3Rpb24oKXt2YXIgJCQ9JCh0aGlzKTtpZighQ29va2llcy5nZXQoInBvcHVwUGFnZVZpZXdzIikpe0Nvb2tpZXMuZ2V0KCJwb3B1cFBhZ2VWaWV3cyIsIjAiLG51bGwsIi8iKTt9CiQoIiNtdWx0aWZvcm1Qb3B1cENvbnRhaW5lciIpLmNzcyh7cGFkZGluZzowLGJhY2tncm91bmQ6IiNmZmYifSk7aWYoQ29va2llcy5nZXQoIm11bHRpRm9ybVBvcHVwRmlsbGVkIikpeyQoIi5tdWx0aWZvcm1fYm9keSIsJCQpLmh0bWwoJCgiLm11bHRpZm9ybV9maWxsZWQiLCQkKS5odG1sKCkpOyQoIi5tdWx0aWZvcm1fZm9vdGVyIiwkJCkuaGlkZSgpOyQoIiNtdWx0aWZvcm1fZm9ybVciKS5jc3MoImhlaWdodCIsIjI0MHB4Iik7JCgiI211bHRpZm9ybVBvcHVwQ29udGFpbmVyIikuY3NzKCJoZWlnaHQiLCIyNDBweCIpO30KJChkb2N1bWVudCkub24oInJldmVhbDpvcGVuIiwiI211bHRpZm9ybVBvcHVwQ29udGFpbmVyIixmdW5jdGlvbigpeyQoIm11bHRpZm9ybVBvcHVwQ29udGFpbmVyICNtdWx0aWZvcm1fcG9zdGFsIikudHJpZ2dlcigiZm9jdXMiKTt9KTt9LCJvbkJlZm9yZXN1Ym1pdCI6ZnVuY3Rpb24oc2VsZil7dmFyICQkPSQodGhpcyk7Q29va2llcy5zZXQoJ211bHRpRm9ybVBvcHVwRmlsbGVkJywnMScscGFyc2VJbnQoMjAyNi0wMy0xNSksJy8nKTtpZigkKCcjbXVsdGlmb3JtX3NtcycpLnZhbCgpLmxlbmd0aD4zKXskKCcuZW1haWxTdWJqZWN0JywkJCkuaHRtbCgkKCcuc21zX2VtYWlsU3ViamVjdCcsJCQpLmh0bWwoKSk7JCgnLmVtYWlsQm9keScsJCQpLmh0bWwoJCgnLnNtc19lbWFpbEJvZHknLCQkKS5odG1sKCkpO3NlbGYuc2V0dGluZ3MuZm9ybS5lbWFpbGlkPSdNdWx0aUZvcm1fU01TJztzZWxmLnNldHRpbmdzLmdvb2dsZVRyYWNraW5nLmxhYmVsPSdNZWlsbGV1cmUgb2ZmcmUgU01TIChOZXVmKSc7c2VsZi5zZXR0aW5ncy5nb29nbGVUcmFja2luZy5sYWJlbHNlY3Rpb249J05ldWYnO30KZW1haWxIYW5kbGVyLmRlcGFydG1lbnQ9ZW1haWxIYW5kbGVyLmdldERlcCgpO2lmKGVtYWlsSGFuZGxlci5kZXBhcnRtZW50IT0nTkVXJ3x8ZW1haWxIYW5kbGVyLmRlcGFydG1lbnQhPSdVU0VEJyl7ZW1haWxIYW5kbGVyLmRlcGFydG1lbnQ9J05FVyc7fX0sIm9uQmVmb3JlVmFsaWRhdGlvbiI6ZnVuY3Rpb24oKXskLnZhbGlkaXR5LnN0YXJ0KCk7dmFyIGlzU01TPWZhbHNlO2lmKCQoJyNtdWx0aWZvcm1Qb3B1cENvbnRhaW5lcicpLmZpbmQoJyNtdWx0aWZvcm1fc21zJykudmFsKCkubGVuZ3RoPjN8fCQoJyNtdWx0aWZvcm1fc21zJykuaGFzQ2xhc3MoJ3JlcXVpcmVkJykpe2lzU01TPXRydWU7JCgnI211bHRpZm9ybVBvcHVwQ29udGFpbmVyJykuZmluZCgnI211bHRpZm9ybV9zbXMnKS5yZXF1aXJlKCkudmFsaWRhdGVQaG9uZSgpOyQoJyNtdWx0aWZvcm1Qb3B1cENvbnRhaW5lcicpLmZpbmQoJyN1c2VybmFtZScpLnJlcXVpcmUoKTt9ZWxzZXskKCcjbXVsdGlmb3JtUG9wdXBDb250YWluZXInKS5maW5kKCcjbXVsdGlmb3JtX2VtYWlsJykucmVxdWlyZSgpLnZhbGlkRW1haWxBZGRyZXNzKCk7JCgnI211bHRpZm9ybVBvcHVwQ29udGFpbmVyJykuZmluZCgnI3VzZXJuYW1lJykucmVxdWlyZSgpO30KdmFyIHJlc3VsdD0kLnZhbGlkaXR5LmVuZCgpO3JldHVybiByZXN1bHQudmFsaWQ7fSwib25BZnRlckluaXRpYWxpemUiOmZ1bmN0aW9uKHNlbGYpe211bHRpRm9ybVBvcHVwSW5pdGlhbGl6ZSgibXVsdGlmb3JtUG9wdXBDb250YWluZXIiKTsobmV3IEZvcm0oKSkubWFza1Bvc3RhbENvZGUoIm11bHRpZm9ybVBvcHVwQ29udGFpbmVyICNtdWx0aWZvcm1fcG9zdGFsIik7JCgibXVsdGlmb3JtUG9wdXBDb250YWluZXIgI211bHRpZm9ybV9lbWFpbCIpLm9uKCJmb2N1cyIsZnVuY3Rpb24oKXskKCJbbmFtZT1tdWx0aWZvcm1fb3JdIikudmFsKFsiZW1haWwiXSk7fSk7JCgibXVsdGlmb3JtUG9wdXBDb250YWluZXIgI211bHRpZm9ybV9zbXMiKS5vbigiZm9jdXMiLGZ1bmN0aW9uKCl7JCgiW25hbWU9bXVsdGlmb3JtX29yXSIpLnZhbChbInNtcyJdKTt9KTt2YXIgcG9wdXBUeXBlPSJuZXciO3ZhciBjdXJyZW50UGFnZT0iIitqc19kMmNfZ2V0X3ZhbCgiMTZkN3Z3dDY2cG1vd28wayIpKyIiO2lmKHR5cGVvZiBwb3B1cERlZmF1bHRPbkFmdGVySW5pdGlhbGl6ZSE9InVuZGVmaW5lZCIpe3ZhciB0bXA9cG9wdXBEZWZhdWx0T25BZnRlckluaXRpYWxpemUoIm5ldyIsIiIranNfZDJjX2dldF92YWwoIjZqeXA0NjY0dmd3czgwdyIpKyIiLHRydWUsIiIsIiIranNfZDJjX2dldF92YWwoIjE2ZDd2d3Q2NnBtb3dvMGsiKSsiIiwibXVsdGlmb3JtUG9wdXBDb250YWluZXIiLGZhbHNlKTtyZXR1cm4gdG1wO319LCJvbkJlZm9yZVNlbmRNYWlsIjpmdW5jdGlvbihzZWxmKXtlbWFpbEhhbmRsZXIuZGVwYXJ0bWVudD1lbWFpbEhhbmRsZXIuZ2V0RGVwKCk7aWYoZW1haWxIYW5kbGVyLmRlcGFydG1lbnQ9PSdVU0VEJyl7ZW1haWxIYW5kbGVyLnN1YmplY3Q9ZW1haWxIYW5kbGVyLnN1YmplY3QucmVwbGFjZSgnbmV3JywndXNlZCcpO2VtYWlsSGFuZGxlci5zdWJqZWN0PWVtYWlsSGFuZGxlci5zdWJqZWN0LnJlcGxhY2UoJ25ldWYnLCdvY2Nhc2lvbicpO319LCJjb29raWVEdXJhdGlvbiI6NjAsImNvb2tpZU5hbWUiOiJtdWx0aWZvcm1Qb3B1cFNob3duIiwiY29va2llQ3JlYXRlIjoib25PcGVuIiwiZ29vZ2xlVHJhY2tpbmciOnsiaWRTdWZmaXgiOiIiLCJsYWJlbCI6IkJlc3Qgb2ZmZXIgKE5ldykiLCJsYWJlbHNlY3Rpb24iOiJOZXciLCJpc2V4cHJlc3MiOjAsImlzcHJvbW8iOjAsImlzaG9tZXBhZ2UiOjAsImlzbW9iaWxlIjowfSwiZm9ybSI6eyJlbWFpbGlkIjoiTXVsdGlGb3JtIiwib2ZmZXJ0eXBlIjoiTXVsdGlGb3JtUG9wdXAiLCJuYW1lIjoibXVsdGlmb3JtX2Zvcm0iLCJzZW5kVG8iOiI1MDBhNzdlNTM2ZDE1NGMwY2FhMDA0MmY0YWM5MDBiYnwxODQxMDYwMzMzIiwic2VuZFRvQURGIjoiIiwiT0tCdXR0b25DbGFzcyI6Im11bHRpZm9ybV9idG5fMiIsIkNhbmNlbEJ1dHRvbkNsYXNzIjpudWxsLCJzaG93RW1haWxDb25maXJtYXRpb24iOnRydWUsImNvbmZpcm1hdGlvbiI6eyJ0aXRsZSI6IlZvdHJlIGRlbWFuZGUgYSBiaWVuICZlYWN1dGU7dCZlYWN1dGU7IGVudm95JmVhY3V0ZTtlISIsImJvZHkiOiJWb3RyZSBkZW1hbmRlIGEgJmVhY3V0ZTt0JmVhY3V0ZTsgZW52b3kmZWFjdXRlO2UgYXZlYyBzdWNjJmVncmF2ZTtzLiBVbiByZXByJmVhY3V0ZTtzZW50YW50IHZvdXMgY29udGFjdGVyYSBzb3VzIHBldS4ifX0sInN0YXRlIjpbXSwidmVoaWNsZVN0YXRlIjoiTmV3IiwiY2xvc2VPblN1Ym1pdCI6dHJ1ZSwiZmlsbGZsYWciOmZhbHNlLCJub3RyYW5zZm9ybSI6dHJ1ZSwibmFtZSI6ZmFsc2UsImFuaW1hdGlvbiI6ImZhZGVBbmRQb3AiLCJhbmltYXRpb25TcGVlZCI6MzAwLCJjbG9zZU9uQmFja2dyb3VuZENsaWNrIjpmYWxzZSwiZGlzbWlzc01vZGFsQ2xhc3MiOiJjbG9zZS1yZXZlYWwtbW9kYWwiLCJjbG9zZUJ1dHRvbiI6dHJ1ZSwiYnlwYXNzQ29uc2VudCI6ZmFsc2UsInRocmVzaG9sZCI6ZmFsc2UsInRocmVzaG9sZFZhbHVlIjoiNzUiLCJzY3JvbGx1cCI6ZmFsc2UsIm1haW5wb3B1cCI6dHJ1ZSwic2hvd29ubG9hZCI6ZmFsc2UsImVycm9yTXNnIjoiQ2VydGFpbnMgY2hhbXBzIG9ibGlnYXRvaXJlcyBuJ29udCBwYXMgJmVhY3V0ZTt0JmVhY3V0ZTsgcmVtcGxpcyIsImNvdW50ZG93biI6MTc3NDE1MjAwMCwiY29uZmlybUZvcm0iOltdfSk7fSk7fWNhdGNoKGV6ejEpe2lmKGNvbnNvbGUmJmNvbnNvbGUubG9nKQpjb25zb2xlLmxvZyhlenoxKTt9CnZhciBpZGVudF9iMTkyNWMyZDNkM2E4ZDM4ZjY0YzRmMDgyNDM4NDkxMzt0cnl7bWFpbFNlbnRIYW5kbGVyPWdldE1haWxTZW50SGFuZGxlcignX211bHRpZm9ybVBvcHVwQ29udGFpbmVyJyk7fWNhdGNoKGV6ejEpe2lmKGNvbnNvbGUmJmNvbnNvbGUubG9nKQpjb25zb2xlLmxvZyhlenoxKTt9CnZhciBpZGVudF8yZDVmMmQzMmQwNzJjMGZjNDliYTljMmZkYWE3ZGY4Zjt0cnl7alF1ZXJ5KGZ1bmN0aW9uKCQpeyQoIiNjcmVkaXRTY29yZVBvcHVwQ29udGFpbmVyIikucG9wdXBpemUoeyJvbkFmdGVyc3VibWl0IjpmdW5jdGlvbihzZWxmKXtzZXRDb29raWUoJ2NyZWRpdFNjb3JlRW1iZWRkZWRGaWxsZWQnLDEsMzApO2lmKHR5cGVvZiBnVXNlZFNycEFwcHohPT0ndW5kZWZpbmVkJyl7Z1VzZWRTcnBBcHB6LmZpbHRlckludGVyZmFjZS5jbGVhclByb3h5Q2FjaGVBbmRSZUZldGNoKCk7fX0sIm9uQWZ0ZXJJbml0aWFsaXplIjpmdW5jdGlvbihzZWxmKXsobmV3IEZvcm0oKSkubWFza1Bob25lKCIjY3JlZGl0U2NvcmVQb3B1cENvbnRhaW5lciAjY3JlZGl0U2NvcmVQaG9uZSIpO3ZhciBsYW5nPSQoImJvZHkiKS5oYXNDbGFzcygiRU5HTElTSCIpPyJlbiI6ImZyIjt2YXIgc3RhcnREYXRlPW5ldyBEYXRlKCk7c3RhcnREYXRlLnNldEZ1bGxZZWFyKHN0YXJ0RGF0ZS5nZXRGdWxsWWVhcigpLTMwKTt2YXIgbWF4RGF0ZT1uZXcgRGF0ZSgpO21heERhdGUuc2V0RnVsbFllYXIobWF4RGF0ZS5nZXRGdWxsWWVhcigpLTE4KTt2YXIgbWluRGF0ZT1uZXcgRGF0ZSgpO21pbkRhdGUuc2V0RnVsbFllYXIobWluRGF0ZS5nZXRGdWxsWWVhcigpLTEyMCk7JCgiLmNyZWRpdFNjb3JlQmlydGhkYXRlIikubmViQ2FsKHttYXhEYXRlOm1heERhdGUuZm9ybWF0KCJ5eXl5LU1NLWRkIiksbWluRGF0ZTptaW5EYXRlLmZvcm1hdCgieXl5eS1NTS1kZCIpLGRlZmF1bHREYXRlOnN0YXJ0RGF0ZS5mb3JtYXQoInl5eXktTU0tZGQiKSxmb3JtYXQ6ImRkIE1NTSB5eXl5IixkZWZhdWx0VmlldzoiZGVjYWRlIn0pOyQoJyNjcmVkaXRTY29yZVBvcHVwQ29udGFpbmVyIGlucHV0W2RhdGEtZ29vZ2xlLXBsYWNlcy1jdXN0b209InRydWUiXScpLmdvb2dsZVBsYWNlcygpO3ZhciBwb3B1cFR5cGU9Im5ldyI7aWYodHlwZW9mIHBvcHVwRGVmYXVsdE9uQWZ0ZXJJbml0aWFsaXplIT0idW5kZWZpbmVkIil7dmFyIHRtcD1wb3B1cERlZmF1bHRPbkFmdGVySW5pdGlhbGl6ZSgibmV3IiwiIitqc19kMmNfZ2V0X3ZhbCgiNmp5cDQ2NjR2Z3dzODB3IikrIiIsZmFsc2UsIiIsIiIranNfZDJjX2dldF92YWwoIjE2ZDd2d3Q2NnBtb3dvMGsiKSsiIiwiY3JlZGl0U2NvcmVQb3B1cENvbnRhaW5lciIsZmFsc2UpO2lmKDAmJnRtcCl7c2VsZi5zZXR0aW5ncy5zaG93b25sb2FkPTEwO30KZWxzZXtzZWxmLnNldHRpbmdzLnNob3dvbmxvYWQ9ZmFsc2U7fQpyZXR1cm4gdG1wO319LCJjb29raWVEdXJhdGlvbiI6NjAsImNvb2tpZU5hbWUiOiJjcmVkaXRTY29yZVNob3duIiwiY29va2llQ3JlYXRlIjoib25PcGVuIiwiZ29vZ2xlVHJhY2tpbmciOnsiaWRTdWZmaXgiOiIiLCJsYWJlbCI6IiIsImxhYmVsc2VjdGlvbiI6IiIsImlzZXhwcmVzcyI6MCwiaXNwcm9tbyI6MCwiaXNob21lcGFnZSI6MCwiaXNtb2JpbGUiOjB9LCJmb3JtIjp7ImVtYWlsaWQiOiJDcmVkaXRTY29yZSIsIm9mZmVydHlwZSI6IkNyZWRpdFNjb3JlIiwibmFtZSI6bnVsbCwic2VuZFRvIjoiIitqc19kMmNfZ2V0X3ZhbCgiMTNkcXRzbmNkODF3azg0NCIpKyIiLCJzZW5kVG9BREYiOiIiK2pzX2QyY19nZXRfdmFsKCI1Y2N5Z2s5MjVtZ3dnMCIpKyIiLCJPS0J1dHRvbkNsYXNzIjoiY3JlZGl0U2NvcmVfYnRuIiwiQ2FuY2VsQnV0dG9uQ2xhc3MiOiJjYW5jZWxCdG4iLCJzaG93RW1haWxDb25maXJtYXRpb24iOnRydWUsImZyb21BQSI6ZmFsc2UsImNvbmZpcm1hdGlvbiI6eyJ0aXRsZSI6IlZvdHJlIGRlbWFuZGUgYSBiaWVuICZlYWN1dGU7dCZlYWN1dGU7IGVudm95JmVhY3V0ZTtlISIsImJvZHkiOiJNZXJjaSEgVW4gY29uc2VpbGxlciBjb21tdW5pcXVlcmEgYXZlYyB2b3VzIHBvdXIgdm91cyBkb25uZXIgbGVzIGQmZWFjdXRlO3RhaWxzIHN1ciB2b3RyZSBwb3RlbnRpZWwgZGUgY3ImZWFjdXRlO2RpdC4ifX0sInN0YXRlIjpbXSwidmVoaWNsZVN0YXRlIjoidXNlZCIsImNsb3NlT25TdWJtaXQiOnRydWUsImZpbGxmbGFnIjpmYWxzZSwibm90cmFuc2Zvcm0iOnRydWUsIm5hbWUiOmZhbHNlLCJhbmltYXRpb24iOiJmYWRlQW5kUG9wIiwiYW5pbWF0aW9uU3BlZWQiOjMwMCwiY2xvc2VPbkJhY2tncm91bmRDbGljayI6ZmFsc2UsImRpc21pc3NNb2RhbENsYXNzIjoiY2xvc2UtcmV2ZWFsLW1vZGFsIiwiY2xvc2VCdXR0b24iOnRydWUsImJ5cGFzc0NvbnNlbnQiOmZhbHNlLCJ0aHJlc2hvbGQiOmZhbHNlLCJ0aHJlc2hvbGRWYWx1ZSI6MCwic2Nyb2xsdXAiOmZhbHNlLCJtYWlucG9wdXAiOmZhbHNlLCJzaG93b25sb2FkIjpmYWxzZSwiY291bnRkb3duIjoxNzc0MTUyMDAwLCJjb25maXJtRm9ybSI6W119KTt9KTt9Y2F0Y2goZXp6MSl7aWYoY29uc29sZSYmY29uc29sZS5sb2cpCmNvbnNvbGUubG9nKGV6ejEpO30KdmFyIGlkZW50X2Q2NmY1ZDk0ODU5NzQyYzZhNTFmOGJhZDljMGRmYWUwO3RyeXttYWlsU2VudEhhbmRsZXI9Z2V0TWFpbFNlbnRIYW5kbGVyKCdfY3JlZGl0U2NvcmVQb3B1cENvbnRhaW5lcicpO31jYXRjaChlenoxKXtpZihjb25zb2xlJiZjb25zb2xlLmxvZykKY29uc29sZS5sb2coZXp6MSk7fQp2YXIgaWRlbnRfOTY0YWNlODk0ZTkxYWUyZWE2NTMzYWM2ZDQ0Njg5Yzc7dHJ5e2pRdWVyeShmdW5jdGlvbigkKXskKCIjY29udGFjdHBvcHVwIikucG9wdXBpemUoeyJvbkFmdGVySW5pdGlhbGl6ZSI6ZnVuY3Rpb24oc2VsZil7Y29udGFjdFBvcHVwLnNldENvbmZpZyh7dHlwZTpzZWxmLnNldHRpbmdzLmZvcm0udHlwZX0pO2lmKHR5cGVvZiBwb3B1cERlZmF1bHRPbkFmdGVySW5pdGlhbGl6ZSE9InVuZGVmaW5lZCIpe3ZhciB0bXA9cG9wdXBEZWZhdWx0T25BZnRlckluaXRpYWxpemUoIm5ldyIsIiIranNfZDJjX2dldF92YWwoIjZqeXA0NjY0dmd3czgwdyIpKyIiLGZhbHNlLCIiLCIiK2pzX2QyY19nZXRfdmFsKCIxNmQ3dnd0NjZwbW93bzBrIikrIiIsImNvbnRhY3Rwb3B1cCIsdHJ1ZSk7aWYoZmFsc2UmJnRtcClzZWxmLnNldHRpbmdzLnNob3dvbmxvYWQ9NTtyZXR1cm4gdG1wO319LCJvbkJlZm9yZVNlbmRNYWlsIjpmdW5jdGlvbihzZWxmKXtjb250YWN0UG9wdXAub25CZWZvcmVTZW5kTWFpbCgpO30sImNvb2tpZUR1cmF0aW9uIjozMCwiY29va2llTmFtZSI6bnVsbCwiY29va2llQ3JlYXRlIjpudWxsLCJnb29nbGVUcmFja2luZyI6eyJpZFN1ZmZpeCI6IiIsImxhYmVsIjoiIiwibGFiZWxzZWN0aW9uIjoiIiwiaXNleHByZXNzIjowLCJpc3Byb21vIjowLCJpc2hvbWVwYWdlIjowLCJpc21vYmlsZSI6MH0sImZvcm0iOnsiZW1haWxpZCI6IkNvbnRhY3RVc1JlcXVlc3QiLCJzZW5kVG8iOm51bGwsInNlbmRUb0FERiI6bnVsbCwic2hvd0VtYWlsQ29uZmlybWF0aW9uIjp0cnVlLCJjb25maXJtYXRpb24iOnsidGl0bGUiOiJWb3RyZSBtZXNzYWdlIGEgYmllbiAmZWFjdXRlO3QmZWFjdXRlOyBlbnZveSZlYWN1dGU7ISIsImJvZHkiOiJNZXJjaSEgVW4gbWVtYnJlIGRlIG5vdHJlICZlYWN1dGU7cXVpcGUgdm91cyBjb250YWN0ZXJhIHNvdXMgcGV1LiJ9LCJ0eXBlIjoibmV3In0sInN0YXRlIjpbXSwidmVoaWNsZVN0YXRlIjoidXNlZCIsImNsb3NlT25TdWJtaXQiOnRydWUsImZpbGxmbGFnIjpmYWxzZSwibm90cmFuc2Zvcm0iOnRydWUsIm5hbWUiOmZhbHNlLCJhbmltYXRpb24iOiJmYWRlQW5kUG9wIiwiYW5pbWF0aW9uU3BlZWQiOjMwMCwiY2xvc2VPbkJhY2tncm91bmRDbGljayI6ZmFsc2UsImRpc21pc3NNb2RhbENsYXNzIjoiY2xvc2UtcmV2ZWFsLW1vZGFsIiwiY2xvc2VCdXR0b24iOnRydWUsImJ5cGFzc0NvbnNlbnQiOmZhbHNlLCJ0aHJlc2hvbGQiOmZhbHNlLCJ0aHJlc2hvbGRWYWx1ZSI6MCwic2Nyb2xsdXAiOmZhbHNlLCJtYWlucG9wdXAiOmZhbHNlLCJjb3VudGRvd24iOjE3NzQxNTIwMDAsImNvbmZpcm1Gb3JtIjpbXX0pO30pO31jYXRjaChlenoxKXtpZihjb25zb2xlJiZjb25zb2xlLmxvZykKY29uc29sZS5sb2coZXp6MSk7fQp2YXIgaWRlbnRfM2Q3ODU0Mjc0MTI1ZWE2OWIwMjQ1NzU2NDZhNjk4ZGM7dHJ5e21haWxTZW50SGFuZGxlcj1nZXRNYWlsU2VudEhhbmRsZXIoJ19jb250YWN0cG9wdXAnKTt9Y2F0Y2goZXp6MSl7aWYoY29uc29sZSYmY29uc29sZS5sb2cpCmNvbnNvbGUubG9nKGV6ejEpO30KdmFyIGlkZW50XzRmNGUxNTllZmFlY2VhZjk5ZDBmMjg1ZjBiNGQwOTg5O3RyeXtqUXVlcnkoZnVuY3Rpb24oJCl7JCgiI2ZpbmFuY2VNdWx0aXN0ZXBQb3B1cENvbnRhaW5lciIpLnBvcHVwaXplKHsib25BZnRlckluaXRpYWxpemUiOmZ1bmN0aW9uKHNlbGYpe3ZhciBtdWx0aXN0ZXA9aW5pdGlhbGl6ZUZpbmFuY2VNdWx0aVN0ZXAoc2VsZi50YXJnZXQpOyQoZG9jdW1lbnQpLm9uKCdjcmVkaXQubXVsdGlzdGVwcG9wdXAuc3RhcnQnLGZ1bmN0aW9uKGUpe211bHRpc3RlcC5zdGFydCgpO30pO30sImNvb2tpZUR1cmF0aW9uIjozMCwiY29va2llTmFtZSI6bnVsbCwiY29va2llQ3JlYXRlIjpudWxsLCJnb29nbGVUcmFja2luZyI6eyJpZFN1ZmZpeCI6IiIsImxhYmVsIjoiIiwibGFiZWxzZWN0aW9uIjoiIiwiaXNleHByZXNzIjowLCJpc3Byb21vIjowLCJpc2hvbWVwYWdlIjowLCJpc21vYmlsZSI6MH0sImZvcm0iOnsiZW1haWxpZCI6IkNyZWRpdE11bHRpc3RlcFJlcXVlc3QiLCJvZmZlcnR5cGUiOiJDcmVkaXRNdWx0aXN0ZXBSZXF1ZXN0IiwibmFtZSI6bnVsbCwic2VuZFRvIjoiIitqc19kMmNfZ2V0X3ZhbCgiMTNkcXRzbmNkODF3azg0NCIpKyIiLCJzZW5kVG9BREYiOiIiK2pzX2QyY19nZXRfdmFsKCI1Y2N5Z2s5MjVtZ3dnMCIpKyIiLCJPS0J1dHRvbkNsYXNzIjoic3VibWl0QnRuIiwiQ2FuY2VsQnV0dG9uQ2xhc3MiOiJjYW5jZWxCdG4iLCJzaG93RW1haWxDb25maXJtYXRpb24iOmZhbHNlLCJmcm9tQUEiOmZhbHNlLCJjb25maXJtYXRpb24iOnsidGl0bGUiOm51bGwsImJvZHkiOm51bGx9fSwic3RhdGUiOltdLCJ2ZWhpY2xlU3RhdGUiOiJ1c2VkIiwiY2xvc2VPblN1Ym1pdCI6dHJ1ZSwiZmlsbGZsYWciOmZhbHNlLCJub3RyYW5zZm9ybSI6dHJ1ZSwibmFtZSI6ZmFsc2UsImFuaW1hdGlvbiI6ImZhZGVBbmRQb3AiLCJhbmltYXRpb25TcGVlZCI6MzAwLCJjbG9zZU9uQmFja2dyb3VuZENsaWNrIjpmYWxzZSwiZGlzbWlzc01vZGFsQ2xhc3MiOiJjbG9zZS1yZXZlYWwtbW9kYWwiLCJjbG9zZUJ1dHRvbiI6dHJ1ZSwiYnlwYXNzQ29uc2VudCI6ZmFsc2UsInRocmVzaG9sZCI6ZmFsc2UsInRocmVzaG9sZFZhbHVlIjowLCJzY3JvbGx1cCI6ZmFsc2UsIm1haW5wb3B1cCI6ZmFsc2UsInNob3dvbmxvYWQiOmZhbHNlLCJjb3VudGRvd24iOjE3NzQxNTIwMDAsImNvbmZpcm1Gb3JtIjpbeyJuYW1lIjoibGFiZWwiLCJ2YWx1ZSI6IiIsImNsYXNzIjoibGFiZWxlbWFpbCJ9LHsibmFtZSI6InNlY3Rpb24iLCJ2YWx1ZSI6IiIsImNsYXNzIjoibGFiZWxzZWN0aW9uIn0seyJuYW1lIjoiYnJhbmQiLCJ2YWx1ZSI6IiIranNfZDJjX2dldF92YWwoIjFlcml2OTAwcGRhODh3dzgiKSsiIiwiY2xhc3MiOiJicmFuZGVtYWlsIn0seyJuYW1lIjoibW9kZWwiLCJ2YWx1ZSI6IiIranNfZDJjX2dldF92YWwoIjEwcGE3djNxZWxkY29zayIpKyIiLCJjbGFzcyI6Im1vZGVsZW1haWwifSx7Im5hbWUiOiJ5ZWFyIiwidmFsdWUiOiIiK2pzX2QyY19nZXRfdmFsKCJyODJ6Zmt4YTJkd3NzMDAiKSsiIiwiY2xhc3MiOiJ5ZWFyZW1haWwifSx7Im5hbWUiOiJnb29nbGVpZCIsInZhbHVlIjoiIn0seyJuYW1lIjoiZ29vZ2xlaWRkMmNtZWRpYSIsInZhbHVlIjoiIn0seyJuYW1lIjoiYmluZ2NvbmlkIiwidmFsdWUiOiIifSx7Im5hbWUiOiJiaW5nYWN0aW9uaWQiLCJ2YWx1ZSI6IiJ9LHsibmFtZSI6ImJpbmdkb21haW5pZCIsInZhbHVlIjoiIn0seyJuYW1lIjoiYWRyb2xsQWR2IiwidmFsdWUiOiIifSx7Im5hbWUiOiJhZHJvbGxQaXgiLCJ2YWx1ZSI6IiJ9LHsibmFtZSI6ImZhY2Vib29rQ29uSWQiLCJ2YWx1ZSI6IiJ9LHsibmFtZSI6ImRvbWFpbiIsInZhbHVlIjoibWF1cmFpc2F1dG8uY29tIn0seyJuYW1lIjoicmVmZXJyZXIiLCJ2YWx1ZSI6IiIranNfZDJjX2dldF92YWwoImkzZ3NheGdzNWprOHdjayIpKyIifSx7Im5hbWUiOiJpc2V4cHJlc3MiLCJ2YWx1ZSI6IjAiLCJjbGFzcyI6ImlzZXhwcmVzcyJ9LHsibmFtZSI6ImlzcHJvbW8iLCJ2YWx1ZSI6IjAifSx7Im5hbWUiOiJpc2hvbWVwYWdlIiwidmFsdWUiOiIwIn0seyJuYW1lIjoidGV4dENhclNlY3Rpb25UeXBlIiwidmFsdWUiOiIiK2pzX2QyY19nZXRfdmFsKCJzbzd5dXFhajRkd2NjOHMiKSsiIn0seyJuYW1lIjoiZnJvbUFBIiwidmFsdWUiOiIifSx7Im5hbWUiOiJsYW5nIiwidmFsdWUiOiJGUkVOQ0gifV19KTt9KTt9Y2F0Y2goZXp6MSl7aWYoY29uc29sZSYmY29uc29sZS5sb2cpCmNvbnNvbGUubG9nKGV6ejEpO30KdmFyIGlkZW50X2NmYTJiZWZkN2VjYTA4M2EzZjg3YTk1YmUxOWY5ZTU0O3RyeXtqUXVlcnkoZnVuY3Rpb24oJCl7JCgiI3BheW1lbnRDYWxjdWxhdG9yUG9wdXBDb250YWluZXIiKS5wb3B1cGl6ZSh7Im9uQmVmb3JlT3BlbiI6ZnVuY3Rpb24oc2VsZil7aWYoc2VsZi5zZXR0aW5ncy5hbHJlYWR5SW5pdCl7c2VsZi5zZXR0aW5ncy5hbHJlYWR5SW5pdD1mYWxzZTtpZihDb29raWVzLmdldCgncG9wdXBGb3JtRmlsbGVkJyk9PSIxIil7JCgiI3BheW1lbnRDYWxjdWxhdG9yQ2FsbFRvQWN0aW9uQ29udGFpbmVyIikuaGlkZSgpO30KcmV0dXJuIHRydWU7fQppZighc2VsZi5zZXR0aW5ncy5zdHlsZWlkKXJldHVybiBmYWxzZTtzZWxmLnNldHRpbmdzLmluaXRpYWxTdHlsZWlkPXNlbGYuc2V0dGluZ3Muc3R5bGVpZDtpZigkKCIuYm5wX3BheW1lbnRfY29udGFpbmVyIikubGVuZ3RoKXtzZWxmLnNldHRpbmdzLnBheW1lbnRPcHRpb25zPXBhcnNlSW50KCQoIiNvcHRpb25QcmljZVRvdGFsIikuaHRtbCgpLnJlcGxhY2UoIiwiLCIiKSk7fQpnYVRyYWNrKCdjLl90cmFja0V2ZW50JywnQ2xpcXVlcyBDYWxjdWxhdHJpY2UnLCdOZXVmJywnT3BlbicsMSk7cGF5bWVudENhbGN1bGF0b3JQb3B1cEluaXQoKTt9LCJvbkNsb3NlIjpmdW5jdGlvbihzZWxmKXtpZighc2VsZi5zZXR0aW5ncy5hbHJlYWR5SW5pdCl7Z2FUcmFjaygnYy5fdHJhY2tFdmVudCcsJ0NsaXF1ZXMgQ2FsY3VsYXRyaWNlJywnTmV1ZicsJ0Nsb3NlJywxKTt9CmlmKCgoJCgnI3RhcmdldFBhZ2UnKS52YWwoKXx8ZmFsc2UpPT0nTkVXQ0FSUyd8fCgkKCcjdGFyZ2V0UGFnZScpLnZhbCgpfHxmYWxzZSk9PSdVU0VEQ0FSUycpJiZ3aW5kb3cucGF5bWVudFNlbGVjdENoYW5nZWQ9PXRydWUpe2xvY2F0aW9uLnJlbG9hZCgpO319LCJvbkFmdGVySW5pdGlhbGl6ZSI6ZnVuY3Rpb24oc2VsZil7cG9wdXBDYWxjdWxhdG9ySW5pdGlhbGl6ZWQoKTt9LCJjb29raWVEdXJhdGlvbiI6MzAsImNvb2tpZU5hbWUiOm51bGwsImNvb2tpZUNyZWF0ZSI6bnVsbCwiZ29vZ2xlVHJhY2tpbmciOnsiaWRTdWZmaXgiOiIiLCJsYWJlbCI6IiIsImxhYmVsc2VjdGlvbiI6IiIsImlzZXhwcmVzcyI6MCwiaXNwcm9tbyI6MCwiaXNob21lcGFnZSI6MCwiaXNtb2JpbGUiOjB9LCJmb3JtIjp7ImVtYWlsaWQiOm51bGwsIm9mZmVydHlwZSI6bnVsbCwibmFtZSI6bnVsbCwic2VuZFRvIjpudWxsLCJzZW5kVG9BREYiOm51bGwsIk9LQnV0dG9uQ2xhc3MiOiJzdWJtaXRCdG4iLCJDYW5jZWxCdXR0b25DbGFzcyI6ImNhbmNlbEJ0biIsInNob3dFbWFpbENvbmZpcm1hdGlvbiI6ZmFsc2UsImZyb21BQSI6ZmFsc2UsImNvbmZpcm1hdGlvbiI6eyJ0aXRsZSI6bnVsbCwiYm9keSI6bnVsbH19LCJzdGF0ZSI6W10sInZlaGljbGVTdGF0ZSI6InVzZWQiLCJjbG9zZU9uU3VibWl0Ijp0cnVlLCJmaWxsZmxhZyI6ZmFsc2UsIm5vdHJhbnNmb3JtIjp0cnVlLCJuYW1lIjpmYWxzZSwiYW5pbWF0aW9uIjoiZmFkZUFuZFBvcCIsImFuaW1hdGlvblNwZWVkIjozMDAsImNsb3NlT25CYWNrZ3JvdW5kQ2xpY2siOmZhbHNlLCJkaXNtaXNzTW9kYWxDbGFzcyI6ImNsb3NlLXJldmVhbC1tb2RhbCIsImNsb3NlQnV0dG9uIjp0cnVlLCJieXBhc3NDb25zZW50IjpmYWxzZSwidGhyZXNob2xkIjpmYWxzZSwidGhyZXNob2xkVmFsdWUiOmZhbHNlLCJzY3JvbGx1cCI6ZmFsc2UsIm1haW5wb3B1cCI6ZmFsc2UsInNob3dvbmxvYWQiOmZhbHNlLCJjb3VudGRvd24iOjE3NzQxNTIwMDAsImNvbmZpcm1Gb3JtIjpbeyJuYW1lIjoibGFiZWwiLCJ2YWx1ZSI6IiIsImNsYXNzIjoibGFiZWxlbWFpbCJ9LHsibmFtZSI6InNlY3Rpb24iLCJ2YWx1ZSI6IiIsImNsYXNzIjoibGFiZWxzZWN0aW9uIn0seyJuYW1lIjoiYnJhbmQiLCJ2YWx1ZSI6IiIranNfZDJjX2dldF92YWwoIjFlcml2OTAwcGRhODh3dzgiKSsiIiwiY2xhc3MiOiJicmFuZGVtYWlsIn0seyJuYW1lIjoibW9kZWwiLCJ2YWx1ZSI6IiIranNfZDJjX2dldF92YWwoIjEwcGE3djNxZWxkY29zayIpKyIiLCJjbGFzcyI6Im1vZGVsZW1haWwifSx7Im5hbWUiOiJ5ZWFyIiwidmFsdWUiOiIiK2pzX2QyY19nZXRfdmFsKCJyODJ6Zmt4YTJkd3NzMDAiKSsiIiwiY2xhc3MiOiJ5ZWFyZW1haWwifSx7Im5hbWUiOiJnb29nbGVpZCIsInZhbHVlIjoiIn0seyJuYW1lIjoiZ29vZ2xlaWRkMmNtZWRpYSIsInZhbHVlIjoiIn0seyJuYW1lIjoiYmluZ2NvbmlkIiwidmFsdWUiOiIifSx7Im5hbWUiOiJiaW5nYWN0aW9uaWQiLCJ2YWx1ZSI6IiJ9LHsibmFtZSI6ImJpbmdkb21haW5pZCIsInZhbHVlIjoiIn0seyJuYW1lIjoiYWRyb2xsQWR2IiwidmFsdWUiOiIifSx7Im5hbWUiOiJhZHJvbGxQaXgiLCJ2YWx1ZSI6IiJ9LHsibmFtZSI6ImZhY2Vib29rQ29uSWQiLCJ2YWx1ZSI6IiJ9LHsibmFtZSI6ImRvbWFpbiIsInZhbHVlIjoibWF1cmFpc2F1dG8uY29tIn0seyJuYW1lIjoicmVmZXJyZXIiLCJ2YWx1ZSI6IiIranNfZDJjX2dldF92YWwoImkzZ3NheGdzNWprOHdjayIpKyIifSx7Im5hbWUiOiJpc2V4cHJlc3MiLCJ2YWx1ZSI6IjAiLCJjbGFzcyI6ImlzZXhwcmVzcyJ9LHsibmFtZSI6ImlzcHJvbW8iLCJ2YWx1ZSI6IjAifSx7Im5hbWUiOiJpc2hvbWVwYWdlIiwidmFsdWUiOiIwIn0seyJuYW1lIjoidGV4dENhclNlY3Rpb25UeXBlIiwidmFsdWUiOiIiK2pzX2QyY19nZXRfdmFsKCJzbzd5dXFhajRkd2NjOHMiKSsiIn0seyJuYW1lIjoiZnJvbUFBIiwidmFsdWUiOiIifSx7Im5hbWUiOiJsYW5nIiwidmFsdWUiOiJGUkVOQ0gifV19KTt9KTt9Y2F0Y2goZXp6MSl7aWYoY29uc29sZSYmY29uc29sZS5sb2cpCmNvbnNvbGUubG9nKGV6ejEpO307Ci8qKiAvbS9qcy9za2VsZXRvbi5jb250cm9sbGVyLmpzICoqLwp2YXIgX19fZDJjX3NrZWxldG9uY29udHJvbGxlcmpzX2Nfb249IjIwMjYtMDEtMTIgMTA6MTQ6NDIiOyd1c2Ugc3RyaWN0Jzt0cnl7alF1ZXJ5KGZ1bmN0aW9uKGMpe2xldCBlO2NvbnNvbGUubG9nKCJHU1BFRUQtQUZURVItSlFVRVJZOiIrKERhdGUubm93KCktKG51bGwhPShlPXdpbmRvdy5nVGVzdFNwZWVkQ29ubik\/ZTowKSkvMUUzKTt3aW5kb3cuZ1Jlc291cmNlTG9hZGVyQW5kSnF1ZXJ5SXNSZWFkeT0hMDtzZXRUaW1lb3V0KCgpPT57dmFyIGI9YygiI2VtYmVkLWNvbnRhaW5lci15b3V0dWJlLWhvbWVwYWdlLWJ5aWQiKTtjb25zb2xlLmxvZygiU0tFTEVUT058I2VtYmVkLWNvbnRhaW5lci15b3V0dWJlLWhvbWVwYWdlLWJ5aWQiKTtpZihiLmxlbmd0aCl7dmFyIGE9Yi5hdHRyKCJkYXRhLWlmcmFtZS1hdHRyaWJ1dGVzIik7InVuZGVmaW5lZCIhPT1hJiZ2b2lkIDAhPT1hJiYoYT1KU09OLnBhcnNlKGF0b2IoYSkpLGMoIjxpZnJhbWUvPiIsYSkuYXBwZW5kVG8oYikpfX0sN0UzKTtzZXRUaW1lb3V0KCgpPT57dmFyIGI9YygiI2VtYmVkLWNvbnRhaW5lci1tYXBzLWhvbWVwYWdlLWJ5aWQiKTsKY29uc29sZS5sb2coIlNLRUxFVE9OfCNlbWJlZC1jb250YWluZXItbWFwcy1ob21lcGFnZS1ieWlkIik7aWYoYi5sZW5ndGgpe3ZhciBhPWIuYXR0cigiZGF0YS1pZnJhbWUtYXR0cmlidXRlcyIpOyJ1bmRlZmluZWQiIT09YSYmdm9pZCAwIT09YSYmKGE9SlNPTi5wYXJzZShhdG9iKGEpKSxpbmplY3RHb29nbGVNYXBzS2V5KGZ1bmN0aW9uKGYpe2Euc3JjPWEuc3JjLnJlcGxhY2UoIl9fS0VZX18iLGYpO2MoIjxpZnJhbWUvPiIsYSkuYXBwZW5kVG8oYil9KSl9fSw3RTMpO3dpbmRvdy5kZWxheWVkQ3NzPWZ1bmN0aW9uKGIpe3ZhciBhPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInN0eWxlIik7YS50eXBlPSJ0ZXh0L2NzcyI7YS5zdHlsZVNoZWV0P2Euc3R5bGVTaGVldC5jc3NUZXh0PWI6YS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShiKSk7Y29uc29sZS5sb2coIlNLRUxFVE9OfERFTEFZRURMT0FEQ1NTfCIrYik7ZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChhKX07CndpbmRvdy5kZWxheWVkQ3NzKCIuaGlkZU9uUHJlTG9hZHt2aXNpYmlsaXR5OnZpc2libGUgIWltcG9ydGFudDt9Iik7c2V0VGltZW91dCgoKT0+e2NvbnNvbGUubG9nKCJTS0VMRVRPTnxzZXR0aW5nIG1lbnUgbXV0YXRpb24gb2JzZXJ2ZXIiKTt0cnl7bnVsbCE9PWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5za2VsZXRvbi5za2VsZXRvbi1kZXNrdG9wLnNrZWxldG9uLWNvbmQtMiIpJiYobmV3IE11dGF0aW9uT2JzZXJ2ZXIoKGEsZik9Pntmb3IoY29uc3QgZCBvZiBhKSJhdHRyaWJ1dGVzIj09PWQudHlwZSYmImNsYXNzIj09PWQuYXR0cmlidXRlTmFtZSYmZC50YXJnZXQuY2xhc3NMaXN0LmNvbnRhaW5zKCJ1cF9tZW51IikmJihhPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5za2VsZXRvbi5za2VsZXRvbi1kZXNrdG9wLnNrZWxldG9uLWNvbmQtMiIpLGQudGFyZ2V0LmNsYXNzTGlzdC5jb250YWlucygiZml4ZWQiKT9hLmNsYXNzTGlzdC5jb250YWlucygiZml4ZWQiKXx8YS5jbGFzc0xpc3QuYWRkKCJmaXhlZCIpOgphLmNsYXNzTGlzdC5jb250YWlucygiZml4ZWQiKSYmYS5jbGFzc0xpc3QucmVtb3ZlKCJmaXhlZCIpKX0pKS5vYnNlcnZlKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5za2VsZXRvbi5za2VsZXRvbi1kZXNrdG9wLnNrZWxldG9uLWNvbmQtMiA+IC51cF9tZW51Iikse2F0dHJpYnV0ZXM6ITAsY2hpbGRMaXN0OiEwLHN1YnRyZWU6ITB9KX1jYXRjaChhKXtjb25zb2xlLmVycm9yKCJTS0VMRVRPTnwuc2tlbGV0b24uc2tlbGV0b24tZGVza3RvcC5za2VsZXRvbi1jb25kLTIiLGEpfWNvbnNvbGUubG9nKCJTS0VMRVRPTnxpcy1sb2FkZWQtbm93Iik7Y29uc3QgYj1jKCIuc2tlbGV0b24iKTtiLmFkZENsYXNzKCJpcy1sb2FkZWQtbm93Iik7c2V0VGltZW91dCgoKT0+e2NvbnNvbGUubG9nKCJTS0VMRVRPTnxyZW1vdmluZyBza2VsZXRvbnMgZmlyc3QgaW1nIGJhY2tncm91bmQiKTtiLmZpbmQoImltZy5pcy1za2VsZXRvbi1iZy1pbWciKS5yZW1vdmUoKX0sMzx3aW5kb3cuZ1NwZWVkQ29ubj8KMUU0OjZFMyl9LDIwMCl9KX1jYXRjaChjKXt9Ow==","menu_new":"","html":"Cgk8c3R5bGU+CgkJaHRtbCB7Zm9udC1zaXplOjEwMCU7fQoJCW1haW4gKiB7bWFyZ2luOmluaXRpYWw7fQoJCWZvb3RlciB7Y2xlYXI6IGJvdGg7fQoJPC9zdHlsZT4KCgk8ZGl2IGlkPSJkMmNfYm9keUNvbnRlbnQiIGNsYXNzPSJkMmMtZW1iZWRkZWQtY29udGVudC1tb2JpbGUiPgoKCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iYWN0aXZlc2l0ZWxhbmd1YWdlIiB2YWx1ZT0iRlJFTkNIIi8+CgoJCTxpbnB1dAoJCQl0eXBlPSJoaWRkZW4iCgkJCWlkPSJkMmNEYXRhU3RvcmUiCgkJCWRhdGEtYmFzZXVybD0iaHR0cHM6Ly9tYXVyYWlzYXV0by5jb20iCgkJCWRhdGEtYm9keWNsYXNzPSIgaGVhZGluZ0NhcHNPbiBGUkVOQ0ggTmV3U3JwMiBOZXdTcnAyTW9iaWxlIgoJCQlkYXRhLWlzbW9iaWxlPSIxIgoJCT4KCgkJPHNjcmlwdCB0eXBlPSJhcHBsaWNhdGlvbi9sZCtqc29uIj4KICAgIHsiQGNvbnRleHQiOiJodHRwczpcL1wvc2NoZW1hLm9yZyIsIkB0eXBlIjoiV2ViU2l0ZSIsIm5hbWUiOiJNYXVyYWlzIEF1dG9tb2JpbGVzIiwidXJsIjoiaHR0cHM6XC9cL3d3dy5tYXVyYWlzYXV0by5jb21cLyIsInBvdGVudGlhbEFjdGlvbiI6eyJAdHlwZSI6IlNlYXJjaEFjdGlvbiIsInRhcmdldCI6Imh0dHBzOlwvXC93d3cubWF1cmFpc2F1dG8uY29tXC9vY2Nhc2lvblwvcmVjaGVyY2hlLmh0bWw\/cT17c2VhcmNoX3Rlcm1fc3RyaW5nfSIsInF1ZXJ5LWlucHV0IjoicmVxdWlyZWQgbmFtZT1zZWFyY2hfdGVybV9zdHJpbmcifX0KPC9zY3JpcHQ+PHNjcmlwdCB0eXBlPSJhcHBsaWNhdGlvbi9sZCtqc29uIj4KICAgIHsiQGNvbnRleHQiOiJodHRwczpcL1wvc2NoZW1hLm9yZyIsIkB0eXBlIjoiQXV0b21vdGl2ZUJ1c2luZXNzIiwidXJsIjoiaHR0cHM6XC9cL3d3dy5tYXVyYWlzYXV0by5jb20iLCJuYW1lIjoiTWF1cmFpcyBBdXRvbW9iaWxlcyIsImltYWdlIjoiaHR0cHM6XC9cL3d3dy5tYXVyYWlzYXV0by5jb21cL2ltYWdlc1wvTG9nb01vYmlsZVwvbWF1cmFpcy1hdXRvLWxvZ28ucG5nIiwibG9nbyI6Imh0dHBzOlwvXC93d3cubWF1cmFpc2F1dG8uY29tXC9pbWFnZXNcL0xvZ29Nb2JpbGVcL21hdXJhaXMtYXV0by1sb2dvLnBuZyIsInNhbWVBcyI6WyJodHRwczpcL1wvd3d3LmZhY2Vib29rLmNvbVwvbWF1cmFpc2F1dG9cLyJdLCJnZW8iOnsiQHR5cGUiOiJHZW9Db29yZGluYXRlcyIsImxhdGl0dWRlIjoiNDUuMTMxNjgwMDAwMCIsImxvbmdpdHVkZSI6Ii03MS44MTMwOTAwMDAwIn0sImFkZHJlc3MiOnsiQHR5cGUiOiJQb3N0YWxBZGRyZXNzIiwic3RyZWV0QWRkcmVzcyI6IjM5NiBSdWUgTWFpbiBPdWVzdCIsImFkZHJlc3NMb2NhbGl0eSI6IkNvYXRpY29vayIsImFkZHJlc3NSZWdpb24iOiJRdWViZWMiLCJwb3N0YWxDb2RlIjoiSjFBIDFQNyIsImFkZHJlc3NDb3VudHJ5IjoiQ0EifSwidGVsZXBob25lIjoiODE5LTg0OS0yNzY3IiwicHJpY2VSYW5nZSI6IjM1MjQ0JC04OTI4MCQiLCJvcGVuaW5nSG91cnNTcGVjaWZpY2F0aW9uIjpbeyJAdHlwZSI6Ik9wZW5pbmdIb3Vyc1NwZWNpZmljYXRpb24iLCJkYXlPZldlZWsiOiJNb25kYXkiLCJvcGVucyI6IjA4OjAwIiwiY2xvc2VzIjoiMTg6MDAifSx7IkB0eXBlIjoiT3BlbmluZ0hvdXJzU3BlY2lmaWNhdGlvbiIsImRheU9mV2VlayI6IlR1ZXNkYXkiLCJvcGVucyI6IjA4OjAwIiwiY2xvc2VzIjoiMTg6MDAifSx7IkB0eXBlIjoiT3BlbmluZ0hvdXJzU3BlY2lmaWNhdGlvbiIsImRheU9mV2VlayI6IldlZG5lc2RheSIsIm9wZW5zIjoiMDg6MDAiLCJjbG9zZXMiOiIxODowMCJ9LHsiQHR5cGUiOiJPcGVuaW5nSG91cnNTcGVjaWZpY2F0aW9uIiwiZGF5T2ZXZWVrIjoiVGh1cnNkYXkiLCJvcGVucyI6IjA4OjAwIiwiY2xvc2VzIjoiMTg6MDAifSx7IkB0eXBlIjoiT3BlbmluZ0hvdXJzU3BlY2lmaWNhdGlvbiIsImRheU9mV2VlayI6IkZyaWRheSIsIm9wZW5zIjoiMDg6MDAiLCJjbG9zZXMiOiIxNzozMCJ9XX0KPC9zY3JpcHQ+PGxpbmsgcmVsPSJpY29uIiBocmVmPSJodHRwczovL21hdXJhaXNhdXRvLmNvbS9pbWFnZXMvRmF2aWNvbi9mYXZpY29uX0ZvcmRfMi5qcGVnIj48bGluayByZWw9InByZWxvYWQiIGFzPSJpbWFnZSIgaHJlZj0iaHR0cHM6Ly9tYXVyYWlzYXV0by5jb20vaW1hZ2VzL0xvZ29Nb2JpbGUvbWF1cmFpcy1hdXRvLWxvZ28ud2VicCI+PGxpbmsgcmVsPSJwcmVsb2FkIiBocmVmPSIvL2ZvbnRzLmQyY21lZGlhLmNhL3dlYmZvbnRzL2Rlc2t0b3AtYXdlc29tZS93ZWJmb250cy9mYS1saWdodC0zMDAud29mZjIiIGFzPSJmb250IiB0eXBlPSJmb250L1dPRkYyIiBjcm9zc29yaWdpbj48bGluayByZWw9InByZWxvYWQiIGhyZWY9Ii8vZm9udHMuZDJjbWVkaWEuY2Evd2ViZm9udHMvZGVza3RvcC1hd2Vzb21lL3dlYmZvbnRzL2ZhLXNvbGlkLTkwMC53b2ZmMiIgYXM9ImZvbnQiIHR5cGU9ImZvbnQvV09GRjIiIGNyb3Nzb3JpZ2luPjxsaW5rIHJlbD0icHJlbG9hZCIgaHJlZj0iLy9mb250cy5kMmNtZWRpYS5jYS93ZWJmb250cy9kZXNrdG9wLWF3ZXNvbWUvd2ViZm9udHMvZmEtcmVndWxhci00MDAud29mZjIiIGFzPSJmb250IiB0eXBlPSJmb250L1dPRkYyIiBjcm9zc29yaWdpbj48bGluayByZWw9InByZWxvYWQiIGhyZWY9Ii8vZm9udHMuZDJjbWVkaWEuY2EvRm9yZEYxLVJlZ3VsYXIud29mZjIiIGFzPSJmb250IiB0eXBlPSJmb250L1dPRkYyIiBjcm9zc29yaWdpbj48bGluayByZWw9InByZWxvYWQiIGhyZWY9Ii8vZm9udHMuZDJjbWVkaWEuY2EvRm9yZEYxLUxpZ2h0LndvZmYyIiBhcz0iZm9udCIgdHlwZT0iZm9udC9XT0ZGMiIgY3Jvc3NvcmlnaW4+PGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL21hdXJhaXNhdXRvLmNvbS9jc3Nfci9yZXNvdXJjZS5sb2FkZXIuZnIuY3NzP3Y9MyZhbXA7Y3NzcnBsPSZhbXA7d3N3aWR0aD0wJmFtcDtkZXZpY2U9bW9iaWxlJmFtcDt1YT1RME5DYjNRdk1pNHdJQ2hvZEhSd2N6b3ZMMk52YlcxdmJtTnlZWGRzTG05eVp5OW1ZWEV2S1E9PSI+PGxpbmsgcmVsPSJwcmVjb25uZWN0IiBocmVmPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYSIgY3Jvc3NvcmlnaW4+PGxpbmsgcmVsPSJwcmVjb25uZWN0IiBocmVmPSJodHRwczovL2ltYWdlc2Nkbi5kMmNtZWRpYS5jYSIgY3Jvc3NvcmlnaW4+PGxpbmsgcmVsPSJwcmVjb25uZWN0IiBocmVmPSJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhIiBjcm9zc29yaWdpbj48bGluayByZWw9ImNhbm9uaWNhbCIgaHJlZj0iaHR0cHM6Ly93d3cubWF1cmFpc2F1dG8uY29tL2VtYmVkZXIvcHJvY2Vzcy9mci9tIiBkYXRhLWNhbm9uaWNhbC1oZWFkZXItd2lkZ2V0PSIxIj48c2NyaXB0IHNyYz0iaHR0cHM6Ly9jZG4uY29va2llbGF3Lm9yZy9zY3JpcHR0ZW1wbGF0ZXMvb3RTREtTdHViLmpzIiBkYXRhLWRvY3VtZW50LWxhbmd1YWdlPSJ0cnVlIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9IlVURi04IiBkYXRhLWRvbWFpbi1zY3JpcHQ9IjM4ZTM3NGYwLTMyMzYtNDA4Ni04Mzk4LTUyYWM2ZWE4NmI0YSI+PC9zY3JpcHQ+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly9jZG4uY29va2llbGF3Lm9yZy9jb25zZW50LzM4ZTM3NGYwLTMyMzYtNDA4Ni04Mzk4LTUyYWM2ZWE4NmI0YS9PdEF1dG9CbG9jay5qcyI+PC9zY3JpcHQ+PGRpdiBpZD0iZGlnaXRhbF9kYXRhX2luZm8iIGRhdGEtYW5hbHl0aWNzPSJmb3JkX2Fkb2JlX2FuYWx5dGljcyI+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InZlaGljbGVDYXRlZ29yeSIgdmFsdWU9IiI+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Im1ha2UiIHZhbHVlPSIiPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJtb2RlbCIgdmFsdWU9IiI+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InllYXIiIHZhbHVlPSIiPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ2aW4iIHZhbHVlPSIiPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJpbnZlbnRvcnlGbGFnIiB2YWx1ZT0iIj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0idmVoaWNsZVRyaW0iIHZhbHVlPSIiPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ2ZWhpY2xlVHJhbnNtaXNzaW9uIiB2YWx1ZT0iIj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0idmVoaWNsZVByaWNlIiB2YWx1ZT0iIj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0idmVoaWNsZUNvbG9yIiB2YWx1ZT0iIj4KCQk8L2Rpdj4KCQk8IS0tIE9POjpiZjAyYTdmMDM0ZGY5ZjYxYzQ2Y2JmYjMwMTRiNzMzNyAtLT48IS0tIG9lbUNlcnRpZmljYXRpb24gIkZvcmQgRGlyZWN0IiAtLT4JCTxkaXYgaWQ9ImFzY19kaWdpdGFsX2RhdGFfaW5mbyIgZGF0YS1hbmFseXRpY3M9Imdvb2dsZV9hbmFseXRpY3NfNCI+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InZlaGljbGVDYXRlZ29yeSIgdmFsdWU9IiI+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Im1ha2UiIHZhbHVlPSIiPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJtb2RlbCIgdmFsdWU9IiI+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InllYXIiIHZhbHVlPSIiPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ2aW4iIHZhbHVlPSIiPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ0cmltIiB2YWx1ZT0iIj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0icHJpY2UiIHZhbHVlPSIiPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJleHRjb2xvciIgdmFsdWU9IiI+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImRhdGVfbGlzdGluZyIgdmFsdWU9IiI+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImQyYXNjX2lzQ2VydGlmaWVkIiB2YWx1ZT0iIj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0idmVoaWNsZVN0YXR1cyIgdmFsdWU9IiI+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImRlYWxlckNvZGUiIHZhbHVlPSJCMjIzNSI+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InBhZ2VUeXBlIiB2YWx1ZT0iU2hvd3Jvb20iPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJkZWFsZXJfbmFtZSIgdmFsdWU9Ik1hdXJhaXMgQXV0b21vYmlsZXMiPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJkZWFsZXJfYWRkcmVzcyIgdmFsdWU9IjM5NiBSdWUgTWFpbiBPdWVzdCwgQ29hdGljb29rLCBFc3RyaWUiPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJkZWFsZXJfcG9zdGFsIiB2YWx1ZT0iSjFBIDFQNyI+CgkJPC9kaXY+CgkJPCEtLSBPTzo6YmVmODIxMTJiODU2Y2NkYWJhZTMyZWRmZGVmODc4NjcgLS0+CjwhLS1FTkRfUkVNT1ZBQkxFX0NPREVfQkxPQ0tfQ09NTUVOVF8wMDAyLS0+Cgo8IS0tRU5EX1JFTU9WQUJMRV9DT0RFX0JMT0NLX0NPTU1FTlRfMDAwMS0tPgo8IS0tIEdsb2JhbCBzaXRlIHRhZyAoZ3RhZy5qcykgLSBHb29nbGUgQW5hbHl0aWNzIC0tPgoKPCEtLVNUQVJUX1JFTU9WQUJMRV9DT0RFX0JMT0NLX0NPTU1FTlRfMDAwMS0tPgo8c2NyaXB0IGFzeW5jIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xldGFnbWFuYWdlci5jb20vZ3RhZy9qcz9pZD1HLVdFQ0wxRlZMWTQiIHR5cGU9InRleHQvcGxhaW4iIGNsYXNzPSJvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIj48L3NjcmlwdD4KPCEtLUVORF9SRU1PVkFCTEVfQ09ERV9CTE9DS19DT01NRU5UXzAwMDEtLT4KCjwhLS0gIyNWTUpTMiMjIC0tPjwhLS0gR08gSUQgLS0+CjwhLS0gQklORyBTQ1JJUFQgLS0+CjwhLS0gT086OmY3M2ZhNmFiYmZiNGJhYjNmNDlkYWFmYjM4OTFlMjdmIC0tPgogICAgIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyIgZGF0YS1ybD0iMSI+Ci8qKiAvY3NzL3Jvb3QuY3NzICoqLwo6cm9vdHsgLS1yYXRpbzoxLjE1OyAtLXMwOjA7IC0tcy05OmNhbGModmFyKC0tcy04KSAvIHZhcigtLXJhdGlvKSk7IC0tcy04OmNhbGModmFyKC0tcy03KSAvIHZhcigtLXJhdGlvKSk7IC0tcy03OmNhbGModmFyKC0tcy02KSAvIHZhcigtLXJhdGlvKSk7IC0tcy02OmNhbGModmFyKC0tcy01KSAvIHZhcigtLXJhdGlvKSk7IC0tcy01OmNhbGModmFyKC0tcy00KSAvIHZhcigtLXJhdGlvKSk7IC0tcy00OmNhbGModmFyKC0tcy0zKSAvIHZhcigtLXJhdGlvKSk7IC0tcy0zOmNhbGModmFyKC0tcy0yKSAvIHZhcigtLXJhdGlvKSk7IC0tcy0yOmNhbGModmFyKC0tcy0xKSAvIHZhcigtLXJhdGlvKSk7IC0tcy0xOmNhbGModmFyKC0tcykgLyB2YXIoLS1yYXRpbykpOyAtLXM6MC41cmVtOyAtLXMxOmNhbGModmFyKC0tcykgKiB2YXIoLS1yYXRpbykpOyAtLXMyOmNhbGModmFyKC0tczEpICogdmFyKC0tcmF0aW8pKTsgLS1zMzpjYWxjKHZhcigtLXMyKSAqIHZhcigtLXJhdGlvKSk7IC0tczQ6Y2FsYyh2YXIoLS1zMykgKiB2YXIoLS1yYXRpbykpOyAtLXM1OmNhbGModmFyKC0tczQpICogdmFyKC0tcmF0aW8pKTsgLS1zNjpjYWxjKHZhcigtLXM1KSAqIHZhcigtLXJhdGlvKSk7IC0tczc6Y2FsYyh2YXIoLS1zNikgKiB2YXIoLS1yYXRpbykpOyAtLXM4OmNhbGModmFyKC0tczcpICogdmFyKC0tcmF0aW8pKTsgLS1zOTpjYWxjKHZhcigtLXM4KSAqIHZhcigtLXJhdGlvKSk7IC0tZnMtYmFzZTowLjg3NXJlbTsgLS1mczp2YXIoLS1mcy1iYXNlKTsgLS1mcy05OmNhbGModmFyKC0tZnMtOCkgLyB2YXIoLS1yYXRpbykpOyAtLWZzLTggOmNhbGModmFyKC0tZnMtNykgLyB2YXIoLS1yYXRpbykpOyAtLWZzLTcgOmNhbGModmFyKC0tZnMtNikgLyB2YXIoLS1yYXRpbykpOyAtLWZzLTYgOmNhbGModmFyKC0tZnMtNSkgLyB2YXIoLS1yYXRpbykpOyAtLWZzLTUgOmNhbGModmFyKC0tZnMtNCkgLyB2YXIoLS1yYXRpbykpOyAtLWZzLTQgOmNhbGModmFyKC0tZnMtMykgLyB2YXIoLS1yYXRpbykpOyAtLWZzLTMgOmNhbGModmFyKC0tZnMtMikgLyB2YXIoLS1yYXRpbykpOyAtLWZzLTIgOmNhbGModmFyKC0tZnMtMSkgLyB2YXIoLS1yYXRpbykpOyAtLWZzLTEgOmNhbGModmFyKC0tZnMwKSAvIHZhcigtLXJhdGlvKSk7IC0tZnMwIDp2YXIoLS1mcy1iYXNlLCAwLjg3NXJlbSk7IC0tZnMxIDpjYWxjKHZhcigtLWZzMCkgKiB2YXIoLS1yYXRpbykpOyAtLWZzMiA6Y2FsYyh2YXIoLS1mczEpICogdmFyKC0tcmF0aW8pKTsgLS1mczMgOmNhbGModmFyKC0tZnMyKSAqIHZhcigtLXJhdGlvKSk7IC0tZnM0IDpjYWxjKHZhcigtLWZzMykgKiB2YXIoLS1yYXRpbykpOyAtLWZzNSA6Y2FsYyh2YXIoLS1mczQpICogdmFyKC0tcmF0aW8pKTsgLS1mczYgOmNhbGModmFyKC0tZnM1KSAqIHZhcigtLXJhdGlvKSk7IC0tZnM3IDpjYWxjKHZhcigtLWZzNikgKiB2YXIoLS1yYXRpbykpOyAtLWZzOCA6Y2FsYyh2YXIoLS1mczcpICogdmFyKC0tcmF0aW8pKTsgLS1mczkgOmNhbGModmFyKC0tZnM4KSAqIHZhcigtLXJhdGlvKSk7IC0tZGVmYXVsdC1ibGFjazojMDAwMDAwOyAtLXRhYi1jb2xvci1zcGVjaWFsY2FzZTojZjNmM2YzOyAtLXRhYi1jb2xvcjojZjNmM2YzOyAtLXRhYi10ZXh0LWNvbG9yOiMxMDJiNGU7IC0tdGFiLWNvbG9yLW1vYjojMTAyYjRlOyAtLXRhYi10ZXh0LWNvbG9yLW1vYjojZmZmZmZmOyAtLXRhYi1jb2xvci1tb2ItZXg6I2YzZjNmMzsgLS10YWItdGV4dC1jb2xvci1tb2ItZXg6IzEwMmI0ZTsgLS1tZW51LWNvbG9yLWJvcmRlcjojMTAyYjRlOyAtLW1lbnUtY29sb3ItbW9iOiNmZmZmZmY7IC0tbWVudS10ZXh0LWNvbG9yLW1vYjojMTAyYjRlOyAtLW1lbnUtY29sb3ItbW9iLWV4OiNmM2YzZjM7IC0tbWVudS10ZXh0LWNvbG9yLW1vYi1leDojMTAyYjRlOyAtLXByb21vLWNvbG9yOiMwMjc2YjM7IC0tcHJvbW8tdGV4dC1jb2xvcjojZmZmZmZmOyAtLW5ld3NycC1tb2RlbC1jb2xvcjojMDAwMDAwOyAtLWZvb3Rlci1saW5rLXRpdGxlLWNvbDojMDAwMDAwOyAtLWZvb3Rlci1pdGVtcy1saW5rLWNvbG9yOiM2NjY2NjY7IC0tZm9vdGVyLWNvbmRpdGlvbnMtY29sb3I6IzY2NjY2NjsgLS1mb290ZXItYmctY29sb3I6I2YzZjNmMzsgLS1nZW5lcmFsLWJnLWNvbG9yOiNmZmZmZmY7IC0tdG9wLXByb21vLWJ0bi10eHQ6I2ZmZmZmZjsgLS10b3AtcHJvbW8tYnRuLWJnOiMwMjc2YjM7IC0tcHJvbW8tYnRuLWNvbG9yOiMwMjc2YjM7IC0tcHJvbW8tYnRuLXRleHQtY29sb3I6I2ZmZmZmZjsgLS1wcm9tby1idG4taG92ZXItYmctY29sb3I6I2RlMDAwMDsgLS1wcm9tby1idG4taG92ZXItdGV4dC1jb2xvcjojZmZmZmZmOyAtLXByb21vLWJ0bi1ib3JkZXItcmFkaXVzOjNweDsgLS1ob21lLWJnLWNvbG9yOiNmZmZmZmY7IC0tYnVzaW5lc3MtZGVzYy10eHQtY29sb3I6IzAwMDAwMDsgLS1idXNpbmVzcy1kZXNjLWJnLWNvbG9yOiNmZmZmZmY7IC0tYnVzaW5lc3MtZGVzYy10eHQtY29sb3JfbW9iOiMwMDAwMDA7IC0tYnVzaW5lc3MtZGVzYy1iZy1jb2xvcl9tb2I6I2YzZjNmMzsgLS11c2VkLXNsaWRlci1iZzojZmZmZmZmOyAtLXVzZWQtc2xpZGVyLXR4dDojMDAwMDAwOyAtLXVzZWQtc2xpZGVyLXByaWNlOiNkZTAwMDA7IC0tbmV3LXNsaWRlci1iZzo7IC0tbmV3LXZkcC1iZXN0cHJpY2UtYnRuLWJnLWNvbG9yOiMwMjc2YjM7IC0tbmV3LXZkcC1iZXN0cHJpY2UtYnRuLXRleHQtY29sb3I6I2ZmZmZmZjsgLS1kZWFsZXItbmFtZS1jb2xvcjojMDAwMDAwOyAtLW5ld3MtYmctY29sb3I6I2ZmZmZmZjsgLS1uZXdzLXRleHQtY29sb3I6IzAwMDAwMDsgLS1leGl0LXBvcHVwLWJnY29sOjsgLS11c2VkLW9mZmVyLWJ0bi10ZXh0LWNvbG9yOiNmZmZmZmY7IC0tdXNlZC1vZmZlci1idG4tYmctY29sb3I6I2NjMDAwMDsgLS1maW5hbmNlLWJ0bi10ZXh0LWNvbG9yOiNGRkZGRkY7IC0tZmluYW5jZS1idG4tYmctY29sb3I6IzAyNzZiMzsgLS1maW5hbmNlLWJ0bi10ZXh0LWNvbG9yLW5ld2ludjo7IC0tZmluYW5jZS1idG4tYmctY29sb3ItbmV3aW52OiMwMjc2YjM7IC0tbWVudS1ob3Zlci10ZXh0LWNvbG9yOiNmZmZmZmY7IC0tbWVudS1ob3Zlci1iZy1jb2xvcjojMTAyYjRlOyAtLW1lbnUtYmctY29sb3I6cmdiKDI0MywyNDMsMjQzKTsgLS1tYWluLW1lbnUtYmctY29sb3I6cmdiKDI0MywyNDMsMjQzKTsgLS1kZWFsZXItYWRkcmVzcy1jb2xvcjojMDAwMDAwOyAtLWRlYWxlci1hZGRyZXNzLWZvbnQtc2l6ZToxNDsgLS13aGl0ZTojZmZmOyAtLWxpZ2h0OiNmNmY2ZjY7IC0tbGlnaHQtZ3JheTojZWZlZmVmOyAtLW1pZC1ncmF5OiNkZGQ7IC0tZ3JheTojOTk5OyAtLWNudHItZ3JheTojNzY3Njc2OyAtLWRhcmstZ3JheTojNjY2OyAtLWJsYWNrLWdyYXk6IzMzMzsgLS1ibGFjazojMDAwOyAtLWJvcmRlci10aGluOjFweDsgLS1ib3JkZXItdGhpY2s6MnB4OyAtLXR4dC11cHBlcjp1cHBlcmNhc2U7IC0tZm9udC1tZW51OkZvcmRGMTsgLS1mb250LW1lbnUtbW9iOkZvcmRGMTsgLS1mb250LW1lbnUtd2VpZ2h0OjQwMDsgLS1mb250LWgxOkZvcmRGMTsgLS1mb250LWgxLW1vYjpGb3JkRjE7IC0tZm9udC1oMS13ZWlnaHQ6NDAwOyAtLWZvbnQtaDI6Rm9yZEYxOyAtLWZvbnQtaDItbW9iOkZvcmRGMTsgLS1mb250LWgyLXdlaWdodDo0MDA7IC0tZm9udC10ZXh0OkZvcmRGMTsgLS1mb250LXRleHQtbW9iOkZvcmRGMTsgLS1mb250LXRleHQtd2VpZ2h0OjQwMDsgLS1mb250LWJ1dHRvbnM6Rm9yZEYxOyAtLWZvbnQtYnV0dG9ucy1tb2I6Rm9yZEYxOyAtLWZvbnQtYnV0dG9ucy13ZWlnaHQ6NDAwOyAtLWNvcm5lci1yaWJib24tYmctY29sb3I6I2RlMDAwMDsgLS1jb3JuZXItcmliYm9uLXRleHQtY29sb3I6I2ZmZmZmZjsgLS1ob21lcGFnZS1tZW51LWl0ZW0tY29sb3I6I2ZmZmZmZjsgLS1ob21lcGFnZS1oZWFkZXItaXRlbS1jb2xvcjojZmZmZmZmOyAtLWhvbWVwYWdlLWJhbm5lci1zZWFyY2gtYmFyLXZpZGVvLW9wYWNpdHk6MzA7IC0taG9tZXBhZ2Utc29jaWFsLWJnLWNvbG9yOiNmZmZmZmY7IC0taG9tZXBhZ2Utc29jaWFsLXRleHQtY29sb3I6IzAwMDAwMDsgLS1ob21lcGFnZS1zb2NpYWwtbG9nby1jb2xvcjojMTg3N0YyOyAtLXByb21vdGlvbi1iYWNrZ3JvdW5kLWNvbG9yOiNmOWY5Zjk7IC0tcHJvbW90aW9uLXRleHQtY29sb3I6IzAwMDAwMDsgLS11bmRlcmJhbm5lcl9zZWFyY2hfYmFyX2JnOjsgLS11bmRlcmJhbm5lcl9zZWFyY2hfYmFyX2NvbG9yOjsgLS11bmRlcmJhbm5lcl9zZWFyY2hfYmFyX2J0bl9iZzo7IC0tdW5kZXJiYW5uZXJfc2VhcmNoX2Jhcl9idG5fY29sb3I6OyAtLW5ld3ZkcC1iZXN0cHJpY2UtdGV4dC1jb2xvci1wcmljZTojZGUwMDAwOyAtLWFkbWluLXNvY2lhbC1jdXN0b20tY29sb3ItcGlja2VyLXRleHQ6IzAwMDAwMDsgLS1hZG1pbi1nZW5lcmFsLWhlYWRlci1iZy1jb2xvcjojZmZmZmZmOyAtLWFkbWluLWdlbmVyYWwtdGV4dC11cy1kZWFsZXItbGluZS10ZXh0LWNvbG9yOiNmZmZmZmY7IC0tYWRtaW4tZ2VuZXJhbC10ZXh0LXVzLWRlYWxlci1saW5lLWJnLWNvbG9yOiNjYzAwMDA7IC0tdHJhZGVpbmJhci1idG4tYmc6IzAwMDAwMDsgLS10cmFkZWluYmFyLWJ0bi1jb2xvcjojZmZmZmZmOyAtLWRlZmF1bHQtYmxhY2stdGV4dDojMDAwMDAwOyAtLXByb21vLWJ0bi1iZy1jb2xvcjojMDI3NmIzOyAtLXRyYWRlaW5iYXItYmc6I2YzZjNmMzsgLS10cmFkZWluYmFyLWNvbG9yOiMwMDAwMDA7IC0tbGFuZ3VhZ2UtYnRuLWFjdGl2ZS1iZy1jb2xvcjojMDAwMDAwOyAtLWhlYWRlci1zZXJ2aWNlLWFwcG9pbnRtZW50LXRleHQtY29sb3ItYmc6IzAwMDAwMDsgLS1oZWFkZXItc2VydmljZS1hcHBvaW50bWVudC10ZXh0LWNvbG9yOiNmZmZmZmY7IC0tYWRtaW4tZ2VuZXJhbC1hbGVydC1iYXItdGV4dC1jb2xvcjojZmZmZmZmOyAtLXRvcC1wcm9tby1idG4tdHh0LWNvbG9yOnJnYigxNiw0Myw3OCk7IC0tdG9wLXByb21vLWJ0bi1iZy1jb2xvcjpyZ2IoMjQzLDI0MywyNDMpOyAtLW5ldy12ZWhpY2xlLWNhcm91c2VsLXR4dC1jb2xvcjo7IC0tZGlnaXRhbC1yZXRhaWxpbmctZHJhd2VyLXdpZHRoOiU7IH0gKiB7IGJvcmRlci1jb2xvcjppbmhlcml0OyBib3JkZXItc3R5bGU6c29saWQ7IGJvcmRlci13aWR0aDowOyBmb250LWZhbWlseTppbmhlcml0OyBsaW5lLWhlaWdodDoxLjJlbTsgfSBvbCwgdWwsIG1lbnUgeyBsaXN0LXN0eWxlOm5vbmU7IG1hcmdpbjowOyBwYWRkaW5nOjA7IH0gYSB7IHRleHQtZGVjb3JhdGlvbjpub25lOyBjb2xvcjppbmhlcml0OyB9IGgxLGgyLGgzLGg0LGg1LGg2LCBwIHsgbWFyZ2luOjA7IH0gaDEsaDIsaDMsaDQsaDUsaDZ7IGZvbnQtc2l6ZTppbmhlcml0OyBmb250LXdlaWdodDppbmhlcml0OyB9IGltZyB7IG1heC13aWR0aDoxMDAlOyB9IHRhYmxlIHsgYm9yZGVyLWNvbGxhcHNlOmNvbGxhcHNlOyB9IHRleHRhcmVhIHsgd2hpdGUtc3BhY2U6cmV2ZXJ0OyB9IDp3aGVyZShbaGlkZGVuXSl7IGRpc3BsYXk6bm9uZSAhaW1wb3J0YW50OyB9IDp3aGVyZShbY29udGVudGVkaXRhYmxlXSl7IC1tb3otdXNlci1tb2RpZnk6cmVhZC13cml0ZTsgLXdlYmtpdC11c2VyLW1vZGlmeTpyZWFkLXdyaXRlOyBvdmVyZmxvdy13cmFwOmJyZWFrLXdvcmQ7IGxpbmUtYnJlYWs6YWZ0ZXItd2hpdGUtc3BhY2U7IC13ZWJraXQtbGluZS1icmVhazphZnRlci13aGl0ZS1zcGFjZTsgfSA6d2hlcmUoW2RyYWdnYWJsZT0idHJ1ZSJdKSB7IC13ZWJraXQtdXNlci1kcmFnOmVsZW1lbnQ7IH0gLnJlc3BvbnNpdmUtZWRpdG9yIC5jb250YWluZXItZmx1aWR7IG92ZXJmbG93LXg6aGlkZGVuOyB9IC5yZXNwb25zaXZlLWVkaXRvciAuY29udGFpbmVyLWZsdWlkICogeyBsaW5lLWhlaWdodDppbml0aWFsOyB9IC5ja2VkaXRvcldyYXBwZXJ7IG92ZXJmbG93LXg6aGlkZGVuOyBzY3JvbGxiYXItd2lkdGg6bm9uZTsgfSAqIHsgZm9udC12YXJpYW50LW51bWVyaWM6bGluaW5nLW51bXM7IH0KLyoqIC9jc3MvdjIvbmF2LmNzcyAqKi8KaGVhZGVyLm1vYmlsZS1oZWFkZXJ7IC0tdHh0LWNvbG9yOnZhcigtLW1lbnUtdGV4dC1jb2xvci1tb2IsIHZhcigtLXRhYi10ZXh0LWNvbG9yKSk7IHBvc2l0aW9uOnN0aWNreTsgdG9wOjA7IHdpZHRoOjEwMHZ3OyBoZWlnaHQ6My4ycmVtOyBib3gtc2hhZG93OnJnYmEoMCwgMCwgMCwgMC41KSAwIDAgNXB4IDNweDsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1tZW51LWNvbG9yLW1vYiwgdmFyKC0tdGFiLWNvbG9yKSk7IGNvbG9yOnZhcigtLXR4dC1jb2xvcik7IHotaW5kZXg6MTAwMDsgfSBkaXYubW9iaWxlLWhlYWRlci1zcGFjZXJ7IHBvc2l0aW9uOnJlbGF0aXZlOyB3aWR0aDoxMDB2dzsgaGVpZ2h0OjMuMnJlbTsgZGlzcGxheTpibG9jazsgfSBoZWFkZXIubW9iaWxlLWhlYWRlciA+ICogKyAqIHsgZGlzcGxheTpmbGV4OyBqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOyBhbGlnbi1pdGVtczpjZW50ZXI7IGhlaWdodDoxMDAlOyB9IGhlYWRlci5tb2JpbGUtaGVhZGVyLnRhbGwgPiAqICsgKnsgYm9yZGVyLWxlZnQ6MXB4IHNvbGlkICNkZGQ7IGZsZXg6MSAxIGF1dG87IH0gaGVhZGVyIC5sb2dvLWFjdGlvbiB+ICogeyBtaW4td2lkdGg6Mi41cmVtOyB9IC5oZWFkZXItZGVhbGVyLW5hbWUgeyBjb2xvcjppbmhlcml0OyBmb250LXNpemU6dmFyKC0tZnMtMSk7IC0tZnM6dmFyKC0tZnMtMSk7IH0gaGVhZGVyIGFzaWRleyAtLXR4dC1jb2xvcjp2YXIoLS1tZW51LXRleHQtY29sb3ItbW9iLCB2YXIoLS10YWItdGV4dC1jb2xvcikpOyBwb3NpdGlvbjphYnNvbHV0ZTsgdG9wOjIuOTVyZW07IGxlZnQ6LTE5cmVtOyB3aWR0aDptaW4oODB2dywgMTlyZW0pOyBtaW4taGVpZ2h0OjEwMHZoOyBmb250LXNpemU6dmFyKC0tZnMpOyB0cmFuc2l0aW9uOnRyYW5zZm9ybSAzMDBtcyBlYXNlLWluOyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLW1lbnUtY29sb3ItbW9iLCB2YXIoLS10YWItY29sb3IpKTsgY29sb3I6dmFyKC0tbWVudS10ZXh0LWNvbG9yKTsgbWF4LWhlaWdodDoxMDB2aDsgb3ZlcmZsb3c6YXV0bzsgei1pbmRleDoxMDA7IH0gbmF2eyAtLWZzOnZhcigtLWZzMSk7IGZvbnQtc2l6ZTp2YXIoLS1mcyk7IH0gbmF2IC5tZW51LWl0ZW0sIG5hdiAuc3VibWVudS1pdGVtIHsgcGFkZGluZzp2YXIoLS1zKTsgfSBuYXYgLm1lbnUtaXRlbXsgYWxpZ24taXRlbXM6Y2VudGVyOyB9IG5hdiAubWVudS1pdGVtLmludmVyc2UtY29sb3J7IGNvbG9yOnZhcigtLW1lbnUtaG92ZXItdGV4dC1jb2xvcik7IGJhY2tncm91bmQtY29sb3I6dmFyKC0tbWVudS1ob3Zlci1iZy1jb2xvcik7IH0gbmF2IC5zdWJtZW51LWl0ZW17IGJvcmRlci1jb2xvcjp2YXIoLS1ncmF5KTsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1tZW51LWNvbG9yLW1vYi1leCwgdmFyKC0tdGFiLWNvbG9yKSk7IGNvbG9yOnZhcigtLW1lbnUtdGV4dC1jb2xvci1tb2ItZXgpOyB9IG5hdiAuc3VibWVudS1pdGVtIHN2Zy5pY29uIHsgZmlsbDp2YXIoLS10YWItdGV4dC1jb2xvci1tb2ItZXgsIHZhcigtLXRhYi10ZXh0LWNvbG9yKSk7IH0gbmF2IC5tZW51LWdyb3VwIHsgYm9yZGVyLXRvcC13aWR0aDp2YXIoLS1ib3JkZXItdGhpbik7IH0gbmF2IC5tZW51LWdyb3VwIH4gLm1lbnUtZ3JvdXAgeyBib3JkZXItdG9wLXdpZHRoOjA7IH0gbmF2IC5tZW51Q29sbHBhc2Ugc3ZneyB0cmFuc2Zvcm06cm90YXRlKDE4MGRlZyk7IH0gI2hvbWVuYXYgbmF2eyAtLXR4dC1jb2xvcjp2YXIoLS10YWItdGV4dC1jb2xvci1tb2IsIHZhcigtLXRhYi10ZXh0LWNvbG9yKSk7IH0gI2hvbWVuYXYgbmF2IC5tZW51LWl0ZW17IGJhY2tncm91bmQ6dmFyKC0tdGFiLWNvbG9yLW1vYiwgdmFyKC0tdGFiLWNvbG9yKSk7IGNvbG9yOnZhcigtLXRhYi10ZXh0LWNvbG9yLW1vYiwgdmFyKC0tdGFiLXRleHQtY29sb3IpKTsgfSAjaG9tZW5hdiBuYXYgLm1lbnUtaXRlbS5pbnZlcnNlLWNvbG9yeyBjb2xvcjp2YXIoLS1tZW51LWhvdmVyLXRleHQtY29sb3IpOyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLW1lbnUtaG92ZXItYmctY29sb3IpOyB9ICNob21lbmF2IG5hdiAuc3VibWVudS1pdGVteyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXRhYi1jb2xvci1tb2ItZXgsIHZhcigtLXRhYi1jb2xvcikpOyBjb2xvcjp2YXIoLS10YWItdGV4dC1jb2xvci1tb2ItZXgsIHZhcigtLXRhYi10ZXh0LWNvbG9yKSk7IH0gI2hvbWVuYXYgbmF2IGxpeyBwYWRkaW5nLXRvcDp2YXIoLS1zLTgpOyB9ICNob21lbmF2IG5hdiAubWVudS1pdGVteyBib3JkZXItcmFkaXVzOjAuMjVyZW07IH0gI2hvbWVuYXYgbmF2IC5tZW51LWl0ZW0uTEFOR1VBR0V7IGRpc3BsYXk6bm9uZTsgfSAuYnVyZ2VyLW1lbnUtY29udGFpbmVyeyBwb3NpdGlvbjpyZWxhdGl2ZTsgfSAuYnVyZ2VyX3RvcCB7IHRyYW5zZm9ybS1vcmlnaW46MCA1MCU7IH0gLmJ1cmdlcl9ib3R0b20geyB0cmFuc2Zvcm0tb3JpZ2luOjAgNTAlOyB9IC5idXJnZXItbWVudS1idXR0b24gPiBzcGFuIHsgd2lkdGg6MS42cmVtOyBoZWlnaHQ6MC4yNXJlbTsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1tZW51LXRleHQtY29sb3ItbW9iKTsgYm9yZGVyLXJhZGl1czowLjI1cmVtOyB0cmFuc2l0aW9uOnRyYW5zZm9ybSAwLjRzIGVhc2U7IHotaW5kZXg6MTAxOyB9ICNibV90b2dnbGU6Y2hlY2tlZCB+IC5idXJnZXItbWVudS1idXR0b24gLmJ1cmdlcl90b3AsICNibV9ib3R0b21fdG9nZ2xlOmNoZWNrZWQgfiAuYnVyZ2VyLW1lbnUtYnV0dG9uIC5idXJnZXJfdG9weyBvcGFjaXR5OjE7IHRyYW5zZm9ybTpyb3RhdGUoNDVkZWcpIHRyYW5zbGF0ZSgwLjFyZW0sIDApOyB9ICNibV90b2dnbGU6Y2hlY2tlZCB+IC5idXJnZXItbWVudS1idXR0b24gLmJ1cmdlcl9taWRkbGUsICNibV9ib3R0b21fdG9nZ2xlOmNoZWNrZWQgfiAuYnVyZ2VyLW1lbnUtYnV0dG9uIC5idXJnZXJfbWlkZGxleyBvcGFjaXR5OjA7IHRyYW5zZm9ybTpyb3RhdGUoMGRlZykgc2NhbGUoMC4yLCAwLjIpOyB9ICNibV90b2dnbGU6Y2hlY2tlZCB+IC5idXJnZXItbWVudS1idXR0b24gLmJ1cmdlcl9ib3R0b20sICNibV9ib3R0b21fdG9nZ2xlOmNoZWNrZWQgfiAuYnVyZ2VyLW1lbnUtYnV0dG9uIC5idXJnZXJfYm90dG9teyBvcGFjaXR5OjE7IHRyYW5zZm9ybTpyb3RhdGUoLTQ1ZGVnKSB0cmFuc2xhdGUoMC4xcmVtLCAwKTsgfSAjYm1fdG9nZ2xlOmNoZWNrZWQgfiAuYnVyZ2VyLW1lbnUtYnV0dG9uIH4gYXNpZGV7IHRyYW5zZm9ybTp0cmFuc2xhdGUoMTlyZW0pOyB9IGxhYmVsW2Zvcj0iYm1fdG9nZ2xlIl17IHBvc2l0aW9uOmFic29sdXRlOyB0b3A6MDsgbGVmdDowOyB3aWR0aDoxMDAlOyBoZWlnaHQ6MTAwJTsgei1pbmRleDoxMDI7IH0gLnRoaW5MZWZ0IC5oZWFkZXItZGVhbGVyLW5hbWUgeyBmb250LXNpemU6dmFyKC0tZnMwKTsgbWFyZ2luLWxlZnQ6OHB4OyB9IC50aGluTGVmdCAubG9nby1hY3Rpb24gYSB7IGZsZXgtYmFzaXM6MTUlIH0gaGVhZGVyLnRoaW5MZWZ0IGFzaWRlIHsgbGVmdDp1bnNldDsgcmlnaHQ6MDsgdHJhbnNmb3JtOnNjYWxlWCgwKSB0cmFuc2xhdGVYKDE5cmVtKTsgdHJhbnNmb3JtLW9yaWdpbjoxMDAlIDUwJTsgfSAudGhpbkxlZnQgI2JtX3RvZ2dsZTpjaGVja2VkIH4gLmJ1cmdlci1tZW51LWJ1dHRvbiB+IGFzaWRleyB0cmFuc2Zvcm06dW5zZXQ7IH0KLyoqIC9jc3Mvc2tlbGV0b24uY3NzICoqLwouaGlkZU9uUHJlTG9hZCB7IHZpc2liaWxpdHk6aGlkZGVuOyB9IC5yZXZlYWwtbW9kYWwgeyB2aXNpYmlsaXR5OmhpZGRlbjsgcG9zaXRpb246YWJzb2x1dGU7IHRvcDotMTAwMHB4OyB9IC5za2VsZXRvbiB7IGRpc3BsYXk6YmxvY2s7IHBvc2l0aW9uOnJlbGF0aXZlOyBtYXJnaW46MDsgcGFkZGluZzowOyBiYWNrZ3JvdW5kOiNlZWU7IH0gLnNrZWxldG9uOjpiZWZvcmUgeyBkaXNwbGF5OmZsZXg7IHdpZHRoOjEwMCU7IGhlaWdodDoxMDAlOyBwb3NpdGlvbjphYnNvbHV0ZTsgei1pbmRleDo0OyBjb250ZW50OiIiOyBmb250LXNpemU6MC43NXJlbTsgbGluZS1oZWlnaHQ6MC43NXJlbTsgY29sb3I6Izg4ODsgYW5pbWF0aW9uOnNrZWxldG9uLWFuaW0gMnMgbGluZWFyIGluZmluaXRlOyBqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOyBsZXR0ZXItc3BhY2luZzowLjI1cmVtOyBhbGlnbi1pdGVtczpjZW50ZXI7IGZvbnQtd2VpZ2h0OmJvbGQ7IH0gQGtleWZyYW1lcyBza2VsZXRvbi1hbmltIHsgMCUgeyBjb250ZW50OiIiOyB9IDI1JSB7IGNvbnRlbnQ6InwiOyB9IDUwJSB7IGNvbnRlbnQ6Inx8IjsgfSA3NSUgeyBjb250ZW50OiJ8fHwiOyB9IH0gLnNrZWxldG9uIGRpdjpmaXJzdC1jaGlsZCwgLnNrZWxldG9uIHNwYW46Zmlyc3QtY2hpbGQgeyBvcGFjaXR5OjA7IHRyYW5zaXRpb246b3BhY2l0eSAuMzAwczsgfSAuc2tlbGV0b24uc2tlbGV0b24tZGVza3RvcC5za2VsZXRvbi1jb25kLTIgeyBiYWNrZ3JvdW5kOm5vbmU7IH0gLnNrZWxldG9uLnNrZWxldG9uLWRlc2t0b3Auc2tlbGV0b24tY29uZC0yLmZpeGVkIHsgd2lkdGg6aW5oZXJpdCAhaW1wb3J0YW50OyB9IC5za2VsZXRvbi5pcy1sb2FkZWQtbm93IHsgYmFja2dyb3VuZDp1bnNldDsgfSAuc2tlbGV0b24uaXMtbG9hZGVkLW5vdyBkaXY6Zmlyc3QtY2hpbGQsIC5za2VsZXRvbi5pcy1sb2FkZWQtbm93IHNwYW46Zmlyc3QtY2hpbGQgeyBvcGFjaXR5OjE7IH0gLnNrZWxldG9uLmlzLWxvYWRlZC1ub3c6OmJlZm9yZSB7IGNvbnRlbnQ6IiI7IGRpc3BsYXk6bm9uZTsgYW5pbWF0aW9uOnVuc2V0OyB9IC5za2VsZXRvbi5za2VsZXRvbi1kZXNrdG9wLnNrZWxldG9uLWNvbmQtMi5maXhlZC5pcy1sb2FkZWQtbm93ID4gZGl2OmZpcnN0LWNoaWxkIHsgb3BhY2l0eTouNzU7IH0gLnNrZWxldG9uLnNrZWxldG9uLWRlc2t0b3Auc2tlbGV0b24tY29uZC0yLmZpeGVkLmlzLWxvYWRlZC1ub3cgPiBkaXY6Zmlyc3QtY2hpbGQ6aG92ZXIgeyBvcGFjaXR5OjE7IH0KLyoqIC9jc3MvY3NzLmNzcyAqKi8KaHRtbCwgYm9keSwgc3BhbiwgYXBwbGV0LCBvYmplY3QsIGlmcmFtZSwgaDEsIGgyLCBoMywgaDQsIGg1LCBoNiwgcCwgYmxvY2txdW90ZSwgcHJlLCBhYmJyLCBhY3JvbnltLCBhZGRyZXNzLCBiaWcsIGNpdGUsIGNvZGUsIGRlbCwgZGZuLCBlbSwgZm9udCwgaW1nLCBpbnMsIGtiZCwgcSwgcywgc2FtcCwgc21hbGwsIHN0cmlrZSwgc3Ryb25nLCBzdWIsIHN1cCwgdHQsIHZhciwgYiwgdSwgaSwgY2VudGVyLCBkbCwgZHQsIGRkLCBvbCwgdWwsIGxpLCBmaWVsZHNldCwgZm9ybSwgbGFiZWwsIGxlZ2VuZCwgdGFibGUsIGNhcHRpb24sIHRib2R5LCB0Zm9vdCwgdGhlYWQsIHRyLCB0aCwgdGQgeyBtYXJnaW46MDsgcGFkZGluZzowOyB9IGh0bWx7IGZvbnQtc2l6ZToxcmVtIDsgfSBib2R5IHsgcGFkZGluZzowOyBtYXJnaW4tbGVmdDowcHg7IG1hcmdpbi10b3A6MDsgbWFyZ2luLXJpZ2h0OjBweDsgbWFyZ2luLWJvdHRvbTowcHg7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGZvbnQtZmFtaWx5OnZhcigtLWZvbnQtdGV4dCk7IGZvbnQtd2VpZ2h0OnZhcigtLWZvbnQtdGV4dC13ZWlnaHQpOyBiYWNrZ3JvdW5kOiB0b3AgY2VudGVyIG5vLXJlcGVhdDsgYmFja2dyb3VuZC1pbWFnZTp1cmwoJy9pbWFnZXMvYmxhbmsuZ2lmJyk7IGJhY2tncm91bmQtY29sb3I6dmFyKC0tZ2VuZXJhbC1iZy1jb2xvcik7IH0gaW5wdXQsIHRleHRhcmVhLCBzZWxlY3QsIGJ1dHRvbiB7IGZvbnQtZmFtaWx5OnZhcigtLWZvbnQtdGV4dCk7IGZvbnQtd2VpZ2h0OnZhcigtLWZvbnQtdGV4dC13ZWlnaHQpOyB9IC5uYXYgbGkgYS50b3BfbGluaywgLnVwX21lbnUgdWwubmF2IHVsLnN1YiBsaSBhLnN1YnRpdGxlLCAuaW1nX21lbnUudXBfbWVudSB1bC5uYXYgI01haW5NZW51X05FVz51bC5zdWIgbGk+dWwuc3ViPmxpLmhhc1N1YiBsaSBhLCBib2R5IC53cmFwcGVyIC51cF9tZW51IC5uYXZ7IGZvbnQtZmFtaWx5OnZhcigtLWZvbnQtbWVudSk7IGZvbnQtd2VpZ2h0OnZhcigtLWZvbnQtbWVudS13ZWlnaHQpOyB9IGgxeyBmb250LWZhbWlseTp2YXIoLS1mb250LWgxKTsgZm9udC13ZWlnaHQ6dmFyKC0tZm9udC1oMS13ZWlnaHQpOyBjbGVhcjpib3RoOyB9IC5mbi5vcmd7IGZvbnQtZmFtaWx5OnZhcigtLWZvbnQtaDEpOyBmb250LXdlaWdodDp2YXIoLS1mb250LWgxLXdlaWdodCk7IH0gaW5wdXRbdHlwZT1idXR0b25dLCBidXR0b24uanFUcmFuc2Zvcm1CdXR0b24gc3BhbiBzcGFuLCAuYnV0dG9uXzEgYSwgLmJ1dHRvbl8yIGEsIC5idXR0b25fMyBhLCAuYnV0dG9uX3VuZGVyIGEsIC5idXR0b25fY21wX2xlZnQgYSwgLmJ1dHRvbl9jbXBfcmlnaHQgYSwgLmJ1dHRvbl9jbXBfYWN0IGEsIC5wdWxsb3V0cyBhLCAuaWROYXYxIGxpIGEudG9wX2xpbmsxLCAuY3RhX3ByaWNlLmFsdCwgLmN0YV9jcmVkaXQuYWx0LCAuY3RhX3Rlc3REcml2ZSwgLmN0YV9ldmFsLmFsdCwgLmN0YV9zZXJ2aWNlLmFsdCwgLmN0YV9wYXJ0cy5hbHQsIC5jdGFfdGlyZXMuYWx0LCAuY3RhX3N2Y3Byb21vLmFsdCwgLmJveDE1IGgyIGEsIC5ib3gxOSBoMiBhLCAuYm94MjcgYSwgLnZpb3IsIC5idG4tZGVmYXVsdCwgLmJ0bi1zbSwgLmJ0bi1sZyB7IGZvbnQtZmFtaWx5OnZhcigtLWZvbnQtYnV0dG9ucyk7IGZvbnQtd2VpZ2h0OnZhcigtLWZvbnQtYnV0dG9ucy13ZWlnaHQpOyB9IGgyLGgzLGg0LGg1LGg2eyBmb250LWZhbWlseTp2YXIoLS1mb250LWgyKTsgZm9udC13ZWlnaHQ6dmFyKC0tZm9udC1oMi13ZWlnaHQpOyB9IHN0cm9uZ3sgZm9udC13ZWlnaHQ6OTAwICFpbXBvcnRhbnQ7IH0gI21haW5EaXYud3JhcHBlciAudG9wX2JneyBtYXgtaGVpZ2h0OjI1MHB4OyBtaW4taGVpZ2h0OjExNXB4OyB9IC5oZWFkZXItaW1hZ2Utd3JhcHBlciBpbWcuaW1hZ2UtcGFkZGluZyB7IHBhZGRpbmctYm90dG9tOjVweDsgfSAuY2tlZGl0b3JXcmFwcGVyIGgyIHsgbWFyZ2luLWxlZnQ6MHB4ICFpbXBvcnRhbnQ7IG1hcmdpbi1yaWdodDowcHggIWltcG9ydGFudDsgbWFyZ2luLXRvcDoxNXB4ICFpbXBvcnRhbnQ7IG1hcmdpbi1ib3R0b206MTVweCAhaW1wb3J0YW50OyB9IC5ja2VkaXRvcldyYXBwZXIgYSB7IGZsb2F0Om5vbmUgIWltcG9ydGFudDsgbWFyZ2luLWxlZnQ6MHB4ICFpbXBvcnRhbnQ7IGZvbnQtc2l6ZToxMDAlICFpbXBvcnRhbnQ7IH0gLmNrZWRpdG9yV3JhcHBlciBwIHsgZmxvYXQ6bm9uZSAhaW1wb3J0YW50OyB9IC5ja2VkaXRvcldyYXBwZXIgcDplbXB0eSB7IG1hcmdpbi1ib3R0b206MXJlbTsgfSAuY2xyeyBjbGVhcjpib3RoO30gLmZsZWZ0eyBmbG9hdDpsZWZ0OyB9IGlucHV0OmludmFsaWR7Ym94LXNoYWRvdzpub25lOyAtbW96LWJveC1zaGFkb3c6bm9uZTt9IC5jb25kaXRpb25zLS1jb250YWluZXIgeyBkaXNwbGF5OmZsZXg7IGZsZXgtZGlyZWN0aW9uOnJvdzsganVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47IG1hcmdpbi1ib3R0b206OHB4OyB9IC5jb25kaXRpb25zLS1jb250YWluZXIgLmNvbmRpdGlvbnMgeyBmbGV4LWdyb3c6MjsgZm9udC1zaXplOjAuODEzcmVtIDsgbGluZS1oZWlnaHQ6MThweDsgY29sb3I6IzY2NjY2NjsgfSAuY29uZGl0aW9uc0Zvb3RlcnsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODEzcmVtIDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgbGluZS1oZWlnaHQ6MThweDsgdGV4dC10cmFuc2Zvcm06bm9uZTsgdGV4dC1hbGlnbjpsZWZ0OyBtYXJnaW4tbGVmdDo1cHg7IG1hcmdpbi10b3A6MjVweDsgY29sb3I6IzY2NjY2NjsgfSAuY29uZGl0aW9ucy0tY29udGFpbmVyIGEsIC5jb25kaXRpb25zRm9vdGVyIGEgeyB0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lOyBjdXJzb3I6cG9pbnRlcjsgZm9udC1zaXplOjAuODEzcmVtIDsgY29sb3I6IzY2NjY2NjsgZm9udC13ZWlnaHQ6bm9ybWFsOyB9IC5leHRlbmRlZFBob25lVHJpZ2dlciBheyBjb2xvcjppbmhlcml0OyB9IC5tYWluRGl2LXdyYXBwZXIgPiAubGFuZ3VhZ2VCYXItemVybyB7IG1hcmdpbjowOyBoZWlnaHQ6aW5oZXJpdDsgd2lkdGg6MTAwJTsgfSAuaGVhZGVyLXNlY3Rpb24gLmxhbmd1YWdlQmFyIHsgbWFyZ2luOjAgYXV0byAyLjc1cmVtOyB3aWR0aDppbmhlcml0OyB9IC5oZWFkZXItc2VjdGlvbiAubGFuZ3VhZ2VCYXIgKyAucGhvbmUgeyBtYXJnaW4tYm90dG9tOjAuNXJlbTsgfSAubGFuZ3VhZ2VCYXIgdWwgYTpob3Zlcntmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojNjY2NjY2OyB0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lO30gLmxhbmd1YWdlQmFyIHVsIGE6dmlzaXRlZHtwYWRkaW5nLXJpZ2h0OjM1cHg7IHdpZHRoOmF1dG87IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiM2NjY2NjY7IHRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7IHRleHQtYWxpZ246cmlnaHQ7fSAubGFuZ3VhZ2VCYXIubGFuZ3VhZ2VCYXItemVybyB7IGhlaWdodDowOyBwYWRkaW5nOjA7IG1hcmdpbjowOyB9ICNtYWluRGl2LndyYXBwZXIubm8taWNvbnMgeyBwYWRkaW5nLXRvcDowLjAxcmVtOyB9IC50b3Bfcm91eyB3aWR0aDo5NjBweDsgaGVpZ2h0OjRweDsgZmxvYXQ6bGVmdDsgfSAubG9nb3sgfSAubG9nb05vUGFkZGluZyBpbWd7IHdpZHRoOjEwMCU7fSAubGFuZ3VhZ2VCYXIgYS5kZXNrdG9wX2xhbmdfYnV0dG9uLCAubGFuZ3VhZ2VCYXIgc3Bhbi5kZXNrdG9wX2xhbmdfYnV0dG9ueyBwb3NpdGlvbjpyZWxhdGl2ZTsgZGlzcGxheTppbmxpbmUtYmxvY2s7IGZvbnQtc2l6ZTowLjc1cmVtIDsgd2lkdGg6MjhweDsgaGVpZ2h0OjI2cHg7IHBhZGRpbmc6MDsgdGV4dC1hbGlnbjpjZW50ZXI7IHRleHQtZGVjb3JhdGlvbjpub25lOyB2ZXJ0aWNhbC1hbGlnbjp0b3A7IGJvcmRlcjoxcHggc29saWQgI0I2QjdCOTsgY29sb3I6I0I2QjdCOTsgY29sb3I6IzAwMDAwMDsgYmFja2dyb3VuZC1jb2xvcjojZmZmZmZmOyBiYWNrZ3JvdW5kLWNvbG9yOiNmZmZmZmY7IGJhY2tncm91bmQtY29sb3I6I2ZmZmZmZjsgfSAubGFuZ3VhZ2VCYXIgLmRlc2t0b3BfbGFuZ19idXR0b24uYWN0aXZlLCAubGFuZ3VhZ2VCYXIgYS5kZXNrdG9wX2xhbmdfYnV0dG9uOmhvdmVyeyBjb2xvcjojZmZmZmZmOyBjb2xvcjojZmZmZmZmOyBiYWNrZ3JvdW5kLWNvbG9yOiNCNkI3Qjk7IGJhY2tncm91bmQtY29sb3I6IzAwMDAwMDsgfSAubGFuZ3VhZ2VCYXIgc3Bhbi5kZXNrdG9wX2xhbmdfYnV0dG9uOm50aC1jaGlsZChldmVuKSwgLmxhbmd1YWdlQmFyIGEuZGVza3RvcF9sYW5nX2J1dHRvbjpudGgtY2hpbGQoZXZlbil7IG1hcmdpbi1sZWZ0OjJweDsgfSAubGFuZ3VhZ2VCYXIgYS5kZXNrdG9wX2xhbmdfYnV0dG9uIHNwYW4uZGVza3RvcF9sYW5nX2J1dHRvbl90ZXh0LCAubGFuZ3VhZ2VCYXIgc3Bhbi5kZXNrdG9wX2xhbmdfYnV0dG9uIHNwYW4uZGVza3RvcF9sYW5nX2J1dHRvbl90ZXh0eyBwb3NpdGlvbjphYnNvbHV0ZTsgdG9wOjUwJTsgdHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlLCAtNTAlKTsgfSAubG9nb05vUGFkZGluZ3sgbWF4LXdpZHRoOjUwJTsgZmxvYXQ6bGVmdDsgbWFyZ2luLXRvcDotNHB4O30gLnYtY2FyZC50b3BfYmcgeyBkaXNwbGF5OmZsZXg7IGp1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuOyBhbGlnbi1pdGVtczpjZW50ZXI7IG1hcmdpbi10b3A6MTBweDsgfSAudi1jYXJkLnRvcF9iZy4tbXQwIC5oZWFkZXItc2VjdGlvbjpudGgtY2hpbGQoMikgeyBtYXJnaW4tdG9wOjc0cHg7IH0gLmhlYWRlci1zZWN0aW9uIHsgZGlzcGxheTpmbGV4OyB2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7IGp1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuOyBhbGlnbi1pdGVtczpjZW50ZXI7IH0gLmhlYWRlci1pbWFnZS13cmFwcGVyIHsgbWluLWhlaWdodDo5N3B4OyB9IC5oZWFkZXItc2VjdGlvbi5pbWFnZSB7IHdpZHRoOjI1JTsgfSAuaGVhZGVyLXNlY3Rpb24uaW1hZ2UgPiAuaGVhZGVyLWltYWdlLXdyYXBwZXIgaW1nIHsgbWF4LWhlaWdodDoyNTBweDsgfSAuaGVhZGVyLXNlY3Rpb24gPiBkaXYgeyBkaXNwbGF5OmlubGluZS1ibG9jazsgfSAuaGVhZGVyLXNlY3Rpb24gLnBob25lIHsgd2lkdGg6YXV0bzsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6dmFyKC0tZGVhbGVyLWFkZHJlc3MtY29sb3IpOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgdGV4dC1hbGlnbjpyaWdodDsgcGFkZGluZzowLjVyZW0gMDsgfSAuaGVhZGVyLXNlY3Rpb246bnRoLWNoaWxkKDIpLmltYWdlIHsgdGV4dC1hbGlnbjpyaWdodDsgfSAuaGVhZGVyLXNlY3Rpb24gLnBob25lLnBob25lX3JpZ2h0eyB0ZXh0LWFsaWduOnJpZ2h0OyB9IC5oZWFkZXItc2VjdGlvbiAucGhvbmUucGhvbmVfbGVmdCB7IHRleHQtYWxpZ246bGVmdDsgfSAuaGVhZGVyLXNlY3Rpb24gPiAudi1jYXJkIHsgfSAubXVsdGktYWRkcmVzcy13cmFwcGVyLmV4Y2VwdGlvblN0eWxleyBkaXNwbGF5OmZsZXg7IH0gLm11bHRpLWFkZHJlc3Mtd3JhcHBlci5leGNlcHRpb25TdHlsZSAubXVsdGktYWRkcmVzcy0tcGhvbmV7IHdpZHRoOmF1dG87IGFsaWduLWl0ZW1zOmNlbnRlcjsgfSAubXVsdGktYWRkcmVzcy13cmFwcGVyLmV4Y2VwdGlvblN0eWxlIC5tdWx0aS1hZGRyZXNzLS1waG9uZSBpeyBmb250LXNpemU6MC42MjVyZW0gOyB9IC5tdWx0aS1hZGRyZXNzLXdyYXBwZXIuZXhjZXB0aW9uU3R5bGUgYXsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IH0gLm11bHRpLWFkZHJlc3MgeyBkaXNwbGF5OmZsZXg7IGp1c3RpZnktY29udGVudDpmbGV4LWVuZDsgfSAubXVsdGktYWRkcmVzcy0tcGhvbmUgeyB3aWR0aDoxMzNweDsgZGlzcGxheTpmbGV4OyBqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjsgfSAubXVsdGktYWRkcmVzcyBpIHsgcGFkZGluZy1yaWdodDo1cHg7IHBhZGRpbmctbGVmdDoxMHB4OyB9IC50b3BfYmcgdGFibGUgdGJvZHkgdGQ6bnRoLWNoaWxkKDIpIC5oZWFkZXItc2VjdGlvbiB7IHdpZHRoOjEwMCU7IH0gLnRvcF9iZy5kaXZUYWJsZSAuaGVhZGVyLXNlY3Rpb246bnRoLWNoaWxkKDIpIHsgdGV4dC1hbGlnbjpyaWdodDsgfSAudG9wX2JnIHRhYmxlIHRkIC5oZWFkZXItc2VjdGlvbiB7IGRpc3BsYXk6aW5saW5lLWJsb2NrOyB9IC5waG9uZSBoMnsgZm9udC1zaXplOjEuNXJlbSA7IGNvbG9yOiM1MjUyNTI7IGZvbnQtd2VpZ2h0OmJvbGQ7IHRleHQtZGVjb3JhdGlvbjpub25lO30gLnBob25lIGgxeyBmb250LXNpemU6MS44NzVyZW0gOyBjb2xvcjojNTI1MjUyOyBmb250LXdlaWdodDpib2xkOyB0ZXh0LWRlY29yYXRpb246bm9uZTt9IC5waG9uZSBkaXYub3JneyBmb250LXNpemU6MS4zNzVyZW0gOyBjb2xvcjojNTI1MjUyOyBmb250LXdlaWdodDpib2xkOyB0ZXh0LWRlY29yYXRpb246bm9uZTt9IC5waG9uZV90ZXh0IHsgY29sb3I6dmFyKC0tZGVhbGVyLWFkZHJlc3MtY29sb3IpOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgcGFkZGluZy1sZWZ0OjJweDsgcGFkZGluZy10b3A6MnB4O30gLnBob25lX3RleHQgYXsgY29sb3I6dmFyKC0tZGVhbGVyLWFkZHJlc3MtY29sb3IpOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgZGlzcGxheTppbmxpbmUtYmxvY2s7IHdpbGwtY2hhbmdlOnRyYW5zZm9ybTsgdHJhbnNmb3JtLW9yaWdpbjpyaWdodCBjZW50ZXI7IHRyYW5zaXRpb246dHJhbnNmb3JtIDAuM3MgZWFzZTsgfSAucGhvbmVfdGV4dCBhOmhvdmVyeyB0cmFuc2Zvcm06c2NhbGUoMC45Myk7IGNvbG9yOiMwMDU3OWM7IHRleHQtZGVjb3JhdGlvbjpub25lOyB9IGEucGhvbmUtbGluayB7IGRpc3BsYXkgOmlubGluZS1ibG9jayAhaW1wb3J0YW50OyBwYWRkaW5nIDowICFpbXBvcnRhbnQ7IGNvbG9yIDppbmhlcml0OyB0ZXh0LWRlY29yYXRpb24gOm5vbmU7IH0gYS5waG9uZS1saW5rOmhvdmVyIHsgY29sb3I6aW5oZXJpdDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IH0gI3NsaWRlcnsgd2lkdGg6OTYwcHg7IG1hcmdpbi1sZWZ0OjBweDsgYm94LXNoYWRvdzpub25lOyB9IC5jZW50ZXJlZCB7cG9zaXRpb246YWJzb2x1dGU7IGxlZnQ6NTAlOyB0b3A6NTAlO30gLnVwX21lbnV7IHdpZHRoOjk2MHB4OyBoZWlnaHQ6MzFweDsgei1pbmRleDoxMTExOyBmbG9hdDpyaWdodDt3aGl0ZS1zcGFjZTpub3dyYXA7IH0gLmJhbm5lcnsgd2lkdGg6OTYwcHg7IGhlaWdodDozMDFweDsgZmxvYXQ6bGVmdDsgbWFyZ2luLWxlZnQ6MnB4OyBtYXJnaW4tYm90dG9tOjZweDsgfSAubWVfdG9weyB3aWR0aDo5NjdweDsgaGVpZ2h0OjhweDsgZmxvYXQ6bGVmdDt9IC5tZV9iZ3sgd2lkdGg6OTY3cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL21lX2JnX3JvdS5wbmcpIGxlZnQgdG9wIHJlcGVhdC15O30gLm1lX2Rlc2N7bWFyZ2luOjBweDtoZWlnaHQ6YXV0bztmb250LXNpemU6MC44NzVyZW0gOyBvdmVyZmxvdzpoaWRkZW47cGFkZGluZzo1cHggMTVweH0gLm1lX2JvdXsgd2lkdGg6OTY3cHg7IGhlaWdodDo5cHg7IGZsb2F0OmxlZnQ7fSAub25leyB3aWR0aDoyMjVweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IG1hcmdpbi1sZWZ0OjEwcHg7IG1hcmdpbi10b3A6OHB4O30gLnR3b3sgd2lkdGg6MjI1cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBtYXJnaW4tbGVmdDoxNHB4OyBtYXJnaW4tdG9wOjhweDt9IC50aHJlZXsgd2lkdGg6MjI1cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBtYXJnaW4tbGVmdDoxNHB4OyBtYXJnaW4tdG9wOjhweDt9IC5mb3VyeyB3aWR0aDoyMjVweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IG1hcmdpbi1sZWZ0OjRweDsgbWFyZ2luLXRvcDo0cHg7fSAuVm91c3sgZm9udC1zaXplOjEuMDYzcmVtIDsgY29sb3I6IzAwMDAwMDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHBhZGRpbmctYm90dG9tOjJweDt9IC5jbGFzc3sgZm9udC1zaXplOjAuODEzcmVtIDsgY29sb3I6IzU3NTc1NzsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHBhZGRpbmctYm90dG9tOjBweDsgcGFkZGluZy10b3A6NnB4O30gLmNsYXNzMXsgZm9udC1zaXplOjAuODEzcmVtIDsgY29sb3I6IzU3NTc1NzsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IGhlaWdodDoxNTdweDsgbWFyZ2luLXRvcDo2cHg7fSAuYm9yZGVye2JvcmRlcjoxcHggc29saWQgI2QzZDNkMzsgd2lkdGg6MjE4cHg7fSAuYm94eyB3aWR0aDo3NXB4OyBoZWlnaHQ6NzNweDsgdGV4dC1hbGlnbjpjZW50ZXI7IHBhZGRpbmctdG9wOjEwcHg7IG1hcmdpbjowIGF1dG87fSAuY2F7aGVpZ2h0OjE0M3B4O30gLmJveDIyNXsgd2lkdGg6MjI1cHg7IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IGNvbG9yOiM1NzU3NTc7IHRleHQtZGVjb3JhdGlvbjpub25lOyBwYWRkaW5nLWJvdHRvbTozcHg7fSAuYm94MjI0eyB3aWR0aDoyMjVweDsgZmxvYXQ6bGVmdDsgcGFkZGluZy1ib3R0b206NnB4O30gLmJveDIyM3sgd2lkdGg6MjI1cHg7IGZsb2F0OmxlZnQ7IHBhZGRpbmctdG9wOjNweDt9IC5ub3N7IHdpZHRoOjcxMHB4OyBoZWlnaHQ6MTAwJTsgbWFyZ2luLXRvcDo1cHg7IGZsb2F0OmxlZnQ7IG1hcmdpbi1yaWdodDo1cHg7fSAubm9zX3RvcHsgd2lkdGg6NzE2cHg7IGhlaWdodDo5cHg7IGZsb2F0OmxlZnQ7fSAubm9zX2JneyB3aWR0aDo3MTZweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvbm9zX2JnLnBuZykgbGVmdCB0b3AgcmVwZWF0LXk7fSAubm9zX2JvdXsgd2lkdGg6NzE2cHg7IGhlaWdodDo5cHg7IGZsb2F0OmxlZnQ7fSAubm9zX3RleHR7aGVpZ2h0OjMwcHg7IGZvbnQtc2l6ZToxLjEyNXJlbSA7IGNvbG9yOiM1NzU3NTc7IHRleHQtZGVjb3JhdGlvbjpub25lOyB0ZXh0LWFsaWduOmNlbnRlcjt9IC5hcm93eyB3aWR0aDo2OTVweDsgaGVpZ2h0OjE2MHB4OyBmbG9hdDpsZWZ0OyBtYXJnaW4tbGVmdDo0cHg7fSAuY29ueyBmb250LXNpemU6MC44MTNyZW0gOyBjb2xvcjojM2MzYzNjO30gLmRlc2Mge21heC13aWR0aDoxMDAlO30gLmRlc2NfYmcge3dpZHRoOjEwMCU7IGhlaWdodDoyNDhweDsgZmxvYXQ6bGVmdDsgYmFja2dyb3VuZDp1cmwoIi9pbWFnZXMvbm9zX2JnLnBuZyIpIHJlcGVhdC15IHNjcm9sbCBsZWZ0IHRvcCB0cmFuc3BhcmVudDt9IC5hZGRye21hcmdpbi10b3A6MjVweDt9IC5hZGRyX21pZHtiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL21lX2JnX3JvdS5wbmcpIGxlZnQgdG9wIHJlcGVhdC15O30gLmhpZGRlbntkaXNwbGF5Om5vbmUgIWltcG9ydGFudDt9IC5ob3Vyc19yZW0geyB0ZXh0LWFsaWduOnJpZ2h0O2xpbmUtaGVpZ2h0OjE4cHg7IGZsb2F0OnJpZ2h0O3BhZGRpbmctcmlnaHQ6MTVweDsgfSAuaG91cnNfcmVtIGF7IGZvbnQtc2l6ZTowLjY4OHJlbSA7IHRleHQtZGVjb3JhdGlvbjpub25lOyB9ICNse3dpZHRoOjYwcHg7IGZsb2F0OmxlZnQ7fSAuZGVye3dpZHRoOjQ2MHB4OyBoZWlnaHQ6MjU1cHg7IG1hcmdpbi10b3A6MXB4OyBmbG9hdDpsZWZ0O30gLmRlcl90b3B7IHdpZHRoOjQ2NHB4OyBoZWlnaHQ6OHB4OyBmbG9hdDpsZWZ0O30gLmRlcl9iZ3sgd2lkdGg6NDQ0cHg7IGhlaWdodDoyMjZweDsgZmxvYXQ6bGVmdDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9kZXJfYmcucG5nKSBsZWZ0IHRvcCByZXBlYXQteTsgcGFkZGluZzo2cHggMTBweCAxMHB4IDEwcHg7fSAuZGVyX2JvdXsgd2lkdGg6NDY0cHg7IGhlaWdodDo4cHg7IGZsb2F0OmxlZnQ7fSAuZGVte3dpZHRoOjQ5NXB4OyBoZWlnaHQ6MjU1cHg7IG1hcmdpbi10b3A6M3B4OyBmbG9hdDpsZWZ0OyBtYXJnaW4tbGVmdDo1cHg7bWFyZ2luLWJvdHRvbTo2cHg7fSAuc2JveDF7IHdpZHRoOjI0MHB4OyBoZWlnaHQ6MTIzcHg7IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MCA1cHggMTBweCA1cHh9IC5zYm94Mnsgd2lkdGg6MjQwcHg7IGhlaWdodDoxMjNweDsgZmxvYXQ6bGVmdDsgcGFkZGluZzowIDVweCAxMHB4IDVweH0gLnNib3gzeyB3aWR0aDoyNDBweDsgaGVpZ2h0OjEyM3B4OyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjAgNXB4IDEwcHggNXB4fSAuc2JveDR7IHdpZHRoOjI0MHB4OyBoZWlnaHQ6MTIzcHg7IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MCA1cHggMTBweCA1cHh9IC5ib3R0b200Ym94ZXN7ZmxvYXQ6bGVmdDt3aWR0aDoxMDAlO3BhZGRpbmc6MDtkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47fSAuYm90dG9tNGJveGVzICoge2JveC1zaXppbmc6Ym9yZGVyLWJveDt9IC5ib3R0b200Ym94ZXMgPiAuYm94MjQ1e2Zsb2F0OmxlZnQ7d2lkdGg6MjUlO21heC13aWR0aDoyNDVweDt9IC5ib3R0b200Ym94ZXMgPiAuYm94MjQxe2Zsb2F0OmxlZnQ7bWFyZ2luOjEwcHggNnB4O30gLmJvdHRvbTRib3hlcyA+IC5ib3gyNDE6Zmlyc3QtY2hpbGR7bWFyZ2luLWxlZnQ6MHB4O30gLmJvdHRvbTRib3hlcyA+IC5ib3gyNDE6bGFzdC1jaGlsZHttYXJnaW4tcmlnaHQ6MHB4O30gQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOjEwMjRweCkgeyAuYm90dG9tNGJveGVzIHRhYmxlIHsgcGFkZGluZzowIDEwcHg7IH0gfSAuc2JveFVzZWR7IGZsb2F0OmxlZnQ7IH0gLnNib3hfdG9weyB3aWR0aDoyNDdweDsgaGVpZ2h0OjVweDsgZmxvYXQ6bGVmdDt9IC5zYm94X2JneyB3aWR0aDoyNDdweDsgaGVpZ2h0OjEwN3B4OyBmbG9hdDpsZWZ0OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL3Nib3hfYmcucG5nKSBsZWZ0IHRvcCByZXBlYXQteTsgZm9udC1zaXplOjEuMTg4cmVtIDsgY29sb3I6IzE5MTkxOTsgdGV4dC1hbGlnbjpjZW50ZXI7fSAuc2JveF9ib3V7IHdpZHRoOjI0N3B4OyBoZWlnaHQ6NXB4OyBmbG9hdDpsZWZ0O30gLmRheyBtYXJnaW4tdG9wOjEycHg7fSAuZGExeyBtYXJnaW4tdG9wOjEwcHg7IGZvbnQtc2l6ZToxLjE4OHJlbSA7IGNvbG9yOiMxOTE5MTk7IHRleHQtYWxpZ246Y2VudGVyO30gLmRhMSBoMXsgcGFkZGluZzowOyBtYXJnaW46MDsgZm9udC1zaXplOjEuODc1cmVtIDsgY29sb3I6IzE5MTkxOTsgdGV4dC1hbGlnbjpjZW50ZXI7IGZvbnQtd2VpZ2h0Om5vcm1hbDt9IC5hZGRsaW5leyBjb2xvcjojMDAwMDAwIWltcG9ydGFudDsgb3ZlcmZsb3c6aGlkZGVuOyB0ZXh0LWFsaWduOmNlbnRlcjsgfSAjcmV0dXJuUG9wdXBOZXh0TW9kZWx7IGhlaWdodDo0MHB4IWltcG9ydGFudDsgfSAuYWRkbGluZTo6YmVmb3JlLCAuYWRkbGluZTo6YWZ0ZXIgeyBiYWNrZ3JvdW5kLWNvbG9yOiMwMDA7IGNvbnRlbnQ6IiI7IGRpc3BsYXk6aW5saW5lLWJsb2NrOyBoZWlnaHQ6MXB4OyBwb3NpdGlvbjpyZWxhdGl2ZTsgdmVydGljYWwtYWxpZ246bWlkZGxlOyB3aWR0aDo1MCU7IH0gLmFkZGxpbmU6YmVmb3JlIHsgcmlnaHQ6MC41ZW07IG1hcmdpbi1sZWZ0Oi01MCU7IH0gLmFkZGxpbmU6YWZ0ZXIgeyBsZWZ0OjAuNWVtOyBtYXJnaW4tcmlnaHQ6LTUwJTsgfSAuc2JveDEgYS5jTGluaywgLnNib3gyIGEuY0xpbmssIC5zYm94MyBhLmNMaW5rLCAuc2JveDQgYS5jTGlua3sgZGlzcGxheTpibG9jazsgaGVpZ2h0OjEwMCU7IHdpZHRoOjEwMCU7IHRleHQtZGVjb3JhdGlvbjpub25lOyB9IC5zYm94MSBhLmNMaW5rOmhvdmVyLCAuc2JveDIgYS5jTGluazpob3ZlciwgLnNib3gzIGEuY0xpbms6aG92ZXIsIC5zYm94NCBhLmNMaW5rOmhvdmVyeyB0ZXh0LWRlY29yYXRpb246bm9uZTsgfSAuaG9tZXBhZ2UtLWJ1c2luZXNzLWRlc2NyaXB0aW9uLCAuaG9tZXBhZ2UtLWJ1c2luZXNzLWRlc2NyaXB0aW9uLWNlcnQsIC5ob21lcGFnZS0tYnVzaW5lc3MtZGVzY3JpcHRpb24gLmJvcmRlcl9ib3ggeyBiYWNrZ3JvdW5kLWNvbG9yOiNmM2YzZjM7IGJhY2tncm91bmQtY29sb3I6I2ZmZmZmZjsgY29sb3I6IzAwMDAwMDsgY29sb3I6IzAwMDAwMDsgfSAuaG9tZXBhZ2UtLWJ1c2luZXNzLWRlc2NyaXB0aW9uIGEsIC5ob21lcGFnZS0tYnVzaW5lc3MtZGVzY3JpcHRpb24tY2VydCBhIHsgY29sb3I6IzAwMDAwMDsgY29sb3I6IzAwMDAwMDsgfSAuaG9tZXBhZ2UtLWJ1c2luZXNzLWRlc2NyaXB0aW9uIC5ib3JkZXJfYm94LCAuaG9tZXBhZ2UtLWJ1c2luZXNzLWRlc2NyaXB0aW9uLWNlcnQgLmJvcmRlcl9ib3ggeyBiYWNrZ3JvdW5kLWNvbG9yOmluaGVyaXQ7IGNvbG9yOmluaGVyaXQ7IH0gLmJsYWNrX3RleHR7IGZvbnQtc2l6ZToxLjVyZW0gOyBjb2xvcjojMTkxOTE5OyBtYXJnaW4tYm90dG9tOjRweDt9IC5ncmF5X3RleHR7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IGNvbG9yOiMxOTE5MTk7fSAuYnV0eyBmbG9hdDpyaWdodDsgbWFyZ2luOjBweCAwcHggMHB4IDBweDt9IC5saW5leyBib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZDJkMmQyOyBtYXJnaW4tdG9wOjVweDsgbWFyZ2luLWJvdHRvbTo1cHg7fSAudml2eyBtYXJnaW4tdG9wOjVweDsgbWFyZ2luLWxlZnQ6NXB4OyBmb250LXNpemU6MS41cmVtIDsgY29sb3I6I2ZmZjsgY29sb3I6IzAwMDAwMDsgdGV4dC1hbGlnbjpqdXN0aWZ5O30gLnR3eyB3aWR0aDoyNjBweDsgaGVpZ2h0OjQwcHg7IGZsb2F0OnJpZ2h0OyBtYXJnaW4tdG9wOjVweDsgdGV4dC1hbGlnbjpyaWdodDt9IC5FTkdMSVNIIC52aXZ7dGV4dC10cmFuc2Zvcm06Y2FwaXRhbGl6ZTt9IC5NYWluQm94TGF5ZXIgLnZpdiB7IG1hcmdpbi1sZWZ0OjA7IH0gLnNvY2lhbC1zaGFyaW5neyB3aWR0aDoxMDAlOyBjbGVhcjpib3RoOyBmbG9hdDpyaWdodDsgbWFyZ2luLXRvcDo1cHg7IH0gLnNvY2lhbC1zaGFyaW5nID4gZGl2LnNvY2lhbHsgZmxvYXQ6cmlnaHQ7IHBhZGRpbmctbGVmdDo1cHg7IH0gLnNvY2lhbC1zaGFyaW5nID4gZGl2LnNvY2lhbDpsYXN0LWNoaWxkeyBwYWRkaW5nLWxlZnQ6MDsgfSAuc29jaWFsLXNoYXJpbmcgPiBkaXYuc29jaWFsOmZpcnN0LWNoaWxkeyBwYWRkaW5nLXJpZ2h0OjVweDsgfSAuTWFpbkJveExheWVyIC5zb2NpYWwtc2hhcmluZyA+IGRpdi5zb2NpYWw6Zmlyc3QtY2hpbGR7IHBhZGRpbmctcmlnaHQ6MDsgfSAjZm9vdGVyRGl2IC5hZGQsICNmb290ZXJEaXYgLmFkZCBhIHsgY29sb3I6dmFyKC0tZm9vdGVyLWl0ZW1zLWxpbmstY29sb3IpOyB9ICNmb290ZXJEaXYgLmFkZCAub3JneyBjb2xvcjp2YXIoLS1mb290ZXItbGluay10aXRsZS1jb2wpOyB9IC5wb3VyeyB3aWR0aDo3MjVweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7fSAucGFnZW5ve3dpZHRoOjIzNnB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgbWFyZ2luLWxlZnQ6NXB4OyBwYWRkaW5nOjA7IHRleHQtdHJhbnNmb3JtOm5vbmU7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgbWFyZ2luLXRvcDoxMHB4OyB9IC5wYWdlbm8gdWx7IGxpc3Qtc3R5bGUtdHlwZTpub25lOyBtYXJnaW46MCAwIDE1cHggMDsgcGFkZGluZzowOyB3aWR0aDoyMzZweDsgdGV4dC10cmFuc2Zvcm06bm9uZTsgZm9udC13ZWlnaHQ6bm9ybWFsOyB9IC5wYWdlbm8gdWwgbGl7IGxpc3Qtc3R5bGUtdHlwZTpub25lOyBtYXJnaW46MDtkaXNwbGF5OmJsb2NrOyBmbG9hdDpub25lOyB3aWR0aDoyMzZweDsgdGV4dC10cmFuc2Zvcm06bm9uZTsgZm9udC13ZWlnaHQ6bm9ybWFsO30gLnBhZ2VubyB1bCBsaSBheyB3aWR0aDoyMzdweDsgbWFyZ2luOjA7IGRpc3BsYXk6YmxvY2s7IGZsb2F0Om5vbmU7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IGNvbG9yOnZhcigtLWZvb3Rlci1pdGVtcy1saW5rLWNvbG9yKTsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgbGluZS1oZWlnaHQ6MThweDsgdGV4dC10cmFuc2Zvcm06bm9uZTsgdGV4dC1hbGlnbjpsZWZ0OyB0ZXh0LXRyYW5zZm9ybTpub25lOyB9IC5wYWdlbm8gdWwgbGkgc3BhbiwgLnBhZ2VubyB1bCBsaSBhLmZ0aXRsZXsgd2lkdGg6MjM2cHg7IG1hcmdpbjowOyBkaXNwbGF5OmJsb2NrOyBmbG9hdDpub25lOyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojZmZmOyBjb2xvcjp2YXIoLS1mb290ZXItbGluay10aXRsZS1jb2wpOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgbWFyZ2luLWJvdHRvbToxMHB4OyBmb250LXdlaWdodDpub3JtYWw7IGxpbmUtaGVpZ2h0OjE4cHg7IHRleHQtYWxpZ246bGVmdDsgfSAucGFnZW5vIHVsIGxpIGEuZnRpdGxlOmhvdmVyeyBtYXJnaW4tYm90dG9tOjEwcHg7fSAucGFnZW5vIHVsIGxpIGE6aG92ZXJ7IGxpc3Qtc3R5bGUtdHlwZTpub25lOyBtYXJnaW46MDsgY29sb3I6dmFyKC0tZm9vdGVyLWxpbmstdGl0bGUtY29sKTsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IGRpc3BsYXk6YmxvY2s7IGxpbmUtaGVpZ2h0OjE4cHg7fSAucGFnZW5vIGxpIGEuYWN0aXZleyBsaXN0LXN0eWxlLXR5cGU6bm9uZTsgbWFyZ2luOjA7IGNvbG9yOiM5MTkxOTE7IHRleHQtZGVjb3JhdGlvbjpub25lOyBkaXNwbGF5OmJsb2NrOyBsaW5lLWhlaWdodDoxOHB4O30gLkVOR0xJU0ggLnBhZ2VubyB1bCBsaSBhe3RleHQtdHJhbnNmb3JtOmNhcGl0YWxpemU7fSAuYWRkeyB3aWR0aDoyMzBweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IGNvbG9yOiM5MTkxOTE7IHRleHQtZGVjb3JhdGlvbjpub25lOyBmb250LXdlaWdodDpub3JtYWw7IGxpbmUtaGVpZ2h0OjE4cHg7IHRleHQtdHJhbnNmb3JtOm5vbmU7IHRleHQtYWxpZ246cmlnaHQ7IHRleHQtdHJhbnNmb3JtOm5vbmU7IG1hcmdpbi10b3A6MTBweDttYXJnaW4tYm90dG9tOjEwcHg7fSAuY29weXsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODEzcmVtIDsgY29sb3I6IzkxOTE5MTsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgbGluZS1oZWlnaHQ6MThweDsgdGV4dC10cmFuc2Zvcm06bm9uZTsgdGV4dC1hbGlnbjpsZWZ0OyB0ZXh0LXRyYW5zZm9ybTpub25lOyBtYXJnaW4tbGVmdDo1cHg7IG1hcmdpbi10b3A6MjVweDt9IC5jb3B5IGF7IHRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7Y3Vyc29yOnBvaW50ZXI7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IGNvbG9yOiM5MTkxOTE7IGZvbnQtd2VpZ2h0Om5vcm1hbH0gLmNvcHkgYTpob3ZlcnsgY29sb3I6I2Q0ZDRkNDsgZm9udC13ZWlnaHQ6Ym9sZDt9IC5mb290ZXItbGlzdHMgbGkgPiBzcGFuIHsgdGV4dC10cmFuc2Zvcm06dmFyKC0tdHh0LXVwcGVyKTsgfSAjZm9vdGVyV3JhcHBlciAudi1jYXJkLmFkZCB7IGxpbmUtaGVpZ2h0OmluaXRpYWw7IH0gI2Zvb3RlciAuZm9vdGVyLXRpdGxlIHsgZm9udC1zaXplOnZhcigtLWZzNCk7IGNvbG9yOnZhcigtLWZvb3Rlci1saW5rLXRpdGxlLWNvbCwgdmFyKC0td2hpdGUpKTsgfSAuRU5HTElTSCAjZm9vdGVyIC5mb290ZXItdGl0bGUgeyB0ZXh0LXRyYW5zZm9ybTpjYXBpdGFsaXplOyB9ICNmb290ZXIgPiAuZmxleC1ib3ggPiAuZm9vdGVyLWxvZ29fX2NvbnRhaW5lciB7IG1hcmdpbi10b3A6MDsgbWFyZ2luLXJpZ2h0OnZhcigtLXM1KTsgfSAjZm9vdGVyID4gLmZsZXgtYm94ID4gLmZvb3Rlci1sb2dvX19jb250YWluZXIgaW1nIHsgbWF4LXdpZHRoOjEwMCU7IG1heC1oZWlnaHQ6MTUwcHg7IH0gLnNvY2lhbC1tZWRpYS1pY29ucyB7IGRpc3BsYXk6ZmxleDsgZmxleC1kaXJlY3Rpb246cm93OyBqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmQ7IHRleHQtYWxpZ246cmlnaHQ7IH0gLmRlYWxlci1hbGlnbi1sZWZ0IC5zb2NpYWwtbWVkaWEtaWNvbnMgeyB0ZXh0LWFsaWduOmxlZnQ7IGp1c3RpZnktY29udGVudDpmbGV4LXN0YXJ0OyB9IC5zb2NpYWwtbWVkaWEtaWNvbnMgLnNvY2lhbC1pY29ucyB7IHdpZHRoIDphdXRvOyBoZWlnaHQ6YXV0bzsgbWFyZ2luOjAgNHB4OyB9ICNmb290ZXIgYS5zb2NpYWwtbGluayA+IHN2ZyB7IGhlaWdodDoyMnB4OyBtYXJnaW4tbGVmdDozcHg7IH0gaGVhZGVyIC5oZWFkZXItc29jaWFsICNzb2NpYWxfbWVkaWFfaWNvbnNfZGl2ID4gYSA+IHN2ZyB7IGhlaWdodDoyMXB4OyBtYXJnaW4tdG9wOjRweDsgfSAuc29jaWFsLW1lZGlhLWljb25zIC5zb2NpYWwtaWNvbnMgLmZhYiB7IG1hcmdpbi10b3A6MDsgZm9udC1zaXplIDoxLjllbTsgY29sb3IgOnZhcigtLWZvb3Rlci1saW5rLXRpdGxlLWNvbCk7IH0gLmRpdlNwYW4uZGl2U3BhbjMgPiAuZm9vdGVyLWxvZ29fX2NvbnRhaW5lciB7IG1hcmdpbi10b3A6MXJlbTsgdGV4dC1hbGlnbjpyaWdodDsgfSAuZGVhbGVyLWFsaWduLWxlZnQgLmZvb3Rlci1sb2dvX19jb250YWluZXIgeyB0ZXh0LWFsaWduOmxlZnQ7IH0gLmRpdlNwYW4uZGl2U3BhbjMgPiAuZm9vdGVyLWxvZ29fX2NvbnRhaW5lciBpbWcgeyBtYXgtd2lkdGg6MTgwcHg7IG1heC1oZWlnaHQ6MTAwcHg7IH0gQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOjEwMjRweCkgeyAuaGVhZGVyLXNlY3Rpb24gLnBob25lLnBob25lX2xlZnQgeyBwYWRkaW5nLWxlZnQ6MTBweDsgfSAjZm9vdGVyIHsgcGFkZGluZy1sZWZ0OjEwcHg7IHBhZGRpbmctcmlnaHQ6MTBweDsgfSB9IEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDo5OTlweCkgeyAjTWFpbk1lbnVfU0VBUkNIX0JBUiB7IGRpc3BsYXk6bm9uZTsgfSAudXBfbWVudSB1bC5uYXYgPiBsaS5maXJzdE1lbnUgeyBwYWRkaW5nLWxlZnQ6MTBweDsgfSAudXBfbWVudSB1bC5uYXYgPiBsaTpudGgtb2YtdHlwZSgyKSB7IHBhZGRpbmctcmlnaHQ6MTBweDsgfSAudXBfbWVudSB1bC5uYXYgPiBsaTpudGgtb2YtdHlwZSgyKSA+IHVsLnN1YiB7IHJpZ2h0OjEwcHg7IH0gLmxhbmd1YWdlQmFyIGRpdjpmaXJzdC1vZi10eXBlIHsgbWFyZ2luLXJpZ2h0OjEwcHg7IH0gLm1lbnU3IC5maW5hbmNlLW1lbnUtZnJlZWNyZWRpdC5jZW50ZXIgeyByaWdodDotMTYwcHggIWltcG9ydGFudDsgbGVmdDphdXRvOyB9IC5tZW51OCAuZmluYW5jZS1tZW51LWZyZWVjcmVkaXQuY2VudGVyIHsgcmlnaHQ6LTE2MHB4ICFpbXBvcnRhbnQ7IGxlZnQ6YXV0bzsgfSAubWVudTUgLmZpbmFuY2UtbWVudS1mcmVlY3JlZGl0LmNlbnRlciB7IHJpZ2h0Oi0zMDBweCAhaW1wb3J0YW50OyBsZWZ0OmF1dG87IH0gfSAuZGl2U3Bhbi5wYWdlbm8geyBtYXJnaW4tbGVmdDowOyB9IC5kaXZTcGFuLnBhZ2VubyB1bCBsaSBzcGFuLCAuZGl2U3Bhbi5wYWdlbm8gdWwgbGkgYS5mdGl0bGUgeyBmb250LXNpemU6MC45MzhyZW0gOyBtYXgtd2lkdGg6MjI1cHg7IH0gLmRpdlNwYW4ucGFnZW5vIHVsIGxpIGEgeyBmb250LXNpemU6MC44NzVyZW0gOyB9IC5hZHIgeyBsaW5lLWhlaWdodDoxLjJyZW07IG1hcmdpbjowLjVyZW0gMDsgfSAjZm9vdGVyLmRlYWxlci1wb3NpdGlvbi1sZWZ0IC5mb290ZXItdGl0bGVfX2NvbnRhaW5lciB7IG1hcmdpbi1ib3R0b206MnJlbTsgfSAjZm9vdGVyLmRlYWxlci1wb3NpdGlvbi1sZWZ0IC5kaXZTcGFuMyB7IGZsb2F0OmxlZnQ7IG1hcmdpbi10b3A6MTVweDsgcGFkZGluZy1yaWdodDozMHB4OyB0ZXh0LWFsaWduOmxlZnQ7IH0gI2Zvb3Rlci5kZWFsZXItcG9zaXRpb24tbGVmdCAuZGl2U3BhbjkgeyBmbG9hdDpyaWdodDsgfSAjZm9vdGVyLmRlYWxlci1wb3NpdGlvbi1sZWZ0IC5zb2NpYWwtc2hhcmluZyB7IGZsb2F0OnVuc2V0OyBjbGVhcjp1bnNldDsgbWFyZ2luOjA7IH0gI2Zvb3Rlci5kZWFsZXItcG9zaXRpb24tbGVmdCAuc29jaWFsIHsgZmxvYXQ6bGVmdDsgfSAjZm9vdGVyLmRlYWxlci1wb3NpdGlvbi1yaWdodC5kZWFsZXItYWxpZ24tbGVmdCAuc29jaWFsLXNoYXJpbmcgeyB3aWR0aDoyNSU7IGZsb2F0OmxlZnQ7IHBhZGRpbmctbGVmdDo3NSU7IH0gI2Zvb3Rlci5kZWFsZXItcG9zaXRpb24tcmlnaHQuZGVhbGVyLWFsaWduLWxlZnQgLnNvY2lhbCB7IGZsb2F0OmxlZnQ7IG1hcmdpbi1sZWZ0OjFyZW07IH0gI2Zvb3Rlci5kZWFsZXItcG9zaXRpb24tcmlnaHQuZGVhbGVyLWFsaWduLWxlZnQgLnNvY2lhbDpmaXJzdC1jaGlsZCB7IG1hcmdpbjowOyBwYWRkaW5nOjA7IH0gI2Zvb3RlciAuaWNvbi10ZXh0eyBtYXJnaW4tYm90dG9tOi40cmVtOyB9ICNmb290ZXIgLmljb24tdGV4dCBzcGFueyB3aWR0aDoyMHB4OyBwYWRkaW5nOjAgIWltcG9ydGFudDsgfSAjZm9vdGVyIC5mbi5vcmcgeyBsaW5lLWhlaWdodDoyLjA2MjVyZW07IH0gLnNtYWxscGljX2JveHt3aWR0aDozMjlweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IG1hcmdpbjowO30gLnNtYWxscGljNDN7d2lkdGg6NDNweDsgaGVpZ2h0OjMxcHg7IGZsb2F0OmxlZnQ7IG1hcmdpbjowIDVweCAwIDA7IGJvcmRlcjoycHggc29saWQgI0ZGRkZGRjt9IC5kZXRhaWxze3dpZHRoOjgxcHg7IGhlaWdodDozMHB4OyBkaXNwbGF5OmJsb2NrOyB9IGEuZGV0YWlsc3t3aWR0aDo4MXB4OyBoZWlnaHQ6MzBweDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9kZXRhaWxzLnBuZykgbGVmdCB0b3Agbm8tcmVwZWF0O30gYTpob3Zlci5kZXRhaWxze3dpZHRoOjgxcHg7IGhlaWdodDozMHB4OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2RldGFpbHMucG5nKSBsZWZ0IC0zMnB4IG5vLXJlcGVhdDt9IC5iaWdfcGljYm94e21pbi1oZWlnaHQ6MTEwcHg7d2lkdGg6MTQ2cHg7fSAuYmlnX3BpY2JveCBpbWd7IGRpc3BsYXk6YmxvY2s7IH0gLnBpY2JveF92aWRlb2J0bl9lbiwgLnBpY2JveF92aWRlb2J0bl9mciB7ZGlzcGxheTpibG9jaztoZWlnaHQ6NDVweDt9IC5waWNib3hfdmlkZW9idG5fZW4ge2JhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL3ZpZGVvLWJ0bi10aHVtYl9lbi5wbmcnKSBuby1yZXBlYXQgc2Nyb2xsIDAgMCAvIDEwMCUgYXV0byB0cmFuc3BhcmVudDt9IC5waWNib3hfdmlkZW9idG5fZnIge2JhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL3ZpZGVvLWJ0bi10aHVtYl9mci5wbmcnKSBuby1yZXBlYXQgc2Nyb2xsIDAgMCAvIDEwMCUgYXV0byB0cmFuc3BhcmVudDt9IC5waWNib3hfdmlkZW9idG5fZW46aG92ZXIge2JhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL3ZpZGVvLWJ0bi10aHVtYl9lbl9ob3Zlci5wbmcnKSBuby1yZXBlYXQgc2Nyb2xsIDAgMCAvIDEwMCUgYXV0byB0cmFuc3BhcmVudDt9IC5waWNib3hfdmlkZW9idG5fZnI6aG92ZXIge2JhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL3ZpZGVvLWJ0bi10aHVtYl9mcl9ob3Zlci5wbmcnKSBuby1yZXBlYXQgc2Nyb2xsIDAgMCAvIDEwMCUgYXV0byB0cmFuc3BhcmVudDt9IC5iaWdfcGljYm94X3dyYXBwZXIgeyB3aWR0aDoxNDZweDsgZmxvYXQ6bGVmdDsgbWFyZ2luOjAgMTBweCAwcHggMjFweDsgfSAudGV4dF90aXRsZSBheyBkaXNwbGF5OmJsb2NrO3RleHQtZGVjb3JhdGlvbjpub25lOyB3aWR0aDozMjlweDsgaGVpZ2h0OmF1dG87IG1hcmdpbjowOyBwYWRkaW5nLWJvdHRvbTo1cHg7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiM0MTQxNDE7IGZvbnQtd2VpZ2h0OmJvbGQ7fSAudGV4dF90aXRsZTJ7d2lkdGg6MzI5cHg7IGhlaWdodDozMnB4OyBmbG9hdDpsZWZ0OyBtYXJnaW46MCA7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiM0MTQxNDE7fSAuc29sZF9jYXJfbm90ZXtiYWNrZ3JvdW5kLWNvbG9yOiMxRTFFMUU7IGJvcmRlci1yYWRpdXM6NXB4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6NXB4OyBjb2xvcjojRkZGOyB3aWR0aDoxMDAlOyBwYWRkaW5nOjEwcHggMDsgdGV4dC1hbGlnbjpjZW50ZXI7IG1hcmdpbi10b3A6MTVweDt9IC5zb2xkX2Nhcl9ub3RlIGEge2NvbG9yOiNGRkY7fSAuc29sZF9jYXJfbm90ZSBhOmhvdmVyIHtjb2xvcjojQkJCO30gLnRleHRfdGl0bGUze3dpZHRoOjMyOXB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgbWFyZ2luOjAgOyBwYWRkaW5nLWJvdHRvbTo3cHg7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiM0ODQ4NDg7fSAudGV4dF9ib3gye3dpZHRoOjMyOXB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgbWFyZ2luOjAgMHB4IDBweCAwcHg7IH0gLm1haW5fcGljYm94e3dpZHRoOjY3MXB4OyBtaW4taGVpZ2h0OjE3MHB4OyBmbG9hdDpsZWZ0OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2xpbmUucG5nKSBsZWZ0IGJvdHRvbSByZXBlYXQteDsgYmFja2dyb3VuZC1wb3NpdGlvbjpib3R0b207IHBhZGRpbmc6MDsgbWFyZ2luOjAgO30gLmJveDJfZGV0YWlsc19mb290ZXIye3dpZHRoOjY4MXB4OyBoZWlnaHQ6MTVweDsgZmxvYXQ6bGVmdDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9ib3hfZm9vdGVyLnBuZykgbGVmdCB0b3Agbm8tcmVwZWF0O30gLmJveDJfZGV0YWlsc19taWRFeHt3aWR0aDoxMDAlOyBoZWlnaHQ6YXV0bzsgYmFja2dyb3VuZDpub25lOyBwYWRkaW5nOjAgMHB4O2hlaWdodDo4NXB4O30gLmJveDJfZGV0YWlsc190ZXh0IHNwYW57IHRleHQtYWxpZ246Y2VudGVyOyBmb250LXNpemU6MS4xMjVyZW0gOyBjb2xvcjojRkZGRkZGOyBmb250LXdlaWdodDpib2xkO30gLmJveDJfZGV0YWlsc19mb290ZXIyMnt3aWR0aDo5NzFweDsgaGVpZ2h0OjE1cHg7IGZsb2F0OmxlZnQ7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvYm94X2Zvb3Rlci5wbmcpIGxlZnQgdG9wIG5vLXJlcGVhdDtiYWNrZ3JvdW5kLXNpemU6OTcxcHggYXV0bzt9IC5ib3gxNzB7cG9zaXRpb246cmVsYXRpdmU7d2lkdGg6NjcxcHg7IG1pbi1oZWlnaHQ6MTcwcHg7IGZsb2F0OmxlZnQ7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvbGluZS5wbmcpIGxlZnQgYm90dG9tIG5vLXJlcGVhdDsgYmFja2dyb3VuZC1wb3NpdGlvbjpib3R0b207IHBhZGRpbmc6MDsgbWFyZ2luOjAgMHB4IDEwcHggMDt9IC5jdXN0b21Cb3hCYXNpY3sgd2lkdGg6MjQxcHg7IGhlaWdodDoxMTZweDsgZmxvYXQ6bGVmdDsgcGFkZGluZzo1cHggMCAwIDA7IGJhY2tncm91bmQtcG9zaXRpb246bGVmdCB0b3A7IGJhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDsgYmFja2dyb3VuZC1zaXplOjI0MXB4IDEyMXB4OyBmb250LXNpemU6MS4xODhyZW0gOyBjb2xvcjojMTkxOTE5OyB0ZXh0LWFsaWduOmNlbnRlcjsgZm9udC13ZWlnaHQ6bm9ybWFsOyBjdXJzb3I6cG9pbnRlcjsgfSAuY3VzdG9tQm94QmFzaWM6aG92ZXJ7IGNvbG9yOiNmZmY7IH0gLmN1c3RvbTUgeyBiYWNrZ3JvdW5kLWltYWdlOnVybCgvaW1hZ2VzL2JveDIyX2hvdmVyLnBuZyk7IH0gLmN1c3RvbTU1IHsgYmFja2dyb3VuZC1pbWFnZTp1cmwoL2ltYWdlcy9ib3gyMi5wbmcpOyB9IC5jdXN0b202NjUgeyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2JveDIzX2hvdmVyLnBuZyk7IH0gLmN1c3RvbTY2NTUgeyBiYWNrZ3JvdW5kLWltYWdlOnVybCgvaW1hZ2VzL2JveDIzLnBuZyk7IH0gLmN1c3RvbTY3NSB7IGJhY2tncm91bmQtaW1hZ2U6dXJsKC9pbWFnZXMvYm94MjcucG5nKTsgfSAuY3VzdG9tNjc1NSB7IGJhY2tncm91bmQtaW1hZ2U6dXJsKC9pbWFnZXMvYm94MjdfaG92ZXIucG5nKTsgfSAuY3VzdG9tNjg1IHsgYmFja2dyb3VuZC1pbWFnZTp1cmwoL2ltYWdlcy9ib3gyOC5wbmcpOyB9IC5jdXN0b202ODU1IHsgYmFja2dyb3VuZC1pbWFnZTp1cmwoL2ltYWdlcy9ib3gyOF9ob3Zlci5wbmcpOyB9IC5pbWFnZV9yaWJib24geyBwb3NpdGlvbjphYnNvbHV0ZTsgbGVmdDotNXB4OyB0b3A6LTRweDsgei1pbmRleDoxOyBvdmVyZmxvdzpoaWRkZW47IHdpZHRoOjExMnB4OyBoZWlnaHQ6MTEycHg7IHRleHQtYWxpZ246cmlnaHQ7IH0gLmltYWdlX3JpYmJvbiBzcGFuIHsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6I2ZmZmZmZjsgdGV4dC1hbGlnbjpjZW50ZXI7IGxpbmUtaGVpZ2h0OjI4cHg7IHRyYW5zZm9ybTpyb3RhdGUoLTQ1ZGVnKTsgLXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKC00NWRlZyk7IHdpZHRoOjE0OHB4OyBkaXNwbGF5OmJsb2NrOyBiYWNrZ3JvdW5kOiMwMjc2YjM7IGJveC1zaGFkb3c6MCAzcHggMTBweCAtNXB4IHJnYmEoMCwgMCwgMCwgMSk7IHBvc2l0aW9uOmFic29sdXRlOyB0b3A6MzBweDsgbGVmdDotMzBweDsgfSAuaW1hZ2VfcmliYm9uIHNwYW46OmJlZm9yZSB7IGNvbnRlbnQ6IiI7IHBvc2l0aW9uOmFic29sdXRlOyBsZWZ0OjBweDsgdG9wOjEwMCU7IHotaW5kZXg6LTE7IGJvcmRlci1sZWZ0OjNweCBzb2xpZCAjMDI3NmIzOyBib3JkZXItcmlnaHQ6M3B4IHNvbGlkIHRyYW5zcGFyZW50OyBib3JkZXItYm90dG9tOjNweCBzb2xpZCB0cmFuc3BhcmVudDsgYm9yZGVyLXRvcDozcHggc29saWQgIzAyNzZiMzsgfSAuaW1hZ2VfcmliYm9uIHNwYW46OmFmdGVyIHsgY29udGVudDoiIjsgcG9zaXRpb246YWJzb2x1dGU7IHJpZ2h0OjBweDsgdG9wOjEwMCU7IHotaW5kZXg6LTE7IGJvcmRlci1sZWZ0OjNweCBzb2xpZCB0cmFuc3BhcmVudDsgYm9yZGVyLXJpZ2h0OjNweCBzb2xpZCAjMDI3NmIzOyBib3JkZXItYm90dG9tOjNweCBzb2xpZCB0cmFuc3BhcmVudDsgYm9yZGVyLXRvcDozcHggc29saWQgIzAyNzZiMzsgfSAuaW1hZ2VfcmliYm9uX3ZkcCB7IHBvc2l0aW9uOmFic29sdXRlOyBsZWZ0Oi01cHg7IHRvcDotNnB4OyBvdmVyZmxvdzpoaWRkZW47IHdpZHRoOjE5NHB4OyBoZWlnaHQ6MTk0cHg7IHRleHQtYWxpZ246cmlnaHQ7IHotaW5kZXg6NDA7IH0gLmltYWdlX3JpYmJvbl92ZHAgc3BhbiB7IGZvbnQtc2l6ZToxLjA2M3JlbSA7IGNvbG9yOiNmZmZmZmY7IHRleHQtYWxpZ246Y2VudGVyOyBsaW5lLWhlaWdodDozNnB4OyB0cmFuc2Zvcm06cm90YXRlKC00NWRlZyk7IC13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgtNDVkZWcpOyB3aWR0aDoyNzNweDsgZGlzcGxheTpibG9jazsgYmFja2dyb3VuZDojMDI3NmIzOyBib3gtc2hhZG93OjAgM3B4IDEwcHggLTVweCByZ2JhKDAsIDAsIDAsIDEpOyBwb3NpdGlvbjphYnNvbHV0ZTsgdG9wOjY3cHg7IGxlZnQ6LTUxcHg7IH0gLmltYWdlX3JpYmJvbl92ZHAgc3Bhbjo6YmVmb3JlIHsgY29udGVudDoiIjsgcG9zaXRpb246YWJzb2x1dGU7IGxlZnQ6MHB4OyB0b3A6MTAwJTsgei1pbmRleDotMTsgYm9yZGVyLWxlZnQ6M3B4IHNvbGlkICNmM2YzZjM7OyBib3JkZXItcmlnaHQ6M3B4IHNvbGlkIHRyYW5zcGFyZW50OyBib3JkZXItYm90dG9tOjNweCBzb2xpZCB0cmFuc3BhcmVudDsgYm9yZGVyLXRvcDozcHggc29saWQgI2YzZjNmMzs7IH0gLmltYWdlX3JpYmJvbl92ZHAgc3Bhbjo6YWZ0ZXIgeyBjb250ZW50OiIiOyBwb3NpdGlvbjphYnNvbHV0ZTsgcmlnaHQ6MHB4OyB0b3A6MTAwJTsgei1pbmRleDotMTsgYm9yZGVyLWxlZnQ6M3B4IHNvbGlkIHRyYW5zcGFyZW50OyBib3JkZXItcmlnaHQ6M3B4IHNvbGlkICNmM2YzZjM7OyBib3JkZXItYm90dG9tOjNweCBzb2xpZCB0cmFuc3BhcmVudDsgYm9yZGVyLXRvcDozcHggc29saWQgI2YzZjNmMzs7IH0gLnJpYmJvbi1jb250YWluZXIgeyB3aWR0aCA6MzAwcHg7IGhlaWdodCA6MzAwcHg7IG92ZXJmbG93IDpoaWRkZW47IHBvc2l0aW9uIDphYnNvbHV0ZTsgdG9wIDowOyBsZWZ0IDowOyB9IC5yaWJib24tY29udGFpbmVyIC5jb3JuZXItcmliYm9uIHsgei1pbmRleCA6NTU1OyBtYXJnaW4gOjA7IHBhZGRpbmcgOjAuNXJlbSAwICFpbXBvcnRhbnQ7IGJveC1zaGFkb3cgOjAgM3B4IDEwcHggLTVweCByZ2JhKDAsIDAsIDAsIDEpOyBmb250LXNpemUgOjE3cHg7IGxpbmUtaGVpZ2h0IDoyM3B4OyB0ZXh0LWFsaWduIDpjZW50ZXI7IHBvc2l0aW9uIDphYnNvbHV0ZTsgdG9wIDowOyBsZWZ0IDowOyB0cmFuc2Zvcm0gOnRyYW5zbGF0ZVgoLTMwJSkgdHJhbnNsYXRlWSgwJSkgcm90YXRlKC00NWRlZyk7IHRyYW5zZm9ybS1vcmlnaW4gOnRvcCByaWdodDsgYmFja2dyb3VuZCA6I2RlMDAwMDsgY29sb3IgOiNmZmZmZmY7IH0gLnJpYmJvbi1jb250YWluZXIgLmNvcm5lci1yaWJib246YmVmb3JlLCAucmliYm9uLWNvbnRhaW5lciAuY29ybmVyLXJpYmJvbjphZnRlciB7IGNvbnRlbnQgOiIiOyBwb3NpdGlvbiA6YWJzb2x1dGU7IHRvcCA6MDsgbWFyZ2luIDowIC0xcHg7IHdpZHRoIDoxMDAlOyBoZWlnaHQgOjEwMCU7IGJhY2tncm91bmQgOiNkZTAwMDA7IH0gLnJpYmJvbi1jb250YWluZXIgLmNvcm5lci1yaWJib246YmVmb3JlIHsgbGVmdDoxMDAlOyB9IC5yaWJib24tY29udGFpbmVyIC5jb3JuZXItcmliYm9uOmFmdGVyIHsgcmlnaHQ6MTAwJTsgfSAuc2VhcmNocmlnaHQgeyB3aWR0aDoyODBweDsgaGVpZ2h0OjExNnB4OyBwYWRkaW5nOjVweCAwIDAgMDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9yaWdodC1zZWFyY2gtYm94LnBuZykgbGVmdCB0b3AgcmVwZWF0LXg7IGZvbnQtc2l6ZToxLjE4OHJlbSA7IGNvbG9yOiMxOTE5MTk7IHRleHQtYWxpZ246Y2VudGVyOyBmb250LXdlaWdodDpub3JtYWw7Y3Vyc29yOnBvaW50ZXI7IH0gLnNlYXJjaHJpZ2h0aG92ZXIgeyB3aWR0aDoyODBweDsgaGVpZ2h0OjExNnB4OyBwYWRkaW5nOjVweCAwIDAgMDsgbWFyZ2luOjAgMCAwIDA7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvcmlnaHQtc2VhcmNoLWJveC1ob3Zlci5wbmcpIGxlZnQgdG9wIHJlcGVhdC14OyBmb250LXNpemU6MS4xODhyZW0gOyBjb2xvcjojRkZGRkZGOyB0ZXh0LWFsaWduOmNlbnRlcjsgZm9udC13ZWlnaHQ6bm9ybWFsOyBjdXJzb3I6cG9pbnRlcjsgfSAuc2VhcmNocmlnaHRYWFggeyB3aWR0aDoyODBweDsgaGVpZ2h0OjExNnB4OyBwYWRkaW5nOjVweCAwIDAgMDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9yaWdodC1zZWFyY2gtYm94LnBuZykgbGVmdCB0b3Agbm8tcmVwZWF0IHJnYigyNDMsMjQzLDI0Myk7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiNGRkZGRkY7IHRleHQtYWxpZ246Y2VudGVyOyBmb250LXdlaWdodDpib2xkO2N1cnNvcjpwb2ludGVyOyBib3JkZXItcmFkaXVzOjhweDsgLW1vei1ib3JkZXItcmFkaXVzOjhweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjhweDsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IC5zZWFyY2hyaWdodGhvdmVyWFhYIHsgd2lkdGg6MjgwcHg7IGhlaWdodDoxMTZweDsgcGFkZGluZzo1cHggMCAwIDA7IG1hcmdpbjowIDAgMCAwOyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL3JpZ2h0LXNlYXJjaC1ib3gtaG92ZXIucG5nKSBsZWZ0IHRvcCBuby1yZXBlYXQgcmdiKDI0MywyNDMsMjQzKTsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6I0ZGRkZGRjsgdGV4dC1hbGlnbjpjZW50ZXI7IGZvbnQtd2VpZ2h0OmJvbGQ7IGN1cnNvcjpwb2ludGVyOyBib3JkZXItcmFkaXVzOjhweDsgLW1vei1ib3JkZXItcmFkaXVzOjhweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjhweDsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IC5zZWFyY2hyaWdodC10ZXh0eyBtYXJnaW4tbGVmdDoxMDBweDsgdGV4dC1hbGlnbjpsZWZ0OyB3aWR0aDo2MCU7IH0gLnNlYXJjaHJpZ2h0LXRleHQgcHsgbWFyZ2luOjE1cHggMCAwOyB9IC5wYWdlbm8ye2hlaWdodDoyNHB4OyB9IC5wYWdlbm8yIHVseyBsaXN0LXN0eWxlLXR5cGU6bm9uZTsgbWFyZ2luOjA7IHBhZGRpbmc6MDsgdGV4dC10cmFuc2Zvcm06bm9uZTsgfSAucGFnZW5vMiB1bCBsaXsgbGlzdC1zdHlsZS10eXBlOm5vbmU7IG1hcmdpbjowOyBkaXNwbGF5OmlubGluZTt9IC5wYWdlbm8yIHVsIGxpIGF7IGxpc3Qtc3R5bGUtdHlwZTpub25lOyBtYXJnaW46MDsgZGlzcGxheTpibG9jazsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzMyMzIzMjsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHBhZGRpbmc6MCA3cHg7IG1hcmdpbi1yaWdodDoycHg7IGZvbnQtd2VpZ2h0OmJvbGQ7IGxpbmUtaGVpZ2h0OjI0cHg7IHRleHQtdHJhbnNmb3JtOm5vbmU7IHRleHQtYWxpZ246Y2VudGVyOyB0ZXh0LXRyYW5zZm9ybTpub25lOyBiYWNrZ3JvdW5kOiNiM2I0YjU7IGZsb2F0OmxlZnQ7IC1tb3otYm9yZGVyLXJhZGl1czo0cHg7IC13ZWJraXQtYm9yZGVyLXJhZGl1czo0cHg7IGJvcmRlci1yYWRpdXM6NHB4OyAta2h0bWwtYm9yZGVyLXJhZGl1czo0cHg7fSAucGFnZW5vMiB1bCBsaSBhOmhvdmVyeyBsaXN0LXN0eWxlLXR5cGU6bm9uZTsgbWFyZ2luOjA7IGRpc3BsYXk6YmxvY2s7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiNGRkZGRkY7IHRleHQtZGVjb3JhdGlvbjpub25lOyBwYWRkaW5nOjAgN3B4OyBtYXJnaW4tcmlnaHQ6MnB4OyBmb250LXdlaWdodDpib2xkOyBsaW5lLWhlaWdodDoyNHB4OyB0ZXh0LXRyYW5zZm9ybTpub25lOyB0ZXh0LWFsaWduOmNlbnRlcjsgdGV4dC10cmFuc2Zvcm06bm9uZTsgYmFja2dyb3VuZDojMjgyODI4OyBmbG9hdDpsZWZ0OyAtbW96LWJvcmRlci1yYWRpdXM6NHB4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6NHB4OyBib3JkZXItcmFkaXVzOjRweDsgLWtodG1sLWJvcmRlci1yYWRpdXM6NHB4O30gLnBhZ2VubzIgbGkgYS5hY3RpdmV7IGxpc3Qtc3R5bGUtdHlwZTpub25lOyBtYXJnaW46MDsgZGlzcGxheTpibG9jazsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6I0ZGRkZGRjsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHBhZGRpbmc6MCA3cHg7IG1hcmdpbi1yaWdodDoycHg7IGZvbnQtd2VpZ2h0OmJvbGQ7IGxpbmUtaGVpZ2h0OjI0cHg7IHRleHQtdHJhbnNmb3JtOm5vbmU7IHRleHQtYWxpZ246Y2VudGVyOyB0ZXh0LXRyYW5zZm9ybTpub25lOyBiYWNrZ3JvdW5kOiMyODI4Mjg7IGZsb2F0OmxlZnQ7IC1tb3otYm9yZGVyLXJhZGl1czo0cHg7IC13ZWJraXQtYm9yZGVyLXJhZGl1czo0cHg7IGJvcmRlci1yYWRpdXM6NHB4OyAta2h0bWwtYm9yZGVyLXJhZGl1czo0cHg7fSAubWFpbl9ib3h7d2lkdGg6OTYwcHg7IG1hcmdpbjowIGF1dG87fSAubWFpbl9sZWZ0X2JveHt3aWR0aDo2NzBweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7cGFkZGluZy1yaWdodDoxMHB4O30gLm1haW5fbGVmdF9ib3ggdWx7cGFkZGluZzowcHg7fSAuYm94X21pZF9yb3VuZCB7IGJhY2tncm91bmQtY29sb3I6cmdiKDI1NSwyNTUsMjU1KTsgLW1zLWZpbHRlcjpwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuQWxwaGEoT3BhY2l0eT0xMDApOyBiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsMSk7IGJvcmRlci1yYWRpdXM6NXB4OyBib3gtc2hhZG93Om5vbmU7IGZsb2F0OmxlZnQ7IGhlaWdodDphdXRvOyBtYXJnaW4tdG9wOjEwcHg7IH0gLmJveF90b3Bfcm91bmQgeyBkaXNwbGF5Om5vbmU7IH0gLmJveDJfZGV0YWlsc19mb290ZXIyIHsgZGlzcGxheTpub25lOyB9IC5kZXRhaWxzX2JveCBpbWcudmlweyBtYXJnaW4tdG9wOi00OHB4OyB3aWR0aDoxNDBweDsgYm9yZGVyOjFweDsgYm9yZGVyLXJhZGl1czo0cHg7IH0gLmJveF90b3Bfcm91bmQye3dpZHRoOjk3MXB4OyBoZWlnaHQ6MTVweDsgZmxvYXQ6bGVmdDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9ib3hfdG9wLnBuZykgbGVmdCB0b3Agbm8tcmVwZWF0O2JhY2tncm91bmQtc2l6ZTo5NzFweCBhdXRvOyBtYXJnaW4tdG9wOjVweDt9IC5ib3hfbWlkX3JvdW5kMnt3aWR0aDo5NzFweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvYm94X21pZC5wbmcpIGxlZnQgdG9wIHJlcGVhdC15O2JhY2tncm91bmQtc2l6ZTo5NzFweCBhdXRvOyBwYWRkaW5nOjAgNXB4O30gLnBhZ2VfbmFtZXt3aWR0aDo2NTBweDsgaGVpZ2h0OjMwcHg7IGZsb2F0OmxlZnQ7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvc2hvLnBuZykgY2VudGVyIGJvdHRvbSBuby1yZXBlYXQ7IGJhY2tncm91bmQtcG9zaXRpb246Ym90dG9tOyBwYWRkaW5nOjAgMHB4IDBweCAyMXB4OyBsaW5lLWhlaWdodDozMHB4OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojNDE0MTQxO30gLnBhZ2VfbmFtZSBheyBsaW5lLWhlaWdodDozMHB4OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojNDE0MTQxOyB0ZXh0LXRyYW5zZm9ybTpub25lOyB0ZXh0LWRlY29yYXRpb246bm9uZTt9IC5wYWdlX25hbWUgYTpob3ZlcnsgbGluZS1oZWlnaHQ6MzBweDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzAwNTg5YzsgdGV4dC10cmFuc2Zvcm06bm9uZTsgdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTt9IHRhYmxlLnZlaGljbGVMaXN0VGFibGUgYXtkaXNwbGF5OnRhYmxlLWNlbGw7IHZlcnRpY2FsLWFsaWduOm1pZGRsZTtsaW5lLWhlaWdodDoxLjI7fSB0YWJsZS52ZWhpY2xlTGlzdFRhYmxlIGE6aG92ZXJ7ZGlzcGxheTp0YWJsZS1jZWxsOyB2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7bGluZS1oZWlnaHQ6MS4yO30gLlBvcnNjaGUye3dpZHRoOjEwMCU7aGVpZ2h0OjMxcHg7IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MCAwcHggMjBweCAyMXB4OyBtYXJnaW46MTVweCAwIDI1cHggMDsgbGluZS1oZWlnaHQ6MzFweDsgZm9udC1zaXplOjEuODc1cmVtIDsgY29sb3I6IzQxNDE0MTtkaXNwbGF5OmlubGluZX0gLlBvcnNjaGUyIGgxe2ZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zaXplOjEuODc1cmVtIDsgY29sb3I6IzQxNDE0MTt9IC5UcmllcnBhcnsgZm9udC1zaXplOjAuNzVyZW0gOyBjb2xvcjojNUI2OTlDOyBmb250LXdlaWdodDpub3JtYWw7cGFkZGluZy1sZWZ0OjVweDt9IC5zZWxlY3RlZF9ib3gye3dpZHRoOjE3NXB4OyBoZWlnaHQ6MzFweDsgZmxvYXQ6bGVmdDsgcGFkZGluZzowIDBweCAwcHggMHB4OyBtYXJnaW46MTVweCAwOyBsaW5lLWhlaWdodDozMXB4OyBmb250LXNpemU6MS44NzVyZW0gOyBjb2xvcjojNDE0MTQxO30gLnNlbGVjdGVkX29yZGVyYnl7d2lkdGg6MTM1cHg7IGZsb2F0OnJpZ2h0OyBwYWRkaW5nOjAgMHB4IDBweCAwcHg7IG1hcmdpbjoxMHB4IDEwcHggMHB4IDBweDsgZm9udC1zaXplOjEuODc1cmVtIDsgY29sb3I6IzQxNDE0MTt9IC5wcml4e3dpZHRoOjc5cHg7IGhlaWdodDo3OHB4OyBmbG9hdDpsZWZ0OyBwb3NpdGlvbjphYnNvbHV0ZTsgei1pbmRleDoxMTsgbWFyZ2luLXRvcDotNHB4OyBtYXJnaW4tbGVmdDotNHB4OyB0b3A6MHB4O30gLnBhZ2VubzV7d2lkdGg6MTAwJTsgaGVpZ2h0OjI0cHg7IG1hcmdpbjozMHB4IDAgMjBweCAwcHg7IHBhZGRpbmc6MDsgZmxvYXQ6bGVmdCB9IC5wYWdlbm82e3dpZHRoOjI1NHB4OyBoZWlnaHQ6MjRweDsgZmxvYXQ6bGVmdDsgdGV4dC1hbGlnbjpyaWdodDt9IC5zdWl2YW50e3dpZHRoOjI4MHB4OyBoZWlnaHQ6MTlweDsgZmxvYXQ6bGVmdDsgcGFkZGluZy10b3A6NXB4O30gLm1haW5fcmlnaHRfYm94e3dpZHRoOjI4MHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDt9IC5ib3g3e3dpZHRoOjI5MHB4OyBoZWlnaHQ6MTJweDsgZmxvYXQ6bGVmdDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9sZWZ0X2JveF90b3AucG5nKSBsZWZ0IHRvcCBuby1yZXBlYXQ7IH0gLmJveDdMaW5re3dpZHRoOjI5MHB4OyBoZWlnaHQ6MTJweDsgZmxvYXQ6bGVmdDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9sZWZ0X2JveF90b3AucG5nKSBsZWZ0IHRvcCBuby1yZXBlYXQ7IH0gLmJveDdfbWlke3dpZHRoOjI4MHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9sZWZ0X2JveF9taWQucG5nKSBsZWZ0IHRvcCByZXBlYXQteTsgcGFkZGluZzowIDJweDt9IC5ib3g3X21pZF9mdWxse3dpZHRoOjk1NnB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgYmFja2dyb3VuZDpub25lIGxlZnQgdG9wIG5vLXJlcGVhdCAwIDAgdHJhbnNwYXJlbnQ7IHBhZGRpbmc6MCAycHggMTVweDsgYm9yZGVyLWJvdHRvbToxcHggc29saWQgI0JCQjt9IC5zaW11bGFyX3ZfYm94eyB3aWR0aDoyNjVweDsgcGFkZGluZzowcHggMHB4IDVweCAxMHB4OyBtYXJnaW4tYm90dG9tOjVweDsgfSAuYm94U2VhcmNoTmV3c3ttYXJnaW4tdG9wOi0zcHg7bWFyZ2luLWxlZnQ6LTVweDt3aWR0aDoyODVweDsgaGVpZ2h0OjEycHg7IGZsb2F0OmxlZnQ7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvbGVmdF9ib3hfdG9wXzI4MC5wbmcpIGxlZnQgdG9wIG5vLXJlcGVhdDt9IC5ib3hTZWFyY2hOZXdzX21pZHttYXJnaW4tbGVmdDotNXB4O3BhZGRpbmc6MHB4O3dpZHRoOjI4MXB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9sZWZ0X2JveF9taWRfMjgwLnBuZykgbGVmdCB0b3AgcmVwZWF0LXk7IH0gLmJveFNlYXJjaE5ld3NfZm9vdGVyMTV7bWFyZ2luLWxlZnQ6LTVweDt3aWR0aDoyODVweDsgaGVpZ2h0OjEycHg7IGZsb2F0OmxlZnQ7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvbGVmdF9ib3hfZm9vdGVyXzI4MC5wbmcpIGxlZnQgdG9wIG5vLXJlcGVhdDt9IC5ib3g3SF9taWR7d2lkdGg6MjgwcHg7IGZsb2F0OmxlZnQ7IHBhZGRpbmctYm90dG9tOjZweDt9IC5SZWNoZXJjaGUyMntoZWlnaHQ6MjBweDsgcGFkZGluZzoxMHB4IDdweDsgZm9udC1zaXplOjEuMTI1cmVtIDsgY29sb3I6IzAwMDAwMDt9IC5zaW1UaXRsZXtoZWlnaHQ6YXV0bzsgcGFkZGluZzowcHg7IGZvbnQtc2l6ZToxLjEyNXJlbSA7IGNvbG9yOiMwZjFhMWU7fSAuYm94OHt3aWR0aDoyNzBweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MHB4IDBweCAwcHggMTBweDt9IC5ib3g5e3dpZHRoOjIwcHg7IGhlaWdodDoxOHB4OyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjBweCAwcHggMTRweCAwcHg7IGZvbnQtc2l6ZToxLjEyNXJlbSA7IGNvbG9yOiMwZjFhMWU7fSAuYm94MTF7d2lkdGg6MTAwcHg7IGhlaWdodDoxMXB4OyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjdweCAwcHggMTRweCAwcHg7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IGNvbG9yOiM1NzU3NTc7IGxpbmUtaGVpZ2h0OjE4cHg7fSAuYm94MTJ7d2lkdGg6MTMwcHg7IGhlaWdodDoxMXB4OyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjdweCAwcHggMTRweCAwcHg7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IGNvbG9yOiM1NzU3NTc7IGxpbmUtaGVpZ2h0OjE4cHg7fSAuc2VsZWN0X2JveDE0e2hlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjBweCAxMHB4IDBweCAwcHg7IG1hcmdpbi1ib3R0b206M3B4O30gLnNlbGVjdF9ib3gxNntoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgcGFkZGluZzowcHggMTBweCAwcHggMTBweDsgbWFyZ2luLWJvdHRvbTozcHg7fSAuc2VsZWN0X2JveDE1e2hlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjEwcHggMTBweCAwcHggMTBweDsgbWFyZ2luLWJvdHRvbToxMHB4O30gLnNlbGVjdF9ib3gxMTV7d2lkdGg6MTE1cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjBweCAwcHggMHB4IDEwcHg7IG1hcmdpbi1ib3R0b206MTBweDt9IC5zZWxlY3RfYm94ODB7d2lkdGg6ODBweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MHB4IDBweCAwcHggMHB4OyBtYXJnaW4tYm90dG9tOjEwcHg7fSAuYV90ZXh0e3dpZHRoOjIwcHg7IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IGNvbG9yOiM1NzU3NTc7IGxpbmUtaGVpZ2h0OjMxcHg7IHRleHQtYWxpZ246Y2VudGVyOyBwYWRkaW5nOjAgNXB4O30gLmFqb3V0ZXJ7d2lkdGg6MTAwJTsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MTBweCAwOyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojRkZGRkZGOyBiYWNrZ3JvdW5kLWNvbG9yOiMxZjFmMWY7bWFyZ2luOjVweCAwIDEwcHggMHB4O30gLmFqb3V0ZXJfYXtiYWNrZ3JvdW5kOnVybCgiL2ltYWdlcy9zZWFyY2gtZG93bi1hcnJvdy5wbmciKSBuby1yZXBlYXQgc2Nyb2xsIGxlZnQgM3B4IHRyYW5zcGFyZW50OyBwYWRkaW5nLWxlZnQ6MjVweDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6I0ZGRkZGRjsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IH0gLmFqb3V0ZXJfYV9mdWxse2JhY2tncm91bmQ6dXJsKCIvaW1hZ2VzL3NlYXJjaC1yaWdodC1hcnJvdy5wbmciKSBuby1yZXBlYXQgc2Nyb2xsIHJpZ2h0IC0xcHggdHJhbnNwYXJlbnQ7IHBhZGRpbmctcmlnaHQ6MjVweDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6I0ZGRkZGRjsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IH0gLmJveDEze3dpZHRoOjI2MHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgcGFkZGluZzowcHggMTBweCAwcHggMTBweDt9IC5pbnB1dF9ib3gye3dpZHRoOjIwcHg7IGhlaWdodDoxOHB4OyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjBweCAwcHggMTRweCAwcHg7IGZvbnQtc2l6ZToxLjEyNXJlbSA7IGNvbG9yOiMwZjFhMWU7fSAuaW5wdXRfdGV4dHsgd2lkdGg6MTk1cHg7IGhlaWdodDoxMXB4OyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjNweCAwcHggN3B4IDVweDsgZm9udC1zaXplOjAuODEzcmVtIDsgY29sb3I6IzU3NTc1NzsgbGluZS1oZWlnaHQ6MThweDsgfSAuYnV0dG9uX2JveDJ7d2lkdGg6MjYwcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyB9IC5idXR0b25fYm94UzJ7IHdpZHRoOjI0NnB4OyBoZWlnaHQ6MjlweDsgZmxvYXQ6bGVmdDsgcGFkZGluZzoxMHB4IDNweCAxM3B4IDNweDsgfSAuYm94LWZvb3RlcjE1e3dpZHRoOjI5MHB4OyBoZWlnaHQ6MTJweDsgZmxvYXQ6bGVmdDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9sZWZ0X2JveF9mb290ZXIucG5nKSBsZWZ0IHRvcCBuby1yZXBlYXQ7fSAuZGlzeyBtYXJnaW4tdG9wOjVweDsgbWFyZ2luLWxlZnQ6NXB4OyB3aWR0aDoyNDBweDt9IC5kaXNfY3VzdG9teyB3aWR0aDoyNDBweDt3aWR0aDoyNDBweDt9IC5kaXNfdG9weyB3aWR0aDoyNDZweDsgaGVpZ2h0OjlweDsgZmxvYXQ6bGVmdDt9IC5kaXNfdG9wX2N1c3RvbXsgd2lkdGg6MjM4cHg7IGhlaWdodDo0MHB4OyBmbG9hdDpsZWZ0OyBjb2xvcjojMDAwMDAwOyBiYWNrZ3JvdW5kOiNjYmNiY2I7fSAuZGlzX2JneyB3aWR0aDoyNDZweDsgaGVpZ2h0OjE1MHB4OyBmbG9hdDpsZWZ0OyBjb2xvcjojMjgyODI4OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2Rpc19iZy5wbmcpIGxlZnQgdG9wIHJlcGVhdC15O30gLl9kaXNfYmd7IHdpZHRoOjI0MHB4OyBoZWlnaHQ6MjAwcHg7IGZsb2F0OmxlZnQ7IGNvbG9yOiMyODI4Mjg7fSAuZGlzX2JnX2N1c3RvbXsgZmxvYXQ6bGVmdDsgY29sb3I6IzI4MjgyODsgYmFja2dyb3VuZDpyZ2JhKDI1NSwyNTUsMjU1LDEpO30gLl9kaXNfYmdfY3VzdG9teyBmbG9hdDpsZWZ0OyBjb2xvcjojMjgyODI4OyBiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsMSk7fSAuZGlzX2JvdXsgd2lkdGg6MjQ2cHg7IGhlaWdodDo1MHB4OyBmbG9hdDpsZWZ0OyBjb2xvcjojMmQyZDJkOyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2Rpc19ib3UucG5nKSBsZWZ0IHRvcCBuby1yZXBlYXQ7fSAuX2Rpc19ib3V7IHdpZHRoOjI0MHB4OyBoZWlnaHQ6MzhweDsgZmxvYXQ6bGVmdDsgYm9yZGVyLXJhZGl1czowIDAgNnB4IDZweDsgbWFyZ2luLXRvcDoxNHB4OyBjb2xvcjojMmQyZDJkOzsgfSAuZGlzX2JvdV9jdXN0b217IHdpZHRoOjIzOHB4OyBoZWlnaHQ6NTBweDsgZmxvYXQ6bGVmdDsgcGFkZGluZy10b3A6NXB4OyBjb2xvcjojMDAwMDAwOyBiYWNrZ3JvdW5kOiNmZmZmZmY7fSAuX2Rpc19ib3VfY3VzdG9teyB3aWR0aDoyNDBweDsgaGVpZ2h0OjQwcHg7IGZsb2F0OmxlZnQ7IGNvbG9yOiMwMDAwMDA7IGJvcmRlci1yYWRpdXM6MCAwIDZweCA2cHg7IG1hcmdpbi10b3A6MTJweDsgYmFja2dyb3VuZC1jb2xvcjojZmZmZmZmOyB9IC5kaXNfYm91XzJ7IHdpZHRoOjI0NnB4OyBoZWlnaHQ6OXB4OyBmbG9hdDpsZWZ0OyBjb2xvcjojMmQyZDJkOyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2Rpc19ib3VfMi5wbmcpIGxlZnQgdG9wIG5vLXJlcGVhdDt9IC5kaXNfdGV4dHsgZm9udC1zaXplOjEuNDM4cmVtIDsgcGFkZGluZzo0cHggMHB4IDBweCAxNXB4O30gLmx1bmRpX3RleHR7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IHBhZGRpbmc6MnB4IDBweCAwcHggMjBweDsgbGluZS1oZWlnaHQ6MTRweDt9IC5sdW5kaV90ZXh0X2hvbWVwYWdlX2gyNDh7Zm9udC1zaXplOjAuODEzcmVtIDsgbGluZS1oZWlnaHQ6MThweDsgcGFkZGluZzoxMHB4IDAgMCAyMHB4OyB9IC5sdW5kaV90ZXh0IHRoe3RleHQtYWxpZ246bGVmdDtmb250LXdlaWdodDpub3JtYWw7d2lkdGg6NjBweDt9IC5sdW5kaV90ZXh0IHRke3RleHQtYWxpZ246bGVmdDt9IC5weyBoZWlnaHQ6MTZweDsgZmxvYXQ6bGVmdDsgcGFkZGluZzo3cHggNXB4IDBweCAxMHB4OyBmb250LXNpemU6MC44MTNyZW0gO30gLmV7IGhlaWdodDoxNnB4OyBmbG9hdDpyaWdodDsgcGFkZGluZzo3cHggMHB4IDBweCAwcHg7IGZvbnQtc2l6ZTowLjg3NXJlbSA7fSAuYm94Mjg4LCAuYm94Mjg4X2N1c3RvbXt3aWR0aDoyODBweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IH0gLl9ib3gyODgsIC5fYm94Mjg4X2N1c3RvbXt3aWR0aDoyODBweDsgZmxvYXQ6bGVmdDsgfSAuYm94Mjg4VXNlZHt3aWR0aDoyODBweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IG1hcmdpbi1sZWZ0OjBweDt9IC5ib3gyODhOZXd7d2lkdGg6MjgwcHg7IGZsb2F0OmxlZnQ7IH0gLmJveDI4OE5ld19jdXN0b217ZmxvYXQ6bGVmdDt9IC5ib3gyODhOZXdRTSwgLmJveDI4OE5ld1FNX21vYmlsZSB7IGJvcmRlci1yYWRpdXM6NXB4OyBiYWNrZ3JvdW5kLWNvbG9yOnJnYigyNTUsMjU1LDI1NSk7IC1tcy1maWx0ZXI6cHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LkFscGhhKE9wYWNpdHk9MTAwKTsgYmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LDEpOyBib3gtc2hhZG93Om5vbmU7IGNsZWFyOmJvdGg7IGZsb2F0OmxlZnQ7IHdpZHRoOjI4MHB4OyBtYXJnaW4tYm90dG9tOjVweDsgfSAuYm94Mjg4TmV3UU1fbW9iaWxlIHsgd2lkdGg6MTAwJTsgfSAuYm94Mjg4TmV3UU1fbW9iaWxlIC5SZWNoZXJjaGUyMiB7IHRleHQtYWxpZ246Y2VudGVyOyB9IC5ib3gyODhOZXdRTV9tb2JpbGUgdGFibGUgeyB3aWR0aDoxMDAlOyB9IC5ib3gyODhOZXdRTV9tb2JpbGUgLmpxVHJhbnNmb3JtSW5wdXRXcmFwcGVyIHsgd2lkdGg6MTAwJSFpbXBvcnRhbnQ7IH0gLmJveDI4OE5ld1FNX21vYmlsZSAuanFUcmFuc2Zvcm1JbnB1dFdyYXBwZXIgaW5wdXQgeyB3aWR0aDo5NSUhaW1wb3J0YW50OyB9IC5ib3gyODhRTXsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IG1hcmdpbi10b3A6NXB4OyBmb250LXNpemU6MC44NzVyZW0gO2ZvbnQtd2VpZ2h0Om5vcm1hbDt9IC5ib3gyODhRTV9jdXN0b217d2lkdGg6Mjc4cHg7bWFyZ2luOjVweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IG92ZXJmbG93OmhpZGRlbjtib3JkZXItcmFkaXVzOjZweDtib3gtc2hhZG93OjAgMCA0cHggIzMzMzt9IC50ZXh0QXJlYVFNeyBmb250LXNpemU6MC44MTNyZW0gO2xpbmUtaGVpZ2h0OjE1cHg7fSAuYm94Mjg4X3RvcHt3aWR0aDoyODhweDsgaGVpZ2h0OjE0cHg7IGZsb2F0OmxlZnQ7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvcmlnaHRfYm94NF90b3AucG5nKSBsZWZ0IHRvcCBuby1yZXBlYXQ7IG1hcmdpbi10b3A6MHB4O30gLmJveDI4OF90b3BfY3VzdG9te3dpZHRoOjI3OHB4OyBoZWlnaHQ6NDBweDsgZmxvYXQ6bGVmdDsgY29sb3I6IzAwMDAwMDsgYmFja2dyb3VuZDojY2JjYmNiO30gLl9ib3gyODhRTXsgd2lkdGg6MjgwcHg7IH0gLl9ib3gyODhfdG9we30gLl9ib3gyODhfdG9wX2N1c3RvbXsgaGVpZ2h0OjQwcHg7IGZsb2F0OmxlZnQ7IFdpZHRoOjEwMCU7IGNvbG9yOiMwMDAwMDA7IGJhY2tncm91bmQ6I2ZmZmZmZjsgYm9yZGVyLXJhZGl1czo2cHggNnB4IDAgMDsgfSAuX2JveDI4ODBfbWlke30gLl9ib3gyODgwX21pZF9jdXN0b217YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LDEpO30gLmJveDI4OF9taWR7IGJveC1zaGFkb3c6MCAwIDVweCAjMzMzMzMzOyBib3JkZXItcmFkaXVzOjVweDsgbWFyZ2luLXRvcDo1cHg7IG1hcmdpbi1sZWZ0OjVweDsgZmxvYXQ6bGVmdDsgY29sb3I6IzI4MjgyODsgYmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LDEpOyB9IC5ib3gyODhfbWlkX2N1c3RvbXsgYm94LXNoYWRvdzowIDAgNXB4ICMzMzMzMzM7IGJvcmRlci1yYWRpdXM6NXB4OyBtYXJnaW4tdG9wOjVweDsgbWFyZ2luLWxlZnQ6NXB4OyBmbG9hdDpsZWZ0OyBjb2xvcjojMjgyODI4OyBiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsMSk7fSAuYm94Mjg4MF9taWR7d2lkdGg6MjU4cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBjb2xvcjojMjgyODI4OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL3JpZ2h0X2JveDRfbWlkLnBuZykgbGVmdCB0b3AgcmVwZWF0LXk7IHBhZGRpbmc6MCAxNXB4IDBweCAxNXB4O30gLmJveDI4ODBfbWlkX2N1c3RvbXt3aWR0aDoyMjhweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IHBhZGRpbmc6NXB4IDI1cHg7IGNvbG9yOiMyODI4Mjg7IGJhY2tncm91bmQ6cmdiYSgyNTUsMjU1LDI1NSwxKTt9IC5ib3gyNjlfbWlke3dpZHRoOjI1OHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9yaWdodF9ib3g0X21pZC5wbmcpIGxlZnQgdG9wIHJlcGVhdC15OyBwYWRkaW5nOjAgMTVweCAwcHggMTVweDt9IC56b29tMjJ7d2lkdGg6MjU4cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyB0ZXh0LWFsaWduOmNlbnRlcjt9IC5zZWFyY2hfcmlnaHQge2JhY2tncm91bmQ6dXJsKC9pbWFnZXMvc2VhcmNoLnBuZykgMCAwIG5vLXJlcGVhdDsgd2lkdGg6Mjc4cHg7IGhlaWdodDoxMTFweDsgZGlzcGxheTpibG9jazsgbWFyZ2luOjVweCA1cHggNXB4IDVweH0gLkRlbWFuZGUyMnt3aWR0aDoyNzhweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IHRleHQtYWxpZ246Y2VudGVyOyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojOWEwMTAxOyBsaW5lLWhlaWdodDoyNnB4OyBtYXJnaW4tdG9wOjY3cHg7fSAuRGVtYW5kZTIyIGF7IHRleHQtYWxpZ246Y2VudGVyOyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojOWEwMTAxOyBsaW5lLWhlaWdodDoyMHB4IDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7fSAuRGVtYW5kZTIyIGE6aG92ZXJ7IHRleHQtYWxpZ246Y2VudGVyOyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojOWEwMTAxOyB0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lO30gLkRlbWFuZGUyMiBzcGFuIGF7IHRleHQtYWxpZ246Y2VudGVyOyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojMjkyOTI5OyBsaW5lLWhlaWdodDoyMHB4IDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7fSAuRGVtYW5kZTIyIHNwYW4gYTpob3ZlcnsgdGV4dC1hbGlnbjpjZW50ZXI7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMyOTI5Mjk7IHRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7fSAuYm94Mjg4X2Zvb3Rlcnt3aWR0aDoyODhweDsgaGVpZ2h0OjE0cHg7IGZsb2F0OmxlZnQ7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvcmlnaHRfYm94NF9mb290ZXIucG5nKSBsZWZ0IHRvcCBuby1yZXBlYXQ7fSAuYm94Mjg4X2Zvb3Rlcl9xc3t3aWR0aDoyODhweDsgaGVpZ2h0OjExcHg7IGZsb2F0OmxlZnQ7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvcmlnaHRfYm94NF9mb290ZXIucG5nKSBsZWZ0IHRvcCBuby1yZXBlYXQ7fSAuYm94Mjg4X2Zvb3Rlcl9xc3t3aWR0aDoyODhweDsgaGVpZ2h0OjExcHg7IGZsb2F0OmxlZnQ7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvcmlnaHRfYm94NF9mb290ZXIucG5nKSBsZWZ0IHRvcCBuby1yZXBlYXQ7fSAuYm94Mjg4X2Zvb3RlcjU1eyB3aWR0aDoyODBweDsgaGVpZ2h0OjUwcHg7IGZsb2F0OmxlZnQ7IGNvbG9yOiMyZDJkMmQ7IGJhY2tncm91bmQtY29sb3I6I0NCQ0JDQjsgYm9yZGVyLXJhZGl1czowIDAgNnB4IDZweDsgfSAuYm94Mjg4X2Zvb3RlcjU1X2N1c3RvbXsgd2lkdGg6MjgwcHg7IGhlaWdodDozNXB4OyBwYWRkaW5nLXRvcDo1cHg7IGZsb2F0OmxlZnQ7IGNvbG9yOiMwMDAwMDA7IGJhY2tncm91bmQtY29sb3I6I2ZmZmZmZjsgYm9yZGVyLXJhZGl1czowIDAgNnB4IDZweDsgfSAucCBhe3RleHQtZGVjb3JhdGlvbjpub25lO30gLmdhcDEwe3dpZHRoOjIzMHB4OyBoZWlnaHQ6MTBweDsgZmxvYXQ6bGVmdDt9IC5wYWdlX25hbWUye3dpZHRoOjY1MHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgcGFkZGluZzowIDAgMjBweCAwOyBsaW5lLWhlaWdodDozMHB4OyBmb250LXNpemU6MS42MjVyZW0gOyBjb2xvcjojMDAwMDAwO2ZvbnQtd2VpZ2h0Om5vcm1hbH0gLnBhZ2VfbmFtZTN7IHdpZHRoOjEwMCU7Ym94LXNpemluZzpib3JkZXItYm94OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgcGFkZGluZzowcHggMTBweCAxMHB4IDEwcHg7IGxpbmUtaGVpZ2h0OjMwcHg7IGZvbnQtc2l6ZToxLjVyZW0gOyBjb2xvcjojMjQyNDI0O30gLnBhZ2VfbmFtZTMgaDF7IGZvbnQtc2l6ZToxLjg3NXJlbSA7IGNvbG9yOiMyNDI0MjQ7Zm9udC13ZWlnaHQ6bm9ybWFsfSAucGFnZV9uYW1lNHt3aWR0aDo2NTBweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvc2hvLnBuZykgY2VudGVyIGJvdHRvbSBuby1yZXBlYXQ7IGJhY2tncm91bmQtcG9zaXRpb246Ym90dG9tOyBwYWRkaW5nOjAgMHB4IDEwcHggMjFweDsgbGluZS1oZWlnaHQ6MzBweDsgZm9udC1zaXplOjEuMTI1cmVtIDsgY29sb3I6IzAxNEY4MDt9IC5wYWdlX25hbWU0IGgyeyBmb250LXNpemU6MS41cmVtIDsgY29sb3I6cmdiKDI0MywyNDMsMjQzKTtmb250LXdlaWdodDpub3JtYWx9IC5wYWdlX25hbWU1e3dpZHRoOjEwMCU7aGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvc2hvLnBuZykgY2VudGVyIGJvdHRvbSBuby1yZXBlYXQ7IGJhY2tncm91bmQtcG9zaXRpb246Ym90dG9tOyBwYWRkaW5nOjAgMHB4IDEwcHggMDsgbWFyZ2luLWJvdHRvbToxNXB4OyBsaW5lLWhlaWdodDozMHB4OyBmb250LXNpemU6MS41cmVtIDsgY29sb3I6IzI0MjQyNDtmb250LXdlaWdodDpub3JtYWwgfSAjc2VhcmNoQ29udGFpbmVyUGFyZW50IC5wYWdlX25hbWU1Om5vdCg6Zmlyc3QtY2hpbGQpIHsgbWFyZ2luLXRvcDozMHB4OyB9IC5ib3gyX3RleHR7aGVpZ2h0OmF1dG87IHdpZHRoOjEwMCU7IGZsb2F0OmxlZnQ7IGxpbmUtaGVpZ2h0OjE4cHg7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMyNDI0MjQ7IH0gLmJveDJfdGV4dCBweyBsaW5lLWhlaWdodDoxOHB4OyBmb250LXNpemU6MC44NzVyZW0gO2NvbG9yOiMwMDAwMDA7IG1hcmdpbi1ib3R0b206MjBweDt9IC5wb3NpdGl2ZVJhdGluZ1R4dCBwe2ZvbnQtc2l6ZToxcmVtIDt9IC5wb3NpdGl2ZVJhdGluZ1R4dCBoMywgLnBvc2l0aXZlUmF0aW5nVHh0IGg0e2ZvbnQtd2VpZ2h0Om5vcm1hbDt9IC5wb3NpdGl2ZVJhdGluZ1R4dCAuYnRuLWRlZmF1bHR7dGV4dC10cmFuc2Zvcm06bm9uZTt9IC5wb3NpdGl2ZVJhdGluZ1R4dCAuYnRuLWRlZmF1bHR7Zm9udC1zaXplOjEuMjVyZW0gO30gLmV0YXBle3dpZHRoOmF1dG87IGhlaWdodDo0NnB4OyBmbG9hdDpsZWZ0OyBtYXJnaW4tcmlnaHQ6MjBweDt9IC50ZXh0MXt3aWR0aDphdXRvOyBoZWlnaHQ6NDZweDsgZmxvYXQ6bGVmdDsgcGFkZGluZzowIDBweCAwcHggMHB4O30gLnRleHQxIGF7d2lkdGg6YXV0bzsgaGVpZ2h0OjQ2cHg7IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MCAwcHggMHB4IDBweDsgbGluZS1oZWlnaHQ6NDZweDsgdGV4dC1hbGlnbjpsZWZ0OyBmb250LXNpemU6MS44NzVyZW0gOyBjb2xvcjojNDM0MzQzOyBmb250LXdlaWdodDpib2xkOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgdGV4dC1zaGFkb3c6MXB4IDFweCAxcHggI2YzZjNmMzsgfSAudGV4dDEgYTpob3Zlcnt3aWR0aDphdXRvOyBoZWlnaHQ6NDZweDsgZmxvYXQ6bGVmdDsgcGFkZGluZzowIDBweCAwcHggMHB4OyBsaW5lLWhlaWdodDo0NnB4OyB0ZXh0LWFsaWduOmxlZnQ7IGZvbnQtc2l6ZToxLjg3NXJlbSA7IGNvbG9yOiM0MzQzNDM7IGZvbnQtd2VpZ2h0OmJvbGQ7IHRleHQtZGVjb3JhdGlvbjpub25lOyB0ZXh0LXNoYWRvdzoxcHggMXB4IDFweCAjZjNmM2YzOyB9IC50ZXh0MSBhLmFjdGl2ZXt3aWR0aDphdXRvOyBoZWlnaHQ6NDZweDsgZmxvYXQ6bGVmdDsgcGFkZGluZzowIDBweCAwcHggMHB4OyBsaW5lLWhlaWdodDo0NnB4OyB0ZXh0LWFsaWduOmxlZnQ7IGZvbnQtc2l6ZToxLjg3NXJlbSA7IGNvbG9yOiM0MzQzNDM7IGZvbnQtd2VpZ2h0OmJvbGQ7IHRleHQtZGVjb3JhdGlvbjpub25lOyB0ZXh0LXNoYWRvdzoxcHggMXB4IDFweCAjZjNmM2YzOyB9IC5vbmUxe3dpZHRoOjQ2cHg7IGhlaWdodDo0NnB4OyBmbG9hdDpyaWdodDsgbWFyZ2luLWxlZnQ6MTBweDt9IC5vbmUxIGF7d2lkdGg6NDZweDsgaGVpZ2h0OjQ2cHg7IGZsb2F0OmxlZnQ7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvMV9yb3VuZC5wbmcpIGxlZnQgdG9wIG5vLXJlcGVhdDsgZm9udC1zaXplOjIuMjVyZW0gOyBmb250LXdlaWdodDpib2xkOyBjb2xvcjojRkZGRkZGOyBsaW5lLWhlaWdodDo0NnB4OyB0ZXh0LWFsaWduOmNlbnRlcjsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7fSAub25lMSBhOmhvdmVye3dpZHRoOjQ2cHg7IGhlaWdodDo0NnB4OyBmbG9hdDpsZWZ0OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzLzFfaG92ZXIucG5nKSBsZWZ0IHRvcCBuby1yZXBlYXQ7IGZvbnQtc2l6ZToyLjI1cmVtIDsgY29sb3I6IzAwMDAwMDsgbGluZS1oZWlnaHQ6NDZweDsgZm9udC13ZWlnaHQ6Ym9sZDsgdGV4dC1hbGlnbjpjZW50ZXI7IHRleHQtZGVjb3JhdGlvbjpub25lO30gLm9uZTEgYS5hY3RpdmV7d2lkdGg6NDZweDsgaGVpZ2h0OjQ2cHg7IGZsb2F0OmxlZnQ7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvMV9ob3Zlci5wbmcpIGxlZnQgdG9wIG5vLXJlcGVhdDsgZm9udC1zaXplOjIuMjVyZW0gOyBjb2xvcjojMDAwMDAwOyBsaW5lLWhlaWdodDo0NnB4OyBmb250LXdlaWdodDpib2xkOyB0ZXh0LWFsaWduOmNlbnRlcjsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7fSAuc2VsZWN0aW9ubmV6e3dpZHRoOmF1dG87IGhlaWdodDphdXRvIDsgZmxvYXQ6bGVmdDsgcGFkZGluZy1yaWdodDo1cHg7IHBhZGRpbmctbGVmdDozcHg7IHBhZGRpbmctdG9wOjRweDsgZm9udC1zaXplOjAuODEzcmVtIDsgY29sb3I6IzFhMWExYTsgbGluZS1oZWlnaHQ6MjJweDsgZm9udC13ZWlnaHQ6Ym9sZDsgdGV4dC1hbGlnbjpsZWZ0OyB0ZXh0LWRlY29yYXRpb246bm9uZTt9IC5mb3Jtc19ib3gyMntib3gtc2l6aW5nOmJvcmRlci1ib3g7IHdpZHRoOjEwMCU7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBtYXJnaW46MCAwIDEwcHggMDsgfSAud2l0aF9ib3JkZXIgeyBib3JkZXI6MXB4IHNvbGlkICNkNGQ0ZDQ7IC1tb3otYm9yZGVyLXJhZGl1czo4cHg7IC13ZWJraXQtYm9yZGVyLXJhZGl1czo4cHg7IC1raHRtbC1ib3JkZXItcmFkaXVzOjhweDsgcGFkZGluZzowIDE2cHg7IH0gLlByZW5vbXt3aWR0aDoyNzlweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMyNDI0MjQgOyBwYWRkaW5nOjhweCAwIDEwcHggMDt9IC5QcmVub20gc3BhbnsgZm9udC1zaXplOjEuMzc1cmVtIDsgY29sb3I6I2ZmMDEwMTt9IC5QcmVub20ye3dpZHRoOjMyMXB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzI0MjQyNCA7IHBhZGRpbmc6OHB4IDAgMTBweCAwO30gLlByZW5vbTIgc3BhbnsgZm9udC1zaXplOjEuMzc1cmVtIDsgY29sb3I6I2ZmMDEwMTt9IC5QcmVub20ze3dpZHRoOjI3OXB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzI0MjQyNCA7IHBhZGRpbmc6MHB4IDAgMTBweCAwO30gLlByZW5vbTR7d2lkdGg6MzIxcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojMjQyNDI0IDsgcGFkZGluZzowcHggMCAxMHB4IDA7fSAuUHJlbm9tNXt3aWR0aDoyNzlweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMyNDI0MjQgOyBwYWRkaW5nOnB4IDAgMTBweCAwO30gLlByZW5vbTZ7d2lkdGg6MjE0cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojMjQyNDI0IDsgcGFkZGluZzowcHggMCAxMHB4IDA7fSAuUHJlbm9tN3t3aWR0aDoxMDdweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMyNDI0MjQgOyBwYWRkaW5nOjBweCAwIDEwcHggMDt9IC5QcmVub204e3dpZHRoOjI3OXB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgcGFkZGluZzpweCAwIDEwcHggMDsgZGlzcGxheTpibG9ja30gLlByZW5vbTl7d2lkdGg6MjE0cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjBweCAwIDEwcHggMDtkaXNwbGF5OmJsb2NrfSAuUHJlbm9tMTB7d2lkdGg6MTA3cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjBweCAwIDEwcHggMDtkaXNwbGF5OmJsb2NrfSAudGV4dDE1e3dpZHRoOjI4NXB4OyBmb250LXNpemU6MC44MTNyZW0gOyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgY29sb3I6IzI0MjQyNCA7IHBhZGRpbmc6MHB4IDAgM3B4IDA7fSAudGV4dDE2e3dpZHRoOjE3MnB4OyBmb250LXNpemU6MC44MTNyZW0gOyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgY29sb3I6IzI0MjQyNCA7IHBhZGRpbmc6MHB4IDAgM3B4IDA7fSAudGV4dDE3e3dpZHRoOjExMnB4OyBmb250LXNpemU6MC44MTNyZW0gOyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgY29sb3I6IzI0MjQyNCA7IHBhZGRpbmc6MHB4IDAgM3B4IDA7fSAudGV4dDE4e3dpZHRoOjI4NXB4OyBmb250LXNpemU6MC44MTNyZW0gOyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgY29sb3I6IzI0MjQyNCA7IHBhZGRpbmc6OHB4IDAgM3B4IDA7fSAudGV4dDE1IHNwYW57IGZvbnQtc2l6ZToxLjM3NXJlbSA7IGNvbG9yOiNmZjAxMDE7fSAuYnV0dG9uNXt3aWR0aDoyODVweDsgbWFyZ2luLWJvdHRvbTozMHB4OyBtYXJnaW4tdG9wOjcwcHg7IGZsb2F0OmxlZnQ7IG1hcmdpbi1yaWdodDo1cHg7IHRleHQtYWxpZ246cmlnaHQ7IH0gLmJveF9kYXRle3dpZHRoOjE2N3B4OyBtYXJnaW4tYm90dG9tOjEwcHg7IGZsb2F0OmxlZnQ7IHBhZGRpbmctdG9wOjFweDsgbWFyZ2luLXJpZ2h0OjVweDt9IC5ib3hfZGF0ZTJ7d2lkdGg6MTA3cHg7IG1hcmdpbi1ib3R0b206MTBweDsgZmxvYXQ6bGVmdDsgbWFyZ2luLXJpZ2h0OjVweDsgcGFkZGluZy10b3A6MHB4O30gLmJveF9kYXRlM3t3aWR0aDo4MHB4OyBtYXJnaW4tYm90dG9tOjEwcHg7IGZsb2F0OmxlZnQ7IG1hcmdpbi1yaWdodDo1cHg7fSBzcGFuLmFzdGt7IGNvbG9yOiNGRjAxMDE7Zm9udC1zaXplOjAuNjg4cmVtIDtmbG9hdDpsZWZ0O3BhZGRpbmctcmlnaHQ6M3B4OyB9IC5ib3g2MXt3aWR0aDoyODBweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IG1hcmdpbi10b3A6MTBweDsgZGlzcGxheTpibG9jazsgY2xlYXI6Ym90aDsgfSAuYm94NjE2Nnt3aWR0aDoyODBweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IG1hcmdpbi10b3A6MTBweDsgfSAuUG9saXRpcXVle3dpZHRoOmF1dG87IG1hcmdpbi1ib3R0b206MTBweDsgZmxvYXQ6bGVmdDsgbWFyZ2luLXJpZ2h0OjVweDsgcGFkZGluZzowIDJweCAwcHggMnB4OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojMGQ1OWFmOyBsaW5lLWhlaWdodDoyMnB4OyB9IC5Qb2xpdGlxdWUgYXsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzBkNTlhZjsgbGluZS1oZWlnaHQ6MjRweDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IGJvcmRlci1ib3R0b206MnB4IHNvbGlkICM2YjkxYmQ7IHRleHQtZGVjb3JhdGlvbjpub25lOyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2xpbmUzLnBuZykgYm90dG9tIGxlZnQgcmVwZWF0LXg7IGJhY2tncm91bmQtcG9zaXRpb246Ym90dG9tO30gLlBvbGl0aXF1ZSBhOmhvdmVyeyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojMjQyNDI0OyBsaW5lLWhlaWdodDoyNHB4OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2xpbmU0LnBuZykgYm90dG9tIGxlZnQgcmVwZWF0LXg7IGJhY2tncm91bmQtcG9zaXRpb246Ym90dG9tOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgYm9yZGVyLWJvdHRvbToycHggc29saWQgIzI0MjQyNDt9IC50ZXh0MTU1e3dpZHRoOjI4NXB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODEzcmVtIDsgY29sb3I6IzI0MjQyNCA7IHBhZGRpbmc6MHB4IDAgM3B4IDA7fSAudGV4dDE1NWNoa3toZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODEzcmVtIDsgY29sb3I6IzI0MjQyNCA7IHBhZGRpbmc6MHB4IDEwcHggMTBweCAxNXB4O3RleHQtYWxpZ246bGVmdDt9IC5WZXVpbGxlent3aWR0aDo2MTdweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MTdweCAwOyBmb250LXNpemU6MS4zNzVyZW0gOyBjb2xvcjojMDAwMDAwO2ZvbnQtd2VpZ2h0Om5vcm1hbH0gLlZldWlsbGV6IHNwYW57dGV4dC1hbGlnbjpsZWZ0OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojMjQyNDI0OyBsaW5lLWhlaWdodDoyMnB4O30gLlZldWlsbGV6IHNwYW4gYXsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzI0MjQyNDsgZmxvYXQ6cmlnaHQ7IGxpbmUtaGVpZ2h0OjIycHg7IHRleHQtZGVjb3JhdGlvbjpub25lOyBib3JkZXItYm90dG9tOjJweCBzb2xpZCAjMjQyNDI0OyBkaXNwbGF5OmJsb2NrfSAuVmV1aWxsZXogc3BhbiBhOmhvdmVyeyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojMDA0NDZmOyBmbG9hdDpyaWdodDsgbGluZS1oZWlnaHQ6MjJweDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IGJvcmRlci1ib3R0b206MnB4IHNvbGlkICMwMDQ0NmY7IGRpc3BsYXk6YmxvY2s7fSAuSHlwb3RoZXF1ZXt3aWR0aDoxOTVweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IGNvbG9yOiMyNDI0MjQgOyBwYWRkaW5nOjA7IGxpbmUtaGVpZ2h0OjUwcHg7fSAuSHlwb3RoZXF1ZTIye3dpZHRoOjIyNHB4OyBtYXJnaW4tYm90dG9tOjEwcHg7IGZsb2F0OmxlZnQ7fSAuSHlwb3RoZXF1ZTMze3dpZHRoOjUwcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44MTNyZW0gOyBjb2xvcjojMjQyNDI0IDsgcGFkZGluZzowcHggMCAxMHB4IDA7IGxpbmUtaGVpZ2h0OjM1cHg7fSAuY2l2aXF1ZXt3aWR0aDoxMzBweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IGNvbG9yOiMyNDI0MjQgOyBwYWRkaW5nOjBweCAwIDNweCAwO30gLlJ1ZXt3aWR0aDoyOTBweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IGNvbG9yOiMyNDI0MjQgOyBwYWRkaW5nOjBweCAwIDNweCAwO30gLkFwcHt3aWR0aDoxODBweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IGNvbG9yOiMyNDI0MjQgOyBwYWRkaW5nOjBweCAwIDNweCAwO30gLmZvcm1zMTAwe3dpZHRoOjEzMHB4OyBtYXJnaW4tYm90dG9tOjEwcHg7IGZsb2F0OmxlZnQ7fSAuZm9ybXMxMDF7d2lkdGg6MjkwcHg7IG1hcmdpbi1ib3R0b206MTBweDsgZmxvYXQ6bGVmdDt9IC5mb3JtczEwMnt3aWR0aDoxODBweDsgbWFyZ2luLWJvdHRvbToxMHB4OyBmbG9hdDpsZWZ0O30gLlZpbGxleyB3aWR0aDoyNzBweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IGNvbG9yOiMyNDI0MjQgOyBwYWRkaW5nOjBweCAwIDEzcHggMDt9IC5Qcm92aW5jZXsgd2lkdGg6MTUwcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44MTNyZW0gOyBjb2xvcjojMjQyNDI0IDsgcGFkZGluZzowcHggMCAxM3B4IDA7fSAuQ29kZXsgd2lkdGg6MTYwcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44MTNyZW0gOyBjb2xvcjojMjQyNDI0IDsgcGFkZGluZzowcHggMCAxM3B4IDA7fSAuZm9ybXMxMDN7IHdpZHRoOjEwMCU7IG1hcmdpbi10b3A6MHB4OyB9IC5mb3JtczEwNHsgd2lkdGg6MTAwJTsgbWFyZ2luLXRvcDowcHg7IH0gLmZvcm1zMTA1eyB3aWR0aDoxMDAlOyBtYXJnaW4tdG9wOjBweDsgfSAuZm9ybXMxMDZ7IHdpZHRoOjEwMCU7IG1hcmdpbi1ib3R0b206MTBweDsgZmxvYXQ6bGVmdH0gLlR5cGV7d2lkdGg6MjAwcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44MTNyZW0gOyBjb2xvcjojMjQyNDI0IDsgcGFkZGluZzowcHggMCAzcHggMDt9IC5ib3g2MDB7d2lkdGg6NjAwcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBwYWRkaW5nLWxlZnQ6MHB4OyBwYWRkaW5nLWJvdHRvbToyMHB4OyBtYXJnaW4tcmlnaHQ6MHB4O30gLkRlbWFuZGU1NXttYXJnaW46MTVweCAwOyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2QucG5nKSAxMHB4IHRvcCBuby1yZXBlYXQ7IHBhZGRpbmc6MCAwIDAgNjJweDsgbGluZS1oZWlnaHQ6NDBweDsgZm9udC1zaXplOjEuMTI1cmVtIDsgY29sb3I6IzE5MTkxOTsgZm9udC13ZWlnaHQ6Ym9sZDt9IC5EZW1hbmRlNjZ7bWFyZ2luOjE1cHggMDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9jYWwyLnBuZykgMTBweCB0b3Agbm8tcmVwZWF0OyBwYWRkaW5nOjAgMCAwIDYycHg7IGxpbmUtaGVpZ2h0OjIwcHg7IGZvbnQtc2l6ZToxLjEyNXJlbSA7IGNvbG9yOiMxOTE5MTk7IGZvbnQtd2VpZ2h0OmJvbGQ7fSAuRGVtYW5kZTc3e21hcmdpbjoxNXB4IDA7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvbS5wbmcpIDEwcHggdG9wIG5vLXJlcGVhdDsgcGFkZGluZzowIDAgMCA2MnB4OyBsaW5lLWhlaWdodDo0MHB4OyBmb250LXNpemU6MS4xMjVyZW0gOyBjb2xvcjojMTkxOTE5OyBmb250LXdlaWdodDpib2xkO30gLkRlbWFuZGU4OHttYXJnaW46MTVweCAwOyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2YucG5nKSAxMHB4IHRvcCBuby1yZXBlYXQ7IHBhZGRpbmc6MCAwIDAgNjJweDsgbGluZS1oZWlnaHQ6MjBweDsgZm9udC1zaXplOjEuMTI1cmVtIDsgY29sb3I6IzE5MTkxOTsgZm9udC13ZWlnaHQ6Ym9sZDt9IC5EZW1hbmRlODg3e21hcmdpbjoxNXB4IDA7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvZi5wbmcpIDEwcHggdG9wIG5vLXJlcGVhdDsgcGFkZGluZzowIDAgMCA2MnB4OyBsaW5lLWhlaWdodDoyMHB4OyBmb250LXNpemU6MS4xMjVyZW0gOyBjb2xvcjojMTkxOTE5OyBmb250LXdlaWdodDpib2xkO30gLmJveDJfdGV4dDJ7d2lkdGg6NjQ4cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjEwcHggMHB4IDE1cHggMjNweDsgbGluZS1oZWlnaHQ6MThweDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzI0MjQyNDt9IC5ib3hfYnJhbmR7d2lkdGg6NjQ4cHg7IGZsb2F0OmxlZnQ7cGFkZGluZzoyMHB4IDBweCAxNXB4IDBweDsgbGluZS1oZWlnaHQ6MThweDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzI0MjQyNDsgfSAuYm94Ml90ZXh0M3t3aWR0aDo2NjFweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MCAwcHggMTBweCAxMHB4OyBtYXJnaW4tdG9wOjE1cHg7IGxpbmUtaGVpZ2h0OjE4cHg7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMyNDI0MjQ7IH0gLmNhcl9ib3h7d2lkdGg6MjA4cHg7IGhlaWdodDoxMzBweDsgZmxvYXQ6bGVmdDsgbWFyZ2luOjAgOHB4IDAgMDsgcGFkZGluZzowOyBib3JkZXI6MDt9IC5jYXJfaW1hZ2Vze3dpZHRoOjIwOHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgbWFyZ2luOjA7IHBhZGRpbmc6MDsgYm9yZGVyOjA7IHRleHQtYWxpZ246Y2VudGVyO30gLmNhcl90ZXh0e3dpZHRoOjIwOHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgbGluZS1oZWlnaHQ6MTBweDsgZm9udC1zaXplOjAuODEzcmVtIDsgZm9udC13ZWlnaHQ6Ym9sZDsgY29sb3I6IzAwMDAwMDsgdGV4dC1hbGlnbjpjZW50ZXJ9IC5jYXJfdGV4dCBhIHt0ZXh0LWRlY29yYXRpb246bm9uZTsgY29sb3I6IzAwMDAwMDsgbGluZS1oZWlnaHQ6MS4xO30gLmNhcl90ZXh0IGE6aG92ZXIgeyB0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lOyBjb2xvcjojMDAwMDAwfSAuY2FyX2JveDJ7IGhlaWdodDphdXRvOyBtYXJnaW46MCAxMHB4IDEwcHggMDsgb3ZlcmZsb3c6aGlkZGVuOyBib3JkZXItcmFkaXVzOjVweDsgLW1vei1ib3JkZXItcmFkaXVzOjVweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjVweDsgYmFja2dyb3VuZC1jb2xvcjojRkZGOyAtbW96LWJveC1zaGFkb3c6MCAwIDEwcHggMXB4IHJnYmEoMCwwLDAsMC4yKTsgLXdlYmtpdC1ib3gtc2hhZG93OjAgMCAxMHB4IDFweCByZ2JhKDAsMCwwLDAuMik7IGJveC1zaGFkb3c6MCAwIDEwcHggMXB4IHJnYmEoMCwwLDAsMC4yKTsgfSAuY2FyX2JveDJfdGF4dHtoZWlnaHQ6YXV0bzsgcGFkZGluZy1ib3R0b206NXB4OyBmb250LXNpemU6MXJlbSA7IGNvbG9yOiMzMDMwMzA7IHRleHQtYWxpZ246bGVmdDsgbGluZS1oZWlnaHQ6MjFweDt9IC5waWNfYm94MnsgYm9yZGVyOjFweCBzb2xpZCAjQUFBOyBiYWNrZ3JvdW5kOiNGRkZGRkY7IGJvcmRlci1yYWRpdXM6M3B4OyAtbW96LWJvcmRlci1yYWRpdXM6M3B4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6M3B4OyB9IC5waWNfYm94MiBpbWcge3dpZHRoOjEwMCU7fSAucHJpbnR7d2lkdGg6MTkycHg7IGhlaWdodDphdXRvOyBtYXJnaW46MDsgcGFkZGluZy10b3A6N3B4O30gLnByaW50IGF7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvcHJpbnQucG5nKSAxMHB4IHRvcCBuby1yZXBlYXQ7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMzMDMwMzA7IHBhZGRpbmctbGVmdDozNXB4OyB0ZXh0LWRlY29yYXRpb246bm9uZTt9IC5wcmludCBhOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL3ByaW50X2hvdmVyLnBuZykgMTBweCB0b3Agbm8tcmVwZWF0OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojMDA0YTc4OyBwYWRkaW5nLWxlZnQ6MzVweDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IH0gLnBhZ2VfbmFtZV9jb257d2lkdGg6ODQwcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjIwcHggMjFweCAxMHB4IDIwcHg7IH0gLmhvbWUye3dpZHRoOjIzMHB4OyBoZWlnaHQ6YXV0bzsgbWFyZ2luLWxlZnQ6MjBweDsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjFyZW0gOyBjb2xvcjojMzczNzM3OyBsaW5lLWhlaWdodDoyNHB4OyB0ZXh0LWRlY29yYXRpb246bm9uZTsgfSAuaG9tZTN7d2lkdGg6NTEwcHg7IGhlaWdodDphdXRvOyBtYXJnaW4tbGVmdDoxMHB4OyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MXJlbSA7IGNvbG9yOiMzNzM3Mzc7IGxpbmUtaGVpZ2h0OjI0cHg7IHRleHQtZGVjb3JhdGlvbjpub25lOyB9IC50ZXh0MjB7d2lkdGg6MzEwcHg7IGhlaWdodDozMnB4OyBmbG9hdDpsZWZ0OyBtYXJnaW4tcmlnaHQ6MTBweDsgbWFyZ2luLWJvdHRvbToxMHB4OyBsaW5lLWhlaWdodDozMnB4OyB0ZXh0LWFsaWduOmxlZnQ7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMwZDBkMGQ7IHRleHQtZGVjb3JhdGlvbjpub25lOyB9IC50ZXh0MjAgc3BhbnsgY29sb3I6I0ZGMDAwMDt9IC5pbnB1dDI1e3dpZHRoOjMxMHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgbWFyZ2luLWJvdHRvbToxMHB4OyB9IC52ZXV4e3dpZHRoOjYwMHB4OyBmbG9hdDpsZWZ0OyBtYXJnaW4tYm90dG9tOjEwcHg7IHBhZGRpbmctdG9wOjVweDsgbGluZS1oZWlnaHQ6MTdweDsgdGV4dC1hbGlnbjpsZWZ0OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojMGQwZDBkOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgbWFyZ2luLWJvdHRvbToxMHB4O30gLk5vc3t3aWR0aDoyNjVweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGJhY2tncm91bmQ6IzAwMDAwMDsgLW1vei1ib3JkZXItcmFkaXVzOjVweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjVweDsgYm9yZGVyLXJhZGl1czo1cHg7IC1raHRtbC1ib3JkZXItcmFkaXVzOjVweDsgcGFkZGluZzoxNXB4IDAgMTVweCAxNXB4OyBtYXJnaW46NXB4IDA7IGZvbnQtc2l6ZToxLjVyZW0gOyBjb2xvcjojRkZGRkZGO30gLmJ1dHRvbl9qb2JvZmZlciB7IGRpc3BsYXk6YmxvY2s7IGxpbmUtaGVpZ2h0OjUwcHg7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2ljb25fZW1wbG95LnBuZycpIG5vLXJlcGVhdCBzY3JvbGwgMHB4IDBweCByZ2IoMjMxLCAyMzIsIDIzMik7IHRleHQtYWxpZ246Y2VudGVyOyBmb250LXdlaWdodDpib2xkOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgcGFkZGluZy1sZWZ0OjQwcHg7IGJvcmRlci1yYWRpdXM6M3B4OyB9IC5idXR0b25fMSwgLmJ1dHRvbl8yLCAuYnV0dG9uXzMgeyBtYXJnaW4tYm90dG9tOjEwcHg7IH0gLmJ1dHRvbl8xIGEsIC5idXR0b25fMiBhLCAuYnV0dG9uXzMgYSB7IGRpc3BsYXk6YmxvY2s7IHdpZHRoOjI0OXB4OyBoZWlnaHQ6MzhweDsgYm9yZGVyLXJhZGl1czozcHg7IGZvbnQtc2l6ZToxLjEyNXJlbSA7IHRleHQtZGVjb3JhdGlvbjpub25lOyB0ZXh0LWFsaWduOmNlbnRlcjsgbGluZS1oZWlnaHQ6MzhweDsgfSAuYnV0dG9uXzEgYSwgLmJ1dHRvbl8yIGEgeyBiYWNrZ3JvdW5kOiNmM2YzZjM7IGNvbG9yOiMxMDJiNGU7IGJvcmRlcjoxcHggc29saWQgIzEwMmI0ZTsgfSAuYnV0dG9uXzEgYTpob3ZlciwgLmJ1dHRvbl8yIGE6aG92ZXJ7IGJhY2tncm91bmQ6IzEwMmI0ZTsgY29sb3I6I2ZmZmZmZjsgYm9yZGVyOjFweCBzb2xpZCAjZmZmZmZmOyB9IC5idXR0b25fMyBheyBiYWNrZ3JvdW5kOiMwMDA7IGNvbG9yOiNGRkY7IGJvcmRlcjoxcHggc29saWQgIzAwMDsgfSAuYnV0dG9uXzMgYTpob3ZlcnsgYmFja2dyb3VuZDojRkZGOyBjb2xvcjojMDAwOyB9IC5mYkNvbm5lY3RCdG4geyBwb3NpdGlvbjpyZWxhdGl2ZTsgYmFja2dyb3VuZC1jb2xvcjojMzA1ODk4OyBjb2xvcjojZmZmOyBib3JkZXItcmFkaXVzOjNweDsgbGluZS1oZWlnaHQ6MzhweDsgbWFyZ2luLWJvdHRvbToxMHB4OyBmb250LXNpemU6MC44NzVyZW0gOyB0ZXh0LWFsaWduOmNlbnRlcjsgfSAjY2hhdC13aWRnZXQtY29udGFpbmVyLCAjbGl2ZV9jaGF0X3N0YXR1cywgI0NoYXREaXYsICNwb2RpdW0tYnViYmxlLCAjamNvbnQsIGpkaXYsICN0c3dfd3JhcHBlciwgLmZiX2RpYWxvZywgLmZiX2lmcmFtZV93aWRnZXQsIC5mYi1jdXN0b21lcmNoYXQsIC5lay1jaGF0LCAubWF0YWRvci1saXZlY2hhdC0xMjM3ODktbWFpbi13cmFwcGVyLCAjbWF0YWRvci1jb25uZWN0LXRleHQtbGFiZWwsICNtYXRhZG9yLWNvbm5lY3QtdGV4dC1sYWJlbC1iYWRnZXsgei1pbmRleDoxMDAwMCAhaW1wb3J0YW50OyB9IHN2Zy5jaGF0LWJ1YmJsZXsgd2lkdGg6cmV2ZXJ0OyBoZWlnaHQ6cmV2ZXJ0OyB9IC5mYkNvbm5lY3RCdG4gLmZhLWZhY2Vib29reyBjb2xvcjojMzA1ODk4OyB9IGEuZmFjZWJvb2tDb25uZWN0QnRuIHsgY29sb3I6I2ZmZjsgZGlzcGxheTppbmxpbmUtYmxvY2s7IHRleHQtZGVjb3JhdGlvbjpub25lOyBmb250LWZhbWlseTppbmhlcml0OyB9IC5idXR0b25fdmlkZW9zX2ZyIGEsIC5idXR0b25fdmlkZW9zX2VuIGF7IHdpZHRoOjI0OXB4OyBoZWlnaHQ6MzhweDsgZGlzcGxheTpibG9jazsgfSAuYnV0dG9uX3ZpZGVvc19mciBhe2JhY2tncm91bmQ6dXJsKCIvaW1hZ2VzL3ZpZGVvcy1idXR0b25fZnIucG5nIikgbm8tcmVwZWF0IDBweCAwcHggdHJhbnNwYXJlbnQ7fSAuYnV0dG9uX3ZpZGVvc19mciBhOmhvdmVye2JhY2tncm91bmQ6dXJsKCIvaW1hZ2VzL3ZpZGVvcy1idXR0b24taG92ZXJfZnIucG5nIikgbm8tcmVwZWF0IDBweCAwcHggdHJhbnNwYXJlbnQ7fSAuYnV0dG9uX3ZpZGVvc19lbiBhe2JhY2tncm91bmQ6dXJsKCIvaW1hZ2VzL3ZpZGVvcy1idXR0b25fZW4ucG5nIikgbm8tcmVwZWF0IDBweCAwcHggdHJhbnNwYXJlbnQ7fSAuYnV0dG9uX3ZpZGVvc19lbiBhOmhvdmVye2JhY2tncm91bmQ6dXJsKCIvaW1hZ2VzL3ZpZGVvcy1idXR0b24taG92ZXJfZW4ucG5nIikgbm8tcmVwZWF0IDBweCAwcHggdHJhbnNwYXJlbnQ7fSAuYnV0dG9uX3ZpZGVvX2ZyIGEsIC5idXR0b25fdmlkZW9fZW4gYXsgd2lkdGg6MTkzcHg7IGhlaWdodDo1MXB4OyBkaXNwbGF5OmJsb2NrOyB9IC5idXR0b25fdmlkZW9fZnIgYXtiYWNrZ3JvdW5kOnVybCgiL2ltYWdlcy92aWRlby1idXR0b25fZnIucG5nIikgbm8tcmVwZWF0IDBweCAwcHggdHJhbnNwYXJlbnQ7fSAuYnV0dG9uX3ZpZGVvX2ZyIGE6aG92ZXJ7YmFja2dyb3VuZDp1cmwoIi9pbWFnZXMvdmlkZW8tYnV0dG9uLWhvdmVyX2ZyLnBuZyIpIG5vLXJlcGVhdCAwcHggMHB4IHRyYW5zcGFyZW50O30gLmJ1dHRvbl92aWRlb19lbiBhe2JhY2tncm91bmQ6dXJsKCIvaW1hZ2VzL3ZpZGVvLWJ1dHRvbl9lbi5wbmciKSBuby1yZXBlYXQgMHB4IDBweCB0cmFuc3BhcmVudDt9IC5idXR0b25fdmlkZW9fZW4gYTpob3ZlcntiYWNrZ3JvdW5kOnVybCgiL2ltYWdlcy92aWRlby1idXR0b24taG92ZXJfZW4ucG5nIikgbm8tcmVwZWF0IDBweCAwcHggdHJhbnNwYXJlbnQ7fSAuYnV0dG9uX3VuZGVye3dpZHRoOjI0OXB4OyBwYWRkaW5nOjBweDsgbWFyZ2luOjEwcHggMHB4O30gLmJ1dHRvbl91bmRlciBheyB3aWR0aDoxMDAlO21pbi1oZWlnaHQ6MzhweDsgYm9yZGVyLXJhZGl1czozcHg7IGZvbnQtc2l6ZToxLjEyNXJlbSA7IHRleHQtZGVjb3JhdGlvbjpub25lOyB0ZXh0LWFsaWduOmNlbnRlcjsgbGluZS1oZWlnaHQ6MzhweDsgdGV4dC1zaGFkb3c6bm9uZTsgZGlzcGxheTpibG9jayB9IC5idXR0b25fdW5kZXIgYTpob3ZlcnsgYm9yZGVyLXJhZGl1czozcHg7IGZvbnQtc2l6ZToxLjEyNXJlbSA7IHRleHQtZGVjb3JhdGlvbjpub25lOyB0ZXh0LWFsaWduOmNlbnRlcjsgbGluZS1oZWlnaHQ6MzhweDsgdGV4dC1zaGFkb3c6MXB4IDFweCAxcHggIzAwMWUzMTsgfSAuYnV0dG9uX3VuZGVyLnByb21vIGF7YmFja2dyb3VuZC1jb2xvcjojZTgwZDBkOyBiYWNrZ3JvdW5kLWltYWdlOm5vbmU7IGNvbG9yOiNGRkY7IHdpZHRoOjIzN3B4OyBtYXJnaW4tbGVmdDo1cHg7fSAuYnV0dG9uX3VuZGVyLnByb21vMyBhe2JhY2tncm91bmQtY29sb3I6I2ZmMDAwMDsgYmFja2dyb3VuZC1pbWFnZTpub25lOyBjb2xvcjojRkZGOyB3aWR0aDoyMzdweDsgbWFyZ2luLWxlZnQ6NXB4O30gLmJ1dHRvbl91bmRlci5wcm9tbyBhOmhvdmVyLC5idXR0b25fdW5kZXIucHJvbW8yIGE6aG92ZXIsLmJ1dHRvbl91bmRlci5wcm9tbzMgYTpob3ZlcntiYWNrZ3JvdW5kLWltYWdlOnVybCgvaW1hZ2VzL2J1dHRvbl8xaG92ZXIucG5nKX0gLmJ1dHRvbl80e3dpZHRoOjI0OXB4OyBoZWlnaHQ6NTdweDsgZmxvYXQ6bGVmdDsgcGFkZGluZzowcHg7IG1hcmdpbi1ib3R0b206MTBweDt9IC5idXR0b25fNCBheyB3aWR0aDoyNDlweDsgaGVpZ2h0OjUwcHg7IHBhZGRpbmctdG9wOjdweDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9idXR0b25fNC5wbmcpIGxlZnQgdG9wIHJlcGVhdC14OyBib3JkZXItcmFkaXVzOjNweDtmb250LXNpemU6MS4xMjVyZW0gOyBjb2xvcjojRkZGRkZGOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgdGV4dC1hbGlnbjpjZW50ZXI7IGxpbmUtaGVpZ2h0OjIycHg7IHRleHQtc2hhZG93OjFweCAxcHggMXB4ICMwMDFlMzE7IGRpc3BsYXk6YmxvY2sgfSAuYnV0dG9uXzQgYTpob3Zlcnt3aWR0aDoyNDlweDsgaGVpZ2h0OjUwcHg7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvYnV0dG9uXzRob3Zlci5wbmcpIGxlZnQgdG9wIHJlcGVhdC14OyBib3JkZXItcmFkaXVzOjNweDsgZm9udC1zaXplOjEuMTI1cmVtIDsgY29sb3I6I0ZGRkZGRjsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHRleHQtYWxpZ246Y2VudGVyOyBsaW5lLWhlaWdodDoyMnB4OyB0ZXh0LXNoYWRvdzoxcHggMXB4IDFweCAjMDAxZTMxOyB9IC5jaGVja2JveDE1Mnt3aWR0aDphdXRvOyBoZWlnaHQ6MThweDsgZmxvYXQ6bGVmdDsgbWFyZ2luOjA7IHBhZGRpbmc6MCA2cHggMCAwOyBtYXJnaW4tdG9wOjA7IGJvcmRlcjowOyB0b3A6MDsgfSAuQmFzZTIye3dpZHRoOmF1dG87IGhlaWdodDoxOHB4OyBmbG9hdDpsZWZ0OyBtYXJnaW4tcmlnaHQ6NnB4OyBwYWRkaW5nOjZweCA2cHggMCAwOyBtYXJnaW4tdG9wOjA7IGJvcmRlcjowOyB0b3A6MDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzAwMDAwMDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7fSAuYm94OTQwX2xpbmV7d2lkdGg6OTQwcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2xpbmUyNS5wbmcpIGxlZnQgYm90dG9tIHJlcGVhdC14OyBiYWNrZ3JvdW5kLXBvc2l0aW9uOmJvdHRvbTsgYm90dG9tOjA7fSAud2hpdGVfYm94e3dpZHRoOjk0MHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgYmFja2dyb3VuZDojRkZGRkZGOyBvdmVyZmxvdzpoaWRkZW47IC1tb3otYm9yZGVyLXJhZGl1cy10b3BsZWZ0OjZweDsgLW1vei1ib3JkZXItcmFkaXVzLXRvcHJpZ2h0OjZweDsgLW1vei1ib3JkZXItcmFkaXVzLWJvdHRvbXJpZ2h0OjBweDsgLW1vei1ib3JkZXItcmFkaXVzLWJvdHRvbWxlZnQ6MDsgLXdlYmtpdC1ib3JkZXItdG9wLWxlZnQtcmFkaXVzOjZweDsgLXdlYmtpdC1ib3JkZXItdG9wLXJpZ2h0LXJhZGl1czo2cHg7IC13ZWJraXQtYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6MHB4OyAtd2Via2l0LWJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6MDsgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czo2cHg7IGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOjZweDsgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czowOyBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czowO30gLmJveDEwMHt3aWR0aDoyMjBweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMwZjFhMWU7IHRleHQtZGVjb3JhdGlvbjpub25lOyB0ZXh0LWFsaWduOmxlZnQ7IHBhZGRpbmc6MTNweCAwIDE1cHggMTBweDt9IC5ib3gxMDF7d2lkdGg6MTc3cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojMGYxYTFlOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgdGV4dC1hbGlnbjpjZW50ZXI7IHBhZGRpbmc6MTNweCAwIDE1cHg7YmFja2dyb3VuZDp1cmwoIi9pbWFnZXMvbGluZTI1LnBuZyIpIHJlcGVhdC14IHNjcm9sbCBjZW50ZXIgYm90dG9tICNEOUQ5RDk7fSAuYm94MTAye3dpZHRoOjE3N3B4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzBmMWExZTsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHRleHQtYWxpZ246Y2VudGVyOyBwYWRkaW5nOjEzcHggMCAxNXB4O30gLmJveDEwM3t3aWR0aDoxNzdweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMwZjFhMWU7IHRleHQtZGVjb3JhdGlvbjpub25lOyB0ZXh0LWFsaWduOmNlbnRlcjsgcGFkZGluZzoxM3B4IDAgMTVweDtiYWNrZ3JvdW5kOnVybCgiL2ltYWdlcy9saW5lMjUucG5nIikgcmVwZWF0LXggc2Nyb2xsIGNlbnRlciBib3R0b20gI0Q5RDlEOTt9IC5ib3gxMDR7d2lkdGg6MTc4cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojMGYxYTFlOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgdGV4dC1hbGlnbjpjZW50ZXI7IHBhZGRpbmc6MTNweCAwIDE1cHg7fSAuYm94RXZlbnt3aWR0aDoxNzdweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMwZjFhMWU7IHRleHQtZGVjb3JhdGlvbjpub25lOyB0ZXh0LWFsaWduOmNlbnRlcjsgcGFkZGluZzoxM3B4IDBweCAwcHggMHB4O30gLmJveE9kZHt3aWR0aDoxNzdweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMwZjFhMWU7IHRleHQtZGVjb3JhdGlvbjpub25lOyB0ZXh0LWFsaWduOmNlbnRlcjsgcGFkZGluZzoxM3B4IDBweCAwcHggMHB4O2JhY2tncm91bmQ6dXJsKCIvaW1hZ2VzL2xpbmUyNS5wbmciKSByZXBlYXQteCBzY3JvbGwgY2VudGVyIGJvdHRvbSAjRDlEOUQ5O30gLmZpbGVpbnB1dC1idXR0b24sIC5maWxlaW5wdXQtYnV0dG9uOmhvdmVyIHsgZm9udC1zaXplOjAuODc1cmVtICFpbXBvcnRhbnQ7IGxpbmUtaGVpZ2h0OjMxcHg7IHBvc2l0aW9uOnJlbGF0aXZlOyB9IC5maWxlaW5wdXQtYnV0dG9uIGlucHV0IHsgcG9zaXRpb246YWJzb2x1dGU7IHRvcDowOyByaWdodDowOyBtYXJnaW46MDsgb3BhY2l0eTowOyAtbXMtZmlsdGVyOidhbHBoYShvcGFjaXR5PTApJzsgY3Vyc29yOnBvaW50ZXI7IHdpZHRoOjEwMCU7IGhlaWdodDoxMDAlOyB9IC5ib3g5NDBfbWFpbnt3aWR0aDo5NDBweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MHB4IDAgMTVweCAwcHg7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvYm94MjAwX2JnLnBuZykgbGVmdCB0b3AgcmVwZWF0OyAtbW96LWJvcmRlci1yYWRpdXM6NnB4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6NnB4OyBib3JkZXItcmFkaXVzOjZweDsgLWtodG1sLWJvcmRlci1yYWRpdXM6NnB4O30gLndoaXRlX2JveF90ZXh0Mnt3aWR0aDoyMzBweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMwZjFhMWU7IHRleHQtZGVjb3JhdGlvbjpub25lOyB0ZXh0LWFsaWduOmNlbnRlcjt9IC53aGl0ZV9ib3hfdGV4dDN7YmFja2dyb3VuZC1jb2xvcjojRjZGNkY2O2JvcmRlci1sZWZ0OjFweCBzb2xpZCAjQzlDOUM5O2JvcmRlci1yaWdodDoxcHggc29saWQgI0M5QzlDOTtwYWRkaW5nOjEwcHggMHB4O3dpZHRoOjE3NXB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzBmMWExZTsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHRleHQtYWxpZ246Y2VudGVyO30gLndoaXRlX2JveF90ZXh0NHtwYWRkaW5nOjEwcHggMHB4O3dpZHRoOjE3N3B4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzBmMWExZTsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHRleHQtYWxpZ246Y2VudGVyO30gLndoaXRlX2JveF90ZXh0NXtiYWNrZ3JvdW5kLWNvbG9yOiNGNkY2RjY7Ym9yZGVyLWxlZnQ6MXB4IHNvbGlkICNDOUM5Qzk7Ym9yZGVyLXJpZ2h0OjFweCBzb2xpZCAjQzlDOUM5O3BhZGRpbmc6MTBweCAwcHg7d2lkdGg6MTc1cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojMGYxYTFlOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgdGV4dC1hbGlnbjpjZW50ZXI7IH0gLndoaXRlX2JveF90ZXh0NntwYWRkaW5nOjEwcHggMHB4O3dpZHRoOjE3OHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzBmMWExZTsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHRleHQtYWxpZ246Y2VudGVyO30gLndoaXRlX2JveF9ibGFua3t3aWR0aDoxNzhweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMwZjFhMWU7IHRleHQtZGVjb3JhdGlvbjpub25lOyB0ZXh0LWFsaWduOmNlbnRlcjt9IC53aGl0ZV9ib3hfdGV4dE9kZHtwYWRkaW5nOjEwcHggMHB4O3dpZHRoOjE3N3B4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzBmMWExZTsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHRleHQtYWxpZ246Y2VudGVyO30gLndoaXRlX2JveF90ZXh0RXZlbntiYWNrZ3JvdW5kLWNvbG9yOiNGNkY2RjY7Ym9yZGVyLWxlZnQ6MXB4IHNvbGlkICNDOUM5Qzk7Ym9yZGVyLXJpZ2h0OjFweCBzb2xpZCAjQzlDOUM5O3BhZGRpbmc6MTBweCAwcHg7d2lkdGg6MTc1cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojMGYxYTFlOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgdGV4dC1hbGlnbjpjZW50ZXI7fSAuYm94X3RpdGxle3dpZHRoOjkzMHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgcGFkZGluZzozMHB4IDBweCA1cHggMTBweDsgZm9udC1zaXplOjAuOTM4cmVtIDsgY29sb3I6IzBmMWExZTsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHRleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTt9IC5jdXN0b21fMjIge3dpZHRoOjI0MXB4OyBoZWlnaHQ6MTIxcHg7IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MHB4OyBtYXJnaW46MCA4cHggOHB4IDA7IGJhY2tncm91bmQ6I2ViZWJlYjstbW96LWJvcmRlci1yYWRpdXM6OHB4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6OHB4OyBib3JkZXItcmFkaXVzOjhweDsgLWtodG1sLWJvcmRlci1yYWRpdXM6OHB4O2N1cnNvcjpwb2ludGVyO30gLmN1c3RvbV8yMjIge3dpZHRoOjI0MXB4OyBoZWlnaHQ6MTIxcHg7IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MHB4OyBtYXJnaW46MCA4cHggOHB4IDA7IGJhY2tncm91bmQ6I2ZmZmZmZjstbW96LWJvcmRlci1yYWRpdXM6OHB4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6OHB4OyBib3JkZXItcmFkaXVzOjhweDsgLWtodG1sLWJvcmRlci1yYWRpdXM6OHB4O2N1cnNvcjpwb2ludGVyO30gLnRveW90YV9jYW1yeXt3aWR0aDo0MzBweDsgaGVpZ2h0OjIyMnB4OyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjIwcHggMHB4IDBweCAxMHB4OyBtYXJnaW4tcmlnaHQ6OHB4OyBiYWNrZ3JvdW5kOiNlYmViZWI7LW1vei1ib3JkZXItcmFkaXVzOjhweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjhweDsgYm9yZGVyLXJhZGl1czo4cHg7IC1raHRtbC1ib3JkZXItcmFkaXVzOjhweDt9IC50b3lvdGFfY2FtcnkgaDF7IGZvbnQtc2l6ZToxLjg3NXJlbSA7IGNvbG9yOiMzMDMwMzA7IHRleHQtZGVjb3JhdGlvbjpub25lOyBwYWRkaW5nLWJvdHRvbTo1cHg7fSAudG95b3RhX2NhbXJ5IHB7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiM1YTVhNWE7IHRleHQtZGVjb3JhdGlvbjpub25lOyBwYWRkaW5nLWJvdHRvbTo4cHg7fSAuYm94Ml9kZXRhaWxzX3RleHQyNXt3aWR0aDoxMDAlOyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgbWFyZ2luOjE1cHggYXV0bzsgdGV4dC1hbGlnbjpjZW50ZXI7IGZvbnQtc2l6ZToxLjg3NXJlbSA7IGNvbG9yOiNGRkZGRkY7IGZvbnQtd2VpZ2h0OmJvbGQ7IHRleHQtc2hhZG93OjFweCAxcHggNHB4ICM4MjgyODI7fSAuYm94Ml9kZXRhaWxzX3RleHQyNSBzcGFueyB0ZXh0LWFsaWduOmNlbnRlcjsgZm9udC1zaXplOjEuMTI1cmVtIDsgY29sb3I6I2ZmZjsgZm9udC13ZWlnaHQ6Ym9sZDt9IC5ib3gxNXtjdXJzb3I6cG9pbnRlcjt3aWR0aDphdXRvOyBoZWlnaHQ6MjBweDsgZmxvYXQ6bGVmdDsgbWFyZ2luOjBweDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9tZW51MTBfYmcucG5nKSBsZWZ0IHRvcCByZXBlYXQteDsgLW1vei1ib3JkZXItcmFkaXVzOjNweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjNweDsgYm9yZGVyLXJhZGl1czozcHg7IC1raHRtbC1ib3JkZXItcmFkaXVzOjNweDsgcGFkZGluZzo0cHggMnB4OyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojRkZGOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgbWFyZ2luLXJpZ2h0OjFweDsgfSAuYm94MTUgaDJ7Y3Vyc29yOnBvaW50ZXI7ZmxvYXQ6bGVmdDsgcGFkZGluZy1yaWdodDo1cHg7IHBhZGRpbmctdG9wOjBweDt9IC5ib3gxNSBoMiBhe2N1cnNvcjpwb2ludGVyO2Zsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiNGRkY7IHRleHQtZGVjb3JhdGlvbjpub25lOyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2ljb24yLnBuZykgbGVmdCB0b3Agbm8tcmVwZWF0OyBmb250LXdlaWdodDpub3JtYWw7cGFkZGluZy1sZWZ0OjQwcHg7IHBhZGRpbmctcmlnaHQ6MHB4OyBsaW5lLWhlaWdodDoyMHB4O30gLmJveDE1IGgyIGE6aG92ZXJ7Y3Vyc29yOnBvaW50ZXI7ZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6I0ZGRkZGRjsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvaWNvbjIucG5nKSBsZWZ0IHRvcCBuby1yZXBlYXQ7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgbGluZS1oZWlnaHQ6MjBweDt9IC5ib3gxNnt3aWR0aDphdXRvOyBoZWlnaHQ6MjBweDsgZmxvYXQ6bGVmdDsgbWFyZ2luOjBweDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9tZW51MTBfYmcucG5nKSBsZWZ0IHRvcCByZXBlYXQteDsgLW1vei1ib3JkZXItcmFkaXVzOjNweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjNweDsgYm9yZGVyLXJhZGl1czozcHg7IC1raHRtbC1ib3JkZXItcmFkaXVzOjNweDsgcGFkZGluZzo0cHggNHB4IDRweCA4cHg7IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiNGRkY7IHRleHQtZGVjb3JhdGlvbjpub25lOyBtYXJnaW4tcmlnaHQ6MXB4OyB9IC5ib3gxNiBoMntmbG9hdDpsZWZ0OyBwYWRkaW5nLXJpZ2h0OjVweDsgcGFkZGluZy10b3A6MHB4O30gLmJveDE2IGgyIGF7ZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6I0ZGRjsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvaWNvbjMucG5nKSBsZWZ0IHRvcCBuby1yZXBlYXQ7IGZvbnQtd2VpZ2h0Om5vcm1hbDtwYWRkaW5nLWxlZnQ6MjBweDsgcGFkZGluZy1yaWdodDowcHg7IGxpbmUtaGVpZ2h0OjIwcHg7fSAuYm94MTYgaDIgYTpob3ZlcntmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjpyZ2IoMTYsNDMsNzgpOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9pY29uMy5wbmcpIGxlZnQgdG9wIG5vLXJlcGVhdDsgZm9udC13ZWlnaHQ6bm9ybWFsOyBsaW5lLWhlaWdodDoyMHB4O30gLmJveDE3e3dpZHRoOmF1dG87IGhlaWdodDoyMHB4OyBmbG9hdDpsZWZ0OyBtYXJnaW46MHB4OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL21lbnUxMF9iZy5wbmcpIGxlZnQgdG9wIHJlcGVhdC14OyAtbW96LWJvcmRlci1yYWRpdXM6M3B4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6M3B4OyBib3JkZXItcmFkaXVzOjNweDsgLWtodG1sLWJvcmRlci1yYWRpdXM6M3B4OyBwYWRkaW5nOjRweCA0cHggNHB4IDhweDsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6I0ZGRjsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IG1hcmdpbi1yaWdodDoxcHg7IH0gLmJveDE3IGgye2Zsb2F0OmxlZnQ7IHBhZGRpbmctcmlnaHQ6NXB4OyBwYWRkaW5nLXRvcDowcHg7fSAuYm94MTcgaDIgYXtmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojRkZGOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9pY29uNC5wbmcpIGxlZnQgdG9wIG5vLXJlcGVhdDsgZm9udC13ZWlnaHQ6bm9ybWFsO3BhZGRpbmctbGVmdDoyNXB4OyBwYWRkaW5nLXJpZ2h0OjBweDsgbGluZS1oZWlnaHQ6MjBweDt9IC5ib3gxNyBoMiBhOmhvdmVye2Zsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMwMDU4OWQ7IHRleHQtZGVjb3JhdGlvbjpub25lOyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2ljb240LnBuZykgbGVmdCB0b3Agbm8tcmVwZWF0OyBmb250LXdlaWdodDpub3JtYWw7IGxpbmUtaGVpZ2h0OjIwcHg7fSAuYm94MTh7d2lkdGg6YXV0bzsgaGVpZ2h0OjIwcHg7IGZsb2F0OmxlZnQ7IG1hcmdpbjowcHg7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvbWVudTEwX2JnLnBuZykgbGVmdCB0b3AgcmVwZWF0LXg7IC1tb3otYm9yZGVyLXJhZGl1czozcHg7IC13ZWJraXQtYm9yZGVyLXJhZGl1czozcHg7IGJvcmRlci1yYWRpdXM6M3B4OyAta2h0bWwtYm9yZGVyLXJhZGl1czozcHg7IHBhZGRpbmc6NHB4IDRweCA0cHggOHB4OyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojRkZGOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgbWFyZ2luLXJpZ2h0OjFweDsgfSAuYm94MTggaDJ7ZmxvYXQ6bGVmdDsgcGFkZGluZy1yaWdodDo1cHg7IHBhZGRpbmctdG9wOjBweDt9IC5ib3gxOCBoMiBhe2Zsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiNGRkY7IHRleHQtZGVjb3JhdGlvbjpub25lOyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2ljb241LnBuZykgbGVmdCB0b3Agbm8tcmVwZWF0OyBmb250LXdlaWdodDpub3JtYWw7cGFkZGluZy1sZWZ0OjI1cHg7IHBhZGRpbmctcmlnaHQ6NXB4OyBsaW5lLWhlaWdodDoyMHB4O30gLmJveDE4IGgyIGE6aG92ZXJ7ZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzAwNTg5ZDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvaWNvbjUucG5nKSBsZWZ0IHRvcCBuby1yZXBlYXQ7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgbGluZS1oZWlnaHQ6MjBweDt9IC5ib3gxOXt3aWR0aDphdXRvOyBoZWlnaHQ6MjBweDsgZmxvYXQ6bGVmdDsgbWFyZ2luOjBweDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9tZW51MTBfYmcucG5nKSBsZWZ0IHRvcCByZXBlYXQteDsgLW1vei1ib3JkZXItcmFkaXVzOjNweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjNweDsgYm9yZGVyLXJhZGl1czozcHg7IC1raHRtbC1ib3JkZXItcmFkaXVzOjNweDsgcGFkZGluZzo0cHg7IHBhZGRpbmctcmlnaHQ6M3B4OyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojRkZGOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgbWFyZ2luLXJpZ2h0OjFweDsgfSAuYm94MTkgaDJ7ZmxvYXQ6bGVmdDsgcGFkZGluZy1yaWdodDo1cHg7IHBhZGRpbmctdG9wOjBweDt9IC5ib3gxOSBoMiBhe2Zsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiNGRkY7IHRleHQtZGVjb3JhdGlvbjpub25lOyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2ljb242LnBuZykgbGVmdCB0b3Agbm8tcmVwZWF0OyBmb250LXdlaWdodDpub3JtYWw7cGFkZGluZy1sZWZ0OjI1cHg7IGxpbmUtaGVpZ2h0OjIwcHg7fSAuYm94MTkgaDIgYTpob3ZlcntmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojMDA1ODlkOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9pY29uNi5wbmcpIGxlZnQgdG9wIG5vLXJlcGVhdDsgZm9udC13ZWlnaHQ6bm9ybWFsOyBsaW5lLWhlaWdodDoyMHB4O30gLmJveDExMTR7Y3Vyc29yOnBvaW50ZXI7d2lkdGg6YXV0bzsgaGVpZ2h0OjIwcHg7IGZsb2F0OmxlZnQ7IG1hcmdpbjowcHg7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvYnV0dG9uXzEucG5nKSBsZWZ0IHRvcCByZXBlYXQteDsgLW1vei1ib3JkZXItcmFkaXVzOjNweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjNweDsgYm9yZGVyLXJhZGl1czozcHg7IC1raHRtbC1ib3JkZXItcmFkaXVzOjNweDsgcGFkZGluZzo0cHg7IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiNGRkY7IHRleHQtZGVjb3JhdGlvbjpub25lOyBtYXJnaW4tcmlnaHQ6MXB4OyB9IC5ib3gxMTE0IGgye2N1cnNvcjpwb2ludGVyO2Zsb2F0OmxlZnQ7IHBhZGRpbmctcmlnaHQ6NXB4OyBwYWRkaW5nLXRvcDowcHg7fSAuYm94MTExNCBoMiBhe2N1cnNvcjpwb2ludGVyO2Zsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiNGRkY7IHRleHQtZGVjb3JhdGlvbjpub25lOyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2ljb24yLnBuZykgbGVmdCB0b3Agbm8tcmVwZWF0OyBmb250LXdlaWdodDpub3JtYWw7cGFkZGluZy1sZWZ0OjQwcHg7IHBhZGRpbmctcmlnaHQ6MTBweDsgbGluZS1oZWlnaHQ6MjBweDt9IC5ib3gxMTE0IGgyIGE6aG92ZXJ7Y3Vyc29yOnBvaW50ZXI7ZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzAwNTg5ZDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvaWNvbjIucG5nKSBsZWZ0IHRvcCBuby1yZXBlYXQ7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgbGluZS1oZWlnaHQ6MjBweDt9IC5TcGVjaWZpY2F0aW9uc3t3aWR0aDo2NTFweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IG1hcmdpbjowcHg7IHBhZGRpbmc6MTBweCAwOyBmb250LXNpemU6MS41cmVtIDsgY29sb3I6IzI1MjUyNTsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7Zm9udC13ZWlnaHQ6bm9ybWFsO21hcmdpbi10b3A6NXB4O30gLk1vcmJpMnt3aWR0aDo2MzFweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MTBweDsgbWFyZ2luOjBweDsgYmFja2dyb3VuZDojRUZFRkVGOyAtbW96LWJvcmRlci1yYWRpdXM6M3B4O2ZvbnQtd2VpZ2h0Om5vcm1hbDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjNweDsgYm9yZGVyLXJhZGl1czozcHg7IC1raHRtbC1ib3JkZXItcmFkaXVzOjNweDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzVhNWE1YTsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7fSAuTW9yYmkyIHB7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiM1YTVhNWE7IHRleHQtZGVjb3JhdGlvbjpub25lOyBwYWRkaW5nLWJvdHRvbTo4cHg7fSAuYm94Mjg4OV9taWR7d2lkdGg6Mjc4cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL3JpZ2h0X2JveDRfbWlkLnBuZykgbGVmdCB0b3AgcmVwZWF0LXk7IHBhZGRpbmc6MCA1cHggMjBweCA1cHg7fSAuTW9yYmkyMnt3aWR0aDo2NTFweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MHB4OyBtYXJnaW46MHB4OyAtbW96LWJvcmRlci1yYWRpdXM6M3B4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6M3B4OyBib3JkZXItcmFkaXVzOjNweDsgLWtodG1sLWJvcmRlci1yYWRpdXM6M3B4OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojNWE1YTVhOyB0ZXh0LWRlY29yYXRpb246bm9uZTt9IC5ib3gyODg5X21pZCBoMXsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MTBweCAxMHB4IDIwcHggMTBweDsgZm9udC1zaXplOjEuODc1cmVtIDsgY29sb3I6IzI4MjgyODsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgdGV4dC1hbGlnbjpsZWZ0OyB0ZXh0LXRyYW5zZm9ybTpub25lOyBsaW5lLWhlaWdodDoyNHB4fSAuX2JveDI4ODlfbWlkIGgxeyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgcGFkZGluZzoxMHB4IDEwcHggMjBweCAxMHB4OyBmb250LXNpemU6MS44NzVyZW0gOyBjb2xvcjojMjgyODI4OyB0ZXh0LWRlY29yYXRpb246bm9uZTsgZm9udC13ZWlnaHQ6bm9ybWFsOyB0ZXh0LWFsaWduOmxlZnQ7IHRleHQtdHJhbnNmb3JtOm5vbmU7IGxpbmUtaGVpZ2h0OjI0cHh9IC5ib3gyODg5X21pZCBoMnsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IHBhZGRpbmc6NHB4IDEwcHggMjBweCAxNXB4OyBmb250LXNpemU6MS41cmVtIDsgY29sb3I6IzI4MjgyODsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgdGV4dC1hbGlnbjpsZWZ0OyB0ZXh0LXRyYW5zZm9ybTpub25lOyBsaW5lLWhlaWdodDoyM3B4fSAjc2ltaWxhclRpdGxleyBwYWRkaW5nOjRweCAxMHB4IDlweCAxNXB4OyBmb250LXNpemU6MS40MzhyZW0gOyBmb250LXdlaWdodDpub3JtYWw7IH0gLnRhYmU1e3dpZHRoOjYzMXB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgfSAudGFiZTUgdWx7IGxpc3Qtc3R5bGUtdHlwZTpub25lOyBtYXJnaW46MDsgcGFkZGluZzowOyB0ZXh0LXRyYW5zZm9ybTpub25lOyB9IC50YWJlNSB1bCBsaXsgbGlzdC1zdHlsZS10eXBlOm5vbmU7IG1hcmdpbjowOyBkaXNwbGF5OmJsb2NrO30gLnRhYmU1IHVsIGxpIHNwYW57Y3Vyc29yOnBvaW50ZXI7IGxpc3Qtc3R5bGUtdHlwZTpub25lOyBtYXJnaW46MDsgZGlzcGxheTpibG9jazsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzMyMzIzMjsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHBhZGRpbmc6N3B4IDE1cHggN3B4IDE1cHg7IG1hcmdpbi1yaWdodDoycHg7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgbGluZS1oZWlnaHQ6MThweDsgdGV4dC10cmFuc2Zvcm06bm9uZTsgdGV4dC1hbGlnbjpjZW50ZXI7IHRleHQtdHJhbnNmb3JtOm5vbmU7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvdGFiX2JnLnBuZykgbGVmdCB0b3AgcmVwZWF0LXg7IGZsb2F0OmxlZnQ7IC1tb3otYm9yZGVyLXJhZGl1cy10b3BsZWZ0OjZweDsgLW1vei1ib3JkZXItcmFkaXVzLXRvcHJpZ2h0OjZweDsgLW1vei1ib3JkZXItcmFkaXVzLWJvdHRvbXJpZ2h0OjBweDsgLW1vei1ib3JkZXItcmFkaXVzLWJvdHRvbWxlZnQ6MDsgLXdlYmtpdC1ib3JkZXItdG9wLWxlZnQtcmFkaXVzOjZweDsgLXdlYmtpdC1ib3JkZXItdG9wLXJpZ2h0LXJhZGl1czo2cHg7IC13ZWJraXQtYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6MHB4OyAtd2Via2l0LWJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6MDsgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czo2cHg7IGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOjZweDsgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czowOyBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czowO30gLnRhYmU1IHVsIGxpIHNwYW46aG92ZXJ7IGxpc3Qtc3R5bGUtdHlwZTpub25lOyBkaXNwbGF5OmJsb2NrOyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojN2IwMDAwOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgcGFkZGluZzo3cHggMTVweCA3cHggMTVweDsgbWFyZ2luLXJpZ2h0OjJweDsgZm9udC13ZWlnaHQ6bm9ybWFsOyBsaW5lLWhlaWdodDoxOHB4OyB0ZXh0LXRyYW5zZm9ybTpub25lOyB0ZXh0LWFsaWduOmNlbnRlcjsgdGV4dC10cmFuc2Zvcm06bm9uZTsgYmFja2dyb3VuZDogI2ViZWJlYjsgZmxvYXQ6bGVmdDsgLW1vei1ib3JkZXItcmFkaXVzLXRvcGxlZnQ6NnB4OyAtbW96LWJvcmRlci1yYWRpdXMtdG9wcmlnaHQ6NnB4OyAtbW96LWJvcmRlci1yYWRpdXMtYm90dG9tcmlnaHQ6MHB4OyAtbW96LWJvcmRlci1yYWRpdXMtYm90dG9tbGVmdDowOyAtd2Via2l0LWJvcmRlci10b3AtbGVmdC1yYWRpdXM6NnB4OyAtd2Via2l0LWJvcmRlci10b3AtcmlnaHQtcmFkaXVzOjZweDsgLXdlYmtpdC1ib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czowcHg7IC13ZWJraXQtYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czowOyBib3JkZXItdG9wLWxlZnQtcmFkaXVzOjZweDsgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6NnB4OyBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjA7IGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjA7IH0gLnRhYmU1IHVsIGxpIHNwYW4uYWN0aXZle2N1cnNvcjpkZWZhdWx0OyBsaXN0LXN0eWxlLXR5cGU6bm9uZTsgZGlzcGxheTpibG9jazsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzdiMDAwMDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHBhZGRpbmc6N3B4IDE1cHggN3B4IDE1cHg7IG1hcmdpbi1yaWdodDoycHg7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgbGluZS1oZWlnaHQ6MThweDsgdGV4dC10cmFuc2Zvcm06bm9uZTsgdGV4dC1hbGlnbjpjZW50ZXI7IHRleHQtdHJhbnNmb3JtOm5vbmU7IGJhY2tncm91bmQ6ICNlYmViZWI7IGZsb2F0OmxlZnQ7IC1tb3otYm9yZGVyLXJhZGl1cy10b3BsZWZ0OjZweDsgLW1vei1ib3JkZXItcmFkaXVzLXRvcHJpZ2h0OjZweDsgLW1vei1ib3JkZXItcmFkaXVzLWJvdHRvbXJpZ2h0OjBweDsgLW1vei1ib3JkZXItcmFkaXVzLWJvdHRvbWxlZnQ6MDsgLXdlYmtpdC1ib3JkZXItdG9wLWxlZnQtcmFkaXVzOjZweDsgLXdlYmtpdC1ib3JkZXItdG9wLXJpZ2h0LXJhZGl1czo2cHg7IC13ZWJraXQtYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6MHB4OyAtd2Via2l0LWJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6MDsgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czo2cHg7IGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOjZweDsgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czowOyBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czowOyB9IC50YWJfZGV0YWlsczJ7d2lkdGg6NjMxcHg7IHBhZGRpbmc6MTBweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGJhY2tncm91bmQ6I0VGRUZFRjsgLW1vei1ib3JkZXItcmFkaXVzLXRvcGxlZnQ6MHB4OyAtbW96LWJvcmRlci1yYWRpdXMtdG9wcmlnaHQ6MHB4OyAtbW96LWJvcmRlci1yYWRpdXMtYm90dG9tcmlnaHQ6NnB4OyAtbW96LWJvcmRlci1yYWRpdXMtYm90dG9tbGVmdDo2cHg7IC13ZWJraXQtYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czowcHg7IC13ZWJraXQtYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6MHB4OyAtd2Via2l0LWJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjZweDsgLXdlYmtpdC1ib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjZweDsgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czowcHg7IGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOjBweDsgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czo2cHg7IGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjZweDt9IC5ib3gyNXt3aWR0aDo0ODdweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IG1hcmdpbjowcHg7IGJhY2tncm91bmQ6I0VGRUZFRjsgLW1vei1ib3JkZXItcmFkaXVzOjNweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjNweDsgYm9yZGVyLXJhZGl1czozcHg7IC1raHRtbC1ib3JkZXItcmFkaXVzOjNweDsgbWFyZ2luOjAgMTNweCAwIDA7IHBhZGRpbmc6MjBweCAwIDIwcHggMjBweDt9IC5ib3gyNnt3aWR0aDoyNDNweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7fSAuYm94MjYgdWx7IGxpc3Qtc3R5bGUtdHlwZTpub25lOyBtYXJnaW46MDsgcGFkZGluZzowOyB0ZXh0LXRyYW5zZm9ybTpub25lOyB9IC5ib3gyNiB1bCBsaXsgbGlzdC1zdHlsZS10eXBlOm5vbmU7IG1hcmdpbjowOyBkaXNwbGF5OmJsb2NrO30gLmJveDI2IHVsIGxpIHNwYW57IGxpc3Qtc3R5bGUtdHlwZTpub25lOyBtYXJnaW46MDsgZGlzcGxheTpibG9jazsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzMyMzIzMjsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHBhZGRpbmc6MCA3cHggN3B4IDBweDsgZm9udC13ZWlnaHQ6bm9ybWFsOyBsaW5lLWhlaWdodDoxOHB4OyB0ZXh0LXRyYW5zZm9ybTpub25lOyB0ZXh0LWFsaWduOmxlZnQ7fSAuYm94MjYgdWwgbGkgYXsgbGlzdC1zdHlsZS10eXBlOm5vbmU7IG1hcmdpbjowOyBkaXNwbGF5OmJsb2NrOyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojMzIzMjMyOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgcGFkZGluZzowIDdweCA3cHggMjJweDsgZm9udC13ZWlnaHQ6bm9ybWFsOyBsaW5lLWhlaWdodDoxOHB4OyB0ZXh0LXRyYW5zZm9ybTpub25lOyB0ZXh0LWFsaWduOmxlZnQ7IH0gLmJveDI2IHVsIGxpIGE6aG92ZXJ7IGxpc3Qtc3R5bGUtdHlwZTpub25lOyBtYXJnaW46MDsgZGlzcGxheTpibG9jazsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzdiMDAwMDsgcGFkZGluZzowIDdweCA3cHggMjJweDsgZm9udC13ZWlnaHQ6bm9ybWFsOyBsaW5lLWhlaWdodDoxOHB4OyB0ZXh0LXRyYW5zZm9ybTpub25lOyB0ZXh0LWFsaWduOmxlZnQ7IHRleHQtdHJhbnNmb3JtOm5vbmU7IH0gLmJveDI2IHVsIGxpIGEuYWN0aXZleyBsaXN0LXN0eWxlLXR5cGU6bm9uZTsgbWFyZ2luOjA7IGRpc3BsYXk6YmxvY2s7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiM3YjAwMDA7IHRleHQtZGVjb3JhdGlvbjpub25lOyBwYWRkaW5nOjAgN3B4IDdweCAyMnB4OyBmb250LXdlaWdodDpub3JtYWw7IGxpbmUtaGVpZ2h0OjE4cHg7IHRleHQtYWxpZ246bGVmdDsgdGV4dC10cmFuc2Zvcm06bm9uZTsgfSAuYm94Mjd7d2lkdGg6MTMxcHg7IGhlaWdodDoyOHB4OyBmbG9hdDpsZWZ0OyBtYXJnaW4tYm90dG9tOjhweDsgfSAuYm94MzN7d2lkdGg6NjMxcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0O30gLmJveDMzIHVseyBsaXN0LXN0eWxlLXR5cGU6bm9uZTsgbWFyZ2luOjA7IHBhZGRpbmc6MDsgdGV4dC10cmFuc2Zvcm06bm9uZTsgfSAuYm94MzMgdWwgbGl7IGxpc3Qtc3R5bGUtdHlwZTpub25lOyBtYXJnaW46MDsgZGlzcGxheTpibG9jazt9IC5ib3gzMyB1bCBsaSBheyBsaXN0LXN0eWxlLXR5cGU6bm9uZTsgbWFyZ2luOjA7IGRpc3BsYXk6YmxvY2s7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMzMjMyMzI7IHRleHQtZGVjb3JhdGlvbjpub25lOyBwYWRkaW5nOjAgN3B4IDdweCAwcHg7IG1hcmdpbi1yaWdodDoycHg7IGZvbnQtd2VpZ2h0OmJvbGQ7IGxpbmUtaGVpZ2h0OjE4cHg7IHRleHQtdHJhbnNmb3JtOm5vbmU7IHRleHQtYWxpZ246bGVmdDsgdGV4dC10cmFuc2Zvcm06bm9uZTt9IC5ib3gzMyB1bCBsaSBzcGFueyBsaXN0LXN0eWxlLXR5cGU6bm9uZTsgbWFyZ2luOjA7IGRpc3BsYXk6YmxvY2s7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMzMjMyMzI7IHRleHQtZGVjb3JhdGlvbjpub25lOyBwYWRkaW5nOjAgN3B4IDdweCAwcHg7IG1hcmdpbi1yaWdodDoycHg7IGZvbnQtd2VpZ2h0OmJvbGQ7IGxpbmUtaGVpZ2h0OjE4cHg7IHRleHQtdHJhbnNmb3JtOm5vbmU7IHRleHQtYWxpZ246bGVmdDsgdGV4dC10cmFuc2Zvcm06bm9uZTt9IC5ib3gzMyBweyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojMzIzMjMyOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgcGFkZGluZzowIDBweCA3cHggMHB4OyBmb250LXdlaWdodDpib2xkOyBsaW5lLWhlaWdodDoxOHB4OyB0ZXh0LXRyYW5zZm9ybTpub25lOyB0ZXh0LWFsaWduOmxlZnQ7IH0gLmJveDMzIHVsIGxpIGE6aG92ZXJ7IGxpc3Qtc3R5bGUtdHlwZTpub25lOyBtYXJnaW46MDsgZGlzcGxheTpibG9jazsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzdiMDAwMDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHBhZGRpbmc6MCA3cHggN3B4IDIycHg7IG1hcmdpbi1yaWdodDoycHg7IGZvbnQtd2VpZ2h0OmJvbGQ7IGxpbmUtaGVpZ2h0OjE4cHg7IHRleHQtdHJhbnNmb3JtOm5vbmU7IHRleHQtYWxpZ246bGVmdDsgdGV4dC10cmFuc2Zvcm06bm9uZTsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9hcnJvdzgucG5nKSBsZWZ0IHRvcCBuby1yZXBlYXQ7IH0gLk1vdGV1cnt3aWR0aDoyODBweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IG1hcmdpbi1ib3R0b206NXB4O30gLk1vdGV1ciBoMnt3aGl0ZS1zcGFjZTpub3JtYWw7IHdpZHRoOjEzNXB4OyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC43NXJlbSA7IGNvbG9yOiMyMDIwMjA7fSAuTW90ZXVyIGgze3doaXRlLXNwYWNlOm5vcm1hbDsgd2lkdGg6MTQwcHg7IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgY29sb3I6IzVhNWE1YTt9IC5ib3gyNiB1bCBsaSBzcGFuOmJlZm9yZSwuYm94MzMgdWwgbGkgc3BhbjpiZWZvcmUsLk1vdGV1ciBoMjpiZWZvcmUgeyBjb250ZW50OiJcZjEzOCI7IGZvbnQtZmFtaWx5OidGb250IEF3ZXNvbWUgNSBQcm8nOyBmb250LXdlaWdodDo5MDA7IG1hcmdpbi1yaWdodDo1cHg7IH0gLmJveDI3IGF7d2lkdGg6MTMxcHg7IGhlaWdodDoyOHB4OyBmbG9hdDpsZWZ0OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2J1dHRvbjEwX2JnLnBuZykgbGVmdCB0b3AgcmVwZWF0LXggOyAtbW96LWJvcmRlci1yYWRpdXM6M3B4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6M3B4OyBib3JkZXItcmFkaXVzOjNweDsgLWtodG1sLWJvcmRlci1yYWRpdXM6M3B4OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojRkZGRkZGOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgZm9udC13ZWlnaHQ6bm9ybWFsOyBwYWRkaW5nOjA7IGxpbmUtaGVpZ2h0OjI4cHg7IHRleHQtYWxpZ246Y2VudGVyOyB0ZXh0LXRyYW5zZm9ybTpub25lO30gLmJveDI3IGE6aG92ZXJ7d2lkdGg6MTMxcHg7IGhlaWdodDoyOHB4OyBmbG9hdDpsZWZ0OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2J1dHRvbjEwX2JnLnBuZykgbGVmdCAtMzJweCByZXBlYXQteCA7IC1tb3otYm9yZGVyLXJhZGl1czozcHg7IC13ZWJraXQtYm9yZGVyLXJhZGl1czozcHg7IGJvcmRlci1yYWRpdXM6M3B4OyAta2h0bWwtYm9yZGVyLXJhZGl1czozcHg7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiNGRkZGRkY7IHRleHQtZGVjb3JhdGlvbjpub25lOyBmb250LXdlaWdodDpub3JtYWw7IHRleHQtYWxpZ246Y2VudGVyOyB0ZXh0LXRyYW5zZm9ybTpub25lOyBsaW5lLWhlaWdodDoyOHB4OyB9IC5ib3gyOHt3aWR0aDoxMjdweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IG1hcmdpbjowcHg7IGJhY2tncm91bmQ6IzZmNmY2ZiB1cmwoL2ltYWdlcy9saXRlcl9iZy5wbmcpIGxlZnQgdG9wIHJlcGVhdC14OyAtbW96LWJvcmRlci1yYWRpdXM6M3B4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6M3B4OyBib3JkZXItcmFkaXVzOjNweDsgLWtodG1sLWJvcmRlci1yYWRpdXM6M3B4OyBwYWRkaW5nOjEwcHggMnB4IDEwcHggMnB4OyBtYXJnaW46MCAwcHggMCAwO30gLnRleHQ0NHt3aWR0aDoxMjdweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvbGl0ZXJfbGluZS5wbmcpIGxlZnQgYm90dG9tIHJlcGVhdC14OyBiYWNrZ3JvdW5kLXBvc2l0aW9uOmJvdHRvbTsgdGV4dC1hbGlnbjpjZW50ZXI7IHBhZGRpbmctYm90dG9tOjVweDsgbWFyZ2luLWJvdHRvbTo1cHg7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiNGRkZGRkY7IHRleHQtZGVjb3JhdGlvbjpub25lOyBmb250LXdlaWdodDpub3JtYWw7IHRleHQtYWxpZ246Y2VudGVyOyB0ZXh0LXRyYW5zZm9ybTpub25lOyBsaW5lLWhlaWdodDoxOHB4fSAudGV4dF9ib3g2MHt3aWR0aDoxMzNweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MDsgfSAudGV4dF9ib3g2MCBoMnt3aWR0aDoxMzNweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzI2MjYyNjsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IGZvbnQtd2VpZ2h0OmJvbGQ7IHRleHQtYWxpZ246bGVmdDsgdGV4dC10cmFuc2Zvcm06bm9uZTsgbGluZS1oZWlnaHQ6MThweH0gLnRleHRfYm94NjAgaDN7d2lkdGg6MTMzcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjA7IGZvbnQtc2l6ZToxcmVtIDsgY29sb3I6IzdiMDAwMDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgdGV4dC1hbGlnbjpsZWZ0OyB0ZXh0LXRyYW5zZm9ybTpub25lOyBsaW5lLWhlaWdodDoxOHB4fSAudGV4dF9ib3g2MCBwe3dpZHRoOjEzM3B4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgcGFkZGluZzo1cHggMDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzI2MjYyNjsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IGZvbnQtd2VpZ2h0OmJvbGQ7IHRleHQtYWxpZ246bGVmdDsgdGV4dC10cmFuc2Zvcm06bm9uZTsgbGluZS1oZWlnaHQ6MThweH0gLnZpb3J7d2lkdGg6YXV0bzsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MHB4IDEwcHg7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvdmlvci5wbmcpIGxlZnQgdG9wIHJlcGVhdC14OyBsaW5lLWhlaWdodDoyMnB4OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojRkZGRkZGOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgZm9udC13ZWlnaHQ6bm9ybWFsOyB0ZXh0LWFsaWduOmxlZnQ7IHRleHQtdHJhbnNmb3JtOm5vbmU7IC1tb3otYm9yZGVyLXJhZGl1czo1cHg7IC13ZWJraXQtYm9yZGVyLXJhZGl1czo1cHg7IGJvcmRlci1yYWRpdXM6NXB4OyAta2h0bWwtYm9yZGVyLXJhZGl1czo1cHg7IH0gLmJveDEzM3t3aWR0aDoxMzNweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MDsgbWFyZ2luOjA7fSAuYm94MjU4e3dpZHRoOjI1OHB4OyBib3JkZXItYm90dG9tOjFweCBzb2xpZCAjYjliOWI5OyBwYWRkaW5nOjAgMTBweCA1cHggMTBweDsgbWFyZ2luLWJvdHRvbTo1cHg7IGZsb2F0OmxlZnQ7fSAuYm94MTE2e3dpZHRoOjExNnB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgYm9yZGVyOjJweCBzb2xpZCAjRkZGRkZGOyBwYWRkaW5nOjA7IG1hcmdpbi1yaWdodDo1cHg7fSAuYm94MTE2IGltZ3t3aWR0aDoxMjBweDsgfSAuYm94Mnt3aWR0aDoyNjBweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IG1hcmdpbi1yaWdodDo0N3B4OyBtYXJnaW4tbGVmdDoyMHB4OyBwYWRkaW5nOjAgMCAxMHB4IDVweDsgZm9udC1zaXplOjAuODEzcmVtIDsgY29sb3I6IzI0MjQyNCA7fSAuYm94MiBzcGFue2ZvbnQ6Ym9sZCAxMnB4IFZlcmRhbmEsIEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7IGNvbG9yOiNGRjAwMDB9IC5ib3gze3dpZHRoOjI2MHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgbWFyZ2luLXJpZ2h0OjIwcHg7IHBhZGRpbmc6MCAwIDEwcHggNXB4OyBmb250LXNpemU6MC44MTNyZW0gOyBjb2xvcjojMjQyNDI0IDt9IC5ib3gzIHNwYW57Zm9udDpib2xkIDEycHggVmVyZGFuYSwgQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjsgY29sb3I6I0ZGMDAwMH0gLmJveDR7d2lkdGg6MjY1cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBtYXJnaW46MHB4IDQ1cHggMTBweCAyMHB4OyB9IC5ib3g0NHt3aWR0aDoyNjVweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IG1hcmdpbjowcHggNDdweCAxMHB4IDIwcHg7IHBvc2l0aW9uOnJlbGF0aXZlO30gLmJveDV7d2lkdGg6MjY1cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBtYXJnaW46MHB4IDIwcHggMTBweCAwO30gLmJveDZ7d2lkdGg6MjgwcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBtYXJnaW46MTBweCAwcHggMHB4IDA7fSAuYm94NTV7d2lkdGg6MjY1cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBtYXJnaW46MHB4IDIwcHggMTBweCAwO3Bvc2l0aW9uOnJlbGF0aXZlO30gLmxpbjJ7d2lkdGg6NjE3cHg7IGhlaWdodDoycHg7IGZsb2F0OmxlZnQ7IG1hcmdpbjowcHggMCAxMHB4IDA7IHBhZGRpbmc6MDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9saW5lMi5wbmcpIGxlZnQgdG9wIHJlcGVhdC14O30gLmJveDE0e3BhZGRpbmc6MHB4IDA7IGhlaWdodDoxNXB4OyBmbG9hdDpsZWZ0fSAuYm94MjB7cGFkZGluZzowIDEwcHg7IGZsb2F0OmxlZnQ7IGxpbmUtaGVpZ2h0OjI3cHg7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMyNDI0MjQgOyBmb250LXdlaWdodDpib2xkO30gLnRleHQzMHt3aWR0aDo2MTdweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MTdweCAwOyBmb250LXNpemU6MS4zNzVyZW0gOyBjb2xvcjojMjQyNDI0fSAudGV4dDMwIHNwYW57cGFkZGluZy1yaWdodDoxMHB4OyBmbG9hdDpyaWdodDsgdGV4dC1hbGlnbjpyaWdodDsgZm9udC1zaXplOjAuODc1cmVtIDsgZm9udC13ZWlnaHQ6bm9ybWFsOyBjb2xvcjojMjQyNDI0O30gLnRleHQzMCBzcGFuIHN0cm9uZ3tmb250OmJvbGQgMjBweCBWZXJkYW5hLCBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmOyBjb2xvcjojRkYwMDAwIH0gLmJveDYxN3t3aWR0aDo2MTdweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IHBhZGRpbmctbGVmdDowcHg7IHBhZGRpbmctYm90dG9tOjIwcHg7IG1hcmdpbi1yaWdodDowcHg7fSAubWFpbjYxN3t3aWR0aDo2MTdweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IHBhZGRpbmctbGVmdDowcHg7IG1hcmdpbi10b3A6MTVweDt9IC5ib3gyMEF7cGFkZGluZzowIDVweDsgZmxvYXQ6bGVmdDsgbGluZS1oZWlnaHQ6MjVweDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzI0MjQyNCA7IGZvbnQtd2VpZ2h0OmJvbGQ7fSAub25TaXRlICsgLnByZWZlcnJlZCwgLnByZWZlcnJlZDpoYXMoKy5vblNpdGUpIHsgYWxpZ24tc2VsZjplbmQ7IH0gI3NlcnZpY2VQYWNrYWdlcyB0YWJsZSB7Ym9yZGVyLWNvbGxhcHNlOmNvbGxhcHNlOyB3aWR0aDoxMDAlOyBsaW5lLWhlaWdodDozMHB4OyBtYXJnaW4tYm90dG9tOjE1cHg7IGZvbnQtc2l6ZTo5MCU7fSAjc2VydmljZVBhY2thZ2VzIHRhYmxlIHRib2R5IHRyOm50aC1jaGlsZChvZGQpIHtiYWNrZ3JvdW5kOiNmM2YzZjM7fSAjc2VydmljZVBhY2thZ2VzIHRhYmxlIHRke3BhZGRpbmctdG9wOjAuNXJlbTsgdmVydGljYWwtYWxpZ246dG9wOyBsaW5lLWhlaWdodDoxLjU7fSAjc2VydmljZVBhY2thZ2VzIHRhYmxlIHRkOm50aC1jaGlsZCgyKSB7cGFkZGluZzowLjVyZW07fSAuZGV0YWlsQ2FyVGl0bGUsIC5kZXRhaWxDYXJUaXRsZVdpZGUsIC5kZXRhaWxDYXJUaXRsZUZ1bGwge3dvcmQtd3JhcDpicmVhay13b3JkO2hlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBtYXJnaW46MHB4OyBmb250LXNpemU6MS44NzVyZW0gOyBjb2xvcjojNDE0MTQxO2ZvbnQtd2VpZ2h0Om5vcm1hbDt9IC5kZXRhaWxDYXJUaXRsZSB7d2lkdGg6NDkwcHg7fSAuZGV0YWlsQ2FyVGl0bGVXaWRlIHt3aWR0aDo3NzVweDt9IC5kZXRhaWxDYXJUaXRsZUZ1bGwge3dpZHRoOjEwMCU7fSAubWFpbmJveF90ZXh0YXJlNjE3e2hlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBwYWRkaW5nLWxlZnQ6MHB4OyBtYXJnaW46MjBweCAwOyB0cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUsIDAlKTsgcG9zaXRpb246cmVsYXRpdmU7IGxlZnQ6NTAlO30gLnRleHRib3gyMnt3aWR0aDozODFweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IHBhZGRpbmctbGVmdDowcHg7IG1hcmdpbjowcHggMHB4IDAgMDt9IC5idXR0b241MXsgd2lkdGg6YXV0bzsgaGVpZ2h0OjM2cHg7IGZsb2F0OmxlZnQ7IH0gLmJ1dHRvbjUxIGF7IHdpZHRoOmF1dG87IGhlaWdodDozNnB4OyBmbG9hdDpsZWZ0OyAtbW96LWJvcmRlci1yYWRpdXM6NXB4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6NXB4OyBib3JkZXItcmFkaXVzOjVweDsgLWtodG1sLWJvcmRlci1yYWRpdXM6NXB4OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2J1dHRvbjUucG5nKSBsZWZ0IHRvcCByZXBlYXQteDsgZm9udC1zaXplOjEuMTI1cmVtIDsgY29sb3I6I0ZGRkZGRiA7IHBhZGRpbmc6MCAxMHB4OyBsaW5lLWhlaWdodDozNnB4OyB0ZXh0LWRlY29yYXRpb246bm9uZTsgdGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlOyB9IC5idXR0b241MSBhOmhvdmVyeyB3aWR0aDphdXRvOyBoZWlnaHQ6MzZweDsgZmxvYXQ6bGVmdDsgLW1vei1ib3JkZXItcmFkaXVzOjVweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjVweDsgYm9yZGVyLXJhZGl1czo1cHg7IC1raHRtbC1ib3JkZXItcmFkaXVzOjVweDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9idXR0b241LnBuZykgbGVmdCAtNDRweCByZXBlYXQteDsgZm9udC1zaXplOjEuMTI1cmVtIDsgY29sb3I6I0ZGRkZGRiA7IHBhZGRpbmc6MCAxMHB4OyBsaW5lLWhlaWdodDozNnB4OyB0ZXh0LWRlY29yYXRpb246bm9uZTsgdGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO30gLnRleHQ1NXt3aWR0aDozODFweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IHBhZGRpbmctbGVmdDowcHg7IG1hcmdpbjowcHggMHB4IDIwcHggMDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6dmFyKC0tZGVmYXVsdC1ibGFjaykgOyBsaW5lLWhlaWdodDoxOHB4OyB0ZXh0LWRlY29yYXRpb246bm9uZTsgfSAudGV4dDU1IHB7IHBhZGRpbmctbGVmdDowcHggNXB4IDAgMDsgbWFyZ2luOjBweCAwcHggMHB4IDA7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOnZhcigtLWRlZmF1bHQtYmxhY2spOyBsaW5lLWhlaWdodDoxOHB4OyB0ZXh0LWRlY29yYXRpb246bm9uZTsgfSAucGljYm94XzIyMXtoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgcGFkZGluZy1sZWZ0OjBweDsgbWFyZ2luOjBweCAxNXB4IDAgMDt9IC5waWNib3hfMjIxIGltZyB7IHdpZHRoOjMzMnB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgLW1vei1ib3JkZXItcmFkaXVzOjNweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjNweDsgYm9yZGVyLXJhZGl1czozcHg7IC1raHRtbC1ib3JkZXItcmFkaXVzOjNweDsgfSAuaXNGdWxsV2lkdGhQYWdlIC5waWNib3hfMjIxIGltZyB7IHdpZHRoOjQ0MnB4OyB9IC5waWNib3g2NTF7d2lkdGg6NjUxcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBtYXJnaW46NXB4IDEwcHggMHB4O30gLnBpY2JveDkzMHt3aWR0aDo5MzBweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IG1hcmdpbjo1cHggNXB4IDBweDt9IC5waWNib3g2NTEgaW1nIHsgd2lkdGg6NjUxcHg7IH0gLnBpY2JveDkzMCBpbWcgeyB3aWR0aDo5MzBweDsgfSAucGljYm94NjUxIGltZywgLnBpY2JveDkzMCBpbWcgeyBmbG9hdDpsZWZ0OyBjdXJzb3I6cG9pbnRlcjsgLW1vei1ib3JkZXItcmFkaXVzOjNweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjNweDsgYm9yZGVyLXJhZGl1czozcHg7IC1raHRtbC1ib3JkZXItcmFkaXVzOjNweDsgfSAudG9wUHJvbW9JbWFnZSBpbWcgeyAtbW96LWJvcmRlci1yYWRpdXM6M3B4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6M3B4OyBib3JkZXItcmFkaXVzOjNweDsgLWtodG1sLWJvcmRlci1yYWRpdXM6M3B4OyBtYXJnaW4tdG9wOjVweDsgd2lkdGg6OTMwcHg7IGN1cnNvcjpwb2ludGVyOyB9IC50b3BQcm9tb0ltYWdlVXNlZCBpbWcgeyAtbW96LWJvcmRlci1yYWRpdXM6M3B4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6M3B4OyBib3JkZXItcmFkaXVzOjNweDsgLWtodG1sLWJvcmRlci1yYWRpdXM6M3B4OyB3aWR0aDo2NTBweDsgY3Vyc29yOnBvaW50ZXI7IH0gLnRlYW1fdGl0bGVfZGVhbGVye21hcmdpbi1ib3R0b206MTVweDsgdGV4dC1hbGlnbjpjZW50ZXI7fSAuZm9ybXNfYm94NjYxe3dpZHRoOjk2MHB4OyBoZWlnaHQ6YXV0bzsgbWFyZ2luOjEwcHggYXV0bzsgfSAucGljYm94OTB7d2lkdGg6OTBweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IG1hcmdpbi1yaWdodDo4cHg7IGJvcmRlcjoxcHggc29saWQgI2FjYWNhYzsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjNweDsgYm9yZGVyLXJhZGl1czozcHg7IC1raHRtbC1ib3JkZXItcmFkaXVzOjNweDsgfSAucGljYm94OTAgaW1nIHt3aWR0aDo5MHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgLW1vei1ib3JkZXItcmFkaXVzOjNweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjNweDsgYm9yZGVyLXJhZGl1czozcHg7IC1raHRtbC1ib3JkZXItcmFkaXVzOjNweDsgfSAudGV4dGJveDE5MXt3aWR0aDo1MiU7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44MTNyZW0gOyBsaW5lLWhlaWdodDoxLjI7IGNvbG9yOiMyNDI0MjQ7IH0gLnRleHRib3gxOTEgaDR7IGZvbnQtc2l6ZToxLjEyNXJlbSA7IGNvbG9yOiMyNDI0MjQ7IHBhZGRpbmctYm90dG9tOjVweDsgfSAubWFpbmJveDI5MXt3aWR0aDoyOTFweDsgbWluLWhlaWdodDoxMjNweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IG1hcmdpbjowIDVweCAxMHB4IDA7IGJhY2tncm91bmQ6I2U2ZTZlNjsgYm9yZGVyOjFweCBzb2xpZCAjZDRkNGQ0OyAtbW96LWJvcmRlci1yYWRpdXM6OHB4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6OHB4OyBib3JkZXItcmFkaXVzOjhweDsgLWtodG1sLWJvcmRlci1yYWRpdXM6OHB4OyBwYWRkaW5nOjE1cHggMTBweDt9IC5sYXp5e2JvcmRlcjowO2Rpc3BsYXk6bm9uZX0gLnRlY2hTcGVjc3t3aWR0aDo2MjFweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IG1hcmdpbjowcHg7IHBhZGRpbmc6MjVweCAxNXB4OyBiYWNrZ3JvdW5kOiNlYmViZWI7IGJhY2tncm91bmQtcG9zaXRpb246cmlnaHQgYm90dG9tOyAtbW96LWJvcmRlci1yYWRpdXMtdG9wbGVmdDowcHg7LW1vei1ib3JkZXItcmFkaXVzLXRvcHJpZ2h0OjBweDstbW96LWJvcmRlci1yYWRpdXMtYm90dG9tcmlnaHQ6NnB4Oy1tb3otYm9yZGVyLXJhZGl1cy1ib3R0b21sZWZ0OjZweDstd2Via2l0LWJvcmRlci10b3AtbGVmdC1yYWRpdXM6MHB4Oy13ZWJraXQtYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6MHB4Oy13ZWJraXQtYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6NnB4Oy13ZWJraXQtYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czo2cHg7Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czowcHg7Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6MHB4O2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6NnB4O2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjZweDt9IC5lbWFpbF9saW5re3RleHQtZGVjb3JhdGlvbjpub25lOyBjb2xvcjojODg4O30gLmVtYWlsX2xpbms6aG92ZXJ7dGV4dC1kZWNvcmF0aW9uOm5vbmU7IGNvbG9yOiMzMzM7fSAucGFnZV9uYW1lNTU1IHsgY29sb3I6IzI0MjQyNDsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjEuNXJlbSA7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgaGVpZ2h0OmF1dG87IGxpbmUtaGVpZ2h0OjMwcHg7IHBhZGRpbmc6MCAwIDEwcHggMDsgd2lkdGg6MTAwJTsgYm94LXNpemluZzpib3JkZXItYm94OyBtYXJnaW46MDsgfSAucGFnZV9uYW1lNTU1IGF7IGNvbG9yOiMyNDI0MjQ7IH0gLnBhZ2VfbmFtZTU1NSBhOmhvdmVyeyBjb2xvcjojMjQyNDI0OyB0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lOyB9IC5wYWdlX25hbWU1NTUgYTp2aXNpdGVkeyBjb2xvcjojMjQyNDI0OyB9IC5wYWdlX25hbWVORVc1NTUgeyBjb2xvcjojMjQyNDI0OyBmb250LXdlaWdodDpub3JtYWw7IGhlaWdodDphdXRvOyBmb250LXNpemU6MC44NzVyZW0gOyB9IC5wYWdlX25hbWVORVc1NTUgYXsgY29sb3I6IzI0MjQyNDsgfSAucGFnZV9uYW1lTkVXNTU1IGE6aG92ZXJ7IGNvbG9yOiMyNDI0MjQ7IHRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7IH0gLnBhZ2VfbmFtZU5FVzU1NSBhOnZpc2l0ZWR7IGNvbG9yOiMyNDI0MjQ7IH0gLmJveDJfdGV4dDQ0IHsgY29sb3I6IzI0MjQyNDsgZm9udC1zaXplOjFyZW07IGhlaWdodDphdXRvOyBsaW5lLWhlaWdodDoxOHB4OyBwYWRkaW5nOjEwcHggMCAwIDA7IHdpZHRoOmF1dG87IH0gLnRleHRfYm94MTEgeyBmbG9hdDpsZWZ0OyBoZWlnaHQ6YXV0bzsgbWFyZ2luOjA7IHBhZGRpbmc6MCAyMHB4IDEwcHggMDsgd2lkdGg6YXV0bzsgbGluZS1oZWlnaHQ6MjFweDsgZGlzcGxheTpmbGV4OyBmbGV4LWRpcmVjdGlvbjpjb2x1bW47IH0gLnRleHRfYm94MTEgaDQgeyBjb2xvcjojMjQyNDI0OyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44NzVyZW0gOyBoZWlnaHQ6YXV0bzsgbWFyZ2luOjA7IHBhZGRpbmc6MTBweCAwOyB9IC50ZXh0X2JveDExIGEgeyBjb2xvcjojMjQyNDI0OyBmb250LXNpemU6MC43NXJlbSA7IGhlaWdodDphdXRvOyBtYXJnaW4tbGVmdDowOyBwYWRkaW5nOjEwcHggMDsgZmxvYXQ6bGVmdDsgfSAudGV4dF9ib3gxMSBhOmhvdmVyIHsgY29sb3I6IzI0MjQyNDsgfSAudGV4dF9ib3gxMSBhOnZpc2l0ZWQgeyBjb2xvcjojMjQyNDI0OyB9IC50ZXh0X2JveDExIHVsLCAudGV4dF9ib3gxMSBwIHsgfSAudGV4dF9ib3gxMSB1bCwgLnRleHRfYm94MTEgcCB7IGNvbG9yOiMyNDI0MjQ7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGhlaWdodDphdXRvOyBtYXJnaW46MDsgcGFkZGluZzowIDAgNXB4OyB9IC50ZXh0X2JveDExIHVsIHsgbGlzdC1zdHlsZS1wb3NpdGlvbjppbnNpZGU7IH0gLnRleHRfYm94MTEgcCBhIHsgZm9udC1zaXplOjAuODc1cmVtIDsgbWFyZ2luOjA7IHBhZGRpbmc6MDsgZmxvYXQ6bm9uZTsgfSAucGljYm94MzM2IHsgYm9yZGVyOjFweCBzb2xpZCAjN0Q3RDdEOyBmbG9hdDpsZWZ0OyBoZWlnaHQ6YXV0bzsgbWFyZ2luLXJpZ2h0OjY4cHg7IH0gLmZvbnRfc2l6ZTIxIHsgZm9udC1zaXplOjEuMzEzcmVtICFpbXBvcnRhbnQ7IH0gLnBhZ2VfbmFtZTE4IHsgY29sb3I6IzI0MjQyNDsgZm9udC1zaXplOjEuMTI1cmVtIDsgaGVpZ2h0OmF1dG87IGxpbmUtaGVpZ2h0OjMwcHg7IHBhZGRpbmc6MCAwIDEwcHggMDsgd2lkdGg6MTAwJTsgZm9udC13ZWlnaHQ6Ym9sZDsgfSAucGFnZV9uYW1lMTggYXsgY29sb3I6IzI0MjQyNDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IH0gLnBhZ2VfbmFtZTE4IGE6aG92ZXJ7IGNvbG9yOiMyNDI0MjQ7IHRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7IH0gLnZpZGVvNSB7IGZsb2F0OmxlZnQ7IGhlaWdodDo0MXB4OyBtYXJnaW4tdG9wOjcwcHg7IG1hcmdpbi1sZWZ0OjcwcHg7IH0gLmZsb2F0TG9nb3sgd2lkdGg6NjIxcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBtYXJnaW46MHB4OyBwYWRkaW5nOjI1cHggMTVweDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9MT0dPX0dBX1RSQU5TUEFSRU5ULnBuZykgcmlnaHQgYm90dG9tIG5vLXJlcGVhdDsgYmFja2dyb3VuZC1wb3NpdGlvbjpyaWdodCBib3R0b207IC1tb3otYm9yZGVyLXJhZGl1cy10b3BsZWZ0OjBweDstbW96LWJvcmRlci1yYWRpdXMtdG9wcmlnaHQ6MHB4Oy1tb3otYm9yZGVyLXJhZGl1cy1ib3R0b21yaWdodDo2cHg7LW1vei1ib3JkZXItcmFkaXVzLWJvdHRvbWxlZnQ6NnB4Oy13ZWJraXQtYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czowcHg7LXdlYmtpdC1ib3JkZXItdG9wLXJpZ2h0LXJhZGl1czowcHg7LXdlYmtpdC1ib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czo2cHg7LXdlYmtpdC1ib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjZweDtib3JkZXItdG9wLWxlZnQtcmFkaXVzOjBweDtib3JkZXItdG9wLXJpZ2h0LXJhZGl1czowcHg7Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czo2cHg7Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6NnB4OyB9IC5idXR0b24yLmpxVHJhbnNmb3JtQnV0dG9uIHsgYmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDsgYm9yZGVyOm1lZGl1bSBub25lOyBjb2xvcjojRkZGRkZGOyBjdXJzb3I6cG9pbnRlcjsgZm9udC1zaXplOjAuODEzcmVtIDsgbWFyZ2luOjA7IG92ZXJmbG93OnZpc2libGU7IHBhZGRpbmc6MDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IH0gLmJ1dHRvbjIuanFUcmFuc2Zvcm1CdXR0b24gc3BhbiB7IGJhY2tncm91bmQ6dXJsKCIvaW1hZ2VzL2J0bl9yaWdodDIucG5nIikgbm8tcmVwZWF0IHNjcm9sbCByaWdodCB0b3AgdHJhbnNwYXJlbnQ7IGRpc3BsYXk6YmxvY2s7IGZsb2F0OmxlZnQ7IGhlaWdodDozNXB4OyBtYXJnaW46MDsgcGFkZGluZzowIDZweCAwIDA7IH0gLmJ1dHRvbjIuanFUcmFuc2Zvcm1CdXR0b24gc3BhbiBzcGFuIHsgYmFja2dyb3VuZDp1cmwoIi9pbWFnZXMvYnRuX2xlZnQyLnBuZyIpIG5vLXJlcGVhdCBzY3JvbGwgbGVmdCB0b3AgdHJhbnNwYXJlbnQ7IGNvbG9yOiNGRkZGRkY7IGRpc3BsYXk6YmxvY2s7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgaGVpZ2h0OjI2cHg7IGxpbmUtaGVpZ2h0OjEzcHg7IHBhZGRpbmc6MTJweCAxM3B4IDAgMTVweDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHRleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTsgfSAuYnV0dG9uMi5qcVRyYW5zZm9ybUJ1dHRvbl9ob3ZlciBzcGFuIHNwYW4geyBiYWNrZ3JvdW5kLXBvc2l0aW9uOmxlZnQgLTM4cHg7IH0gLmJ1dHRvbjIuanFUcmFuc2Zvcm1CdXR0b25faG92ZXIgc3BhbiB7IGJhY2tncm91bmQtcG9zaXRpb246cmlnaHQgLTM4cHg7IH0gLmJ1dHRvbjIuanFUcmFuc2Zvcm1CdXR0b25fY2xpY2sgc3BhbiBzcGFuIHsgYmFja2dyb3VuZC1wb3NpdGlvbjpsZWZ0IC02NnB4OyB9IC5idXR0b24yLmpxVHJhbnNmb3JtQnV0dG9uX2NsaWNrIHNwYW4geyBiYWNrZ3JvdW5kLXBvc2l0aW9uOnJpZ2h0IC02NnB4OyB9IC52ZWhpY2xlTGlzdFRhYmxlIHsgbWFyZ2luOjEwcHg7IGZvbnQtc2l6ZTowLjc1cmVtIDsgY29sb3I6IzQxNDE0MTsgfSAudmVoaWNsZUxpc3RUYWJsZSB0ciB0ZCB7IGJvcmRlci1ib3R0b206MXB4IGRvdHRlZCAjNjY2NjY2OyBoZWlnaHQ6MzBweDsgfSAudmVoaWNsZUxpc3RUYWJsZSB0ciB0ZCBheyBjb2xvcjojNDE0MTQxOyBmb250LXNpemU6MC43NXJlbSA7IH0gLnZlaGljbGVMaXN0VGFibGUgdHIgdGQgYTpob3ZlcnsgY29sb3I6IzQxNDE0MTsgZm9udC1zaXplOjAuNzVyZW0gOyB9IC52ZWhpY2xlTGlzdFRhYmxlIHRyIHRkIGE6dmlzaXRlZHsgY29sb3I6IzQxNDE0MTsgZm9udC1zaXplOjAuNzVyZW0gOyB9IC5leHBhbmRSb3d7IGJhY2tncm91bmQtY29sb3I6IzFmMWYxZjsgdGV4dC1hbGlnbjpyaWdodDsgY29sb3I6IzQxNDE0MTsgbWFyZ2luLWxlZnQ6NHB4OyBtYXJnaW4tcmlnaHQ6MnB4OyB9IGRpdi5lcnJvck1zZyB7IGJhY2tncm91bmQtY29sb3I6I2ZmZGRkZDsgYmFja2dyb3VuZC1pbWFnZTp1cmwoIi9pbWFnZXMvZXJyb3IucG5nIik7IGJhY2tncm91bmQtcG9zaXRpb246MTBweCBjZW50ZXI7IGJhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDsgYm9yZGVyOjFweCBzb2xpZDsgY29sb3I6I2QxMDAwYzsgZGlzcGxheTpub25lOyBmbG9hdDpsZWZ0OyB6LWluZGV4Ojk5OTk7IHBhZGRpbmc6MTVweCAxMHB4IDE1cHggNTBweDsgfSBkaXYuZW1haWxTZW50TXNnIHsgYmFja2dyb3VuZC1jb2xvcjojZWZmZmVmOyBiYWNrZ3JvdW5kLWltYWdlOnVybCgiL2ltYWdlcy9hY2NlcHRlZC5wbmciKTsgYmFja2dyb3VuZC1wb3NpdGlvbjoxMHB4IGNlbnRlcjsgYmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0OyBib3JkZXI6MXB4IHNvbGlkICMwOTc3MDA7IGNvbG9yOiMwOTc3MDA7IGRpc3BsYXk6bm9uZTsgZmxvYXQ6bGVmdDsgcGFkZGluZzoxNXB4IDEwcHggMTVweCA1MHB4OyB9IGRpdi50b3lvdEltYWdlIHsgY29sb3I6IzY2NjY2NjsgZm9udC1zaXplOjMuNDM4cmVtIDsgZm9udC13ZWlnaHQ6Ym9sZDsgaGVpZ2h0OjI1MHB4OyBsZWZ0OjA7IG9wYWNpdHk6MC44OyBvdmVyZmxvdzpoaWRkZW47IHBhZGRpbmc6NXB4IDEwcHg7IHBvc2l0aW9uOmFic29sdXRlOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgd2lkdGg6MzgwcHg7IHotaW5kZXg6ODsgfSBkaXYudG95b3RJbWFnZSBwIHsgcGFkZGluZzo1cHg7IG1hcmdpbjowOyBmb250LXNpemU6MC45MzhyZW0gOyBjb2xvcjojQTZBNkE2OyB0ZXh0LWRlY29yYXRpb246bm9uZTsgfSBkaXYubmV3Q2FyTWFpbkJveCB7IHdpZHRoOjk2MHB4OyBtYXJnaW46MCBhdXRvOyB9IGRpdi5uZXdDYXJNYWluQm94MiB7IG1hcmdpbi10b3A6NXB4OyB9IGRpdi5uZXdDYXJNYWluQm94MyB7IHdpZHRoOjk2MHB4OyBoZWlnaHQ6MTJweDsgZmxvYXQ6bGVmdDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9ib3g5NzBfdG9wLnBuZykgbGVmdCB0b3Agbm8tcmVwZWF0OyB9IC5zdG9ja0ltZ1N0eWxleyB3aWR0aDoxMDAlOyBoZWlnaHQ6NTAlOyBmb250LXNpemU6Mi4yNXJlbSA7IHRleHQtYWxpZ246Y2VudGVyOyBmb250LXdlaWdodDpib2xkOyBwYWRkaW5nLXRvcDozMHB4OyBwb3NpdGlvbjphYnNvbHV0ZTsgbWFyZ2luOjBweDsgY29sb3I6IzMwMzAzMDsgfSAjZmlyc3RTbGlkZXJJbWcgeyBiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7IHBvc2l0aW9uOmFic29sdXRlOyB6LWluZGV4OjE1OyB3aWR0aDoxMDAlOyBoZWlnaHQ6YXV0bzsgb3BhY2l0eToxOyBwYWRkaW5nOjA7IG1hcmdpbjowOyB9ICNmaXJzdFNsaWRlckltZyAucGxhY2Vob2xkZXJ7IGJvcmRlcjoxcHggc29saWQgI0ZGRjsgd2lkdGg6NjQwcHg7IGhlaWdodDo0ODBweDsgfSAjZmlyc3RTbGlkZXJJbWcgLnBsYWNlaG9sZGVyIC5pbm5lci1wbGFjZWhvbGRlcnsgcG9zaXRpb246YWJzb2x1dGU7IHdpZHRoOjEwMCU7IGhlaWdodDoxMDAlOyBvdmVyZmxvdzpoaWRkZW47IGRpc3BsYXk6ZmxleDsgdG9wOjA7IGJvdHRvbTowOyBsZWZ0OjA7IHJpZ2h0OjA7IH0gI2ZpcnN0U2xpZGVySW1nIElNR3sgaGVpZ2h0OmF1dG87IG1heC13aWR0aDo2NDBweDsgbWF4LWhlaWdodDo0ODBweDsgd2lkdGg6YXV0bzsgbWFyZ2luOmF1dG87IH0gI2ZpcnN0U2xpZGVySW1nLmZhZGUtb3V0eyB2aXNpYmlsaXR5OmhpZGRlbjsgb3BhY2l0eTowOyAtd2Via2l0LXRyYW5zaXRpb246dmlzaWJpbGl0eSAxbXMgMC4yNXMsIG9wYWNpdHkgMC4yNXMgbGluZWFyOyAtbW96LXRyYW5zaXRpb246dmlzaWJpbGl0eSAxbXMgMC4yNXMsIG9wYWNpdHkgMC4yNXMgbGluZWFyOyAtby10cmFuc2l0aW9uOnZpc2liaWxpdHkgMW1zIDAuMjVzLCBvcGFjaXR5IDAuMjVzIGxpbmVhcjsgdHJhbnNpdGlvbjp2aXNpYmlsaXR5IDFtcyAwLjI1cywgb3BhY2l0eSAwLjI1cyBsaW5lYXI7IH0gI3NvY2lhbFRpbWVsaW5leyB3aWR0aDo5NjBweDsgaGVpZ2h0OmF1dG87IH0gZGl2Lm5ld0Nhck1haW5Cb3g0IHsgd2lkdGg6OTQwcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2JveDk3MF9taWQucG5nKSBsZWZ0IHRvcCByZXBlYXQteTsgcGFkZGluZzoxMHB4IDE1cHg7IH0gZGl2Lm5ld0NhclRpdGxlQm94IGgxeyB3aWR0aDo5NDBweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZToxLjg3NXJlbSA7IGNvbG9yOiMzMDMwMzA7IHRleHQtZGVjb3JhdGlvbjpub25lOyB9IC5ncmF5Ym94IHsgYmFja2dyb3VuZC1jb2xvcjojRUZFRkVGOyBib3JkZXI6MXB4IHNvbGlkICNGRkZGRkY7IGJvcmRlci1yYWRpdXM6M3B4OyBjb2xvcjojMDAwOyBmb250LXNpemU6MC44MTNyZW0gOyBsaW5lLWhlaWdodDpub3JtYWw7IHBhZGRpbmc6MTBweCAwIDEwcHggMDsgdGV4dC1hbGlnbjpjZW50ZXI7IHRleHQtc2hhZG93OjAgMXB4IDAgI0ZGRkZGRjsgfSAuZ3JheWJveCA+IHNwYW4geyBjb2xvcjojMDAwOyBmb250LXNpemU6MC44MTNyZW0gOyB0ZXh0LWFsaWduOmNlbnRlcjsgfSAuZ3JheWJveCAuc21hbGx0ZXh0IHsgYm9yZGVyLWJvdHRvbToxcHggc29saWQgI0NDQ0NDQzsgYm9yZGVyLXRvcDoxcHggc29saWQgI0NDQ0NDQzsgY29sb3I6IzMzMzMzMzsgZm9udC1zaXplOjAuNjg4cmVtIDsgbWFyZ2luLXRvcDoxMHB4OyBwYWRkaW5nOjEwcHg7IH0gLmdyYXlib3ggaDIgeyBjb2xvcjojMDAwOyBmb250LXNpemU6MS41cmVtIDsgZm9udC13ZWlnaHQ6Ym9sZDsgbWFyZ2luOjVweCBhdXRvOyB9IC5leHRlbmRlZFBob25leyBwb3NpdGlvbjpmaXhlZDsgYmFja2dyb3VuZC1jb2xvcjojNjc2NzY3OyBjb2xvcjojZGRkOyBwYWRkaW5nOjAuNmVtOyBib3JkZXItcmFkaXVzOjVweDsgei1pbmRleDo5OTk5OyBmb250LXNpemU6MC44NzVyZW0gOyB0ZXh0LWFsaWduOmxlZnQ7IH0gLmV4dGVuZGVkUGhvbmUgbGFiZWx7IGRpc3BsYXk6aW5saW5lLWJsb2NrOyB9IC5leHRlbmRlZFBob25lIHNwYW57IGNvbG9yOiNmZmY7IH0gLnBob25lTm90ZXsgZm9udC1zaXplOjAuNjg4cmVtIDsgcGFkZGluZy10b3A6N3B4OyB9IC5hZGRlZFNlYXJjaExpbmtzRGl2RXggeyBjb2xvcjojNDE0MTQxOyBmb250LXNpemU6MXJlbSA7IHRleHQtYWxpZ246bGVmdDsgcGFkZGluZy1sZWZ0OjIwcHg7IHBhZGRpbmctdG9wOjMwcHg7IH0gLmFkZGVkU2VhcmNoTGlua3NEaXYgZGl2eyBwYWRkaW5nLWxlZnQ6MTBweDsgcGFkZGluZy10b3A6MTBweDsgd2lkdGg6MjAwcHg7IGZsb2F0OmxlZnQ7IH0gLmFkZGVkU2VhcmNoTGlua3NEaXYgdWx7IG1hcmdpbi1ib3R0b206MjBweDsgZm9udC1zaXplOjAuODEzcmVtIDsgbWFyZ2luLXRvcDo1cHg7IH0gLmFkZGVkU2VhcmNoTGlua3NEaXYgdWwgbGl7IGxpc3Qtc3R5bGU6bm9uZSBvdXRzaWRlIG5vbmU7IGRpc3BsYXk6YmxvY2s7IG1hcmdpbi1sZWZ0OjQwcHg7IHRleHQtaW5kZW50Oi0xMHB4OyB9IC5hZGRlZFNlYXJjaExpbmtzRGl2IHVsIGxpIGF7IGNvbG9yOiMzMzM7IHRleHQtZGVjb3JhdGlvbjpub25lOyBjdXJzb3I6cG9pbnRlcjsgfSAuYWRkZWRTZWFyY2hMaW5rc0RpdiB1bCBsaSBheyBiYWNrZ3JvdW5kOnVybCgiL2ltYWdlcy9hcnJvd19yZWQucG5nIikgbm8tcmVwZWF0IHNjcm9sbCAwIDEwcHggdHJhbnNwYXJlbnQ7IGNvbG9yOiMzMzMzMzM7IG1hcmdpbi1yaWdodDoycHg7IHBhZGRpbmc6NnB4IDEwcHg7IHRleHQtZGVjb3JhdGlvbjpub25lOyB9IC5hZGRlZFNlYXJjaExpbmtzRGl2IHVsIGxpIGE6aG92ZXIgeyB0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lOyB9IC5jb21wYXJlTGlua3MgYXsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IH0gLmNvbXBhcmVMaW5rcyBhOmhvdmVyeyB0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lOyB9IC5lbWFpbEJvZHksIC5lbWFpbFN1YmplY3R7IGRpc3BsYXk6bm9uZTsgfSAjY29udGFjdHVzIGRpdi5lcnJvck1zZyB7IGJhY2tncm91bmQtY29sb3I6I2ZmZGRkZDsgYmFja2dyb3VuZC1pbWFnZTp1cmwoIi9pbWFnZXMvZXJyb3IucG5nIik7IGJhY2tncm91bmQtcG9zaXRpb246MTBweCBjZW50ZXI7IGJhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDsgYm9yZGVyOjFweCBzb2xpZDsgY29sb3I6I2QxMDAwYzsgZGlzcGxheTpub25lOyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjE1cHggMTBweCAxNXB4IDUwcHg7IH0gI2NvbnRhY3R1cyBkaXYuZW1haWxTZW50TXNnIHsgYmFja2dyb3VuZC1jb2xvcjojZWZmZmVmOyBiYWNrZ3JvdW5kLWltYWdlOnVybCgiL2ltYWdlcy9hY2NlcHRlZC5wbmciKTsgYmFja2dyb3VuZC1wb3NpdGlvbjoxMHB4IGNlbnRlcjsgYmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0OyBib3JkZXI6MXB4IHNvbGlkICMwOTc3MDA7IGNvbG9yOiMwOTc3MDA7IGRpc3BsYXk6bm9uZTsgZmxvYXQ6bGVmdDsgcGFkZGluZzoxNXB4IDEwcHggMTVweCA1MHB4OyB9ICNQYWdlRmluYW5jZSAuc3RlcEFjdGl2ZSB7IGJhY2tncm91bmQ6dXJsKCIvaW1hZ2VzLzFfaG92ZXIucG5nIikgbm8tcmVwZWF0IHNjcm9sbCBsZWZ0IHRvcCB0cmFuc3BhcmVudDsgY29sb3I6IzAwMDAwMDsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjIuMjVyZW0gOyBmb250LXdlaWdodDpib2xkOyBoZWlnaHQ6NDZweDsgbGluZS1oZWlnaHQ6NDZweDsgdGV4dC1hbGlnbjpjZW50ZXI7IHRleHQtZGVjb3JhdGlvbjpub25lOyB3aWR0aDo0NnB4OyBtYXJnaW4tbGVmdDoxMHB4OyB9ICNQYWdlRmluYW5jZSAuc3RlcFVuYWN0aXZlIHsgYmFja2dyb3VuZDp1cmwoIi9pbWFnZXMvMV9yb3VuZC5wbmciKSBuby1yZXBlYXQgc2Nyb2xsIGxlZnQgdG9wIHRyYW5zcGFyZW50OyBjb2xvcjojRkZGRkZGOyBmbG9hdDpsZWZ0OyBmb250LXNpemU6Mi4yNXJlbSA7IGZvbnQtd2VpZ2h0OmJvbGQ7IGhlaWdodDo0NnB4OyBsaW5lLWhlaWdodDo0NnB4OyB0ZXh0LWFsaWduOmNlbnRlcjsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHdpZHRoOjQ2cHg7IG1hcmdpbi1sZWZ0OjEwcHg7IH0gI1BhZ2VGaW5hbmNlIC50ZXh0MSBzcGFuIHsgY29sb3I6IzQzNDM0MzsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjEuODc1cmVtIDsgZm9udC13ZWlnaHQ6Ym9sZDsgaGVpZ2h0OjQ2cHg7IGxpbmUtaGVpZ2h0OjQ2cHg7IHBhZGRpbmc6MDsgdGV4dC1hbGlnbjpsZWZ0OyB0ZXh0LWRlY29yYXRpb246bm9uZTsgdGV4dC1zaGFkb3c6MXB4IDFweCAxcHggI0YzRjNGMzsgd2lkdGg6YXV0bzsgfSAjUGFnZUZpbmFuY2UgZGl2LmVtYWlsU2VudE1zZyB7IGJhY2tncm91bmQtY29sb3I6I0I4RkZCODsgYmFja2dyb3VuZC1pbWFnZTp1cmwoIi9pbWFnZXMvYWNjZXB0ZWQucG5nIik7IGJhY2tncm91bmQtcG9zaXRpb246MTBweCBjZW50ZXI7IGJhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDsgYm9yZGVyOjFweCBzb2xpZCAjMEI5NjAwOyBjb2xvcjojMEI5NjAwOyBkaXNwbGF5Om5vbmU7IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MTVweCAxMHB4IDE1cHggNTBweDsgfSAub3RoZXJfbGlua3MgYXsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IH0gLm90aGVyX2xpbmtzIGE6aG92ZXJ7IHRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7IH0gLnByb21vdGlvblNpZGVCdG5BIHsgYmFja2dyb3VuZDojMDI3NmIzOyBjb2xvcjojZmZmZmZmOyBkaXNwbGF5OmJsb2NrO2ZvbnQtc2l6ZToxLjI1cmVtIDt3aWR0aDpmaXQtY29udGVudDtoZWlnaHQ6NTNweDtwYWRkaW5nOjJweCAxNXB4IDBweCAxNXB4O2N1cnNvcjpwb2ludGVyO2xpbmUtaGVpZ2h0OjUzcHg7dGV4dC1kZWNvcmF0aW9uOm5vbmU7YmFja2dyb3VuZC1zaXplOjEwMCU7IC1tb3otYm9yZGVyLXJhZGl1cy10b3BsZWZ0OjNweDsgLW1vei1ib3JkZXItcmFkaXVzLXRvcHJpZ2h0OjNweDsgLW1vei1ib3JkZXItcmFkaXVzLWJvdHRvbXJpZ2h0OjBweDsgLW1vei1ib3JkZXItcmFkaXVzLWJvdHRvbWxlZnQ6MDsgLXdlYmtpdC1ib3JkZXItdG9wLWxlZnQtcmFkaXVzOjNweDsgLXdlYmtpdC1ib3JkZXItdG9wLXJpZ2h0LXJhZGl1czozcHg7IC13ZWJraXQtYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6MDsgLXdlYmtpdC1ib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjA7IGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOjNweDsgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czozcHg7IGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOnB4OyBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjBweDsgdHJhbnNmb3JtOnJvdGF0ZSgtOTBkZWcpOyAtbXMtdHJhbnNmb3JtOnJvdGF0ZSgtOTBkZWcpOyAtd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoLTkwZGVnKTsgfSAuZm9vdGVyTXVsdGlBZGRyZXNzMyB7IGJvcmRlci1yaWdodDoxcHggIzkxOTE5MSBzb2xpZDsgcGFkZGluZy1yaWdodDo3MHB4OyBtYXJnaW4tbGVmdDoxNHB4OyBjb2xvcjojNTc1NzU3OyB9IC5mb290ZXJNdWx0aUFkZHJlc3MyIHsgYm9yZGVyLXJpZ2h0OjFweCAjOTE5MTkxIHNvbGlkOyBwYWRkaW5nLXJpZ2h0OjE1MHB4OyBtYXJnaW4tbGVmdDo5M3B4OyBjb2xvcjojNTc1NzU3OyB9IC5mb290ZXJNdWx0aUFkZHJlc3MxIHsgbWFyZ2luLWxlZnQ6MzQ1cHg7IGNvbG9yOiM1NzU3NTc7IH0gLnNtYWxsQWN0aW9uV2Vic2l0ZUNvbG9yIHsgYmFja2dyb3VuZCA6dXJsKCIvaW1hZ2VzL2JsX2JnMi5wbmciKSBsZWZ0IHRvcCByZXBlYXQteDsgY29sb3I6cmdiKDE2LDQzLDc4KTsgfSAuc21hbGxBY3Rpb25XZWJzaXRlQ29sb3I6aG92ZXJ7IGJhY2tncm91bmQgOnVybCgiL2ltYWdlcy9tZW51MTBfYmcucG5nIikgbGVmdCB0b3AgcmVwZWF0LXg7IGNvbG9yOiNGRkY7IH0gLm5hdiBsaSBhLnRvcF9saW5rLmlzQm9sZCwgLm5hdiBsaSBhLmlzQm9sZHsgZm9udC13ZWlnaHQ6Ym9sZDsgfSAjbWFpbkhlYWRlciBkaXYuYm94MTVQYWRkaW5neyBwYWRkaW5nLXRvcDoxNXB4OyB9IC5uYXYgLm5vdENsaWNrYWJsZXsgY3Vyc29yOmRlZmF1bHQgIWltcG9ydGFudDsgfSAuUzEwMFBlcmNlbnRXaWR0aHsgd2lkdGg6MTAwJTsgfSAjZmlsdGVyTWFpbkJveCB7IGNvbG9yOiMwMDA7IH0gI2ZpbHRlck1haW5Cb3ggLmZpbHRlclNwYW4sICNmaWx0ZXJNYWluQm94IC5maWx0ZXJDaGVjaywgI2ZpbHRlck1haW5Cb3ggLnJhZGlvU29ydCB7IGN1cnNvcjpwb2ludGVyOyB9IC5iQ29kZVN0eWxlIHsgZmxvYXQ6bGVmdDsgd2lkdGg6MjUlOyBmb250LXNpemU6MC44ZW07IHBhZGRpbmctdG9wOjE1cHg7IHBhZGRpbmctYm90dG9tOjE1cHg7IGJhY2tncm91bmQtY29sb3I6OyB9IC5iQ29kZVNvcnQgeyBmbG9hdDpsZWZ0OyB3aWR0aDoxNiU7IGJhY2tncm91bmQtY29sb3I6OyBmb250LXNpemU6MC44ZW07IHBhZGRpbmctdG9wOjE1cHg7IHBhZGRpbmctYm90dG9tOjE1cHg7IH0gLmJDb2RlU29ydCAuYkNvZGVIZWFkaW5nLCAuYkNvZGVTdHlsZSAuYkNvZGVIZWFkaW5nIHsgbWFyZ2luLWJvdHRvbTo1cHg7IGZvbnQtd2VpZ2h0OmJvbGQ7IHBhZGRpbmctbGVmdDoycHg7IH0gLnBhZ2VfbmFtZTQye3dpZHRoOjk0MHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgcGFkZGluZzowIDBweCAxMHB4IDIxcHg7IGxpbmUtaGVpZ2h0OjMwcHg7IGZvbnQtc2l6ZToxLjVyZW0gOyBjb2xvcjojMDAwMDAwO30gLnBhZ2VfbmFtZTQyIGgyIHtmb250LXNpemU6MS41cmVtIDsgY29sb3I6IzAwMDAwMDtmb250LXdlaWdodDpub3JtYWw7Ym9yZGVyOm5vbmU7fSAucGFnZV9uYW1lNDIgaDIubm90Zmlyc3Qge2ZvbnQtc2l6ZToxLjVyZW0gOyBjb2xvcjojMDAwMDAwO2ZvbnQtd2VpZ2h0Om5vcm1hbDttYXJnaW4tdG9wOjBweDtwYWRkaW5nLXRvcDo0MHB4O2JvcmRlci10b3A6MXB4ICNjY2NjY2Mgc29saWQ7d2lkdGg6OTIwcHg7fSAjZmlsdGVyTWFpbkJveC5uZXdjYXJzc3R5bGUyeyAtbW96LWJvcmRlci1yYWRpdXM6MHB4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6MHB4OyAta2h0bWwtYm9yZGVyLXJhZGl1czowcHg7IGJvcmRlci1yYWRpdXM6MHB4OyBib3JkZXI6bm9uZTsgYm9yZGVyLXRvcDoxcHggc29saWQgI2JlYmViZTsgYm9yZGVyLWJvdHRvbToxcHggc29saWQgI2JlYmViZTsgd2lkdGg6OTU1cHg7IGxlZnQ6M3B4OyB9IGRpdi5pbWRldiBsYWJlbHsgZm9udC13ZWlnaHQ6Ym9sZDsgcGFkZGluZy10b3A6MTBweDsgfSBkaXYuaW1kZXYgZGl2eyBiYWNrZ3JvdW5kOm5vbmU7IGJhY2tncm91bmQtY29sb3I6I0Q5RDlEOTsgcGFkZGluZzoxMHB4IDBweCAxMHB4IDBweDsgd2lkdGg6MTAwJTsgZm9udC1zaXplOjAuODEzcmVtIDsgfSBkaXYuaW1kZXZfaW5uZXIgeyBmb250LXdlaWdodDpub3JtYWw7IG1hcmdpbi1sZWZ0OjMwcHg7IHdpZHRoOjkwJSAhaW1wb3J0YW50OyB9IHVsLnF1aXoge3BhZGRpbmc6MTBweCAwIDEwcHggMjBweDsgbGlzdC1zdHlsZS10eXBlOm5vbmU7IGhlaWdodDoxNzVweDt9IHVsLnF1aXogbGkge3BhZGRpbmc6MTBweDt9IHVsLnF1aXogbGkgaW5wdXQge21hcmdpbi1yaWdodDoxMHB4O30gLm5ld3MtYm9keSB7d2lkdGg6MTAwJTt0ZXh0LWFsaWduOnJpZ2h0O2ZvbnQtc2l6ZTowLjgxM3JlbSA7Y29sb3I6IzE5MTkxOTtwYWRkaW5nLXJpZ2h0OjE1cHg7bWFyZ2luLXRvcDotMjBweDtwYWRkaW5nLWJvdHRvbToxMHB4O30gLm5ld3MtYWxsLXRleHQge2NvbG9yOiMxOTE5MTk7fSAjbmV3c0NvbnRhaW5lciAudGV4dF9ib3gxMSBpbWcgeyBtYXgtd2lkdGg6NjQwcHg7IGRpc3BsYXk6YmxvY2s7IG1hcmdpbjo1cHggYXV0bzsgfSAjbmV3c0NvbnRhaW5lciAudXNlZHsgY2xlYXI6Ym90aDsgfSAuaG9tZV9hY3Rpb25fYWRqIHsgd2lkdGg6OTYxcHg7IH0gLmhvbWVfYWN0aW9uX2FkajIgeyB3aWR0aDo3MzBweCFpbXBvcnRhbnQ7IGhlaWdodDo2MDBweCFpbXBvcnRhbnQ7IH0gLmhvbWVfZW1haWx7IHdpZHRoOjIzMnB4OyBtYXJnaW4tbGVmdDo1cHg7IG1hcmdpbi1ib3R0b206NXB4OyB9IC53aWRnZXRfbWVudV9hZGoxeyBmb250LXNpemU6MC44ZW07IH0gLndpZGdldF9tZW51X2FkajJ7IGZsb2F0OnJpZ2h0O3Bvc2l0aW9uOnJlbGF0aXZlO3RvcDotMnB4OyB9IC53aWRnZXRfbWVudV9leHRlbmRlZFBob25leyBmb250LXNpemU6MC44ZW07IG1hcmdpbi1sZWZ0OjEwNHB4OyB0b3A6MTMycHg7IH0gLndpZGdldF9tZW51X2FkajN7IGZvbnQtc2l6ZTowLjhlbTtjb2xvcjojNTc1NzU3O3Bvc2l0aW9uOnJlbGF0aXZlO2xlZnQ6LThweDsgfSAud2lkZ2V0X21lbnVfYWRqNHsgcG9zaXRpb246cmVsYXRpdmU7IGZvbnQtc2l6ZTowLjhlbTsgZGlzcGxheTp0YWJsZTsgfSAucGhvbmVfdGV4dC5yaWdodCB7IGZsb2F0Om5vbmU7IGhlaWdodDppbml0aWFsOyBtYXJnaW4tbGVmdDphdXRvOyB3aWR0aDppbmhlcml0OyB9IC5waG9uZV90ZXh0IC50ZWwgeyBtYXJnaW4tbGVmdDoxMHB4OyB9IC5waG9uZV90ZXh0IGxhYmVsIHsgZGlzcGxheTpmbGV4OyBqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjsgbWFyZ2luLWJvdHRvbTo0cHg7IH0gLndpZGdldF9tZW51X2FkajQucmlnaHQgeyBwYWRkaW5nLWxlZnQ6MTBweDsgdGV4dC1hbGlnbjpyaWdodDsgfSAud2lkZ2V0X21lbnVfYWRqNC5sZWZ0IHsgcGFkZGluZy1yaWdodDoxMHB4OyB3aWR0aDppbmhlcml0OyB9IC53aWRnZXRfbWVudV9hZGo2eyBmb250LXNpemU6MC44ZW07cG9zaXRpb246cmVsYXRpdmU7bGVmdDotM3B4O2NvbG9yOiM1NzU3NTc7Y3Vyc29yOnBvaW50ZXI7IH0gLndpZGdldF9leHByZXNzX21haWxfcGhvbmVfdGl0bGV7IGJvcmRlci1ib3R0b206MXB4IHNvbGlkICNhYWE7dGV4dC1hbGlnbjogY2VudGVyO2ZvbnQtc2l6ZToxLjVyZW0gOyBmb250LXdlaWdodDpib2xkOyBwYWRkaW5nLWJvdHRvbTo4cHg7IHBhZGRpbmctdG9wOjhweDsgY29sb3I6IzAwMDAwMDsgfSAud2lkZ2V0X2V4cHJlc3NfbWFpbF9hZGoxeyBwYWRkaW5nOjE1cHggMTBweDsgbGluZS1oZWlnaHQ6NjBweDsgZm9udC1zaXplOjJlbTsgcGFkZGluZzoxNXB4IDEwcHg7dGV4dC1hbGlnbjpjZW50ZXI7IH0gLmJhbm5lclBvcHVwQ2xvc2V7IGxlZnQ6NzEwcHg7IHBvc2l0aW9uOnJlbGF0aXZlOyB3aWR0aDoxNXB4OyB0b3A6MjBweDsgY3Vyc29yOnBvaW50ZXI7IH0gLnByaWNlTm90ZSB7IGNvbG9yOiM3NTc1NzU7IGZvbnQtc3R5bGU6aXRhbGljOyB0ZXh0LWFsaWduOmp1c3RpZnk7IGRpc3BsYXk6YmxvY2s7IHBhZGRpbmctcmlnaHQ6MTBweDsgZm9udC1zaXplOjAuNzVyZW0gIWltcG9ydGFudDsgbWFyZ2luLWJvdHRvbToxNHB4OyB9IC5zdGFja2VkRGlzY2xhaW1lcnsgZGlzcGxheTpibG9jazsgbWFyZ2luLXRvcDoxMHB4OyB9IHNwYW4uc3RhY2tlZERpc2NsYWltZXI6YmVmb3JleyBjb250ZW50OiIqKiI7IHBvc2l0aW9uOnJlbGF0aXZlOyBmb250LXNpemU6MXJlbTsgfSAudG9wcmludHsgZGlzcGxheTpub25lOyB9IC5yZWZmZXJlbmNlQ29udGVudERlbW8sIC5yZWZmZXJlbmNlQ29udGVudENsZWFyYW5jZXsgcGFkZGluZzozMHB4IDIwcHg7IGJvcmRlci1ib3R0b206MXB4IHNvbGlkICNjY2M7IG1hcmdpbi1ib3R0b206MjBweDsgfSAuYm94Ml9kZXRhaWxzX3RleHQyIC5jb21wYXJlQnV0dG9uLCAuYm94Ml9kZXRhaWxzX3RleHQyMiAuY29tcGFyZUJ1dHRvbnsgcG9zaXRpb246YWJzb2x1dGU7IG1hcmdpbi10b3A6LTIwcHg7IHotaW5kZXg6MTsgbGVmdDotMzBweDsgfSAudmRweyBjbGVhcjpib3RoOyB3aWR0aDoxNjBweDsgfSAuY29tcGFyZUJ1dHRvbnsgdHJhbnNpdGlvbjpib3gtc2hhZG93IDAuMjVzIGVhc2Utb3V0IDBzOyB0cmFuc2l0aW9uOnRyYW5zZm9ybSAwLjI1cyBlYXNlLW91dCAwczsgZGlzcGxheTpub25lOyB9IGRpdiNzbGlkZXItcHJvLTEyIHsgYm9yZGVyOjFweCBzb2xpZCAjRUJFQkVCOyBib3JkZXItcmFkaXVzOjNweDsgYmFja2dyb3VuZDojZmZmOyB9ICNzbGlkZXJQcm9tb0FsZXJ0eyBib3JkZXItcmFkaXVzOjNweCAzcHggMCAwOyB9IC5zbGlkZS13cmFwcGVyeyBib3JkZXItcmFkaXVzOjNweDsgfSAjc2xpZGVpdCBsYWJlbC5vcGVueyBib3JkZXItcmFkaXVzOjNweCAwIDAgM3B4OyB9IGltZy5pbWFnZSB7IGJvcmRlci1yYWRpdXM6M3B4OyB9IC5uZXdWZHBWaWV3ZXIgLmNvbXBhcmVCdXR0b257IHBvc2l0aW9uOmFic29sdXRlOyBib3R0b206MnB4OyByaWdodDowcHg7IHotaW5kZXg6MTExMTsgfSAubGl2ZUFsZXJ0X2xpbmt7IGNvbG9yOiNGRkZGRkY7IHRleHQtZGVjb3JhdGlvbjpub25lOyBmb250LXdlaWdodDpib2xkOyB9IC5saXZlQWxlcnRfbGluazpob3ZlciB7IHRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7IH0gLmJ1dHRvbi10b2FzdHJ7IGJhY2tncm91bmQ6I0ZGRjtwYWRkaW5nOjRweCAyMHB4O2JvcmRlci1yYWRpdXM6NXB4OyBjb2xvcjojQkQzNjJGIWltcG9ydGFudDsgfSAuYnV0dG9uLXRvYXN0cjpob3ZlcnsgYmFja2dyb3VuZDojMDAwOyBjb2xvcjojRkZGOyB9IC5yZXR1cm5Qb3B1cF9zdWJtaXQgc3BhbiB7IHBvc2l0aW9uOmFic29sdXRlIWltcG9ydGFudDsgdG9wOjUwJSFpbXBvcnRhbnQ7IGRpc3BsYXk6YmxvY2shaW1wb3J0YW50OyB0ZXh0LWFsaWduOmNlbnRlciFpbXBvcnRhbnQ7IGxlZnQ6MCFpbXBvcnRhbnQ7IHJpZ2h0OjAhaW1wb3J0YW50OyBwYWRkaW5nOjAgOHB4IDAgOHB4IWltcG9ydGFudDsgY3Vyc29yOnBvaW50ZXIhaW1wb3J0YW50OyBmb250LXNpemU6MC44NzVyZW0gIWltcG9ydGFudDsgbWFyZ2luOjAhaW1wb3J0YW50OyBjb2xvcjojRkZGIWltcG9ydGFudDsgbWFyZ2luLXRvcDotOXB4IWltcG9ydGFudDsgfSByZXR1cm5Qb3B1cF9zdWJtaXQ6aG92ZXIgeyBiYWNrZ3JvdW5kLWNvbG9yOiMwYmIxZTA7IGNvbG9yOiNmZmY7IH0gLnJldHVyblBvcHVwX3N1Ym1pdCB7IGRpc3BsYXk6YmxvY2s7IGJvcmRlci1zdHlsZTpzb2xpZDsgYm9yZGVyLXJhZGl1czo1cHg7IGxlZnQ6MjI4cHg7IHotaW5kZXg6NTsgd2lkdGg6MjI1cHg7IGhlaWdodDo0MHB4OyBwb3NpdGlvbjphYnNvbHV0ZTsgYmFja2dyb3VuZC1jb2xvcjojZGUwMDAwOyB0ZXh0LXNoYWRvdzoxcHggMXB4ICMwMDJiNDY7IGNvbG9yOiNmZmY7IGJvcmRlci13aWR0aDoxcHg7IGJvcmRlci1jb2xvcjojMzMzMzMzOyBmb250LXNpemU6MXJlbSA7IGxpbmUtaGVpZ2h0OjE5cHg7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgdGV4dC1hbGlnbjpjZW50ZXI7IGJhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDsgfSAjcmV0dXJuUG9wdXBGb3JtX3dyYXBwZXIgeyBkaXNwbGF5OmJsb2NrOyBiYWNrZ3JvdW5kOnJnYmEoNjYsNjYsNjYsMSk7IGJvcmRlci1zdHlsZTpub25lOyBib3JkZXItcmFkaXVzOjExcHg7IGxlZnQ6MjgwcHg7IHRvcDoxNTVweDsgei1pbmRleDoyOyB3aWR0aDo1MzFweDsgaGVpZ2h0OjM4NHB4OyBwb3NpdGlvbjphYnNvbHV0ZTsgfSAjcmV0dXJuUG9wdXBUaWx0ZXsgd2lkdGg6MzM1cHg7IGZsb2F0OnJpZ2h0OyBtYXJnaW46MjBweDsgY29sb3I6IzAwMDAwMDsgZm9udC1zaXplOjEuMTI1cmVtIDsgfSAjcmV0dXJuUG9wdXBUaWx0ZSAucnBfbWN7IGZvbnQtc2l6ZToxLjEyNXJlbSAhaW1wb3J0YW50OyB9ICNyZXR1cm5Qb3B1cFRpbHRlMnsgY29sb3I6I0ZGRjsgbWFyZ2luOjIwcHggMTBweCAyMHB4IDIwcHg7IHBhZGRpbmc6MDsgfSAucmV0dXJuUG9wdXBGb3JtX2xhYmVsIHsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXNpemU6MC44MTNyZW0gOyBsaW5lLWhlaWdodDoxNHB4OyBjb2xvcjojYmZiZmJmOyBtYXJnaW4tbGVmdDoyMHB4OyBkaXNwbGF5OmlubGluZS1ibG9jazsgfSAucmV0dXJuUG9wdXBGb3JtX3RhYmxlIHRyIHRkeyBwYWRkaW5nLWJvdHRvbToxMHB4OyB9IC5ycF9tYyB7IGZvbnQtc2l6ZTowLjg3NXJlbSAhaW1wb3J0YW50OyBjb2xvcjojZGUwMDAwIWltcG9ydGFudDsgcGFkZGluZzowIWltcG9ydGFudDsgbWFyZ2luOjAhaW1wb3J0YW50OyB9ICNleGl0UG9wdXBDb250YWluZXJ7IHBhZGRpbmc6MDsgYmFja2dyb3VuZC1pbWFnZTpub25lOyB9ICNleGl0X3BvcHVwX2FjY3V0cmFkZV9mb3JteyBoZWlnaHQ6MzRyZW07IGJhY2tncm91bmQtaW1hZ2U6dXJsKC9pbWFnZXMvcG9wdXBzL3RyYWRlaW4tZXhpdHBvcHVwLWZyLnBuZyk7IGJhY2tncm91bmQtY29sb3I6dmFyKC0tZXhpdC1wb3B1cC1iZ2NvbCwgI2VlZSk7IH0gYm9keS5FTkdMSVNIICNleGl0X3BvcHVwX2FjY3V0cmFkZV9mb3JteyBiYWNrZ3JvdW5kLWltYWdlOnVybCgvaW1hZ2VzL3BvcHVwcy90cmFkZWluLWV4aXRwb3B1cC1lbi5wbmcpOyB9IC5leGl0X3BvcHVwX2J1dHRvbnMgYnV0dG9uIHsgd2lkdGg6MTFyZW07IGZvbnQtd2VpZ2h0OmJvbGQ7IH0gLmV4aXRfcG9wdXBfdGV4dF9saW5lXzJ7IG1hcmdpbi10b3A6MjdweDsgbWFyZ2luLWJvdHRvbTo1cHg7IH0gLmV4aXRfcG9wdXBfdGV4dF9saW5lXzN7IGZvbnQtc2l6ZToxLjYyNXJlbSA7IG1hcmdpbi1ib3R0b206M3B4OyBmb250LXdlaWdodDpib2xkZXI7IH0gLmV4aXRfcG9wdXBfdGV4dF9saW5lXzUgeyBtYXJnaW4tYm90dG9tOjIwcHg7IGZvbnQtc2l6ZToxLjYyNXJlbSA7IGZvbnQtd2VpZ2h0OmJvbGRlcjsgbWFyZ2luLXRvcDo2M3B4OyB9ICNleGl0X3BvcHVwX2FjY3V0cmFkZV90aXRsZXsgaGVpZ2h0Ojk1cHg7IHdpZHRoOjU3MHB4OyBtYXJnaW4tdG9wOjIwcHg7IH0gI2V4aXRfcG9wdXBfYWNjdXRyYWRlX3RpdGxlLl9GUkVOQ0h7IGJhY2tncm91bmQtaW1hZ2U6dXJsKC9pbWFnZXMvcG9wdXBzL2FjY3UtdHJhZGUtZXhpdC10aXRsZV9mci5wbmcpOyB9ICNleGl0X3BvcHVwX2FjY3V0cmFkZV90aXRsZS5fRU5HTElTSHsgYmFja2dyb3VuZC1pbWFnZTp1cmwoL2ltYWdlcy9wb3B1cHMvYWNjdS10cmFkZS1leGl0LXRpdGxlX2VuLnBuZyk7IH0gI2Jlc3RQcmljZVZkcE5ld1BvcHVwQ29udGFpbmVyeyB3aWR0aDo0ODBweDsgaGVpZ2h0OjUxMHB4OyB9ICNiZXN0UHJpY2VWZHBOZXdQb3B1cENvbnRhaW5lciAucG9wdXBfYmd7IHdpZHRoOjQ4MHB4OyBoZWlnaHQ6NTE1cHg7IH0gI2Jlc3RQcmljZVZkcE5ld1BvcHVwQ29udGFpbmVyIC5wb3B1cF9iZ3sgYmFja2dyb3VuZC1pbWFnZTp1cmwoJy9pbWFnZXMvcG9wdXBzL2ZyL2Jlc3RQcmljZU5ld1ZkcC5wbmcnKTsgfSAucG9wdXBfYmd7IGJhY2tncm91bmQtY29sb3I6I2YzZjNmMzsgYmFja2dyb3VuZC1zaXplOjQ4MHB4IDUxNXB4OyB9IC5wb3B1cEZvcm0gLmFzdGVyaXNreyBjb2xvcjojZDAwOyBmb250LXdlaWdodDpib2xkOyBwYWRkaW5nOjA7IGZvbnQtc2l6ZTppbmhlcml0OyBtYXJnaW46MDsgfSAucG9wdXBGb3JteyB6LWluZGV4OjUwOyBwb3NpdGlvbjphYnNvbHV0ZTsgdG9wOjI0OHB4OyBoZWlnaHQ6MjQ5cHg7IGxlZnQ6ODBweDsgYmFja2dyb3VuZDp1cmwoIi9pbWFnZXMvY291cG9uLWZvcm0tYmctMi5wbmciKSBuby1yZXBlYXQ7IHdpZHRoOjMzNXB4OyBwYWRkaW5nOjMwcHg7IH0gLnBvcHVwRm9ybVRpdGxleyBoZWlnaHQ6NDBweDsgbWFyZ2luOjhweDsgZm9udC1zaXplOjAuOTM4cmVtIDsgZm9udC13ZWlnaHQ6Ym9sZDsgfSAucG9wdXBGb3JtSW5wdXRzIHRkIHsgZm9udC1zaXplOjAuODc1cmVtIDsgdGV4dC1hbGlnbjpyaWdodDsgcGFkZGluZy1yaWdodDoxMHB4OyBwYWRkaW5nLWJvdHRvbTozcHg7IH0gLnBvcHVwRm9ybSBpbnB1dHsgd2lkdGg6MjEwcHg7IH0gI2FzUHVyY2hhc2VJbnRlbnR7IHdpZHRoOjYwMHB4OyBwYWRkaW5nOjMwcHggMzBweDsgaGVpZ2h0OmF1dG87IGNvbG9yOiMwMDA7IGJhY2tncm91bmQtY29sb3I6I2VlZTsgei1pbmRleDoxMDAwMDIxOyB9ICNwcm9tb0Rpc2NvdmVyQnV0dG9ueyB9IC5uZXdWZHBWaWV3ZXIgeyB3aWR0aDo2NDBweDsgaGVpZ2h0OjQ4MHB4OyBmbG9hdDpsZWZ0OyBtYXJnaW4tbGVmdDoyMHB4OyB9IC5sb2NhdGlvbi1uYW1lcyB7IHBvc2l0aW9uOnN0YXRpYzsgfSAjTWFpbk1lbnVfREVBTEVSU0hJUFMgPiB1bC5zdWIgPiBsaSA+IHVsIHsgcG9zaXRpb246c3RhdGljOyB9IC5pbWdfbWVudS51cF9tZW51IHVsLm5hdiB1bC5zdWIgbGkgLmxvY2F0aW9uLW5hbWVzIHsgbWluLXdpZHRoOjIwMHB4OyB9ICNNYWluTWVudV9ERUFMRVJTSElQUyBsaS5sb2NhdGlvbi1uYW1lcyB7IG1pbi13aWR0aDoyMDBweDsgfSAubG9jYXRpb24tbmFtZXMsIC5sb2NhdGlvbi1uYW1lcyBsaSB7IGxpc3Qtc3R5bGU6bm9uZTsgfSAuTDEwMCB7IGxlZnQ6MTAwJTsgfSAuUjEwMCB7IHJpZ2h0OjEwMCU7IH0gLmxvY2F0aW9uLW5hbWVzIC5sb2NhdGlvbi1kZXRhaWxzIHsgcG9zaXRpb246YWJzb2x1dGU7IHRvcDowOyBwYWRkaW5nOjE0cHg7IGJveC1zaGFkb3c6MCA2cHggMTJweCByZ2JhKDAsMCwwLC4xNzUpOyBkaXNwbGF5Om5vbmU7IGJhY2tncm91bmQtY29sb3I6d2hpdGU7IG1pbi13aWR0aDoyOTBweDsgfSAubG9jYXRpb24tbmFtZXMgLmxvY2F0aW9uLWRldGFpbHMgPiAudGl0bGUgeyBtYXJnaW4tYm90dG9tOjFlbTsgZm9udC1zaXplOmluaXRpYWw7IGNvbG9yOiMwMDAwMDA7IH0gLmxvY2F0aW9uLW5hbWVzIC5sb2NhdGlvbi1kZXRhaWxzID4gLmxvY2F0aW9uLWRldGFpbHMtbG9nbyA+IGltZyB7IG1heC13aWR0aDoxMDAlOyBtYXJnaW4tYm90dG9tOjhweDsgfSBsaS5sb2NhdGlvbi1uYW1lczpob3ZlciAubG9jYXRpb24tZGV0YWlscyB7IGRpc3BsYXk6YmxvY2s7IH0gbGkubG9jYXRpb24tbmFtZXM6aG92ZXIgLm1haW5tZW51LXN1Ym1lbnUgeyBvcGFjaXR5OjE7IHZpc2liaWxpdHk6dmlzaWJsZTsgfSAubG9jYXRpb24tbmFtZXMgLmxvY2F0aW9uLWRldGFpbHMgLmxvY2F0aW9uLWRldGFpbHMtbG9nbyB7IGJvcmRlci1ib3R0b206MXB4IHNvbGlkICNlNWU1ZTU7IG1hcmdpbi1ib3R0b206OHB4OyB0ZXh0LWFsaWduOmNlbnRlcjsgfSAjTWFpbk1lbnVfREVBTEVSU0hJUFMgLmxvY2F0aW9uLW5hbWVzIC5tYWlubWVudS1zdWJtZW51IC5sb2NhdGlvbi1kZXRhaWxzIHsgbWF4LWhlaWdodDo2MHZoOyBwb3NpdGlvbjpzdGF0aWM7IH0gLnVwX21lbnUgdWwubmF2IC5sb2NhdGlvbi1kZXRhaWxzLWluZm8gYSB7IGNvbG9yOiMwMDAwMDA7IHBhZGRpbmc6MDsgfSAubG9jYXRpb24tZGV0YWlscy1pbmZvIC5sb2NhdGlvbi1zcGFjaW5nLW1sLTEzIHsgbWFyZ2luLWxlZnQ6MTMuNDlweDsgfSAudXBfbWVudSB1bC5uYXYgbGkuZGV0YWlscy1pbmZvLWxpbmsgYSB7IGRpc3BsYXk6aW5saW5lLWJsb2NrOyB9IC51cF9tZW51IHVsLm5hdiAuZGV0YWlscy1pbmZvLWxpbms6aG92ZXIgYSB7IGNvbG9yOiNmZmZmZmY7IH0gI01haW5NZW51X0RFQUxFUlNISVBTID4gdWwuc3ViID4gbGkgPiB1bCB7IG1heC1oZWlnaHQ6NjB2aDsgb3ZlcmZsb3cteTphdXRvOyBvdmVyZmxvdy14OmhpZGRlbjsgfSBib2R5IC53cmFwcGVyIC51cF9tZW51IC5uYXYgPiBsaTpob3ZlciB1bC5zdWIgbGk6aG92ZXIgLmRldGFpbHMtaW5mby1saW5rIGxpOmhvdmVyIGEgeyBkaXNwbGF5OmlubGluZS1ibG9jazsgYmFja2dyb3VuZC1pbWFnZTpub25lOyBjb2xvcjojZmZmZmZmOyBiYWNrZ3JvdW5kLWNvbG9yOiMxMDJiNGU7IH0gbGkuZGV0YWlscy1pbmZvLWxpbms6aG92ZXIgeyBiYWNrZ3JvdW5kLWNvbG9yOiMxMDJiNGU7IGNvbG9yOiNmZmZmZmY7IH0gLmxvY2F0aW9uLWRldGFpbHMtaW5mbyB1bCBsaSB7IHBhZGRpbmctdG9wOjRweDsgcGFkZGluZy1ib3R0b206NHB4OyBmb250LXdlaWdodDoyMDA7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IG1hcmdpbi1ib3R0b206NXB4OyB9IC5sb2NhdGlvbi1kZXRhaWxzLWluZm8gPiB1bCA+IGxpOmJlZm9yZSB7IGNvbnRlbnQ6IiAiOyBib3JkZXI6c29saWQ7IGJvcmRlci13aWR0aDowIDJweCAycHggMDsgZGlzcGxheTppbmxpbmUtYmxvY2s7IHBhZGRpbmc6MnB4OyBib3JkZXItcmFkaXVzOjJweDsgdHJhbnNmb3JtOnJvdGF0ZSgtNDVkZWcpOyAtd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoLTQ1ZGVnKTsgbWFyZ2luLXJpZ2h0OjdweDsgbWFyZ2luLWJvdHRvbToxcHg7IH0gI01haW5NZW51X0RFQUxFUlNISVBTIHVsIHsgcGFkZGluZzowOyB9IEBtZWRpYSBwcmludHsgLnRvcHJpbnR7IGRpc3BsYXk6YmxvY2s7fSB9IC5tci0xNSB7IG1hcmdpbi1yaWdodDoxNXB4OyB9IC5tbC0xNSB7IG1hcmdpbi1sZWZ0OjE1cHg7IH0gLm1sLTcgeyBtYXJnaW4tbGVmdDo3cHg7IH0gc3Bhbi5hcnJvdyB7IGJvcmRlcjpzb2xpZDsgYm9yZGVyLXdpZHRoOjAgMnB4IDJweCAwOyBkaXNwbGF5OmlubGluZS1ibG9jazsgcGFkZGluZzoycHg7IGJvcmRlci1yYWRpdXM6MXB4OyBwb3NpdGlvbjpyZWxhdGl2ZTsgdG9wOi0ycHg7IH0gc3Bhbi5hcnJvdy5hcnJvdy1sYXJnZSB7IGJvcmRlci13aWR0aDowIDNweCAzcHggMDsgcGFkZGluZzo0cHg7IGJvcmRlci1yYWRpdXM6M3B4OyB9IHNwYW4uYXJyb3cuYXJyb3ctcmlnaHQgeyB0cmFuc2Zvcm06cm90YXRlKC00NWRlZyk7IC13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgtNDVkZWcpOyB9IHNwYW4uYXJyb3cuYXJyb3ctbGVmdCB7IHRyYW5zZm9ybTpyb3RhdGUoMTM1ZGVnKTsgLXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDEzNWRlZyk7IH0gc3Bhbi5hcnJvdy5hcnJvdy11cCB7IHRyYW5zZm9ybTpyb3RhdGUoLTEzNWRlZyk7IC13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgtMTM1ZGVnKTsgfSBzcGFuLmFycm93LmFycm93LWRvd24geyB0cmFuc2Zvcm06cm90YXRlKDQ1ZGVnKTsgLXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDQ1ZGVnKTsgfSAudG9wYmFyM2J0bldyYXB7IGJvcmRlci1yYWRpdXM6NXB4OyBiYWNrZ3JvdW5kLWNvbG9yOiMwMDAwMDA7IGJvcmRlcjoycHggc29saWQgI2ZmZmZmZjsgdmVydGljYWwtYWxpZ246bWlkZGxlOyBoZWlnaHQ6NDJweDsgcGFkZGluZzowIDIwcHg7IGNvbG9yOiNmZmZmZmY7IH0gLnRvcGJhcjNidG57IGZvbnQtd2VpZ2h0OmJvbGQ7IHRyYW5zaXRpb246LjJzOyBmb250LXNpemU6MC44NzVyZW0gOyB0ZXh0LXRyYW5zZm9ybTpjYXBpdGFsaXplOyBib3JkZXItY29sb3I6d2hpdGU7IHRleHQtYWxpZ246Y2VudGVyOyBjdXJzb3I6cG9pbnRlcjsgZGlzcGxheTpibG9jazsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IGNvbG9yOmluaGVyaXQ7IH0gLnRyYWRlSW5CYXJfYnRueyBmb250LXdlaWdodDpib2xkOyBib3JkZXItcmFkaXVzOjVweDsgdGV4dC10cmFuc2Zvcm06dmFyKC0tY2VydC10eHQtdHJhbnNmb3JtLCB2YXIoLS10eHQtdXBwZXIpKTsgdHJhbnNpdGlvbjouMnM7IGJvcmRlcjoycHggc29saWQgdHJhbnNwYXJlbnQ7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOndoaXRlOyBib3JkZXItY29sb3I6d2hpdGU7IHRleHQtYWxpZ246Y2VudGVyOyBjdXJzb3I6cG9pbnRlcjsgaGVpZ2h0OjUwcHg7IGJhY2tncm91bmQtY29sb3I6IzAwMDAwMDsgY29sb3I6ICNmZmZmZmY7IGJvcmRlcjoycHggc29saWQgI2ZmZmZmZjsgbWluLXdpZHRoOjIwMHB4OyBtYXgtd2lkdGg6MjAwcHg7IH0gLnRyYWRlSW5CYXJfYnRuOmhvdmVyLC50b3BiYXIzYnRuV3JhcDpob3ZlcnsgYmFja2dyb3VuZC1jb2xvcjojZmZmZmZmOyBjb2xvcjojMDAwMDAwIWltcG9ydGFudDsgfSAjZ1JhdGluZ0xhcmdleyBiYWNrZ3JvdW5kOiNmZmZmZmY7IGNvbG9yOiMwMDAwMDA7IGJvcmRlcjoxcHggc29saWQgIzEwMmI0ZTsgZmxvYXQ6bGVmdDsgcGFkZGluZzo1cHggMHB4OyBtYXJnaW4tdG9wOjVweDsgY3Vyc29yOnBvaW50ZXI7IGJvcmRlci1yYWRpdXM6M3B4OyB0ZXh0LWFsaWduOmNlbnRlcjsgd2lkdGg6MTUwcHg7IG1hcmdpbi1sZWZ0OjMwcHg7IH0gI2dSYXRpbmd7IGN1cnNvcjpwb2ludGVyOyB9IC50cmFkZUluVmluSW5wdXR7IGhlaWdodDo1MHB4OyBib3JkZXItcmFkaXVzOjVweDsgdGV4dC1hbGlnbjpjZW50ZXI7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgd2lkdGg6MTAwJTsgZm9udC1zaXplOjFyZW0gOyBjb2xvcjojM2MzODM2OyBib3JkZXI6MnB4IHNvbGlkICNmZmZmZmY7IH0gLnRyYWRlSW5WaW5JbnB1dDo6cGxhY2Vob2xkZXJ7IGZvbnQtc2l6ZToxcmVtIDsgY29sb3I6IzNjMzgzNjsgfSAudHJhZGVJbk9yTGFiZWx7IG1heC13aWR0aDoyNXB4OyB9ICN0cmFkZUluQmFyUG9wdXBfZm9ybVcgLm5pdk1ha2VNb2RlbFNlbGVjdENvbnRhaW5lcnsgd2lkdGg6MTAwJTsgcGFkZGluZzoxMnB4OyBtYXJnaW4tdG9wOjEwcHg7IGZvbnQtc2l6ZToxcmVtIDsgfSAjdHJhZGVJbkJhclBvcHVwX2Zvcm1XIC5uaXZNYWtlTW9kZWxTZWxlY3RDb250YWluZXIgLm5pdk1ha2VNb2RlbFNlbGVjdHsgZGlzcGxheTpub25lOyB9ICN0cmFkZUluQmFyUG9wdXBfZm9ybVcgLm5pdk1ha2VNb2RlbFNlbGVjdENvbnRhaW5lciAubml2TWFrZU1vZGVsU2VsZWN0TGFiZWx7IGRpc3BsYXk6aW5saW5lLWJsb2NrOyBtYXJnaW46MCAxMnB4OyBjdXJzb3I6cG9pbnRlcjsgfSAjdHJhZGVJbkJhclBvcHVwX2Zvcm1XIC5uaXZNYWtlTW9kZWxTZWxlY3RDb250YWluZXIgLm5pdk1ha2VNb2RlbFNlbGVjdDpjaGVja2VkK2xhYmVseyBib3JkZXItYm90dG9tOjJweCBzb2xpZCBibGFjazsgfSAudHJhZGluU2VsZWN0V3sgbWluLXdpZHRoOjIwMHB4OyBtYXgtd2lkdGg6MjAwcHg7IH0gLnRyYWRpblNlbGVjdFcud2l0aFZJTk1ha2V7IG1pbi13aWR0aDoxNDBweDsgbWF4LXdpZHRoOjE0MHB4OyB9IC50cmFkaW5TZWxlY3RXLndpdGhWSU5ZZWFyeyBtaW4td2lkdGg6ODBweDsgbWF4LXdpZHRoOjgwcHg7IH0gLnRyYWRpbklucHV0V3sgbWluLXdpZHRoOjIwMHB4OyBtYXgtd2lkdGg6MjAwcHg7IH0gLnRyYWRpblNlbGVjdEF7IHBvc2l0aW9uOnJlbGF0aXZlOyB9IC50cmFkaW5TZWxlY3RBOmFmdGVyIHsgY29udGVudDoiICI7IGhlaWdodDowOyB3aWR0aDowOyBib3JkZXItbGVmdDo1cHggc29saWQgdHJhbnNwYXJlbnQ7IGJvcmRlci1yaWdodDo1cHggc29saWQgdHJhbnNwYXJlbnQ7IGJvcmRlci10b3A6NXB4IHNvbGlkICMwMDAwMDA7IHBvc2l0aW9uOmFic29sdXRlOyByaWdodDoxNHB4OyB0b3A6MTdweDsgdHJhbnNpdGlvbjphbGwgMC4zcyBsaW5lYXI7IHBvaW50ZXItZXZlbnRzOm5vbmU7IH0gLnRyYWRpblNlbGVjdHsgY29sb3I6IzNjMzgzNjsgYm9yZGVyOjJweCBzb2xpZCAjZmZmZmZmOyBib3JkZXItcmFkaXVzOjVweDsgcGFkZGluZzoxMHB4IDEwcHg7IGZvbnQtc2l6ZToxcmVtIDsgYmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LDEpOyBiYWNrZ3JvdW5kLXBvc2l0aW9uOjk1JSA1MCU7IHdpZHRoOjEwMCU7IC13ZWJraXQtYXBwZWFyYW5jZTpub25lOyAtbW96LWFwcGVhcmFuY2U6bm9uZTsgcGFkZGluZy1yaWdodDoyN3B4OyBoZWlnaHQ6NTBweDsgfSAudHJhZGluU2VsZWN0OmFmdGVyIHsgY29udGVudDoiICI7IGhlaWdodDowOyB3aWR0aDowOyBib3JkZXItbGVmdDo1cHggc29saWQgdHJhbnNwYXJlbnQ7IGJvcmRlci1yaWdodDo1cHggc29saWQgdHJhbnNwYXJlbnQ7IGJvcmRlci10b3A6NXB4IHNvbGlkICMwMDAwMDA7IHBvc2l0aW9uOmFic29sdXRlOyByaWdodDoxNHB4OyB0b3A6MTdweDsgdHJhbnNpdGlvbjphbGwgMC4zcyBsaW5lYXI7IH0gLm11bHRpc2VsZWN0VmVoaWNsZU9wdGlvbnMgc3BhbnsgZm9udC1zaXplOjAuOTM4cmVtICFpbXBvcnRhbnQ7IHBhZGRpbmc6MCAhaW1wb3J0YW50OyBtYXJnaW46MCAhaW1wb3J0YW50OyB9ICN0cmFkZUluQmFyUG9wdXBfZm9ybVcgLnRyYWRlSW5CYXJNdWx0aXNlbGVjdHsgd2lkdGg6NTY4cHghaW1wb3J0YW50OyBib3JkZXItcmFkaXVzOjAuM3JlbSFpbXBvcnRhbnQ7IGJvcmRlci13aWR0aDoxcHghaW1wb3J0YW50OyBib3JkZXItcmFkaXVzOjAuM3JlbSFpbXBvcnRhbnQ7IGJvcmRlci1jb2xvcjojYTlhOWE5IWltcG9ydGFudDsgfSAudWktbXVsdGlzZWxlY3QtbWVudS50cmFkZUluQmFyTXVsdGlzZWxlY3R7IG1pbi13aWR0aDoyNzJweDsgei1pbmRleDoxMDAwMDIwOyBtYXgtaGVpZ2h0OjEyMHB4OyBvdmVyZmxvdzpzY3JvbGw7IH0gLnRyYWRlSW5CYXJEZWFsZXJTdGVweyB0ZXh0LWFsaWduOmNlbnRlcjsgbWFyZ2luLXRvcDoyNXB4OyB9IC50cmFkZUluQmFyRGVhbGVyU3RlcCAudHJhZGVJbkJhckRlYWxlclN0ZXBNYWtlTW9kZWxZZWFyeyBmb250LXdlaWdodDo3MDA7IH0gLnRyYWRlSW5CYXJEZWFsZXJTdGVwIHNwYW57IG1hcmdpbjowIWltcG9ydGFudDsgZm9udC13ZWlnaHQ6NzAwIWltcG9ydGFudDsgY29sb3I6IzAwMDAwMCFpbXBvcnRhbnQ7IH0gQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOjEwMjRweCkgeyAudHJhZGluU2VsZWN0VyB7IG1pbi13aWR0aDpjYWxjKCgyMDBweCAtIHZhcigtLXMpKSAtIHZhcigtLXMsIDAuNXJlbSkpOyBtYXgtd2lkdGg6Y2FsYygoMjAwcHggLSB2YXIoLS1zKSkgLSB2YXIoLS1zLCAwLjVyZW0pKTsgfSB9ICNnb29nbGVSZXZpZXdzRm9vdGVyeyBtYXJnaW46MCBhdXRvOyBiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7IGJvcmRlci1yYWRpdXM6NXB4OyBtYXgtd2lkdGg6OTQwcHg7IGhlaWdodDoyNzVweDsgfSAucmV2aWV3LWl0ZW0geyBmbG9hdDpsZWZ0OyBoZWlnaHQ6MTg1cHg7IHdpZHRoOjEwMCU7IG1heC13aWR0aDo0NjBweDsgbWFyZ2luLXJpZ2h0OjEwcHg7IGJvcmRlci10b3A6NHB4IHNvbGlkICNFQkVCRUI7IHBhZGRpbmctdG9wOjEwcHg7IH0gLmZpcnN0Y2hhcnVwOjpmaXJzdC1sZXR0ZXJ7IHRleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTsgfSBJLmljb24tY29tcGFyZS0xLCBzcGFuLmljb24tY29tcGFyZS0xeyBjb2xvcjojMDI3NmIzOyB9IEkuaWNvbi1jb21wYXJlLTE6aG92ZXIsIHNwYW4uaWNvbi1jb21wYXJlLTE6aG92ZXJ7IGNvbG9yOiNmZmZmZmYgIWltcG9ydGFudDsgdGV4dC1zaGFkb3c6IzAyNzZiMyAxcHggMXB4LCAjMDI3NmIzIC0xcHggMXB4LCAjMDI3NmIzIC0xcHggLTFweCwgIzAyNzZiMyAxcHggLTFweDsgYm9yZGVyLXJhZGl1czoyMHB4OyBiYWNrZ3JvdW5kLWNvbG9yOiMwMjc2YjM7IH0gLmdSYXRpbmctaWNvbiBpIHsgZm9udC1zaXplOjEuMDYzcmVtIDsgfSAuZ1JhdGluZy1pY29uI2dSYXRpbmcgeyBkaXNwbGF5OmZsZXg7IGFsaWduLWl0ZW1zOmNlbnRlcjsganVzdGlmeS1jb250ZW50OmNlbnRlcjsgd2lkdGg6OTBweDsgaGVpZ2h0OjI4cHg7IGJhY2tncm91bmQtY29sb3I6IzAwMDAwMDsgY29sb3I6d2hpdGU7IGNvbG9yOiNmZmZmZmY7IGNvbG9yOiNmZmZmZmY7IGdhcDo3cHg7IH0gLmdSYXRpbmctaW1nI2dSYXRpbmcgeyBiYWNrZ3JvdW5kLWltYWdlOnVybCgvaW1hZ2VzL2dyYXRpbmcucG5nKTsgY29sb3I6IzM1NkNGMjsgd2lkdGg6OTVweDsgaGVpZ2h0OjI4cHg7IHBhZGRpbmc6NHB4IDMxcHggMTBweCAxMHB4OyBtYXJnaW4tdG9wOjFweDsgfSAjZ1JhdGluZ3sgYm94LXNpemluZzpib3JkZXItYm94OyBmb250LXNpemU6MS4wNjNyZW0gOyBmb250LXdlaWdodDpib2xkOyBkaXNwbGF5OmJsb2NrOyB9IElOUFVUW3R5cGU9InRleHQiXS52YWxpZGl0eS1lcnJvbmVvdXN7IGJvcmRlcjoxcHggc29saWQgI2RjMzU0NTsgYmFja2dyb3VuZC1jb2xvcjojZmFkNmRjICFpbXBvcnRhbnQ7IH0gSU5QVVRbdHlwZT0idGVsIl0udmFsaWRpdHktZXJyb25lb3VzeyBib3JkZXI6MXB4IHNvbGlkICNkYzM1NDU7IGJhY2tncm91bmQtY29sb3I6I2ZhZDZkYyAhaW1wb3J0YW50OyB9IElOUFVUW3R5cGU9ImVtYWlsIl0udmFsaWRpdHktZXJyb25lb3VzeyBib3JkZXI6MXB4IHNvbGlkICNkYzM1NDU7IGJhY2tncm91bmQtY29sb3I6I2ZhZDZkYyAhaW1wb3J0YW50OyB9IElOUFVUW3R5cGU9InBhc3N3b3JkIl0udmFsaWRpdHktZXJyb25lb3VzeyBib3JkZXI6MXB4IHNvbGlkICNkYzM1NDU7IGJhY2tncm91bmQtY29sb3I6I2ZhZDZkYyAhaW1wb3J0YW50OyB9IEgxLmRlZmF1bHR7IGZvbnQtc2l6ZToxLjg3NXJlbSA7IGNvbG9yOiMwMDAwMDA7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgY2xlYXI6Ym90aDsgcGFkZGluZzowIDAgMjVweCAwOyB9IEgxLmRlZmF1bHQgQXsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IH0gSDEuZGVmYXVsdCBJLmljb24sIEgxLmRlZmF1bHQgc3Bhbi5pY29uIHsgYm9yZGVyLXJhZGl1czozMHB4OyB3aWR0aDoyM3B4OyBoZWlnaHQ6MjlweDsgcGFkZGluZy10b3A6NHB4OyBwYWRkaW5nLWxlZnQ6MTBweDsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjEuNTYzcmVtIDsgbWFyZ2luLXJpZ2h0OjEwcHg7IGJvcmRlcjoxcHggc29saWQgIzEwMmI0ZTsgY29sb3I6IzEwMmI0ZTsgYmFja2dyb3VuZC1jb2xvcjojZjNmM2YzOyBib3gtc2l6aW5nOmNvbnRlbnQtYm94OyB9IEgxLmRlZmF1bHQgSS5pY29uLm11bHRpTGluZUgxLCBIMS5kZWZhdWx0IHNwYW4uaWNvbi5tdWx0aUxpbmVIMXsgbWFyZ2luLXRvcDoxMHB4OyB9IEgxLmRlZmF1bHQgSS5pY29uLnNpbmdsZUxpbmVIMSwgSDEuZGVmYXVsdCBzcGFuLmljb24uc2luZ2xlTGluZUgxeyBtYXJnaW4tdG9wOjJweDsgfSBIMS5kZWZhdWx0ID4gRElWeyBkaXNwbGF5OnRhYmxlLXJvdzsgfSBIMS5kZWZhdWx0ID4gRElWIERJVjpudGgtY2hpbGQoMSl7IGZvbnQtd2VpZ2h0OmJvbGQ7IH0gSDEuZGVmYXVsdCA+IERJViBESVY6bnRoLWNoaWxkKDIpeyBmb250LXdlaWdodDpub3JtYWw7IGNvbG9yOiM3NTc1NzU7IGZvbnQtc2l6ZToxLjEyNXJlbSA7IH0gSDEuZGVmYXVsdCA+IERJViBESVY6bnRoLWNoaWxkKDMpeyBmb250LXNpemU6MC44cmVtOyBmb250LXNpemU6MC44cmVtOyBjb2xvcjojYmJiOyBwYWRkaW5nLXRvcDo1cHg7IH0gaDEuY2tlZGl0b3ItZGVmYXVsdCB7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc2l6ZToyLjEyNXJlbSA7IHBhZGRpbmc6MCAwIDE1cHggMDsgY29sb3I6IzAwMDAwMDsgfSBoMS5ja2VkaXRvci1kZWZhdWx0OjpiZWZvcmUgeyBjb250ZW50OiJcZjA1NCI7IGZvbnQtZmFtaWx5OkZvbnRBd2Vzb21lOyB3aWR0aDoyOHB4OyBoZWlnaHQ6MzVweDsgbWFyZ2luLXJpZ2h0OjEwcHg7IHBhZGRpbmc6NHB4IDAgMCAxMXB4OyBib3JkZXItcmFkaXVzOjQxcHg7IGZvbnQtc2l6ZToxLjkzOHJlbSA7IGZsb2F0OmxlZnQ7IGJvcmRlcjoxcHggc29saWQgIzEwMmI0ZTsgY29sb3I6IzEwMmI0ZTsgYmFja2dyb3VuZC1jb2xvcjojZjNmM2YzOyB9IEgyLmRlZmF1bHR7IGZvbnQtc2l6ZToxLjVyZW0gOyBjb2xvcjojMDAwMDAwOyBmb250LXdlaWdodDpub3JtYWw7IGNsZWFyOmJvdGg7IHBhZGRpbmc6MTBweCAwOyBtYXJnaW4tdG9wOjEwcHg7IH0gSDIuZGVmYXVsdCBJLmljb24sIEgyLmRlZmF1bHQgc3Bhbi5pY29ueyBib3JkZXItcmFkaXVzOjMwcHg7IHdpZHRoOjIwcHg7IGhlaWdodDoyNXB4OyBwYWRkaW5nLXRvcDo0cHg7IHBhZGRpbmctbGVmdDo5cHg7IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZToxLjM3NXJlbSA7IG1hcmdpbi1yaWdodDoxMHB4OyBib3JkZXI6MXB4IHNvbGlkICMxMDJiNGU7IGNvbG9yOiMxMDJiNGU7IGJhY2tncm91bmQtY29sb3I6I2YzZjNmMzsgfSBIMi5kZWZhdWx0IEkuaWNvbi5tdWx0aUxpbmVIMiwgSDIuZGVmYXVsdCBzcGFuLmljb24ubXVsdGlMaW5lSDJ7IG1hcmdpbi10b3A6N3B4OyB9IEgyLmRlZmF1bHQgSS5pY29uLnNpbmdsZUxpbmVIMiwgSDIuZGVmYXVsdCBzcGFuLmljb24uc2luZ2xlTGluZUgyeyBtYXJnaW4tdG9wOjBweDsgfSBIMi5kZWZhdWx0ID4gRElWeyBkaXNwbGF5OnRhYmxlLXJvdzsgfSBIMi5kZWZhdWx0ID4gRElWIERJVjpudGgtY2hpbGQoMSl7IGZvbnQtd2VpZ2h0OmJvbGQ7IH0gSDIuZGVmYXVsdC5jcmVkc2lpVXNlZE1pbkhlaWdodCAuVGl0bGVUZXh0IHsgd2lkdGg6ODAlOyB9IEgyLmRlZmF1bHQgPiBESVYgRElWOm50aC1jaGlsZCgyKXsgZm9udC13ZWlnaHQ6bm9ybWFsOyBjb2xvcjojNzU3NTc1OyBmb250LXNpemU6MC45MzhyZW0gOyB9IEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDoxMzAxcHgpIHsgYm9keS5pc0Z1bGxXaWR0aFBhZ2UuaXNQYWdlRnVsbFdpZHRoRW5hYmxlZCAjZmlyc3RTbGlkZXJJbWcgLnBsYWNlaG9sZGVyeyB3aWR0aDo4MDBweDsgaGVpZ2h0OjYwMHB4OyB9IGJvZHkuaXNGdWxsV2lkdGhQYWdlLmlzUGFnZUZ1bGxXaWR0aEVuYWJsZWQgI2ZpcnN0U2xpZGVySW1nIElNR3sgbWF4LXdpZHRoOjgwMHB4OyBtYXgtaGVpZ2h0OjYwMHB4OyB9IEJPRFkuaXNGdWxsV2lkdGhQYWdlLmlzUGFnZUZ1bGxXaWR0aEVuYWJsZWQgSDEuZGVmYXVsdCB7IH0gQk9EWS5pc0Z1bGxXaWR0aFBhZ2UuaXNQYWdlRnVsbFdpZHRoRW5hYmxlZCBIMS5kZWZhdWx0ID4gRElWIERJVjpudGgtY2hpbGQoMil7IGZvbnQtc2l6ZToxLjQzOHJlbSA7IH0gQk9EWS5pc0Z1bGxXaWR0aFBhZ2UuaXNQYWdlRnVsbFdpZHRoRW5hYmxlZCBIMS5kZWZhdWx0IEkuaWNvbiwgQk9EWS5pc0Z1bGxXaWR0aFBhZ2UuaXNQYWdlRnVsbFdpZHRoRW5hYmxlZCBIMS5kZWZhdWx0IHNwYW4uaWNvbiB7IHdpZHRoOjI4cHg7IGhlaWdodDozNXB4OyBmb250LXNpemU6MS45MzhyZW0gOyBwYWRkaW5nLWxlZnQ6MTFweDsgYm9yZGVyLXJhZGl1czo0MXB4OyB9IEJPRFkuaXNGdWxsV2lkdGhQYWdlLmlzUGFnZUZ1bGxXaWR0aEVuYWJsZWQgSDEuZGVmYXVsdCBJLmljb24ubXVsdGlMaW5lSDEsIEJPRFkuaXNGdWxsV2lkdGhQYWdlLmlzUGFnZUZ1bGxXaWR0aEVuYWJsZWQgSDEuZGVmYXVsdCBzcGFuLmljb24ubXVsdGlMaW5lSDF7IG1hcmdpbi10b3A6MTFweDsgfSBCT0RZLmlzRnVsbFdpZHRoUGFnZS5pc1BhZ2VGdWxsV2lkdGhFbmFibGVkIEgxLmRlZmF1bHQgSS5pY29uLnNpbmdsZUxpbmVIMSwgQk9EWS5pc0Z1bGxXaWR0aFBhZ2UuaXNQYWdlRnVsbFdpZHRoRW5hYmxlZCBIMS5kZWZhdWx0IHNwYW4uaWNvbi5zaW5nbGVMaW5lSDF7IG1hcmdpbi10b3A6MXB4OyB9IEJPRFkuaXNGdWxsV2lkdGhQYWdlLmlzUGFnZUZ1bGxXaWR0aEVuYWJsZWQgSDIuZGVmYXVsdCB7IGZvbnQtc2l6ZToxLjg3NXJlbSA7IH0gQk9EWS5pc0Z1bGxXaWR0aFBhZ2UuaXNQYWdlRnVsbFdpZHRoRW5hYmxlZCBIMi5kZWZhdWx0ID4gRElWIERJVjpudGgtY2hpbGQoMil7IGZvbnQtc2l6ZToxLjE4OHJlbSA7IH0gQk9EWS5pc0Z1bGxXaWR0aFBhZ2UuaXNQYWdlRnVsbFdpZHRoRW5hYmxlZCBIMi5kZWZhdWx0LmNyZWRzaWlVc2VkTWluSGVpZ2h0IC5UaXRsZVRleHQgeyB3aWR0aDo5MCU7IH0gQk9EWS5pc0Z1bGxXaWR0aFBhZ2UuaXNQYWdlRnVsbFdpZHRoRW5hYmxlZCBIMi5kZWZhdWx0IEkuaWNvbi5tdWx0aUxpbmVIMiwgQk9EWS5pc0Z1bGxXaWR0aFBhZ2UuaXNQYWdlRnVsbFdpZHRoRW5hYmxlZCBIMi5kZWZhdWx0IHNwYW4uaWNvbi5tdWx0aUxpbmVIMnsgbWFyZ2luLXRvcDoxMXB4OyB9IEJPRFkuaXNGdWxsV2lkdGhQYWdlLmlzUGFnZUZ1bGxXaWR0aEVuYWJsZWQgSDIuZGVmYXVsdCBJLmljb24uc2luZ2xlTGluZUgyLCBCT0RZLmlzRnVsbFdpZHRoUGFnZS5pc1BhZ2VGdWxsV2lkdGhFbmFibGVkIEgyLmRlZmF1bHQgc3Bhbi5pY29uLnNpbmdsZUxpbmVIMnsgbWFyZ2luLXRvcDo0cHg7IH0gfSAjY2l0eVRpdGxlIHtjb2xvcjojMDAwMDAwO30gLm1haW5fbGVmdF9ib3ggeyBjb2xvcjojMDAwMDAwOyB9IC5kaXZUYWJsZSB7IGRpc3BsYXk6dGFibGU7IH0gLmRpdlRhYmxlLmFsaWduLWNlbnRlciB7IG1hcmdpbjowIGF1dG87IH0gLmRpdlRhYmxlIC5mb3Jtc19ib3gyMiwgLmRpdlRhYmxlIGZvcm1bbmFtZT0ic2VuZEVtYWlsRm9ybSJdIHsgd2lkdGg6OTQwcHg7IH0gLmRpdlRhYmxlIC50ZXh0MzAgeyB3aWR0aDoxMDAlOyB9IC5zZXJ2aWNlLXRpdGxlIHsgbWFyZ2luLXRvcDoyMHB4OyB9IC5mdWxsV2lkdGhGb3JtIC5mb3Jtc19ib3gyMiB7IHdpZHRoOjEwMCU7IG1hcmdpbi1sZWZ0OjA7IG1hcmdpbi1yaWdodDowOyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IH0gLmZ1bGxXaWR0aEZvcm0gLnRleHQzMCB7IHdpZHRoOjEwMCU7IH0gLmZvcm0tZ3JvdXAgeyBtYXJnaW4tYm90dG9tOjE1cHg7IH0gLmlubGluZS1mb3JtLWdyb3VwIHsgZGlzcGxheTppbmxpbmUtYmxvY2s7IH0gLmZvcm0tZ3JvdXAgbGFiZWwgeyBkaXNwbGF5OmlubGluZS1ibG9jazsgbWF4LXdpZHRoOjEwMCU7IG1hcmdpbi1ib3R0b206NXB4OyBmb250LXdlaWdodDo3MDA7IH0gLmRpdlNlYXJjaE1zZyB7IGZvbnQtc2l6ZTowLjlyZW07IG1hcmdpbjoyMHB4IDAgMCAwOyBwYWRkaW5nOjE1cHg7IGJhY2tncm91bmQtY29sb3I6I2Y3ZjdmNzsgYm9yZGVyLXJhZGl1czo1cHg7IGNsZWFyOmJvdGg7IH0gLmNyZWRzaWlOZXcgeyBkaXNwbGF5OmJsb2NrOyBtYXgtd2lkdGg6NDcwcHg7IG1pbi13aWR0aDozMDBweDsgd2lkdGg6MTAwJTsgY3Vyc29yOnBvaW50ZXI7IG92ZXJmbG93OmhpZGRlbjsgaGVpZ2h0OmF1dG87IHBvc2l0aW9uOmFic29sdXRlOyB0b3A6MDsgcmlnaHQ6MDsgfSAuY3JlZHNpaU5ld1ZEUCB7IGRpc3BsYXk6YmxvY2s7IG1heC13aWR0aDozNTBweDsgbWluLXdpZHRoOjMwMHB4OyB3aWR0aDoxMDAlOyBjdXJzb3I6cG9pbnRlcjsgb3ZlcmZsb3c6aGlkZGVuOyBoZWlnaHQ6YXV0bzsgcG9zaXRpb246cmVsYXRpdmU7IHRvcDowOyByaWdodDowOyB9IC5jcmVkc2lpVXNlZE1pbkhlaWdodCB7IG1pbi1oZWlnaHQ6MTMwcHg7IH0gLmNyZWRzaWlGaW5hbmNlIHsgZGlzcGxheTpibG9jazsgbWF4LXdpZHRoOjk2MHB4OyBtaW4td2lkdGg6MzAwcHg7IHdpZHRoOjEwMCU7IGN1cnNvcjpwb2ludGVyOyBvdmVyZmxvdzpoaWRkZW47IHBvc2l0aW9uOnJlbGF0aXZlOyBoZWlnaHQ6MTI1cHg7IG1hcmdpbi10b3A6MTVweDsgfSAuY3JlZHNpaUZpbmFuY2UgLmNyZWRzaWktd2lkZ2V0LWNvbnRhaW5lcnsgbWF4LXdpZHRoOjEwMCUhaW1wb3J0YW50OyB9IC5jcmVkc2lpRmluYW5jZU1lbnUgeyBkaXNwbGF5OmJsb2NrOyBtYXgtd2lkdGg6MzQ1cHg7IG1pbi13aWR0aDozMDBweDsgd2lkdGg6MTAwJTsgY3Vyc29yOnBvaW50ZXI7IG92ZXJmbG93OmhpZGRlbjsgaGVpZ2h0OmF1dG87IHBvc2l0aW9uOnJlbGF0aXZlOyB0b3A6MDsgcmlnaHQ6MDsgfSAuY3JlZHNpaURpdiAuY3JlZHNpaUZpbmFuY2VNZW51IHsgbWF4LXdpZHRoOjM3NXB4OyB9IC5jcmVkc2lpRmluYW5jZU1lbnUgLmNyZWRzaWktd2lkZ2V0eyBib3JkZXI6MDsgfSAucHJvbW8tY2FyZCB7IHBvc2l0aW9uOnJlbGF0aXZlOyBoZWlnaHQ6YXV0bzsgbWFyZ2luLWJvdHRvbToxMHB4OyBiYWNrZ3JvdW5kLWNvbG9yOiNmMWYxZjE7IHBhZGRpbmc6MjBweDsgb3ZlcmZsb3c6aGlkZGVuOyB9IC5wcm9tby1ib2R5IC5waWNfYm94MiB7IG1pbi1oZWlnaHQ6MTMwcHg7IH0gLnByb21vLWhvdmVyIHsgcG9zaXRpb246YWJzb2x1dGU7IGxlZnQ6MDsgdG9wOjA7IHdpZHRoOjEwMCU7IGhlaWdodDoxMDAlOyAtd2Via2l0LXRyYW5zaXRpb246YWxsIDAuM3M7IC1tb3otdHJhbnNpdGlvbjphbGwgMC4zczsgLW1zLXRyYW5zaXRpb246YWxsIDAuM3M7IC1vLXRyYW5zaXRpb246YWxsIDAuM3M7IHRyYW5zaXRpb246YWxsIDAuM3M7IG9wYWNpdHk6MDsgfSAucHJvbW8tYm9keTpob3ZlciAucHJvbW8taG92ZXIgeyBvcGFjaXR5OjE7IH0gLnByb21vLWJvZHk6aG92ZXIgLnByb21vLWluZm8geyB0cmFuc2Zvcm06dHJhbnNsYXRlWSgtNTAlKSBzY2FsZSgxLDEpOyB9IC5wcm9tby1tYXNrIHsgcG9zaXRpb246YWJzb2x1dGU7IHRvcDowOyBsZWZ0OjA7IHdpZHRoOjEwMCU7IGhlaWdodDoxMDAlOyBiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsMC41KTsgfSAucHJvbW8taW5mbyB7IHBvc2l0aW9uOmFic29sdXRlOyBsZWZ0OjA7IHJpZ2h0OjA7IHRvcDo1MCU7IHdpZHRoOjM1JTsgbWFyZ2luOmF1dG87IC13ZWJraXQtYm9yZGVyLXJhZGl1czoyNXB4OyAtbW96LWJvcmRlci1yYWRpdXM6MjVweDsgYm9yZGVyLXJhZGl1czoyNXB4OyAtd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xNTAlKSBzY2FsZSgwLDApOyAtbW96LXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xNTAlKSBzY2FsZSgwLDApOyAtbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTE1MCUpIHNjYWxlKDAsMCk7IC1vLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xNTAlKSBzY2FsZSgwLDApOyB0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMTUwJSkgc2NhbGUoMCwwKTsgLXdlYmtpdC1ib3gtc2hhZG93OjAgMCAxMHB4IDVweCByYmdhKDAsMCwwLDAuMik7IC1tb3otYm94LXNoYWRvdzowIDAgMTBweCA1cHggcmJnYSgwLDAsMCwwLjIpOyBib3gtc2hhZG93OjAgMCAxMHB4IDVweCByYmdhKDAsMCwwLDAuMik7IC13ZWJraXQtdHJhbnNpdGlvbjphbGwgMC4zczsgLW1vei10cmFuc2l0aW9uOmFsbCAwLjNzOyAtbXMtdHJhbnNpdGlvbjphbGwgMC4zczsgLW8tdHJhbnNpdGlvbjphbGwgMC4zczsgdHJhbnNpdGlvbjphbGwgMC4zczsgfSAuZm9ybS1lbmQgeyBkaXNwbGF5OmZsZXg7IGp1c3RpZnktY29udGVudDpjZW50ZXI7IGFsaWduLWl0ZW1zOmNlbnRlcjsgfSAuZm9ybS1lbmQgLmJ0bi13cmFwcGVyIHsgbWFyZ2luOjAgYXV0bzsgfSAuZm9ybS1lbmQgLmVtcHR5LXNwYWNlIHsgbWFyZ2luOmF1dG87IH0gLmZvcm0tZW5kIC5wcm9tby1idG4geyBwb3NpdGlvbjppbml0aWFsOyB9IC5mb3JtLWVuZCAucHJpbnQgeyBtYXJnaW4tbGVmdDphdXRvOyB3aWR0aDppbml0aWFsOyB9IC5wcm9tby1idG4geyBwYWRkaW5nOjEwcHggMTBweCAxMHB4IDEwcHg7IHdpZHRoOjEwMCU7IGJhY2tncm91bmQtY29sb3I6d2hpdGU7IGJvcmRlcjoxcHggc29saWQ7IHRleHQtdHJhbnNmb3JtOnZhcigtLWNlcnQtdHh0LXRyYW5zZm9ybSwgdmFyKC0tdHh0LXVwcGVyKSk7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgcG9zaXRpb246YWJzb2x1dGU7IHRleHQtYWxpZ246Y2VudGVyOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgYm9yZGVyLWNvbG9yOnZhcigtLXByb21vLWJ0bi10ZXh0LWNvbG9yKTsgY29sb3I6dmFyKC0tcHJvbW8tYnRuLXRleHQtY29sb3IpOyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXByb21vLWJ0bi1jb2xvcik7IGJvcmRlci1yYWRpdXM6dmFyKC0tcHJvbW8tYnRuLWJvcmRlci1yYWRpdXMpOyB0cmFuc2l0aW9uOjAuMjVzOyB9IC5wcm9tb3MgeyBiYWNrZ3JvdW5kOiNmMWYxZjE7IGJvcmRlci1yYWRpdXM6NXB4OyBib3gtc2hhZG93OjAgMCAxMHB4IDFweCByZ2JhKDAsMCwwLDAuMik7IHBvc2l0aW9uOnJlbGF0aXZlOyBjdXJzb3I6ZGVmYXVsdDsgbWFyZ2luOjEycHggMTBweDsgZGlzcGxheTogZ3JpZDsgZ3JpZC1yb3c6c3BhbiA4OyBncmlkLWNvbHVtbjpzcGFuIDE7IGdyaWQtdGVtcGxhdGUtY29sdW1uczpzdWJncmlkOyBncmlkLXRlbXBsYXRlLXJvd3M6c3ViZ3JpZDsgfSAucHJvbW9zIC5oZWFkZXIgeyBncmlkLWFyZWE6aGVhZGVyOyB9ICNzZXJ2aWNlIC5wcm9tb3MgLnByb21vLWNvbnRlbnR7IGRpc3BsYXk6YmxvY2s7IGdyaWQtcm93OmF1dG87IH0gLnByb21vcyAucHJvbW8tY29udGVudCB7IGdyaWQtYXJlYTpjb250ZW50OyBkaXNwbGF5OmdyaWQ7IGdyaWQtdGVtcGxhdGUtcm93czpzdWJncmlkOyBncmlkLXJvdzoyIC8gNzsgfSAucHJvbW9zIC5wcm9tby1mb290ZXIgeyBncmlkLWFyZWE6Zm9vdGVyOyBwYWRkaW5nOjAgMTVweCAxNXB4IDE1cHg7IH0gLnByb21vczpob3ZlciAucHJvbW8tYnRuLCAucHJvbW8tYnRuOmhvdmVyIHsgY29sb3I6dmFyKC0tcHJvbW8tYnRuLWhvdmVyLXRleHQtY29sb3IpOyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXByb21vLWJ0bi1ob3Zlci1iZy1jb2xvcik7IGJvcmRlci1jb2xvcjp2YXIoLS1wcm9tby1idG4taG92ZXItdGV4dC1jb2xvcik7IH0gLnByb21vcyAucHJvbW8tYnRuIHsgd2lkdGg6aW5oZXJpdDsgcG9zaXRpb246aW5pdGlhbDsgZGlzcGxheTpibG9jazsgcGFkZGluZzoxNXB4IDQ1cHg7IH0gLnByb21vcy5wcm9tby1zbWFsbCAucHJvbW8tYnRuIHsgcGFkZGluZzoxMHB4IDI1cHg7IH0gLnByb21vLWJyZWFrIHsgYm9yZGVyLXRvcDoxcHggc29saWQgI2FiYWJhYjsgcGFkZGluZy10b3A6MTBweDsgbWFyZ2luOjE1cHggMDsgfSAucHJvbW8taW1hZ2UsIC5wcm9tby1kZXRhaWxzLWltYWdlIHsgb3ZlcmZsb3c6aGlkZGVuOyAtd2Via2l0LWJvcmRlci1yYWRpdXM6NXB4IDVweCAwIDA7IC1tb3otYm9yZGVyLXJhZGl1czo1cHggNXB4IDAgMDsgYm9yZGVyLXJhZGl1czo1cHggNXB4IDAgMDsgZGlzcGxheTpmbGV4OyBhbGlnbi1pdGVtczpjZW50ZXI7IGJhY2tncm91bmQtc2l6ZTpjb250YWluOyBiYWNrZ3JvdW5kLXBvc2l0aW9uOmNlbnRlcjsgYmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0OyBhc3BlY3QtcmF0aW86dmFyKC0tcHJvbW8taW1nLXJhdGlvLCBub25lKTsgfSAucHJvbW8tZGV0YWlscy1pbWFnZXsgd2lkdGg6MTAwJTsgfSAucHJvbW9zOmhvdmVyIC5wcm9tby1pbWFnZSBpbWcgeyAtd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgxLjEpOyAtbW96LXRyYW5zZm9ybTpzY2FsZSgxLjEpOyAtbXMtdHJhbnNmb3JtOnNjYWxlKDEuMSk7IC1vLXRyYW5zZm9ybTpzY2FsZSgxLjEpOyB0cmFuc2Zvcm06c2NhbGUoMS4xKTsgfSAucHJvbW8taW1hZ2UgaW1nIHsgbWF4LXdpZHRoOjEwMCU7IHRyYW5zaXRpb246dHJhbnNmb3JtIDFzOyBkaXNwbGF5OnRhYmxlLWNlbGw7IG1hcmdpbjowIGF1dG87IH0gLnByb21vLWJvZHkgeyBwYWRkaW5nOjE1cHg7IHBvc2l0aW9uOnJlbGF0aXZlOyB9IC5wcm9tby1ib2R5LmdyaWQgeyBkaXNwbGF5OmdyaWQ7IGhlaWdodDoxMDAlOyBncmlkLXRlbXBsYXRlLXJvd3M6MWZyIDNmcjsgfSAucHJvbW8tYm9keS5ncmlkIC5wcm9tby1jYXB0aW9uLmhlYWRlciB7IGRpc3BsYXk6Z3JpZDsgZ3JpZC10ZW1wbGF0ZS1yb3dzOjFmciBhdXRvOyB9IC5wcm9tby1jb250ZW50LnBhZGRlZCB7IHBhZGRpbmc6MTVweDsgfSAucHJvbW8tZGVzYyB7IGRpc3BsYXk6bm9uZTsgfSAucHJvbW8tdGl0bGUgeyBmb250LXNpemU6MS41cmVtIDsgZGlzcGxheTpibG9jazsgZm9udC13ZWlnaHQ6NjAwOyBjb2xvcjojMzMzMzMzOyBtaW4taGVpZ2h0Ojc4cHg7IH0gLnByb21vLW1lZGl1bSAucHJvbW8tdGl0bGUgeyBtaW4taGVpZ2h0Ojg3cHg7IH0gLnByb21vLXNtYWxsIC5wcm9tby10aXRsZSB7IGZvbnQtc2l6ZToxLjI1cmVtIDsgfSAucHJvbW8tY2FwdGlvbiB7IGNvbG9yOiMzMzMzMzM7IH0gLnByb21vLWNhcHRpb246bm90KDpsYXN0LWNoaWxkKSB7IG1hcmdpbi1ib3R0b206MTBweDsgfSAucHJvbW8tb2ZmZXIgLnByb21vLXRpdGxlIHsgbWluLWhlaWdodDowOyB9IC5wcm9tby1zdWJjYXB0aW9uIHsgbWFyZ2luLXRvcDo1cHg7IGZvbnQtc2l6ZTowLjg3NXJlbTsgfSAucHJvbW8tc3ViY2FwdGlvbi5zdWJoZWFkaW5nLi1taCB7IG1pbi1oZWlnaHQ6MzFweDsgfSAucHJvbW8tc3ViY2FwdGlvbi5kZXNjcmlwdGlvbi4tbWggeyBtaW4taGVpZ2h0OjQ4cHg7IH0gLnByb21vLWRpc2xjYWltZXIgeyBmb250LXNpemU6MC43NXJlbTsgfSAucHJvbW8tbGlua3MgeyBkaXNwbGF5OmZsZXg7IGp1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuOyBhbGlnbi1pdGVtczpjZW50ZXI7IH0gLnByb21vLWxpbmstaXRlbSAucHJpbnQgeyB3aWR0aDphdXRvOyB0ZXh0LWFsaWduOnJpZ2h0OyB9IC5wcm9tb3MtY29udGFpbmVyLmdyaWQgeyBwb3NpdGlvbjpyZWxhdGl2ZTsgZGlzcGxheTpncmlkOyB9IC5wcm9tb3MtY29udGFpbmVyIC5mYS1hcnJvdy1kb3duLXRvLWxpbmUgeyBmb250LXNpemU6MnJlbTsgY29sb3I6IzAwMDAwMDsgcG9zaXRpb246YWJzb2x1dGU7IGxlZnQ6NTAlOyB0b3A6NTAlOyBiYWNrZ3JvdW5kOiNmZmZmZmY7IHBhZGRpbmc6NnB4OyBib3JkZXItcmFkaXVzOjVweDsgYm94LXNoYWRvdzowIDAgMTBweCAxcHggcmdiYSgwLCAwLCAwLCAwLjIpOyB0cmFuc2l0aW9uOmFsbCAwLjI1cyBlYXNlLW91dDsgfSAucHJvbW9zLWNvbnRhaW5lci5ncmlkLnByb21vLW1lZGl1bSB7IGdyaWQtdGVtcGxhdGUtY29sdW1uczpyZXBlYXQoMiwgMWZyKTsgfSAucHJvbW9zLWNvbnRhaW5lci5ncmlkLnByb21vLXNtYWxsIHsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOnJlcGVhdCgzLCAxZnIpOyB9IC5wcm9tb3MtY29udGFpbmVyLmdyaWQuY29sbGFwc2UgeyBoZWlnaHQ6MTQycHg7IG92ZXJmbG93OmhpZGRlbjsgfSAucHJvbW9zLWNvbnRhaW5lci5ncmlkLmNvbGxhcHNlOjpiZWZvcmUgeyBjb250ZW50OiIiOyBwb3NpdGlvbjphYnNvbHV0ZTsgaGVpZ2h0OjEwMCU7IHotaW5kZXg6MTA7IGxlZnQ6MTBweDsgcmlnaHQ6MTBweDsgdG9wOjEwcHg7IGJvcmRlci1yYWRpdXM6NXB4IDVweCAwIDA7IGJhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDBkZWcsIHJnYigwIDAgMCAvIDMwJSkgMCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMCkgMTAwJSkgfSAucHJvbW9zLWNvbnRhaW5lci5ncmlkLmNvbGxhcHNlOmhvdmVyOjpiZWZvcmUgeyBiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgwZGVnLCByZ2IoMTM4IDEzOCAxMzggLyAzMCUpIDAlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDApIDEwMCUpOyBjdXJzb3I6cG9pbnRlcjsgfSAucHJvbW9zLWNvbnRhaW5lci5ncmlkLmNvbGxhcHNlOmhvdmVyIC5mYS1hcnJvdy1kb3duLXRvLWxpbmUgeyB0b3A6NTUlOyBjb2xvcjojODM4MzgzOyB9IC5iYW5uZXItZm9ybSB7IHBvc2l0aW9uOnJlbGF0aXZlOyBkaXNwbGF5OnRhYmxlOyBtYXJnaW46MCBhdXRvOyB9IC5iYW5uZXItZm9ybSAuTWFpbkJveExheWVyIHsgcG9zaXRpb246YWJzb2x1dGU7IHotaW5kZXg6MTA7IGxlZnQ6MDsgcmlnaHQ6MDsgdG9wOjA7IGRpc3BsYXk6dGFibGUtY2VsbDsgaGVpZ2h0OjEwMCU7IH0gLmJhbm5lci1mb3JtLWJveCB7IC13ZWJraXQtYm9yZGVyLXJhZGl1czo1cHg7IC1tb3otYm9yZGVyLXJhZGl1czo1cHg7IGJvcmRlci1yYWRpdXM6NXB4OyBwb3NpdGlvbjphYnNvbHV0ZTsgcmlnaHQ6MDsgbWF4LXdpZHRoOjM1MHB4OyB3aWR0aDoxMDAlOyBtYXJnaW4tdG9wOjM1cHg7IH0gQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOjEzMDFweCkgeyAuTWFpbkJveExheWVyIC5iYW5uZXItZm9ybS1ib3ggeyB0b3A6NTAlOyAtd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVZKC01MCUpOyAtbW96LXRyYW5zZm9ybTp0cmFuc2xhdGVZKC01MCUpOyAtbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSk7IC1vLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC01MCUpOyB0cmFuc2Zvcm06dHJhbnNsYXRlWSgtNTAlKTsgbWFyZ2luLXRvcDowOyB9IH0gQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOjEzMDFweCkgeyAuYmFubmVyLWZvcm0gLmJhbm5lci1mb3JtLWJveCB7IHBhZGRpbmc6MTVweDsgbWF4LXdpZHRoOjI3MHB4OyBmb250LXNpemU6MC44MTNyZW0gOyB9IC5iYW5uZXItZm9ybSAjYmFubmVyRm9ybSAuZm9ybS1jb250cm9sIHsgcGFkZGluZzo0cHggOHB4OyBoZWlnaHQ6MzBweDsgbWFyZ2luLWJvdHRvbToxMnB4OyB9IC5iYW5uZXItZm9ybSAuYmFubmVyLWZvcm0tdGl0bGUgeyBmb250LXNpemU6MTVwdDsgfSAuYmFubmVyLWZvcm0gLmJhbm5lci1mb3JtLXN1YnRpdGxlIHsgZm9udC1zaXplOjExcHQ7IH0gLmJhbm5lci1mb3JtIC5idG4uYmFubmVyLWJ0biB7IHBhZGRpbmc6NHB4IDEycHg7IH0gfSAub3RoZXJMb2dvTWVudUNvbnRhaW5lcnsgZmxvYXQ6bGVmdDsgfSAub3RoZXJMb2dvTWVudUNvbnRhaW5lclJpZ2h0eyBmbG9hdDpyaWdodDsgfSAub3RoZXJMb2dvTWVudUltYWdleyBtYXgtd2lkdGg6MjUwcHg7IG1heC1oZWlnaHQ6MTAwcHg7IH0gLmN0YWJveC0td3JhcHBlciB7IGNsZWFyOmJvdGg7IHBhZGRpbmc6MC43NXJlbSAwOyBiYWNrZ3JvdW5kOiNmZmZmZmY7IH0gLmN0YWJveC0tdGFibGUgeyB3aWR0aDo4NSUhaW1wb3J0YW50OyBtYXgtd2lkdGg6MTIwMHB4OyBtYXJnaW46YXV0bzsgYm9yZGVyLXNwYWNpbmc6MXJlbTsgYm9yZGVyLWNvbGxhcHNlOnVuc2V0OyB9IC5jdGFib3gtLWNlbGwgeyB3aWR0aDoyNSU7IHRyYW5zaXRpb246YWxsIDAuMnMgbGluZWFyOyB9IC5jdGFib3gtLWNlbGw6bm90KFtvbmNsaWNrPScnXSk6aG92ZXIgeyBjdXJzb3I6cG9pbnRlcjsgfSAuY3RhYm94LS1jZWxsLmN0YWJveC0tY2VsbF9fMSB7IHdpZHRoOjEwMCU7IH0gLmN0YWJveC0tY2VsbC5jdGFib3gtLWNlbGxfXzIgeyB3aWR0aDo0ODBweDsgfSAuY3RhYm94LS1jZWxsLmN0YWJveC0tY2VsbF9fMyB7IHdpZHRoOjMzJTsgfSAuY3RhYm94LS1jb250YWluZXIgeyBwYWRkaW5nOjFyZW07IH0gLmN0YWJveC0tY29udGFpbmVyIC5jdGFib3gtLWljb24geyBmb250LXNpemU6MS41NjNyZW0gOyB9IC5jdGFib3gtLWNvbnRhaW5lciAuY3RhYm94LS1pY29uLmN0YWJveC0taWNvbl9fdG9wIHsgcGFkZGluZy1ib3R0b206MTBweDsgfSAuY3RhYm94LS1jb250YWluZXIgLmN0YWJveC0taWNvbi5jdGFib3gtLWljb25fX2xlZnQgeyBmbG9hdDpsZWZ0OyB9IC5jdGFib3gtLWljb25fX2xlZnQgfiAuY3RhYm94LS10aXRsZSwgLmN0YWJveC0taWNvbl9fbGVmdCB+IC5jdGFib3gtLWRlc2NyaXB0aW9uLCAuY3RhYm94LS1pY29uX19sZWZ0IH4gLmN0YWJveC0tYnV0dG9uIHsgbWFyZ2luLWxlZnQ6MzVweDsgfSAuY3RhYm94LS1jb250YWluZXIgLmN0YWJveC0tdGl0bGUgeyBmb250LXdlaWdodDpib2xkOyBmb250LXNpemU6MS41NjNyZW0gOyB9IC5jdGFib3gtLWNvbnRhaW5lciAuY3RhYm94LS1kZXNjcmlwdGlvbiB7IG1hcmdpbi10b3A6MTBweDsgfSAuY3RhYm94LS1jb250YWluZXIgLmN0YWJveC0tYnV0dG9uIHsgbWFyZ2luLXRvcDoyMHB4OyB9IC5wYXJhbGxheC1zZWN0aW9uIHsgYmFja2dyb3VuZC1wb3NpdGlvbjpjZW50ZXI7IGJhY2tncm91bmQtc2l6ZTpjb3ZlcjsgYmFja2dyb3VuZC1hdHRhY2htZW50OmxvY2FsOyBwYWRkaW5nOjI1cHggMDsgLXdlYmtpdC10cmFuc2l0aW9uOmFsbCAwLjNzOyAtbW96LXRyYW5zaXRpb246YWxsIDAuM3M7IC1tcy10cmFuc2l0aW9uOmFsbCAwLjNzOyAtby10cmFuc2l0aW9uOmFsbCAwLjNzOyB0cmFuc2l0aW9uOmFsbCAwLjNzOyBiYWNrZ3JvdW5kLWNvbG9yOiMwMDA7IH0gLnBhcmFsbGF4LXNlY3Rpb24gLmNvbnRhaW5lciB7IHdpZHRoOjYwJTsgcGFkZGluZy1yaWdodDoxNXB4OyBwYWRkaW5nLWxlZnQ6MTVweDsgbWFyZ2luLXJpZ2h0OmF1dG87IG1hcmdpbi1sZWZ0OmF1dG87IH0gLnBhcmFsbGF4LXNlY3Rpb24gLmNvbnRhaW5lci5sYXJnZSB7IHdpZHRoOjgwJTsgYm94LXNpemluZzpib3JkZXItYm94OyB9IC5wYXJhbGxheC1jb250ZW50IHsgd2lkdGg6NDUlOyBwYWRkaW5nOjQwcHggNDBweDsgYmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLDAuNyk7IGNvbG9yOiNmZmY7IH0gLnBhcmFsbGF4LWNvbnRlbnQgLnBhcmFsbGF4LWNvbnRlbnQtYnVzaW5lc3MtdGl0bGUgeyBmb250LXNpemU6MS40MzhyZW0gIWltcG9ydGFudDsgZm9udC13ZWlnaHQ6bm9ybWFsICFpbXBvcnRhbnQ7IG1hcmdpbi1ib3R0b206MjBweDsgY29sb3I6aW5oZXJpdDsgfSAucGFyYWxsYXgtY29udGVudCAucGFyYWxsYXgtY29udGVudC1idXNpbmVzcy1kZXNjIHsgZm9udC1zaXplOjAuOTM4cmVtICFpbXBvcnRhbnQ7IHRleHQtYWxpZ246bGVmdDsgY29sb3I6aW5oZXJpdDsgfSAucGFyYWxsYXgtY29udGVudCAucGFyYWxsYXgtY29udGVudC1idXNpbmVzcy1kZXNjIGF7IGNvbG9yOmluaGVyaXQ7IH0gQG1lZGlhIChtYXgtd2lkdGg6MTMzMHB4KSB7IC5wYXJhbGxheC1zZWN0aW9uIC5jb250YWluZXIgeyB3aWR0aDo4MCU7IH0gLnBhcmFsbGF4LXNlY3Rpb24gLmNvbnRhaW5lci5sYXJnZSB7IHdpZHRoOjEwMCU7IH0gfSAuc3Itb25seSB7IHBvc2l0aW9uOmFic29sdXRlICFpbXBvcnRhbnQ7IHdpZHRoOjFweCAhaW1wb3J0YW50OyBoZWlnaHQ6MXB4ICFpbXBvcnRhbnQ7IHBhZGRpbmc6MCAhaW1wb3J0YW50OyBtYXJnaW46LTFweCAhaW1wb3J0YW50OyBvdmVyZmxvdzpoaWRkZW4gIWltcG9ydGFudDsgY2xpcDpyZWN0KDAsIDAsIDAsIDApICFpbXBvcnRhbnQ7IGJvcmRlcjowICFpbXBvcnRhbnQ7IH0gLmJucF9wdWxsb3V0X2ltZ3sgbWF4LXdpZHRoOjEwcmVtOyBtYXJnaW46YXV0bzsgfSAuYm5wX3B1bGxvdXRfY29sX3NlcGFyYXRvcnsgd2lkdGg6MXB4OyBiYWNrZ3JvdW5kLWNvbG9yOiNFQkVCRUI7IGhlaWdodDo5OHB4OyBwb3NpdGlvbjphYnNvbHV0ZTsgdG9wOjIwcHg7IH0gLmJucF9wdWxsb3V0X21pZF9jb2x7IHdpZHRoOjcwJTsgZGlzcGxheTp0YWJsZS1jZWxsOyB9IC5ibnBfcHVsbG91dF9taWRfY29sX3JpZ2h0eyBib3JkZXItbGVmdC13aWR0aDoxcHg7IH0gLmJucF9wdWxsb3V0X21pZF9jb2xfc2VwYXJhdG9yeyB3aWR0aDoxcHg7IGJhY2tncm91bmQtY29sb3I6I0VCRUJFQjsgaGVpZ2h0OjQwcHg7IHBvc2l0aW9uOmFic29sdXRlOyB0b3A6NzhweDsgfSAuYm5wX3B1bGxvdXRfbWlkX2NvbF9wcmljZV93aXRoX3RpdGxleyBkaXNwbGF5OmZsZXg7IGZsZXgtZGlyZWN0aW9uOmNvbHVtbjsgdGV4dC1hbGlnbjpjZW50ZXI7IHdpZHRoOjQ1JTsgfSAuYm5wX3B1bGxvdXRfbWlkX2NvbF9wcmljZXsgZm9udC1zaXplOjJyZW0gOyBmb250LXdlaWdodDpib2xkOyB9IEBtZWRpYSAobWF4LXdpZHRoOjEzMzBweCkgeyAuYm5wX3B1bGxvdXRfbWlkX2NvbCB7IHdpZHRoOjUwJTsgfSAuYm5wX3B1bGxvdXRfbWlkX2NvbF9wcmljZV93aXRoX3RpdGxlIHsgd2lkdGg6MTAwJTsgfSAuYm5wX3B1bGxvdXRfY29sX3NlcGFyYXRvciB7IGhlaWdodDoxNjRweDsgfSAuYm5wX3B1bGxvdXRfbWlkX2NvbF9zZXBhcmF0b3IgeyBoZWlnaHQ6MTA2cHg7IH0gfSAucHVsbG91dC1jb250ZW50IC5jcmVkaXRTY29yZVB1bGxvdXRJbWd7IGhlaWdodDoxMTBweDsgYmFja2dyb3VuZC1jb2xvcjojNGQ4ZjE0OyB9IC5wdWxsb3V0LWNvbnRlbnQgLmNyZWRpdFNjb3JlUHVsbG91dEJ1dHRvbnsgYmFja2dyb3VuZDojNDE3RjFBICFpbXBvcnRhbnQ7IGJvcmRlci1yYWRpdXM6M3B4OyBjb2xvcjojZmZmZmZmOyBwYWRkaW5nOjdweCAyMHB4IDdweDsgZm9udC1zaXplOjFyZW0gOyBmb250LXdlaWdodDo3MDA7IHRleHQtc2hhZG93OjAuNHB4IDA7IH0gLnB1bGxvdXQtY29udGVudCAuY3JlZGl0U2NvcmVQdWxsb3V0Q29udGVudHsgY29sb3I6IzAwMDAwMDsgZm9udC1zaXplOjEuNTYzcmVtIDsgZm9udC13ZWlnaHQ6NzAwOyBtYXJnaW4tYm90dG9tOi0xNXB4OyB9IC5wdWxsb3V0LWNvbnRlbnQgLmNyZWRpdFNjb3JlUHVsbG91dENvbnRlbnRTY29yZXsgY29sb3I6IzAwMDAwMDsgZm9udC13ZWlnaHQ6NzAwOyBmb250LXNpemU6MS44NzVyZW0gOyB0ZXh0LXNoYWRvdzoycHggMDsgfSAucHVsbG91dC1jb250ZW50IC5jcmVkaXRTY29yZVB1bGxvdXRDb250ZW50RnJlZXsgY29sb3I6IzQxN0YxQTsgZm9udC13ZWlnaHQ6NzAwOyBmb250LXNpemU6Mi44MTNyZW0gOyB0ZXh0LXNoYWRvdzoycHggMDsgfSAuaXNQYWdlRnVsbFdpZHRoRW5hYmxlZC5pc0Z1bGxXaWR0aFBhZ2UgLnB1bGxvdXQtY29udGVudCAuY3JlZGl0U2NvcmVQdWxsb3V0TWF4V2lkdGh7IG1heC13aWR0aDoxMjAwcHg7IH0gLnB1bGxvdXQtY29udGVudCAuY3JlZGl0U2NvcmVQdWxsb3V0TWF4V2lkdGh7IG1heC13aWR0aDo5NjBweDsgfSAuc2xpZGVyLW1haW4gaW1neyB0cmFuc2l0aW9uOnRyYW5zZm9ybSAwLjVzIGVhc2Utb3V0IH0gLmNvbW11bmljYXRpb25QcmVmeyBwYWRkaW5nOnZhcigtLWlucHV0LXBhZGRpbmcpOyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWlucHV0LWJnLWNvbG9yKTsgYm9yZGVyLXJhZGl1czp2YXIoLS1pbnB1dC1yYWRpdXMpOyBib3JkZXI6MXB4IHNvbGlkIHZhcigtLWlucHV0LWJvcmRlci1jb2xvcik7IGNvbG9yOiMyMTI1Mjk7IGZvbnQtc2l6ZTp2YXIoLS1pbnB1dC1mb250LXNpemUpOyBsaW5lLWhlaWdodDp2YXIoLS1pbnB1dC1saW5lLWhlaWdodCk7IGZvbnQtd2VpZ2h0OjQwMDsgd2lkdGg6NTAlICFpbXBvcnRhbnQ7IH0gLmQyY2Zvcm0geyAtLWxhYmVsLXJlcXVpcmVkLXN5bWJvbDoiKiI7IC0tbGFiZWwtcmVxdWlyZWQtY29sb3I6I0ZGMDAwMDsgLS1pbnB1dC1wYWRkaW5nOnZhcigtLXMtMSkgdmFyKC0tczEpOyAtLWlucHV0LWJnLWNvbG9yOnZhcigtLXdoaXRlKTsgLS1pbnB1dC1ib3JkZXItY29sb3I6dmFyKC0tbWlkLWdyYXkpOyAtLWlucHV0LXJhZGl1czp2YXIoLS1zLTYpOyAtLWlucHV0LWZvbnQtc2l6ZTp2YXIoLS1mczApOyAtLWlucHV0LWxpbmUtaGVpZ2h0OnZhcigtLWZzMik7IH0gLm1haW5EaXZBZGp1c3RIZWFkZXIgLnVwX21lbnUgLlMxMDBQZXJjZW50V2lkdGggeyBiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50OyB9IC51cF9tZW51LmZpeGVkIC5TMTAwUGVyY2VudFdpZHRoeyBiYWNrZ3JvdW5kLWNvbG9yOnJnYigyNDMsMjQzLDI0MykgfSAubWFpbkRpdkFkanVzdEhlYWRlciAudi1jYXJkIC5hZGRyZXNzLW1pZGRsZSAub3JnLCAubWFpbkRpdkFkanVzdEhlYWRlciAudi1jYXJkIC5hZGRyZXNzLW1pZGRsZSAuc3RyZWV0LWFkZHJlc3MsIC5tYWluRGl2QWRqdXN0SGVhZGVyIC52LWNhcmQgLmFkZHJlc3MtbWlkZGxlIC5sb2NhbGl0eSwgLm1haW5EaXZBZGp1c3RIZWFkZXIgLnYtY2FyZCAuYWRkcmVzcy1taWRkbGUgLnJlZ2lvbiwgLm1haW5EaXZBZGp1c3RIZWFkZXIgLnYtY2FyZCAuYWRkcmVzcy1taWRkbGUgLnBvc3RhbC1jb2RlLCAubWFpbkRpdkFkanVzdEhlYWRlciAudi1jYXJkIC5hZGRyZXNzLW1pZGRsZSAuZXh0ZW5kZWRQaG9uZVRyaWdnZXIsIC5tYWluRGl2QWRqdXN0SGVhZGVyIC52LWNhcmQgLmFkZHJlc3MtbWlkZGxlIC5waG9uZS1saW5rIHsgY29sb3I6dmFyKC0taG9tZXBhZ2UtaGVhZGVyLWl0ZW0tY29sb3IpICFpbXBvcnRhbnQ7IH0gLm1haW5EaXZBZGp1c3RIZWFkZXIgLnYtY2FyZCAuYWRkcmVzcy1taWRkbGUgLmRlYWxlck1hcExpbmsgc3ZnIHsgZmlsbDp2YXIoLS1ob21lcGFnZS1oZWFkZXItaXRlbS1jb2xvcik7IH0gLm1haW5EaXZBZGp1c3RIZWFkZXIgLnYtY2FyZCAuYWRkcmVzcy1taWRkbGUgLmZhLWNhcmV0LWRvd246OmJlZm9yZSwgLm1haW5EaXZBZGp1c3RIZWFkZXIgLnYtY2FyZCAuYWRkcmVzcy1taWRkbGUgLmZhLXBob25lOjpiZWZvcmUgeyBjb2xvcjp2YXIoLS1ob21lcGFnZS1oZWFkZXItaXRlbS1jb2xvcik7IH0gLm1haW5EaXZBZGp1c3RIZWFkZXIgLnVwX21lbnUgLlMxMDBQZXJjZW50V2lkdGggPiB1bCA+IGxpID4gYS50b3BfbGluayB7IGNvbG9yOnZhcigtLWhvbWVwYWdlLW1lbnUtaXRlbS1jb2xvcik7IH0gLm1haW5EaXZBZGp1c3RIZWFkZXIgLmxhbmd1YWdlQmFyIC5nUmF0aW5nLWljb24jZ1JhdGluZywgLm1haW5EaXZBZGp1c3RIZWFkZXIgLmxhbmd1YWdlQmFyIC5kZXNrdG9wX2xhbmdfYnV0dG9uLmFjdGl2ZSwgLm1haW5EaXZBZGp1c3RIZWFkZXIgLmxhbmd1YWdlQmFyIGEuZGVza3RvcF9sYW5nX2J1dHRvbjpob3ZlciB7IGJhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7IGNvbG9yOnZhcigtLWhvbWVwYWdlLWhlYWRlci1pdGVtLWNvbG9yKTsgYm9yZGVyOjFweCBzb2xpZCB2YXIoLS1ob21lcGFnZS1oZWFkZXItaXRlbS1jb2xvcik7IH0gLm1haW5EaXZBZGp1c3RIZWFkZXIgLmxhbmd1YWdlQmFyIC5kZXNrdG9wX2xhbmdfYnV0dG9uIHsgY29sb3I6IzAwMDAwMDsgYmFja2dyb3VuZDpyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpOyBib3JkZXI6MXB4IHNvbGlkIHZhcigtLWhvbWVwYWdlLWhlYWRlci1pdGVtLWNvbG9yKTsgfSAubWFpbkRpdkFkanVzdEhlYWRlciAubGFuZ3VhZ2VCYXIgZGl2LmQyYy1mYXZzLW5hdi13cmFwcGVyIGkuZmFyIHsgY29sb3I6dmFyKC0taG9tZXBhZ2UtaGVhZGVyLWl0ZW0tY29sb3IpOyB9IC5tYWluRGl2QWRqdXN0SGVhZGVyIC5sYW5ndWFnZUJhciAuc2VydmljZS1oZWFkZXItZm9ybSAuYnRuIHsgYm9yZGVyLWNvbG9yOnZhcigtLWhvbWVwYWdlLWhlYWRlci1pdGVtLWNvbG9yKTsgfSAubGFuZ3VhZ2VCYXIgLmdSYXRpbmctaWNvbiNnUmF0aW5nLCAubGFuZ3VhZ2VCYXIgI3NlcnZpY2VfYXBwb2ludF9oZWFkZXIgPiBhLCAubGFuZ3VhZ2VCYXIgLmRlc2t0b3BfbGFuZ19idXR0b24geyBib3JkZXItcmFkaXVzOnZhcigtLXByb21vLWJ0bi1ib3JkZXItcmFkaXVzKSAhaW1wb3J0YW50OyB9IC5nUmF0aW5nLWljb24jZ1JhdGluZyAucmF0aW5nIHsgZGlzcGxheTpmbGV4OyBhbGlnbi1pdGVtczpjZW50ZXI7IGp1c3RpZnktY29udGVudDpjZW50ZXI7IGxpbmUtaGVpZ2h0OjE7IH0gLm1hcmdpbi1ib3R0b20tLTRweCB7IG1hcmdpbi1ib3R0b206LTRweDsgfSAubWFpbkRpdkFkanVzdEhlYWRlciAubGFuZ3VhZ2VCYXIsIC5tYWluRGl2QWRqdXN0SGVhZGVyIC52LWNhcmQsIC5tYWluRGl2QWRqdXN0SGVhZGVyIC5iYW5uZXItc2VhcmNoLWJveC13cmFwcGVyIHsgei1pbmRleDoyOyBwb3NpdGlvbjpyZWxhdGl2ZSB9Ci8qKiAvY3NzL3Byb19kcm9wZG93bl80LmNzcyAqKi8KLmlkTmF2MSB7IHBhZGRpbmc6MDsgbGlzdC1zdHlsZTpub25lOyBoZWlnaHQ6MjhweDsgZm9udC1zaXplOjAuNzVyZW0gOyBmb250LXN0eWxlOm5vcm1hbDsgZm9udC13ZWlnaHQ6Ym9sZDsgdGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlOyBjb2xvcjojRjlGOUY5OyB9IC5pZE5hdjEgbGkudG9wIHtkaXNwbGF5OmJsb2NrOyBmbG9hdDpsZWZ0OyBoZWlnaHQ6MjhweDsgcGFkZGluZzowO30gLmlkTmF2MSBsaS50b3AxIHtkaXNwbGF5OmJsb2NrOyBmbG9hdDpsZWZ0OyBoZWlnaHQ6MjhweDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9ibF9ob3Zlci5wbmcpIGxlZnQgdG9wIHJlcGVhdC14OyBwYWRkaW5nOjA7IHBhZGRpbmctcmlnaHQ6MnB4OyBmb250LXNpemU6MC44MTNyZW0gOyB0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7IGNvbG9yOiNmZmY7IHRleHQtYWxpZ246Y2VudGVyOyAtbW96LWJvcmRlci1yYWRpdXM6M3B4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6M3B4OyBib3JkZXItcmFkaXVzOjNweDsgLWtodG1sLWJvcmRlci1yYWRpdXM6M3B4O30gLmlkTmF2MSBsaSBhLnRvcF9saW5rIHsgZGlzcGxheTpibG9jazsgZmxvYXQ6bGVmdDsgaGVpZ2h0OjI4cHg7IGxpbmUtaGVpZ2h0OjMwcHg7IHRleHQtZGVjb3JhdGlvbjpub25lOyBmb250LXNpemU6MC44MTNyZW0gOyB0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgcGFkZGluZzowcHggMTJweCAwcHggMTJweDsgY3Vyc29yOnBvaW50ZXI7IC1tb3otYm9yZGVyLXJhZGl1czozcHg7IC13ZWJraXQtYm9yZGVyLXJhZGl1czozcHg7IGJvcmRlci1yYWRpdXM6M3B4OyAta2h0bWwtYm9yZGVyLXJhZGl1czozcHg7IGJhY2tncm91bmQ6I2YzZjNmMzsgY29sb3I6IzEwMmI0ZTsgfSAuaWROYXYxIGxpIGEudG9wX2xpbms6aG92ZXIgeyAtbW96LWJvcmRlci1yYWRpdXM6M3B4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6M3B4OyBib3JkZXItcmFkaXVzOjNweDsgZmlsdGVyOmJyaWdodG5lc3MoOTUlKTsgfSAuaWROYXYxIGxpIGEudG9wX2xpbmsxIHtkaXNwbGF5OmJsb2NrOyBmbG9hdDpsZWZ0OyBoZWlnaHQ6MjhweDsgbGluZS1oZWlnaHQ6MzBweDsgY29sb3I6I2ZlZmVmZTsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IHRleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTsgZm9udC13ZWlnaHQ6bm9ybWFsOyBwYWRkaW5nOjBweCAxMnB4IDBweCAxMnB4OyBjdXJzb3I6cG9pbnRlcjsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9ibF9ob3Zlci5wbmcpIGxlZnQgdG9wIHJlcGVhdC14OyAtbW96LWJvcmRlci1yYWRpdXM6M3B4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6M3B4OyBib3JkZXItcmFkaXVzOjNweDsgLWtodG1sLWJvcmRlci1yYWRpdXM6M3B4O30gLmlkTmF2MiB7IHBhZGRpbmc6MDsgbGlzdC1zdHlsZTpub25lOyBoZWlnaHQ6MjhweDsgZm9udC1zaXplOjAuNzVyZW0gOyBmb250LXN0eWxlOm5vcm1hbDsgZm9udC13ZWlnaHQ6Ym9sZDsgdGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlOyBjb2xvcjojRjlGOUY5OyB9IC5pZE5hdjIgbGkudG9wIHtkaXNwbGF5OmJsb2NrOyBmbG9hdDpsZWZ0OyBoZWlnaHQ6MjhweDsgcGFkZGluZzowOyBwYWRkaW5nLXJpZ2h0OjJweDt9IC5pZE5hdjIgbGkudG9wMSB7ZGlzcGxheTpibG9jazsgZmxvYXQ6bGVmdDsgaGVpZ2h0OjI4cHg7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvYmxfaG92ZXIyLnBuZykgbGVmdCB0b3AgcmVwZWF0LXg7IHBhZGRpbmc6MDsgcGFkZGluZy1yaWdodDoycHg7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IHRleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTsgY29sb3I6I2ZmZjsgdGV4dC1hbGlnbjpjZW50ZXI7IC1tb3otYm9yZGVyLXJhZGl1czozcHg7IC13ZWJraXQtYm9yZGVyLXJhZGl1czozcHg7IGJvcmRlci1yYWRpdXM6M3B4OyAta2h0bWwtYm9yZGVyLXJhZGl1czozcHg7fSAuaWROYXYyIGxpIGEudG9wX2xpbmsge2Rpc3BsYXk6YmxvY2s7IGZsb2F0OmxlZnQ7IGhlaWdodDoyOHB4OyBsaW5lLWhlaWdodDozMHB4OyBjb2xvcjojZmVmZWZlOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgZm9udC1zaXplOjAuODEzcmVtIDsgdGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlOyBmb250LXdlaWdodDpub3JtYWw7IHBhZGRpbmc6MHB4IDEycHggMHB4IDEycHg7IGN1cnNvcjpwb2ludGVyOyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2JsX2JnMi5wbmcpIGxlZnQgdG9wIHJlcGVhdC14OyAtbW96LWJvcmRlci1yYWRpdXM6M3B4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6M3B4OyBib3JkZXItcmFkaXVzOjNweDsgLWtodG1sLWJvcmRlci1yYWRpdXM6M3B4O30gLmlkTmF2MiBsaSBhLnRvcF9saW5rOmhvdmVyIHtjb2xvcjojZmZmOyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2JsX2hvdmVyMi5wbmcpIGxlZnQgdG9wIHJlcGVhdC14OyAtbW96LWJvcmRlci1yYWRpdXM6M3B4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6M3B4OyBib3JkZXItcmFkaXVzOjNweDsgLWtodG1sLWJvcmRlci1yYWRpdXM6M3B4O30gLmlkTmF2MiBsaSBhLnRvcF9saW5rMSB7ZGlzcGxheTpibG9jazsgZmxvYXQ6bGVmdDsgaGVpZ2h0OjI4cHg7IGxpbmUtaGVpZ2h0OjMwcHg7IGNvbG9yOiNmZWZlZmU7IHRleHQtZGVjb3JhdGlvbjpub25lOyBmb250LXNpemU6MC44MTNyZW0gOyB0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgcGFkZGluZzowcHggMTJweCAwcHggMTJweDsgY3Vyc29yOnBvaW50ZXI7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvYmxfaG92ZXIyLnBuZykgbGVmdCB0b3AgcmVwZWF0LXg7IC1tb3otYm9yZGVyLXJhZGl1czozcHg7IC13ZWJraXQtYm9yZGVyLXJhZGl1czozcHg7IGJvcmRlci1yYWRpdXM6M3B4OyAta2h0bWwtYm9yZGVyLXJhZGl1czozcHg7fQovKiogL2Nzcy9qcXVlcnktdWktZmFjdG9yeS8xLjEzLjIvanF1ZXJ5LXVpLm1pbi5jc3MgKiovCi51aS1oZWxwZXItaGlkZGVue2Rpc3BsYXk6bm9uZX0udWktaGVscGVyLWhpZGRlbi1hY2Nlc3NpYmxle2JvcmRlcjowO2NsaXA6cmVjdCgwIDAgMCAwKTtoZWlnaHQ6MXB4O21hcmdpbjotMXB4O292ZXJmbG93OmhpZGRlbjtwYWRkaW5nOjA7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MXB4fS51aS1oZWxwZXItcmVzZXR7bWFyZ2luOjA7cGFkZGluZzowO2JvcmRlcjowO291dGxpbmU6MDtsaW5lLWhlaWdodDoxLjM7dGV4dC1kZWNvcmF0aW9uOm5vbmU7Zm9udC1zaXplOjEwMCU7bGlzdC1zdHlsZTpub25lfS51aS1oZWxwZXItY2xlYXJmaXg6YmVmb3JlLC51aS1oZWxwZXItY2xlYXJmaXg6YWZ0ZXJ7Y29udGVudDoiIjtkaXNwbGF5OnRhYmxlO2JvcmRlci1jb2xsYXBzZTpjb2xsYXBzZX0udWktaGVscGVyLWNsZWFyZml4OmFmdGVye2NsZWFyOmJvdGh9LnVpLWhlbHBlci16Zml4e3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7dG9wOjA7bGVmdDowO3Bvc2l0aW9uOmFic29sdXRlO29wYWNpdHk6MDstbXMtZmlsdGVyOiJhbHBoYShvcGFjaXR5PTApIn0udWktZnJvbnR7ei1pbmRleDoxMDB9LnVpLXN0YXRlLWRpc2FibGVke2N1cnNvcjpkZWZhdWx0IWltcG9ydGFudDtwb2ludGVyLWV2ZW50czpub25lfS51aS1pY29ue2Rpc3BsYXk6aW5saW5lLWJsb2NrO3ZlcnRpY2FsLWFsaWduOm1pZGRsZTttYXJnaW4tdG9wOi0uMjVlbTtwb3NpdGlvbjpyZWxhdGl2ZTt0ZXh0LWluZGVudDotOTk5OTlweDtvdmVyZmxvdzpoaWRkZW47YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0fS51aS13aWRnZXQtaWNvbi1ibG9ja3tsZWZ0OjUwJTttYXJnaW4tbGVmdDotOHB4O2Rpc3BsYXk6YmxvY2t9LnVpLXdpZGdldC1vdmVybGF5e3Bvc2l0aW9uOmZpeGVkO3RvcDowO2xlZnQ6MDt3aWR0aDoxMDAlO2hlaWdodDoxMDAlfS51aS1hY2NvcmRpb24gLnVpLWFjY29yZGlvbi1oZWFkZXJ7ZGlzcGxheTpibG9jaztjdXJzb3I6cG9pbnRlcjtwb3NpdGlvbjpyZWxhdGl2ZTttYXJnaW46MnB4IDAgMCAwO3BhZGRpbmc6LjVlbSAuNWVtIC41ZW0gLjdlbTtmb250LXNpemU6MTAwJX0udWktYWNjb3JkaW9uIC51aS1hY2NvcmRpb24tY29udGVudHtwYWRkaW5nOjFlbSAyLjJlbTtib3JkZXItdG9wOjA7b3ZlcmZsb3c6YXV0b30udWktc2xpZGVye3Bvc2l0aW9uOnJlbGF0aXZlO3RleHQtYWxpZ246bGVmdH0udWktc2xpZGVyIC51aS1zbGlkZXItaGFuZGxle3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6Mjt3aWR0aDoxLjJlbTtoZWlnaHQ6MS4yZW07Y3Vyc29yOnBvaW50ZXI7LW1zLXRvdWNoLWFjdGlvbjpub25lO3RvdWNoLWFjdGlvbjpub25lfS51aS1zbGlkZXIgLnVpLXNsaWRlci1yYW5nZXtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjE7Zm9udC1zaXplOi43ZW07ZGlzcGxheTpibG9jaztib3JkZXI6MDtiYWNrZ3JvdW5kLXBvc2l0aW9uOjAgMH0udWktc2xpZGVyLnVpLXN0YXRlLWRpc2FibGVkIC51aS1zbGlkZXItaGFuZGxlLC51aS1zbGlkZXIudWktc3RhdGUtZGlzYWJsZWQgLnVpLXNsaWRlci1yYW5nZXtmaWx0ZXI6aW5oZXJpdH0udWktc2xpZGVyLWhvcml6b250YWx7aGVpZ2h0Oi44ZW19LnVpLXNsaWRlci1ob3Jpem9udGFsIC51aS1zbGlkZXItaGFuZGxle3RvcDotLjNlbTttYXJnaW4tbGVmdDotLjZlbX0udWktc2xpZGVyLWhvcml6b250YWwgLnVpLXNsaWRlci1yYW5nZXt0b3A6MDtoZWlnaHQ6MTAwJX0udWktc2xpZGVyLWhvcml6b250YWwgLnVpLXNsaWRlci1yYW5nZS1taW57bGVmdDowfS51aS1zbGlkZXItaG9yaXpvbnRhbCAudWktc2xpZGVyLXJhbmdlLW1heHtyaWdodDowfS51aS1zbGlkZXItdmVydGljYWx7d2lkdGg6LjhlbTtoZWlnaHQ6MTAwcHh9LnVpLXNsaWRlci12ZXJ0aWNhbCAudWktc2xpZGVyLWhhbmRsZXtsZWZ0Oi0uM2VtO21hcmdpbi1sZWZ0OjA7bWFyZ2luLWJvdHRvbTotLjZlbX0udWktc2xpZGVyLXZlcnRpY2FsIC51aS1zbGlkZXItcmFuZ2V7bGVmdDowO3dpZHRoOjEwMCV9LnVpLXNsaWRlci12ZXJ0aWNhbCAudWktc2xpZGVyLXJhbmdlLW1pbntib3R0b206MH0udWktc2xpZGVyLXZlcnRpY2FsIC51aS1zbGlkZXItcmFuZ2UtbWF4e3RvcDowfS51aS13aWRnZXR7Zm9udC1mYW1pbHk6QXJpYWwsSGVsdmV0aWNhLHNhbnMtc2VyaWY7Zm9udC1zaXplOjFlbX0udWktd2lkZ2V0IC51aS13aWRnZXR7Zm9udC1zaXplOjFlbX0udWktd2lkZ2V0IGlucHV0LC51aS13aWRnZXQgc2VsZWN0LC51aS13aWRnZXQgdGV4dGFyZWEsLnVpLXdpZGdldCBidXR0b257Zm9udC1mYW1pbHk6QXJpYWwsSGVsdmV0aWNhLHNhbnMtc2VyaWY7Zm9udC1zaXplOjFlbX0udWktd2lkZ2V0LnVpLXdpZGdldC1jb250ZW50e2JvcmRlcjoxcHggc29saWQgI2M1YzVjNX0udWktd2lkZ2V0LWNvbnRlbnR7Ym9yZGVyOjFweCBzb2xpZCAjZGRkO2JhY2tncm91bmQ6I2ZmZjtjb2xvcjojMzMzfS51aS13aWRnZXQtY29udGVudCBhe2NvbG9yOiMzMzN9LnVpLXdpZGdldC1oZWFkZXJ7Ym9yZGVyOjFweCBzb2xpZCAjZGRkO2JhY2tncm91bmQ6I2U5ZTllOTtjb2xvcjojMzMzO2ZvbnQtd2VpZ2h0OmJvbGR9LnVpLXdpZGdldC1oZWFkZXIgYXtjb2xvcjojMzMzfS51aS1zdGF0ZS1kZWZhdWx0LC51aS13aWRnZXQtY29udGVudCAudWktc3RhdGUtZGVmYXVsdCwudWktd2lkZ2V0LWhlYWRlciAudWktc3RhdGUtZGVmYXVsdCwudWktYnV0dG9uLGh0bWwgLnVpLWJ1dHRvbi51aS1zdGF0ZS1kaXNhYmxlZDpob3ZlcixodG1sIC51aS1idXR0b24udWktc3RhdGUtZGlzYWJsZWQ6YWN0aXZle2JvcmRlcjoxcHggc29saWQgI2M1YzVjNTtiYWNrZ3JvdW5kOiNmNmY2ZjY7Zm9udC13ZWlnaHQ6bm9ybWFsO2NvbG9yOiM0NTQ1NDV9LnVpLXN0YXRlLWRlZmF1bHQgYSwudWktc3RhdGUtZGVmYXVsdCBhOmxpbmssLnVpLXN0YXRlLWRlZmF1bHQgYTp2aXNpdGVkLGEudWktYnV0dG9uLGE6bGluay51aS1idXR0b24sYTp2aXNpdGVkLnVpLWJ1dHRvbiwudWktYnV0dG9ue2NvbG9yOiM0NTQ1NDU7dGV4dC1kZWNvcmF0aW9uOm5vbmV9LnVpLXN0YXRlLWhvdmVyLC51aS13aWRnZXQtY29udGVudCAudWktc3RhdGUtaG92ZXIsLnVpLXdpZGdldC1oZWFkZXIgLnVpLXN0YXRlLWhvdmVyLC51aS1zdGF0ZS1mb2N1cywudWktd2lkZ2V0LWNvbnRlbnQgLnVpLXN0YXRlLWZvY3VzLC51aS13aWRnZXQtaGVhZGVyIC51aS1zdGF0ZS1mb2N1cywudWktYnV0dG9uOmhvdmVyLC51aS1idXR0b246Zm9jdXN7Ym9yZGVyOjFweCBzb2xpZCAjY2NjO2JhY2tncm91bmQ6I2VkZWRlZDtmb250LXdlaWdodDpub3JtYWw7Y29sb3I6IzJiMmIyYn0udWktc3RhdGUtaG92ZXIgYSwudWktc3RhdGUtaG92ZXIgYTpob3ZlciwudWktc3RhdGUtaG92ZXIgYTpsaW5rLC51aS1zdGF0ZS1ob3ZlciBhOnZpc2l0ZWQsLnVpLXN0YXRlLWZvY3VzIGEsLnVpLXN0YXRlLWZvY3VzIGE6aG92ZXIsLnVpLXN0YXRlLWZvY3VzIGE6bGluaywudWktc3RhdGUtZm9jdXMgYTp2aXNpdGVkLGEudWktYnV0dG9uOmhvdmVyLGEudWktYnV0dG9uOmZvY3Vze2NvbG9yOiMyYjJiMmI7dGV4dC1kZWNvcmF0aW9uOm5vbmV9LnVpLXZpc3VhbC1mb2N1c3tib3gtc2hhZG93OjAgMCAzcHggMXB4IHJnYig5NCwxNTgsMjE0KX0udWktc3RhdGUtYWN0aXZlLC51aS13aWRnZXQtY29udGVudCAudWktc3RhdGUtYWN0aXZlLC51aS13aWRnZXQtaGVhZGVyIC51aS1zdGF0ZS1hY3RpdmUsYS51aS1idXR0b246YWN0aXZlLC51aS1idXR0b246YWN0aXZlLC51aS1idXR0b24udWktc3RhdGUtYWN0aXZlOmhvdmVye2JvcmRlcjoxcHggc29saWQgIzAwM2VmZjtiYWNrZ3JvdW5kOiMwMDdmZmY7Zm9udC13ZWlnaHQ6bm9ybWFsO2NvbG9yOiNmZmZ9LnVpLWljb24tYmFja2dyb3VuZCwudWktc3RhdGUtYWN0aXZlIC51aS1pY29uLWJhY2tncm91bmR7Ym9yZGVyOiMwMDNlZmY7YmFja2dyb3VuZC1jb2xvcjojZmZmfS51aS1zdGF0ZS1hY3RpdmUgYSwudWktc3RhdGUtYWN0aXZlIGE6bGluaywudWktc3RhdGUtYWN0aXZlIGE6dmlzaXRlZHtjb2xvcjojZmZmO3RleHQtZGVjb3JhdGlvbjpub25lfS51aS1zdGF0ZS1oaWdobGlnaHQsLnVpLXdpZGdldC1jb250ZW50IC51aS1zdGF0ZS1oaWdobGlnaHQsLnVpLXdpZGdldC1oZWFkZXIgLnVpLXN0YXRlLWhpZ2hsaWdodHtib3JkZXI6MXB4IHNvbGlkICNkYWQ1NWU7YmFja2dyb3VuZDojZmZmYTkwO2NvbG9yOiM3Nzc2MjB9LnVpLXN0YXRlLWNoZWNrZWR7Ym9yZGVyOjFweCBzb2xpZCAjZGFkNTVlO2JhY2tncm91bmQ6I2ZmZmE5MH0udWktc3RhdGUtaGlnaGxpZ2h0IGEsLnVpLXdpZGdldC1jb250ZW50IC51aS1zdGF0ZS1oaWdobGlnaHQgYSwudWktd2lkZ2V0LWhlYWRlciAudWktc3RhdGUtaGlnaGxpZ2h0IGF7Y29sb3I6Izc3NzYyMH0udWktc3RhdGUtZXJyb3IsLnVpLXdpZGdldC1jb250ZW50IC51aS1zdGF0ZS1lcnJvciwudWktd2lkZ2V0LWhlYWRlciAudWktc3RhdGUtZXJyb3J7Ym9yZGVyOjFweCBzb2xpZCAjZjFhODk5O2JhY2tncm91bmQ6I2ZkZGZkZjtjb2xvcjojNWYzZjNmfS51aS1zdGF0ZS1lcnJvciBhLC51aS13aWRnZXQtY29udGVudCAudWktc3RhdGUtZXJyb3IgYSwudWktd2lkZ2V0LWhlYWRlciAudWktc3RhdGUtZXJyb3IgYXtjb2xvcjojNWYzZjNmfS51aS1zdGF0ZS1lcnJvci10ZXh0LC51aS13aWRnZXQtY29udGVudCAudWktc3RhdGUtZXJyb3ItdGV4dCwudWktd2lkZ2V0LWhlYWRlciAudWktc3RhdGUtZXJyb3ItdGV4dHtjb2xvcjojNWYzZjNmfS51aS1wcmlvcml0eS1wcmltYXJ5LC51aS13aWRnZXQtY29udGVudCAudWktcHJpb3JpdHktcHJpbWFyeSwudWktd2lkZ2V0LWhlYWRlciAudWktcHJpb3JpdHktcHJpbWFyeXtmb250LXdlaWdodDpib2xkfS51aS1wcmlvcml0eS1zZWNvbmRhcnksLnVpLXdpZGdldC1jb250ZW50IC51aS1wcmlvcml0eS1zZWNvbmRhcnksLnVpLXdpZGdldC1oZWFkZXIgLnVpLXByaW9yaXR5LXNlY29uZGFyeXtvcGFjaXR5Oi43Oy1tcy1maWx0ZXI6ImFscGhhKG9wYWNpdHk9NzApIjtmb250LXdlaWdodDpub3JtYWx9LnVpLXN0YXRlLWRpc2FibGVkLC51aS13aWRnZXQtY29udGVudCAudWktc3RhdGUtZGlzYWJsZWQsLnVpLXdpZGdldC1oZWFkZXIgLnVpLXN0YXRlLWRpc2FibGVke29wYWNpdHk6LjM1Oy1tcy1maWx0ZXI6ImFscGhhKG9wYWNpdHk9MzUpIjtiYWNrZ3JvdW5kLWltYWdlOm5vbmV9LnVpLXN0YXRlLWRpc2FibGVkIC51aS1pY29uey1tcy1maWx0ZXI6ImFscGhhKG9wYWNpdHk9MzUpIn0udWktaWNvbnt3aWR0aDoxNnB4O2hlaWdodDoxNnB4fS51aS1pY29uLC51aS13aWRnZXQtY29udGVudCAudWktaWNvbntiYWNrZ3JvdW5kLWltYWdlOnVybCgiaW1hZ2VzL3VpLWljb25zXzQ0NDQ0NF8yNTZ4MjQwLnBuZyIpfS51aS13aWRnZXQtaGVhZGVyIC51aS1pY29ue2JhY2tncm91bmQtaW1hZ2U6dXJsKCJpbWFnZXMvdWktaWNvbnNfNDQ0NDQ0XzI1NngyNDAucG5nIil9LnVpLXN0YXRlLWhvdmVyIC51aS1pY29uLC51aS1zdGF0ZS1mb2N1cyAudWktaWNvbiwudWktYnV0dG9uOmhvdmVyIC51aS1pY29uLC51aS1idXR0b246Zm9jdXMgLnVpLWljb257YmFja2dyb3VuZC1pbWFnZTp1cmwoImltYWdlcy91aS1pY29uc181NTU1NTVfMjU2eDI0MC5wbmciKX0udWktc3RhdGUtYWN0aXZlIC51aS1pY29uLC51aS1idXR0b246YWN0aXZlIC51aS1pY29ue2JhY2tncm91bmQtaW1hZ2U6dXJsKCJpbWFnZXMvdWktaWNvbnNfZmZmZmZmXzI1NngyNDAucG5nIil9LnVpLXN0YXRlLWhpZ2hsaWdodCAudWktaWNvbiwudWktYnV0dG9uIC51aS1zdGF0ZS1oaWdobGlnaHQudWktaWNvbntiYWNrZ3JvdW5kLWltYWdlOnVybCgiaW1hZ2VzL3VpLWljb25zXzc3NzYyMF8yNTZ4MjQwLnBuZyIpfS51aS1zdGF0ZS1lcnJvciAudWktaWNvbiwudWktc3RhdGUtZXJyb3ItdGV4dCAudWktaWNvbntiYWNrZ3JvdW5kLWltYWdlOnVybCgiaW1hZ2VzL3VpLWljb25zX2NjMDAwMF8yNTZ4MjQwLnBuZyIpfS51aS1idXR0b24gLnVpLWljb257YmFja2dyb3VuZC1pbWFnZTp1cmwoImltYWdlcy91aS1pY29uc183Nzc3NzdfMjU2eDI0MC5wbmciKX0udWktaWNvbi1ibGFuay51aS1pY29uLWJsYW5rLnVpLWljb24tYmxhbmt7YmFja2dyb3VuZC1pbWFnZTpub25lfS51aS1pY29uLWNhcmV0LTEtbntiYWNrZ3JvdW5kLXBvc2l0aW9uOjAgMH0udWktaWNvbi1jYXJldC0xLW5le2JhY2tncm91bmQtcG9zaXRpb246LTE2cHggMH0udWktaWNvbi1jYXJldC0xLWV7YmFja2dyb3VuZC1wb3NpdGlvbjotMzJweCAwfS51aS1pY29uLWNhcmV0LTEtc2V7YmFja2dyb3VuZC1wb3NpdGlvbjotNDhweCAwfS51aS1pY29uLWNhcmV0LTEtc3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi02NXB4IDB9LnVpLWljb24tY2FyZXQtMS1zd3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi04MHB4IDB9LnVpLWljb24tY2FyZXQtMS13e2JhY2tncm91bmQtcG9zaXRpb246LTk2cHggMH0udWktaWNvbi1jYXJldC0xLW53e2JhY2tncm91bmQtcG9zaXRpb246LTExMnB4IDB9LnVpLWljb24tY2FyZXQtMi1uLXN7YmFja2dyb3VuZC1wb3NpdGlvbjotMTI4cHggMH0udWktaWNvbi1jYXJldC0yLWUtd3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xNDRweCAwfS51aS1pY29uLXRyaWFuZ2xlLTEtbntiYWNrZ3JvdW5kLXBvc2l0aW9uOjAgLTE2cHh9LnVpLWljb24tdHJpYW5nbGUtMS1uZXtiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xNnB4IC0xNnB4fS51aS1pY29uLXRyaWFuZ2xlLTEtZXtiYWNrZ3JvdW5kLXBvc2l0aW9uOi0zMnB4IC0xNnB4fS51aS1pY29uLXRyaWFuZ2xlLTEtc2V7YmFja2dyb3VuZC1wb3NpdGlvbjotNDhweCAtMTZweH0udWktaWNvbi10cmlhbmdsZS0xLXN7YmFja2dyb3VuZC1wb3NpdGlvbjotNjVweCAtMTZweH0udWktaWNvbi10cmlhbmdsZS0xLXN3e2JhY2tncm91bmQtcG9zaXRpb246LTgwcHggLTE2cHh9LnVpLWljb24tdHJpYW5nbGUtMS13e2JhY2tncm91bmQtcG9zaXRpb246LTk2cHggLTE2cHh9LnVpLWljb24tdHJpYW5nbGUtMS1ud3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xMTJweCAtMTZweH0udWktaWNvbi10cmlhbmdsZS0yLW4tc3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xMjhweCAtMTZweH0udWktaWNvbi10cmlhbmdsZS0yLWUtd3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xNDRweCAtMTZweH0udWktaWNvbi1hcnJvdy0xLW57YmFja2dyb3VuZC1wb3NpdGlvbjowIC0zMnB4fS51aS1pY29uLWFycm93LTEtbmV7YmFja2dyb3VuZC1wb3NpdGlvbjotMTZweCAtMzJweH0udWktaWNvbi1hcnJvdy0xLWV7YmFja2dyb3VuZC1wb3NpdGlvbjotMzJweCAtMzJweH0udWktaWNvbi1hcnJvdy0xLXNle2JhY2tncm91bmQtcG9zaXRpb246LTQ4cHggLTMycHh9LnVpLWljb24tYXJyb3ctMS1ze2JhY2tncm91bmQtcG9zaXRpb246LTY1cHggLTMycHh9LnVpLWljb24tYXJyb3ctMS1zd3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi04MHB4IC0zMnB4fS51aS1pY29uLWFycm93LTEtd3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi05NnB4IC0zMnB4fS51aS1pY29uLWFycm93LTEtbnd7YmFja2dyb3VuZC1wb3NpdGlvbjotMTEycHggLTMycHh9LnVpLWljb24tYXJyb3ctMi1uLXN7YmFja2dyb3VuZC1wb3NpdGlvbjotMTI4cHggLTMycHh9LnVpLWljb24tYXJyb3ctMi1uZS1zd3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xNDRweCAtMzJweH0udWktaWNvbi1hcnJvdy0yLWUtd3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xNjBweCAtMzJweH0udWktaWNvbi1hcnJvdy0yLXNlLW53e2JhY2tncm91bmQtcG9zaXRpb246LTE3NnB4IC0zMnB4fS51aS1pY29uLWFycm93c3RvcC0xLW57YmFja2dyb3VuZC1wb3NpdGlvbjotMTkycHggLTMycHh9LnVpLWljb24tYXJyb3dzdG9wLTEtZXtiYWNrZ3JvdW5kLXBvc2l0aW9uOi0yMDhweCAtMzJweH0udWktaWNvbi1hcnJvd3N0b3AtMS1ze2JhY2tncm91bmQtcG9zaXRpb246LTIyNHB4IC0zMnB4fS51aS1pY29uLWFycm93c3RvcC0xLXd7YmFja2dyb3VuZC1wb3NpdGlvbjotMjQwcHggLTMycHh9LnVpLWljb24tYXJyb3d0aGljay0xLW57YmFja2dyb3VuZC1wb3NpdGlvbjoxcHggLTQ4cHh9LnVpLWljb24tYXJyb3d0aGljay0xLW5le2JhY2tncm91bmQtcG9zaXRpb246LTE2cHggLTQ4cHh9LnVpLWljb24tYXJyb3d0aGljay0xLWV7YmFja2dyb3VuZC1wb3NpdGlvbjotMzJweCAtNDhweH0udWktaWNvbi1hcnJvd3RoaWNrLTEtc2V7YmFja2dyb3VuZC1wb3NpdGlvbjotNDhweCAtNDhweH0udWktaWNvbi1hcnJvd3RoaWNrLTEtc3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi02NHB4IC00OHB4fS51aS1pY29uLWFycm93dGhpY2stMS1zd3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi04MHB4IC00OHB4fS51aS1pY29uLWFycm93dGhpY2stMS13e2JhY2tncm91bmQtcG9zaXRpb246LTk2cHggLTQ4cHh9LnVpLWljb24tYXJyb3d0aGljay0xLW53e2JhY2tncm91bmQtcG9zaXRpb246LTExMnB4IC00OHB4fS51aS1pY29uLWFycm93dGhpY2stMi1uLXN7YmFja2dyb3VuZC1wb3NpdGlvbjotMTI4cHggLTQ4cHh9LnVpLWljb24tYXJyb3d0aGljay0yLW5lLXN3e2JhY2tncm91bmQtcG9zaXRpb246LTE0NHB4IC00OHB4fS51aS1pY29uLWFycm93dGhpY2stMi1lLXd7YmFja2dyb3VuZC1wb3NpdGlvbjotMTYwcHggLTQ4cHh9LnVpLWljb24tYXJyb3d0aGljay0yLXNlLW53e2JhY2tncm91bmQtcG9zaXRpb246LTE3NnB4IC00OHB4fS51aS1pY29uLWFycm93dGhpY2tzdG9wLTEtbntiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xOTJweCAtNDhweH0udWktaWNvbi1hcnJvd3RoaWNrc3RvcC0xLWV7YmFja2dyb3VuZC1wb3NpdGlvbjotMjA4cHggLTQ4cHh9LnVpLWljb24tYXJyb3d0aGlja3N0b3AtMS1ze2JhY2tncm91bmQtcG9zaXRpb246LTIyNHB4IC00OHB4fS51aS1pY29uLWFycm93dGhpY2tzdG9wLTEtd3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi0yNDBweCAtNDhweH0udWktaWNvbi1hcnJvd3JldHVybnRoaWNrLTEtd3tiYWNrZ3JvdW5kLXBvc2l0aW9uOjAgLTY0cHh9LnVpLWljb24tYXJyb3dyZXR1cm50aGljay0xLW57YmFja2dyb3VuZC1wb3NpdGlvbjotMTZweCAtNjRweH0udWktaWNvbi1hcnJvd3JldHVybnRoaWNrLTEtZXtiYWNrZ3JvdW5kLXBvc2l0aW9uOi0zMnB4IC02NHB4fS51aS1pY29uLWFycm93cmV0dXJudGhpY2stMS1ze2JhY2tncm91bmQtcG9zaXRpb246LTQ4cHggLTY0cHh9LnVpLWljb24tYXJyb3dyZXR1cm4tMS13e2JhY2tncm91bmQtcG9zaXRpb246LTY0cHggLTY0cHh9LnVpLWljb24tYXJyb3dyZXR1cm4tMS1ue2JhY2tncm91bmQtcG9zaXRpb246LTgwcHggLTY0cHh9LnVpLWljb24tYXJyb3dyZXR1cm4tMS1le2JhY2tncm91bmQtcG9zaXRpb246LTk2cHggLTY0cHh9LnVpLWljb24tYXJyb3dyZXR1cm4tMS1ze2JhY2tncm91bmQtcG9zaXRpb246LTExMnB4IC02NHB4fS51aS1pY29uLWFycm93cmVmcmVzaC0xLXd7YmFja2dyb3VuZC1wb3NpdGlvbjotMTI4cHggLTY0cHh9LnVpLWljb24tYXJyb3dyZWZyZXNoLTEtbntiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xNDRweCAtNjRweH0udWktaWNvbi1hcnJvd3JlZnJlc2gtMS1le2JhY2tncm91bmQtcG9zaXRpb246LTE2MHB4IC02NHB4fS51aS1pY29uLWFycm93cmVmcmVzaC0xLXN7YmFja2dyb3VuZC1wb3NpdGlvbjotMTc2cHggLTY0cHh9LnVpLWljb24tYXJyb3ctNHtiYWNrZ3JvdW5kLXBvc2l0aW9uOjAgLTgwcHh9LnVpLWljb24tYXJyb3ctNC1kaWFne2JhY2tncm91bmQtcG9zaXRpb246LTE2cHggLTgwcHh9LnVpLWljb24tZXh0bGlua3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi0zMnB4IC04MHB4fS51aS1pY29uLW5ld3dpbntiYWNrZ3JvdW5kLXBvc2l0aW9uOi00OHB4IC04MHB4fS51aS1pY29uLXJlZnJlc2h7YmFja2dyb3VuZC1wb3NpdGlvbjotNjRweCAtODBweH0udWktaWNvbi1zaHVmZmxle2JhY2tncm91bmQtcG9zaXRpb246LTgwcHggLTgwcHh9LnVpLWljb24tdHJhbnNmZXItZS13e2JhY2tncm91bmQtcG9zaXRpb246LTk2cHggLTgwcHh9LnVpLWljb24tdHJhbnNmZXJ0aGljay1lLXd7YmFja2dyb3VuZC1wb3NpdGlvbjotMTEycHggLTgwcHh9LnVpLWljb24tZm9sZGVyLWNvbGxhcHNlZHtiYWNrZ3JvdW5kLXBvc2l0aW9uOjAgLTk2cHh9LnVpLWljb24tZm9sZGVyLW9wZW57YmFja2dyb3VuZC1wb3NpdGlvbjotMTZweCAtOTZweH0udWktaWNvbi1kb2N1bWVudHtiYWNrZ3JvdW5kLXBvc2l0aW9uOi0zMnB4IC05NnB4fS51aS1pY29uLWRvY3VtZW50LWJ7YmFja2dyb3VuZC1wb3NpdGlvbjotNDhweCAtOTZweH0udWktaWNvbi1ub3Rle2JhY2tncm91bmQtcG9zaXRpb246LTY0cHggLTk2cHh9LnVpLWljb24tbWFpbC1jbG9zZWR7YmFja2dyb3VuZC1wb3NpdGlvbjotODBweCAtOTZweH0udWktaWNvbi1tYWlsLW9wZW57YmFja2dyb3VuZC1wb3NpdGlvbjotOTZweCAtOTZweH0udWktaWNvbi1zdWl0Y2FzZXtiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xMTJweCAtOTZweH0udWktaWNvbi1jb21tZW50e2JhY2tncm91bmQtcG9zaXRpb246LTEyOHB4IC05NnB4fS51aS1pY29uLXBlcnNvbntiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xNDRweCAtOTZweH0udWktaWNvbi1wcmludHtiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xNjBweCAtOTZweH0udWktaWNvbi10cmFzaHtiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xNzZweCAtOTZweH0udWktaWNvbi1sb2NrZWR7YmFja2dyb3VuZC1wb3NpdGlvbjotMTkycHggLTk2cHh9LnVpLWljb24tdW5sb2NrZWR7YmFja2dyb3VuZC1wb3NpdGlvbjotMjA4cHggLTk2cHh9LnVpLWljb24tYm9va21hcmt7YmFja2dyb3VuZC1wb3NpdGlvbjotMjI0cHggLTk2cHh9LnVpLWljb24tdGFne2JhY2tncm91bmQtcG9zaXRpb246LTI0MHB4IC05NnB4fS51aS1pY29uLWhvbWV7YmFja2dyb3VuZC1wb3NpdGlvbjowIC0xMTJweH0udWktaWNvbi1mbGFne2JhY2tncm91bmQtcG9zaXRpb246LTE2cHggLTExMnB4fS51aS1pY29uLWNhbGVuZGFye2JhY2tncm91bmQtcG9zaXRpb246LTMycHggLTExMnB4fS51aS1pY29uLWNhcnR7YmFja2dyb3VuZC1wb3NpdGlvbjotNDhweCAtMTEycHh9LnVpLWljb24tcGVuY2lse2JhY2tncm91bmQtcG9zaXRpb246LTY0cHggLTExMnB4fS51aS1pY29uLWNsb2Nre2JhY2tncm91bmQtcG9zaXRpb246LTgwcHggLTExMnB4fS51aS1pY29uLWRpc2t7YmFja2dyb3VuZC1wb3NpdGlvbjotOTZweCAtMTEycHh9LnVpLWljb24tY2FsY3VsYXRvcntiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xMTJweCAtMTEycHh9LnVpLWljb24tem9vbWlue2JhY2tncm91bmQtcG9zaXRpb246LTEyOHB4IC0xMTJweH0udWktaWNvbi16b29tb3V0e2JhY2tncm91bmQtcG9zaXRpb246LTE0NHB4IC0xMTJweH0udWktaWNvbi1zZWFyY2h7YmFja2dyb3VuZC1wb3NpdGlvbjotMTYwcHggLTExMnB4fS51aS1pY29uLXdyZW5jaHtiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xNzZweCAtMTEycHh9LnVpLWljb24tZ2VhcntiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xOTJweCAtMTEycHh9LnVpLWljb24taGVhcnR7YmFja2dyb3VuZC1wb3NpdGlvbjotMjA4cHggLTExMnB4fS51aS1pY29uLXN0YXJ7YmFja2dyb3VuZC1wb3NpdGlvbjotMjI0cHggLTExMnB4fS51aS1pY29uLWxpbmt7YmFja2dyb3VuZC1wb3NpdGlvbjotMjQwcHggLTExMnB4fS51aS1pY29uLWNhbmNlbHtiYWNrZ3JvdW5kLXBvc2l0aW9uOjAgLTEyOHB4fS51aS1pY29uLXBsdXN7YmFja2dyb3VuZC1wb3NpdGlvbjotMTZweCAtMTI4cHh9LnVpLWljb24tcGx1c3RoaWNre2JhY2tncm91bmQtcG9zaXRpb246LTMycHggLTEyOHB4fS51aS1pY29uLW1pbnVze2JhY2tncm91bmQtcG9zaXRpb246LTQ4cHggLTEyOHB4fS51aS1pY29uLW1pbnVzdGhpY2t7YmFja2dyb3VuZC1wb3NpdGlvbjotNjRweCAtMTI4cHh9LnVpLWljb24tY2xvc2V7YmFja2dyb3VuZC1wb3NpdGlvbjotODBweCAtMTI4cHh9LnVpLWljb24tY2xvc2V0aGlja3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi05NnB4IC0xMjhweH0udWktaWNvbi1rZXl7YmFja2dyb3VuZC1wb3NpdGlvbjotMTEycHggLTEyOHB4fS51aS1pY29uLWxpZ2h0YnVsYntiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xMjhweCAtMTI4cHh9LnVpLWljb24tc2Npc3NvcnN7YmFja2dyb3VuZC1wb3NpdGlvbjotMTQ0cHggLTEyOHB4fS51aS1pY29uLWNsaXBib2FyZHtiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xNjBweCAtMTI4cHh9LnVpLWljb24tY29weXtiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xNzZweCAtMTI4cHh9LnVpLWljb24tY29udGFjdHtiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xOTJweCAtMTI4cHh9LnVpLWljb24taW1hZ2V7YmFja2dyb3VuZC1wb3NpdGlvbjotMjA4cHggLTEyOHB4fS51aS1pY29uLXZpZGVve2JhY2tncm91bmQtcG9zaXRpb246LTIyNHB4IC0xMjhweH0udWktaWNvbi1zY3JpcHR7YmFja2dyb3VuZC1wb3NpdGlvbjotMjQwcHggLTEyOHB4fS51aS1pY29uLWFsZXJ0e2JhY2tncm91bmQtcG9zaXRpb246MCAtMTQ0cHh9LnVpLWljb24taW5mb3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xNnB4IC0xNDRweH0udWktaWNvbi1ub3RpY2V7YmFja2dyb3VuZC1wb3NpdGlvbjotMzJweCAtMTQ0cHh9LnVpLWljb24taGVscHtiYWNrZ3JvdW5kLXBvc2l0aW9uOi00OHB4IC0xNDRweH0udWktaWNvbi1jaGVja3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi02NHB4IC0xNDRweH0udWktaWNvbi1idWxsZXR7YmFja2dyb3VuZC1wb3NpdGlvbjotODBweCAtMTQ0cHh9LnVpLWljb24tcmFkaW8tb257YmFja2dyb3VuZC1wb3NpdGlvbjotOTZweCAtMTQ0cHh9LnVpLWljb24tcmFkaW8tb2Zme2JhY2tncm91bmQtcG9zaXRpb246LTExMnB4IC0xNDRweH0udWktaWNvbi1waW4td3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xMjhweCAtMTQ0cHh9LnVpLWljb24tcGluLXN7YmFja2dyb3VuZC1wb3NpdGlvbjotMTQ0cHggLTE0NHB4fS51aS1pY29uLXBsYXl7YmFja2dyb3VuZC1wb3NpdGlvbjowIC0xNjBweH0udWktaWNvbi1wYXVzZXtiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xNnB4IC0xNjBweH0udWktaWNvbi1zZWVrLW5leHR7YmFja2dyb3VuZC1wb3NpdGlvbjotMzJweCAtMTYwcHh9LnVpLWljb24tc2Vlay1wcmV2e2JhY2tncm91bmQtcG9zaXRpb246LTQ4cHggLTE2MHB4fS51aS1pY29uLXNlZWstZW5ke2JhY2tncm91bmQtcG9zaXRpb246LTY0cHggLTE2MHB4fS51aS1pY29uLXNlZWstc3RhcnR7YmFja2dyb3VuZC1wb3NpdGlvbjotODBweCAtMTYwcHh9LnVpLWljb24tc2Vlay1maXJzdHtiYWNrZ3JvdW5kLXBvc2l0aW9uOi04MHB4IC0xNjBweH0udWktaWNvbi1zdG9we2JhY2tncm91bmQtcG9zaXRpb246LTk2cHggLTE2MHB4fS51aS1pY29uLWVqZWN0e2JhY2tncm91bmQtcG9zaXRpb246LTExMnB4IC0xNjBweH0udWktaWNvbi12b2x1bWUtb2Zme2JhY2tncm91bmQtcG9zaXRpb246LTEyOHB4IC0xNjBweH0udWktaWNvbi12b2x1bWUtb257YmFja2dyb3VuZC1wb3NpdGlvbjotMTQ0cHggLTE2MHB4fS51aS1pY29uLXBvd2Vye2JhY2tncm91bmQtcG9zaXRpb246MCAtMTc2cHh9LnVpLWljb24tc2lnbmFsLWRpYWd7YmFja2dyb3VuZC1wb3NpdGlvbjotMTZweCAtMTc2cHh9LnVpLWljb24tc2lnbmFse2JhY2tncm91bmQtcG9zaXRpb246LTMycHggLTE3NnB4fS51aS1pY29uLWJhdHRlcnktMHtiYWNrZ3JvdW5kLXBvc2l0aW9uOi00OHB4IC0xNzZweH0udWktaWNvbi1iYXR0ZXJ5LTF7YmFja2dyb3VuZC1wb3NpdGlvbjotNjRweCAtMTc2cHh9LnVpLWljb24tYmF0dGVyeS0ye2JhY2tncm91bmQtcG9zaXRpb246LTgwcHggLTE3NnB4fS51aS1pY29uLWJhdHRlcnktM3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi05NnB4IC0xNzZweH0udWktaWNvbi1jaXJjbGUtcGx1c3tiYWNrZ3JvdW5kLXBvc2l0aW9uOjAgLTE5MnB4fS51aS1pY29uLWNpcmNsZS1taW51c3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xNnB4IC0xOTJweH0udWktaWNvbi1jaXJjbGUtY2xvc2V7YmFja2dyb3VuZC1wb3NpdGlvbjotMzJweCAtMTkycHh9LnVpLWljb24tY2lyY2xlLXRyaWFuZ2xlLWV7YmFja2dyb3VuZC1wb3NpdGlvbjotNDhweCAtMTkycHh9LnVpLWljb24tY2lyY2xlLXRyaWFuZ2xlLXN7YmFja2dyb3VuZC1wb3NpdGlvbjotNjRweCAtMTkycHh9LnVpLWljb24tY2lyY2xlLXRyaWFuZ2xlLXd7YmFja2dyb3VuZC1wb3NpdGlvbjotODBweCAtMTkycHh9LnVpLWljb24tY2lyY2xlLXRyaWFuZ2xlLW57YmFja2dyb3VuZC1wb3NpdGlvbjotOTZweCAtMTkycHh9LnVpLWljb24tY2lyY2xlLWFycm93LWV7YmFja2dyb3VuZC1wb3NpdGlvbjotMTEycHggLTE5MnB4fS51aS1pY29uLWNpcmNsZS1hcnJvdy1ze2JhY2tncm91bmQtcG9zaXRpb246LTEyOHB4IC0xOTJweH0udWktaWNvbi1jaXJjbGUtYXJyb3ctd3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xNDRweCAtMTkycHh9LnVpLWljb24tY2lyY2xlLWFycm93LW57YmFja2dyb3VuZC1wb3NpdGlvbjotMTYwcHggLTE5MnB4fS51aS1pY29uLWNpcmNsZS16b29taW57YmFja2dyb3VuZC1wb3NpdGlvbjotMTc2cHggLTE5MnB4fS51aS1pY29uLWNpcmNsZS16b29tb3V0e2JhY2tncm91bmQtcG9zaXRpb246LTE5MnB4IC0xOTJweH0udWktaWNvbi1jaXJjbGUtY2hlY2t7YmFja2dyb3VuZC1wb3NpdGlvbjotMjA4cHggLTE5MnB4fS51aS1pY29uLWNpcmNsZXNtYWxsLXBsdXN7YmFja2dyb3VuZC1wb3NpdGlvbjowIC0yMDhweH0udWktaWNvbi1jaXJjbGVzbWFsbC1taW51c3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xNnB4IC0yMDhweH0udWktaWNvbi1jaXJjbGVzbWFsbC1jbG9zZXtiYWNrZ3JvdW5kLXBvc2l0aW9uOi0zMnB4IC0yMDhweH0udWktaWNvbi1zcXVhcmVzbWFsbC1wbHVze2JhY2tncm91bmQtcG9zaXRpb246LTQ4cHggLTIwOHB4fS51aS1pY29uLXNxdWFyZXNtYWxsLW1pbnVze2JhY2tncm91bmQtcG9zaXRpb246LTY0cHggLTIwOHB4fS51aS1pY29uLXNxdWFyZXNtYWxsLWNsb3Nle2JhY2tncm91bmQtcG9zaXRpb246LTgwcHggLTIwOHB4fS51aS1pY29uLWdyaXAtZG90dGVkLXZlcnRpY2Fse2JhY2tncm91bmQtcG9zaXRpb246MCAtMjI0cHh9LnVpLWljb24tZ3JpcC1kb3R0ZWQtaG9yaXpvbnRhbHtiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xNnB4IC0yMjRweH0udWktaWNvbi1ncmlwLXNvbGlkLXZlcnRpY2Fse2JhY2tncm91bmQtcG9zaXRpb246LTMycHggLTIyNHB4fS51aS1pY29uLWdyaXAtc29saWQtaG9yaXpvbnRhbHtiYWNrZ3JvdW5kLXBvc2l0aW9uOi00OHB4IC0yMjRweH0udWktaWNvbi1ncmlwc21hbGwtZGlhZ29uYWwtc2V7YmFja2dyb3VuZC1wb3NpdGlvbjotNjRweCAtMjI0cHh9LnVpLWljb24tZ3JpcC1kaWFnb25hbC1zZXtiYWNrZ3JvdW5kLXBvc2l0aW9uOi04MHB4IC0yMjRweH0udWktY29ybmVyLWFsbCwudWktY29ybmVyLXRvcCwudWktY29ybmVyLWxlZnQsLnVpLWNvcm5lci10bHtib3JkZXItdG9wLWxlZnQtcmFkaXVzOjNweH0udWktY29ybmVyLWFsbCwudWktY29ybmVyLXRvcCwudWktY29ybmVyLXJpZ2h0LC51aS1jb3JuZXItdHJ7Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6M3B4fS51aS1jb3JuZXItYWxsLC51aS1jb3JuZXItYm90dG9tLC51aS1jb3JuZXItbGVmdCwudWktY29ybmVyLWJse2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6M3B4fS51aS1jb3JuZXItYWxsLC51aS1jb3JuZXItYm90dG9tLC51aS1jb3JuZXItcmlnaHQsLnVpLWNvcm5lci1icntib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czozcHh9LnVpLXdpZGdldC1vdmVybGF5e2JhY2tncm91bmQ6I2FhYTtvcGFjaXR5Oi4zOy1tcy1maWx0ZXI6QWxwaGEoT3BhY2l0eT0zMCl9LnVpLXdpZGdldC1zaGFkb3d7LXdlYmtpdC1ib3gtc2hhZG93OjAgMCA1cHggIzY2Njtib3gtc2hhZG93OjAgMCA1cHggIzY2Nn0KLyoqIC9jc3Mvc3R5bGUuY3NzICoqLwpodG1sLCBib2R5LCBhcHBsZXQsIG9iamVjdCwgaWZyYW1lLCBoMSwgaDIsIGgzLCBoNCwgaDUsIGg2LCBibG9ja3F1b3RlLCBwcmUsIGFiYnIsIGFjcm9ueW0sIGFkZHJlc3MsIGJpZywgY2l0ZSwgY29kZSwgZGVsLCBkZm4sIGVtLCBmb250LCBpbWcsIGlucywga2JkLCBxLCBzLCBzYW1wLCBzbWFsbCwgc3RyaWtlLCBzdHJvbmcsIHN1Yiwgc3VwLCB0dCwgdmFyLCBiLCB1LCBpLCBjZW50ZXIsIGRsLCBkdCwgZGQsIG9sLCB1bCwgbGksIGZpZWxkc2V0LCBmb3JtLCBsYWJlbCwgbGVnZW5kLCB0YWJsZSwgY2FwdGlvbiwgdGJvZHksIHRmb290LCB0aGVhZCwgdHIsIHRoLCB0ZCB7IG1hcmdpbjowOyBwYWRkaW5nOjA7IH0gaHRtbCB7IC1tcy10ZXh0LXNpemUtYWRqdXN0OjEwMCU7IC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDoxMDAlOyB9IGJvZHkgeyBwYWRkaW5nOjA7IG1hcmdpbjowIDAgMCAwOyBiYWNrZ3JvdW5kOiNGRkZGRkY7IGNvbG9yOiMzMzMzMzM7IGZvbnQtZmFtaWx5OnZhcigtLWZvbnQtdGV4dC1tb2IpOyBmb250LXdlaWdodDp2YXIoLS1mb250LXRleHQtd2VpZ2h0KTsgZm9udC1zaXplOjAuOTM4cmVtIDsgfSBpbnB1dCwgdGV4dGFyZWEsIHNlbGVjdCwgYnV0dG9uIHsgZm9udC1mYW1pbHk6dmFyKC0tZm9udC10ZXh0LW1vYik7IGZvbnQtd2VpZ2h0OnZhcigtLWZvbnQtdGV4dC13ZWlnaHQpOyB9IC5mdWxsV2lkdGhCdXR0b24gYSwgLnRvcG5hdiB0ciB0ZCBhLCBhI21vYmlsZVByb21vdGlvbkJ0biBzcGFueyBmb250LWZhbWlseTp2YXIoLS1mb250LWJ1dHRvbnMtbW9iKTsgZm9udC13ZWlnaHQ6dmFyKC0tZm9udC1idXR0b25zLXdlaWdodCk7IH0gLmRlYWxlci1jb2xvciB7IGNvbG9yOiNmM2YzZjM7IH0gLmgyZm9ybXsgZm9udC13ZWlnaHQ6Ym9sZDsgdGV4dC10cmFuc2Zvcm06dmFyKC0tdHh0LXVwcGVyKTsgYmFja2dyb3VuZDojOTk5OyBjb2xvcjp3aGl0ZTsgcGFkZGluZzo1cHggMTBweDsgZm9udC1zaXplOjAuOTM4cmVtIDsgbWFyZ2luLXRvcDoxNXB4OyB9IC4tc2VsZWN0IHsgcGFkZGluZzowOyBtYXJnaW46MDsgYm9yZGVyOjFweCBzb2xpZCAjY2NjOyBib3JkZXItcmFkaXVzOjNweDsgb3ZlcmZsb3c6aGlkZGVuOyBiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7IGJhY2tncm91bmQ6I2ZmZjsgcG9zaXRpb246cmVsYXRpdmU7IH0gLnVzZWRfZGV0YWlsc19vcHRpb25zX3RpdGxlLCAubmV3X2RldGFpbHNfb3B0aW9uc190aXRsZXsgYmFja2dyb3VuZC1jb2xvcjojY2NjOyBjb2xvcjojMDAwOyBwYWRkaW5nOjEwcHg7IGZvbnQtc2l6ZToxLjEyNXJlbSA7IG1hcmdpbi1sZWZ0Oi0xMHB4OyBtYXJnaW4tcmlnaHQ6LTEwcHg7IH0gLi1zZWxlY3Q6YWZ0ZXIgeyB0b3A6NTAlOyByaWdodDo1cHg7IGJvcmRlcjpzb2xpZCB0cmFuc3BhcmVudDsgY29udGVudDoiICI7IGhlaWdodDowOyB3aWR0aDowOyBwb3NpdGlvbjphYnNvbHV0ZTsgcG9pbnRlci1ldmVudHM6bm9uZTsgYm9yZGVyLWNvbG9yOnJnYmEoMCwgMCwgMCwgMCk7IGJvcmRlci10b3AtY29sb3I6IzAwMDAwMDsgYm9yZGVyLXdpZHRoOjVweDsgbWFyZ2luLXRvcDotMnB4OyB6LWluZGV4OjEwMDsgfSAuLXNlbGVjdCBzZWxlY3QgeyBwYWRkaW5nOjVweCA4cHg7IHdpZHRoOjEwMCU7IGJvcmRlcjpub25lOyBib3gtc2hhZG93Om5vbmU7IGJhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7IGJhY2tncm91bmQtaW1hZ2U6bm9uZTsgLXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7IC1tb3otYXBwZWFyYW5jZTpub25lOyBhcHBlYXJhbmNlOm5vbmU7IH0gLi1zZWxlY3Qgc2VsZWN0OmZvY3VzIHsgb3V0bGluZTpub25lOyB9IGEsIGE6aG92ZXIgeyBvdXRsaW5lOm5vbmU7IH0gLm5hdiA+IHVsID4gbGl7IG1hcmdpbi1ib3R0b206M3B4OyB9IGgxeyBmb250LXNpemU6MS40ZW07IHBhZGRpbmctdG9wOjEwcHg7IGZvbnQtZmFtaWx5OnZhcigtLWZvbnQtaDEtbW9iKTsgZm9udC13ZWlnaHQ6dmFyKC0tZm9udC1oMS13ZWlnaHQpOyB9IHNwYW4uaDItYWx0LHNwYW4uaDMtYWx0eyBtYXJnaW46MDsgcGFkZGluZzowOyB9IGgyLGgzLGg0LGg1LGg2LHNwYW4uaDItYWx0LHNwYW4uaDMtYWx0eyBmb250LWZhbWlseTp2YXIoLS1mb250LWgyLW1vYik7IGZvbnQtd2VpZ2h0OnZhcigtLWZvbnQtaDItd2VpZ2h0KTsgfSBpbnB1dFt0eXBlPWJ1dHRvbl0sIC5kZXRhaWxzIGEsIC5oLWJ1dHRvbnMgdWwgbGkgYSwgLnByaWNlLCAuZGV0YWlscywgLmRldGFpbHMgYSwgLmJ1dHRvbi1wcm9tbzMsIC5idG4tZGVmYXVsdCwgLmJ0bi1zbSwgLmJ0bi1sZyB7IGZvbnQtZmFtaWx5OnZhcigtLWZvbnQtYnV0dG9ucy1tb2IpOyBmb250LXdlaWdodDp2YXIoLS1mb250LWJ1dHRvbnMtd2VpZ2h0KTsgfSAuY2xlYXJ7IGNsZWFyOmJvdGg7fSBhLCBhOmhvdmVyIHt0ZXh0LWRlY29yYXRpb246bm9uZTt9IC5jb250YWluZXIgeyB3aWR0aDoxMDAlOyBtYXJnaW46MCAwIDAgMDsgfSAudG9wIHsgYmFja2dyb3VuZDojMjIyMjIyOyBiYWNrZ3JvdW5kOiNmZmZmZmY7IGhlaWdodDo1MHB4OyB9IC50b3BuYXYgLmJ1cmdlci1idG4tY29udGFpbmVyLm1lbnUtdGFsbHsgd2lkdGg6NDBweCAhaW1wb3J0YW50OyB9IC50b3BuYXYgYSB7IHRleHQtZGVjb3JhdGlvbjpub25lOyBmb250LXNpemU6MWVtOyBmb250LXdlaWdodDpib2xkOyBjb2xvcjojZmZmZmZmOyBjb2xvcjojMTAyYjRlOyB9IC5idXJnZXItbWVudXsgaGVpZ2h0OjIwMCUgIWltcG9ydGFudDsgYmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuNSkgIWltcG9ydGFudDsgfSAucmlnaHRib3JkZXIgeyBib3JkZXItcmlnaHQ6MXB4IHNvbGlkOyBib3JkZXItY29sb3I6I2ZmZmZmZjsgYm9yZGVyLWNvbG9yOiMxMDJiNGU7IH0gLmxlZnRib3JkZXIgeyBib3JkZXItbGVmdDoxcHggc29saWQ7IGJvcmRlci1jb2xvcjojZmZmZmZmOyBib3JkZXItY29sb3I6IzEwMmI0ZTsgfSAudGVsZXBob25lLCAubWFwIHtkaXNwbGF5OmJsb2NrOyBoZWlnaHQ6NjRweDsgcGFkZGluZzoyNXB4IDAgMCAwO30gLnRlbGVwaG9uZSB7YmFja2dyb3VuZDp1cmwoL2ltYWdlcy9pY29uLXBob25lLnBuZykgbm8tcmVwZWF0IDIwcHggMTVweDsgfSAubWFwIHtiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2ljb24tbWFwLnBuZykgbm8tcmVwZWF0IDUwcHggMTBweDt9IC5oZWFkZXJiYXIgeyBiYWNrZ3JvdW5kOiMzMzM7IGNvbG9yOndoaXRlOyBib3gtc2hhZG93OnJnYmEoMCwgMCwgMCwgMC41KSAwIDAgNXB4IDNweDsgYmFja2dyb3VuZDojZmZmZmZmOyBjb2xvcjojMTAyYjRlIH0gLmhlYWRlcmJhci50YWxsIHsgcG9zaXRpb24gOmFic29sdXRlOyB0b3AgOjA7IHdpZHRoIDoxMDAlOyB9IC5oZWFkZXJiYXIgLnRvcG5hdiB7IHdpZHRoIDoxMDAlOyBoZWlnaHQgOjEwMCU7IGRpc3BsYXkgOmZsZXg7IGp1c3RpZnktY29udGVudCA6c3BhY2UtYmV0d2VlbjsgYWxpZ24taXRlbXMgOmNlbnRlcjsgfSAuaGVhZGVyYmFyLnRhbGwgLnRvcG5hdiB7IGp1c3RpZnktY29udGVudDpzdHJldGNoOyB9IC5oZWFkZXJiYXIgLnRvcG5hdiA+IGRpdiB7IGhlaWdodCA6NTBweDsgZGlzcGxheSA6ZmxleDsgYWxpZ24taXRlbXMgOmNlbnRlcjsgfSAuaGVhZGVyYmFyIC50b3BuYXYgPiAubG9nby1hY3Rpb24geyBmbGV4LWRpcmVjdGlvbiA6Y29sdW1uOyBqdXN0aWZ5LWNvbnRlbnQgOnNwYWNlLWV2ZW5seTsgfSAuaGVhZGVyYmFyLnRhbGwgLnRvcG5hdiA+IGRpdjpub3QoLmJ1cmdlci1idG4tY29udGFpbmVyKSB7IGZsZXgtZ3JvdzoxOyB9IC5oZWFkZXJiYXIudGFsbCAudG9wbmF2ID4gZGl2Om5vdCg6bGFzdC1vZi10eXBlKSB7IGJvcmRlci1yaWdodDoxcHggc29saWQgI2RkZDsgfSAuaGVhZGVyYmFyIC5tZW51LmJ1cmdlci1idG4tY29udGFpbmVyIHsgbWF4LXdpZHRoIDo0MHB4OyBoZWlnaHQgOjUwcHg7IH0gLmhlYWRlcmJhciAuYnVyZ2VyLW1lbnUtYnV0dG9uLCAuaGVhZGVyYmFyLnRhbGwgLnRvcG5hdiA+IGRpdiB7IGRpc3BsYXkgOmZsZXg7IGp1c3RpZnktY29udGVudCA6Y2VudGVyOyBhbGlnbi1pdGVtcyA6Y2VudGVyOyB0ZXh0LWNlbnRlciA6Y2VudGVyOyB9IC5oZWFkZXJiYXIgLmJ1cmdlci1tZW51LWJ1dHRvbiBpIHsgZm9udC1zaXplOjEuMjVyZW07IGNvbG9yOiMxMDJiNGU7IH0gLmhlYWRlcmJhciAubG9nby1hY3Rpb24gaW1nIHsgcGFkZGluZyA6MDsgaGVpZ2h0IDoxMDAlOyBtYXgtaGVpZ2h0IDo1MHB4OyB9IC5oZWFkZXJiYXIgLmhlYWRlci1kZWFsZXItbmFtZSB7IGRpc3BsYXkgOmJsb2NrOyB0ZXh0LWFsaWduIDpjZW50ZXI7IGxpbmUtaGVpZ2h0IDoxLjNlbTsgZm9udC1zaXplIDowLjhyZW07IGNvbG9yIDojODg4ODg4OyBmb250LWZhbWlseSA6dmFyKC0tZm9udC1oMS1tb2IpOyBmb250LXdlaWdodCA6dmFyKC0tZm9udC13ZWlnaHQtaDEtbW9iKTsgfSAuaGVhZGVyYmFyIC50b3BuYXYgPiBkaXY6bm90KC5sb2dvLWFjdGlvbikgPiBhIHsgdGV4dC1hbGlnbiA6Y2VudGVyOyB3aWR0aCA6MTAwJTsgcGFkZGluZyA6MC43NXJlbTsgfSBkaXYjcGhvbmVOdW1iZXJEaXYgbGkgeyBsaXN0LXN0eWxlLXR5cGU6bm9uZTsgbWFyZ2luLWJvdHRvbToxNXB4OyB9ICNuZXdzQ29udGFpbmVyIGF7IGNvbG9yOiMzMzM7IH0gI25ld3NDb250YWluZXIgYS50b3BfbGluayB7IGNvbG9yOiNmZmY7IH0gLm5ld3NfYXJ0aWNsZSBoMnsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXNpemU6MS4xMjVyZW0gOyB9IC5uZXdzX2FydGljbGUgaDEsaDIsaDMsaDQsaDUsaDZ7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgfSAuYWRkcmVzcyB7IGxldHRlci1zcGFjaW5nOi0xcHg7IGNvbG9yOiMzMzM7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgbGluZS1oZWlnaHQ6bm9ybWFsOyB3aWR0aDo1MCU7IGRpc3BsYXk6aW5saW5lLWJsb2NrOyB9IC5hZGRyZXNzLCAubG9nbyB7IHZlcnRpY2FsLWFsaWduOnRvcDsgfSAuY29udGVudHMgeyBiYWNrZ3JvdW5kOiNmYmZiZmI7IHBhZGRpbmc6MTBweDsgfSAuY29udGVudHMgaDIge2ZvbnQtc2l6ZToxLjVyZW07IGxpbmUtaGVpZ2h0OjIuMjVyZW07fSAuY29udGVudHMgcCB7Zm9udC1zaXplOjFlbTsgbGluZS1oZWlnaHQ6MS4xZW07IHRleHQtYWxpZ246anVzdGlmeTsgbGV0dGVyLXNwYWNpbmc6MDt9IC5tb2JpbGVfYnVzaW5lc3NEZXNjIHsgYmFja2dyb3VuZDojZjNmM2YzIWltcG9ydGFudDsgY29sb3I6IzAwMDAwMCFpbXBvcnRhbnQ7IH0gLm1lbnUgeyB3aWR0aDoxMDAlOyBjbGVhcjpib3RoOyB9ICNuZXdzQ29udGFpbmVyIC5uZXdzX2FydGljbGUgaW1nW3NyYyo9Jy9ja2ZpbmRlciddeyBoZWlnaHQ6YXV0byAhaW1wb3J0YW50OyBtYXgtd2lkdGg6MTAwJSAhaW1wb3J0YW50OyB9ICNuZXdzQ29udGFpbmVyIC5uZXdzX2FydGljbGUgaW1neyBtYXgtd2lkdGg6MTAwJTsgaGVpZ2h0OmF1dG87IH0gI25ld3NDb250YWluZXIgLmNsZWFyZml4IHsgaGVpZ2h0OjBweDsgfSAubWVudSB1bCBsaSBhIHNwYW4ge3BhZGRpbmctbGVmdDo3cHg7fSAubWVudSB1bCBsaSBhIHNwYW4udGV4dHZhbCB7bGluZS1oZWlnaHQ6MzJweDsgIyNNT0JJTEVfTUVOVV9DU1MjI30gLm1lbnUgdWwgbGkgYSBzcGFuIGltZyB7cGFkZGluZy1sZWZ0OjEwcHg7IHZlcnRpY2FsLWFsaWduOm1pZGRsZTt9IC5ib3R0b20gLmxpbmtzIGEgeyBjb2xvcjojNjY2NjY2OyB9IC5FTkdMSVNIIC5ib3R0b20gLmxpbmtzIHVsIGxpIGF7IHRleHQtdHJhbnNmb3JtOmNhcGl0YWxpemU7IH0gLmJvdHRvbSAubGlua3MgZGl2IHsgbWFyZ2luOjE1cHggMDsgZGlzcGxheTpibG9jazsgfSAuYm90dG9tIHsgcGFkZGluZzoxMHB4OyBkaXNwbGF5OmJsb2NrOyAtd2Via2l0LWJveC1zaGFkb3c6aW5zZXQgMHB4IDEwcHggMTFweCAtMTFweCByZ2JhKDUwLCA1MCwgNTAsIDAuNzUpOyAtbW96LWJveC1zaGFkb3c6IGluc2V0IDBweCAxMHB4IDExcHggLTExcHggcmdiYSg1MCwgNTAsIDUwLCAwLjc1KTsgYm94LXNoYWRvdzogaW5zZXQgMHB4IDEwcHggMTFweCAtMTFweCByZ2JhKDUwLCA1MCwgNTAsIDAuNzUpOyBiYWNrZ3JvdW5kLWNvbG9yOiNmM2YzZjM7IGNvbG9yOiM2NjY2NjY7IC0tdHh0LWNvbG9yOiM2NjY2NjY7IH0gLmJvdHRvbSAubGlua3MgeyBmb250LXNpemU6MC45MzhyZW0gOyBsaW5lLWhlaWdodDoyMXB4OyBjbGVhcjpib3RoOyBwYWRkaW5nLXRvcDo1cHg7IH0gLmJvdHRvbSAuZm9vdGVyX2FkZHJlc3Mgc3BhbnsgY29sb3I6aW5oZXJpdCAhaW1wb3J0YW50OyB9IC5ib3R0b20gLmxpbmtzIGRpdi5mb290ZXJfbG9nbyB7IG1hcmdpbjoxLjI1cmVtIDAgMS43NXJlbSAwOyB9IC5ib3R0b20gLmxpbmtzIGRpdi5mb290ZXJfbG9nbyBpbWcgeyBtYXgtd2lkdGg6MTgwcHg7IG1heC1oZWlnaHQ6MTAwcHg7IH0gYS5idXR0b24tcHJvbW8geyBjb2xvcjojZmZmZmZmIWltcG9ydGFudDsgfSAuYnJlYWRjcnVtYnMgeyBmb250LXNpemUgOjAuOXJlbTsgY29sb3IgOiMyMjIyMjI7IGZvbnQtd2VpZ2h0IDpib2xkOyBwYWRkaW5nIDoxNXB4OyB9IC5icmVhZGNydW1icyBhIHtjb2xvcjojNjY2OyB0ZXh0LWRlY29yYXRpb246bm9uZTsgfSAuYm90dG9tIC5saW5rcyBkaXYuZm9vdGVyLWNhcmxpc3RpbmcgeyBwYWRkaW5nLWJvdHRvbTo1cHg7IH0gLmNGb290ZXJDYXJMaW5rc3sgcGFkZGluZzowIDAgNXB4IDA7IH0gLnNlYXJjaGJveCB7IGJhY2tncm91bmQ6I0U1RTVFNTsgfSAuc2VhcmNoYm94IGgzIC51aS1hY2NvcmRpb24taGVhZGVyLWljb24ge3BhZGRpbmc6MHB4IDRweCA2cHggMHB4OyBjdXJzb3I6cG9pbnRlcjsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9kb3duYXJyb3cucG5nKSBuby1yZXBlYXQgOTglIGNlbnRlcjsgdG9wOjE4cHghaW1wb3J0YW50O30gLmZvcm1hcmVhIHsgLXdlYmtpdC1ib3gtc2hhZG93Omluc2V0IDAgMXB4IDNweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMyk7IC1tb3otYm94LXNoYWRvdzppbnNldCAwIDFweCAzcHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjMpOyBib3gtc2hhZG93Omluc2V0IDAgMXB4IDNweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMyk7IH0gLmZvcm1hcmVhIHRhYmxlIHRyIHRkIHsgcGFkZGluZzo1cHg7IH0gaW5wdXQsIGlucHV0W3R5cGU9dGV4dF0sIGlucHV0W3R5cGU9dGVsXSwgaW5wdXRbdHlwZT1lbWFpbF0sIHNlbGVjdCwgdGV4dGFyZWF7IC13ZWJraXQtYm9yZGVyLXJhZGl1czo0cHg7IC1tb3otYm9yZGVyLXJhZGl1czo0cHg7IGJvcmRlci1yYWRpdXM6NHB4OyBib3JkZXI6MXB4IHNvbGlkICNjY2M7IHBhZGRpbmc6NXB4OyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IH0gLmNoZWNrYm94IHsgcG9zaXRpb246cmVsYXRpdmU7IGRpc3BsYXk6YmxvY2s7IH0gLmNoZWNrYm94IGlucHV0W3R5cGU9ImNoZWNrYm94Il0geyB3aWR0aDphdXRvOyBvcGFjaXR5OjAuMDAwMDAwMDE7IHBvc2l0aW9uOmFic29sdXRlOyBsZWZ0OjA7IG1hcmdpbi1sZWZ0Oi0ycHg7IH0gLmNoZWNrYm94X2hlbHBlciB7IHBvc2l0aW9uOmFic29sdXRlOyB0b3A6LTRweDsgbGVmdDotNHB4OyBjdXJzb3I6cG9pbnRlcjsgZGlzcGxheTpibG9jazsgZm9udC1zaXplOjFyZW0gOyB1c2VyLXNlbGVjdDpub25lOyBjb2xvcjojZTdlN2U3OyB9IC5jaGVja2JveF9oZWxwZXI6YmVmb3JlIHsgY29udGVudDonJzsgcG9zaXRpb246YWJzb2x1dGU7IGxlZnQ6MDsgdG9wOjA7IG1hcmdpbjo0cHg7IHdpZHRoOjE1cHg7IGhlaWdodDoxNXB4OyB0cmFuc2l0aW9uOnRyYW5zZm9ybSAwLjI4cyBlYXNlOyBib3JkZXItcmFkaXVzOjJweDsgYm9yZGVyOjFweCBzb2xpZCAjY2NjOyBiYWNrZ3JvdW5kOndoaXRlOyB9IC5jaGVja2JveF9oZWxwZXI6YWZ0ZXIgeyBjb250ZW50OicnOyBkaXNwbGF5OmJsb2NrOyB3aWR0aDo4cHg7IGhlaWdodDo1cHg7IGJvcmRlci1ib3R0b206MnB4IHNvbGlkICMzMzM7IGJvcmRlci1sZWZ0OjJweCBzb2xpZCAjMzMzOyAtd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoLTQ1ZGVnKSBzY2FsZSgwKTsgLW1vei10cmFuc2Zvcm06cm90YXRlKC00NWRlZykgc2NhbGUoMCk7IC1tcy10cmFuc2Zvcm06cm90YXRlKC00NWRlZykgc2NhbGUoMCk7IHRyYW5zZm9ybTpyb3RhdGUoLTQ1ZGVnKSBzY2FsZSgwKTsgcG9zaXRpb246YWJzb2x1dGU7IHRvcDo3cHg7IGxlZnQ6OHB4OyB9IC5jaGVja2JveCBpbnB1dFt0eXBlPSJjaGVja2JveCJdY2hlY2tlZCB+IC5jaGVja2JveF9oZWxwZXI6OmJlZm9yZSB7IGNvbG9yOiMzMzM7IH0gLmNoZWNrYm94IGlucHV0W3R5cGU9ImNoZWNrYm94Il06Y2hlY2tlZCB+IC5jaGVja2JveF9oZWxwZXI6OmFmdGVyIHsgLXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKC00NWRlZykgc2NhbGUoMSk7IC1tb3otdHJhbnNmb3JtOnJvdGF0ZSgtNDVkZWcpIHNjYWxlKDEpOyAtbXMtdHJhbnNmb3JtOnJvdGF0ZSgtNDVkZWcpIHNjYWxlKDEpOyB0cmFuc2Zvcm06cm90YXRlKC00NWRlZykgc2NhbGUoMSk7IH0gLmNoZWNrYm94IGxhYmVsIHsgbWluLWhlaWdodDoyNHB4OyBwYWRkaW5nLWxlZnQ6MjRweDsgbWFyZ2luLWJvdHRvbTowOyBmb250LXdlaWdodDpub3JtYWw7IGN1cnNvcjpwb2ludGVyOyB2ZXJ0aWNhbC1hbGlnbjpzdWI7IH0gLmNoZWNrYm94IGlucHV0W3R5cGU9ImNoZWNrYm94Il06Zm9jdXMgKyBsYWJlbDo6YmVmb3JlIHsgb3V0bGluZTpyZ2IoNTksIDE1MywgMjUyKSBhdXRvIDVweDsgfSBzZWxlY3R7IGZvbnQtc2l6ZTowLjkzOHJlbSA7IH0gLmRyb3Bkb3duIHt3aWR0aDo5NSU7IG1hcmdpbjphdXRvIDVweDt9IC5idXR0b24ge2JhY2tncm91bmQ6IzMzMzsgY29sb3I6I2ZmZjsgZm9udC1zaXplOjEuMWVtOyB0ZXh0LWFsaWduOmNlbnRlcjsgd2lkdGg6MzAwcHg7IHBhZGRpbmc6MTVweDsgY3Vyc29yOnBvaW50ZXJ9IC5pbWFnZV9ib3ggeyBwb3NpdGlvbjpyZWxhdGl2ZTsgbWFyZ2luOjdweDsgfSAuaW1hZ2VfYm94IGltZ3sgYm9yZGVyOjFweCBzb2xpZCAjZWVlOyB9ICNjb250YWluZXJGbEIgeyB6LWluZGV4Ojk5OTk5OTk7IH0gLmltYWdlX3JpYmJvbiB7IHBvc2l0aW9uOmFic29sdXRlOyBsZWZ0OjNweDsgdG9wOi00cHg7IHotaW5kZXg6ODUwOyBvdmVyZmxvdzpoaWRkZW47IHdpZHRoOjExMnB4OyBoZWlnaHQ6MTEycHg7IHRleHQtYWxpZ246cmlnaHQ7IH0gLmltYWdlX3JpYmJvbiBzcGFuIHsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzEwMmI0ZTsgdGV4dC1hbGlnbjpjZW50ZXI7IGxpbmUtaGVpZ2h0OjI4cHg7IHRyYW5zZm9ybTpyb3RhdGUoLTQ1ZGVnKTsgLXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKC00NWRlZyk7IHdpZHRoOjE0OHB4OyBkaXNwbGF5OmJsb2NrOyBiYWNrZ3JvdW5kOiNmM2YzZjM7IGJveC1zaGFkb3c6MCAzcHggMTBweCAtNXB4IHJnYmEoMCwgMCwgMCwgMSk7IHBvc2l0aW9uOmFic29sdXRlOyB0b3A6MzBweDsgbGVmdDotMzBweDsgfSAuaW1hZ2VfcmliYm9uIHNwYW46OmJlZm9yZSB7IGNvbnRlbnQ6IiI7IHBvc2l0aW9uOmFic29sdXRlOyBsZWZ0OjBweDsgdG9wOjEwMCU7IHotaW5kZXg6LTE7IGJvcmRlci1sZWZ0OjNweCBzb2xpZCAjZjNmM2YzOyBib3JkZXItcmlnaHQ6M3B4IHNvbGlkIHRyYW5zcGFyZW50OyBib3JkZXItYm90dG9tOjNweCBzb2xpZCB0cmFuc3BhcmVudDsgYm9yZGVyLXRvcDozcHggc29saWQgI2YzZjNmMzsgfSAuaW1hZ2VfcmliYm9uIHNwYW46OmFmdGVyIHsgY29udGVudDoiIjsgcG9zaXRpb246YWJzb2x1dGU7IHJpZ2h0OjBweDsgdG9wOjEwMCU7IHotaW5kZXg6LTE7IGJvcmRlci1sZWZ0OjNweCBzb2xpZCB0cmFuc3BhcmVudDsgYm9yZGVyLXJpZ2h0OjNweCBzb2xpZCAjZjNmM2YzOyBib3JkZXItYm90dG9tOjNweCBzb2xpZCB0cmFuc3BhcmVudDsgYm9yZGVyLXRvcDozcHggc29saWQgI2YzZjNmMzsgfSAucmliYm9uLWNvbnRhaW5lciB7IHdpZHRoIDoyMDBweDsgaGVpZ2h0IDoyMDBweDsgb3ZlcmZsb3cgOmhpZGRlbjsgcG9zaXRpb24gOmFic29sdXRlOyB0b3AgOjA7IGxlZnQgOjA7IH0gLnJpYmJvbi1jb250YWluZXIgLmNvcm5lci1yaWJib24geyB6LWluZGV4IDo1NTU7IG1hcmdpbiA6MDsgcGFkZGluZyA6MC41cmVtIDAgIWltcG9ydGFudDsgYm94LXNoYWRvdyA6MCAzcHggMTBweCAtNXB4IHJnYmEoMCwgMCwgMCwgMSk7IGZvbnQtc2l6ZSA6MXJlbTsgbGluZS1oZWlnaHQgOjEycHg7IHRleHQtYWxpZ24gOmNlbnRlcjsgcG9zaXRpb24gOmFic29sdXRlOyB0b3AgOjA7IGxlZnQgOjA7IHRyYW5zZm9ybSA6dHJhbnNsYXRlWCgtMzUlKSB0cmFuc2xhdGVZKDAlKSByb3RhdGUoLTQ1ZGVnKTsgdHJhbnNmb3JtLW9yaWdpbiA6dG9wIHJpZ2h0OyBiYWNrZ3JvdW5kIDp2YXIoLS1jb3JuZXItcmliYm9uLWJnLWNvbG9yKTsgY29sb3IgOnZhcigtLWNvcm5lci1yaWJib24tdGV4dC1jb2xvcik7IH0gLnJpYmJvbi1jb250YWluZXIgLmNvcm5lci1yaWJib246YmVmb3JlLCAucmliYm9uLWNvbnRhaW5lciAuY29ybmVyLXJpYmJvbjphZnRlciB7IGNvbnRlbnQgOiIiOyBwb3NpdGlvbiA6YWJzb2x1dGU7IHRvcCA6MDsgbWFyZ2luIDowIC0xcHg7IHdpZHRoIDoxMDAlOyBoZWlnaHQgOjEwMCU7IGJhY2tncm91bmQgOnZhcigtLWNvcm5lci1yaWJib24tYmctY29sb3IpOyB9IC5yaWJib24tY29udGFpbmVyIC5jb3JuZXItcmliYm9uOmJlZm9yZSB7IGxlZnQ6MTAwJTsgfSAucmliYm9uLWNvbnRhaW5lciAuY29ybmVyLXJpYmJvbjphZnRlciB7IHJpZ2h0OjEwMCU7IH0gLmhlYWRpbmcgeyBtaW4taGVpZ2h0OjM1cHg7IGJvcmRlci1ib3R0b206MXB4IHNvbGlkICM4MDgwODA7IGJhY2tncm91bmQ6I2NjY2NjYzsgdGV4dC1hbGlnbjpjZW50ZXI7IHBhZGRpbmc6MTBweCA1cHggNXB4IDVweDsgfSAuaGVhZGluZyB0YWJsZXsgd2lkdGg6MjI1cHg7IG1hcmdpbjowIGF1dG87IH0gI3NlYXJjaENvbnRhaW5lciAuaXRlbSB7IGJvcmRlci1ib3R0b206MXB4IHNvbGlkIHJnYmEoMCwwLDAsMC4xKTsgYm9yZGVyLXRvcDoxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwwLjQpOyBwYWRkaW5nOjEwcHggaW5oZXJpdDsgbWFyZ2luOjAgMCAwIDA7IGRpc3BsYXk6YmxvY2s7IGNsZWFyOmJvdGg7IG1pbi1oZWlnaHQ6ODBweDsgZm9udC1zaXplOjAuODc1cmVtIDsgfSAjc2VhcmNoQ29udGFpbmVyIC5pdGVtIGltZyB7ZmxvYXQ6bGVmdDsgd2lkdGg6OTBweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjRweDsgLW1vei1ib3JkZXItcmFkaXVzOjRweDsgYm9yZGVyLXJhZGl1czo0cHg7IGJvcmRlcjozcHggc29saWQgI2ZmZjsgbWFyZ2luOi4zZW0gMTBweDsgLXdlYmtpdC1ib3gtc2hhZG93OjAgMXB4IDNweCByZ2JhKDAsIDAsIDAsIDAuNCk7IC1tb3otYm94LXNoYWRvdzowIDFweCAzcHggcmdiYSgwLCAwLCAwLCAwLjQpOyBib3gtc2hhZG93OjAgMXB4IDNweCByZ2JhKDAsIDAsIDAsIDAuNCk7IH0gI3NlYXJjaENvbnRhaW5lciAuaXRlbSBoMyB7IG1hcmdpbjowIDAgMCAwOyBwYWRkaW5nOjAgMCAwIDA7IGZvbnQtc2l6ZToxcmVtIDsgZm9udC13ZWlnaHQ6bm9ybWFsOyBjb2xvcjojMTExOyBsaW5lLWhlaWdodDoxOHB4OyBtYXJnaW4tdG9wOjVweDsgfSAucHJpY2UsIC5kZXRhaWxzIHsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjZweDsgLW1vei1ib3JkZXItcmFkaXVzOjZweDsgYm9yZGVyLXJhZGl1czo2cHg7IC13ZWJraXQtYm94LXNoYWRvdzppbnNldCAwIDFweCAzcHggcmdiYSgwLCAwLCAwLCAwLjQpOyAtbW96LWJveC1zaGFkb3c6aW5zZXQgMCAxcHggM3B4IHJnYmEoMCwgMCwgMCwgMC40KTsgYm94LXNoYWRvdzppbnNldCAwIDFweCAzcHggcmdiYSgwLCAwLCAwLCAwLjQpOyBmb250LXdlaWdodDpib2xkOyBwYWRkaW5nOjdweDsgZmxvYXQ6bGVmdDsgZGlzcGxheTpibG9jazsgfSAucHJpY2VfdXNlZF9sZWZ0LC5wcmljZV91c2VkX3JpZ2h0eyB0ZXh0LWFsaWduOmxlZnQ7IGZvbnQtc2l6ZToxLjc1cmVtIDsgZm9udC13ZWlnaHQ6Ym9sZDsgYmFja2dyb3VuZC1jb2xvcjojRjJGMkYyOyBoZWlnaHQ6NjBweDsgdGV4dC1hbGlnbjpjZW50ZXI7IHBhZGRpbmc6MDsgd2lkdGg6NTAlOyB9IC5zcGVjc191c2VkX2xlZnQgeyBwYWRkaW5nOjhweCAxMHB4OyBjb2xvcjojYWFhYWFhOyB9IC5zcGVjc191c2VkX3JvdzIgeyBiYWNrZ3JvdW5kLWNvbG9yOiNGMkYyRjI7IH0gLnNwZWNzX3VzZWRfYWZ0ZXJ7IGJhY2tncm91bmQtY29sb3I6I0YyRjJGMjsgcGFkZGluZy1ib3R0b206MTBweDsgYm9yZGVyLXRvcDoxcHggc29saWQgI2NjY2NjYzsgfSAudXNlZF9kZXRhaWxzX2J0bnsgZGlzcGxheTpibG9jazsgd2lkdGg6MjQwcHg7IGJvcmRlci1yYWRpdXM6M3B4OyB2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7IGJhY2tncm91bmQ6IzAwMDsgbWFyZ2luOjAgYXV0bzsgcGFkZGluZzoxMHB4IDA7IH0gLnVzZWRfZGV0YWlsc19idG4gYXsgY29sb3I6I0ZGRjsgfSAucHJpY2VfdXNlZF9sZWZ0IHNwYW57IGNvbG9yOiNEM0QzRDM7IH0gLnVzZWRfc2VhcmNoX3JlYmF0ZXsgZGlzcGxheTpibG9jazsgZm9udC1zaXplOjEuMTg4cmVtIDsgZm9udC13ZWlnaHQ6Ym9sZDsgfSAucmViYXRlX3ByaWNleyBjb2xvcjpyZWQ7IH0gLnVzZWRfc2VhcmNoX3JlYmF0ZV90ZHsgcGFkZGluZzoxMHB4IDA7IHRleHQtYWxpZ246Y2VudGVyOyBiYWNrZ3JvdW5kOiNlNmU2ZTY7IH0gLnByaWNlIHsgYmFja2dyb3VuZC1jb2xvcjojY2RjZGNkOyBjb2xvcjojMTExOyBmb250LXNpemU6MC43NXJlbSA7IHBhZGRpbmctdG9wOjhweDsgd2lkdGg6MzYlOyBwYWRkaW5nLWJvdHRvbTo1cHg7IH0gcHJpY2Vfc2VhcmNoX3VzZWR7IGJhY2tncm91bmQ6I0YyRjJGMjsgaGVpZ2h0OjQwcHg7IHRleHQtYWxpZ246Y2VudGVyOyB2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7IGZvbnQtc2l6ZToxLjU2M3JlbSA7IGZvbnQtd2VpZ2h0OmJvbGQ7IH0gLnVzZWRfb2xkX3ByaWNleyBmb250LXNpemU6MS4xMjVyZW0gOyBjb2xvcjojYWFhYWFhOyBsaW5lLWhlaWdodDoxMHB4OyB9IC5kZXRhaWxzIHsgYmFja2dyb3VuZDotd2Via2l0LWdyYWRpZW50KGxpbmVhcixsZWZ0IHRvcCxsZWZ0IGJvdHRvbSxjb2xvci1zdG9wKDAuMDUsIzAwMDAwMCksY29sb3Itc3RvcCgxLCMzMzMzMzMpKTsgYmFja2dyb3VuZDotbW96LWxpbmVhci1ncmFkaWVudCh0b3AsIzAwMDAwMDUlLCMzMzMzMzMxMDAlKTsgYmFja2dyb3VuZDotd2Via2l0LWxpbmVhci1ncmFkaWVudCh0b3AsIzAwMDAwMDUlLCMzMzMzMzMxMDAlKTsgYmFja2dyb3VuZDotby1saW5lYXItZ3JhZGllbnQodG9wLCMwMDAwMDA1JSwjMzMzMzMzMTAwJSk7IGJhY2tncm91bmQ6LW1zLWxpbmVhci1ncmFkaWVudCh0b3AsIzAwMDAwMDUlLCMzMzMzMzMxMDAlKTsgYmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCMwMDAwMDA1JSwjMzMzMzMzMTAwJSk7IGZpbHRlcjpwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoc3RhcnRDb2xvcnN0cj0nIzAwMDAwMCcsZW5kQ29sb3JzdHI9JyMzMzMzMzMnLEdyYWRpZW50VHlwZT0wKTsgYmFja2dyb3VuZC1jb2xvcjojMzMzMzMzOyBtYXJnaW4tcmlnaHQ6MTBweDsgZm9udC1zaXplOjAuOTM4cmVtIDsgbWFyZ2luLWxlZnQ6NXB4OyBwYWRkaW5nOjhweCAyMHB4OyBtYXJnaW4tcmlnaHQ6MHB4OyB9IC52aWRlb3NfcGljdHVyZXNfYnV0dG9uc19jb250YWluZXIgeyBtYXJnaW4tYm90dG9tOjBweCFpbXBvcnRhbnQ7IH0gLmktY2FtZXJhOmJlZm9yZXsgY29udGVudDoiXGYwM2QiOyBmb250LWZhbWlseToiRm9udCBBd2Vzb21lIDUgUHJvIjsgcGFkZGluZy1yaWdodDo1cHg7IGZvbnQtd2VpZ2h0OjkwMDsgd2lkdGg6MTVweDsgfSAuaS1waG90bzpiZWZvcmUgeyBjb250ZW50OiJcZjAzMCI7IGZvbnQtZmFtaWx5OiJGb250IEF3ZXNvbWUgNSBQcm8iOyBwYWRkaW5nLXJpZ2h0OjVweDsgZm9udC13ZWlnaHQ6OTAwOyB3aWR0aDoxNXB4OyB9IC5mdWxsV2lkdGhCdXR0b257IHdpZHRoOjkwJTsgcGFkZGluZzp2YXIoLS1zKTsgZm9udC13ZWlnaHQ6bm9ybWFsOyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IG1hcmdpbi1sZWZ0OjUlOyBtYXJnaW4tcmlnaHQ6NSU7IGJvcmRlci1yYWRpdXM6M3B4OyBwb3NpdGlvbjpyZWxhdGl2ZTsgfSAuZnVsbFdpZHRoQnV0dG9uIGEgeyBkaXNwbGF5OmlubGluZS1ibG9jazsgfSAuZmIuZnVsbFdpZHRoQnV0dG9ueyBwb3NpdGlvbjpyZWxhdGl2ZTsgYmFja2dyb3VuZC1jb2xvcjojM2E1ODk4OyBjb2xvcjojZmZmOyB9IC5mYi5mdWxsV2lkdGhCdXR0b24gYSB7IGNvbG9yOiNmZmY7IG1hcmdpbi1sZWZ0OjUwcHg7IH0gLmZiIHNwYW4uZmEtc3RhY2t7IGNvbG9yOiMzYTU4OTg7IHBvc2l0aW9uOmFic29sdXRlOyB0b3A6MDsgfSAudGV4dF9zbGlkZSBhIHsgaGVpZ2h0OjE0cHghaW1wb3J0YW50OyB9ICN2ZHBfcHJpY2VfYmxvY2ssI3ZkcF9wcmljZV9ibG9ja191c2VkeyBib3JkZXItYm90dG9tOjFweCBzb2xpZCAjMDAwOyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWxpZ2h0KTsgYm9yZGVyLWNvbG9yOiNiYmI7IH0gI3ZkcF9wcmljZV9ibG9ja3sgbWluLWhlaWdodDozMHB4OyB9IGRpdiNjb21wbF90YWJsZSBhIHsgY29sb3I6IzMzMzsgfSAuY2hldnJvbi1yaWdodDphZnRlciB7IGNvbnRlbnQ6IlxmMDU0IjsgZm9udC1mYW1pbHk6IkZvbnQgQXdlc29tZSA1IFBybyI7IGZvbnQtc3R5bGU6bm9ybWFsOyBmb250LXdlaWdodDo5MDA7IHRleHQtZGVjb3JhdGlvbjppbmhlcml0OyBwb3NpdGlvbjphYnNvbHV0ZTsgcmlnaHQ6MiU7IH0gZnVsbFdpZHRoQnV0dG9uOmJlZm9yZSB7IGZvbnQtZmFtaWx5OiJGb250IEF3ZXNvbWUgNSBQcm8iOyBmb250LXN0eWxlOm5vcm1hbDsgZm9udC13ZWlnaHQ6OTAwOyB0ZXh0LWRlY29yYXRpb246aW5oZXJpdDsgcGFkZGluZy1yaWdodDo1cHg7IHBvc2l0aW9uOmFic29sdXRlOyByaWdodDowOyBwYWRkaW5nLXRvcDoycHg7IH0gI3NvY2lhbF9tZWRpYV9pY29uc19kaXZ7IG1hcmdpbi10b3A6MTVweDsgfSAjc29jaWFsX21lZGlhX2ljb25zX2RpdiAqICsgKnsgbWFyZ2luLWxlZnQ6MXJlbTsgfSAjc29jaWFsX21lZGlhX2ljb25zX2RpdiAuZmFieyBmb250LXNpemU6MS41cmVtOyB9ICNzb2NpYWxfbWVkaWFfaWNvbnNfZGl2IGF7IGNvbG9yOiM4MDgwODA7IH0gLnNvY2lhbCB7IHRleHQtYWxpZ246Y2VudGVyOyB3aWR0aDoxOXB4OyBoZWlnaHQ6MTlweDsgZmxvYXQ6cmlnaHQ7IGJhY2tncm91bmQ6cmdiKDI1NSwyNTUsMjU1KTsgYm9yZGVyOjFweCBzb2xpZCByZ2IoMjA0LDIwNCwyMDQpOyBib3gtc2hhZG93OjAgMnB4IDRweCByZ2JhKDAsMCwwLDAuMTUpLCBpbnNldCAwIDAgNTBweCByZ2JhKDAsMCwwLDAuMSk7IGJvcmRlci1yYWRpdXM6MTAwcHg7IG1hcmdpbjowIDEwcHggMHB4IDA7IHBhZGRpbmc6OXB4OyB9IC5zb2NpYWwtc2hhcmUgeyB3aWR0aDoxOXB4OyBoZWlnaHQ6MTlweDsgYmFja2dyb3VuZDpyZ2IoMjU1LDI1NSwyNTUpOyBib3JkZXItcmFkaXVzOjEwMHB4OyBtYXJnaW46MCAxMHB4IDBweCAwOyB9ICNzb2NpYWxfbWVkaWFfaWNvbnNfZGl2IGEuc29jaWFsIC5mYWJ7IGZvbnQtc2l6ZToxLjE4OHJlbSA7IH0gLnNvY2lhbCBpeyBmb250LXNpemU6MS4yNXJlbSA7IH0gLmdvb2dsZS1wbHVzOmhvdmVye2JhY2tncm91bmQ6I0RENEIzOTtjb2xvcjojRkZGIWltcG9ydGFudDt9IC5mYWNlYm9vazpob3ZlcntiYWNrZ3JvdW5kOiMzYjU5OTg7Y29sb3I6I0ZGRiFpbXBvcnRhbnQ7fSAudHdpdHRlcjpob3ZlcntiYWNrZ3JvdW5kOiMwMGFjZWU7Y29sb3I6I0ZGRiFpbXBvcnRhbnQ7fSAucGludGVyZXN0OmhvdmVye2JhY2tncm91bmQ6I2M4MjMyYztjb2xvcjojRkZGIWltcG9ydGFudDt9IC5saW5rZWRpbjpob3ZlcntiYWNrZ3JvdW5kOiMwZTc2YTg7Y29sb3I6I0ZGRiFpbXBvcnRhbnQ7fSAuc2t5cGU6aG92ZXJ7YmFja2dyb3VuZDojMDBhZmYwO2NvbG9yOiNGRkYhaW1wb3J0YW50O30gLnlvdXR1YmU6aG92ZXJ7YmFja2dyb3VuZDojYzQzMDJiO2NvbG9yOiNGRkYhaW1wb3J0YW50O30gLnR1bWJscjpob3ZlcntiYWNrZ3JvdW5kOiMzNDUyNmY7Y29sb3I6I0ZGRiFpbXBvcnRhbnQ7fSAuZGV0YWlscyBhIHsgY29sb3I6I2ZmZjsgZGlzcGxheTpibG9jazsgdGV4dC1hbGlnbjpjZW50ZXI7IH0gLnBhZ2luYXRpb24ge2NsZWFyOmJvdGg7IHBhZGRpbmc6NXB4OyBwYWRkaW5nLWxlZnQ6MTAwcHg7fSAucGFnaW5hdGlvbiBhLCAucGFnaW5hdGlvbiBhLnNlbGVjdGVkIHsgZGlzcGxheTpibG9jazsgcGFkZGluZzo1cHggN3B4OyBwYWRkaW5nLXRvcDo4cHg7IGZvbnQtc2l6ZTowLjkzOHJlbSA7IGNvbG9yOiNmZmY7IGZvbnQtd2VpZ2h0OmJvbGQ7IHRleHQtYWxpZ246Y2VudGVyOyBmbG9hdDpsZWZ0OyB3aWR0aDoxM3B4OyBtYXJnaW46NHB4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6NnB4OyAtbW96LWJvcmRlci1yYWRpdXM6NnB4OyBib3JkZXItcmFkaXVzOjZweDsgfSAucGFnaW5hdGlvbiBhIHtiYWNrZ3JvdW5kOiM2NjYgO30gLnBhZ2luYXRpb24gYS5zZWxlY3RlZCB7YmFja2dyb3VuZDojMjIyIDt9IC5wYWdlbm81e3dpZHRoOjEwMCU7bWFyZ2luOjMwcHggMCAyMHB4IDBweDsgcGFkZGluZzowOyBmbG9hdDpsZWZ0fSAucGFnZV9uYW1lMTggYXsgY29sb3I6IzMzMzsgfSAucGFnZW5vMntoZWlnaHQ6MjRweDsgfSAucGFnZW5vMiB1bHsgbGlzdC1zdHlsZS10eXBlOm5vbmU7IG1hcmdpbjowOyBwYWRkaW5nOjA7IHRleHQtdHJhbnNmb3JtOm5vbmU7IH0gLnBhZ2VubzIgdWwgbGl7IGxpc3Qtc3R5bGUtdHlwZTpub25lOyBtYXJnaW46MDsgZGlzcGxheTppbmxpbmU7fSAucGFnZW5vMiB1bCBsaSBheyBsaXN0LXN0eWxlLXR5cGU6bm9uZTsgbWFyZ2luOjA7IGRpc3BsYXk6YmxvY2s7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMzMjMyMzI7IHRleHQtZGVjb3JhdGlvbjpub25lOyBwYWRkaW5nOjAgN3B4OyBtYXJnaW4tcmlnaHQ6MnB4OyBmb250LXdlaWdodDpib2xkOyBsaW5lLWhlaWdodDoyNHB4OyB0ZXh0LXRyYW5zZm9ybTpub25lOyB0ZXh0LWFsaWduOmNlbnRlcjsgdGV4dC10cmFuc2Zvcm06bm9uZTsgYmFja2dyb3VuZDojYjNiNGI1OyBmbG9hdDpsZWZ0OyAtbW96LWJvcmRlci1yYWRpdXM6NHB4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6NHB4OyBib3JkZXItcmFkaXVzOjRweDsgLWtodG1sLWJvcmRlci1yYWRpdXM6NHB4O30gLnBhZ2VubzIgdWwgbGkgYTpob3ZlcnsgbGlzdC1zdHlsZS10eXBlOm5vbmU7IG1hcmdpbjowOyBkaXNwbGF5OmJsb2NrOyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojRkZGRkZGOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgcGFkZGluZzowIDdweDsgbWFyZ2luLXJpZ2h0OjJweDsgZm9udC13ZWlnaHQ6Ym9sZDsgbGluZS1oZWlnaHQ6MjRweDsgdGV4dC10cmFuc2Zvcm06bm9uZTsgdGV4dC1hbGlnbjpjZW50ZXI7IHRleHQtdHJhbnNmb3JtOm5vbmU7IGJhY2tncm91bmQ6IzI4MjgyODsgZmxvYXQ6bGVmdDsgLW1vei1ib3JkZXItcmFkaXVzOjRweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjRweDsgYm9yZGVyLXJhZGl1czo0cHg7IC1raHRtbC1ib3JkZXItcmFkaXVzOjRweDt9IC5wYWdlbm8yIGxpIGEuYWN0aXZleyBsaXN0LXN0eWxlLXR5cGU6bm9uZTsgbWFyZ2luOjA7IGRpc3BsYXk6YmxvY2s7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiNGRkZGRkY7IHRleHQtZGVjb3JhdGlvbjpub25lOyBwYWRkaW5nOjAgN3B4OyBtYXJnaW4tcmlnaHQ6MnB4OyBmb250LXdlaWdodDpib2xkOyBsaW5lLWhlaWdodDoyNHB4OyB0ZXh0LXRyYW5zZm9ybTpub25lOyB0ZXh0LWFsaWduOmNlbnRlcjsgdGV4dC10cmFuc2Zvcm06bm9uZTsgYmFja2dyb3VuZDojMjgyODI4OyBmbG9hdDpsZWZ0OyAtbW96LWJvcmRlci1yYWRpdXM6NHB4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6NHB4OyBib3JkZXItcmFkaXVzOjRweDsgLWtodG1sLWJvcmRlci1yYWRpdXM6NHB4O30gI3BhZ2VEaXYgYSB7IGNvbG9yOiNmZmY7IH0gI3NlYXJjaF91c2VkX2ZpbHRlci1ib3gsLmZpbHRlci1hZGp7IGJhY2tncm91bmQ6IzgwODA4MDsgY29sb3I6d2hpdGU7IHRleHQtYWxpZ246Y2VudGVyOyB9ICNzZWFyY2hfdXNlZF9maWx0ZXItYm94eyBwYWRkaW5nOjE1cHggNXB4OyB9IC5maWx0ZXItYWRqeyBwYWRkaW5nOjVweCA1cHg7IH0gI3NlYXJjaF91c2VkX2ZpbHRlci1ib3ggLmZhLCAuZmlsdGVyLWFkaiAuZmF7IGZvbnQtc2l6ZTowLjkzOHJlbSA7IH0gLnVpLWFjY29yZGlvbi1oZWFkZXItaWNvbnsgbWFyZ2luLXRvcDotMTFweCFpbXBvcnRhbnQ7IH0gLnVpLWFjY29yZGlvbi1jb250ZW50eyBib3JkZXItcmFkaXVzOjAhaW1wb3J0YW50OyBib3JkZXI6bm9uZSFpbXBvcnRhbnQ7IGJveC1zaGFkb3c6bm9uZSFpbXBvcnRhbnQ7IH0gI2NpdHlUaXRsZXsgY29sb3I6IzY2NjY2NjsgZm9udC1zaXplOjAuOTM4cmVtIDsgZm9udC13ZWlnaHQ6bm9ybWFsOyBkaXNwbGF5OmJsb2NrOyB9IC50aXRsZUluZm97IGZvbnQtc2l6ZToxLjEyNXJlbSAhaW1wb3J0YW50OyBmb250LXdlaWdodDpub3JtYWwhaW1wb3J0YW50OyBkaXNwbGF5OmJsb2NrIWltcG9ydGFudDsgfSAudGl0bGVDYXJ7IGZvbnQtc2l6ZToxLjM3NXJlbSAhaW1wb3J0YW50OyBmb250LXdlaWdodDpub3JtYWwhaW1wb3J0YW50OyBmb250LXdlaWdodDpib2xkIWltcG9ydGFudDsgfSAuc2VhcmNocmVzdWx0IGgyLCAjU2VhcmNoVGl0bGUgeyBjb2xvcjojMzMzOyBmb250LXNpemU6MS41NjNyZW0gOyBmb250LXdlaWdodDpub3JtYWw7IG1hcmdpbjowIDAgMCAwOyBwYWRkaW5nOjI1cHggMCAxMHB4IDE1cHg7IGNsZWFyOmJvdGg7IGJhY2tncm91bmQtY29sb3I6I2ZmZmZmZjsgfSAubmV3LWl0ZW0geyBib3JkZXItYm90dG9tOjFweCBzb2xpZCByZ2JhKDAsMCwwLDAuMSk7IHBhZGRpbmc6MCA7IG1hcmdpbjowIDAgMCAwOyBkaXNwbGF5OmJsb2NrOyBjbGVhcjpib3RoOyBmb250LXNpemU6MC44NzVyZW0gOyBmbG9hdDpsZWZ0OyB3aWR0aDoxMDAlOyBiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7IH0gLm5ldy1pdGVtOmxhc3Qtb2YtdHlwZXsgYm9yZGVyLWJvdHRvbTpub25lOyB9IC5uZXdfcHJpY2VfYmxvY2t7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZmxvYXQ6bGVmdDsgY2xlYXI6Ym90aDsgbWFyZ2luLXRvcDotNXB4OyB9IC5uZXdfbWFrZV9uYW1leyBkaXNwbGF5OmJsb2NrOyBmb250LXNpemU6MC44NzVyZW0gOyBmb250LXdlaWdodDpub3JtYWw7IG1hcmdpbi1ib3R0b206LTNweDsgfSAubmV3LWl0ZW0gLnRodW1iIHsgZmxvYXQ6cmlnaHQ7IHdpZHRoOjQwJTsgbWFyZ2luOi4zZW0gMHB4OyB0ZXh0LWFsaWduOnJpZ2h0OyB9IC5uZXdjYXJfYmxvY2tfZGVzYyBheyBjb2xvcjojMzMzMzMzOyB9IC5uZXdfbW9kZWxfbmFtZXsgZm9udC1zaXplOjEuMTI1cmVtIDsgZmxvYXQ6bGVmdDsgbWFyZ2luLXJpZ2h0OjVweDsgZm9udC13ZWlnaHQ6Ym9sZDsgfSAubmV3X3llYXJ7IGZsb2F0OmxlZnQ7IH0gLm5ldy1pdGVtIC50aHVtYiBpbWd7IG1heC13aWR0aDoxMDAlOyBib3JkZXI6MDsgfSAubmV3Y2FyX2Jsb2NrX2Rlc2MgeyBtYXJnaW4tdG9wOjEwcHg7IHBvc2l0aW9uOnJlbGF0aXZlOyBwYWRkaW5nOjA7IGxpbmUtaGVpZ2h0OjIwcHg7IHdpZHRoOjUwJTsgcGFkZGluZy1sZWZ0OjI1cHg7IGZsb2F0OmxlZnQ7IGNvbG9yOiMzMzM7IH0gbmV3Y2FyX2Jsb2NrIGgzeyB9IC5uZXctaXRlbSBoMyB7IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MTBweDsgZm9udC1zaXplOjEuMTI1cmVtIDsgZm9udC13ZWlnaHQ6Ym9sZDsgd2lkdGg6OTUlOyB9IC5uZXctaXRlbSAuYXJyb3cgeyBmbG9hdDpsZWZ0OyBiYWNrZ3JvdW5kLWNvbG9yOnJnYigyNDMsMjQzLDI0Myk7IGJvcmRlci1yYWRpdXM6MTRweDsgd2lkdGg6MTVweDsgbWFyZ2luOjMwcHggNXB4IDEwcHggMTBweDsgfSAubmV3LWRldGFpbHMgaDEsIC5uZXctZGV0YWlscyBoMiAsLnVzZWRfc2VhcmNoX2l0ZW0gaDIsIC51c2VkLWRldGFpbHMgaDEsIC5uZXctZGV0YWlscyBzcGFuLmgyLWFsdCB7IGNvbG9yOiMxMTE7IGNsZWFyOmJvdGg7IHBvc2l0aW9uOnJlbGF0aXZlOyBwYWRkaW5nLWxlZnQ6MjBweDsgbGluZS1oZWlnaHQ6MjFweDsgbWFyZ2luLWxlZnQ6MTVweDsgbWFyZ2luLXJpZ2h0OjE1cHg7IG1hcmdpbi1ib3R0b206MTBweDsgfSAubmV3LWRldGFpbHMgLnRib3JkZXIgeyBwYWRkaW5nLXRvcDoxMHB4OyBib3JkZXItdG9wOjFweCBzb2xpZCAjZTdlN2U3OyB9IC5uZXctZGV0YWlscyBoMSAubWFrZU1vZGVsWWVhciwgLnVzZWRfc2VhcmNoX2l0ZW0gaDIgLm1ha2VNb2RlbFllYXIsIC51c2VkLWRldGFpbHMgaDEgLm1ha2VNb2RlbFllYXJ7IGZvbnQtc2l6ZToxLjU2M3JlbSA7IH0gLm5ldy1kZXRhaWxzIGgxIC52ZXJzaW9uRnVsbCwgLnVzZWRfc2VhcmNoX2l0ZW0gaDIgLnZlcnNpb25GdWxsLCAudXNlZC1kZXRhaWxzIGgxIC52ZXJzaW9uRnVsbHsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXNpemU6MXJlbSA7IG92ZXJmbG93LXdyYXA6YW55d2hlcmU7IH0gLm5ldy1kZXRhaWxzIGgxIC5kZWFsZXJMY2F0aW9uQ2FyVGl0bGUsIC51c2VkX3NlYXJjaF9pdGVtIGgyIC5kZWFsZXJMY2F0aW9uQ2FyVGl0bGUsIC51c2VkLWRldGFpbHMgaDEgLmRlYWxlckxjYXRpb25DYXJUaXRsZSB7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgY29sb3I6Izc1NzU3NTsgZm9udC1zaXplOjAuOTM4cmVtIDsgbGV0dGVyLXNwYWNpbmc6LTFweDsgfSAuZnVsbFdpZHRoQnV0dG9uIGl7IHBhZGRpbmctcmlnaHQ6NXB4OyBtaW4td2lkdGg6MThweDsgfSAudXNlZC1kZXRhaWxzIGgxIHNwYW4uZmEtY2hldnJvbi1yaWdodHsgbWluLXdpZHRoOjEuNXJlbTsgbWluLWhlaWdodDoxLjVyZW07IGZvbnQtc2l6ZToxcmVtOyBwYWRkaW5nOjA7IGJvcmRlci1yYWRpdXM6MXJlbTsgbWFyZ2luOjAgNXB4IDAgMDsgZGlzcGxheTpmbGV4OyBhbGlnbi1pdGVtczpjZW50ZXI7IGp1c3RpZnktY29udGVudDpjZW50ZXI7IH0gLm5ldy1kZXRhaWxzICNjYXJUaXRsZSAuZmEtY2hldnJvbi1yaWdodCwgLnVzZWRfc2VhcmNoX2l0ZW0gI2NhclRpdGxlIC5mYS1jaGV2cm9uLXJpZ2h0LCAudXNlZC1kZXRhaWxzIGgxIC5mYS1jaGV2cm9uLXJpZ2h0eyBib3JkZXItcmFkaXVzOjEzcHg7IHdpZHRoOjE0cHg7IGhlaWdodDoxN3B4OyBwYWRkaW5nLXRvcDozcHg7IHBhZGRpbmctbGVmdDo2cHg7IG1hcmdpbi1sZWZ0Oi0yOHB4OyBmbG9hdDpsZWZ0OyBtYXJnaW4tdG9wOjE0cHg7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGJveC1zaXppbmc6Y29udGVudC1ib3g7IGJvcmRlcjoxcHggc29saWQgIzEwMmI0ZTsgYmFja2dyb3VuZC1jb2xvcjojZjNmM2YzOyBjb2xvcjojMTAyYjRlOyB9ICNTZWFyY2hUaXRsZSAuZmEtY2hldnJvbi1yaWdodHsgYm9yZGVyLXJhZGl1czozMHB4OyB3aWR0aDoyM3B4ICFpbXBvcnRhbnQ7IGhlaWdodDoyOXB4ICFpbXBvcnRhbnQ7IHBhZGRpbmctdG9wOjNweCAhaW1wb3J0YW50OyBwYWRkaW5nLWxlZnQ6MTFweCAhaW1wb3J0YW50OyBmbG9hdDpsZWZ0OyBtYXJnaW4tdG9wOjhweDsgZm9udC1zaXplOjEuNXJlbSAhaW1wb3J0YW50OyBib3JkZXI6MXB4IHNvbGlkICMxMDJiNGU7IGJhY2tncm91bmQtY29sb3I6I2YzZjNmMzsgY29sb3I6IzEwMmI0ZSA7IG1hcmdpbi1yaWdodDoxMHB4OyB9IC5mb290ZXJfZGlzY2xhbWVyIGF7IGNvbG9yOiM2NjY2NjYgfSAubmV3Y2FyX2Jsb2NrX2Rlc2MgLmZhLWNoZXZyb24tcmlnaHR7IGJvcmRlci1yYWRpdXM6MTBweDsgd2lkdGg6MTJweDsgaGVpZ2h0OjE0cHg7IHBhZGRpbmctdG9wOjJweDsgcGFkZGluZy1sZWZ0OjRweDsgbWFyZ2luLWxlZnQ6LTI4cHg7IGZsb2F0OmxlZnQ7IG1hcmdpbi10b3A6MTRweDsgZm9udC1zaXplOjAuODEzcmVtIDsgYm9yZGVyOjFweCBzb2xpZCAjMTAyYjRlOyBiYWNrZ3JvdW5kLWNvbG9yOiNmM2YzZjM7IGNvbG9yOiMxMDJiNGUgOyB9IC5uZXctZGV0YWlscyAjbWFpbkNvbXBhcmVWaWV3IGgyLCAubmV3LWRldGFpbHMgI21haW5Db21wYXJlVmlldyBzcGFuLmgyLWFsdCwgLm5ldy1kZXRhaWxzIC5icm9jaHVyZS1pbWctYnRuIHNwYW4uaDItYWx0LCBoMi5icm9jaHVyZS1pbWctdGl0bGUgeyBjb2xvcjojZmZmOyBmb250LXNpemU6MC45MzhyZW0gOyBmb250LXdlaWdodDpib2xkOyBtYXJnaW46MCAwIDAgMDsgcGFkZGluZzo3cHggMCA3cHggMTBweDsgY2xlYXI6Ym90aDsgfSAubmV3LWRldGFpbHMgI21haW5Db21wYXJlVmlldyBzcGFuLmgyLWFsdCwgLm5ldy1kZXRhaWxzIC5icm9jaHVyZS1pbWctYnRuIHNwYW4uaDItYWx0IHsgZGlzcGxheTpibG9jazsgfSAubmV3LWRldGFpbHMgPiBwIHtwYWRkaW5nOjdweCAxMHB4O30gLm90aGVyTGlua3MgeyBtYXJnaW46MzBweCAwIDE1cHg7IHBhZGRpbmc6MCAxNXB4OyB9IC5vdGhlckxpbmtzIGEgeyBkaXNwbGF5Omxpc3QtaXRlbTsgZm9udC1zaXplOjEuMWVtOyB0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lOyBsaXN0LXN0eWxlLXBvc2l0aW9uOmluc2lkZTsgfSAub3RoZXJMaW5rcyBhICsgYSB7IG1hcmdpbi10b3A6MTBweDsgfSAucmFpdGluZy1kZXRhaWxzIGgxeyBjb2xvcjojMTExOyBmb250LXNpemU6MS4zZW07IHRleHQtYWxpZ246Y2VudGVyOyBtYXJnaW4tYm90dG9tOjEwcHg7IH0gLnJhaXRpbmctZGV0YWlscyAuYm94Ml90ZXh0eyB0ZXh0LWFsaWduOmp1c3RpZnk7IHBhZGRpbmc6MCA1cHg7IH0gLnBvc2l0aXZlUmF0aW5nVHh0e3BhZGRpbmc6MTBweDt9IC5wb3NpdGl2ZVJhdGluZ1R4dCAuYnRuLWRlZmF1bHR7dGV4dC10cmFuc2Zvcm06bm9uZTt9IC5wb3NpdGl2ZVJhdGluZ1R4dCBwIHtmb250LXNpemU6MS4wNjNyZW0gOyB0ZXh0LWFsaWduOmp1c3RpZnk7fSAucGFnZV9uYW1lMnt0ZXh0LWFsaWduOmNlbnRlcjt9IC5vdXJ0ZWFtIGEgeyBjb2xvcjojMzMzMzMzOyB9ICNzZWFyY2hfdXNlZF9maWx0ZXJ7IGJvcmRlcjowOyBib3JkZXItcmFkaXVzOnVuc2V0OyBmb250LXdlaWdodDpib2xkOyB9ICN1c2VkT3B0aW9ucyAubGlzdGl0ZW06YWZ0ZXJ7IGNvbnRlbnQ6IlxmMDBjIjsgZm9udC1mYW1pbHk6IkZvbnQgQXdlc29tZSA1IFBybyI7IGZvbnQtd2VpZ2h0OjkwMDsgcGFkZGluZy1yaWdodDo1cHg7IHdpZHRoOjE1cHg7IGZsb2F0OnJpZ2h0OyB9IC5saXN0aXRlbSB7IGJvcmRlci1ib3R0b206MXB4IHNvbGlkIHJnYmEoMCwwLDAsMC4xKTsgcGFkZGluZzo1cHggMDsgZm9udC1zaXplOjAuOTM4cmVtIDsgfSAubGlzdGl0ZW0gaW1nIHt3aWR0aDoxMDAlICFpbXBvcnRhbnQ7aGVpZ2h0OmF1dG8gIWltcG9ydGFudDt9IC5saXN0aXRlbSBzcGFuIHtkaXNwbGF5OmlubGluZS1ibG9jazt9IC5saXN0aXRlbSAubGlzdGRlc2Mge2Zsb2F0OmxlZnQ7IHdpZHRoOjUwJTsgbWFyZ2luLWxlZnQ6NXB4O30gLmxpc3RpdGVtIC5saXN0dmFsIHtmbG9hdDpyaWdodDt3aWR0aDo0NSU7IHRleHQtYWxpZ246cmlnaHQ7bWFyZ2luLXJpZ2h0OjVweDt9IC5iaWcge3dpZHRoOjk1JTsgY2xlYXI6Ym90aDsgbWFyZ2luOjEwcHggYXV0bzsgZGlzcGxheTpibG9jazsgaGVpZ2h0OjQwcHg7fSAucHJpY2V0ZXh0IHtjb2xvcjojMTExOyBmb250LXNpemU6MXJlbSA7IGZvbnQtd2VpZ2h0OmJvbGQ7IG1hcmdpbjoxMHB4IDAgMCAwOyBkaXNwbGF5OmJsb2NrOyBmbG9hdDpsZWZ0fSAucHJpbnQsIC5saWtlIHtmbG9hdDpyaWdodDsgd2lkdGg6NjBweDtmb250LXNpemU6MC43NXJlbSA7IHRleHQtYWxpZ246cmlnaHQ7IG1hcmdpbi10b3A6MTBweDt9IC5vbGQtZGV0YWlscyB0YWJsZXsgYm9yZGVyLWNvbGxhcHNlOmNvbGxhcHNlOyB9ICNzcGVjVGl0bGV7IGJvcmRlci10b3A6MXB4IHNvbGlkICNhYWFhYWE7IGJvcmRlci1ib3R0b206MXB4IHNvbGlkICNhYWFhYWE7IHBhZGRpbmctdG9wOjEwcHg7IHBhZGRpbmctYm90dG9tOjEwcHg7IHBhZGRpbmctbGVmdDoxMHB4OyBiYWNrZ3JvdW5kLWNvbG9yOiNlZWU7IG1hcmdpbi10b3A6MjVweDsgfSAub2xkLWRldGFpbHMgdGFibGUgdHIgdGR7IHBhZGRpbmc6NXB4IDBweCA1cHggMTBweDsgYm9yZGVyLWJvdHRvbToxcHggc29saWQgI2U2ZTZlNjsgfSAub2xkLWRldGFpbHMgdWx7IGxpc3Qtc3R5bGU6bm9uZTsgfSAub2xkLWRldGFpbHMgdGQgaS5mYS1jaGV2cm9uLXJpZ2h0eyBib3JkZXItcmFkaXVzOjEzcHg7IHdpZHRoOjEycHg7IGhlaWdodDoxNHB4OyBwYWRkaW5nLXRvcDozcHg7IHBhZGRpbmctbGVmdDo1cHg7IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjc1cmVtIDsgbWFyZ2luOjBweDsgYm9yZGVyOjFweCBzb2xpZCAjMTAyYjRlOyBiYWNrZ3JvdW5kLWNvbG9yOiNmM2YzZjM7IGNvbG9yOiMxMDJiNGUgOyB9IC5vbGQtZGV0YWlscyB0cjpudGgtY2hpbGQoZXZlbikgeyBiYWNrZ3JvdW5kOiNlZWU7IH0gLm90aGVyQkd7IGJhY2tncm91bmQ6I2ZmZmZmZiAhaW1wb3J0YW50OyB9IC5iZ05vbmV7IGJhY2tncm91bmQ6bm9uZSAhaW1wb3J0YW50OyB9IC50ZXh0Q29sb3J7IGNvbG9yOiMwMDAwMDAgIWltcG9ydGFudDsgfSAudGV4dENvbG9yVXNlZFNSUE1vYmlsZXsgY29sb3I6I2ZmZmZmZiAhaW1wb3J0YW50OyB9IC50ZXh0X3NsaWRlIGEgPiBieyBmbG9hdDpsZWZ0IWltcG9ydGFudDsgb3ZlcmZsb3c6aGlkZGVuICFpbXBvcnRhbnQ7IHBvc2l0aW9uOnJlbGF0aXZlIWltcG9ydGFudDsgbWFyZ2luOjBweCFpbXBvcnRhbnQ7IHdpZHRoOjEwMCUhaW1wb3J0YW50OyB0b3A6LTNweCFpbXBvcnRhbnQ7IHdpZHRoOjIwMHB4IWltcG9ydGFudDsgbGVmdDoycHg7IH0gLmdyYXliZyB7IG1hcmdpbjoxMHB4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6NHB4OyAtbW96LWJvcmRlci1yYWRpdXM6NHB4OyBib3JkZXItcmFkaXVzOjRweDsgY2xlYXI6Ym90aDsgZGlzcGxheTpibG9jazsgYmFja2dyb3VuZDojY2ZjZmNmIHVybCgvaW1hZ2VzL2dyYXliZy5wbmcpIHJlcGVhdC14IDAgMDsgcGFkZGluZzowIDEwcHg7IGhlaWdodDo1MHB4OyB9IC50ZXh0MSwgdGV4dDIsIHBpYyB7bWFyZ2luOjAgMCAwIDA7IGhlaWdodDo1MHB4OyBkaXNwbGF5OmJsb2NrOyBwYWRkaW5nOjAgMTBweCAwIDEwcHg7IGxpbmUtaGVpZ2h0OjUwcHg7IGZvbnQtc2l6ZTowLjg3NXJlbSA7fSAudGV4dDEge2JvcmRlci1yaWdodDoxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwwLjYpO30gLnBpYyB7Ym9yZGVyLWxlZnQ6MXB4IHNvbGlkIHJnYmEoMCwwLDAsMC4zKTsgYm9yZGVyLXJpZ2h0OjFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LDAuNik7fSAudGV4dDIge2JvcmRlci1sZWZ0OjFweCBzb2xpZCByZ2JhKDAsMCwwLDAuMyk7fSAucHJvbW9pbWFnZSB7ZmxvYXQ6bGVmdDsgd2lkdGg6MTEwcHg7IG1hcmdpbi10b3A6N3B4O30gLnByb21vZGV0YWlsIHtmbG9hdDpsZWZ0OyB3aWR0aDoxNzBweDt9IC5wcm9tb2RldGFpbCBoMiB7Zm9udC1zaXplOjEuNXJlbSA7IG1hcmdpbjotMTBweCAwIDAgMDsgcGFkZGluZzowIDAgMCAwfSAucHJvbW8tY2FyZCB7IG1hcmdpbjowIDE1cHggMTBweDsgbWFyZ2luLWJvdHRvbTo4cHg7IGRpc3BsYXk6YmxvY2s7IGJvcmRlcjoxcHggc29saWQgI2M4YzhjODsgcGFkZGluZzozcHg7IGJvcmRlci1yYWRpdXM6NXB4OyBib3gtc2hhZG93OjBweCAwcHggMTBweCAycHggI2M4YzhjODsgfSAucHJvbW8tY2FyZCAucHJvbW8taW1hZ2UgeyB0ZXh0LWFsaWduOmNlbnRlcjsgfSAucHJvbW8tY2FyZCAucHJvbW8tdGl0bGUgeyBmb250LXNpemU6MS4zMTNyZW0gOyBkaXNwbGF5OmJsb2NrOyBmb250LXdlaWdodDo2MDA7IGNvbG9yOiMzMzM7IG1hcmdpbi10b3A6OHB4OyB0ZXh0LWFsaWduOmNlbnRlcjsgfSAucHJvbW8taW1hZ2UgaW1nIHsgd2lkdGg6MTAwJTsgfSAucHJvbW8tY2FyZCAucHJvbW8tZGV0YWlscy13cmFwcGVyIHsgfSAucHJvbW8tY2FwdGlvbiB7IGNvbG9yOiMzMzMzMzM7IH0gLnByb21vLWNhcHRpb246bm90KDpsYXN0LWNoaWxkKSB7IG1hcmdpbi1ib3R0b206MTVweDsgfSAucHJvbW8tY2FwdGlvbiAucHJvbW8tdGl0bGUgeyB0ZXh0LWFsaWduOmxlZnQ7IH0gLnByb21vLW9mZmVyIC5wcm9tby1ib2R5IC5wcm9tby10aXRsZSB7IG1pbi1oZWlnaHQ6MDsgfSAucHJvbW8tc3ViY2FwdGlvbiB7IG1hcmdpbi10b3A6NXB4OyBmb250LXNpemU6MC44NzVyZW07IH0gLnByb21vLWRldGFpbHMtYnRuIHsgYmFja2dyb3VuZDotd2Via2l0LWdyYWRpZW50KGxpbmVhcixsZWZ0IHRvcCxsZWZ0IGJvdHRvbSxjb2xvci1zdG9wKDAuMDUsIzAwMDAwMCksY29sb3Itc3RvcCgxLCMzMzMzMzMpKTsgYmFja2dyb3VuZDotbW96LWxpbmVhci1ncmFkaWVudCh0b3AsIzAwMDAwMDUlLCMzMzMzMzMxMDAlKTsgYmFja2dyb3VuZDotd2Via2l0LWxpbmVhci1ncmFkaWVudCh0b3AsIzAwMDAwMDUlLCMzMzMzMzMxMDAlKTsgYmFja2dyb3VuZDotby1saW5lYXItZ3JhZGllbnQodG9wLCMwMDAwMDA1JSwjMzMzMzMzMTAwJSk7IGJhY2tncm91bmQ6LW1zLWxpbmVhci1ncmFkaWVudCh0b3AsIzAwMDAwMDUlLCMzMzMzMzMxMDAlKTsgYmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCMwMDAwMDA1JSwjMzMzMzMzMTAwJSk7IGZpbHRlcjpwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoc3RhcnRDb2xvcnN0cj0nIzAwMDAwMCcsZW5kQ29sb3JzdHI9JyMzMzMzMzMnLEdyYWRpZW50VHlwZT0wKTsgYmFja2dyb3VuZC1jb2xvcjojMzMzMzMzOyBmb250LXNpemU6MC45MzhyZW0gOyB0ZXh0LWFsaWduOmNlbnRlcjsgYm9yZGVyLXJhZGl1czo2cHg7IHBhZGRpbmc6N3B4OyB9IC5wcm9tby1jYXJkIC5wcm9tby1kZXRhaWxzLWJ0biBhIHsgY29sb3I6d2hpdGU7IHRleHQtYWxpZ246Y2VudGVyOyB9IC5zZXJ2aWNlLXNlY3Rpb24ge2NsZWFyOmJvdGg7IG1hcmdpbjoxMHB4OyBkaXNwbGF5OmJsb2NrOyBtaW4taGVpZ2h0OjgwcHg7fSAuc2VydmljZS1zZWN0aW9uIGltZyB7IHdpZHRoOjEwMCU7IG1hcmdpbi1ib3R0b206N3B4OyB9IC5zZXJ2aWNlLXNlY3Rpb24gLmRldGFpbHMgeyBiYWNrZ3JvdW5kOnJnYig2OCw2OCw2OCk7IHdpZHRoOjE2NXB4OyBmbG9hdDpub25lOyBmb250LXNpemU6MC43NXJlbSA7IG1hcmdpbi10b3A6NXB4OyBtYXJnaW4tbGVmdDowcHg7IH0gLnNlcnZpY2VfZGVzY3sgfSAuc2VydmljZV9tYWluX2Rlc2MgeyBtYXJnaW46MTBweDsgfSAuc2VydmljZV9tYWluX2Rlc2MgYXsgdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTsgfSAuc3RlcHMge30gLnN0ZXBzIHVsIHt9IC5zdGVwcyB1bCBsaXsgbGlzdC1zdHlsZTpub25lOyBsaXN0LXN0eWxlLXR5cGU6bm9uZTsgZm9udC1zaXplOjAuOTM4cmVtIDsgbWFyZ2luOjAgMTBweCAwIDEwcHg7IGRpc3BsYXk6YmxvY2s7IHdpZHRoOjcwcHg7IG1hcmdpbi1ib3R0b206MTBweDsgY3Vyc29yOmRlZmF1bHR9IC5zdGVwcyB1bCBsaSAuYWN0aXZlLCAuc3RlcHMgdWwgbGkgLmluYWN0aXZlIHsgLXdlYmtpdC1ib3gtc2hhZG93OjAgMXB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMyk7IC1tb3otYm94LXNoYWRvdzowIDFweCAzcHggcmdiYSgwLCAwLCAwLCAwLjMpOyBib3gtc2hhZG93OjAgMXB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMyk7IC13ZWJraXQtYm9yZGVyLXJhZGl1czoyNXB4OyAtbW96LWJvcmRlci1yYWRpdXM6MjVweDsgYm9yZGVyLXJhZGl1czoyNXB4OyB3aWR0aDoyNXB4OyBoZWlnaHQ6MjVweDsgZGlzcGxheTpibG9jazsgZm9udC1zaXplOjEuNXJlbSA7IGZvbnQtd2VpZ2h0OmJvbGQ7IHRleHQtYWxpZ246Y2VudGVyOyBmbG9hdDpyaWdodDsgbWFyZ2luLXRvcDotMnB4OyBwYWRkaW5nLXJpZ2h0OjFweDsgbGluZS1oZWlnaHQ6MjVweDsgfSAuc3RlcHMgdWwgbGkgLmFjdGl2ZSB7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvd2hpdGUucG5nKSByZXBlYXQteDsgY29sb3I6IzAwMDAwMDt9IC5zdGVwcyB1bCBsaSAuaW5hY3RpdmUge2JhY2tncm91bmQ6dXJsKC9pbWFnZXMvYmxhY2sucG5nKSByZXBlYXQteDsgY29sb3I6I2ZmZjsgfSAuZm9ybSB7bWFyZ2luOjEwcHg7fSAuZm9ybXNfYm94MjIgeyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IHdpZHRoOjEwMCU7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBtYXJnaW46MCAwIDEwcHggMDsgfSAudm9pIHsgZmxvYXQ6bGVmdDsgbWFyZ2luLXRvcDo4cHg7IH0gI2NyZWRpdF92aV9hZHZhbmNlZCBsYWJlbCBpbnB1dCB7IG1hcmdpbi10b3A6MTBweDsgfSBzcGFuLmFzdGsgeyBjb2xvcjojRkYwMTAxOyBmb250LXNpemU6MC42ODhyZW07IGZsb2F0OmxlZnQ7IHBhZGRpbmctcmlnaHQ6M3B4OyB9IC5jcmVkaXQtY29uc2VudF9fY29udGFpbmVyIHsgZGlzcGxheTpmbGV4OyBwYWRkaW5nOjAgMC43cmVtOyBmb250LXNpemU6MC44cmVtOyBjb2xvcjojMjQyNDI0OyB9IC5jcmVkaXQtY29uc2VudF9fY29udGFpbmVyIGRpdjpub3QoOmZpcnN0LW9mLXR5cGUpIHsgbWFyZ2luLWxlZnQ6MC43cmVtOyB9IC5maWVsZCB7IHdpZHRoOjEwMCU7IGJvcmRlci1yYWRpdXM6NHB4OyBib3JkZXI6MXB4IHNvbGlkICNjY2M7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgfSAubGFiZWwge3BhZGRpbmc6MTBweCAwIDAgMDt9IC5kZWFsZXJhZGRyZXNzLCAuZGVhbGVycGhvbmUsIC5kZWFsZXJlbWFpbCB7IGJhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDsgYmFja2dyb3VuZC1zaXplOjMwcHg7IGJhY2tncm91bmQtcG9zaXRpb246NXB4IDEzcHg7IGJhY2tncm91bmQtY29sb3I6I2RiZGJkYjsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjRweDsgLW1vei1ib3JkZXItcmFkaXVzOjRweDsgYm9yZGVyLXJhZGl1czo0cHg7IG1hcmdpbjoxMHB4OyBkaXNwbGF5OmJsb2NrOyBjbGVhcjpib3RoOyBwYWRkaW5nOjE1cHggMTBweCAxNXB4IDQwcHg7IGZvbnQtd2VpZ2h0Om5vcm1hbCB9IC5kZWFsZXJhZGRyZXNzLCAuZGVhbGVycGhvbmUsIC5kZWFsZXJlbWFpbCB7IGJhY2tncm91bmQtY29sb3I6d2hpdGU7IH0gLmRlYWxlcmFkZHJlc3M6YmVmb3JlIHsgY29udGVudDoiXGYwMTUiOyB9IC5kZWFsZXJwaG9uZTpiZWZvcmUgeyBjb250ZW50OiJcZjA5NSI7IG1hcmdpbi10b3A6OHB4OyB9IC5kZWFsZXJlbWFpbDpiZWZvcmUgeyBjb250ZW50OiJcZjBlMCI7IH0gLmRlYWxlcmFkZHJlc3M6YmVmb3JlLCAuZGVhbGVycGhvbmU6YmVmb3JlLCAuZGVhbGVyZW1haWw6YmVmb3JleyBmb250LWZhbWlseToiRm9udCBBd2Vzb21lIDUgUHJvIjsgZm9udC1zdHlsZTpub3JtYWw7IGZvbnQtd2VpZ2h0OjkwMDsgdGV4dC1kZWNvcmF0aW9uOmluaGVyaXQ7IGNvbG9yOiMzMzM7IGZvbnQtc2l6ZToxLjEyNXJlbSA7IHBvc2l0aW9uOmFic29sdXRlOyBsZWZ0OjIxcHg7IH0gLmRlYWxlcnBob25lICNhY2NvcmRpb24gLnVpLWFjY29yZGlvbi1oZWFkZXItaWNvbiwgLm9wZW5faG91cnNfY29udGFpbmVyIC51aS1hY2NvcmRpb24taGVhZGVyLWljb24geyBkaXNwbGF5Om5vbmU7IH0gLm9wZW5faG91cnNfY29udGFpbmVyIC5tYXBfb3Blbl9ob3Vyc19leHBhbmQgeyBjb2xvcjojMDAwMDAwOyB9IC5tYXBfb3Blbl9ob3Vyc19tb2JpbGUgLnZpc2l0Q29udGFjdEJ1dHRvbiwgLm9wZW5faG91cnNfY29udGFpbmVyIC52aXNpdENvbnRhY3RCdXR0b257IHdpZHRoOjEwMCU7IHRleHQtYWxpZ246Y2VudGVyOyBwYWRkaW5nOjExcHggNXB4IDlweDsgZm9udC1zaXplOjAuODEzcmVtIDsgbWFyZ2luLXRvcDoxMHB4OyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IGJhY2tncm91bmQtY29sb3I6IzAyNzZiMzsgY29sb3I6I2ZmZmZmZjsgfSAuZGVhbGVycGhvbmUgLnVpLWFjY29yZGlvbiAudWktYWNjb3JkaW9uLWljb25zeyBwYWRkaW5nLWxlZnQ6MDsgfSAuZGVhbGVycGhvbmUgLmZhLWNhbGVuZGFyeyBtYXJnaW4tbGVmdDoxM3B4OyBtYXJnaW4tcmlnaHQ6NXB4OyB9IC5kZWFsZXJwaG9uZSAudWktYWNjb3JkaW9uLWNvbnRlbnQgeyBiYWNrZ3JvdW5kLWNvbG9yOiNmM2YzZjMhaW1wb3J0YW50OyBib3JkZXI6bm9uZSFpbXBvcnRhbnQ7IH0gLmRlYWxlcnBob25lLnVpLWFjY29yZGlvbiAudWktYWNjb3JkaW9uLWhlYWRlcnsgcGFkZGluZzo4cHg7IH0gLmgzLm1vYmlsZUJ1dHRvbnsgZm9udC1zaXplOjAuOTM4cmVtIDsgfSAubW9iaWxlQnV0dG9uQ29udGFjdHsgYm9yZGVyLXJhZGl1czo0cHg7IGRpc3BsYXk6YmxvY2s7IGN1cnNvcjpwb2ludGVyOyBwb3NpdGlvbjpyZWxhdGl2ZTsgbWFyZ2luLXRvcDoycHg7IHBhZGRpbmc6LjVlbSAuNWVtIC41ZW0gLjdlbTsgem9vbToxOyBwYWRkaW5nLWxlZnQ6Mi4yZW07IG91dGxpbmU6MDsgbGluZS1oZWlnaHQ6MS4zOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgbGlzdC1zdHlsZTpub25lOyB9IC5tb2JpbGVCdXR0b25Db250YWN0IGl7IG1hcmdpbi1sZWZ0Oi0yMHB4OyBtYXJnaW4tcmlnaHQ6MTBweDsgfSAuYmlnZmIge3BhZGRpbmc6MzBweCAwOyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2JpZ2ZiLnBuZykgcmVwZWF0LXggMCAwfSAuYnV0dG9uX2pvYm9mZmVyIHsgZGlzcGxheTpibG9jazsgbGluZS1oZWlnaHQ6NTBweDsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvaWNvbl9lbXBsb3kucG5nJykgbm8tcmVwZWF0IHNjcm9sbCAwcHggMHB4IHJnYigyMzEsIDIzMiwgMjMyKTsgdGV4dC1hbGlnbjpjZW50ZXI7IGZvbnQtd2VpZ2h0OmJvbGQ7IHRleHQtZGVjb3JhdGlvbjpub25lOyBwYWRkaW5nLWxlZnQ6NDBweDsgfSBkaXYuZXJyb3JNc2cgeyBiYWNrZ3JvdW5kLWNvbG9yOiNGRkJBQkE7IGJhY2tncm91bmQtaW1hZ2U6dXJsKCIvaW1hZ2VzL2Vycm9yLnBuZyIpOyBiYWNrZ3JvdW5kLXBvc2l0aW9uOjEwcHggY2VudGVyOyBiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7IGJvcmRlcjoxcHggc29saWQ7IGNvbG9yOiNEODAwMEM7IGRpc3BsYXk6bm9uZTsgcGFkZGluZzoxNXB4IDEwcHggMTVweCA1MHB4OyB6LWluZGV4Ojk5OTk7IH0gLmVtYWlsQm9keSwgLmVtYWlsU3ViamVjdHsgZGlzcGxheTpub25lOyB9IC5maWxlaW5wdXQtYnV0dG9uIHsgYmFja2dyb3VuZDp1cmwoIi9pbWFnZXMvYmxfYmcucG5nIikgcmVwZWF0LXggc2Nyb2xsIGxlZnQgdG9wIHJnYmEoMCwgMCwgMCwgMCk7IH0gLmZpbGVpbnB1dC1idXR0b246aG92ZXIgeyBiYWNrZ3JvdW5kOnVybCgiL2ltYWdlcy9idXR0b25fMi5wbmciKSByZXBlYXQteCBzY3JvbGwgbGVmdCB0b3AgcmdiYSgwLCAwLCAwLCAwKTsgfSAuZmlsZWlucHV0LWJ1dHRvbiwgLmZpbGVpbnB1dC1idXR0b246aG92ZXIgeyBmb250LXNpemU6MC44NzVyZW0gIWltcG9ydGFudDsgbGluZS1oZWlnaHQ6MzFweDsgcG9zaXRpb246cmVsYXRpdmU7IH0gLmZpbGVpbnB1dC1idXR0b24gaW5wdXQgeyBwb3NpdGlvbjphYnNvbHV0ZTsgdG9wOjA7IHJpZ2h0OjA7IG1hcmdpbjowOyBvcGFjaXR5OjA7IC1tcy1maWx0ZXI6J2FscGhhKG9wYWNpdHk9MCknOyBjdXJzb3I6cG9pbnRlcjsgfSAucGFnZV9uYW1lNXtoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgd2lkdGg6MTAwJSAhaW1wb3J0YW50O3BhZGRpbmc6MCAwcHggMTBweCAyMXB4OyBsaW5lLWhlaWdodDozMHB4OyBmb250LXNpemU6MS41cmVtIDsgY29sb3I6IzI0MjQyNDtmb250LXdlaWdodDpub3JtYWwgfSAucGljYm94OTB7d2lkdGg6OTBweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IG1hcmdpbi1yaWdodDo4cHg7IGJvcmRlcjoxcHggc29saWQgI2FjYWNhYzsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjdweDsgYm9yZGVyLXJhZGl1czo3cHg7IC1raHRtbC1ib3JkZXItcmFkaXVzOjdweDsgfSAucGljYm94OTAgaW1nIHt3aWR0aDo5MHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgLW1vei1ib3JkZXItcmFkaXVzOjdweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjdweDsgYm9yZGVyLXJhZGl1czo3cHg7IC1raHRtbC1ib3JkZXItcmFkaXVzOjdweDsgfSAudGV4dGJveDE5MXt3aWR0aDoxOTFweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IGxpbmUtaGVpZ2h0OjEuMjsgY29sb3I6IzI0MjQyNDsgfSAudGV4dGJveDE5MSBoNHsgZm9udC1zaXplOjEuMTI1cmVtIDsgY29sb3I6IzI0MjQyNDsgcGFkZGluZy1ib3R0b206NXB4OyB9IC5tYWluYm94Mjkxe3dpZHRoOjkzJTtoZWlnaHQ6MTEycHg7IGZsb2F0OmxlZnQ7IGNsZWFyOmJvdGg7IG1hcmdpbjowIDVweCAxMHB4IDA7IGJhY2tncm91bmQ6I2U2ZTZlNjsgYm9yZGVyOjFweCBzb2xpZCAjZDRkNGQ0OyAtbW96LWJvcmRlci1yYWRpdXM6OHB4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6OHB4OyBib3JkZXItcmFkaXVzOjhweDsgLWtodG1sLWJvcmRlci1yYWRpdXM6OHB4OyBwYWRkaW5nOjE1cHggMTBweDt9IC5sYXp5e2JvcmRlcjowO2Rpc3BsYXk6bm9uZX0gLnRlY2hTcGVjc3t3aWR0aDo2MjFweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IG1hcmdpbjowcHg7IHBhZGRpbmc6MjVweCAxNXB4OyBiYWNrZ3JvdW5kOiNlNmU3ZTc7IGJhY2tncm91bmQtcG9zaXRpb246cmlnaHQgYm90dG9tOyAtbW96LWJvcmRlci1yYWRpdXMtdG9wbGVmdDowcHg7LW1vei1ib3JkZXItcmFkaXVzLXRvcHJpZ2h0OjBweDstbW96LWJvcmRlci1yYWRpdXMtYm90dG9tcmlnaHQ6NnB4Oy1tb3otYm9yZGVyLXJhZGl1cy1ib3R0b21sZWZ0OjZweDstd2Via2l0LWJvcmRlci10b3AtbGVmdC1yYWRpdXM6MHB4Oy13ZWJraXQtYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6MHB4Oy13ZWJraXQtYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6NnB4Oy13ZWJraXQtYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czo2cHg7Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czowcHg7Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6MHB4O2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6NnB4O2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjZweDt9IC50ZXh0X2JveDExIGEgeyBjb2xvcjojMjQyNDI0OyBmbG9hdDpsZWZ0OyBoZWlnaHQ6YXV0bzsgbWFyZ2luLWxlZnQ6MTVweDsgcGFkZGluZzoxMHB4IDA7IH0gLnRleHRfYm94MTEgYSB7IGNvbG9yOiMyNDI0MjQ7IGZsb2F0OmxlZnQ7IGhlaWdodDphdXRvOyBtYXJnaW4tbGVmdDoxNXB4OyBwYWRkaW5nOjEwcHggMDsgfSAudGV4dF9ib3gxMSB1bCwgLnRleHRfYm94MTEgcCB7IGNvbG9yOiMyNDI0MjQ7IGZsb2F0OmxlZnQ7IGhlaWdodDphdXRvOyB3aWR0aDoxMDAlOyB0ZXh0LWFsaWduOmp1c3RpZnk7IH0gLnRleHRfYm94MTEgcCBpbWd7IHdpZHRoOjEwMCUgIWltcG9ydGFudDsgaGVpZ2h0OmF1dG8gIWltcG9ydGFudDsgbWFyZ2luOjAhaW1wb3J0YW50OyBwYWRkaW5nOjEwcHggMCFpbXBvcnRhbnQ7IH0gLnByaWNlTm90ZSB7IGNvbG9yOiM3NTc1NzU7IGZvbnQtc2l6ZTowLjg1ZW07IGZvbnQtc3R5bGU6aXRhbGljOyB0ZXh0LWFsaWduOmp1c3RpZnk7IGRpc3BsYXk6YmxvY2s7IHBhZGRpbmctcmlnaHQ6MTBweDsgbGluZS1oZWlnaHQ6MS4xZW07IG1hcmdpbjoxMHB4IDA7IH0gLnN0YWNrZWREaXNjbGFpbWVyeyBkaXNwbGF5OmJsb2NrOyBtYXJnaW4tdG9wOjEwcHg7IH0gc3Bhbi5zdGFja2VkRGlzY2xhaW1lcjpiZWZvcmV7IGNvbnRlbnQ6IioqIjsgcG9zaXRpb246cmVsYXRpdmU7IGZvbnQtc2l6ZToxcmVtOyB9ICNtYWluQ29tcGFyZVZpZXd7IG1hcmdpbjowOyB9ICNjb21wbF90YWJsZXsgbWFyZ2luLWJvdHRvbToyMHB4OyB9IC5pZE5hdjEgeyBjb2xvcjojZjlmOWY5OyBmb250LXNpemU6MC43NXJlbSA7IGZvbnQtc3R5bGU6bm9ybWFsOyBmb250LXdlaWdodDpib2xkOyBoZWlnaHQ6MjhweDsgbGlzdC1zdHlsZTpvdXRzaWRlIG5vbmUgbm9uZTsgcGFkZGluZzowOyB0ZXh0LXRyYW5zZm9ybTp2YXIoLS10eHQtdXBwZXIpOyB9IC5pZE5hdjEgbGkudG9wIHsgZGlzcGxheTpibG9jazsgZmxvYXQ6bGVmdDsgaGVpZ2h0OjI4cHg7IHBhZGRpbmc6MCAycHggMCAwOyB9IC5pZE5hdjEgbGkudG9wMSB7IGJhY2tncm91bmQ6cmdiYSgwLCAwLCAwLCAwKSB1cmwoIi9pbWFnZXMvYmxfaG92ZXIucG5nIikgcmVwZWF0LXggc2Nyb2xsIGxlZnQgdG9wOyBib3JkZXItcmFkaXVzOjNweDsgY29sb3I6I2ZmZjsgZGlzcGxheTpibG9jazsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODEzcmVtIDsgaGVpZ2h0OjI4cHg7IHBhZGRpbmc6MCAycHggMCAwOyB0ZXh0LWFsaWduOmNlbnRlcjsgdGV4dC10cmFuc2Zvcm06dmFyKC0tdHh0LXVwcGVyKTsgfSAuaWROYXYxIGxpIGEudG9wX2xpbmsgeyBiYWNrZ3JvdW5kOnJnYmEoMCwgMCwgMCwgMCkgdXJsKCIvaW1hZ2VzL2JsX2JnLnBuZyIpIHJlcGVhdC14IHNjcm9sbCBsZWZ0IHRvcDsgYm9yZGVyLXJhZGl1czozcHg7IGNvbG9yOnJnYigyNTUsIDI1NSwgMjU1KTsgY3Vyc29yOnBvaW50ZXI7IGRpc3BsYXk6YmxvY2s7IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgaGVpZ2h0OjI4cHg7IGxpbmUtaGVpZ2h0OjMwcHg7IHBhZGRpbmc6MCAxMnB4OyB0ZXh0LWRlY29yYXRpb246bm9uZTsgdGV4dC10cmFuc2Zvcm06dmFyKC0tdHh0LXVwcGVyKTsgfSAuaWROYXYxIGxpIGEudG9wX2xpbms6aG92ZXIgeyBiYWNrZ3JvdW5kOnJnYmEoMCwgMCwgMCwgMCkgdXJsKCIvaW1hZ2VzL2JsX2hvdmVyLnBuZyIpIHJlcGVhdC14IHNjcm9sbCBsZWZ0IHRvcDsgYm9yZGVyLXJhZGl1czozcHg7IGNvbG9yOiNmZmY7IH0gLmlkTmF2MSBsaSBhLnRvcF9saW5rMSB7IGJhY2tncm91bmQ6cmdiYSgwLCAwLCAwLCAwKSB1cmwoIi9pbWFnZXMvYmxfaG92ZXIucG5nIikgcmVwZWF0LXggc2Nyb2xsIGxlZnQgdG9wOyBib3JkZXItcmFkaXVzOjNweDsgY29sb3I6I2ZlZmVmZTsgY3Vyc29yOnBvaW50ZXI7IGRpc3BsYXk6YmxvY2s7IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgaGVpZ2h0OjI4cHg7IGxpbmUtaGVpZ2h0OjMwcHg7IHBhZGRpbmc6MCAxMnB4OyB0ZXh0LWRlY29yYXRpb246bm9uZTsgdGV4dC10cmFuc2Zvcm06dmFyKC0tdHh0LXVwcGVyKTsgfSAjZnJtUmViYXRlIC5pZE5hdjEgbGkgYS50b3BfbGluayB7IGJhY2tncm91bmQ6cmdiYSgwLCAwLCAwLCAwKSB1cmwoIi9pbWFnZXMvYnV0dG9uX3BvcHVwLnBuZyIpIHJlcGVhdC14IHNjcm9sbCBsZWZ0IHRvcDsgY29sb3I6I2ZmZjsgfSAjZnJtUmViYXRlIC5pZE5hdjEgbGkgYS50b3BfbGluazpob3ZlciB7IGJhY2tncm91bmQ6cmdiYSgwLCAwLCAwLCAwKSB1cmwoIi9pbWFnZXMvYmxfaG92ZXIucG5nIikgcmVwZWF0LXggc2Nyb2xsIGxlZnQgdG9wOyBjb2xvcjojZmZmOyB9IC50ZXh0MjAgeyBmb250LXNpemU6MC44MTNyZW0gOyBoZWlnaHQ6MjNweDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IH0gLnByb21vY29kZWJveHsgLW1vei1ib3gtc2hhZG93Omluc2V0IDBweCAtM3B4IDdweCAwcHggI2U4MGQwZDsgLXdlYmtpdC1ib3gtc2hhZG93Omluc2V0IDBweCAtM3B4IDdweCAwcHggI2U4MGQwZDsgYm94LXNoYWRvdzppbnNldCAwcHggLTNweCA3cHggMHB4ICNlODBkMGQ7IGJhY2tncm91bmQ6LXdlYmtpdC1ncmFkaWVudChsaW5lYXIsIGxlZnQgdG9wLCBsZWZ0IGJvdHRvbSwgY29sb3Itc3RvcCgwLjA1LCAjZmYzMzMzKSwgY29sb3Itc3RvcCgxLCAjREIwMDAwKSk7IGJhY2tncm91bmQ6LW1vei1saW5lYXItZ3JhZGllbnQodG9wLCAjZmYzMzMzIDUlLCAjREIwMDAwIDEwMCUpOyBiYWNrZ3JvdW5kOi13ZWJraXQtbGluZWFyLWdyYWRpZW50KHRvcCwgI2ZmMzMzMyA1JSwgI0RCMDAwMCAxMDAlKTsgYmFja2dyb3VuZDotby1saW5lYXItZ3JhZGllbnQodG9wLCAjZmYzMzMzIDUlLCAjREIwMDAwIDEwMCUpOyBiYWNrZ3JvdW5kOi1tcy1saW5lYXItZ3JhZGllbnQodG9wLCAjZmYzMzMzIDUlLCAjREIwMDAwIDEwMCUpOyBiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCh0byBib3R0b20sICNmZjMzMzMgNSUsICNEQjAwMDAgMTAwJSk7IGZpbHRlcjpwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoc3RhcnRDb2xvcnN0cj0nI2ZmMzMzMycsIGVuZENvbG9yc3RyPScjREIwMDAwJyxHcmFkaWVudFR5cGU9MCk7IGJhY2tncm91bmQtY29sb3I6I2ZmMzMzMzsgYm9yZGVyOjFweCBzb2xpZCAjZjUxYTFhOyBjb2xvcjojRkZGRkZGIWltcG9ydGFudDsgZm9udC1zaXplOjAuOTM4cmVtIDsgcGFkZGluZzoxMHB4IDEwcHggMDsgbWFyZ2luOjA7IG1hcmdpbi10b3A6MTBweDsgbWFyZ2luLWxlZnQ6MzhweDsgbWluLXdpZHRoOjEwMHB4OyBib3JkZXItcmFkaXVzOjZweDsgYm94LXNoYWRvdzppbnNldCAwIDFweCAzcHggcmdiYSgwLCAwLCAwLCAwLjQpOyBmb250LXdlaWdodDpib2xkOyBmbG9hdDpsZWZ0OyBkaXNwbGF5OmJsb2NrOyBib3JkZXI6MDsgd2lkdGg6MTAwcHg7IH0gLmRldGFpbFByaWNlV2l0aEJ1dHRvbiB7IGRpc3BsYXk6aW5saW5lLWJsb2NrOyBwb3NpdGlvbjpyZWxhdGl2ZTsgbWFyZ2luLWxlZnQ6NXB4OyB2ZXJ0aWNhbC1hbGlnbjp0b3A7IG1hcmdpbi1ib3R0b206MTBweDsgbWFyZ2luLXJpZ2h0OjVweDsgd2lkdGg6NDklOyBtYXgtd2lkdGg6MTk1cHg7IG1pbi13aWR0aDoxMjBweDsgfSAuZGV0YWlsUHJpY2VXaXRoQnV0dG9uID4gLmRldGFpbFByaWNlQmxvY2sgeyBtYXJnaW4tbGVmdDowOyBtYXJnaW4tYm90dG9tOjlweDsgfSAuZGV0YWlsUHJpY2VXaXRoQnV0dG9uID4gLnByb21vY29kZWJveCB7IG1hcmdpbjowcHg7IHdpZHRoOjEwMCU7IHBhZGRpbmc6NnB4IDBweCAzcHggMHB4OyBtYXJnaW4tdG9wOjlweDsgfSAuZGV0YWlsLXByaWNlLXByb21vIGgyIHsgYmFja2dyb3VuZC1pbWFnZTp1cmwoL2ltYWdlcy9idXR0b25fcHJvbW90aW9uLnBuZyk7IGNvbG9yOiNGRkY7IGJvcmRlci1yYWRpdXM6OHB4OyBwYWRkaW5nOjVweCAwOyB9IC5kZXRhaWwtcHJpY2UtcHJvbW8gYSB7IGNvbG9yOiNGRkY7IH0gLmRldGFpbFByaWNlQmxvY2t7IGRpc3BsYXk6aW5saW5lLWJsb2NrOyBtYXJnaW4tbGVmdDo1cHg7IHBhZGRpbmc6MHB4OyBiYWNrZ3JvdW5kLWNvbG9yOmxpZ2h0Z3JleTsgdmVydGljYWwtYWxpZ246dG9wOyBib3JkZXItcmFkaXVzOjVweDsgbWFyZ2luLWJvdHRvbTowcHg7IHdpZHRoOjEwMCU7IG1heC13aWR0aDoxOTVweDsgfSAubmV3LWRldGFpbHMgLmRldGFpbFByaWNlV2l0aEJ1dHRvbiA+IC5kZXRhaWxQcmljZUJsb2NrIHsgbWFyZ2luLWJvdHRvbTowcHg7IH0gQG1lZGlhKG1heC13aWR0aDozMDdweCkgeyAuZGV0YWlsUHJpY2VCbG9jayB7IG1heC13aWR0aDoxNzVweDsgfSB9IC5kZXRhaWxQcmljZUJsb2NrICNyZWJhdGV7IG1hcmdpbjowOyBiYWNrZ3JvdW5kLWNvbG9yOmJsYWNrOyBjb2xvcjp3aGl0ZTsgYm9yZGVyLXJhZGl1czowIDAgNXB4IDVweDsgcGFkZGluZzo0cHggMCAwIDA7IH0gLmRldGFpbFByaWNlQmxvY2sgI2NhclByaWNleyBiYWNrZ3JvdW5kOm5vbmU7IGZvbnQtc2l6ZToxLjI1cmVtIDsgZm9udC13ZWlnaHQ6Ym9sZDsgcGFkZGluZzowcHg7IGNvbG9yOiMxMTExMTE7IGhlaWdodDoyNXB4OyB9IC5zY3JhdGNoRGV0YWlsUHJpY2V7IHBvc2l0aW9uOmFic29sdXRlOyB0b3A6M3B4OyBsZWZ0Oi0xcHg7IH0gLnByb21vQlROOmhvdmVyLCAucHJvbW9CVE4gYTpob3ZlciwgLmJyb2NodXJlQnRuOmhvdmVyIHsgYmFja2dyb3VuZDojMDI3NmIzIWltcG9ydGFudDsgY29sb3I6I2ZmZmZmZiFpbXBvcnRhbnQ7IGJvcmRlcjpub25lIWltcG9ydGFudDsgfSBkaXYjbGVhc2VDb21tZW50cyB7IHBhZGRpbmctYm90dG9tOjEwcHg7IH0gLmRldGFpbFByaWNlQmxvY2sgI2NhclByaWNlRGlzY3sgYmFja2dyb3VuZDpub25lOyBmb250LXNpemU6MS4yNXJlbSA7IGZvbnQtd2VpZ2h0OmJvbGQ7IHBhZGRpbmc6MHB4OyBjb2xvcjojRDQwMDAwOyBoZWlnaHQ6MjBweDsgfSAuZGV0YWlsUHJpY2VCbG9jayAjY2FyUHJpY2VQcm9tb3sgYmFja2dyb3VuZDpub25lOyBmb250LXNpemU6MS4yNXJlbSA7IGZvbnQtd2VpZ2h0OmJvbGQ7IH0gI2FzUHVyY2hhc2VJbnRlbnQgLmFzUElUaXRsZSB7IGZvbnQtc2l6ZToxLjI1cmVtICFpbXBvcnRhbnQ7IH0gI2FzUHVyY2hhc2VJbnRlbnQgbGkgbGFiZWx7IG1hcmdpbi1sZWZ0OjBweCFpbXBvcnRhbnQ7IH0gI2FzUHVyY2hhc2VJbnRlbnQgLnZpT3B0aW9uc3sgcGFkZGluZzowcHghaW1wb3J0YW50OyB9ICNhc1B1cmNoYXNlSW50ZW50IC52aU9wdGlvbnMgbGl7IGhlaWdodDoyMHB4IWltcG9ydGFudDsgd2lkdGg6MjYwcHghaW1wb3J0YW50OyBwYWRkaW5nOjAhaW1wb3J0YW50OyBtYXJnaW46MnB4IWltcG9ydGFudDsgfSAjYXNQdXJjaGFzZUludGVudCAuc3RlcHMgPiBsaXsgcGFkZGluZzoxMHB4IWltcG9ydGFudDsgbWFyZ2luLWJvdHRvbTo1cHghaW1wb3J0YW50OyB9ICNhc1B1cmNoYXNlSW50ZW50IC5zdGVwc3sgdGV4dC1pbmRlbnQ6MCFpbXBvcnRhbnQ7IH0gI2FzUHVyY2hhc2VJbnRlbnQgLmFzeWVzIHsgcGFkZGluZy1sZWZ0OjY1cHghaW1wb3J0YW50OyBtYXJnaW4tdG9wOjhweCFpbXBvcnRhbnQ7IH0gI2FzUHVyY2hhc2VJbnRlbnQgLmFzeWVzbm97IHdpZHRoOjYwcHghaW1wb3J0YW50OyBtYXJnaW4tdG9wOjBweCFpbXBvcnRhbnQ7IH0gI2FzUHVyY2hhc2VJbnRlbnQgaW5wdXR7IHBhZGRpbmcgOjBweCFpbXBvcnRhbnQ7IH0gI215Y2Fyb3VzZWxkaXZ7IG1hcmdpbi10b3A6MTBweDsgfSAjbXljYXJvdXNlbGRpdi5ibHVycnlmaXJzdGltYWdleyBtaW4taGVpZ2h0OnZhcigtLW1vYi1jYXJvdXNlbC1taW4taGVpZ2h0KTsgfSAjbXljYXJvdXNlbGRpdi5ibHVycnlmaXJzdGltYWdlIC5vd2wtY2Fyb3VzZWwgLm93bC1pdGVtIGltZ3sgYm9yZGVyOjA7IH0gI215Y2Fyb3VzZWxkaXYuYmx1cnJ5Zmlyc3RpbWFnZSAubG9hZGVyX293bHsgdmlzaWJpbGl0eTp2aXNpYmxlOyBvcGFjaXR5OjE7IHotaW5kZXg6MjsgcG9zaXRpb246YWJzb2x1dGU7IGhlaWdodDoxMDAlOyB3aWR0aDoxMDAlOyBvdmVyZmxvdzpoaWRkZW47IH0gI215Y2Fyb3VzZWxkaXYuYmx1cnJ5Zmlyc3RpbWFnZSAubG9hZGVyX293bCAucGxhY2Vob2xkZXJ7IGhlaWdodDoxMDAlOyB3aWR0aDpjYWxjKDEwMHZ3IC0gMjBweCk7IHBvc2l0aW9uOmFic29sdXRlOyBiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7IGJhY2tncm91bmQtc2l6ZTpjb250YWluOyBiYWNrZ3JvdW5kLXBvc2l0aW9uOmNlbnRlciBjZW50ZXI7IG1hcmdpbjowIDEwcHg7IH0gI215Y2Fyb3VzZWxkaXYuYmx1cnJ5Zmlyc3RpbWFnZSAubG9hZGVyX293bC5mYWRlLW91dHsgdmlzaWJpbGl0eTpoaWRkZW47IG9wYWNpdHk6MDsgLXdlYmtpdC10cmFuc2l0aW9uOnZpc2liaWxpdHkgMW1zIDFzLCBvcGFjaXR5IDFzIGxpbmVhcjsgLW1vei10cmFuc2l0aW9uOnZpc2liaWxpdHkgMW1zIDFzLCBvcGFjaXR5IDFzIGxpbmVhcjsgLW8tdHJhbnNpdGlvbjp2aXNpYmlsaXR5IDFtcyAxcywgb3BhY2l0eSAxcyBsaW5lYXI7IHRyYW5zaXRpb246dmlzaWJpbGl0eSAxbXMgMXMsIG9wYWNpdHkgMXMgbGluZWFyOyB9IGlucHV0W3R5cGU9cmFkaW9deyAtd2Via2l0LWJveC1zaGFkb3c6bm9uZSFpbXBvcnRhbnQ7IC1tb3otYm94LXNoYWRvdzogbm9uZSFpbXBvcnRhbnQ7IGJveC1zaGFkb3c6IG5vbmUhaW1wb3J0YW50OyB9IC5sYW5ndWFnZUJhcnsgbWF4LXdpZHRoOjIwMHB4OyB9IC51aS13aWRnZXQtY29udGVudCwgLnVpLXdpZGdldC1oZWFkZXJ7IGJhY2tncm91bmQ6I0YyRjJGMiFpbXBvcnRhbnQ7IH0gLnVpLWFjY29yZGlvbiAudWktYWNjb3JkaW9uLWNvbnRlbnQgeyBwYWRkaW5nOjEwcHghaW1wb3J0YW50OyB9IC51aS13aWRnZXQtY29udGVudCB7IGJhY2tncm91bmQ6I2U2ZTZlNiFpbXBvcnRhbnQ7IH0gLnVpLXRhYnMgLnVpLXRhYnMtbmF2IGxpeyBwYWRkaW5nOjFweCAzcHghaW1wb3J0YW50OyB9ICNtYWluRGl2X05ld01vYmlsZUxhbmRpbmdQYWdleyBiYWNrZ3JvdW5kOiNmZmYgdXJsKC9pbWFnZXMvZmluYW5jZS9oZWFkZXItYmctbW9iaWxlLmpwZykgdG9wIGNlbnRlciBuby1yZXBlYXQgfSAuY3JlZGl0X21faGVhZGVyIHsgcG9zaXRpb246cmVsYXRpdmU7IH0gLmNyZWRpdF9tX2hlYWRlciBpbWcgeyBtYXJnaW46MCBhdXRvOyBkaXNwbGF5OmJsb2NrOyB3aWR0aDoxMDAlOyB9IC5jcmVkaXRfbV90ZXh0LXdyYXBwZXIgeyBwb3NpdGlvbjphYnNvbHV0ZTsgaGVpZ2h0OjEwMCU7IHdpZHRoOjEwMCU7IGxlZnQ6NTAlOyB0b3A6MDsgdHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTUwJSk7IH0gLmNyZWRpdF9tX3RpbWUgeyBjb2xvcjojOEYwRDIwOyBmb250LXdlaWdodDo1MDA7IH0gLmNyZWRpdF9tX2JveCB7IGNvbG9yOiNmZmZmZmY7IGZvbnQtd2VpZ2h0OmJvbGQ7IG1hcmdpbi1sZWZ0OjQwJTsgbWFyZ2luLXRvcDo5JTsgbGluZS1oZWlnaHQ6MTV2dzsgfSAuY3JlZGl0X21fYm94MiB7IG1hcmdpbi1sZWZ0OjQ3JTsgbWFyZ2luLXRvcDo1JTsgZm9udC1zaXplOjUuNXZ3OyB0ZXh0LWFsaWduOmNlbnRlcjsgd2lkdGg6NDUlOyB9IC5jcmVkaXRfbV9ib3ggLmNyZWRpdF9tXzk5IHsgZm9udC1zaXplOjE5dnc7IH0gLmNyZWRpdF9tX2JveCAuY3JlZGl0X21fYXBwcm92ZWQgeyBmb250LXNpemU6OHZ3OyB0ZXh0LXRyYW5zZm9ybTp2YXIoLS10eHQtdXBwZXIpOyB9IC5jcmVkaXRfbV9sb2dveyBwb3NpdGlvbjpyZWxhdGl2ZTtmbG9hdDpyaWdodDtoZWlnaHQ6ODVweDttYXJnaW4tcmlnaHQ6MzBweDtjbGVhcjpib3RoOyB9IC5jcmVkaXRfbV9waG90b3sgaGVpZ2h0OjM2M3B4OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2ZpbmFuY2UvbW9iaWxlLWZpbmFuY2luZy1pbWcucG5nKSAwIDAgbm8tcmVwZWF0OyBiYWNrZ3JvdW5kLXNpemU6MTAwJTsgfSAuY3JlZGl0X21fYXBwcm92YWxfZnJ7IGZsb2F0OnJpZ2h0OyBjbGVhcjpyaWdodDsgd2lkdGg6MTYzcHg7IGhlaWdodDoxMzdweDsgbWFyZ2luOjI1cHggMjBweCAxMHB4IDA7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvZmluYW5jZS9sb2dvLWFwcHJvdmVkLW1vYmlsZV9yZWRfZnIucG5nKSAwIDAgbm8tcmVwZWF0OyB9IC5jcmVkaXRfbV9hcHByb3ZhbF9lbnsgZmxvYXQ6cmlnaHQ7IGNsZWFyOnJpZ2h0OyB3aWR0aDoxNjNweDsgaGVpZ2h0OjEzN3B4OyBtYXJnaW46MjVweCAyMHB4IDEwcHggMDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9maW5hbmNlL2xvZ28tYXBwcm92ZWQtbW9iaWxlX3JlZF9lbi5wbmcpIDAgMCBuby1yZXBlYXQ7IH0gLmNyZWRpdF9tX3N0YXJ0aW5nYXRfd3JhcHBlcnsgZm9udC1zaXplOjEuNXJlbSA7IGZvbnQtd2VpZ2h0OmxpZ2h0ZXIgIWltcG9ydGFudDtsaW5lLWhlaWdodDoyNHB4O3RleHQtYWxpZ246Y2VudGVyO2NvbG9yOiMwMjQwNmY7Y2xlYXI6Ym90aDttYXJnaW4tYm90dG9tOjMwcHg7IH0gLmNyZWRpdF9tX3N0YXJ0aW5nYXQgeyBtYXJnaW4tdG9wOjI2MHB4O2ZvbnQtc2l6ZToxLjQzOHJlbSA7IGZvbnQtd2VpZ2h0OmJvbGQgIWltcG9ydGFudDtsaW5lLWhlaWdodDoyNnB4O2Rpc3BsYXk6YmxvY2s7IH0gLmNyZWRpdF9tX2RlbGl2ZXJ5eyBmb250LXNpemU6MS41cmVtIDsgZm9udC13ZWlnaHQ6bGlnaHRlciAhaW1wb3J0YW50OyBsaW5lLWhlaWdodDoyNHB4O3RleHQtYWxpZ246Y2VudGVyO2NvbG9yOiMwMjQwNmY7IH0gLmNyZWRpdF9tX2NhbGx1c193cmFwcGVyeyBiYWNrZ3JvdW5kLWNvbG9yOiMwMjYyYWM7IGJhY2tncm91bmQtaW1hZ2U6LW1vei1saW5lYXItZ3JhZGllbnQoIzAyNjJhYywjMDEzNzYwKTsgYmFja2dyb3VuZC1pbWFnZTotd2Via2l0LWxpbmVhci1ncmFkaWVudCgjMDI2MmFjLCMwMTM3NjApOyBiYWNrZ3JvdW5kLWltYWdlOmxpbmVhci1ncmFkaWVudCgjMDI2MmFjLCMwMTM3NjApOyB3aWR0aDoxMDAlOyBtYXJnaW46MCAwIDIwcHggMDsgYm9yZGVyLXJhZGl1czozcHg7IHRleHQtYWxpZ246Y2VudGVyOyB9IC5jcmVkaXRfbV9jYWxsdXMsIC5jcmVkaXRfbV9jYWxsdXMgYXsgZGlzcGxheTpibG9jaztoZWlnaHQ6NTVweDt3aWR0aDoxMDAlO2NvbG9yOiNmZmY7IH0gLmNyZWRpdF9jYWxsX3VzXzEgeyBmb250LXNpemU6MC43NXJlbSA7IGZvbnQtd2VpZ2h0OmxpZ2h0ZXIgIWltcG9ydGFudDsgbGluZS1oZWlnaHQ6MTJweDsgbGluZS1oZWlnaHQ6NTVweDsgbWFyZ2luLWxlZnQ6MTBweDsgcG9zaXRpb246IHJlbGF0aXZlOyBib3R0b206NnB4OyB9IC5jcmVkaXRfY2FsbF91c18yIHsgY29udGVudDp1cmwoL2ltYWdlcy9maW5hbmNlL2ljb24tcGhvbmUtd2hpdGUucG5nKTttYXJnaW46MCAxMHB4OyB9IC5jcmVkaXRfY2FsbF91c18zIHsgZm9udC1zaXplOjEuMzc1cmVtIDsgZm9udC13ZWlnaHQ6bm9ybWFsICFpbXBvcnRhbnQ7IGxpbmUtaGVpZ2h0OjIycHg7IGxpbmUtaGVpZ2h0OjU1cHg7IG1hcmdpbi1yaWdodDoxMHB4OyB9IC5jcmVkaXRfbV9pbm5lciB7IHBhZGRpbmc6MTVweCAxMHB4OyB9IC5jcmVkaXRfbV9zZWVuX2FsbHsgcG9zaXRpb246cmVsYXRpdmU7d2lkdGg6MTAwJTsgaGVpZ2h0OjQwMHB4OyBtYXJnaW46MCBhdXRvOyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2ZpbmFuY2UvaGVhZGVyLWNvbmRpdGlvbnMtYmctbV9yZWQucG5nKSB0b3AgY2VudGVyIG5vLXJlcGVhdDsgei1pbmRleDo1OyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IGNvbG9yOiNmZmY7IHRleHQtYWxpZ246Y2VudGVyOyB9IC5jcmVkaXRfbV9zZWVuX2FsbCB1bHsgcGFkZGluZy10b3A6MjBweDtmb250LXNpemU6MS4xMjVyZW0gOyB9IC5jcmVkaXRfbV9zZWVuX2FsbCB1bCBsaXsgZm9udC1zaXplOjEuMTI1cmVtIDsgZm9udC13ZWlnaHQ6Ym9sZCAhaW1wb3J0YW50OyBsaW5lLWhlaWdodDoxOHB4OyB0ZXh0LXRyYW5zZm9ybTp2YXIoLS10eHQtdXBwZXIpOyBwYWRkaW5nOjVweDsgYm9yZGVyLXRvcDoxcHggcmdiYSgyNTUsMjU1LDI1NSwwLjIpIHNvbGlkOyB9IC5jcmVkaXRfbV9zZWVuX2FsbCB1bCBsaTpmaXJzdC1jaGlsZCB7IHBhZGRpbmctdG9wOjA7IGJvcmRlci10b3A6bm9uZTsgfSAuY3JlZGl0X21fc2Vlbl9hbGwgcHsgZm9udC1zaXplOjEuOTM4cmVtIDsgbGluZS1oZWlnaHQ6MzFweDsgdGV4dC10cmFuc2Zvcm06dmFyKC0tdHh0LXVwcGVyKTsgbWFyZ2luOjIwcHggMCAwIDA7IH0gLmNyZWRpdF9tX2Zvcm1fd3JhcHBlcnsgdGV4dC1hbGlnbjpjZW50ZXI7IGJvcmRlci1yaWdodDpub25lOyBjb2xvcjojMDI0MDZmOyBmb250LXdlaWdodDpub3JtYWwgIWltcG9ydGFudDsgYm94LXNpemluZzpib3JkZXItYm94OyB6LWluZGV4OjcwOyBwYWRkaW5nOjIwcHggMTBweCA4MHB4IDVweDsgcG9zaXRpb246cmVsYXRpdmU7IGJvcmRlcjo1cHggc29saWQgIzAyNDA2ZjsgYm9yZGVyLXJhZGl1czoxMHB4OyBiYWNrZ3JvdW5kOiNGRkY7IHdpZHRoOjEwMCU7IG1hcmdpbi10b3A6MjBweDsgfSAuY3JlZGl0X21fYmVmb3JlX2Zvcm17IGZvbnQtc2l6ZToyLjEyNXJlbSA7IGxpbmUtaGVpZ2h0OjM0cHg7IHRleHQtdHJhbnNmb3JtOnZhcigtLXR4dC11cHBlcik7IH0gLmNyZWRpdF9tX2JlZm9yZV9mb3JtIHB7IGZvbnQtc2l6ZToxLjE4OHJlbSA7IGxpbmUtaGVpZ2h0OjE5cHg7IG1hcmdpbi10b3A6MTVweDsgdGV4dC10cmFuc2Zvcm06bm9uZTsgfSAuY3JlZGl0X21fZm9ybV9ib3R0b217IHBvc2l0aW9uOmFic29sdXRlOyBib3R0b206LTJweDsgbGVmdDotMnB4OyB3aWR0aDoxMDAlOyBwYWRkaW5nOjEycHggMnB4IDhweCAycHg7IGJhY2tncm91bmQ6IzAyNDA2ZjsgY29sb3I6I2ZmZjsgdGV4dC1hbGlnbjpjZW50ZXI7IGZvbnQtc2l6ZToxcmVtIDsgZm9udC13ZWlnaHQ6bm9ybWFsICFpbXBvcnRhbnQ7IGxpbmUtaGVpZ2h0OjE2cHg7IH0gLmNyZWRpdF9tX2FmdGVyX2Zvcm17IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgY29sb3I6I2ZmZjsgcGFkZGluZzozNXB4IDA7IGJhY2tncm91bmQ6I2ZmZiB1cmwoL2ltYWdlcy9maW5hbmNlL2ZlYXQtYmdfcmVkLnBuZyk7IGRpc3BsYXk6YmxvY2s7IGZvbnQtc2l6ZToxLjEyNXJlbSA7IGZvbnQtd2VpZ2h0Om5vcm1hbCAhaW1wb3J0YW50OyBsaW5lLWhlaWdodDoyMHB4OyB0ZXh0LWFsaWduOmNlbnRlcjsgfSAuY3JlZGl0X21fYWZ0ZXJfZm9ybSBzcGFueyB9IC5jcmVkaXRfbV9mb3JtX2JvdHRvbSBweyBwYWRkaW5nOjA7IGxpbmUtaGVpZ2h0OjEuMzsgfSAuY3JlZGl0X21fYWZ0ZXJfZm9ybSBoMnsgZm9udC1zaXplOjEuMzEzcmVtIDsgZm9udC13ZWlnaHQ6Ym9sZCAhaW1wb3J0YW50OyBsaW5lLWhlaWdodDoyNXB4OyBtYXJnaW46NXB4IDAgMCAwOyBwYWRkaW5nOjA7IH0gQG1lZGlhKG1heC13aWR0aDo0NTBweCkgeyAuY3JlZGl0X21fYWZ0ZXJfZm9ybSBoMntwYWRkaW5nOjAgMjAlO30gLmNyZWRpdF9tX2Zvcm1fYm90dG9tIHB7cGFkZGluZzowIDIwJTt9IH0gQG1lZGlhKG1heC13aWR0aDo0MDBweCkgeyAuY3JlZGl0X21fYWZ0ZXJfZm9ybSBoMntwYWRkaW5nOjAgMTUlO30gLmNyZWRpdF9tX2Zvcm1fYm90dG9tIHB7cGFkZGluZzowIDE1JTt9IH0gQG1lZGlhKG1heC13aWR0aDozNDBweCkgeyAuY3JlZGl0X21fYWZ0ZXJfZm9ybSBoMntwYWRkaW5nOjAgMTAlO30gLmNyZWRpdF9tX2Zvcm1fYm90dG9tIHB7cGFkZGluZzowIDEwJTt9IH0gLmNyZWRpdF9tXzNzdGVwc3sgbWFyZ2luLWxlZnQ6YXV0bzsgbWFyZ2luLXJpZ2h0OmF1dG87IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgcG9zaXRpb246cmVsYXRpdmU7IHRleHQtYWxpZ246bGVmdDsgbWFyZ2luOjAgYXV0bzsgcGFkZGluZy1yaWdodDoxMHB4OyBwYWRkaW5nLWxlZnQ6MTBweDsgbWF4LXdpZHRoOjk2MHB4OyB9IC5jcmVkaXRfbV8zc3RlcHMgaDJ7IGZvbnQtc2l6ZToxLjU2M3JlbSA7IGZvbnQtd2VpZ2h0Om5vcm1hbCAhaW1wb3J0YW50OyBsaW5lLWhlaWdodDoyNXB4OyB0ZXh0LXRyYW5zZm9ybTp2YXIoLS10eHQtdXBwZXIpOyBtYXJnaW4tdG9wOjA7IHBhZGRpbmctdG9wOjA7IGJvcmRlci10b3A6bm9uZTsgY29sb3I6IzAyNDA2ZjsgfSAuY3JlZGl0X21fM3N0ZXBzIHVseyBsaXN0LXN0eWxlOm5vbmU7IH0gLmNyZWRpdF9tXzNzdGVwcyBsaXsgcGFkZGluZzoyMHB4IDIwcHggMjBweCAxMTNweDsgYm9yZGVyLXJhZGl1czoxMHB4OyBwb3NpdGlvbjpyZWxhdGl2ZTsgYmFja2dyb3VuZC1jb2xvcjojZmZmOyBtYXJnaW4tdG9wOjEwcHg7IH0gLmNyZWRpdF9tXzNzdGVwc193cmFwcGVyeyBwYWRkaW5nOjQwcHggMDsgYmFja2dyb3VuZDojZTFlMWUxIHVybCgvaW1hZ2VzL2ZpbmFuY2Uvc3RlcHMtYmcuanBnKSB0b3AgY2VudGVyIG5vLXJlcGVhdDsgfSAuY3JlZGl0X21fM3N0ZXBzIHVsIGxpIGgzeyBmb250LXNpemU6MS4zNzVyZW0gOyBmb250LXdlaWdodDpub3JtYWwgIWltcG9ydGFudDsgbGluZS1oZWlnaHQ6MjJweDsgY29sb3I6IzAyNDA2ZjsgfSAuY3JlZGl0X21fM3N0ZXBzIHVsIGxpIHB7IGxpbmUtaGVpZ2h0OjIwcHg7IG1hcmdpbjowIDAgMTVweCAwOyBwYWRkaW5nOjA7IGZvbnQtc2l6ZToxLjEyNXJlbSA7IGZvbnQtd2VpZ2h0Om5vcm1hbCAhaW1wb3J0YW50OyBsaW5lLWhlaWdodDoxOHB4OyB9IC5jcmVkaXRfbV8zc3RlcHMgdWwgbGk6YWZ0ZXJ7IHBvc2l0aW9uOmFic29sdXRlOyB0b3A6MDsgYm90dG9tOjA7IGxlZnQ6MjBweDsgbWFyZ2luOmF1dG8gMDsgY29udGVudDonICc7IGRpc3BsYXk6YmxvY2s7IHdpZHRoOjczcHg7IGhlaWdodDo2NnB4OyBiYWNrZ3JvdW5kLWltYWdlOnVybCgnL2ltYWdlcy9maW5hbmNlL3N0ZXBzLW1vYmlsZV9yZWQucG5nJyk7IGJhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDsgfSAuY3JlZGl0X21fM3N0ZXBzIHVsID4gbGk6Zmlyc3QtY2hpbGQ6YWZ0ZXIgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xOTFweCAwOyB9IC5jcmVkaXRfbV8zc3RlcHMgdWwgPiBsaTpudGgtY2hpbGQoMik6YWZ0ZXJ7IGJhY2tncm91bmQtcG9zaXRpb246MCAxcHg7IH0gLmNyZWRpdF9tXzNzdGVwcyB1bCA+IGxpOm50aC1jaGlsZCgzKTphZnRlcnsgYmFja2dyb3VuZC1wb3NpdGlvbjotOTBweCA5cHg7IH0gLmNyZWRpdF9tX2Zvb3Rlcl93cmFwcGVyeyBwYWRkaW5nOjEwcHggMDsgfSAuY3JlZGl0X21fZm9vdGVyeyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IHBvc2l0aW9uOnJlbGF0aXZlOyB0ZXh0LWFsaWduOmxlZnQ7IG1hcmdpbjowIGF1dG87IHBhZGRpbmctcmlnaHQ6MTBweDsgcGFkZGluZy1sZWZ0OjEwcHg7IG1heC13aWR0aDo5NjBweDsgfSAuY3JlZGl0X21fZm9vdGVyIGgyIHsgbWFyZ2luOnZhcigtLXM5KSAwIHZhcigtLXMzKSAwOyBsaW5lLWhlaWdodDoxLjc1cmVtOyB9IC5jcmVkaXRfbV9mb3JtIGlucHV0W3R5cGU9dGV4dF0sIC5jcmVkaXRfbV9mb3JtIGlucHV0W3R5cGU9ZGF0ZV0sIC5jcmVkaXRfbV9mb3JtIGlucHV0W3R5cGU9bnVtYmVyXSwgLmNyZWRpdF9tX2Zvcm0gaW5wdXRbdHlwZT1lbWFpbF0sIC5jcmVkaXRfbV9mb3JtIGlucHV0W3R5cGU9dGVsXSwgLmNyZWRpdF9tX2Zvcm0gc2VsZWN0eyBoZWlnaHQ6NTBweDsgZm9udC1zaXplOjEuMzc1cmVtIDsgZm9udC13ZWlnaHQ6Ym9sZCAhaW1wb3J0YW50OyBsaW5lLWhlaWdodDoyMnB4OyB3aWR0aDoxMDAlOyBtYXJnaW4tYm90dG9tOjBweDsgYm9yZGVyLXJhZGl1czoxMHB4OyBtYXJnaW46MDsgcGFkZGluZzozcHggNXB4OyBiYWNrZ3JvdW5kLWNvbG9yOiNEQURBREE7IGJvcmRlcjoxcHggI0MyQjNCMyBzb2xpZDsgYm94LXNpemluZzpib3JkZXItYm94OyB9IC5jcmVkaXRfbV9mb3JtIHRhYmxleyB3aWR0aDoxMDAlOyBwYWRkaW5nOjAgMTBweDsgfSAuY3JlZGl0X21fZm9ybSAuY3JlZGl0X3JlcXVlc3Rfc3VibWl0eyBkaXNwbGF5OmJsb2NrOyBmb250LXNpemU6MS44NzVyZW0gOyBwYWRkaW5nOjVweDsgZm9udC13ZWlnaHQ6Ym9sZCAhaW1wb3J0YW50OyBsaW5lLWhlaWdodDo2MHB4OyBtYXJnaW46MzBweCAwIDMwcHggMDsgYm94LXNoYWRvdzpub25lOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgYmFja2dyb3VuZDpub25lOyBiYWNrZ3JvdW5kLWNvbG9yOiNjZjE3MWY7IGNvbG9yOiNmZmY7IHRleHQtdHJhbnNmb3JtOnZhcigtLXR4dC11cHBlcik7IGJvcmRlci1yYWRpdXM6MTBweDsgfSAuY3JlZGl0X21fZm9ybSAubGFiZWx7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGZvbnQtd2VpZ2h0OmxpZ2h0ZXI7ICFpbXBvcnRhbnQ7IGNvbG9yOiMyNDI0MjQ7IGZsb2F0OmxlZnQ7IHdpZHRoOjEwMCU7IHRleHQtYWxpZ246bGVmdDsgfSAuY3JlZGl0X21fcmVxdWlyZWR7IGNvbG9yOiNjMDA7IH0gI2Jlc3RQcmljZVZkcE5ld1BvcHVwQ29udGFpbmVyeyB3aWR0aDoyODBweDsgaGVpZ2h0OjQ5MHB4OyBwYWRkaW5nOjI2cHggMTBweCAxMHB4IDEwcHg7IH0gI2Jlc3RQcmljZVZkcE5ld1BvcHVwQ29udGFpbmVyIC5wb3B1cF9iZ3sgd2lkdGg6MjgwcHg7IGhlaWdodDo0OTBweDsgfSAjYmVzdFByaWNlVmRwTmV3UG9wdXBDb250YWluZXIgLnBvcHVwX2JneyBiYWNrZ3JvdW5kLWltYWdlOnVybCgnL2ltYWdlcy9wb3B1cHMvbS9mci9iZXN0UHJpY2VOZXdWZHAucG5nJyk7IH0gLnBvcHVwX2JneyBiYWNrZ3JvdW5kLWNvbG9yOiM0NDQ0NDQ7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSAucG9wdXBGb3JtIC5hc3Rlcmlza3sgY29sb3I6I2QwMDsgZm9udC13ZWlnaHQ6Ym9sZDsgcGFkZGluZzowOyBmb250LXNpemU6aW5oZXJpdDsgbWFyZ2luOjA7IH0gLnBvcHVwRm9ybXsgei1pbmRleDo1MDsgcG9zaXRpb246YWJzb2x1dGU7IHRvcDoyNzdweDsgaGVpZ2h0OjI0OXB4OyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IHdpZHRoOjI3MHB4OyBwYWRkaW5nOjNweDsgfSAucG9wdXBGb3JtIHRhYmxleyBtYXJnaW4tYm90dG9tOjEwcHg7IH0gLnBvcHVwRm9ybVRpdGxleyBoZWlnaHQ6MjVweDsgbWFyZ2luOjhweDsgZm9udC1zaXplOjFyZW0gOyBmb250LXdlaWdodDpib2xkOyB9IC5wb3B1cEZvcm1JbnB1dHMgdGQgeyBmb250LXNpemU6MC44NzVyZW0gOyB0ZXh0LWFsaWduOnJpZ2h0OyBwYWRkaW5nLXJpZ2h0OjEwcHg7IHBhZGRpbmctYm90dG9tOjNweDsgbGluZS1oZWlnaHQ6MTNweDsgbWluLXdpZHRoOjYwcHg7IH0gLnBvcHVwRm9ybSBpbnB1dHsgd2lkdGg6MTgwcHg7IH0gI2FzUHVyY2hhc2VJbnRlbnR7IHdpZHRoOjg1JTsgbWF4LXdpZHRoOjYwMHB4OyBwYWRkaW5nOjEwcHggMTBweDsgei1pbmRleDoxMDAwMDIxOyB9IC5zdHJpa2V7IHBvc2l0aW9uOnJlbGF0aXZlOyB9IC5zdHJpa2U6OmFmdGVyeyBjb250ZW50OicnOyBib3JkZXItYm90dG9tOjJweCBzb2xpZCAjQ0UwMDAwOyBwb3NpdGlvbjphYnNvbHV0ZTsgbGVmdDowOyB0b3A6MjUlOyB3aWR0aDoxMDAlOyB9IC5yZXNwb25zaXZlLWNvbnRhaW5lciB7IHBvc2l0aW9uOnJlbGF0aXZlOyBvdmVyZmxvdzpzY3JvbGw7IC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOnRvdWNoOyB9IC5yZXNwb25zaXZlLWNvbnRhaW5lci0xNng5IHsgcGFkZGluZy1ib3R0b206NTYuMjUlOyB9IC5yZXNwb25zaXZlLWNvbnRhaW5lci00eDMgeyBwYWRkaW5nLWJvdHRvbTo3NSU7IH0gLnJlc3BvbnNpdmUtY29udGFpbmVyLTEwMCB7IHBhZGRpbmctYm90dG9tOjEwMCU7IHdpZHRoOjEwMCU7IH0gLnJlc3BvbnNpdmUtY29udGFpbmVyLTEwIHsgcGFkZGluZy1ib3R0b206MTAlOyB3aWR0aDoxMDAlOyB9IC5yZXNwb25zaXZlLWNvbnRhaW5lciBpZnJhbWUgeyBwb3NpdGlvbjphYnNvbHV0ZTsgdG9wOjA7IGxlZnQ6MDsgd2lkdGg6MTAwJTsgaGVpZ2h0OjEwMCU7IH0gLnJlc3BvbnNpdmUtY29udGFpbmVyIFtjbGFzcyo9ImNyZWRzaWkiXSBpZnJhbWUgeyBwb3NpdGlvbjppbmhlcml0OyB9IC5yZXNwb25zaXZlLWVkaXRvciBpZnJhbWV7IHBvc2l0aW9uOmluaXRpYWw7IH0gLnN1Ym1lbnVJdGVtQ29udGFpbmVyIC5sb2NhdGlvbi1uYW1lcyBhLCAuc3VibWVudUl0ZW1Db250YWluZXIgLmxvY2F0aW9uLW5hbWVzIC50aXRsZSwgLnN1Ym1lbnVJdGVtQ29udGFpbmVyIC5sb2NhdGlvbi1uYW1lcyAubG9jYXRpb24tZGV0YWlscy1pbmZvIGxpIHsgcGFkZGluZy1sZWZ0OjlweDsgfSAuc3VibWVudUl0ZW1Db250YWluZXIgLnN1Ym1lbnVJdGVtQ2hpbGRDb250YWluZXIgeyBkaXNwbGF5Om5vbmU7IH0gLnN1Ym1lbnVJdGVtQ2hpbGRDb250YWluZXIgLnN1Ym1lbnVJdGVtQ2hpbGRDb250YWluZXIgeyBkaXNwbGF5OmJsb2NrOyB9IC5zdWJtZW51SXRlbUNvbnRhaW5lciAuc3VibWVudUl0ZW1DaGlsZENvbnRhaW5lciAuc3VibWVudUl0ZW1DaGlsZENvbnRhaW5lciB7IGRpc3BsYXk6bm9uZTsgfSAuc3VibWVudUl0ZW1Db250YWluZXIgLmxvY2F0aW9uLW5hbWVzID4gYSB7IGJhY2tncm91bmQtY29sb3I6IzEwMmI0ZTsgfSBsaS5sb2NhdGlvbi1uYW1lcyB7IHRleHQtYWxpZ246bGVmdDsgfSBsaS5sb2NhdGlvbi1uYW1lcy5tb2JpbGUgeyBtYXJnaW4tYm90dG9tOjA7IH0gbGkubG9jYXRpb24tbmFtZXMubW9iaWxlID4gYSB7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgYm9yZGVyLXJhZGl1czowOyBib3JkZXI6MXB4IHNvbGlkICNCQkI7IGJvcmRlci1ib3R0b206bm9uZTsgfSAubG9jYXRpb24tZGV0YWlscyB7IGZvbnQtc2l6ZToxcmVtIDsgfSAubG9jYXRpb24tZGV0YWlscy1sb2dvIC50aXRsZSB7IG1hcmdpbi10b3A6OHB4OyB9IC5sb2NhdGlvbi1kZXRhaWxzLWxvZ28gaW1nIHsgbWFyZ2luLWJvdHRvbTo4cHg7IH0gLmxvY2F0aW9uLWRldGFpbHMtaW5mbyB1bCBsaTpub3QoLmRldGFpbHMtaW5mby1saW5rKSB7IGJvcmRlci1sZWZ0Om5vbmU7IGJvcmRlci1yaWdodDpub25lOyBib3JkZXItYm90dG9tOm5vbmU7IH0gLmxvY2F0aW9uLWRldGFpbHMtaW5mbyB1bCBsaTpub3QoOmZpcnN0LWNoaWxkKSB7IGJvcmRlcjpub25lOyB9ICNkZWZhdWx0VG9wQmFubmVyVGV4dCB7IH0gQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDozMjBweCkgeyAjdG9wQmFubmVySW1hZ2UuTkVXQ0FSUyAjZGVmYXVsdFRvcEJhbm5lclRpdGxleyBmb250LXNpemU6MS4zNzVyZW0gIWltcG9ydGFudDsgfSAjdG9wQmFubmVySW1hZ2UuTkVXQ0FSUyAjZGVmYXVsdFRvcEJhbm5lclRleHR7IGZvbnQtc2l6ZToxLjE4OHJlbSAhaW1wb3J0YW50OyB9ICN0b3BCYW5uZXJJbWFnZS5VU0VEQ0FSUyAjZGVmYXVsdFRvcEJhbm5lclRpdGxleyBmb250LXNpemU6MS4zNzVyZW0gIWltcG9ydGFudDsgfSAjdG9wQmFubmVySW1hZ2UuVVNFRENBUlMgI2RlZmF1bHRUb3BCYW5uZXJUZXh0eyBmb250LXNpemU6MS4xODhyZW0gIWltcG9ydGFudDsgfSB9IEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6MzIwcHgpIHsgI3RvcEJhbm5lckltYWdlLk5FV0NBUlMgI2RlZmF1bHRUb3BCYW5uZXJUaXRsZSwjdG9wQmFubmVySW1hZ2UuVVNFRENBUlMgI2RlZmF1bHRUb3BCYW5uZXJUaXRsZSB7IGZvbnQtc2l6ZToxLjE4OHJlbSAhaW1wb3J0YW50OyB9ICN0b3BCYW5uZXJJbWFnZS5ORVdDQVJTICNkZWZhdWx0VG9wQmFubmVyVGV4dCwjdG9wQmFubmVySW1hZ2UuVVNFRENBUlMgI2RlZmF1bHRUb3BCYW5uZXJUZXh0IHsgZm9udC1zaXplOjEuMDYzcmVtICFpbXBvcnRhbnQ7IH0gfSAjdG9wQmFubmVySW1hZ2UuVVNFRENBUlMgI2RlZmF1bHRUb3BCYW5uZXJXcmFweyBoZWlnaHQ6MTY1cHggIWltcG9ydGFudDsgfSAjdG9wQmFubmVySW1hZ2UuTkVXQ0FSUyAjZGVmYXVsdFRvcEJhbm5lcldyYXB7IGhlaWdodDoxNjVweCAhaW1wb3J0YW50OyB9ICNkZWZhdWx0VG9wQmFubmVyeyBtaW4taGVpZ2h0OmluaXRpYWw7IGhlaWdodDphdXRvOyB9ICNkZWZhdWx0VG9wQmFubmVyV3JhcCBkaXYuZGVmYXVsdFRvcEJhbm5lckJ0bldyYXBwZXJ7IG1hcmdpbjoxMHB4IDAgIWltcG9ydGFudDsgfSAjZGVmYXVsdFRvcEJhbm5lcldyYXAgeyB0b3A6MCFpbXBvcnRhbnQ7IHBhZGRpbmc6MTVweCA0cHggIWltcG9ydGFudDsgfSAjZGVmYXVsdFRvcEJhbm5lclRpdGxlIHsgbGluZS1oZWlnaHQ6bm9ybWFsIWltcG9ydGFudDsgfSAjZGVmYXVsdFRvcEJhbm5lclRleHQgeyB9ICNkZWZhdWx0VG9wQmFubmVyQnRuIHsgZm9udC1zaXplOjAuNzVyZW0gIWltcG9ydGFudDsgbWFyZ2luLWJvdHRvbToxMHB4OyBmb250LXdlaWdodDpub3JtYWwhaW1wb3J0YW50OyBwYWRkaW5nOjRweCAyMHB4IWltcG9ydGFudDsgfSAucHJvbW9CVE4gYXsgYm9yZGVyOm5vbmUhaW1wb3J0YW50OyB0ZXh0LXRyYW5zZm9ybTp2YXIoLS10eHQtdXBwZXIpOyB9IC5wcm9tb0JUTi5pcy1zdGlja3l7IHBvc2l0aW9uOnN0aWNreTsgdG9wOjNyZW07IGJhY2tncm91bmQtY29sb3I6dmFyKC0tbGlnaHQtZ3JheSk7IGFsaWduLWl0ZW1zOmNlbnRlcjsgfSAuc3BlY2lhbC1zY2hlZHVsZSB7IC13ZWJraXQtYm9yZGVyLXJhZGl1czo0cHg7IC1tb3otYm9yZGVyLXJhZGl1czo0cHg7IGJvcmRlci1yYWRpdXM6NHB4OyBjb2xvcjpyZ2IoMjU1LDI1NSwyNTUpOyB0ZXh0LWFsaWduOmxlZnQ7IHRleHQtZGVjb3JhdGlvbjpub25lOyBkaXNwbGF5OmJsb2NrOyBmb250LXNpemU6MS4xZW07IGZvbnQtd2VpZ2h0OmJvbGQ7IHBhZGRpbmc6N3B4IDhweCA3cHggMHB4OyBiYWNrZ3JvdW5kOnJnYig3MiwgNzIsIDczKTsgbWFyZ2luOjEycHggMTBweCAzcHggMTBweDsgfSAjZGVmYXVsdFRvcEJhbm5lciB7IGhlaWdodDphdXRvOyB9IElOUFVUW3R5cGU9InRleHQiXS52YWxpZGl0eS1lcnJvbmVvdXMsIElOUFVUW3R5cGU9ImRhdGUiXS52YWxpZGl0eS1lcnJvbmVvdXMsIElOUFVUW3R5cGU9ImVtYWlsIl0udmFsaWRpdHktZXJyb25lb3VzLCBJTlBVVFt0eXBlPSJ0ZWwiXS52YWxpZGl0eS1lcnJvbmVvdXMsIElOUFVUW3R5cGU9InBhc3N3b3JkIl0udmFsaWRpdHktZXJyb25lb3VzIHsgYm9yZGVyOjFweCBzb2xpZCAjZGMzNTQ1OyBiYWNrZ3JvdW5kLWNvbG9yOiNmYWQ2ZGM7IH0gU0VMRUNULnZhbGlkaXR5LWVycm9uZW91c3sgYm9yZGVyOjFweCBzb2xpZCAjZGMzNTQ1OyBiYWNrZ3JvdW5kLWNvbG9yOiNmYWQ2ZGM7IH0gVEVYVEFSRUEudmFsaWRpdHktZXJyb25lb3VzeyBib3JkZXI6MXB4IHNvbGlkICNkYzM1NDU7IGJhY2tncm91bmQtY29sb3I6I2ZhZDZkYzsgfSAjdHJhZGVJbkJhclBvcHVwX2Zvcm1XIC50cmFkaW5TZWxlY3RQb3B1cHsgY29sb3I6IzNjMzgzNjsgZm9udC1zaXplOjFyZW07IGJhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwxKTsgYmFja2dyb3VuZC1wb3NpdGlvbjo5NSUgNTAlOyAtd2Via2l0LWFwcGVhcmFuY2U6bm9uZTsgLW1vei1hcHBlYXJhbmNlOm5vbmU7IG1hcmdpbjo1cHggMCAwOyBwYWRkaW5nOjAuM3JlbSFpbXBvcnRhbnQ7IH0gI3RyYWRlSW5CYXJQb3B1cF9mb3JtVyA6OnBsYWNlaG9sZGVyIHsgY29sb3I6I2E5YTlhOTsgb3BhY2l0eToxOyB9ICN0cmFkZUluQmFyUG9wdXBfZm9ybVcgOi1tcy1pbnB1dC1wbGFjZWhvbGRlciB7IGNvbG9yOiNhOWE5YTk7IH0gI3RyYWRlSW5CYXJQb3B1cF9mb3JtVyA6Oi1tcy1pbnB1dC1wbGFjZWhvbGRlciB7IGNvbG9yOiNhOWE5YTk7IH0gLnJldmVhbC1tb2RhbCA6OnBsYWNlaG9sZGVyIHsgY29sb3I6I2E5YTlhOTsgb3BhY2l0eToxOyB9IC5yZXZlYWwtbW9kYWwgOi1tcy1pbnB1dC1wbGFjZWhvbGRlciB7IGNvbG9yOiNhOWE5YTk7IH0gLnJldmVhbC1tb2RhbCA6Oi1tcy1pbnB1dC1wbGFjZWhvbGRlciB7IGNvbG9yOiNhOWE5YTk7IH0gI2FzUHVyY2hhc2VJbnRlbnQgKnsgYm94LXNpemluZzpjb250ZW50LWJveCFpbXBvcnRhbnQ7IH0gI3RyYWRlSW5CYXJQb3B1cF90aXRsZXsgdGV4dC10cmFuc2Zvcm06dmFyKC0tdHh0LXVwcGVyKTsgZm9udC13ZWlnaHQ6Ym9sZDsgdGV4dC1hbGlnbjpjZW50ZXI7IGNvbG9yOiMwMDAwMDA7IH0gI3RyYWRlSW5CYXJQb3B1cFNlbGVjdGVkVmVoaWNsZXsgbWFyZ2luLWJvdHRvbToxMHB4OyB0ZXh0LWFsaWduOmNlbnRlcjsgY29sb3I6IzAwMDAwMDsgfSAudHJhZGluU2VsZWN0V3sgZmxvYXQ6bGVmdDsgbWFyZ2luLWxlZnQ6MTBweDsgfSAudHJhZGluU2VsZWN0QXsgcG9zaXRpb246cmVsYXRpdmU7IH0gLnRyYWRpblNlbGVjdEE6YWZ0ZXIgeyBjb250ZW50OiIgIjsgaGVpZ2h0OjA7IHdpZHRoOjA7IGJvcmRlci1sZWZ0OjVweCBzb2xpZCB0cmFuc3BhcmVudDsgYm9yZGVyLXJpZ2h0OjVweCBzb2xpZCB0cmFuc3BhcmVudDsgYm9yZGVyLXRvcDo1cHggc29saWQgIzAwMDAwMDsgcG9zaXRpb246YWJzb2x1dGU7IHJpZ2h0OjE0cHg7IHRvcDoxN3B4OyB0cmFuc2l0aW9uOmFsbCAwLjNzIGxpbmVhcjsgcG9pbnRlci1ldmVudHM6bm9uZTsgfSAudHJhZGluTml2eyB3aWR0aDoxMDAlOyBwYWRkaW5nOjAuNHJlbTsgYm9yZGVyOjFweCBzb2xpZCAjYTlhOWE5OyBib3JkZXItcmFkaXVzOjVweDsgfSAudHJhZGluU2VsZWN0eyBjb2xvcjojM2MzODM2OyBib3JkZXI6MnB4IHNvbGlkICMjVFJBREVJTkpTRUxFQ1RCT1JERVJDT0xPUiMjOyBib3JkZXItcmFkaXVzOjVweDsgcGFkZGluZzoxMHB4IDEwcHg7IGZvbnQtc2l6ZToxcmVtIDsgYmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC45KTsgYmFja2dyb3VuZC1wb3NpdGlvbjo5NSUgNTAlOyB3aWR0aDoyMDBweDsgLXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7IC1tb3otYXBwZWFyYW5jZTpub25lOyBwYWRkaW5nLXJpZ2h0OjI3cHg7IH0gLnRyYWRpblNlbGVjdDphZnRlciB7IGNvbnRlbnQ6IiAiOyBoZWlnaHQ6MDsgd2lkdGg6MDsgYm9yZGVyLWxlZnQ6NXB4IHNvbGlkIHRyYW5zcGFyZW50OyBib3JkZXItcmlnaHQ6NXB4IHNvbGlkIHRyYW5zcGFyZW50OyBib3JkZXItdG9wOjVweCBzb2xpZCAjMDAwMDAwOyBwb3NpdGlvbjphYnNvbHV0ZTsgcmlnaHQ6MTRweDsgdG9wOjE3cHg7IHRyYW5zaXRpb246YWxsIDAuM3MgbGluZWFyOyB9IC50cmFkZUluQmFyTW9iaWxlQnV0dG9uIHsgcG9zaXRpb246Zml4ZWQ7IGJvdHRvbToxMHB4OyBsZWZ0OjEwcHg7IHotaW5kZXg6NDsgd2lkdGg6MTQwcHggIWltcG9ydGFudDsgYm9yZGVyLXdpZHRoOjFweDsgdGV4dC1hbGlnbjpsZWZ0OyBiYWNrZ3JvdW5kLWNvbG9yOiMwMDAwMDAgIWltcG9ydGFudDsgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDsgZGlzcGxheTpmbGV4OyBhbGlnbi1pdGVtczpjZW50ZXI7IGJvcmRlci1yYWRpdXM6OHB4OyBib3JkZXItd2lkdGg6MXB4IDNweCA0cHggMXB4OyBib3JkZXItY29sb3I6IzMzMzMzMzsgcGFkZGluZy10b3A6MTBweDsgfSBCT0RZLlVzZWRTcnAyTW9iaWxlIC50cmFkZUluQmFyTW9iaWxlQnV0dG9ueyBib3R0b206NnJlbTsgfSAudHJhZGVJbkJhck1vYmlsZUJ1dHRvbiBpeyBkaXNwbGF5OmlubGluZS1mbGV4OyBib3JkZXItcmFkaXVzOjEwMCU7IHdpZHRoOjJlbTsgYWxpZ24taXRlbXM6Y2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOyBib3JkZXI6MnB4IHNvbGlkICNmZmY7IGJhY2tncm91bmQtY29sb3I6I2ZmZjsgaGVpZ2h0OjEuNWVtOyBjb2xvcjojMDAwOyBmbG9hdDpsZWZ0OyB9IC50cmFkZUluQmFyTW9iaWxlQnV0dG9uLndpdGhUb2FzdGVyIHsgYm90dG9tOjgwcHg7IH0gLnRyYWRlSW5CYXJNb2JpbGVCdXR0b24gYSB7IGNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7IH0gLnRyYWRlSW5CYXJTdGVwMnsgbWFyZ2luOjYwcHggMDsgdGV4dC1hbGlnbjpjZW50ZXI7IH0gLnRyYWRlSW5CYXJTdGVwMiAudHJhZGVJbkJhclN0ZXAyUXVlc3Rpb257IG1hcmdpbjoyMHB4IDA7IH0gLnRyYWRlSW5CYXJTdGVwMyAudHJhZGVJbkJhclN0ZXAzUXVlc3Rpb257IG1hcmdpbjoyMHB4IDA7IH0gLnRyYWRlSW5CYXJTdGVwMiAucmFkaW9fZGl2IGxhYmVseyB3aWR0aDo1MHB4OyBwYWRkaW5nOjA7IG1hcmdpbjo1cHg7IGRpc3BsYXk6aW5saW5lLWJsb2NrIH0gLnRyYWRlSW5CYXJTdGVwMiAucmFkaW9fZGl2IGlucHV0eyB3aWR0aDphdXRvICFpbXBvcnRhbnQ7IHBhZGRpbmc6MCAhaW1wb3J0YW50OyBtYXJnaW46NXB4ICFpbXBvcnRhbnQ7IGJvcmRlcjpub25lICFpbXBvcnRhbnQ7IGhlaWdodDphdXRvICFpbXBvcnRhbnQ7IH0gLm11bHRpc2VsZWN0VmVoaWNsZU9wdGlvbnN7IG1hcmdpbi10b3A6NXB4OyB9IC5tdWx0aXNlbGVjdFZlaGljbGVPcHRpb25zIHNwYW57IGZvbnQtc2l6ZTowLjkzOHJlbSAhaW1wb3J0YW50OyBwYWRkaW5nOjAgIWltcG9ydGFudDsgbWFyZ2luOjAgIWltcG9ydGFudDsgfSAjdHJhZGVJbkJhclBvcHVwX2Zvcm1XIC50cmFkZUluQmFyTXVsdGlzZWxlY3R7IHdpZHRoOjEwMCUhaW1wb3J0YW50OyBib3JkZXItcmFkaXVzOjAuM3JlbSFpbXBvcnRhbnQ7IGJvcmRlci13aWR0aDoxcHghaW1wb3J0YW50OyBib3JkZXItcmFkaXVzOjAuM3JlbSFpbXBvcnRhbnQ7IGJvcmRlci1jb2xvcjojYTlhOWE5IWltcG9ydGFudDsgcGFkZGluZzowLjNyZW0haW1wb3J0YW50OyB9IC51aS1tdWx0aXNlbGVjdC1tZW51LnRyYWRlSW5CYXJNdWx0aXNlbGVjdHsgei1pbmRleDoxMDAwMDIwOyBtYXgtaGVpZ2h0OjExMHB4OyBvdmVyZmxvdzpzY3JvbGw7IH0gLnRyYWRlSW5CYXJEZWFsZXJTdGVweyB0ZXh0LWFsaWduOmNlbnRlcjsgbWFyZ2luLXRvcDoyNXB4OyB9IC50cmFkZUluQmFyRGVhbGVyU3RlcCAudHJhZGVJbkJhckRlYWxlclN0ZXBNYWtlTW9kZWxZZWFyeyBmb250LXdlaWdodDo3MDA7IH0gLnRyYWRlSW5CYXJEZWFsZXJTdGVwIHNwYW57IG1hcmdpbjowIWltcG9ydGFudDsgZm9udC13ZWlnaHQ6NzAwIWltcG9ydGFudDsgY29sb3I6IzAwMDAwMCFpbXBvcnRhbnQ7IHBhZGRpbmc6MCFpbXBvcnRhbnQ7IGZvbnQtc2l6ZToxLjMxM3JlbSAhaW1wb3J0YW50OyB9IC5tb2RlbG5veWVhckJ1dHRvbkxpc3R7IG1pbi1oZWlnaHQ6NDJweDsgbWFyZ2luOjE1cHggMDsgfSAubW9kZWxub3llYXJCdXR0b25MaXN0IHVseyBmbG9hdDpsZWZ0OyBsaXN0LXN0eWxlLXR5cGU6bm9uZTsgcGFkZGluZzowOyB9IC5tb2RlbG5veWVhckJ1dHRvbkxpc3QgbGl7IGZsb2F0OmxlZnQ7IHRleHQtYWxpZ246Y2VudGVyOyBtYXJnaW4tcmlnaHQ6M3B4OyBsaW5lLWhlaWdodDo0MHB4OyBwYWRkaW5nOjBweCAxNXB4OyBjdXJzb3I6cG9pbnRlcjsgYmFja2dyb3VuZC1jb2xvcjojZjBmMGYwOyBjb2xvcjojMDAwMDAwOyBib3JkZXI6MXB4IHNvbGlkICMwMDA7IGJvcmRlci1yYWRpdXM6M3B4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6M3B4OyAtbW96LWJvcmRlci1yYWRpdXM6M3B4OyB9IC5tb2RlbG5veWVhckJ1dHRvbkxpc3QgbGk6aG92ZXJ7IGNvbG9yOiNmZmZmZmY7IGJhY2tncm91bmQtY29sb3I6IzEwMmI0ZTsgYm9yZGVyOjFweCBzb2xpZCAjZmZmZmZmOyB9IC5tb2RlbG5veWVhckJ1dHRvbkxpc3Qgc3BhbnsgbWFyZ2luLWxlZnQ6MTBweDsgYm9yZGVyLXJhZGl1czoyMHB4OyBiYWNrZ3JvdW5kLWNvbG9yOiMwMDA7IGNvbG9yOiNmMGYwZjA7IHBhZGRpbmc6MnB4IDEwcHg7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGZvbnQtd2VpZ2h0OjcwMDsgfSAubW9kZWxub3llYXJCdXR0b25MaXN0IGxpOmhvdmVyIHNwYW57IGJhY2tncm91bmQtY29sb3I6I2ZmZmZmZjsgY29sb3I6IzEwMmI0ZTsgfSAubW9kZWxub3llYXJCdXR0b25MaXN0IGxpLm1vZGVsbm95ZWFyQnV0dG9uU2VsZWN0ZWR7IGJhY2tncm91bmQtY29sb3I6cmdiKDI0MywyNDMsMjQzKTsgY29sb3I6cmdiKDE2LDQzLDc4KTsgYm9yZGVyOjFweCBzb2xpZCByZ2IoMTYsNDMsNzgpOyB9IC5tb2RlbG5veWVhckJ1dHRvbkxpc3QgbGkubW9kZWxub3llYXJCdXR0b25TZWxlY3RlZCBzcGFueyBiYWNrZ3JvdW5kLWNvbG9yOnJnYigxNiw0Myw3OCk7IGNvbG9yOnJnYigyNDMsMjQzLDI0Myk7IH0gLm11bHRpZm9ybV9mb290ZXIgLm11bHRpZm9ybV9zdGVwMnsgdGV4dC1hbGlnbjpjZW50ZXI7IH0gLm11bHRpZm9ybV9ib2R5eyBwYWRkaW5nOjMwcHggMTBweDsgfSAubXVsdGlmb3JtX3RleHR7IHBhZGRpbmctYm90dG9tOjE1cHghaW1wb3J0YW50OyB9IC5tdWx0aWZvcm1fYnRuXzJ7IHRleHQtYWxpZ246Y2VudGVyOyB9IC5yZWJhdGVUYWd7IG1hcmdpbjowIGF1dG87IHBhZGRpbmc6NHB4IDdweCA0cHggN3B4OyB0ZXh0LWFsaWduOmNlbnRlcjsgd2lkdGg6Zml0LWNvbnRlbnQ7IGxpbmUtaGVpZ2h0OjE1cHg7IGJvcmRlci1yYWRpdXM6M3B4OyBiYWNrZ3JvdW5kOiMwMjc2YjMhaW1wb3J0YW50OyBjb2xvcjojZmZmZmZmIWltcG9ydGFudDsgdGV4dC1zaGFkb3c6bm9uZSFpbXBvcnRhbnQ7IH0gLnJlYmF0ZVRhZyBzcGFuLnJlYmF0ZVRleHR7IGRpc3BsYXk6YmxvY2s7IGZvbnQtc2l6ZTowLjc1cmVtIDsgfSAucmViYXRlVGFnIHNwYW4ucmViYXRlQW1vdW50eyBkaXNwbGF5OmJsb2NrOyBmb250LXdlaWdodDo3MDA7IGZvbnQtc2l6ZToxcmVtIDsgfSAuZ3JheWJveCAuY2FyLXByaWNlLWRvd24tYXJyb3d7IG1hcmdpbi10b3A6LTI1cHg7IG1hcmdpbi1ib3R0b206MHB4OyBtYXJnaW4tbGVmdDoyMHB4OyBmbG9hdDpsZWZ0OyBwb3NpdGlvbjpyZWxhdGl2ZTsgei1pbmRleDo1OyB9IC5ncmF5Ym94IC5jYXItcHJpY2UtZG93bi1hcnJvdy51c2VkeyBtYXJnaW4tbGVmdDo1MHB4OyB9IC5wcm9tb0luZm9XcmFwcGVyeyB3aWR0aDoxMDAlOyBoZWlnaHQ6NjBweDsgYm90dG9tOjA7IGZsb2F0OmxlZnQ7IGJhY2tncm91bmQtY29sb3I6I2VmZWZlZjsgZGlzcGxheTppbmxpbmUtdGFibGU7IG1hcmdpbi10b3A6LTIwcHg7IH0gLmRpdkNhclBheW1lbnRDb250YWluZXJ7IHRleHQtYWxpZ246Y2VudGVyOyBjb2xvcjpibGFjazsgfSAucmVzcG9uc2l2ZS1jb250YWluZXIgLmNvbnRlbnQtd3JhcHBlciB7IG1hcmdpbjowIDE1cHg7IH0gLmNhcmZheCB7IHRleHQtYWxpZ246Y2VudGVyOyB9IC5jYXJmYXggaW1nIHsgd2lkdGg6MjAwcHg7IHBhZGRpbmctdG9wOjE1cHg7IH0gLmNhcmZheCAuY2FycHJvb2YtYmFkZ2UgPiBESVZ7IG1heC13aWR0aDpub25lICFpbXBvcnRhbnQ7IHdpZHRoOjEwMCUgIWltcG9ydGFudDsgdGV4dC1hbGlnbjpjZW50ZXI7IH0gLmNhcmZheCAuY2FycHJvb2YtYmFkZ2UgPiBESVYgSU1HIHsgbWF4LXdpZHRoOm5vbmU7IGhlaWdodDo0MHB4OyB3aWR0aDoxMDAlOyBtYXJnaW46MTBweCAwIDIwcHg7IH0gLmRpdlNlYXJjaE1zZyB7IGZvbnQtc2l6ZTowLjlyZW07IHBhZGRpbmc6MTVweDsgYmFja2dyb3VuZC1jb2xvcjojZjdmN2Y3OyBib3JkZXItcmFkaXVzOjVweDsgfSAuYnV0dG9uXzEsIC5idXR0b25fMiwgLmJ1dHRvbl8zIHsgbWFyZ2luLWJvdHRvbToxMHB4OyB9IC5idXR0b25fMSBhLCAuYnV0dG9uXzIgYSwgLmJ1dHRvbl8zIGEgeyBkaXNwbGF5OmJsb2NrOyB3aWR0aDoyNDlweDsgaGVpZ2h0OjM4cHg7IGJvcmRlci1yYWRpdXM6M3B4OyBmb250LXNpemU6MS4xMjVyZW0gOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgdGV4dC1hbGlnbjpjZW50ZXI7IGxpbmUtaGVpZ2h0OjM4cHg7IH0gLmJ1dHRvbl8zLmpzLUNUQS1udW1iZXIgYSA+ICo6Zmlyc3QtY2hpbGR7IG1hcmdpbi1yaWdodDowLjVyZW07IH0gLmJ1dHRvbl8zIGF7IGJhY2tncm91bmQ6IzAwMDsgY29sb3I6I0ZGRjsgfSAuYnV0dG9uXzMgYTpob3ZlciwgLmJ1dHRvbl8zIGE6Zm9jdXN7IGJhY2tncm91bmQ6IzY2NjY2NjsgfSAjcHJvbW9EZXNjIC5ja2VkaXRvcldyYXBwZXIgaWZyYW1lIHsgbWF4LXdpZHRoOjEwMCU7IH0gQk9EWS5Vc2VkU3JwMk1vYmlsZSBIMS5kZWZhdWx0eyBmb250LXNpemU6MS4ycmVtOyBsaW5lLWhlaWdodDoxLjJyZW07IGNvbG9yOiMwMDAwMDA7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgY2xlYXI6Ym90aDsgcGFkZGluZzowIDAgMTVweCAwOyBkaXNwbGF5OmlubGluZS1mbGV4OyB9IEJPRFkuVXNlZFZkcDJNb2JpbGUgSDEuZGVmYXVsdHsgcGFkZGluZzoxMHB4OyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IG1hcmdpbjowOyBkaXNwbGF5OmlubGluZS1mbGV4OyB9IEJPRFkuVXNlZFNycDJNb2JpbGUgSDEuZGVmYXVsdCBBeyB0ZXh0LWRlY29yYXRpb246bm9uZTsgfSBCT0RZLlVzZWRWZHAyTW9iaWxlIEgxLmRlZmF1bHQgSS5pY29uLCBCT0RZLlVzZWRTcnAyTW9iaWxlIEgxLmRlZmF1bHQgSS5pY29uIHsgYm9yZGVyLXJhZGl1czozMHB4OyB3aWR0aDoxNnB4OyBoZWlnaHQ6MjBweDsgcGFkZGluZy10b3A6NXB4OyBwYWRkaW5nLWxlZnQ6OHB4OyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MXJlbSA7IG1hcmdpbi1yaWdodDo1cHg7IGJvcmRlcjoxcHggc29saWQgIzEwMmI0ZTsgY29sb3I6IzEwMmI0ZTsgYmFja2dyb3VuZC1jb2xvcjojZjNmM2YzOyB9IEJPRFkuVXNlZFZkcDJNb2JpbGUgSDEuZGVmYXVsdCBJLmljb24ubXVsdGlMaW5lSDEsIEJPRFkuVXNlZFNycDJNb2JpbGUgSDEuZGVmYXVsdCBJLmljb24ubXVsdGlMaW5lSDF7IG1hcmdpbi10b3A6MHB4OyB9IEJPRFkuVXNlZFZkcDJNb2JpbGUgSDEuZGVmYXVsdCBJLmljb24uc2luZ2xlTGluZUgxLCBCT0RZLlVzZWRTcnAyTW9iaWxlIEgxLmRlZmF1bHQgSS5pY29uLnNpbmdsZUxpbmVIMXsgbWFyZ2luLXRvcDowcHg7IH0gQk9EWS5Vc2VkVmRwMk1vYmlsZSBIMS5kZWZhdWx0ID4gRElWLCBCT0RZLlVzZWRTcnAyTW9iaWxlIEgxLmRlZmF1bHQgPiBESVZ7IGRpc3BsYXk6dGFibGUtcm93OyB9IEJPRFkuVXNlZFNycDJNb2JpbGUgSDEuZGVmYXVsdCA+IERJViBESVY6bnRoLWNoaWxkKDEpeyBmb250LXdlaWdodDpib2xkOyB9IEJPRFkuVXNlZFNycDJNb2JpbGUgSDEuZGVmYXVsdCA+IERJViBESVY6bnRoLWNoaWxkKDIpeyBmb250LXdlaWdodDpub3JtYWw7IGNvbG9yOiM3NTc1NzU7IGZvbnQtc2l6ZTowLjlyZW07IH0gQk9EWS5Vc2VkU3JwMk1vYmlsZSBIMS5kZWZhdWx0ID4gRElWIERJVjpudGgtY2hpbGQoMyl7IGZvbnQtc2l6ZTowLjhyZW07IGNvbG9yOiNiYmI7IHBhZGRpbmctdG9wOjVweDsgfSAuY2FyZmF4Lm1vYmlsZSBkaXZ7IGhlaWdodDphdXRvIWltcG9ydGFudDsgfSAuY2FyZmF4Lm1vYmlsZSBkaXYgYXsgZGlzcGxheTpibG9jayFpbXBvcnRhbnQ7IH0gLmNyZWRzaWlNb2JpbGV7IGRpc3BsYXk6YmxvY2s7IHBvc2l0aW9uOnJlbGF0aXZlOyB9IC5jcmVkc2lpTW9iaWxlIC5jcmVkc2lpLXdpZGdldC1jb250YWluZXJ7IG1heC13aWR0aDoxMDAlIWltcG9ydGFudDsgfSAuYmFubmVyLWZvcm0gLk1haW5Cb3hMYXllciB7IHdpZHRoOmluaXRpYWw7IH0gQk9EWS5Vc2VkVmRwMk1vYmlsZSAuc3BlY3MtaW1hZ2VzLWdyb3VweyBwb3NpdGlvbjpyZWxhdGl2ZTsgZGlzcGxheTpmbGV4OyBmbGV4LWZsb3c6cm93IHdyYXA7IGFsaWduLWl0ZW1zOmNlbnRlcjsgZ3JpZC1nYXA6MzBweDsgYmFja2dyb3VuZC1jb2xvcjojZmZmOyBtYXJnaW46MzBweCAxNXB4OyB9IEJPRFkuVXNlZFZkcDJNb2JpbGUgLnNwZWNzLWltYWdlcy1ncm91cCA+IGRpdnsgdGV4dC1hbGlnbjpjZW50ZXI7IGZsZXg6MSAxIDQ1JTsgfSBCT0RZLlVzZWRWZHAyTW9iaWxlIC5zcGVjcy1pbWFnZXMtZ3JvdXAgPiBkaXYgPiBpbWcgeyB3aWR0aDoxMDAlOyBoZWlnaHQ6YXV0bzsgcGFkZGluZzo1cHg7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgfSBCT0RZLlVzZWRWZHAyTW9iaWxlIC5zcGVjcy1pbWFnZXMtZ3JvdXAgLmNlcnQtdGl0bGUgeyBkaXNwbGF5OmJsb2NrOyBmb250LXNpemU6MS4xZW07IH0gQk9EWS5Vc2VkVmRwMk1vYmlsZSAuc3BlY3MtaW1hZ2VzLWdyb3VwIC5jZXJ0LXN1YnRpdGxlIHsgZGlzcGxheTpibG9jazsgbWFyZ2luLWJvdHRvbToxMHB4OyBjb2xvcjojNzc3OyBmb250LXNpemU6MC45NWVtOyBtYXJnaW4tdG9wOjVweDsgfSBCT0RZLlVzZWRWZHAyTW9iaWxlIC5zcGVjcy1pbWFnZXMtZ3JvdXAgLmNlcnQtaGlnaGxpZ2h0ZWQtdmFsdWUgeyBiYWNrZ3JvdW5kLWNvbG9yOiMwMDA7IGJvcmRlcjoxcHggc29saWQgIzAwMDsgY29sb3I6I0ZGRjsgcGFkZGluZzoxMXB4IDIwcHggOXB4IDIwcHg7IGJvcmRlci1yYWRpdXM6M3B4OyBkaXNwbGF5OmlubGluZS1ibG9jazsgfSAuY29tcGFyZVRhYmxlSW1nIHsgaGVpZ2h0OjkwcHg7IG1hcmdpbjowIGF1dG87IGRpc3BsYXk6YmxvY2s7IH0gLmRlYWxlci1pbnNpZGUtY2FsbCBidXR0b257IGRpc3BsYXk6bm9uZSFpbXBvcnRhbnQ7IH0gLmJyb2NodXJlUG9zdGVyIHsgd2lkdGg6MTc1cHg7IG1hcmdpbjowIGF1dG87IGJvcmRlcjoxcHggc29saWQgI2FhYTsgYm9yZGVyLXJhZGl1czo0cHg7IG92ZXJmbG93OmhpZGRlbjsgfSAuYnJvY2h1cmVQb3N0ZXIgaW1neyB3aWR0aDoxMDAlOyBjdXJzb3I6cG9pbnRlcjsgfSAucGh5c2ljYWxBZGRyZXNzQm94eyBiYWNrZ3JvdW5kLWNvbG9yOiNGN0Y2Rjg7IHRleHQtYWxpZ246Y2VudGVyOyB9IC51dmRwLWxvY2F0ZWQtYXQtbXNneyBmb250LXNpemU6MXJlbSA7IGNvbG9yOiM3MDcwNzA7IGZvbnQtd2VpZ2h0OmxpZ2h0ZXI7IGRpc3BsYXk6YmxvY2s7IG1hcmdpbi10b3A6NXB4OyB9IC51dmRwLWxvY2F0ZWQtZGVhbGVyLW5hbWV7IGZvbnQtc2l6ZToxLjMxM3JlbSA7IGRpc3BsYXk6YmxvY2s7IG1hcmdpbi10b3A6NXB4OyBmb250LXdlaWdodDpib2xkOyB9IC51dmRwLWxvY2F0ZWQtYWRkcmVzc3sgZm9udC1zaXplOjAuNzVyZW0gOyBkaXNwbGF5OmJsb2NrOyBtYXJnaW46NXB4IDA7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgfSAudXZkcC1sb2NhdGVkLXdlYnNpdGUgeyBkaXNwbGF5OmJsb2NrOyBtYXJnaW4tdG9wOjVweDsgZm9udC1zaXplOnZhcigtLWZzLTEpOyBmb250LXdlaWdodDpib2xkOyB9IC5kcm9wZG93bi1jb250ZW50eyBkaXNwbGF5Om5vbmU7IHBvc2l0aW9uOmFic29sdXRlOyBiYWNrZ3JvdW5kLWNvbG9yOiNmOWY5Zjk7IHdpZHRoOjEwMCU7IGJveC1zaGFkb3c6MHB4IDhweCAxNnB4IDBweCByZ2JhKDAsMCwwLDAuMik7IHotaW5kZXg6MTsgYm94LXNpemluZzpib3JkZXItYm94OyBtYXJnaW46MTBweCAtMTBweDsgfSAuZHJvcGRvd24tY29udGVudCBheyBiYWNrZ3JvdW5kOnRyYW5zcGFyZW50OyBjb2xvcjojMDAwICFpbXBvcnRhbnQ7IGJvcmRlcjpub25lOyBmb250LXNpemU6MC44NzVyZW0gIWltcG9ydGFudDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgd2lkdGg6MTAwJTsgcGFkZGluZzo4cHg7IHRleHQtYWxpZ246bGVmdDsgZGlzcGxheTpmbGV4OyBhbGlnbi1pdGVtczpjZW50ZXI7IGxpbmUtaGVpZ2h0OjEuNXJlbTsgcGFkZGluZy1sZWZ0OjMwcHg7IH0gLnRlc3Rkcml2ZUljb257IGZvbnQtc2l6ZToxLjM3NXJlbSA7IG1hcmdpbi1yaWdodDoyMHB4OyB9IC5wcmljZURpdnsgZGlzcGxheTpmbGV4OyBhbGlnbi1pdGVtczpjZW50ZXI7IGp1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuOyBwYWRkaW5nOjAgMjBweCAwIDEwcHg7IGZsZXgtZmxvdzp3cmFwOyB9IC5wcmljZU1zZ0RpdnsgZm9udC1zaXplOjAuNzVyZW0gIWltcG9ydGFudDsgZGlzcGxheTpibG9jazsgd2lkdGg6NTAlOyB0ZXh0LWFsaWduOnJpZ2h0IWltcG9ydGFudDsgY29sb3I6IzZkNmQ2ZCAhaW1wb3J0YW50OyB9IC5wcmljZURpdlByaWNlLm11bHRpZmVlc3sgZm9udC1zaXplOjFyZW07IGNvbG9yOiM3MDcwNzA7IH0gLnByaWNlRGl2UHJpY2V7IGZvbnQtc2l6ZToxLjg3NXJlbSA7IGNvbG9yOmJsYWNrOyB9IC5oYXNBdmcgLnByaWNlRGl2UHJpY2V7IGZvbnQtc2l6ZToxLjU2M3JlbSA7IH0gLnByaWNlRGlzY2xhaW1lckRpdnsgZGlzcGxheTpmbGV4OyBhbGlnbi1pdGVtczpjZW50ZXI7IGp1c3RpZnktY29udGVudDplbmQ7IHdpZHRoOjEwMCU7IH0gI3ZkcF9wcmljZV9ibG9jayAucHJpY2VEaXNjbGFpbWVyRGl2eyBwYWRkaW5nOjAgMjBweCAwIDEwcHg7IHdpZHRoOnVuc2V0OyB9IC5wcmljZURpc2NsYWltZXJTcGFueyBmb250LXNpemU6MC43NXJlbSAhaW1wb3J0YW50OyBkaXNwbGF5OmJsb2NrOyB0ZXh0LWFsaWduOnJpZ2h0IWltcG9ydGFudDsgY29sb3I6IzZkNmQ2ZCAhaW1wb3J0YW50OyB9IC5wcmljZUJhcnsgYm9yZGVyLXRvcDoxcHggc29saWQgI2I4YjhiODsgbWFyZ2luOjAgMTBweCAwIDU1JTsgfSAuY2FySW5mb3NEaXZ7IGJhY2tncm91bmQtY29sb3I6d2hpdGU7IGJvcmRlci1ib3R0b206MXB4IHNvbGlkIGJsYWNrOyBwYWRkaW5nOjVweCAxJSAwcHggMSU7IH0gLmNhckluZm9QcmljZURpdnsgY29sb3I6Izc1NzU3NTsgZm9udC1zaXplOjAuNzVyZW0gOyBkaXNwbGF5OmlubGluZS1ibG9jazsgb3ZlcmZsb3c6aGlkZGVuOyB9IC5jYXJJbmZvUHJpY2VEaXYgaXsgbWFyZ2luLXJpZ2h0OjJweCB9IC5jYXJJbmZvS017IHRleHQtYWxpZ246bGVmdDsgd2lkdGg6MjglOyB9IC5jYXJJbmZvTWlkZGxleyB0ZXh0LWFsaWduOmNlbnRlcjsgd2lkdGg6MjclOyB9IC5jYXJJbmZvQ29sb3J7IHRleHQtYWxpZ246cmlnaHQ7IHdpZHRoOjQwJTsgfSAjdmRwdmlkZW97IG1heC13aWR0aDoxMDB2dzsgfSAjdmRwdmlkZW8gPiAqeyBtYXgtd2lkdGg6MTAwJTsgfSAuYmRjdHsgcGFkZGluZzowIDEwcHg7IG1hcmdpbjoyMHB4IDA7IGZsb2F0OmxlZnQ7IHdpZHRoOjEwMCU7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgZm9udC1zaXplOjAuODVyZW07IGNvbG9yOiM2NjY7IH0gLmJkY3QgSDN7IHBhZGRpbmc6MDsgbWFyZ2luOjAgMCA1cHggMDsgZm9udC1zaXplOjFyZW07IH0gLmJkY3QgPiBkaXZ7IHBhZGRpbmc6MTVweDsgYmFja2dyb3VuZC1jb2xvcjojZWVlOyBib3JkZXItcmFkaXVzOjdweDsgfSAucHJvbW8tYnRuIHsgcGFkZGluZzoxNXB4IDIwcHg7IG1hcmdpbjphdXRvOyBiYWNrZ3JvdW5kLWNvbG9yOndoaXRlOyBib3JkZXI6MXB4IHNvbGlkOyB0ZXh0LXRyYW5zZm9ybTp2YXIoLS1jZXJ0LXR4dC10cmFuc2Zvcm0sIHZhcigtLXR4dC11cHBlcikpOyBmb250LXdlaWdodDpib2xkOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgYm9yZGVyLWNvbG9yOiMxMDJiNGU7IGNvbG9yOiMxMDJiNGU7IGJhY2tncm91bmQtY29sb3I6I2YzZjNmMzsgYm9yZGVyLXJhZGl1czoyNXB4OyBmb250LXNpemU6MC45cmVtOyB9IC4tdGV4dC11cHBlcmNhc2UsIC4tdXBwZXJjYXNlLCAudGV4dC11cHBlcmNhc2UgeyB0ZXh0LXRyYW5zZm9ybTp2YXIoLS10eHQtdXBwZXIpOyB9ICNkYXJrdG9vbHRpcC1jYXJQcmljZUluaXRpYWxUb29sVGlwSWNvbnsgd2lkdGg6MjAwcHg7IH0KLyoqIC9jc3MvbmV3Y2Fycy5jc3MgKiovCi5kaXZDYXRlZ29yaWVzQm94V3JhcHBlciAuZGl2Q2F0ZWdvcnlCb3hXcmFwcGVyeyBtYXJnaW4tYm90dG9tOjQwcHg7IH0gLmRpdkNhdGVnb3JpZXNCb3hXcmFwcGVyIC5kaXZDYXRlZ29yeUJveFdyYXBwZXI6bGFzdC1jaGlsZHsgbWFyZ2luLWJvdHRvbTowOyB9IEgxLmRlZmF1bHQuaXNTaW5nbGVUaXRsZS5pc0JvdHRvbUJvcmRlcmVkLCAuZGl2Q2F0ZWdvcmllc0JveFdyYXBwZXIgLmRpdkNhdGVnb3J5Qm94V3JhcHBlciBIMnsgYm9yZGVyOjA7IH0gLmRpdkNhdGVnb3JpZXNCb3hXcmFwcGVyIC5kaXZDYXRlZ29yeUJveFdyYXBwZXIgLmRpdkNhcnNCb3hXcmFwcGVyIHsgZGlzcGxheTpmbGV4OyBmbGV4LWZsb3c6cm93IHdyYXA7IH0gLmRpdkNhdGVnb3JpZXNCb3hXcmFwcGVyIC5kaXZDYXRlZ29yeUJveFdyYXBwZXIgLmRpdkNhclNpbmdsZU91dGVyQm94eyBwb3NpdGlvbjpyZWxhdGl2ZTsgZmxvYXQ6bGVmdDsgYmFja2dyb3VuZC1jb2xvcjojZmZmOyBib3JkZXItcmFkaXVzOjdweDsgbWFyZ2luOjAgMCAyMHB4IDA7IHBhZGRpbmc6MTBweDsgYm9yZGVyOjFweCAjYWFhIHNvbGlkOyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IHdpZHRoOjEwMCU7IG92ZXJmbG93OmhpZGRlbjsgfSAuZGl2Q2F0ZWdvcmllc0JveFdyYXBwZXIgLmRpdkNhdGVnb3J5Qm94V3JhcHBlciAuZGl2Q2FyU2luZ2xlT3V0ZXJCb3guZGl2TWFrZUxvZ29Pbmx5eyBoZWlnaHQ6MTU2cHg7IHdpZHRoOmF1dG87IG1hcmdpbi10b3A6MjBweDsgcGFkZGluZzoyMHB4OyBib3JkZXItY29sb3I6I2VlZTsgdGV4dC1hbGlnbjpjZW50ZXI7IH0gLmRpdkNhdGVnb3JpZXNCb3hXcmFwcGVyIC5kaXZDYXRlZ29yeUJveFdyYXBwZXIgLmRpdkNhclNpbmdsZU91dGVyQm94LmRpdk1ha2VMb2dvT25seSBJTUcgeyBoZWlnaHQ6MTAwJTsgd2lkdGg6YXV0bzsgfSAuZGl2Q2F0ZWdvcmllc0JveFdyYXBwZXIgLmRpdkNhdGVnb3J5Qm94V3JhcHBlciAuZGl2Q2FyU2luZ2xlT3V0ZXJCb3g6YWN0aXZlIHsgYm9yZGVyLWNvbG9yOiM2NjY7IH0gLmRpdkNhdGVnb3JpZXNCb3hXcmFwcGVyIC5kaXZDYXRlZ29yeUJveFdyYXBwZXIgLmRpdkNhclNpbmdsZU91dGVyQm94IC5kaXZDYXJTaW5nbGVJbm5lckJveHsgbWFyZ2luOjA7IHdpZHRoOjEwMCU7IGhlaWdodDoxMDAlOyBmbG9hdDpsZWZ0OyBvcGFjaXR5OjE7IG92ZXJmbG93OmhpZGRlbjsgcG9zaXRpb246cmVsYXRpdmU7IH0gLmRpdkNhdGVnb3JpZXNCb3hXcmFwcGVyIC5kaXZDYXRlZ29yeUJveFdyYXBwZXIgLmRpdkNhclNpbmdsZU91dGVyQm94IC5kaXZDYXJTaW5nbGVJbm5lckJveCAuZGl2Q2FyVGl0bGVDb250YWluZXJ7IGNsZWFyOmJvdGg7IHdpZHRoOjc1JTsgfSAuZGl2Q2F0ZWdvcmllc0JveFdyYXBwZXIgLmRpdkNhdGVnb3J5Qm94V3JhcHBlciAuZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggLmRpdkNhclNpbmdsZUlubmVyQm94IC5kaXZDYXJUaXRsZUNvbnRhaW5lciBBeyB0ZXh0LWRlY29yYXRpb246bm9uZTsgZGlzcGxheTpibG9jazsgfSAuZGl2Q2F0ZWdvcmllc0JveFdyYXBwZXIgLmRpdkNhdGVnb3J5Qm94V3JhcHBlciAuZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggLmRpdkNhclNpbmdsZUlubmVyQm94IC5kaXZDYXJUaXRsZUNvbnRhaW5lciBzcGFuLnNwYW5DYXJNYWtleyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc2l6ZToxLjByZW07IGxpbmUtaGVpZ2h0OjEuMnJlbTsgd2lkdGg6YXV0bzsgaGVpZ2h0OmF1dG87IGNvbG9yOiMwMDAwMDA7IH0gLmRpdkNhdGVnb3JpZXNCb3hXcmFwcGVyIC5kaXZDYXRlZ29yeUJveFdyYXBwZXIgLmRpdkNhclNpbmdsZU91dGVyQm94IC5kaXZDYXJTaW5nbGVJbm5lckJveCAuZGl2Q2FyVGl0bGVDb250YWluZXIgc3Bhbi5zcGFuTW9kZWxOYW1leyBmb250LXdlaWdodDpib2xkOyBsaW5lLWhlaWdodDoxLjRyZW07IGZvbnQtc2l6ZToxLjRyZW07IHdpZHRoOmF1dG87IGhlaWdodDphdXRvOyBjb2xvcjojMDAwMDAwOyB9IC5kaXZDYXRlZ29yaWVzQm94V3JhcHBlciAuZGl2Q2F0ZWdvcnlCb3hXcmFwcGVyIC5kaXZDYXJTaW5nbGVPdXRlckJveCAuZGl2Q2FyU2luZ2xlSW5uZXJCb3ggLmRpdkNhclRpdGxlQ29udGFpbmVyIC5kaXZOZXdDYXJTdGFydFByaWNlLCAuZGl2Q2F0ZWdvcmllc0JveFdyYXBwZXIgLmRpdkNhdGVnb3J5Qm94V3JhcHBlciAuZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggLmRpdkNhclNpbmdsZUlubmVyQm94IC5kaXZDYXJUaXRsZUNvbnRhaW5lciAuZGl2TmV3Q2FyUHJvbW9QcmljZXsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXNpemU6MXJlbTsgd2lkdGg6YXV0bzsgaGVpZ2h0OmF1dG87IGxpbmUtaGVpZ2h0Om5vcm1hbDsgfSAuZGl2Q2F0ZWdvcmllc0JveFdyYXBwZXIgLmRpdkNhdGVnb3J5Qm94V3JhcHBlciAuZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggLmRpdkNhclNpbmdsZUlubmVyQm94IC5kaXZDYXJJbWFnZUNvbnRhaW5lcnsgcG9zaXRpb246cmVsYXRpdmU7IHdpZHRoOjEwMCU7IG1hcmdpbi10b3A6MHB4OyBtYXJnaW4tYm90dG9tOi0xMHB4OyBtaW4taGVpZ2h0OjI1MHB4OyB9IC5kaXZDYXRlZ29yaWVzQm94V3JhcHBlciAuZGl2Q2F0ZWdvcnlCb3hXcmFwcGVyIC5kaXZDYXJTaW5nbGVPdXRlckJveCAuZGl2Q2FyU2luZ2xlSW5uZXJCb3ggLmRpdkNhckltYWdlQ29udGFpbmVyIEF7IGZsb2F0OmxlZnQ7IGNsZWFyOmJvdGg7IHdpZHRoOjEwMCU7IH0gLmRpdkNhdGVnb3JpZXNCb3hXcmFwcGVyIC5kaXZDYXRlZ29yeUJveFdyYXBwZXIgLmRpdkNhclNpbmdsZU91dGVyQm94IC5kaXZDYXJTaW5nbGVJbm5lckJveCAuZGl2Q2FySW1hZ2VDb250YWluZXIgSU1HeyB3aWR0aDoxMDAlOyBoZWlnaHQ6YXV0bzsgfSBkaXYuZGl2Q2FyRm9vdGVyQ29udGFpbmVyeyBwb3NpdGlvbjpyZWxhdGl2ZTsgYm90dG9tOjBweDsgbGVmdDowOyByaWdodDowOyB3aWR0aDoxMDAlOyB9IGRpdi5jYXJQYXltZW50V3JhcHBlcnsgaGVpZ2h0OjZyZW07IH0gLnJlYmF0ZVRhZ3sgcGFkZGluZzo1cHg7IHRleHQtYWxpZ246Y2VudGVyOyBwb3NpdGlvbjphYnNvbHV0ZTsgdG9wOjEwcHg7IHJpZ2h0OjEwcHg7IGJhY2tncm91bmQ6IzAyNzZiMyFpbXBvcnRhbnQ7IGNvbG9yOiNmZmZmZmYhaW1wb3J0YW50OyB0ZXh0LXNoYWRvdzpub25lIWltcG9ydGFudDsgYm9yZGVyLXJhZGl1czo1cHg7IH0gLnJlYmF0ZVRhZyBzcGFuLnJlYmF0ZVRleHR7IGZvbnQtc2l6ZTowLjhyZW07IGxpbmUtaGVpZ2h0OjFyZW07IH0gLnJlYmF0ZVRhZyBzcGFuLnJlYmF0ZUFtb3VudHsgZGlzcGxheTpibG9jazsgZm9udC13ZWlnaHQ6NzAwOyBmb250LXNpemU6MXJlbTsgbGluZS1oZWlnaHQ6MS4ycmVtOyB9IC5kaXZDYXRlZ29yaWVzQm94V3JhcHBlciAuZGl2Q2F0ZWdvcnlCb3hXcmFwcGVyIC5kaXZDYXJTaW5nbGVPdXRlckJveCAuZGl2Q2FyU2luZ2xlSW5uZXJCb3ggLmRpdkNhclBheW1lbnRDb250YWluZXJ7IHBvc2l0aW9uOnJlbGF0aXZlOyB0ZXh0LWFsaWduOmNlbnRlcjsgYmFja2dyb3VuZC1jb2xvcjojZjNmM2YzOyB3aWR0aDoxMDAlOyBib3JkZXItcmFkaXVzOjAgMCA3cHggN3B4OyBwYWRkaW5nOjEwcHggNXB4OyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IH0gLmRpdkNhdGVnb3JpZXNCb3hXcmFwcGVyIC5kaXZDYXRlZ29yeUJveFdyYXBwZXIgLmRpdkNhclNpbmdsZU91dGVyQm94IC5kaXZDYXJTaW5nbGVJbm5lckJveCAuZGl2Q2FyUGF5bWVudENvbnRhaW5lciBheyB0ZXh0LWRlY29yYXRpb246bm9uZTsgcG9zaXRpb246cmVsYXRpdmU7IH0gLmRpdkNhdGVnb3JpZXNCb3hXcmFwcGVyIC5kaXZDYXRlZ29yeUJveFdyYXBwZXIgLmRpdkNhclNpbmdsZU91dGVyQm94IC5kaXZDYXJTaW5nbGVJbm5lckJveCAuZGl2Q2FyUGF5bWVudENvbnRhaW5lciAucGF5bWVudExpbmUyeyBmb250LXNpemU6MS4zcmVtOyBjb2xvcjpibGFjazsgfSAuZGl2Q2F0ZWdvcmllc0JveFdyYXBwZXIgLmRpdkNhdGVnb3J5Qm94V3JhcHBlciAuZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggLmRpdkNhclNpbmdsZUlubmVyQm94IC5kaXZDYXJQYXltZW50Q29udGFpbmVyIC5wYXltZW50TGluZTIgc3BhbnsgY29sb3I6IzAyNzZiMzsgZm9udC13ZWlnaHQ6Ym9sZDsgfSAuZGl2Q2F0ZWdvcmllc0JveFdyYXBwZXIgLmRpdkNhdGVnb3J5Qm94V3JhcHBlciAuZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggLmRpdkNhclNpbmdsZUlubmVyQm94IC5kaXZDYXJQYXltZW50Q29udGFpbmVyIC5wYXltZW50TGluZTN7IGZvbnQtc2l6ZTowLjlyZW07IGxpbmUtaGVpZ2h0OjFyZW07IGNvbG9yOmdyZXk7IH0gLmRpdkNhdGVnb3JpZXNCb3hXcmFwcGVyIC5kaXZDYXRlZ29yeUJveFdyYXBwZXIgLmRpdkNhclNpbmdsZU91dGVyQm94IC5kaXZDYXJTaW5nbGVJbm5lckJveCAuZGl2Q2FyUGF5bWVudENvbnRhaW5lciAucGF5bWVudExpbmUxeyBmb250LXNpemU6MC45cmVtOyBsaW5lLWhlaWdodDoxcmVtOyBjb2xvcjpncmV5OyB9IGRpdi5kaXZDYXRlZ29yaWVzQm94V3JhcHBlciBkaXYuZGl2Q2F0ZWdvcnlCb3hXcmFwcGVyIGRpdi5kaXZDYXJTaW5nbGVPdXRlckJveCBkaXYuZGl2Q2FyU2luZ2xlSW5uZXJCb3ggZGl2LmRpdkNhckNvbnRhY3RDVEFDb250YWluZXJ7IGJhY2tncm91bmQtY29sb3I6I2ZmZjsgfSBkaXYuZGl2Q2F0ZWdvcmllc0JveFdyYXBwZXIgZGl2LmRpdkNhdGVnb3J5Qm94V3JhcHBlciBkaXYuZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggZGl2LmRpdkNhclNpbmdsZUlubmVyQm94IGRpdi5kaXZDYXJQYXltZW50Q29udGFpbmVyV2l0aENUQXsgfSAuZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggLmRpdkNhclBheW1lbnRDb250YWluZXJUb29sdGlweyBkaXNwbGF5OmlubGluZS10YWJsZTsgcGFkZGluZzowIDEwcHg7IGN1cnNvcjpwb2ludGVyOyB9IC5kaXZDYXRlZ29yeUJveFdyYXBwZXIgLmRpdkNhclNpbmdsZU91dGVyQm94IC5kaXZDYXJQYXltZW50Q2FsY3VsYXRvciB7IHBvc2l0aW9uOmFic29sdXRlOyBsZWZ0OjEwJTsgfSAuZGl2Q2F0ZWdvcnlCb3hXcmFwcGVyIC5kaXZDYXJTaW5nbGVPdXRlckJveCAucGF5bWVudEluZm9CdWJibGUgeyBwb3NpdGlvbjphYnNvbHV0ZTsgcmlnaHQ6MTAlOyBkaXNwbGF5OmlubGluZS1ibG9jazsgZm9udC1zaXplOjEuNTYzcmVtIDsgdG9wOjMwJTsgY29sb3I6IzAwMDsgfSAuTmV3U3JwMk1vYmlsZSBIMS5kZWZhdWx0eyBmb250LXNpemU6MS43cmVtOyBsaW5lLWhlaWdodDoxLjdyZW07IGNvbG9yOiMwMDAwMDA7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgY2xlYXI6Ym90aDsgcGFkZGluZzowIDAgMTBweCAwOyB3aWR0aDoxMDAlOyBtYXJnaW4tYm90dG9tOjEwcHg7IGJvcmRlci1ib3R0b206MXB4IHNvbGlkICNkZGQ7IH0gLk5ld1NycDJNb2JpbGUgSDEuZGVmYXVsdCBBeyB0ZXh0LWRlY29yYXRpb246bm9uZTsgfSAuTmV3U3JwMk1vYmlsZSBIMS5kZWZhdWx0IEkuaWNvbiB7IGJvcmRlci1yYWRpdXM6MzJweDsgd2lkdGg6MzJweDsgaGVpZ2h0OjMycHg7IHBhZGRpbmctdG9wOjA7IHBhZGRpbmctbGVmdDoxMHB4OyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MS4xMjVyZW0gOyBtYXJnaW4tcmlnaHQ6NXB4OyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IGxpbmUtaGVpZ2h0OjMwcHg7IGJvcmRlcjoxcHggc29saWQgIzEwMmI0ZTsgY29sb3I6IzEwMmI0ZTsgYmFja2dyb3VuZC1jb2xvcjojZjNmM2YzOyB9IC5OZXdTcnAyTW9iaWxlIEgxLmRlZmF1bHQgSS5pY29uLm11bHRpTGluZUgxeyBtYXJnaW4tdG9wOjBweDsgfSAuTmV3U3JwMk1vYmlsZSBIMS5kZWZhdWx0IEkuaWNvbi5zaW5nbGVMaW5lSDF7IG1hcmdpbi10b3A6MHB4OyB9IC5OZXdTcnAyTW9iaWxlIEgxLmRlZmF1bHQgPiBESVZ7IGRpc3BsYXk6dGFibGUtcm93OyB9IC5OZXdTcnAyTW9iaWxlIEgxLmRlZmF1bHQgPiBESVYgRElWOm50aC1jaGlsZCgxKXsgZm9udC13ZWlnaHQ6Ym9sZDsgfSAuTmV3U3JwMk1vYmlsZSBIMS5kZWZhdWx0ID4gRElWIERJVjpudGgtY2hpbGQoMil7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgY29sb3I6Izc1NzU3NTsgZm9udC1zaXplOjEuMXJlbTsgbGluZS1oZWlnaHQ6MS4ycmVtOyB9IC5OZXdTcnAyTW9iaWxlIEgxLmRlZmF1bHQgPiBESVYgRElWOm50aC1jaGlsZCgzKXsgZm9udC1zaXplOjAuOHJlbTsgY29sb3I6I2JiYjsgcGFkZGluZy10b3A6NXB4OyB9IC5OZXdTcnAyTW9iaWxlIEgyLmRlZmF1bHR7IGZvbnQtc2l6ZToxLjRyZW07IGxpbmUtaGVpZ2h0OjEuNHJlbTsgY29sb3I6IzAwMDAwMDsgZm9udC13ZWlnaHQ6bm9ybWFsOyBjbGVhcjpib3RoOyBwYWRkaW5nOjIwcHggMDsgbWFyZ2luOjA7IH0gLk5ld1NycDJNb2JpbGUgSDIuZGVmYXVsdCBJLmljb24geyBib3JkZXItcmFkaXVzOjI4cHg7IHdpZHRoOjI4cHg7IGhlaWdodDoyOHB4OyBwYWRkaW5nLXRvcDowOyBwYWRkaW5nLWxlZnQ6OXB4OyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MXJlbSA7IGxpbmUtaGVpZ2h0OjI2cHg7IG1hcmdpbi1yaWdodDo1cHg7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgYm9yZGVyOjFweCBzb2xpZCAjMTAyYjRlOyBjb2xvcjojMTAyYjRlOyBiYWNrZ3JvdW5kLWNvbG9yOiNmM2YzZjM7IH0gLk5ld1NycDJNb2JpbGUgSDIuZGVmYXVsdCBJLmljb24ubXVsdGlMaW5lSDJ7IG1hcmdpbi10b3A6MHB4OyB9IC5OZXdTcnAyTW9iaWxlIEgyLmRlZmF1bHQgSS5pY29uLnNpbmdsZUxpbmVIMnsgbWFyZ2luLXRvcDowcHg7IH0gLk5ld1NycDJNb2JpbGUgSDIuZGVmYXVsdCA+IERJVnsgZGlzcGxheTp0YWJsZS1yb3c7IH0gLk5ld1NycDJNb2JpbGUgSDIuZGVmYXVsdCA+IERJViBESVY6bnRoLWNoaWxkKDEpeyBmb250LXdlaWdodDpib2xkOyB9IC5OZXdTcnAyTW9iaWxlIEgyLmRlZmF1bHQgPiBESVYgRElWOm50aC1jaGlsZCgyKXsgZm9udC13ZWlnaHQ6bm9ybWFsOyBjb2xvcjojNzU3NTc1OyBmb250LXNpemU6MXJlbTsgbGluZS1oZWlnaHQ6MXJlbTsgfSAuTmV3U3JwMi5OZXdTcnAyTW9iaWxlIGRpdi5NYWluQm94TGF5ZXIgZGl2Lk91dGVyQm94TGF5ZXIgeyBwYWRkaW5nOjEwcHg7IGZsb2F0OmxlZnQ7IHdpZHRoOjEwMCU7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgfSAuY2FyX3RleHQgYSB7dGV4dC1kZWNvcmF0aW9uOm5vbmU7IGNvbG9yOiMwMDAwMDA7IGxpbmUtaGVpZ2h0OjEuMTt9IC5jYXJfdGV4dCBhOmhvdmVyIHsgdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTsgY29sb3I6IzAwMDAwMH0gLmRpdkNhdGVnb3JpZXNCb3hXcmFwcGVyIC5kaXZDYXRlZ29yeUJveFdyYXBwZXIgLmRpdkNhclNpbmdsZU91dGVyQm94IC5kaXZDYXJTaW5nbGVJbm5lckJveCAuZGl2Q2FyVGl0bGVDb250YWluZXIgLmRpdkNhckluU3RvY2tMaW5reyBiYWNrZ3JvdW5kLWNvbG9yOiNlZmVmZWY7IHBhZGRpbmc6M3B4IDhweDsgYm9yZGVyLXJhZGl1czozcHg7IHdpZHRoOmZpdC1jb250ZW50OyBjb2xvcjojMDAwOyBtYXJnaW4tdG9wOjEwcHg7IHBvc2l0aW9uOnJlbGF0aXZlOyB6LWluZGV4OjM7IH0gLmRpdkNhdGVnb3JpZXNCb3hXcmFwcGVyIC5kaXZDYXRlZ29yeUJveFdyYXBwZXIgLmRpdkNhclNpbmdsZU91dGVyQm94IC5kaXZDYXJTaW5nbGVJbm5lckJveCAuZGl2Q2FyVGl0bGVDb250YWluZXIgLmRpdkNhckluU3RvY2tMaW5rIGF7IGNvbG9yOiMwMDA7IH0gLmRpdkRpc2NsYWltZXJCbG9ja3sgYmFja2dyb3VuZC1jb2xvcjojZjVmNWY1OyBib3JkZXItcmFkaXVzOjNweDsgfSAuZGl2RGlzY2xhaW1lckJsb2NrQ29udGVudHsgcGFkZGluZzoxNXB4IDA7IH0gLmRpdkRpc2NsYWltZXJCbG9ja1RpdGxleyBoZWlnaHQ6YXV0bzsgZGlzcGxheTpibG9jazsgZm9udC13ZWlnaHQ6Ym9sZDsgcGFkZGluZzowIDQwcHggMTBweDsgYmFja2dyb3VuZDpub25lOyBtYXJnaW46MDsgfSAuZGl2RGlzY2xhaW1lckJsb2NrVGV4dHsgcGFkZGluZzowIDQwcHg7IGJhY2tncm91bmQ6bm9uZTsgbWFyZ2luOjA7IH0gLmRpdkZpbHRlck91dGVyQm94IC5kaXZGaWx0ZXJUaXRsZXsgZm9udC13ZWlnaHQ6Ym9sZDsgcGFkZGluZy1ib3R0b206MTBweDsgcGFkZGluZy10b3A6MjBweDsgZm9udC1zaXplOjFyZW0gOyB9IC5kaXZGaWx0ZXJPdXRlckJveCB1bCBsaSAuZmlsdGVyQ2hlY2ssIC5kaXZGaWx0ZXJPdXRlckJveCB1bCBsaSAucmFkaW9Tb3J0eyBwb3NpdGlvbjphYnNvbHV0ZTsgb3BhY2l0eTowOyB3aWR0aDoxcHg7IGhlaWdodDoxcHg7IG92ZXJmbG93OmhpZGRlbjsgY2xpcDpyZWN0KDAgMCAwIDApOyB9IC5kaXZGaWx0ZXJPdXRlckJveCB1bCBsaSAuZmlsdGVyQ2hlY2srLmZpbHRlclNwYW4sIC5kaXZGaWx0ZXJPdXRlckJveCB1bCBsaSAucmFkaW9Tb3J0Ky5maWx0ZXJTcGFueyBiYWNrZ3JvdW5kLWNvbG9yOiNGNkY2RjY7IGNvbG9yOiMzMzMzMzM7IH0gLmRpdkZpbHRlck91dGVyQm94IHVsIGxpIC5maWx0ZXJDaGVjazpjaGVja2VkKy5maWx0ZXJTcGFuLCAuZGl2RmlsdGVyT3V0ZXJCb3ggdWwgbGkgLnJhZGlvU29ydDpjaGVja2VkKy5maWx0ZXJTcGFueyBiYWNrZ3JvdW5kLWNvbG9yOiM2NjY2NjY7IGNvbG9yOiNGRkY7IH0gLmRpdkZpbHRlck91dGVyQm94IHVsIHsgZGlzcGxheTpmbGV4OyBmbGV4LXdyYXA6d3JhcDsgY29sdW1uLWdhcDoxMHB4OyByb3ctZ2FwOjVweDsgcGFkZGluZzowOyBtYXJnaW46MDsgYWxpZ24taXRlbXM6c3RyZXRjaDsgfSAuZGl2RmlsdGVyT3V0ZXJCb3ggdWwgbGl7IGZsZXg6MCAwIGNhbGMoNTAlIC0gNXB4KTsgYm94LXNpemluZzpib3JkZXItYm94OyB9IC5kaXZGaWx0ZXJPdXRlckJveCB1bCBsaSAuZmlsdGVyU3BhbnsgZGlzcGxheTpmbGV4OyBwYWRkaW5nOjdweCAyMHB4OyBib3JkZXI6bm9uZTsgYm9yZGVyLXJhZGl1czo1cHg7IGN1cnNvcjpwb2ludGVyOyB0ZXh0LWFsaWduOmNlbnRlcjsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IHRyYW5zaXRpb246YmFja2dyb3VuZC1jb2xvciAwLjNzIGVhc2U7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgbWFyZ2luLXRvcDo1cHg7IHdpZHRoOjEwMCU7IGhlaWdodDoxMDAlOyBhbGlnbi1pdGVtczpjZW50ZXI7IGp1c3RpZnktY29udGVudDpjZW50ZXI7IH0gLk1haW5Cb3hMYXllciAuZmlsdGVyVG9nZ2xlV3JhcHBlciAuZmlsdGVyVG9nZ2xlQnRuIHsgZGlzcGxheTppbmxpbmUtYmxvY2s7IHBhZGRpbmc6MTBweCAyMHB4OyBiYWNrZ3JvdW5kLWNvbG9yOiMwMjc2YjM7IGNvbG9yOiNmZmZmZmY7IGJvcmRlcjpub25lOyBib3JkZXItcmFkaXVzOjVweDsgY3Vyc29yOnBvaW50ZXI7IHRleHQtYWxpZ246Y2VudGVyOyBmb250LXNpemU6MXJlbSA7IHRyYW5zaXRpb246YmFja2dyb3VuZC1jb2xvciAwLjNzIGVhc2U7IHdpZHRoOjEwMCU7IHRleHQtZGVjb3JhdGlvbjpub25lIWltcG9ydGFudDsgfSAuTWFpbkJveExheWVyIC5zZWxlY3RUb2dnbGVXcmFwcGVyeyBkaXNwbGF5OmZsZXg7IGZsZXgtd3JhcDp3cmFwOyBjb2x1bW4tZ2FwOjEwcHg7IHJvdy1nYXA6NXB4OyBwYWRkaW5nOjA7IG1hcmdpbjowOyBhbGlnbi1pdGVtczpzdHJldGNoOyB9IC5NYWluQm94TGF5ZXIgLnNlbGVjdFRvZ2dsZVdyYXBwZXIgLnNlbGVjdEFsbFRvZ2dsZUJ0biwgLk1haW5Cb3hMYXllciAuc2VsZWN0VG9nZ2xlV3JhcHBlciAudW5zZWxlY3RBbGxUb2dnbGVCdG4geyBkaXNwbGF5OmlubGluZS1ibG9jazsgcGFkZGluZzoxMHB4IDNweDsgYmFja2dyb3VuZC1jb2xvcjojMDI3NmIzOyBjb2xvcjojZmZmZmZmOyBib3JkZXI6bm9uZTsgYm9yZGVyLXJhZGl1czo1cHg7IGN1cnNvcjpwb2ludGVyOyB0ZXh0LWFsaWduOmNlbnRlcjsgZm9udC1zaXplOjFyZW0gOyB0cmFuc2l0aW9uOmJhY2tncm91bmQtY29sb3IgMC4zcyBlYXNlOyB0ZXh0LWRlY29yYXRpb246bm9uZSFpbXBvcnRhbnQ7IGZsZXg6MCAwIGNhbGMoNTAlIC0gNXB4KTsgYm94LXNpemluZzpib3JkZXItYm94OyB9IC5kaXZGaWx0ZXJPdXRlckJveCBkaXYuZGl2UHJpY2VSYW5nZVNsaWRlciB7IG1hcmdpbjowcHggMCA0MHB4IDAhaW1wb3J0YW50OyB9IC5kaXZQcmljZVJhbmdlU2xpZGVyID4gLmRpdlNwYW4uZGl2U3BhbjEyOm5vdCguZGl2RmlsdGVyVGl0bGUpIHsgZGlzcGxheTpmbGV4OyBhbGlnbi1pdGVtczpjZW50ZXI7IGp1c3RpZnktY29udGVudDpjZW50ZXI7IH0gLmRpdlByaWNlUmFuZ2VTbGlkZXIgLnJhbmdlLXNsaWRlci1sZWZ0LCAuZGl2UHJpY2VSYW5nZVNsaWRlciAucmFuZ2Utc2xpZGVyLXJpZ2h0IHsgd2lkdGg6YXV0bzsgbWluLXdpZHRoOjQwcHg7IHRleHQtYWxpZ246Y2VudGVyOyB9IC5kaXZQcmljZVJhbmdlU2xpZGVyIC5yYW5nZS1zbGlkZXIudWktc2xpZGVyIHsgZmxleDoxIDEgYXV0bzsgbWF4LXdpZHRoOjUwMHB4OyB9IC5NYWluQm94TGF5ZXIgLnNpZGVTaWRlYmFyIHsgcG9zaXRpb246Zml4ZWQ7IHRvcDowOyBsZWZ0OjA7IHdpZHRoOjMwMHB4OyBoZWlnaHQ6MTAwJTsgYmFja2dyb3VuZC1jb2xvcjojZmZmOyBib3gtc2hhZG93Oi0ycHggMCA4cHggcmdiYSgwLDAsMCwwLjMpOyBwYWRkaW5nOjAgMjBweCAyMHB4IDIwcHg7IHotaW5kZXg6MTAwMDsgb3ZlcmZsb3cteTphdXRvOyBvdmVyZmxvdy14OmhpZGRlbjsgbWF4LXdpZHRoOjEwMCU7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgdHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTEwMCUpOyB0cmFuc2l0aW9uOnRyYW5zZm9ybSAwLjNzIGVhc2U7IH0gLk1haW5Cb3hMYXllciAuc2lkZVNpZGViYXIub3BlbiB7IHRyYW5zZm9ybTp0cmFuc2xhdGVYKDApOyBkaXNwbGF5OmJsb2NrOyB9IC5NYWluQm94TGF5ZXIgLmNsb3NlQnRuIHsgcG9zaXRpb246YWJzb2x1dGU7IHRvcDoxMHB4OyByaWdodDotMTBweDsgZm9udC1zaXplOjEuNXJlbSA7IGJhY2tncm91bmQ6bm9uZTsgYm9yZGVyOm5vbmU7IGN1cnNvcjpwb2ludGVyOyB6LWluZGV4OjExOyB9IC5NYWluQm94TGF5ZXIgLnNpZGVTaWRlYmFyIC5kaXZGaWx0ZXJCb3hUaXRsZXsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zaXplOjEuMTI1cmVtIDsgcG9zaXRpb246c3RpY2t5OyB0b3A6MDsgYmFja2dyb3VuZC1jb2xvcjojZmZmOyB6LWluZGV4OjEwOyBwYWRkaW5nOjEwcHggMCAwIDA7IH0gLk1haW5Cb3hMYXllciAuc2lkZVNpZGViYXIgLnNpZGViYXJIZWFkZXIgeyBwb3NpdGlvbjpzdGlja3k7IHRvcDowOyBiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7IHotaW5kZXg6MTAwOyBwYWRkaW5nOjEwcHggMCAwIDA7IGRpc3BsYXk6ZmxleDsganVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47IGFsaWduLWl0ZW1zOmNlbnRlcjsgfQovKiogL2Nzcy9yZWQuY3NzICoqLwoubWVudSB1bCBsaSBhLCAubWVudSB1bCBsaSBhOmhvdmVyeyAtd2Via2l0LWJvcmRlci1yYWRpdXM6NHB4OyAtbW96LWJvcmRlci1yYWRpdXM6NHB4OyBib3JkZXItcmFkaXVzOjRweDsgY29sb3I6I2ZmZmZmZjsgZmlsbDojZmZmZmZmOyB0ZXh0LWFsaWduOmxlZnQ7IHRleHQtZGVjb3JhdGlvbjpub25lOyBkaXNwbGF5OmJsb2NrOyBmb250LXNpemU6MS4xZW07IGZvbnQtd2VpZ2h0OmJvbGQ7IHBhZGRpbmc6NXB4IDAgNXB4IDdweDsgYmFja2dyb3VuZDojMTAyYjRlOyB9IC50b3BuYXYgLm1lbnUgdWwgbGkgYXsgYmFja2dyb3VuZDojZmZmZmZmOyBjb2xvcjojMTAyYjRlOyBmaWxsOiMxMDJiNGU7IH0gLm1lbnUgdWwgbGkgYTpob3ZlcnsgYm9yZGVyLXJhZGl1czozcHggM3B4IDBweCAwcHg7IH0gLm1lbnUgLnByb21vIHsgbWFyZ2luOmluaXRpYWw7IG1pbi1oZWlnaHQ6YXV0bzsgfSAubWVudS5idXJnZXItYnRuLWNvbnRhaW5lciB1bCBsaSBhLCAubWVudS5idXJnZXItYnRuLWNvbnRhaW5lciB1bCBsaSBhOmhvdmVyeyBib3JkZXItcmFkaXVzOjA7IH0gLm1vYmlsZUJ1dHRvbnsgY29sb3I6cmdiKDE2LDQzLDc4KSAhaW1wb3J0YW50OyBiYWNrZ3JvdW5kOnJnYigyNDMsMjQzLDI0MykhaW1wb3J0YW50OyB9IC5tZW51IHVsIGxpIGEuYmxhY2sge2JhY2tncm91bmQ6IzIyMjt9IC5oLWJ1dHRvbnMgdWwgbGkgYS5ibGFjayB7YmFja2dyb3VuZDojMDAwO2NvbG9yOiNGRkZGRkZ9IC5oLWJ1dHRvbnMge30gLmgtYnV0dG9ucyB1bCBsaSB7ZmxvYXQ6bGVmdDsgbGlzdC1zdHlsZTpub25lOyBsaXN0LXN0eWxlLXR5cGU6bm9uZTsgbWFyZ2luOjAgMCAxMHB4IDBweDtkaXNwbGF5OmJsb2NrOyB0ZXh0LWFsaWduOmNlbnRlcjt9IC5oLWJ1dHRvbnMgdWwgbGkgYSB7IGJhY2tncm91bmQtY29sb3I6cmdiKDI0MywyNDMsMjQzKTsgY29sb3I6I2ZmZjsgZm9udC13ZWlnaHQ6Ym9sZDsgZGlzcGxheTpibG9jazsgcGFkZGluZzo1cHg7IC13ZWJraXQtYm9yZGVyLXJhZGl1czo2cHg7IC1tb3otYm9yZGVyLXJhZGl1czo2cHg7IGJvcmRlci1yYWRpdXM6NnB4OyBtaW4td2lkdGg6OTVweDsgfSAuZGVhbGVycGhvbmUgdWwgbGkgYSB7IC13ZWJraXQtYm9yZGVyLXJhZGl1czo0cHg7IC1tb3otYm9yZGVyLXJhZGl1czo0cHg7IGJvcmRlci1yYWRpdXM6NHB4OyBjb2xvcjojZmZmOyB0ZXh0LWFsaWduOmxlZnQ7IHRleHQtZGVjb3JhdGlvbjpub25lOyBkaXNwbGF5OmJsb2NrOyBmb250LXNpemU6MS4xZW07IGZvbnQtd2VpZ2h0OmJvbGQ7IHBhZGRpbmc6MTBweDsgYmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0OyBiYWNrZ3JvdW5kLXNpemU6MjVweDsgYmFja2dyb3VuZC1wb3NpdGlvbjo5OCUgNnB4OyBiYWNrZ3JvdW5kLWNvbG9yOiNkMDA7IGJhY2tncm91bmQtaW1hZ2U6dXJsKC9pbWFnZXMvYXJyb3cucG5nKTsgfSAubWVudSBsaS5pbnZlcnNlLWNvbG9yID4gYSB7IGNvbG9yOiNmZmZmZmY7IGJhY2tncm91bmQtY29sb3I6IzEwMmI0ZTsgYm9yZGVyOjFweCBzb2xpZDsgfSAjY2hhdC13aWRnZXQtY29udGFpbmVyLCAjbGl2ZV9jaGF0X3N0YXR1cywgI0NoYXREaXYsICNwb2RpdW0tYnViYmxlLCAjamNvbnQsIGpkaXYsICN0c3dfd3JhcHBlciwgLmZiX2RpYWxvZywgLmZiX2lmcmFtZV93aWRnZXQsIC5mYi1jdXN0b21lcmNoYXQsIC5lay1jaGF0LCAubWF0YWRvci1saXZlY2hhdC0xMjM3ODktbWFpbi13cmFwcGVyLCAjbWF0YWRvci1jb25uZWN0LXRleHQtbGFiZWwsICNtYXRhZG9yLWNvbm5lY3QtdGV4dC1sYWJlbC1iYWRnZXsgei1pbmRleDoxMDAwMCAhaW1wb3J0YW50OyB9IHN2Zy5jaGF0LWJ1YmJsZXsgd2lkdGg6cmV2ZXJ0OyBoZWlnaHQ6cmV2ZXJ0OyB9IC5Vc2VkU3JwMk1vYmlsZSBpZnJhbWUjcG9kaXVtLWJ1YmJsZXsgYm90dG9tOjNyZW0gIWltcG9ydGFudDsgfSAjdHJhZGVJbkJhclBvcHVwX2Zvcm1XIC50cmFkZUluQmFyTXVsdGlzZWxlY3R7IG1pbi13aWR0aDoyMjVweDsgbWF4LXdpZHRoOjEwMCUhaW1wb3J0YW50OyB9IC51aS1tdWx0aXNlbGVjdC1tZW51LnRyYWRlSW5CYXJNdWx0aXNlbGVjdHsgei1pbmRleDoxMDAwMDIwOyBtYXgtaGVpZ2h0OjExMHB4OyBvdmVyZmxvdzpzY3JvbGw7IH0gLm11bHRpc2VsZWN0VmVoaWNsZU9wdGlvbnN7IG1hcmdpbi10b3A6NXB4OyB9IC5tdWx0aXNlbGVjdFZlaGljbGVPcHRpb25zIHNwYW57IGZvbnQtc2l6ZTowLjkzOHJlbSAhaW1wb3J0YW50OyBwYWRkaW5nOjAgIWltcG9ydGFudDsgbWFyZ2luOjAgIWltcG9ydGFudDsgfSAudHJhZGluTml2eyB3aWR0aDoxMDAlOyBwYWRkaW5nOjAuNHJlbTsgYm9yZGVyOjFweCBzb2xpZCAjYTlhOWE5OyBib3JkZXItcmFkaXVzOjVweDsgfSAjdHJhZGVJbkJhclBvcHVwX2Zvcm1XIC50cmFkaW5OaXZ7IHdpZHRoOjEwMCU7IHBhZGRpbmc6MC41cmVtOyBib3JkZXI6MXB4IHNvbGlkICNhOWE5YTk7IGJvcmRlci1yYWRpdXM6NXB4OyB9ICN0cmFkZUluQmFyUG9wdXBfZm9ybVcgLm5pdk1ha2VNb2RlbFNlbGVjdENvbnRhaW5lcnsgd2lkdGg6MTAwJTsgZm9udC1zaXplOjAuNzVyZW0gOyB9ICN0cmFkZUluQmFyUG9wdXBfZm9ybVcgLm5pdk1ha2VNb2RlbFNlbGVjdENvbnRhaW5lciAubml2TWFrZU1vZGVsU2VsZWN0eyBkaXNwbGF5Om5vbmU7IH0gI3RyYWRlSW5CYXJQb3B1cF9mb3JtVyAubml2TWFrZU1vZGVsU2VsZWN0Q29udGFpbmVyIC5uaXZNYWtlTW9kZWxTZWxlY3RMYWJlbHsgZGlzcGxheTppbmxpbmUtYmxvY2s7IG1hcmdpbjowIDVweDsgY3Vyc29yOnBvaW50ZXI7IH0gI3RyYWRlSW5CYXJQb3B1cF9mb3JtVyAubml2TWFrZU1vZGVsU2VsZWN0Q29udGFpbmVyIC5uaXZNYWtlTW9kZWxTZWxlY3Q6Y2hlY2tlZCtsYWJlbHsgYm9yZGVyLWJvdHRvbToycHggc29saWQgYmxhY2s7IH0gI3RyYWRlSW5CYXJQb3B1cF9mb3JtVyAudHJhZGVJbkJhck11bHRpc2VsZWN0eyB3aWR0aDoxMDAlIWltcG9ydGFudDsgYm9yZGVyLXJhZGl1czowLjNyZW0haW1wb3J0YW50OyBib3JkZXItd2lkdGg6MXB4IWltcG9ydGFudDsgYm9yZGVyLXJhZGl1czowLjNyZW0haW1wb3J0YW50OyBib3JkZXItY29sb3I6I2E5YTlhOSFpbXBvcnRhbnQ7IHBhZGRpbmc6MC4zcmVtIWltcG9ydGFudDsgfSAjdHJhZGVJbkJhclBvcHVwX2Zvcm1XIC50cmFkaW5TZWxlY3RQb3B1cHsgY29sb3I6IzNjMzgzNjsgZm9udC1zaXplOjFyZW07IGJhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwxKTsgYmFja2dyb3VuZC1wb3NpdGlvbjo5NSUgNTAlOyAtd2Via2l0LWFwcGVhcmFuY2U6bm9uZTsgLW1vei1hcHBlYXJhbmNlOm5vbmU7IG1hcmdpbjo1cHggMCAwOyBwYWRkaW5nOjAuM3JlbSFpbXBvcnRhbnQ7IH0KLyoqIC9jc3MvZGl2X3Jhbmdlc2xpZGVyLmNzcyAqKi8KZGl2LmRpdlByaWNlUmFuZ2VTbGlkZXJ7IG1hcmdpbjowIDAgMTBweCAwOyBwYWRkaW5nOjA7IH0gZGl2LmRpdlByaWNlUmFuZ2VTbGlkZXIgZGl2LnJhbmdlLXNsaWRlci10aXRsZXsgZm9udC13ZWlnaHQ6Ym9sZDsgcGFkZGluZzowIDAgMTBweCAwOyB9IGRpdi5kaXZQcmljZVJhbmdlU2xpZGVyIGRpdi5yYW5nZS1zbGlkZXItcHJpY2VzeyBwYWRkaW5nOjAgMCAxNXB4IDA7IGZvbnQtc2l6ZToxLjEyNXJlbSA7IH0gZGl2LmRpdlByaWNlUmFuZ2VTbGlkZXIgZGl2LnJhbmdlLXNsaWRlci1wcmljZXMgc3Bhbi5wcmljZS1taW57fSBkaXYuZGl2UHJpY2VSYW5nZVNsaWRlciBkaXYucmFuZ2Utc2xpZGVyLXByaWNlcyBzcGFuLnByaWNlLW1heHt9IGRpdi5kaXZQcmljZVJhbmdlU2xpZGVyIGRpdi5yYW5nZS1zbGlkZXJ7IGJvcmRlci1yYWRpdXM6NXB4ICFpbXBvcnRhbnQ7IGhlaWdodDoxMHB4OyBtYXJnaW46NHB4IDZweCAwIC0zcHg7IHBhZGRpbmc6MDsgYm9yZGVyOjFweCBzb2xpZCAjY2NjOyB9IGRpdi5kaXZQcmljZVJhbmdlU2xpZGVyIGRpdi5yYW5nZS1zbGlkZXItbGVmdCwgZGl2LmRpdlByaWNlUmFuZ2VTbGlkZXIgZGl2LnJhbmdlLXNsaWRlci1yaWdodHsgZm9udC1zaXplOjAuNzVyZW0gOyBsaW5lLWhlaWdodDoyMHB4OyBjb2xvcjojNzU3NTc1OyB9IGRpdi5kaXZQcmljZVJhbmdlU2xpZGVyIGRpdi5yYW5nZS1zbGlkZXItbGVmdHsgdGV4dC1hbGlnbjpsZWZ0OyB9IGRpdi5kaXZQcmljZVJhbmdlU2xpZGVyIGRpdi5yYW5nZS1zbGlkZXItcmlnaHR7IHRleHQtYWxpZ246cmlnaHQ7IH0gZGl2LmRpdlByaWNlUmFuZ2VTbGlkZXIgZGl2LnJhbmdlLXNsaWRlciBkaXYudWktc2xpZGVyLXJhbmdleyBiYWNrZ3JvdW5kOiNmM2YzZjMhaW1wb3J0YW50OyB9IGRpdi5kaXZQcmljZVJhbmdlU2xpZGVyIGRpdi5yYW5nZS1zbGlkZXIgQS51aS1zbGlkZXItaGFuZGxlLCBkaXYuZGl2UHJpY2VSYW5nZVNsaWRlciBkaXYucmFuZ2Utc2xpZGVyIHNwYW4udWktc2xpZGVyLWhhbmRsZXsgbWFyZ2luOi04cHggMCAwIC0xMXB4OyBib3JkZXI6MXB4IHNvbGlkICNjY2M7IHBhZGRpbmc6MCAhaW1wb3J0YW50OyBib3JkZXItcmFkaXVzOjUwcHggIWltcG9ydGFudDsgYmFja2dyb3VuZDojZmZmICFpbXBvcnRhbnQ7IHRvcDowOyBoZWlnaHQ6MjVweDsgd2lkdGg6MjVweDsgY3Vyc29yOnBvaW50ZXI7IG91dGxpbmU6bm9uZSAhaW1wb3J0YW50OyB9IGRpdi5kaXZQcmljZVJhbmdlU2xpZGVyIGRpdi5yYW5nZS1zbGlkZXIgQS51aS1zbGlkZXItaGFuZGxlLnVpLXN0YXRlLWhvdmVyLCBkaXYuZGl2UHJpY2VSYW5nZVNsaWRlciBkaXYucmFuZ2Utc2xpZGVyIEEudWktc2xpZGVyLWhhbmRsZS51aS1zdGF0ZS1hY3RpdmUsIGRpdi5kaXZQcmljZVJhbmdlU2xpZGVyIGRpdi5yYW5nZS1zbGlkZXIgc3Bhbi51aS1zbGlkZXItaGFuZGxlLnVpLXN0YXRlLWhvdmVyLCBkaXYuZGl2UHJpY2VSYW5nZVNsaWRlciBkaXYucmFuZ2Utc2xpZGVyIHNwYW4udWktc2xpZGVyLWhhbmRsZS51aS1zdGF0ZS1hY3RpdmV7IGJvcmRlci1jb2xvcjojNjY2OyB9IGRpdi5kaXZQcmljZVJhbmdlU2xpZGVyIGRpdi5yYW5nZS1zbGlkZXIgQS51aS1zbGlkZXItaGFuZGxlLnVpLXN0YXRlLWZvY3VzLCBkaXYuZGl2UHJpY2VSYW5nZVNsaWRlciBkaXYucmFuZ2Utc2xpZGVyIHNwYW4udWktc2xpZGVyLWhhbmRsZS51aS1zdGF0ZS1mb2N1c3sgb3V0bGluZTpub25lICFpbXBvcnRhbnQ7IH0KLyoqIC9jc3MvcGF5bWVudENhbGN1bGF0b3IuY3NzICoqLwo6aXMoI3BheW1lbnRDYWxjdWxhdG9yQ29udGFpbmVyLCNmaW5hbmNlTXVsdGlzdGVwTmV3Q2FsY3VsYXRvcikuY2FsYy1tb2JpbGUgeyAtLXdyYXAtcGF5bWVudHM6d3JhcDsgLS1tb2JpbGUtZGlzcGxheTpub25lOyAtLW1vYi1mdWxsLXdpZHRoOjEwMCU7IC0tcGF5bWVudC1taW4td2lkdGg6Ni4zcmVtOyAtLWhlYWRlci1mb250LXNpemU6dmFyKC0tZnMyKTsgLS1oZWFkZXItaWNvbi1zaXplOnZhcigtLWZzNSk7IH0gI3BheW1lbnRDYWxjdWxhdG9yQ29udGFpbmVyeyBtaW4taGVpZ2h0OjQ1MHB4OyBjb2xvcjpibGFjazsgfSAjcGF5bWVudENhbGN1bGF0b3JQb3B1cENvbnRhaW5lcnsgYm9yZGVyOjRweCBzb2xpZCAjZjNmM2YzOyB9ICNwYXltZW50Q2FsY3VsYXRvclBvcHVwQ29udGFpbmVyOmhhcyguY2FsYy1tb2JpbGUpeyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IH0gI3BheW1lbnRDYWxjdWxhdG9yQ29udGFpbmVyLmNhbGMtbW9iaWxlIC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRDb250YWluZXIsICNmaW5hbmNlTXVsdGlzdGVwTmV3Q2FsY3VsYXRvci5jYWxjLW1vYmlsZSAucGF5bWVudENhbGN1bGF0b3JQYXltZW50Q29udGFpbmVyeyBvdmVyZmxvdy14OnZpc2libGU7IG92ZXJmbG93LXk6c2Nyb2xsOyBoZWlnaHQ6MzcwcHg7IGZsZXgtd3JhcDp3cmFwOyB9IC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRDb250YWluZXIsIC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRDb250YWluZXJXaXRoVGF4ZXMgeyBvdmVyZmxvdy14OnNjcm9sbDsgZGlzcGxheTpmbGV4OyBnYXA6MTBweDsgfSAuZmluYW5jZU11bHRpc3RlcE5ld0NhbGN1bGF0b3IgLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudENvbnRhaW5lciwgLmZpbmFuY2VNdWx0aXN0ZXBOZXdDYWxjdWxhdG9yIC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRDb250YWluZXJXaXRoVGF4ZXMgeyB3aWR0aDoxMDAlOyB9IC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRDb250YWluZXIuYm94ZXM0eyB3aWR0aDo2NCU7IH0gLmZpbmFuY2VNdWx0aXN0ZXBOZXdDYWxjdWxhdG9yIC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRDb250YWluZXIuYm94ZXM0LCAuZmluYW5jZU11bHRpc3RlcE5ld0NhbGN1bGF0b3IgLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudENvbnRhaW5lcldpdGhUYXhlcy5ib3hlczR7IHdpZHRoOjgwJTsgfSAucmV2ZWFsLW1vZGFsIC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRDb250YWluZXIgc3BhbiwgLnJldmVhbC1tb2RhbCAucGF5bWVudENhbGN1bGF0b3JQYXltZW50Q29udGFpbmVyV2l0aFRheGVzIHNwYW57IHBhZGRpbmc6MCFpbXBvcnRhbnQ7IG1hcmdpbi1ib3R0b206MCFpbXBvcnRhbnQ7IGNvbG9yOmluaGVyaXQ7IGZvbnQtc2l6ZTppbmhlcml0OyB9IC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRXcmFwcGVyeyBtYXJnaW4tYm90dG9tOnZhcigtLXMpOyB9ICNwYXltZW50Q2FsY3VsYXRvckNvbnRhaW5lci5jYWxjLW1vYmlsZSAucGF5bWVudENhbGN1bGF0b3JQYXltZW50V3JhcHBlcnsgbWFyZ2luLWJvdHRvbTowOyB9IC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRDb250YWluZXIuYm94ZXM0IC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRXcmFwcGVyLCAucGF5bWVudENhbGN1bGF0b3JQYXltZW50Q29udGFpbmVyV2l0aFRheGVzLmJveGVzNCAucGF5bWVudENhbGN1bGF0b3JQYXltZW50V3JhcHBlcnsgd2lkdGg6MjQlOyB9IC5wYXltZW50Q2FsY3VsYXRvckxpbmV7IGJvcmRlci1ib3R0b206MXB4IHNvbGlkIGdyZXk7IG1hcmdpbjoxMHB4IDA7IH0gLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFdyYXBwZXIgLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudExpbmUxeyBmb250LXNpemU6MC42ODhyZW0gOyB9IC5yZXZlYWwtbW9kYWwgLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFdyYXBwZXIgLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudExpbmUxIHNwYW57IGZvbnQtc2l6ZToxLjc1cmVtIDsgY29sb3I6IzAyNzZiMzsgfSAucGF5bWVudENhbGN1bGF0b3JQYXltZW50V3JhcHBlciAucGF5bWVudENhbGN1bGF0b3JQYXltZW50TGluZTJ7IGZvbnQtc2l6ZTowLjc1cmVtIDsgfSAucmV2ZWFsLW1vZGFsIC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRXcmFwcGVyIC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRMaW5lMiBzcGFueyBmb250LXNpemU6MS4zNzVyZW0gOyB9IC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRXcmFwcGVyIC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRMaW5lM3sgZm9udC1zaXplOjAuNzVyZW0gOyB9IC5yZXZlYWwtbW9kYWwgLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFdyYXBwZXIgLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudExpbmUzIHNwYW57IGZvbnQtc2l6ZToxLjI1cmVtIDsgfSAucGF5bWVudENhbGN1bGF0b3JQYXltZW50V3JhcHBlciAucGF5bWVudENhbGN1bGF0b3JQYXltZW50TGluZTR7IGZvbnQtc2l6ZTowLjc1cmVtIDsgY29sb3I6Z3JleTsgd2hpdGUtc3BhY2U6bm9ybWFsOyB9ICNwYXltZW50Q2FsY3VsYXRvclZlaGljbGVJbWFnZURpdnsgbWF4LXdpZHRoOjMzJTsgcG9zaXRpb246YWJzb2x1dGU7IHJpZ2h0OjA7IHRvcDotNTAlOyBkaXNwbGF5OnZhcigtLW1vYmlsZS1kaXNwbGF5LCBpbml0aWFsKTsgfSAucGF5bWVudENhbGN1bGF0b3JPcHRpb25Db250YWluZXJ7IHdpZHRoOm1heCh2YXIoLS1tb2ItZnVsbC13aWR0aCwgNjYlKSwgMjByZW0pOyB9IC5jYWxjLXBheW1lbnRzeyBtYXgtd2lkdGg6dmFyKC0tbW9iLWZ1bGwtd2lkdGgsIDY2JSk7IH0gLmNhbGMtcGF5bWVudHMgOmlzKC5wcmljZS1mciwgLnByaWNlLWVuKXsgdGV4dC1hbGlnbjpyZXZlcnQ7IG1pbi13aWR0aDp1bnNldDsgfSAucGF5bWVudENhbGN1bGF0b3JQYXltZW50VHlwZUNvbnRhaW5lcnsgYm9yZGVyLWJvdHRvbToxcHggc29saWQgI2NjY2NjYzsgfSAuZmluYW5jZU11bHRpc3RlcE5ld0NhbGN1bGF0b3IgLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFR5cGVDb250YWluZXJ7IG1hcmdpbi1ib3R0b206MTBweDsgfSAucGF5bWVudENhbGN1bGF0b3JQYXltZW50VHlwZXsgbGlzdC1zdHlsZTpub25lOyBwYWRkaW5nOjAgMDsgZGlzcGxheTppbmxpbmUtYmxvY2s7IH0gLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFR5cGUgbGl7IHBhZGRpbmc6MTBweDsgZmxvYXQ6bGVmdDsgbWluLXdpZHRoOjVyZW07IGN1cnNvcjpwb2ludGVyOyBib3JkZXItcmFkaXVzOjVweCA1cHggMCAwOyBib3JkZXItYm90dG9tOjBweDsgdGV4dC1hbGlnbjpjZW50ZXI7IGJhY2tncm91bmQtY29sb3I6d2hpdGU7IH0gLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFR5cGUgbGk6aG92ZXJ7IGJhY2tncm91bmQtY29sb3I6I2Q5ZDlkOTsgfSAucGF5bWVudENhbGN1bGF0b3JQYXltZW50VHlwZSBsaS5hY3RpdmVQYXltZW50VHlwZXsgYmFja2dyb3VuZC1jb2xvcjojOTg5ODk4OyBjb2xvcjp3aGl0ZTsgfSAucGF5bWVudENhbGN1bGF0b3JJbnB1dENvbnRhaW5lcnsgbWFyZ2luLWJvdHRvbToxMHB4OyB9IC5wYXltZW50Q2FsY3VsYXRvcklucHV0Q29udGFpbmVyID4gKiB7IHBhZGRpbmctYm90dG9tOjAuNXJlbTsgfSAucGF5bWVudENhbGN1bGF0b3JJbnB1dENvbnRhaW5lciBsYWJlbHsgY29sb3I6Z3JleTsgZm9udC1zaXplOjAuODc1cmVtIDsgbWFyZ2luLWxlZnQ6M3B4OyBtYXJnaW4tYm90dG9tOjA7IH0gLnBheW1lbnRDYWxjdWxhdG9yVHJpbVNlbGVjdHsgYm9yZGVyLXJhZGl1czo1cHg7IHBhZGRpbmc6NXB4IDVweDsgZm9udC1zaXplOjFyZW0gOyBtaW4td2lkdGg6MTByZW07IG1heC13aWR0aDoyMHJlbTsgLXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7IC1tb3otYXBwZWFyYW5jZTpub25lOyBwYWRkaW5nLXJpZ2h0OjI3cHg7IGJhY2tncm91bmQtaW1hZ2U6dXJsKCdkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUJBQUFBQVFDQVlBQUFBZjgvOWhBQUFBaDBsRVFWUTRUOTNUTVFyQ1VBekc4Vjl4OFF6aWlZU3VYZHpGQzdoNEFjRUxPUFFBZFhZb3ZaQ0hFQVRsZ1FWNUdGVGUxb3pKbHova1MxSXBqS3F3M3dRQlZ5eSsrSkkweTFHVGU3RENCYk1BY2tlTklRS2svQmFuQUxCQisxNkx0bkRFTG9NY3NNL0JFU0RsejJoZURSM1dlUHdLU0xvNWVveHozejZOTmNGRCt2dTNpajE0QXF6L0R4R2JLQjdDQUFBQUFFbEZUa1N1UW1DQycpOyBiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7IGJhY2tncm91bmQtcG9zaXRpb246OTUlIGNlbnRlcjsgYm9yZGVyLWNvbG9yOiNhOWE5YTk7IGNvbG9yOmluaGVyaXQ7IGJveC1zaGFkb3c6bm9uZTsgLXdlYmtpdC1ib3gtc2hhZG93Om5vbmU7IH0gLnBheW1lbnRDYWxjdWxhdG9ySW50ZXJ2YWwsIC5kMmNmb3JtIC5wYXltZW50Q2FsY3VsYXRvckludGVydmFsIHsgYm9yZGVyLXJhZGl1czo1cHg7IHBhZGRpbmc6NXB4IDVweDsgZm9udC1zaXplOjFyZW0gOyBtaW4td2lkdGg6N3JlbTsgLXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7IC1tb3otYXBwZWFyYW5jZTpub25lOyBwYWRkaW5nLXJpZ2h0OjI3cHg7IGJhY2tncm91bmQtaW1hZ2U6dXJsKCdkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUJBQUFBQVFDQVlBQUFBZjgvOWhBQUFBaDBsRVFWUTRUOTNUTVFyQ1VBekc4Vjl4OFF6aWlZU3VYZHpGQzdoNEFjRUxPUFFBZFhZb3ZaQ0hFQVRsZ1FWNUdGVGUxb3pKbHova1MxSXBqS3F3M3dRQlZ5eSsrSkkweTFHVGU3RENCYk1BY2tlTklRS2svQmFuQUxCQisxNkx0bkRFTG9NY3NNL0JFU0RsejJoZURSM1dlUHdLU0xvNWVveHozejZOTmNGRCt2dTNpajE0QXF6L0R4R2JLQjdDQUFBQUFFbEZUa1N1UW1DQycpOyBiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7IGJhY2tncm91bmQtcG9zaXRpb246OTUlIGNlbnRlcjsgYm9yZGVyLWNvbG9yOiNhOWE5YTk7IGNvbG9yOmluaGVyaXQ7IGJveC1zaGFkb3c6bm9uZTsgLXdlYmtpdC1ib3gtc2hhZG93Om5vbmU7IH0gLnBheW1lbnRDYWxjdWxhdG9yS21BbGxvd2FuY2V7IGJvcmRlci1yYWRpdXM6NXB4OyBwYWRkaW5nOjVweCA1cHg7IGZvbnQtc2l6ZToxcmVtIDsgd2lkdGg6MTEwcHg7IC13ZWJraXQtYXBwZWFyYW5jZTpub25lOyAtbW96LWFwcGVhcmFuY2U6bm9uZTsgcGFkZGluZy1yaWdodDoyN3B4OyBiYWNrZ3JvdW5kLWltYWdlOnVybCgnZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFCQUFBQUFRQ0FZQUFBQWY4LzloQUFBQWgwbEVRVlE0VDkzVE1RckNVQXpHOFY5eDhRemlpWVN1WGR6RkM3aDRBY0VMT1BRQWRYWW92WkNIRUFUbGdRVjVHRlRlMW96Smx6L2tTMUlwaktxdzN3UUJWeXkrK0pJMHkxR1RlN0RDQmJNQWNrZU5JUUtrL0JhbkFMQkIrMTZMdG5ERUxvTWNzTS9CRVNEbHoyaGVEUjNXZVB3S1NMbzVlb3h6M3o2Tk5jRkQrdnUzaWoxNEFxei9EeEdiS0I3Q0FBQUFBRWxGVGtTdVFtQ0MnKTsgYmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0OyBiYWNrZ3JvdW5kLXBvc2l0aW9uOjk1JSBjZW50ZXI7IGJvcmRlci1jb2xvcjojYTlhOWE5OyBjb2xvcjppbmhlcml0OyBib3gtc2hhZG93Om5vbmU7IC13ZWJraXQtYm94LXNoYWRvdzpub25lOyB9IC5wYXltZW50Q2FsY3VsYXRvckRvd25QYXltZW50eyBib3JkZXI6MXB4IHNvbGlkICNhOWE5YTk7IGJvcmRlci1yYWRpdXM6NXB4OyBwYWRkaW5nOjVweCA1cHg7IGZvbnQtc2l6ZToxcmVtIDsgd2lkdGg6NXJlbTsgcGFkZGluZy1sZWZ0OjIwcHg7IGJhY2tncm91bmQtaW1hZ2U6dXJsKCJkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgdmVyc2lvbj0nMS4xJyBoZWlnaHQ9JzI4cHgnIHdpZHRoPSc4NXB4Jz48dGV4dCB4PSc2JyB5PScyMScgZmlsbD0nJyBmb250LXNpemU9JzE2JyBmb250LWZhbWlseT0nYXJpYWwnPiQiKTsgYmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0OyBiYWNrZ3JvdW5kLXNpemU6NjAlOyBiYWNrZ3JvdW5kLXBvc2l0aW9uLXk6NDAlOyAtbW96LWFwcGVhcmFuY2U6dGV4dGZpZWxkOyB9IC5wYXltZW50Q2FsY3VsYXRvckRvd25QYXltZW50Ojotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uLCAucGF5bWVudENhbGN1bGF0b3JEb3duUGF5bWVudDo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbnsgLXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7IG1hcmdpbjowOyB9IC5wYXltZW50Q2FsY3VsYXRvck5vdGljZUNvbnRhaW5lcnsgbWluLXdpZHRoOjE4cmVtOyBmb250LXNpemU6MC44MTNyZW0gOyBjb2xvcjojODY4Njg2OyBwYWRkaW5nOjA7IG1hcmdpbjowOyBkaXNwbGF5OnZhcigtLW1vYmlsZS1kaXNwbGF5LCBpbml0aWFsKTsgfSAucGF5bWVudENhbGN1bGF0b3JOb3RpY2VDb250YWluZXIuYm94ZXM0eyB3aWR0aDozMCU7IH0gLnJldmVhbC1tb2RhbCAucGF5bWVudENhbGN1bGF0b3JOb3RpY2VDb250YWluZXIgcCwgLnJldmVhbC1tb2RhbCAucGF5bWVudENhbGN1bGF0b3JOb3RpY2VDb250YWluZXIgc3BhbnsgY29sb3I6aW5oZXJpdDsgcGFkZGluZzowOyBmb250LXNpemU6MXJlbTsgfSAucGF5bWVudENhbGN1bGF0b3JFcnJvck1lc3NhZ2V7IHdpZHRoOjUwJTsgbWFyZ2luLXRvcDozMHB4OyB9ICNwYXltZW50Q2FsY3VsYXRvclZlaGljbGVJbmZveyBwb3NpdGlvbjpyZWxhdGl2ZTsgfSAjcGF5bWVudENhbGN1bGF0b3JWZWhpY2xlSW5mbyAuaWNvbnsgYm9yZGVyLXJhZGl1czo1MCU7IGJvcmRlcjoxcHggc29saWQgI2ZmZmZmZjsgY29sb3I6I2ZmZmZmZjsgbWFyZ2luOjA7IHBhZGRpbmc6MC40cmVtOyAtLXR4dC1jb2xvcjojZmZmZmZmOyAtLWZzOnZhcigtLWhlYWRlci1pY29uLXNpemUsIHZhcigtLWZzNykpOyBiYWNrZ3JvdW5kLWNvbG9yOiMwMjc2YjM7IH0gI3BheW1lbnRDYWxjdWxhdG9yVmVoaWNsZUluZm8gaDIgc3BhbjpmaXJzdC1jaGlsZHsgZm9udC1zaXplOnZhcigtLWZzMSk7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgfSAjcGF5bWVudENhbGN1bGF0b3JWZWhpY2xlSW5mbyBoMiBzcGFueyBmb250LXNpemU6dmFyKC0taGVhZGVyLWZvbnQtc2l6ZSwgdmFyKC0tZnMzKSk7IG1hcmdpbjowOyBsaW5lLWhlaWdodDpub3JtYWw7IGZvbnQtd2VpZ2h0OjcwMDsgcGFkZGluZzowOyB9ICNwYXltZW50Q2FsY3VsYXRvclZlaGljbGVJbmZvIGgzeyBmb250LXNpemU6MS4xODhyZW0gOyB9ICNwYXltZW50Q2FsY3VsYXRvclZlaGljbGVJbmZvIHNwYW4uaDItYWx0eyBtYXJnaW46MDsgcGFkZGluZzowOyBtYXJnaW4tbGVmdDp2YXIoLS1zKTsgZm9udC1zaXplOmluaGVyaXQ7IGZvbnQtd2VpZ2h0OnZhcigtLWZvbnQtaDItd2VpZ2h0KTsgbGluZS1oZWlnaHQ6MS4yZW07IGNvbG9yOnZhcigtLWRlZmF1bHQtYmxhY2spOyB9ICNwYXltZW50Q2FsY3VsYXRvclZlaGljbGVJbmZvIC5oMi1hbHQgc3BhbjpmaXJzdC1jaGlsZHsgZm9udC1zaXplOnZhcigtLWZzMSk7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgfSAjcGF5bWVudENhbGN1bGF0b3JWZWhpY2xlSW5mbyAuaDItYWx0IHNwYW57IGZvbnQtc2l6ZTp2YXIoLS1oZWFkZXItZm9udC1zaXplLCB2YXIoLS1mczMpKTsgbWFyZ2luOjA7IGxpbmUtaGVpZ2h0Om5vcm1hbDsgZm9udC13ZWlnaHQ6NzAwOyBwYWRkaW5nOjA7IH0gI3BheW1lbnRDYWxjdWxhdG9yVmVoaWNsZUluZm8gLmgzLWFsdHsgZm9udC1zaXplOjEuMTg4cmVtIDsgfSAucGF5bWVudENhbGN1bGF0b3JDYWxsVG9BY3Rpb25Db250YWluZXJ7IHRleHQtYWxpZ246Y2VudGVyOyB9IC5wYXltZW50Q2FsY3VsYXRvckNhbGxUb0FjdGlvbkNvbnRhaW5lci5ib3hlczR7IHdpZHRoOjY0JTsgfSAucGF5bWVudENhbGN1bGF0b3JDYWxsVG9BY3Rpb25Db250YWluZXIgYXsgd2lkdGg6bWluKDY0JSwxOHJlbSk7IH0gLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFNlbGVjdHsgfSAuZmEuZmEtY2FsY3VsYXRvcnsgY29sb3I6IzAwMDAwMDsgfSAuLWJnLWJsYWNrIC5mYS5mYS1jYWxjdWxhdG9yeyBjb2xvcjojRkZGRkZGOyB9ICNwYXltZW50Q2FsY3VsYXRvckNvbnRhaW5lciBzZWxlY3Q6Oi1tcy1leHBhbmQgeyBkaXNwbGF5Om5vbmU7IH0gLmNhbGMtcGF5bWVudC1jYXNoIHsgd2lkdGg6bWluKDE3cmVtLDkwJSk7IHBhZGRpbmc6MCAxLjVyZW07IH0gLmNhbGMtcGF5bWVudC1jYXNoIHNwYW57IG1hcmdpbi1ib3R0b206MDsgZm9udC1zaXplOnJldmVydDsgfSAuY2FsYy1wYXltZW50LWNhc2ggLnByaWNlRmluYWwgeyBwYWRkaW5nLXRvcDp2YXIoLS1zKTsgYm9yZGVyLXRvcDoxcHggc29saWQgI2JiYjsgZm9udC13ZWlnaHQ6Ym9sZDsgfSAuY2FsYy1wYXltZW50LWNhc2ggLnByaWNlUm93IHsgZGlzcGxheTpmbGV4OyBhbGlnbi1pdGVtczpjZW50ZXI7IGp1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuOyBsaW5lLWhlaWdodDpub3JtYWw7IH0gLmNhbGMtcGF5bWVudC1jYXNoIC5wcmljZU5hbWV7IHBhZGRpbmc6MDsgdGV4dC1hbGlnbjpsZWZ0OyBmb250LXNpemU6dmFyKC0tZnMwKTsgfSAjcGF5bWVudENhbGN1bGF0b3JPcHRpb25Db250YWluZXIgLnBheW1lbnRDYWxjdWxhdG9yVHJhZGVJbkJ1dHRvbnsgZm9udC1zaXplOjAuNjI1cmVtIDsgYm9yZGVyOjFweCBzb2xpZCAjYTlhOWE5OyBib3JkZXItcmFkaXVzOjVweDsgYmFja2dyb3VuZC1jb2xvcjp3aGl0ZTsgd2lkdGg6MTA1cHg7IHRleHQtYWxpZ246Y2VudGVyOyB0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lOyBwYWRkaW5nOjJweDsgY3Vyc29yOnBvaW50ZXI7IH0gI3BheW1lbnRDYWxjdWxhdG9yT3B0aW9uQ29udGFpbmVyIC5wYXltZW50Q2FsY3VsYXRvclRyYWRlSW5WYWx1ZXsgYm9yZGVyOjFweCBzb2xpZCAjYTlhOWE5OyBib3JkZXItcmFkaXVzOjVweDsgcGFkZGluZzo1cHggNXB4OyBmb250LXNpemU6MXJlbSA7IHdpZHRoOjEwMHB4OyBwYWRkaW5nLWxlZnQ6MTVweDsgYmFja2dyb3VuZC1pbWFnZTp1cmwoImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2ZXJzaW9uPScxLjEnIGhlaWdodD0nMjhweCcgd2lkdGg9Jzg1cHgnPjx0ZXh0IHg9JzYnIHk9JzIxJyBmaWxsPScnIGZvbnQtc2l6ZT0nMTYnIGZvbnQtZmFtaWx5PSdhcmlhbCc+JCIpOyBiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7IGJhY2tncm91bmQtY29sb3I6d2hpdGU7IH0gI3BheW1lbnRDYWxjdWxhdG9yQ29udGFpbmVyIC5maW5hbmNpbmctb3B0aW9uLCAjZmluYW5jZU11bHRpc3RlcE5ld0NhbGN1bGF0b3IgLmZpbmFuY2luZy1vcHRpb24geyBib3JkZXI6MS41cHggc29saWQgI2FhYTsgYm9yZGVyLXJhZGl1czo2cHg7IHBhZGRpbmc6OHB4OyB3aWR0aDoxOTBweDsgYmFja2dyb3VuZDp3aGl0ZTsgZGlzcGxheTpmbGV4OyBmbGV4LWRpcmVjdGlvbjpjb2x1bW47IGFsaWduLWl0ZW1zOmNlbnRlcjsgdGV4dC1hbGlnbjpjZW50ZXI7IGZsZXgtc2hyaW5rOjA7IG1pbi13aWR0aDoxODdweDsgYm94LXNpemluZzpjb250ZW50LWJveCFpbXBvcnRhbnQ7IH0gI3BheW1lbnRDYWxjdWxhdG9yQ29udGFpbmVyIC5maW5hbmNpbmctb3B0aW9uLnNlbGVjdGVkLCAjZmluYW5jZU11bHRpc3RlcE5ld0NhbGN1bGF0b3IgLmZpbmFuY2luZy1vcHRpb24uc2VsZWN0ZWQgeyBib3JkZXItY29sb3I6IzAwN0JGRjsgYm94LXNoYWRvdzowIDAgMTBweCByZ2JhKDAsIDEyMywgMjU1LCAwLjUpOyB9ICNwYXltZW50Q2FsY3VsYXRvckNvbnRhaW5lciAudGVybSwgI2ZpbmFuY2VNdWx0aXN0ZXBOZXdDYWxjdWxhdG9yIC50ZXJtIHsgZm9udC1zaXplOjAuODc1cmVtIDsgZm9udC13ZWlnaHQ6Ym9sZDsgY29sb3I6IzMzMzsgbWFyZ2luLWJvdHRvbToycHg7IH0gI3BheW1lbnRDYWxjdWxhdG9yQ29udGFpbmVyIC5kb3duLXBheW1lbnQsICNmaW5hbmNlTXVsdGlzdGVwTmV3Q2FsY3VsYXRvciAuZG93bi1wYXltZW50IHsgZm9udC1zaXplOjAuNjI1cmVtIDsgY29sb3I6Izk5OTsgbWFyZ2luLWJvdHRvbTo1cHg7IH0gI3BheW1lbnRDYWxjdWxhdG9yQ29udGFpbmVyIC5zZXBhcmF0b3JQYXksICNmaW5hbmNlTXVsdGlzdGVwTmV3Q2FsY3VsYXRvciAuc2VwYXJhdG9yUGF5IHsgd2lkdGg6OTAlOyBoZWlnaHQ6MXB4OyBiYWNrZ3JvdW5kLWNvbG9yOiNjY2M7IG1hcmdpbi1ib3R0b206NnB4OyB9ICNwYXltZW50Q2FsY3VsYXRvckNvbnRhaW5lciAuY29udGVudC1jb250YWluZXIsICNmaW5hbmNlTXVsdGlzdGVwTmV3Q2FsY3VsYXRvciAuY29udGVudC1jb250YWluZXIgeyBkaXNwbGF5OmZsZXg7IGp1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuOyBhbGlnbi1pdGVtczpjZW50ZXI7IHdpZHRoOjEwMCU7IHBhZGRpbmctYm90dG9tOjhweDsgfSAjcGF5bWVudENhbGN1bGF0b3JDb250YWluZXIgLmxlZnQtc2VjdGlvbiwgI3BheW1lbnRDYWxjdWxhdG9yQ29udGFpbmVyIC5yaWdodC1zZWN0aW9uLCAjZmluYW5jZU11bHRpc3RlcE5ld0NhbGN1bGF0b3IgLmxlZnQtc2VjdGlvbiwgI2ZpbmFuY2VNdWx0aXN0ZXBOZXdDYWxjdWxhdG9yIC5yaWdodC1zZWN0aW9uIHsgd2lkdGg6NTAlOyB0ZXh0LWFsaWduOmNlbnRlcjsgcGFkZGluZzo2cHg7IHBvc2l0aW9uOnJlbGF0aXZlOyB9ICNwYXltZW50Q2FsY3VsYXRvckNvbnRhaW5lciAubGVmdC1zZWN0aW9uLCAjZmluYW5jZU11bHRpc3RlcE5ld0NhbGN1bGF0b3IgLmxlZnQtc2VjdGlvbiB7IGJvcmRlci1yaWdodDoxcHggc29saWQgI2NjYzsgfSAjcGF5bWVudENhbGN1bGF0b3JDb250YWluZXIgLmxvd2VzdC1wYXltZW50LCAjcGF5bWVudENhbGN1bGF0b3JDb250YWluZXIgLmxvd2VzdC1yYXRlLCAjZmluYW5jZU11bHRpc3RlcE5ld0NhbGN1bGF0b3IgLmxvd2VzdC1wYXltZW50LCAjZmluYW5jZU11bHRpc3RlcE5ld0NhbGN1bGF0b3IgLmxvd2VzdC1yYXRlIHsgZm9udC1zaXplOjEuMjVyZW0gOyBjb2xvcjojZDMyZjJmOyBwb3NpdGlvbjpyZWxhdGl2ZTsgfSAjcGF5bWVudENhbGN1bGF0b3JDb250YWluZXIgLmluZm8taWNvbiwgI2ZpbmFuY2VNdWx0aXN0ZXBOZXdDYWxjdWxhdG9yIC5pbmZvLWljb24geyBmb250LXNpemU6MC43NXJlbSA7IGNvbG9yOiM2NjY7IGN1cnNvcjpwb2ludGVyOyBtYXJnaW4tbGVmdDo0cHg7IHBvc2l0aW9uOmFic29sdXRlOyB0b3A6MnB4OyB9ICNwYXltZW50Q2FsY3VsYXRvckNvbnRhaW5lciAuYWN0dWFsLXJhdGUsICNwYXltZW50Q2FsY3VsYXRvckNvbnRhaW5lciAuYWN0dWFsLXBheW1lbnQsICNmaW5hbmNlTXVsdGlzdGVwTmV3Q2FsY3VsYXRvciAuYWN0dWFsLXJhdGUsICNmaW5hbmNlTXVsdGlzdGVwTmV3Q2FsY3VsYXRvciAuYWN0dWFsLXBheW1lbnQgeyBmb250LXNpemU6MC45MzhyZW0gOyBtYXJnaW4tdG9wOjVweDsgZm9udC13ZWlnaHQ6Ym9sZDsgfSAjcGF5bWVudENhbGN1bGF0b3JDb250YWluZXIgLmFjdHVhbC1yYXRlLCAjZmluYW5jZU11bHRpc3RlcE5ld0NhbGN1bGF0b3IgLmFjdHVhbC1yYXRlIHsgY29sb3I6IzMzMzsgfSAjcGF5bWVudENhbGN1bGF0b3JDb250YWluZXIgLmFjdHVhbC1wYXltZW50LCAjZmluYW5jZU11bHRpc3RlcE5ld0NhbGN1bGF0b3IgLmFjdHVhbC1wYXltZW50IHsgY29sb3I6IzAwMzM2NjsgfSAjcGF5bWVudENhbGN1bGF0b3JDb250YWluZXIgLmRldGFpbHNUYXgsICNmaW5hbmNlTXVsdGlzdGVwTmV3Q2FsY3VsYXRvciAuZGV0YWlsc1RheCB7IGZvbnQtc2l6ZTowLjY4OHJlbSA7IGNvbG9yOiMzMzM7IG1hcmdpbi10b3A6MnB4OyB9ICNwYXltZW50Q2FsY3VsYXRvckNvbnRhaW5lciAucmFkaW8tY29udGFpbmVyLCAjZmluYW5jZU11bHRpc3RlcE5ld0NhbGN1bGF0b3IgLnJhZGlvLWNvbnRhaW5lciB7IGRpc3BsYXk6ZmxleDsganVzdGlmeS1jb250ZW50OmNlbnRlcjsgYWxpZ24taXRlbXM6Y2VudGVyOyBnYXA6MHB4OyBtYXJnaW4tdG9wOjhweDsgZm9udC1zaXplOjAuNjg4cmVtIDsgfSAjcGF5bWVudENhbGN1bGF0b3JDb250YWluZXIgaW5wdXRbdHlwZT0icmFkaW8iXVtuYW1lPSJzZWxlY3RlZFBheW1lbnQiXSwgI3BheW1lbnRDYWxjdWxhdG9yQ29udGFpbmVyIGlucHV0W3R5cGU9InJhZGlvIl1bbmFtZT0ic2VsZWN0ZWRQYXltZW50V2l0aFRheGVzIl0sICNmaW5hbmNlTXVsdGlzdGVwTmV3Q2FsY3VsYXRvciBpbnB1dFt0eXBlPSJyYWRpbyJdW25hbWU9InNlbGVjdGVkUGF5bWVudCJdLCAjZmluYW5jZU11bHRpc3RlcE5ld0NhbGN1bGF0b3IgaW5wdXRbdHlwZT0icmFkaW8iXVtuYW1lPSJzZWxlY3RlZFBheW1lbnRXaXRoVGF4ZXMiXSB7IG1hcmdpbi1yaWdodDo0cHg7IG9wYWNpdHk6dW5zZXQ7IHdpZHRoOnVuc2V0OyBoZWlnaHQ6dW5zZXQ7IHBvc2l0aW9uOnVuc2V0OyB9ICNwYXltZW50Q2FsY3VsYXRvckNvbnRhaW5lciAuc2luZ2xlLWNvbHVtbiwgI2ZpbmFuY2VNdWx0aXN0ZXBOZXdDYWxjdWxhdG9yIC5zaW5nbGUtY29sdW1uIHsgZGlzcGxheTpmbGV4OyBmbGV4LWRpcmVjdGlvbjpjb2x1bW47IGFsaWduLWl0ZW1zOmNlbnRlcjsganVzdGlmeS1jb250ZW50OmNlbnRlcjsgd2lkdGg6MTAwJTsgcGFkZGluZzo4cHg7IH0gI3BheW1lbnRDYWxjdWxhdG9yQ29udGFpbmVyIC5zbWFsbC1ib3gsICNmaW5hbmNlTXVsdGlzdGVwTmV3Q2FsY3VsYXRvciAuc21hbGwtYm94IHsgd2lkdGg6MTAwcHg7IHBhZGRpbmc6OHB4OyBtaW4td2lkdGg6MTAwcHg7IG1heC13aWR0aDoxMDBweDsgfQovKiogL2Nzcy9kYXJrdG9vbHRpcC5jc3MgKiovCi5kYXJrLXRvb2x0aXB7ZGlzcGxheTpub25lO3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTAwMDt0ZXh0LWRlY29yYXRpb246bm9uZTtmb250LXdlaWdodDpub3JtYWw7aGVpZ2h0OmF1dG87dG9wOjA7bGVmdDowfS5kYXJrLXRvb2x0aXAuc21hbGx7cGFkZGluZzo0cHg7Zm9udC1zaXplOjAuNzVyZW0gO21heC13aWR0aDoxNTBweDstd2Via2l0LWJvcmRlci1yYWRpdXM6MnB4Oy1tb3otYm9yZGVyLXJhZGl1czoycHg7Ym9yZGVyLXJhZGl1czoycHh9LmRhcmstdG9vbHRpcC5tZWRpdW17cGFkZGluZzo2cHg7Zm9udC1zaXplOjAuNjg4cmVtIDttYXgtd2lkdGg6MjAwcHg7LXdlYmtpdC1ib3JkZXItcmFkaXVzOjRweDstbW96LWJvcmRlci1yYWRpdXM6NHB4O2JvcmRlci1yYWRpdXM6NHB4fS5kYXJrLXRvb2x0aXAubGFyZ2V7cGFkZGluZzoxNnB4O2ZvbnQtc2l6ZToxcmVtIDttYXgtd2lkdGg6MjUwcHg7LXdlYmtpdC1ib3JkZXItcmFkaXVzOjZweDstbW96LWJvcmRlci1yYWRpdXM6NnB4O2JvcmRlci1yYWRpdXM6NnB4fS5kYXJrLXRvb2x0aXAgLnRpcHt0cmFuc2Zvcm06c2NhbGUoMS4wMSk7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMS4wMSk7dHJhbnNmb3JtOnNjYWxlKDEuMDEpO2NvbnRlbnQ6IiI7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MDtoZWlnaHQ6MDtib3JkZXItc3R5bGU6c29saWQ7bGluZS1oZWlnaHQ6MH0uZGFyay10b29sdGlwLnNvdXRoIC50aXB7bGVmdDo1MCU7dG9wOjEwMCV9LmRhcmstdG9vbHRpcC53ZXN0IC50aXB7bGVmdDowO3RvcDo1MCV9LmRhcmstdG9vbHRpcC5ub3J0aCAudGlwe2xlZnQ6NTAlO3RvcDowfS5kYXJrLXRvb2x0aXAuZWFzdCAudGlwe2xlZnQ6MTAwJTt0b3A6NTAlfS5kYXJrLXRvb2x0aXAuc291dGguc21hbGwgLnRpcHtib3JkZXItd2lkdGg6MCA1cHggMCA1cHg7bWFyZ2luLWxlZnQ6LTVweH0uZGFyay10b29sdGlwLnNvdXRoLm1lZGl1bSAudGlwe2JvcmRlci13aWR0aDowIDZweCAwIDZweDttYXJnaW4tbGVmdDotNnB4fS5kYXJrLXRvb2x0aXAuc291dGgubGFyZ2UgLnRpcHtib3JkZXItd2lkdGg6MCAxMnB4IDAgMTJweDttYXJnaW4tbGVmdDotMTJweH0uZGFyay10b29sdGlwLndlc3Quc21hbGwgLnRpcHtib3JkZXItd2lkdGg6NXB4IDdweCA1cHggMDttYXJnaW4tbGVmdDotN3B4O21hcmdpbi10b3A6LTVweH0uZGFyay10b29sdGlwLndlc3QubWVkaXVtIC50aXB7Ym9yZGVyLXdpZHRoOjZweCA4cHggNnB4IDA7bWFyZ2luLWxlZnQ6LThweDttYXJnaW4tdG9wOi02cHh9LmRhcmstdG9vbHRpcC53ZXN0LmxhcmdlIC50aXB7Ym9yZGVyLXdpZHRoOjEycHggMTRweCAxMnB4IDA7bWFyZ2luLWxlZnQ6LTE0cHg7bWFyZ2luLXRvcDotMTJweH0uZGFyay10b29sdGlwLm5vcnRoLnNtYWxsIC50aXB7Ym9yZGVyLXdpZHRoOjAgNXB4IDdweCA1cHg7bWFyZ2luLWxlZnQ6LTVweDttYXJnaW4tdG9wOi03cHh9LmRhcmstdG9vbHRpcC5ub3J0aC5tZWRpdW0gLnRpcHtib3JkZXItd2lkdGg6MCA2cHggOHB4IDZweDttYXJnaW4tbGVmdDotNnB4O21hcmdpbi10b3A6LThweH0uZGFyay10b29sdGlwLm5vcnRoLmxhcmdlIC50aXB7Ym9yZGVyLXdpZHRoOjAgMTJweCAxNHB4IDEycHg7bWFyZ2luLWxlZnQ6LTEycHg7bWFyZ2luLXRvcDotMTRweH0uZGFyay10b29sdGlwLmVhc3Quc21hbGwgLnRpcHtib3JkZXItd2lkdGg6NXB4IDAgNXB4IDA7bWFyZ2luLXRvcDotNXB4fS5kYXJrLXRvb2x0aXAuZWFzdC5tZWRpdW0gLnRpcHtib3JkZXItd2lkdGg6NnB4IDAgNnB4IDA7bWFyZ2luLXRvcDotNnB4fS5kYXJrLXRvb2x0aXAuZWFzdC5sYXJnZSAudGlwe2JvcmRlci13aWR0aDoxMnB4IDAgMTJweCAwO21hcmdpbi10b3A6LTEycHh9LmRhcmstdG9vbHRpcCB1bC5jb25maXJte2xpc3Qtc3R5bGUtdHlwZTpub25lO21hcmdpbi10b3A6NXB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrO21hcmdpbjowIGF1dG99LmRhcmstdG9vbHRpcCB1bC5jb25maXJtIGxpe3BhZGRpbmc6MTBweDtmbG9hdDpsZWZ0O21hcmdpbjo1cHg7bWluLXdpZHRoOjI1cHg7LXdlYmtpdC1ib3JkZXItcmFkaXVzOjNweDstbW96LWJvcmRlci1yYWRpdXM6M3B4Oy1vLWJvcmRlci1yYWRpdXM6M3B4O2JvcmRlci1yYWRpdXM6M3B4fS5kYXJrLXRvb2x0aXAuZGFya3tiYWNrZ3JvdW5kLWNvbG9yOiNkYWQ5ZGI7Y29sb3I6IzAwMH0uZGFyay10b29sdGlwLmxpZ2h0e2JhY2tncm91bmQtY29sb3I6I2Y1ZjVmNTtjb2xvcjojNWU1ZTVlO2JvcmRlcjoxcHggc29saWQgIzVlNWU1ZTt6LWluZGV4OjEwMDAwMzB9LmRhcmstdG9vbHRpcC5kYXJrLnNvdXRoIC50aXB7Ym9yZGVyLWNvbG9yOiNkYWQ5ZGIgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7X2JvcmRlci1jb2xvcjojZGFkOWRiICMwMDAgIzAwMCAjMDAwO19maWx0ZXI6cHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LkNocm9tYShjb2xvcj0nIzAwMDAwMCcpfS5kYXJrLXRvb2x0aXAuZGFyay53ZXN0IC50aXB7Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50ICNkYWQ5ZGIgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7X2JvcmRlci1jb2xvcjojMDAwICNkYWQ5ZGIgIzAwMCAjMDAwO19maWx0ZXI6cHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LkNocm9tYShjb2xvcj0nIzAwMDAwMCcpfS5kYXJrLXRvb2x0aXAuZGFyay5ub3J0aCAudGlwe2JvcmRlci1jb2xvcjp0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAjZGFkOWRiIHRyYW5zcGFyZW50O19ib3JkZXItY29sb3I6IzAwMCAjMDAwICNkYWQ5ZGIgIzAwMDtfZmlsdGVyOnByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5DaHJvbWEoY29sb3I9JyMwMDAwMDAnKX0uZGFyay10b29sdGlwLmRhcmsuZWFzdCAudGlwe2JvcmRlci1jb2xvcjp0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAjZGFkOWRiO19ib3JkZXItY29sb3I6IzAwMCAjMDAwICMwMDAgI2RhZDlkYjtfZmlsdGVyOnByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5DaHJvbWEoY29sb3I9JyMwMDAwMDAnKX0uZGFyay10b29sdGlwLmxpZ2h0LnNvdXRoIC50aXB7Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50O2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7YmFja2dyb3VuZC1pbWFnZTp1cmwoL2Nzcy90aXBzLnBuZyk7YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0O3dpZHRoOjEycHg7aGVpZ2h0OjhweH0uZGFyay10b29sdGlwLmxpZ2h0Lndlc3QgLnRpcHtib3JkZXItY29sb3I6dHJhbnNwYXJlbnQ7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtiYWNrZ3JvdW5kLWltYWdlOnVybCgvY3NzL3RpcHcucG5nKTtiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7d2lkdGg6OHB4O2hlaWdodDoxMnB4fS5kYXJrLXRvb2x0aXAubGlnaHQubm9ydGggLnRpcHtib3JkZXItY29sb3I6dHJhbnNwYXJlbnQ7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtiYWNrZ3JvdW5kLWltYWdlOnVybCgvY3NzL3RpcG4ucG5nKTtiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7d2lkdGg6MTJweDtoZWlnaHQ6OHB4fS5kYXJrLXRvb2x0aXAubGlnaHQuZWFzdCAudGlwe2JvcmRlci1jb2xvcjp0cmFuc3BhcmVudDtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2JhY2tncm91bmQtaW1hZ2U6dXJsKC9jc3MvdGlwZS5wbmcpO2JhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDtiYWNrZ3JvdW5kLXBvc2l0aW9uOmxlZnQgY2VudGVyO3dpZHRoOjhweDtoZWlnaHQ6MTJweH0uZGFyay10b29sdGlwLmRhcmsgdWwuY29uZmlybSBsaXtiYWNrZ3JvdW5kLWNvbG9yOiM0MTZlODV9LmRhcmstdG9vbHRpcC5kYXJrIHVsLmNvbmZpcm0gbGk6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjojNDE3ZTg1fS5kYXJrLXRvb2x0aXAubGlnaHQgdWwuY29uZmlybSBsaXtiYWNrZ3JvdW5kLWNvbG9yOiNjMWRiZGJ9LmRhcmstdG9vbHRpcC5saWdodCB1bC5jb25maXJtIGxpOmhvdmVye2JhY2tncm91bmQtY29sb3I6I2RjZThlOH0uYW5pbWF0ZWR7LXdlYmtpdC1hbmltYXRpb24tZmlsbC1tb2RlOmJvdGg7LW1vei1hbmltYXRpb24tZmlsbC1tb2RlOmJvdGg7LW1zLWFuaW1hdGlvbi1maWxsLW1vZGU6Ym90aDstby1hbmltYXRpb24tZmlsbC1tb2RlOmJvdGg7YW5pbWF0aW9uLWZpbGwtbW9kZTpib3RoOy13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOi41czstbW96LWFuaW1hdGlvbi1kdXJhdGlvbjouNXM7LW1zLWFuaW1hdGlvbi1kdXJhdGlvbjouNXM7LW8tYW5pbWF0aW9uLWR1cmF0aW9uOi41czthbmltYXRpb24tZHVyYXRpb246LjVzfUAtd2Via2l0LWtleWZyYW1lcyBmbGlwSW5VcHswLjAwMDEley13ZWJraXQtdHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVYKC05MGRlZyk7b3BhY2l0eTowfTQwJXstd2Via2l0LXRyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlWCg1ZGVnKX03MCV7LXdlYmtpdC10cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVgoLTVkZWcpfTEwMCV7LXdlYmtpdC10cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVgoMCk7b3BhY2l0eToxfX1ALW1vei1rZXlmcmFtZXMgZmxpcEluVXB7MC4wMDAxJXt0cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVgoLTkwZGVnKTtvcGFjaXR5OjB9NDAle3RyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlWCg1ZGVnKX03MCV7dHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVYKC01ZGVnKX0xMDAle3RyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlWCgwKTtvcGFjaXR5OjF9fUAtby1rZXlmcmFtZXMgZmxpcEluVXB7MC4wMDAxJXstby10cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVgoLTkwZGVnKTtvcGFjaXR5OjB9NDAley1vLXRyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlWCg1ZGVnKX03MCV7LW8tdHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVYKC01ZGVnKX0xMDAley1vLXRyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlWCgwKTtvcGFjaXR5OjF9fUBrZXlmcmFtZXMgZmxpcEluVXB7MC4wMDAxJXt0cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVgoLTkwZGVnKTtvcGFjaXR5OjB9NDAle3RyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlWCg1ZGVnKX03MCV7dHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVYKC01ZGVnKX0xMDAle3RyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlWCgwKTtvcGFjaXR5OjF9fUAtd2Via2l0LWtleWZyYW1lcyBmbGlwSW5SaWdodHswLjAwMDEley13ZWJraXQtdHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVZKC05MGRlZyk7b3BhY2l0eTowfTQwJXstd2Via2l0LXRyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlWSg1ZGVnKX03MCV7LXdlYmtpdC10cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVkoLTVkZWcpfTEwMCV7LXdlYmtpdC10cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVkoMCk7b3BhY2l0eToxfX1ALW1vei1rZXlmcmFtZXMgZmxpcEluUmlnaHR7MC4wMDAxJXt0cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVkoLTkwZGVnKTtvcGFjaXR5OjB9NDAle3RyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlWSg1ZGVnKX03MCV7dHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVZKC01ZGVnKX0xMDAle3RyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlWSgwKTtvcGFjaXR5OjF9fUAtby1rZXlmcmFtZXMgZmxpcEluUmlnaHR7MC4wMDAxJXstby10cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVkoLTkwZGVnKTtvcGFjaXR5OjB9NDAley1vLXRyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlWSg1ZGVnKX03MCV7LW8tdHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVZKC01ZGVnKX0xMDAley1vLXRyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlWSgwKTtvcGFjaXR5OjF9fUBrZXlmcmFtZXMgZmxpcEluUmlnaHR7MC4wMDAxJXt0cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVkoLTkwZGVnKTtvcGFjaXR5OjB9NDAle3RyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlWSg1ZGVnKX03MCV7dHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVZKC01ZGVnKX0xMDAle3RyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlWSgwKTtvcGFjaXR5OjF9fS5mbGlwSW57LXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OnZpc2libGUgIWltcG9ydGFudDstbW96LWJhY2tmYWNlLXZpc2liaWxpdHk6dmlzaWJsZSAhaW1wb3J0YW50Oy1vLWJhY2tmYWNlLXZpc2liaWxpdHk6dmlzaWJsZSAhaW1wb3J0YW50O2JhY2tmYWNlLXZpc2liaWxpdHk6dmlzaWJsZSAhaW1wb3J0YW50fS5mbGlwSW4uc291dGgsLmZsaXBJbi5ub3J0aHstd2Via2l0LWFuaW1hdGlvbi1uYW1lOmZsaXBJblVwOy1tb3otYW5pbWF0aW9uLW5hbWU6ZmxpcEluVXA7LW8tYW5pbWF0aW9uLW5hbWU6ZmxpcEluVXA7YW5pbWF0aW9uLW5hbWU6ZmxpcEluVXB9LmZsaXBJbi53ZXN0LC5mbGlwSW4uZWFzdHstd2Via2l0LWFuaW1hdGlvbi1uYW1lOmZsaXBJblJpZ2h0Oy1tb3otYW5pbWF0aW9uLW5hbWU6ZmxpcEluUmlnaHQ7LW8tYW5pbWF0aW9uLW5hbWU6ZmxpcEluUmlnaHQ7YW5pbWF0aW9uLW5hbWU6ZmxpcEluUmlnaHR9QC13ZWJraXQta2V5ZnJhbWVzIGZhZGVJbnswe29wYWNpdHk6MH0xMDAle29wYWNpdHk6MX19QC1tb3ota2V5ZnJhbWVzIGZhZGVJbnswe29wYWNpdHk6MH0xMDAle29wYWNpdHk6MX19QC1vLWtleWZyYW1lcyBmYWRlSW57MHtvcGFjaXR5OjB9MTAwJXtvcGFjaXR5OjF9fUBrZXlmcmFtZXMgZmFkZUluezB7b3BhY2l0eTowfTEwMCV7b3BhY2l0eToxfX0uZmFkZUluey13ZWJraXQtYW5pbWF0aW9uLW5hbWU6ZmFkZUluOy1tb3otYW5pbWF0aW9uLW5hbWU6ZmFkZUluOy1vLWFuaW1hdGlvbi1uYW1lOmZhZGVJbjthbmltYXRpb24tbmFtZTpmYWRlSW59Ci8qKiAvY3NzL3JldmVhbC5jc3MgKiovCi5yZXZlYWwtbW9kYWwtYmcgeyBwb3NpdGlvbjpmaXhlZDsgaGVpZ2h0OjEwMCU7IHdpZHRoOjEwMCU7IGJhY2tncm91bmQ6IzAwMDsgYmFja2dyb3VuZDpyZ2JhKDAsMCwwLC44KTsgei1pbmRleDoxMDAwMDA5OyBkaXNwbGF5Om5vbmU7IHRvcDowOyBsZWZ0OjA7IH0gLnJldmVhbC1tb2RhbCB7IHZpc2liaWxpdHk6aGlkZGVuOyB0b3A6LTEwMDBweDsgd2lkdGg6bWluKDUyMHB4LCA5MHZ3KTsgYmFja2dyb3VuZDojZWVlIHVybCgvaW1hZ2VzL21vZGFsLWdsb3NzLnBuZykgbm8tcmVwZWF0IC0yMDBweCAtODBweDsgYmFja2dyb3VuZC1jb2xvcjojZWVlOyBwb3NpdGlvbjphYnNvbHV0ZTsgbGVmdDowOyByaWdodDowOyBtYXJnaW46YXV0bzsgei1pbmRleDoxMDAwMDIwOyBwYWRkaW5nOjMwcHggNDBweCAzNHB4OyAtbW96LWJvcmRlci1yYWRpdXM6NXB4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6NXB4OyBib3JkZXItcmFkaXVzOjVweDsgLW1vei1ib3gtc2hhZG93OjAgMCAxMHB4IHJnYmEoMCwwLDAsLjQpOyAtd2Via2l0LWJveC1zaGFkb3c6MCAwIDEwcHggcmdiYSgwLDAsMCwuNCk7IC1ib3gtc2hhZG93OjAgMCAxMHB4IHJnYmEoMCwwLDAsLjQpOyB9IC5yZXZlYWwtbW9kZWwtZG8tbm90LXNob3cgeyB2aXNpYmlsaXR5OmhpZGRlbjsgdG9wOjEwMHB4OyB3aWR0aDo1MjBweDsgcG9zaXRpb246YWJzb2x1dGU7IHotaW5kZXg6MTAwMDAyMDsgcGFkZGluZzozMHB4IDQwcHggMzRweDsgYmFja2dyb3VuZDpub25lOyAtbW96LWJvcmRlci1yYWRpdXM6MHB4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6MHB4OyBib3JkZXItcmFkaXVzOjBweDsgLW1vei1ib3gtc2hhZG93Om5vbmU7IC13ZWJraXQtYm94LXNoYWRvdzpub25lOyAtYm94LXNoYWRvdzpub25lOyB9IC4tLWlzLXBvcHVwLWZpeGVkLWNvbnRhaW5lciB7IHBvc2l0aW9uOmZpeGVkOyB0b3A6MDsgbGVmdDowOyByaWdodDowOyB6LWluZGV4OjEwMDAwMDAwMDsgfSAucmV2ZWFsLW1vZGFsLnNtYWxsIHsgd2lkdGg6MjAwcHg7fSAucmV2ZWFsLW1vZGFsLm1lZGl1bSB7IHdpZHRoOjQwMHB4O30gLnJldmVhbC1tb2RhbC5sYXJnZSB7IHdpZHRoOjYwMHB4O30gLnJldmVhbC1tb2RhbC54bGFyZ2UgeyB3aWR0aDo4MDBweDt9IC5yZXZlYWwtbW9kYWwgLmNsb3NlLXJldmVhbC1tb2RhbCB7IGZvbnQtc2l6ZToxLjM3NXJlbSA7IGxpbmUtaGVpZ2h0Oi41OyBwb3NpdGlvbjphYnNvbHV0ZTsgdG9wOjlweDsgcmlnaHQ6MTBweDsgY29sb3I6IzQ0NDsgdGV4dC1zaGFkb3c6MCAtMXB4IDFweCByYmdhKDAsMCwwLC42KTsgZm9udC13ZWlnaHQ6Ym9sZDsgY3Vyc29yOnBvaW50ZXI7IH0gLmNsb3NlLXJldmVhbC1tb2RhbC5tb2RhbC1jbG9zZS1oaWRlIHsgZGlzcGxheTpub25lOyB9IC5yZXZlYWwtbW9kYWwgc3BhbiB7IHBhZGRpbmc6MHB4OyBmb250LXNpemU6MS41cmVtIDsgbWFyZ2luLWJvdHRvbToxMHB4OyBjb2xvcjojNDE0MTQxOyB9IC5yZXZlYWwtbW9kYWwgc3Bhbi5zdWNjZXNzIHsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9jaXJjbGUtZ3JlZW4tMjQtbnMucG5nKSBuby1yZXBlYXQgc2Nyb2xsIGxlZnQgY2VudGVyIHRyYW5zcGFyZW50OyB9IC5yZXZlYWwtbW9kYWwgc3Bhbi5mYWlsIHsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9jaXJjbGUtcmVkLTI0LW5zLnBuZykgbm8tcmVwZWF0IHNjcm9sbCBsZWZ0IGNlbnRlciB0cmFuc3BhcmVudDsgfSAucmV2ZWFsLW1vZGFsIHAgeyBtYXJnaW46MCA7IGZvbnQtc2l6ZTowLjkzOHJlbSA7IGNvbG9yOiM0MTQxNDE7IH0gLnBvcHVwLWRvbS1ub3dyYXBwZXIgeyBiYWNrZ3JvdW5kOm5vbmUgIWltcG9ydGFudDsgYm94LXNoYWRvdzpub25lOyB9IEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC1kZXZpY2Utd2lkdGg6NDgwcHgpIHsgLnJldmVhbC1tb2RhbCwgLnJldmVhbC1tb2RlbC1kby1ub3Qtc2hvdyB7IHRvcDoxMHB4OyB6LWluZGV4OjEwMDAwMjA7IHBhZGRpbmc6MC41cmVtOyBwYWRkaW5nLXRvcDoycmVtOyB9IC5yZXZlYWwtbW9kYWwgLmNsb3NlLXJldmVhbC1tb2RhbCB7IGZvbnQtc2l6ZToxLjg3NXJlbSA7IGxpbmUtaGVpZ2h0OjAuNjsgcmlnaHQ6MC41cmVtOyB0b3A6MC41cmVtOyB6LWluZGV4OjE7IH0gfSAuZW1haWwtY29uc2VudC1ib3ggOmlzKC50aXRsZS10eHQsIHApeyBtYXJnaW4tbGVmdDowOyBwYWRkaW5nOjA7IGNvbG9yOiM0MTQxNDE7IH0gLmVtYWlsLWNvbnNlbnQtYm94eyBiYWNrZ3JvdW5kLWNvbG9yOiNlZWU7IGNvbG9yOiM0MTQxNDE7IH0gLmVtYWlsLWNvbnNlbnQtYm94IC5pY29uLXRpdGxleyB0ZXh0LWFsaWduOmNlbnRlcjsgfQovKiogL2Nzcy9tYWluLmNzcyAqKi8KLi1sZWZ0IHtmbG9hdDpsZWZ0IWltcG9ydGFudDt9IC4tcmlnaHQge2Zsb2F0OnJpZ2h0fSAuLXNtYWxsIHtmb250LXNpemU6LjhlbTttYXJnaW4tYm90dG9tOjEuODc1ZW07bGluZS1oZWlnaHQ6MS44NzVlbSFpbXBvcnRhbnQ7fSAuLWxhcmdlIHtmb250LXNpemU6MS4yZW07bGluZS1oZWlnaHQ6Mi41ZW07bWFyZ2luLWJvdHRvbToxLjI1ZW0haW1wb3J0YW50O30gLi1oaWRlIHtkaXNwbGF5Om5vbmUhaW1wb3J0YW50O30gLi1xdWlldCB7Y29sb3I6IzY2NiFpbXBvcnRhbnQ7fSAuLWxvdWQge2NvbG9yOiMwMDAwMDAhaW1wb3J0YW50O30gLi1oaWdobGlnaHQge2JhY2tncm91bmQ6I2ZmMCFpbXBvcnRhbnQ7fSAuLWFkZGVkIHtiYWNrZ3JvdW5kOiMwNjA7Y29sb3I6I2ZmZiFpbXBvcnRhbnQ7fSAuLXJlbW92ZWQge2JhY2tncm91bmQ6IzkwMDtjb2xvcjojZmZmIWltcG9ydGFudDt9IC4tcHVzaC1maXJzdCB7bWFyZ2luLWxlZnQ6MDtwYWRkaW5nLWxlZnQ6MCFpbXBvcnRhbnQ7fSAuLXB1c2gtbGFzdCB7bWFyZ2luLXJpZ2h0OjA7cGFkZGluZy1yaWdodDowIWltcG9ydGFudDt9IC4tcHVzaC1sZWZ0IHttYXJnaW4tdG9wOjA7cGFkZGluZy10b3A6MCFpbXBvcnRhbnQ7fSAuLXB1c2gtYm90dG9tIHttYXJnaW4tYm90dG9tOjA7cGFkZGluZy1ib3R0b206MCFpbXBvcnRhbnQ7fSAuLW5vYm9yZGVyIHtib3JkZXI6MCFpbXBvcnRhbnQ7fSAuLW5vZGVjb3JhdGlvbiwgLi1uby10ZXh0LWRlY29yYXRpb24sIC4tbm90ZXh0LWRlY29yYXRpb24ge3RleHQtZGVjb3JhdGlvbjpub25lIWltcG9ydGFudDt9IC4tdGV4dC11cHBlcmNhc2UsIC4tdXBwZXJjYXNlLCAudGV4dC11cHBlcmNhc2Uge3RleHQtdHJhbnNmb3JtOnZhcigtLXR4dC11cHBlcik7fSAuLXRleHQtbG93ZXJjYXNlLCAuLWxvd2VyY2FzZSB7dGV4dC10cmFuc2Zvcm06bG93ZXJjYXNlIWltcG9ydGFudDt9IC4taGlkZGVuIHsgZGlzcGxheTpub25lOyB9IC4tdGV4dC1ib2xkLC5ib2xke2ZvbnQtd2VpZ2h0OmJvbGQhaW1wb3J0YW50O30gLi10ZXh0LW5vcm1hbCwubm9ybWFse2ZvbnQtd2VpZ2h0Om5vcm1hbCFpbXBvcnRhbnQ7fSAuLWFsaWduLXRvcCB7dmVydGljYWwtYWxpZ246dG9wIWltcG9ydGFudDt9IC4tYWxpZ24tbWlkZGxlIHt2ZXJ0aWNhbC1hbGlnbjptaWRkbGUhaW1wb3J0YW50O30gLi1saW5lLWgxeyBsaW5lLWhlaWdodDoxZW07IH0gLi1saW5lLWgyeyBsaW5lLWhlaWdodDoyZW07IH0gLi1ib3R0b20weyBib3R0b206MDsgfSAuLWJvdHRvbTAtaW1wb3J0YW50eyBib3R0b206MCFpbXBvcnRhbnQ7IH0gLlBvcnNjaGUyeyBjbGVhcjpib3RoOyB9IC5ibGFjay10ZXh0IHsgY29sb3I6IzAwMDAwMDsgfSA6OnBsYWNlaG9sZGVyIHsgcGFkZGluZy10b3A6MXB4OyBjb2xvcjojYTlhOWE5OyBvcGFjaXR5OjE7IH0gOi1tcy1pbnB1dC1wbGFjZWhvbGRlciB7IGNvbG9yOiNhOWE5YTk7IH0gOjotbXMtaW5wdXQtcGxhY2Vob2xkZXIgeyBjb2xvcjojYTlhOWE5OyB9ICNjYXJUaXRsZSAuZmEtY2hldnJvbi1yaWdodCwgLlNwZWNpZmljYXRpb25zIC5mYS1jaGV2cm9uLXJpZ2h0IHsgYm9yZGVyLXJhZGl1czozMHB4OyB3aWR0aDoyMHB4OyBoZWlnaHQ6MjVweDsgcGFkZGluZy10b3A6NHB4OyBwYWRkaW5nLWxlZnQ6OXB4OyBmbG9hdDpsZWZ0OyBtYXJnaW4tdG9wOjhweDsgZm9udC1zaXplOjEuMzc1cmVtIDsgYm9yZGVyOjFweCBzb2xpZCAjMTAyYjRlOyBiYWNrZ3JvdW5kLWNvbG9yOiNmM2YzZjM7IGNvbG9yOiMxMDJiNGUgOyBtYXJnaW4tcmlnaHQ6MTBweDsgfSAuU3BlY2lmaWNhdGlvbnMgLmZhLWNoZXZyb24tcmlnaHR7IG1hcmdpbi10b3A6MXB4OyB9ICNjYXJUaXRsZSAubWFrZU1vZGVsWWVhcnsgZm9udC1zaXplOjEuNTYzcmVtIDsgfSAjY2FyVGl0bGUgLmRlYWxlckxjYXRpb25DYXJUaXRsZSB7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgY29sb3I6IzljOWM5YzsgZm9udC1zaXplOjEuMTI1cmVtIDsgbGV0dGVyLXNwYWNpbmc6LTFweDsgfSAuY2FyVGl0bGUgLmZhLWNoZXZyb24tcmlnaHR7IGJvcmRlci1yYWRpdXM6MzBweDsgd2lkdGg6MjBweDsgaGVpZ2h0OjI1cHg7IHBhZGRpbmctdG9wOjRweDsgcGFkZGluZy1sZWZ0OjlweDsgZmxvYXQ6bGVmdDsgbWFyZ2luLXRvcDo4cHg7IGZvbnQtc2l6ZToxLjM3NXJlbSA7IGJvcmRlcjoxcHggc29saWQgIzEwMmI0ZTsgYmFja2dyb3VuZC1jb2xvcjojZjNmM2YzOyBjb2xvcjojMTAyYjRlIDsgbWFyZ2luLXJpZ2h0OjEwcHg7IH0gLmNhclRpdGxlIC5tYWtlTW9kZWxZZWFyeyBmb250LXNpemU6MS40MzhyZW0gOyB9IC5jYXJUaXRsZSAuZGVhbGVyTGNhdGlvbkNhclRpdGxlIHsgZm9udC13ZWlnaHQ6bm9ybWFsOyBjb2xvcjojOWM5YzljOyBmb250LXNpemU6MC45MzhyZW0gOyBsZXR0ZXItc3BhY2luZzotMXB4OyB9ICNTZWFyY2hUaXRsZSAuZmEtY2hldnJvbi1yaWdodHsgYm9yZGVyLXJhZGl1czozMHB4OyB3aWR0aDozMXB4OyBoZWlnaHQ6NDFweDsgcGFkZGluZy10b3A6NXB4OyBwYWRkaW5nLWxlZnQ6MTRweDsgZmxvYXQ6bGVmdDsgbWFyZ2luLXRvcDo4cHg7IGZvbnQtc2l6ZToyLjE4OHJlbSA7IGJvcmRlcjoxcHggc29saWQgIzEwMmI0ZTsgYmFja2dyb3VuZC1jb2xvcjojZjNmM2YzOyBjb2xvcjojMTAyYjRlIDsgbWFyZ2luLXJpZ2h0OjEwcHg7IH0gI1NlYXJjaFRpdGxlIC5kZWFsZXJMY2F0aW9uQ2FyVGl0bGUgeyBmb250LXdlaWdodDpub3JtYWw7IGNvbG9yOiM5YzljOWM7IGZvbnQtc2l6ZToxcmVtIDsgbGV0dGVyLXNwYWNpbmc6LTFweDsgbWFyZ2luLWxlZnQ6NDVweDsgZGlzcGxheTpibG9jazsgfSAudWktbXVsdGlzZWxlY3QtY2hlY2tib3hlcyBsYWJlbCBpbnB1dCB7IHBvc2l0aW9uOnJlbGF0aXZlOyB0b3A6MXB4OyBtYXJnaW4tcmlnaHQ6OHB4OyBoZWlnaHQ6MTNweDsgfSAudWktd2lkZ2V0LC51aS1zdGF0ZS1ob3ZlciwgLnVpLXdpZGdldC1jb250ZW50IC51aS1zdGF0ZS1ob3ZlciwgLnVpLXdpZGdldC1oZWFkZXIgLnVpLXN0YXRlLWhvdmVyLCAudWktc3RhdGUtZm9jdXMsIC51aS13aWRnZXQtY29udGVudCAudWktc3RhdGUtZm9jdXMsIC51aS13aWRnZXQtaGVhZGVyIC51aS1zdGF0ZS1mb2N1cywgLnVpLXN0YXRlLWRlZmF1bHQsIC51aS13aWRnZXQtY29udGVudCAudWktc3RhdGUtZGVmYXVsdCwgLnVpLXdpZGdldC1oZWFkZXIgLnVpLXN0YXRlLWRlZmF1bHR7IGJhY2tncm91bmQ6I2ZmZiFpbXBvcnRhbnQ7IGNvbG9yOiM1NTU7IGZvbnQtc2l6ZTowLjkzOHJlbSAhaW1wb3J0YW50OyB9IC51aS1zdGF0ZS1kZWZhdWx0LCAudWktd2lkZ2V0LWNvbnRlbnQgLnVpLXN0YXRlLWRlZmF1bHQsIC51aS13aWRnZXQtaGVhZGVyIC51aS1zdGF0ZS1kZWZhdWx0eyBwYWRkaW5nOjhweCAxMHB4IWltcG9ydGFudDsgfSAudWktbXVsdGlzZWxlY3QtY2hlY2tib3hlcyBsaXsgZm9udC1zaXplOjAuOTM4cmVtICFpbXBvcnRhbnQ7IH0gLnVpLWNvcm5lci1hbGx7IGJvcmRlci1yYWRpdXM6MHB4IWltcG9ydGFudDsgfSAuLWNvbGxhcHNleyBib3JkZXItY29sbGFwc2U6Y29sbGFwc2U7IH0gLi1saXsgbGlzdC1zdHlsZS10eXBlOm5vbmU7IH0gLi1uby1zaGFkb3csIC4tc2hhZG93MCwgLi1ub3NoYWRvd3sgYm94LXNoYWRvdzpub25lIWltcG9ydGFudDsgfSAuLXVuZGVybGluZXsgdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZSFpbXBvcnRhbnQ7IH0gLi10b3AweyB0b3A6MDsgfSAuLXRleHQtbGVmdHt0ZXh0LWFsaWduOmxlZnQhaW1wb3J0YW50O30gLi10ZXh0LXJpZ2h0e3RleHQtYWxpZ246cmlnaHQhaW1wb3J0YW50O30gLi10ZXh0LWNlbnRlcnt0ZXh0LWFsaWduOmNlbnRlciFpbXBvcnRhbnQ7fSAuLXRleHQtcmVkLCAuLXJlZC10ZXh0e2NvbG9yOnJlZCFpbXBvcnRhbnQ7fSAuLWJsb2Nre2Rpc3BsYXk6YmxvY2shaW1wb3J0YW50O30gLi1pbmxpbmUtYmxvY2t7ZGlzcGxheTppbmxpbmUtYmxvY2shaW1wb3J0YW50O30gLi1ub25lLCAuLWhpZGRlbiwgLi1oaWRkZSB7ZGlzcGxheTpub25lIWltcG9ydGFudDt9IC4taW5saW5lIHtkaXNwbGF5OmlubGluZSFpbXBvcnRhbnQ7fSAuLWNvbG9yMSB7IGNvbG9yOiM1NzU3NTchaW1wb3J0YW50O30gLi10aXRsZTEgeyBmb250LXNpemU6MS40MzhyZW0gIWltcG9ydGFudDsgZm9udC1jb2xvcjojMDAwMDAwICFpbXBvcnRhbnQ7IHRleHQtZGVjb3JhdGlvbjpub25lIWltcG9ydGFudDsgfSAuLWlucHV0IHsgZm9udC1zaXplOjAuODEzcmVtIDsgbGluZS1oZWlnaHQ6MTVweDsgdmVydGljYWwtYWxpZ246bWlkZGxlOyBoZWlnaHQ6MzJweDsgY29sb3I6IzQwNDA0MDsgcGFkZGluZzowcHggNnB4IWltcG9ydGFudDsgbWFyZ2luOjBweDsgb3V0bGluZTpub25lOyBtaW4taGVpZ2h0OjIwcHg7IGJvcmRlcjoxcHggc29saWQgI2NlZDRkYTsgYm9yZGVyLXJhZGl1czouMjVyZW07IHRyYW5zaXRpb246Ym9yZGVyLWNvbG9yIC4xNXMgZWFzZS1pbi1vdXQsYm94LXNoYWRvdyAuMTVzIGVhc2UtaW4tb3V0OyB9IC4taW5wdXQ6Zm9jdXMsIC4taW5wdXQ6aG92ZXJ7IGJvcmRlci1jb2xvcjojODBiZGZmICFpbXBvcnRhbnQ7IGJveC1zaGFkb3c6MCAwIDAgMC4ycmVtIHJnYmEoMCwxMjMsMjU1LC4yNSk7IH0gLi1wb3NpdGlvbi1zdGF0aWMsIC4tcG9zLXN0YXRpYywgLi1wb3Mtc3RhdCB7cG9zaXRpb246c3RhdGljIWltcG9ydGFudDt9IC4tcG9zaXRpb24tYWJzb2x1dGUsIC4tcG9zLWFic29sdXRlLCAuLXBvcy1hYnMge3Bvc2l0aW9uOmFic29sdXRlIWltcG9ydGFudDt9IC4tcG9zaXRpb24tZml4ZWQsIC4tcG9zLWZpeGVkLCAuLXBvcy1maXgge3Bvc2l0aW9uOmZpeGVkIWltcG9ydGFudDt9IC4tcG9zaXRpb24tcmVsYXRpdmUsIC4tcG9zLXJlbGF0aXZlLCAuLXBvcy1yZWwge3Bvc2l0aW9uOnJlbGF0aXZlIWltcG9ydGFudDt9IC4tcG9zaXRpb24taW5oZXJpdCwgLi1wb3MtaW5oZXJpdCwgLi1wb3MtaW5oIHtwb3NpdGlvbjppbmhlcml0IWltcG9ydGFudDt9IC1saC0xLTMsIC1saW5lLWhlaWdodC0xLTN7IGxpbmUtaGVpZ2h0OjEuMzsgfSAtbGgtMjB7IGxpbmUtaGVpZ2h0OjIwcHg7IH0gLi1lcnJvciwgLi1hbGVydCwgLi1ub3RpY2UsIC4tc3VjY2VzcywgLi1pbmZvIHtwYWRkaW5nOjAuOGVtO21hcmdpbi1ib3R0b206MWVtO2JvcmRlcjoycHggc29saWQgI2RkZCFpbXBvcnRhbnQ7fSAuLWVycm9yLCAuLWFsZXJ0IHtiYWNrZ3JvdW5kOiNmYmUzZTQ7Y29sb3I6IzhhMWYxMTtib3JkZXItY29sb3I6I2ZiYzJjNCFpbXBvcnRhbnQ7fSAuLW5vdGljZSB7YmFja2dyb3VuZDojZmZmNmJmO2NvbG9yOiM1MTQ3MjE7Ym9yZGVyLWNvbG9yOiNmZmQzMjQhaW1wb3J0YW50O30gLi1zdWNjZXNzIHtiYWNrZ3JvdW5kOiNlNmVmYzI7Y29sb3I6IzI2NDQwOTtib3JkZXItY29sb3I6I2M2ZDg4MCFpbXBvcnRhbnQ7fSAuLWluZm8ge2JhY2tncm91bmQ6I2Q1ZWRmODtjb2xvcjojMjA1NzkxO2JvcmRlci1jb2xvcjojOTJjYWU0IWltcG9ydGFudDt9IC4tZXJyb3IgYSwgLmFsZXJ0IGEge2NvbG9yOiM4YTFmMTEhaW1wb3J0YW50O30gLi1ub3RpY2UgYSB7Y29sb3I6IzUxNDcyMSFpbXBvcnRhbnQ7fSAuLXN1Y2Nlc3MgYSB7Y29sb3I6IzI2NDQwOSFpbXBvcnRhbnQ7fSAuLWluZm8gYSB7Y29sb3I6IzIwNTc5MSFpbXBvcnRhbnQ7fSAuLWJveCB7cGFkZGluZzoxLjVlbTttYXJnaW4tYm90dG9tOjEuNWVtO2JhY2tncm91bmQ6I2U1ZUNmOSFpbXBvcnRhbnQ7fSAtaHIge2JhY2tncm91bmQ6I2RkZGRkZDtjb2xvcjojZGRkZGRkO2NsZWFyOmJvdGg7ZmxvYXQ6bm9uZTt3aWR0aDoxMDAlO2hlaWdodDoxcHg7bWFyZ2luOjAgMCAxN3B4O2JvcmRlcjpub25lIWltcG9ydGFudDt9IC1zcGFjZSB7YmFja2dyb3VuZDojZmZmO2NvbG9yOiNmZmY7dmlzaWJpbGl0eTpoaWRkZW47Y2xlYXI6Ym90aDtmbG9hdDpub25lO3dpZHRoOjEwMCU7aGVpZ2h0OjFweDttYXJnaW46MCAwIDE3cHg7Ym9yZGVyOm5vbmUhaW1wb3J0YW50O30gLi1jbGVhcmZpeDphZnRlciB7Y29udGVudDoiXDAwMjAiO2Rpc3BsYXk6YmxvY2s7aGVpZ2h0OjA7Y2xlYXI6Ym90aDt2aXNpYmlsaXR5OmhpZGRlbjtvdmVyZmxvdzpoaWRkZW4haW1wb3J0YW50O30gLi1jbGVhcmZpeHtkaXNwbGF5OmJsb2NrIWltcG9ydGFudDt9IC4tY2xlYXIge2NsZWFyOmJvdGghaW1wb3J0YW50O30gLmludmlzaWJsZSB7dmlzaWJpbGl0eTpoaWRkZW47fSAuY2xlYXJmaXg6YWZ0ZXIge2NvbnRlbnQ6IiI7IGRpc3BsYXk6dGFibGU7IGNsZWFyOmJvdGg7fSAuLW92ZXJmbG93LWhpZGRlbiB7b3ZlcmZsb3c6aGlkZGVuIWltcG9ydGFudDt9IC4tdzUge3dpZHRoOjVweCFpbXBvcnRhbnQ7fSAuLXcxMCB7d2lkdGg6MTBweCFpbXBvcnRhbnQ7fSAuLXcxNSB7d2lkdGg6MTVweCFpbXBvcnRhbnQ7fSAuLXcxOCB7d2lkdGg6MThweCFpbXBvcnRhbnQ7fSAuLXcyMCB7d2lkdGg6MjBweCFpbXBvcnRhbnQ7fSAuLXcyNSB7d2lkdGg6MjVweCFpbXBvcnRhbnQ7fSAuLXczMCB7d2lkdGg6MzBweCFpbXBvcnRhbnQ7fSAuLXczNSB7d2lkdGg6MzVweCFpbXBvcnRhbnQ7fSAuLXc0MCB7d2lkdGg6NDBweCFpbXBvcnRhbnQ7fSAuLXc0NSB7d2lkdGg6NDVweCFpbXBvcnRhbnQ7fSAuLXc1MCB7d2lkdGg6NTBweCFpbXBvcnRhbnQ7fSAuLXc1NSB7d2lkdGg6NTVweCFpbXBvcnRhbnQ7fSAuLXc2MCB7d2lkdGg6NjBweCFpbXBvcnRhbnQ7fSAuLXc2NSB7d2lkdGg6NjVweCFpbXBvcnRhbnQ7fSAuLXc3MCB7d2lkdGg6NzBweCFpbXBvcnRhbnQ7fSAuLXc3MyB7d2lkdGg6NzNweCFpbXBvcnRhbnQ7fSAuLXc3NSB7d2lkdGg6NzVweCFpbXBvcnRhbnQ7fSAuLXc4MCB7d2lkdGg6ODBweCFpbXBvcnRhbnQ7fSAuLXc4NSB7d2lkdGg6ODVweCFpbXBvcnRhbnQ7fSAuLXc4OCB7d2lkdGg6ODhweCFpbXBvcnRhbnQ7fSAuLXc5MCB7d2lkdGg6OTBweCFpbXBvcnRhbnQ7fSAuLXc5NSB7d2lkdGg6OTVweCFpbXBvcnRhbnQ7fSAuLXcxMDAge3dpZHRoOjEwMHB4IWltcG9ydGFudDt9IC4tdzExMCB7d2lkdGg6MTEwcHghaW1wb3J0YW50O30gLi13MTIwIHt3aWR0aDoxMjBweCFpbXBvcnRhbnQ7fSAuLXcxMjUge3dpZHRoOjEyNXB4IWltcG9ydGFudDt9IC4tdzEzMCB7d2lkdGg6MTMwcHghaW1wb3J0YW50O30gLi13MTM1IHt3aWR0aDoxMzVweCFpbXBvcnRhbnQ7fSAuLXcxNDAge3dpZHRoOjE0MHB4IWltcG9ydGFudDt9IC4tdzE0MyB7d2lkdGg6MTQzcHghaW1wb3J0YW50O30gLi13MTQ1IHt3aWR0aDoxNDVweCFpbXBvcnRhbnQ7fSAuLXcxNTAge3dpZHRoOjE1MHB4IWltcG9ydGFudDt9IC4tdzE3MCB7d2lkdGg6MTgwcHghaW1wb3J0YW50O30gLi13MTgwIHt3aWR0aDoxODBweCFpbXBvcnRhbnQ7fSAuLXcxODUge3dpZHRoOjE4NXB4IWltcG9ydGFudDt9IC4tdzE5MCB7d2lkdGg6MTkwcHghaW1wb3J0YW50O30gLi13MjAwIHt3aWR0aDoyMDBweCFpbXBvcnRhbnQ7fSAuLXcyMTAge3dpZHRoOjIxMHB4IWltcG9ydGFudDt9IC4tdzIxNSB7d2lkdGg6MjE1cHghaW1wb3J0YW50O30gLi13MjIwIHt3aWR0aDoyMjBweCFpbXBvcnRhbnQ7fSAuLXcyMzAge3dpZHRoOjIzMHB4IWltcG9ydGFudDt9IC4tdzI0MCB7d2lkdGg6MjQwcHghaW1wb3J0YW50O30gLi13MjUwIHt3aWR0aDoyNTBweCFpbXBvcnRhbnQ7fSAuLXcyNTUge3dpZHRoOjI1NXB4IWltcG9ydGFudDt9IC4tdzI2MCB7d2lkdGg6MjYwcHghaW1wb3J0YW50O30gLi13MjcwIHt3aWR0aDoyNzBweCFpbXBvcnRhbnQ7fSAuLXcyNzUge3dpZHRoOjI3NXB4IWltcG9ydGFudDt9IC4tdzI4MCB7d2lkdGg6MjgwcHghaW1wb3J0YW50O30gLi13MjkwIHt3aWR0aDoyOTBweCFpbXBvcnRhbnQ7fSAuLXczMDAge3dpZHRoOjMwMHB4IWltcG9ydGFudDt9IC4tdzMxNSB7d2lkdGg6MzE1cHghaW1wb3J0YW50O30gLi13MzIwIHt3aWR0aDozMjBweCFpbXBvcnRhbnQ7fSAuLXczMjUge3dpZHRoOjMyNXB4IWltcG9ydGFudDt9IC4tdzM1MCB7d2lkdGg6MzUwcHghaW1wb3J0YW50O30gLi13NDAwIHt3aWR0aDo0MDBweCFpbXBvcnRhbnQ7fSAuLXc0NTAge3dpZHRoOjQ1MHB4IWltcG9ydGFudDt9IC4tdzQ2MCB7d2lkdGg6NDUwcHghaW1wb3J0YW50O30gLi13NTAwIHt3aWR0aDo1MDBweCFpbXBvcnRhbnQ7fSAuLXc2MzAge3dpZHRoOjYzMHB4IWltcG9ydGFudDt9IC4tdzYyMCB7d2lkdGg6NjIwcHghaW1wb3J0YW50O30gLi13NjI1IHt3aWR0aDo2MjVweCFpbXBvcnRhbnQ7fSAuLXc2NzUge3dpZHRoOjY3NXB4IWltcG9ydGFudDt9IC4tdzY4MCB7d2lkdGg6NjgwcHghaW1wb3J0YW50O30gLi13NjcwIHt3aWR0aDo2NzBweCFpbXBvcnRhbnQ7fSAuLXc3MDAge3dpZHRoOjcwMHB4IWltcG9ydGFudDt9IC4tdzcyMCB7d2lkdGg6NzIwcHghaW1wb3J0YW50O30gLi13NzI1IHt3aWR0aDo3MjVweCFpbXBvcnRhbnQ7fSAuLXc3MzAge3dpZHRoOjczMHB4IWltcG9ydGFudDt9IC4tdzc1MCB7d2lkdGg6NzUwcHghaW1wb3J0YW50O30gLi13ODAwIHt3aWR0aDo4MDBweCFpbXBvcnRhbnQ7fSAuLXc5MDAge3dpZHRoOjkwMHB4IWltcG9ydGFudDt9IC4tdzkzNyB7d2lkdGg6OTM3cHghaW1wb3J0YW50O30gLi13OTQwIHt3aWR0aDo5NDBweCFpbXBvcnRhbnQ7fSAuLXc5NjAge3dpZHRoOjk2MHB4IWltcG9ydGFudDt9IC4tdzk3MCB7d2lkdGg6OTcwcHghaW1wb3J0YW50O30gLi13MTAwMCB7d2lkdGg6MTAwMHB4IWltcG9ydGFudDt9IC4tdzVwIHt3aWR0aDo1JSFpbXBvcnRhbnQ7fSAuLXcxMHAge3dpZHRoOjEwJSFpbXBvcnRhbnQ7fSAuLXcxNXAge3dpZHRoOjIwJSFpbXBvcnRhbnQ7fSAuLXcyMHAge3dpZHRoOjIwJSFpbXBvcnRhbnQ7fSAuLXdxLCAuLXcyNXAge3dpZHRoOjI1JSFpbXBvcnRhbnQ7fSAuLXczMHAge3dpZHRoOjMwJSFpbXBvcnRhbnQ7fSAuLXczNXAge3dpZHRoOjM1JSFpbXBvcnRhbnQ7fSAuLXc0MHAge3dpZHRoOjQwJSFpbXBvcnRhbnQ7fSAuLXc0NXAge3dpZHRoOjQ1JSFpbXBvcnRhbnQ7fSAuLXdoLC4tdzUwcCB7d2lkdGg6NTAlIWltcG9ydGFudDt9IC4tdzU1cCB7d2lkdGg6NTUlIWltcG9ydGFudDt9IC4tdzYwcCB7d2lkdGg6NjAlIWltcG9ydGFudDt9IC4tdzY1cCB7d2lkdGg6NjUlIWltcG9ydGFudDt9IC4tdzcwcCB7d2lkdGg6NzAlIWltcG9ydGFudDt9IC4tdzc1cCB7d2lkdGg6NzUlIWltcG9ydGFudDt9IC4tdzgwcCB7d2lkdGg6ODAlIWltcG9ydGFudDt9IC4tdzg1cCB7d2lkdGg6ODUlIWltcG9ydGFudDt9IC4tdzkwcCB7d2lkdGg6OTAlIWltcG9ydGFudDt9IC4tdzk1cCB7d2lkdGg6OTUlIWltcG9ydGFudDt9IC4td2YsLi13MTAwcCB7d2lkdGg6MTAwJSFpbXBvcnRhbnQ7fSAuLW1heC13LW5vbmUge21heC13aWR0aDpub25lIWltcG9ydGFudDt9IC4taDUge2hlaWdodDo1cHghaW1wb3J0YW50O30gLi1oNiB7aGVpZ2h0OjZweCFpbXBvcnRhbnQ7fSAuLWg3IHtoZWlnaHQ6N3B4IWltcG9ydGFudDt9IC4taDgge2hlaWdodDo4cHghaW1wb3J0YW50O30gLi1oOSB7aGVpZ2h0OjlweCFpbXBvcnRhbnQ7fSAuLWgxMCB7aGVpZ2h0OjEwcHghaW1wb3J0YW50O30gLi1oMTEge2hlaWdodDoxMXB4IWltcG9ydGFudDt9IC4taDEyIHtoZWlnaHQ6MTJweCFpbXBvcnRhbnQ7fSAuLWgxMyB7aGVpZ2h0OjEzcHghaW1wb3J0YW50O30gLi1oMTQge2hlaWdodDoxNHB4IWltcG9ydGFudDt9IC4taDE1IHtoZWlnaHQ6MTVweCFpbXBvcnRhbnQ7fSAuLWgyMCB7aGVpZ2h0OjIwcHghaW1wb3J0YW50O30gLi1oMjUge2hlaWdodDoyNXB4IWltcG9ydGFudDt9IC4taDMwIHtoZWlnaHQ6MzBweCFpbXBvcnRhbnQ7fSAuLWgzMiB7aGVpZ2h0OjMycHghaW1wb3J0YW50O30gLi1oMzUge2hlaWdodDozNXB4IWltcG9ydGFudDt9IC4taDQwIHtoZWlnaHQ6NDBweCFpbXBvcnRhbnQ7fSAuLWg0NSB7aGVpZ2h0OjQ1cHghaW1wb3J0YW50O30gLi1oNTAge2hlaWdodDo1MHB4IWltcG9ydGFudDt9IC4taDU1IHtoZWlnaHQ6NTVweCFpbXBvcnRhbnQ7fSAuLWg2MCB7aGVpZ2h0OjYwcHghaW1wb3J0YW50O30gLi1oNjUge2hlaWdodDo2NXB4IWltcG9ydGFudDt9IC4taDcwIHtoZWlnaHQ6NzBweCFpbXBvcnRhbnQ7fSAuLWg3NSB7aGVpZ2h0Ojc1cHghaW1wb3J0YW50O30gLi1oODAge2hlaWdodDo4MHB4IWltcG9ydGFudDt9IC4taDg1IHtoZWlnaHQ6ODVweCFpbXBvcnRhbnQ7fSAuLWg5MCB7aGVpZ2h0OjkwcHghaW1wb3J0YW50O30gLi1oOTUge2hlaWdodDo5NXB4IWltcG9ydGFudDt9IC4taDEwMCB7aGVpZ2h0OjEwMHB4IWltcG9ydGFudDt9IC4taDExMCB7aGVpZ2h0OjExMHB4IWltcG9ydGFudDt9IC4taDEyMCB7aGVpZ2h0OjEyMHB4IWltcG9ydGFudDt9IC4taDEzMCB7aGVpZ2h0OjEzMHB4IWltcG9ydGFudDt9IC4taDE0MCB7aGVpZ2h0OjE0MHB4IWltcG9ydGFudDt9IC4taDE1MCB7aGVpZ2h0OjE1MHB4IWltcG9ydGFudDt9IC4taDE2MCB7aGVpZ2h0OjE2MHB4IWltcG9ydGFudDt9IC4taDE3MCB7aGVpZ2h0OjE3MHB4IWltcG9ydGFudDt9IC4taDE4MCB7aGVpZ2h0OjE4MHB4IWltcG9ydGFudDt9IC4taDE5MCB7aGVpZ2h0OjE5MHB4IWltcG9ydGFudDt9IC4taDIwMCB7aGVpZ2h0OjIwMHB4IWltcG9ydGFudDt9IC4taDIyMCB7aGVpZ2h0OjIyMHB4IWltcG9ydGFudDt9IC4taDIzMCB7aGVpZ2h0OjIzMHB4IWltcG9ydGFudDt9IC4taDI0MCB7aGVpZ2h0OjI0MHB4IWltcG9ydGFudDt9IC4taDI0NSB7aGVpZ2h0OjI0NXB4IWltcG9ydGFudDt9IC4taDI0OCB7aGVpZ2h0OjI0OHB4IWltcG9ydGFudDt9IC4taDI1MCB7aGVpZ2h0OjI1MHB4IWltcG9ydGFudDt9IC4taDI1NSB7aGVpZ2h0OjI1NXB4IWltcG9ydGFudDt9IC4taDI2MCB7aGVpZ2h0OjI2MHB4IWltcG9ydGFudDt9IC4taDMwMCB7aGVpZ2h0OjMwMHB4IWltcG9ydGFudDt9IC4taDM1MCB7aGVpZ2h0OjM1MHB4IWltcG9ydGFudDt9IC4taDQwMCB7aGVpZ2h0OjQwMHB4IWltcG9ydGFudDt9IC4taDQ1MCB7aGVpZ2h0OjQ1MHB4IWltcG9ydGFudDt9IC4taDUwMCB7aGVpZ2h0OjUwMHB4IWltcG9ydGFudDt9IC4taDU1MCB7aGVpZ2h0OjU1MHB4IWltcG9ydGFudDt9IC4taDYwMCB7aGVpZ2h0OjYwMHB4IWltcG9ydGFudDt9IC4taDY1MCB7aGVpZ2h0OjY1MHB4IWltcG9ydGFudDt9IC4taDcwMCB7aGVpZ2h0OjcwMHB4IWltcG9ydGFudDt9IC4taDc1MCB7aGVpZ2h0Ojc1MHB4IWltcG9ydGFudDt9IC4taDgwMCB7aGVpZ2h0OjgwMHB4IWltcG9ydGFudDt9IC4taDkwMCB7aGVpZ2h0OjkwMHB4IWltcG9ydGFudDt9IC4taDEwMDAge2hlaWdodDoxMDAwcHghaW1wb3J0YW50O30gLi1oNXAge2hlaWdodDo1JSFpbXBvcnRhbnQ7fSAuLWgxMHAge2hlaWdodDoxMCUhaW1wb3J0YW50O30gLi1oMTVwIHtoZWlnaHQ6MTUlIWltcG9ydGFudDt9IC4taDIwcCB7aGVpZ2h0OjIwJSFpbXBvcnRhbnQ7fSAuLWhxLCAuLWgyNXAge2hlaWdodDoyNSUhaW1wb3J0YW50O30gLi1oaCwuLWg1MHAge2hlaWdodDo1MCUhaW1wb3J0YW50O30gLi1oZiwuLWgxMDBwIHtoZWlnaHQ6MTAwJSFpbXBvcnRhbnQ7fSAuLWJveC1zLWJ7IC13ZWJraXQtYm94LXNpemluZzpib3JkZXItYm94OyAtbW96LWJveC1zaXppbmc6Ym9yZGVyLWJveDsgYm94LXNpemluZzpib3JkZXItYm94OyB9IC4tYm94LWNvbnRlbnR7IGJveC1zaXppbmc6Y29udGVudC1ib3g7IH0gLi1mbGV4e2Rpc3BsYXk6ZmxleDt9IC4tZmxleC1jb2x1bW57ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjt9IC4tYWktY2VudGVye2FsaWduLWl0ZW1zOmNlbnRlcjt9IC4tcDAsLi1ub3BhZGRpbmcsLi1ub3BhZGRpbmdzIHtwYWRkaW5nOjA7fSAuLXAxIHtwYWRkaW5nOjFweCFpbXBvcnRhbnQ7fSAuLXAyIHtwYWRkaW5nOjJweCFpbXBvcnRhbnQ7fSAuLXAzIHtwYWRkaW5nOjNweCFpbXBvcnRhbnQ7fSAuLXA0IHtwYWRkaW5nOjRweCFpbXBvcnRhbnQ7fSAuLXA1IHtwYWRkaW5nOjVweCFpbXBvcnRhbnQ7fSAuLXA2IHtwYWRkaW5nOjZweCFpbXBvcnRhbnQ7fSAuLXA3IHtwYWRkaW5nOjdweCFpbXBvcnRhbnQ7fSAuLXA4IHtwYWRkaW5nOjhweCFpbXBvcnRhbnQ7fSAuLXA5IHtwYWRkaW5nOjlweCFpbXBvcnRhbnQ7fSAuLXAxMCB7cGFkZGluZzoxMHB4IWltcG9ydGFudDt9IC4tcDE1IHtwYWRkaW5nOjE1cHghaW1wb3J0YW50O30gLi1wMjAge3BhZGRpbmc6MjBweCFpbXBvcnRhbnQ7fSAuLXAyNSB7cGFkZGluZzoyNXB4IWltcG9ydGFudDt9IC4tcDMwIHtwYWRkaW5nOjMwcHghaW1wb3J0YW50O30gLi1wMzUge3BhZGRpbmc6MzVweCFpbXBvcnRhbnQ7fSAuLXA0MCB7cGFkZGluZzo0MHB4IWltcG9ydGFudDt9IC4tcDQ1IHtwYWRkaW5nOjQ1cHghaW1wb3J0YW50O30gLi1wNTAge3BhZGRpbmc6NTBweCFpbXBvcnRhbnQ7fSAuLXBsMCB7cGFkZGluZy1sZWZ0OjAhaW1wb3J0YW50O30gLi1wbDEge3BhZGRpbmctbGVmdDoxcHghaW1wb3J0YW50O30gLi1wbDIge3BhZGRpbmctbGVmdDoycHghaW1wb3J0YW50O30gLi1wbDMge3BhZGRpbmctbGVmdDozcHghaW1wb3J0YW50O30gLi1wbDQge3BhZGRpbmctbGVmdDo0cHghaW1wb3J0YW50O30gLi1wbDUge3BhZGRpbmctbGVmdDo1cHghaW1wb3J0YW50O30gLi1wbDYge3BhZGRpbmctbGVmdDo2cHghaW1wb3J0YW50O30gLi1wbDcge3BhZGRpbmctbGVmdDo3cHghaW1wb3J0YW50O30gLi1wbDgge3BhZGRpbmctbGVmdDo4cHghaW1wb3J0YW50O30gLi1wbDkge3BhZGRpbmctbGVmdDo5cHghaW1wb3J0YW50O30gLi1wbDEwIHtwYWRkaW5nLWxlZnQ6MTBweCFpbXBvcnRhbnQ7fSAuLXBsMTUge3BhZGRpbmctbGVmdDoxNXB4IWltcG9ydGFudDt9IC4tcGwxNiB7cGFkZGluZy1sZWZ0OjE2cHghaW1wb3J0YW50O30gLi1wbDE3IHtwYWRkaW5nLWxlZnQ6MTdweCFpbXBvcnRhbnQ7fSAuLXBsMjAge3BhZGRpbmctbGVmdDoyMHB4IWltcG9ydGFudDt9IC4tcGwyNSB7cGFkZGluZy1sZWZ0OjI1cHghaW1wb3J0YW50O30gLi1wbDMwIHtwYWRkaW5nLWxlZnQ6MzBweCFpbXBvcnRhbnQ7fSAuLXBsMzUge3BhZGRpbmctbGVmdDozNXB4IWltcG9ydGFudDt9IC4tcGw0MCB7cGFkZGluZy1sZWZ0OjQwcHghaW1wb3J0YW50O30gLi1wbDQ1IHtwYWRkaW5nLWxlZnQ6NDVweCFpbXBvcnRhbnQ7fSAuLXBsNTAge3BhZGRpbmctbGVmdDo1MHB4IWltcG9ydGFudDt9IC4tcGw1NSB7cGFkZGluZy1sZWZ0OjU1cHghaW1wb3J0YW50O30gLi1wcjAge3BhZGRpbmctcmlnaHQ6MCFpbXBvcnRhbnQ7fSAuLXByMSB7cGFkZGluZy1yaWdodDoxcHghaW1wb3J0YW50O30gLi1wcjIge3BhZGRpbmctcmlnaHQ6MnB4IWltcG9ydGFudDt9IC4tcHIzIHtwYWRkaW5nLXJpZ2h0OjNweCFpbXBvcnRhbnQ7fSAuLXByNCB7cGFkZGluZy1yaWdodDo0cHghaW1wb3J0YW50O30gLi1wcjUge3BhZGRpbmctcmlnaHQ6NXB4IWltcG9ydGFudDt9IC4tcHI2IHtwYWRkaW5nLXJpZ2h0OjZweCFpbXBvcnRhbnQ7fSAuLXByNyB7cGFkZGluZy1yaWdodDo3cHghaW1wb3J0YW50O30gLi1wcjgge3BhZGRpbmctcmlnaHQ6OHB4IWltcG9ydGFudDt9IC4tcHI5IHtwYWRkaW5nLXJpZ2h0OjlweCFpbXBvcnRhbnQ7fSAuLXByMTAge3BhZGRpbmctcmlnaHQ6MTBweCFpbXBvcnRhbnQ7fSAuLXByMTUge3BhZGRpbmctcmlnaHQ6MTVweCFpbXBvcnRhbnQ7fSAuLXByMjAge3BhZGRpbmctcmlnaHQ6MjBweCFpbXBvcnRhbnQ7fSAuLXByMjUge3BhZGRpbmctcmlnaHQ6MjVweCFpbXBvcnRhbnQ7fSAuLXByMzAge3BhZGRpbmctcmlnaHQ6MzBweCFpbXBvcnRhbnQ7fSAuLXByMzUge3BhZGRpbmctcmlnaHQ6MzVweCFpbXBvcnRhbnQ7fSAuLXByNDAge3BhZGRpbmctcmlnaHQ6NDBweCFpbXBvcnRhbnQ7fSAuLXByNDUge3BhZGRpbmctcmlnaHQ6NDVweCFpbXBvcnRhbnQ7fSAuLXByNTAge3BhZGRpbmctcmlnaHQ6NTBweCFpbXBvcnRhbnQ7fSAuLXByNTUge3BhZGRpbmctcmlnaHQ6NTVweCFpbXBvcnRhbnQ7fSAuLXB0MHtwYWRkaW5nLXRvcDowIWltcG9ydGFudDt9IC4tcHQxIHtwYWRkaW5nLXRvcDoxcHghaW1wb3J0YW50O30gLi1wdDIge3BhZGRpbmctdG9wOjJweCFpbXBvcnRhbnQ7fSAuLXB0MyB7cGFkZGluZy10b3A6M3B4IWltcG9ydGFudDt9IC4tcHQ0IHtwYWRkaW5nLXRvcDo0cHghaW1wb3J0YW50O30gLi1wdDUge3BhZGRpbmctdG9wOjVweCFpbXBvcnRhbnQ7fSAuLXB0NiB7cGFkZGluZy10b3A6NnB4IWltcG9ydGFudDt9IC4tcHQ3IHtwYWRkaW5nLXRvcDo3cHghaW1wb3J0YW50O30gLi1wdDgge3BhZGRpbmctdG9wOjhweCFpbXBvcnRhbnQ7fSAuLXB0OSB7cGFkZGluZy10b3A6OXB4IWltcG9ydGFudDt9IC4tcHQxMCB7cGFkZGluZy10b3A6MTBweCFpbXBvcnRhbnQ7fSAuLXB0MTUge3BhZGRpbmctdG9wOjE1cHghaW1wb3J0YW50O30gLi1wdDIwIHtwYWRkaW5nLXRvcDoyMHB4IWltcG9ydGFudDt9IC4tcHQyNSB7cGFkZGluZy10b3A6MjVweCFpbXBvcnRhbnQ7fSAuLXB0MzAge3BhZGRpbmctdG9wOjMwcHghaW1wb3J0YW50O30gLi1wdDM1IHtwYWRkaW5nLXRvcDozNXB4IWltcG9ydGFudDt9IC4tcHQ0MCB7cGFkZGluZy10b3A6NDBweCFpbXBvcnRhbnQ7fSAuLXB0NDUge3BhZGRpbmctdG9wOjQ1cHghaW1wb3J0YW50O30gLi1wdDUwIHtwYWRkaW5nLXRvcDo1MHB4IWltcG9ydGFudDt9IC4tcHQ1NSB7cGFkZGluZy10b3A6NTVweCFpbXBvcnRhbnQ7fSAuLXB0MjAwIHtwYWRkaW5nLXRvcDoyMDBweCFpbXBvcnRhbnQ7fSAuLXBiMCB7cGFkZGluZy1ib3R0b206MCFpbXBvcnRhbnQ7fSAuLXBiMSB7cGFkZGluZy1ib3R0b206MXB4IWltcG9ydGFudDt9IC4tcGIyIHtwYWRkaW5nLWJvdHRvbToycHghaW1wb3J0YW50O30gLi1wYjMge3BhZGRpbmctYm90dG9tOjNweCFpbXBvcnRhbnQ7fSAuLXBiNCB7cGFkZGluZy1ib3R0b206NHB4IWltcG9ydGFudDt9IC4tcGI1IHtwYWRkaW5nLWJvdHRvbTo1cHghaW1wb3J0YW50O30gLi1wYjYge3BhZGRpbmctYm90dG9tOjZweCFpbXBvcnRhbnQ7fSAuLXBiNyB7cGFkZGluZy1ib3R0b206N3B4IWltcG9ydGFudDt9IC4tcGI4IHtwYWRkaW5nLWJvdHRvbTo4cHghaW1wb3J0YW50O30gLi1wYjkge3BhZGRpbmctYm90dG9tOjlweCFpbXBvcnRhbnQ7fSAuLXBiMTAge3BhZGRpbmctYm90dG9tOjEwcHghaW1wb3J0YW50O30gLi1wYjE1IHtwYWRkaW5nLWJvdHRvbToxNXB4IWltcG9ydGFudDt9IC4tcGIyMCB7cGFkZGluZy1ib3R0b206MjBweCFpbXBvcnRhbnQ7fSAuLXBiMjUge3BhZGRpbmctYm90dG9tOjI1cHghaW1wb3J0YW50O30gLi1wYjMwIHtwYWRkaW5nLWJvdHRvbTozMHB4IWltcG9ydGFudDt9IC4tcGI0MCB7cGFkZGluZy1ib3R0b206NDBweCFpbXBvcnRhbnQ7fSAtYm9yZGVyLXJhZGl1czAsLXJhZGl1czAsLXJhZDAge2JvcmRlci1yYWRpdXM6MHB4IWltcG9ydGFudDt9IC1ib3JkZXItcmFkaXVzMSwtcmFkaXVzMSwtcmFkMSB7Ym9yZGVyLXJhZGl1czowcHghaW1wb3J0YW50O30gLWJvcmRlci1yYWRpdXMyLC1yYWRpdXMyLC1yYWQyIHtib3JkZXItcmFkaXVzOjBweCFpbXBvcnRhbnQ7fSAtYm9yZGVyLXJhZGl1czMsLXJhZGl1czMsLXJhZDMge2JvcmRlci1yYWRpdXM6MHB4IWltcG9ydGFudDt9IC1ib3JkZXItcmFkaXVzNCwtcmFkaXVzNCwtcmFkNCB7Ym9yZGVyLXJhZGl1czowcHghaW1wb3J0YW50O30gLWJvcmRlci1yYWRpdXM1LC1yYWRpdXM1LC1yYWQ1IHtib3JkZXItcmFkaXVzOjBweCFpbXBvcnRhbnQ7fSAtYm9yZGVyLXJhZGl1czYsLXJhZGl1czYsLXJhZDYge2JvcmRlci1yYWRpdXM6MHB4IWltcG9ydGFudDt9IC1ib3JkZXItcmFkaXVzNywtcmFkaXVzNywtcmFkNyB7Ym9yZGVyLXJhZGl1czowcHghaW1wb3J0YW50O30gLWJvcmRlci1yYWRpdXM4LC1yYWRpdXM4LC1yYWQ4IHtib3JkZXItcmFkaXVzOjBweCFpbXBvcnRhbnQ7fSAtYm9yZGVyLXJhZGl1czksLXJhZGl1czksLXJhZDkge2JvcmRlci1yYWRpdXM6MHB4IWltcG9ydGFudDt9IC1ib3JkZXItcmFkaXVzMTAsLXJhZGl1czEwLC1yYWQxMCB7Ym9yZGVyLXJhZGl1czowcHghaW1wb3J0YW50O30gLi1tYXV0byB7bWFyZ2luOmF1dG8haW1wb3J0YW50O30gLi1tMCAuLW5vbWFyZ2lucywuLW5vbWFyZ2lue21hcmdpbjowIWltcG9ydGFudDt9IC4tbTEge21hcmdpbjoxcHghaW1wb3J0YW50O30gLi1tMiB7bWFyZ2luOjJweCFpbXBvcnRhbnQ7fSAuLW0zIHttYXJnaW46M3B4IWltcG9ydGFudDt9IC4tbTQge21hcmdpbjo0cHghaW1wb3J0YW50O30gLi1tNSB7bWFyZ2luOjVweCFpbXBvcnRhbnQ7fSAuLW02IHttYXJnaW46NnB4IWltcG9ydGFudDt9IC4tbTcge21hcmdpbjo3cHghaW1wb3J0YW50O30gLi1tOCB7bWFyZ2luOjhweCFpbXBvcnRhbnQ7fSAuLW05IHttYXJnaW46OXB4IWltcG9ydGFudDt9IC4tbTEwIHttYXJnaW46MTBweCFpbXBvcnRhbnQ7fSAuLW0xNSB7bWFyZ2luOjE1cHghaW1wb3J0YW50O30gLi1tMjAge21hcmdpbjoyMHB4IWltcG9ydGFudDt9IC4tbTIyIHttYXJnaW46MjJweCFpbXBvcnRhbnQ7fSAuLW0yNSB7bWFyZ2luOjI1cHghaW1wb3J0YW50O30gLi1tNXAge21hcmdpbjo1JSFpbXBvcnRhbnQ7fSAuLW0xMHAge21hcmdpbjoxMCUhaW1wb3J0YW50O30gLi1tMTVwIHttYXJnaW46MTUlIWltcG9ydGFudDt9IC4tbTIwcCB7bWFyZ2luOjIwJSFpbXBvcnRhbnQ7fSAuLW0yNXAge21hcmdpbjoyNSUhaW1wb3J0YW50O30gLi1tbGF1dG8ge21hcmdpbi1sZWZ0OmF1dG8haW1wb3J0YW50O30gLi1tbDAge21hcmdpbi1sZWZ0OjAhaW1wb3J0YW50O30gLi1tbDEge21hcmdpbi1sZWZ0OjFweCFpbXBvcnRhbnQ7fSAuLW1sMiB7bWFyZ2luLWxlZnQ6MnB4IWltcG9ydGFudDt9IC4tbWwzIHttYXJnaW4tbGVmdDozcHghaW1wb3J0YW50O30gLi1tbDQge21hcmdpbi1sZWZ0OjRweCFpbXBvcnRhbnQ7fSAuLW1sNSB7bWFyZ2luLWxlZnQ6NXB4IWltcG9ydGFudDt9IC4tbWw2IHttYXJnaW4tbGVmdDo2cHghaW1wb3J0YW50O30gLi1tbDcge21hcmdpbi1sZWZ0OjdweCFpbXBvcnRhbnQ7fSAuLW1sOCB7bWFyZ2luLWxlZnQ6OHB4IWltcG9ydGFudDt9IC4tbWw5IHttYXJnaW4tbGVmdDo5cHghaW1wb3J0YW50O30gLi1tbDEwIHttYXJnaW4tbGVmdDoxMHB4IWltcG9ydGFudDt9IC4tbWwxNSB7bWFyZ2luLWxlZnQ6MTVweCFpbXBvcnRhbnQ7fSAuLW1sMjAge21hcmdpbi1sZWZ0OjIwcHghaW1wb3J0YW50O30gLi1tbDI1IHttYXJnaW4tbGVmdDoyNXB4IWltcG9ydGFudDt9IC4tbWwyNyB7bWFyZ2luLWxlZnQ6MjdweCFpbXBvcnRhbnQ7fSAuLW1sMzAge21hcmdpbi1sZWZ0OjMwcHghaW1wb3J0YW50O30gLi1tbDUwIHttYXJnaW4tbGVmdDo1MHB4IWltcG9ydGFudDt9IC4tbWw4MCB7bWFyZ2luLWxlZnQ6ODBweCFpbXBvcnRhbnQ7fSAuLW1sMTAwIHttYXJnaW4tbGVmdDoxMDBweCFpbXBvcnRhbnQ7fSAuLW1sMTMwIHttYXJnaW4tbGVmdDoxMzBweCFpbXBvcnRhbnQ7fSAuLW1sMTUwIHttYXJnaW4tbGVmdDoxNTBweCFpbXBvcnRhbnQ7fSAuLW1sMnAge21hcmdpbi1sZWZ0OjIlIWltcG9ydGFudDt9IC4tbWwzcCB7bWFyZ2luLWxlZnQ6MyUhaW1wb3J0YW50O30gLi1tbDVwIHttYXJnaW4tbGVmdDo1JSFpbXBvcnRhbnQ7fSAuLW1sMTBwIHttYXJnaW4tbGVmdDoxMCUhaW1wb3J0YW50O30gLi1tbDE1cCB7bWFyZ2luLWxlZnQ6MTUlIWltcG9ydGFudDt9IC4tbWwyMHAge21hcmdpbi1sZWZ0OjIwJSFpbXBvcnRhbnQ7fSAuLW1sMjVwIHttYXJnaW4tbGVmdDoyNSUhaW1wb3J0YW50O30gLi1tcmF1dG8ge21hcmdpbi1yaWdodDphdXRvIWltcG9ydGFudDt9IC4tbXIwIHttYXJnaW4tcmlnaHQ6MCFpbXBvcnRhbnQ7fSAuLW1yMSB7bWFyZ2luLXJpZ2h0OjFweCFpbXBvcnRhbnQ7fSAuLW1yMiB7bWFyZ2luLXJpZ2h0OjJweCFpbXBvcnRhbnQ7fSAuLW1yMyB7bWFyZ2luLXJpZ2h0OjNweCFpbXBvcnRhbnQ7fSAuLW1yNCB7bWFyZ2luLXJpZ2h0OjRweCFpbXBvcnRhbnQ7fSAuLW1yNSB7bWFyZ2luLXJpZ2h0OjVweCFpbXBvcnRhbnQ7fSAuLW1yNiB7bWFyZ2luLXJpZ2h0OjZweCFpbXBvcnRhbnQ7fSAuLW1yNyB7bWFyZ2luLXJpZ2h0OjdweCFpbXBvcnRhbnQ7fSAuLW1yOCB7bWFyZ2luLXJpZ2h0OjhweCFpbXBvcnRhbnQ7fSAuLW1yOSB7bWFyZ2luLXJpZ2h0OjlweCFpbXBvcnRhbnQ7fSAuLW1yMTAge21hcmdpbi1yaWdodDoxMHB4IWltcG9ydGFudDt9IC4tbXIxNSB7bWFyZ2luLXJpZ2h0OjE1cHghaW1wb3J0YW50O30gLi1tcjIwIHttYXJnaW4tcmlnaHQ6MjBweCFpbXBvcnRhbnQ7fSAuLW1yMjUge21hcmdpbi1yaWdodDoyNXB4IWltcG9ydGFudDt9IC4tbXIzMCB7bWFyZ2luLXJpZ2h0OjMwcHghaW1wb3J0YW50O30gLi1tcjM1IHttYXJnaW4tcmlnaHQ6MzVweCFpbXBvcnRhbnQ7fSAuLW1yNDAge21hcmdpbi1yaWdodDo0MHB4IWltcG9ydGFudDt9IC4tbXI0NSB7bWFyZ2luLXJpZ2h0OjQ1cHghaW1wb3J0YW50O30gLi1tcjUwIHttYXJnaW4tcmlnaHQ6NTBweCFpbXBvcnRhbnQ7fSAuLW1yMTAwIHttYXJnaW4tcmlnaHQ6MTAwcHghaW1wb3J0YW50O30gLi1tcjJwIHttYXJnaW4tcmlnaHQ6MiUhaW1wb3J0YW50O30gLi1tcjNwIHttYXJnaW4tcmlnaHQ6MyUhaW1wb3J0YW50O30gLi1tcjVwIHttYXJnaW4tcmlnaHQ6NSUhaW1wb3J0YW50O30gLi1tcjEwcCB7bWFyZ2luLXJpZ2h0OjEwJSFpbXBvcnRhbnQ7fSAuLW1yMTVwIHttYXJnaW4tcmlnaHQ6MTUlIWltcG9ydGFudDt9IC4tbXIyMHAge21hcmdpbi1yaWdodDoyMCUhaW1wb3J0YW50O30gLi1tcjI1cCB7bWFyZ2luLXJpZ2h0OjI1JSFpbXBvcnRhbnQ7fSAuLW10YXV0byB7bWFyZ2luLXRvcDphdXRvIWltcG9ydGFudDt9IC4tbXQtN3ttYXJnaW4tdG9wOi03cHghaW1wb3J0YW50O30gLi1tdDB7bWFyZ2luLXRvcDowIWltcG9ydGFudDt9IC4tbXQxIHttYXJnaW4tdG9wOjFweCFpbXBvcnRhbnQ7fSAuLW10MiB7bWFyZ2luLXRvcDoycHghaW1wb3J0YW50O30gLi1tdDMge21hcmdpbi10b3A6M3B4IWltcG9ydGFudDt9IC4tbXQ0IHttYXJnaW4tdG9wOjRweCFpbXBvcnRhbnQ7fSAuLW10NSB7bWFyZ2luLXRvcDo1cHghaW1wb3J0YW50O30gLi1tdDYge21hcmdpbi10b3A6NnB4IWltcG9ydGFudDt9IC4tbXQ3IHttYXJnaW4tdG9wOjdweCFpbXBvcnRhbnQ7fSAuLW10OCB7bWFyZ2luLXRvcDo4cHghaW1wb3J0YW50O30gLi1tdDkge21hcmdpbi10b3A6OXB4IWltcG9ydGFudDt9IC4tbXQxMCB7bWFyZ2luLXRvcDoxMHB4IWltcG9ydGFudDt9IC4tbXQxMSB7bWFyZ2luLXRvcDoxMXB4IWltcG9ydGFudDt9IC4tbXQxMiB7bWFyZ2luLXRvcDoxMnB4IWltcG9ydGFudDt9IC4tbXQxMyB7bWFyZ2luLXRvcDoxM3B4IWltcG9ydGFudDt9IC4tbXQxNCB7bWFyZ2luLXRvcDoxNHB4IWltcG9ydGFudDt9IC4tbXQxNSB7bWFyZ2luLXRvcDoxNXB4IWltcG9ydGFudDt9IC4tbXQyMCB7bWFyZ2luLXRvcDoyMHB4IWltcG9ydGFudDt9IC4tbXQyNSB7bWFyZ2luLXRvcDoyNXB4IWltcG9ydGFudDt9IC4tbXQyNyB7bWFyZ2luLXRvcDoyN3B4IWltcG9ydGFudDt9IC4tbXQzMCB7bWFyZ2luLXRvcDozMHB4IWltcG9ydGFudDt9IC4tbXQzNSB7bWFyZ2luLXRvcDozNXB4IWltcG9ydGFudDt9IC4tbXQ0MCB7bWFyZ2luLXRvcDo0MHB4IWltcG9ydGFudDt9IC4tbXQ1MCB7bWFyZ2luLXRvcDo1MHB4IWltcG9ydGFudDt9IC4tbXQxMTUge21hcmdpbi10b3A6MTE1cHghaW1wb3J0YW50O30gLi1tdDIwMCB7bWFyZ2luLXRvcDoyMDBweCFpbXBvcnRhbnQ7fSAuLW1iYXV0byB7bWFyZ2luLWJvdHRvbTphdXRvIWltcG9ydGFudDt9IC4tbWIwIHttYXJnaW4tYm90dG9tOjAhaW1wb3J0YW50O30gLi1tYjEge21hcmdpbi1ib3R0b206MXB4IWltcG9ydGFudDt9IC4tbWIyIHttYXJnaW4tYm90dG9tOjJweCFpbXBvcnRhbnQ7fSAuLW1iMyB7bWFyZ2luLWJvdHRvbTozcHghaW1wb3J0YW50O30gLi1tYjQge21hcmdpbi1ib3R0b206NHB4IWltcG9ydGFudDt9IC4tbWI1IHttYXJnaW4tYm90dG9tOjVweCFpbXBvcnRhbnQ7fSAuLW1iNiB7bWFyZ2luLWJvdHRvbTo2cHghaW1wb3J0YW50O30gLi1tYjcge21hcmdpbi1ib3R0b206N3B4IWltcG9ydGFudDt9IC4tbWI4IHttYXJnaW4tYm90dG9tOjhweCFpbXBvcnRhbnQ7fSAuLW1iOSB7bWFyZ2luLWJvdHRvbTo5cHghaW1wb3J0YW50O30gLi1tYjEwIHttYXJnaW4tYm90dG9tOjEwcHghaW1wb3J0YW50O30gLi1tYjE1IHttYXJnaW4tYm90dG9tOjE1cHghaW1wb3J0YW50O30gLi1tYjIwIHttYXJnaW4tYm90dG9tOjIwcHghaW1wb3J0YW50O30gLi1tYjI1IHttYXJnaW4tYm90dG9tOjI1cHghaW1wb3J0YW50O30gLi1tYjMwIHttYXJnaW4tYm90dG9tOjMwcHghaW1wb3J0YW50O30gLi1tYjUwIHttYXJnaW4tYm90dG9tOjUwcHghaW1wb3J0YW50O30gLi10b3AtMTAsIC4tdC0xMCB7dG9wOi0xMHB4IWltcG9ydGFudDt9IC4tdG9wMCwgLi10MCB7dG9wOjBweCFpbXBvcnRhbnQ7fSAuLXRvcDEsIC4tdDEge3RvcDoxcHghaW1wb3J0YW50O30gLi10b3AyLCAuLXQyIHt0b3A6MnB4IWltcG9ydGFudDt9IC4tdG9wMywgLi10MyB7dG9wOjNweCFpbXBvcnRhbnQ7fSAuLXRvcDQsIC4tdDQge3RvcDo0cHghaW1wb3J0YW50O30gLi10b3A1LCAuLXQ1IHt0b3A6NXB4IWltcG9ydGFudDt9IC4tdG9wNiwgLi10NiB7dG9wOjZweCFpbXBvcnRhbnQ7fSAuLXRvcDcsIC4tdDcge3RvcDo3cHghaW1wb3J0YW50O30gLi10b3A4LCAuLXQ4IHt0b3A6OHB4IWltcG9ydGFudDt9IC4tdG9wOSwgLi10OSB7dG9wOjlweCFpbXBvcnRhbnQ7fSAuLXRvcDEwLCAuLXQxMCB7dG9wOjEwcHghaW1wb3J0YW50O30gLi10b3AxNSwgLi10MTUge3RvcDoxNXB4IWltcG9ydGFudDt9IC4tdG9wMjAsIC4tdDIwIHt0b3A6MjBweCFpbXBvcnRhbnQ7fSAuLXRvcDI1LCAuLXQyNXt0b3A6MjVweCFpbXBvcnRhbnQ7fSAuLXRvcDMwLCAuLXQzMCB7dG9wOjMwcHghaW1wb3J0YW50O30gLi10b3AzNSwgLi10MzUge3RvcDozNXB4IWltcG9ydGFudDt9IC4tdG9wNDAsIC4tdDQwIHt0b3A6NDBweCFpbXBvcnRhbnQ7fSAuLXRvcDQ1LCAuLXQ0NSB7dG9wOjQ1cHghaW1wb3J0YW50O30gLi10b3A1MCwgLi10NTAge3RvcDo1MHB4IWltcG9ydGFudDt9IC4tdG9wMTAwLCAuLXQxMDAge3RvcDoxMDBweCFpbXBvcnRhbnQ7fSAuLXRvcDIwMCwgLi10MjAwIHt0b3A6MjAwcHghaW1wb3J0YW50O30gLi10b3A1cCwgLi10NXAge3RvcDo1JSFpbXBvcnRhbnQ7fSAuLXRvcDEwcCwgLi10MTBwIHt0b3A6MTAlIWltcG9ydGFudDt9IC4tdG9wMTVwLCAuLXQxNXAge3RvcDoxNSUhaW1wb3J0YW50O30gLi10b3AyMHAsIC4tdDIwcCB7dG9wOjIwJSFpbXBvcnRhbnQ7fSAuLXRvcDI1cCwgLi10MjVwIHt0b3A6MjUlIWltcG9ydGFudDt9IC4tdG9wNTBwLCAuLXQ1MHAge3RvcDo1MCUhaW1wb3J0YW50O30gLi10b3AxMDBwLCAuLXQxMDBwIHt0b3A6MTAwJSFpbXBvcnRhbnQ7fSAuLWxlZnQwLCAuLWwwIHtsZWZ0OjBweCFpbXBvcnRhbnQ7fSAuLWxlZnQxLCAuLWwxIHtsZWZ0OjFweCFpbXBvcnRhbnQ7fSAuLWxlZnQyLCAuLWwyIHtsZWZ0OjJweCFpbXBvcnRhbnQ7fSAuLWxlZnQzLCAuLWwzIHtsZWZ0OjNweCFpbXBvcnRhbnQ7fSAuLWxlZnQ0LCAuLWw0IHtsZWZ0OjRweCFpbXBvcnRhbnQ7fSAuLWxlZnQ1LCAuLWw1IHtsZWZ0OjVweCFpbXBvcnRhbnQ7fSAuLWxlZnQ2LCAuLWw2IHtsZWZ0OjZweCFpbXBvcnRhbnQ7fSAuLWxlZnQ3LCAuLWw3IHtsZWZ0OjdweCFpbXBvcnRhbnQ7fSAuLWxlZnQ4LCAuLWw4IHtsZWZ0OjhweCFpbXBvcnRhbnQ7fSAuLWxlZnQ5LCAuLWw5IHtsZWZ0OjlweCFpbXBvcnRhbnQ7fSAuLWxlZnQxMCwgLi1sMTAge2xlZnQ6MTBweCFpbXBvcnRhbnQ7fSAuLWxlZnQxNSwgLi1sMTUge2xlZnQ6MTVweCFpbXBvcnRhbnQ7fSAuLWxlZnQyMCwgLi1sMjAge2xlZnQ6MjBweCFpbXBvcnRhbnQ7fSAuLWxlZnQyNSwgLi1sMjV7bGVmdDoyNXB4IWltcG9ydGFudDt9IC4tbGVmdDMwLCAuLWwzMCB7bGVmdDozMHB4IWltcG9ydGFudDt9IC4tbGVmdDM1LCAuLWwzNSB7bGVmdDozNXB4IWltcG9ydGFudDt9IC4tbGVmdDQwLCAuLWw0MCB7bGVmdDo0MHB4IWltcG9ydGFudDt9IC4tbGVmdDQ1LCAuLWw0NSB7bGVmdDo0NXB4IWltcG9ydGFudDt9IC4tbGVmdDUwLCAuLWw1MCB7bGVmdDo1MHB4IWltcG9ydGFudDt9IC4tbGVmdDU1LCAuLWw1NSB7bGVmdDo1NXB4IWltcG9ydGFudDt9IC4tbGVmdDYwLCAuLWw2MCB7bGVmdDo2MHB4IWltcG9ydGFudDt9IC4tbGVmdDY1LCAuLWw2NSB7bGVmdDo2NXB4IWltcG9ydGFudDt9IC4tbGVmdDcwLCAuLWw3MCB7bGVmdDo3MHB4IWltcG9ydGFudDt9IC4tbGVmdDc1LCAuLWw3NSB7bGVmdDo3NXB4IWltcG9ydGFudDt9IC4tbGVmdDgwLCAuLWw4MCB7bGVmdDo4MHB4IWltcG9ydGFudDt9IC4tbGVmdDg1LCAuLWw4NSB7bGVmdDo4NXB4IWltcG9ydGFudDt9IC4tbGVmdDkwLCAuLWw5MCB7bGVmdDo5MHB4IWltcG9ydGFudDt9IC4tbGVmdDk1LCAuLWw5NSB7bGVmdDo5NXB4IWltcG9ydGFudDt9IC4tbGVmdDEwMCwgLi1sMTAwIHtsZWZ0OjEwMHB4IWltcG9ydGFudDt9IC4tbGVmdDE1MCwgLi1sMTUwIHtsZWZ0OjE1MHB4IWltcG9ydGFudDt9IC4tbGVmdDIwMCwgLi1sMjAwIHtsZWZ0OjIwMHB4IWltcG9ydGFudDt9IC4tbGVmdDI1MCwgLi1sMjUwIHtsZWZ0OjI1MHB4IWltcG9ydGFudDt9IC4tbGVmdDMwMCwgLi1sMzAwIHtsZWZ0OjMwMHB4IWltcG9ydGFudDt9IC4tbGVmdDVwLCAuLWw1cCB7bGVmdDo1JSFpbXBvcnRhbnQ7fSAuLWxlZnQxMHAsIC4tbDEwcCB7bGVmdDoxMCUhaW1wb3J0YW50O30gLi1sZWZ0MTVwLCAuLWwxNXAge2xlZnQ6MTUlIWltcG9ydGFudDt9IC4tbGVmdDIwcCwgLi1sMjBwIHtsZWZ0OjIwJSFpbXBvcnRhbnQ7fSAuLWxlZnQyNXAsIC4tbDI1cCB7bGVmdDoyNSUhaW1wb3J0YW50O30gLi1sZWZ0NDBwLCAuLWw0MHAge2xlZnQ6NDAlIWltcG9ydGFudDt9IC4tbGVmdDUwcCwgLi1sNTBwIHtsZWZ0OjUwJSFpbXBvcnRhbnQ7fSAuLWxlZnQxMDBwLCAuLWwxMDBwIHtsZWZ0OjEwMCUhaW1wb3J0YW50O30gLi1yaWdodDAsIC4tcjAge3JpZ2h0OjBweCFpbXBvcnRhbnQ7fSAuLXJpZ2h0MSwgLi1yMSB7cmlnaHQ6MXB4IWltcG9ydGFudDt9IC4tcmlnaHQyLCAuLXIyIHtyaWdodDoycHghaW1wb3J0YW50O30gLi1yaWdodDMsIC4tcjMge3JpZ2h0OjNweCFpbXBvcnRhbnQ7fSAuLXJpZ2h0NCwgLi1yNCB7cmlnaHQ6NHB4IWltcG9ydGFudDt9IC4tcmlnaHQ1LCAuLXI1IHtyaWdodDo1cHghaW1wb3J0YW50O30gLi1yaWdodDYsIC4tcjYge3JpZ2h0OjZweCFpbXBvcnRhbnQ7fSAuLXJpZ2h0NywgLi1yNyB7cmlnaHQ6N3B4IWltcG9ydGFudDt9IC4tcmlnaHQ4LCAuLXI4IHtyaWdodDo4cHghaW1wb3J0YW50O30gLi1yaWdodDksIC4tcjkge3JpZ2h0OjlweCFpbXBvcnRhbnQ7fSAuLXJpZ2h0MTAsIC4tcjEwIHtyaWdodDoxMHB4IWltcG9ydGFudDt9IC4tcmlnaHQxNSwgLi1yMTUge3JpZ2h0OjE1cHghaW1wb3J0YW50O30gLi1yaWdodDIwLCAuLXIyMCB7cmlnaHQ6MjBweCFpbXBvcnRhbnQ7fSAuLXJpZ2h0MjUsIC4tcjI1IHtyaWdodDoyNXB4IWltcG9ydGFudDt9IC4tcmlnaHQzMCwgLi1yMzAge3JpZ2h0OjMwcHghaW1wb3J0YW50O30gLi1yaWdodDM1LCAuLXIzNSB7cmlnaHQ6MzVweCFpbXBvcnRhbnQ7fSAuLXJpZ2h0NDAsIC4tcjQwIHtyaWdodDo0MHB4IWltcG9ydGFudDt9IC4tcmlnaHQ0NSwgLi1yNDUge3JpZ2h0OjQ1cHghaW1wb3J0YW50O30gLi1yaWdodDUwLCAuLXI1MCB7cmlnaHQ6NTBweCFpbXBvcnRhbnQ7fSAuLXJpZ2h0NTUsIC4tcjU1IHtyaWdodDo1NXB4IWltcG9ydGFudDt9IC4tcmlnaHQ2MCwgLi1yNjAge3JpZ2h0OjYwcHghaW1wb3J0YW50O30gLi1yaWdodDY1LCAuLXI2NSB7cmlnaHQ6NjVweCFpbXBvcnRhbnQ7fSAuLXJpZ2h0NzAsIC4tcjcwIHtyaWdodDo3MHB4IWltcG9ydGFudDt9IC4tcmlnaHQ3NSwgLi1yNzUge3JpZ2h0Ojc1cHghaW1wb3J0YW50O30gLi1yaWdodDgwLCAuLXI4MCB7cmlnaHQ6ODBweCFpbXBvcnRhbnQ7fSAuLXJpZ2h0ODUsIC4tcjg1IHtyaWdodDo4NXB4IWltcG9ydGFudDt9IC4tcmlnaHQ5MCwgLi1yOTAge3JpZ2h0OjkwcHghaW1wb3J0YW50O30gLi1yaWdodDk1LCAuLXI5NSB7cmlnaHQ6OTVweCFpbXBvcnRhbnQ7fSAuLXJpZ2h0MTAwLCAuLXIxMDAge3JpZ2h0OjEwMHB4IWltcG9ydGFudDt9IC4tcmlnaHQxNTAsIC4tcjE1MCB7cmlnaHQ6MTUwcHghaW1wb3J0YW50O30gLi1yaWdodDIwMCwgLi1yMjAwIHtyaWdodDoyMDBweCFpbXBvcnRhbnQ7fSAuLXJpZ2h0MjUwLCAuLXIyNTAge3JpZ2h0OjI1MHB4IWltcG9ydGFudDt9IC4tcmlnaHQ1cCwgLi1yNXAge3JpZ2h0OjUlIWltcG9ydGFudDt9IC4tcmlnaHQxMHAsIC4tcjEwcCB7cmlnaHQ6MTAlIWltcG9ydGFudDt9IC4tcmlnaHQxNXAsIC4tcjE1cCB7cmlnaHQ6MTUlIWltcG9ydGFudDt9IC4tcmlnaHQyMHAsIC4tcjIwcCB7cmlnaHQ6MjAlIWltcG9ydGFudDt9IC4tcmlnaHQyNXAsIC4tcjI1cCB7cmlnaHQ6MjUlIWltcG9ydGFudDt9IC4tcmlnaHQ1MHAsIC4tcjUwcCB7cmlnaHQ6NTAlIWltcG9ydGFudDt9IC4tcmlnaHQxMDBwLCAuLXIxMDBwIHtyaWdodDoxMDAlIWltcG9ydGFudDt9IC4tei1pbmRleDk5e3otaW5kZXg6OTkhaW1wb3J0YW50O30gLi16LWluZGV4MTAwe3otaW5kZXg6MTAwIWltcG9ydGFudDt9IC4tei1pbmRleDEwMXt6LWluZGV4OjEwMSFpbXBvcnRhbnQ7fSAuLXotaW5kZXgxMDAxLCAuemluZGV4MTAwMXsgei1pbmRleDoxMDAxIWltcG9ydGFudDsgfSAuLXotaW5kZXgzNjAwMSwgLnppbmRleDM2MDAxeyB6LWluZGV4OjM2MDAxIWltcG9ydGFudDsgfSAuLW5vLWJvcmRlci1zcGFjaW5neyBib3JkZXItc3BhY2luZzowIWltcG9ydGFudDsgfSAuLXRhYmxleyBjZWxscGFkZGluZzowIWltcG9ydGFudDsgY2VsbHNwYWNpbmc6MCFpbXBvcnRhbnQ7IGJvcmRlcjowIWltcG9ydGFudDsgfSB0YWJsZS4tdGFibGUgdGhlYWQgdGggeyBiYWNrZ3JvdW5kOiNjM2Q5ZmYhaW1wb3J0YW50OyB9IHRhYmxlLi10YWJsZSB0ciB0aCwgdGFibGUuLXRhYmxlIHRyIHRkIHsgcGFkZGluZzo0cHggMTBweCA0cHggNXB4IWltcG9ydGFudDsgfSB0ci4tYm9yZGVyLWJvdHRvbSB0ZCwgdHIuLWJvcmRlci1ib3R0b20gdGggeyBib3JkZXItYm90dG9tOjFwdCBzb2xpZCBibGFjayFpbXBvcnRhbnQ7IH0gLXdoaXRlLXNwYWNlLW5vd3JhcCB7d2hpdGUtc3BhY2U6bm93cmFwIWltcG9ydGFudDt9IC4tY3Vyc29yLWF1dG8geyBjdXJzb3I6YXV0bzsgfSAuLWN1cnNvci1kZWZhdWx0IHsgY3Vyc29yOmRlZmF1bHQ7IH0gLi1jdXJzb3Itbm9uZSB7IGN1cnNvcjpub25lOyB9IC4tY3Vyc29yLWNvbnRleHQtbWVudSB7IGN1cnNvcjpjb250ZXh0LW1lbnU7IH0gLi1jdXJzb3ItaGVscCB7IGN1cnNvcjpoZWxwOyB9IC4tY3Vyc29yLXBvaW50ZXIgeyBjdXJzb3I6cG9pbnRlcjsgfSAuLWN1cnNvci1wcm9ncmVzcyB7IGN1cnNvcjpwcm9ncmVzczsgfSAuLWN1cnNvci13YWl0IHsgY3Vyc29yOndhaXQ7IH0gLi1jdXJzb3ItY2VsbCB7IGN1cnNvcjpjZWxsOyB9IC4tY3Vyc29yLWNyb3NzaGFpciB7IGN1cnNvcjpjcm9zc2hhaXI7IH0gLi1jdXJzb3ItdGV4dCB7IGN1cnNvcjp0ZXh0OyB9IC4tY3Vyc29yLXZlcnRpY2FsLXRleHQgeyBjdXJzb3I6dmVydGljYWwtdGV4dDsgfSAuLWN1cnNvci1hbGlhcyB7IGN1cnNvcjphbGlhczsgfSAuLWN1cnNvci1jb3B5IHsgY3Vyc29yOmNvcHk7IH0gLi1jdXJzb3ItbW92ZSB7IGN1cnNvcjptb3ZlOyB9IC4tY3Vyc29yLW5vLWRyb3AgeyBjdXJzb3I6bm8tZHJvcDsgfSAuLWN1cnNvci1ub3QtYWxsb3dlZCB7IGN1cnNvcjpub3QtYWxsb3dlZDsgfSAuLWN1cnNvci1hbGwtc2Nyb2xsIHsgY3Vyc29yOmFsbC1zY3JvbGw7IH0gLi1jdXJzb3ItY29sLXJlc2l6ZSB7IGN1cnNvcjpjb2wtcmVzaXplOyB9IC4tY3Vyc29yLXJvdy1yZXNpemUgeyBjdXJzb3I6cm93LXJlc2l6ZTsgfSAuLWN1cnNvci1uLXJlc2l6ZSB7IGN1cnNvcjpuLXJlc2l6ZTsgfSAuLWN1cnNvci1lLXJlc2l6ZSB7IGN1cnNvcjplLXJlc2l6ZTsgfSAuLWN1cnNvci1zLXJlc2l6ZSB7IGN1cnNvcjpzLXJlc2l6ZTsgfSAuLWN1cnNvci13LXJlc2l6ZSB7IGN1cnNvcjp3LXJlc2l6ZTsgfSAuLWN1cnNvci1ucy1yZXNpemUgeyBjdXJzb3I6bnMtcmVzaXplOyB9IC4tY3Vyc29yLWV3LXJlc2l6ZSB7IGN1cnNvcjpldy1yZXNpemU7IH0gLi1jdXJzb3ItbmUtcmVzaXplIHsgY3Vyc29yOm5lLXJlc2l6ZTsgfSAuLWN1cnNvci1udy1yZXNpemUgeyBjdXJzb3I6bnctcmVzaXplOyB9IC4tY3Vyc29yLXNlLXJlc2l6ZSB7IGN1cnNvcjpzZS1yZXNpemU7IH0gLi1jdXJzb3Itc3ctcmVzaXplIHsgY3Vyc29yOnN3LXJlc2l6ZTsgfSAuLWN1cnNvci1uZXN3LXJlc2l6ZSB7IGN1cnNvcjpuZXN3LXJlc2l6ZTsgfSAuLWN1cnNvci1ud3NlLXJlc2l6ZSB7IGN1cnNvcjpud3NlLXJlc2l6ZTsgfSAuLWZvbnQtc2l6ZTAsIC4tZnMweyBmb250LXNpemU6MCFpbXBvcnRhbnQ7fSAuLWZvbnQtc2l6ZTEsIC4tZnMxeyBmb250LXNpemU6MXB4IWltcG9ydGFudDt9IC4tZm9udC1zaXplMiwgLi1mczJ7IGZvbnQtc2l6ZToycHghaW1wb3J0YW50O30gLi1mb250LXNpemUzLCAuLWZzM3sgZm9udC1zaXplOjNweCFpbXBvcnRhbnQ7fSAuLWZvbnQtc2l6ZTQsIC4tZnM0eyBmb250LXNpemU6NHB4IWltcG9ydGFudDt9IC4tZm9udC1zaXplNSwgLi1mczV7IGZvbnQtc2l6ZTo1cHghaW1wb3J0YW50O30gLi1mb250LXNpemU2LCAuLWZzNnsgZm9udC1zaXplOjZweCFpbXBvcnRhbnQ7fSAuLWZvbnQtc2l6ZTcsIC4tZnM3eyBmb250LXNpemU6N3B4IWltcG9ydGFudDt9IC4tZm9udC1zaXplOCwgLi1mczh7IGZvbnQtc2l6ZTowLjVyZW0gIWltcG9ydGFudDt9IC4tZm9udC1zaXplOSwgLi1mczl7IGZvbnQtc2l6ZTowLjU2M3JlbSAhaW1wb3J0YW50O30gLi1mb250LXNpemUxMCwgLi1mczEweyBmb250LXNpemU6MC42MjVyZW0gIWltcG9ydGFudDt9IC4tZm9udC1zaXplMTEsIC4tZnMxMXsgZm9udC1zaXplOjAuNjg4cmVtICFpbXBvcnRhbnQ7fSAuLWZvbnQtc2l6ZTEyLCAuLWZzMTJ7IGZvbnQtc2l6ZTowLjc1cmVtICFpbXBvcnRhbnQ7fSAuLWZvbnQtc2l6ZTEzLCAuLWZzMTN7IGZvbnQtc2l6ZTowLjgxM3JlbSAhaW1wb3J0YW50O30gLi1mb250LXNpemUxNCwgLi1mczE0eyBmb250LXNpemU6MC44NzVyZW0gIWltcG9ydGFudDt9IC4tZm9udC1zaXplMTUsIC4tZnMxNXsgZm9udC1zaXplOjAuOTM4cmVtICFpbXBvcnRhbnQ7fSAuLWZvbnQtc2l6ZTE2LCAuLWZzMTZ7IGZvbnQtc2l6ZToxcmVtICFpbXBvcnRhbnQ7fSAuLWZvbnQtc2l6ZTE3LCAuLWZzMTd7IGZvbnQtc2l6ZToxLjA2M3JlbSAhaW1wb3J0YW50O30gLi1mb250LXNpemUxOCwgLi1mczE4eyBmb250LXNpemU6MS4xMjVyZW0gIWltcG9ydGFudDt9IC4tZm9udC1zaXplMTksIC4tZnMxOXsgZm9udC1zaXplOjEuMTg4cmVtICFpbXBvcnRhbnQ7fSAuLWZvbnQtc2l6ZTIwLCAuLWZzMjB7IGZvbnQtc2l6ZToxLjI1cmVtICFpbXBvcnRhbnQ7fSAuLWZvbnQtc2l6ZTIxLCAuLWZzMjF7IGZvbnQtc2l6ZToxLjMxM3JlbSAhaW1wb3J0YW50O30gLi1mb250LXNpemUyMiwgLi1mczIyeyBmb250LXNpemU6MS4zNzVyZW0gIWltcG9ydGFudDt9IC4tZm9udC1zaXplMjMsIC4tZnMyM3sgZm9udC1zaXplOjEuNDM4cmVtICFpbXBvcnRhbnQ7fSAuLWZvbnQtc2l6ZTI0LCAuLWZzMjR7IGZvbnQtc2l6ZToxLjVyZW0gIWltcG9ydGFudDt9IC4tZm9udC1zaXplMjUsIC4tZnMyNXsgZm9udC1zaXplOjEuNTYzcmVtICFpbXBvcnRhbnQ7fSAuLWZvbnQtc2l6ZTI2LCAuLWZzMjZ7IGZvbnQtc2l6ZToxLjYyNXJlbSAhaW1wb3J0YW50O30gLi1mb250LXNpemUyNywgLi1mczI3eyBmb250LXNpemU6MS42ODhyZW0gIWltcG9ydGFudDt9IC4tZm9udC1zaXplMjgsIC4tZnMyOHsgZm9udC1zaXplOjEuNzVyZW0gIWltcG9ydGFudDt9IC4tZm9udC1zaXplMjksIC4tZnMyOXsgZm9udC1zaXplOjEuODEzcmVtICFpbXBvcnRhbnQ7fSAuLWZvbnQtc2l6ZTMwLCAuLWZzMzB7IGZvbnQtc2l6ZToxLjg3NXJlbSAhaW1wb3J0YW50O30gLi1mb250LXNpemUzMSwgLi1mczMxeyBmb250LXNpemU6MS45MzhyZW0gIWltcG9ydGFudDt9IC4tZm9udC1zaXplMzIsIC4tZnMzMnsgZm9udC1zaXplOjJyZW0gIWltcG9ydGFudDt9IC4tZm9udC1zaXplMzMsIC4tZnMzM3sgZm9udC1zaXplOjIuMDYzcmVtICFpbXBvcnRhbnQ7fSAuLWZvbnQtc2l6ZTM0LCAuLWZzMzR7IGZvbnQtc2l6ZToyLjEyNXJlbSAhaW1wb3J0YW50O30gLi1mb250LXNpemUzNSwgLi1mczM1eyBmb250LXNpemU6Mi4xODhyZW0gIWltcG9ydGFudDt9IC4tZm9udC1zaXplMzYsIC4tZnMzNnsgZm9udC1zaXplOjIuMjVyZW0gIWltcG9ydGFudDt9IC4tZm9udC1zaXplMzcsIC4tZnMzN3sgZm9udC1zaXplOjIuMzEzcmVtICFpbXBvcnRhbnQ7fSAuLWZvbnQtc2l6ZTM4LCAuLWZzMzh7IGZvbnQtc2l6ZToyLjM3NXJlbSAhaW1wb3J0YW50O30gLi1mb250LXNpemUzOSwgLi1mczM5eyBmb250LXNpemU6Mi40MzhyZW0gIWltcG9ydGFudDt9IC4tZm9udC1zaXplNDAsIC4tZnM0MHsgZm9udC1zaXplOjIuNXJlbSAhaW1wb3J0YW50O30gLi1yZWQtbGluZS1oMzV7IGhlaWdodDozNXB4OyBtYXJnaW4tYm90dG9tOi0zNXB4OyBwb3NpdGlvbjpyZWxhdGl2ZTsgdG9wOi0yNXB4OyB9ICNicmVhZGNydW1ic3sgZm9udC1zaXplOjFyZW0gOyBtYXJnaW4tbGVmdDoxMHB4OyBtYXJnaW4tdG9wOjhweDsgbWFyZ2luLWJvdHRvbToxNXB4OyBjb2xvcjojNzU3NTc1OyB9IC5Vc2VkVmRwMk1vYmlsZSAjYnJlYWRjcnVtYnN7IGZvbnQtc2l6ZTowLjlyZW07IGNvbG9yOiMyMjIyMjI7IGZvbnQtd2VpZ2h0OmJvbGQ7IHBhZGRpbmc6MTBweDsgbWFyZ2luOjA7IGxpbmUtaGVpZ2h0OjEuMjVyZW07IH0gI2JyZWFkY3J1bWJzIGF7IGNvbG9yOiM3NTc1NzU7IH0gI2NhcnByb29mX21haW4uY2FycHJvb2ZfbWFpbnsgd2lkdGg6MzQwcHg7IGhlaWdodDphdXRvOyBiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7IHBhZGRpbmc6MjBweDsgZGlzcGxheTpub25lOyB6LWluZGV4Ojk5OTk7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgYm9yZGVyLXJhZGl1czo1cHg7IHBvc2l0aW9uOmZpeGVkOyB0cmFuc2Zvcm06dHJhbnNsYXRlWSgtNTAlKSB0cmFuc2xhdGVYKC01MCUpOyAtbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSkgdHJhbnNsYXRlWCgtNTAlKTsgbGVmdDo1MCU7IHRvcDo1MCU7IH0gI2NhcnByb29mX21haW4gLmNhcnByb29mQ2xvc2VCdXR0b257IGZsb2F0OnJpZ2h0OyB0b3A6MDsgfSAjY2FycHJvb2ZfbWFpbiAuY2FycHJvb2ZNYWluRGl2IHsgd2lkdGg6MTAwJTsgaGVpZ2h0OmF1dG87IHBhZGRpbmc6MDsgYmFja2dyb3VuZDojZmZmOyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IHBvc2l0aW9uOnJlbGF0aXZlOyBmbG9hdDpsZWZ0OyB9ICNjYXJwcm9vZl9tYWluIC5jYXJwcm9vZk1haW5EaXYgVUx7IHdpZHRoOjEwMCU7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgcGFkZGluZzowICFpbXBvcnRhbnQ7IH0gI2NhcnByb29mX21haW4gLmNhcnByb29mTWFpbkRpdiBVTCBMSSB7IGxpc3Qtc3R5bGUtdHlwZTpub25lOyB3aWR0aDoxMDAlOyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjAgMCA1cHggMDsgfSAjY2FycHJvb2ZfbWFpbiAuY2FycHJvb2ZfZmllbGR7IG1hcmdpbi1ib3R0b206N3B4OyB9ICNjYXJwcm9vZl9tYWluIC5jYXJwcm9vZk1lc3NhZ2V7IGZvbnQtc2l6ZToxcmVtOyBjb2xvcjojMDAwOyBmb250LXdlaWdodDpub3JtYWw7IHBhZGRpbmctYm90dG9tOjE1cHg7IHBvc2l0aW9uOnJlbGF0aXZlOyBmbG9hdDpsZWZ0OyB3aWR0aDoxMDAlOyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IH0gI2lubmVyUGFnZURpdnsgZGlzcGxheTp0YWJsZTsgfSAjY2FycHJvb2ZfbWFpbiAuY2FycHJvb2ZfbGFiZWx7IGZvbnQtc2l6ZToxcmVtOyBjb2xvcjojNjY2NjY2OyBmb250LXdlaWdodDpib2xkOyBkaXNwbGF5OmJsb2NrOyBmbG9hdDpsZWZ0OyBtYXJnaW46MDsgdGV4dC1hbGlnbjpsZWZ0OyB3aWR0aDoxMDAlOyBsaW5lLWhlaWdodDoyNXB4OyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IH0gI2NhcnByb29mX21haW4gLmNhcnByb29mX2lucHV0eyBmb250LXNpemU6MXJlbTsgcGFkZGluZzo1cHg7IGJvcmRlcjoxcHggc29saWQgI2I5YmRjMTsgd2lkdGg6MTAwJTsgY29sb3I6Izc5Nzk3OTsgYm94LXNpemluZzpib3JkZXItYm94OyBtYXJnaW4tYm90dG9tOjEwcHg7IGJvcmRlci1yYWRpdXM6NXB4OyB9ICNjYXJwcm9vZl9tYWluIC5jYXJwcm9vZl9pbnB1dDpmb2N1cyB7IGJhY2tncm91bmQtY29sb3I6I0Y0RjRGNDsgY29sb3I6IzAwMDAwMCAhaW1wb3J0YW50OyB9ICNjYXJwcm9vZl9tYWluIC5waG9uZUlucHV0eyBmb250LXNpemU6MXJlbTsgcGFkZGluZzo1cHg7IGJvcmRlcjoxcHggc29saWQgI2I5YmRjMTsgd2lkdGg6NDdweDsgbWFyZ2luLXJpZ2h0OjVweDsgY29sb3I6Izc5Nzk3OTsgYm9yZGVyLXJhZGl1czo1cHg7IH0gI2NhcnByb29mX21haW4gLnBob25lSW5wdXQ6Zm9jdXMgeyBiYWNrZ3JvdW5kLWNvbG9yOiNGNEY0RjQ7IGNvbG9yOiMwMDAwMDA7IH0gI2NhcnByb29mX21haW4gLmNhcnByb29mX2J1dHRvbklFIHsgYm9yZGVyOjFweCBzb2xpZCAjQzgzRjQxOyBtYXJnaW46MTBweCAxMHB4IDEwcHggMDsgcGFkZGluZzozcHggMTBweDsgdGV4dC1hbGlnbjpjZW50ZXI7IGZsb2F0OnJpZ2h0OyB3aWR0aDo2MHB4OyBjb2xvcjojZmZmOyBjdXJzb3I6cG9pbnRlcjsgYm9yZGVyLXRvcC1jb2xvcjojQzgzRjQxOyBib3JkZXItcmlnaHQtY29sb3I6I0M4M0Y0MTsgYm9yZGVyLWJvdHRvbS1jb2xvcjojQzgzRjQxOyBib3JkZXItbGVmdC1jb2xvcjojQzgzRjQxOyBib3JkZXItdG9wLXdpZHRoOjFweDsgYm9yZGVyLXJpZ2h0LXdpZHRoOjFweDsgYm9yZGVyLWJvdHRvbS13aWR0aDoxcHg7IGJvcmRlci1sZWZ0LXdpZHRoOjFweDsgYm9yZGVyLXRvcC1zdHlsZTpzb2xpZDsgYm9yZGVyLXJpZ2h0LXN0eWxlOnNvbGlkOyBib3JkZXItYm90dG9tLXN0eWxlOnNvbGlkOyBib3JkZXItbGVmdC1zdHlsZTpzb2xpZDsgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czo4cHg7IGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOjhweDsgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6OHB4OyBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjhweDsgYm94LXNoYWRvdzowcHggMnB4IDNweCAjNjY2OyBiYWNrZ3JvdW5kLWltYWdlOm5vbmU7IGJhY2tncm91bmQtYXR0YWNobWVudDpzY3JvbGw7IGJhY2tncm91bmQtcmVwZWF0OnJlcGVhdDsgYmFja2dyb3VuZC1wb3NpdGlvbjowIDA7IGJhY2tncm91bmQtc2l6ZTphdXRvOyBiYWNrZ3JvdW5kLW9yaWdpbjpwYWRkaW5nLWJveDsgYmFja2dyb3VuZC1jbGlwOmJvcmRlci1ib3g7IGJhY2tncm91bmQtY29sb3I6cmdiKDIwMCwgNjMsIDY1KTsgZm9udC13ZWlnaHQ6bm9ybWFsOyB9ICNjYXJwcm9vZl9tYWluIC5jYXJwcm9vZl9idXR0b25JRUhvdmVyIHsgYmFja2dyb3VuZC1jb2xvcjojQzgzRjQxOyBmb250LXdlaWdodDpib2xkOyB9ICNjYXJwcm9vZl9tYWluIC5jYXJwcm9vZl9idXR0b24geyBmb250LXNpemU6MS4ycmVtOyBmbG9hdDpyaWdodDsgbWFyZ2luOjI1cHggMCAwOyBmb250LXdlaWdodDpub3JtYWw7IGxpbmUtaGVpZ2h0OjFyZW07IHBhZGRpbmc6MTBweCAxNXB4OyBjdXJzb3I6cG9pbnRlcjsgY29sb3I6I2ZmZjsgdGV4dC1hbGlnbjpjZW50ZXI7IHRleHQtc2hhZG93OjAgLTFweCAxcHggIzY0Nzk5ZTsgYmFja2dyb3VuZDojYmIwMDAzOyBiYWNrZ3JvdW5kOi1tb3otbGluZWFyLWdyYWRpZW50KHRvcCwgI0M4M0Y0MSAwJSwgI2JiMDAwMyAxMDAlKTsgYmFja2dyb3VuZDotd2Via2l0LWdyYWRpZW50KGxpbmVhciwgMCUgMCUsIDAlIDEwMCUsIGZyb20oI0M4M0Y0MSksIHRvKCNiYjAwMDMpKTsgYm9yZGVyOjFweCBzb2xpZCAjNWM2ZjkxOyAtbW96LWJvcmRlci1yYWRpdXM6NXB4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6NXB4OyBib3JkZXItcmFkaXVzOjVweDsgd2lkdGg6MTAwJTsgYm94LXNpemluZzpib3JkZXItYm94OyB9ICNjYXJwcm9vZl9tYWluIC5jYXJwcm9vZl9idXR0b246aG92ZXIgeyBiYWNrZ3JvdW5kOiNDODNGNDE7IGN1cnNvcjpwb2ludGVyOyB9ICNjYXJwcm9vZl9kaWFsb2ctb3ZlcmxheSB7IGJhY2tncm91bmQ6cmdiYSgwLDAsMCwuOCk7IHBvc2l0aW9uOmZpeGVkOyB0b3A6MDsgbGVmdDowOyByaWdodDowOyBib3R0b206MDsgei1pbmRleDo5OTk4OyBkaXNwbGF5Om5vbmU7IH0gLmNhcnByb29mLWJhZGdlLmRlc2t0b3AgeyBtYXJnaW4tbGVmdDotMTVweDsgaGVpZ2h0OjU2cHg7IG92ZXJmbG93OmhpZGRlbjsgbWFyZ2luLXRvcDotMTBweDsgZmxvYXQ6bGVmdDsgfSAucHJlUHJvY2Vzc29ySHRtbENhclBvb2ZBUElyZXBvcnQuY2FycHJvb2YtYmFkZ2UuZGVza3RvcCwgLnByZVByb2Nlc3NvckNhclBvb2ZBUElyZXBvcnRWNS5jYXJwcm9vZi1iYWRnZS5kZXNrdG9wLCAucHJlUHJvY2Vzc29ySHRtbENhclByb29mRGVmYXVsdC5jYXJwcm9vZi1iYWRnZS5kZXNrdG9wIHsgd2lkdGg6MTA2cHg7IG1hcmdpbjoycHggNXB4IDAgMDsgZmxvYXQ6bGVmdDsgfSAjY2FycHJvb2ZfbWFpbiBpbWcgeyB3aWR0aDo1MCU7IGZsb2F0OmxlZnQ7IHBvc2l0aW9uOnJlbGF0aXZlOyBtYXJnaW46MCAwIDE1cHggMDsgfSAjYXNQb3BVcHsgYmFja2dyb3VuZDojZmZmZmZmOyB3aWR0aDo2MDBweDsgcGFkZGluZzozMHB4OyBjb2xvcjojMDAwMDAwOyB6LWluZGV4OjEwMDAwMjE7IH0gI2FzUG9wVXAgLnBvcHVwLXBvbGljeSB7IG1pbi1oZWlnaHQ6MTAwcHg7IG1heC1oZWlnaHQ6MTUwcHg7IG92ZXJmbG93LXk6YXV0bzsgfSAucG9wdXAtcG9saWN5IGEgeyB0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lOyBjb2xvcjpibHVlOyB9ICNhc1BvcFVwIC5hc1RpdGxleyB0ZXh0LWFsaWduOmNlbnRlcjsgZm9udC1zaXplOjIuMjVyZW0gOyBmb250LXdlaWdodDo7IG1hcmdpbi1ib3R0b206MjBweDsgfSAjYXNQb3BVcCAuYnRuRXhwbGljaXR7IGZsb2F0OmxlZnQ7IHBhZGRpbmctbGVmdDo3MHB4OyB3aWR0aDoxMDBweDsgfSAjYXNQb3BVcCAuYnRuSW1wbGljaXR7IGZsb2F0OnJpZ2h0OyB3aWR0aDoxMDBweDsgcGFkZGluZy1yaWdodDo3MHB4OyB9ICNhc1B1cmNoYXNlSW50ZW50LnJldmVhbC1tb2RhbCBzcGFuLmpxVHJhbnNmb3JtUmFkaW9XcmFwcGVyeyBwYWRkaW5nOjA7IG1hcmdpbjo2cHggNHB4IDA7IH0gI2FzUHVyY2hhc2VJbnRlbnQgLnBvcHVwLXBvbGljeSB7IG1heC1oZWlnaHQ6MTcwcHg7IG92ZXJmbG93LXk6YXV0bzsgZm9udC13ZWlnaHQ6Ym9sZDsgfSAjYXNQdXJjaGFzZUludGVudCAuYXNQSVRpdGxleyB0ZXh0LWFsaWduOmxlZnQ7IGZvbnQtc2l6ZToxLjU2M3JlbSA7IG1hcmdpbi1ib3R0b206MDsgcGFkZGluZy1ib3R0b206MTBweDsgZGlzcGxheTpibG9jazsgfSAjYXNQdXJjaGFzZUludGVudCAudmlUZXh0eyBjbGVhcjpib3RoOyBmb250LXdlaWdodDpib2xkOyBwYWRkaW5nLWJvdHRvbToxMHB4OyB9ICNhc1B1cmNoYXNlSW50ZW50IC52aU9wdGlvbnN7IGxpc3Qtc3R5bGU6bm9uZTsgcGFkZGluZzo1cHg7IG1hcmdpbi1ib3R0b206M3B4OyB9ICNhc1B1cmNoYXNlSW50ZW50IC52aU9wdGlvbnMgbGkgeyBwYWRkaW5nOjJweDsgfSAjYXNQdXJjaGFzZUludGVudCAudmlPcHRpb25zIGxpeyBjbGVhcjpib3RoOyBmb250LXNpemU6MTBwdDsgfSAjYXNQdXJjaGFzZUludGVudCBsaSBsYWJlbHsgZm9udC1zaXplOjEwcHQ7IH0gI2FzUHVyY2hhc2VJbnRlbnQgLmJ1dHRvbkRlZmF1bHRDb2xvciB7IG1hcmdpbjowIGF1dG8gNXB4OyBkaXNwbGF5OmJsb2NrOyBjbGVhcjpib3RoOyB9ICNhc1B1cmNoYXNlSW50ZW50IC5zdGVwcyB7IGxpc3Qtc3R5bGU6aW5zaWRlIG5vbmUgbm9uZTsgfSAjYXNQdXJjaGFzZUludGVudCAuc3RlcHMgPiBsaXsgYmFja2dyb3VuZDojZmZmOyBib3JkZXI6MXB4IHNvbGlkICNiYmJiYmI7IGJvcmRlci13aWR0aDowIDFweCAxcHggMDsgcGFkZGluZzoxNXB4OyBtYXJnaW4tYm90dG9tOjE1cHg7IGZvbnQtc2l6ZToxMHB0OyB9ICNhc1B1cmNoYXNlSW50ZW50IC5hc3llc25vIHsgZmxvYXQ6bGVmdDsgcGFkZGluZy1yaWdodDoxMHB4OyB3aWR0aDo5MHB4OyB9ICNhc1B1cmNoYXNlSW50ZW50IC5hc3llc3sgcGFkZGluZy1sZWZ0OjkwcHg7IHdpZHRoOjcwcHg7IH0gLmNvbnNlbnQuZGlzY2xhaW1lciB7IHRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7IGNvbG9yOmJsdWU7IGFsaWduLXNlbGY6Y2VudGVyOyBtYXJnaW4tYm90dG9tOnZhcigtLXMtMyk7IGN1cnNvcjpoZWxwOyB9IC5jdXN0b201X2xlZnQsIC5jdXN0b20yNV9sZWZ0LCAuY3VzdG9tMzVfbGVmdCwgLmN1c3RvbTQ1X2xlZnQsIC5jdGFfcHJpY2UsLmN0YV9jcmVkaXQsLmN0YV90ZXN0RHJpdmUsLmN0YV9ldmFsLC5jdGFfc3ZjcHJvbW8sLmN0YV9zZXJ2aWNlLC5jdGFfcGFydHMsLmN0YV90aXJlcyB7IHdpZHRoOjI4MHB4OyBoZWlnaHQ6NjFweDsgcGFkZGluZzowIDE1cHggMCA2MHB4OyBkaXNwbGF5OnRhYmxlLWNlbGw7IHZlcnRpY2FsLWFsaWduOm1pZGRsZTsgZm9udC1zaXplOjFyZW0gOyBmb250LXdlaWdodDpib2xkOyBjdXJzb3I6cG9pbnRlcjsgY29sb3I6IzE5MTkxOTsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYm94MjUucG5nJykgbm8tcmVwZWF0IHNjcm9sbCBsZWZ0IHRvcDsgYmFja2dyb3VuZC1zaXplOjU4OXB4IDU1MHB4OyB9IC5jdGFfcHJpY2UuYWx0OmhvdmVyLCAuY3RhX2NyZWRpdC5hbHQ6aG92ZXIsIC5jdGFfdGVzdERyaXZlLmFsdDpob3ZlciwgLmN0YV9ldmFsLmFsdDpob3ZlciwgLmN0YV9zZXJ2aWNlLmFsdDpob3ZlciwgLmN0YV9wYXJ0cy5hbHQ6aG92ZXIsIC5jdGFfdGlyZXMuYWx0OmhvdmVyLCAuY3RhX3N2Y3Byb21vLmFsdDpob3ZlciB7IGNvbG9yOiMxOTE5MTk7IH0gLmN1c3RvbTU1X2xlZnQsIC5jdXN0b20yNTVfbGVmdCwgLmN1c3RvbTM1NV9sZWZ0LCAuY3VzdG9tNDU1X2xlZnQsIC5jdGFfcHJpY2UuYWx0LC5jdGFfcHJpY2U6aG92ZXIsIC5jdGFfY3JlZGl0LmFsdCwgLmN0YV9jcmVkaXQ6aG92ZXIsIC5jdGFfdGVzdERyaXZlLmFsdCwgLmN0YV90ZXN0RHJpdmU6aG92ZXIsIC5jdGFfZXZhbC5hbHQsIC5jdGFfZXZhbDpob3ZlciwgLmN0YV9zZXJ2aWNlLmFsdCwgLmN0YV9zZXJ2aWNlOmhvdmVyLCAuY3RhX3BhcnRzLmFsdCwgLmN0YV9wYXJ0czpob3ZlciwgLmN0YV90aXJlcy5hbHQsIC5jdGFfdGlyZXM6aG92ZXIsIC5jdGFfc3ZjcHJvbW8uYWx0LCAuY3RhX3N2Y3Byb21vOmhvdmVyIHsgY29sb3I6I0ZGRkZGRjsgfSAuY3RhX3ByaWNlLCAuY3RhX3ByaWNlLmFsdDpob3ZlciB7IGJhY2tncm91bmQtcG9zaXRpb246MCAwOyB9IC5jdGFfcHJpY2UuYWx0LCAuY3RhX3ByaWNlOmhvdmVyIHsgYmFja2dyb3VuZC1wb3NpdGlvbjotMzA5cHggMDsgfSAuY3RhX2NyZWRpdCwgLmN0YV9jcmVkaXQuYWx0OmhvdmVyIHsgYmFja2dyb3VuZC1wb3NpdGlvbjpsZWZ0IC02N3B4OyB9IC5jdGFfY3JlZGl0LmFsdCwgLmN0YV9jcmVkaXQ6aG92ZXIgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOi0zMDlweCAtNjdweDsgfSAuY3RhX3Rlc3REcml2ZSwgLmN0YV90ZXN0RHJpdmUuYWx0OmhvdmVyIHsgYmFja2dyb3VuZC1wb3NpdGlvbjpsZWZ0IC0xMzVweDsgfSAuY3RhX3Rlc3REcml2ZS5hbHQsIC5jdGFfdGVzdERyaXZlOmhvdmVyIHsgYmFja2dyb3VuZC1wb3NpdGlvbjotMzA5cHggLTEzNXB4OyB9IC5jdGFfZXZhbCwgLmN0YV9ldmFsLmFsdDpob3ZlciB7IGJhY2tncm91bmQtcG9zaXRpb246bGVmdCAtMjA0cHg7IH0gLmN0YV9ldmFsLmFsdCwgLmN0YV9ldmFsOmhvdmVyIHsgYmFja2dyb3VuZC1wb3NpdGlvbjotMzA5cHggLTIwNHB4OyB9IC5jdGFfc3ZjcHJvbW8sIC5jdGFfc3ZjcHJvbW8uYWx0OmhvdmVyIHsgYmFja2dyb3VuZC1wb3NpdGlvbjpsZWZ0IC0yNzNweDsgfSAuY3RhX3N2Y3Byb21vLmFsdCwgLmN0YV9zdmNwcm9tbzpob3ZlciB7IGJhY2tncm91bmQtcG9zaXRpb246LTMwOXB4IC0yNzNweDsgfSAuY3RhX3NlcnZpY2UsIC5jdGFfc2VydmljZS5hbHQ6aG92ZXIgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOmxlZnQgLTM0MXB4OyB9IC5jdGFfc2VydmljZS5hbHQsIC5jdGFfc2VydmljZTpob3ZlciB7IGJhY2tncm91bmQtcG9zaXRpb246LTMwOXB4IC0zNDFweDsgfSAuY3RhX3BhcnRzLCAuY3RhX3BhcnRzLmFsdDpob3ZlciB7IGJhY2tncm91bmQtcG9zaXRpb246bGVmdCAtNDEwcHg7IH0gLmN0YV9wYXJ0cy5hbHQsIC5jdGFfcGFydHM6aG92ZXIgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOi0zMDlweCAtNDEwcHg7IH0gLmN0YV90aXJlcywgLmN0YV90aXJlcy5hbHQ6aG92ZXIgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOmxlZnQgLTQ4MnB4OyB9IC5jdGFfdGlyZXMuYWx0LCAuY3RhX3RpcmVzOmhvdmVyIHsgYmFja2dyb3VuZC1wb3NpdGlvbjotMzA5cHggLTQ4MnB4OyB9IC5jdGFfc2VydmljZS5oaWRlX3RleHQsIC5jdGFfcGFydHMuaGlkZV90ZXh0LCAuY3RhX3RpcmVzLmhpZGVfdGV4dCwgLmN0YV9wcmljZS5oaWRlX3RleHQsIC5jdGFfY3JlZGl0LmhpZGVfdGV4dCwgLmN0YV90ZXN0RHJpdmUuaGlkZV90ZXh0LCAuY3RhX2V2YWwuaGlkZV90ZXh0LCAuY3RhX3N2Y3Byb21vLmhpZGVfdGV4dCB7IHRleHQtaW5kZW50Oi0yMDAwZW07IH0gYm9keS5GUkVOQ0ggLmN0YV9wcmljZS5jdXN0b20sIGJvZHkuRlJFTkNIIC5jdGFfcHJpY2UuY3VzdG9tOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9ibGFuay5naWYnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRlJFTkNIIC5jdGFfY3JlZGl0LmN1c3RvbSwgYm9keS5GUkVOQ0ggLmN0YV9jcmVkaXQuY3VzdG9tOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9ibGFuay5naWYnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRlJFTkNIIC5jdGFfdGVzdERyaXZlLmN1c3RvbSwgYm9keS5GUkVOQ0ggLmN0YV90ZXN0RHJpdmUuY3VzdG9tOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9ibGFuay5naWYnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRlJFTkNIIC5jdGFfZXZhbC5jdXN0b20sIGJvZHkuRlJFTkNIIC5jdGFfZXZhbC5jdXN0b206aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2JsYW5rLmdpZicpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5GUkVOQ0ggLmN0YV9zZXJ2aWNlLmN1c3RvbSwgYm9keS5GUkVOQ0ggLmN0YV9zZXJ2aWNlLmN1c3RvbTpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYmxhbmsuZ2lmJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkZSRU5DSCAuY3RhX3BhcnRzLmN1c3RvbSwgYm9keS5GUkVOQ0ggLmN0YV9wYXJ0cy5jdXN0b206aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2JsYW5rLmdpZicpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5GUkVOQ0ggLmN0YV90aXJlcy5jdXN0b20sIGJvZHkuRlJFTkNIIC5jdGFfdGlyZXMuY3VzdG9tOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9ibGFuay5naWYnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRlJFTkNIIC5jdGFfc3ZjcHJvbW8uY3VzdG9tLCBib2R5LkZSRU5DSCAuY3RhX3N2Y3Byb21vLmN1c3RvbTpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYmxhbmsuZ2lmJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkVOR0xJU0ggLmN0YV9wcmljZS5jdXN0b20sIGJvZHkuRU5HTElTSCAuY3RhX3ByaWNlLmN1c3RvbTpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYmxhbmsuZ2lmJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkVOR0xJU0ggLmN0YV9jcmVkaXQuY3VzdG9tLCBib2R5LkVOR0xJU0ggLmN0YV9jcmVkaXQuY3VzdG9tOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9ibGFuay5naWYnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRU5HTElTSCAuY3RhX3Rlc3REcml2ZS5jdXN0b20sIGJvZHkuRU5HTElTSCAuY3RhX3Rlc3REcml2ZS5jdXN0b206aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2JsYW5rLmdpZicpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5FTkdMSVNIIC5jdGFfZXZhbC5jdXN0b20sIGJvZHkuRU5HTElTSCAuY3RhX2V2YWwuY3VzdG9tOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9ibGFuay5naWYnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRU5HTElTSCAuY3RhX3NlcnZpY2UuY3VzdG9tLCBib2R5LkVOR0xJU0ggLmN0YV9zZXJ2aWNlLmN1c3RvbTpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYmxhbmsuZ2lmJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkVOR0xJU0ggLmN0YV9wYXJ0cy5jdXN0b20sIGJvZHkuRU5HTElTSCAuY3RhX3BhcnRzLmN1c3RvbTpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYmxhbmsuZ2lmJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkVOR0xJU0ggLmN0YV90aXJlcy5jdXN0b20sIGJvZHkuRU5HTElTSCAuY3RhX3RpcmVzLmN1c3RvbTpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYmxhbmsuZ2lmJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkVOR0xJU0ggLmN0YV9zdmNwcm9tby5jdXN0b20sIGJvZHkuRU5HTElTSCAuY3RhX3N2Y3Byb21vLmN1c3RvbTpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYmxhbmsuZ2lmJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkZSRU5DSCAuY3RhX3ByaWNlLmJsYWNrLCBib2R5LkZSRU5DSCAuY3RhX3ByaWNlLmJsYWNrOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfcHJpY2VfYmxhY2tfZnIucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkZSRU5DSCAuY3RhX2NyZWRpdC5ibGFjaywgYm9keS5GUkVOQ0ggLmN0YV9jcmVkaXQuYmxhY2s6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV9maW5hbmNlX2JsYWNrX2ZyLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5GUkVOQ0ggLmN0YV90ZXN0RHJpdmUuYmxhY2ssIGJvZHkuRlJFTkNIIC5jdGFfdGVzdERyaXZlLmJsYWNrOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfdGVzdGRyaXZlX2JsYWNrX2ZyLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5GUkVOQ0ggLmN0YV9ldmFsLmJsYWNrLCBib2R5LkZSRU5DSCAuY3RhX2V2YWwuYmxhY2s6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV90cmFkZWluX2JsYWNrX2ZyLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5GUkVOQ0ggLmN0YV9zZXJ2aWNlLmJsYWNrLCBib2R5LkZSRU5DSCAuY3RhX3NlcnZpY2UuYmxhY2s6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV9zZXJ2aWNlX2JsYWNrX2ZyLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5GUkVOQ0ggLmN0YV9wYXJ0cy5ibGFjaywgYm9keS5GUkVOQ0ggLmN0YV9wYXJ0cy5ibGFjazpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3BhcnRzX2JsYWNrX2ZyLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5GUkVOQ0ggLmN0YV90aXJlcy5ibGFjaywgYm9keS5GUkVOQ0ggLmN0YV90aXJlcy5ibGFjazpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3RpcmVzX2JsYWNrX2ZyLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5GUkVOQ0ggLmN0YV9zdmNwcm9tby5ibGFjaywgYm9keS5GUkVOQ0ggLmN0YV9zdmNwcm9tby5ibGFjazpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3Byb21vc2VydmljZV9ibGFja19mci5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRU5HTElTSCAuY3RhX3ByaWNlLmJsYWNrLCBib2R5LkVOR0xJU0ggLmN0YV9wcmljZS5ibGFjazpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3ByaWNlX2JsYWNrX2VuLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5FTkdMSVNIIC5jdGFfY3JlZGl0LmJsYWNrLCBib2R5LkVOR0xJU0ggLmN0YV9jcmVkaXQuYmxhY2s6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV9maW5hbmNlX2JsYWNrX2VuLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5FTkdMSVNIIC5jdGFfdGVzdERyaXZlLmJsYWNrLCBib2R5LkVOR0xJU0ggLmN0YV90ZXN0RHJpdmUuYmxhY2s6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV90ZXN0ZHJpdmVfYmxhY2tfZW4ucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkVOR0xJU0ggLmN0YV9ldmFsLmJsYWNrLCBib2R5LkVOR0xJU0ggLmN0YV9ldmFsLmJsYWNrOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfdHJhZGVpbl9ibGFja19lbi5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRU5HTElTSCAuY3RhX3NlcnZpY2UuYmxhY2ssIGJvZHkuRU5HTElTSCAuY3RhX3NlcnZpY2UuYmxhY2s6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV9zZXJ2aWNlX2JsYWNrX2VuLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5FTkdMSVNIIC5jdGFfcGFydHMuYmxhY2ssIGJvZHkuRU5HTElTSCAuY3RhX3BhcnRzLmJsYWNrOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfcGFydHNfYmxhY2tfZW4ucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkVOR0xJU0ggLmN0YV90aXJlcy5ibGFjaywgYm9keS5FTkdMSVNIIC5jdGFfdGlyZXMuYmxhY2s6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV90aXJlc19ibGFja19lbi5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRU5HTElTSCAuY3RhX3N2Y3Byb21vLmJsYWNrLCBib2R5LkVOR0xJU0ggLmN0YV9zdmNwcm9tby5ibGFjazpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3Byb21vc2VydmljZV9ibGFja19lbi5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRlJFTkNIIC5jdGFfcHJpY2UuYmx1ZSwgYm9keS5GUkVOQ0ggLmN0YV9wcmljZS5ibHVlOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfcHJpY2VfYmx1ZV9mci5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRlJFTkNIIC5jdGFfY3JlZGl0LmJsdWUsIGJvZHkuRlJFTkNIIC5jdGFfY3JlZGl0LmJsdWU6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV9maW5hbmNlX2JsdWVfZnIucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkZSRU5DSCAuY3RhX3Rlc3REcml2ZS5ibHVlLCBib2R5LkZSRU5DSCAuY3RhX3Rlc3REcml2ZS5ibHVlOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfdGVzdGRyaXZlX2JsdWVfZnIucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkZSRU5DSCAuY3RhX2V2YWwuYmx1ZSwgYm9keS5GUkVOQ0ggLmN0YV9ldmFsLmJsdWU6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV90cmFkZWluX2JsdWVfZnIucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkZSRU5DSCAuY3RhX3NlcnZpY2UuYmx1ZSwgYm9keS5GUkVOQ0ggLmN0YV9zZXJ2aWNlLmJsdWU6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV9zZXJ2aWNlX2JsdWVfZnIucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkZSRU5DSCAuY3RhX3BhcnRzLmJsdWUsIGJvZHkuRlJFTkNIIC5jdGFfcGFydHMuYmx1ZTpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3BhcnRzX2JsdWVfZnIucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkZSRU5DSCAuY3RhX3RpcmVzLmJsdWUsIGJvZHkuRlJFTkNIIC5jdGFfdGlyZXMuYmx1ZTpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3RpcmVzX2JsdWVfZnIucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkZSRU5DSCAuY3RhX3N2Y3Byb21vLmJsdWUsIGJvZHkuRlJFTkNIIC5jdGFfc3ZjcHJvbW8uYmx1ZTpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3Byb21vc2VydmljZV9ibHVlX2ZyLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5FTkdMSVNIIC5jdGFfcHJpY2UuYmx1ZSwgYm9keS5FTkdMSVNIIC5jdGFfcHJpY2UuYmx1ZTpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3ByaWNlX2JsdWVfZW4ucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkVOR0xJU0ggLmN0YV9jcmVkaXQuYmx1ZSwgYm9keS5FTkdMSVNIIC5jdGFfY3JlZGl0LmJsdWU6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV9maW5hbmNlX2JsdWVfZW4ucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkVOR0xJU0ggLmN0YV90ZXN0RHJpdmUuYmx1ZSwgYm9keS5FTkdMSVNIIC5jdGFfdGVzdERyaXZlLmJsdWU6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV90ZXN0ZHJpdmVfYmx1ZV9lbi5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRU5HTElTSCAuY3RhX2V2YWwuYmx1ZSwgYm9keS5FTkdMSVNIIC5jdGFfZXZhbC5ibHVlOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfdHJhZGVpbl9ibHVlX2VuLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5FTkdMSVNIIC5jdGFfc2VydmljZS5ibHVlLCBib2R5LkVOR0xJU0ggLmN0YV9zZXJ2aWNlLmJsdWU6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV9zZXJ2aWNlX2JsdWVfZW4ucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkVOR0xJU0ggLmN0YV9wYXJ0cy5ibHVlLCBib2R5LkVOR0xJU0ggLmN0YV9wYXJ0cy5ibHVlOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfcGFydHNfYmx1ZV9lbi5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRU5HTElTSCAuY3RhX3RpcmVzLmJsdWUsIGJvZHkuRU5HTElTSCAuY3RhX3RpcmVzLmJsdWU6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV90aXJlc19ibHVlX2VuLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5FTkdMSVNIIC5jdGFfc3ZjcHJvbW8uYmx1ZSwgYm9keS5FTkdMSVNIIC5jdGFfc3ZjcHJvbW8uYmx1ZTpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3Byb21vc2VydmljZV9ibHVlX2VuLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5GUkVOQ0ggLmN0YV9wcmljZS5yZWQsIGJvZHkuRlJFTkNIIC5jdGFfcHJpY2UucmVkOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfcHJpY2VfcmVkX2ZyLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5GUkVOQ0ggLmN0YV9jcmVkaXQucmVkLCBib2R5LkZSRU5DSCAuY3RhX2NyZWRpdC5yZWQ6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV9maW5hbmNlX3JlZF9mci5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRlJFTkNIIC5jdGFfdGVzdERyaXZlLnJlZCwgYm9keS5GUkVOQ0ggLmN0YV90ZXN0RHJpdmUucmVkOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfdGVzdGRyaXZlX3JlZF9mci5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRlJFTkNIIC5jdGFfZXZhbC5yZWQsIGJvZHkuRlJFTkNIIC5jdGFfZXZhbC5yZWQ6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV90cmFkZWluX3JlZF9mci5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRlJFTkNIIC5jdGFfc2VydmljZS5yZWQsIGJvZHkuRlJFTkNIIC5jdGFfc2VydmljZS5yZWQ6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV9zZXJ2aWNlX3JlZF9mci5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRlJFTkNIIC5jdGFfcGFydHMucmVkLCBib2R5LkZSRU5DSCAuY3RhX3BhcnRzLnJlZDpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3BhcnRzX3JlZF9mci5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRlJFTkNIIC5jdGFfdGlyZXMucmVkLCBib2R5LkZSRU5DSCAuY3RhX3RpcmVzLnJlZDpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3RpcmVzX3JlZF9mci5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRlJFTkNIIC5jdGFfc3ZjcHJvbW8ucmVkLCBib2R5LkZSRU5DSCAuY3RhX3N2Y3Byb21vLnJlZDpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3Byb21vc2VydmljZV9yZWRfZnIucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkVOR0xJU0ggLmN0YV9wcmljZS5yZWQsIGJvZHkuRU5HTElTSCAuY3RhX3ByaWNlLnJlZDpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3ByaWNlX3JlZF9lbi5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRU5HTElTSCAuY3RhX2NyZWRpdC5yZWQsIGJvZHkuRU5HTElTSCAuY3RhX2NyZWRpdC5yZWQ6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV9maW5hbmNlX3JlZF9lbi5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRU5HTElTSCAuY3RhX3Rlc3REcml2ZS5yZWQsIGJvZHkuRU5HTElTSCAuY3RhX3Rlc3REcml2ZS5yZWQ6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV90ZXN0ZHJpdmVfcmVkX2VuLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5FTkdMSVNIIC5jdGFfZXZhbC5yZWQsIGJvZHkuRU5HTElTSCAuY3RhX2V2YWwucmVkOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfdHJhZGVpbl9yZWRfZW4ucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkVOR0xJU0ggLmN0YV9zZXJ2aWNlLnJlZCwgYm9keS5FTkdMSVNIIC5jdGFfc2VydmljZS5yZWQ6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV9zZXJ2aWNlX3JlZF9lbi5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRU5HTElTSCAuY3RhX3BhcnRzLnJlZCwgYm9keS5FTkdMSVNIIC5jdGFfcGFydHMucmVkOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfcGFydHNfcmVkX2VuLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5FTkdMSVNIIC5jdGFfdGlyZXMucmVkLCBib2R5LkVOR0xJU0ggLmN0YV90aXJlcy5yZWQ6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV90aXJlc19yZWRfZW4ucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkVOR0xJU0ggLmN0YV9zdmNwcm9tby5yZWQsIGJvZHkuRU5HTElTSCAuY3RhX3N2Y3Byb21vLnJlZDpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3Byb21vc2VydmljZV9yZWRfZW4ucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkZSRU5DSCAuY3RhX3ByaWNlLmdyZXksIGJvZHkuRlJFTkNIIC5jdGFfcHJpY2UuZ3JleTpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3ByaWNlX2dyZXlfZnIucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkZSRU5DSCAuY3RhX2NyZWRpdC5ncmV5LCBib2R5LkZSRU5DSCAuY3RhX2NyZWRpdC5ncmV5OmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfZmluYW5jZV9ncmV5X2ZyLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5GUkVOQ0ggLmN0YV90ZXN0RHJpdmUuZ3JleSwgYm9keS5GUkVOQ0ggLmN0YV90ZXN0RHJpdmUuZ3JleTpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3Rlc3Rkcml2ZV9ncmV5X2ZyLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5GUkVOQ0ggLmN0YV9ldmFsLmdyZXksIGJvZHkuRlJFTkNIIC5jdGFfZXZhbC5ncmV5OmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfdHJhZGVpbl9ncmV5X2ZyLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5GUkVOQ0ggLmN0YV9zZXJ2aWNlLmdyZXksIGJvZHkuRlJFTkNIIC5jdGFfc2VydmljZS5ncmV5OmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfc2VydmljZV9ncmV5X2ZyLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5GUkVOQ0ggLmN0YV9wYXJ0cy5ncmV5LCBib2R5LkZSRU5DSCAuY3RhX3BhcnRzLmdyZXk6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV9wYXJ0c19ncmV5X2ZyLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5GUkVOQ0ggLmN0YV90aXJlcy5ncmV5LCBib2R5LkZSRU5DSCAuY3RhX3RpcmVzLmdyZXk6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV90aXJlc19ncmV5X2ZyLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5GUkVOQ0ggLmN0YV9zdmNwcm9tby5ncmV5LCBib2R5LkZSRU5DSCAuY3RhX3N2Y3Byb21vLmdyZXk6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV9wcm9tb3NlcnZpY2VfZ3JleV9mci5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRU5HTElTSCAuY3RhX3ByaWNlLmdyZXksIGJvZHkuRU5HTElTSCAuY3RhX3ByaWNlLmdyZXk6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV9wcmljZV9ncmV5X2VuLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5FTkdMSVNIIC5jdGFfY3JlZGl0LmdyZXksIGJvZHkuRU5HTElTSCAuY3RhX2NyZWRpdC5ncmV5OmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfZmluYW5jZV9ncmV5X2VuLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5FTkdMSVNIIC5jdGFfdGVzdERyaXZlLmdyZXksIGJvZHkuRU5HTElTSCAuY3RhX3Rlc3REcml2ZS5ncmV5OmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfdGVzdGRyaXZlX2dyZXlfZW4ucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkVOR0xJU0ggLmN0YV9ldmFsLmdyZXksIGJvZHkuRU5HTElTSCAuY3RhX2V2YWwuZ3JleTpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3RyYWRlaW5fZ3JleV9lbi5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRU5HTElTSCAuY3RhX3NlcnZpY2UuZ3JleSwgYm9keS5FTkdMSVNIIC5jdGFfc2VydmljZS5ncmV5OmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfc2VydmljZV9ncmV5X2VuLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5FTkdMSVNIIC5jdGFfcGFydHMuZ3JleSwgYm9keS5FTkdMSVNIIC5jdGFfcGFydHMuZ3JleTpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3BhcnRzX2dyZXlfZW4ucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkVOR0xJU0ggLmN0YV90aXJlcy5ncmV5LCBib2R5LkVOR0xJU0ggLmN0YV90aXJlcy5ncmV5OmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfdGlyZXNfZ3JleV9lbi5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRU5HTElTSCAuY3RhX3N2Y3Byb21vLmdyZXksIGJvZHkuRU5HTElTSCAuY3RhX3N2Y3Byb21vLmdyZXk6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV9wcm9tb3NlcnZpY2VfZ3JleV9lbi5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuaGVhZGluZ0NhcHNPbiBoMSwgYm9keS5oZWFkaW5nQ2Fwc09uIGgyLCBib2R5LmhlYWRpbmdDYXBzT24gaDMsIGJvZHkuaGVhZGluZ0NhcHNPbiBzcGFuLmgyLWFsdCwgYm9keS5oZWFkaW5nQ2Fwc09uIHNwYW4uaDMtYWx0LCBib2R5LmhlYWRpbmdDYXBzT24uVXNlZFNycDIgLmNhckJhc2ljcyAuY2FyVGl0bGUgLmRpdkNpdHksIGJvZHkuaGVhZGluZ0NhcHNPbiAudi1jYXJkIC5oZWFkZXItc2VjdGlvbiAub3JnLCBib2R5LmhlYWRpbmdDYXBzT24gI2Zvb3RlciAub3JnLCBib2R5LmhlYWRpbmdDYXBzT24gLmxvZ29hcmVhIC5hZGRyZXNzIC5hZHIgc3BhbjpmaXJzdC1jaGlsZCwgYm9keS5oZWFkaW5nQ2Fwc09uICNmb290ZXIgLnZpdiwgYm9keS5oZWFkaW5nQ2Fwc09uIC5zZWFyY2gtbGlua3Mtd3JhcHBlciAuc2VhcmNoLWxpbmstdGl0bGUsIGJvZHkuaGVhZGluZ0NhcHNPbiAucG9wdXBpemVyQm9keSAjdHJhZGVJbkJhclBvcHVwX2xpbmUxLCBib2R5LmhlYWRpbmdDYXBzT24gLmNhcm91c3NlbCAuY2Fyb3VzZWxUYWJzIC50YWItbGFiZWwsIGJvZHkuaGVhZGluZ0NhcHNPbiAuZm9ybUhlYWRpbmcsIGJvZHkuaGVhZGluZ0NhcHNPbiAuY29tcGFyZS12ZWhpY2xlcy1mb3JtLXRhYmxlIC50cmltLXByZXZpZXcgLmNvbXBhcmUtdGl0bGUgeyB0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2UgIWltcG9ydGFudDsgfSBib2R5LmhlYWRpbmdDYXBzT24gLmNhcm91c3NlbCAuY2Fyb3VzZWxUYWJzIC50YWItbGFiZWwgeyBmb250LXNpemU6MS4yNXJlbTsgfSBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6MTMwMXB4KSB7IGJvZHkuaGVhZGluZ0NhcHNPbiAuZGl2Q2VydGlmaWNhdGlvbkJsb2NrIGgyLmRlZmF1bHQgeyBmb250LXNpemU6MS40cmVtICFpbXBvcnRhbnQ7IH0gfSAuZGl2Q2VydGlmaWNhdGlvbkJsb2NrIGgyIHNwYW4uaWNvbiwgLmRpdkNlcnRpZmljYXRpb25CbG9jayBzcGFuLmgyLWFsdCBzcGFuLmljb24geyBtaW4td2lkdGg6MjBweDsgfSAuZGl2Q2VydGlmaWNhdGlvbkJsb2NrIC5jZXJ0LXRpdGxlIHsgZGlzcGxheTpibG9jazsgbWFyZ2luLWxlZnQ6MjBweDsgZm9udC1zaXplOjEuM2VtOyB9IC5kaXZDZXJ0aWZpY2F0aW9uQmxvY2sgLmNlcnQtc3VidGl0bGUgeyBkaXNwbGF5OmJsb2NrOyBtYXJnaW4tbGVmdDoyMHB4OyBtYXJnaW4tYm90dG9tOjEwcHg7IGNvbG9yOiM3Nzc7IGZvbnQtc2l6ZToxZW07IG1hcmdpbi10b3A6NXB4OyB9IC5kaXZDZXJ0aWZpY2F0aW9uQmxvY2sgLmNlcnQtaGlnaGxpZ2h0ZWQtdmFsdWUgeyBiYWNrZ3JvdW5kLWNvbG9yOiMwMDA7IGJvcmRlcjoxcHggc29saWQgIzAwMDsgY29sb3I6I0ZGRjsgcGFkZGluZzoxMXB4IDIwcHggOXB4IDIwcHg7IGJvcmRlci1yYWRpdXM6M3B4OyBkaXNwbGF5OmlubGluZS1ibG9jazsgfSAuSW5uZXJCb3hMYXllci5kaXZDZXJ0aWZpY2F0aW9uQmxvY2suaXNPbmVSb3cgaW1nIHsgbWF4LXdpZHRoOmF1dG8gIWltcG9ydGFudDsgfSAudXNlZFZkcEFjdGlvbnMgLmFjdGlvbi1ib3ggYS5idG4tZGVmYXVsdCB7IHdpZHRoOjEwMCUgIWltcG9ydGFudDsgZGlzcGxheTpibG9jayAhaW1wb3J0YW50OyBtYXJnaW4tYm90dG9tOjEwcHggIWltcG9ydGFudDsgfSAuY3RhX3ByaWNlOmhvdmVyLCAuY3RhX2NyZWRpdDpob3ZlciwgLmN0YV90ZXN0RHJpdmU6aG92ZXIsIC5jdGFfZXZhbDpob3ZlciwgLmN0YV9zZXJ2aWNlOmhvdmVyLCAuY3RhX3BhcnRzOmhvdmVyLCAuY3RhX3RpcmVzOmhvdmVyLCAuY3RhX3N2Y3Byb21vOmhvdmVyeyBvcGFjaXR5OjAuNzU7IH0gLnNlYXJjaF9jZXJ0X2dlbmVyaWN7IGhlaWdodDo0NHB4OyBtYXJnaW46MnB4IDVweCAwIDA7IGZsb2F0OmxlZnQ7IG1hcmdpbi10b3A6LTBweDsgfSAjbmV3Q2FySW5Vc2VkUGFnZXsgbWFyZ2luLXRvcDotMnB4OyBtYXJnaW4tYm90dG9tOjVweDsgZGlzcGxheTpub25lOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgfSAjbmV3Q2FySW5Vc2VkUGFnZSAuYm94Mjg4X3RvcHsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvcmlnaHRfYm94NF90b3AucG5nJykgbm8tcmVwZWF0IHNjcm9sbCBsZWZ0IHRvcCB0cmFuc3BhcmVudDsgfSAjbmV3Q2FySW5Vc2VkUGFnZSAuYm94Mjg4MF9taWR7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL3JpZ2h0X2JveDRfbWlkLnBuZycpIHJlcGVhdC15IHNjcm9sbCBsZWZ0IHRvcCB0cmFuc3BhcmVudCB9ICNuZXdDYXJJblVzZWRQYWdlIC5ib3gyODhfZm9vdGVyX3FzeyBiYWNrZ3JvdW5kIDp1cmwoJy9pbWFnZXMvcmlnaHRfYm94NF9mb290ZXIucG5nJykgbm8tcmVwZWF0IHNjcm9sbCBsZWZ0IHRvcCB0cmFuc3BhcmVudCB9ICNuZXdDYXJJblVzZWRQYWdlX3NjcmF0Y2hQcmljZXsgd2lkdGg6MTEwcHg7IGhlaWdodDozNXB4OyBmbG9hdDpyaWdodDsgcG9zaXRpb246cmVsYXRpdmU7IGxlZnQ6LTgzcHg7IGRpc3BsYXk6bm9uZTsgfSAjbmV3Q2FySW5Vc2VkUGFnZV90aXRsZXsgZGlzcGxheTpibG9jazt0ZXh0LWFsaWduOmNlbnRlcjtmb250LXNpemU6MC45MzhyZW0gO2ZvbnQtd2VpZ2h0OmJvbGQ7dGV4dC1kZWNvcmF0aW9uOm5vbmU7IH0gdWwjY3JlZGl0X2RyaXZldHJhaW4sIHVsI2NyZWRpdF9mdWVsdHlwZSwgdWwjY3JlZGl0X2JvZHlUeXBlcyB7IGxpc3Qtc3R5bGU6bm9uZTsgZmxvYXQ6bGVmdDsgd2lkdGg6MzMlOyBwYWRkaW5nLWJvdHRvbToxMHB4OyB9IHVsI2NyZWRpdF9kcml2ZXRyYWluIGxpID4gbGFiZWwsIHVsI2NyZWRpdF9mdWVsdHlwZSBsaSA+IGxhYmVsLCB1bCNjcmVkaXRfYm9keVR5cGVzIGxpID4gbGFiZWx7IGRpc3BsYXk6YmxvY2s7IHBhZGRpbmctYm90dG9tOjVweDsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXNpemU6MC44MTNyZW0gOyBjb2xvcjojMjQyNDI0OyBmbG9hdDpub25lOyB9IHVsI2NyZWRpdF9kcml2ZXRyYWluIGxpID4gZGl2LCB1bCNjcmVkaXRfZnVlbHR5cGUgbGkgPiBkaXYsIHVsI2NyZWRpdF9ib2R5VHlwZXMgbGkgPiBkaXZ7IGRpc3BsYXk6YmxvY2s7IHBhZGRpbmctYm90dG9tOjVweDsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXNpemU6MC44MTNyZW0gOyBjb2xvcjojMDAwMDAwOyBmbG9hdDpub25lOyB9IHVsI2NyZWRpdF9kcml2ZXRyYWluIGxpID4gbGFiZWwgPiBzcGFuLCB1bCNjcmVkaXRfZnVlbHR5cGUgbGkgPiBsYWJlbCA+IHNwYW4sIHVsI2NyZWRpdF9ib2R5VHlwZXMgbGkgPiBsYWJlbCA+IHNwYW57IG1hcmdpbi1yaWdodDo4cHg7IG1hcmdpbi10b3A6MHB4OyB9ICNjcmVkaXRfdmlfYWR2YW5jZWQgbGFiZWx7IGZsb2F0OmxlZnQ7IH0gI2NyZWRpdF92aV9hZHZhbmNlZCBsYWJlbCBkaXYubGFiZWx7IGZsb2F0OmxlZnQ7IGxpbmUtaGVpZ2h0OjMycHg7IG1hcmdpbi1yaWdodDo2cHg7IHdpZHRoOjIwMHB4OyB0ZXh0LWFsaWduOnJpZ2h0OyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IGNvbG9yOiMyNDI0MjQ7IH0gLmRldGFpbHNfYm94IC5ib3gyX2RldGFpbHNfbWlkIC5ib3gyX2RldGFpbHNfdGV4dCwgLmRldGFpbHNfYm94IC5ib3gyX2RldGFpbHNfbWlkIC5ib3gyX2RldGFpbHNfdGV4dDI1IHNwYW4sIC5kZXRhaWxzX2JveCAuYm94Ml9kZXRhaWxzX21pZCAuYm94Ml9kZXRhaWxzX3RleHQgc3BhbnsgY29sb3I6I2RlMDAwMDsgfSAudXNwLWNvbG9yIHsgY29sb3I6I2RlMDAwMDsgfSAubXljYXJvdXNlbF90ZHsgZGlzcGxheTpibG9jazsgd2lkdGg6NTYwcHg7IG92ZXJmbG93OmhpZGRlbjsgbWFyZ2luLWxlZnQ6MzBweDsgbWFyZ2luLXRvcDoxMHB4OyB9IC52ZWhpY2xlQ2Fyb3VzZWx7IHdpZHRoOjE5MHB4OyB9IC5kZXRhaWxzX2JveCwgLmRldGFpbHNfYm94IC5ib3gyX2RldGFpbHNfbWlkRXggeyBiYWNrZ3JvdW5kOiNiNWI1YjQ7IH0gI2V4dENvbG9yU2VsZWN0LmZpeGVkV2lkdGggLCAjaW50Q29sb3JTZWxlY3QuZml4ZWRXaWR0aCB7IHdpZHRoOjIzMHB4OyB9IC5jb2xvckNob2ljZXsgaGVpZ2h0OjMxcHg7IHdpZHRoOjMxcHg7IHRleHQtYWxpZ246Y2VudGVyOyB0ZXh0LWluZGVudDotMjAwMGVtOyBsaW5lLWhlaWdodDozMXB4OyBmb250LXNpemU6MC45MzhyZW0gOyBmb250LXdlaWdodDpib2xkOyBmbG9hdDpsZWZ0OyBib3JkZXI6MXB4IHNvbGlkICMwMDA7IG1hcmdpbjoycHg7IGNvbG9yOiNmZmY7IH0gLmNvbG9yQ2hvaWNlLmNob3NlbiB7IHRleHQtaW5kZW50OjA7IH0gLmNvbG9yQ2hvaWNlLnRhbiB7IGJhY2tncm91bmQtY29sb3I6I2QyYjQ4YzsgfSAuY29sb3JDaG9pY2UuYmxhY2sgeyBiYWNrZ3JvdW5kLWNvbG9yOiMwMDAwMDA7IH0gLmNvbG9yQ2hvaWNlLmdvbGQgeyBiYWNrZ3JvdW5kLWNvbG9yOiNiMjk2MDA7IH0gLmNvbG9yQ2hvaWNlLmJyb3duIHsgYmFja2dyb3VuZC1jb2xvcjojNjYzMzBlOyB9IC5jb2xvckNob2ljZS5ncmVlbiB7IGJhY2tncm91bmQtY29sb3I6IzAwOTkwMDsgfSAuY29sb3JDaG9pY2UuZ3JheSB7IGJhY2tncm91bmQtY29sb3I6Izk3OTc5NzsgfSAuY29sb3JDaG9pY2UuZ3JleSB7IGJhY2tncm91bmQtY29sb3I6Izk3OTc5NzsgfSAuY29sb3JDaG9pY2Uub3JhbmdlIHsgYmFja2dyb3VuZC1jb2xvcjojZTY5NDAwOyB9IC5jb2xvckNob2ljZS5zaWx2ZXIgeyBiYWNrZ3JvdW5kLWNvbG9yOiNjMGMwYzA7IGNvbG9yOiMwMDAwMDA7IH0gLmNvbG9yQ2hvaWNlLm1hdXZlIHsgYmFja2dyb3VuZC1jb2xvcjojZDQ3M2Q0OyB9IC5jb2xvckNob2ljZS5yZWQgeyBiYWNrZ3JvdW5kLWNvbG9yOiNjYzAwMDA7IH0gLmNvbG9yQ2hvaWNlLndoaXRlIHsgYmFja2dyb3VuZC1jb2xvcjojRkZGRkZGOyBjb2xvcjojMDAwMDAwOyB9IC5jb2xvckNob2ljZS55ZWxsb3cgeyBiYWNrZ3JvdW5kLWNvbG9yOiNmMGMwMDA7IGNvbG9yOiMwMDAwMDA7IH0gLmNvbG9yQ2hvaWNlLmJsdWUgeyBiYWNrZ3JvdW5kLWNvbG9yOiMxOTE5YzQ7IH0gLmNvbG9yQ2hvaWNlLmNvcHBlciB7IGJhY2tncm91bmQtY29sb3I6I0FGNDc0NDsgfSAuY29sb3JDaG9pY2UucHVycGxlIHsgYmFja2dyb3VuZC1jb2xvcjojNTMxNUIyOyB9IC5saWdodC1ncmF5IHsgYmFja2dyb3VuZC1jb2xvcjojNGI0YzRjOyBjb2xvcjojMDAwMDAwO30gYS5jb2xvckNob2ljZSB7IGNvbG9yOiNmZmY7IHRleHQtZGVjb3JhdGlvbjpub25lOyB9IHRyLmJvcmRlcl9ib3R0b21fbGluZSB0ZCwgdHIuYm9yZGVyX2JvdHRvbV9saW5lIHRoIHsgYm9yZGVyLWJvdHRvbToxcHQgc29saWQgYmxhY2s7IH0gLmJvcmRlcl9ib3h7IGJvcmRlci1yYWRpdXM6NXB4OyBtYXJnaW4tYm90dG9tOjVweDsgYmFja2dyb3VuZC1jb2xvcjpyZ2IoMjU1LDI1NSwyNTUpOyAtbXMtZmlsdGVyOnByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5BbHBoYShPcGFjaXR5PTEwMCk7IGJhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwxKTsgYm94LXNoYWRvdzpub25lOyBjbGVhcjpib3RoOyB9IC5ob21lcGFnZSAuYm9yZGVyX2JveHsgYm94LXNoYWRvdzpub25lIWltcG9ydGFudDsgfSAjaG9tZV9zb2NpYWxUaW1lbGluZXsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1ob21lcGFnZS1zb2NpYWwtYmctY29sb3IpOyB9ICNmb290ZXJXcmFwcGVyeyB3aWR0aDoxMDAlOyBtYXJnaW4tdG9wOjBweDsgY2xlYXI6Ym90aDsgcGFkZGluZy10b3A6MTVweDsgY29sb3I6dmFyKC0tZm9vdGVyLWl0ZW1zLWxpbmstY29sb3IpOyBjb2xvcjojNjY2NjY2OyBiYWNrZ3JvdW5kLWNvbG9yOiNmM2YzZjM7IGJhY2tncm91bmQtY29sb3I6I2YzZjNmMzsgfSAjZm9vdGVyV3JhcHBlciBzdmcgeyBmaWxsOnZhcigtLWZvb3Rlci1saW5rLXRpdGxlLWNvbCk7IH0gLmN1c3RvbWZvcm1fc3VibWl0eyBtYXJnaW4tdG9wOjIwcHg7IG1hcmdpbi1ib3R0b206MjBweDsgfSAuc2VlT3B0aW9uc3sgZGlzcGxheTpub25lOyB9IC5zdHJpa2UtcHJpY2UsIC5zdHJpa2UtcHJpY2UtYmxhY2ssIC5zdHJpa2UtcHJpY2Utd2hpdGUgeyBkaXNwbGF5OmlubGluZS1ibG9jazsgcG9zaXRpb246cmVsYXRpdmU7IH0gLnN0cmlrZS1wcmljZTo6YmVmb3JlLCAuc3RyaWtlLXByaWNlLWJsYWNrOjpiZWZvcmUsIC5zdHJpa2UtcHJpY2Utd2hpdGU6OmJlZm9yZSB7IGNvbnRlbnQ6IiI7IGhlaWdodDoycHg7IHBvc2l0aW9uOmFic29sdXRlOyB0b3A6NDAlOyAtbW96LXRyYW5zZm9ybTpyb3RhdGUoN2RlZyk7IC13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSg3ZGVnKTsgdHJhbnNmb3JtOnJvdGF0ZSg3ZGVnKTsgdHJhbnNmb3JtLW9yaWdpbjo1MCUgNTAlIDA7IHdpZHRoOjEwMCU7IH0gLnN0cmlrZS1wcmljZS4tdGhpbjo6YmVmb3JleyBoZWlnaHQ6MXB4OyB9IC5zdHJpa2UtcHJpY2U6OmJlZm9yZSB7IGJhY2tncm91bmQ6bm9uZSByZXBlYXQgc2Nyb2xsIDAgMCAjMDAwOyB9IC5zdHJpa2UtcHJpY2UtYmxhY2s6OmJlZm9yZSB7IGJhY2tncm91bmQ6bm9uZSByZXBlYXQgc2Nyb2xsIDAgMCBibGFjazsgfSAuc3RyaWtlLXByaWNlLXdoaXRlOjpiZWZvcmUgeyBiYWNrZ3JvdW5kOm5vbmUgcmVwZWF0IHNjcm9sbCAwIDAgd2hpdGU7IH0gLmJsdXItcHJpY2UgeyAtd2Via2l0LWZpbHRlcjpibHVyKDAuMTVlbSk7IC1tb3otZmlsdGVyOmJsdXIoMC4xNWVtKTsgLW1zLWZpbHRlcjpibHVyKDAuMTVlbSk7IC1vLWZpbHRlcjpibHVyKDAuMTVlbSk7IGZpbHRlcjp1cmwoImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgaGVpZ2h0PScwJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnPjxmaWx0ZXIgaWQ9J3N2Z0JsdXInIHg9Jy01JScgeT0nLTUlJyB3aWR0aD0nMTEwJScgaGVpZ2h0PScxMTAlJz48ZmVHYXVzc2lhbkJsdXIgaW49J1NvdXJjZUdyYXBoaWMnIHN0ZERldmlhdGlvbj0nNScvPiNzdmdCbHVyIik7IGZpbHRlcjpwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuQmx1cihQaXhlbFJhZGl1cz0nNScpOyBmaWx0ZXI6Ymx1cigwLjE1ZW0pOyB9IC5sZWZ0X2JveHsgYmFja2dyb3VuZC1jb2xvcjpyZ2IoMjU1LDI1NSwyNTUpOyAtbXMtZmlsdGVyOnByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5BbHBoYShPcGFjaXR5PTEwMCk7IGJhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwxKTsgbWFyZ2luLXRvcDoxMHB4IDsgcGFkZGluZzoxMHB4IDAgMTBweDsgZmxvYXQ6bGVmdDsgaGVpZ2h0OmF1dG87IGJvcmRlci1yYWRpdXM6NXB4OyBib3gtc2hhZG93Om5vbmU7IH0gLmJ0bi1kZWZhdWx0LCAuYnRuLXNtLCAuYnRuLWxnLC5jdXN0b21mb3JtX3N1Ym1pdCwuc3VibWl0eyAtbW96LWJvcmRlci1yYWRpdXM6M3B4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6M3B4OyBkaXNwbGF5OmlubGluZS1ibG9jazsgY3Vyc29yOnBvaW50ZXI7IHRleHQtZGVjb3JhdGlvbjpub25lOyB0ZXh0LXRyYW5zZm9ybTp2YXIoLS1jZXJ0LXR4dC10cmFuc2Zvcm0sIHZhcigtLXR4dC11cHBlcikpOyB9IC5idG4tZGVmYXVsdHsgYmFja2dyb3VuZC1jb2xvcjojZjNmM2YzOyB9IC5idG4tZGVmYXVsdCwgLnN1Ym1pdCwgLmN1c3RvbWZvcm1fc3VibWl0LCBpbnB1dFt0eXBlPWJ1dHRvbl0uYnRuLWRlZmF1bHQsIGlucHV0W3R5cGU9c3VibWl0XS5idG4tZGVmYXVsdCB7IHBhZGRpbmc6MTFweCAyMHB4IDlweCAyMHB4OyBib3JkZXItcmFkaXVzOjNweDsgfSAuYnRuLXNtLCBpbnB1dFt0eXBlPWJ1dHRvbl0uYnRuLXNtLCBpbnB1dFt0eXBlPXN1Ym1pdF0uYnRuLXNtIHsgZm9udC1zaXplOmluaGVyaXQhaW1wb3J0YW50OyBwYWRkaW5nOjRweCAxMHB4IWltcG9ydGFudDsgYm9yZGVyLXJhZGl1czozcHghaW1wb3J0YW50OyB9IC5idG4tbGcsIGlucHV0W3R5cGU9YnV0dG9uXS5idG4tbGcsIGlucHV0W3R5cGU9c3VibWl0XS5idG4tbGcgeyBmb250LXNpemU6MS4wNjNyZW0gOyBwYWRkaW5nOjEycHggNTBweDsgYm9yZGVyLXJhZGl1czo2cHg7IGZvbnQtd2VpZ2h0OmJvbGQ7IH0gLmJ0bi1kZWZhdWx0OmZvY3VzLCAuY3VzdG9tZm9ybV9zdWJtaXQ6Zm9jdXMsIC5idG4tc206Zm9jdXMsIC5idG4tbGc6Zm9jdXMsICNleGl0X3BvcHVwX3llczpmb2N1cywgI2V4aXRfcG9wdXBfbm86Zm9jdXMgeyBvdXRsaW5lOm5vbmU7IH0gLmJ0bi1kZWZhdWx0LmFwcGx5LWNyZWRpdCB7IGRpc3BsYXk6aW5saW5lLWJsb2NrOyB2ZXJ0aWNhbC1hbGlnbjp0b3A7IHdvcmQtd3JhcDpub3JtYWw7IHdpZHRoOjEwMHB4OyB0ZXh0LWFsaWduOmNlbnRlcjsgcGFkZGluZzozcHggNXB4OyBmb250LXNpemU6MC43NXJlbSA7IH0gLmJ0bi1kZWZhdWx0LCAuY3VzdG9tZm9ybV9zdWJtaXQsIGlucHV0W3R5cGU9YnV0dG9uXS5idG4tZGVmYXVsdCwgaW5wdXRbdHlwZT1zdWJtaXRdLmJ0bi1kZWZhdWx0eyBmb250LXNpemU6MC44cmVtOyB9IC5idG4tZGVmYXVsdCwgLmJ0bi1zbSwuYnRuLWxnLCAuc3VibWl0LCAjc2xpZGVpdCBpbnB1dC5zZW5kLCAuY3VzdG9tZm9ybV9zdWJtaXQgeyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXRhYi1jb2xvcik7IGJvcmRlci13aWR0aDoxcHg7IGJvcmRlci1zdHlsZTpzb2xpZDsgYm9yZGVyLWNvbG9yOnZhcigtLXRhYi10ZXh0LWNvbG9yKTsgY29sb3I6dmFyKC0tdGFiLXRleHQtY29sb3IpOyB0ZXh0LXNoYWRvdzpub25lOyB9IC5idG4tZGVmYXVsdC5idG4tYmctc2FtZSB7IGJvcmRlci1jb2xvcjojZjNmM2YzOyB9IC5idG4tZGVmYXVsdC5idG4tYmctc2FtZTpob3ZlciB7IGJvcmRlci1jb2xvcjojMTAyYjRlOyB9IC5idG4tZGVmYXVsdDpob3ZlciwgLmN1c3RvbWZvcm1fc3VibWl0OmhvdmVyLCAuYnRuLXNtOmhvdmVyLCAuYnRuLWxnOmhvdmVyLCAuc3VibWl0OmhvdmVyLCAjc2xpZGVpdCBpbnB1dC5zZW5kOmhvdmVyIHsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1tZW51LWhvdmVyLWJnLWNvbG9yKTsgYm9yZGVyLXdpZHRoOjFweDsgYm9yZGVyLXN0eWxlOnNvbGlkOyBib3JkZXItY29sb3I6dmFyKC0tbWVudS1ob3Zlci10ZXh0LWNvbG9yKTsgY29sb3I6dmFyKC0tbWVudS1ob3Zlci10ZXh0LWNvbG9yKTsgfSAuYnRuLWRlZmF1bHQucHJvbW9jb2xvciwgLmJ0bi1zbS5wcm9tb2NvbG9yLCAuYnRuLWxnLnByb21vY29sb3IgeyBiYWNrZ3JvdW5kLWNvbG9yOiMwMjc2YjM7IGJvcmRlcjoxcHggc29saWQgIzAyNzZiMzsgY29sb3I6I2ZmZmZmZjsgfSAuYnRuLWRlZmF1bHQucHJvbW9jb2xvcjpob3ZlciwgLmJ0bi1zbS5wcm9tb2NvbG9yOmhvdmVyLCAuYnRuLWxnLnByb21vY29sb3I6aG92ZXJ7IGJhY2tncm91bmQtY29sb3I6I2ZmZmZmZjsgY29sb3I6IzAyNzZiMzsgfSAuYnRuLWRlZmF1bHQuYmxhY2ssIC5idG4tc20uYmxhY2ssIC5idG4tbGcuYmxhY2sgeyBiYWNrZ3JvdW5kLWNvbG9yIDojMDAwMDAwOyBib3JkZXIgOjFweCBzb2xpZCAjMDAwMDAwOyBjb2xvciA6I2ZmZmZmZjsgfSAuYnRuLWRlZmF1bHQuYmxhY2sud2l0aGJvcmRlciwgLmJ0bi1zbS5ibGFjay53aXRoYm9yZGVyLCAuYnRuLWxnLmJsYWNrLndpdGhib3JkZXIgeyBib3JkZXIgOjFweCBzb2xpZCAjZmZmZmZmOyB9IC5idG4tZGVmYXVsdC5ibGFjazpob3ZlciwgLmJ0bi1zbS5ibGFjazpob3ZlciwgLmJ0bi1sZy5ibGFjazpob3ZlciB7IGJhY2tncm91bmQtY29sb3IgOiNmZmZmZmY7IGNvbG9yOiMwMDAwMDA7IH0gLmJ0bi1kZWZhdWx0Lm5vLCAuYnRuLXNtLm5vLCAuYnRuLWxnLm5vIHsgYmFja2dyb3VuZC1jb2xvcjojRkZGOyBib3JkZXI6MXB4IHNvbGlkICM1NTU7IGNvbG9yOiMwMDA7IH0gLmJ0bi1kZWZhdWx0Lm5vOmhvdmVyLCAuYnRuLXNtLm5vOmhvdmVyLCAuYnRuLWxnLm5vOmhvdmVyeyBiYWNrZ3JvdW5kLWNvbG9yOiM2NjY2NjY7IGJvcmRlcjoxcHggc29saWQgIzY2NjY2NjsgY29sb3I6I0ZGRkZGRjsgfSAuYnRuLWRlZmF1bHQuaW52ZXJ0LCAuYnRuLXNtLmludmVydCwgLmJ0bi1sZy5pbnZlcnQsIC5idG4tZGVmYXVsdC5pbnZlcnQuZmxhdCwgLmJ0bi1zbS5pbnZlcnQuZmxhdCwgLmJ0bi1sZy5pbnZlcnQuZmxhdCB7IGJhY2tncm91bmQ6IHZhcigtLXRhYi10ZXh0LWNvbG9yKTsgYm9yZGVyOjFweCBzb2xpZCB2YXIoLS10YWItdGV4dC1jb2xvcik7IGNvbG9yOnZhcigtLXRhYi1jb2xvcik7IGJveC1zaGFkb3c6bm9uZTsgfSAuYnRuLWRlZmF1bHQuaW52ZXJ0OmhvdmVyLCAuYnRuLXNtLmludmVydDpob3ZlciwgLmJ0bi1sZy5pbnZlcnQ6aG92ZXIsIC5idG4tZGVmYXVsdC5pbnZlcnQuZmxhdDpob3ZlciwgLmJ0bi1zbS5pbnZlcnQuZmxhdDpob3ZlciwgLmJ0bi1sZy5pbnZlcnQuZmxhdDpob3ZlciB7IGJhY2tncm91bmQtY29sb3I6dmFyKC0tdGFiLWNvbG9yKTsgYm9yZGVyLWNvbG9yOnZhcigtLXRhYi10ZXh0LWNvbG9yKTsgY29sb3I6dmFyKC0tdGFiLXRleHQtY29sb3IpOyB9IC5idG4tZGVmYXVsdC5yZWQsIC5idG4tc20ucmVkLCAuYnRuLWxnLnJlZCB7IGJhY2tncm91bmQ6I2ZmMzMzMyFpbXBvcnRhbnQ7IGJhY2tncm91bmQtY29sb3I6I2ZmMzMzMyFpbXBvcnRhbnQ7IGJvcmRlcjoxcHggc29saWQgI2Y1MWExYSFpbXBvcnRhbnQ7IGNvbG9yOiNGRkZGRkYhaW1wb3J0YW50OyB9IC5idG4tZGVmYXVsdC5yZWQ6aG92ZXIsIC5idG4tc20ucmVkOmhvdmVyLCAuYnRuLWxnLnJlZDpob3ZlcnsgYmFja2dyb3VuZDojMzMzMzMzIWltcG9ydGFudDsgYmFja2dyb3VuZC1jb2xvcjojMzMzMzMzIWltcG9ydGFudDsgYm9yZGVyOjFweCBzb2xpZCAjMzMzMzMzIWltcG9ydGFudDsgY29sb3I6I0ZGRkZGRiFpbXBvcnRhbnQ7IH0gLmJ0bi1kZWZhdWx0LndoaXRlLCAuYnRuLXNtLndoaXRlLCAuYnRuLWxnLndoaXRlIHsgYmFja2dyb3VuZDojZmZmOyBib3JkZXI6MXB4IHNvbGlkICMwMDA7IGNvbG9yOiMwMDAwMDA7IGJveC1zaGFkb3c6bm9uZTsgfSAuZGVhbGVyLXNlbGVjdC13cmFwcGVyIHsgZGlzcGxheTpncmlkOyBncmlkLXRlbXBsYXRlLWNvbHVtbnM6MWZyIDFmcjsgY29sdW1uLWdhcDoxLjVyZW07IHJvdy1nYXA6MC41cmVtOyBncmlkLWF1dG8tY29sdW1uczowLjVmcjsgbWFyZ2luLWJvdHRvbToxMHB4OyBtYXJnaW4tdG9wOjE1cHg7IH0gLmRlYWxlci1zZWxlY3Qtd3JhcHBlciAuYnRuIHsgdGV4dC13cmFwOmF1dG87IHRleHQtYWxpZ246bGVmdDsgcGFkZGluZy1sZWZ0OjEwcHg7IHRyYW5zaXRpb246MC4ycyBlYXNlLWluLW91dDsgZm9udC13ZWlnaHQ6bm9ybWFsOyB9IC5kZWFsZXItc2VsZWN0LXdyYXBwZXIgLmJ0bi5mb2N1c2VkLCAuZGVhbGVyLXNlbGVjdC13cmFwcGVyIC5idG46Zm9jdXMgeyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXRhYi10ZXh0LWNvbG9yKTsgYm9yZGVyLXdpZHRoOjFweDsgYm9yZGVyLXN0eWxlOnNvbGlkOyBib3JkZXItY29sb3I6dmFyKC0tdGFiLWNvbG9yKTsgY29sb3I6dmFyKC0tdGFiLWNvbG9yKTsgYm94LXNoYWRvdzowIDZweCAxMnB4IHJnYmEoMCwwLDAsLjE3NSk7IHRyYW5zZm9ybTp0cmFuc2xhdGVYKDJweCk7IH0gLmFwcGx5LWNyZWRpdCB7IC1tb3otYm94LXNoYWRvdzppbnNldCAwcHggLTNweCA3cHggMHB4ICMwZjgzYzA7IC13ZWJraXQtYm94LXNoYWRvdzppbnNldCAwcHggLTNweCA3cHggMHB4ICMwZjgzYzA7IGJveC1zaGFkb3c6aW5zZXQgMHB4IC0zcHggN3B4IDBweCAjMGY4M2MwOyBiYWNrZ3JvdW5kOi13ZWJraXQtZ3JhZGllbnQobGluZWFyLCBsZWZ0IHRvcCwgbGVmdCBib3R0b20sIGNvbG9yLXN0b3AoMC4wNSwgIzM1YTllNiksIGNvbG9yLXN0b3AoMSwgIzAyNzZiMykpOyBiYWNrZ3JvdW5kOi1tb3otbGluZWFyLWdyYWRpZW50KHRvcCwgIzM1YTllNiA1JSwgIzAyNzZiMyAxMDAlKTsgYmFja2dyb3VuZDotd2Via2l0LWxpbmVhci1ncmFkaWVudCh0b3AsICMzNWE5ZTYgNSUsICMwMjc2YjMgMTAwJSk7IGJhY2tncm91bmQ6LW8tbGluZWFyLWdyYWRpZW50KHRvcCwgIzM1YTllNiA1JSwgIzAyNzZiMyAxMDAlKTsgYmFja2dyb3VuZDotbXMtbGluZWFyLWdyYWRpZW50KHRvcCwgIzM1YTllNiA1JSwgIzAyNzZiMyAxMDAlKTsgYmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCAjMzVhOWU2IDUlLCAjMDI3NmIzIDEwMCUpOyBmaWx0ZXI6cHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRpZW50KHN0YXJ0Q29sb3JzdHI9JyNmZjMzMzMnLCBlbmRDb2xvcnN0cj0nI0RCMDAwMCcsR3JhZGllbnRUeXBlPTApOyBiYWNrZ3JvdW5kLWNvbG9yOiMzNWE5ZTY7IGJvcmRlcjoxcHggc29saWQgIzFjOTBjZDsgfSAuYXBwbHktY3JlZGl0OmhvdmVyIHsgYmFja2dyb3VuZDotd2Via2l0LWdyYWRpZW50KGxpbmVhciwgbGVmdCB0b3AsIGxlZnQgYm90dG9tLCBjb2xvci1zdG9wKDAuMDUsICMzNWE5ZTYpLCBjb2xvci1zdG9wKDEsICMwMjc2YjMpKTsgYmFja2dyb3VuZDotbW96LWxpbmVhci1ncmFkaWVudCh0b3AsICMwMjc2YjMgNSUsICMzNWE5ZTYgMTAwJSk7IGJhY2tncm91bmQ6LXdlYmtpdC1saW5lYXItZ3JhZGllbnQodG9wLCAjMDI3NmIzIDUlLCAjMzVhOWU2IDEwMCUpOyBiYWNrZ3JvdW5kOi1vLWxpbmVhci1ncmFkaWVudCh0b3AsICMwMjc2YjMgNSUsICMzNWE5ZTYgMTAwJSk7IGJhY2tncm91bmQ6LW1zLWxpbmVhci1ncmFkaWVudCh0b3AsICMwMjc2YjMgNSUsICMzNWE5ZTYgMTAwJSk7IGJhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgIzAyNzZiMyA1JSwgIzM1YTllNiAxMDAlKTsgZmlsdGVyOnByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudChzdGFydENvbG9yc3RyPScjZmYzMzMzJywgZW5kQ29sb3JzdHI9JyNEQjAwMDAnLEdyYWRpZW50VHlwZT0wKTsgYmFja2dyb3VuZC1jb2xvcjojMzVhOWU2OyB9IC5vZmZlci1idG57IGNvbG9yOnZhcigtLWJ0bi10eHQtY29sLCB2YXIoLS11c2VkLW9mZmVyLWJ0bi10ZXh0LWNvbG9yLCAjZmZmKSk7IGJhY2tncm91bmQtY29sb3I6dmFyKC0tYnRuLWJnLWNvbCwgdmFyKC0tdXNlZC1vZmZlci1idG4tYmctY29sb3IsIHZhcigtLXByb21vLWNvbG9yKSkpOyB9IDppcygubmV3VmRwQWN0aW9ucywgLnVzZWRWZHBBY3Rpb25zKSAqeyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IH0gOmlzKC5uZXdWZHBBY3Rpb25zLCAudXNlZFZkcEFjdGlvbnMpIC5wcm9tb0JUTnsgdGV4dC1hbGlnbjpsZWZ0OyB9IDppcygubmV3VmRwQWN0aW9ucywgLnVzZWRWZHBBY3Rpb25zKSAucHJvbW9CVE46OmFmdGVyeyBmb250LWZhbWlseTonRm9udCBBd2Vzb21lIDUgUHJvJywgc2VyaWY7IGZvbnQtd2VpZ2h0OjkwMDsgfSA6aXMoLm5ld1ZkcEFjdGlvbnMsIC51c2VkVmRwQWN0aW9ucywgLnVzZWQtZGV0YWlscywgLm5ldy1kZXRhaWxzKSAucHJvbW9CVE4gPiBzcGFuLmZheyBkaXNwbGF5OmZsZXg7IHdpZHRoOjEuNWVtOyBoZWlnaHQ6MS41ZW07IGFsaWduLWl0ZW1zOmNlbnRlcjsganVzdGlmeS1jb250ZW50OmNlbnRlcjsgY29sb3I6aW5oZXJpdDsgfSA6aXMoLm5ld1ZkcEFjdGlvbnMsIC51c2VkVmRwQWN0aW9ucykgLmNvbXBsZXRlZC5wcm9tb0JUTjo6YWZ0ZXJ7IGNvbnRlbnQ6IlxmMDBjIjsgY29sb3I6aW5oZXJpdDsgfSA6aXMoLm5ld1ZkcEFjdGlvbnMsIC51c2VkVmRwQWN0aW9ucykgLmNvbXBsZXRlZC5wcm9tb0JUTiBzcGFuLmZheyBjb2xvcjojMDAwOyB9IC5ncmF5Ym94IC5wcm9tb0JUTiwgLnVzZWRWZHBBY3Rpb25zIC5wcm9tb0JUTnsgYm9yZGVyLXJhZGl1czozcHghaW1wb3J0YW50OyBqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOyB0ZXh0LWFsaWduOnVuc2V0OyBsaW5lLWhlaWdodDoxLjVyZW07IH0gLmdyYXlib3ggLmJ1dHRvbl91bmRlciAucHJvbW9CVE4gc3RhY2stbGMsIC5uZXdWZHBBY3Rpb25zIC5idXR0b25fdW5kZXIgLnByb21vQlROIHN0YWNrLWxjIHsgZmxleC1ncm93OjEgIWltcG9ydGFudDsgdGV4dC1hbGlnbjpjZW50ZXIgIWltcG9ydGFudDsgfSAubXVsdGlmb3JtX2VtYmVkZGVkX2Zvb3RlciAuLWZvcmNlZC0tYS1jZmE6OmFmdGVyIHsgZmxleDowIDE7IH0gLmdyYXlib3ggLnByb21vQlROLmJ0bi1pY29uZWR7IGp1c3RpZnktY29udGVudDpmbGV4LXN0YXJ0OyBkaXNwbGF5OmZsZXg7IGFsaWduLWl0ZW1zOmNlbnRlcjsgbWFyZ2luOmF1dG87IHdpZHRoOjk1JTsgfSAuZ3JheWJveCAucHJvbW9CVE4uYnRuLWRlZmF1bHQgc3Bhbi5mYXsgZGlzcGxheTpub25lOyB9IC5ncmF5Ym94IC5wcm9tb0JUTi5idG4taWNvbmVkIHNwYW4uZmF7IGRpc3BsYXk6ZmxleDsgfSAuZ3JheWJveCAucHJvbW9CVE4gc3BhbiwgLnVzZWRWZHBBY3Rpb25zIC5wcm9tb0JUTiBzcGFueyBtYXJnaW4tbGVmdDp1bnNldDsgbGluZS1oZWlnaHQ6MS41ZW07IH0gLnByb21vQlROLmNoZXZyb24tcmlnaHQgLmN0YS1sYWJlbCB7IHBhZGRpbmctcmlnaHQ6MS41cmVtOyB9IC5wcm9tb0JUTiwgLnByb21vQlROIGEsIC5icm9jaHVyZUJ0bnsgYmFja2dyb3VuZDojMDI3NmIzOyBjb2xvcjojZmZmZmZmOyB0ZXh0LXNoYWRvdzpub25lOyBhbmltYXRpb246YWxsIDNzOyBib3JkZXItY29sb3I6IzAyNzZiMzsgfSAucHJvbW9CVE46aG92ZXIsIC5wcm9tb0JUTiBhOmhvdmVyeyBiYWNrZ3JvdW5kOiNkZTAwMDA7IGNvbG9yOiNmZmZmZmY7IGJvcmRlcjoxcHggc29saWQgI2RlMDAwMDsgfSAucHJvbW9CVE46aG92ZXIgPiAqID4gLmZhLCAucHJvbW9CVE4gYTpob3ZlciA+ICogPiAuZmEgeyBiYWNrZ3JvdW5kOiNmZmZmZmY7IGNvbG9yOiNkZTAwMDA7IH0gLnByb21vQlROLmdyb3c6aG92ZXIgeyB0cmFuc2Zvcm06c2NhbGUoMS4xKTsgfSAucHJvbW9CVE4uZ3Jvdzpob3ZlciwgLnByb21vQlROLmdyb3c6aG92ZXIgPiAqID4gLmZhLCAucHJvbW9CVE4uZ3JvdyBhOmhvdmVyID4gKiA+IC5mYSB7IHRyYW5zaXRpb246YWxsIDAuM3MgbGluZWFyOyB9IDpub3QoLmN0YS10cmFjay10cGwpIC5wcm9tb0JUTi5yaXBwbGUgeyBwb3NpdGlvbjpyZWxhdGl2ZTsgei1pbmRleDoxOyBvdmVyZmxvdzpoaWRkZW47IHRyYW5zaXRpb246MXMgYWxsIGVhc2U7IH0gOm5vdCguY3RhLXRyYWNrLXRwbCkgLnByb21vQlROLnJpcHBsZTpiZWZvcmUgeyBjb250ZW50IDoiICI7IHBvc2l0aW9uIDphYnNvbHV0ZTsgei1pbmRleCA6LTE7IGJvcmRlci1yYWRpdXMgOjEwMHB4OyB3aWR0aCA6MCU7IGhlaWdodCA6MTIwJTsgdG9wIDo1MCU7IGJvdHRvbSA6NTAlOyBsZWZ0IDo1MCU7IHJpZ2h0IDo1MCU7IHRyYW5zZm9ybSA6dHJhbnNsYXRlKC01MCUsIC01MCUpOyB0cmFuc2l0aW9uIDphbGwgMC42cyBlYXNlOyBib3JkZXI6dW5zZXQ7IGJhY2tncm91bmQ6I2RlMDAwMDsgfSA6bm90KC5jdGEtdHJhY2stdHBsKSAucHJvbW9CVE4ucmlwcGxlOmhvdmVyIHsgYmFja2dyb3VuZDojMDI3NmIzOyBjb2xvcjp2YXIoLS1wcm9tby1idG4taG92ZXItdGV4dC1jb2xvcik7IGJvcmRlci1jb2xvcjp2YXIoLS1wcm9tby1idG4taG92ZXItdGV4dC1jb2xvcik7OyB9IDpub3QoLmN0YS10cmFjay10cGwpIC5wcm9tb0JUTi5yaXBwbGU6aG92ZXI6YmVmb3JlIHsgd2lkdGg6MTIwJTsgfSAucHJvbW9CVE4ucmlwcGxlOmhvdmVyIHNwYW4uZmF7IGNvbG9yOnZhcigtLXByb21vLWJ0bi1ob3Zlci10ZXh0LWNvbG9yKTsgfSAucHJvbW9BcnJvdywucHJvbW9Db2xvcnsgY29sb3I6IzAyNzZiMyFpbXBvcnRhbnQ7IH0gLmJyb2NodXJlQnRueyBib3JkZXI6bm9uZTsgZGlzcGxheTpibG9jazsgdGV4dC1hbGlnbjpjZW50ZXI7IHBhZGRpbmc6NXB4OyB9IC52ZHAtYnRuIHsgYm9yZGVyLXJhZGl1czozcHg7IG1hcmdpbi1ib3R0b206MTBweDsgdGV4dC10cmFuc2Zvcm06bm9uZTsgdGV4dC1hbGlnbjpjZW50ZXI7IGZvbnQtc2l6ZToxLjA2M3JlbSA7IHBhZGRpbmc6OHB4IDVweDsgd2lkdGg6MjM3cHg7IH0gQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOjQwMHB4KSB7IC5idG4tZGVmYXVsdCwgLmN1c3RvbWZvcm1fc3VibWl0LCBpbnB1dFt0eXBlPWJ1dHRvbl0uYnRuLWRlZmF1bHQsIGlucHV0W3R5cGU9c3VibWl0XS5idG4tZGVmYXVsdHsgZm9udC1zaXplOmluaGVyaXQ7IH0gLmFwcGx5LWNyZWRpdCB7IGJhY2tncm91bmQ6IzM1YTllNjsgYm9yZGVyOjFweCBzb2xpZCAjMWM5MGNkOyB9IC5hcHBseS1jcmVkaXQ6aG92ZXIgeyBiYWNrZ3JvdW5kOnskQVBQTFlfQ1JFRElUX0JUTl9DT0xPUl9FTkRIT1ZFUkNPTE9SfTsgfSB9IC5iZ19ibHVleyBiYWNrZ3JvdW5kLWNvbG9yOiMwNjg4ZmEhaW1wb3J0YW50OyBjb2xvcjojZmZmOyB9IC5iZ19yZWR7IGJhY2tncm91bmQtY29sb3I6I2ZmMDAwMCFpbXBvcnRhbnQ7IGNvbG9yOiNmZmY7IH0gLmJnX2dyZWVueyBiYWNrZ3JvdW5kLWNvbG9yOiM2OGE1NGIhaW1wb3J0YW50OyBjb2xvcjojZmZmOyB9IC5iZ19ibGFja3sgYmFja2dyb3VuZC1jb2xvcjojMDAwMDAwIWltcG9ydGFudDsgY29sb3I6I2ZmZjsgfSAuYmdfZ3JheXsgYmFja2dyb3VuZC1jb2xvcjojNzk3OTc5IWltcG9ydGFudDsgY29sb3I6I2ZmZjsgfSAuYmdfYmx1ZSBhLC5iZ19yZWQgYSwuYmdfZ3JlZW4gYSwuYmdfYmxhY2sgYSwuYmdfZ3JheSBhIHsgY29sb3I6I2ZmZjsgfSAuYmdfZGVmYXVsdHsgYmFja2dyb3VuZC1jb2xvcjojZjNmM2YzIWltcG9ydGFudDsgfSAuYm94Mjd7IHdpZHRoOjEzMXB4OyBoZWlnaHQ6MjhweDsgZmxvYXQ6bGVmdDsgbWFyZ2luLWJvdHRvbTo4cHg7IH0gLmJveDI3IGF7IHdpZHRoOjEzMXB4OyBoZWlnaHQ6MjhweDsgZmxvYXQ6bGVmdDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9idXR0b24xMF9iZy5wbmcpIGxlZnQgdG9wIHJlcGVhdC14IDsgYm9yZGVyLXJhZGl1czozcHg7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiNGRkZGRkY7IHRleHQtZGVjb3JhdGlvbjpub25lOyBmb250LXdlaWdodDpub3JtYWw7IHBhZGRpbmc6MDsgbGluZS1oZWlnaHQ6MjhweDsgdGV4dC1hbGlnbjogY2VudGVyOyB0ZXh0LXRyYW5zZm9ybTpub25lOyB9IC5ib3gyNyBhOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2J1dHRvbjEwX2JnLnBuZykgbGVmdCAtMzJweCByZXBlYXQteDsgY29sb3I6I0ZGRkZGRjsgfSAuYm94Mjh7IHdpZHRoOjEyN3B4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgbWFyZ2luOjBweDsgYmFja2dyb3VuZDojNmY2ZjZmIHVybCgvaW1hZ2VzL2xpdGVyX2JnLnBuZykgbGVmdCB0b3AgcmVwZWF0LXg7IGJvcmRlci1yYWRpdXM6M3B4OyBwYWRkaW5nOjEwcHggMnB4IDEwcHggMnB4OyBtYXJnaW46MCAwcHggMCAwOyB9IC50ZXh0NDR7IHdpZHRoOjEyN3B4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9saXRlcl9saW5lLnBuZykgbGVmdCBib3R0b20gcmVwZWF0LXg7IGJhY2tncm91bmQtcG9zaXRpb246Ym90dG9tOyB0ZXh0LWFsaWduOmNlbnRlcjsgcGFkZGluZy1ib3R0b206NXB4OyBtYXJnaW4tYm90dG9tOjVweDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6I0ZGRkZGRjsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgdGV4dC1hbGlnbjpjZW50ZXI7IHRleHQtdHJhbnNmb3JtOm5vbmU7IGxpbmUtaGVpZ2h0OjE4cHg7IH0gLmNvbnN1bXB0aW9uLW5vdC1hdmFpbGFibGUgPiAudGV4dDQ0ID4gc3BhbiA+ICNjaXR5RnVlbCB7IGRpc3BsYXk6bm9uZTsgfSAuY29uc3VtcHRpb24tbm90LWF2YWlsYWJsZSA+IC50ZXh0NDQgPiBzcGFuID4gI2hpZ2h3YXlGdWVsIHsgZGlzcGxheTpub25lOyB9IC50ZXh0X3NsaWRlIGEgeyBoZWlnaHQ6MzhweDsgbWFyZ2luLXJpZ2h0OjAuM2VtOyBwYWRkaW5nLXRvcDoxcHggIWltcG9ydGFudDsgfSAudGV4dF9zbGlkZSBhID4gYiB7IGRpc3BsYXk6YmxvY2s7IG92ZXJmbG93OmhpZGRlbiAhaW1wb3J0YW50OyBwb3NpdGlvbjpyZWxhdGl2ZTsgaGVpZ2h0OjI1cHg7IHdpZHRoOjEwMCU7IH0gLnRleHRfc2xpZGUgYSA+IGIgPiBtMSB7IGRpc3BsYXk6aW5saW5lLWJsb2NrOyBwb3NpdGlvbjpyZWxhdGl2ZTsgd2hpdGUtc3BhY2U6bm93cmFwOyBsaW5lLWhlaWdodDozOHB4ICFpbXBvcnRhbnQ7IHRvcDotOHB4OyBsZWZ0OjA7IH0gLnRleHRfc2xpZGUudGV4dF9zbGlkZV80IGEgPiBiID4gbTEgeyBhbmltYXRpb246dGV4dF9zbGlkZV80IDRzIGVhc2UgNXM7IGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6aW5maW5pdGU7IH0gLnRleHRfc2xpZGUudGV4dF9zbGlkZV8zIGEgPiBiID4gbTEgeyBhbmltYXRpb246dGV4dF9zbGlkZV8zIDNzIGVhc2UgNHM7IGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6aW5maW5pdGU7IH0gLnRleHRfc2xpZGUudGV4dF9zbGlkZV8yIGEgPiBiID4gbTEgeyBhbmltYXRpb246dGV4dF9zbGlkZV8yIDJzIGVhc2UgMnM7IGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6aW5maW5pdGU7IH0gLnRleHRfc2xpZGUucHJvbW9jb2RlYm94IHsgcGFkZGluZzowcHggMHB4OyBtYXJnaW4tbGVmdDowcHg7IHdpZHRoOjEwMCU7IG1hcmdpbi10b3A6OXB4OyB9IEBrZXlmcmFtZXMgdGV4dF9zbGlkZV80IHsgMCUgeyB0b3A6LThweDsgfSAyNSUgeyB0b3A6LTQ2cHg7IH0gNTAlIHsgdG9wOi04NHB4OyB9IDc1JSB7IHRvcDotMTIycHg7IH0gMTAwJSB7IHRvcDotMTYwcHg7IH0gfSBAa2V5ZnJhbWVzIHRleHRfc2xpZGVfMyB7IDAlIHsgdG9wOi04cHg7IH0gMzMlIHsgdG9wOi00NnB4OyB9IDY2JSB7IHRvcDotODRweDsgfSAxMDAlIHsgdG9wOi0xMjJweDsgfSB9IEBrZXlmcmFtZXMgdGV4dF9zbGlkZV8yIHsgMCUgeyB0b3A6LThweDsgfSA1MCUgeyB0b3A6LTQ2cHg7IH0gMTAwJSB7IHRvcDotODRweDsgfSB9IC5tYXAgeyB3aWR0aDoxMDAlOyB0ZXh0LWFsaWduOmNlbnRlcjsgcG9zaXRpb246cmVsYXRpdmU7IH0gLm1hcCAud3JhcHBlcnsgcG9zaXRpb246c3RhdGljICFpbXBvcnRhbnQ7IH0gLm1hcF9kZWFsZXJfbGlzdCB7IGJhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuOSk7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgcG9zaXRpb246YWJzb2x1dGU7IHRvcDowOyBwYWRkaW5nOjAgMzBweDsgd2lkdGg6MzE1cHg7IGhlaWdodDoxMDAlOyB0ZXh0LWFsaWduOmxlZnQ7IG92ZXJmbG93LXk6YXV0bzsgfSAubWFwX2RlYWxlcl9saXN0X2l0ZW0geyBjdXJzb3I6cG9pbnRlcjsgcGFkZGluZzoxM3B4IDA7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IH0gLm1hcF9kZWFsZXJfbGlzdF9pdGVtX25hbWUgeyBwb3NpdGlvbjphYnNvbHV0ZTsgfSAubWFwX2RlYWxlcl9saXN0X2l0ZW1fbmFtZTpob3ZlciB7IGZvbnQtd2VpZ2h0OjcwMDsgfSAubWFwX2RlYWxlcl9saXN0X2l0ZW1fbmFtZV9hY3RpdmUgeyBmb250LXdlaWdodDo3MDA7IH0gLm1hcmtlclNwYW4geyBoZWlnaHQ6MThweDsgd2lkdGg6MjBweDsgZGlzcGxheTppbmxpbmUtYmxvY2s7IHBvc2l0aW9uOnJlbGF0aXZlOyBkaXNwbGF5OmlubGluZS1ibG9jazsgfSAubWFya2VyU3BhbjpiZWZvcmUgeyBjb250ZW50OicnOyBoZWlnaHQ6NHB4OyB3aWR0aDo0cHg7IGJvcmRlcjoycHggc29saWQgIzMzMzsgZGlzcGxheTpibG9jazsgcG9zaXRpb246YWJzb2x1dGU7IHRvcDoycHg7IGxlZnQ6MHB4OyB6LWluZGV4OjE7IGJhY2tncm91bmQ6I2ZmZjsgbGluZS1oZWlnaHQ6MjZweDsgYm9yZGVyLXJhZGl1czo0MHB4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6NDBweDsgLW1vei1ib3JkZXItcmFkaXVzOjQwcHg7IGNvbG9yOiNmZmY7IHRleHQtYWxpZ246Y2VudGVyOyB9IC5tYXJrZXJTcGFuOmFmdGVyIHsgY29udGVudDonJzsgaGVpZ2h0OjBweDsgd2lkdGg6MHB4OyBkaXNwbGF5OmJsb2NrOyBwb3NpdGlvbjphYnNvbHV0ZTsgYm90dG9tOjJweDsgbGVmdDoycHg7IGJvcmRlcjoxMHB4IHRyYW5zcGFyZW50IHNvbGlkOyBib3JkZXItdG9wLWNvbG9yOiMzMzM7IGJvcmRlci13aWR0aDo3cHggMnB4IDBweCAycHg7IH0gLm1hcF9vcGVuX2hvdXJzIHsgYmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC45KTsgYm94LXNpemluZzpib3JkZXItYm94OyBwb3NpdGlvbjphYnNvbHV0ZTsgdG9wOjA7IHdpZHRoOjQwMHB4OyBoZWlnaHQ6MTAwJTsgdGV4dC1hbGlnbjpsZWZ0OyB9IC5vcGVuX2hvdXJzX2NvbnRhaW5lciB7IGJhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuOSk7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgdGV4dC1hbGlnbjpsZWZ0OyB9IC5tYXBfb3Blbl9ob3VycyAubWFwX29wZW5faG91cnMtLXRpdGxlLCAub3Blbl9ob3Vyc19jb250YWluZXIgaDIsIC5vcGVuX2hvdXJzX2NvbnRhaW5lciBzcGFuLmgyLWFsdCB7IGZvbnQtc2l6ZToxLjVlbTsgZm9udC13ZWlnaHQ6Ym9sZDsgcGFkZGluZy1sZWZ0OjE1cHg7IG1hcmdpbi10b3A6MjBweDsgbWFyZ2luLWJvdHRvbToxMHB4OyBjb2xvcjppbmhlcml0OyB9IC5tYXBfb3Blbl9ob3VycyB1bCwgLm9wZW5faG91cnNfY29udGFpbmVyIHVsIHsgcGFkZGluZzowIDA7IH0gLm1hcF9vcGVuX2hvdXJzIHVsIGxpLCAub3Blbl9ob3Vyc19jb250YWluZXIgdWwgbGkgeyBsaXN0LXN0eWxlOm5vbmU7IGN1cnNvcjpwb2ludGVyOyBjdXJzb3I6aGFuZDsgYm9yZGVyLWJvdHRvbToxcHggc29saWQgI2YzZjNmMzsgfSAubWFwX29wZW5faG91cnNfZXhwYW5keyBwYWRkaW5nOjZweCAzMHB4IDhweCAxNXB4OyBkaXNwbGF5OmJsb2NrOyB9IC5leHBhbmRhYmxlX2NvbnRlbnR7IHBhZGRpbmc6MHB4IDE2cHggNXB4IDE2cHg7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGxpbmUtaGVpZ2h0OjEuNDI4NTcxNDM7IH0gLmV4cGFuZGFibGVfY29udGVudCBkaXYsIC5leHBhbmRhYmxlX2NvbnRlbnRfbXVsdGlsb2NhdGlvbiBkaXYgeyBkaXNwbGF5IDpmbGV4OyBmbGV4LWRpcmVjdGlvbiA6cm93OyB9IC5leHBhbmRhYmxlX2NvbnRlbnQgPiBkaXYgPiBzcGFuOmZpcnN0LW9mLXR5cGUsIC5leHBhbmRhYmxlX2NvbnRlbnRfbXVsdGlsb2NhdGlvbiBkaXYgc3BhbjpmaXJzdC1vZi10eXBlIHsgd2lkdGg6NDAlOyB9IC5leHBhbmRhYmxlX2NvbnRlbnRfbXVsdGlsb2NhdGlvbnsgZm9udC1zaXplOjAuODc1cmVtIDsgbGluZS1oZWlnaHQ6MS40Mjg1NzE0MzsgbWFyZ2luLXRvcDoxNXB4OyB9IEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aCA6NzU5cHgpIHsgLmV4cGFuZGFibGVfY29udGVudCwgLmV4cGFuZGFibGVfY29udGVudF9tdWx0aWxvY2F0aW9uIHsgZm9udC1zaXplOmluaGVyaXQ7IH0gfSAuZXhwYW5kYWJsZV9jb250ZW50X211bHRpbG9jYXRpb24gdGFibGV7IG1hcmdpbi10b3A6MTVweDsgfSAubWFwX29wZW5faG91cnNfZXhwYW5kX2Fycm93eyBmbG9hdDpyaWdodDsgbWFyZ2luLXRvcDozcHg7IH0gLm1hcF9vcGVuX2hvdXJzX2V4cGFuZF9hcnJvdy5leHBhbmRlZHsgdHJhbnNmb3JtOnJvdGF0ZSgxODBkZWcpOyB9IC5tYXBfb3Blbl9ob3Vyc19tb2JpbGV7IGJhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuOSk7IH0gLm1hcF9vcGVuX2hvdXJzX21vYmlsZSAubWFwX29wZW5faG91cnNfbW9iaWxlLS10aXRsZSB7IGZvbnQtc2l6ZTp2YXIoLS1mczQpOyB0ZXh0LWFsaWduOmNlbnRlcjsgfSAubWFwX29wZW5faG91cnNfbW9iaWxlIHVseyBwYWRkaW5nOjAgMDsgfSAubWFwX29wZW5faG91cnNfbW9iaWxlIHVsIGxpeyBsaXN0LXN0eWxlOm5vbmU7IGN1cnNvcjpwb2ludGVyOyBib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZjNmM2YzOyB9IC5tYWluX2xlZnRfYm94ICNmb290ZXJHb29nbGVNYXBIb3Vyc0NvbnRhaW5lcnsgd2lkdGg6OTYwcHg7IH0gLnZpZGVvQnRuU2xpZGVyLCAucGhvdG9CdG5TbGlkZXJ7IGJvcmRlci1yYWRpdXM6NTAlOyBib3JkZXI6MXB4IHNvbGlkICM5OTk5OTk7IGNvbG9yOiM5OTk5OTk7IHdpZHRoOjc1cHg7IGhlaWdodDo3NXB4OyBiYWNrZ3JvdW5kLWNvbG9yOiNmZmZmZmY7IG9wYWNpdHk6MC41OyB9IC52aWRlb0J0blNsaWRlcjpob3ZlciwgLnBob3RvQnRuU2xpZGVyOmhvdmVyeyBib3JkZXItcmFkaXVzOjUwJTsgYm9yZGVyOjFweCBzb2xpZCAjZmZmZmZmOyB3aWR0aDo3NXB4OyBoZWlnaHQ6NzVweDsgYmFja2dyb3VuZC1jb2xvcjojOTk5OTk5OyBvcGFjaXR5OjAuNTsgfSAucGhvdG9CdG5TbGlkZXIgLmZhLCAudmlkZW9CdG5TbGlkZXIgLmZheyBjb2xvcjojOTk5OTk5OyB9IC5waG90b0J0blNsaWRlcjpob3ZlciAuZmEsIC52aWRlb0J0blNsaWRlcjpob3ZlciAuZmF7IGNvbG9yOiNmZmZmZmY7IH0gLnZpZGVvQnRuU2xpZGVyVXNlZCwgLnBob3RvQnRuU2xpZGVyVXNlZHsgYm9yZGVyLXJhZGl1czo1MCU7IGJvcmRlcjoxcHggc29saWQgI2IzYjNiMzsgY29sb3I6I2IzYjNiMzsgd2lkdGg6NzVweDsgaGVpZ2h0Ojc1cHg7IGJhY2tncm91bmQtY29sb3I6I2ZmZjsgb3BhY2l0eTowLjk7IH0gLnZpZGVvQnRuU2xpZGVyVXNlZDpob3ZlciwgLnBob3RvQnRuU2xpZGVyVXNlZDpob3ZlcnsgYm9yZGVyLXJhZGl1czo1MCU7IGJvcmRlcjoxcHggc29saWQgI2ZmZjsgd2lkdGg6NzVweDsgaGVpZ2h0Ojc1cHg7IGJhY2tncm91bmQtY29sb3I6I2IzYjNiMzsgb3BhY2l0eTowLjU7IH0gLnBob3RvQnRuU2xpZGVyVXNlZCAuZmEsIC52aWRlb0J0blNsaWRlclVzZWQgLmZheyBjb2xvcjojYjNiM2IzOyB9IC5waG90b0J0blNsaWRlclVzZWQ6aG92ZXIgLmZhLCAudmlkZW9CdG5TbGlkZXJVc2VkOmhvdmVyIC5mYXsgY29sb3I6I2ZmZjsgfSAudmlkZW9zX3BpY3R1cmVzX2J1dHRvbnNfY29udGFpbmVyeyBsZWZ0OjVweDsgYm90dG9tOjgycHg7IHBvc2l0aW9uOnJlbGF0aXZlOyB6LWluZGV4Ojk5OTsgZmxvYXQ6bGVmdDsgbWFyZ2luLWJvdHRvbTotODBweDsgfSAuLWRpc3BsYXktbm9uZXsgZGlzcGxheTpub25lOyB9ICNkZWZhdWx0VG9wQmFubmVyV3JhcHsgdGV4dC1hbGlnbjpjZW50ZXI7IHZlcnRpY2FsLWFsaWduOm1pZGRsZTsgcGFkZGluZzo0MHB4IDE1cHg7IH0gI2RlZmF1bHRUb3BCYW5uZXJ7IHRleHQtYWxpZ246Y2VudGVyOyB3aWR0aDoxMDAlOyBib3JkZXItcmFkaXVzOjZweDsgY3Vyc29yOnBvaW50ZXI7IH0gI2RlZmF1bHRUb3BCYW5uZXJUaXRsZSwgI2RlZmF1bHRUb3BCYW5uZXJUZXh0eyBmb250LXdlaWdodDpib2xkOyB9ICNkZWZhdWx0VG9wQmFubmVyV3JhcCBkaXYuZGVmYXVsdFRvcEJhbm5lckJ0bldyYXBwZXJ7IG1hcmdpbjozMHB4IDAgMjBweCAwOyB3aWR0aDoxMDAlOyBmbG9hdDpsZWZ0OyB9ICNkZWZhdWx0VG9wQmFubmVyQnRueyBwYWRkaW5nOjEwcHggMzBweDsgYmFja2dyb3VuZDpibGFjazsgYm9yZGVyOjJweCB3aGl0ZSBzb2xpZDsgYm9yZGVyLXJhZGl1czozcHg7IHRleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTsgZm9udC13ZWlnaHQ6Ym9sZDsgY29sb3I6I2ZmZmZmZjsgYm94LXNoYWRvdzowcHggMnB4IDEzcHggMHB4ICMxYjFiMWI7IH0gI3RvcEJhbm5lckltYWdlLk5FV0NBUlMgI2RlZmF1bHRUb3BCYW5uZXJUaXRsZXsgZm9udC1zaXplOjMuMTI1cmVtIDsgfSAjdG9wQmFubmVySW1hZ2UuTkVXQ0FSUyAjZGVmYXVsdFRvcEJhbm5lclRleHR7IGZvbnQtc2l6ZToyLjgxM3JlbSA7IH0gI3RvcEJhbm5lckltYWdlLlVTRURDQVJTICNkZWZhdWx0VG9wQmFubmVyVGl0bGV7IGZvbnQtc2l6ZTozLjEyNXJlbSA7IH0gI3RvcEJhbm5lckltYWdlLlVTRURDQVJTICNkZWZhdWx0VG9wQmFubmVyVGV4dHsgZm9udC1zaXplOjIuODEzcmVtIDsgfSAjdG9wQmFubmVySW1hZ2U6ZW1wdHl7IG1hcmdpbjowICFpbXBvcnRhbnQ7IHBhZGRpbmc6MCAhaW1wb3J0YW50OyB9ICN0b3BCYW5uZXJJbWFnZS5VU0VEQ0FSUyAjZGVmYXVsdFRvcEJhbm5lcldyYXB7IGhlaWdodDoyNjVweDsgYm94LXNpemluZzpib3JkZXItYm94OyBwYWRkaW5nOjQwcHggMTVweDsgfSAjdG9wQmFubmVySW1hZ2UuTkVXQ0FSUyAjZGVmYXVsdFRvcEJhbm5lcldyYXB7IGhlaWdodDoyNjVweDsgYm94LXNpemluZzpib3JkZXItYm94OyBwYWRkaW5nOjQwcHggMTVweDsgfSAjZ29vZ2xlX3Jldmlld3N7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiM2NjY7IH0gI2dvb2dsZV9yZXZpZXdzIC5yZXZpZXctaXRlbSAucmV2aWV3LXN0YXJzIHVsIHsgZGlzcGxheTppbmxpbmUtYmxvY2s7IGxpc3Qtc3R5bGU6bm9uZTsgcGFkZGluZzowOyB9ICNnb29nbGVfcmV2aWV3cyAucmV2aWV3LWl0ZW0gLnJldmlldy1zdGFycyB1bCBsaSB7IGZsb2F0OmxlZnQ7IG1hcmdpbi1yaWdodDo1cHg7IHdpZHRoOmluaXRpYWwgIWltcG9ydGFudDsgcGFkZGluZzppbml0aWFsOyB9ICNnb29nbGVfcmV2aWV3cyAucmV2aWV3LWl0ZW0gLnJldmlldy1zdGFycyB1bCBsaSBpIHsgY29sb3I6I0U0QjI0ODsgZm9udC1zdHlsZTpub3JtYWw7IGZvbnQtc2l6ZTowLjkzOHJlbSA7IH0gI2dvb2dsZV9yZXZpZXdzIC5yZXZpZXctaXRlbSAucmV2aWV3LXN0YXJzIHVsIGxpIGkuaW5hY3RpdmUgeyBjb2xvcjojYzZjNmM2OyB9ICNnb29nbGVfcmV2aWV3cyAucmV2aWV3LWl0ZW0gLnJldmlldy1zdGFyOmFmdGVyIHsgY29udGVudDoiXDI2MDUiOyB9ICNlYXN5LWdwbGFjZXMtcmV2aWV3cy1idXR7IGZvbnQtd2VpZ2h0OmJvbGQ7IHBhZGRpbmc6NXB4IDhweDsgaGVpZ2h0OjI3cHg7IGxpbmUtaGVpZ2h0OjI3cHg7IH0gLnJldmlldy1hdXRob3J7IHRleHQtdHJhbnNmb3JtOmNhcGl0YWxpemU7IH0gI2Vhc3ktZ3BsYWNlcy1yZXZpZXdzLWJ1dC5kZWZhdWx0eyBjb2xvcjojNDQ0OyBiYWNrZ3JvdW5kLWNvbG9yOiNmNWY1ZjU7IGJhY2tncm91bmQtaW1hZ2U6LW1vei1saW5lYXItZ3JhZGllbnQoY2VudGVyIHRvcCAsICNmNWY1ZjUsICNmMWYxZjEpOyBib3JkZXI6MXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4xKTsgfSAjZWFzeS1ncGxhY2VzLXJldmlld3MtYnV0LnJlZHsgY29sb3I6I2ZmZjsgYmFja2dyb3VuZC1jb2xvcjojZjVmNWY1OyBiYWNrZ3JvdW5kLWltYWdlOi1tb3otbGluZWFyLWdyYWRpZW50KGNlbnRlciB0b3AgLCAjREQ0QjM5LCAjRDE0ODM2KTsgYm9yZGVyOjFweCBzb2xpZCAjRDE0ODM2OyB9ICNlYXN5LWdwbGFjZXMtcmV2aWV3cy1idXQuYmx1ZXsgY29sb3I6I2ZmZjsgYmFja2dyb3VuZC1jb2xvcjojNEQ5MEZFOyBiYWNrZ3JvdW5kLWltYWdlOi1tb3otbGluZWFyLWdyYWRpZW50KGNlbnRlciB0b3AgLCAjNEQ5MEZFLCAjNDc4N0VEKTsgYm9yZGVyOjFweCBzb2xpZCAjMzA3OUVEOyB9IC5lbWJlZC1jb250YWluZXIteW91dHViZSBpZnJhbWUsIC5lbWJlZC1jb250YWluZXIteW91dHViZSBvYmplY3QsIC5lbWJlZC1jb250YWluZXIteW91dHViZSBlbWJlZCB7IHBvc2l0aW9uOmFic29sdXRlOyB0b3A6MDsgbGVmdDowOyB3aWR0aDoxMDAlOyBoZWlnaHQ6MTAwJTsgfSAuZW1iZWQtY29udGFpbmVyLXlvdXR1YmUyeyBwb3NpdGlvbjpyZWxhdGl2ZTsgcGFkZGluZy1ib3R0b206NTYuMjUlOyBoZWlnaHQ6MDsgb3ZlcmZsb3c6aGlkZGVuOyBtYXgtd2lkdGg6MTAwJTsgfSAuZW1iZWQtY29udGFpbmVyLXlvdXR1YmUyIGlmcmFtZSwgLmVtYmVkLWNvbnRhaW5lci15b3V0dWJlMiBvYmplY3QsIC5lbWJlZC1jb250YWluZXIteW91dHViZTIgZW1iZWQgeyBwb3NpdGlvbjphYnNvbHV0ZTsgdG9wOjA7IGxlZnQ6MDsgd2lkdGg6MTAwJTsgaGVpZ2h0OjEwMCU7IH0gI3NlYXJjaENyaXRlcmlhVzo6YWZ0ZXIsICNhY3Rpb25Cb3hCdG46OmFmdGVyLCAjbGlua0NvbnRhaW5lcjo6YWZ0ZXJ7IGNvbnRlbnQ6Jyc7IGhlaWdodDoxcHg7IGRpc3BsYXk6aW5saW5lLWJsb2NrOyBtYXJnaW4tYm90dG9tOicxNXB4JzsgfSAjc2VhcmNoQ3JpdGVyaWFXOjphZnRlciwgI2FjdGlvbkJveEJ0bjo6YWZ0ZXIsICNsaW5rQ29udGFpbmVyOjphZnRlcnsgYmFja2dyb3VuZDojYWFhOyB3aWR0aDoyODBweDsgfSAuYmFubmVyUG9wdXBDbG9zZXsgY29sb3I6I2FhYTsgfSAuc2VlVmlkZW9CdG4xeyBiYWNrZ3JvdW5kLWNvbG9yOiMwMDAgIWltcG9ydGFudDsgYm9yZGVyOjFweCBzb2xpZCAjZmZmICFpbXBvcnRhbnQ7IGNvbG9yOiNmZmYgIWltcG9ydGFudDsgfSAuc2VlVmlkZW9CdG4xOmhvdmVyeyBiYWNrZ3JvdW5kLWNvbG9yOiNmZmYgIWltcG9ydGFudDsgYm9yZGVyOjFweCBzb2xpZCAjMDAwICFpbXBvcnRhbnQ7IGNvbG9yOiMwMDAwMDAgIWltcG9ydGFudDsgfSAjYm90dG9tTGVmdEJhbm5lckltYWdleyBtYXJnaW46MTBweCAwcHggMHB4OyBmbG9hdDpsZWZ0OyB3aWR0aDoxMDAlOyB9ICNkZWZhdWx0Qm90dG9tTGVmdEJhbm5lcnsgdGV4dC1hbGlnbjpjZW50ZXI7IHdpZHRoOjEwMCU7IGJvcmRlci1yYWRpdXM6NnB4OyBjdXJzb3I6cG9pbnRlcjsgfSAjZGVmYXVsdEJvdHRvbUxlZnRCYW5uZXJXcmFweyB0ZXh0LWFsaWduOmNlbnRlcjsgdmVydGljYWwtYWxpZ246bWlkZGxlOyBwYWRkaW5nOjE1cHg7IH0gI2RlZmF1bHRCb3R0b21MZWZ0QmFubmVyVGl0bGV7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc2l6ZToyLjE4OHJlbSA7IH0gI2RlZmF1bHRCb3R0b21MZWZ0QmFubmVyVGV4dHsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zaXplOjEuOTM4cmVtIDsgfSAjZGVmYXVsdEJvdHRvbUxlZnRCYW5uZXJXcmFwIGRpdi5kZWZhdWx0Qm90dG9tTGVmdEJhbm5lckJ0bldyYXBwZXJ7IG1hcmdpbjoyMHB4IDAgMTBweCAwOyB3aWR0aDoxMDAlOyBmbG9hdDpsZWZ0OyB9ICNkZWZhdWx0Qm90dG9tTGVmdEJhbm5lckJ0bnsgcGFkZGluZzo3cHggMjFweDsgYmFja2dyb3VuZDpibGFjazsgYm9yZGVyOjJweCB3aGl0ZSBzb2xpZDsgYm9yZGVyLXJhZGl1czozcHg7IHRleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTsgZm9udC13ZWlnaHQ6Ym9sZDsgY29sb3I6I2ZmZmZmZjsgYm94LXNoYWRvdzowcHggMnB4IDEzcHggMHB4ICMxYjFiMWI7IGZvbnQtc2l6ZTo3MCU7IH0gLm1haW5EaXYtd3JhcHBlciB7IHBhZGRpbmctdG9wOjAuMDFyZW07IGJhY2tncm91bmQtY29sb3I6I2ZmZmZmZjsgfSAubGFuZ3VhZ2VCYXIgI3NlcnZpY2VfYXBwb2ludF9oZWFkZXIgPiBhIHsgcGFkZGluZzowIDEycHg7IGhlaWdodDoyNnB4OyBsaW5lLWhlaWdodDoyN3B4OyBib3JkZXItcmFkaXVzOjA7IH0gI3NlcnZpY2VfYXBwb2ludF9oZWFkZXIgPiBhIHsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IGJhY2tncm91bmQtY29sb3I6IzAwMDAwMDsgYmFja2dyb3VuZC1jb2xvcjojMDAwMDAwOyBjb2xvcjp3aGl0ZTsgY29sb3I6I2ZmZmZmZjsgfSAjc2VydmljZV9hcHBvaW50X2hlYWRlciA+IGEuYnRuIHsgZm9udC13ZWlnaHQ6bm9ybWFsOyB9IC5sYW5ndWFnZUJhciAjc2VydmljZV9hcHBvaW50X2hlYWRlciA+IC5idG4tZGVmYXVsdDpob3ZlciB7IGJvcmRlci1jb2xvcjojMDAwMDAwOyBib3JkZXItY29sb3I6IzAwMDAwMDsgfSAjc2VydmljZV9hcHBvaW50X2hlYWRlciAuc2hvcnQtc2VydmljZS1mb3JtIHsgZGlzcGxheTpub25lOyBib3gtc2hhZG93OjAgNnB4IDEycHggcmdiYSgwLCAwLCAwLCAuMTc1KTsgcG9zaXRpb246YWJzb2x1dGU7IHdpZHRoOjM1MHB4OyByaWdodDowOyBwYWRkaW5nOjE1cHg7IHotaW5kZXg6OTk5OTsgYmFja2dyb3VuZC1jb2xvcjp3aGl0ZTsgaGVpZ2h0OmF1dG87IHRvcDoyM3B4OyB9IC5sYW5ndWFnZUJhciAjc2VydmljZV9hcHBvaW50X2hlYWRlciBkaXY6bm90KFtjbGFzc10pIHsgZmxvYXQ6aW5pdGlhbDsgd2lkdGg6MTAwJTsgbWFyZ2luLXJpZ2h0OjA7IHRleHQtYWxpZ246aW5pdGlhbDsgfSAjc2VydmljZV9hcHBvaW50X2hlYWRlcjpob3ZlciAuc2hvcnQtc2VydmljZS1mb3JtIHsgZGlzcGxheTpibG9jazsgfSAjc2VydmljZV9hcHBvaW50X2hlYWRlciB7IHBvc2l0aW9uOnJlbGF0aXZlOyB9ICNzZXJ2aWNlX2FwcG9pbnRfaGVhZGVyLmlzT3BlbiAuc2hvcnQtc2VydmljZS1mb3JtIHsgZGlzcGxheTpibG9jazsgfSAubGFuZ3VhZ2VCYXIgI3NlcnZpY2VfYXBwb2ludF9oZWFkZXIgLm1haWx3aWRnZXQtLWZvcm0tcm93LCAubGFuZ3VhZ2VCYXIgI3NlcnZpY2VfYXBwb2ludF9oZWFkZXIgLm1haWx3aWRnZXQtLWZvcm0tcm93IGRpdiB7IG1hcmdpbi1yaWdodDppbmhlcml0OyB3aWR0aDoxMDAlICFpbXBvcnRhbnQ7IGZsb2F0Om5vbmU7IH0gLmxhbmd1YWdlQmFyICNzZXJ2aWNlX2FwcG9pbnRfaGVhZGVyIC5tYWlsd2lkZ2V0LS1mb3JtLXJvdyB0YWJsZSB0ZXh0YXJlYSB7IHdpZHRoOmNhbGMoMTAwJSArIDJweCkgIWltcG9ydGFudDsgfSAjdXNlZF80MDRfbWVzc2FnZSB7IHRleHQtYWxpZ246Y2VudGVyOyBwYWRkaW5nOjMwcHg7IGJvcmRlcjoxcHggc29saWQgI2YwMDsgbWFyZ2luOjAgMCAyMHB4IDA7IH0gLmF1ZGktdGl0bGUgaDIgeyBmb250LXdlaWdodDpub3JtYWw7IH0gLmF1ZGktY29sb3IgeyBjb2xvcjojYmIwYTMwOyBmb250LXdlaWdodDpib2xkOyB9IGRpdiNzb2NpYWxfbWVkaWFfaWNvbnNfZGl2IHsgZm9udC1zaXplOmluaGVyaXQ7IH0gYS5zb2NpYWwtbGluayB7IC0tZnM6dmFyKC0tZnM2KTsgLS10eHQtY29sb3I6IzAwMDAwMDsgfSAjc29jaWFsX21lZGlhX2ljb25zX2RpdiAuc29jaWFsLWxpbmtbZGF0YS10b29sdGlwPSdZb3V0dWJlJ10gLnNvY2lhbC1pY29ucyB7IG1hcmdpbi1yaWdodDozcHg7IH0gLnBheXBhbF9idXR0b25faHRtbCB0YWJsZXsgbWFyZ2luLWxlZnQ6YXV0bzsgbWFyZ2luLXJpZ2h0OmF1dG87IGJhY2tncm91bmQtY29sb3I6YmxhY2s7IGNvbG9yOndoaXRlOyB3aWR0aDoxMDAlOyBwYWRkaW5nOjAgMCAxMHB4IDA7IGJvcmRlci1yYWRpdXM6M3B4IDNweCAwIDA7IHRleHQtYWxpZ246Y2VudGVyOyB9IC5wYXlwYWxfYnV0dG9uX2h0bWwgdGFibGUgdHI6Zmlyc3QtY2hpbGR7IGZvbnQtc2l6ZToxLjEyNXJlbSA7IGhlaWdodDo0MHB4OyB9IC5wYXlwYWxfYnV0dG9uX2h0bWwgdGFibGUgc2VsZWN0eyBib3JkZXItcmFkaXVzOjVweDsgd2lkdGg6MjAwcHg7IGhlaWdodDozNXB4OyBiYWNrZ3JvdW5kLWNvbG9yOndoaXRlOyB9IC5wYXlwYWxfYnV0dG9uX2h0bWwgaW5wdXRbdHlwZT0iaW1hZ2UiXVtuYW1lPSJzdWJtaXQiXXsgd2lkdGg6MTAwJTsgYm9yZGVyOm5vbmU7IHBhZGRpbmc6MDsgfSBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6NDAwcHgpIHsgLnBheXBhbF9idXR0b25faHRtbHsgd2lkdGg6OTAlOyBtYXJnaW46MCBhdXRvOyB9IH0gI211bHRpLWFkZHJlc3Mtc3VibWlzc2lvbiB7IHotaW5kZXg6MTAwMDAwMDAwMjE7IH0gI211bHRpLWFkZHJlc3Mtc3VibWlzc2lvbi5kZXNrdG9wIHsgdGV4dC1hbGlnbjpjZW50ZXI7IH0gI211bHRpLWFkZHJlc3Mtc3VibWlzc2lvbi5kZXNrdG9wIHNlbGVjdCB7IG1heC13aWR0aDozMDBweDsgbWFyZ2luOjAgYXV0bzsgfSAjbXVsdGktYWRkcmVzcy1zdWJtaXNzaW9uLnNtYWxsIHsgcGFkZGluZzoyMHB4IDEwcHg7IH0gI211bHRpLWFkZHJlc3Mtc3VibWlzc2lvbiBsYWJlbCB7IGRpc3BsYXk6YmxvY2s7IG1hcmdpbi1ib3R0b206NXB4OyBmb250LXdlaWdodDpib2xkOyB9ICNtdWx0aS1hZGRyZXNzLXN1Ym1pc3Npb24gI211dGxpQWRkcmVzc1N1Ym1pdCB7IG1hcmdpbjowIGF1dG87IG1hcmdpbi10b3A6OHB4OyBkaXNwbGF5OnRhYmxlOyB9ICNtdWx0aS1hZGRyZXNzLXN1Ym1pc3Npb24gI211bHRpLWRlYWxlci1tYXAgeyBoZWlnaHQ6NTIwcHg7IG1hcmdpbi1ib3R0b206MTJweDsgfSAjbXVsdGktYWRkcmVzcy1zdWJtaXNzaW9uLnJldmVhbC1tb2RhbCBzcGFuIHsgZm9udC1zaXplOmluaGVyaXQ7IH0gLnZhbGlkaXR5LWVycm9uZW91cyB7IGJvcmRlcjoxcHggc29saWQgI2RjMzU0NTsgYmFja2dyb3VuZC1jb2xvcjojZmFkNmRjIWltcG9ydGFudDsgfSAuYm94NC52YWxpZGl0eS1lcnJvbmVvdXMsIC5ib3g1LnZhbGlkaXR5LWVycm9uZW91cyB7IHdpZHRoOjI2M3B4OyB9IC5mb3JtLWNvbnRyb2wgeyBkaXNwbGF5OmJsb2NrOyB3aWR0aDoxMDAlOyBoZWlnaHQ6MzRweDsgcGFkZGluZzo2cHggMTJweDsgZm9udC1zaXplOjAuODc1cmVtIDsgbGluZS1oZWlnaHQ6MS40Mjg1NzE0MzsgY29sb3I6IzU1NTsgYmFja2dyb3VuZC1jb2xvcjojZmZmOyBiYWNrZ3JvdW5kLWltYWdlOm5vbmU7IGJvcmRlcjoxcHggc29saWQgI2NjYzsgYm9yZGVyLXJhZGl1czo0cHg7IC13ZWJraXQtYm94LXNoYWRvdzppbnNldCAwIDFweCAxcHggcmdiYSgwLDAsMCwuMDc1KTsgYm94LXNoYWRvdzppbnNldCAwIDFweCAxcHggcmdiYSgwLDAsMCwuMDc1KTsgLXdlYmtpdC10cmFuc2l0aW9uOmJvcmRlci1jb2xvciBlYXNlLWluLW91dCAuMTVzLGJveC1zaGFkb3cgZWFzZS1pbi1vdXQgLjE1czsgLW8tdHJhbnNpdGlvbjpib3JkZXItY29sb3IgZWFzZS1pbi1vdXQgLjE1cyxib3gtc2hhZG93IGVhc2UtaW4tb3V0IC4xNXM7IC13ZWJraXQtdHJhbnNpdGlvbjpib3JkZXItY29sb3IgZWFzZS1pbi1vdXQgLjE1cywtd2Via2l0LWJveC1zaGFkb3cgZWFzZS1pbi1vdXQgLjE1czsgdHJhbnNpdGlvbjpib3JkZXItY29sb3IgZWFzZS1pbi1vdXQgLjE1cywtd2Via2l0LWJveC1zaGFkb3cgZWFzZS1pbi1vdXQgLjE1czsgdHJhbnNpdGlvbjpib3JkZXItY29sb3IgZWFzZS1pbi1vdXQgLjE1cyxib3gtc2hhZG93IGVhc2UtaW4tb3V0IC4xNXM7IHRyYW5zaXRpb246Ym9yZGVyLWNvbG9yIGVhc2UtaW4tb3V0IC4xNXMsYm94LXNoYWRvdyBlYXNlLWluLW91dCAuMTVzLC13ZWJraXQtYm94LXNoYWRvdyBlYXNlLWluLW91dCAuMTVzOyB9IC5iYW5uZXItZm9ybS1ib3ggeyBwYWRkaW5nOjMwcHg7IGJhY2tncm91bmQtY29sb3I6OyBjb2xvcjo7IH0gLmJhbm5lci1mb3JtLXRpdGxlIHsgZm9udC13ZWlnaHQ6NjAwOyBmb250LXNpemU6MThwdDsgdGV4dC1hbGlnbjpjZW50ZXI7IHRleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTsgbWFyZ2luLWJvdHRvbTo1cHg7IH0gLmJhbm5lci1mb3JtLXN1YnRpdGxlIHsgZm9udC1zaXplOjExLjVwdDsgbWFyZ2luLWJvdHRvbTo1cHg7IH0gLmJhbm5lci1mb3JtLWJvZHkgeyBtYXJnaW4tYm90dG9tOjI1cHg7IH0gLmJhbm5lci1mb3JtLWJvZHkgLmZvcm0tY29udHJvbCB7IGhlaWdodDo0MXB4OyBtYXJnaW4tYm90dG9tOjE1cHg7IC13ZWJraXQtYm94LXNpemluZzpib3JkZXItYm94OyAtbW96LWJveC1zaXppbmc6Ym9yZGVyLWJveDsgYm94LXNpemluZzpib3JkZXItYm94OyB9IC5iYW5uZXItZm9ybS1ib3gtZm9vdGVyIHsgdGV4dC1hbGlnbjpjZW50ZXI7IG1hcmdpbi10b3A6MjVweDsgfSAuYmFubmVyLWZvcm0tYm94LWhlYWRlciB7IHRleHQtYWxpZ246Y2VudGVyOyBtYXJnaW4tYm90dG9tOjE1cHg7IH0gLmJ0bi5iYW5uZXItYnRuIHsgcGFkZGluZzo2cHggMjRweDsgZm9udC13ZWlnaHQ6Ym9sZDsgdGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlOyBiYWNrZ3JvdW5kLWNvbG9yOmJsYWNrOyBjb2xvcjp3aGl0ZTsgYmFja2dyb3VuZC1jb2xvcjo7IGNvbG9yOjsgfSAuYnRuLmJhbm5lci1idG46aG92ZXIgeyBib3gtc2hhZG93Omluc2V0IDAgMCAxMDBweCAxMDBweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSk7IH0gLmJ0biB7IGRpc3BsYXk6aW5saW5lLWJsb2NrOyBwYWRkaW5nOjZweCAxMnB4OyBtYXJnaW4tYm90dG9tOjA7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGZvbnQtd2VpZ2h0OjQwMDsgbGluZS1oZWlnaHQ6MS40Mjg1NzE0MzsgdGV4dC1hbGlnbjpjZW50ZXI7IHdoaXRlLXNwYWNlOm5vd3JhcDsgdmVydGljYWwtYWxpZ246bWlkZGxlOyAtbXMtdG91Y2gtYWN0aW9uOm1hbmlwdWxhdGlvbjsgdG91Y2gtYWN0aW9uOm1hbmlwdWxhdGlvbjsgY3Vyc29yOnBvaW50ZXI7IC13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTsgLW1vei11c2VyLXNlbGVjdDpub25lOyAtbXMtdXNlci1zZWxlY3Q6bm9uZTsgdXNlci1zZWxlY3Q6bm9uZTsgYm9yZGVyLXJhZGl1czo0cHg7IH0gLmxhenlsb2FkeyB2aXNpYmlsaXR5OmhpZGRlbjsgfSAuZ2JveCB7IGJvcmRlci1yYWRpdXM6NXB4OyBib3gtc2hhZG93OjAgMCAxMHB4IDFweCByZ2JhKDAsMCwwLDAuMik7IH0gLnBkIHsgdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTsgZm9udC1zaXplOjAuNWVtOyB2ZXJ0aWNhbC1hbGlnbjpzdXBlcjsgfSAudWktbG9hZGVyLWJhY2tncm91bmR7IHdpZHRoOjEwMCU7IGhlaWdodDoxMDAlOyB0b3A6MDsgcGFkZGluZzowOyBtYXJnaW46MDsgYmFja2dyb3VuZDpyZ2JhKDAsIDAsIDAsIDAuMyk7IGRpc3BsYXk6bm9uZTsgcG9zaXRpb246Zml4ZWQ7IHotaW5kZXg6MTAwMDAwMDAwOyB9IC51aS1sb2FkZXItYmFja2dyb3VuZC1naWZ7IHBvc2l0aW9uOmFic29sdXRlOyB0b3A6NTAlOyBsZWZ0OjUwJTsgfSAuZDJjRm9vdGVyQ29va2llRGVsZXRlVGl0bGUgeyBmb250LXNpemU6MS4zZW07IH0gLmQyY0Zvb3RlckNvb2tpZURlbGV0ZVRleHQgeyBtYXJnaW4tdG9wOjMwcHg7IH0gLm1vbnRobHlQYXltZW50c1BvcHVwQ29udGFpbmVyX2J0bnsgYmFja2dyb3VuZDojMDI3NmIzOyBjb2xvcjojZmZmZmZmOyBwYWRkaW5nOjEwcHggMjBweCAxMHB4IDIwcHg7IGRpc3BsYXk6aW5saW5lLWJsb2NrOyB9IC5tb250aGx5UGF5bWVudHNQb3B1cENvbnRhaW5lcl9idG4gc3BhbnsgYmFja2dyb3VuZDojMDI3NmIzOyBjb2xvcjojZmZmZmZmOyB9ICNtb250aGx5UGF5bWVudHNQb3B1cENvbnRhaW5lcl9zbXN7IGJhY2tncm91bmQ6IzAyNzZiMzsgY29sb3I6I2ZmZmZmZjsgfSAjbW9udGhseVBheW1lbnRzUG9wdXBDb250YWluZXJfc21zIHNwYW57IGJhY2tncm91bmQ6IzAyNzZiMzsgY29sb3I6I2ZmZmZmZjsgfSAuYmxhY2tDb2xvckJvbGR7IGNvbG9yOiMwMDAhaW1wb3J0YW50OyBmb250LXdlaWdodDo3MDAhaW1wb3J0YW50OyBmb250LXNpemU6MXJlbSAhaW1wb3J0YW50OyB9IC5mbGV4LWNlbnRlciAucmVzcG9uc2l2ZS1lZGl0b3IgeyBmbGV4LWdyb3c6MTsgfSAucmV2ZWFsLW1vZGFseyBib3gtc2l6aW5nOmNvbnRlbnQtYm94OyB9IC5nbS1zdHlsZS1pdy1kIHsgcGFkZGluZy10b3A6MTJweDsgbWFyZ2luLXJpZ2h0Oi0yNHB4OyB9IC5nbS1zdHlsZSAuZ20tc3R5bGUtaXctYyB7IGZsZXgtZGlyZWN0aW9uOnJvdy1yZXZlcnNlOyB9Ci8qKiAvY3NzL2ZvbnRzLkZvcmRGMS5jc3MgKiovCkBmb250LWZhY2V7Zm9udC1kaXNwbGF5OnN3YXA7Zm9udC1mYW1pbHk6J0ZvcmRGMSc7Zm9udC13ZWlnaHQ6MzAwO2ZvbnQtc3R5bGU6bm9ybWFsO3NyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvRm9yZEYxLUxpZ2h0LndvZmYyJylmb3JtYXQoJ3dvZmYyJyk7fUBmb250LWZhY2V7Zm9udC1kaXNwbGF5OnN3YXA7Zm9udC1mYW1pbHk6J0ZvcmRGMSc7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc3R5bGU6bm9ybWFsO3NyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvRm9yZEYxLVJlZ3VsYXIud29mZjInKWZvcm1hdCgnd29mZjInKTt9QGZvbnQtZmFjZXtmb250LWRpc3BsYXk6c3dhcDtmb250LWZhbWlseTonRm9yZEYxJztmb250LXdlaWdodDo1MDA7Zm9udC1zdHlsZTpub3JtYWw7c3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Gb3JkRjEtTWVkaXVtLndvZmYyJylmb3JtYXQoJ3dvZmYyJyk7fUBmb250LWZhY2V7Zm9udC1kaXNwbGF5OnN3YXA7Zm9udC1mYW1pbHk6J0ZvcmRGMSc7Zm9udC13ZWlnaHQ6NjAwO2ZvbnQtc3R5bGU6bm9ybWFsO3NyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvRm9yZEYxLVNlbWlib2xkLndvZmYyJylmb3JtYXQoJ3dvZmYyJyk7fUBmb250LWZhY2V7Zm9udC1kaXNwbGF5OnN3YXA7Zm9udC1mYW1pbHk6J0ZvcmRGMSc7Zm9udC13ZWlnaHQ6NzAwO2ZvbnQtc3R5bGU6bm9ybWFsO3NyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvRm9yZEYxLUJvbGQud29mZjInKWZvcm1hdCgnd29mZjInKTt9Ci8qKiAvY3NzL2Jhc2UuY3NzICoqLwpzdGFjay1sYywgLnN0YWNrLWxjIHsgLS1zcGFjZTp2YXIoLS1zLCAwLjVyZW0pOyBkaXNwbGF5OmZsZXg7IGZsZXgtZGlyZWN0aW9uOmNvbHVtbjsganVzdGlmeS1jb250ZW50OmZsZXgtc3RhcnQ7IH0gc3RhY2stbGMgPiAqLCAuc3RhY2stbGMgPiAqIHsgbWFyZ2luLXRvcDowOyBtYXJnaW4tYm90dG9tOjA7IH0gc3RhY2stbGMgPiAqICsgKiwgLnN0YWNrLWxjID4gKiArICogeyBtYXJnaW4tdG9wOnZhcigtLXNwYWNlKTsgfSBzdGFjay1sYy4tLXMwID4gKiArICosIC5zdGFjay1sYy4tLXMwID4gKiArICogeyBib3JkZXItd2lkdGg6MDsgYm9yZGVyLXRvcC13aWR0aDp2YXIoLS1ib3JkZXItdGhpbik7IGJvcmRlci1jb2xvcjppbmhlcml0OyB9IC5ib3gtbGMsIGJveC1sYyB7IC0tc3BhY2U6dmFyKC0tcywgMC41cmVtKTsgZGlzcGxheTpibG9jazsgcGFkZGluZzp2YXIoLS1zcGFjZSk7IG91dGxpbmU6dmFyKC0tYm9yZGVyLXRoaW4pIHRyYW5zcGFyZW50OyBvdXRsaW5lLW9mZnNldDpjYWxjKHZhcigtLWJvcmRlci10aGluKSAqIC0xKTsgfSAuYm94LWxjLCBib3gtbGMgKiB7IGNvbG9yOmluaGVyaXQ7IH0gLmJnLWJveHsgY29sb3I6dmFyKC0tYmxhY2spOyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXdoaXRlKTsgYm9yZGVyLXdpZHRoOnZhcigtLWJvcmRlci10aGluKTsgfSAuZ2xhc3MtYm94eyBib3JkZXI6bm9uZTsgYmFja2dyb3VuZDpub25lOyBiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50OyBjb2xvcjppbmhlcml0OyB9IC5jdHItYm94LCAuZmxleC1ib3gsIC5mbGV4LWNvbHVtbiwgLmZsZXgtYXJvdW5kLCAuZmxleC1iZXR3ZWVuLCAuZmxleC1ldmVubHksIC5mbGV4LWNlbnRlciwgLmZsZXgtc3RhcnQsIC5mbGV4LWVuZCwgLmZsZXgtYXV0bywgLmZsZXgtZXF1YWx7IGRpc3BsYXk6ZmxleDsgfSAuaW5saW5lLWJveHsgZGlzcGxheTppbmxpbmUtYmxvY2s7IH0gLnNoYWRvdy1ib3h7IGJveC1zaGFkb3c6MCAwIDEwcHggMnB4IHZhcigtLW1pZC1ncmF5KTsgYm9yZGVyLWNvbG9yOnZhcigtLWxpZ2h0LWdyYXkpOyB9IC5mbGV4LWJveDpub3QoOmlzKC5mbGV4LWJldHdlZW4sLmZsZXgtZXZlbmx5LC5mbGV4LWFyb3VuZCkpID4gKiArICp7IG1hcmdpbi1sZWZ0OnZhcigtLXMpOyB9IC5ncm91cC1sYywgZ3JvdXAtbGMgeyAtLXNwYWNlOnZhcigtLXMsIDAuNXJlbSk7IH0gLmdyb3VwLWxjID4gKiwgZ3JvdXAtbGMgPiAqIHsgZGlzcGxheTpmbGV4OyBmbGV4LXdyYXA6d3JhcDsganVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47IGFsaWduLWl0ZW1zOmNlbnRlcjsgbWFyZ2luOmNhbGModmFyKC0tc3BhY2UpIC8gMiAqIC0xKTsgfSAuZ3JvdXAtbGMgPiAqID4gKiwgZ3JvdXAtbGMgPiAqID4gKiB7IG1hcmdpbjpjYWxjKHZhcigtLXNwYWNlKSAvIDIpOyB9IDppcyguc2lkZWJhci1sYyxzaWRlYmFyLWxjKSB7IG92ZXJmbG93OmhpZGRlbjsgfSA6aXMoLnNpZGViYXItbGMsc2lkZWJhci1sYykgPiAqIHsgLS1zcGFjZTp2YXIoLS1zLCAwLjVyZW0pOyBkaXNwbGF5OmZsZXg7IGZsZXgtd3JhcDp3cmFwOyBtYXJnaW46Y2FsYyh2YXIoLS1zcGFjZSkgLyAyICogLTEpOyB9IDppcyguc2lkZWJhci1sYyxzaWRlYmFyLWxjKSA+ICogPiAqIHsgbWFyZ2luOmNhbGModmFyKC0tc3BhY2UpIC8gMik7IGZsZXgtZ3JvdzoxOyB9IDppcyguc2lkZWJhci1sYyxzaWRlYmFyLWxjKSA+ICogPiA6Zmlyc3QtY2hpbGQgeyBmbGV4LWJhc2lzOjA7IGZsZXgtZ3Jvdzo5OTk7IG1pbi13aWR0aDpjYWxjKHZhcigtLXNpZGViYXItYnAsIDUwJSkgLSB2YXIoLS1zcGFjZSkpOyB9IDppcyguc3dpdGNoZXItbGMsc3dpdGNoZXItbGMpID4gKiB7IC0tc3BhY2U6dmFyKC0tcywgMC41cmVtKTsgZGlzcGxheTpmbGV4OyBmbGV4LXdyYXA6d3JhcDsgbWFyZ2luOmNhbGMoKHZhcigtLXNwYWNlKSAvIDIpICogLTEpOyB9IDppcyguc3dpdGNoZXItbGMsc3dpdGNoZXItbGMpID4gKiA+ICogeyBmbGV4LWdyb3c6MTsgZmxleC1iYXNpczpjYWxjKCh2YXIoLS1zd2l0Y2gtYnAsIDMwcmVtKSAtICgxMDAlIC0gdmFyKC0tc3BhY2UpKSkgKiA5OTkpOyBtYXJnaW46Y2FsYyh2YXIoLS1zcGFjZSkgLyAyKTsgfSA6aXMoLnN3aXRjaGVyLWxjLHN3aXRjaGVyLWxjKSA+ICogPiA6bnRoLWxhc3QtY2hpbGQobis1KSwgOmlzKC5zd2l0Y2hlci1sYyxzd2l0Y2hlci1sYykgPiAqID4gOm50aC1sYXN0LWNoaWxkKG4rNSkgfiAqIHsgZmxleC1iYXNpczoxMDAlOyB9IC4tLXMwey0tc3BhY2U6dmFyKC0tczApO30gLi0tcy05ey0tc3BhY2U6dmFyKC0tcy05KTt9IC4tLXMtOHstLXNwYWNlOnZhcigtLXMtOCk7fSAuLS1zLTd7LS1zcGFjZTp2YXIoLS1zLTcpO30gLi0tcy02ey0tc3BhY2U6dmFyKC0tcy02KTt9IC4tLXMtNXstLXNwYWNlOnZhcigtLXMtNSk7fSAuLS1zLTR7LS1zcGFjZTp2YXIoLS1zLTQpO30gLi0tcy0zey0tc3BhY2U6dmFyKC0tcy0zKTt9IC4tLXMtMnstLXNwYWNlOnZhcigtLXMtMik7fSAuLS1zLTF7LS1zcGFjZTp2YXIoLS1zLTEpO30gLi0tc3stLXNwYWNlOnZhcigtLXMpO30gLi0tczF7LS1zcGFjZTp2YXIoLS1zMSk7fSAuLS1zMnstLXNwYWNlOnZhcigtLXMyKTt9IC4tLXMzey0tc3BhY2U6dmFyKC0tczMpO30gLi0tczR7LS1zcGFjZTp2YXIoLS1zNCk7fSAuLS1zNXstLXNwYWNlOnZhcigtLXM1KTt9IC4tLXM2ey0tc3BhY2U6dmFyKC0tczYpO30gLi0tczd7LS1zcGFjZTp2YXIoLS1zNyk7fSAuLS1zOHstLXNwYWNlOnZhcigtLXM4KTt9IC4tLXM5ey0tc3BhY2U6dmFyKC0tczkpO30gLi0tZnMtOXtmb250LXNpemU6dmFyKC0tZnMtOSk7LS1mczp2YXIoLS1mcy05KTt9IC4tLWZzLTh7Zm9udC1zaXplOnZhcigtLWZzLTgpOy0tZnM6dmFyKC0tZnMtOCk7fSAuLS1mcy03e2ZvbnQtc2l6ZTp2YXIoLS1mcy03KTstLWZzOnZhcigtLWZzLTcpO30gLi0tZnMtNntmb250LXNpemU6dmFyKC0tZnMtNik7LS1mczp2YXIoLS1mcy02KTt9IC4tLWZzLTV7Zm9udC1zaXplOnZhcigtLWZzLTUpOy0tZnM6dmFyKC0tZnMtNSk7fSAuLS1mcy00e2ZvbnQtc2l6ZTp2YXIoLS1mcy00KTstLWZzOnZhcigtLWZzLTQpO30gLi0tZnMtM3tmb250LXNpemU6dmFyKC0tZnMtMyk7LS1mczp2YXIoLS1mcy0zKTt9IC4tLWZzLTJ7Zm9udC1zaXplOnZhcigtLWZzLTIpOy0tZnM6dmFyKC0tZnMtMik7fSAuLS1mcy0xe2ZvbnQtc2l6ZTp2YXIoLS1mcy0xKTstLWZzOnZhcigtLWZzLTEpO30gLi0tZnMwe2ZvbnQtc2l6ZTp2YXIoLS1mczApOy0tZnM6dmFyKC0tZnMwKTt9IC4tLWZzMXtmb250LXNpemU6dmFyKC0tZnMxKTstLWZzOnZhcigtLWZzMSk7fSAuLS1mczJ7Zm9udC1zaXplOnZhcigtLWZzMik7LS1mczp2YXIoLS1mczIpO30gLi0tZnMze2ZvbnQtc2l6ZTp2YXIoLS1mczMpOy0tZnM6dmFyKC0tZnMzKTt9IC4tLWZzNHtmb250LXNpemU6dmFyKC0tZnM0KTstLWZzOnZhcigtLWZzNCk7fSAuLS1mczV7Zm9udC1zaXplOnZhcigtLWZzNSk7LS1mczp2YXIoLS1mczUpO30gLi0tZnM2e2ZvbnQtc2l6ZTp2YXIoLS1mczYpOy0tZnM6dmFyKC0tZnM2KTt9IC4tLWZzN3tmb250LXNpemU6dmFyKC0tZnM3KTstLWZzOnZhcigtLWZzNyk7fSAuLS1mczh7Zm9udC1zaXplOnZhcigtLWZzOCk7LS1mczp2YXIoLS1mczgpO30gLi0tZnM5e2ZvbnQtc2l6ZTp2YXIoLS1mczkpOy0tZnM6dmFyKC0tZnM5KTt9IC5zaHJpbmstZ3Jvd3tmbGV4OjEgMTt9IC5mbGV4LXdyYXAge2ZsZXgtd3JhcDp3cmFwO30gLmZsZXgtcmV2ZXJzZSB7ZmxleC1kaXJlY3Rpb246cm93LXJldmVyc2U7fSAuZmxleC1hdXRvID4gKntmbGV4OjEgMSBhdXRvO30gLmZsZXgtZXF1YWwgPiAqe2ZsZXg6MSAxO30gLmFsaWduLWNlbnRlciB7YWxpZ24taXRlbXM6Y2VudGVyO30gLmFsaWduLXN0YXJ0e2FsaWduLWl0ZW1zOmZsZXgtc3RhcnQ7fSAuYWxpZ24tZW5ke2FsaWduLWl0ZW1zOmZsZXgtZW5kO30gLmFsaWduLWJhc2VsaW5le2FsaWduLWl0ZW1zOmJhc2VsaW5lO30gLmZsZXgtY29sdW1uIHtmbGV4LWZsb3c6Y29sdW1uO30gLmZsZXgtcm93IHtmbGV4LWZsb3c6cm93O30gLmZsZXgtYXJvdW5ke2p1c3RpZnktY29udGVudDpzcGFjZS1hcm91bmQ7fSAuZmxleC1iZXR3ZWVue2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO30gLmZsZXgtZXZlbmx5e2p1c3RpZnktY29udGVudDpzcGFjZS1ldmVubHk7fSAuZmxleC1jZW50ZXJ7anVzdGlmeS1jb250ZW50OmNlbnRlcjt9IC5mbGV4LXN0YXJ0e2p1c3RpZnktY29udGVudDpmbGV4LXN0YXJ0O30gLmZsZXgtZW5ke2p1c3RpZnktY29udGVudDpmbGV4LWVuZDt9IC4tcDAge3BhZGRpbmc6MDt9IC4tcHQwIHtwYWRkaW5nLXRvcDowO30gLi1wYjAge3BhZGRpbmctYm90dG9tOjA7fSAuLXB2MCB7cGFkZGluZy10b3A6MDtwYWRkaW5nLWJvdHRvbTowfSAuLXBoMCB7cGFkZGluZy1sZWZ0OjA7cGFkZGluZy1yaWdodDowfSAuLXAge3BhZGRpbmc6dmFyKC0tc3BhY2UpO30gLi1wdntwYWRkaW5nLXRvcDp2YXIoLS1zcGFjZSk7IHBhZGRpbmctYm90dG9tOnZhcigtLXNwYWNlKTt9IC4tcGh7cGFkZGluZy1sZWZ0OnZhcigtLXNwYWNlKTsgcGFkZGluZy1yaWdodDp2YXIoLS1zcGFjZSk7fSAuLXB0e3BhZGRpbmctdG9wOnZhcigtLXNwYWNlKTt9IC4tcGJ7cGFkZGluZy1ib3R0b206dmFyKC0tc3BhY2UpO30gLi1tMCB7bWFyZ2luOjA7fSAuLW10MCB7bWFyZ2luLXRvcDowO30gLi1tYjAge21hcmdpbi1ib3R0b206MDt9IC4tbXYwIHttYXJnaW4tdG9wOjA7bWFyZ2luLWJvdHRvbTowfSAuLW1oMCB7bWFyZ2luLWxlZnQ6MDttYXJnaW4tcmlnaHQ6MH0gLi1tIHttYXJnaW46dmFyKC0tc3BhY2UpO30gLi1tdnttYXJnaW4tdG9wOnZhcigtLXNwYWNlKTsgbWFyZ2luLWJvdHRvbTp2YXIoLS1zcGFjZSk7fSAuLW1oe21hcmdpbi1sZWZ0OnZhcigtLXNwYWNlKTsgbWFyZ2luLXJpZ2h0OnZhcigtLXNwYWNlKTt9IC4tbXR7bWFyZ2luLXRvcDp2YXIoLS1zcGFjZSk7fSAuLW1ie21hcmdpbi1ib3R0b206dmFyKC0tc3BhY2UpO30gLi1iMCB7Ym9yZGVyOm5vbmU7fSAuLWIyIHtib3JkZXItd2lkdGg6MnB4O30gLi1ie2JvcmRlci13aWR0aDoxcHg7fSAuLWJ0e2JvcmRlci10b3Atd2lkdGg6MXB4O30gLi1iYntib3JkZXItYm90dG9tLXdpZHRoOjFweDt9IC4tYnZ7Ym9yZGVyLXRvcC13aWR0aDoxcHg7Ym9yZGVyLWJvdHRvbS13aWR0aDoxcHg7fSAuLWJoe2JvcmRlci1sZWZ0LXdpZHRoOjFweDtib3JkZXItcmlnaHQtd2lkdGg6MXB4O30gLi13LWZ1bGwge3dpZHRoOjEwMHZ3O30gLi13LTEwMCB7d2lkdGg6MTAwJTt9IC4tdy01MCB7d2lkdGg6NTAlO30gLi13LTMzIHt3aWR0aDozMy4zMyU7fSAuLXctMjUge3dpZHRoOjI1JTt9IC4tdy01MHcge3dpZHRoOjUwdnc7fSAuLWZzLXh4c3tmb250LXNpemU6MC4xNXJlbTsgLS1mczowLjE1cmVtO30gLi1mcy14c3tmb250LXNpemU6MC41cmVtOyAtLWZzOjAuNXJlbTt9IC4tZnMtc3tmb250LXNpemU6MC43NXJlbTsgLS1mczowLjc1cmVtO30gLi1mcy1zcntmb250LXNpemU6MC45cmVtOyAtLWZzOjAuOXJlbTt9IC4tZnMtbHJ7Zm9udC1zaXplOjEuMXJlbTsgLS1mczoxLjFyZW07fSAuLWZzLWx7Zm9udC1zaXplOjEuMjVyZW07IC0tZnM6MS4yNXJlbTt9IC4tZnMteGx7Zm9udC1zaXplOjEuNXJlbTsgLS1mczoxLjVyZW07fSAuLWZzLXh4bHtmb250LXNpemU6MnJlbTsgLS1mczoycmVtO30gLi1mcy14eHhse2ZvbnQtc2l6ZToyLjI1cmVtOyAtLWZzOjIuMjVyZW07fSAuLWZ3MSB7Zm9udC13ZWlnaHQ6MTAwO30gLi1mdzIge2ZvbnQtd2VpZ2h0OjIwMDt9IC4tZnczIHtmb250LXdlaWdodDozMDA7fSAuLWZ3NCB7Zm9udC13ZWlnaHQ6NDAwO30gLi1mdzUge2ZvbnQtd2VpZ2h0OjUwMDt9IC4tZnc2IHtmb250LXdlaWdodDo2MDA7fSAuLWZ3NyB7Zm9udC13ZWlnaHQ6NzAwO30gLi1mdzgge2ZvbnQtd2VpZ2h0OjgwMDt9IC4tZnc5IHtmb250LXdlaWdodDo5MDA7fSAuLWJvbGQge2ZvbnQtd2VpZ2h0OmJvbGQ7fSAudHh0LXJlZCB7Y29sb3I6I2NjMDAwMDt9IC50eHQtY2VudGVye3RleHQtYWxpZ246Y2VudGVyO30gLnR4dC1yaWdodHt0ZXh0LWFsaWduOnJpZ2h0O30gLnR4dC1sZWZ0e3RleHQtYWxpZ246bGVmdDt9IC50eHQtdXBwZXJ7dGV4dC10cmFuc2Zvcm06dmFyKC0tY2VydC10eHQtdHJhbnNmb3JtLCB2YXIoLS10eHQtdXBwZXIsIHVwcGVyY2FzZSkpO30gLnR4dC1ub3Rle2ZvbnQtc3R5bGU6aXRhbGljO30gLnR4dC1wYXltZW50IHtjb2xvcjp2YXIoLS1uZXd2ZHAtYmVzdHByaWNlLXRleHQtY29sb3ItcHJpY2UpICFpbXBvcnRhbnQ7fSAuLXBvc3JlbHtwb3NpdGlvbjpyZWxhdGl2ZTt9IC5jZXJ0LXR4dC10cmFuc2Zvcm17dGV4dC10cmFuc2Zvcm06dmFyKC0tY2VydC10eHQtdHJhbnNmb3JtLCBub25lKTt9IFtoaWRkZW5dLCAuaGlkZGVuIHsgZGlzcGxheTpub25lICFpbXBvcnRhbnQ7IH0gLnNrZWxldG9uLXNsaWRlciA+ICp7IGRpc3BsYXk6bm9uZTsgfSAuc2tlbGV0b24tdHh0eyB0ZXh0LWluZGVudDoxMDAlOyB3aGl0ZS1zcGFjZTpub3dyYXA7IG92ZXJmbG93OmhpZGRlbjsgYmFja2dyb3VuZC1jb2xvcjpyZ2JhKDIyMSwgMjIxLCAyMjEsIDAuOCk7IGJvcmRlci1yYWRpdXM6MC41cmVtOyB9IC5za2VsZXRvbi1idG57IHdpZHRoOm1pbigyMHJlbSwxMDAlKTsgaGVpZ2h0OjIuNXJlbTsgYm9yZGVyLXJhZGl1czowLjVyZW07IGJhY2tncm91bmQtY29sb3I6cmdiYSgyMjEsIDIyMSwgMjIxLCAwLjgpOyBtYXJnaW46YXV0bzsgfSAuc2tlbGV0b24tYmxvY2t7IHdpZHRoOjEwMCU7IGhlaWdodDoxMDAlOyBiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjIxLCAyMjEsIDIyMSwgMC44KTsgfSAuc2tlbGV0b24tc2xpZGVyLCAuc2tlbGV0b24tdHh0LCAuc2tlbGV0b24tYnRuLCAuc2tlbGV0b24tYmxvY2sgeyBwb3NpdGlvbjpyZWxhdGl2ZTsgb3ZlcmZsb3c6aGlkZGVuOyBkaXNwbGF5OmJsb2NrOyB9IC5za2VsZXRvbi1zbGlkZXI6OmFmdGVyLCAuc2tlbGV0b24tdHh0OjphZnRlciwgLnNrZWxldG9uLWJ0bjo6YWZ0ZXIsIC5za2VsZXRvbi1ibG9jazo6YWZ0ZXIgeyBjb250ZW50OiIiOyBwb3NpdGlvbjphYnNvbHV0ZTsgdG9wOjA7IHJpZ2h0OjA7IGJvdHRvbTowOyBsZWZ0OjA7IHRyYW5zZm9ybTp0cmFuc2xhdGVYKC0xMDAlKTsgYmFja2dyb3VuZC1pbWFnZTpsaW5lYXItZ3JhZGllbnQoOTBkZWcsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMCkgMCwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIpIDIwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpIDYwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwKSk7IGFuaW1hdGlvbjpzaGltbWVyIDJzIGluZmluaXRlOyB9IC5za2VsZXRvbi1zbGlkZXIgeyBiYWNrZ3JvdW5kLWltYWdlOnVybCgiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCA1MTIgNTEyJyUzRSUzQ3BhdGggZD0nTTQ2NCA0NDhINDhjLTI2LjUxIDAtNDgtMjEuNDktNDgtNDhWMTEyYzAtMjYuNTEgMjEuNDktNDggNDgtNDhoNDE2YzI2LjUxIDAgNDggMjEuNDkgNDggNDh2Mjg4YzAgMjYuNTEtMjEuNDkgNDgtNDggNDh6TTExMiAxMjBjLTMwLjkyOCAwLTU2IDI1LjA3Mi01NiA1NnMyNS4wNzIgNTYgNTYgNTYgNTYtMjUuMDcyIDU2LTU2LTI1LjA3Mi01Ni01Ni01NnpNNjQgMzg0aDM4NFYyNzJsLTg3LjUxNS04Ny41MTVjLTQuNjg2LTQuNjg2LTEyLjI4NC00LjY4Ni0xNi45NzEgMEwyMDggMzIwbC01NS41MTUtNTUuNTE1Yy00LjY4Ni00LjY4Ni0xMi4yODQtNC42ODYtMTYuOTcxIDBMNjQgMzM2djQ4eicgZmlsbD0nJTIzZWVlJy8lM0UlM0Mvc3ZnJTNFIik7IGJhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDsgYmFja2dyb3VuZC1wb3NpdGlvbjpjZW50ZXI7IGJhY2tncm91bmQtY29sb3I6I2NjYzsgb3BhY2l0eTowLjk7IH0gQGtleWZyYW1lcyBzaGltbWVyIHsgMTAwJSB7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoMTAwJSk7fSB9IEBzdXBwb3J0cyAoLXdlYmtpdC10b3VjaC1jYWxsb3V0Om5vbmUpIHsgLnNrZWxldG9uLXNsaWRlcjo6YWZ0ZXIsIC5za2VsZXRvbi10eHQ6OmFmdGVyeyBhbmltYXRpb246bm9uZTsgfSB9IC5jb250ZW50LXNrZWxldG9uIHsgYmFja2dyb3VuZDojZWVlOyBib3JkZXItcmFkaXVzOjAuNXJlbTsgb3ZlcmZsb3c6aGlkZGVuOyB3aWR0aDoxMDAlOyBoZWlnaHQ6MTAwJTsgbWF4LXdpZHRoOjQwMHB4OyBwb3NpdGlvbjpyZWxhdGl2ZTsgfSAuY29udGVudC1za2VsZXRvbi5yZWN0YW5nbGUgeyBhc3BlY3QtcmF0aW86dmFyKC0tcmF0aW8sIDE2LzkpOyB9IC5jb250ZW50LXNrZWxldG9uLnRleHQgeyBoZWlnaHQ6YXV0bzsgcGFkZGluZzoxcmVtOyB9IC5jb250ZW50LXNrZWxldG9uLnRleHQ6OmJlZm9yZSwgLmNvbnRlbnQtc2tlbGV0b24udGV4dDo6YWZ0ZXIgeyBjb250ZW50OiIiOyBkaXNwbGF5OmJsb2NrOyBoZWlnaHQ6MXJlbTsgYmFja2dyb3VuZDojZGRkOyBtYXJnaW4tYm90dG9tOjAuNXJlbTsgYm9yZGVyLXJhZGl1czowLjI1cmVtOyB9IC5jb250ZW50LXNrZWxldG9uLnRleHQ6OmFmdGVyIHsgd2lkdGg6NzAlOyB9IC5jb250ZW50LXNrZWxldG9uLmFjdGl2ZSB7IGJhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDkwZGVnLCAjZjlmOWY5IDI1JSwgI2RlZGVkZSA1MCUsICNmOWY5ZjkgNzUlKTsgYmFja2dyb3VuZC1zaXplOjIwMCUgMTAwJTsgYW5pbWF0aW9uOnNoaW1tZXIgMnMgaW5maW5pdGUgbGluZWFyOyB9IEBrZXlmcmFtZXMgc2hpbW1lciB7IDAlIHsgYmFja2dyb3VuZC1wb3NpdGlvbjoyMDAlIDA7IH0gMTAwJSB7IGJhY2tncm91bmQtcG9zaXRpb246LTIwMCUgMDsgfSB9IC5jb250ZW50LXNrZWxldG9uLmRlYnVnOjphZnRlciB7IGNvbnRlbnQ6YXR0cihkYXRhLWJsb2NrKSAiIHwgIiBhdHRyKGRhdGEtc291cmNlKSAiIHwgIiBhdHRyKGRhdGEtZ2VuZXJhdGVkLWF0KTsgcG9zaXRpb246YWJzb2x1dGU7IHRvcDo0cHg7IGxlZnQ6NHB4OyByaWdodDo0cHg7IGZvbnQtc2l6ZTowLjdyZW07IGZvbnQtZmFtaWx5Om1vbm9zcGFjZSwgc2Fucy1zZXJpZjsgY29sb3I6I2ZmZjsgYmFja2dyb3VuZDpyZ2JhKDAsMCwwLDAuNik7IHBhZGRpbmc6MnB4IDRweDsgYm9yZGVyLXJhZGl1czo0cHg7IHotaW5kZXg6MTA7IHBvaW50ZXItZXZlbnRzOm5vbmU7IH0gYm9keSB7IHdpZHRoOmF1dG87IG1hcmdpbjowOyBwYWRkaW5nOjA7IGZvbnQtc2l6ZToxcmVtOyBmb250LWZhbWlseTp2YXIoLS1mb250LXRleHQtbW9iKTsgY29sb3I6dmFyKC0tZGVmYXVsdC1ibGFjayk7IGZvbnQtd2VpZ2h0OnZhcigtLWZvbnQtdGV4dC13ZWlnaHQpOyB9IHVsIHsgbGlzdC1zdHlsZTpub25lOyBsaXN0LXN0eWxlLXR5cGU6bm9uZTsgbGlzdC1zdHlsZS1wb3NpdGlvbjppbml0aWFsOyBsaXN0LXN0eWxlLWltYWdlOmluaXRpYWw7IH0gLnJlc3BvbnNpdmUtZWRpdG9yIHVsIHsgbGlzdC1zdHlsZTppbmhlcml0OyBsaXN0LXN0eWxlLXR5cGU6aW5oZXJpdDsgbGlzdC1zdHlsZS1wb3NpdGlvbjppbmhlcml0OyBsaXN0LXN0eWxlLWltYWdlOmluaGVyaXQ7IH0gc3ZnLCBzdmcuaWNvbnsgLS1pY29uLXNpemU6Y2FsYyh2YXIoLS1mcywgdmFyKC0tZnMwKSkgLyB2YXIoLS1yYXRpbykpOyBmaWxsOnZhcigtLXR4dC1jb2xvciwgdmFyKC0tYmxhY2spKTsgd2lkdGg6dmFyKC0taWNvbi1zaXplKTsgaGVpZ2h0OnZhcigtLWljb24tc2l6ZSk7IH0gc3ZnLmF1dGhvcml6ZWQtYmxhY2t7ZmlsbDojMjgyODI4IWltcG9ydGFudDt9IHN2Zy5hdXRob3JpemVkLWJsYWNrLWtpYXtmaWxsOiMwNTE0MUYhaW1wb3J0YW50O30gc3ZnLmF1dGhvcml6ZWQtcmVke2ZpbGw6I0ZGMDAwMCFpbXBvcnRhbnQ7fSBzdmcuYXV0aG9yaXplZC13aGl0ZXtmaWxsOiNGRkZGRkYhaW1wb3J0YW50O30gLmF1dGhvcml6ZWQtcmVkLXdoaXRlLXBsYXktYnRue2JhY2tncm91bmQ6cmFkaWFsLWdyYWRpZW50KCNGRkZGRkYgNTAlLHRyYW5zcGFyZW50IDUwJSk7fSBzdmcub2djb2xvci1mYWNlYm9va3tmaWxsOiM0MjY3QjIhaW1wb3J0YW50O30gc3ZnLm9nY29sb3ItdHdpdHRlcntmaWxsOiMxREExRjIhaW1wb3J0YW50O30gc3ZnLm9nY29sb3IteC10d2l0dGVye2ZpbGw6IzE0MTcxQSFpbXBvcnRhbnQ7fSBzdmcub2djb2xvci14LXR3aXR0ZXItd2hpdGV7ZmlsbDojRkZGRkZGIWltcG9ydGFudDt9IHN2Zy5vZ2NvbG9yLWxpbmtlZGlue2ZpbGw6IzAwNzdCNSFpbXBvcnRhbnQ7fSBzdmcub2djb2xvci1ibG9nZ2Vye2ZpbGw6I0ZGNTcyMiFpbXBvcnRhbnQ7fSBzdmcub2djb2xvci1waW50ZXJlc3R7ZmlsbDojRTYwMDIzIWltcG9ydGFudDt9IHN2Zy5vZ2NvbG9yLXlvdXR1YmV7ZmlsbDojRkYwMDAwIWltcG9ydGFudDsgYmFja2dyb3VuZDpyYWRpYWwtZ3JhZGllbnQoI0ZGRkZGRiA1MCUsdHJhbnNwYXJlbnQgNTAlKTt9IHN2Zy5vZ2NvbG9yLWluc3RhZ3JhbXtmaWxsOiM4MzNBQjQhaW1wb3J0YW50O30gc3ZnLm9nY29sb3ItdGlrdG9re2ZpbGw6I2ZmMDA1MCFpbXBvcnRhbnQ7fSAuZmFjZWJvb2stb2dpY29uLXR3ZWFrc3toZWlnaHQ6MjRweCFpbXBvcnRhbnQ7bWFyZ2luLXRvcDoycHghaW1wb3J0YW50O30gI2Zvb3RlciAuZmFjZWJvb2stb2dpY29uLXR3ZWFrc3toZWlnaHQ6MjNweCFpbXBvcnRhbnQ7bWFyZ2luLXRvcDowcHghaW1wb3J0YW50O30gLmluc3RhZ3JhbS1vZ2ljb24tdHdlYWtze2hlaWdodDoyOHB4IWltcG9ydGFudDttYXJnaW4tdG9wOjBweCFpbXBvcnRhbnQ7fSAjZm9vdGVyIC5pbnN0YWdyYW0tb2dpY29uLXR3ZWFrc3toZWlnaHQ6MjlweCFpbXBvcnRhbnQ7bWFyZ2luLXRvcDotNHB4IWltcG9ydGFudDt9IHN2Zy5jdXN0b21tZWRpYS1jb2xvcnBpY2tlcntmaWxsOnZhcigtLWFkbWluLXNvY2lhbC1jdXN0b20tY29sb3ItcGlja2VyLXRleHQpIWltcG9ydGFudDt9IC5zb2NpYWwtbWVkaWFfX2NvbnRhaW5lciAuYmctYXV0aG9yaXplZC1ibGFja3tiYWNrZ3JvdW5kLWNvbG9yOiMyODI4MjghaW1wb3J0YW50O30gLnNvY2lhbC1tZWRpYV9fY29udGFpbmVyIC5iZy1hdXRob3JpemVkLWJsYWNrLWtpYXtiYWNrZ3JvdW5kLWNvbG9yOiMwNTE0MUYhaW1wb3J0YW50O30gLnNvY2lhbC1tZWRpYV9fY29udGFpbmVyIC5iZy1hdXRob3JpemVkLXJlZHtiYWNrZ3JvdW5kLWNvbG9yOiNGRjAwMDAhaW1wb3J0YW50O30gLnNvY2lhbC1tZWRpYV9fY29udGFpbmVyIC5iZy1hdXRob3JpemVkLXdoaXRle2JhY2tncm91bmQtY29sb3I6I0ZGRkZGRiFpbXBvcnRhbnQ7fSAuc29jaWFsLW1lZGlhX19jb250YWluZXIgLmJnLW9nY29sb3ItZmFjZWJvb2t7YmFja2dyb3VuZC1jb2xvcjojM2E1OTk4IWltcG9ydGFudDt9IC5zb2NpYWwtbWVkaWFfX2NvbnRhaW5lciAuYmctb2djb2xvci10d2l0dGVye2JhY2tncm91bmQtY29sb3I6IzAwYWNlZCFpbXBvcnRhbnQ7fSAuc29jaWFsLW1lZGlhX19jb250YWluZXIgLmJnLW9nY29sb3IteC10d2l0dGVye2JhY2tncm91bmQtY29sb3I6IzE0MTcxQSFpbXBvcnRhbnQ7fSAuc29jaWFsLW1lZGlhX19jb250YWluZXIgLmJnLW9nY29sb3IteC10d2l0dGVyLXdoaXRle2JhY2tncm91bmQtY29sb3I6I0ZGRkZGRiFpbXBvcnRhbnQ7fSAuc29jaWFsLW1lZGlhX19jb250YWluZXIgLmJnLW9nY29sb3ItbGlua2VkaW57YmFja2dyb3VuZC1jb2xvcjojMDA3N0I1IWltcG9ydGFudDt9IC5zb2NpYWwtbWVkaWFfX2NvbnRhaW5lciAuYmctb2djb2xvci1ibG9nZ2Vye2JhY2tncm91bmQtY29sb3I6I0ZGNTcyMiFpbXBvcnRhbnQ7fSAuc29jaWFsLW1lZGlhX19jb250YWluZXIgLmJnLW9nY29sb3ItcGludGVyZXN0e2JhY2tncm91bmQtY29sb3I6I0U2MDAyMyFpbXBvcnRhbnQ7fSAuc29jaWFsLW1lZGlhX19jb250YWluZXIgLmJnLW9nY29sb3IteW91dHViZXtiYWNrZ3JvdW5kLWNvbG9yOiNGRjAwMDAhaW1wb3J0YW50O30gLnNvY2lhbC1tZWRpYV9fY29udGFpbmVyIC5iZy1vZ2NvbG9yLWluc3RhZ3JhbXtiYWNrZ3JvdW5kLWNvbG9yOiNmMjM5OTUhaW1wb3J0YW50O30gLnNvY2lhbC1tZWRpYV9fY29udGFpbmVyIC5iZy1vZ2NvbG9yLXRpa3Rva3tiYWNrZ3JvdW5kLWNvbG9yOiNmZjAwNTAhaW1wb3J0YW50O30gLnNvY2lhbC1tZWRpYV9fY29udGFpbmVyIC5iZy1jdXN0b21tZWRpYS1jb2xvcnBpY2tlcntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWFkbWluLXNvY2lhbC1jdXN0b20tY29sb3ItcGlja2VyLXRleHQpIWltcG9ydGFudDt9IC5zb2NpYWwtbWVkaWFfX2NvbnRhaW5lciAuYy1hdXRob3JpemVkLWJsYWNre2NvbG9yOiMyODI4MjghaW1wb3J0YW50O30gLnNvY2lhbC1tZWRpYV9fY29udGFpbmVyIC5jLWF1dGhvcml6ZWQtYmxhY2sta2lhe2NvbG9yOiMwNTE0MUYhaW1wb3J0YW50O30gLnNvY2lhbC1tZWRpYV9fY29udGFpbmVyIC5jLWF1dGhvcml6ZWQtcmVke2NvbG9yOiNGRjAwMDAhaW1wb3J0YW50O30gLnNvY2lhbC1tZWRpYV9fY29udGFpbmVyIC5jLWF1dGhvcml6ZWQtd2hpdGV7Y29sb3I6I0ZGRkZGRiFpbXBvcnRhbnQ7fSAuc29jaWFsLW1lZGlhX19jb250YWluZXIgLmMtb2djb2xvci1mYWNlYm9va3tjb2xvcjojM2E1OTk4IWltcG9ydGFudDt9IC5zb2NpYWwtbWVkaWFfX2NvbnRhaW5lciAuYy1vZ2NvbG9yLXR3aXR0ZXJ7Y29sb3I6IzAwYWNlZCFpbXBvcnRhbnQ7fSAuc29jaWFsLW1lZGlhX19jb250YWluZXIgLmMtb2djb2xvci14LXR3aXR0ZXJ7Y29sb3I6IzE0MTcxQSFpbXBvcnRhbnQ7fSAuc29jaWFsLW1lZGlhX19jb250YWluZXIgLmMtb2djb2xvci14LXR3aXR0ZXItd2hpdGV7Y29sb3I6I0ZGRkZGRiFpbXBvcnRhbnQ7fSAuc29jaWFsLW1lZGlhX19jb250YWluZXIgLmMtb2djb2xvci1saW5rZWRpbntjb2xvcjojMDA3N0I1IWltcG9ydGFudDt9IC5zb2NpYWwtbWVkaWFfX2NvbnRhaW5lciAuYy1vZ2NvbG9yLWJsb2dnZXJ7Y29sb3I6I0ZGNTcyMiFpbXBvcnRhbnQ7fSAuc29jaWFsLW1lZGlhX19jb250YWluZXIgLmMtb2djb2xvci1waW50ZXJlc3R7Y29sb3I6I0U2MDAyMyFpbXBvcnRhbnQ7fSAuc29jaWFsLW1lZGlhX19jb250YWluZXIgLmMtb2djb2xvci15b3V0dWJle2NvbG9yOiNGRjAwMDAhaW1wb3J0YW50OyBiYWNrZ3JvdW5kOnJhZGlhbC1ncmFkaWVudCgjRkZGRkZGIDUwJSx0cmFuc3BhcmVudCA1MCUpO30gLnNvY2lhbC1tZWRpYV9fY29udGFpbmVyIC5jLW9nY29sb3ItaW5zdGFncmFte2NvbG9yOiNmMjM5OTUhaW1wb3J0YW50O30gLnNvY2lhbC1tZWRpYV9fY29udGFpbmVyIC5jLW9nY29sb3ItdGlrdG9re2NvbG9yOiNmZjAwNTAhaW1wb3J0YW50O30gLnNvY2lhbC1tZWRpYV9fY29udGFpbmVyIC5jLWN1c3RvbW1lZGlhLWNvbG9ycGlja2Vye2NvbG9yOnZhcigtLWFkbWluLXNvY2lhbC1jdXN0b20tY29sb3ItcGlja2VyLXRleHQpIWltcG9ydGFudDt9IC5ub3RlLWJveHsgZGlzcGxheTpibG9jazsgYm9yZGVyLXJhZGl1czowLjI1cmVtOyB9IC5ub3RlLXN1Y2Nlc3N7IGNvbG9yOiMxNTU3MjQ7IGJhY2tncm91bmQtY29sb3I6I2Q0ZWRkYTsgYm9yZGVyLWNvbG9yOiMxNTU3MjQ7IGJvcmRlci13aWR0aDp2YXIoLS1ib3JkZXItdGhpbik7IH0gLm5vdGUtZXJyb3J7IGNvbG9yOiNmZmZmZmY7IGJhY2tncm91bmQtY29sb3I6I2ZmMDAwMDsgYm9yZGVyLWNvbG9yOiNmZjAwMDA7IGJvcmRlci13aWR0aDp2YXIoLS1ib3JkZXItdGhpbik7IH0gdWwuY2hlY2tsaXN0IGxpOmJlZm9yZXsgY29udGVudDoiIjsgYm9yZGVyLWxlZnQ6MC4ycmVtIHNvbGlkOyBib3JkZXItYm90dG9tOjAuMnJlbSBzb2xpZDsgd2lkdGg6MC43cmVtOyBoZWlnaHQ6MC40cmVtOyBkaXNwbGF5OmlubGluZS1ibG9jazsgdHJhbnNmb3JtOnJvdGF0ZSgtNDVkZWcpOyBtYXJnaW4tcmlnaHQ6MXJlbTsgfSB1bC5jaGVja2xpc3QgbGl7IG1hcmdpbi10b3A6dmFyKC0tc3BhY2UpOyBkaXNwbGF5OmZsZXg7IGFsaWduLWl0ZW1zOmNlbnRlcjsgfSAuaW52YWxpZCA+IDppcyhpbnB1dCxzZWxlY3QsdGV4dGFyZWEpeyBiYWNrZ3JvdW5kLWNvbG9yOiNmYWQ2ZGM7IH0gLi1iZy13aGl0ZXsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS13aGl0ZSk7IH0gLi1iZy1ncmF5eyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWdyYXkpOyBjb2xvcjp2YXIoLS13aGl0ZSk7IH0gLi1iZy1kYXJrLWdyYXl7IGJhY2tncm91bmQtY29sb3I6dmFyKC0tZGFyay1ncmF5KTsgY29sb3I6dmFyKC0td2hpdGUpOyB9IC4tYmctYmxhY2stZ3JheXsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1ibGFjay1ncmF5KTsgY29sb3I6dmFyKC0td2hpdGUpOyB9IC4tYmctYmxhY2t7IGJhY2tncm91bmQtY29sb3I6dmFyKC0tYmxhY2spOyBjb2xvcjp2YXIoLS13aGl0ZSk7IH0gLi1iZy1saWdodHsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1saWdodCk7IGNvbG9yOnZhcigtLWJsYWNrKTsgfSAuLWJnLWxpZ2h0LWdyYXl7IGJhY2tncm91bmQtY29sb3I6dmFyKC0tbGlnaHQtZ3JheSk7IGNvbG9yOnZhcigtLWJsYWNrKTsgfSAuLWJnLW5vbmV7YmFja2dyb3VuZDp0cmFuc3BhcmVudDt9IC4tcm91bmR7IGJvcmRlci1yYWRpdXM6MC4zcmVtOyB9IC5wdXNoLWRvd257IHBvc2l0aW9uOmFic29sdXRlOyBib3R0b206MHB4OyB9IC5wcmljZS1tYWlueyBjb2xvcjojZmYwMDAwOyB9IC5wcmljZS1zdHJpa2V7IGNvbG9yOiM5OTk7IHRleHQtZGVjb3JhdGlvbjpsaW5lLXRocm91Z2g7IH0gLmZvcm1hdC1wcmljZXsgcG9zaXRpb246cmVsYXRpdmU7IG1heC13aWR0aDpmaXQtY29udGVudDsgbWFyZ2luLXJpZ2h0OjAuN3JlbTsgbGluZS1oZWlnaHQ6MWVtOyB9IDppcyguRU5HTElTSCxbZGF0YS1sYW5nPSJlbiJdKSAuZm9ybWF0LXByaWNleyBtYXJnaW4tbGVmdDowLjZyZW07IG1hcmdpbi1yaWdodDp1bnNldDsgfSAuZm9ybWF0LXByaWNlOmFmdGVyeyBjb250ZW50OiIkIjsgZm9udC1zaXplOm1heCgwLjVyZW0sMC42ZW0pOyBwb3NpdGlvbjphYnNvbHV0ZTsgdG9wOnZhcigtLWZvcm1hdC1waWNlLXNpZ24tcG9zaXRpb24sMCk7IHJpZ2h0Oi0wLjZlbTsgbGluZS1oZWlnaHQ6aW5oZXJpdDsgfSAuZmluYWwtcHJpY2UgLmZvcm1hdC1wcmljZTphZnRlcnsgbWFyZ2luLXRvcDotNXB4OyB9IC5maW5hbC1wcmljZSAuZm9ybWF0LXByaWNleyBkaXNwbGF5OmlubGluZS1ibG9jazsgcGFkZGluZy1yaWdodDoycHg7IH0gOmlzKC5FTkdMSVNILFtkYXRhLWxhbmc9ImVuIl0pIC5mb3JtYXQtcHJpY2U6YWZ0ZXJ7IGxlZnQ6LTAuN2VtOyByaWdodDp1bnNldDsgfSAucHJpY2UtZW46YmVmb3JleyBjb250ZW50OiIkIjsgfSA6aXMoLnByaWNlLWVuKTpiZWZvcmV7IGZvbnQtc2l6ZTowLjZlbTsgcG9zaXRpb246cmVsYXRpdmU7IHRvcDotMC41ZW07IH0gLnByaWNlLWZyOmFmdGVyeyBjb250ZW50OiIgJCI7IH0gOmlzKC5wcmljZS1mcik6YWZ0ZXJ7IGZvbnQtc2l6ZTowLjZlbTsgcG9zaXRpb246cmVsYXRpdmU7IHRvcDotMC41ZW07IH0gLnNjcmF0Y2gtb3ZlciwgLnNjcmF0Y2gtbGVhc2V7IHBvc2l0aW9uOnJlbGF0aXZlOyB9IC5zY3JhdGNoLW92ZXI6YmVmb3JlLCAuc2NyYXRjaC1sZWFzZTpiZWZvcmV7IGJhY2tncm91bmQ6bm9uZSByZXBlYXQgc2Nyb2xsIDAgMCBibGFjazsgY29udGVudDoiICI7IGhlaWdodDoycHg7IHBvc2l0aW9uOmFic29sdXRlOyB0b3A6NDUlOyAtbW96LXRyYW5zZm9ybTpyb3RhdGUoN2RlZyk7IC13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSg3ZGVnKTsgdHJhbnNmb3JtOnJvdGF0ZSg3ZGVnKTsgd2lkdGg6OTAlOyB9IC5FTkdMSVNIIDppcyguc2NyYXRjaC1sZWFzZSwuc2NyYXRjaC1vdmVyKTpoYXMoLmZvcm1hdC1wcmljZSk6YmVmb3JleyBtYXJnaW4tbGVmdDowLjVyZW07IH0gLmJsdXItb3ZlciwgLmJsdXItbGVhc2UgeyAtd2Via2l0LWZpbHRlcjpibHVyKDAuMTVlbSk7IC1tb3otZmlsdGVyOmJsdXIoMC4xNWVtKTsgLW1zLWZpbHRlcjpibHVyKDAuMTVlbSk7IC1vLWZpbHRlcjpibHVyKDAuMTVlbSk7IGZpbHRlcjpibHVyKDAuMTVlbSk7IH0gLm91dC12aWV3eyBwb3NpdGlvbjpmaXhlZDsgdG9wOi0yMHB4OyBjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LDApOyB6LWluZGV4OjA7IH0gLnRvcC1maXhlZCB7IHBvc2l0aW9uOmZpeGVkOyB0b3A6My4ycmVtOyBsZWZ0OjA7IHotaW5kZXg6MTAwOyBhbGlnbi1pdGVtczpjZW50ZXI7IH0gLmZpeGVkLXdyYXBwZXIudG9wLWZpeGVkIHsgd2lkdGg6MTAwJTsgcGFkZGluZzp2YXIoLS1zKTsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1saWdodC1ncmF5KTsgYm9yZGVyLWJvdHRvbS13aWR0aDoxcHg7IGJvcmRlci1ib3R0b20tY29sb3I6IzAwMDsgYm94LXNpemluZzpib3JkZXItYm94OyBkaXNwbGF5OmZsZXg7IGp1c3RpZnktY29udGVudDpjZW50ZXI7IH0gLmZpeGVkLXdyYXBwZXIudG9wLWZpeGVkID4gLnByb21vQlROIHsgbWFyZ2luOjA7IHdpZHRoOjkwdnc7IGp1c3RpZnktY29udGVudDpjZW50ZXI7IH0gLmZpeGVkLXdyYXBwZXIudG9wLWZpeGVkIC5jdGEtbGFiZWx7IHRleHQtYWxpZ246Y2VudGVyOyB9IC5tYWluLWNvbG9yc3sgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS10YWItY29sb3IpOyBjb2xvcjp2YXIoLS10YWItdGV4dC1jb2xvcik7IH0gLnByb21vLWNvbG9yc3sgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS10YWItY29sb3IpOyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXByb21vLWNvbG9yKTsgY29sb3I6dmFyKC0tdGFiLXRleHQtY29sb3IpOyBjb2xvcjp2YXIoLS1wcm9tby10ZXh0LWNvbG9yKTsgfSAuYnRueyAtLWJ0bi1iZy1jb2w6dmFyKC0tdGFiLWNvbG9yKTsgLS1idG4tdHh0LWNvbDp2YXIoLS10YWItdGV4dC1jb2xvcik7IGJhY2tncm91bmQtY29sb3I6dmFyKC0tYnRuLWJnLWNvbCk7IGNvbG9yOnZhcigtLWJ0bi10eHQtY29sKTsgYm9yZGVyOjFweCBzb2xpZCB2YXIoLS1idG4tYnJkLWNvbCwgdmFyKC0tYnRuLXR4dC1jb2wpKTsgcGFkZGluZzowLjVyZW07IGZvbnQtd2VpZ2h0OmJvbGQ7IH0gLmJ0bi1kYXJrLWdyZXksIC5jYkRhcmtHcmV5eyAtLWJ0bi1iZy1jb2w6IzMzMzsgLS1idG4tdHh0LWNvbDojZmZmOyB9IFtyb2xlPSJidXR0b24iXXsgY3Vyc29yOnBvaW50ZXI7IH0gLmJ0bi1wcm9tb3sgLS10eHQtY29sb3I6dmFyKC0tcHJvbW8tdGV4dC1jb2xvciwgdmFyKC0tdGFiLXRleHQtY29sb3IpKTsgY29sb3I6dmFyKC0tdHh0LWNvbG9yKTsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS10YWItY29sb3IpOyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXByb21vLWNvbG9yKTsgYm9yZGVyOjFweCBzb2xpZCB2YXIoLS1wcm9tby10ZXh0LWNvbG9yKTsgcG9zaXRpb246cmVsYXRpdmU7IGFsaWduLWl0ZW1zOmNlbnRlcjsgYm9yZGVyOm5vbmU7IH0gLmJ0bi1jdGE6YWZ0ZXJ7IGNvbnRlbnQ6IlxmMDU0IjsgZm9udC1zdHlsZTpub3JtYWw7IHRleHQtZGVjb3JhdGlvbjppbmhlcml0OyBwb3NpdGlvbjphYnNvbHV0ZTsgcmlnaHQ6MXJlbTsgZm9udC1mYW1pbHk6J0ZvbnQgQXdlc29tZSA1IFBybyc7IGZvbnQtd2VpZ2h0OjkwMDsgfSAuYnRuLW1haW57IC0tYnRuLWJnLWNvbDp2YXIoLS10YWItY29sb3IpOyAtLWJ0bi10eHQtY29sOnZhcigtLXRhYi10ZXh0LWNvbG9yKTsgLS1idG4tYnJkLWNvbDp2YXIoLS10YWItdGV4dC1jb2xvciwgdmFyKC0tdGFiLXRleHQtY29sb3IpKTsgfSAuYnRuLW1haW4yLCAuYnRuLW1haW46aG92ZXJ7IGJhY2tncm91bmQtY29sb3I6dmFyKC0tbWVudS1ob3Zlci1iZy1jb2xvcik7IGJvcmRlcjoxcHggc29saWQgdmFyKC0tbWVudS1ob3Zlci10ZXh0LWNvbG9yKTsgY29sb3I6dmFyKC0tbWVudS1ob3Zlci10ZXh0LWNvbG9yKTsgfSAuYnRuLWJsYWNreyBiYWNrZ3JvdW5kLWNvbG9yOiMwMDA7IGNvbG9yOiNmZmY7IC0tdHh0LWNvbG9yOiNmZmY7IH0gLmJ0bi1saWdodHsgYmFja2dyb3VuZC1jb2xvcjojZmZmOyBib3JkZXI6MXB4IHNvbGlkICNhYWE7IGNvbG9yOiM4ODg7IH0gLmJ0bi1zdWNjZXNzeyAtLWJ0bi1iZy1jb2w6IzRjYWY1MDsgLS1idG4tdHh0LWNvbDojZmZmOyB9IC5idG4td2FybmluZ3sgLS1idG4tYmctY29sOiNmZjk4MDA7IC0tYnRuLXR4dC1jb2w6I2ZmZjsgfSAuYm50LWRpc2FibGVkLCAuYnRuW2Rpc2FibGVkXSB7IGNvbG9yOnZhcigtLWdyYXkpOyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWxpZ2h0LWdyYXkpOyBib3JkZXI6MXB4IHNvbGlkIHZhcigtLWdyYXkpOyB9IC5idG4tZW1haWwtbWUsIC5idG4tdGV4dC1tZXsgZGlzcGxheTpmbGV4OyBhbGlnbi1pdGVtczpjZW50ZXI7IGp1c3RpZnktY29udGVudDpjZW50ZXI7IH0gLmJ0bi1lbWFpbC1tZTpiZWZvcmV7IGNvbnRlbnQ6IlxmMGUwIjsgZm9udC13ZWlnaHQ6OTAwOyB9IC5idG4tdGV4dC1tZTpiZWZvcmV7IGNvbnRlbnQ6IlxmM2NkIjsgZm9udC1zaXplOngtbGFyZ2U7IGZvbnQtd2VpZ2h0OjkwMDsgfSAuYnRuLWVtYWlsLW1lOmJlZm9yZSwgLmJ0bi10ZXh0LW1lOmJlZm9yZXsgZm9udC1mYW1pbHk6J0ZvbnQgQXdlc29tZSA1IFBybyc7IG1hcmdpbi1yaWdodDo1cHg7IHBvc2l0aW9uOnJlbGF0aXZlOyB0b3A6LTFweDsgfSBidXR0b24ucm91bmQtYnV0dG9ueyBhbGw6aW5oZXJpdDsgYm9yZGVyLXJhZGl1czo1MCU7IGJhY2tncm91bmQtY29sb3I6dmFyKC0tdGFiLXRleHQtY29sb3IpOyBmaWxsOnZhcigtLXRhYi1jb2xvcik7IHBhZGRpbmc6MC4zcmVtOyBjdXJzb3I6cG9pbnRlcjsgfSBidXR0b24uaWNvbi1idXR0b257IGNvbG9yOnZhcigtLXByb21vLWJ0bi1jb2xvcik7IGJhY2tncm91bmQtY29sb3I6I2ZmZjsgYm9yZGVyOm5vbmU7IHBhZGRpbmc6MC41cmVtOyB3aWR0aDphdXRvOyB9IC54LWNsb3NleyBiYWNrZ3JvdW5kLWltYWdlOnVybCgiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIGFyaWEtaGlkZGVuPSd0cnVlJyBmb2N1c2FibGU9J2ZhbHNlJyB2aWV3Qm94PScwIDAgMTAgMTAnJTNFJTNDc3R5bGUlM0UudmVydCU3QmZpbGw6JTIzMDAwOyU3RCUzQy9zdHlsZSUzRSUzQ3JlY3QgY2xhc3M9J3ZlcnQnIGhlaWdodD0nOCcgd2lkdGg9JzInIHk9JzEnIHg9JzQnJTNFJTNDL3JlY3QlM0UlM0NyZWN0IGhlaWdodD0nMicgd2lkdGg9JzgnIHk9JzQnIHg9JzEnJTNFJTNDL3JlY3QlM0UlM0Mvc3ZnJTNFIik7IGJhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7IGJvcmRlcjpub25lOyB3aWR0aDoxLjVyZW07IGhlaWdodDoxLjVyZW07IHRyYW5zZm9ybTpyb3RhdGUoNDVkZWcpOyBjdXJzb3I6cG9pbnRlcjsgfSA6bm90KC5jb21wbGV0ZWQpLnJpcHBsZSB7IHBvc2l0aW9uOnJlbGF0aXZlOyBvdmVyZmxvdzpoaWRkZW47IHRyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLCAwLCAwKTsgfSA6bm90KC5jb21wbGV0ZWQpLnJpcHBsZTphZnRlciB7IGNvbnRlbnQ6IiI7IGRpc3BsYXk6YmxvY2s7IHBvc2l0aW9uOmFic29sdXRlOyB3aWR0aDoxMDAlOyBoZWlnaHQ6MTAwJTsgdG9wOjA7IGxlZnQ6MDsgcG9pbnRlci1ldmVudHM6bm9uZTsgYmFja2dyb3VuZC1pbWFnZTpyYWRpYWwtZ3JhZGllbnQoY2lyY2xlLCByZ2IoMCwgMCwgMCkgMTAlLCB0cmFuc3BhcmVudCAxMC4wMSUpOyBiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7IGJhY2tncm91bmQtcG9zaXRpb246NTAlOyB0cmFuc2Zvcm06c2NhbGUoMTAsMTApOyBvcGFjaXR5OjA7IHRyYW5zaXRpb246dHJhbnNmb3JtIC41cywgb3BhY2l0eSAxczsgfSA6bm90KC5jb21wbGV0ZWQpLnJpcHBsZTphY3RpdmU6YWZ0ZXIgeyB0cmFuc2Zvcm06c2NhbGUoMCwwKTsgb3BhY2l0eTouMjsgdHJhbnNpdGlvbjowczsgfSAubG9nb2FyZWEgeyBtaW4taGVpZ2h0OjdyZW07IGJvcmRlci1ib3R0b206MXB4IHNvbGlkICNlZWU7IGJhY2tncm91bmQtY29sb3I6dmFyKC0tYWRtaW4tZ2VuZXJhbC1oZWFkZXItYmctY29sb3IpOyB9IGEgPiA6d2hlcmUoOmlzKHN2ZywgLmZhLCAuZmFzKTpmaXJzdC1jaGlsZDpub3QoOm9ubHktY2hpbGQpKXsgbWFyZ2luLXJpZ2h0OjAuNnJlbTsgfSAucHJvbW9Ub3BCdG4gOmlzKGEsYnV0dG9uKSB7IC0tZnM6dmFyKC0tZnMxKTsgLS10eHQtY29sb3I6dmFyKC0tdG9wLXByb21vLWJ0bi10eHQsIHZhcigtLXRvcC1wcm9tby1idG4tdHh0LWNvbG9yKSk7IGJvcmRlci1yYWRpdXM6NHB4OyBib3JkZXItdG9wLXdpZHRoOjFweDsgYm9yZGVyLWJvdHRvbS13aWR0aDoxcHg7IGJvcmRlci1jb2xvcjojZjNmM2YzOyBoZWlnaHQ6My4ycmVtOyBmb250LXNpemU6dmFyKC0tZnMxKTsgZm9udC13ZWlnaHQ6Ym9sZDsgZGlzcGxheTpmbGV4OyBqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOyBhbGlnbi1pdGVtczpjZW50ZXI7IGJhY2tncm91bmQ6dmFyKC0tdG9wLXByb21vLWJ0bi1iZywgdmFyKC0tdG9wLXByb21vLWJ0bi1iZy1jb2xvcikpOyBjb2xvcjp2YXIoLS10b3AtcHJvbW8tYnRuLXR4dCwgdmFyKC0tdG9wLXByb21vLWJ0bi10eHQtY29sb3IpKTsgfSAucHJvbW9Ub3BCdG4uZGVhbGVyTGluZUJ1dHRvbiA6aXMoYSxidXR0b24peyAtLXR4dC1jb2xvcjp2YXIoLS1hZG1pbi1nZW5lcmFsLXRleHQtdXMtZGVhbGVyLWxpbmUtdGV4dC1jb2xvcik7IGJhY2tncm91bmQ6dmFyKC0tYWRtaW4tZ2VuZXJhbC10ZXh0LXVzLWRlYWxlci1saW5lLWJnLWNvbG9yKTsgY29sb3I6dmFyKC0tYWRtaW4tZ2VuZXJhbC10ZXh0LXVzLWRlYWxlci1saW5lLXRleHQtY29sb3IpOyBib3JkZXItY29sb3I6dmFyKC0tYWRtaW4tZ2VuZXJhbC10ZXh0LXVzLWRlYWxlci1saW5lLXRleHQtY29sb3IpOyB3aWR0aDoxMDAlOyB9IDppcygucHJvbW9Ub3BCdG4sbGFiZWwpLmZsb2F0aW5neyBwb3NpdGlvbjpmaXhlZDsgYm90dG9tOjEuNXJlbTsgcmlnaHQ6MS41cmVtOyB6LWluZGV4OjEwOyB9IC5wcm9tb1RvcEJ0bi5mbG9hdGluZy53aXRoVG9hc3RlciB7Ym90dG9tOjZyZW07fSAucHJvbW9Ub3BCdG4uZmxvYXRpbmcgOmlzKGEsYnV0dG9uKXsgLS1mczp2YXIoLS1mczUpOyBwYWRkaW5nOjFyZW07IGJvcmRlci1yYWRpdXM6NTAlOyBib3JkZXItd2lkdGg6MXB4OyBoZWlnaHQ6dW5zZXQ7IH0gLnByb21vVG9wQnRuLmZsb2F0aW5nIDppcyhhLGJ1dHRvbikgc3BhbiB7ZGlzcGxheTpub25lO30gLmljb24taGVhZGluZyBzcGFuLmZheyBmb250LXNpemU6aW5oZXJpdDsgd2lkdGg6MWVtOyBwYWRkaW5nOjAuMmVtOyBoZWlnaHQ6MWVtOyB0ZXh0LWFsaWduOmNlbnRlcjsgYm9yZGVyLXJhZGl1czo1MCU7IGJvcmRlcjoxcHggc29saWQgdmFyKC0tYmxhY2spOyBjb2xvcjp2YXIoLS13aGl0ZSk7IGJhY2tncm91bmQtY29sb3I6dmFyKC0tYmxhY2spOyBib3gtc2l6aW5nOmNvbnRlbnQtYm94OyB9IC5pY29uLWhlYWRpbmcgLnNlY29uZGFyeVRleHR7IGNvbG9yOiM3NTc1NzU7IGZvbnQtc2l6ZTowLjc1ZW07IH0gLmdyb3VwVGFicyA+ICp7IGN1cnNvcjpwb2ludGVyOyBmb250LXNpemU6Y2FsYygxLjJyZW0gKyAoMjAgLSAxOCkgKiAoKDEwMHZ3IC0gMzIwcHgpIC8gKDExMDAgLSAzMDApKSk7IH0gLmdyb3VwVGFicyA+ICo6aG92ZXJ7IGJhY2tncm91bmQtY29sb3I6I2VmZWZlZjsgfSAuZ3JvdXBUYWJzIC50YWItbGFiZWwsIC5uZXdDYXJTbGlkZXIgLmNhcm91c2VsVGl0bGV7IGNvbG9yOnZhcigtLW5ldy12ZWhpY2xlLWNhcm91c2VsLXR4dC1jb2xvciwgdmFyKC0tZGVmYXVsdC1ibGFjaykpOyB9IC5ncm91cFRhYnMgLmFjdGl2ZVRhYiAudGFiLWxhYmVseyBjb2xvcjp2YXIoLS1uZXctdmVoaWNsZS1jYXJvdXNlbC10eHQtY29sb3IsIHZhcigtLWRlZmF1bHQtYmxhY2spKTsgYm9yZGVyLWJvdHRvbTozcHggc29saWQ7IGJvcmRlci1ib3R0b20tY29sb3I6IzAwMDsgYm9yZGVyLWJvdHRvbS1jb2xvcjp2YXIoLS10YWItY29sb3IpOyB9IC5jYXJTbGlkZXJ7IGRpc3BsYXk6ZmxleDsganVzdGlmeS1jb250ZW50OmNlbnRlcjsgfSAuY2FyU2xpZGVyID4gKnsgd2lkdGg6bWluKDkwcmVtLDEwMCUpOyB9IC5jYXJTbGlkZXIuLWJnLWxpZ2h0LWdyYXkgPiAqeyBtYXgtd2lkdGg6bWluKDc1cmVtLDEwMCUpOyB9IC5uZXdDYXJDYXJkeyBoZWlnaHQ6MTAwJTsgbWluLWhlaWdodDoyN3JlbTsgYm9yZGVyOjFweCBzb2xpZCAjYmJiOyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IHBvc2l0aW9uOnJlbGF0aXZlOyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXdoaXRlKTsgfSAubmV3Q2FyQ2FyZCBpbWd7IHdpZHRoOjEwMCU7IG1hcmdpbi10b3A6LTFyZW07IHBvc2l0aW9uOnJlbGF0aXZlOyB9IC5jYXJQYXltZW50V3JhcHBlcnsgd2lkdGg6bWluKDEwMCUsMjVyZW0pOyBtaW4taGVpZ2h0OjVyZW07IH0gLmNhclBheW1lbnRXcmFwcGVyIC5wYXltZW50QmxvY2t7IGhlaWdodDoxMDAlOyB9IC5wYXltZW50c0Rpc2FibGVkIC5uZXdDYXJDYXJkeyBtaW4taGVpZ2h0OjIycmVtOyB9IC52ZWhpY2xlQ2Fyb3VzZWwgLm5ld0NhckNhcmR7IGJhY2tncm91bmQtY29sb3I6dmFyKC0td2hpdGUpOyB3aWR0aDoyMy43cmVtOyBib3JkZXI6MXB4IHNvbGlkICNiYmI7IG1hcmdpbjowIDAuNHJlbTsgaGVpZ2h0OjEwMCUgfSAubmV3Q2FyQ2FyZCAucHJvbW8tYmFkZ2V7IGhlaWdodDpmaXQtY29udGVudDsgbWluLXdpZHRoOjZyZW07IH0gLm5ld0NhckNhcmQ6aG92ZXJ7IGJveC1zaGFkb3c6MCAwIDEwcHggMnB4IHZhcigtLW1pZC1ncmF5KTsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1saWdodC1ncmF5KTsgfSAubmV3Q2FyQ2FyZDpob3ZlciAuaW5TdG9ja0xpbmsgeyBiYWNrZ3JvdW5kLWNvbG9yOiNmZmZmZmY7IH0gLm5ld0NhckNhcmQgLmNhcmQtYm9keXsgZGlzcGxheTpmbGV4OyBhbGlnbi1pdGVtczpjZW50ZXI7IGhlaWdodDoxMnJlbTsgb3ZlcmZsb3c6aGlkZGVuOyB9IC5uZXdDYXJDYXJkID4gLmJveC1sY3sgbWFyZ2luLXRvcDowOyBwYWRkaW5nLXRvcDowOyBwYWRkaW5nLWJvdHRvbTowOyB9IC5uZXdDYXJDYXJkID4gLmJveC1sYzpmaXJzdC1jaGlsZHsgcGFkZGluZy10b3A6MC41cmVtOyBtYXgtaGVpZ2h0OjEwcmVtOyB9IC5uZXdDYXJDYXJkIC5kZXNrdG9wUGF5bWVudHsgcG9zaXRpb246cmVsYXRpdmU7IH0gLm5ld0NhckNhcmQgc3Bhbi5wYXltZW50Q2FsY0J0bi5kZXNrdG9weyBwb3NpdGlvbjphYnNvbHV0ZTsgcmlnaHQ6NyU7IGZvbnQtc2l6ZToxLjdlbTsgY3Vyc29yOnBvaW50ZXI7IH0gLnVzZWRDYXJTbGlkZXsgZGlzcGxheTpibG9jazsgYm9yZGVyOjFweCBzb2xpZCAjYmJiOyBiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7IGhlaWdodDoxMDAlOyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IH0gLnVzZWRDYXJTbGlkZSAqeyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IH0gLnVzZWRDYXJTbGlkZSAuc2xpZGVDb250ZW50eyBoZWlnaHQ6MTAwJSB9IC5hbmltYXRlZC10cmlhbmdsZSB7IHBvc2l0aW9uOnJlbGF0aXZlOyBtYXJnaW4tcmlnaHQ6MTBweDsgfSAuYW5pbWF0ZWQtdHJpYW5nbGUgPiAuZmE6OmFmdGVyIHsgY29udGVudDoiXGYwNzEiOyB9IC5hbmltYXRlZC10cmlhbmdsZSBpeyBwb3NpdGlvbjpyZWxhdGl2ZTsgfSAuYW5pbWF0ZWQtdHJpYW5nbGUgPiBzdmcsIC5hbmltYXRlZC10cmlhbmdsZSA+IC5mYTo6YWZ0ZXIgeyBhbmltYXRpb246cmlwcGxlLTEgMXMgaW5maW5pdGUgZWFzZS1pbi1vdXQ7IGFuaW1hdGlvbi1kZWxheTowLjVzOyBhbmltYXRpb246cmlwcGxlLTIgMXMgaW5maW5pdGUgZWFzZS1pbi1vdXQ7IGFuaW1hdGlvbi1kZWxheTowLjc1czsgcG9zaXRpb246YWJzb2x1dGU7IH0gLmFuaW1hdGVkLXRyaWFuZ2xlID4gLmZhOjphZnRlcnsgdG9wOjA7IGxlZnQ6MDsgfSAuYW5pbWF0ZWQtdHJpYW5nbGUgPiBzdmd7IHRvcDoxcHg7IGxlZnQ6LTFyZW07IH0gQGtleWZyYW1lcyByaXBwbGUtMSB7IDAlIHsgdHJhbnNmb3JtOnNjYWxlKDEpOyBvcGFjaXR5OjE7IH0gMTAwJSB7IHRyYW5zZm9ybTpzY2FsZSgxLjcpOyBvcGFjaXR5OjA7IH0gfSBAa2V5ZnJhbWVzIHJpcHBsZS0yIHsgMCUgeyB0cmFuc2Zvcm06c2NhbGUoMSk7IG9wYWNpdHk6MTsgfSAxMDAlIHsgdHJhbnNmb3JtOnNjYWxlKDIpOyBvcGFjaXR5OjA7IH0gfSBzcGFuLmFzdGVyaXg6YWZ0ZXJ7IGNvbnRlbnQ6IioiOyBwb3NpdGlvbjpyZWxhdGl2ZTsgZm9udC1zaXplOjJyZW07IH0gZGl2LnByaWNlTm90ZS5hc3Rlcml4OmJlZm9yZXsgY29udGVudDoiKiI7IHBvc2l0aW9uOnJlbGF0aXZlOyBmb250LXNpemU6MXJlbTsgfSBmb290ZXIgeyAtd2Via2l0LWJveC1zaGFkb3c6aW5zZXQgMHB4IDEwcHggMTFweCAtMTFweCByZ2JhKDUwLCA1MCwgNTAsIDAuNzUpOyAtbW96LWJveC1zaGFkb3c6IGluc2V0IDBweCAxMHB4IDExcHggLTExcHggcmdiYSg1MCwgNTAsIDUwLCAwLjc1KTsgYm94LXNoYWRvdzogaW5zZXQgMHB4IDEwcHggMTFweCAtMTFweCByZ2JhKDUwLCA1MCwgNTAsIDAuNzUpOyAtLXR4dC1jb2xvcjp2YXIoLS1mb290ZXItaXRlbXMtbGluay1jb2xvcik7IGJhY2tncm91bmQtY29sb3I6dmFyKC0tZm9vdGVyLWJnLWNvbG9yKTsgY29sb3I6dmFyKC0tZm9vdGVyLWl0ZW1zLWxpbmstY29sb3IpOyB9IGEudmlzaXRDb250YWN0QnV0dG9ueyAtLXR4dC1jb2xvcjp2YXIoLS1wcm9tby1idG4tdGV4dC1jb2xvcik7IGJhY2tncm91bmQtY29sb3I6dmFyKC0tcHJvbW8tYnRuLWJnLWNvbG9yKTsgY29sb3I6dmFyKC0tcHJvbW8tYnRuLXRleHQtY29sb3IpOyB9IC5jRm9vdGVyQ2FyTGlua3MgbGkuY0l0ZW1FeHBlbmR7IGRpc3BsYXk6bm9uZTsgfSAuY0Zvb3RlckNhckxpbmtzIGgzLCAuZm9vdGVyX2FkZHJlc3MgLmFkciA+IHNwYW57IGNvbG9yOnZhcigtLWZvb3Rlci1saW5rLXRpdGxlLWNvbCk7IH0gLmNGb290ZXJDYXJMaW5rcyBzcGFuLmgzLWFsdCB7IGRpc3BsYXk6YmxvY2s7IGNvbG9yOnZhcigtLWZvb3Rlci1saW5rLXRpdGxlLWNvbCk7IH0gLmNGb290ZXJDYXJMaW5rcy5jTGlzdEV4cGVuZGVkIGxpLmNJdGVtRXhwZW5keyBkaXNwbGF5OmJsb2NrOyB9IC5jRXhwZW5kTGlzdCBidXR0b257IHBhZGRpbmc6dmFyKC0tcykgMDsgYmFja2dyb3VuZDpub25lOyB9IC5jb25kaXRpb25zRm9vdGVyIHsgY29sb3I6dmFyKC0tZm9vdGVyLWNvbmRpdGlvbnMtY29sb3IsICM5MTkxOTEpOyAtLXR4dC1jb2xvcjp2YXIoLS1mb290ZXItY29uZGl0aW9ucy1jb2xvcik7IH0gLnRyYWRlSW5CYXJNb2JpbGVCdXR0b24geyBwb3NpdGlvbjpmaXhlZDsgYm90dG9tOjEwcHg7IG1hcmdpbjo1cHggNXB4IDE1cHggMTVweDsgei1pbmRleDo0OyB3aWR0aDoxNDBweCAhaW1wb3J0YW50OyBib3JkZXItd2lkdGg6MXB4OyBiYWNrZ3JvdW5kLWNvbG9yOiNlYTAwMjk7IHRleHQtYWxpZ246bGVmdDsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS10cmFkZWluYmFyLWJ0bi1iZyk7IGNvbG9yOiB2YXIoLS10cmFkZWluYmFyLWJ0bi1jb2xvcik7IGFsaWduLWl0ZW1zOmNlbnRlcjsgYm9yZGVyLXJhZGl1czo4cHg7IGJvcmRlci13aWR0aDoxcHggM3B4IDRweCAxcHg7IGJvcmRlci1jb2xvcjojMzMzMzMzOyBwYWRkaW5nLXRvcDoxMHB4OyB9IC50cmFkZUluQmFyTW9iaWxlQnV0dG9uIGl7IGRpc3BsYXk6aW5saW5lLWZsZXg7IGJvcmRlci1yYWRpdXM6MTAwJTsgd2lkdGg6MmVtOyBhbGlnbi1pdGVtczpjZW50ZXI7IGp1c3RpZnktY29udGVudDpjZW50ZXI7IGJvcmRlcjoycHggc29saWQgI2ZmZjsgYmFja2dyb3VuZC1jb2xvcjojZmZmOyBoZWlnaHQ6MS41ZW07IGNvbG9yOiMwMDA7IGZsb2F0OmxlZnQ7IH0gLnRyYWRlSW5CYXJNb2JpbGVCdXR0b24ud2l0aFRvYXN0ZXIgeyBib3R0b206NXJlbTsgfSAjdHJhZGVJbkJhclBvcHVwX2xpbmUxeyBiYWNrZ3JvdW5kLWNvbG9yOiNmMWYxZjE7IGJvcmRlcjoxcHggc29saWQgZ3JleTsgcGFkZGluZzoyMHB4IDQwcHg7IGZvbnQtc2l6ZToxLjEyNXJlbSA7IHRleHQtYWxpZ246Y2VudGVyOyB9IC5idG4udHJhZGVJbkJhclBvcHVwU3VibWl0eyBwYWRkaW5nOjAuNzVyZW0gMC4zNzVyZW07IGJvcmRlci13aWR0aDoxcHg7IGJvcmRlci1jb2xvcjojMDAwOyBmb250LXdlaWdodDpib2xkOyBib3JkZXItcmFkaXVzOjNweDsgYm9yZGVyOjFweCBzb2xpZCAjMDAwOyB9ICN0cmFkZUluQmFyUG9wdXBfZm9ybVcgaW5wdXR7IG1hcmdpbjo1cHggMCAwOyB9ICN0cmFkZUluQmFyUG9wdXBfZm9ybVd7IGhlaWdodDo1ODBweDsgYmFja2dyb3VuZC1jb2xvcjojZmZmOyBjb2xvcjp2YXIoLS1kZWZhdWx0LWJsYWNrLXRleHQpOyBwYWRkaW5nOjE1cHg7IHBvc2l0aW9uOnJlbGF0aXZlOyB9ICN0cmFkZUluQmFyUG9wdXBfZm9ybVcgaW5wdXR7IHBhZGRpbmc6MTFweCAxMHB4OyBmb250LXNpemU6MC45MzhyZW0gOyB3aWR0aDoyNTBweDsgbWFyZ2luOjVweCAwIDA7IGJvcmRlcjoxcHggc29saWQgI2E5YTlhOSFpbXBvcnRhbnQ7IH0gI3RyYWRlSW5CYXJQb3B1cF9mb3JtVyAudHJhZGluU2VsZWN0UG9wdXB7IGNvbG9yOiMzYzM4MzY7IGZvbnQtc2l6ZToxcmVtOyBiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsMSk7IGJhY2tncm91bmQtcG9zaXRpb246OTUlIDUwJTsgYXBwZWFyYW5jZTpub25lOyAtd2Via2l0LWFwcGVhcmFuY2U6bm9uZTsgLW1vei1hcHBlYXJhbmNlOm5vbmU7IG1hcmdpbjo1cHggMCAwOyB9ICN0cmFkZUluQmFyUG9wdXBfZm9ybVcgOjpwbGFjZWhvbGRlciB7IGNvbG9yOiNhOWE5YTk7IG9wYWNpdHk6MTsgfSAjdHJhZGVJbkJhclBvcHVwX2Zvcm1XIDotbXMtaW5wdXQtcGxhY2Vob2xkZXIgeyBjb2xvcjojYTlhOWE5OyB9ICN0cmFkZUluQmFyUG9wdXBfZm9ybVcgOjotbXMtaW5wdXQtcGxhY2Vob2xkZXIgeyBjb2xvcjojYTlhOWE5OyB9IC50cmFkaW5TZWxlY3QsIC50cmFkaW5TZWxlY3RQb3B1cCB7IGNvbG9yOiMzYzM4MzY7IGZvbnQtc2l6ZToxcmVtOyBtYXJnaW46NXB4IDAgMDsgYXBwZWFyYW5jZTpub25lOyAtd2Via2l0LWFwcGVhcmFuY2U6bm9uZTsgLW1vei1hcHBlYXJhbmNlOm5vbmU7IH0gLnRyYWRpblNlbGVjdEEgeyBwb3NpdGlvbjpyZWxhdGl2ZTsgfSAudHJhZGluU2VsZWN0QTphZnRlciB7IGNvbnRlbnQ6IiAiOyBoZWlnaHQ6MDsgd2lkdGg6MDsgYm9yZGVyLWxlZnQ6NXB4IHNvbGlkIHRyYW5zcGFyZW50OyBib3JkZXItcmlnaHQ6NXB4IHNvbGlkIHRyYW5zcGFyZW50OyBib3JkZXItdG9wOjVweCBzb2xpZCAjMDAwMDAwOyBwb3NpdGlvbjphYnNvbHV0ZTsgcmlnaHQ6MTRweDsgdG9wOjE3cHg7IHRyYW5zaXRpb246YWxsIDAuM3MgbGluZWFyOyBwb2ludGVyLWV2ZW50czpub25lOyB9IC5lbWFpbEJvZHksIC5lbWFpbFN1YmplY3R7IGRpc3BsYXk6bm9uZTsgfSAucmV2ZWFsLW1vZGFsOm5vdCgjcGF5bWVudENhbGN1bGF0b3JQb3B1cENvbnRhaW5lcikgKjpub3QoLmZpbmFuY2VNdWx0aXN0ZXBOZXdDYWxjdWxhdG9yIDppcyhpbnB1dCwgc2VsZWN0KSl7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgfSAucmV2ZWFsLW1vZGFsOm5vdCgjcGF5bWVudENhbGN1bGF0b3JQb3B1cENvbnRhaW5lcikgOmlzKGlucHV0W3R5cGU9InRleHQiXTpub3QoLmZpbmFuY2VNdWx0aXN0ZXBVc2VkQ2FsY3VsYXRvciAuY2FsYy1mb3JtIGlucHV0KSxpbnB1dFt0eXBlPSJlbWFpbCJdLGlucHV0W3R5cGU9InRlbCJdLHNlbGVjdDpub3QoLnBheW1lbnRDYWxjdWxhdG9ySW50ZXJ2YWwsLnBheW1lbnRDYWxjdWxhdG9yS21BbGxvd2FuY2UsLmZpbmFuY2VNdWx0aXN0ZXBVc2VkQ2FsY3VsYXRvciAuY2FsYy1mb3JtIHNlbGVjdCwgc2VsZWN0LnN0ZXAyNHNlbGVjdCkpeyBwYWRkaW5nOjAuNHJlbTsgYm9yZGVyLXdpZHRoOjFweDsgYm9yZGVyLXJhZGl1czowLjNyZW07IHdpZHRoOjEwMCU7IGJvcmRlci1jb2xvcjojYTlhOWE5OyB9IFtkYXRhLXBhZ2U9IkhPTUVQQUdFIl17IGJhY2tncm91bmQtY29sb3I6dmFyKC0taG9tZS1iZy1jb2xvciwgI0ZGRkZGRik7IH0gLnl0LWJnLWNvbnRhaW5lcnsgcG9zaXRpb246cmVsYXRpdmU7IG92ZXJmbG93OmhpZGRlbjsgfSAuYmFubmVyLWJnLWNvbnRhaW5lcnsgYmFja2dyb3VuZC1zaXplOmNvdmVyOyBiYWNrZ3JvdW5kLXBvc2l0aW9uOmNlbnRlciBjZW50ZXI7IGJhY2tncm91bmQtYmxlbmQtbW9kZTpjb2xvcjsgfSAjeW91dHViZV9fY29udGFpbmVyeyBwb3NpdGlvbjpyZWxhdGl2ZTsgd2lkdGg6MTAwJTsgaGVpZ2h0OjA7IG92ZXJmbG93OmhpZGRlbjsgcGFkZGluZy1ib3R0b206bWluKGNhbGMoMTAwdmggLSB2YXIoLS1oZWFkZXItaGVpZ2h0LDEwcmVtKSksNjd2dyk7IGJhY2tncm91bmQtY29sb3I6Izg4ODsgfSAjaG9tZXBhZ2VfeW91dHViZV9wbGF5ZXJ7IHBvc2l0aW9uOmFic29sdXRlOyB0b3A6LTQ1JTsgbGVmdDotMTAlOyBoZWlnaHQ6MTkwJTsgd2lkdGg6MTIwJTsgcG9pbnRlci1ldmVudHM6bm9uZTsgfSAjeW91dHViZV9fY29udGFpbmVyOmlzKC5mdWxsSGVpZ2h0LC52aXNpYmxlSGVpZ2h0KXsgcGFkZGluZy1ib3R0b206Y2FsYygxMDB2aCAtIHZhcigtLWhlYWRlci1oZWlnaHQsMTByZW0pKTsgfSA6aXMoLmZ1bGxIZWlnaHQsLnZpc2libGVIZWlnaHQpICNob21lcGFnZV95b3V0dWJlX3BsYXllcnsgaGVpZ2h0OjEwMCU7IHRvcDowOyB9ICN5b3V0dWJlX19jb250YWluZXIuZnVsbFdpZHRoeyBwYWRkaW5nLWJvdHRvbTo1Ni4yNSU7IH0gI21vYmlsZVNsaWRlciAjeW91dHViZV9fY29udGFpbmVyeyBwYWRkaW5nLWJvdHRvbTptYXgoNjd2dywyNHJlbSk7IH0gI21vYmlsZVNsaWRlciAjeW91dHViZV9fY29udGFpbmVyICNiYW5uZXJfc2VhcmNoX2Jhcl9jb250YWluZXJ7IGhlaWdodDptYXgoNjd2dywyNHJlbSk7IG1pbi1oZWlnaHQ6MThyZW07IHotaW5kZXg6MTsgfSAuZnVsbFdpZHRoICNob21lcGFnZV95b3V0dWJlX3BsYXllcnsgaGVpZ2h0OjEyMCU7IHRvcDotMTAlOyB9IC55dC12aWRlb3sgYmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0OyBiYWNrZ3JvdW5kLXBvc2l0aW9uOmNlbnRlcjsgYmFja2dyb3VuZC1zaXplOmNvdmVyOyB9IC55dC1wbGF5eyBiYWNrZ3JvdW5kLWltYWdlOnVybCgnZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA1NzYgNTEyIj48IS0tIEZvbnQgQXdlc29tZSBGcmVlIDUuMTUuMSBieSBAZm9udGF3ZXNvbWUgLSBodHRwczovL2ZvbnRhd2Vzb21lLmNvbSBMaWNlbnNlIC0gaHR0cHM6Ly9mb250YXdlc29tZS5jb20vbGljZW5zZS9mcmVlIChJY29uczpDQyBCWSA0LjAsIEZvbnRzOlNJTCBPRkwgMS4xLCBDb2RlOk1JVCBMaWNlbnNlKSAtLT48cGF0aCBkPSJNNTQ5LjY1NSAxMjQuMDgzYy02LjI4MS0yMy42NS0yNC43ODctNDIuMjc2LTQ4LjI4NC00OC41OTdDNDU4Ljc4MSA2NCAyODggNjQgMjg4IDY0UzExNy4yMiA2NCA3NC42MjkgNzUuNDg2Yy0yMy40OTcgNi4zMjItNDIuMDAzIDI0Ljk0Ny00OC4yODQgNDguNTk3LTExLjQxMiA0Mi44NjctMTEuNDEyIDEzMi4zMDUtMTEuNDEyIDEzMi4zMDVzMCA4OS40MzggMTEuNDEyIDEzMi4zMDVjNi4yODEgMjMuNjUgMjQuNzg3IDQxLjUgNDguMjg0IDQ3LjgyMUMxMTcuMjIgNDQ4IDI4OCA0NDggMjg4IDQ0OHMxNzAuNzggMCAyMTMuMzcxLTExLjQ4NmMyMy40OTctNi4zMjEgNDIuMDAzLTI0LjE3MSA0OC4yODQtNDcuODIxIDExLjQxMi00Mi44NjcgMTEuNDEyLTEzMi4zMDUgMTEuNDEyLTEzMi4zMDVzMC04OS40MzgtMTEuNDEyLTEzMi4zMDV6bS0zMTcuNTEgMjEzLjUwOFYxNzUuMTg1bDE0Mi43MzkgODEuMjA1LTE0Mi43MzkgODEuMjAxeiIgZmlsbD0iJTIzYzMzYzJkIiAvJTNFJTNDL3N2ZyUzRScpOyB3aWR0aDo1cmVtOyBoZWlnaHQ6NXJlbTsgYmFja2dyb3VuZC1zaXplOmNvbnRhaW47IGJhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDsgYmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDsgb3BhY2l0eTowLjc7IH0gLmVtYmVkLWNvbnRhaW5lci15b3V0dWJlIHsgcG9zaXRpb246cmVsYXRpdmU7IGhlaWdodDpjYWxjKDEwMHZ3IC8gKDE2IC8gOSkpOyBvdmVyZmxvdzpoaWRkZW47IG1heC13aWR0aDoxMDAlOyBiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7IGJhY2tncm91bmQtcG9zaXRpb246Y2VudGVyOyBiYWNrZ3JvdW5kLXNpemU6Y292ZXI7IH0gLm1vYmlsZV9idXNpbmVzc0Rlc2MgeyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWJ1c2luZXNzLWRlc2MtYmctY29sb3JfbW9iLCB2YXIoLS1mb290ZXItYmctY29sb3IpKTsgY29sb3I6dmFyKC0tYnVzaW5lc3MtZGVzYy10eHQtY29sb3JfbW9iLCB2YXIoLS1mb290ZXItbGluay10aXRsZS1jb2wpKTsgfSAuYnVzaW5lc3NEZXNjIHsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1idXNpbmVzcy1kZXNjLWJnLWNvbG9yX21vYiwgdmFyKC0tZm9vdGVyLWJnLWNvbG9yKSk7IGNvbG9yOnZhcigtLWJ1c2luZXNzLWRlc2MtdHh0LWNvbG9yX21vYiwgdmFyKC0tZm9vdGVyLWxpbmstdGl0bGUtY29sKSk7IH0gLmJ1c2luZXNzRGVzYyAqIHsgbGluZS1oZWlnaHQ6MS41cmVtOyB9IC53cmFwcGVyIHsgbWFyZ2luOjAgYXV0bzsgd2lkdGg6OTYwcHg7IHBvc2l0aW9uOnJlbGF0aXZlOyB9IC5sYW5ndWFnZUJhciB7IG1hcmdpbjoxcmVtIGF1dG8gNXB4OyBoZWlnaHQ6MjhweDsgcGFkZGluZzowIHZhcigtLXMpOyB9IC52LWNhcmQudG9wX2JnIHsgZGlzcGxheTpmbGV4OyBqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjsgYWxpZ24taXRlbXM6Y2VudGVyOyBtYXJnaW4tdG9wOjEwcHg7IG1pbi1oZWlnaHQ6OHJlbTsgcGFkZGluZzowIHZhcigtLXMpOyB9IC5oZWFkZXItc2VjdGlvbiB7IGRpc3BsYXk6ZmxleDsgdmVydGljYWwtYWxpZ246bWlkZGxlOyBhbGlnbi1jb250ZW50OnNwYWNlLWJldHdlZW47IGFsaWduLWl0ZW1zOmNlbnRlcjsgfSAjdHJhZGVJbkJhck1vYmlsZXsgYmFja2dyb3VuZC1jb2xvcjpibGFjazsgY29sb3I6IHdoaXRlOyBib3JkZXItcmFkaXVzOjVweDsgZGlzcGxheTpibG9jazsgbWFyZ2luOjNweCA1cHggNXB4IDVweDsgfSAjdHJhZGVJbkJhck1vYmlsZSAubWlkZGxleyBjb2xvcjojZmZmZmZmOyB9ICN0cmFkZUluQmFyTW9iaWxlICNkZWZhdWx0VG9wQmFubmVyVGl0bGV7IHBhZGRpbmc6NXB4IDIwcHggMHB4IDIwcHg7IH0gI3RyYWRlSW5CYXJNb2JpbGUgLmRlZmF1bHRUb3BCYW5uZXJCdG5XcmFwcGVyIGRpdnsgbWF4LXdpZHRoOjMzMHB4OyBtYXJnaW46MTBweCBhdXRvOyBwYWRkaW5nOjEycHggMDsgYm9yZGVyLXJhZGl1czoycHg7IGJhY2tncm91bmQtY29sb3I6dmFyKC0tcHJvbW8tYnRuLWJnLWNvbG9yKTsgfSAjdHJhZGVJbkJhck1vYmlsZSAuZGVmYXVsdFRvcEJhbm5lckJ0bldyYXBwZXIgYXsgdGV4dC1hbGlnbjpjZW50ZXI7IG1hcmdpbjowIGF1dG87IGZvbnQtd2VpZ2h0OjcwMDsgfSAjdHJhZGVJbkJhck1vYmlsZSAjZGVmYXVsdFRvcEJhbm5lckxvZ28gc3BhbnsgZm9udC1zaXplOjAuOHJlbTsgZm9udC13ZWlnaHQ6MzAwOyBjb2xvcjp2YXIoLS1taWQtZ3JheSk7IH0gI3RyYWRlSW5CYXJ7IGJhY2tncm91bmQtY29sb3I6dmFyKC0tdHJhZGVpbmJhci1iZyk7IGNvbG9yOiB2YXIoLS10cmFkZWluYmFyLWNvbG9yKTsgfSAjdHJhZGVJbkJhcldNb2JpbGUsICN0cmFkZUluQmFyVyB7IGRpc3BsYXk6ZmxleDsgbWluLWhlaWdodDo1MHB4OyBtYXJnaW46YXV0bzsgd2lkdGg6bWluKDEwMCUsMTM1MHB4KTsgcG9zaXRpb246cmVsYXRpdmU7IGp1c3RpZnktY29udGVudDpjZW50ZXI7IH0gLmxhbmd1YWdlQmFyIC5zZXJ2aWNlLWhlYWRlci1mb3JtID4gYXsgcGFkZGluZzo0cHggMTJweDsgaGVpZ2h0OjE4cHg7IGxpbmUtaGVpZ2h0OjE4cHg7IGJvcmRlci1yYWRpdXM6MDsgZm9udC13ZWlnaHQ6bm9ybWFsOyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWhlYWRlci1zZXJ2aWNlLWFwcG9pbnRtZW50LXRleHQtY29sb3ItYmcsIHZhcigtLWxhbmd1YWdlLWJ0bi1hY3RpdmUtYmctY29sb3IpKTsgY29sb3I6dmFyKC0taGVhZGVyLXNlcnZpY2UtYXBwb2ludG1lbnQtdGV4dC1jb2xvciwgd2hpdGUgKTsgfSAubGFuZ3VhZ2VCYXIgLnNlcnZpY2UtaGVhZGVyLWZvcm0gYTpob3ZlciB7IGJvcmRlci1jb2xvcjp2YXIoLS1oZWFkZXItc2VydmljZS1hcHBvaW50bWVudC10ZXh0LWNvbG9yLWJnLCB2YXIoLS1sYW5ndWFnZS1idG4tYWN0aXZlLWJnLWNvbG9yKSk7IH0gI2FsZXJ0TXNnQ29udGFpbmVyeyBwb3NpdGlvbjpyZWxhdGl2ZTsgYmFja2dyb3VuZC1jb2xvcjojMDAwOyB6LWluZGV4Ojk5OTsgd2lkdGg6MTAwJTsgY29sb3I6d2hpdGU7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgY29sb3I6dmFyKC0tYWRtaW4tZ2VuZXJhbC1hbGVydC1iYXItdGV4dC1jb2xvcik7IGZvbnQtd2VpZ2h0OjYwMDsgfSAjYWxlcnRNc2dDb250YWluZXIuc3RpY2stdG9weyBwb3NpdGlvbjpzdGlja3k7IHRvcDowOyB6LWluZGV4Ojk5OTk5OyB9IC5mYS1maXgtY2VudGVyOmJlZm9yZSB7IHdpZHRoOjEuNWVtOyBoZWlnaHQ6MS41ZW07IGp1c3RpZnktY29udGVudDpjZW50ZXI7IGFsaWduLWl0ZW1zOmNlbnRlcjsgZGlzcGxheTpmbGV4OyB9ICN5b3V0dWJlX19jb250YWluZXIuZnVsbHNjcmVlbnsgb2JqZWN0LWZpdDpjb3ZlcjsgcG9zaXRpb246cmVsYXRpdmU7IGxlZnQ6MDsgcmlnaHQ6MDsgdG9wOjA7IG9wYWNpdHk6MC44OyB9IC5tYWluRGl2QWRqdXN0SGVhZGVyIHsgcG9zaXRpb246YWJzb2x1dGU7IGJhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7IHRyYW5zaXRpb246YmFja2dyb3VuZC1jb2xvciAuM3MsIGJvcmRlciAuM3M7IHRvcDowOyBsZWZ0OjA7IHJpZ2h0OjA7IGJvdHRvbTowOyB9IC5tYWluRGl2QWRqdXN0SGVhZGVyLndpdGgtYWxlcnQgeyB0b3A6NDBweDsgfSAucGF5bWVudEJsb2NrQ29udGFpbmVyIHsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jZXJ0LWNvbmNyZXRlLWdyYXksIHZhcigtLWxpZ2h0LWdyYXkpKTsgY29sb3I6dmFyKC0tZGFyay1ncmF5KTsgfSAudmVoaWNsZUxvY2F0aW9ueyBib3JkZXItdG9wOjFweCBzb2xpZCAjZGRkOyB0ZXh0LWFsaWduOmNlbnRlcjsgfSAubGluZVNlcGFyYXRvcnsgYm9yZGVyLXRvcDoxcHggc29saWQgI0E5QTlBOTsgbWFyZ2luLXRvcDo0MHB4OyBtYXJnaW4tYm90dG9tOjQwcHg7IH0gLnJldmVhbC1tb2RhbCBzcGFuLmZhLWhhbmQtcG9pbnRlci1jb2xvciB7IGNvbG9yOiNmZmZmZmY7IG1hcmdpbi1yaWdodDo1cHg7IG1hcmdpbi10b3A6NXB4OyB9IC5jb25mbGljdC1yZXNvbHZlLW9wdGlvbnMgeyBmb250LXNpemU6MC44MTNyZW0gOyB9Ci8qKiAvY3NzL2ZvbnRhd2Vzb21lLWFsbC5taW4uY3NzICoqLwouZmEsLmZhcywuZmFyLC5mYWwsLmZhZCwuZmFiey1tb3otb3N4LWZvbnQtc21vb3RoaW5nOmdyYXlzY2FsZTstd2Via2l0LWZvbnQtc21vb3RoaW5nOmFudGlhbGlhc2VkO2Rpc3BsYXk6aW5saW5lLWJsb2NrO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtdmFyaWFudDpub3JtYWw7dGV4dC1yZW5kZXJpbmc6YXV0bztsaW5lLWhlaWdodDoxfS5mYS1sZ3tmb250LXNpemU6MS4zMzMzM2VtO2xpbmUtaGVpZ2h0Oi43NWVtO3ZlcnRpY2FsLWFsaWduOi0uMDY2N2VtfS5mYS14c3tmb250LXNpemU6Ljc1ZW19LmZhLXNte2ZvbnQtc2l6ZTouODc1ZW19LmZhLTF4e2ZvbnQtc2l6ZToxZW19LmZhLTJ4e2ZvbnQtc2l6ZToyZW19LmZhLTN4e2ZvbnQtc2l6ZTozZW19LmZhLTR4e2ZvbnQtc2l6ZTo0ZW19LmZhLTV4e2ZvbnQtc2l6ZTo1ZW19LmZhLTZ4e2ZvbnQtc2l6ZTo2ZW19LmZhLTd4e2ZvbnQtc2l6ZTo3ZW19LmZhLTh4e2ZvbnQtc2l6ZTo4ZW19LmZhLTl4e2ZvbnQtc2l6ZTo5ZW19LmZhLTEweHtmb250LXNpemU6MTBlbX0uZmEtZnd7dGV4dC1hbGlnbjpjZW50ZXI7d2lkdGg6MS4yNWVtfS5mYS11bHtsaXN0LXN0eWxlLXR5cGU6bm9uZTttYXJnaW4tbGVmdDoyLjVlbTtwYWRkaW5nLWxlZnQ6MH0uZmEtdWwgPiBsaXtwb3NpdGlvbjpyZWxhdGl2ZX0uZmEtbGl7bGVmdDotMmVtO3Bvc2l0aW9uOmFic29sdXRlO3RleHQtYWxpZ246Y2VudGVyO3dpZHRoOjJlbTtsaW5lLWhlaWdodDppbmhlcml0fS5mYS1ib3JkZXJ7Ym9yZGVyOnNvbGlkIC4wOGVtICNlZWU7Ym9yZGVyLXJhZGl1czouMWVtO3BhZGRpbmc6LjJlbSAuMjVlbSAuMTVlbX0uZmEtcHVsbC1sZWZ0e2Zsb2F0OmxlZnR9LmZhLXB1bGwtcmlnaHR7ZmxvYXQ6cmlnaHR9LmZhLmZhLXB1bGwtbGVmdCwuZmFzLmZhLXB1bGwtbGVmdCwuZmFyLmZhLXB1bGwtbGVmdCwuZmFsLmZhLXB1bGwtbGVmdCwuZmFiLmZhLXB1bGwtbGVmdHttYXJnaW4tcmlnaHQ6LjNlbX0uZmEuZmEtcHVsbC1yaWdodCwuZmFzLmZhLXB1bGwtcmlnaHQsLmZhci5mYS1wdWxsLXJpZ2h0LC5mYWwuZmEtcHVsbC1yaWdodCwuZmFiLmZhLXB1bGwtcmlnaHR7bWFyZ2luLWxlZnQ6LjNlbX0uZmEtc3Bpbnstd2Via2l0LWFuaW1hdGlvbjpmYS1zcGluIDJzIGluZmluaXRlIGxpbmVhcjthbmltYXRpb246ZmEtc3BpbiAycyBpbmZpbml0ZSBsaW5lYXJ9LmZhLXB1bHNley13ZWJraXQtYW5pbWF0aW9uOmZhLXNwaW4gMXMgaW5maW5pdGUgc3RlcHMoOCk7YW5pbWF0aW9uOmZhLXNwaW4gMXMgaW5maW5pdGUgc3RlcHMoOCl9QC13ZWJraXQta2V5ZnJhbWVzIGZhLXNwaW57MCV7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDBkZWcpO3RyYW5zZm9ybTpyb3RhdGUoMGRlZyl9MTAwJXstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMzYwZGVnKTt0cmFuc2Zvcm06cm90YXRlKDM2MGRlZyl9fUBrZXlmcmFtZXMgZmEtc3BpbnswJXstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMGRlZyk7dHJhbnNmb3JtOnJvdGF0ZSgwZGVnKX0xMDAley13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgzNjBkZWcpO3RyYW5zZm9ybTpyb3RhdGUoMzYwZGVnKX19LmZhLXJvdGF0ZS05MHstbXMtZmlsdGVyOnByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5CYXNpY0ltYWdlKHJvdGF0aW9uPTEpOy13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSg5MGRlZyk7dHJhbnNmb3JtOnJvdGF0ZSg5MGRlZyl9LmZhLXJvdGF0ZS0xODB7LW1zLWZpbHRlcjpwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuQmFzaWNJbWFnZShyb3RhdGlvbj0yKTstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMTgwZGVnKTt0cmFuc2Zvcm06cm90YXRlKDE4MGRlZyl9LmZhLXJvdGF0ZS0yNzB7LW1zLWZpbHRlcjpwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuQmFzaWNJbWFnZShyb3RhdGlvbj0zKTstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMjcwZGVnKTt0cmFuc2Zvcm06cm90YXRlKDI3MGRlZyl9LmZhLWZsaXAtaG9yaXpvbnRhbHstbXMtZmlsdGVyOiJwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuQmFzaWNJbWFnZShyb3RhdGlvbj0wLG1pcnJvcj0xKSI7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoLTEsMSk7dHJhbnNmb3JtOnNjYWxlKC0xLDEpfS5mYS1mbGlwLXZlcnRpY2Fsey1tcy1maWx0ZXI6InByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5CYXNpY0ltYWdlKHJvdGF0aW9uPTIsbWlycm9yPTEpIjstd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgxLC0xKTt0cmFuc2Zvcm06c2NhbGUoMSwtMSl9LmZhLWZsaXAtYm90aCwuZmEtZmxpcC1ob3Jpem9udGFsLmZhLWZsaXAtdmVydGljYWx7LW1zLWZpbHRlcjoicHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LkJhc2ljSW1hZ2Uocm90YXRpb249MixtaXJyb3I9MSkiOy13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKC0xLC0xKTt0cmFuc2Zvcm06c2NhbGUoLTEsLTEpfTpyb290IC5mYS1yb3RhdGUtOTAsOnJvb3QgLmZhLXJvdGF0ZS0xODAsOnJvb3QgLmZhLXJvdGF0ZS0yNzAsOnJvb3QgLmZhLWZsaXAtaG9yaXpvbnRhbCw6cm9vdCAuZmEtZmxpcC12ZXJ0aWNhbCw6cm9vdCAuZmEtZmxpcC1ib3Roey13ZWJraXQtZmlsdGVyOm5vbmU7ZmlsdGVyOm5vbmV9LmZhLXN0YWNre2Rpc3BsYXk6aW5saW5lLWJsb2NrO2hlaWdodDoyZW07bGluZS1oZWlnaHQ6MmVtO3Bvc2l0aW9uOnJlbGF0aXZlO3ZlcnRpY2FsLWFsaWduOm1pZGRsZTt3aWR0aDoyLjVlbX0uZmEtc3RhY2stMXgsLmZhLXN0YWNrLTJ4e2xlZnQ6MDtwb3NpdGlvbjphYnNvbHV0ZTt0ZXh0LWFsaWduOmNlbnRlcjt3aWR0aDoxMDAlfS5mYS1zdGFjay0xeHtsaW5lLWhlaWdodDppbmhlcml0fS5mYS1zdGFjay0yeHtmb250LXNpemU6MmVtfS5mYS1pbnZlcnNle2NvbG9yOiNmZmZ9LmZhLTUwMHB4OmJlZm9yZXtjb250ZW50OiJcZjI2ZSJ9LmZhLWFjY2Vzc2libGUtaWNvbjpiZWZvcmV7Y29udGVudDoiXGYzNjgifS5mYS1hZGRyZXNzLWJvb2s6YmVmb3Jle2NvbnRlbnQ6IlxmMmI5In0uZmEtYWRkcmVzcy1jYXJkOmJlZm9yZXtjb250ZW50OiJcZjJiYiJ9LmZhLWFpci1mcmVzaGVuZXI6YmVmb3Jle2NvbnRlbnQ6IlxmNWQwIn0uZmEtYWxhcm0tY2xvY2s6YmVmb3Jle2NvbnRlbnQ6IlxmMzRlIn0uZmEtYW1idWxhbmNlOmJlZm9yZXtjb250ZW50OiJcZjBmOSJ9LmZhLWFuZHJvaWQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTdiIn0uZmEtYW5nbGUtZG91YmxlLWRvd246YmVmb3Jle2NvbnRlbnQ6IlxmMTAzIn0uZmEtYW5nbGUtZG91YmxlLWxlZnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTAwIn0uZmEtYW5nbGUtZG91YmxlLXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZjEwMSJ9LmZhLWFuZ2xlLWRvdWJsZS11cDpiZWZvcmV7Y29udGVudDoiXGYxMDIifS5mYS1hbmdsZS1kb3duOmJlZm9yZXtjb250ZW50OiJcZjEwNyJ9LmZhLWFuZ2xlLWxlZnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTA0In0uZmEtYW5nbGUtcmlnaHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTA1In0uZmEtYW5nbGUtdXA6YmVmb3Jle2NvbnRlbnQ6IlxmMTA2In0uZmEtYXBwbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMTc5In0uZmEtYXJjaGl2ZTpiZWZvcmV7Y29udGVudDoiXGYxODcifS5mYS1hcnJvdy1hbHQtY2lyY2xlLWRvd246YmVmb3Jle2NvbnRlbnQ6IlxmMzU4In0uZmEtYXJyb3ctYWx0LWNpcmNsZS1sZWZ0OmJlZm9yZXtjb250ZW50OiJcZjM1OSJ9LmZhLWFycm93LWFsdC1jaXJjbGUtcmlnaHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzVhIn0uZmEtYXJyb3ctYWx0LWNpcmNsZS11cDpiZWZvcmV7Y29udGVudDoiXGYzNWIifS5mYS1hcnJvdy1hbHQtZG93bjpiZWZvcmV7Y29udGVudDoiXGYzNTQifS5mYS1hcnJvdy1hbHQtZnJvbS1ib3R0b206YmVmb3Jle2NvbnRlbnQ6IlxmMzQ2In0uZmEtYXJyb3ctYWx0LWZyb20tbGVmdDpiZWZvcmV7Y29udGVudDoiXGYzNDcifS5mYS1hcnJvdy1hbHQtZnJvbS1yaWdodDpiZWZvcmV7Y29udGVudDoiXGYzNDgifS5mYS1hcnJvdy1hbHQtZnJvbS10b3A6YmVmb3Jle2NvbnRlbnQ6IlxmMzQ5In0uZmEtYXJyb3ctYWx0LWxlZnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzU1In0uZmEtYXJyb3ctYWx0LXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZjM1NiJ9LmZhLWFycm93LWFsdC1zcXVhcmUtZG93bjpiZWZvcmV7Y29udGVudDoiXGYzNTAifS5mYS1hcnJvdy1hbHQtc3F1YXJlLWxlZnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzUxIn0uZmEtYXJyb3ctYWx0LXNxdWFyZS1yaWdodDpiZWZvcmV7Y29udGVudDoiXGYzNTIifS5mYS1hcnJvdy1hbHQtc3F1YXJlLXVwOmJlZm9yZXtjb250ZW50OiJcZjM1MyJ9LmZhLWFycm93LWFsdC10by1ib3R0b206YmVmb3Jle2NvbnRlbnQ6IlxmMzRhIn0uZmEtYXJyb3ctYWx0LXRvLWxlZnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzRiIn0uZmEtYXJyb3ctYWx0LXRvLXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZjM0YyJ9LmZhLWFycm93LWFsdC10by10b3A6YmVmb3Jle2NvbnRlbnQ6IlxmMzRkIn0uZmEtYXJyb3ctYWx0LXVwOmJlZm9yZXtjb250ZW50OiJcZjM1NyJ9LmZhLWFycm93LWNpcmNsZS1kb3duOmJlZm9yZXtjb250ZW50OiJcZjBhYiJ9LmZhLWFycm93LWNpcmNsZS1sZWZ0OmJlZm9yZXtjb250ZW50OiJcZjBhOCJ9LmZhLWFycm93LWNpcmNsZS1yaWdodDpiZWZvcmV7Y29udGVudDoiXGYwYTkifS5mYS1hcnJvdy1jaXJjbGUtdXA6YmVmb3Jle2NvbnRlbnQ6IlxmMGFhIn0uZmEtYXJyb3ctZG93bjpiZWZvcmV7Y29udGVudDoiXGYwNjMifS5mYS1hcnJvdy1mcm9tLWJvdHRvbTpiZWZvcmV7Y29udGVudDoiXGYzNDIifS5mYS1hcnJvdy1mcm9tLWxlZnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzQzIn0uZmEtYXJyb3ctZnJvbS1yaWdodDpiZWZvcmV7Y29udGVudDoiXGYzNDQifS5mYS1hcnJvdy1mcm9tLXRvcDpiZWZvcmV7Y29udGVudDoiXGYzNDUifS5mYS1hcnJvdy1sZWZ0OmJlZm9yZXtjb250ZW50OiJcZjA2MCJ9LmZhLWFycm93LXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZjA2MSJ9LmZhLWFycm93LXNxdWFyZS1kb3duOmJlZm9yZXtjb250ZW50OiJcZjMzOSJ9LmZhLWFycm93LXNxdWFyZS1sZWZ0OmJlZm9yZXtjb250ZW50OiJcZjMzYSJ9LmZhLWFycm93LXNxdWFyZS1yaWdodDpiZWZvcmV7Y29udGVudDoiXGYzM2IifS5mYS1hcnJvdy1zcXVhcmUtdXA6YmVmb3Jle2NvbnRlbnQ6IlxmMzNjIn0uZmEtYXJyb3ctdG8tYm90dG9tOmJlZm9yZXtjb250ZW50OiJcZjMzZCJ9LmZhLWFycm93LXRvLWxlZnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzNlIn0uZmEtYXJyb3ctdG8tcmlnaHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzQwIn0uZmEtYXJyb3ctdG8tdG9wOmJlZm9yZXtjb250ZW50OiJcZjM0MSJ9LmZhLWFycm93LXVwOmJlZm9yZXtjb250ZW50OiJcZjA2MiJ9LmZhLWFycm93czpiZWZvcmV7Y29udGVudDoiXGYwNDcifS5mYS1hcnJvd3MtYWx0OmJlZm9yZXtjb250ZW50OiJcZjBiMiJ9LmZhLWFycm93cy1hbHQtaDpiZWZvcmV7Y29udGVudDoiXGYzMzcifS5mYS1hcnJvd3MtYWx0LXY6YmVmb3Jle2NvbnRlbnQ6IlxmMzM4In0uZmEtYXJyb3dzLWg6YmVmb3Jle2NvbnRlbnQ6IlxmMDdlIn0uZmEtYXJyb3dzLXY6YmVmb3Jle2NvbnRlbnQ6IlxmMDdkIn0uZmEtYXNzaXN0aXZlLWxpc3RlbmluZy1zeXN0ZW1zOmJlZm9yZXtjb250ZW50OiJcZjJhMiJ9LmZhLWF0OmJlZm9yZXtjb250ZW50OiJcZjFmYSJ9LmZhLWF1ZGlvLWRlc2NyaXB0aW9uOmJlZm9yZXtjb250ZW50OiJcZjI5ZSJ9LmZhLWF3YXJkOmJlZm9yZXtjb250ZW50OiJcZjU1OSJ9LmZhLWJhZGdlOmJlZm9yZXtjb250ZW50OiJcZjMzNSJ9LmZhLWJhZGdlLWNoZWNrOmJlZm9yZXtjb250ZW50OiJcZjMzNiJ9LmZhLWJhbjpiZWZvcmV7Y29udGVudDoiXGYwNWUifS5mYS1iYXJjb2RlOmJlZm9yZXtjb250ZW50OiJcZjAyYSJ9LmZhLWJhcmNvZGUtYWx0OmJlZm9yZXtjb250ZW50OiJcZjQ2MyJ9LmZhLWJhcnM6YmVmb3Jle2NvbnRlbnQ6IlxmMGM5In0uZmEtYmF0dGVyeS1mdWxsOmJlZm9yZXtjb250ZW50OiJcZjI0MCJ9LmZhLWJhdHRlcnktaGFsZjpiZWZvcmV7Y29udGVudDoiXGYyNDIifS5mYS1iZWxsOmJlZm9yZXtjb250ZW50OiJcZjBmMyJ9LmZhLWJlbGwtZXhjbGFtYXRpb246YmVmb3Jle2NvbnRlbnQ6IlxmODQ4In0uZmEtYmVsbC1wbHVzOmJlZm9yZXtjb250ZW50OiJcZjg0OSJ9LmZhLWJlbGwtc2xhc2g6YmVmb3Jle2NvbnRlbnQ6IlxmMWY2In0uZmEtYmxvZzpiZWZvcmV7Y29udGVudDoiXGY3ODEifS5mYS1ibG9nZ2VyOmJlZm9yZXtjb250ZW50OiJcZjM3YyJ9LmZhLWJsb2dnZXItYjpiZWZvcmV7Y29udGVudDoiXGYzN2QifS5mYS1ibHVldG9vdGg6YmVmb3Jle2NvbnRlbnQ6IlxmMjkzIn0uZmEtYmx1ZXRvb3RoLWI6YmVmb3Jle2NvbnRlbnQ6IlxmMjk0In0uZmEtYm9sdDpiZWZvcmV7Y29udGVudDoiXGYwZTcifS5mYS1ib29rbWFyazpiZWZvcmV7Y29udGVudDoiXGYwMmUifS5mYS1ib3gtb3BlbjpiZWZvcmV7Y29udGVudDoiXGY0OWUifS5mYS1icm9hZGNhc3QtdG93ZXI6YmVmb3Jle2NvbnRlbnQ6IlxmNTE5In0uZmEtYnRjOmJlZm9yZXtjb250ZW50OiJcZjE1YSJ9LmZhLWJ1ZzpiZWZvcmV7Y29udGVudDoiXGYxODgifS5mYS1idWlsZGluZzpiZWZvcmV7Y29udGVudDoiXGYxYWQifS5mYS1idWxsaG9ybjpiZWZvcmV7Y29udGVudDoiXGYwYTEifS5mYS1idWxsc2V5ZTpiZWZvcmV7Y29udGVudDoiXGYxNDAifS5mYS1idXM6YmVmb3Jle2NvbnRlbnQ6IlxmMjA3In0uZmEtYnVzLWFsdDpiZWZvcmV7Y29udGVudDoiXGY1NWUifS5mYS1idXMtc2Nob29sOmJlZm9yZXtjb250ZW50OiJcZjVkZCJ9LmZhLWNhbGN1bGF0b3I6YmVmb3Jle2NvbnRlbnQ6IlxmMWVjIn0uZmEtY2FsY3VsYXRvci1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmNjRjIn0uZmEtY2FsZW5kYXI6YmVmb3Jle2NvbnRlbnQ6IlxmMTMzIn0uZmEtY2FsZW5kYXItYWx0OmJlZm9yZXtjb250ZW50OiJcZjA3MyJ9LmZhLWNhbGVuZGFyLWNoZWNrOmJlZm9yZXtjb250ZW50OiJcZjI3NCJ9LmZhLWNhbGVuZGFyLWVkaXQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzMzIn0uZmEtY2FsZW5kYXItZXhjbGFtYXRpb246YmVmb3Jle2NvbnRlbnQ6IlxmMzM0In0uZmEtY2FsZW5kYXItbWludXM6YmVmb3Jle2NvbnRlbnQ6IlxmMjcyIn0uZmEtY2FsZW5kYXItdGltZXM6YmVmb3Jle2NvbnRlbnQ6IlxmMjczIn0uZmEtY2FtZXJhOmJlZm9yZXtjb250ZW50OiJcZjAzMCJ9LmZhLWNhbWVyYS1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzMyIn0uZmEtY2FtZXJhLWhvbWU6YmVmb3Jle2NvbnRlbnQ6IlxmOGZlIn0uZmEtY2FyOmJlZm9yZXtjb250ZW50OiJcZjFiOSJ9LmZhLWNhci1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmNWRlIn0uZmEtY2FyLWJhdHRlcnk6YmVmb3Jle2NvbnRlbnQ6IlxmNWRmIn0uZmEtY2FyLWJ1aWxkaW5nOmJlZm9yZXtjb250ZW50OiJcZjg1OSJ9LmZhLWNhci1idW1wOmJlZm9yZXtjb250ZW50OiJcZjVlMCJ9LmZhLWNhci1idXM6YmVmb3Jle2NvbnRlbnQ6IlxmODVhIn0uZmEtY2FyLWNyYXNoOmJlZm9yZXtjb250ZW50OiJcZjVlMSJ9LmZhLWNhci1nYXJhZ2U6YmVmb3Jle2NvbnRlbnQ6IlxmNWUyIn0uZmEtY2FyLW1lY2hhbmljOmJlZm9yZXtjb250ZW50OiJcZjVlMyJ9LmZhLWNhci1zaWRlOmJlZm9yZXtjb250ZW50OiJcZjVlNCJ9LmZhLWNhci10aWx0OmJlZm9yZXtjb250ZW50OiJcZjVlNSJ9LmZhLWNhci13YXNoOmJlZm9yZXtjb250ZW50OiJcZjVlNiJ9LmZhLWNhcmF2YW46YmVmb3Jle2NvbnRlbnQ6IlxmOGZmIn0uZmEtY2FyYXZhbi1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxlMDAwIn0uZmEtY2FyZXQtY2lyY2xlLWRvd246YmVmb3Jle2NvbnRlbnQ6IlxmMzJkIn0uZmEtY2FyZXQtY2lyY2xlLWxlZnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzJlIn0uZmEtY2FyZXQtY2lyY2xlLXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZjMzMCJ9LmZhLWNhcmV0LWNpcmNsZS11cDpiZWZvcmV7Y29udGVudDoiXGYzMzEifS5mYS1jYXJldC1kb3duOmJlZm9yZXtjb250ZW50OiJcZjBkNyJ9LmZhLWNhcmV0LWxlZnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMGQ5In0uZmEtY2FyZXQtcmlnaHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMGRhIn0uZmEtY2FyZXQtc3F1YXJlLWRvd246YmVmb3Jle2NvbnRlbnQ6IlxmMTUwIn0uZmEtY2FyZXQtc3F1YXJlLWxlZnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTkxIn0uZmEtY2FyZXQtc3F1YXJlLXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZjE1MiJ9LmZhLWNhcmV0LXNxdWFyZS11cDpiZWZvcmV7Y29udGVudDoiXGYxNTEifS5mYS1jYXJldC11cDpiZWZvcmV7Y29udGVudDoiXGYwZDgifS5mYS1jYXJzOmJlZm9yZXtjb250ZW50OiJcZjg1YiJ9LmZhLWNhcnQtYXJyb3ctZG93bjpiZWZvcmV7Y29udGVudDoiXGYyMTgifS5mYS1jYXJ0LXBsdXM6YmVmb3Jle2NvbnRlbnQ6IlxmMjE3In0uZmEtY2MtcGF5cGFsOmJlZm9yZXtjb250ZW50OiJcZjFmNCJ9LmZhLWNlcnRpZmljYXRlOmJlZm9yZXtjb250ZW50OiJcZjBhMyJ9LmZhLWNoYWlyOmJlZm9yZXtjb250ZW50OiJcZjZjMCJ9LmZhLWNoYWxrYm9hcmQ6YmVmb3Jle2NvbnRlbnQ6IlxmNTFiIn0uZmEtY2hhcmdpbmctc3RhdGlvbjpiZWZvcmV7Y29udGVudDoiXGY1ZTcifS5mYS1jaGFydC1saW5lOmJlZm9yZXtjb250ZW50OiJcZjIwMSJ9LmZhLWNoYXJ0LWxpbmUtZG93bjpiZWZvcmV7Y29udGVudDoiXGY2NGQifS5mYS1jaGVjazpiZWZvcmV7Y29udGVudDoiXGYwMGMifS5mYS1jaGVjay1jaXJjbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMDU4In0uZmEtY2hlY2stZG91YmxlOmJlZm9yZXtjb250ZW50OiJcZjU2MCJ9LmZhLWNoZWNrLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYxNGEifS5mYS1jaGV2cm9uLWNpcmNsZS1kb3duOmJlZm9yZXtjb250ZW50OiJcZjEzYSJ9LmZhLWNoZXZyb24tY2lyY2xlLWxlZnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTM3In0uZmEtY2hldnJvbi1jaXJjbGUtcmlnaHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTM4In0uZmEtY2hldnJvbi1jaXJjbGUtdXA6YmVmb3Jle2NvbnRlbnQ6IlxmMTM5In0uZmEtY2hldnJvbi1kb3VibGUtZG93bjpiZWZvcmV7Y29udGVudDoiXGYzMjIifS5mYS1jaGV2cm9uLWRvdWJsZS1sZWZ0OmJlZm9yZXtjb250ZW50OiJcZjMyMyJ9LmZhLWNoZXZyb24tZG91YmxlLXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZjMyNCJ9LmZhLWNoZXZyb24tZG91YmxlLXVwOmJlZm9yZXtjb250ZW50OiJcZjMyNSJ9LmZhLWNoZXZyb24tZG93bjpiZWZvcmV7Y29udGVudDoiXGYwNzgifS5mYS1jaGV2cm9uLWxlZnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDUzIn0uZmEtY2hldnJvbi1yaWdodDpiZWZvcmV7Y29udGVudDoiXGYwNTQifS5mYS1jaGV2cm9uLXNxdWFyZS1kb3duOmJlZm9yZXtjb250ZW50OiJcZjMyOSJ9LmZhLWNoZXZyb24tc3F1YXJlLWxlZnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzJhIn0uZmEtY2hldnJvbi1zcXVhcmUtcmlnaHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzJiIn0uZmEtY2hldnJvbi1zcXVhcmUtdXA6YmVmb3Jle2NvbnRlbnQ6IlxmMzJjIn0uZmEtY2hldnJvbi11cDpiZWZvcmV7Y29udGVudDoiXGYwNzcifS5mYS1jaXJjbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMTExIn0uZmEtY2lyY2xlLW5vdGNoOmJlZm9yZXtjb250ZW50OiJcZjFjZSJ9LmZhLWNpdHk6YmVmb3Jle2NvbnRlbnQ6IlxmNjRmIn0uZmEtY2xpcGJvYXJkOmJlZm9yZXtjb250ZW50OiJcZjMyOCJ9LmZhLWNsb2NrOmJlZm9yZXtjb250ZW50OiJcZjAxNyJ9LmZhLWNsb25lOmJlZm9yZXtjb250ZW50OiJcZjI0ZCJ9LmZhLWNsb3NlZC1jYXB0aW9uaW5nOmJlZm9yZXtjb250ZW50OiJcZjIwYSJ9LmZhLWNsb3VkOmJlZm9yZXtjb250ZW50OiJcZjBjMiJ9LmZhLWNsb3VkLWRvd25sb2FkOmJlZm9yZXtjb250ZW50OiJcZjBlZCJ9LmZhLWNsb3VkLWRvd25sb2FkLWFsdDpiZWZvcmV7Y29udGVudDoiXGYzODEifS5mYS1jbG91ZC11cGxvYWQ6YmVmb3Jle2NvbnRlbnQ6IlxmMGVlIn0uZmEtY2xvdWQtdXBsb2FkLWFsdDpiZWZvcmV7Y29udGVudDoiXGYzODIifS5mYS1jbHViOmJlZm9yZXtjb250ZW50OiJcZjMyNyJ9LmZhLWNvZmZlZTpiZWZvcmV7Y29udGVudDoiXGYwZjQifS5mYS1jb2c6YmVmb3Jle2NvbnRlbnQ6IlxmMDEzIn0uZmEtY29nczpiZWZvcmV7Y29udGVudDoiXGYwODUifS5mYS1jb21tZW50OmJlZm9yZXtjb250ZW50OiJcZjA3NSJ9LmZhLWNvbW1lbnQtYWx0OmJlZm9yZXtjb250ZW50OiJcZjI3YSJ9LmZhLWNvbW1lbnQtYWx0LWNoZWNrOmJlZm9yZXtjb250ZW50OiJcZjRhMiJ9LmZhLWNvbW1lbnQtYWx0LWRvbGxhcjpiZWZvcmV7Y29udGVudDoiXGY2NTAifS5mYS1jb21tZW50LWRvbGxhcjpiZWZvcmV7Y29udGVudDoiXGY2NTEifS5mYS1jb21tZW50czpiZWZvcmV7Y29udGVudDoiXGYwODYifS5mYS1jb21tZW50cy1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmNGI2In0uZmEtY29tbWVudHMtYWx0LWRvbGxhcjpiZWZvcmV7Y29udGVudDoiXGY2NTIifS5mYS1jb21tZW50cy1kb2xsYXI6YmVmb3Jle2NvbnRlbnQ6IlxmNjUzIn0uZmEtY29tcHJlc3MtYWx0OmJlZm9yZXtjb250ZW50OiJcZjQyMiJ9LmZhLWNvbXByZXNzLWFycm93cy1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmNzhjIn0uZmEtY29weTpiZWZvcmV7Y29udGVudDoiXGYwYzUifS5mYS1jb3B5cmlnaHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMWY5In0uZmEtY291Y2g6YmVmb3Jle2NvbnRlbnQ6IlxmNGI4In0uZmEtY3JlYXRpdmUtY29tbW9ucy1zaGFyZTpiZWZvcmV7Y29udGVudDoiXGY0ZjIifS5mYS1jcmVkaXQtY2FyZDpiZWZvcmV7Y29udGVudDoiXGYwOWQifS5mYS1jdXQ6YmVmb3Jle2NvbnRlbnQ6IlxmMGM0In0uZmEtZGF0YWJhc2U6YmVmb3Jle2NvbnRlbnQ6IlxmMWMwIn0uZmEtZGVza3RvcDpiZWZvcmV7Y29udGVudDoiXGYxMDgifS5mYS1kaWFtb25kOmJlZm9yZXtjb250ZW50OiJcZjIxOSJ9LmZhLWRpZ2l0YWwtdGFjaG9ncmFwaDpiZWZvcmV7Y29udGVudDoiXGY1NjYifS5mYS1kb2xsYXItc2lnbjpiZWZvcmV7Y29udGVudDoiXGYxNTUifS5mYS1kb3QtY2lyY2xlOmJlZm9yZXtjb250ZW50OiJcZjE5MiJ9LmZhLWRvd25sb2FkOmJlZm9yZXtjb250ZW50OiJcZjAxOSJ9LmZhLWVkaXQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDQ0In0uZmEtZWxsaXBzaXMtaDpiZWZvcmV7Y29udGVudDoiXGYxNDEifS5mYS1lbGxpcHNpcy1oLWFsdDpiZWZvcmV7Y29udGVudDoiXGYzOWIifS5mYS1lbGxpcHNpcy12OmJlZm9yZXtjb250ZW50OiJcZjE0MiJ9LmZhLWVsbGlwc2lzLXYtYWx0OmJlZm9yZXtjb250ZW50OiJcZjM5YyJ9LmZhLWVuZ2luZS13YXJuaW5nOmJlZm9yZXtjb250ZW50OiJcZjVmMiJ9LmZhLWVudmVsb3BlOmJlZm9yZXtjb250ZW50OiJcZjBlMCJ9LmZhLWVudmVsb3BlLW9wZW46YmVmb3Jle2NvbnRlbnQ6IlxmMmI2In0uZmEtZW52ZWxvcGUtc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjE5OSJ9LmZhLWVyYXNlcjpiZWZvcmV7Y29udGVudDoiXGYxMmQifS5mYS1leGNoYW5nZTpiZWZvcmV7Y29udGVudDoiXGYwZWMifS5mYS1leGNoYW5nZS1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzYyIn0uZmEtZXhjbGFtYXRpb246YmVmb3Jle2NvbnRlbnQ6IlxmMTJhIn0uZmEtZXhjbGFtYXRpb24tY2lyY2xlOmJlZm9yZXtjb250ZW50OiJcZjA2YSJ9LmZhLWV4Y2xhbWF0aW9uLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYzMjEifS5mYS1leGNsYW1hdGlvbi10cmlhbmdsZTpiZWZvcmV7Y29udGVudDoiXGYwNzEifS5mYS1leHBhbmQtYWx0OmJlZm9yZXtjb250ZW50OiJcZjQyNCJ9LmZhLWV4cGFuZC1hcnJvd3M6YmVmb3Jle2NvbnRlbnQ6IlxmMzFkIn0uZmEtZXhwYW5kLWFycm93cy1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzFlIn0uZmEtZXh0ZXJuYWwtbGluazpiZWZvcmV7Y29udGVudDoiXGYwOGUifS5mYS1leHRlcm5hbC1saW5rLWFsdDpiZWZvcmV7Y29udGVudDoiXGYzNWQifS5mYS1leHRlcm5hbC1saW5rLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYxNGMifS5mYS1leHRlcm5hbC1saW5rLXNxdWFyZS1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzYwIn0uZmEtZXllOmJlZm9yZXtjb250ZW50OiJcZjA2ZSJ9LmZhLWV5ZS1zbGFzaDpiZWZvcmV7Y29udGVudDoiXGYwNzAifS5mYS1mYWNlYm9vazpiZWZvcmV7Y29udGVudDoiXGYwOWEifS5mYS1mYWNlYm9vay1mOmJlZm9yZXtjb250ZW50OiJcZjM5ZSJ9LmZhLWZhY2Vib29rLW1lc3NlbmdlcjpiZWZvcmV7Y29udGVudDoiXGYzOWYifS5mYS1mYWNlYm9vay1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMDgyIn0uZmEtZmF4OmJlZm9yZXtjb250ZW50OiJcZjFhYyJ9LmZhLWZpbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMTViIn0uZmEtZmlsZS1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTVjIn0uZmEtZmlsZS1hcmNoaXZlOmJlZm9yZXtjb250ZW50OiJcZjFjNiJ9LmZhLWZpbGUtYXVkaW86YmVmb3Jle2NvbnRlbnQ6IlxmMWM3In0uZmEtZmlsZS1jaGFydC1saW5lOmJlZm9yZXtjb250ZW50OiJcZjY1OSJ9LmZhLWZpbGUtY2hlY2s6YmVmb3Jle2NvbnRlbnQ6IlxmMzE2In0uZmEtZmlsZS1jb2RlOmJlZm9yZXtjb250ZW50OiJcZjFjOSJ9LmZhLWZpbGUtZG93bmxvYWQ6YmVmb3Jle2NvbnRlbnQ6IlxmNTZkIn0uZmEtZmlsZS1lZGl0OmJlZm9yZXtjb250ZW50OiJcZjMxYyJ9LmZhLWZpbGUtZXhjZWw6YmVmb3Jle2NvbnRlbnQ6IlxmMWMzIn0uZmEtZmlsZS1leGNsYW1hdGlvbjpiZWZvcmV7Y29udGVudDoiXGYzMWEifS5mYS1maWxlLWV4cG9ydDpiZWZvcmV7Y29udGVudDoiXGY1NmUifS5mYS1maWxlLWltYWdlOmJlZm9yZXtjb250ZW50OiJcZjFjNSJ9LmZhLWZpbGUtaW1wb3J0OmJlZm9yZXtjb250ZW50OiJcZjU2ZiJ9LmZhLWZpbGUtaW52b2ljZS1kb2xsYXI6YmVmb3Jle2NvbnRlbnQ6IlxmNTcxIn0uZmEtZmlsZS1taW51czpiZWZvcmV7Y29udGVudDoiXGYzMTgifS5mYS1maWxlLW11c2ljOmJlZm9yZXtjb250ZW50OiJcZjhiNiJ9LmZhLWZpbGUtcGRmOmJlZm9yZXtjb250ZW50OiJcZjFjMSJ9LmZhLWZpbGUtcGx1czpiZWZvcmV7Y29udGVudDoiXGYzMTkifS5mYS1maWxlLXBvd2VycG9pbnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMWM0In0uZmEtZmlsZS1zZWFyY2g6YmVmb3Jle2NvbnRlbnQ6IlxmODY1In0uZmEtZmlsZS10aW1lczpiZWZvcmV7Y29udGVudDoiXGYzMTcifS5mYS1maWxlLXVwbG9hZDpiZWZvcmV7Y29udGVudDoiXGY1NzQifS5mYS1maWxlLXZpZGVvOmJlZm9yZXtjb250ZW50OiJcZjFjOCJ9LmZhLWZpbGUtd29yZDpiZWZvcmV7Y29udGVudDoiXGYxYzIifS5mYS1maWx0ZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMGIwIn0uZmEtZmluZ2VycHJpbnQ6YmVmb3Jle2NvbnRlbnQ6IlxmNTc3In0uZmEtZmlyZTpiZWZvcmV7Y29udGVudDoiXGYwNmQifS5mYS1mbGFnOmJlZm9yZXtjb250ZW50OiJcZjAyNCJ9LmZhLWZsYWctYWx0OmJlZm9yZXtjb250ZW50OiJcZjc0YyJ9LmZhLWZsYWctY2hlY2tlcmVkOmJlZm9yZXtjb250ZW50OiJcZjExZSJ9LmZhLWZsdXgtY2FwYWNpdG9yOmJlZm9yZXtjb250ZW50OiJcZjhiYSJ9LmZhLWZvbGRlcjpiZWZvcmV7Y29udGVudDoiXGYwN2IifS5mYS1mb2xkZXItZG93bmxvYWQ6YmVmb3Jle2NvbnRlbnQ6IlxlMDUzIn0uZmEtZm9sZGVyLW9wZW46YmVmb3Jle2NvbnRlbnQ6IlxmMDdjIn0uZmEtZm9sZGVyLXVwbG9hZDpiZWZvcmV7Y29udGVudDoiXGUwNTQifS5mYS1mcm93bjpiZWZvcmV7Y29udGVudDoiXGYxMTkifS5mYS1mcm93bi1vcGVuOmJlZm9yZXtjb250ZW50OiJcZjU3YSJ9LmZhLWdhbGFjdGljLXNlbmF0ZTpiZWZvcmV7Y29udGVudDoiXGY1MGQifS5mYS1nYXJhZ2U6YmVmb3Jle2NvbnRlbnQ6IlxlMDA5In0uZmEtZ2FyYWdlLWNhcjpiZWZvcmV7Y29udGVudDoiXGUwMGEifS5mYS1nYXJhZ2Utb3BlbjpiZWZvcmV7Y29udGVudDoiXGUwMGIifS5mYS1nYXMtcHVtcDpiZWZvcmV7Y29udGVudDoiXGY1MmYifS5mYS1nYXMtcHVtcC1zbGFzaDpiZWZvcmV7Y29udGVudDoiXGY1ZjQifS5mYS1nbGFzc2VzOmJlZm9yZXtjb250ZW50OiJcZjUzMCJ9LmZhLWdsb2JlOmJlZm9yZXtjb250ZW50OiJcZjBhYyJ9LmZhLWdvb2dsZTpiZWZvcmV7Y29udGVudDoiXGYxYTAifS5mYS1ncmlwLWhvcml6b250YWw6YmVmb3Jle2NvbnRlbnQ6IlxmNThkIn0uZmEtZ3JpcC1saW5lczpiZWZvcmV7Y29udGVudDoiXGY3YTQifS5mYS1ncmlwLWxpbmVzLXZlcnRpY2FsOmJlZm9yZXtjb250ZW50OiJcZjdhNSJ9LmZhLWdyaXAtdmVydGljYWw6YmVmb3Jle2NvbnRlbnQ6IlxmNThlIn0uZmEtaGFuZC1ob2xkaW5nLXVzZDpiZWZvcmV7Y29udGVudDoiXGY0YzAifS5mYS1oYW5kLXBvaW50LWRvd246YmVmb3Jle2NvbnRlbnQ6IlxmMGE3In0uZmEtaGFuZC1wb2ludC1sZWZ0OmJlZm9yZXtjb250ZW50OiJcZjBhNSJ9LmZhLWhhbmQtcG9pbnQtcmlnaHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMGE0In0uZmEtaGFuZC1wb2ludC11cDpiZWZvcmV7Y29udGVudDoiXGYwYTYifS5mYS1oYW5kLXBvaW50ZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMjVhIn0uZmEtaGFuZHMtdXNkOmJlZm9yZXtjb250ZW50OiJcZjRjNSJ9LmZhLWhhc2h0YWc6YmVmb3Jle2NvbnRlbnQ6IlxmMjkyIn0uZmEtaGVhcnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDA0In0uZmEtaGVhcnQtYnJva2VuOmJlZm9yZXtjb250ZW50OiJcZjdhOSJ9LmZhLWhleGFnb246YmVmb3Jle2NvbnRlbnQ6IlxmMzEyIn0uZmEtaGlzdG9yeTpiZWZvcmV7Y29udGVudDoiXGYxZGEifS5mYS1ob21lOmJlZm9yZXtjb250ZW50OiJcZjAxNSJ9LmZhLWhvbWUtYWx0OmJlZm9yZXtjb250ZW50OiJcZjgwYSJ9LmZhLWhvbWUtbGc6YmVmb3Jle2NvbnRlbnQ6IlxmODBiIn0uZmEtaG9tZS1sZy1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmODBjIn0uZmEtaG91c2U6YmVmb3Jle2NvbnRlbnQ6IlxlMDBkIn0uZmEtaS1jdXJzb3I6YmVmb3Jle2NvbnRlbnQ6IlxmMjQ2In0uZmEtaW5ib3g6YmVmb3Jle2NvbnRlbnQ6IlxmMDFjIn0uZmEtaW5ib3gtaW46YmVmb3Jle2NvbnRlbnQ6IlxmMzEwIn0uZmEtaW5ib3gtb3V0OmJlZm9yZXtjb250ZW50OiJcZjMxMSJ9LmZhLWluZm86YmVmb3Jle2NvbnRlbnQ6IlxmMTI5In0uZmEtaW5mby1jaXJjbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMDVhIn0uZmEtaW5mby1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMzBmIn0uZmEtaW5zdGFncmFtOmJlZm9yZXtjb250ZW50OiJcZjE2ZCJ9LmZhLWluc3RhZ3JhbS1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxlMDU1In0uZmEta2V5OmJlZm9yZXtjb250ZW50OiJcZjA4NCJ9LmZhLWxhbmd1YWdlOmJlZm9yZXtjb250ZW50OiJcZjFhYiJ9LmZhLWxhc3NvOmJlZm9yZXtjb250ZW50OiJcZjhjOCJ9LmZhLWxlYWY6YmVmb3Jle2NvbnRlbnQ6IlxmMDZjIn0uZmEtbGV2ZWwtZG93bjpiZWZvcmV7Y29udGVudDoiXGYxNDkifS5mYS1sZXZlbC1kb3duLWFsdDpiZWZvcmV7Y29udGVudDoiXGYzYmUifS5mYS1sZXZlbC11cDpiZWZvcmV7Y29udGVudDoiXGYxNDgifS5mYS1sZXZlbC11cC1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmM2JmIn0uZmEtbGlua2VkaW46YmVmb3Jle2NvbnRlbnQ6IlxmMDhjIn0uZmEtbGlua2VkaW4taW46YmVmb3Jle2NvbnRlbnQ6IlxmMGUxIn0uZmEtbG9jYXRpb24tYXJyb3c6YmVmb3Jle2NvbnRlbnQ6IlxmMTI0In0uZmEtbG9uZy1hcnJvdy1hbHQtZG93bjpiZWZvcmV7Y29udGVudDoiXGYzMDkifS5mYS1sb25nLWFycm93LWFsdC1sZWZ0OmJlZm9yZXtjb250ZW50OiJcZjMwYSJ9LmZhLWxvbmctYXJyb3ctYWx0LXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZjMwYiJ9LmZhLWxvbmctYXJyb3ctYWx0LXVwOmJlZm9yZXtjb250ZW50OiJcZjMwYyJ9LmZhLWxvbmctYXJyb3ctZG93bjpiZWZvcmV7Y29udGVudDoiXGYxNzUifS5mYS1sb25nLWFycm93LWxlZnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTc3In0uZmEtbG9uZy1hcnJvdy1yaWdodDpiZWZvcmV7Y29udGVudDoiXGYxNzgifS5mYS1sb25nLWFycm93LXVwOmJlZm9yZXtjb250ZW50OiJcZjE3NiJ9LmZhLW1hZ2ljOmJlZm9yZXtjb250ZW50OiJcZjBkMCJ9LmZhLW1hcDpiZWZvcmV7Y29udGVudDoiXGYyNzkifS5mYS1tYXAtbWFya2VyOmJlZm9yZXtjb250ZW50OiJcZjA0MSJ9LmZhLW1hcC1tYXJrZXItYWx0OmJlZm9yZXtjb250ZW50OiJcZjNjNSJ9LmZhLW1hcC1waW46YmVmb3Jle2NvbnRlbnQ6IlxmMjc2In0uZmEtbWFwLXNpZ25zOmJlZm9yZXtjb250ZW50OiJcZjI3NyJ9LmZhLW1hcmtlcjpiZWZvcmV7Y29udGVudDoiXGY1YTEifS5mYS1tZWRhbDpiZWZvcmV7Y29udGVudDoiXGY1YTIifS5mYS1tZWg6YmVmb3Jle2NvbnRlbnQ6IlxmMTFhIn0uZmEtbWljcm9jaGlwOmJlZm9yZXtjb250ZW50OiJcZjJkYiJ9LmZhLW1pY3JvcGhvbmU6YmVmb3Jle2NvbnRlbnQ6IlxmMTMwIn0uZmEtbWljcm9waG9uZS1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmM2M5In0uZmEtbWljcm9waG9uZS1hbHQtc2xhc2g6YmVmb3Jle2NvbnRlbnQ6IlxmNTM5In0uZmEtbWljcm9waG9uZS1zbGFzaDpiZWZvcmV7Y29udGVudDoiXGYxMzEifS5mYS1taW5kLXNoYXJlOmJlZm9yZXtjb250ZW50OiJcZjY3NyJ9LmZhLW1pbnVzOmJlZm9yZXtjb250ZW50OiJcZjA2OCJ9LmZhLW1pbnVzLWNpcmNsZTpiZWZvcmV7Y29udGVudDoiXGYwNTYifS5mYS1taW51cy1oZXhhZ29uOmJlZm9yZXtjb250ZW50OiJcZjMwNyJ9LmZhLW1pbnVzLW9jdGFnb246YmVmb3Jle2NvbnRlbnQ6IlxmMzA4In0uZmEtbWludXMtc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjE0NiJ9LmZhLW1vYmlsZTpiZWZvcmV7Y29udGVudDoiXGYxMGIifS5mYS1tb2JpbGUtYWx0OmJlZm9yZXtjb250ZW50OiJcZjNjZCJ9LmZhLW1vYmlsZS1hbmRyb2lkOmJlZm9yZXtjb250ZW50OiJcZjNjZSJ9LmZhLW1vYmlsZS1hbmRyb2lkLWFsdDpiZWZvcmV7Y29udGVudDoiXGYzY2YifS5mYS1tb25leS1jaGVjazpiZWZvcmV7Y29udGVudDoiXGY1M2MifS5mYS1tb25leS1jaGVjay1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmNTNkIn0uZmEtbW9uZXktY2hlY2stZWRpdDpiZWZvcmV7Y29udGVudDoiXGY4NzIifS5mYS1tb25leS1jaGVjay1lZGl0LWFsdDpiZWZvcmV7Y29udGVudDoiXGY4NzMifS5mYS1tb3RvcmN5Y2xlOmJlZm9yZXtjb250ZW50OiJcZjIxYyJ9LmZhLW1vdW50YWluOmJlZm9yZXtjb250ZW50OiJcZjZmYyJ9LmZhLW1vdXNlLXBvaW50ZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMjQ1In0uZmEtbXAzLXBsYXllcjpiZWZvcmV7Y29udGVudDoiXGY4Y2UifS5mYS1tdXNpYzpiZWZvcmV7Y29udGVudDoiXGYwMDEifS5mYS1vY3RhZ29uOmJlZm9yZXtjb250ZW50OiJcZjMwNiJ9LmZhLW9pbC1jYW46YmVmb3Jle2NvbnRlbnQ6IlxmNjEzIn0uZmEtb2lsLXRlbXA6YmVmb3Jle2NvbnRlbnQ6IlxmNjE0In0uZmEtcGFpbnQtYnJ1c2g6YmVmb3Jle2NvbnRlbnQ6IlxmMWZjIn0uZmEtcGFsZXR0ZTpiZWZvcmV7Y29udGVudDoiXGY1M2YifS5mYS1wYXBlci1wbGFuZTpiZWZvcmV7Y29udGVudDoiXGYxZDgifS5mYS1wYXN0ZTpiZWZvcmV7Y29udGVudDoiXGYwZWEifS5mYS1wYXlwYWw6YmVmb3Jle2NvbnRlbnQ6IlxmMWVkIn0uZmEtcGVuOmJlZm9yZXtjb250ZW50OiJcZjMwNCJ9LmZhLXBlbi1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzA1In0uZmEtcGVuLWZhbmN5OmJlZm9yZXtjb250ZW50OiJcZjVhYyJ9LmZhLXBlbmNpbDpiZWZvcmV7Y29udGVudDoiXGYwNDAifS5mYS1wZW5jaWwtYWx0OmJlZm9yZXtjb250ZW50OiJcZjMwMyJ9LmZhLXBlbmNpbC1ydWxlcjpiZWZvcmV7Y29udGVudDoiXGY1YWUifS5mYS1wZW9wbGUtYXJyb3dzOmJlZm9yZXtjb250ZW50OiJcZTA2OCJ9LmZhLXBob25lOmJlZm9yZXtjb250ZW50OiJcZjA5NSJ9LmZhLXBob25lLWFsdDpiZWZvcmV7Y29udGVudDoiXGY4NzkifS5mYS1waG9uZS1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMDk4In0uZmEtcGhvbmUtc3F1YXJlLWFsdDpiZWZvcmV7Y29udGVudDoiXGY4N2IifS5mYS1waG9uZS12b2x1bWU6YmVmb3Jle2NvbnRlbnQ6IlxmMmEwIn0uZmEtcGhvdG8tdmlkZW86YmVmb3Jle2NvbnRlbnQ6IlxmODdjIn0uZmEtcGludGVyZXN0OmJlZm9yZXtjb250ZW50OiJcZjBkMiJ9LmZhLXBpbnRlcmVzdC1wOmJlZm9yZXtjb250ZW50OiJcZjIzMSJ9LmZhLXBpbnRlcmVzdC1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMGQzIn0uZmEtcGxheTpiZWZvcmV7Y29udGVudDoiXGYwNGIifS5mYS1wbGF5LWNpcmNsZTpiZWZvcmV7Y29udGVudDoiXGYxNDQifS5mYS1wbHVnOmJlZm9yZXtjb250ZW50OiJcZjFlNiJ9LmZhLXBsdXM6YmVmb3Jle2NvbnRlbnQ6IlxmMDY3In0uZmEtcGx1cy1jaXJjbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMDU1In0uZmEtcGx1cy1oZXhhZ29uOmJlZm9yZXtjb250ZW50OiJcZjMwMCJ9LmZhLXBsdXMtb2N0YWdvbjpiZWZvcmV7Y29udGVudDoiXGYzMDEifS5mYS1wbHVzLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYwZmUifS5mYS1wb286YmVmb3Jle2NvbnRlbnQ6IlxmMmZlIn0uZmEtcHJpbnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDJmIn0uZmEtcXJjb2RlOmJlZm9yZXtjb250ZW50OiJcZjAyOSJ9LmZhLXF1ZXN0aW9uOmJlZm9yZXtjb250ZW50OiJcZjEyOCJ9LmZhLXF1ZXN0aW9uLWNpcmNsZTpiZWZvcmV7Y29udGVudDoiXGYwNTkifS5mYS1xdWVzdGlvbi1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMmZkIn0uZmEtcXVvdGUtbGVmdDpiZWZvcmV7Y29udGVudDoiXGYxMGQifS5mYS1xdW90ZS1yaWdodDpiZWZvcmV7Y29udGVudDoiXGYxMGUifS5mYS1yYW5kb206YmVmb3Jle2NvbnRlbnQ6IlxmMDc0In0uZmEtcmVjdGFuZ2xlLWxhbmRzY2FwZTpiZWZvcmV7Y29udGVudDoiXGYyZmEifS5mYS1yZWN0YW5nbGUtcG9ydHJhaXQ6YmVmb3Jle2NvbnRlbnQ6IlxmMmZiIn0uZmEtcmVjdGFuZ2xlLXdpZGU6YmVmb3Jle2NvbnRlbnQ6IlxmMmZjIn0uZmEtcmVjeWNsZTpiZWZvcmV7Y29udGVudDoiXGYxYjgifS5mYS1yZWRvOmJlZm9yZXtjb250ZW50OiJcZjAxZSJ9LmZhLXJlZG8tYWx0OmJlZm9yZXtjb250ZW50OiJcZjJmOSJ9LmZhLXJlcGVhdDpiZWZvcmV7Y29udGVudDoiXGYzNjMifS5mYS1yZXBlYXQtMTpiZWZvcmV7Y29udGVudDoiXGYzNjUifS5mYS1yZXBlYXQtMS1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzY2In0uZmEtcmVwZWF0LWFsdDpiZWZvcmV7Y29udGVudDoiXGYzNjQifS5mYS1yZXBseTpiZWZvcmV7Y29udGVudDoiXGYzZTUifS5mYS1yZXBseS1hbGw6YmVmb3Jle2NvbnRlbnQ6IlxmMTIyIn0uZmEtcmV0d2VldDpiZWZvcmV7Y29udGVudDoiXGYwNzkifS5mYS1yZXR3ZWV0LWFsdDpiZWZvcmV7Y29udGVudDoiXGYzNjEifS5mYS1yb2FkOmJlZm9yZXtjb250ZW50OiJcZjAxOCJ9LmZhLXJvYm90OmJlZm9yZXtjb250ZW50OiJcZjU0NCJ9LmZhLXJzczpiZWZvcmV7Y29udGVudDoiXGYwOWUifS5mYS1yc3Mtc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjE0MyJ9LmZhLXJ2OmJlZm9yZXtjb250ZW50OiJcZjdiZSJ9LmZhLXNhdmU6YmVmb3Jle2NvbnRlbnQ6IlxmMGM3In0uZmEtc2NyZXdkcml2ZXI6YmVmb3Jle2NvbnRlbnQ6IlxmNTRhIn0uZmEtc2VhcmNoOmJlZm9yZXtjb250ZW50OiJcZjAwMiJ9LmZhLXNlYXJjaC1taW51czpiZWZvcmV7Y29udGVudDoiXGYwMTAifS5mYS1zZWFyY2gtcGx1czpiZWZvcmV7Y29udGVudDoiXGYwMGUifS5mYS1zaGFwZXM6YmVmb3Jle2NvbnRlbnQ6IlxmNjFmIn0uZmEtc2hhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMDY0In0uZmEtc2hhcmUtYWxsOmJlZm9yZXtjb250ZW50OiJcZjM2NyJ9LmZhLXNoYXJlLWFsdDpiZWZvcmV7Y29udGVudDoiXGYxZTAifS5mYS1zaGFyZS1hbHQtc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjFlMSJ9LmZhLXNoYXJlLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYxNGQifS5mYS1zaGllbGQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTMyIn0uZmEtc2hpZWxkLWFsdDpiZWZvcmV7Y29udGVudDoiXGYzZWQifS5mYS1zaG9wcGluZy1iYXNrZXQ6YmVmb3Jle2NvbnRlbnQ6IlxmMjkxIn0uZmEtc2hvcHBpbmctY2FydDpiZWZvcmV7Y29udGVudDoiXGYwN2EifS5mYS1zaHV0dGxlLXZhbjpiZWZvcmV7Y29udGVudDoiXGY1YjYifS5mYS1zaWduLWluOmJlZm9yZXtjb250ZW50OiJcZjA5MCJ9LmZhLXNpZ24taW4tYWx0OmJlZm9yZXtjb250ZW50OiJcZjJmNiJ9LmZhLXNpZ24tb3V0OmJlZm9yZXtjb250ZW50OiJcZjA4YiJ9LmZhLXNpZ24tb3V0LWFsdDpiZWZvcmV7Y29udGVudDoiXGYyZjUifS5mYS1zaWduYWw6YmVmb3Jle2NvbnRlbnQ6IlxmMDEyIn0uZmEtc2lnbmFsLXN0cmVhbTpiZWZvcmV7Y29udGVudDoiXGY4ZGQifS5mYS1zaXRlbWFwOmJlZm9yZXtjb250ZW50OiJcZjBlOCJ9LmZhLXNsaWRlcnMtaDpiZWZvcmV7Y29udGVudDoiXGYxZGUifS5mYS1zbGlkZXJzLWgtc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjNmMCJ9LmZhLXNsaWRlcnMtdjpiZWZvcmV7Y29udGVudDoiXGYzZjEifS5mYS1zbGlkZXJzLXYtc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjNmMiJ9LmZhLXNtaWxlOmJlZm9yZXtjb250ZW50OiJcZjExOCJ9LmZhLXNtczpiZWZvcmV7Y29udGVudDoiXGY3Y2QifS5mYS1zbm93Zmxha2U6YmVmb3Jle2NvbnRlbnQ6IlxmMmRjIn0uZmEtc29ydDpiZWZvcmV7Y29udGVudDoiXGYwZGMifS5mYS1zb3J0LWFscGhhLWRvd246YmVmb3Jle2NvbnRlbnQ6IlxmMTVkIn0uZmEtc29ydC1hbHBoYS1kb3duLWFsdDpiZWZvcmV7Y29udGVudDoiXGY4ODEifS5mYS1zb3J0LWFscGhhLXVwOmJlZm9yZXtjb250ZW50OiJcZjE1ZSJ9LmZhLXNvcnQtYWxwaGEtdXAtYWx0OmJlZm9yZXtjb250ZW50OiJcZjg4MiJ9LmZhLXNvcnQtYWx0OmJlZm9yZXtjb250ZW50OiJcZjg4MyJ9LmZhLXNvcnQtYW1vdW50LWRvd246YmVmb3Jle2NvbnRlbnQ6IlxmMTYwIn0uZmEtc29ydC1hbW91bnQtZG93bi1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmODg0In0uZmEtc29ydC1hbW91bnQtdXA6YmVmb3Jle2NvbnRlbnQ6IlxmMTYxIn0uZmEtc29ydC1hbW91bnQtdXAtYWx0OmJlZm9yZXtjb250ZW50OiJcZjg4NSJ9LmZhLXNvcnQtY2lyY2xlOmJlZm9yZXtjb250ZW50OiJcZTAzMCJ9LmZhLXNvcnQtY2lyY2xlLWRvd246YmVmb3Jle2NvbnRlbnQ6IlxlMDMxIn0uZmEtc29ydC1jaXJjbGUtdXA6YmVmb3Jle2NvbnRlbnQ6IlxlMDMyIn0uZmEtc29ydC1kb3duOmJlZm9yZXtjb250ZW50OiJcZjBkZCJ9LmZhLXNvcnQtbnVtZXJpYy1kb3duOmJlZm9yZXtjb250ZW50OiJcZjE2MiJ9LmZhLXNvcnQtbnVtZXJpYy1kb3duLWFsdDpiZWZvcmV7Y29udGVudDoiXGY4ODYifS5mYS1zb3J0LW51bWVyaWMtdXA6YmVmb3Jle2NvbnRlbnQ6IlxmMTYzIn0uZmEtc29ydC1udW1lcmljLXVwLWFsdDpiZWZvcmV7Y29udGVudDoiXGY4ODcifS5mYS1zb3J0LXNoYXBlcy1kb3duOmJlZm9yZXtjb250ZW50OiJcZjg4OCJ9LmZhLXNvcnQtc2hhcGVzLWRvd24tYWx0OmJlZm9yZXtjb250ZW50OiJcZjg4OSJ9LmZhLXNvcnQtc2hhcGVzLXVwOmJlZm9yZXtjb250ZW50OiJcZjg4YSJ9LmZhLXNvcnQtc2hhcGVzLXVwLWFsdDpiZWZvcmV7Y29udGVudDoiXGY4OGIifS5mYS1zb3J0LXNpemUtZG93bjpiZWZvcmV7Y29udGVudDoiXGY4OGMifS5mYS1zb3J0LXNpemUtZG93bi1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmODhkIn0uZmEtc29ydC1zaXplLXVwOmJlZm9yZXtjb250ZW50OiJcZjg4ZSJ9LmZhLXNvcnQtc2l6ZS11cC1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmODhmIn0uZmEtc29ydC11cDpiZWZvcmV7Y29udGVudDoiXGYwZGUifS5mYS1zcGFkZTpiZWZvcmV7Y29udGVudDoiXGYyZjQifS5mYS1zcGlubmVyOmJlZm9yZXtjb250ZW50OiJcZjExMCJ9LmZhLXNwaW5uZXItdGhpcmQ6YmVmb3Jle2NvbnRlbnQ6IlxmM2Y0In0uZmEtc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjBjOCJ9LmZhLXN0YXI6YmVmb3Jle2NvbnRlbnQ6IlxmMDA1In0uZmEtc3Rhci1leGNsYW1hdGlvbjpiZWZvcmV7Y29udGVudDoiXGYyZjMifS5mYS1zdGFyLWhhbGY6YmVmb3Jle2NvbnRlbnQ6IlxmMDg5In0uZmEtc3Rhci1oYWxmLWFsdDpiZWZvcmV7Y29udGVudDoiXGY1YzAifS5mYS1zdGVlcmluZy13aGVlbDpiZWZvcmV7Y29udGVudDoiXGY2MjIifS5mYS1zdGlja3ktbm90ZTpiZWZvcmV7Y29udGVudDoiXGYyNDkifS5mYS1zdG9wd2F0Y2g6YmVmb3Jle2NvbnRlbnQ6IlxmMmYyIn0uZmEtc3RvcmU6YmVmb3Jle2NvbnRlbnQ6IlxmNTRlIn0uZmEtc3RvcmUtYWx0OmJlZm9yZXtjb250ZW50OiJcZjU0ZiJ9LmZhLXN1aXRjYXNlLXJvbGxpbmc6YmVmb3Jle2NvbnRlbnQ6IlxmNWMxIn0uZmEtc3VuOmJlZm9yZXtjb250ZW50OiJcZjE4NSJ9LmZhLXN5bmM6YmVmb3Jle2NvbnRlbnQ6IlxmMDIxIn0uZmEtc3luYy1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMmYxIn0uZmEtdGFibGV0OmJlZm9yZXtjb250ZW50OiJcZjEwYSJ9LmZhLXRhYmxldC1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmM2ZhIn0uZmEtdGFjaG9tZXRlcjpiZWZvcmV7Y29udGVudDoiXGYwZTQifS5mYS10YWNob21ldGVyLWFsdDpiZWZvcmV7Y29udGVudDoiXGYzZmQifS5mYS10YWNob21ldGVyLWFsdC1hdmVyYWdlOmJlZm9yZXtjb250ZW50OiJcZjYyNCJ9LmZhLXRhY2hvbWV0ZXItYWx0LWZhc3Q6YmVmb3Jle2NvbnRlbnQ6IlxmNjI1In0uZmEtdGFjaG9tZXRlci1hbHQtZmFzdGVzdDpiZWZvcmV7Y29udGVudDoiXGY2MjYifS5mYS10YWNob21ldGVyLWFsdC1zbG93OmJlZm9yZXtjb250ZW50OiJcZjYyNyJ9LmZhLXRhY2hvbWV0ZXItYWx0LXNsb3dlc3Q6YmVmb3Jle2NvbnRlbnQ6IlxmNjI4In0uZmEtdGFjaG9tZXRlci1hdmVyYWdlOmJlZm9yZXtjb250ZW50OiJcZjYyOSJ9LmZhLXRhY2hvbWV0ZXItZmFzdDpiZWZvcmV7Y29udGVudDoiXGY2MmEifS5mYS10YWNob21ldGVyLWZhc3Rlc3Q6YmVmb3Jle2NvbnRlbnQ6IlxmNjJiIn0uZmEtdGFjaG9tZXRlci1zbG93OmJlZm9yZXtjb250ZW50OiJcZjYyYyJ9LmZhLXRhY2hvbWV0ZXItc2xvd2VzdDpiZWZvcmV7Y29udGVudDoiXGY2MmQifS5mYS10YWc6YmVmb3Jle2NvbnRlbnQ6IlxmMDJiIn0uZmEtdGFnczpiZWZvcmV7Y29udGVudDoiXGYwMmMifS5mYS10YXhpOmJlZm9yZXtjb250ZW50OiJcZjFiYSJ9LmZhLXRlbXBlcmF0dXJlLWhpZ2g6YmVmb3Jle2NvbnRlbnQ6IlxmNzY5In0uZmEtdGVtcGVyYXR1cmUtbG93OmJlZm9yZXtjb250ZW50OiJcZjc2YiJ9LmZhLXRleHQtaGVpZ2h0OmJlZm9yZXtjb250ZW50OiJcZjAzNCJ9LmZhLXRleHQtd2lkdGg6YmVmb3Jle2NvbnRlbnQ6IlxmMDM1In0uZmEtdGhlcm1vbWV0ZXItaGFsZjpiZWZvcmV7Y29udGVudDoiXGYyYzkifS5mYS10aHVtYnMtZG93bjpiZWZvcmV7Y29udGVudDoiXGYxNjUifS5mYS10aHVtYnMtdXA6YmVmb3Jle2NvbnRlbnQ6IlxmMTY0In0uZmEtdGlja2V0OmJlZm9yZXtjb250ZW50OiJcZjE0NSJ9LmZhLXRpa3RvazpiZWZvcmV7Y29udGVudDoiXGUwN2IifS5mYS10aW1lczpiZWZvcmV7Y29udGVudDoiXGYwMGQifS5mYS10aW1lcy1jaXJjbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMDU3In0uZmEtdGltZXMtaGV4YWdvbjpiZWZvcmV7Y29udGVudDoiXGYyZWUifS5mYS10aW1lcy1vY3RhZ29uOmJlZm9yZXtjb250ZW50OiJcZjJmMCJ9LmZhLXRpbWVzLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYyZDMifS5mYS10aW50OmJlZm9yZXtjb250ZW50OiJcZjA0MyJ9LmZhLXRpcmU6YmVmb3Jle2NvbnRlbnQ6IlxmNjMxIn0uZmEtdGlyZS1mbGF0OmJlZm9yZXtjb250ZW50OiJcZjYzMiJ9LmZhLXRpcmUtcHJlc3N1cmUtd2FybmluZzpiZWZvcmV7Y29udGVudDoiXGY2MzMifS5mYS10aXJlLXJ1Z2dlZDpiZWZvcmV7Y29udGVudDoiXGY2MzQifS5mYS10b2dnbGUtb2ZmOmJlZm9yZXtjb250ZW50OiJcZjIwNCJ9LmZhLXRvZ2dsZS1vbjpiZWZvcmV7Y29udGVudDoiXGYyMDUifS5mYS10b29sczpiZWZvcmV7Y29udGVudDoiXGY3ZDkifS5mYS10cmFpbGVyOmJlZm9yZXtjb250ZW50OiJcZTA0MSJ9LmZhLXRyYXNoOmJlZm9yZXtjb250ZW50OiJcZjFmOCJ9LmZhLXRyYXNoLWFsdDpiZWZvcmV7Y29udGVudDoiXGYyZWQifS5mYS10cmFzaC1yZXN0b3JlOmJlZm9yZXtjb250ZW50OiJcZjgyOSJ9LmZhLXRyYXNoLXJlc3RvcmUtYWx0OmJlZm9yZXtjb250ZW50OiJcZjgyYSJ9LmZhLXRyYXNoLXVuZG86YmVmb3Jle2NvbnRlbnQ6IlxmODk1In0uZmEtdHJhc2gtdW5kby1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmODk2In0uZmEtdHJpYW5nbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMmVjIn0uZmEtdHJvcGh5OmJlZm9yZXtjb250ZW50OiJcZjA5MSJ9LmZhLXRyb3BoeS1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMmViIn0uZmEtdHJ1Y2s6YmVmb3Jle2NvbnRlbnQ6IlxmMGQxIn0uZmEtdHJ1Y2stbG9hZGluZzpiZWZvcmV7Y29udGVudDoiXGY0ZGUifS5mYS10cnVjay1tb25zdGVyOmJlZm9yZXtjb250ZW50OiJcZjYzYiJ9LmZhLXRydWNrLXBpY2t1cDpiZWZvcmV7Y29udGVudDoiXGY2M2MifS5mYS10dHk6YmVmb3Jle2NvbnRlbnQ6IlxmMWU0In0uZmEtdHY6YmVmb3Jle2NvbnRlbnQ6IlxmMjZjIn0uZmEtdHdpdHRlcjpiZWZvcmV7Y29udGVudDoiXGYwOTkifS5mYS10d2l0dGVyLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYwODEifS5mYS11bmRvOmJlZm9yZXtjb250ZW50OiJcZjBlMiJ9LmZhLXVuZG8tYWx0OmJlZm9yZXtjb250ZW50OiJcZjJlYSJ9LmZhLXVwbG9hZDpiZWZvcmV7Y29udGVudDoiXGYwOTMifS5mYS11c2QtY2lyY2xlOmJlZm9yZXtjb250ZW50OiJcZjJlOCJ9LmZhLXVzZC1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMmU5In0uZmEtdXNlcjpiZWZvcmV7Y29udGVudDoiXGYwMDcifS5mYS11c2VyLWFsdDpiZWZvcmV7Y29udGVudDoiXGY0MDYifS5mYS11c2VyLWNoZWNrOmJlZm9yZXtjb250ZW50OiJcZjRmYyJ9LmZhLXVzZXItY2lyY2xlOmJlZm9yZXtjb250ZW50OiJcZjJiZCJ9LmZhLXVzZXItZnJpZW5kczpiZWZvcmV7Y29udGVudDoiXGY1MDAifS5mYS11c2VyczpiZWZvcmV7Y29udGVudDoiXGYwYzAifS5mYS12aWRlbzpiZWZvcmV7Y29udGVudDoiXGYwM2QifS5mYS12b2ljZW1haWw6YmVmb3Jle2NvbnRlbnQ6IlxmODk3In0uZmEtdm9sdW1lOmJlZm9yZXtjb250ZW50OiJcZjZhOCJ9LmZhLXZvbHVtZS1kb3duOmJlZm9yZXtjb250ZW50OiJcZjAyNyJ9LmZhLXZvbHVtZS1tdXRlOmJlZm9yZXtjb250ZW50OiJcZjZhOSJ9LmZhLXZvbHVtZS1vZmY6YmVmb3Jle2NvbnRlbnQ6IlxmMDI2In0uZmEtdm9sdW1lLXNsYXNoOmJlZm9yZXtjb250ZW50OiJcZjJlMiJ9LmZhLXZvbHVtZS11cDpiZWZvcmV7Y29udGVudDoiXGYwMjgifS5mYS13YWdvbi1jb3ZlcmVkOmJlZm9yZXtjb250ZW50OiJcZjhlZSJ9LmZhLXdhbGtpZS10YWxraWU6YmVmb3Jle2NvbnRlbnQ6IlxmOGVmIn0uZmEtd2ViY2FtOmJlZm9yZXtjb250ZW50OiJcZjgzMiJ9LmZhLXdlYmNhbS1zbGFzaDpiZWZvcmV7Y29udGVudDoiXGY4MzMifS5mYS13aGVlbGNoYWlyOmJlZm9yZXtjb250ZW50OiJcZjE5MyJ9LmZhLXdpZmk6YmVmb3Jle2NvbnRlbnQ6IlxmMWViIn0uZmEtd3JlbmNoOmJlZm9yZXtjb250ZW50OiJcZjBhZCJ9LmZhLXlvdXR1YmU6YmVmb3Jle2NvbnRlbnQ6IlxmMTY3In0uZmEteW91dHViZS1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmNDMxIn0uZmEtc2hpZWxkLWNoZWNrOmJlZm9yZXtjb250ZW50OiJcZjJmNyJ9LmZhLWxpbms6YmVmb3Jle2NvbnRlbnQ6IlxmMGMxIn0uZmEtdW5saW5rOmJlZm9yZXtjb250ZW50OiJcZjEyNyJ9LmZhLWJhZGdlLWRvbGxhcjpiZWZvcmV7Y29udGVudDoiXGY2NDUifS5mYS1wZW4tc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjE0YiJ9LmZhLWNvbW1lbnQtYWx0LWRvdHM6YmVmb3Jle2NvbnRlbnQ6IlxmNGEzIn0uZmEtYXJyb3ctZG93bi10by1saW5lOmJlZm9yZXtjb250ZW50OiJcZjMzZCJ9LmZhLXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZjM1NiI7fS5zci1vbmx5e2JvcmRlcjowO2NsaXA6cmVjdCgwLDAsMCwwKTtoZWlnaHQ6MXB4O21hcmdpbjotMXB4O292ZXJmbG93OmhpZGRlbjtwYWRkaW5nOjA7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MXB4fS5zci1vbmx5LWZvY3VzYWJsZTphY3RpdmUsLnNyLW9ubHktZm9jdXNhYmxlOmZvY3Vze2NsaXA6YXV0bztoZWlnaHQ6YXV0bzttYXJnaW46MDtvdmVyZmxvdzp2aXNpYmxlO3Bvc2l0aW9uOnN0YXRpYzt3aWR0aDphdXRvfUBmb250LWZhY2V7Zm9udC1mYW1pbHk6J0ZvbnQgQXdlc29tZSA1IEJyYW5kcyc7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtZGlzcGxheTpibG9jaztzcmM6dXJsKC8vZm9udHMuZDJjbWVkaWEuY2Evd2ViZm9udHMvZGVza3RvcC1hd2Vzb21lL3dlYmZvbnRzL2ZhLWJyYW5kcy00MDAuZW90KTtzcmM6dXJsKC8vZm9udHMuZDJjbWVkaWEuY2Evd2ViZm9udHMvZGVza3RvcC1hd2Vzb21lL3dlYmZvbnRzL2ZhLWJyYW5kcy00MDAuZW90PyNpZWZpeCkgZm9ybWF0KCJlbWJlZGRlZC1vcGVudHlwZSIpLHVybCgvL2ZvbnRzLmQyY21lZGlhLmNhL3dlYmZvbnRzL2Rlc2t0b3AtYXdlc29tZS93ZWJmb250cy9mYS1icmFuZHMtNDAwLndvZmYyKSBmb3JtYXQoIndvZmYyIiksdXJsKC8vZm9udHMuZDJjbWVkaWEuY2Evd2ViZm9udHMvZGVza3RvcC1hd2Vzb21lL3dlYmZvbnRzL2ZhLWJyYW5kcy00MDAud29mZikgZm9ybWF0KCJ3b2ZmIiksdXJsKC8vZm9udHMuZDJjbWVkaWEuY2Evd2ViZm9udHMvZGVza3RvcC1hd2Vzb21lL3dlYmZvbnRzL2ZhLWJyYW5kcy00MDAudHRmKSBmb3JtYXQoInRydWV0eXBlIiksdXJsKC8vZm9udHMuZDJjbWVkaWEuY2Evd2ViZm9udHMvZGVza3RvcC1hd2Vzb21lL3dlYmZvbnRzL2ZhLWJyYW5kcy00MDAuc3ZnI2ZvbnRhd2Vzb21lKSBmb3JtYXQoInN2ZyIpfS5mYWJ7Zm9udC1mYW1pbHk6J0ZvbnQgQXdlc29tZSA1IEJyYW5kcyc7Zm9udC13ZWlnaHQ6NDAwfUBmb250LWZhY2V7Zm9udC1mYW1pbHk6J0ZvbnQgQXdlc29tZSA1IFBybyc7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC13ZWlnaHQ6MzAwO2ZvbnQtZGlzcGxheTpibG9jaztzcmM6dXJsKC8vZm9udHMuZDJjbWVkaWEuY2Evd2ViZm9udHMvZGVza3RvcC1hd2Vzb21lL3dlYmZvbnRzL2ZhLWxpZ2h0LTMwMC5lb3QpO3NyYzp1cmwoLy9mb250cy5kMmNtZWRpYS5jYS93ZWJmb250cy9kZXNrdG9wLWF3ZXNvbWUvd2ViZm9udHMvZmEtbGlnaHQtMzAwLmVvdD8jaWVmaXgpIGZvcm1hdCgiZW1iZWRkZWQtb3BlbnR5cGUiKSx1cmwoLy9mb250cy5kMmNtZWRpYS5jYS93ZWJmb250cy9kZXNrdG9wLWF3ZXNvbWUvd2ViZm9udHMvZmEtbGlnaHQtMzAwLndvZmYyKSBmb3JtYXQoIndvZmYyIiksdXJsKC8vZm9udHMuZDJjbWVkaWEuY2Evd2ViZm9udHMvZGVza3RvcC1hd2Vzb21lL3dlYmZvbnRzL2ZhLWxpZ2h0LTMwMC53b2ZmKSBmb3JtYXQoIndvZmYiKSx1cmwoLy9mb250cy5kMmNtZWRpYS5jYS93ZWJmb250cy9kZXNrdG9wLWF3ZXNvbWUvd2ViZm9udHMvZmEtbGlnaHQtMzAwLnR0ZikgZm9ybWF0KCJ0cnVldHlwZSIpLHVybCgvL2ZvbnRzLmQyY21lZGlhLmNhL3dlYmZvbnRzL2Rlc2t0b3AtYXdlc29tZS93ZWJmb250cy9mYS1saWdodC0zMDAuc3ZnI2ZvbnRhd2Vzb21lKSBmb3JtYXQoInN2ZyIpfS5mYWx7Zm9udC1mYW1pbHk6J0ZvbnQgQXdlc29tZSA1IFBybyc7Zm9udC13ZWlnaHQ6MzAwfUBmb250LWZhY2V7Zm9udC1mYW1pbHk6J0ZvbnQgQXdlc29tZSA1IFBybyc7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtZGlzcGxheTpibG9jaztzcmM6dXJsKC8vZm9udHMuZDJjbWVkaWEuY2Evd2ViZm9udHMvZGVza3RvcC1hd2Vzb21lL3dlYmZvbnRzL2ZhLXJlZ3VsYXItNDAwLmVvdCk7c3JjOnVybCgvL2ZvbnRzLmQyY21lZGlhLmNhL3dlYmZvbnRzL2Rlc2t0b3AtYXdlc29tZS93ZWJmb250cy9mYS1yZWd1bGFyLTQwMC5lb3Q\/I2llZml4KSBmb3JtYXQoImVtYmVkZGVkLW9wZW50eXBlIiksdXJsKC8vZm9udHMuZDJjbWVkaWEuY2Evd2ViZm9udHMvZGVza3RvcC1hd2Vzb21lL3dlYmZvbnRzL2ZhLXJlZ3VsYXItNDAwLndvZmYyKSBmb3JtYXQoIndvZmYyIiksdXJsKC8vZm9udHMuZDJjbWVkaWEuY2Evd2ViZm9udHMvZGVza3RvcC1hd2Vzb21lL3dlYmZvbnRzL2ZhLXJlZ3VsYXItNDAwLndvZmYpIGZvcm1hdCgid29mZiIpLHVybCgvL2ZvbnRzLmQyY21lZGlhLmNhL3dlYmZvbnRzL2Rlc2t0b3AtYXdlc29tZS93ZWJmb250cy9mYS1yZWd1bGFyLTQwMC50dGYpIGZvcm1hdCgidHJ1ZXR5cGUiKSx1cmwoLy9mb250cy5kMmNtZWRpYS5jYS93ZWJmb250cy9kZXNrdG9wLWF3ZXNvbWUvd2ViZm9udHMvZmEtcmVndWxhci00MDAuc3ZnI2ZvbnRhd2Vzb21lKSBmb3JtYXQoInN2ZyIpfS5mYXJ7Zm9udC1mYW1pbHk6J0ZvbnQgQXdlc29tZSA1IFBybyc7Zm9udC13ZWlnaHQ6NDAwfUBmb250LWZhY2V7Zm9udC1mYW1pbHk6J0ZvbnQgQXdlc29tZSA1IFBybyc7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC13ZWlnaHQ6OTAwO2ZvbnQtZGlzcGxheTpibG9jaztzcmM6dXJsKC8vZm9udHMuZDJjbWVkaWEuY2Evd2ViZm9udHMvZGVza3RvcC1hd2Vzb21lL3dlYmZvbnRzL2ZhLXNvbGlkLTkwMC5lb3QpO3NyYzp1cmwoLy9mb250cy5kMmNtZWRpYS5jYS93ZWJmb250cy9kZXNrdG9wLWF3ZXNvbWUvd2ViZm9udHMvZmEtc29saWQtOTAwLmVvdD8jaWVmaXgpIGZvcm1hdCgiZW1iZWRkZWQtb3BlbnR5cGUiKSx1cmwoLy9mb250cy5kMmNtZWRpYS5jYS93ZWJmb250cy9kZXNrdG9wLWF3ZXNvbWUvd2ViZm9udHMvZmEtc29saWQtOTAwLndvZmYyKSBmb3JtYXQoIndvZmYyIiksdXJsKC8vZm9udHMuZDJjbWVkaWEuY2Evd2ViZm9udHMvZGVza3RvcC1hd2Vzb21lL3dlYmZvbnRzL2ZhLXNvbGlkLTkwMC53b2ZmKSBmb3JtYXQoIndvZmYiKSx1cmwoLy9mb250cy5kMmNtZWRpYS5jYS93ZWJmb250cy9kZXNrdG9wLWF3ZXNvbWUvd2ViZm9udHMvZmEtc29saWQtOTAwLnR0ZikgZm9ybWF0KCJ0cnVldHlwZSIpLHVybCgvL2ZvbnRzLmQyY21lZGlhLmNhL3dlYmZvbnRzL2Rlc2t0b3AtYXdlc29tZS93ZWJmb250cy9mYS1zb2xpZC05MDAuc3ZnI2ZvbnRhd2Vzb21lKSBmb3JtYXQoInN2ZyIpfS5mYSwuZmFze2ZvbnQtZmFtaWx5OidGb250IEF3ZXNvbWUgNSBQcm8nIWltcG9ydGFudDtmb250LXdlaWdodDo5MDB9QGZvbnQtZmFjZXtmb250LWRpc3BsYXk6c3dhcDtmb250LWZhbWlseTonRDJDQ3VzdG9tSWNvbnMnO3NyYzpsb2NhbChEMkNDdXN0b21JY29ucyksdXJsKC8vZm9udHMuZDJjbWVkaWEuY2Evd2ViZm9udHMvZDJjLWN1c3RvbS1pY29ucy5lb3Q\/I2llZml4KSBmb3JtYXQoImVtYmVkZGVkLW9wZW50eXBlIiksdXJsKC8vZm9udHMuZDJjbWVkaWEuY2Evd2ViZm9udHMvZDJjLWN1c3RvbS1pY29ucy53b2ZmKSBmb3JtYXQoIndvZmYiKSx1cmwoLy9mb250cy5kMmNtZWRpYS5jYS93ZWJmb250cy9kMmMtY3VzdG9tLWljb25zLnR0ZikgZm9ybWF0KCJ0cnVldHlwZSIpLHVybCgvL2ZvbnRzLmQyY21lZGlhLmNhL3dlYmZvbnRzL2QyYy1jdXN0b20taWNvbnMuc3ZnI3N2Z0ZvbnROYW1lKSBmb3JtYXQoInN2ZyIpO2ZvbnQtd2VpZ2h0OjQwMDtmb250LXN0eWxlOm5vcm1hbH0uZmEteC10d2l0dGVyOmJlZm9yZXtmb250LWZhbWlseTonRDJDQ3VzdG9tSWNvbnMnLHNlcmlmO2NvbnRlbnQ6IlxlOTAwIjtkaXNwbGF5OmJsb2NrO2ZvbnQtd2VpZ2h0OjQwMDtmb250LXN0eWxlOm5vcm1hbH0KLyoqIC9jc3MvZm9udC1hd2Vzb21lLmNvbnRlbnQubWluLmNzcyAqKi8KLmZhLTUwMHB4OmJlZm9yZXtjb250ZW50OiJcZjI2ZSJ9LmZhLWFjY2Vzc2libGUtaWNvbjpiZWZvcmV7Y29udGVudDoiXGYzNjgifS5mYS1hY2N1c29mdDpiZWZvcmV7Y29udGVudDoiXGYzNjkifS5mYS1hZGRyZXNzLWJvb2s6YmVmb3Jle2NvbnRlbnQ6IlxmMmI5In0uZmEtYWRkcmVzcy1jYXJkOmJlZm9yZXtjb250ZW50OiJcZjJiYiJ9LmZhLWFkanVzdDpiZWZvcmV7Y29udGVudDoiXGYwNDIifS5mYS1hZG46YmVmb3Jle2NvbnRlbnQ6IlxmMTcwIn0uZmEtYWR2ZXJzYWw6YmVmb3Jle2NvbnRlbnQ6IlxmMzZhIn0uZmEtYWZmaWxpYXRldGhlbWU6YmVmb3Jle2NvbnRlbnQ6IlxmMzZiIn0uZmEtYWxnb2xpYTpiZWZvcmV7Y29udGVudDoiXGYzNmMifS5mYS1hbGlnbi1jZW50ZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMDM3In0uZmEtYWxpZ24tanVzdGlmeTpiZWZvcmV7Y29udGVudDoiXGYwMzkifS5mYS1hbGlnbi1sZWZ0OmJlZm9yZXtjb250ZW50OiJcZjAzNiJ9LmZhLWFsaWduLXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZjAzOCJ9LmZhLWFtYXpvbjpiZWZvcmV7Y29udGVudDoiXGYyNzAifS5mYS1hbWF6b24tcGF5OmJlZm9yZXtjb250ZW50OiJcZjQyYyJ9LmZhLWFtYnVsYW5jZTpiZWZvcmV7Y29udGVudDoiXGYwZjkifS5mYS1hbWVyaWNhbi1zaWduLWxhbmd1YWdlLWludGVycHJldGluZzpiZWZvcmV7Y29udGVudDoiXGYyYTMifS5mYS1hbWlsaWE6YmVmb3Jle2NvbnRlbnQ6IlxmMzZkIn0uZmEtYW5jaG9yOmJlZm9yZXtjb250ZW50OiJcZjEzZCJ9LmZhLWFuZHJvaWQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTdiIn0uZmEtYW5nZWxsaXN0OmJlZm9yZXtjb250ZW50OiJcZjIwOSJ9LmZhLWFuZ2xlLWRvdWJsZS1kb3duOmJlZm9yZXtjb250ZW50OiJcZjEwMyJ9LmZhLWFuZ2xlLWRvdWJsZS1sZWZ0OmJlZm9yZXtjb250ZW50OiJcZjEwMCJ9LmZhLWFuZ2xlLWRvdWJsZS1yaWdodDpiZWZvcmV7Y29udGVudDoiXGYxMDEifS5mYS1hbmdsZS1kb3VibGUtdXA6YmVmb3Jle2NvbnRlbnQ6IlxmMTAyIn0uZmEtYW5nbGUtZG93bjpiZWZvcmV7Y29udGVudDoiXGYxMDcifS5mYS1hbmdsZS1sZWZ0OmJlZm9yZXtjb250ZW50OiJcZjEwNCJ9LmZhLWFuZ2xlLXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZjEwNSJ9LmZhLWFuZ2xlLXVwOmJlZm9yZXtjb250ZW50OiJcZjEwNiJ9LmZhLWFuZ3J5Y3JlYXRpdmU6YmVmb3Jle2NvbnRlbnQ6IlxmMzZlIn0uZmEtYW5ndWxhcjpiZWZvcmV7Y29udGVudDoiXGY0MjAifS5mYS1hcHAtc3RvcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMzZmIn0uZmEtYXBwLXN0b3JlLWlvczpiZWZvcmV7Y29udGVudDoiXGYzNzAifS5mYS1hcHBlcjpiZWZvcmV7Y29udGVudDoiXGYzNzEifS5mYS1hcHBsZTpiZWZvcmV7Y29udGVudDoiXGYxNzkifS5mYS1hcHBsZS1wYXk6YmVmb3Jle2NvbnRlbnQ6IlxmNDE1In0uZmEtYXJjaGl2ZTpiZWZvcmV7Y29udGVudDoiXGYxODcifS5mYS1hcnJvdy1hbHQtY2lyY2xlLWRvd246YmVmb3Jle2NvbnRlbnQ6IlxmMzU4In0uZmEtYXJyb3ctYWx0LWNpcmNsZS1sZWZ0OmJlZm9yZXtjb250ZW50OiJcZjM1OSJ9LmZhLWFycm93LWFsdC1jaXJjbGUtcmlnaHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzVhIn0uZmEtYXJyb3ctYWx0LWNpcmNsZS11cDpiZWZvcmV7Y29udGVudDoiXGYzNWIifS5mYS1hcnJvdy1jaXJjbGUtZG93bjpiZWZvcmV7Y29udGVudDoiXGYwYWIifS5mYS1hcnJvdy1jaXJjbGUtbGVmdDpiZWZvcmV7Y29udGVudDoiXGYwYTgifS5mYS1hcnJvdy1jaXJjbGUtcmlnaHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMGE5In0uZmEtYXJyb3ctY2lyY2xlLXVwOmJlZm9yZXtjb250ZW50OiJcZjBhYSJ9LmZhLWFycm93LWRvd246YmVmb3Jle2NvbnRlbnQ6IlxmMDYzIn0uZmEtYXJyb3ctbGVmdDpiZWZvcmV7Y29udGVudDoiXGYwNjAifS5mYS1hcnJvdy1yaWdodDpiZWZvcmV7Y29udGVudDoiXGYwNjEifS5mYS1hcnJvdy11cDpiZWZvcmV7Y29udGVudDoiXGYwNjIifS5mYS1hcnJvd3MtYWx0OmJlZm9yZXtjb250ZW50OiJcZjBiMiJ9LmZhLWFycm93cy1hbHQtaDpiZWZvcmV7Y29udGVudDoiXGYzMzcifS5mYS1hcnJvd3MtYWx0LXY6YmVmb3Jle2NvbnRlbnQ6IlxmMzM4In0uZmEtYXNzaXN0aXZlLWxpc3RlbmluZy1zeXN0ZW1zOmJlZm9yZXtjb250ZW50OiJcZjJhMiJ9LmZhLWFzdGVyaXNrOmJlZm9yZXtjb250ZW50OiJcZjA2OSJ9LmZhLWFzeW1tZXRyaWs6YmVmb3Jle2NvbnRlbnQ6IlxmMzcyIn0uZmEtYXQ6YmVmb3Jle2NvbnRlbnQ6IlxmMWZhIn0uZmEtYXVkaWJsZTpiZWZvcmV7Y29udGVudDoiXGYzNzMifS5mYS1hdWRpby1kZXNjcmlwdGlvbjpiZWZvcmV7Y29udGVudDoiXGYyOWUifS5mYS1hdXRvcHJlZml4ZXI6YmVmb3Jle2NvbnRlbnQ6IlxmNDFjIn0uZmEtYXZpYW5leDpiZWZvcmV7Y29udGVudDoiXGYzNzQifS5mYS1hdmlhdG86YmVmb3Jle2NvbnRlbnQ6IlxmNDIxIn0uZmEtYXdzOmJlZm9yZXtjb250ZW50OiJcZjM3NSJ9LmZhLWJhY2t3YXJkOmJlZm9yZXtjb250ZW50OiJcZjA0YSJ9LmZhLWJhbGFuY2Utc2NhbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMjRlIn0uZmEtYmFuOmJlZm9yZXtjb250ZW50OiJcZjA1ZSJ9LmZhLWJhbmRjYW1wOmJlZm9yZXtjb250ZW50OiJcZjJkNSJ9LmZhLWJhcmNvZGU6YmVmb3Jle2NvbnRlbnQ6IlxmMDJhIn0uZmEtYmFyczpiZWZvcmV7Y29udGVudDoiXGYwYzkifS5mYS1iYXNlYmFsbC1iYWxsOmJlZm9yZXtjb250ZW50OiJcZjQzMyJ9LmZhLWJhc2tldGJhbGwtYmFsbDpiZWZvcmV7Y29udGVudDoiXGY0MzQifS5mYS1iYXRoOmJlZm9yZXtjb250ZW50OiJcZjJjZCJ9LmZhLWJhdHRlcnktZW1wdHk6YmVmb3Jle2NvbnRlbnQ6IlxmMjQ0In0uZmEtYmF0dGVyeS1mdWxsOmJlZm9yZXtjb250ZW50OiJcZjI0MCJ9LmZhLWJhdHRlcnktaGFsZjpiZWZvcmV7Y29udGVudDoiXGYyNDIifS5mYS1iYXR0ZXJ5LXF1YXJ0ZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMjQzIn0uZmEtYmF0dGVyeS10aHJlZS1xdWFydGVyczpiZWZvcmV7Y29udGVudDoiXGYyNDEifS5mYS1iZWQ6YmVmb3Jle2NvbnRlbnQ6IlxmMjM2In0uZmEtYmVlcjpiZWZvcmV7Y29udGVudDoiXGYwZmMifS5mYS1iZWhhbmNlOmJlZm9yZXtjb250ZW50OiJcZjFiNCJ9LmZhLWJlaGFuY2Utc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjFiNSJ9LmZhLWJlbGw6YmVmb3Jle2NvbnRlbnQ6IlxmMGYzIn0uZmEtYmVsbC1zbGFzaDpiZWZvcmV7Y29udGVudDoiXGYxZjYifS5mYS1iaWN5Y2xlOmJlZm9yZXtjb250ZW50OiJcZjIwNiJ9LmZhLWJpbW9iamVjdDpiZWZvcmV7Y29udGVudDoiXGYzNzgifS5mYS1iaW5vY3VsYXJzOmJlZm9yZXtjb250ZW50OiJcZjFlNSJ9LmZhLWJpcnRoZGF5LWNha2U6YmVmb3Jle2NvbnRlbnQ6IlxmMWZkIn0uZmEtYml0YnVja2V0OmJlZm9yZXtjb250ZW50OiJcZjE3MSJ9LmZhLWJpdGNvaW46YmVmb3Jle2NvbnRlbnQ6IlxmMzc5In0uZmEtYml0eTpiZWZvcmV7Y29udGVudDoiXGYzN2EifS5mYS1ibGFjay10aWU6YmVmb3Jle2NvbnRlbnQ6IlxmMjdlIn0uZmEtYmxhY2tiZXJyeTpiZWZvcmV7Y29udGVudDoiXGYzN2IifS5mYS1ibGluZDpiZWZvcmV7Y29udGVudDoiXGYyOWQifS5mYS1ibG9nZ2VyOmJlZm9yZXtjb250ZW50OiJcZjM3YyJ9LmZhLWJsb2dnZXItYjpiZWZvcmV7Y29udGVudDoiXGYzN2QifS5mYS1ibHVldG9vdGg6YmVmb3Jle2NvbnRlbnQ6IlxmMjkzIn0uZmEtYmx1ZXRvb3RoLWI6YmVmb3Jle2NvbnRlbnQ6IlxmMjk0In0uZmEtYm9sZDpiZWZvcmV7Y29udGVudDoiXGYwMzIifS5mYS1ib2x0OmJlZm9yZXtjb250ZW50OiJcZjBlNyJ9LmZhLWJvbWI6YmVmb3Jle2NvbnRlbnQ6IlxmMWUyIn0uZmEtYm9vazpiZWZvcmV7Y29udGVudDoiXGYwMmQifS5mYS1ib29rbWFyazpiZWZvcmV7Y29udGVudDoiXGYwMmUifS5mYS1ib3dsaW5nLWJhbGw6YmVmb3Jle2NvbnRlbnQ6IlxmNDM2In0uZmEtYnJhaWxsZTpiZWZvcmV7Y29udGVudDoiXGYyYTEifS5mYS1icmllZmNhc2U6YmVmb3Jle2NvbnRlbnQ6IlxmMGIxIn0uZmEtYnRjOmJlZm9yZXtjb250ZW50OiJcZjE1YSJ9LmZhLWJ1ZzpiZWZvcmV7Y29udGVudDoiXGYxODgifS5mYS1idWlsZGluZzpiZWZvcmV7Y29udGVudDoiXGYxYWQifS5mYS1idWxsaG9ybjpiZWZvcmV7Y29udGVudDoiXGYwYTEifS5mYS1idWxsc2V5ZTpiZWZvcmV7Y29udGVudDoiXGYxNDAifS5mYS1idXJvbW9iZWxleHBlcnRlOmJlZm9yZXtjb250ZW50OiJcZjM3ZiJ9LmZhLWJ1czpiZWZvcmV7Y29udGVudDoiXGYyMDcifS5mYS1idXlzZWxsYWRzOmJlZm9yZXtjb250ZW50OiJcZjIwZCJ9LmZhLWNhbGN1bGF0b3I6YmVmb3Jle2NvbnRlbnQ6IlxmMWVjIn0uZmEtY2FsZW5kYXI6YmVmb3Jle2NvbnRlbnQ6IlxmMTMzIn0uZmEtY2FsZW5kYXItYWx0OmJlZm9yZXtjb250ZW50OiJcZjA3MyJ9LmZhLWNhbGVuZGFyLWNoZWNrOmJlZm9yZXtjb250ZW50OiJcZjI3NCJ9LmZhLWNhbGVuZGFyLW1pbnVzOmJlZm9yZXtjb250ZW50OiJcZjI3MiJ9LmZhLWNhbGVuZGFyLXBsdXM6YmVmb3Jle2NvbnRlbnQ6IlxmMjcxIn0uZmEtY2FsZW5kYXItdGltZXM6YmVmb3Jle2NvbnRlbnQ6IlxmMjczIn0uZmEtY2FtZXJhOmJlZm9yZXtjb250ZW50OiJcZjAzMCJ9LmZhLWNhbWVyYS1yZXRybzpiZWZvcmV7Y29udGVudDoiXGYwODMifS5mYS1jYXI6YmVmb3JlLC5mYS1hdXRvbW9iaWxlOmJlZm9yZXtjb250ZW50OiJcZjFiOSJ9LmZhLWNhcmV0LWRvd246YmVmb3Jle2NvbnRlbnQ6IlxmMGQ3In0uZmEtY2FyZXQtbGVmdDpiZWZvcmV7Y29udGVudDoiXGYwZDkifS5mYS1jYXJldC1yaWdodDpiZWZvcmV7Y29udGVudDoiXGYwZGEifS5mYS1jYXJldC1zcXVhcmUtZG93bjpiZWZvcmV7Y29udGVudDoiXGYxNTAifS5mYS1jYXJldC1zcXVhcmUtbGVmdDpiZWZvcmV7Y29udGVudDoiXGYxOTEifS5mYS1jYXJldC1zcXVhcmUtcmlnaHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTUyIn0uZmEtY2FyZXQtc3F1YXJlLXVwOmJlZm9yZXtjb250ZW50OiJcZjE1MSJ9LmZhLWNhcmV0LXVwOmJlZm9yZXtjb250ZW50OiJcZjBkOCJ9LmZhLWNhcnQtYXJyb3ctZG93bjpiZWZvcmV7Y29udGVudDoiXGYyMTgifS5mYS1jYXJ0LXBsdXM6YmVmb3Jle2NvbnRlbnQ6IlxmMjE3In0uZmEtY2MtYW1hem9uLXBheTpiZWZvcmV7Y29udGVudDoiXGY0MmQifS5mYS1jYy1hbWV4OmJlZm9yZXtjb250ZW50OiJcZjFmMyJ9LmZhLWNjLWFwcGxlLXBheTpiZWZvcmV7Y29udGVudDoiXGY0MTYifS5mYS1jYy1kaW5lcnMtY2x1YjpiZWZvcmV7Y29udGVudDoiXGYyNGMifS5mYS1jYy1kaXNjb3ZlcjpiZWZvcmV7Y29udGVudDoiXGYxZjIifS5mYS1jYy1qY2I6YmVmb3Jle2NvbnRlbnQ6IlxmMjRiIn0uZmEtY2MtbWFzdGVyY2FyZDpiZWZvcmV7Y29udGVudDoiXGYxZjEifS5mYS1jYy1wYXlwYWw6YmVmb3Jle2NvbnRlbnQ6IlxmMWY0In0uZmEtY2Mtc3RyaXBlOmJlZm9yZXtjb250ZW50OiJcZjFmNSJ9LmZhLWNjLXZpc2E6YmVmb3Jle2NvbnRlbnQ6IlxmMWYwIn0uZmEtY2VudGVyY29kZTpiZWZvcmV7Y29udGVudDoiXGYzODAifS5mYS1jZXJ0aWZpY2F0ZTpiZWZvcmV7Y29udGVudDoiXGYwYTMifS5mYS1jaGFydC1hcmVhOmJlZm9yZXtjb250ZW50OiJcZjFmZSJ9LmZhLWNoYXJ0LWJhcjpiZWZvcmV7Y29udGVudDoiXGYwODAifS5mYS1jaGFydC1saW5lOmJlZm9yZXtjb250ZW50OiJcZjIwMSJ9LmZhLWNoYXJ0LXBpZTpiZWZvcmV7Y29udGVudDoiXGYyMDAifS5mYS1jaGVjazpiZWZvcmV7Y29udGVudDoiXGYwMGMifS5mYS1jaGVjay1jaXJjbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMDU4In0uZmEtY2hlY2stc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjE0YSJ9LmZhLWNoZXNzOmJlZm9yZXtjb250ZW50OiJcZjQzOSJ9LmZhLWNoZXNzLWJpc2hvcDpiZWZvcmV7Y29udGVudDoiXGY0M2EifS5mYS1jaGVzcy1ib2FyZDpiZWZvcmV7Y29udGVudDoiXGY0M2MifS5mYS1jaGVzcy1raW5nOmJlZm9yZXtjb250ZW50OiJcZjQzZiJ9LmZhLWNoZXNzLWtuaWdodDpiZWZvcmV7Y29udGVudDoiXGY0NDEifS5mYS1jaGVzcy1wYXduOmJlZm9yZXtjb250ZW50OiJcZjQ0MyJ9LmZhLWNoZXNzLXF1ZWVuOmJlZm9yZXtjb250ZW50OiJcZjQ0NSJ9LmZhLWNoZXNzLXJvb2s6YmVmb3Jle2NvbnRlbnQ6IlxmNDQ3In0uZmEtY2hldnJvbi1jaXJjbGUtZG93bjpiZWZvcmV7Y29udGVudDoiXGYxM2EifS5mYS1jaGV2cm9uLWNpcmNsZS1sZWZ0OmJlZm9yZXtjb250ZW50OiJcZjEzNyJ9LmZhLWNoZXZyb24tY2lyY2xlLXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZjEzOCJ9LmZhLWNoZXZyb24tY2lyY2xlLXVwOmJlZm9yZXtjb250ZW50OiJcZjEzOSJ9LmZhLWNoZXZyb24tZG93bjpiZWZvcmV7Y29udGVudDoiXGYwNzgifS5mYS1jaGV2cm9uLWxlZnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDUzIn0uZmEtY2hldnJvbi1yaWdodDpiZWZvcmV7Y29udGVudDoiXGYwNTQifS5mYS1jaGV2cm9uLXVwOmJlZm9yZXtjb250ZW50OiJcZjA3NyJ9LmZhLWNoaWxkOmJlZm9yZXtjb250ZW50OiJcZjFhZSJ9LmZhLWNocm9tZTpiZWZvcmV7Y29udGVudDoiXGYyNjgifS5mYS1jaXJjbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMTExIn0uZmEtY2lyY2xlLW5vdGNoOmJlZm9yZXtjb250ZW50OiJcZjFjZSJ9LmZhLWNsaXBib2FyZDpiZWZvcmV7Y29udGVudDoiXGYzMjgifS5mYS1jbG9jazpiZWZvcmV7Y29udGVudDoiXGYwMTcifS5mYS1jbG9uZTpiZWZvcmV7Y29udGVudDoiXGYyNGQifS5mYS1jbG9zZWQtY2FwdGlvbmluZzpiZWZvcmV7Y29udGVudDoiXGYyMGEifS5mYS1jbG91ZDpiZWZvcmV7Y29udGVudDoiXGYwYzIifS5mYS1jbG91ZC1kb3dubG9hZC1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzgxIn0uZmEtY2xvdWQtdXBsb2FkLWFsdDpiZWZvcmV7Y29udGVudDoiXGYzODIifS5mYS1jbG91ZHNjYWxlOmJlZm9yZXtjb250ZW50OiJcZjM4MyJ9LmZhLWNsb3Vkc21pdGg6YmVmb3Jle2NvbnRlbnQ6IlxmMzg0In0uZmEtY2xvdWR2ZXJzaWZ5OmJlZm9yZXtjb250ZW50OiJcZjM4NSJ9LmZhLWNvZGU6YmVmb3Jle2NvbnRlbnQ6IlxmMTIxIn0uZmEtY29kZS1icmFuY2g6YmVmb3Jle2NvbnRlbnQ6IlxmMTI2In0uZmEtY29kZXBlbjpiZWZvcmV7Y29udGVudDoiXGYxY2IifS5mYS1jb2RpZXBpZTpiZWZvcmV7Y29udGVudDoiXGYyODQifS5mYS1jb2ZmZWU6YmVmb3Jle2NvbnRlbnQ6IlxmMGY0In0uZmEtY29nOmJlZm9yZXtjb250ZW50OiJcZjAxMyJ9LmZhLWNvZ3M6YmVmb3Jle2NvbnRlbnQ6IlxmMDg1In0uZmEtZ2VhcnM6YmVmb3Jle2NvbnRlbnQ6IlxmMDg1In0uZmEtY29sdW1uczpiZWZvcmV7Y29udGVudDoiXGYwZGIifS5mYS1jb21tZW50OmJlZm9yZXtjb250ZW50OiJcZjA3NSJ9LmZhLWNvbW1lbnQtYWx0OmJlZm9yZXtjb250ZW50OiJcZjI3YSJ9LmZhLWNvbW1lbnRzOmJlZm9yZXtjb250ZW50OiJcZjA4NiJ9LmZhLWNvbXBhc3M6YmVmb3Jle2NvbnRlbnQ6IlxmMTRlIn0uZmEtY29tcHJlc3M6YmVmb3Jle2NvbnRlbnQ6IlxmMDY2In0uZmEtY29ubmVjdGRldmVsb3A6YmVmb3Jle2NvbnRlbnQ6IlxmMjBlIn0uZmEtY29udGFvOmJlZm9yZXtjb250ZW50OiJcZjI2ZCJ9LmZhLWNvcHk6YmVmb3Jle2NvbnRlbnQ6IlxmMGM1In0uZmEtY29weXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZjFmOSJ9LmZhLWNwYW5lbDpiZWZvcmV7Y29udGVudDoiXGYzODgifS5mYS1jcmVhdGl2ZS1jb21tb25zOmJlZm9yZXtjb250ZW50OiJcZjI1ZSJ9LmZhLWNyZWRpdC1jYXJkOmJlZm9yZXtjb250ZW50OiJcZjA5ZCJ9LmZhLWNyb3A6YmVmb3Jle2NvbnRlbnQ6IlxmMTI1In0uZmEtY3Jvc3NoYWlyczpiZWZvcmV7Y29udGVudDoiXGYwNWIifS5mYS1jc3MzOmJlZm9yZXtjb250ZW50OiJcZjEzYyJ9LmZhLWNzczMtYWx0OmJlZm9yZXtjb250ZW50OiJcZjM4YiJ9LmZhLWN1YmU6YmVmb3Jle2NvbnRlbnQ6IlxmMWIyIn0uZmEtY3ViZXM6YmVmb3Jle2NvbnRlbnQ6IlxmMWIzIn0uZmEtY3V0OmJlZm9yZXtjb250ZW50OiJcZjBjNCJ9LmZhLWN1dHRsZWZpc2g6YmVmb3Jle2NvbnRlbnQ6IlxmMzhjIn0uZmEtZC1hbmQtZDpiZWZvcmV7Y29udGVudDoiXGYzOGQifS5mYS1kYXNoY3ViZTpiZWZvcmV7Y29udGVudDoiXGYyMTAifS5mYS1kYXRhYmFzZTpiZWZvcmV7Y29udGVudDoiXGYxYzAifS5mYS1kZWFmOmJlZm9yZXtjb250ZW50OiJcZjJhNCJ9LmZhLWRlbGljaW91czpiZWZvcmV7Y29udGVudDoiXGYxYTUifS5mYS1kZXBsb3lkb2c6YmVmb3Jle2NvbnRlbnQ6IlxmMzhlIn0uZmEtZGVza3BybzpiZWZvcmV7Y29udGVudDoiXGYzOGYifS5mYS1kZXNrdG9wOmJlZm9yZXtjb250ZW50OiJcZjEwOCJ9LmZhLWRldmlhbnRhcnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMWJkIn0uZmEtZGlnZzpiZWZvcmV7Y29udGVudDoiXGYxYTYifS5mYS1kaWdpdGFsLW9jZWFuOmJlZm9yZXtjb250ZW50OiJcZjM5MSJ9LmZhLWRpc2NvcmQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzkyIn0uZmEtZGlzY291cnNlOmJlZm9yZXtjb250ZW50OiJcZjM5MyJ9LmZhLWRvY2h1YjpiZWZvcmV7Y29udGVudDoiXGYzOTQifS5mYS1kb2NrZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMzk1In0uZmEtZG9sbGFyLXNpZ246YmVmb3JlLC5mYS1kb2xsYXI6YmVmb3JlLC5mYS11c2Q6YmVmb3Jle2NvbnRlbnQ6IlxmMTU1In0uZmEtZG90LWNpcmNsZTpiZWZvcmV7Y29udGVudDoiXGYxOTIifS5mYS1kb3dubG9hZDpiZWZvcmV7Y29udGVudDoiXGYwMTkifS5mYS1kcmFmdDJkaWdpdGFsOmJlZm9yZXtjb250ZW50OiJcZjM5NiJ9LmZhLWRyaWJiYmxlOmJlZm9yZXtjb250ZW50OiJcZjE3ZCJ9LmZhLWRyaWJiYmxlLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYzOTcifS5mYS1kcm9wYm94OmJlZm9yZXtjb250ZW50OiJcZjE2YiJ9LmZhLWRydXBhbDpiZWZvcmV7Y29udGVudDoiXGYxYTkifS5mYS1keWFsb2c6YmVmb3Jle2NvbnRlbnQ6IlxmMzk5In0uZmEtZWFybHliaXJkczpiZWZvcmV7Y29udGVudDoiXGYzOWEifS5mYS1lZGdlOmJlZm9yZXtjb250ZW50OiJcZjI4MiJ9LmZhLWVkaXQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDQ0In0uZmEtZWplY3Q6YmVmb3Jle2NvbnRlbnQ6IlxmMDUyIn0uZmEtZWxlbWVudG9yOmJlZm9yZXtjb250ZW50OiJcZjQzMCJ9LmZhLWVsbGlwc2lzLWg6YmVmb3Jle2NvbnRlbnQ6IlxmMTQxIn0uZmEtZWxsaXBzaXMtdjpiZWZvcmV7Y29udGVudDoiXGYxNDIifS5mYS1lbWJlcjpiZWZvcmV7Y29udGVudDoiXGY0MjMifS5mYS1lbXBpcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMWQxIn0uZmEtZW52ZWxvcGU6YmVmb3Jle2NvbnRlbnQ6IlxmMGUwIn0uZmEtZW52ZWxvcGUtb3BlbjpiZWZvcmV7Y29udGVudDoiXGYyYjYifS5mYS1lbnZlbG9wZS1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMTk5In0uZmEtZW52aXJhOmJlZm9yZXtjb250ZW50OiJcZjI5OSJ9LmZhLWVyYXNlcjpiZWZvcmV7Y29udGVudDoiXGYxMmQifS5mYS1lcmxhbmc6YmVmb3Jle2NvbnRlbnQ6IlxmMzlkIn0uZmEtZXRoZXJldW06YmVmb3Jle2NvbnRlbnQ6IlxmNDJlIn0uZmEtZXRzeTpiZWZvcmV7Y29udGVudDoiXGYyZDcifS5mYS1ldXJvLXNpZ246YmVmb3Jle2NvbnRlbnQ6IlxmMTUzIn0uZmEtZXhjaGFuZ2UtYWx0OmJlZm9yZXtjb250ZW50OiJcZjM2MiJ9LmZhLWV4Y2xhbWF0aW9uOmJlZm9yZXtjb250ZW50OiJcZjEyYSJ9LmZhLWV4Y2xhbWF0aW9uLWNpcmNsZTpiZWZvcmV7Y29udGVudDoiXGYwNmEifS5mYS1leGNsYW1hdGlvbi10cmlhbmdsZTpiZWZvcmV7Y29udGVudDoiXGYwNzEifS5mYS1leHBhbmQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDY1In0uZmEtZXhwYW5kLWFycm93cy1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzFlIn0uZmEtZXhwZWRpdGVkc3NsOmJlZm9yZXtjb250ZW50OiJcZjIzZSJ9LmZhLWV4dGVybmFsLWxpbmstYWx0OmJlZm9yZXtjb250ZW50OiJcZjM1ZCJ9LmZhLWV4dGVybmFsLWxpbmstc3F1YXJlLWFsdDpiZWZvcmV7Y29udGVudDoiXGYzNjAifS5mYS1leWU6YmVmb3Jle2NvbnRlbnQ6IlxmMDZlIn0uZmEtZXllLWRyb3BwZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMWZiIn0uZmEtZXllLXNsYXNoOmJlZm9yZXtjb250ZW50OiJcZjA3MCJ9LmZhLWZhY2Vib29rOmJlZm9yZXtjb250ZW50OiJcZjA5YSJ9LmZhLWZhY2Vib29rLWY6YmVmb3Jle2NvbnRlbnQ6IlxmMzllIn0uZmEtZmFjZWJvb2stbWVzc2VuZ2VyOmJlZm9yZXtjb250ZW50OiJcZjM5ZiJ9LmZhLWZhY2Vib29rLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYwODIifS5mYS1mYXN0LWJhY2t3YXJkOmJlZm9yZXtjb250ZW50OiJcZjA0OSJ9LmZhLWZhc3QtZm9yd2FyZDpiZWZvcmV7Y29udGVudDoiXGYwNTAifS5mYS1mYXg6YmVmb3Jle2NvbnRlbnQ6IlxmMWFjIn0uZmEtZmVtYWxlOmJlZm9yZXtjb250ZW50OiJcZjE4MiJ9LmZhLWZpZ2h0ZXItamV0OmJlZm9yZXtjb250ZW50OiJcZjBmYiJ9LmZhLWZpbGU6YmVmb3JlLC5mYS1maWxlLW86YmVmb3Jle2NvbnRlbnQ6IlxmMTViIn0uZmEtZmlsZS1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTVjIn0uZmEtZmlsZS1hcmNoaXZlOmJlZm9yZXtjb250ZW50OiJcZjFjNiJ9LmZhLWZpbGUtYXVkaW86YmVmb3Jle2NvbnRlbnQ6IlxmMWM3In0uZmEtZmlsZS1jb2RlOmJlZm9yZXtjb250ZW50OiJcZjFjOSJ9LmZhLWZpbGUtZXhjZWw6YmVmb3Jle2NvbnRlbnQ6IlxmMWMzIn0uZmEtZmlsZS1pbWFnZTpiZWZvcmV7Y29udGVudDoiXGYxYzUifS5mYS1maWxlLXBkZjpiZWZvcmV7Y29udGVudDoiXGYxYzEifS5mYS1maWxlLXBvd2VycG9pbnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMWM0In0uZmEtZmlsZS12aWRlbzpiZWZvcmV7Y29udGVudDoiXGYxYzgifS5mYS1maWxlLXdvcmQ6YmVmb3Jle2NvbnRlbnQ6IlxmMWMyIn0uZmEtZmlsbTpiZWZvcmV7Y29udGVudDoiXGYwMDgifS5mYS1maWx0ZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMGIwIn0uZmEtZmlyZTpiZWZvcmV7Y29udGVudDoiXGYwNmQifS5mYS1maXJlLWV4dGluZ3Vpc2hlcjpiZWZvcmV7Y29udGVudDoiXGYxMzQifS5mYS1maXJlZm94OmJlZm9yZXtjb250ZW50OiJcZjI2OSJ9LmZhLWZpcnN0LW9yZGVyOmJlZm9yZXtjb250ZW50OiJcZjJiMCJ9LmZhLWZpcnN0ZHJhZnQ6YmVmb3Jle2NvbnRlbnQ6IlxmM2ExIn0uZmEtZmxhZzpiZWZvcmV7Y29udGVudDoiXGYwMjQifS5mYS1mbGFnLWNoZWNrZXJlZDpiZWZvcmV7Y29udGVudDoiXGYxMWUifS5mYS1mbGFzazpiZWZvcmV7Y29udGVudDoiXGYwYzMifS5mYS1mbGlja3I6YmVmb3Jle2NvbnRlbnQ6IlxmMTZlIn0uZmEtZmxpcGJvYXJkOmJlZm9yZXtjb250ZW50OiJcZjQ0ZCJ9LmZhLWZseTpiZWZvcmV7Y29udGVudDoiXGY0MTcifS5mYS1mb2xkZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMDdiIn0uZmEtZm9sZGVyLW9wZW46YmVmb3Jle2NvbnRlbnQ6IlxmMDdjIn0uZmEtZm9udDpiZWZvcmV7Y29udGVudDoiXGYwMzEifS5mYS1mb250LWF3ZXNvbWU6YmVmb3Jle2NvbnRlbnQ6IlxmMmI0In0uZmEtZm9udC1hd2Vzb21lLWFsdDpiZWZvcmV7Y29udGVudDoiXGYzNWMifS5mYS1mb250LWF3ZXNvbWUtZmxhZzpiZWZvcmV7Y29udGVudDoiXGY0MjUifS5mYS1mb250aWNvbnM6YmVmb3Jle2NvbnRlbnQ6IlxmMjgwIn0uZmEtZm9udGljb25zLWZpOmJlZm9yZXtjb250ZW50OiJcZjNhMiJ9LmZhLWZvb3RiYWxsLWJhbGw6YmVmb3Jle2NvbnRlbnQ6IlxmNDRlIn0uZmEtZm9ydC1hd2Vzb21lOmJlZm9yZXtjb250ZW50OiJcZjI4NiJ9LmZhLWZvcnQtYXdlc29tZS1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmM2EzIn0uZmEtZm9ydW1iZWU6YmVmb3Jle2NvbnRlbnQ6IlxmMjExIn0uZmEtZm9yd2FyZDpiZWZvcmV7Y29udGVudDoiXGYwNGUifS5mYS1mb3Vyc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjE4MCJ9LmZhLWZyZWUtY29kZS1jYW1wOmJlZm9yZXtjb250ZW50OiJcZjJjNSJ9LmZhLWZyZWVic2Q6YmVmb3Jle2NvbnRlbnQ6IlxmM2E0In0uZmEtZnJvd246YmVmb3Jle2NvbnRlbnQ6IlxmMTE5In0uZmEtZnV0Ym9sOmJlZm9yZXtjb250ZW50OiJcZjFlMyJ9LmZhLWdhbWVwYWQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTFiIn0uZmEtZ2F2ZWw6YmVmb3Jle2NvbnRlbnQ6IlxmMGUzIn0uZmEtZ2VtOmJlZm9yZXtjb250ZW50OiJcZjNhNSJ9LmZhLWdlbmRlcmxlc3M6YmVmb3Jle2NvbnRlbnQ6IlxmMjJkIn0uZmEtZ2V0LXBvY2tldDpiZWZvcmV7Y29udGVudDoiXGYyNjUifS5mYS1nZzpiZWZvcmV7Y29udGVudDoiXGYyNjAifS5mYS1nZy1jaXJjbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMjYxIn0uZmEtZ2lmdDpiZWZvcmV7Y29udGVudDoiXGYwNmIifS5mYS1naXQ6YmVmb3Jle2NvbnRlbnQ6IlxmMWQzIn0uZmEtZ2l0LXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYxZDIifS5mYS1naXRodWI6YmVmb3Jle2NvbnRlbnQ6IlxmMDliIn0uZmEtZ2l0aHViLWFsdDpiZWZvcmV7Y29udGVudDoiXGYxMTMifS5mYS1naXRodWItc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjA5MiJ9LmZhLWdpdGtyYWtlbjpiZWZvcmV7Y29udGVudDoiXGYzYTYifS5mYS1naXRsYWI6YmVmb3Jle2NvbnRlbnQ6IlxmMjk2In0uZmEtZ2l0dGVyOmJlZm9yZXtjb250ZW50OiJcZjQyNiJ9LmZhLWdsYXNzLW1hcnRpbmk6YmVmb3Jle2NvbnRlbnQ6IlxmMDAwIn0uZmEtZ2xpZGU6YmVmb3Jle2NvbnRlbnQ6IlxmMmE1In0uZmEtZ2xpZGUtZzpiZWZvcmV7Y29udGVudDoiXGYyYTYifS5mYS1nbG9iZTpiZWZvcmV7Y29udGVudDoiXGYwYWMifS5mYS1nb2ZvcmU6YmVmb3Jle2NvbnRlbnQ6IlxmM2E3In0uZmEtZ29sZi1iYWxsOmJlZm9yZXtjb250ZW50OiJcZjQ1MCJ9LmZhLWdvb2RyZWFkczpiZWZvcmV7Y29udGVudDoiXGYzYTgifS5mYS1nb29kcmVhZHMtZzpiZWZvcmV7Y29udGVudDoiXGYzYTkifS5mYS1nb29nbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMWEwIn0uZmEtZ29vZ2xlLWRyaXZlOmJlZm9yZXtjb250ZW50OiJcZjNhYSJ9LmZhLWdvb2dsZS1wbGF5OmJlZm9yZXtjb250ZW50OiJcZjNhYiJ9LmZhLWdvb2dsZS1wbHVzOmJlZm9yZXtjb250ZW50OiJcZjJiMyJ9LmZhLWdvb2dsZS1wbHVzLWc6YmVmb3Jle2NvbnRlbnQ6IlxmMGQ1In0uZmEtZ29vZ2xlLXBsdXMtc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjBkNCJ9LmZhLWdvb2dsZS13YWxsZXQ6YmVmb3Jle2NvbnRlbnQ6IlxmMWVlIn0uZmEtZ3JhZHVhdGlvbi1jYXA6YmVmb3Jle2NvbnRlbnQ6IlxmMTlkIn0uZmEtZ3JhdGlwYXk6YmVmb3Jle2NvbnRlbnQ6IlxmMTg0In0uZmEtZ3JhdjpiZWZvcmV7Y29udGVudDoiXGYyZDYifS5mYS1ncmlwZmlyZTpiZWZvcmV7Y29udGVudDoiXGYzYWMifS5mYS1ncnVudDpiZWZvcmV7Y29udGVudDoiXGYzYWQifS5mYS1ndWxwOmJlZm9yZXtjb250ZW50OiJcZjNhZSJ9LmZhLWgtc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjBmZCJ9LmZhLWhhY2tlci1uZXdzOmJlZm9yZXtjb250ZW50OiJcZjFkNCJ9LmZhLWhhY2tlci1uZXdzLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYzYWYifS5mYS1oYW5kLWxpemFyZDpiZWZvcmV7Y29udGVudDoiXGYyNTgifS5mYS1oYW5kLXBhcGVyOmJlZm9yZXtjb250ZW50OiJcZjI1NiJ9LmZhLWhhbmQtcGVhY2U6YmVmb3Jle2NvbnRlbnQ6IlxmMjViIn0uZmEtaGFuZC1wb2ludC1kb3duOmJlZm9yZXtjb250ZW50OiJcZjBhNyJ9LmZhLWhhbmQtcG9pbnQtbGVmdDpiZWZvcmV7Y29udGVudDoiXGYwYTUifS5mYS1oYW5kLXBvaW50LXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZjBhNCJ9LmZhLWhhbmQtcG9pbnQtdXA6YmVmb3Jle2NvbnRlbnQ6IlxmMGE2In0uZmEtaGFuZC1wb2ludGVyOmJlZm9yZSwuZmEtaGFuZC1wb2ludGVyLW86YmVmb3Jle2NvbnRlbnQ6IlxmMjVhIn0uZmEtaGFuZC1yb2NrOmJlZm9yZXtjb250ZW50OiJcZjI1NSJ9LmZhLWhhbmQtc2Npc3NvcnM6YmVmb3Jle2NvbnRlbnQ6IlxmMjU3In0uZmEtaGFuZC1zcG9jazpiZWZvcmV7Y29udGVudDoiXGYyNTkifS5mYS1oYW5kc2hha2U6YmVmb3Jle2NvbnRlbnQ6IlxmMmI1In0uZmEtaGFzaHRhZzpiZWZvcmV7Y29udGVudDoiXGYyOTIifS5mYS1oZGQ6YmVmb3Jle2NvbnRlbnQ6IlxmMGEwIn0uZmEtaGVhZGluZzpiZWZvcmV7Y29udGVudDoiXGYxZGMifS5mYS1oZWFkcGhvbmVzOmJlZm9yZXtjb250ZW50OiJcZjAyNSJ9LmZhLWhlYXJ0OmJlZm9yZXtjb250ZW50OiJcZjAwNCJ9LmZhLWhlYXJ0YmVhdDpiZWZvcmV7Y29udGVudDoiXGYyMWUifS5mYS1oaXBzOmJlZm9yZXtjb250ZW50OiJcZjQ1MiJ9LmZhLWhpcmUtYS1oZWxwZXI6YmVmb3Jle2NvbnRlbnQ6IlxmM2IwIn0uZmEtaGlzdG9yeTpiZWZvcmV7Y29udGVudDoiXGYxZGEifS5mYS1ob2NrZXktcHVjazpiZWZvcmV7Y29udGVudDoiXGY0NTMifS5mYS1ob21lOmJlZm9yZXtjb250ZW50OiJcZjAxNSJ9LmZhLWhvb2xpOmJlZm9yZXtjb250ZW50OiJcZjQyNyJ9LmZhLWhvc3BpdGFsOmJlZm9yZXtjb250ZW50OiJcZjBmOCJ9LmZhLWhvdGphcjpiZWZvcmV7Y29udGVudDoiXGYzYjEifS5mYS1ob3VyZ2xhc3M6YmVmb3Jle2NvbnRlbnQ6IlxmMjU0In0uZmEtaG91cmdsYXNzLWVuZDpiZWZvcmV7Y29udGVudDoiXGYyNTMifS5mYS1ob3VyZ2xhc3MtaGFsZjpiZWZvcmV7Y29udGVudDoiXGYyNTIifS5mYS1ob3VyZ2xhc3Mtc3RhcnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMjUxIn0uZmEtaG91eno6YmVmb3Jle2NvbnRlbnQ6IlxmMjdjIn0uZmEtaHRtbDU6YmVmb3Jle2NvbnRlbnQ6IlxmMTNiIn0uZmEtaHVic3BvdDpiZWZvcmV7Y29udGVudDoiXGYzYjIifS5mYS1pLWN1cnNvcjpiZWZvcmV7Y29udGVudDoiXGYyNDYifS5mYS1pZC1iYWRnZTpiZWZvcmV7Y29udGVudDoiXGYyYzEifS5mYS1pZC1jYXJkOmJlZm9yZXtjb250ZW50OiJcZjJjMiJ9LmZhLWltYWdlOmJlZm9yZXtjb250ZW50OiJcZjAzZSJ9LmZhLWltYWdlczpiZWZvcmV7Y29udGVudDoiXGYzMDIifS5mYS1pbWRiOmJlZm9yZXtjb250ZW50OiJcZjJkOCJ9LmZhLWluYm94OmJlZm9yZXtjb250ZW50OiJcZjAxYyJ9LmZhLWluZGVudDpiZWZvcmV7Y29udGVudDoiXGYwM2MifS5mYS1pbmR1c3RyeTpiZWZvcmV7Y29udGVudDoiXGYyNzUifS5mYS1pbmZvOmJlZm9yZXtjb250ZW50OiJcZjEyOSJ9LmZhLWluZm8tY2lyY2xlOmJlZm9yZXtjb250ZW50OiJcZjA1YSJ9LmZhLWluc3RhZ3JhbTpiZWZvcmV7Y29udGVudDoiXGYxNmQifS5mYS1pbnRlcm5ldC1leHBsb3JlcjpiZWZvcmV7Y29udGVudDoiXGYyNmIifS5mYS1pb3hob3N0OmJlZm9yZXtjb250ZW50OiJcZjIwOCJ9LmZhLWl0YWxpYzpiZWZvcmV7Y29udGVudDoiXGYwMzMifS5mYS1pdHVuZXM6YmVmb3Jle2NvbnRlbnQ6IlxmM2I0In0uZmEtaXR1bmVzLW5vdGU6YmVmb3Jle2NvbnRlbnQ6IlxmM2I1In0uZmEtamVua2luczpiZWZvcmV7Y29udGVudDoiXGYzYjYifS5mYS1qb2dldDpiZWZvcmV7Y29udGVudDoiXGYzYjcifS5mYS1qb29tbGE6YmVmb3Jle2NvbnRlbnQ6IlxmMWFhIn0uZmEtanM6YmVmb3Jle2NvbnRlbnQ6IlxmM2I4In0uZmEtanMtc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjNiOSJ9LmZhLWpzZmlkZGxlOmJlZm9yZXtjb250ZW50OiJcZjFjYyJ9LmZhLWtleTpiZWZvcmV7Y29udGVudDoiXGYwODQifS5mYS1rZXlib2FyZDpiZWZvcmV7Y29udGVudDoiXGYxMWMifS5mYS1rZXljZG46YmVmb3Jle2NvbnRlbnQ6IlxmM2JhIn0uZmEta2lja3N0YXJ0ZXI6YmVmb3Jle2NvbnRlbnQ6IlxmM2JiIn0uZmEta2lja3N0YXJ0ZXItazpiZWZvcmV7Y29udGVudDoiXGYzYmMifS5mYS1rb3J2dWU6YmVmb3Jle2NvbnRlbnQ6IlxmNDJmIn0uZmEtbGFuZ3VhZ2U6YmVmb3Jle2NvbnRlbnQ6IlxmMWFiIn0uZmEtbGFwdG9wOmJlZm9yZXtjb250ZW50OiJcZjEwOSJ9LmZhLWxhcmF2ZWw6YmVmb3Jle2NvbnRlbnQ6IlxmM2JkIn0uZmEtbGFzdGZtOmJlZm9yZXtjb250ZW50OiJcZjIwMiJ9LmZhLWxhc3RmbS1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMjAzIn0uZmEtbGVhZjpiZWZvcmV7Y29udGVudDoiXGYwNmMifS5mYS1sZWFucHViOmJlZm9yZXtjb250ZW50OiJcZjIxMiJ9LmZhLWxlbW9uOmJlZm9yZXtjb250ZW50OiJcZjA5NCJ9LmZhLWxlc3M6YmVmb3Jle2NvbnRlbnQ6IlxmNDFkIn0uZmEtbGV2ZWwtZG93bi1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmM2JlIn0uZmEtbGV2ZWwtdXAtYWx0OmJlZm9yZXtjb250ZW50OiJcZjNiZiJ9LmZhLWxpZmUtcmluZzpiZWZvcmV7Y29udGVudDoiXGYxY2QifS5mYS1saWdodGJ1bGI6YmVmb3Jle2NvbnRlbnQ6IlxmMGViIn0uZmEtbGluZTpiZWZvcmV7Y29udGVudDoiXGYzYzAifS5mYS1saW5rOmJlZm9yZXtjb250ZW50OiJcZjBjMSJ9LmZhLWxpbmtlZGluOmJlZm9yZXtjb250ZW50OiJcZjA4YyJ9LmZhLWxpbmtlZGluLWluOmJlZm9yZXtjb250ZW50OiJcZjBlMSJ9LmZhLWxpbm9kZTpiZWZvcmV7Y29udGVudDoiXGYyYjgifS5mYS1saW51eDpiZWZvcmV7Y29udGVudDoiXGYxN2MifS5mYS1saXJhLXNpZ246YmVmb3Jle2NvbnRlbnQ6IlxmMTk1In0uZmEtbGlzdDpiZWZvcmV7Y29udGVudDoiXGYwM2EifS5mYS1saXN0LWFsdDpiZWZvcmV7Y29udGVudDoiXGYwMjIifS5mYS1saXN0LW9sOmJlZm9yZXtjb250ZW50OiJcZjBjYiJ9LmZhLWxpc3QtdWw6YmVmb3Jle2NvbnRlbnQ6IlxmMGNhIn0uZmEtbG9jYXRpb24tYXJyb3c6YmVmb3Jle2NvbnRlbnQ6IlxmMTI0In0uZmEtbG9jazpiZWZvcmV7Y29udGVudDoiXGYwMjMifS5mYS1sb2NrLW9wZW46YmVmb3Jle2NvbnRlbnQ6IlxmM2MxIn0uZmEtbG9uZy1hcnJvdy1hbHQtZG93bjpiZWZvcmV7Y29udGVudDoiXGYzMDkifS5mYS1sb25nLWFycm93LWFsdC1sZWZ0OmJlZm9yZXtjb250ZW50OiJcZjMwYSJ9LmZhLWxvbmctYXJyb3ctYWx0LXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZjMwYiJ9LmZhLWxvbmctYXJyb3ctYWx0LXVwOmJlZm9yZXtjb250ZW50OiJcZjMwYyJ9LmZhLWxvdy12aXNpb246YmVmb3Jle2NvbnRlbnQ6IlxmMmE4In0uZmEtbHlmdDpiZWZvcmV7Y29udGVudDoiXGYzYzMifS5mYS1tYWdlbnRvOmJlZm9yZXtjb250ZW50OiJcZjNjNCJ9LmZhLW1hZ2ljOmJlZm9yZXtjb250ZW50OiJcZjBkMCJ9LmZhLW1hZ25ldDpiZWZvcmV7Y29udGVudDoiXGYwNzYifS5mYS1tYWxlOmJlZm9yZXtjb250ZW50OiJcZjE4MyJ9LmZhLW1hcDpiZWZvcmV7Y29udGVudDoiXGYyNzkifS5mYS1tYXAtbWFya2VyOmJlZm9yZXtjb250ZW50OiJcZjA0MSJ9LmZhLW1hcC1tYXJrZXItYWx0OmJlZm9yZXtjb250ZW50OiJcZjNjNSJ9LmZhLW1hcC1waW46YmVmb3Jle2NvbnRlbnQ6IlxmMjc2In0uZmEtbWFwLXNpZ25zOmJlZm9yZXtjb250ZW50OiJcZjI3NyJ9LmZhLW1hcnM6YmVmb3Jle2NvbnRlbnQ6IlxmMjIyIn0uZmEtbWFycy1kb3VibGU6YmVmb3Jle2NvbnRlbnQ6IlxmMjI3In0uZmEtbWFycy1zdHJva2U6YmVmb3Jle2NvbnRlbnQ6IlxmMjI5In0uZmEtbWFycy1zdHJva2UtaDpiZWZvcmV7Y29udGVudDoiXGYyMmIifS5mYS1tYXJzLXN0cm9rZS12OmJlZm9yZXtjb250ZW50OiJcZjIyYSJ9LmZhLW1heGNkbjpiZWZvcmV7Y29udGVudDoiXGYxMzYifS5mYS1tZWRhcHBzOmJlZm9yZXtjb250ZW50OiJcZjNjNiJ9LmZhLW1lZGl1bTpiZWZvcmV7Y29udGVudDoiXGYyM2EifS5mYS1tZWRpdW0tbTpiZWZvcmV7Y29udGVudDoiXGYzYzcifS5mYS1tZWRraXQ6YmVmb3Jle2NvbnRlbnQ6IlxmMGZhIn0uZmEtbWVkcnQ6YmVmb3Jle2NvbnRlbnQ6IlxmM2M4In0uZmEtbWVldHVwOmJlZm9yZXtjb250ZW50OiJcZjJlMCJ9LmZhLW1laDpiZWZvcmV7Y29udGVudDoiXGYxMWEifS5mYS1tZXJjdXJ5OmJlZm9yZXtjb250ZW50OiJcZjIyMyJ9LmZhLW1pY3JvY2hpcDpiZWZvcmV7Y29udGVudDoiXGYyZGIifS5mYS1taWNyb3Bob25lOmJlZm9yZXtjb250ZW50OiJcZjEzMCJ9LmZhLW1pY3JvcGhvbmUtc2xhc2g6YmVmb3Jle2NvbnRlbnQ6IlxmMTMxIn0uZmEtbWljcm9zb2Z0OmJlZm9yZXtjb250ZW50OiJcZjNjYSJ9LmZhLW1pbnVzOmJlZm9yZXtjb250ZW50OiJcZjA2OCJ9LmZhLW1pbnVzLWNpcmNsZTpiZWZvcmV7Y29udGVudDoiXGYwNTYifS5mYS1taW51cy1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMTQ2In0uZmEtbWl4OmJlZm9yZXtjb250ZW50OiJcZjNjYiJ9LmZhLW1peGNsb3VkOmJlZm9yZXtjb250ZW50OiJcZjI4OSJ9LmZhLW1penVuaTpiZWZvcmV7Y29udGVudDoiXGYzY2MifS5mYS1tb2JpbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMTBiIn0uZmEtbW9iaWxlLWFsdDpiZWZvcmV7Y29udGVudDoiXGYzY2QifS5mYS1tb2R4OmJlZm9yZXtjb250ZW50OiJcZjI4NSJ9LmZhLW1vbmVybzpiZWZvcmV7Y29udGVudDoiXGYzZDAifS5mYS1tb25leS1iaWxsLWFsdDpiZWZvcmV7Y29udGVudDoiXGYzZDEifS5mYS1tb29uOmJlZm9yZXtjb250ZW50OiJcZjE4NiJ9LmZhLW1vdG9yY3ljbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMjFjIn0uZmEtbW91c2UtcG9pbnRlcjpiZWZvcmV7Y29udGVudDoiXGYyNDUifS5mYS1tdXNpYzpiZWZvcmV7Y29udGVudDoiXGYwMDEifS5mYS1uYXBzdGVyOmJlZm9yZXtjb250ZW50OiJcZjNkMiJ9LmZhLW5ldXRlcjpiZWZvcmV7Y29udGVudDoiXGYyMmMifS5mYS1uZXdzcGFwZXI6YmVmb3JlLC5mYS1uZXdzcGFwZXItbzpiZWZvcmV7Y29udGVudDoiXGYxZWEifS5mYS1uaW50ZW5kby1zd2l0Y2g6YmVmb3Jle2NvbnRlbnQ6IlxmNDE4In0uZmEtbm9kZTpiZWZvcmV7Y29udGVudDoiXGY0MTkifS5mYS1ub2RlLWpzOmJlZm9yZXtjb250ZW50OiJcZjNkMyJ9LmZhLW5wbTpiZWZvcmV7Y29udGVudDoiXGYzZDQifS5mYS1uczg6YmVmb3Jle2NvbnRlbnQ6IlxmM2Q1In0uZmEtbnV0cml0aW9uaXg6YmVmb3Jle2NvbnRlbnQ6IlxmM2Q2In0uZmEtb2JqZWN0LWdyb3VwOmJlZm9yZXtjb250ZW50OiJcZjI0NyJ9LmZhLW9iamVjdC11bmdyb3VwOmJlZm9yZXtjb250ZW50OiJcZjI0OCJ9LmZhLW9kbm9rbGFzc25pa2k6YmVmb3Jle2NvbnRlbnQ6IlxmMjYzIn0uZmEtb2Rub2tsYXNzbmlraS1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMjY0In0uZmEtb3BlbmNhcnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMjNkIn0uZmEtb3BlbmlkOmJlZm9yZXtjb250ZW50OiJcZjE5YiJ9LmZhLW9wZXJhOmJlZm9yZXtjb250ZW50OiJcZjI2YSJ9LmZhLW9wdGluLW1vbnN0ZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMjNjIn0uZmEtb3NpOmJlZm9yZXtjb250ZW50OiJcZjQxYSJ9LmZhLW91dGRlbnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDNiIn0uZmEtcGFnZTQ6YmVmb3Jle2NvbnRlbnQ6IlxmM2Q3In0uZmEtcGFnZWxpbmVzOmJlZm9yZXtjb250ZW50OiJcZjE4YyJ9LmZhLXBhaW50LWJydXNoOmJlZm9yZXtjb250ZW50OiJcZjFmYyJ9LmZhLXBhbGZlZDpiZWZvcmV7Y29udGVudDoiXGYzZDgifS5mYS1wYXBlci1wbGFuZTpiZWZvcmV7Y29udGVudDoiXGYxZDgifS5mYS1wYXBlcmNsaXA6YmVmb3Jle2NvbnRlbnQ6IlxmMGM2In0uZmEtcGFyYWdyYXBoOmJlZm9yZXtjb250ZW50OiJcZjFkZCJ9LmZhLXBhc3RlOmJlZm9yZXtjb250ZW50OiJcZjBlYSJ9LmZhLXBhdHJlb246YmVmb3Jle2NvbnRlbnQ6IlxmM2Q5In0uZmEtcGF1c2U6YmVmb3Jle2NvbnRlbnQ6IlxmMDRjIn0uZmEtcGF1c2UtY2lyY2xlOmJlZm9yZXtjb250ZW50OiJcZjI4YiJ9LmZhLXBhdzpiZWZvcmV7Y29udGVudDoiXGYxYjAifS5mYS1wYXlwYWw6YmVmb3Jle2NvbnRlbnQ6IlxmMWVkIn0uZmEtcGVuLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYxNGIifS5mYS1wZW5jaWwtYWx0OmJlZm9yZXtjb250ZW50OiJcZjMwMyJ9LmZhLXBlcmNlbnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMjk1In0uZmEtcGVyaXNjb3BlOmJlZm9yZXtjb250ZW50OiJcZjNkYSJ9LmZhLXBoYWJyaWNhdG9yOmJlZm9yZXtjb250ZW50OiJcZjNkYiJ9LmZhLXBob2VuaXgtZnJhbWV3b3JrOmJlZm9yZXtjb250ZW50OiJcZjNkYyJ9LmZhLXBob25lOmJlZm9yZXtjb250ZW50OiJcZjA5NSJ9LmZhLXBob25lLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYwOTgifS5mYS1waG9uZS12b2x1bWU6YmVmb3Jle2NvbnRlbnQ6IlxmMmEwIn0uZmEtcGhwOmJlZm9yZXtjb250ZW50OiJcZjQ1NyJ9LmZhLXBpZWQtcGlwZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMmFlIn0uZmEtcGllZC1waXBlci1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMWE4In0uZmEtcGllZC1waXBlci1wcDpiZWZvcmV7Y29udGVudDoiXGYxYTcifS5mYS1waW50ZXJlc3Q6YmVmb3Jle2NvbnRlbnQ6IlxmMGQyIn0uZmEtcGludGVyZXN0LXA6YmVmb3Jle2NvbnRlbnQ6IlxmMjMxIn0uZmEtcGludGVyZXN0LXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYwZDMifS5mYS1wbGFuZTpiZWZvcmV7Y29udGVudDoiXGYwNzIifS5mYS1wbGF5OmJlZm9yZXtjb250ZW50OiJcZjA0YiJ9LmZhLXBsYXktY2lyY2xlOmJlZm9yZXtjb250ZW50OiJcZjE0NCJ9LmZhLXBsYXlzdGF0aW9uOmJlZm9yZXtjb250ZW50OiJcZjNkZiJ9LmZhLXBsdWc6YmVmb3Jle2NvbnRlbnQ6IlxmMWU2In0uZmEtcGx1czpiZWZvcmV7Y29udGVudDoiXGYwNjcifS5mYS1wbHVzLWNpcmNsZTpiZWZvcmV7Y29udGVudDoiXGYwNTUifS5mYS1wbHVzLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYwZmUifS5mYS1wb2RjYXN0OmJlZm9yZXtjb250ZW50OiJcZjJjZSJ9LmZhLXBvdW5kLXNpZ246YmVmb3Jle2NvbnRlbnQ6IlxmMTU0In0uZmEtcG93ZXItb2ZmOmJlZm9yZXtjb250ZW50OiJcZjAxMSJ9LmZhLXByaW50OmJlZm9yZXtjb250ZW50OiJcZjAyZiJ9LmZhLXByb2R1Y3QtaHVudDpiZWZvcmV7Y29udGVudDoiXGYyODgifS5mYS1wdXNoZWQ6YmVmb3Jle2NvbnRlbnQ6IlxmM2UxIn0uZmEtcHV6emxlLXBpZWNlOmJlZm9yZXtjb250ZW50OiJcZjEyZSJ9LmZhLXB5dGhvbjpiZWZvcmV7Y29udGVudDoiXGYzZTIifS5mYS1xcTpiZWZvcmV7Y29udGVudDoiXGYxZDYifS5mYS1xcmNvZGU6YmVmb3Jle2NvbnRlbnQ6IlxmMDI5In0uZmEtcXVlc3Rpb246YmVmb3Jle2NvbnRlbnQ6IlxmMTI4In0uZmEtcXVlc3Rpb24tY2lyY2xlOmJlZm9yZXtjb250ZW50OiJcZjA1OSJ9LmZhLXF1aWRkaXRjaDpiZWZvcmV7Y29udGVudDoiXGY0NTgifS5mYS1xdWluc2NhcGU6YmVmb3Jle2NvbnRlbnQ6IlxmNDU5In0uZmEtcXVvcmE6YmVmb3Jle2NvbnRlbnQ6IlxmMmM0In0uZmEtcXVvdGUtbGVmdDpiZWZvcmV7Y29udGVudDoiXGYxMGQifS5mYS1xdW90ZS1yaWdodDpiZWZvcmV7Y29udGVudDoiXGYxMGUifS5mYS1yYW5kb206YmVmb3Jle2NvbnRlbnQ6IlxmMDc0In0uZmEtcmF2ZWxyeTpiZWZvcmV7Y29udGVudDoiXGYyZDkifS5mYS1yZWFjdDpiZWZvcmV7Y29udGVudDoiXGY0MWIifS5mYS1yZWJlbDpiZWZvcmV7Y29udGVudDoiXGYxZDAifS5mYS1yZWN5Y2xlOmJlZm9yZXtjb250ZW50OiJcZjFiOCJ9LmZhLXJlZC1yaXZlcjpiZWZvcmV7Y29udGVudDoiXGYzZTMifS5mYS1yZWRkaXQ6YmVmb3Jle2NvbnRlbnQ6IlxmMWExIn0uZmEtcmVkZGl0LWFsaWVuOmJlZm9yZXtjb250ZW50OiJcZjI4MSJ9LmZhLXJlZGRpdC1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMWEyIn0uZmEtcmVkbzpiZWZvcmV7Y29udGVudDoiXGYwMWUifS5mYS1yZWRvLWFsdDpiZWZvcmV7Y29udGVudDoiXGYyZjkifS5mYS1yZWdpc3RlcmVkOmJlZm9yZXtjb250ZW50OiJcZjI1ZCJ9LmZhLXJlbmRhY3Q6YmVmb3Jle2NvbnRlbnQ6IlxmM2U0In0uZmEtcmVucmVuOmJlZm9yZXtjb250ZW50OiJcZjE4YiJ9LmZhLXJlcGx5OmJlZm9yZXtjb250ZW50OiJcZjNlNSJ9LmZhLXJlcGx5LWFsbDpiZWZvcmV7Y29udGVudDoiXGYxMjIifS5mYS1yZXBseWQ6YmVmb3Jle2NvbnRlbnQ6IlxmM2U2In0uZmEtcmVzb2x2aW5nOmJlZm9yZXtjb250ZW50OiJcZjNlNyJ9LmZhLXJldHdlZXQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDc5In0uZmEtcm9hZDpiZWZvcmV7Y29udGVudDoiXGYwMTgifS5mYS1yb2NrZXQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTM1In0uZmEtcm9ja2V0Y2hhdDpiZWZvcmV7Y29udGVudDoiXGYzZTgifS5mYS1yb2Nrcm1zOmJlZm9yZXtjb250ZW50OiJcZjNlOSJ9LmZhLXJzczpiZWZvcmV7Y29udGVudDoiXGYwOWUifS5mYS1yc3Mtc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjE0MyJ9LmZhLXJ1YmxlLXNpZ246YmVmb3Jle2NvbnRlbnQ6IlxmMTU4In0uZmEtcnVwZWUtc2lnbjpiZWZvcmV7Y29udGVudDoiXGYxNTYifS5mYS1zYWZhcmk6YmVmb3Jle2NvbnRlbnQ6IlxmMjY3In0uZmEtc2FzczpiZWZvcmV7Y29udGVudDoiXGY0MWUifS5mYS1zYXZlOmJlZm9yZXtjb250ZW50OiJcZjBjNyJ9LmZhLXNjaGxpeDpiZWZvcmV7Y29udGVudDoiXGYzZWEifS5mYS1zY3JpYmQ6YmVmb3Jle2NvbnRlbnQ6IlxmMjhhIn0uZmEtc2VhcmNoOmJlZm9yZXtjb250ZW50OiJcZjAwMiJ9LmZhLXNlYXJjaC1taW51czpiZWZvcmV7Y29udGVudDoiXGYwMTAifS5mYS1zZWFyY2gtcGx1czpiZWZvcmV7Y29udGVudDoiXGYwMGUifS5mYS1zZWFyY2hlbmdpbjpiZWZvcmV7Y29udGVudDoiXGYzZWIifS5mYS1zZWxsY2FzdDpiZWZvcmV7Y29udGVudDoiXGYyZGEifS5mYS1zZWxsc3k6YmVmb3Jle2NvbnRlbnQ6IlxmMjEzIn0uZmEtc2VydmVyOmJlZm9yZXtjb250ZW50OiJcZjIzMyJ9LmZhLXNlcnZpY2VzdGFjazpiZWZvcmV7Y29udGVudDoiXGYzZWMifS5mYS1zaGFyZTpiZWZvcmV7Y29udGVudDoiXGYwNjQifS5mYS1zaGFyZS1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMWUwIn0uZmEtc2hhcmUtYWx0LXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYxZTEifS5mYS1zaGFyZS1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMTRkIn0uZmEtc2hla2VsLXNpZ246YmVmb3Jle2NvbnRlbnQ6IlxmMjBiIn0uZmEtc2hpZWxkLWFsdDpiZWZvcmV7Y29udGVudDoiXGYzZWQifS5mYS1zaGlwOmJlZm9yZXtjb250ZW50OiJcZjIxYSJ9LmZhLXNoaXJ0c2luYnVsazpiZWZvcmV7Y29udGVudDoiXGYyMTQifS5mYS1zaG9wcGluZy1iYWc6YmVmb3Jle2NvbnRlbnQ6IlxmMjkwIn0uZmEtc2hvcHBpbmctYmFza2V0OmJlZm9yZXtjb250ZW50OiJcZjI5MSJ9LmZhLXNob3BwaW5nLWNhcnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDdhIn0uZmEtc2hvd2VyOmJlZm9yZXtjb250ZW50OiJcZjJjYyJ9LmZhLXNpZ24taW4tYWx0OmJlZm9yZXtjb250ZW50OiJcZjJmNiJ9LmZhLXNpZ24tbGFuZ3VhZ2U6YmVmb3Jle2NvbnRlbnQ6IlxmMmE3In0uZmEtc2lnbi1vdXQtYWx0OmJlZm9yZXtjb250ZW50OiJcZjJmNSJ9LmZhLXNpZ25hbDpiZWZvcmV7Y29udGVudDoiXGYwMTIifS5mYS1zaW1wbHlidWlsdDpiZWZvcmV7Y29udGVudDoiXGYyMTUifS5mYS1zaXN0cml4OmJlZm9yZXtjb250ZW50OiJcZjNlZSJ9LmZhLXNpdGVtYXA6YmVmb3Jle2NvbnRlbnQ6IlxmMGU4In0uZmEtc2t5YXRsYXM6YmVmb3Jle2NvbnRlbnQ6IlxmMjE2In0uZmEtc2t5cGU6YmVmb3Jle2NvbnRlbnQ6IlxmMTdlIn0uZmEtc2xhY2s6YmVmb3Jle2NvbnRlbnQ6IlxmMTk4In0uZmEtc2xhY2staGFzaDpiZWZvcmV7Y29udGVudDoiXGYzZWYifS5mYS1zbGlkZXJzLWg6YmVmb3Jle2NvbnRlbnQ6IlxmMWRlIn0uZmEtc2xpZGVzaGFyZTpiZWZvcmV7Y29udGVudDoiXGYxZTcifS5mYS1zbWlsZTpiZWZvcmUsLmZhLXNtaWxlLW86YmVmb3Jle2NvbnRlbnQ6IlxmMTE4In0uZmEtc25hcGNoYXQ6YmVmb3Jle2NvbnRlbnQ6IlxmMmFiIn0uZmEtc25hcGNoYXQtZ2hvc3Q6YmVmb3Jle2NvbnRlbnQ6IlxmMmFjIn0uZmEtc25hcGNoYXQtc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjJhZCJ9LmZhLXNub3dmbGFrZTpiZWZvcmV7Y29udGVudDoiXGYyZGMifS5mYS1zb3J0OmJlZm9yZXtjb250ZW50OiJcZjBkYyJ9LmZhLXNvcnQtYWxwaGEtZG93bjpiZWZvcmV7Y29udGVudDoiXGYxNWQifS5mYS1zb3J0LWFscGhhLXVwOmJlZm9yZXtjb250ZW50OiJcZjE1ZSJ9LmZhLXNvcnQtYW1vdW50LWRvd246YmVmb3Jle2NvbnRlbnQ6IlxmMTYwIn0uZmEtc29ydC1hbW91bnQtdXA6YmVmb3Jle2NvbnRlbnQ6IlxmMTYxIn0uZmEtc29ydC1kb3duOmJlZm9yZXtjb250ZW50OiJcZjBkZCJ9LmZhLXNvcnQtbnVtZXJpYy1kb3duOmJlZm9yZXtjb250ZW50OiJcZjE2MiJ9LmZhLXNvcnQtbnVtZXJpYy11cDpiZWZvcmV7Y29udGVudDoiXGYxNjMifS5mYS1zb3J0LXVwOmJlZm9yZXtjb250ZW50OiJcZjBkZSJ9LmZhLXNvdW5kY2xvdWQ6YmVmb3Jle2NvbnRlbnQ6IlxmMWJlIn0uZmEtc3BhY2Utc2h1dHRsZTpiZWZvcmV7Y29udGVudDoiXGYxOTcifS5mYS1zcGVha2FwOmJlZm9yZXtjb250ZW50OiJcZjNmMyJ9LmZhLXNwaW5uZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMTEwIn0uZmEtc3BvdGlmeTpiZWZvcmV7Y29udGVudDoiXGYxYmMifS5mYS1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMGM4In0uZmEtc3F1YXJlLWZ1bGw6YmVmb3Jle2NvbnRlbnQ6IlxmNDVjIn0uZmEtc3RhY2stZXhjaGFuZ2U6YmVmb3Jle2NvbnRlbnQ6IlxmMThkIn0uZmEtc3RhY2stb3ZlcmZsb3c6YmVmb3Jle2NvbnRlbnQ6IlxmMTZjIn0uZmEtc3RhcjpiZWZvcmV7Y29udGVudDoiXGYwMDUifS5mYS1zdGFyLWhhbGY6YmVmb3Jle2NvbnRlbnQ6IlxmMDg5In0uZmEtc3RheWxpbmtlZDpiZWZvcmV7Y29udGVudDoiXGYzZjUifS5mYS1zdGVhbTpiZWZvcmV7Y29udGVudDoiXGYxYjYifS5mYS1zdGVhbS1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMWI3In0uZmEtc3RlYW0tc3ltYm9sOmJlZm9yZXtjb250ZW50OiJcZjNmNiJ9LmZhLXN0ZXAtYmFja3dhcmQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDQ4In0uZmEtc3RlcC1mb3J3YXJkOmJlZm9yZXtjb250ZW50OiJcZjA1MSJ9LmZhLXN0ZXRob3Njb3BlOmJlZm9yZXtjb250ZW50OiJcZjBmMSJ9LmZhLXN0aWNrZXItbXVsZTpiZWZvcmV7Y29udGVudDoiXGYzZjcifS5mYS1zdGlja3ktbm90ZTpiZWZvcmV7Y29udGVudDoiXGYyNDkifS5mYS1zdG9wOmJlZm9yZXtjb250ZW50OiJcZjA0ZCJ9LmZhLXN0b3AtY2lyY2xlOmJlZm9yZXtjb250ZW50OiJcZjI4ZCJ9LmZhLXN0b3B3YXRjaDpiZWZvcmV7Y29udGVudDoiXGYyZjIifS5mYS1zdHJhdmE6YmVmb3Jle2NvbnRlbnQ6IlxmNDI4In0uZmEtc3RyZWV0LXZpZXc6YmVmb3Jle2NvbnRlbnQ6IlxmMjFkIn0uZmEtc3RyaWtldGhyb3VnaDpiZWZvcmV7Y29udGVudDoiXGYwY2MifS5mYS1zdHJpcGU6YmVmb3Jle2NvbnRlbnQ6IlxmNDI5In0uZmEtc3RyaXBlLXM6YmVmb3Jle2NvbnRlbnQ6IlxmNDJhIn0uZmEtc3R1ZGlvdmluYXJpOmJlZm9yZXtjb250ZW50OiJcZjNmOCJ9LmZhLXN0dW1ibGV1cG9uOmJlZm9yZXtjb250ZW50OiJcZjFhNCJ9LmZhLXN0dW1ibGV1cG9uLWNpcmNsZTpiZWZvcmV7Y29udGVudDoiXGYxYTMifS5mYS1zdWJzY3JpcHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTJjIn0uZmEtc3Vid2F5OmJlZm9yZXtjb250ZW50OiJcZjIzOSJ9LmZhLXN1aXRjYXNlOmJlZm9yZXtjb250ZW50OiJcZjBmMiJ9LmZhLXN1bjpiZWZvcmUsLmZhLXN1bi1vOmJlZm9yZXtjb250ZW50OiJcZjE4NSJ9LmZhLXN1cGVycG93ZXJzOmJlZm9yZXtjb250ZW50OiJcZjJkZCJ9LmZhLXN1cGVyc2NyaXB0OmJlZm9yZXtjb250ZW50OiJcZjEyYiJ9LmZhLXN1cHBsZTpiZWZvcmV7Y29udGVudDoiXGYzZjkifS5mYS1zeW5jOmJlZm9yZXtjb250ZW50OiJcZjAyMSJ9LmZhLXN5bmMtYWx0OmJlZm9yZXtjb250ZW50OiJcZjJmMSJ9LmZhLXRhYmxlOmJlZm9yZXtjb250ZW50OiJcZjBjZSJ9LmZhLXRhYmxlLXRlbm5pczpiZWZvcmV7Y29udGVudDoiXGY0NWQifS5mYS10YWJsZXQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTBhIn0uZmEtdGFibGV0LWFsdDpiZWZvcmV7Y29udGVudDoiXGYzZmEifS5mYS10YWNob21ldGVyLWFsdDpiZWZvcmV7Y29udGVudDoiXGYzZmQifS5mYS10YWc6YmVmb3Jle2NvbnRlbnQ6IlxmMDJiIn0uZmEtdGFnczpiZWZvcmV7Y29udGVudDoiXGYwMmMifS5mYS10YXNrczpiZWZvcmV7Y29udGVudDoiXGYwYWUifS5mYS10YXhpOmJlZm9yZXtjb250ZW50OiJcZjFiYSJ9LmZhLXRlbGVncmFtOmJlZm9yZXtjb250ZW50OiJcZjJjNiJ9LmZhLXRlbGVncmFtLXBsYW5lOmJlZm9yZXtjb250ZW50OiJcZjNmZSJ9LmZhLXRlbmNlbnQtd2VpYm86YmVmb3Jle2NvbnRlbnQ6IlxmMWQ1In0uZmEtdGVybWluYWw6YmVmb3Jle2NvbnRlbnQ6IlxmMTIwIn0uZmEtdGV4dC1oZWlnaHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDM0In0uZmEtdGV4dC13aWR0aDpiZWZvcmV7Y29udGVudDoiXGYwMzUifS5mYS10aDpiZWZvcmV7Y29udGVudDoiXGYwMGEifS5mYS10aC1sYXJnZTpiZWZvcmV7Y29udGVudDoiXGYwMDkifS5mYS10aC1saXN0OmJlZm9yZXtjb250ZW50OiJcZjAwYiJ9LmZhLXRoZW1laXNsZTpiZWZvcmV7Y29udGVudDoiXGYyYjIifS5mYS10aGVybW9tZXRlci1lbXB0eTpiZWZvcmV7Y29udGVudDoiXGYyY2IifS5mYS10aGVybW9tZXRlci1mdWxsOmJlZm9yZXtjb250ZW50OiJcZjJjNyJ9LmZhLXRoZXJtb21ldGVyLWhhbGY6YmVmb3Jle2NvbnRlbnQ6IlxmMmM5In0uZmEtdGhlcm1vbWV0ZXItcXVhcnRlcjpiZWZvcmV7Y29udGVudDoiXGYyY2EifS5mYS10aGVybW9tZXRlci10aHJlZS1xdWFydGVyczpiZWZvcmV7Y29udGVudDoiXGYyYzgifS5mYS10aHVtYnMtZG93bjpiZWZvcmV7Y29udGVudDoiXGYxNjUifS5mYS10aHVtYnMtdXA6YmVmb3Jle2NvbnRlbnQ6IlxmMTY0In0uZmEtdGh1bWJ0YWNrOmJlZm9yZXtjb250ZW50OiJcZjA4ZCJ9LmZhLXRpY2tldC1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmM2ZmIn0uZmEtdGltZXM6YmVmb3Jle2NvbnRlbnQ6IlxmMDBkIn0uZmEtdGltZXMtY2lyY2xlOmJlZm9yZXtjb250ZW50OiJcZjA1NyJ9LmZhLXRpbnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDQzIn0uZmEtdG9nZ2xlLW9mZjpiZWZvcmV7Y29udGVudDoiXGYyMDQifS5mYS10b2dnbGUtb246YmVmb3Jle2NvbnRlbnQ6IlxmMjA1In0uZmEtdHJhZGVtYXJrOmJlZm9yZXtjb250ZW50OiJcZjI1YyJ9LmZhLXRyYWluOmJlZm9yZXtjb250ZW50OiJcZjIzOCJ9LmZhLXRyYW5zZ2VuZGVyOmJlZm9yZXtjb250ZW50OiJcZjIyNCJ9LmZhLXRyYW5zZ2VuZGVyLWFsdDpiZWZvcmV7Y29udGVudDoiXGYyMjUifS5mYS10cmFzaDpiZWZvcmV7Y29udGVudDoiXGYxZjgifS5mYS10cmFzaC1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMmVkIn0uZmEtdHJlZTpiZWZvcmV7Y29udGVudDoiXGYxYmIifS5mYS10cmVsbG86YmVmb3Jle2NvbnRlbnQ6IlxmMTgxIn0uZmEtdHJpcGFkdmlzb3I6YmVmb3Jle2NvbnRlbnQ6IlxmMjYyIn0uZmEtdHJvcGh5OmJlZm9yZXtjb250ZW50OiJcZjA5MSJ9LmZhLXRydWNrOmJlZm9yZXtjb250ZW50OiJcZjBkMSJ9LmZhLXR0eTpiZWZvcmV7Y29udGVudDoiXGYxZTQifS5mYS10dW1ibHI6YmVmb3Jle2NvbnRlbnQ6IlxmMTczIn0uZmEtdHVtYmxyLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYxNzQifS5mYS10djpiZWZvcmV7Y29udGVudDoiXGYyNmMifS5mYS10d2l0Y2g6YmVmb3Jle2NvbnRlbnQ6IlxmMWU4In0uZmEtdHdpdHRlcjpiZWZvcmV7Y29udGVudDoiXGYwOTkifS5mYS10d2l0dGVyLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYwODEifS5mYS10eXBvMzpiZWZvcmV7Y29udGVudDoiXGY0MmIifS5mYS11YmVyOmJlZm9yZXtjb250ZW50OiJcZjQwMiJ9LmZhLXVpa2l0OmJlZm9yZXtjb250ZW50OiJcZjQwMyJ9LmZhLXVtYnJlbGxhOmJlZm9yZXtjb250ZW50OiJcZjBlOSJ9LmZhLXVuZGVybGluZTpiZWZvcmV7Y29udGVudDoiXGYwY2QifS5mYS11bmRvOmJlZm9yZXtjb250ZW50OiJcZjBlMiJ9LmZhLXVuZG8tYWx0OmJlZm9yZXtjb250ZW50OiJcZjJlYSJ9LmZhLXVuaXJlZ2lzdHJ5OmJlZm9yZXtjb250ZW50OiJcZjQwNCJ9LmZhLXVuaXZlcnNhbC1hY2Nlc3M6YmVmb3Jle2NvbnRlbnQ6IlxmMjlhIn0uZmEtdW5pdmVyc2l0eTpiZWZvcmV7Y29udGVudDoiXGYxOWMifS5mYS11bmxpbms6YmVmb3Jle2NvbnRlbnQ6IlxmMTI3In0uZmEtdW5sb2NrOmJlZm9yZXtjb250ZW50OiJcZjA5YyJ9LmZhLXVubG9jay1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTNlIn0uZmEtdW50YXBwZDpiZWZvcmV7Y29udGVudDoiXGY0MDUifS5mYS11cGxvYWQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDkzIn0uZmEtdXNiOmJlZm9yZXtjb250ZW50OiJcZjI4NyJ9LmZhLXVzZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMDA3In0uZmEtdXNlci1jaXJjbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMmJkIn0uZmEtdXNlci1tZDpiZWZvcmV7Y29udGVudDoiXGYwZjAifS5mYS11c2VyLXBsdXM6YmVmb3Jle2NvbnRlbnQ6IlxmMjM0In0uZmEtdXNlci1zZWNyZXQ6YmVmb3Jle2NvbnRlbnQ6IlxmMjFiIn0uZmEtdXNlci10aW1lczpiZWZvcmV7Y29udGVudDoiXGYyMzUifS5mYS11c2VyczpiZWZvcmV7Y29udGVudDoiXGYwYzAifS5mYS11c3N1bm5haDpiZWZvcmV7Y29udGVudDoiXGY0MDcifS5mYS11dGVuc2lsLXNwb29uOmJlZm9yZXtjb250ZW50OiJcZjJlNSJ9LmZhLXV0ZW5zaWxzOmJlZm9yZXtjb250ZW50OiJcZjJlNyJ9LmZhLXZhYWRpbjpiZWZvcmV7Y29udGVudDoiXGY0MDgifS5mYS12ZW51czpiZWZvcmV7Y29udGVudDoiXGYyMjEifS5mYS12ZW51cy1kb3VibGU6YmVmb3Jle2NvbnRlbnQ6IlxmMjI2In0uZmEtdmVudXMtbWFyczpiZWZvcmV7Y29udGVudDoiXGYyMjgifS5mYS12aWFjb2luOmJlZm9yZXtjb250ZW50OiJcZjIzNyJ9LmZhLXZpYWRlbzpiZWZvcmV7Y29udGVudDoiXGYyYTkifS5mYS12aWFkZW8tc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjJhYSJ9LmZhLXZpYmVyOmJlZm9yZXtjb250ZW50OiJcZjQwOSJ9LmZhLXZpZGVvOmJlZm9yZXtjb250ZW50OiJcZjAzZCJ9LmZhLXZpbWVvOmJlZm9yZXtjb250ZW50OiJcZjQwYSJ9LmZhLXZpbWVvLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYxOTQifS5mYS12aW1lby12OmJlZm9yZXtjb250ZW50OiJcZjI3ZCJ9LmZhLXZpbmU6YmVmb3Jle2NvbnRlbnQ6IlxmMWNhIn0uZmEtdms6YmVmb3Jle2NvbnRlbnQ6IlxmMTg5In0uZmEtdm52OmJlZm9yZXtjb250ZW50OiJcZjQwYiJ9LmZhLXZvbGxleWJhbGwtYmFsbDpiZWZvcmV7Y29udGVudDoiXGY0NWYifS5mYS12b2x1bWUtZG93bjpiZWZvcmV7Y29udGVudDoiXGYwMjcifS5mYS12b2x1bWUtb2ZmOmJlZm9yZXtjb250ZW50OiJcZjAyNiJ9LmZhLXZvbHVtZS11cDpiZWZvcmV7Y29udGVudDoiXGYwMjgifS5mYS12dWVqczpiZWZvcmV7Y29udGVudDoiXGY0MWYifS5mYS13ZWlibzpiZWZvcmV7Y29udGVudDoiXGYxOGEifS5mYS13ZWl4aW46YmVmb3Jle2NvbnRlbnQ6IlxmMWQ3In0uZmEtd2hhdHNhcHA6YmVmb3Jle2NvbnRlbnQ6IlxmMjMyIn0uZmEtd2hhdHNhcHAtc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjQwYyJ9LmZhLXdoZWVsY2hhaXI6YmVmb3Jle2NvbnRlbnQ6IlxmMTkzIn0uZmEtd2htY3M6YmVmb3Jle2NvbnRlbnQ6IlxmNDBkIn0uZmEtd2lmaTpiZWZvcmV7Y29udGVudDoiXGYxZWIifS5mYS13aWtpcGVkaWEtdzpiZWZvcmV7Y29udGVudDoiXGYyNjYifS5mYS13aW5kb3ctY2xvc2U6YmVmb3Jle2NvbnRlbnQ6IlxmNDEwIn0uZmEtd2luZG93LW1heGltaXplOmJlZm9yZXtjb250ZW50OiJcZjJkMCJ9LmZhLXdpbmRvdy1taW5pbWl6ZTpiZWZvcmV7Y29udGVudDoiXGYyZDEifS5mYS13aW5kb3ctcmVzdG9yZTpiZWZvcmV7Y29udGVudDoiXGYyZDIifS5mYS13aW5kb3dzOmJlZm9yZXtjb250ZW50OiJcZjE3YSJ9LmZhLXdvbi1zaWduOmJlZm9yZXtjb250ZW50OiJcZjE1OSJ9LmZhLXdvcmRwcmVzczpiZWZvcmV7Y29udGVudDoiXGYxOWEifS5mYS13b3JkcHJlc3Mtc2ltcGxlOmJlZm9yZXtjb250ZW50OiJcZjQxMSJ9LmZhLXdwYmVnaW5uZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMjk3In0uZmEtd3BleHBsb3JlcjpiZWZvcmV7Y29udGVudDoiXGYyZGUifS5mYS13cGZvcm1zOmJlZm9yZXtjb250ZW50OiJcZjI5OCJ9LmZhLXdyZW5jaDpiZWZvcmV7Y29udGVudDoiXGYwYWQifS5mYS14Ym94OmJlZm9yZXtjb250ZW50OiJcZjQxMiJ9LmZhLXhpbmc6YmVmb3Jle2NvbnRlbnQ6IlxmMTY4In0uZmEteGluZy1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMTY5In0uZmEteS1jb21iaW5hdG9yOmJlZm9yZXtjb250ZW50OiJcZjIzYiJ9LmZhLXlhaG9vOmJlZm9yZXtjb250ZW50OiJcZjE5ZSJ9LmZhLXlhbmRleDpiZWZvcmV7Y29udGVudDoiXGY0MTMifS5mYS15YW5kZXgtaW50ZXJuYXRpb25hbDpiZWZvcmV7Y29udGVudDoiXGY0MTQifS5mYS15ZWxwOmJlZm9yZXtjb250ZW50OiJcZjFlOSJ9LmZhLXllbi1zaWduOmJlZm9yZXtjb250ZW50OiJcZjE1NyJ9LmZhLXlvYXN0OmJlZm9yZXtjb250ZW50OiJcZjJiMSJ9LmZhLXlvdXR1YmU6YmVmb3Jle2NvbnRlbnQ6IlxmMTY3In0uZmEteW91dHViZS1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmNDMxIn0KLyoqIC9jc3MvdjIvYW5pbWF0ZS5jc3MgKiovCi5hbmltLWJlYXQgeyAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOmFuaW0tYmVhdDsgYW5pbWF0aW9uLW5hbWU6YW5pbS1iZWF0OyAtd2Via2l0LWFuaW1hdGlvbi1kZWxheTp2YXIoLS1hbmltLWRlbGF5LDBzKTsgYW5pbWF0aW9uLWRlbGF5OnZhcigtLWFuaW0tZGVsYXksMHMpOyAtd2Via2l0LWFuaW1hdGlvbi1kaXJlY3Rpb246dmFyKC0tYW5pbS1kaXJlY3Rpb24sbm9ybWFsKTsgYW5pbWF0aW9uLWRpcmVjdGlvbjp2YXIoLS1hbmltLWRpcmVjdGlvbixub3JtYWwpOyAtd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbjp2YXIoLS1hbmltLWR1cmF0aW9uLDFzKTsgYW5pbWF0aW9uLWR1cmF0aW9uOnZhcigtLWFuaW0tZHVyYXRpb24sMXMpOyAtd2Via2l0LWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6dmFyKC0tYW5pbS1pdGVyYXRpb24tY291bnQsaW5maW5pdGUpOyBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OnZhcigtLWFuaW0taXRlcmF0aW9uLWNvdW50LGluZmluaXRlKTsgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOnZhcigtLWFuaW0tdGltaW5nLGVhc2UtaW4tb3V0KTsgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjp2YXIoLS1hbmltLXRpbWluZyxlYXNlLWluLW91dCkgfSAuYW5pbS1ib3VuY2UgeyAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOmFuaW0tYm91bmNlOyBhbmltYXRpb24tbmFtZTphbmltLWJvdW5jZTsgLXdlYmtpdC1hbmltYXRpb24tZGVsYXk6dmFyKC0tYW5pbS1kZWxheSwwcyk7IGFuaW1hdGlvbi1kZWxheTp2YXIoLS1hbmltLWRlbGF5LDBzKTsgLXdlYmtpdC1hbmltYXRpb24tZGlyZWN0aW9uOnZhcigtLWFuaW0tZGlyZWN0aW9uLG5vcm1hbCk7IGFuaW1hdGlvbi1kaXJlY3Rpb246dmFyKC0tYW5pbS1kaXJlY3Rpb24sbm9ybWFsKTsgLXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246dmFyKC0tYW5pbS1kdXJhdGlvbiwxcyk7IGFuaW1hdGlvbi1kdXJhdGlvbjp2YXIoLS1hbmltLWR1cmF0aW9uLDFzKTsgLXdlYmtpdC1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50OnZhcigtLWFuaW0taXRlcmF0aW9uLWNvdW50LGluZmluaXRlKTsgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDp2YXIoLS1hbmltLWl0ZXJhdGlvbi1jb3VudCxpbmZpbml0ZSk7IC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjp2YXIoLS1hbmltLXRpbWluZyxjdWJpYy1iZXppZXIoLjI4LC44NCwuNDIsMSkpOyBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOnZhcigtLWFuaW0tdGltaW5nLGN1YmljLWJlemllciguMjgsLjg0LC40MiwxKSkgfSAuYW5pbS1mYWRlIHsgLXdlYmtpdC1hbmltYXRpb24tbmFtZTphbmltLWZhZGU7IGFuaW1hdGlvbi1uYW1lOmFuaW0tZmFkZTsgLXdlYmtpdC1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50OnZhcigtLWFuaW0taXRlcmF0aW9uLWNvdW50LGluZmluaXRlKTsgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDp2YXIoLS1hbmltLWl0ZXJhdGlvbi1jb3VudCxpbmZpbml0ZSk7IC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjp2YXIoLS1hbmltLXRpbWluZyxjdWJpYy1iZXppZXIoLjQsMCwuNiwxKSk7IGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246dmFyKC0tYW5pbS10aW1pbmcsY3ViaWMtYmV6aWVyKC40LDAsLjYsMSkpIH0gLmFuaW0tYmVhdC1mYWRlLC5hbmltLWZhZGUgeyAtd2Via2l0LWFuaW1hdGlvbi1kZWxheTp2YXIoLS1hbmltLWRlbGF5LDBzKTsgYW5pbWF0aW9uLWRlbGF5OnZhcigtLWFuaW0tZGVsYXksMHMpOyAtd2Via2l0LWFuaW1hdGlvbi1kaXJlY3Rpb246dmFyKC0tYW5pbS1kaXJlY3Rpb24sbm9ybWFsKTsgYW5pbWF0aW9uLWRpcmVjdGlvbjp2YXIoLS1hbmltLWRpcmVjdGlvbixub3JtYWwpOyAtd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbjp2YXIoLS1hbmltLWR1cmF0aW9uLDFzKTsgYW5pbWF0aW9uLWR1cmF0aW9uOnZhcigtLWFuaW0tZHVyYXRpb24sMXMpIH0gLmFuaW0tYmVhdC1mYWRlIHsgLXdlYmtpdC1hbmltYXRpb24tbmFtZTphbmltLWJlYXQtZmFkZTsgYW5pbWF0aW9uLW5hbWU6YW5pbS1iZWF0LWZhZGU7IC13ZWJraXQtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDp2YXIoLS1hbmltLWl0ZXJhdGlvbi1jb3VudCxpbmZpbml0ZSk7IGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6dmFyKC0tYW5pbS1pdGVyYXRpb24tY291bnQsaW5maW5pdGUpOyAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246dmFyKC0tYW5pbS10aW1pbmcsY3ViaWMtYmV6aWVyKC40LDAsLjYsMSkpOyBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOnZhcigtLWFuaW0tdGltaW5nLGN1YmljLWJlemllciguNCwwLC42LDEpKSB9IC5hbmltLWZsaXAgeyAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOmFuaW0tZmxpcDsgYW5pbWF0aW9uLW5hbWU6YW5pbS1mbGlwOyAtd2Via2l0LWFuaW1hdGlvbi1kZWxheTp2YXIoLS1hbmltLWRlbGF5LDBzKTsgYW5pbWF0aW9uLWRlbGF5OnZhcigtLWFuaW0tZGVsYXksMHMpOyAtd2Via2l0LWFuaW1hdGlvbi1kaXJlY3Rpb246dmFyKC0tYW5pbS1kaXJlY3Rpb24sbm9ybWFsKTsgYW5pbWF0aW9uLWRpcmVjdGlvbjp2YXIoLS1hbmltLWRpcmVjdGlvbixub3JtYWwpOyAtd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbjp2YXIoLS1hbmltLWR1cmF0aW9uLDNzKTsgYW5pbWF0aW9uLWR1cmF0aW9uOnZhcigtLWFuaW0tZHVyYXRpb24sM3MpOyAtd2Via2l0LWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6dmFyKC0tYW5pbS1pdGVyYXRpb24tY291bnQsaW5maW5pdGUpOyBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OnZhcigtLWFuaW0taXRlcmF0aW9uLWNvdW50LGluZmluaXRlKTsgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOnZhcigtLWFuaW0tdGltaW5nLGVhc2UtaW4tb3V0KTsgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjp2YXIoLS1hbmltLXRpbWluZyxlYXNlLWluLW91dCkgfSAuYW5pbS1zaGFrZSB7IC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6YW5pbS1zaGFrZTsgYW5pbWF0aW9uLW5hbWU6YW5pbS1zaGFrZTsgLXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246dmFyKC0tYW5pbS1kdXJhdGlvbiwxcyk7IGFuaW1hdGlvbi1kdXJhdGlvbjp2YXIoLS1hbmltLWR1cmF0aW9uLDFzKTsgLXdlYmtpdC1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50OnZhcigtLWFuaW0taXRlcmF0aW9uLWNvdW50LGluZmluaXRlKTsgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDp2YXIoLS1hbmltLWl0ZXJhdGlvbi1jb3VudCxpbmZpbml0ZSk7IC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjp2YXIoLS1hbmltLXRpbWluZyxsaW5lYXIpOyBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOnZhcigtLWFuaW0tdGltaW5nLGxpbmVhcikgfSAuYW5pbS1zaGFrZSwuYW5pbS1zcGluIHsgLXdlYmtpdC1hbmltYXRpb24tZGVsYXk6dmFyKC0tYW5pbS1kZWxheSwwcyk7IGFuaW1hdGlvbi1kZWxheTp2YXIoLS1hbmltLWRlbGF5LDBzKTsgLXdlYmtpdC1hbmltYXRpb24tZGlyZWN0aW9uOnZhcigtLWFuaW0tZGlyZWN0aW9uLG5vcm1hbCk7IGFuaW1hdGlvbi1kaXJlY3Rpb246dmFyKC0tYW5pbS1kaXJlY3Rpb24sbm9ybWFsKSB9IC5hbmltLXNwaW4geyAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOmFuaW0tc3BpbjsgYW5pbWF0aW9uLW5hbWU6YW5pbS1zcGluOyAtd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbjp2YXIoLS1hbmltLWR1cmF0aW9uLDJzKTsgYW5pbWF0aW9uLWR1cmF0aW9uOnZhcigtLWFuaW0tZHVyYXRpb24sMnMpOyAtd2Via2l0LWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6dmFyKC0tYW5pbS1pdGVyYXRpb24tY291bnQsaW5maW5pdGUpOyBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OnZhcigtLWFuaW0taXRlcmF0aW9uLWNvdW50LGluZmluaXRlKTsgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOnZhcigtLWFuaW0tdGltaW5nLGxpbmVhcik7IGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246dmFyKC0tYW5pbS10aW1pbmcsbGluZWFyKSB9IC5hbmltLXNwaW4tcmV2ZXJzZSB7IC0tYW5pbS1kaXJlY3Rpb246cmV2ZXJzZSB9IC5hbmltLXB1bHNlLC5hbmltLXNwaW4tcHVsc2UgeyAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOmFuaW0tc3BpbjsgYW5pbWF0aW9uLW5hbWU6YW5pbS1zcGluOyAtd2Via2l0LWFuaW1hdGlvbi1kaXJlY3Rpb246dmFyKC0tYW5pbS1kaXJlY3Rpb24sbm9ybWFsKTsgYW5pbWF0aW9uLWRpcmVjdGlvbjp2YXIoLS1hbmltLWRpcmVjdGlvbixub3JtYWwpOyAtd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbjp2YXIoLS1hbmltLWR1cmF0aW9uLDFzKTsgYW5pbWF0aW9uLWR1cmF0aW9uOnZhcigtLWFuaW0tZHVyYXRpb24sMXMpOyAtd2Via2l0LWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6dmFyKC0tYW5pbS1pdGVyYXRpb24tY291bnQsaW5maW5pdGUpOyBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OnZhcigtLWFuaW0taXRlcmF0aW9uLWNvdW50LGluZmluaXRlKTsgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOnZhcigtLWFuaW0tdGltaW5nLHN0ZXBzKDgpKTsgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjp2YXIoLS1hbmltLXRpbWluZyxzdGVwcyg4KSkgfSBALXdlYmtpdC1rZXlmcmFtZXMgYW5pbS1iZWF0IHsgMCUsOTAlIHsgLXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMSk7IHRyYW5zZm9ybTpzY2FsZSgxKSB9IDQ1JSB7IC13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKHZhcigtLWFuaW0tYmVhdC1zY2FsZSwxLjI1KSk7IHRyYW5zZm9ybTpzY2FsZSh2YXIoLS1hbmltLWJlYXQtc2NhbGUsMS4yNSkpIH0gfSBAa2V5ZnJhbWVzIGFuaW0tYmVhdCB7IDAlLDkwJSB7IC13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDEpOyB0cmFuc2Zvcm06c2NhbGUoMSkgfSA0NSUgeyAtd2Via2l0LXRyYW5zZm9ybTpzY2FsZSh2YXIoLS1hbmltLWJlYXQtc2NhbGUsMS4yNSkpOyB0cmFuc2Zvcm06c2NhbGUodmFyKC0tYW5pbS1iZWF0LXNjYWxlLDEuMjUpKSB9IH0gQC13ZWJraXQta2V5ZnJhbWVzIGFuaW0tYm91bmNlIHsgMCUgeyAtd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgxKSB0cmFuc2xhdGVZKDApOyB0cmFuc2Zvcm06c2NhbGUoMSkgdHJhbnNsYXRlWSgwKSB9IDEwJSB7IC13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKHZhcigtLWFuaW0tYm91bmNlLXN0YXJ0LXNjYWxlLXgsMS4xKSx2YXIoLS1hbmltLWJvdW5jZS1zdGFydC1zY2FsZS15LC45KSkgdHJhbnNsYXRlWSgwKTsgdHJhbnNmb3JtOnNjYWxlKHZhcigtLWFuaW0tYm91bmNlLXN0YXJ0LXNjYWxlLXgsMS4xKSx2YXIoLS1hbmltLWJvdW5jZS1zdGFydC1zY2FsZS15LC45KSkgdHJhbnNsYXRlWSgwKSB9IDMwJSB7IC13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKHZhcigtLWFuaW0tYm91bmNlLWp1bXAtc2NhbGUteCwuOSksdmFyKC0tYW5pbS1ib3VuY2UtanVtcC1zY2FsZS15LDEuMSkpIHRyYW5zbGF0ZVkodmFyKC0tYW5pbS1ib3VuY2UtaGVpZ2h0LC0uNWVtKSk7IHRyYW5zZm9ybTpzY2FsZSh2YXIoLS1hbmltLWJvdW5jZS1qdW1wLXNjYWxlLXgsLjkpLHZhcigtLWFuaW0tYm91bmNlLWp1bXAtc2NhbGUteSwxLjEpKSB0cmFuc2xhdGVZKHZhcigtLWFuaW0tYm91bmNlLWhlaWdodCwtLjVlbSkpIH0gNTAlIHsgLXdlYmtpdC10cmFuc2Zvcm06c2NhbGUodmFyKC0tYW5pbS1ib3VuY2UtbGFuZC1zY2FsZS14LDEuMDUpLHZhcigtLWFuaW0tYm91bmNlLWxhbmQtc2NhbGUteSwuOTUpKSB0cmFuc2xhdGVZKDApOyB0cmFuc2Zvcm06c2NhbGUodmFyKC0tYW5pbS1ib3VuY2UtbGFuZC1zY2FsZS14LDEuMDUpLHZhcigtLWFuaW0tYm91bmNlLWxhbmQtc2NhbGUteSwuOTUpKSB0cmFuc2xhdGVZKDApIH0gNTclIHsgLXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMSkgdHJhbnNsYXRlWSh2YXIoLS1hbmltLWJvdW5jZS1yZWJvdW5kLC0uMTI1ZW0pKTsgdHJhbnNmb3JtOnNjYWxlKDEpIHRyYW5zbGF0ZVkodmFyKC0tYW5pbS1ib3VuY2UtcmVib3VuZCwtLjEyNWVtKSkgfSA2NCUgeyAtd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgxKSB0cmFuc2xhdGVZKDApOyB0cmFuc2Zvcm06c2NhbGUoMSkgdHJhbnNsYXRlWSgwKSB9IHRvIHsgLXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMSkgdHJhbnNsYXRlWSgwKTsgdHJhbnNmb3JtOnNjYWxlKDEpIHRyYW5zbGF0ZVkoMCkgfSB9IEBrZXlmcmFtZXMgYW5pbS1ib3VuY2UgeyAwJSB7IC13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDEpIHRyYW5zbGF0ZVkoMCk7IHRyYW5zZm9ybTpzY2FsZSgxKSB0cmFuc2xhdGVZKDApIH0gMTAlIHsgLXdlYmtpdC10cmFuc2Zvcm06c2NhbGUodmFyKC0tYW5pbS1ib3VuY2Utc3RhcnQtc2NhbGUteCwxLjEpLHZhcigtLWFuaW0tYm91bmNlLXN0YXJ0LXNjYWxlLXksLjkpKSB0cmFuc2xhdGVZKDApOyB0cmFuc2Zvcm06c2NhbGUodmFyKC0tYW5pbS1ib3VuY2Utc3RhcnQtc2NhbGUteCwxLjEpLHZhcigtLWFuaW0tYm91bmNlLXN0YXJ0LXNjYWxlLXksLjkpKSB0cmFuc2xhdGVZKDApIH0gMzAlIHsgLXdlYmtpdC10cmFuc2Zvcm06c2NhbGUodmFyKC0tYW5pbS1ib3VuY2UtanVtcC1zY2FsZS14LC45KSx2YXIoLS1hbmltLWJvdW5jZS1qdW1wLXNjYWxlLXksMS4xKSkgdHJhbnNsYXRlWSh2YXIoLS1hbmltLWJvdW5jZS1oZWlnaHQsLS41ZW0pKTsgdHJhbnNmb3JtOnNjYWxlKHZhcigtLWFuaW0tYm91bmNlLWp1bXAtc2NhbGUteCwuOSksdmFyKC0tYW5pbS1ib3VuY2UtanVtcC1zY2FsZS15LDEuMSkpIHRyYW5zbGF0ZVkodmFyKC0tYW5pbS1ib3VuY2UtaGVpZ2h0LC0uNWVtKSkgfSA1MCUgeyAtd2Via2l0LXRyYW5zZm9ybTpzY2FsZSh2YXIoLS1hbmltLWJvdW5jZS1sYW5kLXNjYWxlLXgsMS4wNSksdmFyKC0tYW5pbS1ib3VuY2UtbGFuZC1zY2FsZS15LC45NSkpIHRyYW5zbGF0ZVkoMCk7IHRyYW5zZm9ybTpzY2FsZSh2YXIoLS1hbmltLWJvdW5jZS1sYW5kLXNjYWxlLXgsMS4wNSksdmFyKC0tYW5pbS1ib3VuY2UtbGFuZC1zY2FsZS15LC45NSkpIHRyYW5zbGF0ZVkoMCkgfSA1NyUgeyAtd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgxKSB0cmFuc2xhdGVZKHZhcigtLWFuaW0tYm91bmNlLXJlYm91bmQsLS4xMjVlbSkpOyB0cmFuc2Zvcm06c2NhbGUoMSkgdHJhbnNsYXRlWSh2YXIoLS1hbmltLWJvdW5jZS1yZWJvdW5kLC0uMTI1ZW0pKSB9IDY0JSB7IC13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDEpIHRyYW5zbGF0ZVkoMCk7IHRyYW5zZm9ybTpzY2FsZSgxKSB0cmFuc2xhdGVZKDApIH0gdG8geyAtd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgxKSB0cmFuc2xhdGVZKDApOyB0cmFuc2Zvcm06c2NhbGUoMSkgdHJhbnNsYXRlWSgwKSB9IH0gQC13ZWJraXQta2V5ZnJhbWVzIGFuaW0tZmFkZSB7IDUwJSB7IG9wYWNpdHk6dmFyKC0tYW5pbS1mYWRlLW9wYWNpdHksLjQpIH0gfSBAa2V5ZnJhbWVzIGFuaW0tZmFkZSB7IDUwJSB7IG9wYWNpdHk6dmFyKC0tYW5pbS1mYWRlLW9wYWNpdHksLjQpIH0gfSBALXdlYmtpdC1rZXlmcmFtZXMgYW5pbS1iZWF0LWZhZGUgeyAwJSx0byB7IG9wYWNpdHk6dmFyKC0tYW5pbS1iZWF0LWZhZGUtb3BhY2l0eSwuNCk7IC13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDEpOyB0cmFuc2Zvcm06c2NhbGUoMSkgfSA1MCUgeyBvcGFjaXR5OjE7IC13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKHZhcigtLWFuaW0tYmVhdC1mYWRlLXNjYWxlLDEuMTI1KSk7IHRyYW5zZm9ybTpzY2FsZSh2YXIoLS1hbmltLWJlYXQtZmFkZS1zY2FsZSwxLjEyNSkpIH0gfSBAa2V5ZnJhbWVzIGFuaW0tYmVhdC1mYWRlIHsgMCUsdG8geyBvcGFjaXR5OnZhcigtLWFuaW0tYmVhdC1mYWRlLW9wYWNpdHksLjQpOyAtd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgxKTsgdHJhbnNmb3JtOnNjYWxlKDEpIH0gNTAlIHsgb3BhY2l0eToxOyAtd2Via2l0LXRyYW5zZm9ybTpzY2FsZSh2YXIoLS1hbmltLWJlYXQtZmFkZS1zY2FsZSwxLjEyNSkpOyB0cmFuc2Zvcm06c2NhbGUodmFyKC0tYW5pbS1iZWF0LWZhZGUtc2NhbGUsMS4xMjUpKSB9IH0gQC13ZWJraXQta2V5ZnJhbWVzIGFuaW0tZmxpcCB7IDUwJSB7IC13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZTNkKHZhcigtLWFuaW0tZmxpcC14LDApLHZhcigtLWFuaW0tZmxpcC15LDEpLHZhcigtLWFuaW0tZmxpcC16LDApLHZhcigtLWFuaW0tZmxpcC1hbmdsZSwtMTgwZGVnKSk7IHRyYW5zZm9ybTpyb3RhdGUzZCh2YXIoLS1hbmltLWZsaXAteCwwKSx2YXIoLS1hbmltLWZsaXAteSwxKSx2YXIoLS1hbmltLWZsaXAteiwwKSx2YXIoLS1hbmltLWZsaXAtYW5nbGUsLTE4MGRlZykpIH0gfSBAa2V5ZnJhbWVzIGFuaW0tZmxpcCB7IDUwJSB7IC13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZTNkKHZhcigtLWFuaW0tZmxpcC14LDApLHZhcigtLWFuaW0tZmxpcC15LDEpLHZhcigtLWFuaW0tZmxpcC16LDApLHZhcigtLWFuaW0tZmxpcC1hbmdsZSwtMTgwZGVnKSk7IHRyYW5zZm9ybTpyb3RhdGUzZCh2YXIoLS1hbmltLWZsaXAteCwwKSx2YXIoLS1hbmltLWZsaXAteSwxKSx2YXIoLS1hbmltLWZsaXAteiwwKSx2YXIoLS1hbmltLWZsaXAtYW5nbGUsLTE4MGRlZykpIH0gfSBALXdlYmtpdC1rZXlmcmFtZXMgYW5pbS1zaGFrZSB7IDAlIHsgLXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKC0xNWRlZyk7IHRyYW5zZm9ybTpyb3RhdGUoLTE1ZGVnKSB9IDQlIHsgLXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDE1ZGVnKTsgdHJhbnNmb3JtOnJvdGF0ZSgxNWRlZykgfSA4JSwyNCUgeyAtd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoLTE4ZGVnKTsgdHJhbnNmb3JtOnJvdGF0ZSgtMThkZWcpIH0gMTIlLDI4JSB7IC13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgxOGRlZyk7IHRyYW5zZm9ybTpyb3RhdGUoMThkZWcpIH0gMTYlIHsgLXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKC0yMmRlZyk7IHRyYW5zZm9ybTpyb3RhdGUoLTIyZGVnKSB9IDIwJSB7IC13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgyMmRlZyk7IHRyYW5zZm9ybTpyb3RhdGUoMjJkZWcpIH0gMzIlIHsgLXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKC0xMmRlZyk7IHRyYW5zZm9ybTpyb3RhdGUoLTEyZGVnKSB9IDM2JSB7IC13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgxMmRlZyk7IHRyYW5zZm9ybTpyb3RhdGUoMTJkZWcpIH0gNDAlLHRvIHsgLXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDBkZWcpOyB0cmFuc2Zvcm06cm90YXRlKDBkZWcpIH0gfSBAa2V5ZnJhbWVzIGFuaW0tc2hha2UgeyAwJSB7IC13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgtMTVkZWcpOyB0cmFuc2Zvcm06cm90YXRlKC0xNWRlZykgfSA0JSB7IC13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgxNWRlZyk7IHRyYW5zZm9ybTpyb3RhdGUoMTVkZWcpIH0gOCUsMjQlIHsgLXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKC0xOGRlZyk7IHRyYW5zZm9ybTpyb3RhdGUoLTE4ZGVnKSB9IDEyJSwyOCUgeyAtd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMThkZWcpOyB0cmFuc2Zvcm06cm90YXRlKDE4ZGVnKSB9IDE2JSB7IC13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgtMjJkZWcpOyB0cmFuc2Zvcm06cm90YXRlKC0yMmRlZykgfSAyMCUgeyAtd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMjJkZWcpOyB0cmFuc2Zvcm06cm90YXRlKDIyZGVnKSB9IDMyJSB7IC13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgtMTJkZWcpOyB0cmFuc2Zvcm06cm90YXRlKC0xMmRlZykgfSAzNiUgeyAtd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMTJkZWcpOyB0cmFuc2Zvcm06cm90YXRlKDEyZGVnKSB9IDQwJSx0byB7IC13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgwZGVnKTsgdHJhbnNmb3JtOnJvdGF0ZSgwZGVnKSB9IH0gQC13ZWJraXQta2V5ZnJhbWVzIGFuaW0tc3BpbiB7IDAlIHsgLXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDBkZWcpOyB0cmFuc2Zvcm06cm90YXRlKDBkZWcpIH0gdG8geyAtd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMXR1cm4pOyB0cmFuc2Zvcm06cm90YXRlKDF0dXJuKSB9IH0gQGtleWZyYW1lcyBhbmltLXNwaW4geyAwJSB7IC13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgwZGVnKTsgdHJhbnNmb3JtOnJvdGF0ZSgwZGVnKSB9IHRvIHsgLXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDF0dXJuKTsgdHJhbnNmb3JtOnJvdGF0ZSgxdHVybikgfSB9IEBzdXBwb3J0cyAoLXdlYmtpdC10b3VjaC1jYWxsb3V0Om5vbmUpIHsgYm9keSAjcHJvbW9Ub3BCdG4gLmFuaW0tZmxpcHsgLXdlYmtpdC1hbmltYXRpb24tZGVsYXk6dW5zZXQ7IGFuaW1hdGlvbi1kZWxheTp1bnNldDsgLXdlYmtpdC1hbmltYXRpb24tZGlyZWN0aW9uOnVuc2V0OyBhbmltYXRpb24tZGlyZWN0aW9uOnVuc2V0OyAtd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbjp1bnNldDsgYW5pbWF0aW9uLWR1cmF0aW9uOnVuc2V0OyAtd2Via2l0LWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6dW5zZXQ7IGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6dW5zZXQ7IC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjp1bnNldDsgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjp1bnNldDsgfSB9IC5wdWxzYXRpbmctY2lyY2xlIHsgcG9zaXRpb246cmVsYXRpdmU7IHdpZHRoOjMwcHg7IGhlaWdodDozMHB4OyBmbGV4OjAgMCBhdXRvOyAmOmJlZm9yZSB7IGNvbnRlbnQ6Jyc7IHBvc2l0aW9uOnJlbGF0aXZlOyBkaXNwbGF5OmJsb2NrOyB3aWR0aDozMDAlOyBoZWlnaHQ6MzAwJTsgYm94LXNpemluZzpib3JkZXItYm94OyBtYXJnaW4tbGVmdDotMTAwJTsgbWFyZ2luLXRvcDotMTAwJTsgYm9yZGVyLXJhZGl1czo0NXB4OyBiYWNrZ3JvdW5kLWNvbG9yOiMwMWE0ZTk7IGFuaW1hdGlvbjpwdWxzZS1yaW5nIDEuMjVzIGN1YmljLWJlemllcigwLjIxNSwgMC42MSwgMC4zNTUsIDEpIGluZmluaXRlOyB9ICY6YWZ0ZXIgeyBjb250ZW50OicnOyBwb3NpdGlvbjphYnNvbHV0ZTsgbGVmdDowOyB0b3A6MDsgZGlzcGxheTpibG9jazsgd2lkdGg6MTAwJTsgaGVpZ2h0OjEwMCU7IGJhY2tncm91bmQtY29sb3I6d2hpdGU7IGJvcmRlci1yYWRpdXM6MTVweDsgYm94LXNoYWRvdzowIDAgOHB4IHJnYmEoMCwwLDAsLjMpOyBhbmltYXRpb246cHVsc2UtZG90IDEuMjVzIGN1YmljLWJlemllcigwLjQ1NSwgMC4wMywgMC41MTUsIDAuOTU1KSAtLjRzIGluZmluaXRlOyB9IH0gQGtleWZyYW1lcyBwdWxzZS1yaW5nIHsgMCUgeyB0cmFuc2Zvcm06c2NhbGUoLjMzKTsgfSA4MCUsIDEwMCUgeyBvcGFjaXR5OjA7IH0gfSBAa2V5ZnJhbWVzIHB1bHNlLWRvdCB7IDAlIHsgdHJhbnNmb3JtOnNjYWxlKC44KTsgfSA1MCUgeyB0cmFuc2Zvcm06c2NhbGUoMSk7IH0gMTAwJSB7IHRyYW5zZm9ybTpzY2FsZSguOCk7IH0gfQovKiogL2Nzcy9kaXZfbGF5ZXJzLmNzcyAqKi8KZGl2Lk1haW5Cb3hMYXllcnsgd2lkdGg6bWluKDEwMCUsOTYwcHgpOyBtYXJnaW46MCBhdXRvOyB9IGRpdi5NYWluQm94TGF5ZXIgSDF7IHdpZHRoOjk0MHB4OyB9IGRpdi5NYWluQm94TGF5ZXIgLnJlc3BvbnNpdmUtZWRpdG9yIGgxIHsgd2lkdGg6aW5pdGlhbDsgfSBkaXYuTWFpbkJveExheWVyIGRpdi5jcmVkc2lpRGl2IEgxeyB3aWR0aDphdXRvOyB9IC5jcmVkc2lpRGl2eyB3aGl0ZS1zcGFjZTpub3JtYWw7IH0gZGl2Lk1haW5Cb3hMYXllciBkaXYuTGVmdEJveExheWVyIHsgfSBkaXYuTWFpbkJveExheWVyIGRpdi5SaWdodEJveExheWVyIHsgfSBkaXYuTWFpbkJveExheWVyIGRpdi5PdXRlckJveExheWVyIHsgcGFkZGluZzoxMHB4OyBmbG9hdDpsZWZ0OyB3aWR0aDo5NDBweDsgfSBkaXYuTWFpbkJveExheWVyIGRpdi5Jbm5lckJveExheWVyIHsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MHB4OyBtYXJnaW46MHB4OyB3aWR0aDoxMDAlOyBjbGVhcjpib3RoOyB9IGRpdi5NYWluQm94TGF5ZXIgZGl2LklubmVyQm94TGF5ZXIudG9wQm9yZGVyZWR7IGJvcmRlci10b3A6MXB4IHNvbGlkICNjY2M7IH0gZGl2Lk1haW5Cb3hMYXllciBkaXYuSW5uZXJCb3hMYXllci5ib3R0b21Cb3JkZXJlZHsgYm9yZGVyLWJvdHRvbToxcHggc29saWQgI2NjYzsgfSBkaXYuTWFpbkJveExheWVyIGRpdi5Cb3hDaGlsZCB7IH0gZGl2Lk1haW5Cb3hMYXllciBkaXYuQm94Q2hpbGQuZWFzdHsgZmxvYXQ6cmlnaHQ7IH0gZGl2Lk1haW5Cb3hMYXllciBkaXYuQm94Q2hpbGQud2VzdHsgZmxvYXQ6bGVmdDsgfSBib2R5LmlzRnVsbFdpZHRoUGFnZS5pc1BhZ2VGdWxsV2lkdGhFbmFibGVkIGRpdi5NYWluQm94TGF5ZXIgI3RvcEJhbm5lckltYWdleyB3aWR0aDo5NDBweDsgaGVpZ2h0OmF1dG87IHRleHQtYWxpZ246Y2VudGVyOyBtYXJnaW46MCBhdXRvOyB9IGJvZHkuaXNGdWxsV2lkdGhQYWdlLmlzUGFnZUZ1bGxXaWR0aEVuYWJsZWQgZGl2Lk1haW5Cb3hMYXllciAjdG9wQmFubmVySW1hZ2UgPiBpbWd7IG1heC13aWR0aDoxMDAlICFpbXBvcnRhbnQ7IH0gZGl2Lk1haW5Cb3hMYXllciBkaXYuT3V0ZXJCb3hMYXllciNoaXN0b3J5RGl2IGRpdi5Jbm5lckJveExheWVyICNicmVhZGNydW1icyB7IG1hcmdpbjowOyB9IEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDoxMzAxcHgpIHsgYm9keS5pc0Z1bGxXaWR0aFBhZ2UuaXNQYWdlRnVsbFdpZHRoRW5hYmxlZCBkaXYuTWFpbkJveExheWVyIHsgd2lkdGg6MTIwMHB4OyB9IGJvZHkuaXNGdWxsV2lkdGhQYWdlLmlzUGFnZUZ1bGxXaWR0aEVuYWJsZWQgZGl2Lk1haW5Cb3hMYXllciBkaXYuT3V0ZXJCb3hMYXllciB7IHdpZHRoOjExODBweDsgfSBib2R5LmlzRnVsbFdpZHRoUGFnZS5pc1BhZ2VGdWxsV2lkdGhFbmFibGVkIGRpdi5NYWluQm94TGF5ZXIgZGl2Lk91dGVyQm94TGF5ZXIueHRpbWVGcmFtZSB7IHdpZHRoOjEyMDBweDsgfSBib2R5LmlzRnVsbFdpZHRoUGFnZS5pc1BhZ2VGdWxsV2lkdGhFbmFibGVkIGRpdi5NYWluQm94TGF5ZXIgSDF7IHdpZHRoOjExODBweDsgfSBib2R5LmlzRnVsbFdpZHRoUGFnZS5pc1BhZ2VGdWxsV2lkdGhFbmFibGVkIGRpdi5NYWluQm94TGF5ZXIgLnJlc3BvbnNpdmUtZWRpdG9yIGgxIHsgd2lkdGg6aW5pdGlhbDsgfSBib2R5LmlzRnVsbFdpZHRoUGFnZS5pc1BhZ2VGdWxsV2lkdGhFbmFibGVkIGRpdi5NYWluQm94TGF5ZXIgZGl2LmNyZWRzaWlEaXYgSDF7IHdpZHRoOmF1dG87IH0gYm9keS5pc0Z1bGxXaWR0aFBhZ2UuaXNQYWdlRnVsbFdpZHRoRW5hYmxlZCBkaXYuTWFpbkJveExheWVyICN0b3BCYW5uZXJJbWFnZSB7IHdpZHRoOjExODBweDsgfSBib2R5LmlzRnVsbFdpZHRoUGFnZS5pc1BhZ2VGdWxsV2lkdGhFbmFibGVkIGRpdi5NYWluQm94TGF5ZXIgI3RvcEJhbm5lckltYWdlLlRFQU0geyB3aWR0aDo5NjBweDsgfSB9IGRpdi5NYWluQm94TGF5ZXIudWNwQ29udGVudEZ1bGxXaWR0aCB7IHdpZHRoOjEwMCUhaW1wb3J0YW50OyB9IGRpdi5NYWluQm94TGF5ZXIgZGl2LkxlZnRCb3hMYXllci51Y3BDb250ZW50RnVsbFdpZHRoIHsgd2lkdGg6MTAwJSFpbXBvcnRhbnQ7IH0gZGl2Lk1haW5Cb3hMYXllciBkaXYuT3V0ZXJCb3hMYXllci51Y3BDb250ZW50RnVsbFdpZHRoIHsgd2lkdGg6MTAwJSFpbXBvcnRhbnQ7IH0KLyoqIC9jc3MvZGl2X3NwYW5zLmNzcyAqKi8KLmRpdlNwYW57ZmxvYXQ6bGVmdDtib3gtc2l6aW5nOmJvcmRlci1ib3h9LmRpdlNwYW4uZGl2U3BhbkxlZnR7ZmxvYXQ6bGVmdH0uZGl2U3Bhbi5kaXZTcGFuUmlnaHR7ZmxvYXQ6cmlnaHR9LmRpdlNwYW4uZGl2U3BhbjF7d2lkdGg6OC4zMzMzMzMzMzMzMzMzMzMlfS5kaXZTcGFuLmRpdlNwYW4ye3dpZHRoOjE2LjY2NjY2NjY2NjY2NjY3JX0uZGl2U3Bhbi5kaXZTcGFuM3t3aWR0aDoyNSV9LmRpdlNwYW4uZGl2U3BhbjR7d2lkdGg6MzMuMzMzMzMzMzMzMzMzMzMlfS5kaXZTcGFuLmRpdlNwYW41e3dpZHRoOjQxLjY2NjY2NjY2NjY2NjY3JX0uZGl2U3Bhbi5kaXZTcGFuNnt3aWR0aDo1MCV9LmRpdlNwYW4uZGl2U3Bhbjd7d2lkdGg6NTguMzMzMzMzMzMzMzMzMzMlfS5kaXZTcGFuLmRpdlNwYW44e3dpZHRoOjY2LjY2NjY2NjY2NjY2NjY2JX0uZGl2U3Bhbi5kaXZTcGFuOXt3aWR0aDo3NSV9LmRpdlNwYW4uZGl2U3BhbjEwe3dpZHRoOjgzLjMzMzMzMzMzMzMzMzMzJX0uZGl2U3Bhbi5kaXZTcGFuMTF7d2lkdGg6OTEuNjY2NjY2NjY2NjY2NjYlfS5kaXZTcGFuLmRpdlNwYW4xMnt3aWR0aDoxMDAlfQovKiogL2Nzcy9tZW51aW1nLmNzcyAqKi8KLm1lbnVzcHJpdGV7YmFja2dyb3VuZC1pbWFnZTp1cmwoL2ltYWdlcy9tZW51aWNvbnMvbWVudXNwcml0ZXNoZWV0LnBuZyk7YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0O2Rpc3BsYXk6aW5saW5lLXRhYmxlO2JvcmRlcjowfS5tZW51c3ByaXRlLWFycm93X2Rvd257d2lkdGg6MzJweDtoZWlnaHQ6MzJweDtiYWNrZ3JvdW5kLXBvc2l0aW9uOi01cHggLTVweH0ubWVudXNwcml0ZS1hcnJvd191cHt3aWR0aDozMnB4O2hlaWdodDozMnB4O2JhY2tncm91bmQtcG9zaXRpb246LTVweCAtNDdweH0ubWVudXNwcml0ZS1jb250YWN0e3dpZHRoOjMycHg7aGVpZ2h0OjMycHg7YmFja2dyb3VuZC1wb3NpdGlvbjotNXB4IC04OXB4fS5tZW51c3ByaXRlLWRlbW9jYXJ7d2lkdGg6MzJweDtoZWlnaHQ6MzJweDtiYWNrZ3JvdW5kLXBvc2l0aW9uOi01cHggLTEzMXB4fS5tZW51c3ByaXRlLWZpbmFuY2V7d2lkdGg6MzJweDtoZWlnaHQ6MzJweDtiYWNrZ3JvdW5kLXBvc2l0aW9uOi01cHggLTE3M3B4fS5tZW51c3ByaXRlLWhvbWV7d2lkdGg6MzJweDtoZWlnaHQ6MzJweDtiYWNrZ3JvdW5kLXBvc2l0aW9uOi01cHggLTIxNXB4fS5tZW51c3ByaXRlLW5ld2Nhcnt3aWR0aDozMnB4O2hlaWdodDozMnB4O2JhY2tncm91bmQtcG9zaXRpb246LTVweCAtMjU3cHh9Lm1lbnVzcHJpdGUtb2xkY2Fye3dpZHRoOjMycHg7aGVpZ2h0OjMycHg7YmFja2dyb3VuZC1wb3NpdGlvbjotNXB4IC0yOTlweH0ubWVudXNwcml0ZS1wcm9tb3Rpb25ze3dpZHRoOjMycHg7aGVpZ2h0OjMycHg7YmFja2dyb3VuZC1wb3NpdGlvbjotNXB4IC0zNDFweH0ubWVudXNwcml0ZS1zZXJ2aWNle3dpZHRoOjMycHg7aGVpZ2h0OjMycHg7YmFja2dyb3VuZC1wb3NpdGlvbjotNXB4IC0zODNweH0KLyoqIC9jc3MvdG9hc3RyLmNzcyAqKi8KLnRvYXN0LXRpdGxle2ZvbnQtd2VpZ2h0OmJvbGR9LnRvYXN0LW1lc3NhZ2V7LW1zLXdvcmQtd3JhcDpicmVhay13b3JkO3dvcmQtd3JhcDpicmVhay13b3JkfS50b2FzdC1tZXNzYWdlIGEsLnRvYXN0LW1lc3NhZ2UgbGFiZWx7Y29sb3I6I2ZmZn0udG9hc3QtbWVzc2FnZSBhOmhvdmVye2NvbG9yOiNjY2M7dGV4dC1kZWNvcmF0aW9uOm5vbmV9LnRvYXN0LWNsb3NlLWJ1dHRvbntwb3NpdGlvbjpyZWxhdGl2ZTtyaWdodDotMC4zZW07dG9wOi0wLjNlbTtmbG9hdDpyaWdodDtmb250LXNpemU6MS4yNXJlbSA7Zm9udC13ZWlnaHQ6Ym9sZDtjb2xvcjppbmhlcml0Oy13ZWJraXQtdGV4dC1zaGFkb3c6MCAxcHggMCAjZmZmO3RleHQtc2hhZG93OjAgMXB4IDAgI2ZmZjtvcGFjaXR5Oi44Oy1tcy1maWx0ZXI6YWxwaGEob3BhY2l0eT04MCk7ZmlsdGVyOmFscGhhKG9wYWNpdHk9ODApfS50b2FzdC1jbG9zZS1idXR0b246aG92ZXIsLnRvYXN0LWNsb3NlLWJ1dHRvbjpmb2N1c3tjb2xvcjojMDAwMDAwO3RleHQtZGVjb3JhdGlvbjpub25lO2N1cnNvcjpwb2ludGVyO29wYWNpdHk6LjQ7LW1zLWZpbHRlcjphbHBoYShvcGFjaXR5PTQwKTtmaWx0ZXI6YWxwaGEob3BhY2l0eT00MCl9YnV0dG9uLnRvYXN0LWNsb3NlLWJ1dHRvbntwYWRkaW5nOjA7Y3Vyc29yOnBvaW50ZXI7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtib3JkZXI6MDstd2Via2l0LWFwcGVhcmFuY2U6bm9uZX0udG9hc3QtdG9wLWNlbnRlcnt0b3A6MDtyaWdodDowO3dpZHRoOjEwMCV9LnRvYXN0LWJvdHRvbS1jZW50ZXJ7Ym90dG9tOjA7cmlnaHQ6MDt3aWR0aDoxMDAlfS50b2FzdC10b3AtZnVsbC13aWR0aHt0b3A6MDtyaWdodDowO3dpZHRoOjEwMCV9LnRvYXN0LWJvdHRvbS1mdWxsLXdpZHRoe2JvdHRvbTowO3JpZ2h0OjA7d2lkdGg6MTAwJX0udG9hc3QtdG9wLWxlZnR7dG9wOjEycHg7bGVmdDoxMnB4fS50b2FzdC10b3AtcmlnaHR7dG9wOjEycHg7cmlnaHQ6MTJweH0udG9hc3QtYm90dG9tLXJpZ2h0e3JpZ2h0OjEycHg7Ym90dG9tOjEycHh9LnRvYXN0LWJvdHRvbS1sZWZ0e2JvdHRvbToxMnB4O2xlZnQ6MTJweH0jdG9hc3QtY29udGFpbmVye3Bvc2l0aW9uOmZpeGVkO3otaW5kZXg6OTk5OTk5O2NvbG9yOiNGRkZ9I3RvYXN0LWNvbnRhaW5lciAqey1tb3otYm94LXNpemluZzpib3JkZXItYm94Oy13ZWJraXQtYm94LXNpemluZzpib3JkZXItYm94O2JveC1zaXppbmc6Ym9yZGVyLWJveH0jdG9hc3QtY29udGFpbmVyPmRpdntwb3NpdGlvbjpyZWxhdGl2ZTtvdmVyZmxvdzpoaWRkZW47bWFyZ2luOjAgMCA2cHg7cGFkZGluZzoxNXB4IDE1cHggMTVweCA1MHB4O3dpZHRoOjMwMHB4Oy1tb3otYm9yZGVyLXJhZGl1czozcHggM3B4IDNweCAzcHg7LXdlYmtpdC1ib3JkZXItcmFkaXVzOjNweCAzcHggM3B4IDNweDtib3JkZXItcmFkaXVzOjNweCAzcHggM3B4IDNweDtiYWNrZ3JvdW5kLXBvc2l0aW9uOjE1cHggY2VudGVyO2JhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDstbW96LWJveC1zaGFkb3c6MCAwIDEycHggIzk5OTstd2Via2l0LWJveC1zaGFkb3c6MCAwIDEycHggIzk5OTtib3gtc2hhZG93OjAgMCAxMnB4ICM5OTk7Y29sb3I6aW5oZXJpdDtvcGFjaXR5Oi44Oy1tcy1maWx0ZXI6YWxwaGEob3BhY2l0eT04MCk7ZmlsdGVyOmFscGhhKG9wYWNpdHk9ODApfSN0b2FzdC1jb250YWluZXI+OmhvdmVyey1tb3otYm94LXNoYWRvdzowIDAgMTJweCAjMDAwOy13ZWJraXQtYm94LXNoYWRvdzowIDAgMTJweCAjMDAwO2JveC1zaGFkb3c6MCAwIDEycHggIzAwMDtvcGFjaXR5OjE7LW1zLWZpbHRlcjphbHBoYShvcGFjaXR5PTEwMCk7ZmlsdGVyOmFscGhhKG9wYWNpdHk9MTAwKTtjdXJzb3I6cG9pbnRlcn0jdG9hc3QtY29udGFpbmVyPi50b2FzdC1pbmZve2JhY2tncm91bmQtaW1hZ2U6dXJsKCJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUJnQUFBQVlDQVlBQUFEZ2R6MzRBQUFBQVhOU1IwSUFyczRjNlFBQUFBUm5RVTFCQUFDeGp3djhZUVVBQUFBSmNFaFpjd0FBRHNNQUFBN0RBY2R2cUdRQUFBR3dTVVJCVkVoTHRaYTlTZ05CRU1jOXNVeHhSY29VS1N6U1dJaFhwRk1oaFlXRmhhQmc0eVBZaVdDWFp4QkxFUnNMUlMzRVFrRWZ3Q0tkaldKQXdTS0Nnb0tDY3VkdjRPNVlMcnQ3RXpnWGhpVTMvNCtiMmNrbXdWakpTcEtrUTZ3QWk0Z3doVCt6M3dSQmNFejB5alNzZVVUcmNSeWZzSHNYbUQwQW1iSE9DOUlpOFZJbW51WEJQZ2xIcFE1d3dTVk03c05uVEc3WmE0SndEZENqeHlBaUgzbnlBMm10YVRKdWZpRFo1ZENhcWxJdElMaDFOSGF0Zk41c2t2ang5WjM4bTY5Q2d6dVhtWmdWclBJR0U3NjNKeDlxS3NSb3pXWXc2eE9IZEVSK25uMktrTytCYitVVjVDQk42V0M2UXRCZ2JSVm96cmFoQWJtbTZIdFVzZ3RQQzE5dEZkeFhaWUJPZmtibUZKMVZhSEExVkFIamQwcHA3MG9UWnp2UitFVnJ4MllnZmRzcTZldTU1QkhZUjhobGNraStuK2tFUlVGRzhCckEwQndqZUF2Mk04V0xRQnRjeStTRDZmTnNtbkIzQWxCTHJnVHRWVzFjMlFONGJWV0xBVGFJUzYwSjJEdTV5MVRpSmdqU0J2RlZaZ1Rtd0NVK2RBWkZvUHhHRUVzOG55SEM5QndlMkd2RUp2MldYWmIwdmpkeUZUNEN4azNlL2tJcWxPR29WTHd3UGV2cFlIVCswMFQraFd3WERmNEFKQU9VcVdjRGhid0FBQUFBU1VWT1JLNUNZSUk9IikgIWltcG9ydGFudH0jdG9hc3QtY29udGFpbmVyPi50b2FzdC1lcnJvcntiYWNrZ3JvdW5kLWltYWdlOnVybCgiZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFCZ0FBQUFZQ0FZQUFBRGdkejM0QUFBQUFYTlNSMElBcnM0YzZRQUFBQVJuUVUxQkFBQ3hqd3Y4WVFVQUFBQUpjRWhaY3dBQURzTUFBQTdEQWNkdnFHUUFBQUhPU1VSQlZFaExyWmEvU2dOQkVNWnpoMFdLQ0NsU0NLYUlZT0VEK0FBS2VRUUxHOEhXenRMQ0ltQnJZYWRnSWRZK2dJS05Za0JGU3d1N0NBb3FDZ2trb0dCSS9FMjhQZGJMWm1lRExnelp6Y3g4My96WjJTU1hDMWo5ZnIrSTFIcTkzZzJ5eEg0aXdNMXZrb0JXQWR4Q21welR4ZmtOMlJjeVpOYUhGSWtTbzEwKzhrZ3hrWElVUlY1SEd4VG1GdWM3NUIyUmZRa3B4SEc4YUFnYUFGYTB0QUhxWUZmUTdJd2UyeWhPRGs4K0o0Qzd5QW9SVFdJM3cvNGtsR1JnUjRsTzdScG45K2d2TXlXcCt1eEZoOCtIK0FSbGdOMW5KdUp1UUFZdk5rRW53R0ZjazE4RXI0cTNlZ0VjL29PK21oTGRLZ1J5aGRORmlhY0MwcmxPQ2JoTlZ6NEg5Rm5BWWdEQnZVM1FJaW9abEpGTEp0c29IWVJEZmlab1V5SXhxQ3RScFZsQU5xMEVVNGRBcGpydGdlelBGYWQ1UzE5V2dqa2MwaE5WbnVGNEhqVkE2QzdRclNJYnlsQitvWmUzYUhnQnNxbE5xS1lINDhqWHlKS011QWJpeVZKOEt6YUIzZVJjMHBnOVZ3UTRuaUZyeUk2OHFpT2kzQWJqd2RzZm5BdGswYkNqVExKS3I2bXJEOWc4aXEvUy9CODFoZ3VPTWxRVG5WeUc0MHdBY2pubWdzQ05FU0Ryam1lN3dmZnRQNFA3U1A0TjNDSlpkdnpvTnlHcTJjL0hXT1hKR3N2VmcrUkEvazJNQy93TjZJMllBMlB0OEdrQUFBQUFTVVZPUks1Q1lJST0iKSAhaW1wb3J0YW50fSN0b2FzdC1jb250YWluZXI+LnRvYXN0LXN1Y2Nlc3N7YmFja2dyb3VuZC1pbWFnZTp1cmwoImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQmdBQUFBWUNBWUFBQURnZHozNEFBQUFBWE5TUjBJQXJzNGM2UUFBQUFSblFVMUJBQUN4and2OFlRVUFBQUFKY0VoWmN3QUFEc01BQUE3REFjZHZxR1FBQUFEc1NVUkJWRWhMWTJBWUJmUU1nZi8vLzNQOCsvZXZBSWd2QS9Gc0lGK0JhdllERFdNQkdyb2FTTU1CaUU4VkM3QVpEcklGYU1GbmlpM0FaVGpVZ3NVVVdVREE4T2RBSDZpUWJRRWh3NEh5R3NQRWNLQlhCSUM0QVJoZXg0RzRCc2ptd2VVMXNvSUZhR2cvV3RvRlpSSVpkRXZJTWh4a0NDalhJVnNBVFY2Z0ZHQUNzNFJzdzBFR2dJSUgzUUpZSmdIU0FSUVpEcldBQitqYXd6Z3MrUTJVTzQ5RDdqblJTUkdvRUZSSUxjZG1FTVdHSTBjbTBKSjJRcFlBMVJEdmNtekpFV2hBQmhEL3BxckwwUzBDV3VBQktnblJraTlsTHNlUzdnMkFscXdIV1FTS0g0b0tMcklMcFJHaEVRQ3cyTGlSVUlhNGx3QUFBQUJKUlU1RXJrSmdnZz09IikgIWltcG9ydGFudH0jdG9hc3QtY29udGFpbmVyPi50b2FzdC13YXJuaW5ne2JhY2tncm91bmQtaW1hZ2U6dXJsKCJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUJnQUFBQVlDQVlBQUFEZ2R6MzRBQUFBQVhOU1IwSUFyczRjNlFBQUFBUm5RVTFCQUFDeGp3djhZUVVBQUFBSmNFaFpjd0FBRHNNQUFBN0RBY2R2cUdRQUFBR1lTVVJCVkVoTDVaU3ZUc05RRk1iWFpHSUNNWUdZbUpoQVFJSkFJQ1lRUEFBQ2lTREI4QWlJQ1FRSlQ0Q3FRRXdnSnZZQVNBUUNpWmlZbUpoQUlCQVRDQVJKeSs5clRzbGRkOHNLdTFNMCtkTGIwNTd2Ni9sYnEvMnJLMG1TL1RSTmo5Y1dOQUtQWUlKSUk3Z0l4Q2NRNTFjdnFJRCtHSUVYOEFTRzRCMWJLNWdJWkZlUWZvSmRFWE9mZ1g0UUFRZzdrSDJBNjV5UTg3bHl4YjI3c2dna0F6QXVGaGJiZzFLMmtnQ2tCMWJWd3lJUjltMkw3UFJQSWhEVUlYZ0d0eUt3NTc1eXozbFROczZYNEpYbmpWK0xLTS9tM015ZG5UYnRPS0lqdHo2VmhDQnE0dlNtM25jZHJEMmxrMFZnVVhTVktqVkRKWEp6aWpXMVJRZHNVN0Y3N0hlOHU2OGtvTlpUejhPejV5R2E2SjNIM2xaMHhZZ1hCSzJReW1sV1dBK1JXblloc2tMQnYydm1FK2hCTUN0YkE3S1g1ZHJXeVJULzJKc3FaMkl2ZkI5WTRiV0ROTUZiSlJGbUM5RTc0U29TMENxdWx3amtDMCs1YnBjVjFDWjhOTWVqNHBqeTBVK2RvRFFzR3lvMWh6Vkp0dElqaFE3R25CdFJGTjFVYXJVbEg4RjN4aWN0K0hZMDdyRXpvVUdQbFdjalJGUnI0L2dDaFpnYzNaTDJkOG9BQUFBQVNVVk9SSzVDWUlJPSIpICFpbXBvcnRhbnR9I3RvYXN0LWNvbnRhaW5lci50b2FzdC10b3AtY2VudGVyPmRpdiwjdG9hc3QtY29udGFpbmVyLnRvYXN0LWJvdHRvbS1jZW50ZXI+ZGl2e3dpZHRoOjMwMHB4O21hcmdpbjphdXRvfSN0b2FzdC1jb250YWluZXIudG9hc3QtdG9wLWZ1bGwtd2lkdGg+ZGl2LCN0b2FzdC1jb250YWluZXIudG9hc3QtYm90dG9tLWZ1bGwtd2lkdGg+ZGl2e3dpZHRoOjk2JTttYXJnaW46YXV0b30udG9hc3R7YmFja2dyb3VuZC1jb2xvcjojMDMwMzAzfS50b2FzdC1zdWNjZXNze2JhY2tncm91bmQtY29sb3I6IzUxYTM1MX0udG9hc3QtZXJyb3J7YmFja2dyb3VuZC1jb2xvcjojYmQzNjJmfS50b2FzdC1pbmZve2JhY2tncm91bmQtY29sb3I6IzJmOTZiNH0udG9hc3Qtd2FybmluZ3tiYWNrZ3JvdW5kLWNvbG9yOiNmODk0MDZ9LnRvYXN0LXByb2dyZXNze3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MDtib3R0b206MDtoZWlnaHQ6NHB4O2JhY2tncm91bmQtY29sb3I6IzAwMDtvcGFjaXR5Oi40Oy1tcy1maWx0ZXI6YWxwaGEob3BhY2l0eT00MCk7ZmlsdGVyOmFscGhhKG9wYWNpdHk9NDApfUBtZWRpYSBhbGwgYW5kIChtYXgtd2lkdGg6MjQwcHgpeyN0b2FzdC1jb250YWluZXI+ZGl2e3BhZGRpbmc6OHB4IDhweCA4cHggNTBweDt3aWR0aDoxMWVtfSN0b2FzdC1jb250YWluZXIgLnRvYXN0LWNsb3NlLWJ1dHRvbntyaWdodDotMC4yZW07dG9wOi0wLjJlbX19QG1lZGlhIGFsbCBhbmQgKG1pbi13aWR0aDoyNDFweCkgYW5kIChtYXgtd2lkdGg6NDgwcHgpeyN0b2FzdC1jb250YWluZXI+ZGl2e3BhZGRpbmc6OHB4IDhweCA4cHggNTBweDt3aWR0aDoxOGVtfSN0b2FzdC1jb250YWluZXIgLnRvYXN0LWNsb3NlLWJ1dHRvbntyaWdodDotMC4yZW07dG9wOi0wLjJlbX19QG1lZGlhIGFsbCBhbmQgKG1pbi13aWR0aDo0ODFweCkgYW5kIChtYXgtd2lkdGg6NzY4cHgpeyN0b2FzdC1jb250YWluZXI+ZGl2e3BhZGRpbmc6MTVweCAxNXB4IDE1cHggNTBweDt3aWR0aDoyNWVtfX0KLyoqIC9jc3MvdmVoaWNsZUZlYXR1cmVTdW1tYXJ5LnByZWxvYWQuY3NzICoqLwoudmRwRmVhdHVyZVN1bW1hcnl7IC0tc3dpdGNoLWJwOjUwcmVtOyBib3JkZXItY29sb3I6I2NjY2NjYzsgY2xlYXI6Ym90aDsgfSAudnNmaUl0ZW1TdW1tYXJ5IHsgZm9udC13ZWlnaHQ6NzAwOyBmb250LXNpemU6MS4ycmVtOyB9IC52ZHBGZWF0dXJlQ29uc3VtcHRpb257IGRpc3BsYXk6ZmxleDsgZmxleC13cmFwOndyYXA7IH0gLnZkcEZlYXR1cmVDb25zdW1wdGlvbiA+ICp7IGZsZXg6MSAxIDMxJTsgbWluLXdpZHRoOjlyZW07IH0KLyoqIC9jc3Mva2MuZmFiLmNzcyAqKi8KI2NvbnRhaW5lckZsQiB7IG1hcmdpbjowOyB3aWR0aDo2MHB4OyBoZWlnaHQ6NjBweDsgcG9zaXRpb246Zml4ZWQ7Ym90dG9tOjIwcHg7cmlnaHQ6MTBweDt9ICNjaXJjbGVGbEIgeyBwb3NpdGlvbjpyZWxhdGl2ZTsgd2lkdGg6MTAwJTsgcGFkZGluZy1ib3R0b206MTAwJTsgb3ZlcmZsb3c6aGlkZGVuOyB9ICNjaXJjbGVGbEIgdGV4dCB7IGZvbnQtZmFtaWx5OidIZWx2ZXRpY2EgTmV1ZScsIEFyaWFsOyBmb250LXNpemU6MS4yNXJlbSA7IGZvbnQtd2VpZ2h0OmJvbGQ7IH0gI2NpcmNsZUZsQiBzdmcgeyBwb3NpdGlvbjphYnNvbHV0ZTsgbGVmdDowOyB0b3A6MDsgd2lkdGg6MTAwJTsgaGVpZ2h0OjEwMCU7IC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6cm90YXRlOyAtbW96LWFuaW1hdGlvbi1uYW1lOnJvdGF0ZTsgLW1zLWFuaW1hdGlvbi1uYW1lOnJvdGF0ZTsgLW8tYW5pbWF0aW9uLW5hbWU6cm90YXRlOyBhbmltYXRpb24tbmFtZTpyb3RhdGU7IC13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOjVzOyAtbW96LWFuaW1hdGlvbi1kdXJhdGlvbjo1czsgLW1zLWFuaW1hdGlvbi1kdXJhdGlvbjo1czsgLW8tYW5pbWF0aW9uLWR1cmF0aW9uOjVzOyBhbmltYXRpb24tZHVyYXRpb246NXM7IC13ZWJraXQtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDppbmZpbml0ZTsgLW1vei1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50OmluZmluaXRlOyAtbXMtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDppbmZpbml0ZTsgLW8tYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDppbmZpbml0ZTsgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDppbmZpbml0ZTsgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOmxpbmVhcjsgLW1vei1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOmxpbmVhcjsgLW1zLWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246bGluZWFyOyAtby1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOmxpbmVhcjsgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjpsaW5lYXI7IH0gQC13ZWJraXQta2V5ZnJhbWVzIHJvdGF0ZSB7IGZyb20geyAtd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMCk7IH0gdG8geyAtd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMzYwZGVnKTsgfSB9IEAtbW96LWtleWZyYW1lcyByb3RhdGUgeyBmcm9tIHsgLW1vei10cmFuc2Zvcm06cm90YXRlKDApOyB9IHRvIHsgLW1vei10cmFuc2Zvcm06cm90YXRlKDM2MGRlZyk7IH0gfSBALW1zLWtleWZyYW1lcyByb3RhdGUgeyBmcm9tIHsgLW1zLXRyYW5zZm9ybTpyb3RhdGUoMCk7IH0gdG8geyAtbXMtdHJhbnNmb3JtOnJvdGF0ZSgzNjBkZWcpOyB9IH0gQC1vLWtleWZyYW1lcyByb3RhdGUgeyBmcm9tIHsgLW8tdHJhbnNmb3JtOnJvdGF0ZSgwKTsgfSB0byB7IC1vLXRyYW5zZm9ybTpyb3RhdGUoMzYwZGVnKTsgfSB9IEBrZXlmcmFtZXMgcm90YXRlIHsgZnJvbSB7IHRyYW5zZm9ybTpyb3RhdGUoMCk7IH0gdG8geyB0cmFuc2Zvcm06cm90YXRlKDM2MGRlZyk7IH0gfSAjc2lnbkZsQnsgY29sb3I6I2ZmZjtwb3NpdGlvbjpyZWxhdGl2ZTt0b3A6LTQ3cHg7bGVmdDoxOXB4O2ZvbnQtc2l6ZToyLjE4OHJlbSA7IHotaW5kZXg6OTk5OTk5OyB9Ci8qKiAvY3NzL211bHRpRm9ybVBvcHVwLmNzcyAqKi8KLm11bHRpZm9ybV9mb3JtIGxhYmVse2Rpc3BsYXk6aW5saW5lLWJsb2NrO21hcmdpbi1ib3R0b206LjVyZW07Ym94LXNpemluZzpib3JkZXItYm94O2ZvbnQtd2VpZ2h0OjQwMDtsaW5lLWhlaWdodDoxLjU7Y29sb3I6IzIxMjUyOTt0ZXh0LWFsaWduOmxlZnQ7Zm9udC13ZWlnaHQ6Ym9sZH0ubXVsdGlmb3JtX2Zvcm17bWFyZ2luLWxlZnQ6NDBweH0ubXVsdGlmb3JtX2NpcmNsZS1saW5le2hlaWdodDoxcHg7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgI2NjYzt3aWR0aDoxMDAlO21hcmdpbi10b3A6MTNweDtmbG9hdDpsZWZ0fS5tdWx0aWZvcm1fdGV4dHtkaXNwbGF5OmJsb2NrO2NsZWFyOmJvdGg7cGFkZGluZy10b3A6MjBweDtmb250LXdlaWdodDo2MDA7cGFkZGluZy1ib3R0b206MjBweH0ubXVsdGlmb3JtX2NpcmNsZXtiYWNrZ3JvdW5kOiNmZmY7d2lkdGg6MzBweDtoZWlnaHQ6MzBweDtib3JkZXItcmFkaXVzOjMwcHg7Ym9yZGVyOjFweCBzb2xpZCAjY2NjO3BhZGRpbmc6NXB4IDAgMCAwO2JveC1zaXppbmc6Ym9yZGVyLWJveDtjb2xvcjojY2NjO2ZvbnQtc2l6ZTowLjgxM3JlbSA7bWFyZ2luOjAgYXV0b30ubXVsdGlmb3JtX2NpcmNsZTF7YmFja2dyb3VuZDojMzMzO2NvbG9yOiNmZmZ9Lm11bHRpZm9ybV9ib2R5e3BhZGRpbmc6MzBweH0ubXVsdGlmb3JtX2Zvb3Rlcntib3JkZXItdG9wOjFweCBzb2xpZCAjY2NjO3BhZGRpbmc6MjVweDt0ZXh0LWFsaWduOnJpZ2h0O3Bvc2l0aW9uOmFic29sdXRlO2JvdHRvbTowO3dpZHRoOjEwMCU7Ym94LXNpemluZzpib3JkZXItYm94fS5tdWx0aWZvcm1fbGluZV93cmFwcGVye21hcmdpbjowIGF1dG87d2lkdGg6MzAwcHg7aGVpZ2h0OjMwcHg7Ym9yZGVyLXJhZGl1czozcHh9Lm11bHRpZm9ybV9jaXJjbGVfd3JhcHBlcjJ7d2lkdGg6MTE3cHg7dGV4dC1hbGlnbjpjZW50ZXI7Zm9udC1zaXplOjAuODc1cmVtIDtmbG9hdDpsZWZ0O21hcmdpbi10b3A6LTMwcHh9Lm11bHRpZm9ybV9jaXJjbGVfd3JhcHBlcnt3aWR0aDoyMzVweDttYXJnaW46MCBhdXRvfSNtdWx0aWZvcm1fZm9ybVd7YmFja2dyb3VuZDp3aGl0ZTtib3JkZXItcmFkaXVzOjNweDtjb2xvcjojNDE0MTQxfS5tdWx0aWZvcm1fY2lyY2xlVGV4dF93cmFwcGVye3dpZHRoOjIwMHB4O21hcmdpbjowIGF1dG99Lm11bHRpZm9ybV9zdGVwMntkaXNwbGF5Om5vbmV9Lm11bHRpZm9ybUltYWdlMXtwb3NpdGlvbjpyZWxhdGl2ZX0ubXVsdGlmb3JtSW1hZ2VUZXh0MXtwb3NpdGlvbjphYnNvbHV0ZTtjb2xvcjojZmZmO3RvcDoxMDVweDtsZWZ0OjA7cmlnaHQ6MDttYXJnaW46YXV0bzt0ZXh0LWFsaWduOmNlbnRlcjtmb250LXNpemU6MS4zNzVyZW0gO3dpZHRoOjI3MHB4fS5yZXZlYWwtbW9kYWwgLm11bHRpZm9ybUltYWdlVGV4dDEgc3BhbnttYXJnaW46MDtwYWRkaW5nOjA7Y29sb3I6I2ZmZjtkaXNwbGF5OmJsb2NrO2ZvbnQtc2l6ZToyLjA2M3JlbSA7Zm9udC13ZWlnaHQ6NzAwfS5tdWx0aWZvcm1JbWFnZTJ7cG9zaXRpb246cmVsYXRpdmV9Lm11bHRpZm9ybUltYWdlVGV4dDJ7cG9zaXRpb246YWJzb2x1dGU7Y29sb3I6I2ZmZjt0b3A6MTE1cHg7bGVmdDowO3JpZ2h0OjA7bWFyZ2luOmF1dG87dGV4dC1hbGlnbjpjZW50ZXI7Zm9udC1zaXplOjEuMzc1cmVtIDt3aWR0aDoyNzBweH0ucmV2ZWFsLW1vZGFsIC5tdWx0aWZvcm1JbWFnZVRleHQyIHNwYW57bWFyZ2luOjA7cGFkZGluZzowO2NvbG9yOiNmZmY7ZGlzcGxheTpibG9jaztmb250LXNpemU6Mi4wNjNyZW0gO2ZvbnQtd2VpZ2h0OjcwMH0ubXVsdGlmb3JtSW1hZ2VUZXh0MV9te3Bvc2l0aW9uOmFic29sdXRlO2NvbG9yOiNmZmY7dG9wOjcwcHg7bGVmdDoyMHB4O3RleHQtYWxpZ246Y2VudGVyO2ZvbnQtc2l6ZTowLjgxM3JlbSA7d2lkdGg6MTg0cHh9Lm11bHRpZm9ybUltYWdlVGV4dDFfbSBzcGFue21hcmdpbjowICFpbXBvcnRhbnQ7cGFkZGluZzowICFpbXBvcnRhbnQ7Y29sb3I6I2ZmZiAhaW1wb3J0YW50O2Rpc3BsYXk6YmxvY2sgIWltcG9ydGFudDtmb250LXNpemU6MS4zMTNyZW0gIWltcG9ydGFudDtmb250LXdlaWdodDo3MDAgIWltcG9ydGFudH1AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6NDgwcHgpLG9ubHkgc2NyZWVuIGFuZCAobWF4LWRldmljZS13aWR0aDo0ODBweCl7Lm11bHRpZm9ybV9mb3Jte21hcmdpbi1sZWZ0OjE1cHh9Lm11bHRpZm9ybV9jaXJjbGUtbGluZXt3aWR0aDoxMDAlfS5tdWx0aWZvcm1fbGluZV93cmFwcGVye3dpZHRoOjI0NXB4fX0KLyoqIC9jc3MvY3JlZGl0U2NvcmVQb3B1cC5jc3MgKiovCiNjcmVkaXRTY29yZVBvcHVwQ29udGFpbmVyeyBiYWNrZ3JvdW5kOndoaXRlOyBwYWRkaW5nOjMwcHggMjBweCAzNHB4OyBtYXgtd2lkdGg6Y2FsYygxMDB2dyAtIDQwcHgpOyB9ICNjcmVkaXRTY29yZVBvcHVwQ29udGFpbmVyIHNwYW57IG1hcmdpbjowOyBwYWRkaW5nOjA7IGZvbnQtc2l6ZToxLjEyNXJlbSA7IH0gI2NyZWRpdFNjb3JlUG9wdXBDb250YWluZXIgc3Bhbi5jcmVkaXRTY29yZUdyZWVuQ29sb3J7IGNvbG9yOiM0ZDhmMTQ7IGZvbnQtd2VpZ2h0OmJvbGQ7IH0gI2NyZWRpdFNjb3JlUG9wdXBDb250YWluZXIgc3Bhbi5jcmVkaXRTY29yZUJvbGR7IGZvbnQtd2VpZ2h0OmJvbGQ7IH0gLmNyZWRpdFNjb3JlX2J0bnsgY29sb3I6I2ZmZmZmZjsgYmFja2dyb3VuZDojNGQ4ZjE0OyB9IC5jcmVkaXRTY29yZUltYWdleyB3aWR0aDoxMDAlOyB9ICNjcmVkaXRTY29yZVBvcHVwQ29udGFpbmVyIGRpdi5jcmVkaXRTY29yZVRpdGxlQ29udGFpbmVyeyB0ZXh0LWFsaWduOmNlbnRlcjsgfSAjY3JlZGl0U2NvcmVQb3B1cENvbnRhaW5lciBkaXYuY3JlZGl0U2NvcmVUaXRsZXsgZm9udC1zaXplOjEuMjVyZW0gOyB9ICNjcmVkaXRTY29yZVBvcHVwQ29udGFpbmVyIGRpdi5jcmVkaXRTY29yZUltYWdlQ29udGFpbmVyeyB0ZXh0LWFsaWduOmNlbnRlcjsgfSAjY3JlZGl0U2NvcmVQb3B1cENvbnRhaW5lciBzcGFuLmNyZWRpdFNjb3JlVGl0bGVGcmVleyBmb250LXNpemU6Mi44MTNyZW0gOyB0ZXh0LXNoYWRvdzoycHggMDsgfSAjY3JlZGl0U2NvcmVQb3B1cENvbnRhaW5lciBzcGFuLmNyZWRpdFNjb3JlVGl0bGVTY29yZXsgZm9udC1zaXplOjEuODEzcmVtIDsgdGV4dC1zaGFkb3c6MS40cHggMDsgfSAjY3JlZGl0U2NvcmVQb3B1cENvbnRhaW5lciBpbnB1dHsgaGVpZ2h0OjMycHg7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IHdpZHRoOjEzNXB4OyBwYWRkaW5nOjAgMTBweDsgbWFyZ2luLWJvdHRvbToxMHB4OyBib3JkZXI6MXB4IHNvbGlkICNlZWVlZWU7IGJveC1zaXppbmc6Y29udGVudC1ib3g7IH0gI2NyZWRpdFNjb3JlUG9wdXBDb250YWluZXIgI2NyZWRpdFNjb3JlRW1haWx7IHdpZHRoOjI5NnB4OyB9ICNjcmVkaXRTY29yZVBvcHVwQ29udGFpbmVyICNjcmVkaXRTY29yZUFkZHJlc3N7IHdpZHRoOjI5NnB4OyB9ICNjcmVkaXRTY29yZVBvcHVwQ29udGFpbmVyIC5jcmVkaXRTY29yZV9idG57IHdpZHRoOjMyMHB4OyB0ZXh0LWFsaWduOmNlbnRlcjsgaGVpZ2h0OjQwcHg7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgLXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7IH0gI2NyZWRpdFNjb3JlUG9wdXBDb250YWluZXIgZGl2LmNyZWRpdFNjb3JlRXh0cmFUZXh0eyB0ZXh0LWFsaWduOmNlbnRlcjsgfSAjY3JlZGl0U2NvcmVQb3B1cENvbnRhaW5lciBkaXYuY3JlZGl0U2NvcmVDb25zZW50TWVzc2FnZXsgY29sb3I6I2IzYjNiMzsgZm9udC1zaXplOjAuNjg4cmVtIDsgdGV4dC1hbGlnbjpjZW50ZXI7IG1hcmdpbi10b3A6MnB4OyB9ICNjcmVkaXRTY29yZVBvcHVwQ29udGFpbmVyIC5jcmVkaXRTY29yZUltYWdleyBiYWNrZ3JvdW5kLWNvbG9yOiM0ZDhmMTQ7IH0gLnBhYy1jb250YWluZXIgeyB6LWluZGV4OjEwMDAwMjE7IH0KLyoqIC9jc3MvbmViQ2FsL25lYkNhbC5jc3MgKiovCi5uZWJDYWwgKiB7IG92ZXJmbG93OmhpZGRlbjsgcGFkZGluZzowOyBtYXJnaW46MDsgbGluZS1oZWlnaHQ6MTAwJTsgYmFja2dyb3VuZC1jb2xvciA6d2hpdGU7IH0gLm5lYkNhbCAuY2FsLWhlYWRlciAuY2FsLWFycm93LWxlZnQsIC5uZWJDYWwgLmNhbC1oZWFkZXIgLmNhbC1hcnJvdy1yaWdodCB7IGN1cnNvcjpwb2ludGVyO30gLm5lYkNhbCAuY2FsLWhlYWRlciAuY2FsLWFycm93LWxlZnQgeyBmbG9hdDpsZWZ0OyB9IC5uZWJDYWwgLmNhbC1oZWFkZXIgLmNhbC1hcnJvdy1sZWZ0OmJlZm9yZSB7IGNvbnRlbnQ6JzwnOyBmb250LXdlaWdodDpib2xkOyBjb2xvcjojNTIzYTI5OyB9IC5uZWJDYWwgLmNhbC1oZWFkZXIgLmNhbC1hcnJvdy1yaWdodCB7IGZsb2F0OnJpZ2h0OyB9IC5uZWJDYWwgLmNhbC1oZWFkZXIgLmNhbC1hcnJvdy1yaWdodDpiZWZvcmUgeyBjb250ZW50Oic+JzsgZm9udC13ZWlnaHQ6Ym9sZDsgY29sb3I6IzUyM2EyOTsgfSAubmViQ2FsIC5jYWwtaGVhZGVyIC5jYWwtbGFiZWwgeyBkaXNwbGF5OmlubGluZS1ibG9jazsgb3ZlcmZsb3c6dmlzaWJsZTsgd2lkdGg6MTQ2cHg7IH0gLm5lYkNhbCAuY2FsLWhlYWRlciAuY2FsLWxhYmVsLmNhbC1jbGlja2FibGUgeyBjdXJzb3I6cG9pbnRlcjsgfSAubmViQ2FsIC5jYWwtYm9keSB7IHBvc2l0aW9uOnJlbGF0aXZlOyB9IC5uZWJDYWwgLmNhbC1ib2R5IC5jYWwtaW5uZXIgLmNhbC1jb250YWluZXIgeyBwb3NpdGlvbjphYnNvbHV0ZTsgbGVmdDowOyB9IC5uZWJDYWwgLmNhbC1ib2R5IC5jYWwtaW5uZXIgLmNhbC1jb250YWluZXIgLmNhbC1yb3cgZGl2IHsgZmxvYXQ6bGVmdDsgfSAubmViQ2FsIC5jYWwtYm9keSAuY2FsLWlubmVyIC5jYWwtY29udGFpbmVyLmNhbC1tb250aC5jYWwtcGlja2FibGUgLmNhbC1yb3cgZGl2LCAubmViQ2FsIC5jYWwtYm9keSAuY2FsLWlubmVyIC5jYWwtY29udGFpbmVyLmNhbC15ZWFyLWRlY2FkZSAuY2FsLXJvdyBkaXYgeyBjdXJzb3I6cG9pbnRlcjt9IC5uZWJDYWwgeyBjdXJzb3I6ZGVmYXVsdDsgcG9zaXRpb246YWJzb2x1dGU7IHotaW5kZXg6MTAwMDAyMDsgdGV4dC1hbGlnbjpjZW50ZXI7IHdpZHRoOjI5MHB4OyBoZWlnaHQ6MjE1cHg7IGZvbnQtc2l6ZTowLjkzOHJlbSA7IGNvbG9yOiM1MjNhMjk7IH0gLm5lYkNhbC5pbmxpbmUgeyBwb3NpdGlvbjpyZWxhdGl2ZTsgfSAubmViQ2FsLmRlZmF1bHQgLmNhbC13cmFwcGVyIHsgcGFkZGluZzowIDRweDsgYm9yZGVyOnNvbGlkIDFweCAjZGRkZWQ5OyAtbW96LWJveC1zaGFkb3c6MHB4IDBweCA0cHggMnB4ICNkOGQ4ZDg7LXdlYmtpdC1ib3gtc2hhZG93OjBweCAwcHggNHB4IDJweCAjZDhkOGQ4O2JveC1zaGFkb3c6MHB4IDBweCA0cHggMnB4ICNkOGQ4ZDg7fSAubmViQ2FsLmRlZmF1bHQgLmNhbC1oZWFkZXIgeyBoZWlnaHQ6MjVweDsgfSAubmViQ2FsLmRlZmF1bHQgLmNhbC1oZWFkZXIgLmNhbC1hcnJvdy1sZWZ0LCAubmViQ2FsLmRlZmF1bHQgLmNhbC1oZWFkZXIgLmNhbC1hcnJvdy1yaWdodCB7IHdpZHRoOjEycHg7IGhlaWdodDoxM3B4OyBtYXJnaW46NnB4IDdweDsgfSAubmViQ2FsLmRlZmF1bHQgLmNhbC1oZWFkZXIgLmNhbC1hcnJvdy1sZWZ0IHsgfSAubmViQ2FsLmRlZmF1bHQgLmNhbC1oZWFkZXIgLmNhbC1hcnJvdy1sZWZ0OmhvdmVyIHsgfSAubmViQ2FsLmRlZmF1bHQgLmNhbC1oZWFkZXIgLmNhbC1hcnJvdy1yaWdodCB7IH0gLm5lYkNhbC5kZWZhdWx0IC5jYWwtaGVhZGVyIC5jYWwtYXJyb3ctcmlnaHQ6aG92ZXIgeyB9IC5uZWJDYWwuZGVmYXVsdCAuY2FsLWhlYWRlciAuY2FsLWxhYmVsIHsgbGluZS1oZWlnaHQ6MjVweDsgY29sb3I6IzUyM2EyOTsgdGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlOyB9IC5uZWJDYWwuZGVmYXVsdCAuY2FsLWhlYWRlciAuY2FsLWxhYmVsLmNhbC1jbGlja2FibGUgeyBjb2xvcjojMDhhNTNjOyB9IC5uZWJDYWwuZGVmYXVsdCAuY2FsLWhlYWRlciAuY2FsLWxhYmVsLmNhbC1jbGlja2FibGU6aG92ZXIgeyB0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lOyB9IC5uZWJDYWwuZGVmYXVsdCAuY2FsLWJvZHkgeyBoZWlnaHQ6MTgwcHg7IH0gLm5lYkNhbC5kZWZhdWx0IC5jYWwtYm9keSAuY2FsLWlubmVyIC5jYWwtY29udGFpbmVyIHsgd2lkdGg6MjkwcHg7IGhlaWdodDoxODBweDsgfSAubmViQ2FsLmRlZmF1bHQgLmNhbC1ib2R5IC5jYWwtaW5uZXIgLmNhbC1jb250YWluZXIgLmNhbC1yb3cgeyB3aWR0aDoyOTBweDsgfSAubmViQ2FsLmRlZmF1bHQgLmNhbC1ib2R5IC5jYWwtaW5uZXIgLmNhbC1jb250YWluZXIuY2FsLXllYXItZGVjYWRlIC5jYWwtcm93LmNhbC1vZGQgZGl2IHsgbWFyZ2luOjVweDsgYmFja2dyb3VuZC1jb2xvcjojZGVkZWRlO2JvcmRlcjoxcHggc29saWQgI2Q5ZDlkOTt9IC5uZWJDYWwuZGVmYXVsdCAuY2FsLWJvZHkgLmNhbC1pbm5lciAuY2FsLWNvbnRhaW5lci5jYWwteWVhci1kZWNhZGUgLmNhbC1yb3cuY2FsLWV2ZW4gZGl2IHsgbWFyZ2luOjVweDsgYmFja2dyb3VuZC1jb2xvcjojZjBmMGYwO2JvcmRlcjoxcHggc29saWQgI2VjZWNlYzt9IC5uZWJDYWwuZGVmYXVsdCAuY2FsLWJvZHkgLmNhbC1pbm5lciAuY2FsLWNvbnRhaW5lciAuY2FsLXJvdyBkaXYuY2FsLXRvZGF5IHsgdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTsgfSAubmViQ2FsLmRlZmF1bHQgLmNhbC1ib2R5IC5jYWwtaW5uZXIgLmNhbC1jb250YWluZXIgLmNhbC1yb3cgZGl2LmNhbC1zZWxlY3RlZCB7IG1hcmdpbi1sZWZ0OjVweDsgbWFyZ2luLXJpZ2h0OjVweDsgaGVpZ2h0OjIwcHg7Zm9udC1zaXplOjFyZW0gO2ZvbnQtd2VpZ2h0OjYwMDsgY29sb3I6I2ZmZiAhaW1wb3J0YW50O3RleHQtc2hhZG93OjFweCAxcHggMHB4ICMzOWE2NjM7IGJhY2tncm91bmQtY29sb3I6IzU0YmIwMDstd2Via2l0LWJvcmRlci1yYWRpdXM6NXB4Oy1tb3otYm9yZGVyLXJhZGl1czo1cHg7Ym9yZGVyLXJhZGl1czo1cHg7fSAubmViQ2FsLmRlZmF1bHQgLmNhbC1ib2R5IC5jYWwtaW5uZXIgLmNhbC1jb250YWluZXIgLmNhbC1yb3cgZGl2LmNhbC1ub24tc2VsZWN0YWJsZSwgLm5lYkNhbC5kZWZhdWx0IC5jYWwtYm9keSAuY2FsLWlubmVyIC5jYWwtY29udGFpbmVyIC5jYWwtcm93IGRpdi5jYWwtbm9uLXNlbGVjdGFibGU6aG92ZXIgeyBjb2xvcjojYmRiZGJkICFpbXBvcnRhbnQ7IGN1cnNvcjpkZWZhdWx0ICFpbXBvcnRhbnQ7IH0gLm5lYkNhbC5kZWZhdWx0IC5jYWwtYm9keSAuY2FsLWlubmVyIC5jYWwtY29udGFpbmVyLmNhbC1tb250aCAuY2FsLXJvdy5hIGRpdiB7IGN1cnNvcjpkZWZhdWx0ICFpbXBvcnRhbnQ7IGNvbG9yOiMzNzliNTcgIWltcG9ydGFudDt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7IH0gLm5lYkNhbC5kZWZhdWx0IC5jYWwtYm9keSAuY2FsLWlubmVyIC5jYWwtY29udGFpbmVyLmNhbC1tb250aCAuY2FsLXJvdyB7IGhlaWdodDoyNnB4OyB9IC5uZWJDYWwuZGVmYXVsdCAuY2FsLWJvZHkgLmNhbC1pbm5lciAuY2FsLWNvbnRhaW5lci5jYWwtbW9udGggLmNhbC1yb3cgZGl2IHsgbWFyZ2luLXRvcDozcHg7IHdpZHRoOjQwcHg7IH0gLm5lYkNhbC5kZWZhdWx0IC5jYWwtYm9keSAuY2FsLWlubmVyIC5jYWwtY29udGFpbmVyLmNhbC1tb250aCAuY2FsLXJvdyBkaXYuY2FsLXNlbGVjdGVkIHsgbWFyZ2luLXRvcDozcHg7IHdpZHRoOjMwcHg7IH0gLm5lYkNhbC5kZWZhdWx0IC5jYWwtYm9keSAuY2FsLWlubmVyIC5jYWwtY29udGFpbmVyLmNhbC1tb250aCAuY2FsLXJvdyBkaXYuY2FsLWZpcnN0IHsgcGFkZGluZy1sZWZ0OjE2cHg7IH0gLm5lYkNhbC5kZWZhdWx0IC5jYWwtYm9keSAuY2FsLWlubmVyIC5jYWwtY29udGFpbmVyLmNhbC1tb250aCAuY2FsLXJvdyBkaXYuY2FsLWxhc3QgeyBwYWRkaW5nLXJpZ2h0OjE2cHg7IH0gLm5lYkNhbC5kZWZhdWx0IC5jYWwtYm9keSAuY2FsLWlubmVyIC5jYWwtY29udGFpbmVyLmNhbC1tb250aCAuY2FsLXJvdyBkaXYuY2FsLW91dHNpZGUgeyBjb2xvcjojZGVkZWRlOyB9IC5uZWJDYWwuZGVmYXVsdCAuY2FsLWJvZHkgLmNhbC1pbm5lciAuY2FsLWNvbnRhaW5lci5jYWwtbW9udGggLmNhbC1yb3cuY2FsLWV2ZW4gZGl2LmNhbC1vdXRzaWRlIHsgY29sb3I6I2NlY2VjZTsgfSAubmViQ2FsLmRlZmF1bHQgLmNhbC1ib2R5IC5jYWwtaW5uZXIgLmNhbC1jb250YWluZXIuY2FsLW1vbnRoIC5jYWwtcm93LmEgZGl2IHsgY29sb3I6IzljOWM5YzsgfSAubmViQ2FsLmRlZmF1bHQgLmNhbC1ib2R5IC5jYWwtaW5uZXIgLmNhbC1jb250YWluZXIuY2FsLXllYXItZGVjYWRlIC5jYWwtcm93IHsgaGVpZ2h0OjQycHg7IH0gLm5lYkNhbC5kZWZhdWx0IC5jYWwtYm9keSAuY2FsLWlubmVyIC5jYWwtY29udGFpbmVyLmNhbC15ZWFyLWRlY2FkZSAuY2FsLXJvdyBkaXYgeyB3aWR0aDo4MHB4O2xpbmUtaGVpZ2h0OjI3cHg7IGhlaWdodDoyN3B4OyB9IC5uZWJDYWwuZGVmYXVsdCAuY2FsLWJvZHkgLmNhbC1pbm5lciAuY2FsLWNvbnRhaW5lci5jYWwteWVhci1kZWNhZGUgLmNhbC1yb3cgZGl2LmNhbC1maXJzdCB7IG1hcmdpbi1sZWZ0OjE2cHg7IH0gLm5lYkNhbC5kZWZhdWx0IC5jYWwtYm9keSAuY2FsLWlubmVyIC5jYWwtY29udGFpbmVyLmNhbC15ZWFyLWRlY2FkZSAuY2FsLXJvdyBkaXYuY2FsLWxhc3QgeyBtYXJnaW4tcmlnaHQ6MTZweDsgfSAubmViQ2FsLmRlZmF1bHQgLmNhbC1ib2R5IC5jYWwtaW5uZXIgLmNhbC1jb250YWluZXIuY2FsLXllYXItZGVjYWRlIC5jYWwtcm93IGRpdi5jYWwtc2VsZWN0ZWQgeyBiYWNrZ3JvdW5kLWNvbG9yOiM1NGJiMDA7fSAubmViQ2FsLmRlZmF1bHQgLmNhbC1ib2R5IC5jYWwtaW5uZXIgLmNhbC1jb250YWluZXIuY2FsLW1vbnRoLmNhbC1waWNrYWJsZSAuY2FsLXJvdyBkaXY6aG92ZXIsIC5uZWJDYWwuZGVmYXVsdCAuY2FsLWJvZHkgLmNhbC1pbm5lciAuY2FsLWNvbnRhaW5lci5jYWwteWVhci1kZWNhZGUgLmNhbC1yb3cgZGl2OmhvdmVyIHsgY29sb3I6I2IyY2ZlMTsgfSAubmViQ2FsLmRlZmF1bHQgLmNhbC1mb290ZXIgeyBoZWlnaHQ6NHB4OyB9Ci8qKiAvY3NzL2ZpbmFuY2VfbXVsdGlzdGVwLmNzcyAqKi8KI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm17IHRleHQtYWxpZ246Y2VudGVyOyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC5maW5hbmNlTXVsdGlzdGVwTmV3Q2FsY3VsYXRvcnsgdGV4dC1hbGlnbjpsZWZ0OyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIGgyeyB0ZXh0LWFsaWduOmNlbnRlcjsgbWFyZ2luLXRvcDoxMHB4OyBtYXJnaW4tYm90dG9tOjE1cHg7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gaDN7IHRleHQtYWxpZ246Y2VudGVyOyBtYXJnaW4tdG9wOjEwcHg7IG1hcmdpbi1ib3R0b206MTVweDsgZm9udC1zaXplOjEuMjVyZW0gOyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtICNmaW5hbmNlX211bHRpc3RlcF9mb3JtX25leHRfYnRuIHsgdGV4dC1hbGlnbjpjZW50ZXI7IG1hcmdpbi10b3A6MjVweDsgbWFyZ2luLWJvdHRvbToyNXB4OyB3aWR0aDoxMDAlOyBwb3NpdGlvbjphYnNvbHV0ZTsgbGVmdDowOyBib3R0b206MDsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV9uZXh0X2J0biBidXR0b257IHBhZGRpbmc6MTdweCA2NXB4IDE1cHggNjVweDsgZm9udC1zaXplOjEuMjVyZW0gOyBmb250LXdlaWdodDo0MDA7IHdpZHRoOjI4MHB4OyBiYWNrZ3JvdW5kLWNvbG9yOndoaXRlOyBjb2xvcjojQzBDMEMwOyBib3JkZXI6bm9uZTsgY3Vyc29yOnBvaW50ZXI7IGJvcmRlcjoxcHggc29saWQgI0MwQzBDMDsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV9uZXh0X2J0biBidXR0b24uaXNWYWxpZHsgYmFja2dyb3VuZC1jb2xvcjojZjNmM2YzOyBjb2xvcjojMTAyYjRlOyBib3JkZXI6MXB4IHNvbGlkICMwMDAwMDA7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gaW5wdXRbdHlwZT0icmFkaW8iXXsgb3BhY2l0eTowOyB3aWR0aDowOyBoZWlnaHQ6MDsgcG9zaXRpb246YWJzb2x1dGU7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gbGFiZWwucmFkaW9fbGFiZWwgeyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IHBhZGRpbmc6MTVweCAxMHB4OyBjdXJzb3I6cG9pbnRlcjsgb3BhY2l0eToxOyB0cmFuc2l0aW9uOmFsbCAxcyBlYXNlLWluLW91dDsgbWFyZ2luLWJvdHRvbTo1cHg7IGJvcmRlcjoxcHggc29saWQgI2NjY2NjYzsgYm9yZGVyLWJvdHRvbS13aWR0aDo1cHg7IHdpZHRoOjEwMCU7IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZToxLjEyNXJlbSA7IG1pbi1oZWlnaHQ6MTAycHg7IGJhY2tncm91bmQ6I2ZmZmZmZjsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSBpbnB1dFt0eXBlPSJyYWRpbyJdOmNoZWNrZWQgfiBsYWJlbC5yYWRpb19sYWJlbCB7IGJvcmRlcjoxcHggc29saWQgIzAwMDsgYm9yZGVyLWJvdHRvbS13aWR0aDo1cHg7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gbGFiZWwucmFkaW9fbGFiZWwyIHsgYm9yZGVyOjFweCBzb2xpZCByZ2JhKDI1MCwgMjUwLCAyNTAsIDAuMTUpOyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IHBhZGRpbmc6MTBweCA1cHggNXB4IDVweDsgY3Vyc29yOnBvaW50ZXI7IG9wYWNpdHk6MTsgdHJhbnNpdGlvbjphbGwgMXMgZWFzZS1pbi1vdXQ7IG1hcmdpbi1ib3R0b206NXB4OyBib3JkZXI6MXB4IHNvbGlkICNjY2NjY2M7IGJvcmRlci1ib3R0b20td2lkdGg6NXB4OyB3aWR0aDoxMDAlOyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MS4xMjVyZW0gOyBtaW4taGVpZ2h0OjQ1cHg7IGJhY2tncm91bmQ6I2ZmZmZmZjsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSBpbnB1dFt0eXBlPSJyYWRpbyJdOmNoZWNrZWQgfiBsYWJlbC5yYWRpb19sYWJlbDIgeyBib3JkZXI6MXB4IHNvbGlkICMwMDA7IGJvcmRlci1ib3R0b20td2lkdGg6NXB4OyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC5yYWRpb19kaXZ7IHdpZHRoOjQ1JTsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAucmFkaW9fZGl2LnJkX3dpZGV7IHdpZHRoOjQ2JTsgbWluLWhlaWdodDo4OHB4OyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC5yYWRpb19kaXY6bnRoLW9mLXR5cGUob2RkKXsgZmxvYXQ6bGVmdDsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAucmFkaW9fZGl2Om50aC1vZi10eXBlKGV2ZW4peyBmbG9hdDpyaWdodDsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSBpbnB1dFt0eXBlPSJ0ZXh0Il17IHdpZHRoOjI5MHB4OyBoZWlnaHQ6NDBweDsgdGV4dC1hbGlnbjpjZW50ZXI7IGZvbnQtc2l6ZToxLjI1cmVtIDsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSBpbnB1dFt0eXBlPSJudW1iZXIiXTpub3QoLnBheW1lbnRDYWxjdWxhdG9yRG93blBheW1lbnQpeyBkaXNwbGF5OmJsb2NrOyBmbG9hdDpsZWZ0OyBib3JkZXI6MXB4IHNvbGlkICNkZGRkZGQ7IHdpZHRoOjEyMHB4OyBib3JkZXItcmlnaHQ6bm9uZTsgbWFyZ2luOjAgMCAxMHB4OyBsaW5lLWhlaWdodDozMHB4OyBoZWlnaHQ6NzVweDsgcGFkZGluZzowOyB0ZXh0LWFsaWduOmNlbnRlcjsgZm9udC1zaXplOjEuNXJlbSA7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLm51bWJlci10eXBlLWxhYmVseyBkaXNwbGF5OmJsb2NrOyBmbG9hdDpsZWZ0OyBib3JkZXI6MXB4IHNvbGlkICNkZGRkZGQ7IHdpZHRoOjEyMHB4OyBjb2xvcjojMjUyNTI1OyBoZWlnaHQ6NzVweDsgbGluZS1oZWlnaHQ6MzVweDsgZm9udC1zaXplOjEuNXJlbSA7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLm51bWJlci10eXBlLWRpdnsgZmxvYXQ6bGVmdDsgbGVmdDoxMCU7IG1hcmdpbi10b3A6MjBweDsgcG9zaXRpb246cmVsYXRpdmU7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLmZpbmFuY2VfbXVsdGlzdGVwX3NlbGVjdF9jb250YWluZXJ7IG1hcmdpbi10b3A6MTBweDsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAuZmluYW5jZV9tdWx0aXN0ZXBfc2VsZWN0X2NvbnRhaW5lcl9kaXZ7IHdpZHRoOjEwMCU7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLmZpbmFuY2VfbXVsdGlzdGVwX3NlbGVjdF9jb250YWluZXIgc2VsZWN0eyBjb2xvcjojM2MzODM2OyBib3JkZXI6MnB4IHNvbGlkICMwMDAwMDA7IGJvcmRlci1yYWRpdXM6NXB4OyBwYWRkaW5nOjEwcHggMTBweDsgZm9udC1zaXplOjFyZW0gOyBiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjkpOyBiYWNrZ3JvdW5kLXBvc2l0aW9uOjk1JSA1MCU7IHdpZHRoOjkwcHg7IC13ZWJraXQtYXBwZWFyYW5jZTpub25lOyAtbW96LWFwcGVhcmFuY2U6bm9uZTsgcGFkZGluZy1yaWdodDoyN3B4OyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC5maW5hbmNlX211bHRpc3RlcF9zZWxlY3RfY29udGFpbmVyX3NlbGVjdHsgcG9zaXRpb246cmVsYXRpdmU7IHdpZHRoOjQwJTsgbWFyZ2luOmF1dG87IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLmZpbmFuY2VfbXVsdGlzdGVwX3NlbGVjdF9jb250YWluZXJfc2VsZWN0OmFmdGVyIHsgY29udGVudDoiICI7IGhlaWdodDowOyB3aWR0aDowOyBib3JkZXItbGVmdDo1cHggc29saWQgdHJhbnNwYXJlbnQ7IGJvcmRlci1yaWdodDo1cHggc29saWQgdHJhbnNwYXJlbnQ7IGJvcmRlci10b3A6NXB4IHNvbGlkICMwMDA7IHBvc2l0aW9uOmFic29sdXRlOyByaWdodDoxNHB4OyB0b3A6MTdweDsgdHJhbnNpdGlvbjphbGwgLjNzIGxpbmVhcjsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAuc3RlcDI0c2VsZWN0eyBtYXJnaW4tdG9wOjEwcHg7IHBhZGRpbmc6MC41cmVtOyBiYWNrZ3JvdW5kLWNvbG9yOndoaXRlOyBib3JkZXItcmFkaXVzOjAuNXJlbTsgYm9yZGVyOjFweCBzb2xpZCAjZGRkOyBjb2xvcjojMjEyNTI5OyBmb250LXNpemU6MC44NzVyZW0gOyBsaW5lLWhlaWdodDpub3JtYWw7IGZvbnQtd2VpZ2h0OjQwMDsgd2lkdGg6MTAwJTsgfSAucGFjLWNvbnRhaW5lciB7IHotaW5kZXg6MTAwMDAyMTsgfSBpbnB1dDo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiwgaW5wdXQ6Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24geyAtd2Via2l0LWFwcGVhcmFuY2U6bm9uZTsgbWFyZ2luOjA7IH0gI2ZpbmFuY2VNdWx0aXN0ZXBQb3B1cENvbnRhaW5lcnsgbWF4LXdpZHRoOmNhbGMoMTAwdncgLSAyMHB4KTsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAjbXVsdGlzdGVwLW11bHRpYWRkcmVzcyBzZWxlY3QgeyBtYXgtd2lkdGg6MjgwcHg7IG1hcmdpbjowIGF1dG87IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gI211bHRpc3RlcC1tdWx0aWFkZHJlc3MgbGFiZWwgeyB0ZXh0LWFsaWduOmNlbnRlcjsgbWFyZ2luLXRvcDoyNXB4OyBtYXJnaW4tYm90dG9tOjI1cHg7IGZvbnQtc2l6ZToxLjVyZW0gOyBkaXNwbGF5OmJsb2NrOyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtICNtdWx0aXN0ZXAtbXVsdGlhZGRyZXNzICNtdXRsaUFkZHJlc3NTdWJtaXQgeyBkaXNwbGF5Om5vbmU7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLmZpbmFuY2VfbXVsdGlzdGVwX2JpcnRoZGF0ZV9pbnB1dHN7IGRpc3BsYXk6aW5saW5lLWZsZXg7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLmZpbmFuY2VfbXVsdGlzdGVwX2JpcnRoZGF0ZV9pbnB1dF9kaXZ7IG1hcmdpbjoyMHB4IDVweCAyMHB4IDVweDsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAuZmluYW5jZV9tdWx0aXN0ZXBfYmlydGhkYXRlX2lucHV0X2RpdiBsYWJlbHsgZm9udC1zaXplOjEuMTI1cmVtIDsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAuZmluYW5jZV9tdWx0aXN0ZXBfYmlydGhkYXRlX2lucHV0X2RpdiBpbnB1dFt0eXBlPSJudW1iZXIiXXsgd2lkdGg6ODBweDsgaGVpZ2h0OjUwcHg7IGRpc3BsYXk6YmxvY2s7IGZsb2F0Om5vbmU7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLmZpbmFuY2VfbXVsdGlzdGVwX2JpcnRoZGF0ZV9pbnB1dF9kaXYgaW5wdXRbdHlwZT0ibnVtYmVyIl0uYmlydGh5ZWFyeyB3aWR0aDoxMDBweDsgfSAucmV2ZWFsLW1vZGFsLmZpbmFuY2VfYmFja2dyb3VuZF9pbWFnZXsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvcG9wdXBzL2ZpbmFuY2Vwb3B1cC1iZy1tb2JpbGUud2VicCcpOyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC5maW5hbmNlSWNvbkRpdnsgcG9zaXRpb246cmVsYXRpdmU7IGhlaWdodDoxMzVweDsgbWFyZ2luLWJvdHRvbToxMHB4OyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC5maW5hbmNlSWNvbkRpdiAuZmluYW5jZUNhbGN7IGNvbG9yOiM0ZWJhNTk7IGZvbnQtc2l6ZToxMDBweDsgbGVmdDozNSU7IHBvc2l0aW9uOmFic29sdXRlOyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC5maW5hbmNlSWNvbkRpdiAuZmluYW5jZUNhcnsgY29sb3I6IzAwMDAwMDsgZm9udC1zaXplOjEwMHB4OyBsZWZ0OjMzJTsgcG9zaXRpb246YWJzb2x1dGU7IHRvcDo1MHB4OyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC5lbXBsb3ltZW50VGV4dExhYmVseyB3aWR0aDo0NSU7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLmVtcGxveW1lbnRUZXh0TGFiZWwyeyBtYXJnaW4tcmlnaHQ6MjVweDsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAuZW1wbG95bWVudFRleHR7IHdpZHRoOjYwJSFpbXBvcnRhbnQ7IGZvbnQtc2l6ZToxLjEyNXJlbSAhaW1wb3J0YW50OyBib3JkZXI6MXB4IHNvbGlkICNjY2NjY2M7IGhlaWdodDoyNXB4OyBtYXJnaW4tYm90dG9tOjVweDsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSBpbnB1dFt0eXBlPSJudW1iZXIiXS5lbXBsb3ltZW50U3RhdHVzVGltZXsgd2lkdGg6NTBweDsgaGVpZ2h0OjUwcHg7IGJvcmRlcjoxcHggc29saWQgI2E5YTlhOTsgYm9yZGVyLXJhZGl1czo1cHg7IGFsaWduLXNlbGY6Y2VudGVyOyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC5lbXBsb3ltZW50QWRkZWRJbmZveyB3aWR0aDo5NSU7IGhlaWdodDo1MHB4OyByZXNpemU6bm9uZTsgbWFyZ2luLXRvcDoxMHB4OyBtYXJnaW4tYm90dG9tOjEwcHg7IGJvcmRlcjoxcHggc29saWQgI2NjY2NjYzsgZm9udC1zaXplOjAuOTM4cmVtICFpbXBvcnRhbnQ7IH0gLmZhZGUtZW50ZXIsIC5mYWRlLWxlYXZlIHsgb3BhY2l0eTowOyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC5maW5hbmNlTXVsdGlzdGVwVXNlZENhbGN1bGF0b3IgLmNhbGMtZm9ybXsgd2lkdGg6MTAwJTsgdGV4dC1hbGlnbjpjZW50ZXI7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLmZpbmFuY2VNdWx0aXN0ZXBVc2VkQ2FsY3VsYXRvciAuY2FsYy1mb3JtIGxhYmVseyBtYXJnaW4tYm90dG9tOjE1cHg7IHBhZGRpbmc6MDsgZGlzcGxheTpmbGV4OyBhbGlnbi1pdGVtczpjZW50ZXI7IGp1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuOyBwb3NpdGlvbjpyZWxhdGl2ZTsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAuZmluYW5jZU11bHRpc3RlcFVzZWRDYWxjdWxhdG9yIC5jYWxjLWZvcm0gbGFiZWwucGF5bWVudFZhbHVlTGFiZWx7IGp1c3RpZnktY29udGVudDp1bnNldDsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAuZmluYW5jZU11bHRpc3RlcFVzZWRDYWxjdWxhdG9yIHNwYW57IGZvbnQtc2l6ZToxZW07IHdpZHRoOjUwJTsgdGV4dC1hbGlnbjpsZWZ0OyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC5maW5hbmNlTXVsdGlzdGVwVXNlZENhbGN1bGF0b3IgaW5wdXR7IHRleHQtYWxpZ246bGVmdDsgaGVpZ2h0OjI1cHg7IGZvbnQtc2l6ZToxZW07IGNvbG9yOmJsYWNrOyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC5maW5hbmNlTXVsdGlzdGVwVXNlZENhbGN1bGF0b3Igc2VsZWN0eyBoZWlnaHQ6MjhweDsgY29sb3I6YmxhY2s7IGZvbnQtc2l6ZToxZW07IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLmZpbmFuY2VNdWx0aXN0ZXBVc2VkQ2FsY3VsYXRvciAuZXN0aW1hdGVkVGV4dHsgZm9udC13ZWlnaHQ6NzAwOyB3aWR0aDo3MCU7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLmZpbmFuY2VNdWx0aXN0ZXBVc2VkQ2FsY3VsYXRvciAub3V0cHV0cHJpY2UtdHh0eyB3aWR0aDozNSU7IG1hcmdpbi1sZWZ0OjMwcHg7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLmZpbmFuY2VNdWx0aXN0ZXBVc2VkQ2FsY3VsYXRvciAudGF4ZVRleHR7IHBvc2l0aW9uOmFic29sdXRlOyBsZWZ0OjA7IGJvdHRvbTotMTBweDsgd2lkdGg6Zml0LWNvbnRlbnQ7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLmZpbmFuY2VNdWx0aXN0ZXBVc2VkQ2FsY3VsYXRvciAuaW5wdXQgeyBib3JkZXI6MXB4IHNvbGlkICM5OTk7IGJhY2tncm91bmQ6I2VlZTsgcGFkZGluZzowLjI1cmVtOyBib3JkZXItcmFkaXVzOjAuMjVyZW07IHdpZHRoOm1pbig1MCUsNnJlbSk7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLmZpbmFuY2VNdWx0aXN0ZXBVc2VkQ2FsY3VsYXRvciAuY2FsYy1mb3JtIGRpdi5kb2xsYXJTcGFueyBkaXNwbGF5OmNvbnRlbnRzOyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC5maW5hbmNlTXVsdGlzdGVwVXNlZENhbGN1bGF0b3IgZGl2LmRvbGxhclNwYW4gLmlucHV0eyBwYWRkaW5nLWxlZnQ6MTJweDsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAuZmluYW5jZU11bHRpc3RlcFVzZWRDYWxjdWxhdG9yIC5jYWxjLWZvcm0gZGl2LmRvbGxhclNwYW46OmJlZm9yZXsgY29udGVudDoiJCI7IGZvbnQtc2l6ZToxZW07IHBvc2l0aW9uOmFic29sdXRlOyByaWdodDo4NXB4OyB0b3A6NDklOyB0cmFuc2Zvcm06dHJhbnNsYXRlWSgtNDMlKTsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAuZmluYW5jZV9tdWx0aXN0ZXBfY29uc2VudF90ZXh0X2Rpdnsgb3ZlcmZsb3cteTpzY3JvbGw7IGhlaWdodDo0NDBweDsgd2lkdGg6MTAwJTsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAubXVsdGlzdGVwUGF5bWVudFZlaGljbGV7IGZvbnQtc2l6ZTppbmhlcml0OyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRXcmFwcGVyeyBtYXgtaGVpZ2h0OjE3NXB4OyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRDb250YWluZXJ7IGhlaWdodDoyNzVweDsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAuZmluYW5jZU11bHRpc3RlcFVzZWRDYWxjdWxhdG9yIC5jYWxjLWZvcm0gLmxvYW5hbW91bnQsICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC5maW5hbmNlTXVsdGlzdGVwVXNlZENhbGN1bGF0b3IgLmNhbGMtZm9ybSAuaW50ZXJlc3RyYXRleyBib3JkZXI6MDsgYmFja2dyb3VuZC1jb2xvcjp1bnNldDsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAuZmluYW5jZU11bHRpc3RlcFVzZWRDYWxjdWxhdG9yIC5jYWxjLWZvcm0gaW5wdXQsICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC5maW5hbmNlTXVsdGlzdGVwVXNlZENhbGN1bGF0b3IgLmNhbGMtZm9ybSBzZWxlY3R7IGJhY2tncm91bmQtY29sb3I6I2ZmZjsgYm9yZGVyLXJhZGl1czowLjNyZW07IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLm11bHRpc3RlcEluaXRpYWxUaXRsZXsgZm9udC13ZWlnaHQ6Ym9sZDsgbWFyZ2luLXRvcDowOyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIHNwYW4uaDItYWx0eyB0ZXh0LWFsaWduOmNlbnRlcjsgbWFyZ2luLWJvdHRvbToxNXB4OyBmb250LXNpemU6aW5oZXJpdDsgZGlzcGxheTpibG9jazsgY29sb3I6dmFyKC0tZGVmYXVsdC1ibGFjayk7IG1hcmdpbi1sZWZ0OjA7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gc3Bhbi5oMy1hbHR7IHRleHQtYWxpZ246Y2VudGVyOyBtYXJnaW4tdG9wOjEwcHg7IG1hcmdpbi1ib3R0b206MTVweDsgZm9udC1zaXplOjEuMjVyZW0gOyBkaXNwbGF5OmJsb2NrOyBmb250LWZhbWlseTp2YXIoLS1mb250LWgyLW1vYik7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLmhpZGRlbklucHV0eyBkaXNwbGF5Om5vbmU7IH0gLmZpbmFuY2VNdWx0aXN0ZXBOZXdDYWxjdWxhdG9yIC5wYXltZW50Q2FsY3VsYXRvckluY2x1ZGVUYXhDaGVja0RpdnsgcG9zaXRpb246YWJzb2x1dGU7IG1hcmdpbi10b3A6MTBweDsgcmlnaHQ6MHB4OyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC5maW5hbmNlTXVsdGlzdGVwTmV3Q2FsY3VsYXRvciAucGF5bWVudENhbGN1bGF0b3JUcmFkZUluSW5pdGlhbHsgZm9udC1zaXplOjAuNjI1cmVtIDsgYm9yZGVyOjFweCBzb2xpZCAjYTlhOWE5OyBoZWlnaHQ6MzVweDsgYm9yZGVyLXJhZGl1czo1cHg7IGJhY2tncm91bmQtY29sb3I6d2hpdGU7IHdpZHRoOjEwNXB4OyB0ZXh0LWFsaWduOmNlbnRlcjsgdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTsgcGFkZGluZzo0cHggMnB4IDVweDsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAuZmluYW5jZU11bHRpc3RlcE5ld0NhbGN1bGF0b3IgLnBheW1lbnRDYWxjdWxhdG9yVHJhZGVJbkZpbmFseyBib3JkZXI6MXB4IHNvbGlkICNhOWE5YTk7IGhlaWdodDozNXB4OyBib3JkZXItcmFkaXVzOjVweDsgYmFja2dyb3VuZC1jb2xvcjp3aGl0ZTsgd2lkdGg6MTA1cHghaW1wb3J0YW50OyB0ZXh0LWFsaWduOmNlbnRlcjsgcGFkZGluZzo1cHggMnB4OyBiYWNrZ3JvdW5kLWltYWdlOnVybCgiZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZlcnNpb249JzEuMScgaGVpZ2h0PScyOHB4JyB3aWR0aD0nODVweCc+PHRleHQgeD0nNicgeT0nMjEnIGZpbGw9JycgZm9udC1zaXplPScxNicgZm9udC1mYW1pbHk9J2FyaWFsJz4kIik7IGJhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAuZmluYW5jZU11bHRpc3RlcFVzZWRDYWxjdWxhdG9yIC5wYXltZW50Q2FsY3VsYXRvclRyYWRlSW5Jbml0aWFseyBmb250LXNpemU6MC42MjVyZW0gOyBib3JkZXI6MXB4IHNvbGlkICNhOWE5YTk7IGhlaWdodDozNXB4OyBib3JkZXItcmFkaXVzOjVweDsgYmFja2dyb3VuZC1jb2xvcjp3aGl0ZTsgd2lkdGg6OTZweDsgdGV4dC1hbGlnbjpjZW50ZXI7IHRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7IHBhZGRpbmc6NXB4IDJweDsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAuZmluYW5jZU11bHRpc3RlcFVzZWRDYWxjdWxhdG9yIC5wYXltZW50Q2FsY3VsYXRvclRyYWRlSW5GaW5hbHsgYm9yZGVyOjFweCBzb2xpZCAjYTlhOWE5OyBoZWlnaHQ6MzVweDsgYm9yZGVyLXJhZGl1czo1cHg7IGJhY2tncm91bmQtY29sb3I6d2hpdGU7IHdpZHRoOjk2cHghaW1wb3J0YW50OyB0ZXh0LWFsaWduOmNlbnRlcjsgcGFkZGluZzo1cHggMnB4OyBiYWNrZ3JvdW5kLWltYWdlOnVybCgiZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZlcnNpb249JzEuMScgaGVpZ2h0PScyOHB4JyB3aWR0aD0nODVweCc+PHRleHQgeD0nNicgeT0nMjEnIGZpbGw9JycgZm9udC1zaXplPScxNicgZm9udC1mYW1pbHk9J2FyaWFsJz4kIik7IGJhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAuZm9ybWF0LXByaWNleyBtYXJnaW4tYm90dG9tOnVuc2V0OyBtYXJnaW4tbGVmdDowLjdyZW07IH0gOmlzKC5FTkdMSVNILFtkYXRhLWxhbmc9ImVuIl0pIGxhYmVsIC5mb3JtYXQtcHJpY2V7IG1hcmdpbi1yaWdodDowLjNyZW07IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLnZ3Q29uc2VudFRleHR7IGhlaWdodDoxOTBweDsgb3ZlcmZsb3cteTpzY3JvbGw7IGJhY2tncm91bmQtY29sb3I6I2ZmZjsgcGFkZGluZzoxMHB4IDEwcHg7IGxpbmUtaGVpZ2h0OjEuNSAhaW1wb3J0YW50OyB9IC52d0NvbnNlbnRUZXh0IGgxeyBmb250LXNpemU6MS4yNXJlbSAhaW1wb3J0YW50OyBmb250LXdlaWdodDo3MDAgIWltcG9ydGFudDsgbWFyZ2luOjAgMCAxNnB4IDAgIWltcG9ydGFudDsgfSAudndDb25zZW50VGV4dCBoMnsgZm9udC1zaXplOjFyZW0gIWltcG9ydGFudDsgZm9udC13ZWlnaHQ6NzAwICFpbXBvcnRhbnQ7IG1hcmdpbjoyNHB4IDAgMTBweCAwICFpbXBvcnRhbnQ7IH0gLnZ3Q29uc2VudFRleHQgcHsgZm9udC1zaXplOjAuODc1cmVtICFpbXBvcnRhbnQ7IGZvbnQtd2VpZ2h0OjQwMCAhaW1wb3J0YW50OyBsaW5lLWhlaWdodDoxLjUgIWltcG9ydGFudDsgbWFyZ2luOjAgMCAxMnB4IDAgIWltcG9ydGFudDsgdGV4dC1hbGlnbjpqdXN0aWZ5ICFpbXBvcnRhbnQ7IH0gLnZ3Q29uc2VudFRleHQgdWx7IG1hcmdpbjo4cHggMCAxNnB4IDI0cHggIWltcG9ydGFudDsgcGFkZGluZzowICFpbXBvcnRhbnQ7IH0gLnZ3Q29uc2VudFRleHQgbGl7IGZvbnQtc2l6ZTowLjg3NXJlbSAhaW1wb3J0YW50OyBmb250LXdlaWdodDo0MDAgIWltcG9ydGFudDsgbGluZS1oZWlnaHQ6MS41ICFpbXBvcnRhbnQ7IG1hcmdpbjowIDAgMTJweCAwICFpbXBvcnRhbnQ7IHRleHQtYWxpZ246anVzdGlmeSAhaW1wb3J0YW50OyB9IC52d0NvbnNlbnRUZXh0IHN0cm9uZ3sgZm9udC13ZWlnaHQ6NzAwICFpbXBvcnRhbnQ7IH0gLnZ3Q29uc2VudFRleHQgYXsgdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZSAhaW1wb3J0YW50OyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC52d0NvbnNlbnREaXZzeyBtYXJnaW4tdG9wOjEwcHg7IGZvbnQtc2l6ZTowLjc1cmVtIDsgdGV4dC1hbGlnbjpsZWZ0OyB9Ci8qKiAvY3NzL2NvbnRhY3RQb3B1cC5jc3MgKiovCiNjb250YWN0cG9wdXAgeyB3aWR0aDo1OThweDsgbWluLXdpZHRoOjIzMHB4OyB9ICNjb250YWN0cG9wdXAubW9iaWxlIHsgd2lkdGg6MTAwJTsgfSAuY29udGFjdHBvcHVwLm1vYmlsZSB0YWJsZS5qcVRyYW5zZm9ybVRleHRhcmVhLCAuY29udGFjdHBvcHVwLm1vYmlsZSB0YWJsZS5qcVRyYW5zZm9ybVRleHRhcmVhIHRleHRhcmVhLmpxdHJhbnNmb3JtZG9uZSB7IHdpZHRoOjEwMCU7IH0gLmNvbnRhY3Rwb3B1cC5tb2JpbGUgdGFibGUuanFUcmFuc2Zvcm1UZXh0YXJlYSB0ZC5qcVRyYW5zZm9ybVRleHRhcmVhLW1sLCAuY29udGFjdHBvcHVwLm1vYmlsZSB0YWJsZS5qcVRyYW5zZm9ybVRleHRhcmVhIHRkLmpxVHJhbnNmb3JtVGV4dGFyZWEtbXIgeyBkaXNwbGF5Om5vbmU7IH0gI2NvbnRhY3Rwb3B1cCAqIHsgYm94LXNpemluZzpib3JkZXItYm94OyB9ICNjb250YWN0cG9wdXAucmV2ZWFsLW1vZGFsIHsgcGFkZGluZzowOyB9ICNjb250YWN0cG9wdXAucmV2ZWFsLW1vZGFsIC5jbG9zZS1yZXZlYWwtbW9kYWwgeyBkaXNwbGF5Om5vbmU7IH0gI2NvbnRhY3Rwb3B1cCAuY29udGFjdHBvcHVwLWJvZHkgeyBiYWNrZ3JvdW5kLWNvbG9yOndoaXRlOyBwYWRkaW5nOjMwcHggMTBweCAxMHB4OyB9IC5jb250YWN0cG9wdXAtYm9keSBpbnB1dCB7IHdpZHRoOjEwMCU7IH0gLmNvbnRhY3Rwb3B1cC1ib2R5IC5kaXZCbG9ja1Jvdzpub3QoOmxhc3QtY2hpbGQpIC5kaXZTcGFuIHsgbWFyZ2luLWJvdHRvbToxNXB4OyB9IC5jb250YWN0cG9wdXAtYm9keSAuZGl2QmxvY2tSb3cgLmRpdlNwYW42OmZpcnN0LWNoaWxkIHsgcGFkZGluZy1yaWdodDoxNXB4OyB9IC5jb250YWN0cG9wdXAtYm9keSAuZGl2QmxvY2tSb3cgLmRpdlNwYW42Omxhc3QtY2hpbGQgeyBwYWRkaW5nLWxlZnQ6MTVweDsgfSAuY29udGFjdHBvcHVwLWJvZHkgLmRpdkJsb2NrUm93IC5kaXZTcGFuNiAuanFUcmFuc2Zvcm1JbnB1dFdyYXBwZXIgeyBtYXgtd2lkdGg6Mjc0cHggIWltcG9ydGFudDsgfSAuY29udGFjdHBvcHVwLWhlYWRlciB7IGJvcmRlci1yYWRpdXM6NXB4IDVweCAwIDA7IHBhZGRpbmc6MTVweCAxNXB4IDMwcHggMTVweDsgdGV4dC1hbGlnbjpjZW50ZXI7IHBvc2l0aW9uOnJlbGF0aXZlOyAtd2Via2l0LWJveC1zaGFkb3c6MCAwIDEwcHggMnB4IHJnYmEoMCwwLDAsMC4zKTsgLW1vei1ib3gtc2hhZG93OjAgMCAxMHB4IDJweCByZ2JhKDAsMCwwLDAuMyk7IGJveC1zaGFkb3c6MCAwIDEwcHggMnB4IHJnYmEoMCwwLDAsMC4zKTsgZm9udC1zaXplOjEuNjI1cmVtIDsgY29sb3I6IzEwMmI0ZTsgYmFja2dyb3VuZC1jb2xvcjojZjNmM2YzOyB9IC5jb250YWN0cG9wdXAtaGVhZGVyOjphZnRlciB7IGNvbnRlbnQ6IiI7IHBvc2l0aW9uOmFic29sdXRlOyBib3R0b206LTE1cHg7IGxlZnQ6NTAlOyAtd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSk7IC1tb3otdHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlKTsgLW1zLXRyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSk7IC1vLXRyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSk7IHRyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSk7IGJvcmRlci1sZWZ0OjMwcHggc29saWQgdHJhbnNwYXJlbnQ7IGJvcmRlci1yaWdodDozMHB4IHNvbGlkIHRyYW5zcGFyZW50OyBib3JkZXItdG9wOjE1cHggc29saWQgI2YzZjNmMzsgfSAuY29udGFjdHBvcHVwLWhlYWRlciAuZmEtdGltZXMgeyBwb3NpdGlvbjphYnNvbHV0ZTsgcmlnaHQ6MC41cmVtOyB0b3A6MC41cmVtOyBmb250LXNpemU6aW5pdGlhbDsgfSAuY29udGFjdHBvcHVwLWhlYWRlciAuZmEtdGltZXM6aG92ZXIgeyBjdXJzb3I6cG9pbnRlcjsgfSAuY29udGFjdHBvcHVwLWhlYWRlciAuaGVhZGVyLXJlcGxhY2UgeyBkaXNwbGF5OmlubGluZS1ibG9jazsgfSBidXR0b24uY29udGFjdC1zdWJtaXQgeyBwYWRkaW5nOjEwcHggMTVweDsgZGlzcGxheTpibG9jazsgZmxvYXQ6bGVmdDsgd2lkdGg6MTAwJTsgYm9yZGVyLWNvbG9yOiMxMDJiNGU7IGJhY2tncm91bmQ6I2YzZjNmMzsgdHJhbnNpdGlvbjphbGwgMC4yNXM7IGNvbG9yOiMxMDJiNGU7IGZvbnQtd2VpZ2h0OjYwMDsgbWFyZ2luOjA7IGJvcmRlcjoxcHggc29saWQ7IHRleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTsgYm9yZGVyLXJhZGl1czozcHg7IGZvbnQtc2l6ZToxLjU2M3JlbSA7IH0gLmNvbnRhY3Qtc3VibWl0OmhvdmVyIHsgY3Vyc29yOnBvaW50ZXI7IGJvcmRlci1jb2xvcjojZmZmZmZmOyBiYWNrZ3JvdW5kLWNvbG9yOiMxMDJiNGU7IGNvbG9yOiNmZmZmZmY7IH0gLmNvbnRhY3Rwb3B1cC1mb290ZXIgeyB9IC5jb250YWN0cG9wdXAtZm9vdGVyIC5idG4td3JhcHBlciB7IHBhZGRpbmc6MTBweDsgfSAjY29udGFjdHBvcHVwIC5qcVRyYW5zZm9ybUlucHV0SW5uZXIgZGl2IHsgaGVpZ2h0OjMwcHg7IH0gI2NvbnRhY3Rwb3B1cCAuanFUcmFuc2Zvcm1JbnB1dElubmVyIGRpdi52YWxpZGl0eS1lcnJvbmVvdXMgeyB3aWR0aDppbmhlcml0OyB9Ci8qKiAvY3NzL2Rpdl90YWJsZXMuY3NzICoqLwpkaXYuZGl2VGFibGVWaWV3eyBmbG9hdDpsZWZ0OyB3aWR0aDoxMDAlOyB9IGRpdi5kaXZUYWJsZVZpZXcgZGl2LmRpdlRhYmxlV3JhcGVyeyB9IGRpdi5kaXZUYWJsZVZpZXcgZGl2LmRpdlRpdGxleyBkaXNwbGF5OmJsb2NrOyBmb250LXdlaWdodDpib2xkOyB0ZXh0LWFsaWduOmxlZnQ7IGZvbnQtc2l6ZTowLjkzOHJlbSA7IHBhZGRpbmc6MzBweCAwcHggMTBweCAxMHB4OyBjb2xvcjojMDAwMDAwOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgdGV4dC10cmFuc2Zvcm06dmFyKC0tdHh0LXVwcGVyKTsgaGVpZ2h0OmF1dG87IH0gZGl2LmRpdlRhYmxlVmlldyBkaXYuZGl2VGFibGVPdXRlcnsgYm9yZGVyOjFweCBzb2xpZCAjZGRkOyBwYWRkaW5nOjA7IGJvcmRlci1yYWRpdXM6OHB4OyBtYXJnaW46MDsgYmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNzUpOyBvdmVyZmxvdzpoaWRkZW47IH0gZGl2LmRpdlRhYmxlVmlldyBkaXYuZGl2VGFibGV7IGRpc3BsYXk6dGFibGU7IHdpZHRoOjEwMCU7IHBhZGRpbmc6MDsgbWFyZ2luOjA7IH0gZGl2LmRpdlRhYmxlVmlldyBkaXYuZGl2SGVhZGluZ3sgZGlzcGxheTp0YWJsZS1yb3c7IGZvbnQtd2VpZ2h0OmluaXRpYWw7IHRleHQtYWxpZ246Y2VudGVyOyBmb250LXdlaWdodDpib2xkOyBoZWlnaHQ6NDVweDsgfSBkaXYuZGl2VGFibGVWaWV3IGRpdi5kaXZSb3d7IGRpc3BsYXk6dGFibGUtcm93OyB3aWR0aDoxMDAlOyBoZWlnaHQ6NjVweDsgfSBkaXYuZGl2VGFibGVWaWV3IGRpdi5kaXZDZWxseyBkaXNwbGF5OnRhYmxlLWNlbGw7IGJvcmRlci1ib3R0b206MXB4IHNvbGlkICNkZGQ7IHRleHQtYWxpZ246Y2VudGVyOyBwYWRkaW5nOjE1cHggMTVweCAyNXB4IDE1cHg7IGJvcmRlci1yaWdodDoxcHggc29saWQgI2RkZDsgY29sb3I6IzAwMDAwMDsgZm9udC1zaXplOjAuODc1cmVtIDsgfSBkaXYuZGl2VGFibGVWaWV3IGRpdi5kaXZDZWxsOmxhc3QtY2hpbGR7IGJvcmRlci1yaWdodDoxcHggc29saWQgdHJhbnNwYXJlbnQ7IH0gZGl2LmRpdlRhYmxlVmlldyBkaXYuZGl2SGVhZGluZyBkaXYuZGl2Q2VsbHsgcGFkZGluZzoxMHB4IDE1cHg7IGJhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsIDI1NSwgMjU1LCAxLjApOyB9IGRpdi5kaXZUYWJsZVZpZXcgZGl2LmRpdkhlYWRpbmcgZGl2LmRpdkNlbGw6bnRoLWNoaWxkKGV2ZW4peyBiYWNrZ3JvdW5kLWNvbG9yOiNlZWU7IH0gZGl2LmRpdlRhYmxlVmlldyBkaXYuZGl2SGVhZGluZyBkaXYuZGl2Q2VsbDpsYXN0LWNoaWxkeyBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czo4cHg7IH0gZGl2LmRpdlRhYmxlVmlldyBkaXYuZGl2SGVhZGluZyBkaXYuZGl2Q2VsbDpmaXJzdC1jaGlsZHsgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czo4cHg7IH0gZGl2LmRpdlRhYmxlVmlldyBkaXYuZGl2Um93Omxhc3QtY2hpbGQgZGl2LmRpdkNlbGx7IGJvcmRlci1ib3R0b206MHB4OyB9IGRpdi5kaXZUYWJsZVZpZXcgZGl2LmRpdlJvdyBkaXYuZGl2Q2VsbHsgYmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7IH0gZGl2LmRpdlRhYmxlVmlldyBkaXYuZGl2Um93IGRpdi5kaXZDZWxsOm50aC1jaGlsZChldmVuKXsgYmFja2dyb3VuZC1jb2xvcjojZjZmN2Y4OyB9Ci8qKiAvY3NzL2Rpdl9ibG9ja3MuY3NzICoqLwpkaXYuZGl2QmxvY2tWaWV3eyBkaXNwbGF5OmJsb2NrOyBmbG9hdDpsZWZ0OyB3aWR0aDoxMDAlOyB9IGRpdi5kaXZCbG9ja1ZpZXcgZGl2LmRpdkJsb2NrVGl0bGUsIGRpdi5kaXZCbG9ja1ZpZXcgbGFiZWwuZGl2QmxvY2tUaXRsZXsgZGlzcGxheTpibG9jazsgZm9udC13ZWlnaHQ6Ym9sZDsgdGV4dC1hbGlnbjpsZWZ0OyBwYWRkaW5nOjMwcHggMTBweCAxMHB4IDEwcHg7IGNvbG9yOiMwMDAwMDA7IHRleHQtZGVjb3JhdGlvbjpub25lOyB0ZXh0LXRyYW5zZm9ybTp2YXIoLS10eHQtdXBwZXIpOyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgfSBkaXYuZGl2QmxvY2tWaWV3IGRpdi5kaXZCbG9ja1RpdGxlLmJsb2NrVGl0bGVTdHlsZTIsIGRpdi5kaXZCbG9ja1ZpZXcgbGFiZWwuZGl2QmxvY2tUaXRsZS5ibG9ja1RpdGxlU3R5bGUyeyBwYWRkaW5nOjAgNDBweCAxMHB4OyB9IGRpdi5kaXZCbG9ja1ZpZXcgZGl2LmRpdkJsb2NrQ29udGVudHsgYmFja2dyb3VuZDpub25lOyBwYWRkaW5nOjE1cHggMHB4OyBtYXJnaW46MDsgZmxvYXQ6bGVmdDsgd2lkdGg6MTAwJTsgfSBkaXYuZGl2QmxvY2tWaWV3IGRpdi5kaXZCbG9ja0NvbnRlbnQgZGl2LmRpdkJsb2NrQ29sdW1ueyBiYWNrZ3JvdW5kOm5vbmU7IHBhZGRpbmc6MCA0MHB4OyBtYXJnaW46MDsgd2lkdGg6ODYwcHggIWltcG9ydGFudDsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOmluaGVyaXQ7IH0gZGl2LmRpdkJsb2NrVmlldyBVTC5kaXZCbG9ja0xpc3R7IGJhY2tncm91bmQ6aW5pdGlhbDsgcGFkZGluZzowOyBtYXJnaW46MCAwIDIwcHggMDsgfSBkaXYuZGl2QmxvY2tWaWV3IFVMLmRpdkJsb2NrTGlzdCBVTC5kaXZJbm5lckJsb2NrTGlzdCB7IHBhZGRpbmc6MTBweCAwIDAgMDsgfSBkaXYuZGl2QmxvY2tWaWV3IFVMLmRpdkJsb2NrTGlzdC5zaXplRm9yNENvbHVtbnNMaXN0eyB9IGRpdi5kaXZCbG9ja1ZpZXcgVUwuZGl2QmxvY2tMaXN0Om5vdCguc2l6ZUZvcjRDb2x1bW5zTGlzdCk6bnRoLWNoaWxkKDNuKzEpLCBkaXYuZGl2QmxvY2tWaWV3IFVMLmRpdkJsb2NrTGlzdC5zaXplRm9yNENvbHVtbnNMaXN0Om50aC1jaGlsZCg0bisxKXsgY2xlYXI6bGVmdDsgfSBkaXYuZGl2QmxvY2tWaWV3IFVMLmRpdkJsb2NrTGlzdCBkaXYuZGl2QmxvY2tMaXN0VGl0bGV7IGJhY2tncm91bmQ6aW5pdGlhbDsgcGFkZGluZzowIDAgMTBweCAwOyBtYXJnaW46MDsgd2lkdGg6MTAwJTsgZmxvYXQ6bGVmdDsgZm9udC13ZWlnaHQ6Ym9sZCB9IGRpdi5kaXZCbG9ja1ZpZXcgVUwuZGl2QmxvY2tMaXN0IExJLmRpdkxpc3RJdGVteyBwYWRkaW5nOjAgMzBweCAxMHB4IDEwcHg7IG1hcmdpbjowOyB0ZXh0LWluZGVudDowOyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hcnJvd19yZWQucG5nJykgbm8tcmVwZWF0IHNjcm9sbCAwIDVweCB0cmFuc3BhcmVudDsgfSBkaXYuZGl2QmxvY2tWaWV3IFVMLmRpdkJsb2NrTGlzdCBMSS5kaXZMaXN0SXRlbSA+IEF7IG1hcmdpbjowOyBwYWRkaW5nOjA7IGJhY2tncm91bmQ6bm9uZTsgZm9udC1zaXplOmluaXRpYWw7IH0gZGl2LmRpdkJsb2NrVmlldyBVTC5kaXZCbG9ja0xpc3QgTEkuZGl2TGlzdFRpdGxlMnsgZm9udC1zaXplOjEuMWVtOyBib3JkZXI6MDsgbWFyZ2luOjA7IHBhZGRpbmc6MCAwIDEwcHggMDsgZm9udC13ZWlnaHQ6Ym9sZDsgbGlzdC1zdHlsZTpub25lOyB9IGRpdi5kaXZCbG9ja1ZpZXcgVUwuZGl2QmxvY2tMaXN0IExJLmRpdkxpc3RJdGVtMnsgcGFkZGluZzowIDMwcHggMTBweCAxMHB4OyB0ZXh0LWluZGVudDowOyBsaXN0LXN0eWxlOm5vbmUgb3V0c2lkZSBub25lOyBkaXNwbGF5OmJsb2NrOyBtYXJnaW46MCAwIDAgMTJweDsgfSBkaXYuZGl2QmxvY2tWaWV3IFVMLmRpdkJsb2NrTGlzdCBMSS5kaXZMaXN0SXRlbTI6YmVmb3JleyBjb250ZW50OiJcZjEzOCI7IGZvbnQtZmFtaWx5OidGb250IEF3ZXNvbWUgNSBQcm8nOyBmb250LXdlaWdodDo5MDA7IG1hcmdpbi1yaWdodDowOyBtYXJnaW4tbGVmdDotMjFweDsgcGFkZGluZy1yaWdodDo1cHg7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IH0gZGl2LmRpdkJsb2NrVmlldyBVTC5kaXZCbG9ja0xpc3QgVUwuZGl2SW5uZXJCbG9ja0xpc3QgTEkuZGl2TGlzdEl0ZW0yOmJlZm9yZXsgZm9udC13ZWlnaHQ6bm9ybWFsOyB9IGRpdi5kaXZCbG9ja1ZpZXcgVUwuZGl2QmxvY2tMaXN0IFVMLmRpdklubmVyQmxvY2tMaXN0IExJIHsgcGFkZGluZzowIDMwcHggMTBweCAxMHB4OyB9IGRpdi5kaXZCbG9ja1ZpZXcgVUwuZGl2QmxvY2tMaXN0IExJLmRpdkxpc3RJdGVtLm5vU3R5bGVJdGVteyBwYWRkaW5nOjAgMCA1cHggMDsgbWFyZ2luOjA7IHRleHQtaW5kZW50OjA7IGJhY2tncm91bmQ6bm9uZTsgbGlzdC1zdHlsZTpub25lOyB9IGRpdi5kaXZCbG9ja1ZpZXcgVUwuZGl2QmxvY2tMaXN0IExJLmRpdkxpc3RJdGVtLm9uU2FtZUxpbmV7IHBhZGRpbmctcmlnaHQ6MTVweDsgZGlzcGxheTppbmxpbmUtdGFibGU7IH0gZGl2LmRpdkJsb2NrVmlldyBVTC5kaXZCbG9ja0xpc3QgTEkuZGl2TGlzdEl0ZW0ub25TYW1lTGluZTpsYXN0LWNoaWxkeyBwYWRkaW5nLXJpZ2h0OjA7IH0gZGl2LmRpdkJsb2NrVmlldyBkaXYuZGl2QmxvY2tUYWJsZU91dGVyeyB9IGRpdi5kaXZCbG9ja1ZpZXcgZGl2LmRpdkJsb2NrVGFibGV7IGRpc3BsYXk6dGFibGU7IHdpZHRoOjEwMCU7IHBhZGRpbmc6MDsgbWFyZ2luOjA7IH0gZGl2LmRpdkJsb2NrVmlldyBkaXYuZGl2QmxvY2tSb3d7IGRpc3BsYXk6dGFibGUtcm93OyB3aWR0aDoxMDAlOyB9IGRpdi5kaXZCbG9ja1ZpZXcgZGl2LmRpdkJsb2NrQ2VsbHsgZGlzcGxheTp0YWJsZS1jZWxsOyB9IGRpdi5kaXZEaXNjbGFpbWVyQmxvY2t7IGJhY2tncm91bmQtY29sb3I6dmFyKC0tZ2VuZXJhbC1iZy1jb2xvcik7IGJvcmRlci1yYWRpdXM6M3B4OyB9IEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDoxMzAxcHgpIHsgYm9keS5pc0Z1bGxXaWR0aFBhZ2UuaXNQYWdlRnVsbFdpZHRoRW5hYmxlZCBkaXYuZGl2QmxvY2tWaWV3IGRpdi5kaXZCbG9ja0NvbnRlbnQgZGl2LmRpdkJsb2NrQ29sdW1uIHsgd2lkdGg6MTEwMHB4ICFpbXBvcnRhbnQ7IH0gfQovKiogL2Nzcy9mb3Jtcy9mb3Jtcy5wcmVsb2FkLmNzcyAqKi8KLmQyY2Zvcm0geyAtLWxhYmVsLXJlcXVpcmVkLXN5bWJvbDoiKiI7IC0tbGFiZWwtcmVxdWlyZWQtY29sb3I6I0ZGMDAwMDsgLS1pbnB1dC1wYWRkaW5nOnZhcigtLXMtMSkgdmFyKC0tczEpOyAtLWlucHV0LWJnLWNvbG9yOnZhcigtLXdoaXRlKTsgLS1pbnB1dC1ib3JkZXItY29sb3I6dmFyKC0tbWlkLWdyYXkpOyAtLWlucHV0LXJhZGl1czp2YXIoLS1zLTYpOyAtLWlucHV0LWZvbnQtc2l6ZTp2YXIoLS1mczApOyAtLWlucHV0LWxpbmUtaGVpZ2h0OnZhcigtLWZzMik7IH0gLmQyY2Zvcm0gKiB7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgfSAuZDJjZm9ybSBib3gtbGMgeyAtLXNwYWNlOnZhcigtLXMtNCk7IHBhZGRpbmctbGVmdDowOyBwYWRkaW5nLXJpZ2h0OjA7IGRpc3BsYXk6ZmxleDsgZmxleC1kaXJlY3Rpb246Y29sdW1uOyBhbGlnbi1pdGVtczpmbGV4LXN0YXJ0OyB9IC5kMmNmb3JtLS10aGluIGJveC1sYyB7IC0tc3BhY2U6dmFyKC0tcy05KTsgfSAuZDJjZm9ybS0tcm93IHN0YWNrLWxjIHsgZmxleC1kaXJlY3Rpb246cm93OyBmbGV4LXdyYXA6d3JhcDsgfSAuZDJjZm9ybS0tcm93IGJveC1sYyB7IHBhZGRpbmctcmlnaHQ6dmFyKC0tc3BhY2UpOyBwYWRkaW5nLWxlZnQ6dmFyKC0tc3BhY2UpOyB9IC5kMmNmb3JtLS1ob3Jpem9udGFsIGJveC1sYyB7IGZsZXgtZGlyZWN0aW9uOnJvdzsgYWxpZ24taXRlbXM6ZmxleC1zdGFydDsgfSAuZDJjZm9ybS0taG9yaXpvbnRhbCBib3gtbGMgbGFiZWwgeyBtaW4td2lkdGg6MTE1cHg7IHdpZHRoOjMwJTsgcGFkZGluZy1yaWdodDp2YXIoLS1zKTsgbWFyZ2luLXRvcDp2YXIoLS1zMSk7IG1hcmdpbi1ib3R0b206MDsgfSAuZDJjZm9ybSBsYWJlbDpoYXMoW3JlcXVpcmVkXSkgc3BhbjphZnRlcnsgY29sb3IgOnZhcigtLWxhYmVsLXJlcXVpcmVkLWNvbG9yKTsgY29udGVudCA6dmFyKC0tbGFiZWwtcmVxdWlyZWQtc3ltYm9sKTsgcGFkZGluZy1sZWZ0IDp2YXIoLS1zLTYpOyB9IC5kMmNmb3JtIGxhYmVsOm5vdCguZmluYW5jZUNhbGMpLCAuZDJjZm9ybSAubGFiZWw6bm90KC5maW5hbmNlQ2FsYykgeyBtYXJnaW4tYm90dG9tOnZhcigtLXMtMyk7IGZvbnQtc2l6ZTp2YXIoLS1pbnB1dC1mb250LXNpemUpOyBsaW5lLWhlaWdodDp2YXIoLS1pbnB1dC1saW5lLWhlaWdodCk7IGZvbnQtd2VpZ2h0OjQwMDsgfSAuZDJjZm9ybSBsYWJlbC4tLXJlcXVpcmVkOm5vdCgudHh0LXJpZ2h0KTphZnRlciwgLmQyY2Zvcm0gLmxhYmVsLi0tcmVxdWlyZWQ6bm90KC50eHQtcmlnaHQpOmFmdGVyLCAuZDJjZm9ybSBsYWJlbC4tcmVxdWlyZWQ6bm90KC50eHQtcmlnaHQpOmFmdGVyLCAuZDJjZm9ybSAubGFiZWwuLXJlcXVpcmVkOm5vdCgudHh0LXJpZ2h0KTphZnRlciB7IGNvbG9yIDp2YXIoLS1sYWJlbC1yZXF1aXJlZC1jb2xvcik7IGNvbnRlbnQgOnZhcigtLWxhYmVsLXJlcXVpcmVkLXN5bWJvbCk7IHBhZGRpbmctbGVmdCA6dmFyKC0tcy02KTsgfSAuZDJjZm9ybSBsYWJlbC4tLXJlcXVpcmVkLnR4dC1yaWdodDpiZWZvcmUsIC5kMmNmb3JtIC5sYWJlbC4tLXJlcXVpcmVkLnR4dC1yaWdodDpiZWZvcmUsIC5kMmNmb3JtIGxhYmVsLi1yZXF1aXJlZC50eHQtcmlnaHQ6YmVmb3JlLCAuZDJjZm9ybSAubGFiZWwuLXJlcXVpcmVkLnR4dC1yaWdodDpiZWZvcmUgeyBjb2xvciA6dmFyKC0tbGFiZWwtcmVxdWlyZWQtY29sb3IpOyBjb250ZW50IDp2YXIoLS1sYWJlbC1yZXF1aXJlZC1zeW1ib2wpOyBwYWRkaW5nLXJpZ2h0IDp2YXIoLS1zLTYpOyB9IC5kMmNmb3JtIDp3aGVyZShpbnB1dDpub3QoW3R5cGU9c3VibWl0XSwucGF5bWVudENhbGN1bGF0b3JEb3duUGF5bWVudCk6bm90KFt0eXBlPSJyYWRpbyJdKTpub3QoW3R5cGU9ImNoZWNrYm94Il0pKSwgLmQyY2Zvcm0gc2VsZWN0Om5vdCgucGF5bWVudENhbGN1bGF0b3JJbnRlcnZhbCwucGF5bWVudENhbGN1bGF0b3JLbUFsbG93YW5jZSwuZmluYW5jZU11bHRpc3RlcFVzZWRDYWxjdWxhdG9yIC5jYWxjLWZvcm0gc2VsZWN0KSwgLmQyY2Zvcm0gdGV4dGFyZWEgeyB3aWR0aDoxMDAlOyBwYWRkaW5nOnZhcigtLWlucHV0LXBhZGRpbmcpOyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWlucHV0LWJnLWNvbG9yKTsgYm9yZGVyLXJhZGl1czp2YXIoLS1pbnB1dC1yYWRpdXMpOyBib3JkZXI6MXB4IHNvbGlkIHZhcigtLWlucHV0LWJvcmRlci1jb2xvcik7IGNvbG9yOiMyMTI1Mjk7IGZvbnQtc2l6ZTp2YXIoLS1pbnB1dC1mb250LXNpemUpOyBsaW5lLWhlaWdodDp2YXIoLS1pbnB1dC1saW5lLWhlaWdodCk7IGZvbnQtd2VpZ2h0OjQwMDsgfSAuZDJjZm9ybSBpbnB1dDpub3QoW3R5cGU9c3VibWl0XSk6bm90KFt0eXBlPSJyYWRpbyJdKTpub3QoW3R5cGU9ImNoZWNrYm94Il0pLCAuZDJjZm9ybSBzZWxlY3QgeyBoZWlnaHQ6MzVweDsgfSAuZDJjZm9ybSAuaW52YWxpZCA+IDppcyhpbnB1dCxzZWxlY3QsdGV4dGFyZWEpeyBiYWNrZ3JvdW5kLWNvbG9yOiNmYWQ2ZGM7IH0gLmQyY2Zvcm0gaW5wdXQ6ZGlzYWJsZWQsIC5kMmNmb3JtIGlucHV0LmRpc2FibGVkIHsgYmFja2dyb3VuZC1jb2xvcjpyZ2JhKDIzOSwgMjM5LCAyMzksIDAuMyk7IGNvbG9yOnJnYig4NCwgODQsIDg0KTsgYm9yZGVyLWNvbG9yOnJnYmEoMTE4LCAxMTgsIDExOCwgMC4zKTsgY3Vyc29yOm5vdC1hbGxvd2VkOyB9IC5kMmNmb3JtIGlucHV0LnR4dC11cHBlciB7IHRleHQtdHJhbnNmb3JtOm5vbmU7IH0gLmQyY2Zvcm0gaW5wdXQudHh0LXVwcGVyOjpwbGFjZWhvbGRlciB7IHRleHQtdHJhbnNmb3JtOnZhcigtLXR4dC11cHBlciwgdXBwZXJjYXNlKTsgfSAuZDJjZm9ybSAuaW5wdXQtaWNvbi1sZWZ0LCAuZDJjZm9ybSAuaW5wdXQtaWNvbi1yaWdodCB7IHBvc2l0aW9uOnJlbGF0aXZlOyB9IC5kMmNmb3JtIC5pbnB1dC1pY29uIHsgcG9zaXRpb246YWJzb2x1dGU7IHotaW5kZXg6MTsgdG9wOnZhcigtLXMxKTsgZm9udC1zaXplOnZhcigtLWlucHV0LWZvbnQtc2l6ZSk7IGxpbmUtaGVpZ2h0OnZhcigtLWlucHV0LWxpbmUtaGVpZ2h0KTsgY29sb3I6dmFyKC0tZGFyay1ncmF5KTsgfSAuZDJjZm9ybSAuaW5wdXQtaWNvbi1yaWdodCAuaW5wdXQtaWNvbiB7IHJpZ2h0OnZhcigtLXM0KTsgfSAuZDJjZm9ybSAuaW5wdXQtaWNvbi1sZWZ0IC5pbnB1dC1pY29uIHsgbGVmdDp2YXIoLS1zNCk7IH0gLmQyY2Zvcm0gLmlucHV0LWljb24tbGVmdCBpbnB1dCB7IHBhZGRpbmctbGVmdDp2YXIoLS1zOSk7IH0gLmQyY2Zvcm0gLnNlcGFyYXRvciB7IHdpZHRoOjEwMCU7IGJvcmRlci10b3A6MXB4IHNvbGlkICNkNGQ0ZDQ7IG1hcmdpbi10b3A6dmFyKC0tczcpOyBtYXJnaW4tYm90dG9tOnZhcigtLXM3KTsgfSAuZDJjZm9ybSAucmFkaW8taW5saW5lIHsgZGlzcGxheTpmbGV4OyB3aWR0aDoxMDAlOyB9IC5kMmNmb3JtIC5jaGVja2JveC1saXN0IHsgZGlzcGxheTpmbGV4OyBmbGV4LWRpcmVjdGlvbjpjb2x1bW47IG1hcmdpbi1ib3R0b206dmFyKC0tcy0zKTsgfSAuZDJjZm9ybSAuY2hlY2tib3gtbGlzdCA+ICogeyBtYXJnaW4tYm90dG9tOjA7IH0gLmQyY2Zvcm0gLm11bHRpcGxlLWlucHV0IHsgZGlzcGxheTpmbGV4OyB3aWR0aDoxMDAlOyB9IC5kMmNmb3JtIC5tdWx0aXBsZS1pbnB1dCA+ICo6bm90KDpsYXN0LW9mLXR5cGUpIHsgbWFyZ2luLXJpZ2h0OnZhcigtLXMxKTsgfSAuZDJjZm9ybSAuaW5wdXQtZ3JvdXAgeyBkaXNwbGF5OmZsZXg7IHdpZHRoIDoxMDAlOyB9IC5kMmNmb3JtIC5pbnB1dC1ncm91cCAuaW5wdXQtZ3JvdXAtdGV4dCB7IGRpc3BsYXk6ZmxleDsgYWxpZ24taXRlbXM6Y2VudGVyOyBwYWRkaW5nOnZhcigtLWlucHV0LXBhZGRpbmcpOyBiYWNrZ3JvdW5kOnZhcigtLWxpZ2h0LWdyYXkpOyBib3JkZXI6MXB4IHNvbGlkIHZhcigtLWlucHV0LWJvcmRlci1jb2xvcik7IGJvcmRlci1yYWRpdXM6dmFyKC0taW5wdXQtcmFkaXVzKTsgZm9udC1zaXplOnZhcigtLWlucHV0LWZvbnQtc2l6ZSk7IGxpbmUtaGVpZ2h0OnZhcigtLWlucHV0LWxpbmUtaGVpZ2h0KTsgd2hpdGUtc3BhY2U6bm93cmFwOyB9IC5kMmNmb3JtIC5pbnB1dC1ncm91cCA+IDpub3QoOmZpcnN0LWNoaWxkKSB7IGJvcmRlci1sZWZ0OjA7IGJvcmRlci10b3AtbGVmdC1yYWRpdXM6MCAhaW1wb3J0YW50OyBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjAgIWltcG9ydGFudDsgfSAuZDJjZm9ybSAuaW5wdXQtZ3JvdXAgPiA6bm90KDpsYXN0LWNoaWxkKSB7IGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOjAgIWltcG9ydGFudDsgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6MCAhaW1wb3J0YW50OyB9IEBtZWRpYSAobWF4LXdpZHRoOjk4MHB4KSB7IC5kMmNmb3JtLS1ob3Jpem9udGFsIGJveC1sYyBsYWJlbCB7IG1pbi13aWR0aDo4NXB4OyB9IH0KLyoqIC9jc3MvZm9ybXMvZm9ybXMuY3NzICoqLwouZDJjZm9ybSBpbnB1dDpub3QoW3R5cGU9c3VibWl0XSk6bm90KFt0eXBlPSJyYWRpbyJdKTpub3QoW3R5cGU9ImNoZWNrYm94Il0pLCAuZDJjZm9ybSBzZWxlY3QsIC5kMmNmb3JtIHRleHRhcmVhIHsgdHJhbnNpdGlvbjpib3JkZXItY29sb3IgLjE1cyBlYXNlLWluLW91dCxib3gtc2hhZG93IC4xNXMgZWFzZS1pbi1vdXQ7IH0gLmQyY2Zvcm0gaW5wdXQ6bm90KFt0eXBlPXN1Ym1pdF0pOm5vdChbdHlwZT0icmFkaW8iXSk6bm90KFt0eXBlPSJjaGVja2JveCJdKTpmb2N1cywgLmQyY2Zvcm0gc2VsZWN0OmZvY3VzLCAuZDJjZm9ybSB0ZXh0YXJlYTpmb2N1cyB7IGJvcmRlci1jb2xvcjojODZiN2ZlOyBvdXRsaW5lOjA7IGJveC1zaGFkb3c6MCAwIDAgMC4ycmVtIHJnYigxMyAxMTAgMjUzIC8gMjUlKTsgfSAuZDJjZm9ybSAuaW5wdXQtZ3JvdXAgaW5wdXQ6bm90KFt0eXBlPXN1Ym1pdF0pOm5vdChbdHlwZT0icmFkaW8iXSk6bm90KFt0eXBlPSJjaGVja2JveCJdKTpmb2N1cywgLmQyY2Zvcm0gLmlucHV0LWdyb3VwIHNlbGVjdDpmb2N1cywgLmQyY2Zvcm0gLmlucHV0LWdyb3VwIHRleHRhcmVhOmZvY3VzIHsgei1pbmRleDozOyB9IC5kMmNmb3JtIGlucHV0LnZhbGlkaXR5LWVycm9uZW91cywgLmQyY2Zvcm0gc2VsZWN0LnZhbGlkaXR5LWVycm9uZW91cywgLmQyY2Zvcm0gdGV4dGFyZWEudmFsaWRpdHktZXJyb25lb3VzLCAuZDJjZm9ybSAuaW5wdXQtZ3JvdXAgLnZhbGlkaXR5LWVycm9uZW91cyArIC5pbnB1dC1ncm91cC10ZXh0IHsgYm9yZGVyLWNvbG9yOiNkYzM1NDUgIWltcG9ydGFudDsgYmFja2dyb3VuZC1jb2xvcjojZmFkNmRjICFpbXBvcnRhbnQ7IH0gLmQyY2Zvcm0gaW5wdXQudmFsaWRpdHktZXJyb25lb3VzOjpwbGFjZWhvbGRlciwgLmQyY2Zvcm0gdGV4dGFyZWEudmFsaWRpdHktZXJyb25lb3VzOjpwbGFjZWhvbGRlciwgLmQyY2Zvcm0gc2VsZWN0LnZhbGlkaXR5LWVycm9uZW91cywgLmQyY2Zvcm0gLmlucHV0LWdyb3VwIC52YWxpZGl0eS1lcnJvbmVvdXMgKyAuaW5wdXQtZ3JvdXAtdGV4dCB7IGNvbG9yOiNkYzM1NDU7IH0KLyoqIC9jc3MvZm9ybXMvZm9ybXMucHJlbG9hZC5jc3MgKiovCi5kMmNmb3JtIHsgLS1sYWJlbC1yZXF1aXJlZC1zeW1ib2w6IioiOyAtLWxhYmVsLXJlcXVpcmVkLWNvbG9yOiNGRjAwMDA7IC0taW5wdXQtcGFkZGluZzp2YXIoLS1zLTEpIHZhcigtLXMxKTsgLS1pbnB1dC1iZy1jb2xvcjp2YXIoLS13aGl0ZSk7IC0taW5wdXQtYm9yZGVyLWNvbG9yOnZhcigtLW1pZC1ncmF5KTsgLS1pbnB1dC1yYWRpdXM6dmFyKC0tcy02KTsgLS1pbnB1dC1mb250LXNpemU6dmFyKC0tZnMwKTsgLS1pbnB1dC1saW5lLWhlaWdodDp2YXIoLS1mczIpOyB9IC5kMmNmb3JtICogeyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IH0gLmQyY2Zvcm0gYm94LWxjIHsgLS1zcGFjZTp2YXIoLS1zLTQpOyBwYWRkaW5nLWxlZnQ6MDsgcGFkZGluZy1yaWdodDowOyBkaXNwbGF5OmZsZXg7IGZsZXgtZGlyZWN0aW9uOmNvbHVtbjsgYWxpZ24taXRlbXM6ZmxleC1zdGFydDsgfSAuZDJjZm9ybS0tdGhpbiBib3gtbGMgeyAtLXNwYWNlOnZhcigtLXMtOSk7IH0gLmQyY2Zvcm0tLXJvdyBzdGFjay1sYyB7IGZsZXgtZGlyZWN0aW9uOnJvdzsgZmxleC13cmFwOndyYXA7IH0gLmQyY2Zvcm0tLXJvdyBib3gtbGMgeyBwYWRkaW5nLXJpZ2h0OnZhcigtLXNwYWNlKTsgcGFkZGluZy1sZWZ0OnZhcigtLXNwYWNlKTsgfSAuZDJjZm9ybS0taG9yaXpvbnRhbCBib3gtbGMgeyBmbGV4LWRpcmVjdGlvbjpyb3c7IGFsaWduLWl0ZW1zOmZsZXgtc3RhcnQ7IH0gLmQyY2Zvcm0tLWhvcml6b250YWwgYm94LWxjIGxhYmVsIHsgbWluLXdpZHRoOjExNXB4OyB3aWR0aDozMCU7IHBhZGRpbmctcmlnaHQ6dmFyKC0tcyk7IG1hcmdpbi10b3A6dmFyKC0tczEpOyBtYXJnaW4tYm90dG9tOjA7IH0gLmQyY2Zvcm0gbGFiZWw6aGFzKFtyZXF1aXJlZF0pIHNwYW46YWZ0ZXJ7IGNvbG9yIDp2YXIoLS1sYWJlbC1yZXF1aXJlZC1jb2xvcik7IGNvbnRlbnQgOnZhcigtLWxhYmVsLXJlcXVpcmVkLXN5bWJvbCk7IHBhZGRpbmctbGVmdCA6dmFyKC0tcy02KTsgfSAuZDJjZm9ybSBsYWJlbDpub3QoLmZpbmFuY2VDYWxjKSwgLmQyY2Zvcm0gLmxhYmVsOm5vdCguZmluYW5jZUNhbGMpIHsgbWFyZ2luLWJvdHRvbTp2YXIoLS1zLTMpOyBmb250LXNpemU6dmFyKC0taW5wdXQtZm9udC1zaXplKTsgbGluZS1oZWlnaHQ6dmFyKC0taW5wdXQtbGluZS1oZWlnaHQpOyBmb250LXdlaWdodDo0MDA7IH0gLmQyY2Zvcm0gbGFiZWwuLS1yZXF1aXJlZDpub3QoLnR4dC1yaWdodCk6YWZ0ZXIsIC5kMmNmb3JtIC5sYWJlbC4tLXJlcXVpcmVkOm5vdCgudHh0LXJpZ2h0KTphZnRlciwgLmQyY2Zvcm0gbGFiZWwuLXJlcXVpcmVkOm5vdCgudHh0LXJpZ2h0KTphZnRlciwgLmQyY2Zvcm0gLmxhYmVsLi1yZXF1aXJlZDpub3QoLnR4dC1yaWdodCk6YWZ0ZXIgeyBjb2xvciA6dmFyKC0tbGFiZWwtcmVxdWlyZWQtY29sb3IpOyBjb250ZW50IDp2YXIoLS1sYWJlbC1yZXF1aXJlZC1zeW1ib2wpOyBwYWRkaW5nLWxlZnQgOnZhcigtLXMtNik7IH0gLmQyY2Zvcm0gbGFiZWwuLS1yZXF1aXJlZC50eHQtcmlnaHQ6YmVmb3JlLCAuZDJjZm9ybSAubGFiZWwuLS1yZXF1aXJlZC50eHQtcmlnaHQ6YmVmb3JlLCAuZDJjZm9ybSBsYWJlbC4tcmVxdWlyZWQudHh0LXJpZ2h0OmJlZm9yZSwgLmQyY2Zvcm0gLmxhYmVsLi1yZXF1aXJlZC50eHQtcmlnaHQ6YmVmb3JlIHsgY29sb3IgOnZhcigtLWxhYmVsLXJlcXVpcmVkLWNvbG9yKTsgY29udGVudCA6dmFyKC0tbGFiZWwtcmVxdWlyZWQtc3ltYm9sKTsgcGFkZGluZy1yaWdodCA6dmFyKC0tcy02KTsgfSAuZDJjZm9ybSA6d2hlcmUoaW5wdXQ6bm90KFt0eXBlPXN1Ym1pdF0sLnBheW1lbnRDYWxjdWxhdG9yRG93blBheW1lbnQpOm5vdChbdHlwZT0icmFkaW8iXSk6bm90KFt0eXBlPSJjaGVja2JveCJdKSksIC5kMmNmb3JtIHNlbGVjdDpub3QoLnBheW1lbnRDYWxjdWxhdG9ySW50ZXJ2YWwsLnBheW1lbnRDYWxjdWxhdG9yS21BbGxvd2FuY2UsLmZpbmFuY2VNdWx0aXN0ZXBVc2VkQ2FsY3VsYXRvciAuY2FsYy1mb3JtIHNlbGVjdCksIC5kMmNmb3JtIHRleHRhcmVhIHsgd2lkdGg6MTAwJTsgcGFkZGluZzp2YXIoLS1pbnB1dC1wYWRkaW5nKTsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1pbnB1dC1iZy1jb2xvcik7IGJvcmRlci1yYWRpdXM6dmFyKC0taW5wdXQtcmFkaXVzKTsgYm9yZGVyOjFweCBzb2xpZCB2YXIoLS1pbnB1dC1ib3JkZXItY29sb3IpOyBjb2xvcjojMjEyNTI5OyBmb250LXNpemU6dmFyKC0taW5wdXQtZm9udC1zaXplKTsgbGluZS1oZWlnaHQ6dmFyKC0taW5wdXQtbGluZS1oZWlnaHQpOyBmb250LXdlaWdodDo0MDA7IH0gLmQyY2Zvcm0gaW5wdXQ6bm90KFt0eXBlPXN1Ym1pdF0pOm5vdChbdHlwZT0icmFkaW8iXSk6bm90KFt0eXBlPSJjaGVja2JveCJdKSwgLmQyY2Zvcm0gc2VsZWN0IHsgaGVpZ2h0OjM1cHg7IH0gLmQyY2Zvcm0gLmludmFsaWQgPiA6aXMoaW5wdXQsc2VsZWN0LHRleHRhcmVhKXsgYmFja2dyb3VuZC1jb2xvcjojZmFkNmRjOyB9IC5kMmNmb3JtIGlucHV0OmRpc2FibGVkLCAuZDJjZm9ybSBpbnB1dC5kaXNhYmxlZCB7IGJhY2tncm91bmQtY29sb3I6cmdiYSgyMzksIDIzOSwgMjM5LCAwLjMpOyBjb2xvcjpyZ2IoODQsIDg0LCA4NCk7IGJvcmRlci1jb2xvcjpyZ2JhKDExOCwgMTE4LCAxMTgsIDAuMyk7IGN1cnNvcjpub3QtYWxsb3dlZDsgfSAuZDJjZm9ybSBpbnB1dC50eHQtdXBwZXIgeyB0ZXh0LXRyYW5zZm9ybTpub25lOyB9IC5kMmNmb3JtIGlucHV0LnR4dC11cHBlcjo6cGxhY2Vob2xkZXIgeyB0ZXh0LXRyYW5zZm9ybTp2YXIoLS10eHQtdXBwZXIsIHVwcGVyY2FzZSk7IH0gLmQyY2Zvcm0gLmlucHV0LWljb24tbGVmdCwgLmQyY2Zvcm0gLmlucHV0LWljb24tcmlnaHQgeyBwb3NpdGlvbjpyZWxhdGl2ZTsgfSAuZDJjZm9ybSAuaW5wdXQtaWNvbiB7IHBvc2l0aW9uOmFic29sdXRlOyB6LWluZGV4OjE7IHRvcDp2YXIoLS1zMSk7IGZvbnQtc2l6ZTp2YXIoLS1pbnB1dC1mb250LXNpemUpOyBsaW5lLWhlaWdodDp2YXIoLS1pbnB1dC1saW5lLWhlaWdodCk7IGNvbG9yOnZhcigtLWRhcmstZ3JheSk7IH0gLmQyY2Zvcm0gLmlucHV0LWljb24tcmlnaHQgLmlucHV0LWljb24geyByaWdodDp2YXIoLS1zNCk7IH0gLmQyY2Zvcm0gLmlucHV0LWljb24tbGVmdCAuaW5wdXQtaWNvbiB7IGxlZnQ6dmFyKC0tczQpOyB9IC5kMmNmb3JtIC5pbnB1dC1pY29uLWxlZnQgaW5wdXQgeyBwYWRkaW5nLWxlZnQ6dmFyKC0tczkpOyB9IC5kMmNmb3JtIC5zZXBhcmF0b3IgeyB3aWR0aDoxMDAlOyBib3JkZXItdG9wOjFweCBzb2xpZCAjZDRkNGQ0OyBtYXJnaW4tdG9wOnZhcigtLXM3KTsgbWFyZ2luLWJvdHRvbTp2YXIoLS1zNyk7IH0gLmQyY2Zvcm0gLnJhZGlvLWlubGluZSB7IGRpc3BsYXk6ZmxleDsgd2lkdGg6MTAwJTsgfSAuZDJjZm9ybSAuY2hlY2tib3gtbGlzdCB7IGRpc3BsYXk6ZmxleDsgZmxleC1kaXJlY3Rpb246Y29sdW1uOyBtYXJnaW4tYm90dG9tOnZhcigtLXMtMyk7IH0gLmQyY2Zvcm0gLmNoZWNrYm94LWxpc3QgPiAqIHsgbWFyZ2luLWJvdHRvbTowOyB9IC5kMmNmb3JtIC5tdWx0aXBsZS1pbnB1dCB7IGRpc3BsYXk6ZmxleDsgd2lkdGg6MTAwJTsgfSAuZDJjZm9ybSAubXVsdGlwbGUtaW5wdXQgPiAqOm5vdCg6bGFzdC1vZi10eXBlKSB7IG1hcmdpbi1yaWdodDp2YXIoLS1zMSk7IH0gLmQyY2Zvcm0gLmlucHV0LWdyb3VwIHsgZGlzcGxheTpmbGV4OyB3aWR0aCA6MTAwJTsgfSAuZDJjZm9ybSAuaW5wdXQtZ3JvdXAgLmlucHV0LWdyb3VwLXRleHQgeyBkaXNwbGF5OmZsZXg7IGFsaWduLWl0ZW1zOmNlbnRlcjsgcGFkZGluZzp2YXIoLS1pbnB1dC1wYWRkaW5nKTsgYmFja2dyb3VuZDp2YXIoLS1saWdodC1ncmF5KTsgYm9yZGVyOjFweCBzb2xpZCB2YXIoLS1pbnB1dC1ib3JkZXItY29sb3IpOyBib3JkZXItcmFkaXVzOnZhcigtLWlucHV0LXJhZGl1cyk7IGZvbnQtc2l6ZTp2YXIoLS1pbnB1dC1mb250LXNpemUpOyBsaW5lLWhlaWdodDp2YXIoLS1pbnB1dC1saW5lLWhlaWdodCk7IHdoaXRlLXNwYWNlOm5vd3JhcDsgfSAuZDJjZm9ybSAuaW5wdXQtZ3JvdXAgPiA6bm90KDpmaXJzdC1jaGlsZCkgeyBib3JkZXItbGVmdDowOyBib3JkZXItdG9wLWxlZnQtcmFkaXVzOjAgIWltcG9ydGFudDsgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czowICFpbXBvcnRhbnQ7IH0gLmQyY2Zvcm0gLmlucHV0LWdyb3VwID4gOm5vdCg6bGFzdC1jaGlsZCkgeyBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czowICFpbXBvcnRhbnQ7IGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjAgIWltcG9ydGFudDsgfSBAbWVkaWEgKG1heC13aWR0aDo5ODBweCkgeyAuZDJjZm9ybS0taG9yaXpvbnRhbCBib3gtbGMgbGFiZWwgeyBtaW4td2lkdGg6ODVweDsgfSB9Ci8qKiAvY3NzL2Zvcm1zL2Zvcm1zLmNzcyAqKi8KLmQyY2Zvcm0gaW5wdXQ6bm90KFt0eXBlPXN1Ym1pdF0pOm5vdChbdHlwZT0icmFkaW8iXSk6bm90KFt0eXBlPSJjaGVja2JveCJdKSwgLmQyY2Zvcm0gc2VsZWN0LCAuZDJjZm9ybSB0ZXh0YXJlYSB7IHRyYW5zaXRpb246Ym9yZGVyLWNvbG9yIC4xNXMgZWFzZS1pbi1vdXQsYm94LXNoYWRvdyAuMTVzIGVhc2UtaW4tb3V0OyB9IC5kMmNmb3JtIGlucHV0Om5vdChbdHlwZT1zdWJtaXRdKTpub3QoW3R5cGU9InJhZGlvIl0pOm5vdChbdHlwZT0iY2hlY2tib3giXSk6Zm9jdXMsIC5kMmNmb3JtIHNlbGVjdDpmb2N1cywgLmQyY2Zvcm0gdGV4dGFyZWE6Zm9jdXMgeyBib3JkZXItY29sb3I6Izg2YjdmZTsgb3V0bGluZTowOyBib3gtc2hhZG93OjAgMCAwIDAuMnJlbSByZ2IoMTMgMTEwIDI1MyAvIDI1JSk7IH0gLmQyY2Zvcm0gLmlucHV0LWdyb3VwIGlucHV0Om5vdChbdHlwZT1zdWJtaXRdKTpub3QoW3R5cGU9InJhZGlvIl0pOm5vdChbdHlwZT0iY2hlY2tib3giXSk6Zm9jdXMsIC5kMmNmb3JtIC5pbnB1dC1ncm91cCBzZWxlY3Q6Zm9jdXMsIC5kMmNmb3JtIC5pbnB1dC1ncm91cCB0ZXh0YXJlYTpmb2N1cyB7IHotaW5kZXg6MzsgfSAuZDJjZm9ybSBpbnB1dC52YWxpZGl0eS1lcnJvbmVvdXMsIC5kMmNmb3JtIHNlbGVjdC52YWxpZGl0eS1lcnJvbmVvdXMsIC5kMmNmb3JtIHRleHRhcmVhLnZhbGlkaXR5LWVycm9uZW91cywgLmQyY2Zvcm0gLmlucHV0LWdyb3VwIC52YWxpZGl0eS1lcnJvbmVvdXMgKyAuaW5wdXQtZ3JvdXAtdGV4dCB7IGJvcmRlci1jb2xvcjojZGMzNTQ1ICFpbXBvcnRhbnQ7IGJhY2tncm91bmQtY29sb3I6I2ZhZDZkYyAhaW1wb3J0YW50OyB9IC5kMmNmb3JtIGlucHV0LnZhbGlkaXR5LWVycm9uZW91czo6cGxhY2Vob2xkZXIsIC5kMmNmb3JtIHRleHRhcmVhLnZhbGlkaXR5LWVycm9uZW91czo6cGxhY2Vob2xkZXIsIC5kMmNmb3JtIHNlbGVjdC52YWxpZGl0eS1lcnJvbmVvdXMsIC5kMmNmb3JtIC5pbnB1dC1ncm91cCAudmFsaWRpdHktZXJyb25lb3VzICsgLmlucHV0LWdyb3VwLXRleHQgeyBjb2xvcjojZGMzNTQ1OyB9Ci8qKiAvY3NzL3YyL21vZGFsLmNzcyAqKi8KLm1vZGFsLXdyYXBwZXIgeyBwb3NpdGlvbjpmaXhlZDsgdG9wOjE1MCU7IGxlZnQ6NTAlOyB0cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUsIC01MCUpOyB6LWluZGV4OjE2MDAxOyB0cmFuc2l0aW9uOnRvcCAxNTBtcyBlYXNlLWluOyB9IC5tb2RhbC13cmFwcGVyLmlzLWFjdGl2ZXsgdG9wOjUwJTsgfSAubW9kYWwtd3JhcHBlciAubW9kYWwtYm9keXsgbWluLXdpZHRoOjIwcmVtOyBtYXgtd2lkdGg6MTAwJTsgbWF4LWhlaWdodDo4NXZoOyBvdmVyZmxvdy15OmF1dG87IH0gLm1vZGFsLW92ZXJsYXl7IHBvc2l0aW9uOmZpeGVkOyB0b3A6MDsgbGVmdDowOyB3aWR0aDoxMDB2dzsgaGVpZ2h0OjEwMHZoOyBiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsMC41KTsgei1pbmRleDoxMDAwMDsgfSAubG9hZGluZy1vdmVybGF5eyBwb3NpdGlvbjphYnNvbHV0ZTsgd2lkdGg6MTAwJTsgaGVpZ2h0OjEwMCU7IHRvcDowOyBsZWZ0OjA7IGJhY2tncm91bmQtaW1hZ2U6dXJsKC9pbWFnZXMvYWpheC1sb2FkZXIuZ2lmKTsgYmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0OyBiYWNrZ3JvdW5kLXBvc2l0aW9uOmNlbnRlcjsgfSAubW9kYWwtd3JhcHBlciA6aXMoaW5wdXRbdHlwZT0idGV4dCJdLGlucHV0W3R5cGU9ImVtYWlsIl0saW5wdXRbdHlwZT0idGVsIl0peyBwYWRkaW5nOjAuNHJlbTsgYm9yZGVyOjFweCBzb2xpZCB2YXIoLS1taWQtZ3JheSk7IGJvcmRlci1yYWRpdXM6MC4zcmVtOyB9IC5tb2RhbC1ib2R5IC5pZnJhbWUtd3JhcHBlcnsgd2lkdGg6bWF4KDkwdncsIDIwLjVyZW0pOyBoZWlnaHQ6bWF4KDg0dmgsIDMwcmVtKTsgd2lkdGg6Y2xhbXAoMjAuNXJlbSwgbWF4KDkwdncsIDIwLjVyZW0pLCA2MHJlbSk7IGhlaWdodDpjbGFtcCgzMHJlbSwgbWF4KDg0dmgsIDMwcmVtKSwgNjByZW0pOyB9IC5tb2RhbC1ib2R5IC5pZnJhbWUtd3JhcHBlciBpZnJhbWV7IHdpZHRoOjEwMCU7IGhlaWdodDoxMDAlOyB9Ci8qKiAvY3NzL3YyL2ZsYXRwaWNrci5taW4uY3NzICoqLwouZmxhdHBpY2tyLWNhbGVuZGFye2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7b3BhY2l0eTowO2Rpc3BsYXk6bm9uZTt0ZXh0LWFsaWduOmNlbnRlcjt2aXNpYmlsaXR5OmhpZGRlbjtwYWRkaW5nOjA7LXdlYmtpdC1hbmltYXRpb246bm9uZTthbmltYXRpb246bm9uZTtkaXJlY3Rpb246bHRyO2JvcmRlcjowO2ZvbnQtc2l6ZTowLjg3NXJlbSA7bGluZS1oZWlnaHQ6MjRweDtib3JkZXItcmFkaXVzOjVweDtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDozMDcuODc1cHg7LXdlYmtpdC1ib3gtc2l6aW5nOmJvcmRlci1ib3g7Ym94LXNpemluZzpib3JkZXItYm94Oy1tcy10b3VjaC1hY3Rpb246bWFuaXB1bGF0aW9uO3RvdWNoLWFjdGlvbjptYW5pcHVsYXRpb247YmFja2dyb3VuZDojZmZmOy13ZWJraXQtYm94LXNoYWRvdzoxcHggMCAwICNlNmU2ZTYsLTFweCAwIDAgI2U2ZTZlNiwwIDFweCAwICNlNmU2ZTYsMCAtMXB4IDAgI2U2ZTZlNiwwIDNweCAxM3B4IHJnYmEoMCwwLDAsMC4wOCk7Ym94LXNoYWRvdzoxcHggMCAwICNlNmU2ZTYsLTFweCAwIDAgI2U2ZTZlNiwwIDFweCAwICNlNmU2ZTYsMCAtMXB4IDAgI2U2ZTZlNiwwIDNweCAxM3B4IHJnYmEoMCwwLDAsMC4wOCl9LmZsYXRwaWNrci1jYWxlbmRhci5vcGVuLC5mbGF0cGlja3ItY2FsZW5kYXIuaW5saW5le29wYWNpdHk6MTttYXgtaGVpZ2h0OjY0MHB4O3Zpc2liaWxpdHk6dmlzaWJsZX0uZmxhdHBpY2tyLWNhbGVuZGFyLm9wZW57ZGlzcGxheTppbmxpbmUtYmxvY2s7ei1pbmRleDo5OTk5OX0uZmxhdHBpY2tyLWNhbGVuZGFyLmFuaW1hdGUub3Blbnstd2Via2l0LWFuaW1hdGlvbjpmcEZhZGVJbkRvd24gMzAwbXMgY3ViaWMtYmV6aWVyKC4yMywxLC4zMiwxKTthbmltYXRpb246ZnBGYWRlSW5Eb3duIDMwMG1zIGN1YmljLWJlemllciguMjMsMSwuMzIsMSl9LmZsYXRwaWNrci1jYWxlbmRhci5pbmxpbmV7ZGlzcGxheTpibG9jaztwb3NpdGlvbjpyZWxhdGl2ZTt0b3A6MnB4fS5mbGF0cGlja3ItY2FsZW5kYXIuc3RhdGlje3Bvc2l0aW9uOmFic29sdXRlO3RvcDpjYWxjKDEwMCUgKyAycHgpfS5mbGF0cGlja3ItY2FsZW5kYXIuc3RhdGljLm9wZW57ei1pbmRleDo5OTk7ZGlzcGxheTpibG9ja30uZmxhdHBpY2tyLWNhbGVuZGFyLm11bHRpTW9udGggLmZsYXRwaWNrci1kYXlzIC5kYXlDb250YWluZXI6bnRoLWNoaWxkKG4rMSkgLmZsYXRwaWNrci1kYXkuaW5SYW5nZTpudGgtY2hpbGQoN24rNyl7LXdlYmtpdC1ib3gtc2hhZG93Om5vbmUgIWltcG9ydGFudDtib3gtc2hhZG93Om5vbmUgIWltcG9ydGFudH0uZmxhdHBpY2tyLWNhbGVuZGFyLm11bHRpTW9udGggLmZsYXRwaWNrci1kYXlzIC5kYXlDb250YWluZXI6bnRoLWNoaWxkKG4rMikgLmZsYXRwaWNrci1kYXkuaW5SYW5nZTpudGgtY2hpbGQoN24rMSl7LXdlYmtpdC1ib3gtc2hhZG93Oi0ycHggMCAwICNlNmU2ZTYsNXB4IDAgMCAjZTZlNmU2O2JveC1zaGFkb3c6LTJweCAwIDAgI2U2ZTZlNiw1cHggMCAwICNlNmU2ZTZ9LmZsYXRwaWNrci1jYWxlbmRhciAuaGFzV2Vla3MgLmRheUNvbnRhaW5lciwuZmxhdHBpY2tyLWNhbGVuZGFyIC5oYXNUaW1lIC5kYXlDb250YWluZXJ7Ym9yZGVyLWJvdHRvbTowO2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjA7Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czowfS5mbGF0cGlja3ItY2FsZW5kYXIgLmhhc1dlZWtzIC5kYXlDb250YWluZXJ7Ym9yZGVyLWxlZnQ6MH0uZmxhdHBpY2tyLWNhbGVuZGFyLmhhc1RpbWUgLmZsYXRwaWNrci10aW1le2hlaWdodDo0MHB4O2JvcmRlci10b3A6MXB4IHNvbGlkICNlNmU2ZTZ9LmZsYXRwaWNrci1jYWxlbmRhci5ub0NhbGVuZGFyLmhhc1RpbWUgLmZsYXRwaWNrci10aW1le2hlaWdodDphdXRvfS5mbGF0cGlja3ItY2FsZW5kYXI6YmVmb3JlLC5mbGF0cGlja3ItY2FsZW5kYXI6YWZ0ZXJ7cG9zaXRpb246YWJzb2x1dGU7ZGlzcGxheTpibG9jaztwb2ludGVyLWV2ZW50czpub25lO2JvcmRlcjpzb2xpZCB0cmFuc3BhcmVudDtjb250ZW50OicnO2hlaWdodDowO3dpZHRoOjA7bGVmdDoyMnB4fS5mbGF0cGlja3ItY2FsZW5kYXIucmlnaHRNb3N0OmJlZm9yZSwuZmxhdHBpY2tyLWNhbGVuZGFyLmFycm93UmlnaHQ6YmVmb3JlLC5mbGF0cGlja3ItY2FsZW5kYXIucmlnaHRNb3N0OmFmdGVyLC5mbGF0cGlja3ItY2FsZW5kYXIuYXJyb3dSaWdodDphZnRlcntsZWZ0OmF1dG87cmlnaHQ6MjJweH0uZmxhdHBpY2tyLWNhbGVuZGFyLmFycm93Q2VudGVyOmJlZm9yZSwuZmxhdHBpY2tyLWNhbGVuZGFyLmFycm93Q2VudGVyOmFmdGVye2xlZnQ6NTAlO3JpZ2h0OjUwJX0uZmxhdHBpY2tyLWNhbGVuZGFyOmJlZm9yZXtib3JkZXItd2lkdGg6NXB4O21hcmdpbjowIC01cHh9LmZsYXRwaWNrci1jYWxlbmRhcjphZnRlcntib3JkZXItd2lkdGg6NHB4O21hcmdpbjowIC00cHh9LmZsYXRwaWNrci1jYWxlbmRhci5hcnJvd1RvcDpiZWZvcmUsLmZsYXRwaWNrci1jYWxlbmRhci5hcnJvd1RvcDphZnRlcntib3R0b206MTAwJX0uZmxhdHBpY2tyLWNhbGVuZGFyLmFycm93VG9wOmJlZm9yZXtib3JkZXItYm90dG9tLWNvbG9yOiNlNmU2ZTZ9LmZsYXRwaWNrci1jYWxlbmRhci5hcnJvd1RvcDphZnRlcntib3JkZXItYm90dG9tLWNvbG9yOiNmZmZ9LmZsYXRwaWNrci1jYWxlbmRhci5hcnJvd0JvdHRvbTpiZWZvcmUsLmZsYXRwaWNrci1jYWxlbmRhci5hcnJvd0JvdHRvbTphZnRlcnt0b3A6MTAwJX0uZmxhdHBpY2tyLWNhbGVuZGFyLmFycm93Qm90dG9tOmJlZm9yZXtib3JkZXItdG9wLWNvbG9yOiNlNmU2ZTZ9LmZsYXRwaWNrci1jYWxlbmRhci5hcnJvd0JvdHRvbTphZnRlcntib3JkZXItdG9wLWNvbG9yOiNmZmZ9LmZsYXRwaWNrci1jYWxlbmRhcjpmb2N1c3tvdXRsaW5lOjB9LmZsYXRwaWNrci13cmFwcGVye3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6aW5saW5lLWJsb2NrfS5mbGF0cGlja3ItbW9udGhze2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXh9LmZsYXRwaWNrci1tb250aHMgLmZsYXRwaWNrci1tb250aHtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O2NvbG9yOnJnYmEoMCwwLDAsMC45KTtmaWxsOnJnYmEoMCwwLDAsMC45KTtoZWlnaHQ6MzRweDtsaW5lLWhlaWdodDoxO3RleHQtYWxpZ246Y2VudGVyO3Bvc2l0aW9uOnJlbGF0aXZlOy13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTstbW96LXVzZXItc2VsZWN0Om5vbmU7LW1zLXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZTtvdmVyZmxvdzpoaWRkZW47LXdlYmtpdC1ib3gtZmxleDoxOy13ZWJraXQtZmxleDoxOy1tcy1mbGV4OjE7ZmxleDoxfS5mbGF0cGlja3ItbW9udGhzIC5mbGF0cGlja3ItcHJldi1tb250aCwuZmxhdHBpY2tyLW1vbnRocyAuZmxhdHBpY2tyLW5leHQtbW9udGh7dGV4dC1kZWNvcmF0aW9uOm5vbmU7Y3Vyc29yOnBvaW50ZXI7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7aGVpZ2h0OjM0cHg7cGFkZGluZzoxMHB4O3otaW5kZXg6Mztjb2xvcjpyZ2JhKDAsMCwwLDAuOSk7ZmlsbDpyZ2JhKDAsMCwwLDAuOSl9LmZsYXRwaWNrci1tb250aHMgLmZsYXRwaWNrci1wcmV2LW1vbnRoLmZsYXRwaWNrci1kaXNhYmxlZCwuZmxhdHBpY2tyLW1vbnRocyAuZmxhdHBpY2tyLW5leHQtbW9udGguZmxhdHBpY2tyLWRpc2FibGVke2Rpc3BsYXk6bm9uZX0uZmxhdHBpY2tyLW1vbnRocyAuZmxhdHBpY2tyLXByZXYtbW9udGggaSwuZmxhdHBpY2tyLW1vbnRocyAuZmxhdHBpY2tyLW5leHQtbW9udGggaXtwb3NpdGlvbjpyZWxhdGl2ZX0uZmxhdHBpY2tyLW1vbnRocyAuZmxhdHBpY2tyLXByZXYtbW9udGguZmxhdHBpY2tyLXByZXYtbW9udGgsLmZsYXRwaWNrci1tb250aHMgLmZsYXRwaWNrci1uZXh0LW1vbnRoLmZsYXRwaWNrci1wcmV2LW1vbnRoe2xlZnQ6MH0gLmZsYXRwaWNrci1tb250aHMgLmZsYXRwaWNrci1wcmV2LW1vbnRoLmZsYXRwaWNrci1uZXh0LW1vbnRoLC5mbGF0cGlja3ItbW9udGhzIC5mbGF0cGlja3ItbmV4dC1tb250aC5mbGF0cGlja3ItbmV4dC1tb250aHtyaWdodDowfSAuZmxhdHBpY2tyLW1vbnRocyAuZmxhdHBpY2tyLXByZXYtbW9udGg6aG92ZXIsLmZsYXRwaWNrci1tb250aHMgLmZsYXRwaWNrci1uZXh0LW1vbnRoOmhvdmVye2NvbG9yOiM5NTllYTl9LmZsYXRwaWNrci1tb250aHMgLmZsYXRwaWNrci1wcmV2LW1vbnRoOmhvdmVyIHN2ZywuZmxhdHBpY2tyLW1vbnRocyAuZmxhdHBpY2tyLW5leHQtbW9udGg6aG92ZXIgc3Zne2ZpbGw6I2Y2NDc0N30uZmxhdHBpY2tyLW1vbnRocyAuZmxhdHBpY2tyLXByZXYtbW9udGggc3ZnLC5mbGF0cGlja3ItbW9udGhzIC5mbGF0cGlja3ItbmV4dC1tb250aCBzdmd7d2lkdGg6MTRweDtoZWlnaHQ6MTRweH0uZmxhdHBpY2tyLW1vbnRocyAuZmxhdHBpY2tyLXByZXYtbW9udGggc3ZnIHBhdGgsLmZsYXRwaWNrci1tb250aHMgLmZsYXRwaWNrci1uZXh0LW1vbnRoIHN2ZyBwYXRoey13ZWJraXQtdHJhbnNpdGlvbjpmaWxsIC4xczt0cmFuc2l0aW9uOmZpbGwgLjFzO2ZpbGw6aW5oZXJpdH0ubnVtSW5wdXRXcmFwcGVye3Bvc2l0aW9uOnJlbGF0aXZlO2hlaWdodDphdXRvfS5udW1JbnB1dFdyYXBwZXIgaW5wdXQsLm51bUlucHV0V3JhcHBlciBzcGFue2Rpc3BsYXk6aW5saW5lLWJsb2NrfS5udW1JbnB1dFdyYXBwZXIgaW5wdXR7d2lkdGg6MTAwJX0ubnVtSW5wdXRXcmFwcGVyIGlucHV0OjotbXMtY2xlYXJ7ZGlzcGxheTpub25lfS5udW1JbnB1dFdyYXBwZXIgaW5wdXQ6Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24sLm51bUlucHV0V3JhcHBlciBpbnB1dDo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbnttYXJnaW46MDstd2Via2l0LWFwcGVhcmFuY2U6bm9uZX0ubnVtSW5wdXRXcmFwcGVyIHNwYW57cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6MDt3aWR0aDoxNHB4O3BhZGRpbmc6MCA0cHggMCAycHg7aGVpZ2h0OjUwJTtsaW5lLWhlaWdodDo1MCU7b3BhY2l0eTowO2N1cnNvcjpwb2ludGVyO2JvcmRlcjoxcHggc29saWQgcmdiYSg1Nyw1Nyw1NywwLjE1KTstd2Via2l0LWJveC1zaXppbmc6Ym9yZGVyLWJveDtib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm51bUlucHV0V3JhcHBlciBzcGFuOmhvdmVye2JhY2tncm91bmQ6cmdiYSgwLDAsMCwwLjEpfS5udW1JbnB1dFdyYXBwZXIgc3BhbjphY3RpdmV7YmFja2dyb3VuZDpyZ2JhKDAsMCwwLDAuMil9Lm51bUlucHV0V3JhcHBlciBzcGFuOmFmdGVye2Rpc3BsYXk6YmxvY2s7Y29udGVudDoiIjtwb3NpdGlvbjphYnNvbHV0ZX0ubnVtSW5wdXRXcmFwcGVyIHNwYW4uYXJyb3dVcHt0b3A6MDtib3JkZXItYm90dG9tOjB9Lm51bUlucHV0V3JhcHBlciBzcGFuLmFycm93VXA6YWZ0ZXJ7Ym9yZGVyLWxlZnQ6NHB4IHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1yaWdodDo0cHggc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLWJvdHRvbTo0cHggc29saWQgcmdiYSg1Nyw1Nyw1NywwLjYpO3RvcDoyNiV9Lm51bUlucHV0V3JhcHBlciBzcGFuLmFycm93RG93bnt0b3A6NTAlfS5udW1JbnB1dFdyYXBwZXIgc3Bhbi5hcnJvd0Rvd246YWZ0ZXJ7Ym9yZGVyLWxlZnQ6NHB4IHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1yaWdodDo0cHggc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLXRvcDo0cHggc29saWQgcmdiYSg1Nyw1Nyw1NywwLjYpO3RvcDo0MCV9Lm51bUlucHV0V3JhcHBlciBzcGFuIHN2Z3t3aWR0aDppbmhlcml0O2hlaWdodDphdXRvfS5udW1JbnB1dFdyYXBwZXIgc3BhbiBzdmcgcGF0aHtmaWxsOnJnYmEoMCwwLDAsMC41KX0ubnVtSW5wdXRXcmFwcGVyOmhvdmVye2JhY2tncm91bmQ6cmdiYSgwLDAsMCwwLjA1KX0ubnVtSW5wdXRXcmFwcGVyOmhvdmVyIHNwYW57b3BhY2l0eToxfS5mbGF0cGlja3ItY3VycmVudC1tb250aHtmb250LXNpemU6MTM1JTtsaW5lLWhlaWdodDppbmhlcml0O2ZvbnQtd2VpZ2h0OjMwMDtjb2xvcjppbmhlcml0O3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjc1JTtsZWZ0OjEyLjUlO3BhZGRpbmc6Ny40OHB4IDAgMCAwO2xpbmUtaGVpZ2h0OjE7aGVpZ2h0OjM0cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7dGV4dC1hbGlnbjpjZW50ZXI7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwwLDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLDAsMCl9LmZsYXRwaWNrci1jdXJyZW50LW1vbnRoIHNwYW4uY3VyLW1vbnRoe2ZvbnQtZmFtaWx5OmluaGVyaXQ7Zm9udC13ZWlnaHQ6NzAwO2NvbG9yOmluaGVyaXQ7ZGlzcGxheTppbmxpbmUtYmxvY2s7bWFyZ2luLWxlZnQ6LjVjaDtwYWRkaW5nOjB9LmZsYXRwaWNrci1jdXJyZW50LW1vbnRoIHNwYW4uY3VyLW1vbnRoOmhvdmVye2JhY2tncm91bmQ6cmdiYSgwLDAsMCwwLjA1KX0uZmxhdHBpY2tyLWN1cnJlbnQtbW9udGggLm51bUlucHV0V3JhcHBlcnt3aWR0aDo2Y2g7d2lkdGg6N2NoXDA7ZGlzcGxheTppbmxpbmUtYmxvY2t9LmZsYXRwaWNrci1jdXJyZW50LW1vbnRoIC5udW1JbnB1dFdyYXBwZXIgc3Bhbi5hcnJvd1VwOmFmdGVye2JvcmRlci1ib3R0b20tY29sb3I6cmdiYSgwLDAsMCwwLjkpfS5mbGF0cGlja3ItY3VycmVudC1tb250aCAubnVtSW5wdXRXcmFwcGVyIHNwYW4uYXJyb3dEb3duOmFmdGVye2JvcmRlci10b3AtY29sb3I6cmdiYSgwLDAsMCwwLjkpfS5mbGF0cGlja3ItY3VycmVudC1tb250aCBpbnB1dC5jdXIteWVhcntiYWNrZ3JvdW5kOnRyYW5zcGFyZW50Oy13ZWJraXQtYm94LXNpemluZzpib3JkZXItYm94O2JveC1zaXppbmc6Ym9yZGVyLWJveDtjb2xvcjppbmhlcml0O2N1cnNvcjp0ZXh0O3BhZGRpbmc6MCAwIDAgLjVjaDttYXJnaW46MDtkaXNwbGF5OmlubGluZS1ibG9jaztmb250LXNpemU6aW5oZXJpdDtmb250LWZhbWlseTppbmhlcml0O2ZvbnQtd2VpZ2h0OjMwMDtsaW5lLWhlaWdodDppbmhlcml0O2hlaWdodDphdXRvO2JvcmRlcjowO2JvcmRlci1yYWRpdXM6MDt2ZXJ0aWNhbC1hbGlnbjppbml0aWFsOy13ZWJraXQtYXBwZWFyYW5jZTp0ZXh0ZmllbGQ7LW1vei1hcHBlYXJhbmNlOnRleHRmaWVsZDthcHBlYXJhbmNlOnRleHRmaWVsZH0uZmxhdHBpY2tyLWN1cnJlbnQtbW9udGggaW5wdXQuY3VyLXllYXI6Zm9jdXN7b3V0bGluZTowfS5mbGF0cGlja3ItY3VycmVudC1tb250aCBpbnB1dC5jdXIteWVhcltkaXNhYmxlZF0sLmZsYXRwaWNrci1jdXJyZW50LW1vbnRoIGlucHV0LmN1ci15ZWFyW2Rpc2FibGVkXTpob3Zlcntmb250LXNpemU6MTAwJTtjb2xvcjpyZ2JhKDAsMCwwLDAuNSk7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtwb2ludGVyLWV2ZW50czpub25lfS5mbGF0cGlja3ItY3VycmVudC1tb250aCAuZmxhdHBpY2tyLW1vbnRoRHJvcGRvd24tbW9udGhze2FwcGVhcmFuY2U6bWVudWxpc3Q7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtib3JkZXI6bm9uZTtib3JkZXItcmFkaXVzOjA7Ym94LXNpemluZzpib3JkZXItYm94O2NvbG9yOmluaGVyaXQ7Y3Vyc29yOnBvaW50ZXI7Zm9udC1zaXplOmluaGVyaXQ7Zm9udC1mYW1pbHk6aW5oZXJpdDtmb250LXdlaWdodDozMDA7aGVpZ2h0OmF1dG87bGluZS1oZWlnaHQ6aW5oZXJpdDttYXJnaW46LTFweCAwIDAgMDtvdXRsaW5lOm5vbmU7cGFkZGluZzowIDAgMCAuNWNoO3Bvc2l0aW9uOnJlbGF0aXZlO3ZlcnRpY2FsLWFsaWduOmluaXRpYWw7LXdlYmtpdC1ib3gtc2l6aW5nOmJvcmRlci1ib3g7LXdlYmtpdC1hcHBlYXJhbmNlOm1lbnVsaXN0Oy1tb3otYXBwZWFyYW5jZTptZW51bGlzdDt3aWR0aDphdXRvfS5mbGF0cGlja3ItY3VycmVudC1tb250aCAuZmxhdHBpY2tyLW1vbnRoRHJvcGRvd24tbW9udGhzOmZvY3VzLC5mbGF0cGlja3ItY3VycmVudC1tb250aCAuZmxhdHBpY2tyLW1vbnRoRHJvcGRvd24tbW9udGhzOmFjdGl2ZXtvdXRsaW5lOm5vbmV9LmZsYXRwaWNrci1jdXJyZW50LW1vbnRoIC5mbGF0cGlja3ItbW9udGhEcm9wZG93bi1tb250aHM6aG92ZXJ7YmFja2dyb3VuZDpyZ2JhKDAsMCwwLDAuMDUpfS5mbGF0cGlja3ItY3VycmVudC1tb250aCAuZmxhdHBpY2tyLW1vbnRoRHJvcGRvd24tbW9udGhzIC5mbGF0cGlja3ItbW9udGhEcm9wZG93bi1tb250aHtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O291dGxpbmU6bm9uZTtwYWRkaW5nOjB9LmZsYXRwaWNrci13ZWVrZGF5c3tiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O3RleHQtYWxpZ246Y2VudGVyO292ZXJmbG93OmhpZGRlbjt3aWR0aDoxMDAlO2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1ib3gtYWxpZ246Y2VudGVyOy13ZWJraXQtYWxpZ24taXRlbXM6Y2VudGVyOy1tcy1mbGV4LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7aGVpZ2h0OjI4cHh9LmZsYXRwaWNrci13ZWVrZGF5cyAuZmxhdHBpY2tyLXdlZWtkYXljb250YWluZXJ7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleDstd2Via2l0LWJveC1mbGV4OjE7LXdlYmtpdC1mbGV4OjE7LW1zLWZsZXg6MTtmbGV4OjF9c3Bhbi5mbGF0cGlja3Itd2Vla2RheXtjdXJzb3I6ZGVmYXVsdDtmb250LXNpemU6OTAlO2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Y29sb3I6cmdiYSgwLDAsMCwwLjU0KTtsaW5lLWhlaWdodDoxO21hcmdpbjowO3RleHQtYWxpZ246Y2VudGVyO2Rpc3BsYXk6YmxvY2s7LXdlYmtpdC1ib3gtZmxleDoxOy13ZWJraXQtZmxleDoxOy1tcy1mbGV4OjE7ZmxleDoxO2ZvbnQtd2VpZ2h0OmJvbGRlcn0uZGF5Q29udGFpbmVyLC5mbGF0cGlja3Itd2Vla3N7cGFkZGluZzoxcHggMCAwIDB9LmZsYXRwaWNrci1kYXlze3Bvc2l0aW9uOnJlbGF0aXZlO292ZXJmbG93OmhpZGRlbjtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYm94LWFsaWduOnN0YXJ0Oy13ZWJraXQtYWxpZ24taXRlbXM6ZmxleC1zdGFydDstbXMtZmxleC1hbGlnbjpzdGFydDthbGlnbi1pdGVtczpmbGV4LXN0YXJ0O3dpZHRoOjMwNy44NzVweH0uZmxhdHBpY2tyLWRheXM6Zm9jdXN7b3V0bGluZTowfS5kYXlDb250YWluZXJ7cGFkZGluZzowO291dGxpbmU6MDt0ZXh0LWFsaWduOmxlZnQ7d2lkdGg6MzA3Ljg3NXB4O21pbi13aWR0aDozMDcuODc1cHg7bWF4LXdpZHRoOjMwNy44NzVweDstd2Via2l0LWJveC1zaXppbmc6Ym9yZGVyLWJveDtib3gtc2l6aW5nOmJvcmRlci1ib3g7ZGlzcGxheTppbmxpbmUtYmxvY2s7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6ZmxleDstd2Via2l0LWZsZXgtd3JhcDp3cmFwO2ZsZXgtd3JhcDp3cmFwOy1tcy1mbGV4LXdyYXA6d3JhcDstbXMtZmxleC1wYWNrOmp1c3RpZnk7LXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYXJvdW5kO2p1c3RpZnktY29udGVudDpzcGFjZS1hcm91bmQ7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwwLDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLDAsMCk7b3BhY2l0eToxfS5kYXlDb250YWluZXIgKyAuZGF5Q29udGFpbmVyey13ZWJraXQtYm94LXNoYWRvdzotMXB4IDAgMCAjZTZlNmU2O2JveC1zaGFkb3c6LTFweCAwIDAgI2U2ZTZlNn0uZmxhdHBpY2tyLWRheXtiYWNrZ3JvdW5kOm5vbmU7Ym9yZGVyOjFweCBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItcmFkaXVzOjE1MHB4Oy13ZWJraXQtYm94LXNpemluZzpib3JkZXItYm94O2JveC1zaXppbmc6Ym9yZGVyLWJveDtjb2xvcjojMzkzOTM5O2N1cnNvcjpwb2ludGVyO2ZvbnQtd2VpZ2h0OjQwMDt3aWR0aDoxNC4yODU3MTQzJTstd2Via2l0LWZsZXgtYmFzaXM6MTQuMjg1NzE0MyU7LW1zLWZsZXgtcHJlZmVycmVkLXNpemU6MTQuMjg1NzE0MyU7ZmxleC1iYXNpczoxNC4yODU3MTQzJTttYXgtd2lkdGg6MzlweDtoZWlnaHQ6MzlweDtsaW5lLWhlaWdodDozOXB4O21hcmdpbjowO2Rpc3BsYXk6aW5saW5lLWJsb2NrO3Bvc2l0aW9uOnJlbGF0aXZlOy13ZWJraXQtYm94LXBhY2s6Y2VudGVyOy13ZWJraXQtanVzdGlmeS1jb250ZW50OmNlbnRlcjstbXMtZmxleC1wYWNrOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3RleHQtYWxpZ246Y2VudGVyfS5mbGF0cGlja3ItZGF5LmluUmFuZ2UsLmZsYXRwaWNrci1kYXkucHJldk1vbnRoRGF5LmluUmFuZ2UsLmZsYXRwaWNrci1kYXkubmV4dE1vbnRoRGF5LmluUmFuZ2UsLmZsYXRwaWNrci1kYXkudG9kYXkuaW5SYW5nZSwuZmxhdHBpY2tyLWRheS5wcmV2TW9udGhEYXkudG9kYXkuaW5SYW5nZSwuZmxhdHBpY2tyLWRheS5uZXh0TW9udGhEYXkudG9kYXkuaW5SYW5nZSwuZmxhdHBpY2tyLWRheTpob3ZlciwuZmxhdHBpY2tyLWRheS5wcmV2TW9udGhEYXk6aG92ZXIsLmZsYXRwaWNrci1kYXkubmV4dE1vbnRoRGF5OmhvdmVyLC5mbGF0cGlja3ItZGF5OmZvY3VzLC5mbGF0cGlja3ItZGF5LnByZXZNb250aERheTpmb2N1cywuZmxhdHBpY2tyLWRheS5uZXh0TW9udGhEYXk6Zm9jdXN7Y3Vyc29yOnBvaW50ZXI7b3V0bGluZTowO2JhY2tncm91bmQ6I2U2ZTZlNjtib3JkZXItY29sb3I6I2U2ZTZlNn0uZmxhdHBpY2tyLWRheS50b2RheXtib3JkZXItY29sb3I6Izk1OWVhOX0uZmxhdHBpY2tyLWRheS50b2RheTpob3ZlciwuZmxhdHBpY2tyLWRheS50b2RheTpmb2N1c3tib3JkZXItY29sb3I6Izk1OWVhOTtiYWNrZ3JvdW5kOiM5NTllYTk7Y29sb3I6I2ZmZn0uZmxhdHBpY2tyLWRheS5zZWxlY3RlZCwuZmxhdHBpY2tyLWRheS5zdGFydFJhbmdlLC5mbGF0cGlja3ItZGF5LmVuZFJhbmdlLC5mbGF0cGlja3ItZGF5LnNlbGVjdGVkLmluUmFuZ2UsLmZsYXRwaWNrci1kYXkuc3RhcnRSYW5nZS5pblJhbmdlLC5mbGF0cGlja3ItZGF5LmVuZFJhbmdlLmluUmFuZ2UsLmZsYXRwaWNrci1kYXkuc2VsZWN0ZWQ6Zm9jdXMsLmZsYXRwaWNrci1kYXkuc3RhcnRSYW5nZTpmb2N1cywuZmxhdHBpY2tyLWRheS5lbmRSYW5nZTpmb2N1cywuZmxhdHBpY2tyLWRheS5zZWxlY3RlZDpob3ZlciwuZmxhdHBpY2tyLWRheS5zdGFydFJhbmdlOmhvdmVyLC5mbGF0cGlja3ItZGF5LmVuZFJhbmdlOmhvdmVyLC5mbGF0cGlja3ItZGF5LnNlbGVjdGVkLnByZXZNb250aERheSwuZmxhdHBpY2tyLWRheS5zdGFydFJhbmdlLnByZXZNb250aERheSwuZmxhdHBpY2tyLWRheS5lbmRSYW5nZS5wcmV2TW9udGhEYXksLmZsYXRwaWNrci1kYXkuc2VsZWN0ZWQubmV4dE1vbnRoRGF5LC5mbGF0cGlja3ItZGF5LnN0YXJ0UmFuZ2UubmV4dE1vbnRoRGF5LC5mbGF0cGlja3ItZGF5LmVuZFJhbmdlLm5leHRNb250aERheXtiYWNrZ3JvdW5kOiM1NjlmZjc7LXdlYmtpdC1ib3gtc2hhZG93Om5vbmU7Ym94LXNoYWRvdzpub25lO2NvbG9yOiNmZmY7Ym9yZGVyLWNvbG9yOiM1NjlmZjd9LmZsYXRwaWNrci1kYXkuc2VsZWN0ZWQuc3RhcnRSYW5nZSwuZmxhdHBpY2tyLWRheS5zdGFydFJhbmdlLnN0YXJ0UmFuZ2UsLmZsYXRwaWNrci1kYXkuZW5kUmFuZ2Uuc3RhcnRSYW5nZXtib3JkZXItcmFkaXVzOjUwcHggMCAwIDUwcHh9LmZsYXRwaWNrci1kYXkuc2VsZWN0ZWQuZW5kUmFuZ2UsLmZsYXRwaWNrci1kYXkuc3RhcnRSYW5nZS5lbmRSYW5nZSwuZmxhdHBpY2tyLWRheS5lbmRSYW5nZS5lbmRSYW5nZXtib3JkZXItcmFkaXVzOjAgNTBweCA1MHB4IDB9LmZsYXRwaWNrci1kYXkuc2VsZWN0ZWQuc3RhcnRSYW5nZSArIC5lbmRSYW5nZTpub3QoOm50aC1jaGlsZCg3bisxKSksLmZsYXRwaWNrci1kYXkuc3RhcnRSYW5nZS5zdGFydFJhbmdlICsgLmVuZFJhbmdlOm5vdCg6bnRoLWNoaWxkKDduKzEpKSwuZmxhdHBpY2tyLWRheS5lbmRSYW5nZS5zdGFydFJhbmdlICsgLmVuZFJhbmdlOm5vdCg6bnRoLWNoaWxkKDduKzEpKXstd2Via2l0LWJveC1zaGFkb3c6LTEwcHggMCAwICM1NjlmZjc7Ym94LXNoYWRvdzotMTBweCAwIDAgIzU2OWZmN30uZmxhdHBpY2tyLWRheS5zZWxlY3RlZC5zdGFydFJhbmdlLmVuZFJhbmdlLC5mbGF0cGlja3ItZGF5LnN0YXJ0UmFuZ2Uuc3RhcnRSYW5nZS5lbmRSYW5nZSwuZmxhdHBpY2tyLWRheS5lbmRSYW5nZS5zdGFydFJhbmdlLmVuZFJhbmdle2JvcmRlci1yYWRpdXM6NTBweH0uZmxhdHBpY2tyLWRheS5pblJhbmdle2JvcmRlci1yYWRpdXM6MDstd2Via2l0LWJveC1zaGFkb3c6LTVweCAwIDAgI2U2ZTZlNiw1cHggMCAwICNlNmU2ZTY7Ym94LXNoYWRvdzotNXB4IDAgMCAjZTZlNmU2LDVweCAwIDAgI2U2ZTZlNn0uZmxhdHBpY2tyLWRheS5mbGF0cGlja3ItZGlzYWJsZWQsLmZsYXRwaWNrci1kYXkuZmxhdHBpY2tyLWRpc2FibGVkOmhvdmVyLC5mbGF0cGlja3ItZGF5LnByZXZNb250aERheSwuZmxhdHBpY2tyLWRheS5uZXh0TW9udGhEYXksLmZsYXRwaWNrci1kYXkubm90QWxsb3dlZCwuZmxhdHBpY2tyLWRheS5ub3RBbGxvd2VkLnByZXZNb250aERheSwuZmxhdHBpY2tyLWRheS5ub3RBbGxvd2VkLm5leHRNb250aERheXtjb2xvcjpyZ2JhKDU3LDU3LDU3LDAuMyk7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtib3JkZXItY29sb3I6dHJhbnNwYXJlbnQ7Y3Vyc29yOmRlZmF1bHR9LmZsYXRwaWNrci1kYXkuZmxhdHBpY2tyLWRpc2FibGVkLC5mbGF0cGlja3ItZGF5LmZsYXRwaWNrci1kaXNhYmxlZDpob3ZlcntjdXJzb3I6bm90LWFsbG93ZWQ7Y29sb3I6cmdiYSg1Nyw1Nyw1NywwLjEpfS5mbGF0cGlja3ItZGF5LndlZWsuc2VsZWN0ZWR7Ym9yZGVyLXJhZGl1czowOy13ZWJraXQtYm94LXNoYWRvdzotNXB4IDAgMCAjNTY5ZmY3LDVweCAwIDAgIzU2OWZmNztib3gtc2hhZG93Oi01cHggMCAwICM1NjlmZjcsNXB4IDAgMCAjNTY5ZmY3fS5mbGF0cGlja3ItZGF5LmhpZGRlbnt2aXNpYmlsaXR5OmhpZGRlbn0ucmFuZ2VNb2RlIC5mbGF0cGlja3ItZGF5e21hcmdpbi10b3A6MXB4fS5mbGF0cGlja3Itd2Vla3dyYXBwZXJ7ZmxvYXQ6bGVmdH0uZmxhdHBpY2tyLXdlZWt3cmFwcGVyIC5mbGF0cGlja3Itd2Vla3N7cGFkZGluZzowIDEycHg7LXdlYmtpdC1ib3gtc2hhZG93OjFweCAwIDAgI2U2ZTZlNjtib3gtc2hhZG93OjFweCAwIDAgI2U2ZTZlNn0uZmxhdHBpY2tyLXdlZWt3cmFwcGVyIC5mbGF0cGlja3Itd2Vla2RheXtmbG9hdDpub25lO3dpZHRoOjEwMCU7bGluZS1oZWlnaHQ6MjhweH0uZmxhdHBpY2tyLXdlZWt3cmFwcGVyIHNwYW4uZmxhdHBpY2tyLWRheSwuZmxhdHBpY2tyLXdlZWt3cmFwcGVyIHNwYW4uZmxhdHBpY2tyLWRheTpob3ZlcntkaXNwbGF5OmJsb2NrO3dpZHRoOjEwMCU7bWF4LXdpZHRoOm5vbmU7Y29sb3I6cmdiYSg1Nyw1Nyw1NywwLjMpO2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Y3Vyc29yOmRlZmF1bHQ7Ym9yZGVyOm5vbmV9LmZsYXRwaWNrci1pbm5lckNvbnRhaW5lcntkaXNwbGF5OmJsb2NrO2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1ib3gtc2l6aW5nOmJvcmRlci1ib3g7Ym94LXNpemluZzpib3JkZXItYm94O292ZXJmbG93OmhpZGRlbn0uZmxhdHBpY2tyLXJDb250YWluZXJ7ZGlzcGxheTppbmxpbmUtYmxvY2s7cGFkZGluZzowOy13ZWJraXQtYm94LXNpemluZzpib3JkZXItYm94O2JveC1zaXppbmc6Ym9yZGVyLWJveH0uZmxhdHBpY2tyLXRpbWV7dGV4dC1hbGlnbjpjZW50ZXI7b3V0bGluZTowO2Rpc3BsYXk6YmxvY2s7aGVpZ2h0OjA7bGluZS1oZWlnaHQ6NDBweDttYXgtaGVpZ2h0OjQwcHg7LXdlYmtpdC1ib3gtc2l6aW5nOmJvcmRlci1ib3g7Ym94LXNpemluZzpib3JkZXItYm94O292ZXJmbG93OmhpZGRlbjtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4fS5mbGF0cGlja3ItdGltZTphZnRlcntjb250ZW50OiIiO2Rpc3BsYXk6dGFibGU7Y2xlYXI6Ym90aH0uZmxhdHBpY2tyLXRpbWUgLm51bUlucHV0V3JhcHBlcnstd2Via2l0LWJveC1mbGV4OjE7LXdlYmtpdC1mbGV4OjE7LW1zLWZsZXg6MTtmbGV4OjE7d2lkdGg6NDAlO2hlaWdodDo0MHB4O2Zsb2F0OmxlZnR9LmZsYXRwaWNrci10aW1lIC5udW1JbnB1dFdyYXBwZXIgc3Bhbi5hcnJvd1VwOmFmdGVye2JvcmRlci1ib3R0b20tY29sb3I6IzM5MzkzOX0uZmxhdHBpY2tyLXRpbWUgLm51bUlucHV0V3JhcHBlciBzcGFuLmFycm93RG93bjphZnRlcntib3JkZXItdG9wLWNvbG9yOiMzOTM5Mzl9LmZsYXRwaWNrci10aW1lLmhhc1NlY29uZHMgLm51bUlucHV0V3JhcHBlcnt3aWR0aDoyNiV9LmZsYXRwaWNrci10aW1lLnRpbWUyNGhyIC5udW1JbnB1dFdyYXBwZXJ7d2lkdGg6NDklfS5mbGF0cGlja3ItdGltZSBpbnB1dHtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50Oy13ZWJraXQtYm94LXNoYWRvdzpub25lO2JveC1zaGFkb3c6bm9uZTtib3JkZXI6MDtib3JkZXItcmFkaXVzOjA7dGV4dC1hbGlnbjpjZW50ZXI7bWFyZ2luOjA7cGFkZGluZzowO2hlaWdodDppbmhlcml0O2xpbmUtaGVpZ2h0OmluaGVyaXQ7Y29sb3I6IzM5MzkzOTtmb250LXNpemU6MC44NzVyZW0gO3Bvc2l0aW9uOnJlbGF0aXZlOy13ZWJraXQtYm94LXNpemluZzpib3JkZXItYm94O2JveC1zaXppbmc6Ym9yZGVyLWJveDstd2Via2l0LWFwcGVhcmFuY2U6dGV4dGZpZWxkOy1tb3otYXBwZWFyYW5jZTp0ZXh0ZmllbGQ7YXBwZWFyYW5jZTp0ZXh0ZmllbGR9LmZsYXRwaWNrci10aW1lIGlucHV0LmZsYXRwaWNrci1ob3Vye2ZvbnQtd2VpZ2h0OmJvbGR9LmZsYXRwaWNrci10aW1lIGlucHV0LmZsYXRwaWNrci1taW51dGUsLmZsYXRwaWNrci10aW1lIGlucHV0LmZsYXRwaWNrci1zZWNvbmR7Zm9udC13ZWlnaHQ6NDAwfS5mbGF0cGlja3ItdGltZSBpbnB1dDpmb2N1c3tvdXRsaW5lOjA7Ym9yZGVyOjB9LmZsYXRwaWNrci10aW1lIC5mbGF0cGlja3ItdGltZS1zZXBhcmF0b3IsLmZsYXRwaWNrci10aW1lIC5mbGF0cGlja3ItYW0tcG17aGVpZ2h0OmluaGVyaXQ7ZmxvYXQ6bGVmdDtsaW5lLWhlaWdodDppbmhlcml0O2NvbG9yOiMzOTM5Mzk7Zm9udC13ZWlnaHQ6Ym9sZDt3aWR0aDoyJTstd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7LW1vei11c2VyLXNlbGVjdDpub25lOy1tcy11c2VyLXNlbGVjdDpub25lO3VzZXItc2VsZWN0Om5vbmU7LXdlYmtpdC1hbGlnbi1zZWxmOmNlbnRlcjstbXMtZmxleC1pdGVtLWFsaWduOmNlbnRlcjthbGlnbi1zZWxmOmNlbnRlcn0uZmxhdHBpY2tyLXRpbWUgLmZsYXRwaWNrci1hbS1wbXtvdXRsaW5lOjA7d2lkdGg6MTglO2N1cnNvcjpwb2ludGVyO3RleHQtYWxpZ246Y2VudGVyO2ZvbnQtd2VpZ2h0OjQwMH0uZmxhdHBpY2tyLXRpbWUgaW5wdXQ6aG92ZXIsLmZsYXRwaWNrci10aW1lIC5mbGF0cGlja3ItYW0tcG06aG92ZXIsLmZsYXRwaWNrci10aW1lIGlucHV0OmZvY3VzLC5mbGF0cGlja3ItdGltZSAuZmxhdHBpY2tyLWFtLXBtOmZvY3Vze2JhY2tncm91bmQ6I2VlZX0uZmxhdHBpY2tyLWlucHV0W3JlYWRvbmx5XXtjdXJzb3I6cG9pbnRlcn1ALXdlYmtpdC1rZXlmcmFtZXMgZnBGYWRlSW5Eb3due2Zyb217b3BhY2l0eTowOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsLTIwcHgsMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsLTIwcHgsMCl9dG97b3BhY2l0eToxOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsMCwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwwLDApfX1Aa2V5ZnJhbWVzIGZwRmFkZUluRG93bntmcm9te29wYWNpdHk6MDstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLC0yMHB4LDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLC0yMHB4LDApfXRve29wYWNpdHk6MTstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLDAsMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsMCwwKX19Ci8qKiAvY3NzL2lubGluZS5mci5uZXdjYXJzLmNzcyAqKi8KYnV0dG9uI29uZXRydXN0LWFjY2VwdC1idG4taGFuZGxlciB7IGJhY2tncm91bmQtY29sb3I6IzAyNzZiMyAhaW1wb3J0YW50OyBjb2xvcjojZmZmZmZmICFpbXBvcnRhbnQ7IGJvcmRlci1jb2xvcjojZmZmZmZmICFpbXBvcnRhbnQ7IGJvcmRlci1yYWRpdXM6M3B4ICFpbXBvcnRhbnQ7IH0gYnV0dG9uI29uZXRydXN0LXJlamVjdC1hbGwtaGFuZGxlciB7IGJhY2tncm91bmQtY29sb3I6IzAyNzZiMyAhaW1wb3J0YW50OyBjb2xvcjojMDI3NmIzICFpbXBvcnRhbnQ7IGJvcmRlci1jb2xvcjojMDI3NmIzICFpbXBvcnRhbnQ7IGJvcmRlci1yYWRpdXM6M3B4ICFpbXBvcnRhbnQ7IH0gYnV0dG9uI29uZXRydXN0LXBjLWJ0bi1oYW5kbGVyIHsgYmFja2dyb3VuZC1jb2xvcjojZmZmZmZmICFpbXBvcnRhbnQ7IGNvbG9yOiM2OTY5NjkgIWltcG9ydGFudDsgYm9yZGVyLWNvbG9yOiM5MDkwOTAgIWltcG9ydGFudDsgYm9yZGVyLXJhZGl1czozcHggIWltcG9ydGFudDsgfSBidXR0b24uc2F2ZS1wcmVmZXJlbmNlLWJ0bi1oYW5kbGVyLm9uZXRydXN0LWNsb3NlLWJ0bi1oYW5kbGVyIHsgYmFja2dyb3VuZC1jb2xvcjojZmZmZmZmICFpbXBvcnRhbnQ7IGNvbG9yOiMwMjc2YjMgIWltcG9ydGFudDsgYm9yZGVyLWNvbG9yOiMwMjc2YjMgIWltcG9ydGFudDsgYm9yZGVyLXJhZGl1czozcHggIWltcG9ydGFudDsgfSBidXR0b24ub3QtcGMtcmVmdXNlLWFsbC1oYW5kbGVyIHsgYmFja2dyb3VuZC1jb2xvcjojMDI3NmIzICFpbXBvcnRhbnQ7IGNvbG9yOiMwMjc2YjMgIWltcG9ydGFudDsgYm9yZGVyLWNvbG9yOiMwMjc2YjMgIWltcG9ydGFudDsgYm9yZGVyLXJhZGl1czozcHggIWltcG9ydGFudDsgfSBidXR0b24jYWNjZXB0LXJlY29tbWVuZGVkLWJ0bi1oYW5kbGVyeyBiYWNrZ3JvdW5kLWNvbG9yOiMwMjc2YjMgIWltcG9ydGFudDsgY29sb3I6I2ZmZmZmZiAhaW1wb3J0YW50OyBib3JkZXItY29sb3I6I2ZmZmZmZiAhaW1wb3J0YW50OyBmb250LXNpemU6c21hbGwgIWltcG9ydGFudDsgYm9yZGVyLXJhZGl1czozcHggIWltcG9ydGFudDsgfSAub3QtcGMtbG9nbyBpbWd7IGNvbnRlbnQ6dXJsKCIvaW1hZ2VzL0xvZ29Nb2JpbGUvbWF1cmFpcy1hdXRvLWxvZ28ud2VicCIpICFpbXBvcnRhbnQ7IH0gI29uZXRydXN0LXBjLXNkayAub3QtcGMtbG9nb3sgd2lkdGg6MzAlICFpbXBvcnRhbnQ7IGp1c3RpZnktY29udGVudDpsZWZ0ICFpbXBvcnRhbnQ7IH0gLm90LWJuci1sb2dveyBjb250ZW50OnVybCgiL2ltYWdlcy9Mb2dvTW9iaWxlL21hdXJhaXMtYXV0by1sb2dvLndlYnAiKSAhaW1wb3J0YW50OyB9ICNvbmV0cnVzdC1iYW5uZXItc2RrLm90LWJuci13LWxvZ28gLm90LWJuci1sb2dveyB3aWR0aDo4NXB4ICFpbXBvcnRhbnQ7IGhlaWdodDphdXRvICFpbXBvcnRhbnQ7IG1hcmdpbi1sZWZ0OjI1cHggIWltcG9ydGFudDsgfSAjb25ldHJ1c3QtYmFubmVyLXNkay5vdC1ibnItdy1sb2dvICNvbmV0cnVzdC1wb2xpY3kgeyBtYXJnaW4tbGVmdDoxMTBweCAhaW1wb3J0YW50OyBwYWRkaW5nLWxlZnQ6MjVweDsgfSBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6NDI1cHgpeyAjb25ldHJ1c3QtYmFubmVyLXNkay5vdC1ibnItdy1sb2dvIC5vdC1ibnItbG9nb3sgcG9zaXRpb246cmVsYXRpdmU7IG1hcmdpbjoxNXB4IDAgMTBweCAwICFpbXBvcnRhbnQ7IHRyYW5zZm9ybTppbmhlcml0OyB6b29tOjQwJTsgfSAjb25ldHJ1c3QtYmFubmVyLXNkay5vdC1ibnItdy1sb2dvICNvbmV0cnVzdC1wb2xpY3kgeyBtYXJnaW4tbGVmdDowcHggIWltcG9ydGFudDsgcGFkZGluZy1sZWZ0OjBweDsgbWFyZ2luLXRvcDo1cHg7IH0gI29uZXRydXN0LWNvbnNlbnQtc2RrICNvbmV0cnVzdC1wb2xpY3ktdGl0bGV7IGZvbnQtc2l6ZToxZW0gIWltcG9ydGFudDsgfSAjb25ldHJ1c3QtYmFubmVyLXNkayAjb25ldHJ1c3QtYWNjZXB0LWJ0bi1oYW5kbGVyLCAjb25ldHJ1c3QtYmFubmVyLXNkayAjb25ldHJ1c3QtcmVqZWN0LWFsbC1oYW5kbGVyLCAjb25ldHJ1c3QtYmFubmVyLXNkayAjb25ldHJ1c3QtcGMtYnRuLWhhbmRsZXJ7IHBhZGRpbmc6MTBweCAxMHB4OyB9ICNvbmV0cnVzdC1iYW5uZXItc2RrIGJ1dHRvbiwgI29uZXRydXN0LXBjLXNkayBidXR0b24sICNvdC1zZGstY29va2llLXBvbGljeSBidXR0b257IG1hcmdpbi1ib3R0b206MC41cmVtOyB9ICNvbmV0cnVzdC1wYy1zZGsgYnV0dG9uIHsgd2lkdGg6YXV0bzsgfSAjb25ldHJ1c3QtYmFubmVyLXNkayAub3Qtc2RrLWNvbnRhaW5lciwgI29uZXRydXN0LXBjLXNkayAub3Qtc2RrLWNvbnRhaW5lciwgI290LXNkay1jb29raWUtcG9saWN5IC5vdC1zZGstY29udGFpbmVyeyBwYWRkaW5nOjVweCAyMHB4OyB9ICNvbmV0cnVzdC1iYW5uZXItc2RrICNvbmV0cnVzdC1wb2xpY3l7IG1hcmdpbjowOyB9ICNvbmV0cnVzdC1iYW5uZXItc2RrICNvbmV0cnVzdC1idXR0b24tZ3JvdXAgI29uZXRydXN0LWFjY2VwdC1idG4taGFuZGxlcnsgZm9udC1zaXplOnZhcigtLWZzMCk7IH0gfTwvc3R5bGU+CgogICAgICAgCiAgICAgICA8IS0tIE9POjoxNWRiZTFlYzRiYjgxOWYzYmU5YWYwYmI5MTczMWQ5ZiAtLT4KICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSLDoCB2ZW5kcmUiIGlkPSJ0ZXh0Rm9yU2FsZSI+CiAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iRMOpdGFpbHMiIGlkPSJ0ZXh0RGV0YWlscyI+CiAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iVG91cyIgaWQ9InRleHRBbGwiPgogICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgdmFsdWU9IlByaXggUsOpZHVpdCIgaWQ9InRleHRSZWR1Y2VkIj4KICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSJTw6lsZWN0aW9ubmV6IHVuZSBtYXJxdWUiIGlkPSJ0ZXh0TWFudVRpdGxlIj4KICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSJWb2lyIG5vcyBtb2TDqGxlcyBGb3JkIiBpZD0idGV4dEJyYW5kVGl0bGUiPgogICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgdmFsdWU9Ik1vZMOobGVzIEZvcmQgbmV1ZnMgMjAyNSwgMjAyNiAmYW1wOyAyMDI3IiBpZD0idGV4dE1haW5UaXRsZSI+CiAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iQXV0b3MgbmV1dmVzIEZvcmQgMjAyNSwgMjAyNiAmYW1wOyAyMDI3IMOgIHskTkVXQ0lUWX0iIGlkPSJ0ZXh0Q2FyVGl0bGUiPgogICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgdmFsdWU9IlZVUyBuZXVmcyBGb3JkIDIwMjUsIDIwMjYgJmFtcDsgMjAyNyDDoCB7JE5FV0NJVFl9IiBpZD0idGV4dFNVVlRpdGxlIj4KICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSJDYW1pb25zIG5ldWZzIEZvcmQgMjAyNSwgMjAyNiAmYW1wOyAyMDI3IMOgIHskTkVXQ0lUWX0iIGlkPSJ0ZXh0VHJ1Y2tUaXRsZSI+CiAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iSHlicmlkZXMgbmV1dmVzIEZvcmQgMjAyNSwgMjAyNiAmYW1wOyAyMDI3IMOgIHskTkVXQ0lUWX0iIGlkPSJ0ZXh0SHlicmlkVGl0bGUiPgogICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgdmFsdWU9Im5vdXZlYXUiIGlkPSJ0ZXh0TmV3Ij4KICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSJGb3JkIHskQ0xBU1NOQU1FfSAyMDI1LCAyMDI2ICZhbXA7IDIwMjciIGlkPSJ0ZXh0Q2xhc3NWaWV3Ij4KICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSJBY2N1ZWlsIiBpZD0idGV4dEhvbWUiPgogICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgdmFsdWU9Ii8iIGlkPSJ1cmlIb21lIj4KICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSIvbmV1ZnMvbm91dmVhdS5odG1sIiBpZD0idXJpTmV3Q2FycyI+CiAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iL25ldWZzLyIgaWQ9InRleHROZXdDYXJGb2xkZXIiPgogICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgdmFsdWU9Ik5vcyBtYXJxdWVzIiBpZD0idGV4dE1hbnVTZWxlY3QiPgogICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgdmFsdWU9IkVuIFN0b2NrIC8gRGlzcG9uaWJsZXMiIGlkPSJpblN0b2NrTGFiZWwiPgogICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgdmFsdWU9Ii9pbWFnZXMvIiBpZD0idGV4dEJhc2VJbWFnZVBhdGgiPgogICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgdmFsdWU9Ii9wcm94eV9hdWIvIiBpZD0iYnJhbmRJbWFnZVBhdGgiPgogICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZm9yY2VUb0ZpbGxQb3B1cF9uZXciIHZhbHVlPSJub25lIj4KCSAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSIxIiBpZD0iaXNtb2JpbGUiPgogICAgICAgCQkJCTxzY3JpcHQ+CgoJCS8vZ2xvYmFsIHN0b3JlCgkJdmFyIHN0b3JlID0gbnVsbDsKCgkJY29uc3QgaW5pdFN0b3JlID0gKCkgPT4gewoKCQkJaWYodHlwZW9mIGNyZWF0ZURhdGFTdG9yZSAhPT0gJ2Z1bmN0aW9uJyl7CgkJCQlzZXRUaW1lb3V0KGluaXRTdG9yZSwgNTApOwoJCQkJcmV0dXJuOwoJCQl9CgoJCQlzdG9yZSA9IGNyZWF0ZURhdGFTdG9yZSh7ImNvbnRleHQiOnsibGFuZyI6IkZSRU5DSCIsInNob3J0TGFuZyI6ImZyIiwiaXNNb2JpbGUiOnRydWUsImNhdGVnb3J5IjoiYWxsIiwic2VjdGlvbiI6Ik5FVyIsImxvY2FsZSI6ImZyX0NBIiwiZGF0ZWZvcm1hdCI6IiVlICVCIn0sImRlYWxlckluZm8iOnsiYWRkcmVzcyI6IjM5NiBSdWUgTWFpbiBPdWVzdCIsImNpdHkiOiJDb2F0aWNvb2siLCJwcm92aW5jZSI6IlF1XHUwMGU5YmVjIiwicmVnaW9uIjoiRXN0cmllIiwicG9zdGFsIjoiSjFBIDFQNyIsIm5hbWUiOiJNYXVyYWlzIEF1dG9tb2JpbGVzIiwiZW1haWwiOiJtYXVyYWlzLWF1dG9AbGl2ZS5jYTtqdXN0aW5tYXVyYWlzMUBnbWFpbC5jb20iLCJkZWFsZXJJRCI6IjI4MDgiLCJkZWFsZXJHcm91cCI6ZmFsc2UsImZheCI6IiIsInBob25lIjoiODE5LTg0OS0yNzY3IiwibGF0aXR1ZGUiOiI0NS4xMzE2ODAwMDAwIiwibG9uZ2l0dWRlIjoiLTcxLjgxMzA5MDAwMDAiLCJwcm92aW5jZV9jb2RlIjoiUUMiLCJkZXRhaWxfcHJpeCI6IiIsImRldGFpbF9wcml4X2FuIjoiIiwiZGV0YWlsX3ByaXhfdXNlZCI6bnVsbCwiZGV0YWlsX3ByaXhfdXNlZF9hbiI6bnVsbCwib2VtRGVhbGVyQ29kZSI6IkIyMjM1IiwicHJpY2VfZGlzY2xhaW1lcl9wcmVmZXJlbmNlIjoiMCIsInByaWNlX2Rpc2NsYWltZXJfcHJlZmVyZW5jZV91c2VkIjoiMCIsImdtQkFDIjoiIiwicGxhY2VJZCI6IkNoSUotVnRGTU1sWXRrd1Jzc2JSTlZXRW9OUSJ9LCJpc1ZNIjpmYWxzZSwiZmllbGRzIjp7IlNIT1dST09NX0lNQUdFX1NPVVJDRV9UWVBFIjoiY2hyb21lIiwiTkVXX0lOVl9JTUFHRV9TT1VSQ0VfVFlQRSI6ImNocm9tZSJ9LCJpMThuIjp7IldFQl9TSVRFX0dFTkVSQVRPUl9QQUdFX05FV0lOViI6IlwvbmV1ZnNcL2ludmVudGFpcmVcL3JlY2hlcmNoZS5odG1sIiwiUEFZTUVOVFMiOiJQYWllbWVudHMiLCJERUZBVUxUX1BBWU1FTlRfQ0FTSCI6IkNvbXB0YW50IiwiTEFCRUxfQkVGT1JFX1RBWEVTIjoiQXZhbnQgdGF4ZXMiLCJMQUJFTF9TQVZFX0JVSUxEX1RJVExFIjoiRW5yZWdpc3RyZXIgdm90cmUgY29uZmlndXJhdGlvbiEiLCJXRUJTSVRFX09FTURSX0xPQURfQlVJTERfVE9PTFRJUCI6IlJlc3RhdXJleiB1bmUgY29uZmlndXJhdGlvbiBwclx1MDBlOWNcdTAwZTlkZW1tZW50IGVucmVnaXN0clx1MDBlOWUgZW4gc2Fpc2lzc2FudCB2b3RyZSBhZHJlc3NlIGUtbWFpbCBvdSB2b3RyZSBudW1cdTAwZTlybyBkZSB0XHUwMGU5bFx1MDBlOXBob25lLiIsIldFQlNJVEVfT0VNRFJfTE9BRF9CVUlMRF9FTUFJTF9QSE9ORSI6IlNhaXNpc3NleiB2b3RyZSBhZHJlc3NlIGUtbWFpbCBldFwvb3Ugdm90cmUgbnVtXHUwMGU5cm8gZGUgdFx1MDBlOWxcdTAwZTlwaG9uZSBwb3VyIGNoYXJnZXIgdW5lIGNvbmZpZ3VyYXRpb24gZW5yZWdpc3RyXHUwMGU5ZS4iLCJXRUJTSVRFX09FTURSX0xPQURfQlVJTERfRU1BSUxfUEhPTkVfRVJST1IiOiJWZXVpbGxleiBzYWlzaXIgdm90cmUgYWRyZXNzZSBlLW1haWwgb3Ugdm90cmUgbnVtXHUwMGU5cm8gZGUgdFx1MDBlOWxcdTAwZTlwaG9uZS4iLCJXRUJTSVRFX09FTURSX0xPQURfQlVJTERfRVJST1IiOiJMZXMgZG9ublx1MDBlOWVzIGRlIGNvbmZpZ3VyYXRpb24gbmUgc29udCBwYXMgZGlzcG9uaWJsZXMgcG91ciBjZXQgZW5yZWdpc3RyZW1lbnQuIiwiV0VCU0lURV9PRU1EUl9MT0FEX0JVSUxEX1JFRElSRUNUSU5HIjoiQ29tcGlsYXRpb24gY2hhcmdcdTAwZTllISBSZWRpcmVjdGlvbiBlbiBjb3Vycy4uLiIsIldFQlNJVEVfT0VNRFJfTE9BRF9CVUlMRF9MSVNUX0VSUk9SIjoiQXVjdW5lIGNvbmZpZ3VyYXRpb24gbiYjMzk7YSBcdTAwZTl0XHUwMGU5IHRyb3V2XHUwMGU5ZSBwb3VyIGNldHRlIGFkcmVzc2UgZS1tYWlsXC9udW1cdTAwZTlybyBkZSB0XHUwMGU5bFx1MDBlOXBob25lLiIsIldFQlNJVEVfT0VNRFJfTE9BRF9CVUlMRF9JTlZBTElEX1RPS0VOIjoiTGUgamV0b24gZXN0IGludmFsaWRlIG91IGEgZXhwaXJcdTAwZTkuIFZldWlsbGV6IHJcdTAwZTllc3NheWVyLiIsIldFQlNJVEVfT0VNRFJfTE9BRF9CVUlMRF9MSVNUIjoiQ2hhcmdlbWVudCBkZXMgY29uZmlndXJhdGlvbnMgc2F1dmVnYXJkXHUwMGU5cy4uLiIsIldFQlNJVEVfT0VNRFJfTE9BRF9CVUlMRF9MSVNUX1NFTEVDVCI6IlNcdTAwZTlsZWN0aW9ubmV6IHVuZSBjb25maWd1cmF0aW9uIFx1MDBlMCBjaGFyZ2VyOiIsIldFQlNJVEVfT0VNRFJfTE9BRF9CVUlMRF9MSVNUX0ZBSUxFRCI6IkltcG9zc2libGUgZGUgY2hhcmdlciBsZXMgY29uZmlndXJhdGlvbnMuIiwiV0VCU0lURV9PRU1EUl9NRkFfU0VORF9DT0RFIjoiRW52b2kgZHUgY29kZSBkZSB2XHUwMGU5cmlmaWNhdGlvbi4uLiIsIldFQlNJVEVfT0VNRFJfTUZBX1NUQVJUX0VSUk9SIjoiSW1wb3NzaWJsZSBkZSBkXHUwMGU5bWFycmVyIGxhIHZcdTAwZTlyaWZpY2F0aW9uLiIsIldFQlNJVEVfT0VNRFJfTUZBX0VOVEVSX0NPREUiOiJTYWlzaXNzZXogbGUgY29kZSBcdTAwZTAgNiBjaGlmZnJlcyBlbnZveVx1MDBlOSBcdTAwZTAgdm90cmUgYWRyZXNzZSBlLW1haWwgb3UgXHUwMGUwIHZvdHJlIG51bVx1MDBlOXJvIGRlIHRcdTAwZTlsXHUwMGU5cGhvbmUuIiwiV0VCU0lURV9PRU1EUl9NRkFfRU5URVJfQ09ERV9FUlJPUiI6IlZldWlsbGV6IHNhaXNpciBsZSBjb2RlIGRlIHZcdTAwZTlyaWZpY2F0aW9uLiIsIldFQlNJVEVfT0VNRFJfTUZBX1ZFUklGWV9DT0RFIjoiVlx1MDBlOXJpZmljYXRpb24gZHUgY29kZS4uLiIsIldFQlNJVEVfT0VNRFJfTUZBX0VYUElSRURfQ09ERSI6IkNvZGUgaW52YWxpZGUgb3UgZXhwaXJcdTAwZTkuIFZldWlsbGV6IHJcdTAwZTllc3NheWVyLiIsIldFQlNJVEVfT0VNRFJfTUZBX1ZFUklGWV9GQUlMRUQiOiJMYSB2XHUwMGU5cmlmaWNhdGlvbiBhIFx1MDBlOWNob3VcdTAwZTkuIFZldWlsbGV6IHJcdTAwZTllc3NheWVyLiIsIldFQlNJVEVfT0VNRFJfU0FWRV9CVUlMRF9VUERBVElORyI6Ik1pc2UgXHUwMGUwIGpvdXIgZGUgbGEgY29uZmlndWF0aW9uLi4uIiwiV0VCU0lURV9PRU1EUl9TQVZFX0JVSUxEX1VQREFURV9TVUNDRVNTIjoiTGEgY29uZmlndWF0aW9uIGEgXHUwMGU5dFx1MDBlOSBtaXNlIFx1MDBlMCBqb3VyIGF2ZWMgc3VjY1x1MDBlOHMuIiwiV0VCU0lURV9PRU1EUl9TQVZFX0JVSUxEX1VQREFURV9FUlJPUiI6IkltcG9zc2libGUgZGUgbWV0dHJlIFx1MDBlMCBqb3VyIGxhIGNvbmZpZ3VhdGlvbi4iLCJXRUJTSVRFX09FTURSX1NBVkVfQlVJTERfU0FWSU5HIjoiU2F1dmVnYXJkZSBkZSBsYSBjb25maWd1YXRpb24uLi4iLCJXRUJTSVRFX09FTURSX1NBVkVfQlVJTERfU0FWRV9TVUNDRVNTIjoiQ29uZmlndWF0aW9uIGVucmVnaXN0clx1MDBlOSAhIFZvdXMgcG91cnJleiBsZSBjaGFyZ2VyIHVsdFx1MDBlOXJpZXVyZW1lbnQgZW4gdXRpbGlzYW50IHZvdHJlIGFkcmVzc2UgZS1tYWlsIG91IHZvdHJlIG51bVx1MDBlOXJvIGRlIHRcdTAwZTlsXHUwMGU5cGhvbmUuIiwiV0VCU0lURV9PRU1EUl9TQVZFX0JVSUxEX1NBVkVfRVJST1IiOiJJbXBvc3NpYmxlIGQmIzM5O2VucmVnaXN0cmVyIGxhIGNvbmZpZ3VyYXRpb24uIiwiV0VCU0lURV9PRU1EUl9CVE5fTE9BRCI6IkNoYXJnZXIiLCJXRUJTSVRFX09FTURSX0JUTl9WRVJJRlkiOiJWXHUwMGU5cmlmaWVyIiwiV0VCU0lURV9PRU1EUl9CVE5fUkVTRU5EX0NPREUiOiJSZW52b3llciBsZSBjb2RlIiwiV0VCU0lURV9PRU1EUl9NRkFfVkVSSUZJQ0FUSU9OX0NPREUiOiJMZSBjb2RlIGRlIHZcdTAwZTlyaWZpY2F0aW9uIiwiV0VCU0lURV9PRU1EUl9TQVZFX0JVSUxEX01PREFMX1RJVExFIjoiQ2hhcmdlciB1bmUgY29uZmlndXJhdGlvbiBlbnJlZ2lzdHJcdTAwZTllIn0sInNob3dPZW1JbWFnZXMiOmZhbHNlfSk7CgkJfTsKCgkJaW5pdFN0b3JlKCk7CgoJPC9zY3JpcHQ+CgkJCQkJCTxzdmcgYXJpYS1oaWRkZW49InRydWUiIHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGU7IHdpZHRoOiAwOyBoZWlnaHQ6IDA7IG92ZXJmbG93OiBoaWRkZW47IiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgoJCQkJCTxzeW1ib2wgaWQ9Imljb24tY2hldnJvbi1yaWdodCIgdmlld2JveD0iMCAwIDMyMCA1MTIiPgoJCTxwYXRoIGQ9Ik0yODUuNDc2IDI3Mi45NzFMOTEuMTMyIDQ2Ny4zMTRjLTkuMzczIDkuMzczLTI0LjU2OSA5LjM3My0zMy45NDEgMGwtMjIuNjY3LTIyLjY2N2MtOS4zNTctOS4zNTctOS4zNzUtMjQuNTIyLS4wNC0zMy45MDFMMTg4LjUwNSAyNTYgMzQuNDg0IDEwMS4yNTVjLTkuMzM1LTkuMzc5LTkuMzE3LTI0LjU0NC4wNC0zMy45MDFsMjIuNjY3LTIyLjY2N2M5LjM3My05LjM3MyAyNC41NjktOS4zNzMgMzMuOTQxIDBMMjg1LjQ3NSAyMzkuMDNjOS4zNzMgOS4zNzIgOS4zNzMgMjQuNTY4LjAwMSAzMy45NDF6Ij48L3BhdGg+Cgk8L3N5bWJvbD4JPHN5bWJvbCBpZD0iaWNvbi1jaGV2cm9uLWRvd24iIHZpZXdib3g9IjAgMCA0NDggNTEyIj4KCQk8cGF0aCBkPSJNMjA3LjAyOSAzODEuNDc2TDEyLjY4NiAxODcuMTMyYy05LjM3My05LjM3My05LjM3My0yNC41NjkgMC0zMy45NDFsMjIuNjY3LTIyLjY2N2M5LjM1Ny05LjM1NyAyNC41MjItOS4zNzUgMzMuOTAxLS4wNEwyMjQgMjg0LjUwNWwxNTQuNzQ1LTE1NC4wMjFjOS4zNzktOS4zMzUgMjQuNTQ0LTkuMzE3IDMzLjkwMS4wNGwyMi42NjcgMjIuNjY3YzkuMzczIDkuMzczIDkuMzczIDI0LjU2OSAwIDMzLjk0MUwyNDAuOTcxIDM4MS40NzZjLTkuMzczIDkuMzcyLTI0LjU2OSA5LjM3Mi0zMy45NDIgMHoiPjwvcGF0aD4KCTwvc3ltYm9sPgk8c3ltYm9sIGlkPSJpY29uLWNoZXZyb24tY2lyY2xlLXJpZ2h0IiB2aWV3Ym94PSIwIDAgNTEyIDUxMiI+CgkJPHBhdGggZD0iTTI1NiA4YzEzNyAwIDI0OCAxMTEgMjQ4IDI0OFMzOTMgNTA0IDI1NiA1MDQgOCAzOTMgOCAyNTYgMTE5IDggMjU2IDh6bTExMy45IDIzMUwyMzQuNCAxMDMuNWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBsLTE3IDE3Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOUwyODUuMSAyNTYgMTgzLjUgMzU3LjZjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45bDE3IDE3YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwTDM2OS45IDI3M2M5LjQtOS40IDkuNC0yNC42IDAtMzR6Ij48L3BhdGg+Cgk8L3N5bWJvbD4JPHN5bWJvbCBpZD0iaWNvbi1jYXIiIHZpZXdib3g9IjAgMCA1MTIgNTEyIj4KCQk8cGF0aCBkPSJNNDk5Ljk5IDE3NmgtNTkuODdsLTE2LjY0LTQxLjZDNDA2LjM4IDkxLjYzIDM2NS41NyA2NCAzMTkuNSA2NGgtMTI3Yy00Ni4wNiAwLTg2Ljg4IDI3LjYzLTEwMy45OSA3MC40TDcxLjg3IDE3NkgxMi4wMUM0LjIgMTc2LTEuNTMgMTgzLjM0LjM3IDE5MC45MWw2IDI0QzcuNyAyMjAuMjUgMTIuNSAyMjQgMTguMDEgMjI0aDIwLjA3QzI0LjY1IDIzNS43MyAxNiAyNTIuNzggMTYgMjcydjQ4YzAgMTYuMTIgNi4xNiAzMC42NyAxNiA0MS45M1Y0MTZjMCAxNy42NyAxNC4zMyAzMiAzMiAzMmgzMmMxNy42NyAwIDMyLTE0LjMzIDMyLTMydi0zMmgyNTZ2MzJjMCAxNy42NyAxNC4zMyAzMiAzMiAzMmgzMmMxNy42NyAwIDMyLTE0LjMzIDMyLTMydi01NC4wN2M5Ljg0LTExLjI1IDE2LTI1LjggMTYtNDEuOTN2LTQ4YzAtMTkuMjItOC42NS0zNi4yNy0yMi4wNy00OEg0OTRjNS41MSAwIDEwLjMxLTMuNzUgMTEuNjQtOS4wOWw2LTI0YzEuODktNy41Ny0zLjg0LTE0LjkxLTExLjY1LTE0Ljkxem0tMzUyLjA2LTE3LjgzYzcuMjktMTguMjIgMjQuOTQtMzAuMTcgNDQuNTctMzAuMTdoMTI3YzE5LjYzIDAgMzcuMjggMTEuOTUgNDQuNTcgMzAuMTdMMzg0IDIwOEgxMjhsMTkuOTMtNDkuODN6TTk2IDMxOS44Yy0xOS4yIDAtMzItMTIuNzYtMzItMzEuOVM3Ni44IDI1NiA5NiAyNTZzNDggMjguNzEgNDggNDcuODUtMjguOCAxNS45NS00OCAxNS45NXptMzIwIDBjLTE5LjIgMC00OCAzLjE5LTQ4LTE1Ljk1UzM5Ni44IDI1NiA0MTYgMjU2czMyIDEyLjc2IDMyIDMxLjktMTIuOCAzMS45LTMyIDMxLjl6Ij48L3BhdGg+Cgk8L3N5bWJvbD4JPHN5bWJvbCBpZD0iaWNvbi1oYW5kLWhvbGRpbmctdXNkIiB2aWV3Ym94PSIwIDAgNTc2IDUxMiI+CgkJPHBhdGggZD0iTTI3MS4wNiwxNDQuM2w1NC4yNywxNC4zYTguNTksOC41OSwwLDAsMSw2LjYzLDguMWMwLDQuNi00LjA5LDguNC05LjEyLDguNGgtMzUuNmEzMCwzMCwwLDAsMS0xMS4xOS0yLjJjLTUuMjQtMi4yLTExLjI4LTEuNy0xNS4zLDJsLTE5LDE3LjVhMTEuNjgsMTEuNjgsMCwwLDAtMi4yNSwyLjY2LDExLjQyLDExLjQyLDAsMCwwLDMuODgsMTUuNzQsODMuNzcsODMuNzcsMCwwLDAsMzQuNTEsMTEuNVYyNDBjMCw4LjgsNy44MywxNiwxNy4zNywxNmgxNy4zN2M5LjU1LDAsMTcuMzgtNy4yLDE3LjM4LTE2VjIyMi40YzMyLjkzLTMuNiw1Ny44NC0zMSw1My41LTYzLTMuMTUtMjMtMjIuNDYtNDEuMy00Ni41Ni00Ny43TDI4Mi42OCw5Ny40YTguNTksOC41OSwwLDAsMS02LjYzLTguMWMwLTQuNiw0LjA5LTguNCw5LjEyLTguNGgzNS42QTMwLDMwLDAsMCwxLDMzMiw4My4xYzUuMjMsMi4yLDExLjI4LDEuNywxNS4zLTJsMTktMTcuNUExMS4zMSwxMS4zMSwwLDAsMCwzNjguNDcsNjFhMTEuNDMsMTEuNDMsMCwwLDAtMy44NC0xNS43OCw4My44Miw4My44MiwwLDAsMC0zNC41Mi0xMS41VjE2YzAtOC44LTcuODItMTYtMTcuMzctMTZIMjk1LjM3QzI4NS44MiwwLDI3OCw3LjIsMjc4LDE2VjMzLjZjLTMyLjg5LDMuNi01Ny44NSwzMS01My41MSw2M0MyMjcuNjMsMTE5LjYsMjQ3LDEzNy45LDI3MS4wNiwxNDQuM1pNNTY1LjI3LDMyOC4xYy0xMS44LTEwLjctMzAuMi0xMC00Mi42LDBMNDMwLjI3LDQwMmE2My42NCw2My42NCwwLDAsMS00MCwxNEgyNzJhMTYsMTYsMCwwLDEsMC0zMmg3OC4yOWMxNS45LDAsMzAuNzEtMTAuOSwzMy4yNS0yNi42YTMxLjIsMzEuMiwwLDAsMCwuNDYtNS40NkEzMiwzMiwwLDAsMCwzNTIsMzIwSDE5MmExMTcuNjYsMTE3LjY2LDAsMCwwLTc0LjEsMjYuMjlMNzEuNCwzODRIMTZBMTYsMTYsMCwwLDAsMCw0MDB2OTZhMTYsMTYsMCwwLDAsMTYsMTZIMzcyLjc3YTY0LDY0LDAsMCwwLDQwLTE0TDU2NCwzNzdhMzIsMzIsMCwwLDAsMS4yOC00OC45WiI+PC9wYXRoPgoJPC9zeW1ib2w+CTxzeW1ib2wgaWQ9Imljb24tdG9vbHMiIHZpZXdib3g9IjAgMCA1MTIgNTEyIj4KCQk8cGF0aCBkPSJNNTAxLjEgMzk1LjdMMzg0IDI3OC42Yy0yMy4xLTIzLjEtNTcuNi0yNy42LTg1LjQtMTMuOUwxOTIgMTU4LjFWOTZMNjQgMCAwIDY0bDk2IDEyOGg2Mi4xbDEwNi42IDEwNi42Yy0xMy42IDI3LjgtOS4yIDYyLjMgMTMuOSA4NS40bDExNy4xIDExNy4xYzE0LjYgMTQuNiAzOC4yIDE0LjYgNTIuNyAwbDUyLjctNTIuN2MxNC41LTE0LjYgMTQuNS0zOC4yIDAtNTIuN3pNMzMxLjcgMjI1YzI4LjMgMCA1NC45IDExIDc0LjkgMzFsMTkuNCAxOS40YzE1LjgtNi45IDMwLjgtMTYuNSA0My44LTI5LjUgMzcuMS0zNy4xIDQ5LjctODkuMyAzNy45LTEzNi43LTIuMi05LTEzLjUtMTIuMS0yMC4xLTUuNWwtNzQuNCA3NC40LTY3LjktMTEuM0wzMzQgOTguOWw3NC40LTc0LjRjNi42LTYuNiAzLjQtMTcuOS01LjctMjAuMi00Ny40LTExLjctOTkuNi45LTEzNi42IDM3LjktMjguNSAyOC41LTQxLjkgNjYuMS00MS4yIDEwMy42bDgyLjEgODIuMWM4LjEtMS45IDE2LjUtMi45IDI0LjctMi45em0tMTAzLjkgODJsLTU2LjctNTYuN0wxOC43IDQwMi44Yy0yNSAyNS0yNSA2NS41IDAgOTAuNXM2NS41IDI1IDkwLjUgMGwxMjMuNi0xMjMuNmMtNy42LTE5LjktOS45LTQxLjYtNS02Mi43ek02NCA0NzJjLTEzLjIgMC0yNC0xMC44LTI0LTI0IDAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRjMCAxMy4yLTEwLjcgMjQtMjQgMjR6Ij48L3BhdGg+Cgk8L3N5bWJvbD4JPHN5bWJvbCBpZD0iaWNvbi1tYXAtbWFya2VyLWFsdCIgdmlld2JveD0iMCAwIDM4NCA1MTIiPgoJCTxwYXRoIGQ9Ik0xNzIuMjY4IDUwMS42N0MyNi45NyAyOTEuMDMxIDAgMjY5LjQxMyAwIDE5MiAwIDg1Ljk2MSA4NS45NjEgMCAxOTIgMHMxOTIgODUuOTYxIDE5MiAxOTJjMCA3Ny40MTMtMjYuOTcgOTkuMDMxLTE3Mi4yNjggMzA5LjY3LTkuNTM1IDEzLjc3NC0yOS45MyAxMy43NzMtMzkuNDY0IDB6TTE5MiAyNzJjNDQuMTgzIDAgODAtMzUuODE3IDgwLTgwcy0zNS44MTctODAtODAtODAtODAgMzUuODE3LTgwIDgwIDM1LjgxNyA4MCA4MCA4MHoiPjwvcGF0aD4KCTwvc3ltYm9sPgoJCQk8L3N2Zz4KCgkJCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJpc01vYmlsZSIgbmFtZT0iaXNNb2JpbGUiIHZhbHVlPSIxIj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9IlNpdGVzX1BhZ2VfR2VuZXJhbF9NZW51X0JUTiIgdmFsdWU9Ik1lbnUgZMOpcm91bGFudCI+CgkJCQoJCQk8aGVhZGVyIGNsYXNzPSJtb2JpbGUtaGVhZGVyIGZsZXgtYm94IGZsZXgtYmV0d2VlbiBhbGlnbi1jZW50ZXIgLS1mczIgdGhpbiIgaGlkZGVuPSIxIj4KCQkJCQoJCQk8Ym94LWxjIGNsYXNzPSJidXJnZXItbWVudS1jb250YWluZXIgLXBoIj4KCQkJCTxsYWJlbCBmb3I9ImJtX3RvZ2dsZSI+PC9sYWJlbD4KCQkJCTxpbnB1dCBpZD0iYm1fdG9nZ2xlIiB0eXBlPSJjaGVja2JveCIgaGlkZGVuPgoJCQkJPGRpdiBpZD0iYnVyZ2VyLW1lbnUtYnV0dG9uIiBjbGFzcz0ic3RhY2stbGMgYnVyZ2VyLW1lbnUtYnV0dG9uIC0tcy0yIj4KCQkJCQk8c3BhbiBjbGFzcz0iYnVyZ2VyX3RvcCI+PC9zcGFuPgoJCQkJCTxzcGFuIGNsYXNzPSJidXJnZXJfbWlkZGxlIj48L3NwYW4+CgkJCQkJPHNwYW4gY2xhc3M9ImJ1cmdlcl9ib3R0b20iPjwvc3Bhbj4KCQkJCTwvZGl2PgoKCQkJCTxhc2lkZSBjbGFzcz0iYnVyZ2VyLW5hdiI+CgkJCQkJCQkJPG5hdj4KCQkJCTx1bD4KCQkJCQkJCQkJPGxpIGNsYXNzPSIiIGhyZWY9Ij9wYXRoPSI+CgkJCQkJCgkJCQkJPGEgY2xhc3M9IkdQX3p0ZGluem5obWl3b2RrenogICBtZW51LWl0ZW0gZmxleC1ib3giIGhyZWY9Ij9wYXRoPS9uZXVmcy9pbnZlbnRhaXJlL3JlY2hlcmNoZS5odG1sIiB0YXJnZXQ9Il90b3AiIG9uY2xpY2s9IiI+CgkJCQkJCQkJCTxzdmcgY2xhc3M9Imljb24iPjx1c2UgeGxpbms6aHJlZj0iI2ljb24tY2hldnJvbi1jaXJjbGUtcmlnaHQiPjwvdXNlPjwvc3ZnPgoJCQkJCQk8c3BhbiBjbGFzcz0ic2hyaW5rLWdyb3cgc2tlbGV0b24tdHh0Ij5ORVVGPC9zcGFuPgoJCQkJCQkJCQkJCTxzcGFuIHJvbGU9ImJ1dHRvbiIgdGFiaW5kZXg9IjAiIGNsYXNzPSJtZW51RXhwYW5kIC1wIC0tcy0zIiBhcmlhLWxhYmVsPSJNZW51IGTDqXJvdWxhbnQiPgoJCQkJCQkJCQk8c3ZnIGNsYXNzPSJpY29uIj48dXNlIHhsaW5rOmhyZWY9IiNpY29uLWNoZXZyb24tZG93biI+PC91c2U+PC9zdmc+CgkJCQkJPC9zcGFuPgoJCQkJCTwvYT4KCQkJCQkJCQkJCTxkaXYgY2xhc3M9InN1Ym1lbnVJdGVtQ29udGFpbmVyIiBzdHlsZT0iZGlzcGxheTpub25lOyI+CgkJCQkJCTxzdGFjay1sYyBpZD0iaXRlbV9HUF96dGRpbnpuaG1pd29ka3p6IiBjbGFzcz0iLS1zLTkiPgoJCQkJCQkJCQkJCQkJPHNwYW4gY2xhc3M9Ii1tMCI+CgkJCQkJCQk8YSBjbGFzcz0ic3VibWVudS1pdGVtIGZsZXgtYm94IGZsZXgtYmV0d2VlbiAtYnQgLS1zLTUgMmY2YTI0OTQtYzQ0NC03YjU0LWNlNTMtMiIgaHJlZj0iP3BhdGg9L25ldWZzL2ludmVudGFpcmUvcmVjaGVyY2hlLmh0bWwiIHRhcmdldD0iIiBvbmNsaWNrPSIiPgoJCQkJCQkJCTxzcGFuIGNsYXNzPSItcGgiPkludmVudGFpcmUgTmV1Zjwvc3Bhbj4KCQkJCQkJCQk8c3BhbiByb2xlPSJidXR0b24iIHRhYmluZGV4PSIwIiBjbGFzcz0iLXAgLS1zLTUiPgoJCQkJCQkJCQkJCQk8c3ZnIGNsYXNzPSJpY29uIj48dXNlIHhsaW5rOmhyZWY9IiNpY29uLWNoZXZyb24tcmlnaHQiPjwvdXNlPjwvc3ZnPgoJCQkJCQkJCTwvc3Bhbj4KCQkJCQkJCTwvYT4KCQkJCQkJPC9zcGFuPgkJCQkJCTxzcGFuIGNsYXNzPSItbTAiPgoJCQkJCQkJPGEgY2xhc3M9InN1Ym1lbnUtaXRlbSBmbGV4LWJveCBmbGV4LWJldHdlZW4gLWJ0IC0tcy01IDc1NmE1ZGEzLTFmNmQtZDQxMy03ZmUtMWUiIGhyZWY9Ij9wYXRoPS9mb3JkcGFzcy1mci5odG1sIiB0YXJnZXQ9IiIgb25jbGljaz0iIj4KCQkJCQkJCQk8c3BhbiBjbGFzcz0iLXBoIj5MJ2FwcGxpY2F0aW9uIEZvcmRQYXNzPC9zcGFuPgoJCQkJCQkJCTxzcGFuIHJvbGU9ImJ1dHRvbiIgdGFiaW5kZXg9IjAiIGNsYXNzPSItcCAtLXMtNSI+CgkJCQkJCQkJCQkJCTxzdmcgY2xhc3M9Imljb24iPjx1c2UgeGxpbms6aHJlZj0iI2ljb24tY2hldnJvbi1yaWdodCI+PC91c2U+PC9zdmc+CgkJCQkJCQkJPC9zcGFuPgoJCQkJCQkJPC9hPgoJCQkJCQk8L3NwYW4+CQkJCQkJPHNwYW4gY2xhc3M9Ii1tMCI+CgkJCQkJCQk8YSBjbGFzcz0ic3VibWVudS1pdGVtIGZsZXgtYm94IGZsZXgtYmV0d2VlbiAtYnQgLS1zLTUgY2ZiNWU2YzUtYjIxOC1kODJhLTc3NWMtOSIgaHJlZj0iP3BhdGg9L2ZvcmQtY29waWxvdDM2MC1mci5odG1sIiB0YXJnZXQ9IiIgb25jbGljaz0iIj4KCQkJCQkJCQk8c3BhbiBjbGFzcz0iLXBoIj5UZWNobm9sb2dpZXMgaW50ZWxsaWdlbnRlcyBGb3JkPC9zcGFuPgoJCQkJCQkJCTxzcGFuIHJvbGU9ImJ1dHRvbiIgdGFiaW5kZXg9IjAiIGNsYXNzPSItcCAtLXMtNSI+CgkJCQkJCQkJCQkJCTxzdmcgY2xhc3M9Imljb24iPjx1c2UgeGxpbms6aHJlZj0iI2ljb24tY2hldnJvbi1yaWdodCI+PC91c2U+PC9zdmc+CgkJCQkJCQkJPC9zcGFuPgoJCQkJCQkJPC9hPgoJCQkJCQk8L3NwYW4+CgkJCQkJCTwvc3RhY2stbGM+CgkJCQkJPC9kaXY+CgkJCQk8L2xpPgoKCQkJCQoJCQkJPGxpIGNsYXNzPSIiPgoJCQkJCQoJCQkJCTxhIGNsYXNzPSJVU0VEICAgbWVudS1pdGVtIGZsZXgtYm94IiBocmVmPSI\/cGF0aD0vb2NjYXNpb24vcmVjaGVyY2hlLmh0bWwiIHRhcmdldD0iX3RvcCIgb25jbGljaz0iIj4KCQkJCQkJCQkJPHN2ZyBjbGFzcz0iaWNvbiI+PHVzZSB4bGluazpocmVmPSIjaWNvbi1jYXIiPjwvdXNlPjwvc3ZnPgoJCQkJCQk8c3BhbiBjbGFzcz0ic2hyaW5rLWdyb3cgc2tlbGV0b24tdHh0IiBkYXRhLW1lbnUtdHJhbnNsYXRlPSJVU0VEIj5PQ0NBU0lPTjwvc3Bhbj4KCQkJCQkJCQkJCQk8c3BhbiByb2xlPSJidXR0b24iIHRhYmluZGV4PSIwIiBjbGFzcz0ibWVudUV4cGFuZCAtcCAtLXMtMyIgYXJpYS1sYWJlbD0iTWVudSBkw6lyb3VsYW50Ij4KCQkJCQkJCQkJPHN2ZyBjbGFzcz0iaWNvbiI+PHVzZSB4bGluazpocmVmPSIjaWNvbi1jaGV2cm9uLWRvd24iPjwvdXNlPjwvc3ZnPgoJCQkJCTwvc3Bhbj4KCQkJCQk8L2E+CgkJCQkJCQkJCQk8ZGl2IGNsYXNzPSJzdWJtZW51SXRlbUNvbnRhaW5lciIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPgoJCQkJCQk8c3RhY2stbGMgaWQ9Iml0ZW1fVVNFRCIgY2xhc3M9Ii0tcy05Ij4KCQkJCQkJCQkJCQkJCTxzcGFuIGNsYXNzPSItbTAiPgoJCQkJCQkJPGEgY2xhc3M9InN1Ym1lbnUtaXRlbSBmbGV4LWJveCBmbGV4LWJldHdlZW4gLWJ0IC0tcy01IFVTRURfQUxMSU5WIiBocmVmPSI\/cGF0aD0vb2NjYXNpb24vcmVjaGVyY2hlLmh0bWwiIHRhcmdldD0iIiBvbmNsaWNrPSIiPgoJCQkJCQkJCTxzcGFuIGNsYXNzPSItcGgiPkludmVudGFpcmUgQ29tcGxldCAoMTMpPC9zcGFuPgoJCQkJCQkJCTxzcGFuIHJvbGU9ImJ1dHRvbiIgdGFiaW5kZXg9IjAiIGNsYXNzPSItcCAtLXMtNSI+CgkJCQkJCQkJCQkJCTxzdmcgY2xhc3M9Imljb24iPjx1c2UgeGxpbms6aHJlZj0iI2ljb24tY2hldnJvbi1yaWdodCI+PC91c2U+PC9zdmc+CgkJCQkJCQkJPC9zcGFuPgoJCQkJCQkJPC9hPgoJCQkJCQk8L3NwYW4+CQkJCQkJPHNwYW4gY2xhc3M9Ii1tMCI+CgkJCQkJCQk8YSBjbGFzcz0ic3VibWVudS1pdGVtIGZsZXgtYm94IGZsZXgtYmV0d2VlbiAtYnQgLS1zLTUgVVNFRF9MRVNTMzBLIiBocmVmPSI\/cGF0aD0vb2NjYXNpb24vbW9pbnMtZGUtMzAwMDAuaHRtbCIgdGFyZ2V0PSIiIG9uY2xpY2s9IiI+CgkJCQkJCQkJPHNwYW4gY2xhc3M9Ii1waCI+TW9pbnMgZGUgMzAsMDAwJCAoNCk8L3NwYW4+CgkJCQkJCQkJPHNwYW4gcm9sZT0iYnV0dG9uIiB0YWJpbmRleD0iMCIgY2xhc3M9Ii1wIC0tcy01Ij4KCQkJCQkJCQkJCQkJPHN2ZyBjbGFzcz0iaWNvbiI+PHVzZSB4bGluazpocmVmPSIjaWNvbi1jaGV2cm9uLXJpZ2h0Ij48L3VzZT48L3N2Zz4KCQkJCQkJCQk8L3NwYW4+CgkJCQkJCQk8L2E+CgkJCQkJCTwvc3Bhbj4JCQkJCQk8c3BhbiBjbGFzcz0iLW0wIj4KCQkJCQkJCTxhIGNsYXNzPSJzdWJtZW51LWl0ZW0gZmxleC1ib3ggZmxleC1iZXR3ZWVuIC1idCAtLXMtNSBVU0VEX0NBVF9DQVIiIGhyZWY9Ij9wYXRoPS9vY2Nhc2lvbi90eXBlL0F1dG9zLmh0bWwiIHRhcmdldD0iIiBvbmNsaWNrPSIiPgoJCQkJCQkJCTxzcGFuIGNsYXNzPSItcGgiPkF1dG9zICgxKTwvc3Bhbj4KCQkJCQkJCQk8c3BhbiByb2xlPSJidXR0b24iIHRhYmluZGV4PSIwIiBjbGFzcz0iLXAgLS1zLTUiPgoJCQkJCQkJCQkJCQk8c3ZnIGNsYXNzPSJpY29uIj48dXNlIHhsaW5rOmhyZWY9IiNpY29uLWNoZXZyb24tcmlnaHQiPjwvdXNlPjwvc3ZnPgoJCQkJCQkJCTwvc3Bhbj4KCQkJCQkJCTwvYT4KCQkJCQkJPC9zcGFuPgkJCQkJCTxzcGFuIGNsYXNzPSItbTAiPgoJCQkJCQkJPGEgY2xhc3M9InN1Ym1lbnUtaXRlbSBmbGV4LWJveCBmbGV4LWJldHdlZW4gLWJ0IC0tcy01IFVTRURfQ0FUX1NVViIgaHJlZj0iP3BhdGg9L29jY2FzaW9uL3R5cGUvVlVTLmh0bWwiIHRhcmdldD0iIiBvbmNsaWNrPSIiPgoJCQkJCQkJCTxzcGFuIGNsYXNzPSItcGgiPlZVUyAmYW1wOyBNdWx0aXNlZ21lbnRzICgzKTwvc3Bhbj4KCQkJCQkJCQk8c3BhbiByb2xlPSJidXR0b24iIHRhYmluZGV4PSIwIiBjbGFzcz0iLXAgLS1zLTUiPgoJCQkJCQkJCQkJCQk8c3ZnIGNsYXNzPSJpY29uIj48dXNlIHhsaW5rOmhyZWY9IiNpY29uLWNoZXZyb24tcmlnaHQiPjwvdXNlPjwvc3ZnPgoJCQkJCQkJCTwvc3Bhbj4KCQkJCQkJCTwvYT4KCQkJCQkJPC9zcGFuPgkJCQkJCTxzcGFuIGNsYXNzPSItbTAiPgoJCQkJCQkJPGEgY2xhc3M9InN1Ym1lbnUtaXRlbSBmbGV4LWJveCBmbGV4LWJldHdlZW4gLWJ0IC0tcy01IFVTRURfQ0FUX1RSVUNLIiBocmVmPSI\/cGF0aD0vb2NjYXNpb24vdHlwZS9DYW1pb25zLmh0bWwiIHRhcmdldD0iIiBvbmNsaWNrPSIiPgoJCQkJCQkJCTxzcGFuIGNsYXNzPSItcGgiPkNhbWlvbnMgKDgpPC9zcGFuPgoJCQkJCQkJCTxzcGFuIHJvbGU9ImJ1dHRvbiIgdGFiaW5kZXg9IjAiIGNsYXNzPSItcCAtLXMtNSI+CgkJCQkJCQkJCQkJCTxzdmcgY2xhc3M9Imljb24iPjx1c2UgeGxpbms6aHJlZj0iI2ljb24tY2hldnJvbi1yaWdodCI+PC91c2U+PC9zdmc+CgkJCQkJCQkJPC9zcGFuPgoJCQkJCQkJPC9hPgoJCQkJCQk8L3NwYW4+CQkJCQkJPHNwYW4gY2xhc3M9Ii1tMCI+CgkJCQkJCQk8YSBjbGFzcz0ic3VibWVudS1pdGVtIGZsZXgtYm94IGZsZXgtYmV0d2VlbiAtYnQgLS1zLTUgVVNFRF9DQVRfRUxFQ1RSSUMiIGhyZWY9Ij9wYXRoPS9vY2Nhc2lvbi90eXBlL0VsZWN0cmlxdWUuaHRtbCIgdGFyZ2V0PSIiIG9uY2xpY2s9IiI+CgkJCQkJCQkJPHNwYW4gY2xhc3M9Ii1waCI+w4lsZWN0cmlxdWVzICgzKTwvc3Bhbj4KCQkJCQkJCQk8c3BhbiByb2xlPSJidXR0b24iIHRhYmluZGV4PSIwIiBjbGFzcz0iLXAgLS1zLTUiPgoJCQkJCQkJCQkJCQk8c3ZnIGNsYXNzPSJpY29uIj48dXNlIHhsaW5rOmhyZWY9IiNpY29uLWNoZXZyb24tcmlnaHQiPjwvdXNlPjwvc3ZnPgoJCQkJCQkJCTwvc3Bhbj4KCQkJCQkJCTwvYT4KCQkJCQkJPC9zcGFuPgkJCQkJCTxzcGFuIGNsYXNzPSItbTAiPgoJCQkJCQkJPGEgY2xhc3M9InN1Ym1lbnUtaXRlbSBmbGV4LWJveCBmbGV4LWJldHdlZW4gLWJ0IC0tcy01IFVTRURfT1RIRVIiIGhyZWY9Ij9wYXRoPS9vY2Nhc2lvbi9yZWNoZXJjaGUuaHRtbCIgdGFyZ2V0PSIiIG9uY2xpY2s9IiI+CgkJCQkJCQkJPHNwYW4gY2xhc3M9Ii1waCI+QXV0cmVzIG1vZMOobGVzPC9zcGFuPgoJCQkJCQkJCTxzcGFuIHJvbGU9ImJ1dHRvbiIgdGFiaW5kZXg9IjAiIGNsYXNzPSItcCAtLXMtNSI+CgkJCQkJCQkJCQkJCTxzdmcgY2xhc3M9Imljb24iPjx1c2UgeGxpbms6aHJlZj0iI2ljb24tY2hldnJvbi1yaWdodCI+PC91c2U+PC9zdmc+CgkJCQkJCQkJPC9zcGFuPgoJCQkJCQkJPC9hPgoJCQkJCQk8L3NwYW4+CQkJCQkJPHNwYW4gY2xhc3M9Ii1tMCI+CgkJCQkJCQk8YSBjbGFzcz0ic3VibWVudS1pdGVtIGZsZXgtYm94IGZsZXgtYmV0d2VlbiAtYnQgLS1zLTUgVVNFRDEiIGhyZWY9Ij9wYXRoPS9vY2Nhc2lvbi9Gb3JkLUZfMTUwLmh0bWwiIHRhcmdldD0iIiBvbmNsaWNrPSIiPgoJCQkJCQkJCTxzcGFuIGNsYXNzPSItcGgiPkZvcmQgRi0xNTAgKDUpPC9zcGFuPgoJCQkJCQkJCTxzcGFuIHJvbGU9ImJ1dHRvbiIgdGFiaW5kZXg9IjAiIGNsYXNzPSItcCAtLXMtNSI+CgkJCQkJCQkJCQkJCTxzdmcgY2xhc3M9Imljb24iPjx1c2UgeGxpbms6aHJlZj0iI2ljb24tY2hldnJvbi1yaWdodCI+PC91c2U+PC9zdmc+CgkJCQkJCQkJPC9zcGFuPgoJCQkJCQkJPC9hPgoJCQkJCQk8L3NwYW4+CQkJCQkJPHNwYW4gY2xhc3M9Ii1tMCI+CgkJCQkJCQk8YSBjbGFzcz0ic3VibWVudS1pdGVtIGZsZXgtYm94IGZsZXgtYmV0d2VlbiAtYnQgLS1zLTUgVVNFRDIiIGhyZWY9Ij9wYXRoPS9vY2Nhc2lvbi9Gb3JkLU11c3RhbmdfTWFjaF9FLmh0bWwiIHRhcmdldD0iIiBvbmNsaWNrPSIiPgoJCQkJCQkJCTxzcGFuIGNsYXNzPSItcGgiPkZvcmQgTXVzdGFuZyBNYWNoLUUgKDMpPC9zcGFuPgoJCQkJCQkJCTxzcGFuIHJvbGU9ImJ1dHRvbiIgdGFiaW5kZXg9IjAiIGNsYXNzPSItcCAtLXMtNSI+CgkJCQkJCQkJCQkJCTxzdmcgY2xhc3M9Imljb24iPjx1c2UgeGxpbms6aHJlZj0iI2ljb24tY2hldnJvbi1yaWdodCI+PC91c2U+PC9zdmc+CgkJCQkJCQkJPC9zcGFuPgoJCQkJCQkJPC9hPgoJCQkJCQk8L3NwYW4+CQkJCQkJPHNwYW4gY2xhc3M9Ii1tMCI+CgkJCQkJCQk8YSBjbGFzcz0ic3VibWVudS1pdGVtIGZsZXgtYm94IGZsZXgtYmV0d2VlbiAtYnQgLS1zLTUgVVNFRDMiIGhyZWY9Ij9wYXRoPS9vY2Nhc2lvbi9Gb3JkLUVzY2FwZS5odG1sIiB0YXJnZXQ9IiIgb25jbGljaz0iIj4KCQkJCQkJCQk8c3BhbiBjbGFzcz0iLXBoIj5Gb3JkIEVzY2FwZSAoMSk8L3NwYW4+CgkJCQkJCQkJPHNwYW4gcm9sZT0iYnV0dG9uIiB0YWJpbmRleD0iMCIgY2xhc3M9Ii1wIC0tcy01Ij4KCQkJCQkJCQkJCQkJPHN2ZyBjbGFzcz0iaWNvbiI+PHVzZSB4bGluazpocmVmPSIjaWNvbi1jaGV2cm9uLXJpZ2h0Ij48L3VzZT48L3N2Zz4KCQkJCQkJCQk8L3NwYW4+CgkJCQkJCQk8L2E+CgkJCQkJCTwvc3Bhbj4JCQkJCQk8c3BhbiBjbGFzcz0iLW0wIj4KCQkJCQkJCTxhIGNsYXNzPSJzdWJtZW51LWl0ZW0gZmxleC1ib3ggZmxleC1iZXR3ZWVuIC1idCAtLXMtNSBVU0VENCIgaHJlZj0iP3BhdGg9L29jY2FzaW9uL0ZvcmQtRl8yNTAuaHRtbCIgdGFyZ2V0PSIiIG9uY2xpY2s9IiI+CgkJCQkJCQkJPHNwYW4gY2xhc3M9Ii1waCI+Rm9yZCBGLTI1MCAoMSk8L3NwYW4+CgkJCQkJCQkJPHNwYW4gcm9sZT0iYnV0dG9uIiB0YWJpbmRleD0iMCIgY2xhc3M9Ii1wIC0tcy01Ij4KCQkJCQkJCQkJCQkJPHN2ZyBjbGFzcz0iaWNvbiI+PHVzZSB4bGluazpocmVmPSIjaWNvbi1jaGV2cm9uLXJpZ2h0Ij48L3VzZT48L3N2Zz4KCQkJCQkJCQk8L3NwYW4+CgkJCQkJCQk8L2E+CgkJCQkJCTwvc3Bhbj4JCQkJCQk8c3BhbiBjbGFzcz0iLW0wIj4KCQkJCQkJCTxhIGNsYXNzPSJzdWJtZW51LWl0ZW0gZmxleC1ib3ggZmxleC1iZXR3ZWVuIC1idCAtLXMtNSBVU0VENSIgaHJlZj0iP3BhdGg9L29jY2FzaW9uL0ZvcmQtRl8zNTAuaHRtbCIgdGFyZ2V0PSIiIG9uY2xpY2s9IiI+CgkJCQkJCQkJPHNwYW4gY2xhc3M9Ii1waCI+Rm9yZCBGLTM1MCAoMSk8L3NwYW4+CgkJCQkJCQkJPHNwYW4gcm9sZT0iYnV0dG9uIiB0YWJpbmRleD0iMCIgY2xhc3M9Ii1wIC0tcy01Ij4KCQkJCQkJCQkJCQkJPHN2ZyBjbGFzcz0iaWNvbiI+PHVzZSB4bGluazpocmVmPSIjaWNvbi1jaGV2cm9uLXJpZ2h0Ij48L3VzZT48L3N2Zz4KCQkJCQkJCQk8L3NwYW4+CgkJCQkJCQk8L2E+CgkJCQkJCTwvc3Bhbj4JCQkJCQk8c3BhbiBjbGFzcz0iLW0wIj4KCQkJCQkJCTxhIGNsYXNzPSJzdWJtZW51LWl0ZW0gZmxleC1ib3ggZmxleC1iZXR3ZWVuIC1idCAtLXMtNSBVU0VENiIgaHJlZj0iP3BhdGg9L29jY2FzaW9uL0RvZGdlLVJBTV8zNTAwLmh0bWwiIHRhcmdldD0iIiBvbmNsaWNrPSIiPgoJCQkJCQkJCTxzcGFuIGNsYXNzPSItcGgiPkRvZGdlIFJBTSAzNTAwICgxKTwvc3Bhbj4KCQkJCQkJCQk8c3BhbiByb2xlPSJidXR0b24iIHRhYmluZGV4PSIwIiBjbGFzcz0iLXAgLS1zLTUiPgoJCQkJCQkJCQkJCQk8c3ZnIGNsYXNzPSJpY29uIj48dXNlIHhsaW5rOmhyZWY9IiNpY29uLWNoZXZyb24tcmlnaHQiPjwvdXNlPjwvc3ZnPgoJCQkJCQkJCTwvc3Bhbj4KCQkJCQkJCTwvYT4KCQkJCQkJPC9zcGFuPgkJCQkJCTxzcGFuIGNsYXNzPSItbTAiPgoJCQkJCQkJPGEgY2xhc3M9InN1Ym1lbnUtaXRlbSBmbGV4LWJveCBmbGV4LWJldHdlZW4gLWJ0IC0tcy01IFVTRUQ3IiBocmVmPSI\/cGF0aD0vb2NjYXNpb24vVG95b3RhLUNvcm9sbGEuaHRtbCIgdGFyZ2V0PSIiIG9uY2xpY2s9IiI+CgkJCQkJCQkJPHNwYW4gY2xhc3M9Ii1waCI+VG95b3RhIENvcm9sbGEgKDEpPC9zcGFuPgoJCQkJCQkJCTxzcGFuIHJvbGU9ImJ1dHRvbiIgdGFiaW5kZXg9IjAiIGNsYXNzPSItcCAtLXMtNSI+CgkJCQkJCQkJCQkJCTxzdmcgY2xhc3M9Imljb24iPjx1c2UgeGxpbms6aHJlZj0iI2ljb24tY2hldnJvbi1yaWdodCI+PC91c2U+PC9zdmc+CgkJCQkJCQkJPC9zcGFuPgoJCQkJCQkJPC9hPgoJCQkJCQk8L3NwYW4+CgkJCQkJCTwvc3RhY2stbGM+CgkJCQkJPC9kaXY+CgkJCQk8L2xpPgoKCQkJCQoJCQkJPGxpIGNsYXNzPSIiPgoJCQkJCQoJCQkJCTxhIGNsYXNzPSJGSU5BTkNFICAgbWVudS1pdGVtIGZsZXgtYm94IiBocmVmPSI\/cGF0aD0vZGVtYW5kZXMvZmluYW5jZW1lbnQuaHRtbCIgdGFyZ2V0PSJfdG9wIiBvbmNsaWNrPSIiPgoJCQkJCQkJCQk8c3ZnIGNsYXNzPSJpY29uIj48dXNlIHhsaW5rOmhyZWY9IiNpY29uLWhhbmQtaG9sZGluZy11c2QiPjwvdXNlPjwvc3ZnPgoJCQkJCQk8c3BhbiBjbGFzcz0ic2hyaW5rLWdyb3cgc2tlbGV0b24tdHh0Ij5GSU5BTkNFTUVOVDwvc3Bhbj4KCQkJCQkJCQkJCQk8c3BhbiByb2xlPSJidXR0b24iIHRhYmluZGV4PSIwIiBjbGFzcz0ibWVudUV4cGFuZCAtcCAtLXMtMyIgYXJpYS1sYWJlbD0iTWVudSBkw6lyb3VsYW50Ij4KCQkJCQkJCQkJPHN2ZyBjbGFzcz0iaWNvbiI+PHVzZSB4bGluazpocmVmPSIjaWNvbi1jaGV2cm9uLWRvd24iPjwvdXNlPjwvc3ZnPgoJCQkJCTwvc3Bhbj4KCQkJCQk8L2E+CgkJCQkJCQkJCQk8ZGl2IGNsYXNzPSJzdWJtZW51SXRlbUNvbnRhaW5lciIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPgoJCQkJCQk8c3RhY2stbGMgaWQ9Iml0ZW1fRklOQU5DRSIgY2xhc3M9Ii0tcy05Ij4KCQkJCQkJCQkJCQkJCTxzcGFuIGNsYXNzPSItbTAiPgoJCQkJCQkJPGEgY2xhc3M9InN1Ym1lbnUtaXRlbSBmbGV4LWJveCBmbGV4LWJldHdlZW4gLWJ0IC0tcy01IGE1MGUyOWEwLTJmMjMtMjRmYi04ZjJmLTMiIGhyZWY9Ij9wYXRoPS9kZW1hbmRlcy9maW5hbmNlbWVudC5odG1sIiB0YXJnZXQ9IiIgb25jbGljaz0iIj4KCQkJCQkJCQk8c3BhbiBjbGFzcz0iLXBoIj5EZW1hbmRlIGRlIGNyw6lkaXQ8L3NwYW4+CgkJCQkJCQkJPHNwYW4gcm9sZT0iYnV0dG9uIiB0YWJpbmRleD0iMCIgY2xhc3M9Ii1wIC0tcy01Ij4KCQkJCQkJCQkJCQkJPHN2ZyBjbGFzcz0iaWNvbiI+PHVzZSB4bGluazpocmVmPSIjaWNvbi1jaGV2cm9uLXJpZ2h0Ij48L3VzZT48L3N2Zz4KCQkJCQkJCQk8L3NwYW4+CgkJCQkJCQk8L2E+CgkJCQkJCTwvc3Bhbj4JCQkJCQk8c3BhbiBjbGFzcz0iLW0wIj4KCQkJCQkJCTxhIGNsYXNzPSJzdWJtZW51LWl0ZW0gZmxleC1ib3ggZmxleC1iZXR3ZWVuIC1idCAtLXMtNSBlYzM3ZDQ1MC0xOTk4LTU5ZTQtZTIzYi0xIiBocmVmPSI\/cGF0aD0vdmVuZGV6LXZvdHJlLXZlaGljdWxlLmh0bWwiIHRhcmdldD0iIiBvbmNsaWNrPSIiPgoJCQkJCQkJCTxzcGFuIGNsYXNzPSItcGgiPlZlbmRlei1ub3VzIHZvdHJlIHbDqWhpY3VsZTwvc3Bhbj4KCQkJCQkJCQk8c3BhbiByb2xlPSJidXR0b24iIHRhYmluZGV4PSIwIiBjbGFzcz0iLXAgLS1zLTUiPgoJCQkJCQkJCQkJCQk8c3ZnIGNsYXNzPSJpY29uIj48dXNlIHhsaW5rOmhyZWY9IiNpY29uLWNoZXZyb24tcmlnaHQiPjwvdXNlPjwvc3ZnPgoJCQkJCQkJCTwvc3Bhbj4KCQkJCQkJCTwvYT4KCQkJCQkJPC9zcGFuPgkJCQkJCTxzcGFuIGNsYXNzPSItbTAiPgoJCQkJCQkJPGEgY2xhc3M9InN1Ym1lbnUtaXRlbSBmbGV4LWJveCBmbGV4LWJldHdlZW4gLWJ0IC0tcy01IGUzNWJiYWExLWU1MDQtNTdiNS0zZDFjLTYiIGhyZWY9Ij9wYXRoPS9vY2Nhc2lvbi9jYWxjdWxhdHJpY2UtcHJldC1hdXRvLmh0bWwiIHRhcmdldD0iIiBvbmNsaWNrPSIiPgoJCQkJCQkJCTxzcGFuIGNsYXNzPSItcGgiPkVzdGltYXRldXIgZGUgcGFpZW1lbnRzPC9zcGFuPgoJCQkJCQkJCTxzcGFuIHJvbGU9ImJ1dHRvbiIgdGFiaW5kZXg9IjAiIGNsYXNzPSItcCAtLXMtNSI+CgkJCQkJCQkJCQkJCTxzdmcgY2xhc3M9Imljb24iPjx1c2UgeGxpbms6aHJlZj0iI2ljb24tY2hldnJvbi1yaWdodCI+PC91c2U+PC9zdmc+CgkJCQkJCQkJPC9zcGFuPgoJCQkJCQkJPC9hPgoJCQkJCQk8L3NwYW4+CgkJCQkJCTwvc3RhY2stbGM+CgkJCQkJPC9kaXY+CgkJCQk8L2xpPgoKCQkJCQoJCQkJPGxpIGNsYXNzPSIiPgoJCQkJCQoJCQkJCTxhIGNsYXNzPSJTRVJWSUNFICAgbWVudS1pdGVtIGZsZXgtYm94IiBocmVmPSI\/cGF0aD0vc2VydmljZXMtZm9yZC5odG1sIiB0YXJnZXQ9Il90b3AiIG9uY2xpY2s9IiI+CgkJCQkJCQkJCTxzdmcgY2xhc3M9Imljb24iPjx1c2UgeGxpbms6aHJlZj0iI2ljb24tdG9vbHMiPjwvdXNlPjwvc3ZnPgoJCQkJCQk8c3BhbiBjbGFzcz0ic2hyaW5rLWdyb3cgc2tlbGV0b24tdHh0IiBkYXRhLW1lbnUtdHJhbnNsYXRlPSJTRVJWSUNFIj5TRVJWSUNFUzwvc3Bhbj4KCQkJCQkJCQkJCQk8c3BhbiByb2xlPSJidXR0b24iIHRhYmluZGV4PSIwIiBjbGFzcz0ibWVudUV4cGFuZCAtcCAtLXMtMyIgYXJpYS1sYWJlbD0iTWVudSBkw6lyb3VsYW50Ij4KCQkJCQkJCQkJPHN2ZyBjbGFzcz0iaWNvbiI+PHVzZSB4bGluazpocmVmPSIjaWNvbi1jaGV2cm9uLWRvd24iPjwvdXNlPjwvc3ZnPgoJCQkJCTwvc3Bhbj4KCQkJCQk8L2E+CgkJCQkJCQkJCQk8ZGl2IGNsYXNzPSJzdWJtZW51SXRlbUNvbnRhaW5lciIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPgoJCQkJCQk8c3RhY2stbGMgaWQ9Iml0ZW1fU0VSVklDRSIgY2xhc3M9Ii0tcy05Ij4KCQkJCQkJCQkJCQkJCTxzcGFuIGNsYXNzPSItbTAiPgoJCQkJCQkJPGEgY2xhc3M9InN1Ym1lbnUtaXRlbSBmbGV4LWJveCBmbGV4LWJldHdlZW4gLWJ0IC0tcy01IEdBUkFHRSIgaHJlZj0iP3BhdGg9L3NlcnZpY2VzLmh0bWwiIHRhcmdldD0iIiBvbmNsaWNrPSIiPgoJCQkJCQkJCTxzcGFuIGNsYXNzPSItcGgiPkVudHJldGllbiBldCBtw6ljYW5pcXVlPC9zcGFuPgoJCQkJCQkJCTxzcGFuIHJvbGU9ImJ1dHRvbiIgdGFiaW5kZXg9IjAiIGNsYXNzPSItcCAtLXMtNSI+CgkJCQkJCQkJCQkJCTxzdmcgY2xhc3M9Imljb24iPjx1c2UgeGxpbms6aHJlZj0iI2ljb24tY2hldnJvbi1yaWdodCI+PC91c2U+PC9zdmc+CgkJCQkJCQkJPC9zcGFuPgoJCQkJCQkJPC9hPgoJCQkJCQk8L3NwYW4+CQkJCQkJPHNwYW4gY2xhc3M9Ii1tMCI+CgkJCQkJCQk8YSBjbGFzcz0ic3VibWVudS1pdGVtIGZsZXgtYm94IGZsZXgtYmV0d2VlbiAtYnQgLS1zLTUgUElFQ0VTIiBocmVmPSI\/cGF0aD0vZGVtYW5kZXMvY29tbWFuZGUtcGllY2VzLWFjY2Vzc29pcmVzLWF1dG9tb2JpbGVzLmh0bWwiIHRhcmdldD0iIiBvbmNsaWNrPSIiPgoJCQkJCQkJCTxzcGFuIGNsYXNzPSItcGgiPlBpw6hjZXMgJmFtcDsgQWNjZXNzb2lyZXM8L3NwYW4+CgkJCQkJCQkJPHNwYW4gcm9sZT0iYnV0dG9uIiB0YWJpbmRleD0iMCIgY2xhc3M9Ii1wIC0tcy01Ij4KCQkJCQkJCQkJCQkJPHN2ZyBjbGFzcz0iaWNvbiI+PHVzZSB4bGluazpocmVmPSIjaWNvbi1jaGV2cm9uLXJpZ2h0Ij48L3VzZT48L3N2Zz4KCQkJCQkJCQk8L3NwYW4+CgkJCQkJCQk8L2E+CgkJCQkJCTwvc3Bhbj4JCQkJCQk8c3BhbiBjbGFzcz0iLW0wIj4KCQkJCQkJCTxhIGNsYXNzPSJzdWJtZW51LWl0ZW0gZmxleC1ib3ggZmxleC1iZXR3ZWVuIC1idCAtLXMtNSBBUFBPSU5UIiBocmVmPSI\/cGF0aD0vZGVtYW5kZXMvcmVuZGV6LXZvdXMtYXUtc2VydmljZS5odG1sIiB0YXJnZXQ9IiIgb25jbGljaz0iIj4KCQkJCQkJCQk8c3BhbiBjbGFzcz0iLXBoIj5SZW5kZXotdm91cyBhdSBzZXJ2aWNlPC9zcGFuPgoJCQkJCQkJCTxzcGFuIHJvbGU9ImJ1dHRvbiIgdGFiaW5kZXg9IjAiIGNsYXNzPSItcCAtLXMtNSI+CgkJCQkJCQkJCQkJCTxzdmcgY2xhc3M9Imljb24iPjx1c2UgeGxpbms6aHJlZj0iI2ljb24tY2hldnJvbi1yaWdodCI+PC91c2U+PC9zdmc+CgkJCQkJCQkJPC9zcGFuPgoJCQkJCQkJPC9hPgoJCQkJCQk8L3NwYW4+CQkJCQkJPHNwYW4gY2xhc3M9Ii1tMCI+CgkJCQkJCQk8YSBjbGFzcz0ic3VibWVudS1pdGVtIGZsZXgtYm94IGZsZXgtYmV0d2VlbiAtYnQgLS1zLTUgVElSRVMiIGhyZWY9Ij9wYXRoPS9kZW1hbmRlcy9jb21tYW5kZS1kZS1wbmV1cy5odG1sIiB0YXJnZXQ9IiIgb25jbGljaz0iIj4KCQkJCQkJCQk8c3BhbiBjbGFzcz0iLXBoIj5Db21tYW5kZXogdm9zIHBuZXVzIGljaSE8L3NwYW4+CgkJCQkJCQkJPHNwYW4gcm9sZT0iYnV0dG9uIiB0YWJpbmRleD0iMCIgY2xhc3M9Ii1wIC0tcy01Ij4KCQkJCQkJCQkJCQkJPHN2ZyBjbGFzcz0iaWNvbiI+PHVzZSB4bGluazpocmVmPSIjaWNvbi1jaGV2cm9uLXJpZ2h0Ij48L3VzZT48L3N2Zz4KCQkJCQkJCQk8L3NwYW4+CgkJCQkJCQk8L2E+CgkJCQkJCTwvc3Bhbj4JCQkJCQk8c3BhbiBjbGFzcz0iLW0wIj4KCQkJCQkJCTxhIGNsYXNzPSJzdWJtZW51LWl0ZW0gZmxleC1ib3ggZmxleC1iZXR3ZWVuIC1idCAtLXMtNSBCT0RZIiBocmVmPSI\/cGF0aD0vZGVtYW5kZXMvcmVuZGV6LXZvdXMtYXUtY2Fyb3NzZXJpZS5odG1sIiB0YXJnZXQ9IiIgb25jbGljaz0iIj4KCQkJCQkJCQk8c3BhbiBjbGFzcz0iLXBoIj5DYXJyb3NzZXJpZTwvc3Bhbj4KCQkJCQkJCQk8c3BhbiByb2xlPSJidXR0b24iIHRhYmluZGV4PSIwIiBjbGFzcz0iLXAgLS1zLTUiPgoJCQkJCQkJCQkJCQk8c3ZnIGNsYXNzPSJpY29uIj48dXNlIHhsaW5rOmhyZWY9IiNpY29uLWNoZXZyb24tcmlnaHQiPjwvdXNlPjwvc3ZnPgoJCQkJCQkJCTwvc3Bhbj4KCQkJCQkJCTwvYT4KCQkJCQkJPC9zcGFuPgkJCQkJCTxzcGFuIGNsYXNzPSItbTAiPgoJCQkJCQkJPGEgY2xhc3M9InN1Ym1lbnUtaXRlbSBmbGV4LWJveCBmbGV4LWJldHdlZW4gLWJ0IC0tcy01IEdQX2RjNmRiNjJjYTY5YjljN2EiIGhyZWY9Ij9wYXRoPS9mb3JkLW1haW50ZW5hbmNlLXBsYW4tZnIuaHRtbCIgdGFyZ2V0PSIiIG9uY2xpY2s9IiI+CgkJCQkJCQkJPHNwYW4gY2xhc3M9Ii1waCI+UHJvZ3JhbW1lcyBGb3JkIFByb3RlY3Q8L3NwYW4+CgkJCQkJCQkJPHNwYW4gcm9sZT0iYnV0dG9uIiB0YWJpbmRleD0iMCIgY2xhc3M9Ii1wIC0tcy01Ij4KCQkJCQkJCQkJCQkJPHN2ZyBjbGFzcz0iaWNvbiI+PHVzZSB4bGluazpocmVmPSIjaWNvbi1jaGV2cm9uLXJpZ2h0Ij48L3VzZT48L3N2Zz4KCQkJCQkJCQk8L3NwYW4+CgkJCQkJCQk8L2E+CgkJCQkJCTwvc3Bhbj4KCQkJCQkJPC9zdGFjay1sYz4KCQkJCQk8L2Rpdj4KCQkJCTwvbGk+CgoJCQkJCgkJCQk8bGkgY2xhc3M9IiI+CgkJCQkJCgkJCQkJPGEgY2xhc3M9IkNPTlRBQ1QgICBtZW51LWl0ZW0gZmxleC1ib3giIGhyZWY9Ij9wYXRoPS9jb250YWN0ZXpub3VzLmh0bWwiIHRhcmdldD0iX3RvcCIgb25jbGljaz0iIj4KCQkJCQkJCQkJPHN2ZyBjbGFzcz0iaWNvbiI+PHVzZSB4bGluazpocmVmPSIjaWNvbi1tYXAtbWFya2VyLWFsdCI+PC91c2U+PC9zdmc+CgkJCQkJCTxzcGFuIGNsYXNzPSJzaHJpbmstZ3JvdyBza2VsZXRvbi10eHQiPkNPTlRBQ1RFWi1OT1VTPC9zcGFuPgoJCQkJCQkJCQkJCTxzcGFuIHJvbGU9ImJ1dHRvbiIgdGFiaW5kZXg9IjAiIGNsYXNzPSJtZW51RXhwYW5kIC1wIC0tcy0zIiBhcmlhLWxhYmVsPSJNZW51IGTDqXJvdWxhbnQiPgoJCQkJCQkJCQk8c3ZnIGNsYXNzPSJpY29uIj48dXNlIHhsaW5rOmhyZWY9IiNpY29uLWNoZXZyb24tZG93biI+PC91c2U+PC9zdmc+CgkJCQkJPC9zcGFuPgoJCQkJCTwvYT4KCQkJCQkJCQkJCTxkaXYgY2xhc3M9InN1Ym1lbnVJdGVtQ29udGFpbmVyIiBzdHlsZT0iZGlzcGxheTpub25lOyI+CgkJCQkJCTxzdGFjay1sYyBpZD0iaXRlbV9DT05UQUNUIiBjbGFzcz0iLS1zLTkiPgoJCQkJCQkJCQkJCQkJPHNwYW4gY2xhc3M9Ii1tMCI+CgkJCQkJCQk8YSBjbGFzcz0ic3VibWVudS1pdGVtIGZsZXgtYm94IGZsZXgtYmV0d2VlbiAtYnQgLS1zLTUgQ09OVEFDVFVTIiBocmVmPSI\/cGF0aD0vY29udGFjdGV6bm91cy5odG1sIiB0YXJnZXQ9IiIgb25jbGljaz0iIj4KCQkJCQkJCQk8c3BhbiBjbGFzcz0iLXBoIj7DgCBQcm9wb3MgZGUgbm91czwvc3Bhbj4KCQkJCQkJCQk8c3BhbiByb2xlPSJidXR0b24iIHRhYmluZGV4PSIwIiBjbGFzcz0iLXAgLS1zLTUiPgoJCQkJCQkJCQkJCQk8c3ZnIGNsYXNzPSJpY29uIj48dXNlIHhsaW5rOmhyZWY9IiNpY29uLWNoZXZyb24tcmlnaHQiPjwvdXNlPjwvc3ZnPgoJCQkJCQkJCTwvc3Bhbj4KCQkJCQkJCTwvYT4KCQkJCQkJPC9zcGFuPgkJCQkJCTxzcGFuIGNsYXNzPSItbTAiPgoJCQkJCQkJPGEgY2xhc3M9InN1Ym1lbnUtaXRlbSBmbGV4LWJveCBmbGV4LWJldHdlZW4gLWJ0IC0tcy01IEpPQk9GRkVSIiBocmVmPSI\/cGF0aD0vZGVtYW5kZXMvZW1wbG9pcy1hdXRvbW9iaWxlLmh0bWwiIHRhcmdldD0iIiBvbmNsaWNrPSIiPgoJCQkJCQkJCTxzcGFuIGNsYXNzPSItcGgiPkNhcnJpw6hyZXM8L3NwYW4+CgkJCQkJCQkJPHNwYW4gcm9sZT0iYnV0dG9uIiB0YWJpbmRleD0iMCIgY2xhc3M9Ii1wIC0tcy01Ij4KCQkJCQkJCQkJCQkJPHN2ZyBjbGFzcz0iaWNvbiI+PHVzZSB4bGluazpocmVmPSIjaWNvbi1jaGV2cm9uLXJpZ2h0Ij48L3VzZT48L3N2Zz4KCQkJCQkJCQk8L3NwYW4+CgkJCQkJCQk8L2E+CgkJCQkJCTwvc3Bhbj4JCQkJCQk8c3BhbiBjbGFzcz0iLW0wIj4KCQkJCQkJCTxhIGNsYXNzPSJzdWJtZW51LWl0ZW0gZmxleC1ib3ggZmxleC1iZXR3ZWVuIC1idCAtLXMtNSAyYzI4NTJkNS1jMGNmLTllMWItNTg1OC1hIiBocmVmPSI\/cGF0aD0vZXF1aXBlLmh0bWwiIHRhcmdldD0iIiBvbmNsaWNrPSIiPgoJCQkJCQkJCTxzcGFuIGNsYXNzPSItcGgiPk5vdHJlIMOJcXVpcGU8L3NwYW4+CgkJCQkJCQkJPHNwYW4gcm9sZT0iYnV0dG9uIiB0YWJpbmRleD0iMCIgY2xhc3M9Ii1wIC0tcy01Ij4KCQkJCQkJCQkJCQkJPHN2ZyBjbGFzcz0iaWNvbiI+PHVzZSB4bGluazpocmVmPSIjaWNvbi1jaGV2cm9uLXJpZ2h0Ij48L3VzZT48L3N2Zz4KCQkJCQkJCQk8L3NwYW4+CgkJCQkJCQk8L2E+CgkJCQkJCTwvc3Bhbj4KCQkJCQkJPC9zdGFjay1sYz4KCQkJCQk8L2Rpdj4KCQkJCTwvbGk+CgoJCQkJCgoJCQkJPC91bD4KCQkJPC9uYXY+CgkJCQk8L2FzaWRlPgoJCQk8L2JveC1sYz4KCgoJCQk8c3RhY2stbGMgY2xhc3M9ImxvZ28tYWN0aW9uIHNocmluay1ncm93IGFsaWduLWNlbnRlciBmbGV4LWV2ZW5seSI+CgkJCQk8YSBjbGFzcz0ibG9nbyIgaHJlZj0iP3BhdGg9LyIgaXRlbXByb3A9InVybCI+CgkJCQkJPGltZyBhbHQ9IkxvZ28iIGNsYXNzPSJsaXZlbG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLXNjb2RlcmVmPSI1MTk3OC1UIiBzcmM9Imh0dHBzOi8vbWF1cmFpc2F1dG8uY29tLy9pbWFnZXMvTG9nb01vYmlsZS9tYXVyYWlzLWF1dG8tbG9nby53ZWJwIiBzdHlsZT0id2lkdGg6IDEwNXB4OyBoZWlnaHQ6IDQ1cHg7IiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+CgkJCQk8L2E+CgkJCQkKCQkJPC9zdGFjay1sYz4KCgkJCTxhIGNsYXNzPSJwaG9uZS1hY3Rpb24iIHRpdGxlPSJDb250YWN0ZXotbm91cyIgZGF0YS1kZXBhcnRtZW50PSJTYWxlcyIgaHJlZj0iamF2YXNjcmlwdDp2b2lkKDApOyIgb25jbGljaz0ic2hvd1Bob25lUG9wdXAoKSI+CgkJCQk8c3ZnIGNsYXNzPSIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld2JveD0iMCAwIDUxMiA1MTIiPjwhLS0gRm9udCBBd2Vzb21lIEZyZWUgNS4xNS4xIGJ5IEBmb250YXdlc29tZSAtIGh0dHBzOi8vZm9udGF3ZXNvbWUuY29tIExpY2Vuc2UgLSBodHRwczovL2ZvbnRhd2Vzb21lLmNvbS9saWNlbnNlL2ZyZWUgKEljb25zOiBDQyBCWSA0LjAsIEZvbnRzOiBTSUwgT0ZMIDEuMSwgQ29kZTogTUlUIExpY2Vuc2UpIC0tPjxwYXRoIGQ9Ik00OTcuMzkgMzYxLjhsLTExMi00OGEyNCAyNCAwIDAgMC0yOCA2LjlsLTQ5LjYgNjAuNkEzNzAuNjYgMzcwLjY2IDAgMCAxIDEzMC42IDIwNC4xMWw2MC42LTQ5LjZhMjMuOTQgMjMuOTQgMCAwIDAgNi45LTI4bC00OC0xMTJBMjQuMTYgMjQuMTYgMCAwIDAgMTIyLjYuNjFsLTEwNCAyNEEyNCAyNCAwIDAgMCAwIDQ4YzAgMjU2LjUgMjA3LjkgNDY0IDQ2NCA0NjRhMjQgMjQgMCAwIDAgMjMuNC0xOC42bDI0LTEwNGEyNC4yOSAyNC4yOSAwIDAgMC0xNC4wMS0yNy42eiI+PC9wYXRoPjwvc3ZnPgoJCQkJCgkJCTwvYT4KCgkJCTwvaGVhZGVyPgkKCQkJCgkJCTxkaXYgaWQ9InByb21vVG9wQnRuIj48IS0tIHNlbV9ib29zdCBvbmx5IC0tPjwvZGl2PgoKCQkJPGRpdiBpZD0icGhvbmVOdW1iZXJEaXYiIGNsYXNzPSJyZXZlYWwtbW9kYWwiIHN0eWxlPSJ3aWR0aDo4MCU7bWFyZ2luLWxlZnQ6MHB4O2xlZnQ6NSU7cGFkZGluZzo1JTt6LWluZGV4OiA5OTk5OTk5O3Zpc2liaWxpdHk6aGlkZGVuO3RvcDogLTEwMDBweDtwb3NpdGlvbjogYWJzb2x1dGU7Ij48L2Rpdj4KCgkJCQoJCQkKCQkJPCEtLSBPTzo6NDU2YzQ3YjYyYzI2YzkyMWVlZmJkNGU4MTU1YmQxMmQgLS0+CgkJCTwhLS1lbmQgdG9wIC0tPgoKCiAgICAgICA8ZGl2IGNsYXNzPSJzZWFyY2hib3giPgogICAgICAgICAgICAgICA8ZGl2IGlkPSJuZXdjYXJDb250YWluZXIiIGNsYXNzPSJkaXZTcGFuIGRpdlNwYW4xMiBNYWluQm94TGF5ZXIiPgogICAgICAgIDwhLS0gSU5JVElBTCBMT0NBVElPTkJBUiAtLT4KICAgICAgICA8ZGl2IGNsYXNzPSJkaXZTcGFuIGRpdlNwYW4xMiBPdXRlckJveExheWVyIj4KICAgICAgICAJPGRpdiBjbGFzcz0iaGVhZGVySW1nIj4KDTwhLS0gVFJBREUgSU4gQkFSIERJU0FCTEVEIC0tPgoNPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBpZD0idW5kZXJCYW5uZXIiPjwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImRpdlNwYW4gZGl2U3BhbjEyIE91dGVyQm94TGF5ZXIiPgogICAgICAgIAk8ZGl2IGNsYXNzPSJkaXZTcGFuIGRpdlNwYW4xMiI+CiAgICAgICAgCQk8ZGl2IGNsYXNzPSJJbm5lckJveExheWVyIj48aDEgY2xhc3M9ImRlZmF1bHQgSDFfMTY5NCAiPjxkaXY+PGRpdj5Gb3JkIG5ldWZzIDIwMjUsIDIwMjYgJmFtcDsgMjAyNyDDoCB2ZW5kcmXCoDwvZGl2PjxkaXY+w6AgQ29hdGljb29rwqA8L2Rpdj48L2Rpdj48L2gxPjwvZGl2PjxkaXYgY2xhc3M9IklubmVyQm94TGF5ZXIiPjwvZGl2PgkJCQkJPCEtLSBPUEVOIE1PQklMRSBGSUxURVIgQlVUVE9OICgnLl9fTElORV9fLicpLS0+Cgk8ZGl2IGNsYXNzPSJmaWx0ZXJUb2dnbGVXcmFwcGVyIj4KCQk8YnV0dG9uIGlkPSJ0b2dnbGVGaWx0ZXJCdG4iIGNsYXNzPSJmaWx0ZXJUb2dnbGVCdG4iPkZpbHRyZXI8L2J1dHRvbj4KCTwvZGl2PgoJPCEtLSBDTE9TRSBNT0JJTEUgRklMVEVSIEJVVFRPTiAoJy5fX0xJTkVfXy4nKS0tPgoJCQkJPGRpdiBpZD0ic2lkZVNpZGViYXJGaWx0ZXIiIGNsYXNzPSJzaWRlU2lkZWJhciI+CgkJCQkJPGRpdiBjbGFzcz0ic2lkZWJhckhlYWRlciI+CgkJCQkJCTxkaXYgY2xhc3M9ImRpdlNwYW4gZGl2U3BhbjEyIGRpdkZpbHRlckJveFRpdGxlIj4KCQkJCQkJCVJhZmZpbmV6IHZvdHJlIHJlY2hlcmNoZSA6CgkJCQkJCTwvZGl2PgoJCQkJCQk8YnV0dG9uIGlkPSJjbG9zZVNpZGViYXJCdG4iIGNsYXNzPSJjbG9zZUJ0biI+w5c8L2J1dHRvbj4KCQkJCQk8L2Rpdj4KCQkJCQk8ZGl2IGlkPSJmaWx0ZXJDb250ZW50Ij4KCQkJCQkJPGRpdiBpZD0iZmlsdGVyTWFpbkJveCIgY2xhc3M9IklubmVyQm94TGF5ZXIgYmxhY2stdGV4dCI+CgkJCQkJCQk8ZGl2IGNsYXNzPSJkaXZTcGFuIGRpdlNwYW4xMiI+CgkJCQkJCQkJPGRpdiBjbGFzcz0iZGl2U3BhbiBkaXZTcGFuMTIgZGl2RmlsdGVyT3V0ZXJCb3giPgoJCQkJCQkJCQk8ZGl2IGNsYXNzPSJkaXZTcGFuIGRpdlNwYW4xMiI+CgkJCQkJCQkJCQk8ZGl2IGNsYXNzPSJkaXZTcGFuIGRpdlNwYW4xMiI+CgkJCQkJCQkJCQkJPGRpdiBjbGFzcz0iZGl2U3BhbiBkaXZTcGFuMTIiPjxkaXYgY2xhc3M9ImRpdkZpbHRlclRpdGxlIj5UeXBlIGRlIGNhcnJvc3NlcmllPC9kaXY+PHVsIGNsYXNzPSIiPjxsaSBjbGFzcz0iIj48aW5wdXQgY2xhc3M9ImZpbHRlckNoZWNrIGNhdGVnb3J5IiBpZD0ic2hvd0NsYXNzX2NhciIgdHlwZT0iY2hlY2tib3giIHZhbHVlPSJjYXIiIGNoZWNrZWQ+PGxhYmVsIGNsYXNzPSJmaWx0ZXJTcGFuIGNhdGVnb3J5IiBmb3I9InNob3dDbGFzc19jYXIiPkF1dG88L2xhYmVsPjwvbGk+PGxpIGNsYXNzPSIiPjxpbnB1dCBjbGFzcz0iZmlsdGVyQ2hlY2sgY2F0ZWdvcnkiIGlkPSJzaG93Q2xhc3NfdHJ1Y2siIHR5cGU9ImNoZWNrYm94IiB2YWx1ZT0idHJ1Y2siIGNoZWNrZWQ+PGxhYmVsIGNsYXNzPSJmaWx0ZXJTcGFuIGNhdGVnb3J5IiBmb3I9InNob3dDbGFzc190cnVjayI+Q2FtaW9uPC9sYWJlbD48L2xpPjxsaSBjbGFzcz0iIj48aW5wdXQgY2xhc3M9ImZpbHRlckNoZWNrIGNhdGVnb3J5IiBpZD0ic2hvd0NsYXNzX2NvbW1lcmNpYWwiIHR5cGU9ImNoZWNrYm94IiB2YWx1ZT0iY29tbWVyY2lhbCIgY2hlY2tlZD48bGFiZWwgY2xhc3M9ImZpbHRlclNwYW4gY2F0ZWdvcnkiIGZvcj0ic2hvd0NsYXNzX2NvbW1lcmNpYWwiPkNvbW1lcmNpYWw8L2xhYmVsPjwvbGk+PGxpIGNsYXNzPSIiPjxpbnB1dCBjbGFzcz0iZmlsdGVyQ2hlY2sgY2F0ZWdvcnkiIGlkPSJzaG93Q2xhc3NfY29udmVydGlibGUiIHR5cGU9ImNoZWNrYm94IiB2YWx1ZT0iY29udmVydGlibGUiIGNoZWNrZWQ+PGxhYmVsIGNsYXNzPSJmaWx0ZXJTcGFuIGNhdGVnb3J5IiBmb3I9InNob3dDbGFzc19jb252ZXJ0aWJsZSI+RMOpY2Fwb3RhYmxlPC9sYWJlbD48L2xpPjxsaSBjbGFzcz0iIj48aW5wdXQgY2xhc3M9ImZpbHRlckNoZWNrIGNhdGVnb3J5IiBpZD0ic2hvd0NsYXNzX3N1diIgdHlwZT0iY2hlY2tib3giIHZhbHVlPSJzdXYiIGNoZWNrZWQ+PGxhYmVsIGNsYXNzPSJmaWx0ZXJTcGFuIGNhdGVnb3J5IiBmb3I9InNob3dDbGFzc19zdXYiPlZVUzwvbGFiZWw+PC9saT48L3VsPjwvZGl2PjxkaXYgY2xhc3M9ImRpdlNwYW4gZGl2U3BhbjEyIj48L2Rpdj48ZGl2IGNsYXNzPSJkaXZTcGFuIGRpdlNwYW4xMiI+PGRpdiBjbGFzcz0iZGl2RmlsdGVyVGl0bGUiPk1vdHJpY2l0w6k8L2Rpdj48dWwgY2xhc3M9IiI+PGxpIGNsYXNzPSIiPjxpbnB1dCBpZD0iZmlsdGVyRHJpdmVUcmFpbkNoZWNrMyIgY2xhc3M9ImZpbHRlckNoZWNrIGRyaXZldHJhaW4iIHR5cGU9ImNoZWNrYm94IiB2YWx1ZT0iMyIgZGF0YS1kcml2ZXRyYWluPSJBV0QiIGNoZWNrZWQ+PGxhYmVsIGZvcj0iZmlsdGVyRHJpdmVUcmFpbkNoZWNrMyIgY2xhc3M9ImZpbHRlclNwYW4iPlF1YXRyZSByb3VlcyBtb3RyaWNlczwvbGFiZWw+PC9saT48bGkgY2xhc3M9IiI+PGlucHV0IGlkPSJmaWx0ZXJEcml2ZVRyYWluQ2hlY2sxIiBjbGFzcz0iZmlsdGVyQ2hlY2sgZHJpdmV0cmFpbiIgdHlwZT0iY2hlY2tib3giIHZhbHVlPSIxIiBkYXRhLWRyaXZldHJhaW49IkZXRCIgY2hlY2tlZD48bGFiZWwgZm9yPSJmaWx0ZXJEcml2ZVRyYWluQ2hlY2sxIiBjbGFzcz0iZmlsdGVyU3BhbiI+VHJhY3Rpb24gYXZhbnQ8L2xhYmVsPjwvbGk+PGxpIGNsYXNzPSIiPjxpbnB1dCBpZD0iZmlsdGVyRHJpdmVUcmFpbkNoZWNrMiIgY2xhc3M9ImZpbHRlckNoZWNrIGRyaXZldHJhaW4iIHR5cGU9ImNoZWNrYm94IiB2YWx1ZT0iMiIgZGF0YS1kcml2ZXRyYWluPSJSV0QiIGNoZWNrZWQ+PGxhYmVsIGZvcj0iZmlsdGVyRHJpdmVUcmFpbkNoZWNrMiIgY2xhc3M9ImZpbHRlclNwYW4iPlByb3B1bHNpb24gYXJyacOocmU8L2xhYmVsPjwvbGk+PC91bD48L2Rpdj48ZGl2IGNsYXNzPSJkaXZTcGFuIGRpdlNwYW4xMiI+PGRpdiBjbGFzcz0iZGl2RmlsdGVyVGl0bGUiPlR5cGUgZGUgY2FyYnVyYW50PC9kaXY+PHVsIGNsYXNzPSIiPgk8bGkgY2xhc3M9IiI+CgkJPGlucHV0IGRhdGEtZXNzZW5jZT0iZGllc2VsIiBjbGFzcz0iZmlsdGVyQ2hlY2sgZnVlbHR5cGUiIGlkPSJmaWx0ZXJFc3NlbmNlQ2hlY2syIiB0eXBlPSJjaGVja2JveCIgdmFsdWU9IjIiIGNoZWNrZWQ+CgkJPGxhYmVsIGZvcj0iZmlsdGVyRXNzZW5jZUNoZWNrMiIgY2xhc3M9ImZpbHRlclNwYW4iPgoJCQlEaWVzZWwKCQk8L2xhYmVsPgoJPC9saT4JPGxpIGNsYXNzPSIiPgoJCTxpbnB1dCBkYXRhLWVzc2VuY2U9ImVsZWN0cmljIiBjbGFzcz0iZmlsdGVyQ2hlY2sgZnVlbHR5cGUiIGlkPSJmaWx0ZXJFc3NlbmNlQ2hlY2szIiB0eXBlPSJjaGVja2JveCIgdmFsdWU9IjMiIGNoZWNrZWQ+CgkJPGxhYmVsIGZvcj0iZmlsdGVyRXNzZW5jZUNoZWNrMyIgY2xhc3M9ImZpbHRlclNwYW4iPgoJCQnDiWxlY3RyaXF1ZQoJCTwvbGFiZWw+Cgk8L2xpPgk8bGkgY2xhc3M9IiI+CgkJPGlucHV0IGRhdGEtZXNzZW5jZT0iZ2FzIiBjbGFzcz0iZmlsdGVyQ2hlY2sgZnVlbHR5cGUiIGlkPSJmaWx0ZXJFc3NlbmNlQ2hlY2sxIiB0eXBlPSJjaGVja2JveCIgdmFsdWU9IjEiIGNoZWNrZWQ+CgkJPGxhYmVsIGZvcj0iZmlsdGVyRXNzZW5jZUNoZWNrMSIgY2xhc3M9ImZpbHRlclNwYW4iPgoJCQlFc3NlbmNlCgkJPC9sYWJlbD4KCTwvbGk+CTxsaSBjbGFzcz0iIj4KCQk8aW5wdXQgZGF0YS1lc3NlbmNlPSJoeWJyaWQiIGNsYXNzPSJmaWx0ZXJDaGVjayBmdWVsdHlwZSIgaWQ9ImZpbHRlckVzc2VuY2VDaGVjazQiIHR5cGU9ImNoZWNrYm94IiB2YWx1ZT0iNCIgY2hlY2tlZD4KCQk8bGFiZWwgZm9yPSJmaWx0ZXJFc3NlbmNlQ2hlY2s0IiBjbGFzcz0iZmlsdGVyU3BhbiI+CgkJCUh5YnJpZGUKCQk8L2xhYmVsPgoJPC9saT4JPGxpIGNsYXNzPSIiPgoJCTxpbnB1dCBkYXRhLWVzc2VuY2U9InBoZXYiIGNsYXNzPSJmaWx0ZXJDaGVjayBmdWVsdHlwZSIgaWQ9ImZpbHRlckVzc2VuY2VDaGVjazUiIHR5cGU9ImNoZWNrYm94IiB2YWx1ZT0iNSIgY2hlY2tlZD4KCQk8bGFiZWwgZm9yPSJmaWx0ZXJFc3NlbmNlQ2hlY2s1IiBjbGFzcz0iZmlsdGVyU3BhbiI+CgkJCUh5YnJpZGUgcmVjaGFyZ2VhYmxlCgkJPC9sYWJlbD4KCTwvbGk+PC91bD48L2Rpdj48ZGl2IGNsYXNzPSJkaXZTcGFuIGRpdlNwYW4xMiI+PGRpdiBjbGFzcz0iZGl2RmlsdGVyVGl0bGUiPlRyaWVyIHBhcjwvZGl2Pjx1bCBjbGFzcz0iIj48bGkgY2xhc3M9IiI+PGlucHV0IGlkPSJyYWRpb01vZGxlIiBjbGFzcz0icmFkaW9Tb3J0IiB0eXBlPSJyYWRpbyIgbmFtZT0ic29ydGJ5IiB2YWx1ZT0ibW9kZWwiIGNoZWNrZWQ+PGxhYmVsIGNsYXNzPSJmaWx0ZXJTcGFuIiBmb3I9InJhZGlvTW9kbGUiPk1vZMOobGU8bGkgY2xhc3M9IiI+PGlucHV0IGlkPSJyYWRpb1ByaWNlIiBjbGFzcz0icmFkaW9Tb3J0IiB0eXBlPSJyYWRpbyIgbmFtZT0ic29ydGJ5IiB2YWx1ZT0icHJpY2UiPjxsYWJlbCBjbGFzcz0iZmlsdGVyU3BhbiIgZm9yPSJyYWRpb1ByaWNlIj5Qcml4PC9sYWJlbD48L2xpPjxsaSBjbGFzcz0iIj48aW5wdXQgaWQ9InJhZGlvQ29uc28iIGNsYXNzPSJyYWRpb1NvcnQiIHR5cGU9InJhZGlvIiBuYW1lPSJzb3J0YnkiIHZhbHVlPSJjb25zbyI+PGxhYmVsIGNsYXNzPSJmaWx0ZXJTcGFuIiBmb3I9InJhZGlvQ29uc28iPkwvMTAwa208L2xhYmVsPjwvbGk+PC9sYWJlbD48L2xpPjwvdWw+PC9kaXY+CQkJCQkKCQkJCQkJCQkJCTwvZGl2PgoJCQkJCQkJCQkJPGRpdiBjbGFzcz0iZGl2U3BhbiBkaXZTcGFuMTIiPgoJCQkJCQkJCQkJCQkJCQk8ZGl2IGNsYXNzPSJkaXZTcGFuIGRpdlNwYW4xMiBkaXZQcmljZVJhbmdlU2xpZGVyIiBpZD0icHJpY2VSYW5nZVNsaWRlckZpbHRlckNvbnRhaW5lciI+CgkJCQkJPGRpdiBjbGFzcz0iZGl2U3BhbiBkaXZTcGFuMTIgZGl2RmlsdGVyVGl0bGUiPgoJCQkJCQlGb3VyY2hldHRlIGRlIHByaXgKCQkJCQk8L2Rpdj4KCQkJCQk8ZGl2IGNsYXNzPSJkaXZTcGFuIGRpdlNwYW4xMiByYW5nZS1zbGlkZXItcHJpY2VzIj4KCQkJCQkJPHNwYW4gY2xhc3M9InByaWNlLW1pbiBmb3JtYXQtcHJpY2UiPjwvc3Bhbj7CoMKgw6DCoMKgPHNwYW4gY2xhc3M9InByaWNlLW1heCBmb3JtYXQtcHJpY2UiPjwvc3Bhbj4KCQkJCQk8L2Rpdj4KCQkJCQk8ZGl2IGNsYXNzPSJkaXZTcGFuIGRpdlNwYW4xMiI+CgkJCQkJCTxkaXYgY2xhc3M9ImRpdlNwYW4gZGl2U3BhbjEgcmFuZ2Utc2xpZGVyLWxlZnQiPk1pbjwvZGl2PgoJCQkJCQk8ZGl2IGNsYXNzPSJkaXZTcGFuIGRpdlNwYW45IHJhbmdlLXNsaWRlciIgYXR0ci1wcmljZS1taW49IjM1MjQ0IiBhdHRyLXByaWNlLW1heD0iODkyODAiPjwvZGl2PgoJCQkJCQk8ZGl2IGNsYXNzPSJkaXZTcGFuIGRpdlNwYW4xIHJhbmdlLXNsaWRlci1yaWdodCI+TWF4PC9kaXY+CgkJCQkJPC9kaXY+CgkJCQk8L2Rpdj4KCQkJCQkJCQkJCTwvZGl2PgoJCQkJCQkJCQk8L2Rpdj4KCQkJCQkJCQk8L2Rpdj4KCQkJCQkJCTwvZGl2PgoJCQkJCQk8L2Rpdj4KCQkJCQk8L2Rpdj4KCQkJCTwvZGl2PjwhLS0gT1BFTiBDQVRFR09SSUVTQk9YV1JBUFBFUiAoMTk4OCktLT48ZGl2IGNsYXNzPSJJbm5lckJveExheWVyIGRpdkNhdGVnb3JpZXNCb3hXcmFwcGVyIj48IS0tIE9QRU4gQ0FURUdPUllCT1hXUkFQUEVSICgyMDUyKSAtLT48ZGl2IGlkPSJjbGFzc2Nhcl9jb250YWluZXIiIGNsYXNzPSJkaXZTcGFuIGRpdlNwYW4xMiBkaXZDYXRlZ29yeUJveFdyYXBwZXIiIHN0YXRlPSJvcGVuIiBuYnZpc2libGU9IjEiPjxoMiBjbGFzcz0iZGVmYXVsdCBpY29uLWhlYWRpbmcgZmxleC1ib3ggYWxpZ24tY2VudGVyIj4KCTxzcGFuIGNsYXNzPSJmYSBmYS1jaGV2cm9uLXJpZ2h0IiBhcmlhLWhpZGRlbj0idHJ1ZSI+PC9zcGFuPgoJPGJveC1sYyBjbGFzcz0iLXB2MCI+CgkJPGRpdiBjbGFzcz0ibWFpblRleHQgLWJvbGQiPkF1dG9zIG5ldXZlcyBGb3JkIDIwMjUgJmFtcDsgMjAyNjwvZGl2PgoJCTxkaXYgY2xhc3M9InNlY29uZGFyeVRleHQiPsOgIENvYXRpY29vazwvZGl2PgoJPC9ib3gtbGM+CjwvaDI+PGRpdiBjbGFzcz0iZGl2U3BhbiBkaXZTcGFuMTIgZGl2Q2Fyc0JveFdyYXBwZXIgQ0xBU1NfY2FyIj4JPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggIHJlYmF0ZUJvcmRlckNvbG9yIiBpZD0iZmJ4X2Nhcl8xIj4KCQkKCQk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVJbm5lckJveCIgaWQ9IiI+CgkJCQoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJUaXRsZUNvbnRhaW5lciI+CgkJCQk8YSB0aXRsZT0iRm9yZCBNdXN0YW5nIDIwMjYiIGhyZWY9Ij9wYXRoPS9uZXVmcy9Gb3JkLU11c3RhbmctMjAyNi5odG1sIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9Ik11c3RhbmcgMjAyNiI+CgkJCQkJPGgzPgoJCQkJCQk8c3BhbiBjbGFzcz0ic3BhbkNhck1ha2UgIj5Gb3JkPC9zcGFuPjxicj4KCQkJCQkJPHNwYW4gY2xhc3M9Im1vZGVsTmFtZSBzcGFuTW9kZWxOYW1lIj5NdXN0YW5nIDIwMjY8L3NwYW4+CgkJCQkJPC9oMz4KCQkJCTwvYT4KCQkJCSAgICA8IS0tIE9QRU4gTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KICAgIDxkaXYgY2xhc3M9ImRpdk5ld0NhclN0YXJ0UHJpY2UiPgogICAgICAgIMOgIHBhcnRpciBkZQogICAgICAgIDxzcGFuIGNsYXNzPSIiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj40MSAzMjU8L3NwYW4+PC9zcGFuPgogICAgICAgIDxpIHN0eWxlPSJjb2xvcjojMDAwO2ZvbnQtc2l6ZToyMHB4OyIgY2xhc3M9ImNhclByaWNlSW5pdGlhbFRvb2xUaXBJY29uIGZhbCBmYS1pbmZvLWNpcmNsZSBibGFja0NvbG9yQm9sZCIgZGF0YS10b29sdGlwPScmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1BEU0Y6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzM4IDkzMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RyYW5zcG9ydCAmYW1wOyBQcsOpcGFyYXRpb246Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzIgMjk1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VGF4ZSBBQzombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MTAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VG90YWwmbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7NDEgMzI1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0Oyc+PC9pPgogICAgPC9kaXY+CiAgICA8IS0tIENMT1NFIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CgkJCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW5TdG9ja0xpbmsiIGhpZGRlbj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgZGF0YS10eXBlPSJpbnZkYXRhIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9Ik11c3RhbmciIGRhdGEteWVhcj0iMjAyNiIgZGF0YS1zdHlsZWlkcz0iNDc5NTM2LDQ3OTUzNyw0Nzk1MzgsNDc5NTM5LDQ3OTU0MCIgZGF0YS1oeWJyaWQ9IjAiPgoJPC9kaXY+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJbWFnZUNvbnRhaW5lciBmbGV4LWNlbnRlciBhbGlnbi1jZW50ZXIgIj4KCQkJCTxhIHRpdGxlPSJGb3JkIE11c3RhbmcgMjAyNiIgaHJlZj0iP3BhdGg9L25ldWZzL0ZvcmQtTXVzdGFuZy0yMDI2Lmh0bWwiPgoJCQkJCTxpbWcgYWx0PSJGb3JkIE11c3RhbmcgMjAyNiIgYm9yZGVyPSIwIiBjbGFzcz0ibGl2ZWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9mci9Gb3JkL011c3RhbmcvMjAyNi80Nzk1MzYvV2hpdGUvcHJvZmlsZS53ZWJwIiBzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9mci9Gb3JkL011c3RhbmcvMjAyNi80Nzk1MzYvV2hpdGUvcHJvZmlsZS53ZWJwIiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+CgkJCQk8L2E+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJGb290ZXJDb250YWluZXIgc3RhY2stbGMgLS1zLTkiPgoJCQkJCTxkaXYgY2xhc3M9ImNhclBheW1lbnRXcmFwcGVyIj4KCQkJPGRpdiBjbGFzcz0iY29udGVudC1za2VsZXRvbiBodG1sLWJsb2NrIiBkYXRhLWJsb2NrPSJwYXltZW50QmxvY2siIGRhdGEtdHlwZT0iYmxvY2siIGRhdGEtc291cmNlPSJzZXJ2ZXIiIGRhdGEtY2FsbGJhY2s9InBheW1lbnRDYWxjQmxvY2siPgoJCQoJPGlucHV0IG5hbWU9ImJsb2NrLWRhdGEiIHR5cGU9ImhpZGRlbiIgdmFsdWU9J3sic3R5bGVpZCI6IjQ3OTUzNiIsInRpdGxlIjoiRm9yZCBNdXN0YW5nIDIwMjYiLCJocmVmIjoiXC9uZXVmc1wvRm9yZC1NdXN0YW5nLTIwMjYuaHRtbCIsImxpbmtzdHlsZSI6IiIsImxpbmtjbGFzcyI6IiIsImNvbnRhaW5lcmNsYXNzIjoiIiwicHJvbW90ZXh0IjoiT2ZmcmUgYWRkaXRpb25uZWxsZSEifSc+Cgk8L2Rpdj4KCTwvZGl2PgoJCQkJCgkJCTwvZGl2PgoJCTwvZGl2PgoJPC9kaXY+CTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZU91dGVyQm94ICByZWJhdGVCb3JkZXJDb2xvciIgaWQ9ImZieF9jYXJfMiI+CgkJPGRpdiBjbGFzcz0icmViYXRlVGFnIj48c3BhbiBjbGFzcz0icmViYXRlVGV4dCI+cmFiYWlzIGp1c3F1J8OgPC9zcGFuPjxzcGFuIGNsYXNzPSJyZWJhdGVBbW91bnQiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj41IDAwMDwvc3Bhbj48L3NwYW4+PC9kaXY+CgkJPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlSW5uZXJCb3giIGlkPSIiPgoJCQkKCQkJPGRpdiBjbGFzcz0iZGl2Q2FyVGl0bGVDb250YWluZXIiPgoJCQkJPGEgdGl0bGU9IkZvcmQgTXVzdGFuZyAyMDI1IiBocmVmPSI\/cGF0aD0vbmV1ZnMvRm9yZC1NdXN0YW5nLTIwMjUuaHRtbCIgZGF0YS1tYWtlPSJGb3JkIiBkYXRhLW1vZGVsPSJNdXN0YW5nIDIwMjUiPgoJCQkJCTxoMz4KCQkJCQkJPHNwYW4gY2xhc3M9InNwYW5DYXJNYWtlICI+Rm9yZDwvc3Bhbj48YnI+CgkJCQkJCTxzcGFuIGNsYXNzPSJtb2RlbE5hbWUgc3Bhbk1vZGVsTmFtZSI+TXVzdGFuZyAyMDI1PC9zcGFuPgoJCQkJCTwvaDM+CgkJCQk8L2E+CgkJCQkgICAgPCEtLSBPUEVOIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CiAgICA8ZGl2IGNsYXNzPSJkaXZOZXdDYXJTdGFydFByaWNlIj4KICAgICAgICDDoCBwYXJ0aXIgZGUKICAgICAgICA8c3BhbiBjbGFzcz0ic3RyaWtlLXByaWNlIj4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+NDEgMzI1PC9zcGFuPjwvc3Bhbj4KICAgICAgICA8aSBzdHlsZT0iY29sb3I6IzAwMDtmb250LXNpemU6MjBweDsiIGNsYXNzPSJjYXJQcmljZUluaXRpYWxUb29sVGlwSWNvbiBmYWwgZmEtaW5mby1jaXJjbGUgYmxhY2tDb2xvckJvbGQiIGRhdGEtdG9vbHRpcD0nJmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtQRFNGOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDszOCA5MzAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUcmFuc3BvcnQgJmFtcDsgUHLDqXBhcmF0aW9uOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsyIDI5NSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RheGUgQUM6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzEwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RvdGFsJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzQxIDMyNSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsnPjwvaT4KICAgIDwvZGl2PgogICAgPCEtLSBDTE9TRSBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPjwhLS0gT1BFTiBORVcgQ0FSIFBST01PIFBSSUNFICgyNzQpLS0+PGRpdiBjbGFzcz0iZGl2TmV3Q2FyUHJvbW9QcmljZSI+ZW4gcmFiYWlzIMOgIDxzcGFuIGNsYXNzPSIiIHN0eWxlPSJjb2xvcjogIzAyNzZiMzsiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj4zNiAzMjU8L3NwYW4+PC9zcGFuPjwvZGl2PjwhLS0gQ0xPU0UgTkVXIENBUiBQUk9NTyBQUklDRSAoMjgxKS0tPgoJCQkJCTxkaXYgY2xhc3M9ImRpdkNhckluU3RvY2tMaW5rIiBoaWRkZW4+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGRhdGEtdHlwZT0iaW52ZGF0YSIgZGF0YS1tYWtlPSJGb3JkIiBkYXRhLW1vZGVsPSJNdXN0YW5nIiBkYXRhLXllYXI9IjIwMjUiIGRhdGEtc3R5bGVpZHM9IjQ2MTk0NCw0NjE5NDUsNDYxOTQ2LDQ2MTk0Nyw0NjE5NDgiIGRhdGEtaHlicmlkPSIwIj4KCTwvZGl2PgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW1hZ2VDb250YWluZXIgZmxleC1jZW50ZXIgYWxpZ24tY2VudGVyICI+CgkJCQk8YSB0aXRsZT0iRm9yZCBNdXN0YW5nIDIwMjUiIGhyZWY9Ij9wYXRoPS9uZXVmcy9Gb3JkLU11c3RhbmctMjAyNS5odG1sIj4KCQkJCQk8aW1nIGFsdD0iRm9yZCBNdXN0YW5nIDIwMjUiIGJvcmRlcj0iMCIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvZnIvRm9yZC9NdXN0YW5nLzIwMjUvNDYxOTQ0L1doaXRlL3Byb2ZpbGUud2VicCIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPgoJCQkJPC9hPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyRm9vdGVyQ29udGFpbmVyIHN0YWNrLWxjIC0tcy05Ij4KCQkJCQk8ZGl2IGNsYXNzPSJjYXJQYXltZW50V3JhcHBlciI+CgkJCTxkaXYgY2xhc3M9ImNvbnRlbnQtc2tlbGV0b24gaHRtbC1ibG9jayIgZGF0YS1ibG9jaz0icGF5bWVudEJsb2NrIiBkYXRhLXR5cGU9ImJsb2NrIiBkYXRhLXNvdXJjZT0ic2VydmVyIiBkYXRhLWNhbGxiYWNrPSJwYXltZW50Q2FsY0Jsb2NrIj4KCQkKCTxpbnB1dCBuYW1lPSJibG9jay1kYXRhIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSd7InN0eWxlaWQiOiI0NjE5NDQiLCJ0aXRsZSI6IkZvcmQgTXVzdGFuZyAyMDI1IiwiaHJlZiI6IlwvbmV1ZnNcL0ZvcmQtTXVzdGFuZy0yMDI1Lmh0bWwiLCJsaW5rc3R5bGUiOiIiLCJsaW5rY2xhc3MiOiIiLCJjb250YWluZXJjbGFzcyI6IiIsInByb21vdGV4dCI6Ik9mZnJlIGFkZGl0aW9ubmVsbGUhIn0nPgoJPC9kaXY+Cgk8L2Rpdj4KCQkJCQoJCQk8L2Rpdj4KCQk8L2Rpdj4KCTwvZGl2PjwvZGl2PjwvZGl2PjwhLS0gQ0xPU0UgQ0FURUdPUllCT1hXUkFQUEVSICgyMDYwKS0tPjwhLS0gT1BFTiBDQVRFR09SWUJPWFdSQVBQRVIgKDIwNTIpIC0tPjxkaXYgaWQ9ImNsYXNzY29udmVydGlibGVfY29udGFpbmVyIiBjbGFzcz0iZGl2U3BhbiBkaXZTcGFuMTIgZGl2Q2F0ZWdvcnlCb3hXcmFwcGVyIiBzdGF0ZT0ib3BlbiIgbmJ2aXNpYmxlPSIxIj48aDIgY2xhc3M9ImRlZmF1bHQgaWNvbi1oZWFkaW5nIGZsZXgtYm94IGFsaWduLWNlbnRlciI+Cgk8c3BhbiBjbGFzcz0iZmEgZmEtY2hldnJvbi1yaWdodCIgYXJpYS1oaWRkZW49InRydWUiPjwvc3Bhbj4KCTxib3gtbGMgY2xhc3M9Ii1wdjAiPgoJCTxkaXYgY2xhc3M9Im1haW5UZXh0IC1ib2xkIj5Ew6ljYXBvdGFibGVzIG5ldXZlcyBGb3JkIDIwMjUgJmFtcDsgMjAyNjwvZGl2PgoJCTxkaXYgY2xhc3M9InNlY29uZGFyeVRleHQiPsOgIENvYXRpY29vazwvZGl2PgoJPC9ib3gtbGM+CjwvaDI+PGRpdiBjbGFzcz0iZGl2U3BhbiBkaXZTcGFuMTIgZGl2Q2Fyc0JveFdyYXBwZXIgQ0xBU1NfY29udmVydGlibGUiPgk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVPdXRlckJveCAgcmViYXRlQm9yZGVyQ29sb3IiIGlkPSJmYnhfY29udmVydGlibGVfMSI+CgkJCgkJPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlSW5uZXJCb3giIGlkPSIiPgoJCQkKCQkJPGRpdiBjbGFzcz0iZGl2Q2FyVGl0bGVDb250YWluZXIiPgoJCQkJPGEgdGl0bGU9IkZvcmQgTXVzdGFuZyBDb252ZXJ0aWJsZSAyMDI2IiBocmVmPSI\/cGF0aD0vbmV1ZnMvRm9yZC1NdXN0YW5nX0NvbnZlcnRpYmxlLTIwMjYuaHRtbCIgZGF0YS1tYWtlPSJGb3JkIiBkYXRhLW1vZGVsPSJNdXN0YW5nIETDqWNhcG90YWJsZSAyMDI2Ij4KCQkJCQk8aDM+CgkJCQkJCTxzcGFuIGNsYXNzPSJzcGFuQ2FyTWFrZSAiPkZvcmQ8L3NwYW4+PGJyPgoJCQkJCQk8c3BhbiBjbGFzcz0ibW9kZWxOYW1lIHNwYW5Nb2RlbE5hbWUiPk11c3RhbmcgQ29udmVydGlibGUgMjAyNjwvc3Bhbj4KCQkJCQk8L2gzPgoJCQkJPC9hPgoJCQkJICAgIDwhLS0gT1BFTiBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgogICAgPGRpdiBjbGFzcz0iZGl2TmV3Q2FyU3RhcnRQcmljZSI+CiAgICAgICAgw6AgcGFydGlyIGRlCiAgICAgICAgPHNwYW4gY2xhc3M9IiI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjQ4IDIyNTwvc3Bhbj48L3NwYW4+CiAgICAgICAgPGkgc3R5bGU9ImNvbG9yOiMwMDA7Zm9udC1zaXplOjIwcHg7IiBjbGFzcz0iY2FyUHJpY2VJbml0aWFsVG9vbFRpcEljb24gZmFsIGZhLWluZm8tY2lyY2xlIGJsYWNrQ29sb3JCb2xkIiBkYXRhLXRvb2x0aXA9JyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7UERTRjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7NDUgODMwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VHJhbnNwb3J0ICZhbXA7IFByw6lwYXJhdGlvbjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MiAyOTUmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUYXhlIEFDOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsxMDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUb3RhbCZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDs0OCAyMjUmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jz48L2k+CiAgICA8L2Rpdj4KICAgIDwhLS0gQ0xPU0UgTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KCQkJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJblN0b2NrTGluayIgaGlkZGVuPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBkYXRhLXR5cGU9ImludmRhdGEiIGRhdGEtbWFrZT0iRm9yZCIgZGF0YS1tb2RlbD0iTXVzdGFuZyBDb252ZXJ0aWJsZSIgZGF0YS15ZWFyPSIyMDI2IiBkYXRhLXN0eWxlaWRzPSI0Nzk1NDEsNDc5NTQyLDQ3OTU0MyIgZGF0YS1oeWJyaWQ9IjAiPgoJPC9kaXY+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJbWFnZUNvbnRhaW5lciBmbGV4LWNlbnRlciBhbGlnbi1jZW50ZXIgIj4KCQkJCTxhIHRpdGxlPSJGb3JkIE11c3RhbmcgQ29udmVydGlibGUgMjAyNiIgaHJlZj0iP3BhdGg9L25ldWZzL0ZvcmQtTXVzdGFuZ19Db252ZXJ0aWJsZS0yMDI2Lmh0bWwiPgoJCQkJCTxpbWcgYWx0PSJGb3JkIE11c3RhbmcgQ29udmVydGlibGUgMjAyNiIgYm9yZGVyPSIwIiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9mci9Gb3JkL011c3RhbmdfQ29udmVydGlibGUvMjAyNi80Nzk1NDEvV2hpdGUvcHJvZmlsZS53ZWJwIiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+CgkJCQk8L2E+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJGb290ZXJDb250YWluZXIgc3RhY2stbGMgLS1zLTkiPgoJCQkJCTxkaXYgY2xhc3M9ImNhclBheW1lbnRXcmFwcGVyIj4KCQkJPGRpdiBjbGFzcz0iY29udGVudC1za2VsZXRvbiBodG1sLWJsb2NrIiBkYXRhLWJsb2NrPSJwYXltZW50QmxvY2siIGRhdGEtdHlwZT0iYmxvY2siIGRhdGEtc291cmNlPSJzZXJ2ZXIiIGRhdGEtY2FsbGJhY2s9InBheW1lbnRDYWxjQmxvY2siPgoJCQoJPGlucHV0IG5hbWU9ImJsb2NrLWRhdGEiIHR5cGU9ImhpZGRlbiIgdmFsdWU9J3sic3R5bGVpZCI6IjQ3OTU0MSIsInRpdGxlIjoiRm9yZCBNdXN0YW5nIENvbnZlcnRpYmxlIDIwMjYiLCJocmVmIjoiXC9uZXVmc1wvRm9yZC1NdXN0YW5nX0NvbnZlcnRpYmxlLTIwMjYuaHRtbCIsImxpbmtzdHlsZSI6IiIsImxpbmtjbGFzcyI6IiIsImNvbnRhaW5lcmNsYXNzIjoiIiwicHJvbW90ZXh0IjoiT2ZmcmUgYWRkaXRpb25uZWxsZSEifSc+Cgk8L2Rpdj4KCTwvZGl2PgoJCQkJCgkJCTwvZGl2PgoJCTwvZGl2PgoJPC9kaXY+CTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZU91dGVyQm94ICByZWJhdGVCb3JkZXJDb2xvciIgaWQ9ImZieF9jb252ZXJ0aWJsZV8yIj4KCQk8ZGl2IGNsYXNzPSJyZWJhdGVUYWciPjxzcGFuIGNsYXNzPSJyZWJhdGVUZXh0Ij5yYWJhaXMganVzcXUnw6A8L3NwYW4+PHNwYW4gY2xhc3M9InJlYmF0ZUFtb3VudCI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjUgMDAwPC9zcGFuPjwvc3Bhbj48L2Rpdj4KCQk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVJbm5lckJveCIgaWQ9IiI+CgkJCQoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJUaXRsZUNvbnRhaW5lciI+CgkJCQk8YSB0aXRsZT0iRm9yZCBNdXN0YW5nIENvbnZlcnRpYmxlIDIwMjUiIGhyZWY9Ij9wYXRoPS9uZXVmcy9Gb3JkLU11c3RhbmdfQ29udmVydGlibGUtMjAyNS5odG1sIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9Ik11c3RhbmcgRMOpY2Fwb3RhYmxlIDIwMjUiPgoJCQkJCTxoMz4KCQkJCQkJPHNwYW4gY2xhc3M9InNwYW5DYXJNYWtlICI+Rm9yZDwvc3Bhbj48YnI+CgkJCQkJCTxzcGFuIGNsYXNzPSJtb2RlbE5hbWUgc3Bhbk1vZGVsTmFtZSI+TXVzdGFuZyBDb252ZXJ0aWJsZSAyMDI1PC9zcGFuPgoJCQkJCTwvaDM+CgkJCQk8L2E+CgkJCQkgICAgPCEtLSBPUEVOIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CiAgICA8ZGl2IGNsYXNzPSJkaXZOZXdDYXJTdGFydFByaWNlIj4KICAgICAgICDDoCBwYXJ0aXIgZGUKICAgICAgICA8c3BhbiBjbGFzcz0ic3RyaWtlLXByaWNlIj4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+NDggMjI1PC9zcGFuPjwvc3Bhbj4KICAgICAgICA8aSBzdHlsZT0iY29sb3I6IzAwMDtmb250LXNpemU6MjBweDsiIGNsYXNzPSJjYXJQcmljZUluaXRpYWxUb29sVGlwSWNvbiBmYWwgZmEtaW5mby1jaXJjbGUgYmxhY2tDb2xvckJvbGQiIGRhdGEtdG9vbHRpcD0nJmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtQRFNGOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDs0NSA4MzAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUcmFuc3BvcnQgJmFtcDsgUHLDqXBhcmF0aW9uOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsyIDI5NSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RheGUgQUM6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzEwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RvdGFsJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzQ4IDIyNSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsnPjwvaT4KICAgIDwvZGl2PgogICAgPCEtLSBDTE9TRSBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPjwhLS0gT1BFTiBORVcgQ0FSIFBST01PIFBSSUNFICgyNzQpLS0+PGRpdiBjbGFzcz0iZGl2TmV3Q2FyUHJvbW9QcmljZSI+ZW4gcmFiYWlzIMOgIDxzcGFuIGNsYXNzPSIiIHN0eWxlPSJjb2xvcjogIzAyNzZiMzsiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj40MyAyMjU8L3NwYW4+PC9zcGFuPjwvZGl2PjwhLS0gQ0xPU0UgTkVXIENBUiBQUk9NTyBQUklDRSAoMjgxKS0tPgoJCQkJCTxkaXYgY2xhc3M9ImRpdkNhckluU3RvY2tMaW5rIiBoaWRkZW4+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGRhdGEtdHlwZT0iaW52ZGF0YSIgZGF0YS1tYWtlPSJGb3JkIiBkYXRhLW1vZGVsPSJNdXN0YW5nIENvbnZlcnRpYmxlIiBkYXRhLXllYXI9IjIwMjUiIGRhdGEtc3R5bGVpZHM9IjQ2MTk0OSw0NjE5NTAsNDYxOTUxIiBkYXRhLWh5YnJpZD0iMCI+Cgk8L2Rpdj4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckltYWdlQ29udGFpbmVyIGZsZXgtY2VudGVyIGFsaWduLWNlbnRlciAiPgoJCQkJPGEgdGl0bGU9IkZvcmQgTXVzdGFuZyBDb252ZXJ0aWJsZSAyMDI1IiBocmVmPSI\/cGF0aD0vbmV1ZnMvRm9yZC1NdXN0YW5nX0NvbnZlcnRpYmxlLTIwMjUuaHRtbCI+CgkJCQkJPGltZyBhbHQ9IkZvcmQgTXVzdGFuZyBDb252ZXJ0aWJsZSAyMDI1IiBib3JkZXI9IjAiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL2ZyL0ZvcmQvTXVzdGFuZ19Db252ZXJ0aWJsZS8yMDI1LzQ2MTk0OS9XaGl0ZS9wcm9maWxlLndlYnAiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj4KCQkJCTwvYT4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckZvb3RlckNvbnRhaW5lciBzdGFjay1sYyAtLXMtOSI+CgkJCQkJPGRpdiBjbGFzcz0iY2FyUGF5bWVudFdyYXBwZXIiPgoJCQk8ZGl2IGNsYXNzPSJjb250ZW50LXNrZWxldG9uIGh0bWwtYmxvY2siIGRhdGEtYmxvY2s9InBheW1lbnRCbG9jayIgZGF0YS10eXBlPSJibG9jayIgZGF0YS1zb3VyY2U9InNlcnZlciIgZGF0YS1jYWxsYmFjaz0icGF5bWVudENhbGNCbG9jayI+CgkJCgk8aW5wdXQgbmFtZT0iYmxvY2stZGF0YSIgdHlwZT0iaGlkZGVuIiB2YWx1ZT0neyJzdHlsZWlkIjoiNDYxOTQ5IiwidGl0bGUiOiJGb3JkIE11c3RhbmcgQ29udmVydGlibGUgMjAyNSIsImhyZWYiOiJcL25ldWZzXC9Gb3JkLU11c3RhbmdfQ29udmVydGlibGUtMjAyNS5odG1sIiwibGlua3N0eWxlIjoiIiwibGlua2NsYXNzIjoiIiwiY29udGFpbmVyY2xhc3MiOiIiLCJwcm9tb3RleHQiOiJPZmZyZSBhZGRpdGlvbm5lbGxlISJ9Jz4KCTwvZGl2PgoJPC9kaXY+CgkJCQkKCQkJPC9kaXY+CgkJPC9kaXY+Cgk8L2Rpdj48L2Rpdj48L2Rpdj48IS0tIENMT1NFIENBVEVHT1JZQk9YV1JBUFBFUiAoMjA2MCktLT48IS0tIE9QRU4gQ0FURUdPUllCT1hXUkFQUEVSICgyMDUyKSAtLT48ZGl2IGlkPSJjbGFzc3N1dl9jb250YWluZXIiIGNsYXNzPSJkaXZTcGFuIGRpdlNwYW4xMiBkaXZDYXRlZ29yeUJveFdyYXBwZXIiIHN0YXRlPSJvcGVuIiBuYnZpc2libGU9IjEiPjxoMiBjbGFzcz0iZGVmYXVsdCBpY29uLWhlYWRpbmcgZmxleC1ib3ggYWxpZ24tY2VudGVyIj4KCTxzcGFuIGNsYXNzPSJmYSBmYS1jaGV2cm9uLXJpZ2h0IiBhcmlhLWhpZGRlbj0idHJ1ZSI+PC9zcGFuPgoJPGJveC1sYyBjbGFzcz0iLXB2MCI+CgkJPGRpdiBjbGFzcz0ibWFpblRleHQgLWJvbGQiPlZVUyBuZXVmcyBGb3JkIDIwMjUgJmFtcDsgMjAyNjwvZGl2PgoJCTxkaXYgY2xhc3M9InNlY29uZGFyeVRleHQiPsOgIENvYXRpY29vazwvZGl2PgoJPC9ib3gtbGM+CjwvaDI+PGRpdiBjbGFzcz0iZGl2U3BhbiBkaXZTcGFuMTIgZGl2Q2Fyc0JveFdyYXBwZXIgQ0xBU1Nfc3V2Ij4JPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggIHJlYmF0ZUJvcmRlckNvbG9yIiBpZD0iZmJ4X3N1dl8xIj4KCQk8ZGl2IGNsYXNzPSJyZWJhdGVUYWciPjxzcGFuIGNsYXNzPSJyZWJhdGVUZXh0Ij5yYWJhaXMganVzcXUnw6A8L3NwYW4+PHNwYW4gY2xhc3M9InJlYmF0ZUFtb3VudCI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjMgNTAwPC9zcGFuPjwvc3Bhbj48L2Rpdj4KCQk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVJbm5lckJveCIgaWQ9IiI+CgkJCQoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJUaXRsZUNvbnRhaW5lciI+CgkJCQk8YSB0aXRsZT0iRm9yZCBFc2NhcGUgMjAyNSIgaHJlZj0iP3BhdGg9L25ldWZzL0ZvcmQtRXNjYXBlLTIwMjUuaHRtbCIgZGF0YS1tYWtlPSJGb3JkIiBkYXRhLW1vZGVsPSJFc2NhcGUgMjAyNSI+CgkJCQkJPGgzPgoJCQkJCQk8c3BhbiBjbGFzcz0ic3BhbkNhck1ha2UgIj5Gb3JkPC9zcGFuPjxicj4KCQkJCQkJPHNwYW4gY2xhc3M9Im1vZGVsTmFtZSBzcGFuTW9kZWxOYW1lIj5Fc2NhcGUgMjAyNTwvc3Bhbj4KCQkJCQk8L2gzPgoJCQkJPC9hPgoJCQkJICAgIDwhLS0gT1BFTiBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgogICAgPGRpdiBjbGFzcz0iZGl2TmV3Q2FyU3RhcnRQcmljZSI+CiAgICAgICAgw6AgcGFydGlyIGRlCiAgICAgICAgPHNwYW4gY2xhc3M9InN0cmlrZS1wcmljZSI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjM1IDI0NDwvc3Bhbj48L3NwYW4+CiAgICAgICAgPGkgc3R5bGU9ImNvbG9yOiMwMDA7Zm9udC1zaXplOjIwcHg7IiBjbGFzcz0iY2FyUHJpY2VJbml0aWFsVG9vbFRpcEljb24gZmFsIGZhLWluZm8tY2lyY2xlIGJsYWNrQ29sb3JCb2xkIiBkYXRhLXRvb2x0aXA9JyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7UERTRjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MzIgODQ5Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VHJhbnNwb3J0ICZhbXA7IFByw6lwYXJhdGlvbjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MiAyOTUmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUYXhlIEFDOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsxMDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUb3RhbCZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDszNSAyNDQmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jz48L2k+CiAgICA8L2Rpdj4KICAgIDwhLS0gQ0xPU0UgTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT48IS0tIE9QRU4gTkVXIENBUiBQUk9NTyBQUklDRSAoMjc0KS0tPjxkaXYgY2xhc3M9ImRpdk5ld0NhclByb21vUHJpY2UiPmVuIHJhYmFpcyDDoCA8c3BhbiBjbGFzcz0iIiBzdHlsZT0iY29sb3I6ICMwMjc2YjM7Ij4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+MzEgNzQ0PC9zcGFuPjwvc3Bhbj48L2Rpdj48IS0tIENMT1NFIE5FVyBDQVIgUFJPTU8gUFJJQ0UgKDI4MSktLT4KCQkJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJblN0b2NrTGluayIgaGlkZGVuPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBkYXRhLXR5cGU9ImludmRhdGEiIGRhdGEtbWFrZT0iRm9yZCIgZGF0YS1tb2RlbD0iRXNjYXBlIiBkYXRhLXllYXI9IjIwMjUiIGRhdGEtc3R5bGVpZHM9IjQ2MTIwNCw0NjEyMDUsNDYxMjA3LDQ2MTIwOCIgZGF0YS1oeWJyaWQ9IjAiPgoJPC9kaXY+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJbWFnZUNvbnRhaW5lciBmbGV4LWNlbnRlciBhbGlnbi1jZW50ZXIgIj4KCQkJCTxhIHRpdGxlPSJGb3JkIEVzY2FwZSAyMDI1IiBocmVmPSI\/cGF0aD0vbmV1ZnMvRm9yZC1Fc2NhcGUtMjAyNS5odG1sIj4KCQkJCQk8aW1nIGFsdD0iRm9yZCBFc2NhcGUgMjAyNSIgYm9yZGVyPSIwIiBjbGFzcz0ibGl2ZWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9mci9Gb3JkL0VzY2FwZS8yMDI1LzQ2MTIwNC9XaGl0ZS9wcm9maWxlLndlYnAiIHNyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL2ZyL0ZvcmQvRXNjYXBlLzIwMjUvNDYxMjA0L1doaXRlL3Byb2ZpbGUud2VicCIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPgoJCQkJPC9hPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyRm9vdGVyQ29udGFpbmVyIHN0YWNrLWxjIC0tcy05Ij4KCQkJCQk8ZGl2IGNsYXNzPSJjYXJQYXltZW50V3JhcHBlciI+CgkJCTxkaXYgY2xhc3M9ImNvbnRlbnQtc2tlbGV0b24gaHRtbC1ibG9jayIgZGF0YS1ibG9jaz0icGF5bWVudEJsb2NrIiBkYXRhLXR5cGU9ImJsb2NrIiBkYXRhLXNvdXJjZT0ic2VydmVyIiBkYXRhLWNhbGxiYWNrPSJwYXltZW50Q2FsY0Jsb2NrIj4KCQkKCTxpbnB1dCBuYW1lPSJibG9jay1kYXRhIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSd7InN0eWxlaWQiOiI0NjEyMDQiLCJ0aXRsZSI6IkZvcmQgRXNjYXBlIDIwMjUiLCJocmVmIjoiXC9uZXVmc1wvRm9yZC1Fc2NhcGUtMjAyNS5odG1sIiwibGlua3N0eWxlIjoiIiwibGlua2NsYXNzIjoiIiwiY29udGFpbmVyY2xhc3MiOiIiLCJwcm9tb3RleHQiOiJPZmZyZSBhZGRpdGlvbm5lbGxlISJ9Jz4KCTwvZGl2PgoJPC9kaXY+CgkJCQkKCQkJPC9kaXY+CgkJPC9kaXY+Cgk8L2Rpdj4JPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggIHJlYmF0ZUJvcmRlckNvbG9yIiBpZD0iZmJ4X3N1dl8yIj4KCQkKCQk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVJbm5lckJveCIgaWQ9IiI+CgkJCQoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJUaXRsZUNvbnRhaW5lciI+CgkJCQk8YSB0aXRsZT0iRm9yZCBFc2NhcGUgMjAyNiIgaHJlZj0iP3BhdGg9L25ldWZzL0ZvcmQtRXNjYXBlLTIwMjYuaHRtbCIgZGF0YS1tYWtlPSJGb3JkIiBkYXRhLW1vZGVsPSJFc2NhcGUgMjAyNiI+CgkJCQkJPGgzPgoJCQkJCQk8c3BhbiBjbGFzcz0ic3BhbkNhck1ha2UgIj5Gb3JkPC9zcGFuPjxicj4KCQkJCQkJPHNwYW4gY2xhc3M9Im1vZGVsTmFtZSBzcGFuTW9kZWxOYW1lIj5Fc2NhcGUgMjAyNjwvc3Bhbj4KCQkJCQk8L2gzPgoJCQkJPC9hPgoJCQkJICAgIDwhLS0gT1BFTiBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgogICAgPGRpdiBjbGFzcz0iZGl2TmV3Q2FyU3RhcnRQcmljZSI+CiAgICAgICAgw6AgcGFydGlyIGRlCiAgICAgICAgPHNwYW4gY2xhc3M9IiI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjM1IDg5NDwvc3Bhbj48L3NwYW4+CiAgICAgICAgPGkgc3R5bGU9ImNvbG9yOiMwMDA7Zm9udC1zaXplOjIwcHg7IiBjbGFzcz0iY2FyUHJpY2VJbml0aWFsVG9vbFRpcEljb24gZmFsIGZhLWluZm8tY2lyY2xlIGJsYWNrQ29sb3JCb2xkIiBkYXRhLXRvb2x0aXA9JyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7UERTRjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MzMgNDk5Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VHJhbnNwb3J0ICZhbXA7IFByw6lwYXJhdGlvbjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MiAyOTUmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUYXhlIEFDOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsxMDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUb3RhbCZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDszNSA4OTQmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jz48L2k+CiAgICA8L2Rpdj4KICAgIDwhLS0gQ0xPU0UgTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KCQkJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJblN0b2NrTGluayIgaGlkZGVuPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBkYXRhLXR5cGU9ImludmRhdGEiIGRhdGEtbWFrZT0iRm9yZCIgZGF0YS1tb2RlbD0iRXNjYXBlIiBkYXRhLXllYXI9IjIwMjYiIGRhdGEtc3R5bGVpZHM9IjQ3ODgzNSw0Nzg4MzQsNDc4ODMyIiBkYXRhLWh5YnJpZD0iMCI+Cgk8L2Rpdj4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckltYWdlQ29udGFpbmVyIGZsZXgtY2VudGVyIGFsaWduLWNlbnRlciAiPgoJCQkJPGEgdGl0bGU9IkZvcmQgRXNjYXBlIDIwMjYiIGhyZWY9Ij9wYXRoPS9uZXVmcy9Gb3JkLUVzY2FwZS0yMDI2Lmh0bWwiPgoJCQkJCTxpbWcgYWx0PSJGb3JkIEVzY2FwZSAyMDI2IiBib3JkZXI9IjAiIGNsYXNzPSJsaXZlbG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL2ZyL0ZvcmQvRXNjYXBlLzIwMjYvNDc4ODM1L1doaXRlL3Byb2ZpbGUud2VicCIgc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvZnIvRm9yZC9Fc2NhcGUvMjAyNi80Nzg4MzUvV2hpdGUvcHJvZmlsZS53ZWJwIiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+CgkJCQk8L2E+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJGb290ZXJDb250YWluZXIgc3RhY2stbGMgLS1zLTkiPgoJCQkJCTxkaXYgY2xhc3M9ImNhclBheW1lbnRXcmFwcGVyIj4KCQkJPGRpdiBjbGFzcz0iY29udGVudC1za2VsZXRvbiBodG1sLWJsb2NrIiBkYXRhLWJsb2NrPSJwYXltZW50QmxvY2siIGRhdGEtdHlwZT0iYmxvY2siIGRhdGEtc291cmNlPSJzZXJ2ZXIiIGRhdGEtY2FsbGJhY2s9InBheW1lbnRDYWxjQmxvY2siPgoJCQoJPGlucHV0IG5hbWU9ImJsb2NrLWRhdGEiIHR5cGU9ImhpZGRlbiIgdmFsdWU9J3sic3R5bGVpZCI6IjQ3ODgzNSIsInRpdGxlIjoiRm9yZCBFc2NhcGUgMjAyNiIsImhyZWYiOiJcL25ldWZzXC9Gb3JkLUVzY2FwZS0yMDI2Lmh0bWwiLCJsaW5rc3R5bGUiOiIiLCJsaW5rY2xhc3MiOiIiLCJjb250YWluZXJjbGFzcyI6IiIsInByb21vdGV4dCI6Ik9mZnJlIGFkZGl0aW9ubmVsbGUhIn0nPgoJPC9kaXY+Cgk8L2Rpdj4KCQkJCQoJCQk8L2Rpdj4KCQk8L2Rpdj4KCTwvZGl2Pgk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVPdXRlckJveCAgcmViYXRlQm9yZGVyQ29sb3IiIGlkPSJmYnhfc3V2XzMiPgoJCTxkaXYgY2xhc3M9InJlYmF0ZVRhZyI+PHNwYW4gY2xhc3M9InJlYmF0ZVRleHQiPnJhYmFpcyBqdXNxdSfDoDwvc3Bhbj48c3BhbiBjbGFzcz0icmViYXRlQW1vdW50Ij4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+NiA1MDA8L3NwYW4+PC9zcGFuPjwvZGl2PgoJCTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZUlubmVyQm94IiBpZD0iIj4KCQkJCgkJCTxkaXYgY2xhc3M9ImRpdkNhclRpdGxlQ29udGFpbmVyIj4KCQkJCTxhIHRpdGxlPSJGb3JkIEJyb25jbyBTcG9ydCAyMDI1IiBocmVmPSI\/cGF0aD0vbmV1ZnMvRm9yZC1Ccm9uY29fU3BvcnQtMjAyNS5odG1sIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9IkJyb25jbyBTcG9ydCAyMDI1Ij4KCQkJCQk8aDM+CgkJCQkJCTxzcGFuIGNsYXNzPSJzcGFuQ2FyTWFrZSAiPkZvcmQ8L3NwYW4+PGJyPgoJCQkJCQk8c3BhbiBjbGFzcz0ibW9kZWxOYW1lIHNwYW5Nb2RlbE5hbWUiPkJyb25jbyBTcG9ydCAyMDI1PC9zcGFuPgoJCQkJCTwvaDM+CgkJCQk8L2E+CgkJCQkgICAgPCEtLSBPUEVOIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CiAgICA8ZGl2IGNsYXNzPSJkaXZOZXdDYXJTdGFydFByaWNlIj4KICAgICAgICDDoCBwYXJ0aXIgZGUKICAgICAgICA8c3BhbiBjbGFzcz0ic3RyaWtlLXByaWNlIj4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+NDEgMTkwPC9zcGFuPjwvc3Bhbj4KICAgICAgICA8aSBzdHlsZT0iY29sb3I6IzAwMDtmb250LXNpemU6MjBweDsiIGNsYXNzPSJjYXJQcmljZUluaXRpYWxUb29sVGlwSWNvbiBmYWwgZmEtaW5mby1jaXJjbGUgYmxhY2tDb2xvckJvbGQiIGRhdGEtdG9vbHRpcD0nJmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtQRFNGOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDszOCA3OTUmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUcmFuc3BvcnQgJmFtcDsgUHLDqXBhcmF0aW9uOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsyIDI5NSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RheGUgQUM6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzEwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RvdGFsJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzQxIDE5MCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsnPjwvaT4KICAgIDwvZGl2PgogICAgPCEtLSBDTE9TRSBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPjwhLS0gT1BFTiBORVcgQ0FSIFBST01PIFBSSUNFICgyNzQpLS0+PGRpdiBjbGFzcz0iZGl2TmV3Q2FyUHJvbW9QcmljZSI+ZW4gcmFiYWlzIMOgIDxzcGFuIGNsYXNzPSIiIHN0eWxlPSJjb2xvcjogIzAyNzZiMzsiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj4zNSA2OTA8L3NwYW4+PC9zcGFuPjwvZGl2PjwhLS0gQ0xPU0UgTkVXIENBUiBQUk9NTyBQUklDRSAoMjgxKS0tPgoJCQkJCTxkaXYgY2xhc3M9ImRpdkNhckluU3RvY2tMaW5rIiBoaWRkZW4+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGRhdGEtdHlwZT0iaW52ZGF0YSIgZGF0YS1tYWtlPSJGb3JkIiBkYXRhLW1vZGVsPSJCcm9uY28gU3BvcnQiIGRhdGEteWVhcj0iMjAyNSIgZGF0YS1zdHlsZWlkcz0iNDYzODY3LDQ2Mzg2OSw0NjM4NjgsNDYzODcwLDQ2Mzg3MSIgZGF0YS1oeWJyaWQ9IjAiPgoJPC9kaXY+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJbWFnZUNvbnRhaW5lciBmbGV4LWNlbnRlciBhbGlnbi1jZW50ZXIgIj4KCQkJCTxhIHRpdGxlPSJGb3JkIEJyb25jbyBTcG9ydCAyMDI1IiBocmVmPSI\/cGF0aD0vbmV1ZnMvRm9yZC1Ccm9uY29fU3BvcnQtMjAyNS5odG1sIj4KCQkJCQk8aW1nIGFsdD0iRm9yZCBCcm9uY28gU3BvcnQgMjAyNSIgYm9yZGVyPSIwIiBjbGFzcz0ibGl2ZWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9mci9Gb3JkL0Jyb25jb19TcG9ydC8yMDI1LzQ2Mzg2Ny9XaGl0ZS9wcm9maWxlLndlYnAiIHNyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL2ZyL0ZvcmQvQnJvbmNvX1Nwb3J0LzIwMjUvNDYzODY3L1doaXRlL3Byb2ZpbGUud2VicCIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPgoJCQkJPC9hPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyRm9vdGVyQ29udGFpbmVyIHN0YWNrLWxjIC0tcy05Ij4KCQkJCQk8ZGl2IGNsYXNzPSJjYXJQYXltZW50V3JhcHBlciI+CgkJCTxkaXYgY2xhc3M9ImNvbnRlbnQtc2tlbGV0b24gaHRtbC1ibG9jayIgZGF0YS1ibG9jaz0icGF5bWVudEJsb2NrIiBkYXRhLXR5cGU9ImJsb2NrIiBkYXRhLXNvdXJjZT0ic2VydmVyIiBkYXRhLWNhbGxiYWNrPSJwYXltZW50Q2FsY0Jsb2NrIj4KCQkKCTxpbnB1dCBuYW1lPSJibG9jay1kYXRhIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSd7InN0eWxlaWQiOiI0NjM4NjciLCJ0aXRsZSI6IkZvcmQgQnJvbmNvIFNwb3J0IDIwMjUiLCJocmVmIjoiXC9uZXVmc1wvRm9yZC1Ccm9uY29fU3BvcnQtMjAyNS5odG1sIiwibGlua3N0eWxlIjoiIiwibGlua2NsYXNzIjoiIiwiY29udGFpbmVyY2xhc3MiOiIiLCJwcm9tb3RleHQiOiJPZmZyZSBhZGRpdGlvbm5lbGxlISJ9Jz4KCTwvZGl2PgoJPC9kaXY+CgkJCQkKCQkJPC9kaXY+CgkJPC9kaXY+Cgk8L2Rpdj4JPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggIHJlYmF0ZUJvcmRlckNvbG9yIiBpZD0iZmJ4X3N1dl80Ij4KCQk8ZGl2IGNsYXNzPSJyZWJhdGVUYWciPjxzcGFuIGNsYXNzPSJyZWJhdGVUZXh0Ij5yYWJhaXMganVzcXUnw6A8L3NwYW4+PHNwYW4gY2xhc3M9InJlYmF0ZUFtb3VudCI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjQgMDAwPC9zcGFuPjwvc3Bhbj48L2Rpdj4KCQk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVJbm5lckJveCIgaWQ9IiI+CgkJCQoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJUaXRsZUNvbnRhaW5lciI+CgkJCQk8YSB0aXRsZT0iRm9yZCBCcm9uY28gU3BvcnQgMjAyNiIgaHJlZj0iP3BhdGg9L25ldWZzL0ZvcmQtQnJvbmNvX1Nwb3J0LTIwMjYuaHRtbCIgZGF0YS1tYWtlPSJGb3JkIiBkYXRhLW1vZGVsPSJCcm9uY28gU3BvcnQgMjAyNiI+CgkJCQkJPGgzPgoJCQkJCQk8c3BhbiBjbGFzcz0ic3BhbkNhck1ha2UgIj5Gb3JkPC9zcGFuPjxicj4KCQkJCQkJPHNwYW4gY2xhc3M9Im1vZGVsTmFtZSBzcGFuTW9kZWxOYW1lIj5Ccm9uY28gU3BvcnQgMjAyNjwvc3Bhbj4KCQkJCQk8L2gzPgoJCQkJPC9hPgoJCQkJICAgIDwhLS0gT1BFTiBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgogICAgPGRpdiBjbGFzcz0iZGl2TmV3Q2FyU3RhcnRQcmljZSI+CiAgICAgICAgw6AgcGFydGlyIGRlCiAgICAgICAgPHNwYW4gY2xhc3M9InN0cmlrZS1wcmljZSI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjQxIDY0MDwvc3Bhbj48L3NwYW4+CiAgICAgICAgPGkgc3R5bGU9ImNvbG9yOiMwMDA7Zm9udC1zaXplOjIwcHg7IiBjbGFzcz0iY2FyUHJpY2VJbml0aWFsVG9vbFRpcEljb24gZmFsIGZhLWluZm8tY2lyY2xlIGJsYWNrQ29sb3JCb2xkIiBkYXRhLXRvb2x0aXA9JyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7UERTRjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MzkgMjQ1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VHJhbnNwb3J0ICZhbXA7IFByw6lwYXJhdGlvbjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MiAyOTUmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUYXhlIEFDOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsxMDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUb3RhbCZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDs0MSA2NDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jz48L2k+CiAgICA8L2Rpdj4KICAgIDwhLS0gQ0xPU0UgTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT48IS0tIE9QRU4gTkVXIENBUiBQUk9NTyBQUklDRSAoMjc0KS0tPjxkaXYgY2xhc3M9ImRpdk5ld0NhclByb21vUHJpY2UiPmVuIHJhYmFpcyDDoCA8c3BhbiBjbGFzcz0iIiBzdHlsZT0iY29sb3I6ICMwMjc2YjM7Ij4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+MzggNjQwPC9zcGFuPjwvc3Bhbj48L2Rpdj48IS0tIENMT1NFIE5FVyBDQVIgUFJPTU8gUFJJQ0UgKDI4MSktLT4KCQkJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJblN0b2NrTGluayIgaGlkZGVuPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBkYXRhLXR5cGU9ImludmRhdGEiIGRhdGEtbWFrZT0iRm9yZCIgZGF0YS1tb2RlbD0iQnJvbmNvIFNwb3J0IiBkYXRhLXllYXI9IjIwMjYiIGRhdGEtc3R5bGVpZHM9IjQ4MTc3OCw0ODE3NzksNDgxNzgwLDQ4MTc4MSIgZGF0YS1oeWJyaWQ9IjAiPgoJPC9kaXY+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJbWFnZUNvbnRhaW5lciBmbGV4LWNlbnRlciBhbGlnbi1jZW50ZXIgIj4KCQkJCTxhIHRpdGxlPSJGb3JkIEJyb25jbyBTcG9ydCAyMDI2IiBocmVmPSI\/cGF0aD0vbmV1ZnMvRm9yZC1Ccm9uY29fU3BvcnQtMjAyNi5odG1sIj4KCQkJCQk8aW1nIGFsdD0iRm9yZCBCcm9uY28gU3BvcnQgMjAyNiIgYm9yZGVyPSIwIiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9mci9Gb3JkL0Jyb25jb19TcG9ydC8yMDI2LzQ4MTc3OC9XaGl0ZS9wcm9maWxlLndlYnAiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj4KCQkJCTwvYT4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckZvb3RlckNvbnRhaW5lciBzdGFjay1sYyAtLXMtOSI+CgkJCQkJPGRpdiBjbGFzcz0iY2FyUGF5bWVudFdyYXBwZXIiPgoJCQk8ZGl2IGNsYXNzPSJjb250ZW50LXNrZWxldG9uIGh0bWwtYmxvY2siIGRhdGEtYmxvY2s9InBheW1lbnRCbG9jayIgZGF0YS10eXBlPSJibG9jayIgZGF0YS1zb3VyY2U9InNlcnZlciIgZGF0YS1jYWxsYmFjaz0icGF5bWVudENhbGNCbG9jayI+CgkJCgk8aW5wdXQgbmFtZT0iYmxvY2stZGF0YSIgdHlwZT0iaGlkZGVuIiB2YWx1ZT0neyJzdHlsZWlkIjoiNDgxNzc4IiwidGl0bGUiOiJGb3JkIEJyb25jbyBTcG9ydCAyMDI2IiwiaHJlZiI6IlwvbmV1ZnNcL0ZvcmQtQnJvbmNvX1Nwb3J0LTIwMjYuaHRtbCIsImxpbmtzdHlsZSI6IiIsImxpbmtjbGFzcyI6IiIsImNvbnRhaW5lcmNsYXNzIjoiIiwicHJvbW90ZXh0IjoiT2ZmcmUgYWRkaXRpb25uZWxsZSEifSc+Cgk8L2Rpdj4KCTwvZGl2PgoJCQkJCgkJCTwvZGl2PgoJCTwvZGl2PgoJPC9kaXY+CTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZU91dGVyQm94ICByZWJhdGVCb3JkZXJDb2xvciIgaWQ9ImZieF9zdXZfNSI+CgkJPGRpdiBjbGFzcz0icmViYXRlVGFnIj48c3BhbiBjbGFzcz0icmViYXRlVGV4dCI+cmFiYWlzIGp1c3F1J8OgPC9zcGFuPjxzcGFuIGNsYXNzPSJyZWJhdGVBbW91bnQiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj43IDAwMDwvc3Bhbj48L3NwYW4+PC9kaXY+CgkJPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlSW5uZXJCb3giIGlkPSIiPgoJCQkKCQkJPGRpdiBjbGFzcz0iZGl2Q2FyVGl0bGVDb250YWluZXIiPgoJCQkJPGEgdGl0bGU9IkZvcmQgQnJvbmNvIDIwMjUiIGhyZWY9Ij9wYXRoPS9uZXVmcy9Gb3JkLUJyb25jby0yMDI1Lmh0bWwiIGRhdGEtbWFrZT0iRm9yZCIgZGF0YS1tb2RlbD0iQnJvbmNvIDIwMjUiPgoJCQkJCTxoMz4KCQkJCQkJPHNwYW4gY2xhc3M9InNwYW5DYXJNYWtlICI+Rm9yZDwvc3Bhbj48YnI+CgkJCQkJCTxzcGFuIGNsYXNzPSJtb2RlbE5hbWUgc3Bhbk1vZGVsTmFtZSI+QnJvbmNvIDIwMjU8L3NwYW4+CgkJCQkJPC9oMz4KCQkJCTwvYT4KCQkJCSAgICA8IS0tIE9QRU4gTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KICAgIDxkaXYgY2xhc3M9ImRpdk5ld0NhclN0YXJ0UHJpY2UiPgogICAgICAgIMOgIHBhcnRpciBkZQogICAgICAgIDxzcGFuIGNsYXNzPSJzdHJpa2UtcHJpY2UiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj41MSA3NjA8L3NwYW4+PC9zcGFuPgogICAgICAgIDxpIHN0eWxlPSJjb2xvcjojMDAwO2ZvbnQtc2l6ZToyMHB4OyIgY2xhc3M9ImNhclByaWNlSW5pdGlhbFRvb2xUaXBJY29uIGZhbCBmYS1pbmZvLWNpcmNsZSBibGFja0NvbG9yQm9sZCIgZGF0YS10b29sdGlwPScmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1BEU0Y6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzQ5IDM2NSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RyYW5zcG9ydCAmYW1wOyBQcsOpcGFyYXRpb246Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzIgMjk1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VGF4ZSBBQzombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MTAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VG90YWwmbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7NTEgNzYwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0Oyc+PC9pPgogICAgPC9kaXY+CiAgICA8IS0tIENMT1NFIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+PCEtLSBPUEVOIE5FVyBDQVIgUFJPTU8gUFJJQ0UgKDI3NCktLT48ZGl2IGNsYXNzPSJkaXZOZXdDYXJQcm9tb1ByaWNlIj5lbiByYWJhaXMgw6AgPHNwYW4gY2xhc3M9IiIgc3R5bGU9ImNvbG9yOiAjMDI3NmIzOyI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjQ1IDc2MDwvc3Bhbj48L3NwYW4+PC9kaXY+PCEtLSBDTE9TRSBORVcgQ0FSIFBST01PIFBSSUNFICgyODEpLS0+CgkJCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW5TdG9ja0xpbmsiIGhpZGRlbj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgZGF0YS10eXBlPSJpbnZkYXRhIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9IkJyb25jbyIgZGF0YS15ZWFyPSIyMDI1IiBkYXRhLXN0eWxlaWRzPSI0NjY3OTEsNDY2NzkyLDQ2Njc4Niw0NjY3ODcsNDY2Nzg1LDQ2Njc5MCw0NjY3ODgsNDc5NTA1LDQ2Njc4OSIgZGF0YS1oeWJyaWQ9IjAiPgoJPC9kaXY+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJbWFnZUNvbnRhaW5lciBmbGV4LWNlbnRlciBhbGlnbi1jZW50ZXIgIj4KCQkJCTxhIHRpdGxlPSJGb3JkIEJyb25jbyAyMDI1IiBocmVmPSI\/cGF0aD0vbmV1ZnMvRm9yZC1Ccm9uY28tMjAyNS5odG1sIj4KCQkJCQk8aW1nIGFsdD0iRm9yZCBCcm9uY28gMjAyNSIgYm9yZGVyPSIwIiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9mci9Gb3JkL0Jyb25jby8yMDI1LzQ2Njc5MS9XaGl0ZS9wcm9maWxlLndlYnAiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj4KCQkJCTwvYT4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckZvb3RlckNvbnRhaW5lciBzdGFjay1sYyAtLXMtOSI+CgkJCQkJPGRpdiBjbGFzcz0iY2FyUGF5bWVudFdyYXBwZXIiPgoJCQk8ZGl2IGNsYXNzPSJjb250ZW50LXNrZWxldG9uIGh0bWwtYmxvY2siIGRhdGEtYmxvY2s9InBheW1lbnRCbG9jayIgZGF0YS10eXBlPSJibG9jayIgZGF0YS1zb3VyY2U9InNlcnZlciIgZGF0YS1jYWxsYmFjaz0icGF5bWVudENhbGNCbG9jayI+CgkJCgk8aW5wdXQgbmFtZT0iYmxvY2stZGF0YSIgdHlwZT0iaGlkZGVuIiB2YWx1ZT0neyJzdHlsZWlkIjoiNDY2NzkxIiwidGl0bGUiOiJGb3JkIEJyb25jbyAyMDI1IiwiaHJlZiI6IlwvbmV1ZnNcL0ZvcmQtQnJvbmNvLTIwMjUuaHRtbCIsImxpbmtzdHlsZSI6IiIsImxpbmtjbGFzcyI6IiIsImNvbnRhaW5lcmNsYXNzIjoiIiwicHJvbW90ZXh0IjoiT2ZmcmUgYWRkaXRpb25uZWxsZSEifSc+Cgk8L2Rpdj4KCTwvZGl2PgoJCQkJCgkJCTwvZGl2PgoJCTwvZGl2PgoJPC9kaXY+CTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZU91dGVyQm94ICByZWJhdGVCb3JkZXJDb2xvciIgaWQ9ImZieF9zdXZfNiI+CgkJCgkJPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlSW5uZXJCb3giIGlkPSIiPgoJCQkKCQkJPGRpdiBjbGFzcz0iZGl2Q2FyVGl0bGVDb250YWluZXIiPgoJCQkJPGEgdGl0bGU9IkZvcmQgRXhwbG9yZXIgMjAyNSIgaHJlZj0iP3BhdGg9L25ldWZzL0ZvcmQtRXhwbG9yZXItMjAyNS5odG1sIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9IkV4cGxvcmVyIDIwMjUiPgoJCQkJCTxoMz4KCQkJCQkJPHNwYW4gY2xhc3M9InNwYW5DYXJNYWtlICI+Rm9yZDwvc3Bhbj48YnI+CgkJCQkJCTxzcGFuIGNsYXNzPSJtb2RlbE5hbWUgc3Bhbk1vZGVsTmFtZSI+RXhwbG9yZXIgMjAyNTwvc3Bhbj4KCQkJCQk8L2gzPgoJCQkJPC9hPgoJCQkJICAgIDwhLS0gT1BFTiBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgogICAgPGRpdiBjbGFzcz0iZGl2TmV3Q2FyU3RhcnRQcmljZSI+CiAgICAgICAgw6AgcGFydGlyIGRlCiAgICAgICAgPHNwYW4gY2xhc3M9IiI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjUzIDk4MDwvc3Bhbj48L3NwYW4+CiAgICAgICAgPGkgc3R5bGU9ImNvbG9yOiMwMDA7Zm9udC1zaXplOjIwcHg7IiBjbGFzcz0iY2FyUHJpY2VJbml0aWFsVG9vbFRpcEljb24gZmFsIGZhLWluZm8tY2lyY2xlIGJsYWNrQ29sb3JCb2xkIiBkYXRhLXRvb2x0aXA9JyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7UERTRjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7NTEgNTg1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VHJhbnNwb3J0ICZhbXA7IFByw6lwYXJhdGlvbjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MiAyOTUmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUYXhlIEFDOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsxMDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUb3RhbCZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDs1MyA5ODAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jz48L2k+CiAgICA8L2Rpdj4KICAgIDwhLS0gQ0xPU0UgTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KCQkJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJblN0b2NrTGluayIgaGlkZGVuPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBkYXRhLXR5cGU9ImludmRhdGEiIGRhdGEtbWFrZT0iRm9yZCIgZGF0YS1tb2RlbD0iRXhwbG9yZXIiIGRhdGEteWVhcj0iMjAyNSIgZGF0YS1zdHlsZWlkcz0iNDU0MDQxLDQ1NDA0Miw0NTQwNDQsNDU0MDQzIiBkYXRhLWh5YnJpZD0iMCI+Cgk8L2Rpdj4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckltYWdlQ29udGFpbmVyIGZsZXgtY2VudGVyIGFsaWduLWNlbnRlciAiPgoJCQkJPGEgdGl0bGU9IkZvcmQgRXhwbG9yZXIgMjAyNSIgaHJlZj0iP3BhdGg9L25ldWZzL0ZvcmQtRXhwbG9yZXItMjAyNS5odG1sIj4KCQkJCQk8aW1nIGFsdD0iRm9yZCBFeHBsb3JlciAyMDI1IiBib3JkZXI9IjAiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL2ZyL0ZvcmQvRXhwbG9yZXIvMjAyNS80NTQwNDEvV2hpdGUvcHJvZmlsZS53ZWJwIiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+CgkJCQk8L2E+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJGb290ZXJDb250YWluZXIgc3RhY2stbGMgLS1zLTkiPgoJCQkJCTxkaXYgY2xhc3M9ImNhclBheW1lbnRXcmFwcGVyIj4KCQkJPGRpdiBjbGFzcz0iY29udGVudC1za2VsZXRvbiBodG1sLWJsb2NrIiBkYXRhLWJsb2NrPSJwYXltZW50QmxvY2siIGRhdGEtdHlwZT0iYmxvY2siIGRhdGEtc291cmNlPSJzZXJ2ZXIiIGRhdGEtY2FsbGJhY2s9InBheW1lbnRDYWxjQmxvY2siPgoJCQoJPGlucHV0IG5hbWU9ImJsb2NrLWRhdGEiIHR5cGU9ImhpZGRlbiIgdmFsdWU9J3sic3R5bGVpZCI6IjQ1NDA0MSIsInRpdGxlIjoiRm9yZCBFeHBsb3JlciAyMDI1IiwiaHJlZiI6IlwvbmV1ZnNcL0ZvcmQtRXhwbG9yZXItMjAyNS5odG1sIiwibGlua3N0eWxlIjoiIiwibGlua2NsYXNzIjoiIiwiY29udGFpbmVyY2xhc3MiOiIiLCJwcm9tb3RleHQiOiJPZmZyZSBhZGRpdGlvbm5lbGxlISJ9Jz4KCTwvZGl2PgoJPC9kaXY+CgkJCQkKCQkJPC9kaXY+CgkJPC9kaXY+Cgk8L2Rpdj4JPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggIHJlYmF0ZUJvcmRlckNvbG9yIiBpZD0iZmJ4X3N1dl83Ij4KCQkKCQk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVJbm5lckJveCIgaWQ9IiI+CgkJCQoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJUaXRsZUNvbnRhaW5lciI+CgkJCQk8YSB0aXRsZT0iRm9yZCBCcm9uY28gMjAyNiIgaHJlZj0iP3BhdGg9L25ldWZzL0ZvcmQtQnJvbmNvLTIwMjYuaHRtbCIgZGF0YS1tYWtlPSJGb3JkIiBkYXRhLW1vZGVsPSJCcm9uY28gMjAyNiI+CgkJCQkJPGgzPgoJCQkJCQk8c3BhbiBjbGFzcz0ic3BhbkNhck1ha2UgIj5Gb3JkPC9zcGFuPjxicj4KCQkJCQkJPHNwYW4gY2xhc3M9Im1vZGVsTmFtZSBzcGFuTW9kZWxOYW1lIj5Ccm9uY28gMjAyNjwvc3Bhbj4KCQkJCQk8L2gzPgoJCQkJPC9hPgoJCQkJICAgIDwhLS0gT1BFTiBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgogICAgPGRpdiBjbGFzcz0iZGl2TmV3Q2FyU3RhcnRQcmljZSI+CiAgICAgICAgw6AgcGFydGlyIGRlCiAgICAgICAgPHNwYW4gY2xhc3M9IiI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjU0IDExMDwvc3Bhbj48L3NwYW4+CiAgICAgICAgPGkgc3R5bGU9ImNvbG9yOiMwMDA7Zm9udC1zaXplOjIwcHg7IiBjbGFzcz0iY2FyUHJpY2VJbml0aWFsVG9vbFRpcEljb24gZmFsIGZhLWluZm8tY2lyY2xlIGJsYWNrQ29sb3JCb2xkIiBkYXRhLXRvb2x0aXA9JyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7UERTRjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7NTEgNTE1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VHJhbnNwb3J0ICZhbXA7IFByw6lwYXJhdGlvbjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MiA0OTUmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUYXhlIEFDOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsxMDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUb3RhbCZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDs1NCAxMTAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jz48L2k+CiAgICA8L2Rpdj4KICAgIDwhLS0gQ0xPU0UgTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KCQkJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJblN0b2NrTGluayIgaGlkZGVuPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBkYXRhLXR5cGU9ImludmRhdGEiIGRhdGEtbWFrZT0iRm9yZCIgZGF0YS1tb2RlbD0iQnJvbmNvIiBkYXRhLXllYXI9IjIwMjYiIGRhdGEtc3R5bGVpZHM9IjQ4MTg2Miw0ODE4NjQsNDgxODY1LDQ4MTg2Niw0ODE4NjMsNDgxODY3LDQ4MTg2OSw0ODE4NzAsNDgxODY4IiBkYXRhLWh5YnJpZD0iMCI+Cgk8L2Rpdj4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckltYWdlQ29udGFpbmVyIGZsZXgtY2VudGVyIGFsaWduLWNlbnRlciAiPgoJCQkJPGEgdGl0bGU9IkZvcmQgQnJvbmNvIDIwMjYiIGhyZWY9Ij9wYXRoPS9uZXVmcy9Gb3JkLUJyb25jby0yMDI2Lmh0bWwiPgoJCQkJCTxpbWcgYWx0PSJGb3JkIEJyb25jbyAyMDI2IiBib3JkZXI9IjAiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL2ZyL0ZvcmQvQnJvbmNvLzIwMjYvNDgxODYyL1doaXRlL3Byb2ZpbGUud2VicCIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPgoJCQkJPC9hPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyRm9vdGVyQ29udGFpbmVyIHN0YWNrLWxjIC0tcy05Ij4KCQkJCQk8ZGl2IGNsYXNzPSJjYXJQYXltZW50V3JhcHBlciI+CgkJCTxkaXYgY2xhc3M9ImNvbnRlbnQtc2tlbGV0b24gaHRtbC1ibG9jayIgZGF0YS1ibG9jaz0icGF5bWVudEJsb2NrIiBkYXRhLXR5cGU9ImJsb2NrIiBkYXRhLXNvdXJjZT0ic2VydmVyIiBkYXRhLWNhbGxiYWNrPSJwYXltZW50Q2FsY0Jsb2NrIj4KCQkKCTxpbnB1dCBuYW1lPSJibG9jay1kYXRhIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSd7InN0eWxlaWQiOiI0ODE4NjIiLCJ0aXRsZSI6IkZvcmQgQnJvbmNvIDIwMjYiLCJocmVmIjoiXC9uZXVmc1wvRm9yZC1Ccm9uY28tMjAyNi5odG1sIiwibGlua3N0eWxlIjoiIiwibGlua2NsYXNzIjoiIiwiY29udGFpbmVyY2xhc3MiOiIiLCJwcm9tb3RleHQiOiJPZmZyZSBhZGRpdGlvbm5lbGxlISJ9Jz4KCTwvZGl2PgoJPC9kaXY+CgkJCQkKCQkJPC9kaXY+CgkJPC9kaXY+Cgk8L2Rpdj4JPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggIHJlYmF0ZUJvcmRlckNvbG9yIiBpZD0iZmJ4X3N1dl84Ij4KCQkKCQk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVJbm5lckJveCIgaWQ9IiI+CgkJCQoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJUaXRsZUNvbnRhaW5lciI+CgkJCQk8YSB0aXRsZT0iRm9yZCBFeHBsb3JlciAyMDI2IiBocmVmPSI\/cGF0aD0vbmV1ZnMvRm9yZC1FeHBsb3Jlci0yMDI2Lmh0bWwiIGRhdGEtbWFrZT0iRm9yZCIgZGF0YS1tb2RlbD0iRXhwbG9yZXIgMjAyNiI+CgkJCQkJPGgzPgoJCQkJCQk8c3BhbiBjbGFzcz0ic3BhbkNhck1ha2UgIj5Gb3JkPC9zcGFuPjxicj4KCQkJCQkJPHNwYW4gY2xhc3M9Im1vZGVsTmFtZSBzcGFuTW9kZWxOYW1lIj5FeHBsb3JlciAyMDI2PC9zcGFuPgoJCQkJCTwvaDM+CgkJCQk8L2E+CgkJCQkgICAgPCEtLSBPUEVOIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CiAgICA8ZGl2IGNsYXNzPSJkaXZOZXdDYXJTdGFydFByaWNlIj4KICAgICAgICDDoCBwYXJ0aXIgZGUKICAgICAgICA8c3BhbiBjbGFzcz0iIj4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+NTQgNDk1PC9zcGFuPjwvc3Bhbj4KICAgICAgICA8aSBzdHlsZT0iY29sb3I6IzAwMDtmb250LXNpemU6MjBweDsiIGNsYXNzPSJjYXJQcmljZUluaXRpYWxUb29sVGlwSWNvbiBmYWwgZmEtaW5mby1jaXJjbGUgYmxhY2tDb2xvckJvbGQiIGRhdGEtdG9vbHRpcD0nJmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtQRFNGOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDs1MiAxMDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUcmFuc3BvcnQgJmFtcDsgUHLDqXBhcmF0aW9uOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsyIDI5NSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RheGUgQUM6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzEwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RvdGFsJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzU0IDQ5NSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsnPjwvaT4KICAgIDwvZGl2PgogICAgPCEtLSBDTE9TRSBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgoJCQkJCTxkaXYgY2xhc3M9ImRpdkNhckluU3RvY2tMaW5rIiBoaWRkZW4+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGRhdGEtdHlwZT0iaW52ZGF0YSIgZGF0YS1tYWtlPSJGb3JkIiBkYXRhLW1vZGVsPSJFeHBsb3JlciIgZGF0YS15ZWFyPSIyMDI2IiBkYXRhLXN0eWxlaWRzPSI0ODMxMTMsNDc5NTI5LDQ3OTUzMiw0Nzk1MzEsNDc5NTMwIiBkYXRhLWh5YnJpZD0iMCI+Cgk8L2Rpdj4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckltYWdlQ29udGFpbmVyIGZsZXgtY2VudGVyIGFsaWduLWNlbnRlciAiPgoJCQkJPGEgdGl0bGU9IkZvcmQgRXhwbG9yZXIgMjAyNiIgaHJlZj0iP3BhdGg9L25ldWZzL0ZvcmQtRXhwbG9yZXItMjAyNi5odG1sIj4KCQkJCQk8aW1nIGFsdD0iRm9yZCBFeHBsb3JlciAyMDI2IiBib3JkZXI9IjAiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL2ZyL0ZvcmQvRXhwbG9yZXIvMjAyNi80ODMxMTMvV2hpdGUvcHJvZmlsZS53ZWJwIiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+CgkJCQk8L2E+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJGb290ZXJDb250YWluZXIgc3RhY2stbGMgLS1zLTkiPgoJCQkJCTxkaXYgY2xhc3M9ImNhclBheW1lbnRXcmFwcGVyIj4KCQkJPGRpdiBjbGFzcz0iY29udGVudC1za2VsZXRvbiBodG1sLWJsb2NrIiBkYXRhLWJsb2NrPSJwYXltZW50QmxvY2siIGRhdGEtdHlwZT0iYmxvY2siIGRhdGEtc291cmNlPSJzZXJ2ZXIiIGRhdGEtY2FsbGJhY2s9InBheW1lbnRDYWxjQmxvY2siPgoJCQoJPGlucHV0IG5hbWU9ImJsb2NrLWRhdGEiIHR5cGU9ImhpZGRlbiIgdmFsdWU9J3sic3R5bGVpZCI6IjQ4MzExMyIsInRpdGxlIjoiRm9yZCBFeHBsb3JlciAyMDI2IiwiaHJlZiI6IlwvbmV1ZnNcL0ZvcmQtRXhwbG9yZXItMjAyNi5odG1sIiwibGlua3N0eWxlIjoiIiwibGlua2NsYXNzIjoiIiwiY29udGFpbmVyY2xhc3MiOiIiLCJwcm9tb3RleHQiOiJPZmZyZSBhZGRpdGlvbm5lbGxlISJ9Jz4KCTwvZGl2PgoJPC9kaXY+CgkJCQkKCQkJPC9kaXY+CgkJPC9kaXY+Cgk8L2Rpdj4JPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggIHJlYmF0ZUJvcmRlckNvbG9yIiBpZD0iZmJ4X3N1dl85Ij4KCQkKCQk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVJbm5lckJveCIgaWQ9IiI+CgkJCQoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJUaXRsZUNvbnRhaW5lciI+CgkJCQk8YSB0aXRsZT0iRm9yZCBFeHBlZGl0aW9uIDIwMjUiIGhyZWY9Ij9wYXRoPS9uZXVmcy9Gb3JkLUV4cGVkaXRpb24tMjAyNS5odG1sIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9IkV4cGVkaXRpb24gMjAyNSI+CgkJCQkJPGgzPgoJCQkJCQk8c3BhbiBjbGFzcz0ic3BhbkNhck1ha2UgIj5Gb3JkPC9zcGFuPjxicj4KCQkJCQkJPHNwYW4gY2xhc3M9Im1vZGVsTmFtZSBzcGFuTW9kZWxOYW1lIj5FeHBlZGl0aW9uIDIwMjU8L3NwYW4+CgkJCQkJPC9oMz4KCQkJCTwvYT4KCQkJCSAgICA8IS0tIE9QRU4gTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KICAgIDxkaXYgY2xhc3M9ImRpdk5ld0NhclN0YXJ0UHJpY2UiPgogICAgICAgIMOgIHBhcnRpciBkZQogICAgICAgIDxzcGFuIGNsYXNzPSIiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj44NCA4MTU8L3NwYW4+PC9zcGFuPgogICAgICAgIDxpIHN0eWxlPSJjb2xvcjojMDAwO2ZvbnQtc2l6ZToyMHB4OyIgY2xhc3M9ImNhclByaWNlSW5pdGlhbFRvb2xUaXBJY29uIGZhbCBmYS1pbmZvLWNpcmNsZSBibGFja0NvbG9yQm9sZCIgZGF0YS10b29sdGlwPScmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1BEU0Y6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzgyIDEyMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RyYW5zcG9ydCAmYW1wOyBQcsOpcGFyYXRpb246Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzIgNTk1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VGF4ZSBBQzombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MTAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VG90YWwmbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7ODQgODE1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0Oyc+PC9pPgogICAgPC9kaXY+CiAgICA8IS0tIENMT1NFIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CgkJCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW5TdG9ja0xpbmsiIGhpZGRlbj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgZGF0YS10eXBlPSJpbnZkYXRhIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9IkV4cGVkaXRpb24iIGRhdGEteWVhcj0iMjAyNSIgZGF0YS1zdHlsZWlkcz0iNDY3MDY0LDQ2NzA3MSw0NjcwNjcsNDY3MDcwLDQ2NzA2NSw0NjcwNjYsNDY3MDY5IiBkYXRhLWh5YnJpZD0iMCI+Cgk8L2Rpdj4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckltYWdlQ29udGFpbmVyIGZsZXgtY2VudGVyIGFsaWduLWNlbnRlciAiPgoJCQkJPGEgdGl0bGU9IkZvcmQgRXhwZWRpdGlvbiAyMDI1IiBocmVmPSI\/cGF0aD0vbmV1ZnMvRm9yZC1FeHBlZGl0aW9uLTIwMjUuaHRtbCI+CgkJCQkJPGltZyBhbHQ9IkZvcmQgRXhwZWRpdGlvbiAyMDI1IiBib3JkZXI9IjAiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL2ZyL0ZvcmQvRXhwZWRpdGlvbi8yMDI1LzQ2NzA2NC9XaGl0ZS9wcm9maWxlLndlYnAiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj4KCQkJCTwvYT4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckZvb3RlckNvbnRhaW5lciBzdGFjay1sYyAtLXMtOSI+CgkJCQkJPGRpdiBjbGFzcz0iY2FyUGF5bWVudFdyYXBwZXIiPgoJCQk8ZGl2IGNsYXNzPSJjb250ZW50LXNrZWxldG9uIGh0bWwtYmxvY2siIGRhdGEtYmxvY2s9InBheW1lbnRCbG9jayIgZGF0YS10eXBlPSJibG9jayIgZGF0YS1zb3VyY2U9InNlcnZlciIgZGF0YS1jYWxsYmFjaz0icGF5bWVudENhbGNCbG9jayI+CgkJCgk8aW5wdXQgbmFtZT0iYmxvY2stZGF0YSIgdHlwZT0iaGlkZGVuIiB2YWx1ZT0neyJzdHlsZWlkIjoiNDY3MDY0IiwidGl0bGUiOiJGb3JkIEV4cGVkaXRpb24gMjAyNSIsImhyZWYiOiJcL25ldWZzXC9Gb3JkLUV4cGVkaXRpb24tMjAyNS5odG1sIiwibGlua3N0eWxlIjoiIiwibGlua2NsYXNzIjoiIiwiY29udGFpbmVyY2xhc3MiOiIiLCJwcm9tb3RleHQiOiJPZmZyZSBhZGRpdGlvbm5lbGxlISJ9Jz4KCTwvZGl2PgoJPC9kaXY+CgkJCQkKCQkJPC9kaXY+CgkJPC9kaXY+Cgk8L2Rpdj4JPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggIHJlYmF0ZUJvcmRlckNvbG9yIiBpZD0iZmJ4X3N1dl8xMCI+CgkJCgkJPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlSW5uZXJCb3giIGlkPSIiPgoJCQkKCQkJPGRpdiBjbGFzcz0iZGl2Q2FyVGl0bGVDb250YWluZXIiPgoJCQkJPGEgdGl0bGU9IkZvcmQgRXhwZWRpdGlvbiAyMDI2IiBocmVmPSI\/cGF0aD0vbmV1ZnMvRm9yZC1FeHBlZGl0aW9uLTIwMjYuaHRtbCIgZGF0YS1tYWtlPSJGb3JkIiBkYXRhLW1vZGVsPSJFeHBlZGl0aW9uIDIwMjYiPgoJCQkJCTxoMz4KCQkJCQkJPHNwYW4gY2xhc3M9InNwYW5DYXJNYWtlICI+Rm9yZDwvc3Bhbj48YnI+CgkJCQkJCTxzcGFuIGNsYXNzPSJtb2RlbE5hbWUgc3Bhbk1vZGVsTmFtZSI+RXhwZWRpdGlvbiAyMDI2PC9zcGFuPgoJCQkJCTwvaDM+CgkJCQk8L2E+CgkJCQkgICAgPCEtLSBPUEVOIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CiAgICA8ZGl2IGNsYXNzPSJkaXZOZXdDYXJTdGFydFByaWNlIj4KICAgICAgICDDoCBwYXJ0aXIgZGUKICAgICAgICA8c3BhbiBjbGFzcz0iIj4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+ODYgMDY1PC9zcGFuPjwvc3Bhbj4KICAgICAgICA8aSBzdHlsZT0iY29sb3I6IzAwMDtmb250LXNpemU6MjBweDsiIGNsYXNzPSJjYXJQcmljZUluaXRpYWxUb29sVGlwSWNvbiBmYWwgZmEtaW5mby1jaXJjbGUgYmxhY2tDb2xvckJvbGQiIGRhdGEtdG9vbHRpcD0nJmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtQRFNGOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDs4MyAzNzAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUcmFuc3BvcnQgJmFtcDsgUHLDqXBhcmF0aW9uOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsyIDU5NSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RheGUgQUM6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzEwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RvdGFsJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0Ozg2IDA2NSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsnPjwvaT4KICAgIDwvZGl2PgogICAgPCEtLSBDTE9TRSBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgoJCQkJCTxkaXYgY2xhc3M9ImRpdkNhckluU3RvY2tMaW5rIiBoaWRkZW4+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGRhdGEtdHlwZT0iaW52ZGF0YSIgZGF0YS1tYWtlPSJGb3JkIiBkYXRhLW1vZGVsPSJFeHBlZGl0aW9uIiBkYXRhLXllYXI9IjIwMjYiIGRhdGEtc3R5bGVpZHM9IjQ4MTE4Myw0ODExODgsNDgxMTg1LDQ4MTE4OSw0ODExODQsNDgxMTg2LDQ4MTE5MCIgZGF0YS1oeWJyaWQ9IjAiPgoJPC9kaXY+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJbWFnZUNvbnRhaW5lciBmbGV4LWNlbnRlciBhbGlnbi1jZW50ZXIgIj4KCQkJCTxhIHRpdGxlPSJGb3JkIEV4cGVkaXRpb24gMjAyNiIgaHJlZj0iP3BhdGg9L25ldWZzL0ZvcmQtRXhwZWRpdGlvbi0yMDI2Lmh0bWwiPgoJCQkJCTxpbWcgYWx0PSJGb3JkIEV4cGVkaXRpb24gMjAyNiIgYm9yZGVyPSIwIiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9mci9Gb3JkL0V4cGVkaXRpb24vMjAyNi80ODExODMvV2hpdGUvcHJvZmlsZS53ZWJwIiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+CgkJCQk8L2E+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJGb290ZXJDb250YWluZXIgc3RhY2stbGMgLS1zLTkiPgoJCQkJCTxkaXYgY2xhc3M9ImNhclBheW1lbnRXcmFwcGVyIj4KCQkJPGRpdiBjbGFzcz0iY29udGVudC1za2VsZXRvbiBodG1sLWJsb2NrIiBkYXRhLWJsb2NrPSJwYXltZW50QmxvY2siIGRhdGEtdHlwZT0iYmxvY2siIGRhdGEtc291cmNlPSJzZXJ2ZXIiIGRhdGEtY2FsbGJhY2s9InBheW1lbnRDYWxjQmxvY2siPgoJCQoJPGlucHV0IG5hbWU9ImJsb2NrLWRhdGEiIHR5cGU9ImhpZGRlbiIgdmFsdWU9J3sic3R5bGVpZCI6IjQ4MTE4MyIsInRpdGxlIjoiRm9yZCBFeHBlZGl0aW9uIDIwMjYiLCJocmVmIjoiXC9uZXVmc1wvRm9yZC1FeHBlZGl0aW9uLTIwMjYuaHRtbCIsImxpbmtzdHlsZSI6IiIsImxpbmtjbGFzcyI6IiIsImNvbnRhaW5lcmNsYXNzIjoiIiwicHJvbW90ZXh0IjoiT2ZmcmUgYWRkaXRpb25uZWxsZSEifSc+Cgk8L2Rpdj4KCTwvZGl2PgoJCQkJCgkJCTwvZGl2PgoJCTwvZGl2PgoJPC9kaXY+PC9kaXY+PC9kaXY+PCEtLSBDTE9TRSBDQVRFR09SWUJPWFdSQVBQRVIgKDIwNjApLS0+PCEtLSBPUEVOIENBVEVHT1JZQk9YV1JBUFBFUiAoMjA1MikgLS0+PGRpdiBpZD0iY2xhc3N0cnVja19jb250YWluZXIiIGNsYXNzPSJkaXZTcGFuIGRpdlNwYW4xMiBkaXZDYXRlZ29yeUJveFdyYXBwZXIiIHN0YXRlPSJvcGVuIiBuYnZpc2libGU9IjEiPjxoMiBjbGFzcz0iZGVmYXVsdCBpY29uLWhlYWRpbmcgZmxleC1ib3ggYWxpZ24tY2VudGVyIj4KCTxzcGFuIGNsYXNzPSJmYSBmYS1jaGV2cm9uLXJpZ2h0IiBhcmlhLWhpZGRlbj0idHJ1ZSI+PC9zcGFuPgoJPGJveC1sYyBjbGFzcz0iLXB2MCI+CgkJPGRpdiBjbGFzcz0ibWFpblRleHQgLWJvbGQiPkNhbWlvbnMgbmV1ZnMgRm9yZCAyMDI1ICZhbXA7IDIwMjY8L2Rpdj4KCQk8ZGl2IGNsYXNzPSJzZWNvbmRhcnlUZXh0Ij7DoCBDb2F0aWNvb2s8L2Rpdj4KCTwvYm94LWxjPgo8L2gyPjxkaXYgY2xhc3M9ImRpdlNwYW4gZGl2U3BhbjEyIGRpdkNhcnNCb3hXcmFwcGVyIENMQVNTX3RydWNrIj4JPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggIHJlYmF0ZUJvcmRlckNvbG9yIiBpZD0iZmJ4X3RydWNrXzEiPgoJCQoJCTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZUlubmVyQm94IiBpZD0iIj4KCQkJCgkJCTxkaXYgY2xhc3M9ImRpdkNhclRpdGxlQ29udGFpbmVyIj4KCQkJCTxhIHRpdGxlPSJGb3JkIE1hdmVyaWNrIDIwMjUiIGhyZWY9Ij9wYXRoPS9uZXVmcy9Gb3JkLU1hdmVyaWNrLTIwMjUuaHRtbCIgZGF0YS1tYWtlPSJGb3JkIiBkYXRhLW1vZGVsPSJNYXZlcmljayAyMDI1Ij4KCQkJCQk8aDM+CgkJCQkJCTxzcGFuIGNsYXNzPSJzcGFuQ2FyTWFrZSAiPkZvcmQ8L3NwYW4+PGJyPgoJCQkJCQk8c3BhbiBjbGFzcz0ibW9kZWxOYW1lIHNwYW5Nb2RlbE5hbWUiPk1hdmVyaWNrIDIwMjU8L3NwYW4+CgkJCQkJPC9oMz4KCQkJCTwvYT4KCQkJCSAgICA8IS0tIE9QRU4gTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KICAgIDxkaXYgY2xhc3M9ImRpdk5ld0NhclN0YXJ0UHJpY2UiPgogICAgICAgIMOgIHBhcnRpciBkZQogICAgICAgIDxzcGFuIGNsYXNzPSIiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj40NCAyOTU8L3NwYW4+PC9zcGFuPgogICAgICAgIDxpIHN0eWxlPSJjb2xvcjojMDAwO2ZvbnQtc2l6ZToyMHB4OyIgY2xhc3M9ImNhclByaWNlSW5pdGlhbFRvb2xUaXBJY29uIGZhbCBmYS1pbmZvLWNpcmNsZSBibGFja0NvbG9yQm9sZCIgZGF0YS10b29sdGlwPScmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1BEU0Y6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzQxIDkwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RyYW5zcG9ydCAmYW1wOyBQcsOpcGFyYXRpb246Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzIgMjk1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VGF4ZSBBQzombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MTAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VG90YWwmbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7NDQgMjk1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0Oyc+PC9pPgogICAgPC9kaXY+CiAgICA8IS0tIENMT1NFIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CgkJCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW5TdG9ja0xpbmsiIGhpZGRlbj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgZGF0YS10eXBlPSJpbnZkYXRhIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9Ik1hdmVyaWNrIiBkYXRhLXllYXI9IjIwMjUiIGRhdGEtc3R5bGVpZHM9IjQ2OTA2NSw0NjI4MzYsNDYyODM3IiBkYXRhLWh5YnJpZD0iMCI+Cgk8L2Rpdj4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckltYWdlQ29udGFpbmVyIGZsZXgtY2VudGVyIGFsaWduLWNlbnRlciAiPgoJCQkJPGEgdGl0bGU9IkZvcmQgTWF2ZXJpY2sgMjAyNSIgaHJlZj0iP3BhdGg9L25ldWZzL0ZvcmQtTWF2ZXJpY2stMjAyNS5odG1sIj4KCQkJCQk8aW1nIGFsdD0iRm9yZCBNYXZlcmljayAyMDI1IiBib3JkZXI9IjAiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL2ZyL0ZvcmQvTWF2ZXJpY2svMjAyNS80NjkwNjUvV2hpdGUvcHJvZmlsZS53ZWJwIiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+CgkJCQk8L2E+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJGb290ZXJDb250YWluZXIgc3RhY2stbGMgLS1zLTkiPgoJCQkJCTxkaXYgY2xhc3M9ImNhclBheW1lbnRXcmFwcGVyIj4KCQkJPGRpdiBjbGFzcz0iY29udGVudC1za2VsZXRvbiBodG1sLWJsb2NrIiBkYXRhLWJsb2NrPSJwYXltZW50QmxvY2siIGRhdGEtdHlwZT0iYmxvY2siIGRhdGEtc291cmNlPSJzZXJ2ZXIiIGRhdGEtY2FsbGJhY2s9InBheW1lbnRDYWxjQmxvY2siPgoJCQoJPGlucHV0IG5hbWU9ImJsb2NrLWRhdGEiIHR5cGU9ImhpZGRlbiIgdmFsdWU9J3sic3R5bGVpZCI6IjQ2OTA2NSIsInRpdGxlIjoiRm9yZCBNYXZlcmljayAyMDI1IiwiaHJlZiI6IlwvbmV1ZnNcL0ZvcmQtTWF2ZXJpY2stMjAyNS5odG1sIiwibGlua3N0eWxlIjoiIiwibGlua2NsYXNzIjoiIiwiY29udGFpbmVyY2xhc3MiOiIiLCJwcm9tb3RleHQiOiJPZmZyZSBhZGRpdGlvbm5lbGxlISJ9Jz4KCTwvZGl2PgoJPC9kaXY+CgkJCQkKCQkJPC9kaXY+CgkJPC9kaXY+Cgk8L2Rpdj4JPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggIHJlYmF0ZUJvcmRlckNvbG9yIiBpZD0iZmJ4X3RydWNrXzIiPgoJCQoJCTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZUlubmVyQm94IiBpZD0iIj4KCQkJCgkJCTxkaXYgY2xhc3M9ImRpdkNhclRpdGxlQ29udGFpbmVyIj4KCQkJCTxhIHRpdGxlPSJGb3JkIE1hdmVyaWNrIDIwMjYiIGhyZWY9Ij9wYXRoPS9uZXVmcy9Gb3JkLU1hdmVyaWNrLTIwMjYuaHRtbCIgZGF0YS1tYWtlPSJGb3JkIiBkYXRhLW1vZGVsPSJNYXZlcmljayAyMDI2Ij4KCQkJCQk8aDM+CgkJCQkJCTxzcGFuIGNsYXNzPSJzcGFuQ2FyTWFrZSAiPkZvcmQ8L3NwYW4+PGJyPgoJCQkJCQk8c3BhbiBjbGFzcz0ibW9kZWxOYW1lIHNwYW5Nb2RlbE5hbWUiPk1hdmVyaWNrIDIwMjY8L3NwYW4+CgkJCQkJPC9oMz4KCQkJCTwvYT4KCQkJCSAgICA8IS0tIE9QRU4gTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KICAgIDxkaXYgY2xhc3M9ImRpdk5ld0NhclN0YXJ0UHJpY2UiPgogICAgICAgIMOgIHBhcnRpciBkZQogICAgICAgIDxzcGFuIGNsYXNzPSIiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj40NCAzOTU8L3NwYW4+PC9zcGFuPgogICAgICAgIDxpIHN0eWxlPSJjb2xvcjojMDAwO2ZvbnQtc2l6ZToyMHB4OyIgY2xhc3M9ImNhclByaWNlSW5pdGlhbFRvb2xUaXBJY29uIGZhbCBmYS1pbmZvLWNpcmNsZSBibGFja0NvbG9yQm9sZCIgZGF0YS10b29sdGlwPScmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1BEU0Y6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzQxIDkwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RyYW5zcG9ydCAmYW1wOyBQcsOpcGFyYXRpb246Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzIgMzk1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VGF4ZSBBQzombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MTAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VG90YWwmbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7NDQgMzk1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0Oyc+PC9pPgogICAgPC9kaXY+CiAgICA8IS0tIENMT1NFIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CgkJCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW5TdG9ja0xpbmsiIGhpZGRlbj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgZGF0YS10eXBlPSJpbnZkYXRhIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9Ik1hdmVyaWNrIiBkYXRhLXllYXI9IjIwMjYiIGRhdGEtc3R5bGVpZHM9IjQ4MTE3Niw0ODExNzMsNDgxMTc1IiBkYXRhLWh5YnJpZD0iMCI+Cgk8L2Rpdj4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckltYWdlQ29udGFpbmVyIGZsZXgtY2VudGVyIGFsaWduLWNlbnRlciAiPgoJCQkJPGEgdGl0bGU9IkZvcmQgTWF2ZXJpY2sgMjAyNiIgaHJlZj0iP3BhdGg9L25ldWZzL0ZvcmQtTWF2ZXJpY2stMjAyNi5odG1sIj4KCQkJCQk8aW1nIGFsdD0iRm9yZCBNYXZlcmljayAyMDI2IiBib3JkZXI9IjAiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL2ZyL0ZvcmQvTWF2ZXJpY2svMjAyNi80ODExNzYvV2hpdGUvcHJvZmlsZS53ZWJwIiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+CgkJCQk8L2E+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJGb290ZXJDb250YWluZXIgc3RhY2stbGMgLS1zLTkiPgoJCQkJCTxkaXYgY2xhc3M9ImNhclBheW1lbnRXcmFwcGVyIj4KCQkJPGRpdiBjbGFzcz0iY29udGVudC1za2VsZXRvbiBodG1sLWJsb2NrIiBkYXRhLWJsb2NrPSJwYXltZW50QmxvY2siIGRhdGEtdHlwZT0iYmxvY2siIGRhdGEtc291cmNlPSJzZXJ2ZXIiIGRhdGEtY2FsbGJhY2s9InBheW1lbnRDYWxjQmxvY2siPgoJCQoJPGlucHV0IG5hbWU9ImJsb2NrLWRhdGEiIHR5cGU9ImhpZGRlbiIgdmFsdWU9J3sic3R5bGVpZCI6IjQ4MTE3NiIsInRpdGxlIjoiRm9yZCBNYXZlcmljayAyMDI2IiwiaHJlZiI6IlwvbmV1ZnNcL0ZvcmQtTWF2ZXJpY2stMjAyNi5odG1sIiwibGlua3N0eWxlIjoiIiwibGlua2NsYXNzIjoiIiwiY29udGFpbmVyY2xhc3MiOiIiLCJwcm9tb3RleHQiOiJPZmZyZSBhZGRpdGlvbm5lbGxlISJ9Jz4KCTwvZGl2PgoJPC9kaXY+CgkJCQkKCQkJPC9kaXY+CgkJPC9kaXY+Cgk8L2Rpdj4JPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggIHJlYmF0ZUJvcmRlckNvbG9yIiBpZD0iZmJ4X3RydWNrXzMiPgoJCTxkaXYgY2xhc3M9InJlYmF0ZVRhZyI+PHNwYW4gY2xhc3M9InJlYmF0ZVRleHQiPnJhYmFpcyBqdXNxdSfDoDwvc3Bhbj48c3BhbiBjbGFzcz0icmViYXRlQW1vdW50Ij4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+MiAwMDA8L3NwYW4+PC9zcGFuPjwvZGl2PgoJCTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZUlubmVyQm94IiBpZD0iIj4KCQkJCgkJCTxkaXYgY2xhc3M9ImRpdkNhclRpdGxlQ29udGFpbmVyIj4KCQkJCTxhIHRpdGxlPSJGb3JkIFJhbmdlciAyMDI1IiBocmVmPSI\/cGF0aD0vbmV1ZnMvRm9yZC1SYW5nZXItMjAyNS5odG1sIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9IlJhbmdlciAyMDI1Ij4KCQkJCQk8aDM+CgkJCQkJCTxzcGFuIGNsYXNzPSJzcGFuQ2FyTWFrZSAiPkZvcmQ8L3NwYW4+PGJyPgoJCQkJCQk8c3BhbiBjbGFzcz0ibW9kZWxOYW1lIHNwYW5Nb2RlbE5hbWUiPlJhbmdlciAyMDI1PC9zcGFuPgoJCQkJCTwvaDM+CgkJCQk8L2E+CgkJCQkgICAgPCEtLSBPUEVOIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CiAgICA8ZGl2IGNsYXNzPSJkaXZOZXdDYXJTdGFydFByaWNlIj4KICAgICAgICDDoCBwYXJ0aXIgZGUKICAgICAgICA8c3BhbiBjbGFzcz0ic3RyaWtlLXByaWNlIj4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+NDUgMzY1PC9zcGFuPjwvc3Bhbj4KICAgICAgICA8aSBzdHlsZT0iY29sb3I6IzAwMDtmb250LXNpemU6MjBweDsiIGNsYXNzPSJjYXJQcmljZUluaXRpYWxUb29sVGlwSWNvbiBmYWwgZmEtaW5mby1jaXJjbGUgYmxhY2tDb2xvckJvbGQiIGRhdGEtdG9vbHRpcD0nJmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtQRFNGOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDs0MiA4NzAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUcmFuc3BvcnQgJmFtcDsgUHLDqXBhcmF0aW9uOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsyIDM5NSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RheGUgQUM6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzEwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RvdGFsJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzQ1IDM2NSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsnPjwvaT4KICAgIDwvZGl2PgogICAgPCEtLSBDTE9TRSBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPjwhLS0gT1BFTiBORVcgQ0FSIFBST01PIFBSSUNFICgyNzQpLS0+PGRpdiBjbGFzcz0iZGl2TmV3Q2FyUHJvbW9QcmljZSI+ZW4gcmFiYWlzIMOgIDxzcGFuIGNsYXNzPSIiIHN0eWxlPSJjb2xvcjogIzAyNzZiMzsiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj40MyAzNjU8L3NwYW4+PC9zcGFuPjwvZGl2PjwhLS0gQ0xPU0UgTkVXIENBUiBQUk9NTyBQUklDRSAoMjgxKS0tPgoJCQkJCTxkaXYgY2xhc3M9ImRpdkNhckluU3RvY2tMaW5rIiBoaWRkZW4+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGRhdGEtdHlwZT0iaW52ZGF0YSIgZGF0YS1tYWtlPSJGb3JkIiBkYXRhLW1vZGVsPSJSYW5nZXIiIGRhdGEteWVhcj0iMjAyNSIgZGF0YS1zdHlsZWlkcz0iNDY2NjYyLDQ2NjY2Myw0NjY2NjQsNDY2NjY1IiBkYXRhLWh5YnJpZD0iMCI+Cgk8L2Rpdj4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckltYWdlQ29udGFpbmVyIGZsZXgtY2VudGVyIGFsaWduLWNlbnRlciAiPgoJCQkJPGEgdGl0bGU9IkZvcmQgUmFuZ2VyIDIwMjUiIGhyZWY9Ij9wYXRoPS9uZXVmcy9Gb3JkLVJhbmdlci0yMDI1Lmh0bWwiPgoJCQkJCTxpbWcgYWx0PSJGb3JkIFJhbmdlciAyMDI1IiBib3JkZXI9IjAiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL2ZyL0ZvcmQvUmFuZ2VyLzIwMjUvNDY2NjYyL1doaXRlL3Byb2ZpbGUud2VicCIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPgoJCQkJPC9hPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyRm9vdGVyQ29udGFpbmVyIHN0YWNrLWxjIC0tcy05Ij4KCQkJCQk8ZGl2IGNsYXNzPSJjYXJQYXltZW50V3JhcHBlciI+CgkJCTxkaXYgY2xhc3M9ImNvbnRlbnQtc2tlbGV0b24gaHRtbC1ibG9jayIgZGF0YS1ibG9jaz0icGF5bWVudEJsb2NrIiBkYXRhLXR5cGU9ImJsb2NrIiBkYXRhLXNvdXJjZT0ic2VydmVyIiBkYXRhLWNhbGxiYWNrPSJwYXltZW50Q2FsY0Jsb2NrIj4KCQkKCTxpbnB1dCBuYW1lPSJibG9jay1kYXRhIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSd7InN0eWxlaWQiOiI0NjY2NjIiLCJ0aXRsZSI6IkZvcmQgUmFuZ2VyIDIwMjUiLCJocmVmIjoiXC9uZXVmc1wvRm9yZC1SYW5nZXItMjAyNS5odG1sIiwibGlua3N0eWxlIjoiIiwibGlua2NsYXNzIjoiIiwiY29udGFpbmVyY2xhc3MiOiIiLCJwcm9tb3RleHQiOiJPZmZyZSBhZGRpdGlvbm5lbGxlISJ9Jz4KCTwvZGl2PgoJPC9kaXY+CgkJCQkKCQkJPC9kaXY+CgkJPC9kaXY+Cgk8L2Rpdj4JPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggIHJlYmF0ZUJvcmRlckNvbG9yIiBpZD0iZmJ4X3RydWNrXzQiPgoJCQoJCTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZUlubmVyQm94IiBpZD0iIj4KCQkJCgkJCTxkaXYgY2xhc3M9ImRpdkNhclRpdGxlQ29udGFpbmVyIj4KCQkJCTxhIHRpdGxlPSJGb3JkIFJhbmdlciAyMDI2IiBocmVmPSI\/cGF0aD0vbmV1ZnMvRm9yZC1SYW5nZXItMjAyNi5odG1sIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9IlJhbmdlciAyMDI2Ij4KCQkJCQk8aDM+CgkJCQkJCTxzcGFuIGNsYXNzPSJzcGFuQ2FyTWFrZSAiPkZvcmQ8L3NwYW4+PGJyPgoJCQkJCQk8c3BhbiBjbGFzcz0ibW9kZWxOYW1lIHNwYW5Nb2RlbE5hbWUiPlJhbmdlciAyMDI2PC9zcGFuPgoJCQkJCTwvaDM+CgkJCQk8L2E+CgkJCQkgICAgPCEtLSBPUEVOIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CiAgICA8ZGl2IGNsYXNzPSJkaXZOZXdDYXJTdGFydFByaWNlIj4KICAgICAgICDDoCBwYXJ0aXIgZGUKICAgICAgICA8c3BhbiBjbGFzcz0iIj4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+NDUgNDY1PC9zcGFuPjwvc3Bhbj4KICAgICAgICA8aSBzdHlsZT0iY29sb3I6IzAwMDtmb250LXNpemU6MjBweDsiIGNsYXNzPSJjYXJQcmljZUluaXRpYWxUb29sVGlwSWNvbiBmYWwgZmEtaW5mby1jaXJjbGUgYmxhY2tDb2xvckJvbGQiIGRhdGEtdG9vbHRpcD0nJmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtQRFNGOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDs0MiA4NzAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUcmFuc3BvcnQgJmFtcDsgUHLDqXBhcmF0aW9uOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsyIDQ5NSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RheGUgQUM6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzEwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RvdGFsJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzQ1IDQ2NSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsnPjwvaT4KICAgIDwvZGl2PgogICAgPCEtLSBDTE9TRSBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgoJCQkJCTxkaXYgY2xhc3M9ImRpdkNhckluU3RvY2tMaW5rIiBoaWRkZW4+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGRhdGEtdHlwZT0iaW52ZGF0YSIgZGF0YS1tYWtlPSJGb3JkIiBkYXRhLW1vZGVsPSJSYW5nZXIiIGRhdGEteWVhcj0iMjAyNiIgZGF0YS1zdHlsZWlkcz0iNDgxNzgyLDQ4MTc4Myw0ODE3ODQsNDgxNzg1IiBkYXRhLWh5YnJpZD0iMCI+Cgk8L2Rpdj4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckltYWdlQ29udGFpbmVyIGZsZXgtY2VudGVyIGFsaWduLWNlbnRlciAiPgoJCQkJPGEgdGl0bGU9IkZvcmQgUmFuZ2VyIDIwMjYiIGhyZWY9Ij9wYXRoPS9uZXVmcy9Gb3JkLVJhbmdlci0yMDI2Lmh0bWwiPgoJCQkJCTxpbWcgYWx0PSJGb3JkIFJhbmdlciAyMDI2IiBib3JkZXI9IjAiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL2ZyL0ZvcmQvUmFuZ2VyLzIwMjYvNDgxNzgyL1doaXRlL3Byb2ZpbGUud2VicCIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPgoJCQkJPC9hPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyRm9vdGVyQ29udGFpbmVyIHN0YWNrLWxjIC0tcy05Ij4KCQkJCQk8ZGl2IGNsYXNzPSJjYXJQYXltZW50V3JhcHBlciI+CgkJCTxkaXYgY2xhc3M9ImNvbnRlbnQtc2tlbGV0b24gaHRtbC1ibG9jayIgZGF0YS1ibG9jaz0icGF5bWVudEJsb2NrIiBkYXRhLXR5cGU9ImJsb2NrIiBkYXRhLXNvdXJjZT0ic2VydmVyIiBkYXRhLWNhbGxiYWNrPSJwYXltZW50Q2FsY0Jsb2NrIj4KCQkKCTxpbnB1dCBuYW1lPSJibG9jay1kYXRhIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSd7InN0eWxlaWQiOiI0ODE3ODIiLCJ0aXRsZSI6IkZvcmQgUmFuZ2VyIDIwMjYiLCJocmVmIjoiXC9uZXVmc1wvRm9yZC1SYW5nZXItMjAyNi5odG1sIiwibGlua3N0eWxlIjoiIiwibGlua2NsYXNzIjoiIiwiY29udGFpbmVyY2xhc3MiOiIiLCJwcm9tb3RleHQiOiJPZmZyZSBhZGRpdGlvbm5lbGxlISJ9Jz4KCTwvZGl2PgoJPC9kaXY+CgkJCQkKCQkJPC9kaXY+CgkJPC9kaXY+Cgk8L2Rpdj4JPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggIHJlYmF0ZUJvcmRlckNvbG9yIiBpZD0iZmJ4X3RydWNrXzUiPgoJCTxkaXYgY2xhc3M9InJlYmF0ZVRhZyI+PHNwYW4gY2xhc3M9InJlYmF0ZVRleHQiPnJhYmFpcyBqdXNxdSfDoDwvc3Bhbj48c3BhbiBjbGFzcz0icmViYXRlQW1vdW50Ij4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+NyA1MDA8L3NwYW4+PC9zcGFuPjwvZGl2PgoJCTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZUlubmVyQm94IiBpZD0iIj4KCQkJCgkJCTxkaXYgY2xhc3M9ImRpdkNhclRpdGxlQ29udGFpbmVyIj4KCQkJCTxhIHRpdGxlPSJGb3JkIEYtMTUwIDIwMjYiIGhyZWY9Ij9wYXRoPS9uZXVmcy9Gb3JkLUZfMTUwLTIwMjYuaHRtbCIgZGF0YS1tYWtlPSJGb3JkIiBkYXRhLW1vZGVsPSJGLTE1MCAyMDI2Ij4KCQkJCQk8aDM+CgkJCQkJCTxzcGFuIGNsYXNzPSJzcGFuQ2FyTWFrZSAiPkZvcmQ8L3NwYW4+PGJyPgoJCQkJCQk8c3BhbiBjbGFzcz0ibW9kZWxOYW1lIHNwYW5Nb2RlbE5hbWUiPkYtMTUwIDIwMjY8L3NwYW4+CgkJCQkJPC9oMz4KCQkJCTwvYT4KCQkJCSAgICA8IS0tIE9QRU4gTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KICAgIDxkaXYgY2xhc3M9ImRpdk5ld0NhclN0YXJ0UHJpY2UiPgogICAgICAgIMOgIHBhcnRpciBkZQogICAgICAgIDxzcGFuIGNsYXNzPSJzdHJpa2UtcHJpY2UiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj41NCA5ODU8L3NwYW4+PC9zcGFuPgogICAgICAgIDxpIHN0eWxlPSJjb2xvcjojMDAwO2ZvbnQtc2l6ZToyMHB4OyIgY2xhc3M9ImNhclByaWNlSW5pdGlhbFRvb2xUaXBJY29uIGZhbCBmYS1pbmZvLWNpcmNsZSBibGFja0NvbG9yQm9sZCIgZGF0YS10b29sdGlwPScmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1BEU0Y6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzUyIDE5MCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RyYW5zcG9ydCAmYW1wOyBQcsOpcGFyYXRpb246Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzIgNjk1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VGF4ZSBBQzombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MTAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VG90YWwmbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7NTQgOTg1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0Oyc+PC9pPgogICAgPC9kaXY+CiAgICA8IS0tIENMT1NFIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+PCEtLSBPUEVOIE5FVyBDQVIgUFJPTU8gUFJJQ0UgKDI3NCktLT48ZGl2IGNsYXNzPSJkaXZOZXdDYXJQcm9tb1ByaWNlIj5lbiByYWJhaXMgw6AgPHNwYW4gY2xhc3M9IiIgc3R5bGU9ImNvbG9yOiAjMDI3NmIzOyI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjQ5IDk4NTwvc3Bhbj48L3NwYW4+PC9kaXY+PCEtLSBDTE9TRSBORVcgQ0FSIFBST01PIFBSSUNFICgyODEpLS0+CgkJCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW5TdG9ja0xpbmsiIGhpZGRlbj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgZGF0YS10eXBlPSJpbnZkYXRhIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9IkYtMTUwIiBkYXRhLXllYXI9IjIwMjYiIGRhdGEtc3R5bGVpZHM9IjQ4MTc5Nyw0ODE3OTUsNDgxNzk4LDQ4MTc5OSw0ODE4MDAsNDgxNzk2LDQ4MTgwMSw0ODE4MDUsNDgxODA2LDQ4MTgwMiw0ODE4MDMsNDgxODA3LDQ4MTgwOCw0ODE4MTAsNDgxODA0LDQ4MTgxMSw0ODE4MTYsNDgxODE4LDQ4MTgxNSw0ODE4MTIsNDgxODE5LDQ4MTgxMyw0ODE4MjAsNDgxODE0LDQ4MTgyMSw0ODE4MjIiIGRhdGEtaHlicmlkPSIwIj4KCTwvZGl2PgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW1hZ2VDb250YWluZXIgZmxleC1jZW50ZXIgYWxpZ24tY2VudGVyICI+CgkJCQk8YSB0aXRsZT0iRm9yZCBGLTE1MCAyMDI2IiBocmVmPSI\/cGF0aD0vbmV1ZnMvRm9yZC1GXzE1MC0yMDI2Lmh0bWwiPgoJCQkJCTxpbWcgYWx0PSJGb3JkIEYtMTUwIDIwMjYiIGJvcmRlcj0iMCIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvZnIvRm9yZC9GXzE1MC8yMDI2LzQ4MTc5Ny9XaGl0ZS9wcm9maWxlLndlYnAiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj4KCQkJCTwvYT4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckZvb3RlckNvbnRhaW5lciBzdGFjay1sYyAtLXMtOSI+CgkJCQkJPGRpdiBjbGFzcz0iY2FyUGF5bWVudFdyYXBwZXIiPgoJCQk8ZGl2IGNsYXNzPSJjb250ZW50LXNrZWxldG9uIGh0bWwtYmxvY2siIGRhdGEtYmxvY2s9InBheW1lbnRCbG9jayIgZGF0YS10eXBlPSJibG9jayIgZGF0YS1zb3VyY2U9InNlcnZlciIgZGF0YS1jYWxsYmFjaz0icGF5bWVudENhbGNCbG9jayI+CgkJCgk8aW5wdXQgbmFtZT0iYmxvY2stZGF0YSIgdHlwZT0iaGlkZGVuIiB2YWx1ZT0neyJzdHlsZWlkIjoiNDgxNzk3IiwidGl0bGUiOiJGb3JkIEYtMTUwIDIwMjYiLCJocmVmIjoiXC9uZXVmc1wvRm9yZC1GXzE1MC0yMDI2Lmh0bWwiLCJsaW5rc3R5bGUiOiIiLCJsaW5rY2xhc3MiOiIiLCJjb250YWluZXJjbGFzcyI6IiIsInByb21vdGV4dCI6Ik9mZnJlIGFkZGl0aW9ubmVsbGUhIn0nPgoJPC9kaXY+Cgk8L2Rpdj4KCQkJCQoJCQk8L2Rpdj4KCQk8L2Rpdj4KCTwvZGl2Pgk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVPdXRlckJveCAgcmViYXRlQm9yZGVyQ29sb3IiIGlkPSJmYnhfdHJ1Y2tfNiI+CgkJPGRpdiBjbGFzcz0icmViYXRlVGFnIj48c3BhbiBjbGFzcz0icmViYXRlVGV4dCI+cmFiYWlzIGp1c3F1J8OgPC9zcGFuPjxzcGFuIGNsYXNzPSJyZWJhdGVBbW91bnQiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj4xMSAwMDA8L3NwYW4+PC9zcGFuPjwvZGl2PgoJCTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZUlubmVyQm94IiBpZD0iIj4KCQkJCgkJCTxkaXYgY2xhc3M9ImRpdkNhclRpdGxlQ29udGFpbmVyIj4KCQkJCTxhIHRpdGxlPSJGb3JkIEYtMTUwIDIwMjUiIGhyZWY9Ij9wYXRoPS9uZXVmcy9Gb3JkLUZfMTUwLTIwMjUuaHRtbCIgZGF0YS1tYWtlPSJGb3JkIiBkYXRhLW1vZGVsPSJGLTE1MCAyMDI1Ij4KCQkJCQk8aDM+CgkJCQkJCTxzcGFuIGNsYXNzPSJzcGFuQ2FyTWFrZSAiPkZvcmQ8L3NwYW4+PGJyPgoJCQkJCQk8c3BhbiBjbGFzcz0ibW9kZWxOYW1lIHNwYW5Nb2RlbE5hbWUiPkYtMTUwIDIwMjU8L3NwYW4+CgkJCQkJPC9oMz4KCQkJCTwvYT4KCQkJCSAgICA8IS0tIE9QRU4gTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KICAgIDxkaXYgY2xhc3M9ImRpdk5ld0NhclN0YXJ0UHJpY2UiPgogICAgICAgIMOgIHBhcnRpciBkZQogICAgICAgIDxzcGFuIGNsYXNzPSJzdHJpa2UtcHJpY2UiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj41MyAzMDA8L3NwYW4+PC9zcGFuPgogICAgICAgIDxpIHN0eWxlPSJjb2xvcjojMDAwO2ZvbnQtc2l6ZToyMHB4OyIgY2xhc3M9ImNhclByaWNlSW5pdGlhbFRvb2xUaXBJY29uIGZhbCBmYS1pbmZvLWNpcmNsZSBibGFja0NvbG9yQm9sZCIgZGF0YS10b29sdGlwPScmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1BEU0Y6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzUyIDM1NSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RyYW5zcG9ydCAmYW1wOyBQcsOpcGFyYXRpb246Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzIgNTk1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VGF4ZSBBQzombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MTAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VG90YWwmbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7NTMgMzAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0Oyc+PC9pPgogICAgPC9kaXY+CiAgICA8IS0tIENMT1NFIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+PCEtLSBPUEVOIE5FVyBDQVIgUFJPTU8gUFJJQ0UgKDI3NCktLT48ZGl2IGNsYXNzPSJkaXZOZXdDYXJQcm9tb1ByaWNlIj5lbiByYWJhaXMgw6AgPHNwYW4gY2xhc3M9IiIgc3R5bGU9ImNvbG9yOiAjMDI3NmIzOyI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjQ1IDMwMDwvc3Bhbj48L3NwYW4+PC9kaXY+PCEtLSBDTE9TRSBORVcgQ0FSIFBST01PIFBSSUNFICgyODEpLS0+CgkJCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW5TdG9ja0xpbmsiIGhpZGRlbj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgZGF0YS10eXBlPSJpbnZkYXRhIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9IkYtMTUwIiBkYXRhLXllYXI9IjIwMjUiIGRhdGEtc3R5bGVpZHM9IjQ2NDE1Miw0NjQxNTAsNDY0MTUzLDQ2NDE1NCw0NjQxNTUsNDY0MTU2LDQ2NDE1MSw0NjQxNjAsNDY0MTYxLDQ2NDE1Nyw0NjQxNjIsNDY0MTU4LDQ2NDE1OSw0NjQxNjMsNDY0MTY0LDQ2NDE2NSw0NjQxNzEsNDY0MTcyLDQ2NDE2OSw0NjQxNjYsNDY0MTczLDQ2NDE2Nyw0NjQxNzQsNDY0MTY4LDQ2NDE3NSw0NjQxNzciIGRhdGEtaHlicmlkPSIwIj4KCTwvZGl2PgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW1hZ2VDb250YWluZXIgZmxleC1jZW50ZXIgYWxpZ24tY2VudGVyICI+CgkJCQk8YSB0aXRsZT0iRm9yZCBGLTE1MCAyMDI1IiBocmVmPSI\/cGF0aD0vbmV1ZnMvRm9yZC1GXzE1MC0yMDI1Lmh0bWwiPgoJCQkJCTxpbWcgYWx0PSJGb3JkIEYtMTUwIDIwMjUiIGJvcmRlcj0iMCIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvZnIvRm9yZC9GXzE1MC8yMDI1LzQ2NDE1Mi9XaGl0ZS9wcm9maWxlLndlYnAiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj4KCQkJCTwvYT4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckZvb3RlckNvbnRhaW5lciBzdGFjay1sYyAtLXMtOSI+CgkJCQkJPGRpdiBjbGFzcz0iY2FyUGF5bWVudFdyYXBwZXIiPgoJCQk8ZGl2IGNsYXNzPSJjb250ZW50LXNrZWxldG9uIGh0bWwtYmxvY2siIGRhdGEtYmxvY2s9InBheW1lbnRCbG9jayIgZGF0YS10eXBlPSJibG9jayIgZGF0YS1zb3VyY2U9InNlcnZlciIgZGF0YS1jYWxsYmFjaz0icGF5bWVudENhbGNCbG9jayI+CgkJCgk8aW5wdXQgbmFtZT0iYmxvY2stZGF0YSIgdHlwZT0iaGlkZGVuIiB2YWx1ZT0neyJzdHlsZWlkIjoiNDY0MTUyIiwidGl0bGUiOiJGb3JkIEYtMTUwIDIwMjUiLCJocmVmIjoiXC9uZXVmc1wvRm9yZC1GXzE1MC0yMDI1Lmh0bWwiLCJsaW5rc3R5bGUiOiIiLCJsaW5rY2xhc3MiOiIiLCJjb250YWluZXJjbGFzcyI6IiIsInByb21vdGV4dCI6Ik9mZnJlIGFkZGl0aW9ubmVsbGUhIn0nPgoJPC9kaXY+Cgk8L2Rpdj4KCQkJCQoJCQk8L2Rpdj4KCQk8L2Rpdj4KCTwvZGl2Pgk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVPdXRlckJveCAgcmViYXRlQm9yZGVyQ29sb3IiIGlkPSJmYnhfdHJ1Y2tfNyI+CgkJCgkJPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlSW5uZXJCb3giIGlkPSIiPgoJCQkKCQkJPGRpdiBjbGFzcz0iZGl2Q2FyVGl0bGVDb250YWluZXIiPgoJCQkJPGEgdGl0bGU9IkZvcmQgU3VwZXIgRHV0eSBGLTI1MCBTUlcgMjAyNSIgaHJlZj0iP3BhdGg9L25ldWZzL0ZvcmQtU3VwZXJfRHV0eV9GXzI1MF9TUlctMjAyNS5odG1sIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9IlN1cGVyIER1dHkgRi0yNTAgU1JXIDIwMjUiPgoJCQkJCTxoMz4KCQkJCQkJPHNwYW4gY2xhc3M9InNwYW5DYXJNYWtlICI+Rm9yZDwvc3Bhbj48YnI+CgkJCQkJCTxzcGFuIGNsYXNzPSJtb2RlbE5hbWUgc3Bhbk1vZGVsTmFtZSI+U3VwZXIgRHV0eSBGLTI1MCBTUlcgMjAyNTwvc3Bhbj4KCQkJCQk8L2gzPgoJCQkJPC9hPgoJCQkJICAgIDwhLS0gT1BFTiBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgogICAgPGRpdiBjbGFzcz0iZGl2TmV3Q2FyU3RhcnRQcmljZSI+CiAgICAgICAgw6AgcGFydGlyIGRlCiAgICAgICAgPHNwYW4gY2xhc3M9IiI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjYyIDQ3NDwvc3Bhbj48L3NwYW4+CiAgICAgICAgPGkgc3R5bGU9ImNvbG9yOiMwMDA7Zm9udC1zaXplOjIwcHg7IiBjbGFzcz0iY2FyUHJpY2VJbml0aWFsVG9vbFRpcEljb24gZmFsIGZhLWluZm8tY2lyY2xlIGJsYWNrQ29sb3JCb2xkIiBkYXRhLXRvb2x0aXA9JyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7UERTRjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7NTkgOTc5Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VHJhbnNwb3J0ICZhbXA7IFByw6lwYXJhdGlvbjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MiAzOTUmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUYXhlIEFDOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsxMDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUb3RhbCZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDs2MiA0NzQmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jz48L2k+CiAgICA8L2Rpdj4KICAgIDwhLS0gQ0xPU0UgTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KCQkJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJblN0b2NrTGluayIgaGlkZGVuPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBkYXRhLXR5cGU9ImludmRhdGEiIGRhdGEtbWFrZT0iRm9yZCIgZGF0YS1tb2RlbD0iU3VwZXIgRHV0eSBGLTI1MCBTUlciIGRhdGEteWVhcj0iMjAyNSIgZGF0YS1zdHlsZWlkcz0iNDY1MzY3LDQ2NTM2OCw0NjUzNzAsNDY1MzczLDQ2NTM3OSw0NjUzNzEsNDY1Mzc0LDQ2NTM4MCw0NjUzNjksNDY1MzcyLDQ2NTM3NSw0NjUzODEsNDY1Mzc2LDQ2NTM4Miw0NjUzNzcsNDY1Mzc4LDQ2NTM4Myw0NjUzODQiIGRhdGEtaHlicmlkPSIwIj4KCTwvZGl2PgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW1hZ2VDb250YWluZXIgZmxleC1jZW50ZXIgYWxpZ24tY2VudGVyICI+CgkJCQk8YSB0aXRsZT0iRm9yZCBTdXBlciBEdXR5IEYtMjUwIFNSVyAyMDI1IiBocmVmPSI\/cGF0aD0vbmV1ZnMvRm9yZC1TdXBlcl9EdXR5X0ZfMjUwX1NSVy0yMDI1Lmh0bWwiPgoJCQkJCTxpbWcgYWx0PSJGb3JkIFN1cGVyIER1dHkgRi0yNTAgU1JXIDIwMjUiIGJvcmRlcj0iMCIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvZnIvRm9yZC9TdXBlcl9EdXR5X0ZfMjUwX1NSVy8yMDI1LzQ2NTM2Ny9XaGl0ZS9wcm9maWxlLndlYnAiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj4KCQkJCTwvYT4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckZvb3RlckNvbnRhaW5lciBzdGFjay1sYyAtLXMtOSI+CgkJCQkJPGRpdiBjbGFzcz0iY2FyUGF5bWVudFdyYXBwZXIiPgoJCQk8ZGl2IGNsYXNzPSJjb250ZW50LXNrZWxldG9uIGh0bWwtYmxvY2siIGRhdGEtYmxvY2s9InBheW1lbnRCbG9jayIgZGF0YS10eXBlPSJibG9jayIgZGF0YS1zb3VyY2U9InNlcnZlciIgZGF0YS1jYWxsYmFjaz0icGF5bWVudENhbGNCbG9jayI+CgkJCgk8aW5wdXQgbmFtZT0iYmxvY2stZGF0YSIgdHlwZT0iaGlkZGVuIiB2YWx1ZT0neyJzdHlsZWlkIjoiNDY1MzY3IiwidGl0bGUiOiJGb3JkIFN1cGVyIER1dHkgRi0yNTAgU1JXIDIwMjUiLCJocmVmIjoiXC9uZXVmc1wvRm9yZC1TdXBlcl9EdXR5X0ZfMjUwX1NSVy0yMDI1Lmh0bWwiLCJsaW5rc3R5bGUiOiIiLCJsaW5rY2xhc3MiOiIiLCJjb250YWluZXJjbGFzcyI6IiIsInByb21vdGV4dCI6Ik9mZnJlIGFkZGl0aW9ubmVsbGUhIn0nPgoJPC9kaXY+Cgk8L2Rpdj4KCQkJCQoJCQk8L2Rpdj4KCQk8L2Rpdj4KCTwvZGl2Pgk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVPdXRlckJveCAgcmViYXRlQm9yZGVyQ29sb3IiIGlkPSJmYnhfdHJ1Y2tfOCI+CgkJCgkJPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlSW5uZXJCb3giIGlkPSIiPgoJCQkKCQkJPGRpdiBjbGFzcz0iZGl2Q2FyVGl0bGVDb250YWluZXIiPgoJCQkJPGEgdGl0bGU9IkZvcmQgU3VwZXIgRHV0eSBGLTI1MCBTUlcgMjAyNiIgaHJlZj0iP3BhdGg9L25ldWZzL0ZvcmQtU3VwZXJfRHV0eV9GXzI1MF9TUlctMjAyNi5odG1sIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9IlN1cGVyIER1dHkgRi0yNTAgU1JXIDIwMjYiPgoJCQkJCTxoMz4KCQkJCQkJPHNwYW4gY2xhc3M9InNwYW5DYXJNYWtlICI+Rm9yZDwvc3Bhbj48YnI+CgkJCQkJCTxzcGFuIGNsYXNzPSJtb2RlbE5hbWUgc3Bhbk1vZGVsTmFtZSI+U3VwZXIgRHV0eSBGLTI1MCBTUlcgMjAyNjwvc3Bhbj4KCQkJCQk8L2gzPgoJCQkJPC9hPgoJCQkJICAgIDwhLS0gT1BFTiBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgogICAgPGRpdiBjbGFzcz0iZGl2TmV3Q2FyU3RhcnRQcmljZSI+CiAgICAgICAgw6AgcGFydGlyIGRlCiAgICAgICAgPHNwYW4gY2xhc3M9IiI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjY0IDAzNDwvc3Bhbj48L3NwYW4+CiAgICAgICAgPGkgc3R5bGU9ImNvbG9yOiMwMDA7Zm9udC1zaXplOjIwcHg7IiBjbGFzcz0iY2FyUHJpY2VJbml0aWFsVG9vbFRpcEljb24gZmFsIGZhLWluZm8tY2lyY2xlIGJsYWNrQ29sb3JCb2xkIiBkYXRhLXRvb2x0aXA9JyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7UERTRjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7NjEgMjM5Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VHJhbnNwb3J0ICZhbXA7IFByw6lwYXJhdGlvbjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MiA2OTUmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUYXhlIEFDOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsxMDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUb3RhbCZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDs2NCAwMzQmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jz48L2k+CiAgICA8L2Rpdj4KICAgIDwhLS0gQ0xPU0UgTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KCQkJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJblN0b2NrTGluayIgaGlkZGVuPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBkYXRhLXR5cGU9ImludmRhdGEiIGRhdGEtbWFrZT0iRm9yZCIgZGF0YS1tb2RlbD0iU3VwZXIgRHV0eSBGLTI1MCBTUlciIGRhdGEteWVhcj0iMjAyNiIgZGF0YS1zdHlsZWlkcz0iNDc5NDA0LDQ3OTQyMyw0Nzk0MDUsNDc5NDA3LDQ3OTQxMCw0Nzk0MjQsNDc5NDE2LDQ3OTQyMiw0Nzk0MDgsNDc5NDExLDQ3OTQxNyw0Nzk0MDYsNDc5NDI2LDQ3OTQyNyw0Nzk0MjksNDc5NDI1LDQ3OTQwOSw0Nzk0MTIsNDc5NDE4LDQ3OTQyOCw0Nzk0MzAsNDc5NDEzLDQ3OTQxOSw0Nzk0MTQsNDc5NDE1LDQ3OTQyMCw0Nzk0MjEiIGRhdGEtaHlicmlkPSIwIj4KCTwvZGl2PgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW1hZ2VDb250YWluZXIgZmxleC1jZW50ZXIgYWxpZ24tY2VudGVyICI+CgkJCQk8YSB0aXRsZT0iRm9yZCBTdXBlciBEdXR5IEYtMjUwIFNSVyAyMDI2IiBocmVmPSI\/cGF0aD0vbmV1ZnMvRm9yZC1TdXBlcl9EdXR5X0ZfMjUwX1NSVy0yMDI2Lmh0bWwiPgoJCQkJCTxpbWcgYWx0PSJGb3JkIFN1cGVyIER1dHkgRi0yNTAgU1JXIDIwMjYiIGJvcmRlcj0iMCIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvZnIvRm9yZC9TdXBlcl9EdXR5X0ZfMjUwX1NSVy8yMDI2LzQ3OTQwNC9XaGl0ZS9wcm9maWxlLndlYnAiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj4KCQkJCTwvYT4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckZvb3RlckNvbnRhaW5lciBzdGFjay1sYyAtLXMtOSI+CgkJCQkJPGRpdiBjbGFzcz0iY2FyUGF5bWVudFdyYXBwZXIiPgoJCQk8ZGl2IGNsYXNzPSJjb250ZW50LXNrZWxldG9uIGh0bWwtYmxvY2siIGRhdGEtYmxvY2s9InBheW1lbnRCbG9jayIgZGF0YS10eXBlPSJibG9jayIgZGF0YS1zb3VyY2U9InNlcnZlciIgZGF0YS1jYWxsYmFjaz0icGF5bWVudENhbGNCbG9jayI+CgkJCgk8aW5wdXQgbmFtZT0iYmxvY2stZGF0YSIgdHlwZT0iaGlkZGVuIiB2YWx1ZT0neyJzdHlsZWlkIjoiNDc5NDA0IiwidGl0bGUiOiJGb3JkIFN1cGVyIER1dHkgRi0yNTAgU1JXIDIwMjYiLCJocmVmIjoiXC9uZXVmc1wvRm9yZC1TdXBlcl9EdXR5X0ZfMjUwX1NSVy0yMDI2Lmh0bWwiLCJsaW5rc3R5bGUiOiIiLCJsaW5rY2xhc3MiOiIiLCJjb250YWluZXJjbGFzcyI6IiIsInByb21vdGV4dCI6Ik9mZnJlIGFkZGl0aW9ubmVsbGUhIn0nPgoJPC9kaXY+Cgk8L2Rpdj4KCQkJCQoJCQk8L2Rpdj4KCQk8L2Rpdj4KCTwvZGl2Pgk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVPdXRlckJveCAgcmViYXRlQm9yZGVyQ29sb3IiIGlkPSJmYnhfdHJ1Y2tfOSI+CgkJCgkJPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlSW5uZXJCb3giIGlkPSIiPgoJCQkKCQkJPGRpdiBjbGFzcz0iZGl2Q2FyVGl0bGVDb250YWluZXIiPgoJCQkJPGEgdGl0bGU9IkZvcmQgU3VwZXIgRHV0eSBGLTM1MCBEUlcgMjAyNSIgaHJlZj0iP3BhdGg9L25ldWZzL0ZvcmQtU3VwZXJfRHV0eV9GXzM1MF9EUlctMjAyNS5odG1sIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9IlN1cGVyIER1dHkgRi0zNTAgw6Agcm91ZXMgYXJyacOocmUganVtZWzDqWVzIDIwMjUiPgoJCQkJCTxoMz4KCQkJCQkJPHNwYW4gY2xhc3M9InNwYW5DYXJNYWtlICI+Rm9yZDwvc3Bhbj48YnI+CgkJCQkJCTxzcGFuIGNsYXNzPSJtb2RlbE5hbWUgc3Bhbk1vZGVsTmFtZSI+U3VwZXIgRHV0eSBGLTM1MCBEUlcgMjAyNTwvc3Bhbj4KCQkJCQk8L2gzPgoJCQkJPC9hPgoJCQkJICAgIDwhLS0gT1BFTiBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgogICAgPGRpdiBjbGFzcz0iZGl2TmV3Q2FyU3RhcnRQcmljZSI+CiAgICAgICAgw6AgcGFydGlyIGRlCiAgICAgICAgPHNwYW4gY2xhc3M9IiI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjY1IDcyMDwvc3Bhbj48L3NwYW4+CiAgICAgICAgPGkgc3R5bGU9ImNvbG9yOiMwMDA7Zm9udC1zaXplOjIwcHg7IiBjbGFzcz0iY2FyUHJpY2VJbml0aWFsVG9vbFRpcEljb24gZmFsIGZhLWluZm8tY2lyY2xlIGJsYWNrQ29sb3JCb2xkIiBkYXRhLXRvb2x0aXA9JyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7UERTRjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7NjMgMjI1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VHJhbnNwb3J0ICZhbXA7IFByw6lwYXJhdGlvbjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MiAzOTUmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUYXhlIEFDOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsxMDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUb3RhbCZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDs2NSA3MjAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jz48L2k+CiAgICA8L2Rpdj4KICAgIDwhLS0gQ0xPU0UgTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KCQkJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJblN0b2NrTGluayIgaGlkZGVuPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBkYXRhLXR5cGU9ImludmRhdGEiIGRhdGEtbWFrZT0iRm9yZCIgZGF0YS1tb2RlbD0iU3VwZXIgRHV0eSBGLTM1MCBEUlciIGRhdGEteWVhcj0iMjAyNSIgZGF0YS1zdHlsZWlkcz0iNDY1MjI0LDQ2NTc3OCw0NjU3ODIsNDY1MjI1LDQ2NTc3OSw0NjU3ODMsNDY1NzgwLDQ2NTc4Niw0NjU3ODQsNDY1NzgxLDQ2NTc5MCw0NjU3ODcsNDY1Nzg1LDQ2NTIyOCw0NjUyMjYsNDY1Nzg4LDQ2NTc5MSw0NjU3OTIsNDY1Nzg5LDQ2NTc5Myw0NjUyMjksNDY1MjI3LDQ2NTc5NCw0NjUyMzAsNDY1MjMxLDQ2NTIzMiIgZGF0YS1oeWJyaWQ9IjAiPgoJPC9kaXY+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJbWFnZUNvbnRhaW5lciBmbGV4LWNlbnRlciBhbGlnbi1jZW50ZXIgIj4KCQkJCTxhIHRpdGxlPSJGb3JkIFN1cGVyIER1dHkgRi0zNTAgRFJXIDIwMjUiIGhyZWY9Ij9wYXRoPS9uZXVmcy9Gb3JkLVN1cGVyX0R1dHlfRl8zNTBfRFJXLTIwMjUuaHRtbCI+CgkJCQkJPGltZyBhbHQ9IkZvcmQgU3VwZXIgRHV0eSBGLTM1MCBEUlcgMjAyNSIgYm9yZGVyPSIwIiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9mci9Gb3JkL1N1cGVyX0R1dHlfRl8zNTBfRFJXLzIwMjUvNDY1MjI0L1doaXRlL3Byb2ZpbGUud2VicCIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPgoJCQkJPC9hPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyRm9vdGVyQ29udGFpbmVyIHN0YWNrLWxjIC0tcy05Ij4KCQkJCQk8ZGl2IGNsYXNzPSJjYXJQYXltZW50V3JhcHBlciI+CgkJCTxkaXYgY2xhc3M9ImNvbnRlbnQtc2tlbGV0b24gaHRtbC1ibG9jayIgZGF0YS1ibG9jaz0icGF5bWVudEJsb2NrIiBkYXRhLXR5cGU9ImJsb2NrIiBkYXRhLXNvdXJjZT0ic2VydmVyIiBkYXRhLWNhbGxiYWNrPSJwYXltZW50Q2FsY0Jsb2NrIj4KCQkKCTxpbnB1dCBuYW1lPSJibG9jay1kYXRhIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSd7InN0eWxlaWQiOiI0NjUyMjQiLCJ0aXRsZSI6IkZvcmQgU3VwZXIgRHV0eSBGLTM1MCBEUlcgMjAyNSIsImhyZWYiOiJcL25ldWZzXC9Gb3JkLVN1cGVyX0R1dHlfRl8zNTBfRFJXLTIwMjUuaHRtbCIsImxpbmtzdHlsZSI6IiIsImxpbmtjbGFzcyI6IiIsImNvbnRhaW5lcmNsYXNzIjoiIiwicHJvbW90ZXh0IjoiT2ZmcmUgYWRkaXRpb25uZWxsZSEifSc+Cgk8L2Rpdj4KCTwvZGl2PgoJCQkJCgkJCTwvZGl2PgoJCTwvZGl2PgoJPC9kaXY+CTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZU91dGVyQm94ICByZWJhdGVCb3JkZXJDb2xvciIgaWQ9ImZieF90cnVja18xMCI+CgkJCgkJPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlSW5uZXJCb3giIGlkPSIiPgoJCQkKCQkJPGRpdiBjbGFzcz0iZGl2Q2FyVGl0bGVDb250YWluZXIiPgoJCQkJPGEgdGl0bGU9IkZvcmQgU3VwZXIgRHV0eSBGLTM1MCBTUlcgMjAyNiIgaHJlZj0iP3BhdGg9L25ldWZzL0ZvcmQtU3VwZXJfRHV0eV9GXzM1MF9TUlctMjAyNi5odG1sIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9IlN1cGVyIER1dHkgRi0zNTAgw6Agcm91ZXMgYXJyacOocmUgc2ltcGxlcyAyMDI2Ij4KCQkJCQk8aDM+CgkJCQkJCTxzcGFuIGNsYXNzPSJzcGFuQ2FyTWFrZSAiPkZvcmQ8L3NwYW4+PGJyPgoJCQkJCQk8c3BhbiBjbGFzcz0ibW9kZWxOYW1lIHNwYW5Nb2RlbE5hbWUiPlN1cGVyIER1dHkgRi0zNTAgU1JXIDIwMjY8L3NwYW4+CgkJCQkJPC9oMz4KCQkJCTwvYT4KCQkJCSAgICA8IS0tIE9QRU4gTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KICAgIDxkaXYgY2xhc3M9ImRpdk5ld0NhclN0YXJ0UHJpY2UiPgogICAgICAgIMOgIHBhcnRpciBkZQogICAgICAgIDxzcGFuIGNsYXNzPSIiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj42NiA1MzQ8L3NwYW4+PC9zcGFuPgogICAgICAgIDxpIHN0eWxlPSJjb2xvcjojMDAwO2ZvbnQtc2l6ZToyMHB4OyIgY2xhc3M9ImNhclByaWNlSW5pdGlhbFRvb2xUaXBJY29uIGZhbCBmYS1pbmZvLWNpcmNsZSBibGFja0NvbG9yQm9sZCIgZGF0YS10b29sdGlwPScmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1BEU0Y6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzYzIDczOSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RyYW5zcG9ydCAmYW1wOyBQcsOpcGFyYXRpb246Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzIgNjk1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VGF4ZSBBQzombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MTAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VG90YWwmbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7NjYgNTM0Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0Oyc+PC9pPgogICAgPC9kaXY+CiAgICA8IS0tIENMT1NFIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CgkJCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW5TdG9ja0xpbmsiIGhpZGRlbj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgZGF0YS10eXBlPSJpbnZkYXRhIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9IlN1cGVyIER1dHkgRi0zNTAgU1JXIiBkYXRhLXllYXI9IjIwMjYiIGRhdGEtc3R5bGVpZHM9IjQ3NzU3NSw0Nzc1OTQsNDc3OTkwLDQ3NzU3Niw0Nzc1NzgsNDc3OTkxLDQ3NzU4MSw0Nzc1OTUsNDc3NTg3LDQ3Nzk5Miw0Nzc5OTQsNDc3NTkzLDQ3NzU3OSw0Nzc5OTMsNDc3OTk4LDQ3Nzk5NSw0Nzc1ODIsNDc3NTg4LDQ3Nzk5Niw0Nzc5OTksNDc3NTc3LDQ3NzU5Nyw0Nzc1OTgsNDc4MDAwLDQ3Nzk5Nyw0Nzc2MDAsNDc3NTk2LDQ3ODAwMSw0Nzc1ODAsNDc3NTgzLDQ3NzU4OSw0Nzc1OTksNDc3NjAxLDQ3ODAwMiw0Nzc1ODQsNDc3NTkwLDQ3NzU4NSw0Nzc1ODYsNDc3NTkxLDQ3NzU5MiIgZGF0YS1oeWJyaWQ9IjAiPgoJPC9kaXY+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJbWFnZUNvbnRhaW5lciBmbGV4LWNlbnRlciBhbGlnbi1jZW50ZXIgIj4KCQkJCTxhIHRpdGxlPSJGb3JkIFN1cGVyIER1dHkgRi0zNTAgU1JXIDIwMjYiIGhyZWY9Ij9wYXRoPS9uZXVmcy9Gb3JkLVN1cGVyX0R1dHlfRl8zNTBfU1JXLTIwMjYuaHRtbCI+CgkJCQkJPGltZyBhbHQ9IkZvcmQgU3VwZXIgRHV0eSBGLTM1MCBTUlcgMjAyNiIgYm9yZGVyPSIwIiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9mci9Gb3JkL1N1cGVyX0R1dHlfRl8zNTBfU1JXLzIwMjYvNDc3NTc1L1doaXRlL3Byb2ZpbGUud2VicCIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPgoJCQkJPC9hPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyRm9vdGVyQ29udGFpbmVyIHN0YWNrLWxjIC0tcy05Ij4KCQkJCQk8ZGl2IGNsYXNzPSJjYXJQYXltZW50V3JhcHBlciI+CgkJCTxkaXYgY2xhc3M9ImNvbnRlbnQtc2tlbGV0b24gaHRtbC1ibG9jayIgZGF0YS1ibG9jaz0icGF5bWVudEJsb2NrIiBkYXRhLXR5cGU9ImJsb2NrIiBkYXRhLXNvdXJjZT0ic2VydmVyIiBkYXRhLWNhbGxiYWNrPSJwYXltZW50Q2FsY0Jsb2NrIj4KCQkKCTxpbnB1dCBuYW1lPSJibG9jay1kYXRhIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSd7InN0eWxlaWQiOiI0Nzc1NzUiLCJ0aXRsZSI6IkZvcmQgU3VwZXIgRHV0eSBGLTM1MCBTUlcgMjAyNiIsImhyZWYiOiJcL25ldWZzXC9Gb3JkLVN1cGVyX0R1dHlfRl8zNTBfU1JXLTIwMjYuaHRtbCIsImxpbmtzdHlsZSI6IiIsImxpbmtjbGFzcyI6IiIsImNvbnRhaW5lcmNsYXNzIjoiIiwicHJvbW90ZXh0IjoiT2ZmcmUgYWRkaXRpb25uZWxsZSEifSc+Cgk8L2Rpdj4KCTwvZGl2PgoJCQkJCgkJCTwvZGl2PgoJCTwvZGl2PgoJPC9kaXY+CTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZU91dGVyQm94ICByZWJhdGVCb3JkZXJDb2xvciIgaWQ9ImZieF90cnVja18xMSI+CgkJCgkJPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlSW5uZXJCb3giIGlkPSIiPgoJCQkKCQkJPGRpdiBjbGFzcz0iZGl2Q2FyVGl0bGVDb250YWluZXIiPgoJCQkJPGEgdGl0bGU9IkZvcmQgU3VwZXIgRHV0eSBGLTQ1MCBEUlcgMjAyNSIgaHJlZj0iP3BhdGg9L25ldWZzL0ZvcmQtU3VwZXJfRHV0eV9GXzQ1MF9EUlctMjAyNS5odG1sIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9IlN1cGVyIER1dHkgRi00NTAgRFJXIDIwMjUiPgoJCQkJCTxoMz4KCQkJCQkJPHNwYW4gY2xhc3M9InNwYW5DYXJNYWtlICI+Rm9yZDwvc3Bhbj48YnI+CgkJCQkJCTxzcGFuIGNsYXNzPSJtb2RlbE5hbWUgc3Bhbk1vZGVsTmFtZSI+U3VwZXIgRHV0eSBGLTQ1MCBEUlcgMjAyNTwvc3Bhbj4KCQkJCQk8L2gzPgoJCQkJPC9hPgoJCQkJICAgIDwhLS0gT1BFTiBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgogICAgPGRpdiBjbGFzcz0iZGl2TmV3Q2FyU3RhcnRQcmljZSI+CiAgICAgICAgw6AgcGFydGlyIGRlCiAgICAgICAgPHNwYW4gY2xhc3M9IiI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjY5IDY0OTwvc3Bhbj48L3NwYW4+CiAgICAgICAgPGkgc3R5bGU9ImNvbG9yOiMwMDA7Zm9udC1zaXplOjIwcHg7IiBjbGFzcz0iY2FyUHJpY2VJbml0aWFsVG9vbFRpcEljb24gZmFsIGZhLWluZm8tY2lyY2xlIGJsYWNrQ29sb3JCb2xkIiBkYXRhLXRvb2x0aXA9JyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7UERTRjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7NjcgMTU0Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VHJhbnNwb3J0ICZhbXA7IFByw6lwYXJhdGlvbjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MiAzOTUmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUYXhlIEFDOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsxMDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUb3RhbCZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDs2OSA2NDkmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jz48L2k+CiAgICA8L2Rpdj4KICAgIDwhLS0gQ0xPU0UgTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KCQkJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJblN0b2NrTGluayIgaGlkZGVuPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBkYXRhLXR5cGU9ImludmRhdGEiIGRhdGEtbWFrZT0iRm9yZCIgZGF0YS1tb2RlbD0iU3VwZXIgRHV0eSBGLTQ1MCBEUlciIGRhdGEteWVhcj0iMjAyNSIgZGF0YS1zdHlsZWlkcz0iNDY0OTc2LDQ2NDk4MCw0NjQ5ODQsNDY0OTg4LDQ2NDk3Nyw0NjQ5ODEsNDY0OTg1LDQ2NDk5Miw0NjQ5ODksNDY0OTc4LDQ2NDk4Miw0NjUwMDAsNDY0OTkzLDQ2NDk4Niw0NjUwMDUsNDY0OTkwLDQ2NDk3OSw0NjQ5ODMsNDY1MDAxLDQ2NDk4Nyw0NjUwMDYsNDY0OTk0LDQ2NDk5MSw0NjQ5OTgsNDY1MDAyLDQ2NDk5NSw0NjUwMDcsNDY0OTk5LDQ2NTAwMyw0NjUwMDgsNDY1NTk2LDQ2NDk5Niw0NjU1OTcsNDY0OTk3LDQ2NTU5OSw0NjU1OTgsNDY1NjAwLDQ2NTYwMSw0NjUwMDQsNDY1MDA5LDQ2NTYwMiw0NjU2MDMsNDY1NjA0IiBkYXRhLWh5YnJpZD0iMCI+Cgk8L2Rpdj4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckltYWdlQ29udGFpbmVyIGZsZXgtY2VudGVyIGFsaWduLWNlbnRlciAiPgoJCQkJPGEgdGl0bGU9IkZvcmQgU3VwZXIgRHV0eSBGLTQ1MCBEUlcgMjAyNSIgaHJlZj0iP3BhdGg9L25ldWZzL0ZvcmQtU3VwZXJfRHV0eV9GXzQ1MF9EUlctMjAyNS5odG1sIj4KCQkJCQk8aW1nIGFsdD0iRm9yZCBTdXBlciBEdXR5IEYtNDUwIERSVyAyMDI1IiBib3JkZXI9IjAiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL2ZyL0ZvcmQvU3VwZXJfRHV0eV9GXzQ1MF9EUlcvMjAyNS80NjQ5NzYvV2hpdGUvcHJvZmlsZS53ZWJwIiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+CgkJCQk8L2E+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJGb290ZXJDb250YWluZXIgc3RhY2stbGMgLS1zLTkiPgoJCQkJCTxkaXYgY2xhc3M9ImNhclBheW1lbnRXcmFwcGVyIj4KCQkJPGRpdiBjbGFzcz0iY29udGVudC1za2VsZXRvbiBodG1sLWJsb2NrIiBkYXRhLWJsb2NrPSJwYXltZW50QmxvY2siIGRhdGEtdHlwZT0iYmxvY2siIGRhdGEtc291cmNlPSJzZXJ2ZXIiIGRhdGEtY2FsbGJhY2s9InBheW1lbnRDYWxjQmxvY2siPgoJCQoJPGlucHV0IG5hbWU9ImJsb2NrLWRhdGEiIHR5cGU9ImhpZGRlbiIgdmFsdWU9J3sic3R5bGVpZCI6IjQ2NDk3NiIsInRpdGxlIjoiRm9yZCBTdXBlciBEdXR5IEYtNDUwIERSVyAyMDI1IiwiaHJlZiI6IlwvbmV1ZnNcL0ZvcmQtU3VwZXJfRHV0eV9GXzQ1MF9EUlctMjAyNS5odG1sIiwibGlua3N0eWxlIjoiIiwibGlua2NsYXNzIjoiIiwiY29udGFpbmVyY2xhc3MiOiIiLCJwcm9tb3RleHQiOiJPZmZyZSBhZGRpdGlvbm5lbGxlISJ9Jz4KCTwvZGl2PgoJPC9kaXY+CgkJCQkKCQkJPC9kaXY+CgkJPC9kaXY+Cgk8L2Rpdj48L2Rpdj48L2Rpdj48IS0tIENMT1NFIENBVEVHT1JZQk9YV1JBUFBFUiAoMjA2MCktLT48IS0tIE9QRU4gQ0FURUdPUllCT1hXUkFQUEVSICgyMDUyKSAtLT48ZGl2IGlkPSJjbGFzc2h5YnJpZF9jb250YWluZXIiIGNsYXNzPSJkaXZTcGFuIGRpdlNwYW4xMiBkaXZDYXRlZ29yeUJveFdyYXBwZXIiIHN0YXRlPSJvcGVuIiBuYnZpc2libGU9IjEiPjxoMiBjbGFzcz0iZGVmYXVsdCBpY29uLWhlYWRpbmcgZmxleC1ib3ggYWxpZ24tY2VudGVyIj4KCTxzcGFuIGNsYXNzPSJmYSBmYS1jaGV2cm9uLXJpZ2h0IiBhcmlhLWhpZGRlbj0idHJ1ZSI+PC9zcGFuPgoJPGJveC1sYyBjbGFzcz0iLXB2MCI+CgkJPGRpdiBjbGFzcz0ibWFpblRleHQgLWJvbGQiPkh5YnJpZGVzIChIeWJyaWRlIGzDqWdlcikgbmV1dmVzIEZvcmQgMjAyNSAmYW1wOyAyMDI2PC9kaXY+CgkJPGRpdiBjbGFzcz0ic2Vjb25kYXJ5VGV4dCI+w6AgQ29hdGljb29rPC9kaXY+Cgk8L2JveC1sYz4KPC9oMj48ZGl2IGNsYXNzPSJkaXZTcGFuIGRpdlNwYW4xMiBkaXZDYXJzQm94V3JhcHBlciBDTEFTU19oeWJyaWQiPgk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVPdXRlckJveCAgcmViYXRlQm9yZGVyQ29sb3IiIGlkPSJmYnhfaHlicmlkXzEiPgoJCQoJCTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZUlubmVyQm94IiBpZD0iIj4KCQkJCgkJCTxkaXYgY2xhc3M9ImRpdkNhclRpdGxlQ29udGFpbmVyIj4KCQkJCTxhIHRpdGxlPSJGb3JkIE1hdmVyaWNrIEh5YnJpZCAyMDI1IiBocmVmPSI\/cGF0aD0vbmV1ZnMvRm9yZC1NYXZlcmlja19IeWJyaWQtMjAyNS5odG1sIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9Ik1hdmVyaWNrIEh5YnJpZGUgMjAyNSI+CgkJCQkJPGgzPgoJCQkJCQk8c3BhbiBjbGFzcz0ic3BhbkNhck1ha2UgIj5Gb3JkPC9zcGFuPjxicj4KCQkJCQkJPHNwYW4gY2xhc3M9Im1vZGVsTmFtZSBzcGFuTW9kZWxOYW1lIj5NYXZlcmljayBIeWJyaWQgMjAyNTwvc3Bhbj4KCQkJCQk8L2gzPgoJCQkJPC9hPgoJCQkJICAgIDwhLS0gT1BFTiBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgogICAgPGRpdiBjbGFzcz0iZGl2TmV3Q2FyU3RhcnRQcmljZSI+CiAgICAgICAgw6AgcGFydGlyIGRlCiAgICAgICAgPHNwYW4gY2xhc3M9IiI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjM2IDk5NTwvc3Bhbj48L3NwYW4+CiAgICAgICAgPGkgc3R5bGU9ImNvbG9yOiMwMDA7Zm9udC1zaXplOjIwcHg7IiBjbGFzcz0iY2FyUHJpY2VJbml0aWFsVG9vbFRpcEljb24gZmFsIGZhLWluZm8tY2lyY2xlIGJsYWNrQ29sb3JCb2xkIiBkYXRhLXRvb2x0aXA9JyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7UERTRjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MzQgNjAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VHJhbnNwb3J0ICZhbXA7IFByw6lwYXJhdGlvbjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MiAyOTUmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUYXhlIEFDOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsxMDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUb3RhbCZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDszNiA5OTUmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jz48L2k+CiAgICA8L2Rpdj4KICAgIDwhLS0gQ0xPU0UgTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KCQkJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJblN0b2NrTGluayIgaGlkZGVuPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBkYXRhLXR5cGU9ImludmRhdGEiIGRhdGEtbWFrZT0iRm9yZCIgZGF0YS1tb2RlbD0iTWF2ZXJpY2sgSHlicmlkIiBkYXRhLXllYXI9IjIwMjUiIGRhdGEtc3R5bGVpZHM9IjQ2MjgzMSw0NjI4MzIsNDYyODMzLDQ2MjgzNCw0NjI4MzUiIGRhdGEtaHlicmlkPSIxIj4KCTwvZGl2PgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW1hZ2VDb250YWluZXIgZmxleC1jZW50ZXIgYWxpZ24tY2VudGVyICI+CgkJCQk8YSB0aXRsZT0iRm9yZCBNYXZlcmljayBIeWJyaWQgMjAyNSIgaHJlZj0iP3BhdGg9L25ldWZzL0ZvcmQtTWF2ZXJpY2tfSHlicmlkLTIwMjUuaHRtbCI+CgkJCQkJPGltZyBhbHQ9IkZvcmQgTWF2ZXJpY2sgSHlicmlkIDIwMjUiIGJvcmRlcj0iMCIgY2xhc3M9ImxpdmVsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvZnIvRm9yZC9NYXZlcmlja19IeWJyaWQvMjAyNS80NjI4MzEvV2hpdGUvcHJvZmlsZS53ZWJwIiBzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9mci9Gb3JkL01hdmVyaWNrX0h5YnJpZC8yMDI1LzQ2MjgzMS9XaGl0ZS9wcm9maWxlLndlYnAiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj4KCQkJCTwvYT4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckZvb3RlckNvbnRhaW5lciBzdGFjay1sYyAtLXMtOSI+CgkJCQkJPGRpdiBjbGFzcz0iY2FyUGF5bWVudFdyYXBwZXIiPgoJCQk8ZGl2IGNsYXNzPSJjb250ZW50LXNrZWxldG9uIGh0bWwtYmxvY2siIGRhdGEtYmxvY2s9InBheW1lbnRCbG9jayIgZGF0YS10eXBlPSJibG9jayIgZGF0YS1zb3VyY2U9InNlcnZlciIgZGF0YS1jYWxsYmFjaz0icGF5bWVudENhbGNCbG9jayI+CgkJCgk8aW5wdXQgbmFtZT0iYmxvY2stZGF0YSIgdHlwZT0iaGlkZGVuIiB2YWx1ZT0neyJzdHlsZWlkIjoiNDYyODMxIiwidGl0bGUiOiJGb3JkIE1hdmVyaWNrIEh5YnJpZCAyMDI1IiwiaHJlZiI6IlwvbmV1ZnNcL0ZvcmQtTWF2ZXJpY2tfSHlicmlkLTIwMjUuaHRtbCIsImxpbmtzdHlsZSI6IiIsImxpbmtjbGFzcyI6IiIsImNvbnRhaW5lcmNsYXNzIjoiIiwicHJvbW90ZXh0IjoiT2ZmcmUgYWRkaXRpb25uZWxsZSEifSc+Cgk8L2Rpdj4KCTwvZGl2PgoJCQkJCgkJCTwvZGl2PgoJCTwvZGl2PgoJPC9kaXY+CTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZU91dGVyQm94ICByZWJhdGVCb3JkZXJDb2xvciIgaWQ9ImZieF9oeWJyaWRfMiI+CgkJCgkJPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlSW5uZXJCb3giIGlkPSIiPgoJCQkKCQkJPGRpdiBjbGFzcz0iZGl2Q2FyVGl0bGVDb250YWluZXIiPgoJCQkJPGEgdGl0bGU9IkZvcmQgTWF2ZXJpY2sgSHlicmlkIDIwMjYiIGhyZWY9Ij9wYXRoPS9uZXVmcy9Gb3JkLU1hdmVyaWNrX0h5YnJpZC0yMDI2Lmh0bWwiIGRhdGEtbWFrZT0iRm9yZCIgZGF0YS1tb2RlbD0iTWF2ZXJpY2sgSHlicmlkZSAyMDI2Ij4KCQkJCQk8aDM+CgkJCQkJCTxzcGFuIGNsYXNzPSJzcGFuQ2FyTWFrZSAiPkZvcmQ8L3NwYW4+PGJyPgoJCQkJCQk8c3BhbiBjbGFzcz0ibW9kZWxOYW1lIHNwYW5Nb2RlbE5hbWUiPk1hdmVyaWNrIEh5YnJpZCAyMDI2PC9zcGFuPgoJCQkJCTwvaDM+CgkJCQk8L2E+CgkJCQkgICAgPCEtLSBPUEVOIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CiAgICA8ZGl2IGNsYXNzPSJkaXZOZXdDYXJTdGFydFByaWNlIj4KICAgICAgICDDoCBwYXJ0aXIgZGUKICAgICAgICA8c3BhbiBjbGFzcz0iIj4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+MzcgNTk1PC9zcGFuPjwvc3Bhbj4KICAgICAgICA8aSBzdHlsZT0iY29sb3I6IzAwMDtmb250LXNpemU6MjBweDsiIGNsYXNzPSJjYXJQcmljZUluaXRpYWxUb29sVGlwSWNvbiBmYWwgZmEtaW5mby1jaXJjbGUgYmxhY2tDb2xvckJvbGQiIGRhdGEtdG9vbHRpcD0nJmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtQRFNGOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDszNSAxMDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUcmFuc3BvcnQgJmFtcDsgUHLDqXBhcmF0aW9uOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsyIDM5NSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RheGUgQUM6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzEwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RvdGFsJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzM3IDU5NSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsnPjwvaT4KICAgIDwvZGl2PgogICAgPCEtLSBDTE9TRSBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgoJCQkJCTxkaXYgY2xhc3M9ImRpdkNhckluU3RvY2tMaW5rIiBoaWRkZW4+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGRhdGEtdHlwZT0iaW52ZGF0YSIgZGF0YS1tYWtlPSJGb3JkIiBkYXRhLW1vZGVsPSJNYXZlcmljayBIeWJyaWQiIGRhdGEteWVhcj0iMjAyNiIgZGF0YS1zdHlsZWlkcz0iNDgxMTY5LDQ4MTE3MCw0ODExNzEsNDgxMTcyLDQ4MTE3NCIgZGF0YS1oeWJyaWQ9IjEiPgoJPC9kaXY+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJbWFnZUNvbnRhaW5lciBmbGV4LWNlbnRlciBhbGlnbi1jZW50ZXIgIj4KCQkJCTxhIHRpdGxlPSJGb3JkIE1hdmVyaWNrIEh5YnJpZCAyMDI2IiBocmVmPSI\/cGF0aD0vbmV1ZnMvRm9yZC1NYXZlcmlja19IeWJyaWQtMjAyNi5odG1sIj4KCQkJCQk8aW1nIGFsdD0iRm9yZCBNYXZlcmljayBIeWJyaWQgMjAyNiIgYm9yZGVyPSIwIiBjbGFzcz0ibGl2ZWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9mci9Gb3JkL01hdmVyaWNrX0h5YnJpZC8yMDI2LzQ4MTE2OS9XaGl0ZS9wcm9maWxlLndlYnAiIHNyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL2ZyL0ZvcmQvTWF2ZXJpY2tfSHlicmlkLzIwMjYvNDgxMTY5L1doaXRlL3Byb2ZpbGUud2VicCIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPgoJCQkJPC9hPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyRm9vdGVyQ29udGFpbmVyIHN0YWNrLWxjIC0tcy05Ij4KCQkJCQk8ZGl2IGNsYXNzPSJjYXJQYXltZW50V3JhcHBlciI+CgkJCTxkaXYgY2xhc3M9ImNvbnRlbnQtc2tlbGV0b24gaHRtbC1ibG9jayIgZGF0YS1ibG9jaz0icGF5bWVudEJsb2NrIiBkYXRhLXR5cGU9ImJsb2NrIiBkYXRhLXNvdXJjZT0ic2VydmVyIiBkYXRhLWNhbGxiYWNrPSJwYXltZW50Q2FsY0Jsb2NrIj4KCQkKCTxpbnB1dCBuYW1lPSJibG9jay1kYXRhIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSd7InN0eWxlaWQiOiI0ODExNjkiLCJ0aXRsZSI6IkZvcmQgTWF2ZXJpY2sgSHlicmlkIDIwMjYiLCJocmVmIjoiXC9uZXVmc1wvRm9yZC1NYXZlcmlja19IeWJyaWQtMjAyNi5odG1sIiwibGlua3N0eWxlIjoiIiwibGlua2NsYXNzIjoiIiwiY29udGFpbmVyY2xhc3MiOiIiLCJwcm9tb3RleHQiOiJPZmZyZSBhZGRpdGlvbm5lbGxlISJ9Jz4KCTwvZGl2PgoJPC9kaXY+CgkJCQkKCQkJPC9kaXY+CgkJPC9kaXY+Cgk8L2Rpdj4JPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggIHJlYmF0ZUJvcmRlckNvbG9yIiBpZD0iZmJ4X2h5YnJpZF8zIj4KCQk8ZGl2IGNsYXNzPSJyZWJhdGVUYWciPjxzcGFuIGNsYXNzPSJyZWJhdGVUZXh0Ij5yYWJhaXMganVzcXUnw6A8L3NwYW4+PHNwYW4gY2xhc3M9InJlYmF0ZUFtb3VudCI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjQgNTAwPC9zcGFuPjwvc3Bhbj48L2Rpdj4KCQk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVJbm5lckJveCIgaWQ9IiI+CgkJCQoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJUaXRsZUNvbnRhaW5lciI+CgkJCQk8YSB0aXRsZT0iRm9yZCBFc2NhcGUgSHlicmlkIDIwMjUiIGhyZWY9Ij9wYXRoPS9uZXVmcy9Gb3JkLUVzY2FwZV9IeWJyaWQtMjAyNS5odG1sIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9IkVzY2FwZSBIeWJyaWRlIDIwMjUiPgoJCQkJCTxoMz4KCQkJCQkJPHNwYW4gY2xhc3M9InNwYW5DYXJNYWtlICI+Rm9yZDwvc3Bhbj48YnI+CgkJCQkJCTxzcGFuIGNsYXNzPSJtb2RlbE5hbWUgc3Bhbk1vZGVsTmFtZSI+RXNjYXBlIEh5YnJpZCAyMDI1PC9zcGFuPgoJCQkJCTwvaDM+CgkJCQk8L2E+CgkJCQkgICAgPCEtLSBPUEVOIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CiAgICA8ZGl2IGNsYXNzPSJkaXZOZXdDYXJTdGFydFByaWNlIj4KICAgICAgICDDoCBwYXJ0aXIgZGUKICAgICAgICA8c3BhbiBjbGFzcz0ic3RyaWtlLXByaWNlIj4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+NDYgMzQ0PC9zcGFuPjwvc3Bhbj4KICAgICAgICA8aSBzdHlsZT0iY29sb3I6IzAwMDtmb250LXNpemU6MjBweDsiIGNsYXNzPSJjYXJQcmljZUluaXRpYWxUb29sVGlwSWNvbiBmYWwgZmEtaW5mby1jaXJjbGUgYmxhY2tDb2xvckJvbGQiIGRhdGEtdG9vbHRpcD0nJmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtQRFNGOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDs0MyA5NDkmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUcmFuc3BvcnQgJmFtcDsgUHLDqXBhcmF0aW9uOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsyIDI5NSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RheGUgQUM6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzEwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RvdGFsJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzQ2IDM0NCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsnPjwvaT4KICAgIDwvZGl2PgogICAgPCEtLSBDTE9TRSBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPjwhLS0gT1BFTiBORVcgQ0FSIFBST01PIFBSSUNFICgyNzQpLS0+PGRpdiBjbGFzcz0iZGl2TmV3Q2FyUHJvbW9QcmljZSI+ZW4gcmFiYWlzIMOgIDxzcGFuIGNsYXNzPSIiIHN0eWxlPSJjb2xvcjogIzAyNzZiMzsiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj40MSA4NDQ8L3NwYW4+PC9zcGFuPjwvZGl2PjwhLS0gQ0xPU0UgTkVXIENBUiBQUk9NTyBQUklDRSAoMjgxKS0tPgoJCQkJCTxkaXYgY2xhc3M9ImRpdkNhckluU3RvY2tMaW5rIiBoaWRkZW4+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGRhdGEtdHlwZT0iaW52ZGF0YSIgZGF0YS1tYWtlPSJGb3JkIiBkYXRhLW1vZGVsPSJFc2NhcGUgSHlicmlkIiBkYXRhLXllYXI9IjIwMjUiIGRhdGEtc3R5bGVpZHM9IjQ2MTIwOSw0NjEyMTEsNDYxMjEwIiBkYXRhLWh5YnJpZD0iMSI+Cgk8L2Rpdj4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckltYWdlQ29udGFpbmVyIGZsZXgtY2VudGVyIGFsaWduLWNlbnRlciAiPgoJCQkJPGEgdGl0bGU9IkZvcmQgRXNjYXBlIEh5YnJpZCAyMDI1IiBocmVmPSI\/cGF0aD0vbmV1ZnMvRm9yZC1Fc2NhcGVfSHlicmlkLTIwMjUuaHRtbCI+CgkJCQkJPGltZyBhbHQ9IkZvcmQgRXNjYXBlIEh5YnJpZCAyMDI1IiBib3JkZXI9IjAiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL2ZyL0ZvcmQvRXNjYXBlX0h5YnJpZC8yMDI1LzQ2MTIwOS9XaGl0ZS9wcm9maWxlLndlYnAiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj4KCQkJCTwvYT4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckZvb3RlckNvbnRhaW5lciBzdGFjay1sYyAtLXMtOSI+CgkJCQkJPGRpdiBjbGFzcz0iY2FyUGF5bWVudFdyYXBwZXIiPgoJCQk8ZGl2IGNsYXNzPSJjb250ZW50LXNrZWxldG9uIGh0bWwtYmxvY2siIGRhdGEtYmxvY2s9InBheW1lbnRCbG9jayIgZGF0YS10eXBlPSJibG9jayIgZGF0YS1zb3VyY2U9InNlcnZlciIgZGF0YS1jYWxsYmFjaz0icGF5bWVudENhbGNCbG9jayI+CgkJCgk8aW5wdXQgbmFtZT0iYmxvY2stZGF0YSIgdHlwZT0iaGlkZGVuIiB2YWx1ZT0neyJzdHlsZWlkIjoiNDYxMjA5IiwidGl0bGUiOiJGb3JkIEVzY2FwZSBIeWJyaWQgMjAyNSIsImhyZWYiOiJcL25ldWZzXC9Gb3JkLUVzY2FwZV9IeWJyaWQtMjAyNS5odG1sIiwibGlua3N0eWxlIjoiIiwibGlua2NsYXNzIjoiIiwiY29udGFpbmVyY2xhc3MiOiIiLCJwcm9tb3RleHQiOiJPZmZyZSBhZGRpdGlvbm5lbGxlISJ9Jz4KCTwvZGl2PgoJPC9kaXY+CgkJCQkKCQkJPC9kaXY+CgkJPC9kaXY+Cgk8L2Rpdj4JPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggIHJlYmF0ZUJvcmRlckNvbG9yIiBpZD0iZmJ4X2h5YnJpZF80Ij4KCQkKCQk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVJbm5lckJveCIgaWQ9IiI+CgkJCQoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJUaXRsZUNvbnRhaW5lciI+CgkJCQk8YSB0aXRsZT0iRm9yZCBFc2NhcGUgSHlicmlkIDIwMjYiIGhyZWY9Ij9wYXRoPS9uZXVmcy9Gb3JkLUVzY2FwZV9IeWJyaWQtMjAyNi5odG1sIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9IkVzY2FwZSBIeWJyaWRlIDIwMjYiPgoJCQkJCTxoMz4KCQkJCQkJPHNwYW4gY2xhc3M9InNwYW5DYXJNYWtlICI+Rm9yZDwvc3Bhbj48YnI+CgkJCQkJCTxzcGFuIGNsYXNzPSJtb2RlbE5hbWUgc3Bhbk1vZGVsTmFtZSI+RXNjYXBlIEh5YnJpZCAyMDI2PC9zcGFuPgoJCQkJCTwvaDM+CgkJCQk8L2E+CgkJCQkgICAgPCEtLSBPUEVOIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CiAgICA8ZGl2IGNsYXNzPSJkaXZOZXdDYXJTdGFydFByaWNlIj4KICAgICAgICDDoCBwYXJ0aXIgZGUKICAgICAgICA8c3BhbiBjbGFzcz0iIj4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+NDYgOTk0PC9zcGFuPjwvc3Bhbj4KICAgICAgICA8aSBzdHlsZT0iY29sb3I6IzAwMDtmb250LXNpemU6MjBweDsiIGNsYXNzPSJjYXJQcmljZUluaXRpYWxUb29sVGlwSWNvbiBmYWwgZmEtaW5mby1jaXJjbGUgYmxhY2tDb2xvckJvbGQiIGRhdGEtdG9vbHRpcD0nJmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtQRFNGOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDs0NCA1OTkmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUcmFuc3BvcnQgJmFtcDsgUHLDqXBhcmF0aW9uOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsyIDI5NSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RheGUgQUM6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzEwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RvdGFsJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzQ2IDk5NCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsnPjwvaT4KICAgIDwvZGl2PgogICAgPCEtLSBDTE9TRSBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgoJCQkJCTxkaXYgY2xhc3M9ImRpdkNhckluU3RvY2tMaW5rIiBoaWRkZW4+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGRhdGEtdHlwZT0iaW52ZGF0YSIgZGF0YS1tYWtlPSJGb3JkIiBkYXRhLW1vZGVsPSJFc2NhcGUgSHlicmlkIiBkYXRhLXllYXI9IjIwMjYiIGRhdGEtc3R5bGVpZHM9IjQ3ODgzMSw0Nzg4MzMsNDc4ODMwIiBkYXRhLWh5YnJpZD0iMSI+Cgk8L2Rpdj4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckltYWdlQ29udGFpbmVyIGZsZXgtY2VudGVyIGFsaWduLWNlbnRlciAiPgoJCQkJPGEgdGl0bGU9IkZvcmQgRXNjYXBlIEh5YnJpZCAyMDI2IiBocmVmPSI\/cGF0aD0vbmV1ZnMvRm9yZC1Fc2NhcGVfSHlicmlkLTIwMjYuaHRtbCI+CgkJCQkJPGltZyBhbHQ9IkZvcmQgRXNjYXBlIEh5YnJpZCAyMDI2IiBib3JkZXI9IjAiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL2ZyL0ZvcmQvRXNjYXBlX0h5YnJpZC8yMDI2LzQ3ODgzMS9XaGl0ZS9wcm9maWxlLndlYnAiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj4KCQkJCTwvYT4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckZvb3RlckNvbnRhaW5lciBzdGFjay1sYyAtLXMtOSI+CgkJCQkJPGRpdiBjbGFzcz0iY2FyUGF5bWVudFdyYXBwZXIiPgoJCQk8ZGl2IGNsYXNzPSJjb250ZW50LXNrZWxldG9uIGh0bWwtYmxvY2siIGRhdGEtYmxvY2s9InBheW1lbnRCbG9jayIgZGF0YS10eXBlPSJibG9jayIgZGF0YS1zb3VyY2U9InNlcnZlciIgZGF0YS1jYWxsYmFjaz0icGF5bWVudENhbGNCbG9jayI+CgkJCgk8aW5wdXQgbmFtZT0iYmxvY2stZGF0YSIgdHlwZT0iaGlkZGVuIiB2YWx1ZT0neyJzdHlsZWlkIjoiNDc4ODMxIiwidGl0bGUiOiJGb3JkIEVzY2FwZSBIeWJyaWQgMjAyNiIsImhyZWYiOiJcL25ldWZzXC9Gb3JkLUVzY2FwZV9IeWJyaWQtMjAyNi5odG1sIiwibGlua3N0eWxlIjoiIiwibGlua2NsYXNzIjoiIiwiY29udGFpbmVyY2xhc3MiOiIiLCJwcm9tb3RleHQiOiJPZmZyZSBhZGRpdGlvbm5lbGxlISJ9Jz4KCTwvZGl2PgoJPC9kaXY+CgkJCQkKCQkJPC9kaXY+CgkJPC9kaXY+Cgk8L2Rpdj48L2Rpdj48L2Rpdj48IS0tIENMT1NFIENBVEVHT1JZQk9YV1JBUFBFUiAoMjA2MCktLT48IS0tIE9QRU4gQ0FURUdPUllCT1hXUkFQUEVSICgyMDUyKSAtLT48ZGl2IGlkPSJjbGFzc3BoZXZfY29udGFpbmVyIiBjbGFzcz0iZGl2U3BhbiBkaXZTcGFuMTIgZGl2Q2F0ZWdvcnlCb3hXcmFwcGVyIiBzdGF0ZT0ib3BlbiIgbmJ2aXNpYmxlPSIxIj48aDIgY2xhc3M9ImRlZmF1bHQgaWNvbi1oZWFkaW5nIGZsZXgtYm94IGFsaWduLWNlbnRlciI+Cgk8c3BhbiBjbGFzcz0iZmEgZmEtY2hldnJvbi1yaWdodCIgYXJpYS1oaWRkZW49InRydWUiPjwvc3Bhbj4KCTxib3gtbGMgY2xhc3M9Ii1wdjAiPgoJCTxkaXYgY2xhc3M9Im1haW5UZXh0IC1ib2xkIj5IeWJyaWRlcyByZWNoYXJnZWFibGUgbmV1ZnMgRm9yZCAyMDI1ICZhbXA7IDIwMjY8L2Rpdj4KCQk8ZGl2IGNsYXNzPSJzZWNvbmRhcnlUZXh0Ij7DoCBDb2F0aWNvb2s8L2Rpdj4KCTwvYm94LWxjPgo8L2gyPjxkaXYgY2xhc3M9ImRpdlNwYW4gZGl2U3BhbjEyIGRpdkNhcnNCb3hXcmFwcGVyIENMQVNTX3BoZXYiPgk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVPdXRlckJveCAgcmViYXRlQm9yZGVyQ29sb3IiIGlkPSJmYnhfcGhldl8xIj4KCQk8ZGl2IGNsYXNzPSJyZWJhdGVUYWciPjxzcGFuIGNsYXNzPSJyZWJhdGVUZXh0Ij5yYWJhaXMganVzcXUnw6A8L3NwYW4+PHNwYW4gY2xhc3M9InJlYmF0ZUFtb3VudCI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjcgOTM0PC9zcGFuPjwvc3Bhbj48L2Rpdj4KCQk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVJbm5lckJveCIgaWQ9IiI+CgkJCQoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJUaXRsZUNvbnRhaW5lciI+CgkJCQk8YSB0aXRsZT0iRm9yZCBFc2NhcGUgUEhFViAyMDI1IiBocmVmPSI\/cGF0aD0vbmV1ZnMvRm9yZC1Fc2NhcGVfUEhFVi0yMDI1Lmh0bWwiIGRhdGEtbWFrZT0iRm9yZCIgZGF0YS1tb2RlbD0iRXNjYXBlIFZIUiAyMDI1Ij4KCQkJCQk8aDM+CgkJCQkJCTxzcGFuIGNsYXNzPSJzcGFuQ2FyTWFrZSAiPkZvcmQ8L3NwYW4+PGJyPgoJCQkJCQk8c3BhbiBjbGFzcz0ibW9kZWxOYW1lIHNwYW5Nb2RlbE5hbWUiPkVzY2FwZSBQSEVWIDIwMjU8L3NwYW4+CgkJCQkJPC9oMz4KCQkJCTwvYT4KCQkJCSAgICA8IS0tIE9QRU4gTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KICAgIDxkaXYgY2xhc3M9ImRpdk5ld0NhclN0YXJ0UHJpY2UiPgogICAgICAgIMOgIHBhcnRpciBkZQogICAgICAgIDxzcGFuIGNsYXNzPSJzdHJpa2UtcHJpY2UiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj40MyA4OTQ8L3NwYW4+PC9zcGFuPgogICAgICAgIDxpIHN0eWxlPSJjb2xvcjojMDAwO2ZvbnQtc2l6ZToyMHB4OyIgY2xhc3M9ImNhclByaWNlSW5pdGlhbFRvb2xUaXBJY29uIGZhbCBmYS1pbmZvLWNpcmNsZSBibGFja0NvbG9yQm9sZCIgZGF0YS10b29sdGlwPScmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1BEU0Y6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzQxIDQ5OSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RyYW5zcG9ydCAmYW1wOyBQcsOpcGFyYXRpb246Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzIgMjk1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VGF4ZSBBQzombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MTAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VG90YWwmbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7NDMgODk0Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0Oyc+PC9pPgogICAgPC9kaXY+CiAgICA8IS0tIENMT1NFIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+PCEtLSBPUEVOIE5FVyBDQVIgUFJPTU8gUFJJQ0UgKDI3NCktLT48ZGl2IGNsYXNzPSJkaXZOZXdDYXJQcm9tb1ByaWNlIj5lbiByYWJhaXMgw6AgPHNwYW4gY2xhc3M9IiIgc3R5bGU9ImNvbG9yOiAjMDI3NmIzOyI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjM1IDk2MDwvc3Bhbj48L3NwYW4+PC9kaXY+PCEtLSBDTE9TRSBORVcgQ0FSIFBST01PIFBSSUNFICgyODEpLS0+CgkJCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW5TdG9ja0xpbmsiIGhpZGRlbj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgZGF0YS10eXBlPSJpbnZkYXRhIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9IkVzY2FwZSBQSEVWIiBkYXRhLXllYXI9IjIwMjUiIGRhdGEtc3R5bGVpZHM9IjQ2MTIwNiIgZGF0YS1oeWJyaWQ9IjEiPgoJPC9kaXY+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJbWFnZUNvbnRhaW5lciBmbGV4LWNlbnRlciBhbGlnbi1jZW50ZXIgIj4KCQkJCTxhIHRpdGxlPSJGb3JkIEVzY2FwZSBQSEVWIDIwMjUiIGhyZWY9Ij9wYXRoPS9uZXVmcy9Gb3JkLUVzY2FwZV9QSEVWLTIwMjUuaHRtbCI+CgkJCQkJPGltZyBhbHQ9IkZvcmQgRXNjYXBlIFBIRVYgMjAyNSIgYm9yZGVyPSIwIiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9mci9Gb3JkL0VzY2FwZV9QSEVWLzIwMjUvNDYxMjA2L1doaXRlL3Byb2ZpbGUud2VicCIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPgoJCQkJPC9hPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyRm9vdGVyQ29udGFpbmVyIHN0YWNrLWxjIC0tcy05Ij4KCQkJCQk8ZGl2IGNsYXNzPSJjYXJQYXltZW50V3JhcHBlciI+CgkJCTxkaXYgY2xhc3M9ImNvbnRlbnQtc2tlbGV0b24gaHRtbC1ibG9jayIgZGF0YS1ibG9jaz0icGF5bWVudEJsb2NrIiBkYXRhLXR5cGU9ImJsb2NrIiBkYXRhLXNvdXJjZT0ic2VydmVyIiBkYXRhLWNhbGxiYWNrPSJwYXltZW50Q2FsY0Jsb2NrIj4KCQkKCTxpbnB1dCBuYW1lPSJibG9jay1kYXRhIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSd7InN0eWxlaWQiOiI0NjEyMDYiLCJ0aXRsZSI6IkZvcmQgRXNjYXBlIFBIRVYgMjAyNSIsImhyZWYiOiJcL25ldWZzXC9Gb3JkLUVzY2FwZV9QSEVWLTIwMjUuaHRtbCIsImxpbmtzdHlsZSI6IiIsImxpbmtjbGFzcyI6IiIsImNvbnRhaW5lcmNsYXNzIjoiIiwicHJvbW90ZXh0IjoiT2ZmcmUgYWRkaXRpb25uZWxsZSEifSc+Cgk8L2Rpdj4KCTwvZGl2PgoJCQkJCgkJCTwvZGl2PgoJCTwvZGl2PgoJPC9kaXY+CTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZU91dGVyQm94ICByZWJhdGVCb3JkZXJDb2xvciIgaWQ9ImZieF9waGV2XzIiPgoJCTxkaXYgY2xhc3M9InJlYmF0ZVRhZyI+PHNwYW4gY2xhc3M9InJlYmF0ZVRleHQiPnJhYmFpcyBqdXNxdSfDoDwvc3Bhbj48c3BhbiBjbGFzcz0icmViYXRlQW1vdW50Ij4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+NiA0MzQ8L3NwYW4+PC9zcGFuPjwvZGl2PgoJCTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZUlubmVyQm94IiBpZD0iIj4KCQkJCgkJCTxkaXYgY2xhc3M9ImRpdkNhclRpdGxlQ29udGFpbmVyIj4KCQkJCTxhIHRpdGxlPSJGb3JkIEVzY2FwZSBQSEVWIDIwMjYiIGhyZWY9Ij9wYXRoPS9uZXVmcy9Gb3JkLUVzY2FwZV9QSEVWLTIwMjYuaHRtbCIgZGF0YS1tYWtlPSJGb3JkIiBkYXRhLW1vZGVsPSJFc2NhcGUgVkhSIDIwMjYiPgoJCQkJCTxoMz4KCQkJCQkJPHNwYW4gY2xhc3M9InNwYW5DYXJNYWtlICI+Rm9yZDwvc3Bhbj48YnI+CgkJCQkJCTxzcGFuIGNsYXNzPSJtb2RlbE5hbWUgc3Bhbk1vZGVsTmFtZSI+RXNjYXBlIFBIRVYgMjAyNjwvc3Bhbj4KCQkJCQk8L2gzPgoJCQkJPC9hPgoJCQkJICAgIDwhLS0gT1BFTiBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgogICAgPGRpdiBjbGFzcz0iZGl2TmV3Q2FyU3RhcnRQcmljZSI+CiAgICAgICAgw6AgcGFydGlyIGRlCiAgICAgICAgPHNwYW4gY2xhc3M9InN0cmlrZS1wcmljZSI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjQzIDk5NDwvc3Bhbj48L3NwYW4+CiAgICAgICAgPGkgc3R5bGU9ImNvbG9yOiMwMDA7Zm9udC1zaXplOjIwcHg7IiBjbGFzcz0iY2FyUHJpY2VJbml0aWFsVG9vbFRpcEljb24gZmFsIGZhLWluZm8tY2lyY2xlIGJsYWNrQ29sb3JCb2xkIiBkYXRhLXRvb2x0aXA9JyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7UERTRjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7NDEgNTk5Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VHJhbnNwb3J0ICZhbXA7IFByw6lwYXJhdGlvbjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MiAyOTUmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUYXhlIEFDOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsxMDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUb3RhbCZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDs0MyA5OTQmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jz48L2k+CiAgICA8L2Rpdj4KICAgIDwhLS0gQ0xPU0UgTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT48IS0tIE9QRU4gTkVXIENBUiBQUk9NTyBQUklDRSAoMjc0KS0tPjxkaXYgY2xhc3M9ImRpdk5ld0NhclByb21vUHJpY2UiPmVuIHJhYmFpcyDDoCA8c3BhbiBjbGFzcz0iIiBzdHlsZT0iY29sb3I6ICMwMjc2YjM7Ij4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+MzcgNTYwPC9zcGFuPjwvc3Bhbj48L2Rpdj48IS0tIENMT1NFIE5FVyBDQVIgUFJPTU8gUFJJQ0UgKDI4MSktLT4KCQkJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJblN0b2NrTGluayIgaGlkZGVuPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBkYXRhLXR5cGU9ImludmRhdGEiIGRhdGEtbWFrZT0iRm9yZCIgZGF0YS1tb2RlbD0iRXNjYXBlIFBIRVYiIGRhdGEteWVhcj0iMjAyNiIgZGF0YS1zdHlsZWlkcz0iNDc4ODM2IiBkYXRhLWh5YnJpZD0iMSI+Cgk8L2Rpdj4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckltYWdlQ29udGFpbmVyIGZsZXgtY2VudGVyIGFsaWduLWNlbnRlciAiPgoJCQkJPGEgdGl0bGU9IkZvcmQgRXNjYXBlIFBIRVYgMjAyNiIgaHJlZj0iP3BhdGg9L25ldWZzL0ZvcmQtRXNjYXBlX1BIRVYtMjAyNi5odG1sIj4KCQkJCQk8aW1nIGFsdD0iRm9yZCBFc2NhcGUgUEhFViAyMDI2IiBib3JkZXI9IjAiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL2ZyL0ZvcmQvRXNjYXBlX1BIRVYvMjAyNi80Nzg4MzYvV2hpdGUvcHJvZmlsZS53ZWJwIiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+CgkJCQk8L2E+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJGb290ZXJDb250YWluZXIgc3RhY2stbGMgLS1zLTkiPgoJCQkJCTxkaXYgY2xhc3M9ImNhclBheW1lbnRXcmFwcGVyIj4KCQkJPGRpdiBjbGFzcz0iY29udGVudC1za2VsZXRvbiBodG1sLWJsb2NrIiBkYXRhLWJsb2NrPSJwYXltZW50QmxvY2siIGRhdGEtdHlwZT0iYmxvY2siIGRhdGEtc291cmNlPSJzZXJ2ZXIiIGRhdGEtY2FsbGJhY2s9InBheW1lbnRDYWxjQmxvY2siPgoJCQoJPGlucHV0IG5hbWU9ImJsb2NrLWRhdGEiIHR5cGU9ImhpZGRlbiIgdmFsdWU9J3sic3R5bGVpZCI6IjQ3ODgzNiIsInRpdGxlIjoiRm9yZCBFc2NhcGUgUEhFViAyMDI2IiwiaHJlZiI6IlwvbmV1ZnNcL0ZvcmQtRXNjYXBlX1BIRVYtMjAyNi5odG1sIiwibGlua3N0eWxlIjoiIiwibGlua2NsYXNzIjoiIiwiY29udGFpbmVyY2xhc3MiOiIiLCJwcm9tb3RleHQiOiJPZmZyZSBhZGRpdGlvbm5lbGxlISJ9Jz4KCTwvZGl2PgoJPC9kaXY+CgkJCQkKCQkJPC9kaXY+CgkJPC9kaXY+Cgk8L2Rpdj48L2Rpdj48L2Rpdj48IS0tIENMT1NFIENBVEVHT1JZQk9YV1JBUFBFUiAoMjA2MCktLT48IS0tIE9QRU4gQ0FURUdPUllCT1hXUkFQUEVSICgyMDUyKSAtLT48ZGl2IGlkPSJjbGFzc2VsZWN0cmljX2NvbnRhaW5lciIgY2xhc3M9ImRpdlNwYW4gZGl2U3BhbjEyIGRpdkNhdGVnb3J5Qm94V3JhcHBlciIgc3RhdGU9Im9wZW4iIG5idmlzaWJsZT0iMSI+PGgyIGNsYXNzPSJkZWZhdWx0IGljb24taGVhZGluZyBmbGV4LWJveCBhbGlnbi1jZW50ZXIiPgoJPHNwYW4gY2xhc3M9ImZhIGZhLWNoZXZyb24tcmlnaHQiIGFyaWEtaGlkZGVuPSJ0cnVlIj48L3NwYW4+Cgk8Ym94LWxjIGNsYXNzPSItcHYwIj4KCQk8ZGl2IGNsYXNzPSJtYWluVGV4dCAtYm9sZCI+w4lsZWN0cmlxdWVzIG5ldXZlcyBGb3JkIDIwMjUgJmFtcDsgMjAyNjwvZGl2PgoJCTxkaXYgY2xhc3M9InNlY29uZGFyeVRleHQiPsOgIENvYXRpY29vazwvZGl2PgoJPC9ib3gtbGM+CjwvaDI+PGRpdiBjbGFzcz0iZGl2U3BhbiBkaXZTcGFuMTIgZGl2Q2Fyc0JveFdyYXBwZXIgQ0xBU1NfZWxlY3RyaWMiPgk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVPdXRlckJveCAgcmViYXRlQm9yZGVyQ29sb3IiIGlkPSJmYnhfZWxlY3RyaWNfMSI+CgkJPGRpdiBjbGFzcz0icmViYXRlVGFnIj48c3BhbiBjbGFzcz0icmViYXRlVGV4dCI+cmFiYWlzIGp1c3F1J8OgPC9zcGFuPjxzcGFuIGNsYXNzPSJyZWJhdGVBbW91bnQiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj42IDczOTwvc3Bhbj48L3NwYW4+PC9kaXY+CgkJPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlSW5uZXJCb3giIGlkPSIiPgoJCQkKCQkJPGRpdiBjbGFzcz0iZGl2Q2FyVGl0bGVDb250YWluZXIiPgoJCQkJPGEgdGl0bGU9IkZvcmQgTXVzdGFuZyBNYWNoLUUgMjAyNiIgaHJlZj0iP3BhdGg9L25ldWZzL0ZvcmQtTXVzdGFuZ19NYWNoX0UtMjAyNi5odG1sIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9Ik11c3RhbmcgTWFjaC1FIDIwMjYiPgoJCQkJCTxoMz4KCQkJCQkJPHNwYW4gY2xhc3M9InNwYW5DYXJNYWtlICI+Rm9yZDwvc3Bhbj48YnI+CgkJCQkJCTxzcGFuIGNsYXNzPSJtb2RlbE5hbWUgc3Bhbk1vZGVsTmFtZSI+TXVzdGFuZyBNYWNoLUUgMjAyNjwvc3Bhbj4KCQkJCQk8L2gzPgoJCQkJPC9hPgoJCQkJICAgIDwhLS0gT1BFTiBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgogICAgPGRpdiBjbGFzcz0iZGl2TmV3Q2FyU3RhcnRQcmljZSI+CiAgICAgICAgw6AgcGFydGlyIGRlCiAgICAgICAgPHNwYW4gY2xhc3M9InN0cmlrZS1wcmljZSI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjQ5IDY5MDwvc3Bhbj48L3NwYW4+CiAgICAgICAgPGkgc3R5bGU9ImNvbG9yOiMwMDA7Zm9udC1zaXplOjIwcHg7IiBjbGFzcz0iY2FyUHJpY2VJbml0aWFsVG9vbFRpcEljb24gZmFsIGZhLWluZm8tY2lyY2xlIGJsYWNrQ29sb3JCb2xkIiBkYXRhLXRvb2x0aXA9JyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7UERTRjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7NDYgOTk1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VHJhbnNwb3J0ICZhbXA7IFByw6lwYXJhdGlvbjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MiA1OTUmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUYXhlIEFDOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsxMDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUb3RhbCZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDs0OSA2OTAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jz48L2k+CiAgICA8L2Rpdj4KICAgIDwhLS0gQ0xPU0UgTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT48IS0tIE9QRU4gTkVXIENBUiBQUk9NTyBQUklDRSAoMjc0KS0tPjxkaXYgY2xhc3M9ImRpdk5ld0NhclByb21vUHJpY2UiPmVuIHJhYmFpcyDDoCA8c3BhbiBjbGFzcz0iIiBzdHlsZT0iY29sb3I6ICMwMjc2YjM7Ij4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+NDIgOTUxPC9zcGFuPjwvc3Bhbj48L2Rpdj48IS0tIENMT1NFIE5FVyBDQVIgUFJPTU8gUFJJQ0UgKDI4MSktLT4KCQkJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJblN0b2NrTGluayIgaGlkZGVuPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBkYXRhLXR5cGU9ImludmRhdGEiIGRhdGEtbWFrZT0iRm9yZCIgZGF0YS1tb2RlbD0iTXVzdGFuZyBNYWNoLUUiIGRhdGEteWVhcj0iMjAyNiIgZGF0YS1zdHlsZWlkcz0iNDgxNjk1LDQ4MTY5Nyw0ODE2OTYsNDgxNjk4LDQ4MTY5OSIgZGF0YS1oeWJyaWQ9IjAiPgoJPC9kaXY+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJbWFnZUNvbnRhaW5lciBmbGV4LWNlbnRlciBhbGlnbi1jZW50ZXIgIj4KCQkJCTxhIHRpdGxlPSJGb3JkIE11c3RhbmcgTWFjaC1FIDIwMjYiIGhyZWY9Ij9wYXRoPS9uZXVmcy9Gb3JkLU11c3RhbmdfTWFjaF9FLTIwMjYuaHRtbCI+CgkJCQkJPGltZyBhbHQ9IkZvcmQgTXVzdGFuZyBNYWNoLUUgMjAyNiIgYm9yZGVyPSIwIiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9mci9Gb3JkL011c3RhbmdfTWFjaF9FLzIwMjYvNDgxNjk1L1doaXRlL3Byb2ZpbGUud2VicCIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPgoJCQkJPC9hPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyRm9vdGVyQ29udGFpbmVyIHN0YWNrLWxjIC0tcy05Ij4KCQkJCQk8ZGl2IGNsYXNzPSJjYXJQYXltZW50V3JhcHBlciI+CgkJCTxkaXYgY2xhc3M9ImNvbnRlbnQtc2tlbGV0b24gaHRtbC1ibG9jayIgZGF0YS1ibG9jaz0icGF5bWVudEJsb2NrIiBkYXRhLXR5cGU9ImJsb2NrIiBkYXRhLXNvdXJjZT0ic2VydmVyIiBkYXRhLWNhbGxiYWNrPSJwYXltZW50Q2FsY0Jsb2NrIj4KCQkKCTxpbnB1dCBuYW1lPSJibG9jay1kYXRhIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSd7InN0eWxlaWQiOiI0ODE2OTUiLCJ0aXRsZSI6IkZvcmQgTXVzdGFuZyBNYWNoLUUgMjAyNiIsImhyZWYiOiJcL25ldWZzXC9Gb3JkLU11c3RhbmdfTWFjaF9FLTIwMjYuaHRtbCIsImxpbmtzdHlsZSI6IiIsImxpbmtjbGFzcyI6IiIsImNvbnRhaW5lcmNsYXNzIjoiIiwicHJvbW90ZXh0IjoiT2ZmcmUgYWRkaXRpb25uZWxsZSEifSc+Cgk8L2Rpdj4KCTwvZGl2PgoJCQkJCgkJCTwvZGl2PgoJCTwvZGl2PgoJPC9kaXY+CTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZU91dGVyQm94ICByZWJhdGVCb3JkZXJDb2xvciIgaWQ9ImZieF9lbGVjdHJpY18yIj4KCQk8ZGl2IGNsYXNzPSJyZWJhdGVUYWciPjxzcGFuIGNsYXNzPSJyZWJhdGVUZXh0Ij5yYWJhaXMganVzcXUnw6A8L3NwYW4+PHNwYW4gY2xhc3M9InJlYmF0ZUFtb3VudCI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjE1IDczOTwvc3Bhbj48L3NwYW4+PC9kaXY+CgkJPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlSW5uZXJCb3giIGlkPSIiPgoJCQkKCQkJPGRpdiBjbGFzcz0iZGl2Q2FyVGl0bGVDb250YWluZXIiPgoJCQkJPGEgdGl0bGU9IkZvcmQgTXVzdGFuZyBNYWNoLUUgMjAyNSIgaHJlZj0iP3BhdGg9L25ldWZzL0ZvcmQtTXVzdGFuZ19NYWNoX0UtMjAyNS5odG1sIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9Ik11c3RhbmcgTWFjaC1FIDIwMjUiPgoJCQkJCTxoMz4KCQkJCQkJPHNwYW4gY2xhc3M9InNwYW5DYXJNYWtlICI+Rm9yZDwvc3Bhbj48YnI+CgkJCQkJCTxzcGFuIGNsYXNzPSJtb2RlbE5hbWUgc3Bhbk1vZGVsTmFtZSI+TXVzdGFuZyBNYWNoLUUgMjAyNTwvc3Bhbj4KCQkJCQk8L2gzPgoJCQkJPC9hPgoJCQkJICAgIDwhLS0gT1BFTiBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgogICAgPGRpdiBjbGFzcz0iZGl2TmV3Q2FyU3RhcnRQcmljZSI+CiAgICAgICAgw6AgcGFydGlyIGRlCiAgICAgICAgPHNwYW4gY2xhc3M9InN0cmlrZS1wcmljZSI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjU1IDY5MDwvc3Bhbj48L3NwYW4+CiAgICAgICAgPGkgc3R5bGU9ImNvbG9yOiMwMDA7Zm9udC1zaXplOjIwcHg7IiBjbGFzcz0iY2FyUHJpY2VJbml0aWFsVG9vbFRpcEljb24gZmFsIGZhLWluZm8tY2lyY2xlIGJsYWNrQ29sb3JCb2xkIiBkYXRhLXRvb2x0aXA9JyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7UERTRjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7NTIgOTk1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VHJhbnNwb3J0ICZhbXA7IFByw6lwYXJhdGlvbjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MiA1OTUmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUYXhlIEFDOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsxMDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUb3RhbCZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDs1NSA2OTAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jz48L2k+CiAgICA8L2Rpdj4KICAgIDwhLS0gQ0xPU0UgTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT48IS0tIE9QRU4gTkVXIENBUiBQUk9NTyBQUklDRSAoMjc0KS0tPjxkaXYgY2xhc3M9ImRpdk5ld0NhclByb21vUHJpY2UiPmVuIHJhYmFpcyDDoCA8c3BhbiBjbGFzcz0iIiBzdHlsZT0iY29sb3I6ICMwMjc2YjM7Ij4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+NDEgOTUxPC9zcGFuPjwvc3Bhbj48L2Rpdj48IS0tIENMT1NFIE5FVyBDQVIgUFJPTU8gUFJJQ0UgKDI4MSktLT4KCQkJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJblN0b2NrTGluayIgaGlkZGVuPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBkYXRhLXR5cGU9ImludmRhdGEiIGRhdGEtbWFrZT0iRm9yZCIgZGF0YS1tb2RlbD0iTXVzdGFuZyBNYWNoLUUiIGRhdGEteWVhcj0iMjAyNSIgZGF0YS1zdHlsZWlkcz0iNDY3NDg4LDQ2NzQ5MCw0Njc0ODksNDY3NDkxLDQ2NzQ5MiIgZGF0YS1oeWJyaWQ9IjAiPgoJPC9kaXY+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJbWFnZUNvbnRhaW5lciBmbGV4LWNlbnRlciBhbGlnbi1jZW50ZXIgIj4KCQkJCTxhIHRpdGxlPSJGb3JkIE11c3RhbmcgTWFjaC1FIDIwMjUiIGhyZWY9Ij9wYXRoPS9uZXVmcy9Gb3JkLU11c3RhbmdfTWFjaF9FLTIwMjUuaHRtbCI+CgkJCQkJPGltZyBhbHQ9IkZvcmQgTXVzdGFuZyBNYWNoLUUgMjAyNSIgYm9yZGVyPSIwIiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9mci9Gb3JkL011c3RhbmdfTWFjaF9FLzIwMjUvNDY3NDg4L1doaXRlL3Byb2ZpbGUud2VicCIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPgoJCQkJPC9hPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyRm9vdGVyQ29udGFpbmVyIHN0YWNrLWxjIC0tcy05Ij4KCQkJCQk8ZGl2IGNsYXNzPSJjYXJQYXltZW50V3JhcHBlciI+CgkJCTxkaXYgY2xhc3M9ImNvbnRlbnQtc2tlbGV0b24gaHRtbC1ibG9jayIgZGF0YS1ibG9jaz0icGF5bWVudEJsb2NrIiBkYXRhLXR5cGU9ImJsb2NrIiBkYXRhLXNvdXJjZT0ic2VydmVyIiBkYXRhLWNhbGxiYWNrPSJwYXltZW50Q2FsY0Jsb2NrIj4KCQkKCTxpbnB1dCBuYW1lPSJibG9jay1kYXRhIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSd7InN0eWxlaWQiOiI0Njc0ODgiLCJ0aXRsZSI6IkZvcmQgTXVzdGFuZyBNYWNoLUUgMjAyNSIsImhyZWYiOiJcL25ldWZzXC9Gb3JkLU11c3RhbmdfTWFjaF9FLTIwMjUuaHRtbCIsImxpbmtzdHlsZSI6IiIsImxpbmtjbGFzcyI6IiIsImNvbnRhaW5lcmNsYXNzIjoiIiwicHJvbW90ZXh0IjoiT2ZmcmUgYWRkaXRpb25uZWxsZSEifSc+Cgk8L2Rpdj4KCTwvZGl2PgoJCQkJCgkJCTwvZGl2PgoJCTwvZGl2PgoJPC9kaXY+CTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZU91dGVyQm94ICByZWJhdGVCb3JkZXJDb2xvciIgaWQ9ImZieF9lbGVjdHJpY18zIj4KCQk8ZGl2IGNsYXNzPSJyZWJhdGVUYWciPjxzcGFuIGNsYXNzPSJyZWJhdGVUZXh0Ij5yYWJhaXMganVzcXUnw6A8L3NwYW4+PHNwYW4gY2xhc3M9InJlYmF0ZUFtb3VudCI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjEwIDAwMDwvc3Bhbj48L3NwYW4+PC9kaXY+CgkJPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlSW5uZXJCb3giIGlkPSIiPgoJCQkKCQkJPGRpdiBjbGFzcz0iZGl2Q2FyVGl0bGVDb250YWluZXIiPgoJCQkJPGEgdGl0bGU9IkZvcmQgRi0xNTAgTGlnaHRuaW5nIDIwMjUiIGhyZWY9Ij9wYXRoPS9uZXVmcy9Gb3JkLUZfMTUwX0xpZ2h0bmluZy0yMDI1Lmh0bWwiIGRhdGEtbWFrZT0iRm9yZCIgZGF0YS1tb2RlbD0iRi0xNTAgTGlnaHRuaW5nIDIwMjUiPgoJCQkJCTxoMz4KCQkJCQkJPHNwYW4gY2xhc3M9InNwYW5DYXJNYWtlICI+Rm9yZDwvc3Bhbj48YnI+CgkJCQkJCTxzcGFuIGNsYXNzPSJtb2RlbE5hbWUgc3Bhbk1vZGVsTmFtZSI+Ri0xNTAgTGlnaHRuaW5nIDIwMjU8L3NwYW4+CgkJCQkJPC9oMz4KCQkJCTwvYT4KCQkJCSAgICA8IS0tIE9QRU4gTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KICAgIDxkaXYgY2xhc3M9ImRpdk5ld0NhclN0YXJ0UHJpY2UiPgogICAgICAgIMOgIHBhcnRpciBkZQogICAgICAgIDxzcGFuIGNsYXNzPSJzdHJpa2UtcHJpY2UiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj42MiA4OTA8L3NwYW4+PC9zcGFuPgogICAgICAgIDxpIHN0eWxlPSJjb2xvcjojMDAwO2ZvbnQtc2l6ZToyMHB4OyIgY2xhc3M9ImNhclByaWNlSW5pdGlhbFRvb2xUaXBJY29uIGZhbCBmYS1pbmZvLWNpcmNsZSBibGFja0NvbG9yQm9sZCIgZGF0YS10b29sdGlwPScmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1BEU0Y6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzU5IDk5NSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RyYW5zcG9ydCAmYW1wOyBQcsOpcGFyYXRpb246Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzIgNzk1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VGF4ZSBBQzombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MTAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VG90YWwmbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7NjIgODkwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0Oyc+PC9pPgogICAgPC9kaXY+CiAgICA8IS0tIENMT1NFIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+PCEtLSBPUEVOIE5FVyBDQVIgUFJPTU8gUFJJQ0UgKDI3NCktLT48ZGl2IGNsYXNzPSJkaXZOZXdDYXJQcm9tb1ByaWNlIj5lbiByYWJhaXMgw6AgPHNwYW4gY2xhc3M9IiIgc3R5bGU9ImNvbG9yOiAjMDI3NmIzOyI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjYxIDE1MTwvc3Bhbj48L3NwYW4+PC9kaXY+PCEtLSBDTE9TRSBORVcgQ0FSIFBST01PIFBSSUNFICgyODEpLS0+CgkJCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW5TdG9ja0xpbmsiIGhpZGRlbj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgZGF0YS10eXBlPSJpbnZkYXRhIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9IkYtMTUwIExpZ2h0bmluZyIgZGF0YS15ZWFyPSIyMDI1IiBkYXRhLXN0eWxlaWRzPSI0NjM2ODAsNDYzNjgxLDQ2MzY4Miw0NjM2ODMsNDYzNjg0IiBkYXRhLWh5YnJpZD0iMCI+Cgk8L2Rpdj4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckltYWdlQ29udGFpbmVyIGZsZXgtY2VudGVyIGFsaWduLWNlbnRlciAiPgoJCQkJPGEgdGl0bGU9IkZvcmQgRi0xNTAgTGlnaHRuaW5nIDIwMjUiIGhyZWY9Ij9wYXRoPS9uZXVmcy9Gb3JkLUZfMTUwX0xpZ2h0bmluZy0yMDI1Lmh0bWwiPgoJCQkJCTxpbWcgYWx0PSJGb3JkIEYtMTUwIExpZ2h0bmluZyAyMDI1IiBib3JkZXI9IjAiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL2ZyL0ZvcmQvRl8xNTBfTGlnaHRuaW5nLzIwMjUvNDYzNjgwL1doaXRlL3Byb2ZpbGUud2VicCIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPgoJCQkJPC9hPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyRm9vdGVyQ29udGFpbmVyIHN0YWNrLWxjIC0tcy05Ij4KCQkJCQk8ZGl2IGNsYXNzPSJjYXJQYXltZW50V3JhcHBlciI+CgkJCTxkaXYgY2xhc3M9ImNvbnRlbnQtc2tlbGV0b24gaHRtbC1ibG9jayIgZGF0YS1ibG9jaz0icGF5bWVudEJsb2NrIiBkYXRhLXR5cGU9ImJsb2NrIiBkYXRhLXNvdXJjZT0ic2VydmVyIiBkYXRhLWNhbGxiYWNrPSJwYXltZW50Q2FsY0Jsb2NrIj4KCQkKCTxpbnB1dCBuYW1lPSJibG9jay1kYXRhIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSd7InN0eWxlaWQiOiI0NjM2ODAiLCJ0aXRsZSI6IkZvcmQgRi0xNTAgTGlnaHRuaW5nIDIwMjUiLCJocmVmIjoiXC9uZXVmc1wvRm9yZC1GXzE1MF9MaWdodG5pbmctMjAyNS5odG1sIiwibGlua3N0eWxlIjoiIiwibGlua2NsYXNzIjoiIiwiY29udGFpbmVyY2xhc3MiOiIiLCJwcm9tb3RleHQiOiJPZmZyZSBhZGRpdGlvbm5lbGxlISJ9Jz4KCTwvZGl2PgoJPC9kaXY+CgkJCQkKCQkJPC9kaXY+CgkJPC9kaXY+Cgk8L2Rpdj4JPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggIHJlYmF0ZUJvcmRlckNvbG9yIiBpZD0iZmJ4X2VsZWN0cmljXzQiPgoJCQoJCTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZUlubmVyQm94IiBpZD0iIj4KCQkJCgkJCTxkaXYgY2xhc3M9ImRpdkNhclRpdGxlQ29udGFpbmVyIj4KCQkJCTxhIHRpdGxlPSJGb3JkIEYtMTUwIExpZ2h0bmluZyAyMDI2IiBocmVmPSI\/cGF0aD0vbmV1ZnMvRm9yZC1GXzE1MF9MaWdodG5pbmctMjAyNi5odG1sIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9IkYtMTUwIExpZ2h0bmluZyAyMDI2Ij4KCQkJCQk8aDM+CgkJCQkJCTxzcGFuIGNsYXNzPSJzcGFuQ2FyTWFrZSAiPkZvcmQ8L3NwYW4+PGJyPgoJCQkJCQk8c3BhbiBjbGFzcz0ibW9kZWxOYW1lIHNwYW5Nb2RlbE5hbWUiPkYtMTUwIExpZ2h0bmluZyAyMDI2PC9zcGFuPgoJCQkJCTwvaDM+CgkJCQk8L2E+CgkJCQkgICAgPCEtLSBPUEVOIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CiAgICA8ZGl2IGNsYXNzPSJkaXZOZXdDYXJTdGFydFByaWNlIj4KICAgICAgICDDoCBwYXJ0aXIgZGUKICAgICAgICA8c3BhbiBjbGFzcz0iIj4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+NzMgODkwPC9zcGFuPjwvc3Bhbj4KICAgICAgICA8aSBzdHlsZT0iY29sb3I6IzAwMDtmb250LXNpemU6MjBweDsiIGNsYXNzPSJjYXJQcmljZUluaXRpYWxUb29sVGlwSWNvbiBmYWwgZmEtaW5mby1jaXJjbGUgYmxhY2tDb2xvckJvbGQiIGRhdGEtdG9vbHRpcD0nJmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtQRFNGOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDs3MCA5OTUmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUcmFuc3BvcnQgJmFtcDsgUHLDqXBhcmF0aW9uOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsyIDc5NSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RheGUgQUM6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzEwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RvdGFsJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzczIDg5MCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsnPjwvaT4KICAgIDwvZGl2PgogICAgPCEtLSBDTE9TRSBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgoJCQkJCTxkaXYgY2xhc3M9ImRpdkNhckluU3RvY2tMaW5rIiBoaWRkZW4+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGRhdGEtdHlwZT0iaW52ZGF0YSIgZGF0YS1tYWtlPSJGb3JkIiBkYXRhLW1vZGVsPSJGLTE1MCBMaWdodG5pbmciIGRhdGEteWVhcj0iMjAyNiIgZGF0YS1zdHlsZWlkcz0iNDgxODgzLDQ4MTg4Nyw0ODE4ODQsNDgxODg1LDQ4MTg4NiIgZGF0YS1oeWJyaWQ9IjAiPgoJPC9kaXY+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJbWFnZUNvbnRhaW5lciBmbGV4LWNlbnRlciBhbGlnbi1jZW50ZXIgIj4KCQkJCTxhIHRpdGxlPSJGb3JkIEYtMTUwIExpZ2h0bmluZyAyMDI2IiBocmVmPSI\/cGF0aD0vbmV1ZnMvRm9yZC1GXzE1MF9MaWdodG5pbmctMjAyNi5odG1sIj4KCQkJCQk8aW1nIGFsdD0iRm9yZCBGLTE1MCBMaWdodG5pbmcgMjAyNiIgYm9yZGVyPSIwIiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9mci9Gb3JkL0ZfMTUwX0xpZ2h0bmluZy8yMDI2LzQ4MTg4My9XaGl0ZS9wcm9maWxlLndlYnAiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj4KCQkJCTwvYT4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckZvb3RlckNvbnRhaW5lciBzdGFjay1sYyAtLXMtOSI+CgkJCQkJPGRpdiBjbGFzcz0iY2FyUGF5bWVudFdyYXBwZXIiPgoJCQk8ZGl2IGNsYXNzPSJjb250ZW50LXNrZWxldG9uIGh0bWwtYmxvY2siIGRhdGEtYmxvY2s9InBheW1lbnRCbG9jayIgZGF0YS10eXBlPSJibG9jayIgZGF0YS1zb3VyY2U9InNlcnZlciIgZGF0YS1jYWxsYmFjaz0icGF5bWVudENhbGNCbG9jayI+CgkJCgk8aW5wdXQgbmFtZT0iYmxvY2stZGF0YSIgdHlwZT0iaGlkZGVuIiB2YWx1ZT0neyJzdHlsZWlkIjoiNDgxODgzIiwidGl0bGUiOiJGb3JkIEYtMTUwIExpZ2h0bmluZyAyMDI2IiwiaHJlZiI6IlwvbmV1ZnNcL0ZvcmQtRl8xNTBfTGlnaHRuaW5nLTIwMjYuaHRtbCIsImxpbmtzdHlsZSI6IiIsImxpbmtjbGFzcyI6IiIsImNvbnRhaW5lcmNsYXNzIjoiIiwicHJvbW90ZXh0IjoiT2ZmcmUgYWRkaXRpb25uZWxsZSEifSc+Cgk8L2Rpdj4KCTwvZGl2PgoJCQkJCgkJCTwvZGl2PgoJCTwvZGl2PgoJPC9kaXY+PC9kaXY+PC9kaXY+PCEtLSBDTE9TRSBDQVRFR09SWUJPWFdSQVBQRVIgKDIwNjApLS0+PCEtLSBPUEVOIENBVEVHT1JZQk9YV1JBUFBFUiAoMjA1MikgLS0+PGRpdiBpZD0iY2xhc3Njb21tZXJjaWFsX2NvbnRhaW5lciIgY2xhc3M9ImRpdlNwYW4gZGl2U3BhbjEyIGRpdkNhdGVnb3J5Qm94V3JhcHBlciIgc3RhdGU9Im9wZW4iIG5idmlzaWJsZT0iMSI+PGgyIGNsYXNzPSJkZWZhdWx0IGljb24taGVhZGluZyBmbGV4LWJveCBhbGlnbi1jZW50ZXIiPgoJPHNwYW4gY2xhc3M9ImZhIGZhLWNoZXZyb24tcmlnaHQiIGFyaWEtaGlkZGVuPSJ0cnVlIj48L3NwYW4+Cgk8Ym94LWxjIGNsYXNzPSItcHYwIj4KCQk8ZGl2IGNsYXNzPSJtYWluVGV4dCAtYm9sZCI+Tm91dmVhdXggY2FtaW9ucyBjb21tZXJjaWF1eCBGb3JkIDIwMjUsIDIwMjYgJmFtcDsgMjAyNzwvZGl2PgoJCTxkaXYgY2xhc3M9InNlY29uZGFyeVRleHQiPsOgIENvYXRpY29vazwvZGl2PgoJPC9ib3gtbGM+CjwvaDI+PGRpdiBjbGFzcz0iZGl2U3BhbiBkaXZTcGFuMTIgZGl2Q2Fyc0JveFdyYXBwZXIgQ0xBU1NfY29tbWVyY2lhbCI+CTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZU91dGVyQm94ICByZWJhdGVCb3JkZXJDb2xvciIgaWQ9ImZieF9jb21tZXJjaWFsXzEiPgoJCQoJCTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZUlubmVyQm94IiBpZD0iIj4KCQkJCgkJCTxkaXYgY2xhc3M9ImRpdkNhclRpdGxlQ29udGFpbmVyIj4KCQkJCTxhIHRpdGxlPSJGb3JkIEUtU2VyaWVzIFN0cmlwcGVkIENoYXNzaXMgMjAyNSIgaHJlZj0iP3BhdGg9L25ldWZzL0ZvcmQtRV9TZXJpZXNfU3RyaXBwZWRfQ2hhc3Npcy0yMDI1Lmh0bWwiIGRhdGEtbWFrZT0iRm9yZCIgZGF0YS1tb2RlbD0iU8OpcmllIEUgY2jDonNzaXMgbnUgMjAyNSI+CgkJCQkJPGgzPgoJCQkJCQk8c3BhbiBjbGFzcz0ic3BhbkNhck1ha2UgIj5Gb3JkPC9zcGFuPjxicj4KCQkJCQkJPHNwYW4gY2xhc3M9Im1vZGVsTmFtZSBzcGFuTW9kZWxOYW1lIj5FLVNlcmllcyBTdHJpcHBlZCBDaGFzc2lzIDIwMjU8L3NwYW4+CgkJCQkJPC9oMz4KCQkJCTwvYT4KCQkJCSAgICA8IS0tIE9QRU4gTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KICAgIDxkaXYgY2xhc3M9ImRpdk5ld0NhclN0YXJ0UHJpY2UiPgogICAgICAgIMOgIHBhcnRpciBkZQogICAgICAgIDxzcGFuIGNsYXNzPSIiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj40MyA0ODU8L3NwYW4+PC9zcGFuPgogICAgICAgIDxpIHN0eWxlPSJjb2xvcjojMDAwO2ZvbnQtc2l6ZToyMHB4OyIgY2xhc3M9ImNhclByaWNlSW5pdGlhbFRvb2xUaXBJY29uIGZhbCBmYS1pbmZvLWNpcmNsZSBibGFja0NvbG9yQm9sZCIgZGF0YS10b29sdGlwPScmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1BEU0Y6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzQxIDA5MCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RyYW5zcG9ydCAmYW1wOyBQcsOpcGFyYXRpb246Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzIgMzk1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VGF4ZSBBQzombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MTAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VG90YWwmbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7NDMgNDg1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0Oyc+PC9pPgogICAgPC9kaXY+CiAgICA8IS0tIENMT1NFIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CgkJCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW5TdG9ja0xpbmsiIGhpZGRlbj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgZGF0YS10eXBlPSJpbnZkYXRhIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9IkUtU2VyaWVzIFN0cmlwcGVkIENoYXNzaXMiIGRhdGEteWVhcj0iMjAyNSIgZGF0YS1zdHlsZWlkcz0iNDUwOTM5LDQ1MDk0MCw0NTA5NDEsNDUwOTQyLDQ1MDk0MyIgZGF0YS1oeWJyaWQ9IjAiPgoJPC9kaXY+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJbWFnZUNvbnRhaW5lciBmbGV4LWNlbnRlciBhbGlnbi1jZW50ZXIgIj4KCQkJCTxhIHRpdGxlPSJGb3JkIEUtU2VyaWVzIFN0cmlwcGVkIENoYXNzaXMgMjAyNSIgaHJlZj0iP3BhdGg9L25ldWZzL0ZvcmQtRV9TZXJpZXNfU3RyaXBwZWRfQ2hhc3Npcy0yMDI1Lmh0bWwiPgoJCQkJCTxpbWcgYWx0PSJGb3JkIEUtU2VyaWVzIFN0cmlwcGVkIENoYXNzaXMgMjAyNSIgYm9yZGVyPSIwIiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9mci9Gb3JkL0VfU2VyaWVzX1N0cmlwcGVkX0NoYXNzaXMvMjAyNS80NTA5MzkvV2hpdGUvcHJvZmlsZS53ZWJwIiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+CgkJCQk8L2E+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJGb290ZXJDb250YWluZXIgc3RhY2stbGMgLS1zLTkiPgoJCQkJCTxkaXYgY2xhc3M9ImNhclBheW1lbnRXcmFwcGVyIj4KCQkJPGRpdiBjbGFzcz0iY29udGVudC1za2VsZXRvbiBodG1sLWJsb2NrIiBkYXRhLWJsb2NrPSJwYXltZW50QmxvY2siIGRhdGEtdHlwZT0iYmxvY2siIGRhdGEtc291cmNlPSJzZXJ2ZXIiIGRhdGEtY2FsbGJhY2s9InBheW1lbnRDYWxjQmxvY2siPgoJCQoJPGlucHV0IG5hbWU9ImJsb2NrLWRhdGEiIHR5cGU9ImhpZGRlbiIgdmFsdWU9J3sic3R5bGVpZCI6IjQ1MDkzOSIsInRpdGxlIjoiRm9yZCBFLVNlcmllcyBTdHJpcHBlZCBDaGFzc2lzIDIwMjUiLCJocmVmIjoiXC9uZXVmc1wvRm9yZC1FX1Nlcmllc19TdHJpcHBlZF9DaGFzc2lzLTIwMjUuaHRtbCIsImxpbmtzdHlsZSI6IiIsImxpbmtjbGFzcyI6IiIsImNvbnRhaW5lcmNsYXNzIjoiIiwicHJvbW90ZXh0IjoiT2ZmcmUgYWRkaXRpb25uZWxsZSEifSc+Cgk8L2Rpdj4KCTwvZGl2PgoJCQkJCgkJCTwvZGl2PgoJCTwvZGl2PgoJPC9kaXY+CTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZU91dGVyQm94ICByZWJhdGVCb3JkZXJDb2xvciIgaWQ9ImZieF9jb21tZXJjaWFsXzIiPgoJCQoJCTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZUlubmVyQm94IiBpZD0iIj4KCQkJCgkJCTxkaXYgY2xhc3M9ImRpdkNhclRpdGxlQ29udGFpbmVyIj4KCQkJCTxhIHRpdGxlPSJGb3JkIEUtU2VyaWVzIEN1dGF3YXkgMjAyNSIgaHJlZj0iP3BhdGg9L25ldWZzL0ZvcmQtRV9TZXJpZXNfQ3V0YXdheS0yMDI1Lmh0bWwiIGRhdGEtbWFrZT0iRm9yZCIgZGF0YS1tb2RlbD0iU8OpcmllIEUgdHJvbnF1w6kgMjAyNSI+CgkJCQkJPGgzPgoJCQkJCQk8c3BhbiBjbGFzcz0ic3BhbkNhck1ha2UgIj5Gb3JkPC9zcGFuPjxicj4KCQkJCQkJPHNwYW4gY2xhc3M9Im1vZGVsTmFtZSBzcGFuTW9kZWxOYW1lIj5FLVNlcmllcyBDdXRhd2F5IDIwMjU8L3NwYW4+CgkJCQkJPC9oMz4KCQkJCTwvYT4KCQkJCSAgICA8IS0tIE9QRU4gTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KICAgIDxkaXYgY2xhc3M9ImRpdk5ld0NhclN0YXJ0UHJpY2UiPgogICAgICAgIMOgIHBhcnRpciBkZQogICAgICAgIDxzcGFuIGNsYXNzPSIiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj40NiA5MzA8L3NwYW4+PC9zcGFuPgogICAgICAgIDxpIHN0eWxlPSJjb2xvcjojMDAwO2ZvbnQtc2l6ZToyMHB4OyIgY2xhc3M9ImNhclByaWNlSW5pdGlhbFRvb2xUaXBJY29uIGZhbCBmYS1pbmZvLWNpcmNsZSBibGFja0NvbG9yQm9sZCIgZGF0YS10b29sdGlwPScmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1BEU0Y6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzQ0IDQzNSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RyYW5zcG9ydCAmYW1wOyBQcsOpcGFyYXRpb246Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzIgMzk1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VGF4ZSBBQzombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MTAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VG90YWwmbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7NDYgOTMwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0Oyc+PC9pPgogICAgPC9kaXY+CiAgICA8IS0tIENMT1NFIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CgkJCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW5TdG9ja0xpbmsiIGhpZGRlbj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgZGF0YS10eXBlPSJpbnZkYXRhIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9IkUtU2VyaWVzIEN1dGF3YXkiIGRhdGEteWVhcj0iMjAyNSIgZGF0YS1zdHlsZWlkcz0iNDUwOTMyLDQ1MDkzMyw0NTA5MzYsNDUwOTM0LDQ1MDkzNSw0NTA5MzcsNDUwOTM4IiBkYXRhLWh5YnJpZD0iMCI+Cgk8L2Rpdj4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckltYWdlQ29udGFpbmVyIGZsZXgtY2VudGVyIGFsaWduLWNlbnRlciAiPgoJCQkJPGEgdGl0bGU9IkZvcmQgRS1TZXJpZXMgQ3V0YXdheSAyMDI1IiBocmVmPSI\/cGF0aD0vbmV1ZnMvRm9yZC1FX1Nlcmllc19DdXRhd2F5LTIwMjUuaHRtbCI+CgkJCQkJPGltZyBhbHQ9IkZvcmQgRS1TZXJpZXMgQ3V0YXdheSAyMDI1IiBib3JkZXI9IjAiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL2ZyL0ZvcmQvRV9TZXJpZXNfQ3V0YXdheS8yMDI1LzQ1MDkzMi9XaGl0ZS9wcm9maWxlLndlYnAiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj4KCQkJCTwvYT4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckZvb3RlckNvbnRhaW5lciBzdGFjay1sYyAtLXMtOSI+CgkJCQkJPGRpdiBjbGFzcz0iY2FyUGF5bWVudFdyYXBwZXIiPgoJCQk8ZGl2IGNsYXNzPSJjb250ZW50LXNrZWxldG9uIGh0bWwtYmxvY2siIGRhdGEtYmxvY2s9InBheW1lbnRCbG9jayIgZGF0YS10eXBlPSJibG9jayIgZGF0YS1zb3VyY2U9InNlcnZlciIgZGF0YS1jYWxsYmFjaz0icGF5bWVudENhbGNCbG9jayI+CgkJCgk8aW5wdXQgbmFtZT0iYmxvY2stZGF0YSIgdHlwZT0iaGlkZGVuIiB2YWx1ZT0neyJzdHlsZWlkIjoiNDUwOTMyIiwidGl0bGUiOiJGb3JkIEUtU2VyaWVzIEN1dGF3YXkgMjAyNSIsImhyZWYiOiJcL25ldWZzXC9Gb3JkLUVfU2VyaWVzX0N1dGF3YXktMjAyNS5odG1sIiwibGlua3N0eWxlIjoiIiwibGlua2NsYXNzIjoiIiwiY29udGFpbmVyY2xhc3MiOiIiLCJwcm9tb3RleHQiOiJPZmZyZSBhZGRpdGlvbm5lbGxlISJ9Jz4KCTwvZGl2PgoJPC9kaXY+CgkJCQkKCQkJPC9kaXY+CgkJPC9kaXY+Cgk8L2Rpdj4JPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggIHJlYmF0ZUJvcmRlckNvbG9yIiBpZD0iZmJ4X2NvbW1lcmNpYWxfMyI+CgkJCgkJPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlSW5uZXJCb3giIGlkPSIiPgoJCQkKCQkJPGRpdiBjbGFzcz0iZGl2Q2FyVGl0bGVDb250YWluZXIiPgoJCQkJPGEgdGl0bGU9IkZvcmQgRS1TZXJpZXMgU3RyaXBwZWQgQ2hhc3NpcyAyMDI2IiBocmVmPSI\/cGF0aD0vbmV1ZnMvRm9yZC1FX1Nlcmllc19TdHJpcHBlZF9DaGFzc2lzLTIwMjYuaHRtbCIgZGF0YS1tYWtlPSJGb3JkIiBkYXRhLW1vZGVsPSJTw6lyaWUgRSBjaMOic3NpcyBudSAyMDI2Ij4KCQkJCQk8aDM+CgkJCQkJCTxzcGFuIGNsYXNzPSJzcGFuQ2FyTWFrZSAiPkZvcmQ8L3NwYW4+PGJyPgoJCQkJCQk8c3BhbiBjbGFzcz0ibW9kZWxOYW1lIHNwYW5Nb2RlbE5hbWUiPkUtU2VyaWVzIFN0cmlwcGVkIENoYXNzaXMgMjAyNjwvc3Bhbj4KCQkJCQk8L2gzPgoJCQkJPC9hPgoJCQkJICAgIDwhLS0gT1BFTiBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgogICAgPGRpdiBjbGFzcz0iZGl2TmV3Q2FyU3RhcnRQcmljZSI+CiAgICAgICAgw6AgcGFydGlyIGRlCiAgICAgICAgPHNwYW4gY2xhc3M9IiI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjQ4IDYzNTwvc3Bhbj48L3NwYW4+CiAgICAgICAgPGkgc3R5bGU9ImNvbG9yOiMwMDA7Zm9udC1zaXplOjIwcHg7IiBjbGFzcz0iY2FyUHJpY2VJbml0aWFsVG9vbFRpcEljb24gZmFsIGZhLWluZm8tY2lyY2xlIGJsYWNrQ29sb3JCb2xkIiBkYXRhLXRvb2x0aXA9JyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7UERTRjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7NDYgMDQwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VHJhbnNwb3J0ICZhbXA7IFByw6lwYXJhdGlvbjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MiA1OTUmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUYXhlIEFDOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsxMDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUb3RhbCZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDs0OCA2MzUmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jz48L2k+CiAgICA8L2Rpdj4KICAgIDwhLS0gQ0xPU0UgTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KCQkJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJblN0b2NrTGluayIgaGlkZGVuPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBkYXRhLXR5cGU9ImludmRhdGEiIGRhdGEtbWFrZT0iRm9yZCIgZGF0YS1tb2RlbD0iRS1TZXJpZXMgU3RyaXBwZWQgQ2hhc3NpcyIgZGF0YS15ZWFyPSIyMDI2IiBkYXRhLXN0eWxlaWRzPSI0NjY3ODAsNDY2NzgxLDQ2Njc4Miw0NjY3ODMiIGRhdGEtaHlicmlkPSIwIj4KCTwvZGl2PgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW1hZ2VDb250YWluZXIgZmxleC1jZW50ZXIgYWxpZ24tY2VudGVyICI+CgkJCQk8YSB0aXRsZT0iRm9yZCBFLVNlcmllcyBTdHJpcHBlZCBDaGFzc2lzIDIwMjYiIGhyZWY9Ij9wYXRoPS9uZXVmcy9Gb3JkLUVfU2VyaWVzX1N0cmlwcGVkX0NoYXNzaXMtMjAyNi5odG1sIj4KCQkJCQk8aW1nIGFsdD0iRm9yZCBFLVNlcmllcyBTdHJpcHBlZCBDaGFzc2lzIDIwMjYiIGJvcmRlcj0iMCIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvZnIvRm9yZC9FX1Nlcmllc19TdHJpcHBlZF9DaGFzc2lzLzIwMjYvNDY2NzgwL1doaXRlL3Byb2ZpbGUud2VicCIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPgoJCQkJPC9hPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyRm9vdGVyQ29udGFpbmVyIHN0YWNrLWxjIC0tcy05Ij4KCQkJCQk8ZGl2IGNsYXNzPSJjYXJQYXltZW50V3JhcHBlciI+CgkJCTxkaXYgY2xhc3M9ImNvbnRlbnQtc2tlbGV0b24gaHRtbC1ibG9jayIgZGF0YS1ibG9jaz0icGF5bWVudEJsb2NrIiBkYXRhLXR5cGU9ImJsb2NrIiBkYXRhLXNvdXJjZT0ic2VydmVyIiBkYXRhLWNhbGxiYWNrPSJwYXltZW50Q2FsY0Jsb2NrIj4KCQkKCTxpbnB1dCBuYW1lPSJibG9jay1kYXRhIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSd7InN0eWxlaWQiOiI0NjY3ODAiLCJ0aXRsZSI6IkZvcmQgRS1TZXJpZXMgU3RyaXBwZWQgQ2hhc3NpcyAyMDI2IiwiaHJlZiI6IlwvbmV1ZnNcL0ZvcmQtRV9TZXJpZXNfU3RyaXBwZWRfQ2hhc3Npcy0yMDI2Lmh0bWwiLCJsaW5rc3R5bGUiOiIiLCJsaW5rY2xhc3MiOiIiLCJjb250YWluZXJjbGFzcyI6IiIsInByb21vdGV4dCI6Ik9mZnJlIGFkZGl0aW9ubmVsbGUhIn0nPgoJPC9kaXY+Cgk8L2Rpdj4KCQkJCQoJCQk8L2Rpdj4KCQk8L2Rpdj4KCTwvZGl2Pgk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVPdXRlckJveCAgcmViYXRlQm9yZGVyQ29sb3IiIGlkPSJmYnhfY29tbWVyY2lhbF80Ij4KCQkKCQk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVJbm5lckJveCIgaWQ9IiI+CgkJCQoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJUaXRsZUNvbnRhaW5lciI+CgkJCQk8YSB0aXRsZT0iRm9yZCBFLVNlcmllcyBDdXRhd2F5IDIwMjciIGhyZWY9Ij9wYXRoPS9uZXVmcy9Gb3JkLUVfU2VyaWVzX0N1dGF3YXktMjAyNy5odG1sIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9IlPDqXJpZSBFIHRyb25xdcOpIDIwMjciPgoJCQkJCTxoMz4KCQkJCQkJPHNwYW4gY2xhc3M9InNwYW5DYXJNYWtlICI+Rm9yZDwvc3Bhbj48YnI+CgkJCQkJCTxzcGFuIGNsYXNzPSJtb2RlbE5hbWUgc3Bhbk1vZGVsTmFtZSI+RS1TZXJpZXMgQ3V0YXdheSAyMDI3PC9zcGFuPgoJCQkJCTwvaDM+CgkJCQk8L2E+CgkJCQkgICAgPCEtLSBPUEVOIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CiAgICA8ZGl2IGNsYXNzPSJkaXZOZXdDYXJTdGFydFByaWNlIj4KICAgICAgICDDoCBwYXJ0aXIgZGUKICAgICAgICA8c3BhbiBjbGFzcz0iIj4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+NTIgMDgwPC9zcGFuPjwvc3Bhbj4KICAgICAgICA8aSBzdHlsZT0iY29sb3I6IzAwMDtmb250LXNpemU6MjBweDsiIGNsYXNzPSJjYXJQcmljZUluaXRpYWxUb29sVGlwSWNvbiBmYWwgZmEtaW5mby1jaXJjbGUgYmxhY2tDb2xvckJvbGQiIGRhdGEtdG9vbHRpcD0nJmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtQRFNGOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDs0OSAzODUmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUcmFuc3BvcnQgJmFtcDsgUHLDqXBhcmF0aW9uOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsyIDU5NSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RheGUgQUM6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzEwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RvdGFsJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzUyIDA4MCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsnPjwvaT4KICAgIDwvZGl2PgogICAgPCEtLSBDTE9TRSBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgoJCQkJCTxkaXYgY2xhc3M9ImRpdkNhckluU3RvY2tMaW5rIiBoaWRkZW4+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGRhdGEtdHlwZT0iaW52ZGF0YSIgZGF0YS1tYWtlPSJGb3JkIiBkYXRhLW1vZGVsPSJFLVNlcmllcyBDdXRhd2F5IiBkYXRhLXllYXI9IjIwMjciIGRhdGEtc3R5bGVpZHM9IjQ4MTkxMyw0ODE5MTQsNDgxOTE3LDQ4MTkxNSw0ODE5MTYsNDgxOTE4LDQ4MTkxOSIgZGF0YS1oeWJyaWQ9IjAiPgoJPC9kaXY+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJbWFnZUNvbnRhaW5lciBmbGV4LWNlbnRlciBhbGlnbi1jZW50ZXIgIj4KCQkJCTxhIHRpdGxlPSJGb3JkIEUtU2VyaWVzIEN1dGF3YXkgMjAyNyIgaHJlZj0iP3BhdGg9L25ldWZzL0ZvcmQtRV9TZXJpZXNfQ3V0YXdheS0yMDI3Lmh0bWwiPgoJCQkJCTxpbWcgYWx0PSJGb3JkIEUtU2VyaWVzIEN1dGF3YXkgMjAyNyIgYm9yZGVyPSIwIiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9mci9Gb3JkL0VfU2VyaWVzX0N1dGF3YXkvMjAyNy80ODE5MTMvV2hpdGUvcHJvZmlsZS53ZWJwIiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+CgkJCQk8L2E+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJGb290ZXJDb250YWluZXIgc3RhY2stbGMgLS1zLTkiPgoJCQkJCTxkaXYgY2xhc3M9ImNhclBheW1lbnRXcmFwcGVyIj4KCQkJPGRpdiBjbGFzcz0iY29udGVudC1za2VsZXRvbiBodG1sLWJsb2NrIiBkYXRhLWJsb2NrPSJwYXltZW50QmxvY2siIGRhdGEtdHlwZT0iYmxvY2siIGRhdGEtc291cmNlPSJzZXJ2ZXIiIGRhdGEtY2FsbGJhY2s9InBheW1lbnRDYWxjQmxvY2siPgoJCQoJPGlucHV0IG5hbWU9ImJsb2NrLWRhdGEiIHR5cGU9ImhpZGRlbiIgdmFsdWU9J3sic3R5bGVpZCI6IjQ4MTkxMyIsInRpdGxlIjoiRm9yZCBFLVNlcmllcyBDdXRhd2F5IDIwMjciLCJocmVmIjoiXC9uZXVmc1wvRm9yZC1FX1Nlcmllc19DdXRhd2F5LTIwMjcuaHRtbCIsImxpbmtzdHlsZSI6IiIsImxpbmtjbGFzcyI6IiIsImNvbnRhaW5lcmNsYXNzIjoiIiwicHJvbW90ZXh0IjoiT2ZmcmUgYWRkaXRpb25uZWxsZSEifSc+Cgk8L2Rpdj4KCTwvZGl2PgoJCQkJCgkJCTwvZGl2PgoJCTwvZGl2PgoJPC9kaXY+CTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZU91dGVyQm94ICByZWJhdGVCb3JkZXJDb2xvciIgaWQ9ImZieF9jb21tZXJjaWFsXzUiPgoJCQoJCTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZUlubmVyQm94IiBpZD0iIj4KCQkJCgkJCTxkaXYgY2xhc3M9ImRpdkNhclRpdGxlQ29udGFpbmVyIj4KCQkJCTxhIHRpdGxlPSJGb3JkIEUtU2VyaWVzIEN1dGF3YXkgMjAyNiIgaHJlZj0iP3BhdGg9L25ldWZzL0ZvcmQtRV9TZXJpZXNfQ3V0YXdheS0yMDI2Lmh0bWwiIGRhdGEtbWFrZT0iRm9yZCIgZGF0YS1tb2RlbD0iU8OpcmllIEUgdHJvbnF1w6kgMjAyNiI+CgkJCQkJPGgzPgoJCQkJCQk8c3BhbiBjbGFzcz0ic3BhbkNhck1ha2UgIj5Gb3JkPC9zcGFuPjxicj4KCQkJCQkJPHNwYW4gY2xhc3M9Im1vZGVsTmFtZSBzcGFuTW9kZWxOYW1lIj5FLVNlcmllcyBDdXRhd2F5IDIwMjY8L3NwYW4+CgkJCQkJPC9oMz4KCQkJCTwvYT4KCQkJCSAgICA8IS0tIE9QRU4gTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KICAgIDxkaXYgY2xhc3M9ImRpdk5ld0NhclN0YXJ0UHJpY2UiPgogICAgICAgIMOgIHBhcnRpciBkZQogICAgICAgIDxzcGFuIGNsYXNzPSIiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj41MiAwODA8L3NwYW4+PC9zcGFuPgogICAgICAgIDxpIHN0eWxlPSJjb2xvcjojMDAwO2ZvbnQtc2l6ZToyMHB4OyIgY2xhc3M9ImNhclByaWNlSW5pdGlhbFRvb2xUaXBJY29uIGZhbCBmYS1pbmZvLWNpcmNsZSBibGFja0NvbG9yQm9sZCIgZGF0YS10b29sdGlwPScmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1BEU0Y6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzQ5IDM4NSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RyYW5zcG9ydCAmYW1wOyBQcsOpcGFyYXRpb246Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzIgNTk1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VGF4ZSBBQzombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MTAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VG90YWwmbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7NTIgMDgwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0Oyc+PC9pPgogICAgPC9kaXY+CiAgICA8IS0tIENMT1NFIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CgkJCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW5TdG9ja0xpbmsiIGhpZGRlbj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgZGF0YS10eXBlPSJpbnZkYXRhIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9IkUtU2VyaWVzIEN1dGF3YXkiIGRhdGEteWVhcj0iMjAyNiIgZGF0YS1zdHlsZWlkcz0iNDY2NzczLDQ2Njc3NCw0NjY3NzcsNDY2Nzc1LDQ2Njc3Niw0NjY3NzgsNDY2Nzc5IiBkYXRhLWh5YnJpZD0iMCI+Cgk8L2Rpdj4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckltYWdlQ29udGFpbmVyIGZsZXgtY2VudGVyIGFsaWduLWNlbnRlciAiPgoJCQkJPGEgdGl0bGU9IkZvcmQgRS1TZXJpZXMgQ3V0YXdheSAyMDI2IiBocmVmPSI\/cGF0aD0vbmV1ZnMvRm9yZC1FX1Nlcmllc19DdXRhd2F5LTIwMjYuaHRtbCI+CgkJCQkJPGltZyBhbHQ9IkZvcmQgRS1TZXJpZXMgQ3V0YXdheSAyMDI2IiBib3JkZXI9IjAiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL2ZyL0ZvcmQvRV9TZXJpZXNfQ3V0YXdheS8yMDI2LzQ2Njc3My9XaGl0ZS9wcm9maWxlLndlYnAiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj4KCQkJCTwvYT4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckZvb3RlckNvbnRhaW5lciBzdGFjay1sYyAtLXMtOSI+CgkJCQkJPGRpdiBjbGFzcz0iY2FyUGF5bWVudFdyYXBwZXIiPgoJCQk8ZGl2IGNsYXNzPSJjb250ZW50LXNrZWxldG9uIGh0bWwtYmxvY2siIGRhdGEtYmxvY2s9InBheW1lbnRCbG9jayIgZGF0YS10eXBlPSJibG9jayIgZGF0YS1zb3VyY2U9InNlcnZlciIgZGF0YS1jYWxsYmFjaz0icGF5bWVudENhbGNCbG9jayI+CgkJCgk8aW5wdXQgbmFtZT0iYmxvY2stZGF0YSIgdHlwZT0iaGlkZGVuIiB2YWx1ZT0neyJzdHlsZWlkIjoiNDY2NzczIiwidGl0bGUiOiJGb3JkIEUtU2VyaWVzIEN1dGF3YXkgMjAyNiIsImhyZWYiOiJcL25ldWZzXC9Gb3JkLUVfU2VyaWVzX0N1dGF3YXktMjAyNi5odG1sIiwibGlua3N0eWxlIjoiIiwibGlua2NsYXNzIjoiIiwiY29udGFpbmVyY2xhc3MiOiIiLCJwcm9tb3RleHQiOiJPZmZyZSBhZGRpdGlvbm5lbGxlISJ9Jz4KCTwvZGl2PgoJPC9kaXY+CgkJCQkKCQkJPC9kaXY+CgkJPC9kaXY+Cgk8L2Rpdj4JPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggIHJlYmF0ZUJvcmRlckNvbG9yIiBpZD0iZmJ4X2NvbW1lcmNpYWxfNiI+CgkJCgkJPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlSW5uZXJCb3giIGlkPSIiPgoJCQkKCQkJPGRpdiBjbGFzcz0iZGl2Q2FyVGl0bGVDb250YWluZXIiPgoJCQkJPGEgdGl0bGU9IkZvcmQgVHJhbnNpdCBDdXRhd2F5IDIwMjUiIGhyZWY9Ij9wYXRoPS9uZXVmcy9Gb3JkLVRyYW5zaXRfQ3V0YXdheS0yMDI1Lmh0bWwiIGRhdGEtbWFrZT0iRm9yZCIgZGF0YS1tb2RlbD0iVHJhbnNpdCBmb3VyZ29uIHRyb25xdcOpIDIwMjUiPgoJCQkJCTxoMz4KCQkJCQkJPHNwYW4gY2xhc3M9InNwYW5DYXJNYWtlICI+Rm9yZDwvc3Bhbj48YnI+CgkJCQkJCTxzcGFuIGNsYXNzPSJtb2RlbE5hbWUgc3Bhbk1vZGVsTmFtZSI+VHJhbnNpdCBDdXRhd2F5IDIwMjU8L3NwYW4+CgkJCQkJPC9oMz4KCQkJCTwvYT4KCQkJCSAgICA8IS0tIE9QRU4gTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KICAgIDxkaXYgY2xhc3M9ImRpdk5ld0NhclN0YXJ0UHJpY2UiPgogICAgICAgIMOgIHBhcnRpciBkZQogICAgICAgIDxzcGFuIGNsYXNzPSIiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj41OCA4OTU8L3NwYW4+PC9zcGFuPgogICAgICAgIDxpIHN0eWxlPSJjb2xvcjojMDAwO2ZvbnQtc2l6ZToyMHB4OyIgY2xhc3M9ImNhclByaWNlSW5pdGlhbFRvb2xUaXBJY29uIGZhbCBmYS1pbmZvLWNpcmNsZSBibGFja0NvbG9yQm9sZCIgZGF0YS10b29sdGlwPScmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1BEU0Y6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzU1IDgwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RyYW5zcG9ydCAmYW1wOyBQcsOpcGFyYXRpb246Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzIgOTk1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VGF4ZSBBQzombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MTAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VG90YWwmbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7NTggODk1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0Oyc+PC9pPgogICAgPC9kaXY+CiAgICA8IS0tIENMT1NFIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CgkJCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW5TdG9ja0xpbmsiIGhpZGRlbj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgZGF0YS10eXBlPSJpbnZkYXRhIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9IlRyYW5zaXQgQ3V0YXdheSIgZGF0YS15ZWFyPSIyMDI1IiBkYXRhLXN0eWxlaWRzPSI0Njc0NzMsNDY3NDc0LDQ2Njk0OSw0NjY5NTAsNDY2OTUxLDQ2Njk1OSw0NjY5NTIsNDY2OTUzLDQ2Njk2MSw0NjY5NjMsNDY3NDc1LDQ2NzQ3Niw0NjY5NTQsNDY2OTU1LDQ2Njk1Niw0NjY5NjUsNDY2OTU3LDQ2Njk1OCw0NjY5NjAsNDY2OTY3LDQ2Njk2Miw0NjY5NjksNDY2OTY0LDQ2Njk2Niw0NjY5NjgsNDY2OTcwIiBkYXRhLWh5YnJpZD0iMCI+Cgk8L2Rpdj4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckltYWdlQ29udGFpbmVyIGZsZXgtY2VudGVyIGFsaWduLWNlbnRlciAiPgoJCQkJPGEgdGl0bGU9IkZvcmQgVHJhbnNpdCBDdXRhd2F5IDIwMjUiIGhyZWY9Ij9wYXRoPS9uZXVmcy9Gb3JkLVRyYW5zaXRfQ3V0YXdheS0yMDI1Lmh0bWwiPgoJCQkJCTxpbWcgYWx0PSJGb3JkIFRyYW5zaXQgQ3V0YXdheSAyMDI1IiBib3JkZXI9IjAiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL2ZyL0ZvcmQvVHJhbnNpdF9DdXRhd2F5LzIwMjUvNDY3NDczL1doaXRlL3Byb2ZpbGUud2VicCIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPgoJCQkJPC9hPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyRm9vdGVyQ29udGFpbmVyIHN0YWNrLWxjIC0tcy05Ij4KCQkJCQk8ZGl2IGNsYXNzPSJjYXJQYXltZW50V3JhcHBlciI+CgkJCTxkaXYgY2xhc3M9ImNvbnRlbnQtc2tlbGV0b24gaHRtbC1ibG9jayIgZGF0YS1ibG9jaz0icGF5bWVudEJsb2NrIiBkYXRhLXR5cGU9ImJsb2NrIiBkYXRhLXNvdXJjZT0ic2VydmVyIiBkYXRhLWNhbGxiYWNrPSJwYXltZW50Q2FsY0Jsb2NrIj4KCQkKCTxpbnB1dCBuYW1lPSJibG9jay1kYXRhIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSd7InN0eWxlaWQiOiI0Njc0NzMiLCJ0aXRsZSI6IkZvcmQgVHJhbnNpdCBDdXRhd2F5IDIwMjUiLCJocmVmIjoiXC9uZXVmc1wvRm9yZC1UcmFuc2l0X0N1dGF3YXktMjAyNS5odG1sIiwibGlua3N0eWxlIjoiIiwibGlua2NsYXNzIjoiIiwiY29udGFpbmVyY2xhc3MiOiIiLCJwcm9tb3RleHQiOiJPZmZyZSBhZGRpdGlvbm5lbGxlISJ9Jz4KCTwvZGl2PgoJPC9kaXY+CgkJCQkKCQkJPC9kaXY+CgkJPC9kaXY+Cgk8L2Rpdj4JPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggIHJlYmF0ZUJvcmRlckNvbG9yIiBpZD0iZmJ4X2NvbW1lcmNpYWxfNyI+CgkJCgkJPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlSW5uZXJCb3giIGlkPSIiPgoJCQkKCQkJPGRpdiBjbGFzcz0iZGl2Q2FyVGl0bGVDb250YWluZXIiPgoJCQkJPGEgdGl0bGU9IkZvcmQgVHJhbnNpdCBDdXRhd2F5IDIwMjYiIGhyZWY9Ij9wYXRoPS9uZXVmcy9Gb3JkLVRyYW5zaXRfQ3V0YXdheS0yMDI2Lmh0bWwiIGRhdGEtbWFrZT0iRm9yZCIgZGF0YS1tb2RlbD0iVHJhbnNpdCBmb3VyZ29uIHRyb25xdcOpIDIwMjYiPgoJCQkJCTxoMz4KCQkJCQkJPHNwYW4gY2xhc3M9InNwYW5DYXJNYWtlICI+Rm9yZDwvc3Bhbj48YnI+CgkJCQkJCTxzcGFuIGNsYXNzPSJtb2RlbE5hbWUgc3Bhbk1vZGVsTmFtZSI+VHJhbnNpdCBDdXRhd2F5IDIwMjY8L3NwYW4+CgkJCQkJPC9oMz4KCQkJCTwvYT4KCQkJCSAgICA8IS0tIE9QRU4gTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KICAgIDxkaXYgY2xhc3M9ImRpdk5ld0NhclN0YXJ0UHJpY2UiPgogICAgICAgIMOgIHBhcnRpciBkZQogICAgICAgIDxzcGFuIGNsYXNzPSIiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj42MCA1NDU8L3NwYW4+PC9zcGFuPgogICAgICAgIDxpIHN0eWxlPSJjb2xvcjojMDAwO2ZvbnQtc2l6ZToyMHB4OyIgY2xhc3M9ImNhclByaWNlSW5pdGlhbFRvb2xUaXBJY29uIGZhbCBmYS1pbmZvLWNpcmNsZSBibGFja0NvbG9yQm9sZCIgZGF0YS10b29sdGlwPScmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1BEU0Y6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzU3IDQ1MCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RyYW5zcG9ydCAmYW1wOyBQcsOpcGFyYXRpb246Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzIgOTk1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VGF4ZSBBQzombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MTAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VG90YWwmbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7NjAgNTQ1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0Oyc+PC9pPgogICAgPC9kaXY+CiAgICA8IS0tIENMT1NFIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CgkJCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW5TdG9ja0xpbmsiIGhpZGRlbj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgZGF0YS10eXBlPSJpbnZkYXRhIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9IlRyYW5zaXQgQ3V0YXdheSIgZGF0YS15ZWFyPSIyMDI2IiBkYXRhLXN0eWxlaWRzPSI0Nzk1NDQsNDc5NTQ1LDQ3OTM4MCw0NzkzODEsNDc5Mzg2LDQ3OTM4Miw0NzkzODgsNDc5MzkwLDQ3OTU0Niw0Nzk1NDcsNDc5MzgzLDQ3OTM4NCw0NzkzOTIsNDc5Mzg1LDQ3OTM4Nyw0NzkzOTQsNDc5Mzg5LDQ3OTM5Niw0NzkzOTEsNDc5MzkzLDQ3OTM5NSw0NzkzOTciIGRhdGEtaHlicmlkPSIwIj4KCTwvZGl2PgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW1hZ2VDb250YWluZXIgZmxleC1jZW50ZXIgYWxpZ24tY2VudGVyICI+CgkJCQk8YSB0aXRsZT0iRm9yZCBUcmFuc2l0IEN1dGF3YXkgMjAyNiIgaHJlZj0iP3BhdGg9L25ldWZzL0ZvcmQtVHJhbnNpdF9DdXRhd2F5LTIwMjYuaHRtbCI+CgkJCQkJPGltZyBhbHQ9IkZvcmQgVHJhbnNpdCBDdXRhd2F5IDIwMjYiIGJvcmRlcj0iMCIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvZnIvRm9yZC9UcmFuc2l0X0N1dGF3YXkvMjAyNi80Nzk1NDQvV2hpdGUvcHJvZmlsZS53ZWJwIiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+CgkJCQk8L2E+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJGb290ZXJDb250YWluZXIgc3RhY2stbGMgLS1zLTkiPgoJCQkJCTxkaXYgY2xhc3M9ImNhclBheW1lbnRXcmFwcGVyIj4KCQkJPGRpdiBjbGFzcz0iY29udGVudC1za2VsZXRvbiBodG1sLWJsb2NrIiBkYXRhLWJsb2NrPSJwYXltZW50QmxvY2siIGRhdGEtdHlwZT0iYmxvY2siIGRhdGEtc291cmNlPSJzZXJ2ZXIiIGRhdGEtY2FsbGJhY2s9InBheW1lbnRDYWxjQmxvY2siPgoJCQoJPGlucHV0IG5hbWU9ImJsb2NrLWRhdGEiIHR5cGU9ImhpZGRlbiIgdmFsdWU9J3sic3R5bGVpZCI6IjQ3OTU0NCIsInRpdGxlIjoiRm9yZCBUcmFuc2l0IEN1dGF3YXkgMjAyNiIsImhyZWYiOiJcL25ldWZzXC9Gb3JkLVRyYW5zaXRfQ3V0YXdheS0yMDI2Lmh0bWwiLCJsaW5rc3R5bGUiOiIiLCJsaW5rY2xhc3MiOiIiLCJjb250YWluZXJjbGFzcyI6IiIsInByb21vdGV4dCI6Ik9mZnJlIGFkZGl0aW9ubmVsbGUhIn0nPgoJPC9kaXY+Cgk8L2Rpdj4KCQkJCQoJCQk8L2Rpdj4KCQk8L2Rpdj4KCTwvZGl2Pgk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVPdXRlckJveCAgcmViYXRlQm9yZGVyQ29sb3IiIGlkPSJmYnhfY29tbWVyY2lhbF84Ij4KCQk8ZGl2IGNsYXNzPSJyZWJhdGVUYWciPjxzcGFuIGNsYXNzPSJyZWJhdGVUZXh0Ij5yYWJhaXMganVzcXUnw6A8L3NwYW4+PHNwYW4gY2xhc3M9InJlYmF0ZUFtb3VudCI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjMgMDAwPC9zcGFuPjwvc3Bhbj48L2Rpdj4KCQk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVJbm5lckJveCIgaWQ9IiI+CgkJCQoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJUaXRsZUNvbnRhaW5lciI+CgkJCQk8YSB0aXRsZT0iRm9yZCBUcmFuc2l0IENhcmdvIFZhbiAyMDI1IiBocmVmPSI\/cGF0aD0vbmV1ZnMvRm9yZC1UcmFuc2l0X0NhcmdvX1Zhbi0yMDI1Lmh0bWwiIGRhdGEtbWFrZT0iRm9yZCIgZGF0YS1tb2RlbD0iVHJhbnNpdCBmb3VyZ29uIHV0aWxpdGFpcmUgMjAyNSI+CgkJCQkJPGgzPgoJCQkJCQk8c3BhbiBjbGFzcz0ic3BhbkNhck1ha2UgIj5Gb3JkPC9zcGFuPjxicj4KCQkJCQkJPHNwYW4gY2xhc3M9Im1vZGVsTmFtZSBzcGFuTW9kZWxOYW1lIj5UcmFuc2l0IENhcmdvIFZhbiAyMDI1PC9zcGFuPgoJCQkJCTwvaDM+CgkJCQk8L2E+CgkJCQkgICAgPCEtLSBPUEVOIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CiAgICA8ZGl2IGNsYXNzPSJkaXZOZXdDYXJTdGFydFByaWNlIj4KICAgICAgICDDoCBwYXJ0aXIgZGUKICAgICAgICA8c3BhbiBjbGFzcz0ic3RyaWtlLXByaWNlIj4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+NjEgNTk1PC9zcGFuPjwvc3Bhbj4KICAgICAgICA8aSBzdHlsZT0iY29sb3I6IzAwMDtmb250LXNpemU6MjBweDsiIGNsYXNzPSJjYXJQcmljZUluaXRpYWxUb29sVGlwSWNvbiBmYWwgZmEtaW5mby1jaXJjbGUgYmxhY2tDb2xvckJvbGQiIGRhdGEtdG9vbHRpcD0nJmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtQRFNGOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDs1OCA1MDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUcmFuc3BvcnQgJmFtcDsgUHLDqXBhcmF0aW9uOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsyIDk5NSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RheGUgQUM6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzEwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RvdGFsJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzYxIDU5NSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsnPjwvaT4KICAgIDwvZGl2PgogICAgPCEtLSBDTE9TRSBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPjwhLS0gT1BFTiBORVcgQ0FSIFBST01PIFBSSUNFICgyNzQpLS0+PGRpdiBjbGFzcz0iZGl2TmV3Q2FyUHJvbW9QcmljZSI+ZW4gcmFiYWlzIMOgIDxzcGFuIGNsYXNzPSIiIHN0eWxlPSJjb2xvcjogIzAyNzZiMzsiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj41OCA1OTU8L3NwYW4+PC9zcGFuPjwvZGl2PjwhLS0gQ0xPU0UgTkVXIENBUiBQUk9NTyBQUklDRSAoMjgxKS0tPgoJCQkJCTxkaXYgY2xhc3M9ImRpdkNhckluU3RvY2tMaW5rIiBoaWRkZW4+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGRhdGEtdHlwZT0iaW52ZGF0YSIgZGF0YS1tYWtlPSJGb3JkIiBkYXRhLW1vZGVsPSJUcmFuc2l0IENhcmdvIFZhbiIgZGF0YS15ZWFyPSIyMDI1IiBkYXRhLXN0eWxlaWRzPSI0NjcxNjUsNDY3MTY2LDQ2NzE3MSw0NjcxNjcsNDY3MTcyLDQ2NzE4MSw0NjcxNzMsNDY3MTgyLDQ2NzE4Myw0NjcxNjgsNDY3MTc0LDQ2NzE4NCw0NjcxODUsNDY3MTY5LDQ2NzE3Niw0NjcxNzUsNDY3MTcwLDQ2NzE4Nyw0NjcxODYsNDY3MTc3LDQ2NzE5Miw0NjcxODksNDY3MTg4LDQ2NzE3OCw0NjcxOTMsNDY3MTk0LDQ2NzE5MCw0NjcxNzksNDY3MTk1LDQ2NzE5Niw0NjcxODAsNDY3MTk3LDQ2NzE5OCw0NjcxOTksNDY3MjAwLDQ2NzE5MSw0NjcyMDEsNDY3MjAyIiBkYXRhLWh5YnJpZD0iMCI+Cgk8L2Rpdj4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckltYWdlQ29udGFpbmVyIGZsZXgtY2VudGVyIGFsaWduLWNlbnRlciAiPgoJCQkJPGEgdGl0bGU9IkZvcmQgVHJhbnNpdCBDYXJnbyBWYW4gMjAyNSIgaHJlZj0iP3BhdGg9L25ldWZzL0ZvcmQtVHJhbnNpdF9DYXJnb19WYW4tMjAyNS5odG1sIj4KCQkJCQk8aW1nIGFsdD0iRm9yZCBUcmFuc2l0IENhcmdvIFZhbiAyMDI1IiBib3JkZXI9IjAiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL2ZyL0ZvcmQvVHJhbnNpdF9DYXJnb19WYW4vMjAyNS80NjcxNjUvV2hpdGUvcHJvZmlsZS53ZWJwIiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+CgkJCQk8L2E+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJGb290ZXJDb250YWluZXIgc3RhY2stbGMgLS1zLTkiPgoJCQkJCTxkaXYgY2xhc3M9ImNhclBheW1lbnRXcmFwcGVyIj4KCQkJPGRpdiBjbGFzcz0iY29udGVudC1za2VsZXRvbiBodG1sLWJsb2NrIiBkYXRhLWJsb2NrPSJwYXltZW50QmxvY2siIGRhdGEtdHlwZT0iYmxvY2siIGRhdGEtc291cmNlPSJzZXJ2ZXIiIGRhdGEtY2FsbGJhY2s9InBheW1lbnRDYWxjQmxvY2siPgoJCQoJPGlucHV0IG5hbWU9ImJsb2NrLWRhdGEiIHR5cGU9ImhpZGRlbiIgdmFsdWU9J3sic3R5bGVpZCI6IjQ2NzE2NSIsInRpdGxlIjoiRm9yZCBUcmFuc2l0IENhcmdvIFZhbiAyMDI1IiwiaHJlZiI6IlwvbmV1ZnNcL0ZvcmQtVHJhbnNpdF9DYXJnb19WYW4tMjAyNS5odG1sIiwibGlua3N0eWxlIjoiIiwibGlua2NsYXNzIjoiIiwiY29udGFpbmVyY2xhc3MiOiIiLCJwcm9tb3RleHQiOiJPZmZyZSBhZGRpdGlvbm5lbGxlISJ9Jz4KCTwvZGl2PgoJPC9kaXY+CgkJCQkKCQkJPC9kaXY+CgkJPC9kaXY+Cgk8L2Rpdj4JPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggIHJlYmF0ZUJvcmRlckNvbG9yIiBpZD0iZmJ4X2NvbW1lcmNpYWxfOSI+CgkJPGRpdiBjbGFzcz0icmViYXRlVGFnIj48c3BhbiBjbGFzcz0icmViYXRlVGV4dCI+cmFiYWlzIGp1c3F1J8OgPC9zcGFuPjxzcGFuIGNsYXNzPSJyZWJhdGVBbW91bnQiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj4xIDAwMDwvc3Bhbj48L3NwYW4+PC9kaXY+CgkJPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlSW5uZXJCb3giIGlkPSIiPgoJCQkKCQkJPGRpdiBjbGFzcz0iZGl2Q2FyVGl0bGVDb250YWluZXIiPgoJCQkJPGEgdGl0bGU9IkZvcmQgVHJhbnNpdCBDYXJnbyBWYW4gMjAyNiIgaHJlZj0iP3BhdGg9L25ldWZzL0ZvcmQtVHJhbnNpdF9DYXJnb19WYW4tMjAyNi5odG1sIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9IlRyYW5zaXQgZm91cmdvbiB1dGlsaXRhaXJlIDIwMjYiPgoJCQkJCTxoMz4KCQkJCQkJPHNwYW4gY2xhc3M9InNwYW5DYXJNYWtlICI+Rm9yZDwvc3Bhbj48YnI+CgkJCQkJCTxzcGFuIGNsYXNzPSJtb2RlbE5hbWUgc3Bhbk1vZGVsTmFtZSI+VHJhbnNpdCBDYXJnbyBWYW4gMjAyNjwvc3Bhbj4KCQkJCQk8L2gzPgoJCQkJPC9hPgoJCQkJICAgIDwhLS0gT1BFTiBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgogICAgPGRpdiBjbGFzcz0iZGl2TmV3Q2FyU3RhcnRQcmljZSI+CiAgICAgICAgw6AgcGFydGlyIGRlCiAgICAgICAgPHNwYW4gY2xhc3M9InN0cmlrZS1wcmljZSI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjYyIDk5NTwvc3Bhbj48L3NwYW4+CiAgICAgICAgPGkgc3R5bGU9ImNvbG9yOiMwMDA7Zm9udC1zaXplOjIwcHg7IiBjbGFzcz0iY2FyUHJpY2VJbml0aWFsVG9vbFRpcEljb24gZmFsIGZhLWluZm8tY2lyY2xlIGJsYWNrQ29sb3JCb2xkIiBkYXRhLXRvb2x0aXA9JyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7UERTRjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7NTkgOTAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VHJhbnNwb3J0ICZhbXA7IFByw6lwYXJhdGlvbjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MiA5OTUmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUYXhlIEFDOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsxMDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUb3RhbCZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDs2MiA5OTUmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jz48L2k+CiAgICA8L2Rpdj4KICAgIDwhLS0gQ0xPU0UgTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT48IS0tIE9QRU4gTkVXIENBUiBQUk9NTyBQUklDRSAoMjc0KS0tPjxkaXYgY2xhc3M9ImRpdk5ld0NhclByb21vUHJpY2UiPmVuIHJhYmFpcyDDoCA8c3BhbiBjbGFzcz0iIiBzdHlsZT0iY29sb3I6ICMwMjc2YjM7Ij4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+NjEgOTk1PC9zcGFuPjwvc3Bhbj48L2Rpdj48IS0tIENMT1NFIE5FVyBDQVIgUFJPTU8gUFJJQ0UgKDI4MSktLT4KCQkJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJblN0b2NrTGluayIgaGlkZGVuPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBkYXRhLXR5cGU9ImludmRhdGEiIGRhdGEtbWFrZT0iRm9yZCIgZGF0YS1tb2RlbD0iVHJhbnNpdCBDYXJnbyBWYW4iIGRhdGEteWVhcj0iMjAyNiIgZGF0YS1zdHlsZWlkcz0iNDc4NDY5LDQ3ODQ3MCw0Nzg0NzUsNDc4NDcxLDQ3ODQ3Niw0Nzg0ODUsNDc4NDc3LDQ3ODQ4Niw0Nzg0ODcsNDc4NDcyLDQ3ODQ3OCw0Nzg0ODgsNDc4NDg5LDQ3ODQ3Myw0Nzg0ODAsNDc4NDc5LDQ3ODQ3NCw0Nzg0OTEsNDc4NDkwLDQ3ODQ4MSw0Nzg0OTYsNDc4NDkzLDQ3ODQ5Miw0Nzg0ODIsNDc4NDk3LDQ3ODQ5OCw0Nzg0OTQsNDc4NDgzLDQ3ODQ5OSw0Nzg1MDAsNDc4NDg0LDQ3ODUwMSw0Nzg1MDIsNDc4NTAzLDQ3ODUwNCw0Nzg0OTUsNDc4NTA1LDQ3ODUwNiIgZGF0YS1oeWJyaWQ9IjAiPgoJPC9kaXY+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJbWFnZUNvbnRhaW5lciBmbGV4LWNlbnRlciBhbGlnbi1jZW50ZXIgIj4KCQkJCTxhIHRpdGxlPSJGb3JkIFRyYW5zaXQgQ2FyZ28gVmFuIDIwMjYiIGhyZWY9Ij9wYXRoPS9uZXVmcy9Gb3JkLVRyYW5zaXRfQ2FyZ29fVmFuLTIwMjYuaHRtbCI+CgkJCQkJPGltZyBhbHQ9IkZvcmQgVHJhbnNpdCBDYXJnbyBWYW4gMjAyNiIgYm9yZGVyPSIwIiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9mci9Gb3JkL1RyYW5zaXRfQ2FyZ29fVmFuLzIwMjYvNDc4NDY5L1doaXRlL3Byb2ZpbGUud2VicCIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPgoJCQkJPC9hPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyRm9vdGVyQ29udGFpbmVyIHN0YWNrLWxjIC0tcy05Ij4KCQkJCQk8ZGl2IGNsYXNzPSJjYXJQYXltZW50V3JhcHBlciI+CgkJCTxkaXYgY2xhc3M9ImNvbnRlbnQtc2tlbGV0b24gaHRtbC1ibG9jayIgZGF0YS1ibG9jaz0icGF5bWVudEJsb2NrIiBkYXRhLXR5cGU9ImJsb2NrIiBkYXRhLXNvdXJjZT0ic2VydmVyIiBkYXRhLWNhbGxiYWNrPSJwYXltZW50Q2FsY0Jsb2NrIj4KCQkKCTxpbnB1dCBuYW1lPSJibG9jay1kYXRhIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSd7InN0eWxlaWQiOiI0Nzg0NjkiLCJ0aXRsZSI6IkZvcmQgVHJhbnNpdCBDYXJnbyBWYW4gMjAyNiIsImhyZWYiOiJcL25ldWZzXC9Gb3JkLVRyYW5zaXRfQ2FyZ29fVmFuLTIwMjYuaHRtbCIsImxpbmtzdHlsZSI6IiIsImxpbmtjbGFzcyI6IiIsImNvbnRhaW5lcmNsYXNzIjoiIiwicHJvbW90ZXh0IjoiT2ZmcmUgYWRkaXRpb25uZWxsZSEifSc+Cgk8L2Rpdj4KCTwvZGl2PgoJCQkJCgkJCTwvZGl2PgoJCTwvZGl2PgoJPC9kaXY+CTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZU91dGVyQm94ICByZWJhdGVCb3JkZXJDb2xvciIgaWQ9ImZieF9jb21tZXJjaWFsXzEwIj4KCQkKCQk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVJbm5lckJveCIgaWQ9IiI+CgkJCQoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJUaXRsZUNvbnRhaW5lciI+CgkJCQk8YSB0aXRsZT0iRm9yZCBTdXBlciBEdXR5IEYtMzUwIFNSVyAyMDI1IiBocmVmPSI\/cGF0aD0vbmV1ZnMvRm9yZC1TdXBlcl9EdXR5X0ZfMzUwX1NSVy0yMDI1Lmh0bWwiIGRhdGEtbWFrZT0iRm9yZCIgZGF0YS1tb2RlbD0iU3VwZXIgRHV0eSBGLTM1MCDDoCByb3VlcyBhcnJpw6hyZSBzaW1wbGVzIDIwMjUiPgoJCQkJCTxoMz4KCQkJCQkJPHNwYW4gY2xhc3M9InNwYW5DYXJNYWtlICI+Rm9yZDwvc3Bhbj48YnI+CgkJCQkJCTxzcGFuIGNsYXNzPSJtb2RlbE5hbWUgc3Bhbk1vZGVsTmFtZSI+U3VwZXIgRHV0eSBGLTM1MCBTUlcgMjAyNTwvc3Bhbj4KCQkJCQk8L2gzPgoJCQkJPC9hPgoJCQkJICAgIDwhLS0gT1BFTiBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgogICAgPGRpdiBjbGFzcz0iZGl2TmV3Q2FyU3RhcnRQcmljZSI+CiAgICAgICAgw6AgcGFydGlyIGRlCiAgICAgICAgPHNwYW4gY2xhc3M9IiI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjY0IDk3NDwvc3Bhbj48L3NwYW4+CiAgICAgICAgPGkgc3R5bGU9ImNvbG9yOiMwMDA7Zm9udC1zaXplOjIwcHg7IiBjbGFzcz0iY2FyUHJpY2VJbml0aWFsVG9vbFRpcEljb24gZmFsIGZhLWluZm8tY2lyY2xlIGJsYWNrQ29sb3JCb2xkIiBkYXRhLXRvb2x0aXA9JyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7UERTRjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7NjIgNDc5Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VHJhbnNwb3J0ICZhbXA7IFByw6lwYXJhdGlvbjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MiAzOTUmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUYXhlIEFDOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsxMDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUb3RhbCZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDs2NCA5NzQmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jz48L2k+CiAgICA8L2Rpdj4KICAgIDwhLS0gQ0xPU0UgTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KCQkJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJblN0b2NrTGluayIgaGlkZGVuPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBkYXRhLXR5cGU9ImludmRhdGEiIGRhdGEtbWFrZT0iRm9yZCIgZGF0YS1tb2RlbD0iU3VwZXIgRHV0eSBGLTM1MCBTUlciIGRhdGEteWVhcj0iMjAyNSIgZGF0YS1zdHlsZWlkcz0iNDY1MjMzLDQ2NTc5NSw0NjUyMzQsNDY1MjM2LDQ2NTc5Niw0NjUyMzksNDY1MjQ1LDQ2NTc5Nyw0NjU3OTksNDY1MjM3LDQ2NTc5OCw0NjU4MDMsNDY1ODAwLDQ2NTI0MCw0NjUyNDYsNDY1ODAxLDQ2NTgwNCw0NjUyMzUsNDY1ODA1LDQ2NTgwMiw0NjU4MDYsNDY1MjM4LDQ2NTI0MSw0NjUyNDcsNDY1ODA3LDQ2NTI0Miw0NjUyNDgsNDY1MjQzLDQ2NTI0NCw0NjUyNDksNDY1MjUwIiBkYXRhLWh5YnJpZD0iMCI+Cgk8L2Rpdj4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckltYWdlQ29udGFpbmVyIGZsZXgtY2VudGVyIGFsaWduLWNlbnRlciAiPgoJCQkJPGEgdGl0bGU9IkZvcmQgU3VwZXIgRHV0eSBGLTM1MCBTUlcgMjAyNSIgaHJlZj0iP3BhdGg9L25ldWZzL0ZvcmQtU3VwZXJfRHV0eV9GXzM1MF9TUlctMjAyNS5odG1sIj4KCQkJCQk8aW1nIGFsdD0iRm9yZCBTdXBlciBEdXR5IEYtMzUwIFNSVyAyMDI1IiBib3JkZXI9IjAiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL2ZyL0ZvcmQvU3VwZXJfRHV0eV9GXzM1MF9TUlcvMjAyNS80NjUyMzMvV2hpdGUvcHJvZmlsZS53ZWJwIiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+CgkJCQk8L2E+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJGb290ZXJDb250YWluZXIgc3RhY2stbGMgLS1zLTkiPgoJCQkJCTxkaXYgY2xhc3M9ImNhclBheW1lbnRXcmFwcGVyIj4KCQkJPGRpdiBjbGFzcz0iY29udGVudC1za2VsZXRvbiBodG1sLWJsb2NrIiBkYXRhLWJsb2NrPSJwYXltZW50QmxvY2siIGRhdGEtdHlwZT0iYmxvY2siIGRhdGEtc291cmNlPSJzZXJ2ZXIiIGRhdGEtY2FsbGJhY2s9InBheW1lbnRDYWxjQmxvY2siPgoJCQoJPGlucHV0IG5hbWU9ImJsb2NrLWRhdGEiIHR5cGU9ImhpZGRlbiIgdmFsdWU9J3sic3R5bGVpZCI6IjQ2NTIzMyIsInRpdGxlIjoiRm9yZCBTdXBlciBEdXR5IEYtMzUwIFNSVyAyMDI1IiwiaHJlZiI6IlwvbmV1ZnNcL0ZvcmQtU3VwZXJfRHV0eV9GXzM1MF9TUlctMjAyNS5odG1sIiwibGlua3N0eWxlIjoiIiwibGlua2NsYXNzIjoiIiwiY29udGFpbmVyY2xhc3MiOiIiLCJwcm9tb3RleHQiOiJPZmZyZSBhZGRpdGlvbm5lbGxlISJ9Jz4KCTwvZGl2PgoJPC9kaXY+CgkJCQkKCQkJPC9kaXY+CgkJPC9kaXY+Cgk8L2Rpdj4JPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggIHJlYmF0ZUJvcmRlckNvbG9yIiBpZD0iZmJ4X2NvbW1lcmNpYWxfMTEiPgoJCQoJCTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZUlubmVyQm94IiBpZD0iIj4KCQkJCgkJCTxkaXYgY2xhc3M9ImRpdkNhclRpdGxlQ29udGFpbmVyIj4KCQkJCTxhIHRpdGxlPSJGb3JkIFN1cGVyIER1dHkgRi0zNTAgRFJXIDIwMjYiIGhyZWY9Ij9wYXRoPS9uZXVmcy9Gb3JkLVN1cGVyX0R1dHlfRl8zNTBfRFJXLTIwMjYuaHRtbCIgZGF0YS1tYWtlPSJGb3JkIiBkYXRhLW1vZGVsPSJTdXBlciBEdXR5IEYtMzUwIMOgIHJvdWVzIGFycmnDqHJlIGp1bWVsw6llcyAyMDI2Ij4KCQkJCQk8aDM+CgkJCQkJCTxzcGFuIGNsYXNzPSJzcGFuQ2FyTWFrZSAiPkZvcmQ8L3NwYW4+PGJyPgoJCQkJCQk8c3BhbiBjbGFzcz0ibW9kZWxOYW1lIHNwYW5Nb2RlbE5hbWUiPlN1cGVyIER1dHkgRi0zNTAgRFJXIDIwMjY8L3NwYW4+CgkJCQkJPC9oMz4KCQkJCTwvYT4KCQkJCSAgICA8IS0tIE9QRU4gTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KICAgIDxkaXYgY2xhc3M9ImRpdk5ld0NhclN0YXJ0UHJpY2UiPgogICAgICAgIMOgIHBhcnRpciBkZQogICAgICAgIDxzcGFuIGNsYXNzPSIiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj42NyAyODA8L3NwYW4+PC9zcGFuPgogICAgICAgIDxpIHN0eWxlPSJjb2xvcjojMDAwO2ZvbnQtc2l6ZToyMHB4OyIgY2xhc3M9ImNhclByaWNlSW5pdGlhbFRvb2xUaXBJY29uIGZhbCBmYS1pbmZvLWNpcmNsZSBibGFja0NvbG9yQm9sZCIgZGF0YS10b29sdGlwPScmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1BEU0Y6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzY0IDQ4NSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RyYW5zcG9ydCAmYW1wOyBQcsOpcGFyYXRpb246Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzIgNjk1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VGF4ZSBBQzombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MTAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VG90YWwmbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7NjcgMjgwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0Oyc+PC9pPgogICAgPC9kaXY+CiAgICA8IS0tIENMT1NFIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CgkJCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW5TdG9ja0xpbmsiIGhpZGRlbj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgZGF0YS10eXBlPSJpbnZkYXRhIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9IlN1cGVyIER1dHkgRi0zNTAgRFJXIiBkYXRhLXllYXI9IjIwMjYiIGRhdGEtc3R5bGVpZHM9IjQ3NzYwMiw0NzgwMDMsNDc4MDA3LDQ3NzYwMyw0NzgwMDQsNDc4MDA4LDQ3ODAwNSw0Nzc2MTEsNDc4MDExLDQ3ODAwOSw0NzgwMDYsNDc4MDE1LDQ3ODAxMiw0NzgwMTAsNDc3NjA2LDQ3NzYwNCw0NzgwMTMsNDc4MDE2LDQ3ODAxNyw0NzgwMTQsNDc4MDE4LDQ3NzYwNyw0Nzc2MDUsNDc3NjEyLDQ3ODAxOSw0Nzc2MDgsNDc3NjEzLDQ3NzYwOSw0Nzc2MTAiIGRhdGEtaHlicmlkPSIwIj4KCTwvZGl2PgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW1hZ2VDb250YWluZXIgZmxleC1jZW50ZXIgYWxpZ24tY2VudGVyICI+CgkJCQk8YSB0aXRsZT0iRm9yZCBTdXBlciBEdXR5IEYtMzUwIERSVyAyMDI2IiBocmVmPSI\/cGF0aD0vbmV1ZnMvRm9yZC1TdXBlcl9EdXR5X0ZfMzUwX0RSVy0yMDI2Lmh0bWwiPgoJCQkJCTxpbWcgYWx0PSJGb3JkIFN1cGVyIER1dHkgRi0zNTAgRFJXIDIwMjYiIGJvcmRlcj0iMCIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvZnIvRm9yZC9TdXBlcl9EdXR5X0ZfMzUwX0RSVy8yMDI2LzQ3NzYwMi9XaGl0ZS9wcm9maWxlLndlYnAiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj4KCQkJCTwvYT4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckZvb3RlckNvbnRhaW5lciBzdGFjay1sYyAtLXMtOSI+CgkJCQkJPGRpdiBjbGFzcz0iY2FyUGF5bWVudFdyYXBwZXIiPgoJCQk8ZGl2IGNsYXNzPSJjb250ZW50LXNrZWxldG9uIGh0bWwtYmxvY2siIGRhdGEtYmxvY2s9InBheW1lbnRCbG9jayIgZGF0YS10eXBlPSJibG9jayIgZGF0YS1zb3VyY2U9InNlcnZlciIgZGF0YS1jYWxsYmFjaz0icGF5bWVudENhbGNCbG9jayI+CgkJCgk8aW5wdXQgbmFtZT0iYmxvY2stZGF0YSIgdHlwZT0iaGlkZGVuIiB2YWx1ZT0neyJzdHlsZWlkIjoiNDc3NjAyIiwidGl0bGUiOiJGb3JkIFN1cGVyIER1dHkgRi0zNTAgRFJXIDIwMjYiLCJocmVmIjoiXC9uZXVmc1wvRm9yZC1TdXBlcl9EdXR5X0ZfMzUwX0RSVy0yMDI2Lmh0bWwiLCJsaW5rc3R5bGUiOiIiLCJsaW5rY2xhc3MiOiIiLCJjb250YWluZXJjbGFzcyI6IiIsInByb21vdGV4dCI6Ik9mZnJlIGFkZGl0aW9ubmVsbGUhIn0nPgoJPC9kaXY+Cgk8L2Rpdj4KCQkJCQoJCQk8L2Rpdj4KCQk8L2Rpdj4KCTwvZGl2Pgk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVPdXRlckJveCAgcmViYXRlQm9yZGVyQ29sb3IiIGlkPSJmYnhfY29tbWVyY2lhbF8xMiI+CgkJCgkJPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlSW5uZXJCb3giIGlkPSIiPgoJCQkKCQkJPGRpdiBjbGFzcz0iZGl2Q2FyVGl0bGVDb250YWluZXIiPgoJCQkJPGEgdGl0bGU9IkZvcmQgU3VwZXIgRHV0eSBGLTQ1MCBEUlcgMjAyNiIgaHJlZj0iP3BhdGg9L25ldWZzL0ZvcmQtU3VwZXJfRHV0eV9GXzQ1MF9EUlctMjAyNi5odG1sIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9IlN1cGVyIER1dHkgRi00NTAgRFJXIDIwMjYiPgoJCQkJCTxoMz4KCQkJCQkJPHNwYW4gY2xhc3M9InNwYW5DYXJNYWtlICI+Rm9yZDwvc3Bhbj48YnI+CgkJCQkJCTxzcGFuIGNsYXNzPSJtb2RlbE5hbWUgc3Bhbk1vZGVsTmFtZSI+U3VwZXIgRHV0eSBGLTQ1MCBEUlcgMjAyNjwvc3Bhbj4KCQkJCQk8L2gzPgoJCQkJPC9hPgoJCQkJICAgIDwhLS0gT1BFTiBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgogICAgPGRpdiBjbGFzcz0iZGl2TmV3Q2FyU3RhcnRQcmljZSI+CiAgICAgICAgw6AgcGFydGlyIGRlCiAgICAgICAgPHNwYW4gY2xhc3M9IiI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjcxIDIxMDwvc3Bhbj48L3NwYW4+CiAgICAgICAgPGkgc3R5bGU9ImNvbG9yOiMwMDA7Zm9udC1zaXplOjIwcHg7IiBjbGFzcz0iY2FyUHJpY2VJbml0aWFsVG9vbFRpcEljb24gZmFsIGZhLWluZm8tY2lyY2xlIGJsYWNrQ29sb3JCb2xkIiBkYXRhLXRvb2x0aXA9JyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7UERTRjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7NjggNDE1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VHJhbnNwb3J0ICZhbXA7IFByw6lwYXJhdGlvbjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MiA2OTUmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUYXhlIEFDOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsxMDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUb3RhbCZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDs3MSAyMTAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jz48L2k+CiAgICA8L2Rpdj4KICAgIDwhLS0gQ0xPU0UgTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KCQkJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJblN0b2NrTGluayIgaGlkZGVuPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBkYXRhLXR5cGU9ImludmRhdGEiIGRhdGEtbWFrZT0iRm9yZCIgZGF0YS1tb2RlbD0iU3VwZXIgRHV0eSBGLTQ1MCBEUlciIGRhdGEteWVhcj0iMjAyNiIgZGF0YS1zdHlsZWlkcz0iNDc3ODYyLDQ3Nzg2Niw0Nzc4NzAsNDc3ODc0LDQ3Nzg2Myw0Nzc4NjcsNDc3ODcxLDQ3Nzg3OCw0Nzc4NzUsNDc3ODY0LDQ3Nzg2OCw0Nzc4ODYsNDc3ODc5LDQ3Nzg3Miw0Nzc4OTEsNDc3ODc2LDQ3Nzg2NSw0Nzc4NjksNDc3ODg3LDQ3Nzg3Myw0Nzc4OTIsNDc3ODgwLDQ3Nzg3Nyw0Nzc4ODQsNDc3ODg4LDQ3Nzg4MSw0Nzc4OTMsNDc3ODg1LDQ3Nzg4OSw0Nzc4OTQsNDc3OTE1LDQ3Nzg4Miw0Nzc4ODMsNDc3OTE2LDQ3NzkyNCw0Nzc5MTgsNDc3OTE3LDQ3NzkxOSw0Nzc5MjUsNDc3OTIwLDQ3Nzg5MCw0Nzc4OTUsNDc3OTI2LDQ3NzkyMSw0Nzc5MjIsNDc3OTIzIiBkYXRhLWh5YnJpZD0iMCI+Cgk8L2Rpdj4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckltYWdlQ29udGFpbmVyIGZsZXgtY2VudGVyIGFsaWduLWNlbnRlciAiPgoJCQkJPGEgdGl0bGU9IkZvcmQgU3VwZXIgRHV0eSBGLTQ1MCBEUlcgMjAyNiIgaHJlZj0iP3BhdGg9L25ldWZzL0ZvcmQtU3VwZXJfRHV0eV9GXzQ1MF9EUlctMjAyNi5odG1sIj4KCQkJCQk8aW1nIGFsdD0iRm9yZCBTdXBlciBEdXR5IEYtNDUwIERSVyAyMDI2IiBib3JkZXI9IjAiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL2ZyL0ZvcmQvU3VwZXJfRHV0eV9GXzQ1MF9EUlcvMjAyNi80Nzc4NjIvV2hpdGUvcHJvZmlsZS53ZWJwIiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+CgkJCQk8L2E+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJGb290ZXJDb250YWluZXIgc3RhY2stbGMgLS1zLTkiPgoJCQkJCTxkaXYgY2xhc3M9ImNhclBheW1lbnRXcmFwcGVyIj4KCQkJPGRpdiBjbGFzcz0iY29udGVudC1za2VsZXRvbiBodG1sLWJsb2NrIiBkYXRhLWJsb2NrPSJwYXltZW50QmxvY2siIGRhdGEtdHlwZT0iYmxvY2siIGRhdGEtc291cmNlPSJzZXJ2ZXIiIGRhdGEtY2FsbGJhY2s9InBheW1lbnRDYWxjQmxvY2siPgoJCQoJPGlucHV0IG5hbWU9ImJsb2NrLWRhdGEiIHR5cGU9ImhpZGRlbiIgdmFsdWU9J3sic3R5bGVpZCI6IjQ3Nzg2MiIsInRpdGxlIjoiRm9yZCBTdXBlciBEdXR5IEYtNDUwIERSVyAyMDI2IiwiaHJlZiI6IlwvbmV1ZnNcL0ZvcmQtU3VwZXJfRHV0eV9GXzQ1MF9EUlctMjAyNi5odG1sIiwibGlua3N0eWxlIjoiIiwibGlua2NsYXNzIjoiIiwiY29udGFpbmVyY2xhc3MiOiIiLCJwcm9tb3RleHQiOiJPZmZyZSBhZGRpdGlvbm5lbGxlISJ9Jz4KCTwvZGl2PgoJPC9kaXY+CgkJCQkKCQkJPC9kaXY+CgkJPC9kaXY+Cgk8L2Rpdj4JPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggIHJlYmF0ZUJvcmRlckNvbG9yIiBpZD0iZmJ4X2NvbW1lcmNpYWxfMTMiPgoJCQoJCTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZUlubmVyQm94IiBpZD0iIj4KCQkJCgkJCTxkaXYgY2xhc3M9ImRpdkNhclRpdGxlQ29udGFpbmVyIj4KCQkJCTxhIHRpdGxlPSJGb3JkIEUtVHJhbnNpdCBDdXRhd2F5IDIwMjUiIGhyZWY9Ij9wYXRoPS9uZXVmcy9Gb3JkLUVfVHJhbnNpdF9DdXRhd2F5LTIwMjUuaHRtbCIgZGF0YS1tYWtlPSJGb3JkIiBkYXRhLW1vZGVsPSJFLVRyYW5zaXQgZm91cmdvbiB0cm9ucXXDqSAyMDI1Ij4KCQkJCQk8aDM+CgkJCQkJCTxzcGFuIGNsYXNzPSJzcGFuQ2FyTWFrZSAiPkZvcmQ8L3NwYW4+PGJyPgoJCQkJCQk8c3BhbiBjbGFzcz0ibW9kZWxOYW1lIHNwYW5Nb2RlbE5hbWUiPkUtVHJhbnNpdCBDdXRhd2F5IDIwMjU8L3NwYW4+CgkJCQkJPC9oMz4KCQkJCTwvYT4KCQkJCSAgICA8IS0tIE9QRU4gTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KICAgIDxkaXYgY2xhc3M9ImRpdk5ld0NhclN0YXJ0UHJpY2UiPgogICAgICAgIMOgIHBhcnRpciBkZQogICAgICAgIDxzcGFuIGNsYXNzPSIiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj43MSAzOTU8L3NwYW4+PC9zcGFuPgogICAgICAgIDxpIHN0eWxlPSJjb2xvcjojMDAwO2ZvbnQtc2l6ZToyMHB4OyIgY2xhc3M9ImNhclByaWNlSW5pdGlhbFRvb2xUaXBJY29uIGZhbCBmYS1pbmZvLWNpcmNsZSBibGFja0NvbG9yQm9sZCIgZGF0YS10b29sdGlwPScmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1BEU0Y6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzY4IDMwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RyYW5zcG9ydCAmYW1wOyBQcsOpcGFyYXRpb246Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzIgOTk1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VGF4ZSBBQzombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MTAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VG90YWwmbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7NzEgMzk1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0Oyc+PC9pPgogICAgPC9kaXY+CiAgICA8IS0tIENMT1NFIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CgkJCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW5TdG9ja0xpbmsiIGhpZGRlbj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgZGF0YS10eXBlPSJpbnZkYXRhIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9IkUtVHJhbnNpdCBDdXRhd2F5IiBkYXRhLXllYXI9IjIwMjUiIGRhdGEtc3R5bGVpZHM9IjQ2NjgwMSIgZGF0YS1oeWJyaWQ9IjAiPgoJPC9kaXY+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJbWFnZUNvbnRhaW5lciBmbGV4LWNlbnRlciBhbGlnbi1jZW50ZXIgIj4KCQkJCTxhIHRpdGxlPSJGb3JkIEUtVHJhbnNpdCBDdXRhd2F5IDIwMjUiIGhyZWY9Ij9wYXRoPS9uZXVmcy9Gb3JkLUVfVHJhbnNpdF9DdXRhd2F5LTIwMjUuaHRtbCI+CgkJCQkJPGltZyBhbHQ9IkZvcmQgRS1UcmFuc2l0IEN1dGF3YXkgMjAyNSIgYm9yZGVyPSIwIiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9mci9Gb3JkL0VfVHJhbnNpdF9DdXRhd2F5LzIwMjUvNDY2ODAxL1doaXRlL3Byb2ZpbGUud2VicCIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPgoJCQkJPC9hPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyRm9vdGVyQ29udGFpbmVyIHN0YWNrLWxjIC0tcy05Ij4KCQkJCQk8ZGl2IGNsYXNzPSJjYXJQYXltZW50V3JhcHBlciI+CgkJCTxkaXYgY2xhc3M9ImNvbnRlbnQtc2tlbGV0b24gaHRtbC1ibG9jayIgZGF0YS1ibG9jaz0icGF5bWVudEJsb2NrIiBkYXRhLXR5cGU9ImJsb2NrIiBkYXRhLXNvdXJjZT0ic2VydmVyIiBkYXRhLWNhbGxiYWNrPSJwYXltZW50Q2FsY0Jsb2NrIj4KCQkKCTxpbnB1dCBuYW1lPSJibG9jay1kYXRhIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSd7InN0eWxlaWQiOiI0NjY4MDEiLCJ0aXRsZSI6IkZvcmQgRS1UcmFuc2l0IEN1dGF3YXkgMjAyNSIsImhyZWYiOiJcL25ldWZzXC9Gb3JkLUVfVHJhbnNpdF9DdXRhd2F5LTIwMjUuaHRtbCIsImxpbmtzdHlsZSI6IiIsImxpbmtjbGFzcyI6IiIsImNvbnRhaW5lcmNsYXNzIjoiIiwicHJvbW90ZXh0IjoiT2ZmcmUgYWRkaXRpb25uZWxsZSEifSc+Cgk8L2Rpdj4KCTwvZGl2PgoJCQkJCgkJCTwvZGl2PgoJCTwvZGl2PgoJPC9kaXY+CTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZU91dGVyQm94ICByZWJhdGVCb3JkZXJDb2xvciIgaWQ9ImZieF9jb21tZXJjaWFsXzE0Ij4KCQkKCQk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVJbm5lckJveCIgaWQ9IiI+CgkJCQoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJUaXRsZUNvbnRhaW5lciI+CgkJCQk8YSB0aXRsZT0iRm9yZCBTdXBlciBEdXR5IEYtNTUwIERSVyAyMDI1IiBocmVmPSI\/cGF0aD0vbmV1ZnMvRm9yZC1TdXBlcl9EdXR5X0ZfNTUwX0RSVy0yMDI1Lmh0bWwiIGRhdGEtbWFrZT0iRm9yZCIgZGF0YS1tb2RlbD0iU3VwZXIgRHV0eSBGLTU1MCBEUlcgMjAyNSI+CgkJCQkJPGgzPgoJCQkJCQk8c3BhbiBjbGFzcz0ic3BhbkNhck1ha2UgIj5Gb3JkPC9zcGFuPjxicj4KCQkJCQkJPHNwYW4gY2xhc3M9Im1vZGVsTmFtZSBzcGFuTW9kZWxOYW1lIj5TdXBlciBEdXR5IEYtNTUwIERSVyAyMDI1PC9zcGFuPgoJCQkJCTwvaDM+CgkJCQk8L2E+CgkJCQkgICAgPCEtLSBPUEVOIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CiAgICA8ZGl2IGNsYXNzPSJkaXZOZXdDYXJTdGFydFByaWNlIj4KICAgICAgICDDoCBwYXJ0aXIgZGUKICAgICAgICA8c3BhbiBjbGFzcz0iIj4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+NzEgODQ5PC9zcGFuPjwvc3Bhbj4KICAgICAgICA8aSBzdHlsZT0iY29sb3I6IzAwMDtmb250LXNpemU6MjBweDsiIGNsYXNzPSJjYXJQcmljZUluaXRpYWxUb29sVGlwSWNvbiBmYWwgZmEtaW5mby1jaXJjbGUgYmxhY2tDb2xvckJvbGQiIGRhdGEtdG9vbHRpcD0nJmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtQRFNGOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDs2OSAzNTQmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUcmFuc3BvcnQgJmFtcDsgUHLDqXBhcmF0aW9uOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsyIDM5NSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RheGUgQUM6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzEwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RvdGFsJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzcxIDg0OSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsnPjwvaT4KICAgIDwvZGl2PgogICAgPCEtLSBDTE9TRSBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgoJCQkJCTxkaXYgY2xhc3M9ImRpdkNhckluU3RvY2tMaW5rIiBoaWRkZW4+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGRhdGEtdHlwZT0iaW52ZGF0YSIgZGF0YS1tYWtlPSJGb3JkIiBkYXRhLW1vZGVsPSJTdXBlciBEdXR5IEYtNTUwIERSVyIgZGF0YS15ZWFyPSIyMDI1IiBkYXRhLXN0eWxlaWRzPSI0NjU2MzksNDY1NjQzLDQ2NTY0Nyw0NjU2NTEsNDY1NjQwLDQ2NTY0NCw0NjU2NDgsNDY1NjU1LDQ2NTY1Miw0NjU2NDEsNDY1NjQ1LDQ2NTY2Myw0NjU2NTYsNDY1NjQ5LDQ2NTY2OCw0NjU2NTMsNDY1NjQyLDQ2NTY0Niw0NjU2NjQsNDY1NjUwLDQ2NTY2OSw0NjU2NTcsNDY1NjU0LDQ2NTY2MSw0NjU2NjUsNDY1NjU4LDQ2NTY3MCw0NjU2NjIsNDY1NjY2LDQ2NTY3MSw0NjU2NTksNDY1NjYwLDQ2NTY2Nyw0NjU2NzIiIGRhdGEtaHlicmlkPSIwIj4KCTwvZGl2PgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW1hZ2VDb250YWluZXIgZmxleC1jZW50ZXIgYWxpZ24tY2VudGVyICI+CgkJCQk8YSB0aXRsZT0iRm9yZCBTdXBlciBEdXR5IEYtNTUwIERSVyAyMDI1IiBocmVmPSI\/cGF0aD0vbmV1ZnMvRm9yZC1TdXBlcl9EdXR5X0ZfNTUwX0RSVy0yMDI1Lmh0bWwiPgoJCQkJCTxpbWcgYWx0PSJGb3JkIFN1cGVyIER1dHkgRi01NTAgRFJXIDIwMjUiIGJvcmRlcj0iMCIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvZnIvRm9yZC9TdXBlcl9EdXR5X0ZfNTUwX0RSVy8yMDI1LzQ2NTYzOS9XaGl0ZS9wcm9maWxlLndlYnAiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj4KCQkJCTwvYT4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckZvb3RlckNvbnRhaW5lciBzdGFjay1sYyAtLXMtOSI+CgkJCQkJPGRpdiBjbGFzcz0iY2FyUGF5bWVudFdyYXBwZXIiPgoJCQk8ZGl2IGNsYXNzPSJjb250ZW50LXNrZWxldG9uIGh0bWwtYmxvY2siIGRhdGEtYmxvY2s9InBheW1lbnRCbG9jayIgZGF0YS10eXBlPSJibG9jayIgZGF0YS1zb3VyY2U9InNlcnZlciIgZGF0YS1jYWxsYmFjaz0icGF5bWVudENhbGNCbG9jayI+CgkJCgk8aW5wdXQgbmFtZT0iYmxvY2stZGF0YSIgdHlwZT0iaGlkZGVuIiB2YWx1ZT0neyJzdHlsZWlkIjoiNDY1NjM5IiwidGl0bGUiOiJGb3JkIFN1cGVyIER1dHkgRi01NTAgRFJXIDIwMjUiLCJocmVmIjoiXC9uZXVmc1wvRm9yZC1TdXBlcl9EdXR5X0ZfNTUwX0RSVy0yMDI1Lmh0bWwiLCJsaW5rc3R5bGUiOiIiLCJsaW5rY2xhc3MiOiIiLCJjb250YWluZXJjbGFzcyI6IiIsInByb21vdGV4dCI6Ik9mZnJlIGFkZGl0aW9ubmVsbGUhIn0nPgoJPC9kaXY+Cgk8L2Rpdj4KCQkJCQoJCQk8L2Rpdj4KCQk8L2Rpdj4KCTwvZGl2Pgk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVPdXRlckJveCAgcmViYXRlQm9yZGVyQ29sb3IiIGlkPSJmYnhfY29tbWVyY2lhbF8xNSI+CgkJCgkJPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlSW5uZXJCb3giIGlkPSIiPgoJCQkKCQkJPGRpdiBjbGFzcz0iZGl2Q2FyVGl0bGVDb250YWluZXIiPgoJCQkJPGEgdGl0bGU9IkZvcmQgRS1UcmFuc2l0IEN1dGF3YXkgMjAyNiIgaHJlZj0iP3BhdGg9L25ldWZzL0ZvcmQtRV9UcmFuc2l0X0N1dGF3YXktMjAyNi5odG1sIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9IkUtVHJhbnNpdCBmb3VyZ29uIHRyb25xdcOpIDIwMjYiPgoJCQkJCTxoMz4KCQkJCQkJPHNwYW4gY2xhc3M9InNwYW5DYXJNYWtlICI+Rm9yZDwvc3Bhbj48YnI+CgkJCQkJCTxzcGFuIGNsYXNzPSJtb2RlbE5hbWUgc3Bhbk1vZGVsTmFtZSI+RS1UcmFuc2l0IEN1dGF3YXkgMjAyNjwvc3Bhbj4KCQkJCQk8L2gzPgoJCQkJPC9hPgoJCQkJICAgIDwhLS0gT1BFTiBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgogICAgPGRpdiBjbGFzcz0iZGl2TmV3Q2FyU3RhcnRQcmljZSI+CiAgICAgICAgw6AgcGFydGlyIGRlCiAgICAgICAgPHNwYW4gY2xhc3M9IiI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjcyIDA0NTwvc3Bhbj48L3NwYW4+CiAgICAgICAgPGkgc3R5bGU9ImNvbG9yOiMwMDA7Zm9udC1zaXplOjIwcHg7IiBjbGFzcz0iY2FyUHJpY2VJbml0aWFsVG9vbFRpcEljb24gZmFsIGZhLWluZm8tY2lyY2xlIGJsYWNrQ29sb3JCb2xkIiBkYXRhLXRvb2x0aXA9JyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7UERTRjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7NjggOTUwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VHJhbnNwb3J0ICZhbXA7IFByw6lwYXJhdGlvbjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MiA5OTUmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUYXhlIEFDOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsxMDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUb3RhbCZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDs3MiAwNDUmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jz48L2k+CiAgICA8L2Rpdj4KICAgIDwhLS0gQ0xPU0UgTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KCQkJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJblN0b2NrTGluayIgaGlkZGVuPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBkYXRhLXR5cGU9ImludmRhdGEiIGRhdGEtbWFrZT0iRm9yZCIgZGF0YS1tb2RlbD0iRS1UcmFuc2l0IEN1dGF3YXkiIGRhdGEteWVhcj0iMjAyNiIgZGF0YS1zdHlsZWlkcz0iNDc4NTk5LDQ3ODU5OCIgZGF0YS1oeWJyaWQ9IjAiPgoJPC9kaXY+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJbWFnZUNvbnRhaW5lciBmbGV4LWNlbnRlciBhbGlnbi1jZW50ZXIgIj4KCQkJCTxhIHRpdGxlPSJGb3JkIEUtVHJhbnNpdCBDdXRhd2F5IDIwMjYiIGhyZWY9Ij9wYXRoPS9uZXVmcy9Gb3JkLUVfVHJhbnNpdF9DdXRhd2F5LTIwMjYuaHRtbCI+CgkJCQkJPGltZyBhbHQ9IkZvcmQgRS1UcmFuc2l0IEN1dGF3YXkgMjAyNiIgYm9yZGVyPSIwIiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9mci9Gb3JkL0VfVHJhbnNpdF9DdXRhd2F5LzIwMjYvNDc4NTk5L1doaXRlL3Byb2ZpbGUud2VicCIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPgoJCQkJPC9hPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyRm9vdGVyQ29udGFpbmVyIHN0YWNrLWxjIC0tcy05Ij4KCQkJCQk8ZGl2IGNsYXNzPSJjYXJQYXltZW50V3JhcHBlciI+CgkJCTxkaXYgY2xhc3M9ImNvbnRlbnQtc2tlbGV0b24gaHRtbC1ibG9jayIgZGF0YS1ibG9jaz0icGF5bWVudEJsb2NrIiBkYXRhLXR5cGU9ImJsb2NrIiBkYXRhLXNvdXJjZT0ic2VydmVyIiBkYXRhLWNhbGxiYWNrPSJwYXltZW50Q2FsY0Jsb2NrIj4KCQkKCTxpbnB1dCBuYW1lPSJibG9jay1kYXRhIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSd7InN0eWxlaWQiOiI0Nzg1OTkiLCJ0aXRsZSI6IkZvcmQgRS1UcmFuc2l0IEN1dGF3YXkgMjAyNiIsImhyZWYiOiJcL25ldWZzXC9Gb3JkLUVfVHJhbnNpdF9DdXRhd2F5LTIwMjYuaHRtbCIsImxpbmtzdHlsZSI6IiIsImxpbmtjbGFzcyI6IiIsImNvbnRhaW5lcmNsYXNzIjoiIiwicHJvbW90ZXh0IjoiT2ZmcmUgYWRkaXRpb25uZWxsZSEifSc+Cgk8L2Rpdj4KCTwvZGl2PgoJCQkJCgkJCTwvZGl2PgoJCTwvZGl2PgoJPC9kaXY+CTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZU91dGVyQm94ICByZWJhdGVCb3JkZXJDb2xvciIgaWQ9ImZieF9jb21tZXJjaWFsXzE2Ij4KCQkKCQk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVJbm5lckJveCIgaWQ9IiI+CgkJCQoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJUaXRsZUNvbnRhaW5lciI+CgkJCQk8YSB0aXRsZT0iRm9yZCBFLVRyYW5zaXQgQ2hhc3NpcyAyMDI1IiBocmVmPSI\/cGF0aD0vbmV1ZnMvRm9yZC1FX1RyYW5zaXRfQ2hhc3Npcy0yMDI1Lmh0bWwiIGRhdGEtbWFrZT0iRm9yZCIgZGF0YS1tb2RlbD0iRS1UcmFuc2l0IGNow6Jzc2lzIDIwMjUiPgoJCQkJCTxoMz4KCQkJCQkJPHNwYW4gY2xhc3M9InNwYW5DYXJNYWtlICI+Rm9yZDwvc3Bhbj48YnI+CgkJCQkJCTxzcGFuIGNsYXNzPSJtb2RlbE5hbWUgc3Bhbk1vZGVsTmFtZSI+RS1UcmFuc2l0IENoYXNzaXMgMjAyNTwvc3Bhbj4KCQkJCQk8L2gzPgoJCQkJPC9hPgoJCQkJICAgIDwhLS0gT1BFTiBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgogICAgPGRpdiBjbGFzcz0iZGl2TmV3Q2FyU3RhcnRQcmljZSI+CiAgICAgICAgw6AgcGFydGlyIGRlCiAgICAgICAgPHNwYW4gY2xhc3M9IiI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjcyIDE5NTwvc3Bhbj48L3NwYW4+CiAgICAgICAgPGkgc3R5bGU9ImNvbG9yOiMwMDA7Zm9udC1zaXplOjIwcHg7IiBjbGFzcz0iY2FyUHJpY2VJbml0aWFsVG9vbFRpcEljb24gZmFsIGZhLWluZm8tY2lyY2xlIGJsYWNrQ29sb3JCb2xkIiBkYXRhLXRvb2x0aXA9JyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7UERTRjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7NjkgMTAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VHJhbnNwb3J0ICZhbXA7IFByw6lwYXJhdGlvbjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MiA5OTUmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUYXhlIEFDOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsxMDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUb3RhbCZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDs3MiAxOTUmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jz48L2k+CiAgICA8L2Rpdj4KICAgIDwhLS0gQ0xPU0UgTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KCQkJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJblN0b2NrTGluayIgaGlkZGVuPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBkYXRhLXR5cGU9ImludmRhdGEiIGRhdGEtbWFrZT0iRm9yZCIgZGF0YS1tb2RlbD0iRS1UcmFuc2l0IENoYXNzaXMiIGRhdGEteWVhcj0iMjAyNSIgZGF0YS1zdHlsZWlkcz0iNDY2ODAwIiBkYXRhLWh5YnJpZD0iMCI+Cgk8L2Rpdj4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckltYWdlQ29udGFpbmVyIGZsZXgtY2VudGVyIGFsaWduLWNlbnRlciAiPgoJCQkJPGEgdGl0bGU9IkZvcmQgRS1UcmFuc2l0IENoYXNzaXMgMjAyNSIgaHJlZj0iP3BhdGg9L25ldWZzL0ZvcmQtRV9UcmFuc2l0X0NoYXNzaXMtMjAyNS5odG1sIj4KCQkJCQk8aW1nIGFsdD0iRm9yZCBFLVRyYW5zaXQgQ2hhc3NpcyAyMDI1IiBib3JkZXI9IjAiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL2ZyL0ZvcmQvRV9UcmFuc2l0X0NoYXNzaXMvMjAyNS80NjY4MDAvV2hpdGUvcHJvZmlsZS53ZWJwIiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+CgkJCQk8L2E+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJGb290ZXJDb250YWluZXIgc3RhY2stbGMgLS1zLTkiPgoJCQkJCTxkaXYgY2xhc3M9ImNhclBheW1lbnRXcmFwcGVyIj4KCQkJPGRpdiBjbGFzcz0iY29udGVudC1za2VsZXRvbiBodG1sLWJsb2NrIiBkYXRhLWJsb2NrPSJwYXltZW50QmxvY2siIGRhdGEtdHlwZT0iYmxvY2siIGRhdGEtc291cmNlPSJzZXJ2ZXIiIGRhdGEtY2FsbGJhY2s9InBheW1lbnRDYWxjQmxvY2siPgoJCQoJPGlucHV0IG5hbWU9ImJsb2NrLWRhdGEiIHR5cGU9ImhpZGRlbiIgdmFsdWU9J3sic3R5bGVpZCI6IjQ2NjgwMCIsInRpdGxlIjoiRm9yZCBFLVRyYW5zaXQgQ2hhc3NpcyAyMDI1IiwiaHJlZiI6IlwvbmV1ZnNcL0ZvcmQtRV9UcmFuc2l0X0NoYXNzaXMtMjAyNS5odG1sIiwibGlua3N0eWxlIjoiIiwibGlua2NsYXNzIjoiIiwiY29udGFpbmVyY2xhc3MiOiIiLCJwcm9tb3RleHQiOiJPZmZyZSBhZGRpdGlvbm5lbGxlISJ9Jz4KCTwvZGl2PgoJPC9kaXY+CgkJCQkKCQkJPC9kaXY+CgkJPC9kaXY+Cgk8L2Rpdj4JPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggIHJlYmF0ZUJvcmRlckNvbG9yIiBpZD0iZmJ4X2NvbW1lcmNpYWxfMTciPgoJCTxkaXYgY2xhc3M9InJlYmF0ZVRhZyI+PHNwYW4gY2xhc3M9InJlYmF0ZVRleHQiPnJhYmFpcyBqdXNxdSfDoDwvc3Bhbj48c3BhbiBjbGFzcz0icmViYXRlQW1vdW50Ij4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+MyAwMDA8L3NwYW4+PC9zcGFuPjwvZGl2PgoJCTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZUlubmVyQm94IiBpZD0iIj4KCQkJCgkJCTxkaXYgY2xhc3M9ImRpdkNhclRpdGxlQ29udGFpbmVyIj4KCQkJCTxhIHRpdGxlPSJGb3JkIFRyYW5zaXQgUGFzc2VuZ2VyIFdhZ29uIDIwMjUiIGhyZWY9Ij9wYXRoPS9uZXVmcy9Gb3JkLVRyYW5zaXRfUGFzc2VuZ2VyX1dhZ29uLTIwMjUuaHRtbCIgZGF0YS1tYWtlPSJGb3JkIiBkYXRhLW1vZGVsPSJUcmFuc2l0IHRvdXJpc21lIDIwMjUiPgoJCQkJCTxoMz4KCQkJCQkJPHNwYW4gY2xhc3M9InNwYW5DYXJNYWtlICI+Rm9yZDwvc3Bhbj48YnI+CgkJCQkJCTxzcGFuIGNsYXNzPSJtb2RlbE5hbWUgc3Bhbk1vZGVsTmFtZSI+VHJhbnNpdCBQYXNzZW5nZXIgV2Fnb24gMjAyNTwvc3Bhbj4KCQkJCQk8L2gzPgoJCQkJPC9hPgoJCQkJICAgIDwhLS0gT1BFTiBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgogICAgPGRpdiBjbGFzcz0iZGl2TmV3Q2FyU3RhcnRQcmljZSI+CiAgICAgICAgw6AgcGFydGlyIGRlCiAgICAgICAgPHNwYW4gY2xhc3M9InN0cmlrZS1wcmljZSI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjcyIDQ5NTwvc3Bhbj48L3NwYW4+CiAgICAgICAgPGkgc3R5bGU9ImNvbG9yOiMwMDA7Zm9udC1zaXplOjIwcHg7IiBjbGFzcz0iY2FyUHJpY2VJbml0aWFsVG9vbFRpcEljb24gZmFsIGZhLWluZm8tY2lyY2xlIGJsYWNrQ29sb3JCb2xkIiBkYXRhLXRvb2x0aXA9JyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7UERTRjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7NjkgNDAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VHJhbnNwb3J0ICZhbXA7IFByw6lwYXJhdGlvbjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MiA5OTUmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUYXhlIEFDOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsxMDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUb3RhbCZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDs3MiA0OTUmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jz48L2k+CiAgICA8L2Rpdj4KICAgIDwhLS0gQ0xPU0UgTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT48IS0tIE9QRU4gTkVXIENBUiBQUk9NTyBQUklDRSAoMjc0KS0tPjxkaXYgY2xhc3M9ImRpdk5ld0NhclByb21vUHJpY2UiPmVuIHJhYmFpcyDDoCA8c3BhbiBjbGFzcz0iIiBzdHlsZT0iY29sb3I6ICMwMjc2YjM7Ij4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+NjkgNDk1PC9zcGFuPjwvc3Bhbj48L2Rpdj48IS0tIENMT1NFIE5FVyBDQVIgUFJPTU8gUFJJQ0UgKDI4MSktLT4KCQkJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJblN0b2NrTGluayIgaGlkZGVuPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBkYXRhLXR5cGU9ImludmRhdGEiIGRhdGEtbWFrZT0iRm9yZCIgZGF0YS1tb2RlbD0iVHJhbnNpdCBQYXNzZW5nZXIgV2Fnb24iIGRhdGEteWVhcj0iMjAyNSIgZGF0YS1zdHlsZWlkcz0iNDY2ODYyLDQ2Njg2NCw0NjY4NjYsNDY2ODcwLDQ2Njg2OCw0NjY4NjMsNDY2ODcyLDQ2Njg2NSw0NjY4NzQsNDY2ODY3LDQ2Njg3MSw0NjY4NjksNDY2ODczLDQ2Njg3Niw0NjY4NzUsNDY2ODc3IiBkYXRhLWh5YnJpZD0iMCI+Cgk8L2Rpdj4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckltYWdlQ29udGFpbmVyIGZsZXgtY2VudGVyIGFsaWduLWNlbnRlciAiPgoJCQkJPGEgdGl0bGU9IkZvcmQgVHJhbnNpdCBQYXNzZW5nZXIgV2Fnb24gMjAyNSIgaHJlZj0iP3BhdGg9L25ldWZzL0ZvcmQtVHJhbnNpdF9QYXNzZW5nZXJfV2Fnb24tMjAyNS5odG1sIj4KCQkJCQk8aW1nIGFsdD0iRm9yZCBUcmFuc2l0IFBhc3NlbmdlciBXYWdvbiAyMDI1IiBib3JkZXI9IjAiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL2ZyL0ZvcmQvVHJhbnNpdF9QYXNzZW5nZXJfV2Fnb24vMjAyNS80NjY4NjIvV2hpdGUvcHJvZmlsZS53ZWJwIiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+CgkJCQk8L2E+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJGb290ZXJDb250YWluZXIgc3RhY2stbGMgLS1zLTkiPgoJCQkJCTxkaXYgY2xhc3M9ImNhclBheW1lbnRXcmFwcGVyIj4KCQkJPGRpdiBjbGFzcz0iY29udGVudC1za2VsZXRvbiBodG1sLWJsb2NrIiBkYXRhLWJsb2NrPSJwYXltZW50QmxvY2siIGRhdGEtdHlwZT0iYmxvY2siIGRhdGEtc291cmNlPSJzZXJ2ZXIiIGRhdGEtY2FsbGJhY2s9InBheW1lbnRDYWxjQmxvY2siPgoJCQoJPGlucHV0IG5hbWU9ImJsb2NrLWRhdGEiIHR5cGU9ImhpZGRlbiIgdmFsdWU9J3sic3R5bGVpZCI6IjQ2Njg2MiIsInRpdGxlIjoiRm9yZCBUcmFuc2l0IFBhc3NlbmdlciBXYWdvbiAyMDI1IiwiaHJlZiI6IlwvbmV1ZnNcL0ZvcmQtVHJhbnNpdF9QYXNzZW5nZXJfV2Fnb24tMjAyNS5odG1sIiwibGlua3N0eWxlIjoiIiwibGlua2NsYXNzIjoiIiwiY29udGFpbmVyY2xhc3MiOiIiLCJwcm9tb3RleHQiOiJPZmZyZSBhZGRpdGlvbm5lbGxlISJ9Jz4KCTwvZGl2PgoJPC9kaXY+CgkJCQkKCQkJPC9kaXY+CgkJPC9kaXY+Cgk8L2Rpdj4JPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggIHJlYmF0ZUJvcmRlckNvbG9yIiBpZD0iZmJ4X2NvbW1lcmNpYWxfMTgiPgoJCQoJCTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZUlubmVyQm94IiBpZD0iIj4KCQkJCgkJCTxkaXYgY2xhc3M9ImRpdkNhclRpdGxlQ29udGFpbmVyIj4KCQkJCTxhIHRpdGxlPSJGb3JkIEUtVHJhbnNpdCBDaGFzc2lzIDIwMjYiIGhyZWY9Ij9wYXRoPS9uZXVmcy9Gb3JkLUVfVHJhbnNpdF9DaGFzc2lzLTIwMjYuaHRtbCIgZGF0YS1tYWtlPSJGb3JkIiBkYXRhLW1vZGVsPSJFLVRyYW5zaXQgY2jDonNzaXMgMjAyNiI+CgkJCQkJPGgzPgoJCQkJCQk8c3BhbiBjbGFzcz0ic3BhbkNhck1ha2UgIj5Gb3JkPC9zcGFuPjxicj4KCQkJCQkJPHNwYW4gY2xhc3M9Im1vZGVsTmFtZSBzcGFuTW9kZWxOYW1lIj5FLVRyYW5zaXQgQ2hhc3NpcyAyMDI2PC9zcGFuPgoJCQkJCTwvaDM+CgkJCQk8L2E+CgkJCQkgICAgPCEtLSBPUEVOIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CiAgICA8ZGl2IGNsYXNzPSJkaXZOZXdDYXJTdGFydFByaWNlIj4KICAgICAgICDDoCBwYXJ0aXIgZGUKICAgICAgICA8c3BhbiBjbGFzcz0iIj4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+NzIgODQ1PC9zcGFuPjwvc3Bhbj4KICAgICAgICA8aSBzdHlsZT0iY29sb3I6IzAwMDtmb250LXNpemU6MjBweDsiIGNsYXNzPSJjYXJQcmljZUluaXRpYWxUb29sVGlwSWNvbiBmYWwgZmEtaW5mby1jaXJjbGUgYmxhY2tDb2xvckJvbGQiIGRhdGEtdG9vbHRpcD0nJmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtQRFNGOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDs2OSA3NTAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUcmFuc3BvcnQgJmFtcDsgUHLDqXBhcmF0aW9uOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsyIDk5NSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RheGUgQUM6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzEwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RvdGFsJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzcyIDg0NSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsnPjwvaT4KICAgIDwvZGl2PgogICAgPCEtLSBDTE9TRSBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgoJCQkJCTxkaXYgY2xhc3M9ImRpdkNhckluU3RvY2tMaW5rIiBoaWRkZW4+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGRhdGEtdHlwZT0iaW52ZGF0YSIgZGF0YS1tYWtlPSJGb3JkIiBkYXRhLW1vZGVsPSJFLVRyYW5zaXQgQ2hhc3NpcyIgZGF0YS15ZWFyPSIyMDI2IiBkYXRhLXN0eWxlaWRzPSI0Nzg1OTcsNDc4NTk2IiBkYXRhLWh5YnJpZD0iMCI+Cgk8L2Rpdj4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckltYWdlQ29udGFpbmVyIGZsZXgtY2VudGVyIGFsaWduLWNlbnRlciAiPgoJCQkJPGEgdGl0bGU9IkZvcmQgRS1UcmFuc2l0IENoYXNzaXMgMjAyNiIgaHJlZj0iP3BhdGg9L25ldWZzL0ZvcmQtRV9UcmFuc2l0X0NoYXNzaXMtMjAyNi5odG1sIj4KCQkJCQk8aW1nIGFsdD0iRm9yZCBFLVRyYW5zaXQgQ2hhc3NpcyAyMDI2IiBib3JkZXI9IjAiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL2ZyL0ZvcmQvRV9UcmFuc2l0X0NoYXNzaXMvMjAyNi80Nzg1OTcvV2hpdGUvcHJvZmlsZS53ZWJwIiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+CgkJCQk8L2E+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJGb290ZXJDb250YWluZXIgc3RhY2stbGMgLS1zLTkiPgoJCQkJCTxkaXYgY2xhc3M9ImNhclBheW1lbnRXcmFwcGVyIj4KCQkJPGRpdiBjbGFzcz0iY29udGVudC1za2VsZXRvbiBodG1sLWJsb2NrIiBkYXRhLWJsb2NrPSJwYXltZW50QmxvY2siIGRhdGEtdHlwZT0iYmxvY2siIGRhdGEtc291cmNlPSJzZXJ2ZXIiIGRhdGEtY2FsbGJhY2s9InBheW1lbnRDYWxjQmxvY2siPgoJCQoJPGlucHV0IG5hbWU9ImJsb2NrLWRhdGEiIHR5cGU9ImhpZGRlbiIgdmFsdWU9J3sic3R5bGVpZCI6IjQ3ODU5NyIsInRpdGxlIjoiRm9yZCBFLVRyYW5zaXQgQ2hhc3NpcyAyMDI2IiwiaHJlZiI6IlwvbmV1ZnNcL0ZvcmQtRV9UcmFuc2l0X0NoYXNzaXMtMjAyNi5odG1sIiwibGlua3N0eWxlIjoiIiwibGlua2NsYXNzIjoiIiwiY29udGFpbmVyY2xhc3MiOiIiLCJwcm9tb3RleHQiOiJPZmZyZSBhZGRpdGlvbm5lbGxlISJ9Jz4KCTwvZGl2PgoJPC9kaXY+CgkJCQkKCQkJPC9kaXY+CgkJPC9kaXY+Cgk8L2Rpdj4JPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggIHJlYmF0ZUJvcmRlckNvbG9yIiBpZD0iZmJ4X2NvbW1lcmNpYWxfMTkiPgoJCQoJCTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZUlubmVyQm94IiBpZD0iIj4KCQkJCgkJCTxkaXYgY2xhc3M9ImRpdkNhclRpdGxlQ29udGFpbmVyIj4KCQkJCTxhIHRpdGxlPSJGb3JkIFN1cGVyIER1dHkgRi01NTAgRFJXIDIwMjYiIGhyZWY9Ij9wYXRoPS9uZXVmcy9Gb3JkLVN1cGVyX0R1dHlfRl81NTBfRFJXLTIwMjYuaHRtbCIgZGF0YS1tYWtlPSJGb3JkIiBkYXRhLW1vZGVsPSJTdXBlciBEdXR5IEYtNTUwIERSVyAyMDI2Ij4KCQkJCQk8aDM+CgkJCQkJCTxzcGFuIGNsYXNzPSJzcGFuQ2FyTWFrZSAiPkZvcmQ8L3NwYW4+PGJyPgoJCQkJCQk8c3BhbiBjbGFzcz0ibW9kZWxOYW1lIHNwYW5Nb2RlbE5hbWUiPlN1cGVyIER1dHkgRi01NTAgRFJXIDIwMjY8L3NwYW4+CgkJCQkJPC9oMz4KCQkJCTwvYT4KCQkJCSAgICA8IS0tIE9QRU4gTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KICAgIDxkaXYgY2xhc3M9ImRpdk5ld0NhclN0YXJ0UHJpY2UiPgogICAgICAgIMOgIHBhcnRpciBkZQogICAgICAgIDxzcGFuIGNsYXNzPSIiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj43MyA0MTA8L3NwYW4+PC9zcGFuPgogICAgICAgIDxpIHN0eWxlPSJjb2xvcjojMDAwO2ZvbnQtc2l6ZToyMHB4OyIgY2xhc3M9ImNhclByaWNlSW5pdGlhbFRvb2xUaXBJY29uIGZhbCBmYS1pbmZvLWNpcmNsZSBibGFja0NvbG9yQm9sZCIgZGF0YS10b29sdGlwPScmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1BEU0Y6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzcwIDYxNSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RyYW5zcG9ydCAmYW1wOyBQcsOpcGFyYXRpb246Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzIgNjk1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VGF4ZSBBQzombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MTAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VG90YWwmbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7NzMgNDEwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0Oyc+PC9pPgogICAgPC9kaXY+CiAgICA8IS0tIENMT1NFIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CgkJCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW5TdG9ja0xpbmsiIGhpZGRlbj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgZGF0YS10eXBlPSJpbnZkYXRhIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9IlN1cGVyIER1dHkgRi01NTAgRFJXIiBkYXRhLXllYXI9IjIwMjYiIGRhdGEtc3R5bGVpZHM9IjQ3NzkyNyw0Nzc5MzEsNDc3OTM1LDQ3NzkzOSw0Nzc5MjgsNDc3OTMyLDQ3NzkzNiw0Nzc5NDMsNDc3OTQwLDQ3NzkyOSw0Nzc5MzMsNDc3OTUxLDQ3Nzk0NCw0Nzc5MzcsNDc3OTU2LDQ3Nzk0MSw0Nzc5MzAsNDc3OTM0LDQ3Nzk1Miw0Nzc5MzgsNDc3OTU3LDQ3Nzk0NSw0Nzc5NDIsNDc3OTQ5LDQ3Nzk1Myw0Nzc5NDYsNDc3OTU4LDQ3Nzk1MCw0Nzc5NTQsNDc3OTU5LDQ3Nzk0Nyw0Nzc5NDgsNDc3OTU1LDQ3Nzk2MCIgZGF0YS1oeWJyaWQ9IjAiPgoJPC9kaXY+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJbWFnZUNvbnRhaW5lciBmbGV4LWNlbnRlciBhbGlnbi1jZW50ZXIgIj4KCQkJCTxhIHRpdGxlPSJGb3JkIFN1cGVyIER1dHkgRi01NTAgRFJXIDIwMjYiIGhyZWY9Ij9wYXRoPS9uZXVmcy9Gb3JkLVN1cGVyX0R1dHlfRl81NTBfRFJXLTIwMjYuaHRtbCI+CgkJCQkJPGltZyBhbHQ9IkZvcmQgU3VwZXIgRHV0eSBGLTU1MCBEUlcgMjAyNiIgYm9yZGVyPSIwIiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9mci9Gb3JkL1N1cGVyX0R1dHlfRl81NTBfRFJXLzIwMjYvNDc3OTI3L1doaXRlL3Byb2ZpbGUud2VicCIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPgoJCQkJPC9hPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyRm9vdGVyQ29udGFpbmVyIHN0YWNrLWxjIC0tcy05Ij4KCQkJCQk8ZGl2IGNsYXNzPSJjYXJQYXltZW50V3JhcHBlciI+CgkJCTxkaXYgY2xhc3M9ImNvbnRlbnQtc2tlbGV0b24gaHRtbC1ibG9jayIgZGF0YS1ibG9jaz0icGF5bWVudEJsb2NrIiBkYXRhLXR5cGU9ImJsb2NrIiBkYXRhLXNvdXJjZT0ic2VydmVyIiBkYXRhLWNhbGxiYWNrPSJwYXltZW50Q2FsY0Jsb2NrIj4KCQkKCTxpbnB1dCBuYW1lPSJibG9jay1kYXRhIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSd7InN0eWxlaWQiOiI0Nzc5MjciLCJ0aXRsZSI6IkZvcmQgU3VwZXIgRHV0eSBGLTU1MCBEUlcgMjAyNiIsImhyZWYiOiJcL25ldWZzXC9Gb3JkLVN1cGVyX0R1dHlfRl81NTBfRFJXLTIwMjYuaHRtbCIsImxpbmtzdHlsZSI6IiIsImxpbmtjbGFzcyI6IiIsImNvbnRhaW5lcmNsYXNzIjoiIiwicHJvbW90ZXh0IjoiT2ZmcmUgYWRkaXRpb25uZWxsZSEifSc+Cgk8L2Rpdj4KCTwvZGl2PgoJCQkJCgkJCTwvZGl2PgoJCTwvZGl2PgoJPC9kaXY+CTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZU91dGVyQm94ICByZWJhdGVCb3JkZXJDb2xvciIgaWQ9ImZieF9jb21tZXJjaWFsXzIwIj4KCQk8ZGl2IGNsYXNzPSJyZWJhdGVUYWciPjxzcGFuIGNsYXNzPSJyZWJhdGVUZXh0Ij5yYWJhaXMganVzcXUnw6A8L3NwYW4+PHNwYW4gY2xhc3M9InJlYmF0ZUFtb3VudCI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjUgMDAwPC9zcGFuPjwvc3Bhbj48L2Rpdj4KCQk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVJbm5lckJveCIgaWQ9IiI+CgkJCQoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJUaXRsZUNvbnRhaW5lciI+CgkJCQk8YSB0aXRsZT0iRm9yZCBFLVRyYW5zaXQgQ2FyZ28gVmFuIDIwMjUiIGhyZWY9Ij9wYXRoPS9uZXVmcy9Gb3JkLUVfVHJhbnNpdF9DYXJnb19WYW4tMjAyNS5odG1sIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9IkUtVHJhbnNpdCBmb3VyZ29ubmV0dGUgdXRpbGl0YWlyZSAyMDI1Ij4KCQkJCQk8aDM+CgkJCQkJCTxzcGFuIGNsYXNzPSJzcGFuQ2FyTWFrZSAiPkZvcmQ8L3NwYW4+PGJyPgoJCQkJCQk8c3BhbiBjbGFzcz0ibW9kZWxOYW1lIHNwYW5Nb2RlbE5hbWUiPkUtVHJhbnNpdCBDYXJnbyBWYW4gMjAyNTwvc3Bhbj4KCQkJCQk8L2gzPgoJCQkJPC9hPgoJCQkJICAgIDwhLS0gT1BFTiBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgogICAgPGRpdiBjbGFzcz0iZGl2TmV3Q2FyU3RhcnRQcmljZSI+CiAgICAgICAgw6AgcGFydGlyIGRlCiAgICAgICAgPHNwYW4gY2xhc3M9InN0cmlrZS1wcmljZSI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjc1IDY5NTwvc3Bhbj48L3NwYW4+CiAgICAgICAgPGkgc3R5bGU9ImNvbG9yOiMwMDA7Zm9udC1zaXplOjIwcHg7IiBjbGFzcz0iY2FyUHJpY2VJbml0aWFsVG9vbFRpcEljb24gZmFsIGZhLWluZm8tY2lyY2xlIGJsYWNrQ29sb3JCb2xkIiBkYXRhLXRvb2x0aXA9JyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7UERTRjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7NzIgNjAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VHJhbnNwb3J0ICZhbXA7IFByw6lwYXJhdGlvbjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MiA5OTUmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUYXhlIEFDOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsxMDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUb3RhbCZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDs3NSA2OTUmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jz48L2k+CiAgICA8L2Rpdj4KICAgIDwhLS0gQ0xPU0UgTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT48IS0tIE9QRU4gTkVXIENBUiBQUk9NTyBQUklDRSAoMjc0KS0tPjxkaXYgY2xhc3M9ImRpdk5ld0NhclByb21vUHJpY2UiPmVuIHJhYmFpcyDDoCA8c3BhbiBjbGFzcz0iIiBzdHlsZT0iY29sb3I6ICMwMjc2YjM7Ij4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+NzAgNjk1PC9zcGFuPjwvc3Bhbj48L2Rpdj48IS0tIENMT1NFIE5FVyBDQVIgUFJPTU8gUFJJQ0UgKDI4MSktLT4KCQkJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJblN0b2NrTGluayIgaGlkZGVuPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBkYXRhLXR5cGU9ImludmRhdGEiIGRhdGEtbWFrZT0iRm9yZCIgZGF0YS1tb2RlbD0iRS1UcmFuc2l0IENhcmdvIFZhbiIgZGF0YS15ZWFyPSIyMDI1IiBkYXRhLXN0eWxlaWRzPSI0NjcyMDUsNDY3MjA2LDQ2NzIwNyw0NjcyMDgiIGRhdGEtaHlicmlkPSIwIj4KCTwvZGl2PgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW1hZ2VDb250YWluZXIgZmxleC1jZW50ZXIgYWxpZ24tY2VudGVyICI+CgkJCQk8YSB0aXRsZT0iRm9yZCBFLVRyYW5zaXQgQ2FyZ28gVmFuIDIwMjUiIGhyZWY9Ij9wYXRoPS9uZXVmcy9Gb3JkLUVfVHJhbnNpdF9DYXJnb19WYW4tMjAyNS5odG1sIj4KCQkJCQk8aW1nIGFsdD0iRm9yZCBFLVRyYW5zaXQgQ2FyZ28gVmFuIDIwMjUiIGJvcmRlcj0iMCIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvZnIvRm9yZC9FX1RyYW5zaXRfQ2FyZ29fVmFuLzIwMjUvNDY3MjA1L1doaXRlL3Byb2ZpbGUud2VicCIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPgoJCQkJPC9hPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyRm9vdGVyQ29udGFpbmVyIHN0YWNrLWxjIC0tcy05Ij4KCQkJCQk8ZGl2IGNsYXNzPSJjYXJQYXltZW50V3JhcHBlciI+CgkJCTxkaXYgY2xhc3M9ImNvbnRlbnQtc2tlbGV0b24gaHRtbC1ibG9jayIgZGF0YS1ibG9jaz0icGF5bWVudEJsb2NrIiBkYXRhLXR5cGU9ImJsb2NrIiBkYXRhLXNvdXJjZT0ic2VydmVyIiBkYXRhLWNhbGxiYWNrPSJwYXltZW50Q2FsY0Jsb2NrIj4KCQkKCTxpbnB1dCBuYW1lPSJibG9jay1kYXRhIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSd7InN0eWxlaWQiOiI0NjcyMDUiLCJ0aXRsZSI6IkZvcmQgRS1UcmFuc2l0IENhcmdvIFZhbiAyMDI1IiwiaHJlZiI6IlwvbmV1ZnNcL0ZvcmQtRV9UcmFuc2l0X0NhcmdvX1Zhbi0yMDI1Lmh0bWwiLCJsaW5rc3R5bGUiOiIiLCJsaW5rY2xhc3MiOiIiLCJjb250YWluZXJjbGFzcyI6IiIsInByb21vdGV4dCI6Ik9mZnJlIGFkZGl0aW9ubmVsbGUhIn0nPgoJPC9kaXY+Cgk8L2Rpdj4KCQkJCQoJCQk8L2Rpdj4KCQk8L2Rpdj4KCTwvZGl2Pgk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVPdXRlckJveCAgcmViYXRlQm9yZGVyQ29sb3IiIGlkPSJmYnhfY29tbWVyY2lhbF8yMSI+CgkJCgkJPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlSW5uZXJCb3giIGlkPSIiPgoJCQkKCQkJPGRpdiBjbGFzcz0iZGl2Q2FyVGl0bGVDb250YWluZXIiPgoJCQkJPGEgdGl0bGU9IkZvcmQgU3VwZXIgRHV0eSBGLTYwMCBEUlcgMjAyNSIgaHJlZj0iP3BhdGg9L25ldWZzL0ZvcmQtU3VwZXJfRHV0eV9GXzYwMF9EUlctMjAyNS5odG1sIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9IlN1cGVyIER1dHkgRi02MDAgUkFSSiAyMDI1Ij4KCQkJCQk8aDM+CgkJCQkJCTxzcGFuIGNsYXNzPSJzcGFuQ2FyTWFrZSAiPkZvcmQ8L3NwYW4+PGJyPgoJCQkJCQk8c3BhbiBjbGFzcz0ibW9kZWxOYW1lIHNwYW5Nb2RlbE5hbWUiPlN1cGVyIER1dHkgRi02MDAgRFJXIDIwMjU8L3NwYW4+CgkJCQkJPC9oMz4KCQkJCTwvYT4KCQkJCSAgICA8IS0tIE9QRU4gTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KICAgIDxkaXYgY2xhc3M9ImRpdk5ld0NhclN0YXJ0UHJpY2UiPgogICAgICAgIMOgIHBhcnRpciBkZQogICAgICAgIDxzcGFuIGNsYXNzPSIiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj44NiA3MjA8L3NwYW4+PC9zcGFuPgogICAgICAgIDxpIHN0eWxlPSJjb2xvcjojMDAwO2ZvbnQtc2l6ZToyMHB4OyIgY2xhc3M9ImNhclByaWNlSW5pdGlhbFRvb2xUaXBJY29uIGZhbCBmYS1pbmZvLWNpcmNsZSBibGFja0NvbG9yQm9sZCIgZGF0YS10b29sdGlwPScmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1BEU0Y6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0Ozg0IDIyNSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RyYW5zcG9ydCAmYW1wOyBQcsOpcGFyYXRpb246Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzIgMzk1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VGF4ZSBBQzombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MTAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VG90YWwmbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7ODYgNzIwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0Oyc+PC9pPgogICAgPC9kaXY+CiAgICA8IS0tIENMT1NFIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CgkJCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW5TdG9ja0xpbmsiIGhpZGRlbj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgZGF0YS10eXBlPSJpbnZkYXRhIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9IlN1cGVyIER1dHkgRi02MDAgRFJXIiBkYXRhLXllYXI9IjIwMjUiIGRhdGEtc3R5bGVpZHM9IjQ2NTQ4Nyw0NjU0OTEsNDY1NDk1LDQ2NTQ5OSw0NjU0ODgsNDY1NDkyLDQ2NTQ5Niw0NjU1MDAsNDY1NDg5LDQ2NTQ5Myw0NjU0OTcsNDY1NTAxLDQ2NTQ5MCw0NjU0OTQsNDY1NDk4LDQ2NTUwMiIgZGF0YS1oeWJyaWQ9IjAiPgoJPC9kaXY+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJbWFnZUNvbnRhaW5lciBmbGV4LWNlbnRlciBhbGlnbi1jZW50ZXIgIj4KCQkJCTxhIHRpdGxlPSJGb3JkIFN1cGVyIER1dHkgRi02MDAgRFJXIDIwMjUiIGhyZWY9Ij9wYXRoPS9uZXVmcy9Gb3JkLVN1cGVyX0R1dHlfRl82MDBfRFJXLTIwMjUuaHRtbCI+CgkJCQkJPGltZyBhbHQ9IkZvcmQgU3VwZXIgRHV0eSBGLTYwMCBEUlcgMjAyNSIgYm9yZGVyPSIwIiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9mci9Gb3JkL1N1cGVyX0R1dHlfRl82MDBfRFJXLzIwMjUvNDY1NDg3L1doaXRlL3Byb2ZpbGUud2VicCIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPgoJCQkJPC9hPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyRm9vdGVyQ29udGFpbmVyIHN0YWNrLWxjIC0tcy05Ij4KCQkJCQk8ZGl2IGNsYXNzPSJjYXJQYXltZW50V3JhcHBlciI+CgkJCTxkaXYgY2xhc3M9ImNvbnRlbnQtc2tlbGV0b24gaHRtbC1ibG9jayIgZGF0YS1ibG9jaz0icGF5bWVudEJsb2NrIiBkYXRhLXR5cGU9ImJsb2NrIiBkYXRhLXNvdXJjZT0ic2VydmVyIiBkYXRhLWNhbGxiYWNrPSJwYXltZW50Q2FsY0Jsb2NrIj4KCQkKCTxpbnB1dCBuYW1lPSJibG9jay1kYXRhIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSd7InN0eWxlaWQiOiI0NjU0ODciLCJ0aXRsZSI6IkZvcmQgU3VwZXIgRHV0eSBGLTYwMCBEUlcgMjAyNSIsImhyZWYiOiJcL25ldWZzXC9Gb3JkLVN1cGVyX0R1dHlfRl82MDBfRFJXLTIwMjUuaHRtbCIsImxpbmtzdHlsZSI6IiIsImxpbmtjbGFzcyI6IiIsImNvbnRhaW5lcmNsYXNzIjoiIiwicHJvbW90ZXh0IjoiT2ZmcmUgYWRkaXRpb25uZWxsZSEifSc+Cgk8L2Rpdj4KCTwvZGl2PgoJCQkJCgkJCTwvZGl2PgoJCTwvZGl2PgoJPC9kaXY+CTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZU91dGVyQm94ICByZWJhdGVCb3JkZXJDb2xvciIgaWQ9ImZieF9jb21tZXJjaWFsXzIyIj4KCQkKCQk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVJbm5lckJveCIgaWQ9IiI+CgkJCQoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJUaXRsZUNvbnRhaW5lciI+CgkJCQk8YSB0aXRsZT0iRm9yZCBTdXBlciBEdXR5IEYtNjAwIERSVyAyMDI2IiBocmVmPSI\/cGF0aD0vbmV1ZnMvRm9yZC1TdXBlcl9EdXR5X0ZfNjAwX0RSVy0yMDI2Lmh0bWwiIGRhdGEtbWFrZT0iRm9yZCIgZGF0YS1tb2RlbD0iU3VwZXIgRHV0eSBGLTYwMCBSQVJKIDIwMjYiPgoJCQkJCTxoMz4KCQkJCQkJPHNwYW4gY2xhc3M9InNwYW5DYXJNYWtlICI+Rm9yZDwvc3Bhbj48YnI+CgkJCQkJCTxzcGFuIGNsYXNzPSJtb2RlbE5hbWUgc3Bhbk1vZGVsTmFtZSI+U3VwZXIgRHV0eSBGLTYwMCBEUlcgMjAyNjwvc3Bhbj4KCQkJCQk8L2gzPgoJCQkJPC9hPgoJCQkJICAgIDwhLS0gT1BFTiBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgogICAgPGRpdiBjbGFzcz0iZGl2TmV3Q2FyU3RhcnRQcmljZSI+CiAgICAgICAgw6AgcGFydGlyIGRlCiAgICAgICAgPHNwYW4gY2xhc3M9IiI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjg5IDI4MDwvc3Bhbj48L3NwYW4+CiAgICAgICAgPGkgc3R5bGU9ImNvbG9yOiMwMDA7Zm9udC1zaXplOjIwcHg7IiBjbGFzcz0iY2FyUHJpY2VJbml0aWFsVG9vbFRpcEljb24gZmFsIGZhLWluZm8tY2lyY2xlIGJsYWNrQ29sb3JCb2xkIiBkYXRhLXRvb2x0aXA9JyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7UERTRjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7ODYgNDg1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VHJhbnNwb3J0ICZhbXA7IFByw6lwYXJhdGlvbjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MiA2OTUmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUYXhlIEFDOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsxMDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUb3RhbCZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDs4OSAyODAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jz48L2k+CiAgICA8L2Rpdj4KICAgIDwhLS0gQ0xPU0UgTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KCQkJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJblN0b2NrTGluayIgaGlkZGVuPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBkYXRhLXR5cGU9ImludmRhdGEiIGRhdGEtbWFrZT0iRm9yZCIgZGF0YS1tb2RlbD0iU3VwZXIgRHV0eSBGLTYwMCBEUlciIGRhdGEteWVhcj0iMjAyNiIgZGF0YS1zdHlsZWlkcz0iNDc4MTAwLDQ3ODEwNCw0NzgxMDksNDc4MTEzLDQ3ODEwMSw0NzgxMDYsNDc4MTEwLDQ3ODExNCw0NzgxMDIsNDc4MTA3LDQ3ODExMSw0NzgxMTUsNDc4MTAzLDQ3ODEwOCw0NzgxMTIsNDc4MTE2IiBkYXRhLWh5YnJpZD0iMCI+Cgk8L2Rpdj4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckltYWdlQ29udGFpbmVyIGZsZXgtY2VudGVyIGFsaWduLWNlbnRlciAiPgoJCQkJPGEgdGl0bGU9IkZvcmQgU3VwZXIgRHV0eSBGLTYwMCBEUlcgMjAyNiIgaHJlZj0iP3BhdGg9L25ldWZzL0ZvcmQtU3VwZXJfRHV0eV9GXzYwMF9EUlctMjAyNi5odG1sIj4KCQkJCQk8aW1nIGFsdD0iRm9yZCBTdXBlciBEdXR5IEYtNjAwIERSVyAyMDI2IiBib3JkZXI9IjAiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL2ZyL0ZvcmQvU3VwZXJfRHV0eV9GXzYwMF9EUlcvMjAyNi80NzgxMDAvV2hpdGUvcHJvZmlsZS53ZWJwIiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+CgkJCQk8L2E+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJGb290ZXJDb250YWluZXIgc3RhY2stbGMgLS1zLTkiPgoJCQkJCTxkaXYgY2xhc3M9ImNhclBheW1lbnRXcmFwcGVyIj4KCQkJPGRpdiBjbGFzcz0iY29udGVudC1za2VsZXRvbiBodG1sLWJsb2NrIiBkYXRhLWJsb2NrPSJwYXltZW50QmxvY2siIGRhdGEtdHlwZT0iYmxvY2siIGRhdGEtc291cmNlPSJzZXJ2ZXIiIGRhdGEtY2FsbGJhY2s9InBheW1lbnRDYWxjQmxvY2siPgoJCQoJPGlucHV0IG5hbWU9ImJsb2NrLWRhdGEiIHR5cGU9ImhpZGRlbiIgdmFsdWU9J3sic3R5bGVpZCI6IjQ3ODEwMCIsInRpdGxlIjoiRm9yZCBTdXBlciBEdXR5IEYtNjAwIERSVyAyMDI2IiwiaHJlZiI6IlwvbmV1ZnNcL0ZvcmQtU3VwZXJfRHV0eV9GXzYwMF9EUlctMjAyNi5odG1sIiwibGlua3N0eWxlIjoiIiwibGlua2NsYXNzIjoiIiwiY29udGFpbmVyY2xhc3MiOiIiLCJwcm9tb3RleHQiOiJPZmZyZSBhZGRpdGlvbm5lbGxlISJ9Jz4KCTwvZGl2PgoJPC9kaXY+CgkJCQkKCQkJPC9kaXY+CgkJPC9kaXY+Cgk8L2Rpdj48L2Rpdj48L2Rpdj48IS0tIENMT1NFIENBVEVHT1JZQk9YV1JBUFBFUiAoMjA2MCktLT48L2Rpdj48IS0tIENMT1NFIENBVEVHT1JJRVNCT1hXUkFQUEVSICgyMDY2KS0tPjxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSJGb3JkIiBpZD0iaXNCcmFuZFBhZ2UiPgogICAgICAgIAk8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImRpdlNwYW4gZGl2U3BhbjEyIGRpdkRpc2NsYWltZXJCbG9jayI+CiAgICAgICAgPGRpdiBjbGFzcz0iZGl2RGlzY2xhaW1lckJsb2NrQ29udGVudCI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRpdkRpc2NsYWltZXJCbG9ja1RpdGxlIj4KICAgICAgICAgICAgICAgIENsYXVzZSBkZSBub24tcmVzcG9uc2FiaWxpdMOpCiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJkaXZEaXNjbGFpbWVyQmxvY2tUZXh0Ij4KICAgICAgICAgICAgICAgIExlcyBwaG90b3Mgc29udCDDoCBkZXMgZmlucyBkJ2lsbHVzdHJhdGlvbiB1bmlxdWVtZW50IGV0IHBldXZlbnQgbmUgcGFzIHJlZmzDqXRlciBsZSB2w6loaWN1bGUgZXhhY3QgKHkgY29tcHJpcyBsYSBjb3VsZXVyIGR1IHbDqWhpY3VsZSwgbCdoYWJpbGxhZ2UsIGxlcyBvcHRpb25zIG91IGQnYXV0cmVzIHNww6ljaWZpY2F0aW9ucykuIENlcnRhaW5zIHbDqWhpY3VsZXMgcGV1dmVudCDDqnRyZSBtb250csOpcyBhdmVjIGRlcyDDqXF1aXBlbWVudHMgZW4gb3B0aW9uIG91IGRlcyDDqXF1aXBlbWVudHMgbm9uIGRpc3BvbmlibGVzIGF1IENhbmFkYS4gTGVzIHNww6ljaWZpY2F0aW9ucywgbCfDqXF1aXBlbWVudCwgbGVzIG9wdGlvbnMgZXQgbGVzIHByaXggcGV1dmVudCDDqnRyZSBtb2RpZmnDqXMgc2FucyBwcsOpYXZpcy4gQmllbiBxdWUgbm91cyBub3VzIGVmZm9yY2lvbnMgZGUgbm91cyBhc3N1cmVyIHF1ZSBsZXMgcmVuc2VpZ25lbWVudHMgY29udGVudXMgc3VyIGNlIHNpdGUgV2ViIHNvbnQgZXhhY3RzLCBsZSBmb3Vybmlzc2V1ciBXZWIgZXQgbGUgY29uY2Vzc2lvbm5haXJlIG5lIHBldXZlbnQgw6p0cmUgdGVudXMgcmVzcG9uc2FibGVzIGVuIGNhcyBkJ2VycmV1ciBvdSBkJ29taXNzaW9uIHBvdXZhbnQgc2UgcHJvZHVpcmUgZGUgdGVtcHMgw6AgYXV0cmUuIENlcnRhaW5lcyBkb25uw6llcyBldCBjZXJ0YWlucyBwcml4IHNvbnQgZm91cm5pcyBwYXIgdW4gdGllcnMgcGFydGkgZXQgbm91cyBuZSBwb3V2b25zIGVuIGdhcmFudGlyIGwnZXhhY3RpdHVkZS4gVmV1aWxsZXogY29tbXVuaXF1ZXIgYXZlYyB2b3RyZSBjb25jZXNzaW9ubmFpcmUgcG91ciBvYnRlbmlyIGxlcyB2w6lyaWZpY2F0aW9ucyBvdSBzaSB2b3VzIHNvdWhhaXRleiBvYnRlbmlyIGRlIHBsdXMgYW1wbGVzIGluZm9ybWF0aW9ucyBzdXIgY2UgdsOpaGljdWxlLgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgIDwvZGl2PgoJCQk8L2Rpdj4KCiAgICAgICAJCgoJPGRpdiBjbGFzcz0idWktbG9hZGVyLWJhY2tncm91bmQiPjxpbWcgY2xhc3M9InVpLWxvYWRlci1iYWNrZ3JvdW5kLWdpZiBsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9tYXVyYWlzYXV0by5jb20vL2ltYWdlcy9hamF4LWxvYWRlcjIuZ2lmIiBhbHQ9ImFqYXggbG9hZGVyMiIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPjwvZGl2PgoKCQoJCgoKCgkKCQoJCgk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iY3VycmVudEl0ZW1UeXBlIiB2YWx1ZT0iY2FyIj4KCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJjdXJyZW50SXRlbVR5cGVVUkxTYWZlRU4iIHZhbHVlPSIiPgoJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9ImN1cnJlbnRTdGF0dXMiIHZhbHVlPSJuZXciPgoJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9InR4dFVzZXJBZ2VudCIgdmFsdWU9IiAgIj4KCQk8c2NyaXB0IGFzeW5jIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3N0YXRzLmQyY21lZGlhLmNhL3NlcnZpY2UvZDJjLmluaXQuanMiPjwvc2NyaXB0PgoKCTxkaXYgaWQ9ImNvbnZlcnNpb25UYWdzV3JhcHBlciI+PC9kaXY+CgoJPGRpdiBpZD0iZDJjX3ZhcnMiPjxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSJORVciIGlkPSJzbzd5dXFhajRkd2NjOHMiIGRhdGEtZm9ydmFyPSJTSVRFX0NBUl9TRUNUSU9OX1RZUEUiPgo8aW5wdXQgdHlwZT0iaGlkZGVuIiB2YWx1ZT0ibmV3Y2Fycy5odG1sIiBpZD0iMTZkN3Z3dDY2cG1vd28wayIgZGF0YS1mb3J2YXI9IkNVUlJFTlRQQUdFIj4KPGlucHV0IHR5cGU9ImhpZGRlbiIgdmFsdWU9IjcyNTE4NzUzODljZjFiYWVhMmFhYWIxNDU0MTdkZDVmfDE4NDEwNjAzMzMiIGlkPSIxM2RxdHNuY2Q4MXdrODQ0IiBkYXRhLWZvcnZhcj0iRklOQU5DRV9FTUFJTCI+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSIiIGlkPSI1Y2N5Z2s5MjVtZ3dnMCIgZGF0YS1mb3J2YXI9IkZJTkFOQ0VfQURGX0VNQUlMIj4KPGlucHV0IHR5cGU9ImhpZGRlbiIgdmFsdWU9ImxpdmUiIGlkPSIyZWpoYmMweXlvZzB3d3ciIGRhdGEtZm9ydmFyPSJERVBMT1lNRU5UVFlQRSI+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSJnb29nbGUiIGlkPSIxNDA0cmEwNGJ3cmtvNHdnIiBkYXRhLWZvcnZhcj0iTUFQVE9VU0UiPgo8aW5wdXQgdHlwZT0iaGlkZGVuIiB2YWx1ZT0ibWF1cmFpc2F1dG8uY29tIiBpZD0idTZ0aHJ3OW9sY2c4dzh3IiBkYXRhLWZvcnZhcj0iRE9NQUlOTkFNRSI+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSJodHRwczovL3d3dy5tYXVyYWlzYXV0by5jb20iIGlkPSJjb3U5aG00MjkxYzBrb2MiIGRhdGEtZm9ydmFyPSJOT1JNQUxTSVRFVVJJIj4KPGlucHV0IHR5cGU9ImhpZGRlbiIgdmFsdWU9IiIgaWQ9IjFlcml2OTAwcGRhODh3dzgiIGRhdGEtZm9ydmFyPSJNQUtFRk9SRU1BSUwiPgo8aW5wdXQgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iIiBpZD0iMTBwYTd2M3FlbGRjb3NrIiBkYXRhLWZvcnZhcj0iTU9ERUxGT1JFTUFJTCI+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSIiIGlkPSJyODJ6Zmt4YTJkd3NzMDAiIGRhdGEtZm9ydmFyPSJZRUFSIj4KPGlucHV0IHR5cGU9ImhpZGRlbiIgdmFsdWU9IiIgaWQ9ImkzZ3NheGdzNWprOHdjayIgZGF0YS1mb3J2YXI9IlJFRkVSRVIiPgo8aW5wdXQgdHlwZT0iaGlkZGVuIiB2YWx1ZT0icmVzZXQiIGlkPSI2anlwNDY2NHZnd3M4MHciIGRhdGEtZm9ydmFyPSJQT1BVUFdJREdFVFRPQUNUSVZFIj4KPC9kaXY+PCEtLSAjI0VORE9GUEFHRSMjIC0tPgoJPGRpdiBpZD0iY29uZmlybV9mb3JtcyI+PC9kaXY+CgoJPCEtLSBPTzo6MzUzNzU0N2U2NWMzMWE5MDdiNTYzMjM3NmUwMjQ2N2YgLS0+CgoJCgoJPCEtLSBEV1AtMjQzOSAtLT4KCTwhLS0gT086OjMxNGNhYTViZjU5MDkyYzZmN2NmNmEyZmM3MmU5NTEzIC0tPgoJPGlucHV0IHR5cGU9ImhpZGRlbiIgdmFsdWU9IjEiIGlkPSJpc21vYmlsZSI+Cgk8aW5wdXQgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iRlJFTkNIIiBpZD0iYWN0aXZlc2l0ZWxhbmd1YWdlIj4KCgk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0idG9wc2l0ZWlkIiBuYW1lPSJ0b3BzaXRlaWQiIHZhbHVlPSIxMDIzIj4KCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJ0b3BjYXJpZCIgbmFtZT0idG9wY2FyaWQiIHZhbHVlPSIiPgoJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9InRvcGNhcmlkTXVsdGlzdGVwRm9ybSIgbmFtZT0idG9wY2FyaWRNdWx0aXN0ZXBGb3JtIiB2YWx1ZT0iIj4KCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJ0b3Bpc21vYmlsZSIgbmFtZT0idG9waXNtb2JpbGUiIHZhbHVlPSIxIj4KCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJ0b3BkZXBsb3ltZW50dHlwZSIgbmFtZT0idG9wZGVwbG95bWVudHR5cGUiIHZhbHVlPSJsaXZlIj4KCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJlTW9kZWwiIG5hbWU9ImVNb2RlbCIgdmFsdWU9IiI+Cgk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0icG9wdXBtYWtlIiBuYW1lPSJwb3B1cG1ha2UiIHZhbHVlPSIiPgoJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9InBvcHVwbWFrZU11bHRpc3RlcEZvcm0iIG5hbWU9InBvcHVwbWFrZU11bHRpc3RlcEZvcm0iIHZhbHVlPSIiPgoJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9InBvcHVwbW9kZWwiIG5hbWU9InBvcHVwbW9kZWwiIHZhbHVlPSIiPgoJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9InBvcHVwbW9kZWxNdWx0aXN0ZXBGb3JtIiBuYW1lPSJwb3B1cG1vZGVsTXVsdGlzdGVwRm9ybSIgdmFsdWU9IiI+Cgk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0icG9wdXB5ZWFyIiBuYW1lPSJwb3B1cHllYXIiIHZhbHVlPSIiPgoJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9InBvcHVweWVhck11bHRpc3RlcEZvcm0iIG5hbWU9InBvcHVweWVhck11bHRpc3RlcEZvcm0iIHZhbHVlPSIiPgoJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9InBvcHVwdHJpbSIgbmFtZT0icG9wdXB0cmltIiB2YWx1ZT0iIj4KCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJwb3B1cHN0b2NrbnVtYmVyIiBuYW1lPSJwb3B1cHN0b2NrbnVtYmVyIiB2YWx1ZT0iIj4KCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJwb3B1cHN0b2NrbnVtYmVyTXVsdGlzdGVwRm9ybSIgbmFtZT0icG9wdXBzdG9ja251bWJlck11bHRpc3RlcEZvcm0iIHZhbHVlPSIiPgoJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9Imxhc3R2aWV3ZWRtYWtlIiBuYW1lPSJsYXN0dmlld2VkbWFrZSIgdmFsdWU9IiI+Cgk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0ibGFzdHZpZXdlZG1vZGVsIiBuYW1lPSJsYXN0dmlld2VkbW9kZWwiIHZhbHVlPSIiPgoJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9Imxhc3R2aWV3ZWR5ZWFyIiBuYW1lPSJsYXN0dmlld2VkeWVhciIgdmFsdWU9IiI+Cgk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0ibGFzdHZpZXdlZHRyaW0iIG5hbWU9Imxhc3R2aWV3ZWR0cmltIiB2YWx1ZT0iIj4KCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJsYXN0dmlld2Vkc3RvY2tudW1iZXIiIG5hbWU9Imxhc3R2aWV3ZWRzdG9ja251bWJlciIgdmFsdWU9IiI+Cgk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iaGFzTXVsdGlwbGVEZWFsZXJzIiB2YWx1ZT0iMSI+Cgk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0ic2VuZEVtYWlsVG9BbGxEZWFsZXJzIiB2YWx1ZT0iMCI+Cgk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0ic2VhcmNoZWRWZWhpY2xlIiB2YWx1ZT0iICAiPgoJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9InNlYXJjaGVkcXVlcnltYWtlIiBuYW1lPSJzZWFyY2hlZHF1ZXJ5bWFrZSIgdmFsdWU9IiI+Cgk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0ic2VhcmNoZWRxdWVyeW1vZGVsIiBuYW1lPSJzZWFyY2hlZHF1ZXJ5bW9kZWwiIHZhbHVlPSIiPgoJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9InNlYXJjaGVkcXVlcnl5ZWFyIiBuYW1lPSJzZWFyY2hlZHF1ZXJ5eWVhciIgdmFsdWU9IiI+Cgk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iaW1nc3ZycG9vbGFjdGl2ZSIgbmFtZT0iaW1nc3ZycG9vbGFjdGl2ZSIgdmFsdWU9IlRSVUUiPgoJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9ImlzQVZHTWFya2V0UHJpY2VBY3RpdmUiIHZhbHVlPSIwIj4KCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJzaXRlY29tcGlsZWlkIiBuYW1lPSJzaXRlY29tcGlsZWlkIiB2YWx1ZT0iNjliNjMwMjZiYzRjOSI+Cgk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iZW1haWxMaXN0U3VmZml4IiBuYW1lPSJlbWFpbExpc3RTdWZmaXgiIHZhbHVlPSIxODQxMDYwMzMzIj4KCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJkaXNhYmxlUG9wdXBzIiBuYW1lPSJkaXNhYmxlUG9wdXBzIiB2YWx1ZT0iMCI+Cgk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iQURNSU5fR0VORVJBTF9CTE9DS19GUl9ET01BSU5fQ0hFQ0siIG5hbWU9IkFETUlOX0dFTkVSQUxfQkxPQ0tfRlJfRE9NQUlOX0NIRUNLIiB2YWx1ZT0iMSI+CgoJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9InRhcmdldFBhZ2UiIG5hbWU9InRhcmdldFBhZ2UiIHZhbHVlPSJORVdDQVJTIj4KCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJwYWdlU2VjdGlvbiIgbmFtZT0icGFnZVNlY3Rpb24iIHZhbHVlPSJORVciPgoKCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJEaXNjb3VudFBvcHVwT3RoZXJQYWdlcyIgbmFtZT0iRGlzY291bnRQb3B1cE90aGVyUGFnZXMiIHZhbHVlPSJIT01FUEFHRTtQUk9NTztTRVJWSUNFUztGSU5BTkNFO1RFQU07Q09OVEFDVCI+Cgk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iRGlzY291bnRQb3B1cERlbGF5U2hvd090aGVyIiBuYW1lPSJEaXNjb3VudFBvcHVwRGVsYXlTaG93T3RoZXIiIHZhbHVlPSIxIj4KCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJEaXNjb3VudFBvcHVwRGVsYXlTaG93IiBuYW1lPSJEaXNjb3VudFBvcHVwRGVsYXlTaG93IiB2YWx1ZT0iMSI+Cgk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iRGlzY291bnRQb3B1cERlbGF5U2hvd05ldyIgbmFtZT0iRGlzY291bnRQb3B1cERlbGF5U2hvd05ldyIgdmFsdWU9IjEiPgoJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9IlNIT1dfUE9QVVBfQVVUTyIgbmFtZT0iU0hPV19QT1BVUF9BVVRPIiB2YWx1ZT0iZGVsYXkiPgoJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9IlNIT1dfUE9QVVBfQVVUT19VU0VEIiBuYW1lPSJTSE9XX1BPUFVQX0FVVE9fVVNFRCIgdmFsdWU9ImRlbGF5Ij4KCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJTSE9XX1BPUFVQX0FVVE9fTkVXIiBuYW1lPSJTSE9XX1BPUFVQX0FVVE9fTkVXIiB2YWx1ZT0iZGVsYXkiPgoJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9IkFVVE9fUEVSQ0VOVF9QT1BVUCIgbmFtZT0iQVVUT19QRVJDRU5UX1BPUFVQIiB2YWx1ZT0iNzUiPgoJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9IkFVVE9fUEVSQ0VOVF9QT1BVUF9VU0VEIiBuYW1lPSJBVVRPX1BFUkNFTlRfUE9QVVBfVVNFRCIgdmFsdWU9Ijc1Ij4KCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJBVVRPX1BFUkNFTlRfUE9QVVBfTkVXIiBuYW1lPSJBVVRPX1BFUkNFTlRfUE9QVVBfTkVXIiB2YWx1ZT0iNzUiPgoJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9IkdFTkVSQUxfVVNFRF9QQUdFX1BPUFVQX1NFTEVDVCIgbmFtZT0iR0VORVJBTF9VU0VEX1BBR0VfUE9QVVBfU0VMRUNUIiB2YWx1ZT0iSU5DTFVESU5HIj4KCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJHRU5FUkFMX05FV19QQUdFX1BPUFVQX1NFTEVDVCIgbmFtZT0iR0VORVJBTF9ORVdfUEFHRV9QT1BVUF9TRUxFQ1QiIHZhbHVlPSJJTkNMVURJTkciPgoJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9IlVTRURfTE9HT19PTl9DSEVDSyIgbmFtZT0iVVNFRF9MT0dPX09OX0NIRUNLIiB2YWx1ZT0iIj4KCgk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iU0VNX0JPT1NURVJfQUNUSVZFIiBuYW1lPSJTRU1fQk9PU1RFUl9BQ1RJVkUiIHZhbHVlPSIxIj4KCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJQQUdFSUQiIG5hbWU9IlBBR0VJRCIgdmFsdWU9Im5ld2NhcnMuaHRtbCI+Cgk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iRGlzY291bnRQb3B1cENoZWNrYm94T3RoZXIiIG5hbWU9IkRpc2NvdW50UG9wdXBDaGVja2JveE90aGVyIiB2YWx1ZT0iMSI+Cgk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iRGlzY291bnRQb3B1cENoZWNrYm94IiBuYW1lPSJEaXNjb3VudFBvcHVwQ2hlY2tib3giIHZhbHVlPSIxIj4KCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJEaXNjb3VudFBvcHVwQ2hlY2tib3hOZXciIG5hbWU9IkRpc2NvdW50UG9wdXBDaGVja2JveE5ldyIgdmFsdWU9IjEiPgoJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9IkNSTV9XU1NfQUNUSVZFIiBuYW1lPSJDUk1fV1NTX0FDVElWRSIgdmFsdWU9Im5vIj4KCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJ0eHRCdWlsZEFuZFByaWNlRW1haWxMaW5rIiB2YWx1ZT0iRGVybmllciB2w6loaWN1bGUgY29uZmlndXLDqSAobW9kdWxlIENvbmZpZ3VyYXRpb24gJmFtcDsgUHJpeCkgbGUgeyRCQU5QTElOS30iPgoJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9InR4dEJ1aWxkQW5kUHJpY2VGb2xkZXJQYXRoIiB2YWx1ZT0iL2NvbmZpZ3VyYXRpb24tZXQtcHJpeC8iPgoKCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJuZXdTZWN0aW9ubmFibGVkIiBuYW1lPSJuZXdTZWN0aW9ubmFibGVkIiB2YWx1ZT0iMSI+Cgk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0idXNlZFNlY3Rpb25uYWJsZWQiIG5hbWU9InVzZWRTZWN0aW9ubmFibGVkIiB2YWx1ZT0iMSI+Cgk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iZmluYW5jZVNlY3Rpb25uYWJsZWQiIG5hbWU9ImZpbmFuY2VTZWN0aW9ubmFibGVkIiB2YWx1ZT0iMSI+Cgk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0ic2VydmljZVNlY3Rpb25uYWJsZWQiIG5hbWU9InNlcnZpY2VTZWN0aW9ubmFibGVkIiB2YWx1ZT0iMSI+Cgk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0icHJvbW9TZWN0aW9ubmFibGVkIiBuYW1lPSJwcm9tb1NlY3Rpb25uYWJsZWQiIHZhbHVlPSIiPgoJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9IkNBTVBBSUdOSUQiIG5hbWU9IkNBTVBBSUdOSUQiIHZhbHVlPSIiPgoJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9IklTVk0iIG5hbWU9IklTVk0iIHZhbHVlPSIiPgoJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9ImhpZGRlbkRlYWxlck5hbWUiIHZhbHVlPSJNYXVyYWlzIEF1dG9tb2JpbGVzIj4KCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IkNCQkNoZWNrVXNlciIgdmFsdWU9Ik1UZ3VPVGN1TVRRdU9EYz0iPgoJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZm9ybV9lbWFpbHMiIHZhbHVlPSIiPgoJPGlucHV0IHR5cGU9ImhpZGRlbiIgdmFsdWU9IjAiIGlkPSJoYXNWQkRDRW5hYmxlZCI+Cgk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iZmZkTDEiIHZhbHVlPSJhMTk0Y2MxMjY3NWI5OTJlYTM5YTIwN2FkOTQ5ZThhMWI0ZmE3NzNjIj4KCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJHUldMIiBuYW1lPSJHUldMIiB2YWx1ZT0iYjJlMzUwYjcxYzE2NDZiN2VlZWM5ZTFhZjZjODU0YjEzY2IxZGI1MTtiYTZiODYxMWNiYTExNzgwMzFiMTdmYTdlMzUwYWNmMmNlMTM1YWE1OzA5YzM1ODA3YmE0N2E4MjU5MmVmODhlNWQ2MzA0ZWE2OTliOGNiZTIiPgoKCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJERUFMRVJCUkFORCIgbmFtZT0iREVBTEVSQlJBTkQiIHZhbHVlPSJGb3JkIj4KCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJERUFMRVJQQUNPREUiIG5hbWU9IkRFQUxFUlBBQ09ERSIgdmFsdWU9IkIyMjM1Ij4KCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJGSU5BTkNFRk9STVRZUEUiIG5hbWU9IkZJTkFOQ0VGT1JNVFlQRSIgdmFsdWU9IjFzdGVwIj4KCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJEaXNjb3VudFBvcHVwTmV3UmViYXRlU2hvd1RleHRVcyIgdmFsdWU9IjAiPgoJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9IkRpc2NvdW50UG9wdXBVc2VkUmViYXRlU2hvd1RleHRVcyIgdmFsdWU9IjAiPgoKCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJvZW1DZXJ0aWZpY2F0aW9uIiB2YWx1ZT0iMTAwNSI+CgoJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9ImNvb2tpZUxvZ1Rva2VuIiB2YWx1ZT0iTVRneE5ETTFOelEyTlRVNE1BPT0iPgoJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9ImNvb2tpZVRvQ2hlY2siIHZhbHVlPSIxIj4KCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJkaXNhYmxlSW50ZXJuYWxTZXNzaW9uIiB2YWx1ZT0iMSI+Cgk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iZGVhbGVyUHJvdmluY2VDb2RlIiB2YWx1ZT0iUUMiPgoJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9InNpdGVJRCIgdmFsdWU9IjEwMjMiPgoJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9InNpdGVhcGl1cmwiIHZhbHVlPSJodHRwczovL3NpdGVhcGkuZDJjbWVkaWEuY2EiPgoJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9IkZpbmFuY2VfRm9ybVR5cGUiIHZhbHVlPSIxc3RlcCI+CgogICAgPGRpdiBpZD0iZW1haWxTdWNjZXNzTWVzc2FnZSIgY2xhc3M9InJldmVhbC1tb2RhbCBlbWFpbC1jb25zZW50LWJveCIgc3R5bGU9IndpZHRoOjYwJTsiPgogICAgICA8ZGl2IGNsYXNzPSJpY29uLXRpdGxlIj4KICAgICAgICA8IS0tIDxzcGFuIGNsYXNzPSJ0aXRsZS1pY29uIHN1Y2Nlc3MgLW1sMCI+PC9zcGFuPiAtLT4KICAgICAgICA8c3BhbiBjbGFzcz0idGl0bGUtdHh0Ij5Wb3RyZSBkZW1hbmRlIGEgYmllbiDDqXTDqSBlbnZvecOpZSE8L3NwYW4+CiAgICAgIDwvZGl2PgogICAgICA8cCBjbGFzcz0iZGVmYXVsdFN1Y2Nlc3MiPjxicj5Wb3RyZSBkZW1hbmRlIGEgw6l0w6kgZW52b3nDqWUgYXZlYyBzdWNjw6hzLiBVbiByZXByw6lzZW50YW50IHZvdXMgY29udGFjdGVyYSBzb3VzIHBldS48L3A+CiAgICAgIDxwIGNsYXNzPSJzZXJ2aWNlU3VjY2VzcyIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPjxicj5NZXJjaSBwb3VyIHZvdHJlIGRlbWFuZGUuIFVuIG1lbWJyZSBkZSBub3RyZSDDqXF1aXBlIGNvbW11bmlxdWVyYSBhdmVjIHZvdXMgc291cyBwZXUuPC9wPgogICAgICA8IS0tIDxhIGNsYXNzPSJjbG9zZS1yZXZlYWwtbW9kYWwiPiYjMjE1OzwvYT4gLS0+CiAgICAgIDxkaXYgY2xhc3M9ImVtYWlsLWNvbnNlbnQtYnRucyAtcHQyMCAtcmlnaHQgYW1wQ29uc2VudFJlc3BvbnNlU2VuZERpc21pc3MiPgogICAgICAgIDxhIGhyZWY9Ij9wYXRoPSMiIGNsYXNzPSIgLXVwcGVyY2FzZSBidG4tZGVmYXVsdCAiIG9uY2xpY2s9IiQoJy5jbG9zZS1yZXZlYWwtbW9kYWw6dmlzaWJsZScpLnRyaWdnZXIoJ2NsaWNrJyk7cmV0dXJuIGZhbHNlOyI+RmVybWVyPC9hPgogICAgICA8L2Rpdj4KICAgICAgPGZvcm0gaWQ9ImVtYWlsbXNnZnJtIiBjbGFzcz0iY29uZmlybV9odG1sIiB0YXJnZXQ9ImlmcmFtZSIgbWV0aG9kPSJwb3N0IiBhY3Rpb249Ii9jb25maXJtYXRpb24uaHRtbCI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImxhYmVsIiBjbGFzcz0ibGFiZWxlbWFpbCIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InNlY3Rpb24iIGNsYXNzPSJsYWJlbHNlY3Rpb24iIHZhbHVlPSJPY2Nhc2lvbiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImJyYW5kIiBjbGFzcz0iYnJhbmRlbWFpbCIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Im1vZGVsIiBjbGFzcz0ibW9kZWxlbWFpbCIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InllYXIiIGNsYXNzPSJ5ZWFyZW1haWwiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJnb29nbGVpZCIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Imdvb2dsZWlkZDJjbWVkaWEiIHZhbHVlPSIiPgoJCQkJCQkgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImFkd29yZHNjb25pZCIgdmFsdWU9IiI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJhZHdvcmRzbGFiZWxpZCIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImJpbmdjb25pZCIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImJpbmdhY3Rpb25pZCIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImJpbmdkb21haW5pZCIgdmFsdWU9IiI+CgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJhZHJvbGxBZHYiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJhZHJvbGxQaXgiIHZhbHVlPSIiPgoKICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZmFjZWJvb2tDb25JZCIgdmFsdWU9IiI+CgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJkb21haW4iIHZhbHVlPSJtYXVyYWlzYXV0by5jb20iPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJyZWZlcnJlciIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImRlcGFydG1lbnQiIHZhbHVlPSJORVciPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJsZWFkX2RlcGFydG1lbnQiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJpc2V4cHJlc3MiIGNsYXNzPSJpc2V4cHJlc3MiIHZhbHVlPSIwIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iaXNwcm9tbyIgdmFsdWU9IjAiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJpc2hvbWVwYWdlIiB2YWx1ZT0iMCI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InRlc3Rtb2RlIiBjbGFzcz0idGVzdG1vZGUiIHZhbHVlPSIwIj4KCiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImxlYWRUeXBlIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0icGFnZUlEIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iY3VycmVudFVSTCIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImlzQ29uZmlybVBvcHVwIiB2YWx1ZT0iIj4KCiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImNvbmZpcm1fZW1haWwiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJjb25maXJtX2ZpcnN0X25hbWUiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJjb25maXJtX2xhc3RfbmFtZSIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImNvbmZpcm1fcGhvbmVfbnVtYmVyIiB2YWx1ZT0iIj4KCiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImlzRnVsbFdpZHRoIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZGVhbGVyTmFtZSIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImJ1dHRvblBvc2l0aW9uIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iaXNNb2JpbGVOZXdWRFAiIHZhbHVlPSIxIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZnJvbUF1dG9BdWJhaW5lIiB2YWx1ZT0iIj4KCiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSJORVciIG5hbWU9InRleHRDYXJTZWN0aW9uVHlwZSIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJsYW5nIiB2YWx1ZT0iZnIiPgogICAgICA8L2Zvcm0+CiAgICAgIDxpZnJhbWUgd2lkdGg9IjEiIGhlaWdodD0iMSIgbmFtZT0iaWZyYW1lIiBmcmFtZWJvcmRlcj0iMCIgc3R5bGU9IndpZHRoOjFweDtoZWlnaHQ6MXB4OyI+PC9pZnJhbWU+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGlkPSJlbWFpbEZhaWxNZXNzYWdlIiBjbGFzcz0icmV2ZWFsLW1vZGFsIGVtYWlsLWNvbnNlbnQtYm94IiBzdHlsZT0id2lkdGg6NjAlOyI+CiAgICAgIDxzcGFuIGNsYXNzPSJmYWlsIj5VbmUgZXJyZXVyIHMnZXN0IHByb2R1aXRlPC9zcGFuPgogICAgICA8cD5Ob3VzIG4nYXZvbnMgcGFzIHB1IGVudm95ZXIgdm90cmUgbWVzc2FnZS4gUydpbCB2b3VzIHBsYcOudCByYWZyYcOuY2hpciBldCBlc3NheWV6IMOgIG5vdXZlYXU8L3A+CiAgICAgIDxkaXYgY2xhc3M9ImNsb3NlLXJldmVhbC1tb2RhbCI+PGVtIGNsYXNzPSJmYSBmYS10aW1lcy1jaXJjbGUiPjwvZW0+PC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9Ii1wdDIwIC1yaWdodCBhbXBDb25zZW50UmVzcG9uc2VTZW5kRGlzbWlzcyI+CiAgICAgICAgPGlucHV0IHR5cGU9ImJ1dHRvbiIgY2xhc3M9IiAtdXBwZXJjYXNlIGJ0bi1kZWZhdWx0ICIgb25jbGljaz0iJCgnI2VtYWlsRmFpbE1lc3NhZ2UnKS50cmlnZ2VyKCdyZXZlYWw6Y2xvc2UnKTsiIHZhbHVlPSJGZXJtZXIiPgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgoKCgkJCgkJPGRpdiBpZD0iZDJjRm9vdGVyQ29va2llRGVsZXRlIiBjbGFzcz0icmV2ZWFsLW1vZGFsICIgc3R5bGU9IndpZHRoOjMyMHB4O2hlaWdodDoyNTBweDtwYWRkaW5nOjMwcHggMTBweCA4MHB4OyIgZGF0YS1sYXp5bG9hZGlkPSJuZXdjYXJzX2QyY2Zvb3RlcmNvb2tpZWRlbGV0ZSI+CgkJCQoJCTwvZGl2PgoKCQk8IS0tIE9POjoyNTVhYWJmOTE2MGFjZmRkNmY5YmU0MGUxMzlmYjFhZCAtLT4KCgkJCgkJCQkJCgoJCQkKCQk8c3R5bGU+CgoJCQkjbGVhZERlYWxlckFwcG9pbnRtZW50IHNpZGViYXItbGMgPiAqewoJCQkJd2lkdGg6IGNsYW1wKDIwLjVyZW0sIG1heCg5MHZ3LCAyMC41cmVtKSwgNjByZW0pOwoJCQkJZGlyZWN0aW9uOiBydGw7CgkJCX0KCgkJCSNsZWFkRGVhbGVyQXBwb2ludG1lbnQgc2lkZWJhci1sYyA+ICogPiAqewoJCQkJZGlyZWN0aW9uOiBpbml0aWFsOwoJCQl9CgoJCQkjbGVhZERlYWxlckFwcG9pbnRtZW50IHNpZGViYXItbGMgPiAqID46bGFzdC1jaGlsZHsKCQkJCXdpZHRoOiAyMHJlbTsKCQkJfQoKCQkJI2xlYWREZWFsZXJBcHBvaW50bWVudCBzaWRlYmFyLWxjewoJCQkJLS1zaWRlYmFyLWJwOiA0MCU7CgkJCX0KCgkJCSNsZWFkRGVhbGVyQXBwb2ludG1lbnQgc3dpdGNoZXItbGN7CgkJCQktLXN3aXRjaC1icDogMzVyZW07CgkJCX0KCgoJCQkjZm9ybURlYWxlckFwcG9pbnRtZW50IGxhYmVsewoJCQkJbWF4LXdpZHRoOjE5cmVtOwoJCQkJZGlzcGxheTogZmxleDsKCQkJCWZsZXgtd3JhcDogd3JhcDsKCQkJCWp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKCQkJfQoKCQkJI2Zvcm1EZWFsZXJBcHBvaW50bWVudCBsYWJlbCBzcGFuewoJCQkJd2lkdGg6NHJlbTsKCQkJfQoKCgkJCSNmb3JtRGVhbGVyQXBwb2ludG1lbnQgW3R5cGU9InN1Ym1pdCJdewoJCQkJbWF4LXdpZHRoOjE5cmVtOwoJCQl9CgoJCQkuY29udGFjdE1hcENvbnRhaW5lcnsKCQkJCWhlaWdodDoxMDAlOwoJCQkJbWluLWhlaWdodDptaW4oNzV2aCwgMzhyZW0pOwoJCQl9CgoJCQkuY29udGFjdEZvcm17CgkJCQlib3JkZXItY29sb3I6I2JiYjsKCQkJCWJveC1zaXppbmc6IGJvcmRlci1ib3g7CgkJCX0KCgkJCSNsZWFkRGVhbGVyQXBwb2ludG1lbnQgLmNvbnRhY3RGb3JtIGlucHV0ewoJCQkJbWF4LXdpZHRoOiAxMHJlbTsKCQkJfQoKCgoJCQkjbGVhZERlYWxlckFwcG9pbnRtZW50IC5mbGF0cGlja3ItZGF5LnNlbGVjdGVkewoJCQkJYmFja2dyb3VuZC1jb2xvcjojMDAwOwoJCQkJYm9yZGVyLWNvbG9yOiMwMDA7CgkJCX0KCgkJCSNsZWFkRGVhbGVyQXBwb2ludG1lbnQgLmZsYXRwaWNrci10aW1lIDppcyhpbnB1dDpob3ZlcixpbnB1dDpmb2N1cyl7CgkJCQliYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsKCQkJfQoKCQkJLmZsYXRwaWNrci1tb250aERyb3Bkb3duLW1vbnRoLCAuZmxhdHBpY2tyLW1vbnRoRHJvcGRvd24tbW9udGhzewoJCQkJdGV4dC10cmFuc2Zvcm06dmFyKC0tdHh0LXVwcGVyLCB1cHBlcmNhc2UpOwoJCQl9CgoJCQkvKiAuZHAtbGFyZ2UgLmZsYXRwaWNrci1jYWxlbmRhcnsKCQkJCXdpZHRoOjMwcmVtOwoJCQkJZm9udC1zaXplOjEuMXJlbTsKCQkJfQoKCQkJLmRwLWxhcmdlIC5mbGF0cGlja3Itd2Vla2RheXN7CgkJCQloZWlnaHQ6Mi41cmVtOwoJCQl9CgoJCQkuZHAtbGFyZ2UgLmZsYXRwaWNrci1kYXl7CgkJCQltYXgtd2lkdGg6IDRyZW07CgkJCQloZWlnaHQ6IDIuNXJlbTsKCQkJCWxpbmUtaGVpZ2h0OiAyLjVyZW07CgkJCX0KCgkJCS5kcC1sYXJnZSA6aXMoLmZsYXRwaWNrci1kYXlzLC5kYXlDb250YWluZXIpIHsKCQkJCXdpZHRoOjEwMCU7CgkJCQltYXgtd2lkdGg6IDMwcmVtOwoJCQl9ICovCgkJPC9zdHlsZT4KCgkJCTxkaXYgaWQ9ImxlYWREZWFsZXJBcHBvaW50bWVudCIgaGlkZGVuPgoJCQkJPGRpdiBjbGFzcz0iZmxleC1jZW50ZXIgYWxpZ24tY2VudGVyIj4KCQkJCTxzaWRlYmFyLWxjPgoJCQkJCTxkaXY+IDwhLS0gaW50ZXJtZWRpYXJ5IHdyYXBwZXIgLS0+CgoJCQkJCQk8Ym94LWxjPgoJCQkJCQkJPHN0YWNrLWxjIGNsYXNzPSJhbGlnbi1jZW50ZXIiPgoJCQkJCQkJCTx1bCBjbGFzcz0iY2hlY2tsaXN0IC1mcy0xIC0tcyI+CgkJCQkJCQkJCTxsaT5VbmUgZXhww6lyaWVuY2UgcGVyc29ubmFsaXPDqWUgZMOocyB2b3RyZSBhcnJpdsOpZTwvbGk+CgkJCQkJCQkJCTxsaT5BdWN1bmUgYXR0ZW50ZSBjaGV6IGxlIGNvbmNlc3Npb25uYWlyZTwvbGk+CgkJCQkJCQkJCTxsaT5BdWN1bmUgcGFwZXJhc3NlIGludXRpbGU6IGNvbmNlbnRyZXotdm91cyBzdXIgbGUgdsOpaGljdWxlPC9saT4KCQkJCQkJCQk8L3VsPgoJCQkJCQkJCTxib3gtbGMgY2xhc3M9ImZsZXgtY2VudGVyIj4KCQkJCQkJCQkJPGlucHV0IGNsYXNzPSJkYXRlcGlja2VyIGZsYXRwaWNrci1pbnB1dCIgaGlkZGVuIHR5cGU9InRleHQiIHRpdGxlPSJTZWxlY3QgRGF0ZS4uLiIgcGxhY2Vob2xkZXI9IlNlbGVjdCBEYXRlLi4uIiBkYXRhLWlkPSJpbmxpbmUiIHJlYWRvbmx5PgoJCQkJCQkJCTwvYm94LWxjPgoJCQkJCQkJCTxib3gtbGMgY2xhc3M9ImNvbnRhY3RGb3JtIC1iIC13LTEwMCBmbGV4LWNlbnRlciAtLXMyIj4KCQkJCQkJCQkJPGZvcm0gaWQ9ImZvcm1EZWFsZXJBcHBvaW50bWVudCIgY2xhc3M9Ii13LTEwMCIgbm92YWxpZGF0ZT4KCQkJCQkJCQkJCTxzdGFjay1sYyBjbGFzcz0iLS1zMiBhbGlnbi1jZW50ZXIiPgoKCQkJCQkJCQkJCQk8c3BhbiBjbGFzcz0iLWJvbGQgdHh0LWNlbnRlciB0eHQtdXBwZXIgc2VsZWN0ZWRUaW1lIj48L3NwYW4+CgkJCQkJCQkJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZGF0ZSI+CgoJCQkJCQkJCQkJCTxzd2l0Y2hlci1sYz4KCQkJCQkJCQkJCQkJPGRpdiBjbGFzcz0iZmxleC1jZW50ZXIiPiA8IS0tIGludGVybWVkaWFyeSB3cmFwcGVyIC0tPgoJCQkJCQkJCQkJCQkJPGxhYmVsIGNsYXNzPSJmb3JtLWxhYmVsIGFsaWduLWNlbnRlciI+CgkJCQkJCQkJCQkJCQkJPHNwYW4+Tm9tICo8L3NwYW4+CgkJCQkJCQkJCQkJCQkJPGlucHV0IHJlcXVpcmVkIGNsYXNzPSItcGgiIG5hbWU9Im5hbWUiIHR5cGU9InRleHQiPgoJCQkJCQkJCQkJCQkJPC9sYWJlbD4KCgkJCQkJCQkJCQkJCQk8bGFiZWwgY2xhc3M9ImZvcm0tbGFiZWwgYWxpZ24tY2VudGVyIj4KCQkJCQkJCQkJCQkJCQk8c3Bhbj5Db3VycmllbCAqPC9zcGFuPgoJCQkJCQkJCQkJCQkJCTxpbnB1dCBuYW1lPSJlbWFpbCIgdHlwZT0iZW1haWwiIHJlcXVpcmVkPgoJCQkJCQkJCQkJCQkJPC9sYWJlbD4KCgkJCQkJCQkJCQkJCQk8bGFiZWwgY2xhc3M9ImZvcm0tbGFiZWwgYWxpZ24tY2VudGVyIj4KCQkJCQkJCQkJCQkJCQk8c3Bhbj5Uw6lsw6lwaG9uZSAqPC9zcGFuPgoJCQkJCQkJCQkJCQkJCTxpbnB1dCBkYXRhLXByaXN0aW5lLXBob25lIG5hbWU9InBob25lbnVtIiB0eXBlPSJ0ZWwiIHJlcXVpcmVkPgoJCQkJCQkJCQkJCQkJPC9sYWJlbD4KCQkJCQkJCQkJCQkJPC9kaXY+CgkJCQkJCQkJCQkJPC9zd2l0Y2hlci1sYz4KCgkJCQkJCQkJCQkJPGJ1dHRvbiBvbnN1Ym1pdD0iamF2YXNjcmlwdDp2b2lkKCkiIGNsYXNzPSJidG4gYnRuLXByb21vIC1mcy1sciAtdy0xMDAgdHh0LXVwcGVyIC1ib2xkIiB0eXBlPSJzdWJtaXQiPgoJCQkJCQkJCQkJCQlQcmVuZHJlIHJlbmRlei12b3VzCgkJCQkJCQkJCQkJPC9idXR0b24+CgoJCQkJCQkJCQkJCTxpbnB1dCBuYW1lPSJkYXRhIiB0eXBlPSJoaWRkZW4iIGRhdGEtbWFrZT0iIiBkYXRhLW1vZGVsPSIiIGRhdGEteWVhcj0iIiBkYXRhLXRyaW09IiIgZGF0YS1jb25kaXRpb249IiIgZGF0YS1rbT0iIiBkYXRhLXZpbj0iIiBkYXRhLXN0b2NrLW51bWJlcj0iIj4KCgkJCQkJCQkJCQkJPGlucHV0IG5hbWU9InNlbmRUbyIgdmFsdWU9IjY4MDVlYjRiNDQ2YzE1NjA5NTQ5YjE4ZmIwMmZkNGVjfDE4NDEwNjAzMzMiIHR5cGU9ImhpZGRlbiI+CgkJCQkJCQkJCQkJPGlucHV0IG5hbWU9InNlbmRUb0FERkZvcm1hdCIgdmFsdWU9IiIgdHlwZT0iaGlkZGVuIj4KCQkJCQkJCQkJCQk8aW5wdXQgbmFtZT0ibWFpbElEIiB2YWx1ZT0iRGVhbGVyQXBwb2ludG1lbnQiIHR5cGU9ImhpZGRlbiI+CgkJCQkJCQkJCQkJPGlucHV0IG5hbWU9InBvcHVwT2ZmZXJUeXBlIiB2YWx1ZT0iRGVhbGVyQXBwb2ludG1lbnRBbGwiIHR5cGU9ImhpZGRlbiI+CgoJCQkJCQkJCQkJCTxkaXYgY2xhc3M9ImxlYWRFbWFpbCIgaGlkZGVuPgoJCQkJCQkJCQkJCQk8c3BhbiBkYXRhLXN1YmplY3Q+TGVhZCA6IERlbWFuZGUgZGUgcmVuZGV6LXZvdXM8L3NwYW4+CgkJCQkJCQkJCQkJCTxzcGFuIGRhdGEtYm9keT5Cb25qb3VyLDxicj48YnI+VW4gY2xpZW50IHBvdGVudGllbCBheWFudCB2aXNpdMOpIHZvdHJlIHNpdGUgd2ViLCBhaW1lcmFpdCBwcmVuZHJlIHVuIHJlbmRlei12b3VzOjxicj48YnI+PHU+UmVuc2VpZ25lbWVudHMgc3VyIGxlIHbDqWhpY3VsZTwvdT46PGJyPk1vZMOobGU6IDxzdHJvbmc+ICA8L3N0cm9uZz48YnI+TklWOiA8c3Ryb25nPnskVklOfTwvc3Ryb25nPjxicj5OdW3DqXJvIGRlIHN0b2NrOiA8c3Ryb25nPnskU1RPQ0tOVU1CRVJ9PC9zdHJvbmc+PGJyPktpbG9tw6h0cmVzOiA8c3Ryb25nPnskS019PC9zdHJvbmc+PGJyPjxicj48dT5EYXRlIGR1IHJlbmRlei12b3VzIHNvdWhhaXTDqTwvdT4gOiA8c3Ryb25nPnskREFURX08L3N0cm9uZz48YnI+PGJyPjx1PlJlbnNlaWduZW1lbnRzIHN1ciBsZSB2aXNpdGV1cjwvdT46PGJyPk5vbTogPHN0cm9uZz57JE5BTUV9PC9zdHJvbmc+PGJyPkNvdXJyaWVsOiA8c3Ryb25nPjxhIGhyZWY9Ij9wYXRoPW1haWx0bzolN0IlMjRFTUFJTCU3RCI+eyRFTUFJTH08L2E+PC9zdHJvbmc+PGJyPlTDqWzDqXBob25lOiA8c3Ryb25nPjxhIGhyZWY9Ij9wYXRoPXRlbDolN0IlMjRQSE9ORU5VTSU3RCI+eyRQSE9ORU5VTX08L2E+PC9zdHJvbmc+IHskUEhPTkVfVkFMSURBVElPTl9BVFRFTVBUU308YnI+PGJyPjx1PkNvbmNlc3Npb248L3U+Ojxicj5Ob20gOiA8c3Ryb25nPnskREVBTEVSTkFNRX08L3N0cm9uZz48YnI+PGJyPjxkaXYgc3R5bGU9IiMjU0VPQkxPQ0tESVNQTEFZIyMiPlNvdXJjZSBNw6lkaWE6IDxzdHJvbmc+eyRVVE1ERVRBSUxTfTwvc3Ryb25nPjxicj5OYXZpZ2F0ZXVyOiA8c3Ryb25nPnskVVNFUkFHRU5UfSAtIDwvc3Ryb25nPjxicj5IaXN0b3JpcXVlIGRlIG5hdmlnYXRpb246IDxzdHJvbmc+PGEgaHJlZj0iP3BhdGg9JTdCJTI0VVVMSU5LJTdEIiByZWw9Im5vZm9sbG93IHVnYyBzcG9uc29yZWQgbm9pbmRleCIgc3R5bGU9ImNvbG9yOmJsYWNrOyB0ZXh0LWRlY29yYXRpb246IG5vbmU7Ij5DbGlxdWV6IGljaTwvYT48L3N0cm9uZz48YnI+PC9kaXY+Q29uc2VudGVtZW50OiA8c3Ryb25nPnskQ09OU0VOVF9ERVRBSUxTfTwvc3Ryb25nPnskUFVSQ0hBU0VfSU5URU5UfTwvc3Bhbj4KCQkJCQkJCQkJCQk8L2Rpdj4KCgkJCQkJCQkJCQk8L3N0YWNrLWxjPgoJCQkJCQkJCQk8L2Zvcm0+CgkJCQkJCQkJPC9ib3gtbGM+CgkJCQkJCQk8L3N0YWNrLWxjPgoJCQkJCQk8L2JveC1sYz4KCgkJCQkJCTxkaXY+CgkJCQkJCQk8c3RhY2stbGMgY2xhc3M9ImNvbnRhY3RNYXBDb250YWluZXIgLS1zLTggLWJnLWxpZ2h0IiBpZD0iZm9vdGVyR29vZ2xlTWFwSG91cnNDb250YWluZXIiPgoKCQkJCQkJCQkKCQkJPGlmcmFtZSB0aXRsZT0iR29vZ2xlIE1hcCIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgZnJhbWVib3JkZXI9IjAiIGNsYXNzPSIgbGF6eWxvYWRlZCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL21hcHMvZW1iZWQvdjEvcGxhY2U\/cT1wbGFjZV9pZCUzQUNoSUotVnRGTU1sWXRrd1Jzc2JSTlZXRW9OUSZhbXA7a2V5PUFJemFTeUNyS0Q2WlByT0xnbUdXcldfWVIwOV9lbXlpVnFsN19fZyZhbXA7em9vbT0xNCZhbXA7cmVnaW9uPUNBJmFtcDtsYW5ndWFnZT1mciIgYWxsb3dmdWxsc2NyZWVuPSIiPjwvaWZyYW1lPgoKCQkJCQkJCQk8Ym94LWxjIGNsYXNzPSJjb250YWN0QmxvY2sgLS1zMiAtbTAiPgoJCQkJCQkJCQk8c3RhY2stbGMgY2xhc3M9Ii0tczMiPgoJCQkJCQkJCQkJPGRpdj4KCQkJCQkJCQkJCQk8c3RhY2stbGMgY2xhc3M9Ii0tcy04Ij4KCQkJCQkJCQkJCQkJPHNwYW4gY2xhc3M9Ii0tZnMwIj5NYXVyYWlzIEF1dG9tb2JpbGVzPC9zcGFuPgoJCQkJCQkJCQkJCQk8YSBocmVmPSJodHRwczovL3d3dy5nb29nbGUuY2EvbWFwcy9kaXIvP2FwaT0xJmFtcDtkZXN0aW5hdGlvbj1NYXVyYWlzJTJCQXV0b21vYmlsZXMlMkMzOTYrUnVlK01haW4rT3Vlc3QlMkNDb2F0aWNvb2slMkNRQyUyQ0oxQSsxUDcmYW1wO2hsPWZyJmFtcDt0PW0mYW1wO3o9MTYmYW1wO2llPVVURjgmYW1wO2Rlc3RpbmF0aW9uX3BsYWNlX2lkPUNoSUotVnRGTU1sWXRrd1Jzc2JSTlZXRW9OUSIgdGFyZ2V0PSJfYmxhbmsiIGNsYXNzPSItLWZzLTEiPgoJCQkJCQkJCQkJCQkJPHNwYW4+Mzk2IFJ1ZSBNYWluIE91ZXN0PC9zcGFuPgoJCQkJCQkJCQkJCQkJPHNwYW4+Q29hdGljb29rLCBRQzwvc3Bhbj4KCQkJCQkJCQkJCQkJCTxzcGFuPkoxQSAxUDc8L3NwYW4+CgkJCQkJCQkJCQkJCTwvYT4KCQkJCQkJCQkJCQk8L3N0YWNrLWxjPgoJCQkJCQkJCQkJPC9kaXY+CgoJCQkJCQkJCQkJPGRpdj4KCQkJCQkJCQkJCQk8c3RhY2stbGMgY2xhc3M9Ii0tcy04Ij4KCQkJCQkJCQkJCQkJPHNwYW4gY2xhc3M9Ii1ib2xkIj5Uw6lsw6lwaG9uZTwvc3Bhbj4KCQkJCQkJCQkJCQkJPHNwYW4gY2xhc3M9Ii0tZnMtMSI+CgkJCQkJCQkJCQkJCQk8YSBocmVmPSI\/cGF0aD10ZWw6ODE5JTIwODQ5LTI3NjciIGRhdGEtZGVwYXJ0bWVudD0iU2FsZXMiIHRpdGxlPSJDb250YWN0IFBob25lIj44MTkgODQ5LTI3Njc8L2E+CgkJCQkJCQkJCQkJCTwvc3Bhbj4KCQkJCQkJCQkJCQk8L3N0YWNrLWxjPgoJCQkJCQkJCQkJPC9kaXY+CgoJCQkJCQkJCQkJPGRpdj4KCQkJCQkJCQkJCQk8c3RhY2stbGMgY2xhc3M9Ii0tcy04Ij4KCQkJCQkJCQkJCQkJPHNwYW4gY2xhc3M9Ii1ib2xkIj5IZXVyZXM8L3NwYW4+CgkJCQkJCQkJCQkJCQkJCTxkaXYgaWQ9Iml0ZW1fbmV3Ij4KCQkJCTxzdGFjay1sYyBjbGFzcz0iaG91cnNMaXN0Ij4KCQkJCQkJCQkJPGJveC1sYyBjbGFzcz0iZmxleC1iZXR3ZWVuIC0tZnMtMSAtLXMtOCIgZGF0YS1taW5ob3VyPSIwODowMCIgZGF0YS1tYXhob3VyPSIxODowMCIgZGF0YS1jbG9zZWQ9IjAiPgoJCQkJCTxzcGFuIGNsYXNzPSJkYXkiPkx1bmRpPC9zcGFuPgoJCQkJCTxzcGFuIGNsYXNzPSJob3VycyI+MDg6MDAgLSAxODowMDwvc3Bhbj4KCQkJCTwvYm94LWxjPgkJCQk8Ym94LWxjIGNsYXNzPSJmbGV4LWJldHdlZW4gLS1mcy0xIC0tcy04IiBkYXRhLW1pbmhvdXI9IjA4OjAwIiBkYXRhLW1heGhvdXI9IjE4OjAwIiBkYXRhLWNsb3NlZD0iMCI+CgkJCQkJPHNwYW4gY2xhc3M9ImRheSI+TWFyZGk8L3NwYW4+CgkJCQkJPHNwYW4gY2xhc3M9ImhvdXJzIj4wODowMCAtIDE4OjAwPC9zcGFuPgoJCQkJPC9ib3gtbGM+CQkJCTxib3gtbGMgY2xhc3M9ImZsZXgtYmV0d2VlbiAtLWZzLTEgLS1zLTgiIGRhdGEtbWluaG91cj0iMDg6MDAiIGRhdGEtbWF4aG91cj0iMTg6MDAiIGRhdGEtY2xvc2VkPSIwIj4KCQkJCQk8c3BhbiBjbGFzcz0iZGF5Ij5NZXJjcmVkaTwvc3Bhbj4KCQkJCQk8c3BhbiBjbGFzcz0iaG91cnMiPjA4OjAwIC0gMTg6MDA8L3NwYW4+CgkJCQk8L2JveC1sYz4JCQkJPGJveC1sYyBjbGFzcz0iZmxleC1iZXR3ZWVuIC0tZnMtMSAtLXMtOCIgZGF0YS1taW5ob3VyPSIwODowMCIgZGF0YS1tYXhob3VyPSIxODowMCIgZGF0YS1jbG9zZWQ9IjAiPgoJCQkJCTxzcGFuIGNsYXNzPSJkYXkiPkpldWRpPC9zcGFuPgoJCQkJCTxzcGFuIGNsYXNzPSJob3VycyI+MDg6MDAgLSAxODowMDwvc3Bhbj4KCQkJCTwvYm94LWxjPgkJCQk8Ym94LWxjIGNsYXNzPSJmbGV4LWJldHdlZW4gLS1mcy0xIC0tcy04IiBkYXRhLW1pbmhvdXI9IjA4OjAwIiBkYXRhLW1heGhvdXI9IjE3OjMwIiBkYXRhLWNsb3NlZD0iMCI+CgkJCQkJPHNwYW4gY2xhc3M9ImRheSI+VmVuZHJlZGk8L3NwYW4+CgkJCQkJPHNwYW4gY2xhc3M9ImhvdXJzIj4wODowMCAtIDE3OjMwPC9zcGFuPgoJCQkJPC9ib3gtbGM+CQkJCTxib3gtbGMgY2xhc3M9ImZsZXgtYmV0d2VlbiAtLWZzLTEgLS1zLTgiIGRhdGEtbWluaG91cj0iMCIgZGF0YS1tYXhob3VyPSIwIiBkYXRhLWNsb3NlZD0iMSI+CgkJCQkJPHNwYW4gY2xhc3M9ImRheSI+U2FtZWRpPC9zcGFuPgoJCQkJCTxzcGFuIGNsYXNzPSJob3VycyI+RmVybcOpPC9zcGFuPgoJCQkJPC9ib3gtbGM+CQkJCTxib3gtbGMgY2xhc3M9ImZsZXgtYmV0d2VlbiAtLWZzLTEgLS1zLTgiIGRhdGEtbWluaG91cj0iMCIgZGF0YS1tYXhob3VyPSIwIiBkYXRhLWNsb3NlZD0iMSI+CgkJCQkJPHNwYW4gY2xhc3M9ImRheSI+RGltYW5jaGU8L3NwYW4+CgkJCQkJPHNwYW4gY2xhc3M9ImhvdXJzIj5GZXJtw6k8L3NwYW4+CgkJCQk8L2JveC1sYz4KCQkJCTwvc3RhY2stbGM+CgkJCTwvZGl2PgoJCQkJCQkJCQkJCTwvc3RhY2stbGM+CgkJCQkJCQkJCQk8L2Rpdj4KCgkJCQkJCQkJCTwvc3RhY2stbGM+CgkJCQkJCQkJPC9ib3gtbGM+CgoJCQkJCQkJPC9zdGFjay1sYz4KCQkJCQkJPC9kaXY+CgoJCQkJCTwvZGl2PgoJCQkJPC9zaWRlYmFyLWxjPgoJCQkJPC9kaXY+CgkJCQk8L2Rpdj4KCgkJCQkKCgkJCQk8IS0tIE9POjozN2E1Mzg4MjczNzg2MTU1N2U0Zjg5MDIwNTI1YzA4NCAtLT4KCiAgICAgICA8IS0tIE1BSU4gUE9QVVAgbmV3IE11bHRpZm9ybVBvcHVwIC0tPgoJCQoJCTxkaXYgaWQ9Im11bHRpZm9ybVBvcHVwQ29udGFpbmVyIiBjbGFzcz0icmV2ZWFsLW1vZGFsICIgc3R5bGU9IndpZHRoOjMwMHB4O2hlaWdodDo0ODBweDtwYWRkaW5nOjBweDsiIGRhdGEtbGF6eWxvYWRpZD0ibmV3Y2Fyc19tdWx0aWZvcm1wb3B1cGNvbnRhaW5lciI+CgkJCQoJCTwvZGl2PgoKCQk8IS0tIE9POjpjYWMzNWRkNzI0MTc2Yjc2M2FmYTczMzMxMmJhNWMwYiAtLT4KCgkJCgogICAgPGRpdiBpZD0iZW1haWxTdWNjZXNzTWVzc2FnZV9tdWx0aWZvcm1Qb3B1cENvbnRhaW5lciIgY2xhc3M9InJldmVhbC1tb2RhbCBlbWFpbC1jb25zZW50LWJveCIgc3R5bGU9IndpZHRoOjYwJTsiPgogICAgICA8ZGl2IGNsYXNzPSJpY29uLXRpdGxlIj4KICAgICAgICA8IS0tIDxzcGFuIGNsYXNzPSJ0aXRsZS1pY29uIHN1Y2Nlc3MgLW1sMCI+PC9zcGFuPiAtLT4KICAgICAgICA8c3BhbiBjbGFzcz0idGl0bGUtdHh0Ij5Wb3RyZSBkZW1hbmRlIGEgYmllbiDDqXTDqSBlbnZvecOpZSE8L3NwYW4+CiAgICAgIDwvZGl2PgogICAgICA8cCBjbGFzcz0iZGVmYXVsdFN1Y2Nlc3MiPjxicj5Wb3RyZSBkZW1hbmRlIGEgw6l0w6kgZW52b3nDqWUgYXZlYyBzdWNjw6hzLiBVbiByZXByw6lzZW50YW50IHZvdXMgY29udGFjdGVyYSBzb3VzIHBldS48L3A+CiAgICAgIDxwIGNsYXNzPSJzZXJ2aWNlU3VjY2VzcyIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPjxicj5Wb3RyZSBkZW1hbmRlIGEgw6l0w6kgZW52b3nDqWUgYXZlYyBzdWNjw6hzLiBVbiByZXByw6lzZW50YW50IHZvdXMgY29udGFjdGVyYSBzb3VzIHBldS48L3A+CiAgICAgIDwhLS0gPGEgY2xhc3M9ImNsb3NlLXJldmVhbC1tb2RhbCI+JiMyMTU7PC9hPiAtLT4KICAgICAgPGRpdiBjbGFzcz0iZW1haWwtY29uc2VudC1idG5zIC1wdDIwIC1yaWdodCBhbXBDb25zZW50UmVzcG9uc2VTZW5kRGlzbWlzcyI+CiAgICAgICAgPGEgaHJlZj0iP3BhdGg9IyIgY2xhc3M9IiAtdXBwZXJjYXNlIGJ0bi1kZWZhdWx0ICIgb25jbGljaz0iJCgnLmNsb3NlLXJldmVhbC1tb2RhbDp2aXNpYmxlJykudHJpZ2dlcignY2xpY2snKTtyZXR1cm4gZmFsc2U7Ij5GZXJtZXI8L2E+CiAgICAgIDwvZGl2PgogICAgICA8Zm9ybSBpZD0iZW1haWxtc2dmcm1fbXVsdGlmb3JtUG9wdXBDb250YWluZXIiIGNsYXNzPSJjb25maXJtX2h0bWwiIHRhcmdldD0iaWZyYW1lIiBtZXRob2Q9InBvc3QiIGFjdGlvbj0iL2NvbmZpcm1hdGlvbi5odG1sIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ibGFiZWwiIGNsYXNzPSJsYWJlbGVtYWlsIiB2YWx1ZT0iQmVzdCBvZmZlciAoTmV3KSI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InNlY3Rpb24iIGNsYXNzPSJsYWJlbHNlY3Rpb24iIHZhbHVlPSJPY2Nhc2lvbiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImJyYW5kIiBjbGFzcz0iYnJhbmRlbWFpbCIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Im1vZGVsIiBjbGFzcz0ibW9kZWxlbWFpbCIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InllYXIiIGNsYXNzPSJ5ZWFyZW1haWwiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJnb29nbGVpZCIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Imdvb2dsZWlkZDJjbWVkaWEiIHZhbHVlPSIiPgoJCQkJCQkgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImFkd29yZHNjb25pZCIgdmFsdWU9IiI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJhZHdvcmRzbGFiZWxpZCIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImJpbmdjb25pZCIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImJpbmdhY3Rpb25pZCIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImJpbmdkb21haW5pZCIgdmFsdWU9IiI+CgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJhZHJvbGxBZHYiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJhZHJvbGxQaXgiIHZhbHVlPSIiPgoKICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZmFjZWJvb2tDb25JZCIgdmFsdWU9IiI+CgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJkb21haW4iIHZhbHVlPSJtYXVyYWlzYXV0by5jb20iPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJyZWZlcnJlciIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImRlcGFydG1lbnQiIHZhbHVlPSJORVciPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJsZWFkX2RlcGFydG1lbnQiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJpc2V4cHJlc3MiIGNsYXNzPSJpc2V4cHJlc3MiIHZhbHVlPSIwIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iaXNwcm9tbyIgdmFsdWU9IjAiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJpc2hvbWVwYWdlIiB2YWx1ZT0iMCI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InRlc3Rtb2RlIiBjbGFzcz0idGVzdG1vZGUiIHZhbHVlPSIwIj4KCiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImxlYWRUeXBlIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0icGFnZUlEIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iY3VycmVudFVSTCIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImlzQ29uZmlybVBvcHVwIiB2YWx1ZT0iIj4KCiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImNvbmZpcm1fZW1haWwiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJjb25maXJtX2ZpcnN0X25hbWUiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJjb25maXJtX2xhc3RfbmFtZSIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImNvbmZpcm1fcGhvbmVfbnVtYmVyIiB2YWx1ZT0iIj4KCiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImlzRnVsbFdpZHRoIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZGVhbGVyTmFtZSIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImJ1dHRvblBvc2l0aW9uIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iaXNNb2JpbGVOZXdWRFAiIHZhbHVlPSIxIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZnJvbUF1dG9BdWJhaW5lIiB2YWx1ZT0iIj4KCiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSJORVciIG5hbWU9InRleHRDYXJTZWN0aW9uVHlwZSIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJsYW5nIiB2YWx1ZT0iZnIiPgogICAgICA8L2Zvcm0+CiAgICAgIDxpZnJhbWUgd2lkdGg9IjEiIGhlaWdodD0iMSIgbmFtZT0iaWZyYW1lIiBmcmFtZWJvcmRlcj0iMCIgc3R5bGU9IndpZHRoOjFweDtoZWlnaHQ6MXB4OyI+PC9pZnJhbWU+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGlkPSJlbWFpbEZhaWxNZXNzYWdlX211bHRpZm9ybVBvcHVwQ29udGFpbmVyIiBjbGFzcz0icmV2ZWFsLW1vZGFsIGVtYWlsLWNvbnNlbnQtYm94IiBzdHlsZT0id2lkdGg6NjAlOyI+CiAgICAgIDxzcGFuIGNsYXNzPSJmYWlsIj5VbmUgZXJyZXVyIHMnZXN0IHByb2R1aXRlPC9zcGFuPgogICAgICA8cD5Ob3VzIG4nYXZvbnMgcGFzIHB1IGVudm95ZXIgdm90cmUgbWVzc2FnZS4gUydpbCB2b3VzIHBsYcOudCByYWZyYcOuY2hpciBldCBlc3NheWV6IMOgIG5vdXZlYXU8L3A+CiAgICAgIDxkaXYgY2xhc3M9ImNsb3NlLXJldmVhbC1tb2RhbCI+PGVtIGNsYXNzPSJmYSBmYS10aW1lcy1jaXJjbGUiPjwvZW0+PC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9Ii1wdDIwIC1yaWdodCBhbXBDb25zZW50UmVzcG9uc2VTZW5kRGlzbWlzcyI+CiAgICAgICAgPGlucHV0IHR5cGU9ImJ1dHRvbiIgY2xhc3M9IiAtdXBwZXJjYXNlIGJ0bi1kZWZhdWx0ICIgb25jbGljaz0iJCgnI2VtYWlsRmFpbE1lc3NhZ2UnKS50cmlnZ2VyKCdyZXZlYWw6Y2xvc2UnKTsiIHZhbHVlPSJGZXJtZXIiPgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgoKCgkJCQk8IS0tIE9POjpiMTkyNWMyZDNkM2E4ZDM4ZjY0YzRmMDgyNDM4NDkxMyAtLT4KCQkKPCEtLSBFTkQgbmV3IC0tPgoKPCEtLSBDUkVESVQgU0NPUkUgUE9QVVAgLS0+CgkJCgkJPGRpdiBpZD0iY3JlZGl0U2NvcmVQb3B1cENvbnRhaW5lciIgY2xhc3M9InJldmVhbC1tb2RhbCAiIHN0eWxlPSJ3aWR0aDozMjBweDtoZWlnaHQ6NjAwcHg7IiBkYXRhLWxhenlsb2FkaWQ9Im5ld2NhcnNfY3JlZGl0c2NvcmVwb3B1cGNvbnRhaW5lciI+CgkJCQoJCTwvZGl2PgoKCQk8IS0tIE9POjoyZDVmMmQzMmQwNzJjMGZjNDliYTljMmZkYWE3ZGY4ZiAtLT4KCgkJCgogICAgPGRpdiBpZD0iZW1haWxTdWNjZXNzTWVzc2FnZV9jcmVkaXRTY29yZVBvcHVwQ29udGFpbmVyIiBjbGFzcz0icmV2ZWFsLW1vZGFsIGVtYWlsLWNvbnNlbnQtYm94IiBzdHlsZT0id2lkdGg6NjAlOyI+CiAgICAgIDxkaXYgY2xhc3M9Imljb24tdGl0bGUiPgogICAgICAgIDwhLS0gPHNwYW4gY2xhc3M9InRpdGxlLWljb24gc3VjY2VzcyAtbWwwIj48L3NwYW4+IC0tPgogICAgICAgIDxzcGFuIGNsYXNzPSJ0aXRsZS10eHQiPlZvdHJlIGRlbWFuZGUgYSBiaWVuIMOpdMOpIGVudm95w6llITwvc3Bhbj4KICAgICAgPC9kaXY+CiAgICAgIDxwIGNsYXNzPSJkZWZhdWx0U3VjY2VzcyI+PGJyPk1lcmNpISBVbiBjb25zZWlsbGVyIGNvbW11bmlxdWVyYSBhdmVjIHZvdXMgcG91ciB2b3VzIGRvbm5lciBsZXMgZMOpdGFpbHMgc3VyIHZvdHJlIHBvdGVudGllbCBkZSBjcsOpZGl0LjwvcD4KICAgICAgPHAgY2xhc3M9InNlcnZpY2VTdWNjZXNzIiBzdHlsZT0iZGlzcGxheTpub25lOyI+PGJyPk1lcmNpISBVbiBjb25zZWlsbGVyIGNvbW11bmlxdWVyYSBhdmVjIHZvdXMgcG91ciB2b3VzIGRvbm5lciBsZXMgZMOpdGFpbHMgc3VyIHZvdHJlIHBvdGVudGllbCBkZSBjcsOpZGl0LjwvcD4KICAgICAgPCEtLSA8YSBjbGFzcz0iY2xvc2UtcmV2ZWFsLW1vZGFsIj4mIzIxNTs8L2E+IC0tPgogICAgICA8ZGl2IGNsYXNzPSJlbWFpbC1jb25zZW50LWJ0bnMgLXB0MjAgLXJpZ2h0IGFtcENvbnNlbnRSZXNwb25zZVNlbmREaXNtaXNzIj4KICAgICAgICA8YSBocmVmPSI\/cGF0aD0jIiBjbGFzcz0iIC11cHBlcmNhc2UgYnRuLWRlZmF1bHQgIiBvbmNsaWNrPSIkKCcuY2xvc2UtcmV2ZWFsLW1vZGFsOnZpc2libGUnKS50cmlnZ2VyKCdjbGljaycpO3JldHVybiBmYWxzZTsiPkZlcm1lcjwvYT4KICAgICAgPC9kaXY+CiAgICAgIDxmb3JtIGlkPSJlbWFpbG1zZ2ZybV9jcmVkaXRTY29yZVBvcHVwQ29udGFpbmVyIiBjbGFzcz0iY29uZmlybV9odG1sIiB0YXJnZXQ9ImlmcmFtZSIgbWV0aG9kPSJwb3N0IiBhY3Rpb249Ii9jb25maXJtYXRpb24uaHRtbCI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImxhYmVsIiBjbGFzcz0ibGFiZWxlbWFpbCIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InNlY3Rpb24iIGNsYXNzPSJsYWJlbHNlY3Rpb24iIHZhbHVlPSJPY2Nhc2lvbiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImJyYW5kIiBjbGFzcz0iYnJhbmRlbWFpbCIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Im1vZGVsIiBjbGFzcz0ibW9kZWxlbWFpbCIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InllYXIiIGNsYXNzPSJ5ZWFyZW1haWwiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJnb29nbGVpZCIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Imdvb2dsZWlkZDJjbWVkaWEiIHZhbHVlPSIiPgoJCQkJCQkgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImFkd29yZHNjb25pZCIgdmFsdWU9IiI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJhZHdvcmRzbGFiZWxpZCIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImJpbmdjb25pZCIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImJpbmdhY3Rpb25pZCIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImJpbmdkb21haW5pZCIgdmFsdWU9IiI+CgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJhZHJvbGxBZHYiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJhZHJvbGxQaXgiIHZhbHVlPSIiPgoKICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZmFjZWJvb2tDb25JZCIgdmFsdWU9IiI+CgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJkb21haW4iIHZhbHVlPSJtYXVyYWlzYXV0by5jb20iPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJyZWZlcnJlciIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImRlcGFydG1lbnQiIHZhbHVlPSJORVciPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJsZWFkX2RlcGFydG1lbnQiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJpc2V4cHJlc3MiIGNsYXNzPSJpc2V4cHJlc3MiIHZhbHVlPSIwIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iaXNwcm9tbyIgdmFsdWU9IjAiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJpc2hvbWVwYWdlIiB2YWx1ZT0iMCI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InRlc3Rtb2RlIiBjbGFzcz0idGVzdG1vZGUiIHZhbHVlPSIwIj4KCiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImxlYWRUeXBlIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0icGFnZUlEIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iY3VycmVudFVSTCIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImlzQ29uZmlybVBvcHVwIiB2YWx1ZT0iIj4KCiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImNvbmZpcm1fZW1haWwiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJjb25maXJtX2ZpcnN0X25hbWUiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJjb25maXJtX2xhc3RfbmFtZSIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImNvbmZpcm1fcGhvbmVfbnVtYmVyIiB2YWx1ZT0iIj4KCiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImlzRnVsbFdpZHRoIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZGVhbGVyTmFtZSIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImJ1dHRvblBvc2l0aW9uIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iaXNNb2JpbGVOZXdWRFAiIHZhbHVlPSIxIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZnJvbUF1dG9BdWJhaW5lIiB2YWx1ZT0iIj4KCiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSJORVciIG5hbWU9InRleHRDYXJTZWN0aW9uVHlwZSIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJsYW5nIiB2YWx1ZT0iZnIiPgogICAgICA8L2Zvcm0+CiAgICAgIDxpZnJhbWUgd2lkdGg9IjEiIGhlaWdodD0iMSIgbmFtZT0iaWZyYW1lIiBmcmFtZWJvcmRlcj0iMCIgc3R5bGU9IndpZHRoOjFweDtoZWlnaHQ6MXB4OyI+PC9pZnJhbWU+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGlkPSJlbWFpbEZhaWxNZXNzYWdlX2NyZWRpdFNjb3JlUG9wdXBDb250YWluZXIiIGNsYXNzPSJyZXZlYWwtbW9kYWwgZW1haWwtY29uc2VudC1ib3giIHN0eWxlPSJ3aWR0aDo2MCU7Ij4KICAgICAgPHNwYW4gY2xhc3M9ImZhaWwiPlVuZSBlcnJldXIgcydlc3QgcHJvZHVpdGU8L3NwYW4+CiAgICAgIDxwPk5vdXMgbidhdm9ucyBwYXMgcHUgZW52b3llciB2b3RyZSBtZXNzYWdlLiBTJ2lsIHZvdXMgcGxhw650IHJhZnJhw65jaGlyIGV0IGVzc2F5ZXogw6Agbm91dmVhdTwvcD4KICAgICAgPGRpdiBjbGFzcz0iY2xvc2UtcmV2ZWFsLW1vZGFsIj48ZW0gY2xhc3M9ImZhIGZhLXRpbWVzLWNpcmNsZSI+PC9lbT48L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0iLXB0MjAgLXJpZ2h0IGFtcENvbnNlbnRSZXNwb25zZVNlbmREaXNtaXNzIj4KICAgICAgICA8aW5wdXQgdHlwZT0iYnV0dG9uIiBjbGFzcz0iIC11cHBlcmNhc2UgYnRuLWRlZmF1bHQgIiBvbmNsaWNrPSIkKCcjZW1haWxGYWlsTWVzc2FnZScpLnRyaWdnZXIoJ3JldmVhbDpjbG9zZScpOyIgdmFsdWU9IkZlcm1lciI+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CgoKCQkJCTwhLS0gT086OmQ2NmY1ZDk0ODU5NzQyYzZhNTFmOGJhZDljMGRmYWUwIC0tPgoJCQo8IS0tIEVORCBDUkVESVQgU0NPUkUgUE9QVVAgLS0+Cgo8IS0tIENSRURJVCBTQ09SRSBDT05GSVJNIFBPUFVQIC0tPgoKPCEtLSBFTkQgQ1JFRElUIFNDT1JFIENPTkZJUk0gUE9QVVAgLS0+CgoJCQoJCTxkaXYgaWQ9ImNvbnRhY3Rwb3B1cCIgY2xhc3M9InJldmVhbC1tb2RhbCAiIHN0eWxlPSJ3aWR0aDo4MCU7IiBkYXRhLWxhenlsb2FkaWQ9Im5ld2NhcnNfY29udGFjdHBvcHVwIj4KCQkJCgkJPC9kaXY+CgoJCTwhLS0gT086Ojk2NGFjZTg5NGU5MWFlMmVhNjUzM2FjNmQ0NDY4OWM3IC0tPgoKCQkKCiAgICA8ZGl2IGlkPSJlbWFpbFN1Y2Nlc3NNZXNzYWdlX2NvbnRhY3Rwb3B1cCIgY2xhc3M9InJldmVhbC1tb2RhbCBlbWFpbC1jb25zZW50LWJveCIgc3R5bGU9IndpZHRoOjYwJTsiPgogICAgICA8ZGl2IGNsYXNzPSJpY29uLXRpdGxlIj4KICAgICAgICA8IS0tIDxzcGFuIGNsYXNzPSJ0aXRsZS1pY29uIHN1Y2Nlc3MgLW1sMCI+PC9zcGFuPiAtLT4KICAgICAgICA8c3BhbiBjbGFzcz0idGl0bGUtdHh0Ij5Wb3RyZSBtZXNzYWdlIGEgYmllbiDDqXTDqSBlbnZvecOpITwvc3Bhbj4KICAgICAgPC9kaXY+CiAgICAgIDxwIGNsYXNzPSJkZWZhdWx0U3VjY2VzcyI+PGJyPk1lcmNpISBVbiBtZW1icmUgZGUgbm90cmUgw6lxdWlwZSB2b3VzIGNvbnRhY3RlcmEgc291cyBwZXUuPC9wPgogICAgICA8cCBjbGFzcz0ic2VydmljZVN1Y2Nlc3MiIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij48YnI+TWVyY2khIFVuIG1lbWJyZSBkZSBub3RyZSDDqXF1aXBlIHZvdXMgY29udGFjdGVyYSBzb3VzIHBldS48L3A+CiAgICAgIDwhLS0gPGEgY2xhc3M9ImNsb3NlLXJldmVhbC1tb2RhbCI+JiMyMTU7PC9hPiAtLT4KICAgICAgPGRpdiBjbGFzcz0iZW1haWwtY29uc2VudC1idG5zIC1wdDIwIC1yaWdodCBhbXBDb25zZW50UmVzcG9uc2VTZW5kRGlzbWlzcyI+CiAgICAgICAgPGEgaHJlZj0iP3BhdGg9IyIgY2xhc3M9IiAtdXBwZXJjYXNlIGJ0bi1kZWZhdWx0ICIgb25jbGljaz0iJCgnLmNsb3NlLXJldmVhbC1tb2RhbDp2aXNpYmxlJykudHJpZ2dlcignY2xpY2snKTtyZXR1cm4gZmFsc2U7Ij5GZXJtZXI8L2E+CiAgICAgIDwvZGl2PgogICAgICA8Zm9ybSBpZD0iZW1haWxtc2dmcm1fY29udGFjdHBvcHVwIiBjbGFzcz0iY29uZmlybV9odG1sIiB0YXJnZXQ9ImlmcmFtZSIgbWV0aG9kPSJwb3N0IiBhY3Rpb249Ii9jb25maXJtYXRpb24uaHRtbCI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImxhYmVsIiBjbGFzcz0ibGFiZWxlbWFpbCIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InNlY3Rpb24iIGNsYXNzPSJsYWJlbHNlY3Rpb24iIHZhbHVlPSJPY2Nhc2lvbiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImJyYW5kIiBjbGFzcz0iYnJhbmRlbWFpbCIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Im1vZGVsIiBjbGFzcz0ibW9kZWxlbWFpbCIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InllYXIiIGNsYXNzPSJ5ZWFyZW1haWwiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJnb29nbGVpZCIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Imdvb2dsZWlkZDJjbWVkaWEiIHZhbHVlPSIiPgoJCQkJCQkgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImFkd29yZHNjb25pZCIgdmFsdWU9IiI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJhZHdvcmRzbGFiZWxpZCIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImJpbmdjb25pZCIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImJpbmdhY3Rpb25pZCIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImJpbmdkb21haW5pZCIgdmFsdWU9IiI+CgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJhZHJvbGxBZHYiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJhZHJvbGxQaXgiIHZhbHVlPSIiPgoKICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZmFjZWJvb2tDb25JZCIgdmFsdWU9IiI+CgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJkb21haW4iIHZhbHVlPSJtYXVyYWlzYXV0by5jb20iPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJyZWZlcnJlciIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImRlcGFydG1lbnQiIHZhbHVlPSJORVciPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJsZWFkX2RlcGFydG1lbnQiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJpc2V4cHJlc3MiIGNsYXNzPSJpc2V4cHJlc3MiIHZhbHVlPSIwIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iaXNwcm9tbyIgdmFsdWU9IjAiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJpc2hvbWVwYWdlIiB2YWx1ZT0iMCI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InRlc3Rtb2RlIiBjbGFzcz0idGVzdG1vZGUiIHZhbHVlPSIwIj4KCiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImxlYWRUeXBlIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0icGFnZUlEIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iY3VycmVudFVSTCIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImlzQ29uZmlybVBvcHVwIiB2YWx1ZT0iIj4KCiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImNvbmZpcm1fZW1haWwiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJjb25maXJtX2ZpcnN0X25hbWUiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJjb25maXJtX2xhc3RfbmFtZSIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImNvbmZpcm1fcGhvbmVfbnVtYmVyIiB2YWx1ZT0iIj4KCiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImlzRnVsbFdpZHRoIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZGVhbGVyTmFtZSIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImJ1dHRvblBvc2l0aW9uIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iaXNNb2JpbGVOZXdWRFAiIHZhbHVlPSIxIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZnJvbUF1dG9BdWJhaW5lIiB2YWx1ZT0iIj4KCiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSJORVciIG5hbWU9InRleHRDYXJTZWN0aW9uVHlwZSIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJsYW5nIiB2YWx1ZT0iZnIiPgogICAgICA8L2Zvcm0+CiAgICAgIDxpZnJhbWUgd2lkdGg9IjEiIGhlaWdodD0iMSIgbmFtZT0iaWZyYW1lIiBmcmFtZWJvcmRlcj0iMCIgc3R5bGU9IndpZHRoOjFweDtoZWlnaHQ6MXB4OyI+PC9pZnJhbWU+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGlkPSJlbWFpbEZhaWxNZXNzYWdlX2NvbnRhY3Rwb3B1cCIgY2xhc3M9InJldmVhbC1tb2RhbCBlbWFpbC1jb25zZW50LWJveCIgc3R5bGU9IndpZHRoOjYwJTsiPgogICAgICA8c3BhbiBjbGFzcz0iZmFpbCI+VW5lIGVycmV1ciBzJ2VzdCBwcm9kdWl0ZTwvc3Bhbj4KICAgICAgPHA+Tm91cyBuJ2F2b25zIHBhcyBwdSBlbnZveWVyIHZvdHJlIG1lc3NhZ2UuIFMnaWwgdm91cyBwbGHDrnQgcmFmcmHDrmNoaXIgZXQgZXNzYXlleiDDoCBub3V2ZWF1PC9wPgogICAgICA8ZGl2IGNsYXNzPSJjbG9zZS1yZXZlYWwtbW9kYWwiPjxlbSBjbGFzcz0iZmEgZmEtdGltZXMtY2lyY2xlIj48L2VtPjwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSItcHQyMCAtcmlnaHQgYW1wQ29uc2VudFJlc3BvbnNlU2VuZERpc21pc3MiPgogICAgICAgIDxpbnB1dCB0eXBlPSJidXR0b24iIGNsYXNzPSIgLXVwcGVyY2FzZSBidG4tZGVmYXVsdCAiIG9uY2xpY2s9IiQoJyNlbWFpbEZhaWxNZXNzYWdlJykudHJpZ2dlcigncmV2ZWFsOmNsb3NlJyk7IiB2YWx1ZT0iRmVybWVyIj4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KCgoJCQkJPCEtLSBPTzo6M2Q3ODU0Mjc0MTI1ZWE2OWIwMjQ1NzU2NDZhNjk4ZGMgLS0+CgkJCgoKPCEtLSBGSU5BTkNFIE1VTFRJU1RFUCBQT1BVUCBuZXcgLS0+CgkJCgkJPGRpdiBpZD0iZmluYW5jZU11bHRpc3RlcFBvcHVwQ29udGFpbmVyIiBjbGFzcz0icmV2ZWFsLW1vZGFsICIgc3R5bGU9IndpZHRoOjMyMHB4O2hlaWdodDo0OTVweDtwYWRkaW5nOjMwcHggMTBweCA4MHB4OyIgZGF0YS1sYXp5bG9hZGlkPSJuZXdjYXJzX2ZpbmFuY2VtdWx0aXN0ZXBwb3B1cGNvbnRhaW5lciI+CgkJCQoJCTwvZGl2PgoKCQk8IS0tIE9POjo0ZjRlMTU5ZWZhZWNlYWY5OWQwZjI4NWYwYjRkMDk4OSAtLT4KCgkJCgkJCjwhLS0gRU5EIG5ldyAtLT4KCjwhLS0gRklOQU5DRSBNVUxUSVNURVAgSU5TVEFOVCAtLT4KCjwhLS0gRU5EIEZJTkFOQ0UgTVVMVElTVEVQIElOU1RBTlQgLS0+Cgo8IS0tIENSRURJVCBCT09TVCBNVUxUSSAtLT4KCjwhLS0gRU5EIENSRURJVCBCT09TVCBNVUxUSSAtLT4KCjwhLS0gU0VDT05EIENIQU5DRSBQT1BVUCBuZXcgLS0+Cgo8IS0tIEVORCBuZXcgLS0+Cgo8IS0tIFJFVFVSTiBQT1BVUCBuZXcgLS0+Cgo8IS0tIEVORCBuZXcgLS0+Cgo8IS0tIEVYSVQgUE9QVVAgbmV3IC0tPgoKPCEtLSBFTkQgbmV3IC0tPgoKPCEtLSBCRVNUIFBSQUNUSUNFIFBPUFVQIG5ldyAtLT4KCjwhLS0gRU5EIG5ldyAtLT4KICAgICAgIAkJCgkJPGRpdiBpZD0icGF5bWVudENhbGN1bGF0b3JQb3B1cENvbnRhaW5lciIgY2xhc3M9InJldmVhbC1tb2RhbCAiIHN0eWxlPSJ3aWR0aDo4MiU7bWluLWhlaWdodDo3MzBweDttaW4td2lkdGg6MzUwcHg7IiBkYXRhLWxhenlsb2FkaWQ9Im5ld2NhcnNfcGF5bWVudGNhbGN1bGF0b3Jwb3B1cGNvbnRhaW5lciI+CgkJCQoJCTwvZGl2PgoKCQk8IS0tIE9POjpjZmEyYmVmZDdlY2EwODNhM2Y4N2E5NWJlMTlmOWU1NCAtLT4KCgkJCgkJCiAgICAgICAKICAgICAgPHNjcmlwdCBkYXRhLXNjb2RlcmVmPSIyMTExLUIiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBhc3luYz0idHJ1ZSI+PC9zY3JpcHQ+CjxzY3JpcHQgZGF0YS1zY29kZXJlZj0iMjExMS1CIiBzcmM9Imh0dHBzOi8vbWF1cmFpc2F1dG8uY29tL2pzL21hcHMuanMucGhwPyZhbXA7bGFuZz1mciIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBhc3luYz0idHJ1ZSI+PC9zY3JpcHQ+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSJORVciIGlkPSJkZWZhdWx0RGVwYXJ0bWVudCI+CiAgICAKCTwvZGl2Pg==","logs":"{\"result\":\"1\",\"error\":\"\",\"sources\":\"https:\\\/\\\/mauraisauto.com\\\/js_r\\\/resource.loader.fr.js?v=3&js=hVPRbtswDPyhJUG7YT_QIdhDOxTohj0atETbjGXRk6hk6dePbmDJTlPsIYh1pMjj8bQ7xN3hT8Jw3h7ip105GeaecAaP4Mk50K8LHjXuI3q5leBFA48MFsPH99fdaoj49csVaCH0wuyExqvIERxZksx5APLzt4PXc6RXbTEU8HJvk2jTgBEO593d9u7z9r4EltmFbdTcLAJqG_cdvHVlsEMHsROoXc7yeDIQrgfUBsLJdJsxedMtm41wHlSvB3AmOdB-71nQALG_TbDhMMxoix4DmSdlmYvzmEYVoxRdiHl6MQHEdM9gZyiemtXI2QzJi-VTJmBB8JeQy2Pae1MpF1sJtC35dolDNFUL19sNeEQoRAMPXNmzh4G0Ejmsmkx67Q4tKabfJb0y5W0b8lpnoU5vtg3U84lH9B2nspGWuXW6yzEjDbNg-E22RameZlQYomQOVslieBnijzTURc8W-ZENCHFZaCAvPzuKqyVkqyb181639rxER9uszh5rNcT0902V3vv3-EPR7phw-q0McoE20uHmzTzzpKqVN1i9sYiCuaHJ9turQadxMv3pQeujWfErBhzYLphk2GExVUHhL3G8bWRVLQp5_MDmSm0k04f_hYtpYo8ORdcy8Q_sFo82h2psFmbXu_PjJe8mLof4Dw&jsrpl=&wswidth=0&device=mobile&ua=Q0NCb3QvMi4wIChodHRwczovL2NvbW1vbmNyYXdsLm9yZy9mYXEvKQ==\"}"}