{"title":"PHRpdGxlPkZvcmQgbmV1ZnMgMjAyNSwgMjAyNiAmYW1wOyAyMDI3IMOgIEdhdGluZWF1IChwcsOocyBkJ090dGF3YSkgfCBDYXJsZSBGb3JkPC90aXRsZT4=","metas":"PG1ldGEgaXRlbXByb3A9Im5hbWUiIGNvbnRlbnQ9IiAgIj48bWV0YSBpdGVtcHJvcD0iZGVzY3JpcHRpb24iIGNvbnRlbnQ9IiI+","js_inline":"CgkoKGQpID0+IHsKCQljb25zdCBjZSA9IGQuY3JlYXRlRWxlbWVudDsKCQlsZXQgdXJsQ2F0QXJyID0gewoJCQknY2xhcml2b3kuY29tJyA6ICdDMDAwMicsCgkJCSdkZWFsZXItbGVhZHMuY2EnIDogJ0MwMDAzJywKCQkJJ3JvYWRzdGVyLmNvbS9yb2Fkc3RlcicgOiAnQzAwMDInLC8vRFdQLTEyMjgxCgkJCSdmemxuay5jb20vc2lnbmFscy5qcycgOiAnQzAwMDInLC8vRFdQLTEyMjg5CgkJCSdsaXZlY2hhdGluYy5jb20vdHJhY2tpbmcuanMnIDogJ0MwMDAzJywvL0RXUC0xMjMwMwoJCQkndGhlbGl2ZWNoYXRzb2Z0d2FyZS5jb20nIDogJ0MwMDAzJywvL0RXUC0xMjI5NwoJCQknY2FuYWRhLmRpZ2l0YWwtaW50ZXJ2aWV3LmNvbScgOiAnQzAwMDMnLC8vRFdQLTEyMzAwCgkJCSdzZGsuYXV0b3ZlcmlmeS5jb20nIDogJ0MwMDAzJywvL0RXUC0xMjMwMQoJCQknYW5hbHl0aWNzLmpzJyA6ICdDMDAwMicsLy9EV1AtMTIzMDkKCQkJJ2hzLXNjcmlwdHMuY29tJyA6ICdDMDAwNCcsLy9EV1AtMTIzMjAKCQkJJ21hcmtldGluZ2F1dG9tYXRpb24uc2VydmljZXMnIDogJ0MwMDA0JywvL0RXUC0xMjMyMgoJCQknbGVhZGZveC5jbycgOiAnQzAwMDQnLAoJCQknc3RhdGljLnVwdHJhY3MuY29tJyA6ICdDMDAwMycsLy9EV1AtMTIzNTQKIAkJCSdiYXQuYmluZy5jb20nIDogJ0MwMDAyJywvL0RXUC0xMjM1NAoJCQknZ3RhZy9qcycgOiAnQzAwMDInLAoJCQknc2QuanMnIDogJ0MwMDAxJywKCQkJJ3NkYS5qcycgOiAnQzAwMDEnLAoJCQknaWZyYW1lX2FwaScgOiAnQzAwMDEnLAoJCQkKCQl9OwoJCWxldCB1cmxDYXRSZWdleCA9ICcoJyArIE9iamVjdC5rZXlzKHVybENhdEFycikuam9pbignfCcpLnJlcGxhY2UoL1srPy5dL2csICdcJCYnKSArICcpJzsKCQlsZXQgY3VycmVudENvbnNlbnQgPSBnZXRDb25zZW50KCk7CgkJd2luZG93LnNjcmlwdFVybEFyciA9IFtdOwoJCWQuY3JlYXRlRWxlbWVudCA9IGZ1bmN0aW9uKC4uLmFyZ3MpIHsKCQkJY29uc3QgcyA9IGNlLmJpbmQoZCkoLi4uYXJncyksIHNhID0gcy5zZXRBdHRyaWJ1dGUuYmluZChzKTsKCQkJcy5zZXRBdHRyaWJ1dGUgPSBmdW5jdGlvbihuLCB2KSB7CgkJCQlpZihuID09PSAnc3JjJyAmJiB3aW5kb3cuc2NyaXB0VXJsQXJyLmluZGV4T2Yodi50b1N0cmluZygpKSA9PSAtMSkgewoJCQkJCWlmKChuZXcgUmVnRXhwKHVybENhdFJlZ2V4KSkudGVzdCh2KSl7CgkJCQkJCWZvcihrZXkgaW4gdXJsQ2F0QXJyKXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIAoJCQkJCQkJaWYgKChuZXcgUmVnRXhwKGtleSkpLnRlc3QodikpIHsKCQkJCQkJCQl3aW5kb3cuc2NyaXB0VXJsQXJyLnB1c2godi50b1N0cmluZygpKTsKCQkJCQkJCQlpZihrZXkgPT0gJ2d0YWcvanMnIHx8IGtleSA9PSAnYmF0LmJpbmcuY29tJyB8fCBrZXkgPT0gJ3NkLmpzJyB8fCBrZXkgPT0gJ3NkYS5qcycgfHwga2V5ID09ICdpZnJhbWVfYXBpJyl7CgkJCQkJCQkJCXNhKCdkYXRhLW90LWlnbm9yZScsIHRydWUpOwoJCQkJCQkJCQlzYSgndHlwZScsICd0ZXh0L2phdmFzY3JpcHQnKTsKCQkJCQkJCQl9IGVsc2UgaWYoY3VycmVudENvbnNlbnQgPT0gbnVsbCB8fCBjdXJyZW50Q29uc2VudC5pbmRleE9mKHVybENhdEFycltrZXldKSA9PSAtMSl7CgkJCQkJCQkJCXNhKCd0eXBlJywgJ3RleHQvcGxhaW4nKTsKCQkJCQkJCQkJc2EoJ2NsYXNzJywgJ29wdGFub24tY2F0ZWdvcnktJyArIHVybENhdEFycltrZXldKTsKCQkJCQkJCQl9CgkJCQkJCQkJYnJlYWs7CgkJCQkJCQl9CgkJCQkJCX0KCQkJCQl9CgkJCQl9CgkJCQlzYShuLCB2KTsKCQkJfQoJCQlyZXR1cm4gczsKCQl9CgkJZnVuY3Rpb24gZ2V0Q29uc2VudCgpewoJCQlsZXQgbmFtZSA9ICdkMmNfY29va2llX2NvbnNlbnQnICsgJz0nOwoJCQlsZXQgY2EgPSAoJycrZG9jdW1lbnQuY29va2llKS5zcGxpdCgnOycpOwoJCQlmb3IobGV0IGkgPSAwOyBpIDwgY2EubGVuZ3RoOyBpKyspIHsKCQkJCWxldCBjID0gY2FbaV07CgkJCQljID0gYy50cmltKCk7CgkJCQlpZiAoYy5pbmRleE9mKG5hbWUpID09IDApIHsKCQkJCQl0cnl7CgkJCQkJCWMgPSBkZWNvZGVVUklDb21wb25lbnQoIGMgKTsKCQkJCQl9IGNhdGNoKCBlICkKCQkJCQl7CgkJCQkJCWNvbnNvbGUubG9nKCBlICk7CgkJCQkJCXJldHVybiBudWxsOwoJCQkJCX0KCQkJCQlyZXR1cm4gYy5zdWJzdHJpbmcobmFtZS5sZW5ndGgsIGMubGVuZ3RoKTsKCQkJCX0KCQkJfQoJCQlyZXR1cm4gbnVsbDsKCQl9Cgl9KShkb2N1bWVudCk7CgoJZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignRE9NQ29udGVudExvYWRlZCcsIGZ1bmN0aW9uKCkgewoJLy8gTGlzdGVuIGZvciBjaGFuZ2VzIHRvIHRoZSBET00KCQlsZXQgb2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtdXRhdGlvbnMpIHsKCQkJbXV0YXRpb25zLmZvckVhY2goZnVuY3Rpb24obXV0YXRpb24pIHsKCQkJCWlmIChtdXRhdGlvbi5hZGRlZE5vZGVzICYmIG11dGF0aW9uLmFkZGVkTm9kZXMubGVuZ3RoID4gMCkgewoJCQkJCS8vIENoZWNrIGlmIG91ciBzY3JpcHQgaGFzIGJlZW4gYWRkZWQgdG8gdGhlIERPTQoJCQkJCWZvciAobGV0IGkgPSAwOyBpIDwgbXV0YXRpb24uYWRkZWROb2Rlcy5sZW5ndGg7IGkrKykgewoJCQkJCQlsZXQgbm9kZSA9IG11dGF0aW9uLmFkZGVkTm9kZXNbaV07CgkJCQkJCWlmIChub2RlLm5vZGVUeXBlID09PSAxICYmIG5vZGUudGFnTmFtZSA9PT0gJ1NDUklQVCcgJiYgbm9kZS5zcmMgJiYgbm9kZS5zcmMuaW5jbHVkZXMoJ2NhbmFkYS5kaWdpdGFsLWludGVydmlldy5jb20nKSAmJiB0eXBlb2YgT25lVHJ1c3QgIT09ICd1bmRlZmluZWQnKSB7CgkJCQkJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7CgkJCQkJCQkJdHJ5e0RpZ2l0YWxJbnRlcnZpZXcuTGF1bmNoZXIuZW5hYmxlTGF1bmNoUG9pbnRzKCk7fWNhdGNoKGUpe30KCQkJCQkJCX0sIDEwMDApOwoJCQkJCQl9CgkJCQkJfQoJCQkJfQoJCQl9KTsKCQl9KTsKCQkvLyBTdGFydCBvYnNlcnZpbmcgdGhlIGRvY3VtZW50IHdpdGggdGhlIGNvbmZpZ3VyZWQgcGFyYW1ldGVycwoJCW9ic2VydmVyLm9ic2VydmUoZG9jdW1lbnQuYm9keSwgeyBjaGlsZExpc3Q6IHRydWUsIHN1YnRyZWU6IHRydWUgfSk7CgkJb2JzZXJ2ZXIub2JzZXJ2ZShkb2N1bWVudC5oZWFkLCB7IGNoaWxkTGlzdDogdHJ1ZSwgc3VidHJlZTogdHJ1ZSB9KTsKCX0pOwoKLy9kYXRhLXNjb2RlcmVmPSJRUFEtMjEzNTU1NTUyNjYyMjUiCihmdW5jdGlvbigpe3ZhciBsYXN0V2lkdGg9MDt2YXIgZmlyc3RSdW49MTt2YXIgdGltZW91dD1mYWxzZTt0cnl7ZnVuY3Rpb24gaGlkZW1lKGVsKXtpZih0eXBlb2YgZWwuY2xhc3NMaXN0PT09J3VuZGVmaW5lZCcpcmV0dXJuO2VsLmNsYXNzTGlzdC5hZGQoJ2hpZGVtZScpO30KZnVuY3Rpb24gc2hvd21lKGVsKXtpZih0eXBlb2YgZWwuY2xhc3NMaXN0PT09J3VuZGVmaW5lZCcpcmV0dXJuO2VsLmNsYXNzTGlzdC5yZW1vdmUoJ2hpZGVtZScpO30KdmFyIHJlc3BvbnNpdmVTaXRlPWZ1bmN0aW9uKGV2ZW50KXt2YXIgc3c9d2luZG93LnNjcmVlbi53aWR0aD93aW5kb3cuc2NyZWVuLndpZHRoOndpbmRvdy5vdXRlcldpZHRoO3ZhciBvdz13aW5kb3cub3V0ZXJXaWR0aCxpdz13aW5kb3cuaW5uZXJXaWR0aDt2YXIgYnc9b3c8PTM2MCYmaXc+b3c\/aXc6b3c7dmFyIHdpZHRoPWJ3PnN3P2J3OnN3O2lmKHdpZHRoPD0zNjApe3dpZHRoPTk2MDt9CnZhciB2ZXJzaW9uPSh3aWR0aDw5NjApPydtb2JpbGUnOidkZXNrdG9wJzt2YXIgZWxzPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2JvZHkgPiAqJyk7dmFyIGlmcmFtZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbW9iaWxlU2l0ZScpO2lmKGxhc3RXaWR0aD09d2lkdGgpe3JldHVybiBmYWxzZTt9CmZvcihpIGluIGVscyl7aWYoIWVscy5oYXNPd25Qcm9wZXJ0eShpKSl7Y29udGludWU7fQpzd2l0Y2godmVyc2lvbil7Y2FzZSdtb2JpbGUnOmlmKGVsc1tpXT09PWlmcmFtZSl7c2hvd21lKGVsc1tpXSk7fWVsc2UgaWYoaWZyYW1lKXtoaWRlbWUoZWxzW2ldKTt9CmlmKGlmcmFtZSl7aWYoaWZyYW1lLnNyYz09J2Fib3V0OmJsYW5rJyl7aWZyYW1lLnNldEF0dHJpYnV0ZSgnc3JjJyxpZnJhbWUuZGF0YXNldFsnaW1nc3JjJ10pO30KaWZyYW1lLnNldEF0dHJpYnV0ZSgnc3R5bGUnLFsndG9wOjAnLCdkaXNwbGF5OmJsb2NrJywnbGVmdDowJywnd2lkdGg6Y2FsYygxMDB2dyAtICgxMDB2dyAtIDEwMCUpKScsJ2hlaWdodDoxMDAlJywnYm90dG9tOjAnLCdyaWdodDowJywncG9zaXRpb246YWJzb2x1dGUnLF0uam9pbignOycpKTtpZnJhbWUuc2V0QXR0cmlidXRlKCdjbGFzcycsJ29wdGFub24tY2F0ZWdvcnktQzAwMDEnKTtpZnJhbWUuc2V0QXR0cmlidXRlKCdkYXRhLW90LWlnbm9yZScsdHJ1ZSk7aWZyYW1lLnNldEF0dHJpYnV0ZSgnZGF0YS1jb29raWVjb25zZW50JywnaWdub3JlJyk7fQpicmVhaztjYXNlJ2Rlc2t0b3AnOmlmKGVsc1tpXT09PWlmcmFtZSloaWRlbWUoZWxzW2ldKTtlbHNlIHNob3dtZShlbHNbaV0pO2lmKGlmcmFtZSl7aWZyYW1lLnNldEF0dHJpYnV0ZSgnc3R5bGUnLFsnZGlzcGxheTogbm9uZScsJyddLmpvaW4oJzsnKSk7fQpicmVhazt9fQppZih2ZXJzaW9uPT0nZGVza3RvcCcpe2lmKGxhc3RXaWR0aD09d2lkdGgpcmV0dXJuO3NldFRpbWVvdXQoZnVuY3Rpb24oKXtpZih0eXBlb2YgalF1ZXJ5IT09J3VuZGVmaW5lZCcpalF1ZXJ5KHdpbmRvdykudHJpZ2dlcigncmVzaXplJyk7fSw1MDApO30KbGFzdFdpZHRoPXdpZHRoO30Kd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsZnVuY3Rpb24oKXtjbGVhclRpbWVvdXQodGltZW91dCk7dGltZW91dD1zZXRUaW1lb3V0KHJlc3BvbnNpdmVTaXRlLDIwMCl9KTt3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigiRE9NQ29udGVudExvYWRlZCIsZnVuY3Rpb24oKXt2YXIgcz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzdHlsZScpO3Muc2V0QXR0cmlidXRlKCd0eXBlJywndGV4dC9jc3MnKTtzLmlubmVySFRNTD0nLmhpZGVtZSB7IGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSAjbW9iaWxlU2l0ZSB7IGRpc3BsYXk6IG5vbmU7IH0nO2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQocyk7dmFyIGk9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaWZyYW1lJyk7dmFyIHRndD0naHR0cHM6Ly93d3cuY2FybGVmb3JkLmNvbS9lbWJlZGVyL3Byb2Nlc3MvZnI\/bmZyPTEnLnJlcGxhY2UoLyUyRi9pZywnLycpO3RndCs9KCh0Z3QuaW5kZXhPZignPycpPT09LTEpPyc\/JzpgJmApKyduZnI9MSZ3c3dpZHRoPScrd2luZG93LnNjcmVlbi53aWR0aDtsZXQgdXJsUGFyYW1zPW5ldyBVUkxTZWFyY2hQYXJhbXModGd0KTtsZXQgY291bnQ9MDtpZih1cmxQYXJhbXMhPT0ndW5kZWZpbmVkJyYmdXJsUGFyYW1zLmhhcygnbmZyJykpe2NvdW50PXVybFBhcmFtcy5nZXRBbGwoJ25mcicpLmxlbmd0aDt9CmlmKGNvdW50PDMpe2kuc2V0QXR0cmlidXRlKCdkYXRhLWltZ3NyYycsdGd0KTtpLnNldEF0dHJpYnV0ZSgnc3JjJywnYWJvdXQ6YmxhbmsnKTtpLnNldEF0dHJpYnV0ZSgnaWQnLCdtb2JpbGVTaXRlJyk7ZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpKTt9CnJlc3BvbnNpdmVTaXRlKCk7fSk7c2V0VGltZW91dChyZXNwb25zaXZlU2l0ZSwxMDAwKTt9Y2F0Y2goZSl7Y29uc29sZS5sb2coZSk7fX0pKCk7CgovKjwhW0NEQVRBWyovCi8vZGF0YS1zY29kZXJlZj0iUEFGLTE4NjQ1NjM2ODExODUxMjI4NSIKKGZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO3ZhciBTVE9SQUdFX0tFWT0nb25lcnJvcicsc3RvcmFnZT1bXSxlcnJvckNvbGxlY3Rpb25zPVtdLHBpeGVsQWRkcmVzcz0nL2ZyL2FqYXgvbG9nRXJyb3I\/d3N3aWR0aD0wJzt2YXIgc3RhcnRUaW1lPW5ldyBEYXRlKCk7bG9hZFN0b3JlZEVycm9ycygpO3ZhciBwaXhlbEZyYWdtZW50PXVuZGVmaW5lZDtmdW5jdGlvbiBnZXRQaXhlbEZyYWdtZW50KCl7aWYocGl4ZWxGcmFnbWVudCE9PXVuZGVmaW5lZClyZXR1cm4gcGl4ZWxGcmFnbWVudC5jbG9uZU5vZGUodHJ1ZSk7dmFyIGZyYWc9ZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpO3ZhciBkaXY9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7ZnJhZy5hcHBlbmRDaGlsZChkaXYpO3BpeGVsRnJhZ21lbnQ9ZnJhZy5jbG9uZU5vZGUodHJ1ZSk7cmV0dXJuIGZyYWc7fQpmdW5jdGlvbiBoYXNQaXhlbChkYXRhKXtyZXR1cm4hIWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2RpdltkYXRhLWxpbmU9IicrZGF0YS5saW5lKyciXVtkYXRhLW1zZz0iJytkYXRhLm1zZysnIl0nKTt9CmZ1bmN0aW9uIGNyZWF0ZVBpeGVsKGRhdGEpe2lmKGhhc1BpeGVsKGRhdGEpKXJldHVybiB0cnVlO3ZhciBmcmFnbWVudD1nZXRQaXhlbEZyYWdtZW50KCk7dmFyIGRpdj1mcmFnbWVudC5xdWVyeVNlbGVjdG9yKCdkaXYnKTt2YXIgaW50ZXJuYWw9aXNGaWxlSW50ZXJuYWwoZGF0YS5maWxlKT8xOjA7dmFyIG9iaj17bXNnOmRhdGEubXNnLGFnZW50Om5hdmlnYXRvci51c2VyQWdlbnQsdXJsOndpbmRvdy5sb2NhdGlvbi5ocmVmLGludGVybmFsOmludGVybmFsLHVpZDpnZXRVSUQoKSx0b3A6KChuZXcgRGF0ZSgpKS5nZXRUaW1lKCktc3RhcnRUaW1lLmdldFRpbWUoKSksbW91c2VPdmVyOmdldEN1cnJlbnRNb3VzZU92ZXJFbGVtZW50KCl9O3ZhciBhZGRFbGVtZW50PWZ1bmN0aW9uKCl7ZGl2LnNldEF0dHJpYnV0ZSgnZGF0YS1tc2cnLGRhdGEubXNnKTtkaXYuc2V0QXR0cmlidXRlKCdkYXRhLWxpbmUnLGRhdGEubGluZSk7ZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChmcmFnbWVudCk7fTthamF4KG9iaixmdW5jdGlvbih4aHIpe2NvbnNvbGUubG9nKCJJc3N1ZSBzZW5kaW5nIGVycm9yLCBzdGF0dXM6ICIreGhyLnN0YXR1cysiIGVycm9yOiAiK3hoci5yZXNwb25zZVRleHQpO2FkZEVsZW1lbnQoKTt9LGZ1bmN0aW9uKHhocil7YWRkRWxlbWVudCgpO2NvbnNvbGUubG9nKHhocik7fSk7fQpmdW5jdGlvbiBhamF4KGRhdGEsZXJyb3Isc3VjY2Vzcyl7dmFyIHhocj1uZXcgWE1MSHR0cFJlcXVlc3QoKTt4aHIub3BlbignUE9TVCcscGl4ZWxBZGRyZXNzLHRydWUpO3hoci5zZXRSZXF1ZXN0SGVhZGVyKCdDb250ZW50LVR5cGUnLCdhcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9VVRGLTgnKTt4aHIub25yZWFkeXN0YXRlY2hhbmdlPWZ1bmN0aW9uKCl7aWYoeGhyLnJlYWR5U3RhdGU9PT00KXtpZih4aHIuc3RhdHVzPT09MjAwKXtzdWNjZXNzKHhocik7fWVsc2V7ZXJyb3IoeGhyKTt9fX07eGhyLnNlbmQoSlNPTi5zdHJpbmdpZnkoZGF0YSkpO30KZnVuY3Rpb24gZ2V0Q3VycmVudE1vdXNlT3ZlckVsZW1lbnQoKXt2YXIgaG92ZXI9ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnOmhvdmVyJyk7aWYoaG92ZXI9PT11bmRlZmluZWR8fGhvdmVyLmxlbmd0aD09PTApe3JldHVybidub25lJzt9CmhvdmVyPWhvdmVyW2hvdmVyLmxlbmd0aC0xXS5jbG9uZU5vZGUoKTtyZXR1cm4gaG92ZXIub3V0ZXJIVE1MO30KZnVuY3Rpb24gaXNGaWxlSW50ZXJuYWwoZmlsZSl7cmV0dXJuKGZpbGUuaW5kZXhPZih3aW5kb3cubG9jYXRpb24uaG9zdG5hbWUpPi0xKTt9CmZ1bmN0aW9uIGdldFVJRCgpe2lmKHR5cGVvZiBhY3RpdmVVc2VyUHJvZmlsZU1uZyE9PSd1bmRlZmluZWQnKXtyZXR1cm4gYWN0aXZlVXNlclByb2ZpbGVNbmcudWlkO30KcmV0dXJuJyc7fQpmdW5jdGlvbiBsb2FkU3RvcmVkRXJyb3JzKCl7aWYodHlwZW9mIHNlc3Npb25TdG9yYWdlIT09J3VuZGVmaW5lZCcpe2lmKHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oU1RPUkFHRV9LRVkpKXtzdG9yYWdlPUpTT04ucGFyc2Uoc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShTVE9SQUdFX0tFWSkpO319CnJldHVybiBzdG9yYWdlO30KZnVuY3Rpb24gaGFzU2Vzc2lvbkVycm9yU2hvd24obXNnKXtsb2FkU3RvcmVkRXJyb3JzKCk7cmV0dXJuIGhhc0Vycm9yU2hvd24obXNnKTt9CmZ1bmN0aW9uIGhhc0Vycm9yU2hvd24obXNnKXtpZihzdG9yYWdlPT09dW5kZWZpbmVkKXJldHVybiBmYWxzZTtmb3IodmFyIGk9MDtpPHN0b3JhZ2UubGVuZ3RoO2krKyl7aWYoc3RvcmFnZVtpXT09PW1zZyl7cmV0dXJuIHRydWU7fX0KcmV0dXJuIGZhbHNlO30KaWYod2luZG93LmxvY2F0aW9uLnBhdGhuYW1lLmluZGV4T2YoJ2N1c3RvbS1wYWdlLXByZXZpZXcuaHRtbCcpPT09LTEpe3dpbmRvdy5vbmVycm9yPWZ1bmN0aW9uKG1zZyxmaWxlLGxpbmUsY29sLGVycm9yKXtjb25zb2xlLmxvZygnb25lcnJvciByYWlzZWQhJyk7aWYoIWhhc1Nlc3Npb25FcnJvclNob3duKG1zZykpe2Vycm9yQ29sbGVjdGlvbnMucHVzaCh7bXNnOm1zZyxsaW5lOmxpbmUsZmlsZTpmaWxlfSk7c3RvcmFnZS5wdXNoKG1zZyk7aWYoc2Vzc2lvblN0b3JhZ2UhPT11bmRlZmluZWQpe3Nlc3Npb25TdG9yYWdlLnNldEl0ZW0oU1RPUkFHRV9LRVksSlNPTi5zdHJpbmdpZnkoc3RvcmFnZSkpO319CmlmKGRvY3VtZW50Wydib2R5J10hPT1udWxsJiZkb2N1bWVudFsnYm9keSddIT09dW5kZWZpbmVkKXthZGRQaXhlbHNUb0RvbSgpO30KaWYoJ2xpdmUnPT0nbGl2ZScmJidVUyc9PSdDQScpe2d0YWcoJ2V2ZW50JywnZXhjZXB0aW9uJyx7J3NlbmRfdG8nOidHLVo1UThaNUM3S0YnLCdkZXNjcmlwdGlvbic6bXNnLCdmYXRhbCc6dHJ1ZX0pO319O30KaWYoL1dlYktpdC9pLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCkpe3ZhciBfdGltZXI9c2V0SW50ZXJ2YWwoZnVuY3Rpb24oKXtpZigvbG9hZGVkfGNvbXBsZXRlLy50ZXN0KGRvY3VtZW50LnJlYWR5U3RhdGUpKXtjbGVhckludGVydmFsKF90aW1lcik7b25sb2FkKCk7fX0sMTApO30KLypAY2Nfb24gQCovCi8qQGlmIChAX3dpbjMyKQoJCQkJZG9jdW1lbnQud3JpdGUoIjwiKyJzY3JpcHQgaWQ9X19pZV9vbmxvYWQgZGVmZXIgc3JjPWphdmFzY3JpcHQ6dm9pZCgwKT48XC9zY3JpcHQ+Iik7CgkJCQl2YXIgc2NyaXB0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIl9faWVfb25sb2FkIik7CgkJCQlzY3JpcHQub25yZWFkeXN0YXRlY2hhbmdlID0gZnVuY3Rpb24oKSB7CgkJCQkgIGlmICh0aGlzLnJlYWR5U3RhdGUgPT0gImNvbXBsZXRlIikgewoJCQkJCW9ubG9hZCgpOyAvLyBjYWxsIHRoZSBvbmxvYWQgaGFuZGxlcgoJCQkJICB9CgkJCQl9OwoJCQkvKkBlbmQgQCovCmZ1bmN0aW9uIGFkZFBpeGVsc1RvRG9tKCl7Zm9yKHZhciBpPTA7aTxlcnJvckNvbGxlY3Rpb25zLmxlbmd0aDtpKyspe2NvbnNvbGUubG9nKCdjcmVhdGVQaXhlbCcsZXJyb3JDb2xsZWN0aW9uc1tpXSk7fX0KZnVuY3Rpb24gb25sb2FkKCl7YWRkUGl4ZWxzVG9Eb20oKTt9CmZ1bmN0aW9uIF9jcmVhdGVTY3JpcHQodGV4dCl7dmFyIHM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7cy5hcHBlbmQodGV4dCk7cmV0dXJuIHM7fQp3aW5kb3cuZXJyb3JUZXN0cz17c3ludGF4OmZ1bmN0aW9uKCl7dmFyIHNjcmlwdD1fY3JlYXRlU2NyaXB0KCd9Jyk7ZG9jdW1lbnQuYm9keS5hcHBlbmQoc2NyaXB0KTt9LG9mTnVsbDpmdW5jdGlvbigpe3ZhciB0ZXh0PSd2YXIgYSA9IG51bGw7IHZhciBiID0gYS53aGF0Oyc7dmFyIHNjcmlwdD1fY3JlYXRlU2NyaXB0KHRleHQpO2RvY3VtZW50LmJvZHkuYXBwZW5kKHNjcmlwdCk7fSxpbnZhbGlkQXNzaWdubWVudDpmdW5jdGlvbigpe3ZhciBzY3JpcHQ9X2NyZWF0ZVNjcmlwdCgnMSA9IGZ1bmMoKTsnKTtkb2N1bWVudC5ib2R5LmFwcGVuZChzY3JpcHQpO319O3dpbmRvdy50cmFja0NvbnZlcnNpb249ZnVuY3Rpb24oKXtpZih0eXBlb2YgZ3RhZz09J3VuZGVmaW5lZCcpcmV0dXJuLTE7aWYoIXdpbmRvdy5kMmNfYXdjSWR8fCF3aW5kb3cuZDJjX2F3Y0xhYmVsKXJldHVybi0zO2lmKGRlcGxveW1lbnRUeXBlLnRvTG93ZXJDYXNlKCk9PSdsaXZlJyYmJ1VTJz09J0NBJyl7Z3RhZygnZXZlbnQnLCdjb252ZXJzaW9uJyx7J3NlbmRfdG8nOmQyY19hd2NJZCsnLycrZDJjX2F3Y0xhYmVsfSk7fWVsc2V7Y29uc29sZS5sb2coImd0YWcoJ2V2ZW50JywnY29udmVyc2lvbicsIHsgJ3NlbmRfdG8nOiAiK2QyY19hd2NJZCsnLycrZDJjX2F3Y0xhYmVsKyIgfSk7Iik7fX19KSgpOwovKl1dPiovCgovKjwhW0NEQVRBWyovCi8vZGF0YS1zY29kZXJlZj0iUEFGLTE4NjQ1NjM2ODExODUxMjI4NSIKKGZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO3ZhciBTVE9SQUdFX0tFWT0nb25lcnJvcicsc3RvcmFnZT1bXSxlcnJvckNvbGxlY3Rpb25zPVtdLHBpeGVsQWRkcmVzcz0nL2ZyL2FqYXgvbG9nRXJyb3I\/d3N3aWR0aD0wJzt2YXIgc3RhcnRUaW1lPW5ldyBEYXRlKCk7bG9hZFN0b3JlZEVycm9ycygpO3ZhciBwaXhlbEZyYWdtZW50PXVuZGVmaW5lZDtmdW5jdGlvbiBnZXRQaXhlbEZyYWdtZW50KCl7aWYocGl4ZWxGcmFnbWVudCE9PXVuZGVmaW5lZClyZXR1cm4gcGl4ZWxGcmFnbWVudC5jbG9uZU5vZGUodHJ1ZSk7dmFyIGZyYWc9ZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpO3ZhciBkaXY9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7ZnJhZy5hcHBlbmRDaGlsZChkaXYpO3BpeGVsRnJhZ21lbnQ9ZnJhZy5jbG9uZU5vZGUodHJ1ZSk7cmV0dXJuIGZyYWc7fQpmdW5jdGlvbiBoYXNQaXhlbChkYXRhKXtyZXR1cm4hIWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2RpdltkYXRhLWxpbmU9IicrZGF0YS5saW5lKyciXVtkYXRhLW1zZz0iJytkYXRhLm1zZysnIl0nKTt9CmZ1bmN0aW9uIGNyZWF0ZVBpeGVsKGRhdGEpe2lmKGhhc1BpeGVsKGRhdGEpKXJldHVybiB0cnVlO3ZhciBmcmFnbWVudD1nZXRQaXhlbEZyYWdtZW50KCk7dmFyIGRpdj1mcmFnbWVudC5xdWVyeVNlbGVjdG9yKCdkaXYnKTt2YXIgaW50ZXJuYWw9aXNGaWxlSW50ZXJuYWwoZGF0YS5maWxlKT8xOjA7dmFyIG9iaj17bXNnOmRhdGEubXNnLGFnZW50Om5hdmlnYXRvci51c2VyQWdlbnQsdXJsOndpbmRvdy5sb2NhdGlvbi5ocmVmLGludGVybmFsOmludGVybmFsLHVpZDpnZXRVSUQoKSx0b3A6KChuZXcgRGF0ZSgpKS5nZXRUaW1lKCktc3RhcnRUaW1lLmdldFRpbWUoKSksbW91c2VPdmVyOmdldEN1cnJlbnRNb3VzZU92ZXJFbGVtZW50KCl9O3ZhciBhZGRFbGVtZW50PWZ1bmN0aW9uKCl7ZGl2LnNldEF0dHJpYnV0ZSgnZGF0YS1tc2cnLGRhdGEubXNnKTtkaXYuc2V0QXR0cmlidXRlKCdkYXRhLWxpbmUnLGRhdGEubGluZSk7ZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChmcmFnbWVudCk7fTthamF4KG9iaixmdW5jdGlvbih4aHIpe2NvbnNvbGUubG9nKCJJc3N1ZSBzZW5kaW5nIGVycm9yLCBzdGF0dXM6ICIreGhyLnN0YXR1cysiIGVycm9yOiAiK3hoci5yZXNwb25zZVRleHQpO2FkZEVsZW1lbnQoKTt9LGZ1bmN0aW9uKHhocil7YWRkRWxlbWVudCgpO2NvbnNvbGUubG9nKHhocik7fSk7fQpmdW5jdGlvbiBhamF4KGRhdGEsZXJyb3Isc3VjY2Vzcyl7dmFyIHhocj1uZXcgWE1MSHR0cFJlcXVlc3QoKTt4aHIub3BlbignUE9TVCcscGl4ZWxBZGRyZXNzLHRydWUpO3hoci5zZXRSZXF1ZXN0SGVhZGVyKCdDb250ZW50LVR5cGUnLCdhcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9VVRGLTgnKTt4aHIub25yZWFkeXN0YXRlY2hhbmdlPWZ1bmN0aW9uKCl7aWYoeGhyLnJlYWR5U3RhdGU9PT00KXtpZih4aHIuc3RhdHVzPT09MjAwKXtzdWNjZXNzKHhocik7fWVsc2V7ZXJyb3IoeGhyKTt9fX07eGhyLnNlbmQoSlNPTi5zdHJpbmdpZnkoZGF0YSkpO30KZnVuY3Rpb24gZ2V0Q3VycmVudE1vdXNlT3ZlckVsZW1lbnQoKXt2YXIgaG92ZXI9ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnOmhvdmVyJyk7aWYoaG92ZXI9PT11bmRlZmluZWR8fGhvdmVyLmxlbmd0aD09PTApe3JldHVybidub25lJzt9CmhvdmVyPWhvdmVyW2hvdmVyLmxlbmd0aC0xXS5jbG9uZU5vZGUoKTtyZXR1cm4gaG92ZXIub3V0ZXJIVE1MO30KZnVuY3Rpb24gaXNGaWxlSW50ZXJuYWwoZmlsZSl7cmV0dXJuKGZpbGUuaW5kZXhPZih3aW5kb3cubG9jYXRpb24uaG9zdG5hbWUpPi0xKTt9CmZ1bmN0aW9uIGdldFVJRCgpe2lmKHR5cGVvZiBhY3RpdmVVc2VyUHJvZmlsZU1uZyE9PSd1bmRlZmluZWQnKXtyZXR1cm4gYWN0aXZlVXNlclByb2ZpbGVNbmcudWlkO30KcmV0dXJuJyc7fQpmdW5jdGlvbiBsb2FkU3RvcmVkRXJyb3JzKCl7aWYodHlwZW9mIHNlc3Npb25TdG9yYWdlIT09J3VuZGVmaW5lZCcpe2lmKHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oU1RPUkFHRV9LRVkpKXtzdG9yYWdlPUpTT04ucGFyc2Uoc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShTVE9SQUdFX0tFWSkpO319CnJldHVybiBzdG9yYWdlO30KZnVuY3Rpb24gaGFzU2Vzc2lvbkVycm9yU2hvd24obXNnKXtsb2FkU3RvcmVkRXJyb3JzKCk7cmV0dXJuIGhhc0Vycm9yU2hvd24obXNnKTt9CmZ1bmN0aW9uIGhhc0Vycm9yU2hvd24obXNnKXtpZihzdG9yYWdlPT09dW5kZWZpbmVkKXJldHVybiBmYWxzZTtmb3IodmFyIGk9MDtpPHN0b3JhZ2UubGVuZ3RoO2krKyl7aWYoc3RvcmFnZVtpXT09PW1zZyl7cmV0dXJuIHRydWU7fX0KcmV0dXJuIGZhbHNlO30KaWYod2luZG93LmxvY2F0aW9uLnBhdGhuYW1lLmluZGV4T2YoJ2N1c3RvbS1wYWdlLXByZXZpZXcuaHRtbCcpPT09LTEpe3dpbmRvdy5vbmVycm9yPWZ1bmN0aW9uKG1zZyxmaWxlLGxpbmUsY29sLGVycm9yKXtjb25zb2xlLmxvZygnb25lcnJvciByYWlzZWQhJyk7aWYoIWhhc1Nlc3Npb25FcnJvclNob3duKG1zZykpe2Vycm9yQ29sbGVjdGlvbnMucHVzaCh7bXNnOm1zZyxsaW5lOmxpbmUsZmlsZTpmaWxlfSk7c3RvcmFnZS5wdXNoKG1zZyk7aWYoc2Vzc2lvblN0b3JhZ2UhPT11bmRlZmluZWQpe3Nlc3Npb25TdG9yYWdlLnNldEl0ZW0oU1RPUkFHRV9LRVksSlNPTi5zdHJpbmdpZnkoc3RvcmFnZSkpO319CmlmKGRvY3VtZW50Wydib2R5J10hPT1udWxsJiZkb2N1bWVudFsnYm9keSddIT09dW5kZWZpbmVkKXthZGRQaXhlbHNUb0RvbSgpO30KaWYoJ2xpdmUnPT0nbGl2ZScmJidVUyc9PSdDQScpe2d0YWcoJ2V2ZW50JywnZXhjZXB0aW9uJyx7J3NlbmRfdG8nOidHLVo1UThaNUM3S0YnLCdkZXNjcmlwdGlvbic6bXNnLCdmYXRhbCc6dHJ1ZX0pO319O30KaWYoL1dlYktpdC9pLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCkpe3ZhciBfdGltZXI9c2V0SW50ZXJ2YWwoZnVuY3Rpb24oKXtpZigvbG9hZGVkfGNvbXBsZXRlLy50ZXN0KGRvY3VtZW50LnJlYWR5U3RhdGUpKXtjbGVhckludGVydmFsKF90aW1lcik7b25sb2FkKCk7fX0sMTApO30KLypAY2Nfb24gQCovCi8qQGlmIChAX3dpbjMyKQoJCQkJZG9jdW1lbnQud3JpdGUoIjwiKyJzY3JpcHQgaWQ9X19pZV9vbmxvYWQgZGVmZXIgc3JjPWphdmFzY3JpcHQ6dm9pZCgwKT48XC9zY3JpcHQ+Iik7CgkJCQl2YXIgc2NyaXB0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIl9faWVfb25sb2FkIik7CgkJCQlzY3JpcHQub25yZWFkeXN0YXRlY2hhbmdlID0gZnVuY3Rpb24oKSB7CgkJCQkgIGlmICh0aGlzLnJlYWR5U3RhdGUgPT0gImNvbXBsZXRlIikgewoJCQkJCW9ubG9hZCgpOyAvLyBjYWxsIHRoZSBvbmxvYWQgaGFuZGxlcgoJCQkJICB9CgkJCQl9OwoJCQkvKkBlbmQgQCovCmZ1bmN0aW9uIGFkZFBpeGVsc1RvRG9tKCl7Zm9yKHZhciBpPTA7aTxlcnJvckNvbGxlY3Rpb25zLmxlbmd0aDtpKyspe2NvbnNvbGUubG9nKCdjcmVhdGVQaXhlbCcsZXJyb3JDb2xsZWN0aW9uc1tpXSk7fX0KZnVuY3Rpb24gb25sb2FkKCl7YWRkUGl4ZWxzVG9Eb20oKTt9CmZ1bmN0aW9uIF9jcmVhdGVTY3JpcHQodGV4dCl7dmFyIHM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7cy5hcHBlbmQodGV4dCk7cmV0dXJuIHM7fQp3aW5kb3cuZXJyb3JUZXN0cz17c3ludGF4OmZ1bmN0aW9uKCl7dmFyIHNjcmlwdD1fY3JlYXRlU2NyaXB0KCd9Jyk7ZG9jdW1lbnQuYm9keS5hcHBlbmQoc2NyaXB0KTt9LG9mTnVsbDpmdW5jdGlvbigpe3ZhciB0ZXh0PSd2YXIgYSA9IG51bGw7IHZhciBiID0gYS53aGF0Oyc7dmFyIHNjcmlwdD1fY3JlYXRlU2NyaXB0KHRleHQpO2RvY3VtZW50LmJvZHkuYXBwZW5kKHNjcmlwdCk7fSxpbnZhbGlkQXNzaWdubWVudDpmdW5jdGlvbigpe3ZhciBzY3JpcHQ9X2NyZWF0ZVNjcmlwdCgnMSA9IGZ1bmMoKTsnKTtkb2N1bWVudC5ib2R5LmFwcGVuZChzY3JpcHQpO319O3dpbmRvdy50cmFja0NvbnZlcnNpb249ZnVuY3Rpb24oKXtpZih0eXBlb2YgZ3RhZz09J3VuZGVmaW5lZCcpcmV0dXJuLTE7aWYoIXdpbmRvdy5kMmNfYXdjSWR8fCF3aW5kb3cuZDJjX2F3Y0xhYmVsKXJldHVybi0zO2lmKGRlcGxveW1lbnRUeXBlLnRvTG93ZXJDYXNlKCk9PSdsaXZlJyYmJ1VTJz09J0NBJyl7Z3RhZygnZXZlbnQnLCdjb252ZXJzaW9uJyx7J3NlbmRfdG8nOmQyY19hd2NJZCsnLycrZDJjX2F3Y0xhYmVsfSk7fWVsc2V7Y29uc29sZS5sb2coImd0YWcoJ2V2ZW50JywnY29udmVyc2lvbicsIHsgJ3NlbmRfdG8nOiAiK2QyY19hd2NJZCsnLycrZDJjX2F3Y0xhYmVsKyIgfSk7Iik7fX19KSgpOwovKl1dPiovCgovL2RhdGEtc2NvZGVyZWY9IlFQUS0yMTM1NTU1NTI2NjIyNSIKKGZ1bmN0aW9uKCl7dmFyIGxhc3RXaWR0aD0wO3ZhciBmaXJzdFJ1bj0xO3ZhciB0aW1lb3V0PWZhbHNlO3RyeXtmdW5jdGlvbiBoaWRlbWUoZWwpe2lmKHR5cGVvZiBlbC5jbGFzc0xpc3Q9PT0ndW5kZWZpbmVkJylyZXR1cm47ZWwuY2xhc3NMaXN0LmFkZCgnaGlkZW1lJyk7fQpmdW5jdGlvbiBzaG93bWUoZWwpe2lmKHR5cGVvZiBlbC5jbGFzc0xpc3Q9PT0ndW5kZWZpbmVkJylyZXR1cm47ZWwuY2xhc3NMaXN0LnJlbW92ZSgnaGlkZW1lJyk7fQp2YXIgcmVzcG9uc2l2ZVNpdGU9ZnVuY3Rpb24oZXZlbnQpe3ZhciBzdz13aW5kb3cuc2NyZWVuLndpZHRoP3dpbmRvdy5zY3JlZW4ud2lkdGg6d2luZG93Lm91dGVyV2lkdGg7dmFyIG93PXdpbmRvdy5vdXRlcldpZHRoLGl3PXdpbmRvdy5pbm5lcldpZHRoO3ZhciBidz1vdzw9MzYwJiZpdz5vdz9pdzpvdzt2YXIgd2lkdGg9Ync+c3c\/Ync6c3c7aWYod2lkdGg8PTM2MCl7d2lkdGg9OTYwO30KdmFyIHZlcnNpb249KHdpZHRoPDk2MCk\/J21vYmlsZSc6J2Rlc2t0b3AnO3ZhciBlbHM9ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnYm9keSA+IConKTt2YXIgaWZyYW1lPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdtb2JpbGVTaXRlJyk7aWYobGFzdFdpZHRoPT13aWR0aCl7cmV0dXJuIGZhbHNlO30KZm9yKGkgaW4gZWxzKXtpZighZWxzLmhhc093blByb3BlcnR5KGkpKXtjb250aW51ZTt9CnN3aXRjaCh2ZXJzaW9uKXtjYXNlJ21vYmlsZSc6aWYoZWxzW2ldPT09aWZyYW1lKXtzaG93bWUoZWxzW2ldKTt9ZWxzZSBpZihpZnJhbWUpe2hpZGVtZShlbHNbaV0pO30KaWYoaWZyYW1lKXtpZihpZnJhbWUuc3JjPT0nYWJvdXQ6YmxhbmsnKXtpZnJhbWUuc2V0QXR0cmlidXRlKCdzcmMnLGlmcmFtZS5kYXRhc2V0WydpbWdzcmMnXSk7fQppZnJhbWUuc2V0QXR0cmlidXRlKCdzdHlsZScsWyd0b3A6MCcsJ2Rpc3BsYXk6YmxvY2snLCdsZWZ0OjAnLCd3aWR0aDpjYWxjKDEwMHZ3IC0gKDEwMHZ3IC0gMTAwJSkpJywnaGVpZ2h0OjEwMCUnLCdib3R0b206MCcsJ3JpZ2h0OjAnLCdwb3NpdGlvbjphYnNvbHV0ZScsXS5qb2luKCc7JykpO2lmcmFtZS5zZXRBdHRyaWJ1dGUoJ2NsYXNzJywnb3B0YW5vbi1jYXRlZ29yeS1DMDAwMScpO2lmcmFtZS5zZXRBdHRyaWJ1dGUoJ2RhdGEtb3QtaWdub3JlJyx0cnVlKTtpZnJhbWUuc2V0QXR0cmlidXRlKCdkYXRhLWNvb2tpZWNvbnNlbnQnLCdpZ25vcmUnKTt9CmJyZWFrO2Nhc2UnZGVza3RvcCc6aWYoZWxzW2ldPT09aWZyYW1lKWhpZGVtZShlbHNbaV0pO2Vsc2Ugc2hvd21lKGVsc1tpXSk7aWYoaWZyYW1lKXtpZnJhbWUuc2V0QXR0cmlidXRlKCdzdHlsZScsWydkaXNwbGF5OiBub25lJywnJ10uam9pbignOycpKTt9CmJyZWFrO319CmlmKHZlcnNpb249PSdkZXNrdG9wJyl7aWYobGFzdFdpZHRoPT13aWR0aClyZXR1cm47c2V0VGltZW91dChmdW5jdGlvbigpe2lmKHR5cGVvZiBqUXVlcnkhPT0ndW5kZWZpbmVkJylqUXVlcnkod2luZG93KS50cmlnZ2VyKCdyZXNpemUnKTt9LDUwMCk7fQpsYXN0V2lkdGg9d2lkdGg7fQp3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicmVzaXplIixmdW5jdGlvbigpe2NsZWFyVGltZW91dCh0aW1lb3V0KTt0aW1lb3V0PXNldFRpbWVvdXQocmVzcG9uc2l2ZVNpdGUsMjAwKX0pO3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJET01Db250ZW50TG9hZGVkIixmdW5jdGlvbigpe3ZhciBzPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3N0eWxlJyk7cy5zZXRBdHRyaWJ1dGUoJ3R5cGUnLCd0ZXh0L2NzcycpO3MuaW5uZXJIVE1MPScuaGlkZW1lIHsgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9ICNtb2JpbGVTaXRlIHsgZGlzcGxheTogbm9uZTsgfSc7ZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChzKTt2YXIgaT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpZnJhbWUnKTt2YXIgdGd0PSdodHRwczovL3d3dy5jYXJsZWZvcmQuY29tL2VtYmVkZXIvcHJvY2Vzcy9mcj9uZnI9MScucmVwbGFjZSgvJTJGL2lnLCcvJyk7dGd0Kz0oKHRndC5pbmRleE9mKCc\/Jyk9PT0tMSk\/Jz8nOmAmYCkrJ25mcj0xJndzd2lkdGg9Jyt3aW5kb3cuc2NyZWVuLndpZHRoO2xldCB1cmxQYXJhbXM9bmV3IFVSTFNlYXJjaFBhcmFtcyh0Z3QpO2xldCBjb3VudD0wO2lmKHVybFBhcmFtcyE9PSd1bmRlZmluZWQnJiZ1cmxQYXJhbXMuaGFzKCduZnInKSl7Y291bnQ9dXJsUGFyYW1zLmdldEFsbCgnbmZyJykubGVuZ3RoO30KaWYoY291bnQ8Myl7aS5zZXRBdHRyaWJ1dGUoJ2RhdGEtaW1nc3JjJyx0Z3QpO2kuc2V0QXR0cmlidXRlKCdzcmMnLCdhYm91dDpibGFuaycpO2kuc2V0QXR0cmlidXRlKCdpZCcsJ21vYmlsZVNpdGUnKTtkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGkpO30KcmVzcG9uc2l2ZVNpdGUoKTt9KTtzZXRUaW1lb3V0KHJlc3BvbnNpdmVTaXRlLDEwMDApO31jYXRjaChlKXtjb25zb2xlLmxvZyhlKTt9fSkoKTsKCgkoKGQpID0+IHsKCQljb25zdCBjZSA9IGQuY3JlYXRlRWxlbWVudDsKCQlsZXQgdXJsQ2F0QXJyID0gewoJCQknY2xhcml2b3kuY29tJyA6ICdDMDAwMicsCgkJCSdkZWFsZXItbGVhZHMuY2EnIDogJ0MwMDAzJywKCQkJJ3JvYWRzdGVyLmNvbS9yb2Fkc3RlcicgOiAnQzAwMDInLC8vRFdQLTEyMjgxCgkJCSdmemxuay5jb20vc2lnbmFscy5qcycgOiAnQzAwMDInLC8vRFdQLTEyMjg5CgkJCSdsaXZlY2hhdGluYy5jb20vdHJhY2tpbmcuanMnIDogJ0MwMDAzJywvL0RXUC0xMjMwMwoJCQkndGhlbGl2ZWNoYXRzb2Z0d2FyZS5jb20nIDogJ0MwMDAzJywvL0RXUC0xMjI5NwoJCQknY2FuYWRhLmRpZ2l0YWwtaW50ZXJ2aWV3LmNvbScgOiAnQzAwMDMnLC8vRFdQLTEyMzAwCgkJCSdzZGsuYXV0b3ZlcmlmeS5jb20nIDogJ0MwMDAzJywvL0RXUC0xMjMwMQoJCQknYW5hbHl0aWNzLmpzJyA6ICdDMDAwMicsLy9EV1AtMTIzMDkKCQkJJ2hzLXNjcmlwdHMuY29tJyA6ICdDMDAwNCcsLy9EV1AtMTIzMjAKCQkJJ21hcmtldGluZ2F1dG9tYXRpb24uc2VydmljZXMnIDogJ0MwMDA0JywvL0RXUC0xMjMyMgoJCQknbGVhZGZveC5jbycgOiAnQzAwMDQnLAoJCQknc3RhdGljLnVwdHJhY3MuY29tJyA6ICdDMDAwMycsLy9EV1AtMTIzNTQKIAkJCSdiYXQuYmluZy5jb20nIDogJ0MwMDAyJywvL0RXUC0xMjM1NAoJCQknZ3RhZy9qcycgOiAnQzAwMDInLAoJCQknc2QuanMnIDogJ0MwMDAxJywKCQkJJ3NkYS5qcycgOiAnQzAwMDEnLAoJCQknaWZyYW1lX2FwaScgOiAnQzAwMDEnLAoJCQkKCQl9OwoJCWxldCB1cmxDYXRSZWdleCA9ICcoJyArIE9iamVjdC5rZXlzKHVybENhdEFycikuam9pbignfCcpLnJlcGxhY2UoL1srPy5dL2csICdcJCYnKSArICcpJzsKCQlsZXQgY3VycmVudENvbnNlbnQgPSBnZXRDb25zZW50KCk7CgkJd2luZG93LnNjcmlwdFVybEFyciA9IFtdOwoJCWQuY3JlYXRlRWxlbWVudCA9IGZ1bmN0aW9uKC4uLmFyZ3MpIHsKCQkJY29uc3QgcyA9IGNlLmJpbmQoZCkoLi4uYXJncyksIHNhID0gcy5zZXRBdHRyaWJ1dGUuYmluZChzKTsKCQkJcy5zZXRBdHRyaWJ1dGUgPSBmdW5jdGlvbihuLCB2KSB7CgkJCQlpZihuID09PSAnc3JjJyAmJiB3aW5kb3cuc2NyaXB0VXJsQXJyLmluZGV4T2Yodi50b1N0cmluZygpKSA9PSAtMSkgewoJCQkJCWlmKChuZXcgUmVnRXhwKHVybENhdFJlZ2V4KSkudGVzdCh2KSl7CgkJCQkJCWZvcihrZXkgaW4gdXJsQ2F0QXJyKXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIAoJCQkJCQkJaWYgKChuZXcgUmVnRXhwKGtleSkpLnRlc3QodikpIHsKCQkJCQkJCQl3aW5kb3cuc2NyaXB0VXJsQXJyLnB1c2godi50b1N0cmluZygpKTsKCQkJCQkJCQlpZihrZXkgPT0gJ2d0YWcvanMnIHx8IGtleSA9PSAnYmF0LmJpbmcuY29tJyB8fCBrZXkgPT0gJ3NkLmpzJyB8fCBrZXkgPT0gJ3NkYS5qcycgfHwga2V5ID09ICdpZnJhbWVfYXBpJyl7CgkJCQkJCQkJCXNhKCdkYXRhLW90LWlnbm9yZScsIHRydWUpOwoJCQkJCQkJCQlzYSgndHlwZScsICd0ZXh0L2phdmFzY3JpcHQnKTsKCQkJCQkJCQl9IGVsc2UgaWYoY3VycmVudENvbnNlbnQgPT0gbnVsbCB8fCBjdXJyZW50Q29uc2VudC5pbmRleE9mKHVybENhdEFycltrZXldKSA9PSAtMSl7CgkJCQkJCQkJCXNhKCd0eXBlJywgJ3RleHQvcGxhaW4nKTsKCQkJCQkJCQkJc2EoJ2NsYXNzJywgJ29wdGFub24tY2F0ZWdvcnktJyArIHVybENhdEFycltrZXldKTsKCQkJCQkJCQl9CgkJCQkJCQkJYnJlYWs7CgkJCQkJCQl9CgkJCQkJCX0KCQkJCQl9CgkJCQl9CgkJCQlzYShuLCB2KTsKCQkJfQoJCQlyZXR1cm4gczsKCQl9CgkJZnVuY3Rpb24gZ2V0Q29uc2VudCgpewoJCQlsZXQgbmFtZSA9ICdkMmNfY29va2llX2NvbnNlbnQnICsgJz0nOwoJCQlsZXQgY2EgPSAoJycrZG9jdW1lbnQuY29va2llKS5zcGxpdCgnOycpOwoJCQlmb3IobGV0IGkgPSAwOyBpIDwgY2EubGVuZ3RoOyBpKyspIHsKCQkJCWxldCBjID0gY2FbaV07CgkJCQljID0gYy50cmltKCk7CgkJCQlpZiAoYy5pbmRleE9mKG5hbWUpID09IDApIHsKCQkJCQl0cnl7CgkJCQkJCWMgPSBkZWNvZGVVUklDb21wb25lbnQoIGMgKTsKCQkJCQl9IGNhdGNoKCBlICkKCQkJCQl7CgkJCQkJCWNvbnNvbGUubG9nKCBlICk7CgkJCQkJCXJldHVybiBudWxsOwoJCQkJCX0KCQkJCQlyZXR1cm4gYy5zdWJzdHJpbmcobmFtZS5sZW5ndGgsIGMubGVuZ3RoKTsKCQkJCX0KCQkJfQoJCQlyZXR1cm4gbnVsbDsKCQl9Cgl9KShkb2N1bWVudCk7CgoJZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignRE9NQ29udGVudExvYWRlZCcsIGZ1bmN0aW9uKCkgewoJLy8gTGlzdGVuIGZvciBjaGFuZ2VzIHRvIHRoZSBET00KCQlsZXQgb2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtdXRhdGlvbnMpIHsKCQkJbXV0YXRpb25zLmZvckVhY2goZnVuY3Rpb24obXV0YXRpb24pIHsKCQkJCWlmIChtdXRhdGlvbi5hZGRlZE5vZGVzICYmIG11dGF0aW9uLmFkZGVkTm9kZXMubGVuZ3RoID4gMCkgewoJCQkJCS8vIENoZWNrIGlmIG91ciBzY3JpcHQgaGFzIGJlZW4gYWRkZWQgdG8gdGhlIERPTQoJCQkJCWZvciAobGV0IGkgPSAwOyBpIDwgbXV0YXRpb24uYWRkZWROb2Rlcy5sZW5ndGg7IGkrKykgewoJCQkJCQlsZXQgbm9kZSA9IG11dGF0aW9uLmFkZGVkTm9kZXNbaV07CgkJCQkJCWlmIChub2RlLm5vZGVUeXBlID09PSAxICYmIG5vZGUudGFnTmFtZSA9PT0gJ1NDUklQVCcgJiYgbm9kZS5zcmMgJiYgbm9kZS5zcmMuaW5jbHVkZXMoJ2NhbmFkYS5kaWdpdGFsLWludGVydmlldy5jb20nKSAmJiB0eXBlb2YgT25lVHJ1c3QgIT09ICd1bmRlZmluZWQnKSB7CgkJCQkJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7CgkJCQkJCQkJdHJ5e0RpZ2l0YWxJbnRlcnZpZXcuTGF1bmNoZXIuZW5hYmxlTGF1bmNoUG9pbnRzKCk7fWNhdGNoKGUpe30KCQkJCQkJCX0sIDEwMDApOwoJCQkJCQl9CgkJCQkJfQoJCQkJfQoJCQl9KTsKCQl9KTsKCQkvLyBTdGFydCBvYnNlcnZpbmcgdGhlIGRvY3VtZW50IHdpdGggdGhlIGNvbmZpZ3VyZWQgcGFyYW1ldGVycwoJCW9ic2VydmVyLm9ic2VydmUoZG9jdW1lbnQuYm9keSwgeyBjaGlsZExpc3Q6IHRydWUsIHN1YnRyZWU6IHRydWUgfSk7CgkJb2JzZXJ2ZXIub2JzZXJ2ZShkb2N1bWVudC5oZWFkLCB7IGNoaWxkTGlzdDogdHJ1ZSwgc3VidHJlZTogdHJ1ZSB9KTsKCX0pOwoKLyo8IVtDREFUQVsqLwovL2RhdGEtc2NvZGVyZWY9IlpaWi00MTU1NjQ4Igp2YXIgY3VycmVudFNpdGVJRD0xMzE7dmFyIGQyY19nYUFjY291bnRzPXsiYWxsIjpbXSwiaW50ZXJuYWwiOltdfTt2YXIgZDJjX2F3Y0lkPSdBVy05ODA2MTI4MzYnO3ZhciBkMmNfYXdjTGFiZWw9Jy1sRVRDSVQ3NmdzUTVPM0wwd00nO3ZhciBsZWdhY3lfZ2E9ZmFsc2U7d2luZG93LmRhdGFMYXllcj13aW5kb3cuZGF0YUxheWVyfHxbXTtmdW5jdGlvbiBndGFnKCl7ZGF0YUxheWVyLnB1c2goYXJndW1lbnRzKTt9Cmd0YWcoJ2pzJyxuZXcgRGF0ZSgpKTtkMmNfZ2FBY2NvdW50cy5hbGwucHVzaCgnRy1aNVE4WjVDN0tGJyk7ZDJjX2dhQWNjb3VudHMuYWxsLnB1c2goJ0ctV0RKRVFNUUIxRCcpO2lmKGQyY19hd2NJZCl7ZDJjX2dhQWNjb3VudHMuYWxsLnB1c2goZDJjX2F3Y0lkKTt9CihkMmNfZ2FBY2NvdW50cy5hbGx8fFtdKS5tYXAoZnVuY3Rpb24oaWQpe2d0YWcoJ2NvbmZpZycsaWQseydzZW5kX3BhZ2Vfdmlldyc6ZmFsc2UsJ2xpbmtlcic6eydkb21haW5zJzpKU09OLnBhcnNlKGF0b2IoIlcxMD0iKSksJ2Nvb2tpZV9kb21haW4nOid3d3cuY2FybGVmb3JkLmNvbSd9fSk7fSk7Ci8qXV0+Ki8KCi8qPCFbQ0RBVEFbKi8KLy9kYXRhLXNjb2RlcmVmPSJGTFQtMTU2NjQ1ODg5OTY0NTM0MTE1Mzg2Igp2YXIgZG9jUmVhZHlBcnI9W107dmFyIHBhZ2U9Ik5FV0NBUlMiO3ZhciBmYkNoYXRSZWY9e307dmFyIGRlcGxveW1lbnRUeXBlPSdsaXZlJzt2YXIgY3VycmVudFNpdGVJRD0xMzE7dmFyIGN1cnJlbnREZWFsZXJJRD0xNjc2O3ZhciBnYVR5cGU9J2d0YWcnO3ZhciBhbGxDYW1wYWlnbnM9W1siQ2FybGVmb3JkLmNvbSIsIkdvb2dsZSIsIk5ldWYiLCIyOTciXSxbImNhcmxlZm9yZC5jb20iLCJDb3VycmllbHMtcmVsYW5jZSIsIk5ldWZzIiwiNDg2Il0sWyJjYXJsZWZvcmQuY29tIiwiQ291cnJpZWxzLXJlbGFuY2UiLCJPY2Nhc2lvbiIsIjQ4NyJdLFsiQ2FybGVmb3JkLmNvbSIsIkZhY2Vib29rIiwiUmVjaWJsYWdlIiwiNjUyIl0sWyJjYXJsZWZvcmQuY29tIiwiQ291cnJpZWxzLXJlbGFuY2UiLCJUb3V0ZXMiLCI3MDEiXSxbImNhcmxlZm9yZC5jb20iLCJDb3VycmllbHMtcmVsYW5jZSIsIk5ldWYtMzAtam91cnMiLCI3MTEiXSxbImNhcmxlZm9yZC5jb20iLCJDb3VycmllbHMtcmVsYW5jZSIsIk9jY2FzaW9uLTMwLWpvdXJzIiwiNzEyIl0sWyJjYXJsZWZvcmQuY29tIiwiQ291cnJpZWxzLXJlbGFuY2UiLCJOZXVmLTYwLWpvdXJzIiwiNzEzIl0sWyJjYXJsZWZvcmQuY29tIiwiQ291cnJpZWxzLXJlbGFuY2UiLCJPY2Nhc2lvbi02MC1qb3VycyIsIjcxNCJdLFsiY2FybGVmb3JkLmNvbSIsIkNvdXJyaWVscy1yZWxhbmNlIiwiTmV1Zi05MC1qb3VycyIsIjcxNSJdLFsiY2FybGVmb3JkLmNvbSIsIkNvdXJyaWVscy1yZWxhbmNlIiwiT2NjYXNpb24tOTAtam91cnMiLCI3MTYiXSxbIkNhcmxlZm9yZC5jb20iLCJHb29nbGUiLCJSZWNpYmxhZ2UiLCI5MDAiXSxbIkNhcmxlZm9yZC5jb20iLCJGYWNlYm9vayIsIkFwcGxpY2F0aW9uIiwiMTE2MyJdLFsiQ2FybGVmb3JkLmNvbSIsIkdvb2dsZSIsIlZpZGVvIiwiMTE5MyJdLFsiQ2FybGVmb3JkLmNvbSIsIkdvb2dsZSIsIk90dGF3YS1qb3VyIiwiMTI3NSJdLFsiY2FybGVmb3JkLmNvbSIsIlNFTSIsIkFnZW5jeSIsIjMyOTUiXSxbIkNhcmxlZm9yZC5jb20iLCJCaW5nIiwiQmluZyIsIjQwMzgiXSxbImNhcmxlZm9yZC5jb20iLCJUcmFkZXIiLCJSZXRhcmdldGluZyIsIjQzMDMiXSxbIkNhcmxlZm9yZC5jb20iLCJHb29nbGUiLCJPY2Nhc2lvbiIsIjEzMTc3Il0sWyJDYXJsZWZvcmQuY29tIiwiR29vZ2xlIiwiTmV1Zi1jb21tZXJjaWFsIiwiMTM3NDQiXSxbIkNhcmxlZm9yZC5jb20iLCJHb29nbGUiLCJPY2Nhc2lvbi1vdHRhd2EiLCIxNDc0NSJdLFsiQ2FybGVmb3JkLmNvbSIsIkZhY2Vib29rIiwiTmV1ZiIsIjE4MjI1Il0sWyJDYXJsZWZvcmQuY29tIiwiRmFjZWJvb2siLCJOZXVmLWNvbW1lcmNpYXV4IiwiMTgyMjYiXSxbIkNhcmxlZm9yZC5jb20iLCJGYWNlYm9vayIsIk9jY2FzaW9uIiwiMTkyNjQiXSxbIkNhcmxlZm9yZC5jb20iLCJHb29nbGUiLCJWbGEtbmV1ZiIsIjE5OTQ2Il0sWyJDYXJsZWZvcmQuY29tIiwiR29vZ2xlIiwiVmxhLW9jY2FzaW9uIiwiMjAwOTUiXSxbIkNhcmxlZm9yZC5jb20iLCJCaW5nIiwiTmV1ZiIsIjI5OTg2Il0sWyJDYXJsZWZvcmQuY29tIiwiRmFjZWJvb2siLCJOZXVmLWNhdGFsb2d1ZSIsIjMyMDQzIl0sWyJDYXJsZWZvcmQuY29tIiwiR29vZ2xlIiwiWW91dHViZSIsIjMyMjc3Il0sWyJDYXJsZWZvcmQuY29tIiwiQmluZyIsIlJlY2libGFnZSIsIjM0MTUxIl1dCnZhciByZXRhcmdldGluZ0NhbXBhaWducz1bWyJDYXJsZWZvcmQuY29tIiwiQ2FybGVmb3JkLmNvbSIsIkZhY2Vib29rIiwiRmFjZWJvb2siLCJSZWNpYmxhZ2UiLCJSZWNpYmxhZ2UiXSxbIkNhcmxlZm9yZC5jb20iLCJDYXJsZWZvcmQuY29tIiwiR29vZ2xlIiwiR29vZ2xlIiwiUmVjaWJsYWdlIiwiUmVjaWJsYWdlIl0sWyJDYXJsZWZvcmQuY29tIiwiQ2FybGVmb3JkLmNvbSIsIkJpbmciLCJCaW5nIiwiUmVjaWJsYWdlIiwiUmVjaWJsYWdlIl0sWyJDYXJsZWZvcmQuY29tIiwiQ2FybGVmb3JkLmNvbSIsIkJpbmciLCJCaW5nIiwiUmVjaWJsYWdlIiwiUmVjaWJsYWdlIl1dCnZhciBBSUN1cnJlbnRDb25maWdJRD0wO3ZhciBBSUlEUGVyTmV3Q2Fyc0ZyZW5jaD1uZXcgQXJyYXkoKTt2YXIgQUlJRFBlck5ld0NhcnNFbmdsaXNoPW5ldyBBcnJheSgpO2Z1bmN0aW9uIHBhcnNlUXVlcnkoc3RyKXtpZihzdHIubGVuZ3RoPDEpcmV0dXJue30KdmFyIHZhcnM9e30sdjt2YXIgcXM9c3RyLnNwbGl0KCcmJyk7Zm9yKHZhciBpPTA7aTxxcy5sZW5ndGg7aSsrKXt2PWV4cGxvZGUocXNbaV0sJz0nLDEpO3ZhcnNbdlswXV09dlsxXTt9CnJldHVybiB2YXJzO30KZnVuY3Rpb24gZGVjb2RlU3RyaW5nKHN0cmluZyx0aW1lcyl7aWYodGltZXM9PSIifHx0aW1lcz09InVuZGVmaW5lZCIpe3RpbWVzPTE7fQpmb3IoaT0wO2k8dGltZXM7aSsrKXtzdHJpbmc9ZGVjb2RlVVJJQ29tcG9uZW50KHN0cmluZyk7fQpyZXR1cm4gc3RyaW5nO30KZnVuY3Rpb24gZGVjb2RlSFRNTChlbmNvZGVkKXtpZih0eXBlb2YgZW5jb2RlZCE9PSdzdHJpbmcnKXJldHVybiBlbmNvZGVkO3ZhciBlbD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZXh0YXJlYScpO2VsLmlubmVySFRNTD1lbmNvZGVkO3JldHVybiBlbC52YWx1ZTt9CmZ1bmN0aW9uIGV4cGxvZGUoc3RyLHNlcGFyYXRvcixsaW1pdCl7c3RyPXN0ci5zcGxpdChzZXBhcmF0b3IpO2lmKHN0ci5sZW5ndGg8PWxpbWl0KXJldHVybiBzdHI7dmFyIHJldD1zdHIuc3BsaWNlKDAsbGltaXQpO3JldC5wdXNoKHN0ci5qb2luKHNlcGFyYXRvcikpO3JldHVybiByZXQ7fQpmdW5jdGlvbiBnZXRVcmxWYXJzKCl7dmFyIHFzPSh3aW5kb3cubG9jYXRpb24uc2VhcmNoKS5zdWJzdHJpbmcoMSk7cmV0dXJuIHBhcnNlUXVlcnkocXMpO30KZnVuY3Rpb24gZ2V0Q29va2llKGNfbmFtZSl7cmV0dXJuIENvb2tpZXMuZ2V0KGNfbmFtZSk7fQpmdW5jdGlvbiBnZXRDb29raWUoY19uYW1lKXt2YXIgY192YWx1ZT1kb2N1bWVudC5jb29raWU7dmFyIGNfc3RhcnQ9Y192YWx1ZS5pbmRleE9mKCIgIitjX25hbWUrIj0iKTtpZihjX3N0YXJ0PT0tMSl7Y19zdGFydD1jX3ZhbHVlLmluZGV4T2YoY19uYW1lKyI9Iik7fQppZihjX3N0YXJ0PT0tMSl7Y192YWx1ZT1udWxsO31lbHNle2Nfc3RhcnQ9Y192YWx1ZS5pbmRleE9mKCI9IixjX3N0YXJ0KSsxO3ZhciBjX2VuZD1jX3ZhbHVlLmluZGV4T2YoIjsiLGNfc3RhcnQpO2lmKGNfZW5kPT0tMSl7Y19lbmQ9Y192YWx1ZS5sZW5ndGg7fQpjX3ZhbHVlPXVuZXNjYXBlKGNfdmFsdWUuc3Vic3RyaW5nKGNfc3RhcnQsY19lbmQpKTt9CnJldHVybiBjX3ZhbHVlO30KZnVuY3Rpb24gc2V0Q29va2llKGNfbmFtZSx2YWx1ZSxleGRheXMpe2lzQ29va2llQWxsb3dlZChjX25hbWUsZnVuY3Rpb24oYWxsb3dlZCl7aWYoIWFsbG93ZWQpe3JldHVybiBDb29raWVzLnNldChjX25hbWUsdmFsdWUsZXhkYXlzLCcvJyk7bG9nQ29va2llKGNfbmFtZSx2YWx1ZSxleGRheXMpO3JldHVybjt9CnZhciBleGRhdGU9bmV3IERhdGUoKTtleGRhdGUuc2V0RGF0ZShleGRhdGUuZ2V0RGF0ZSgpK2V4ZGF5cyk7dmFyIGNfdmFsdWU9ZXNjYXBlKHZhbHVlKSsoKGV4ZGF5cz09bnVsbCk\/IiI6IjsgZXhwaXJlcz0iK2V4ZGF0ZS50b1VUQ1N0cmluZygpKSsiOyBwYXRoPS8iO2RvY3VtZW50LmNvb2tpZT1jX25hbWUrIj0iK2NfdmFsdWU7fSk7fQpmdW5jdGlvbiBsb2dDb29raWUobmFtZSx2YWx1ZSxleHBpcmVzLHRyaWVzKXtpZih0eXBlb2YgdHJpZXM9PT0ndW5kZWZpbmVkJyl7dHJpZXM9NTt9CmlmKHR5cGVvZiB3aW5kb3cuQ29va2llTG9nZ2VyPT09J3VuZGVmaW5lZCcpe2lmKHRyaWVzKXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7bG9nQ29va2llKG5hbWUsdmFsdWUsZXhwaXJlcyx0cmllcy0xKTt9LDEwMDApO319ZWxzZXt3aW5kb3cuQ29va2llTG9nZ2VyLmxvZyhuYW1lLHZhbHVlLGV4cGlyZXMpO319CmZ1bmN0aW9uIGlzQ29va2llQWxsb3dlZChuYW1lLGNhbGxiYWNrLHRyaWVzKXtpZih0eXBlb2Ygd2luZG93LkNvb2tpZUNvbnNlbnQ9PT0ndW5kZWZpbmVkJyl7aWYodHlwZW9mIHRyaWVzPT09J3VuZGVmaW5lZCcpe3RyaWVzPTU7fQppZih0cmllcyl7c2V0VGltZW91dChmdW5jdGlvbigpe2lzQ29va2llQWxsb3dlZChuYW1lLGNhbGxiYWNrLHRyaWVzLTEpO30sMTAwMCk7fX1lbHNle3dpbmRvdy5Db29raWVDb25zZW50LmlzQ29va2llQWxsb3dlZChuYW1lLGNhbGxiYWNrKTt9fQpmdW5jdGlvbiBnYVBhZ2VWaWV3KHBwKXsoZDJjX2dhQWNjb3VudHMuYWxsfHxbXSkubWFwKGZ1bmN0aW9uKGlkKXtsZXQgZD17cGFnZV9wYXRoOnBwfTtpZihkZXBsb3ltZW50VHlwZSE9J2xpdmUnfHwnVVMnIT0nQ0EnKXtjb25zb2xlLmxvZygnZ3RhZycsJ2NvbmZpZycsaWQsZCkKcmV0dXJuO30KZ3RhZygnY29uZmlnJyxpZCxkKTt9KTt9O2Z1bmN0aW9uIGdhNFBhZ2VWaWV3KHBwKXtpZihkZXBsb3ltZW50VHlwZSE9J2xpdmUnfHwnVVMnIT0nQ0EnKXtyZXR1cm47fQpndGFnKCdzZXQnLHsncGFnZV9wYXRoJzpwcH0pO2d0YWcoJ2V2ZW50JywncGFnZV92aWV3Jyx7J3NlbmRfdG8nOidHLVdESkVRTVFCMUQnfSk7fQpmdW5jdGlvbiBnZXRHYUNsaWVudElkKCl7cmV0dXJuKCgodHlwZW9mIHdpbmRvdy5nYT09PSdvYmplY3QnJiZ3aW5kb3cuZ2EhPT1udWxsKXx8dHlwZW9mIHdpbmRvdy5nYT09PSdmdW5jdGlvbicpJiZ0eXBlb2YgZ2FbJ2dldEFsbCddPT09J2Z1bmN0aW9uJyk\/Z2EuZ2V0QWxsKClbMF0uZ2V0KCdjbGllbnRJZCcpOicnO30KZnVuY3Rpb24gZ2FUcmFjayhhYSxjLGEsbCx2KXtsZXQgYWM9W107Y29uc3QgY3M9ZGVwbG95bWVudFR5cGUhPSdsaXZlJ3x8J1VTJyE9J0NBJztjb25zdCBjaD0obyxkKT0+dHlwZW9mIG8hPT0ndW5kZWZpbmVkJz9vOmQ7YWE9Y2goYWEsJycpO2M9Y2goYywnJyk7YT1jaChhLCcnKTtsPWNoKGwsJycpO3Y9Y2godiwxKTtpZihhYT09J2ludGVybmFsJyl7YWM9ZDJjX2dhQWNjb3VudHMuaW50ZXJuYWw7fWVsc2UgaWYoYWEubGVuZ3RoJiYvXihifGN8ZClcLl90cmFja0V2ZW50Ly50ZXN0KGFhKSYmdHlwZW9mIGQyY19nYUFjY291bnRzW2FhWzBdXSE9J3VuZGVmaW5lZCcpe2FjLnB1c2goZDJjX2dhQWNjb3VudHNbYWFbMF1dKTt9CmlmKGFjLmxlbmd0aCl7YWMubWFwKChpZCk9Pntjb25zdCBkPXtzZW5kX3RvOmlkLGV2ZW50X2FjdGlvbjphLGV2ZW50X2NhdGVnb3J5OmMsZXZlbnRfbGFiZWw6bCx2YWx1ZTp2fTtpZihjcyl7Y29uc29sZS5sb2coYEdBVFJBQ0stR1RBRy1TRU5ELVRPWyR7aWR9XTpgLCdldmVudCcsYSxkKTtyZXR1cm47fQpndGFnKCdldmVudCcsYSxkKTt9KTt9ZWxzZXtjb25zdCBkPXtldmVudF9hY3Rpb246YSxldmVudF9jYXRlZ29yeTpjLGV2ZW50X2xhYmVsOmwsdmFsdWU6dn07aWYoY3Mpe2NvbnNvbGUubG9nKCdHQVRSQUNLLUdUQUctTk8tU0VORC1UTzonLCdldmVudCcsYSxkKTt9ZWxzZXtndGFnKCdldmVudCcsYSxkKTt9fX07ZnVuY3Rpb24gb25Db25maXJtU3VibWl0KGV2ZW50KXtyZXR1cm4gdHJ1ZTt9CmZ1bmN0aW9uIHNldFNlc3Npb25Db29raWUoY19uYW1lLHZhbHVlKXt2YXIgZXhkYXlzPW51bGw7dmFyIGNfdmFsdWU9ZXNjYXBlKHZhbHVlKSsiO2V4cGlyZXM9MDtwYXRoPS8iO2RvY3VtZW50LmNvb2tpZT1jX25hbWUrIj0iK2NfdmFsdWU7bG9nQ29va2llKGNfbmFtZSk7fQpmdW5jdGlvbiBpbml0TENJKHBhcmFtcyxuKXtpZihuPjIwKXJldHVybiBuO3ZhciBuPShuKT9uOjA7aWYodHlwZW9mIExDX0FQST09J3VuZGVmaW5lZCd8fHR5cGVvZiBMQ19JbnZpdGU9PSd1bmRlZmluZWQnKXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7aW5pdExDSShwYXJhbXMsKytuKTt9LDUwMCk7cmV0dXJuO30KaWYodHlwZW9mIExDX0FQSSE9J3VuZGVmaW5lZCcmJnR5cGVvZiBMQ19JbnZpdGUhPSd1bmRlZmluZWQnJiZwYXJhbXMpe3JldHVybiBMQ19BUEkuc2V0X2N1c3RvbV92YXJpYWJsZXMocGFyYW1zKTt9fQpmdW5jdGlvbiBzYW5pdGl6ZVJlZmVyZXIocmVmZXJlcil7cmV0dXJuIHJlZmVyZXIucmVwbGFjZSgvWyciYCgpPD5cW1xde318IV0vZywnJyk7fQpmdW5jdGlvbiBnZXRSZWZlcnJlclZhckZ1bmN0aW9uKHJlZmVyZXIpe3JldHVybiBmdW5jdGlvbigpe2lmKCcnPT1yZWZlcmVyKXJlZmVyZXI9ZG9jdW1lbnQucmVmZXJyZXI7cmVmZXJlcj1zYW5pdGl6ZVJlZmVyZXIocmVmZXJlcik7dmFyIHFzLHFzaW5kZXg9cmVmZXJlci5pbmRleE9mKCc\/JykrMTtpZihxc2luZGV4PjApe3ZhciBxcz1yZWZlcmVyLnNsaWNlKHFzaW5kZXgpO3JldHVybiBwYXJzZVF1ZXJ5KHFzKTt9CnJldHVybnt9fX0KdmFyIGdldFJlZmVyZXJWYXJzPWdldFJlZmVycmVyVmFyRnVuY3Rpb24oJycpO3ZhciB1dG1fbGFuZGluZ19jb29raWU9KGdldENvb2tpZSgndXRtX2xhbmRpbmcnKSE9bnVsbCYmdHlwZW9mIGdldENvb2tpZSgndXRtX2xhbmRpbmcnKSE9J3VuZGVmaW5lZCc\/Z2V0Q29va2llKCd1dG1fbGFuZGluZycpOicnKTtpZih1dG1fbGFuZGluZ19jb29raWUubGVuZ3RoPT0wKXtzZXRDb29raWUoJ3V0bV9sYW5kaW5nJyx3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUpO30KaWYoZGVwbG95bWVudFR5cGU9PSdsaXZlJyl7dmFyIGdlbmVyYXRlR1VJRD1mdW5jdGlvbigpe3ZhciBTND1mdW5jdGlvbigpe3JldHVybiBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqMHgxMDAwMCkudG9TdHJpbmcoMTYpO307cmV0dXJuKFM0KCkrUzQoKSsiLSIrClM0KCkrIi0iKwpTNCgpKyItIisKUzQoKSsiLSIrClM0KCkrUzQoKStTNCgpKTt9CnZhciB1cmxWYXJzPWdldFVybFZhcnMoKTt2YXIgcmVmZXJlclZhcnM9Z2V0UmVmZXJlclZhcnMoKTt2YXIgcmVmZXJlcj0nJzt2YXIgcmF3UmVmZXJyZXI9cmVmZXJlcjtyZWZlcmVyPShyZWZlcmVyLmxlbmd0aDwxPzA6cmVmZXJlcik7aWYoJyc9PXJhd1JlZmVycmVyKXJhd1JlZmVycmVyPWRvY3VtZW50LnJlZmVycmVyO3ZhciBpdGVtVHlwZT0nY2FyJztpdGVtVHlwZT0oaXRlbVR5cGUubGVuZ3RoPDE\/MDppdGVtVHlwZSk7aWYoaXNOYU4ocmVmZXJlcikpe3JlZmVyZXI9cmVmZXJlci5yZXBsYWNlKC9cLy9nLCJ8IikucmVwbGFjZSgvXD8vZywiX18iKS5yZXBsYWNlKC9cdC9nLCcnKS5yZXBsYWNlKC9cbi9nLCcnKS5yZXBsYWNlKC9cci9nLCcnKS5yZXBsYWNlQWxsKCclMEEnLCcnKS5yZXBsYWNlQWxsKCclMDknLCcnKS5yZXBsYWNlQWxsKCclMEInLCcnKS5yZXBsYWNlQWxsKCclMDAnLCcnKS5yZXBsYWNlQWxsKCclMEQnLCcnKTt9CnZhciBtYWtlPSIiO2lmKG1ha2UubGVuZ3RoPT0wKW1ha2U9IjAiO3ZhciBtb2RlbD0iIjtpZihtb2RlbC5sZW5ndGg9PTApbW9kZWw9IjAiO3ZhciB5ZWFyPSIiO2lmKHllYXIubGVuZ3RoPT0wKXllYXI9IjAiO3ZhciBpc21vYmlsZT0iIjtpZihpc21vYmlsZS5sZW5ndGg9PTApaXNtb2JpbGU9IjAiO3ZhciBvcmlnU291cmNlPSIiO3ZhciBvcmlnQ2FtcGFpZ249IiI7dmFyIG9yaWdLZXl3b3JkPSIiO2lmKHVybFZhcnNbInJlbGFuY2VJRCJdIT11bmRlZmluZWQpCnNldENvb2tpZSgncmVsYW5jZUlEJyx1cmxWYXJzWyJyZWxhbmNlSUQiXSwxODApO3ZhciBzb3VyY2U9KGdldENvb2tpZSgndXRtX3NvdXJjZScpIT1udWxsJiZ0eXBlb2YgZ2V0Q29va2llKCd1dG1fc291cmNlJykhPSd1bmRlZmluZWQnP2dldENvb2tpZSgndXRtX3NvdXJjZScpOicnKTt2YXIgc291cmNlQ29va2llPXNvdXJjZTt2YXIgc291cmNlVVJMPSIiO2lmKCJ1dG1fc291cmNlImluIHVybFZhcnMpe2lmKHNvdXJjZS5sZW5ndGg9PTApc291cmNlPXVybFZhcnNbJ3V0bV9zb3VyY2UnXTtzb3VyY2VVUkw9dXJsVmFyc1sndXRtX3NvdXJjZSddO30KdmFyIGNhbXBhaWduPShnZXRDb29raWUoJ3V0bV9jYW1wYWlnbicpIT1udWxsJiZ0eXBlb2YgZ2V0Q29va2llKCd1dG1fY2FtcGFpZ24nKSE9J3VuZGVmaW5lZCc\/Z2V0Q29va2llKCd1dG1fY2FtcGFpZ24nKTonJyk7aWYoY2FtcGFpZ24udG9Mb3dlckNhc2UoKT09J2Vjb2xlLWV0dWRpYW50Jyl7Y2FtcGFpZ249Jyc7c2V0Q29va2llKCd1dG1fY2FtcGFpZ24nLCIiLDEpO30KdmFyIGNhbXBhaWduQ29va2llPWNhbXBhaWduO3ZhciBjYW1wYWlnblVSTD0iIjtpZigidXRtX2NhbXBhaWduImluIHVybFZhcnMpe2lmKGNhbXBhaWduLmxlbmd0aD09MCljYW1wYWlnbj11cmxWYXJzWyd1dG1fY2FtcGFpZ24nXTtjYW1wYWlnblVSTD11cmxWYXJzWyd1dG1fY2FtcGFpZ24nXTt9CnZhciBtZWRpdW09KGdldENvb2tpZSgndXRtX21lZGl1bScpIT1udWxsJiZ0eXBlb2YgZ2V0Q29va2llKCd1dG1fbWVkaXVtJykhPSd1bmRlZmluZWQnP2dldENvb2tpZSgndXRtX21lZGl1bScpOicnKTt2YXIgbWVkaXVtQ29va2llPW1lZGl1bTt2YXIgbWVkaXVtVVJMPSIiO2lmKCJ1dG1fbWVkaXVtImluIHVybFZhcnMpe2lmKG1lZGl1bS5sZW5ndGg9PTApbWVkaXVtPXVybFZhcnNbJ3V0bV9tZWRpdW0nXTttZWRpdW1VUkw9dXJsVmFyc1sndXRtX21lZGl1bSddO30KdmFyIGNvb2tpZUluQ2FtcGFpZ25zPWZhbHNlO3ZhciB1cmxJbkNhbXBhaWducz1mYWxzZTt2YXIgaGFzR29vZ2xlT3JnYW5pYz1mYWxzZTtmb3IodmFyIGk9MDtpPGFsbENhbXBhaWducy5sZW5ndGg7aSsrKXtpZihhbGxDYW1wYWlnbnNbaV1bMV0udG9Mb3dlckNhc2UoKT09c291cmNlVVJMLnRvTG93ZXJDYXNlKCkmJmFsbENhbXBhaWduc1tpXVsyXS50b0xvd2VyQ2FzZSgpPT1jYW1wYWlnblVSTC50b0xvd2VyQ2FzZSgpKXVybEluQ2FtcGFpZ25zPXRydWU7aWYoYWxsQ2FtcGFpZ25zW2ldWzFdLnRvTG93ZXJDYXNlKCk9PXNvdXJjZUNvb2tpZS50b0xvd2VyQ2FzZSgpJiZhbGxDYW1wYWlnbnNbaV1bMl0udG9Mb3dlckNhc2UoKT09Y2FtcGFpZ25Db29raWUudG9Mb3dlckNhc2UoKSljb29raWVJbkNhbXBhaWducz10cnVlO2lmKGFsbENhbXBhaWduc1tpXVsxXS50b0xvd2VyQ2FzZSgpPT0nZ29vZ2xlJyYmYWxsQ2FtcGFpZ25zW2ldWzJdLnRvTG93ZXJDYXNlKCk9PSdvcmdhbmlxdWUnKWhhc0dvb2dsZU9yZ2FuaWM9dHJ1ZTt9CmlmKHNvdXJjZVVSTD09IiImJmNhbXBhaWduVVJMPT0iIiYmc291cmNlPT0iIiYmY2FtcGFpZ249PSIiJiZoYXNHb29nbGVPcmdhbmljKXtzb3VyY2VVUkw9Ikdvb2dsZSI7Y2FtcGFpZ25VUkw9Ik9yZ2FuaXF1ZSI7dXJsSW5DYW1wYWlnbnM9dHJ1ZTt9CmlmKGNvb2tpZUluQ2FtcGFpZ25zPT1mYWxzZSYmdXJsSW5DYW1wYWlnbnM9PXRydWUpe3NvdXJjZT1zb3VyY2VVUkw7Y2FtcGFpZ249Y2FtcGFpZ25VUkw7c291cmNlQ29va2llPXNvdXJjZVVSTDtjYW1wYWlnbkNvb2tpZT1jYW1wYWlnblVSTDt9CmlmKHNvdXJjZUNvb2tpZS50b0xvd2VyQ2FzZSgpPT0nc2VtJyYmc291cmNlVVJMLnRvTG93ZXJDYXNlKCk9PSdnb29nbGUnJiZ1cmxJbkNhbXBhaWducyl7c291cmNlPXNvdXJjZVVSTDtjYW1wYWlnbj1jYW1wYWlnblVSTDt9CnZhciBjdXJyZW50U2l0ZUlEPTEzMTtpZigoY3VycmVudFNpdGVJRD09NTkyfHxjdXJyZW50U2l0ZUlEPT00Mzd8fGN1cnJlbnRTaXRlSUQ9PTU3OXx8Y3VycmVudFNpdGVJRD09NTg1KSYmc291cmNlQ29va2llLnRvTG93ZXJDYXNlKCk9PSdzZW0nKXtzb3VyY2VDb29raWU9J0dvb2dsZSc7c291cmNlPSdHb29nbGUnO2NhbXBhaWduQ29va2llPSdOZXVmJztjYW1wYWlnbj0nTmV1Zic7fQppZihjYW1wYWlnbkNvb2tpZS50b0xvd2VyQ2FzZSgpPT0nb3JnYW5pYyd8fGNhbXBhaWduQ29va2llLnRvTG93ZXJDYXNlKCk9PSdvcmdhbmlxdWUnKXtzb3VyY2VDb29raWU9Jyc7Y2FtcGFpZ25Db29raWU9Jyc7bWVkaXVtQ29va2llPScnO30KaWYoc291cmNlLmxlbmd0aD4wJiYoc291cmNlQ29va2llLmxlbmd0aD09MHx8c291cmNlQ29va2llPT1zb3VyY2UpKXNldENvb2tpZSgndXRtX3NvdXJjZScsc291cmNlLDE4MCk7aWYoY2FtcGFpZ24ubGVuZ3RoPjAmJihjYW1wYWlnbkNvb2tpZS5sZW5ndGg9PTB8fGNhbXBhaWduQ29va2llPT1jYW1wYWlnbikpc2V0Q29va2llKCd1dG1fY2FtcGFpZ24nLGNhbXBhaWduLDE4MCk7aWYobWVkaXVtLmxlbmd0aD4wJiYobWVkaXVtQ29va2llLmxlbmd0aD09MHx8bWVkaXVtQ29va2llPT1tZWRpdW0pKXNldENvb2tpZSgndXRtX21lZGl1bScsbWVkaXVtLDE4MCk7dmFyIGtleXdvcmQ9KGdldENvb2tpZSgndXRtX2tleXdvcmQnKSE9bnVsbCYmdHlwZW9mIGdldENvb2tpZSgndXRtX2tleXdvcmQnKSE9J3VuZGVmaW5lZCc\/Z2V0Q29va2llKCd1dG1fa2V5d29yZCcpOicnKTtpZigia3ciaW4gdXJsVmFycyl7a2V5d29yZD1kZWNvZGVTdHJpbmcodXJsVmFyc1sna3cnXSwzKTt9CmlmKGtleXdvcmQubGVuZ3RoPjApc2V0Q29va2llKCd1dG1fa2V5d29yZCcsa2V5d29yZCwxODApO3ZhciBpc1JldGFyZ2V0aW5nPWZhbHNlO2Zvcih2YXIgaT0wO2k8cmV0YXJnZXRpbmdDYW1wYWlnbnMubGVuZ3RoO2krKyl7aWYocmV0YXJnZXRpbmdDYW1wYWlnbnNbaV1bMV0udG9Mb3dlckNhc2UoKT09c291cmNlVVJMLnRvTG93ZXJDYXNlKCkmJnJldGFyZ2V0aW5nQ2FtcGFpZ25zW2ldWzJdLnRvTG93ZXJDYXNlKCk9PWNhbXBhaWduVVJMLnRvTG93ZXJDYXNlKCkpaXNSZXRhcmdldGluZz10cnVlO30KaWYoaXNSZXRhcmdldGluZyl7dmFyIHNvdXJjZVJldGFyZ2V0aW5nPShnZXRDb29raWUoJ3V0bV9zb3VyY2VfcmV0YXJnZXRpbmcnKSE9bnVsbCYmdHlwZW9mIGdldENvb2tpZSgndXRtX3NvdXJjZV9yZXRhcmdldGluZycpIT0ndW5kZWZpbmVkJz9nZXRDb29raWUoJ3V0bV9zb3VyY2VfcmV0YXJnZXRpbmcnKTonJyk7dmFyIGNhbXBhaWduUmV0YXJnZXRpbmc9KGdldENvb2tpZSgndXRtX2NhbXBhaWduX3JldGFyZ2V0aW5nJykhPW51bGwmJnR5cGVvZiBnZXRDb29raWUoJ3V0bV9jYW1wYWlnbl9yZXRhcmdldGluZycpIT0ndW5kZWZpbmVkJz9nZXRDb29raWUoJ3V0bV9jYW1wYWlnbl9yZXRhcmdldGluZycpOicnKTtpZihzb3VyY2UhPXNvdXJjZVVSTHx8Y2FtcGFpZ24hPWNhbXBhaWduVVJMKXtpZihzb3VyY2VVUkwubGVuZ3RoPjAmJnNvdXJjZVJldGFyZ2V0aW5nLmxlbmd0aD09MClzZXRDb29raWUoJ3V0bV9zb3VyY2VfcmV0YXJnZXRpbmcnLHNvdXJjZVVSTCwxODApO2lmKGNhbXBhaWduVVJMLmxlbmd0aD4wJiZjYW1wYWlnblJldGFyZ2V0aW5nLmxlbmd0aD09MClzZXRDb29raWUoJ3V0bV9jYW1wYWlnbl9yZXRhcmdldGluZycsY2FtcGFpZ25VUkwsMTgwKTt9CnNldENvb2tpZSgndXRtX3NvdXJjZScsc291cmNlVVJMLDE4MCk7c2V0Q29va2llKCd1dG1fY2FtcGFpZ24nLGNhbXBhaWduVVJMLDE4MCk7fQp2YXIgc291cmNlUmV0YXJnZXRpbmc9KGdldENvb2tpZSgndXRtX3NvdXJjZV9yZXRhcmdldGluZycpIT1udWxsJiZ0eXBlb2YgZ2V0Q29va2llKCd1dG1fc291cmNlX3JldGFyZ2V0aW5nJykhPSd1bmRlZmluZWQnP2dldENvb2tpZSgndXRtX3NvdXJjZV9yZXRhcmdldGluZycpOicnKTt2YXIgY2FtcGFpZ25SZXRhcmdldGluZz0oZ2V0Q29va2llKCd1dG1fY2FtcGFpZ25fcmV0YXJnZXRpbmcnKSE9bnVsbCYmdHlwZW9mIGdldENvb2tpZSgndXRtX2NhbXBhaWduX3JldGFyZ2V0aW5nJykhPSd1bmRlZmluZWQnP2dldENvb2tpZSgndXRtX2NhbXBhaWduX3JldGFyZ2V0aW5nJyk6JycpO2lmKHNvdXJjZVJldGFyZ2V0aW5nLmxlbmd0aD4wKXNldENvb2tpZSgndXRtX3NvdXJjZV9yZXRhcmdldGluZycsc291cmNlUmV0YXJnZXRpbmcsMTgwKTtpZihjYW1wYWlnblJldGFyZ2V0aW5nLmxlbmd0aD4wKXNldENvb2tpZSgndXRtX2NhbXBhaWduX3JldGFyZ2V0aW5nJyxjYW1wYWlnblJldGFyZ2V0aW5nLDE4MCk7aWYoIXNvdXJjZSl7aWYocmF3UmVmZXJyZXIhPScnKXt2YXIgc2VsZkhvc3Q9KGRvY3VtZW50LmxvY2F0aW9uLmhyZWYpLm1hdGNoKC9eW0Etel0rOlwvXC8oW15cL10rKVwvPy4qLyk7aWYoc2VsZkhvc3Qpe3NlbGZIb3N0PXNlbGZIb3N0WzFdfQp2YXIgaG9zdD0ocmF3UmVmZXJyZXIudG9TdHJpbmcoKSkubWF0Y2goL15bQS16XSs6XC9cLyhbXlwvXSspXC8\/LiovKTtpZihob3N0KXtob3N0PWhvc3RbMV19ZWxzZXtob3N0PXNlbGZIb3N0O30KaWYoaG9zdCE9c2VsZkhvc3Qpe2hvc3Q9aG9zdC5zcGxpdCgnLicpO2lmKGhvc3QubGVuZ3RoPjIpe3NvdXJjZT1ob3N0WzFdO30KaWYoaG9zdC5sZW5ndGg9PTIpe3NvdXJjZT1ob3N0WzBdO30KaWYoc291cmNlKXNldENvb2tpZSgndXRtX3NvdXJjZScsc291cmNlLDE4MCk7aWYoIWNhbXBhaWduKXtjYW1wYWlnbj0nb3JnYW5pYyc7c2V0Q29va2llKCd1dG1fY2FtcGFpZ24nLGNhbXBhaWduLDE4MCk7fX19fQppZihzb3VyY2UubGVuZ3RoPT0wKXNvdXJjZT0iMCI7aWYoY2FtcGFpZ24ubGVuZ3RoPT0wKWNhbXBhaWduPSIwIjtpZihzb3VyY2VSZXRhcmdldGluZy5sZW5ndGg9PTApc291cmNlUmV0YXJnZXRpbmc9IjAiO2lmKGNhbXBhaWduUmV0YXJnZXRpbmcubGVuZ3RoPT0wKWNhbXBhaWduUmV0YXJnZXRpbmc9IjAiO2lmKHVybFZhcnNbIkRpc3BsYXlTb3VyY2UiXSE9dW5kZWZpbmVkKXtpZihnZXRDb29raWUoJ0Rpc3BsYXlTb3VyY2UnKT09bnVsbHx8dHlwZW9mIGdldENvb2tpZSgnRGlzcGxheVNvdXJjZScpPT0ndW5kZWZpbmVkJyl7aWYodXJsVmFyc1sidXRtX2NhbXBhaWduIl0hPXVuZGVmaW5lZCYmKGdldENvb2tpZSgnRGlzcGxheVNvdXJjZVVUTUNhbXBhaWduJyk9PW51bGx8fHR5cGVvZiBnZXRDb29raWUoJ0Rpc3BsYXlTb3VyY2VVVE1DYW1wYWlnbicpPT0ndW5kZWZpbmVkJykpc2V0Q29va2llKCdEaXNwbGF5U291cmNlVVRNQ2FtcGFpZ24nLHVybFZhcnNbInV0bV9jYW1wYWlnbiJdLDE4MCk7aWYodXJsVmFyc1sidXRtX3NvdXJjZSJdIT11bmRlZmluZWQmJihnZXRDb29raWUoJ0Rpc3BsYXlTb3VyY2VVVE1Tb3VyY2UnKT09bnVsbHx8dHlwZW9mIGdldENvb2tpZSgnRGlzcGxheVNvdXJjZVVUTVNvdXJjZScpPT0ndW5kZWZpbmVkJykpc2V0Q29va2llKCdEaXNwbGF5U291cmNlVVRNU291cmNlJyx1cmxWYXJzWyJ1dG1fc291cmNlIl0sMTgwKTt9CnNldENvb2tpZSgnRGlzcGxheVNvdXJjZScsdXJsVmFyc1siRGlzcGxheVNvdXJjZSJdLDE4MCk7fQp2YXIgc2V0R2NsaWRDb29raWU9dHJ1ZTtpZih1cmxWYXJzWyJ1dG1fc291cmNlIl0hPXVuZGVmaW5lZCl7aWYodXJsVmFyc1sidXRtX3NvdXJjZSJdPT0nU0VNJ3x8dXJsVmFyc1sidXRtX3NvdXJjZSJdPT0nVHJhZGVyJ3x8dXJsVmFyc1sidXRtX3NvdXJjZSJdPT0nR29vZ2xlLW5lcmRtYXJrZXRpbmcnKXtzZXRHY2xpZENvb2tpZT1mYWxzZTt9fQppZih1cmxWYXJzWyJnY2xpZCJdIT11bmRlZmluZWQmJnNldEdjbGlkQ29va2llKXtzZXRDb29raWUoJ2djbGlkJyx1cmxWYXJzWyJnY2xpZCJdLDE4MCk7d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLGZ1bmN0aW9uKGV2ZW50KXtpZigndW5kZWZpbmVkJyE9dHlwZW9mIGFjdGl2ZVVzZXJQcm9maWxlTW5nKXtzYXZlR0NMSUQ9ZnVuY3Rpb24oKXtpZigndW5kZWZpbmVkJz09dHlwZW9mIHdpbmRvdy5qUXVlcnkpe3JldHVybjt9CiQucG9zdCgiaHR0cHM6Ly9yZXN0LmQyY21lZGlhLmNhL2djbGlkLnJlc3QuYXBpLnBocCIse3Nlc3Npb25pZDphY3RpdmVVc2VyUHJvZmlsZU1uZy5zZXNzaW9uaWQsZ2NsaWQ6dXJsVmFyc1snZ2NsaWQnXX0pO307dHJ5e2FjdGl2ZVVzZXJQcm9maWxlTW5nLnJlZ2lzdGVyU2Vzc2lvbkNhbGxiYWNrKHNhdmVHQ0xJRCk7fWNhdGNoKGVycm9yKXtjb25zb2xlLmxvZyhlcnJvcik7fX19KTt9CndpbmRvdy5hY3RpdmVQYWdlPXBhZ2U7dmFyIHVpZD0oZ2V0Q29va2llKCd1aWQnKSE9bnVsbCYmdHlwZW9mIGdldENvb2tpZSgndWlkJykhPSd1bmRlZmluZWQnP2dldENvb2tpZSgndWlkJyk6Z2VuZXJhdGVHVUlEKCkpO3NldENvb2tpZSgndWlkJyx1aWQsMTgwKTt2YXIgZGVhbGVyaWQ9MTY3Njt2YXIgc2l0ZWlkPTEzMTt3aW5kb3cuYWN0aXZlU2l0ZUlEPXNpdGVpZDt3aW5kb3cuYWN0aXZlRGVhbGVySUQ9ZGVhbGVyaWQ7dmFyIGNhcmlkPScnO2lmKGNhcmlkLmxlbmd0aD09MCljYXJpZD0iMCI7ZnVuY3Rpb24gdGFnQnVpbGQoaW50ZXJuYWxzKXtyZXR1cm4nPCcrKGludGVybmFscy5qb2luKCcgJykpKycgLz4nO30KdmFyIGNhY2hlQ2xlYXJlcj1NYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqOTk5OTk5OSk7dmFyIGFkZFRrSW1nPWZ1bmN0aW9uKHNyYyl7c3dpdGNoKGRvY3VtZW50LnJlYWR5U3RhdGUpe2Nhc2UibG9hZGluZyI6ZG9jdW1lbnQud3JpdGUodGFnQnVpbGQoWydpbWcnLCdzdHlsZT0id2lkdGg6MXB4O2hlaWdodDoxcHg7cG9zaXRpb246YWJzb2x1dGU7bGVmdDowcHg7dG9wOjBweDsiJywnc3JjPSInK3NyYysnIicsJ2FsdD0iIiddKSk7YnJlYWs7Y2FzZSJpbnRlcmFjdGl2ZSI6Y2FzZSJjb21wbGV0ZSI6ZGVmYXVsdDp0cnl7dmFyIGltZz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbWciKTtpbWcuc3R5bGUuY3NzVGV4dD0nd2lkdGg6MXB4O2hlaWdodDoxcHg7cG9zaXRpb246YWJzb2x1dGU7bGVmdDowcHg7dG9wOjBweDsnO2ltZy5zZXRBdHRyaWJ1dGUoJ3NyYycsc3JjKTtpbWcuc2V0QXR0cmlidXRlKCdhbHQnLCdUcmFja2luZyBwaXhlbCcpO2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaW1nKTt9Y2F0Y2goZXgpe2lmKGNvbnNvbGUmJmNvbnNvbGUubG9nKWNvbnNvbGUubG9nKCJFcnJvciB0a3dpZGdldDogIitleC5tZXNzYWdlKTt9CmJyZWFrO319O2NhbXBhaWduPWNhbXBhaWduLnJlcGxhY2UoL1x0L2csJycpLnJlcGxhY2UoL1xuL2csJycpLnJlcGxhY2UoL1xyL2csJycpLnJlcGxhY2UoJyUwQScsJycpLnJlcGxhY2UoJyUwOScsJycpLnJlcGxhY2UoJyUwQicsJycpLnJlcGxhY2UoJyUwMCcsJycpLnJlcGxhY2UoJyUwRCcsJycpO3NvdXJjZT1zb3VyY2UucmVwbGFjZSgvXHQvZywnJykucmVwbGFjZSgvXG4vZywnJykucmVwbGFjZSgvXHIvZywnJykucmVwbGFjZSgnJTBBJywnJykucmVwbGFjZSgnJTA5JywnJykucmVwbGFjZSgnJTBCJywnJykucmVwbGFjZSgnJTAwJywnJykucmVwbGFjZSgnJTBEJywnJyk7dmFyIHRrc3JjPScvcHJveHlfc2F1Yi93ZWJzaXRlSGl0cy8nKwpkZWFsZXJpZCsiLyIrc2l0ZWlkKyIvIitjYXJpZCsiLyIrZXNjYXBlKHVpZCkrIi8iK3BhZ2UrIi8iK2VzY2FwZShzb3VyY2UpKyIvIitlc2NhcGUoY2FtcGFpZ24pKyIvIitlc2NhcGUobWFrZSkrIi8iK2VzY2FwZShtb2RlbCkrIi8iK3llYXIrIi8iKwppc21vYmlsZSsiLyIrZW5jb2RlVVJJQ29tcG9uZW50KHJlZmVyZXIpKyIvIitlc2NhcGUoaXRlbVR5cGUpKyIvIitlc2NhcGUoc291cmNlUmV0YXJnZXRpbmcpKyIvIitlc2NhcGUoY2FtcGFpZ25SZXRhcmdldGluZykrIi8iK2NhY2hlQ2xlYXJlcisnLmdpZic7aWYodHlwZW9mIGFjdGl2ZVVzZXJQcm9maWxlTW5nPT0ndW5kZWZpbmVkJ3x8IWFjdGl2ZVVzZXJQcm9maWxlTW5nLl9pc0JvdCgpKWFkZFRrSW1nKHRrc3JjKTt2YXIga2V5d29yZHM9IiI7aWYoInAiaW4gcmVmZXJlclZhcnMmJnJlZmVyZXIuaW5kZXhPZigieWFob28iKT4tMSl7a2V5d29yZHM9cmVmZXJlclZhcnNbJ3AnXTt9CmlmKCJxImluIHJlZmVyZXJWYXJzJiYocmVmZXJlci5pbmRleE9mKCJnb29nbGUiKT4tMXx8cmVmZXJlci5pbmRleE9mKCJiaW5nIik+LTEpKXtrZXl3b3Jkcz1yZWZlcmVyVmFyc1sncSddO30KdmFyIHVMYW5nPShnZXRDb29raWUoJ2xhbmcnKT09J2VuJyk\/J2VuJzonZnInO3dpbmRvdy5mYkNoYXRSZWY9e3I6J3NpdGUnLGM6Y2FtcGFpZ24sczpzb3VyY2V9O3ZhciBjdXN0b21fdmFyaWFibGVzPVt7bmFtZTonbGFuZ3VhZ2UnLHZhbHVlOnVMYW5nfSx7bmFtZTondXRtX2NhbXBhaWduJyx2YWx1ZTpjYW1wYWlnbn0se25hbWU6J3V0bV9zb3VyY2UnLHZhbHVlOnNvdXJjZX0se25hbWU6J3BhZ2UnLHZhbHVlOnBhZ2V9LHtuYW1lOid1aWQnLHZhbHVlOnVpZH0se25hbWU6J2NhcmlkJyx2YWx1ZTpjYXJpZH0se25hbWU6J21ha2UnLHZhbHVlOm1ha2V9LHtuYW1lOidtb2RlbCcsdmFsdWU6bW9kZWx9LHtuYW1lOid5ZWFyJyx2YWx1ZTp5ZWFyfSx7bmFtZTonaXNNb2JpbGVTaXRlJyx2YWx1ZTppc21vYmlsZX1dO3dpbmRvdy5jVmFyaWFibGVzPWN1c3RvbV92YXJpYWJsZXM7d2luZG93LnJlbGFuY2VIYW5kbGVyRm5jPWZ1bmN0aW9uKCl7dmFyIHJlbGFuY2VJRD0oZ2V0Q29va2llKCdyZWxhbmNlSUQnKSE9bnVsbCYmdHlwZW9mIGdldENvb2tpZSgncmVsYW5jZUlEJykhPSd1bmRlZmluZWQnP2dldENvb2tpZSgncmVsYW5jZUlEJyk6MCk7aWYodHlwZW9mIGFjdGl2ZVVzZXJQcm9maWxlTW5nIT0ndW5kZWZpbmVkJyYmdHlwZW9mIGFjdGl2ZVVzZXJQcm9maWxlTW5nLmxvZ1BhZ2VWaWV3RXZlbnQhPSd1bmRlZmluZWQnKXthY3RpdmVVc2VyUHJvZmlsZU1uZy5sb2dQYWdlVmlld0V2ZW50KHJlbGFuY2VJRCwncmVsYW5jZUlEJyk7aWYodXJsVmFyc1siRGlzcGxheVNvdXJjZSJdIT11bmRlZmluZWQpe2FjdGl2ZVVzZXJQcm9maWxlTW5nLmxvZ1BhZ2VWaWV3RXZlbnQodXJsVmFyc1siRGlzcGxheVNvdXJjZSJdLCdkaXNwbGF5U291cmNlJyk7aWYodXJsVmFyc1sidXRtX2NhbXBhaWduIl0hPXVuZGVmaW5lZClhY3RpdmVVc2VyUHJvZmlsZU1uZy5sb2dQYWdlVmlld0V2ZW50KHVybFZhcnNbInV0bV9jYW1wYWlnbiJdLCd1dG1fY2FtcGFpZ24nKTtpZih1cmxWYXJzWyJ1dG1fc291cmNlIl0hPXVuZGVmaW5lZClhY3RpdmVVc2VyUHJvZmlsZU1uZy5sb2dQYWdlVmlld0V2ZW50KHVybFZhcnNbInV0bV9zb3VyY2UiXSwndXRtX3NvdXJjZScpO319CmVsc2UKc2V0VGltZW91dCh3aW5kb3cucmVsYW5jZUhhbmRsZXJGbmMsMTAwMCk7fTt2YXIgaW5pdEY9ZnVuY3Rpb24oKXtpbml0TENJKGN1c3RvbV92YXJpYWJsZXMpO3dpbmRvdy5yZWxhbmNlSGFuZGxlckZuYygpO307aWYod2luZG93LmF0dGFjaEV2ZW50KXdpbmRvdy5hdHRhY2hFdmVudCgnb25sb2FkJyxpbml0Rik7ZWxzZSB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsaW5pdEYsZmFsc2UpO3ZhciBhaWN1cnJlbnRwYWdlPSduZXdjYXJzLmh0bWwnO2lmKEFJQ3VycmVudENvbmZpZ0lEPjAmJnR5cGVvZiBhY3RpdmVVc2VyUHJvZmlsZU1uZyE9J3VuZGVmaW5lZCcpe2FjdGl2ZVVzZXJQcm9maWxlTW5nLmxvZ1BhZ2VWaWV3RXZlbnQoQUlDdXJyZW50Q29uZmlnSUQsJ0FJQ29uZmlnJyk7fQppZihBSUlEUGVyTmV3Q2Fyc0ZyZW5jaC5sZW5ndGg+MCYmYWljdXJyZW50cGFnZT09J25ld2NhcmRldGFpbC5odG1sJyYmZ2V0Q29va2llKCdsYXN0bmV3dmVoaWNsZScpIT1udWxsKXt2YXIgbGFzdG5ld3ZlaGljbGU9Z2V0Q29va2llKCdsYXN0bmV3dmVoaWNsZScpO3ZhciBsYXN0bmV3dmVoaWNsZXNwbGl0PWxhc3RuZXd2ZWhpY2xlLnNwbGl0KCd8fHwnKTt2YXIgYWluZXdjYXJpZD0wO2lmKHR5cGVvZiBBSUlEUGVyTmV3Q2Fyc0ZyZW5jaFtsYXN0bmV3dmVoaWNsZXNwbGl0WzBdK2xhc3RuZXd2ZWhpY2xlc3BsaXRbMV0rbGFzdG5ld3ZlaGljbGVzcGxpdFsyXV0hPT0ndW5kZWZpbmVkJylhaW5ld2NhcmlkPUFJSURQZXJOZXdDYXJzRnJlbmNoW2xhc3RuZXd2ZWhpY2xlc3BsaXRbMF0rbGFzdG5ld3ZlaGljbGVzcGxpdFsxXStsYXN0bmV3dmVoaWNsZXNwbGl0WzJdXTtpZih0eXBlb2YgQUlJRFBlck5ld0NhcnNFbmdsaXNoW2xhc3RuZXd2ZWhpY2xlc3BsaXRbMF0rbGFzdG5ld3ZlaGljbGVzcGxpdFsxXStsYXN0bmV3dmVoaWNsZXNwbGl0WzJdXSE9PSd1bmRlZmluZWQnKWFpbmV3Y2FyaWQ9QUlJRFBlck5ld0NhcnNFbmdsaXNoW2xhc3RuZXd2ZWhpY2xlc3BsaXRbMF0rbGFzdG5ld3ZlaGljbGVzcGxpdFsxXStsYXN0bmV3dmVoaWNsZXNwbGl0WzJdXTtpZihhaW5ld2NhcmlkPjAmJnR5cGVvZiBhY3RpdmVVc2VyUHJvZmlsZU1uZyE9J3VuZGVmaW5lZCcpe2FjdGl2ZVVzZXJQcm9maWxlTW5nLmxvZ1BhZ2VWaWV3RXZlbnQoYWluZXdjYXJpZCwnQUlDb25maWdOZXdDYXInKTt9fX0Kc2V0VGltZW91dChmdW5jdGlvbigpe3ZhciBmbj1mdW5jdGlvbigpe2lmKHR5cGVvZiBqUXVlcnkhPSd1bmRlZmluZWQnKXtyZXR1cm4galF1ZXJ5LnJlYWR5KCk7fQpzZXRUaW1lb3V0KGZuLDEwMCk7fQpmbigpO30sMTAwMCk7Ci8qXV0+Ki8KCihhc3luYyAoKSA9PiB7IHRyeSB7IHZhciBsYW5nID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignYm9keScpLmNsYXNzTmFtZS5tYXRjaCgnRlJFTkNIJykgPyAnZnInIDogJ2VuJzsgdmFyIHVybCA9IG5ldyBVUkwoYC9qcy9qc29uL21lbnVUaXRsZXNfJHtsYW5nfS5qc29uYCwgd2luZG93LmxvY2F0aW9uLm9yaWdpbikuaHJlZjsgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaCh1cmwpOyB0ZXh0ID0gYXdhaXQgcmVzcG9uc2UudGV4dCgpOyBpZiAodGV4dCkgeyBkYXRhID0gSlNPTi5wYXJzZSh0ZXh0KTsgdmFyIG11bHRpID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgnVVNFRCcpOyBpZiAobXVsdGkubGVuZ3RoKSB7IGZvcih2YXIgaSA9IDA7IGkgPCBtdWx0aS5sZW5ndGg7IGkrKykgeyBtdWx0aVtpXS5xdWVyeVNlbGVjdG9yKCcuc2hyaW5rLWdyb3cnKS50ZXh0Q29udGVudCA9IGRhdGFbJ1VTRUQnXS50ZXh0OyB9IH0gZWxzZSB7IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNNYWluTWVudV9VU0VEID4gYScpLnRleHRDb250ZW50ID0gZGF0YVsnVVNFRCddLnRleHQ7IHdpbmRvdy5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgncmVzaXplJykpOyB9IH0gfSBjYXRjaCAoZSl7IGNvbnNvbGUubG9nKGUpOyB9IH0pKCk7CgoJLyo8IVtDREFUQVsqLwoJdmFyIHBhcmFtcyA9IGdldFVybFZhcnMoKTsKCS8vc2V0IHBhcmFtIHZhbHVlIGludG8gc2Vzc2lvbiBzdG9yYWdlCglpZiAodHlwZW9mIHNlc3Npb25TdG9yYWdlICE9PSAndW5kZWZpbmVkJykgewoKCQlpZihwYXJhbXMuaGFzT3duUHJvcGVydHkoJ2gnKSl7CgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0oJ2gnLHBhcmFtcy5oKTsKCQl9CgoJCWlmKHBhcmFtcy5oYXNPd25Qcm9wZXJ0eSgnbScpKXsKCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSgnbScscGFyYW1zLm0pOwoJCX0KCgkJdmFyIGggPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCdoJyk7CgkJdmFyIG0gPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCdtJyk7CgoJCS8vcmVhZCBzZXNzaW9uIGFuZCByZW1vdmUgaGVhZGVyICYgbWVudSBpZiBvcHRpb25zIGhhdmUgYmVlbiBzZXQKCQlpZihoID09PSAnbm8nKXsKCQkJLy9zdHVmZiB0byByZW1vdmUgdGhhdCBpcyBjb25zaWRlcmVkIHBhcnQgb2YgdGhlIGhlYWRlcgoJCQl2YXIgaGVhZGVycyA9IFsKCQkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5oZWFkZXItaW5mbycpLAoJCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLmhlYWRlci1mb290ZXInKSwKCQkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5sYW5ndWFnZUJhcicpLAoJCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLmhlYWRlci1sb2dvJyksCgkJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcubW9iaWxlLWhlYWRlciA+ICo6bm90KC5idXJnZXItbWVudS1jb250YWluZXIpJykKCQkJXTsKCgkJCWZvcih2YXIgZWxlbSBvZiBoZWFkZXJzKXsKCQkJCS8vcmVtb3ZlIG5vZGUgbGlzdCBxdWVyaWVzCgkJCQlpZiAoTm9kZUxpc3QucHJvdG90eXBlLmlzUHJvdG90eXBlT2YoZWxlbSkpIHsKCQkJCQlmb3IodmFyIF9lbGVtIG9mIGVsZW0pewoJCQkJCQlpZiAoX2VsZW0gIT09IG51bGwpIHsKCQkJCQkJCV9lbGVtLnJlbW92ZSgpOwoJCQkJCQl9CgkJCQkJfQoJCQkJfQoJCQkJZWxzZSBpZiAoZWxlbSAhPT0gbnVsbCl7CgkJCQkJZWxlbS5yZW1vdmUoKTsKCQkJCX0KCQkJfQoJCX0KCgkJLy9tZW51CgkJaWYobSA9PT0gJ25vJyl7CgkJCXZhciBtZW51cyA9IFsKCQkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5oZWFkZXItbWVudScpLAoJCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLmJ1cmdlci1tZW51LWNvbnRhaW5lcicpLAoJCQldOwoJCQlmb3IodmFyIGVsZW0gb2YgbWVudXMpewoJCQkJaWYoZWxlbSAhPT0gbnVsbCl7CgkJCQkJZWxlbS5yZW1vdmUoKTsKCQkJCX0KCQkJfQoJCX0KCgkJLy9zaW5jZSBubyBoZWFkZXIgb3IgbWVudSwgcmVtb3ZlIGV2ZXJ5dGhpbmcKCQlpZiAobSA9PT0gJ25vJyAmJiBoID09PSAnbm8nKSB7CgkJCXZhciBoZWFkZXIgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcubW9iaWxlLWhlYWRlcicpOwoJCQlpZihoZWFkZXIgIT09IG51bGwpewoJCQkJaGVhZGVyLnJlbW92ZSgpOwoJCQl9CgkJfQoKCX0KCS8qXV0+Ki8KCgkJKGZ1bmN0aW9uKCl7CgkJCWZ1bmN0aW9uIGluaXQoKXsKCQkJCWlmKCB0eXBlb2YgUGFnZUJhbm5lciA9PT0gJ2Z1bmN0aW9uJyApIHsKCQkJCQl3aW5kb3cucGFnZUJhbm5lciA9IG5ldyBQYWdlQmFubmVyKHsiYmFubmVycyI6eyJzdGF0aWNiYW5uZXJzIjp7IjIiOnsiaSI6IlwvaW1hZ2VzXC9OZXdDYXJQYWdlSW1hZ2VEeW5cL0JST05DTyBTUE9SVF8xMjUwX0ZSLmpwZyIsInUiOiIiLCJ0Ijo2MDAwfSwiMCI6eyJpIjoiXC9pbWFnZXNcL05ld0NhclBhZ2VJbWFnZVwvTUFWRVJJQ0tfMTIwMF9GUi5qcGciLCJ1IjoiIiwidCI6NTAwMCwiYSI6IkZvcmQgYSB2ZW5kcmUgPyBHYXRpbmVhdSAocHImZWdyYXZlO3MgZCYjMDM5O090dGF3YSkgY2hleiBDYXJsZSBGb3JkIC0gMSJ9LCIxIjp7ImkiOiJcL2ltYWdlc1wvTmV3Q2FyUGFnZUltYWdlMlwvRi0xNTBfMTI1MF9GUi5qcGciLCJ1IjoiIiwidCI6NTAwMCwiYSI6IkZvcmQgYSB2ZW5kcmUgPyBHYXRpbmVhdSAocHImZWdyYXZlO3MgZCYjMDM5O090dGF3YSkgY2hleiBDYXJsZSBGb3JkIC0gMiJ9fX0sImNvbmZpZyI6eyJjMSI6IjFmMmY1MyIsImMyIjoiMWYyZjUzIiwiYzJfMSI6IjFmMmY1MyIsImMyXzIiOiJmZmZmZmYifX0pOwoJCQkJCXJldHVybjsKCQkJCX0KCQkJCXNldFRpbWVvdXQoIGluaXQsIDMwMDAgKTsKCQkJfQoJCQlpbml0KCk7CgkJfSkoKTsKCQ==","js_rl":"CgkJCQl3aW5kb3cuZ1Rlc3RTcGVlZENvbm49RGF0ZS5ub3coKTsKCQkJCXdpbmRvdy5nUmVzb3VyY2VMb2FkZXJBbmRKcXVlcnlJc1JlYWR5PWZhbHNlOwoJCQkJd2luZG93LmdTa2VsZXRvbklzUmVtb3ZlZD1mYWxzZTsKCQkJCXdpbmRvdy5nRGVsYXllZExvYWRTY3JpcHQ9d2luZG93LmdEZWxheWVkTG9hZFNjcmlwdHx8ZnVuY3Rpb24oYSxkKXtzZXRUaW1lb3V0KCgpPT57dmFyIGU9ITA7Y29uc29sZS5sb2coIkdERUxBWUVETE9BRFNDUklQVDoiK2EsZCk7dmFyIG49ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7aWYoIm9iamVjdCI9PXR5cGVvZiBkJiZudWxsIT09ZClmb3IodmFyIG8gaW4gZClkLmhhc093blByb3BlcnR5KG8pJiZudWxsIT09ZFtvXSYmKC0xIT09WyJkZWZlciIsImFzeW5jIl0uaW5kZXhPZihvKSYmKGU9ITEpLG5bb109ZFtvXSk7bi5zcmM9YSxlJiYobi5hc3luYz0hMCksZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChuKX0pfTsKCQkJCgkJCQkvKjwhW0NEQVRBWyovCgkJCQl2YXIgYm94QmxvY2tzID0geyJzdXYiOnsiZmJ4X3N1dl8xIjp7InZpc2libGUiOnRydWUsImlkIjoxLCJwb3NpdGlvbiI6MSwiZHJpdmV0cmFpbiI6NCwiZnVlbCI6MSwicHJpY2UiOjU0MzYwLCJjb25zbyI6MTAuOTAwMDAwMDAwMDAwMDAwMzU1MjcxMzY3ODgwMDUwMDkyOTM1NTYyMTMzNzg5MDYyNSwiY2FyQ2F0ZWdvcnkiOiJzdXYiLCJjYXJNYWtlIjoiZm9yZCIsImNhck1vZGVsIjoiQnJvbmNvIiwic3BlY2lhbE9yZGVyIjowfSwiZmJ4X3N1dl8yIjp7InZpc2libGUiOnRydWUsImlkIjoyLCJwb3NpdGlvbiI6MiwiZHJpdmV0cmFpbiI6NCwiZnVlbCI6MSwicHJpY2UiOjUxNzYwLCJjb25zbyI6MTAuOTAwMDAwMDAwMDAwMDAwMzU1MjcxMzY3ODgwMDUwMDkyOTM1NTYyMTMzNzg5MDYyNSwiY2FyQ2F0ZWdvcnkiOiJzdXYiLCJjYXJNYWtlIjoiZm9yZCIsImNhck1vZGVsIjoiQnJvbmNvIiwic3BlY2lhbE9yZGVyIjowfSwiZmJ4X3N1dl8zIjp7InZpc2libGUiOnRydWUsImlkIjozLCJwb3NpdGlvbiI6MywiZHJpdmV0cmFpbiI6NCwiZnVlbCI6MSwicHJpY2UiOjQxNzkwLCJjb25zbyI6Ny43OTk5OTk5OTk5OTk5OTk4MjIzNjQzMTYwNTk5NzQ5NTM1MzIyMTg5MzMxMDU0Njg3NSwiY2FyQ2F0ZWdvcnkiOiJzdXYiLCJjYXJNYWtlIjoiZm9yZCIsImNhck1vZGVsIjoiQnJvbmNvIFNwb3J0Iiwic3BlY2lhbE9yZGVyIjowfSwiZmJ4X3N1dl80Ijp7InZpc2libGUiOnRydWUsImlkIjo0LCJwb3NpdGlvbiI6NCwiZHJpdmV0cmFpbiI6NCwiZnVlbCI6MSwicHJpY2UiOjQxMTkwLCJjb25zbyI6Ny45MDAwMDAwMDAwMDAwMDAzNTUyNzEzNjc4ODAwNTAwOTI5MzU1NjIxMzM3ODkwNjI1LCJjYXJDYXRlZ29yeSI6InN1diIsImNhck1ha2UiOiJmb3JkIiwiY2FyTW9kZWwiOiJCcm9uY28gU3BvcnQiLCJzcGVjaWFsT3JkZXIiOjB9LCJmYnhfc3V2XzUiOnsidmlzaWJsZSI6dHJ1ZSwiaWQiOjUsInBvc2l0aW9uIjo1LCJkcml2ZXRyYWluIjoxLCJmdWVsIjoxLCJwcmljZSI6MzU4OTQsImNvbnNvIjo2LjkwMDAwMDAwMDAwMDAwMDM1NTI3MTM2Nzg4MDA1MDA5MjkzNTU2MjEzMzc4OTA2MjUsImNhckNhdGVnb3J5Ijoic3V2IiwiY2FyTWFrZSI6ImZvcmQiLCJjYXJNb2RlbCI6IkVzY2FwZSIsInNwZWNpYWxPcmRlciI6MH0sImZieF9zdXZfNiI6eyJ2aXNpYmxlIjp0cnVlLCJpZCI6NiwicG9zaXRpb24iOjYsImRyaXZldHJhaW4iOjEsImZ1ZWwiOjEsInByaWNlIjozNTI0NCwiY29uc28iOjYuOTAwMDAwMDAwMDAwMDAwMzU1MjcxMzY3ODgwMDUwMDkyOTM1NTYyMTMzNzg5MDYyNSwiY2FyQ2F0ZWdvcnkiOiJzdXYiLCJjYXJNYWtlIjoiZm9yZCIsImNhck1vZGVsIjoiRXNjYXBlIiwic3BlY2lhbE9yZGVyIjowfSwiZmJ4X3N1dl83Ijp7InZpc2libGUiOnRydWUsImlkIjo3LCJwb3NpdGlvbiI6NywiZHJpdmV0cmFpbiI6NCwiZnVlbCI6MSwicHJpY2UiOjg5Mjk1LCJjb25zbyI6MTAuNTk5OTk5OTk5OTk5OTk5NjQ0NzI4NjMyMTE5OTQ5OTA3MDY0NDM3ODY2MjEwOTM3NSwiY2FyQ2F0ZWdvcnkiOiJzdXYiLCJjYXJNYWtlIjoiZm9yZCIsImNhck1vZGVsIjoiRXhwZWRpdGlvbiIsInNwZWNpYWxPcmRlciI6MH0sImZieF9zdXZfOCI6eyJ2aXNpYmxlIjp0cnVlLCJpZCI6OCwicG9zaXRpb24iOjgsImRyaXZldHJhaW4iOjQsImZ1ZWwiOjEsInByaWNlIjo4NjA2NSwiY29uc28iOjEwLjU5OTk5OTk5OTk5OTk5OTY0NDcyODYzMjExOTk0OTkwNzA2NDQzNzg2NjIxMDkzNzUsImNhckNhdGVnb3J5Ijoic3V2IiwiY2FyTWFrZSI6ImZvcmQiLCJjYXJNb2RlbCI6IkV4cGVkaXRpb24iLCJzcGVjaWFsT3JkZXIiOjB9LCJmYnhfc3V2XzkiOnsidmlzaWJsZSI6dHJ1ZSwiaWQiOjksInBvc2l0aW9uIjo5LCJkcml2ZXRyYWluIjo0LCJmdWVsIjoxLCJwcmljZSI6ODQ4MTUsImNvbnNvIjoxMC41OTk5OTk5OTk5OTk5OTk2NDQ3Mjg2MzIxMTk5NDk5MDcwNjQ0Mzc4NjYyMTA5Mzc1LCJjYXJDYXRlZ29yeSI6InN1diIsImNhck1ha2UiOiJmb3JkIiwiY2FyTW9kZWwiOiJFeHBlZGl0aW9uIiwic3BlY2lhbE9yZGVyIjowfSwiZmJ4X3N1dl8xMCI6eyJ2aXNpYmxlIjp0cnVlLCJpZCI6MTAsInBvc2l0aW9uIjoxMCwiZHJpdmV0cmFpbiI6NCwiZnVlbCI6MSwicHJpY2UiOjU1MDk1LCJjb25zbyI6OC42OTk5OTk5OTk5OTk5OTkyODk0NTcyNjQyMzk4OTk4MTQxMjg4NzU3MzI0MjE4NzUsImNhckNhdGVnb3J5Ijoic3V2IiwiY2FyTWFrZSI6ImZvcmQiLCJjYXJNb2RlbCI6IkV4cGxvcmVyIiwic3BlY2lhbE9yZGVyIjowfSwiZmJ4X3N1dl8xMSI6eyJ2aXNpYmxlIjp0cnVlLCJpZCI6MTEsInBvc2l0aW9uIjoxMSwiZHJpdmV0cmFpbiI6NCwiZnVlbCI6MSwicHJpY2UiOjU0ODk1LCJjb25zbyI6OC42OTk5OTk5OTk5OTk5OTkyODk0NTcyNjQyMzk4OTk4MTQxMjg4NzU3MzI0MjE4NzUsImNhckNhdGVnb3J5Ijoic3V2IiwiY2FyTWFrZSI6ImZvcmQiLCJjYXJNb2RlbCI6IkV4cGxvcmVyIiwic3BlY2lhbE9yZGVyIjowfSwiZmJ4X3N1dl8xMiI6eyJ2aXNpYmxlIjp0cnVlLCJpZCI6MTIsInBvc2l0aW9uIjoxMiwiZHJpdmV0cmFpbiI6NCwiZnVlbCI6MSwicHJpY2UiOjUzOTgwLCJjb25zbyI6OC42OTk5OTk5OTk5OTk5OTkyODk0NTcyNjQyMzk4OTk4MTQxMjg4NzU3MzI0MjE4NzUsImNhckNhdGVnb3J5Ijoic3V2IiwiY2FyTWFrZSI6ImZvcmQiLCJjYXJNb2RlbCI6IkV4cGxvcmVyIiwic3BlY2lhbE9yZGVyIjowfX0sImNvbW1lcmNpYWwiOnsiZmJ4X2NvbW1lcmNpYWxfMSI6eyJ2aXNpYmxlIjp0cnVlLCJpZCI6MSwicG9zaXRpb24iOjEsImRyaXZldHJhaW4iOjIsImZ1ZWwiOjEsInByaWNlIjo1MjA4MCwiY29uc28iOjEwMDAsImNhckNhdGVnb3J5IjoiY29tbWVyY2lhbCIsImNhck1ha2UiOiJmb3JkIiwiY2FyTW9kZWwiOiJFLVNlcmllcyBDdXRhd2F5Iiwic3BlY2lhbE9yZGVyIjowfSwiZmJ4X2NvbW1lcmNpYWxfMiI6eyJ2aXNpYmxlIjp0cnVlLCJpZCI6MiwicG9zaXRpb24iOjIsImRyaXZldHJhaW4iOjIsImZ1ZWwiOjEsInByaWNlIjo1MjA4MCwiY29uc28iOjEwMDAsImNhckNhdGVnb3J5IjoiY29tbWVyY2lhbCIsImNhck1ha2UiOiJmb3JkIiwiY2FyTW9kZWwiOiJFLVNlcmllcyBDdXRhd2F5Iiwic3BlY2lhbE9yZGVyIjowfSwiZmJ4X2NvbW1lcmNpYWxfMyI6eyJ2aXNpYmxlIjp0cnVlLCJpZCI6MywicG9zaXRpb24iOjMsImRyaXZldHJhaW4iOjIsImZ1ZWwiOjEsInByaWNlIjo0ODYzNSwiY29uc28iOjEwMDAsImNhckNhdGVnb3J5IjoiY29tbWVyY2lhbCIsImNhck1ha2UiOiJmb3JkIiwiY2FyTW9kZWwiOiJFLVNlcmllcyBTdHJpcHBlZCBDaGFzc2lzIiwic3BlY2lhbE9yZGVyIjowfSwiZmJ4X2NvbW1lcmNpYWxfNCI6eyJ2aXNpYmxlIjp0cnVlLCJpZCI6NCwicG9zaXRpb24iOjQsImRyaXZldHJhaW4iOjIsImZ1ZWwiOjQsInByaWNlIjo3NzE5NSwiY29uc28iOjEwMDAsImNhckNhdGVnb3J5IjoiY29tbWVyY2lhbCIsImNhck1ha2UiOiJmb3JkIiwiY2FyTW9kZWwiOiJFLVRyYW5zaXQgQ2FyZ28gVmFuIiwic3BlY2lhbE9yZGVyIjowfSwiZmJ4X2NvbW1lcmNpYWxfNSI6eyJ2aXNpYmxlIjp0cnVlLCJpZCI6NSwicG9zaXRpb24iOjUsImRyaXZldHJhaW4iOjIsImZ1ZWwiOjQsInByaWNlIjo3NzA5NSwiY29uc28iOjEwMDAsImNhckNhdGVnb3J5IjoiY29tbWVyY2lhbCIsImNhck1ha2UiOiJmb3JkIiwiY2FyTW9kZWwiOiJFLVRyYW5zaXQgQ2FyZ28gVmFuIiwic3BlY2lhbE9yZGVyIjowfSwiZmJ4X2NvbW1lcmNpYWxfNiI6eyJ2aXNpYmxlIjp0cnVlLCJpZCI6NiwicG9zaXRpb24iOjYsImRyaXZldHJhaW4iOjIsImZ1ZWwiOjQsInByaWNlIjo3Mjk0NSwiY29uc28iOjEwMDAsImNhckNhdGVnb3J5IjoiY29tbWVyY2lhbCIsImNhck1ha2UiOiJmb3JkIiwiY2FyTW9kZWwiOiJFLVRyYW5zaXQgQ2hhc3NpcyIsInNwZWNpYWxPcmRlciI6MH0sImZieF9jb21tZXJjaWFsXzciOnsidmlzaWJsZSI6dHJ1ZSwiaWQiOjcsInBvc2l0aW9uIjo3LCJkcml2ZXRyYWluIjoyLCJmdWVsIjo0LCJwcmljZSI6NzI4NDUsImNvbnNvIjoxMDAwLCJjYXJDYXRlZ29yeSI6ImNvbW1lcmNpYWwiLCJjYXJNYWtlIjoiZm9yZCIsImNhck1vZGVsIjoiRS1UcmFuc2l0IENoYXNzaXMiLCJzcGVjaWFsT3JkZXIiOjB9LCJmYnhfY29tbWVyY2lhbF84Ijp7InZpc2libGUiOnRydWUsImlkIjo4LCJwb3NpdGlvbiI6OCwiZHJpdmV0cmFpbiI6MiwiZnVlbCI6NCwicHJpY2UiOjcyMTQ1LCJjb25zbyI6MTAwMCwiY2FyQ2F0ZWdvcnkiOiJjb21tZXJjaWFsIiwiY2FyTWFrZSI6ImZvcmQiLCJjYXJNb2RlbCI6IkUtVHJhbnNpdCBDdXRhd2F5Iiwic3BlY2lhbE9yZGVyIjowfSwiZmJ4X2NvbW1lcmNpYWxfOSI6eyJ2aXNpYmxlIjp0cnVlLCJpZCI6OSwicG9zaXRpb24iOjksImRyaXZldHJhaW4iOjIsImZ1ZWwiOjQsInByaWNlIjo3MjA0NSwiY29uc28iOjEwMDAsImNhckNhdGVnb3J5IjoiY29tbWVyY2lhbCIsImNhck1ha2UiOiJmb3JkIiwiY2FyTW9kZWwiOiJFLVRyYW5zaXQgQ3V0YXdheSIsInNwZWNpYWxPcmRlciI6MH0sImZieF9jb21tZXJjaWFsXzEwIjp7InZpc2libGUiOnRydWUsImlkIjoxMCwicG9zaXRpb24iOjEwLCJkcml2ZXRyYWluIjo2LCJmdWVsIjozLCJwcmljZSI6NjcyODAsImNvbnNvIjoxMDAwLCJjYXJDYXRlZ29yeSI6InRydWNrIiwiY2FyTWFrZSI6ImZvcmQiLCJjYXJNb2RlbCI6IlN1cGVyIER1dHkgRi0zNTAgRFJXIiwic3BlY2lhbE9yZGVyIjowfSwiZmJ4X2NvbW1lcmNpYWxfMTEiOnsidmlzaWJsZSI6dHJ1ZSwiaWQiOjExLCJwb3NpdGlvbiI6MTEsImRyaXZldHJhaW4iOjYsImZ1ZWwiOjEsInByaWNlIjo2NzAzNCwiY29uc28iOjEwMDAsImNhckNhdGVnb3J5IjoidHJ1Y2siLCJjYXJNYWtlIjoiZm9yZCIsImNhck1vZGVsIjoiU3VwZXIgRHV0eSBGLTM1MCBTUlciLCJzcGVjaWFsT3JkZXIiOjB9LCJmYnhfY29tbWVyY2lhbF8xMiI6eyJ2aXNpYmxlIjp0cnVlLCJpZCI6MTIsInBvc2l0aW9uIjoxMiwiZHJpdmV0cmFpbiI6NiwiZnVlbCI6MSwicHJpY2UiOjY0OTc0LCJjb25zbyI6MTAwMCwiY2FyQ2F0ZWdvcnkiOiJ0cnVjayIsImNhck1ha2UiOiJmb3JkIiwiY2FyTW9kZWwiOiJTdXBlciBEdXR5IEYtMzUwIFNSVyIsInNwZWNpYWxPcmRlciI6MH0sImZieF9jb21tZXJjaWFsXzEzIjp7InZpc2libGUiOnRydWUsImlkIjoxMywicG9zaXRpb24iOjEzLCJkcml2ZXRyYWluIjo2LCJmdWVsIjozLCJwcmljZSI6NzEyMTAsImNvbnNvIjoxMDAwLCJjYXJDYXRlZ29yeSI6InRydWNrIiwiY2FyTWFrZSI6ImZvcmQiLCJjYXJNb2RlbCI6IlN1cGVyIER1dHkgRi00NTAgRFJXIiwic3BlY2lhbE9yZGVyIjowfSwiZmJ4X2NvbW1lcmNpYWxfMTQiOnsidmlzaWJsZSI6dHJ1ZSwiaWQiOjE0LCJwb3NpdGlvbiI6MTQsImRyaXZldHJhaW4iOjYsImZ1ZWwiOjMsInByaWNlIjo3MTIxMCwiY29uc28iOjEwMDAsImNhckNhdGVnb3J5IjoidHJ1Y2siLCJjYXJNYWtlIjoiZm9yZCIsImNhck1vZGVsIjoiU3VwZXIgRHV0eSBGLTQ1MCBEUlciLCJzcGVjaWFsT3JkZXIiOjB9LCJmYnhfY29tbWVyY2lhbF8xNSI6eyJ2aXNpYmxlIjp0cnVlLCJpZCI6MTUsInBvc2l0aW9uIjoxNSwiZHJpdmV0cmFpbiI6NiwiZnVlbCI6MywicHJpY2UiOjc0MTYwLCJjb25zbyI6MTAwMCwiY2FyQ2F0ZWdvcnkiOiJjb21tZXJjaWFsIiwiY2FyTWFrZSI6ImZvcmQiLCJjYXJNb2RlbCI6IlN1cGVyIER1dHkgRi01NTAgRFJXIiwic3BlY2lhbE9yZGVyIjowfSwiZmJ4X2NvbW1lcmNpYWxfMTYiOnsidmlzaWJsZSI6dHJ1ZSwiaWQiOjE2LCJwb3NpdGlvbiI6MTYsImRyaXZldHJhaW4iOjYsImZ1ZWwiOjMsInByaWNlIjo3MzQxMCwiY29uc28iOjEwMDAsImNhckNhdGVnb3J5IjoiY29tbWVyY2lhbCIsImNhck1ha2UiOiJmb3JkIiwiY2FyTW9kZWwiOiJTdXBlciBEdXR5IEYtNTUwIERSVyIsInNwZWNpYWxPcmRlciI6MH0sImZieF9jb21tZXJjaWFsXzE3Ijp7InZpc2libGUiOnRydWUsImlkIjoxNywicG9zaXRpb24iOjE3LCJkcml2ZXRyYWluIjo2LCJmdWVsIjoyLCJwcmljZSI6ODkyODAsImNvbnNvIjoxMDAwLCJjYXJDYXRlZ29yeSI6ImNvbW1lcmNpYWwiLCJjYXJNYWtlIjoiZm9yZCIsImNhck1vZGVsIjoiU3VwZXIgRHV0eSBGLTYwMCBEUlciLCJzcGVjaWFsT3JkZXIiOjB9LCJmYnhfY29tbWVyY2lhbF8xOCI6eyJ2aXNpYmxlIjp0cnVlLCJpZCI6MTgsInBvc2l0aW9uIjoxOCwiZHJpdmV0cmFpbiI6MywiZnVlbCI6MSwicHJpY2UiOjYyOTk1LCJjb25zbyI6MTAwMCwiY2FyQ2F0ZWdvcnkiOiJjb21tZXJjaWFsIiwiY2FyTWFrZSI6ImZvcmQiLCJjYXJNb2RlbCI6IlRyYW5zaXQgQ2FyZ28gVmFuIiwic3BlY2lhbE9yZGVyIjowfSwiZmJ4X2NvbW1lcmNpYWxfMTkiOnsidmlzaWJsZSI6dHJ1ZSwiaWQiOjE5LCJwb3NpdGlvbiI6MTksImRyaXZldHJhaW4iOjMsImZ1ZWwiOjEsInByaWNlIjo2MDY0NSwiY29uc28iOjEwMDAsImNhckNhdGVnb3J5IjoiY29tbWVyY2lhbCIsImNhck1ha2UiOiJmb3JkIiwiY2FyTW9kZWwiOiJUcmFuc2l0IEN1dGF3YXkiLCJzcGVjaWFsT3JkZXIiOjB9LCJmYnhfY29tbWVyY2lhbF8yMCI6eyJ2aXNpYmxlIjp0cnVlLCJpZCI6MjAsInBvc2l0aW9uIjoyMCwiZHJpdmV0cmFpbiI6MywiZnVlbCI6MSwicHJpY2UiOjYwNTQ1LCJjb25zbyI6MTAwMCwiY2FyQ2F0ZWdvcnkiOiJjb21tZXJjaWFsIiwiY2FyTWFrZSI6ImZvcmQiLCJjYXJNb2RlbCI6IlRyYW5zaXQgQ3V0YXdheSIsInNwZWNpYWxPcmRlciI6MH0sImZieF9jb21tZXJjaWFsXzIxIjp7InZpc2libGUiOnRydWUsImlkIjoyMSwicG9zaXRpb24iOjIxLCJkcml2ZXRyYWluIjozLCJmdWVsIjoxLCJwcmljZSI6NzYyNDUsImNvbnNvIjoxMDAwLCJjYXJDYXRlZ29yeSI6ImNvbW1lcmNpYWwiLCJjYXJNYWtlIjoiZm9yZCIsImNhck1vZGVsIjoiVHJhbnNpdCBQYXNzZW5nZXIgV2Fnb24iLCJzcGVjaWFsT3JkZXIiOjB9LCJmYnhfY29tbWVyY2lhbF8yMiI6eyJ2aXNpYmxlIjp0cnVlLCJpZCI6MjIsInBvc2l0aW9uIjoyMiwiZHJpdmV0cmFpbiI6MywiZnVlbCI6MSwicHJpY2UiOjc1Mzk1LCJjb25zbyI6MTAwMCwiY2FyQ2F0ZWdvcnkiOiJjb21tZXJjaWFsIiwiY2FyTWFrZSI6ImZvcmQiLCJjYXJNb2RlbCI6IlRyYW5zaXQgUGFzc2VuZ2VyIFdhZ29uIiwic3BlY2lhbE9yZGVyIjowfX0sImh5YnJpZCI6eyJmYnhfaHlicmlkXzEiOnsidmlzaWJsZSI6dHJ1ZSwiaWQiOjEsInBvc2l0aW9uIjoxLCJkcml2ZXRyYWluIjoxLCJmdWVsIjo4LCJwcmljZSI6NDY5OTQsImNvbnNvIjo2LjUsImNhckNhdGVnb3J5Ijoic3V2IiwiY2FyTWFrZSI6ImZvcmQiLCJjYXJNb2RlbCI6IkVzY2FwZSBIeWJyaWQiLCJzcGVjaWFsT3JkZXIiOjB9LCJmYnhfaHlicmlkXzIiOnsidmlzaWJsZSI6dHJ1ZSwiaWQiOjIsInBvc2l0aW9uIjoyLCJkcml2ZXRyYWluIjoxLCJmdWVsIjo4LCJwcmljZSI6NDYzNDQsImNvbnNvIjo2LjUsImNhckNhdGVnb3J5Ijoic3V2IiwiY2FyTWFrZSI6ImZvcmQiLCJjYXJNb2RlbCI6IkVzY2FwZSBIeWJyaWQiLCJzcGVjaWFsT3JkZXIiOjB9LCJmYnhfaHlicmlkXzMiOnsidmlzaWJsZSI6dHJ1ZSwiaWQiOjMsInBvc2l0aW9uIjozLCJkcml2ZXRyYWluIjoxLCJmdWVsIjo4LCJwcmljZSI6MzgwOTUsImNvbnNvIjo2Ljc5OTk5OTk5OTk5OTk5OTgyMjM2NDMxNjA1OTk3NDk1MzUzMjIxODkzMzEwNTQ2ODc1LCJjYXJDYXRlZ29yeSI6InRydWNrIiwiY2FyTWFrZSI6ImZvcmQiLCJjYXJNb2RlbCI6Ik1hdmVyaWNrIEh5YnJpZCIsInNwZWNpYWxPcmRlciI6MH0sImZieF9oeWJyaWRfNCI6eyJ2aXNpYmxlIjp0cnVlLCJpZCI6NCwicG9zaXRpb24iOjQsImRyaXZldHJhaW4iOjEsImZ1ZWwiOjgsInByaWNlIjozNjk5NSwiY29uc28iOjYuNzAwMDAwMDAwMDAwMDAwMTc3NjM1NjgzOTQwMDI1MDQ2NDY3NzgxMDY2ODk0NTMxMjUsImNhckNhdGVnb3J5IjoidHJ1Y2siLCJjYXJNYWtlIjoiZm9yZCIsImNhck1vZGVsIjoiTWF2ZXJpY2sgSHlicmlkIiwic3BlY2lhbE9yZGVyIjowfX0sInBoZXYiOnsiZmJ4X3BoZXZfMSI6eyJ2aXNpYmxlIjp0cnVlLCJpZCI6MSwicG9zaXRpb24iOjEsImRyaXZldHJhaW4iOjEsImZ1ZWwiOjE2LCJwcmljZSI6NDM5OTQsImNvbnNvIjo2LjI5OTk5OTk5OTk5OTk5OTgyMjM2NDMxNjA1OTk3NDk1MzUzMjIxODkzMzEwNTQ2ODc1LCJjYXJDYXRlZ29yeSI6InN1diIsImNhck1ha2UiOiJmb3JkIiwiY2FyTW9kZWwiOiJFc2NhcGUgUEhFViIsInNwZWNpYWxPcmRlciI6MH0sImZieF9waGV2XzIiOnsidmlzaWJsZSI6dHJ1ZSwiaWQiOjIsInBvc2l0aW9uIjoyLCJkcml2ZXRyYWluIjoxLCJmdWVsIjoxNiwicHJpY2UiOjQzODk0LCJjb25zbyI6Ni4yOTk5OTk5OTk5OTk5OTk4MjIzNjQzMTYwNTk5NzQ5NTM1MzIyMTg5MzMxMDU0Njg3NSwiY2FyQ2F0ZWdvcnkiOiJzdXYiLCJjYXJNYWtlIjoiZm9yZCIsImNhck1vZGVsIjoiRXNjYXBlIFBIRVYiLCJzcGVjaWFsT3JkZXIiOjB9fSwidHJ1Y2siOnsiZmJ4X3RydWNrXzEiOnsidmlzaWJsZSI6dHJ1ZSwiaWQiOjEsInBvc2l0aW9uIjoxLCJkcml2ZXRyYWluIjo2LCJmdWVsIjoxLCJwcmljZSI6NTU0ODUsImNvbnNvIjoxMDAwLCJjYXJDYXRlZ29yeSI6InRydWNrIiwiY2FyTWFrZSI6ImZvcmQiLCJjYXJNb2RlbCI6IkYtMTUwIiwic3BlY2lhbE9yZGVyIjowfSwiZmJ4X3RydWNrXzIiOnsidmlzaWJsZSI6dHJ1ZSwiaWQiOjIsInBvc2l0aW9uIjoyLCJkcml2ZXRyYWluIjo2LCJmdWVsIjoxLCJwcmljZSI6NTMzMDAsImNvbnNvIjo5LjMwMDAwMDAwMDAwMDAwMDcxMDU0MjczNTc2MDEwMDE4NTg3MTEyNDI2NzU3ODEyNSwiY2FyQ2F0ZWdvcnkiOiJ0cnVjayIsImNhck1ha2UiOiJmb3JkIiwiY2FyTW9kZWwiOiJGLTE1MCIsInNwZWNpYWxPcmRlciI6MH0sImZieF90cnVja18zIjp7InZpc2libGUiOnRydWUsImlkIjozLCJwb3NpdGlvbiI6MywiZHJpdmV0cmFpbiI6MSwiZnVlbCI6MSwicHJpY2UiOjQ0Mzk1LCJjb25zbyI6Ny43OTk5OTk5OTk5OTk5OTk4MjIzNjQzMTYwNTk5NzQ5NTM1MzIyMTg5MzMxMDU0Njg3NSwiY2FyQ2F0ZWdvcnkiOiJ0cnVjayIsImNhck1ha2UiOiJmb3JkIiwiY2FyTW9kZWwiOiJNYXZlcmljayIsInNwZWNpYWxPcmRlciI6MH0sImZieF90cnVja180Ijp7InZpc2libGUiOnRydWUsImlkIjo0LCJwb3NpdGlvbiI6NCwiZHJpdmV0cmFpbiI6MSwiZnVlbCI6MSwicHJpY2UiOjQ0Mjk1LCJjb25zbyI6Ny43OTk5OTk5OTk5OTk5OTk4MjIzNjQzMTYwNTk5NzQ5NTM1MzIyMTg5MzMxMDU0Njg3NSwiY2FyQ2F0ZWdvcnkiOiJ0cnVjayIsImNhck1ha2UiOiJmb3JkIiwiY2FyTW9kZWwiOiJNYXZlcmljayIsInNwZWNpYWxPcmRlciI6MH0sImZieF90cnVja181Ijp7InZpc2libGUiOnRydWUsImlkIjo1LCJwb3NpdGlvbiI6NSwiZHJpdmV0cmFpbiI6NCwiZnVlbCI6MSwicHJpY2UiOjQ1OTY1LCJjb25zbyI6OS45MDAwMDAwMDAwMDAwMDAzNTUyNzEzNjc4ODAwNTAwOTI5MzU1NjIxMzM3ODkwNjI1LCJjYXJDYXRlZ29yeSI6InRydWNrIiwiY2FyTWFrZSI6ImZvcmQiLCJjYXJNb2RlbCI6IlJhbmdlciIsInNwZWNpYWxPcmRlciI6MH0sImZieF90cnVja182Ijp7InZpc2libGUiOnRydWUsImlkIjo2LCJwb3NpdGlvbiI6NiwiZHJpdmV0cmFpbiI6NCwiZnVlbCI6MSwicHJpY2UiOjQ1MzY1LCJjb25zbyI6OSwiY2FyQ2F0ZWdvcnkiOiJ0cnVjayIsImNhck1ha2UiOiJmb3JkIiwiY2FyTW9kZWwiOiJSYW5nZXIiLCJzcGVjaWFsT3JkZXIiOjB9LCJmYnhfdHJ1Y2tfNyI6eyJ2aXNpYmxlIjp0cnVlLCJpZCI6NywicG9zaXRpb24iOjcsImRyaXZldHJhaW4iOjYsImZ1ZWwiOjEsInByaWNlIjo2NDUzNCwiY29uc28iOjEwMDAsImNhckNhdGVnb3J5IjoidHJ1Y2siLCJjYXJNYWtlIjoiZm9yZCIsImNhck1vZGVsIjoiU3VwZXIgRHV0eSBGLTI1MCBTUlciLCJzcGVjaWFsT3JkZXIiOjB9LCJmYnhfdHJ1Y2tfOCI6eyJ2aXNpYmxlIjp0cnVlLCJpZCI6OCwicG9zaXRpb24iOjgsImRyaXZldHJhaW4iOjYsImZ1ZWwiOjEsInByaWNlIjo2NDAzNCwiY29uc28iOjEwMDAsImNhckNhdGVnb3J5IjoidHJ1Y2siLCJjYXJNYWtlIjoiZm9yZCIsImNhck1vZGVsIjoiU3VwZXIgRHV0eSBGLTI1MCBTUlciLCJzcGVjaWFsT3JkZXIiOjB9LCJmYnhfdHJ1Y2tfOSI6eyJ2aXNpYmxlIjp0cnVlLCJpZCI6OSwicG9zaXRpb24iOjksImRyaXZldHJhaW4iOjYsImZ1ZWwiOjEsInByaWNlIjo2MjQ3NCwiY29uc28iOjEwMDAsImNhckNhdGVnb3J5IjoidHJ1Y2siLCJjYXJNYWtlIjoiZm9yZCIsImNhck1vZGVsIjoiU3VwZXIgRHV0eSBGLTI1MCBTUlciLCJzcGVjaWFsT3JkZXIiOjB9LCJmYnhfdHJ1Y2tfMTAiOnsidmlzaWJsZSI6dHJ1ZSwiaWQiOjEwLCJwb3NpdGlvbiI6MTAsImRyaXZldHJhaW4iOjYsImZ1ZWwiOjEsInByaWNlIjo2Nzc4MCwiY29uc28iOjEwMDAsImNhckNhdGVnb3J5IjoidHJ1Y2siLCJjYXJNYWtlIjoiZm9yZCIsImNhck1vZGVsIjoiU3VwZXIgRHV0eSBGLTM1MCBEUlciLCJzcGVjaWFsT3JkZXIiOjB9LCJmYnhfdHJ1Y2tfMTEiOnsidmlzaWJsZSI6dHJ1ZSwiaWQiOjExLCJwb3NpdGlvbiI6MTEsImRyaXZldHJhaW4iOjYsImZ1ZWwiOjMsInByaWNlIjo2NTcyMCwiY29uc28iOjEwMDAsImNhckNhdGVnb3J5IjoidHJ1Y2siLCJjYXJNYWtlIjoiZm9yZCIsImNhck1vZGVsIjoiU3VwZXIgRHV0eSBGLTM1MCBEUlciLCJzcGVjaWFsT3JkZXIiOjB9LCJmYnhfdHJ1Y2tfMTIiOnsidmlzaWJsZSI6dHJ1ZSwiaWQiOjEyLCJwb3NpdGlvbiI6MTIsImRyaXZldHJhaW4iOjYsImZ1ZWwiOjEsInByaWNlIjo2NjUzNCwiY29uc28iOjEwMDAsImNhckNhdGVnb3J5IjoidHJ1Y2siLCJjYXJNYWtlIjoiZm9yZCIsImNhck1vZGVsIjoiU3VwZXIgRHV0eSBGLTM1MCBTUlciLCJzcGVjaWFsT3JkZXIiOjB9fSwiZWxlY3RyaWMiOnsiZmJ4X2VsZWN0cmljXzEiOnsidmlzaWJsZSI6dHJ1ZSwiaWQiOjEsInBvc2l0aW9uIjoxLCJkcml2ZXRyYWluIjoxLCJmdWVsIjo0LCJwcmljZSI6NzM4OTAsImNvbnNvIjoxMDAwLCJjYXJDYXRlZ29yeSI6InRydWNrIiwiY2FyTWFrZSI6ImZvcmQiLCJjYXJNb2RlbCI6IkYtMTUwIExpZ2h0bmluZyIsInNwZWNpYWxPcmRlciI6MH0sImZieF9lbGVjdHJpY18yIjp7InZpc2libGUiOnRydWUsImlkIjoyLCJwb3NpdGlvbiI6MiwiZHJpdmV0cmFpbiI6MSwiZnVlbCI6NCwicHJpY2UiOjYyODkwLCJjb25zbyI6MTAwMCwiY2FyQ2F0ZWdvcnkiOiJ0cnVjayIsImNhck1ha2UiOiJmb3JkIiwiY2FyTW9kZWwiOiJGLTE1MCBMaWdodG5pbmciLCJzcGVjaWFsT3JkZXIiOjB9LCJmYnhfZWxlY3RyaWNfMyI6eyJ2aXNpYmxlIjp0cnVlLCJpZCI6MywicG9zaXRpb24iOjMsImRyaXZldHJhaW4iOjMsImZ1ZWwiOjQsInByaWNlIjo0ODA5MCwiY29uc28iOjEwMDAsImNhckNhdGVnb3J5Ijoic3V2IiwiY2FyTWFrZSI6ImZvcmQiLCJjYXJNb2RlbCI6Ik11c3RhbmcgTWFjaC1FIiwic3BlY2lhbE9yZGVyIjowfSwiZmJ4X2VsZWN0cmljXzQiOnsidmlzaWJsZSI6dHJ1ZSwiaWQiOjQsInBvc2l0aW9uIjo0LCJkcml2ZXRyYWluIjozLCJmdWVsIjo0LCJwcmljZSI6NTU2OTAsImNvbnNvIjoxMDAwLCJjYXJDYXRlZ29yeSI6InN1diIsImNhck1ha2UiOiJmb3JkIiwiY2FyTW9kZWwiOiJNdXN0YW5nIE1hY2gtRSIsInNwZWNpYWxPcmRlciI6MH19LCJjYXIiOnsiZmJ4X2Nhcl8xIjp7InZpc2libGUiOnRydWUsImlkIjoxLCJwb3NpdGlvbiI6MSwiZHJpdmV0cmFpbiI6MiwiZnVlbCI6MSwicHJpY2UiOjQxMzI1LCJjb25zbyI6Ny4wOTk5OTk5OTk5OTk5OTk2NDQ3Mjg2MzIxMTk5NDk5MDcwNjQ0Mzc4NjYyMTA5Mzc1LCJjYXJDYXRlZ29yeSI6ImNhciIsImNhck1ha2UiOiJmb3JkIiwiY2FyTW9kZWwiOiJNdXN0YW5nIiwic3BlY2lhbE9yZGVyIjowfSwiZmJ4X2Nhcl8yIjp7InZpc2libGUiOnRydWUsImlkIjoyLCJwb3NpdGlvbiI6MiwiZHJpdmV0cmFpbiI6MiwiZnVlbCI6MSwicHJpY2UiOjQxMzI1LCJjb25zbyI6Ny4wOTk5OTk5OTk5OTk5OTk2NDQ3Mjg2MzIxMTk5NDk5MDcwNjQ0Mzc4NjYyMTA5Mzc1LCJjYXJDYXRlZ29yeSI6ImNhciIsImNhck1ha2UiOiJmb3JkIiwiY2FyTW9kZWwiOiJNdXN0YW5nIiwic3BlY2lhbE9yZGVyIjowfX0sImNvbnZlcnRpYmxlIjp7ImZieF9jb252ZXJ0aWJsZV8xIjp7InZpc2libGUiOnRydWUsImlkIjoxLCJwb3NpdGlvbiI6MSwiZHJpdmV0cmFpbiI6MiwiZnVlbCI6MSwicHJpY2UiOjQ4MjI1LCJjb25zbyI6Ny4wOTk5OTk5OTk5OTk5OTk2NDQ3Mjg2MzIxMTk5NDk5MDcwNjQ0Mzc4NjYyMTA5Mzc1LCJjYXJDYXRlZ29yeSI6ImNvbnZlcnRpYmxlIiwiY2FyTWFrZSI6ImZvcmQiLCJjYXJNb2RlbCI6Ik11c3RhbmcgQ29udmVydGlibGUiLCJzcGVjaWFsT3JkZXIiOjB9LCJmYnhfY29udmVydGlibGVfMiI6eyJ2aXNpYmxlIjp0cnVlLCJpZCI6MiwicG9zaXRpb24iOjIsImRyaXZldHJhaW4iOjIsImZ1ZWwiOjEsInByaWNlIjo0ODIyNSwiY29uc28iOjcuMDk5OTk5OTk5OTk5OTk5NjQ0NzI4NjMyMTE5OTQ5OTA3MDY0NDM3ODY2MjEwOTM3NSwiY2FyQ2F0ZWdvcnkiOiJjb252ZXJ0aWJsZSIsImNhck1ha2UiOiJmb3JkIiwiY2FyTW9kZWwiOiJNdXN0YW5nIENvbnZlcnRpYmxlIiwic3BlY2lhbE9yZGVyIjowfX19OwoJCQkJLyotLSovCgkJCQl2YXIgYm94UG9zaXRpb25zID0geyJmYnhfc3V2XzEiOjEsImZieF9zdXZfMiI6MiwiZmJ4X3N1dl8zIjozLCJmYnhfc3V2XzQiOjQsImZieF9jb21tZXJjaWFsXzEiOjEsImZieF9jb21tZXJjaWFsXzIiOjIsImZieF9jb21tZXJjaWFsXzMiOjMsImZieF9jb21tZXJjaWFsXzQiOjQsImZieF9jb21tZXJjaWFsXzUiOjUsImZieF9jb21tZXJjaWFsXzYiOjYsImZieF9jb21tZXJjaWFsXzciOjcsImZieF9jb21tZXJjaWFsXzgiOjgsImZieF9jb21tZXJjaWFsXzkiOjksImZieF9zdXZfNSI6NSwiZmJ4X3N1dl82Ijo2LCJmYnhfaHlicmlkXzEiOjEsImZieF9oeWJyaWRfMiI6MiwiZmJ4X3BoZXZfMSI6MSwiZmJ4X3BoZXZfMiI6MiwiZmJ4X3N1dl83Ijo3LCJmYnhfc3V2XzgiOjgsImZieF9zdXZfOSI6OSwiZmJ4X3N1dl8xMCI6MTAsImZieF9zdXZfMTEiOjExLCJmYnhfc3V2XzEyIjoxMiwiZmJ4X3RydWNrXzEiOjEsImZieF90cnVja18yIjoyLCJmYnhfZWxlY3RyaWNfMSI6MSwiZmJ4X2VsZWN0cmljXzIiOjIsImZieF90cnVja18zIjozLCJmYnhfdHJ1Y2tfNCI6NCwiZmJ4X2h5YnJpZF8zIjozLCJmYnhfaHlicmlkXzQiOjQsImZieF9jYXJfMSI6MSwiZmJ4X2Nhcl8yIjoyLCJmYnhfY29udmVydGlibGVfMSI6MSwiZmJ4X2NvbnZlcnRpYmxlXzIiOjIsImZieF9lbGVjdHJpY18zIjozLCJmYnhfZWxlY3RyaWNfNCI6NCwiZmJ4X3RydWNrXzUiOjUsImZieF90cnVja182Ijo2LCJmYnhfdHJ1Y2tfNyI6NywiZmJ4X3RydWNrXzgiOjgsImZieF90cnVja185Ijo5LCJmYnhfdHJ1Y2tfMTAiOjEwLCJmYnhfY29tbWVyY2lhbF8xMCI6MTAsImZieF90cnVja18xMSI6MTEsImZieF9jb21tZXJjaWFsXzExIjoxMSwiZmJ4X3RydWNrXzEyIjoxMiwiZmJ4X2NvbW1lcmNpYWxfMTIiOjEyLCJmYnhfY29tbWVyY2lhbF8xMyI6MTMsImZieF9jb21tZXJjaWFsXzE0IjoxNCwiZmJ4X2NvbW1lcmNpYWxfMTUiOjE1LCJmYnhfY29tbWVyY2lhbF8xNiI6MTYsImZieF9jb21tZXJjaWFsXzE3IjoxNywiZmJ4X2NvbW1lcmNpYWxfMTgiOjE4LCJmYnhfY29tbWVyY2lhbF8xOSI6MTksImZieF9jb21tZXJjaWFsXzIwIjoyMCwiZmJ4X2NvbW1lcmNpYWxfMjEiOjIxLCJmYnhfY29tbWVyY2lhbF8yMiI6MjJ9OwoJCQkJLyoqIEZpbHRlciBKUyBpbiBuZXdjYXJzLmpzICoqLwoJCQkJLypdXT4qLwoJCQkKCgkJCQl2YXIgTGVhZENvbmZpZ3MgPSAodHlwZW9mIExlYWRDb25maWdzICE9ICd1bmRlZmluZWQnKSA\/IExlYWRDb25maWdzIDoge307CgoJCQkJbGV0IGFjdGl2ZUxhbmcgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWN0aXZlc2l0ZWxhbmd1YWdlJykgPyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWN0aXZlc2l0ZWxhbmd1YWdlJykudmFsdWUgOiAnRlJFTkNIJzsKCgkJCQlMZWFkQ29uZmlncy5EZWFsZXJBcHBvaW50bWVudCA9IHsKCgkJCQkJdGl0bGU6IChhY3RpdmVMYW5nID09ICdFTkdMSVNIJyA\/ICdSZXF1ZXN0IGFuIGFwcG9pbnRtZW50JyA6ICdQcmVuZHJlIFJlbmRlei12b3VzJyksCgkJCQkJY2xvc2VPblN1Ym1pdCA6IHRydWUsCgkJCQkJbmFtZSA6ICdEZWFsZXJBcHBvaW50bWVudCcsCgoJCQkJCW9uQmVmb3JlT3BlbjogZnVuY3Rpb24obGVhZENvbmYpewogICAgICAgICAgICAgICAgICAgICAgICAkKGRvY3VtZW50KS50cmlnZ2VyKCdkZWFsZXJBcHBvaW50bWVudC5zdGFydCcpOwoKCQkJCQkJY29uc3QgdGltZVR4dEVsID0gbGVhZENvbmYubGVhZE5vZGUucXVlcnlTZWxlY3RvcignLnNlbGVjdGVkVGltZScpOwoJCQkJCQljb25zdCB0aW1lSW5wdXQgPSBsZWFkQ29uZi5sZWFkTm9kZS5xdWVyeVNlbGVjdG9yKCdbbmFtZT0iZGF0ZSJdJyk7CgkJCQkJCWNvbnN0IHBpY2tlciA9IGxlYWRDb25mLmxlYWROb2RlLnF1ZXJ5U2VsZWN0b3IoJy5kYXRlcGlja2VyJyk7CgkJCQkJCWNvbnN0IHBob25lRWwgPSBsZWFkQ29uZi5sZWFkTm9kZS5xdWVyeVNlbGVjdG9yKCdbbmFtZT0icGhvbmVudW0iXScpOwoJCQkJCQljb25zdCBob3Vyc0Jsb2NrID0gbGVhZENvbmYubGVhZE5vZGUucXVlcnlTZWxlY3RvcignLmhvdXJzTGlzdCcpOwoJCQkJCQlsZXQgZGF5Tm9kZXMgPSBBcnJheS5mcm9tKGhvdXJzQmxvY2suY2hpbGRyZW4pOwoJCQkJCQlsZXQgZGF0ZUZvcm1hdCA9ICBhY3RpdmVMYW5nID09ICdFTkdMSVNIJyA\/ICdGIGogWSwgSDppJyA6ICdqIEYgWSwgSDppJzsKCgoJCQkJCQljb25zdCBzZXRTZWxlY3RlZCA9IChzZWxlY3RlZERhdGVzLCBkYXRlU3RyLCBpbnN0YW5jZSkgPT4gewogICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGN1cnJlbnRseVNlbGVjdGVkRGF0ZSA9IHNlbGVjdGVkRGF0ZXNbMF0gfHwgbmV3IERhdGUoKTsvL2Rvbid0IHBsYXkgd2l0aCB0aGlzIG9yIG1pZ2h0IGFmZmVjdCBkYXRlL3RpbWUgc2VsZWN0aW9uCgkJCQkJCQlsZXQgZGF5TnVtID0gY3VycmVudGx5U2VsZWN0ZWREYXRlLmdldERheSgpOwoKCQkJCQkJCWRheU51bSA9IGRheU51bSA9PSAwID8gNyA6IGRheU51bTsKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGF5TWluVGltZSA9IGRheU5vZGVzW2RheU51bSAtIDFdLmRhdGFzZXQubWluaG91ciB8fCAnMDk6MDAnOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRheU1heFRpbWUgPSBkYXlOb2Rlc1tkYXlOdW0gLSAxXS5kYXRhc2V0Lm1heGhvdXIgfHwgJzE3OjAwJzsKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL21pblRpbWUgbWFuYWdlbWVudAogICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9pZiBkYXRlIGlzIHRvZGF5LCBtaW5UaW1lIG5lZWRzIHRvIGJlIGEgbWluaW11bSBvZiAxaG91ciBsYXRlciBmcm9tIGN1cnJlbnQgdGltZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoc2VsZWN0ZWREYXRlc1swXSl7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG5vdyA9IG5ldyBEYXRlKCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGFjY2VwdGVkRXhjZXB0aW9uID0gNTsvL21pbnV0ZXMKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihzZWxlY3RlZERhdGVzWzBdLnRvRGF0ZVN0cmluZygpID09IG5vdy50b0RhdGVTdHJpbmcoKSl7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtaW5Ib3VyID0gbm93LmdldEhvdXJzKCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtaW5NaW51dGUgPSBub3cuZ2V0TWludXRlcygpICsgNjA7Ly9hZGQgMSBob3VyCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKG1pbk1pbnV0ZSA+PSA2MCl7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaW5Ib3VyICs9IE1hdGguZmxvb3IobWluTWludXRlIC8gNjApOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWluTWludXRlID0gbWluTWludXRlICUgNjA7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihtaW5NaW51dGUgJSAxNSl7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9tYWtlIGl0IHNvIHRoYXQgbWludXRlcyBhcmUgZWl0aGVyIHJvdW5kZWQgdG8gbmV4dCAxNW1pbiBpbmNyZW1lbnQgb3IgdG8gdGhlIHByZXZpb3VzIG9uZSBpZiB3aXRoaW4gYWNjZXB0ZWRFeGNlcHRpb24KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihtaW5NaW51dGUgJSAxNSA8PSBhY2NlcHRlZEV4Y2VwdGlvbil7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pbk1pbnV0ZSA9IG1pbk1pbnV0ZSAtIChtaW5NaW51dGUgJSAxNSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfWVsc2UgaWYoKG1pbk1pbnV0ZSAlIDE1ID4gYWNjZXB0ZWRFeGNlcHRpb24pKXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWluTWludXRlID0gbWluTWludXRlICsgKDE1IC0gKG1pbk1pbnV0ZSAlIDE1KSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfWVsc2V7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9kbyBub3RoaW5nLCBhbHJlYWR5IGF0IGluY3JlbWVudAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKG1pbkhvdXIgPj0gMjQpewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9ubyBtb3JlIGF2YWlsYWJsZSB0aW1lIHRvZGF5LCBzZXQgdG8gbmV4dCBkYXkgYXQgMDk6MDAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluc3RhbmNlLnNldERhdGUobmV3IERhdGUoKS5mcF9pbmNyKDEpLCB0cnVlKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGluc3RhbmNlLnNldCgnbWluVGltZScsIGRheU1pblRpbWUpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9ZWxzZXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRheU1pblRpbWUgPSBTdHJpbmcobWluSG91cikucGFkU3RhcnQoMiwnMCcpICsgJzonICsgU3RyaW5nKG1pbk1pbnV0ZSkucGFkU3RhcnQoMiwnMCcpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vbWF4VGltZSBtYW5hZ2VtZW50CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBsYXN0IGFwcG9pbnRtZW50IHRpbWUgbWFuYWdlbWVudCAoMTVtaW4gYmVmb3JlIGNsb3NpbmcgdGltZSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBbY2xvc2luZ0hvdXJzLCBjbG9zaW5nTWludXRlc10gPSBkYXlNYXhUaW1lLnNwbGl0KCc6JykubWFwKE51bWJlcik7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGF5RGF0ZSA9IG5ldyBEYXRlKCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXlEYXRlLnNldEhvdXJzKGNsb3NpbmdIb3VycywgY2xvc2luZ01pbnV0ZXMsIDAsIDApOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF5RGF0ZS5zZXRNaW51dGVzKGRheURhdGUuZ2V0TWludXRlcygpIC0gMTUpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9mb3JtYXQgdGhlIG5ldyB0aW1lIGJhY2sgaW50byAnSEg6bW0nIGZvcm1hdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGFjdHVhbENsb3NpbmdIb3VycyA9IGRheURhdGUuZ2V0SG91cnMoKS50b1N0cmluZygpLnBhZFN0YXJ0KDIsICcwJyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgYWN0dWFsQ2xvc2luZ01pbnV0ZXMgPSBkYXlEYXRlLmdldE1pbnV0ZXMoKS50b1N0cmluZygpLnBhZFN0YXJ0KDIsICcwJyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXlNYXhUaW1lID0gYWN0dWFsQ2xvc2luZ0hvdXJzICsgJzonICsgYWN0dWFsQ2xvc2luZ01pbnV0ZXM7CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9zZXQgc3RhcnQvZW5kIHRpbWUgZm9yIHRoYXQgZGF5CgkJCQkJCQlpbnN0YW5jZS5zZXQoJ21pblRpbWUnLCBkYXlNaW5UaW1lKTsKCQkJCQkJCWluc3RhbmNlLnNldCgnbWF4VGltZScsIGRheU1heFRpbWUpOwoKCQkJCQkJCS8vU2V0IGN1cnJlbnQgZGF0ZSBpbml0aWFsbHkKCQkJCQkJCXRpbWVUeHRFbC50ZXh0Q29udGVudCA9ICFzZWxlY3RlZERhdGVzLmxlbmd0aAoJCQkJCQkJCQkJCQkgID8gaW5zdGFuY2UuZm9ybWF0RGF0ZShuZXcgRGF0ZSgpLmZwX2luY3IoMSksIChhY3RpdmVMYW5nID09ICdFTkdMSVNIJyA\/ICdGIGogWSwgMTI6MDAnIDogJ2ogRiBZLCAxMjowMCcpKQoJCQkJCQkJCQkJCQkgIDogZGF0ZVN0cjsKCgkJCQkJCQkvL2dldCB0aGUgZGF0ZSBpbiBlbmdsaXNoIGFuZCBmcmVuY2ggZm9yIHRoZSBsb2NhbCBzdG9yYWdlCgkJCQkJCQl0aW1lVHh0RWwuZGF0YXNldC5lbiA9IGluc3RhbmNlLmZvcm1hdERhdGUobmV3IERhdGUoKS5mcF9pbmNyKDEpLCdGIGogWSwgMTI6MDAnLCBmbGF0cGlja3IubDEwbnMuZW4pOwoJCQkJCQkJdGltZVR4dEVsLmRhdGFzZXQuZnIgPSBpbnN0YW5jZS5mb3JtYXREYXRlKG5ldyBEYXRlKCkuZnBfaW5jcigxKSwnaiBGIFksIDEyOjAwJywgZmxhdHBpY2tyLmwxMG5zLmZyKTsKCgkJCQkJCQl0aW1lSW5wdXQudmFsdWUgPSB0aW1lVHh0RWwudGV4dENvbnRlbnQ7CgoJCQkJCQkJaW5zdGFuY2UuaG91ckVsZW1lbnQuYmx1cigpOwoJCQkJCQl9OwoKCQkJCQkJbGV0IGNsb3NlZERheXMgPSBbXTsKCQkJCQkJZGF5Tm9kZXMuZm9yRWFjaCgoZSxpKSA9PiB7CgkJCQkJCQlpZigoZS5kYXRhc2V0LmNsb3NlZCB8fCAnMCcpID09ICcxJykgY2xvc2VkRGF5cy5wdXNoKGkpCgkJCQkJCX0pOwoKCQkJCQkJLy9BZGQgZnJlbmNoIGxvY2FsaXphdGlvbiB3aGVuIG5lZWRlZAoJCQkJCQlpZihhY3RpdmVMYW5nID09ICdGUkVOQ0gnKXsKCQkJCQkJCWZsYXRwaWNrci5sb2NhbGl6ZShmbGF0cGlja3IubDEwbnMuZnIpOwoJCQkJCQl9CgoKCgkJCQkJCWNvbnN0IGZwID0gZmxhdHBpY2tyKHBpY2tlciwgewoJCQkJCQkJaW5saW5lOnRydWUsCgkJCQkJCQllbmFibGVUaW1lOiB0cnVlLAoJCQkJCQkJbWluRGF0ZTogJ3RvZGF5JywvL2JhY2sgZnJvbSBuZXcgRGF0ZSgpLmZwX2luY3IoMSkgYnV0IGFsc28gYWRkZWQgdGltZSB2YWxpZGF0aW9uIGZvciBtaW5UaW1lCgkJCQkJCQltaW5UaW1lOiAiMDk6MDAiLAoJCQkJCQkJbWF4VGltZTogIjE3OjAwIiwKCQkJCQkJCWRhdGVGb3JtYXQ6IGRhdGVGb3JtYXQsLy8iRCwgaiBGIFksIEg6aSIsCgkJCQkJCQltaW51dGVJbmNyZW1lbnQ6MTUsCgkJCQkJCQl0aW1lXzI0aHI6dHJ1ZSwKCQkJCQkJCW9uQ2hhbmdlOiBzZXRTZWxlY3RlZCwKCQkJCQkJCW9uUmVhZHk6IHNldFNlbGVjdGVkLAoJCQkJCQkJZGlzYWJsZTogWwoJCQkJCQkJCWZ1bmN0aW9uKGRhdGUpewoJCQkJCQkJCQlsZXQgZGF5TnVtID0gZGF0ZS5nZXREYXkoKSA9PSAwID8gNyA6IGRhdGUuZ2V0RGF5KCk7CgkJCQkJCQkJCXJldHVybiBjbG9zZWREYXlzLmluY2x1ZGVzKGRheU51bSAtIDEpOwoJCQkJCQkJCX0KCQkJCQkJCV0sCgkJCQkJCQlsb2NhbGU6IHsKCQkJCQkJCQlmaXJzdERheU9mV2VlazogMSAvLyBzdGFydCB3ZWVrIG9uIE1vbmRheQoJCQkJCQkJfQoKCQkJCQkJfSk7CgoJCQkJCX0sCgoJCQkJCW9uQmVmb3JlU3VibWl0IDogKGxlYWRDb25mKSA9PiB7CgkJCQkJCWNvbnN0IHRpbWVUeHRFbCA9IGxlYWRDb25mLmxlYWROb2RlLnF1ZXJ5U2VsZWN0b3IoJy5zZWxlY3RlZFRpbWUnKTsKCQkJCQkJZW1haWxIYW5kbGVyLmRlYWxlckFwcG9pbnRtZW50RGF0YSA9IHsKCQkJCQkJCWRhdGUgOiB0aW1lVHh0RWwudGV4dENvbnRlbnQKCQkJCQkJfTsKCQkJCQl9LAoKCQkJCQlvbkFmdGVyU3VibWl0IDogKGxlYWRDb25mKSA9PiB7CgoJCQkJCQljb25zdCB0aW1lVHh0RWwgPSBsZWFkQ29uZi5sZWFkTm9kZS5xdWVyeVNlbGVjdG9yKCcuc2VsZWN0ZWRUaW1lJyk7CgoJCQkJCQljb25zdCBjYiA9IHRyYWNrU3RlcCA9PiB7CgkJCQkJCQl0cmFja1N0ZXAuZGF0YXNldC5jb21wbF90eHRfZnIgPSB0cmFja1N0ZXAuZGF0YXNldC5jb21wbF90eHRfZnIucmVwbGFjZSgneyRBUFBPSU5UX0RBVEV9JywgdGltZVR4dEVsLmRhdGFzZXQuZnIpOwoJCQkJCQkJdHJhY2tTdGVwLmRhdGFzZXQuY29tcGxfdHh0X2VuID0gdHJhY2tTdGVwLmRhdGFzZXQuY29tcGxfdHh0X2VuLnJlcGxhY2UoJ3skQVBQT0lOVF9EQVRFfScsIHRpbWVUeHRFbC5kYXRhc2V0LmVuKTsKCQkJCQkJfTsKCgkJCQkJCWxldCBjb21wbGV0ZUV2ZW50ID0gbmV3IEN1c3RvbUV2ZW50KCd0cmFja3N0ZXAuY29tcGxldGUnLHsKCQkJCQkJCWRldGFpbDp7CgkJCQkJCQkJc3RlcElkIDogJ0RlYWxlckFwcG9pbnRtZW50JywKCQkJCQkJCQlvbkNvbXBsZXRlIDogY2IKCQkJCQkJCX0KCQkJCQkJfSk7CgoJCQkJCQlkb2N1bWVudC5kaXNwYXRjaEV2ZW50KGNvbXBsZXRlRXZlbnQpOwoKICAgICAgICAgICAgICAgICAgICAgICAgJChkb2N1bWVudCkudHJpZ2dlcignZGVhbGVyQXBwb2ludG1lbnQuZW5kJyk7CgkJCQkJfQoKCQkJCX0KCgkJCQovKiogL2pzL3NrZWxldG9uLmJlZm9yZS5qcyAqKi8KdmFyIF9fX2QyY19za2VsZXRvbmJlZm9yZWpzX2Nfb249IjIwMjUtMDUtMjMgMTc6MTM6MDMiOyd1c2Ugc3RyaWN0Jzt2YXIgX19fZDJjX3NrZWxldG9uYmVmb3JlanNfY19vbj0iMjAyNC0wMS0zMSAxNDozNzo1NyI7InVzZSBzdHJpY3QiO19fX2QyY19za2VsZXRvbmJlZm9yZWpzX2Nfb249IjIwMjMtMDYtMDEgMTI6MzA6MTkiOyJ1c2Ugc3RyaWN0IjtsZXQgJGpzY29tcCRudWxsaXNoJHRtcDA7d2luZG93LmdTcGVlZENvbm49cGFyc2VJbnQoTWF0aC5mbG9vcigoRGF0ZS5ub3coKS0obnVsbCE9KCRqc2NvbXAkbnVsbGlzaCR0bXAwPXdpbmRvdy5nVGVzdFNwZWVkQ29ubik\/JGpzY29tcCRudWxsaXNoJHRtcDA6MCkpLzFFMykpO2xldCAkanNjb21wJG51bGxpc2gkdG1wMTtjb25zb2xlLmxvZygiR1NQRUVELUJFRk9SRToiKyhEYXRlLm5vdygpLShudWxsIT0oJGpzY29tcCRudWxsaXNoJHRtcDE9d2luZG93LmdUZXN0U3BlZWRDb25uKT8kanNjb21wJG51bGxpc2gkdG1wMTowKSkvMUUzKTsKLyoqIC9qcy9qcXVlcnkuanMgKiovCnZhciBfX19kMmNfanF1ZXJ5anNfY19vbj0iMjAyNS0wNS0yMyAxNzowNTo0OSI7J3VzZSBzdHJpY3QnO3ZhciBfX19kMmNfanF1ZXJ5anNfY19vbj0iMjAyNC0wMy0yNSAxMjozMTozMyI7InVzZSBzdHJpY3QiOwohZnVuY3Rpb24obixkYSl7Im9iamVjdCI9PXR5cGVvZiBtb2R1bGUmJiJvYmplY3QiPT10eXBlb2YgbW9kdWxlLmV4cG9ydHM\/bW9kdWxlLmV4cG9ydHM9bi5kb2N1bWVudD9kYShuLCEwKTpmdW5jdGlvbih3YSl7aWYoIXdhLmRvY3VtZW50KXRocm93IEVycm9yKCJqUXVlcnkgcmVxdWlyZXMgYSB3aW5kb3cgd2l0aCBhIGRvY3VtZW50Iik7cmV0dXJuIGRhKHdhKX06ZGEobil9KCJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93P3dpbmRvdzp0aGlzLGZ1bmN0aW9uKG4sZGEpe2Z1bmN0aW9uIHdhKGEsYixjKXt2YXIgZSxmLGc9KGM9Y3x8TCkuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7aWYoZy50ZXh0PWEsYilmb3IoZSBpbiBMYykoZj1iW2VdfHxiLmdldEF0dHJpYnV0ZSYmYi5nZXRBdHRyaWJ1dGUoZSkpJiZnLnNldEF0dHJpYnV0ZShlLGYpO2MuaGVhZC5hcHBlbmRDaGlsZChnKS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGcpfWZ1bmN0aW9uIFUoYSl7cmV0dXJuIG51bGw9PWE\/YSsKIiI6Im9iamVjdCI9PXR5cGVvZiBhfHwiZnVuY3Rpb24iPT10eXBlb2YgYT9NYltrYy5jYWxsKGEpXXx8Im9iamVjdCI6dHlwZW9mIGF9ZnVuY3Rpb24gZWIoYSl7dmFyIGI9ISFhJiYibGVuZ3RoImluIGEmJmEubGVuZ3RoLGM9VShhKTtyZXR1cm4hTShhKSYmIWtiKGEpJiYoImFycmF5Ij09PWN8fDA9PT1ifHwibnVtYmVyIj09dHlwZW9mIGImJjA8YiYmYi0xIGluIGEpfWZ1bmN0aW9uIFgoYSxiKXtyZXR1cm4gYS5ub2RlTmFtZSYmYS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpPT09Yi50b0xvd2VyQ2FzZSgpfWZ1bmN0aW9uIGJhKGEsYil7cmV0dXJuIGI\/Ilx4MDAiPT09YT8iXHVmZmZkIjphLnNsaWNlKDAsLTEpKyJcXCIrYS5jaGFyQ29kZUF0KGEubGVuZ3RoLTEpLnRvU3RyaW5nKDE2KSsiICI6IlxcIithfWZ1bmN0aW9uIGphKGEsYixjKXtyZXR1cm4gTShiKT9kLmdyZXAoYSxmdW5jdGlvbihlLGYpe3JldHVybiEhYi5jYWxsKGUsZixlKSE9PWN9KTpiLm5vZGVUeXBlP2QuZ3JlcChhLApmdW5jdGlvbihlKXtyZXR1cm4gZT09PWIhPT1jfSk6InN0cmluZyIhPXR5cGVvZiBiP2QuZ3JlcChhLGZ1bmN0aW9uKGUpe3JldHVybi0xPE5hLmNhbGwoYixlKSE9PWN9KTpkLmZpbHRlcihiLGEsYyl9ZnVuY3Rpb24gbGIoYSxiKXtmb3IoOyhhPWFbYl0pJiYxIT09YS5ub2RlVHlwZTspO3JldHVybiBhfWZ1bmN0aW9uIFlhKGEpe3JldHVybiBhfWZ1bmN0aW9uIFphKGEpe3Rocm93IGE7fWZ1bmN0aW9uIG1iKGEsYixjLGUpe3ZhciBmO3RyeXthJiZNKGY9YS5wcm9taXNlKT9mLmNhbGwoYSkuZG9uZShiKS5mYWlsKGMpOmEmJk0oZj1hLnRoZW4pP2YuY2FsbChhLGIsYyk6Yi5hcHBseSh2b2lkIDAsW2FdLnNsaWNlKGUpKX1jYXRjaChnKXtjLmFwcGx5KHZvaWQgMCxbZ10pfX1mdW5jdGlvbiBPYSgpe0wucmVtb3ZlRXZlbnRMaXN0ZW5lcigiRE9NQ29udGVudExvYWRlZCIsT2EpO24ucmVtb3ZlRXZlbnRMaXN0ZW5lcigibG9hZCIsT2EpO2QucmVhZHkoKX1mdW5jdGlvbiBOYihhLGIpe3JldHVybiBiLnRvVXBwZXJDYXNlKCl9CmZ1bmN0aW9uIEJhKGEpe3JldHVybiBhLnJlcGxhY2UoTWMsIm1zLSIpLnJlcGxhY2UoTmMsTmIpfWZ1bmN0aW9uIEphKCl7dGhpcy5leHBhbmRvPWQuZXhwYW5kbytKYS51aWQrK31mdW5jdGlvbiBPYihhLGIsYyl7dmFyIGUsZjtpZih2b2lkIDA9PT1jJiYxPT09YS5ub2RlVHlwZSlpZihlPSJkYXRhLSIrYi5yZXBsYWNlKE9jLCItJCYiKS50b0xvd2VyQ2FzZSgpLCJzdHJpbmciPT10eXBlb2YoYz1hLmdldEF0dHJpYnV0ZShlKSkpe3RyeXtjPSJ0cnVlIj09PShmPWMpfHwiZmFsc2UiIT09ZiYmKCJudWxsIj09PWY\/bnVsbDpmPT09K2YrIiI\/K2Y6UGMudGVzdChmKT9KU09OLnBhcnNlKGYpOmYpfWNhdGNoKGcpe314YS5zZXQoYSxiLGMpfWVsc2UgYz12b2lkIDA7cmV0dXJuIGN9ZnVuY3Rpb24gUGIoYSxiLGMsZSl7dmFyIGYsZyxoPTIwLG09ZT9mdW5jdGlvbigpe3JldHVybiBlLmN1cigpfTpmdW5jdGlvbigpe3JldHVybiBkLmNzcyhhLGIsIiIpfSxsPW0oKSx0PWMmJmNbM118fAooZC5jc3NOdW1iZXJbYl0\/IiI6InB4Iiksdz1hLm5vZGVUeXBlJiYoZC5jc3NOdW1iZXJbYl18fCJweCIhPT10JiYrbCkmJnliLmV4ZWMoZC5jc3MoYSxiKSk7aWYodyYmd1szXSE9PXQpe2wvPTI7dD10fHx3WzNdO2Zvcih3PStsfHwxO2gtLTspZC5zdHlsZShhLGIsdyt0KSwwPj0oMS1nKSooMS0oZz1tKCkvbHx8LjUpKSYmKGg9MCksdy89Zzt3Kj0yO2Quc3R5bGUoYSxiLHcrdCk7Yz1jfHxbXX1yZXR1cm4gYyYmKHc9K3d8fCtsfHwwLGY9Y1sxXT93KyhjWzFdKzEpKmNbMl06K2NbMl0sZSYmKGUudW5pdD10LGUuc3RhcnQ9dyxlLmVuZD1mKSksZn1mdW5jdGlvbiAkYShhLGIpe2Zvcih2YXIgYyxlLGYsZyxoLG0sbCx0PVtdLHc9MCxyPWEubGVuZ3RoO3c8cjt3KyspKGU9YVt3XSkuc3R5bGUmJihjPWUuc3R5bGUuZGlzcGxheSxiPygibm9uZSI9PT1jJiYodFt3XT1HLmdldChlLCJkaXNwbGF5Iil8fG51bGwsdFt3XXx8KGUuc3R5bGUuZGlzcGxheT0iIikpLCIiPT09ZS5zdHlsZS5kaXNwbGF5JiYKUWIoZSkmJih0W3ddPShsPWg9Zz12b2lkIDAsaD0oZj1lKS5vd25lckRvY3VtZW50LG09Zi5ub2RlTmFtZSwobD1sY1ttXSl8fChnPWguYm9keS5hcHBlbmRDaGlsZChoLmNyZWF0ZUVsZW1lbnQobSkpLGw9ZC5jc3MoZywiZGlzcGxheSIpLGcucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChnKSwibm9uZSI9PT1sJiYobD0iYmxvY2siKSxsY1ttXT1sKSkpKToibm9uZSIhPT1jJiYodFt3XT0ibm9uZSIsRy5zZXQoZSwiZGlzcGxheSIsYykpKTtmb3Iodz0wO3c8cjt3KyspbnVsbCE9dFt3XSYmKGFbd10uc3R5bGUuZGlzcGxheT10W3ddKTtyZXR1cm4gYX1mdW5jdGlvbiBzYShhLGIpe3ZhciBjO3JldHVybiBjPSJ1bmRlZmluZWQiIT10eXBlb2YgYS5nZXRFbGVtZW50c0J5VGFnTmFtZT9hLmdldEVsZW1lbnRzQnlUYWdOYW1lKGJ8fCIqIik6InVuZGVmaW5lZCIhPXR5cGVvZiBhLnF1ZXJ5U2VsZWN0b3JBbGw\/YS5xdWVyeVNlbGVjdG9yQWxsKGJ8fCIqIik6W10sdm9pZCAwPT09Ynx8YiYmClgoYSxiKT9kLm1lcmdlKFthXSxjKTpjfWZ1bmN0aW9uIG5iKGEsYil7Zm9yKHZhciBjPTAsZT1hLmxlbmd0aDtjPGU7YysrKUcuc2V0KGFbY10sImdsb2JhbEV2YWwiLCFifHxHLmdldChiW2NdLCJnbG9iYWxFdmFsIikpfWZ1bmN0aW9uIFJiKGEsYixjLGUsZil7Zm9yKHZhciBnLGgsbSxsLHQ9Yi5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCksdz1bXSxyPTAsej1hLmxlbmd0aDtyPHo7cisrKWlmKChnPWFbcl0pfHwwPT09ZylpZigib2JqZWN0Ij09PVUoZykpZC5tZXJnZSh3LGcubm9kZVR5cGU\/W2ddOmcpO2Vsc2UgaWYoUWMudGVzdChnKSl7aD1ofHx0LmFwcGVuZENoaWxkKGIuY3JlYXRlRWxlbWVudCgiZGl2IikpO209KG1jLmV4ZWMoZyl8fFsiIiwiIl0pWzFdLnRvTG93ZXJDYXNlKCk7bT1DYVttXXx8Q2EuX2RlZmF1bHQ7aC5pbm5lckhUTUw9bVsxXStkLmh0bWxQcmVmaWx0ZXIoZykrbVsyXTtmb3IobT1tWzBdO20tLTspaD1oLmxhc3RDaGlsZDtkLm1lcmdlKHcsaC5jaGlsZE5vZGVzKTsKKGg9dC5maXJzdENoaWxkKS50ZXh0Q29udGVudD0iIn1lbHNlIHcucHVzaChiLmNyZWF0ZVRleHROb2RlKGcpKTt0LnRleHRDb250ZW50PSIiO2ZvcihyPTA7Zz13W3IrK107KWlmKGUmJi0xPGQuaW5BcnJheShnLGUpKWYmJmYucHVzaChnKTtlbHNlIGlmKGw9b2IoZyksaD1zYSh0LmFwcGVuZENoaWxkKGcpLCJzY3JpcHQiKSxsJiZuYihoKSxjKWZvcihtPTA7Zz1oW20rK107KW5jLnRlc3QoZy50eXBlfHwiIikmJmMucHVzaChnKTtyZXR1cm4gdH1mdW5jdGlvbiBhYigpe3JldHVybiEwfWZ1bmN0aW9uIGJiKCl7cmV0dXJuITF9ZnVuY3Rpb24gZmIoYSxiLGMsZSxmLGcpe3ZhciBoLG07aWYoIm9iamVjdCI9PXR5cGVvZiBiKXtmb3IobSBpbiJzdHJpbmciIT10eXBlb2YgYyYmKGU9ZXx8YyxjPXZvaWQgMCksYilmYihhLG0sYyxlLGJbbV0sZyk7cmV0dXJuIGF9aWYobnVsbD09ZSYmbnVsbD09Zj8oZj1jLGU9Yz12b2lkIDApOm51bGw9PWYmJigic3RyaW5nIj09dHlwZW9mIGM\/KGY9CmUsZT12b2lkIDApOihmPWUsZT1jLGM9dm9pZCAwKSksITE9PT1mKWY9YmI7ZWxzZSBpZighZilyZXR1cm4gYTtyZXR1cm4gMT09PWcmJihoPWYsKGY9ZnVuY3Rpb24obCl7cmV0dXJuIGQoKS5vZmYobCksaC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9KS5ndWlkPWguZ3VpZHx8KGguZ3VpZD1kLmd1aWQrKykpLGEuZWFjaChmdW5jdGlvbigpe2QuZXZlbnQuYWRkKHRoaXMsYixmLGUsYyl9KX1mdW5jdGlvbiBwYihhLGIsYyl7Yz8oRy5zZXQoYSxiLCExKSxkLmV2ZW50LmFkZChhLGIse25hbWVzcGFjZTohMSxoYW5kbGVyOmZ1bmN0aW9uKGUpe3ZhciBmLGc9Ry5nZXQodGhpcyxiKTtpZigxJmUuaXNUcmlnZ2VyJiZ0aGlzW2JdKWlmKGcpKGQuZXZlbnQuc3BlY2lhbFtiXXx8e30pLmRlbGVnYXRlVHlwZSYmZS5zdG9wUHJvcGFnYXRpb24oKTtlbHNle2lmKGc9eWEuY2FsbChhcmd1bWVudHMpLEcuc2V0KHRoaXMsYixnKSx0aGlzW2JdKCksZj1HLmdldCh0aGlzLGIpLEcuc2V0KHRoaXMsYiwKITEpLGchPT1mKXJldHVybiBlLnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpLGUucHJldmVudERlZmF1bHQoKSxmfWVsc2UgZyYmKEcuc2V0KHRoaXMsYixkLmV2ZW50LnRyaWdnZXIoZ1swXSxnLnNsaWNlKDEpLHRoaXMpKSxlLnN0b3BQcm9wYWdhdGlvbigpLGUuaXNJbW1lZGlhdGVQcm9wYWdhdGlvblN0b3BwZWQ9YWIpfX0pKTp2b2lkIDA9PT1HLmdldChhLGIpJiZkLmV2ZW50LmFkZChhLGIsYWIpfWZ1bmN0aW9uIFNiKGEsYil7cmV0dXJuIFgoYSwidGFibGUiKSYmWCgxMSE9PWIubm9kZVR5cGU\/YjpiLmZpcnN0Q2hpbGQsInRyIikmJmQoYSkuY2hpbGRyZW4oInRib2R5IilbMF18fGF9ZnVuY3Rpb24gcWIoYSl7cmV0dXJuIGEudHlwZT0obnVsbCE9PWEuZ2V0QXR0cmlidXRlKCJ0eXBlIikpKyIvIithLnR5cGUsYX1mdW5jdGlvbiAkYihhKXtyZXR1cm4idHJ1ZS8iPT09KGEudHlwZXx8IiIpLnNsaWNlKDAsNSk\/YS50eXBlPWEudHlwZS5zbGljZSg1KTphLnJlbW92ZUF0dHJpYnV0ZSgidHlwZSIpLAphfWZ1bmN0aW9uIGdiKGEsYil7dmFyIGMsZSxmLGcsaDtpZigxPT09Yi5ub2RlVHlwZSl7aWYoRy5oYXNEYXRhKGEpJiYoaD1HLmdldChhKS5ldmVudHMpKWZvcihlIGluIEcucmVtb3ZlKGIsImhhbmRsZSBldmVudHMiKSxoKXt2YXIgbT0wO2ZvcihjPWhbZV0ubGVuZ3RoO208YzttKyspZC5ldmVudC5hZGQoYixlLGhbZV1bbV0pfXhhLmhhc0RhdGEoYSkmJihmPXhhLmFjY2VzcyhhKSxnPWQuZXh0ZW5kKHt9LGYpLHhhLnNldChiLGcpKX19ZnVuY3Rpb24gY2IoYSxiLGMsZSl7Yj1vYyhiKTt2YXIgZixnLGgsbT0wLGw9YS5sZW5ndGgsdD1sLTEsdz1iWzBdLHI9TSh3KTtpZihyfHwxPGwmJiJzdHJpbmciPT10eXBlb2YgdyYmIU4uY2hlY2tDbG9uZSYmUmMudGVzdCh3KSlyZXR1cm4gYS5lYWNoKGZ1bmN0aW9uKEQpe3ZhciBGPWEuZXEoRCk7ciYmKGJbMF09dy5jYWxsKHRoaXMsRCxGLmh0bWwoKSkpO2NiKEYsYixjLGUpfSk7aWYobCYmKGc9KGY9UmIoYixhWzBdLm93bmVyRG9jdW1lbnQsCiExLGEsZSkpLmZpcnN0Q2hpbGQsMT09PWYuY2hpbGROb2Rlcy5sZW5ndGgmJihmPWcpLGd8fGUpKXtmb3IoaD0oZz1kLm1hcChzYShmLCJzY3JpcHQiKSxxYikpLmxlbmd0aDttPGw7bSsrKXt2YXIgej1mO20hPT10JiYoej1kLmNsb25lKHosITAsITApLGgmJmQubWVyZ2UoZyxzYSh6LCJzY3JpcHQiKSkpO2MuY2FsbChhW21dLHosbSl9aWYoaClmb3IoZj1nW2cubGVuZ3RoLTFdLm93bmVyRG9jdW1lbnQsZC5tYXAoZywkYiksbT0wO208aDttKyspej1nW21dLG5jLnRlc3Qoei50eXBlfHwiIikmJiFHLmFjY2Vzcyh6LCJnbG9iYWxFdmFsIikmJmQuY29udGFpbnMoZix6KSYmKHouc3JjJiYibW9kdWxlIiE9PSh6LnR5cGV8fCIiKS50b0xvd2VyQ2FzZSgpP2QuX2V2YWxVcmwmJiF6Lm5vTW9kdWxlJiZkLl9ldmFsVXJsKHouc3JjLHtub25jZTp6Lm5vbmNlfHx6LmdldEF0dHJpYnV0ZSgibm9uY2UiKX0sZik6d2Eoei50ZXh0Q29udGVudC5yZXBsYWNlKFNjLCIiKSx6LGYpKX1yZXR1cm4gYX0KZnVuY3Rpb24gVGIoYSxiLGMpe2Zvcih2YXIgZT1iP2QuZmlsdGVyKGIsYSk6YSxmPTA7bnVsbCE9KGI9ZVtmXSk7ZisrKWN8fDEhPT1iLm5vZGVUeXBlfHxkLmNsZWFuRGF0YShzYShiKSksYi5wYXJlbnROb2RlJiYoYyYmb2IoYikmJm5iKHNhKGIsInNjcmlwdCIpKSxiLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoYikpO3JldHVybiBhfWZ1bmN0aW9uIEthKGEsYixjKXt2YXIgZSxmLGcsaCxtPWFjLnRlc3QoYiksbD1hLnN0eWxlO3JldHVybihjPWN8fFViKGEpKSYmKGg9Yy5nZXRQcm9wZXJ0eVZhbHVlKGIpfHxjW2JdLG0mJmgmJihoPWgucmVwbGFjZSh6YiwiJDEiKXx8dm9pZCAwKSwiIiE9PWh8fG9iKGEpfHwoaD1kLnN0eWxlKGEsYikpLCFOLnBpeGVsQm94U3R5bGVzKCkmJmJjLnRlc3QoaCkmJlRjLnRlc3QoYikmJihlPWwud2lkdGgsZj1sLm1pbldpZHRoLGc9bC5tYXhXaWR0aCxsLm1pbldpZHRoPWwubWF4V2lkdGg9bC53aWR0aD1oLGg9Yy53aWR0aCxsLndpZHRoPWUsbC5taW5XaWR0aD0KZixsLm1heFdpZHRoPWcpKSx2b2lkIDAhPT1oP2grIiI6aH1mdW5jdGlvbiBWYihhLGIpe3JldHVybntnZXQ6ZnVuY3Rpb24oKXtpZighYSgpKXJldHVybih0aGlzLmdldD1iKS5hcHBseSh0aGlzLGFyZ3VtZW50cyk7ZGVsZXRlIHRoaXMuZ2V0fX19ZnVuY3Rpb24gQWIoYSl7dmFyIGI7aWYoIShiPWQuY3NzUHJvcHNbYV18fHBjW2FdKSl7aWYoIShhIGluIHFjKSl7YTp7Yj1hO2Zvcih2YXIgYz1iWzBdLnRvVXBwZXJDYXNlKCkrYi5zbGljZSgxKSxlPXJjLmxlbmd0aDtlLS07KWlmKChiPXJjW2VdK2MpaW4gcWMpYnJlYWsgYTtiPXZvaWQgMH1hPXBjW2FdPWJ8fGF9Yj1hfXJldHVybiBifWZ1bmN0aW9uIFdiKGEsYixjKXtyZXR1cm4oYT15Yi5leGVjKGIpKT9NYXRoLm1heCgwLGFbMl0tKGN8fDApKSsoYVszXXx8InB4Iik6Yn1mdW5jdGlvbiByYihhLGIsYyxlLGYsZyl7dmFyIGg9IndpZHRoIj09PWI\/MTowLG09MCxsPTAsdD0wO2lmKGM9PT0oZT8iYm9yZGVyIjoiY29udGVudCIpKXJldHVybiAwOwpmb3IoOzQ+aDtoKz0yKSJtYXJnaW4iPT09YyYmKHQrPWQuY3NzKGEsYytQYVtoXSwhMCxmKSksZT8oImNvbnRlbnQiPT09YyYmKGwtPWQuY3NzKGEsInBhZGRpbmciK1BhW2hdLCEwLGYpKSwibWFyZ2luIiE9PWMmJihsLT1kLmNzcyhhLCJib3JkZXIiK1BhW2hdKyJXaWR0aCIsITAsZikpKToobCs9ZC5jc3MoYSwicGFkZGluZyIrUGFbaF0sITAsZiksInBhZGRpbmciIT09Yz9sKz1kLmNzcyhhLCJib3JkZXIiK1BhW2hdKyJXaWR0aCIsITAsZik6bSs9ZC5jc3MoYSwiYm9yZGVyIitQYVtoXSsiV2lkdGgiLCEwLGYpKTtyZXR1cm4hZSYmMDw9ZyYmKGwrPU1hdGgubWF4KDAsTWF0aC5jZWlsKGFbIm9mZnNldCIrYlswXS50b1VwcGVyQ2FzZSgpK2Iuc2xpY2UoMSldLWctbC1tLS41KSl8fDApLGwrdH1mdW5jdGlvbiBCYihhLGIsYyl7dmFyIGU9VWIoYSksZj0oIU4uYm94U2l6aW5nUmVsaWFibGUoKXx8YykmJiJib3JkZXItYm94Ij09PWQuY3NzKGEsImJveFNpemluZyIsITEsZSksZz0KZixoPUthKGEsYixlKSxtPSJvZmZzZXQiK2JbMF0udG9VcHBlckNhc2UoKStiLnNsaWNlKDEpO2lmKGJjLnRlc3QoaCkpe2lmKCFjKXJldHVybiBoO2g9ImF1dG8ifXJldHVybighTi5ib3hTaXppbmdSZWxpYWJsZSgpJiZmfHwhTi5yZWxpYWJsZVRyRGltZW5zaW9ucygpJiZYKGEsInRyIil8fCJhdXRvIj09PWh8fCFwYXJzZUZsb2F0KGgpJiYiaW5saW5lIj09PWQuY3NzKGEsImRpc3BsYXkiLCExLGUpKSYmYS5nZXRDbGllbnRSZWN0cygpLmxlbmd0aCYmKGY9ImJvcmRlci1ib3giPT09ZC5jc3MoYSwiYm94U2l6aW5nIiwhMSxlKSwoZz1tIGluIGEpJiYoaD1hW21dKSksKGg9cGFyc2VGbG9hdChoKXx8MCkrcmIoYSxiLGN8fChmPyJib3JkZXIiOiJjb250ZW50IiksZyxlLGgpKyJweCJ9ZnVuY3Rpb24gemEoYSxiLGMsZSxmKXtyZXR1cm4gbmV3IHphLnByb3RvdHlwZS5pbml0KGEsYixjLGUsZil9ZnVuY3Rpb24gQ2IoKXtYYiYmKCExPT09TC5oaWRkZW4mJm4ucmVxdWVzdEFuaW1hdGlvbkZyYW1lPwpuLnJlcXVlc3RBbmltYXRpb25GcmFtZShDYik6bi5zZXRUaW1lb3V0KENiLGQuZnguaW50ZXJ2YWwpLGQuZngudGljaygpKX1mdW5jdGlvbiBEYigpe3JldHVybiBuLnNldFRpbWVvdXQoZnVuY3Rpb24oKXtzYj12b2lkIDB9KSxzYj1EYXRlLm5vdygpfWZ1bmN0aW9uIHRiKGEsYil7dmFyIGMsZT0wLGY9e2hlaWdodDphfTtmb3IoYj1iPzE6MDs0PmU7ZSs9Mi1iKWZbIm1hcmdpbiIrKGM9UGFbZV0pXT1mWyJwYWRkaW5nIitjXT1hO3JldHVybiBiJiYoZi5vcGFjaXR5PWYud2lkdGg9YSksZn1mdW5jdGlvbiB1KGEsYixjKXtmb3IodmFyIGUsZj0oeC50d2VlbmVyc1tiXXx8W10pLmNvbmNhdCh4LnR3ZWVuZXJzWyIqIl0pLGc9MCxoPWYubGVuZ3RoO2c8aDtnKyspaWYoZT1mW2ddLmNhbGwoYyxiLGEpKXJldHVybiBlfWZ1bmN0aW9uIHgoYSxiLGMpe3ZhciBlLGY9MCxnPXgucHJlZmlsdGVycy5sZW5ndGgsaD1kLkRlZmVycmVkKCkuYWx3YXlzKGZ1bmN0aW9uKCl7ZGVsZXRlIG0uZWxlbX0pLAptPWZ1bmN0aW9uKCl7aWYoZSlyZXR1cm4hMTt2YXIgdD1zYnx8RGIoKTt0PU1hdGgubWF4KDAsbC5zdGFydFRpbWUrbC5kdXJhdGlvbi10KTtmb3IodmFyIHc9MS0odC9sLmR1cmF0aW9ufHwwKSxyPTAsej1sLnR3ZWVucy5sZW5ndGg7cjx6O3IrKylsLnR3ZWVuc1tyXS5ydW4odyk7cmV0dXJuIGgubm90aWZ5V2l0aChhLFtsLHcsdF0pLDE+dyYmej90Oih6fHxoLm5vdGlmeVdpdGgoYSxbbCwxLDBdKSxoLnJlc29sdmVXaXRoKGEsW2xdKSwhMSl9LGw9aC5wcm9taXNlKHtlbGVtOmEscHJvcHM6ZC5leHRlbmQoe30sYiksb3B0czpkLmV4dGVuZCghMCx7c3BlY2lhbEVhc2luZzp7fSxlYXNpbmc6ZC5lYXNpbmcuX2RlZmF1bHR9LGMpLG9yaWdpbmFsUHJvcGVydGllczpiLG9yaWdpbmFsT3B0aW9uczpjLHN0YXJ0VGltZTpzYnx8RGIoKSxkdXJhdGlvbjpjLmR1cmF0aW9uLHR3ZWVuczpbXSxjcmVhdGVUd2VlbjpmdW5jdGlvbih0LHcpe3Q9ZC5Ud2VlbihhLGwub3B0cyx0LHcsbC5vcHRzLnNwZWNpYWxFYXNpbmdbdF18fApsLm9wdHMuZWFzaW5nKTtyZXR1cm4gbC50d2VlbnMucHVzaCh0KSx0fSxzdG9wOmZ1bmN0aW9uKHQpe3ZhciB3PTAscj10P2wudHdlZW5zLmxlbmd0aDowO2lmKGUpcmV0dXJuIHRoaXM7Zm9yKGU9ITA7dzxyO3crKylsLnR3ZWVuc1t3XS5ydW4oMSk7cmV0dXJuIHQ\/KGgubm90aWZ5V2l0aChhLFtsLDEsMF0pLGgucmVzb2x2ZVdpdGgoYSxbbCx0XSkpOmgucmVqZWN0V2l0aChhLFtsLHRdKSx0aGlzfX0pO2M9bC5wcm9wczshZnVuY3Rpb24odCx3KXt2YXIgcix6LEQsRixPO2ZvcihyIGluIHQpaWYoRD13W3o9QmEocildLEY9dFtyXSxBcnJheS5pc0FycmF5KEYpJiYoRD1GWzFdLEY9dFtyXT1GWzBdKSxyIT09eiYmKHRbel09RixkZWxldGUgdFtyXSksKE89ZC5jc3NIb29rc1t6XSkmJiJleHBhbmQiaW4gTylmb3IociBpbiBGPU8uZXhwYW5kKEYpLGRlbGV0ZSB0W3pdLEYpciBpbiB0fHwodFtyXT1GW3JdLHdbcl09RCk7ZWxzZSB3W3pdPUR9KGMsbC5vcHRzLnNwZWNpYWxFYXNpbmcpOwpmb3IoO2Y8ZztmKyspaWYoYj14LnByZWZpbHRlcnNbZl0uY2FsbChsLGEsYyxsLm9wdHMpKXJldHVybiBNKGIuc3RvcCkmJihkLl9xdWV1ZUhvb2tzKGwuZWxlbSxsLm9wdHMucXVldWUpLnN0b3A9Yi5zdG9wLmJpbmQoYikpLGI7cmV0dXJuIGQubWFwKGMsdSxsKSxNKGwub3B0cy5zdGFydCkmJmwub3B0cy5zdGFydC5jYWxsKGEsbCksbC5wcm9ncmVzcyhsLm9wdHMucHJvZ3Jlc3MpLmRvbmUobC5vcHRzLmRvbmUsbC5vcHRzLmNvbXBsZXRlKS5mYWlsKGwub3B0cy5mYWlsKS5hbHdheXMobC5vcHRzLmFsd2F5cyksZC5meC50aW1lcihkLmV4dGVuZChtLHtlbGVtOmEsYW5pbTpsLHF1ZXVlOmwub3B0cy5xdWV1ZX0pKSxsfWZ1bmN0aW9uIEMoYSl7cmV0dXJuKGEubWF0Y2goTGEpfHxbXSkuam9pbigiICIpfWZ1bmN0aW9uIEgoYSl7cmV0dXJuIGEuZ2V0QXR0cmlidXRlJiZhLmdldEF0dHJpYnV0ZSgiY2xhc3MiKXx8IiJ9ZnVuY3Rpb24gUChhKXtyZXR1cm4gQXJyYXkuaXNBcnJheShhKT8KYToic3RyaW5nIj09dHlwZW9mIGEmJmEubWF0Y2goTGEpfHxbXX1mdW5jdGlvbiBlYShhLGIsYyxlKXt2YXIgZjtpZihBcnJheS5pc0FycmF5KGIpKWQuZWFjaChiLGZ1bmN0aW9uKGcsaCl7Y3x8VWMudGVzdChhKT9lKGEsaCk6ZWEoYSsiWyIrKCJvYmplY3QiPT10eXBlb2YgaCYmbnVsbCE9aD9nOiIiKSsiXSIsaCxjLGUpfSk7ZWxzZSBpZihjfHwib2JqZWN0IiE9PVUoYikpZShhLGIpO2Vsc2UgZm9yKGYgaW4gYillYShhKyJbIitmKyJdIixiW2ZdLGMsZSl9ZnVuY3Rpb24gUWEoYSl7cmV0dXJuIGZ1bmN0aW9uKGIsYyl7InN0cmluZyIhPXR5cGVvZiBiJiYoYz1iLGI9IioiKTt2YXIgZT0wLGY9Yi50b0xvd2VyQ2FzZSgpLm1hdGNoKExhKXx8W107aWYoTShjKSlmb3IoO2I9ZltlKytdOykiKyI9PT1iWzBdPyhiPWIuc2xpY2UoMSl8fCIqIiwoYVtiXT1hW2JdfHxbXSkudW5zaGlmdChjKSk6KGFbYl09YVtiXXx8W10pLnB1c2goYyl9fWZ1bmN0aW9uIEViKGEsYixjLGUpe2Z1bmN0aW9uIGYobSl7dmFyIGw7CnJldHVybiBnW21dPSEwLGQuZWFjaChhW21dfHxbXSxmdW5jdGlvbih0LHcpe3Q9dyhiLGMsZSk7cmV0dXJuInN0cmluZyIhPXR5cGVvZiB0fHxofHxnW3RdP2g\/IShsPXQpOnZvaWQgMDooYi5kYXRhVHlwZXMudW5zaGlmdCh0KSxmKHQpLCExKX0pLGx9dmFyIGc9e30saD1hPT09Y2M7cmV0dXJuIGYoYi5kYXRhVHlwZXNbMF0pfHwhZ1siKiJdJiZmKCIqIil9ZnVuY3Rpb24gaGIoYSxiKXt2YXIgYyxlLGY9ZC5hamF4U2V0dGluZ3MuZmxhdE9wdGlvbnN8fHt9O2ZvcihjIGluIGIpdm9pZCAwIT09YltjXSYmKChmW2NdP2E6ZXx8KGU9e30pKVtjXT1iW2NdKTtyZXR1cm4gZSYmZC5leHRlbmQoITAsYSxlKSxhfXZhciBvYT1bXSxzYz1PYmplY3QuZ2V0UHJvdG90eXBlT2YseWE9b2Euc2xpY2Usb2M9b2EuZmxhdD9mdW5jdGlvbihhKXtyZXR1cm4gb2EuZmxhdC5jYWxsKGEpfTpmdW5jdGlvbihhKXtyZXR1cm4gb2EuY29uY2F0LmFwcGx5KFtdLGEpfSx1Yj1vYS5wdXNoLE5hPW9hLmluZGV4T2YsCk1iPXt9LGtjPU1iLnRvU3RyaW5nLEZiPU1iLmhhc093blByb3BlcnR5LHRjPUZiLnRvU3RyaW5nLFZjPXRjLmNhbGwoT2JqZWN0KSxOPXt9LE09ZnVuY3Rpb24oYSl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIGEmJiJudW1iZXIiIT10eXBlb2YgYS5ub2RlVHlwZSYmImZ1bmN0aW9uIiE9dHlwZW9mIGEuaXRlbX0sa2I9ZnVuY3Rpb24oYSl7cmV0dXJuIG51bGwhPWEmJmE9PT1hLndpbmRvd30sTD1uLmRvY3VtZW50LExjPXt0eXBlOiEwLHNyYzohMCxub25jZTohMCxub01vZHVsZTohMH0sV2M9L0hUTUwkL2ksZD1mdW5jdGlvbihhLGIpe3JldHVybiBuZXcgZC5mbi5pbml0KGEsYil9O2QuZm49ZC5wcm90b3R5cGU9e2pxdWVyeToiMy43LjAiLGNvbnN0cnVjdG9yOmQsbGVuZ3RoOjAsdG9BcnJheTpmdW5jdGlvbigpe3JldHVybiB5YS5jYWxsKHRoaXMpfSxnZXQ6ZnVuY3Rpb24oYSl7cmV0dXJuIG51bGw9PWE\/eWEuY2FsbCh0aGlzKTowPmE\/dGhpc1thK3RoaXMubGVuZ3RoXTp0aGlzW2FdfSwKcHVzaFN0YWNrOmZ1bmN0aW9uKGEpe2E9ZC5tZXJnZSh0aGlzLmNvbnN0cnVjdG9yKCksYSk7cmV0dXJuIGEucHJldk9iamVjdD10aGlzLGF9LGVhY2g6ZnVuY3Rpb24oYSl7cmV0dXJuIGQuZWFjaCh0aGlzLGEpfSxtYXA6ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMucHVzaFN0YWNrKGQubWFwKHRoaXMsZnVuY3Rpb24oYixjKXtyZXR1cm4gYS5jYWxsKGIsYyxiKX0pKX0sc2xpY2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wdXNoU3RhY2soeWEuYXBwbHkodGhpcyxhcmd1bWVudHMpKX0sZmlyc3Q6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lcSgwKX0sbGFzdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmVxKC0xKX0sZXZlbjpmdW5jdGlvbigpe3JldHVybiB0aGlzLnB1c2hTdGFjayhkLmdyZXAodGhpcyxmdW5jdGlvbihhLGIpe3JldHVybihiKzEpJTJ9KSl9LG9kZDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnB1c2hTdGFjayhkLmdyZXAodGhpcyxmdW5jdGlvbihhLGIpe3JldHVybiBiJQoyfSkpfSxlcTpmdW5jdGlvbihhKXt2YXIgYj10aGlzLmxlbmd0aDthPSthKygwPmE\/YjowKTtyZXR1cm4gdGhpcy5wdXNoU3RhY2soMDw9YSYmYTxiP1t0aGlzW2FdXTpbXSl9LGVuZDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnByZXZPYmplY3R8fHRoaXMuY29uc3RydWN0b3IoKX0scHVzaDp1Yixzb3J0Om9hLnNvcnQsc3BsaWNlOm9hLnNwbGljZX07ZC5leHRlbmQ9ZC5mbi5leHRlbmQ9ZnVuY3Rpb24oKXt2YXIgYSxiLGMsZSxmLGc9YXJndW1lbnRzWzBdfHx7fSxoPTEsbT1hcmd1bWVudHMubGVuZ3RoLGw9ITE7ImJvb2xlYW4iPT10eXBlb2YgZyYmKGw9ZyxnPWFyZ3VtZW50c1toXXx8e30saCsrKTsib2JqZWN0Ij09dHlwZW9mIGd8fE0oZyl8fChnPXt9KTtmb3IoaD09PW0mJihnPXRoaXMsaC0tKTtoPG07aCsrKWlmKG51bGwhPShhPWFyZ3VtZW50c1toXSkpZm9yKGIgaW4gYSl7dmFyIHQ9YVtiXTsiX19wcm90b19fIiE9PWImJmchPT10JiYobCYmdCYmKGQuaXNQbGFpbk9iamVjdCh0KXx8CihlPUFycmF5LmlzQXJyYXkodCkpKT8oYz1nW2JdLGY9ZSYmIUFycmF5LmlzQXJyYXkoYyk\/W106ZXx8ZC5pc1BsYWluT2JqZWN0KGMpP2M6e30sZT0hMSxnW2JdPWQuZXh0ZW5kKGwsZix0KSk6dm9pZCAwIT09dCYmKGdbYl09dCkpfXJldHVybiBnfTtkLmV4dGVuZCh7ZXhwYW5kbzoialF1ZXJ5IisoIjMuNy4wIitNYXRoLnJhbmRvbSgpKS5yZXBsYWNlKC9cRC9nLCIiKSxpc1JlYWR5OiEwLGVycm9yOmZ1bmN0aW9uKGEpe3Rocm93IEVycm9yKGEpO30sbm9vcDpmdW5jdGlvbigpe30saXNQbGFpbk9iamVjdDpmdW5jdGlvbihhKXt2YXIgYixjO3JldHVybiEoIWF8fCJbb2JqZWN0IE9iamVjdF0iIT09a2MuY2FsbChhKSkmJighKGI9c2MoYSkpfHwiZnVuY3Rpb24iPT10eXBlb2YoYz1GYi5jYWxsKGIsImNvbnN0cnVjdG9yIikmJmIuY29uc3RydWN0b3IpJiZ0Yy5jYWxsKGMpPT09VmMpfSxpc0VtcHR5T2JqZWN0OmZ1bmN0aW9uKGEpe2Zvcih2YXIgYiBpbiBhKXJldHVybiExO3JldHVybiEwfSwKZ2xvYmFsRXZhbDpmdW5jdGlvbihhLGIsYyl7d2EoYSx7bm9uY2U6YiYmYi5ub25jZX0sYyl9LGVhY2g6ZnVuY3Rpb24oYSxiKXt2YXIgYyxlPTA7aWYoZWIoYSkpZm9yKGM9YS5sZW5ndGg7ZTxjJiYhMSE9PWIuY2FsbChhW2VdLGUsYVtlXSk7ZSsrKTtlbHNlIGZvcihlIGluIGEpaWYoITE9PT1iLmNhbGwoYVtlXSxlLGFbZV0pKWJyZWFrO3JldHVybiBhfSx0ZXh0OmZ1bmN0aW9uKGEpe3ZhciBiLGM9IiIsZT0wO2lmKGI9YS5ub2RlVHlwZSl7aWYoMT09PWJ8fDk9PT1ifHwxMT09PWIpcmV0dXJuIGEudGV4dENvbnRlbnQ7aWYoMz09PWJ8fDQ9PT1iKXJldHVybiBhLm5vZGVWYWx1ZX1lbHNlIGZvcig7Yj1hW2UrK107KWMrPWQudGV4dChiKTtyZXR1cm4gY30sbWFrZUFycmF5OmZ1bmN0aW9uKGEsYil7Yj1ifHxbXTtyZXR1cm4gbnVsbCE9YSYmKGViKE9iamVjdChhKSk\/ZC5tZXJnZShiLCJzdHJpbmciPT10eXBlb2YgYT9bYV06YSk6dWIuY2FsbChiLGEpKSxifSxpbkFycmF5OmZ1bmN0aW9uKGEsCmIsYyl7cmV0dXJuIG51bGw9PWI\/LTE6TmEuY2FsbChiLGEsYyl9LGlzWE1MRG9jOmZ1bmN0aW9uKGEpe3ZhciBiPWEmJihhLm93bmVyRG9jdW1lbnR8fGEpLmRvY3VtZW50RWxlbWVudDtyZXR1cm4hV2MudGVzdChhJiZhLm5hbWVzcGFjZVVSSXx8YiYmYi5ub2RlTmFtZXx8IkhUTUwiKX0sbWVyZ2U6ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9K2IubGVuZ3RoLGU9MCxmPWEubGVuZ3RoO2U8YztlKyspYVtmKytdPWJbZV07cmV0dXJuIGEubGVuZ3RoPWYsYX0sZ3JlcDpmdW5jdGlvbihhLGIsYyl7dmFyIGU9W10sZj0wLGc9YS5sZW5ndGg7Zm9yKGM9IWM7ZjxnO2YrKykhYihhW2ZdLGYpIT09YyYmZS5wdXNoKGFbZl0pO3JldHVybiBlfSxtYXA6ZnVuY3Rpb24oYSxiLGMpe3ZhciBlLGYsZz0wLGg9W107aWYoZWIoYSkpZm9yKGU9YS5sZW5ndGg7ZzxlO2crKyludWxsIT0oZj1iKGFbZ10sZyxjKSkmJmgucHVzaChmKTtlbHNlIGZvcihnIGluIGEpbnVsbCE9KGY9YihhW2ddLGcsYykpJiYKaC5wdXNoKGYpO3JldHVybiBvYyhoKX0sZ3VpZDoxLHN1cHBvcnQ6Tn0pOyJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJihkLmZuW1N5bWJvbC5pdGVyYXRvcl09b2FbU3ltYm9sLml0ZXJhdG9yXSk7ZC5lYWNoKCJCb29sZWFuIE51bWJlciBTdHJpbmcgRnVuY3Rpb24gQXJyYXkgRGF0ZSBSZWdFeHAgT2JqZWN0IEVycm9yIFN5bWJvbCIuc3BsaXQoIiAiKSxmdW5jdGlvbihhLGIpe01iWyJbb2JqZWN0ICIrYisiXSJdPWIudG9Mb3dlckNhc2UoKX0pO3ZhciBYYz1vYS5wb3AsWWM9b2Euc29ydCxaYz1vYS5zcGxpY2UsemI9UmVnRXhwKCJeW1xceDIwXFx0XFxyXFxuXFxmXSt8KCg\/Ol58W15cXFxcXSkoPzpcXFxcLikqKVtcXHgyMFxcdFxcclxcblxcZl0rJCIsImciKTtkLmNvbnRhaW5zPWZ1bmN0aW9uKGEsYil7Yj1iJiZiLnBhcmVudE5vZGU7cmV0dXJuIGE9PT1ifHwhKCFifHwxIT09Yi5ub2RlVHlwZXx8IShhLmNvbnRhaW5zP2EuY29udGFpbnMoYik6YS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbiYmCjE2JmEuY29tcGFyZURvY3VtZW50UG9zaXRpb24oYikpKX07dmFyICRjPS8oW1wwLVx4MWZceDdmXXxeLT9cZCl8Xi0kfFteXHg4MC1cdUZGRkZcdy1dL2c7ZC5lc2NhcGVTZWxlY3Rvcj1mdW5jdGlvbihhKXtyZXR1cm4oYSsiIikucmVwbGFjZSgkYyxiYSl9O3ZhciBSYT1MOyFmdW5jdGlvbigpe2Z1bmN0aW9uIGEoayxwLHEsdil7dmFyIHksRSxBLEksQj1wJiZwLm93bmVyRG9jdW1lbnQsSj1wP3Aubm9kZVR5cGU6OTtpZihxPXF8fFtdLCJzdHJpbmciIT10eXBlb2Yga3x8IWt8fDEhPT1KJiY5IT09SiYmMTEhPT1KKXJldHVybiBxO2lmKCF2JiYodChwKSxwPXB8fFosdmEpKXtpZigxMSE9PUomJihJPWFkLmV4ZWMoaykpKWlmKHk9SVsxXSlpZig5PT09Sil7aWYoIShFPXAuZ2V0RWxlbWVudEJ5SWQoeSkpKXJldHVybiBxO2lmKEUuaWQ9PT15KXJldHVybiB0YS5jYWxsKHEsRSkscX1lbHNle2lmKEImJihFPUIuZ2V0RWxlbWVudEJ5SWQoeSkpJiZhLmNvbnRhaW5zKHAsRSkmJkUuaWQ9PT0KeSlyZXR1cm4gdGEuY2FsbChxLEUpLHF9ZWxzZXtpZihJWzJdKXJldHVybiB0YS5hcHBseShxLHAuZ2V0RWxlbWVudHNCeVRhZ05hbWUoaykpLHE7aWYoKHk9SVszXSkmJnAuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSlyZXR1cm4gdGEuYXBwbHkocSxwLmdldEVsZW1lbnRzQnlDbGFzc05hbWUoeSkpLHF9aWYoIShZW2srIiAiXXx8a2EmJmthLnRlc3QoaykpKXtpZih5PWssQj1wLDE9PT1KJiYodmIudGVzdChrKXx8SGEudGVzdChrKSkpeyhCPWRjLnRlc3QoaykmJmwocC5wYXJlbnROb2RlKXx8cCk9PXAmJk4uc2NvcGV8fCgoQT1wLmdldEF0dHJpYnV0ZSgiaWQiKSk\/QT1kLmVzY2FwZVNlbGVjdG9yKEEpOnAuc2V0QXR0cmlidXRlKCJpZCIsQT1XKSk7Zm9yKEo9KHk9cihrKSkubGVuZ3RoO0otLTspeVtKXT0oQT8iIyIrQToiOnNjb3BlIikrIiAiK3ooeVtKXSk7eT15LmpvaW4oIiwiKX10cnl7cmV0dXJuIHRhLmFwcGx5KHEsQi5xdWVyeVNlbGVjdG9yQWxsKHkpKSxxfWNhdGNoKFIpe1koaywKITApfWZpbmFsbHl7QT09PVcmJnAucmVtb3ZlQXR0cmlidXRlKCJpZCIpfX19cmV0dXJuIFNhKGsucmVwbGFjZSh6YiwiJDEiKSxwLHEsdil9ZnVuY3Rpb24gYigpe3ZhciBrPVtdO3JldHVybiBmdW5jdGlvbiB5KHEsdil7cmV0dXJuIGsucHVzaChxKyIgIik+Sy5jYWNoZUxlbmd0aCYmZGVsZXRlIHlbay5zaGlmdCgpXSx5W3ErIiAiXT12fX1mdW5jdGlvbiBjKGspe3JldHVybiBrW1ddPSEwLGt9ZnVuY3Rpb24gZShrKXt2YXIgcD1aLmNyZWF0ZUVsZW1lbnQoImZpZWxkc2V0Iik7dHJ5e3JldHVybiEhayhwKX1jYXRjaChxKXtyZXR1cm4hMX1maW5hbGx5e3AucGFyZW50Tm9kZSYmcC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHApfX1mdW5jdGlvbiBmKGspe3JldHVybiBmdW5jdGlvbihwKXtyZXR1cm4gWChwLCJpbnB1dCIpJiZwLnR5cGU9PT1rfX1mdW5jdGlvbiBnKGspe3JldHVybiBmdW5jdGlvbihwKXtyZXR1cm4oWChwLCJpbnB1dCIpfHxYKHAsImJ1dHRvbiIpKSYmcC50eXBlPT09Cmt9fWZ1bmN0aW9uIGgoayl7cmV0dXJuIGZ1bmN0aW9uKHApe3JldHVybiJmb3JtImluIHA\/cC5wYXJlbnROb2RlJiYhMT09PXAuZGlzYWJsZWQ\/ImxhYmVsImluIHA\/ImxhYmVsImluIHAucGFyZW50Tm9kZT9wLnBhcmVudE5vZGUuZGlzYWJsZWQ9PT1rOnAuZGlzYWJsZWQ9PT1rOnAuaXNEaXNhYmxlZD09PWt8fHAuaXNEaXNhYmxlZCE9PSFrJiZiZChwKT09PWs6cC5kaXNhYmxlZD09PWs6ImxhYmVsImluIHAmJnAuZGlzYWJsZWQ9PT1rfX1mdW5jdGlvbiBtKGspe3JldHVybiBjKGZ1bmN0aW9uKHApe3JldHVybiBwPStwLGMoZnVuY3Rpb24ocSx2KXtmb3IodmFyIHksRT1rKFtdLHEubGVuZ3RoLHApLEE9RS5sZW5ndGg7QS0tOylxW3k9RVtBXV0mJihxW3ldPSEodlt5XT1xW3ldKSl9KX0pfWZ1bmN0aW9uIGwoayl7cmV0dXJuIGsmJiJ1bmRlZmluZWQiIT10eXBlb2Ygay5nZXRFbGVtZW50c0J5VGFnTmFtZSYma31mdW5jdGlvbiB0KGspe3ZhciBwO2s9az9rLm93bmVyRG9jdW1lbnR8fAprOlJhO3JldHVybiBrIT1aJiY5PT09ay5ub2RlVHlwZSYmay5kb2N1bWVudEVsZW1lbnQmJihyYT0oWj1rKS5kb2N1bWVudEVsZW1lbnQsdmE9IWQuaXNYTUxEb2MoWiksTWE9cmEubWF0Y2hlc3x8cmEud2Via2l0TWF0Y2hlc1NlbGVjdG9yfHxyYS5tc01hdGNoZXNTZWxlY3RvcixSYSE9WiYmKHA9Wi5kZWZhdWx0VmlldykmJnAudG9wIT09cCYmcC5hZGRFdmVudExpc3RlbmVyKCJ1bmxvYWQiLGNkKSxOLmdldEJ5SWQ9ZShmdW5jdGlvbihxKXtyZXR1cm4gcmEuYXBwZW5kQ2hpbGQocSkuaWQ9ZC5leHBhbmRvLCFaLmdldEVsZW1lbnRzQnlOYW1lfHwhWi5nZXRFbGVtZW50c0J5TmFtZShkLmV4cGFuZG8pLmxlbmd0aH0pLE4uZGlzY29ubmVjdGVkTWF0Y2g9ZShmdW5jdGlvbihxKXtyZXR1cm4gTWEuY2FsbChxLCIqIil9KSxOLnNjb3BlPWUoZnVuY3Rpb24oKXtyZXR1cm4gWi5xdWVyeVNlbGVjdG9yQWxsKCI6c2NvcGUiKX0pLE4uY3NzSGFzPWUoZnVuY3Rpb24oKXt0cnl7cmV0dXJuIFoucXVlcnlTZWxlY3RvcigiOmhhcygqLDpqcWZha2UpIiksCiExfWNhdGNoKHEpe3JldHVybiEwfX0pLE4uZ2V0QnlJZD8oSy5maWx0ZXIuSUQ9ZnVuY3Rpb24ocSl7dmFyIHY9cS5yZXBsYWNlKFRhLFVhKTtyZXR1cm4gZnVuY3Rpb24oeSl7cmV0dXJuIHkuZ2V0QXR0cmlidXRlKCJpZCIpPT09dn19LEsuZmluZC5JRD1mdW5jdGlvbihxLHYpe2lmKCJ1bmRlZmluZWQiIT10eXBlb2Ygdi5nZXRFbGVtZW50QnlJZCYmdmEpcmV0dXJuKHE9di5nZXRFbGVtZW50QnlJZChxKSk\/W3FdOltdfSk6KEsuZmlsdGVyLklEPWZ1bmN0aW9uKHEpe3ZhciB2PXEucmVwbGFjZShUYSxVYSk7cmV0dXJuIGZ1bmN0aW9uKHkpe3JldHVybih5PSJ1bmRlZmluZWQiIT10eXBlb2YgeS5nZXRBdHRyaWJ1dGVOb2RlJiZ5LmdldEF0dHJpYnV0ZU5vZGUoImlkIikpJiZ5LnZhbHVlPT09dn19LEsuZmluZC5JRD1mdW5jdGlvbihxLHYpe2lmKCJ1bmRlZmluZWQiIT10eXBlb2Ygdi5nZXRFbGVtZW50QnlJZCYmdmEpe3ZhciB5LEU9di5nZXRFbGVtZW50QnlJZChxKTtpZihFKXtpZigoeT0KRS5nZXRBdHRyaWJ1dGVOb2RlKCJpZCIpKSYmeS52YWx1ZT09PXEpcmV0dXJuW0VdO3ZhciBBPXYuZ2V0RWxlbWVudHNCeU5hbWUocSk7Zm9yKHY9MDtFPUFbdisrXTspaWYoKHk9RS5nZXRBdHRyaWJ1dGVOb2RlKCJpZCIpKSYmeS52YWx1ZT09PXEpcmV0dXJuW0VdfXJldHVybltdfX0pLEsuZmluZC5UQUc9ZnVuY3Rpb24ocSx2KXtyZXR1cm4idW5kZWZpbmVkIiE9dHlwZW9mIHYuZ2V0RWxlbWVudHNCeVRhZ05hbWU\/di5nZXRFbGVtZW50c0J5VGFnTmFtZShxKTp2LnF1ZXJ5U2VsZWN0b3JBbGwocSl9LEsuZmluZC5DTEFTUz1mdW5jdGlvbihxLHYpe2lmKCJ1bmRlZmluZWQiIT10eXBlb2Ygdi5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lJiZ2YSlyZXR1cm4gdi5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKHEpfSxrYT1bXSxlKGZ1bmN0aW9uKHEpe3ZhciB2O3JhLmFwcGVuZENoaWxkKHEpLmlubmVySFRNTD0iPGEgaWQ9JyIrVysiJyBocmVmPScnIGRpc2FibGVkPSdkaXNhYmxlZCc+PC9hPjxzZWxlY3QgaWQ9JyIrClcrIi1cclxcJyBkaXNhYmxlZD0nZGlzYWJsZWQnPjxvcHRpb24gc2VsZWN0ZWQ9Jyc+PC9vcHRpb24+PC9zZWxlY3Q+IjtxLnF1ZXJ5U2VsZWN0b3JBbGwoIltzZWxlY3RlZF0iKS5sZW5ndGh8fGthLnB1c2goIlxcW1tcXHgyMFxcdFxcclxcblxcZl0qKD86dmFsdWV8Y2hlY2tlZHxzZWxlY3RlZHxhc3luY3xhdXRvZm9jdXN8YXV0b3BsYXl8Y29udHJvbHN8ZGVmZXJ8ZGlzYWJsZWR8aGlkZGVufGlzbWFwfGxvb3B8bXVsdGlwbGV8b3BlbnxyZWFkb25seXxyZXF1aXJlZHxzY29wZWQpIik7cS5xdWVyeVNlbGVjdG9yQWxsKCJbaWR+PSIrVysiLV0iKS5sZW5ndGh8fGthLnB1c2goIn49Iik7cS5xdWVyeVNlbGVjdG9yQWxsKCJhIyIrVysiKyoiKS5sZW5ndGh8fGthLnB1c2goIi4jLitbK35dIik7cS5xdWVyeVNlbGVjdG9yQWxsKCI6Y2hlY2tlZCIpLmxlbmd0aHx8a2EucHVzaCgiOmNoZWNrZWQiKTsodj1aLmNyZWF0ZUVsZW1lbnQoImlucHV0IikpLnNldEF0dHJpYnV0ZSgidHlwZSIsCiJoaWRkZW4iKTtxLmFwcGVuZENoaWxkKHYpLnNldEF0dHJpYnV0ZSgibmFtZSIsIkQiKTtyYS5hcHBlbmRDaGlsZChxKS5kaXNhYmxlZD0hMDsyIT09cS5xdWVyeVNlbGVjdG9yQWxsKCI6ZGlzYWJsZWQiKS5sZW5ndGgmJmthLnB1c2goIjplbmFibGVkIiwiOmRpc2FibGVkIik7KHY9Wi5jcmVhdGVFbGVtZW50KCJpbnB1dCIpKS5zZXRBdHRyaWJ1dGUoIm5hbWUiLCIiKTtxLmFwcGVuZENoaWxkKHYpO3EucXVlcnlTZWxlY3RvckFsbCgiW25hbWU9JyddIikubGVuZ3RofHxrYS5wdXNoKCJcXFtbXFx4MjBcXHRcXHJcXG5cXGZdKm5hbWVbXFx4MjBcXHRcXHJcXG5cXGZdKj1bXFx4MjBcXHRcXHJcXG5cXGZdKig\/OicnfFwiXCIpIil9KSxOLmNzc0hhc3x8a2EucHVzaCgiOmhhcyIpLGthPWthLmxlbmd0aCYmbmV3IFJlZ0V4cChrYS5qb2luKCJ8IikpLGxhPWZ1bmN0aW9uKHEsdil7aWYocT09PXYpcmV0dXJuIGliPSEwLDA7dmFyIHk9IXEuY29tcGFyZURvY3VtZW50UG9zaXRpb24tIXYuY29tcGFyZURvY3VtZW50UG9zaXRpb247CnJldHVybiB5fHwoMSYoeT0ocS5vd25lckRvY3VtZW50fHxxKT09KHYub3duZXJEb2N1bWVudHx8dik\/cS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbih2KToxKXx8IU4uc29ydERldGFjaGVkJiZ2LmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKHEpPT09eT9xPT09Wnx8cS5vd25lckRvY3VtZW50PT1SYSYmYS5jb250YWlucyhSYSxxKT8tMTp2PT09Wnx8di5vd25lckRvY3VtZW50PT1SYSYmYS5jb250YWlucyhSYSx2KT8xOmhhP05hLmNhbGwoaGEscSktTmEuY2FsbChoYSx2KTowOjQmeT8tMToxKX0pLFp9ZnVuY3Rpb24gdygpe31mdW5jdGlvbiByKGsscCl7dmFyIHEsdix5LEUsQSxJO2lmKEE9VmFbaysiICJdKXJldHVybiBwPzA6QS5zbGljZSgwKTtBPWs7dmFyIEI9W107Zm9yKEk9Sy5wcmVGaWx0ZXI7QTspe2ZvcihFIGluIHEmJiEodj1tYS5leGVjKEEpKXx8KHYmJihBPUEuc2xpY2UodlswXS5sZW5ndGgpfHxBKSxCLnB1c2goeT1bXSkpLHE9ITEsKHY9SGEuZXhlYyhBKSkmJihxPQp2LnNoaWZ0KCkseS5wdXNoKHt2YWx1ZTpxLHR5cGU6dlswXS5yZXBsYWNlKHpiLCIgIil9KSxBPUEuc2xpY2UocS5sZW5ndGgpKSxLLmZpbHRlcikhKHY9WWJbRV0uZXhlYyhBKSl8fElbRV0mJiEodj1JW0VdKHYpKXx8KHE9di5zaGlmdCgpLHkucHVzaCh7dmFsdWU6cSx0eXBlOkUsbWF0Y2hlczp2fSksQT1BLnNsaWNlKHEubGVuZ3RoKSk7aWYoIXEpYnJlYWt9cmV0dXJuIHA\/QS5sZW5ndGg6QT9hLmVycm9yKGspOlZhKGssQikuc2xpY2UoMCl9ZnVuY3Rpb24geihrKXtmb3IodmFyIHA9MCxxPWsubGVuZ3RoLHY9IiI7cDxxO3ArKyl2Kz1rW3BdLnZhbHVlO3JldHVybiB2fWZ1bmN0aW9uIEQoayxwLHEpe3ZhciB2PXAuZGlyLHk9cC5uZXh0LEU9eXx8dixBPXEmJiJwYXJlbnROb2RlIj09PUUsST1EYSsrO3JldHVybiBwLmZpcnN0P2Z1bmN0aW9uKEIsSixSKXtmb3IoO0I9Qlt2XTspaWYoMT09PUIubm9kZVR5cGV8fEEpcmV0dXJuIGsoQixKLFIpO3JldHVybiExfTpmdW5jdGlvbihCLApKLFIpe3ZhciBULFYsaWE9W2ZhLEldO2lmKFIpZm9yKDtCPUJbdl07KXtpZigoMT09PUIubm9kZVR5cGV8fEEpJiZrKEIsSixSKSlyZXR1cm4hMH1lbHNlIGZvcig7Qj1CW3ZdOylpZigxPT09Qi5ub2RlVHlwZXx8QSlpZihWPUJbV118fChCW1ddPXt9KSx5JiZYKEIseSkpQj1CW3ZdfHxCO2Vsc2V7aWYoKFQ9VltFXSkmJlRbMF09PT1mYSYmVFsxXT09PUkpcmV0dXJuIGlhWzJdPVRbMl07aWYoKFZbRV09aWEpWzJdPWsoQixKLFIpKXJldHVybiEwfXJldHVybiExfX1mdW5jdGlvbiBGKGspe3JldHVybiAxPGsubGVuZ3RoP2Z1bmN0aW9uKHAscSx2KXtmb3IodmFyIHk9ay5sZW5ndGg7eS0tOylpZigha1t5XShwLHEsdikpcmV0dXJuITE7cmV0dXJuITB9OmtbMF19ZnVuY3Rpb24gTyhrLHAscSx2LHkpe2Zvcih2YXIgRSxBPVtdLEk9MCxCPWsubGVuZ3RoLEo9bnVsbCE9cDtJPEI7SSsrKShFPWtbSV0pJiYocSYmIXEoRSx2LHkpfHwoQS5wdXNoKEUpLEomJnAucHVzaChJKSkpO3JldHVybiBBfQpmdW5jdGlvbiBhYShrLHAscSx2LHksRSl7cmV0dXJuIHYmJiF2W1ddJiYodj1hYSh2KSkseSYmIXlbV10mJih5PWFhKHksRSkpLGMoZnVuY3Rpb24oQSxJLEIsSil7dmFyIFIsVCxWPVtdLGlhPVtdLHBhPUkubGVuZ3RoLG5hO2lmKCEobmE9QSkpe25hPXB8fCIqIjtmb3IodmFyIEVhPUIubm9kZVR5cGU\/W0JdOkIsY2E9W10sQWE9MCxXYT1FYS5sZW5ndGg7QWE8V2E7QWErKylhKG5hLEVhW0FhXSxjYSk7bmE9Y2F9bmE9IWt8fCFBJiZwP25hOk8obmEsVixrLEIsSik7aWYocT9xKG5hLFQ9eXx8KEE\/azpwYXx8dik\/W106SSxCLEopOlQ9bmEsdil7dmFyIEZhPU8oVCxpYSk7dihGYSxbXSxCLEopO2ZvcihCPUZhLmxlbmd0aDtCLS07KShSPUZhW0JdKSYmKFRbaWFbQl1dPSEobmFbaWFbQl1dPVIpKX1pZihBKXtpZih5fHxrKXtpZih5KXtGYT1bXTtmb3IoQj1ULmxlbmd0aDtCLS07KShSPVRbQl0pJiZGYS5wdXNoKG5hW0JdPVIpO3kobnVsbCxUPVtdLEZhLEopfWZvcihCPVQubGVuZ3RoO0ItLTspKFI9ClRbQl0pJiYtMTwoRmE9eT9OYS5jYWxsKEEsUik6VltCXSkmJihBW0ZhXT0hKElbRmFdPVIpKX19ZWxzZSBUPU8oVD09PUk\/VC5zcGxpY2UocGEsVC5sZW5ndGgpOlQpLHk\/eShudWxsLEksVCxKKTp0YS5hcHBseShJLFQpfSl9ZnVuY3Rpb24gR2Eoayl7Zm9yKHZhciBwLHEsdj1rLmxlbmd0aCx5PUsucmVsYXRpdmVba1swXS50eXBlXSxFPXl8fEsucmVsYXRpdmVbIiAiXSxBPXk\/MTowLEk9RChmdW5jdGlvbihSKXtyZXR1cm4gUj09PXB9LEUsITApLEI9RChmdW5jdGlvbihSKXtyZXR1cm4tMTxOYS5jYWxsKHAsUil9LEUsITApLEo9W2Z1bmN0aW9uKFIsVCxWKXtSPSF5JiYoVnx8VCE9Uyl8fCgocD1UKS5ub2RlVHlwZT9JKFIsVCxWKTpCKFIsVCxWKSk7cmV0dXJuIHA9bnVsbCxSfV07QTx2O0ErKylpZihFPUsucmVsYXRpdmVba1tBXS50eXBlXSlKPVtEKEYoSiksRSldO2Vsc2V7aWYoKEU9Sy5maWx0ZXJba1tBXS50eXBlXS5hcHBseShudWxsLGtbQV0ubWF0Y2hlcykpW1ddKXtmb3IocT0KKytBO3E8diYmIUsucmVsYXRpdmVba1txXS50eXBlXTtxKyspO3JldHVybiBhYSgxPEEmJkYoSiksMTxBJiZ6KGsuc2xpY2UoMCxBLTEpLmNvbmNhdCh7dmFsdWU6IiAiPT09a1tBLTJdLnR5cGU\/IioiOiIifSkpLnJlcGxhY2UoemIsIiQxIiksRSxBPHEmJkdhKGsuc2xpY2UoQSxxKSkscTx2JiZHYShrPWsuc2xpY2UocSkpLHE8diYmeihrKSl9Si5wdXNoKEUpfXJldHVybiBGKEopfWZ1bmN0aW9uIHFhKGsscCl7dmFyIHEsdix5LEUsQT1bXSxJPVtdLEI9dWFbaysiICJdO2lmKCFCKXtwfHwocD1yKGspKTtmb3IocT1wLmxlbmd0aDtxLS07KShCPUdhKHBbcV0pKVtXXT9BLnB1c2goQik6SS5wdXNoKEIpOyhCPXVhKGssKHY9MDxBLmxlbmd0aCx5PTA8SS5sZW5ndGgsRT1mdW5jdGlvbihKLFIsVCxWLGlhKXt2YXIgcGEsbmEsRWE9MCxjYT0iMCIsQWE9SiYmW10sV2E9W10sRmE9Uyx1Yz1KfHx5JiZLLmZpbmQuVEFHKCIqIixpYSksdmM9ZmErPW51bGw9PUZhPzE6TWF0aC5yYW5kb20oKXx8Ci4xLGRkPXVjLmxlbmd0aDtmb3IoaWEmJihTPVI9PVp8fFJ8fGlhKTtjYSE9PWRkJiZudWxsIT0ocGE9dWNbY2FdKTtjYSsrKXtpZih5JiZwYSl7dmFyIGVjPTA7Zm9yKFJ8fHBhLm93bmVyRG9jdW1lbnQ9PVp8fCh0KHBhKSxUPSF2YSk7bmE9SVtlYysrXTspaWYobmEocGEsUnx8WixUKSl7dGEuY2FsbChWLHBhKTticmVha31pYSYmKGZhPXZjKX12JiYoKHBhPSFuYSYmcGEpJiZFYS0tLEomJkFhLnB1c2gocGEpKX1pZihFYSs9Y2EsdiYmY2EhPT1FYSl7Zm9yKGVjPTA7bmE9QVtlYysrXTspbmEoQWEsV2EsUixUKTtpZihKKXtpZigwPEVhKWZvcig7Y2EtLTspQWFbY2FdfHxXYVtjYV18fChXYVtjYV09WGMuY2FsbChWKSk7V2E9TyhXYSl9dGEuYXBwbHkoVixXYSk7aWEmJiFKJiYwPFdhLmxlbmd0aCYmMTxFYStBLmxlbmd0aCYmZC51bmlxdWVTb3J0KFYpfXJldHVybiBpYSYmKGZhPXZjLFM9RmEpLEFhfSx2P2MoRSk6RSkpKS5zZWxlY3Rvcj1rfXJldHVybiBCfWZ1bmN0aW9uIFNhKGssCnAscSx2KXt2YXIgeSxFLEEsSSxCLEo9ImZ1bmN0aW9uIj09dHlwZW9mIGsmJmssUj0hdiYmcihrPUouc2VsZWN0b3J8fGspO2lmKHE9cXx8W10sMT09PVIubGVuZ3RoKXtpZigyPChFPVJbMF09UlswXS5zbGljZSgwKSkubGVuZ3RoJiYiSUQiPT09KEE9RVswXSkudHlwZSYmOT09PXAubm9kZVR5cGUmJnZhJiZLLnJlbGF0aXZlW0VbMV0udHlwZV0pe2lmKCEocD0oSy5maW5kLklEKEEubWF0Y2hlc1swXS5yZXBsYWNlKFRhLFVhKSxwKXx8W10pWzBdKSlyZXR1cm4gcTtKJiYocD1wLnBhcmVudE5vZGUpO2s9ay5zbGljZShFLnNoaWZ0KCkudmFsdWUubGVuZ3RoKX1mb3IoeT1ZYi5uZWVkc0NvbnRleHQudGVzdChrKT8wOkUubGVuZ3RoO3ktLSYmKEE9RVt5XSwhSy5yZWxhdGl2ZVtJPUEudHlwZV0pOylpZigoQj1LLmZpbmRbSV0pJiYodj1CKEEubWF0Y2hlc1swXS5yZXBsYWNlKFRhLFVhKSxkYy50ZXN0KEVbMF0udHlwZSkmJmwocC5wYXJlbnROb2RlKXx8cCkpKXtpZihFLnNwbGljZSh5LAoxKSwhKGs9di5sZW5ndGgmJnooRSkpKXJldHVybiB0YS5hcHBseShxLHYpLHE7YnJlYWt9fXJldHVybihKfHxxYShrLFIpKSh2LHAsIXZhLHEsIXB8fGRjLnRlc3QoaykmJmwocC5wYXJlbnROb2RlKXx8cCkscX12YXIgUSxLLFMsaGEsaWIsWixyYSx2YSxrYSxNYSx0YT11YixXPWQuZXhwYW5kbyxmYT0wLERhPTAsZGI9YigpLFZhPWIoKSx1YT1iKCksWT1iKCksbGE9ZnVuY3Rpb24oayxwKXtyZXR1cm4gaz09PXAmJihpYj0hMCksMH0sSWE9UmVnRXhwKCJbXFx4MjBcXHRcXHJcXG5cXGZdKyIsImciKSxtYT1SZWdFeHAoIl5bXFx4MjBcXHRcXHJcXG5cXGZdKixbXFx4MjBcXHRcXHJcXG5cXGZdKiIpLEhhPVJlZ0V4cCgiXltcXHgyMFxcdFxcclxcblxcZl0qKFs+K35dfFtcXHgyMFxcdFxcclxcblxcZl0pW1xceDIwXFx0XFxyXFxuXFxmXSoiKSx2Yj1SZWdFeHAoIltcXHgyMFxcdFxcclxcblxcZl18PiIpLGZjPVJlZ0V4cCgiOigoPzpcXFxcW1xcZGEtZkEtRl17MSw2fVtcXHgyMFxcdFxcclxcblxcZl0\/fFxcXFxbXlxcclxcblxcZl18W1xcdy1dfFteXHgwMC1cXHg3Zl0pKykoPzpcXCgoKCcoKD86XFxcXC58W15cXFxcJ10pKiknfFwiKCg\/OlxcXFwufFteXFxcXFwiXSkqKVwiKXwoKD86XFxcXC58W15cXFxcKClbXFxdXXxcXFtbXFx4MjBcXHRcXHJcXG5cXGZdKigoPzpcXFxcW1xcZGEtZkEtRl17MSw2fVtcXHgyMFxcdFxcclxcblxcZl0\/fFxcXFxbXlxcclxcblxcZl18W1xcdy1dfFteXHgwMC1cXHg3Zl0pKykoPzpbXFx4MjBcXHRcXHJcXG5cXGZdKihbKl4kfCF+XT89KVtcXHgyMFxcdFxcclxcblxcZl0qKD86JygoPzpcXFxcLnxbXlxcXFwnXSkqKSd8XCIoKD86XFxcXC58W15cXFxcXCJdKSopXCJ8KCg\/OlxcXFxbXFxkYS1mQS1GXXsxLDZ9W1xceDIwXFx0XFxyXFxuXFxmXT98XFxcXFteXFxyXFxuXFxmXXxbXFx3LV18W15ceDAwLVxceDdmXSkrKSl8KVtcXHgyMFxcdFxcclxcblxcZl0qXFxdKSopfC4qKVxcKXwpIiksCmVkPVJlZ0V4cCgiXig\/OlxcXFxbXFxkYS1mQS1GXXsxLDZ9W1xceDIwXFx0XFxyXFxuXFxmXT98XFxcXFteXFxyXFxuXFxmXXxbXFx3LV18W15ceDAwLVxceDdmXSkrJCIpLFliPXtJRDpSZWdFeHAoIl4jKCg\/OlxcXFxbXFxkYS1mQS1GXXsxLDZ9W1xceDIwXFx0XFxyXFxuXFxmXT98XFxcXFteXFxyXFxuXFxmXXxbXFx3LV18W15ceDAwLVxceDdmXSkrKSIpLENMQVNTOlJlZ0V4cCgiXlxcLigoPzpcXFxcW1xcZGEtZkEtRl17MSw2fVtcXHgyMFxcdFxcclxcblxcZl0\/fFxcXFxbXlxcclxcblxcZl18W1xcdy1dfFteXHgwMC1cXHg3Zl0pKykiKSxUQUc6UmVnRXhwKCJeKCg\/OlxcXFxbXFxkYS1mQS1GXXsxLDZ9W1xceDIwXFx0XFxyXFxuXFxmXT98XFxcXFteXFxyXFxuXFxmXXxbXFx3LV18W15ceDAwLVxceDdmXSkrfFsqXSkiKSxBVFRSOlJlZ0V4cCgiXlxcW1tcXHgyMFxcdFxcclxcblxcZl0qKCg\/OlxcXFxbXFxkYS1mQS1GXXsxLDZ9W1xceDIwXFx0XFxyXFxuXFxmXT98XFxcXFteXFxyXFxuXFxmXXxbXFx3LV18W15ceDAwLVxceDdmXSkrKSg\/OltcXHgyMFxcdFxcclxcblxcZl0qKFsqXiR8IX5dPz0pW1xceDIwXFx0XFxyXFxuXFxmXSooPzonKCg\/OlxcXFwufFteXFxcXCddKSopJ3xcIigoPzpcXFxcLnxbXlxcXFxcIl0pKilcInwoKD86XFxcXFtcXGRhLWZBLUZdezEsNn1bXFx4MjBcXHRcXHJcXG5cXGZdP3xcXFxcW15cXHJcXG5cXGZdfFtcXHctXXxbXlx4MDAtXFx4N2ZdKSspKXwpW1xceDIwXFx0XFxyXFxuXFxmXSpcXF0iKSwKUFNFVURPOlJlZ0V4cCgiXjooKD86XFxcXFtcXGRhLWZBLUZdezEsNn1bXFx4MjBcXHRcXHJcXG5cXGZdP3xcXFxcW15cXHJcXG5cXGZdfFtcXHctXXxbXlx4MDAtXFx4N2ZdKSspKD86XFwoKCgnKCg\/OlxcXFwufFteXFxcXCddKSopJ3xcIigoPzpcXFxcLnxbXlxcXFxcIl0pKilcIil8KCg\/OlxcXFwufFteXFxcXCgpW1xcXV18XFxbW1xceDIwXFx0XFxyXFxuXFxmXSooKD86XFxcXFtcXGRhLWZBLUZdezEsNn1bXFx4MjBcXHRcXHJcXG5cXGZdP3xcXFxcW15cXHJcXG5cXGZdfFtcXHctXXxbXlx4MDAtXFx4N2ZdKSspKD86W1xceDIwXFx0XFxyXFxuXFxmXSooWypeJHwhfl0\/PSlbXFx4MjBcXHRcXHJcXG5cXGZdKig\/OicoKD86XFxcXC58W15cXFxcJ10pKiknfFwiKCg\/OlxcXFwufFteXFxcXFwiXSkqKVwifCgoPzpcXFxcW1xcZGEtZkEtRl17MSw2fVtcXHgyMFxcdFxcclxcblxcZl0\/fFxcXFxbXlxcclxcblxcZl18W1xcdy1dfFteXHgwMC1cXHg3Zl0pKykpfClbXFx4MjBcXHRcXHJcXG5cXGZdKlxcXSkqKXwuKilcXCl8KSIpLApDSElMRDpSZWdFeHAoIl46KG9ubHl8Zmlyc3R8bGFzdHxudGh8bnRoLWxhc3QpLShjaGlsZHxvZi10eXBlKSg\/OlxcKFtcXHgyMFxcdFxcclxcblxcZl0qKGV2ZW58b2RkfCgoWystXXwpKFxcZCopbnwpW1xceDIwXFx0XFxyXFxuXFxmXSooPzooWystXXwpW1xceDIwXFx0XFxyXFxuXFxmXSooXFxkKyl8KSlbXFx4MjBcXHRcXHJcXG5cXGZdKlxcKXwpIiwiaSIpLGJvb2w6UmVnRXhwKCJeKD86Y2hlY2tlZHxzZWxlY3RlZHxhc3luY3xhdXRvZm9jdXN8YXV0b3BsYXl8Y29udHJvbHN8ZGVmZXJ8ZGlzYWJsZWR8aGlkZGVufGlzbWFwfGxvb3B8bXVsdGlwbGV8b3BlbnxyZWFkb25seXxyZXF1aXJlZHxzY29wZWQpJCIsImkiKSxuZWVkc0NvbnRleHQ6UmVnRXhwKCJeW1xceDIwXFx0XFxyXFxuXFxmXSpbPit+XXw6KGV2ZW58b2RkfGVxfGd0fGx0fG50aHxmaXJzdHxsYXN0KSg\/OlxcKFtcXHgyMFxcdFxcclxcblxcZl0qKCg\/Oi1cXGQpP1xcZCopW1xceDIwXFx0XFxyXFxuXFxmXSpcXCl8KSg\/PVteLV18JCkiLAoiaSIpfSxmZD0vXig\/OmlucHV0fHNlbGVjdHx0ZXh0YXJlYXxidXR0b24pJC9pLGdkPS9eaFxkJC9pLGFkPS9eKD86IyhbXHctXSspfChcdyspfFwuKFtcdy1dKykpJC8sZGM9L1srfl0vLFRhPVJlZ0V4cCgiXFxcXFtcXGRhLWZBLUZdezEsNn1bXFx4MjBcXHRcXHJcXG5cXGZdP3xcXFxcKFteXFxyXFxuXFxmXSkiLCJnIiksVWE9ZnVuY3Rpb24oayxwKXtrPSIweCIray5zbGljZSgxKS02NTUzNjtyZXR1cm4gcHx8KDA+az9TdHJpbmcuZnJvbUNoYXJDb2RlKGsrNjU1MzYpOlN0cmluZy5mcm9tQ2hhckNvZGUoaz4+MTB8NTUyOTYsMTAyMyZrfDU2MzIwKSl9LGNkPWZ1bmN0aW9uKCl7dCgpfSxiZD1EKGZ1bmN0aW9uKGspe3JldHVybiEwPT09ay5kaXNhYmxlZCYmWChrLCJmaWVsZHNldCIpfSx7ZGlyOiJwYXJlbnROb2RlIixuZXh0OiJsZWdlbmQifSk7dHJ5e3RhLmFwcGx5KG9hPXlhLmNhbGwoUmEuY2hpbGROb2RlcyksUmEuY2hpbGROb2Rlcyksb2FbUmEuY2hpbGROb2Rlcy5sZW5ndGhdLm5vZGVUeXBlfWNhdGNoKGspe3RhPQp7YXBwbHk6ZnVuY3Rpb24ocCxxKXt1Yi5hcHBseShwLHlhLmNhbGwocSkpfSxjYWxsOmZ1bmN0aW9uKHApe3ViLmFwcGx5KHAseWEuY2FsbChhcmd1bWVudHMsMSkpfX19Zm9yKFEgaW4gYS5tYXRjaGVzPWZ1bmN0aW9uKGsscCl7cmV0dXJuIGEoayxudWxsLG51bGwscCl9LGEubWF0Y2hlc1NlbGVjdG9yPWZ1bmN0aW9uKGsscCl7aWYodChrKSwhKCF2YXx8WVtwKyIgIl18fGthJiZrYS50ZXN0KHApKSl0cnl7dmFyIHE9TWEuY2FsbChrLHApO2lmKHF8fE4uZGlzY29ubmVjdGVkTWF0Y2h8fGsuZG9jdW1lbnQmJjExIT09ay5kb2N1bWVudC5ub2RlVHlwZSlyZXR1cm4gcX1jYXRjaCh2KXtZKHAsITApfXJldHVybiAwPGEocCxaLG51bGwsW2tdKS5sZW5ndGh9LGEuY29udGFpbnM9ZnVuY3Rpb24oayxwKXtyZXR1cm4oay5vd25lckRvY3VtZW50fHxrKSE9WiYmdChrKSxkLmNvbnRhaW5zKGsscCl9LGEuYXR0cj1mdW5jdGlvbihrLHApeyhrLm93bmVyRG9jdW1lbnR8fGspIT1aJiZ0KGspOwp2YXIgcT1LLmF0dHJIYW5kbGVbcC50b0xvd2VyQ2FzZSgpXTtxPXEmJkZiLmNhbGwoSy5hdHRySGFuZGxlLHAudG9Mb3dlckNhc2UoKSk\/cShrLHAsIXZhKTp2b2lkIDA7cmV0dXJuIHZvaWQgMCE9PXE\/cTprLmdldEF0dHJpYnV0ZShwKX0sYS5lcnJvcj1mdW5jdGlvbihrKXt0aHJvdyBFcnJvcigiU3ludGF4IGVycm9yLCB1bnJlY29nbml6ZWQgZXhwcmVzc2lvbjogIitrKTt9LGQudW5pcXVlU29ydD1mdW5jdGlvbihrKXt2YXIgcCxxPVtdLHY9MCx5PTA7aWYoaWI9IU4uc29ydFN0YWJsZSxoYT0hTi5zb3J0U3RhYmxlJiZ5YS5jYWxsKGssMCksWWMuY2FsbChrLGxhKSxpYil7Zm9yKDtwPWtbeSsrXTspcD09PWtbeV0mJih2PXEucHVzaCh5KSk7Zm9yKDt2LS07KVpjLmNhbGwoayxxW3ZdLDEpfXJldHVybiBoYT1udWxsLGt9LGQuZm4udW5pcXVlU29ydD1mdW5jdGlvbigpe3JldHVybiB0aGlzLnB1c2hTdGFjayhkLnVuaXF1ZVNvcnQoeWEuYXBwbHkodGhpcykpKX0sKEs9ZC5leHByPQp7Y2FjaGVMZW5ndGg6NTAsY3JlYXRlUHNldWRvOmMsbWF0Y2g6WWIsYXR0ckhhbmRsZTp7fSxmaW5kOnt9LHJlbGF0aXZlOnsiPiI6e2RpcjoicGFyZW50Tm9kZSIsZmlyc3Q6ITB9LCIgIjp7ZGlyOiJwYXJlbnROb2RlIn0sIisiOntkaXI6InByZXZpb3VzU2libGluZyIsZmlyc3Q6ITB9LCJ+Ijp7ZGlyOiJwcmV2aW91c1NpYmxpbmcifX0scHJlRmlsdGVyOntBVFRSOmZ1bmN0aW9uKGspe3JldHVybiBrWzFdPWtbMV0ucmVwbGFjZShUYSxVYSksa1szXT0oa1szXXx8a1s0XXx8a1s1XXx8IiIpLnJlcGxhY2UoVGEsVWEpLCJ+PSI9PT1rWzJdJiYoa1szXT0iICIra1szXSsiICIpLGsuc2xpY2UoMCw0KX0sQ0hJTEQ6ZnVuY3Rpb24oayl7cmV0dXJuIGtbMV09a1sxXS50b0xvd2VyQ2FzZSgpLCJudGgiPT09a1sxXS5zbGljZSgwLDMpPyhrWzNdfHxhLmVycm9yKGtbMF0pLGtbNF09KyhrWzRdP2tbNV0rKGtbNl18fDEpOjIqKCJldmVuIj09PWtbM118fCJvZGQiPT09a1szXSkpLGtbNV09Cisoa1s3XStrWzhdfHwib2RkIj09PWtbM10pKTprWzNdJiZhLmVycm9yKGtbMF0pLGt9LFBTRVVETzpmdW5jdGlvbihrKXt2YXIgcCxxPSFrWzZdJiZrWzJdO3JldHVybiBZYi5DSElMRC50ZXN0KGtbMF0pP251bGw6KGtbM10\/a1syXT1rWzRdfHxrWzVdfHwiIjpxJiZmYy50ZXN0KHEpJiYocD1yKHEsITApKSYmKHA9cS5pbmRleE9mKCIpIixxLmxlbmd0aC1wKS1xLmxlbmd0aCkmJihrWzBdPWtbMF0uc2xpY2UoMCxwKSxrWzJdPXEuc2xpY2UoMCxwKSksay5zbGljZSgwLDMpKX19LGZpbHRlcjp7VEFHOmZ1bmN0aW9uKGspe3ZhciBwPWsucmVwbGFjZShUYSxVYSkudG9Mb3dlckNhc2UoKTtyZXR1cm4iKiI9PT1rP2Z1bmN0aW9uKCl7cmV0dXJuITB9OmZ1bmN0aW9uKHEpe3JldHVybiBYKHEscCl9fSxDTEFTUzpmdW5jdGlvbihrKXt2YXIgcD1kYltrKyIgIl07cmV0dXJuIHB8fChwPW5ldyBSZWdFeHAoIihefFtcXHgyMFxcdFxcclxcblxcZl0pIitrKyIoW1xceDIwXFx0XFxyXFxuXFxmXXwkKSIpLApkYihrLGZ1bmN0aW9uKHEpe3JldHVybiBwLnRlc3QoInN0cmluZyI9PXR5cGVvZiBxLmNsYXNzTmFtZSYmcS5jbGFzc05hbWV8fCJ1bmRlZmluZWQiIT10eXBlb2YgcS5nZXRBdHRyaWJ1dGUmJnEuZ2V0QXR0cmlidXRlKCJjbGFzcyIpfHwiIil9KSl9LEFUVFI6ZnVuY3Rpb24oayxwLHEpe3JldHVybiBmdW5jdGlvbih2KXt2PWEuYXR0cih2LGspO3JldHVybiBudWxsPT12PyIhPSI9PT1wOiFwfHwodis9IiIsIj0iPT09cD92PT09cToiIT0iPT09cD92IT09cToiXj0iPT09cD9xJiYwPT09di5pbmRleE9mKHEpOiIqPSI9PT1wP3EmJi0xPHYuaW5kZXhPZihxKToiJD0iPT09cD9xJiZ2LnNsaWNlKC1xLmxlbmd0aCk9PT1xOiJ+PSI9PT1wPy0xPCgiICIrdi5yZXBsYWNlKElhLCIgIikrIiAiKS5pbmRleE9mKHEpOiJ8PSI9PT1wJiYodj09PXF8fHYuc2xpY2UoMCxxLmxlbmd0aCsxKT09PXErIi0iKSl9fSxDSElMRDpmdW5jdGlvbihrLHAscSx2LHkpe3ZhciBFPSJudGgiIT09ay5zbGljZSgwLAozKSxBPSJsYXN0IiE9PWsuc2xpY2UoLTQpLEk9Im9mLXR5cGUiPT09cDtyZXR1cm4gMT09PXYmJjA9PT15P2Z1bmN0aW9uKEIpe3JldHVybiEhQi5wYXJlbnROb2RlfTpmdW5jdGlvbihCLEosUil7dmFyIFQsVixpYTtKPUUhPT1BPyJuZXh0U2libGluZyI6InByZXZpb3VzU2libGluZyI7dmFyIHBhPUIucGFyZW50Tm9kZSxuYT1JJiZCLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCksRWE9IVImJiFJLGNhPSExO2lmKHBhKXtpZihFKXtmb3IoO0o7KXtmb3IoVj1CO1Y9VltKXTspaWYoST9YKFYsbmEpOjE9PT1WLm5vZGVUeXBlKXJldHVybiExO3ZhciBBYT1KPSJvbmx5Ij09PWsmJiFBYSYmIm5leHRTaWJsaW5nIn1yZXR1cm4hMH1pZihBYT1bQT9wYS5maXJzdENoaWxkOnBhLmxhc3RDaGlsZF0sQSYmRWEpZm9yKGNhPShpYT0oVD0oUj1wYVtXXXx8KHBhW1ddPXt9KSlba118fFtdKVswXT09PWZhJiZUWzFdKSYmVFsyXSxWPWlhJiZwYS5jaGlsZE5vZGVzW2lhXTtWPSsraWEmJlYmJlZbSl18fAooY2E9aWE9MCl8fEFhLnBvcCgpOyl7aWYoMT09PVYubm9kZVR5cGUmJisrY2EmJlY9PT1CKXtSW2tdPVtmYSxpYSxjYV07YnJlYWt9fWVsc2UgaWYoRWEmJihjYT1pYT0oVD0oQltXXXx8KEJbV109e30pKVtrXXx8W10pWzBdPT09ZmEmJlRbMV0pLCExPT09Y2EpZm9yKDsoVj0rK2lhJiZWJiZWW0pdfHwoY2E9aWE9MCl8fEFhLnBvcCgpKSYmKChJPyFYKFYsbmEpOjEhPT1WLm5vZGVUeXBlKXx8ISsrY2F8fChFYSYmKChSPVZbV118fChWW1ddPXt9KSlba109W2ZhLGNhXSksViE9PUIpKTspO3JldHVybihjYS09eSk9PT12fHwwPT1jYSV2JiYwPD1jYS92fX19LFBTRVVETzpmdW5jdGlvbihrLHApe3ZhciBxLHY9Sy5wc2V1ZG9zW2tdfHxLLnNldEZpbHRlcnNbay50b0xvd2VyQ2FzZSgpXXx8YS5lcnJvcigidW5zdXBwb3J0ZWQgcHNldWRvOiAiK2spO3JldHVybiB2W1ddP3YocCk6MTx2Lmxlbmd0aD8ocT1bayxrLCIiLHBdLEsuc2V0RmlsdGVycy5oYXNPd25Qcm9wZXJ0eShrLnRvTG93ZXJDYXNlKCkpPwpjKGZ1bmN0aW9uKHksRSl7Zm9yKHZhciBBLEk9dih5LHApLEI9SS5sZW5ndGg7Qi0tOyl5W0E9TmEuY2FsbCh5LElbQl0pXT0hKEVbQV09SVtCXSl9KTpmdW5jdGlvbih5KXtyZXR1cm4gdih5LDAscSl9KTp2fX0scHNldWRvczp7bm90OmMoZnVuY3Rpb24oayl7dmFyIHA9W10scT1bXSx2PXFhKGsucmVwbGFjZSh6YiwiJDEiKSk7cmV0dXJuIHZbV10\/YyhmdW5jdGlvbih5LEUsQSxJKXt2YXIgQjtBPXYoeSxudWxsLEksW10pO2ZvcihJPXkubGVuZ3RoO0ktLTspKEI9QVtJXSkmJih5W0ldPSEoRVtJXT1CKSl9KTpmdW5jdGlvbih5LEUsQSl7cmV0dXJuIHBbMF09eSx2KHAsbnVsbCxBLHEpLHBbMF09bnVsbCwhcS5wb3AoKX19KSxoYXM6YyhmdW5jdGlvbihrKXtyZXR1cm4gZnVuY3Rpb24ocCl7cmV0dXJuIDA8YShrLHApLmxlbmd0aH19KSxjb250YWluczpjKGZ1bmN0aW9uKGspe3JldHVybiBrPWsucmVwbGFjZShUYSxVYSksZnVuY3Rpb24ocCl7cmV0dXJuLTE8KHAudGV4dENvbnRlbnR8fApkLnRleHQocCkpLmluZGV4T2Yoayl9fSksbGFuZzpjKGZ1bmN0aW9uKGspe3JldHVybiBlZC50ZXN0KGt8fCIiKXx8YS5lcnJvcigidW5zdXBwb3J0ZWQgbGFuZzogIitrKSxrPWsucmVwbGFjZShUYSxVYSkudG9Mb3dlckNhc2UoKSxmdW5jdGlvbihwKXt2YXIgcTtkbyBpZihxPXZhP3AubGFuZzpwLmdldEF0dHJpYnV0ZSgieG1sOmxhbmciKXx8cC5nZXRBdHRyaWJ1dGUoImxhbmciKSlyZXR1cm4ocT1xLnRvTG93ZXJDYXNlKCkpPT09a3x8MD09PXEuaW5kZXhPZihrKyItIik7d2hpbGUoKHA9cC5wYXJlbnROb2RlKSYmMT09PXAubm9kZVR5cGUpO3JldHVybiExfX0pLHRhcmdldDpmdW5jdGlvbihrKXt2YXIgcD1uLmxvY2F0aW9uJiZuLmxvY2F0aW9uLmhhc2g7cmV0dXJuIHAmJnAuc2xpY2UoMSk9PT1rLmlkfSxyb290OmZ1bmN0aW9uKGspe3JldHVybiBrPT09cmF9LGZvY3VzOmZ1bmN0aW9uKGspe2E6e3RyeXt2YXIgcD1aLmFjdGl2ZUVsZW1lbnQ7YnJlYWsgYX1jYXRjaChxKXt9cD0Kdm9pZCAwfXJldHVybiBrPT09cCYmWi5oYXNGb2N1cygpJiYhIShrLnR5cGV8fGsuaHJlZnx8fmsudGFiSW5kZXgpfSxlbmFibGVkOmgoITEpLGRpc2FibGVkOmgoITApLGNoZWNrZWQ6ZnVuY3Rpb24oayl7cmV0dXJuIFgoaywiaW5wdXQiKSYmISFrLmNoZWNrZWR8fFgoaywib3B0aW9uIikmJiEhay5zZWxlY3RlZH0sc2VsZWN0ZWQ6ZnVuY3Rpb24oayl7cmV0dXJuIGsucGFyZW50Tm9kZSYmay5wYXJlbnROb2RlLnNlbGVjdGVkSW5kZXgsITA9PT1rLnNlbGVjdGVkfSxlbXB0eTpmdW5jdGlvbihrKXtmb3Ioaz1rLmZpcnN0Q2hpbGQ7aztrPWsubmV4dFNpYmxpbmcpaWYoNj5rLm5vZGVUeXBlKXJldHVybiExO3JldHVybiEwfSxwYXJlbnQ6ZnVuY3Rpb24oayl7cmV0dXJuIUsucHNldWRvcy5lbXB0eShrKX0saGVhZGVyOmZ1bmN0aW9uKGspe3JldHVybiBnZC50ZXN0KGsubm9kZU5hbWUpfSxpbnB1dDpmdW5jdGlvbihrKXtyZXR1cm4gZmQudGVzdChrLm5vZGVOYW1lKX0sYnV0dG9uOmZ1bmN0aW9uKGspe3JldHVybiBYKGssCiJpbnB1dCIpJiYiYnV0dG9uIj09PWsudHlwZXx8WChrLCJidXR0b24iKX0sdGV4dDpmdW5jdGlvbihrKXt2YXIgcDtyZXR1cm4gWChrLCJpbnB1dCIpJiYidGV4dCI9PT1rLnR5cGUmJihudWxsPT0ocD1rLmdldEF0dHJpYnV0ZSgidHlwZSIpKXx8InRleHQiPT09cC50b0xvd2VyQ2FzZSgpKX0sZmlyc3Q6bShmdW5jdGlvbigpe3JldHVyblswXX0pLGxhc3Q6bShmdW5jdGlvbihrLHApe3JldHVybltwLTFdfSksZXE6bShmdW5jdGlvbihrLHAscSl7cmV0dXJuWzA+cT9xK3A6cV19KSxldmVuOm0oZnVuY3Rpb24oayxwKXtmb3IodmFyIHE9MDtxPHA7cSs9MilrLnB1c2gocSk7cmV0dXJuIGt9KSxvZGQ6bShmdW5jdGlvbihrLHApe2Zvcih2YXIgcT0xO3E8cDtxKz0yKWsucHVzaChxKTtyZXR1cm4ga30pLGx0Om0oZnVuY3Rpb24oayxwLHEpe2ZvcihwPTA+cT9xK3A6cDxxP3A6cTswPD0tLXA7KWsucHVzaChwKTtyZXR1cm4ga30pLGd0Om0oZnVuY3Rpb24oayxwLHEpe2ZvcihxPTA+cT8KcStwOnE7KytxPHA7KWsucHVzaChxKTtyZXR1cm4ga30pfX0pLnBzZXVkb3MubnRoPUsucHNldWRvcy5lcSx7cmFkaW86ITAsY2hlY2tib3g6ITAsZmlsZTohMCxwYXNzd29yZDohMCxpbWFnZTohMH0pSy5wc2V1ZG9zW1FdPWYoUSk7Zm9yKFEgaW57c3VibWl0OiEwLHJlc2V0OiEwfSlLLnBzZXVkb3NbUV09ZyhRKTt3LnByb3RvdHlwZT1LLmZpbHRlcnM9Sy5wc2V1ZG9zO0suc2V0RmlsdGVycz1uZXcgdztOLnNvcnRTdGFibGU9Vy5zcGxpdCgiIikuc29ydChsYSkuam9pbigiIik9PT1XO3QoKTtOLnNvcnREZXRhY2hlZD1lKGZ1bmN0aW9uKGspe3JldHVybiAxJmsuY29tcGFyZURvY3VtZW50UG9zaXRpb24oWi5jcmVhdGVFbGVtZW50KCJmaWVsZHNldCIpKX0pO2QuZmluZD1hO2QuZXhwclsiOiJdPWQuZXhwci5wc2V1ZG9zO2QudW5pcXVlPWQudW5pcXVlU29ydDthLmNvbXBpbGU9cWE7YS5zZWxlY3Q9U2E7YS5zZXREb2N1bWVudD10O2EuZXNjYXBlPWQuZXNjYXBlU2VsZWN0b3I7CmEuZ2V0VGV4dD1kLnRleHQ7YS5pc1hNTD1kLmlzWE1MRG9jO2Euc2VsZWN0b3JzPWQuZXhwcjthLnN1cHBvcnQ9ZC5zdXBwb3J0O2EudW5pcXVlU29ydD1kLnVuaXF1ZVNvcnR9KCk7dmFyIHdiPWZ1bmN0aW9uKGEsYixjKXtmb3IodmFyIGU9W10sZj12b2lkIDAhPT1jOyhhPWFbYl0pJiY5IT09YS5ub2RlVHlwZTspaWYoMT09PWEubm9kZVR5cGUpe2lmKGYmJmQoYSkuaXMoYykpYnJlYWs7ZS5wdXNoKGEpfXJldHVybiBlfSx3Yz1mdW5jdGlvbihhLGIpe2Zvcih2YXIgYz1bXTthO2E9YS5uZXh0U2libGluZykxPT09YS5ub2RlVHlwZSYmYSE9PWImJmMucHVzaChhKTtyZXR1cm4gY30seGM9ZC5leHByLm1hdGNoLm5lZWRzQ29udGV4dCx5Yz0vXjwoW2Etel1bXlwvXDA+Olx4MjBcdFxyXG5cZl0qKVtceDIwXHRcclxuXGZdKlwvPz4oPzo8XC9cMT58KSQvaTtkLmZpbHRlcj1mdW5jdGlvbihhLGIsYyl7dmFyIGU9YlswXTtyZXR1cm4gYyYmKGE9Ijpub3QoIithKyIpIiksMT09PWIubGVuZ3RoJiYKMT09PWUubm9kZVR5cGU\/ZC5maW5kLm1hdGNoZXNTZWxlY3RvcihlLGEpP1tlXTpbXTpkLmZpbmQubWF0Y2hlcyhhLGQuZ3JlcChiLGZ1bmN0aW9uKGYpe3JldHVybiAxPT09Zi5ub2RlVHlwZX0pKX07ZC5mbi5leHRlbmQoe2ZpbmQ6ZnVuY3Rpb24oYSl7dmFyIGIsYz10aGlzLmxlbmd0aCxlPXRoaXM7aWYoInN0cmluZyIhPXR5cGVvZiBhKXJldHVybiB0aGlzLnB1c2hTdGFjayhkKGEpLmZpbHRlcihmdW5jdGlvbigpe2ZvcihiPTA7YjxjO2IrKylpZihkLmNvbnRhaW5zKGVbYl0sdGhpcykpcmV0dXJuITB9KSk7dmFyIGY9dGhpcy5wdXNoU3RhY2soW10pO2ZvcihiPTA7YjxjO2IrKylkLmZpbmQoYSxlW2JdLGYpO3JldHVybiAxPGM\/ZC51bmlxdWVTb3J0KGYpOmZ9LGZpbHRlcjpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5wdXNoU3RhY2soamEodGhpcyxhfHxbXSwhMSkpfSxub3Q6ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMucHVzaFN0YWNrKGphKHRoaXMsYXx8W10sITApKX0saXM6ZnVuY3Rpb24oYSl7cmV0dXJuISFqYSh0aGlzLAoic3RyaW5nIj09dHlwZW9mIGEmJnhjLnRlc3QoYSk\/ZChhKTphfHxbXSwhMSkubGVuZ3RofX0pO3ZhciBoZD0vXig\/OlxzKig8W1x3XFddKz4pW14+XSp8IyhbXHctXSspKSQvOyhkLmZuLmluaXQ9ZnVuY3Rpb24oYSxiLGMpe3ZhciBlLGY7aWYoIWEpcmV0dXJuIHRoaXM7aWYoYz1jfHxpZCwic3RyaW5nIj09dHlwZW9mIGEpe2lmKCEoZT0iPCI9PT1hWzBdJiYiPiI9PT1hW2EubGVuZ3RoLTFdJiYzPD1hLmxlbmd0aD9bbnVsbCxhLG51bGxdOmhkLmV4ZWMoYSkpfHwhZVsxXSYmYilyZXR1cm4hYnx8Yi5qcXVlcnk\/KGJ8fGMpLmZpbmQoYSk6dGhpcy5jb25zdHJ1Y3RvcihiKS5maW5kKGEpO2lmKGVbMV0pe2lmKGI9YiBpbnN0YW5jZW9mIGQ\/YlswXTpiLGQubWVyZ2UodGhpcyxkLnBhcnNlSFRNTChlWzFdLGImJmIubm9kZVR5cGU\/Yi5vd25lckRvY3VtZW50fHxiOkwsITApKSx5Yy50ZXN0KGVbMV0pJiZkLmlzUGxhaW5PYmplY3QoYikpZm9yKGUgaW4gYilNKHRoaXNbZV0pP3RoaXNbZV0oYltlXSk6CnRoaXMuYXR0cihlLGJbZV0pO3JldHVybiB0aGlzfXJldHVybihmPUwuZ2V0RWxlbWVudEJ5SWQoZVsyXSkpJiYodGhpc1swXT1mLHRoaXMubGVuZ3RoPTEpLHRoaXN9cmV0dXJuIGEubm9kZVR5cGU\/KHRoaXNbMF09YSx0aGlzLmxlbmd0aD0xLHRoaXMpOk0oYSk\/dm9pZCAwIT09Yy5yZWFkeT9jLnJlYWR5KGEpOmEoZCk6ZC5tYWtlQXJyYXkoYSx0aGlzKX0pLnByb3RvdHlwZT1kLmZuO3ZhciBpZD1kKEwpLGpkPS9eKD86cGFyZW50c3xwcmV2KD86VW50aWx8QWxsKSkvLGtkPXtjaGlsZHJlbjohMCxjb250ZW50czohMCxuZXh0OiEwLHByZXY6ITB9O2QuZm4uZXh0ZW5kKHtoYXM6ZnVuY3Rpb24oYSl7dmFyIGI9ZChhLHRoaXMpLGM9Yi5sZW5ndGg7cmV0dXJuIHRoaXMuZmlsdGVyKGZ1bmN0aW9uKCl7Zm9yKHZhciBlPTA7ZTxjO2UrKylpZihkLmNvbnRhaW5zKHRoaXMsYltlXSkpcmV0dXJuITB9KX0sY2xvc2VzdDpmdW5jdGlvbihhLGIpe3ZhciBjLGU9MCxmPXRoaXMubGVuZ3RoLApnPVtdLGg9InN0cmluZyIhPXR5cGVvZiBhJiZkKGEpO2lmKCF4Yy50ZXN0KGEpKWZvcig7ZTxmO2UrKylmb3IoYz10aGlzW2VdO2MmJmMhPT1iO2M9Yy5wYXJlbnROb2RlKWlmKDExPmMubm9kZVR5cGUmJihoPy0xPGguaW5kZXgoYyk6MT09PWMubm9kZVR5cGUmJmQuZmluZC5tYXRjaGVzU2VsZWN0b3IoYyxhKSkpe2cucHVzaChjKTticmVha31yZXR1cm4gdGhpcy5wdXNoU3RhY2soMTxnLmxlbmd0aD9kLnVuaXF1ZVNvcnQoZyk6Zyl9LGluZGV4OmZ1bmN0aW9uKGEpe3JldHVybiBhPyJzdHJpbmciPT10eXBlb2YgYT9OYS5jYWxsKGQoYSksdGhpc1swXSk6TmEuY2FsbCh0aGlzLGEuanF1ZXJ5P2FbMF06YSk6dGhpc1swXSYmdGhpc1swXS5wYXJlbnROb2RlP3RoaXMuZmlyc3QoKS5wcmV2QWxsKCkubGVuZ3RoOi0xfSxhZGQ6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gdGhpcy5wdXNoU3RhY2soZC51bmlxdWVTb3J0KGQubWVyZ2UodGhpcy5nZXQoKSxkKGEsYikpKSl9LGFkZEJhY2s6ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuYWRkKG51bGw9PQphP3RoaXMucHJldk9iamVjdDp0aGlzLnByZXZPYmplY3QuZmlsdGVyKGEpKX19KTtkLmVhY2goe3BhcmVudDpmdW5jdGlvbihhKXtyZXR1cm4oYT1hLnBhcmVudE5vZGUpJiYxMSE9PWEubm9kZVR5cGU\/YTpudWxsfSxwYXJlbnRzOmZ1bmN0aW9uKGEpe3JldHVybiB3YihhLCJwYXJlbnROb2RlIil9LHBhcmVudHNVbnRpbDpmdW5jdGlvbihhLGIsYyl7cmV0dXJuIHdiKGEsInBhcmVudE5vZGUiLGMpfSxuZXh0OmZ1bmN0aW9uKGEpe3JldHVybiBsYihhLCJuZXh0U2libGluZyIpfSxwcmV2OmZ1bmN0aW9uKGEpe3JldHVybiBsYihhLCJwcmV2aW91c1NpYmxpbmciKX0sbmV4dEFsbDpmdW5jdGlvbihhKXtyZXR1cm4gd2IoYSwibmV4dFNpYmxpbmciKX0scHJldkFsbDpmdW5jdGlvbihhKXtyZXR1cm4gd2IoYSwicHJldmlvdXNTaWJsaW5nIil9LG5leHRVbnRpbDpmdW5jdGlvbihhLGIsYyl7cmV0dXJuIHdiKGEsIm5leHRTaWJsaW5nIixjKX0scHJldlVudGlsOmZ1bmN0aW9uKGEsYiwKYyl7cmV0dXJuIHdiKGEsInByZXZpb3VzU2libGluZyIsYyl9LHNpYmxpbmdzOmZ1bmN0aW9uKGEpe3JldHVybiB3YygoYS5wYXJlbnROb2RlfHx7fSkuZmlyc3RDaGlsZCxhKX0sY2hpbGRyZW46ZnVuY3Rpb24oYSl7cmV0dXJuIHdjKGEuZmlyc3RDaGlsZCl9LGNvbnRlbnRzOmZ1bmN0aW9uKGEpe3JldHVybiBudWxsIT1hLmNvbnRlbnREb2N1bWVudCYmc2MoYS5jb250ZW50RG9jdW1lbnQpP2EuY29udGVudERvY3VtZW50OihYKGEsInRlbXBsYXRlIikmJihhPWEuY29udGVudHx8YSksZC5tZXJnZShbXSxhLmNoaWxkTm9kZXMpKX19LGZ1bmN0aW9uKGEsYil7ZC5mblthXT1mdW5jdGlvbihjLGUpe3ZhciBmPWQubWFwKHRoaXMsYixjKTtyZXR1cm4iVW50aWwiIT09YS5zbGljZSgtNSkmJihlPWMpLGUmJiJzdHJpbmciPT10eXBlb2YgZSYmKGY9ZC5maWx0ZXIoZSxmKSksMTx0aGlzLmxlbmd0aCYmKGtkW2FdfHxkLnVuaXF1ZVNvcnQoZiksamQudGVzdChhKSYmZi5yZXZlcnNlKCkpLAp0aGlzLnB1c2hTdGFjayhmKX19KTt2YXIgTGE9L1teXHgyMFx0XHJcblxmXSsvZztkLkNhbGxiYWNrcz1mdW5jdGlvbihhKXt2YXIgYixjO2E9InN0cmluZyI9PXR5cGVvZiBhPyhiPWEsYz17fSxkLmVhY2goYi5tYXRjaChMYSl8fFtdLGZ1bmN0aW9uKHosRCl7Y1tEXT0hMH0pLGMpOmQuZXh0ZW5kKHt9LGEpO3ZhciBlLGYsZyxoLG09W10sbD1bXSx0PS0xLHc9ZnVuY3Rpb24oKXtoPWh8fGEub25jZTtmb3IoZz1lPSEwO2wubGVuZ3RoO3Q9LTEpZm9yKGY9bC5zaGlmdCgpOysrdDxtLmxlbmd0aDspITE9PT1tW3RdLmFwcGx5KGZbMF0sZlsxXSkmJmEuc3RvcE9uRmFsc2UmJih0PW0ubGVuZ3RoLGY9ITEpO2EubWVtb3J5fHwoZj0hMSk7ZT0hMTtoJiYobT1mP1tdOiIiKX0scj17YWRkOmZ1bmN0aW9uKCl7cmV0dXJuIG0mJihmJiYhZSYmKHQ9bS5sZW5ndGgtMSxsLnB1c2goZikpLGZ1bmN0aW9uIEYoRCl7ZC5lYWNoKEQsZnVuY3Rpb24oTyxhYSl7TShhYSk\/YS51bmlxdWUmJnIuaGFzKGFhKXx8Cm0ucHVzaChhYSk6YWEmJmFhLmxlbmd0aCYmInN0cmluZyIhPT1VKGFhKSYmRihhYSl9KX0oYXJndW1lbnRzKSxmJiYhZSYmdygpKSx0aGlzfSxyZW1vdmU6ZnVuY3Rpb24oKXtyZXR1cm4gZC5lYWNoKGFyZ3VtZW50cyxmdW5jdGlvbih6LEQpe2Zvcih2YXIgRjstMTwoRj1kLmluQXJyYXkoRCxtLEYpKTspbS5zcGxpY2UoRiwxKSxGPD10JiZ0LS19KSx0aGlzfSxoYXM6ZnVuY3Rpb24oeil7cmV0dXJuIHo\/LTE8ZC5pbkFycmF5KHosbSk6MDxtLmxlbmd0aH0sZW1wdHk6ZnVuY3Rpb24oKXtyZXR1cm4gbSYmKG09W10pLHRoaXN9LGRpc2FibGU6ZnVuY3Rpb24oKXtyZXR1cm4gaD1sPVtdLG09Zj0iIix0aGlzfSxkaXNhYmxlZDpmdW5jdGlvbigpe3JldHVybiFtfSxsb2NrOmZ1bmN0aW9uKCl7cmV0dXJuIGg9bD1bXSxmfHxlfHwobT1mPSIiKSx0aGlzfSxsb2NrZWQ6ZnVuY3Rpb24oKXtyZXR1cm4hIWh9LGZpcmVXaXRoOmZ1bmN0aW9uKHosRCl7cmV0dXJuIGh8fChEPVt6LChEPUR8fApbXSkuc2xpY2U\/RC5zbGljZSgpOkRdLGwucHVzaChEKSxlfHx3KCkpLHRoaXN9LGZpcmU6ZnVuY3Rpb24oKXtyZXR1cm4gci5maXJlV2l0aCh0aGlzLGFyZ3VtZW50cyksdGhpc30sZmlyZWQ6ZnVuY3Rpb24oKXtyZXR1cm4hIWd9fTtyZXR1cm4gcn07ZC5leHRlbmQoe0RlZmVycmVkOmZ1bmN0aW9uKGEpe3ZhciBiPVtbIm5vdGlmeSIsInByb2dyZXNzIixkLkNhbGxiYWNrcygibWVtb3J5IiksZC5DYWxsYmFja3MoIm1lbW9yeSIpLDJdLFsicmVzb2x2ZSIsImRvbmUiLGQuQ2FsbGJhY2tzKCJvbmNlIG1lbW9yeSIpLGQuQ2FsbGJhY2tzKCJvbmNlIG1lbW9yeSIpLDAsInJlc29sdmVkIl0sWyJyZWplY3QiLCJmYWlsIixkLkNhbGxiYWNrcygib25jZSBtZW1vcnkiKSxkLkNhbGxiYWNrcygib25jZSBtZW1vcnkiKSwxLCJyZWplY3RlZCJdXSxjPSJwZW5kaW5nIixlPXtzdGF0ZTpmdW5jdGlvbigpe3JldHVybiBjfSxhbHdheXM6ZnVuY3Rpb24oKXtyZXR1cm4gZi5kb25lKGFyZ3VtZW50cykuZmFpbChhcmd1bWVudHMpLAp0aGlzfSwiY2F0Y2giOmZ1bmN0aW9uKGcpe3JldHVybiBlLnRoZW4obnVsbCxnKX0scGlwZTpmdW5jdGlvbigpe3ZhciBnPWFyZ3VtZW50cztyZXR1cm4gZC5EZWZlcnJlZChmdW5jdGlvbihoKXtkLmVhY2goYixmdW5jdGlvbihtLGwpe3ZhciB0PU0oZ1tsWzRdXSkmJmdbbFs0XV07ZltsWzFdXShmdW5jdGlvbigpe3ZhciB3PXQmJnQuYXBwbHkodGhpcyxhcmd1bWVudHMpO3cmJk0ody5wcm9taXNlKT93LnByb21pc2UoKS5wcm9ncmVzcyhoLm5vdGlmeSkuZG9uZShoLnJlc29sdmUpLmZhaWwoaC5yZWplY3QpOmhbbFswXSsiV2l0aCJdKHRoaXMsdD9bd106YXJndW1lbnRzKX0pfSk7Zz1udWxsfSkucHJvbWlzZSgpfSx0aGVuOmZ1bmN0aW9uKGcsaCxtKXtmdW5jdGlvbiBsKHcscix6LEQpe3JldHVybiBmdW5jdGlvbigpe3ZhciBGPXRoaXMsTz1hcmd1bWVudHMsYWE9ZnVuY3Rpb24oKXt2YXIgcWE7aWYoISh3PHQpKXtpZigocWE9ei5hcHBseShGLE8pKT09PXIucHJvbWlzZSgpKXRocm93IG5ldyBUeXBlRXJyb3IoIlRoZW5hYmxlIHNlbGYtcmVzb2x1dGlvbiIpOwp2YXIgU2E9cWEmJigib2JqZWN0Ij09dHlwZW9mIHFhfHwiZnVuY3Rpb24iPT10eXBlb2YgcWEpJiZxYS50aGVuO00oU2EpP0Q\/U2EuY2FsbChxYSxsKHQscixZYSxEKSxsKHQscixaYSxEKSk6KHQrKyxTYS5jYWxsKHFhLGwodCxyLFlhLEQpLGwodCxyLFphLEQpLGwodCxyLFlhLHIubm90aWZ5V2l0aCkpKTooeiE9PVlhJiYoRj12b2lkIDAsTz1bcWFdKSwoRHx8ci5yZXNvbHZlV2l0aCkoRixPKSl9fSxHYT1EP2FhOmZ1bmN0aW9uKCl7dHJ5e2FhKCl9Y2F0Y2gocWEpe2QuRGVmZXJyZWQuZXhjZXB0aW9uSG9vayYmZC5EZWZlcnJlZC5leGNlcHRpb25Ib29rKHFhLEdhLmVycm9yKSx0PD13KzEmJih6IT09WmEmJihGPXZvaWQgMCxPPVtxYV0pLHIucmVqZWN0V2l0aChGLE8pKX19O3c\/R2EoKTooZC5EZWZlcnJlZC5nZXRFcnJvckhvb2s\/R2EuZXJyb3I9ZC5EZWZlcnJlZC5nZXRFcnJvckhvb2soKTpkLkRlZmVycmVkLmdldFN0YWNrSG9vayYmKEdhLmVycm9yPWQuRGVmZXJyZWQuZ2V0U3RhY2tIb29rKCkpLApuLnNldFRpbWVvdXQoR2EpKX19dmFyIHQ9MDtyZXR1cm4gZC5EZWZlcnJlZChmdW5jdGlvbih3KXtiWzBdWzNdLmFkZChsKDAsdyxNKG0pP206WWEsdy5ub3RpZnlXaXRoKSk7YlsxXVszXS5hZGQobCgwLHcsTShnKT9nOllhKSk7YlsyXVszXS5hZGQobCgwLHcsTShoKT9oOlphKSl9KS5wcm9taXNlKCl9LHByb21pc2U6ZnVuY3Rpb24oZyl7cmV0dXJuIG51bGwhPWc\/ZC5leHRlbmQoZyxlKTplfX0sZj17fTtyZXR1cm4gZC5lYWNoKGIsZnVuY3Rpb24oZyxoKXt2YXIgbT1oWzJdLGw9aFs1XTtlW2hbMV1dPW0uYWRkO2wmJm0uYWRkKGZ1bmN0aW9uKCl7Yz1sfSxiWzMtZ11bMl0uZGlzYWJsZSxiWzMtZ11bM10uZGlzYWJsZSxiWzBdWzJdLmxvY2ssYlswXVszXS5sb2NrKTttLmFkZChoWzNdLmZpcmUpO2ZbaFswXV09ZnVuY3Rpb24oKXtyZXR1cm4gZltoWzBdKyJXaXRoIl0odGhpcz09PWY\/dm9pZCAwOnRoaXMsYXJndW1lbnRzKSx0aGlzfTtmW2hbMF0rIldpdGgiXT1tLmZpcmVXaXRofSksCmUucHJvbWlzZShmKSxhJiZhLmNhbGwoZixmKSxmfSx3aGVuOmZ1bmN0aW9uKGEpe3ZhciBiPWFyZ3VtZW50cy5sZW5ndGgsYz1iLGU9QXJyYXkoYyksZj15YS5jYWxsKGFyZ3VtZW50cyksZz1kLkRlZmVycmVkKCksaD1mdW5jdGlvbihtKXtyZXR1cm4gZnVuY3Rpb24obCl7ZVttXT10aGlzO2ZbbV09MTxhcmd1bWVudHMubGVuZ3RoP3lhLmNhbGwoYXJndW1lbnRzKTpsOy0tYnx8Zy5yZXNvbHZlV2l0aChlLGYpfX07aWYoMT49YiYmKG1iKGEsZy5kb25lKGgoYykpLnJlc29sdmUsZy5yZWplY3QsIWIpLCJwZW5kaW5nIj09PWcuc3RhdGUoKXx8TShmW2NdJiZmW2NdLnRoZW4pKSlyZXR1cm4gZy50aGVuKCk7Zm9yKDtjLS07KW1iKGZbY10saChjKSxnLnJlamVjdCk7cmV0dXJuIGcucHJvbWlzZSgpfX0pO3ZhciBsZD0vXihFdmFsfEludGVybmFsfFJhbmdlfFJlZmVyZW5jZXxTeW50YXh8VHlwZXxVUkkpRXJyb3IkLztkLkRlZmVycmVkLmV4Y2VwdGlvbkhvb2s9ZnVuY3Rpb24oYSxiKXtuLmNvbnNvbGUmJgpuLmNvbnNvbGUud2FybiYmYSYmbGQudGVzdChhLm5hbWUpJiZuLmNvbnNvbGUud2FybigialF1ZXJ5LkRlZmVycmVkIGV4Y2VwdGlvbjogIithLm1lc3NhZ2UsYS5zdGFjayxiKX07ZC5yZWFkeUV4Y2VwdGlvbj1mdW5jdGlvbihhKXtuLnNldFRpbWVvdXQoZnVuY3Rpb24oKXt0aHJvdyBhO30pfTt2YXIgZ2M9ZC5EZWZlcnJlZCgpO2QuZm4ucmVhZHk9ZnVuY3Rpb24oYSl7cmV0dXJuIGdjLnRoZW4oYSlbImNhdGNoIl0oZnVuY3Rpb24oYil7ZC5yZWFkeUV4Y2VwdGlvbihiKX0pLHRoaXN9O2QuZXh0ZW5kKHtpc1JlYWR5OiExLHJlYWR5V2FpdDoxLHJlYWR5OmZ1bmN0aW9uKGEpeyghMD09PWE\/LS1kLnJlYWR5V2FpdDpkLmlzUmVhZHkpfHwoZC5pc1JlYWR5PSEwKSE9PWEmJjA8LS1kLnJlYWR5V2FpdHx8Z2MucmVzb2x2ZVdpdGgoTCxbZF0pfX0pO2QucmVhZHkudGhlbj1nYy50aGVuOyJjb21wbGV0ZSI9PT1MLnJlYWR5U3RhdGV8fCJsb2FkaW5nIiE9PUwucmVhZHlTdGF0ZSYmIUwuZG9jdW1lbnRFbGVtZW50LmRvU2Nyb2xsPwpuLnNldFRpbWVvdXQoZC5yZWFkeSk6KEwuYWRkRXZlbnRMaXN0ZW5lcigiRE9NQ29udGVudExvYWRlZCIsT2EpLG4uYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsT2EpKTt2YXIgWGE9ZnVuY3Rpb24oYSxiLGMsZSxmLGcsaCl7dmFyIG09MCxsPWEubGVuZ3RoLHQ9bnVsbD09YztpZigib2JqZWN0Ij09PVUoYykpZm9yKG0gaW4gZj0hMCxjKVhhKGEsYixtLGNbbV0sITAsZyxoKTtlbHNlIGlmKHZvaWQgMCE9PWUmJihmPSEwLE0oZSl8fChoPSEwKSx0JiYoaD8oYi5jYWxsKGEsZSksYj1udWxsKToodD1iLGI9ZnVuY3Rpb24odyxyLHope3JldHVybiB0LmNhbGwoZCh3KSx6KX0pKSxiKSlmb3IoO208bDttKyspYihhW21dLGMsaD9lOmUuY2FsbChhW21dLG0sYihhW21dLGMpKSk7cmV0dXJuIGY\/YTp0P2IuY2FsbChhKTpsP2IoYVswXSxjKTpnfSxNYz0vXi1tcy0vLE5jPS8tKFthLXpdKS9nLEdiPWZ1bmN0aW9uKGEpe3JldHVybiAxPT09YS5ub2RlVHlwZXx8OT09PWEubm9kZVR5cGV8fCErYS5ub2RlVHlwZX07CkphLnVpZD0xO0phLnByb3RvdHlwZT17Y2FjaGU6ZnVuY3Rpb24oYSl7dmFyIGI9YVt0aGlzLmV4cGFuZG9dO3JldHVybiBifHwoYj17fSxHYihhKSYmKGEubm9kZVR5cGU\/YVt0aGlzLmV4cGFuZG9dPWI6T2JqZWN0LmRlZmluZVByb3BlcnR5KGEsdGhpcy5leHBhbmRvLHt2YWx1ZTpiLGNvbmZpZ3VyYWJsZTohMH0pKSksYn0sc2V0OmZ1bmN0aW9uKGEsYixjKXt2YXIgZTthPXRoaXMuY2FjaGUoYSk7aWYoInN0cmluZyI9PXR5cGVvZiBiKWFbQmEoYildPWM7ZWxzZSBmb3IoZSBpbiBiKWFbQmEoZSldPWJbZV07cmV0dXJuIGF9LGdldDpmdW5jdGlvbihhLGIpe3JldHVybiB2b2lkIDA9PT1iP3RoaXMuY2FjaGUoYSk6YVt0aGlzLmV4cGFuZG9dJiZhW3RoaXMuZXhwYW5kb11bQmEoYildfSxhY2Nlc3M6ZnVuY3Rpb24oYSxiLGMpe3JldHVybiB2b2lkIDA9PT1ifHxiJiYic3RyaW5nIj09dHlwZW9mIGImJnZvaWQgMD09PWM\/dGhpcy5nZXQoYSxiKToodGhpcy5zZXQoYSxiLGMpLHZvaWQgMCE9PQpjP2M6Yil9LHJlbW92ZTpmdW5jdGlvbihhLGIpe3ZhciBjPWFbdGhpcy5leHBhbmRvXTtpZih2b2lkIDAhPT1jKXtpZih2b2lkIDAhPT1iKXt2YXIgZT0oYj1BcnJheS5pc0FycmF5KGIpP2IubWFwKEJhKTooYj1CYShiKSlpbiBjP1tiXTpiLm1hdGNoKExhKXx8W10pLmxlbmd0aDtmb3IoO2UtLTspZGVsZXRlIGNbYltlXV19KHZvaWQgMD09PWJ8fGQuaXNFbXB0eU9iamVjdChjKSkmJihhLm5vZGVUeXBlP2FbdGhpcy5leHBhbmRvXT12b2lkIDA6ZGVsZXRlIGFbdGhpcy5leHBhbmRvXSl9fSxoYXNEYXRhOmZ1bmN0aW9uKGEpe2E9YVt0aGlzLmV4cGFuZG9dO3JldHVybiB2b2lkIDAhPT1hJiYhZC5pc0VtcHR5T2JqZWN0KGEpfX07dmFyIEc9bmV3IEphLHhhPW5ldyBKYSxQYz0vXig\/Olx7W1x3XFddKlx9fFxbW1x3XFddKlxdKSQvLE9jPS9bQS1aXS9nO2QuZXh0ZW5kKHtoYXNEYXRhOmZ1bmN0aW9uKGEpe3JldHVybiB4YS5oYXNEYXRhKGEpfHxHLmhhc0RhdGEoYSl9LGRhdGE6ZnVuY3Rpb24oYSwKYixjKXtyZXR1cm4geGEuYWNjZXNzKGEsYixjKX0scmVtb3ZlRGF0YTpmdW5jdGlvbihhLGIpe3hhLnJlbW92ZShhLGIpfSxfZGF0YTpmdW5jdGlvbihhLGIsYyl7cmV0dXJuIEcuYWNjZXNzKGEsYixjKX0sX3JlbW92ZURhdGE6ZnVuY3Rpb24oYSxiKXtHLnJlbW92ZShhLGIpfX0pO2QuZm4uZXh0ZW5kKHtkYXRhOmZ1bmN0aW9uKGEsYil7dmFyIGMsZSxmLGc9dGhpc1swXSxoPWcmJmcuYXR0cmlidXRlcztpZih2b2lkIDA9PT1hKXtpZih0aGlzLmxlbmd0aCYmKGY9eGEuZ2V0KGcpLDE9PT1nLm5vZGVUeXBlJiYhRy5nZXQoZywiaGFzRGF0YUF0dHJzIikpKXtmb3IoYz1oLmxlbmd0aDtjLS07KWhbY10mJjA9PT0oZT1oW2NdLm5hbWUpLmluZGV4T2YoImRhdGEtIikmJihlPUJhKGUuc2xpY2UoNSkpLE9iKGcsZSxmW2VdKSk7Ry5zZXQoZywiaGFzRGF0YUF0dHJzIiwhMCl9cmV0dXJuIGZ9cmV0dXJuIm9iamVjdCI9PXR5cGVvZiBhP3RoaXMuZWFjaChmdW5jdGlvbigpe3hhLnNldCh0aGlzLAphKX0pOlhhKHRoaXMsZnVuY3Rpb24obSl7dmFyIGw7aWYoZyYmdm9pZCAwPT09bSlyZXR1cm4gdm9pZCAwIT09KGw9eGEuZ2V0KGcsYSkpP2w6dm9pZCAwIT09KGw9T2IoZyxhKSk\/bDp2b2lkIDA7dGhpcy5lYWNoKGZ1bmN0aW9uKCl7eGEuc2V0KHRoaXMsYSxtKX0pfSxudWxsLGIsMTxhcmd1bWVudHMubGVuZ3RoLG51bGwsITApfSxyZW1vdmVEYXRhOmZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXt4YS5yZW1vdmUodGhpcyxhKX0pfX0pO2QuZXh0ZW5kKHtxdWV1ZTpmdW5jdGlvbihhLGIsYyl7dmFyIGU7aWYoYSlyZXR1cm4gYj0oYnx8ImZ4IikrInF1ZXVlIixlPUcuZ2V0KGEsYiksYyYmKCFlfHxBcnJheS5pc0FycmF5KGMpP2U9Ry5hY2Nlc3MoYSxiLGQubWFrZUFycmF5KGMpKTplLnB1c2goYykpLGV8fFtdfSxkZXF1ZXVlOmZ1bmN0aW9uKGEsYil7Yj1ifHwiZngiO3ZhciBjPWQucXVldWUoYSxiKSxlPWMubGVuZ3RoLGY9Yy5zaGlmdCgpLGc9ZC5fcXVldWVIb29rcyhhLApiKTsiaW5wcm9ncmVzcyI9PT1mJiYoZj1jLnNoaWZ0KCksZS0tKTtmJiYoImZ4Ij09PWImJmMudW5zaGlmdCgiaW5wcm9ncmVzcyIpLGRlbGV0ZSBnLnN0b3AsZi5jYWxsKGEsZnVuY3Rpb24oKXtkLmRlcXVldWUoYSxiKX0sZykpOyFlJiZnJiZnLmVtcHR5LmZpcmUoKX0sX3F1ZXVlSG9va3M6ZnVuY3Rpb24oYSxiKXt2YXIgYz1iKyJxdWV1ZUhvb2tzIjtyZXR1cm4gRy5nZXQoYSxjKXx8Ry5hY2Nlc3MoYSxjLHtlbXB0eTpkLkNhbGxiYWNrcygib25jZSBtZW1vcnkiKS5hZGQoZnVuY3Rpb24oKXtHLnJlbW92ZShhLFtiKyJxdWV1ZSIsY10pfSl9KX19KTtkLmZuLmV4dGVuZCh7cXVldWU6ZnVuY3Rpb24oYSxiKXt2YXIgYz0yO3JldHVybiJzdHJpbmciIT10eXBlb2YgYSYmKGI9YSxhPSJmeCIsYy0tKSxhcmd1bWVudHMubGVuZ3RoPGM\/ZC5xdWV1ZSh0aGlzWzBdLGEpOnZvaWQgMD09PWI\/dGhpczp0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgZT1kLnF1ZXVlKHRoaXMsYSxiKTtkLl9xdWV1ZUhvb2tzKHRoaXMsCmEpOyJmeCI9PT1hJiYiaW5wcm9ncmVzcyIhPT1lWzBdJiZkLmRlcXVldWUodGhpcyxhKX0pfSxkZXF1ZXVlOmZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXtkLmRlcXVldWUodGhpcyxhKX0pfSxjbGVhclF1ZXVlOmZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLnF1ZXVlKGF8fCJmeCIsW10pfSxwcm9taXNlOmZ1bmN0aW9uKGEsYil7dmFyIGMsZT0xLGY9ZC5EZWZlcnJlZCgpLGc9dGhpcyxoPXRoaXMubGVuZ3RoLG09ZnVuY3Rpb24oKXstLWV8fGYucmVzb2x2ZVdpdGgoZyxbZ10pfTsic3RyaW5nIiE9dHlwZW9mIGEmJihiPWEsYT12b2lkIDApO2ZvcihhPWF8fCJmeCI7aC0tOykoYz1HLmdldChnW2hdLGErInF1ZXVlSG9va3MiKSkmJmMuZW1wdHkmJihlKyssYy5lbXB0eS5hZGQobSkpO3JldHVybiBtKCksZi5wcm9taXNlKGIpfX0pO3ZhciB6Yz0vWystXT8oPzpcZCpcLnwpXGQrKD86W2VFXVsrLV0\/XGQrfCkvLnNvdXJjZSx5Yj1uZXcgUmVnRXhwKCJeKD86KFsrLV0pPXwpKCIrCnpjKyIpKFthLXolXSopJCIsImkiKSxQYT1bIlRvcCIsIlJpZ2h0IiwiQm90dG9tIiwiTGVmdCJdLGpiPUwuZG9jdW1lbnRFbGVtZW50LG9iPWZ1bmN0aW9uKGEpe3JldHVybiBkLmNvbnRhaW5zKGEub3duZXJEb2N1bWVudCxhKX0sbWQ9e2NvbXBvc2VkOiEwfTtqYi5nZXRSb290Tm9kZSYmKG9iPWZ1bmN0aW9uKGEpe3JldHVybiBkLmNvbnRhaW5zKGEub3duZXJEb2N1bWVudCxhKXx8YS5nZXRSb290Tm9kZShtZCk9PT1hLm93bmVyRG9jdW1lbnR9KTt2YXIgUWI9ZnVuY3Rpb24oYSxiKXtyZXR1cm4ibm9uZSI9PT0oYT1ifHxhKS5zdHlsZS5kaXNwbGF5fHwiIj09PWEuc3R5bGUuZGlzcGxheSYmb2IoYSkmJiJub25lIj09PWQuY3NzKGEsImRpc3BsYXkiKX0sbGM9e307ZC5mbi5leHRlbmQoe3Nob3c6ZnVuY3Rpb24oKXtyZXR1cm4gJGEodGhpcywhMCl9LGhpZGU6ZnVuY3Rpb24oKXtyZXR1cm4gJGEodGhpcyl9LHRvZ2dsZTpmdW5jdGlvbihhKXtyZXR1cm4iYm9vbGVhbiI9PXR5cGVvZiBhPwphP3RoaXMuc2hvdygpOnRoaXMuaGlkZSgpOnRoaXMuZWFjaChmdW5jdGlvbigpe1FiKHRoaXMpP2QodGhpcykuc2hvdygpOmQodGhpcykuaGlkZSgpfSl9fSk7dmFyIFpiLEhiPS9eKD86Y2hlY2tib3h8cmFkaW8pJC9pLG1jPS88KFthLXpdW15cL1wwPlx4MjBcdFxyXG5cZl0qKS9pLG5jPS9eJHxebW9kdWxlJHxcLyg\/OmphdmF8ZWNtYSlzY3JpcHQvaSx4Yj1MLmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKS5hcHBlbmRDaGlsZChMLmNyZWF0ZUVsZW1lbnQoImRpdiIpKTsoWmI9TC5jcmVhdGVFbGVtZW50KCJpbnB1dCIpKS5zZXRBdHRyaWJ1dGUoInR5cGUiLCJyYWRpbyIpO1piLnNldEF0dHJpYnV0ZSgiY2hlY2tlZCIsImNoZWNrZWQiKTtaYi5zZXRBdHRyaWJ1dGUoIm5hbWUiLCJ0Iik7eGIuYXBwZW5kQ2hpbGQoWmIpO04uY2hlY2tDbG9uZT14Yi5jbG9uZU5vZGUoITApLmNsb25lTm9kZSghMCkubGFzdENoaWxkLmNoZWNrZWQ7eGIuaW5uZXJIVE1MPSI8dGV4dGFyZWE+eDwvdGV4dGFyZWE+IjsKTi5ub0Nsb25lQ2hlY2tlZD0hIXhiLmNsb25lTm9kZSghMCkubGFzdENoaWxkLmRlZmF1bHRWYWx1ZTt4Yi5pbm5lckhUTUw9IjxvcHRpb24+PC9vcHRpb24+IjtOLm9wdGlvbj0hIXhiLmxhc3RDaGlsZDt2YXIgQ2E9e3RoZWFkOlsxLCI8dGFibGU+IiwiPC90YWJsZT4iXSxjb2w6WzIsIjx0YWJsZT48Y29sZ3JvdXA+IiwiPC9jb2xncm91cD48L3RhYmxlPiJdLHRyOlsyLCI8dGFibGU+PHRib2R5PiIsIjwvdGJvZHk+PC90YWJsZT4iXSx0ZDpbMywiPHRhYmxlPjx0Ym9keT48dHI+IiwiPC90cj48L3Rib2R5PjwvdGFibGU+Il0sX2RlZmF1bHQ6WzAsIiIsIiJdfTtDYS50Ym9keT1DYS50Zm9vdD1DYS5jb2xncm91cD1DYS5jYXB0aW9uPUNhLnRoZWFkO0NhLnRoPUNhLnRkO04ub3B0aW9ufHwoQ2Eub3B0Z3JvdXA9Q2Eub3B0aW9uPVsxLCI8c2VsZWN0IG11bHRpcGxlPSdtdWx0aXBsZSc+IiwiPC9zZWxlY3Q+Il0pO3ZhciBRYz0vPHwmIz9cdys7LyxBYz0vXihbXi5dKikoPzpcLiguKyl8KS87CmQuZXZlbnQ9e2dsb2JhbDp7fSxhZGQ6ZnVuY3Rpb24oYSxiLGMsZSxmKXt2YXIgZyxoLG0sbCx0LHcscix6LEQ9Ry5nZXQoYSk7aWYoR2IoYSkpZm9yKGMuaGFuZGxlciYmKGM9KGc9YykuaGFuZGxlcixmPWcuc2VsZWN0b3IpLGYmJmQuZmluZC5tYXRjaGVzU2VsZWN0b3IoamIsZiksYy5ndWlkfHwoYy5ndWlkPWQuZ3VpZCsrKSwobD1ELmV2ZW50cyl8fChsPUQuZXZlbnRzPU9iamVjdC5jcmVhdGUobnVsbCkpLChoPUQuaGFuZGxlKXx8KGg9RC5oYW5kbGU9ZnVuY3Rpb24oTyl7cmV0dXJuInVuZGVmaW5lZCIhPXR5cGVvZiBkJiZkLmV2ZW50LnRyaWdnZXJlZCE9PU8udHlwZT9kLmV2ZW50LmRpc3BhdGNoLmFwcGx5KGEsYXJndW1lbnRzKTp2b2lkIDB9KSxEPShiPShifHwiIikubWF0Y2goTGEpfHxbIiJdKS5sZW5ndGg7RC0tOyl7dmFyIEY9ej0obT1BYy5leGVjKGJbRF0pfHxbXSlbMV07bT0obVsyXXx8IiIpLnNwbGl0KCIuIikuc29ydCgpO0YmJih3PWQuZXZlbnQuc3BlY2lhbFtGXXx8Cnt9LEY9KGY\/dy5kZWxlZ2F0ZVR5cGU6dy5iaW5kVHlwZSl8fEYsdz1kLmV2ZW50LnNwZWNpYWxbRl18fHt9LHQ9ZC5leHRlbmQoe3R5cGU6RixvcmlnVHlwZTp6LGRhdGE6ZSxoYW5kbGVyOmMsZ3VpZDpjLmd1aWQsc2VsZWN0b3I6ZixuZWVkc0NvbnRleHQ6ZiYmZC5leHByLm1hdGNoLm5lZWRzQ29udGV4dC50ZXN0KGYpLG5hbWVzcGFjZTptLmpvaW4oIi4iKX0sZyksKHI9bFtGXSl8fCgocj1sW0ZdPVtdKS5kZWxlZ2F0ZUNvdW50PTAsdy5zZXR1cCYmITEhPT13LnNldHVwLmNhbGwoYSxlLG0saCl8fGEuYWRkRXZlbnRMaXN0ZW5lciYmYS5hZGRFdmVudExpc3RlbmVyKEYsaCkpLHcuYWRkJiYody5hZGQuY2FsbChhLHQpLHQuaGFuZGxlci5ndWlkfHwodC5oYW5kbGVyLmd1aWQ9Yy5ndWlkKSksZj9yLnNwbGljZShyLmRlbGVnYXRlQ291bnQrKywwLHQpOnIucHVzaCh0KSxkLmV2ZW50Lmdsb2JhbFtGXT0hMCl9fSxyZW1vdmU6ZnVuY3Rpb24oYSxiLGMsZSxmKXt2YXIgZyxoLG0sbCwKdCx3LHIseixEPUcuaGFzRGF0YShhKSYmRy5nZXQoYSk7aWYoRCYmKGw9RC5ldmVudHMpKXtmb3IodD0oYj0oYnx8IiIpLm1hdGNoKExhKXx8WyIiXSkubGVuZ3RoO3QtLTspaWYodz16PShtPUFjLmV4ZWMoYlt0XSl8fFtdKVsxXSxyPShtWzJdfHwiIikuc3BsaXQoIi4iKS5zb3J0KCksdyl7dmFyIEY9ZC5ldmVudC5zcGVjaWFsW3ddfHx7fSxPPWxbdz0oZT9GLmRlbGVnYXRlVHlwZTpGLmJpbmRUeXBlKXx8d118fFtdO209bVsyXSYmbmV3IFJlZ0V4cCgiKF58XFwuKSIrci5qb2luKCJcXC4oPzouKlxcLnwpIikrIihcXC58JCkiKTtmb3IoaD1nPU8ubGVuZ3RoO2ctLTspe3ZhciBhYT1PW2ddOyFmJiZ6IT09YWEub3JpZ1R5cGV8fGMmJmMuZ3VpZCE9PWFhLmd1aWR8fG0mJiFtLnRlc3QoYWEubmFtZXNwYWNlKXx8ZSYmZSE9PWFhLnNlbGVjdG9yJiYoIioqIiE9PWV8fCFhYS5zZWxlY3Rvcil8fChPLnNwbGljZShnLDEpLGFhLnNlbGVjdG9yJiZPLmRlbGVnYXRlQ291bnQtLSxGLnJlbW92ZSYmCkYucmVtb3ZlLmNhbGwoYSxhYSkpfWgmJiFPLmxlbmd0aCYmKEYudGVhcmRvd24mJiExIT09Ri50ZWFyZG93bi5jYWxsKGEscixELmhhbmRsZSl8fGQucmVtb3ZlRXZlbnQoYSx3LEQuaGFuZGxlKSxkZWxldGUgbFt3XSl9ZWxzZSBmb3IodyBpbiBsKWQuZXZlbnQucmVtb3ZlKGEsdytiW3RdLGMsZSwhMCk7ZC5pc0VtcHR5T2JqZWN0KGwpJiZHLnJlbW92ZShhLCJoYW5kbGUgZXZlbnRzIil9fSxkaXNwYXRjaDpmdW5jdGlvbihhKXt2YXIgYixjLGUsZixnPUFycmF5KGFyZ3VtZW50cy5sZW5ndGgpLGg9ZC5ldmVudC5maXgoYSksbT0oRy5nZXQodGhpcywiZXZlbnRzIil8fE9iamVjdC5jcmVhdGUobnVsbCkpW2gudHlwZV18fFtdLGw9ZC5ldmVudC5zcGVjaWFsW2gudHlwZV18fHt9O2dbMF09aDtmb3IoYj0xO2I8YXJndW1lbnRzLmxlbmd0aDtiKyspZ1tiXT1hcmd1bWVudHNbYl07aWYoaC5kZWxlZ2F0ZVRhcmdldD10aGlzLCFsLnByZURpc3BhdGNofHwhMSE9PWwucHJlRGlzcGF0Y2guY2FsbCh0aGlzLApoKSl7dmFyIHQ9ZC5ldmVudC5oYW5kbGVycy5jYWxsKHRoaXMsaCxtKTtmb3IoYj0wOyhlPXRbYisrXSkmJiFoLmlzUHJvcGFnYXRpb25TdG9wcGVkKCk7KWZvcihoLmN1cnJlbnRUYXJnZXQ9ZS5lbGVtLG09MDsoZj1lLmhhbmRsZXJzW20rK10pJiYhaC5pc0ltbWVkaWF0ZVByb3BhZ2F0aW9uU3RvcHBlZCgpOyloLnJuYW1lc3BhY2UmJiExIT09Zi5uYW1lc3BhY2UmJiFoLnJuYW1lc3BhY2UudGVzdChmLm5hbWVzcGFjZSl8fChoLmhhbmRsZU9iaj1mLGguZGF0YT1mLmRhdGEsdm9pZCAwIT09KGM9KChkLmV2ZW50LnNwZWNpYWxbZi5vcmlnVHlwZV18fHt9KS5oYW5kbGV8fGYuaGFuZGxlcikuYXBwbHkoZS5lbGVtLGcpKSYmITE9PT0oaC5yZXN1bHQ9YykmJihoLnByZXZlbnREZWZhdWx0KCksaC5zdG9wUHJvcGFnYXRpb24oKSkpO3JldHVybiBsLnBvc3REaXNwYXRjaCYmbC5wb3N0RGlzcGF0Y2guY2FsbCh0aGlzLGgpLGgucmVzdWx0fX0saGFuZGxlcnM6ZnVuY3Rpb24oYSxiKXt2YXIgYywKZSxmLGc9W10saD1iLmRlbGVnYXRlQ291bnQsbT1hLnRhcmdldDtpZihoJiZtLm5vZGVUeXBlJiYhKCJjbGljayI9PT1hLnR5cGUmJjE8PWEuYnV0dG9uKSlmb3IoO20hPT10aGlzO209bS5wYXJlbnROb2RlfHx0aGlzKWlmKDE9PT1tLm5vZGVUeXBlJiYoImNsaWNrIiE9PWEudHlwZXx8ITAhPT1tLmRpc2FibGVkKSl7dmFyIGw9W10sdD17fTtmb3IoYz0wO2M8aDtjKyspdm9pZCAwPT09dFtmPShlPWJbY10pLnNlbGVjdG9yKyIgIl0mJih0W2ZdPWUubmVlZHNDb250ZXh0Py0xPGQoZix0aGlzKS5pbmRleChtKTpkLmZpbmQoZix0aGlzLG51bGwsW21dKS5sZW5ndGgpLHRbZl0mJmwucHVzaChlKTtsLmxlbmd0aCYmZy5wdXNoKHtlbGVtOm0saGFuZGxlcnM6bH0pfXJldHVybiBtPXRoaXMsaDxiLmxlbmd0aCYmZy5wdXNoKHtlbGVtOm0saGFuZGxlcnM6Yi5zbGljZShoKX0pLGd9LGFkZFByb3A6ZnVuY3Rpb24oYSxiKXtPYmplY3QuZGVmaW5lUHJvcGVydHkoZC5FdmVudC5wcm90b3R5cGUsCmEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLGdldDpNKGIpP2Z1bmN0aW9uKCl7aWYodGhpcy5vcmlnaW5hbEV2ZW50KXJldHVybiBiKHRoaXMub3JpZ2luYWxFdmVudCl9OmZ1bmN0aW9uKCl7aWYodGhpcy5vcmlnaW5hbEV2ZW50KXJldHVybiB0aGlzLm9yaWdpbmFsRXZlbnRbYV19LHNldDpmdW5jdGlvbihjKXtPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcyxhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpjfSl9fSl9LGZpeDpmdW5jdGlvbihhKXtyZXR1cm4gYVtkLmV4cGFuZG9dP2E6bmV3IGQuRXZlbnQoYSl9LHNwZWNpYWw6e2xvYWQ6e25vQnViYmxlOiEwfSxjbGljazp7c2V0dXA6ZnVuY3Rpb24oYSl7YT10aGlzfHxhO3JldHVybiBIYi50ZXN0KGEudHlwZSkmJmEuY2xpY2smJlgoYSwiaW5wdXQiKSYmcGIoYSwiY2xpY2siLCEwKSwhMX0sdHJpZ2dlcjpmdW5jdGlvbihhKXthPXRoaXN8fGE7cmV0dXJuIEhiLnRlc3QoYS50eXBlKSYmCmEuY2xpY2smJlgoYSwiaW5wdXQiKSYmcGIoYSwiY2xpY2siKSwhMH0sX2RlZmF1bHQ6ZnVuY3Rpb24oYSl7YT1hLnRhcmdldDtyZXR1cm4gSGIudGVzdChhLnR5cGUpJiZhLmNsaWNrJiZYKGEsImlucHV0IikmJkcuZ2V0KGEsImNsaWNrIil8fFgoYSwiYSIpfX0sYmVmb3JldW5sb2FkOntwb3N0RGlzcGF0Y2g6ZnVuY3Rpb24oYSl7dm9pZCAwIT09YS5yZXN1bHQmJmEub3JpZ2luYWxFdmVudCYmKGEub3JpZ2luYWxFdmVudC5yZXR1cm5WYWx1ZT1hLnJlc3VsdCl9fX19O2QucmVtb3ZlRXZlbnQ9ZnVuY3Rpb24oYSxiLGMpe2EucmVtb3ZlRXZlbnRMaXN0ZW5lciYmYS5yZW1vdmVFdmVudExpc3RlbmVyKGIsYyl9O2QuRXZlbnQ9ZnVuY3Rpb24oYSxiKXtpZighKHRoaXMgaW5zdGFuY2VvZiBkLkV2ZW50KSlyZXR1cm4gbmV3IGQuRXZlbnQoYSxiKTthJiZhLnR5cGU\/KHRoaXMub3JpZ2luYWxFdmVudD1hLHRoaXMudHlwZT1hLnR5cGUsdGhpcy5pc0RlZmF1bHRQcmV2ZW50ZWQ9YS5kZWZhdWx0UHJldmVudGVkfHwKdm9pZCAwPT09YS5kZWZhdWx0UHJldmVudGVkJiYhMT09PWEucmV0dXJuVmFsdWU\/YWI6YmIsdGhpcy50YXJnZXQ9YS50YXJnZXQmJjM9PT1hLnRhcmdldC5ub2RlVHlwZT9hLnRhcmdldC5wYXJlbnROb2RlOmEudGFyZ2V0LHRoaXMuY3VycmVudFRhcmdldD1hLmN1cnJlbnRUYXJnZXQsdGhpcy5yZWxhdGVkVGFyZ2V0PWEucmVsYXRlZFRhcmdldCk6dGhpcy50eXBlPWE7YiYmZC5leHRlbmQodGhpcyxiKTt0aGlzLnRpbWVTdGFtcD1hJiZhLnRpbWVTdGFtcHx8RGF0ZS5ub3coKTt0aGlzW2QuZXhwYW5kb109ITB9O2QuRXZlbnQucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpkLkV2ZW50LGlzRGVmYXVsdFByZXZlbnRlZDpiYixpc1Byb3BhZ2F0aW9uU3RvcHBlZDpiYixpc0ltbWVkaWF0ZVByb3BhZ2F0aW9uU3RvcHBlZDpiYixpc1NpbXVsYXRlZDohMSxwcmV2ZW50RGVmYXVsdDpmdW5jdGlvbigpe3ZhciBhPXRoaXMub3JpZ2luYWxFdmVudDt0aGlzLmlzRGVmYXVsdFByZXZlbnRlZD1hYjsKYSYmIXRoaXMuaXNTaW11bGF0ZWQmJmEucHJldmVudERlZmF1bHQoKX0sc3RvcFByb3BhZ2F0aW9uOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5vcmlnaW5hbEV2ZW50O3RoaXMuaXNQcm9wYWdhdGlvblN0b3BwZWQ9YWI7YSYmIXRoaXMuaXNTaW11bGF0ZWQmJmEuc3RvcFByb3BhZ2F0aW9uKCl9LHN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbjpmdW5jdGlvbigpe3ZhciBhPXRoaXMub3JpZ2luYWxFdmVudDt0aGlzLmlzSW1tZWRpYXRlUHJvcGFnYXRpb25TdG9wcGVkPWFiO2EmJiF0aGlzLmlzU2ltdWxhdGVkJiZhLnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO3RoaXMuc3RvcFByb3BhZ2F0aW9uKCl9fTtkLmVhY2goe2FsdEtleTohMCxidWJibGVzOiEwLGNhbmNlbGFibGU6ITAsY2hhbmdlZFRvdWNoZXM6ITAsY3RybEtleTohMCxkZXRhaWw6ITAsZXZlbnRQaGFzZTohMCxtZXRhS2V5OiEwLHBhZ2VYOiEwLHBhZ2VZOiEwLHNoaWZ0S2V5OiEwLHZpZXc6ITAsImNoYXIiOiEwLGNvZGU6ITAsCmNoYXJDb2RlOiEwLGtleTohMCxrZXlDb2RlOiEwLGJ1dHRvbjohMCxidXR0b25zOiEwLGNsaWVudFg6ITAsY2xpZW50WTohMCxvZmZzZXRYOiEwLG9mZnNldFk6ITAscG9pbnRlcklkOiEwLHBvaW50ZXJUeXBlOiEwLHNjcmVlblg6ITAsc2NyZWVuWTohMCx0YXJnZXRUb3VjaGVzOiEwLHRvRWxlbWVudDohMCx0b3VjaGVzOiEwLHdoaWNoOiEwfSxkLmV2ZW50LmFkZFByb3ApO2QuZWFjaCh7Zm9jdXM6ImZvY3VzaW4iLGJsdXI6ImZvY3Vzb3V0In0sZnVuY3Rpb24oYSxiKXtmdW5jdGlvbiBjKGUpe2lmKEwuZG9jdW1lbnRNb2RlKXt2YXIgZj1HLmdldCh0aGlzLCJoYW5kbGUiKSxnPWQuZXZlbnQuZml4KGUpO2cudHlwZT0iZm9jdXNpbiI9PT1lLnR5cGU\/ImZvY3VzIjoiYmx1ciI7Zy5pc1NpbXVsYXRlZD0hMDtmKGUpO2cudGFyZ2V0PT09Zy5jdXJyZW50VGFyZ2V0JiZmKGcpfWVsc2UgZC5ldmVudC5zaW11bGF0ZShiLGUudGFyZ2V0LGQuZXZlbnQuZml4KGUpKX1kLmV2ZW50LnNwZWNpYWxbYV09CntzZXR1cDpmdW5jdGlvbigpe3ZhciBlO2lmKHBiKHRoaXMsYSwhMCksIUwuZG9jdW1lbnRNb2RlKXJldHVybiExOyhlPUcuZ2V0KHRoaXMsYikpfHx0aGlzLmFkZEV2ZW50TGlzdGVuZXIoYixjKTtHLnNldCh0aGlzLGIsKGV8fDApKzEpfSx0cmlnZ2VyOmZ1bmN0aW9uKCl7cmV0dXJuIHBiKHRoaXMsYSksITB9LHRlYXJkb3duOmZ1bmN0aW9uKCl7dmFyIGU7aWYoIUwuZG9jdW1lbnRNb2RlKXJldHVybiExOyhlPUcuZ2V0KHRoaXMsYiktMSk\/Ry5zZXQodGhpcyxiLGUpOih0aGlzLnJlbW92ZUV2ZW50TGlzdGVuZXIoYixjKSxHLnJlbW92ZSh0aGlzLGIpKX0sX2RlZmF1bHQ6ZnVuY3Rpb24oZSl7cmV0dXJuIEcuZ2V0KGUudGFyZ2V0LGEpfSxkZWxlZ2F0ZVR5cGU6Yn07ZC5ldmVudC5zcGVjaWFsW2JdPXtzZXR1cDpmdW5jdGlvbigpe3ZhciBlPXRoaXMub3duZXJEb2N1bWVudHx8dGhpcy5kb2N1bWVudHx8dGhpcyxmPUwuZG9jdW1lbnRNb2RlP3RoaXM6ZSxnPUcuZ2V0KGYsYik7Z3x8CihMLmRvY3VtZW50TW9kZT90aGlzLmFkZEV2ZW50TGlzdGVuZXIoYixjKTplLmFkZEV2ZW50TGlzdGVuZXIoYSxjLCEwKSk7Ry5zZXQoZixiLChnfHwwKSsxKX0sdGVhcmRvd246ZnVuY3Rpb24oKXt2YXIgZT10aGlzLm93bmVyRG9jdW1lbnR8fHRoaXMuZG9jdW1lbnR8fHRoaXMsZj1MLmRvY3VtZW50TW9kZT90aGlzOmUsZz1HLmdldChmLGIpLTE7Zz9HLnNldChmLGIsZyk6KEwuZG9jdW1lbnRNb2RlP3RoaXMucmVtb3ZlRXZlbnRMaXN0ZW5lcihiLGMpOmUucmVtb3ZlRXZlbnRMaXN0ZW5lcihhLGMsITApLEcucmVtb3ZlKGYsYikpfX19KTtkLmVhY2goe21vdXNlZW50ZXI6Im1vdXNlb3ZlciIsbW91c2VsZWF2ZToibW91c2VvdXQiLHBvaW50ZXJlbnRlcjoicG9pbnRlcm92ZXIiLHBvaW50ZXJsZWF2ZToicG9pbnRlcm91dCJ9LGZ1bmN0aW9uKGEsYil7ZC5ldmVudC5zcGVjaWFsW2FdPXtkZWxlZ2F0ZVR5cGU6YixiaW5kVHlwZTpiLGhhbmRsZTpmdW5jdGlvbihjKXt2YXIgZSxmPQpjLnJlbGF0ZWRUYXJnZXQsZz1jLmhhbmRsZU9iajtyZXR1cm4gZiYmKGY9PT10aGlzfHxkLmNvbnRhaW5zKHRoaXMsZikpfHwoYy50eXBlPWcub3JpZ1R5cGUsZT1nLmhhbmRsZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpLGMudHlwZT1iKSxlfX19KTtkLmZuLmV4dGVuZCh7b246ZnVuY3Rpb24oYSxiLGMsZSl7cmV0dXJuIGZiKHRoaXMsYSxiLGMsZSl9LG9uZTpmdW5jdGlvbihhLGIsYyxlKXtyZXR1cm4gZmIodGhpcyxhLGIsYyxlLDEpfSxvZmY6ZnVuY3Rpb24oYSxiLGMpe3ZhciBlLGY7aWYoYSYmYS5wcmV2ZW50RGVmYXVsdCYmYS5oYW5kbGVPYmopcmV0dXJuIGU9YS5oYW5kbGVPYmosZChhLmRlbGVnYXRlVGFyZ2V0KS5vZmYoZS5uYW1lc3BhY2U\/ZS5vcmlnVHlwZSsiLiIrZS5uYW1lc3BhY2U6ZS5vcmlnVHlwZSxlLnNlbGVjdG9yLGUuaGFuZGxlciksdGhpcztpZigib2JqZWN0Ij09dHlwZW9mIGEpe2ZvcihmIGluIGEpdGhpcy5vZmYoZixiLGFbZl0pO3JldHVybiB0aGlzfXJldHVybiExIT09CmImJiJmdW5jdGlvbiIhPXR5cGVvZiBifHwoYz1iLGI9dm9pZCAwKSwhMT09PWMmJihjPWJiKSx0aGlzLmVhY2goZnVuY3Rpb24oKXtkLmV2ZW50LnJlbW92ZSh0aGlzLGEsYyxiKX0pfX0pO3ZhciBuZD0vPHNjcmlwdHw8c3R5bGV8PGxpbmsvaSxSYz0vY2hlY2tlZFxzKig\/OltePV18PVxzKi5jaGVja2VkLikvaSxTYz0vXlxzKjwhXFtDREFUQVxbfFxdXF0+XHMqJC9nO2QuZXh0ZW5kKHtodG1sUHJlZmlsdGVyOmZ1bmN0aW9uKGEpe3JldHVybiBhfSxjbG9uZTpmdW5jdGlvbihhLGIsYyl7dmFyIGUsZixnLGg9YS5jbG9uZU5vZGUoITApLG09b2IoYSk7aWYoIShOLm5vQ2xvbmVDaGVja2VkfHwxIT09YS5ub2RlVHlwZSYmMTEhPT1hLm5vZGVUeXBlfHxkLmlzWE1MRG9jKGEpKSl7dmFyIGw9c2EoaCksdD0wO2ZvcihlPShmPXNhKGEpKS5sZW5ndGg7dDxlO3QrKyl7dmFyIHc9Zlt0XSxyPWxbdF07dm9pZCAwOyJpbnB1dCI9PT0oZz1yLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkpJiZIYi50ZXN0KHcudHlwZSk\/CnIuY2hlY2tlZD13LmNoZWNrZWQ6ImlucHV0IiE9PWcmJiJ0ZXh0YXJlYSIhPT1nfHwoci5kZWZhdWx0VmFsdWU9dy5kZWZhdWx0VmFsdWUpfX1pZihiKWlmKGMpZm9yKGY9Znx8c2EoYSksbD1sfHxzYShoKSx0PTAsZT1mLmxlbmd0aDt0PGU7dCsrKWdiKGZbdF0sbFt0XSk7ZWxzZSBnYihhLGgpO3JldHVybiAwPChsPXNhKGgsInNjcmlwdCIpKS5sZW5ndGgmJm5iKGwsIW0mJnNhKGEsInNjcmlwdCIpKSxofSxjbGVhbkRhdGE6ZnVuY3Rpb24oYSl7Zm9yKHZhciBiLGMsZSxmPWQuZXZlbnQuc3BlY2lhbCxnPTA7dm9pZCAwIT09KGM9YVtnXSk7ZysrKWlmKEdiKGMpKXtpZihiPWNbRy5leHBhbmRvXSl7aWYoYi5ldmVudHMpZm9yKGUgaW4gYi5ldmVudHMpZltlXT9kLmV2ZW50LnJlbW92ZShjLGUpOmQucmVtb3ZlRXZlbnQoYyxlLGIuaGFuZGxlKTtjW0cuZXhwYW5kb109dm9pZCAwfWNbeGEuZXhwYW5kb10mJihjW3hhLmV4cGFuZG9dPXZvaWQgMCl9fX0pO2QuZm4uZXh0ZW5kKHtkZXRhY2g6ZnVuY3Rpb24oYSl7cmV0dXJuIFRiKHRoaXMsCmEsITApfSxyZW1vdmU6ZnVuY3Rpb24oYSl7cmV0dXJuIFRiKHRoaXMsYSl9LHRleHQ6ZnVuY3Rpb24oYSl7cmV0dXJuIFhhKHRoaXMsZnVuY3Rpb24oYil7cmV0dXJuIHZvaWQgMD09PWI\/ZC50ZXh0KHRoaXMpOnRoaXMuZW1wdHkoKS5lYWNoKGZ1bmN0aW9uKCl7MSE9PXRoaXMubm9kZVR5cGUmJjExIT09dGhpcy5ub2RlVHlwZSYmOSE9PXRoaXMubm9kZVR5cGV8fCh0aGlzLnRleHRDb250ZW50PWIpfSl9LG51bGwsYSxhcmd1bWVudHMubGVuZ3RoKX0sYXBwZW5kOmZ1bmN0aW9uKCl7cmV0dXJuIGNiKHRoaXMsYXJndW1lbnRzLGZ1bmN0aW9uKGEpezEhPT10aGlzLm5vZGVUeXBlJiYxMSE9PXRoaXMubm9kZVR5cGUmJjkhPT10aGlzLm5vZGVUeXBlfHxTYih0aGlzLGEpLmFwcGVuZENoaWxkKGEpfSl9LHByZXBlbmQ6ZnVuY3Rpb24oKXtyZXR1cm4gY2IodGhpcyxhcmd1bWVudHMsZnVuY3Rpb24oYSl7aWYoMT09PXRoaXMubm9kZVR5cGV8fDExPT09dGhpcy5ub2RlVHlwZXx8OT09PQp0aGlzLm5vZGVUeXBlKXt2YXIgYj1TYih0aGlzLGEpO2IuaW5zZXJ0QmVmb3JlKGEsYi5maXJzdENoaWxkKX19KX0sYmVmb3JlOmZ1bmN0aW9uKCl7cmV0dXJuIGNiKHRoaXMsYXJndW1lbnRzLGZ1bmN0aW9uKGEpe3RoaXMucGFyZW50Tm9kZSYmdGhpcy5wYXJlbnROb2RlLmluc2VydEJlZm9yZShhLHRoaXMpfSl9LGFmdGVyOmZ1bmN0aW9uKCl7cmV0dXJuIGNiKHRoaXMsYXJndW1lbnRzLGZ1bmN0aW9uKGEpe3RoaXMucGFyZW50Tm9kZSYmdGhpcy5wYXJlbnROb2RlLmluc2VydEJlZm9yZShhLHRoaXMubmV4dFNpYmxpbmcpfSl9LGVtcHR5OmZ1bmN0aW9uKCl7Zm9yKHZhciBhLGI9MDtudWxsIT0oYT10aGlzW2JdKTtiKyspMT09PWEubm9kZVR5cGUmJihkLmNsZWFuRGF0YShzYShhLCExKSksYS50ZXh0Q29udGVudD0iIik7cmV0dXJuIHRoaXN9LGNsb25lOmZ1bmN0aW9uKGEsYil7cmV0dXJuIGE9bnVsbCE9YSYmYSxiPW51bGw9PWI\/YTpiLHRoaXMubWFwKGZ1bmN0aW9uKCl7cmV0dXJuIGQuY2xvbmUodGhpcywKYSxiKX0pfSxodG1sOmZ1bmN0aW9uKGEpe3JldHVybiBYYSh0aGlzLGZ1bmN0aW9uKGIpe3ZhciBjPXRoaXNbMF18fHt9LGU9MCxmPXRoaXMubGVuZ3RoO2lmKHZvaWQgMD09PWImJjE9PT1jLm5vZGVUeXBlKXJldHVybiBjLmlubmVySFRNTDtpZigic3RyaW5nIj09dHlwZW9mIGImJiFuZC50ZXN0KGIpJiYhQ2FbKG1jLmV4ZWMoYil8fFsiIiwiIl0pWzFdLnRvTG93ZXJDYXNlKCldKXtiPWQuaHRtbFByZWZpbHRlcihiKTt0cnl7Zm9yKDtlPGY7ZSsrKTE9PT0oYz10aGlzW2VdfHx7fSkubm9kZVR5cGUmJihkLmNsZWFuRGF0YShzYShjLCExKSksYy5pbm5lckhUTUw9Yik7Yz0wfWNhdGNoKGcpe319YyYmdGhpcy5lbXB0eSgpLmFwcGVuZChiKX0sbnVsbCxhLGFyZ3VtZW50cy5sZW5ndGgpfSxyZXBsYWNlV2l0aDpmdW5jdGlvbigpe3ZhciBhPVtdO3JldHVybiBjYih0aGlzLGFyZ3VtZW50cyxmdW5jdGlvbihiKXt2YXIgYz10aGlzLnBhcmVudE5vZGU7MD5kLmluQXJyYXkodGhpcyxhKSYmCihkLmNsZWFuRGF0YShzYSh0aGlzKSksYyYmYy5yZXBsYWNlQ2hpbGQoYix0aGlzKSl9LGEpfX0pO2QuZWFjaCh7YXBwZW5kVG86ImFwcGVuZCIscHJlcGVuZFRvOiJwcmVwZW5kIixpbnNlcnRCZWZvcmU6ImJlZm9yZSIsaW5zZXJ0QWZ0ZXI6ImFmdGVyIixyZXBsYWNlQWxsOiJyZXBsYWNlV2l0aCJ9LGZ1bmN0aW9uKGEsYil7ZC5mblthXT1mdW5jdGlvbihjKXtmb3IodmFyIGU9W10sZj1kKGMpLGc9Zi5sZW5ndGgtMSxoPTA7aDw9ZztoKyspYz1oPT09Zz90aGlzOnRoaXMuY2xvbmUoITApLGQoZltoXSlbYl0oYyksdWIuYXBwbHkoZSxjLmdldCgpKTtyZXR1cm4gdGhpcy5wdXNoU3RhY2soZSl9fSk7dmFyIGJjPW5ldyBSZWdFeHAoIl4oIit6YysiKSg\/IXB4KVthLXolXSskIiwiaSIpLGFjPS9eLS0vLFViPWZ1bmN0aW9uKGEpe3ZhciBiPWEub3duZXJEb2N1bWVudC5kZWZhdWx0VmlldztyZXR1cm4gYiYmYi5vcGVuZXJ8fChiPW4pLGIuZ2V0Q29tcHV0ZWRTdHlsZShhKX0sQmM9ZnVuY3Rpb24oYSwKYixjKXt2YXIgZSxmPXt9O2ZvcihlIGluIGIpZltlXT1hLnN0eWxlW2VdLGEuc3R5bGVbZV09YltlXTtmb3IoZSBpbiBjPWMuY2FsbChhKSxiKWEuc3R5bGVbZV09ZltlXTtyZXR1cm4gY30sVGM9bmV3IFJlZ0V4cChQYS5qb2luKCJ8IiksImkiKTshZnVuY3Rpb24oKXtmdW5jdGlvbiBhKCl7aWYobCl7bS5zdHlsZS5jc3NUZXh0PSJwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0Oi0xMTExMXB4O3dpZHRoOjYwcHg7bWFyZ2luLXRvcDoxcHg7cGFkZGluZzowO2JvcmRlcjowIjtsLnN0eWxlLmNzc1RleHQ9InBvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94O292ZXJmbG93OnNjcm9sbDttYXJnaW46YXV0bztib3JkZXI6MXB4O3BhZGRpbmc6MXB4O3dpZHRoOjYwJTt0b3A6MSUiO2piLmFwcGVuZENoaWxkKG0pLmFwcGVuZENoaWxkKGwpO3ZhciB0PW4uZ2V0Q29tcHV0ZWRTdHlsZShsKTtiPSIxJSIhPT10LnRvcDtoPTEyPT09TWF0aC5yb3VuZChwYXJzZUZsb2F0KHQubWFyZ2luTGVmdCkpOwpsLnN0eWxlLnJpZ2h0PSI2MCUiO2Y9MzY9PT1NYXRoLnJvdW5kKHBhcnNlRmxvYXQodC5yaWdodCkpO2M9MzY9PT1NYXRoLnJvdW5kKHBhcnNlRmxvYXQodC53aWR0aCkpO2wuc3R5bGUucG9zaXRpb249ImFic29sdXRlIjtlPTEyPT09TWF0aC5yb3VuZChwYXJzZUZsb2F0KGwub2Zmc2V0V2lkdGgvMykpO2piLnJlbW92ZUNoaWxkKG0pO2w9bnVsbH19dmFyIGIsYyxlLGYsZyxoLG09TC5jcmVhdGVFbGVtZW50KCJkaXYiKSxsPUwuY3JlYXRlRWxlbWVudCgiZGl2Iik7bC5zdHlsZSYmKGwuc3R5bGUuYmFja2dyb3VuZENsaXA9ImNvbnRlbnQtYm94IixsLmNsb25lTm9kZSghMCkuc3R5bGUuYmFja2dyb3VuZENsaXA9IiIsTi5jbGVhckNsb25lU3R5bGU9ImNvbnRlbnQtYm94Ij09PWwuc3R5bGUuYmFja2dyb3VuZENsaXAsZC5leHRlbmQoTix7Ym94U2l6aW5nUmVsaWFibGU6ZnVuY3Rpb24oKXtyZXR1cm4gYSgpLGN9LHBpeGVsQm94U3R5bGVzOmZ1bmN0aW9uKCl7cmV0dXJuIGEoKSwKZn0scGl4ZWxQb3NpdGlvbjpmdW5jdGlvbigpe3JldHVybiBhKCksYn0scmVsaWFibGVNYXJnaW5MZWZ0OmZ1bmN0aW9uKCl7cmV0dXJuIGEoKSxofSxzY3JvbGxib3hTaXplOmZ1bmN0aW9uKCl7cmV0dXJuIGEoKSxlfSxyZWxpYWJsZVRyRGltZW5zaW9uczpmdW5jdGlvbigpe3ZhciB0LHcscix6O3JldHVybiBudWxsPT1nJiYodD1MLmNyZWF0ZUVsZW1lbnQoInRhYmxlIiksdz1MLmNyZWF0ZUVsZW1lbnQoInRyIikscj1MLmNyZWF0ZUVsZW1lbnQoImRpdiIpLHQuc3R5bGUuY3NzVGV4dD0icG9zaXRpb246YWJzb2x1dGU7bGVmdDotMTExMTFweDtib3JkZXItY29sbGFwc2U6c2VwYXJhdGUiLHcuc3R5bGUuY3NzVGV4dD0iYm9yZGVyOjFweCBzb2xpZCIsdy5zdHlsZS5oZWlnaHQ9IjFweCIsci5zdHlsZS5oZWlnaHQ9IjlweCIsci5zdHlsZS5kaXNwbGF5PSJibG9jayIsamIuYXBwZW5kQ2hpbGQodCkuYXBwZW5kQ2hpbGQodykuYXBwZW5kQ2hpbGQociksej1uLmdldENvbXB1dGVkU3R5bGUodyksCmc9cGFyc2VJbnQoei5oZWlnaHQsMTApK3BhcnNlSW50KHouYm9yZGVyVG9wV2lkdGgsMTApK3BhcnNlSW50KHouYm9yZGVyQm90dG9tV2lkdGgsMTApPT09dy5vZmZzZXRIZWlnaHQsamIucmVtb3ZlQ2hpbGQodCkpLGd9fSkpfSgpO3ZhciByYz1bIldlYmtpdCIsIk1veiIsIm1zIl0scWM9TC5jcmVhdGVFbGVtZW50KCJkaXYiKS5zdHlsZSxwYz17fSxvZD0vXihub25lfHRhYmxlKD8hLWNbZWFdKS4rKS8scGQ9e3Bvc2l0aW9uOiJhYnNvbHV0ZSIsdmlzaWJpbGl0eToiaGlkZGVuIixkaXNwbGF5OiJibG9jayJ9LENjPXtsZXR0ZXJTcGFjaW5nOiIwIixmb250V2VpZ2h0OiI0MDAifTtkLmV4dGVuZCh7Y3NzSG9va3M6e29wYWNpdHk6e2dldDpmdW5jdGlvbihhLGIpe2lmKGIpcmV0dXJuIGE9S2EoYSwib3BhY2l0eSIpLCIiPT09YT8iMSI6YX19fSxjc3NOdW1iZXI6e2FuaW1hdGlvbkl0ZXJhdGlvbkNvdW50OiEwLGFzcGVjdFJhdGlvOiEwLGJvcmRlckltYWdlU2xpY2U6ITAsY29sdW1uQ291bnQ6ITAsCmZsZXhHcm93OiEwLGZsZXhTaHJpbms6ITAsZm9udFdlaWdodDohMCxncmlkQXJlYTohMCxncmlkQ29sdW1uOiEwLGdyaWRDb2x1bW5FbmQ6ITAsZ3JpZENvbHVtblN0YXJ0OiEwLGdyaWRSb3c6ITAsZ3JpZFJvd0VuZDohMCxncmlkUm93U3RhcnQ6ITAsbGluZUhlaWdodDohMCxvcGFjaXR5OiEwLG9yZGVyOiEwLG9ycGhhbnM6ITAsc2NhbGU6ITAsd2lkb3dzOiEwLHpJbmRleDohMCx6b29tOiEwLGZpbGxPcGFjaXR5OiEwLGZsb29kT3BhY2l0eTohMCxzdG9wT3BhY2l0eTohMCxzdHJva2VNaXRlcmxpbWl0OiEwLHN0cm9rZU9wYWNpdHk6ITB9LGNzc1Byb3BzOnt9LHN0eWxlOmZ1bmN0aW9uKGEsYixjLGUpe2lmKGEmJjMhPT1hLm5vZGVUeXBlJiY4IT09YS5ub2RlVHlwZSYmYS5zdHlsZSl7dmFyIGYsZyxoLG09QmEoYiksbD1hYy50ZXN0KGIpLHQ9YS5zdHlsZTtpZihsfHwoYj1BYihtKSksaD1kLmNzc0hvb2tzW2JdfHxkLmNzc0hvb2tzW21dLHZvaWQgMD09PWMpcmV0dXJuIGgmJgoiZ2V0ImluIGgmJnZvaWQgMCE9PShmPWguZ2V0KGEsITEsZSkpP2Y6dFtiXTsic3RyaW5nIj09PShnPXR5cGVvZiBjKSYmKGY9eWIuZXhlYyhjKSkmJmZbMV0mJihjPVBiKGEsYixmKSxnPSJudW1iZXIiKTtudWxsIT1jJiZjPT1jJiYoIm51bWJlciIhPT1nfHxsfHwoYys9ZiYmZlszXXx8KGQuY3NzTnVtYmVyW21dPyIiOiJweCIpKSxOLmNsZWFyQ2xvbmVTdHlsZXx8IiIhPT1jfHwwIT09Yi5pbmRleE9mKCJiYWNrZ3JvdW5kIil8fCh0W2JdPSJpbmhlcml0IiksaCYmInNldCJpbiBoJiZ2b2lkIDA9PT0oYz1oLnNldChhLGMsZSkpfHwobD90LnNldFByb3BlcnR5KGIsYyk6dFtiXT1jKSl9fSxjc3M6ZnVuY3Rpb24oYSxiLGMsZSl7dmFyIGYsZyxoLG09QmEoYik7cmV0dXJuIGFjLnRlc3QoYil8fChiPUFiKG0pKSwoaD1kLmNzc0hvb2tzW2JdfHxkLmNzc0hvb2tzW21dKSYmImdldCJpbiBoJiYoZj1oLmdldChhLCEwLGMpKSx2b2lkIDA9PT1mJiYoZj1LYShhLGIsZSkpLCJub3JtYWwiPT09CmYmJmIgaW4gQ2MmJihmPUNjW2JdKSwiIj09PWN8fGM\/KGc9cGFyc2VGbG9hdChmKSwhMD09PWN8fGlzRmluaXRlKGcpP2d8fDA6Zik6Zn19KTtkLmVhY2goWyJoZWlnaHQiLCJ3aWR0aCJdLGZ1bmN0aW9uKGEsYil7ZC5jc3NIb29rc1tiXT17Z2V0OmZ1bmN0aW9uKGMsZSxmKXtpZihlKXJldHVybiFvZC50ZXN0KGQuY3NzKGMsImRpc3BsYXkiKSl8fGMuZ2V0Q2xpZW50UmVjdHMoKS5sZW5ndGgmJmMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGg\/QmIoYyxiLGYpOkJjKGMscGQsZnVuY3Rpb24oKXtyZXR1cm4gQmIoYyxiLGYpfSl9LHNldDpmdW5jdGlvbihjLGUsZil7dmFyIGcsaD1VYihjKSxtPSFOLnNjcm9sbGJveFNpemUoKSYmImFic29sdXRlIj09PWgucG9zaXRpb24sbD0obXx8ZikmJiJib3JkZXItYm94Ij09PWQuY3NzKGMsImJveFNpemluZyIsITEsaCk7Zj1mP3JiKGMsYixmLGwsaCk6MDtyZXR1cm4gbCYmbSYmKGYtPU1hdGguY2VpbChjWyJvZmZzZXQiK2JbMF0udG9VcHBlckNhc2UoKSsKYi5zbGljZSgxKV0tcGFyc2VGbG9hdChoW2JdKS1yYihjLGIsImJvcmRlciIsITEsaCktLjUpKSxmJiYoZz15Yi5leGVjKGUpKSYmInB4IiE9PShnWzNdfHwicHgiKSYmKGMuc3R5bGVbYl09ZSxlPWQuY3NzKGMsYikpLFdiKDAsZSxmKX19fSk7ZC5jc3NIb29rcy5tYXJnaW5MZWZ0PVZiKE4ucmVsaWFibGVNYXJnaW5MZWZ0LGZ1bmN0aW9uKGEsYil7aWYoYilyZXR1cm4ocGFyc2VGbG9hdChLYShhLCJtYXJnaW5MZWZ0IikpfHxhLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmxlZnQtQmMoYSx7bWFyZ2luTGVmdDowfSxmdW5jdGlvbigpe3JldHVybiBhLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmxlZnR9KSkrInB4In0pO2QuZWFjaCh7bWFyZ2luOiIiLHBhZGRpbmc6IiIsYm9yZGVyOiJXaWR0aCJ9LGZ1bmN0aW9uKGEsYil7ZC5jc3NIb29rc1thK2JdPXtleHBhbmQ6ZnVuY3Rpb24oYyl7dmFyIGU9MCxmPXt9O2ZvcihjPSJzdHJpbmciPT10eXBlb2YgYz9jLnNwbGl0KCIgIik6W2NdOzQ+CmU7ZSsrKWZbYStQYVtlXStiXT1jW2VdfHxjW2UtMl18fGNbMF07cmV0dXJuIGZ9fTsibWFyZ2luIiE9PWEmJihkLmNzc0hvb2tzW2ErYl0uc2V0PVdiKX0pO2QuZm4uZXh0ZW5kKHtjc3M6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gWGEodGhpcyxmdW5jdGlvbihjLGUsZil7dmFyIGcsaD17fSxtPTA7aWYoQXJyYXkuaXNBcnJheShlKSl7Zj1VYihjKTtmb3IoZz1lLmxlbmd0aDttPGc7bSsrKWhbZVttXV09ZC5jc3MoYyxlW21dLCExLGYpO3JldHVybiBofXJldHVybiB2b2lkIDAhPT1mP2Quc3R5bGUoYyxlLGYpOmQuY3NzKGMsZSl9LGEsYiwxPGFyZ3VtZW50cy5sZW5ndGgpfX0pOygoZC5Ud2Vlbj16YSkucHJvdG90eXBlPXtjb25zdHJ1Y3Rvcjp6YSxpbml0OmZ1bmN0aW9uKGEsYixjLGUsZixnKXt0aGlzLmVsZW09YTt0aGlzLnByb3A9Yzt0aGlzLmVhc2luZz1mfHxkLmVhc2luZy5fZGVmYXVsdDt0aGlzLm9wdGlvbnM9Yjt0aGlzLnN0YXJ0PXRoaXMubm93PXRoaXMuY3VyKCk7dGhpcy5lbmQ9CmU7dGhpcy51bml0PWd8fChkLmNzc051bWJlcltjXT8iIjoicHgiKX0sY3VyOmZ1bmN0aW9uKCl7dmFyIGE9emEucHJvcEhvb2tzW3RoaXMucHJvcF07cmV0dXJuIGEmJmEuZ2V0P2EuZ2V0KHRoaXMpOnphLnByb3BIb29rcy5fZGVmYXVsdC5nZXQodGhpcyl9LHJ1bjpmdW5jdGlvbihhKXt2YXIgYixjPXphLnByb3BIb29rc1t0aGlzLnByb3BdO3JldHVybiB0aGlzLm9wdGlvbnMuZHVyYXRpb24\/dGhpcy5wb3M9Yj1kLmVhc2luZ1t0aGlzLmVhc2luZ10oYSx0aGlzLm9wdGlvbnMuZHVyYXRpb24qYSwwLDEsdGhpcy5vcHRpb25zLmR1cmF0aW9uKTp0aGlzLnBvcz1iPWEsdGhpcy5ub3c9KHRoaXMuZW5kLXRoaXMuc3RhcnQpKmIrdGhpcy5zdGFydCx0aGlzLm9wdGlvbnMuc3RlcCYmdGhpcy5vcHRpb25zLnN0ZXAuY2FsbCh0aGlzLmVsZW0sdGhpcy5ub3csdGhpcyksYyYmYy5zZXQ\/Yy5zZXQodGhpcyk6emEucHJvcEhvb2tzLl9kZWZhdWx0LnNldCh0aGlzKSx0aGlzfX0pLmluaXQucHJvdG90eXBlPQp6YS5wcm90b3R5cGU7KHphLnByb3BIb29rcz17X2RlZmF1bHQ6e2dldDpmdW5jdGlvbihhKXt2YXIgYjtyZXR1cm4gMSE9PWEuZWxlbS5ub2RlVHlwZXx8bnVsbCE9YS5lbGVtW2EucHJvcF0mJm51bGw9PWEuZWxlbS5zdHlsZVthLnByb3BdP2EuZWxlbVthLnByb3BdOihiPWQuY3NzKGEuZWxlbSxhLnByb3AsIiIpKSYmImF1dG8iIT09Yj9iOjB9LHNldDpmdW5jdGlvbihhKXtkLmZ4LnN0ZXBbYS5wcm9wXT9kLmZ4LnN0ZXBbYS5wcm9wXShhKToxIT09YS5lbGVtLm5vZGVUeXBlfHwhZC5jc3NIb29rc1thLnByb3BdJiZudWxsPT1hLmVsZW0uc3R5bGVbQWIoYS5wcm9wKV0\/YS5lbGVtW2EucHJvcF09YS5ub3c6ZC5zdHlsZShhLmVsZW0sYS5wcm9wLGEubm93K2EudW5pdCl9fX0pLnNjcm9sbFRvcD16YS5wcm9wSG9va3Muc2Nyb2xsTGVmdD17c2V0OmZ1bmN0aW9uKGEpe2EuZWxlbS5ub2RlVHlwZSYmYS5lbGVtLnBhcmVudE5vZGUmJihhLmVsZW1bYS5wcm9wXT1hLm5vdyl9fTtkLmVhc2luZz0Ke2xpbmVhcjpmdW5jdGlvbihhKXtyZXR1cm4gYX0sc3dpbmc6ZnVuY3Rpb24oYSl7cmV0dXJuLjUtTWF0aC5jb3MoYSpNYXRoLlBJKS8yfSxfZGVmYXVsdDoic3dpbmcifTtkLmZ4PXphLnByb3RvdHlwZS5pbml0O2QuZnguc3RlcD17fTt2YXIgc2IsWGIscWQ9L14oPzp0b2dnbGV8c2hvd3xoaWRlKSQvLHJkPS9xdWV1ZUhvb2tzJC87ZC5BbmltYXRpb249ZC5leHRlbmQoeCx7dHdlZW5lcnM6eyIqIjpbZnVuY3Rpb24oYSxiKXt2YXIgYz10aGlzLmNyZWF0ZVR3ZWVuKGEsYik7cmV0dXJuIFBiKGMuZWxlbSxhLHliLmV4ZWMoYiksYyksY31dfSx0d2VlbmVyOmZ1bmN0aW9uKGEsYil7TShhKT8oYj1hLGE9WyIqIl0pOmE9YS5tYXRjaChMYSk7Zm9yKHZhciBjLGU9MCxmPWEubGVuZ3RoO2U8ZjtlKyspYz1hW2VdLHgudHdlZW5lcnNbY109eC50d2VlbmVyc1tjXXx8W10seC50d2VlbmVyc1tjXS51bnNoaWZ0KGIpfSxwcmVmaWx0ZXJzOltmdW5jdGlvbihhLGIsYyl7dmFyIGUsZixnLGgsCm0sbCx0LHc9IndpZHRoImluIGJ8fCJoZWlnaHQiaW4gYixyPXRoaXMsej17fSxEPWEuc3R5bGUsRj1hLm5vZGVUeXBlJiZRYihhKSxPPUcuZ2V0KGEsImZ4c2hvdyIpO2ZvcihlIGluIGMucXVldWV8fChudWxsPT0oaD1kLl9xdWV1ZUhvb2tzKGEsImZ4IikpLnVucXVldWVkJiYoaC51bnF1ZXVlZD0wLG09aC5lbXB0eS5maXJlLGguZW1wdHkuZmlyZT1mdW5jdGlvbigpe2gudW5xdWV1ZWR8fG0oKX0pLGgudW5xdWV1ZWQrKyxyLmFsd2F5cyhmdW5jdGlvbigpe3IuYWx3YXlzKGZ1bmN0aW9uKCl7aC51bnF1ZXVlZC0tO2QucXVldWUoYSwiZngiKS5sZW5ndGh8fGguZW1wdHkuZmlyZSgpfSl9KSksYilpZihmPWJbZV0scWQudGVzdChmKSl7aWYoZGVsZXRlIGJbZV0sZz1nfHwidG9nZ2xlIj09PWYsZj09PShGPyJoaWRlIjoic2hvdyIpKXtpZigic2hvdyIhPT1mfHwhT3x8dm9pZCAwPT09T1tlXSljb250aW51ZTtGPSEwfXpbZV09TyYmT1tlXXx8ZC5zdHlsZShhLGUpfWlmKChiPSFkLmlzRW1wdHlPYmplY3QoYikpfHwKIWQuaXNFbXB0eU9iamVjdCh6KSlmb3IoZSBpbiB3JiYxPT09YS5ub2RlVHlwZSYmKGMub3ZlcmZsb3c9W0Qub3ZlcmZsb3csRC5vdmVyZmxvd1gsRC5vdmVyZmxvd1ldLG51bGw9PShsPU8mJk8uZGlzcGxheSkmJihsPUcuZ2V0KGEsImRpc3BsYXkiKSksIm5vbmUiPT09KHQ9ZC5jc3MoYSwiZGlzcGxheSIpKSYmKGw\/dD1sOigkYShbYV0sITApLGw9YS5zdHlsZS5kaXNwbGF5fHxsLHQ9ZC5jc3MoYSwiZGlzcGxheSIpLCRhKFthXSkpKSwoImlubGluZSI9PT10fHwiaW5saW5lLWJsb2NrIj09PXQmJm51bGwhPWwpJiYibm9uZSI9PT1kLmNzcyhhLCJmbG9hdCIpJiYoYnx8KHIuZG9uZShmdW5jdGlvbigpe0QuZGlzcGxheT1sfSksbnVsbD09bCYmKHQ9RC5kaXNwbGF5LGw9Im5vbmUiPT09dD8iIjp0KSksRC5kaXNwbGF5PSJpbmxpbmUtYmxvY2siKSksYy5vdmVyZmxvdyYmKEQub3ZlcmZsb3c9ImhpZGRlbiIsci5hbHdheXMoZnVuY3Rpb24oKXtELm92ZXJmbG93PWMub3ZlcmZsb3dbMF07CkQub3ZlcmZsb3dYPWMub3ZlcmZsb3dbMV07RC5vdmVyZmxvd1k9Yy5vdmVyZmxvd1syXX0pKSxiPSExLHopYnx8KE8\/ImhpZGRlbiJpbiBPJiYoRj1PLmhpZGRlbik6Tz1HLmFjY2VzcyhhLCJmeHNob3ciLHtkaXNwbGF5Omx9KSxnJiYoTy5oaWRkZW49IUYpLEYmJiRhKFthXSwhMCksci5kb25lKGZ1bmN0aW9uKCl7Zm9yKGUgaW4gRnx8JGEoW2FdKSxHLnJlbW92ZShhLCJmeHNob3ciKSx6KWQuc3R5bGUoYSxlLHpbZV0pfSkpLGI9dShGP09bZV06MCxlLHIpLGUgaW4gT3x8KE9bZV09Yi5zdGFydCxGJiYoYi5lbmQ9Yi5zdGFydCxiLnN0YXJ0PTApKX1dLHByZWZpbHRlcjpmdW5jdGlvbihhLGIpe2I\/eC5wcmVmaWx0ZXJzLnVuc2hpZnQoYSk6eC5wcmVmaWx0ZXJzLnB1c2goYSl9fSk7ZC5zcGVlZD1mdW5jdGlvbihhLGIsYyl7dmFyIGU9YSYmIm9iamVjdCI9PXR5cGVvZiBhP2QuZXh0ZW5kKHt9LGEpOntjb21wbGV0ZTpjfHwhYyYmYnx8TShhKSYmYSxkdXJhdGlvbjphLGVhc2luZzpjJiYKYnx8YiYmIU0oYikmJmJ9O3JldHVybiBkLmZ4Lm9mZj9lLmR1cmF0aW9uPTA6Im51bWJlciIhPXR5cGVvZiBlLmR1cmF0aW9uJiYoZS5kdXJhdGlvbiBpbiBkLmZ4LnNwZWVkcz9lLmR1cmF0aW9uPWQuZnguc3BlZWRzW2UuZHVyYXRpb25dOmUuZHVyYXRpb249ZC5meC5zcGVlZHMuX2RlZmF1bHQpLG51bGwhPWUucXVldWUmJiEwIT09ZS5xdWV1ZXx8KGUucXVldWU9ImZ4IiksZS5vbGQ9ZS5jb21wbGV0ZSxlLmNvbXBsZXRlPWZ1bmN0aW9uKCl7TShlLm9sZCkmJmUub2xkLmNhbGwodGhpcyk7ZS5xdWV1ZSYmZC5kZXF1ZXVlKHRoaXMsZS5xdWV1ZSl9LGV9O2QuZm4uZXh0ZW5kKHtmYWRlVG86ZnVuY3Rpb24oYSxiLGMsZSl7cmV0dXJuIHRoaXMuZmlsdGVyKFFiKS5jc3MoIm9wYWNpdHkiLDApLnNob3coKS5lbmQoKS5hbmltYXRlKHtvcGFjaXR5OmJ9LGEsYyxlKX0sYW5pbWF0ZTpmdW5jdGlvbihhLGIsYyxlKXt2YXIgZj1kLmlzRW1wdHlPYmplY3QoYSksZz1kLnNwZWVkKGIsYyxlKTsKYj1mdW5jdGlvbigpe3ZhciBoPXgodGhpcyxkLmV4dGVuZCh7fSxhKSxnKTsoZnx8Ry5nZXQodGhpcywiZmluaXNoIikpJiZoLnN0b3AoITApfTtyZXR1cm4gYi5maW5pc2g9YixmfHwhMT09PWcucXVldWU\/dGhpcy5lYWNoKGIpOnRoaXMucXVldWUoZy5xdWV1ZSxiKX0sc3RvcDpmdW5jdGlvbihhLGIsYyl7dmFyIGU9ZnVuY3Rpb24oZil7dmFyIGc9Zi5zdG9wO2RlbGV0ZSBmLnN0b3A7ZyhjKX07cmV0dXJuInN0cmluZyIhPXR5cGVvZiBhJiYoYz1iLGI9YSxhPXZvaWQgMCksYiYmdGhpcy5xdWV1ZShhfHwiZngiLFtdKSx0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgZj0hMCxnPW51bGwhPWEmJmErInF1ZXVlSG9va3MiLGg9ZC50aW1lcnMsbT1HLmdldCh0aGlzKTtpZihnKW1bZ10mJm1bZ10uc3RvcCYmZShtW2ddKTtlbHNlIGZvcihnIGluIG0pbVtnXSYmbVtnXS5zdG9wJiZyZC50ZXN0KGcpJiZlKG1bZ10pO2ZvcihnPWgubGVuZ3RoO2ctLTspaFtnXS5lbGVtIT09dGhpc3x8bnVsbCE9CmEmJmhbZ10ucXVldWUhPT1hfHwoaFtnXS5hbmltLnN0b3AoYyksZj0hMSxoLnNwbGljZShnLDEpKTshZiYmY3x8ZC5kZXF1ZXVlKHRoaXMsYSl9KX0sZmluaXNoOmZ1bmN0aW9uKGEpe3JldHVybiExIT09YSYmKGE9YXx8ImZ4IiksdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIGI9Ry5nZXQodGhpcyksYz1iW2ErInF1ZXVlIl0sZT1iW2ErInF1ZXVlSG9va3MiXSxmPWQudGltZXJzLGc9Yz9jLmxlbmd0aDowO2IuZmluaXNoPSEwO2QucXVldWUodGhpcyxhLFtdKTtlJiZlLnN0b3AmJmUuc3RvcC5jYWxsKHRoaXMsITApO2ZvcihlPWYubGVuZ3RoO2UtLTspZltlXS5lbGVtPT09dGhpcyYmZltlXS5xdWV1ZT09PWEmJihmW2VdLmFuaW0uc3RvcCghMCksZi5zcGxpY2UoZSwxKSk7Zm9yKGU9MDtlPGc7ZSsrKWNbZV0mJmNbZV0uZmluaXNoJiZjW2VdLmZpbmlzaC5jYWxsKHRoaXMpO2RlbGV0ZSBiLmZpbmlzaH0pfX0pO2QuZWFjaChbInRvZ2dsZSIsInNob3ciLCJoaWRlIl0sZnVuY3Rpb24oYSwKYil7dmFyIGM9ZC5mbltiXTtkLmZuW2JdPWZ1bmN0aW9uKGUsZixnKXtyZXR1cm4gbnVsbD09ZXx8ImJvb2xlYW4iPT10eXBlb2YgZT9jLmFwcGx5KHRoaXMsYXJndW1lbnRzKTp0aGlzLmFuaW1hdGUodGIoYiwhMCksZSxmLGcpfX0pO2QuZWFjaCh7c2xpZGVEb3duOnRiKCJzaG93Iiksc2xpZGVVcDp0YigiaGlkZSIpLHNsaWRlVG9nZ2xlOnRiKCJ0b2dnbGUiKSxmYWRlSW46e29wYWNpdHk6InNob3cifSxmYWRlT3V0OntvcGFjaXR5OiJoaWRlIn0sZmFkZVRvZ2dsZTp7b3BhY2l0eToidG9nZ2xlIn19LGZ1bmN0aW9uKGEsYil7ZC5mblthXT1mdW5jdGlvbihjLGUsZil7cmV0dXJuIHRoaXMuYW5pbWF0ZShiLGMsZSxmKX19KTtkLnRpbWVycz1bXTtkLmZ4LnRpY2s9ZnVuY3Rpb24oKXt2YXIgYSxiPTAsYz1kLnRpbWVycztmb3Ioc2I9RGF0ZS5ub3coKTtiPGMubGVuZ3RoO2IrKykoYT1jW2JdKSgpfHxjW2JdIT09YXx8Yy5zcGxpY2UoYi0tLDEpO2MubGVuZ3RofHxkLmZ4LnN0b3AoKTsKc2I9dm9pZCAwfTtkLmZ4LnRpbWVyPWZ1bmN0aW9uKGEpe2QudGltZXJzLnB1c2goYSk7ZC5meC5zdGFydCgpfTtkLmZ4LmludGVydmFsPTEzO2QuZnguc3RhcnQ9ZnVuY3Rpb24oKXtYYnx8KFhiPSEwLENiKCkpfTtkLmZ4LnN0b3A9ZnVuY3Rpb24oKXtYYj1udWxsfTtkLmZ4LnNwZWVkcz17c2xvdzo2MDAsZmFzdDoyMDAsX2RlZmF1bHQ6NDAwfTtkLmZuLmRlbGF5PWZ1bmN0aW9uKGEsYil7cmV0dXJuIGE9ZC5meCYmZC5meC5zcGVlZHNbYV18fGEsYj1ifHwiZngiLHRoaXMucXVldWUoYixmdW5jdGlvbihjLGUpe3ZhciBmPW4uc2V0VGltZW91dChjLGEpO2Uuc3RvcD1mdW5jdGlvbigpe24uY2xlYXJUaW1lb3V0KGYpfX0pfTt2YXIgSWI9TC5jcmVhdGVFbGVtZW50KCJpbnB1dCIpLHNkPUwuY3JlYXRlRWxlbWVudCgic2VsZWN0IikuYXBwZW5kQ2hpbGQoTC5jcmVhdGVFbGVtZW50KCJvcHRpb24iKSk7SWIudHlwZT0iY2hlY2tib3giO04uY2hlY2tPbj0iIiE9PUliLnZhbHVlO04ub3B0U2VsZWN0ZWQ9CnNkLnNlbGVjdGVkOyhJYj1MLmNyZWF0ZUVsZW1lbnQoImlucHV0IikpLnZhbHVlPSJ0IjtJYi50eXBlPSJyYWRpbyI7Ti5yYWRpb1ZhbHVlPSJ0Ij09PUliLnZhbHVlO3ZhciBKYj1kLmV4cHIuYXR0ckhhbmRsZTtkLmZuLmV4dGVuZCh7YXR0cjpmdW5jdGlvbihhLGIpe3JldHVybiBYYSh0aGlzLGQuYXR0cixhLGIsMTxhcmd1bWVudHMubGVuZ3RoKX0scmVtb3ZlQXR0cjpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7ZC5yZW1vdmVBdHRyKHRoaXMsYSl9KX19KTtkLmV4dGVuZCh7YXR0cjpmdW5jdGlvbihhLGIsYyl7dmFyIGUsZixnPWEubm9kZVR5cGU7aWYoMyE9PWcmJjghPT1nJiYyIT09ZylyZXR1cm4idW5kZWZpbmVkIj09dHlwZW9mIGEuZ2V0QXR0cmlidXRlP2QucHJvcChhLGIsYyk6KDE9PT1nJiZkLmlzWE1MRG9jKGEpfHwoZj1kLmF0dHJIb29rc1tiLnRvTG93ZXJDYXNlKCldfHwoZC5leHByLm1hdGNoLmJvb2wudGVzdChiKT90ZDp2b2lkIDApKSwKdm9pZCAwIT09Yz9udWxsPT09Yz92b2lkIGQucmVtb3ZlQXR0cihhLGIpOmYmJiJzZXQiaW4gZiYmdm9pZCAwIT09KGU9Zi5zZXQoYSxjLGIpKT9lOihhLnNldEF0dHJpYnV0ZShiLGMrIiIpLGMpOmYmJiJnZXQiaW4gZiYmbnVsbCE9PShlPWYuZ2V0KGEsYikpP2U6bnVsbD09KGU9ZC5maW5kLmF0dHIoYSxiKSk\/dm9pZCAwOmUpfSxhdHRySG9va3M6e3R5cGU6e3NldDpmdW5jdGlvbihhLGIpe2lmKCFOLnJhZGlvVmFsdWUmJiJyYWRpbyI9PT1iJiZYKGEsImlucHV0Iikpe3ZhciBjPWEudmFsdWU7cmV0dXJuIGEuc2V0QXR0cmlidXRlKCJ0eXBlIixiKSxjJiYoYS52YWx1ZT1jKSxifX19fSxyZW1vdmVBdHRyOmZ1bmN0aW9uKGEsYil7dmFyIGM9MCxlPWImJmIubWF0Y2goTGEpO2lmKGUmJjE9PT1hLm5vZGVUeXBlKWZvcig7Yj1lW2MrK107KWEucmVtb3ZlQXR0cmlidXRlKGIpfX0pO3ZhciB0ZD17c2V0OmZ1bmN0aW9uKGEsYixjKXtyZXR1cm4hMT09PWI\/ZC5yZW1vdmVBdHRyKGEsCmMpOmEuc2V0QXR0cmlidXRlKGMsYyksY319O2QuZWFjaChkLmV4cHIubWF0Y2guYm9vbC5zb3VyY2UubWF0Y2goL1x3Ky9nKSxmdW5jdGlvbihhLGIpe3ZhciBjPUpiW2JdfHxkLmZpbmQuYXR0cjtKYltiXT1mdW5jdGlvbihlLGYsZyl7dmFyIGgsbSxsPWYudG9Mb3dlckNhc2UoKTtyZXR1cm4gZ3x8KG09SmJbbF0sSmJbbF09aCxoPW51bGwhPWMoZSxmLGcpP2w6bnVsbCxKYltsXT1tKSxofX0pO3ZhciB1ZD0vXig\/OmlucHV0fHNlbGVjdHx0ZXh0YXJlYXxidXR0b24pJC9pLHZkPS9eKD86YXxhcmVhKSQvaTtkLmZuLmV4dGVuZCh7cHJvcDpmdW5jdGlvbihhLGIpe3JldHVybiBYYSh0aGlzLGQucHJvcCxhLGIsMTxhcmd1bWVudHMubGVuZ3RoKX0scmVtb3ZlUHJvcDpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7ZGVsZXRlIHRoaXNbZC5wcm9wRml4W2FdfHxhXX0pfX0pO2QuZXh0ZW5kKHtwcm9wOmZ1bmN0aW9uKGEsYixjKXt2YXIgZSxmLGc9YS5ub2RlVHlwZTsKaWYoMyE9PWcmJjghPT1nJiYyIT09ZylyZXR1cm4gMT09PWcmJmQuaXNYTUxEb2MoYSl8fChiPWQucHJvcEZpeFtiXXx8YixmPWQucHJvcEhvb2tzW2JdKSx2b2lkIDAhPT1jP2YmJiJzZXQiaW4gZiYmdm9pZCAwIT09KGU9Zi5zZXQoYSxjLGIpKT9lOmFbYl09YzpmJiYiZ2V0ImluIGYmJm51bGwhPT0oZT1mLmdldChhLGIpKT9lOmFbYl19LHByb3BIb29rczp7dGFiSW5kZXg6e2dldDpmdW5jdGlvbihhKXt2YXIgYj1kLmZpbmQuYXR0cihhLCJ0YWJpbmRleCIpO3JldHVybiBiP3BhcnNlSW50KGIsMTApOnVkLnRlc3QoYS5ub2RlTmFtZSl8fHZkLnRlc3QoYS5ub2RlTmFtZSkmJmEuaHJlZj8wOi0xfX19LHByb3BGaXg6eyJmb3IiOiJodG1sRm9yIiwiY2xhc3MiOiJjbGFzc05hbWUifX0pO04ub3B0U2VsZWN0ZWR8fChkLnByb3BIb29rcy5zZWxlY3RlZD17Z2V0OmZ1bmN0aW9uKGEpe2E9YS5wYXJlbnROb2RlO3JldHVybiBhJiZhLnBhcmVudE5vZGUmJmEucGFyZW50Tm9kZS5zZWxlY3RlZEluZGV4LApudWxsfSxzZXQ6ZnVuY3Rpb24oYSl7YT1hLnBhcmVudE5vZGU7YSYmKGEuc2VsZWN0ZWRJbmRleCxhLnBhcmVudE5vZGUmJmEucGFyZW50Tm9kZS5zZWxlY3RlZEluZGV4KX19KTtkLmVhY2goInRhYkluZGV4IHJlYWRPbmx5IG1heExlbmd0aCBjZWxsU3BhY2luZyBjZWxsUGFkZGluZyByb3dTcGFuIGNvbFNwYW4gdXNlTWFwIGZyYW1lQm9yZGVyIGNvbnRlbnRFZGl0YWJsZSIuc3BsaXQoIiAiKSxmdW5jdGlvbigpe2QucHJvcEZpeFt0aGlzLnRvTG93ZXJDYXNlKCldPXRoaXN9KTtkLmZuLmV4dGVuZCh7YWRkQ2xhc3M6ZnVuY3Rpb24oYSl7dmFyIGIsYyxlLGYsZyxoO3JldHVybiBNKGEpP3RoaXMuZWFjaChmdW5jdGlvbihtKXtkKHRoaXMpLmFkZENsYXNzKGEuY2FsbCh0aGlzLG0sSCh0aGlzKSkpfSk6KGI9UChhKSkubGVuZ3RoP3RoaXMuZWFjaChmdW5jdGlvbigpe2lmKGU9SCh0aGlzKSxjPTE9PT10aGlzLm5vZGVUeXBlJiYiICIrQyhlKSsiICIpe2ZvcihnPTA7ZzxiLmxlbmd0aDtnKyspZj0KYltnXSwwPmMuaW5kZXhPZigiICIrZisiICIpJiYoYys9ZisiICIpO2g9QyhjKTtlIT09aCYmdGhpcy5zZXRBdHRyaWJ1dGUoImNsYXNzIixoKX19KTp0aGlzfSxyZW1vdmVDbGFzczpmdW5jdGlvbihhKXt2YXIgYixjLGUsZixnLGg7cmV0dXJuIE0oYSk\/dGhpcy5lYWNoKGZ1bmN0aW9uKG0pe2QodGhpcykucmVtb3ZlQ2xhc3MoYS5jYWxsKHRoaXMsbSxIKHRoaXMpKSl9KTphcmd1bWVudHMubGVuZ3RoPyhiPVAoYSkpLmxlbmd0aD90aGlzLmVhY2goZnVuY3Rpb24oKXtpZihlPUgodGhpcyksYz0xPT09dGhpcy5ub2RlVHlwZSYmIiAiK0MoZSkrIiAiKXtmb3IoZz0wO2c8Yi5sZW5ndGg7ZysrKWZvcihmPWJbZ107LTE8Yy5pbmRleE9mKCIgIitmKyIgIik7KWM9Yy5yZXBsYWNlKCIgIitmKyIgIiwiICIpO2g9QyhjKTtlIT09aCYmdGhpcy5zZXRBdHRyaWJ1dGUoImNsYXNzIixoKX19KTp0aGlzOnRoaXMuYXR0cigiY2xhc3MiLCIiKX0sdG9nZ2xlQ2xhc3M6ZnVuY3Rpb24oYSxiKXt2YXIgYywKZSxmLGcsaD10eXBlb2YgYSxtPSJzdHJpbmciPT09aHx8QXJyYXkuaXNBcnJheShhKTtyZXR1cm4gTShhKT90aGlzLmVhY2goZnVuY3Rpb24obCl7ZCh0aGlzKS50b2dnbGVDbGFzcyhhLmNhbGwodGhpcyxsLEgodGhpcyksYiksYil9KToiYm9vbGVhbiI9PXR5cGVvZiBiJiZtP2I\/dGhpcy5hZGRDbGFzcyhhKTp0aGlzLnJlbW92ZUNsYXNzKGEpOihjPVAoYSksdGhpcy5lYWNoKGZ1bmN0aW9uKCl7aWYobSlmb3IoZz1kKHRoaXMpLGY9MDtmPGMubGVuZ3RoO2YrKyllPWNbZl0sZy5oYXNDbGFzcyhlKT9nLnJlbW92ZUNsYXNzKGUpOmcuYWRkQ2xhc3MoZSk7ZWxzZSB2b2lkIDAhPT1hJiYiYm9vbGVhbiIhPT1ofHwoKGU9SCh0aGlzKSkmJkcuc2V0KHRoaXMsIl9fY2xhc3NOYW1lX18iLGUpLHRoaXMuc2V0QXR0cmlidXRlJiZ0aGlzLnNldEF0dHJpYnV0ZSgiY2xhc3MiLGV8fCExPT09YT8iIjpHLmdldCh0aGlzLCJfX2NsYXNzTmFtZV9fIil8fCIiKSl9KSl9LGhhc0NsYXNzOmZ1bmN0aW9uKGEpe3ZhciBiLApjPTA7Zm9yKGE9IiAiK2ErIiAiO2I9dGhpc1tjKytdOylpZigxPT09Yi5ub2RlVHlwZSYmLTE8KCIgIitDKEgoYikpKyIgIikuaW5kZXhPZihhKSlyZXR1cm4hMDtyZXR1cm4hMX19KTt2YXIgd2Q9L1xyL2c7ZC5mbi5leHRlbmQoe3ZhbDpmdW5jdGlvbihhKXt2YXIgYixjLGUsZj10aGlzWzBdO3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPU0oYSksdGhpcy5lYWNoKGZ1bmN0aW9uKGcpe3ZhciBoOzE9PT10aGlzLm5vZGVUeXBlJiYobnVsbD09KGg9ZT9hLmNhbGwodGhpcyxnLGQodGhpcykudmFsKCkpOmEpP2g9IiI6Im51bWJlciI9PXR5cGVvZiBoP2grPSIiOkFycmF5LmlzQXJyYXkoaCkmJihoPWQubWFwKGgsZnVuY3Rpb24obSl7cmV0dXJuIG51bGw9PW0\/IiI6bSsiIn0pKSwoYj1kLnZhbEhvb2tzW3RoaXMudHlwZV18fGQudmFsSG9va3NbdGhpcy5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpXSkmJiJzZXQiaW4gYiYmdm9pZCAwIT09Yi5zZXQodGhpcyxoLCJ2YWx1ZSIpfHwodGhpcy52YWx1ZT0KaCkpfSkpOmY\/KGI9ZC52YWxIb29rc1tmLnR5cGVdfHxkLnZhbEhvb2tzW2Yubm9kZU5hbWUudG9Mb3dlckNhc2UoKV0pJiYiZ2V0ImluIGImJnZvaWQgMCE9PShjPWIuZ2V0KGYsInZhbHVlIikpP2M6InN0cmluZyI9PXR5cGVvZihjPWYudmFsdWUpP2MucmVwbGFjZSh3ZCwiIik6bnVsbD09Yz8iIjpjOnZvaWQgMH19KTtkLmV4dGVuZCh7dmFsSG9va3M6e29wdGlvbjp7Z2V0OmZ1bmN0aW9uKGEpe3ZhciBiPWQuZmluZC5hdHRyKGEsInZhbHVlIik7cmV0dXJuIG51bGwhPWI\/YjpDKGQudGV4dChhKSl9fSxzZWxlY3Q6e2dldDpmdW5jdGlvbihhKXt2YXIgYixjLGU9YS5vcHRpb25zLGY9YS5zZWxlY3RlZEluZGV4LGc9InNlbGVjdC1vbmUiPT09YS50eXBlLGg9Zz9udWxsOltdLG09Zz9mKzE6ZS5sZW5ndGg7Zm9yKGM9MD5mP206Zz9mOjA7YzxtO2MrKylpZighKCEoYj1lW2NdKS5zZWxlY3RlZCYmYyE9PWZ8fGIuZGlzYWJsZWR8fGIucGFyZW50Tm9kZS5kaXNhYmxlZCYmWChiLnBhcmVudE5vZGUsCiJvcHRncm91cCIpKSl7aWYoYT1kKGIpLnZhbCgpLGcpcmV0dXJuIGE7aC5wdXNoKGEpfXJldHVybiBofSxzZXQ6ZnVuY3Rpb24oYSxiKXt2YXIgYyxlLGY9YS5vcHRpb25zO2I9ZC5tYWtlQXJyYXkoYik7Zm9yKHZhciBnPWYubGVuZ3RoO2ctLTspKChlPWZbZ10pLnNlbGVjdGVkPS0xPGQuaW5BcnJheShkLnZhbEhvb2tzLm9wdGlvbi5nZXQoZSksYikpJiYoYz0hMCk7cmV0dXJuIGN8fChhLnNlbGVjdGVkSW5kZXg9LTEpLGJ9fX19KTtkLmVhY2goWyJyYWRpbyIsImNoZWNrYm94Il0sZnVuY3Rpb24oKXtkLnZhbEhvb2tzW3RoaXNdPXtzZXQ6ZnVuY3Rpb24oYSxiKXtpZihBcnJheS5pc0FycmF5KGIpKXJldHVybiBhLmNoZWNrZWQ9LTE8ZC5pbkFycmF5KGQoYSkudmFsKCksYil9fTtOLmNoZWNrT258fChkLnZhbEhvb2tzW3RoaXNdLmdldD1mdW5jdGlvbihhKXtyZXR1cm4gbnVsbD09PWEuZ2V0QXR0cmlidXRlKCJ2YWx1ZSIpPyJvbiI6YS52YWx1ZX0pfSk7dmFyIEtiPW4ubG9jYXRpb24sCkRjPURhdGUubm93KCksaGM9L1w\/LztkLnBhcnNlWE1MPWZ1bmN0aW9uKGEpe3ZhciBiO2lmKCFhfHwic3RyaW5nIiE9dHlwZW9mIGEpcmV0dXJuIG51bGw7dHJ5e3ZhciBjPShuZXcgbi5ET01QYXJzZXIpLnBhcnNlRnJvbVN0cmluZyhhLCJ0ZXh0L3htbCIpfWNhdGNoKGUpe31yZXR1cm4gYj1jJiZjLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJwYXJzZXJlcnJvciIpWzBdLGMmJiFifHxkLmVycm9yKCJJbnZhbGlkIFhNTDogIisoYj9kLm1hcChiLmNoaWxkTm9kZXMsZnVuY3Rpb24oZSl7cmV0dXJuIGUudGV4dENvbnRlbnR9KS5qb2luKCJcbiIpOmEpKSxjfTt2YXIgRWM9L14oPzpmb2N1c2luZm9jdXN8Zm9jdXNvdXRibHVyKSQvLEZjPWZ1bmN0aW9uKGEpe2Euc3RvcFByb3BhZ2F0aW9uKCl9O2QuZXh0ZW5kKGQuZXZlbnQse3RyaWdnZXI6ZnVuY3Rpb24oYSxiLGMsZSl7dmFyIGYsZyxoLG0sbCx0LHc9W2N8fExdLHI9RmIuY2FsbChhLCJ0eXBlIik\/YS50eXBlOmEsej1GYi5jYWxsKGEsCiJuYW1lc3BhY2UiKT9hLm5hbWVzcGFjZS5zcGxpdCgiLiIpOltdO2lmKGY9dD1nPWM9Y3x8TCwzIT09Yy5ub2RlVHlwZSYmOCE9PWMubm9kZVR5cGUmJiFFYy50ZXN0KHIrZC5ldmVudC50cmlnZ2VyZWQpJiYoLTE8ci5pbmRleE9mKCIuIikmJihyPSh6PXIuc3BsaXQoIi4iKSkuc2hpZnQoKSx6LnNvcnQoKSksaD0wPnIuaW5kZXhPZigiOiIpJiYib24iK3IsKGE9YVtkLmV4cGFuZG9dP2E6bmV3IGQuRXZlbnQociwib2JqZWN0Ij09dHlwZW9mIGEmJmEpKS5pc1RyaWdnZXI9ZT8yOjMsYS5uYW1lc3BhY2U9ei5qb2luKCIuIiksYS5ybmFtZXNwYWNlPWEubmFtZXNwYWNlP25ldyBSZWdFeHAoIihefFxcLikiK3ouam9pbigiXFwuKD86LipcXC58KSIpKyIoXFwufCQpIik6bnVsbCxhLnJlc3VsdD12b2lkIDAsYS50YXJnZXR8fChhLnRhcmdldD1jKSxiPW51bGw9PWI\/W2FdOmQubWFrZUFycmF5KGIsW2FdKSxsPWQuZXZlbnQuc3BlY2lhbFtyXXx8e30sZXx8IWwudHJpZ2dlcnx8ITEhPT0KbC50cmlnZ2VyLmFwcGx5KGMsYikpKXtpZighZSYmIWwubm9CdWJibGUmJiFrYihjKSl7dmFyIEQ9bC5kZWxlZ2F0ZVR5cGV8fHI7Zm9yKEVjLnRlc3QoRCtyKXx8KGY9Zi5wYXJlbnROb2RlKTtmO2Y9Zi5wYXJlbnROb2RlKXcucHVzaChmKSxnPWY7Zz09PShjLm93bmVyRG9jdW1lbnR8fEwpJiZ3LnB1c2goZy5kZWZhdWx0Vmlld3x8Zy5wYXJlbnRXaW5kb3d8fG4pfWZvcih6PTA7KGY9d1t6KytdKSYmIWEuaXNQcm9wYWdhdGlvblN0b3BwZWQoKTspdD1mLGEudHlwZT0xPHo\/RDpsLmJpbmRUeXBlfHxyLChtPShHLmdldChmLCJldmVudHMiKXx8T2JqZWN0LmNyZWF0ZShudWxsKSlbYS50eXBlXSYmRy5nZXQoZiwiaGFuZGxlIikpJiZtLmFwcGx5KGYsYiksKG09aCYmZltoXSkmJm0uYXBwbHkmJkdiKGYpJiYoYS5yZXN1bHQ9bS5hcHBseShmLGIpLCExPT09YS5yZXN1bHQmJmEucHJldmVudERlZmF1bHQoKSk7cmV0dXJuIGEudHlwZT1yLGV8fGEuaXNEZWZhdWx0UHJldmVudGVkKCl8fApsLl9kZWZhdWx0JiYhMSE9PWwuX2RlZmF1bHQuYXBwbHkody5wb3AoKSxiKXx8IUdiKGMpfHxoJiZNKGNbcl0pJiYha2IoYykmJigoZz1jW2hdKSYmKGNbaF09bnVsbCksZC5ldmVudC50cmlnZ2VyZWQ9cixhLmlzUHJvcGFnYXRpb25TdG9wcGVkKCkmJnQuYWRkRXZlbnRMaXN0ZW5lcihyLEZjKSxjW3JdKCksYS5pc1Byb3BhZ2F0aW9uU3RvcHBlZCgpJiZ0LnJlbW92ZUV2ZW50TGlzdGVuZXIocixGYyksZC5ldmVudC50cmlnZ2VyZWQ9dm9pZCAwLGcmJihjW2hdPWcpKSxhLnJlc3VsdH19LHNpbXVsYXRlOmZ1bmN0aW9uKGEsYixjKXthPWQuZXh0ZW5kKG5ldyBkLkV2ZW50LGMse3R5cGU6YSxpc1NpbXVsYXRlZDohMH0pO2QuZXZlbnQudHJpZ2dlcihhLG51bGwsYil9fSk7ZC5mbi5leHRlbmQoe3RyaWdnZXI6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7ZC5ldmVudC50cmlnZ2VyKGEsYix0aGlzKX0pfSx0cmlnZ2VySGFuZGxlcjpmdW5jdGlvbihhLGIpe3ZhciBjPQp0aGlzWzBdO2lmKGMpcmV0dXJuIGQuZXZlbnQudHJpZ2dlcihhLGIsYywhMCl9fSk7dmFyIFVjPS9cW1xdJC8sR2M9L1xyP1xuL2cseGQ9L14oPzpzdWJtaXR8YnV0dG9ufGltYWdlfHJlc2V0fGZpbGUpJC9pLHlkPS9eKD86aW5wdXR8c2VsZWN0fHRleHRhcmVhfGtleWdlbikvaTtkLnBhcmFtPWZ1bmN0aW9uKGEsYil7dmFyIGMsZT1bXSxmPWZ1bmN0aW9uKGcsaCl7aD1NKGgpP2goKTpoO2VbZS5sZW5ndGhdPWVuY29kZVVSSUNvbXBvbmVudChnKSsiPSIrZW5jb2RlVVJJQ29tcG9uZW50KG51bGw9PWg\/IiI6aCl9O2lmKG51bGw9PWEpcmV0dXJuIiI7aWYoQXJyYXkuaXNBcnJheShhKXx8YS5qcXVlcnkmJiFkLmlzUGxhaW5PYmplY3QoYSkpZC5lYWNoKGEsZnVuY3Rpb24oKXtmKHRoaXMubmFtZSx0aGlzLnZhbHVlKX0pO2Vsc2UgZm9yKGMgaW4gYSllYShjLGFbY10sYixmKTtyZXR1cm4gZS5qb2luKCImIil9O2QuZm4uZXh0ZW5kKHtzZXJpYWxpemU6ZnVuY3Rpb24oKXtyZXR1cm4gZC5wYXJhbSh0aGlzLnNlcmlhbGl6ZUFycmF5KCkpfSwKc2VyaWFsaXplQXJyYXk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tYXAoZnVuY3Rpb24oKXt2YXIgYT1kLnByb3AodGhpcywiZWxlbWVudHMiKTtyZXR1cm4gYT9kLm1ha2VBcnJheShhKTp0aGlzfSkuZmlsdGVyKGZ1bmN0aW9uKCl7dmFyIGE9dGhpcy50eXBlO3JldHVybiB0aGlzLm5hbWUmJiFkKHRoaXMpLmlzKCI6ZGlzYWJsZWQiKSYmeWQudGVzdCh0aGlzLm5vZGVOYW1lKSYmIXhkLnRlc3QoYSkmJih0aGlzLmNoZWNrZWR8fCFIYi50ZXN0KGEpKX0pLm1hcChmdW5jdGlvbihhLGIpe2E9ZCh0aGlzKS52YWwoKTtyZXR1cm4gbnVsbD09YT9udWxsOkFycmF5LmlzQXJyYXkoYSk\/ZC5tYXAoYSxmdW5jdGlvbihjKXtyZXR1cm57bmFtZTpiLm5hbWUsdmFsdWU6Yy5yZXBsYWNlKEdjLCJcclxuIil9fSk6e25hbWU6Yi5uYW1lLHZhbHVlOmEucmVwbGFjZShHYywiXHJcbiIpfX0pLmdldCgpfX0pO3ZhciB6ZD0vJTIwL2csQWQ9LyMuKiQvLEJkPS8oWz8mXSlfPVteJl0qLyxDZD0vXiguKj8pOlsgXHRdKihbXlxyXG5dKikkL2dtLApEZD0vXig\/OkdFVHxIRUFEKSQvLEVkPS9eXC9cLy8sSGM9e30sY2M9e30sSWM9IiovIi5jb25jYXQoIioiKSxpYz1MLmNyZWF0ZUVsZW1lbnQoImEiKTtpYy5ocmVmPUtiLmhyZWY7ZC5leHRlbmQoe2FjdGl2ZTowLGxhc3RNb2RpZmllZDp7fSxldGFnOnt9LGFqYXhTZXR0aW5nczp7dXJsOktiLmhyZWYsdHlwZToiR0VUIixpc0xvY2FsOi9eKD86YWJvdXR8YXBwfGFwcC1zdG9yYWdlfC4rLWV4dGVuc2lvbnxmaWxlfHJlc3x3aWRnZXQpOiQvLnRlc3QoS2IucHJvdG9jb2wpLGdsb2JhbDohMCxwcm9jZXNzRGF0YTohMCxhc3luYzohMCxjb250ZW50VHlwZToiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkOyBjaGFyc2V0PVVURi04IixhY2NlcHRzOnsiKiI6SWMsdGV4dDoidGV4dC9wbGFpbiIsaHRtbDoidGV4dC9odG1sIix4bWw6ImFwcGxpY2F0aW9uL3htbCwgdGV4dC94bWwiLGpzb246ImFwcGxpY2F0aW9uL2pzb24sIHRleHQvamF2YXNjcmlwdCJ9LGNvbnRlbnRzOnt4bWw6L1xieG1sXGIvLApodG1sOi9cYmh0bWwvLGpzb246L1xianNvblxiL30scmVzcG9uc2VGaWVsZHM6e3htbDoicmVzcG9uc2VYTUwiLHRleHQ6InJlc3BvbnNlVGV4dCIsanNvbjoicmVzcG9uc2VKU09OIn0sY29udmVydGVyczp7IiogdGV4dCI6U3RyaW5nLCJ0ZXh0IGh0bWwiOiEwLCJ0ZXh0IGpzb24iOkpTT04ucGFyc2UsInRleHQgeG1sIjpkLnBhcnNlWE1MfSxmbGF0T3B0aW9uczp7dXJsOiEwLGNvbnRleHQ6ITB9fSxhamF4U2V0dXA6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYj9oYihoYihhLGQuYWpheFNldHRpbmdzKSxiKTpoYihkLmFqYXhTZXR0aW5ncyxhKX0sYWpheFByZWZpbHRlcjpRYShIYyksYWpheFRyYW5zcG9ydDpRYShjYyksYWpheDpmdW5jdGlvbihhLGIpe2Z1bmN0aW9uIGMoUyxoYSxpYixaKXt2YXIgcmEsdmEsa2EsTWEsdGEsVz1oYTtLfHwoSz0hMCxtJiZuLmNsZWFyVGltZW91dChtKSxlPXZvaWQgMCxnPVp8fCIiLFEucmVhZHlTdGF0ZT0wPFM\/NDowLHJhPTIwMDw9UyYmMzAwPlN8fAozMDQ9PT1TLGliJiYoTWE9ZnVuY3Rpb24oZmEsRGEsZGIpe2Zvcih2YXIgVmEsdWEsWSxsYSxJYT1mYS5jb250ZW50cyxtYT1mYS5kYXRhVHlwZXM7IioiPT09bWFbMF07KW1hLnNoaWZ0KCksdm9pZCAwPT09VmEmJihWYT1mYS5taW1lVHlwZXx8RGEuZ2V0UmVzcG9uc2VIZWFkZXIoIkNvbnRlbnQtVHlwZSIpKTtpZihWYSlmb3IodWEgaW4gSWEpaWYoSWFbdWFdJiZJYVt1YV0udGVzdChWYSkpe21hLnVuc2hpZnQodWEpO2JyZWFrfWlmKG1hWzBdaW4gZGIpWT1tYVswXTtlbHNle2Zvcih1YSBpbiBkYil7aWYoIW1hWzBdfHxmYS5jb252ZXJ0ZXJzW3VhKyIgIittYVswXV0pe1k9dWE7YnJlYWt9bGF8fChsYT11YSl9WT1ZfHxsYX1pZihZKXJldHVybiBZIT09bWFbMF0mJm1hLnVuc2hpZnQoWSksZGJbWV19KHIsUSxpYikpLCFyYSYmLTE8ZC5pbkFycmF5KCJzY3JpcHQiLHIuZGF0YVR5cGVzKSYmMD5kLmluQXJyYXkoImpzb24iLHIuZGF0YVR5cGVzKSYmKHIuY29udmVydGVyc1sidGV4dCBzY3JpcHQiXT0KZnVuY3Rpb24oKXt9KSxNYT1mdW5jdGlvbihmYSxEYSxkYixWYSl7dmFyIHVhLFksbGEsSWEsbWEsSGE9e30sdmI9ZmEuZGF0YVR5cGVzLnNsaWNlKCk7aWYodmJbMV0pZm9yKGxhIGluIGZhLmNvbnZlcnRlcnMpSGFbbGEudG9Mb3dlckNhc2UoKV09ZmEuY29udmVydGVyc1tsYV07Zm9yKFk9dmIuc2hpZnQoKTtZOylpZihmYS5yZXNwb25zZUZpZWxkc1tZXSYmKGRiW2ZhLnJlc3BvbnNlRmllbGRzW1ldXT1EYSksIW1hJiZWYSYmZmEuZGF0YUZpbHRlciYmKERhPWZhLmRhdGFGaWx0ZXIoRGEsZmEuZGF0YVR5cGUpKSxtYT1ZLFk9dmIuc2hpZnQoKSlpZigiKiI9PT1ZKVk9bWE7ZWxzZSBpZigiKiIhPT1tYSYmbWEhPT1ZKXtpZighKGxhPUhhW21hKyIgIitZXXx8SGFbIiogIitZXSkpZm9yKHVhIGluIEhhKWlmKChJYT11YS5zcGxpdCgiICIpKVsxXT09PVkmJihsYT1IYVttYSsiICIrSWFbMF1dfHxIYVsiKiAiK0lhWzBdXSkpeyEwPT09bGE\/bGE9SGFbdWFdOiEwIT09SGFbdWFdJiYoWT0KSWFbMF0sdmIudW5zaGlmdChJYVsxXSkpO2JyZWFrfWlmKCEwIT09bGEpaWYobGEmJmZhWyJ0aHJvd3MiXSlEYT1sYShEYSk7ZWxzZSB0cnl7RGE9bGEoRGEpfWNhdGNoKGZjKXtyZXR1cm57c3RhdGU6InBhcnNlcmVycm9yIixlcnJvcjpsYT9mYzoiTm8gY29udmVyc2lvbiBmcm9tICIrbWErIiB0byAiK1l9fX1yZXR1cm57c3RhdGU6InN1Y2Nlc3MiLGRhdGE6RGF9fShyLE1hLFEscmEpLHJhPyhyLmlmTW9kaWZpZWQmJigodGE9US5nZXRSZXNwb25zZUhlYWRlcigiTGFzdC1Nb2RpZmllZCIpKSYmKGQubGFzdE1vZGlmaWVkW2ZdPXRhKSwodGE9US5nZXRSZXNwb25zZUhlYWRlcigiZXRhZyIpKSYmKGQuZXRhZ1tmXT10YSkpLDIwND09PVN8fCJIRUFEIj09PXIudHlwZT9XPSJub2NvbnRlbnQiOjMwND09PVM\/Vz0ibm90bW9kaWZpZWQiOihXPU1hLnN0YXRlLHZhPU1hLmRhdGEscmE9IShrYT1NYS5lcnJvcikpKTooa2E9VywhUyYmV3x8KFc9ImVycm9yIiwwPlMmJihTPTApKSksUS5zdGF0dXM9ClMsUS5zdGF0dXNUZXh0PShoYXx8VykrIiIscmE\/Ri5yZXNvbHZlV2l0aCh6LFt2YSxXLFFdKTpGLnJlamVjdFdpdGgoeixbUSxXLGthXSksUS5zdGF0dXNDb2RlKGFhKSxhYT12b2lkIDAsbCYmRC50cmlnZ2VyKHJhPyJhamF4U3VjY2VzcyI6ImFqYXhFcnJvciIsW1EscixyYT92YTprYV0pLE8uZmlyZVdpdGgoeixbUSxXXSksbCYmKEQudHJpZ2dlcigiYWpheENvbXBsZXRlIixbUSxyXSksLS1kLmFjdGl2ZXx8ZC5ldmVudC50cmlnZ2VyKCJhamF4U3RvcCIpKSl9Im9iamVjdCI9PXR5cGVvZiBhJiYoYj1hLGE9dm9pZCAwKTtiPWJ8fHt9O3ZhciBlLGYsZyxoLG0sbCx0LHcscj1kLmFqYXhTZXR1cCh7fSxiKSx6PXIuY29udGV4dHx8cixEPXIuY29udGV4dCYmKHoubm9kZVR5cGV8fHouanF1ZXJ5KT9kKHopOmQuZXZlbnQsRj1kLkRlZmVycmVkKCksTz1kLkNhbGxiYWNrcygib25jZSBtZW1vcnkiKSxhYT1yLnN0YXR1c0NvZGV8fHt9LEdhPXt9LHFhPXt9LFNhPSJjYW5jZWxlZCIsUT0Ke3JlYWR5U3RhdGU6MCxnZXRSZXNwb25zZUhlYWRlcjpmdW5jdGlvbihTKXt2YXIgaGE7aWYoSyl7aWYoIWgpZm9yKGg9e307aGE9Q2QuZXhlYyhnKTspaFtoYVsxXS50b0xvd2VyQ2FzZSgpKyIgIl09KGhbaGFbMV0udG9Mb3dlckNhc2UoKSsiICJdfHxbXSkuY29uY2F0KGhhWzJdKTtoYT1oW1MudG9Mb3dlckNhc2UoKSsiICJdfXJldHVybiBudWxsPT1oYT9udWxsOmhhLmpvaW4oIiwgIil9LGdldEFsbFJlc3BvbnNlSGVhZGVyczpmdW5jdGlvbigpe3JldHVybiBLP2c6bnVsbH0sc2V0UmVxdWVzdEhlYWRlcjpmdW5jdGlvbihTLGhhKXtyZXR1cm4gbnVsbD09SyYmKFM9cWFbUy50b0xvd2VyQ2FzZSgpXT1xYVtTLnRvTG93ZXJDYXNlKCldfHxTLEdhW1NdPWhhKSx0aGlzfSxvdmVycmlkZU1pbWVUeXBlOmZ1bmN0aW9uKFMpe3JldHVybiBudWxsPT1LJiYoci5taW1lVHlwZT1TKSx0aGlzfSxzdGF0dXNDb2RlOmZ1bmN0aW9uKFMpe3ZhciBoYTtpZihTKWlmKEspUS5hbHdheXMoU1tRLnN0YXR1c10pOwplbHNlIGZvcihoYSBpbiBTKWFhW2hhXT1bYWFbaGFdLFNbaGFdXTtyZXR1cm4gdGhpc30sYWJvcnQ6ZnVuY3Rpb24oUyl7Uz1TfHxTYTtyZXR1cm4gZSYmZS5hYm9ydChTKSxjKDAsUyksdGhpc319O2lmKEYucHJvbWlzZShRKSxyLnVybD0oKGF8fHIudXJsfHxLYi5ocmVmKSsiIikucmVwbGFjZShFZCxLYi5wcm90b2NvbCsiLy8iKSxyLnR5cGU9Yi5tZXRob2R8fGIudHlwZXx8ci5tZXRob2R8fHIudHlwZSxyLmRhdGFUeXBlcz0oci5kYXRhVHlwZXx8IioiKS50b0xvd2VyQ2FzZSgpLm1hdGNoKExhKXx8WyIiXSxudWxsPT1yLmNyb3NzRG9tYWluKXthPUwuY3JlYXRlRWxlbWVudCgiYSIpO3RyeXthLmhyZWY9ci51cmwsYS5ocmVmPWEuaHJlZixyLmNyb3NzRG9tYWluPWljLnByb3RvY29sKyIvLyIraWMuaG9zdCE9YS5wcm90b2NvbCsiLy8iK2EuaG9zdH1jYXRjaChTKXtyLmNyb3NzRG9tYWluPSEwfX1pZihyLmRhdGEmJnIucHJvY2Vzc0RhdGEmJiJzdHJpbmciIT10eXBlb2Ygci5kYXRhJiYKKHIuZGF0YT1kLnBhcmFtKHIuZGF0YSxyLnRyYWRpdGlvbmFsKSksRWIoSGMscixiLFEpLEspcmV0dXJuIFE7Zm9yKHQgaW4obD1kLmV2ZW50JiZyLmdsb2JhbCkmJjA9PWQuYWN0aXZlKysmJmQuZXZlbnQudHJpZ2dlcigiYWpheFN0YXJ0Iiksci50eXBlPXIudHlwZS50b1VwcGVyQ2FzZSgpLHIuaGFzQ29udGVudD0hRGQudGVzdChyLnR5cGUpLGY9ci51cmwucmVwbGFjZShBZCwiIiksci5oYXNDb250ZW50P3IuZGF0YSYmci5wcm9jZXNzRGF0YSYmMD09PShyLmNvbnRlbnRUeXBlfHwiIikuaW5kZXhPZigiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIikmJihyLmRhdGE9ci5kYXRhLnJlcGxhY2UoemQsIisiKSk6KHc9ci51cmwuc2xpY2UoZi5sZW5ndGgpLHIuZGF0YSYmKHIucHJvY2Vzc0RhdGF8fCJzdHJpbmciPT10eXBlb2Ygci5kYXRhKSYmKGYrPShoYy50ZXN0KGYpPyImIjoiPyIpK3IuZGF0YSxkZWxldGUgci5kYXRhKSwhMT09PXIuY2FjaGUmJihmPWYucmVwbGFjZShCZCwKIiQxIiksdz0oaGMudGVzdChmKT8iJiI6Ij8iKSsiXz0iK0RjKysgK3cpLHIudXJsPWYrdyksci5pZk1vZGlmaWVkJiYoZC5sYXN0TW9kaWZpZWRbZl0mJlEuc2V0UmVxdWVzdEhlYWRlcigiSWYtTW9kaWZpZWQtU2luY2UiLGQubGFzdE1vZGlmaWVkW2ZdKSxkLmV0YWdbZl0mJlEuc2V0UmVxdWVzdEhlYWRlcigiSWYtTm9uZS1NYXRjaCIsZC5ldGFnW2ZdKSksKHIuZGF0YSYmci5oYXNDb250ZW50JiYhMSE9PXIuY29udGVudFR5cGV8fGIuY29udGVudFR5cGUpJiZRLnNldFJlcXVlc3RIZWFkZXIoIkNvbnRlbnQtVHlwZSIsci5jb250ZW50VHlwZSksUS5zZXRSZXF1ZXN0SGVhZGVyKCJBY2NlcHQiLHIuZGF0YVR5cGVzWzBdJiZyLmFjY2VwdHNbci5kYXRhVHlwZXNbMF1dP3IuYWNjZXB0c1tyLmRhdGFUeXBlc1swXV0rKCIqIiE9PXIuZGF0YVR5cGVzWzBdPyIsICIrSWMrIjsgcT0wLjAxIjoiIik6ci5hY2NlcHRzWyIqIl0pLHIuaGVhZGVycylRLnNldFJlcXVlc3RIZWFkZXIodCxyLmhlYWRlcnNbdF0pOwppZihyLmJlZm9yZVNlbmQmJighMT09PXIuYmVmb3JlU2VuZC5jYWxsKHosUSxyKXx8SykpcmV0dXJuIFEuYWJvcnQoKTtpZihTYT0iYWJvcnQiLE8uYWRkKHIuY29tcGxldGUpLFEuZG9uZShyLnN1Y2Nlc3MpLFEuZmFpbChyLmVycm9yKSxlPUViKGNjLHIsYixRKSl7aWYoUS5yZWFkeVN0YXRlPTEsbCYmRC50cmlnZ2VyKCJhamF4U2VuZCIsW1Escl0pLEspcmV0dXJuIFE7ci5hc3luYyYmMDxyLnRpbWVvdXQmJihtPW4uc2V0VGltZW91dChmdW5jdGlvbigpe1EuYWJvcnQoInRpbWVvdXQiKX0sci50aW1lb3V0KSk7dHJ5e3ZhciBLPSExO2Uuc2VuZChHYSxjKX1jYXRjaChTKXtpZihLKXRocm93IFM7YygtMSxTKX19ZWxzZSBjKC0xLCJObyBUcmFuc3BvcnQiKTtyZXR1cm4gUX0sZ2V0SlNPTjpmdW5jdGlvbihhLGIsYyl7cmV0dXJuIGQuZ2V0KGEsYixjLCJqc29uIil9LGdldFNjcmlwdDpmdW5jdGlvbihhLGIpe3JldHVybiBkLmdldChhLHZvaWQgMCxiLCJzY3JpcHQiKX19KTtkLmVhY2goWyJnZXQiLAoicG9zdCJdLGZ1bmN0aW9uKGEsYil7ZFtiXT1mdW5jdGlvbihjLGUsZixnKXtyZXR1cm4gTShlKSYmKGc9Z3x8ZixmPWUsZT12b2lkIDApLGQuYWpheChkLmV4dGVuZCh7dXJsOmMsdHlwZTpiLGRhdGFUeXBlOmcsZGF0YTplLHN1Y2Nlc3M6Zn0sZC5pc1BsYWluT2JqZWN0KGMpJiZjKSl9fSk7ZC5hamF4UHJlZmlsdGVyKGZ1bmN0aW9uKGEpe2Zvcih2YXIgYiBpbiBhLmhlYWRlcnMpImNvbnRlbnQtdHlwZSI9PT1iLnRvTG93ZXJDYXNlKCkmJihhLmNvbnRlbnRUeXBlPWEuaGVhZGVyc1tiXXx8IiIpfSk7ZC5fZXZhbFVybD1mdW5jdGlvbihhLGIsYyl7cmV0dXJuIGQuYWpheCh7dXJsOmEsdHlwZToiR0VUIixkYXRhVHlwZToic2NyaXB0IixjYWNoZTohMCxhc3luYzohMSxnbG9iYWw6ITEsY29udmVydGVyczp7InRleHQgc2NyaXB0IjpmdW5jdGlvbigpe319LGRhdGFGaWx0ZXI6ZnVuY3Rpb24oZSl7ZC5nbG9iYWxFdmFsKGUsYixjKX19KX07ZC5mbi5leHRlbmQoe3dyYXBBbGw6ZnVuY3Rpb24oYSl7dmFyIGI7CnJldHVybiB0aGlzWzBdJiYoTShhKSYmKGE9YS5jYWxsKHRoaXNbMF0pKSxiPWQoYSx0aGlzWzBdLm93bmVyRG9jdW1lbnQpLmVxKDApLmNsb25lKCEwKSx0aGlzWzBdLnBhcmVudE5vZGUmJmIuaW5zZXJ0QmVmb3JlKHRoaXNbMF0pLGIubWFwKGZ1bmN0aW9uKCl7Zm9yKHZhciBjPXRoaXM7Yy5maXJzdEVsZW1lbnRDaGlsZDspYz1jLmZpcnN0RWxlbWVudENoaWxkO3JldHVybiBjfSkuYXBwZW5kKHRoaXMpKSx0aGlzfSx3cmFwSW5uZXI6ZnVuY3Rpb24oYSl7cmV0dXJuIE0oYSk\/dGhpcy5lYWNoKGZ1bmN0aW9uKGIpe2QodGhpcykud3JhcElubmVyKGEuY2FsbCh0aGlzLGIpKX0pOnRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciBiPWQodGhpcyksYz1iLmNvbnRlbnRzKCk7Yy5sZW5ndGg\/Yy53cmFwQWxsKGEpOmIuYXBwZW5kKGEpfSl9LHdyYXA6ZnVuY3Rpb24oYSl7dmFyIGI9TShhKTtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKGMpe2QodGhpcykud3JhcEFsbChiP2EuY2FsbCh0aGlzLApjKTphKX0pfSx1bndyYXA6ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMucGFyZW50KGEpLm5vdCgiYm9keSIpLmVhY2goZnVuY3Rpb24oKXtkKHRoaXMpLnJlcGxhY2VXaXRoKHRoaXMuY2hpbGROb2Rlcyl9KSx0aGlzfX0pO2QuZXhwci5wc2V1ZG9zLmhpZGRlbj1mdW5jdGlvbihhKXtyZXR1cm4hZC5leHByLnBzZXVkb3MudmlzaWJsZShhKX07ZC5leHByLnBzZXVkb3MudmlzaWJsZT1mdW5jdGlvbihhKXtyZXR1cm4hIShhLm9mZnNldFdpZHRofHxhLm9mZnNldEhlaWdodHx8YS5nZXRDbGllbnRSZWN0cygpLmxlbmd0aCl9O2QuYWpheFNldHRpbmdzLnhocj1mdW5jdGlvbigpe3RyeXtyZXR1cm4gbmV3IG4uWE1MSHR0cFJlcXVlc3R9Y2F0Y2goYSl7fX07dmFyIEZkPXswOjIwMCwxMjIzOjIwNH0sTGI9ZC5hamF4U2V0dGluZ3MueGhyKCk7Ti5jb3JzPSEhTGImJiJ3aXRoQ3JlZGVudGlhbHMiaW4gTGI7Ti5hamF4PUxiPSEhTGI7ZC5hamF4VHJhbnNwb3J0KGZ1bmN0aW9uKGEpe3ZhciBiLApjO2lmKE4uY29yc3x8TGImJiFhLmNyb3NzRG9tYWluKXJldHVybntzZW5kOmZ1bmN0aW9uKGUsZil7dmFyIGcsaD1hLnhocigpO2lmKGgub3BlbihhLnR5cGUsYS51cmwsYS5hc3luYyxhLnVzZXJuYW1lLGEucGFzc3dvcmQpLGEueGhyRmllbGRzKWZvcihnIGluIGEueGhyRmllbGRzKWhbZ109YS54aHJGaWVsZHNbZ107Zm9yKGcgaW4gYS5taW1lVHlwZSYmaC5vdmVycmlkZU1pbWVUeXBlJiZoLm92ZXJyaWRlTWltZVR5cGUoYS5taW1lVHlwZSksYS5jcm9zc0RvbWFpbnx8ZVsiWC1SZXF1ZXN0ZWQtV2l0aCJdfHwoZVsiWC1SZXF1ZXN0ZWQtV2l0aCJdPSJYTUxIdHRwUmVxdWVzdCIpLGUpaC5zZXRSZXF1ZXN0SGVhZGVyKGcsZVtnXSk7Yj1mdW5jdGlvbihtKXtyZXR1cm4gZnVuY3Rpb24oKXtiJiYoYj1jPWgub25sb2FkPWgub25lcnJvcj1oLm9uYWJvcnQ9aC5vbnRpbWVvdXQ9aC5vbnJlYWR5c3RhdGVjaGFuZ2U9bnVsbCwiYWJvcnQiPT09bT9oLmFib3J0KCk6ImVycm9yIj09PW0\/CiJudW1iZXIiIT10eXBlb2YgaC5zdGF0dXM\/ZigwLCJlcnJvciIpOmYoaC5zdGF0dXMsaC5zdGF0dXNUZXh0KTpmKEZkW2guc3RhdHVzXXx8aC5zdGF0dXMsaC5zdGF0dXNUZXh0LCJ0ZXh0IiE9PShoLnJlc3BvbnNlVHlwZXx8InRleHQiKXx8InN0cmluZyIhPXR5cGVvZiBoLnJlc3BvbnNlVGV4dD97YmluYXJ5OmgucmVzcG9uc2V9Ont0ZXh0OmgucmVzcG9uc2VUZXh0fSxoLmdldEFsbFJlc3BvbnNlSGVhZGVycygpKSl9fTtoLm9ubG9hZD1iKCk7Yz1oLm9uZXJyb3I9aC5vbnRpbWVvdXQ9YigiZXJyb3IiKTt2b2lkIDAhPT1oLm9uYWJvcnQ\/aC5vbmFib3J0PWM6aC5vbnJlYWR5c3RhdGVjaGFuZ2U9ZnVuY3Rpb24oKXs0PT09aC5yZWFkeVN0YXRlJiZuLnNldFRpbWVvdXQoZnVuY3Rpb24oKXtiJiZjKCl9KX07Yj1iKCJhYm9ydCIpO3RyeXtoLnNlbmQoYS5oYXNDb250ZW50JiZhLmRhdGF8fG51bGwpfWNhdGNoKG0pe2lmKGIpdGhyb3cgbTt9fSxhYm9ydDpmdW5jdGlvbigpe2ImJgpiKCl9fX0pO2QuYWpheFByZWZpbHRlcihmdW5jdGlvbihhKXthLmNyb3NzRG9tYWluJiYoYS5jb250ZW50cy5zY3JpcHQ9ITEpfSk7ZC5hamF4U2V0dXAoe2FjY2VwdHM6e3NjcmlwdDoidGV4dC9qYXZhc2NyaXB0LCBhcHBsaWNhdGlvbi9qYXZhc2NyaXB0LCBhcHBsaWNhdGlvbi9lY21hc2NyaXB0LCBhcHBsaWNhdGlvbi94LWVjbWFzY3JpcHQifSxjb250ZW50czp7c2NyaXB0Oi9cYig\/OmphdmF8ZWNtYSlzY3JpcHRcYi99LGNvbnZlcnRlcnM6eyJ0ZXh0IHNjcmlwdCI6ZnVuY3Rpb24oYSl7cmV0dXJuIGQuZ2xvYmFsRXZhbChhKSxhfX19KTtkLmFqYXhQcmVmaWx0ZXIoInNjcmlwdCIsZnVuY3Rpb24oYSl7dm9pZCAwPT09YS5jYWNoZSYmKGEuY2FjaGU9ITEpO2EuY3Jvc3NEb21haW4mJihhLnR5cGU9IkdFVCIpfSk7ZC5hamF4VHJhbnNwb3J0KCJzY3JpcHQiLGZ1bmN0aW9uKGEpe3ZhciBiLGM7aWYoYS5jcm9zc0RvbWFpbnx8YS5zY3JpcHRBdHRycylyZXR1cm57c2VuZDpmdW5jdGlvbihlLApmKXtiPWQoIjxzY3JpcHQ+IikuYXR0cihhLnNjcmlwdEF0dHJzfHx7fSkucHJvcCh7Y2hhcnNldDphLnNjcmlwdENoYXJzZXQsc3JjOmEudXJsfSkub24oImxvYWQgZXJyb3IiLGM9ZnVuY3Rpb24oZyl7Yi5yZW1vdmUoKTtjPW51bGw7ZyYmZigiZXJyb3IiPT09Zy50eXBlPzQwNDoyMDAsZy50eXBlKX0pO0wuaGVhZC5hcHBlbmRDaGlsZChiWzBdKX0sYWJvcnQ6ZnVuY3Rpb24oKXtjJiZjKCl9fX0pO3ZhciBKYyxLYz1bXSxqYz0vKD0pXD8oPz0mfCQpfFw\/XD8vO2QuYWpheFNldHVwKHtqc29ucDoiY2FsbGJhY2siLGpzb25wQ2FsbGJhY2s6ZnVuY3Rpb24oKXt2YXIgYT1LYy5wb3AoKXx8ZC5leHBhbmRvKyJfIitEYysrO3JldHVybiB0aGlzW2FdPSEwLGF9fSk7ZC5hamF4UHJlZmlsdGVyKCJqc29uIGpzb25wIixmdW5jdGlvbihhLGIsYyl7dmFyIGUsZixnLGg9ITEhPT1hLmpzb25wJiYoamMudGVzdChhLnVybCk\/InVybCI6InN0cmluZyI9PXR5cGVvZiBhLmRhdGEmJjA9PT0oYS5jb250ZW50VHlwZXx8CiIiKS5pbmRleE9mKCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiKSYmamMudGVzdChhLmRhdGEpJiYiZGF0YSIpO2lmKGh8fCJqc29ucCI9PT1hLmRhdGFUeXBlc1swXSlyZXR1cm4gZT1hLmpzb25wQ2FsbGJhY2s9TShhLmpzb25wQ2FsbGJhY2spP2EuanNvbnBDYWxsYmFjaygpOmEuanNvbnBDYWxsYmFjayxoP2FbaF09YVtoXS5yZXBsYWNlKGpjLCIkMSIrZSk6ITEhPT1hLmpzb25wJiYoYS51cmwrPShoYy50ZXN0KGEudXJsKT8iJiI6Ij8iKSthLmpzb25wKyI9IitlKSxhLmNvbnZlcnRlcnNbInNjcmlwdCBqc29uIl09ZnVuY3Rpb24oKXtyZXR1cm4gZ3x8ZC5lcnJvcihlKyIgd2FzIG5vdCBjYWxsZWQiKSxnWzBdfSxhLmRhdGFUeXBlc1swXT0ianNvbiIsZj1uW2VdLG5bZV09ZnVuY3Rpb24oKXtnPWFyZ3VtZW50c30sYy5hbHdheXMoZnVuY3Rpb24oKXt2b2lkIDA9PT1mP2QobikucmVtb3ZlUHJvcChlKTpuW2VdPWY7YVtlXSYmKGEuanNvbnBDYWxsYmFjaz1iLmpzb25wQ2FsbGJhY2ssCktjLnB1c2goZSkpO2cmJk0oZikmJmYoZ1swXSk7Zz1mPXZvaWQgMH0pLCJzY3JpcHQifSk7Ti5jcmVhdGVIVE1MRG9jdW1lbnQ9KChKYz1MLmltcGxlbWVudGF0aW9uLmNyZWF0ZUhUTUxEb2N1bWVudCgiIikuYm9keSkuaW5uZXJIVE1MPSI8Zm9ybT48L2Zvcm0+PGZvcm0+PC9mb3JtPiIsMj09PUpjLmNoaWxkTm9kZXMubGVuZ3RoKTtkLnBhcnNlSFRNTD1mdW5jdGlvbihhLGIsYyl7cmV0dXJuInN0cmluZyIhPXR5cGVvZiBhP1tdOigiYm9vbGVhbiI9PXR5cGVvZiBiJiYoYz1iLGI9ITEpLGJ8fChOLmNyZWF0ZUhUTUxEb2N1bWVudD8oKGU9KGI9TC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVIVE1MRG9jdW1lbnQoIiIpKS5jcmVhdGVFbGVtZW50KCJiYXNlIikpLmhyZWY9TC5sb2NhdGlvbi5ocmVmLGIuaGVhZC5hcHBlbmRDaGlsZChlKSk6Yj1MKSxnPSFjJiZbXSwoZj15Yy5leGVjKGEpKT9bYi5jcmVhdGVFbGVtZW50KGZbMV0pXTooZj1SYihbYV0sYixnKSxnJiZnLmxlbmd0aCYmZChnKS5yZW1vdmUoKSwKZC5tZXJnZShbXSxmLmNoaWxkTm9kZXMpKSk7dmFyIGUsZixnfTtkLmZuLmxvYWQ9ZnVuY3Rpb24oYSxiLGMpe3ZhciBlLGYsZyxoPXRoaXMsbT1hLmluZGV4T2YoIiAiKTtyZXR1cm4tMTxtJiYoZT1DKGEuc2xpY2UobSkpLGE9YS5zbGljZSgwLG0pKSxNKGIpPyhjPWIsYj12b2lkIDApOmImJiJvYmplY3QiPT10eXBlb2YgYiYmKGY9IlBPU1QiKSwwPGgubGVuZ3RoJiZkLmFqYXgoe3VybDphLHR5cGU6Znx8IkdFVCIsZGF0YVR5cGU6Imh0bWwiLGRhdGE6Yn0pLmRvbmUoZnVuY3Rpb24obCl7Zz1hcmd1bWVudHM7aC5odG1sKGU\/ZCgiPGRpdj4iKS5hcHBlbmQoZC5wYXJzZUhUTUwobCkpLmZpbmQoZSk6bCl9KS5hbHdheXMoYyYmZnVuY3Rpb24obCx0KXtoLmVhY2goZnVuY3Rpb24oKXtjLmFwcGx5KHRoaXMsZ3x8W2wucmVzcG9uc2VUZXh0LHQsbF0pfSl9KSx0aGlzfTtkLmV4cHIucHNldWRvcy5hbmltYXRlZD1mdW5jdGlvbihhKXtyZXR1cm4gZC5ncmVwKGQudGltZXJzLGZ1bmN0aW9uKGIpe3JldHVybiBhPT09CmIuZWxlbX0pLmxlbmd0aH07ZC5vZmZzZXQ9e3NldE9mZnNldDpmdW5jdGlvbihhLGIsYyl7dmFyIGUsZixnLGg9ZC5jc3MoYSwicG9zaXRpb24iKSxtPWQoYSksbD17fTsic3RhdGljIj09PWgmJihhLnN0eWxlLnBvc2l0aW9uPSJyZWxhdGl2ZSIpO3ZhciB0PW0ub2Zmc2V0KCksdz1kLmNzcyhhLCJ0b3AiKSxyPWQuY3NzKGEsImxlZnQiKTsoImFic29sdXRlIj09PWh8fCJmaXhlZCI9PT1oKSYmLTE8KHcrcikuaW5kZXhPZigiYXV0byIpPyhnPShlPW0ucG9zaXRpb24oKSkudG9wLGY9ZS5sZWZ0KTooZz1wYXJzZUZsb2F0KHcpfHwwLGY9cGFyc2VGbG9hdChyKXx8MCk7TShiKSYmKGI9Yi5jYWxsKGEsYyxkLmV4dGVuZCh7fSx0KSkpO251bGwhPWIudG9wJiYobC50b3A9Yi50b3AtdC50b3ArZyk7bnVsbCE9Yi5sZWZ0JiYobC5sZWZ0PWIubGVmdC10LmxlZnQrZik7InVzaW5nImluIGI\/Yi51c2luZy5jYWxsKGEsbCk6bS5jc3MobCl9fTtkLmZuLmV4dGVuZCh7b2Zmc2V0OmZ1bmN0aW9uKGEpe2lmKGFyZ3VtZW50cy5sZW5ndGgpcmV0dXJuIHZvaWQgMD09PQphP3RoaXM6dGhpcy5lYWNoKGZ1bmN0aW9uKGYpe2Qub2Zmc2V0LnNldE9mZnNldCh0aGlzLGEsZil9KTt2YXIgYixjLGU9dGhpc1swXTtyZXR1cm4gZT9lLmdldENsaWVudFJlY3RzKCkubGVuZ3RoPyhiPWUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksYz1lLm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXcse3RvcDpiLnRvcCtjLnBhZ2VZT2Zmc2V0LGxlZnQ6Yi5sZWZ0K2MucGFnZVhPZmZzZXR9KTp7dG9wOjAsbGVmdDowfTp2b2lkIDB9LHBvc2l0aW9uOmZ1bmN0aW9uKCl7aWYodGhpc1swXSl7dmFyIGEsYj10aGlzWzBdLGM9e3RvcDowLGxlZnQ6MH07aWYoImZpeGVkIj09PWQuY3NzKGIsInBvc2l0aW9uIikpdmFyIGU9Yi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtlbHNle2U9dGhpcy5vZmZzZXQoKTt2YXIgZj1iLm93bmVyRG9jdW1lbnQ7Zm9yKGE9Yi5vZmZzZXRQYXJlbnR8fGYuZG9jdW1lbnRFbGVtZW50O2EmJihhPT09Zi5ib2R5fHxhPT09Zi5kb2N1bWVudEVsZW1lbnQpJiYKInN0YXRpYyI9PT1kLmNzcyhhLCJwb3NpdGlvbiIpOylhPWEucGFyZW50Tm9kZTthJiZhIT09YiYmMT09PWEubm9kZVR5cGUmJigoYz1kKGEpLm9mZnNldCgpKS50b3ArPWQuY3NzKGEsImJvcmRlclRvcFdpZHRoIiwhMCksYy5sZWZ0Kz1kLmNzcyhhLCJib3JkZXJMZWZ0V2lkdGgiLCEwKSl9cmV0dXJue3RvcDplLnRvcC1jLnRvcC1kLmNzcyhiLCJtYXJnaW5Ub3AiLCEwKSxsZWZ0OmUubGVmdC1jLmxlZnQtZC5jc3MoYiwibWFyZ2luTGVmdCIsITApfX19LG9mZnNldFBhcmVudDpmdW5jdGlvbigpe3JldHVybiB0aGlzLm1hcChmdW5jdGlvbigpe2Zvcih2YXIgYT10aGlzLm9mZnNldFBhcmVudDthJiYic3RhdGljIj09PWQuY3NzKGEsInBvc2l0aW9uIik7KWE9YS5vZmZzZXRQYXJlbnQ7cmV0dXJuIGF8fGpifSl9fSk7ZC5lYWNoKHtzY3JvbGxMZWZ0OiJwYWdlWE9mZnNldCIsc2Nyb2xsVG9wOiJwYWdlWU9mZnNldCJ9LGZ1bmN0aW9uKGEsYil7dmFyIGM9InBhZ2VZT2Zmc2V0Ij09PQpiO2QuZm5bYV09ZnVuY3Rpb24oZSl7cmV0dXJuIFhhKHRoaXMsZnVuY3Rpb24oZixnLGgpe3ZhciBtO2lmKGtiKGYpP209Zjo5PT09Zi5ub2RlVHlwZSYmKG09Zi5kZWZhdWx0Vmlldyksdm9pZCAwPT09aClyZXR1cm4gbT9tW2JdOmZbZ107bT9tLnNjcm9sbFRvKGM\/bS5wYWdlWE9mZnNldDpoLGM\/aDptLnBhZ2VZT2Zmc2V0KTpmW2ddPWh9LGEsZSxhcmd1bWVudHMubGVuZ3RoKX19KTtkLmVhY2goWyJ0b3AiLCJsZWZ0Il0sZnVuY3Rpb24oYSxiKXtkLmNzc0hvb2tzW2JdPVZiKE4ucGl4ZWxQb3NpdGlvbixmdW5jdGlvbihjLGUpe2lmKGUpcmV0dXJuIGU9S2EoYyxiKSxiYy50ZXN0KGUpP2QoYykucG9zaXRpb24oKVtiXSsicHgiOmV9KX0pO2QuZWFjaCh7SGVpZ2h0OiJoZWlnaHQiLFdpZHRoOiJ3aWR0aCJ9LGZ1bmN0aW9uKGEsYil7ZC5lYWNoKHtwYWRkaW5nOiJpbm5lciIrYSxjb250ZW50OmIsIiI6Im91dGVyIithfSxmdW5jdGlvbihjLGUpe2QuZm5bZV09ZnVuY3Rpb24oZiwKZyl7dmFyIGg9YXJndW1lbnRzLmxlbmd0aCYmKGN8fCJib29sZWFuIiE9dHlwZW9mIGYpLG09Y3x8KCEwPT09Znx8ITA9PT1nPyJtYXJnaW4iOiJib3JkZXIiKTtyZXR1cm4gWGEodGhpcyxmdW5jdGlvbihsLHQsdyl7dmFyIHI7cmV0dXJuIGtiKGwpPzA9PT1lLmluZGV4T2YoIm91dGVyIik\/bFsiaW5uZXIiK2FdOmwuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50WyJjbGllbnQiK2FdOjk9PT1sLm5vZGVUeXBlPyhyPWwuZG9jdW1lbnRFbGVtZW50LE1hdGgubWF4KGwuYm9keVsic2Nyb2xsIithXSxyWyJzY3JvbGwiK2FdLGwuYm9keVsib2Zmc2V0IithXSxyWyJvZmZzZXQiK2FdLHJbImNsaWVudCIrYV0pKTp2b2lkIDA9PT13P2QuY3NzKGwsdCxtKTpkLnN0eWxlKGwsdCx3LG0pfSxiLGg\/Zjp2b2lkIDAsaCl9fSl9KTtkLmVhY2goImFqYXhTdGFydCBhamF4U3RvcCBhamF4Q29tcGxldGUgYWpheEVycm9yIGFqYXhTdWNjZXNzIGFqYXhTZW5kIi5zcGxpdCgiICIpLGZ1bmN0aW9uKGEsCmIpe2QuZm5bYl09ZnVuY3Rpb24oYyl7cmV0dXJuIHRoaXMub24oYixjKX19KTtkLmZuLmV4dGVuZCh7YmluZDpmdW5jdGlvbihhLGIsYyl7cmV0dXJuIHRoaXMub24oYSxudWxsLGIsYyl9LHVuYmluZDpmdW5jdGlvbihhLGIpe3JldHVybiB0aGlzLm9mZihhLG51bGwsYil9LGRlbGVnYXRlOmZ1bmN0aW9uKGEsYixjLGUpe3JldHVybiB0aGlzLm9uKGIsYSxjLGUpfSx1bmRlbGVnYXRlOmZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gMT09PWFyZ3VtZW50cy5sZW5ndGg\/dGhpcy5vZmYoYSwiKioiKTp0aGlzLm9mZihiLGF8fCIqKiIsYyl9LGhvdmVyOmZ1bmN0aW9uKGEsYil7cmV0dXJuIHRoaXMubW91c2VlbnRlcihhKS5tb3VzZWxlYXZlKGJ8fGEpfX0pO2QuZWFjaCgiYmx1ciBmb2N1cyBmb2N1c2luIGZvY3Vzb3V0IHJlc2l6ZSBzY3JvbGwgY2xpY2sgZGJsY2xpY2sgbW91c2Vkb3duIG1vdXNldXAgbW91c2Vtb3ZlIG1vdXNlb3ZlciBtb3VzZW91dCBtb3VzZWVudGVyIG1vdXNlbGVhdmUgY2hhbmdlIHNlbGVjdCBzdWJtaXQga2V5ZG93biBrZXlwcmVzcyBrZXl1cCBjb250ZXh0bWVudSIuc3BsaXQoIiAiKSwKZnVuY3Rpb24oYSxiKXtkLmZuW2JdPWZ1bmN0aW9uKGMsZSl7cmV0dXJuIDA8YXJndW1lbnRzLmxlbmd0aD90aGlzLm9uKGIsbnVsbCxjLGUpOnRoaXMudHJpZ2dlcihiKX19KTt2YXIgR2Q9L15bXHNcdUZFRkZceEEwXSt8KFteXHNcdUZFRkZceEEwXSlbXHNcdUZFRkZceEEwXSskL2c7ZC5wcm94eT1mdW5jdGlvbihhLGIpe3ZhciBjLGUsZjtpZigic3RyaW5nIj09dHlwZW9mIGImJihjPWFbYl0sYj1hLGE9YyksTShhKSlyZXR1cm4gZT15YS5jYWxsKGFyZ3VtZW50cywyKSwoZj1mdW5jdGlvbigpe3JldHVybiBhLmFwcGx5KGJ8fHRoaXMsZS5jb25jYXQoeWEuY2FsbChhcmd1bWVudHMpKSl9KS5ndWlkPWEuZ3VpZD1hLmd1aWR8fGQuZ3VpZCsrLGZ9O2QuaG9sZFJlYWR5PWZ1bmN0aW9uKGEpe2E\/ZC5yZWFkeVdhaXQrKzpkLnJlYWR5KCEwKX07ZC5pc0FycmF5PUFycmF5LmlzQXJyYXk7ZC5wYXJzZUpTT049SlNPTi5wYXJzZTtkLm5vZGVOYW1lPVg7ZC5pc0Z1bmN0aW9uPU07ZC5pc1dpbmRvdz0Ka2I7ZC5jYW1lbENhc2U9QmE7ZC50eXBlPVU7ZC5ub3c9RGF0ZS5ub3c7ZC5pc051bWVyaWM9ZnVuY3Rpb24oYSl7dmFyIGI9ZC50eXBlKGEpO3JldHVybigibnVtYmVyIj09PWJ8fCJzdHJpbmciPT09YikmJiFpc05hTihhLXBhcnNlRmxvYXQoYSkpfTtkLnRyaW09ZnVuY3Rpb24oYSl7cmV0dXJuIG51bGw9PWE\/IiI6KGErIiIpLnJlcGxhY2UoR2QsIiQxIil9OyJmdW5jdGlvbiI9PXR5cGVvZiBkZWZpbmUmJmRlZmluZS5hbWQmJmRlZmluZSgianF1ZXJ5IixbXSxmdW5jdGlvbigpe3JldHVybiBkfSk7dmFyIEhkPW4ualF1ZXJ5LElkPW4uJDtyZXR1cm4gZC5ub0NvbmZsaWN0PWZ1bmN0aW9uKGEpe3JldHVybiBuLiQ9PT1kJiYobi4kPUlkKSxhJiZuLmpRdWVyeT09PWQmJihuLmpRdWVyeT1IZCksZH0sInVuZGVmaW5lZCI9PXR5cGVvZiBkYSYmKG4ualF1ZXJ5PW4uJD1kKSxkfSk7dmFyIG1hdGNoZWQsYnJvd3NlcjsKalF1ZXJ5LnVhTWF0Y2g9ZnVuY3Rpb24obil7bj1uLnRvTG93ZXJDYXNlKCk7bj0vKGNocm9tZSlbIFwvXShbXHcuXSspLy5leGVjKG4pfHwvKHdlYmtpdClbIFwvXShbXHcuXSspLy5leGVjKG4pfHwvKG9wZXJhKSg\/Oi4qdmVyc2lvbnwpWyBcL10oW1x3Ll0rKS8uZXhlYyhuKXx8Lyhtc2llKSAoW1x3Ll0rKS8uZXhlYyhuKXx8MD5uLmluZGV4T2YoImNvbXBhdGlibGUiKSYmLyhtb3ppbGxhKSg\/Oi4qPyBydjooW1x3Ll0rKXwpLy5leGVjKG4pfHxbXTtyZXR1cm57YnJvd3NlcjpuWzFdfHwiIix2ZXJzaW9uOm5bMl18fCIwIn19O21hdGNoZWQ9alF1ZXJ5LnVhTWF0Y2gobmF2aWdhdG9yLnVzZXJBZ2VudCk7YnJvd3Nlcj17fTttYXRjaGVkLmJyb3dzZXImJihicm93c2VyW21hdGNoZWQuYnJvd3Nlcl09ITAsYnJvd3Nlci52ZXJzaW9uPW1hdGNoZWQudmVyc2lvbik7YnJvd3Nlci5jaHJvbWU\/YnJvd3Nlci53ZWJraXQ9ITA6YnJvd3Nlci53ZWJraXQmJihicm93c2VyLnNhZmFyaT0hMCk7CmpRdWVyeS5icm93c2VyPWJyb3dzZXI7CihmdW5jdGlvbihuKXsiZnVuY3Rpb24iPT09dHlwZW9mIGRlZmluZSYmZGVmaW5lLmFtZD9kZWZpbmUoWyJqcXVlcnkiXSxmdW5jdGlvbihkYSl7cmV0dXJuIG4oZGEsd2luZG93KX0pOiJvYmplY3QiPT09dHlwZW9mIG1vZHVsZSYmbW9kdWxlLmV4cG9ydHM\/bW9kdWxlLmV4cG9ydHM9bihyZXF1aXJlKCJqcXVlcnkiKSx3aW5kb3cpOm4oalF1ZXJ5LHdpbmRvdyl9KShmdW5jdGlvbihuLGRhKXtmdW5jdGlvbiB3YSh1KXthOnt2YXIgeD0vXihcZCspXC4oXGQrKVwuKFxkKykvLEM9eC5leGVjKG4uZm4uanF1ZXJ5KXx8W107eD14LmV4ZWModSl8fFtdO2Zvcih1PTE7Mz49dTt1Kyspe2lmKCtDW3VdPit4W3VdKXtDPTE7YnJlYWsgYX1pZigrQ1t1XTwreFt1XSl7Qz0tMTticmVhayBhfX1DPTB9cmV0dXJuIDA8PUN9ZnVuY3Rpb24gVSh1LHgpe3ZhciBDPWRhLmNvbnNvbGU7IW4ubWlncmF0ZUlzUGF0Y2hFbmFibGVkKHUpfHxuLm1pZ3JhdGVEZWR1cGxpY2F0ZVdhcm5pbmdzJiZtYlt4XXx8CihtYlt4XT0hMCxuLm1pZ3JhdGVXYXJuaW5ncy5wdXNoKHgrIiBbIit1KyJdIiksQyYmQy53YXJuJiYhbi5taWdyYXRlTXV0ZSYmKEMud2FybigiSlFNSUdSQVRFOiAiK3gpLG4ubWlncmF0ZVRyYWNlJiZDLnRyYWNlJiZDLnRyYWNlKCkpKX1mdW5jdGlvbiBlYih1LHgsQyxILFApe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh1LHgse2NvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe1UoSCxQKTtyZXR1cm4gQ30sc2V0OmZ1bmN0aW9uKGVhKXtVKEgsUCk7Qz1lYX19KX1mdW5jdGlvbiBYKHUseCxDLEgsUCl7dmFyIGVhLFFhPXVbeF07dVt4XT1mdW5jdGlvbigpe1AmJlUoSCxQKTtlYT1uLm1pZ3JhdGVJc1BhdGNoRW5hYmxlZChIKT9DOlFhfHxuLm5vb3A7cmV0dXJuIGVhLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19ZnVuY3Rpb24gYmEodSx4LEMsSCxQKXtpZighUCl0aHJvdyBFcnJvcigiTm8gd2FybmluZyBtZXNzYWdlIHByb3ZpZGVkIik7cmV0dXJuIFgodSwKeCxDLEgsUCl9ZnVuY3Rpb24gamEodSx4LEMsSCl7cmV0dXJuIFgodSx4LEMsSCl9ZnVuY3Rpb24gbGIodSl7cmV0dXJuIHUucmVwbGFjZSgvLShbYS16XSkvZyxmdW5jdGlvbih4LEMpe3JldHVybiBDLnRvVXBwZXJDYXNlKCl9KX1mdW5jdGlvbiBZYSh1KXtyZXR1cm4gcGIudGVzdCh1KSYmU2IudGVzdCh1WzBdLnRvVXBwZXJDYXNlKCkrdS5zbGljZSgxKSl9bi5taWdyYXRlVmVyc2lvbj0iMy40LjEiO3ZhciBaYT1PYmplY3QuY3JlYXRlKG51bGwpO24ubWlncmF0ZURpc2FibGVQYXRjaGVzPWZ1bmN0aW9uKCl7dmFyIHU7Zm9yKHU9MDt1PGFyZ3VtZW50cy5sZW5ndGg7dSsrKVphW2FyZ3VtZW50c1t1XV09ITB9O24ubWlncmF0ZUVuYWJsZVBhdGNoZXM9ZnVuY3Rpb24oKXt2YXIgdTtmb3IodT0wO3U8YXJndW1lbnRzLmxlbmd0aDt1KyspZGVsZXRlIFphW2FyZ3VtZW50c1t1XV19O24ubWlncmF0ZUlzUGF0Y2hFbmFibGVkPWZ1bmN0aW9uKHUpe3JldHVybiFaYVt1XX07ZGEuY29uc29sZSYmCmRhLmNvbnNvbGUubG9nJiYobiYmd2EoIjMuMC4wIikmJiF3YSgiNS4wLjAiKXx8ZGEuY29uc29sZS5sb2coIkpRTUlHUkFURTogalF1ZXJ5IDMueC00LnggUkVRVUlSRUQiKSxuLm1pZ3JhdGVXYXJuaW5ncyYmZGEuY29uc29sZS5sb2coIkpRTUlHUkFURTogTWlncmF0ZSBwbHVnaW4gbG9hZGVkIG11bHRpcGxlIHRpbWVzIiksZGEuY29uc29sZS5sb2coIkpRTUlHUkFURTogTWlncmF0ZSBpcyBpbnN0YWxsZWQiKyhuLm1pZ3JhdGVNdXRlPyIiOiIgd2l0aCBsb2dnaW5nIGFjdGl2ZSIpKyIsIHZlcnNpb24gIituLm1pZ3JhdGVWZXJzaW9uKSk7dmFyIG1iPXt9O24ubWlncmF0ZURlZHVwbGljYXRlV2FybmluZ3M9ITA7bi5taWdyYXRlV2FybmluZ3M9W107dm9pZCAwPT09bi5taWdyYXRlVHJhY2UmJihuLm1pZ3JhdGVUcmFjZT0hMCk7bi5taWdyYXRlUmVzZXQ9ZnVuY3Rpb24oKXttYj17fTtuLm1pZ3JhdGVXYXJuaW5ncy5sZW5ndGg9MH07IkJhY2tDb21wYXQiPT09ZGEuZG9jdW1lbnQuY29tcGF0TW9kZSYmClUoInF1aXJrcyIsImpRdWVyeSBpcyBub3QgY29tcGF0aWJsZSB3aXRoIFF1aXJrcyBNb2RlIik7dmFyIE9hLE5iPXt9LEJhPW4uZm4uaW5pdCxKYT1uLmZpbmQsT2I9L1xbKFxzKlstXHddK1xzKikoW358XiQqXT89KVxzKihbLVx3I10qPyNbLVx3I10qKVxzKlxdLyxQYj0vXFsoXHMqWy1cd10rXHMqKShbfnxeJCpdPz0pXHMqKFstXHcjXSo\/I1stXHcjXSopXHMqXF0vZywkYT0vXltcc1x1RkVGRlx4QTBdK3woW15cc1x1RkVGRlx4QTBdKVtcc1x1RkVGRlx4QTBdKyQvZztqYShuLmZuLCJpbml0IixmdW5jdGlvbih1KXt2YXIgeD1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMpO24ubWlncmF0ZUlzUGF0Y2hFbmFibGVkKCJzZWxlY3Rvci1lbXB0eS1pZCIpJiYic3RyaW5nIj09PXR5cGVvZiB1JiYiIyI9PT11JiYoVSgic2VsZWN0b3ItZW1wdHktaWQiLCJqUXVlcnkoICcjJyApIGlzIG5vdCBhIHZhbGlkIHNlbGVjdG9yIikseFswXT1bXSk7cmV0dXJuIEJhLmFwcGx5KHRoaXMsCngpfSwic2VsZWN0b3ItZW1wdHktaWQiKTtuLmZuLmluaXQucHJvdG90eXBlPW4uZm47amEobiwiZmluZCIsZnVuY3Rpb24odSl7dmFyIHg9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzKTtpZigic3RyaW5nIj09PXR5cGVvZiB1JiZPYi50ZXN0KHUpKXRyeXtkYS5kb2N1bWVudC5xdWVyeVNlbGVjdG9yKHUpfWNhdGNoKEMpe3U9dS5yZXBsYWNlKFBiLGZ1bmN0aW9uKEgsUCxlYSxRYSl7cmV0dXJuIlsiK1ArZWErJyInK1FhKyciXSd9KTt0cnl7ZGEuZG9jdW1lbnQucXVlcnlTZWxlY3Rvcih1KSxVKCJzZWxlY3Rvci1oYXNoIiwiQXR0cmlidXRlIHNlbGVjdG9yIHdpdGggJyMnIG11c3QgYmUgcXVvdGVkOiAiK3hbMF0pLHhbMF09dX1jYXRjaChIKXtVKCJzZWxlY3Rvci1oYXNoIiwiQXR0cmlidXRlIHNlbGVjdG9yIHdpdGggJyMnIHdhcyBub3QgZml4ZWQ6ICIreFswXSl9fXJldHVybiBKYS5hcHBseSh0aGlzLHgpfSwic2VsZWN0b3ItaGFzaCIpO2ZvcihPYSBpbiBKYSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoSmEsCk9hKSYmKG4uZmluZFtPYV09SmFbT2FdKTtiYShuLmZuLCJzaXplIixmdW5jdGlvbigpe3JldHVybiB0aGlzLmxlbmd0aH0sInNpemUiLCJqUXVlcnkuZm4uc2l6ZSgpIGlzIGRlcHJlY2F0ZWQgYW5kIHJlbW92ZWQ7IHVzZSB0aGUgLmxlbmd0aCBwcm9wZXJ0eSIpO2JhKG4sInBhcnNlSlNPTiIsZnVuY3Rpb24oKXtyZXR1cm4gSlNPTi5wYXJzZS5hcHBseShudWxsLGFyZ3VtZW50cyl9LCJwYXJzZUpTT04iLCJqUXVlcnkucGFyc2VKU09OIGlzIGRlcHJlY2F0ZWQ7IHVzZSBKU09OLnBhcnNlIik7YmEobiwiaG9sZFJlYWR5IixuLmhvbGRSZWFkeSwiaG9sZFJlYWR5IiwialF1ZXJ5LmhvbGRSZWFkeSBpcyBkZXByZWNhdGVkIik7YmEobiwidW5pcXVlIixuLnVuaXF1ZVNvcnQsInVuaXF1ZSIsImpRdWVyeS51bmlxdWUgaXMgZGVwcmVjYXRlZDsgdXNlIGpRdWVyeS51bmlxdWVTb3J0Iik7ZWIobi5leHByLCJmaWx0ZXJzIixuLmV4cHIucHNldWRvcywiZXhwci1wcmUtcHNldWRvcyIsImpRdWVyeS5leHByLmZpbHRlcnMgaXMgZGVwcmVjYXRlZDsgdXNlIGpRdWVyeS5leHByLnBzZXVkb3MiKTsKZWIobi5leHByLCI6IixuLmV4cHIucHNldWRvcywiZXhwci1wcmUtcHNldWRvcyIsImpRdWVyeS5leHByWyc6J10gaXMgZGVwcmVjYXRlZDsgdXNlIGpRdWVyeS5leHByLnBzZXVkb3MiKTt3YSgiMy4xLjEiKSYmYmEobiwidHJpbSIsZnVuY3Rpb24odSl7cmV0dXJuIG51bGw9PXU\/IiI6KHUrIiIpLnJlcGxhY2UoJGEsIiQxIil9LCJ0cmltIiwialF1ZXJ5LnRyaW0gaXMgZGVwcmVjYXRlZDsgdXNlIFN0cmluZy5wcm90b3R5cGUudHJpbSIpO3dhKCIzLjIuMCIpJiYoYmEobiwibm9kZU5hbWUiLGZ1bmN0aW9uKHUseCl7cmV0dXJuIHUubm9kZU5hbWUmJnUubm9kZU5hbWUudG9Mb3dlckNhc2UoKT09PXgudG9Mb3dlckNhc2UoKX0sIm5vZGVOYW1lIiwialF1ZXJ5Lm5vZGVOYW1lIGlzIGRlcHJlY2F0ZWQiKSxiYShuLCJpc0FycmF5IixBcnJheS5pc0FycmF5LCJpc0FycmF5IiwialF1ZXJ5LmlzQXJyYXkgaXMgZGVwcmVjYXRlZDsgdXNlIEFycmF5LmlzQXJyYXkiKSk7d2EoIjMuMy4wIikmJgooYmEobiwiaXNOdW1lcmljIixmdW5jdGlvbih1KXt2YXIgeD10eXBlb2YgdTtyZXR1cm4oIm51bWJlciI9PT14fHwic3RyaW5nIj09PXgpJiYhaXNOYU4odS1wYXJzZUZsb2F0KHUpKX0sImlzTnVtZXJpYyIsImpRdWVyeS5pc051bWVyaWMoKSBpcyBkZXByZWNhdGVkIiksbi5lYWNoKCJCb29sZWFuIE51bWJlciBTdHJpbmcgRnVuY3Rpb24gQXJyYXkgRGF0ZSBSZWdFeHAgT2JqZWN0IEVycm9yIFN5bWJvbCIuc3BsaXQoIiAiKSxmdW5jdGlvbih1LHgpe05iWyJbb2JqZWN0ICIreCsiXSJdPXgudG9Mb3dlckNhc2UoKX0pLGJhKG4sInR5cGUiLGZ1bmN0aW9uKHUpe3JldHVybiBudWxsPT11P3UrIiI6Im9iamVjdCI9PT10eXBlb2YgdXx8ImZ1bmN0aW9uIj09PXR5cGVvZiB1P05iW09iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh1KV18fCJvYmplY3QiOnR5cGVvZiB1fSwidHlwZSIsImpRdWVyeS50eXBlIGlzIGRlcHJlY2F0ZWQiKSxiYShuLCJpc0Z1bmN0aW9uIixmdW5jdGlvbih1KXtyZXR1cm4iZnVuY3Rpb24iPT09CnR5cGVvZiB1fSwiaXNGdW5jdGlvbiIsImpRdWVyeS5pc0Z1bmN0aW9uKCkgaXMgZGVwcmVjYXRlZCIpLGJhKG4sImlzV2luZG93IixmdW5jdGlvbih1KXtyZXR1cm4gbnVsbCE9dSYmdT09PXUud2luZG93fSwiaXNXaW5kb3ciLCJqUXVlcnkuaXNXaW5kb3coKSBpcyBkZXByZWNhdGVkIikpO2lmKG4uYWpheCl7dmFyIHNhPW4uYWpheCxuYj0vKD0pXD8oPz0mfCQpfFw\/XD8vO2phKG4sImFqYXgiLGZ1bmN0aW9uKCl7dmFyIHU9c2EuYXBwbHkodGhpcyxhcmd1bWVudHMpO3UucHJvbWlzZSYmKGJhKHUsInN1Y2Nlc3MiLHUuZG9uZSwianFYSFItbWV0aG9kcyIsImpRWEhSLnN1Y2Nlc3MgaXMgZGVwcmVjYXRlZCBhbmQgcmVtb3ZlZCIpLGJhKHUsImVycm9yIix1LmZhaWwsImpxWEhSLW1ldGhvZHMiLCJqUVhIUi5lcnJvciBpcyBkZXByZWNhdGVkIGFuZCByZW1vdmVkIiksYmEodSwiY29tcGxldGUiLHUuYWx3YXlzLCJqcVhIUi1tZXRob2RzIiwialFYSFIuY29tcGxldGUgaXMgZGVwcmVjYXRlZCBhbmQgcmVtb3ZlZCIpKTsKcmV0dXJuIHV9LCJqcVhIUi1tZXRob2RzIik7d2EoIjQuMC4wIil8fG4uYWpheFByZWZpbHRlcigiK2pzb24iLGZ1bmN0aW9uKHUpeyExIT09dS5qc29ucCYmKG5iLnRlc3QodS51cmwpfHwic3RyaW5nIj09PXR5cGVvZiB1LmRhdGEmJjA9PT0odS5jb250ZW50VHlwZXx8IiIpLmluZGV4T2YoImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIpJiZuYi50ZXN0KHUuZGF0YSkpJiZVKCJqc29ucC1wcm9tb3Rpb24iLCJKU09OLXRvLUpTT05QIGF1dG8tcHJvbW90aW9uIGlzIGRlcHJlY2F0ZWQiKX0pfXZhciBSYj1uLmZuLnJlbW92ZUF0dHIsYWI9bi5mbi50b2dnbGVDbGFzcyxiYj0vXFMrL2c7amEobi5mbiwicmVtb3ZlQXR0ciIsZnVuY3Rpb24odSl7dmFyIHg9dGhpcyxDPSExO24uZWFjaCh1Lm1hdGNoKGJiKSxmdW5jdGlvbihILFApe24uZXhwci5tYXRjaC5ib29sLnRlc3QoUCkmJnguZWFjaChmdW5jdGlvbigpe2lmKCExIT09bih0aGlzKS5wcm9wKFApKXJldHVybiBDPQohMCwhMX0pO0MmJihVKCJyZW1vdmVBdHRyLWJvb2wiLCJqUXVlcnkuZm4ucmVtb3ZlQXR0ciBubyBsb25nZXIgc2V0cyBib29sZWFuIHByb3BlcnRpZXM6ICIrUCkseC5wcm9wKFAsITEpKX0pO3JldHVybiBSYi5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LCJyZW1vdmVBdHRyLWJvb2wiKTtqYShuLmZuLCJ0b2dnbGVDbGFzcyIsZnVuY3Rpb24odSl7aWYodm9pZCAwIT09dSYmImJvb2xlYW4iIT09dHlwZW9mIHUpcmV0dXJuIGFiLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtVKCJ0b2dnbGVDbGFzcy1ib29sIiwialF1ZXJ5LmZuLnRvZ2dsZUNsYXNzKCBib29sZWFuICkgaXMgZGVwcmVjYXRlZCIpO3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgeD10aGlzLmdldEF0dHJpYnV0ZSYmdGhpcy5nZXRBdHRyaWJ1dGUoImNsYXNzIil8fCIiO3gmJm4uZGF0YSh0aGlzLCJfX2NsYXNzTmFtZV9fIix4KTt0aGlzLnNldEF0dHJpYnV0ZSYmdGhpcy5zZXRBdHRyaWJ1dGUoImNsYXNzIix4fHwKITE9PT11PyIiOm4uZGF0YSh0aGlzLCJfX2NsYXNzTmFtZV9fIil8fCIiKX0pfSwidG9nZ2xlQ2xhc3MtYm9vbCIpO3ZhciBmYj0hMSxwYj0vXlthLXpdLyxTYj0vXig\/OkJvcmRlcig\/OlRvcHxSaWdodHxCb3R0b218TGVmdCk\/KD86V2lkdGh8KXwoPzpNYXJnaW58UGFkZGluZyk\/KD86VG9wfFJpZ2h0fEJvdHRvbXxMZWZ0KT98KD86TWlufE1heCk\/KD86V2lkdGh8SGVpZ2h0KSkkLztuLnN3YXAmJm4uZWFjaChbImhlaWdodCIsIndpZHRoIiwicmVsaWFibGVNYXJnaW5SaWdodCJdLGZ1bmN0aW9uKHUseCl7dmFyIEM9bi5jc3NIb29rc1t4XSYmbi5jc3NIb29rc1t4XS5nZXQ7QyYmKG4uY3NzSG9va3NbeF0uZ2V0PWZ1bmN0aW9uKCl7ZmI9ITA7dmFyIEg9Qy5hcHBseSh0aGlzLGFyZ3VtZW50cyk7ZmI9ITE7cmV0dXJuIEh9KX0pO2phKG4sInN3YXAiLGZ1bmN0aW9uKHUseCxDLEgpe3ZhciBQLGVhPXt9O2ZifHxVKCJzd2FwIiwialF1ZXJ5LnN3YXAoKSBpcyB1bmRvY3VtZW50ZWQgYW5kIGRlcHJlY2F0ZWQiKTsKZm9yKFAgaW4geCllYVtQXT11LnN0eWxlW1BdLHUuc3R5bGVbUF09eFtQXTtDPUMuYXBwbHkodSxIfHxbXSk7Zm9yKFAgaW4geCl1LnN0eWxlW1BdPWVhW1BdO3JldHVybiBDfSwic3dhcCIpO3dhKCIzLjQuMCIpJiYidW5kZWZpbmVkIiE9PXR5cGVvZiBQcm94eSYmKG4uY3NzUHJvcHM9bmV3IFByb3h5KG4uY3NzUHJvcHN8fHt9LHtzZXQ6ZnVuY3Rpb24oKXtVKCJjc3NQcm9wcyIsImpRdWVyeS5jc3NQcm9wcyBpcyBkZXByZWNhdGVkIik7cmV0dXJuIFJlZmxlY3Quc2V0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KSk7aWYod2EoIjQuMC4wIikpe3ZhciBxYj17YW5pbWF0aW9uSXRlcmF0aW9uQ291bnQ6ITAsY29sdW1uQ291bnQ6ITAsZmlsbE9wYWNpdHk6ITAsZmxleEdyb3c6ITAsZmxleFNocmluazohMCxmb250V2VpZ2h0OiEwLGdyaWRBcmVhOiEwLGdyaWRDb2x1bW46ITAsZ3JpZENvbHVtbkVuZDohMCxncmlkQ29sdW1uU3RhcnQ6ITAsZ3JpZFJvdzohMCxncmlkUm93RW5kOiEwLApncmlkUm93U3RhcnQ6ITAsbGluZUhlaWdodDohMCxvcGFjaXR5OiEwLG9yZGVyOiEwLG9ycGhhbnM6ITAsd2lkb3dzOiEwLHpJbmRleDohMCx6b29tOiEwfTtuLmNzc051bWJlcj0idW5kZWZpbmVkIiE9PXR5cGVvZiBQcm94eT9uZXcgUHJveHkocWIse2dldDpmdW5jdGlvbigpe1UoImNzcy1udW1iZXIiLCJqUXVlcnkuY3NzTnVtYmVyIGlzIGRlcHJlY2F0ZWQiKTtyZXR1cm4gUmVmbGVjdC5nZXQuYXBwbHkodGhpcyxhcmd1bWVudHMpfSxzZXQ6ZnVuY3Rpb24oKXtVKCJjc3MtbnVtYmVyIiwialF1ZXJ5LmNzc051bWJlciBpcyBkZXByZWNhdGVkIik7cmV0dXJuIFJlZmxlY3Quc2V0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KTpxYn1lbHNlIHFiPW4uY3NzTnVtYmVyO3ZhciAkYj1uLmZuLmNzcztqYShuLmZuLCJjc3MiLGZ1bmN0aW9uKHUseCl7dmFyIEM9dGhpcztpZih1JiYib2JqZWN0Ij09PXR5cGVvZiB1JiYhQXJyYXkuaXNBcnJheSh1KSlyZXR1cm4gbi5lYWNoKHUsZnVuY3Rpb24oUCwKZWEpe24uZm4uY3NzLmNhbGwoQyxQLGVhKX0pLHRoaXM7aWYoIm51bWJlciI9PT10eXBlb2YgeCl7dmFyIEg9bGIodSk7WWEoSCl8fHFiW0hdfHxVKCJjc3MtbnVtYmVyIiwnTnVtYmVyLXR5cGVkIHZhbHVlcyBhcmUgZGVwcmVjYXRlZCBmb3IgalF1ZXJ5LmZuLmNzcyggIicrdSsnIiwgdmFsdWUgKScpfXJldHVybiAkYi5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LCJjc3MtbnVtYmVyIik7dmFyIGdiPW4uZGF0YTtqYShuLCJkYXRhIixmdW5jdGlvbih1LHgsQyl7dmFyIEg7aWYoeCYmIm9iamVjdCI9PT10eXBlb2YgeCYmMj09PWFyZ3VtZW50cy5sZW5ndGgpe3ZhciBQPW4uaGFzRGF0YSh1KSYmZ2IuY2FsbCh0aGlzLHUpLGVhPXt9O2ZvcihIIGluIHgpSCE9PWxiKEgpPyhVKCJkYXRhLWNhbWVsQ2FzZSIsImpRdWVyeS5kYXRhKCkgYWx3YXlzIHNldHMvZ2V0cyBjYW1lbENhc2VkIG5hbWVzOiAiK0gpLFBbSF09eFtIXSk6ZWFbSF09eFtIXTtnYi5jYWxsKHRoaXMsdSxlYSk7cmV0dXJuIHh9cmV0dXJuIHgmJgoic3RyaW5nIj09PXR5cGVvZiB4JiZ4IT09bGIoeCkmJihQPW4uaGFzRGF0YSh1KSYmZ2IuY2FsbCh0aGlzLHUpKSYmeCBpbiBQPyhVKCJkYXRhLWNhbWVsQ2FzZSIsImpRdWVyeS5kYXRhKCkgYWx3YXlzIHNldHMvZ2V0cyBjYW1lbENhc2VkIG5hbWVzOiAiK3gpLDI8YXJndW1lbnRzLmxlbmd0aCYmKFBbeF09QyksUFt4XSk6Z2IuYXBwbHkodGhpcyxhcmd1bWVudHMpfSwiZGF0YS1jYW1lbENhc2UiKTtpZihuLmZ4KXt2YXIgY2I9bi5Ud2Vlbi5wcm90b3R5cGUucnVuLFRiPWZ1bmN0aW9uKHUpe3JldHVybiB1fTtqYShuLlR3ZWVuLnByb3RvdHlwZSwicnVuIixmdW5jdGlvbigpezE8bi5lYXNpbmdbdGhpcy5lYXNpbmddLmxlbmd0aCYmKFUoImVhc2luZy1vbmUtYXJnIiwiJ2pRdWVyeS5lYXNpbmcuIit0aGlzLmVhc2luZy50b1N0cmluZygpKyInIHNob3VsZCB1c2Ugb25seSBvbmUgYXJndW1lbnQiKSxuLmVhc2luZ1t0aGlzLmVhc2luZ109VGIpO2NiLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0sCiJlYXNpbmctb25lLWFyZyIpO3ZhciBLYT1uLmZ4LmludGVydmFsO2RhLnJlcXVlc3RBbmltYXRpb25GcmFtZSYmT2JqZWN0LmRlZmluZVByb3BlcnR5KG4uZngsImludGVydmFsIix7Y29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7ZGEuZG9jdW1lbnQuaGlkZGVufHxVKCJmeC1pbnRlcnZhbCIsImpRdWVyeS5meC5pbnRlcnZhbCBpcyBkZXByZWNhdGVkIik7cmV0dXJuIG4ubWlncmF0ZUlzUGF0Y2hFbmFibGVkKCJmeC1pbnRlcnZhbCIpP3ZvaWQgMD09PUthPzEzOkthOkthfSxzZXQ6ZnVuY3Rpb24odSl7VSgiZngtaW50ZXJ2YWwiLCJqUXVlcnkuZnguaW50ZXJ2YWwgaXMgZGVwcmVjYXRlZCIpO0thPXV9fSl9dmFyIFZiPW4uZm4ubG9hZCxBYj1uLmV2ZW50LmFkZCxXYj1uLmV2ZW50LmZpeDtuLmV2ZW50LnByb3BzPVtdO24uZXZlbnQuZml4SG9va3M9e307ZWIobi5ldmVudC5wcm9wcywiY29uY2F0IixuLmV2ZW50LnByb3BzLmNvbmNhdCwiZXZlbnQtb2xkLXBhdGNoIiwKImpRdWVyeS5ldmVudC5wcm9wcy5jb25jYXQoKSBpcyBkZXByZWNhdGVkIGFuZCByZW1vdmVkIik7amEobi5ldmVudCwiZml4IixmdW5jdGlvbih1KXt2YXIgeD11LnR5cGUsQz10aGlzLmZpeEhvb2tzW3hdLEg9bi5ldmVudC5wcm9wcztpZihILmxlbmd0aClmb3IoVSgiZXZlbnQtb2xkLXBhdGNoIiwialF1ZXJ5LmV2ZW50LnByb3BzIGFyZSBkZXByZWNhdGVkIGFuZCByZW1vdmVkOiAiK0guam9pbigpKTtILmxlbmd0aDspbi5ldmVudC5hZGRQcm9wKEgucG9wKCkpO2lmKEMmJiFDLl9taWdyYXRlZF8mJihDLl9taWdyYXRlZF89ITAsVSgiZXZlbnQtb2xkLXBhdGNoIiwialF1ZXJ5LmV2ZW50LmZpeEhvb2tzIGFyZSBkZXByZWNhdGVkIGFuZCByZW1vdmVkOiAiK3gpLChIPUMucHJvcHMpJiZILmxlbmd0aCkpZm9yKDtILmxlbmd0aDspbi5ldmVudC5hZGRQcm9wKEgucG9wKCkpO3g9V2IuY2FsbCh0aGlzLHUpO3JldHVybiBDJiZDLmZpbHRlcj9DLmZpbHRlcih4LHUpOnh9LCJldmVudC1vbGQtcGF0Y2giKTsKamEobi5ldmVudCwiYWRkIixmdW5jdGlvbih1LHgpe3U9PT1kYSYmImxvYWQiPT09eCYmImNvbXBsZXRlIj09PWRhLmRvY3VtZW50LnJlYWR5U3RhdGUmJlUoImxvYWQtYWZ0ZXItZXZlbnQiLCJqUXVlcnkod2luZG93KS5vbignbG9hZCcuLi4pIGNhbGxlZCBhZnRlciBsb2FkIGV2ZW50IG9jY3VycmVkIik7cmV0dXJuIEFiLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0sImxvYWQtYWZ0ZXItZXZlbnQiKTtuLmVhY2goWyJsb2FkIiwidW5sb2FkIiwiZXJyb3IiXSxmdW5jdGlvbih1LHgpe2phKG4uZm4seCxmdW5jdGlvbigpe3ZhciBDPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywwKTtpZigibG9hZCI9PT14JiYic3RyaW5nIj09PXR5cGVvZiBDWzBdKXJldHVybiBWYi5hcHBseSh0aGlzLEMpO1UoInNob3J0aGFuZC1yZW1vdmVkLXYzIiwialF1ZXJ5LmZuLiIreCsiKCkgaXMgZGVwcmVjYXRlZCIpO0Muc3BsaWNlKDAsMCx4KTtpZihhcmd1bWVudHMubGVuZ3RoKXJldHVybiB0aGlzLm9uLmFwcGx5KHRoaXMsCkMpO3RoaXMudHJpZ2dlckhhbmRsZXIuYXBwbHkodGhpcyxDKTtyZXR1cm4gdGhpc30sInNob3J0aGFuZC1yZW1vdmVkLXYzIil9KTtuLmVhY2goImJsdXIgZm9jdXMgZm9jdXNpbiBmb2N1c291dCByZXNpemUgc2Nyb2xsIGNsaWNrIGRibGNsaWNrIG1vdXNlZG93biBtb3VzZXVwIG1vdXNlbW92ZSBtb3VzZW92ZXIgbW91c2VvdXQgbW91c2VlbnRlciBtb3VzZWxlYXZlIGNoYW5nZSBzZWxlY3Qgc3VibWl0IGtleWRvd24ga2V5cHJlc3Mga2V5dXAgY29udGV4dG1lbnUiLnNwbGl0KCIgIiksZnVuY3Rpb24odSx4KXtiYShuLmZuLHgsZnVuY3Rpb24oQyxIKXtyZXR1cm4gMDxhcmd1bWVudHMubGVuZ3RoP3RoaXMub24oeCxudWxsLEMsSCk6dGhpcy50cmlnZ2VyKHgpfSwic2hvcnRoYW5kLWRlcHJlY2F0ZWQtdjMiLCJqUXVlcnkuZm4uIit4KyIoKSBldmVudCBzaG9ydGhhbmQgaXMgZGVwcmVjYXRlZCIpfSk7bihmdW5jdGlvbigpe24oZGEuZG9jdW1lbnQpLnRyaWdnZXJIYW5kbGVyKCJyZWFkeSIpfSk7Cm4uZXZlbnQuc3BlY2lhbC5yZWFkeT17c2V0dXA6ZnVuY3Rpb24oKXt0aGlzPT09ZGEuZG9jdW1lbnQmJlUoInJlYWR5LWV2ZW50IiwiJ3JlYWR5JyBldmVudCBpcyBkZXByZWNhdGVkIil9fTtiYShuLmZuLCJiaW5kIixmdW5jdGlvbih1LHgsQyl7cmV0dXJuIHRoaXMub24odSxudWxsLHgsQyl9LCJwcmUtb24tbWV0aG9kcyIsImpRdWVyeS5mbi5iaW5kKCkgaXMgZGVwcmVjYXRlZCIpO2JhKG4uZm4sInVuYmluZCIsZnVuY3Rpb24odSx4KXtyZXR1cm4gdGhpcy5vZmYodSxudWxsLHgpfSwicHJlLW9uLW1ldGhvZHMiLCJqUXVlcnkuZm4udW5iaW5kKCkgaXMgZGVwcmVjYXRlZCIpO2JhKG4uZm4sImRlbGVnYXRlIixmdW5jdGlvbih1LHgsQyxIKXtyZXR1cm4gdGhpcy5vbih4LHUsQyxIKX0sInByZS1vbi1tZXRob2RzIiwialF1ZXJ5LmZuLmRlbGVnYXRlKCkgaXMgZGVwcmVjYXRlZCIpO2JhKG4uZm4sInVuZGVsZWdhdGUiLGZ1bmN0aW9uKHUseCxDKXtyZXR1cm4gMT09PWFyZ3VtZW50cy5sZW5ndGg\/CnRoaXMub2ZmKHUsIioqIik6dGhpcy5vZmYoeCx1fHwiKioiLEMpfSwicHJlLW9uLW1ldGhvZHMiLCJqUXVlcnkuZm4udW5kZWxlZ2F0ZSgpIGlzIGRlcHJlY2F0ZWQiKTtiYShuLmZuLCJob3ZlciIsZnVuY3Rpb24odSx4KXtyZXR1cm4gdGhpcy5vbigibW91c2VlbnRlciIsdSkub24oIm1vdXNlbGVhdmUiLHh8fHUpfSwicHJlLW9uLW1ldGhvZHMiLCJqUXVlcnkuZm4uaG92ZXIoKSBpcyBkZXByZWNhdGVkIik7dmFyIHJiPS88KD8hYXJlYXxicnxjb2x8ZW1iZWR8aHJ8aW1nfGlucHV0fGxpbmt8bWV0YXxwYXJhbSkoKFthLXpdW15cL1wwPlx4MjBcdFxyXG5cZl0qKVtePl0qKVwvPi9naSxCYj1mdW5jdGlvbih1KXt2YXIgeD1kYS5kb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVIVE1MRG9jdW1lbnQoIiIpO3guYm9keS5pbm5lckhUTUw9dTtyZXR1cm4geC5ib2R5JiZ4LmJvZHkuaW5uZXJIVE1MfTtuLlVOU0FGRV9yZXN0b3JlTGVnYWN5SHRtbFByZWZpbHRlcj1mdW5jdGlvbigpe24ubWlncmF0ZUVuYWJsZVBhdGNoZXMoInNlbGYtY2xvc2VkLXRhZ3MiKX07CmphKG4sImh0bWxQcmVmaWx0ZXIiLGZ1bmN0aW9uKHUpe3ZhciB4PXUucmVwbGFjZShyYiwiPCQxPjwvJDI+Iik7eCE9PXUmJkJiKHUpIT09QmIoeCkmJlUoInNlbGYtY2xvc2VkLXRhZ3MiLCJIVE1MIHRhZ3MgbXVzdCBiZSBwcm9wZXJseSBuZXN0ZWQgYW5kIGNsb3NlZDogIit1KTtyZXR1cm4gdS5yZXBsYWNlKHJiLCI8JDE+PC8kMj4iKX0sInNlbGYtY2xvc2VkLXRhZ3MiKTtuLm1pZ3JhdGVEaXNhYmxlUGF0Y2hlcygic2VsZi1jbG9zZWQtdGFncyIpO3ZhciB6YT1uLmZuLm9mZnNldDtqYShuLmZuLCJvZmZzZXQiLGZ1bmN0aW9uKCl7dmFyIHU9dGhpc1swXTtyZXR1cm4hdXx8dS5ub2RlVHlwZSYmdS5nZXRCb3VuZGluZ0NsaWVudFJlY3Q\/emEuYXBwbHkodGhpcyxhcmd1bWVudHMpOihVKCJvZmZzZXQtdmFsaWQtZWxlbSIsImpRdWVyeS5mbi5vZmZzZXQoKSByZXF1aXJlcyBhIHZhbGlkIERPTSBlbGVtZW50IiksYXJndW1lbnRzLmxlbmd0aD90aGlzOnZvaWQgMCl9LCJvZmZzZXQtdmFsaWQtZWxlbSIpOwppZihuLmFqYXgpe3ZhciBDYj1uLnBhcmFtO2phKG4sInBhcmFtIixmdW5jdGlvbih1LHgpe3ZhciBDPW4uYWpheFNldHRpbmdzJiZuLmFqYXhTZXR0aW5ncy50cmFkaXRpb25hbDt2b2lkIDA9PT14JiZDJiYoVSgicGFyYW0tYWpheC10cmFkaXRpb25hbCIsImpRdWVyeS5wYXJhbSgpIG5vIGxvbmdlciB1c2VzIGpRdWVyeS5hamF4U2V0dGluZ3MudHJhZGl0aW9uYWwiKSx4PUMpO3JldHVybiBDYi5jYWxsKHRoaXMsdSx4KX0sInBhcmFtLWFqYXgtdHJhZGl0aW9uYWwiKX1iYShuLmZuLCJhbmRTZWxmIixuLmZuLmFkZEJhY2ssImFuZFNlbGYiLCJqUXVlcnkuZm4uYW5kU2VsZigpIGlzIGRlcHJlY2F0ZWQgYW5kIHJlbW92ZWQsIHVzZSBqUXVlcnkuZm4uYWRkQmFjaygpIik7aWYobi5EZWZlcnJlZCl7dmFyIERiPW4uRGVmZXJyZWQsdGI9W1sicmVzb2x2ZSIsImRvbmUiLG4uQ2FsbGJhY2tzKCJvbmNlIG1lbW9yeSIpLG4uQ2FsbGJhY2tzKCJvbmNlIG1lbW9yeSIpLCJyZXNvbHZlZCJdLApbInJlamVjdCIsImZhaWwiLG4uQ2FsbGJhY2tzKCJvbmNlIG1lbW9yeSIpLG4uQ2FsbGJhY2tzKCJvbmNlIG1lbW9yeSIpLCJyZWplY3RlZCJdLFsibm90aWZ5IiwicHJvZ3Jlc3MiLG4uQ2FsbGJhY2tzKCJtZW1vcnkiKSxuLkNhbGxiYWNrcygibWVtb3J5IildXTtqYShuLCJEZWZlcnJlZCIsZnVuY3Rpb24odSl7ZnVuY3Rpb24geCgpe3ZhciBQPWFyZ3VtZW50cztyZXR1cm4gbi5EZWZlcnJlZChmdW5jdGlvbihlYSl7bi5lYWNoKHRiLGZ1bmN0aW9uKFFhLEViKXt2YXIgaGI9ImZ1bmN0aW9uIj09PXR5cGVvZiBQW1FhXSYmUFtRYV07Q1tFYlsxXV0oZnVuY3Rpb24oKXt2YXIgb2E9aGImJmhiLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtpZihvYSYmImZ1bmN0aW9uIj09PXR5cGVvZiBvYS5wcm9taXNlKW9hLnByb21pc2UoKS5kb25lKGVhLnJlc29sdmUpLmZhaWwoZWEucmVqZWN0KS5wcm9ncmVzcyhlYS5ub3RpZnkpO2Vsc2UgZWFbRWJbMF0rIldpdGgiXSh0aGlzPT09SD9lYS5wcm9taXNlKCk6CnRoaXMsaGI\/W29hXTphcmd1bWVudHMpfSl9KTtQPW51bGx9KS5wcm9taXNlKCl9dmFyIEM9RGIoKSxIPUMucHJvbWlzZSgpO2JhKEMsInBpcGUiLHgsImRlZmVycmVkLXBpcGUiLCJkZWZlcnJlZC5waXBlKCkgaXMgZGVwcmVjYXRlZCIpO2JhKEgsInBpcGUiLHgsImRlZmVycmVkLXBpcGUiLCJkZWZlcnJlZC5waXBlKCkgaXMgZGVwcmVjYXRlZCIpO3UmJnUuY2FsbChDLEMpO3JldHVybiBDfSwiZGVmZXJyZWQtcGlwZSIpO24uRGVmZXJyZWQuZXhjZXB0aW9uSG9vaz1EYi5leGNlcHRpb25Ib29rfXJldHVybiBufSk7Ci8qKiAvanMvanF1ZXJ5LmNvb2tpZS5qcyAqKi8KdmFyIF9fX2QyY19qcXVlcnljb29raWVqc19jX29uPSIyMDI1LTA1LTIzIDE3OjA5OjI4IjsndXNlIHN0cmljdCc7dmFyIF9fX2QyY19qcXVlcnljb29raWVqc19jX29uPSIyMDI0LTAxLTMxIDE0OjM2OjA5IjsidXNlIHN0cmljdCI7X19fZDJjX2pxdWVyeWNvb2tpZWpzX2Nfb249IjIwMjMtMDktMDYgMTQ6MzA6MDYiOyJ1c2Ugc3RyaWN0IjsKKGZ1bmN0aW9uKGgsbCxyKXtmdW5jdGlvbiB0KGIpe3JldHVybiBifWZ1bmN0aW9uIHUoYil7dHJ5e3JldHVybiBkZWNvZGVVUklDb21wb25lbnQoYi5yZXBsYWNlKG0sIiAiKSl9Y2F0Y2goYyl7dHJ5e3JldHVybiBkZWNvZGVVUklDb21wb25lbnQodW5lc2NhcGUoYikucmVwbGFjZShtLCIgIikpfWNhdGNoKGEpe3JldHVybiBjb25zb2xlJiZjb25zb2xlLmxvZyYmY29uc29sZS5sb2coYS5tZXNzYWdlKSxifX19ZnVuY3Rpb24gbihiLGMsYSxlLGssZil7InVuZGVmaW5lZCI9PT10eXBlb2YgZiYmKGY9NSk7InVuZGVmaW5lZCI9PT10eXBlb2Ygd2luZG93LkNvb2tpZUxvZ2dlcj9mJiZzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7bihiLGMsYSxlLGssZi0xKX0sMUUzKTp3aW5kb3cuQ29va2llTG9nZ2VyLmxvZyhiLGMsYSxlLGspfXZhciBtPS9cKy9nLGc9aC5jb29raWU9ZnVuY3Rpb24oYixjLGEpe2lmKGMhPT1yKXJldHVybiBDb29raWVzLmlzQ29va2llQWxsb3dlZChiLGZ1bmN0aW9uKGQpe2RlYnVnKCJDb29raWU6ICIsCmIsZCk7YT1oLmV4dGVuZCh7fSxnLmRlZmF1bHRzLGEpO2lmKCFkKXJldHVybiBDb29raWVzLnJlbW92ZShiLGEucGF0aCxhLmRvbWFpbiksITE7bnVsbD09PWMmJihhLmV4cGlyZXM9LTEpOyJudW1iZXIiPT09dHlwZW9mIGEuZXhwaXJlc0luTWludXRlcyYmKGEuZXhwaXJlcz1hLmV4cGlyZXNJbk1pbnV0ZXMvMTQ0MCk7aWYoIm51bWJlciI9PT10eXBlb2YgYS5leHBpcmVzKXtkPWEuZXhwaXJlczt2YXIgcD1hLmV4cGlyZXM9bmV3IERhdGU7cC5zZXRUaW1lKCtwKzg2NEU1KmQpfWQ9bmV3IERhdGU7ZC5zZXRGdWxsWWVhcihkLmdldEZ1bGxZZWFyKCkrMSk7YS5leHBpcmVzPmQmJihhLmV4cGlyZXM9ZCk7Yz1nLmpzb24\/SlNPTi5zdHJpbmdpZnkoYyk6U3RyaW5nKGMpO24oYixjLGEuZXhwaXJlcyxhLnBhdGgsYS5kb21haW4pO3JldHVybiBsLmNvb2tpZT1bZW5jb2RlVVJJQ29tcG9uZW50KGIpLCI9IixnLnJhdz9jOmVuY29kZVVSSUNvbXBvbmVudChjKSxhLmV4cGlyZXM\/IjsgZXhwaXJlcz0iKwphLmV4cGlyZXMudG9VVENTdHJpbmcoKToiIixhLnBhdGg\/IjsgcGF0aD0iK2EucGF0aDoiIixhLmRvbWFpbj8iOyBkb21haW49IithLmRvbWFpbjoiIixhLnNlY3VyZT8iOyBzZWN1cmUiOiIiXS5qb2luKCIiKX0pO2Zvcih2YXIgZT1nLnJhdz90OnUsaz1sLmNvb2tpZS5zcGxpdCgiOyAiKSxmPTAsdj1rLmxlbmd0aDtmPHY7ZisrKXt2YXIgcT1rW2ZdLnNwbGl0KCI9Iik7aWYoZShxLnNoaWZ0KCkpPT09YilyZXR1cm4gZT1lKHEuam9pbigiPSIpKSxnLmpzb24\/SlNPTi5wYXJzZShlKTplfXJldHVybiBudWxsfTtnLmRlZmF1bHRzPXt9O2gucmVtb3ZlQ29va2llPWZ1bmN0aW9uKGIsYyl7cmV0dXJuIG51bGwhPT1oLmNvb2tpZShiKT8oaC5jb29raWUoYixudWxsLGMpLCEwKTohMX19KShqUXVlcnksZG9jdW1lbnQpOwovKiogL2pzL3ZhbmlsbGFqcy9jb29raWVzLmNvbnNlbnQuanMgKiovCnZhciBfX19kMmNfY29va2llc2NvbnNlbnRqc19jX29uPSIyMDI2LTA1LTI2IDE0OjMwOjAzIjsndXNlIHN0cmljdCc7KGZ1bmN0aW9uKCl7d2luZG93LkQyQ0ZiQ29uc2VudD13aW5kb3cuRDJDRmJDb25zZW50fHx7X3N0YXRlOm51bGwsX3F1ZXVlOltdLF9mbHVzaDpmdW5jdGlvbigpe3ZhciBhPXRoaXMuX3F1ZXVlO3RoaXMuX3F1ZXVlPVtdO2EuZm9yRWFjaChmdW5jdGlvbihiKXt0cnl7YigpfWNhdGNoKGMpe319KX0sZ3JhbnQ6ZnVuY3Rpb24oKXt0aGlzLl9zdGF0ZT0iZ3JhbnQiOyJ1bmRlZmluZWQiIT09dHlwZW9mIGZicSYmKGZicSgiY29uc2VudCIsImdyYW50IiksdGhpcy5fZmx1c2goKSl9LHJldm9rZTpmdW5jdGlvbigpe3RoaXMuX3N0YXRlPSJyZXZva2UiOyJ1bmRlZmluZWQiIT09dHlwZW9mIGZicSYmZmJxKCJjb25zZW50IiwicmV2b2tlIil9LG9uR3JhbnRlZDpmdW5jdGlvbihhKXtpZigiZnVuY3Rpb24iPT09dHlwZW9mIGEpaWYoImdyYW50Ij09PXRoaXMuX3N0YXRlJiYidW5kZWZpbmVkIiE9PXR5cGVvZiBmYnEpdHJ5e2EoKX1jYXRjaChiKXt9ZWxzZSB0aGlzLl9xdWV1ZS5wdXNoKGEpfSwKc3luY1RvRmJxOmZ1bmN0aW9uKCl7dGhpcy5fc3RhdGUmJiJ1bmRlZmluZWQiIT09dHlwZW9mIGZicSYmKGZicSgiY29uc2VudCIsdGhpcy5fc3RhdGUpLCJncmFudCI9PT10aGlzLl9zdGF0ZSYmdGhpcy5fZmx1c2goKSl9fTt3aW5kb3cuQ29va2llQ29uc2VudD17Q0FURUdPUllJRF9FU1NFTlRJQUw6MixfY21wSW50ZXJ2YWxJRDpudWxsLF9jdXJyZW50VmVuZG9yOm51bGwsX2Nvb2tpZXM6bnVsbCxfY2F0ZWdvcmllczpudWxsLF9yZWdpc3RlcmVkUmVxdWVzdHM6W10saW5pdDpmdW5jdGlvbigpe0Nvb2tpZUNvbnNlbnQuX2xvYWRKU09OKG51bGwpO0Nvb2tpZUNvbnNlbnQuX2NtcEludGVydmFsSUQ9c2V0SW50ZXJ2YWwoZnVuY3Rpb24oKXtDb29raWVDb25zZW50Lmxpc3RlbkZvck9uZVRydXN0KCl9LDFFMyk7bGV0IGE9Q29va2llQ29uc2VudC5nZXRDb25zZW50KCk7bnVsbD09YXx8YS5pbmRleE9mKCJDMDAwMiIpOyJncmFudGVkIj09PShudWxsPT1hfHwtMTxhLmluZGV4T2YoIkMwMDA0Iik\/CiJncmFudGVkIjoiZGVuaWVkIik\/d2luZG93LkQyQ0ZiQ29uc2VudC5ncmFudCgpOndpbmRvdy5EMkNGYkNvbnNlbnQucmV2b2tlKCl9LGxpc3RlbkZvck9uZVRydXN0OmZ1bmN0aW9uKCl7aWYoInVuZGVmaW5lZCIhPT10eXBlb2YgT25lVHJ1c3Qpe2NvbnNvbGUubG9nKCJDb29raWVDb25zZW50Lmxpc3RlbkZvck9uZVRydXN0KCkiKTtDb29raWVDb25zZW50Ll9jdXJyZW50VmVuZG9yPSJPbmVUcnVzdCI7Y2xlYXJJbnRlcnZhbChDb29raWVDb25zZW50Ll9jbXBJbnRlcnZhbElEKTt2YXIgYT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjb25ldHJ1c3QtY2xvc2UtYnRuLWNvbnRhaW5lciAub25ldHJ1c3QtY2xvc2UtYnRuLWhhbmRsZXIiKTthJiZhLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbigpe3NldFRpbWVvdXQoZnVuY3Rpb24oKXtsZXQgYj13aW5kb3cubG9jYXRpb24uaG9zdG5hbWUsYz1sb2NhdGlvbi5ob3N0bmFtZS5zcGxpdCgiLiIpLnNsaWNlKC0yKS5qb2luKCIuIik7CmRvY3VtZW50LmNvb2tpZT0iT3B0YW5vbkFsZXJ0Qm94Q2xvc2VkPTsgUGF0aD0vOyBFeHBpcmVzPVRodSwgMDEgSmFuIDE5NzAgMDA6MDA6MDEgR01UO2RvbWFpbj0iK2IrIjsiO2RvY3VtZW50LmNvb2tpZT0iT3B0YW5vbkFsZXJ0Qm94Q2xvc2VkPTsgUGF0aD0vOyBFeHBpcmVzPVRodSwgMDEgSmFuIDE5NzAgMDA6MDA6MDEgR01UO2RvbWFpbj0iK2MrIjsifSwxRTMpfSk7T25lVHJ1c3QuT25Db25zZW50Q2hhbmdlZChmdW5jdGlvbihiKXtpZihiJiZiLmRldGFpbCl7dmFyIGM9Q29va2llQ29uc2VudC5fZ2V0Q29uc2VudENvb2tpZSgpO0Nvb2tpZUNvbnNlbnQuX3VwZGF0ZUNvbnNlbnRDb29raWUoSlNPTi5zdHJpbmdpZnkoYi5kZXRhaWwpKTstMTxiLmRldGFpbC5pbmRleE9mKCJDMDAwNCIpP2d0YWcoImNvbnNlbnQiLCJ1cGRhdGUiLHthZF9zdG9yYWdlOiJncmFudGVkIn0pOmd0YWcoImNvbnNlbnQiLCJ1cGRhdGUiLHthZF9zdG9yYWdlOiJkZW5pZWQifSk7LTE8Yi5kZXRhaWwuaW5kZXhPZigiQzAwMDIiKT8KZ3RhZygiY29uc2VudCIsInVwZGF0ZSIse2FuYWx5dGljc19zdG9yYWdlOiJncmFudGVkIn0pOmd0YWcoImNvbnNlbnQiLCJ1cGRhdGUiLHthbmFseXRpY3Nfc3RvcmFnZToiZGVuaWVkIn0pOy0xPGIuZGV0YWlsLmluZGV4T2YoIkMwMDA0Iik\/d2luZG93LkQyQ0ZiQ29uc2VudC5ncmFudCgpOndpbmRvdy5EMkNGYkNvbnNlbnQucmV2b2tlKCk7MT09Yi5kZXRhaWwubGVuZ3RoJiYiQzAwMDEiPT1iLmRldGFpbFswXSYmKG51bGw9PWN8fDE8Yy5sZW5ndGgpJiZkMmNGb290ZXJEZWxldGVBbGxDb29raWVzKCEwKTtpZigtMTxiLmRldGFpbC5pbmRleE9mKCJDMDAwMiIpKXtjPXNlc3Npb25TdG9yYWdlLmdldEl0ZW0oImQyY19jb25zZW50X3dhaXQiKTtjPW51bGwhPWM\/SlNPTi5wYXJzZShhdG9iKGMpKTp7fTtmb3IodmFyIGQgaW4gYylDb29raWVzLnNldChjW2RdLmtleSxjW2RdLnZhbHVlLGNbZF0uZXhwaXJlcyxjW2RdLnBhdGgsY1tkXS5kb21haW4pfXNlc3Npb25TdG9yYWdlLnJlbW92ZUl0ZW0oImQyY19jb25zZW50X3dhaXQiKTsKZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiYm9keSIpLmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCJkMmNfY29uc2VudF9jaGFuZ2VkIix7Y2F0ZWdvcmllczpiLmRldGFpbH0pKX19KX19LF91cGRhdGVDb25zZW50Q29va2llOmZ1bmN0aW9uKGEpe0Nvb2tpZXMuc2V0KCJkMmNfY29va2llX2NvbnNlbnQiLGEsMzY1LCIvIil9LF9nZXRDb25zZW50Q29va2llOmZ1bmN0aW9uKCl7aWYoIUNvb2tpZXMuaGFzKCJkMmNfY29va2llX2NvbnNlbnQiKSlyZXR1cm4gbnVsbDtsZXQgYT1Db29raWVzLmdldCgiZDJjX2Nvb2tpZV9jb25zZW50Iik7cmV0dXJuIEpTT04ucGFyc2UoYSl9LGdldENvbnNlbnQ6ZnVuY3Rpb24oKXtsZXQgYT0oIiIrZG9jdW1lbnQuY29va2llKS5zcGxpdCgiOyIpO2ZvcihsZXQgYj0wO2I8YS5sZW5ndGg7YisrKXtsZXQgYz1hW2JdO2M9Yy50cmltKCk7aWYoMD09Yy5pbmRleE9mKCJkMmNfY29va2llX2NvbnNlbnQ9Iikpe3RyeXtjPWRlY29kZVVSSUNvbXBvbmVudChjKX1jYXRjaChkKXtjb25zb2xlLmxvZyhkKTsKYnJlYWt9cmV0dXJuIGMuc3Vic3RyaW5nKDE5LGMubGVuZ3RoKX19cmV0dXJuIG51bGx9LGlzQ29va2llQWxsb3dlZDpmdW5jdGlvbihhLGIpe2lmKFsiZDJjX2Nvb2tpZV9jb25zZW50IiwiQ1NSRkRPTUFJTkNIRUNLXzEiXS5pbmNsdWRlcyhhKSliKCEwKTtlbHNlIGlmKG51bGw9PT1Db29raWVDb25zZW50Ll9jb29raWVzfHxudWxsPT09Q29va2llQ29uc2VudC5fY2F0ZWdvcmllcylDb29raWVDb25zZW50Ll9yZWdpc3RlckpTT05Mb2FkZWRFdmVudChmdW5jdGlvbigpe0Nvb2tpZUNvbnNlbnQuaXNDb29raWVBbGxvd2VkKGEsYil9KTtlbHNlIGlmKENvb2tpZUNvbnNlbnQuX2Nvb2tpZXMuaGFzT3duUHJvcGVydHkoYSkpe3ZhciBjPUNvb2tpZUNvbnNlbnQuX2Nvb2tpZXNbYV0sZD1Db29raWVDb25zZW50Ll9nZXRWZW5kb3JDYXRlZ29yeShjKSxlPUNvb2tpZUNvbnNlbnQuX2dldENvbnNlbnRDb29raWUoKTsiZnVuY3Rpb24iPT09dHlwZW9mIGRlYnVnJiZkZWJ1Zyh7bmFtZTphLApjYXRlZ29yeTpjLHZlbmRvcjpkLGNvbnNlbnQ6ZX0pO251bGw9PT1lfHxudWxsPT09ZD9iKCExKToib2JqZWN0Ij09PXR5cGVvZiBkPyhjPTA8ZC5maWx0ZXIoZnVuY3Rpb24oZil7cmV0dXJuLTE8ZS5pbmRleE9mKGYpfSkubGVuZ3RoLGIoYykpOmIoLTE8ZS5pbmRleE9mKGQpKX1lbHNlIGIoITEpfSxfbG9hZEpTT046ZnVuY3Rpb24oYSl7ZmV0Y2goIi9qcy9qc29uL2NhdGVnb3JpemVkX2Nvb2tpZXMuanNvbiIpLnRoZW4oZnVuY3Rpb24oYil7cmV0dXJuIGIuanNvbigpfSkudGhlbihmdW5jdGlvbihiKXtDb29raWVDb25zZW50Ll9jb29raWVzPWIuY29va2llcztDb29raWVDb25zZW50Ll9jYXRlZ29yaWVzPWIuY2F0ZWdvcmllcztpZigiZnVuY3Rpb24iPT09dHlwZW9mIGEpdHJ5e2EoKX1jYXRjaChjKXt9MDxDb29raWVDb25zZW50Ll9yZWdpc3RlcmVkUmVxdWVzdHMubGVuZ3RoJiZDb29raWVDb25zZW50Ll9yZWdpc3RlcmVkUmVxdWVzdHMuZm9yRWFjaChmdW5jdGlvbihjKXt0cnl7YygpfWNhdGNoKGQpe319KX0pfSwKX3JlZ2lzdGVySlNPTkxvYWRlZEV2ZW50OmZ1bmN0aW9uKGEpe2lmKCJmdW5jdGlvbiI9PT10eXBlb2YgYSlpZihudWxsIT09Q29va2llQ29uc2VudC5fY29va2llcyl0cnl7YSgpfWNhdGNoKGIpe31lbHNlIENvb2tpZUNvbnNlbnQuX3JlZ2lzdGVyZWRSZXF1ZXN0cy5wdXNoKGEpfSxfZ2V0VmVuZG9yQ2F0ZWdvcnk6ZnVuY3Rpb24oYSl7aWYobnVsbD09PUNvb2tpZUNvbnNlbnQuX2N1cnJlbnRWZW5kb3Ipe2xldCBjPVtdO09iamVjdC52YWx1ZXMoQ29va2llQ29uc2VudC5fY2F0ZWdvcmllcykuZm9yRWFjaChmdW5jdGlvbihkKXtkLmhhc093blByb3BlcnR5KGEpJiZjLnB1c2goZFthXSl9KTtyZXR1cm4gY31sZXQgYj1Db29raWVDb25zZW50Ll9jYXRlZ29yaWVzW0Nvb2tpZUNvbnNlbnQuX2N1cnJlbnRWZW5kb3JdO3JldHVybiBiJiZiLmhhc093blByb3BlcnR5KGEpP2JbYV06bnVsbH19O3dpbmRvdy5Db29raWVDb25zZW50LmluaXQoKX0pKCk7Ci8qKiAvanMvdmFuaWxsYWpzL2NvbnRlbnRMb2FkZXIuanMgKiovCnZhciBfX19kMmNfY29udGVudExvYWRlcmpzX2Nfb249IjIwMjYtMDUtMDUgMTM6MzA6MDMiOyd1c2Ugc3RyaWN0Jzt2YXIgJGpzY29tcD0kanNjb21wfHx7fTskanNjb21wLnNjb3BlPXt9OyRqc2NvbXAuQVNTVU1FX0VTNT0hMTskanNjb21wLkFTU1VNRV9OT19OQVRJVkVfTUFQPSExOyRqc2NvbXAuQVNTVU1FX05PX05BVElWRV9TRVQ9ITE7JGpzY29tcC5TSU1QTEVfRlJPVU5EX1BPTFlGSUxMPSExOyRqc2NvbXAuSVNPTEFURV9QT0xZRklMTFM9ITE7JGpzY29tcC5GT1JDRV9QT0xZRklMTF9QUk9NSVNFPSExOyRqc2NvbXAuRk9SQ0VfUE9MWUZJTExfUFJPTUlTRV9XSEVOX05PX1VOSEFORExFRF9SRUpFQ1RJT049ITE7JGpzY29tcC5kZWZpbmVQcm9wZXJ0eT0kanNjb21wLkFTU1VNRV9FUzV8fCJmdW5jdGlvbiI9PXR5cGVvZiBPYmplY3QuZGVmaW5lUHJvcGVydGllcz9PYmplY3QuZGVmaW5lUHJvcGVydHk6ZnVuY3Rpb24oYSxiLGMpe2lmKGE9PUFycmF5LnByb3RvdHlwZXx8YT09T2JqZWN0LnByb3RvdHlwZSlyZXR1cm4gYTthW2JdPWMudmFsdWU7cmV0dXJuIGF9OwokanNjb21wLmdldEdsb2JhbD1mdW5jdGlvbihhKXthPVsib2JqZWN0Ij09dHlwZW9mIGdsb2JhbFRoaXMmJmdsb2JhbFRoaXMsYSwib2JqZWN0Ij09dHlwZW9mIHdpbmRvdyYmd2luZG93LCJvYmplY3QiPT10eXBlb2Ygc2VsZiYmc2VsZiwib2JqZWN0Ij09dHlwZW9mIGdsb2JhbCYmZ2xvYmFsXTtmb3IodmFyIGI9MDtiPGEubGVuZ3RoOysrYil7dmFyIGM9YVtiXTtpZihjJiZjLk1hdGg9PU1hdGgpcmV0dXJuIGN9dGhyb3cgRXJyb3IoIkNhbm5vdCBmaW5kIGdsb2JhbCBvYmplY3QiKTt9OyRqc2NvbXAuZ2xvYmFsPSRqc2NvbXAuZ2V0R2xvYmFsKHRoaXMpOyRqc2NvbXAuSVNfU1lNQk9MX05BVElWRT0iZnVuY3Rpb24iPT09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PT10eXBlb2YgU3ltYm9sKCJ4Iik7JGpzY29tcC5UUlVTVF9FUzZfUE9MWUZJTExTPSEkanNjb21wLklTT0xBVEVfUE9MWUZJTExTfHwkanNjb21wLklTX1NZTUJPTF9OQVRJVkU7JGpzY29tcC5wb2x5ZmlsbHM9e307CiRqc2NvbXAucHJvcGVydHlUb1BvbHlmaWxsU3ltYm9sPXt9OyRqc2NvbXAuUE9MWUZJTExfUFJFRklYPSIkanNjcCQiO3ZhciAkanNjb21wJGxvb2t1cFBvbHlmaWxsZWRWYWx1ZT1mdW5jdGlvbihhLGIpe3ZhciBjPSRqc2NvbXAucHJvcGVydHlUb1BvbHlmaWxsU3ltYm9sW2JdO2lmKG51bGw9PWMpcmV0dXJuIGFbYl07Yz1hW2NdO3JldHVybiB2b2lkIDAhPT1jP2M6YVtiXX07JGpzY29tcC5wb2x5ZmlsbD1mdW5jdGlvbihhLGIsYyxkKXtiJiYoJGpzY29tcC5JU09MQVRFX1BPTFlGSUxMUz8kanNjb21wLnBvbHlmaWxsSXNvbGF0ZWQoYSxiLGMsZCk6JGpzY29tcC5wb2x5ZmlsbFVuaXNvbGF0ZWQoYSxiLGMsZCkpfTsKJGpzY29tcC5wb2x5ZmlsbFVuaXNvbGF0ZWQ9ZnVuY3Rpb24oYSxiLGMsZCl7Yz0kanNjb21wLmdsb2JhbDthPWEuc3BsaXQoIi4iKTtmb3IoZD0wO2Q8YS5sZW5ndGgtMTtkKyspe3ZhciBlPWFbZF07aWYoIShlIGluIGMpKXJldHVybjtjPWNbZV19YT1hW2EubGVuZ3RoLTFdO2Q9Y1thXTtiPWIoZCk7YiE9ZCYmbnVsbCE9YiYmJGpzY29tcC5kZWZpbmVQcm9wZXJ0eShjLGEse2NvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpifSl9OwokanNjb21wLnBvbHlmaWxsSXNvbGF0ZWQ9ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU9YS5zcGxpdCgiLiIpO2E9MT09PWUubGVuZ3RoO2Q9ZVswXTtkPSFhJiZkIGluICRqc2NvbXAucG9seWZpbGxzPyRqc2NvbXAucG9seWZpbGxzOiRqc2NvbXAuZ2xvYmFsO2Zvcih2YXIgZj0wO2Y8ZS5sZW5ndGgtMTtmKyspe3ZhciBnPWVbZl07aWYoIShnIGluIGQpKXJldHVybjtkPWRbZ119ZT1lW2UubGVuZ3RoLTFdO2M9JGpzY29tcC5JU19TWU1CT0xfTkFUSVZFJiYiZXM2Ij09PWM\/ZFtlXTpudWxsO2I9YihjKTtudWxsIT1iJiYoYT8kanNjb21wLmRlZmluZVByb3BlcnR5KCRqc2NvbXAucG9seWZpbGxzLGUse2NvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpifSk6YiE9PWMmJih2b2lkIDA9PT0kanNjb21wLnByb3BlcnR5VG9Qb2x5ZmlsbFN5bWJvbFtlXSYmKGM9MUU5Kk1hdGgucmFuZG9tKCk+Pj4wLCRqc2NvbXAucHJvcGVydHlUb1BvbHlmaWxsU3ltYm9sW2VdPSRqc2NvbXAuSVNfU1lNQk9MX05BVElWRT8KJGpzY29tcC5nbG9iYWwuU3ltYm9sKGUpOiRqc2NvbXAuUE9MWUZJTExfUFJFRklYK2MrIiQiK2UpLCRqc2NvbXAuZGVmaW5lUHJvcGVydHkoZCwkanNjb21wLnByb3BlcnR5VG9Qb2x5ZmlsbFN5bWJvbFtlXSx7Y29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmJ9KSkpfTskanNjb21wLnVuZGVyc2NvcmVQcm90b0NhbkJlU2V0PWZ1bmN0aW9uKCl7dmFyIGE9e2E6ITB9LGI9e307dHJ5e3JldHVybiBiLl9fcHJvdG9fXz1hLGIuYX1jYXRjaChjKXt9cmV0dXJuITF9OwokanNjb21wLnNldFByb3RvdHlwZU9mPSRqc2NvbXAuVFJVU1RfRVM2X1BPTFlGSUxMUyYmImZ1bmN0aW9uIj09dHlwZW9mIE9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2Y6JGpzY29tcC51bmRlcnNjb3JlUHJvdG9DYW5CZVNldCgpP2Z1bmN0aW9uKGEsYil7YS5fX3Byb3RvX189YjtpZihhLl9fcHJvdG9fXyE9PWIpdGhyb3cgbmV3IFR5cGVFcnJvcihhKyIgaXMgbm90IGV4dGVuc2libGUiKTtyZXR1cm4gYX06bnVsbDskanNjb21wLmFycmF5SXRlcmF0b3JJbXBsPWZ1bmN0aW9uKGEpe3ZhciBiPTA7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGI8YS5sZW5ndGg\/e2RvbmU6ITEsdmFsdWU6YVtiKytdfTp7ZG9uZTohMH19fTskanNjb21wLmFycmF5SXRlcmF0b3I9ZnVuY3Rpb24oYSl7cmV0dXJue25leHQ6JGpzY29tcC5hcnJheUl0ZXJhdG9ySW1wbChhKX19OwokanNjb21wLm1ha2VJdGVyYXRvcj1mdW5jdGlvbihhKXt2YXIgYj0idW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmU3ltYm9sLml0ZXJhdG9yJiZhW1N5bWJvbC5pdGVyYXRvcl07cmV0dXJuIGI\/Yi5jYWxsKGEpOiRqc2NvbXAuYXJyYXlJdGVyYXRvcihhKX07JGpzY29tcC5nZW5lcmF0b3I9e307JGpzY29tcC5nZW5lcmF0b3IuZW5zdXJlSXRlcmF0b3JSZXN1bHRJc09iamVjdF89ZnVuY3Rpb24oYSl7aWYoIShhIGluc3RhbmNlb2YgT2JqZWN0KSl0aHJvdyBuZXcgVHlwZUVycm9yKCJJdGVyYXRvciByZXN1bHQgIithKyIgaXMgbm90IGFuIG9iamVjdCIpO307CiRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQ9ZnVuY3Rpb24oKXt0aGlzLmlzUnVubmluZ189ITE7dGhpcy55aWVsZEFsbEl0ZXJhdG9yXz1udWxsO3RoaXMueWllbGRSZXN1bHQ9dm9pZCAwO3RoaXMubmV4dEFkZHJlc3M9MTt0aGlzLmZpbmFsbHlBZGRyZXNzXz10aGlzLmNhdGNoQWRkcmVzc189MDt0aGlzLmZpbmFsbHlDb250ZXh0c189dGhpcy5hYnJ1cHRDb21wbGV0aW9uXz1udWxsfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5zdGFydF89ZnVuY3Rpb24oKXtpZih0aGlzLmlzUnVubmluZ18pdGhyb3cgbmV3IFR5cGVFcnJvcigiR2VuZXJhdG9yIGlzIGFscmVhZHkgcnVubmluZyIpO3RoaXMuaXNSdW5uaW5nXz0hMH07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuc3RvcF89ZnVuY3Rpb24oKXt0aGlzLmlzUnVubmluZ189ITF9OwokanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5qdW1wVG9FcnJvckhhbmRsZXJfPWZ1bmN0aW9uKCl7dGhpcy5uZXh0QWRkcmVzcz10aGlzLmNhdGNoQWRkcmVzc198fHRoaXMuZmluYWxseUFkZHJlc3NffTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5uZXh0Xz1mdW5jdGlvbihhKXt0aGlzLnlpZWxkUmVzdWx0PWF9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLnRocm93Xz1mdW5jdGlvbihhKXt0aGlzLmFicnVwdENvbXBsZXRpb25fPXtleGNlcHRpb246YSxpc0V4Y2VwdGlvbjohMH07dGhpcy5qdW1wVG9FcnJvckhhbmRsZXJfKCl9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLnJldHVybj1mdW5jdGlvbihhKXt0aGlzLmFicnVwdENvbXBsZXRpb25fPXtyZXR1cm46YX07dGhpcy5uZXh0QWRkcmVzcz10aGlzLmZpbmFsbHlBZGRyZXNzX307CiRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmp1bXBUaHJvdWdoRmluYWxseUJsb2Nrcz1mdW5jdGlvbihhKXt0aGlzLmFicnVwdENvbXBsZXRpb25fPXtqdW1wVG86YX07dGhpcy5uZXh0QWRkcmVzcz10aGlzLmZpbmFsbHlBZGRyZXNzX307JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUueWllbGQ9ZnVuY3Rpb24oYSxiKXt0aGlzLm5leHRBZGRyZXNzPWI7cmV0dXJue3ZhbHVlOmF9fTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS55aWVsZEFsbD1mdW5jdGlvbihhLGIpe2E9JGpzY29tcC5tYWtlSXRlcmF0b3IoYSk7dmFyIGM9YS5uZXh0KCk7JGpzY29tcC5nZW5lcmF0b3IuZW5zdXJlSXRlcmF0b3JSZXN1bHRJc09iamVjdF8oYyk7aWYoYy5kb25lKXRoaXMueWllbGRSZXN1bHQ9Yy52YWx1ZSx0aGlzLm5leHRBZGRyZXNzPWI7ZWxzZSByZXR1cm4gdGhpcy55aWVsZEFsbEl0ZXJhdG9yXz1hLHRoaXMueWllbGQoYy52YWx1ZSxiKX07CiRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmp1bXBUbz1mdW5jdGlvbihhKXt0aGlzLm5leHRBZGRyZXNzPWF9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmp1bXBUb0VuZD1mdW5jdGlvbigpe3RoaXMubmV4dEFkZHJlc3M9MH07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuc2V0Q2F0Y2hGaW5hbGx5QmxvY2tzPWZ1bmN0aW9uKGEsYil7dGhpcy5jYXRjaEFkZHJlc3NfPWE7dm9pZCAwIT1iJiYodGhpcy5maW5hbGx5QWRkcmVzc189Yil9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLnNldEZpbmFsbHlCbG9jaz1mdW5jdGlvbihhKXt0aGlzLmNhdGNoQWRkcmVzc189MDt0aGlzLmZpbmFsbHlBZGRyZXNzXz1hfHwwfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5sZWF2ZVRyeUJsb2NrPWZ1bmN0aW9uKGEsYil7dGhpcy5uZXh0QWRkcmVzcz1hO3RoaXMuY2F0Y2hBZGRyZXNzXz1ifHwwfTsKJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuZW50ZXJDYXRjaEJsb2NrPWZ1bmN0aW9uKGEpe3RoaXMuY2F0Y2hBZGRyZXNzXz1hfHwwO2E9dGhpcy5hYnJ1cHRDb21wbGV0aW9uXy5leGNlcHRpb247dGhpcy5hYnJ1cHRDb21wbGV0aW9uXz1udWxsO3JldHVybiBhfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5lbnRlckZpbmFsbHlCbG9jaz1mdW5jdGlvbihhLGIsYyl7Yz90aGlzLmZpbmFsbHlDb250ZXh0c19bY109dGhpcy5hYnJ1cHRDb21wbGV0aW9uXzp0aGlzLmZpbmFsbHlDb250ZXh0c189W3RoaXMuYWJydXB0Q29tcGxldGlvbl9dO3RoaXMuY2F0Y2hBZGRyZXNzXz1hfHwwO3RoaXMuZmluYWxseUFkZHJlc3NfPWJ8fDB9OwokanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5sZWF2ZUZpbmFsbHlCbG9jaz1mdW5jdGlvbihhLGIpe2I9dGhpcy5maW5hbGx5Q29udGV4dHNfLnNwbGljZShifHwwKVswXTtpZihiPXRoaXMuYWJydXB0Q29tcGxldGlvbl89dGhpcy5hYnJ1cHRDb21wbGV0aW9uX3x8Yil7aWYoYi5pc0V4Y2VwdGlvbilyZXR1cm4gdGhpcy5qdW1wVG9FcnJvckhhbmRsZXJfKCk7dm9pZCAwIT1iLmp1bXBUbyYmdGhpcy5maW5hbGx5QWRkcmVzc188Yi5qdW1wVG8\/KHRoaXMubmV4dEFkZHJlc3M9Yi5qdW1wVG8sdGhpcy5hYnJ1cHRDb21wbGV0aW9uXz1udWxsKTp0aGlzLm5leHRBZGRyZXNzPXRoaXMuZmluYWxseUFkZHJlc3NffWVsc2UgdGhpcy5uZXh0QWRkcmVzcz1hfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5mb3JJbj1mdW5jdGlvbihhKXtyZXR1cm4gbmV3ICRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQuUHJvcGVydHlJdGVyYXRvcihhKX07CiRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQuUHJvcGVydHlJdGVyYXRvcj1mdW5jdGlvbihhKXt0aGlzLm9iamVjdF89YTt0aGlzLnByb3BlcnRpZXNfPVtdO2Zvcih2YXIgYiBpbiBhKXRoaXMucHJvcGVydGllc18ucHVzaChiKTt0aGlzLnByb3BlcnRpZXNfLnJldmVyc2UoKX07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5Qcm9wZXJ0eUl0ZXJhdG9yLnByb3RvdHlwZS5nZXROZXh0PWZ1bmN0aW9uKCl7Zm9yKDswPHRoaXMucHJvcGVydGllc18ubGVuZ3RoOyl7dmFyIGE9dGhpcy5wcm9wZXJ0aWVzXy5wb3AoKTtpZihhIGluIHRoaXMub2JqZWN0XylyZXR1cm4gYX1yZXR1cm4gbnVsbH07JGpzY29tcC5nZW5lcmF0b3IuRW5naW5lXz1mdW5jdGlvbihhKXt0aGlzLmNvbnRleHRfPW5ldyAkanNjb21wLmdlbmVyYXRvci5Db250ZXh0O3RoaXMucHJvZ3JhbV89YX07CiRqc2NvbXAuZ2VuZXJhdG9yLkVuZ2luZV8ucHJvdG90eXBlLm5leHRfPWZ1bmN0aW9uKGEpe3RoaXMuY29udGV4dF8uc3RhcnRfKCk7aWYodGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yXylyZXR1cm4gdGhpcy55aWVsZEFsbFN0ZXBfKHRoaXMuY29udGV4dF8ueWllbGRBbGxJdGVyYXRvcl8ubmV4dCxhLHRoaXMuY29udGV4dF8ubmV4dF8pO3RoaXMuY29udGV4dF8ubmV4dF8oYSk7cmV0dXJuIHRoaXMubmV4dFN0ZXBfKCl9OwokanNjb21wLmdlbmVyYXRvci5FbmdpbmVfLnByb3RvdHlwZS5yZXR1cm5fPWZ1bmN0aW9uKGEpe3RoaXMuY29udGV4dF8uc3RhcnRfKCk7dmFyIGI9dGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yXztpZihiKXJldHVybiB0aGlzLnlpZWxkQWxsU3RlcF8oInJldHVybiJpbiBiP2JbInJldHVybiJdOmZ1bmN0aW9uKGMpe3JldHVybnt2YWx1ZTpjLGRvbmU6ITB9fSxhLHRoaXMuY29udGV4dF8ucmV0dXJuKTt0aGlzLmNvbnRleHRfLnJldHVybihhKTtyZXR1cm4gdGhpcy5uZXh0U3RlcF8oKX07CiRqc2NvbXAuZ2VuZXJhdG9yLkVuZ2luZV8ucHJvdG90eXBlLnRocm93Xz1mdW5jdGlvbihhKXt0aGlzLmNvbnRleHRfLnN0YXJ0XygpO2lmKHRoaXMuY29udGV4dF8ueWllbGRBbGxJdGVyYXRvcl8pcmV0dXJuIHRoaXMueWllbGRBbGxTdGVwXyh0aGlzLmNvbnRleHRfLnlpZWxkQWxsSXRlcmF0b3JfWyJ0aHJvdyJdLGEsdGhpcy5jb250ZXh0Xy5uZXh0Xyk7dGhpcy5jb250ZXh0Xy50aHJvd18oYSk7cmV0dXJuIHRoaXMubmV4dFN0ZXBfKCl9OwokanNjb21wLmdlbmVyYXRvci5FbmdpbmVfLnByb3RvdHlwZS55aWVsZEFsbFN0ZXBfPWZ1bmN0aW9uKGEsYixjKXt0cnl7dmFyIGQ9YS5jYWxsKHRoaXMuY29udGV4dF8ueWllbGRBbGxJdGVyYXRvcl8sYik7JGpzY29tcC5nZW5lcmF0b3IuZW5zdXJlSXRlcmF0b3JSZXN1bHRJc09iamVjdF8oZCk7aWYoIWQuZG9uZSlyZXR1cm4gdGhpcy5jb250ZXh0Xy5zdG9wXygpLGQ7dmFyIGU9ZC52YWx1ZX1jYXRjaChmKXtyZXR1cm4gdGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yXz1udWxsLHRoaXMuY29udGV4dF8udGhyb3dfKGYpLHRoaXMubmV4dFN0ZXBfKCl9dGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yXz1udWxsO2MuY2FsbCh0aGlzLmNvbnRleHRfLGUpO3JldHVybiB0aGlzLm5leHRTdGVwXygpfTsKJGpzY29tcC5nZW5lcmF0b3IuRW5naW5lXy5wcm90b3R5cGUubmV4dFN0ZXBfPWZ1bmN0aW9uKCl7Zm9yKDt0aGlzLmNvbnRleHRfLm5leHRBZGRyZXNzOyl0cnl7dmFyIGE9dGhpcy5wcm9ncmFtXyh0aGlzLmNvbnRleHRfKTtpZihhKXJldHVybiB0aGlzLmNvbnRleHRfLnN0b3BfKCkse3ZhbHVlOmEudmFsdWUsZG9uZTohMX19Y2F0Y2goYil7dGhpcy5jb250ZXh0Xy55aWVsZFJlc3VsdD12b2lkIDAsdGhpcy5jb250ZXh0Xy50aHJvd18oYil9dGhpcy5jb250ZXh0Xy5zdG9wXygpO2lmKHRoaXMuY29udGV4dF8uYWJydXB0Q29tcGxldGlvbl8pe2E9dGhpcy5jb250ZXh0Xy5hYnJ1cHRDb21wbGV0aW9uXzt0aGlzLmNvbnRleHRfLmFicnVwdENvbXBsZXRpb25fPW51bGw7aWYoYS5pc0V4Y2VwdGlvbil0aHJvdyBhLmV4Y2VwdGlvbjtyZXR1cm57dmFsdWU6YS5yZXR1cm4sZG9uZTohMH19cmV0dXJue3ZhbHVlOnZvaWQgMCxkb25lOiEwfX07CiRqc2NvbXAuZ2VuZXJhdG9yLkdlbmVyYXRvcl89ZnVuY3Rpb24oYSl7dGhpcy5uZXh0PWZ1bmN0aW9uKGIpe3JldHVybiBhLm5leHRfKGIpfTt0aGlzLnRocm93PWZ1bmN0aW9uKGIpe3JldHVybiBhLnRocm93XyhiKX07dGhpcy5yZXR1cm49ZnVuY3Rpb24oYil7cmV0dXJuIGEucmV0dXJuXyhiKX07dGhpc1tTeW1ib2wuaXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9fTskanNjb21wLmdlbmVyYXRvci5jcmVhdGVHZW5lcmF0b3I9ZnVuY3Rpb24oYSxiKXtiPW5ldyAkanNjb21wLmdlbmVyYXRvci5HZW5lcmF0b3JfKG5ldyAkanNjb21wLmdlbmVyYXRvci5FbmdpbmVfKGIpKTskanNjb21wLnNldFByb3RvdHlwZU9mJiZhLnByb3RvdHlwZSYmJGpzY29tcC5zZXRQcm90b3R5cGVPZihiLGEucHJvdG90eXBlKTtyZXR1cm4gYn07CiRqc2NvbXAuYXN5bmNFeGVjdXRlUHJvbWlzZUdlbmVyYXRvcj1mdW5jdGlvbihhKXtmdW5jdGlvbiBiKGQpe3JldHVybiBhLm5leHQoZCl9ZnVuY3Rpb24gYyhkKXtyZXR1cm4gYS50aHJvdyhkKX1yZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24oZCxlKXtmdW5jdGlvbiBmKGcpe2cuZG9uZT9kKGcudmFsdWUpOlByb21pc2UucmVzb2x2ZShnLnZhbHVlKS50aGVuKGIsYykudGhlbihmLGUpfWYoYS5uZXh0KCkpfSl9OyRqc2NvbXAuYXN5bmNFeGVjdXRlUHJvbWlzZUdlbmVyYXRvckZ1bmN0aW9uPWZ1bmN0aW9uKGEpe3JldHVybiAkanNjb21wLmFzeW5jRXhlY3V0ZVByb21pc2VHZW5lcmF0b3IoYSgpKX07JGpzY29tcC5hc3luY0V4ZWN1dGVQcm9taXNlR2VuZXJhdG9yUHJvZ3JhbT1mdW5jdGlvbihhKXtyZXR1cm4gJGpzY29tcC5hc3luY0V4ZWN1dGVQcm9taXNlR2VuZXJhdG9yKG5ldyAkanNjb21wLmdlbmVyYXRvci5HZW5lcmF0b3JfKG5ldyAkanNjb21wLmdlbmVyYXRvci5FbmdpbmVfKGEpKSl9Owpjb25zdCBjb250ZW50QmxvY2tzPSgpPT57Y29uc3QgYT1iPT4kanNjb21wLmFzeW5jRXhlY3V0ZVByb21pc2VHZW5lcmF0b3JGdW5jdGlvbihmdW5jdGlvbiooKXt2YXIgYz1iLmRhdGFzZXQsZCxlPW51bGw9PShkPWIucXVlcnlTZWxlY3RvcignaW5wdXRbbmFtZT0iYmxvY2stZGF0YSJdJykpP3ZvaWQgMDpkLnZhbHVlO2Q9IkZSRU5DSCI9PWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNhY3RpdmVzaXRlbGFuZ3VhZ2UiKS52YWx1ZT8iZnIiOiJlbiI7Yz1PYmplY3QuYXNzaWduKHt9LGMse2RhdGE6ZXx8Int9In0pO2M9eWllbGQoeWllbGQgZmV0Y2goYC8ke2VuY29kZVVSSUNvbXBvbmVudChkKX0vYWpheC9nZXRTa2VsZXRvbkNvbnRlbnRgLHttZXRob2Q6IlBPU1QiLGhlYWRlcnM6e0FjY2VwdDoiYXBwbGljYXRpb24vanNvbiIsIkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZDsiLGNoYXJzZXQ6IlVURi04In0sYm9keTpuZXcgVVJMU2VhcmNoUGFyYW1zKGMpfSkpLmpzb24oKTsKaWYoInVuZGVmaW5lZCIhPXR5cGVvZiBjLnN0YXR1cyYmInN1Y2Nlc3MiPT1jLnN0YXR1cylpZihjPWMuY29udGVudCwxPmMubGVuZ3RoKWIucmVwbGFjZVdpdGgoIiIpO2Vsc2V7Yz1kb2N1bWVudC5jcmVhdGVSYW5nZSgpLmNyZWF0ZUNvbnRleHR1YWxGcmFnbWVudChjKS5jaGlsZHJlblswXTt2YXIgZjtlPW51bGw9PShmPWIuZGF0YXNldCk\/dm9pZCAwOmYuY2FsbGJhY2s7Yi5wYXJlbnRFbGVtZW50LmRhdGFzZXQubG9hZGVkPSIxIjtiLnJlcGxhY2VXaXRoKGMpO2UmJiJmdW5jdGlvbiI9PT10eXBlb2YgaGFuZGxlcnNbZV0mJmhhbmRsZXJzW2VdKGMpLmluaXQoKX19KTtoYW5kbGVycz17cGF5bWVudENhbGNCbG9jazpiPT57Y29uc3QgYz1iLmNsb3Nlc3QoIi5kaXZDYXJTaW5nbGVJbm5lckJveCIpO3JldHVybntpbml0OigpPT57JChiKS5maW5kKCIucGF5bWVudFRvb2x0aXAiKS5lYWNoKGZ1bmN0aW9uKCl7dHJ5e3ZhciBkPSQodGhpcykuYXR0cigiZGF0YS10b29sdGlwIik7CiQodGhpcykuZGFya1Rvb2x0aXAoe2NvbnRlbnQ6ZCxncmF2aXR5OiJlYXN0Iix0aGVtZToibGlnaHQiLHRyaWdnZXI6ImNsaWNrIixhbmltYXRpb246ImZsaXBJbiJ9KX1jYXRjaChlKXt9fSk7Yi5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWVudGVyIixmdW5jdGlvbihkKXtkLnN0b3BQcm9wYWdhdGlvbigpO2lmKGIuZGF0YXNldC50b29sdGlwQ3JlYXRlZClyZXR1cm4hMTtiLmRhdGFzZXQudG9vbHRpcENyZWF0ZWQ9IjEiOyQoZC5jdXJyZW50VGFyZ2V0LnF1ZXJ5U2VsZWN0b3IoIi5jYXItZmluYW5jZS1pbmZvIikpLmRhcmtUb29sdGlwKHtncmF2aXR5OiJ3ZXN0Iix0aGVtZToibGlnaHQiLHRyaWdnZXI6ImhvdmVyIixhbmltYXRpb246ImZsaXBJbiJ9KX0pO2IucXVlcnlTZWxlY3RvcigiLmNhci1maW5hbmNlLWluZm8iKS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oZCl7ZC5wcmV2ZW50RGVmYXVsdCgpO2lmKCFjKXJldHVybiExO2lmKCJTVVAiPT1kLnRhcmdldC50YWdOYW1lJiYKZC50YXJnZXQuaGFzQXR0cmlidXRlKCJkYXRhLWRpc2NsYWltZXItZGl2aWQiKSYmdm9pZCAwIT1kckRpc2NsYWltZXJKUylyZXR1cm4gZD1kLnRhcmdldC5nZXRBdHRyaWJ1dGUoImRhdGEtZGlzY2xhaW1lci1kaXZpZCIpLGRyRGlzY2xhaW1lckpTLm9wZW5EaXNjbGFpbWVyRGl2KGQpLCExO2Q9Yy5xdWVyeVNlbGVjdG9yKCIuZGl2Q2FyVGl0bGVDb250YWluZXIgYSIpLmhyZWY7d2luZG93Lm9wZW4oZCwiX3NlbGYiKX0pfX19fTtyZXR1cm57c2V0QmxvY2tPYnNlcnZlcjooKT0+e2NvbnN0IGI9bmV3IEludGVyc2VjdGlvbk9ic2VydmVyKGQ9PntkLmZvckVhY2goZT0+e2UuaXNJbnRlcnNlY3RpbmcmJihlLnRhcmdldC5jbGFzc0xpc3QuYWRkKCJhY3RpdmUiKSxiLnVub2JzZXJ2ZShlLnRhcmdldCksY29uc29sZS5sb2coInNrZWxldG9uIG9ic2VydmVkICIrZS50YXJnZXQpLGEoZS50YXJnZXQpKX0pfSx7dGhyZXNob2xkOi4xfSksYz1uZXcgVVJMU2VhcmNoUGFyYW1zKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2gpOwpkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIuY29udGVudC1za2VsZXRvbiIpLmZvckVhY2goZD0+e2Iub2JzZXJ2ZShkKTsic2tlbGV0b24iPT09Yy5nZXQoImRlYnVnIikmJmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5jb250ZW50LXNrZWxldG9uIikuZm9yRWFjaChlPT5lLmNsYXNzTGlzdC5hZGQoImRlYnVnIikpfSl9LGhhbmRsZXJzfX07ZG9jUmVhZHlBcnIucHVzaCgoKT0+eyJmdW5jdGlvbiI9PT10eXBlb2YgY29udGVudEJsb2NrcyYmY29udGVudEJsb2NrcygpLnNldEJsb2NrT2JzZXJ2ZXIoKX0pOwovKiogL2pzL3ZhbmlsbGFqcy9jb29raWVzLmpzICoqLwp2YXIgX19fZDJjX2Nvb2tpZXNqc19jX29uPSIyMDI2LTAxLTEyIDEwOjEzOjI1IjsndXNlIHN0cmljdCc7KGZ1bmN0aW9uKCl7ZnVuY3Rpb24gbChhLGMsYixoLGQsZixlKXt2YXIgZz0iIjtpZihiKXtsZXQgaz1uZXcgRGF0ZTtrLnNldEZ1bGxZZWFyKGsuZ2V0RnVsbFllYXIoKSsxKTtzd2l0Y2goYi5jb25zdHJ1Y3Rvcil7Y2FzZSBOdW1iZXI6MzY1PGImJihiPTM2NSk7Zz1uZXcgRGF0ZTtnLnNldERhdGUoZy5nZXREYXRlKCkrYik7Zz1JbmZpbml0eT09PWI\/IjsgZXhwaXJlcz1GcmksIDMxIERlYyA5OTk5IDIzOjU5OjU5IEdNVCI6IjsgZXhwaXJlcz0iK2cudG9VVENTdHJpbmcoKTticmVhaztjYXNlIFN0cmluZzpuZXcgRGF0ZShiKT5rJiYoYj1rLnRvVVRDU3RyaW5nKCkpO2c9IjsgZXhwaXJlcz0iK2I7YnJlYWs7Y2FzZSBEYXRlOmI+ayYmKGI9ayksZz0iOyBleHBpcmVzPSIrYi50b1VUQ1N0cmluZygpfX0idW5kZWZpbmVkIj09PXR5cGVvZiBmJiYoZj0iaHR0cHM6Ij09PXdpbmRvdy5sb2NhdGlvbi5wcm90b2NvbCk7cmV0dXJuIGVuY29kZVVSSUNvbXBvbmVudChhKSsKIj0iK2VuY29kZVVSSUNvbXBvbmVudChjKStnKyhkPyI7IGRvbWFpbj0iK2Q6IiIpKyhoPyI7IHBhdGg9IitoOiIiKSsoZj8iOyBzZWN1cmUiOiIiKSsoZSYmIm5vX3Jlc3RyaWN0aW9uIiE9PWUudG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpPyJsYXgiPT09ZS50b1N0cmluZygpLnRvTG93ZXJDYXNlKCl8fDE9PT1NYXRoLmNlaWwoZSl8fCEwPT09ZT8iOyBzYW1lc2l0ZT1sYXgiOiJub25lIj09PWUudG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpfHwwPmU\/Ijsgc2FtZXNpdGU9bm9uZSI6Ijsgc2FtZXNpdGU9c3RyaWN0IjoiIil9ZnVuY3Rpb24gbShhLGMpe2lmKCJ1bmRlZmluZWQiPT09dHlwZW9mIGF8fG51bGw9PT1hKXJldHVybi0xO3N3aXRjaChhLmNvbnN0cnVjdG9yKXtjYXNlIE51bWJlcjppZigibnVtYmVyIj09PWMpdmFyIGI9ODY0MDAqYTtlbHNlIGI9bmV3IERhdGUsYi5zZXREYXRlKGIuZ2V0RGF0ZSgpK2EpLGI9SW5maW5pdHk9PT1hPyJGcmksIDMxIERlYyA5OTk5IDIzOjU5OjU5IEdNVCI6CmIudG9VVENTdHJpbmcoKTticmVhaztjYXNlIFN0cmluZzoic3RyaW5nIj09PWM\/Yj1hOihiPW5ldyBEYXRlLGI9KChuZXcgRGF0ZShhKSkuZ2V0VGltZSgpLWIuZ2V0VGltZSgpKS8xRTMpO2JyZWFrO2Nhc2UgRGF0ZToic3RyaW5nIj09PWM\/Yj1hLnRvVVRDU3RyaW5nKCk6KGI9bmV3IERhdGUsYj0oYS5nZXRUaW1lKCktYi5nZXRUaW1lKCkpLzFFMyl9Im51bWJlciI9PT1jJiYoYj1NYXRoLnJvdW5kKGIpKTtyZXR1cm4gYn12YXIgbj0vW1wtXC5cK1wqXS9nLHA9L14oPzpleHBpcmVzfG1heFwtYWdlfHBhdGh8ZG9tYWlufHNlY3VyZXxzYW1lc2l0ZXxodHRwb25seSkkL2kscT0idXRtX2NhbXBhaWduIHV0bV9rZXl3b3JkIHV0bV9sYW5kaW5nIHV0bV9sYW5kaW5nX2Zvb3RlciB1dG1fbWVkaXVtIHV0bV9zb3VyY2UgdXRtX2NhbXBhaWduX3JldGFyZ2V0aW5nIHV0bV9zb3VyY2VfcmV0YXJnZXRpbmcgRGlzcGxheVNvdXJjZVVUTUNhbXBhaWduIERpc3BsYXlTb3VyY2VVVE1Tb3VyY2UiLnNwbGl0KCIgIik7CndpbmRvdy5Db29raWVzPXtnZXQ6ZnVuY3Rpb24oYSl7cmV0dXJuIGE\/ZGVjb2RlVVJJQ29tcG9uZW50KGRvY3VtZW50LmNvb2tpZS5yZXBsYWNlKG5ldyBSZWdFeHAoIig\/Oig\/Ol58Lio7KVxccyoiK2VuY29kZVVSSUNvbXBvbmVudChhKS5yZXBsYWNlKG4sIlxcJCYiKSsiXFxzKlxcPVxccyooW147XSopLiokKXxeLiokIiksIiQxIikpfHxudWxsOm51bGx9LHNldDpmdW5jdGlvbihhLGMsYixoLGQsZixlKXtyZXR1cm4hYXx8cC50ZXN0KGEpPyExOkNvb2tpZXMuaXNDb29raWVBbGxvd2VkKGEsZnVuY3Rpb24oZyl7ZD1kP2Q6IiI7Zj1udWxsPT1mPyEwOmY7ZT1udWxsPT1lPyJOb25lIjplO0Nvb2tpZXMubG9nKGEsYyxiLGgsZCk7aWYoIWcpcmV0dXJuLTE8cS5pbmRleE9mKGEpJiZudWxsPT1Db29raWVzLmdldCgiZDJjX2Nvb2tpZV9jb25zZW50IikmJihnPXNlc3Npb25TdG9yYWdlLmdldEl0ZW0oImQyY19jb25zZW50X3dhaXQiKSxnPW51bGwhPWc\/SlNPTi5wYXJzZShhdG9iKGcpKToKe30sZ1thXT17a2V5OmEsdmFsdWU6YyxleHBpcmVzOmIscGF0aDpoLGRvbWFpbjpkfSx1dG1Db29raWVzU3RvcmFnZUpTT049SlNPTi5zdHJpbmdpZnkoZyksc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSgiZDJjX2NvbnNlbnRfd2FpdCIsYnRvYSh1dG1Db29raWVzU3RvcmFnZUpTT04pKSksQ29va2llcy5yZW1vdmUoYSxoLGQsZixlKSwhMTtkb2N1bWVudC5jb29raWU9bChhLGMsYixoLGQsZixlKTtyZXR1cm4hMH0pfSxyZW1vdmU6ZnVuY3Rpb24oYSxjLGIsaCxkKXtpZighdGhpcy5oYXMoYSkpcmV0dXJuITE7ZG9jdW1lbnQuY29va2llPWwoYSwiIiwiVGh1LCAwMSBKYW4gMTk3MCAwMDowMDowMCBHTVQiLGMsYixoLGQpO3JldHVybiEwfSxoYXM6ZnVuY3Rpb24oYSl7cmV0dXJuIWF8fHAudGVzdChhKT8hMToobmV3IFJlZ0V4cCgiKD86Xnw7XFxzKikiK2VuY29kZVVSSUNvbXBvbmVudChhKS5yZXBsYWNlKG4sIlxcJCYiKSsiXFxzKlxcPSIpKS50ZXN0KGRvY3VtZW50LmNvb2tpZSl9LAprZXlzOmZ1bmN0aW9uKCl7Zm9yKHZhciBhPWRvY3VtZW50LmNvb2tpZS5yZXBsYWNlKC8oKD86Xnxccyo7KVtePV0rKSg\/PTt8JCl8XlxzKnxccyooPzo9W147XSopPyg\/OlwxfCQpL2csIiIpLnNwbGl0KC9ccyooPzo9W147XSopPztccyovKSxjPWEubGVuZ3RoLGI9MDtiPGM7YisrKWFbYl09ZGVjb2RlVVJJQ29tcG9uZW50KGFbYl0pO3JldHVybiBhfSxjbGVhcjpmdW5jdGlvbihhLGMsYixoKXtmb3IodmFyIGQ9dGhpcy5rZXlzKCksZj1kLmxlbmd0aCxlPTA7ZTxmO2UrKyl0aGlzLnJlbW92ZUl0ZW0oZFtlXSxhLGMsYixoKX0sbG9nOmZ1bmN0aW9uKGEsYyxiLGgsZCxmKXsidW5kZWZpbmVkIj09PXR5cGVvZiBmJiYoZj01KTsidW5kZWZpbmVkIj09PXR5cGVvZiB3aW5kb3cuQ29va2llTG9nZ2VyP2YmJnNldFRpbWVvdXQoZnVuY3Rpb24oKXtDb29raWVzLmxvZyhhLGMsYixoLGQsZi0xKX0sMUUzKTp3aW5kb3cuQ29va2llTG9nZ2VyLmxvZyhhLGMsYixoLGQpfSxpc0Nvb2tpZUFsbG93ZWQ6ZnVuY3Rpb24oYSwKYyl7cmV0dXJuInVuZGVmaW5lZCI9PT10eXBlb2Ygd2luZG93LkNvb2tpZUNvbnNlbnR8fCJ1bmRlZmluZWQiPT09dHlwZW9mIHdpbmRvdy5Db29raWVDb25zZW50LmlzQ29va2llQWxsb3dlZD9jKCEwKTp3aW5kb3cuQ29va2llQ29uc2VudC5pc0Nvb2tpZUFsbG93ZWQoYSxjKX19O3dpbmRvdy5Db29raWVMb2dnZXI9e19zdGFjazpbXSxpbml0OmZ1bmN0aW9uKCl7bGV0IGE9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRlYWxlclByb3ZpbmNlQ29kZSIpO2EmJiJRQyI9PW5ldyBTdHJpbmcoYS52YWx1ZSkmJjE9PU1hdGguZmxvb3IoMypNYXRoLnJhbmRvbSgpKSYmZmV0Y2goIi9wcm94eV9yZDJjL2QyY2FwaS9sb2cvY29va2llcy9hY3RpdmUiKS50aGVuKGZ1bmN0aW9uKGMpe3JldHVybiBjLmpzb24oKX0pLnRoZW4oZnVuY3Rpb24oYyl7ImFjdGl2ZSI9PT1jLnN0YXR1cyYmQ29va2llTG9nZ2VyLndhaXRTdGFjaygpfSl9LGxvZzpmdW5jdGlvbihhLGMsYixoLGQpe2lmKCJsaXZlIj09PQp3aW5kb3cuZGVwbG95bWVudFR5cGUudG9Mb3dlckNhc2UoKSl7ZGVidWcoIkxvZ2dpbmcgY29va2llOiIse25hbWU6YSx2YWx1ZTpjfHwiIixkdXJhdGlvbjptKGIsIm51bWJlciIpLHBhdGg6aCxkb21haW46ZH0pO3ZhciBmLGUsZz0idW5kZWZpbmVkIiE9dHlwZW9mIGN1cnJlbnRTaXRlSUQ\/Y3VycmVudFNpdGVJRDpudWxsIT0oZT1udWxsPT0oZj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2l0ZUlEIikpP3ZvaWQgMDpmLnZhbHVlKT9lOiIiO3RoaXMuX3N0YWNrLnB1c2goe25hbWU6YSxkdXJhdGlvbjptKGIsIm51bWJlciIpLHBhdGg6aHx8Ii8iLGRvbWFpbjpkfHx3aW5kb3cubG9jYXRpb24uaG9zdG5hbWUsdXJpOndpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSxzaXRlaWQ6Zyx2YWx1ZTpidG9hKGMpfSl9fSxfc2VuZFN0YWNrOmZ1bmN0aW9uKCl7aWYoMCE9PXRoaXMuX3N0YWNrLmxlbmd0aCl7dmFyIGE9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvb2tpZUxvZ1Rva2VuIik\/CmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb29raWVMb2dUb2tlbiIpLnZhbHVlOm51bGw7aWYoYSl7dmFyIGM9InVuZGVmaW5lZCIhPXR5cGVvZiBjdXJyZW50U2l0ZUlEP2N1cnJlbnRTaXRlSUQ6ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNpdGVJRCIpP2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzaXRlSUQiKS52YWx1ZToiIjsobmV3IFdvcmtlcigiL2pzL3ZhbmlsbGFqcy9jb29raWVXb3JrZXIuanMiKSkucG9zdE1lc3NhZ2Uoe3Rva2VuOmEsc2l0ZUlEOmMsc3RhY2s6Q29va2llTG9nZ2VyLl9zdGFja30pO0Nvb2tpZUxvZ2dlci5fc3RhY2s9W119ZWxzZSBkZWJ1ZygiTm8gY29va2llIGxvZyB0b2tlbiBmb3VuZC4iKX19LHdhaXRTdGFjazpmdW5jdGlvbigpeyJsaXZlIj09PXdpbmRvdy5kZXBsb3ltZW50VHlwZS50b0xvd2VyQ2FzZSgpJiYoc2V0VGltZW91dChmdW5jdGlvbigpe0Nvb2tpZUxvZ2dlci5fc2VuZFN0YWNrKCl9LDFFNCksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImJlZm9yZXVubG9hZCIsCmZ1bmN0aW9uKCl7Q29va2llTG9nZ2VyLl9zZW5kU3RhY2soKX0pKX19O3dpbmRvdy5Db29raWVMb2dnZXIuaW5pdCgpfSkoKTsKLyoqIC9qcy9qcXVlcnkuYmFzZTY0LmpzICoqLwp2YXIgX19fZDJjX2pxdWVyeWJhc2U2NGpzX2Nfb249IjIwMjUtMDUtMjMgMTc6MDk6MjQiOyd1c2Ugc3RyaWN0Jzt2YXIgX19fZDJjX2pxdWVyeWJhc2U2NGpzX2Nfb249IjIwMjQtMDEtMzEgMTQ6MzU6NDgiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfanF1ZXJ5YmFzZTY0anNfY19vbj0iMjAyMy0wMS0xMiAxMTozNTo1OCI7InVzZSBzdHJpY3QiO19fX2QyY19qcXVlcnliYXNlNjRqc19jX29uPSIyMDIzLTAxLTEyIDEwOjQ1OjM5IjsidXNlIHN0cmljdCI7X19fZDJjX2pxdWVyeWJhc2U2NGpzX2Nfb249IjIwMjEtMTItMTUgMTI6NDM6MzQiOyJ1c2Ugc3RyaWN0IjsKalF1ZXJ5LmJhc2U2ND1mdW5jdGlvbihrKXtmdW5jdGlvbiBlKGEsYyl7YT0iQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLyIuaW5kZXhPZihhLmNoYXJBdChjKSk7aWYoLTE9PT1hKXRocm93IkNhbm5vdCBkZWNvZGUgYmFzZTY0IjtyZXR1cm4gYX1mdW5jdGlvbiBoKGEsYyl7YT1hLmNoYXJDb2RlQXQoYyk7aWYoMjU1PGEpdGhyb3ciSU5WQUxJRF9DSEFSQUNURVJfRVJSOiBET00gRXhjZXB0aW9uIDUiO3JldHVybiBhfXJldHVybntkZWNvZGU6ZnVuY3Rpb24oYSl7dmFyIGM9MCxiLGY9YS5sZW5ndGgsZD1bXTthPVN0cmluZyhhKTtpZigwPT09ZilyZXR1cm4gYTtpZigwIT09ZiU0KXRocm93IkNhbm5vdCBkZWNvZGUgYmFzZTY0IjsiPSI9PT1hLmNoYXJBdChmLTEpJiYoYz0xLCI9Ij09PWEuY2hhckF0KGYtMikmJihjPTIpLGYtPTQpO2ZvcihiPTA7YjxmO2IrPTQpe3ZhciBnPWUoYSxiKTw8MTh8ZShhLGIrMSk8PAoxMnxlKGEsYisyKTw8NnxlKGEsYiszKTtkLnB1c2goU3RyaW5nLmZyb21DaGFyQ29kZShnPj4xNixnPj44JjI1NSxnJjI1NSkpfXN3aXRjaChjKXtjYXNlIDE6Zz1lKGEsYik8PDE4fGUoYSxiKzEpPDwxMnxlKGEsYisyKTw8NjtkLnB1c2goU3RyaW5nLmZyb21DaGFyQ29kZShnPj4xNixnPj44JjI1NSkpO2JyZWFrO2Nhc2UgMjpnPWUoYSxiKTw8MTh8ZShhLGIrMSk8PDEyLGQucHVzaChTdHJpbmcuZnJvbUNoYXJDb2RlKGc+PjE2KSl9cmV0dXJuIGQuam9pbigiIil9LGVuY29kZTpmdW5jdGlvbihhKXtpZigxIT09YXJndW1lbnRzLmxlbmd0aCl0aHJvdyJTeW50YXhFcnJvcjogZXhhY3RseSBvbmUgYXJndW1lbnQgcmVxdWlyZWQiO2E9U3RyaW5nKGEpO3ZhciBjLGI9W10sZj1hLmxlbmd0aC1hLmxlbmd0aCUzO2lmKDA9PT1hLmxlbmd0aClyZXR1cm4gYTtmb3IoYz0wO2M8ZjtjKz0zKXt2YXIgZD1oKGEsYyk8PDE2fGgoYSxjKzEpPDw4fGgoYSxjKzIpO2IucHVzaCgiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLyIuY2hhckF0KGQ+PgoxOCkpO2IucHVzaCgiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLyIuY2hhckF0KGQ+PjEyJjYzKSk7Yi5wdXNoKCJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvIi5jaGFyQXQoZD4+NiY2MykpO2IucHVzaCgiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLyIuY2hhckF0KGQmNjMpKX1zd2l0Y2goYS5sZW5ndGgtZil7Y2FzZSAxOmQ9aChhLGMpPDwxNjtiLnB1c2goIkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5Ky8iLmNoYXJBdChkPj4xOCkrIkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5Ky8iLmNoYXJBdChkPj4xMiY2MykrIj09Iik7YnJlYWs7Y2FzZSAyOmQ9CmgoYSxjKTw8MTZ8aChhLGMrMSk8PDgsYi5wdXNoKCJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvIi5jaGFyQXQoZD4+MTgpKyJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvIi5jaGFyQXQoZD4+MTImNjMpKyJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvIi5jaGFyQXQoZD4+NiY2MykrIj0iKX1yZXR1cm4gYi5qb2luKCIiKX0sVkVSU0lPTjoiMS4wIn19KGpRdWVyeSk7Ci8qKiAvanMvanF1ZXJ5LmRhcmt0b29sdGlwLmpzICoqLwp2YXIgX19fZDJjX2pxdWVyeWRhcmt0b29sdGlwanNfY19vbj0iMjAyNS0wNS0yMyAxNzowOTo0OCI7J3VzZSBzdHJpY3QnO3ZhciBfX19kMmNfanF1ZXJ5ZGFya3Rvb2x0aXBqc19jX29uPSIyMDI0LTAzLTI1IDEyOjMzOjA3IjsidXNlIHN0cmljdCI7CihmdW5jdGlvbihiKXtmdW5jdGlvbiBlKGEsYyl7dGhpcy5iZWFyZXI9YTt0aGlzLm9wdGlvbnM9Yzt0aGlzLmhpZGVFdmVudDt0aGlzLmhpZGluZz0hMTt0aGlzLm1vdXNlT3Zlck1vZGU9ImhvdmVyIj09dGhpcy5vcHRpb25zLnRyaWdnZXJ8fCJtb3VzZW92ZXIiPT10aGlzLm9wdGlvbnMudHJpZ2dlcnx8Im9ubW91c2VvdmVyIj09dGhpcy5vcHRpb25zLnRyaWdnZXJ9ZS5wcm90b3R5cGU9e3Nob3c6ZnVuY3Rpb24oKXt2YXIgYT10aGlzO3RoaXMub3B0aW9ucy5tb2RhbCYmdGhpcy5tb2RhbExheWVyLmNzcygiZGlzcGxheSIsImJsb2NrIik7dGhpcy50b29sdGlwLmNzcygiZGlzcGxheSIsImJsb2NrIik7YS5tb3VzZU92ZXJNb2RlJiYodGhpcy50b29sdGlwLm9uKCJtb3VzZW92ZXIiLGZ1bmN0aW9uKCl7Y2xlYXJUaW1lb3V0KGEuaGlkZUV2ZW50KTthLmhpZGluZz0hMX0pLHRoaXMudG9vbHRpcC5vbigibW91c2VvdXQiLGZ1bmN0aW9uKCl7Y2xlYXJUaW1lb3V0KGEuaGlkZUV2ZW50KTsKYS5oaWRlKCk7YS5oaWRpbmc9ITF9KSl9LGhpZGU6ZnVuY3Rpb24oKXt2YXIgYT10aGlzO2EuaGlkaW5nfHwoYS5oaWRpbmc9ITAsdGhpcy5oaWRlRXZlbnQ9c2V0VGltZW91dChmdW5jdGlvbigpe2EuaGlkaW5nPSExO2EudG9vbHRpcC5oaWRlKCl9KSxhLm9wdGlvbnMubW9kYWwmJihhLmhpZGluZz0hMSxhLm1vZGFsTGF5ZXIuaGlkZSgpKSx0aGlzLm9wdGlvbnMub25DbG9zZSgpKX0sdG9nZ2xlOmZ1bmN0aW9uKCl7dGhpcy50b29sdGlwLmlzKCI6dmlzaWJsZSIpP3RoaXMuaGlkZSgpOnRoaXMuc2hvdygpfSxhZGRBbmltYXRpb246ZnVuY3Rpb24oKXtzd2l0Y2godGhpcy5vcHRpb25zLmFuaW1hdGlvbil7Y2FzZSAiZmFkZUluIjp0aGlzLnRvb2x0aXAuYWRkQ2xhc3MoImFuaW1hdGVkIik7dGhpcy50b29sdGlwLmFkZENsYXNzKCJmYWRlSW4iKTticmVhaztjYXNlICJmbGlwSW4iOnRoaXMudG9vbHRpcC5hZGRDbGFzcygiYW5pbWF0ZWQiKSx0aGlzLnRvb2x0aXAuYWRkQ2xhc3MoImZsaXBJbiIpfX0sCnNldENvbnRlbnQ6ZnVuY3Rpb24oKXtiKHRoaXMuYmVhcmVyKS5jc3MoImN1cnNvciIsInBvaW50ZXIiKTtpZih0aGlzLm9wdGlvbnMuY29udGVudCl0aGlzLmNvbnRlbnQ9dGhpcy5vcHRpb25zLmNvbnRlbnQ7ZWxzZSBpZih0aGlzLmJlYXJlci5hdHRyKCJkYXRhLXRvb2x0aXAiKSl0aGlzLmNvbnRlbnQ9dGhpcy5iZWFyZXIuYXR0cigiZGF0YS10b29sdGlwIik7ZWxzZSByZXR1cm47aWYoIiMiPT10aGlzLmNvbnRlbnQuY2hhckF0KDApKXtpZih0aGlzLm9wdGlvbnMuZGVsZXRlX2NvbnRlbnQpe3ZhciBhPWIodGhpcy5jb250ZW50KS5odG1sKCk7Yih0aGlzLmNvbnRlbnQpLmh0bWwoIiIpO3RoaXMuY29udGVudD1hO2RlbGV0ZSBhfWVsc2UgYih0aGlzLmNvbnRlbnQpLmhpZGUoKSx0aGlzLmNvbnRlbnQ9Yih0aGlzLmNvbnRlbnQpLmh0bWwoKTt0aGlzLmNvbnRlbnRUeXBlPSJodG1sIn1lbHNlIHRoaXMuY29udGVudFR5cGU9InRleHQiO2E9IiIhPXRoaXMuYmVhcmVyLmF0dHIoImlkIikmJgoidW5kZWZpbmVkIiE9dGhpcy5iZWFyZXIuYXR0cigiaWQiKT8iaWQ9J2Rhcmt0b29sdGlwLSIrdGhpcy5iZWFyZXIuYXR0cigiaWQiKSsiJyI6ImlkPSdkYXJrdG9vbHRpcC0iKyhEYXRlLm5vdygpK01hdGguZmxvb3IoMUU0Kk1hdGgucmFuZG9tKCkpKSsiJyI7MD09PWIoIklOUy5kYXJrdG9vbHRpcC1tb2RhbC1sYXllciIpLmxlbmd0aCYmKHRoaXMubW9kYWxMYXllcj1iKCI8aW5zIGNsYXNzPSdkYXJrdG9vbHRpcC1tb2RhbC1sYXllcic+PC9pbnM+IikpO3RoaXMudG9vbHRpcD1iKCI8aW5zICIrYSsiIGNsYXNzID0gJ2RhcmstdG9vbHRpcCAiK3RoaXMub3B0aW9ucy50aGVtZSsiICIrdGhpcy5vcHRpb25zLnNpemUrIiAiK3RoaXMub3B0aW9ucy5ncmF2aXR5KyInPjxkaXY+Iit0aGlzLmNvbnRlbnQrIjwvZGl2PjxkaXYgY2xhc3MgPSAndGlwJz48L2Rpdj48L2lucz4iKTt0aGlzLnRpcD10aGlzLnRvb2x0aXAuZmluZCgiLnRpcCIpO2IoImJvZHkiKS5hcHBlbmQodGhpcy5tb2RhbExheWVyKTsKYigiYm9keSIpLmFwcGVuZCh0aGlzLnRvb2x0aXApOyJodG1sIj09dGhpcy5jb250ZW50VHlwZSYmdGhpcy50b29sdGlwLmNzcygibWF4LXdpZHRoIiwibm9uZSIpO3RoaXMudG9vbHRpcC5jc3MoIm9wYWNpdHkiLHRoaXMub3B0aW9ucy5vcGFjaXR5KTt0aGlzLmFkZEFuaW1hdGlvbigpO3RoaXMub3B0aW9ucy5jb25maXJtJiZ0aGlzLmFkZENvbmZpcm0oKX0sc2V0UG9zaXRpb25zOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5iZWFyZXIub2Zmc2V0KCkubGVmdCxjPXRoaXMuYmVhcmVyLm9mZnNldCgpLnRvcDtzd2l0Y2godGhpcy5vcHRpb25zLmdyYXZpdHkpe2Nhc2UgInNvdXRoIjphKz10aGlzLmJlYXJlci5vdXRlcldpZHRoKCkvMi10aGlzLnRvb2x0aXAub3V0ZXJXaWR0aCgpLzI7Yys9LXRoaXMudG9vbHRpcC5vdXRlckhlaWdodCgpLXRoaXMudGlwLm91dGVySGVpZ2h0KCkvMjticmVhaztjYXNlICJ3ZXN0IjphKz10aGlzLmJlYXJlci5vdXRlcldpZHRoKCkrdGhpcy50aXAub3V0ZXJXaWR0aCgpLwoyO2MrPXRoaXMuYmVhcmVyLm91dGVySGVpZ2h0KCkvMi10aGlzLnRvb2x0aXAub3V0ZXJIZWlnaHQoKS8yO2JyZWFrO2Nhc2UgIm5vcnRoIjphKz10aGlzLmJlYXJlci5vdXRlcldpZHRoKCkvMi10aGlzLnRvb2x0aXAub3V0ZXJXaWR0aCgpLzI7Yys9dGhpcy5iZWFyZXIub3V0ZXJIZWlnaHQoKSt0aGlzLnRpcC5vdXRlckhlaWdodCgpLzI7YnJlYWs7Y2FzZSAiZWFzdCI6YSs9LXRoaXMudG9vbHRpcC5vdXRlcldpZHRoKCktdGhpcy50aXAub3V0ZXJXaWR0aCgpLzIsYys9dGhpcy5iZWFyZXIub3V0ZXJIZWlnaHQoKS8yLXRoaXMudG9vbHRpcC5vdXRlckhlaWdodCgpLzJ9dGhpcy5vcHRpb25zLmF1dG9MZWZ0JiZ0aGlzLnRvb2x0aXAuY3NzKCJsZWZ0IixhKTt0aGlzLm9wdGlvbnMuYXV0b1RvcCYmdGhpcy50b29sdGlwLmNzcygidG9wIixjKX0sc2V0RXZlbnRzOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcyxjPWEub3B0aW9ucy5ob3ZlckRlbGF5LGY7aWYoYS5tb3VzZU92ZXJNb2RlKXRoaXMuYmVhcmVyLm9uKCJtb3VzZWVudGVyIiwKZnVuY3Rpb24oKXtmPXNldFRpbWVvdXQoZnVuY3Rpb24oKXthLnNldFBvc2l0aW9ucygpO2Euc2hvdygpfSxjKX0pLm9uKCJtb3VzZWxlYXZlIixmdW5jdGlvbigpe2NsZWFyVGltZW91dChmKTthLmhpZGUoKX0pO2Vsc2UgaWYoImNsaWNrIj09dGhpcy5vcHRpb25zLnRyaWdnZXJ8fCJvbmNsaWsiPT10aGlzLm9wdGlvbnMudHJpZ2dlcil0aGlzLnRvb2x0aXAub24oImNsaWNrIixmdW5jdGlvbihkKXtkLnN0b3BQcm9wYWdhdGlvbigpfSksdGhpcy5iZWFyZXIub24oImNsaWNrIixmdW5jdGlvbihkKXtkLnByZXZlbnREZWZhdWx0KCk7YS5zZXRQb3NpdGlvbnMoKTthLnRvZ2dsZSgpO2Quc3RvcFByb3BhZ2F0aW9uKCl9KSxiKCJodG1sIikub24oImNsaWNrIixmdW5jdGlvbigpe2EuaGlkZSgpfSl9LGFjdGl2YXRlOmZ1bmN0aW9uKCl7dGhpcy5zZXRDb250ZW50KCk7dGhpcy5jb250ZW50JiZ0aGlzLnNldEV2ZW50cygpfSxhZGRDb25maXJtOmZ1bmN0aW9uKCl7dGhpcy50b29sdGlwLmFwcGVuZCgiPHVsIGNsYXNzID0gJ2NvbmZpcm0nPjxsaSBjbGFzcyA9ICdkYXJrdG9vbHRpcC15ZXMnPiIrCnRoaXMub3B0aW9ucy55ZXMrIjwvbGk+PGxpIGNsYXNzID0gJ2Rhcmt0b29sdGlwLW5vJz4iK3RoaXMub3B0aW9ucy5ubysiPC9saT48L3VsPiIpO3RoaXMuc2V0Q29uZmlybUV2ZW50cygpfSxzZXRDb25maXJtRXZlbnRzOmZ1bmN0aW9uKCl7dmFyIGE9dGhpczt0aGlzLnRvb2x0aXAuZmluZCgibGkuZGFya3Rvb2x0aXAteWVzIikub24oImNsaWNrIixmdW5jdGlvbihjKXthLm9uWWVzKCk7Yy5zdG9wUHJvcGFnYXRpb24oKX0pO3RoaXMudG9vbHRpcC5maW5kKCJsaS5kYXJrdG9vbHRpcC1ubyIpLm9uKCJjbGljayIsZnVuY3Rpb24oYyl7YS5vbk5vKCk7Yy5zdG9wUHJvcGFnYXRpb24oKX0pfSxmaW5hbE1lc3NhZ2U6ZnVuY3Rpb24oKXtpZih0aGlzLm9wdGlvbnMuZmluYWxNZXNzYWdlKXt2YXIgYT10aGlzO2EudG9vbHRpcC5maW5kKCJkaXY6Zmlyc3QiKS5odG1sKHRoaXMub3B0aW9ucy5maW5hbE1lc3NhZ2UpO2EudG9vbHRpcC5maW5kKCJ1bCIpLnJlbW92ZSgpO2Euc2V0UG9zaXRpb25zKCk7CnNldFRpbWVvdXQoZnVuY3Rpb24oKXthLmhpZGUoKTthLnNldENvbnRlbnQoKX0sYS5vcHRpb25zLmZpbmFsTWVzc2FnZUR1cmF0aW9uKX1lbHNlIHRoaXMuaGlkZSgpfSxvblllczpmdW5jdGlvbigpe3RoaXMub3B0aW9ucy5vblllcyh0aGlzLmJlYXJlcik7dGhpcy5maW5hbE1lc3NhZ2UoKX0sb25ObzpmdW5jdGlvbigpe3RoaXMub3B0aW9ucy5vbk5vKHRoaXMuYmVhcmVyKTt0aGlzLmhpZGUoKX19O2IuZm4uZGFya1Rvb2x0aXA9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe2E9Yi5leHRlbmQoe30sYi5mbi5kYXJrVG9vbHRpcC5kZWZhdWx0cyxhKTsobmV3IGUoYih0aGlzKSxhKSkuYWN0aXZhdGUoKX0pfTtiLmZuLmRhcmtUb29sdGlwLmRlZmF1bHRzPXthbmltYXRpb246Im5vbmUiLGNvbmZpcm06ITEsY29udGVudDoiIixmaW5hbE1lc3NhZ2U6IiIsZmluYWxNZXNzYWdlRHVyYXRpb246MUUzLGdyYXZpdHk6InNvdXRoIixob3ZlckRlbGF5OjAsbW9kYWw6ITEsCm5vOiJObyIsb25ObzpmdW5jdGlvbigpe30sb25ZZXM6ZnVuY3Rpb24oKXt9LG9wYWNpdHk6Ljksc2l6ZToibWVkaXVtIix0aGVtZToiZGFyayIsdHJpZ2dlcjoiaG92ZXIiLHllczoiWWVzIixhdXRvVG9wOiEwLGF1dG9MZWZ0OiEwLG9uQ2xvc2U6ZnVuY3Rpb24oKXt9fX0pKGpRdWVyeSk7Ci8qKiAvanMvanF1ZXJ5LnZhbGlkaXR5Lm1pbi5qcyAqKi8KKGZ1bmN0aW9uKGEpe2Z1bmN0aW9uIGIoYixjLGUpe3ZhciBmPShiLnJlZHVjdGlvbnx8YikuZmlsdGVyKGEudmFsaWRpdHkuc2V0dGluZ3MuZWxlbWVudFN1cHBvcnQpLGk9W107cmV0dXJuIDE+Yi5sZW5ndGg\/KGNvbnNvbGUubG9nKCJDb3VsZCBub3QgdmFsaWRhdGUgZWxlbWVudCIsYiksYik6KGYuZWFjaChmdW5jdGlvbigpe2ModGhpcyk\/aS5wdXNoKHRoaXMpOmQodGhpcyxnKGUse2ZpZWxkOmgodGhpcyl9KSl9KSxiLnJlZHVjdGlvbj1hKGkpLGIpfWZ1bmN0aW9uIGMoKXthLnZhbGlkaXR5LmlzVmFsaWRhdGluZygpJiYoYS52YWxpZGl0eS5yZXBvcnQuZXJyb3JzKyssYS52YWxpZGl0eS5yZXBvcnQudmFsaWQ9ITEpfWZ1bmN0aW9uIGQoYixkKXtjKCksYS52YWxpZGl0eS5vdXRwdXRzW2EudmFsaWRpdHkuc2V0dGluZ3Mub3V0cHV0TW9kZV0mJmEudmFsaWRpdHkub3V0cHV0c1thLnZhbGlkaXR5LnNldHRpbmdzLm91dHB1dE1vZGVdLnJhaXNlJiZhLnZhbGlkaXR5Lm91dHB1dHNbYS52YWxpZGl0eS5zZXR0aW5ncy5vdXRwdXRNb2RlXS5yYWlzZShhKGIpLGQpfWZ1bmN0aW9uIGUoYixkKXtjKCksYS52YWxpZGl0eS5vdXRwdXRzW2EudmFsaWRpdHkuc2V0dGluZ3Mub3V0cHV0TW9kZV0mJmEudmFsaWRpdHkub3V0cHV0c1thLnZhbGlkaXR5LnNldHRpbmdzLm91dHB1dE1vZGVdLnJhaXNlQWdncmVnYXRlJiZhLnZhbGlkaXR5Lm91dHB1dHNbYS52YWxpZGl0eS5zZXR0aW5ncy5vdXRwdXRNb2RlXS5yYWlzZUFnZ3JlZ2F0ZShiLGQpfWZ1bmN0aW9uIGYoYSl7dmFyIGI9MDtyZXR1cm4gYS5lYWNoKGZ1bmN0aW9uKCl7dmFyIGE9cGFyc2VGbG9hdCh0aGlzLnZhbHVlKTtiKz1pc05hTihhKT8wOmF9KSxifWZ1bmN0aW9uIGcoYSxiKXtmb3IodmFyIGMgaW4gYilhPWEucmVwbGFjZSgiI3siK2MrIn0iLGJbY10pO3JldHVybiBqKGEpfWZ1bmN0aW9uIGgoYil7dmFyIGM9YShiKSxkPWEudmFsaWRpdHkuc2V0dGluZ3MuZGVmYXVsdEZpZWxkTmFtZTtpZigidW5kZWZpbmVkIiE9dHlwZW9mIGMuYXR0cigidGl0bGUiKSYmYy5hdHRyKCJ0aXRsZSIpLmxlbmd0aClkPWMuYXR0cigidGl0bGUiKTtlbHNlIGlmKC9eKFtBLVowLTldW2Etel0qKSskLy50ZXN0KGIuaWQpKWQ9Yi5pZC5yZXBsYWNlKC8oW0EtWjAtOV0pW2Etel0qL2csIiAkJiIpO2Vsc2UgaWYoL15bYS16MC05X10qJC8udGVzdChiLmlkKSl7Zm9yKHZhciBlPWIuaWQuc3BsaXQoIl8iKSxmPTA7ZjxlLmxlbmd0aDsrK2YpZVtmXT1qKGVbZl0pO2Q9ZS5qb2luKCIgIil9cmV0dXJuIGR9ZnVuY3Rpb24gaihhKXtyZXR1cm4gYS5zdWJzdHJpbmc\/YS5zdWJzdHJpbmcoMCwxKS50b1VwcGVyQ2FzZSgpK2Euc3Vic3RyaW5nKDEsYS5sZW5ndGgpOmF9YS52YWxpZGl0eT17c2V0dGluZ3M6YS5leHRlbmQoe291dHB1dE1vZGU6ImxhYmVsIixjc3NDbGFzczoiZXJyb3IiLHNjcm9sbFRvOiExLG1vZGFsRXJyb3JzQ2xpY2thYmxlOiEwLGRlZmF1bHRGaWVsZE5hbWU6IlRoaXMgZmllbGQiLGVsZW1lbnRTdXBwb3J0OiI6dGV4dCwgW3R5cGU9dGVsXSwgW3R5cGU9ZW1haWxdLCBbdHlwZT1kYXRlXSwgOnBhc3N3b3JkLCB0ZXh0YXJlYSwgc2VsZWN0LCA6cmFkaW8sIDpjaGVja2JveCIsYXJnVG9TdHJpbmc6ZnVuY3Rpb24oYSl7cmV0dXJuIGEuZ2V0RGF0ZT9hLmdldE1vbnRoKCkrMSsiLyIrYS5nZXREYXRlKCkrIi8iK2EuZ2V0RnVsbFllYXIoKTphfX0se30pLHBhdHRlcm5zOntpbnRlZ2VyOi9eXGQrJC8sZGF0ZTovXigoMD9cZCl8KDFbMDEyXSkpXC8oWzAxMl0\/XGR8MzB8MzEpXC9cZHsxLDR9JC8sZW1haWw6L14oKChbYS16XXxcZHxbISNcJCUmJ1wqXCtcLVwvPVw\/XF5fYHtcfH1+XXxbXHUwMEEwLVx1RDdGRlx1RjkwMC1cdUZEQ0ZcdUZERjAtXHVGRkVGXSkrKFwuKFthLXpdfFxkfFshI1wkJSYnXCpcK1wtXC89XD9cXl9ge1x8fX5dfFtcdTAwQTAtXHVEN0ZGXHVGOTAwLVx1RkRDRlx1RkRGMC1cdUZGRUZdKSspKil8KChceDIyKSgoKChceDIwfFx4MDkpKihceDBkXHgwYSkpPyhceDIwfFx4MDkpKyk\/KChbXHgwMS1ceDA4XHgwYlx4MGNceDBlLVx4MWZceDdmXXxceDIxfFtceDIzLVx4NWJdfFtceDVkLVx4N2VdfFtcdTAwQTAtXHVEN0ZGXHVGOTAwLVx1RkRDRlx1RkRGMC1cdUZGRUZdKXwoXFwoW1x4MDEtXHgwOVx4MGJceDBjXHgwZC1ceDdmXXxbXHUwMEEwLVx1RDdGRlx1RjkwMC1cdUZEQ0ZcdUZERjAtXHVGRkVGXSkpKSkqKCgoXHgyMHxceDA5KSooXHgwZFx4MGEpKT8oXHgyMHxceDA5KSspPyhceDIyKSkpQCgoKFthLXpdfFxkfFtcdTAwQTAtXHVEN0ZGXHVGOTAwLVx1RkRDRlx1RkRGMC1cdUZGRUZdKXwoKFthLXpdfFxkfFtcdTAwQTAtXHVEN0ZGXHVGOTAwLVx1RkRDRlx1RkRGMC1cdUZGRUZdKShbYS16XXxcZHwtfFwufF98fnxbXHUwMEEwLVx1RDdGRlx1RjkwMC1cdUZEQ0ZcdUZERjAtXHVGRkVGXSkqKFthLXpdfFxkfFtcdTAwQTAtXHVEN0ZGXHVGOTAwLVx1RkRDRlx1RkRGMC1cdUZGRUZdKSkpXC4pKygoW2Etel18W1x1MDBBMC1cdUQ3RkZcdUY5MDAtXHVGRENGXHVGREYwLVx1RkZFRl0pfCgoW2Etel18W1x1MDBBMC1cdUQ3RkZcdUY5MDAtXHVGRENGXHVGREYwLVx1RkZFRl0pKFthLXpdfFxkfC18XC58X3x+fFtcdTAwQTAtXHVEN0ZGXHVGOTAwLVx1RkRDRlx1RkRGMC1cdUZGRUZdKSooW2Etel18W1x1MDBBMC1cdUQ3RkZcdUY5MDAtXHVGRENGXHVGREYwLVx1RkZFRl0pKSlcLj8kL2ksdXNkOi9eXCQ\/KFxkezEsM30sPyhcZHszfSw\/KSpcZHszfShcLlxkezAsMn0pP3xcZHsxLDN9KFwuXGR7MCwyfSk\/fFwuXGR7MSwyfT8pJC8sdXJsOi9eKGh0dHBzP3xmdHApOlwvXC8oKCgoW2Etel18XGR8LXxcLnxffH58W1x1MDBBMC1cdUQ3RkZcdUY5MDAtXHVGRENGXHVGREYwLVx1RkZFRl0pfCglW1xkYS1mXXsyfSl8WyFcJCYnXChcKVwqXCssOz1dfDopKkApPygoKFxkfFsxLTldXGR8MVxkXGR8MlswLTRdXGR8MjVbMC01XSlcLihcZHxbMS05XVxkfDFcZFxkfDJbMC00XVxkfDI1WzAtNV0pXC4oXGR8WzEtOV1cZHwxXGRcZHwyWzAtNF1cZHwyNVswLTVdKVwuKFxkfFsxLTldXGR8MVxkXGR8MlswLTRdXGR8MjVbMC01XSkpfCgoKFthLXpdfFxkfFtcdTAwQTAtXHVEN0ZGXHVGOTAwLVx1RkRDRlx1RkRGMC1cdUZGRUZdKXwoKFthLXpdfFxkfFtcdTAwQTAtXHVEN0ZGXHVGOTAwLVx1RkRDRlx1RkRGMC1cdUZGRUZdKShbYS16XXxcZHwtfFwufF98fnxbXHUwMEEwLVx1RDdGRlx1RjkwMC1cdUZEQ0ZcdUZERjAtXHVGRkVGXSkqKFthLXpdfFxkfFtcdTAwQTAtXHVEN0ZGXHVGOTAwLVx1RkRDRlx1RkRGMC1cdUZGRUZdKSkpXC4pKygoW2Etel18W1x1MDBBMC1cdUQ3RkZcdUY5MDAtXHVGRENGXHVGREYwLVx1RkZFRl0pfCgoW2Etel18W1x1MDBBMC1cdUQ3RkZcdUY5MDAtXHVGRENGXHVGREYwLVx1RkZFRl0pKFthLXpdfFxkfC18XC58X3x+fFtcdTAwQTAtXHVEN0ZGXHVGOTAwLVx1RkRDRlx1RkRGMC1cdUZGRUZdKSooW2Etel18W1x1MDBBMC1cdUQ3RkZcdUY5MDAtXHVGRENGXHVGREYwLVx1RkZFRl0pKSlcLj8pKDpcZCopPykoXC8oKChbYS16XXxcZHwtfFwufF98fnxbXHUwMEEwLVx1RDdGRlx1RjkwMC1cdUZEQ0ZcdUZERjAtXHVGRkVGXSl8KCVbXGRhLWZdezJ9KXxbIVwkJidcKFwpXCpcKyw7PV18OnxAKSsoXC8oKFthLXpdfFxkfC18XC58X3x+fFtcdTAwQTAtXHVEN0ZGXHVGOTAwLVx1RkRDRlx1RkRGMC1cdUZGRUZdKXwoJVtcZGEtZl17Mn0pfFshXCQmJ1woXClcKlwrLDs9XXw6fEApKikqKT8pPyhcPygoKFthLXpdfFxkfC18XC58X3x+fFtcdTAwQTAtXHVEN0ZGXHVGOTAwLVx1RkRDRlx1RkRGMC1cdUZGRUZdKXwoJVtcZGEtZl17Mn0pfFshXCQmJ1woXClcKlwrLDs9XXw6fEApfFtcdUUwMDAtXHVGOEZGXXxcL3xcPykqKT8oXCMoKChbYS16XXxcZHwtfFwufF98fnxbXHUwMEEwLVx1RDdGRlx1RjkwMC1cdUZEQ0ZcdUZERjAtXHVGRkVGXSl8KCVbXGRhLWZdezJ9KXxbIVwkJidcKFwpXCpcKyw7PV18OnxAKXxcL3xcPykqKT8kL2ksbnVtYmVyOi9eWystXT8oXGQrKFwuXGQqKT98XC5cZCspKFtFZV1cZCspPyQvLHppcDovXlxkezV9KC1cZHs0fSk\/JC8scGhvbmU6L15bMi05XVxkezJ9LVxkezN9LVxkezR9JC8sZ3VpZDovXihcez8oWzAtOWEtZkEtRl0pezh9LSgoWzAtOWEtZkEtRl0pezR9LSl7M30oWzAtOWEtZkEtRl0pezEyfVx9PykkLyx0aW1lMTI6L15bMDFdP1xkOlswLTVdXGQ\/XHM\/W2FBcFBdXC4\/W21NXVwuPyQvLHRpbWUyNDovXigyMHwyMXwyMnwyM3xbMDFdXGR8XGQpKChbOl1bMC01XVxkKXsxLDJ9KSQvLG5vbkh0bWw6L15bXjw+XSokL30sbWVzc2FnZXM6e2FyZWFjb2RlOiIje2ZpZWxkfSBhY2NlcHRzIG9ubHkgbG9jYWwgYXJlYSBjb2RlcyIscmVxdWlyZToiI3tmaWVsZH0gaXMgcmVxdWlyZWQuIixtYXRjaDoiI3tmaWVsZH0gaXMgaW4gYW4gaW52YWxpZCBmb3JtYXQuIixpbnRlZ2VyOiIje2ZpZWxkfSBtdXN0IGJlIGEgcG9zaXRpdmUsIHdob2xlIG51bWJlci4iLGRhdGU6IiN7ZmllbGR9IG11c3QgYmUgZm9ybWF0dGVkIGFzIGEgZGF0ZS4iLGVtYWlsOiIje2ZpZWxkfSBtdXN0IGJlIGZvcm1hdHRlZCBhcyBhbiBlbWFpbC4iLHVzZDoiI3tmaWVsZH0gbXVzdCBiZSBmb3JtYXR0ZWQgYXMgYSBVUyBEb2xsYXIgYW1vdW50LiIsdXJsOiIje2ZpZWxkfSBtdXN0IGJlIGZvcm1hdHRlZCBhcyBhIFVSTC4iLG51bWJlcjoiI3tmaWVsZH0gbXVzdCBiZSBmb3JtYXR0ZWQgYXMgYSBudW1iZXIuIix6aXA6IiN7ZmllbGR9IG11c3QgYmUgZm9ybWF0dGVkIGFzIGEgemlwY29kZSAjIyMjIyBvciAjIyMjIy0jIyMjLiIscGhvbmU6IiN7ZmllbGR9IG11c3QgYmUgZm9ybWF0dGVkIGFzIGEgcGhvbmUgbnVtYmVyICMjIy0jIyMtIyMjIy4iLGd1aWQ6IiN7ZmllbGR9IG11c3QgYmUgZm9ybWF0dGVkIGFzIGEgZ3VpZCBsaWtlIHszRjI1MDRFMC00Rjg5LTExRDMtOUEwQy0wMzA1RTgyQzMzMDF9LiIsdGltZTI0OiIje2ZpZWxkfSBtdXN0IGJlIGZvcm1hdHRlZCBhcyBhIDI0IGhvdXIgdGltZTogMjM6MDAuIix0aW1lMTI6IiN7ZmllbGR9IG11c3QgYmUgZm9ybWF0dGVkIGFzIGEgMTIgaG91ciB0aW1lOiAxMjowMCBBTS9QTSIsbGVzc1RoYW46IiN7ZmllbGR9IG11c3QgYmUgbGVzcyB0aGFuICN7bWF4fS4iLGxlc3NUaGFuT3JFcXVhbFRvOiIje2ZpZWxkfSBtdXN0IGJlIGxlc3MgdGhhbiBvciBlcXVhbCB0byAje21heH0uIixncmVhdGVyVGhhbjoiI3tmaWVsZH0gbXVzdCBiZSBncmVhdGVyIHRoYW4gI3ttaW59LiIsZ3JlYXRlclRoYW5PckVxdWFsVG86IiN7ZmllbGR9IG11c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICN7bWlufS4iLHJhbmdlOiIje2ZpZWxkfSBtdXN0IGJlIGJldHdlZW4gI3ttaW59IGFuZCAje21heH0uIix0b29Mb25nOiIje2ZpZWxkfSBjYW5ub3QgYmUgbG9uZ2VyIHRoYW4gI3ttYXh9IGNoYXJhY3RlcnMuIix0b29TaG9ydDoiI3tmaWVsZH0gY2Fubm90IGJlIHNob3J0ZXIgdGhhbiAje21pbn0gY2hhcmFjdGVycy4iLG5vbkh0bWw6IiN7ZmllbGR9IGNhbm5vdCBjb250YWluIEhUTUwgY2hhcmFjdGVycy4iLGFscGhhYmV0OiIje2ZpZWxkfSBjb250YWlucyBkaXNhbGxvd2VkIGNoYXJhY3RlcnMuIixtaW5DaGFyQ2xhc3M6IiN7ZmllbGR9IGNhbm5vdCBoYXZlIG1vcmUgdGhhbiAje21pbn0gI3tjaGFyQ2xhc3N9IGNoYXJhY3RlcnMuIixtYXhDaGFyQ2xhc3M6IiN7ZmllbGR9IGNhbm5vdCBoYXZlIGxlc3MgdGhhbiAje21pbn0gI3tjaGFyQ2xhc3N9IGNoYXJhY3RlcnMuIixlcXVhbDoiVmFsdWVzIGRvbid0IG1hdGNoLiIsZGlzdGluY3Q6IkEgdmFsdWUgd2FzIHJlcGVhdGVkLiIsc3VtOiJWYWx1ZXMgZG9uJ3QgYWRkIHRvICN7c3VtfS4iLHN1bU1heDoiVGhlIHN1bSBvZiB0aGUgdmFsdWVzIG11c3QgYmUgbGVzcyB0aGFuICN7bWF4fS4iLHN1bU1pbjoiVGhlIHN1bSBvZiB0aGUgdmFsdWVzIG11c3QgYmUgZ3JlYXRlciB0aGFuICN7bWlufS4iLHJhZGlvQ2hlY2tlZDoiVGhlIHNlbGVjdGVkIHZhbHVlIGlzIG5vdCB2YWxpZC4iLGdlbmVyaWM6IkludmFsaWQuIn0sY2hhckNsYXNzZXM6e2FscGhhYmV0aWNhbDovXHcvZyxudW1lcmljOi9cZC9nLGFscGhhbnVtZXJpYzovW0EtWmEtejAtOV0vZyxzeW1ib2w6L1teQS1aYS16MC05XS9nfSxvdXRwdXRzOnt9LHNldHVwOmZ1bmN0aW9uKGIpe3JldHVybiB0aGlzLnNldHRpbmdzPWEuZXh0ZW5kKHRoaXMuc2V0dGluZ3MsYiksdGhpc30scmVwb3J0Om51bGwsaXNWYWxpZGF0aW5nOmZ1bmN0aW9uKCl7cmV0dXJuISF0aGlzLnJlcG9ydH0sc3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLm91dHB1dHNbdGhpcy5zZXR0aW5ncy5vdXRwdXRNb2RlXSYmdGhpcy5vdXRwdXRzW3RoaXMuc2V0dGluZ3Mub3V0cHV0TW9kZV0uc3RhcnQmJnRoaXMub3V0cHV0c1t0aGlzLnNldHRpbmdzLm91dHB1dE1vZGVdLnN0YXJ0KCksdGhpcy5yZXBvcnQ9e2Vycm9yczowLHZhbGlkOiEwfX0sZW5kOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5yZXBvcnR8fHtlcnJvcnM6MCx2YWxpZDohMH07cmV0dXJuIHRoaXMucmVwb3J0PW51bGwsdGhpcy5vdXRwdXRzW3RoaXMuc2V0dGluZ3Mub3V0cHV0TW9kZV0mJnRoaXMub3V0cHV0c1t0aGlzLnNldHRpbmdzLm91dHB1dE1vZGVdLmVuZCYmdGhpcy5vdXRwdXRzW3RoaXMuc2V0dGluZ3Mub3V0cHV0TW9kZV0uZW5kKGEpLGF9LGNsZWFyOmZ1bmN0aW9uKCl7dGhpcy5zdGFydCgpLHRoaXMuZW5kKCl9fSxhLmZuLmV4dGVuZCh7dmFsaWRpdHk6ZnVuY3Rpb24oYil7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe2lmKCJmb3JtIj09dGhpcy50YWdOYW1lLnRvTG93ZXJDYXNlKCkpe3ZhciBjPW51bGw7InN0cmluZyI9PXR5cGVvZiBiP2M9ZnVuY3Rpb24oKXthKGIpLnJlcXVpcmUoKX06aXNGdW5jdGlvbihiKSYmKGM9YiksYiYmYSh0aGlzKS5vbigic3VibWl0IixmdW5jdGlvbigpe3JldHVybiBhLnZhbGlkaXR5LnN0YXJ0KCksYygpLGEudmFsaWRpdHkuZW5kKCkudmFsaWR9KX19KX0scmVxdWlyZTpmdW5jdGlvbihjKXtyZXR1cm4gYih0aGlzLGZ1bmN0aW9uKGIpe3ZhciBjPWEoYikudmFsKCksZD10cmltKGMpLmxlbmd0aDtyZXR1cm4gZH0sY3x8YS52YWxpZGl0eS5tZXNzYWdlcy5yZXF1aXJlKX0sbWF0Y2g6ZnVuY3Rpb24oYyxkKXtyZXR1cm4gZHx8KGQ9YS52YWxpZGl0eS5tZXNzYWdlcy5tYXRjaCwic3RyaW5nIj09dHlwZW9mIGMmJmEudmFsaWRpdHkubWVzc2FnZXNbY10mJihkPWEudmFsaWRpdHkubWVzc2FnZXNbY10pKSwic3RyaW5nIj09dHlwZW9mIGMmJihjPWEudmFsaWRpdHkucGF0dGVybnNbY10pLGIodGhpcyxpc0Z1bmN0aW9uKGMpP2Z1bmN0aW9uKGEpe3JldHVybiFhLnZhbHVlLmxlbmd0aHx8YyhhLnZhbHVlKX06ZnVuY3Rpb24oYSl7cmV0dXJuIGMuZ2xvYmFsJiYoYy5sYXN0SW5kZXg9MCksIWEudmFsdWUubGVuZ3RofHxjLnRlc3QoYS52YWx1ZSl9LGQpfSxyYW5nZTpmdW5jdGlvbihjLGUsZil7cmV0dXJuIGIodGhpcyxjLmdldFRpbWUmJmUuZ2V0VGltZT9mdW5jdGlvbihhKXt2YXIgYj1uZXcgRGF0ZShhLnZhbHVlKTtyZXR1cm4gYj49bmV3IERhdGUoYykmJmI8PW5ldyBEYXRlKGUpfTpjLnN1YnN0cmluZyYmZS5zdWJzdHJpbmcmJkJpZz9mdW5jdGlvbihhKXt2YXIgYj1uZXcgQmlnKGEudmFsdWUpO3JldHVybiBiLmdyZWF0ZXJUaGFuT3JFcXVhbFRvKG5ldyBCaWcoYykpJiZiLmxlc3NUaGFuT3JFcXVhbFRvKG5ldyBCaWcoZSkpfTpmdW5jdGlvbihhKXt2YXIgYj1wYXJzZUZsb2F0KGEudmFsdWUpO3JldHVybiBiPj1jJiZiPD1lfSxmfHxnKGEudmFsaWRpdHkubWVzc2FnZXMucmFuZ2Use21pbjphLnZhbGlkaXR5LnNldHRpbmdzLmFyZ1RvU3RyaW5nKGMpLG1heDphLnZhbGlkaXR5LnNldHRpbmdzLmFyZ1RvU3RyaW5nKGUpfSkpfSxncmVhdGVyVGhhbjpmdW5jdGlvbihjLGQpe3JldHVybiBiKHRoaXMsYy5nZXRUaW1lP2Z1bmN0aW9uKGEpe3JldHVybiBuZXcgRGF0ZShhLnZhbHVlKT5jfTpjLnN1YnN0cmluZyYmQmlnP2Z1bmN0aW9uKGEpe3JldHVybiBuZXcgQmlnKGEudmFsdWUpLmdyZWF0ZXJUaGFuKG5ldyBCaWcoYykpfTpmdW5jdGlvbihhKXtyZXR1cm4gcGFyc2VGbG9hdChhLnZhbHVlKT5jfSxkfHxnKGEudmFsaWRpdHkubWVzc2FnZXMuZ3JlYXRlclRoYW4se21pbjphLnZhbGlkaXR5LnNldHRpbmdzLmFyZ1RvU3RyaW5nKGMpfSkpfSxncmVhdGVyVGhhbk9yRXF1YWxUbzpmdW5jdGlvbihjLGQpe3JldHVybiBiKHRoaXMsYy5nZXRUaW1lP2Z1bmN0aW9uKGEpe3JldHVybiBuZXcgRGF0ZShhLnZhbHVlKT49Y306Yy5zdWJzdHJpbmcmJkJpZz9mdW5jdGlvbihhKXtyZXR1cm4gbmV3IEJpZyhhLnZhbHVlKS5ncmVhdGVyVGhhbk9yRXF1YWxUbyhuZXcgQmlnKGMpKX06ZnVuY3Rpb24oYSl7cmV0dXJuIHBhcnNlRmxvYXQoYS52YWx1ZSk+PWN9LGR8fGcoYS52YWxpZGl0eS5tZXNzYWdlcy5ncmVhdGVyVGhhbk9yRXF1YWxUbyx7bWluOmEudmFsaWRpdHkuc2V0dGluZ3MuYXJnVG9TdHJpbmcoYyl9KSl9LGxlc3NUaGFuOmZ1bmN0aW9uKGMsZCl7cmV0dXJuIGIodGhpcyxjLmdldFRpbWU\/ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyBEYXRlKGEudmFsdWUpPGN9OmMuc3Vic3RyaW5nJiZCaWc\/ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyBCaWcoYS52YWx1ZSkubGVzc1RoYW4obmV3IEJpZyhjKSl9OmZ1bmN0aW9uKGEpe3JldHVybiBwYXJzZUZsb2F0KGEudmFsdWUpPGN9LGR8fGcoYS52YWxpZGl0eS5tZXNzYWdlcy5sZXNzVGhhbix7bWF4OmEudmFsaWRpdHkuc2V0dGluZ3MuYXJnVG9TdHJpbmcoYyl9KSl9LGxlc3NUaGFuT3JFcXVhbFRvOmZ1bmN0aW9uKGMsZCl7cmV0dXJuIGIodGhpcyxjLmdldFRpbWU\/ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyBEYXRlKGEudmFsdWUpPD1jfTpjLnN1YnN0cmluZyYmQmlnP2Z1bmN0aW9uKGEpe3JldHVybiBuZXcgQmlnKGEudmFsdWUpLmxlc3NUaGFuT3JFcXVhbFRvKG5ldyBCaWcoYykpfTpmdW5jdGlvbihhKXtyZXR1cm4gcGFyc2VGbG9hdChhLnZhbHVlKTw9Y30sZHx8ZyhhLnZhbGlkaXR5Lm1lc3NhZ2VzLmxlc3NUaGFuT3JFcXVhbFRvLHttYXg6YS52YWxpZGl0eS5zZXR0aW5ncy5hcmdUb1N0cmluZyhjKX0pKX0sbWF4TGVuZ3RoOmZ1bmN0aW9uKGMsZCl7cmV0dXJuIGIodGhpcyxmdW5jdGlvbihhKXtyZXR1cm4gYS52YWx1ZS5sZW5ndGg8PWN9LGR8fGcoYS52YWxpZGl0eS5tZXNzYWdlcy50b29Mb25nLHttYXg6Y30pKX0sbWluTGVuZ3RoOmZ1bmN0aW9uKGMsZCl7cmV0dXJuIGIodGhpcyxmdW5jdGlvbihhKXtyZXR1cm4gYS52YWx1ZS5sZW5ndGg+PWN9LGR8fGcoYS52YWxpZGl0eS5tZXNzYWdlcy50b29TaG9ydCx7bWluOmN9KSl9LGFscGhhYmV0OmZ1bmN0aW9uKGMsZCl7dmFyIGU9W107cmV0dXJuIGIodGhpcyxmdW5jdGlvbihhKXtmb3IodmFyIGI9MDtiPGEudmFsdWUubGVuZ3RoOysrYilpZigtMT09Yy5pbmRleE9mKGEudmFsdWUuY2hhckF0KGIpKSlyZXR1cm4gZS5wdXNoKGEudmFsdWUuY2hhckF0KGIpKSwhMTtyZXR1cm4hMH0sZHx8ZyhhLnZhbGlkaXR5Lm1lc3NhZ2VzLmFscGhhYmV0LHtjaGFyczplLmpvaW4oIiwgIil9KSl9LG1pbkNoYXJDbGFzczpmdW5jdGlvbihjLGQsZSl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiBjJiYoYz1jLnRvTG93ZXJDYXNlKCksYS52YWxpZGl0eS5jaGFyQ2xhc3Nlc1tjXSYmKGM9YS52YWxpZGl0eS5jaGFyQ2xhc3Nlc1tjXSkpLGIodGhpcyxmdW5jdGlvbihhKXtyZXR1cm4oYS52YWx1ZS5tYXRjaChjKXx8W10pLmxlbmd0aD49ZH0sZXx8ZyhhLnZhbGlkaXR5Lm1lc3NhZ2VzLm1pbkNoYXJDbGFzcyx7bWluOmQsY2hhckNsYXNzOmN9KSl9LG1heENoYXJDbGFzczpmdW5jdGlvbihjLGQsZSl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiBjJiYoYz1jLnRvTG93ZXJDYXNlKCksYS52YWxpZGl0eS5jaGFyQ2xhc3Nlc1tjXSYmKGM9YS52YWxpZGl0eS5jaGFyQ2xhc3Nlc1tjXSkpLGIodGhpcyxmdW5jdGlvbihhKXtyZXR1cm4oYS52YWx1ZS5tYXRjaChjKXx8W10pLmxlbmd0aDw9ZH0sZXx8ZyhhLnZhbGlkaXR5Lm1lc3NhZ2VzLm1heENoYXJDbGFzcyx7bWF4OmQsY2hhckNsYXNzOmN9KSl9LHBhc3N3b3JkOmZ1bmN0aW9uKGIpe3JldHVybiBiPWEuZXh0ZW5kKHthbHBoYWJldDpudWxsLG1pbkxlbmd0aDowLG1heExlbmd0aDowLG1pblN5bWJvbDowLG1pbkFscGhhYmV0aWNhbDowLG1pbk51bWVyaWM6MCxtaW5BbHBoYU51bWVyaWM6MH0sYiksYi5hbHBoYWJldCYmdGhpcy5hbHBoYWJldChiLmFscGhhYmV0KSxiLm1pbkxlbmd0aCYmdGhpcy5taW5MZW5ndGgoYi5taW5MZW5ndGgpLGIubWF4TGVuZ3RoJiZ0aGlzLm1heExlbmd0aChiLm1heExlbmd0aCksYi5taW5TeW1ib2wmJnRoaXMubWluQ2hhckNsYXNzKCJzeW1ib2wiLGIubWluU3ltYm9sKSxiLm1pbkFscGhhYmV0aWNhbCYmdGhpcy5taW5DaGFyQ2xhc3MoImFscGhhYmV0aWNhbCIsYi5taW5BbHBoYWJldGljYWwpLGIubWluTnVtZXJpYyYmdGhpcy5taW5DaGFyQ2xhc3MoIm51bWVyaWMiLGIubWluTnVtZXJpYyksYi5taW5BbHBoYW51bWVyaWMmJnRoaXMubWluQ2hhckNsYXNzKCJhbHBoYW51bWVyaWMiLGIubWluQWxwaGFudW1lcmljKSx0aGlzfSxub25IdG1sOmZ1bmN0aW9uKGMpe3JldHVybiBiKHRoaXMsZnVuY3Rpb24oYil7cmV0dXJuIGEudmFsaWRpdHkucGF0dGVybnMubm9uSHRtbC50ZXN0KGIudmFsdWUpfSxjfHxhLnZhbGlkaXR5Lm1lc3NhZ2VzLm5vbkh0bWwpfSxlcXVhbDpmdW5jdGlvbihiLGMpe3ZhciBkPSh0aGlzLnJlZHVjdGlvbnx8dGhpcykuZmlsdGVyKGEudmFsaWRpdHkuc2V0dGluZ3MuZWxlbWVudFN1cHBvcnQpLGY9ZnVuY3Rpb24oYSl7cmV0dXJuIGF9LGc9YS52YWxpZGl0eS5tZXNzYWdlcy5lcXVhbDtpZihkLmxlbmd0aCl7aXNGdW5jdGlvbihiKT8oZj1iLCJzdHJpbmciPT10eXBlb2YgYyYmKGc9YykpOiJzdHJpbmciPT10eXBlb2YgYiYmKGc9Yik7dmFyIGg9YS5tYXAoZCxmdW5jdGlvbihhKXtyZXR1cm4gZihhLnZhbHVlKX0pLGo9aFswXSxrPSEwO2Zvcih2YXIgbCBpbiBoKWhbbF0hPWomJihrPSExKTtrfHwoZShkLGcpLHRoaXMucmVkdWN0aW9uPWEoW10pKX1yZXR1cm4gdGhpc30sZGlzdGluY3Q6ZnVuY3Rpb24oYixjKXt2YXIgZD0odGhpcy5yZWR1Y3Rpb258fHRoaXMpLmZpbHRlcihhLnZhbGlkaXR5LnNldHRpbmdzLmVsZW1lbnRTdXBwb3J0KSxmPWZ1bmN0aW9uKGEpe3JldHVybiBhfSxnPWEudmFsaWRpdHkubWVzc2FnZXMuZGlzdGluY3QsaD1bXSxpPSEwO2lmKGQubGVuZ3RoKXtpc0Z1bmN0aW9uKGIpPyhmPWIsInN0cmluZyI9PXR5cGVvZiBjJiYoZz1jKSk6InN0cmluZyI9PXR5cGVvZiBiJiYoZz1iKTtmb3IodmFyIGo9YS5tYXAoZCxmdW5jdGlvbihhKXtyZXR1cm4gZihhLnZhbHVlKX0pLGs9MDtrPGoubGVuZ3RoOysraylpZihqW2tdLmxlbmd0aCl7Zm9yKHZhciBsPTA7bDxoLmxlbmd0aDsrK2wpaFtsXT09altrXSYmKGk9ITEpO2gucHVzaChqW2tdKX1pfHwoZShkLGcpLHRoaXMucmVkdWN0aW9uPWEoW10pKX1yZXR1cm4gdGhpc30sc3VtOmZ1bmN0aW9uKGIsYyl7dmFyIGQ9KHRoaXMucmVkdWN0aW9ufHx0aGlzKS5maWx0ZXIoYS52YWxpZGl0eS5zZXR0aW5ncy5lbGVtZW50U3VwcG9ydCk7cmV0dXJuIGQubGVuZ3RoJiZiIT1mKGQpJiYoZShkLGN8fGcoYS52YWxpZGl0eS5tZXNzYWdlcy5zdW0se3N1bTpifSkpLHRoaXMucmVkdWN0aW9uPWEoW10pKSx0aGlzfSxzdW1NYXg6ZnVuY3Rpb24oYixjKXt2YXIgZD0odGhpcy5yZWR1Y3Rpb258fHRoaXMpLmZpbHRlcihhLnZhbGlkaXR5LnNldHRpbmdzLmVsZW1lbnRTdXBwb3J0KTtyZXR1cm4gZC5sZW5ndGgmJmI8ZihkKSYmKGUoZCxjfHxnKGEudmFsaWRpdHkubWVzc2FnZXMuc3VtTWF4LHttYXg6Yn0pKSx0aGlzLnJlZHVjdGlvbj1hKFtdKSksdGhpc30sc3VtTWluOmZ1bmN0aW9uKGIsYyl7dmFyIGQ9KHRoaXMucmVkdWN0aW9ufHx0aGlzKS5maWx0ZXIoYS52YWxpZGl0eS5zZXR0aW5ncy5lbGVtZW50U3VwcG9ydCk7cmV0dXJuIGQubGVuZ3RoJiZiPGYoZCkmJihlKGQsY3x8ZyhhLnZhbGlkaXR5Lm1lc3NhZ2VzLnN1bU1pbix7bWluOmJ9KSksdGhpcy5yZWR1Y3Rpb249YShbXSkpLHRoaXN9LHJhZGlvQ2hlY2tlZDpmdW5jdGlvbihiLGMpe3ZhciBkPSh0aGlzLnJlZHVjdGlvbnx8dGhpcykuZmlsdGVyKGEudmFsaWRpdHkuc2V0dGluZ3MuZWxlbWVudFN1cHBvcnQpO2QuaXMoIjpyYWRpbyIpJiZkLmZpbmQoIjpjaGVja2VkIikudmFsKCkhPWImJmUoZCxjfHxhLnZhbGlkaXR5Lm1lc3NhZ2VzLnJhZGlvQ2hlY2tlZCl9LHJhZGlvTm90Q2hlY2tlZDpmdW5jdGlvbihiLGMpe3ZhciBkPSh0aGlzLnJlZHVjdGlvbnx8dGhpcykuZmlsdGVyKGEudmFsaWRpdHkuc2V0dGluZ3MuZWxlbWVudFN1cHBvcnQpO2QuaXMoIjpyYWRpbyIpJiZkLmZpbHRlcigiOmNoZWNrZWQiKS52YWwoKT09YiYmZShkLGN8fGEudmFsaWRpdHkubWVzc2FnZXMucmFkaW9DaGVja2VkKX0sY2hlY2tib3hDaGVja2VkOmZ1bmN0aW9uKGIpe3ZhciBjPSh0aGlzLnJlZHVjdGlvbnx8dGhpcykuZmlsdGVyKGEudmFsaWRpdHkuc2V0dGluZ3MuZWxlbWVudFN1cHBvcnQpO2MuaXMoIjpjaGVja2JveCIpJiYhYy5pcygiOmNoZWNrZWQiKSYmKGUoYyxifHxhLnZhbGlkaXR5Lm1lc3NhZ2VzLnJhZGlvQ2hlY2tlZCksYy5wYXJlbnQoKS5hZGRDbGFzcygidmFsaWRpdHktZXJyb25lb3VzIikpfSxhc3NlcnQ6ZnVuY3Rpb24oYyxkKXt2YXIgZj10aGlzLnJlZHVjdGlvbnx8dGhpcztpZihmLmxlbmd0aCl7aWYoaXNGdW5jdGlvbihjKSlyZXR1cm4gYih0aGlzLGMsZHx8YS52YWxpZGl0eS5tZXNzYWdlcy5nZW5lcmljKTtjfHwoZShmLGR8fGEudmFsaWRpdHkubWVzc2FnZXMuZ2VuZXJpYyksdGhpcy5yZWR1Y3Rpb249YShbXSkpfXJldHVybiB0aGlzfX0pLGEuZm4uZXh0ZW5kKHt2YWxpZEFsbG9yTm9uZTpmdW5jdGlvbigpe3ZhciBiPSh0aGlzLnJlZHVjdGlvbnx8dGhpcykuZmlsdGVyKGEudmFsaWRpdHkuc2V0dGluZ3MuZWxlbWVudFN1cHBvcnQpLGM9ITA7cmV0dXJuIGIuZWFjaChmdW5jdGlvbigpe2lmKCIiIT1hKHRoaXMpLnZhbCgpKXJldHVybiBiLmVhY2goZnVuY3Rpb24oKXsiIj09YSh0aGlzKS52YWwoKSYmKGM9ITEsZCh0aGlzLGcoIiIse2ZpZWxkOmgodGhpcyl9KSkpfSksITF9KSx0aGlzfSxyZXF1aXJlV2l0aFdhdGVybWFyazpmdW5jdGlvbihjKXtyZXR1cm4gYih0aGlzLGZ1bmN0aW9uKGIpe3ZhciBjPWZ1bmN0aW9uKGEpe3JldHVybiAwPGEudHJpbSgpLmxlbmd0aH0sZD1hKGIpLmF0dHIoImFsdCIpLGU9YShiKS52YWwoKS50cmltKCk7cmV0dXJuIGQ\/ZCE9ZSYmYyhlKTpjKGUpfSxjfHxhLnZhbGlkaXR5Lm1lc3NhZ2VzLnJlcXVpcmUpfSxyZXF1aXJlUG9zdGFsQ29kZTpmdW5jdGlvbihjKXtyZXR1cm4gYih0aGlzLGZ1bmN0aW9uKGIpe3ZhciBjPWEoYikudmFsKCkucmVwbGFjZSgvXHMvZywiIikucmVwbGFjZSgvW15BLXowLTldL2csIjAiKS50b1VwcGVyQ2FzZSgpO2lmKDA9PWMubGVuZ3RoKXJldHVybiEwO2lmKDU+Yy5sZW5ndGgpcmV0dXJuITE7aWYoWmlwUmVnZXg9YS52YWxpZGl0eS5wYXR0ZXJucy56aXAsbnVsbCE9Yy5tYXRjaChaaXBSZWdleCkpcmV0dXJuITA7cmV0dXJuIENhbmFkYVBvc3RSZWdleD0vW0FCQ0VHSEpLTE1OUFJTVFZXWFlaXVswLTldW0FCQ0VHSEpLTE1OUFJTVFZXWFlaXVswLTldW0FCQ0VHSEpLTE1OUFJTVFZXWFlaXVswLTldLyxudWxsIT1jLm1hdGNoKENhbmFkYVBvc3RSZWdleCkmJihhKGIpLnZhbChjLnN1YnN0cmluZygwLDMpKyIgIitjLnN1YnN0cmluZygzLDYpKSwhMCl9LGN8fGEudmFsaWRpdHkubWVzc2FnZXMucmVxdWlyZSl9LHZhbGlkRW1haWxBZGRyZXNzOmZ1bmN0aW9uKGMpe3ZhciBkPXRoaXMsZT1bIi5jb20iLCIuY2EiLCIubmV0IiwiLmJpeiIsIi5xdWViZWMiLCIuY28iLCIuaW5mbyIsIi5tb2JpIiwiLm9yZyIsIi5pbmMiXTsxPT1hKCIjQURNSU5fR0VORVJBTF9CTE9DS19GUl9ET01BSU5fQ0hFQ0siKS5sZW5ndGgmJiIxIiE9YSgiI0FETUlOX0dFTkVSQUxfQkxPQ0tfRlJfRE9NQUlOX0NIRUNLIikudmFsKCkmJmUucHVzaCgiLmZyIik7dmFyIGY9Yih0aGlzLGZ1bmN0aW9uKGIpe3JldHVybiBydWxlPWEudmFsaWRpdHkucGF0dGVybnMuZW1haWwscnVsZS5nbG9iYWwmJihydWxlLmxhc3RJbmRleD0wKSwhYi52YWx1ZS5sZW5ndGh8fHJ1bGUudGVzdChiLnZhbHVlKX0sIiIpO3JldHVybiBmP2IodGhpcyxmdW5jdGlvbihiKXt2YXIgYz1hKGIpLnZhbCgpLnRvTG93ZXJDYXNlKCksZD0hMTtpZighYy5sZW5ndGgpcmV0dXJuITA7U3RyaW5nLnByb3RvdHlwZS5lbmRzV2l0aHx8KFN0cmluZy5wcm90b3R5cGUuZW5kc1dpdGg9ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcy5sZW5ndGgtYS5sZW5ndGg7cmV0dXJuIDA8PWImJnRoaXMubGFzdEluZGV4T2YoYSk9PT1ifSk7Zm9yKHZhciBmPTA7ZjxlLmxlbmd0aDtmKyspYy50b0xvd2VyQ2FzZSgpLmVuZHNXaXRoKGVbZl0pJiYoZD0hMCk7aWYoITE9PWQpcmV0dXJuITE7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBlbWFpbEhhbmRsZXIpe3ZhciBnPSEwO3JldHVybiBlbWFpbEhhbmRsZXIudmFsaWRhdGVFbWFpbChjKS5kb25lKGZ1bmN0aW9uKGEpeyJpbnZhbGlkIj09PWEuc3RhdHVzJiYoZz0hMSl9KSxnfXJldHVybiEwfSxjfHxhLnZhbGlkaXR5Lm1lc3NhZ2VzLmVtYWlsKTpjfHxhLnZhbGlkaXR5Lm1lc3NhZ2VzLmVtYWlsfSxyYWRpb09wdGlvbkNob3NlbjpmdW5jdGlvbihiKXt2YXIgYz0odGhpcy5yZWR1Y3Rpb258fHRoaXMpLmZpbHRlcihhLnZhbGlkaXR5LnNldHRpbmdzLmVsZW1lbnRTdXBwb3J0KSxkPXt9O2Zvcih2YXIgZiBpbiBjLmVhY2goZnVuY3Rpb24oKXt2YXIgYj1hKHRoaXMpLmF0dHIoIm5hbWUiKTsidW5kZWZpbmVkIj09dHlwZW9mIGRbYl0mJihkW2JdPVtdKSxkW2JdLnB1c2godGhpcyl9KSxkKTA9PWEoZFtmXSkuZmlsdGVyKCI6cmFkaW8iKS5maWx0ZXIoIjpjaGVja2VkIikubGVuZ3RoJiZlKGEoZFtmXSksYnx8YS52YWxpZGl0eS5tZXNzYWdlcy5yYWRpb0NoZWNrZWQpfSxvbmVPck1vcmVDaGVja2VkOmZ1bmN0aW9uKGIpe3ZhciBjPSh0aGlzLnJlZHVjdGlvbnx8dGhpcykuZmlsdGVyKGEudmFsaWRpdHkuc2V0dGluZ3MuZWxlbWVudFN1cHBvcnQpO2MuZWFjaChmdW5jdGlvbigpe3ZhciBkPWMuZmlsdGVyKGZ1bmN0aW9uKCl7cmV0dXJuISFhKHRoaXMpLmlzKCJbdHlwZT1jaGVja2JveF06Y2hlY2tlZCIpfSkubGVuZ3RoOzA9PWQmJihjLnBhcmVudHMoInVsIikuZmlyc3QoKS5hZGRDbGFzcygidmFsaWRpdHktZXJyb25lb3VzIiksZShjLGJ8fGEudmFsaWRpdHkubWVzc2FnZXMucmFkaW9DaGVja2VkKSl9KX0sdmFsaWRhdGVNb2JpbGU6ZnVuY3Rpb24oYyl7Zm9yKHZhciBkPSh0aGlzLnJlZHVjdGlvbnx8dGhpcykuZmlsdGVyKGEudmFsaWRpdHkuc2V0dGluZ3MuZWxlbWVudFN1cHBvcnQpLGU9ITAsZj0iIixnPWEoZCkubGVuZ3RoLGg9WzQzOCw1MTQsMjYzLDQ1MCw1NzksODE5LDI0OSw3MDUsMjI2LDUxOSwyODksMzY1LDkwNSw0MTYsNDM3LDY0NywzNDMsNjEzLDcwOSw4NzMsNDE4LDU4MSw1MDYsOTAyXSxqPTA7ajw9ZztqKyspaWYoajxnKWYrPWEoYShkKVtqXSkudmFsKCk7ZWxzZXtpZihmPWYucmVwbGFjZSgvW14wLTldKy9naSwiIiksMD09PWYubGVuZ3RoKXJldHVybiBiKGQsKCk9PiEwLGN8fGEudmFsaWRpdHkubWVzc2FnZXMucGhvbmUpOyIxIj09ZlswXSYmKGY9Zi5zdWJzdHJpbmcoMSkpO3ZhciBrPXBhcnNlSW50KGYuc3Vic3RyaW5nKDAsMykpO2EuYWpheCh7dXJsOiJodHRwczovL3Jlc3QuZDJjbWVkaWEuY2Evc2l0ZXMvc3ZjL3ZhbGlkYXRlUGhvbmVOdW1iZXIucGhwIix0eXBlOiJHRVQiLGFzeW5jOiExLHRpbWVvdXQ6MmUzLGRhdGFUeXBlOiJqc29uIixkYXRhOntwaG9uZTpmLG1vYmlsZToxLGFyZWFjb2RlOiJDQSJ9fSkuZG9uZShmdW5jdGlvbihmKXtpZigidW5kZWZpbmVkIiE9dHlwZW9mIGYuaXNPaykhMT09PWYucGhvbmVOdW1iZXJJc1ZhbGlkJiYoZT0hMSk7ZWxzZSBpZigidW5kZWZpbmVkIiE9dHlwZW9mIGguaW5kZXhPZiYmLTE9PWguaW5kZXhPZihrKSlyZXR1cm4hMTtyZXR1cm4gYihkLGZ1bmN0aW9uKCl7cmV0dXJuIGV9LGN8fGEudmFsaWRpdHkubWVzc2FnZXMucGhvbmUpfSkuZmFpbChmdW5jdGlvbigpe3JldHVybiJ1bmRlZmluZWQiIT10eXBlb2YgaC5pbmRleE9mJiYtMT09aC5pbmRleE9mKGspJiYoZT0hMSksYihkLGZ1bmN0aW9uKCl7cmV0dXJuIGV9LGN8fGEudmFsaWRpdHkubWVzc2FnZXMucGhvbmUpfSl9fSx2YWxpZGF0ZVBob25lOmZ1bmN0aW9uKGMpe2Zvcih2YXIgZD0odGhpcy5yZWR1Y3Rpb258fHRoaXMpLmZpbHRlcihhLnZhbGlkaXR5LnNldHRpbmdzLmVsZW1lbnRTdXBwb3J0KSxlPSEwLGY9IiIsZz1hKGQpLmxlbmd0aCxoPVs0MzgsNTE0LDI2Myw0NTAsNTc5LDgxOSwyNDksNzA1LDIyNiw1MTksMjg5LDM2NSw5MDUsNDE2LDQzNyw2NDcsMzQzLDYxMyw3MDksODczLDQxOCw1ODEsNTA2LDkwMl0saj0wO2o8PWc7aisrKWlmKGo8ZylmKz1hKGEoZClbal0pLnZhbCgpO2Vsc2V7aWYoZj1mLnJlcGxhY2UoL1teMC05XSsvZ2ksIiIpLCJ1bmRlZmluZWQiIT10eXBlb2YgZW1haWxIYW5kbGVyJiZ0aGlzLmhhc0NsYXNzKCJyZXF1aXJlZCIpJiYoZW1haWxIYW5kbGVyLnBob25lTWFuZGF0b3J5PSEwKSwwPT09Zi5sZW5ndGgpcmV0dXJuIGIoZCwoKT0+ITAsY3x8YS52YWxpZGl0eS5tZXNzYWdlcy5waG9uZSk7IjEiPT1mWzBdJiYoZj1mLnN1YnN0cmluZygxKSk7dmFyIGs9cGFyc2VJbnQoZi5zdWJzdHJpbmcoMCwzKSk7YS5hamF4KHt1cmw6Imh0dHBzOi8vcmVzdC5kMmNtZWRpYS5jYS9zaXRlcy9zdmMvdmFsaWRhdGVQaG9uZU51bWJlci5waHAiLHR5cGU6IkdFVCIsYXN5bmM6ITEsdGltZW91dDoyZTMsZGF0YVR5cGU6Impzb24iLGRhdGE6e3Bob25lOmYsYXJlYWNvZGU6IkNBIn19KS5kb25lKGZ1bmN0aW9uKGYpe2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgZi5pc09rKSExPT09Zi5waG9uZU51bWJlcklzVmFsaWQmJigidW5kZWZpbmVkIiE9dHlwZW9mIGVtYWlsSGFuZGxlciYmZW1haWxIYW5kbGVyLnBob25lTWFuZGF0b3J5JiZlbWFpbEhhbmRsZXIucGhvbmVWYWxpZGF0aW9uQXR0ZW1wdHMrKyxlPSExKTtlbHNlIGlmKCJ1bmRlZmluZWQiIT10eXBlb2YgaC5pbmRleE9mJiYtMT09aC5pbmRleE9mKGspKXJldHVybiExO3JldHVybiBiKGQsZnVuY3Rpb24oKXtyZXR1cm4gZX0sY3x8YS52YWxpZGl0eS5tZXNzYWdlcy5waG9uZSl9KS5mYWlsKGZ1bmN0aW9uKCl7cmV0dXJuInVuZGVmaW5lZCIhPXR5cGVvZiBoLmluZGV4T2YmJi0xPT1oLmluZGV4T2YoaykmJigidW5kZWZpbmVkIiE9dHlwZW9mIGVtYWlsSGFuZGxlciYmZW1haWxIYW5kbGVyLnBob25lTWFuZGF0b3J5JiZlbWFpbEhhbmRsZXIucGhvbmVWYWxpZGF0aW9uQXR0ZW1wdHMrKyxlPSExKSxiKGQsZnVuY3Rpb24oKXtyZXR1cm4gZX0sY3x8YS52YWxpZGl0eS5tZXNzYWdlcy5waG9uZSl9KX19fSl9KShqUXVlcnkpLGZ1bmN0aW9uKGEpe2Z1bmN0aW9uIGIoYSl7cmV0dXJuIGEuYXR0cigiaWQiKS5sZW5ndGg\/YS5hdHRyKCJpZCIpOmEuYXR0cigibmFtZSIpfWEudmFsaWRpdHkub3V0cHV0cy5sYWJlbD17c3RhcnQ6ZnVuY3Rpb24oKXthKCJsYWJlbC4iK2EudmFsaWRpdHkuc2V0dGluZ3MuY3NzQ2xhc3MpLnJlbW92ZSgpfSxlbmQ6ZnVuY3Rpb24oYil7IWIudmFsaWQmJmEudmFsaWRpdHkuc2V0dGluZ3Muc2Nyb2xsVG8mJihsb2NhdGlvbi5oYXNoPWEoImxhYmVsLiIrYS52YWxpZGl0eS5zZXR0aW5ncy5jc3NDbGFzcysiOmVxKDApIikuYXR0cigiZm9yIikpfSxyYWlzZTpmdW5jdGlvbihjLGQpe3ZhciBlPSJsYWJlbC4iK2EudmFsaWRpdHkuc2V0dGluZ3MuY3NzQ2xhc3MrIltmb3I9JyIrYihjKSsiJ10iO2EoZSkubGVuZ3RoP2EoZSkudGV4dChkKTphKCI8bGFiZWwvPiIpLmF0dHIoImZvciIsYihjKSkuYWRkQ2xhc3MoYS52YWxpZGl0eS5zZXR0aW5ncy5jc3NDbGFzcykudGV4dChkKS5vbigiY2xpY2siLGZ1bmN0aW9uKCl7Yy5sZW5ndGgmJmNbMF0uc2VsZWN0KCl9KS5pbnNlcnRBZnRlcihjKX0scmFpc2VBZ2dyZWdhdGU6ZnVuY3Rpb24oYixjKXtiLmxlbmd0aCYmdGhpcy5yYWlzZShhKGIuZ2V0KGIubGVuZ3RoLTEpKSxjKX19fShqUXVlcnkpLGZ1bmN0aW9uKGEpe2EudmFsaWRpdHkub3V0cHV0cy5tb2RhbD17c3RhcnQ6ZnVuY3Rpb24oKXthKCIudmFsaWRpdHktbW9kYWwtbXNnIikucmVtb3ZlKCl9LGVuZDpmdW5jdGlvbihiKXshYi52YWxpZCYmYS52YWxpZGl0eS5zZXR0aW5ncy5zY3JvbGxUbyYmKGxvY2F0aW9uLmhhc2g9YSgiLnZhbGlkaXR5LW1vZGFsLW1zZzplcSgwKSIpLmF0dHIoImlkIikpfSxyYWlzZTpmdW5jdGlvbihiLGMpe2lmKGIubGVuZ3RoKXt2YXIgZD1iLm9mZnNldCgpLGU9Yi5nZXQoMCksZj17bGVmdDpwYXJzZUludChkLmxlZnQrYi53aWR0aCgpKzQsMTApKyJweCIsdG9wOnBhcnNlSW50KGQudG9wLTEwLDEwKSsicHgifTthKCI8ZGl2Lz4iKS5hZGRDbGFzcygidmFsaWRpdHktbW9kYWwtbXNnIikuY3NzKGYpLnRleHQoYykub24oImNsaWNrIixhLnZhbGlkaXR5LnNldHRpbmdzLm1vZGFsRXJyb3JzQ2xpY2thYmxlP2Z1bmN0aW9uKCl7YSh0aGlzKS5yZW1vdmUoKX06bnVsbCkuYXBwZW5kVG8oImJvZHkiKX19LHJhaXNlQWdncmVnYXRlOmZ1bmN0aW9uKGIsYyl7Yi5sZW5ndGgmJnRoaXMucmFpc2UoYShiLmdldChiLmxlbmd0aC0xKSksYyl9fX0oalF1ZXJ5KSxmdW5jdGlvbihhKXt2YXIgYj1bXTthLnZhbGlkaXR5Lm91dHB1dHMuc3VtbWFyeT17c3RhcnQ6ZnVuY3Rpb24oKXthKCIudmFsaWRpdHktZXJyb25lb3VzIikucmVtb3ZlQ2xhc3MoInZhbGlkaXR5LWVycm9uZW91cyIpLGI9W119LGVuZDpmdW5jdGlvbigpe2lmKGEoIi52YWxpZGl0eS1zdW1tYXJ5LWNvbnRhaW5lciIpLmhpZGUoKS5maW5kKCJ1bCIpLmh0bWwoIiIpLGIubGVuZ3RoKXtmb3IodmFyIGM9MDtjPGIubGVuZ3RoOysrYylhKCI8bGkvPiIpLnRleHQoYltjXSkuYXBwZW5kVG8oIi52YWxpZGl0eS1zdW1tYXJ5LWNvbnRhaW5lciB1bCIpO2EoIi52YWxpZGl0eS1zdW1tYXJ5LWNvbnRhaW5lciIpLnNob3coKSxhLnZhbGlkaXR5LnNldHRpbmdzLnNjcm9sbFRvJiYobG9jYXRpb24uaGFzaD1hKCIudmFsaWRpdHktZXJyb25lb3VzOmVxKDApIikuYXR0cigiaWQiKSl9fSxyYWlzZTpmdW5jdGlvbihhLGMpe2IucHVzaChjKTt2YXIgZD1hLmNsb3Nlc3QoImZvcm0iKS5oYXNDbGFzcygianF0cmFuc2Zvcm1kb25lIik7YS5wYXJlbnQoKS5pcygiZGl2IikmJmQ\/KGEucGFyZW50KCkuYWRkQ2xhc3MoInZhbGlkaXR5LWVycm9uZW91cyIpLGEucGFyZW50KCkucGFyZW50KCkuYWRkQ2xhc3MoInZhbGlkaXR5LWVycm9uZW91cyIpKTphLmFkZENsYXNzKCJ2YWxpZGl0eS1lcnJvbmVvdXMiKX0scmFpc2VBZ2dyZWdhdGU6ZnVuY3Rpb24oYSxiKXt0aGlzLnJhaXNlKGEsYil9LGNvbnRhaW5lcjpmdW5jdGlvbigpe2RvY3VtZW50LndyaXRlKCI8ZGl2IGNsYXNzPVwidmFsaWRpdHktc3VtbWFyeS1jb250YWluZXJcIj5UaGUgZm9ybSBkaWRuJ3Qgc3VibWl0IGZvciB0aGUgZm9sbG93aW5nIHJlYXNvbihzKTo8dWw+PC91bD48L2Rpdj4iKX19fShqUXVlcnkpLGZ1bmN0aW9uKCl7dmFyIGE9ZnVuY3Rpb24oKXskKHRoaXMpLnJlbW92ZUNsYXNzKCJ2YWxpZGl0eS1lcnJvbmVvdXMiKX07JC52YWxpZGl0eS5vdXRwdXRzLnF1aWNrbWFpbD17c3RhcnQ6ZnVuY3Rpb24oKXt9LGVuZDpmdW5jdGlvbigpe30scmFpc2U6ZnVuY3Rpb24oYSl7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBhLldhdGVybWFyayYmInVuZGVmaW5lZCIhPWEuYXR0cigiYWx0Iikpe2EuV2F0ZXJtYXJrKGEuYXR0cigiYWx0IiksIiNGRkJBQkEiKTt2YXIgYj1mdW5jdGlvbigpe2EuV2F0ZXJtYXJrKGEuYXR0cigiYWx0IikpfX1lbHNle2EuY3NzKCJiYWNrZ3JvdW5kLWNvbG9yIiwiI2ZmN2U3OSIpO3ZhciBiPWZ1bmN0aW9uKCl7dG1wPXRtcD90bXA6InRyYW5zcGFyZW50IixhLmNzcygiYmFja2dyb3VuZC1jb2xvciIsdG1wKX19JChkb2N1bWVudCkub24oIm1vdXNlZG93biIsYil9LGNvbnRhaW5lcjpmdW5jdGlvbigpe319LCQudmFsaWRpdHkub3V0cHV0cy5wb3B1cD17c3RhcnQ6ZnVuY3Rpb24oKXskKGRvY3VtZW50KS5vZmYoInRvdWNoc3RhcnQgbW91c2Vkb3duIiwiLnZhbGlkaXR5LWVycm9uZW91cyIsYSl9LGVuZDpmdW5jdGlvbihiKXtyZXR1cm4gYi52YWxpZHx8JChkb2N1bWVudCkub24oInRvdWNoc3RhcnQgbW91c2Vkb3duIiwiLnZhbGlkaXR5LWVycm9uZW91cyIsYSksYn0scmFpc2U6ZnVuY3Rpb24oYSl7dmFyIGI9YS5jbG9zZXN0KCJmb3JtIikuaGFzQ2xhc3MoImpxdHJhbnNmb3JtZG9uZSIpO2EucGFyZW50KCkuaXMoImRpdiIpJiZiPyhhLnBhcmVudCgpLmFkZENsYXNzKCJ2YWxpZGl0eS1lcnJvbmVvdXMiKSxhLnBhcmVudCgpLnBhcmVudCgpLmFkZENsYXNzKCJ2YWxpZGl0eS1lcnJvbmVvdXMiKSk6YS5hZGRDbGFzcygidmFsaWRpdHktZXJyb25lb3VzIil9LHJhaXNlQWdncmVnYXRlOmZ1bmN0aW9uKGEpe2NvbnNvbGUubG9nKGEpLGEuaXMoIjpyYWRpbyIpJiZhLmlzKCIuanFUcmFuc2Zvcm1IaWRkZW4iKSYmYS5wYXJlbnQoKS5wYXJlbnQoKS5hZGRDbGFzcygidmFsaWRpdHktZXJyb25lb3VzIil9fX0oKSxmdW5jdGlvbihhKXthLnZhbGlkaXR5Lm91dHB1dHMuY3NzT25seT17c3RhcnQ6ZnVuY3Rpb24oKXthKGEudmFsaWRpdHkuc2V0dGluZ3MuY3NzQ2xhc3MpLnJlbW92ZUNsYXNzKGEudmFsaWRpdHkuc2V0dGluZ3MuY3NzQ2xhc3MpfSxlbmQ6ZnVuY3Rpb24oYil7IWIudmFsaWQmJmEudmFsaWRpdHkuc2V0dGluZ3Muc2Nyb2xsVG8mJihsb2NhdGlvbi5oYXNoPWEoYS52YWxpZGl0eS5zZXR0aW5ncy5jc3NDbGFzcysiOmVxKDApIikuYXR0cigiaWQiKSl9LHJhaXNlOmZ1bmN0aW9uKGIpe2EoYikuYWRkQ2xhc3MoYS52YWxpZGl0eS5zZXR0aW5ncy5jc3NDbGFzcyl9LHJhaXNlQWdncmVnYXRlOmZ1bmN0aW9uKGIsYyl7Yi5sZW5ndGgmJnRoaXMucmFpc2UoYShiLmdldChiLmxlbmd0aC0xKSksYyl9fX0oalF1ZXJ5KTsKLyoqIC9qcy9tYWluLmpzICoqLwp2YXIgX19fZDJjX21haW5qc19jX29uPSIyMDI2LTA0LTI3IDA5OjMwOjA2IjsndXNlIHN0cmljdCc7dmFyICRqc2NvbXA9JGpzY29tcHx8e307JGpzY29tcC5zY29wZT17fTskanNjb21wLkFTU1VNRV9FUzU9ITE7JGpzY29tcC5BU1NVTUVfTk9fTkFUSVZFX01BUD0hMTskanNjb21wLkFTU1VNRV9OT19OQVRJVkVfU0VUPSExOyRqc2NvbXAuU0lNUExFX0ZST1VORF9QT0xZRklMTD0hMTskanNjb21wLklTT0xBVEVfUE9MWUZJTExTPSExOyRqc2NvbXAuRk9SQ0VfUE9MWUZJTExfUFJPTUlTRT0hMTskanNjb21wLkZPUkNFX1BPTFlGSUxMX1BST01JU0VfV0hFTl9OT19VTkhBTkRMRURfUkVKRUNUSU9OPSExOyRqc2NvbXAuZGVmaW5lUHJvcGVydHk9JGpzY29tcC5BU1NVTUVfRVM1fHwiZnVuY3Rpb24iPT10eXBlb2YgT2JqZWN0LmRlZmluZVByb3BlcnRpZXM\/T2JqZWN0LmRlZmluZVByb3BlcnR5OmZ1bmN0aW9uKGEsYixjKXtpZihhPT1BcnJheS5wcm90b3R5cGV8fGE9PU9iamVjdC5wcm90b3R5cGUpcmV0dXJuIGE7YVtiXT1jLnZhbHVlO3JldHVybiBhfTsKJGpzY29tcC5nZXRHbG9iYWw9ZnVuY3Rpb24oYSl7YT1bIm9iamVjdCI9PXR5cGVvZiBnbG9iYWxUaGlzJiZnbG9iYWxUaGlzLGEsIm9iamVjdCI9PXR5cGVvZiB3aW5kb3cmJndpbmRvdywib2JqZWN0Ij09dHlwZW9mIHNlbGYmJnNlbGYsIm9iamVjdCI9PXR5cGVvZiBnbG9iYWwmJmdsb2JhbF07Zm9yKHZhciBiPTA7YjxhLmxlbmd0aDsrK2Ipe3ZhciBjPWFbYl07aWYoYyYmYy5NYXRoPT1NYXRoKXJldHVybiBjfXRocm93IEVycm9yKCJDYW5ub3QgZmluZCBnbG9iYWwgb2JqZWN0Iik7fTskanNjb21wLmdsb2JhbD0kanNjb21wLmdldEdsb2JhbCh0aGlzKTskanNjb21wLklTX1NZTUJPTF9OQVRJVkU9ImZ1bmN0aW9uIj09PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT09dHlwZW9mIFN5bWJvbCgieCIpOyRqc2NvbXAuVFJVU1RfRVM2X1BPTFlGSUxMUz0hJGpzY29tcC5JU09MQVRFX1BPTFlGSUxMU3x8JGpzY29tcC5JU19TWU1CT0xfTkFUSVZFOyRqc2NvbXAucG9seWZpbGxzPXt9OwokanNjb21wLnByb3BlcnR5VG9Qb2x5ZmlsbFN5bWJvbD17fTskanNjb21wLlBPTFlGSUxMX1BSRUZJWD0iJGpzY3AkIjt2YXIgJGpzY29tcCRsb29rdXBQb2x5ZmlsbGVkVmFsdWU9ZnVuY3Rpb24oYSxiKXt2YXIgYz0kanNjb21wLnByb3BlcnR5VG9Qb2x5ZmlsbFN5bWJvbFtiXTtpZihudWxsPT1jKXJldHVybiBhW2JdO2M9YVtjXTtyZXR1cm4gdm9pZCAwIT09Yz9jOmFbYl19OyRqc2NvbXAucG9seWZpbGw9ZnVuY3Rpb24oYSxiLGMsZCl7YiYmKCRqc2NvbXAuSVNPTEFURV9QT0xZRklMTFM\/JGpzY29tcC5wb2x5ZmlsbElzb2xhdGVkKGEsYixjLGQpOiRqc2NvbXAucG9seWZpbGxVbmlzb2xhdGVkKGEsYixjLGQpKX07CiRqc2NvbXAucG9seWZpbGxVbmlzb2xhdGVkPWZ1bmN0aW9uKGEsYixjLGQpe2M9JGpzY29tcC5nbG9iYWw7YT1hLnNwbGl0KCIuIik7Zm9yKGQ9MDtkPGEubGVuZ3RoLTE7ZCsrKXt2YXIgZT1hW2RdO2lmKCEoZSBpbiBjKSlyZXR1cm47Yz1jW2VdfWE9YVthLmxlbmd0aC0xXTtkPWNbYV07Yj1iKGQpO2IhPWQmJm51bGwhPWImJiRqc2NvbXAuZGVmaW5lUHJvcGVydHkoYyxhLHtjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Yn0pfTsKJGpzY29tcC5wb2x5ZmlsbElzb2xhdGVkPWZ1bmN0aW9uKGEsYixjLGQpe3ZhciBlPWEuc3BsaXQoIi4iKTthPTE9PT1lLmxlbmd0aDtkPWVbMF07ZD0hYSYmZCBpbiAkanNjb21wLnBvbHlmaWxscz8kanNjb21wLnBvbHlmaWxsczokanNjb21wLmdsb2JhbDtmb3IodmFyIGs9MDtrPGUubGVuZ3RoLTE7aysrKXt2YXIgaD1lW2tdO2lmKCEoaCBpbiBkKSlyZXR1cm47ZD1kW2hdfWU9ZVtlLmxlbmd0aC0xXTtjPSRqc2NvbXAuSVNfU1lNQk9MX05BVElWRSYmImVzNiI9PT1jP2RbZV06bnVsbDtiPWIoYyk7bnVsbCE9YiYmKGE\/JGpzY29tcC5kZWZpbmVQcm9wZXJ0eSgkanNjb21wLnBvbHlmaWxscyxlLHtjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Yn0pOmIhPT1jJiYodm9pZCAwPT09JGpzY29tcC5wcm9wZXJ0eVRvUG9seWZpbGxTeW1ib2xbZV0mJihjPTFFOSpNYXRoLnJhbmRvbSgpPj4+MCwkanNjb21wLnByb3BlcnR5VG9Qb2x5ZmlsbFN5bWJvbFtlXT0kanNjb21wLklTX1NZTUJPTF9OQVRJVkU\/CiRqc2NvbXAuZ2xvYmFsLlN5bWJvbChlKTokanNjb21wLlBPTFlGSUxMX1BSRUZJWCtjKyIkIitlKSwkanNjb21wLmRlZmluZVByb3BlcnR5KGQsJGpzY29tcC5wcm9wZXJ0eVRvUG9seWZpbGxTeW1ib2xbZV0se2NvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpifSkpKX07JGpzY29tcC51bmRlcnNjb3JlUHJvdG9DYW5CZVNldD1mdW5jdGlvbigpe3ZhciBhPXthOiEwfSxiPXt9O3RyeXtyZXR1cm4gYi5fX3Byb3RvX189YSxiLmF9Y2F0Y2goYyl7fXJldHVybiExfTsKJGpzY29tcC5zZXRQcm90b3R5cGVPZj0kanNjb21wLlRSVVNUX0VTNl9QT0xZRklMTFMmJiJmdW5jdGlvbiI9PXR5cGVvZiBPYmplY3Quc2V0UHJvdG90eXBlT2Y\/T2JqZWN0LnNldFByb3RvdHlwZU9mOiRqc2NvbXAudW5kZXJzY29yZVByb3RvQ2FuQmVTZXQoKT9mdW5jdGlvbihhLGIpe2EuX19wcm90b19fPWI7aWYoYS5fX3Byb3RvX18hPT1iKXRocm93IG5ldyBUeXBlRXJyb3IoYSsiIGlzIG5vdCBleHRlbnNpYmxlIik7cmV0dXJuIGF9Om51bGw7JGpzY29tcC5hcnJheUl0ZXJhdG9ySW1wbD1mdW5jdGlvbihhKXt2YXIgYj0wO3JldHVybiBmdW5jdGlvbigpe3JldHVybiBiPGEubGVuZ3RoP3tkb25lOiExLHZhbHVlOmFbYisrXX06e2RvbmU6ITB9fX07JGpzY29tcC5hcnJheUl0ZXJhdG9yPWZ1bmN0aW9uKGEpe3JldHVybntuZXh0OiRqc2NvbXAuYXJyYXlJdGVyYXRvckltcGwoYSl9fTsKJGpzY29tcC5tYWtlSXRlcmF0b3I9ZnVuY3Rpb24oYSl7dmFyIGI9InVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJlN5bWJvbC5pdGVyYXRvciYmYVtTeW1ib2wuaXRlcmF0b3JdO3JldHVybiBiP2IuY2FsbChhKTokanNjb21wLmFycmF5SXRlcmF0b3IoYSl9OyRqc2NvbXAuZ2VuZXJhdG9yPXt9OyRqc2NvbXAuZ2VuZXJhdG9yLmVuc3VyZUl0ZXJhdG9yUmVzdWx0SXNPYmplY3RfPWZ1bmN0aW9uKGEpe2lmKCEoYSBpbnN0YW5jZW9mIE9iamVjdCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiSXRlcmF0b3IgcmVzdWx0ICIrYSsiIGlzIG5vdCBhbiBvYmplY3QiKTt9OwokanNjb21wLmdlbmVyYXRvci5Db250ZXh0PWZ1bmN0aW9uKCl7dGhpcy5pc1J1bm5pbmdfPSExO3RoaXMueWllbGRBbGxJdGVyYXRvcl89bnVsbDt0aGlzLnlpZWxkUmVzdWx0PXZvaWQgMDt0aGlzLm5leHRBZGRyZXNzPTE7dGhpcy5maW5hbGx5QWRkcmVzc189dGhpcy5jYXRjaEFkZHJlc3NfPTA7dGhpcy5maW5hbGx5Q29udGV4dHNfPXRoaXMuYWJydXB0Q29tcGxldGlvbl89bnVsbH07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuc3RhcnRfPWZ1bmN0aW9uKCl7aWYodGhpcy5pc1J1bm5pbmdfKXRocm93IG5ldyBUeXBlRXJyb3IoIkdlbmVyYXRvciBpcyBhbHJlYWR5IHJ1bm5pbmciKTt0aGlzLmlzUnVubmluZ189ITB9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLnN0b3BfPWZ1bmN0aW9uKCl7dGhpcy5pc1J1bm5pbmdfPSExfTsKJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuanVtcFRvRXJyb3JIYW5kbGVyXz1mdW5jdGlvbigpe3RoaXMubmV4dEFkZHJlc3M9dGhpcy5jYXRjaEFkZHJlc3NffHx0aGlzLmZpbmFsbHlBZGRyZXNzX307JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUubmV4dF89ZnVuY3Rpb24oYSl7dGhpcy55aWVsZFJlc3VsdD1hfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS50aHJvd189ZnVuY3Rpb24oYSl7dGhpcy5hYnJ1cHRDb21wbGV0aW9uXz17ZXhjZXB0aW9uOmEsaXNFeGNlcHRpb246ITB9O3RoaXMuanVtcFRvRXJyb3JIYW5kbGVyXygpfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5yZXR1cm49ZnVuY3Rpb24oYSl7dGhpcy5hYnJ1cHRDb21wbGV0aW9uXz17cmV0dXJuOmF9O3RoaXMubmV4dEFkZHJlc3M9dGhpcy5maW5hbGx5QWRkcmVzc199OwokanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5qdW1wVGhyb3VnaEZpbmFsbHlCbG9ja3M9ZnVuY3Rpb24oYSl7dGhpcy5hYnJ1cHRDb21wbGV0aW9uXz17anVtcFRvOmF9O3RoaXMubmV4dEFkZHJlc3M9dGhpcy5maW5hbGx5QWRkcmVzc199OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLnlpZWxkPWZ1bmN0aW9uKGEsYil7dGhpcy5uZXh0QWRkcmVzcz1iO3JldHVybnt2YWx1ZTphfX07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUueWllbGRBbGw9ZnVuY3Rpb24oYSxiKXthPSRqc2NvbXAubWFrZUl0ZXJhdG9yKGEpO3ZhciBjPWEubmV4dCgpOyRqc2NvbXAuZ2VuZXJhdG9yLmVuc3VyZUl0ZXJhdG9yUmVzdWx0SXNPYmplY3RfKGMpO2lmKGMuZG9uZSl0aGlzLnlpZWxkUmVzdWx0PWMudmFsdWUsdGhpcy5uZXh0QWRkcmVzcz1iO2Vsc2UgcmV0dXJuIHRoaXMueWllbGRBbGxJdGVyYXRvcl89YSx0aGlzLnlpZWxkKGMudmFsdWUsYil9OwokanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5qdW1wVG89ZnVuY3Rpb24oYSl7dGhpcy5uZXh0QWRkcmVzcz1hfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5qdW1wVG9FbmQ9ZnVuY3Rpb24oKXt0aGlzLm5leHRBZGRyZXNzPTB9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLnNldENhdGNoRmluYWxseUJsb2Nrcz1mdW5jdGlvbihhLGIpe3RoaXMuY2F0Y2hBZGRyZXNzXz1hO3ZvaWQgMCE9YiYmKHRoaXMuZmluYWxseUFkZHJlc3NfPWIpfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5zZXRGaW5hbGx5QmxvY2s9ZnVuY3Rpb24oYSl7dGhpcy5jYXRjaEFkZHJlc3NfPTA7dGhpcy5maW5hbGx5QWRkcmVzc189YXx8MH07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUubGVhdmVUcnlCbG9jaz1mdW5jdGlvbihhLGIpe3RoaXMubmV4dEFkZHJlc3M9YTt0aGlzLmNhdGNoQWRkcmVzc189Ynx8MH07CiRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmVudGVyQ2F0Y2hCbG9jaz1mdW5jdGlvbihhKXt0aGlzLmNhdGNoQWRkcmVzc189YXx8MDthPXRoaXMuYWJydXB0Q29tcGxldGlvbl8uZXhjZXB0aW9uO3RoaXMuYWJydXB0Q29tcGxldGlvbl89bnVsbDtyZXR1cm4gYX07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuZW50ZXJGaW5hbGx5QmxvY2s9ZnVuY3Rpb24oYSxiLGMpe2M\/dGhpcy5maW5hbGx5Q29udGV4dHNfW2NdPXRoaXMuYWJydXB0Q29tcGxldGlvbl86dGhpcy5maW5hbGx5Q29udGV4dHNfPVt0aGlzLmFicnVwdENvbXBsZXRpb25fXTt0aGlzLmNhdGNoQWRkcmVzc189YXx8MDt0aGlzLmZpbmFsbHlBZGRyZXNzXz1ifHwwfTsKJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUubGVhdmVGaW5hbGx5QmxvY2s9ZnVuY3Rpb24oYSxiKXtiPXRoaXMuZmluYWxseUNvbnRleHRzXy5zcGxpY2UoYnx8MClbMF07aWYoYj10aGlzLmFicnVwdENvbXBsZXRpb25fPXRoaXMuYWJydXB0Q29tcGxldGlvbl98fGIpe2lmKGIuaXNFeGNlcHRpb24pcmV0dXJuIHRoaXMuanVtcFRvRXJyb3JIYW5kbGVyXygpO3ZvaWQgMCE9Yi5qdW1wVG8mJnRoaXMuZmluYWxseUFkZHJlc3NfPGIuanVtcFRvPyh0aGlzLm5leHRBZGRyZXNzPWIuanVtcFRvLHRoaXMuYWJydXB0Q29tcGxldGlvbl89bnVsbCk6dGhpcy5uZXh0QWRkcmVzcz10aGlzLmZpbmFsbHlBZGRyZXNzX31lbHNlIHRoaXMubmV4dEFkZHJlc3M9YX07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuZm9ySW49ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyAkanNjb21wLmdlbmVyYXRvci5Db250ZXh0LlByb3BlcnR5SXRlcmF0b3IoYSl9OwokanNjb21wLmdlbmVyYXRvci5Db250ZXh0LlByb3BlcnR5SXRlcmF0b3I9ZnVuY3Rpb24oYSl7dGhpcy5vYmplY3RfPWE7dGhpcy5wcm9wZXJ0aWVzXz1bXTtmb3IodmFyIGIgaW4gYSl0aGlzLnByb3BlcnRpZXNfLnB1c2goYik7dGhpcy5wcm9wZXJ0aWVzXy5yZXZlcnNlKCl9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQuUHJvcGVydHlJdGVyYXRvci5wcm90b3R5cGUuZ2V0TmV4dD1mdW5jdGlvbigpe2Zvcig7MDx0aGlzLnByb3BlcnRpZXNfLmxlbmd0aDspe3ZhciBhPXRoaXMucHJvcGVydGllc18ucG9wKCk7aWYoYSBpbiB0aGlzLm9iamVjdF8pcmV0dXJuIGF9cmV0dXJuIG51bGx9OyRqc2NvbXAuZ2VuZXJhdG9yLkVuZ2luZV89ZnVuY3Rpb24oYSl7dGhpcy5jb250ZXh0Xz1uZXcgJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dDt0aGlzLnByb2dyYW1fPWF9OwokanNjb21wLmdlbmVyYXRvci5FbmdpbmVfLnByb3RvdHlwZS5uZXh0Xz1mdW5jdGlvbihhKXt0aGlzLmNvbnRleHRfLnN0YXJ0XygpO2lmKHRoaXMuY29udGV4dF8ueWllbGRBbGxJdGVyYXRvcl8pcmV0dXJuIHRoaXMueWllbGRBbGxTdGVwXyh0aGlzLmNvbnRleHRfLnlpZWxkQWxsSXRlcmF0b3JfLm5leHQsYSx0aGlzLmNvbnRleHRfLm5leHRfKTt0aGlzLmNvbnRleHRfLm5leHRfKGEpO3JldHVybiB0aGlzLm5leHRTdGVwXygpfTsKJGpzY29tcC5nZW5lcmF0b3IuRW5naW5lXy5wcm90b3R5cGUucmV0dXJuXz1mdW5jdGlvbihhKXt0aGlzLmNvbnRleHRfLnN0YXJ0XygpO3ZhciBiPXRoaXMuY29udGV4dF8ueWllbGRBbGxJdGVyYXRvcl87aWYoYilyZXR1cm4gdGhpcy55aWVsZEFsbFN0ZXBfKCJyZXR1cm4iaW4gYj9iWyJyZXR1cm4iXTpmdW5jdGlvbihjKXtyZXR1cm57dmFsdWU6Yyxkb25lOiEwfX0sYSx0aGlzLmNvbnRleHRfLnJldHVybik7dGhpcy5jb250ZXh0Xy5yZXR1cm4oYSk7cmV0dXJuIHRoaXMubmV4dFN0ZXBfKCl9OwokanNjb21wLmdlbmVyYXRvci5FbmdpbmVfLnByb3RvdHlwZS50aHJvd189ZnVuY3Rpb24oYSl7dGhpcy5jb250ZXh0Xy5zdGFydF8oKTtpZih0aGlzLmNvbnRleHRfLnlpZWxkQWxsSXRlcmF0b3JfKXJldHVybiB0aGlzLnlpZWxkQWxsU3RlcF8odGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yX1sidGhyb3ciXSxhLHRoaXMuY29udGV4dF8ubmV4dF8pO3RoaXMuY29udGV4dF8udGhyb3dfKGEpO3JldHVybiB0aGlzLm5leHRTdGVwXygpfTsKJGpzY29tcC5nZW5lcmF0b3IuRW5naW5lXy5wcm90b3R5cGUueWllbGRBbGxTdGVwXz1mdW5jdGlvbihhLGIsYyl7dHJ5e3ZhciBkPWEuY2FsbCh0aGlzLmNvbnRleHRfLnlpZWxkQWxsSXRlcmF0b3JfLGIpOyRqc2NvbXAuZ2VuZXJhdG9yLmVuc3VyZUl0ZXJhdG9yUmVzdWx0SXNPYmplY3RfKGQpO2lmKCFkLmRvbmUpcmV0dXJuIHRoaXMuY29udGV4dF8uc3RvcF8oKSxkO3ZhciBlPWQudmFsdWV9Y2F0Y2goayl7cmV0dXJuIHRoaXMuY29udGV4dF8ueWllbGRBbGxJdGVyYXRvcl89bnVsbCx0aGlzLmNvbnRleHRfLnRocm93XyhrKSx0aGlzLm5leHRTdGVwXygpfXRoaXMuY29udGV4dF8ueWllbGRBbGxJdGVyYXRvcl89bnVsbDtjLmNhbGwodGhpcy5jb250ZXh0XyxlKTtyZXR1cm4gdGhpcy5uZXh0U3RlcF8oKX07CiRqc2NvbXAuZ2VuZXJhdG9yLkVuZ2luZV8ucHJvdG90eXBlLm5leHRTdGVwXz1mdW5jdGlvbigpe2Zvcig7dGhpcy5jb250ZXh0Xy5uZXh0QWRkcmVzczspdHJ5e3ZhciBhPXRoaXMucHJvZ3JhbV8odGhpcy5jb250ZXh0Xyk7aWYoYSlyZXR1cm4gdGhpcy5jb250ZXh0Xy5zdG9wXygpLHt2YWx1ZTphLnZhbHVlLGRvbmU6ITF9fWNhdGNoKGIpe3RoaXMuY29udGV4dF8ueWllbGRSZXN1bHQ9dm9pZCAwLHRoaXMuY29udGV4dF8udGhyb3dfKGIpfXRoaXMuY29udGV4dF8uc3RvcF8oKTtpZih0aGlzLmNvbnRleHRfLmFicnVwdENvbXBsZXRpb25fKXthPXRoaXMuY29udGV4dF8uYWJydXB0Q29tcGxldGlvbl87dGhpcy5jb250ZXh0Xy5hYnJ1cHRDb21wbGV0aW9uXz1udWxsO2lmKGEuaXNFeGNlcHRpb24pdGhyb3cgYS5leGNlcHRpb247cmV0dXJue3ZhbHVlOmEucmV0dXJuLGRvbmU6ITB9fXJldHVybnt2YWx1ZTp2b2lkIDAsZG9uZTohMH19OwokanNjb21wLmdlbmVyYXRvci5HZW5lcmF0b3JfPWZ1bmN0aW9uKGEpe3RoaXMubmV4dD1mdW5jdGlvbihiKXtyZXR1cm4gYS5uZXh0XyhiKX07dGhpcy50aHJvdz1mdW5jdGlvbihiKXtyZXR1cm4gYS50aHJvd18oYil9O3RoaXMucmV0dXJuPWZ1bmN0aW9uKGIpe3JldHVybiBhLnJldHVybl8oYil9O3RoaXNbU3ltYm9sLml0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfX07JGpzY29tcC5nZW5lcmF0b3IuY3JlYXRlR2VuZXJhdG9yPWZ1bmN0aW9uKGEsYil7Yj1uZXcgJGpzY29tcC5nZW5lcmF0b3IuR2VuZXJhdG9yXyhuZXcgJGpzY29tcC5nZW5lcmF0b3IuRW5naW5lXyhiKSk7JGpzY29tcC5zZXRQcm90b3R5cGVPZiYmYS5wcm90b3R5cGUmJiRqc2NvbXAuc2V0UHJvdG90eXBlT2YoYixhLnByb3RvdHlwZSk7cmV0dXJuIGJ9OwokanNjb21wLmFzeW5jRXhlY3V0ZVByb21pc2VHZW5lcmF0b3I9ZnVuY3Rpb24oYSl7ZnVuY3Rpb24gYihkKXtyZXR1cm4gYS5uZXh0KGQpfWZ1bmN0aW9uIGMoZCl7cmV0dXJuIGEudGhyb3coZCl9cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKGQsZSl7ZnVuY3Rpb24gayhoKXtoLmRvbmU\/ZChoLnZhbHVlKTpQcm9taXNlLnJlc29sdmUoaC52YWx1ZSkudGhlbihiLGMpLnRoZW4oayxlKX1rKGEubmV4dCgpKX0pfTskanNjb21wLmFzeW5jRXhlY3V0ZVByb21pc2VHZW5lcmF0b3JGdW5jdGlvbj1mdW5jdGlvbihhKXtyZXR1cm4gJGpzY29tcC5hc3luY0V4ZWN1dGVQcm9taXNlR2VuZXJhdG9yKGEoKSl9OyRqc2NvbXAuYXN5bmNFeGVjdXRlUHJvbWlzZUdlbmVyYXRvclByb2dyYW09ZnVuY3Rpb24oYSl7cmV0dXJuICRqc2NvbXAuYXN5bmNFeGVjdXRlUHJvbWlzZUdlbmVyYXRvcihuZXcgJGpzY29tcC5nZW5lcmF0b3IuR2VuZXJhdG9yXyhuZXcgJGpzY29tcC5nZW5lcmF0b3IuRW5naW5lXyhhKSkpfTsKalF1ZXJ5Lm5vQ29uZmxpY3Q9ZnVuY3Rpb24oKXtyZXR1cm4galF1ZXJ5fTtqUXVlcnkuZXZlbnQuc3BlY2lhbC50b3VjaHN0YXJ0PXtzZXR1cDpmdW5jdGlvbihhLGIsYyl7Yi5pbmNsdWRlcygibm9QcmV2ZW50RGVmYXVsdCIpP3RoaXMuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2hzdGFydCIsYyx7cGFzc2l2ZTohMX0pOnRoaXMuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2hzdGFydCIsYyx7cGFzc2l2ZTohMH0pfX07alF1ZXJ5LmV4cHIucHNldWRvcy5yZWFsbHlWaXNpYmxlPWZ1bmN0aW9uKGEpe3RyeXtpZihhPT1kb2N1bWVudC5ib2R5KXJldHVybiEwO3ZhciBiPWpRdWVyeShhKTtyZXR1cm4gYi5pcygiOnZpc2libGUiKSYmImhpZGRlbiIhPT1iLmNzcygidmlzaWJpbGl0eSIpJiYwPGIucGFyZW50KCI6cmVhbGx5VmlzaWJsZSIpLmxlbmd0aH1jYXRjaChjKXtyZXR1cm4gY29uc29sZS5sb2coYy5tZXNzYWdlLGMpLCExfX07CkFycmF5LnByb3RvdHlwZS5maW5kfHxPYmplY3QuZGVmaW5lUHJvcGVydHkoQXJyYXkucHJvdG90eXBlLCJmaW5kIix7dmFsdWU6ZnVuY3Rpb24oYSxiKXtpZihudWxsPT10aGlzKXRocm93IFR5cGVFcnJvcignInRoaXMiIGlzIG51bGwgb3Igbm90IGRlZmluZWQnKTt2YXIgYz1PYmplY3QodGhpcyksZD1jLmxlbmd0aD4+PjA7aWYoImZ1bmN0aW9uIiE9PXR5cGVvZiBhKXRocm93IFR5cGVFcnJvcigicHJlZGljYXRlIG11c3QgYmUgYSBmdW5jdGlvbiIpO2Zvcih2YXIgZT0wO2U8ZDspe3ZhciBrPWNbZV07aWYoYS5jYWxsKGIsayxlLGMpKXJldHVybiBrO2UrK319LGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOwp2YXIgaXNGdW5jdGlvbj1hPT4iZnVuY3Rpb24iPT09dHlwZW9mIGEsdHJpbT1hPT5hLnJlcGxhY2UoL15ccyt8XHMrJC9nLCIiKSxkZWJ1Zz1mdW5jdGlvbigpe2lmKGRlYnVnRW5hYmxlZCgpKXt2YXIgYT1jb25zb2xlLGI9YXJndW1lbnRzOyJmdW5jdGlvbiI9PXR5cGVvZiBhLmxvZyYmYS5sb2cuYXBwbHkoYSxiKX19LGRlYnVnRW5hYmxlZD1mdW5jdGlvbigpe3ZhciBhPWRvY3VtZW50LmxvY2F0aW9uLmhvc3Q7dmFyIGI9ZG9jdW1lbnQuY29va2llLm1hdGNoKC90ZXN0aW5nPShbXjtdKykvaSk7Yj1udWxsPT1iPyExOmJbMV07cmV0dXJuIGJ8fC9eKGRlYWxlcnxkZW1vKXxkMmNtZWRpYVwuY2EkLy50ZXN0KGEpJiYib2ZmIiE9Yn0sZW5hYmxlRGVidWc9ZnVuY3Rpb24oKXtDb29raWVzLnNldCgidGVzdGluZyIsIm9uIil9LGRpc2FibGVEZWJ1Zz1mdW5jdGlvbigpe0Nvb2tpZXMuc2V0KCJ0ZXN0aW5nIiwib2ZmIil9LEFsZXJ0QmFyPWZ1bmN0aW9uKGEpe3ZhciBiPWEuc2VjdGlvbnMudG9Mb3dlckNhc2UoKSwKYz1hLmN1cnJlbnQudG9Mb3dlckNhc2UoKSxkPSQoIi5oZWFkZXItd3JhcHBlciIpLmxlbmd0aD8kKCIuaGVhZGVyLXdyYXBwZXIiKTokKCIjbWFpbkRpdiIpLGU9JCgiI2FsZXJ0TXNnQ29udGFpbmVyIiksaz0kKCJib2R5IiksaD0kKCIuQWRkZWRUb3BMaW5rRGl2Iiksbj1uZXcgRGF0ZTtuLnNldFRpbWUobi5nZXRUaW1lKCkrMzZFNSk7dmFyIHg9ZnVuY3Rpb24oKXtDb29raWVzLnNldCgiYWxlcnRNZXNzYWdlQ2xvc2VkIiwxLG4sIi8iKTtlLmhpZGUoKTtkLmNzcyh7bWFyZ2luVG9wOjB9KTtrLmNzcygiYmFja2dyb3VuZC1wb3NpdGlvbi15IiwiIik7MDxoLmxlbmd0aCYmaC5jc3MoIm1hcmdpbi10b3AiLCIiKX07LTE8Yi5pbmRleE9mKGMpJiYhQ29va2llcy5nZXQoImFsZXJ0TWVzc2FnZUNsb3NlZCIpJiYoZS5jc3Moe2JhY2tncm91bmRDb2xvcjphLmNvbG9yfSksJCgiLmNsb3NlIixlKS5vbigiY2xpY2siLHgpLGQuY3NzKCJtYXJnaW4tdG9wIixlLmhlaWdodCgpKyJweCIpLAprLmNzcyh7ImJhY2tncm91bmQtcG9zaXRpb24teSI6ZS5oZWlnaHQoKSsicHgifSksMDxoLmxlbmd0aCYmaC5jc3MoIm1hcmdpbi10b3AiLGUuaGVpZ2h0KCkrInB4IiksZS5zaG93KCkpfTtmdW5jdGlvbiBMZWFkR2VuQURGKGEsYixjLGQsZSxrLGgsbil7aWYodHlwZW9mIGNhcnByb29mSGFuZGxlcilyZXR1cm4gY2FycHJvb2ZIYW5kbGVyLmxlYWRHZW4uYXBwbHkoY2FycHJvb2ZIYW5kbGVyLGFyZ3VtZW50cyl9CmZ1bmN0aW9uIHJ1bkltYWdlUG9wdXBGaXJld29ya3MoKXsidW5kZWZpbmVkIiE9dHlwZW9mIEZpcmV3b3JrVGltZXImJihpbWFnZUZpcmV3b3Jrcz0hMCxGaXJld29ya1RpbWVyKCJiZ0ltYWdlIiwiRkZGRkZGIiwyMDAsMjAwKSxGaXJld29ya1RpbWVyKCJiZ0ltYWdlIiwiRkYwMDAwIiwzODAsMjUwLDFFMyksRmlyZXdvcmtUaW1lcigiYmdJbWFnZSIsIjAwZmYxMSIsOTAsMTcwLDJFMyksRmlyZXdvcmtUaW1lcigiYmdJbWFnZSIsIjQ0Y2RmZiIsMzIwLDI1MCwzRTMsMCwuOCksc2V0VGltZW91dChmdW5jdGlvbigpe3J1bkltYWdlUG9wdXBGaXJld29ya3MoKX0sMUU0KSl9CmZ1bmN0aW9uIGhhbmRsZUFjdGlvbkNsaWNrKGEpe2E9YXx8d2luZG93LmV2ZW50O2E9YS5jdXJyZW50VGFyZ2V0fHxhLnNyY0VsZW1lbnQ7dmFyIGI9d2luZG93LmxvY2F0aW9uLmhyZWYuc3Vic3RyaW5nKHdpbmRvdy5sb2NhdGlvbi5ocmVmLmxhc3RJbmRleE9mKCIvIikrMSksYz0idXNlZCI7dmFyIGQ9IiI7aWYoLTE9PXdpbmRvdy5sb2NhdGlvbi5ocmVmLmluZGV4T2YoIi1pZCIpKXtkPWIucmVwbGFjZSgiLmh0bWwiLCIiKS5zcGxpdCgiLSIpO2lmKDM+ZC5sZW5ndGh8fC0xPGIuaW5kZXhPZigic2VhcmNoIil8fC0xPGIuaW5kZXhPZigiZmluZC0iKXx8LTE8Yi5pbmRleE9mKCJyZWNoZXJjaGUiKXx8LTE8Yi5pbmRleE9mKCJwcml4LSIpfHwtMTxiLmluZGV4T2YoInByaWNlLSIpfHwtMTxiLmluZGV4T2YoImVzc2Fpcy1yb3V0aWVyLSIpfHwtMTxiLmluZGV4T2YoInRlc3QtZHJpdmUtIil8fC0xPGIuaW5kZXhPZigidmVoaWN1bGUtZWNoYW5nZS0iKXx8LTE8Yi5pbmRleE9mKCJ0cmFkZS1pbi0iKXx8Ci0xPGIuaW5kZXhPZigicG5ldXMtcGllY2VzLSIpfHwtMTxiLmluZGV4T2YoImNhci1wYXJ0cy0iKXx8LTE8Yi5pbmRleE9mKCJyZW5kZXotdm91cy0iKXx8LTE8Yi5pbmRleE9mKCItYXBwb2ludG1lbnQiKXx8LTE8Yi5pbmRleE9mKCJjcmVkaXQiKXx8LTE8Yi5pbmRleE9mKCJmaW5hbmNlbWVudCIpfHwtMTxiLmluZGV4T2YoInByZS1hcHBybyIpfHwtMTxiLmluZGV4T2YoIm5ldy13ZXN0Iil8fC0xPGIuaW5kZXhPZigiY29uZmlkZW50aWFsaXRlIil8fC0xPGIuaW5kZXhPZigicHJpdmFjeS1wb2xpY3kiKXx8LTE8Yi5pbmRleE9mKCJ0ZXJtZXMtZXQtY29uZGl0aW9ucyIpfHwtMTxiLmluZGV4T2YoInRlcm1zLWFuZC1jb25kaXRpb25zIikpZD0iLmh0bWwiO2Vsc2V7dmFyIGU9KG5ldyBEYXRlKS5nZXRGdWxsWWVhcigpOyJ1bmRlZmluZWQiPT10eXBlb2YgZFsyXXx8ZSE9ZFsyXSYmZSsxIT1kWzJdfHwoYz0ibmV3Iik7ZD0iLyIrYn1kPWEuZ2V0QXR0cmlidXRlKCJ0YXJnZXRVUkkiKS5yZXBsYWNlKCIuaHRtbCIsCmQpfWVsc2V7c3dpdGNoKGEuZ2V0QXR0cmlidXRlKCJhY3Rpb24iKSl7Y2FzZSAiVGVzdERyaXZlQWN0aW9uQm94IjpkPSQoIiN0ZXN0RHJpdmVGb2xkZXIiKS52YWwoKStiO2JyZWFrO2Nhc2UgIlByaWNlQWN0aW9uQm94IjpkPSQoIiNwcmljZVJlcXVlc3RGb2xkZXIiKS52YWwoKStiO2JyZWFrO2Nhc2UgIkV2YWxBY3Rpb25Cb3giOmQ9JCgiI2V2YWxDYXJGb2xkZXIiKS52YWwoKStiO2JyZWFrO2Nhc2UgIkZpbmFuY2VBY3Rpb25Cb3giOmQ9JCgiI0ZpbmFuY2VGb2xkZXIiKS52YWwoKStiO2JyZWFrO2RlZmF1bHQ6InVuZGVmaW5lZCIhPXR5cGVvZiAkKGEpLmF0dHIoImZvbGRlciIpP2Q9JChhKS5hdHRyKCJmb2xkZXIiKToidW5kZWZpbmVkIiE9dHlwZW9mICQoYSkuYXR0cigidGFyZ2V0dXJpIikmJihkPSQoYSkuYXR0cigidGFyZ2V0dXJpIikpfUNvb2tpZXMuc2V0KCJmcm9tZGV0YWlsc3BhZ2UiLCIxIixudWxsLCIvIil9aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBkJiZudWxsIT0KZCYmMDxkLmxlbmd0aCl7Yj1kMmNtZWRpYS5odG1sRmlsZSghMSwhMCk7ZT1iLnNwbGl0KCItIik7dmFyIGs9IiIsaD0iIixuPSIiOzA8ZS5sZW5ndGgmJihrPWVbMF0pOzE8ZS5sZW5ndGgmJihoPWVbMV0pOzI8ZS5sZW5ndGgmJihuPWVbMl0pOzA8ay5sZW5ndGgmJjA8aC5sZW5ndGgmJjA8bi5sZW5ndGgmJiFpc05hTihuKSYmND09bi50b1N0cmluZygpLmxlbmd0aCYmLTE8ZC5pbmRleE9mKCIuaHRtIikmJihlPWEuZ2V0QXR0cmlidXRlKCJmb2xkZXIiKSxkPSJ1bmRlZmluZWQiIT10eXBlb2YgZSYmbnVsbCE9ZT9lOmQuc3Vic3RyaW5nKDAsZC5sYXN0SW5kZXhPZigiLyIpKzEpLGQ9ZC5yZXBsYWNlKCIuaHRtbCIsIi8iKStiKyIuaHRtbCIpOyQoYSkuaGFzQ2xhc3MoInRyYWRlaW5MaW5rIikmJigwPGEuZ2V0QXR0cmlidXRlKCJ0YXJnZXRVUkkiKS5pbmRleE9mKCJ0cmFkZWludmFsdWVzIil8fDA8YS5nZXRBdHRyaWJ1dGUoInRhcmdldFVSSSIpLmluZGV4T2YoImluc3RhbnRvZmZlci5hY2N1LXRyYWRlLmNvbSIpKT8Kc2hvd1RyYWRlSW5Qb3B1cChhLmdldEF0dHJpYnV0ZSgidGFyZ2V0VVJJIikpOigibmV3Ij09YyYmKGQ9ZC5yZXBsYWNlKCJvY2Nhc2lvbiIsIm5ldWYiKS5yZXBsYWNlKCJ1c2VkIiwibmV3IikpLHdpbmRvdy5sb2NhdGlvbi5ocmVmPWQpfX0KZnVuY3Rpb24gb3BlbkZpbmFuY2VNdWx0aXN0ZXBGb3JtT25DdXJyZW50UGFnZShhLGIsYyxkLGUsayxoKXthLnByZXZlbnREZWZhdWx0KCk7YS5zdG9wUHJvcGFnYXRpb24oKTtiPyQoIiNwb3B1cG1ha2VNdWx0aXN0ZXBGb3JtIikudmFsKGIpOiJORVdDQVJERVRBSUxTIj09JCgiYm9keSIpLmF0dHIoImlkIik\/JCgiI3BvcHVwbWFrZU11bHRpc3RlcEZvcm0iKS52YWwoJCgiLmJyYW5kZW1haWwiKS52YWwoKSk6ImNhcmRldGFpbC5odG1sIj09JCgiI1BBR0VJRCIpLnZhbCgpJiYkKCIjcG9wdXBtYWtlTXVsdGlzdGVwRm9ybSIpLnZhbCgkKCIjcGhvbmVtYWtlIikudmFsKCkpO2M\/JCgiI3BvcHVwbW9kZWxNdWx0aXN0ZXBGb3JtIikudmFsKGMpOiJORVdDQVJERVRBSUxTIj09JCgiYm9keSIpLmF0dHIoImlkIik\/JCgiI3BvcHVwbW9kZWxNdWx0aXN0ZXBGb3JtIikudmFsKCQoIi5tb2RlbGVtYWlsIikudmFsKCkpOiJjYXJkZXRhaWwuaHRtbCI9PSQoIiNQQUdFSUQiKS52YWwoKSYmCiQoIiNwb3B1cG1vZGVsTXVsdGlzdGVwRm9ybSIpLnZhbCgkKCIjcGhvbmVtb2RlbCIpLnZhbCgpKTtkPyQoIiNwb3B1cHllYXJNdWx0aXN0ZXBGb3JtIikudmFsKGQpOiJORVdDQVJERVRBSUxTIj09JCgiYm9keSIpLmF0dHIoImlkIik\/JCgiI3BvcHVweWVhck11bHRpc3RlcEZvcm0iKS52YWwoJCgiLnllYXJlbWFpbCIpLnZhbCgpKToiY2FyZGV0YWlsLmh0bWwiPT0kKCIjUEFHRUlEIikudmFsKCkmJiQoIiNwb3B1cHllYXJNdWx0aXN0ZXBGb3JtIikudmFsKCQoIiNwaG9uZW15ZWFyIikudmFsKCkpO2U\/JCgiI3BvcHVwc3RvY2tudW1iZXJNdWx0aXN0ZXBGb3JtIikudmFsKGUpOiJORVdDQVJERVRBSUxTIj09JCgiYm9keSIpLmF0dHIoImlkIik\/JCgiI3BvcHVwc3RvY2tudW1iZXJNdWx0aXN0ZXBGb3JtIikudmFsKCIiKToiY2FyZGV0YWlsLmh0bWwiPT0kKCIjUEFHRUlEIikudmFsKCkmJiQoIiNwb3B1cHN0b2NrbnVtYmVyTXVsdGlzdGVwRm9ybSIpLnZhbCgkKCIjcGhvbmVzdG9ja251bWJlciIpLnZhbCgpKTsKaz8kKCIjdG9wY2FyaWRNdWx0aXN0ZXBGb3JtIikudmFsKGspOiJORVdDQVJERVRBSUxTIj09JCgiYm9keSIpLmF0dHIoImlkIikmJiQoIiN0b3BjYXJpZE11bHRpc3RlcEZvcm0iKS52YWwoIiIpO2gmJihoLnNlbmRUbyYmJCgiI0ZJTkFOQ0VfRk9STV9TRU5EVE9fRU1BSUwiKS52YWwoaC5zZW5kVG8pLGguc2VuZFRvQWRmJiYkKCIjRklOQU5DRV9GT1JNX1NFTkRUT0FERl9FTUFJTCIpLnZhbChoLnNlbmRUb0FkZiksaC5kZWFsZXJOYW1lJiYkKCIjRklOQU5DRV9GT1JNX0RFQUxFUk5BTUUiKS52YWwoaC5kZWFsZXJOYW1lKSk7YT0iZmluYW5jZU11bHRpc3RlcFBvcHVwQ29udGFpbmVyIjskKCIjRmluYW5jZV9Gb3JtVHlwZSIpLmxlbmd0aCYmIm11bHRpc3RlcEluc3RhbnQiPT0kKCIjRmluYW5jZV9Gb3JtVHlwZSIpLnZhbCgpJiYkKCIjZmluYW5jZU11bHRpc3RlcEluc3RhbnRQb3B1cENvbnRhaW5lciIpLmxlbmd0aCYmKGE9ImZpbmFuY2VNdWx0aXN0ZXBJbnN0YW50UG9wdXBDb250YWluZXIiKTsKJCgiIyIrYSkucG9wdXBpemUoKS5zZXRUcmlnZ2VyKCJjbGljayIpLm9wZW4oMSl9ZnVuY3Rpb24gb3BlblNob3dyb29tQ29udGFjdFBvcHVwKGEsYixjLGQpe2EucHJldmVudERlZmF1bHQoKTthLnN0b3BQcm9wYWdhdGlvbigpO2VtYWlsSGFuZGxlci5tYWtlPWI7JCgiI2xhc3R2aWV3ZWRtYWtlIikudmFsKGIpO2VtYWlsSGFuZGxlci5tb2RlbD1jOyQoIiNsYXN0dmlld2VkbW9kZWwiKS52YWwoYyk7ZW1haWxIYW5kbGVyLnllYXI9ZDskKCIjbGFzdHZpZXdlZHllYXIiKS52YWwoZCk7JCgiI2NvbnRhY3Rwb3B1cCIpLnBvcHVwaXplKCkuc2V0VHJpZ2dlcigiY2xpY2siKS5vcGVuKCl9dmFyIGQyY21lZGlhPWQyY21lZGlhfHx7fTsKZDJjbWVkaWEuc2Nyb2xsVG89ZnVuY3Rpb24oYSxiLGMpeyJ1bmRlZmluZWQiPT10eXBlb2YgYyYmKGM9MUUzKTsidW5kZWZpbmVkIj09dHlwZW9mIGImJihiPTApOyQoImh0bWwsIGJvZHkiKS5hbmltYXRlKHtzY3JvbGxUb3A6JChhKS5vZmZzZXQoKS50b3AtYn0sYyk7cmV0dXJuITF9OwpkMmNtZWRpYS51cmw9e19zYW5pdGl6ZTohMCxkZXNhbml0aXplOmZ1bmN0aW9uKGEpe2lmKCJzdHJpbmciPT09dHlwZW9mIGEpcmV0dXJuIGEucmVwbGFjZSgvXy9nLCItIik7aWYoIm9iamVjdCI9PT10eXBlb2YgYSl7Zm9yKHZhciBiIGluIGEpYVtiXT10aGlzLmRlc2FuaXRpemUoYVtiXSk7cmV0dXJuIGF9fSxnZW5lcmF0ZTpmdW5jdGlvbigpe3ZhciBhPSIiO3RoaXMuX3Nhbml0aXplJiYoYXJndW1lbnRzPXRoaXMuc2FuaXRpemUoYXJndW1lbnRzKSk7Zm9yKGk9MDtpPGFyZ3VtZW50cy5sZW5ndGgtMTtpKyspYSs9YXJndW1lbnRzW2ldKyItIjtyZXR1cm4gYSthcmd1bWVudHNbaV0rIi5odG1sIn0scGFyc2U6ZnVuY3Rpb24oKXt1cmw9ZGVjb2RlVVJJQ29tcG9uZW50KGRvY3VtZW50LlVSTCk7c3RyUGFyYW09dXJsLnN1YnN0cmluZyh1cmwubGFzdEluZGV4T2YoIi8iKSk7b2JqUGFyYW09e21ha2U6bnVsbCxtb2RlbDpudWxsLHllYXI6bnVsbCxpZDpudWxsfTtmb3VuZD0hMTsKdmFyIGE7bnVsbCE9KGE9c3RyUGFyYW0ubWF0Y2goL15cLygyMFswLTldezJ9fDE5WzAtOV17Mn0pLShbXi1dKy1bXi1cLl0rKSguKlwuaHRtbCkvKSkmJihzdHJQYXJhbT0iLyIrYVsyXSsiLSIrYVsxXSthWzNdKTthPXN0clBhcmFtLm1hdGNoKC9cLyhbXi9dKiktKC4qKS0oXGR7NH0pKC1pZChcZCopKT8uaHRtbC8pO2ZvdW5kfHxudWxsPT09YXx8KG9ialBhcmFtLm1ha2U9YVsxXSxvYmpQYXJhbS5tb2RlbD1hWzJdLG9ialBhcmFtLnllYXI9YVszXSxvYmpQYXJhbS5pZD1hWzVdLGZvdW5kPSEwKTthPXN0clBhcmFtLm1hdGNoKC9cLyhbXi9dKiktKC4qKS0oXGR7NH0pKC1jXGQqKT8uaHRtbC8pO2ZvdW5kfHxudWxsPT09YXx8KG9ialBhcmFtLm1ha2U9YVsxXSxvYmpQYXJhbS5tb2RlbD1hWzJdLG9ialBhcmFtLnllYXI9YVszXSxmb3VuZD0hMCk7YT1zdHJQYXJhbS5tYXRjaCgvXC8oW14vXSopLShcZHs0fSkuaHRtbC8pO2ZvdW5kfHxudWxsPT09YXx8KG9ialBhcmFtLm1ha2U9CmFbMV0sb2JqUGFyYW0ueWVhcj1hWzJdLGZvdW5kPSEwKTthPXN0clBhcmFtLm1hdGNoKC9cLyhbXi9dKiktKFteLl0qKS5odG1sLyk7Zm91bmR8fG51bGw9PT1hfHwob2JqUGFyYW0ubWFrZT1hWzFdLG9ialBhcmFtLm1vZGVsPWFbMl0sZm91bmQ9ITApO2E9c3RyUGFyYW0ubWF0Y2goL1wvKFteL10qKS5odG1sLyk7Zm91bmR8fG51bGw9PT1hfHwob2JqUGFyYW0ubWFrZT1hWzFdLGZvdW5kPSEwKTt0aGlzLl9zYW5pdGl6ZSYmKG9ialBhcmFtPXRoaXMuZGVzYW5pdGl6ZShvYmpQYXJhbSkpO3JldHVybiBvYmpQYXJhbX0sc2FuaXRpemU6ZnVuY3Rpb24oYSl7aWYoInN0cmluZyI9PT10eXBlb2YgYSlyZXR1cm4gYS5yZXBsYWNlKC8tL2csIl8iKS5yZXBsYWNlKC9bJyJdL2csIiIpO2lmKCJvYmplY3QiPT09dHlwZW9mIGEpe2Zvcih2YXIgYiBpbiBhKWFbYl09dGhpcy5zYW5pdGl6ZShhW2JdKTtyZXR1cm4gYX19LHNhbml0aXplUmVmZXJlcjpmdW5jdGlvbihhKXtyZXR1cm4gYS5yZXBsYWNlKC9bJyJgKCk8PlxbXF17fXwhXS9nLAoiIil9fTtkMmNtZWRpYS5nZXRIdHRwVGV4dD1mdW5jdGlvbigpe3JldHVybiJodHRwczoiPT1kb2N1bWVudC5sb2NhdGlvbi5wcm90b2NvbCYmJCgiI3RvcGRlcGxveW1lbnR0eXBlIikubGVuZ3RoJiYibGl2ZSI9PSQoIiN0b3BkZXBsb3ltZW50dHlwZSIpLnZhbCgpPyJodHRwcyI6Imh0dHAifTtkMmNtZWRpYS5jYXBpdGFsaXNlRmlyc3RMZXR0ZXI9ZnVuY3Rpb24oYSl7cmV0dXJuInVuZGVmaW5lZCI9PXR5cGVvZiBhPyIiOmEuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkrYS5zbGljZSgxKX07ZDJjbWVkaWEuY2FwaXRhbGlzZUZpcnN0TGV0dGVyT2ZFdmVyeVdvcmQ9ZnVuY3Rpb24oYSl7cmV0dXJuInVuZGVmaW5lZCI9PXR5cGVvZiBhPyIiOmEuc3BsaXQoIiAiKS5yZWR1Y2UoZnVuY3Rpb24oYixjKXtjPWQyY21lZGlhLmNhcGl0YWxpc2VGaXJzdExldHRlcihjKTtyZXR1cm4gYj9iKyIgIitjOmN9LCIiKX07CmQyY21lZGlhLnNhZmVTdHJpbmc9ZnVuY3Rpb24oYSl7dmFyIGI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Yi50ZXh0Q29udGVudD1hO3JldHVybiBiLmlubmVyVGV4dH07CmQyY21lZGlhLmh0bWxGaWxlPWZ1bmN0aW9uKGEsYil7dmFyIGM9d2luZG93LmxvY2F0aW9uLnNlYXJjaC5sZW5ndGgmJi0xPHdpbmRvdy5sb2NhdGlvbi5zZWFyY2guaW5kZXhPZigicGF0aD0iKT93aW5kb3cubG9jYXRpb24uc2VhcmNoOndpbmRvdy5sb2NhdGlvbi5wYXRobmFtZTtjPWMuc3Vic3RyaW5nKGMubGFzdEluZGV4T2YoIi8iKSsxKTtjPWQyY21lZGlhLnNhZmVTdHJpbmcoYyk7dHJ5e3ZhciBkPWRlY29kZVVSSUNvbXBvbmVudChjKX1jYXRjaChrKXt2YXIgZT17IiVDMCI6IiZBZ3JhdmU7IiwiJUMxIjoiJkFhY3V0ZTsiLCIlQzIiOiImQWNpcmM7IiwiJUMzIjoiJkF0aWxkZTsiLCIlQzQiOiImQXVtbDsiLCIlQzUiOiImQXJpbmc7IiwiJUM2IjoiJkFFbGlnOyIsIiVDNyI6IiZDY2VkaWw7IiwiJUM4IjoiJkVncmF2ZTsiLCIlQzkiOiImRWFjdXRlOyIsIiVDQSI6IiZFY2lyYzsiLCIlQ0IiOiImRXVtbDsiLCIlQ0MiOiImSWdyYXZlOyIsIiVDRCI6IiZJYWN1dGU7IiwiJUNFIjoiJkljaXJjOyIsCiIlQ0YiOiImSXVtbDsiLCIlRDAiOiImRVRIOyIsIiVEMSI6IiZOdGlsZGU7IiwiJUQyIjoiJk9ncmF2ZTsiLCIlRDMiOiImT2FjdXRlOyIsIiVENCI6IiZPY2lyYzsiLCIlRDUiOiImT3RpbGRlOyIsIiVENiI6IiZPdW1sOyIsIiVEOCI6IiZPc2xhc2g7IiwiJUQ5IjoiJlVncmF2ZTsiLCIlREEiOiImVWFjdXRlOyIsIiVEQiI6IiZVY2lyYzsiLCIlREMiOiImVXVtbDsiLCIlREQiOiImWWFjdXRlOyIsIiVERSI6IiZUSE9STjsiLCIlREYiOiImc3psaWc7IiwiJUUwIjoiJmFncmF2ZTsiLCIlRTEiOiImYWFjdXRlOyIsIiVFMiI6IiZhY2lyYzsiLCIlRTMiOiImYXRpbGRlOyIsIiVFNCI6IiZhdW1sOyIsIiVFNSI6IiZhcmluZzsiLCIlRTYiOiImYWVsaWc7IiwiJUU3IjoiJmNjZWRpbDsiLCIlRTgiOiImZWdyYXZlOyIsIiVFOSI6IiZlYWN1dGU7IiwiJUVBIjoiJmVjaXJjOyIsIiVFQiI6IiZldW1sOyIsIiVFQyI6IiZpZ3JhdmU7IiwiJUVEIjoiJmlhY3V0ZTsiLCIlRUUiOiImaWNpcmM7IiwKIiVFRiI6IiZpdW1sOyIsIiVGMCI6IiZldGg7IiwiJUYxIjoiJm50aWxkZTsiLCIlRjIiOiImb2dyYXZlOyIsIiVGMyI6IiZvYWN1dGU7IiwiJUY0IjoiJm9jaXJjOyIsIiVGNSI6IiZvdGlsZGU7IiwiJUY2IjoiJm91bWw7IiwiJUY3IjoiJmRpdmlkZTsiLCIlRjgiOiImb3NsYXNoOyIsIiVGOSI6IiZ1Z3JhdmU7IiwiJUZBIjoiJnVhY3V0ZTsiLCIlRkIiOiImdWNpcmM7IiwiJUZDIjoiJnV1bWw7IiwiJUZEIjoiJnlhY3V0ZTsiLCIlRkUiOiImdGhvcm47IiwiJUZGIjoiJnl1bWw7In07ZD1jLnJlcGxhY2UoLyVbMC05QS1GXXsyfS9pZyxmdW5jdGlvbihoKXtpZigidW5kZWZpbmVkIj09dHlwZW9mIGVbaF0pcmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudChoKTt2YXIgbj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7bi50ZXh0Q29udGVudD1lW2hdO3JldHVybiBuLmlubmVyVGV4dH0pfWQ9ZC5zdWJzdHJpbmcoMCxkLmluZGV4T2YoIi5odG0iKSk7YSYmKGQ9ZC5yZXBsYWNlKC8gL2csCiJfIikucmVwbGFjZSgvJy9nLCIiKS5yZXBsYWNlKCIuaHRtbCIsIiIpKTtudWxsIT0oYT1kLm1hdGNoKC9eKDE5WzAtOV17Mn18MjBbMC05XXsyfSktKFteLV0rLVteLV0rKSguKikkLykpJiYoZD1hWzJdKyItIithWzFdK2FbM10sIkVOR0xJU0giPT0oIkVOR0xJU0giPT0kKCIjYWN0aXZlc2l0ZWxhbmd1YWdlIikudmFsKCk\/IkVOR0xJU0giOiJGUkVOQ0giKSYmYiYmKGQ9YVsxXSsiLSIrYVsyXSthWzNdKSk7cmV0dXJuIGR9O2QyY21lZGlhLmlzSG9tZXBhZ2U9ZnVuY3Rpb24oKXt2YXIgYT13aW5kb3cubG9jYXRpb24ucGF0aG5hbWU7cmV0dXJuIi8iPT1hfHwiL2VuZy8iPT1hfHwiL2ZyLyI9PWF9O2QyY21lZGlhLnBhZ2VEZXBhcnRtZW50PWZ1bmN0aW9uKCl7dmFyIGE9JCgiI2RlZmF1bHREZXBhcnRtZW50IikudmFsKCk7cmV0dXJuIk9USEVSIj09YSYmZDJjbWVkaWEuaXNIb21lcGFnZSgpPyJIT01FUEFHRSI6YX07CnZhciBqc19kMmNfZ2V0X3ZhbD1qc19kMmNfZ2V0X3ZhbHx8ZnVuY3Rpb24oYSl7dHJ5e3JldHVybihlbD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZChhKSk\/ZWwudmFsdWU6IiJ9Y2F0Y2goYil7cmV0dXJuIGNvbnNvbGUmJmNvbnNvbGUubG9nJiZjb25zb2xlLmxvZygiU3lzdGVtIGZhaWxlZCB3aGlsZSByZXRyaWV2aW5nIHJlcGxhY2VtZW50IHZhbHVlOiAiK2IubWVzc2FnZSxiKSxhfX07U3RyaW5nLnByb3RvdHlwZS5ub0QyQ1JlcGxhY2U9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy52YWx1ZU9mKCl9OwpkMmNCR0NsaWNrPWZ1bmN0aW9uKGEpe3ZhciBiPXRoaXM7JC5leHRlbmQoYixhKTt0aGlzLnNldD1mdW5jdGlvbihjKXsidW5kZWZpbmVkIj09dHlwZW9mIGMmJihjPSExKTt2YXIgZD1iLmJnSW1nVXJsLGU9Yi5iZ0ltZ1BhdGgsaz1iLmJnSW1nRml4ZWQsaD1iLmJnSW1nUmVzcG9uc2l2ZSxuPWIubWFrZSx4PWRvY3VtZW50LmxvY2F0aW9uLnBhdGhuYW1lLnJlcGxhY2UoLy0vZywiIiksdj0kKCIjYWN0aXZlc2l0ZWxhbmd1YWdlIikudmFsKCk\/JCgiI2FjdGl2ZXNpdGVsYW5ndWFnZSIpLnZhbCgpLnRvTG93ZXJDYXNlKCk6ImZyZW5jaCIsZj0iIixnPSExOzAhPWMmJihuPWMudG9Mb3dlckNhc2UoKSk7dmFyIG09Yz0iIjtuP2UuaGFzT3duUHJvcGVydHkobik\/KGM9ZVtuXSxtPWtbbl0raFtuXSxnPSEwKTplLmhhc093blByb3BlcnR5KCJhbGwiKT8oYz1lLmFsbCxtPWsuYWxsK2guYWxsLGc9ITApOmUuaGFzT3duUHJvcGVydHkodikmJihjPWVbdl0sbT1rW3ZdK2hbdl0pOmUuaGFzT3duUHJvcGVydHkodikmJgowPT1nJiYoYz1lW3ZdLG09a1t2XStoW3ZdKTtjJiYoYi5iZ0ltZz1jLnNwbGl0KCIvIikucG9wKCksJCgiYm9keSIpLmF0dHIoInN0eWxlIiwiYmFja2dyb3VuZC1pbWFnZTogdXJsKCciK2MrIicpOyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiB0b3AgY2VudGVyOyBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0OyIrbSkpO2Zvcih2YXIgbCBpbiBkKXtpZigtMSE9eC5pbmRleE9mKGwseCkpe2Y9ZFtsXTticmVha31pZihsPT12KXtmPWRbbF07YnJlYWt9fTA9PWYubGVuZ3RoJiYoZC5oYXNPd25Qcm9wZXJ0eShuKT9mPWRbbl06ZC5oYXNPd25Qcm9wZXJ0eSgiYWxsIikmJihmPWQuYWxsKSk7MDxmLmxlbmd0aCYmKGQ9JCh3aW5kb3cpLndpZHRoKCkvMi0kKCIud3JhcHBlciIpLndpZHRoKCkvMixlPSQod2luZG93KS53aWR0aCgpLzIrJCgiLndyYXBwZXIiKS53aWR0aCgpLzIsJCgiI2JnQ2xpY2sxIikucmVtb3ZlKCksJCgiI2JnQ2xpY2syIikucmVtb3ZlKCksJCgiYm9keSIpLmFwcGVuZCgiPGRpdiBpZD0nYmdDbGljazEnIHN0eWxlPSd6LWluZGV4OjEwMDtjdXJzb3I6cG9pbnRlcjt3aWR0aDoiKwpkKyJweDtoZWlnaHQ6MTAwJTtwb3NpdGlvbjpmaXhlZDtsZWZ0OjBweDt0b3A6MHB4Oyc+PC9kaXY+IiksJCgiYm9keSIpLmFwcGVuZCgiPGRpdiBpZD0nYmdDbGljazInIHN0eWxlPSd6LWluZGV4OjEwMDtjdXJzb3I6cG9pbnRlcjt3aWR0aDoiK2QrInB4O2hlaWdodDoxMDAlO3Bvc2l0aW9uOmZpeGVkO2xlZnQ6IitlKyJweDt0b3A6MHB4Oyc+PC9kaXY+IiksJCgiI2JnQ2xpY2sxIikub24oImNsaWNrIixmdW5jdGlvbigpe2IucmVkaXJlY3QoZil9KSwkKCIjYmdDbGljazIiKS5vbigiY2xpY2siLGZ1bmN0aW9uKCl7Yi5yZWRpcmVjdChmKX0pKX07dGhpcy5yZXNldD1mdW5jdGlvbihjKXtiLnNldCgpfTt0aGlzLnJlZGlyZWN0PWZ1bmN0aW9uKGMpeyJsaXZlIj09Yi5kZXBsb3ltZW50VHlwZSYmKGdhVHJhY2soIl90cmFja0V2ZW50IiwiQ2xpcXVlcyIsIkltYWdlLWRlLWZvbmQiLGIuYmdJbWcsMSksImZ1bmN0aW9uIj09dHlwZW9mIGIuZDJjRXZlbnQmJmIuZDJjRXZlbnQuY2FsbChiLApiLmJnSW1nKSk7d2luZG93Lm9wZW4oYyl9OyQod2luZG93KS5vbigicmVzaXplIixiLnJlc2V0KTtyZXR1cm4gdGhpc307dmFyIGluamVjdEdvb2dsZU1hcHNLZXk9ZnVuY3Rpb24oYSl7bGV0IGI9bnVsbDtyZXR1cm4gZnVuY3Rpb24oYyl7aWYoYilyZXR1cm4gYyhiKTthLmFqYXgoIi9hamF4L2dldEdvb2dsZU1hcHNLZXkiKS5kb25lKGZ1bmN0aW9uKGQpe2I9KGQua2V5P2Qua2V5OiIiKS5yZXBsYWNlKC9bXkEtejAtOV8tXS9nLCIiKTtjKGIpfSl9fShqUXVlcnkpOwpmdW5jdGlvbiByaHNQcm9tb0ltYWdlKGEpe3ZhciBiPXRoaXM7Yi5kYXRhPWE7dmFyIGM9W10sZD0tMTthPXdpbmRvdy5sb2NhdGlvbjthPWRlY29kZVVSSUNvbXBvbmVudChhLnBhdGhuYW1lK2Euc2VhcmNoKS50b0xvd2VyQ2FzZSgpO2ZvcihzZWFyY2ggaW4gYi5kYXRhKWlmKCJkZWZhdWx0Ij09c2VhcmNofHwtMSE9YS5pbmRleE9mKGRlY29kZVVSSUNvbXBvbmVudCgoc2VhcmNoKyIiKS50b0xvd2VyQ2FzZSgpKSkpZm9yKGk9MDtpPGIuZGF0YVtzZWFyY2hdLmxlbmd0aDtpKyspYy5wdXNoKGIuZGF0YVtzZWFyY2hdW2ldKTtiLnJvdGF0ZT1mdW5jdGlvbigpeysrZD5jLmxlbmd0aC0xJiYoZD0wKTt2YXIgZT1jW2RdLGs9JCgiPGltZyAvPiIpLmF0dHIoe3NyYzplLmksc3R5bGU6IndpZHRoOjEwMCU7IG1heC13aWR0aDoyODBweDsgYm9yZGVyLXJhZGl1czogNXB4OyBjdXJzb3I6cG9pbnRlcjsiLGFsdDoiIn0pOyQoImRpdiNyaWdodFByb21vSW1hZ2UiKS5odG1sKGspO251bGwhPQplLnUmJjA8ZS51Lmxlbmd0aCYmJCgiZGl2I3JpZ2h0UHJvbW9JbWFnZSIpLmF0dHIoIm9uY2xpY2siLCJ3aW5kb3cubG9jYXRpb24gPSAnIitlLnUrIiciKTskKCJkaXYjcmlnaHRQcm9tb0ltYWdlIikuc2hvdygpOzEhPWMubGVuZ3RoJiZzZXRUaW1lb3V0KGIucm90YXRlLGUuZGVsYXkpfTswPGMubGVuZ3RoJiZiLnJvdGF0ZSgpfWZ1bmN0aW9uIGNsZWFuVGV4dChhKXthPWEucmVwbGFjZSgvW1x4NjBdL2csIiciKTthPWEucmVwbGFjZSgv4oCZL2csIiciKTthPWEucmVwbGFjZSgvYC9nLCInIik7cmV0dXJuIGE9YS5yZXBsYWNlKC9bXHUyMDE5XeKAmS9nLCInIil9CmZ1bmN0aW9uIGVuY29kZVRleHQoYSl7dmFyIGI9YTt0cnl7Yj0kLmJhc2U2NC5lbmNvZGUoYSl9Y2F0Y2goayl7Y29uc29sZS5sb2coay5tZXNzYWdlLGspO2E9IiI7Zm9yKHZhciBjPTA7YzxiLmxlbmd0aDtjKyspe3ZhciBkPWIuY2hhckF0KGMpLGU9ZC5jaGFyQ29kZUF0KDApO2lmKDQ3PGUmJjU4PmV8fDY0PGUmJjkxPmV8fDk2PGUmJjEyMz5lKWErPWQ7ZWxzZSB0cnl7JC5iYXNlNjQuZW5jb2RlKGQpLGErPWR9Y2F0Y2goaCl7fX1iPSQuYmFzZTY0LmVuY29kZShhKX1yZXR1cm4gYn1mdW5jdGlvbiBjbGVhbkFuZEVuY29kZVRleHQoYSl7dHJ5e3ZhciBiPSIiO2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgYSlyZXR1cm4iIjtiPSJzdHJpbmciIT10eXBlb2YgYT9hLnRvU3RyaW5nKCk6YTtiPWNsZWFuVGV4dChiKTtyZXR1cm4gYj1lbmNvZGVUZXh0KGIpfWNhdGNoKGMpe3JldHVybiBjb25zb2xlLmxvZyhjLm1lc3NhZ2UsYyksYX19CmZ1bmN0aW9uIEV4UGhvbmUoYSl7c3dpdGNoKGEudHlwZSl7Y2FzZSAibW91c2VlbnRlciI6JCgiLmV4dGVuZGVkUGhvbmUiKS5zaG93KCk7YnJlYWs7Y2FzZSAibW91c2VsZWF2ZSI6JCgiLmV4dGVuZGVkUGhvbmUiKS5oaWRlKCl9fWZ1bmN0aW9uIGdldFJlc2l6ZWRJbWFnZXMoKXtkZWJ1Z0VuYWJsZWQoKTtyZXR1cm4hMX1mdW5jdGlvbiBjaGFuZ2VIb21lQWN0aW9uQmFja0ltYWdlKGEsYil7JChhKS5jc3Moe2JhY2tncm91bmQ6InVybCgiK2IrIikiLGJhY2tncm91bmRSZXBlYXQ6Im5vLXJlcGVhdCIsYmFja2dyb3VuZFNpemU6IjI0MHB4IDEyMXB4In0pfXZhciBfX2N1cnJlbnRUaHJlYXNob2xkOwpmdW5jdGlvbiB0aHJlYWRob2xkU2Nyb2xsUGVyY2VudCgpe19fY3VycmVudFRocmVhc2hvbGR8fChfX2N1cnJlbnRUaHJlYXNob2xkPSgkKHdpbmRvdykuaGVpZ2h0KCkrJChkb2N1bWVudCkuc2Nyb2xsVG9wKCkpLyQoZG9jdW1lbnQpLmhlaWdodCgpLHNldFRpbWVvdXQoIl9fY3VycmVudFRocmVhc2hvbGQgPSBudWxsIiwzMzMpKTtyZXR1cm4gX19jdXJyZW50VGhyZWFzaG9sZH0KZnVuY3Rpb24gdGhyZXNob2xkRXhlYyhhLGIsYyl7dmFyIGQ9bnVsbDtjPWM\/YzpbXTtpZigiZnVuY3Rpb24iIT10eXBlb2YgYSl7dmFyIGU9TWF0aC5yb3VuZCgxRTQqYSkvMUU0OzE8ZSYmKGUvPTEwMCk7YT1mdW5jdGlvbigpe3JldHVybiBlfX12YXIgaz1mdW5jdGlvbigpe2lmKHRocmVhZGhvbGRTY3JvbGxQZXJjZW50KCk+YSgpKXt0cnl7Yi5hcHBseShudWxsLGMpfWNhdGNoKGgpe2NvbnNvbGUubG9nKGgpfWQ9Y2xlYXJJbnRlcnZhbChkKX19OyQoZnVuY3Rpb24oKXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ZD1zZXRJbnRlcnZhbChrLDMzMyl9LDJFMyl9KX0KZnVuY3Rpb24gc2Nyb2xsdXBFeGVjKGEpe3ZhciBiPW51bGwsYz0wLGQ9ZnVuY3Rpb24oKXskKHdpbmRvdykub24oInNjcm9sbCIsZnVuY3Rpb24oZSl7ZT0kKHRoaXMpLnNjcm9sbFRvcCgpO2U8YyYmKGEuY2FsbChudWxsKSxiPWNsZWFySW50ZXJ2YWwoYikpO2M9ZX0pfTskKGZ1bmN0aW9uKCl7Yj1zZXRJbnRlcnZhbChkLDMzMyl9KX1mdW5jdGlvbiBpblZpZXdFeGVjKGEsYil7dGhyZXNob2xkRXhlYyhmdW5jdGlvbigpe3ZhciBjPSQoYSk7dHJ5e3JldHVybiFjLmxlbmd0aHx8Yy5pcygiOmhpZGRlbiIpfHwwPT1jLm9mZnNldCgpLnRvcD8uOTU6Yy5vZmZzZXQoKS50b3AvJChkb2N1bWVudCkuaGVpZ2h0KCl9Y2F0Y2goZCl7cmV0dXJuLjk1fX0sYixbYV0pfXZhciBsdF9JRTk9ImZ1bmN0aW9uIiE9dHlwZW9mIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXI\/ITA6ITEsbHRfSUUxMT0wPT0hZG9jdW1lbnQuYWxsOwpmdW5jdGlvbiBpc0lFKCl7dmFyIGE9ZG9jdW1lbnQuZG9jdW1lbnRNb2RlO3RyeXtkb2N1bWVudC5kb2N1bWVudE1vZGU9IiJ9Y2F0Y2goYyl7fXZhciBiPSJudW1iZXIiPT10eXBlb2YgZG9jdW1lbnQuZG9jdW1lbnRNb2RlfHwobmV3IEZ1bmN0aW9uKCJyZXR1cm4vKkBjY19vbiFAKi8hMSIpKSgpO3RyeXtkb2N1bWVudC5kb2N1bWVudE1vZGU9YX1jYXRjaChjKXt9cmV0dXJuIGJ9dmFyIHQ9MDtfX3N0YXJ0PWZ1bmN0aW9uKCl7dD0obmV3IERhdGUpLmdldFRpbWUoKX07X19zdG9wPWZ1bmN0aW9uKCl7dmFyIGE9KG5ldyBEYXRlKS5nZXRUaW1lKCk7Y29uc29sZS5sb2coInRvb2siLChhLXQpLzFFMyl9O3ZhciBhbGVydEZhbGxiYWNrPSEwO2lmKCJ1bmRlZmluZWQiPT09dHlwZW9mIGNvbnNvbGV8fCJ1bmRlZmluZWQiPT09dHlwZW9mIGNvbnNvbGUubG9nKWNvbnNvbGU9e30sY29uc29sZS5sb2c9YWxlcnRGYWxsYmFjaz9mdW5jdGlvbihhKXt9OmZ1bmN0aW9uKCl7fTsKQXJyYXkucHJvdG90eXBlLm1hcHx8KEFycmF5LnByb3RvdHlwZS5tYXA9ZnVuY3Rpb24oYSxiKXt2YXIgYyxkO2lmKG51bGw9PXRoaXMpdGhyb3cgbmV3IFR5cGVFcnJvcigiIHRoaXMgaXMgbnVsbCBvciBub3QgZGVmaW5lZCIpO3ZhciBlPU9iamVjdCh0aGlzKSxrPWUubGVuZ3RoPj4+MDtpZigiZnVuY3Rpb24iIT09dHlwZW9mIGEpdGhyb3cgbmV3IFR5cGVFcnJvcihhKyIgaXMgbm90IGEgZnVuY3Rpb24iKTsxPGFyZ3VtZW50cy5sZW5ndGgmJihjPWIpO3ZhciBoPUFycmF5KGspO2ZvcihkPTA7ZDxrOyl7aWYoZCBpbiBlKXt2YXIgbj1lW2RdO249YS5jYWxsKGMsbixkLGUpO2hbZF09bn1kKyt9cmV0dXJuIGh9KTtBcnJheS5wcm90b3R5cGUuaW5kZXhPZnx8KEFycmF5LnByb3RvdHlwZS5pbmRleE9mPWZ1bmN0aW9uKGEsYil7Yj1ifHwwO2Zvcih2YXIgYz10aGlzLmxlbmd0aDtiPGM7YisrKWlmKHRoaXNbYl09PT1hKXJldHVybiBiO3JldHVybi0xfSk7CkFycmF5LnByb3RvdHlwZS5yZWR1Y2V8fE9iamVjdC5kZWZpbmVQcm9wZXJ0eShBcnJheS5wcm90b3R5cGUsInJlZHVjZSIse3ZhbHVlOmZ1bmN0aW9uKGEpe2lmKG51bGw9PT10aGlzKXRocm93IG5ldyBUeXBlRXJyb3IoIkFycmF5LnByb3RvdHlwZS5yZWR1Y2UgY2FsbGVkIG9uIG51bGwgb3IgdW5kZWZpbmVkIik7aWYoImZ1bmN0aW9uIiE9PXR5cGVvZiBhKXRocm93IG5ldyBUeXBlRXJyb3IoYSsiIGlzIG5vdCBhIGZ1bmN0aW9uIik7dmFyIGI9T2JqZWN0KHRoaXMpLGM9Yi5sZW5ndGg+Pj4wLGQ9MDtpZigyPD1hcmd1bWVudHMubGVuZ3RoKXZhciBlPWFyZ3VtZW50c1sxXTtlbHNle2Zvcig7ZDxjJiYhKGQgaW4gYik7KWQrKztpZihkPj1jKXRocm93IG5ldyBUeXBlRXJyb3IoIlJlZHVjZSBvZiBlbXB0eSBhcnJheSB3aXRoIG5vIGluaXRpYWwgdmFsdWUiKTtlPWJbZCsrXX1mb3IoO2Q8YzspZCBpbiBiJiYoZT1hKGUsYltkXSxkLGIpKSxkKys7cmV0dXJuIGV9fSk7CkFycmF5LnByb3RvdHlwZS5mb3JFYWNofHwoQXJyYXkucHJvdG90eXBlLmZvckVhY2g9ZnVuY3Rpb24oYSl7dmFyIGIsYztpZihudWxsPT10aGlzKXRocm93IG5ldyBUeXBlRXJyb3IoInRoaXMgaXMgbnVsbCBvciBub3QgZGVmaW5lZCIpO3ZhciBkPU9iamVjdCh0aGlzKSxlPWQubGVuZ3RoPj4+MDtpZigiZnVuY3Rpb24iIT09dHlwZW9mIGEpdGhyb3cgbmV3IFR5cGVFcnJvcihhKyIgaXMgbm90IGEgZnVuY3Rpb24iKTsxPGFyZ3VtZW50cy5sZW5ndGgmJihiPWFyZ3VtZW50c1sxXSk7Zm9yKGM9MDtjPGU7KXtpZihjIGluIGQpe3ZhciBrPWRbY107YS5jYWxsKGIsayxjLGQpfWMrK319KTtmdW5jdGlvbiBnZXREYXRhQXR0cmlidXRlcyhhKXtyZXR1cm4gYS5kYXRhc2V0fHxbXS5zbGljZS5jYWxsKGEuYXR0cmlidXRlcykucmVkdWNlKGZ1bmN0aW9uKGIsYyl7cmV0dXJuL15kYXRhLS8udGVzdChjLm5hbWUpJiYoYltjLm5hbWUuc3Vic3RyKDUpXT1jLnZhbHVlKSxifSx7fSl9CmZ1bmN0aW9uIGdldFBhcmFtZXRlckJ5TmFtZShhKXthPWEucmVwbGFjZSgvW1xbXS8sIlxcWyIpLnJlcGxhY2UoL1tcXV0vLCJcXF0iKTthPShuZXcgUmVnRXhwKCJbXFw\/Jl0iK2ErIj0oW14mI10qKSIpKS5leGVjKGxvY2F0aW9uLnNlYXJjaCk7cmV0dXJuIG51bGw9PWE\/IiI6ZGVjb2RlVVJJQ29tcG9uZW50KGFbMV0ucmVwbGFjZSgvXCsvZywiICIpKX0KZnVuY3Rpb24gc2hvd1RyYWRlSW5Qb3B1cChhKXtpZigwPT0kKCIjdHJhZGVpbkxpbmtQb3B1cENvbnRhaW5lciIpLmxlbmd0aCl7dmFyIGI9Ijc1MHB4IixjPSI1NzBweCI7MT09L01vYmkvLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCkmJihiPSIzMDBweCIsYz0iNjAwcHgiKTskKCJib2R5IikuYXBwZW5kKCc8ZGl2IGlkPSJ0cmFkZWluTGlua1BvcHVwQ29udGFpbmVyIiBzdHlsZT0id2lkdGg6ICcrYisiOyBoZWlnaHQ6ICIrYysnIj48ZGl2IGNsYXNzPSJjbG9zZS1yZXZlYWwtbW9kYWwiPiYjMjE1OzwvZGl2PjxpZnJhbWUgc3JjPSInK2ErJyIgYWxsb3d0cmFuc3BhcmVuY3k9InRydWUiICBjbGFzcz0iLXQwIC1sMCAtdzEwMHAgLWgxMDBwIiBpZD0idHJhZGVpbkxpbmtQb3B1cElmcmFtZSI+PC9pZnJhbWU+PC9kaXY+Jyl9JCgiI3RyYWRlaW5MaW5rUG9wdXBDb250YWluZXIiKS5wb3B1cGl6ZSgpLnNldFRyaWdnZXIoImNsaWNrIikub3BlbigpfQpmdW5jdGlvbiBjdXJyZW50UHJvbW9SZWRpcmVjdCgpe2V2ZW50LnByZXZlbnREZWZhdWx0KCk7c3dpdGNoKCEwKXtjYXNlICJmdW5jdGlvbiI9PXR5cGVvZiBzaG93UG9wdXBXaWRnZXQ6c2hvd1BvcHVwV2lkZ2V0KCk7YnJlYWs7Y2FzZSAidW5kZWZpbmVkIiE9dHlwZW9mICQoIiNWaWV3UHJvbW9BY3Rpb25Cb3hMaW5rIikuYXR0cigiaHJlZiIpOiQoIiNWaWV3UHJvbW9BY3Rpb25Cb3hMaW5rIilbMF0uY2xpY2soKTticmVhaztjYXNlICJ1bmRlZmluZWQiIT10eXBlb2YgJCgiI3Byb21vdGlvblNpZGVWQnV0dG9uIGEiKS5hdHRyKCJocmVmIik6JCgiI3Byb21vdGlvblNpZGVWQnV0dG9uIGEiKVswXS5jbGljaygpO2JyZWFrO2Nhc2UgInVuZGVmaW5lZCIhPXR5cGVvZiAkKCIjVmlld0N1c3RvbVByb21vQWN0aW9uQm94TGluayIpLmF0dHIoImhyZWYiKTokKCIjVmlld0N1c3RvbVByb21vQWN0aW9uQm94TGluayIpWzBdLmNsaWNrKCl9fQpmdW5jdGlvbiBzaG93TmV3UmViYXRlQ29kZVBvcHVwKCl7MCE9JCgiI2Rpc2FibGVQb3B1cHMiKS5sZW5ndGgmJjAhPSQoIiNkaXNhYmxlUG9wdXBzIikudmFsKCl8fCQoIiNJbWFnZVBvcHVwQ29udGFpbmVyX25ld3JlYmF0ZSIpLnBvcHVwaXplKCkuc2V0VHJpZ2dlcigiY2xpY2siKS5vcGVuKCl9ZnVuY3Rpb24gc2hvd05ld0Jlc3RQcmljZVZkcFBvcHVwKCl7MCE9JCgiI2Rpc2FibGVQb3B1cHMiKS5sZW5ndGgmJjAhPSQoIiNkaXNhYmxlUG9wdXBzIikudmFsKCl8fCQoIiNiZXN0UHJpY2VWZHBOZXdQb3B1cENvbnRhaW5lciIpLnBvcHVwaXplKCkuc2V0VHJpZ2dlcigiY2xpY2siKS5vcGVuKCl9CmZ1bmN0aW9uIHByaW50X3Byb21vX3ByZXYoYSl7dmFyIGI9ITEsYz0kKGEpLnBhcmVudHMoIi5wcm9tb3MiKTthPWMuZmluZCgiLnByb21vLXRpdGxlIikuaHRtbCgpO3ZhciBkPWMuZmluZCgiLnByb21vLWRlc2MiKS5odG1sKCk7Yz1jLmZpbmQoIi5wcm9tby1pbWFnZSBpbWciKS5hdHRyKCJkYXRhLXByaW50LXNyYyIpOyQoIiNwcm9tb1RvUHJpbnQiKS5yZW1vdmUoKTskKCIjcHJvbW9Ub1ByaW50V3JhcCIpLnJlbW92ZSgpOyQoImJvZHkiKS5hcHBlbmQoJzxkaXYgY2xhc3M9InRvcHJpbnQiIGlkPSJwcm9tb1RvUHJpbnQiPjxpbWcgYm9yZGVyPSIwIiBzdHlsZT0id2lkdGg6MTAwJTsiIHNyYz0iJytjKyciIGFsdD0iIiBpZD0icHJvbW9JbWciPjxicj48YnI+PGI+JythKyI8L2I+PGJyPiIrZCsiPC9kaXY+Iik7JCgiI3Byb21vSW1nIikub24oImxvYWQiLGZ1bmN0aW9uKCl7Ynx8JCgiI3Byb21vVG9QcmludCIpLnByaW50RWxlbWVudCgpO2I9ITB9KTtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Ynx8CiQoIiNwcm9tb1RvUHJpbnQiKS5wcmludEVsZW1lbnQoKTtiPSEwfSwxRTMpO3JldHVybiExfWZ1bmN0aW9uIGdldE11bHRpcGxlQWRkcmVzc1Bob25lKGEpeyQoIi5tdWx0aUFkZHJlc3NQaG9uZSIpLnNsaWRlVXAoKTthPSQoIi5tdWx0aUFkZHJlc3NQaG9uZSIsJCgkKGEpLnBhcmVudCgpKSk7JChhKS5pcygiOmhpZGRlbiIpPyQoYSkuc2xpZGVEb3duKCk6JChhKS5zbGlkZVVwKCl9CmZ1bmN0aW9uIGFkZEdlbmVyYWxTdHlsZSgpe3ZhciBhPSQoIiNBRE1JTl9HRU5FUkFMX0JHX0NPTE9SIikudmFsKCksYj0kKCIjZGVmYXVsdF9ibGFja190ZXh0IikudmFsKCk7aWYoIiMwMDAwMDAiIT1ifHwiIzAwMCIhPWIpJCgiLlVzZWRWZHAyTW9iaWxlICNicmVhZGNydW1icyIpLmFkZENsYXNzKCJ0ZXh0Q29sb3IiKSwkKCJpLmZhLWZhY2Vib29rLXNxdWFyZSIpLmFkZENsYXNzKCJ0ZXh0Q29sb3IiKSwkKCIudXNlZC1kZXRhaWxzIC5kZWZhdWx0IGRpdjpmaXJzdCIpLmFkZENsYXNzKCJ0ZXh0Q29sb3IiKTsiI2ZmZmZmZiIhPWImJiIjZmZmIiE9Ynx8JCgiLlVzZWRTcnAyTW9iaWxlIC5kZWZhdWx0IC5tYWtlTW9kZWxZZWFyIikuYWRkQ2xhc3MoInRleHRDb2xvclVzZWRTUlBNb2JpbGUiKTsiI2ZmZmZmZiIhPWEmJigkKCIub2xkLWRldGFpbHMtdHIiKS5hZGRDbGFzcygiYmdOb25lIiksJCgiI3NwZWNUaXRsZSIpLmFkZENsYXNzKCJiZ05vbmUiKSwkKCIuVXNlZFZkcDJNb2JpbGUiKS5hZGRDbGFzcygib3RoZXJCRyIpKX0KZnVuY3Rpb24gYXBwZW5kVHJhZGVCb29zdEJhbm5lcigpe31kb2NSZWFkeUFyci5wdXNoKCgpPT57YXBwZW5kVHJhZGVCb29zdEJhbm5lcigpO2FkZEdlbmVyYWxTdHlsZSgpfSk7CmpRdWVyeShmdW5jdGlvbihhKXthKCIjbmF2IikuYWRkQ2xhc3MoIm5hdiIpOyhmdW5jdGlvbigpe0xDX0FQST13aW5kb3cuTENfQVBJfHx7fTtMQ19BUEkub25fdGlja2V0X2NyZWF0ZWQ9ZnVuY3Rpb24obSl7dHJ5eyhmdW5jdGlvbihsKXtudWxsIT1sJiYobD0nPGltZyBzcmM9Imh0dHBzOi8vc3RhdHMuZDJjbWVkaWEuY2Evc2VydmljZS9jb250YWN0LmdpZj90Yz0nKyhtLnRpY2tldF9pZCsiJnU9IitsKSsnIiBzdHlsZT0id2lkdGg6MXB4O2hlaWdodDoxcHg7cmlnaHQ6MTBweDt0b3A6MTBweDtwb3NpdGlvbjphYnNvbHV0ZTsiIC8+JyxhKCJib2R5IikuYXBwZW5kKGwpKX0pKGZ1bmN0aW9uKCl7dmFyIGw9InVuZGVmaW5lZCIhPT10eXBlb2Ygd2luZG93LmFjdGl2ZVByb2ZpbGVJRD93aW5kb3cuYWN0aXZlUHJvZmlsZUlEOm51bGw7cmV0dXJuIG51bGw9PWw\/Q29va2llcy5nZXQoInV1aWQiKTpsfSgpKX1jYXRjaChsKXt9fX0pKCk7aWYoImZ1bmN0aW9uIj09dHlwZW9mIG9uQ29uZmlybVN1Ym1pdClhKCIuY29uZmlybV9odG1sIikub24oInN1Ym1pdCIsCm9uQ29uZmlybVN1Ym1pdCk7dHJ5e2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgYSgiI3NsaWRlci5uaXZvU2xpZGVyIikuYXR0cigiaWQiKSl7dmFyIGI9ITEsYz0hMSxkPSExLGU9ITEsaz0hMSxoPSExLG49MTAwLHg9MTxhKCIjc2xpZGVyLm5pdm9TbGlkZXIgYSIpLmxlbmd0aD8hMDohMTthKCIjYmFubmVyX3NlYXJjaF9iYXJfY29udGFpbmVyIikubGVuZ3RoJiYoaD1rPWU9ZD1jPWI9ITAsbj1hKCIjQkFOTkVSX1NFQVJDSF9CQVJfVklERU9fT1BBQ0lUWSIpLmxlbmd0aD9hKCIjQkFOTkVSX1NFQVJDSF9CQVJfVklERU9fT1BBQ0lUWSIpLnZhbCgpOjEwMCk7ZG9jUmVhZHlBcnIucHVzaCgoKT0+e3NldFRpbWVvdXQoZnVuY3Rpb24oKXthKCIjc2xpZGVyLm5pdm9TbGlkZXIiKS5uaXZvU2xpZGVyKHtlZmZlY3Q6ImZhZGUiLGJlZm9yZUNoYW5nZTpmdW5jdGlvbigpe2EoIiNwYXJhbGxheFdyYXBwZXIiKS5lbmxsYXgoKX0sYWZ0ZXJDaGFuZ2U6ZnVuY3Rpb24oKXthKCIjc2xpZGVyLm5pdm9TbGlkZXIiKS50cmlnZ2VyKCJuaXZvU2xpZGVyQ2hhbmdlZCIpfSwKYWZ0ZXJMb2FkOmZ1bmN0aW9uKCl7YSgiI3NsaWRlci5uaXZvU2xpZGVyIikudHJpZ2dlcigibml2b1NsaWRlckxvYWRlZCIpO2EoIiNwYXJhbGxheFdyYXBwZXIiKS5lbmxsYXgoKTthKCIjYmFubmVyX3NlYXJjaF9iYXJfY29udGFpbmVyIikubGVuZ3RoJiYoYSgiI3NsaWRlci5uaXZvU2xpZGVyIikuZGF0YSgibml2bzp2YXJzIikuc3RvcCxhKCIubml2by1jb250cm9sTmF2IikuaGlkZSgpLGEoIi5uaXZvLWRpcmVjdGlvbk5hdiIpLmhpZGUoKSx0aGlzLnN0YXJ0WW91dHViZSgpKX0sbWFudWFsQWR2YW5jZTpiLHZpZGVvT25Mb29wOmMsaGlkZUNvbnRyb2w6ZCxoaWRlSW5mbzplLGZ1bGxXaWR0aDprLG11dGVWaWRlbzpoLHZpZGVvQnJpZ2h0bmVzczpuLGNvbnRyb2xOYXY6eCxkaXJlY3Rpb25OYXY6eCxzaG93RGlzY2xhaW1lcjohMH0pfSw1RTMpfSl9aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBhKCIuZXh0ZW5kZWRQaG9uZVRyaWdnZXIiKS5hdHRyKCJpZCIpKWEoIi5leHRlbmRlZFBob25lVHJpZ2dlciIpLm9uKCJtb3VzZWVudGVyIiwKRXhQaG9uZSkub24oIm1vdXNlbGVhdmUiLEV4UGhvbmUpO3ZhciB2PWZ1bmN0aW9uKCl7fTthKCIudHJhZGVpbkxpbmsiKS5vbigiY2xpY2siLGZ1bmN0aW9uKCl7aWYoYSh0aGlzKS5hdHRyKCJ0YXJnZXRVUkkiKSYmNjxhKHRoaXMpLmF0dHIoInRhcmdldFVSSSIpLmxlbmd0aClyZXR1cm4gc2hvd1RyYWRlSW5Qb3B1cChhKHRoaXMpLmF0dHIoInRhcmdldFVSSSIpKSwhMX0pO2EoIi51cF9tZW51Iikub25lKCJtb3VzZW92ZXIiLHYpO3NldFRpbWVvdXQodiwxRTQpOyhmdW5jdGlvbigpe2lmKDAhPWEoIiNNYWluTWVudV9ORVciKS5sZW5ndGgpe3ZhciBxPWEoIi5pbWdfbWVudS51cF9tZW51IHVsLm5hdiA+IGxpI01haW5NZW51X05FVyA+IHVsLnN1YiA+IGxpLmZpcnN0SXRlbSIpLHI9ITE7MCE9cS5sZW5ndGgmJihhKCIjTWFpbk1lbnVfTkVXIikuZmluZCgiLnByaWNlIikuY3NzKCJjdXJzb3IiLCJwb2ludGVyIikub24oImNsaWNrIixmdW5jdGlvbigpe3ZhciBwPWEodGhpcykuc2libGluZ3MoKS5maXJzdCgpOwp3aW5kb3cubG9jYXRpb249cC5hdHRyKCJocmVmIil9KSxhKCIjTWFpbk1lbnVfTkVXIikub24oIm1vdXNlZW50ZXIiLGZ1bmN0aW9uKCl7Y2xlYXJUaW1lb3V0KHIpO3EuYWRkQ2xhc3MoImhvdmVyIil9KSxxLnNpYmxpbmdzKCkub24oIm1vdXNlZW50ZXIiLGZ1bmN0aW9uKCl7Y2xlYXJUaW1lb3V0KHIpO3EucmVtb3ZlQ2xhc3MoImhvdmVyIil9KS5vbigibW91c2VsZWF2ZSIsZnVuY3Rpb24oKXtyPXNldFRpbWVvdXQoZnVuY3Rpb24oKXtxLmFkZENsYXNzKCJob3ZlciIpfSwzMDApfSkpfX0pKCk7YSgiaW1nW2Vycm9yaW1nXSIpLm9uKCJlcnJvciIsZnVuY3Rpb24oKXt2YXIgcT1hKHRoaXMpO3EuYXR0cigic3JjIixxLmF0dHIoImVycm9yaW1nIikpfSk7Y29uc3QgbT1hKHdpbmRvdyksbD1hKCIudXBfbWVudSIpO2lmKGwubGVuZ3RoJiYhbC5oYXNDbGFzcygibm9sb2NrIikpe2xldCBxPWwub2Zmc2V0KCkudG9wLHI9ITE7YShkb2N1bWVudCkub24oInNjcm9sbCIsKCk9PntyfHwKKHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9Pnt2YXIgcD1tLnNjcm9sbFRvcCgpLHc9bC5oYXNDbGFzcygiZml4ZWQiKTt3JiZwPHE\/bC5yZW1vdmVDbGFzcygiZml4ZWQiKTohdyYmcD5xJiZsLmFkZENsYXNzKCJmaXhlZCIpOyhwPWwuaGFzQ2xhc3MoImZpeGVkIikpJiZhKCIjYWxlcnRNc2dDb250YWluZXIiKS5pcygiOnZpc2libGUiKT9sLmNzcyh7dG9wOmEoIiNhbGVydE1zZ0NvbnRhaW5lciIpLm91dGVySGVpZ2h0KCkrInB4In0pOmwuYXR0cigic3R5bGUiLCIiKTt3PWEoIi5wdWxsb3V0cy5zaWRlX3RvcDp2aXNpYmxlIik7cCYmMDx3Lmxlbmd0aD8ody5maWx0ZXIoIi5wdWxsb3V0LW9wZW5lZCIpLmNzcyh7dG9wOmwuaGVpZ2h0KCkrInB4In0pLHcuZmlsdGVyKCIucHVsbG91dC1jbG9zZWQiKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIHo9YSh0aGlzKSxEPWdldF9wb3coei5hdHRyKCJpZCIpKTshei5kYXRhKCJwb3NZIikmJnouZGF0YSgicG9zWSIsLUQucG9zaXRpb24pOwpEPXouZGF0YSgicG9zWSIpK2wuaGVpZ2h0KCk7ei5jc3Moe3RvcDpEKyJweCJ9KX0pKToody5maWx0ZXIoIi5wdWxsb3V0LW9wZW5lZCIpLmNzcyh7dG9wOjB9KSx3LmZpbHRlcigiLnB1bGxvdXQtY2xvc2VkIikuZGF0YSgicG9zWSIpJiZ3LmZpbHRlcigiLnB1bGxvdXQtY2xvc2VkIikuZWFjaChmdW5jdGlvbigpe2EodGhpcykuY3NzKHt0b3A6YSh0aGlzKS5kYXRhKCJwb3NZIikrInB4In0pfSkpO3I9ITF9KSxyPSEwKX0pfXY9ZnVuY3Rpb24oKXtpZigwPT1hKCIjdHJhZGVpbkJhckZsb2F0IikubGVuZ3RoKXthKCJib2R5IikuYXBwZW5kKCc8ZGl2IGlkPSJ0cmFkZWluQmFyRmxvYXQiIHN0eWxlPSJ0ZXh0LWFsaWduOmNlbnRlcjtwb3NpdGlvbjogZml4ZWQ7d2lkdGg6IDEwMCU7ei1pbmRleDogMTAwO2Rpc3BsYXk6bm9uZTsiPjwvZGl2PicpO2EoIiN0cmFkZUluQmFyIikuY2xvbmUoITAsITApLmFwcGVuZFRvKCIjdHJhZGVpbkJhckZsb2F0IikudHJpZ2dlcigidHJhZGVJbkJhci5jbG9uZWQiKTsKaWYoYSgiI3RyYWRlSW5CYXJTdGlja3lCb3R0b20iKS5sZW5ndGgmJiIxIj09YSgiI3RyYWRlSW5CYXJTdGlja3lCb3R0b20iKS52YWwoKSl7YSgiI3RyYWRlaW5CYXJGbG9hdCIpLmNzcygiYm90dG9tIiwiLTJweCIpO3ZhciBxPWEoIi5jZXJ0aWZpZWQtZm9vdGVyIikuaGVpZ2h0KCkscj1hKCIjdHJhZGVpbkJhckZsb2F0IikuaGVpZ2h0KCk7YSgiLmNlcnRpZmllZC1mb290ZXIiKS5oZWlnaHQocStyKX1lbHNle3E9YSgiI3RyYWRlaW5CYXJGbG9hdCIpO3I9cS5jc3M7dmFyIHA9IjEiPT1hKCIjbWVudUxvY2siKS52YWwoKT80ODowOzA8YSgiI2FsZXJ0TXNnQ29udGFpbmVyIikubGVuZ3RoJiZhKCIjYWxlcnRNc2dDb250YWluZXIiKS5pcygiOnZpc2libGUiKSYmKHArPWEoIiNhbGVydE1zZ0NvbnRhaW5lciIpLm91dGVySGVpZ2h0KCkpO3IuY2FsbChxLCJ0b3AiLHApfWEoIiN0cmFkZWluQmFyRmxvYXQgLi1wYjEwIikuY3NzKHtkaXNwbGF5OiJpbmxpbmUtdGFibGUiLHdpZHRoOmEoIiNtYWluRGl2Iikud2lkdGgoKX0pfXE9CiJuZXdjYXJkZXRhaWwuaHRtbCI9PWEoIiNQQUdFSUQiKS52YWwoKXx8ImNhcmRldGFpbC5odG1sIj09YSgiI1BBR0VJRCIpLnZhbCgpO3I9Im5ld2NhcmRldGFpbC5odG1sIj09YSgiI1BBR0VJRCIpLnZhbCgpPyEwOiExO3A9MDxhKCIubWFpbkRpdkFkanVzdEhlYWRlciIpLmxlbmd0aD8hMDohMTthKCIjdHJhZGVJbkJhciIpLmlzSW5WaWV3cG9ydCgpfHxxP3E\/KHI\/YSgiLm5ld1ZkcEFjdGlvbnMiKS5pc0Fib3ZlVmlld3BvcnQoMjAwKTphKCIudXNlZFZkcEFjdGlvbnMiKS5pc0Fib3ZlVmlld3BvcnQoMjAwKSk\/YSgiI3RyYWRlaW5CYXJGbG9hdCIpLmhpZGUoKTphKCIjdHJhZGVpbkJhckZsb2F0Iikuc2hvdygpOmEoIiN0cmFkZWluQmFyRmxvYXQiKS5oaWRlKCk6KHAmJiFhKCIjdHJhZGVJbkJhciIpLmlzQWJvdmVWaWV3cG9ydCgyMDApfHwhcCkmJmEoIiN0cmFkZWluQmFyRmxvYXQiKS5zaG93KCk7MDxhKCIjYWxlcnRNc2dDb250YWluZXIiKS5sZW5ndGgmJmEoIiNhbGVydE1zZ0NvbnRhaW5lciIpLmlzKCI6aGlkZGVuIikmJgo0OCE9YSgiI3RyYWRlaW5CYXJGbG9hdCIpLmNzcygidG9wIikmJmEoIiN0cmFkZUluQmFyU3RpY2t5Qm90dG9tIikubGVuZ3RoJiYiMSIhPWEoIiN0cmFkZUluQmFyU3RpY2t5Qm90dG9tIikudmFsKCkmJmEoIiN0cmFkZWluQmFyRmxvYXQiKS5jc3MoInRvcCIsNDgpfTtmdW5jdGlvbiB1KHEscil7dmFyIHA9MDtyZXR1cm4gZnVuY3Rpb24oKXtjbGVhclRpbWVvdXQocCk7cD1zZXRUaW1lb3V0KHEscil9fWlmKGEoIiN0cmFkZUluQmFyIikubGVuZ3RoKWEoZG9jdW1lbnQpLm9uKCJzY3JvbGwiLHUodiwxMDApKTt2YXIgZj1hKCJ1bC5uYXYgPiBsaSA+IHVsID4gbGkgPiB1bCIpO2YuZWFjaChmdW5jdGlvbigpe2EodGhpcykucGFyZW50KCkub24oIm1vdXNlZW50ZXIiLGZ1bmN0aW9uKHEpe2EoInVsIix0aGlzKS5zY3JvbGxUb3AoMCl9KX0pO2Yub24oIkRPTU1vdXNlU2Nyb2xsIG1vdXNld2hlZWwiLGZ1bmN0aW9uKHEpe3ZhciByPWEodGhpcykscD10aGlzLnNjcm9sbFRvcCx3PXRoaXMuc2Nyb2xsSGVpZ2h0LAp6PXc+dGhpcy5jbGllbnRIZWlnaHQsRD1yLmhlaWdodCgpLEM9cS5vcmlnaW5hbEV2ZW50O0M9IkRPTU1vdXNlU2Nyb2xsIj09cS50eXBlPy00MCpDLmRldGFpbDpDLndoZWVsRGVsdGE7dmFyIEU9MDxDO2lmKCF6KXJldHVybiEwO3o9ZnVuY3Rpb24oRyl7ci5zY3JvbGxUb3AoRyk7cS5zdG9wUHJvcGFnYXRpb24oKTtxLnByZXZlbnREZWZhdWx0KCk7cS5yZXR1cm5WYWx1ZT0hMTtyZXR1cm4hMH07cmV0dXJuISghRSYmLUM+dy1ELXAmJnoodyl8fEUmJkM+cCYmeigwKSl9KX1jYXRjaChtKXtjb25zb2xlLmxvZygiRXJyb3IiLG0pfWlmKGEoIi51cF9tZW51LmltZ19tZW51IikubGVuZ3RoKXtmPWEoIi5pbWdfc3R5bGVfMSAjTWFpbk1lbnVfTkVXIikuY2hpbGRyZW4oIi5zdWIiKTt2YXIgZz1mLmZpbmQoIi5maXJzdEl0ZW0iKS5maW5kKCIuc3ViIik7Zi5jaGlsZHJlbigibGkiKS5vbih7bW91c2VlbnRlcjpmdW5jdGlvbigpeyFhKHRoaXMpLmlzKCIuaGFzU3ViIikmJmcuaGlkZSgpfSwKbW91c2VsZWF2ZTpmdW5jdGlvbigpeyFhKHRoaXMpLmlzKCIuaGFzU3ViIikmJmcuc2hvdygpfX0pfWEoIi5udW1lcmljIikub24oImtleXByZXNzIixmdW5jdGlvbihtKXtpZig0OD5tLmtleUNvZGV8fDU3PG0ua2V5Q29kZSltLnJldHVyblZhbHVlPSExfSk7aWYoIm9udG91Y2hzdGFydCJpbiB3aW5kb3d8fHdpbmRvdy5Eb2N1bWVudFRvdWNoJiZkb2N1bWVudCBpbnN0YW5jZW9mIERvY3VtZW50VG91Y2gpYSgiLmxlZnRfYm94IGEiKS5vbigidGFwIixmdW5jdGlvbihtKXttPWEodGhpcyk7aWYoInJhZGlvIiE9bS5hdHRyKCJ0eXBlIikmJm0uYXR0cigib25jbGljayIpKXJldHVybiBtLnRyaWdnZXIoImNsaWNrIiksITF9KSxhKCIuaGFzSXRlbXMgPiBhLCAuaGFzU3ViID4gYSIpLm9uKCJjbGljayIsZnVuY3Rpb24obSl7aWYoImNsaWNrIiE9bS50eXBlKXJldHVybiEwO3ZhciBsPWEodGhpcykuZGF0YSgiY2xpY2tDb3VudCIpO2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgbHx8IjAiPT0KbClhKCIubmF2IGxpLmhhc0l0ZW1zIGEsIC5uYXYgbGkuaGFzU3ViIGEiKS5kYXRhKCJjbGlja0NvdW50IiwiMCIpLGEodGhpcykuZGF0YSgiY2xpY2tDb3VudCIsIjEiKSxtLnByZXZlbnREZWZhdWx0KCk7ZWxzZSByZXR1cm4gZG9jdW1lbnQubG9jYXRpb249YSh0aGlzKS5hdHRyKCJocmVmIiksYSh0aGlzKS5kYXRhKCJjbGlja0NvdW50IiwiMCIpLCEwfSk7YSgiZGl2LmdtYXAtcGxhY2Vob2xkZXIiKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIG09YSh0aGlzKSxsPW0uZGF0YSgpO2luamVjdEdvb2dsZU1hcHNLZXkoZnVuY3Rpb24odSl7dT0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9tYXBzL2VtYmVkL3YxL3BsYWNlPyIrWyJxPSIrZW5jb2RlVVJJQ29tcG9uZW50KGwucGxhY2VJZCksInpvb209IitsLnpvb20sImxhbmd1YWdlPSIrbC5sYW5ndWFnZSwicmVnaW9uPUNBIiwia2V5PSIrdV0uam9pbigiJiIpO20uaHRtbCgnPGlmcmFtZSBzcmM9IicrdSsnIiB3aWR0aD0iMTAwJSIgaGVpZ2h0PSI0MDAiIGZyYW1lYm9yZGVyPSIwIiBzdHlsZT0iYm9yZGVyOjAiIGFsbG93ZnVsbHNjcmVlbj48L2lmcmFtZT4nKX0pfSk7CnRyeXthKCIuYWRkdHQiKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIG09WyJvbkNsb3NlIiwib25ZZXMiLCJvbk5vIl0sbD1hKHRoaXMpLHU9bC5kYXRhKCkscT17fSxyO2ZvcihyIGluIHUpcVtyXT1mdW5jdGlvbihwLHcpe3JldHVybi0xIT1tLmluZGV4T2YocCk\/ZnVuY3Rpb24oKXtldmFsKHcpfTp3fShyLHVbcl0pO2wuZGFya1Rvb2x0aXAocSl9KX1jYXRjaChtKXtjb25zb2xlLmxvZyhtLm1lc3NhZ2UsbSl9fSk7ZnVuY3Rpb24gY2hpbGRPZihhLGIpe2Zvcig7InVuZGVmaW5lZCIhPT10eXBlb2YgYSYmbnVsbCE9PWEmJihhPWEucGFyZW50Tm9kZSkmJmEhPT1iOyk7cmV0dXJuISFhfXZhciBNZW51SGFuZGxlcjsKKGZ1bmN0aW9uKCl7dmFyIGE7TWVudUhhbmRsZXI9ZnVuY3Rpb24gYygpe2Z1bmN0aW9uIGQoZixnKXtsZXQgbT0oZy5tb2RlbHx8IiIpLnRyaW0oKSxsPShnLnRyaW18fCIiKS50cmltKCk7Zj1mLnJlcGxhY2UoIiMjTUVOVVlFQVIjIyIsZy55ZWFyKTttJiZsJiYobS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKGwudG9Mb3dlckNhc2UoKSk\/bD0iIjpsLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMobS50b0xvd2VyQ2FzZSgpKSYmKG09IiIpKTtyZXR1cm4gZj1mLnJlcGxhY2UoIiMjTUVOVU1PREVMIyMiLG0pLnJlcGxhY2UoIiMjTUVOVVRSSU0jIyIsbCkucmVwbGFjZSgvICsvZywiICIpfWlmKGEpcmV0dXJuIGE7YT10aGlzO3RoaXMuZ2V0U3BlY1VybD1mdW5jdGlvbigpe3ZhciBmPSJFTkdMSVNIIj09JCgiI2FjdGl2ZXNpdGVsYW5ndWFnZSIpLnZhbCgpfHwiMCI9PT0kKCIjbmV3X3RyYW5zbGF0ZWRfdGl0bGVzIikudmFsKCk\/ImVuIjoiZnIiOyIwIj09JCgiI211bHRpLWxhbmd1YWdlIikudmFsKCkmJgooZj0iRU5HTElTSCI9PSQoIiNhY3RpdmVzaXRlbGFuZ3VhZ2UiKS52YWwoKT8iZW4iOiJmciIpO3JldHVybiIvanNvbi9uZXdjYXJzZGV0YWlsc18iK2YrIi5qc29uIn07dGhpcy5tZW51PSQoIi5tZW51NSwgLm1lbnU2LCAubWVudTcsIC5tZW51OCwgLm1lbnU5LCAubWVudTEwIik7dGhpcy5zcGVjc0FqYXg9JC5nZXQodGhpcy5nZXRTcGVjVXJsKCkpO3RoaXMuY2Fycz17ZGV0YWlsczp7fSxmaW5kQnlJZDpmdW5jdGlvbihmKXt2YXIgZz17fTskLmVhY2godGhpcy5kZXRhaWxzLm1ha2VzLGZ1bmN0aW9uKG0sbCl7JC5lYWNoKGwubW9kZWxzLGZ1bmN0aW9uKHUscSl7MT09cS5pc3Nlcmllc3x8MT09cS5pc0NsYXNzPyQuZWFjaChxLnN0eWxlcyxmdW5jdGlvbihyLHApe3AuaWQ9PWYmJihnPXApfSk6cS5pZD09ZiYmKGc9cSl9KTskLmlzRW1wdHlPYmplY3QoZyl9KTtyZXR1cm4gZ319O3RoaXMuc3BlY3NBamF4LmRvbmUoZnVuY3Rpb24oZil7YygpLmNhcnMuZGV0YWlscz1mfSk7dGhpcy5wb3NpdGlvbnM9CmZ1bmN0aW9uKGYsZyxtKXtyZXR1cm57dGFyZ2V0OiQoZy5jdXJyZW50VGFyZ2V0KSxzZWNvbmRMZXZlbE1lbnU6bnVsbCx3aW5kb3dIZWlnaHQ6bnVsbCxzZWNvbmRMZXZlbE1lbnVUb3A6bnVsbCxzZWNvbmRMZXZlbE1lbnVCb3R0b206bnVsbCxzdWJNZW51SXRlbVRvcDpudWxsLHN1Yk1lbnVJdGVtSGVpZ2h0Om51bGwsc3ViTWVudUl0ZW1Cb3R0b206bnVsbCxib3R0b21BbGlnbjpudWxsLHNwZWNzOm51bGwsc3BlY3NUb3A6bnVsbCxzcGVjc0hlaWdodDpudWxsLHNwZWNzQm90dG9tOm51bGwsY3VzdG9tU2Vjb25kTGV2ZWxNZW51Om51bGwscm91bmQ6ZnVuY3Rpb24obCl7cmV0dXJuKyhNYXRoLnJvdW5kKGwrImUrMiIpKyJlLTIiKX0sdXBkYXRlOmZ1bmN0aW9uKCl7dGhpcy5zZWNvbmRMZXZlbE1lbnU9ImZ1bmN0aW9uIj09dHlwZW9mIHRoaXMuY3VzdG9tU2Vjb25kTGV2ZWxNZW51P3RoaXMuY3VzdG9tU2Vjb25kTGV2ZWxNZW51KCk6dGhpcy50YXJnZXQuZmluZCgidWwuc3ViOmZpcnN0Iik7CnRyeXt0aGlzLndpbmRvd0hlaWdodD0kKHdpbmRvdykuaGVpZ2h0KCksdGhpcy5zZWNvbmRMZXZlbE1lbnVUb3A9dGhpcy5zZWNvbmRMZXZlbE1lbnUucG9zaXRpb24oKS50b3AsdGhpcy5zZWNvbmRMZXZlbE1lbnVIZWlnaHQ9dGhpcy5zZWNvbmRMZXZlbE1lbnUub3V0ZXJIZWlnaHQoKSx0aGlzLnNlY29uZExldmVsTWVudUJvdHRvbT10aGlzLnJvdW5kKHRoaXMuc2Vjb25kTGV2ZWxNZW51VG9wK3RoaXMuc2Vjb25kTGV2ZWxNZW51SGVpZ2h0KX1jYXRjaChsKXt9dHJ5e3RoaXMuc3ViTWVudUl0ZW1Ub3A9JChmKS5wb3NpdGlvbigpLnRvcCx0aGlzLnN1Yk1lbnVJdGVtSGVpZ2h0PSQoZikub3V0ZXJIZWlnaHQoKSx0aGlzLnN1Yk1lbnVJdGVtQm90dG9tPXRoaXMucm91bmQodGhpcy5zdWJNZW51SXRlbUhlaWdodCt0aGlzLnN1Yk1lbnVJdGVtVG9wKSx0aGlzLmJvdHRvbUFsaWduPXRoaXMucm91bmQoJChmKS5wYXJlbnQoInVsIikub3V0ZXJIZWlnaHQoKSskKGYpLnBhcmVudCgidWwiKS5vZmZzZXQoKS50b3AtCnRoaXMuc2Vjb25kTGV2ZWxNZW51Qm90dG9tKX1jYXRjaChsKXt9dHJ5e3RoaXMuc3BlY3M9bSx0aGlzLnNwZWNzVG9wPXRoaXMuc3BlY3MucG9zaXRpb24oKS50b3AsdGhpcy5zcGVjc0hlaWdodD10aGlzLnNwZWNzLm91dGVySGVpZ2h0KCksdGhpcy5zcGVjc0JvdHRvbT10aGlzLnJvdW5kKHRoaXMuc3BlY3NUb3ArdGhpcy5zcGVjc0hlaWdodCl9Y2F0Y2gobCl7fX0sYWRqdXN0U2Vjb25kTGV2ZWw6ZnVuY3Rpb24oKXtpZiguNjUqdGhpcy53aW5kb3dIZWlnaHQ8dGhpcy5zZWNvbmRMZXZlbE1lbnVIZWlnaHQpe2lmKHRoaXMuc2Vjb25kTGV2ZWxNZW51Lmhhc0NsYXNzKCJsb2NhdGlvbi1kZXRhaWxzIikpcmV0dXJuO3RoaXMuc2Vjb25kTGV2ZWxNZW51LnJlbW92ZUF0dHIoInN0eWxlIik7dGhpcy5zZWNvbmRMZXZlbE1lbnUuY3NzKCJoZWlnaHQiLC42NSp0aGlzLndpbmRvd0hlaWdodCk7dGhpcy5zZWNvbmRMZXZlbE1lbnUuY3NzKHsib3ZlcmZsb3cteSI6ImF1dG8iLHdpZHRoOiI0MDBweCIsCnBvc2l0aW9uOiJzdGF0aWMiLGRpcmVjdGlvbjoicnRsIn0pO3RoaXMuc2Vjb25kTGV2ZWxNZW51LmZpbmQoIj4gbGkiKS5jc3Moe2RpcmVjdGlvbjoibHRyIn0pO2lmKDA9PSQoZikuY2hpbGRyZW4oIi5tYWlubWVudS1zdWJtZW51IikubGVuZ3RoKXt2YXIgbD0kKCI8ZGl2Lz4iKTtsLmFkZENsYXNzKCJtYWlubWVudS1zdWJtZW51Iik7bC5kZXRhY2goKS5hcHBlbmQodGhpcy5zZWNvbmRMZXZlbE1lbnUpO3RoaXMudGFyZ2V0LmFwcGVuZChsKX10aGlzLnVwZGF0ZSgpfWlmKHRoaXMuc2Vjb25kTGV2ZWxNZW51Qm90dG9tPHRoaXMuc3ViTWVudUl0ZW1Ub3ApJChmKS5hZGRDbGFzcygiYWxpZ24tbGV2ZWwiKSx0aGlzLnVwZGF0ZSgpLGw9dGhpcy5zZWNvbmRMZXZlbE1lbnVCb3R0b208JChmKS5wYXJlbnQoInVsIikub3V0ZXJIZWlnaHQoKT8kKGYpLm91dGVySGVpZ2h0KCkrJChmKS5wb3NpdGlvbigpLnRvcC10aGlzLnNlY29uZExldmVsTWVudUhlaWdodDokKGYpLnBhcmVudCgidWwiKS5vdXRlckhlaWdodCgpKwokKGYpLnBhcmVudCgidWwiKS5wb3NpdGlvbigpLnRvcC10aGlzLnNlY29uZExldmVsTWVudUJvdHRvbSx0aGlzLnNlY29uZExldmVsTWVudS5jc3MoInRyYW5zZm9ybSIsInRyYW5zbGF0ZVkoIitsKyJweCkiKTtlbHNlIGlmKHRoaXMuc2Vjb25kTGV2ZWxNZW51Qm90dG9tPnRoaXMuc3ViTWVudUl0ZW1Ub3AmJnRoaXMuc3ViTWVudUl0ZW1Cb3R0b20+dGhpcy5zZWNvbmRMZXZlbE1lbnVCb3R0b20pe2w9MD5wYXJzZUludCh0aGlzLnNlY29uZExldmVsTWVudS5jc3MoImxlZnQiKS5yZXBsYWNlKCJweCIsIiIpKT8icmlnaHQiOiJsZWZ0Ijt2YXIgdT17dHJhbnNmb3JtOiJ0cmFuc2xhdGVZKCIrTWF0aC5hYnModGhpcy5zZWNvbmRMZXZlbE1lbnVCb3R0b20tdGhpcy5zdWJNZW51SXRlbUJvdHRvbSkrdGhpcy5zZWNvbmRMZXZlbE1lbnVUb3ArInB4KSJ9OyJyaWdodCIhPWwmJih1W2xdPXRoaXMudGFyZ2V0LnBvc2l0aW9uKCkubGVmdCt0aGlzLnRhcmdldC53aWR0aCgpKTt0aGlzLnNlY29uZExldmVsTWVudS5jc3ModSl9ZWxzZSB0aGlzLnNlY29uZExldmVsTWVudVRvcD4KdGhpcy5zdWJNZW51SXRlbVRvcCYmdGhpcy5zZWNvbmRMZXZlbE1lbnUuY3NzKCJ0cmFuc2Zvcm0iLCJ0cmFuc2xhdGVZKCIrdGhpcy5zdWJNZW51SXRlbVRvcCsicHgpIil9LGFkanVzdEhvcml6b250YWw6ZnVuY3Rpb24oKXt0aGlzLnNlY29uZExldmVsTWVudS5oYXNDbGFzcygiaW52aXNpYmxlIil8fHRoaXMuc2Vjb25kTGV2ZWxNZW51LmFkZENsYXNzKCJpbnZpc2libGUiKTt2YXIgbD10aGlzLmlzSW5WaWV3cG9ydCh0aGlzLnNlY29uZExldmVsTWVudVswXSksdT0wPnBhcnNlSW50KHRoaXMuc2Vjb25kTGV2ZWxNZW51LmNzcygibGVmdCIpLnJlcGxhY2UoInB4IiwiIikpPyJyaWdodCI6ImxlZnQiO2x8fCJsZWZ0IiE9PXV8fCh0aGlzLnNlY29uZExldmVsTWVudS5oYXNDbGFzcygiTDEwMCIpJiZ0aGlzLnNlY29uZExldmVsTWVudS5yZW1vdmVDbGFzcygiTDEwMCIpLHRoaXMuc2Vjb25kTGV2ZWxNZW51LmFkZENsYXNzKCJSMTAwIikpO2w9e307bFt1XT10aGlzLnRhcmdldC5wb3NpdGlvbigpLmxlZnQrCnRoaXMudGFyZ2V0LndpZHRoKCk7dGhpcy5zZWNvbmRMZXZlbE1lbnUuY3NzKGwpO3RoaXMuc2Vjb25kTGV2ZWxNZW51LnJlbW92ZUNsYXNzKCJpbnZpc2libGUiKX0saXNJblZpZXdwb3J0OmZ1bmN0aW9uKGwpe2w9bC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtyZXR1cm4gMDw9bC50b3AmJjA8PWwubGVmdCYmbC5ib3R0b208PSh3aW5kb3cuaW5uZXJIZWlnaHR8fGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQpJiZsLnJpZ2h0PD0od2luZG93LmlubmVyV2lkdGh8fGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0aCl9fX07dGhpcy5tZW51Lm9uKCJtb3VzZWVudGVyIG1vdXNlbGVhdmUiLCJ1bC5uYXYgPiBsaSIsZnVuY3Rpb24oZil7dmFyIGc9YS5wb3NpdGlvbnModGhpcyxmKTtnLnVwZGF0ZSgpO2cuc2Vjb25kTGV2ZWxNZW51Qm90dG9tLSQod2luZG93KS5zY3JvbGxUb3AoKT5nLndpbmRvd0hlaWdodD9nLnNlY29uZExldmVsTWVudS5hZGRDbGFzcygic2xpbS1zdWJtZW51Iik6Cmcuc2Vjb25kTGV2ZWxNZW51LnJlbW92ZUNsYXNzKCJzbGltLXN1Ym1lbnUiKTsibW91c2VsZWF2ZSIhPT1mLnR5cGUmJihmPSQodGhpcykuZmluZCgiPiB1bCIpLGYubGVuZ3RoJiYhZi5kYXRhKCJjYWxjdWxhdGVkIikmJihnPSQodGhpcykub3V0ZXJXaWR0aCgpLGYub3V0ZXJXaWR0aCgpPGcmJmYuY3NzKCJ3aWR0aCIsZysxKSxmLmRhdGEoImNhbGN1bGF0ZWQiLCEwKSkpfSk7dGhpcy5tZW51Lm9uKCJtb3VzZWVudGVyIG1vdXNlbGVhdmUiLCIjTWFpbk1lbnVfTkVXID4gdWwuc3ViID4gbGkiLGZ1bmN0aW9uKGYpe3ZhciBnPWEucG9zaXRpb25zKHRoaXMsZik7MCE9JChmLmN1cnJlbnRUYXJnZXQpLmZpbmQoInVsLnN1YiA+IGxpIikubGVuZ3RoJiYibW91c2VsZWF2ZSIhPWYudHlwZSYmKGcudXBkYXRlKCksZy5hZGp1c3RTZWNvbmRMZXZlbCgpKX0pO3RoaXMubWVudS5vbigibW91c2VlbnRlciBtb3VzZWxlYXZlIiwiI01haW5NZW51X0RFQUxFUlNISVBTID4gdWwuc3ViIGxpLmxvY2F0aW9uLW5hbWVzIiwKZnVuY3Rpb24oZil7dmFyIGc9YS5wb3NpdGlvbnModGhpcyxmKSxtPSQoZi5jdXJyZW50VGFyZ2V0KS5maW5kKCIubG9jYXRpb24tZGV0YWlscyIpO2cuY3VzdG9tU2Vjb25kTGV2ZWxNZW51PWZ1bmN0aW9uKCl7cmV0dXJuIG19OzAhPSQoZi5jdXJyZW50VGFyZ2V0KS5maW5kKCIubG9jYXRpb24tZGV0YWlscyIpLmxlbmd0aCYmIm1vdXNlbGVhdmUiIT1mLnR5cGUmJigkKGYuY3VycmVudFRhcmdldCkuZmluZCgiLmxvY2F0aW9uLWRldGFpbHMiKS5vbigibGF6eWxvYWRlZCIsZnVuY3Rpb24obCl7Zy5jdXN0b21TZWNvbmRMZXZlbE1lbnUoKS5hdHRyKCJzdHlsZSIsbnVsbCk7Zy51cGRhdGUoKTtnLmFkanVzdEhvcml6b250YWwoKTtnLmFkanVzdFNlY29uZExldmVsKCl9KSxnLmN1c3RvbVNlY29uZExldmVsTWVudSgpLmF0dHIoInN0eWxlIixudWxsKSxnLnVwZGF0ZSgpLGcuYWRqdXN0SG9yaXpvbnRhbCgpLGcuYWRqdXN0U2Vjb25kTGV2ZWwoKSl9KTt0aGlzLm1lbnUub24oIm1vdXNlZW50ZXIgbW91c2VsZWF2ZSIsCicjTWFpbk1lbnVfVEFCX0NPTU1FUkNJQUwgPiB1bC5zdWIgPiBbZGF0YS1pZD0iU1VCX1RBQl9DT01NRVJDSUFMX0NPTU1FUiJdJyxmdW5jdGlvbihmKXtmPWEucG9zaXRpb25zKHRoaXMsZik7Zi51cGRhdGUoKTtmLmFkanVzdFNlY29uZExldmVsKCl9KTtpZigiZm9yZF9saW5jb2xuX2V4dGVybmFsIj09JCgiI0RFQUxFUlBBUlRSRURJUkVDVFRZUEUiKS52YWwoKSYmMDwkKCIjREVBTEVSQlJBTkQiKS5sZW5ndGgmJiQoIiNERUFMRVJCUkFORCIpLnZhbCgpLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoImZvcmQiKSYmIiIhPSQoIiNERUFMRVJQQUNPREUiKS52YWwoKSl7dmFyIGU9JCgiaHRtbCIpLmF0dHIoImxhbmciKSxrPSQoIiNERUFMRVJQQUNPREUiKS52YWwoKSxoPSJlbiI9PWU\/Ii9yZXF1ZXN0cy9jYXItcGFydHMtYW5kLWFjY2Vzc29yaWVzLmh0bWwiOiIvZGVtYW5kZXMvY29tbWFuZGUtcGllY2VzLWFjY2Vzc29pcmVzLWF1dG9tb2JpbGVzLmh0bWwiLG49Imh0dHBzOi8vZm9yZGFjY2Vzcy5jb20vRm9yZC5hc3B4P2xvY2F0aW9uPSIrCms7dGhpcy5tZW51Lm9uKCJtb3VzZWVudGVyIG1vdXNlbGVhdmUiLCIjTWFpbk1lbnVfU0VSVklDRSB1bC5zdWIgbGlbZGF0YS1pZD0nUElFQ0VTJ10iLGZ1bmN0aW9uKCl7dmFyIGY9JCh0aGlzKTtmPSQoIj4gYSIsZik7Zi5hdHRyKCJocmVmIik9PWgmJihmLmF0dHIoImhyZWYiLG4pLGYuYXR0cigidGFyZ2V0IiwiX2JsYW5rIikpfSl9dGhpcy5tZW51Lm9uKCJtb3VzZWVudGVyIG1vdXNlbGVhdmUiLCIjTWFpbk1lbnVfRklOQU5DRSA+IGEiLGZ1bmN0aW9uKCl7dmFyIGY9JCh0aGlzKSxnPSQoImh0bWwiKS5hdHRyKCJsYW5nIiksbT0kKCIjREVBTEVSUEFDT0RFIikudmFsKCksbD0kKCIjREVBTEVSQlJBTkRfUFJJTUFSWSIpLnZhbCgpLnRvTG93ZXJDYXNlKCk7ImZvcmRfbGluY29sbl9leHRlcm5hbCIhPSQoIiNGSU5BTkNFRk9STVRZUEUiKS52YWwoKXx8ImZvcmQiIT1sJiYibGluY29sbiIhPWx8fCIiPT1tfHwoZi5hdHRyKCJocmVmIiwiZm9yZCI9PWw\/KCJlbiI9PWc\/Imh0dHBzOi8vd3d3LmZvcmQuY2EvZmluYW5jZS9hcHBseS8xP1NvdXJjZU9mRGF0YT1DQURDRiZkZWFsZXJJZD0iOgoiaHR0cHM6Ly9mci5mb3JkLmNhL2ZpbmFuY2UvYXBwbHkvMT9Tb3VyY2VPZkRhdGE9Q0FEQ0YmZGVhbGVySWQ9IikrbTooImVuIj09Zz8iaHR0cHM6Ly93d3cubGluY29sbmNhbmFkYS5jb20vZmluYW5jZS9hcHBseS8xP1NvdXJjZU9mRGF0YT1DQURDTCZkZWFsZXJJZD0iOiJodHRwczovL2ZyLmxpbmNvbG5jYW5hZGEuY29tL2ZpbmFuY2UvYXBwbHkvMT9Tb3VyY2VPZkRhdGE9Q0FEQ0wmZGVhbGVySWQ9IikrbSksZi5hdHRyKCJ0YXJnZXQiLCJfYmxhbmsiKSl9KTtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7aWYoMDwkKCIjZDJjLWJucC1saW5rcnVsZXMtdGV4dGFyZWEiKS5sZW5ndGgmJiIiIT0kKCIjZDJjLWJucC1saW5rcnVsZXMtdGV4dGFyZWEiKS52YWwoKSYmIiMjTElOS1JVTEVTIyMiIT0kKCIjZDJjLWJucC1saW5rcnVsZXMtdGV4dGFyZWEiKS52YWwoKSl7aWYoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLmN0YS10cGwiKS5sZW5ndGgmJiJ1bmRlZmluZWQiIT09dHlwZW9mIG5ld2NhckRldGFpbHMmJgoidW5kZWZpbmVkIiE9PXR5cGVvZiBuZXdjYXJEZXRhaWxzLmFjdGl2ZU1vZGVsKXtpZighMT09PSgiY29tbWVyY2lhbCI9PW5ld2NhckRldGFpbHMuYWN0aXZlTW9kZWwuc2VjdGlvbj8hMDohMSkpcmV0dXJuO2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5jdGEtdHBsIGEiKS5mb3JFYWNoKChmLGcpPT57Zz1mLmdldEF0dHJpYnV0ZSgiaHJlZiIpO2lmKGcuaW5jbHVkZXMoInNob3AuZm9yZC5jYSIpKXtsZXQgbT0hMTtnLmluY2x1ZGVzKCJzdXBlcmR1dHkiKSYmKG09Zy5yZXBsYWNlKCIvc3VwZXJkdXR5LyIsIi9zdXBlcmR1dHktY29tbWVyY2lhbC8iKSk7ITEhPT1tJiZmLnNldEF0dHJpYnV0ZSgiaHJlZiIsbSl9fSl9ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiI2NsYXNzY29tbWVyY2lhbF9jb250YWluZXIiKS5sZW5ndGgmJmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5kaXZDYXJTaW5nbGVPdXRlckJveCBhIikuZm9yRWFjaCgoZixnKT0+e2c9Zi5nZXRBdHRyaWJ1dGUoImhyZWYiKTsKaWYoZy5pbmNsdWRlcygic2hvcC5mb3JkLmNhIikpe2xldCBtPSExO2cuaW5jbHVkZXMoInN1cGVyZHV0eSIpJiYobT1nLnJlcGxhY2UoIi9zdXBlcmR1dHkvIiwiL3N1cGVyZHV0eS1jb21tZXJjaWFsLyIpKTshMSE9PW0mJmYuc2V0QXR0cmlidXRlKCJocmVmIixtKX19KX19LDJFMyk7dGhpcy5tZW51Lm9uKCJtb3VzZWVudGVyIG1vdXNlbGVhdmUiLCIjTWFpbk1lbnVfTkVXID4gdWwuc3ViID4gbGkgPiB1bC5zdWIgPiBsaSA+IHVsLnN1YiA+IGxpLCAjTWFpbk1lbnVfTkVXID4gdWwuc3ViID4gbGkgPiAubWFpbm1lbnUtc3VibWVudSA+IHVsLnN1YiA+IGxpID4gdWwuc3ViID4gbGksICAjTWFpbk1lbnVfVEFCX0NPTU1FUkNJQUwgPiB1bC5zdWIgPiBsaSA+IHVsLnN1YiA+IGxpID4gdWwuc3ViID4gbGksICNNYWluTWVudV9UQUJfQ09NTUVSQ0lBTCA+IHVsLnN1YiA+IGxpID4gLm1haW5tZW51LXN1Ym1lbnUgPiB1bC5zdWIgPiBsaSA+IHVsLnN1YiA+IGxpIixmdW5jdGlvbihmKXtpZigibW91c2VsZWF2ZSIhPQpmLnR5cGUpe3ZhciBnPSQodGhpcykuZmluZCgiLm1lbnUtdGVjaC1zcGVjcyIpOzA9PWcubGVuZ3RoJiYoZz0kKCIjbWVudS1zcGVjcy10ZW1wbGF0ZSIpLmNsb25lKCkpO3ZhciBtPXRoaXM7aWYoMD09JChtKS5jaGlsZHJlbigiLm1lbnUtdGVjaC1zcGVjcyIpLmxlbmd0aCl7dmFyIGw9JChtKS5maW5kKCJhOm50aC1vZi10eXBlKDIpIikudGV4dCgpLHU9JChtKS5maW5kKCJhOmZpcnN0LWNoaWxkIikuYXR0cigiaHJlZiIpLHE9dS5sYXN0SW5kZXhPZigiLyIpKzE7Y2FyTGlua1RyaW1tZWQ9dS5zdWJzdHJpbmcocSx1Lmxlbmd0aCk7dmFyIHI9JCgiI3R4dEJ1aWxkQW5kUHJpY2VGb2xkZXJQYXRoIikudmFsKCkrY2FyTGlua1RyaW1tZWQ7KGZ1bmN0aW9uKCl7aWYoMDwkKCIjZDJjLWJucC1saW5rcnVsZXMtdGV4dGFyZWEiKS5sZW5ndGgmJiIiIT0kKCIjZDJjLWJucC1saW5rcnVsZXMtdGV4dGFyZWEiKS52YWwoKSYmIiMjTElOS1JVTEVTIyMiIT0kKCIjZDJjLWJucC1saW5rcnVsZXMtdGV4dGFyZWEiKS52YWwoKSl7dmFyIHk9CjA8JChtKS5jbG9zZXN0KCJsaVtkYXRhLWlkXj0nTkVXX0NPTU1FUkNJQUwnXSIpLmxlbmd0aD8hMDohMSxBPSQoIiNkMmMtYm5wLWxpbmtydWxlcy10ZXh0YXJlYSIpLnZhbCgpO0E9SlNPTi5wYXJzZShBKTt2YXIgST0kKCJodG1sIikuYXR0cigibGFuZyIpLEI9ci5tYXRjaCgiZW4iPT1JPy9cL2J1aWxkLWFuZC1wcmljZVwvKFxkezR9LShcdyspLShcdyspLipcLmh0bWwpLiovOi9cL2NvbmZpZ3VyYXRpb24tZXQtcHJpeFwvKChcdyspLShcdyspLVxkezR9KS4qXC5odG1sLyksSj1CWzBdLEY9QlsyXS50b0xvd2VyQ2FzZSgpO0I9QlszXS50b0xvd2VyQ2FzZSgpLnJlcGxhY2VBbGwoIl8iLCIgIik7eSYmQi5pbmNsdWRlcygic3VwZXIgZHV0eSIpJiYoQj0ic3VwZXIgZHV0eSBjb21tZXJjaWFsIik7aWYoInVuZGVmaW5lZCIhPT10eXBlb2YgQVtGXSYmInVuZGVmaW5lZCI9PT10eXBlb2YgQVtGXVtCXSlmb3IodmFyIEsgaW4gQVtGXSlpZih5PUssQi5pbmNsdWRlcyh5KSl7Qj15OwpicmVha30idW5kZWZpbmVkIiE9PXR5cGVvZiBBW0ZdJiYidW5kZWZpbmVkIiE9PXR5cGVvZiBBW0ZdW0JdJiYoJChnKS5maW5kKCIubWVudS1zcGVjLWJucCIpLmF0dHIoInRhcmdldCIsIl9ibGFuayIpLHI9ci5yZXBsYWNlKEosQVtGXVtCXVtJXSkpfX0pKCk7JChnKS5maW5kKCIubWVudS1zcGVjLWJucCIpLmF0dHIoImhyZWYiLHIpOyQoZykuZmluZCgiLm1lbnUtc3BlYy1saW5rIikuYXR0cigiaHJlZiIsdSk7JChnKS5yZW1vdmVBdHRyKCJpZCIpOyQoZykuY2hpbGRyZW4oIi5tZW51LXNwZWNzLXRpdGxlIikuYXBwZW5kKGwpO3ZhciBwPXt9OyQuaXNFbXB0eU9iamVjdChjKCkuY2Fycy5kZXRhaWxzKT8kLndoZW4oYygpLnNwZWNzQWpheCkuZG9uZShmdW5jdGlvbih5KXtwPWMoKS5jYXJzLmZpbmRCeUlkKCQobSkuZGF0YSgibW9kZWxpZCIpKX0pOnA9YygpLmNhcnMuZmluZEJ5SWQoJChtKS5kYXRhKCJtb2RlbGlkIikpO2lmKCEkLmlzRW1wdHlPYmplY3QocCkpe3ZhciB3PWEuc2hvdWxkVXNlRnJlbmNoTmFtZXMoKT8KcC5uYW1lOnAubW9kZWw7cC5oYXNPd25Qcm9wZXJ0eSgiYmFzZV9zdHlsZSIpJiYocD1wLmJhc2Vfc3R5bGUsdz1wLm1vZGVsKTtxPSJGUkVOQ0giPT0kKCIjdGV4dExhbmd1YWdlIikudmFsKCk\/Ik4vRCI6Ik4vQSI7bD0iIj09cC5kaXNwbGFjZW1lbnQ\/cTpwLmRpc3BsYWNlbWVudDt1PSIiPT1wLmNpdHlGdWVsP3E6cC5jaXR5RnVlbDtxPSIiPT1wLmh3eUZ1ZWw\/cTpwLmh3eUZ1ZWw7dmFyIHo9cC5tc3JwQWxsSW4sRD0kKGcpLmZpbmQoIi5tZW51LXNwZWMtYm5wIikudGV4dCgpLnRyaW0oKTtEPUQucmVwbGFjZSgiJE1PREVMIix3KTt3PWA8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj4ke3oudG9Mb2NhbGVTdHJpbmcoKX08L3NwYW4+YDt6PSQoIiNBRE1JTl9ORVdfRE9OVF9TSE9XX1BSSUNFX01PREVMUyIpLnZhbCgpLmluY2x1ZGVzKHAubW9kZWxpZCk7aWYoMDwkKG0pLmNoaWxkcmVuKCIucHJpY2UiKS5sZW5ndGgpeyQoZykuZmluZCgiLm1lbnUtc3BlYy1wcmljZSIpLnRleHQoIiIpOwp2YXIgQz0kKCc8ZGl2IGNsYXNzPSJwcmljZSIvPicpLEU9JCgnPHNwYW4gY2xhc3M9InByaWNlX2FtdCIvPicpLEc9JCgnPHNwYW4gY2xhc3M9InByaWNlX3NjcmF0Y2hlZCIvPicpLEg9JCgnPHNwYW4gY2xhc3M9InByaWNlX3Byb21vIi8+Jyk7MDwkKG0pLmNoaWxkcmVuKCIucHJpY2UiKS5jaGlsZHJlbigiLnByaWNlLXNjcmF0Y2giKS5sZW5ndGg\/KEcuaHRtbCh3KSxFLmFwcGVuZChHKSxFLmNzcyh7InRleHQtZGVjb3JhdGlvbiI6ImxpbmUtdGhyb3VnaCIsY29sb3I6InJlZCJ9KSk6RS5odG1sKHcpO0MuYXBwZW5kKEUpOzA8JChtKS5jaGlsZHJlbigiLnByaWNlIikuY2hpbGRyZW4oIi5wcmljZV9wcm9tbyIpLmxlbmd0aCYmKEgudGV4dCgkKG0pLmNoaWxkcmVuKCIucHJpY2UiKS5jaGlsZHJlbigiLnByaWNlX3Byb21vIikudGV4dCgpKSxILmNzcyh7Y29sb3I6InJlZCJ9KSxDLmFwcGVuZChIKSk7JChnKS5maW5kKCIubWVudS1zcGVjLXByaWNlIikuYXBwZW5kKEMpfWVsc2UgJChnKS5maW5kKCIubWVudS1zcGVjLXByaWNlIikuaHRtbCh3KTsKJChnKS5maW5kKCIubWVudS1zcGVjLWhwIikudGV4dChwLmhwQXRSUE0pOyQoZykuZmluZCgiLm1lbnUtc3BlYy1wb3dlciIpLnRleHQobCk7JChnKS5maW5kKCIubWVudS1zcGVjLWZ1ZWwtY2l0eSIpLnRleHQodSk7JChnKS5maW5kKCIubWVudS1zcGVjLWZ1ZWwtaGlnaHdheSIpLnRleHQocSk7JChnKS5maW5kKCIubWVudS1zcGVjLWRyaXZldHJhaW4iKS50ZXh0KHAuZHJpdmVUcmFpbik7JChnKS5maW5kKCIubWVudS1zcGVjLWJucCIpLmNvbnRlbnRzKCkuZmlsdGVyKGZ1bmN0aW9uKCl7cmV0dXJuIDM9PXRoaXMubm9kZVR5cGV9KS5sYXN0KCkucmVwbGFjZVdpdGgoRCk7eiYmKCQoZykuZmluZCgiLm1lbnUtc3BlYy1ibnAiKS5yZW1vdmUoKSwkKGcpLmZpbmQoIi5tZW51LXNwZWMtcHJpY2UiKS50ZXh0KCQoIiNORVdfUFJJQ0VfVEVYVCIpLnZhbCgpKSk7JChnKS5maW5kKCIubWVudS1wcmljZS10ZXh0IikudGV4dChkKCQoZykuZmluZCgiLm1lbnUtcHJpY2UtdGV4dCIpLnRleHQoKSwKcCkpOzVFOD5wLmlkJiYkKG0pLmFwcGVuZChnLmZhZGVJbigyMDApKTtsPW5ldyBDdXN0b21FdmVudCgidG9wbmF2LXRlY2gtc3BlYy1sb2FkZWQiLHtkZXRhaWw6e3RlbXBsYXRlOmd9fSk7ZG9jdW1lbnQuZGlzcGF0Y2hFdmVudChsKX19c2V0VGltZW91dChmdW5jdGlvbigpe3ZhciB5PWEucG9zaXRpb25zKG0sZiwkKGcpKTt5LnVwZGF0ZSgpO3ZhciBBPSQobSkucGFyZW50KCJ1bC5zdWIiKS5wYXJlbnQoKS5wYXJlbnQoKTtBLm9mZnNldCgpO0Eub3V0ZXJIZWlnaHQoKTt5LnNwZWNzQm90dG9tPHkuc3ViTWVudUl0ZW1Ub3AmJiQoZykuY3NzKCJ0b3AiLHkuc3ViTWVudUl0ZW1Cb3R0b20teS5zcGVjc0JvdHRvbSk7eS5zdWJNZW51SXRlbVRvcDx5LnNwZWNzQm90dG9tJiZ5LnN1Yk1lbnVJdGVtQm90dG9tPnkuc3BlY3NCb3R0b20mJiQoZykuY3NzKCJ0b3AiLCQoZykucG9zaXRpb24oKS50b3ArKHkuc3ViTWVudUl0ZW1Cb3R0b20teS5zcGVjc0JvdHRvbSkpfSwwKTtkZWxldGUgcH19KTsKJCgnLnVwX21lbnUgW2lkXj0iTWFpbk1lbnVfIl0udG9wOm5vdCguaXNPcGVuKScpLm9uKCJtb3VzZWVudGVyIixmdW5jdGlvbihmKXskKGYuY3VycmVudFRhcmdldCkuaGFzQ2xhc3MoImlzT3BlbiIpfHwkKCcudXBfbWVudSBbaWRePSJNYWluTWVudV8iXS50b3AnKS5yZW1vdmVDbGFzcygiaXNPcGVuIil9KTskKGRvY3VtZW50KS5vbigiY2xpY2siLGZ1bmN0aW9uKGYpe2NoaWxkT2YoZG9jdW1lbnQuYWN0aXZlRWxlbWVudCwkKCIudXBfbWVudSIpWzBdKXx8JCgnLnVwX21lbnUgW2lkXj0iTWFpbk1lbnVfIl0udG9wJykucmVtb3ZlQ2xhc3MoImlzT3BlbiIpfSk7JCgiI01haW5NZW51X0NPTlRBQ1QiKS5vbigibW91c2VlbnRlciBtb3VzZWxlYXZlIixmdW5jdGlvbihmKXt2YXIgZz0kKCIjbWVudS1tYXAtbGluayIpOzA9PWcubGVuZ3RofHwwPGcuZmluZCgiaWZyYW1lIikubGVuZ3RofHxpbmplY3RHb29nbGVNYXBzS2V5KGZ1bmN0aW9uKG0pe209Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vbWFwcy9lbWJlZC92MS9wbGFjZT8iKwpbInE9IitlbmNvZGVVUklDb21wb25lbnQoZy5kYXRhKCJwbGFjZUlkIikpLCJ6b29tPSIrZy5kYXRhKCJ6b29tIiksImxhbmd1YWdlPSIrZy5kYXRhKCJsYW5ndWFnZSIpLCJyZWdpb249Q0EiLCJrZXk9IittXS5qb2luKCImIik7Zy5hcHBlbmQoJzxpZnJhbWUgc3JjPSInK20rJyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iNDAwIiBmcmFtZWJvcmRlcj0iMCIgc3R5bGU9ImJvcmRlcjowIiBhbGxvd2Z1bGxzY3JlZW4+PC9pZnJhbWU+Jyl9KX0pOyQoIiNNYWluTWVudV9GSU5BTkNFLCAjTWFpbk1lbnVfQ09OVEFDVCIpLm9uKCJtb3VzZWVudGVyIG1vdXNlbGVhdmUiLGZ1bmN0aW9uKGYpe3ZhciBnPWYuY3VycmVudFRhcmdldC5pZCxtPSQoIiMiK2cpOzA9PT0kKCIjIitnKyIuaXNPcGVuIikubGVuZ3RoJiYibW91c2VsZWF2ZSIhPT1mLnR5cGUmJm0uYWRkQ2xhc3MoImlzT3BlbiIpO2lmKCJtb3VzZWxlYXZlIj09PWYudHlwZSl7dmFyIGw9JCgiLmNyZWRpdFNjb3JlUG9wdXBGb3JtIilbMF07Cmc9JCgiIyIrZysiID4gYS50b3BfbGluayIpWzBdOyhsJiZmLmZyb21FbGVtZW50PT09bHx8ZyYmZi5mcm9tRWxlbWVudD09PWcpJiZtLnJlbW92ZUNsYXNzKCJpc09wZW4iKTtsPSQoZi50b0VsZW1lbnQpLmhhc0NsYXNzKCJjYWwtd3JhcHBlciIpfHwkKGYudG9FbGVtZW50KS5jaGlsZHJlbigpLmhhc0NsYXNzKCJjYWwtd3JhcHBlciIpfHwkKGYudG9FbGVtZW50KS5oYXNDbGFzcygibmViQ2FsIil8fCQoZi50b0VsZW1lbnQpLmNsb3Nlc3QoIi5uZWJDYWwiKS5sZW5ndGg7Zz0kKGYudG9FbGVtZW50KS5oYXNDbGFzcygicGFjLWNvbnRhaW5lciIpO2lmKCEobnVsbD09PWYudG9FbGVtZW50fHxjaGlsZE9mKGYudG9FbGVtZW50LG1bMF0pfHxjaGlsZE9mKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQsbVswXSl8fGx8fGcpfHxjaGlsZE9mKGYudG9FbGVtZW50LCQoIi51cF9tZW51IilbMF0pJiYhY2hpbGRPZihmLnRvRWxlbWVudCxtWzBdKSkkKCIubmViQ2FsIikuaXMoIjp2aXNpYmxlIikmJgooZj0kKCIuZmluYW5jZS1tZW51LWZyZWVjcmVkaXQgLmNyZWRpdFNjb3JlQmlydGhkYXRlIikuZGF0YSgibmViQ2FsIikpJiZmLmhpZGUoKSxtLnJlbW92ZUNsYXNzKCJpc09wZW4iKX19KTtpZigkKCEwKSl7ZT0kKCIubWVudTUgLm5hdiA+IGxpIik7az1lLmxlbmd0aDt2YXIgeD0kKCIjTWFpbk1lbnVfQ09OVEFDVCIpLHY9LTE7ZS5lYWNoKGZ1bmN0aW9uKGYsZyl7JChnKS5pcyh4KSYmKHY9Zil9KTstMTx2JiYuNTw9di9rJiZ4LmZpbmQoIi5jb250YWN0dXMtZm9ybS5jb250YWN0LXNob3J0IikuY3NzKHtyaWdodDoiaW5oZXJpdCJ9KX10aGlzLnNob3VsZFVzZUZyZW5jaE5hbWVzPWZ1bmN0aW9uKCl7cmV0dXJuIkZSRU5DSCI9PSQoIiNhY3RpdmVzaXRlbGFuZ3VhZ2UiKS52YWwoKSYmIjEiPT09JCgiI25ld190cmFuc2xhdGVkX3RpdGxlcyIpLnZhbCgpfTt0aGlzLnNldE1lbnVFeHByZXNzRm9ybVNlbGVjdGVkT3B0aW9uPWZ1bmN0aW9uKCl7dmFyIGY9d2luZG93LmxvY2F0aW9uLmhyZWYsCmc9L3VzZWR8b2NjYXNpb24vLnRlc3QoZiksbT0vbmV3fG5ldWZzLy50ZXN0KGYpLGw9L2ZpbmFuY2VtZW50fGNyZWRpdC8udGVzdChmKSx1PS9zZXJ2aWNlfGFjY2Vzc29yaWVzfHRpcmV8cG5ldXN8Ym9keXNob3B8Ym9keS1zaG9wfGNhcm9zc2VyaWUvLnRlc3QoZik7Zj0iIjttP2Y9Im5ldyI6Zz9mPSJ1c2VkIjpsP2Y9ImZpbmFuY2UiOnUmJihmPSJzZXJ2aWNlIik7IiIhPWYmJihnPSQoIi5tZW51ICNxdWlja0VtYWlsRGVwYXJ0bWVudCIpLCQoJyBvcHRpb25bdmFsdWU9IicrZisnIl0nLGcpLnByb3AoInNlbGVjdGVkIiwic2VsZWN0ZWQiKSxtPSQoIm9wdGlvbjpzZWxlY3RlZCIsZykuaW5kZXgoKSxnLnByZXYoInVsIikuZmluZCgibGkiKS5lcShtKS5maW5kKCJhIikudHJpZ2dlcigiY2xpY2siKSl9O3NldFRpbWVvdXQoZnVuY3Rpb24oKXthLnNldE1lbnVFeHByZXNzRm9ybVNlbGVjdGVkT3B0aW9uKCl9LDEwKTtjb25zb2xlLmxvZygiTWVudUhhbmRsZXIgaW5pdCAtLSB0ZXN0IHJlbW92ZSBsYXRlciIpOwp0aGlzLnRyYW5zbGF0ZVRpdGxlcz1mdW5jdGlvbigpe3JldHVybiAkanNjb21wLmFzeW5jRXhlY3V0ZVByb21pc2VHZW5lcmF0b3JGdW5jdGlvbihmdW5jdGlvbiooKXt0cnl7dmFyIGY9ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiW2RhdGEtbWVudS10cmFuc2xhdGVdIik7aWYoZil7dmFyIGc9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiYm9keSIpLmNsYXNzTmFtZS5tYXRjaCgiRlJFTkNIIik\/ImZyIjoiZW4iLG09KG5ldyBVUkwoYC9qcy9qc29uL21lbnVUaXRsZXNfJHtnfS5qc29uYCx3aW5kb3cubG9jYXRpb24ub3JpZ2luKSkuaHJlZjtyZXNwb25zZT15aWVsZCBmZXRjaChtKTtpZih0ZXh0PXlpZWxkIHJlc3BvbnNlLnRleHQoKSlpZihkYXRhPUpTT04ucGFyc2UodGV4dCksZiYmMCE9PWRhdGEubGVuZ3RoKWZvcihnPTA7ZzxmLmxlbmd0aDtnKyspe3ZhciBsPWZbZ10uZ2V0QXR0cmlidXRlKCJkYXRhLW1lbnUtdHJhbnNsYXRlIik7ZGF0YVtsXSYmQmFzZTY0LmlzQmFzZTY0KGRhdGFbbF0udGV4dCkmJgooZltnXS50ZXh0Q29udGVudD1CYXNlNjQuZGVjb2RlKGRhdGFbbF0udGV4dCkpfX19Y2F0Y2godSl7Y29uc29sZS5sb2codSl9fSl9O3RoaXMudHJhbnNsYXRlVGl0bGVzKCl9fSkoKTskKGZ1bmN0aW9uKCl7d2luZG93Lm1lbnVIYW5kbGVyPW5ldyBNZW51SGFuZGxlcn0pOwp2YXIgZ2V0QWN0aXZlUGFnZT1mdW5jdGlvbigpe3ZhciBhPSIiOyJ1bmRlZmluZWQiPT09dHlwZW9mIGFjdGl2ZVBhZ2UmJihhY3RpdmVQYWdlPSIiKTtzd2l0Y2goYWN0aXZlUGFnZSl7Y2FzZSAiSE9NRVBBR0UiOmE9IkFjY3VlaWwiO2JyZWFrO2Nhc2UgIkNBUkRFVEFJTFMiOmE9Ik9jY2FzaW9uLVZEUCI7YnJlYWs7Y2FzZSAiVVNFRENBUlMiOmE9Ik9jY2FzaW9uLVNSUCI7YnJlYWs7Y2FzZSAiTkVXQ0FSUyI6YT0iTmV1Zi1TUlAiO2JyZWFrO2Nhc2UgIk5FV0NBUkRFVEFJTFMiOmE9Ik5ldWYtVkRQIn1yZXR1cm4gYX0sc2VuZEdvb2dsZUFuYWx5dGljQmFubmVyQ2xpY2tlZEV2ZW50PWZ1bmN0aW9uKGEsYil7Z2FUcmFjaygiX3RyYWNrRXZlbnQiLCJDbGlxdWVzIEJhbm5pZXJlIixhLGIsMSl9OwokKGRvY3VtZW50KS5vbigiY2xpY2siLCIjaG9tZXBhZ2UtYmFubmVyICNzbGlkZXIgPiBhIixmdW5jdGlvbihhKXtpZihhPWdldEFjdGl2ZVBhZ2UoKSl7dmFyIGI9IiIhPSQodGhpcykuYXR0cigiaHJlZiIpPyQodGhpcykuYXR0cigiaHJlZiIpOiJQb3B1cCI7c2VuZEdvb2dsZUFuYWx5dGljQmFubmVyQ2xpY2tlZEV2ZW50KGEsYil9fSk7JChkb2N1bWVudCkub24oImNsaWNrIiwiI21vYmlsZVNsaWRlciAjbW9iaWxlU2xpZGVyMiA+IGEiLGZ1bmN0aW9uKGEpe2lmKGE9Z2V0QWN0aXZlUGFnZSgpKXt2YXIgYj0iIiE9JCh0aGlzKS5hdHRyKCJocmVmIik\/JCh0aGlzKS5hdHRyKCJocmVmIik6IlBvcHVwIjtzZW5kR29vZ2xlQW5hbHl0aWNCYW5uZXJDbGlja2VkRXZlbnQoYSxiKX19KTsKJChkb2N1bWVudCkub24oImNsaWNrIiwiI3RvcEJhbm5lckltYWdlIixmdW5jdGlvbihhKXsoYT1nZXRBY3RpdmVQYWdlKCkpJiZzZW5kR29vZ2xlQW5hbHl0aWNCYW5uZXJDbGlja2VkRXZlbnQoYSwiUG9wdXAiKX0pO3ZhciBob21lUGFnZUJhbm5lclZpZXc9W107JChkb2N1bWVudCkub24oImNsaWNrIiwiI2hvbWVwYWdlLWJhbm5lciAjc2xpZGVyID4gYSIsZnVuY3Rpb24oYSl7KGE9Z2V0QWN0aXZlUGFnZSgpKSYmIkFjY3VlaWwiPT1hJiYoYT0kKCIjc2xpZGVyIikuZGF0YSgibml2bzp2YXJzIikuY3VycmVudFNsaWRlKzEsZ2FUcmFjaygiYy5fdHJhY2tFdmVudCIsIkhvbWUtcGFnZSBzbGlkZXIiLCJEZXNrdG9wLWNsaWNrIixhLDEpKX0pOwokKGRvY3VtZW50KS5vbigibml2b1NsaWRlckNoYW5nZWQgbml2b1NsaWRlckxvYWRlZCIsIiNob21lcGFnZS1iYW5uZXIgI3NsaWRlciIsZnVuY3Rpb24oYSl7IShhPWdldEFjdGl2ZVBhZ2UoKSl8fCJBY2N1ZWlsIiE9YXx8NTAwPCQoZG9jdW1lbnQpLnNjcm9sbFRvcCgpfHwoYT0kKCIjc2xpZGVyIikuZGF0YSgibml2bzp2YXJzIikuY3VycmVudFNsaWRlKzEsMD4kLmluQXJyYXkoYSxob21lUGFnZUJhbm5lclZpZXcpJiYoaG9tZVBhZ2VCYW5uZXJWaWV3LnB1c2goYSksZ2FUcmFjaygiYy5fdHJhY2tFdmVudCIsIkhvbWUtcGFnZSBzbGlkZXIiLCJEZXNrdG9wLXZpZXciLGEsMSkpKX0pOwokKGRvY3VtZW50KS5vbigiY2xpY2siLCIjbW9iaWxlU2xpZGVyICNtb2JpbGVTbGlkZXIyID4gYSIsZnVuY3Rpb24oYSl7KGE9Z2V0QWN0aXZlUGFnZSgpKSYmIkFjY3VlaWwiPT1hJiYoYT0kKCIjbW9iaWxlU2xpZGVyMiIpLmRhdGEoIm5pdm86dmFycyIpLmN1cnJlbnRTbGlkZSsxLGdhVHJhY2soImMuX3RyYWNrRXZlbnQiLCJIb21lLXBhZ2Ugc2xpZGVyIiwiTW9iaWxlLWNsaWNrIixhLDEpKX0pOwokKGRvY3VtZW50KS5vbigibml2b1NsaWRlckNoYW5nZWQgbml2b1NsaWRlckxvYWRlZCIsIiNtb2JpbGVTbGlkZXIgI21vYmlsZVNsaWRlcjIiLGZ1bmN0aW9uKGEpeyEoYT1nZXRBY3RpdmVQYWdlKCkpfHwiQWNjdWVpbCIhPWF8fDM1MDwkKGRvY3VtZW50KS5zY3JvbGxUb3AoKXx8KGE9JCgiI21vYmlsZVNsaWRlcjIiKS5kYXRhKCJuaXZvOnZhcnMiKS5jdXJyZW50U2xpZGUrMSwwPiQuaW5BcnJheShhLGhvbWVQYWdlQmFubmVyVmlldykmJihob21lUGFnZUJhbm5lclZpZXcucHVzaChhKSxnYVRyYWNrKCJjLl90cmFja0V2ZW50IiwiSG9tZS1wYWdlIHNsaWRlciIsIk1vYmlsZS12aWV3IixhLDEpKSl9KTsKZnVuY3Rpb24gdGhyZXNob2xkUG9wdXAoKXt2YXIgYT1nZXRVcmxWYXJzKCk7aWYobnVsbD09Q29va2llcy5nZXQoInBvcHVwU2hvd24iKXx8InVuZGVmaW5lZCIhPXR5cGVvZiBhLmRlYnVnKXNob3dQb3B1cFdpZGdldCh7ZG9Ob3RSZWRpcmVjdDohMH0pLENvb2tpZXMuc2V0KCJwb3B1cFNob3duIiwiMSIsOTAsIi8iKX1mdW5jdGlvbiBfbG9jYWxTdG9yYWdlU2V0KGEsYixjKXtjPTg2NEU1KihjfHwxKTtiPXt2YWx1ZTpiLGV4cGlyeToobmV3IERhdGUpLmdldFRpbWUoKStjfTtsb2NhbFN0b3JhZ2Uuc2V0SXRlbShhLEpTT04uc3RyaW5naWZ5KGIpKX1mdW5jdGlvbiBfbG9jYWxTdG9yYWdlR2V0KGEpe3ZhciBiPWxvY2FsU3RvcmFnZS5nZXRJdGVtKGEpO2lmKCFiKXJldHVybiBudWxsO2I9SlNPTi5wYXJzZShiKTtyZXR1cm4obmV3IERhdGUpLmdldFRpbWUoKT5iLmV4cGlyeT8obG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oYSksbnVsbCk6Yi52YWx1ZX0KZnVuY3Rpb24gX2xvY2FsU3RvcmFnZVJlbW92ZShhKXtpZighbG9jYWxTdG9yYWdlLmdldEl0ZW0oYSkpcmV0dXJuIG51bGw7bG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oYSk7cmV0dXJuIG51bGx9ZnVuY3Rpb24gZ2VuZXJhdGVVbmlxdWVJZCgpe3JldHVybiJpZC0iK0RhdGUubm93KCkrIi0iK01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnNsaWNlKDIpfWNvbnN0IGluaXRUb29sdGlwcz0oKT0+e3RyeXtkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCJbZGF0YS1wb3BwZXJdIikuZm9yRWFjaChhPT57VG9vbHRpcChhKS5jcmVhdGUoKX0pfWNhdGNoKGEpe2NvbnNvbGUubG9nKCJUb29sdGlwIG9iamVjdCBub3QgZm91bmQiKX19OwpmdW5jdGlvbiBoYW5kbGVDb29raWVDb250ZW50KCl7ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiW2RhdGEtY29va2llaGlkZV0iKS5mb3JFYWNoKGE9PntsZXQgYj1hLmRhdGFzZXQuY29va2llaGlkZTtiLmxlbmd0aCYmQ29va2llcy5nZXQoYikmJihhLmhpZGRlbj0hMCl9KTtkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCJbZGF0YS1jb29raWVzaG93XSIpLmZvckVhY2goYT0+e2xldCBiPWEuZGF0YXNldC5jb29raWVzaG93O2IubGVuZ3RoJiZDb29raWVzLmdldChiKSYmKGEuaGlkZGVuPSExKX0pfXZhciBzaXRlUGFnZT17fTsKY29uc3QgZG9jUmVhZHk9ZnVuY3Rpb24oKXtfbG9jYWxTdG9yYWdlR2V0KCJkMmMtdWlkIil8fF9sb2NhbFN0b3JhZ2VTZXQoImQyYy11aWQiLGdlbmVyYXRlVW5pcXVlSWQoKSwyKTtpZigiY29tcGxldGUiPT09ZG9jdW1lbnQucmVhZHlTdGF0ZSl7bGV0IGE7Y29uc29sZS5sb2coIkdTUEVFRC1ET0NSRUFEWSBDT01QTEVURToiKyhEYXRlLm5vdygpLShudWxsIT0oYT13aW5kb3cuZ1Rlc3RTcGVlZENvbm4pP2E6MCkpLzFFMyk7ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLnNrZWxldG9uLXR4dCIpLmZvckVhY2goYj0+e2IuY2xhc3NMaXN0LnRvZ2dsZSgic2tlbGV0b24tdHh0IiwhMSl9KTtkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIuc2tlbGV0b24tc2xpZGVyIikuZm9yRWFjaChiPT57Yi5jbGFzc0xpc3QudG9nZ2xlKCJza2VsZXRvbi1zbGlkZXIiLCExKX0pO3dpbmRvdy5nU2tlbGV0b25Jc1JlbW92ZWQ9ITA7c2l0ZVBhZ2U9e25hbWU6InVuZGVmaW5lZCIhPXR5cGVvZiBwYWdlPwpwYWdlOiIiLGlzTW9iaWxlOiIxIj09KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpc21vYmlsZSIpfHwiIikudmFsdWUsbGFuZzooZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFjdGl2ZXNpdGVsYW5ndWFnZSIpfHwiIikudmFsdWV8fCJGUkVOQ0gifTtoYW5kbGVDb29raWVDb250ZW50KCk7aW5pdFRvb2x0aXBzKCk7ZG9jUmVhZHlBcnIuZm9yRWFjaChiPT5iKCkpO2RvY1JlYWR5QXJyPVtdfWVsc2V7bGV0IGE7aWYoImludGVyYWN0aXZlIj09PWRvY3VtZW50LnJlYWR5U3RhdGUmJndpbmRvdy5nUmVzb3VyY2VMb2FkZXJBbmRKcXVlcnlJc1JlYWR5JiYhMT09PShudWxsIT0oYT13aW5kb3cuZ1NrZWxldG9uSXNSZW1vdmVkKT9hOiExKSl7bGV0IGI7Y29uc29sZS5sb2coIkdTUEVFRC1ET0NSRUFEWSBJTlRFUkFDVElWRToiKyhEYXRlLm5vdygpLShudWxsIT0oYj13aW5kb3cuZ1Rlc3RTcGVlZENvbm4pP2I6MCkpLzFFMyk7ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLnNrZWxldG9uLXR4dCIpLmZvckVhY2goYz0+CntjLmNsYXNzTGlzdC50b2dnbGUoInNrZWxldG9uLXR4dCIsITEpfSk7ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLnNrZWxldG9uLXNsaWRlciIpLmZvckVhY2goYz0+e2MuY2xhc3NMaXN0LnRvZ2dsZSgic2tlbGV0b24tc2xpZGVyIiwhMSl9KTt3aW5kb3cuZ1NrZWxldG9uSXNSZW1vdmVkPSEwfXNldFRpbWVvdXQoZG9jUmVhZHksNTApfX07ZG9jUmVhZHkoKTsKJChmdW5jdGlvbigpe3ZhciBhPSEwOyQod2luZG93KS5vbigic2Nyb2xsIixmdW5jdGlvbigpe3ZhciBkPSQoZG9jdW1lbnQpLmhlaWdodCgpLGU9JCh3aW5kb3cpLmhlaWdodCgpKyQod2luZG93KS5zY3JvbGxUb3AoKTsuMDU+KGQtZSkvZCYmYSYmKGE9ITEsInVuZGVmaW5lZCIhPT10eXBlb2YgZ2FUcmFjayYmZ2FUcmFjaygiX3RyYWNrRXZlbnQiLCJCb3R0b20gb2YgcGFnZSByZWFjaGVkIiwkKCdpbnB1dFtuYW1lPSJ0YXJnZXRQYWdlIl0nKS52YWwoKSx3aW5kb3cubG9jYXRpb24uaHJlZiwxKSl9KTskKCIuZW1iZWQtY29udGFpbmVyLXlvdXR1YmUiKS5wYXJlbnQoIi53cmFwcGVyIikucmVtb3ZlQ2xhc3MoIndyYXBwZXIiKTtpZigkKCIjaXNCcmFuZFBhZ2UiKS5sZW5ndGgpe3ZhciBiPWdldFVybFZhcnMoKTtpZihiLmt3JiYtMSE9Yi5rdy50b0xvd2VyQ2FzZSgpLmluZGV4T2YoImNhbmFkYSIpKXt2YXIgYz0kKCIjYWN0aXZlc2l0ZWxhbmd1YWdlIikmJiJFTkdMSVNIIj09CiQoIiNhY3RpdmVzaXRlbGFuZ3VhZ2UiKS52YWwoKT8iZW4iOiJmciI7Yj0iZW4iPT1jPyJIZXJlIHdlIG9mZmVyIHRoZSBiZXN0IHByaWNlcyI6IkljaSBvbiBvZmZyZSBsZXMgbWVpbGxldXJzIHByaXgiO2M9ImVuIj09Yz8ib24gIiskKCIjaXNCcmFuZFBhZ2UiKS52YWwoKSsiJ3MgaW4gQ2FuYWRhIjokKCIjaXNCcmFuZFBhZ2UiKS52YWwoKSsiIGF1IENhbmFkYSI7JCgiI2RlZmF1bHRUb3BCYW5uZXJUaXRsZSIpLnRleHQoYik7JCgiI2RlZmF1bHRUb3BCYW5uZXJUZXh0IikudGV4dChjKX19JCgiI2ZpbmFuY2VNdWx0aXN0ZXBQb3B1cENvbnRhaW5lciIpLmxlbmd0aCYmKGI9Z2V0VXJsVmFycygpLGIuZmluYW5jZXBvcCYmInllcyI9PWIuZmluYW5jZXBvcCYmc2V0VGltZW91dCgoKT0+eyQoIiNmaW5hbmNlTXVsdGlzdGVwUG9wdXBDb250YWluZXIiKS5wb3B1cGl6ZSgpLm9wZW4oKX0sMUUzKSk7MDwkKCIudHJhZGVzaWktcm9vdCIpLnRleHQoKS5sZW5ndGg\/JCgiLnRyYWRlc2lpLXJvb3QiKS5jc3MoInotaW5kZXgiLAoxRTMpOnNldFRpbWVvdXQoZnVuY3Rpb24oKXskKCIudHJhZGVzaWktcm9vdCIpLmNzcygiei1pbmRleCIsMUUzKX0sMUUzKX0pO2Z1bmN0aW9uIGFkZE1heExlbmd0aCgpeyQoIjppbnB1dCIpLmVhY2goZnVuY3Rpb24oKXt2YXIgYT0kKHRoaXMpLmF0dHIoInR5cGUiKSxiPSQodGhpcykuYXR0cigibWF4bGVuZ3RoIik7aWYodm9pZCAwPT1ifHxudWxsPT1ifHwiIj09YikidGV4dCI9PWF8fCJ0ZWwiPT1hfHwiZW1haWwiPT1hfHwidXJsIj09YT8kKHRoaXMpLnByb3AoIm1heGxlbmd0aCIsMjU2KToibnVtYmVyIj09YSYmKCQodGhpcykucHJvcCgib25pbnB1dCIsInRoaXMudmFsdWU9dGhpcy52YWx1ZS5zbGljZSgwLHRoaXMubWF4bGVuZ3RoKSIpLCQodGhpcykucHJvcCgibWF4bGVuZ3RoIiwyNTYpKX0pfWRvY1JlYWR5QXJyLnB1c2goKCk9PnskKCIucmV2ZWFsLW1vZGFsIikub24oInBvcHVwaXplci5vbk9wZW4iLGZ1bmN0aW9uKCl7YWRkTWF4TGVuZ3RoKCl9KTthZGRNYXhMZW5ndGgoKX0pOwooZnVuY3Rpb24oYSl7ZnVuY3Rpb24gYihkLGUpe3RoaXMuZWw9ZDt0aGlzLiRlbD1hKGQpO2lmKHZvaWQgMD09PWV8fCJvYmplY3QiPT09dHlwZW9mIGUpdGhpcy5zZXR0aW5ncz1hLmV4dGVuZChjLGUpO3RoaXMuaW5pdCgpfXZhciBjPXtsYXQ6IiIsbG9uZzoiIixwb3N0YWw6IiIscmF0aW86LjY4ODUsd2lkdGg6ImF1dG8ifTtiLnByb3RvdHlwZT17aW5pdDpmdW5jdGlvbigpe3ZhciBkPXRoaXMuJGVsLmlzKCIubGF6eWxvYWQiKT8iZGF0YS1pbWdzcmMiOiJzcmMiO3RoaXMuJGVsLmF0dHIoZCx0aGlzLmdldFVybCgpKX0saXNWaXNpYmxlOmZ1bmN0aW9uKCl7dmFyIGQ9dGhpcy4kZWwuYXR0cigid2lkdGgiKTtyZXR1cm4hKCIwcHgiPT09dGhpcy4kZWwuYXR0cigiaGVpZ2h0Iil8fCIwcHgiPT09ZCl9LGdldFdpZHRoOmZ1bmN0aW9uKCl7dGhpcy4kZWwuYXR0cigid2lkdGgiKTt2YXIgZD0wOyJhdXRvIj09PXRoaXMuc2V0dGluZ3Mud2lkdGh8fCJhdXRvIj09PXRoaXMuJGVsLmRhdGEoIndpZHRoIik\/CmQ9dGhpcy4kZWwucGFyZW50KCkuY3NzKCJ3aWR0aCIpOmlzTmFOKHBhcnNlSW50KHRoaXMuc2V0dGluZ3Mud2lkdGgpKT92b2lkIDAhPT10aGlzLiRlbC5hdHRyKCJ3aWR0aCIpJiYoZD10aGlzLiRlbC5hdHRyKCJ3aWR0aCIpKTpkPXRoaXMuc2V0dGluZ3Mud2lkdGg7dGhpcy4kZWwuYXR0cigid2lkdGgiLGQpO3JldHVybiBwYXJzZUludChkLnJlcGxhY2UoInB4IiwiIikpfSxnZXRIZWlnaHQ6ZnVuY3Rpb24oKXt2YXIgZD0iYXV0byI9PT10aGlzLnNldHRpbmdzLndpZHRofHwiYXV0byI9PT10aGlzLiRlbC5kYXRhKCJ3aWR0aCIpP01hdGgucm91bmQodGhpcy5nZXRXaWR0aCgpKnRoaXMuc2V0dGluZ3MucmF0aW8pKyJweCI6dGhpcy4kZWwucGFyZW50KCkuY3NzKCJoZWlnaHQiKTt0aGlzLiRlbC5hdHRyKCJoZWlnaHQiLGQpO3JldHVybiBwYXJzZUludChkLnJlcGxhY2UoInB4IiwiIikpfSxnZXRVcmw6ZnVuY3Rpb24oKXt2YXIgZD1nZXREYXRhQXR0cmlidXRlcyh0aGlzLmVsKSwKZT10aGlzLmdldFdpZHRoKCksaz10aGlzLmdldEhlaWdodCgpLGg9ZC5sYXQrIiwiK2QubG9uZyxuPWQuaGFzT3duUHJvcGVydHkoIm1hcmtlckljb24iKT8iaWNvbjoiK2QubWFya2VySWNvbisifCI6IiI7ZD1hLmV4dGVuZCh7c2l6ZTplKyJ4IitrLGNlbnRlcjpoLHpvb206IjEyIixtYXJrZXJzOm4raH0sZCk7cmV0dXJuImh0dHBzOi8vbWFwcy5nb29nbGVhcGlzLmNvbS9tYXBzL2FwaS9zdGF0aWNtYXA\/IithLnBhcmFtKGQpfSxkZXN0cm95OmZ1bmN0aW9uKCl7dGhpcy4kZWwucmVtb3ZlRGF0YSgpfX07YS5mbi5nb29nbGVTdGF0aWNNYXA9ZnVuY3Rpb24oZCl7dmFyIGU9YXJndW1lbnRzO2lmKDE+dGhpcy5sZW5ndGgpcmV0dXJuIHRoaXM7dGhpcy5lYWNoKGZ1bmN0aW9uKCl7aWYoIWEuZGF0YSh0aGlzLCJwbHVnaW5fc3RhdGljTWFwIikpcmV0dXJuIGEuZGF0YSh0aGlzLCJwbHVnaW5fc3RhdGljTWFwIixuZXcgYih0aGlzLGQpKSx0aGlzfSk7aWYoInN0cmluZyI9PT10eXBlb2YgZCYmCiJfIiE9PWRbMF0mJiJpbml0IiE9PWQpezE8dGhpcy5sZW5ndGgmJmNvbnNvbGUubG9nKCJnb29nbGVTdGF0aWNNYXAgd2FybmluZyBjb2RlIDEiKTt2YXIgaz1hLmRhdGEodGhpcy5maXJzdCgpWzBdLCJwbHVnaW5fc3RhdGljTWFwIik7cmV0dXJuIGtbZF0uYXBwbHkoayxBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChlLDEpKX1yZXR1cm4gdGhpc319KShqUXVlcnkpO2Z1bmN0aW9uIHBhcnNlUXVlcnkoYSl7aWYoMT5hLmxlbmd0aClyZXR1cm57fTtmb3IodmFyIGI9e30sYz1hLnNwbGl0KCImIiksZD0wO2Q8Yy5sZW5ndGg7ZCsrKWE9ZXhwbG9kZShjW2RdLCI9IiwxKSxiW2FbMF1dPWFbMV07cmV0dXJuIGJ9ZnVuY3Rpb24gZGVjb2RlU3RyaW5nKGEsYil7aWYoIiI9PWJ8fCJ1bmRlZmluZWQiPT1iKWI9MTtmb3IoaT0wO2k8YjtpKyspYT1kZWNvZGVVUklDb21wb25lbnQoYSk7cmV0dXJuIGF9CmZ1bmN0aW9uIGV4cGxvZGUoYSxiLGMpe2E9YS5zcGxpdChiKTtpZihhLmxlbmd0aDw9YylyZXR1cm4gYTtjPWEuc3BsaWNlKDAsYyk7Yy5wdXNoKGEuam9pbihiKSk7cmV0dXJuIGN9ZnVuY3Rpb24gZ2V0VXJsVmFycygpe3ZhciBhPXdpbmRvdy5sb2NhdGlvbi5zZWFyY2guc3Vic3RyaW5nKDEpO3JldHVybiBwYXJzZVF1ZXJ5KGEpfWZ1bmN0aW9uIGdldENvb2tpZShhKXtyZXR1cm4gQ29va2llcy5nZXQoYSl9ZnVuY3Rpb24gc2V0Q29va2llKGEsYixjKXtDb29raWVzLnNldChhLGIsYywiLyIpfWZ1bmN0aW9uIGdldENvb2tpZUQyYyhhKXtyZXR1cm4gQ29va2llcy5nZXQoYSl9ZnVuY3Rpb24gc2V0Q29va2llRDJjKGEsYixjKXtDb29raWVzLnNldChhLGIsYywiLyIpfWZ1bmN0aW9uIGlzU1NMKCl7cmV0dXJuImh0dHBzOiI9PT13aW5kb3cubG9jYXRpb24ucHJvdG9jb2x9ZnVuY3Rpb24gc2V0U2Vzc2lvbkNvb2tpZShhLGIpe0Nvb2tpZXMuc2V0KGEsYiwwLCIvIil9CmZ1bmN0aW9uIGluaXRMQ0koYSxiKXtpZigyMDxiKXJldHVybiBiO2I9Yj9iOjA7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBMQ19BUEl8fCJ1bmRlZmluZWQiPT10eXBlb2YgTENfSW52aXRlKXNldFRpbWVvdXQoZnVuY3Rpb24oKXtpbml0TENJKGEsKytiKX0sNTAwKTtlbHNlIGlmKCJ1bmRlZmluZWQiIT10eXBlb2YgTENfQVBJJiYidW5kZWZpbmVkIiE9dHlwZW9mIExDX0ludml0ZSYmYSlyZXR1cm4gTENfQVBJLnNldF9jdXN0b21fdmFyaWFibGVzKGEpfWZ1bmN0aW9uIGdldFJlZmVycmVyVmFyRnVuY3Rpb24oYSl7cmV0dXJuIGZ1bmN0aW9uKCl7IiI9PWEmJihhPWRvY3VtZW50LnJlZmVycmVyKTt2YXIgYj1hLmluZGV4T2YoIj8iKSsxO3JldHVybiAwPGI\/KGI9YS5zbGljZShiKSxwYXJzZVF1ZXJ5KGIpKTp7fX19CihmdW5jdGlvbihhKXt2YXIgYj17Y2FsbGJhY2tzOltdLGhhc1NjcmlwdDpmdW5jdGlvbigpe3ZhciBlPWEoJ2hlYWQgc2NyaXB0W3NyYyo9Im1hcHMuanMucGhwIl0nKTtyZXR1cm4gMD09ZS5sZW5ndGg\/ITE6L21hcHNcLmpzLy50ZXN0KGUuYXR0cigic3JjIikpfSxsb2FkOmZ1bmN0aW9uKGUpe2lmKGIuaGFzU2NyaXB0KCkpInVuZGVmaW5lZCI9PT10eXBlb2YgZ29vZ2xlP2IuY2FsbGJhY2tzLnB1c2goZSk6ZSgpO2Vsc2V7Yi5jYWxsYmFja3MucHVzaChlKTt0cnl7dmFyIGs9IkVOR0xJU0giPT1hKCIjYWN0aXZlc2l0ZWxhbmd1YWdlIikudmFsKCk\/ImVuIjoiZnIiOyhmdW5jdGlvbihoLG4seCx2LGYpe2hbZl0mJmhbZl0ubWFwc3x8KGg9bi5jcmVhdGVFbGVtZW50KHgpLG49bi5nZXRFbGVtZW50c0J5VGFnTmFtZSh4KVswXSxoLnNyYz12LGguYXN5bmM9ITEsZG9jdW1lbnQuYm9keS5hZGRFdmVudExpc3RlbmVyKCJnb29nbGVNYXBzTG9hZGVkIixnPT57Zm9yKGc9MDtnPGIuY2FsbGJhY2tzLmxlbmd0aDtnKyspYi5jYWxsYmFja3NbZ10uY2FsbCgpfSksCm4ucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoaCxuKSl9KSh3aW5kb3csZG9jdW1lbnQsInNjcmlwdCIsIi9qcy9tYXBzLmpzLnBocD9sYW5nPSIraywiZ29vZ2xlIil9Y2F0Y2goaCl7Y29uc29sZS5sb2coaCl9fX19LGM9e2F1dG9Db21wbGV0ZTp7Y29tcG9uZW50UmVzdHJpY3Rpb25zOntjb3VudHJ5OiJjYSJ9fSxyYWRpdXM6MUU1fSxkPWZ1bmN0aW9uKGUsayl7dmFyIGg9dGhpcztoLmVsPWU7aC4kZWw9YShlKTtoLnNldHRpbmdzPWEuZXh0ZW5kKGMsayk7aC5hZGRyZXNzPXtjaXR5OiIiLHN0cmVldF9udW1iZXI6IiIsc3RyZWV0OiIiLHN1YmxvY2FsaXR5OiIiLHByb3ZpbmNlOiIiLGNvdW50cnk6IiIscG9zdGFsOiIifTtoLiRlbC5vbmUoImZvY3VzIixmdW5jdGlvbigpe2guaW5pdCgpfSl9O2QucHJvdG90eXBlPXtfY2hlY2tGb3JHb29nbGVNYXBzOmZ1bmN0aW9uKGUpeyJ1bmRlZmluZWQiPT09dHlwZW9mIGdvb2dsZXx8InVuZGVmaW5lZCI9PT10eXBlb2YgZ29vZ2xlLm1hcHM\/CmIubG9hZChlKToiZnVuY3Rpb24iPT09dHlwZW9mIGUmJmUuY2FsbCgpfSxnZXRBZGRyZXNzOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuYWRkcmVzc30sX3NldEFkZHJlc3M6ZnVuY3Rpb24oZSl7dmFyIGs9dGhpczthLmVhY2goZSxmdW5jdGlvbihoLG4pe3N3aXRjaCghMCl7Y2FzZSAtMTxhLmluQXJyYXkoInN0cmVldF9udW1iZXIiLG4udHlwZXMpOmsuYWRkcmVzcy5zdHJlZXRfbnVtYmVyPW47YnJlYWs7Y2FzZSAtMTxhLmluQXJyYXkoInJvdXRlIixuLnR5cGVzKTprLmFkZHJlc3Muc3RyZWV0PW47YnJlYWs7Y2FzZSAtMTxhLmluQXJyYXkoInN1YmxvY2FsaXR5IixuLnR5cGVzKTprLmFkZHJlc3Muc3VibG9jYWxpdHk9bjticmVhaztjYXNlIC0xPGEuaW5BcnJheSgibG9jYWxpdHkiLG4udHlwZXMpOmNhc2UgLTE8YS5pbkFycmF5KCJhZG1pbmlzdHJhdGl2ZV9hcmVhX2xldmVsXzMiLG4udHlwZXMpOiIiPT1rLmFkZHJlc3MuY2l0eSYmKGsuYWRkcmVzcy5jaXR5PW4pO2JyZWFrOwpjYXNlIC0xPGEuaW5BcnJheSgiYWRtaW5pc3RyYXRpdmVfYXJlYV9sZXZlbF8xIixuLnR5cGVzKTprLmFkZHJlc3MucHJvdmluY2U9bjticmVhaztjYXNlIC0xPGEuaW5BcnJheSgiY291bnRyeSIsbi50eXBlcyk6ay5hZGRyZXNzLmNvdW50cnk9bjticmVhaztjYXNlIC0xPGEuaW5BcnJheSgicG9zdGFsX2NvZGUiLG4udHlwZXMpOmsuYWRkcmVzcy5wb3N0YWw9bn19KX0sX3NldFNlYXJjaEJvdW5kczpmdW5jdGlvbihlLGssaCl7az1uZXcgZ29vZ2xlLm1hcHMuTGF0TG5nKGssaCk7az1uZXcgZ29vZ2xlLm1hcHMuQ2lyY2xlKHtjZW50ZXI6ayxyYWRpdXM6dGhpcy5zZXR0aW5ncy5yYWRpdXN9KTtlLnNldEJvdW5kcyhrLmdldEJvdW5kcygpKX0saW5pdDpmdW5jdGlvbigpe3ZhciBlPXRoaXM7ZS5fY2hlY2tGb3JHb29nbGVNYXBzKGZ1bmN0aW9uKCl7dmFyIGs9bmV3IGdvb2dsZS5tYXBzLkdlb2NvZGVyLGg9bmV3IGdvb2dsZS5tYXBzLnBsYWNlcy5BdXRvY29tcGxldGUoZS5lbCwKZS5zZXR0aW5ncy5hdXRvQ29tcGxldGUpO2Uuc2V0dGluZ3MuaGFzT3duUHJvcGVydHkoImxhdCIpJiZlLnNldHRpbmdzLmhhc093blByb3BlcnR5KCJsb25nIik\/IiIhPT1lLnNldHRpbmdzLmxhdCYmIiIhPT1lLnNldHRpbmdzLmxvbmcmJmUuX3NldFNlYXJjaEJvdW5kcyhoLGUuc2V0dGluZ3MubGF0LGUuc2V0dGluZ3MubG9uZyk6ZS5zZXR0aW5ncy5oYXNPd25Qcm9wZXJ0eSgiYWRkcmVzcyIpP2Uuc2V0dGluZ3MuYWRkcmVzcyYmay5nZW9jb2RlKHthZGRyZXNzOmUuc2V0dGluZ3MuYWRkcmVzc30sZnVuY3Rpb24obix4KXtlLl9zZXRTZWFyY2hCb3VuZHMoaCxuWzBdLmdlb21ldHJ5LmxvY2F0aW9uLmxhdCgpLG5bMF0uZ2VvbWV0cnkubG9jYXRpb24ubG5nKCkpfSk6InVuZGVmaW5lZCIhPT10eXBlb2YgZm9vdGVyTWFwQWRkcmVzcyYmMDxmb290ZXJNYXBBZGRyZXNzLmxlbmd0aCYmay5nZW9jb2RlKHthZGRyZXNzOmZvb3Rlck1hcEFkZHJlc3NbMF0uYWRkcmVzc30sZnVuY3Rpb24obiwKeCl7ZS5fc2V0U2VhcmNoQm91bmRzKGgsblswXS5nZW9tZXRyeS5sb2NhdGlvbi5sYXQoKSxuWzBdLmdlb21ldHJ5LmxvY2F0aW9uLmxuZygpKX0pO2dvb2dsZS5tYXBzLmV2ZW50LmFkZExpc3RlbmVyKGgsInBsYWNlX2NoYW5nZWQiLGZ1bmN0aW9uKCl7dmFyIG49aC5nZXRQbGFjZSgpO2UuX3NldEFkZHJlc3Mobi5hZGRyZXNzX2NvbXBvbmVudHMpO2UuJGVsLnZhbChuLmZvcm1hdHRlZF9hZGRyZXNzKTtuPW5ldyBFdmVudCgiaW5wdXQiKTtlLmVsLmRpc3BhdGNoRXZlbnQobik7ZS4kZWwudHJpZ2dlcigiZm9jdXMiKX0pfSl9fTthLmZuLmdvb2dsZVBsYWNlcz1mdW5jdGlvbihlKXt2YXIgaz1hcmd1bWVudHM7aWYodm9pZCAwPT09ZXx8Im9iamVjdCI9PT10eXBlb2YgZSlyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7YS5kYXRhKHRoaXMsInBsdWdpbl9wbGFjZXMiKXx8YS5kYXRhKHRoaXMsInBsdWdpbl9wbGFjZXMiLG5ldyBkKHRoaXMsZSkpfSk7aWYoInN0cmluZyI9PT10eXBlb2YgZSYmCiJfIiE9PWVbMF0mJiJpbml0IiE9PWUpe3ZhciBoPWEuZGF0YSh0aGlzWzBdLCJwbHVnaW5fcGxhY2VzIik7cmV0dXJuIGhbZV0uYXBwbHkoaCxBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChrLDEpKX19fSkoalF1ZXJ5KTsKZnVuY3Rpb24gc2hvd0Jhbm5lclBvcHVwKGEpe3RyeXskKGEpLmhhc0NsYXNzKCJ0cmFkZWluTGluayIpJiYoMDxhLmdldEF0dHJpYnV0ZSgidGFyZ2V0VVJJIikuaW5kZXhPZigidHJhZGVpbnZhbHVlcyIpfHwwPGEuZ2V0QXR0cmlidXRlKCJ0YXJnZXRVUkkiKS5pbmRleE9mKCJpbnN0YW50b2ZmZXIuYWNjdS10cmFkZS5jb20iKSk\/c2hvd1RyYWRlSW5Qb3B1cChhLmdldEF0dHJpYnV0ZSgidGFyZ2V0VVJJIikpOjA8JCgiI2Jhbm5lclBvcHVwQ29udGFpbmVyIikubGVuZ3RoJiYkKCIjYmFubmVyUG9wdXBDb250YWluZXIiKS5wb3B1cGl6ZSgpLnNldFRyaWdnZXIoImNsaWNrIikub3BlbigpfWNhdGNoKGIpe2NvbnNvbGUmJmNvbnNvbGUubG9nJiZjb25zb2xlLmxvZygiVW5hYmxlIHRvIGRpc3BsYXkgdHJhZGVpbnZhbHVlcyBpZnJhbWUuIEVycm9yOiAiK2IubWVzc2FnZSl9fQokKGZ1bmN0aW9uKCl7MDwkKCdpbnB1dFtkYXRhLWdvb2dsZS1wbGFjZXM9InRydWUiXScpLmxlbmd0aCYmJCgnaW5wdXRbZGF0YS1nb29nbGUtcGxhY2VzPSJ0cnVlIl0nKS5nb29nbGVQbGFjZXMoKTsidW5kZWZpbmVkIiE9PXR5cGVvZiAkLmZuLmRhcmtUb29sdGlwJiYoJCgiI3NvY2lhbF9tZWRpYV9pY29uc19kaXYgYSwgLmdSYXRpbmctaWNvbiIpLmRhcmtUb29sdGlwKHtncmF2aXR5OiJub3J0aCIsb3BhY2l0eToxfSksJCgiLnNvY2lhbC1tZWRpYS1pY29ucyBbZGF0YS10b29sdGlwXSIpLmRhcmtUb29sdGlwKHtncmF2aXR5OiJzb3V0aCIsb3BhY2l0eToxfSksJCgiI21pdHN1YmlzaGlDZXJ0aWZpZWRGb290ZXIgYS5zb2NpYWwtbWVkaWFfX2ljb24sICNoeXVuZGFpQ2VydGlmaWVkRm9vdGVyIGEuc29jaWFsLW1lZGlhX19pY29uIikuZGFya1Rvb2x0aXAoe2dyYXZpdHk6InNvdXRoIixvcGFjaXR5OjF9KSk7dmFyIGE9JCgiLmdyYXlib3gudXNlZERldGFpbHNQaG9uZSwgLmdyYXlib3gubmV3RGV0YWlsc1Bob25lIik7CjA9PT1hLmNoaWxkcmVuKCkubGVuZ3RoJiYwPT09YS50ZXh0KCkudHJpbSgpLmxlbmd0aCYmYS5oaWRlKCl9KTskKCIjZmluYW5jZUFsdERpc3BsYXkgLnN0ZXAxIGJpZy50ZXh0IGJpZyIpLmF0dHIoImRhdGEtZGVwYXJ0bWVudCIsIkZpbmFuY2UiKTskKCIuY3JlZGl0X21fY2FsbHVzX3dyYXBwZXIgYSIpLmF0dHIoImRhdGEtZGVwYXJ0bWVudCIsIkZpbmFuY2UiKTsKJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKXskKCIjZGl2Q2VydGlmaWNhdGlvbi1jYXJndXJ1cy13cmFwcGVyIikubGVuZ3RoJiYoZWxlbWVudFRvT2JzZXJ2ZT13aW5kb3cuZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRpdkNlcnRpZmljYXRpb24tY2FyZ3VydXMtd3JhcHBlciIpLmNoaWxkcmVuWzBdLG9ic2VydmVyPW5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKGEsYil7Yj0kKCIjZGl2Q2VydGlmaWNhdGlvbi1jYXJndXJ1cy13cmFwcGVyIik7bGV0IGM9JCgic3BhbltkYXRhLWNnLWVycm9yXSIsYik7Y29uc29sZS5sb2coIkQyQ0ciLGIsYyxhKTtjLmxlbmd0aCYmYi5yZW1vdmUoKX0pLG9ic2VydmVyLm9ic2VydmUoZWxlbWVudFRvT2JzZXJ2ZSx7Y2hhcmFjdGVyRGF0YTohMSxjaGlsZExpc3Q6ITAsYXR0cmlidXRlczohMX0pKX0pOyQoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKCl7LTE8d2luZG93LmxvY2F0aW9uLmhyZWYuaW5kZXhPZigiL25ldy8iKXx8JCgiI25ldy12ZHAtc3BlYy1icm9jaHVyZSIpLmhpZGUoKX0pOwokKGZ1bmN0aW9uKCl7JCgiI0Zvb3Rlcl9GSU5BTkNFID4gYSwgYSNGaW5hbmNlQWN0aW9uQm94LCBhI0ZpbmFuY2VBY3Rpb25Cb3hMaW5rIikub24oIm1vdXNlZW50ZXIgbW91c2VsZWF2ZSIsZnVuY3Rpb24oKXt2YXIgYT0kKHRoaXMpLGI9JCgiaHRtbCIpLmF0dHIoImxhbmciKTtpZigwPCQoIiNERUFMRVJQQUNPREUiKS5sZW5ndGgpe3ZhciBjPSQoIiNERUFMRVJQQUNPREUiKS52YWwoKSxkPSQoIiNERUFMRVJCUkFORF9QUklNQVJZIikudmFsKCkudG9Mb3dlckNhc2UoKTtpZigiZm9yZF9saW5jb2xuX2V4dGVybmFsIj09JCgiI0ZJTkFOQ0VGT1JNVFlQRSIpLnZhbCgpJiYoImZvcmQiPT1kfHwibGluY29sbiI9PWQpJiYiIiE9Yyl7dmFyIGU9KCJlbiI9PWI\/Imh0dHBzOi8vd3d3LmZvcmQuY2EvZmluYW5jZS9hcHBseS8xP1NvdXJjZU9mRGF0YT1DQURDRiZkZWFsZXJJZD0iOiJodHRwczovL2ZyLmZvcmQuY2EvZmluYW5jZS9hcHBseS8xP1NvdXJjZU9mRGF0YT1DQURDRiZkZWFsZXJJZD0iKSsKYztiPSgiZW4iPT1iPyJodHRwczovL3d3dy5saW5jb2xuY2FuYWRhLmNvbS9maW5hbmNlL2FwcGx5LzE\/U291cmNlT2ZEYXRhPUNBRENMJmRlYWxlcklkPSI6Imh0dHBzOi8vZnIubGluY29sbmNhbmFkYS5jb20vZmluYW5jZS9hcHBseS8xP1NvdXJjZU9mRGF0YT1DQURDTCZkZWFsZXJJZD0iKStjO2Eub2ZmKCJjbGljayIpO2EuYXR0cigiaHJlZiIsImZvcmQiPT1kP2U6Yik7YS5hdHRyKCJ0YXJnZXQiLCJfYmxhbmsiKX19fSl9KTsKJCh3aW5kb3cpLm9uKCJsb2FkIixmdW5jdGlvbigpe3RyeXtpZihnZXRQYXJhbWV0ZXJCeU5hbWUoInByb21vIikpe3ZhciBhPTA8YWN0aXZhdGVkUG9wdXBEaXZJRC5sZW5ndGg\/YWN0aXZhdGVkUG9wdXBEaXZJRDohMTtpZihhJiYwPGEubGVuZ3RoKXt2YXIgYj0kKCIjIithKS5wb3B1cGl6ZSh7cHJpb3JpdHk6MTAwLGVuZFBvcHVwUXVldWU6ITB9KTtwb3B1cFN1cGVydmlzb3IucmVnaXN0ZXIoYil9fSJvYmplY3QiPT10eXBlb2YgcG9wdXBTdXBlcnZpc29yJiZzZXRUaW1lb3V0KHBvcHVwU3VwZXJ2aXNvci5zaG93LDUwMCl9Y2F0Y2goYyl7Y29uc29sZS5sb2coYyl9fSk7CiQoZnVuY3Rpb24oKXskKCIubmF2IGEiKS5vbigiY2xpY2siLGZ1bmN0aW9uKGEpeyJ1bmRlZmluZWQiIT10eXBlb2YgYWN0aXZlVXNlclByb2ZpbGVNbmcmJiJ1bmRlZmluZWQiIT10eXBlb2YgYWN0aXZlVXNlclByb2ZpbGVNbmcubG9nUGFnZVZpZXdFdmVudCYmKChhPSQodGhpcykuYXR0cigiaHJlZiIpKSYmIVJlZ0V4cCgiamF2YXNjcmlwdDoiLCJnaSIpLnRlc3QoYSkmJmFjdGl2ZVVzZXJQcm9maWxlTW5nLmxvZ1BhZ2VWaWV3RXZlbnQoYSwiTUVOVV9jbGlja2VkX1VSTCIpLChhPSIvIj09YT8iSG9tZSI6JCh0aGlzKS50ZXh0KCkpJiZhY3RpdmVVc2VyUHJvZmlsZU1uZy5sb2dQYWdlVmlld0V2ZW50KGEsIk1FTlVfY2xpY2tlZF9JTkZPIikpfSl9KTsKdmFyIEQyQ1V0aWxzPXtMYW5nOntpc0VOOmZ1bmN0aW9uKCl7cmV0dXJuISgiZnVuY3Rpb24iPT09dHlwZW9mICQmJiQoIkJPRFkiKS5oYXNDbGFzcygiRlJFTkNIIikpfSxnZXRTaG9ydExhbmc6ZnVuY3Rpb24oYSl7cmV0dXJuIEQyQ1V0aWxzLkxhbmcuaXNFTigpP2E\/IkVOIjoiZW4iOmE\/IkZSIjoiZnIifX0sRm9ybWF0Ont0b051bWJlcjpmdW5jdGlvbihhKXthPWEudG9TdHJpbmcoKS5zcGxpdCgiLiIpO2Zvcih2YXIgYj0vKFxkKykoXGR7M30pLztiLnRlc3QoYVswXSk7KWFbMF09YVswXS5yZXBsYWNlKGIsIiQxLCQyIik7cmV0dXJuIGFbMF19LHRvUHJpY2U6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYj8oYj1EMkNVdGlscy5MYW5nLmlzRU4oKT8iIjoiICQiLGAke0QyQ1V0aWxzLkxhbmcuaXNFTigpPyIkIjoiIn0ke0QyQ1V0aWxzLkZvcm1hdC50b051bWJlcihhKX0ke2J9YCk6YDxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPiR7RDJDVXRpbHMuRm9ybWF0LnRvTnVtYmVyKGEpfTwvc3Bhbj5gfX0sCk51bWJlcjp7cm91bmREb3duOmZ1bmN0aW9uKGEpe3ZhciBiPTI9PT1hcmd1bWVudHMubGVuZ3RoP3BhcnNlSW50KGFyZ3VtZW50c1sxXSk6MTtyZXR1cm4gTWF0aC5mbG9vcihhL2IpKmJ9LHJvdW5kVXA6ZnVuY3Rpb24oYSl7dmFyIGI9Mj09PWFyZ3VtZW50cy5sZW5ndGg\/cGFyc2VJbnQoYXJndW1lbnRzWzFdKToxO3JldHVybiBNYXRoLmNlaWwoYS9iKSpifX0sQXJyYXlzOntmaW5kOmZ1bmN0aW9uKGEsYixjKXt2YXIgZD1hLmxlbmd0aDtpZigwPGQpZm9yKHZhciBlPTA7ZTxkO2UrKylpZihhW2VdW2JdPT1jKXJldHVybiBhW2VdO3JldHVybi0xfX0sU3RyaW5nOntjYXBpdGFsaXplRmlyc3RMZXR0ZXI6ZnVuY3Rpb24oYSl7cmV0dXJuIFN0cmluZyhhKS5jaGFyQXQoMCkudG9VcHBlckNhc2UoKStTdHJpbmcoYSkuc2xpY2UoMSl9fSxNb2JpbGU6e2lzTW9iaWxlOmZ1bmN0aW9uKCl7cmV0dXJuIDA8JCgiI2lzTW9iaWxlIikubGVuZ3RofX19OwpmdW5jdGlvbiBzZXR1cEZpbmFuY2luZ0xpbmsoYSxiKXs0ODU9PSgkKCIjc2l0ZUlEIikudmFsKCl8fCQoIiN0b3BzaXRlaWQiKS52YWwoKSkmJmIuY2xlYXJhbmNlJiYwPGEubGVuZ3RoJiYoYj0kKCIjTWFpbk1lbnVfZjQ4MmJhYWItYWFjNC1lZGE2LTZiNTItMyA+IGEiKSwwPT1iLmxlbmd0aCYmKGI9JCgiLkNMRUFSQU5DRSIpLnBhcmVudCgpLmZpbmQoIi5zdWJtZW51SXRlbTpmaXJzdC1jaGlsZCIpKSwwPGIubGVuZ3RoJiYoYj1iLmF0dHIoImhyZWYiKSwiIiE9PWImJmEuYXR0cigiaHJlZiIsYikpKX12YXIgb3BlbldpbmRvd3M9W10sd2luZG93T3Blbk9HPXdpbmRvdy5vcGVuOwp3aW5kb3cub3Blbj1mdW5jdGlvbigpe3ZhciBhPXdpbmRvd09wZW5PRy5hcHBseSh0aGlzLGFyZ3VtZW50cyksYj17d2luZG93OmEsYXJnczphcmd1bWVudHN9O29wZW5XaW5kb3dzLnB1c2goYik7InVuZGVmaW5lZCIhPT10eXBlb2YgalF1ZXJ5JiZqUXVlcnkoZG9jdW1lbnQpLnRyaWdnZXIoIndpbmRvdy5vcGVuIixiKTtyZXR1cm4gYX07CiQoZnVuY3Rpb24oKXskKGRvY3VtZW50KS5vbigid2luZG93Lm9wZW4iLGZ1bmN0aW9uKGEsYil7YT1iLmFyZ3M7Zm9yKHZhciBjPSExLGQ9MDtkPGEubGVuZ3RoO2QrKylpZigtMTxhW2RdLmluZGV4T2YoImNhcmZheCIpfHxhW2RdLmluZGV4T2YoImNhcnByb29mIikpe2M9ITA7YnJlYWt9aWYoYyl7YT13aW5kb3cuc2NyZWVuLmF2YWlsSGVpZ2h0fHx3aW5kb3cuaW5uZXJIZWlnaHR8fGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHR8fGRvY3VtZW50LmJvZHkuY2xpZW50SGVpZ2h0O3RyeXtiLndpbmRvdy5yZXNpemVUbyhiLndpbmRvdy5vdXRlcldpZHRoLE1hdGgucm91bmQoLjk1KmEpKX1jYXRjaChlKXt9fX0pfSk7CiQoZnVuY3Rpb24oKXt2YXIgYT0kKCIudXBfbWVudSIpLGI9JCgiLnByb21vdGlvblNpZGVWQnV0dG9uIiksYz0kKCcjc2xpZGVpdCA+IGxhYmVsW2Zvcj0ib3Blbi1pdGVtIl06bm90KC50ZXh0LXVzLWJ0biknKTtpZihhLmxlbmd0aCYmYi5sZW5ndGgpe3ZhciBkPSExLGU9ZnVuY3Rpb24oKXt2YXIgaz0kKHdpbmRvdykuc2Nyb2xsVG9wKCksaD0kKHdpbmRvdykuaGVpZ2h0KCk7az1hLm9mZnNldCgpLnRvcCthLm91dGVySGVpZ2h0KCkrMTAwLWs7aD1NYXRoLm1heChoLzIsayk7Yi5wYXJlbnQoKS5oYXNDbGFzcygic3BlY2lhbFNjaGVkdWxlQ29udGVudCIpfHwic3BlY2lhbFNjaGVkdWxlQ29udGVudCI9PWIucGFyZW50KCkuYXR0cigiaWQiKXx8Yi5jc3Moe3Bvc2l0aW9uOiJmaXhlZCIsdG9wOmgrInB4Iix0cmFuc2Zvcm06InRyYW5zbGF0ZVkoLTUwJSkiLHRyYW5zaXRpb246Im5vbmUifSk7Yy5sZW5ndGgmJihoPWJbMF0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuYm90dG9tLApjLmNzcyh7cG9zaXRpb246ImZpeGVkIix0b3A6aCs1KyJweCJ9KSk7ZD0hMX07JCh3aW5kb3cpLm9uKCJzY3JvbGwgcmVzaXplIixmdW5jdGlvbigpe2R8fCh3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKGUpLGQ9ITApfSk7c2V0VGltZW91dChlLDEwMCl9fSk7ZnVuY3Rpb24gcmVwbGFjZVVzZWRWZWhpY2xlTW9kZWxEaXNwbGF5KGEpe2lmKCJzdHJpbmciPT09dHlwZW9mIGF8fGEgaW5zdGFuY2VvZiBTdHJpbmcpImZ1bmN0aW9uIj09PXR5cGVvZiAkJiYkKCJCT0RZIikuaGFzQ2xhc3MoIkZSRU5DSCIpfHwtMSE9PWEuaW5kZXhPZigiSHlicmlkZSIpJiYoYT1hLnJlcGxhY2UoIkh5YnJpZGUiLCJIeWJyaWQiKSk7cmV0dXJuIGF9CiQoZnVuY3Rpb24oKXtpZigkKCIucGF5cGFsX2J1dHRvbl9odG1sIikubGVuZ3RoKXt2YXIgYT0kKCJCT0RZIikuaGFzQ2xhc3MoIkZSRU5DSCIpPyJmciI6ImVuIixiPSQoIkJPRFkiKS5oYXNDbGFzcygiRlJFTkNIIik\/IlLDqXNlcnZlei1sZSBhdmVjIFBheVBhbCAhIjoiUmVzZXJ2ZSBpdCAgd2l0aCBQYXlQYWwgISI7JCgiLnBheXBhbF9idXR0b25faHRtbCIpLmZpbmQoJ2lucHV0W3R5cGU9ImltYWdlIl1bbmFtZT0ic3VibWl0Il0nKS5hdHRyKCJzcmMiLCIvaW1hZ2VzL2NvbnRpbnVlX3dpdGhfcGF5cGFsXyIrYSsiLnBuZyIpOyQoIi5wYXlwYWxfYnV0dG9uX2h0bWwiKS5maW5kKCJmb3JtIikuYXR0cigidGFyZ2V0IiwicGF5cGFsSWZyYW1lIik7JCgiLnBheXBhbF9idXR0b25faHRtbCIpLmZpbmQoInRhYmxlIHRyOmZpcnN0IHRkIikuY29udGVudHMoKS5maWx0ZXIoZnVuY3Rpb24oKXtyZXR1cm4gMz09dGhpcy5ub2RlVHlwZX0pLmZpcnN0KCkucmVwbGFjZVdpdGgoYik7JCgiLnBheXBhbF9idXR0b25faHRtbCBmb3JtIikuZmluZCgnW25hbWU9Iml0ZW1fbmFtZSJdJykucmVtb3ZlKCk7CiQoIi5wYXlwYWxfYnV0dG9uX2h0bWwgZm9ybSIpLmZpbmQoJ1tuYW1lPSJpdGVtX251bWJlciJdJykucmVtb3ZlKCk7YT0nPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iaXRlbV9uYW1lIiB2YWx1ZT0iJyskKCIjcGhvbmVtYWtlIikudmFsKCkrIiAiKyQoIiNwaG9uZW1vZGVsIikudmFsKCkrIiAiKyQoIiNwaG9uZW15ZWFyIikudmFsKCkrIiBTdG9jaygjIiskKCIjcGhvbmVzdG9ja251bWJlciIpLnZhbCgpKycpIj4nOyQoIi5wYXlwYWxfYnV0dG9uX2h0bWwgZm9ybSIpLmFwcGVuZChhKTskKCIucGF5cGFsX2J1dHRvbl9odG1sIikuZmluZCgnaW5wdXRbdHlwZT0iaW1hZ2UiXVtuYW1lPSJzdWJtaXQiXScpLm9uKCJjbGljayIsZnVuY3Rpb24oKXtnYVRyYWNrKCJjLl90cmFja0V2ZW50IiwiQ2xpcXVlcyBQYXlQYWwiLCJPY2Nhc2lvbiIsJCgiI2hpZGRlbkRlYWxlck5hbWUiKS52YWwoKSsiLSIrJCgiI3Bob25lbWFrZSIpLnZhbCgpKyItIiskKCIjcGhvbmVtb2RlbCIpLnZhbCgpKwoiLSIrJCgiI3Bob25lbXllYXIiKS52YWwoKSsiLSIrJCgiI3Bob25lc3RvY2tudW1iZXIiKS52YWwoKSwxKX0pOyQoIiNwYXlwYWxQb3B1cCIpLmRldGFjaCgpLmFwcGVuZFRvKCJib2R5Iik7JCgnLnBheXBhbF9idXR0b25faHRtbCBpbnB1dFtuYW1lPSJzdWJtaXQiXScpLm9uKCJjbGljayIsZnVuY3Rpb24oKXskKCIjcGF5cGFsUG9wdXAiKS5wb3B1cGl6ZSgpLnNldFRyaWdnZXIoImNsaWNrIikub3BlbigpfSk7JCgiLnBheXBhbF9idXR0b25faHRtbCIpLnNob3coKX0kKCIjdGVzdERyaXZlVHlwZSIpLmxlbmd0aCYmKCJWaXJ0dWFsIj09JCgiI3Rlc3REcml2ZVR5cGUiKS52YWwoKXx8IlZpcnR1ZWwiPT0kKCIjdGVzdERyaXZlVHlwZSIpLnZhbCgpKSYmJCgiLnByZWZlcmVkVmlydHVhbFRvb2wiKS5zaG93KCl9KTsKZnVuY3Rpb24gcHJpY2VSZXF1ZXN0Q29tbWVudFRleHQoKXt2YXIgYT0kKCIjYWN0aXZlc2l0ZWxhbmd1YWdlIiksYj0kKCIjaXNtb2JpbGUiKSxjPSQoIiNxdWVzdGlvbnNDb21tZW50cyIpO2E9IkVOR0xJU0giPT1hLnZhbCgpPyJIaSwgSSdkIGxpa2UgdG8gZ2V0IHlvdXIgYmVzdCBwcmljZSBvbiBhIDAgICI6IkJvbmpvdXIsIGonYWltZXJhaXMgYXZvaXIgdm90cmUgbWVpbGxldXJzIHByaXggcG91ciB1biAgIDAiOzA8Yi5sZW5ndGgmJiIxIj09Yi52YWwoKSYmMDxjLmxlbmd0aCYmYy52YWwoKT09YSYmYy52YWwoIiIpfSQoZnVuY3Rpb24oKXtwcmljZVJlcXVlc3RDb21tZW50VGV4dCgpfSk7CiQoZnVuY3Rpb24oKXt2YXIgYT0kKCIjZm9vdGVyIC5pY29uLXRleHQgc3BhbltpdGVtcHJvcD0ndGVsZXBob25lJ10gYS5waG9uZS1saW5rIiksYj0kKCIjZm9vdGVyIC5pY29uLXRleHQgLmZhLXBob25lIik7MDxhLmxlbmd0aCYmMDxiLmxlbmd0aCYmIiI9PWEuaHRtbCgpLnRyaW0oKSYmYi5oaWRlKCl9KTsKZnVuY3Rpb24gcGFnZVZpZXdDb3VudEdvb2dsZUV2ZW50KCl7dmFyIGE9d2luZG93LmxvY2F0aW9uLnBhdGhuYW1lLGI9MCxjPXNlc3Npb25TdG9yYWdlLmdldEl0ZW0oImQyY19WRFBNViIpO251bGwhPWM\/KGM9SlNPTi5wYXJzZShjKSxiPW51bGwhPWNbYV0\/Y1thXTowLGNbYV09cGFyc2VJbnQoYikrMSk6KGM9e30sY1thXT0xKTthPSIxIj09JCgiI25ld1NlY3Rpb25PdmVycmlkZSIpLnZhbCgpPyJORVciOiQoIiNkZWZhdWx0RGVwYXJ0bWVudCIpLnZhbCgpOzA9PWI\/Z2FUcmFjaygiYy5fdHJhY2tFdmVudCIsIlZEUCBtdWx0aXBsZSB2aWV3cyIsYSwiMXgiLDEpOjE9PWI\/Z2FUcmFjaygiYy5fdHJhY2tFdmVudCIsIlZEUCBtdWx0aXBsZSB2aWV3cyIsYSwiMngiLDEpOmdhVHJhY2soImMuX3RyYWNrRXZlbnQiLCJWRFAgbXVsdGlwbGUgdmlld3MiLGEsIjN4KyIsMSk7c2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSgiZDJjX1ZEUE1WIixKU09OLnN0cmluZ2lmeShjKSl9CiQuZm4uaXNJblZpZXdwb3J0PWZ1bmN0aW9uKCl7dmFyIGE9JCh0aGlzKS5vZmZzZXQoKS50b3AsYj1hKyQodGhpcykub3V0ZXJIZWlnaHQoKSxjPSQod2luZG93KS5zY3JvbGxUb3AoKSxkPWMrJCh3aW5kb3cpLmhlaWdodCgpO3JldHVybiBiPmMmJmE8ZH07JC5mbi5pc0Fib3ZlVmlld3BvcnQ9ZnVuY3Rpb24oYSl7YT1hfHwwO3ZhciBiPSQodGhpcykub2Zmc2V0KCkudG9wKyQodGhpcykub3V0ZXJIZWlnaHQoKSxjPSQod2luZG93KS5zY3JvbGxUb3AoKTtyZXR1cm4gYj5jK2F9O2Z1bmN0aW9uIHNldFBvcHVwT3Blbk9uQ2xpY2soKXskKCJbZGF0YS1wb3B1cGlkXSIpLmVhY2goZnVuY3Rpb24oKXt2YXIgYT0kKHRoaXMpLmF0dHIoImRhdGEtcG9wdXBpZCIpOyQodGhpcykub24oImNsaWNrIHRhcCIsZnVuY3Rpb24oYil7Yi5wcmV2ZW50RGVmYXVsdCgpOyQoIiMiK2EpLnBvcHVwaXplKCkuc2V0VHJpZ2dlcigiY2xpY2siKS5vcGVuKCl9KX0pfQpmdW5jdGlvbiBhZGREZWFsZXJJbnNpZGVTY3JpcHQoKXtpZigkKCIuZGVhbGVyLWluc2lkZS1jdGEtYWN0aW9uLWJveCIpLmxlbmd0aCl7dmFyIGE9JCgiLmRlYWxlci1pbnNpZGUtY3RhLWFjdGlvbi1ib3giKS5hdHRyKCJkYXRhLWlkRGVhbGVyIiksYj0kKCIuZGVhbGVyLWluc2lkZS1jdGEtYWN0aW9uLWJveCIpLmF0dHIoImRhdGEtbGFuZyIpLGM9JCgiLmRlYWxlci1pbnNpZGUtY3RhLWFjdGlvbi1ib3giKS5hdHRyKCJkYXRhLWJ1dHRvbi10eXBlIiksZD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKTtkLnNldEF0dHJpYnV0ZSgidHlwZSIsInRleHQvamF2YXNjcmlwdCIpO2Quc2V0QXR0cmlidXRlKCJzcmMiLCJodHRwczovL2RlYWxlcmluc2lkZWFwcC5jb20vd2lkZ2V0cy9kZWFsZXJfaW5zaWRlX2NhbGwuanM\/ZGVhbGVySWQ9IithKyImbGFuZz0iK2IrIiZidXR0b25UeXBlPSIrYyk7ZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImhlYWQiKVswXS5hcHBlbmRDaGlsZChkKX19CiQoZnVuY3Rpb24oKXtzZXRQb3B1cE9wZW5PbkNsaWNrKCk7YWRkRGVhbGVySW5zaWRlU2NyaXB0KCl9KTtmdW5jdGlvbiBtb3RvaW5zaWdodFNob3BHb29nbGVPcHRpbWl6ZSgpeyQoIiNqcy1tb3RvaW5zaWdodFNob3BQb3B1cENvbnRhaW5lci1pbnB1dCIpLmxlbmd0aCYmJCgiLmpzLW1vdG9pbnNpZ2h0U2hvcFBvcHVwQ29udGFpbmVyIikubGVuZ3RoJiYkKCIuanMtbW90b2luc2lnaHRTaG9wUG9wdXBDb250YWluZXIiKS5hdHRyKCJkYXRhLW1vdG9pbnNpZ2h0c2hvcGlmcmFtZXVybCIsJCgiI2pzLW1vdG9pbnNpZ2h0U2hvcFBvcHVwQ29udGFpbmVyLWlucHV0IikudmFsKCkpfWZ1bmN0aW9uIGh0bWxUb05vZGUoYSl7dmFyIGI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Yi5pbm5lckhUTUw9YS50cmltKCk7cmV0dXJuIGIuZmlyc3RFbGVtZW50Q2hpbGR9CmZ1bmN0aW9uIGh0bWxUb0RvY3VtZW50RnJhZyhhKXtyZXR1cm4gZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKS5jcmVhdGVDb250ZXh0dWFsRnJhZ21lbnQoYSl9ZnVuY3Rpb24gaHRtbFRvRWxlbWVudHMoYSl7dmFyIGI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidGVtcGxhdGUiKTtiLmlubmVySFRNTD1hO3JldHVybiBiLmNvbnRlbnQuY2hpbGROb2Rlc30KY29uc3Qgdmlld1BvcnRPYnNlcnZlcj1mdW5jdGlvbihhKXtsZXQgYj0hMSxjPSExLGQ9NTA7Y29uc3QgZT1rPT57az1rWzBdO2xldCBoPS4wMT49ay5pbnRlcnNlY3Rpb25SYXRpbyYmay5ib3VuZGluZ0NsaWVudFJlY3QudG9wPGQ7Yy5jbGFzc0xpc3QudG9nZ2xlKCJ0b3AtZml4ZWQiLGgpO2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5zbXNDdGFCdG4iKS5mb3JFYWNoKG49Pm4uaGlkZGVuPSFoKTtudWxsIT09ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRvYXN0LWNvbnRhaW5lciIpJiYoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRvYXN0LWNvbnRhaW5lciIpLmhpZGRlbj0haCl9O3JldHVybntvYnNlcnZlOigpPT57aWYoYSl7ZCs9YS5vZmZzZXRIZWlnaHQrMTY7dmFyIGs9YS5jbG9zZXN0KCIub2JzZXJ2ZWQtd3JhcHBlciIpfHwhMTtpZighayl7bGV0IGg9aHRtbFRvTm9kZSgnPGRpdiBjbGFzcz0iZml4ZWQtd3JhcHBlciI+PC9kaXY+Jyk7az1odG1sVG9Ob2RlKCc8ZGl2IGNsYXNzPSJvYnNlcnZlZC13cmFwcGVyIj48L2Rpdj4nKTsKYS5hZnRlcihrKTtrLmFwcGVuZENoaWxkKGgpO2guYXBwZW5kQ2hpbGQoYSk7ay5zdHlsZS5oZWlnaHQ9YCR7aC5vZmZzZXRIZWlnaHR9cHhgfWI9aztjPWIucXVlcnlTZWxlY3RvcigiLmZpeGVkLXdyYXBwZXIiKTsobmV3IEludGVyc2VjdGlvbk9ic2VydmVyKGUse3Jvb3RNYXJnaW46YC0ke2R9cHggMHB4IDBweCAwcHhgLHRocmVzaG9sZDpbMCwuMDFdfSkpLm9ic2VydmUoYil9fX19OwpmdW5jdGlvbiBkMmNGb290ZXJEZWxldGVBbGxDb29raWVzKGEpe2xvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCJkMmZhdkRhdGEiKTtsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgiZm9ybUZpbGxEYXRhIik7bG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oImZpbmFuY2VfbXVsdGlzdGVwX2Zvcm1fdXNlcklkIik7bG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oImZpbmFuY2VfbXVsdGlzdGVwLmxpbmVhcl9zdGVwIik7dmFyIGI9d2luZG93LmxvY2F0aW9uLmhvc3RuYW1lLGM9YjtiPWIucmVwbGFjZSgid3d3LiIsIiIpO3ZhciBkPWI9Yi5yZXBsYWNlKCJtLiIsIiIpO2IuaW5jbHVkZXMoImQyY21lZGlhLmNhIikmJihiPSJkMmNtZWRpYS5jYSIpO2Zvcih2YXIgZT1kb2N1bWVudC5jb29raWUuc3BsaXQoIjsiKSxrPTA7azxlLmxlbmd0aDtrKyspe3ZhciBoPWVba10sbj1oLmluZGV4T2YoIj0iKTtoPS0xPG4\/aC5zdWJzdHIoMCxuKTpoOyJkMmNfY29va2llX2NvbnNlbnQiIT1oLnRyaW0oKSYmIk9wdGFub25BbGVydEJveENsb3NlZCIhPQpoLnRyaW0oKSYmIk9wdGFub25Db25zZW50IiE9aC50cmltKCkmJihoPWgudHJpbSgpLGRvY3VtZW50LmNvb2tpZT1oKyI9O1BhdGg9Lztkb21haW49LiIrYisiO2V4cGlyZXM9VGh1LCAwMSBKYW4gMTk3MCAwMDowMDowMCBHTVQiLGRvY3VtZW50LmNvb2tpZT1oKyI9O1BhdGg9Lztkb21haW49IitiKyI7ZXhwaXJlcz1UaHUsIDAxIEphbiAxOTcwIDAwOjAwOjAwIEdNVCIsZG9jdW1lbnQuY29va2llPWgrIj07UGF0aD0vO2RvbWFpbj0iK2MrIjtleHBpcmVzPVRodSwgMDEgSmFuIDE5NzAgMDA6MDA6MDAgR01UIixkb2N1bWVudC5jb29raWU9aCsiPTtQYXRoPS87ZG9tYWluPS4iK2QrIjtleHBpcmVzPVRodSwgMDEgSmFuIDE5NzAgMDA6MDA6MDAgR01UIixkb2N1bWVudC5jb29raWU9aCsiPTtQYXRoPS87ZG9tYWluPSIrZCsiO2V4cGlyZXM9VGh1LCAwMSBKYW4gMTk3MCAwMDowMDowMCBHTVQiLGRvY3VtZW50LmNvb2tpZT1oKyI9O1BhdGg9Lztkb21haW49LmQyY21lZGlhLmNhO2V4cGlyZXM9VGh1LCAwMSBKYW4gMTk3MCAwMDowMDowMCBHTVQiLApkb2N1bWVudC5jb29raWU9aCsiPTtQYXRoPS87ZG9tYWluPWQyY21lZGlhLmNhO2V4cGlyZXM9VGh1LCAwMSBKYW4gMTk3MCAwMDowMDowMCBHTVQiLGRvY3VtZW50LmNvb2tpZT1oKyI9O2V4cGlyZXM9VGh1LCAwMSBKYW4gMTk3MCAwMDowMDowMCBHTVQiLGRvY3VtZW50LmNvb2tpZT1oKyI9O1BhdGg9LztleHBpcmVzPVRodSwgMDEgSmFuIDE5NzAgMDA6MDA6MDAgR01UIixjb25zb2xlLmxvZygiRDJEQyIsaCxiKSxrPT1wYXJzZUZsb2F0KGUubGVuZ3RoKS0xJiYoInVuZGVmaW5lZCI9PT10eXBlb2YgYSYmJCgiI2QyY0Zvb3RlckNvb2tpZURlbGV0ZSIpLnBvcHVwaXplKCkuc2V0VHJpZ2dlcigiY2xpY2siKS5vcGVuKCksc2V0VGltZW91dChkMmNGb290ZXJEZWxldGVBbGxDb29raWVzUmVmcmVzaCwyRTMpKSl9cmV0dXJuITB9CmZ1bmN0aW9uIGQyY0Zvb3RlckRlbGV0ZUFsbENvb2tpZXNSZWZyZXNoKCl7d2luZG93LnRvcD09PXdpbmRvdy5zZWxmJiZsb2NhdGlvbi5yZWxvYWQoKX0Kd2luZG93Lmdvb2dsZVJlY2FwdGNoYT1mdW5jdGlvbigpe3ZhciBhPXtwb2xpY3lTaXRlS2V5OiI2TGN4MjhRc0FBQUFBSHBiVGJ3U05jUWZtaDNqOXBZMHp0RjFvQlVSIixjaGVja2JveFNpdGVLZXk6anNfZDJjX2dldF92YWwoIklTVk0iKT8iNkxkQVpNWXNBQUFBQUROMHJPM3laMzRvc0xCdU01R0pHV1lCX09nOSI6IjZMZUtlY1lzQUFBQUFBMFlhN0hVTWVEMTc3ZDZfUHNiY21qMDlWbkYiLGRlZmF1bHRBY3Rpb246ImxlYWRfc3VibWl0Iixsb2FkZWQ6ITEsY2hlY2tib3hlczp7fSxhY3RpdmVGb3JtSWQ6bnVsbCxpc1JlYWR5OmZ1bmN0aW9uKCl7cmV0dXJuIGEubG9hZGVkJiZ3aW5kb3cuZ3JlY2FwdGNoYSYmd2luZG93LmdyZWNhcHRjaGEuZW50ZXJwcmlzZX0saW5pdDpmdW5jdGlvbigpe2lmKCFhLmxvYWRlZCl0cnl7dmFyIGI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7Yi5zcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vcmVjYXB0Y2hhL2VudGVycHJpc2UuanM\/cmVuZGVyPSIrCmEucG9saWN5U2l0ZUtleTtiLmFzeW5jPSEwO2IuZGVmZXI9ITA7Yi5vbmxvYWQ9ZnVuY3Rpb24oKXthLmxvYWRlZD0hMDtkb2N1bWVudC5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgiZ3JlY2FwdGNoYS5kMmNsb2FkZWQiKSl9O3ZhciBjPWRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJzY3JpcHQiKVswXTtjLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGIsYyl9Y2F0Y2goZCl7Y29uc29sZS5sb2coZCl9fSx1c2VDaGVja2JveDpmdW5jdGlvbihiLGMpe3ZhciBkPXt3aWRnZXRJZDotMSx0b2tlbjoiIixhY3Rpb246Y3x8YS5kZWZhdWx0QWN0aW9ufTthLmNoZWNrYm94ZXNbYl09ZDthLmxvYWRlZHx8YS5pbml0KCk7Yz1mdW5jdGlvbigpe2lmKCEoLTE8ZC53aWRnZXRJZCkpaWYoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYikpdHJ5e2dyZWNhcHRjaGEuZW50ZXJwcmlzZS5yZWFkeShmdW5jdGlvbigpe2Qud2lkZ2V0SWQ9Z3JlY2FwdGNoYS5lbnRlcnByaXNlLnJlbmRlcihiLAp7c2l0ZWtleTphLmNoZWNrYm94U2l0ZUtleSxhY3Rpb246ZC5hY3Rpb24sY2FsbGJhY2s6ZnVuY3Rpb24oZSl7ZC50b2tlbj1lfSwiZXhwaXJlZC1jYWxsYmFjayI6ZnVuY3Rpb24oKXtkLnRva2VuPSIifSwiZXJyb3ItY2FsbGJhY2siOmZ1bmN0aW9uKCl7ZC50b2tlbj0iIn19KX0pfWNhdGNoKGUpe2NvbnNvbGUubG9nKGUpfWVsc2UgY29uc29sZS5sb2coIkdSQyBjaGVja2JveCBjb250YWluZXIgbm90IGZvdW5kOiIsYil9O2EuaXNSZWFkeSgpP2MoKTpkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJncmVjYXB0Y2hhLmQyY2xvYWRlZCIsYyx7b25jZTohMH0pfSxyZXNldENoZWNrYm94OmZ1bmN0aW9uKGIpeyhiP1tiXTpPYmplY3Qua2V5cyhhLmNoZWNrYm94ZXMpKS5mb3JFYWNoKGZ1bmN0aW9uKGMpe2lmKGM9YS5jaGVja2JveGVzW2NdKXtpZigtMTxjLndpZGdldElkJiZhLmlzUmVhZHkoKSl0cnl7Z3JlY2FwdGNoYS5lbnRlcnByaXNlLnJlc2V0KGMud2lkZ2V0SWQpfWNhdGNoKGQpe2NvbnNvbGUubG9nKGQpfWMudG9rZW49CiIifX0pfSxpc0NoZWNrYm94U29sdmVkOmZ1bmN0aW9uKGIpe2I9YS5jaGVja2JveGVzW2JdO3JldHVybiEoIWJ8fCFiLnRva2VuKX0sY3VycmVudENvbnRleHQ6ZnVuY3Rpb24oKXt2YXIgYj1hLmFjdGl2ZUZvcm1JZDtyZXR1cm4oYj1iP2EuY2hlY2tib3hlc1tiXTpudWxsKT97bW9kZToiY2hlY2tib3giLGFjdGlvbjpiLmFjdGlvbix0b2tlbjpiLnRva2VufTp7bW9kZToicG9saWN5IixhY3Rpb246YS5kZWZhdWx0QWN0aW9uLHRva2VuOiIifX0sZ2V0UmVzcG9uc2U6ZnVuY3Rpb24oYil7dmFyIGM9JC5EZWZlcnJlZCgpLGQ9YS5jdXJyZW50Q29udGV4dCgpO2lmKCJjaGVja2JveCI9PT1kLm1vZGUpcmV0dXJuIGMucmVzb2x2ZShkLnRva2VufHwiIikucHJvbWlzZSgpO2lmKCFhLmlzUmVhZHkoKSlyZXR1cm4gYy5yZXNvbHZlKCIiKS5wcm9taXNlKCk7dmFyIGU9Ynx8ZC5hY3Rpb247dHJ5e2dyZWNhcHRjaGEuZW50ZXJwcmlzZS5yZWFkeShmdW5jdGlvbigpe2dyZWNhcHRjaGEuZW50ZXJwcmlzZS5leGVjdXRlKGEucG9saWN5U2l0ZUtleSwKe2FjdGlvbjplfSkudGhlbihmdW5jdGlvbihrKXtjLnJlc29sdmUoayl9KS5jYXRjaChmdW5jdGlvbihrKXtjb25zb2xlLmxvZygiR1JDIEZhaWwiLGspO2MucmVzb2x2ZSgiIil9KX0pfWNhdGNoKGspe2NvbnNvbGUubG9nKGspLGMucmVzb2x2ZSgiIil9cmV0dXJuIGN9fTtyZXR1cm4gYX0oKTt0cnl7ZG9jdW1lbnQuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoImdvb2dsZVJlY2FwdGNoYS5yZWFkeSIpKX1jYXRjaChhKXt9ZnVuY3Rpb24gZ2V0THV4dXJ5VGF4QW1vdW50KGEpe3ZhciBiPTA7MUU1PGEmJihiPS4xKmEsYT0uMiooYS0xRTUpLGI9YjxhP2I6YSk7cmV0dXJuIE1hdGgucm91bmQoYil9CnZhciB3b3Jkcz1bXSxwYXJ0LHdvcmRJbmRleD0wLG9mZnNldD0wLGxlbj0xLGZvcndhcmRzPSEwLHNraXBfY291bnQ9MCxza2lwX2RlbGF5PTE1LHNwZWVkPTcwLHdvcmRmbGljaz1mdW5jdGlvbihhLGIpe3dvcmRzPWE7bGVuPXdvcmRzLmxlbmd0aDtzZXRJbnRlcnZhbChmdW5jdGlvbigpe2ZvcndhcmRzP29mZnNldD49d29yZHNbd29yZEluZGV4XS5sZW5ndGgmJigrK3NraXBfY291bnQsc2tpcF9jb3VudD09c2tpcF9kZWxheSYmKGZvcndhcmRzPSExLHNraXBfY291bnQ9MCkpOjA9PW9mZnNldCYmKGZvcndhcmRzPSEwLHdvcmRJbmRleCsrLG9mZnNldD0wLHdvcmRJbmRleD49bGVuJiYod29yZEluZGV4PTApKTtwYXJ0PXdvcmRzW3dvcmRJbmRleF0uc3Vic3RyKDAsb2Zmc2V0KTswPT1za2lwX2NvdW50JiYoZm9yd2FyZHM\/b2Zmc2V0Kys6b2Zmc2V0LS0pO2IudGV4dChwYXJ0KX0sc3BlZWQpfTsKZnVuY3Rpb24gaXNJblZpZXdwb3J0KGEsYil7Yj12b2lkIDA9PT1iP3t9OmI7YT1hLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO2xldCBjPWlzTnVtZXJpYyhiLnRvcCk\/Yi50b3A6MDtiPWlzTnVtZXJpYyhiLmxlZnQpP2IubGVmdDowO3JldHVybiBNYXRoLmZsb29yKGEudG9wKT49YyYmTWF0aC5mbG9vcihhLmxlZnQpPj1iJiZNYXRoLmZsb29yKGEuYm90dG9tKTw9KHdpbmRvdy5pbm5lckhlaWdodHx8ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodCkmJk1hdGguZmxvb3IoYS5yaWdodCk8PSh3aW5kb3cuaW5uZXJXaWR0aHx8ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoKX1mdW5jdGlvbiBpc051bWVyaWMoYSl7cmV0dXJuL14tP1xkKyQvZy50ZXN0KGEpfQpkb2NSZWFkeUFyci5wdXNoKCgpPT57ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnW3JvbGU9ImJ1dHRvbiJdJykuZm9yRWFjaChhPT57YS5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIixiPT57Y29uc3QgYz12b2lkIDAhPT1iLmtleT9iLmtleTpiLmtleUNvZGU7aWYoIkVudGVyIj09PWN8fDEzPT09YyliLnByZXZlbnREZWZhdWx0KCksYS5jbGljaygpfSl9KX0pOwooKCk9PntsZXQgYT1kb2N1bWVudC5jb29raWUsYj1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKERvY3VtZW50LnByb3RvdHlwZSwiY29va2llIik7T2JqZWN0LmRlZmluZVByb3BlcnR5KERvY3VtZW50LnByb3RvdHlwZSwiX2Nvb2tpZSIsYik7T2JqZWN0LmRlZmluZVByb3BlcnR5KERvY3VtZW50LnByb3RvdHlwZSwiY29va2llIix7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsZ2V0KCl7cmV0dXJuIHRoaXMuX2Nvb2tpZX0sc2V0KGMpe3ZhciBkPWMudHJpbSgpLnNwbGl0KCI7Iik7bGV0IGU9e307dmFyIGs9MDtmb3IodmFyIGggb2YgZClkPWgudHJpbSgpLnNwbGl0KCI9IiksMD09az8oZS5uYW1lPWRbMF0sZS52YWx1ZT1kWzFdfHwwKToiIiE9ZFswXSYmKGVbZFswXV09ZFsxXXx8MCksaysrO2s9ZS5uYW1lO2g9ZS5leHBpcmVzfHwwO2Q9ZS5wYXRofHwiLyI7bGV0IG49ZS5kb21haW58fCIiO2UudmFsdWUmJiIiIT1lLnZhbHVlJiZudWxsIT1lLnZhbHVlJiYKd2luZG93LkNvb2tpZUxvZ2dlci5sb2coayxlLnZhbHVlLGgsZCxuKTtjPXRoaXMuX2Nvb2tpZT1jO2lmKGMhPT1hKXRyeXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJjb29raWVjaGFuZ2UiLHtkZXRhaWw6e29sZFZhbHVlOmEsbmV3VmFsdWU6Y319KSl9ZmluYWxseXthPWN9fX0pfSkoKTtkb2NSZWFkeUFyci5wdXNoKCgpPT57dmFyIGE9bnVsbDtpZih3aW5kb3cubG9jYXRpb24uaGFzaCl7dHJ5e2E9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcihkZWNvZGVVUkkod2luZG93LmxvY2F0aW9uLmhhc2gpKX1jYXRjaChiKXtyZXR1cm59YSYmKGE9YS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3Ard2luZG93LnNjcm9sbFksd2luZG93LnNjcm9sbFRvKHt0b3A6YS0yMCxiZWhhdmlvcjoic21vb3RoIn0pKX19KTsKKGZ1bmN0aW9uKCl7ZnVuY3Rpb24gYShjKXtkZWJ1Zyh7Y29sbGVjdDpjfSk7Yz1jLm5ld1VSTD9uZXcgVVJMKGMubmV3VVJMKTp3aW5kb3cubG9jYXRpb247IiIhPT1jLmhhc2gmJmMuaGFzaC5zdWJzdHJpbmcoMSkuc3BsaXQoIiYiKS5tYXAoZnVuY3Rpb24oZCxlLGspe3RyeXt2YXIgW2gsbl09ZC5zcGxpdCgiPSIpO3N3aXRjaChoKXtjYXNlICJ1dG1fZSI6dmFyIHg9YXRvYihuKS5zcGxpdCgiOjoiKSx2PW51bGwhPWdldENvb2tpZSgidXRtX2NhbXBhaWduIikmJiJ1bmRlZmluZWQiIT10eXBlb2YgZ2V0Q29va2llKCJ1dG1fY2FtcGFpZ24iKT9nZXRDb29raWUoInV0bV9jYW1wYWlnbiIpOnhbMl07diYmc2V0Q29va2llKCJ1dG1fY2FtcGFpZ24iLHYsMTgwKTt2YXIgZj1udWxsIT1nZXRDb29raWUoInV0bV9zb3VyY2UiKSYmInVuZGVmaW5lZCIhPXR5cGVvZiBnZXRDb29raWUoInV0bV9zb3VyY2UiKT9nZXRDb29raWUoInV0bV9zb3VyY2UiKTp4WzNdO2YmJnNldENvb2tpZSgidXRtX3NvdXJjZSIsCmYsMTgwKTticmVhaztjYXNlICJ1dG1fZXgiOng9YXRvYihuKTt2YXIgZz1uZXcgVVJMKCJodHRwczovLyIrd2luZG93LmxvY2F0aW9uLmhvc3QreCk7MDxnLnNlYXJjaFBhcmFtcy5zaXplJiZnLnNlYXJjaFBhcmFtcy5mb3JFYWNoKGIpfXJldHVybntrZXk6aCx2YWx1ZTpufX1jYXRjaChtKXtkZWJ1ZyhtKX19KX1mdW5jdGlvbiBiKGMsZCl7dHJ5e3N3aXRjaChkKXtjYXNlICJEaXNwbGF5U291cmNlIjpjYXNlICJnY2xpZCI6ZGVidWcoe2tleTpkLGNvb2tpZTpnZXRDb29raWUoZCksdmFsdWU6Y30pLG51bGwhPWdldENvb2tpZShkKSYmIiIhPWdldENvb2tpZShkKXx8c2V0Q29va2llKGQsYywxODApfX1jYXRjaChlKXtkZWJ1ZyhlKX19d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLGEsITEpO3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJoYXNoY2hhbmdlIixhLCExKX0pKCk7MD49JCgiI3NoYXJlT25GYWNlYm9vayIpLmxlbmd0aCYmJCgiZm9vdGVyIikucHJlcGVuZCgnPGRpdiBpZD0ic2hhcmVPbkZhY2Vib29rIiBkYXRhLWV4cGxhaW49ImhvbmRhL2FjdXJhIGNlcnQgdXNlcyBndG0sIGl0IGhhcyBhIGJpbmQgdGhhdCB0aHJvd3MgYW4gZXJyb3IgaWYgdGhpcyBpZCBkb2VzIG5vdCBleGlzdC4gY29kZSBpcyBmcm9tIGd0bSBzaWRlLiI+PC9kaXY+Jyk7CihmdW5jdGlvbigpe2Z1bmN0aW9uIGEoKXtpZigidW5kZWZpbmVkIiE9PXR5cGVvZiAkLmNvb2tpZSl7bGV0IGM7dmFyIGI9bnVsbCE9KGM9JC5jb29raWUoIlRlcnRpYXJ5U291cmNlIikpP2M6IiI7IiIhPT1iJiYoJCgnKltocmVmKj0iJEZEVGVydGlhcnlTb3VyY2UiXScpLmVhY2goZnVuY3Rpb24oKXskKHRoaXMpLmF0dHIoImhyZWYiLCQodGhpcykuYXR0cigiaHJlZiIpLnJlcGxhY2UoIiRGRFRlcnRpYXJ5U291cmNlIixiKSl9KSwkKCcqW29uY2xpY2sqPSIkRkRUZXJ0aWFyeVNvdXJjZSJdJykuZWFjaChmdW5jdGlvbigpeyQodGhpcykuYXR0cigib25jbGljayIsJCh0aGlzKS5hdHRyKCJvbmNsaWNrIikucmVwbGFjZSgiJEZEVGVydGlhcnlTb3VyY2UiLGIpKX0pLCQoJypbdmFsdWUqPSIkRkRUZXJ0aWFyeVNvdXJjZSJdJykuZWFjaChmdW5jdGlvbigpeyQodGhpcykuYXR0cigidmFsdWUiLCQodGhpcykuYXR0cigidmFsdWUiKS5yZXBsYWNlKCIkRkRUZXJ0aWFyeVNvdXJjZSIsCmIpKX0pKX19YSgpO3NldFRpbWVvdXQoYSwxRTMpO3NldFRpbWVvdXQoYSw1RTMpOzA8PW5hdmlnYXRvci51c2VyQWdlbnQuaW5kZXhPZigiTWFjIikmJigkKCIubGFuZ3VhZ2VCYXIgLmdSYXRpbmctaWNvbiNnUmF0aW5nIC5yYXRpbmciKS5hZGRDbGFzcygibWFyZ2luLWJvdHRvbS0tNHB4IiksJCgiLmxhbmd1YWdlQmFyIC5zZXJ2aWNlLWhlYWRlci1mb3JtIGEuYnRuID4gc3BhbiIpLmFkZENsYXNzKCJtYXJnaW4tYm90dG9tLS00cHgiKSwkKCIubGFuZ3VhZ2VCYXIgLmRlc2t0b3BfbGFuZ19idXR0b25fdGV4dCIpLmFkZENsYXNzKCJtYXJnaW4tYm90dG9tLS00cHgiKSwkKCIubGFuZ3VhZ2VCYXIgLmRlc2t0b3BfbGFuZ19idXR0b25fdGV4dCIpLmNzcygidG9wIiwiNTIlIikpfSkoKTsKZnVuY3Rpb24gYWRkTm9UcmFuc2xhdGVFbWFpbERlZigpe2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ1tpZCo9ImVtYWlsQm9keURlZiJdLCBbaWQqPSJlbWFpbFN1YmplY3REZWYiXSwgW2NsYXNzKj0iZW1haWxTdWJqZWN0Il0sIFtjbGFzcyo9ImVtYWlsQm9keSJdLCBbY2xhc3MqPSJsZWFkRW1haWwiXSwgW2NsYXNzKj0iZW1haWwtZGVmaW5pdGlvbiJdJykuZm9yRWFjaChhPT57YS5zZXRBdHRyaWJ1dGUoInRyYW5zbGF0ZSIsIm5vIil9KX1hZGROb1RyYW5zbGF0ZUVtYWlsRGVmKCk7ZnVuY3Rpb24gdndzKCl7ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCItLXZ3cyIsYCR7d2luZG93LmlubmVyV2lkdGgvMTAwLSh3aW5kb3cuaW5uZXJXaWR0aC1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50V2lkdGgpLzEwMC8yfXB4YCl9dndzKCk7bGV0IHJvX3Z3cz1uZXcgUmVzaXplT2JzZXJ2ZXIoKCk9Pnt2d3MoKX0pO3JvX3Z3cy5vYnNlcnZlKGRvY3VtZW50LmJvZHkpOwovKiogL2pzL2xhenlzaXplcy5taW4uanMgKiovCi8qISBsYXp5c2l6ZXMgLSB2NC4xLjUgKi8KLyohIG1vZGlmaWVkOiBvbGl2aWVyQGQyY21lZGlhLmNhIHRvIHN1cHBvcnQgZGF0YS1pbWdzcmMgYmVjYXVzZSBvZiBvbmVUcnVzdCBicmVha3MgbGF6eWxvYWQgb24gZGF0YS1zcmMgKi8KIWZ1bmN0aW9uKGEsYil7dmFyIGM9YihhLGEuZG9jdW1lbnQpO2EubGF6eVNpemVzPWMsIm9iamVjdCI9PXR5cGVvZiBtb2R1bGUmJm1vZHVsZS5leHBvcnRzJiYobW9kdWxlLmV4cG9ydHM9Yyl9KHdpbmRvdyxmdW5jdGlvbihhLGIpeyJ1c2Ugc3RyaWN0IjtpZihiLmdldEVsZW1lbnRzQnlDbGFzc05hbWUpe3ZhciBjLGQsZT1iLmRvY3VtZW50RWxlbWVudCxmPWEuRGF0ZSxnPWEuSFRNTFBpY3R1cmVFbGVtZW50LGg9ImFkZEV2ZW50TGlzdGVuZXIiLGk9ImdldEF0dHJpYnV0ZSIsaj1hW2hdLGs9YS5zZXRUaW1lb3V0LGw9YS5yZXF1ZXN0QW5pbWF0aW9uRnJhbWV8fGssbT1hLnJlcXVlc3RJZGxlQ2FsbGJhY2ssbj0vXnBpY3R1cmUkL2ksbz1bImxvYWQiLCJlcnJvciIsImxhenlpbmNsdWRlZCIsIl9sYXp5bG9hZGVkIl0scD17fSxxPUFycmF5LnByb3RvdHlwZS5mb3JFYWNoLHI9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gcFtiXXx8KHBbYl09bmV3IFJlZ0V4cCgiKFxcc3xeKSIrYisiKFxcc3wkKSIpKSxwW2JdLnRlc3QoYVtpXSgiY2xhc3MiKXx8IiIpJiZwW2JdfSxzPWZ1bmN0aW9uKGEsYil7cihhLGIpfHxhLnNldEF0dHJpYnV0ZSgiY2xhc3MiLChhW2ldKCJjbGFzcyIpfHwiIikudHJpbSgpKyIgIitiKX0sdD1mdW5jdGlvbihhLGIpe3ZhciBjOyhjPXIoYSxiKSkmJmEuc2V0QXR0cmlidXRlKCJjbGFzcyIsKGFbaV0oImNsYXNzIil8fCIiKS5yZXBsYWNlKGMsIiAiKSl9LHU9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPWM\/aDoicmVtb3ZlRXZlbnRMaXN0ZW5lciI7YyYmdShhLGIpLG8uZm9yRWFjaChmdW5jdGlvbihjKXthW2RdKGMsYil9KX0sdj1mdW5jdGlvbihhLGQsZSxmLGcpe3ZhciBoPWIuY3JlYXRlRXZlbnQoIkV2ZW50Iik7cmV0dXJuIGV8fChlPXt9KSxlLmluc3RhbmNlPWMsaC5pbml0RXZlbnQoZCwhZiwhZyksaC5kZXRhaWw9ZSxhLmRpc3BhdGNoRXZlbnQoaCksaH0sdz1mdW5jdGlvbihiLGMpe3ZhciBlOyFnJiYoZT1hLnBpY3R1cmVmaWxsfHxkLnBmKT8oYyYmYy5zcmMmJiFiW2ldKCJzcmNzZXQiKSYmYi5zZXRBdHRyaWJ1dGUoInNyY3NldCIsYy5zcmMpLGUoe3JlZXZhbHVhdGU6ITAsZWxlbWVudHM6W2JdfSkpOmMmJmMuc3JjJiYoYi5zcmM9Yy5zcmMpfSx4PWZ1bmN0aW9uKGEsYil7cmV0dXJuKGdldENvbXB1dGVkU3R5bGUoYSxudWxsKXx8e30pW2JdfSx5PWZ1bmN0aW9uKGEsYixjKXtmb3IoYz1jfHxhLm9mZnNldFdpZHRoO2M8ZC5taW5TaXplJiZiJiYhYS5fbGF6eXNpemVzV2lkdGg7KWM9Yi5vZmZzZXRXaWR0aCxiPWIucGFyZW50Tm9kZTtyZXR1cm4gY30sej1mdW5jdGlvbigpe3ZhciBhLGMsZD1bXSxlPVtdLGY9ZCxnPWZ1bmN0aW9uKCl7dmFyIGI9Zjtmb3IoZj1kLmxlbmd0aD9lOmQsYT0hMCxjPSExO2IubGVuZ3RoOyliLnNoaWZ0KCkoKTthPSExfSxoPWZ1bmN0aW9uKGQsZSl7YSYmIWU\/ZC5hcHBseSh0aGlzLGFyZ3VtZW50cyk6KGYucHVzaChkKSxjfHwoYz0hMCwoYi5oaWRkZW4\/azpsKShnKSkpfTtyZXR1cm4gaC5fbHNGbHVzaD1nLGh9KCksQT1mdW5jdGlvbihhLGIpe3JldHVybiBiP2Z1bmN0aW9uKCl7eihhKX06ZnVuY3Rpb24oKXt2YXIgYj10aGlzLGM9YXJndW1lbnRzO3ooZnVuY3Rpb24oKXthLmFwcGx5KGIsYyl9KX19LEI9ZnVuY3Rpb24oYSl7dmFyIGIsYz0wLGU9ZC50aHJvdHRsZURlbGF5LGc9ZC5yaWNUaW1lb3V0LGg9ZnVuY3Rpb24oKXtiPSExLGM9Zi5ub3coKSxhKCl9LGk9bSYmZz40OT9mdW5jdGlvbigpe20oaCx7dGltZW91dDpnfSksZyE9PWQucmljVGltZW91dCYmKGc9ZC5yaWNUaW1lb3V0KX06QShmdW5jdGlvbigpe2soaCl9LCEwKTtyZXR1cm4gZnVuY3Rpb24oYSl7dmFyIGQ7KGE9ITA9PT1hKSYmKGc9MzMpLGJ8fChiPSEwLGQ9ZS0oZi5ub3coKS1jKSxkPDAmJihkPTApLGF8fGQ8OT9pKCk6ayhpLGQpKX19LEM9ZnVuY3Rpb24oYSl7dmFyIGIsYyxkPTk5LGU9ZnVuY3Rpb24oKXtiPW51bGwsYSgpfSxnPWZ1bmN0aW9uKCl7dmFyIGE9Zi5ub3coKS1jO2E8ZD9rKGcsZC1hKToobXx8ZSkoZSl9O3JldHVybiBmdW5jdGlvbigpe2M9Zi5ub3coKSxifHwoYj1rKGcsZCkpfX07IWZ1bmN0aW9uKCl7dmFyIGIsYz17bGF6eUNsYXNzOiJsYXp5bG9hZCIsbG9hZGVkQ2xhc3M6Imxhenlsb2FkZWQiLGxvYWRpbmdDbGFzczoibGF6eWxvYWRpbmciLHByZWxvYWRDbGFzczoibGF6eXByZWxvYWQiLGVycm9yQ2xhc3M6ImxhenllcnJvciIsYXV0b3NpemVzQ2xhc3M6ImxhenlhdXRvc2l6ZXMiLHNyY0F0dHI6ImRhdGEtaW1nc3JjIixzcmNzZXRBdHRyOiJkYXRhLXNyY3NldCIsc2l6ZXNBdHRyOiJkYXRhLXNpemVzIixtaW5TaXplOjQwLGN1c3RvbU1lZGlhOnt9LGluaXQ6ITAsZXhwRmFjdG9yOjEuNSxoRmFjOi44LGxvYWRNb2RlOjIsbG9hZEhpZGRlbjohMCxyaWNUaW1lb3V0OjAsdGhyb3R0bGVEZWxheToxMjV9O2Q9YS5sYXp5U2l6ZXNDb25maWd8fGEubGF6eXNpemVzQ29uZmlnfHx7fTtmb3IoYiBpbiBjKWIgaW4gZHx8KGRbYl09Y1tiXSk7YS5sYXp5U2l6ZXNDb25maWc9ZCxrKGZ1bmN0aW9uKCl7ZC5pbml0JiZGKCl9KX0oKTt2YXIgRD1mdW5jdGlvbigpe3ZhciBnLGwsbSxvLHAseSxELEYsRyxILEksSixLLEwsTT0vXmltZyQvaSxOPS9eaWZyYW1lJC9pLE89Im9uc2Nyb2xsImluIGEmJiEvKGdsZXxpbmcpYm90Ly50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpLFA9MCxRPTAsUj0wLFM9LTEsVD1mdW5jdGlvbihhKXtSLS0sYSYmYS50YXJnZXQmJnUoYS50YXJnZXQsVCksKCFhfHxSPDB8fCFhLnRhcmdldCkmJihSPTApfSxVPWZ1bmN0aW9uKGEsYyl7dmFyIGQsZj1hLGc9ImhpZGRlbiI9PXgoYi5ib2R5LCJ2aXNpYmlsaXR5Iil8fCJoaWRkZW4iIT14KGEucGFyZW50Tm9kZSwidmlzaWJpbGl0eSIpJiYiaGlkZGVuIiE9eChhLCJ2aXNpYmlsaXR5Iik7Zm9yKEYtPWMsSSs9YyxHLT1jLEgrPWM7ZyYmKGY9Zi5vZmZzZXRQYXJlbnQpJiZmIT1iLmJvZHkmJmYhPWU7KShnPSh4KGYsIm9wYWNpdHkiKXx8MSk+MCkmJiJ2aXNpYmxlIiE9eChmLCJvdmVyZmxvdyIpJiYoZD1mLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLGc9SD5kLmxlZnQmJkc8ZC5yaWdodCYmST5kLnRvcC0xJiZGPGQuYm90dG9tKzEpO3JldHVybiBnfSxWPWZ1bmN0aW9uKCl7dmFyIGEsZixoLGosayxtLG4scCxxLHI9Yy5lbGVtZW50cztpZigobz1kLmxvYWRNb2RlKSYmUjw4JiYoYT1yLmxlbmd0aCkpe2Y9MCxTKyssbnVsbD09SyYmKCJleHBhbmQiaW4gZHx8KGQuZXhwYW5kPWUuY2xpZW50SGVpZ2h0PjUwMCYmZS5jbGllbnRXaWR0aD41MDA\/NTAwOjM3MCksSj1kLmV4cGFuZCxLPUoqZC5leHBGYWN0b3IpLFE8SyYmUjwxJiZTPjImJm8+MiYmIWIuaGlkZGVuPyhRPUssUz0wKTpRPW8+MSYmUz4xJiZSPDY\/SjpQO2Zvcig7ZjxhO2YrKylpZihyW2ZdJiYhcltmXS5fbGF6eVJhY2UpaWYoTylpZigocD1yW2ZdW2ldKCJkYXRhLWV4cGFuZCIpKSYmKG09MSpwKXx8KG09USkscSE9PW0mJih5PWlubmVyV2lkdGgrbSpMLEQ9aW5uZXJIZWlnaHQrbSxuPS0xKm0scT1tKSxoPXJbZl0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksKEk9aC5ib3R0b20pPj1uJiYoRj1oLnRvcCk8PUQmJihIPWgucmlnaHQpPj1uKkwmJihHPWgubGVmdCk8PXkmJihJfHxIfHxHfHxGKSYmKGQubG9hZEhpZGRlbnx8ImhpZGRlbiIhPXgocltmXSwidmlzaWJpbGl0eSIpKSYmKGwmJlI8MyYmIXAmJihvPDN8fFM8NCl8fFUocltmXSxtKSkpe2lmKGJhKHJbZl0pLGs9ITAsUj45KWJyZWFrfWVsc2UhayYmbCYmIWomJlI8NCYmUzw0JiZvPjImJihnWzBdfHxkLnByZWxvYWRBZnRlckxvYWQpJiYoZ1swXXx8IXAmJihJfHxIfHxHfHxGfHwiYXV0byIhPXJbZl1baV0oZC5zaXplc0F0dHIpKSkmJihqPWdbMF18fHJbZl0pO2Vsc2UgYmEocltmXSk7aiYmIWsmJmJhKGopfX0sVz1CKFYpLFg9ZnVuY3Rpb24oYSl7cyhhLnRhcmdldCxkLmxvYWRlZENsYXNzKSx0KGEudGFyZ2V0LGQubG9hZGluZ0NsYXNzKSx1KGEudGFyZ2V0LFopLHYoYS50YXJnZXQsImxhenlsb2FkZWQiKX0sWT1BKFgpLFo9ZnVuY3Rpb24oYSl7WSh7dGFyZ2V0OmEudGFyZ2V0fSl9LCQ9ZnVuY3Rpb24oYSxiKXt0cnl7YS5jb250ZW50V2luZG93LmxvY2F0aW9uLnJlcGxhY2UoYil9Y2F0Y2goYyl7YS5zcmM9Yn19LF89ZnVuY3Rpb24oYSl7dmFyIGIsYz1hW2ldKGQuc3Jjc2V0QXR0cik7KGI9ZC5jdXN0b21NZWRpYVthW2ldKCJkYXRhLW1lZGlhIil8fGFbaV0oIm1lZGlhIildKSYmYS5zZXRBdHRyaWJ1dGUoIm1lZGlhIixiKSxjJiZhLnNldEF0dHJpYnV0ZSgic3Jjc2V0IixjKX0sYWE9QShmdW5jdGlvbihhLGIsYyxlLGYpe3ZhciBnLGgsaixsLG8scDsobz12KGEsImxhenliZWZvcmV1bnZlaWwiLGIpKS5kZWZhdWx0UHJldmVudGVkfHwoZSYmKGM\/cyhhLGQuYXV0b3NpemVzQ2xhc3MpOmEuc2V0QXR0cmlidXRlKCJzaXplcyIsZSkpLGg9YVtpXShkLnNyY3NldEF0dHIpLGc9YVtpXShkLnNyY0F0dHIpLGYmJihqPWEucGFyZW50Tm9kZSxsPWomJm4udGVzdChqLm5vZGVOYW1lfHwiIikpLHA9Yi5maXJlc0xvYWR8fCJzcmMiaW4gYSYmKGh8fGd8fGwpLG89e3RhcmdldDphfSxwJiYodShhLFQsITApLGNsZWFyVGltZW91dChtKSxtPWsoVCwyNTAwKSxzKGEsZC5sb2FkaW5nQ2xhc3MpLHUoYSxaLCEwKSksbCYmcS5jYWxsKGouZ2V0RWxlbWVudHNCeVRhZ05hbWUoInNvdXJjZSIpLF8pLGg\/YS5zZXRBdHRyaWJ1dGUoInNyY3NldCIsaCk6ZyYmIWwmJihOLnRlc3QoYS5ub2RlTmFtZSk\/JChhLGcpOmEuc3JjPWcpLGYmJihofHxsKSYmdyhhLHtzcmM6Z30pKSxhLl9sYXp5UmFjZSYmZGVsZXRlIGEuX2xhenlSYWNlLHQoYSxkLmxhenlDbGFzcykseihmdW5jdGlvbigpeyghcHx8YS5jb21wbGV0ZSYmYS5uYXR1cmFsV2lkdGg+MSkmJihwP1Qobyk6Ui0tLFgobykpfSwhMCl9KSxiYT1mdW5jdGlvbihhKXt2YXIgYixjPU0udGVzdChhLm5vZGVOYW1lKSxlPWMmJihhW2ldKGQuc2l6ZXNBdHRyKXx8YVtpXSgic2l6ZXMiKSksZj0iYXV0byI9PWU7KCFmJiZsfHwhY3x8IWFbaV0oInNyYyIpJiYhYS5zcmNzZXR8fGEuY29tcGxldGV8fHIoYSxkLmVycm9yQ2xhc3MpfHwhcihhLGQubGF6eUNsYXNzKSkmJihiPXYoYSwibGF6eXVudmVpbHJlYWQiKS5kZXRhaWwsZiYmRS51cGRhdGVFbGVtKGEsITAsYS5vZmZzZXRXaWR0aCksYS5fbGF6eVJhY2U9ITAsUisrLGFhKGEsYixmLGUsYykpfSxjYT1mdW5jdGlvbigpe2lmKCFsKXtpZihmLm5vdygpLXA8OTk5KXJldHVybiB2b2lkIGsoY2EsOTk5KTt2YXIgYT1DKGZ1bmN0aW9uKCl7ZC5sb2FkTW9kZT0zLFcoKX0pO2w9ITAsZC5sb2FkTW9kZT0zLFcoKSxqKCJzY3JvbGwiLGZ1bmN0aW9uKCl7Mz09ZC5sb2FkTW9kZSYmKGQubG9hZE1vZGU9MiksYSgpfSwhMCl9fTtyZXR1cm57XzpmdW5jdGlvbigpe3A9Zi5ub3coKSxjLmVsZW1lbnRzPWIuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZShkLmxhenlDbGFzcyksZz1iLmdldEVsZW1lbnRzQnlDbGFzc05hbWUoZC5sYXp5Q2xhc3MrIiAiK2QucHJlbG9hZENsYXNzKSxMPWQuaEZhYyxqKCJzY3JvbGwiLFcsITApLGooInJlc2l6ZSIsVywhMCksYS5NdXRhdGlvbk9ic2VydmVyP25ldyBNdXRhdGlvbk9ic2VydmVyKFcpLm9ic2VydmUoZSx7Y2hpbGRMaXN0OiEwLHN1YnRyZWU6ITAsYXR0cmlidXRlczohMH0pOihlW2hdKCJET01Ob2RlSW5zZXJ0ZWQiLFcsITApLGVbaF0oIkRPTUF0dHJNb2RpZmllZCIsVywhMCksc2V0SW50ZXJ2YWwoVyw5OTkpKSxqKCJoYXNoY2hhbmdlIixXLCEwKSxbImZvY3VzIiwibW91c2VvdmVyIiwiY2xpY2siLCJsb2FkIiwidHJhbnNpdGlvbmVuZCIsImFuaW1hdGlvbmVuZCIsIndlYmtpdEFuaW1hdGlvbkVuZCJdLmZvckVhY2goZnVuY3Rpb24oYSl7YltoXShhLFcsITApfSksL2QkfF5jLy50ZXN0KGIucmVhZHlTdGF0ZSk\/Y2EoKTooaigibG9hZCIsY2EpLGJbaF0oIkRPTUNvbnRlbnRMb2FkZWQiLFcpLGsoY2EsMmU0KSksYy5lbGVtZW50cy5sZW5ndGg\/KFYoKSx6Ll9sc0ZsdXNoKCkpOlcoKX0sY2hlY2tFbGVtczpXLHVudmVpbDpiYX19KCksRT1mdW5jdGlvbigpe3ZhciBhLGM9QShmdW5jdGlvbihhLGIsYyxkKXt2YXIgZSxmLGc7aWYoYS5fbGF6eXNpemVzV2lkdGg9ZCxkKz0icHgiLGEuc2V0QXR0cmlidXRlKCJzaXplcyIsZCksbi50ZXN0KGIubm9kZU5hbWV8fCIiKSlmb3IoZT1iLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJzb3VyY2UiKSxmPTAsZz1lLmxlbmd0aDtmPGc7ZisrKWVbZl0uc2V0QXR0cmlidXRlKCJzaXplcyIsZCk7Yy5kZXRhaWwuZGF0YUF0dHJ8fHcoYSxjLmRldGFpbCl9KSxlPWZ1bmN0aW9uKGEsYixkKXt2YXIgZSxmPWEucGFyZW50Tm9kZTtmJiYoZD15KGEsZixkKSxlPXYoYSwibGF6eWJlZm9yZXNpemVzIix7d2lkdGg6ZCxkYXRhQXR0cjohIWJ9KSxlLmRlZmF1bHRQcmV2ZW50ZWR8fChkPWUuZGV0YWlsLndpZHRoKSYmZCE9PWEuX2xhenlzaXplc1dpZHRoJiZjKGEsZixlLGQpKX0sZj1mdW5jdGlvbigpe3ZhciBiLGM9YS5sZW5ndGg7aWYoYylmb3IoYj0wO2I8YztiKyspZShhW2JdKX0sZz1DKGYpO3JldHVybntfOmZ1bmN0aW9uKCl7YT1iLmdldEVsZW1lbnRzQnlDbGFzc05hbWUoZC5hdXRvc2l6ZXNDbGFzcyksaigicmVzaXplIixnKX0sY2hlY2tFbGVtczpnLHVwZGF0ZUVsZW06ZX19KCksRj1mdW5jdGlvbigpe0YuaXx8KEYuaT0hMCxFLl8oKSxELl8oKSl9O3JldHVybiBjPXtjZmc6ZCxhdXRvU2l6ZXI6RSxsb2FkZXI6RCxpbml0OkYsdVA6dyxhQzpzLHJDOnQsaEM6cixmaXJlOnYsZ1c6eSxyQUY6en19fSk7Ci8qRU9GKi87Ci8qKiAvanMvdmFuaWxsYWpzL2RyRGlzY2xhaW1lckpTLmpzICoqLwp2YXIgX19fZDJjX2RyRGlzY2xhaW1lckpTanNfY19vbj0iMjAyNi0wNS0wNSAxMzozMDowOCI7J3VzZSBzdHJpY3QnO2RyRGlzY2xhaW1lckpTPXttYW5hZ2VEaXNjbGFpbWVyRGl2cygpe2RvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixhPT57KGE9YS50YXJnZXQuY2xvc2VzdCgiLmRpc2NsYWltZXJzU3VwZXJzY3JpcHRzLCAuY2xvc2VEUkRpc2NsYWltZXJEcmF3ZXIsICNkckNhbGN1bGF0b3JWaWV3RGlzY2xhaW1lckxpbmsiKSkmJihhLmNsYXNzTGlzdC5jb250YWlucygiY2xvc2VEUkRpc2NsYWltZXJEcmF3ZXIiKT9kckRpc2NsYWltZXJKUy5jbG9zZUN1cnJlbnRPcGVuZWREaXNjbGFpbWVyRGl2KGEuZGF0YXNldC5kaXNjbGFpbWVyRGl2aWQpOmEuY2xhc3NMaXN0LmNvbnRhaW5zKCJkclZpZXdEaXNjbGFpbWVyTGluayIpP2RyRGlzY2xhaW1lckpTLm9wZW5EaXNjbGFpbWVyRGl2KCJkckNhbGN1bGF0b3JEaXNjbGFpbWVyRHJhd2VyIik6ZHJEaXNjbGFpbWVySlMub3BlbkRpc2NsYWltZXJEaXYoYS5kYXRhc2V0LmRpc2NsYWltZXJEaXZpZCkpfSl9LG9wZW5EaXNjbGFpbWVyRGl2OmZ1bmN0aW9uKGEpe2RyRGlzY2xhaW1lckpTLmNsb3NlQWxsT3BlbkRpc2NsYWltZXJEaXZzKCk7CmRyRGlzY2xhaW1lckpTLmNsb3NlRmluYW5jZURpc2NsYW1lckRpdigpO2lmKGE9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYSkpYS5jbGFzc0xpc3QuYWRkKCJvcGVuIiksYS5zdHlsZS5kaXNwbGF5PSJibG9jayJ9LGNsb3NlQ3VycmVudE9wZW5lZERpc2NsYWltZXJEaXY6ZnVuY3Rpb24oYSl7aWYoYT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKGAjJHthfWApKWEuY2xhc3NMaXN0LnJlbW92ZSgib3BlbiIpLGEuc3R5bGUuZGlzcGxheT0ibm9uZSJ9LGNsb3NlQWxsT3BlbkRpc2NsYWltZXJEaXZzOmZ1bmN0aW9uKCl7ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiZGl2W2RhdGEtZGlzY2xhaW1lci1pZF0ub3BlbiIpLmZvckVhY2goYT0+e2RyRGlzY2xhaW1lckpTLmNsb3NlQ3VycmVudE9wZW5lZERpc2NsYWltZXJEaXYoYS5pZCl9KX0sY2xvc2VGaW5hbmNlRGlzY2xhbWVyRGl2OmZ1bmN0aW9uKCl7ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLmRyRGlzY2xhaW1lckRyYXdlci5vcGVuIikuZm9yRWFjaChhPT4Ke2EuY2xhc3NMaXN0LnJlbW92ZSgib3BlbiIpO2Euc3R5bGUuZGlzcGxheT0ibm9uZSJ9KX19O2RvY1JlYWR5QXJyLnB1c2goKCk9PntkckRpc2NsYWltZXJKUy5tYW5hZ2VEaXNjbGFpbWVyRGl2cygpfSk7Ci8qKiAvanMvanF1ZXJ5LXVpLWZhY3RvcnkvMS4xMy4yL2pxdWVyeS11aS5taW4uanMgKiovCi8qISBqUXVlcnkgVUkgLSB2MS4xMy4yIC0gMjAyNC0wMy0xMgoqIGh0dHA6Ly9qcXVlcnl1aS5jb20KKiBJbmNsdWRlczogd2lkZ2V0LmpzLCBqcXVlcnktcGF0Y2guanMsIGtleWNvZGUuanMsIHVuaXF1ZS1pZC5qcywgd2lkZ2V0cy9hY2NvcmRpb24uanMsIHdpZGdldHMvbW91c2UuanMsIHdpZGdldHMvc2xpZGVyLmpzLCBlZmZlY3QuanMKKiBDb3B5cmlnaHQgalF1ZXJ5IEZvdW5kYXRpb24gYW5kIG90aGVyIGNvbnRyaWJ1dG9yczsgTGljZW5zZWQgTUlUICovCgohZnVuY3Rpb24oZSl7InVzZSBzdHJpY3QiOyJmdW5jdGlvbiI9PXR5cGVvZiBkZWZpbmUmJmRlZmluZS5hbWQ\/ZGVmaW5lKFsianF1ZXJ5Il0sZSk6ZShqUXVlcnkpfShmdW5jdGlvbih1KXsidXNlIHN0cmljdCI7dS51aT11LnVpfHx7fTt1LnVpLnZlcnNpb249IjEuMTMuMiI7dmFyIG4saT0wLG89QXJyYXkucHJvdG90eXBlLmhhc093blByb3BlcnR5LHI9QXJyYXkucHJvdG90eXBlLnNsaWNlO3UuY2xlYW5EYXRhPShuPXUuY2xlYW5EYXRhLGZ1bmN0aW9uKGUpe2Zvcih2YXIgdCxpLHM9MDtudWxsIT0oaT1lW3NdKTtzKyspKHQ9dS5fZGF0YShpLCJldmVudHMiKSkmJnQucmVtb3ZlJiZ1KGkpLnRyaWdnZXJIYW5kbGVyKCJyZW1vdmUiKTtuKGUpfSksdS53aWRnZXQ9ZnVuY3Rpb24oZSxpLHQpe3ZhciBzLG4sYSxvPXt9LHI9ZS5zcGxpdCgiLiIpWzBdLGg9cisiLSIrKGU9ZS5zcGxpdCgiLiIpWzFdKTtyZXR1cm4gdHx8KHQ9aSxpPXUuV2lkZ2V0KSxBcnJheS5pc0FycmF5KHQpJiYodD11LmV4dGVuZC5hcHBseShudWxsLFt7fV0uY29uY2F0KHQpKSksdS5leHByLnBzZXVkb3NbaC50b0xvd2VyQ2FzZSgpXT1mdW5jdGlvbihlKXtyZXR1cm4hIXUuZGF0YShlLGgpfSx1W3JdPXVbcl18fHt9LHM9dVtyXVtlXSxuPXVbcl1bZV09ZnVuY3Rpb24oZSx0KXtpZighdGhpc3x8IXRoaXMuX2NyZWF0ZVdpZGdldClyZXR1cm4gbmV3IG4oZSx0KTthcmd1bWVudHMubGVuZ3RoJiZ0aGlzLl9jcmVhdGVXaWRnZXQoZSx0KX0sdS5leHRlbmQobixzLHt2ZXJzaW9uOnQudmVyc2lvbixfcHJvdG86dS5leHRlbmQoe30sdCksX2NoaWxkQ29uc3RydWN0b3JzOltdfSksKGE9bmV3IGkpLm9wdGlvbnM9dS53aWRnZXQuZXh0ZW5kKHt9LGEub3B0aW9ucyksdS5lYWNoKHQsZnVuY3Rpb24odCxzKXtmdW5jdGlvbiBuKCl7cmV0dXJuIGkucHJvdG90eXBlW3RdLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBhKGUpe3JldHVybiBpLnByb3RvdHlwZVt0XS5hcHBseSh0aGlzLGUpfW9bdF09ImZ1bmN0aW9uIj09dHlwZW9mIHM\/ZnVuY3Rpb24oKXt2YXIgZSx0PXRoaXMuX3N1cGVyLGk9dGhpcy5fc3VwZXJBcHBseTtyZXR1cm4gdGhpcy5fc3VwZXI9bix0aGlzLl9zdXBlckFwcGx5PWEsZT1zLmFwcGx5KHRoaXMsYXJndW1lbnRzKSx0aGlzLl9zdXBlcj10LHRoaXMuX3N1cGVyQXBwbHk9aSxlfTpzfSksbi5wcm90b3R5cGU9dS53aWRnZXQuZXh0ZW5kKGEse3dpZGdldEV2ZW50UHJlZml4OnMmJmEud2lkZ2V0RXZlbnRQcmVmaXh8fGV9LG8se2NvbnN0cnVjdG9yOm4sbmFtZXNwYWNlOnIsd2lkZ2V0TmFtZTplLHdpZGdldEZ1bGxOYW1lOmh9KSxzPyh1LmVhY2gocy5fY2hpbGRDb25zdHJ1Y3RvcnMsZnVuY3Rpb24oZSx0KXt2YXIgaT10LnByb3RvdHlwZTt1LndpZGdldChpLm5hbWVzcGFjZSsiLiIraS53aWRnZXROYW1lLG4sdC5fcHJvdG8pfSksZGVsZXRlIHMuX2NoaWxkQ29uc3RydWN0b3JzKTppLl9jaGlsZENvbnN0cnVjdG9ycy5wdXNoKG4pLHUud2lkZ2V0LmJyaWRnZShlLG4pLG59LHUud2lkZ2V0LmV4dGVuZD1mdW5jdGlvbihlKXtmb3IodmFyIHQsaSxzPXIuY2FsbChhcmd1bWVudHMsMSksbj0wLGE9cy5sZW5ndGg7bjxhO24rKylmb3IodCBpbiBzW25dKWk9c1tuXVt0XSxvLmNhbGwoc1tuXSx0KSYmdm9pZCAwIT09aSYmKHUuaXNQbGFpbk9iamVjdChpKT9lW3RdPXUuaXNQbGFpbk9iamVjdChlW3RdKT91LndpZGdldC5leHRlbmQoe30sZVt0XSxpKTp1LndpZGdldC5leHRlbmQoe30saSk6ZVt0XT1pKTtyZXR1cm4gZX0sdS53aWRnZXQuYnJpZGdlPWZ1bmN0aW9uKGEsdCl7dmFyIG89dC5wcm90b3R5cGUud2lkZ2V0RnVsbE5hbWV8fGE7dS5mblthXT1mdW5jdGlvbihpKXt2YXIgZT0ic3RyaW5nIj09dHlwZW9mIGkscz1yLmNhbGwoYXJndW1lbnRzLDEpLG49dGhpcztyZXR1cm4gZT90aGlzLmxlbmd0aHx8Imluc3RhbmNlIiE9PWk\/dGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIGUsdD11LmRhdGEodGhpcyxvKTtyZXR1cm4iaW5zdGFuY2UiPT09aT8obj10LCExKTp0PyJmdW5jdGlvbiIhPXR5cGVvZiB0W2ldfHwiXyI9PT1pLmNoYXJBdCgwKT91LmVycm9yKCJubyBzdWNoIG1ldGhvZCAnIitpKyInIGZvciAiK2ErIiB3aWRnZXQgaW5zdGFuY2UiKTooZT10W2ldLmFwcGx5KHQscykpIT09dCYmdm9pZCAwIT09ZT8obj1lJiZlLmpxdWVyeT9uLnB1c2hTdGFjayhlLmdldCgpKTplLCExKTp2b2lkIDA6dS5lcnJvcigiY2Fubm90IGNhbGwgbWV0aG9kcyBvbiAiK2ErIiBwcmlvciB0byBpbml0aWFsaXphdGlvbjsgYXR0ZW1wdGVkIHRvIGNhbGwgbWV0aG9kICciK2krIiciKX0pOm49dm9pZCAwOihzLmxlbmd0aCYmKGk9dS53aWRnZXQuZXh0ZW5kLmFwcGx5KG51bGwsW2ldLmNvbmNhdChzKSkpLHRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciBlPXUuZGF0YSh0aGlzLG8pO2U\/KGUub3B0aW9uKGl8fHt9KSxlLl9pbml0JiZlLl9pbml0KCkpOnUuZGF0YSh0aGlzLG8sbmV3IHQoaSx0aGlzKSl9KSksbn19LHUuV2lkZ2V0PWZ1bmN0aW9uKCl7fSx1LldpZGdldC5fY2hpbGRDb25zdHJ1Y3RvcnM9W10sdS5XaWRnZXQucHJvdG90eXBlPXt3aWRnZXROYW1lOiJ3aWRnZXQiLHdpZGdldEV2ZW50UHJlZml4OiIiLGRlZmF1bHRFbGVtZW50OiI8ZGl2PiIsb3B0aW9uczp7Y2xhc3Nlczp7fSxkaXNhYmxlZDohMSxjcmVhdGU6bnVsbH0sX2NyZWF0ZVdpZGdldDpmdW5jdGlvbihlLHQpe3Q9dSh0fHx0aGlzLmRlZmF1bHRFbGVtZW50fHx0aGlzKVswXSx0aGlzLmVsZW1lbnQ9dSh0KSx0aGlzLnV1aWQ9aSsrLHRoaXMuZXZlbnROYW1lc3BhY2U9Ii4iK3RoaXMud2lkZ2V0TmFtZSt0aGlzLnV1aWQsdGhpcy5iaW5kaW5ncz11KCksdGhpcy5ob3ZlcmFibGU9dSgpLHRoaXMuZm9jdXNhYmxlPXUoKSx0aGlzLmNsYXNzZXNFbGVtZW50TG9va3VwPXt9LHQhPT10aGlzJiYodS5kYXRhKHQsdGhpcy53aWRnZXRGdWxsTmFtZSx0aGlzKSx0aGlzLl9vbighMCx0aGlzLmVsZW1lbnQse3JlbW92ZTpmdW5jdGlvbihlKXtlLnRhcmdldD09PXQmJnRoaXMuZGVzdHJveSgpfX0pLHRoaXMuZG9jdW1lbnQ9dSh0LnN0eWxlP3Qub3duZXJEb2N1bWVudDp0LmRvY3VtZW50fHx0KSx0aGlzLndpbmRvdz11KHRoaXMuZG9jdW1lbnRbMF0uZGVmYXVsdFZpZXd8fHRoaXMuZG9jdW1lbnRbMF0ucGFyZW50V2luZG93KSksdGhpcy5vcHRpb25zPXUud2lkZ2V0LmV4dGVuZCh7fSx0aGlzLm9wdGlvbnMsdGhpcy5fZ2V0Q3JlYXRlT3B0aW9ucygpLGUpLHRoaXMuX2NyZWF0ZSgpLHRoaXMub3B0aW9ucy5kaXNhYmxlZCYmdGhpcy5fc2V0T3B0aW9uRGlzYWJsZWQodGhpcy5vcHRpb25zLmRpc2FibGVkKSx0aGlzLl90cmlnZ2VyKCJjcmVhdGUiLG51bGwsdGhpcy5fZ2V0Q3JlYXRlRXZlbnREYXRhKCkpLHRoaXMuX2luaXQoKX0sX2dldENyZWF0ZU9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm57fX0sX2dldENyZWF0ZUV2ZW50RGF0YTp1Lm5vb3AsX2NyZWF0ZTp1Lm5vb3AsX2luaXQ6dS5ub29wLGRlc3Ryb3k6ZnVuY3Rpb24oKXt2YXIgaT10aGlzO3RoaXMuX2Rlc3Ryb3koKSx1LmVhY2godGhpcy5jbGFzc2VzRWxlbWVudExvb2t1cCxmdW5jdGlvbihlLHQpe2kuX3JlbW92ZUNsYXNzKHQsZSl9KSx0aGlzLmVsZW1lbnQub2ZmKHRoaXMuZXZlbnROYW1lc3BhY2UpLnJlbW92ZURhdGEodGhpcy53aWRnZXRGdWxsTmFtZSksdGhpcy53aWRnZXQoKS5vZmYodGhpcy5ldmVudE5hbWVzcGFjZSkucmVtb3ZlQXR0cigiYXJpYS1kaXNhYmxlZCIpLHRoaXMuYmluZGluZ3Mub2ZmKHRoaXMuZXZlbnROYW1lc3BhY2UpfSxfZGVzdHJveTp1Lm5vb3Asd2lkZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZWxlbWVudH0sb3B0aW9uOmZ1bmN0aW9uKGUsdCl7dmFyIGkscyxuLGE9ZTtpZigwPT09YXJndW1lbnRzLmxlbmd0aClyZXR1cm4gdS53aWRnZXQuZXh0ZW5kKHt9LHRoaXMub3B0aW9ucyk7aWYoInN0cmluZyI9PXR5cGVvZiBlKWlmKGE9e30sZT0oaT1lLnNwbGl0KCIuIikpLnNoaWZ0KCksaS5sZW5ndGgpe2ZvcihzPWFbZV09dS53aWRnZXQuZXh0ZW5kKHt9LHRoaXMub3B0aW9uc1tlXSksbj0wO248aS5sZW5ndGgtMTtuKyspc1tpW25dXT1zW2lbbl1dfHx7fSxzPXNbaVtuXV07aWYoZT1pLnBvcCgpLDE9PT1hcmd1bWVudHMubGVuZ3RoKXJldHVybiB2b2lkIDA9PT1zW2VdP251bGw6c1tlXTtzW2VdPXR9ZWxzZXtpZigxPT09YXJndW1lbnRzLmxlbmd0aClyZXR1cm4gdm9pZCAwPT09dGhpcy5vcHRpb25zW2VdP251bGw6dGhpcy5vcHRpb25zW2VdO2FbZV09dH1yZXR1cm4gdGhpcy5fc2V0T3B0aW9ucyhhKSx0aGlzfSxfc2V0T3B0aW9uczpmdW5jdGlvbihlKXtmb3IodmFyIHQgaW4gZSl0aGlzLl9zZXRPcHRpb24odCxlW3RdKTtyZXR1cm4gdGhpc30sX3NldE9wdGlvbjpmdW5jdGlvbihlLHQpe3JldHVybiJjbGFzc2VzIj09PWUmJnRoaXMuX3NldE9wdGlvbkNsYXNzZXModCksdGhpcy5vcHRpb25zW2VdPXQsImRpc2FibGVkIj09PWUmJnRoaXMuX3NldE9wdGlvbkRpc2FibGVkKHQpLHRoaXN9LF9zZXRPcHRpb25DbGFzc2VzOmZ1bmN0aW9uKGUpe3ZhciB0LGkscztmb3IodCBpbiBlKXM9dGhpcy5jbGFzc2VzRWxlbWVudExvb2t1cFt0XSxlW3RdIT09dGhpcy5vcHRpb25zLmNsYXNzZXNbdF0mJnMmJnMubGVuZ3RoJiYoaT11KHMuZ2V0KCkpLHRoaXMuX3JlbW92ZUNsYXNzKHMsdCksaS5hZGRDbGFzcyh0aGlzLl9jbGFzc2VzKHtlbGVtZW50Omksa2V5czp0LGNsYXNzZXM6ZSxhZGQ6ITB9KSkpfSxfc2V0T3B0aW9uRGlzYWJsZWQ6ZnVuY3Rpb24oZSl7dGhpcy5fdG9nZ2xlQ2xhc3ModGhpcy53aWRnZXQoKSx0aGlzLndpZGdldEZ1bGxOYW1lKyItZGlzYWJsZWQiLG51bGwsISFlKSxlJiYodGhpcy5fcmVtb3ZlQ2xhc3ModGhpcy5ob3ZlcmFibGUsbnVsbCwidWktc3RhdGUtaG92ZXIiKSx0aGlzLl9yZW1vdmVDbGFzcyh0aGlzLmZvY3VzYWJsZSxudWxsLCJ1aS1zdGF0ZS1mb2N1cyIpKX0sZW5hYmxlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3NldE9wdGlvbnMoe2Rpc2FibGVkOiExfSl9LGRpc2FibGU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fc2V0T3B0aW9ucyh7ZGlzYWJsZWQ6ITB9KX0sX2NsYXNzZXM6ZnVuY3Rpb24obil7dmFyIGE9W10sbz10aGlzO2Z1bmN0aW9uIGUoZSx0KXtmb3IodmFyIGkscz0wO3M8ZS5sZW5ndGg7cysrKWk9by5jbGFzc2VzRWxlbWVudExvb2t1cFtlW3NdXXx8dSgpLGk9bi5hZGQ\/KGZ1bmN0aW9uKCl7dmFyIGk9W107bi5lbGVtZW50LmVhY2goZnVuY3Rpb24oZSx0KXt1Lm1hcChvLmNsYXNzZXNFbGVtZW50TG9va3VwLGZ1bmN0aW9uKGUpe3JldHVybiBlfSkuc29tZShmdW5jdGlvbihlKXtyZXR1cm4gZS5pcyh0KX0pfHxpLnB1c2godCl9KSxvLl9vbih1KGkpLHtyZW1vdmU6Il91bnRyYWNrQ2xhc3Nlc0VsZW1lbnQifSl9KCksdSh1LnVuaXF1ZVNvcnQoaS5nZXQoKS5jb25jYXQobi5lbGVtZW50LmdldCgpKSkpKTp1KGkubm90KG4uZWxlbWVudCkuZ2V0KCkpLG8uY2xhc3Nlc0VsZW1lbnRMb29rdXBbZVtzXV09aSxhLnB1c2goZVtzXSksdCYmbi5jbGFzc2VzW2Vbc11dJiZhLnB1c2gobi5jbGFzc2VzW2Vbc11dKX1yZXR1cm4obj11LmV4dGVuZCh7ZWxlbWVudDp0aGlzLmVsZW1lbnQsY2xhc3Nlczp0aGlzLm9wdGlvbnMuY2xhc3Nlc3x8e319LG4pKS5rZXlzJiZlKG4ua2V5cy5tYXRjaCgvXFMrL2cpfHxbXSwhMCksbi5leHRyYSYmZShuLmV4dHJhLm1hdGNoKC9cUysvZyl8fFtdKSxhLmpvaW4oIiAiKX0sX3VudHJhY2tDbGFzc2VzRWxlbWVudDpmdW5jdGlvbihpKXt2YXIgcz10aGlzO3UuZWFjaChzLmNsYXNzZXNFbGVtZW50TG9va3VwLGZ1bmN0aW9uKGUsdCl7LTEhPT11LmluQXJyYXkoaS50YXJnZXQsdCkmJihzLmNsYXNzZXNFbGVtZW50TG9va3VwW2VdPXUodC5ub3QoaS50YXJnZXQpLmdldCgpKSl9KSx0aGlzLl9vZmYodShpLnRhcmdldCkpfSxfcmVtb3ZlQ2xhc3M6ZnVuY3Rpb24oZSx0LGkpe3JldHVybiB0aGlzLl90b2dnbGVDbGFzcyhlLHQsaSwhMSl9LF9hZGRDbGFzczpmdW5jdGlvbihlLHQsaSl7cmV0dXJuIHRoaXMuX3RvZ2dsZUNsYXNzKGUsdCxpLCEwKX0sX3RvZ2dsZUNsYXNzOmZ1bmN0aW9uKGUsdCxpLHMpe3ZhciBuPSJzdHJpbmciPT10eXBlb2YgZXx8bnVsbD09PWUsaT17ZXh0cmE6bj90Omksa2V5czpuP2U6dCxlbGVtZW50Om4\/dGhpcy5lbGVtZW50OmUsYWRkOnM9ImJvb2xlYW4iPT10eXBlb2Ygcz9zOml9O3JldHVybiBpLmVsZW1lbnQudG9nZ2xlQ2xhc3ModGhpcy5fY2xhc3NlcyhpKSxzKSx0aGlzfSxfb246ZnVuY3Rpb24obixhLGUpe3ZhciBvLHI9dGhpczsiYm9vbGVhbiIhPXR5cGVvZiBuJiYoZT1hLGE9bixuPSExKSxlPyhhPW89dShhKSx0aGlzLmJpbmRpbmdzPXRoaXMuYmluZGluZ3MuYWRkKGEpKTooZT1hLGE9dGhpcy5lbGVtZW50LG89dGhpcy53aWRnZXQoKSksdS5lYWNoKGUsZnVuY3Rpb24oZSx0KXtmdW5jdGlvbiBpKCl7aWYobnx8ITAhPT1yLm9wdGlvbnMuZGlzYWJsZWQmJiF1KHRoaXMpLmhhc0NsYXNzKCJ1aS1zdGF0ZS1kaXNhYmxlZCIpKXJldHVybigic3RyaW5nIj09dHlwZW9mIHQ\/clt0XTp0KS5hcHBseShyLGFyZ3VtZW50cyl9InN0cmluZyIhPXR5cGVvZiB0JiYoaS5ndWlkPXQuZ3VpZD10Lmd1aWR8fGkuZ3VpZHx8dS5ndWlkKyspO3ZhciBzPWUubWF0Y2goL14oW1x3Oi1dKilccyooLiopJC8pLGU9c1sxXStyLmV2ZW50TmFtZXNwYWNlLHM9c1syXTtzP28ub24oZSxzLGkpOmEub24oZSxpKX0pfSxfb2ZmOmZ1bmN0aW9uKGUsdCl7dD0odHx8IiIpLnNwbGl0KCIgIikuam9pbih0aGlzLmV2ZW50TmFtZXNwYWNlKyIgIikrdGhpcy5ldmVudE5hbWVzcGFjZSxlLm9mZih0KSx0aGlzLmJpbmRpbmdzPXUodGhpcy5iaW5kaW5ncy5ub3QoZSkuZ2V0KCkpLHRoaXMuZm9jdXNhYmxlPXUodGhpcy5mb2N1c2FibGUubm90KGUpLmdldCgpKSx0aGlzLmhvdmVyYWJsZT11KHRoaXMuaG92ZXJhYmxlLm5vdChlKS5nZXQoKSl9LF9kZWxheTpmdW5jdGlvbihlLHQpe3ZhciBpPXRoaXM7cmV0dXJuIHNldFRpbWVvdXQoZnVuY3Rpb24oKXtyZXR1cm4oInN0cmluZyI9PXR5cGVvZiBlP2lbZV06ZSkuYXBwbHkoaSxhcmd1bWVudHMpfSx0fHwwKX0sX2hvdmVyYWJsZTpmdW5jdGlvbihlKXt0aGlzLmhvdmVyYWJsZT10aGlzLmhvdmVyYWJsZS5hZGQoZSksdGhpcy5fb24oZSx7bW91c2VlbnRlcjpmdW5jdGlvbihlKXt0aGlzLl9hZGRDbGFzcyh1KGUuY3VycmVudFRhcmdldCksbnVsbCwidWktc3RhdGUtaG92ZXIiKX0sbW91c2VsZWF2ZTpmdW5jdGlvbihlKXt0aGlzLl9yZW1vdmVDbGFzcyh1KGUuY3VycmVudFRhcmdldCksbnVsbCwidWktc3RhdGUtaG92ZXIiKX19KX0sX2ZvY3VzYWJsZTpmdW5jdGlvbihlKXt0aGlzLmZvY3VzYWJsZT10aGlzLmZvY3VzYWJsZS5hZGQoZSksdGhpcy5fb24oZSx7Zm9jdXNpbjpmdW5jdGlvbihlKXt0aGlzLl9hZGRDbGFzcyh1KGUuY3VycmVudFRhcmdldCksbnVsbCwidWktc3RhdGUtZm9jdXMiKX0sZm9jdXNvdXQ6ZnVuY3Rpb24oZSl7dGhpcy5fcmVtb3ZlQ2xhc3ModShlLmN1cnJlbnRUYXJnZXQpLG51bGwsInVpLXN0YXRlLWZvY3VzIil9fSl9LF90cmlnZ2VyOmZ1bmN0aW9uKGUsdCxpKXt2YXIgcyxuLGE9dGhpcy5vcHRpb25zW2VdO2lmKGk9aXx8e30sKHQ9dS5FdmVudCh0KSkudHlwZT0oZT09PXRoaXMud2lkZ2V0RXZlbnRQcmVmaXg\/ZTp0aGlzLndpZGdldEV2ZW50UHJlZml4K2UpLnRvTG93ZXJDYXNlKCksdC50YXJnZXQ9dGhpcy5lbGVtZW50WzBdLG49dC5vcmlnaW5hbEV2ZW50KWZvcihzIGluIG4pcyBpbiB0fHwodFtzXT1uW3NdKTtyZXR1cm4gdGhpcy5lbGVtZW50LnRyaWdnZXIodCxpKSwhKCJmdW5jdGlvbiI9PXR5cGVvZiBhJiYhMT09PWEuYXBwbHkodGhpcy5lbGVtZW50WzBdLFt0XS5jb25jYXQoaSkpfHx0LmlzRGVmYXVsdFByZXZlbnRlZCgpKX19LHUuZWFjaCh7c2hvdzoiZmFkZUluIixoaWRlOiJmYWRlT3V0In0sZnVuY3Rpb24oYSxvKXt1LldpZGdldC5wcm90b3R5cGVbIl8iK2FdPWZ1bmN0aW9uKHQsZSxpKXt2YXIgcyxuPShlPSJzdHJpbmciPT10eXBlb2YgZT97ZWZmZWN0OmV9OmUpPyEwIT09ZSYmIm51bWJlciIhPXR5cGVvZiBlJiZlLmVmZmVjdHx8bzphOyJudW1iZXIiPT10eXBlb2YoZT1lfHx7fSk\/ZT17ZHVyYXRpb246ZX06ITA9PT1lJiYoZT17fSkscz0hdS5pc0VtcHR5T2JqZWN0KGUpLGUuY29tcGxldGU9aSxlLmRlbGF5JiZ0LmRlbGF5KGUuZGVsYXkpLHMmJnUuZWZmZWN0cyYmdS5lZmZlY3RzLmVmZmVjdFtuXT90W2FdKGUpOm4hPT1hJiZ0W25dP3Rbbl0oZS5kdXJhdGlvbixlLmVhc2luZyxpKTp0LnF1ZXVlKGZ1bmN0aW9uKGUpe3UodGhpcylbYV0oKSxpJiZpLmNhbGwodFswXSksZSgpfSl9fSk7dmFyIHQsczt1LndpZGdldDt1LmV4cHIucHNldWRvc3x8KHUuZXhwci5wc2V1ZG9zPXUuZXhwclsiOiJdKSx1LnVuaXF1ZVNvcnR8fCh1LnVuaXF1ZVNvcnQ9dS51bmlxdWUpLHUuZXNjYXBlU2VsZWN0b3J8fCh0PS8oW1wwLVx4MWZceDdmXXxeLT9cZCl8Xi0kfFteXHg4MC1cdUZGRkZcdy1dL2cscz1mdW5jdGlvbihlLHQpe3JldHVybiB0PyJcMCI9PT1lPyLvv70iOmUuc2xpY2UoMCwtMSkrIlxcIitlLmNoYXJDb2RlQXQoZS5sZW5ndGgtMSkudG9TdHJpbmcoMTYpKyIgIjoiXFwiK2V9LHUuZXNjYXBlU2VsZWN0b3I9ZnVuY3Rpb24oZSl7cmV0dXJuKGUrIiIpLnJlcGxhY2UodCxzKX0pLHUuZm4uZXZlbiYmdS5mbi5vZGR8fHUuZm4uZXh0ZW5kKHtldmVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiBlJTI9PTB9KX0sb2RkOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiBlJTI9PTF9KX19KTt1LnVpLmtleUNvZGU9e0JBQ0tTUEFDRTo4LENPTU1BOjE4OCxERUxFVEU6NDYsRE9XTjo0MCxFTkQ6MzUsRU5URVI6MTMsRVNDQVBFOjI3LEhPTUU6MzYsTEVGVDozNyxQQUdFX0RPV046MzQsUEFHRV9VUDozMyxQRVJJT0Q6MTkwLFJJR0hUOjM5LFNQQUNFOjMyLFRBQjo5LFVQOjM4fSx1LmZuLmV4dGVuZCh7dW5pcXVlSWQ6KGU9MCxmdW5jdGlvbigpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXt0aGlzLmlkfHwodGhpcy5pZD0idWktaWQtIisgKytlKX0pfSkscmVtb3ZlVW5pcXVlSWQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7L151aS1pZC1cZCskLy50ZXN0KHRoaXMuaWQpJiZ1KHRoaXMpLnJlbW92ZUF0dHIoImlkIil9KX19KSx1LndpZGdldCgidWkuYWNjb3JkaW9uIix7dmVyc2lvbjoiMS4xMy4yIixvcHRpb25zOnthY3RpdmU6MCxhbmltYXRlOnt9LGNsYXNzZXM6eyJ1aS1hY2NvcmRpb24taGVhZGVyIjoidWktY29ybmVyLXRvcCIsInVpLWFjY29yZGlvbi1oZWFkZXItY29sbGFwc2VkIjoidWktY29ybmVyLWFsbCIsInVpLWFjY29yZGlvbi1jb250ZW50IjoidWktY29ybmVyLWJvdHRvbSJ9LGNvbGxhcHNpYmxlOiExLGV2ZW50OiJjbGljayIsaGVhZGVyOmZ1bmN0aW9uKGUpe3JldHVybiBlLmZpbmQoIj4gbGkgPiA6Zmlyc3QtY2hpbGQiKS5hZGQoZS5maW5kKCI+IDpub3QobGkpIikuZXZlbigpKX0saGVpZ2h0U3R5bGU6ImF1dG8iLGljb25zOnthY3RpdmVIZWFkZXI6InVpLWljb24tdHJpYW5nbGUtMS1zIixoZWFkZXI6InVpLWljb24tdHJpYW5nbGUtMS1lIn0sYWN0aXZhdGU6bnVsbCxiZWZvcmVBY3RpdmF0ZTpudWxsfSxoaWRlUHJvcHM6e2JvcmRlclRvcFdpZHRoOiJoaWRlIixib3JkZXJCb3R0b21XaWR0aDoiaGlkZSIscGFkZGluZ1RvcDoiaGlkZSIscGFkZGluZ0JvdHRvbToiaGlkZSIsaGVpZ2h0OiJoaWRlIn0sc2hvd1Byb3BzOntib3JkZXJUb3BXaWR0aDoic2hvdyIsYm9yZGVyQm90dG9tV2lkdGg6InNob3ciLHBhZGRpbmdUb3A6InNob3ciLHBhZGRpbmdCb3R0b206InNob3ciLGhlaWdodDoic2hvdyJ9LF9jcmVhdGU6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLm9wdGlvbnM7dGhpcy5wcmV2U2hvdz10aGlzLnByZXZIaWRlPXUoKSx0aGlzLl9hZGRDbGFzcygidWktYWNjb3JkaW9uIiwidWktd2lkZ2V0IHVpLWhlbHBlci1yZXNldCIpLHRoaXMuZWxlbWVudC5hdHRyKCJyb2xlIiwidGFibGlzdCIpLGUuY29sbGFwc2libGV8fCExIT09ZS5hY3RpdmUmJm51bGwhPWUuYWN0aXZlfHwoZS5hY3RpdmU9MCksdGhpcy5fcHJvY2Vzc1BhbmVscygpLGUuYWN0aXZlPDAmJihlLmFjdGl2ZSs9dGhpcy5oZWFkZXJzLmxlbmd0aCksdGhpcy5fcmVmcmVzaCgpfSxfZ2V0Q3JlYXRlRXZlbnREYXRhOmZ1bmN0aW9uKCl7cmV0dXJue2hlYWRlcjp0aGlzLmFjdGl2ZSxwYW5lbDp0aGlzLmFjdGl2ZS5sZW5ndGg\/dGhpcy5hY3RpdmUubmV4dCgpOnUoKX19LF9jcmVhdGVJY29uczpmdW5jdGlvbigpe3ZhciBlLHQ9dGhpcy5vcHRpb25zLmljb25zO3QmJihlPXUoIjxzcGFuPiIpLHRoaXMuX2FkZENsYXNzKGUsInVpLWFjY29yZGlvbi1oZWFkZXItaWNvbiIsInVpLWljb24gIit0LmhlYWRlciksZS5wcmVwZW5kVG8odGhpcy5oZWFkZXJzKSxlPXRoaXMuYWN0aXZlLmNoaWxkcmVuKCIudWktYWNjb3JkaW9uLWhlYWRlci1pY29uIiksdGhpcy5fcmVtb3ZlQ2xhc3MoZSx0LmhlYWRlcikuX2FkZENsYXNzKGUsbnVsbCx0LmFjdGl2ZUhlYWRlcikuX2FkZENsYXNzKHRoaXMuaGVhZGVycywidWktYWNjb3JkaW9uLWljb25zIikpfSxfZGVzdHJveUljb25zOmZ1bmN0aW9uKCl7dGhpcy5fcmVtb3ZlQ2xhc3ModGhpcy5oZWFkZXJzLCJ1aS1hY2NvcmRpb24taWNvbnMiKSx0aGlzLmhlYWRlcnMuY2hpbGRyZW4oIi51aS1hY2NvcmRpb24taGVhZGVyLWljb24iKS5yZW1vdmUoKX0sX2Rlc3Ryb3k6ZnVuY3Rpb24oKXt2YXIgZTt0aGlzLmVsZW1lbnQucmVtb3ZlQXR0cigicm9sZSIpLHRoaXMuaGVhZGVycy5yZW1vdmVBdHRyKCJyb2xlIGFyaWEtZXhwYW5kZWQgYXJpYS1zZWxlY3RlZCBhcmlhLWNvbnRyb2xzIHRhYkluZGV4IikucmVtb3ZlVW5pcXVlSWQoKSx0aGlzLl9kZXN0cm95SWNvbnMoKSxlPXRoaXMuaGVhZGVycy5uZXh0KCkuY3NzKCJkaXNwbGF5IiwiIikucmVtb3ZlQXR0cigicm9sZSBhcmlhLWhpZGRlbiBhcmlhLWxhYmVsbGVkYnkiKS5yZW1vdmVVbmlxdWVJZCgpLCJjb250ZW50IiE9PXRoaXMub3B0aW9ucy5oZWlnaHRTdHlsZSYmZS5jc3MoImhlaWdodCIsIiIpfSxfc2V0T3B0aW9uOmZ1bmN0aW9uKGUsdCl7ImFjdGl2ZSIhPT1lPygiZXZlbnQiPT09ZSYmKHRoaXMub3B0aW9ucy5ldmVudCYmdGhpcy5fb2ZmKHRoaXMuaGVhZGVycyx0aGlzLm9wdGlvbnMuZXZlbnQpLHRoaXMuX3NldHVwRXZlbnRzKHQpKSx0aGlzLl9zdXBlcihlLHQpLCJjb2xsYXBzaWJsZSIhPT1lfHx0fHwhMSE9PXRoaXMub3B0aW9ucy5hY3RpdmV8fHRoaXMuX2FjdGl2YXRlKDApLCJpY29ucyI9PT1lJiYodGhpcy5fZGVzdHJveUljb25zKCksdCYmdGhpcy5fY3JlYXRlSWNvbnMoKSkpOnRoaXMuX2FjdGl2YXRlKHQpfSxfc2V0T3B0aW9uRGlzYWJsZWQ6ZnVuY3Rpb24oZSl7dGhpcy5fc3VwZXIoZSksdGhpcy5lbGVtZW50LmF0dHIoImFyaWEtZGlzYWJsZWQiLGUpLHRoaXMuX3RvZ2dsZUNsYXNzKG51bGwsInVpLXN0YXRlLWRpc2FibGVkIiwhIWUpLHRoaXMuX3RvZ2dsZUNsYXNzKHRoaXMuaGVhZGVycy5hZGQodGhpcy5oZWFkZXJzLm5leHQoKSksbnVsbCwidWktc3RhdGUtZGlzYWJsZWQiLCEhZSl9LF9rZXlkb3duOmZ1bmN0aW9uKGUpe2lmKCFlLmFsdEtleSYmIWUuY3RybEtleSl7dmFyIHQ9dS51aS5rZXlDb2RlLGk9dGhpcy5oZWFkZXJzLmxlbmd0aCxzPXRoaXMuaGVhZGVycy5pbmRleChlLnRhcmdldCksbj0hMTtzd2l0Y2goZS5rZXlDb2RlKXtjYXNlIHQuUklHSFQ6Y2FzZSB0LkRPV046bj10aGlzLmhlYWRlcnNbKHMrMSklaV07YnJlYWs7Y2FzZSB0LkxFRlQ6Y2FzZSB0LlVQOm49dGhpcy5oZWFkZXJzWyhzLTEraSklaV07YnJlYWs7Y2FzZSB0LlNQQUNFOmNhc2UgdC5FTlRFUjp0aGlzLl9ldmVudEhhbmRsZXIoZSk7YnJlYWs7Y2FzZSB0LkhPTUU6bj10aGlzLmhlYWRlcnNbMF07YnJlYWs7Y2FzZSB0LkVORDpuPXRoaXMuaGVhZGVyc1tpLTFdfW4mJih1KGUudGFyZ2V0KS5hdHRyKCJ0YWJJbmRleCIsLTEpLHUobikuYXR0cigidGFiSW5kZXgiLDApLHUobikudHJpZ2dlcigiZm9jdXMiKSxlLnByZXZlbnREZWZhdWx0KCkpfX0sX3BhbmVsS2V5RG93bjpmdW5jdGlvbihlKXtlLmtleUNvZGU9PT11LnVpLmtleUNvZGUuVVAmJmUuY3RybEtleSYmdShlLmN1cnJlbnRUYXJnZXQpLnByZXYoKS50cmlnZ2VyKCJmb2N1cyIpfSxyZWZyZXNoOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5vcHRpb25zO3RoaXMuX3Byb2Nlc3NQYW5lbHMoKSwhMT09PWUuYWN0aXZlJiYhMD09PWUuY29sbGFwc2libGV8fCF0aGlzLmhlYWRlcnMubGVuZ3RoPyhlLmFjdGl2ZT0hMSx0aGlzLmFjdGl2ZT11KCkpOiExPT09ZS5hY3RpdmU\/dGhpcy5fYWN0aXZhdGUoMCk6dGhpcy5hY3RpdmUubGVuZ3RoJiYhdS5jb250YWlucyh0aGlzLmVsZW1lbnRbMF0sdGhpcy5hY3RpdmVbMF0pP3RoaXMuaGVhZGVycy5sZW5ndGg9PT10aGlzLmhlYWRlcnMuZmluZCgiLnVpLXN0YXRlLWRpc2FibGVkIikubGVuZ3RoPyhlLmFjdGl2ZT0hMSx0aGlzLmFjdGl2ZT11KCkpOnRoaXMuX2FjdGl2YXRlKE1hdGgubWF4KDAsZS5hY3RpdmUtMSkpOmUuYWN0aXZlPXRoaXMuaGVhZGVycy5pbmRleCh0aGlzLmFjdGl2ZSksdGhpcy5fZGVzdHJveUljb25zKCksdGhpcy5fcmVmcmVzaCgpfSxfcHJvY2Vzc1BhbmVsczpmdW5jdGlvbigpe3ZhciBlPXRoaXMuaGVhZGVycyx0PXRoaXMucGFuZWxzOyJmdW5jdGlvbiI9PXR5cGVvZiB0aGlzLm9wdGlvbnMuaGVhZGVyP3RoaXMuaGVhZGVycz10aGlzLm9wdGlvbnMuaGVhZGVyKHRoaXMuZWxlbWVudCk6dGhpcy5oZWFkZXJzPXRoaXMuZWxlbWVudC5maW5kKHRoaXMub3B0aW9ucy5oZWFkZXIpLHRoaXMuX2FkZENsYXNzKHRoaXMuaGVhZGVycywidWktYWNjb3JkaW9uLWhlYWRlciB1aS1hY2NvcmRpb24taGVhZGVyLWNvbGxhcHNlZCIsInVpLXN0YXRlLWRlZmF1bHQiKSx0aGlzLnBhbmVscz10aGlzLmhlYWRlcnMubmV4dCgpLmZpbHRlcigiOm5vdCgudWktYWNjb3JkaW9uLWNvbnRlbnQtYWN0aXZlKSIpLmhpZGUoKSx0aGlzLl9hZGRDbGFzcyh0aGlzLnBhbmVscywidWktYWNjb3JkaW9uLWNvbnRlbnQiLCJ1aS1oZWxwZXItcmVzZXQgdWktd2lkZ2V0LWNvbnRlbnQiKSx0JiYodGhpcy5fb2ZmKGUubm90KHRoaXMuaGVhZGVycykpLHRoaXMuX29mZih0Lm5vdCh0aGlzLnBhbmVscykpKX0sX3JlZnJlc2g6ZnVuY3Rpb24oKXt2YXIgaSxlPXRoaXMub3B0aW9ucyx0PWUuaGVpZ2h0U3R5bGUscz10aGlzLmVsZW1lbnQucGFyZW50KCk7dGhpcy5hY3RpdmU9dGhpcy5fZmluZEFjdGl2ZShlLmFjdGl2ZSksdGhpcy5fYWRkQ2xhc3ModGhpcy5hY3RpdmUsInVpLWFjY29yZGlvbi1oZWFkZXItYWN0aXZlIiwidWktc3RhdGUtYWN0aXZlIikuX3JlbW92ZUNsYXNzKHRoaXMuYWN0aXZlLCJ1aS1hY2NvcmRpb24taGVhZGVyLWNvbGxhcHNlZCIpLHRoaXMuX2FkZENsYXNzKHRoaXMuYWN0aXZlLm5leHQoKSwidWktYWNjb3JkaW9uLWNvbnRlbnQtYWN0aXZlIiksdGhpcy5hY3RpdmUubmV4dCgpLnNob3coKSx0aGlzLmhlYWRlcnMuYXR0cigicm9sZSIsInRhYiIpLmVhY2goZnVuY3Rpb24oKXt2YXIgZT11KHRoaXMpLHQ9ZS51bmlxdWVJZCgpLmF0dHIoImlkIiksaT1lLm5leHQoKSxzPWkudW5pcXVlSWQoKS5hdHRyKCJpZCIpO2UuYXR0cigiYXJpYS1jb250cm9scyIscyksaS5hdHRyKCJhcmlhLWxhYmVsbGVkYnkiLHQpfSkubmV4dCgpLmF0dHIoInJvbGUiLCJ0YWJwYW5lbCIpLHRoaXMuaGVhZGVycy5ub3QodGhpcy5hY3RpdmUpLmF0dHIoeyJhcmlhLXNlbGVjdGVkIjoiZmFsc2UiLCJhcmlhLWV4cGFuZGVkIjoiZmFsc2UiLHRhYkluZGV4Oi0xfSkubmV4dCgpLmF0dHIoeyJhcmlhLWhpZGRlbiI6InRydWUifSkuaGlkZSgpLHRoaXMuYWN0aXZlLmxlbmd0aD90aGlzLmFjdGl2ZS5hdHRyKHsiYXJpYS1zZWxlY3RlZCI6InRydWUiLCJhcmlhLWV4cGFuZGVkIjoidHJ1ZSIsdGFiSW5kZXg6MH0pLm5leHQoKS5hdHRyKHsiYXJpYS1oaWRkZW4iOiJmYWxzZSJ9KTp0aGlzLmhlYWRlcnMuZXEoMCkuYXR0cigidGFiSW5kZXgiLDApLHRoaXMuX2NyZWF0ZUljb25zKCksdGhpcy5fc2V0dXBFdmVudHMoZS5ldmVudCksImZpbGwiPT09dD8oaT1zLmhlaWdodCgpLHRoaXMuZWxlbWVudC5zaWJsaW5ncygiOnZpc2libGUiKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIGU9dSh0aGlzKSx0PWUuY3NzKCJwb3NpdGlvbiIpOyJhYnNvbHV0ZSIhPT10JiYiZml4ZWQiIT09dCYmKGktPWUub3V0ZXJIZWlnaHQoITApKX0pLHRoaXMuaGVhZGVycy5lYWNoKGZ1bmN0aW9uKCl7aS09dSh0aGlzKS5vdXRlckhlaWdodCghMCl9KSx0aGlzLmhlYWRlcnMubmV4dCgpLmVhY2goZnVuY3Rpb24oKXt1KHRoaXMpLmhlaWdodChNYXRoLm1heCgwLGktdSh0aGlzKS5pbm5lckhlaWdodCgpK3UodGhpcykuaGVpZ2h0KCkpKX0pLmNzcygib3ZlcmZsb3ciLCJhdXRvIikpOiJhdXRvIj09PXQmJihpPTAsdGhpcy5oZWFkZXJzLm5leHQoKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIGU9dSh0aGlzKS5pcygiOnZpc2libGUiKTtlfHx1KHRoaXMpLnNob3coKSxpPU1hdGgubWF4KGksdSh0aGlzKS5jc3MoImhlaWdodCIsIiIpLmhlaWdodCgpKSxlfHx1KHRoaXMpLmhpZGUoKX0pLmhlaWdodChpKSl9LF9hY3RpdmF0ZTpmdW5jdGlvbihlKXtlPXRoaXMuX2ZpbmRBY3RpdmUoZSlbMF07ZSE9PXRoaXMuYWN0aXZlWzBdJiYoZT1lfHx0aGlzLmFjdGl2ZVswXSx0aGlzLl9ldmVudEhhbmRsZXIoe3RhcmdldDplLGN1cnJlbnRUYXJnZXQ6ZSxwcmV2ZW50RGVmYXVsdDp1Lm5vb3B9KSl9LF9maW5kQWN0aXZlOmZ1bmN0aW9uKGUpe3JldHVybiJudW1iZXIiPT10eXBlb2YgZT90aGlzLmhlYWRlcnMuZXEoZSk6dSgpfSxfc2V0dXBFdmVudHM6ZnVuY3Rpb24oZSl7dmFyIGk9e2tleWRvd246Il9rZXlkb3duIn07ZSYmdS5lYWNoKGUuc3BsaXQoIiAiKSxmdW5jdGlvbihlLHQpe2lbdF09Il9ldmVudEhhbmRsZXIifSksdGhpcy5fb2ZmKHRoaXMuaGVhZGVycy5hZGQodGhpcy5oZWFkZXJzLm5leHQoKSkpLHRoaXMuX29uKHRoaXMuaGVhZGVycyxpKSx0aGlzLl9vbih0aGlzLmhlYWRlcnMubmV4dCgpLHtrZXlkb3duOiJfcGFuZWxLZXlEb3duIn0pLHRoaXMuX2hvdmVyYWJsZSh0aGlzLmhlYWRlcnMpLHRoaXMuX2ZvY3VzYWJsZSh0aGlzLmhlYWRlcnMpfSxfZXZlbnRIYW5kbGVyOmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMub3B0aW9ucyxpPXRoaXMuYWN0aXZlLHM9dShlLmN1cnJlbnRUYXJnZXQpLG49c1swXT09PWlbMF0sYT1uJiZ0LmNvbGxhcHNpYmxlLG89YT91KCk6cy5uZXh0KCkscj1pLm5leHQoKSxvPXtvbGRIZWFkZXI6aSxvbGRQYW5lbDpyLG5ld0hlYWRlcjphP3UoKTpzLG5ld1BhbmVsOm99O2UucHJldmVudERlZmF1bHQoKSxuJiYhdC5jb2xsYXBzaWJsZXx8ITE9PT10aGlzLl90cmlnZ2VyKCJiZWZvcmVBY3RpdmF0ZSIsZSxvKXx8KHQuYWN0aXZlPSFhJiZ0aGlzLmhlYWRlcnMuaW5kZXgocyksdGhpcy5hY3RpdmU9bj91KCk6cyx0aGlzLl90b2dnbGUobyksdGhpcy5fcmVtb3ZlQ2xhc3MoaSwidWktYWNjb3JkaW9uLWhlYWRlci1hY3RpdmUiLCJ1aS1zdGF0ZS1hY3RpdmUiKSx0Lmljb25zJiYoaT1pLmNoaWxkcmVuKCIudWktYWNjb3JkaW9uLWhlYWRlci1pY29uIiksdGhpcy5fcmVtb3ZlQ2xhc3MoaSxudWxsLHQuaWNvbnMuYWN0aXZlSGVhZGVyKS5fYWRkQ2xhc3MoaSxudWxsLHQuaWNvbnMuaGVhZGVyKSksbnx8KHRoaXMuX3JlbW92ZUNsYXNzKHMsInVpLWFjY29yZGlvbi1oZWFkZXItY29sbGFwc2VkIikuX2FkZENsYXNzKHMsInVpLWFjY29yZGlvbi1oZWFkZXItYWN0aXZlIiwidWktc3RhdGUtYWN0aXZlIiksdC5pY29ucyYmKG49cy5jaGlsZHJlbigiLnVpLWFjY29yZGlvbi1oZWFkZXItaWNvbiIpLHRoaXMuX3JlbW92ZUNsYXNzKG4sbnVsbCx0Lmljb25zLmhlYWRlcikuX2FkZENsYXNzKG4sbnVsbCx0Lmljb25zLmFjdGl2ZUhlYWRlcikpLHRoaXMuX2FkZENsYXNzKHMubmV4dCgpLCJ1aS1hY2NvcmRpb24tY29udGVudC1hY3RpdmUiKSkpfSxfdG9nZ2xlOmZ1bmN0aW9uKGUpe3ZhciB0PWUubmV3UGFuZWwsaT10aGlzLnByZXZTaG93Lmxlbmd0aD90aGlzLnByZXZTaG93OmUub2xkUGFuZWw7dGhpcy5wcmV2U2hvdy5hZGQodGhpcy5wcmV2SGlkZSkuc3RvcCghMCwhMCksdGhpcy5wcmV2U2hvdz10LHRoaXMucHJldkhpZGU9aSx0aGlzLm9wdGlvbnMuYW5pbWF0ZT90aGlzLl9hbmltYXRlKHQsaSxlKTooaS5oaWRlKCksdC5zaG93KCksdGhpcy5fdG9nZ2xlQ29tcGxldGUoZSkpLGkuYXR0cih7ImFyaWEtaGlkZGVuIjoidHJ1ZSJ9KSxpLnByZXYoKS5hdHRyKHsiYXJpYS1zZWxlY3RlZCI6ImZhbHNlIiwiYXJpYS1leHBhbmRlZCI6ImZhbHNlIn0pLHQubGVuZ3RoJiZpLmxlbmd0aD9pLnByZXYoKS5hdHRyKHt0YWJJbmRleDotMSwiYXJpYS1leHBhbmRlZCI6ImZhbHNlIn0pOnQubGVuZ3RoJiZ0aGlzLmhlYWRlcnMuZmlsdGVyKGZ1bmN0aW9uKCl7cmV0dXJuIDA9PT1wYXJzZUludCh1KHRoaXMpLmF0dHIoInRhYkluZGV4IiksMTApfSkuYXR0cigidGFiSW5kZXgiLC0xKSx0LmF0dHIoImFyaWEtaGlkZGVuIiwiZmFsc2UiKS5wcmV2KCkuYXR0cih7ImFyaWEtc2VsZWN0ZWQiOiJ0cnVlIiwiYXJpYS1leHBhbmRlZCI6InRydWUiLHRhYkluZGV4OjB9KX0sX2FuaW1hdGU6ZnVuY3Rpb24oZSxpLHQpe3ZhciBzLG4sYSxvPXRoaXMscj0wLGg9ZS5jc3MoImJveC1zaXppbmciKSxsPWUubGVuZ3RoJiYoIWkubGVuZ3RofHxlLmluZGV4KCk8aS5pbmRleCgpKSx1PXRoaXMub3B0aW9ucy5hbmltYXRlfHx7fSxjPWwmJnUuZG93bnx8dSxsPWZ1bmN0aW9uKCl7by5fdG9nZ2xlQ29tcGxldGUodCl9O3JldHVybiBuPShuPSJzdHJpbmciPT10eXBlb2YgYz9jOm4pfHxjLmVhc2luZ3x8dS5lYXNpbmcsYT0oYT0ibnVtYmVyIj09dHlwZW9mIGM\/YzphKXx8Yy5kdXJhdGlvbnx8dS5kdXJhdGlvbixpLmxlbmd0aD9lLmxlbmd0aD8ocz1lLnNob3coKS5vdXRlckhlaWdodCgpLGkuYW5pbWF0ZSh0aGlzLmhpZGVQcm9wcyx7ZHVyYXRpb246YSxlYXNpbmc6bixzdGVwOmZ1bmN0aW9uKGUsdCl7dC5ub3c9TWF0aC5yb3VuZChlKX19KSx2b2lkIGUuaGlkZSgpLmFuaW1hdGUodGhpcy5zaG93UHJvcHMse2R1cmF0aW9uOmEsZWFzaW5nOm4sY29tcGxldGU6bCxzdGVwOmZ1bmN0aW9uKGUsdCl7dC5ub3c9TWF0aC5yb3VuZChlKSwiaGVpZ2h0IiE9PXQucHJvcD8iY29udGVudC1ib3giPT09aCYmKHIrPXQubm93KToiY29udGVudCIhPT1vLm9wdGlvbnMuaGVpZ2h0U3R5bGUmJih0Lm5vdz1NYXRoLnJvdW5kKHMtaS5vdXRlckhlaWdodCgpLXIpLHI9MCl9fSkpOmkuYW5pbWF0ZSh0aGlzLmhpZGVQcm9wcyxhLG4sbCk6ZS5hbmltYXRlKHRoaXMuc2hvd1Byb3BzLGEsbixsKX0sX3RvZ2dsZUNvbXBsZXRlOmZ1bmN0aW9uKGUpe3ZhciB0PWUub2xkUGFuZWwsaT10LnByZXYoKTt0aGlzLl9yZW1vdmVDbGFzcyh0LCJ1aS1hY2NvcmRpb24tY29udGVudC1hY3RpdmUiKSx0aGlzLl9yZW1vdmVDbGFzcyhpLCJ1aS1hY2NvcmRpb24taGVhZGVyLWFjdGl2ZSIpLl9hZGRDbGFzcyhpLCJ1aS1hY2NvcmRpb24taGVhZGVyLWNvbGxhcHNlZCIpLHQubGVuZ3RoJiYodC5wYXJlbnQoKVswXS5jbGFzc05hbWU9dC5wYXJlbnQoKVswXS5jbGFzc05hbWUpLHRoaXMuX3RyaWdnZXIoImFjdGl2YXRlIixudWxsLGUpfX0pLHUudWkuaWU9ISEvbXNpZSBbXHcuXSsvLmV4ZWMobmF2aWdhdG9yLnVzZXJBZ2VudC50b0xvd2VyQ2FzZSgpKTt2YXIgZSxhPSExO3UoZG9jdW1lbnQpLm9uKCJtb3VzZXVwIixmdW5jdGlvbigpe2E9ITF9KTt1LndpZGdldCgidWkubW91c2UiLHt2ZXJzaW9uOiIxLjEzLjIiLG9wdGlvbnM6e2NhbmNlbDoiaW5wdXQsIHRleHRhcmVhLCBidXR0b24sIHNlbGVjdCwgb3B0aW9uIixkaXN0YW5jZToxLGRlbGF5OjB9LF9tb3VzZUluaXQ6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3RoaXMuZWxlbWVudC5vbigibW91c2Vkb3duLiIrdGhpcy53aWRnZXROYW1lLGZ1bmN0aW9uKGUpe3JldHVybiB0Ll9tb3VzZURvd24oZSl9KS5vbigiY2xpY2suIit0aGlzLndpZGdldE5hbWUsZnVuY3Rpb24oZSl7aWYoITA9PT11LmRhdGEoZS50YXJnZXQsdC53aWRnZXROYW1lKyIucHJldmVudENsaWNrRXZlbnQiKSlyZXR1cm4gdS5yZW1vdmVEYXRhKGUudGFyZ2V0LHQud2lkZ2V0TmFtZSsiLnByZXZlbnRDbGlja0V2ZW50IiksZS5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKSwhMX0pLHRoaXMuc3RhcnRlZD0hMX0sX21vdXNlRGVzdHJveTpmdW5jdGlvbigpe3RoaXMuZWxlbWVudC5vZmYoIi4iK3RoaXMud2lkZ2V0TmFtZSksdGhpcy5fbW91c2VNb3ZlRGVsZWdhdGUmJnRoaXMuZG9jdW1lbnQub2ZmKCJtb3VzZW1vdmUuIit0aGlzLndpZGdldE5hbWUsdGhpcy5fbW91c2VNb3ZlRGVsZWdhdGUpLm9mZigibW91c2V1cC4iK3RoaXMud2lkZ2V0TmFtZSx0aGlzLl9tb3VzZVVwRGVsZWdhdGUpfSxfbW91c2VEb3duOmZ1bmN0aW9uKGUpe2lmKCFhKXt0aGlzLl9tb3VzZU1vdmVkPSExLHRoaXMuX21vdXNlU3RhcnRlZCYmdGhpcy5fbW91c2VVcChlKSx0aGlzLl9tb3VzZURvd25FdmVudD1lO3ZhciB0PXRoaXMsaT0xPT09ZS53aGljaCxzPSEoInN0cmluZyIhPXR5cGVvZiB0aGlzLm9wdGlvbnMuY2FuY2VsfHwhZS50YXJnZXQubm9kZU5hbWUpJiZ1KGUudGFyZ2V0KS5jbG9zZXN0KHRoaXMub3B0aW9ucy5jYW5jZWwpLmxlbmd0aDtyZXR1cm4gaSYmIXMmJnRoaXMuX21vdXNlQ2FwdHVyZShlKT8odGhpcy5tb3VzZURlbGF5TWV0PSF0aGlzLm9wdGlvbnMuZGVsYXksdGhpcy5tb3VzZURlbGF5TWV0fHwodGhpcy5fbW91c2VEZWxheVRpbWVyPXNldFRpbWVvdXQoZnVuY3Rpb24oKXt0Lm1vdXNlRGVsYXlNZXQ9ITB9LHRoaXMub3B0aW9ucy5kZWxheSkpLHRoaXMuX21vdXNlRGlzdGFuY2VNZXQoZSkmJnRoaXMuX21vdXNlRGVsYXlNZXQoZSkmJih0aGlzLl9tb3VzZVN0YXJ0ZWQ9ITEhPT10aGlzLl9tb3VzZVN0YXJ0KGUpLCF0aGlzLl9tb3VzZVN0YXJ0ZWQpPyhlLnByZXZlbnREZWZhdWx0KCksITApOighMD09PXUuZGF0YShlLnRhcmdldCx0aGlzLndpZGdldE5hbWUrIi5wcmV2ZW50Q2xpY2tFdmVudCIpJiZ1LnJlbW92ZURhdGEoZS50YXJnZXQsdGhpcy53aWRnZXROYW1lKyIucHJldmVudENsaWNrRXZlbnQiKSx0aGlzLl9tb3VzZU1vdmVEZWxlZ2F0ZT1mdW5jdGlvbihlKXtyZXR1cm4gdC5fbW91c2VNb3ZlKGUpfSx0aGlzLl9tb3VzZVVwRGVsZWdhdGU9ZnVuY3Rpb24oZSl7cmV0dXJuIHQuX21vdXNlVXAoZSl9LHRoaXMuZG9jdW1lbnQub24oIm1vdXNlbW92ZS4iK3RoaXMud2lkZ2V0TmFtZSx0aGlzLl9tb3VzZU1vdmVEZWxlZ2F0ZSkub24oIm1vdXNldXAuIit0aGlzLndpZGdldE5hbWUsdGhpcy5fbW91c2VVcERlbGVnYXRlKSxlLnByZXZlbnREZWZhdWx0KCksYT0hMCkpOiEwfX0sX21vdXNlTW92ZTpmdW5jdGlvbihlKXtpZih0aGlzLl9tb3VzZU1vdmVkKXtpZih1LnVpLmllJiYoIWRvY3VtZW50LmRvY3VtZW50TW9kZXx8ZG9jdW1lbnQuZG9jdW1lbnRNb2RlPDkpJiYhZS5idXR0b24pcmV0dXJuIHRoaXMuX21vdXNlVXAoZSk7aWYoIWUud2hpY2gpaWYoZS5vcmlnaW5hbEV2ZW50LmFsdEtleXx8ZS5vcmlnaW5hbEV2ZW50LmN0cmxLZXl8fGUub3JpZ2luYWxFdmVudC5tZXRhS2V5fHxlLm9yaWdpbmFsRXZlbnQuc2hpZnRLZXkpdGhpcy5pZ25vcmVNaXNzaW5nV2hpY2g9ITA7ZWxzZSBpZighdGhpcy5pZ25vcmVNaXNzaW5nV2hpY2gpcmV0dXJuIHRoaXMuX21vdXNlVXAoZSl9cmV0dXJuKGUud2hpY2h8fGUuYnV0dG9uKSYmKHRoaXMuX21vdXNlTW92ZWQ9ITApLHRoaXMuX21vdXNlU3RhcnRlZD8odGhpcy5fbW91c2VEcmFnKGUpLGUucHJldmVudERlZmF1bHQoKSk6KHRoaXMuX21vdXNlRGlzdGFuY2VNZXQoZSkmJnRoaXMuX21vdXNlRGVsYXlNZXQoZSkmJih0aGlzLl9tb3VzZVN0YXJ0ZWQ9ITEhPT10aGlzLl9tb3VzZVN0YXJ0KHRoaXMuX21vdXNlRG93bkV2ZW50LGUpLHRoaXMuX21vdXNlU3RhcnRlZD90aGlzLl9tb3VzZURyYWcoZSk6dGhpcy5fbW91c2VVcChlKSksIXRoaXMuX21vdXNlU3RhcnRlZCl9LF9tb3VzZVVwOmZ1bmN0aW9uKGUpe3RoaXMuZG9jdW1lbnQub2ZmKCJtb3VzZW1vdmUuIit0aGlzLndpZGdldE5hbWUsdGhpcy5fbW91c2VNb3ZlRGVsZWdhdGUpLm9mZigibW91c2V1cC4iK3RoaXMud2lkZ2V0TmFtZSx0aGlzLl9tb3VzZVVwRGVsZWdhdGUpLHRoaXMuX21vdXNlU3RhcnRlZCYmKHRoaXMuX21vdXNlU3RhcnRlZD0hMSxlLnRhcmdldD09PXRoaXMuX21vdXNlRG93bkV2ZW50LnRhcmdldCYmdS5kYXRhKGUudGFyZ2V0LHRoaXMud2lkZ2V0TmFtZSsiLnByZXZlbnRDbGlja0V2ZW50IiwhMCksdGhpcy5fbW91c2VTdG9wKGUpKSx0aGlzLl9tb3VzZURlbGF5VGltZXImJihjbGVhclRpbWVvdXQodGhpcy5fbW91c2VEZWxheVRpbWVyKSxkZWxldGUgdGhpcy5fbW91c2VEZWxheVRpbWVyKSx0aGlzLmlnbm9yZU1pc3NpbmdXaGljaD0hMSxhPSExLGUucHJldmVudERlZmF1bHQoKX0sX21vdXNlRGlzdGFuY2VNZXQ6ZnVuY3Rpb24oZSl7cmV0dXJuIE1hdGgubWF4KE1hdGguYWJzKHRoaXMuX21vdXNlRG93bkV2ZW50LnBhZ2VYLWUucGFnZVgpLE1hdGguYWJzKHRoaXMuX21vdXNlRG93bkV2ZW50LnBhZ2VZLWUucGFnZVkpKT49dGhpcy5vcHRpb25zLmRpc3RhbmNlfSxfbW91c2VEZWxheU1ldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLm1vdXNlRGVsYXlNZXR9LF9tb3VzZVN0YXJ0OmZ1bmN0aW9uKCl7fSxfbW91c2VEcmFnOmZ1bmN0aW9uKCl7fSxfbW91c2VTdG9wOmZ1bmN0aW9uKCl7fSxfbW91c2VDYXB0dXJlOmZ1bmN0aW9uKCl7cmV0dXJuITB9fSksdS53aWRnZXQoInVpLnNsaWRlciIsdS51aS5tb3VzZSx7dmVyc2lvbjoiMS4xMy4yIix3aWRnZXRFdmVudFByZWZpeDoic2xpZGUiLG9wdGlvbnM6e2FuaW1hdGU6ITEsY2xhc3Nlczp7InVpLXNsaWRlciI6InVpLWNvcm5lci1hbGwiLCJ1aS1zbGlkZXItaGFuZGxlIjoidWktY29ybmVyLWFsbCIsInVpLXNsaWRlci1yYW5nZSI6InVpLWNvcm5lci1hbGwgdWktd2lkZ2V0LWhlYWRlciJ9LGRpc3RhbmNlOjAsbWF4OjEwMCxtaW46MCxvcmllbnRhdGlvbjoiaG9yaXpvbnRhbCIscmFuZ2U6ITEsc3RlcDoxLHZhbHVlOjAsdmFsdWVzOm51bGwsY2hhbmdlOm51bGwsc2xpZGU6bnVsbCxzdGFydDpudWxsLHN0b3A6bnVsbH0sbnVtUGFnZXM6NSxfY3JlYXRlOmZ1bmN0aW9uKCl7dGhpcy5fa2V5U2xpZGluZz0hMSx0aGlzLl9tb3VzZVNsaWRpbmc9ITEsdGhpcy5fYW5pbWF0ZU9mZj0hMCx0aGlzLl9oYW5kbGVJbmRleD1udWxsLHRoaXMuX2RldGVjdE9yaWVudGF0aW9uKCksdGhpcy5fbW91c2VJbml0KCksdGhpcy5fY2FsY3VsYXRlTmV3TWF4KCksdGhpcy5fYWRkQ2xhc3MoInVpLXNsaWRlciB1aS1zbGlkZXItIit0aGlzLm9yaWVudGF0aW9uLCJ1aS13aWRnZXQgdWktd2lkZ2V0LWNvbnRlbnQiKSx0aGlzLl9yZWZyZXNoKCksdGhpcy5fYW5pbWF0ZU9mZj0hMX0sX3JlZnJlc2g6ZnVuY3Rpb24oKXt0aGlzLl9jcmVhdGVSYW5nZSgpLHRoaXMuX2NyZWF0ZUhhbmRsZXMoKSx0aGlzLl9zZXR1cEV2ZW50cygpLHRoaXMuX3JlZnJlc2hWYWx1ZSgpfSxfY3JlYXRlSGFuZGxlczpmdW5jdGlvbigpe3ZhciBlLHQ9dGhpcy5vcHRpb25zLGk9dGhpcy5lbGVtZW50LmZpbmQoIi51aS1zbGlkZXItaGFuZGxlIikscz1bXSxuPXQudmFsdWVzJiZ0LnZhbHVlcy5sZW5ndGh8fDE7Zm9yKGkubGVuZ3RoPm4mJihpLnNsaWNlKG4pLnJlbW92ZSgpLGk9aS5zbGljZSgwLG4pKSxlPWkubGVuZ3RoO2U8bjtlKyspcy5wdXNoKCI8c3BhbiB0YWJpbmRleD0nMCc+PC9zcGFuPiIpO3RoaXMuaGFuZGxlcz1pLmFkZCh1KHMuam9pbigiIikpLmFwcGVuZFRvKHRoaXMuZWxlbWVudCkpLHRoaXMuX2FkZENsYXNzKHRoaXMuaGFuZGxlcywidWktc2xpZGVyLWhhbmRsZSIsInVpLXN0YXRlLWRlZmF1bHQiKSx0aGlzLmhhbmRsZT10aGlzLmhhbmRsZXMuZXEoMCksdGhpcy5oYW5kbGVzLmVhY2goZnVuY3Rpb24oZSl7dSh0aGlzKS5kYXRhKCJ1aS1zbGlkZXItaGFuZGxlLWluZGV4IixlKS5hdHRyKCJ0YWJJbmRleCIsMCl9KX0sX2NyZWF0ZVJhbmdlOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5vcHRpb25zO2UucmFuZ2U\/KCEwPT09ZS5yYW5nZSYmKGUudmFsdWVzP2UudmFsdWVzLmxlbmd0aCYmMiE9PWUudmFsdWVzLmxlbmd0aD9lLnZhbHVlcz1bZS52YWx1ZXNbMF0sZS52YWx1ZXNbMF1dOkFycmF5LmlzQXJyYXkoZS52YWx1ZXMpJiYoZS52YWx1ZXM9ZS52YWx1ZXMuc2xpY2UoMCkpOmUudmFsdWVzPVt0aGlzLl92YWx1ZU1pbigpLHRoaXMuX3ZhbHVlTWluKCldKSx0aGlzLnJhbmdlJiZ0aGlzLnJhbmdlLmxlbmd0aD8odGhpcy5fcmVtb3ZlQ2xhc3ModGhpcy5yYW5nZSwidWktc2xpZGVyLXJhbmdlLW1pbiB1aS1zbGlkZXItcmFuZ2UtbWF4IiksdGhpcy5yYW5nZS5jc3Moe2xlZnQ6IiIsYm90dG9tOiIifSkpOih0aGlzLnJhbmdlPXUoIjxkaXY+IikuYXBwZW5kVG8odGhpcy5lbGVtZW50KSx0aGlzLl9hZGRDbGFzcyh0aGlzLnJhbmdlLCJ1aS1zbGlkZXItcmFuZ2UiKSksIm1pbiIhPT1lLnJhbmdlJiYibWF4IiE9PWUucmFuZ2V8fHRoaXMuX2FkZENsYXNzKHRoaXMucmFuZ2UsInVpLXNsaWRlci1yYW5nZS0iK2UucmFuZ2UpKToodGhpcy5yYW5nZSYmdGhpcy5yYW5nZS5yZW1vdmUoKSx0aGlzLnJhbmdlPW51bGwpfSxfc2V0dXBFdmVudHM6ZnVuY3Rpb24oKXt0aGlzLl9vZmYodGhpcy5oYW5kbGVzKSx0aGlzLl9vbih0aGlzLmhhbmRsZXMsdGhpcy5faGFuZGxlRXZlbnRzKSx0aGlzLl9ob3ZlcmFibGUodGhpcy5oYW5kbGVzKSx0aGlzLl9mb2N1c2FibGUodGhpcy5oYW5kbGVzKX0sX2Rlc3Ryb3k6ZnVuY3Rpb24oKXt0aGlzLmhhbmRsZXMucmVtb3ZlKCksdGhpcy5yYW5nZSYmdGhpcy5yYW5nZS5yZW1vdmUoKSx0aGlzLl9tb3VzZURlc3Ryb3koKX0sX21vdXNlQ2FwdHVyZTpmdW5jdGlvbihlKXt2YXIgaSxzLG4sYSx0LG8scj10aGlzLGg9dGhpcy5vcHRpb25zO3JldHVybiFoLmRpc2FibGVkJiYodGhpcy5lbGVtZW50U2l6ZT17d2lkdGg6dGhpcy5lbGVtZW50Lm91dGVyV2lkdGgoKSxoZWlnaHQ6dGhpcy5lbGVtZW50Lm91dGVySGVpZ2h0KCl9LHRoaXMuZWxlbWVudE9mZnNldD10aGlzLmVsZW1lbnQub2Zmc2V0KCksbz17eDplLnBhZ2VYLHk6ZS5wYWdlWX0saT10aGlzLl9ub3JtVmFsdWVGcm9tTW91c2Uobykscz10aGlzLl92YWx1ZU1heCgpLXRoaXMuX3ZhbHVlTWluKCkrMSx0aGlzLmhhbmRsZXMuZWFjaChmdW5jdGlvbihlKXt2YXIgdD1NYXRoLmFicyhpLXIudmFsdWVzKGUpKTsodDxzfHxzPT09dCYmKGU9PT1yLl9sYXN0Q2hhbmdlZFZhbHVlfHxyLnZhbHVlcyhlKT09PWgubWluKSkmJihzPXQsbj11KHRoaXMpLGE9ZSl9KSwhMSE9PXRoaXMuX3N0YXJ0KGUsYSkmJih0aGlzLl9tb3VzZVNsaWRpbmc9ITAsdGhpcy5faGFuZGxlSW5kZXg9YSx0aGlzLl9hZGRDbGFzcyhuLG51bGwsInVpLXN0YXRlLWFjdGl2ZSIpLG4udHJpZ2dlcigiZm9jdXMiKSx0PW4ub2Zmc2V0KCksbz0hdShlLnRhcmdldCkucGFyZW50cygpLmFkZEJhY2soKS5pcygiLnVpLXNsaWRlci1oYW5kbGUiKSx0aGlzLl9jbGlja09mZnNldD1vP3tsZWZ0OjAsdG9wOjB9OntsZWZ0OmUucGFnZVgtdC5sZWZ0LW4ud2lkdGgoKS8yLHRvcDplLnBhZ2VZLXQudG9wLW4uaGVpZ2h0KCkvMi0ocGFyc2VJbnQobi5jc3MoImJvcmRlclRvcFdpZHRoIiksMTApfHwwKS0ocGFyc2VJbnQobi5jc3MoImJvcmRlckJvdHRvbVdpZHRoIiksMTApfHwwKSsocGFyc2VJbnQobi5jc3MoIm1hcmdpblRvcCIpLDEwKXx8MCl9LHRoaXMuaGFuZGxlcy5oYXNDbGFzcygidWktc3RhdGUtaG92ZXIiKXx8dGhpcy5fc2xpZGUoZSxhLGkpLHRoaXMuX2FuaW1hdGVPZmY9ITApKX0sX21vdXNlU3RhcnQ6ZnVuY3Rpb24oKXtyZXR1cm4hMH0sX21vdXNlRHJhZzpmdW5jdGlvbihlKXt2YXIgdD17eDplLnBhZ2VYLHk6ZS5wYWdlWX0sdD10aGlzLl9ub3JtVmFsdWVGcm9tTW91c2UodCk7cmV0dXJuIHRoaXMuX3NsaWRlKGUsdGhpcy5faGFuZGxlSW5kZXgsdCksITF9LF9tb3VzZVN0b3A6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuX3JlbW92ZUNsYXNzKHRoaXMuaGFuZGxlcyxudWxsLCJ1aS1zdGF0ZS1hY3RpdmUiKSx0aGlzLl9tb3VzZVNsaWRpbmc9ITEsdGhpcy5fc3RvcChlLHRoaXMuX2hhbmRsZUluZGV4KSx0aGlzLl9jaGFuZ2UoZSx0aGlzLl9oYW5kbGVJbmRleCksdGhpcy5faGFuZGxlSW5kZXg9bnVsbCx0aGlzLl9jbGlja09mZnNldD1udWxsLHRoaXMuX2FuaW1hdGVPZmY9ITF9LF9kZXRlY3RPcmllbnRhdGlvbjpmdW5jdGlvbigpe3RoaXMub3JpZW50YXRpb249InZlcnRpY2FsIj09PXRoaXMub3B0aW9ucy5vcmllbnRhdGlvbj8idmVydGljYWwiOiJob3Jpem9udGFsIn0sX25vcm1WYWx1ZUZyb21Nb3VzZTpmdW5jdGlvbihlKXt2YXIgdCxlPSJob3Jpem9udGFsIj09PXRoaXMub3JpZW50YXRpb24\/KHQ9dGhpcy5lbGVtZW50U2l6ZS53aWR0aCxlLngtdGhpcy5lbGVtZW50T2Zmc2V0LmxlZnQtKHRoaXMuX2NsaWNrT2Zmc2V0P3RoaXMuX2NsaWNrT2Zmc2V0LmxlZnQ6MCkpOih0PXRoaXMuZWxlbWVudFNpemUuaGVpZ2h0LGUueS10aGlzLmVsZW1lbnRPZmZzZXQudG9wLSh0aGlzLl9jbGlja09mZnNldD90aGlzLl9jbGlja09mZnNldC50b3A6MCkpLGU9ZS90O3JldHVybihlPTE8ZT8xOmUpPDAmJihlPTApLCJ2ZXJ0aWNhbCI9PT10aGlzLm9yaWVudGF0aW9uJiYoZT0xLWUpLHQ9dGhpcy5fdmFsdWVNYXgoKS10aGlzLl92YWx1ZU1pbigpLHQ9dGhpcy5fdmFsdWVNaW4oKStlKnQsdGhpcy5fdHJpbUFsaWduVmFsdWUodCl9LF91aUhhc2g6ZnVuY3Rpb24oZSx0LGkpe3ZhciBzPXtoYW5kbGU6dGhpcy5oYW5kbGVzW2VdLGhhbmRsZUluZGV4OmUsdmFsdWU6dm9pZCAwIT09dD90OnRoaXMudmFsdWUoKX07cmV0dXJuIHRoaXMuX2hhc011bHRpcGxlVmFsdWVzKCkmJihzLnZhbHVlPXZvaWQgMCE9PXQ\/dDp0aGlzLnZhbHVlcyhlKSxzLnZhbHVlcz1pfHx0aGlzLnZhbHVlcygpKSxzfSxfaGFzTXVsdGlwbGVWYWx1ZXM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5vcHRpb25zLnZhbHVlcyYmdGhpcy5vcHRpb25zLnZhbHVlcy5sZW5ndGh9LF9zdGFydDpmdW5jdGlvbihlLHQpe3JldHVybiB0aGlzLl90cmlnZ2VyKCJzdGFydCIsZSx0aGlzLl91aUhhc2godCkpfSxfc2xpZGU6ZnVuY3Rpb24oZSx0LGkpe3ZhciBzLG49dGhpcy52YWx1ZSgpLGE9dGhpcy52YWx1ZXMoKTt0aGlzLl9oYXNNdWx0aXBsZVZhbHVlcygpJiYocz10aGlzLnZhbHVlcyh0PzA6MSksbj10aGlzLnZhbHVlcyh0KSwyPT09dGhpcy5vcHRpb25zLnZhbHVlcy5sZW5ndGgmJiEwPT09dGhpcy5vcHRpb25zLnJhbmdlJiYoaT0wPT09dD9NYXRoLm1pbihzLGkpOk1hdGgubWF4KHMsaSkpLGFbdF09aSksaSE9PW4mJiExIT09dGhpcy5fdHJpZ2dlcigic2xpZGUiLGUsdGhpcy5fdWlIYXNoKHQsaSxhKSkmJih0aGlzLl9oYXNNdWx0aXBsZVZhbHVlcygpP3RoaXMudmFsdWVzKHQsaSk6dGhpcy52YWx1ZShpKSl9LF9zdG9wOmZ1bmN0aW9uKGUsdCl7dGhpcy5fdHJpZ2dlcigic3RvcCIsZSx0aGlzLl91aUhhc2godCkpfSxfY2hhbmdlOmZ1bmN0aW9uKGUsdCl7dGhpcy5fa2V5U2xpZGluZ3x8dGhpcy5fbW91c2VTbGlkaW5nfHwodGhpcy5fbGFzdENoYW5nZWRWYWx1ZT10LHRoaXMuX3RyaWdnZXIoImNoYW5nZSIsZSx0aGlzLl91aUhhc2godCkpKX0sdmFsdWU6ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg\/KHRoaXMub3B0aW9ucy52YWx1ZT10aGlzLl90cmltQWxpZ25WYWx1ZShlKSx0aGlzLl9yZWZyZXNoVmFsdWUoKSx2b2lkIHRoaXMuX2NoYW5nZShudWxsLDApKTp0aGlzLl92YWx1ZSgpfSx2YWx1ZXM6ZnVuY3Rpb24oZSx0KXt2YXIgaSxzLG47aWYoMTxhcmd1bWVudHMubGVuZ3RoKXJldHVybiB0aGlzLm9wdGlvbnMudmFsdWVzW2VdPXRoaXMuX3RyaW1BbGlnblZhbHVlKHQpLHRoaXMuX3JlZnJlc2hWYWx1ZSgpLHZvaWQgdGhpcy5fY2hhbmdlKG51bGwsZSk7aWYoIWFyZ3VtZW50cy5sZW5ndGgpcmV0dXJuIHRoaXMuX3ZhbHVlcygpO2lmKCFBcnJheS5pc0FycmF5KGUpKXJldHVybiB0aGlzLl9oYXNNdWx0aXBsZVZhbHVlcygpP3RoaXMuX3ZhbHVlcyhlKTp0aGlzLnZhbHVlKCk7Zm9yKGk9dGhpcy5vcHRpb25zLnZhbHVlcyxzPWUsbj0wO248aS5sZW5ndGg7bis9MSlpW25dPXRoaXMuX3RyaW1BbGlnblZhbHVlKHNbbl0pLHRoaXMuX2NoYW5nZShudWxsLG4pO3RoaXMuX3JlZnJlc2hWYWx1ZSgpfSxfc2V0T3B0aW9uOmZ1bmN0aW9uKGUsdCl7dmFyIGkscz0wO3N3aXRjaCgicmFuZ2UiPT09ZSYmITA9PT10aGlzLm9wdGlvbnMucmFuZ2UmJigibWluIj09PXQ\/KHRoaXMub3B0aW9ucy52YWx1ZT10aGlzLl92YWx1ZXMoMCksdGhpcy5vcHRpb25zLnZhbHVlcz1udWxsKToibWF4Ij09PXQmJih0aGlzLm9wdGlvbnMudmFsdWU9dGhpcy5fdmFsdWVzKHRoaXMub3B0aW9ucy52YWx1ZXMubGVuZ3RoLTEpLHRoaXMub3B0aW9ucy52YWx1ZXM9bnVsbCkpLEFycmF5LmlzQXJyYXkodGhpcy5vcHRpb25zLnZhbHVlcykmJihzPXRoaXMub3B0aW9ucy52YWx1ZXMubGVuZ3RoKSx0aGlzLl9zdXBlcihlLHQpLGUpe2Nhc2Uib3JpZW50YXRpb24iOnRoaXMuX2RldGVjdE9yaWVudGF0aW9uKCksdGhpcy5fcmVtb3ZlQ2xhc3MoInVpLXNsaWRlci1ob3Jpem9udGFsIHVpLXNsaWRlci12ZXJ0aWNhbCIpLl9hZGRDbGFzcygidWktc2xpZGVyLSIrdGhpcy5vcmllbnRhdGlvbiksdGhpcy5fcmVmcmVzaFZhbHVlKCksdGhpcy5vcHRpb25zLnJhbmdlJiZ0aGlzLl9yZWZyZXNoUmFuZ2UodCksdGhpcy5oYW5kbGVzLmNzcygiaG9yaXpvbnRhbCI9PT10PyJib3R0b20iOiJsZWZ0IiwiIik7YnJlYWs7Y2FzZSJ2YWx1ZSI6dGhpcy5fYW5pbWF0ZU9mZj0hMCx0aGlzLl9yZWZyZXNoVmFsdWUoKSx0aGlzLl9jaGFuZ2UobnVsbCwwKSx0aGlzLl9hbmltYXRlT2ZmPSExO2JyZWFrO2Nhc2UidmFsdWVzIjpmb3IodGhpcy5fYW5pbWF0ZU9mZj0hMCx0aGlzLl9yZWZyZXNoVmFsdWUoKSxpPXMtMTswPD1pO2ktLSl0aGlzLl9jaGFuZ2UobnVsbCxpKTt0aGlzLl9hbmltYXRlT2ZmPSExO2JyZWFrO2Nhc2Uic3RlcCI6Y2FzZSJtaW4iOmNhc2UibWF4Ijp0aGlzLl9hbmltYXRlT2ZmPSEwLHRoaXMuX2NhbGN1bGF0ZU5ld01heCgpLHRoaXMuX3JlZnJlc2hWYWx1ZSgpLHRoaXMuX2FuaW1hdGVPZmY9ITE7YnJlYWs7Y2FzZSJyYW5nZSI6dGhpcy5fYW5pbWF0ZU9mZj0hMCx0aGlzLl9yZWZyZXNoKCksdGhpcy5fYW5pbWF0ZU9mZj0hMX19LF9zZXRPcHRpb25EaXNhYmxlZDpmdW5jdGlvbihlKXt0aGlzLl9zdXBlcihlKSx0aGlzLl90b2dnbGVDbGFzcyhudWxsLCJ1aS1zdGF0ZS1kaXNhYmxlZCIsISFlKX0sX3ZhbHVlOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5vcHRpb25zLnZhbHVlO3JldHVybiBlPXRoaXMuX3RyaW1BbGlnblZhbHVlKGUpfSxfdmFsdWVzOmZ1bmN0aW9uKGUpe3ZhciB0LGk7aWYoYXJndW1lbnRzLmxlbmd0aClyZXR1cm4gZT10aGlzLm9wdGlvbnMudmFsdWVzW2VdLGU9dGhpcy5fdHJpbUFsaWduVmFsdWUoZSk7aWYodGhpcy5faGFzTXVsdGlwbGVWYWx1ZXMoKSl7Zm9yKHQ9dGhpcy5vcHRpb25zLnZhbHVlcy5zbGljZSgpLGk9MDtpPHQubGVuZ3RoO2krPTEpdFtpXT10aGlzLl90cmltQWxpZ25WYWx1ZSh0W2ldKTtyZXR1cm4gdH1yZXR1cm5bXX0sX3RyaW1BbGlnblZhbHVlOmZ1bmN0aW9uKGUpe2lmKGU8PXRoaXMuX3ZhbHVlTWluKCkpcmV0dXJuIHRoaXMuX3ZhbHVlTWluKCk7aWYoZT49dGhpcy5fdmFsdWVNYXgoKSlyZXR1cm4gdGhpcy5fdmFsdWVNYXgoKTt2YXIgdD0wPHRoaXMub3B0aW9ucy5zdGVwP3RoaXMub3B0aW9ucy5zdGVwOjEsaT0oZS10aGlzLl92YWx1ZU1pbigpKSV0LGU9ZS1pO3JldHVybiAyKk1hdGguYWJzKGkpPj10JiYoZSs9MDxpP3Q6LXQpLHBhcnNlRmxvYXQoZS50b0ZpeGVkKDUpKX0sX2NhbGN1bGF0ZU5ld01heDpmdW5jdGlvbigpe3ZhciBlPXRoaXMub3B0aW9ucy5tYXgsdD10aGlzLl92YWx1ZU1pbigpLGk9dGhpcy5vcHRpb25zLnN0ZXA7KGU9TWF0aC5yb3VuZCgoZS10KS9pKSppK3QpPnRoaXMub3B0aW9ucy5tYXgmJihlLT1pKSx0aGlzLm1heD1wYXJzZUZsb2F0KGUudG9GaXhlZCh0aGlzLl9wcmVjaXNpb24oKSkpfSxfcHJlY2lzaW9uOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5fcHJlY2lzaW9uT2YodGhpcy5vcHRpb25zLnN0ZXApO3JldHVybiBlPW51bGwhPT10aGlzLm9wdGlvbnMubWluP01hdGgubWF4KGUsdGhpcy5fcHJlY2lzaW9uT2YodGhpcy5vcHRpb25zLm1pbikpOmV9LF9wcmVjaXNpb25PZjpmdW5jdGlvbihlKXt2YXIgdD1lLnRvU3RyaW5nKCksZT10LmluZGV4T2YoIi4iKTtyZXR1cm4tMT09PWU\/MDp0Lmxlbmd0aC1lLTF9LF92YWx1ZU1pbjpmdW5jdGlvbigpe3JldHVybiB0aGlzLm9wdGlvbnMubWlufSxfdmFsdWVNYXg6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tYXh9LF9yZWZyZXNoUmFuZ2U6ZnVuY3Rpb24oZSl7InZlcnRpY2FsIj09PWUmJnRoaXMucmFuZ2UuY3NzKHt3aWR0aDoiIixsZWZ0OiIifSksImhvcml6b250YWwiPT09ZSYmdGhpcy5yYW5nZS5jc3Moe2hlaWdodDoiIixib3R0b206IiJ9KX0sX3JlZnJlc2hWYWx1ZTpmdW5jdGlvbigpe3ZhciB0LGksZSxzLG4sYT10aGlzLm9wdGlvbnMucmFuZ2Usbz10aGlzLm9wdGlvbnMscj10aGlzLGg9IXRoaXMuX2FuaW1hdGVPZmYmJm8uYW5pbWF0ZSxsPXt9O3RoaXMuX2hhc011bHRpcGxlVmFsdWVzKCk\/dGhpcy5oYW5kbGVzLmVhY2goZnVuY3Rpb24oZSl7aT0oci52YWx1ZXMoZSktci5fdmFsdWVNaW4oKSkvKHIuX3ZhbHVlTWF4KCktci5fdmFsdWVNaW4oKSkqMTAwLGxbImhvcml6b250YWwiPT09ci5vcmllbnRhdGlvbj8ibGVmdCI6ImJvdHRvbSJdPWkrIiUiLHUodGhpcykuc3RvcCgxLDEpW2g\/ImFuaW1hdGUiOiJjc3MiXShsLG8uYW5pbWF0ZSksITA9PT1yLm9wdGlvbnMucmFuZ2UmJigiaG9yaXpvbnRhbCI9PT1yLm9yaWVudGF0aW9uPygwPT09ZSYmci5yYW5nZS5zdG9wKDEsMSlbaD8iYW5pbWF0ZSI6ImNzcyJdKHtsZWZ0OmkrIiUifSxvLmFuaW1hdGUpLDE9PT1lJiZyLnJhbmdlW2g\/ImFuaW1hdGUiOiJjc3MiXSh7d2lkdGg6aS10KyIlIn0se3F1ZXVlOiExLGR1cmF0aW9uOm8uYW5pbWF0ZX0pKTooMD09PWUmJnIucmFuZ2Uuc3RvcCgxLDEpW2g\/ImFuaW1hdGUiOiJjc3MiXSh7Ym90dG9tOmkrIiUifSxvLmFuaW1hdGUpLDE9PT1lJiZyLnJhbmdlW2g\/ImFuaW1hdGUiOiJjc3MiXSh7aGVpZ2h0OmktdCsiJSJ9LHtxdWV1ZTohMSxkdXJhdGlvbjpvLmFuaW1hdGV9KSkpLHQ9aX0pOihlPXRoaXMudmFsdWUoKSxzPXRoaXMuX3ZhbHVlTWluKCksbj10aGlzLl92YWx1ZU1heCgpLGk9biE9PXM\/KGUtcykvKG4tcykqMTAwOjAsbFsiaG9yaXpvbnRhbCI9PT10aGlzLm9yaWVudGF0aW9uPyJsZWZ0IjoiYm90dG9tIl09aSsiJSIsdGhpcy5oYW5kbGUuc3RvcCgxLDEpW2g\/ImFuaW1hdGUiOiJjc3MiXShsLG8uYW5pbWF0ZSksIm1pbiI9PT1hJiYiaG9yaXpvbnRhbCI9PT10aGlzLm9yaWVudGF0aW9uJiZ0aGlzLnJhbmdlLnN0b3AoMSwxKVtoPyJhbmltYXRlIjoiY3NzIl0oe3dpZHRoOmkrIiUifSxvLmFuaW1hdGUpLCJtYXgiPT09YSYmImhvcml6b250YWwiPT09dGhpcy5vcmllbnRhdGlvbiYmdGhpcy5yYW5nZS5zdG9wKDEsMSlbaD8iYW5pbWF0ZSI6ImNzcyJdKHt3aWR0aDoxMDAtaSsiJSJ9LG8uYW5pbWF0ZSksIm1pbiI9PT1hJiYidmVydGljYWwiPT09dGhpcy5vcmllbnRhdGlvbiYmdGhpcy5yYW5nZS5zdG9wKDEsMSlbaD8iYW5pbWF0ZSI6ImNzcyJdKHtoZWlnaHQ6aSsiJSJ9LG8uYW5pbWF0ZSksIm1heCI9PT1hJiYidmVydGljYWwiPT09dGhpcy5vcmllbnRhdGlvbiYmdGhpcy5yYW5nZS5zdG9wKDEsMSlbaD8iYW5pbWF0ZSI6ImNzcyJdKHtoZWlnaHQ6MTAwLWkrIiUifSxvLmFuaW1hdGUpKX0sX2hhbmRsZUV2ZW50czp7a2V5ZG93bjpmdW5jdGlvbihlKXt2YXIgdCxpLHMsbj11KGUudGFyZ2V0KS5kYXRhKCJ1aS1zbGlkZXItaGFuZGxlLWluZGV4Iik7c3dpdGNoKGUua2V5Q29kZSl7Y2FzZSB1LnVpLmtleUNvZGUuSE9NRTpjYXNlIHUudWkua2V5Q29kZS5FTkQ6Y2FzZSB1LnVpLmtleUNvZGUuUEFHRV9VUDpjYXNlIHUudWkua2V5Q29kZS5QQUdFX0RPV046Y2FzZSB1LnVpLmtleUNvZGUuVVA6Y2FzZSB1LnVpLmtleUNvZGUuUklHSFQ6Y2FzZSB1LnVpLmtleUNvZGUuRE9XTjpjYXNlIHUudWkua2V5Q29kZS5MRUZUOmlmKGUucHJldmVudERlZmF1bHQoKSwhdGhpcy5fa2V5U2xpZGluZyYmKHRoaXMuX2tleVNsaWRpbmc9ITAsdGhpcy5fYWRkQ2xhc3ModShlLnRhcmdldCksbnVsbCwidWktc3RhdGUtYWN0aXZlIiksITE9PT10aGlzLl9zdGFydChlLG4pKSlyZXR1cm59c3dpdGNoKHM9dGhpcy5vcHRpb25zLnN0ZXAsdD1pPXRoaXMuX2hhc011bHRpcGxlVmFsdWVzKCk\/dGhpcy52YWx1ZXMobik6dGhpcy52YWx1ZSgpLGUua2V5Q29kZSl7Y2FzZSB1LnVpLmtleUNvZGUuSE9NRTppPXRoaXMuX3ZhbHVlTWluKCk7YnJlYWs7Y2FzZSB1LnVpLmtleUNvZGUuRU5EOmk9dGhpcy5fdmFsdWVNYXgoKTticmVhaztjYXNlIHUudWkua2V5Q29kZS5QQUdFX1VQOmk9dGhpcy5fdHJpbUFsaWduVmFsdWUodCsodGhpcy5fdmFsdWVNYXgoKS10aGlzLl92YWx1ZU1pbigpKS90aGlzLm51bVBhZ2VzKTticmVhaztjYXNlIHUudWkua2V5Q29kZS5QQUdFX0RPV046aT10aGlzLl90cmltQWxpZ25WYWx1ZSh0LSh0aGlzLl92YWx1ZU1heCgpLXRoaXMuX3ZhbHVlTWluKCkpL3RoaXMubnVtUGFnZXMpO2JyZWFrO2Nhc2UgdS51aS5rZXlDb2RlLlVQOmNhc2UgdS51aS5rZXlDb2RlLlJJR0hUOmlmKHQ9PT10aGlzLl92YWx1ZU1heCgpKXJldHVybjtpPXRoaXMuX3RyaW1BbGlnblZhbHVlKHQrcyk7YnJlYWs7Y2FzZSB1LnVpLmtleUNvZGUuRE9XTjpjYXNlIHUudWkua2V5Q29kZS5MRUZUOmlmKHQ9PT10aGlzLl92YWx1ZU1pbigpKXJldHVybjtpPXRoaXMuX3RyaW1BbGlnblZhbHVlKHQtcyl9dGhpcy5fc2xpZGUoZSxuLGkpfSxrZXl1cDpmdW5jdGlvbihlKXt2YXIgdD11KGUudGFyZ2V0KS5kYXRhKCJ1aS1zbGlkZXItaGFuZGxlLWluZGV4Iik7dGhpcy5fa2V5U2xpZGluZyYmKHRoaXMuX2tleVNsaWRpbmc9ITEsdGhpcy5fc3RvcChlLHQpLHRoaXMuX2NoYW5nZShlLHQpLHRoaXMuX3JlbW92ZUNsYXNzKHUoZS50YXJnZXQpLG51bGwsInVpLXN0YXRlLWFjdGl2ZSIpKX19fSk7dmFyIGg9dSxsPXt9LGM9bC50b1N0cmluZyxkPS9eKFtcLStdKT1ccyooXGQrXC4\/XGQqKS8sZj1be3JlOi9yZ2JhP1woXHMqKFxkezEsM30pXHMqLFxzKihcZHsxLDN9KVxzKixccyooXGR7MSwzfSlccyooPzosXHMqKFxkPyg\/OlwuXGQrKT8pXHMqKT9cKS8scGFyc2U6ZnVuY3Rpb24oZSl7cmV0dXJuW2VbMV0sZVsyXSxlWzNdLGVbNF1dfX0se3JlOi9yZ2JhP1woXHMqKFxkKyg\/OlwuXGQrKT8pXCVccyosXHMqKFxkKyg\/OlwuXGQrKT8pXCVccyosXHMqKFxkKyg\/OlwuXGQrKT8pXCVccyooPzosXHMqKFxkPyg\/OlwuXGQrKT8pXHMqKT9cKS8scGFyc2U6ZnVuY3Rpb24oZSl7cmV0dXJuWzIuNTUqZVsxXSwyLjU1KmVbMl0sMi41NSplWzNdLGVbNF1dfX0se3JlOi8jKFthLWYwLTldezJ9KShbYS1mMC05XXsyfSkoW2EtZjAtOV17Mn0pKFthLWYwLTldezJ9KT8vLHBhcnNlOmZ1bmN0aW9uKGUpe3JldHVybltwYXJzZUludChlWzFdLDE2KSxwYXJzZUludChlWzJdLDE2KSxwYXJzZUludChlWzNdLDE2KSxlWzRdPyhwYXJzZUludChlWzRdLDE2KS8yNTUpLnRvRml4ZWQoMik6MV19fSx7cmU6LyMoW2EtZjAtOV0pKFthLWYwLTldKShbYS1mMC05XSkoW2EtZjAtOV0pPy8scGFyc2U6ZnVuY3Rpb24oZSl7cmV0dXJuW3BhcnNlSW50KGVbMV0rZVsxXSwxNikscGFyc2VJbnQoZVsyXStlWzJdLDE2KSxwYXJzZUludChlWzNdK2VbM10sMTYpLGVbNF0\/KHBhcnNlSW50KGVbNF0rZVs0XSwxNikvMjU1KS50b0ZpeGVkKDIpOjFdfX0se3JlOi9oc2xhP1woXHMqKFxkKyg\/OlwuXGQrKT8pXHMqLFxzKihcZCsoPzpcLlxkKyk\/KVwlXHMqLFxzKihcZCsoPzpcLlxkKyk\/KVwlXHMqKD86LFxzKihcZD8oPzpcLlxkKyk\/KVxzKik\/XCkvLHNwYWNlOiJoc2xhIixwYXJzZTpmdW5jdGlvbihlKXtyZXR1cm5bZVsxXSxlWzJdLzEwMCxlWzNdLzEwMCxlWzRdXX19XSxwPWguQ29sb3I9ZnVuY3Rpb24oZSx0LGkscyl7cmV0dXJuIG5ldyBoLkNvbG9yLmZuLnBhcnNlKGUsdCxpLHMpfSxnPXtyZ2JhOntwcm9wczp7cmVkOntpZHg6MCx0eXBlOiJieXRlIn0sZ3JlZW46e2lkeDoxLHR5cGU6ImJ5dGUifSxibHVlOntpZHg6Mix0eXBlOiJieXRlIn19fSxoc2xhOntwcm9wczp7aHVlOntpZHg6MCx0eXBlOiJkZWdyZWVzIn0sc2F0dXJhdGlvbjp7aWR4OjEsdHlwZToicGVyY2VudCJ9LGxpZ2h0bmVzczp7aWR4OjIsdHlwZToicGVyY2VudCJ9fX19LG09e2J5dGU6e2Zsb29yOiEwLG1heDoyNTV9LHBlcmNlbnQ6e21heDoxfSxkZWdyZWVzOnttb2Q6MzYwLGZsb29yOiEwfX0sdj1wLnN1cHBvcnQ9e30sXz1oKCI8cD4iKVswXSx5PWguZWFjaDtmdW5jdGlvbiBiKGUpe3JldHVybiBudWxsPT1lP2UrIiI6Im9iamVjdCI9PXR5cGVvZiBlP2xbYy5jYWxsKGUpXXx8Im9iamVjdCI6dHlwZW9mIGV9ZnVuY3Rpb24geChlLHQsaSl7dmFyIHM9bVt0LnR5cGVdfHx7fTtyZXR1cm4gbnVsbD09ZT9pfHwhdC5kZWY\/bnVsbDp0LmRlZjooZT1zLmZsb29yP35+ZTpwYXJzZUZsb2F0KGUpLGlzTmFOKGUpP3QuZGVmOnMubW9kPyhlK3MubW9kKSVzLm1vZDpNYXRoLm1pbihzLm1heCxNYXRoLm1heCgwLGUpKSl9ZnVuY3Rpb24gdyhzKXt2YXIgbj1wKCksYT1uLl9yZ2JhPVtdO3JldHVybiBzPXMudG9Mb3dlckNhc2UoKSx5KGYsZnVuY3Rpb24oZSx0KXt2YXIgaT10LnJlLmV4ZWMocyksaT1pJiZ0LnBhcnNlKGkpLHQ9dC5zcGFjZXx8InJnYmEiO2lmKGkpcmV0dXJuIGk9blt0XShpKSxuW2dbdF0uY2FjaGVdPWlbZ1t0XS5jYWNoZV0sYT1uLl9yZ2JhPWkuX3JnYmEsITF9KSxhLmxlbmd0aD8oIjAsMCwwLDAiPT09YS5qb2luKCkmJmguZXh0ZW5kKGEsSC50cmFuc3BhcmVudCksbik6SFtzXX1mdW5jdGlvbiBDKGUsdCxpKXtyZXR1cm4gNiooaT0oaSsxKSUxKTwxP2UrKHQtZSkqaSo2OjIqaTwxP3Q6MyppPDI\/ZSsodC1lKSooMi8zLWkpKjY6ZX1fLnN0eWxlLmNzc1RleHQ9ImJhY2tncm91bmQtY29sb3I6cmdiYSgxLDEsMSwuNSkiLHYucmdiYT0tMTxfLnN0eWxlLmJhY2tncm91bmRDb2xvci5pbmRleE9mKCJyZ2JhIikseShnLGZ1bmN0aW9uKGUsdCl7dC5jYWNoZT0iXyIrZSx0LnByb3BzLmFscGhhPXtpZHg6Myx0eXBlOiJwZXJjZW50IixkZWY6MX19KSxoLmVhY2goIkJvb2xlYW4gTnVtYmVyIFN0cmluZyBGdW5jdGlvbiBBcnJheSBEYXRlIFJlZ0V4cCBPYmplY3QgRXJyb3IgU3ltYm9sIi5zcGxpdCgiICIpLGZ1bmN0aW9uKGUsdCl7bFsiW29iamVjdCAiK3QrIl0iXT10LnRvTG93ZXJDYXNlKCl9KSwocC5mbj1oLmV4dGVuZChwLnByb3RvdHlwZSx7cGFyc2U6ZnVuY3Rpb24obixlLHQsaSl7aWYodm9pZCAwPT09bilyZXR1cm4gdGhpcy5fcmdiYT1bbnVsbCxudWxsLG51bGwsbnVsbF0sdGhpczsobi5qcXVlcnl8fG4ubm9kZVR5cGUpJiYobj1oKG4pLmNzcyhlKSxlPXZvaWQgMCk7dmFyIGE9dGhpcyxzPWIobiksbz10aGlzLl9yZ2JhPVtdO3JldHVybiB2b2lkIDAhPT1lJiYobj1bbixlLHQsaV0scz0iYXJyYXkiKSwic3RyaW5nIj09PXM\/dGhpcy5wYXJzZSh3KG4pfHxILl9kZWZhdWx0KToiYXJyYXkiPT09cz8oeShnLnJnYmEucHJvcHMsZnVuY3Rpb24oZSx0KXtvW3QuaWR4XT14KG5bdC5pZHhdLHQpfSksdGhpcyk6Im9iamVjdCI9PT1zPyh5KGcsbiBpbnN0YW5jZW9mIHA\/ZnVuY3Rpb24oZSx0KXtuW3QuY2FjaGVdJiYoYVt0LmNhY2hlXT1uW3QuY2FjaGVdLnNsaWNlKCkpfTpmdW5jdGlvbihlLGkpe3ZhciBzPWkuY2FjaGU7eShpLnByb3BzLGZ1bmN0aW9uKGUsdCl7aWYoIWFbc10mJmkudG8pe2lmKCJhbHBoYSI9PT1lfHxudWxsPT1uW2VdKXJldHVybjthW3NdPWkudG8oYS5fcmdiYSl9YVtzXVt0LmlkeF09eChuW2VdLHQsITApfSksYVtzXSYmaC5pbkFycmF5KG51bGwsYVtzXS5zbGljZSgwLDMpKTwwJiYobnVsbD09YVtzXVszXSYmKGFbc11bM109MSksaS5mcm9tJiYoYS5fcmdiYT1pLmZyb20oYVtzXSkpKX0pLHRoaXMpOnZvaWQgMH0saXM6ZnVuY3Rpb24oZSl7dmFyIG49cChlKSxhPSEwLG89dGhpcztyZXR1cm4geShnLGZ1bmN0aW9uKGUsdCl7dmFyIGkscz1uW3QuY2FjaGVdO3JldHVybiBzJiYoaT1vW3QuY2FjaGVdfHx0LnRvJiZ0LnRvKG8uX3JnYmEpfHxbXSx5KHQucHJvcHMsZnVuY3Rpb24oZSx0KXtpZihudWxsIT1zW3QuaWR4XSlyZXR1cm4gYT1zW3QuaWR4XT09PWlbdC5pZHhdfSkpLGF9KSxhfSxfc3BhY2U6ZnVuY3Rpb24oKXt2YXIgaT1bXSxzPXRoaXM7cmV0dXJuIHkoZyxmdW5jdGlvbihlLHQpe3NbdC5jYWNoZV0mJmkucHVzaChlKX0pLGkucG9wKCl9LHRyYW5zaXRpb246ZnVuY3Rpb24oZSxvKXt2YXIgdD0obD1wKGUpKS5fc3BhY2UoKSxpPWdbdF0sZT0wPT09dGhpcy5hbHBoYSgpP3AoInRyYW5zcGFyZW50Iik6dGhpcyxyPWVbaS5jYWNoZV18fGkudG8oZS5fcmdiYSksaD1yLnNsaWNlKCksbD1sW2kuY2FjaGVdO3JldHVybiB5KGkucHJvcHMsZnVuY3Rpb24oZSx0KXt2YXIgaT10LmlkeCxzPXJbaV0sbj1sW2ldLGE9bVt0LnR5cGVdfHx7fTtudWxsIT09biYmKG51bGw9PT1zP2hbaV09bjooYS5tb2QmJihuLXM+YS5tb2QvMj9zKz1hLm1vZDpzLW4+YS5tb2QvMiYmKHMtPWEubW9kKSksaFtpXT14KChuLXMpKm8rcyx0KSkpfSksdGhpc1t0XShoKX0sYmxlbmQ6ZnVuY3Rpb24oZSl7aWYoMT09PXRoaXMuX3JnYmFbM10pcmV0dXJuIHRoaXM7dmFyIHQ9dGhpcy5fcmdiYS5zbGljZSgpLGk9dC5wb3AoKSxzPXAoZSkuX3JnYmE7cmV0dXJuIHAoaC5tYXAodCxmdW5jdGlvbihlLHQpe3JldHVybigxLWkpKnNbdF0raSplfSkpfSx0b1JnYmFTdHJpbmc6ZnVuY3Rpb24oKXt2YXIgZT0icmdiYSgiLHQ9aC5tYXAodGhpcy5fcmdiYSxmdW5jdGlvbihlLHQpe3JldHVybiBudWxsIT1lP2U6Mjx0PzE6MH0pO3JldHVybiAxPT09dFszXSYmKHQucG9wKCksZT0icmdiKCIpLGUrdC5qb2luKCkrIikifSx0b0hzbGFTdHJpbmc6ZnVuY3Rpb24oKXt2YXIgZT0iaHNsYSgiLHQ9aC5tYXAodGhpcy5oc2xhKCksZnVuY3Rpb24oZSx0KXtyZXR1cm4gbnVsbD09ZSYmKGU9Mjx0PzE6MCksZT10JiZ0PDM\/TWF0aC5yb3VuZCgxMDAqZSkrIiUiOmV9KTtyZXR1cm4gMT09PXRbM10mJih0LnBvcCgpLGU9ImhzbCgiKSxlK3Quam9pbigpKyIpIn0sdG9IZXhTdHJpbmc6ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcy5fcmdiYS5zbGljZSgpLGk9dC5wb3AoKTtyZXR1cm4gZSYmdC5wdXNoKH5+KDI1NSppKSksIiMiK2gubWFwKHQsZnVuY3Rpb24oZSl7cmV0dXJuIDE9PT0oZT0oZXx8MCkudG9TdHJpbmcoMTYpKS5sZW5ndGg\/IjAiK2U6ZX0pLmpvaW4oIiIpfSx0b1N0cmluZzpmdW5jdGlvbigpe3JldHVybiAwPT09dGhpcy5fcmdiYVszXT8idHJhbnNwYXJlbnQiOnRoaXMudG9SZ2JhU3RyaW5nKCl9fSkpLnBhcnNlLnByb3RvdHlwZT1wLmZuLGcuaHNsYS50bz1mdW5jdGlvbihlKXtpZihudWxsPT1lWzBdfHxudWxsPT1lWzFdfHxudWxsPT1lWzJdKXJldHVybltudWxsLG51bGwsbnVsbCxlWzNdXTt2YXIgdD1lWzBdLzI1NSxpPWVbMV0vMjU1LHM9ZVsyXS8yNTUsbj1lWzNdLGE9TWF0aC5tYXgodCxpLHMpLG89TWF0aC5taW4odCxpLHMpLHI9YS1vLGg9YStvLGU9LjUqaCxpPW89PT1hPzA6dD09PWE\/NjAqKGktcykvciszNjA6aT09PWE\/NjAqKHMtdCkvcisxMjA6NjAqKHQtaSkvcisyNDAsaD0wPT1yPzA6ZTw9LjU\/ci9oOnIvKDItaCk7cmV0dXJuW01hdGgucm91bmQoaSklMzYwLGgsZSxudWxsPT1uPzE6bl19LGcuaHNsYS5mcm9tPWZ1bmN0aW9uKGUpe2lmKG51bGw9PWVbMF18fG51bGw9PWVbMV18fG51bGw9PWVbMl0pcmV0dXJuW251bGwsbnVsbCxudWxsLGVbM11dO3ZhciB0PWVbMF0vMzYwLGk9ZVsxXSxzPWVbMl0sZT1lWzNdLGk9czw9LjU\/cyooMStpKTpzK2ktcyppLHM9MipzLWk7cmV0dXJuW01hdGgucm91bmQoMjU1KkMocyxpLHQrMS8zKSksTWF0aC5yb3VuZCgyNTUqQyhzLGksdCkpLE1hdGgucm91bmQoMjU1KkMocyxpLHQtMS8zKSksZV19LHkoZyxmdW5jdGlvbihoLGUpe3ZhciB0PWUucHJvcHMsYT1lLmNhY2hlLG89ZS50byxyPWUuZnJvbTtwLmZuW2hdPWZ1bmN0aW9uKGUpe2lmKG8mJiF0aGlzW2FdJiYodGhpc1thXT1vKHRoaXMuX3JnYmEpKSx2b2lkIDA9PT1lKXJldHVybiB0aGlzW2FdLnNsaWNlKCk7dmFyIGk9YihlKSxzPSJhcnJheSI9PT1pfHwib2JqZWN0Ij09PWk\/ZTphcmd1bWVudHMsbj10aGlzW2FdLnNsaWNlKCk7cmV0dXJuIHkodCxmdW5jdGlvbihlLHQpe2U9c1sib2JqZWN0Ij09PWk\/ZTp0LmlkeF07bnVsbD09ZSYmKGU9blt0LmlkeF0pLG5bdC5pZHhdPXgoZSx0KX0pLHI\/KChlPXAocihuKSkpW2FdPW4sZSk6cChuKX0seSh0LGZ1bmN0aW9uKG8scil7cC5mbltvXXx8KHAuZm5bb109ZnVuY3Rpb24oZSl7dmFyIHQsaT1iKGUpLHM9ImFscGhhIj09PW8\/dGhpcy5faHNsYT8iaHNsYSI6InJnYmEiOmgsbj10aGlzW3NdKCksYT1uW3IuaWR4XTtyZXR1cm4idW5kZWZpbmVkIj09PWk\/YTooImZ1bmN0aW9uIj09PWkmJihpPWIoZT1lLmNhbGwodGhpcyxhKSkpLG51bGw9PWUmJnIuZW1wdHk\/dGhpczooInN0cmluZyI9PT1pJiYodD1kLmV4ZWMoZSkpJiYoZT1hK3BhcnNlRmxvYXQodFsyXSkqKCIrIj09PXRbMV0\/MTotMSkpLG5bci5pZHhdPWUsdGhpc1tzXShuKSkpfSl9KX0pLChwLmhvb2s9ZnVuY3Rpb24oZSl7ZT1lLnNwbGl0KCIgIik7eShlLGZ1bmN0aW9uKGUsYSl7aC5jc3NIb29rc1thXT17c2V0OmZ1bmN0aW9uKGUsdCl7dmFyIGkscyxuPSIiO2lmKCJ0cmFuc3BhcmVudCIhPT10JiYoInN0cmluZyIhPT1iKHQpfHwoaT13KHQpKSkpe2lmKHQ9cChpfHx0KSwhdi5yZ2JhJiYxIT09dC5fcmdiYVszXSl7Zm9yKHM9ImJhY2tncm91bmRDb2xvciI9PT1hP2UucGFyZW50Tm9kZTplOygiIj09PW58fCJ0cmFuc3BhcmVudCI9PT1uKSYmcyYmcy5zdHlsZTspdHJ5e249aC5jc3MocywiYmFja2dyb3VuZENvbG9yIikscz1zLnBhcmVudE5vZGV9Y2F0Y2goZSl7fXQ9dC5ibGVuZChuJiYidHJhbnNwYXJlbnQiIT09bj9uOiJfZGVmYXVsdCIpfXQ9dC50b1JnYmFTdHJpbmcoKX10cnl7ZS5zdHlsZVthXT10fWNhdGNoKGUpe319fSxoLmZ4LnN0ZXBbYV09ZnVuY3Rpb24oZSl7ZS5jb2xvckluaXR8fChlLnN0YXJ0PXAoZS5lbGVtLGEpLGUuZW5kPXAoZS5lbmQpLGUuY29sb3JJbml0PSEwKSxoLmNzc0hvb2tzW2FdLnNldChlLmVsZW0sZS5zdGFydC50cmFuc2l0aW9uKGUuZW5kLGUucG9zKSl9fSl9KSgiYmFja2dyb3VuZENvbG9yIGJvcmRlckJvdHRvbUNvbG9yIGJvcmRlckxlZnRDb2xvciBib3JkZXJSaWdodENvbG9yIGJvcmRlclRvcENvbG9yIGNvbG9yIGNvbHVtblJ1bGVDb2xvciBvdXRsaW5lQ29sb3IgdGV4dERlY29yYXRpb25Db2xvciB0ZXh0RW1waGFzaXNDb2xvciIpLGguY3NzSG9va3MuYm9yZGVyQ29sb3I9e2V4cGFuZDpmdW5jdGlvbihpKXt2YXIgcz17fTtyZXR1cm4geShbIlRvcCIsIlJpZ2h0IiwiQm90dG9tIiwiTGVmdCJdLGZ1bmN0aW9uKGUsdCl7c1siYm9yZGVyIit0KyJDb2xvciJdPWl9KSxzfX07dmFyIE0sayxELEUsUyxPLEksTixBLFAsSD1oLkNvbG9yLm5hbWVzPXthcXVhOiIjMDBmZmZmIixibGFjazoiIzAwMDAwMCIsYmx1ZToiIzAwMDBmZiIsZnVjaHNpYToiI2ZmMDBmZiIsZ3JheToiIzgwODA4MCIsZ3JlZW46IiMwMDgwMDAiLGxpbWU6IiMwMGZmMDAiLG1hcm9vbjoiIzgwMDAwMCIsbmF2eToiIzAwMDA4MCIsb2xpdmU6IiM4MDgwMDAiLHB1cnBsZToiIzgwMDA4MCIscmVkOiIjZmYwMDAwIixzaWx2ZXI6IiNjMGMwYzAiLHRlYWw6IiMwMDgwODAiLHdoaXRlOiIjZmZmZmZmIix5ZWxsb3c6IiNmZmZmMDAiLHRyYW5zcGFyZW50OltudWxsLG51bGwsbnVsbCwwXSxfZGVmYXVsdDoiI2ZmZmZmZiJ9LFQ9InVpLWVmZmVjdHMtIixXPSJ1aS1lZmZlY3RzLXN0eWxlIixWPSJ1aS1lZmZlY3RzLWFuaW1hdGVkIjtmdW5jdGlvbiBGKGUpe3ZhciB0LGkscz1lLm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXc\/ZS5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5bGUoZSxudWxsKTplLmN1cnJlbnRTdHlsZSxuPXt9O2lmKHMmJnMubGVuZ3RoJiZzWzBdJiZzW3NbMF1dKWZvcihpPXMubGVuZ3RoO2ktLTspInN0cmluZyI9PXR5cGVvZiBzW3Q9c1tpXV0mJihuW3QucmVwbGFjZSgvLShbXGRhLXpdKS9naSxmdW5jdGlvbihlLHQpe3JldHVybiB0LnRvVXBwZXJDYXNlKCl9KV09c1t0XSk7ZWxzZSBmb3IodCBpbiBzKSJzdHJpbmciPT10eXBlb2Ygc1t0XSYmKG5bdF09c1t0XSk7cmV0dXJuIG59ZnVuY3Rpb24gcShlLHQsaSxzKXtyZXR1cm4gZT17ZWZmZWN0OmU9dS5pc1BsYWluT2JqZWN0KGUpPyh0PWUpLmVmZmVjdDplfSwiZnVuY3Rpb24iPT10eXBlb2YodD1udWxsPT10P3t9OnQpJiYocz10LGk9bnVsbCx0PXt9KSwibnVtYmVyIiE9dHlwZW9mIHQmJiF1LmZ4LnNwZWVkc1t0XXx8KHM9aSxpPXQsdD17fSksImZ1bmN0aW9uIj09dHlwZW9mIGkmJihzPWksaT1udWxsKSx0JiZ1LmV4dGVuZChlLHQpLGk9aXx8dC5kdXJhdGlvbixlLmR1cmF0aW9uPXUuZngub2ZmPzA6Im51bWJlciI9PXR5cGVvZiBpP2k6aSBpbiB1LmZ4LnNwZWVkcz91LmZ4LnNwZWVkc1tpXTp1LmZ4LnNwZWVkcy5fZGVmYXVsdCxlLmNvbXBsZXRlPXN8fHQuY29tcGxldGUsZX1mdW5jdGlvbiBMKGUpe3JldHVybiFlfHwibnVtYmVyIj09dHlwZW9mIGV8fHUuZnguc3BlZWRzW2VdfHwoInN0cmluZyI9PXR5cGVvZiBlJiYhdS5lZmZlY3RzLmVmZmVjdFtlXXx8KCJmdW5jdGlvbiI9PXR5cGVvZiBlfHwib2JqZWN0Ij09dHlwZW9mIGUmJiFlLmVmZmVjdCkpfWZ1bmN0aW9uIEIoZSx0KXt2YXIgaT10Lm91dGVyV2lkdGgoKSx0PXQub3V0ZXJIZWlnaHQoKSxlPS9ecmVjdFwoKC0\/XGQqXC4\/XGQqcHh8LT9cZCslfGF1dG8pLD9ccyooLT9cZCpcLj9cZCpweHwtP1xkKyV8YXV0byksP1xzKigtP1xkKlwuP1xkKnB4fC0\/XGQrJXxhdXRvKSw\/XHMqKC0\/XGQqXC4\/XGQqcHh8LT9cZCslfGF1dG8pXCkkLy5leGVjKGUpfHxbIiIsMCxpLHQsMF07cmV0dXJue3RvcDpwYXJzZUZsb2F0KGVbMV0pfHwwLHJpZ2h0OiJhdXRvIj09PWVbMl0\/aTpwYXJzZUZsb2F0KGVbMl0pLGJvdHRvbToiYXV0byI9PT1lWzNdP3Q6cGFyc2VGbG9hdChlWzNdKSxsZWZ0OnBhcnNlRmxvYXQoZVs0XSl8fDB9fXUuZWZmZWN0cz17ZWZmZWN0Ont9fSxFPVsiYWRkIiwicmVtb3ZlIiwidG9nZ2xlIl0sUz17Ym9yZGVyOjEsYm9yZGVyQm90dG9tOjEsYm9yZGVyQ29sb3I6MSxib3JkZXJMZWZ0OjEsYm9yZGVyUmlnaHQ6MSxib3JkZXJUb3A6MSxib3JkZXJXaWR0aDoxLG1hcmdpbjoxLHBhZGRpbmc6MX0sdS5lYWNoKFsiYm9yZGVyTGVmdFN0eWxlIiwiYm9yZGVyUmlnaHRTdHlsZSIsImJvcmRlckJvdHRvbVN0eWxlIiwiYm9yZGVyVG9wU3R5bGUiXSxmdW5jdGlvbihlLHQpe3UuZnguc3RlcFt0XT1mdW5jdGlvbihlKXsoIm5vbmUiIT09ZS5lbmQmJiFlLnNldEF0dHJ8fDE9PT1lLnBvcyYmIWUuc2V0QXR0cikmJihoLnN0eWxlKGUuZWxlbSx0LGUuZW5kKSxlLnNldEF0dHI9ITApfX0pLHUuZm4uYWRkQmFja3x8KHUuZm4uYWRkQmFjaz1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5hZGQobnVsbD09ZT90aGlzLnByZXZPYmplY3Q6dGhpcy5wcmV2T2JqZWN0LmZpbHRlcihlKSl9KSx1LmVmZmVjdHMuYW5pbWF0ZUNsYXNzPWZ1bmN0aW9uKG4sZSx0LGkpe3ZhciBhPXUuc3BlZWQoZSx0LGkpO3JldHVybiB0aGlzLnF1ZXVlKGZ1bmN0aW9uKCl7dmFyIGk9dSh0aGlzKSxlPWkuYXR0cigiY2xhc3MiKXx8IiIsdD0odD1hLmNoaWxkcmVuP2kuZmluZCgiKiIpLmFkZEJhY2soKTppKS5tYXAoZnVuY3Rpb24oKXtyZXR1cm57ZWw6dSh0aGlzKSxzdGFydDpGKHRoaXMpfX0pLHM9ZnVuY3Rpb24oKXt1LmVhY2goRSxmdW5jdGlvbihlLHQpe25bdF0mJmlbdCsiQ2xhc3MiXShuW3RdKX0pfTtzKCksdD10Lm1hcChmdW5jdGlvbigpe3JldHVybiB0aGlzLmVuZD1GKHRoaXMuZWxbMF0pLHRoaXMuZGlmZj1mdW5jdGlvbihlLHQpe3ZhciBpLHMsbj17fTtmb3IoaSBpbiB0KXM9dFtpXSxlW2ldIT09cyYmKFNbaV18fCF1LmZ4LnN0ZXBbaV0mJmlzTmFOKHBhcnNlRmxvYXQocykpfHwobltpXT1zKSk7cmV0dXJuIG59KHRoaXMuc3RhcnQsdGhpcy5lbmQpLHRoaXN9KSxpLmF0dHIoImNsYXNzIixlKSx0PXQubWFwKGZ1bmN0aW9uKCl7dmFyIGU9dGhpcyx0PXUuRGVmZXJyZWQoKSxpPXUuZXh0ZW5kKHt9LGEse3F1ZXVlOiExLGNvbXBsZXRlOmZ1bmN0aW9uKCl7dC5yZXNvbHZlKGUpfX0pO3JldHVybiB0aGlzLmVsLmFuaW1hdGUodGhpcy5kaWZmLGkpLHQucHJvbWlzZSgpfSksdS53aGVuLmFwcGx5KHUsdC5nZXQoKSkuZG9uZShmdW5jdGlvbigpe3MoKSx1LmVhY2goYXJndW1lbnRzLGZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5lbDt1LmVhY2godGhpcy5kaWZmLGZ1bmN0aW9uKGUpe3QuY3NzKGUsIiIpfSl9KSxhLmNvbXBsZXRlLmNhbGwoaVswXSl9KX0pfSx1LmZuLmV4dGVuZCh7YWRkQ2xhc3M6KEQ9dS5mbi5hZGRDbGFzcyxmdW5jdGlvbihlLHQsaSxzKXtyZXR1cm4gdD91LmVmZmVjdHMuYW5pbWF0ZUNsYXNzLmNhbGwodGhpcyx7YWRkOmV9LHQsaSxzKTpELmFwcGx5KHRoaXMsYXJndW1lbnRzKX0pLHJlbW92ZUNsYXNzOihrPXUuZm4ucmVtb3ZlQ2xhc3MsZnVuY3Rpb24oZSx0LGkscyl7cmV0dXJuIDE8YXJndW1lbnRzLmxlbmd0aD91LmVmZmVjdHMuYW5pbWF0ZUNsYXNzLmNhbGwodGhpcyx7cmVtb3ZlOmV9LHQsaSxzKTprLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0pLHRvZ2dsZUNsYXNzOihNPXUuZm4udG9nZ2xlQ2xhc3MsZnVuY3Rpb24oZSx0LGkscyxuKXtyZXR1cm4iYm9vbGVhbiI9PXR5cGVvZiB0fHx2b2lkIDA9PT10P2k\/dS5lZmZlY3RzLmFuaW1hdGVDbGFzcy5jYWxsKHRoaXMsdD97YWRkOmV9OntyZW1vdmU6ZX0saSxzLG4pOk0uYXBwbHkodGhpcyxhcmd1bWVudHMpOnUuZWZmZWN0cy5hbmltYXRlQ2xhc3MuY2FsbCh0aGlzLHt0b2dnbGU6ZX0sdCxpLHMpfSksc3dpdGNoQ2xhc3M6ZnVuY3Rpb24oZSx0LGkscyxuKXtyZXR1cm4gdS5lZmZlY3RzLmFuaW1hdGVDbGFzcy5jYWxsKHRoaXMse2FkZDp0LHJlbW92ZTplfSxpLHMsbil9fSksdS5leHByJiZ1LmV4cHIucHNldWRvcyYmdS5leHByLnBzZXVkb3MuYW5pbWF0ZWQmJih1LmV4cHIucHNldWRvcy5hbmltYXRlZD0oTz11LmV4cHIucHNldWRvcy5hbmltYXRlZCxmdW5jdGlvbihlKXtyZXR1cm4hIXUoZSkuZGF0YShWKXx8TyhlKX0pKSwhMSE9PXUudWlCYWNrQ29tcGF0JiZ1LmV4dGVuZCh1LmVmZmVjdHMse3NhdmU6ZnVuY3Rpb24oZSx0KXtmb3IodmFyIGk9MCxzPXQubGVuZ3RoO2k8cztpKyspbnVsbCE9PXRbaV0mJmUuZGF0YShUK3RbaV0sZVswXS5zdHlsZVt0W2ldXSl9LHJlc3RvcmU6ZnVuY3Rpb24oZSx0KXtmb3IodmFyIGkscz0wLG49dC5sZW5ndGg7czxuO3MrKyludWxsIT09dFtzXSYmKGk9ZS5kYXRhKFQrdFtzXSksZS5jc3ModFtzXSxpKSl9LHNldE1vZGU6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdD0idG9nZ2xlIj09PXQ\/ZS5pcygiOmhpZGRlbiIpPyJzaG93IjoiaGlkZSI6dH0sY3JlYXRlV3JhcHBlcjpmdW5jdGlvbihpKXtpZihpLnBhcmVudCgpLmlzKCIudWktZWZmZWN0cy13cmFwcGVyIikpcmV0dXJuIGkucGFyZW50KCk7dmFyIHM9e3dpZHRoOmkub3V0ZXJXaWR0aCghMCksaGVpZ2h0Omkub3V0ZXJIZWlnaHQoITApLGZsb2F0OmkuY3NzKCJmbG9hdCIpfSxlPXUoIjxkaXY+PC9kaXY+IikuYWRkQ2xhc3MoInVpLWVmZmVjdHMtd3JhcHBlciIpLmNzcyh7Zm9udFNpemU6IjEwMCUiLGJhY2tncm91bmQ6InRyYW5zcGFyZW50Iixib3JkZXI6Im5vbmUiLG1hcmdpbjowLHBhZGRpbmc6MH0pLHQ9e3dpZHRoOmkud2lkdGgoKSxoZWlnaHQ6aS5oZWlnaHQoKX0sbj1kb2N1bWVudC5hY3RpdmVFbGVtZW50O3RyeXtuLmlkfWNhdGNoKGUpe249ZG9jdW1lbnQuYm9keX1yZXR1cm4gaS53cmFwKGUpLGlbMF0hPT1uJiYhdS5jb250YWlucyhpWzBdLG4pfHx1KG4pLnRyaWdnZXIoImZvY3VzIiksZT1pLnBhcmVudCgpLCJzdGF0aWMiPT09aS5jc3MoInBvc2l0aW9uIik\/KGUuY3NzKHtwb3NpdGlvbjoicmVsYXRpdmUifSksaS5jc3Moe3Bvc2l0aW9uOiJyZWxhdGl2ZSJ9KSk6KHUuZXh0ZW5kKHMse3Bvc2l0aW9uOmkuY3NzKCJwb3NpdGlvbiIpLHpJbmRleDppLmNzcygiei1pbmRleCIpfSksdS5lYWNoKFsidG9wIiwibGVmdCIsImJvdHRvbSIsInJpZ2h0Il0sZnVuY3Rpb24oZSx0KXtzW3RdPWkuY3NzKHQpLGlzTmFOKHBhcnNlSW50KHNbdF0sMTApKSYmKHNbdF09ImF1dG8iKX0pLGkuY3NzKHtwb3NpdGlvbjoicmVsYXRpdmUiLHRvcDowLGxlZnQ6MCxyaWdodDoiYXV0byIsYm90dG9tOiJhdXRvIn0pKSxpLmNzcyh0KSxlLmNzcyhzKS5zaG93KCl9LHJlbW92ZVdyYXBwZXI6ZnVuY3Rpb24oZSl7dmFyIHQ9ZG9jdW1lbnQuYWN0aXZlRWxlbWVudDtyZXR1cm4gZS5wYXJlbnQoKS5pcygiLnVpLWVmZmVjdHMtd3JhcHBlciIpJiYoZS5wYXJlbnQoKS5yZXBsYWNlV2l0aChlKSxlWzBdIT09dCYmIXUuY29udGFpbnMoZVswXSx0KXx8dSh0KS50cmlnZ2VyKCJmb2N1cyIpKSxlfX0pLHUuZXh0ZW5kKHUuZWZmZWN0cyx7dmVyc2lvbjoiMS4xMy4yIixkZWZpbmU6ZnVuY3Rpb24oZSx0LGkpe3JldHVybiBpfHwoaT10LHQ9ImVmZmVjdCIpLHUuZWZmZWN0cy5lZmZlY3RbZV09aSx1LmVmZmVjdHMuZWZmZWN0W2VdLm1vZGU9dCxpfSxzY2FsZWREaW1lbnNpb25zOmZ1bmN0aW9uKGUsdCxpKXtpZigwPT09dClyZXR1cm57aGVpZ2h0OjAsd2lkdGg6MCxvdXRlckhlaWdodDowLG91dGVyV2lkdGg6MH07dmFyIHM9Imhvcml6b250YWwiIT09aT8odHx8MTAwKS8xMDA6MSx0PSJ2ZXJ0aWNhbCIhPT1pPyh0fHwxMDApLzEwMDoxO3JldHVybntoZWlnaHQ6ZS5oZWlnaHQoKSp0LHdpZHRoOmUud2lkdGgoKSpzLG91dGVySGVpZ2h0OmUub3V0ZXJIZWlnaHQoKSp0LG91dGVyV2lkdGg6ZS5vdXRlcldpZHRoKCkqc319LGNsaXBUb0JveDpmdW5jdGlvbihlKXtyZXR1cm57d2lkdGg6ZS5jbGlwLnJpZ2h0LWUuY2xpcC5sZWZ0LGhlaWdodDplLmNsaXAuYm90dG9tLWUuY2xpcC50b3AsbGVmdDplLmNsaXAubGVmdCx0b3A6ZS5jbGlwLnRvcH19LHVuc2hpZnQ6ZnVuY3Rpb24oZSx0LGkpe3ZhciBzPWUucXVldWUoKTsxPHQmJnMuc3BsaWNlLmFwcGx5KHMsWzEsMF0uY29uY2F0KHMuc3BsaWNlKHQsaSkpKSxlLmRlcXVldWUoKX0sc2F2ZVN0eWxlOmZ1bmN0aW9uKGUpe2UuZGF0YShXLGVbMF0uc3R5bGUuY3NzVGV4dCl9LHJlc3RvcmVTdHlsZTpmdW5jdGlvbihlKXtlWzBdLnN0eWxlLmNzc1RleHQ9ZS5kYXRhKFcpfHwiIixlLnJlbW92ZURhdGEoVyl9LG1vZGU6ZnVuY3Rpb24oZSx0KXtlPWUuaXMoIjpoaWRkZW4iKTtyZXR1cm4idG9nZ2xlIj09PXQmJih0PWU\/InNob3ciOiJoaWRlIiksdD0oZT8iaGlkZSI9PT10OiJzaG93Ij09PXQpPyJub25lIjp0fSxnZXRCYXNlbGluZTpmdW5jdGlvbihlLHQpe3ZhciBpLHM7c3dpdGNoKGVbMF0pe2Nhc2UidG9wIjppPTA7YnJlYWs7Y2FzZSJtaWRkbGUiOmk9LjU7YnJlYWs7Y2FzZSJib3R0b20iOmk9MTticmVhaztkZWZhdWx0Omk9ZVswXS90LmhlaWdodH1zd2l0Y2goZVsxXSl7Y2FzZSJsZWZ0IjpzPTA7YnJlYWs7Y2FzZSJjZW50ZXIiOnM9LjU7YnJlYWs7Y2FzZSJyaWdodCI6cz0xO2JyZWFrO2RlZmF1bHQ6cz1lWzFdL3Qud2lkdGh9cmV0dXJue3g6cyx5Oml9fSxjcmVhdGVQbGFjZWhvbGRlcjpmdW5jdGlvbihlKXt2YXIgdCxpPWUuY3NzKCJwb3NpdGlvbiIpLHM9ZS5wb3NpdGlvbigpO3JldHVybiBlLmNzcyh7bWFyZ2luVG9wOmUuY3NzKCJtYXJnaW5Ub3AiKSxtYXJnaW5Cb3R0b206ZS5jc3MoIm1hcmdpbkJvdHRvbSIpLG1hcmdpbkxlZnQ6ZS5jc3MoIm1hcmdpbkxlZnQiKSxtYXJnaW5SaWdodDplLmNzcygibWFyZ2luUmlnaHQiKX0pLm91dGVyV2lkdGgoZS5vdXRlcldpZHRoKCkpLm91dGVySGVpZ2h0KGUub3V0ZXJIZWlnaHQoKSksL14oc3RhdGljfHJlbGF0aXZlKS8udGVzdChpKSYmKGk9ImFic29sdXRlIix0PXUoIjwiK2VbMF0ubm9kZU5hbWUrIj4iKS5pbnNlcnRBZnRlcihlKS5jc3Moe2Rpc3BsYXk6L14oaW5saW5lfHJ1YnkpLy50ZXN0KGUuY3NzKCJkaXNwbGF5IikpPyJpbmxpbmUtYmxvY2siOiJibG9jayIsdmlzaWJpbGl0eToiaGlkZGVuIixtYXJnaW5Ub3A6ZS5jc3MoIm1hcmdpblRvcCIpLG1hcmdpbkJvdHRvbTplLmNzcygibWFyZ2luQm90dG9tIiksbWFyZ2luTGVmdDplLmNzcygibWFyZ2luTGVmdCIpLG1hcmdpblJpZ2h0OmUuY3NzKCJtYXJnaW5SaWdodCIpLGZsb2F0OmUuY3NzKCJmbG9hdCIpfSkub3V0ZXJXaWR0aChlLm91dGVyV2lkdGgoKSkub3V0ZXJIZWlnaHQoZS5vdXRlckhlaWdodCgpKS5hZGRDbGFzcygidWktZWZmZWN0cy1wbGFjZWhvbGRlciIpLGUuZGF0YShUKyJwbGFjZWhvbGRlciIsdCkpLGUuY3NzKHtwb3NpdGlvbjppLGxlZnQ6cy5sZWZ0LHRvcDpzLnRvcH0pLHR9LHJlbW92ZVBsYWNlaG9sZGVyOmZ1bmN0aW9uKGUpe3ZhciB0PVQrInBsYWNlaG9sZGVyIixpPWUuZGF0YSh0KTtpJiYoaS5yZW1vdmUoKSxlLnJlbW92ZURhdGEodCkpfSxjbGVhblVwOmZ1bmN0aW9uKGUpe3UuZWZmZWN0cy5yZXN0b3JlU3R5bGUoZSksdS5lZmZlY3RzLnJlbW92ZVBsYWNlaG9sZGVyKGUpfSxzZXRUcmFuc2l0aW9uOmZ1bmN0aW9uKHMsZSxuLGEpe3JldHVybiBhPWF8fHt9LHUuZWFjaChlLGZ1bmN0aW9uKGUsdCl7dmFyIGk9cy5jc3NVbml0KHQpOzA8aVswXSYmKGFbdF09aVswXSpuK2lbMV0pfSksYX19KSx1LmZuLmV4dGVuZCh7ZWZmZWN0OmZ1bmN0aW9uKCl7ZnVuY3Rpb24gZShlKXt2YXIgdD11KHRoaXMpLGk9dS5lZmZlY3RzLm1vZGUodCxyKXx8YTt0LmRhdGEoViwhMCksaC5wdXNoKGkpLGEmJigic2hvdyI9PT1pfHxpPT09YSYmImhpZGUiPT09aSkmJnQuc2hvdygpLGEmJiJub25lIj09PWl8fHUuZWZmZWN0cy5zYXZlU3R5bGUodCksImZ1bmN0aW9uIj09dHlwZW9mIGUmJmUoKX12YXIgcz1xLmFwcGx5KHRoaXMsYXJndW1lbnRzKSxuPXUuZWZmZWN0cy5lZmZlY3Rbcy5lZmZlY3RdLGE9bi5tb2RlLHQ9cy5xdWV1ZSxpPXR8fCJmeCIsbz1zLmNvbXBsZXRlLHI9cy5tb2RlLGg9W107cmV0dXJuIHUuZngub2ZmfHwhbj9yP3RoaXNbcl0ocy5kdXJhdGlvbixvKTp0aGlzLmVhY2goZnVuY3Rpb24oKXtvJiZvLmNhbGwodGhpcyl9KTohMT09PXQ\/dGhpcy5lYWNoKGUpLmVhY2gobCk6dGhpcy5xdWV1ZShpLGUpLnF1ZXVlKGksbCk7ZnVuY3Rpb24gbChlKXt2YXIgdD11KHRoaXMpO2Z1bmN0aW9uIGkoKXsiZnVuY3Rpb24iPT10eXBlb2YgbyYmby5jYWxsKHRbMF0pLCJmdW5jdGlvbiI9PXR5cGVvZiBlJiZlKCl9cy5tb2RlPWguc2hpZnQoKSwhMT09PXUudWlCYWNrQ29tcGF0fHxhPyJub25lIj09PXMubW9kZT8odFtyXSgpLGkoKSk6bi5jYWxsKHRbMF0scyxmdW5jdGlvbigpe3QucmVtb3ZlRGF0YShWKSx1LmVmZmVjdHMuY2xlYW5VcCh0KSwiaGlkZSI9PT1zLm1vZGUmJnQuaGlkZSgpLGkoKX0pOih0LmlzKCI6aGlkZGVuIik\/ImhpZGUiPT09cjoic2hvdyI9PT1yKT8odFtyXSgpLGkoKSk6bi5jYWxsKHRbMF0scyxpKX19LHNob3c6KEE9dS5mbi5zaG93LGZ1bmN0aW9uKGUpe2lmKEwoZSkpcmV0dXJuIEEuYXBwbHkodGhpcyxhcmd1bWVudHMpO2U9cS5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIGUubW9kZT0ic2hvdyIsdGhpcy5lZmZlY3QuY2FsbCh0aGlzLGUpfSksaGlkZTooTj11LmZuLmhpZGUsZnVuY3Rpb24oZSl7aWYoTChlKSlyZXR1cm4gTi5hcHBseSh0aGlzLGFyZ3VtZW50cyk7ZT1xLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gZS5tb2RlPSJoaWRlIix0aGlzLmVmZmVjdC5jYWxsKHRoaXMsZSl9KSx0b2dnbGU6KEk9dS5mbi50b2dnbGUsZnVuY3Rpb24oZSl7aWYoTChlKXx8ImJvb2xlYW4iPT10eXBlb2YgZSlyZXR1cm4gSS5hcHBseSh0aGlzLGFyZ3VtZW50cyk7ZT1xLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gZS5tb2RlPSJ0b2dnbGUiLHRoaXMuZWZmZWN0LmNhbGwodGhpcyxlKX0pLGNzc1VuaXQ6ZnVuY3Rpb24oZSl7dmFyIGk9dGhpcy5jc3MoZSkscz1bXTtyZXR1cm4gdS5lYWNoKFsiZW0iLCJweCIsIiUiLCJwdCJdLGZ1bmN0aW9uKGUsdCl7MDxpLmluZGV4T2YodCkmJihzPVtwYXJzZUZsb2F0KGkpLHRdKX0pLHN9LGNzc0NsaXA6ZnVuY3Rpb24oZSl7cmV0dXJuIGU\/dGhpcy5jc3MoImNsaXAiLCJyZWN0KCIrZS50b3ArInB4ICIrZS5yaWdodCsicHggIitlLmJvdHRvbSsicHggIitlLmxlZnQrInB4KSIpOkIodGhpcy5jc3MoImNsaXAiKSx0aGlzKX0sdHJhbnNmZXI6ZnVuY3Rpb24oZSx0KXt2YXIgaT11KHRoaXMpLHM9dShlLnRvKSxuPSJmaXhlZCI9PT1zLmNzcygicG9zaXRpb24iKSxhPXUoImJvZHkiKSxvPW4\/YS5zY3JvbGxUb3AoKTowLHI9bj9hLnNjcm9sbExlZnQoKTowLGE9cy5vZmZzZXQoKSxhPXt0b3A6YS50b3AtbyxsZWZ0OmEubGVmdC1yLGhlaWdodDpzLmlubmVySGVpZ2h0KCksd2lkdGg6cy5pbm5lcldpZHRoKCl9LHM9aS5vZmZzZXQoKSxoPXUoIjxkaXYgY2xhc3M9J3VpLWVmZmVjdHMtdHJhbnNmZXInPjwvZGl2PiIpO2guYXBwZW5kVG8oImJvZHkiKS5hZGRDbGFzcyhlLmNsYXNzTmFtZSkuY3NzKHt0b3A6cy50b3AtbyxsZWZ0OnMubGVmdC1yLGhlaWdodDppLmlubmVySGVpZ2h0KCksd2lkdGg6aS5pbm5lcldpZHRoKCkscG9zaXRpb246bj8iZml4ZWQiOiJhYnNvbHV0ZSJ9KS5hbmltYXRlKGEsZS5kdXJhdGlvbixlLmVhc2luZyxmdW5jdGlvbigpe2gucmVtb3ZlKCksImZ1bmN0aW9uIj09dHlwZW9mIHQmJnQoKX0pfX0pLHUuZnguc3RlcC5jbGlwPWZ1bmN0aW9uKGUpe2UuY2xpcEluaXR8fChlLnN0YXJ0PXUoZS5lbGVtKS5jc3NDbGlwKCksInN0cmluZyI9PXR5cGVvZiBlLmVuZCYmKGUuZW5kPUIoZS5lbmQsZS5lbGVtKSksZS5jbGlwSW5pdD0hMCksdShlLmVsZW0pLmNzc0NsaXAoe3RvcDplLnBvcyooZS5lbmQudG9wLWUuc3RhcnQudG9wKStlLnN0YXJ0LnRvcCxyaWdodDplLnBvcyooZS5lbmQucmlnaHQtZS5zdGFydC5yaWdodCkrZS5zdGFydC5yaWdodCxib3R0b206ZS5wb3MqKGUuZW5kLmJvdHRvbS1lLnN0YXJ0LmJvdHRvbSkrZS5zdGFydC5ib3R0b20sbGVmdDplLnBvcyooZS5lbmQubGVmdC1lLnN0YXJ0LmxlZnQpK2Uuc3RhcnQubGVmdH0pfSxQPXt9LHUuZWFjaChbIlF1YWQiLCJDdWJpYyIsIlF1YXJ0IiwiUXVpbnQiLCJFeHBvIl0sZnVuY3Rpb24odCxlKXtQW2VdPWZ1bmN0aW9uKGUpe3JldHVybiBNYXRoLnBvdyhlLHQrMil9fSksdS5leHRlbmQoUCx7U2luZTpmdW5jdGlvbihlKXtyZXR1cm4gMS1NYXRoLmNvcyhlKk1hdGguUEkvMil9LENpcmM6ZnVuY3Rpb24oZSl7cmV0dXJuIDEtTWF0aC5zcXJ0KDEtZSplKX0sRWxhc3RpYzpmdW5jdGlvbihlKXtyZXR1cm4gMD09PWV8fDE9PT1lP2U6LU1hdGgucG93KDIsOCooZS0xKSkqTWF0aC5zaW4oKDgwKihlLTEpLTcuNSkqTWF0aC5QSS8xNSl9LEJhY2s6ZnVuY3Rpb24oZSl7cmV0dXJuIGUqZSooMyplLTIpfSxCb3VuY2U6ZnVuY3Rpb24oZSl7Zm9yKHZhciB0LGk9NDtlPCgodD1NYXRoLnBvdygyLC0taSkpLTEpLzExOyk7cmV0dXJuIDEvTWF0aC5wb3coNCwzLWkpLTcuNTYyNSpNYXRoLnBvdygoMyp0LTIpLzIyLWUsMil9fSksdS5lYWNoKFAsZnVuY3Rpb24oZSx0KXt1LmVhc2luZ1siZWFzZUluIitlXT10LHUuZWFzaW5nWyJlYXNlT3V0IitlXT1mdW5jdGlvbihlKXtyZXR1cm4gMS10KDEtZSl9LHUuZWFzaW5nWyJlYXNlSW5PdXQiK2VdPWZ1bmN0aW9uKGUpe3JldHVybiBlPC41P3QoMiplKS8yOjEtdCgtMiplKzIpLzJ9fSk7dS5lZmZlY3RzfSk7Ci8qKiAvanMvdmFuaWxsYWpzL3N0b3JlLmpzICoqLwp2YXIgX19fZDJjX3N0b3JlanNfY19vbj0iMjAyNi0wMi0yMCAxMTozMDoxMCI7J3VzZSBzdHJpY3QnO3ZhciAkanNjb21wPSRqc2NvbXB8fHt9OyRqc2NvbXAuc2NvcGU9e307JGpzY29tcC5BU1NVTUVfRVM1PSExOyRqc2NvbXAuQVNTVU1FX05PX05BVElWRV9NQVA9ITE7JGpzY29tcC5BU1NVTUVfTk9fTkFUSVZFX1NFVD0hMTskanNjb21wLlNJTVBMRV9GUk9VTkRfUE9MWUZJTEw9ITE7JGpzY29tcC5JU09MQVRFX1BPTFlGSUxMUz0hMTskanNjb21wLkZPUkNFX1BPTFlGSUxMX1BST01JU0U9ITE7JGpzY29tcC5GT1JDRV9QT0xZRklMTF9QUk9NSVNFX1dIRU5fTk9fVU5IQU5ETEVEX1JFSkVDVElPTj0hMTskanNjb21wLmRlZmluZVByb3BlcnR5PSRqc2NvbXAuQVNTVU1FX0VTNXx8ImZ1bmN0aW9uIj09dHlwZW9mIE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzP09iamVjdC5kZWZpbmVQcm9wZXJ0eTpmdW5jdGlvbihhLGIsYyl7aWYoYT09QXJyYXkucHJvdG90eXBlfHxhPT1PYmplY3QucHJvdG90eXBlKXJldHVybiBhO2FbYl09Yy52YWx1ZTtyZXR1cm4gYX07CiRqc2NvbXAuZ2V0R2xvYmFsPWZ1bmN0aW9uKGEpe2E9WyJvYmplY3QiPT10eXBlb2YgZ2xvYmFsVGhpcyYmZ2xvYmFsVGhpcyxhLCJvYmplY3QiPT10eXBlb2Ygd2luZG93JiZ3aW5kb3csIm9iamVjdCI9PXR5cGVvZiBzZWxmJiZzZWxmLCJvYmplY3QiPT10eXBlb2YgZ2xvYmFsJiZnbG9iYWxdO2Zvcih2YXIgYj0wO2I8YS5sZW5ndGg7KytiKXt2YXIgYz1hW2JdO2lmKGMmJmMuTWF0aD09TWF0aClyZXR1cm4gY310aHJvdyBFcnJvcigiQ2Fubm90IGZpbmQgZ2xvYmFsIG9iamVjdCIpO307JGpzY29tcC5nbG9iYWw9JGpzY29tcC5nZXRHbG9iYWwodGhpcyk7JGpzY29tcC5JU19TWU1CT0xfTkFUSVZFPSJmdW5jdGlvbiI9PT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09PXR5cGVvZiBTeW1ib2woIngiKTskanNjb21wLlRSVVNUX0VTNl9QT0xZRklMTFM9ISRqc2NvbXAuSVNPTEFURV9QT0xZRklMTFN8fCRqc2NvbXAuSVNfU1lNQk9MX05BVElWRTskanNjb21wLnBvbHlmaWxscz17fTsKJGpzY29tcC5wcm9wZXJ0eVRvUG9seWZpbGxTeW1ib2w9e307JGpzY29tcC5QT0xZRklMTF9QUkVGSVg9IiRqc2NwJCI7dmFyICRqc2NvbXAkbG9va3VwUG9seWZpbGxlZFZhbHVlPWZ1bmN0aW9uKGEsYil7dmFyIGM9JGpzY29tcC5wcm9wZXJ0eVRvUG9seWZpbGxTeW1ib2xbYl07aWYobnVsbD09YylyZXR1cm4gYVtiXTtjPWFbY107cmV0dXJuIHZvaWQgMCE9PWM\/YzphW2JdfTskanNjb21wLnBvbHlmaWxsPWZ1bmN0aW9uKGEsYixjLGQpe2ImJigkanNjb21wLklTT0xBVEVfUE9MWUZJTExTPyRqc2NvbXAucG9seWZpbGxJc29sYXRlZChhLGIsYyxkKTokanNjb21wLnBvbHlmaWxsVW5pc29sYXRlZChhLGIsYyxkKSl9OwokanNjb21wLnBvbHlmaWxsVW5pc29sYXRlZD1mdW5jdGlvbihhLGIsYyxkKXtjPSRqc2NvbXAuZ2xvYmFsO2E9YS5zcGxpdCgiLiIpO2ZvcihkPTA7ZDxhLmxlbmd0aC0xO2QrKyl7dmFyIGU9YVtkXTtpZighKGUgaW4gYykpcmV0dXJuO2M9Y1tlXX1hPWFbYS5sZW5ndGgtMV07ZD1jW2FdO2I9YihkKTtiIT1kJiZudWxsIT1iJiYkanNjb21wLmRlZmluZVByb3BlcnR5KGMsYSx7Y29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmJ9KX07CiRqc2NvbXAucG9seWZpbGxJc29sYXRlZD1mdW5jdGlvbihhLGIsYyxkKXt2YXIgZT1hLnNwbGl0KCIuIik7YT0xPT09ZS5sZW5ndGg7ZD1lWzBdO2Q9IWEmJmQgaW4gJGpzY29tcC5wb2x5ZmlsbHM\/JGpzY29tcC5wb2x5ZmlsbHM6JGpzY29tcC5nbG9iYWw7Zm9yKHZhciBmPTA7ZjxlLmxlbmd0aC0xO2YrKyl7dmFyIGc9ZVtmXTtpZighKGcgaW4gZCkpcmV0dXJuO2Q9ZFtnXX1lPWVbZS5sZW5ndGgtMV07Yz0kanNjb21wLklTX1NZTUJPTF9OQVRJVkUmJiJlczYiPT09Yz9kW2VdOm51bGw7Yj1iKGMpO251bGwhPWImJihhPyRqc2NvbXAuZGVmaW5lUHJvcGVydHkoJGpzY29tcC5wb2x5ZmlsbHMsZSx7Y29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmJ9KTpiIT09YyYmKHZvaWQgMD09PSRqc2NvbXAucHJvcGVydHlUb1BvbHlmaWxsU3ltYm9sW2VdJiYoYz0xRTkqTWF0aC5yYW5kb20oKT4+PjAsJGpzY29tcC5wcm9wZXJ0eVRvUG9seWZpbGxTeW1ib2xbZV09JGpzY29tcC5JU19TWU1CT0xfTkFUSVZFPwokanNjb21wLmdsb2JhbC5TeW1ib2woZSk6JGpzY29tcC5QT0xZRklMTF9QUkVGSVgrYysiJCIrZSksJGpzY29tcC5kZWZpbmVQcm9wZXJ0eShkLCRqc2NvbXAucHJvcGVydHlUb1BvbHlmaWxsU3ltYm9sW2VdLHtjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Yn0pKSl9OyRqc2NvbXAudW5kZXJzY29yZVByb3RvQ2FuQmVTZXQ9ZnVuY3Rpb24oKXt2YXIgYT17YTohMH0sYj17fTt0cnl7cmV0dXJuIGIuX19wcm90b19fPWEsYi5hfWNhdGNoKGMpe31yZXR1cm4hMX07CiRqc2NvbXAuc2V0UHJvdG90eXBlT2Y9JGpzY29tcC5UUlVTVF9FUzZfUE9MWUZJTExTJiYiZnVuY3Rpb24iPT10eXBlb2YgT2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZjokanNjb21wLnVuZGVyc2NvcmVQcm90b0NhbkJlU2V0KCk\/ZnVuY3Rpb24oYSxiKXthLl9fcHJvdG9fXz1iO2lmKGEuX19wcm90b19fIT09Yil0aHJvdyBuZXcgVHlwZUVycm9yKGErIiBpcyBub3QgZXh0ZW5zaWJsZSIpO3JldHVybiBhfTpudWxsOyRqc2NvbXAuYXJyYXlJdGVyYXRvckltcGw9ZnVuY3Rpb24oYSl7dmFyIGI9MDtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gYjxhLmxlbmd0aD97ZG9uZTohMSx2YWx1ZTphW2IrK119Ontkb25lOiEwfX19OyRqc2NvbXAuYXJyYXlJdGVyYXRvcj1mdW5jdGlvbihhKXtyZXR1cm57bmV4dDokanNjb21wLmFycmF5SXRlcmF0b3JJbXBsKGEpfX07CiRqc2NvbXAubWFrZUl0ZXJhdG9yPWZ1bmN0aW9uKGEpe3ZhciBiPSJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZTeW1ib2wuaXRlcmF0b3ImJmFbU3ltYm9sLml0ZXJhdG9yXTtyZXR1cm4gYj9iLmNhbGwoYSk6JGpzY29tcC5hcnJheUl0ZXJhdG9yKGEpfTskanNjb21wLmdlbmVyYXRvcj17fTskanNjb21wLmdlbmVyYXRvci5lbnN1cmVJdGVyYXRvclJlc3VsdElzT2JqZWN0Xz1mdW5jdGlvbihhKXtpZighKGEgaW5zdGFuY2VvZiBPYmplY3QpKXRocm93IG5ldyBUeXBlRXJyb3IoIkl0ZXJhdG9yIHJlc3VsdCAiK2ErIiBpcyBub3QgYW4gb2JqZWN0Iik7fTsKJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dD1mdW5jdGlvbigpe3RoaXMuaXNSdW5uaW5nXz0hMTt0aGlzLnlpZWxkQWxsSXRlcmF0b3JfPW51bGw7dGhpcy55aWVsZFJlc3VsdD12b2lkIDA7dGhpcy5uZXh0QWRkcmVzcz0xO3RoaXMuZmluYWxseUFkZHJlc3NfPXRoaXMuY2F0Y2hBZGRyZXNzXz0wO3RoaXMuZmluYWxseUNvbnRleHRzXz10aGlzLmFicnVwdENvbXBsZXRpb25fPW51bGx9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLnN0YXJ0Xz1mdW5jdGlvbigpe2lmKHRoaXMuaXNSdW5uaW5nXyl0aHJvdyBuZXcgVHlwZUVycm9yKCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBydW5uaW5nIik7dGhpcy5pc1J1bm5pbmdfPSEwfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5zdG9wXz1mdW5jdGlvbigpe3RoaXMuaXNSdW5uaW5nXz0hMX07CiRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmp1bXBUb0Vycm9ySGFuZGxlcl89ZnVuY3Rpb24oKXt0aGlzLm5leHRBZGRyZXNzPXRoaXMuY2F0Y2hBZGRyZXNzX3x8dGhpcy5maW5hbGx5QWRkcmVzc199OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLm5leHRfPWZ1bmN0aW9uKGEpe3RoaXMueWllbGRSZXN1bHQ9YX07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUudGhyb3dfPWZ1bmN0aW9uKGEpe3RoaXMuYWJydXB0Q29tcGxldGlvbl89e2V4Y2VwdGlvbjphLGlzRXhjZXB0aW9uOiEwfTt0aGlzLmp1bXBUb0Vycm9ySGFuZGxlcl8oKX07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUucmV0dXJuPWZ1bmN0aW9uKGEpe3RoaXMuYWJydXB0Q29tcGxldGlvbl89e3JldHVybjphfTt0aGlzLm5leHRBZGRyZXNzPXRoaXMuZmluYWxseUFkZHJlc3NffTsKJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuanVtcFRocm91Z2hGaW5hbGx5QmxvY2tzPWZ1bmN0aW9uKGEpe3RoaXMuYWJydXB0Q29tcGxldGlvbl89e2p1bXBUbzphfTt0aGlzLm5leHRBZGRyZXNzPXRoaXMuZmluYWxseUFkZHJlc3NffTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS55aWVsZD1mdW5jdGlvbihhLGIpe3RoaXMubmV4dEFkZHJlc3M9YjtyZXR1cm57dmFsdWU6YX19OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLnlpZWxkQWxsPWZ1bmN0aW9uKGEsYil7YT0kanNjb21wLm1ha2VJdGVyYXRvcihhKTt2YXIgYz1hLm5leHQoKTskanNjb21wLmdlbmVyYXRvci5lbnN1cmVJdGVyYXRvclJlc3VsdElzT2JqZWN0XyhjKTtpZihjLmRvbmUpdGhpcy55aWVsZFJlc3VsdD1jLnZhbHVlLHRoaXMubmV4dEFkZHJlc3M9YjtlbHNlIHJldHVybiB0aGlzLnlpZWxkQWxsSXRlcmF0b3JfPWEsdGhpcy55aWVsZChjLnZhbHVlLGIpfTsKJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuanVtcFRvPWZ1bmN0aW9uKGEpe3RoaXMubmV4dEFkZHJlc3M9YX07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuanVtcFRvRW5kPWZ1bmN0aW9uKCl7dGhpcy5uZXh0QWRkcmVzcz0wfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5zZXRDYXRjaEZpbmFsbHlCbG9ja3M9ZnVuY3Rpb24oYSxiKXt0aGlzLmNhdGNoQWRkcmVzc189YTt2b2lkIDAhPWImJih0aGlzLmZpbmFsbHlBZGRyZXNzXz1iKX07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuc2V0RmluYWxseUJsb2NrPWZ1bmN0aW9uKGEpe3RoaXMuY2F0Y2hBZGRyZXNzXz0wO3RoaXMuZmluYWxseUFkZHJlc3NfPWF8fDB9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmxlYXZlVHJ5QmxvY2s9ZnVuY3Rpb24oYSxiKXt0aGlzLm5leHRBZGRyZXNzPWE7dGhpcy5jYXRjaEFkZHJlc3NfPWJ8fDB9OwokanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5lbnRlckNhdGNoQmxvY2s9ZnVuY3Rpb24oYSl7dGhpcy5jYXRjaEFkZHJlc3NfPWF8fDA7YT10aGlzLmFicnVwdENvbXBsZXRpb25fLmV4Y2VwdGlvbjt0aGlzLmFicnVwdENvbXBsZXRpb25fPW51bGw7cmV0dXJuIGF9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmVudGVyRmluYWxseUJsb2NrPWZ1bmN0aW9uKGEsYixjKXtjP3RoaXMuZmluYWxseUNvbnRleHRzX1tjXT10aGlzLmFicnVwdENvbXBsZXRpb25fOnRoaXMuZmluYWxseUNvbnRleHRzXz1bdGhpcy5hYnJ1cHRDb21wbGV0aW9uX107dGhpcy5jYXRjaEFkZHJlc3NfPWF8fDA7dGhpcy5maW5hbGx5QWRkcmVzc189Ynx8MH07CiRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmxlYXZlRmluYWxseUJsb2NrPWZ1bmN0aW9uKGEsYil7Yj10aGlzLmZpbmFsbHlDb250ZXh0c18uc3BsaWNlKGJ8fDApWzBdO2lmKGI9dGhpcy5hYnJ1cHRDb21wbGV0aW9uXz10aGlzLmFicnVwdENvbXBsZXRpb25ffHxiKXtpZihiLmlzRXhjZXB0aW9uKXJldHVybiB0aGlzLmp1bXBUb0Vycm9ySGFuZGxlcl8oKTt2b2lkIDAhPWIuanVtcFRvJiZ0aGlzLmZpbmFsbHlBZGRyZXNzXzxiLmp1bXBUbz8odGhpcy5uZXh0QWRkcmVzcz1iLmp1bXBUbyx0aGlzLmFicnVwdENvbXBsZXRpb25fPW51bGwpOnRoaXMubmV4dEFkZHJlc3M9dGhpcy5maW5hbGx5QWRkcmVzc199ZWxzZSB0aGlzLm5leHRBZGRyZXNzPWF9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmZvckluPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcgJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5Qcm9wZXJ0eUl0ZXJhdG9yKGEpfTsKJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5Qcm9wZXJ0eUl0ZXJhdG9yPWZ1bmN0aW9uKGEpe3RoaXMub2JqZWN0Xz1hO3RoaXMucHJvcGVydGllc189W107Zm9yKHZhciBiIGluIGEpdGhpcy5wcm9wZXJ0aWVzXy5wdXNoKGIpO3RoaXMucHJvcGVydGllc18ucmV2ZXJzZSgpfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LlByb3BlcnR5SXRlcmF0b3IucHJvdG90eXBlLmdldE5leHQ9ZnVuY3Rpb24oKXtmb3IoOzA8dGhpcy5wcm9wZXJ0aWVzXy5sZW5ndGg7KXt2YXIgYT10aGlzLnByb3BlcnRpZXNfLnBvcCgpO2lmKGEgaW4gdGhpcy5vYmplY3RfKXJldHVybiBhfXJldHVybiBudWxsfTskanNjb21wLmdlbmVyYXRvci5FbmdpbmVfPWZ1bmN0aW9uKGEpe3RoaXMuY29udGV4dF89bmV3ICRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQ7dGhpcy5wcm9ncmFtXz1hfTsKJGpzY29tcC5nZW5lcmF0b3IuRW5naW5lXy5wcm90b3R5cGUubmV4dF89ZnVuY3Rpb24oYSl7dGhpcy5jb250ZXh0Xy5zdGFydF8oKTtpZih0aGlzLmNvbnRleHRfLnlpZWxkQWxsSXRlcmF0b3JfKXJldHVybiB0aGlzLnlpZWxkQWxsU3RlcF8odGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yXy5uZXh0LGEsdGhpcy5jb250ZXh0Xy5uZXh0Xyk7dGhpcy5jb250ZXh0Xy5uZXh0XyhhKTtyZXR1cm4gdGhpcy5uZXh0U3RlcF8oKX07CiRqc2NvbXAuZ2VuZXJhdG9yLkVuZ2luZV8ucHJvdG90eXBlLnJldHVybl89ZnVuY3Rpb24oYSl7dGhpcy5jb250ZXh0Xy5zdGFydF8oKTt2YXIgYj10aGlzLmNvbnRleHRfLnlpZWxkQWxsSXRlcmF0b3JfO2lmKGIpcmV0dXJuIHRoaXMueWllbGRBbGxTdGVwXygicmV0dXJuImluIGI\/YlsicmV0dXJuIl06ZnVuY3Rpb24oYyl7cmV0dXJue3ZhbHVlOmMsZG9uZTohMH19LGEsdGhpcy5jb250ZXh0Xy5yZXR1cm4pO3RoaXMuY29udGV4dF8ucmV0dXJuKGEpO3JldHVybiB0aGlzLm5leHRTdGVwXygpfTsKJGpzY29tcC5nZW5lcmF0b3IuRW5naW5lXy5wcm90b3R5cGUudGhyb3dfPWZ1bmN0aW9uKGEpe3RoaXMuY29udGV4dF8uc3RhcnRfKCk7aWYodGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yXylyZXR1cm4gdGhpcy55aWVsZEFsbFN0ZXBfKHRoaXMuY29udGV4dF8ueWllbGRBbGxJdGVyYXRvcl9bInRocm93Il0sYSx0aGlzLmNvbnRleHRfLm5leHRfKTt0aGlzLmNvbnRleHRfLnRocm93XyhhKTtyZXR1cm4gdGhpcy5uZXh0U3RlcF8oKX07CiRqc2NvbXAuZ2VuZXJhdG9yLkVuZ2luZV8ucHJvdG90eXBlLnlpZWxkQWxsU3RlcF89ZnVuY3Rpb24oYSxiLGMpe3RyeXt2YXIgZD1hLmNhbGwodGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yXyxiKTskanNjb21wLmdlbmVyYXRvci5lbnN1cmVJdGVyYXRvclJlc3VsdElzT2JqZWN0XyhkKTtpZighZC5kb25lKXJldHVybiB0aGlzLmNvbnRleHRfLnN0b3BfKCksZDt2YXIgZT1kLnZhbHVlfWNhdGNoKGYpe3JldHVybiB0aGlzLmNvbnRleHRfLnlpZWxkQWxsSXRlcmF0b3JfPW51bGwsdGhpcy5jb250ZXh0Xy50aHJvd18oZiksdGhpcy5uZXh0U3RlcF8oKX10aGlzLmNvbnRleHRfLnlpZWxkQWxsSXRlcmF0b3JfPW51bGw7Yy5jYWxsKHRoaXMuY29udGV4dF8sZSk7cmV0dXJuIHRoaXMubmV4dFN0ZXBfKCl9OwokanNjb21wLmdlbmVyYXRvci5FbmdpbmVfLnByb3RvdHlwZS5uZXh0U3RlcF89ZnVuY3Rpb24oKXtmb3IoO3RoaXMuY29udGV4dF8ubmV4dEFkZHJlc3M7KXRyeXt2YXIgYT10aGlzLnByb2dyYW1fKHRoaXMuY29udGV4dF8pO2lmKGEpcmV0dXJuIHRoaXMuY29udGV4dF8uc3RvcF8oKSx7dmFsdWU6YS52YWx1ZSxkb25lOiExfX1jYXRjaChiKXt0aGlzLmNvbnRleHRfLnlpZWxkUmVzdWx0PXZvaWQgMCx0aGlzLmNvbnRleHRfLnRocm93XyhiKX10aGlzLmNvbnRleHRfLnN0b3BfKCk7aWYodGhpcy5jb250ZXh0Xy5hYnJ1cHRDb21wbGV0aW9uXyl7YT10aGlzLmNvbnRleHRfLmFicnVwdENvbXBsZXRpb25fO3RoaXMuY29udGV4dF8uYWJydXB0Q29tcGxldGlvbl89bnVsbDtpZihhLmlzRXhjZXB0aW9uKXRocm93IGEuZXhjZXB0aW9uO3JldHVybnt2YWx1ZTphLnJldHVybixkb25lOiEwfX1yZXR1cm57dmFsdWU6dm9pZCAwLGRvbmU6ITB9fTsKJGpzY29tcC5nZW5lcmF0b3IuR2VuZXJhdG9yXz1mdW5jdGlvbihhKXt0aGlzLm5leHQ9ZnVuY3Rpb24oYil7cmV0dXJuIGEubmV4dF8oYil9O3RoaXMudGhyb3c9ZnVuY3Rpb24oYil7cmV0dXJuIGEudGhyb3dfKGIpfTt0aGlzLnJldHVybj1mdW5jdGlvbihiKXtyZXR1cm4gYS5yZXR1cm5fKGIpfTt0aGlzW1N5bWJvbC5pdGVyYXRvcl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc319OyRqc2NvbXAuZ2VuZXJhdG9yLmNyZWF0ZUdlbmVyYXRvcj1mdW5jdGlvbihhLGIpe2I9bmV3ICRqc2NvbXAuZ2VuZXJhdG9yLkdlbmVyYXRvcl8obmV3ICRqc2NvbXAuZ2VuZXJhdG9yLkVuZ2luZV8oYikpOyRqc2NvbXAuc2V0UHJvdG90eXBlT2YmJmEucHJvdG90eXBlJiYkanNjb21wLnNldFByb3RvdHlwZU9mKGIsYS5wcm90b3R5cGUpO3JldHVybiBifTsKJGpzY29tcC5hc3luY0V4ZWN1dGVQcm9taXNlR2VuZXJhdG9yPWZ1bmN0aW9uKGEpe2Z1bmN0aW9uIGIoZCl7cmV0dXJuIGEubmV4dChkKX1mdW5jdGlvbiBjKGQpe3JldHVybiBhLnRocm93KGQpfXJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihkLGUpe2Z1bmN0aW9uIGYoZyl7Zy5kb25lP2QoZy52YWx1ZSk6UHJvbWlzZS5yZXNvbHZlKGcudmFsdWUpLnRoZW4oYixjKS50aGVuKGYsZSl9ZihhLm5leHQoKSl9KX07JGpzY29tcC5hc3luY0V4ZWN1dGVQcm9taXNlR2VuZXJhdG9yRnVuY3Rpb249ZnVuY3Rpb24oYSl7cmV0dXJuICRqc2NvbXAuYXN5bmNFeGVjdXRlUHJvbWlzZUdlbmVyYXRvcihhKCkpfTskanNjb21wLmFzeW5jRXhlY3V0ZVByb21pc2VHZW5lcmF0b3JQcm9ncmFtPWZ1bmN0aW9uKGEpe3JldHVybiAkanNjb21wLmFzeW5jRXhlY3V0ZVByb21pc2VHZW5lcmF0b3IobmV3ICRqc2NvbXAuZ2VuZXJhdG9yLkdlbmVyYXRvcl8obmV3ICRqc2NvbXAuZ2VuZXJhdG9yLkVuZ2luZV8oYSkpKX07CmNsaWVudFN0b3JhZ2U9e3NldDpmdW5jdGlvbihhLGIsYyxkKXtjPXZvaWQgMD09PWM\/MTpjO2Q9dm9pZCAwPT09ZD8ibG9jYWwiOmQ7Y29uc3QgZT0ic2Vzc2lvbiI9PT1kP3dpbmRvdy5zZXNzaW9uU3RvcmFnZTp3aW5kb3cubG9jYWxTdG9yYWdlO3RyeXtiPXt2YWx1ZTpifSwibG9jYWwiPT09ZCYmKGMqPTg2NEU1LGIuZXhwaXJ5PShuZXcgRGF0ZSkuZ2V0VGltZSgpK2MpLGUuc2V0SXRlbShhLEpTT04uc3RyaW5naWZ5KGIpKX1jYXRjaChmKXtjb25zb2xlLmVycm9yKGBFcnJvciBzYXZpbmcgdG8gJHtkfSBzdG9yYWdlYCxmKX19LGdldDpmdW5jdGlvbihhLGIpe2I9dm9pZCAwPT09Yj9udWxsOmI7Y29uc3QgYz0oZCxlKT0+e3RyeXtjb25zdCBmPWQuZ2V0SXRlbShhKTtpZighZilyZXR1cm4gbnVsbDtjb25zdCBnPUpTT04ucGFyc2UoZik7aWYoZSYmZy5leHBpcnkmJihuZXcgRGF0ZSkuZ2V0VGltZSgpPmcuZXhwaXJ5KXJldHVybiBkLnJlbW92ZUl0ZW0oYSksbnVsbDtsZXQgaDsKcmV0dXJuIG51bGwhPShoPWcudmFsdWUpP2g6Z31jYXRjaChmKXtyZXR1cm4gbnVsbH19O3JldHVybiJsb2NhbCI9PT1iP2Mod2luZG93LmxvY2FsU3RvcmFnZSwhMCk6InNlc3Npb24iPT09Yj9jKHdpbmRvdy5zZXNzaW9uU3RvcmFnZSwhMSk6Yyh3aW5kb3cubG9jYWxTdG9yYWdlLCEwKXx8Yyh3aW5kb3cuc2Vzc2lvblN0b3JhZ2UsITEpfSxyZW1vdmU6ZnVuY3Rpb24oYSxiKXtiPXZvaWQgMD09PWI\/bnVsbDpiOyJsb2NhbCIhPT1iJiZudWxsIT09Ynx8d2luZG93LmxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKGEpOyJzZXNzaW9uIiE9PWImJm51bGwhPT1ifHx3aW5kb3cuc2Vzc2lvblN0b3JhZ2UucmVtb3ZlSXRlbShhKX19OwpjcmVhdGVEYXRhU3RvcmU9YT0+e2E9YXx8e307aW5pdD1jPT5PYmplY3QuYXNzaWduKHt9LGMpO2NvbnN0IGI9aW5pdChhKTtyZXR1cm57c2V0OmZ1bmN0aW9uKGMsZCl7YltjXT1PYmplY3QuYXNzaWduKHt9LGJbY10sZCk7cmV0dXJuIGJbY119LGdldDpmdW5jdGlvbihjLGQpe2Q9dm9pZCAwPT09ZD9udWxsOmQ7Yz1jLnNwbGl0KCIuIik7bGV0IGU9Yjtmb3IoY29uc3QgZiBvZiBjKXtpZih2b2lkIDA9PT1lW2ZdKXJldHVybiBkO2U9ZVtmXX1yZXR1cm4gdm9pZCAwIT09ZT9lOmR9LGZldGNoOmZ1bmN0aW9uKGMpe3JldHVybiAkanNjb21wLmFzeW5jRXhlY3V0ZVByb21pc2VHZW5lcmF0b3JGdW5jdGlvbihmdW5jdGlvbiooKXt0cnl7Y29uc3QgZD15aWVsZCBmZXRjaChgaHR0cHM6Ly8ke2IuZGVhbGVySW5mby5kb21haW59L2FqYXhDb250cm9sbGVyLyR7Y31gKTtpZighZC5vayl0aHJvdyBFcnJvcigiTmV0d29yayByZXNwb25zZSB3YXMgbm90IG9rIik7Y29uc3QgZT15aWVsZCBkLmpzb24oKTsKYltjXT1lO3JldHVybiBiW2NdfWNhdGNoKGQpe3Rocm93IEVycm9yKGBGYWlsZWQgdG8gZmV0Y2ggZnJvbSBzZXJ2ZXI6ICR7ZC5tZXNzYWdlfWApO319KX0sZGVsZXRlOmZ1bmN0aW9uKGMpe2lmKCFiW2NdKXRocm93IEVycm9yKCJJRCBub3QgZm91bmQiKTtkZWxldGUgYltjXTtyZXR1cm4hMH0sZ2V0QWxsOmZ1bmN0aW9uKCl7cmV0dXJuIE9iamVjdC5hc3NpZ24oe30sYil9fX07Ci8qKiAvanMvZW1haWxIYW5kbGVyLmpzICoqLwp2YXIgX19fZDJjX2VtYWlsSGFuZGxlcmpzX2Nfb249IjIwMjYtMDYtMTEgMTM6MzA6MDQiOyd1c2Ugc3RyaWN0Jzt2YXIgJGpzY29tcD0kanNjb21wfHx7fTskanNjb21wLnNjb3BlPXt9OyRqc2NvbXAuQVNTVU1FX0VTNT0hMTskanNjb21wLkFTU1VNRV9OT19OQVRJVkVfTUFQPSExOyRqc2NvbXAuQVNTVU1FX05PX05BVElWRV9TRVQ9ITE7JGpzY29tcC5TSU1QTEVfRlJPVU5EX1BPTFlGSUxMPSExOyRqc2NvbXAuSVNPTEFURV9QT0xZRklMTFM9ITE7JGpzY29tcC5GT1JDRV9QT0xZRklMTF9QUk9NSVNFPSExOyRqc2NvbXAuRk9SQ0VfUE9MWUZJTExfUFJPTUlTRV9XSEVOX05PX1VOSEFORExFRF9SRUpFQ1RJT049ITE7JGpzY29tcC5kZWZpbmVQcm9wZXJ0eT0kanNjb21wLkFTU1VNRV9FUzV8fCJmdW5jdGlvbiI9PXR5cGVvZiBPYmplY3QuZGVmaW5lUHJvcGVydGllcz9PYmplY3QuZGVmaW5lUHJvcGVydHk6ZnVuY3Rpb24oZSxnLG4pe2lmKGU9PUFycmF5LnByb3RvdHlwZXx8ZT09T2JqZWN0LnByb3RvdHlwZSlyZXR1cm4gZTtlW2ddPW4udmFsdWU7cmV0dXJuIGV9OwokanNjb21wLmdldEdsb2JhbD1mdW5jdGlvbihlKXtlPVsib2JqZWN0Ij09dHlwZW9mIGdsb2JhbFRoaXMmJmdsb2JhbFRoaXMsZSwib2JqZWN0Ij09dHlwZW9mIHdpbmRvdyYmd2luZG93LCJvYmplY3QiPT10eXBlb2Ygc2VsZiYmc2VsZiwib2JqZWN0Ij09dHlwZW9mIGdsb2JhbCYmZ2xvYmFsXTtmb3IodmFyIGc9MDtnPGUubGVuZ3RoOysrZyl7dmFyIG49ZVtnXTtpZihuJiZuLk1hdGg9PU1hdGgpcmV0dXJuIG59dGhyb3cgRXJyb3IoIkNhbm5vdCBmaW5kIGdsb2JhbCBvYmplY3QiKTt9OyRqc2NvbXAuZ2xvYmFsPSRqc2NvbXAuZ2V0R2xvYmFsKHRoaXMpOyRqc2NvbXAuSVNfU1lNQk9MX05BVElWRT0iZnVuY3Rpb24iPT09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PT10eXBlb2YgU3ltYm9sKCJ4Iik7JGpzY29tcC5UUlVTVF9FUzZfUE9MWUZJTExTPSEkanNjb21wLklTT0xBVEVfUE9MWUZJTExTfHwkanNjb21wLklTX1NZTUJPTF9OQVRJVkU7JGpzY29tcC5wb2x5ZmlsbHM9e307CiRqc2NvbXAucHJvcGVydHlUb1BvbHlmaWxsU3ltYm9sPXt9OyRqc2NvbXAuUE9MWUZJTExfUFJFRklYPSIkanNjcCQiO3ZhciAkanNjb21wJGxvb2t1cFBvbHlmaWxsZWRWYWx1ZT1mdW5jdGlvbihlLGcpe3ZhciBuPSRqc2NvbXAucHJvcGVydHlUb1BvbHlmaWxsU3ltYm9sW2ddO2lmKG51bGw9PW4pcmV0dXJuIGVbZ107bj1lW25dO3JldHVybiB2b2lkIDAhPT1uP246ZVtnXX07JGpzY29tcC5wb2x5ZmlsbD1mdW5jdGlvbihlLGcsbixhKXtnJiYoJGpzY29tcC5JU09MQVRFX1BPTFlGSUxMUz8kanNjb21wLnBvbHlmaWxsSXNvbGF0ZWQoZSxnLG4sYSk6JGpzY29tcC5wb2x5ZmlsbFVuaXNvbGF0ZWQoZSxnLG4sYSkpfTsKJGpzY29tcC5wb2x5ZmlsbFVuaXNvbGF0ZWQ9ZnVuY3Rpb24oZSxnLG4sYSl7bj0kanNjb21wLmdsb2JhbDtlPWUuc3BsaXQoIi4iKTtmb3IoYT0wO2E8ZS5sZW5ndGgtMTthKyspe3ZhciBiPWVbYV07aWYoIShiIGluIG4pKXJldHVybjtuPW5bYl19ZT1lW2UubGVuZ3RoLTFdO2E9bltlXTtnPWcoYSk7ZyE9YSYmbnVsbCE9ZyYmJGpzY29tcC5kZWZpbmVQcm9wZXJ0eShuLGUse2NvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpnfSl9OwokanNjb21wLnBvbHlmaWxsSXNvbGF0ZWQ9ZnVuY3Rpb24oZSxnLG4sYSl7dmFyIGI9ZS5zcGxpdCgiLiIpO2U9MT09PWIubGVuZ3RoO2E9YlswXTthPSFlJiZhIGluICRqc2NvbXAucG9seWZpbGxzPyRqc2NvbXAucG9seWZpbGxzOiRqc2NvbXAuZ2xvYmFsO2Zvcih2YXIgYz0wO2M8Yi5sZW5ndGgtMTtjKyspe3ZhciBkPWJbY107aWYoIShkIGluIGEpKXJldHVybjthPWFbZF19Yj1iW2IubGVuZ3RoLTFdO249JGpzY29tcC5JU19TWU1CT0xfTkFUSVZFJiYiZXM2Ij09PW4\/YVtiXTpudWxsO2c9ZyhuKTtudWxsIT1nJiYoZT8kanNjb21wLmRlZmluZVByb3BlcnR5KCRqc2NvbXAucG9seWZpbGxzLGIse2NvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpnfSk6ZyE9PW4mJih2b2lkIDA9PT0kanNjb21wLnByb3BlcnR5VG9Qb2x5ZmlsbFN5bWJvbFtiXSYmKG49MUU5Kk1hdGgucmFuZG9tKCk+Pj4wLCRqc2NvbXAucHJvcGVydHlUb1BvbHlmaWxsU3ltYm9sW2JdPSRqc2NvbXAuSVNfU1lNQk9MX05BVElWRT8KJGpzY29tcC5nbG9iYWwuU3ltYm9sKGIpOiRqc2NvbXAuUE9MWUZJTExfUFJFRklYK24rIiQiK2IpLCRqc2NvbXAuZGVmaW5lUHJvcGVydHkoYSwkanNjb21wLnByb3BlcnR5VG9Qb2x5ZmlsbFN5bWJvbFtiXSx7Y29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmd9KSkpfTskanNjb21wLnVuZGVyc2NvcmVQcm90b0NhbkJlU2V0PWZ1bmN0aW9uKCl7dmFyIGU9e2E6ITB9LGc9e307dHJ5e3JldHVybiBnLl9fcHJvdG9fXz1lLGcuYX1jYXRjaChuKXt9cmV0dXJuITF9OwokanNjb21wLnNldFByb3RvdHlwZU9mPSRqc2NvbXAuVFJVU1RfRVM2X1BPTFlGSUxMUyYmImZ1bmN0aW9uIj09dHlwZW9mIE9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2Y6JGpzY29tcC51bmRlcnNjb3JlUHJvdG9DYW5CZVNldCgpP2Z1bmN0aW9uKGUsZyl7ZS5fX3Byb3RvX189ZztpZihlLl9fcHJvdG9fXyE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcihlKyIgaXMgbm90IGV4dGVuc2libGUiKTtyZXR1cm4gZX06bnVsbDskanNjb21wLmFycmF5SXRlcmF0b3JJbXBsPWZ1bmN0aW9uKGUpe3ZhciBnPTA7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGc8ZS5sZW5ndGg\/e2RvbmU6ITEsdmFsdWU6ZVtnKytdfTp7ZG9uZTohMH19fTskanNjb21wLmFycmF5SXRlcmF0b3I9ZnVuY3Rpb24oZSl7cmV0dXJue25leHQ6JGpzY29tcC5hcnJheUl0ZXJhdG9ySW1wbChlKX19OwokanNjb21wLm1ha2VJdGVyYXRvcj1mdW5jdGlvbihlKXt2YXIgZz0idW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmU3ltYm9sLml0ZXJhdG9yJiZlW1N5bWJvbC5pdGVyYXRvcl07cmV0dXJuIGc\/Zy5jYWxsKGUpOiRqc2NvbXAuYXJyYXlJdGVyYXRvcihlKX07JGpzY29tcC5nZW5lcmF0b3I9e307JGpzY29tcC5nZW5lcmF0b3IuZW5zdXJlSXRlcmF0b3JSZXN1bHRJc09iamVjdF89ZnVuY3Rpb24oZSl7aWYoIShlIGluc3RhbmNlb2YgT2JqZWN0KSl0aHJvdyBuZXcgVHlwZUVycm9yKCJJdGVyYXRvciByZXN1bHQgIitlKyIgaXMgbm90IGFuIG9iamVjdCIpO307CiRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQ9ZnVuY3Rpb24oKXt0aGlzLmlzUnVubmluZ189ITE7dGhpcy55aWVsZEFsbEl0ZXJhdG9yXz1udWxsO3RoaXMueWllbGRSZXN1bHQ9dm9pZCAwO3RoaXMubmV4dEFkZHJlc3M9MTt0aGlzLmZpbmFsbHlBZGRyZXNzXz10aGlzLmNhdGNoQWRkcmVzc189MDt0aGlzLmZpbmFsbHlDb250ZXh0c189dGhpcy5hYnJ1cHRDb21wbGV0aW9uXz1udWxsfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5zdGFydF89ZnVuY3Rpb24oKXtpZih0aGlzLmlzUnVubmluZ18pdGhyb3cgbmV3IFR5cGVFcnJvcigiR2VuZXJhdG9yIGlzIGFscmVhZHkgcnVubmluZyIpO3RoaXMuaXNSdW5uaW5nXz0hMH07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuc3RvcF89ZnVuY3Rpb24oKXt0aGlzLmlzUnVubmluZ189ITF9OwokanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5qdW1wVG9FcnJvckhhbmRsZXJfPWZ1bmN0aW9uKCl7dGhpcy5uZXh0QWRkcmVzcz10aGlzLmNhdGNoQWRkcmVzc198fHRoaXMuZmluYWxseUFkZHJlc3NffTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5uZXh0Xz1mdW5jdGlvbihlKXt0aGlzLnlpZWxkUmVzdWx0PWV9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLnRocm93Xz1mdW5jdGlvbihlKXt0aGlzLmFicnVwdENvbXBsZXRpb25fPXtleGNlcHRpb246ZSxpc0V4Y2VwdGlvbjohMH07dGhpcy5qdW1wVG9FcnJvckhhbmRsZXJfKCl9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLnJldHVybj1mdW5jdGlvbihlKXt0aGlzLmFicnVwdENvbXBsZXRpb25fPXtyZXR1cm46ZX07dGhpcy5uZXh0QWRkcmVzcz10aGlzLmZpbmFsbHlBZGRyZXNzX307CiRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmp1bXBUaHJvdWdoRmluYWxseUJsb2Nrcz1mdW5jdGlvbihlKXt0aGlzLmFicnVwdENvbXBsZXRpb25fPXtqdW1wVG86ZX07dGhpcy5uZXh0QWRkcmVzcz10aGlzLmZpbmFsbHlBZGRyZXNzX307JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUueWllbGQ9ZnVuY3Rpb24oZSxnKXt0aGlzLm5leHRBZGRyZXNzPWc7cmV0dXJue3ZhbHVlOmV9fTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS55aWVsZEFsbD1mdW5jdGlvbihlLGcpe2U9JGpzY29tcC5tYWtlSXRlcmF0b3IoZSk7dmFyIG49ZS5uZXh0KCk7JGpzY29tcC5nZW5lcmF0b3IuZW5zdXJlSXRlcmF0b3JSZXN1bHRJc09iamVjdF8obik7aWYobi5kb25lKXRoaXMueWllbGRSZXN1bHQ9bi52YWx1ZSx0aGlzLm5leHRBZGRyZXNzPWc7ZWxzZSByZXR1cm4gdGhpcy55aWVsZEFsbEl0ZXJhdG9yXz1lLHRoaXMueWllbGQobi52YWx1ZSxnKX07CiRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmp1bXBUbz1mdW5jdGlvbihlKXt0aGlzLm5leHRBZGRyZXNzPWV9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmp1bXBUb0VuZD1mdW5jdGlvbigpe3RoaXMubmV4dEFkZHJlc3M9MH07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuc2V0Q2F0Y2hGaW5hbGx5QmxvY2tzPWZ1bmN0aW9uKGUsZyl7dGhpcy5jYXRjaEFkZHJlc3NfPWU7dm9pZCAwIT1nJiYodGhpcy5maW5hbGx5QWRkcmVzc189Zyl9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLnNldEZpbmFsbHlCbG9jaz1mdW5jdGlvbihlKXt0aGlzLmNhdGNoQWRkcmVzc189MDt0aGlzLmZpbmFsbHlBZGRyZXNzXz1lfHwwfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5sZWF2ZVRyeUJsb2NrPWZ1bmN0aW9uKGUsZyl7dGhpcy5uZXh0QWRkcmVzcz1lO3RoaXMuY2F0Y2hBZGRyZXNzXz1nfHwwfTsKJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuZW50ZXJDYXRjaEJsb2NrPWZ1bmN0aW9uKGUpe3RoaXMuY2F0Y2hBZGRyZXNzXz1lfHwwO2U9dGhpcy5hYnJ1cHRDb21wbGV0aW9uXy5leGNlcHRpb247dGhpcy5hYnJ1cHRDb21wbGV0aW9uXz1udWxsO3JldHVybiBlfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5lbnRlckZpbmFsbHlCbG9jaz1mdW5jdGlvbihlLGcsbil7bj90aGlzLmZpbmFsbHlDb250ZXh0c19bbl09dGhpcy5hYnJ1cHRDb21wbGV0aW9uXzp0aGlzLmZpbmFsbHlDb250ZXh0c189W3RoaXMuYWJydXB0Q29tcGxldGlvbl9dO3RoaXMuY2F0Y2hBZGRyZXNzXz1lfHwwO3RoaXMuZmluYWxseUFkZHJlc3NfPWd8fDB9OwokanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5sZWF2ZUZpbmFsbHlCbG9jaz1mdW5jdGlvbihlLGcpe2c9dGhpcy5maW5hbGx5Q29udGV4dHNfLnNwbGljZShnfHwwKVswXTtpZihnPXRoaXMuYWJydXB0Q29tcGxldGlvbl89dGhpcy5hYnJ1cHRDb21wbGV0aW9uX3x8Zyl7aWYoZy5pc0V4Y2VwdGlvbilyZXR1cm4gdGhpcy5qdW1wVG9FcnJvckhhbmRsZXJfKCk7dm9pZCAwIT1nLmp1bXBUbyYmdGhpcy5maW5hbGx5QWRkcmVzc188Zy5qdW1wVG8\/KHRoaXMubmV4dEFkZHJlc3M9Zy5qdW1wVG8sdGhpcy5hYnJ1cHRDb21wbGV0aW9uXz1udWxsKTp0aGlzLm5leHRBZGRyZXNzPXRoaXMuZmluYWxseUFkZHJlc3NffWVsc2UgdGhpcy5uZXh0QWRkcmVzcz1lfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5mb3JJbj1mdW5jdGlvbihlKXtyZXR1cm4gbmV3ICRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQuUHJvcGVydHlJdGVyYXRvcihlKX07CiRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQuUHJvcGVydHlJdGVyYXRvcj1mdW5jdGlvbihlKXt0aGlzLm9iamVjdF89ZTt0aGlzLnByb3BlcnRpZXNfPVtdO2Zvcih2YXIgZyBpbiBlKXRoaXMucHJvcGVydGllc18ucHVzaChnKTt0aGlzLnByb3BlcnRpZXNfLnJldmVyc2UoKX07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5Qcm9wZXJ0eUl0ZXJhdG9yLnByb3RvdHlwZS5nZXROZXh0PWZ1bmN0aW9uKCl7Zm9yKDswPHRoaXMucHJvcGVydGllc18ubGVuZ3RoOyl7dmFyIGU9dGhpcy5wcm9wZXJ0aWVzXy5wb3AoKTtpZihlIGluIHRoaXMub2JqZWN0XylyZXR1cm4gZX1yZXR1cm4gbnVsbH07JGpzY29tcC5nZW5lcmF0b3IuRW5naW5lXz1mdW5jdGlvbihlKXt0aGlzLmNvbnRleHRfPW5ldyAkanNjb21wLmdlbmVyYXRvci5Db250ZXh0O3RoaXMucHJvZ3JhbV89ZX07CiRqc2NvbXAuZ2VuZXJhdG9yLkVuZ2luZV8ucHJvdG90eXBlLm5leHRfPWZ1bmN0aW9uKGUpe3RoaXMuY29udGV4dF8uc3RhcnRfKCk7aWYodGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yXylyZXR1cm4gdGhpcy55aWVsZEFsbFN0ZXBfKHRoaXMuY29udGV4dF8ueWllbGRBbGxJdGVyYXRvcl8ubmV4dCxlLHRoaXMuY29udGV4dF8ubmV4dF8pO3RoaXMuY29udGV4dF8ubmV4dF8oZSk7cmV0dXJuIHRoaXMubmV4dFN0ZXBfKCl9OwokanNjb21wLmdlbmVyYXRvci5FbmdpbmVfLnByb3RvdHlwZS5yZXR1cm5fPWZ1bmN0aW9uKGUpe3RoaXMuY29udGV4dF8uc3RhcnRfKCk7dmFyIGc9dGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yXztpZihnKXJldHVybiB0aGlzLnlpZWxkQWxsU3RlcF8oInJldHVybiJpbiBnP2dbInJldHVybiJdOmZ1bmN0aW9uKG4pe3JldHVybnt2YWx1ZTpuLGRvbmU6ITB9fSxlLHRoaXMuY29udGV4dF8ucmV0dXJuKTt0aGlzLmNvbnRleHRfLnJldHVybihlKTtyZXR1cm4gdGhpcy5uZXh0U3RlcF8oKX07CiRqc2NvbXAuZ2VuZXJhdG9yLkVuZ2luZV8ucHJvdG90eXBlLnRocm93Xz1mdW5jdGlvbihlKXt0aGlzLmNvbnRleHRfLnN0YXJ0XygpO2lmKHRoaXMuY29udGV4dF8ueWllbGRBbGxJdGVyYXRvcl8pcmV0dXJuIHRoaXMueWllbGRBbGxTdGVwXyh0aGlzLmNvbnRleHRfLnlpZWxkQWxsSXRlcmF0b3JfWyJ0aHJvdyJdLGUsdGhpcy5jb250ZXh0Xy5uZXh0Xyk7dGhpcy5jb250ZXh0Xy50aHJvd18oZSk7cmV0dXJuIHRoaXMubmV4dFN0ZXBfKCl9OwokanNjb21wLmdlbmVyYXRvci5FbmdpbmVfLnByb3RvdHlwZS55aWVsZEFsbFN0ZXBfPWZ1bmN0aW9uKGUsZyxuKXt0cnl7dmFyIGE9ZS5jYWxsKHRoaXMuY29udGV4dF8ueWllbGRBbGxJdGVyYXRvcl8sZyk7JGpzY29tcC5nZW5lcmF0b3IuZW5zdXJlSXRlcmF0b3JSZXN1bHRJc09iamVjdF8oYSk7aWYoIWEuZG9uZSlyZXR1cm4gdGhpcy5jb250ZXh0Xy5zdG9wXygpLGE7dmFyIGI9YS52YWx1ZX1jYXRjaChjKXtyZXR1cm4gdGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yXz1udWxsLHRoaXMuY29udGV4dF8udGhyb3dfKGMpLHRoaXMubmV4dFN0ZXBfKCl9dGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yXz1udWxsO24uY2FsbCh0aGlzLmNvbnRleHRfLGIpO3JldHVybiB0aGlzLm5leHRTdGVwXygpfTsKJGpzY29tcC5nZW5lcmF0b3IuRW5naW5lXy5wcm90b3R5cGUubmV4dFN0ZXBfPWZ1bmN0aW9uKCl7Zm9yKDt0aGlzLmNvbnRleHRfLm5leHRBZGRyZXNzOyl0cnl7dmFyIGU9dGhpcy5wcm9ncmFtXyh0aGlzLmNvbnRleHRfKTtpZihlKXJldHVybiB0aGlzLmNvbnRleHRfLnN0b3BfKCkse3ZhbHVlOmUudmFsdWUsZG9uZTohMX19Y2F0Y2goZyl7dGhpcy5jb250ZXh0Xy55aWVsZFJlc3VsdD12b2lkIDAsdGhpcy5jb250ZXh0Xy50aHJvd18oZyl9dGhpcy5jb250ZXh0Xy5zdG9wXygpO2lmKHRoaXMuY29udGV4dF8uYWJydXB0Q29tcGxldGlvbl8pe2U9dGhpcy5jb250ZXh0Xy5hYnJ1cHRDb21wbGV0aW9uXzt0aGlzLmNvbnRleHRfLmFicnVwdENvbXBsZXRpb25fPW51bGw7aWYoZS5pc0V4Y2VwdGlvbil0aHJvdyBlLmV4Y2VwdGlvbjtyZXR1cm57dmFsdWU6ZS5yZXR1cm4sZG9uZTohMH19cmV0dXJue3ZhbHVlOnZvaWQgMCxkb25lOiEwfX07CiRqc2NvbXAuZ2VuZXJhdG9yLkdlbmVyYXRvcl89ZnVuY3Rpb24oZSl7dGhpcy5uZXh0PWZ1bmN0aW9uKGcpe3JldHVybiBlLm5leHRfKGcpfTt0aGlzLnRocm93PWZ1bmN0aW9uKGcpe3JldHVybiBlLnRocm93XyhnKX07dGhpcy5yZXR1cm49ZnVuY3Rpb24oZyl7cmV0dXJuIGUucmV0dXJuXyhnKX07dGhpc1tTeW1ib2wuaXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9fTskanNjb21wLmdlbmVyYXRvci5jcmVhdGVHZW5lcmF0b3I9ZnVuY3Rpb24oZSxnKXtnPW5ldyAkanNjb21wLmdlbmVyYXRvci5HZW5lcmF0b3JfKG5ldyAkanNjb21wLmdlbmVyYXRvci5FbmdpbmVfKGcpKTskanNjb21wLnNldFByb3RvdHlwZU9mJiZlLnByb3RvdHlwZSYmJGpzY29tcC5zZXRQcm90b3R5cGVPZihnLGUucHJvdG90eXBlKTtyZXR1cm4gZ307CiRqc2NvbXAuYXN5bmNFeGVjdXRlUHJvbWlzZUdlbmVyYXRvcj1mdW5jdGlvbihlKXtmdW5jdGlvbiBnKGEpe3JldHVybiBlLm5leHQoYSl9ZnVuY3Rpb24gbihhKXtyZXR1cm4gZS50aHJvdyhhKX1yZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24oYSxiKXtmdW5jdGlvbiBjKGQpe2QuZG9uZT9hKGQudmFsdWUpOlByb21pc2UucmVzb2x2ZShkLnZhbHVlKS50aGVuKGcsbikudGhlbihjLGIpfWMoZS5uZXh0KCkpfSl9OyRqc2NvbXAuYXN5bmNFeGVjdXRlUHJvbWlzZUdlbmVyYXRvckZ1bmN0aW9uPWZ1bmN0aW9uKGUpe3JldHVybiAkanNjb21wLmFzeW5jRXhlY3V0ZVByb21pc2VHZW5lcmF0b3IoZSgpKX07JGpzY29tcC5hc3luY0V4ZWN1dGVQcm9taXNlR2VuZXJhdG9yUHJvZ3JhbT1mdW5jdGlvbihlKXtyZXR1cm4gJGpzY29tcC5hc3luY0V4ZWN1dGVQcm9taXNlR2VuZXJhdG9yKG5ldyAkanNjb21wLmdlbmVyYXRvci5HZW5lcmF0b3JfKG5ldyAkanNjb21wLmdlbmVyYXRvci5FbmdpbmVfKGUpKSl9Owp2YXIgZW1haWxIYW5kbGVyPWZ1bmN0aW9uKCl7dmFyIGU9MTExMixnPWZ1bmN0aW9uKGIpe3RyeXtyZXR1cm4gd2luZG93LnRvcC5sb2NhdGlvbltiXX1jYXRjaChjKXtyZXR1cm4gd2luZG93LmxvY2F0aW9uW2JdfX0sbj1mdW5jdGlvbigpe3RoaXMuYWN0aW9uPWZ1bmN0aW9uKCl7fTt0aGlzLm5leHQ9bnVsbDt0aGlzLl9uZXh0Q2FsbGVkPSExfTtuLnByb3RvdHlwZT17ZXhldXRlOmZ1bmN0aW9uKCl7ImZ1bmN0aW9uIj09PXR5cGVvZiB0aGlzLmFjdGlvbiYmdGhpcy5hY3Rpb24uY2FsbCh0aGlzKX0sZ290b05leHQ6ZnVuY3Rpb24oKXt0aGlzLl9oYXNOZXh0KCkmJnRoaXMubmV4dC5leGV1dGUoKTt0aGlzLl9uZXh0Q2FsbGVkPSEwO3JldHVybiB0aGlzfSxzZXROZXh0OmZ1bmN0aW9uKGIpe3RoaXMubmV4dD1iO3JldHVybiB0aGlzfSxzZXRBY3Rpb246ZnVuY3Rpb24oYil7dGhpcy5hY3Rpb249YjtyZXR1cm4gdGhpc30sX2hhc05leHQ6ZnVuY3Rpb24oKXtyZXR1cm4gbnVsbCE9PQp0aGlzLm5leHQmJiF0aGlzLl9uZXh0Q2FsbGVkfX07dmFyIGE9e3N1YmplY3Q6IiIsYm9keToiIixzZW5kVG86IiIsc2VuZFRvQURGRm9ybWF0OiIiLHNlbGVjdGVkU2VuZFRvOiIiLHNlbGVjdGVkU2VuZFRvQURGRm9ybWF0OiIiLHNlbmRGcm9tOiIiLHVzZXJFbWFpbDoiIix0cmFkZWluOiIiLHBvcHVwZGl2OiIiLHVzZXJGaXJzdE5hbWU6IiIsdXNlckxhc3ROYW1lOiIiLHVzZXJQaG9uZToiIixwaG9uZU1hbmRhdG9yeTowLHBob25lVmFsaWRhdGlvbkF0dGVtcHRzOjEsdXNlclBvc3RhbDoiIix1c2VyQWRkcmVzczoiIixiaXJ0aGRhdGU6IiIsdXNlckF0dGFjaG1lbnRQYXRoOiIiLG1haWxJRDoiZ2VuZXJpY01haWwiLGxlYWRJbnZva2VyOiJnZW5lcmljIixsZWFkSW52b2tlclNJRDoiIixpc0NUQTohMSxidXR0b25UZXh0OiIiLHJlc2V0Q2FsbGJhY2tzOmZ1bmN0aW9uKCl7JC5leHRlbmQoYSx7Y2FsbGJhY2s6bnVsbCxvbkR1cGxpY2F0ZVNlbmQ6ITEsb25BZnRlckNvbnNlbnQ6ITEsCm9uQmVmb3JlU2hvd0NvbnNlbnQ6ITF9KX0sbWFrZToiIixtb2RlbDoiIix0cmltOiIiLHZpbjoiIixwcmljZTowLHllYXI6MCx2ZWhpY2xlVHlwZToiIixzdG9ja051bWJlcjoiIixwdXJjaGFzZV9pbnRlbnQ6IiIscHVyY2hhc2VfaW50ZW50X3NlY3Rpb246IiIsYWxsb3dfc2hhcmVfcGVyc29uYWxfZGF0YToiIixwcmVmZXJyZWRfY29udGFjdDoiIixjYXJpZDowLGNvbmRpdGlvbjoiVXNlZCIsbGFuZ3VhZ2U6IiIsaXNtb2JpbGVzaXRlOiJOTyIsaXNBbXA6Ik5PIixyZWZlcmVyOiIiLHBvcHVwT2ZmZXJUeXBlOiIiLHBhcnRpYWw6ITEsZnJvbUZhY2Vib29rOiExLHNraXBTZW5kaW5nOiExLGZyb21PbkxvYWQ6ITEscG9zdFN1Ym1pdENhbGxiYWNrOiIiLHJlc3VtZUFjdGl2aXR5OiEwLHN1Ym1pdERhdGE6IiIsc3VibWl0VHlwZToibm9ybWFsIixsYXN0Q2hlY2tzdW06IiIsY29uc2VudERlYWxlcjohMSxjb25zZW50T0VNOiExLGNvbnNlbnRUeXBlOiJJbXBsaWNpdCIsY29uc2VudEV4cGlyYXRpb246IiIsCmNvbnNlbnREYXRlOiIiLGNvbnNlbnRGcmVxdWVuY3k6LTEsY29uc2VudERldGFpbHNGUjoiIixjb25zZW50RGV0YWlsc0VOOiIiLGRldGFpbHNEZWZhdWx0czoiIixmcm9tQUE6MCxvd25lcklEOjAsZGVwYXJ0bWVudDoiIixza2lwR2V0RGVwOiExLGRlcGFydG1lbnRCeVN0b2NrOiExLGFza1B1cmNoYXNlSW50ZW50OiExLGxlYWRUaXRsZVVJVGV4dDoiIixsZWFkVGl0bGVUZXh0OiIiLGdlb2xvY19zdGF0dXM6IiIsZ2VvbG9jX2xhdDoiIixnZW9sb2NfbG9uZzoiIixnZW9sb2NfYWNjdXJhY3k6LTEsZ2VvbG9jX3RyYWNrX3N0cjoiIixnZW9sb2NfZW1haWxfc3RyOiIiLHRyYW5zcG9ydE9wdGlvbjoiIixjYXIyX21ha2U6IiIsY2FyMl9tb2RlbDoiIixjYXIyX3RyaW06IiIsY2FyMl95ZWFyOiIiLGNhcjJfY29sb3I6IiIsY2FyMl9vZG9tZXRlcjoiIixjYXIyX3ZpbjoiIixjYXIyX3RyYW5zbWlzc29uOiIiLGNhcjJfZHJpdmV0cmFpbjoiIixjYXIyX2Z1ZWx0eXBlOiIiLGNvbW1lbnRzOiIiLApncmVjYXB0Y2hhUmVzcG9uc2VUb2tlbjoiIixpZ25vcmVDYXB0Y2hhOiExLGNvbnRhY3RJRDowLGNvbnRhY3RBZGRyZXNzOiIiLGNvbnRhY3RDaXR5OiIiLGNvbnRhY3RQcm92aW5jZToiIixjb250YWN0WmlwOiIiLGNvbnRhY3ROQVM6IiIsY29udGFjdEJpcnRoOiIiLGRlYWxlck5hbWU6IiIsZ2V0TmV3U2VxdWVuY2U6ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IG59LGNyZWF0ZUNoZWNrc3VtOmZ1bmN0aW9uKCl7Zm9yKHZhciBiPSIiLGM9WyJtYWtlIiwibW9kZWwiLCJ5ZWFyIiwibWFpbElEIl0sZD0wO2Q8Yy5sZW5ndGg7ZCsrKXt2YXIgZj1jW2RdLGg9YVtmXSxtPXR5cGVvZiBoO2lmKCJzdHJpbmciPT1tfHwibnVtYmVyIj09bSliKz1mKyI6IitoKyI7In1jPSIwMDAwMDAwMCA3NzA3MzA5NiBFRTBFNjEyQyA5OTA5NTFCQSAwNzZEQzQxOSA3MDZBRjQ4RiBFOTYzQTUzNSA5RTY0OTVBMyAwRURCODgzMiA3OURDQjhBNCBFMEQ1RTkxRSA5N0QyRDk4OCAwOUI2NEMyQiA3RUIxN0NCRCBFN0I4MkQwNyA5MEJGMUQ5MSAxREI3MTA2NCA2QUIwMjBGMiBGM0I5NzE0OCA4NEJFNDFERSAxQURBRDQ3RCA2RERERTRFQiBGNEQ0QjU1MSA4M0QzODVDNyAxMzZDOTg1NiA2NDZCQThDMCBGRDYyRjk3QSA4QTY1QzlFQyAxNDAxNUM0RiA2MzA2NkNEOSBGQTBGM0Q2MyA4RDA4MERGNSAzQjZFMjBDOCA0QzY5MTA1RSBENTYwNDFFNCBBMjY3NzE3MiAzQzAzRTREMSA0QjA0RDQ0NyBEMjBEODVGRCBBNTBBQjU2QiAzNUI1QThGQSA0MkIyOTg2QyBEQkJCQzlENiBBQ0JDRjk0MCAzMkQ4NkNFMyA0NURGNUM3NSBEQ0Q2MERDRiBBQkQxM0Q1OSAyNkQ5MzBBQyA1MURFMDAzQSBDOEQ3NTE4MCBCRkQwNjExNiAyMUI0RjRCNSA1NkIzQzQyMyBDRkJBOTU5OSBCOEJEQTUwRiAyODAyQjg5RSA1RjA1ODgwOCBDNjBDRDlCMiBCMTBCRTkyNCAyRjZGN0M4NyA1ODY4NEMxMSBDMTYxMURBQiBCNjY2MkQzRCA3NkRDNDE5MCAwMURCNzEwNiA5OEQyMjBCQyBFRkQ1MTAyQSA3MUIxODU4OSAwNkI2QjUxRiA5RkJGRTRBNSBFOEI4RDQzMyA3ODA3QzlBMiAwRjAwRjkzNCA5NjA5QTg4RSBFMTBFOTgxOCA3RjZBMERCQiAwODZEM0QyRCA5MTY0NkM5NyBFNjYzNUMwMSA2QjZCNTFGNCAxQzZDNjE2MiA4NTY1MzBEOCBGMjYyMDA0RSA2QzA2OTVFRCAxQjAxQTU3QiA4MjA4RjRDMSBGNTBGQzQ1NyA2NUIwRDlDNiAxMkI3RTk1MCA4QkJFQjhFQSBGQ0I5ODg3QyA2MkREMURERiAxNURBMkQ0OSA4Q0QzN0NGMyBGQkQ0NEM2NSA0REIyNjE1OCAzQUI1NTFDRSBBM0JDMDA3NCBENEJCMzBFMiA0QURGQTU0MSAzREQ4OTVENyBBNEQxQzQ2RCBEM0Q2RjRGQiA0MzY5RTk2QSAzNDZFRDlGQyBBRDY3ODg0NiBEQTYwQjhEMCA0NDA0MkQ3MyAzMzAzMURFNSBBQTBBNEM1RiBERDBEN0NDOSA1MDA1NzEzQyAyNzAyNDFBQSBCRTBCMTAxMCBDOTBDMjA4NiA1NzY4QjUyNSAyMDZGODVCMyBCOTY2RDQwOSBDRTYxRTQ5RiA1RURFRjkwRSAyOUQ5Qzk5OCBCMEQwOTgyMiBDN0Q3QThCNCA1OUIzM0QxNyAyRUI0MEQ4MSBCN0JENUMzQiBDMEJBNkNBRCBFREI4ODMyMCA5QUJGQjNCNiAwM0I2RTIwQyA3NEIxRDI5QSBFQUQ1NDczOSA5REQyNzdBRiAwNERCMjYxNSA3M0RDMTY4MyBFMzYzMEIxMiA5NDY0M0I4NCAwRDZENkEzRSA3QTZBNUFBOCBFNDBFQ0YwQiA5MzA5RkY5RCAwQTAwQUUyNyA3RDA3OUVCMSBGMDBGOTM0NCA4NzA4QTNEMiAxRTAxRjI2OCA2OTA2QzJGRSBGNzYyNTc1RCA4MDY1NjdDQiAxOTZDMzY3MSA2RTZCMDZFNyBGRUQ0MUI3NiA4OUQzMkJFMCAxMERBN0E1QSA2N0RENEFDQyBGOUI5REY2RiA4RUJFRUZGOSAxN0I3QkU0MyA2MEIwOEVENSBENkQ2QTNFOCBBMUQxOTM3RSAzOEQ4QzJDNCA0RkRGRjI1MiBEMUJCNjdGMSBBNkJDNTc2NyAzRkI1MDZERCA0OEIyMzY0QiBEODBEMkJEQSBBRjBBMUI0QyAzNjAzNEFGNiA0MTA0N0E2MCBERjYwRUZDMyBBODY3REY1NSAzMTZFOEVFRiA0NjY5QkU3OSBDQjYxQjM4QyBCQzY2ODMxQSAyNTZGRDJBMCA1MjY4RTIzNiBDQzBDNzc5NSBCQjBCNDcwMyAyMjAyMTZCOSA1NTA1MjYyRiBDNUJBM0JCRSBCMkJEMEIyOCAyQkI0NUE5MiA1Q0IzNkEwNCBDMkQ3RkZBNyBCNUQwQ0YzMSAyQ0Q5OUU4QiA1QkRFQUUxRCA5QjY0QzJCMCBFQzYzRjIyNiA3NTZBQTM5QyAwMjZEOTMwQSA5QzA5MDZBOSBFQjBFMzYzRiA3MjA3Njc4NSAwNTAwNTcxMyA5NUJGNEE4MiBFMkI4N0ExNCA3QkIxMkJBRSAwQ0I2MUIzOCA5MkQyOEU5QiBFNUQ1QkUwRCA3Q0RDRUZCNyAwQkRCREYyMSA4NkQzRDJENCBGMUQ0RTI0MiA2OEREQjNGOCAxRkRBODM2RSA4MUJFMTZDRCBGNkI5MjY1QiA2RkIwNzdFMSAxOEI3NDc3NyA4ODA4NUFFNiBGRjBGNkE3MCA2NjA2M0JDQSAxMTAxMEI1QyA4RjY1OUVGRiBGODYyQUU2OSA2MTZCRkZEMyAxNjZDQ0Y0NSBBMDBBRTI3OCBENzBERDJFRSA0RTA0ODM1NCAzOTAzQjNDMiBBNzY3MjY2MSBEMDYwMTZGNyA0OTY5NDc0RCAzRTZFNzdEQiBBRUQxNkE0QSBEOUQ2NUFEQyA0MERGMEI2NiAzN0Q4M0JGMCBBOUJDQUU1MyBERUJCOUVDNSA0N0IyQ0Y3RiAzMEI1RkZFOSBCREJERjIxQyBDQUJBQzI4QSA1M0IzOTMzMCAyNEI0QTNBNiBCQUQwMzYwNSBDREQ3MDY5MyA1NERFNTcyOSAyM0Q5NjdCRiBCMzY2N0EyRSBDNDYxNEFCOCA1RDY4MUIwMiAyQTZGMkI5NCBCNDBCQkUzNyBDMzBDOEVBMSA1QTA1REYxQiAyRDAyRUY4RCIuc3BsaXQoIiAiKS5tYXAoZnVuY3Rpb24oayl7cmV0dXJuIHBhcnNlSW50KGssCjE2KX0pO3ZhciByPXJeLTE7ZD0wO2ZvcihmPWIubGVuZ3RoO2Q8ZjtkKyspcj1yPj4+OF5jWyhyXmIuY2hhckNvZGVBdChkKSkmMjU1XTtyZXR1cm4ocl4tMSk+Pj4wfSxzZXRNdWx0aURlYWxlckJvZHk6ZnVuY3Rpb24oYixjKXt2YXIgZD0kKCIjcG9zdExlYWRMYWJlbCIpLnZhbCgpOyJ1bmRlZmluZWQiIT09dHlwZW9mIGQ\/KGQ9ZC5yZXBsYWNlKCJ7JE1VTFRJREVBTEVSTkFNRX0iLGIpLnJlcGxhY2UoInskUE9TVF9MRUFEX0VNQUlMU30iLGMpLGEuYm9keT1hLmJvZHkucmVwbGFjZSgieyRERUFMRVJfU0VORFRPfSIsZCksYS5kZWFsZXJOYW1lPWIpOmEuYm9keT1hLmJvZHkucmVwbGFjZSgvPGJyXHM\/XC8+e1wkREVBTEVSX1NFTkRUT30oYnJccz9cLyk\/LywiIikucmVwbGFjZSgieyRERUFMRVJfU0VORFRPfSIsIiIpfSxzaG93Q29uc2VudDpmdW5jdGlvbihiLGMpe2EuZ2V0RW1haWxDb25zZW50KGZ1bmN0aW9uKGQpe3ZhciBmPWEuZ2V0TmV3U2VxdWVuY2UoKSxoPWEuZ2V0TmV3U2VxdWVuY2UoKTsKZi5zZXRBY3Rpb24oZnVuY3Rpb24oKXthLmRlYWxlclNlbGVjdEZ1bmMoITEsdGhpcyl9KTtoLnNldEFjdGlvbihmdW5jdGlvbigpe3ZvaWQgMD09YiYmKGI9ITEpO3ZvaWQgMD09YyYmKGM9ITEpO3ZhciBtPSQoIiNhc1BvcFVwIikscj0hMTsoYS5hc2tQdXJjaGFzZUludGVudHx8YS5zaG91bGREaXNwbGF5UHVyY2hhc2VJbnRlbnRDb250YWN0KCkpJiYwPCQoIiNhc1B1cmNoYXNlSW50ZW50IikubGVuZ3RoJiYobT0kKCIjYXNQdXJjaGFzZUludGVudCIpLHI9ITApO2lmKDA8bS5sZW5ndGgpe2dldENvb2tpZSgidmlzaXRvcl9oYXNfZXhwbGljaXRfY29uc2VudCIpO3ZhciBrPXBhcnNlSW50KGdldENvb2tpZSgidmlzaXRvcl9oYXNfc2Vlbl9wb3B1cCIpLDEwKTtpc05hTihrKSYmKGs9MCk7YS5za2lwU2VuZGluZz1iO2EuZnJvbU9uTG9hZD1jO2lmKGQuaGFzQ29uc2VudCl7c3dpdGNoKGEuc3VibWl0VHlwZSl7Y2FzZSAiaW5zdGFudFJlYmF0ZSI6Y2FzZSAic2NyYXRjaCI6cmVhbFN1Ym1pdFJlYmF0ZUNvdXBvbigpOwpicmVhaztkZWZhdWx0OiIiIT1hLnBvc3RTdWJtaXRDYWxsYmFjayYmZXZhbChhLnBvc3RTdWJtaXRDYWxsYmFjayl9YS5yZWFkeVRvU2VuZCgpfWVsc2V7c3dpdGNoKGEuc3VibWl0VHlwZSl7Y2FzZSAic2NyYXRjaCI6Y2FzZSAiaW5zdGFudFJlYmF0ZSI6Y2xvc2VQb3B1cFdpZGdldCgpfSJmdW5jdGlvbiI9PXR5cGVvZiBhLm9uQmVmb3JlU2hvd0NvbnNlbnQmJmEub25CZWZvcmVTaG93Q29uc2VudC5jYWxsKCk7aWYocilhLnNob3VsZERpc3BsYXlQdXJjaGFzZUludGVudENvbnRhY3QoKT9kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjYXNQdXJjaGFzZUludGVudCAuc3RlcENvbnRhY3QiKS5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKTpkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjYXNQdXJjaGFzZUludGVudCAuc3RlcENvbnRhY3QiKS5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKSwkKCIjZW1haWxDb25zZW50U3VibWl0Iikub24oImNsaWNrIixmdW5jdGlvbigpe3ZhciB0PXt9O20uZmluZCgiZm9ybSIpLnNlcmlhbGl6ZUFycmF5KCkubWFwKHE9Pgp7dFtxLm5hbWVdPXEudmFsdWV9KTskKCIjQUxMT1dfU0hBUkVfUEVSU09OQUxfSU5GTywgLnN0ZXBDb25zZW50IikuY3NzKHtib3JkZXI6Im5vbmUifSk7JCgiI0FMTE9XX1NIQVJFX1BFUlNPTkFMX0lORk9fVEVYVF9FUlJPUiIpLmhpZGUoKTtpZigxPT0kKCIjQUxMT1dfU0hBUkVfUEVSU09OQUxfSU5GTyIpLmlzKCI6dmlzaWJsZSIpJiYoIXQuc2hhcmVfcGVyc29uYWx8fCJubyI9PXQuc2hhcmVfcGVyc29uYWwpKXJldHVybiAkKCIjQUxMT1dfU0hBUkVfUEVSU09OQUxfSU5GTyIpLmNzcyh7Ym9yZGVyOiIxcHggc29saWQgcmVkIn0pLCQoIiNBTExPV19TSEFSRV9QRVJTT05BTF9JTkZPX1RFWFRfRVJST1IiKS5zaG93KCksITE7aWYoIXQuaGFzT3duUHJvcGVydHkoImNvbnNlbnQiKSlyZXR1cm4gJCgiLnN0ZXBDb25zZW50IikuY3NzKHtib3JkZXI6IjFweCBzb2xpZCByZWQifSksITE7dmFyIHU9e3B1cmNoYXNlX2ludGVudDotMSxzaGFyZV9wZXJzb25hbDoibm8iLHByZWZlcnJlZF9jb250YWN0OiIifTsKZm9yKHZhciBsIGluIHUpdS5oYXNPd25Qcm9wZXJ0eShsKSYmKHQuaGFzT3duUHJvcGVydHkobCk\/c2V0Q29va2llKGwsdFtsXSk6dFtsXT11W2xdKTthLnB1cmNoYXNlX2ludGVudD10LnB1cmNoYXNlX2ludGVudDthLmFsbG93X3NoYXJlX3BlcnNvbmFsX2RhdGE9dC5zaGFyZV9wZXJzb25hbDthLnByZWZlcnJlZF9jb250YWN0PXQucHJlZmVycmVkX2NvbnRhY3Q7dT0iLTEiIT10LmNvbnNlbnQ7bD10Lmhhc093blByb3BlcnR5KCJjb25zZW50X29lbSIpJiYiMSI9PXQuY29uc2VudF9vZW07YS5zdWJtaXRDb25zZW50KHUsbCwiY29tcGxleCIpO3JldHVybiExfSk7ZWxzZSAkKCIjY29uc2VudFN1Ym1pdCIpLm9uKCJjbGljayIsZnVuY3Rpb24odCl7dC5wcmV2ZW50RGVmYXVsdCgpO3Q9ITE7JCgiLmRlYWxlckNvbnNlbnQiKS5jc3Moe2JvcmRlcjoibm9uZSJ9KTskKCIub2VtQ29uc2VudCIpLmNzcyh7Ym9yZGVyOiJub25lIn0pO3ZhciB1PXt9O20uZmluZCgiZm9ybSIpLnNlcmlhbGl6ZUFycmF5KCkubWFwKHE9Pgp7dVtxLm5hbWVdPXEudmFsdWV9KTt1Lmhhc093blByb3BlcnR5KCJjb25zZW50Iil8fCgkKCIuZGVhbGVyQ29uc2VudCIpLmNzcyh7Ym9yZGVyOiIxcHggc29saWQgcmVkIn0pLHQ9ITApO20uZmluZCgiZm9ybSAub2VtQ29uc2VudCIpLmxlbmd0aCYmIXUuaGFzT3duUHJvcGVydHkoImNvbnNlbnRfb2VtIikmJiQoIiNvZW1DZXJ0aWZpY2F0aW9uIikudmFsKCkmJihtLmZpbmQoImZvcm0gLm9lbUNvbnNlbnQiKS5jc3Moe2JvcmRlcjoiMXB4IHNvbGlkIHJlZCJ9KSx0PSEwKTtpZih0KXJldHVybiExO3Q9Ii0xIiE9dS5jb25zZW50O3ZhciBsPXUuaGFzT3duUHJvcGVydHkoImNvbnNlbnRfb2VtIikmJiIxIj09dS5jb25zZW50X29lbTthLnN1Ym1pdENvbnNlbnQodCxsKX0pO2EucHJlU2VuZEltcGxpY2l0KCk7bS5yZXZlYWwoe2FuaW1hdGlvbjoiZmFkZUFuZFBvcCIsYW5pbWF0aW9uc3BlZWQ6MzAwLGNsb3Nlb25iYWNrZ3JvdW5kY2xpY2s6ITEsZGlzbWlzc21vZGFsY2xhc3M6ImNsb3NlLXJldmVhbC1tb2RhbCIsCmNsb3Nlb25lc2NhcGU6ITF9KX19ZWxzZSIiPT1hLmNvbnNlbnREZXRhaWxzRU4mJnZvaWQgMCE9YS5kZXRhaWxzRGVmYXVsdHMuRU5HTElTSCYmdm9pZCAwIT1hLmRldGFpbHNEZWZhdWx0cy5GUkVOQ0gmJihhLmNvbnNlbnREZXRhaWxzRU49YS5kZXRhaWxzRGVmYXVsdHMuRU5HTElTSFsyXSxhLmNvbnNlbnREZXRhaWxzRlI9YS5kZXRhaWxzRGVmYXVsdHMuRlJFTkNIWzJdKSxiP3JlYWxTaG93UG9wdXBXaWRnZXQoYyk6YS5yZWFkeVRvU2VuZCgpfSk7Zi5zZXROZXh0KGgpLmV4ZXV0ZSgpfSl9LGhpZGVDb25zZW50OmZ1bmN0aW9uKCl7dmFyIGI9JCgiI2FzUG9wVXA6dmlzaWJsZSIpOyQoIiNhc1B1cmNoYXNlSW50ZW50IikuaXMoIjp2aXNpYmxlIikmJiJoaWRkZW4iIT09JCgiI2FzUHVyY2hhc2VJbnRlbnQiKS5jc3MoInZpc2liaWxpdHkiKSYmKGI9JCgiI2FzUHVyY2hhc2VJbnRlbnQ6dmlzaWJsZSIpLGNvbXBsZXg9ITApOzA8Yi5sZW5ndGgmJmIudHJpZ2dlcigicmV2ZWFsOmNsb3NlIil9LApzYXZlQ29uc2VudDpmdW5jdGlvbihiLGMsZCxmKXskKCJib2R5IikuY3NzKCJvdmVyZmxvdyIsImF1dG8iKTthLmhpZGVDb25zZW50KCk7dm9pZCAwPT1kJiYoZD0iIik7dmFyIGg9Yj83MzA6MTgwO2M9e2VtYWlsOmEudXNlckVtYWlsLGZpcnN0OmEudXNlckZpcnN0TmFtZSxsYXN0OmEudXNlckxhc3ROYW1lLHBob25lOmEudXNlclBob25lLHNpdGVJRDokKCIjc2l0ZUlEIikudmFsKCksZnJlcXVlbmN5OmI\/MTotMSxleHBsaWNpdDpiPzE6MCxleHBsaWNpdE9FTTpjPzE6MCxpbWc6ZCxyZWZlcmVyOnZvaWQgMCE9ZG9jdW1lbnQucmVmZXJyZXI\/ZG9jdW1lbnQucmVmZXJyZXI6IiIsZnJvbToiRUgifTtpZih2b2lkIDAhPT1hLnByZWZlcnJlZF9jb250YWN0JiYiIiE9PWEucHJlZmVycmVkX2NvbnRhY3R8fHZvaWQgMCE9PWdldENvb2tpZSgicHJlZmVycmVkX2NvbnRhY3QiKSYmIiIhPT1nZXRDb29raWUoInByZWZlcnJlZF9jb250YWN0IikpZD1hLnByZWZlcnJlZF9jb250YWN0fHwKZ2V0Q29va2llKCJwcmVmZXJyZWRfY29udGFjdCIpLGQ9eyJUw6lsw6lwaG9uZSI6IlBIT05FIixDb3VycmllbDoiRU1BSUwifVtkXXx8ZCxudWxsIT09ZCYmKGMuY29udGFjdFByZWZlcmVuY2U9ZC50b1VwcGVyQ2FzZSgpKTtzZXRDb29raWUoInZpc2l0b3JfZnJlcXVlbmN5X3ByZWZlcmVuY2UiLC0xLGgpO3NldENvb2tpZSgidmlzaXRvcl9jb25zZW50X3ByZWZlcmVuY2UiLGI\/IkV4cGxpY2l0IjoiSW1wbGljaXQiLGgpO3NldENvb2tpZSgidmlzaXRvcl9oYXNfZXhwbGljaXRfY29uc2VudCIsYj8ieWVzIjoibm8iLGgpO3NldENvb2tpZSgidmlzaXRvcl9lbWFpbF9wcmVmZXJlbmNlIixjLmVtYWlsLDkwKTskKCIudWktbG9hZGVyLWJhY2tncm91bmQiKS5zaG93KCk7c2V0VGltZW91dChmdW5jdGlvbigpeyQoIi51aS1sb2FkZXItYmFja2dyb3VuZCIpLmhpZGUoKX0sNUUzKTskLmFqYXgoe3R5cGU6IlBPU1QiLHVybDoiL2FqYXgvdHJhY2tFbWFpbFByZWZlcmVuY2U\/d3N3aWR0aD0wIiwKZGF0YVR5cGU6Impzb24iLGRhdGE6Yyxjb21wbGV0ZTpmdW5jdGlvbihtKXt0cnl7dmFyIHI9SlNPTi5wYXJzZShtLnJlc3BvbnNlVGV4dCk7YS5jb25zZW50RGV0YWlsc0VOPWJ0b2Eoci5kZXRhaWxDb25zZW50LkVOR0xJU0gpO2EuY29uc2VudERldGFpbHNGUj1idG9hKHIuZGV0YWlsQ29uc2VudC5GUkVOQ0gpfWNhdGNoKGspe31hLnBvc3RTYXZlQ29uc2VudChiLGYpfX0pfSxwb3N0U2F2ZUNvbnNlbnQ6ZnVuY3Rpb24oYixjKXt2b2lkIDAhPWEuZGV0YWlsc0RlZmF1bHRzLkVOR0xJU0gmJnZvaWQgMCE9YS5kZXRhaWxzRGVmYXVsdHMuRlJFTkNIJiYoYj8oYS5jb25zZW50RGV0YWlsc0VOPWEuZGV0YWlsc0RlZmF1bHRzLkVOR0xJU0hbMV0sYS5jb25zZW50RGV0YWlsc0ZSPWEuZGV0YWlsc0RlZmF1bHRzLkZSRU5DSFsxXSk6KGEuY29uc2VudERldGFpbHNFTj1hLmRldGFpbHNEZWZhdWx0cy5FTkdMSVNIWzJdLGEuY29uc2VudERldGFpbHNGUj1hLmRldGFpbHNEZWZhdWx0cy5GUkVOQ0hbMl0pKTsKaWYoYyl7aWYoYS5pZ25vcmVDYXB0Y2hhP2EucmVhZHlUb1NlbmQoKTphLnJlY2FwdGNoYS5nZXRSZXNwb25zZSgpLmRvbmUoZnVuY3Rpb24oZCl7YS5ncmVjYXB0Y2hhUmVzcG9uc2VUb2tlbj1kO2EucmVhZHlUb1NlbmQoKX0pLCJmdW5jdGlvbiI9PXR5cGVvZiBhLm9uQWZ0ZXJDb25zZW50KWEub25BZnRlckNvbnNlbnQoYil9ZWxzZSBhLmhpZGVDb25zZW50KCl9LHN1Ym1pdENvbnNlbnQ6ZnVuY3Rpb24oYixjLGQpe2EuY29uc2VudERlYWxlcj1iO2EuY29uc2VudE9FTT1jO2lmKGQmJiJjb21wbGV4Ij09ZCl7dmFyIGY9IiI7LTE9PWEucHVyY2hhc2VfaW50ZW50PyhkPSJQYXMgZGUgcmVwb25zZSIsZj0iTk9fQU5TV0VSIik6ZD1hLnB1cmNoYXNlX2ludGVudDtudWxsIT1kLm1hdGNoKC8zMC8pPyhkPSJNb2lucyBkZSAzMCBqb3VycyIsZj0iTFRfMzBfREFZUyIpOm51bGwhPWQubWF0Y2goLzMvKT8oZD0iTW9pbnMgZGUgMyBtb2lzIixmPSJMVF8zX01PTlRIUyIpOm51bGwhPWQubWF0Y2goLzYvKSYmCihudWxsIT1kLm1hdGNoKC9wbHVzfG92ZXJ8bW9yZS8pPyhkPSJQbHVzIGRlIDYgbW9pcyIsZj0iR1RfNl9NT05USFMiKTooZD0iTW9pbnMgZGUgNiBtb2lzIixmPSJMVF82X01PTlRIUyIpKTt2YXIgaD0iUmVwb25zZSAtICIrYS5wdXJjaGFzZV9pbnRlbnRfc2VjdGlvbi50b1VwcGVyQ2FzZSgpO2EubG9nRXZlbnQoIkludGVudGlvbnMgYWNoYXQ6ICIrZCwiUFVSQ0hBU0VfSU5URU5UXyIrZik7InVuZGVmaW5lZCIhPT10eXBlb2YgZGVidWcmJmRlYnVnKFsiYi5fdHJhY2tFdmVudCIsIkludGVudGlvbnMgYWNoYXQiLGgsZCwxXSl9c3dpdGNoKGEuc3VibWl0VHlwZSl7Y2FzZSAic2NyYXRjaCI6Y2FzZSAiaW5zdGFudFJlYmF0ZSI6cmVhbFN1Ym1pdFJlYmF0ZUNvdXBvbigpO2JyZWFrO2RlZmF1bHQ6IiIhPWEucG9zdFN1Ym1pdENhbGxiYWNrJiZldmFsKGEucG9zdFN1Ym1pdENhbGxiYWNrKX0ic2NyYXRjaCI9PWEuc3VibWl0VHlwZSYmc2hvd1BvcHVwV2lkZ2V0KCk7JCgiI2xhc3RDb25zZW50UG9wIikudmFsKGI\/CiJFeHBsaWNpdCI6IkltcGxpY2l0Iik7YS5zYXZlQ29uc2VudChiLGMsIiIsITApfSxwcmVTZW5kQ2hlY2tzOmZ1bmN0aW9uKGIpe2I\/YS5yZWFkeVRvU2VuZCgpOmEuc2hvd0NvbnNlbnQoKX0sc2VuZE1haWw6ZnVuY3Rpb24oYil7cmV0dXJuICRqc2NvbXAuYXN5bmNFeGVjdXRlUHJvbWlzZUdlbmVyYXRvckZ1bmN0aW9uKGZ1bmN0aW9uKigpe2Euc3VibWl0VHlwZT0ibm9ybWFsIjtiPSJ1bmRlZmluZWQiIT10eXBlb2YgYj9iOiExO2EuaWdub3JlQ2FwdGNoYXx8KGEuZ3JlY2FwdGNoYVJlc3BvbnNlVG9rZW49eWllbGQgYS5yZWNhcHRjaGEuZ2V0UmVzcG9uc2UoKSk7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiAkKCIjb25MZWFkU3VibWl0R2VvbG9jIikudmFsKCl8fDEhPSQoIiNvbkxlYWRTdWJtaXRHZW9sb2MiKS52YWwoKXx8InVuZGVmaW5lZCI9PXR5cGVvZiBnZW9Mb2NhdG9yfHxhLnNraXBHZW9Mb2MpYS5wcmVTZW5kQ2hlY2tzKGIpO2Vsc2V7dmFyIGM9bmV3IGdlb0xvY2F0b3IoZnVuY3Rpb24oZCl7YS5nZW9sb2Nfc3RhdHVzPQpkLmdlb2xvY19zdGF0dXM7MT09ZC5yZXN1bHQmJihhLmdlb2xvY19sYXQ9ZC5sYXRpdHVkZSxhLmdlb2xvY19sb25nPWQubG9uZ2l0dWRlLGEuZ2VvbG9jX2FjY3VyYWN5PWQuYWNjdXJhY3ksYS5nZW9sb2NfdHJhY2tfc3RyPWQuZ2VvY29kZV9hZGRyZXNzLGEuZ2VvbG9jX2VtYWlsX3N0cj1kLmdlb2NvZGVfYWRkcmVzc19zdHIsLTE9PWEuYm9keS5pbmRleE9mKCIjI0dFT0xPQ0FUSU9OIyMiKSYmKGEuYm9keT10cmltKGEuYm9keSkucmVwbGFjZSgvPGJyPiZuYnNwOy9nLCI8YnI+IikrIiMjR0VPTE9DQVRJT04jIyIpLCJ1bmRlZmluZWQiIT10eXBlb2YgYWN0aXZlVXNlclByb2ZpbGVNbmcmJiJ1bmRlZmluZWQiIT10eXBlb2YgYWN0aXZlVXNlclByb2ZpbGVNbmcubG9nUGFnZVZpZXdFdmVudCYmYWN0aXZlVXNlclByb2ZpbGVNbmcubG9nUGFnZVZpZXdFdmVudCgiUE9TVEFMX0NPREUiLGQuZ2VvY29kZV9hZGRyZXNzX3N0cikpOyJ1bmRlZmluZWQiPT10eXBlb2YgJCgiI2xlYWRTZW50IikudmFsKCkmJgooZD0kKCI8aW5wdXQ+IikuYXR0cih7aWQ6ImxlYWRTZW50Iix0eXBlOiJoaWRkZW4ifSkudmFsKDEpLCQoIiNmb290ZXJEaXYiKS5hcHBlbmQoZCksYS5wcmVTZW5kQ2hlY2tzKGIpKX0pO2MudHJhY2tMb2NhdGlvbkdBPSEwO2MuZ2V0TG9jYXRpb24oKX19KX0sc2VuZFVzZXJFbWFpbDpmdW5jdGlvbihiLGMpe3NlbmRUb0RhdGE9e307dmFyIGQ9Yj0iIixmPSIiLGg9IiI7Zm9yKGkgaW4gYylpZigic3RyaW5nIj09dHlwZW9mIGkpc3dpdGNoKGkudG9Mb3dlckNhc2UoKSl7Y2FzZSAiZW1haWx0byI6ZD1jW2ldO2JyZWFrO2Nhc2UgImVtYWlsaWQiOmI9Y1tpXTticmVhaztjYXNlICJkZWFsZXJlbWFpbCI6Zj1jW2ldO2JyZWFrO2Nhc2UgImRlYWxlcnBob25lIjpoPWNbaV07YnJlYWs7ZGVmYXVsdDpzZW5kVG9EYXRhW2ldPWNbaV19Yz17dmFyczpKU09OLnN0cmluZ2lmeShzZW5kVG9EYXRhKSxzaXRlaWQ6JCgiI3RvcHNpdGVpZCIpLnZhbCgpLGxhbmd1YWdlOiQoIiNhY3RpdmVzaXRlbGFuZ3VhZ2UiKS52YWwoKSwKZW1haWxpZDpiLGVtYWlsdG86ZCxkZWFsZXJFbWFpbDpmLGRlYWxlclBob25lOmgsc291cmNlVVJJOndpbmRvdy5sb2NhdGlvbi5ocmVmfTskLmFqYXgoe3R5cGU6IlBPU1QiLHVybDoiL2FqYXgvYWRkTWFpbFRvU2VuZD93c3dpZHRoPTAiLGRhdGE6Y30pfSxnZXRTdG9ja051bWJlcjpmdW5jdGlvbigpe2lmKGEuc3RvY2tOdW1iZXIpcmV0dXJuIGEuc3RvY2tOdW1iZXI7aWYoMDwkKCIjbGFzdHZpZXdlZHN0b2NrbnVtYmVyIikubGVuZ3RoJiYwPCQoIiN0YXJnZXRQYWdlIikubGVuZ3RoJiZbIk5FV0NBUkRFVEFJTFMiLCJDQVJERVRBSUxTIiwiUFJPTU8iLCJWRUhJQ0xFRVZBTCJdLmluY2x1ZGVzKCQoIiN0YXJnZXRQYWdlIikudmFsKCkpKXt2YXIgYj0kKCIjbGFzdHZpZXdlZHN0b2NrbnVtYmVyIikudmFsKCk7aWYoMjxiLmxlbmd0aCl7dmFyIGM9Yi5pbmRleE9mKCIoU3RvY2siKTstMTxjJiYoYj1iLnN1YnN0cihjKzcpLGM9Yi5pbmRleE9mKCIpIiksCi0xPGMmJihiPWIuc3Vic3RyKDAsYykudHJpbSgpKSk7Yis9IiJ9ZWxzZSBiPSIifWVsc2UgYj1nZXRQYXJhbWV0ZXJCeU5hbWUoInN0b2Nrbm8iKXx8IiI7cmV0dXJuIGIudHJpbSgpfSxnZXRWUERVcmxGcm9tU3RvY2s6ZnVuY3Rpb24oKXt2YXIgYj0iRU5HTElTSCI9PSQoIiNhY3RpdmVzaXRlbGFuZ3VhZ2UiKS52YWwoKT8kKCIjbGFzdHZpZXdlZHllYXIiKS52YWwoKSsiICIrJCgiI2xhc3R2aWV3ZWRtYWtlIikudmFsKCkrIiAiKyQoIiNsYXN0dmlld2VkbW9kZWwiKS52YWwoKSsiICIrJCgiI2xhc3R2aWV3ZWRzdG9ja251bWJlciIpLnZhbCgpOiQoIiNsYXN0dmlld2VkbWFrZSIpLnZhbCgpKyIgIiskKCIjbGFzdHZpZXdlZG1vZGVsIikudmFsKCkrIiAiKyQoIiNsYXN0dmlld2VkeWVhciIpLnZhbCgpKyIgIiskKCIjbGFzdHZpZXdlZHN0b2NrbnVtYmVyIikudmFsKCk7dHJ5e3ZhciBjPWEuZ2V0U3RvY2tOdW1iZXIoKSxkPSIiLGY9IkVOR0xJU0giPT0kKCIjYWN0aXZlc2l0ZWxhbmd1YWdlIikudmFsKCk\/CiJ1c2VkIjoib2NjYXNpb24iLGg9ZygiaHJlZiIpLG09ZygicHJvdG9jb2wiKSxyPWgucmVwbGFjZShtKyIvLyIsIiIpLnNwbGl0KCIvIiksaz1yWzBdLHQ9aC5pbmRleE9mKCItaWQiKTtpZigidW5kZWZpbmVkIj09PXR5cGVvZiBwYWdlfHwiQlVJTERBTkRQUklDRSIhPXBhZ2UmJiJORVdDQVJERVRBSUxTIiE9cGFnZSlpZigtMTx0KXt2YXIgdT1wYXJzZUludChoLnN1YnN0cih0KzMpLnJlcGxhY2UoIi5odG1sIiwiIiksMTApO2lmKCFpc05hTih1KSYmMDx1KXt2YXIgbD1yW3IubGVuZ3RoLTFdOy0xPGwuaW5kZXhPZih1KSYmKGQ9JzxhIGhyZWY9IicrbSsiLy8iK2srIi8iK2YrIi8iK2wrIlwiIHRhcmdldD0nX2JsYW5rJz4iK2IrIjwvYT4iKX19ZWxzZSIiIT09YS50cmltJiYoYj0iRU5HTElTSCI9PSQoIiNhY3RpdmVzaXRlbGFuZ3VhZ2UiKS52YWwoKT8kKCIjbGFzdHZpZXdlZHllYXIiKS52YWwoKSsiICIrJCgiI2xhc3R2aWV3ZWRtYWtlIikudmFsKCkrIiAiKyQoIiNsYXN0dmlld2VkbW9kZWwiKS52YWwoKSsKIiAiK2EudHJpbTokKCIjbGFzdHZpZXdlZG1ha2UiKS52YWwoKSsiICIrJCgiI2xhc3R2aWV3ZWRtb2RlbCIpLnZhbCgpKyIgIithLnRyaW0rIiAiKyQoIiNsYXN0dmlld2VkeWVhciIpLnZhbCgpKTtlbHNlIiIhPT1hLnRyaW0mJihiPSJFTkdMSVNIIj09JCgiI2FjdGl2ZXNpdGVsYW5ndWFnZSIpLnZhbCgpPyQoIiNsYXN0dmlld2VkeWVhciIpLnZhbCgpKyIgIiskKCIjbGFzdHZpZXdlZG1ha2UiKS52YWwoKSsiICIrJCgiI2xhc3R2aWV3ZWRtb2RlbCIpLnZhbCgpKyIgIithLnRyaW06JCgiI2xhc3R2aWV3ZWRtYWtlIikudmFsKCkrIiAiKyQoIiNsYXN0dmlld2VkbW9kZWwiKS52YWwoKSsiICIrYS50cmltKyIgIiskKCIjbGFzdHZpZXdlZHllYXIiKS52YWwoKSksZD0nPGEgaHJlZj0iJytoKyJcIiB0YXJnZXQ9J19ibGFuayc+IitiKyI8L2E+IjtpZigiIj09ZCYmMjxjLmxlbmd0aCl7dmFyIHE9JCgiI3RvcHNpdGVpZCIpLnZhbCgpLHc9IkVOR0xJU0giPT0kKCIjYWN0aXZlc2l0ZWxhbmd1YWdlIikudmFsKCk\/CiJlbiI6ImZyIjskLmFqYXgoe3R5cGU6IkdFVCIsYXN5bmM6ITEsZGF0YVR5cGU6Impzb24iLHVybDoiLyIrdysiL3BocC9nZXRVUkxGcm9tU3RvY2sucGhwP3NpdGVJRD0iK3ErIiZzdG9jaz0iK2Msc3VjY2VzczpmdW5jdGlvbihwKXsib2JqZWN0Ij09dHlwZW9mIHAmJm51bGwhPXAmJnZvaWQgMCE9cC5tYWtlJiYoZD0nPGEgaHJlZj0iJyttKyIvLyIraysiLyIrZisiLyIrKHAubWFrZSsiLSIrcC5tb2RlbCsiLSIrcC55ZWFyKyItaWQiK3AuaWQrIi5odG1sXCIgdGFyZ2V0PSdfYmxhbmsnPiIpK3AuZnVsbCsiPC9hPiIpfX0pfSIiIT1kJiYoYj1kKX1jYXRjaChwKXtjb25zb2xlLmxvZyhwKX1yZXR1cm4gYn0sc2V0U2VuZEFuZERlcGFydG1lbnRPdmVycmlkZTpmdW5jdGlvbihiKXtmdW5jdGlvbiBjKHUsbCl7MDx1Lmxlbmd0aCYmIiIhPT11LnZhbCgpJiYoYi5zZW5kVG89dS52YWwoKSk7MDxsLmxlbmd0aCYmIiIhPT1sLnZhbCgpJiYoYi5zZW5kVG9BREZGb3JtYXQ9bC52YWwoKSl9CmlmKDAhPSQoIiNpc0dlbmVyaWNTZWFyY2hQYWdlIikubGVuZ3RoJiYidHJ1ZSI9PT0kKCIjaXNHZW5lcmljU2VhcmNoUGFnZSIpLnZhbCgpKXtzd2l0Y2goYS5tYWlsSUQpe2Nhc2UgIm1lbnVTZXJ2aWNlIjpjYXNlICJtZW51Q29udGFjdFVzIjpjYXNlICJoZWFkZXJTZXJ2aWNlIjpyZXR1cm59dmFyIGQ9JCgiI0NVU1RPTV9TRU5EX0xFQUQiKTtpZigwIT09ZC5sZW5ndGgmJjAhPT1kLnZhbCgpJiYibnVsbCIhPT1kLnZhbCgpKXtiLmRlcGFydG1lbnQ9ZC52YWwoKS50b1VwcGVyQ2FzZSgpO3ZhciBmPSQoIiNuZXdFbWFpbCIpLGg9JCgiI25ld0FkZkVtYWlsIiksbT0kKCIjdGV4dFNlbmRUb0VtYWlsIikscj0kKCIjdGV4dFNlbmRUb0VtYWlsQURGIiksaz0kKCIjZmluYW5jZUVtYWlsIiksdD0kKCIjZmluYW5jZUFkZkVtYWlsIik7c3dpdGNoKGQudmFsKCkpe2Nhc2UgIm5ldyI6YyhmLGgpO2JyZWFrO2Nhc2UgInVzZWQiOmMobSxyKTticmVhaztjYXNlICJmaW5hbmNlIjpjKGssdCl9fX19LApnZXRKc29uT2JqZWN0OmZ1bmN0aW9uKCl7IiI9PWEudHJpbSYmJCgiI3BvcHVwdHJpbSIpLmxlbmd0aCYmInskUE9QVVBUUklNfSIhPSQoIiNwb3B1cHRyaW0iKS52YWwoKSYmKGEudHJpbT0kKCIjcG9wdXB0cmltIikudmFsKCkpO3ZhciBiPXt9LGM9ZnVuY3Rpb24oeSl7dHJ5e3JldHVybiBkZWNvZGVVUklDb21wb25lbnQoKG51bGwhPUNvb2tpZXMuZ2V0KHkpJiYidW5kZWZpbmVkIiE9dHlwZW9mIENvb2tpZXMuZ2V0KHkpP2VzY2FwZShDb29raWVzLmdldCh5KSk6IiIpKyIiLnJlcGxhY2UoL1wrL2csIiUyMCIpKX1jYXRjaChEKXtyZXR1cm4obnVsbCE9Q29va2llcy5nZXQoeSkmJiJ1bmRlZmluZWQiIT10eXBlb2YgQ29va2llcy5nZXQoeSk\/ZXNjYXBlKENvb2tpZXMuZ2V0KHkpKToiIikrIiIucmVwbGFjZSgvXCsvZywiJTIwIil9fSxkPWMoInJlbGFuY2VJRCIpLGY9YygidXRtX3NvdXJjZSIpLGg9YygidXRtX2NhbXBhaWduIiksbT1hLmRlY29kZVVSTFJlY3Vyc2l2ZWx5KGMoInV0bV9rZXl3b3JkIikpLApyPWMoInV0bV9sYW5kaW5nX2Zvb3RlciIpLGs9YygidXRtX3NvdXJjZV9yZXRhcmdldGluZyIpLHQ9YygidXRtX2NhbXBhaWduX3JldGFyZ2V0aW5nIiksdT0iRU5HTElTSCI9PSQoIiNhY3RpdmVzaXRlbGFuZ3VhZ2UiKS52YWwoKT8iS2V5d29yZCI6Ik1vdC1jbCYjMjMzOyIsbD0wPG0ubGVuZ3RoPyJbICIrdSsiOiAiK20rIl0iOiIiLHE9MDxyLmxlbmd0aD8iW0Rlc3RpbmF0aW9uOiAiK2QyY21lZGlhLmdldEh0dHBUZXh0KCkrIjovLyIrd2luZG93LmxvY2F0aW9uLmhvc3QrcisiXSI6IltEZXN0aW5hdGlvbjogIitkMmNtZWRpYS5nZXRIdHRwVGV4dCgpKyI6Ly8iK3dpbmRvdy5sb2NhdGlvbi5ob3N0K3IrIiAuXSI7dT1jKCJsb2NfaW50ZXJlc3QiKTtjPWMoImxvY19waHlzaWNhbCIpO3ZhciB3PXU\/YGxvY19pbnRlcmVzdD0ke3V9YDoiIixwPWM\/YGxvY19waHlzaWNhbD0ke2N9YDoiIix2PSQoImJvZHkiKS5oYXNDbGFzcygiRU5HTElTSCIpPyJPcmdhbmljIjoiT3JnYW5pcXVlIjsKbD0wPGYubGVuZ3RoP2Ake2Z9IC0gJHtofSAke2x9ICR7d30gJHtwfWA6djtxPWQyY21lZGlhLmNhcGl0YWxpc2VGaXJzdExldHRlck9mRXZlcnlXb3JkKGwpKyIgIitxO3A9IiI7dz1hLmdldFN0b2NrTnVtYmVyKCk7IiIhPXcmJihwPSIoU3RvY2s6IithLmdldFN0b2NrTnVtYmVyKCkrIikiKTt2PXtuZXc6IkVOR0xJU0giPT1zaXRlUGFnZS5sYW5nPyJuZXciOiJuZXVmIixuZXdpbnY6IkVOR0xJU0giPT1zaXRlUGFnZS5sYW5nPyJuZXciOiJuZXVmIix1c2VkOiJFTkdMSVNIIj09c2l0ZVBhZ2UubGFuZz8idXNlZCI6ImQnb2NjYXNpb24ifTthLmJvZHk9YS5ib2R5LnJlcGxhY2UoL3tcJFVUTURFVEFJTFN9L2cscSk7YS5ib2R5PWEuYm9keS5yZXBsYWNlKC97XCRVU0VSTkFNRX0vZyxhLnVzZXJGaXJzdE5hbWUpO2EuYm9keT1hLmJvZHkucmVwbGFjZSgve1wkVVNFUlBPU1RBTH0vZyxhLnVzZXJQb3N0YWwudG9VcHBlckNhc2UoKSk7YS5ib2R5PWEuYm9keS5yZXBsYWNlKC97XCRVVE1ERVRBSUxTfS9nLAoiIik7YS5ib2R5PWEuYm9keS5yZXBsYWNlKC97XCRGT09URVJ9L2csIiIpO2EuYm9keT1hLmJvZHkucmVwbGFjZSgve1wkRU1BSUxCVUlMREFORFBSSUNFfS9nLGEuYmFuZHBMaW5rKCkpO2EuYm9keT1hLmJvZHkucmVwbGFjZSgve1wkU1RPQ0tOVU1CRVJMQUJFTH0vZyxwKTthLmJvZHk9YS5ib2R5LnJlcGxhY2UoL3tcJFNUT0NLTlVNQkVSfS9nLHApO2EuYm9keT1hLmJvZHkucmVwbGFjZSgve1wkVkVISUNMRV9DT05ESVRJT059L2csdlthLmNvbmRpdGlvbi50b0xvd2VyQ2FzZSgpXSk7aWYoIiIhPT1hLmJvZHkpe3ZhciBBPSQoJ2lucHV0W2RhdGEtZm9ydmFyPSJPVkVSV1JJVFRFUkRFQUxFUiJdJykudmFsKCkmJiQoJ2lucHV0W2RhdGEtZm9ydmFyPSJPVkVSV1JJVFRFUkRFQUxFUiJdJykubGVuZ3RoPyQoJ2lucHV0W2RhdGEtZm9ydmFyPSJPVkVSV1JJVFRFUkRFQUxFUiJdJykudmFsKCk6IiI7cD0iIiE9JCgnaW5wdXRbZGF0YS1mb3J2YXI9IkRFQUxFUiJdJykudmFsKCkmJiQoJ2lucHV0W2RhdGEtZm9ydmFyPSJERUFMRVIiXScpLmxlbmd0aD8KJCgnaW5wdXRbZGF0YS1mb3J2YXI9IkRFQUxFUiJdJykudmFsKCk6JCgiI2hpZGRlbkRlYWxlck5hbWUiKS52YWwoKTtBPUEhPXAmJiIiIT1BP0E6cDthLmRlYWxlck5hbWU9YS5kZWFsZXJOYW1lP2EuZGVhbGVyTmFtZTpBfWEuYm9keT1hLmJvZHkucmVwbGFjZSgieyRERUFMRVJOQU1FfSIsYS5kZWFsZXJOYW1lKTthLmJvZHk9YS5ib2R5LnJlcGxhY2UoInskQ1VTVE9NVkVISUNMRUlOVEVSRVNUfSIsYS5tYWtlKyIgIithLm1vZGVsKyIgIithLnllYXIpO2EubGVhZFJlcXVlc3RUeXBlJiYoYS5ib2R5PWEuYm9keS5yZXBsYWNlQWxsKCJ7JFJFUVVFU1R9IixhLmxlYWRSZXF1ZXN0VHlwZSksYS5zdWJqZWN0PWEuc3ViamVjdC5yZXBsYWNlQWxsKCJ7JFJFUVVFU1R9IixhLmxlYWRSZXF1ZXN0VHlwZSksYS5sZWFkUmVxdWVzdFR5cGU9IiIpO2JvZHlMb3dlcj1hLmJvZHkudG9Mb3dlckNhc2UoKTtmb3Iodj0wOy0xPGJvZHlMb3dlci5pbmRleE9mKCJyZW1vdmVlbXB0eSIpOyl7cD1ib2R5TG93ZXIuaW5kZXhPZigicmVtb3ZlZW1wdHkiKTsKaWYoLTE9PXApYnJlYWs7cnBsRW5kPWJvZHlMb3dlci5pbmRleE9mKCI8YnI+IixwKTtycGxTdGFydD1ib2R5TG93ZXIubGFzdEluZGV4T2YoIjxicj4iLHApO2lmKC0xPT1ycGxFbmR8fC0xPT1ycGxTdGFydClicmVhaztycGxTdHJpbmc9YS5ib2R5LnN1YnN0cmluZyhycGxTdGFydCxycGxFbmQpO2EuYm9keT1hLmJvZHkucmVwbGFjZShycGxTdHJpbmcsIiIpO2JvZHlMb3dlcj1hLmJvZHkudG9Mb3dlckNhc2UoKTt2Kys7aWYoNTA8dilicmVha312PWEuZ2V0VlBEVXJsRnJvbVN0b2NrKCk7MD09di50cmltKCkubGVuZ3RoJiYocD0kKCdpbnB1dFtuYW1lPSJzZWFyY2hlZHZlaGljbGUiXScpLmZpbHRlcigiOnZpc2libGU6Zmlyc3QiKSx2PXAubGVuZ3RoP3AudmFsKCk6IiIpO2EucGF5bWVudFZlaGljbGUmJjA8YS5wYXltZW50VmVoaWNsZS5sZW5ndGgmJih2PWEucGF5bWVudFZlaGljbGUpOyIiPT1hLmNhcmlkJiYkKCIjdG9wY2FyaWQiKS5sZW5ndGgmJihhLmNhcmlkPSQoIiN0b3BjYXJpZCIpLnZhbCgpKTsKIiI9PWEudmluJiYkKCIjcGhvbmV2aW4iKS5sZW5ndGgmJihhLnZpbj0kKCIjcGhvbmV2aW4iKS52YWwoKSk7cD1hLmJvZHkuaW5kZXhPZigiPHNwYW4gaWQ9J3BoU0VBUkNIVkVISUNMRSc+Iik7aWYoLTE8cCl7dmFyIHo9YS5ib2R5LnN1YnN0cihwKzI3KS5pbmRleE9mKCI8L3NwYW4+Iik7LTE8eiYmKGEuYm9keT1hLmJvZHkuc3Vic3RyKDAscCkrdithLmJvZHkuc3Vic3RyKHAreisyNys3KSl9YS5ib2R5PWEuYm9keS5yZXBsYWNlKC88c3BhbiBpZD0ncGhTRUFSQ0hWRUhJQ0xFJz4vZywiIik7YS5ib2R5PWEuYm9keS5yZXBsYWNlKC88XC9zcGFuPi9nLCIiKTthLmJvZHk9YS5ib2R5LnJlcGxhY2UoL3tcJFNFQVJDSEVEVkVISUNMRX0vZyx2KTtpZigiMSI9PSQoIiNoYXNWQkRDRW5hYmxlZCIpLnZhbCgpKXtwPSIiO3Y9MDt6PSIiO0Nvb2tpZXMuZ2V0KCJEMkNVVUlEIik7Zm9yKHZhciB4IGluIHNlc3Npb25TdG9yYWdlKWlmKDA9PXguaW5kZXhPZigiVkRQTVZCTlAtIikpe3ZhciBDPQpzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHgpO0M+PXomJih6PUMscD14LnJlcGxhY2UoIlZEUE1WQk5QLSIsIiIpKX1pZigiIj09cCYmKHo9c2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgiZDJjX1ZEUE1WIiksbnVsbCE9eikpZm9yKHggaW4gej1KU09OLnBhcnNlKHopLHopQz16W3hdLDI8PUMmJkM+diYmKHY9QyxwPXgpOyIiIT1wJiYtMT09YS5ib2R5LmluZGV4T2YoIltWQkRDLUhPVF0iKSYmLTE9PWEuYm9keS5pbmRleE9mKCJbVkJEQy1NWVNdIikmJih4PXdpbmRvdy5sb2NhdGlvbi5wcm90b2NvbCsiLy8iK3dpbmRvdy5sb2NhdGlvbi5ob3N0K3AsYS5ib2R5Kz0nW1ZCREMtSE9UXSA8YSBocmVmPSInK3grJyI+Jyt4KyI8L2E+Iil9eD0kKCIjY3VycmVudFN0YXR1cyIpLnZhbCgpO3g9InVuZGVmaW5lZCI9PXR5cGVvZiB4PyJ1c2VkIjp4LnRvTG93ZXJDYXNlKCk7cD0kKCIjc2VuZEVtYWlsVG9BbGxEZWFsZXJzIik7cD1wLmxlbmd0aCYmMT09cC52YWwoKTtwPSQoIiNoYXNNdWx0aXBsZURlYWxlcnMiKTsKcD1wLmxlbmd0aCYmMT09cC52YWwoKTtwPSQoIiN0b3BjYXJpZCIpO3A9MDxwLmxlbmd0aD8kKCIjdG9wY2FyaWQiKS52YWwoKToiIjtwPSJ1bmRlZmluZWQiIT10eXBlb2YgJCgiI2JyYW5kRW1haWxBZGZPdmVycmlkZSIpLnZhbCgpPyQoIiNicmFuZEVtYWlsQWRmT3ZlcnJpZGUiKS52YWwoKToiIjt2PSJ1bmRlZmluZWQiIT10eXBlb2YgJCgiI2JyYW5kRW1haWxBZGZPdmVycmlkZSIpLnZhbCgpPyQoIiNicmFuZEVtYWlsQWRmT3ZlcnJpZGUiKS52YWwoKToiIjsidW5kZWZpbmVkIiE9dHlwZW9mICQoIiNuZXdTZWN0aW9uT3ZlcnJpZGUiKS52YWwoKSYmJCgiI25ld1NlY3Rpb25PdmVycmlkZSIpLnZhbCgpOyJ1bmRlZmluZWQiIT10eXBlb2YgJCgiI25ld1NlY3Rpb25FbWFpbCIpLnZhbCgpJiYkKCIjbmV3U2VjdGlvbkVtYWlsIikudmFsKCk7InVuZGVmaW5lZCIhPXR5cGVvZiAkKCIjbmV3U2VjdGlvbkFkZkVtYWlsIikudmFsKCkmJiQoIiNuZXdTZWN0aW9uQWRmRW1haWwiKS52YWwoKTsKc3dpdGNoKCEwKXtjYXNlIDU8cC5sZW5ndGgmJiJuZXciPT14JiYhYS5oYXNTZWxlY3RlZE11bHRpQWRkcmVzczphLnNlbmRUbz1wLGEuc2VuZFRvQURGRm9ybWF0PTU8di5sZW5ndGg\/djpwfWIubGFuZ3VhZ2U9JCgiI2FjdGl2ZXNpdGVsYW5ndWFnZSIpLnZhbCgpOyJmdW5jdGlvbiI9PXR5cGVvZiBjbGVhbkFuZEVuY29kZVRleHQ\/KGIuc3ViamVjdD1jbGVhbkFuZEVuY29kZVRleHQoYS5zdWJqZWN0KSxiLmJvZHk9Y2xlYW5BbmRFbmNvZGVUZXh0KGEuYm9keSkpOihiLnN1YmplY3Q9JC5iYXNlNjQuZW5jb2RlKGEuc3ViamVjdCksYi5ib2R5PSQuYmFzZTY0LmVuY29kZShhLmJvZHkpKTtjbGVhbkVtYWlsRGVsaW1pdGVyPWZ1bmN0aW9uKHkpe3ZhciBEPSIiOyJ1bmRlZmluZWQiIT10eXBlb2YgeSYmbnVsbCE9eSYmeS5sZW5ndGgmJihEPXkuc3BsaXQoIjsiKS5qb2luKCIsIikpO3JldHVybiBEfTsidXNlZGNhcnMuaHRtbCI9PSQoIiNQQUdFSUQiKS52YWwoKSYmIk5FVyI9PWEuZ2V0RGVwKCkmJgphLnNlbmRUbz09JCgiI1NJVEVVU0VERU1BSUwiKS52YWwoKSYmYS5zZW5kVG9BREZGb3JtYXQ9PSQoIiNTSVRFVVNFREVNQUlMQURGIikudmFsKCkmJihhLnNlbmRUbz0kKCIjU0lURU5FV0VNQUlMIikudmFsKCksYS5zZW5kVG9BREZGb3JtYXQ9JCgiI1NJVEVORVdFTUFJTEFERiIpLnZhbCgpKTtiLnNlbmRUbz1hLnNlbmRUbztiLnNlbmRUb0FERkZvcm1hdD1jbGVhbkVtYWlsRGVsaW1pdGVyKGEuc2VuZFRvQURGRm9ybWF0KTtiLnNlbGVjdGVkU2VuZFRvPWEuc2VsZWN0ZWRTZW5kVG87Yi5zZWxlY3RlZFNlbmRUb0FERkZvcm1hdD1hLnNlbGVjdGVkU2VuZFRvQURGRm9ybWF0O2IuZW1haWxMaXN0U3VmZml4PSIiOyQoIiNzaXRlY29tcGlsZWlkIikubGVuZ3RoJiYoYi5lbWFpbExpc3RTdWZmaXg9JCgiI3NpdGVjb21waWxlaWQiKS52YWwoKSk7Yi5sZWFkSW52b2tlcj1hLmxlYWRJbnZva2VyfHwiZ2VuZXJpYyI7Yi5kaWdpdGFsUmV0YWlsU0lEPWEuZGlnaXRhbFJldGFpbFNJRHx8CiIiO2IuY29uc2VudERlYWxlcj1hLmNvbnNlbnREZWFsZXI7Yi5jb25zZW50T0VNPWEuY29uc2VudE9FTTtiLnVzZXJFbWFpbD1hLnVzZXJFbWFpbDtiLnRyYWRlaW49YS50cmFkZWluO2IucG9wdXBkaXY9YS5wb3B1cGRpdjtiLnVzZXJBdHRhY2htZW50UGF0aD1hLnVzZXJBdHRhY2htZW50UGF0aDtiLnVzZXJGaXJzdE5hbWU9YS51c2VyRmlyc3ROYW1lO2IudXNlckxhc3ROYW1lPWEudXNlckxhc3ROYW1lO2IubGljZW5zZW51bT1hLmxpY2Vuc2VudW07Yi51c2VyUGhvbmU9YS51c2VyUGhvbmU7Yi5waG9uZVZhbGlkYXRpb25BdHRlbXB0cz1hLnBob25lVmFsaWRhdGlvbkF0dGVtcHRzO2IucGhvbmVNYW5kYXRvcnk9YS5waG9uZU1hbmRhdG9yeTtiLnVzZXJQb3N0YWw9YS51c2VyUG9zdGFsLnRvVXBwZXJDYXNlKCl8fGEuY29udGFjdFppcC50b1VwcGVyQ2FzZSgpO2IudXNlckFkZHJlc3M9YS51c2VyQWRkcmVzc3x8YS5jb250YWN0QWRkcmVzcztiLnByb3ZpbmNlPWEuY29udGFjdFByb3ZpbmNlOwpiLmJpcnRoZGF0ZT1hLmJpcnRoZGF0ZTtiLnNlbmRGcm9tPWEuc2VuZEZyb207Yi5tYWlsSUQ9YS5tYWlsSUQ7Yi5pc0NUQT1hLmlzQ1RBO2IuYnV0dG9uVGV4dD1hLmJ1dHRvblRleHQ7Yi5mcm9tVVJMPXdpbmRvdy5sb2NhdGlvbi5ocmVmO2IubWFrZT1hLm1ha2V8fCIiO2IubW9kZWw9YS5tb2RlbHx8IiI7Yi50cmltPWEudHJpbXx8IiI7Yi52aW49YS52aW58fCIiO2IucHJpY2U9YS5wcmljZXx8IiI7Yi55ZWFyPWEueWVhcnx8IiI7Yi52ZWhpY2xlVHlwZT1hLnZlaGljbGVUeXBlfHwiIjtiLnN0b2NrTnVtYmVyPXc7Yi5jYXJpZD1hLmNhcmlkfHwiIjtiLmNvbmRpdGlvbj1hLmNvbmRpdGlvbjtiLmlzbW9iaWxlc2l0ZT1hLmlzbW9iaWxlc2l0ZTtiLmlzQW1wPSJOTyI7Yi5yZWZlcmVyPSQoIiN0b3ByZWZlcmVyIikudmFsKCk7Yi5zaXRlaWQ9JCgiI3RvcHNpdGVpZCIpLnZhbCgpO2IuZGVhbGVyaWQ9YS5kZWFsZXJpZHx8IiI7Yi5vZW1DZXJ0aWZpY2F0aW9uPSQoIiNvZW1DZXJ0aWZpY2F0aW9uIikudmFsKCl8fApudWxsO2IudXRtX3NvdXJjZT1mO2IucmVsYW5jZUlEPWQ7Yi51dG1fY2FtcGFpZ249aDtiLnV0bV9rZXl3b3JkPW07Yi51dG1fbGFuZGluZz1yO2IudXRtX2RldGFpbHM9bDtiLnV0bV9zb3VyY2VfcmV0YXJnZXRpbmc9aztiLnV0bV9jYW1wYWlnbl9yZXRhcmdldGluZz10O2IubG9jX2ludGVyZXN0PXU7Yi5sb2NfcGh5c2ljYWw9YztiLnBvcHVwT2ZmZXJUeXBlPWEucG9wdXBPZmZlclR5cGU7Yi5mcm9tRmFjZWJvb2s9YS5mcm9tRmFjZWJvb2s7Yi5kZXRhaWxzRlI9YS5jb25zZW50RGV0YWlsc0ZSO2IuZGV0YWlsc0VOPWEuY29uc2VudERldGFpbHNFTjtiLmZyb21BQT1hLmZyb21BQTtiLm93bmVySUQ9YS5vd25lcklEO2IubGVhZFRpdGxlVUlUZXh0PWEubGVhZFRpdGxlVUlUZXh0O2Iuc21zPWEuc21zO2Iub25BZnRlckxlYWRDcmVhdGVkPWEub25BZnRlckxlYWRDcmVhdGVkO2IudHJhZGVpbmJhclJlZ2lzdGVyUGFydGlhbElEPWEudHJhZGVpbmJhclJlZ2lzdGVyUGFydGlhbElEfHwKIiI7InVuZGVmaW5lZCIhPT10eXBlb2YgY2xpZW50U3RvcmFnZSYmKCIiIT1hLnVzZXJGaXJzdE5hbWUmJmNsaWVudFN0b3JhZ2Uuc2V0KCJmaXJzdG5hbWUiLGEudXNlckZpcnN0TmFtZSksIiIhPWEudXNlckxhc3ROYW1lJiZjbGllbnRTdG9yYWdlLnNldCgibGFzdG5hbWUiLGEudXNlckxhc3ROYW1lKSwiIiE9YS51c2VyRW1haWwmJmNsaWVudFN0b3JhZ2Uuc2V0KCJlbWFpbCIsYS51c2VyRW1haWwpLCIiIT1hLnVzZXJQaG9uZSYmY2xpZW50U3RvcmFnZS5zZXQoInBob25lIixhLnVzZXJQaG9uZSkpO2IuY2hhdGJvdEJvb3N0SWQ9Z2V0Q29va2llRDJjKCJkMmNjaGF0Ym90aWQiKTtiLnN0eWxlaWQ9JCgiI3N0eWxlSWRJblVzZSIpLmxlbmd0aD8kKCIjc3R5bGVJZEluVXNlIikudmFsKCk6JCgiI2FjdGl2ZVN0eWxlSUQiKS5sZW5ndGg\/JCgiI2FjdGl2ZVN0eWxlSUQiKS52YWwoKToiIjsidW5kZWZpbmVkIiE9PXR5cGVvZiB3aW5kb3cuYWRwX2ZvdXJleWVzX2lkJiZ3aW5kb3cuYWRwX2ZvdXJleWVzX2lkPwooYi5Vbml0ZVdlYnNpdGVDdXN0b21lcklkPXdpbmRvdy5hZHBfZm91cmV5ZXNfaWQsY29uc29sZS5sb2coIkQyVUQgLSBlbWFpbEhhbmRsZXIgSlMgcGFzc2VkIix3aW5kb3cuYWRwX2ZvdXJleWVzX2lkKSk6Y29uc29sZS5sb2coIkQyVUQgLSBlbWFpbEhhbmRsZXIgSlMgLSB3aW5kb3cuYWRwX2ZvdXJleWVzX2lkIGlmIHdhcyB0cmlnZ2VyZWQiLHdpbmRvdy5hZHBfZm91cmV5ZXNfaWQpO2Eub25BZnRlckxlYWRDcmVhdGVkJiYoYi5vbkFmdGVyTGVhZENyZWF0ZWQuZnJvbT0iIixhLnNlbmRUbz1hLnNlbmRUb3x8IiIsZD1hLnNlbmRUby5zcGxpdCgiOyIpLGRbMF0udHJpbSgpLmxlbmd0aD9iLm9uQWZ0ZXJMZWFkQ3JlYXRlZC5mcm9tPWRbMF0udHJpbSgpOihkPWEuc2VuZFRvQURGRm9ybWF0LnNwbGl0KCIsIiksZFswXS50cmltKCkubGVuZ3RoJiYoYi5vbkFmdGVyTGVhZENyZWF0ZWQuZnJvbT1kWzBdLnRyaW0oKSkpKTtiLnVzZXJBZ2VudD0kKCIjdHh0VXNlckFnZW50IikudmFsKCk7CmIuZ3JlY2FwdGNoYVJlc3BvbnNlVG9rZW49YS5ncmVjYXB0Y2hhUmVzcG9uc2VUb2tlbjtkPWEucmVjYXB0Y2hhLmN1cnJlbnRDb250ZXh0KCk7Yi5ncmVjYXB0Y2hhQWN0aW9uPWQuYWN0aW9uO2IuZ3JlY2FwdGNoYU1vZGU9ZC5tb2RlO2IuY29udGFjdElEPWEuY29udGFjdElEO2IuY29udGFjdE5BUz1hLmNvbnRhY3ROQVM7Yi5jb250YWN0QmlydGg9YS5jb250YWN0QmlydGg7Yi5kZWFsZXJOYW1lPWEuZGVhbGVyTmFtZT9hLmRlYWxlck5hbWU6QTtiLmFsbG93X3NoYXJlX3BlcnNvbmFsX2RhdGE9YS5hbGxvd19zaGFyZV9wZXJzb25hbF9kYXRhO2IucHJlZmVycmVkX2NvbnRhY3Q9YS5wcmVmZXJyZWRfY29udGFjdDtiLnV0bWRldGFpbHNUb1JlcGxhY2U9cTsiIiE9YS5nZW9sb2Nfc3RhdHVzJiYoYi5nZW9sb2Nfc3RhdHVzPWEuZ2VvbG9jX3N0YXR1cyxiLmdlb2xvY19sYXQ9YS5nZW9sb2NfbGF0LGIuZ2VvbG9jX2xvbmc9YS5nZW9sb2NfbG9uZyxiLmdlb2xvY19hY2N1cmFjeT0KYS5nZW9sb2NfYWNjdXJhY3ksImZ1bmN0aW9uIj09dHlwZW9mIGNsZWFuQW5kRW5jb2RlVGV4dD8oYi5nZW9sb2NfdHJhY2tfc3RyPWNsZWFuQW5kRW5jb2RlVGV4dChhLmdlb2xvY190cmFja19zdHIpLGIuZ2VvbG9jX2VtYWlsX3N0cj1jbGVhbkFuZEVuY29kZVRleHQoYS5nZW9sb2NfZW1haWxfc3RyKSk6KGIuZ2VvbG9jX3RyYWNrX3N0cj0kLmJhc2U2NC5lbmNvZGUoYS5nZW9sb2NfdHJhY2tfc3RyKSxiLmdlb2xvY19lbWFpbF9zdHI9JC5iYXNlNjQuZW5jb2RlKGEuZ2VvbG9jX2VtYWlsX3N0cikpKTsiIiE9YS5jYXIyX21ha2UmJihiLmNhcjJfbWFrZT1hLmNhcjJfbWFrZSxiLmNhcjJfbW9kZWw9YS5jYXIyX21vZGVsLGIuY2FyMl90cmltPWEuY2FyMl90cmltLGIuY2FyMl95ZWFyPWEuY2FyMl95ZWFyLGIuY2FyMl9jb2xvcj1hLmNhcjJfY29sb3IsYi5jYXIyX29kb21ldGVyPWEuY2FyMl9vZG9tZXRlcixiLmNhcjJfdmluPWEuY2FyMl92aW4sYi5jYXIyX3RyYW5zbWlzc29uPQphLmNhcjJfdHJhbnNtaXNzb24sYi5jYXIyX2RyaXZldHJhaW49YS5jYXIyX2RyaXZldHJhaW4sYi5jYXIyX2Z1ZWx0eXBlPWEuY2FyMl9mdWVsdHlwZSk7Yi5zZXJ2aWNlRGF0ZTE9YS5zZXJ2aWNlRGF0ZTF8fCIiO2Iuc2VydmljZURhdGUyPWEuc2VydmljZURhdGUyfHwiIjtiLndhaXRpbmdPblNpdGU9YS53YWl0aW5nT25TaXRlfHwiIjtiLmNvbW1lbnRzPWEuY29tbWVudHM7YS5za2lwR2V0RGVwP2IuZGVwYXJ0bWVudD1hLmRlcGFydG1lbnQ6KGIuZGVwYXJ0bWVudD1hLmdldERlcCgpLGEuZGVwYXJ0bWVudD1hLmdldERlcCgpKTtpZigiVVNFRCI9PWIuZGVwYXJ0bWVudCYmMD09YS5kZXBhcnRtZW50QnlTdG9jayl7dmFyIEI9JCgnaW5wdXRbbmFtZT0ic2VhcmNoZWR2ZWhpY2xlIl0nKS5maWx0ZXIoIjp2aXNpYmxlOmZpcnN0IikudmFsKCk7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBCJiYoQj1CLnNwbGl0KCIoU3RvY2siKSxCWzFdKSl7dmFyIEY9IlVTRUQiO0I9QlsxXS5yZXBsYWNlKCIpIiwKIiIpLnJlcGxhY2UoIjoiLCIiKS5yZXBsYWNlKCIjIiwiIikudHJpbSgpLnRvTG93ZXJDYXNlKCk7JC5hamF4KHt0eXBlOiJHRVQiLGFzeW5jOiExLGRhdGFUeXBlOiJqc29uIix1cmw6Ii9qcy9qc29uL3VzZWRCeVByaWNlQXNjLmpzb24iLHN1Y2Nlc3M6ZnVuY3Rpb24oeSl7JC5lYWNoKHksZnVuY3Rpb24oRCxFKXtpZihFLnNuLnRvTG93ZXJDYXNlKCk9PUIpcmV0dXJuIEY9IjEiPT1FLmlzbmV3fHwiMSI9PUUuaXNkZW1vPyJORVciOiJVU0VEIiwhMX0pO2EuZGVwYXJ0bWVudEJ5U3RvY2s9Rn19KX19IiIhPT1hLmRlcGFydG1lbnRCeVN0b2NrJiYhMSE9PWEuZGVwYXJ0bWVudEJ5U3RvY2smJihiLmRlcGFydG1lbnQ9YS5kZXBhcnRtZW50QnlTdG9jayk7IWIuZGVwYXJ0bWVudHx8Im5ldyI9PWIuZGVwYXJ0bWVudC50b0xvd2VyQ2FzZSgpJiYidXNlZCI9PWIuZGVwYXJ0bWVudC50b0xvd2VyQ2FzZSgpP2IuY29uZGl0aW9uPWIuZGVwYXJ0bWVudCYmIm5ldyI9PWIuZGVwYXJ0bWVudC50b0xvd2VyQ2FzZSgpPwoiTmV3IjoiVXNlZCI6Yi5jb25kaXRpb249JCgiI2N1cnJlbnRTdGF0dXMiKS5sZW5ndGg\/JCgiI2N1cnJlbnRTdGF0dXMiKS52YWwoKToidW5rbm93biI7Yi5kZXBhcnRtZW50LnRvTG93ZXJDYXNlKCkhPWIuY29uZGl0aW9uLnRvTG93ZXJDYXNlKCkmJihiLmNvbmRpdGlvbj1iLmRlcGFydG1lbnQudG9Mb3dlckNhc2UoKSk7bnVsbCE9YS5jcmVkaXREYXRhJiYoYi5jcmVkaXREYXRhPWEuY3JlZGl0RGF0YSk7bnVsbCE9YS5kZWFsZXJBcHBvaW50bWVudERhdGEmJihiLmRlYWxlckFwcG9pbnRtZW50RGF0YT1hLmRlYWxlckFwcG9pbnRtZW50RGF0YSk7MDwkKCIjcHVyY2hhc2VfaW50ZW50X2Fuc3dlciIpLmxlbmd0aCYmKGIucHVyY2hhc2VfaW50ZW50PWEucHVyY2hhc2VfaW50ZW50LGIucHVyY2hhc2VfaW50ZW50X2Fuc3dlcj0kKCIjcHVyY2hhc2VfaW50ZW50X2Fuc3dlciIpLnZhbCgpLGIucHVyY2hhc2VfaW50ZW50X25vX2Fuc3dlcj0kKCIjcHVyY2hhc2VfaW50ZW50X25vX2Fuc3dlciIpLnZhbCgpKTsKYi5wdXJjaGFzZV9pbnRlbnQ9YS5hc2tQdXJjaGFzZUludGVudD9iLnB1cmNoYXNlX2ludGVudD9iLnB1cmNoYXNlX2ludGVudDotMTohMTskKCIjY3VycmVudEl0ZW1UeXBlIikubGVuZ3RoP2IuaXRlbVR5cGU9JCgiI2N1cnJlbnRJdGVtVHlwZSIpLnZhbCgpOmIuaXRlbVR5cGU9IiI7YS5ib2R5Kz0iXHgzYyEtLSBKUyBVbmlxdWUgaWQ6IitNYXRoLnJvdW5kKDVFMypNYXRoLnJhbmRvbSgpKSsiLS1ceDNlIjtyZXR1cm4gYn0sZ2V0RGVwOmZ1bmN0aW9uKCl7dmFyIGI9KG5ldyBEYXRlKS5nZXRGdWxsWWVhcigpLGM9L1xiKG5ld3xuZXVmfG5ldWZzfGNvbmZpZ3VyYXRpb24tZXQtcHJpeHxidWlsZC1hbmQtcHJpY2V8ZGVtb3N8ZGVtb25zdHJhdGV1cnN8Y2xlYXJhbmNlKVxiLy50ZXN0KHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSksZD0vXGIodXNlZHxvY2Nhc2lvbilcYi8udGVzdCh3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUpO2lmKCJ1bmRlZmluZWQiIT09dHlwZW9mIHdpbmRvdy5nVXNlZFNycEFwcHomJgoidW5kZWZpbmVkIiE9PXR5cGVvZiB3aW5kb3cuZ1VzZWRTcnBBcHB6LmZpbHRlckludGVyZmFjZSYmImZ1bmN0aW9uIj09PXR5cGVvZiB3aW5kb3cuZ1VzZWRTcnBBcHB6LmZpbHRlckludGVyZmFjZS5nZXRDdXJyZW50RmlsdGVyU3RhdGUpe3ZhciBmPXdpbmRvdy5nVXNlZFNycEFwcHouZmlsdGVySW50ZXJmYWNlLmdldEN1cnJlbnRGaWx0ZXJTdGF0ZSgiY2F0ZWdvcnkiKTtpZighMSE9PWYmJmYubGVuZ3RoKWlmKDE9PT1mLmxlbmd0aCYmMz09PWZbMF0udmFsdWUpYz0hMCxkPSExO2Vsc2V7dmFyIGgsbT0wLHI9MDtmb3IoaD0wO2ghPT1mLmxlbmd0aDtoKyspZltoXS5udW0+bSYmKG09ZltoXS5udW0scj1mW2hdLnZhbHVlKTsxPT09cnx8Mj09PXI\/KGM9ITEsZD0hMCk6Mz09PXImJihjPSEwLGQ9ITEpfX1mPTA7aD0kKCdpbnB1dFtuYW1lPSJzZWFyY2hlZHZlaGljbGUiXScpLmZpbHRlcigiOnJlYWxseVZpc2libGU6Zmlyc3QiKTswPGgubGVuZ3RoJiYoaD1oLnZhbCgpLm1hdGNoKC8xOVswLTldezJ9fDIwWzAtOV17Mn0vZyksCm51bGwhPWgmJihmPXBhcnNlSW50KGhbMF0pKSk7Znx8KGY9YS55ZWFyKTtzd2l0Y2goYS5tYWlsSUQpe2Nhc2UgIlRpcmVzUmVxdWVzdCI6Y2FzZSAiUGFydHNSZXF1ZXN0IjpyZXR1cm4iUEFSVFMiO2Nhc2UgIlNlcnZpY2VSZXF1ZXN0IjpjYXNlICJSZWNhbGxzIjpjYXNlICJCb2R5U2hvcCI6Y2FzZSAibWVudVNlcnZpY2UiOmNhc2UgImhlYWRlclNlcnZpY2UiOmNhc2UgIkVzdGhldGljUmVxdWVzdCI6cmV0dXJuIlNFUlZJQ0UiO2Nhc2UgIkNyZWRpdFJlcXVlc3QiOmNhc2UgIkNyZWRpdFJlcXVlc3RNb2JpbGUiOmNhc2UgIkRlYWxlclRyYWNrIjpjYXNlICJDcmVkaXRNdWx0aXN0ZXBSZXF1ZXN0IjpjYXNlICJDcmVkaXRNdWx0aXN0ZXBSZXF1ZXN0Mm5kQ2hhbmNlIjpjYXNlICJDcmVkaXRNdWx0aXN0ZXBSZXF1ZXN0SW5zdGFudCI6Y2FzZSAiQ3JlZGl0U2NvcmUiOmNhc2UgIkNyZWRpdEFwcENhcmQiOnJldHVybiJGSU5BTkNFIjtjYXNlICJKb2JPZmZlciI6cmV0dXJuIkhSIjsKY2FzZSAibWVudUNvbnRhY3RVcyI6aWYoIiIhPT1hLmRlcGFydG1lbnQpcmV0dXJuIGEuZGVwYXJ0bWVudC50b1VwcGVyQ2FzZSgpO2lmKCJ1bmRlZmluZWQiIT09dHlwZW9mIG1haWxRdWlja0VtYWlsLmRlcGFydG1lbnQmJiIiIT09bWFpbFF1aWNrRW1haWwuZGVwYXJ0bWVudClyZXR1cm4gbWFpbFF1aWNrRW1haWwuZGVwYXJ0bWVudC50b1VwcGVyQ2FzZSgpfWlmKDA8Zil7aWYoZCYmZj49YisxKXJldHVybiJORVciO2lmKCFjJiYhZCl7aWYoZj49Yi0xKXJldHVybiJORVciO2lmKGY8Yi0xKXJldHVybiJVU0VEIn19cmV0dXJuImNhcmRldGFpbC5odG1sIj09JCgiI1BBR0VJRCIpLnZhbCgpPyQoIiNkZWZhdWx0RGVwYXJ0bWVudCIpLnZhbCgpOmQ\/IlVTRUQiOmM\/Ik5FVyI6IiIhPT1hLmRlcGFydG1lbnQ\/YS5kZXBhcnRtZW50OiJ1bmRlZmluZWQiIT10eXBlb2YgJCgiI3BvcHVwRGVwYXJ0bWVudCIpLmF0dHIoImlkIikmJiQoIiNwb3B1cERlcGFydG1lbnQiKS52YWwoKS5sZW5ndGg\/CiQoIiNwb3B1cERlcGFydG1lbnQiKS52YWwoKToidW5kZWZpbmVkIiE9dHlwZW9mICQoIiNkZWZhdWx0RGVwYXJ0bWVudCIpLmF0dHIoImlkIikmJiQoIiNkZWZhdWx0RGVwYXJ0bWVudCIpLnZhbCgpLmxlbmd0aD8kKCIjZGVmYXVsdERlcGFydG1lbnQiKS52YWwoKToiVVNFRCJ9LGRlYWxlclNlbGVjdEZ1bmM6ZnVuY3Rpb24oYixjKXtiPXZvaWQgMD09PWI\/ITE6Yjt2YXIgZD0kKCIjbXVsdGktYWRkcmVzcy1zdWJtaXNzaW9uIiksZj1kLmZpbmQoInNlbGVjdCIpLGg9ZC5maW5kKCIuZGVhbGVyLXNlbGVjdC13cmFwcGVyIik7YS5oYXNTZWxlY3RlZE11bHRpQWRkcmVzcz0hMTt2YXIgbT1zZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCJkZWFsZXJTZWxlY3RWYWx1ZXMiKTtpZihtKXJldHVybiBhLnNldERlYWxlclNlbGVjdEVtYWlscygpLGJ8fChiPUpTT04ucGFyc2UobSksYS5zZXRNdWx0aURlYWxlckJvZHkoYi5kZWFsZXJOYW1lLGEuc2VuZFRvKSksYy5nb3RvTmV4dCgpO2lmKCgkKCIjY3VzdG9tRm9ybV9zZW5kdG8iKS5sZW5ndGgmJgoiIiE9JCgiI2N1c3RvbUZvcm1fc2VuZHRvIikudmFsKCl8fCQoIiNjdXN0b21Gb3JtX3NlbmR0b0FERiIpLmxlbmd0aCYmIiIhPSQoIiNjdXN0b21Gb3JtX3NlbmR0b0FERiIpLnZhbCgpKSYmMDw9JCgiI1BBR0VJRCIpLnZhbCgpLmluZGV4T2YoImdlbmVyaWNfIil8fDA9PWQubGVuZ3RofHwwIT09YS5zZWxlY3RlZFNlbmRUby5sZW5ndGh8fDAhPT1hLnNlbGVjdGVkU2VuZFRvQURGRm9ybWF0Lmxlbmd0aClyZXR1cm4gYy5nb3RvTmV4dCgpO2lmKCJKb2JPZmZlciI9PWEubWFpbElEJiYiIiE9JCgiI3RleHRTZW5kVG9FbWFpbERlZmF1bHQiKS52YWwoKSlyZXR1cm4gYS5zZW5kVG89JCgiI3RleHRTZW5kVG9FbWFpbERlZmF1bHQiKS52YWwoKSxhLnNlbGVjdGVkU2VuZFRvPSQoIiN0ZXh0U2VuZFRvRW1haWxEZWZhdWx0IikudmFsKCksYS5zZW5kVG9BREZGb3JtYXQ9JCgiI3RleHRTZW5kVG9FbWFpbERlZmF1bHRBREYiKS52YWwoKSxhLnNlbGVjdGVkU2VuZFRvQURGRm9ybWF0PSQoIiN0ZXh0U2VuZFRvRW1haWxEZWZhdWx0QURGIikudmFsKCksCmMuZ290b05leHQoKTtiPSQoIiNQT1NUX0xFQURfU0VORF9UT19ERUFMRVJfVFlQRV9TRUxFQ1QiKS5sZW5ndGg\/JCgiI1BPU1RfTEVBRF9TRU5EX1RPX0RFQUxFUl9UWVBFX1NFTEVDVCIpLnZhbCgpOiJsb2NhdGlvbiI7aWYoMDwkKCIjdGFyZ2V0UGFnZSIpLmxlbmd0aCYmIkNBUkRFVEFJTFMiPT09JCgiI3RhcmdldFBhZ2UiKS52YWwoKSYmImxvY2F0aW9uIj09PWJ8fCgiIiE9PWEuc3RvY2tOdW1iZXJ8fGEuY2FyaWR8fGEuZ2V0U3RvY2tOdW1iZXIoKSkmJiJsb2NhdGlvbiI9PT1iKXJldHVybiBjLmdvdG9OZXh0KCk7JCgiI211bHRpLWRlYWxlci1tYXAiKS5sZW5ndGgmJihHb29nbGVNYXBzV3JhcHBlci5zZXRHb29nbGVNYXAoKSxiPSQoIiNmb290ZXJHb29nbGVNYXBab29tIikudmFsKCksYj0xPHBhcnNlSW50KGIpJiYxOD49cGFyc2VJbnQoYik\/cGFyc2VJbnQoYik6OSxiPW5ldyBHb29nbGVNYXBzV3JhcHBlcih7ZWxlbWVudDoibXVsdGktZGVhbGVyLW1hcCIsYWRkcmVzc2VzOiJ1bmRlZmluZWQiIT0KdHlwZW9mIGZvb3Rlck1hcEFkZHJlc3Nlcz9mb290ZXJNYXBBZGRyZXNzZXM6W10sem9vbTpiLG9uQWZ0ZXJNYXJrZXJDcmVhdGVkOmZ1bmN0aW9uKGssdCl7dmFyIHU9JChgLmRlYWxlci1zZWxlY3Qtd3JhcHBlciBidXR0b25bZGF0YS1kZWFsZXJpZD0iJHtrLmRlYWxlcklkfSJdYCk7dS5vbigiY2xpY2siLGZ1bmN0aW9uKCl7Z29vZ2xlLm1hcHMuZXZlbnQudHJpZ2dlcih0LCJjbGljayIpfSk7dC5hZGRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKCl7JCgiLmRlYWxlci1zZWxlY3Qtd3JhcHBlciBidXR0b24iKS5yZW1vdmVDbGFzcygiZm9jdXNlZCIpO3ZhciBsPSQoJyNtdWx0aS1hZGRyZXNzLXN1Ym1pc3Npb24gc2VsZWN0W25hbWU9Im11bHRpX2RlYWxlcl9zZW5kVG8iXScpO3UubGVuZ3RoJiYodS5hZGRDbGFzcygiZm9jdXNlZCIpLHVbMF0uZm9jdXMoKSxtdWx0aURlYWxlclNlbGVjdC5zZXRTZWxlY3QodVswXSwhMSkpO2lmKGwubGVuZ3RoKXt2YXIgcT1sLmZpbmQoYG9wdGlvbltkYXRhLWRlYWxlcmlkPSIke2suZGVhbGVySWR9Il1gKTsKcS5sZW5ndGgmJmwudmFsKHEudmFsKCkpfX0pOyQoYCNtdWx0aS1hZGRyZXNzLXN1Ym1pc3Npb24gb3B0aW9uW2RhdGEtZGVhbGVyaWQ9IiR7ay5kZWFsZXJJZH0iXWApLmRhdGEoIm1hcmtlciIsdCl9LG9uQWZ0ZXJJbml0OmZ1bmN0aW9uKCl7InVuZGVmaW5lZCIhPXR5cGVvZiBmb290ZXJNYXBBZGRyZXNzZXMmJjAhPWZvb3Rlck1hcEFkZHJlc3Nlcy5sZW5ndGh8fCQoIiNtdWx0aS1kZWFsZXItbWFwIikuaGlkZSgpOyQoJyNtdWx0aS1hZGRyZXNzLXN1Ym1pc3Npb24gc2VsZWN0W25hbWU9Im11bHRpX2RlYWxlcl9zZW5kVG8iXScpLm9uKCJjaGFuZ2UiLGZ1bmN0aW9uKCl7dmFyIGs9JCh0aGlzKS5maW5kKCI6c2VsZWN0ZWQiKTtrLmxlbmd0aCYmZ29vZ2xlLm1hcHMuZXZlbnQudHJpZ2dlcihrLmRhdGEoIm1hcmtlciIpLCJjbGljayIpfSl9fSksJCgiI211bHRpLWRlYWxlci1tYXAiKS5zaG93KCksYi5pbml0KCkpO2Yub2ZmKCJmb2N1cyIpLm9uKCJmb2N1cyIsZnVuY3Rpb24oKXtmLnJlbW92ZUNsYXNzKCJ2YWxpZGl0eS1lcnJvbmVvdXMiKX0pOwp2YXIgcj1mdW5jdGlvbihrKXt2YXIgdD1hLmdldERlcCgpO2lmKCJKb2JPZmZlciI9PWEubWFpbElEKXN3aXRjaCgkKCIjam9ib2ZmZXJfZGVwYXJ0bWVudCIpLnZhbCgpKXtjYXNlICJTYWxlc25ldyI6dD0iTkVXIjticmVhaztjYXNlICJTYWxlc3VzZWQiOnQ9IlVTRUQiO2JyZWFrO2Nhc2UgIlNlcnZpY2UiOnQ9IlNFUlZJQ0UiO2JyZWFrO2Nhc2UgIlBhcnRzIjp0PSJQQVJUUyI7YnJlYWs7ZGVmYXVsdDp0PSJORVcifXZhciB1PSIiLGw9IiI7c3dpdGNoKHQpe2Nhc2UgIlVTRUQiOnU9ay5kYXRhKCJlbWFpbHVzZWQiKTtsPWsuZGF0YSgiZW1haWxhZGZ1c2VkIik7YnJlYWs7Y2FzZSAiU0VSVklDRSI6dT1rLmRhdGEoImVtYWlsc2VydmljZSIpO2w9ay5kYXRhKCJlbWFpbGFkZnNlcnZpY2UiKTticmVhaztjYXNlICJQQVJUUyI6dT1rLmRhdGEoImVtYWlscGFydHMiKXx8ay5kYXRhKCJlbWFpbHNlcnZpY2UiKTtsPWsuZGF0YSgiZW1haWxhZGZwYXJ0cyIpfHxrLmRhdGEoImVtYWlsYWRmc2VydmljZSIpOwpicmVhaztjYXNlICJGSU5BTkNFIjp1PWsuZGF0YSgiZW1haWxmaW5hbmNlIiksbD1rLmRhdGEoImVtYWlsYWRmZmluYW5jZSIpfWEuc2VuZFRvPXV8fGsuZGF0YSgiZW1haWwiKXx8ay5kYXRhKCJlbWFpbHVzZWQiKTthLnNlbGVjdGVkU2VuZFRvPXV8fGsuZGF0YSgiZW1haWwiKXx8ay5kYXRhKCJlbWFpbHVzZWQiKTthLnNlbmRUb0FERkZvcm1hdD1sfHxrLmRhdGEoImVtYWlsYWRmIil8fGsuZGF0YSgiZW1haWxhZGZ1c2VkIik7YS5zZWxlY3RlZFNlbmRUb0FERkZvcm1hdD1sfHxrLmRhdGEoImVtYWlsYWRmIil8fGsuZGF0YSgiZW1haWxhZGZ1c2VkIik7YS5oYXNTZWxlY3RlZE11bHRpQWRkcmVzcz0hMDthLmRlYWxlcmlkPWsuZGF0YSgiZGVhbGVyaWQiKTthLnNldE11bHRpRGVhbGVyQm9keShrLnRleHQoKS50cmltKCksYS5zZW5kVG8pO2s9e3NlbmRUbzphLnNlbmRUbyxzZWxlY3RlZFNlbmRUbzphLnNlbGVjdGVkU2VuZFRvLHNlbmRUb0FERkZvcm1hdDphLnNlbmRUb0FERkZvcm1hdCwKc2VsZWN0ZWRTZW5kVG9BREZGb3JtYXQ6YS5zZWxlY3RlZFNlbmRUb0FERkZvcm1hdCxkZWFsZXJOYW1lOmsudGV4dCgpLnRyaW0oKSxkZWFsZXJpZDprLmRhdGEoImRlYWxlcmlkIil9O3Nlc3Npb25TdG9yYWdlLnNldEl0ZW0oImRlYWxlclNlbGVjdFZhbHVlcyIsSlNPTi5zdHJpbmdpZnkoaykpfTskKCIjbXV0bGlBZGRyZXNzU3VibWl0Iikub2ZmKCJjbGljayIpLm9uKCJjbGljayIsZnVuY3Rpb24oKXtpZigiIj09PWYudmFsKCkpZi5hZGRDbGFzcygidmFsaWRpdHktZXJyb25lb3VzIiksaC5hZGRDbGFzcygidmFsaWRpdHktZXJyb25lb3VzIik7ZWxzZXt2YXIgaz1mLmZpbmQoIjpzZWxlY3RlZCIpO3Ioayk7JCgiLnJldmVhbC1tb2RhbC1iZyIpLmNzcygiei1pbmRleCIsZSk7ZC50cmlnZ2VyKCJyZXZlYWw6Y2xvc2UiKTtjLmdvdG9OZXh0KCl9fSk7aWYoJCgiLm11bHRpLWFkZHJlc3Mtc3VibWlzc2lvbi1jbG9zZSIpLmxlbmd0aCkkKCIubXVsdGktYWRkcmVzcy1zdWJtaXNzaW9uLWNsb3NlIikub2ZmKCJjbGljayIpLm9uKCJjbGljayIsCmZ1bmN0aW9uKCl7TGVhZHMmJk9iamVjdC5rZXlzKExlYWRzKS5mb3JFYWNoKGZ1bmN0aW9uKGspeyJ1bmRlZmluZWQiIT09dHlwZW9mIExlYWRzW2tdLmxlYWRJZCYmTGVhZEhhbmRsZXIoKS5nZXRMZWFkKExlYWRzW2tdLmxlYWRJZCkuY2xvc2UoKX0pO3BvcHVwU3VwZXJ2aXNvciYmcG9wdXBTdXBlcnZpc29yLnBvcHVwcyYmcG9wdXBTdXBlcnZpc29yLnBvcHVwcy5mb3JFYWNoKGZ1bmN0aW9uKGspe2smJnR5cGVvZiBrLmlzQWN0aXZlKCkmJmsuY2FuY2VsKCl9KTskKCIucmV2ZWFsLW1vZGFsLWJnIikuY3NzKCJ6LWluZGV4IixlKTtkLnRyaWdnZXIoInJldmVhbDpjbG9zZSIpfSk7aWYoIiIhPT1hLm1ha2UmJm11bHRpRGVhbGVyU2VsZWN0JiYoYj1tdWx0aURlYWxlclNlbGVjdC5maWx0ZXIoZiksYi5ieU1ha2UoYS5tYWtlKSxiPWIuaGFzT25seU9uZSgpKSlyZXR1cm4gcihiKSxjLmdvdG9OZXh0KCk7aC5sZW5ndGgmJihiPWguZmluZCgiYnV0dG9uIikudG9BcnJheSgpLGIubGVuZ3RoJiYKKGI9ZnVuY3Rpb24oayl7Zm9yKGxldCB0PWsubGVuZ3RoLTE7MDx0O3QtLSl7Y29uc3QgdT1NYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqKHQrMSkpO1trW3RdLGtbdV1dPVtrW3VdLGtbdF1dfXJldHVybiBrfShiKSxoLmZpbmQoImJ1dHRvbiIpLnJlbW92ZSgpLGguYXBwZW5kKGIpKSk7ZC5yZXZlYWwoe2FuaW1hdGlvbjoiZmFkZUFuZFBvcCIsYW5pbWF0aW9uc3BlZWQ6MzAwLGNsb3Nlb25iYWNrZ3JvdW5kY2xpY2s6ITEsZGlzbWlzc21vZGFsY2xhc3M6ImNsb3NlLXJldmVhbC1tb2RhbDIiLGNsb3Nlb25lc2NhcGU6ITF9KTtlPTExMTI8ZT9lOiQoIi5yZXZlYWwtbW9kYWwtYmciKS5jc3MoInotaW5kZXgiKTskKCIucmV2ZWFsLW1vZGFsLWJnIikuY3NzKCJ6LWluZGV4IixwYXJzZUludChkLmNzcygiei1pbmRleCIpKS0xKX0sc2V0RGVhbGVyU2VsZWN0RW1haWxzOmZ1bmN0aW9uKCl7dmFyIGI9c2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgiZGVhbGVyU2VsZWN0VmFsdWVzIik7aWYoYiYmCihiPUpTT04ucGFyc2UoYiksJCgnI211bHRpLWFkZHJlc3Mtc3VibWlzc2lvbiAuZGVhbGVyLXNlbGVjdC13cmFwcGVyIFtuYW1lPSJtdWx0aV9kZWFsZXJfc2VuZFRvIl0nKSxhLmRlYWxlcmlkPWIuZGVhbGVyaWQsYj0kKCcjbXVsdGktYWRkcmVzcy1zdWJtaXNzaW9uIC5kZWFsZXItc2VsZWN0LXdyYXBwZXIgc2VsZWN0W25hbWU9Im11bHRpX2RlYWxlcl9zZW5kVG8iXSBvcHRpb25bZGF0YS1kZWFsZXJpZD0iJythLmRlYWxlcmlkKyciXScpKSl7dmFyIGM9YS5nZXREZXAoKTtpZigiSm9iT2ZmZXIiPT1hLm1haWxJRClzd2l0Y2goJCgiI2pvYm9mZmVyX2RlcGFydG1lbnQiKS52YWwoKSl7Y2FzZSAiU2FsZXNuZXciOmM9Ik5FVyI7YnJlYWs7Y2FzZSAiU2FsZXN1c2VkIjpjPSJVU0VEIjticmVhaztjYXNlICJTZXJ2aWNlIjpjPSJTRVJWSUNFIjticmVhaztjYXNlICJQYXJ0cyI6Yz0iUEFSVFMiO2JyZWFrO2RlZmF1bHQ6Yz0iTkVXIn12YXIgZD0iIixmPSIiO3N3aXRjaChjKXtjYXNlICJVU0VEIjpkPQpiLmRhdGEoImVtYWlsdXNlZCIpO2Y9Yi5kYXRhKCJlbWFpbGFkZnVzZWQiKTticmVhaztjYXNlICJTRVJWSUNFIjpkPWIuZGF0YSgiZW1haWxzZXJ2aWNlIik7Zj1iLmRhdGEoImVtYWlsYWRmc2VydmljZSIpO2JyZWFrO2Nhc2UgIlBBUlRTIjpkPWIuZGF0YSgiZW1haWxwYXJ0cyIpfHxiLmRhdGEoImVtYWlsc2VydmljZSIpO2Y9Yi5kYXRhKCJlbWFpbGFkZnBhcnRzIil8fGIuZGF0YSgiZW1haWxhZGZzZXJ2aWNlIik7YnJlYWs7Y2FzZSAiRklOQU5DRSI6ZD1iLmRhdGEoImVtYWlsZmluYW5jZSIpLGY9Yi5kYXRhKCJlbWFpbGFkZmZpbmFuY2UiKX1hLnNlbmRUbz1kfHxiLmRhdGEoImVtYWlsIil8fGIuZGF0YSgiZW1haWx1c2VkIik7YS5zZWxlY3RlZFNlbmRUbz1kfHxiLmRhdGEoImVtYWlsIil8fGIuZGF0YSgiZW1haWx1c2VkIik7YS5zZW5kVG9BREZGb3JtYXQ9Znx8Yi5kYXRhKCJlbWFpbGFkZiIpfHxiLmRhdGEoImVtYWlsYWRmdXNlZCIpO2Euc2VsZWN0ZWRTZW5kVG9BREZGb3JtYXQ9CmZ8fGIuZGF0YSgiZW1haWxhZGYiKXx8Yi5kYXRhKCJlbWFpbGFkZnVzZWQiKTthLmhhc1NlbGVjdGVkTXVsdGlBZGRyZXNzPSEwfX0saGFuZGxlU2VuZEZhaWx1cmU6ZnVuY3Rpb24oYixjKXthLmxvZ0Zvcm1SZXF1ZXN0KCJGb3JtU3VibWl0dGVkRW1haWxOb3RTZW50IixhLm1haWxJRCxiKTthLnBhcnRpYWw9ITE7YS5sYXN0Q2hlY2tzdW09ITE7Yj0iIjt0cnl7Yj1qc19kMmNfZ2V0X3ZhbCgiRU1BSUxfRkFJTF9NRVNTQUdFIil9Y2F0Y2goZCl7fWJ8fChiPSJUaGVyZSB3YXMgYSBwcm9ibGVtIHNlbmRpbmcgeW91ciBtZXNzYWdlLiBQbGVhc2UgdHJ5IGFnYWluLiIpO2FsZXJ0KGM\/YisiXG4iK2M6Yik7alF1ZXJ5KCJib2R5IikudHJpZ2dlcigiZW1haWxIYW5kbGVyLmVtYWlsU2VudCIse21haWxJRDphLm1haWxJRCxzdWNjZXNzOiExLGVycm9yOmN8fCIifSk7aWYoImZ1bmN0aW9uIj09dHlwZW9mIGEuY2FsbGJhY2spdHJ5e2EuY2FsbGJhY2soITEpfWNhdGNoKGQpe31hLmNhbGxiYWNrPQpudWxsfSxyZWFkeVRvU2VuZDpmdW5jdGlvbigpe3ZhciBiPWEuY3JlYXRlQ2hlY2tzdW0oKTtpZihhLmxhc3RDaGVja3N1bT09YikiZnVuY3Rpb24iPT10eXBlb2YgYS5vbkR1cGxpY2F0ZVNlbmQ\/YS5vbkR1cGxpY2F0ZVNlbmQuY2FsbCgpOiJ1bmRlZmluZWQiIT09dHlwZW9mIGRlYnVnJiZkZWJ1ZygiQ1JDIE1hdGNoIixhLmxhc3RDaGVja3N1bSxiKTtlbHNle2EubGFzdENoZWNrc3VtPWI7JCgnaW5wdXRbZGF0YS1mb3J2YXI9Ik9WRVJXUklUVEVSREVBTEVSIl0nKS5sZW5ndGgmJiIiIT0kKCdpbnB1dFtkYXRhLWZvcnZhcj0iT1ZFUldSSVRURVJERUFMRVIiXScpLnZhbCgpJiYkKCdpbnB1dFtkYXRhLWZvcnZhcj0iREVBTEVSIl0nKS5sZW5ndGgmJiQoJ2lucHV0W2RhdGEtZm9ydmFyPSJPVkVSV1JJVFRFUkRFQUxFUiJdJykudmFsKCkhPSQoJ2lucHV0W2RhdGEtZm9ydmFyPSJERUFMRVIiXScpLnZhbCgpJiYoYj0kKCJib2R5IikuaGFzQ2xhc3MoIkZSRU5DSCIpPyJDb25jZXNzaW9uIG\/vv70gZXN0IHNpdHXvv70gbGUgdu+\/vWhpY3VsZTogIjoKIkRlYWxlciB3aGVyZSB0aGUgdmVoaWNsZSBpcyBsb2NhdGVkOiAiLGIrPSQoJ2lucHV0W2RhdGEtZm9ydmFyPSJPVkVSV1JJVFRFUkRFQUxFUiJdJykudmFsKCksYS5ib2R5PWEuYm9keS5yZXBsYWNlKCJ7JERFQUxFUl9TRU5EVE99IixiKSk7MDwkKCIjaXNtb2JpbGUiKS5sZW5ndGgmJihhLmlzbW9iaWxlc2l0ZT0iWUVTIik7aWYoMD09YS5zdWJqZWN0Lmxlbmd0aHx8MD09YS5ib2R5Lmxlbmd0aClyZXR1cm4hMTthLmluamVjdEN0YUNvbXBsZXRlZERhdGEoKTtqc29uT2JqZWN0PWEuZ2V0SnNvbk9iamVjdCgpO2I9bnVsbDtiPUpTT04uc3RyaW5naWZ5KGpzb25PYmplY3QpO3ZhciBjPWEucG9wdXBPZmZlclR5cGU7Yj17anNvbjpifTtpZihhLnBhcnRpYWwpYi5wYXJ0aWFsPSEwO2Vsc2V7InVuZGVmaW5lZCIhPXR5cGVvZiBndGFnJiZ3aW5kb3cuZDJjX2F3Y0lkJiZ3aW5kb3cuZDJjX2F3Y0xhYmVsJiYoImxpdmUiPT1kZXBsb3ltZW50VHlwZS50b0xvd2VyQ2FzZSgpP2d0YWcoImV2ZW50IiwKImNvbnZlcnNpb24iLHtzZW5kX3RvOmQyY19hd2NJZCsiLyIrZDJjX2F3Y0xhYmVsfSk6Y29uc29sZS5sb2coImd0YWcoJ2V2ZW50JywnY29udmVyc2lvbicsIHsgJ3NlbmRfdG8nOiAiK2QyY19hd2NJZCsiLyIrZDJjX2F3Y0xhYmVsKyIgfSk7IikpO3ZhciBkPXttYWlsSUQ6YS5tYWlsSUQsbWFrZTphLm1ha2UsbW9kZWw6YS5tb2RlbCx5ZWFyOmEueWVhcix2aW46YS52aW4sY29uZGl0aW9uOmEuY29uZGl0aW9uLGRlcGFydG1lbnQ6YS5kZXBhcnRtZW50LHRyYWRlaW46YS50cmFkZWluLHBvcHVwT2ZmZXJUeXBlOmEucG9wdXBPZmZlclR5cGUsYm9keVR5cGU6YS52ZWhpY2xlVHlwZSxzYWxlc0RlcHQ6YS5zYWxlc0RlcHQscG9wdXBEaXY6YS5wb3B1cGRpdixpc0NUQTphLmlzQ1RBLGJ1dHRvblRleHQ6YS5idXR0b25UZXh0fTtqUXVlcnkoImJvZHkiKS50cmlnZ2VyKCJlbWFpbEhhbmRsZXIuc3VibWl0IixkKX0kKCIudWktbG9hZGVyLWJhY2tncm91bmQiKS5zaG93KCk7c2V0VGltZW91dChmdW5jdGlvbigpeyQoIi51aS1sb2FkZXItYmFja2dyb3VuZCIpLmhpZGUoKX0sCjVFMyk7JCgnaW5wdXRbbmFtZT0ibGVhZF9kZXBhcnRtZW50Il0nKS52YWwoanNvbk9iamVjdC5kZXBhcnRtZW50KTskKCdpbnB1dFtuYW1lPSJsZWFkVHlwZSJdJykudmFsKGEuc3ViamVjdC5yZXBsYWNlKC9bXG5ccl0vZywiICIpKTsiIiE9YS5sZWFkVGl0bGVUZXh0JiYoJCgnaW5wdXRbbmFtZT0ibGVhZFR5cGUiXScpLnZhbChhLmxlYWRUaXRsZVRleHQucmVwbGFjZSgvW1xuXHJdL2csIiAiKSksYS5sZWFkVGl0bGVUZXh0PSIiKTskKCdpbnB1dFtuYW1lPSJwYWdlSUQiXScpLnZhbCgkKCIjUEFHRUlEIikudmFsKCkpOyQoJ2lucHV0W25hbWU9ImN1cnJlbnRVUkwiXScpLnZhbCh3aW5kb3cubG9jYXRpb24uaHJlZik7JCgnaW5wdXRbbmFtZT0iaXNGdWxsV2lkdGgiXScpLnZhbCgkKCIjaXNGdWxsV2lkdGhQYWdlTmV3VkRQIikudmFsKCkpOyQoJ2lucHV0W25hbWU9ImRlYWxlck5hbWUiXScpLnZhbCgkKCIjbmV3VkRQRGVhbGVyTmFtZSIpLnZhbCgpKTskKCdpbnB1dFtuYW1lPSJidXR0b25Qb3NpdGlvbiJdJykudmFsKCQoIiNuZXdWRFBCdXR0b25Qb3NpdGlvbiIpLnZhbCgpKTsKJCgnaW5wdXRbbmFtZT0iaXNNb2JpbGVOZXdWRFAiXScpLnZhbCgkKCIjaXNtb2JpbGUiKS52YWwoKSk7JCgnaW5wdXRbbmFtZT0iaXNDb25maXJtUG9wdXAiXScpLnZhbCgwKTsiY3JlZGl0U2NvcmVDb25maXJtUG9wdXBDb250YWluZXIiPT1hLnBvcHVwZGl2JiYkKCdpbnB1dFtuYW1lPSJpc0NvbmZpcm1Qb3B1cCJdJykudmFsKDEpOyQoJ2lucHV0W25hbWU9ImNvbmZpcm1fZW1haWwiXScpLnZhbChhLnVzZXJFbWFpbCk7JCgnaW5wdXRbbmFtZT0iY29uZmlybV9maXJzdF9uYW1lIl0nKS52YWwoYS51c2VyRmlyc3ROYW1lKTskKCdpbnB1dFtuYW1lPSJjb25maXJtX2xhc3RfbmFtZSJdJykudmFsKGEudXNlckxhc3ROYW1lKTskKCdpbnB1dFtuYW1lPSJjb25maXJtX3Bob25lX251bWJlciJdJykudmFsKGEudXNlclBob25lKTtmb3JtRmlsbC5zYXZlKHtlbWFpbDphLnVzZXJFbWFpbCxmaXJzdE5hbWU6YS51c2VyRmlyc3ROYW1lLGxhc3ROYW1lOmEudXNlckxhc3ROYW1lLHBob25lOmEudXNlclBob25lLApwb3N0YWw6YS51c2VyUG9zdGFsfSk7JC5hamF4KHt0eXBlOiJQT1NUIix1cmw6Ii9tYWlsL3NlbmRNYWlsRXgucGhwIixkYXRhOmIsYmVmb3JlU2VuZDpmdW5jdGlvbihmKXtmJiZmLm92ZXJyaWRlTWltZVR5cGUmJmYub3ZlcnJpZGVNaW1lVHlwZSgiYXBwbGljYXRpb24vanNvbjtjaGFyc2V0PVVURi04Iik7dHJ5e2xldCBoPSQoIm1ldGFbbmFtZT0nY3NyZi1kb21haW4tY2hlY2snXSIpO2gubGVuZ3RoJiZmLnNldFJlcXVlc3RIZWFkZXIoImNzcmYtZG9tYWluLWNoZWNrIixoLmF0dHIoImNvbnRlbnQiKSl9Y2F0Y2goaCl7Y29uc29sZS5lcnJvcihmKX19LHN1Y2Nlc3M6ZnVuY3Rpb24oZil7YS5sb2dGb3JtUmVxdWVzdCgiRm9ybVN1Ym1pdHRlZCIsYS5tYWlsSUQsYyk7YS5wYXJ0aWFsPSExO2EubGFzdENoZWNrc3VtPSExO3ZhciBoPXt9O3RyeXtoPSJzdHJpbmciPT10eXBlb2YgZj9KU09OLnBhcnNlKGYpOmZ9Y2F0Y2gobSl7InVuZGVmaW5lZCIhPT10eXBlb2YgZGVidWcmJmRlYnVnKCJlbWFpbEhhbmRsZXI6IG1hbGZvcm1lZCBKU09OIHJlc3BvbnNlIiwKZixtKTthLmhhbmRsZVNlbmRGYWlsdXJlKGMsbSYmbS5tZXNzYWdlKTtyZXR1cm59YS5fX2xhc3RSZXR1cm49aDtpZigib2JqZWN0Ij09dHlwZW9mIGh8fCJ1bmRlZmluZWQiIT10eXBlb2YgaC5sZWFkaWQpYS5fX2xlYWRpZD1oLmxlYWRpZDsiZnVuY3Rpb24iIT10eXBlb2YgYS5jYWxsYmFjayYmKGEuY2FsbGJhY2s9ZnVuY3Rpb24oKXt9KTtqUXVlcnkoImJvZHkiKS50cmlnZ2VyKCJlbWFpbEhhbmRsZXIuZW1haWxTZW50Iix7bWFpbElEOmEubWFpbElELG1ha2U6YS5tYWtlLG1vZGVsOmEubW9kZWwseWVhcjphLnllYXIsdmluOmEudmluLGNvbmRpdGlvbjphLmNvbmRpdGlvbixkZXBhcnRtZW50OmEuZGVwYXJ0bWVudCx0cmFkZWluOmEudHJhZGVpbixzdWNjZXNzOiJTVUNDRVNTIj09PWguc3RhdHVzLGRldGFpbDp7Y29uZmlybV9maXJzdF9uYW1lOmEudXNlckZpcnN0TmFtZSxjb25maXJtX2xhc3RfbmFtZTphLnVzZXJMYXN0TmFtZSxjb25maXJtX2VtYWlsOmEudXNlckVtYWlsLApjb25maXJtX3Bob25lX251bWJlcjphLnVzZXJQaG9uZSx5ZWFyOmEueWVhcixtYWtlOmEubWFrZSxtb2RlbDphLm1vZGVsLGlkOmgubGVhZGlkLHZpbjphLnZpbixjb25kaXRpb246YS5jb25kaXRpb24sdmVyc2lvbjphLnZlcnNpb258fCIiLE5JVjphLnZpbix0cmltOmEudHJpbSxsZWFkVHlwZTphLmxlYWRUeXBlfHwiIixtYWlsSWQ6YS5tYWlsSUR9fSk7IlNVQ0NFU1MiPT1oLnN0YXR1cz8oYS5jYWxsYmFjayghMCksYS5tYWluUHJvbW8mJihmPW5ldyBDdXN0b21FdmVudCgidHJhY2tzdGVwLmNvbXBsZXRlIix7ZGV0YWlsOntzdGVwSWQ6Ik1haW5Qcm9tb0J0biJ9fSksZG9jdW1lbnQuZGlzcGF0Y2hFdmVudChmKSkpOmEuY2FsbGJhY2soITEpO2EuY2FsbGJhY2s9bnVsbH0sZXJyb3I6ZnVuY3Rpb24oZixoLG0pe2YmJjQwND09PWYuc3RhdHVzfHxhLmhhbmRsZVNlbmRGYWlsdXJlKGMsbXx8aHx8IiIpfSxzdGF0dXNDb2RlOns0MDQ6ZnVuY3Rpb24oKXthLmhhbmRsZVNlbmRGYWlsdXJlKGMsCiI0MDQiKX19fSk7YS5wb3B1cE9mZmVyVHlwZT0iIn19LGluamVjdEN0YUNvbXBsZXRlZERhdGE6ZnVuY3Rpb24oKXtsZXQgYj0iIixjPSIiO3ZhciBkPSIiO3RyeXt2YXIgZj0idW5kZWZpbmVkIiE9PXR5cGVvZiBjbGllbnRTdG9yYWdlP2NsaWVudFN0b3JhZ2UuZ2V0KCJiYW5kcF9jb25maWciLCJsb2NhbCIpOmxvY2FsU3RvcmFnZS5nZXRJdGVtKCJiYW5kcF9jb25maWciKX1jYXRjaChtKXtmPW51bGx9dmFyIGg9InVuZGVmaW5lZCIhPT10eXBlb2YgZiYmbnVsbCE9PWY\/SlNPTi5wYXJzZShkZWNvZGVVUklDb21wb25lbnQoZikpOkpTT04ucGFyc2UoInt9Iik7Zj0obSxyKT0+e3I9cnx8ITE7bGV0IGs9bS5vcHRpb25zLnJlZHVjZSgoQSx6KT0+QStgJHt6fTxicj5gLCIiKSx0PSJFTkdMSVNIIj09JCgiI2FjdGl2ZXNpdGVsYW5ndWFnZSIpLnZhbCgpPyJWZWhpY2xlIGRldGFpbHMiOiJWw6loaWN1bGUgY29uZmlndXLDqSIsdT0iRU5HTElTSCI9PSQoIiNhY3RpdmVzaXRlbGFuZ3VhZ2UiKS52YWwoKT8KIkZpbmFuY2luZyBkZXRhaWxzIjoiRMOpdGFpbHMgZHUgZmluYW5jZW1lbnQiLGwscSx3O3I9cj8iIjpgCgkJCQkJCTx1PiR7dX06PC91Pjxicj4KCQkJCQkJJHtudWxsPT1tP3ZvaWQgMDpudWxsPT0obD1tLnBheW1lbnQpP3ZvaWQgMDpsLnRvdGFsfTxicj4KCQkJCQkJJHtudWxsPT1tP3ZvaWQgMDpudWxsPT0ocT1tLnBheW1lbnQpP3ZvaWQgMDpxLnJhdGV9PGJyPgoJCQkJCQkke251bGw9PW0\/dm9pZCAwOm51bGw9PSh3PW0ucGF5bWVudCk\/dm9pZCAwOncuYW1vdW50fTxicj48YnI+CgkJCQkJYDtsZXQgcCx2O3JldHVybmAKCQkJCQk8dT4ke3R9OjwvdT48YnI+CgkJCQkJJHtudWxsPT1tP3ZvaWQgMDptLm1vZGVsfTxicj4KCQkJCQlFeHQ6ICR7KG51bGw9PW0\/dm9pZCAwOm51bGw9PShwPW0uY29sb3JzKT92b2lkIDA6cC5leHQpfHwiIn0sIEludDogJHsobnVsbD09bT92b2lkIDA6bnVsbD09KHY9bS5jb2xvcnMpP3ZvaWQgMDp2LmludCl8fCIifTxicj4KCQkJCQkkeyhudWxsPT1tP3ZvaWQgMDptLmRyaXZlVHJhaW4pfHwiIn08YnI+CgkJCQkJJHtrfTxicj4KCQkJCQkke3J9CgkJCQlgfTtoLmJhbmRwJiYoYj1mKGguYmFuZHApLnJlcGxhY2UoLyhcdHxcbikqL2csIiIpKTtpZihDb29raWVzLmdldCgiY3RhX2RhdGFfdmFsaWQiKSl7ZD1KU09OLnBhcnNlKF9sb2NhbFN0b3JhZ2VHZXQoInJldGFpbF90cmFja19kYXRhIil8fCJ7fSIpO2g9ISFkLnBheW1lbnQ7ZC5iYW5kcCYmKGQuYmFuZHAub3B0aW9ucz1kLmJhbmRwLm9wdGlvbnN8fFtdLGI9ZihkLmJhbmRwLGgpKTtpZihoKXtsZXQgbSxyLGs7Yz1gCgkJCQkJCTx1PiR7IkVOR0xJU0giPT0kKCIjYWN0aXZlc2l0ZWxhbmd1YWdlIikudmFsKCk\/IlZlaGljbGUgZGV0YWlscyI6IkTDqXRhaWxzIGR1IGZpbmFuY2VtZW50In06PC91Pjxicj4KCQkJCQkJJHtudWxsPT1kP3ZvaWQgMDpudWxsPT0obT1kLnBheW1lbnQpP3ZvaWQgMDptLmxpc3RQcmljZX08YnI+CgkJCQkJCSR7bnVsbD09ZD92b2lkIDA6bnVsbD09KHI9ZC5wYXltZW50KT92b2lkIDA6ci5yYXRlfTxicj4KCQkJCQkJJHtudWxsPT1kP3ZvaWQgMDpudWxsPT0oaz1kLnBheW1lbnQpP3ZvaWQgMDprLnBheW1lbnR9PGJyPgoJCQkJCWB9ZD0iXG5cdFx0XHRcdFx0PGJyPlxuXHRcdFx0XHRcdDxicj5cblx0XHRcdFx0XHQ8dT48c3Ryb25nPlRyYW5zYWN0aW9uIEJ1aWxkZXI6PC9zdHJvbmc+PC91PlxuXG5cdFx0XHRcdCJ9aWYoYnx8YylhLmJvZHkrPShkK2AKCQkJCQk8YnI+CgkJCQkJPGJyPgoJCQkJCSR7Yn0KCQkJCQkke2N9CgkJCQlgKS5yZXBsYWNlKC9ccj9cbnxcci9nLCIiKX0sZGVjb2RlVVJMUmVjdXJzaXZlbHk6ZnVuY3Rpb24oYil7cmV0dXJuLTEhPWIuaW5kZXhPZigiJSIpP2EuZGVjb2RlVVJMUmVjdXJzaXZlbHkoZGVjb2RlVVJJQ29tcG9uZW50KHVuZXNjYXBlKGIpKSk6Yn0sdmFsaWRhdGVFbWFpbDpmdW5jdGlvbihiKXtyZXR1cm4gJC5hamF4KHt0eXBlOiJHRVQiLHVybDoiL2FqYXgvdmFsaWRhdGVFbWFpbEFjY291bnQ\/d3N3aWR0aD0wJmVtYWlsPSIrYixhc3luYzohMX0pfSxnZXRVVUlEOmZ1bmN0aW9uKCl7cmV0dXJuInVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3cuYWN0aXZlUHJvZmlsZUlEJiZudWxsIT13aW5kb3cuYWN0aXZlUHJvZmlsZUlEP3dpbmRvdy5hY3RpdmVQcm9maWxlSUQ6InVuZGVmaW5lZCIhPXR5cGVvZiBhY3RpdmVVc2VyUHJvZmlsZU1uZyYmbnVsbCE9YWN0aXZlVXNlclByb2ZpbGVNbmcudWlkP2FjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZDoKInVuZGVmaW5lZCIhPXR5cGVvZiBDb29raWVzJiYidW5kZWZpbmVkIiE9Q29va2llcy5nZXQoInV1aWQiKSYmbnVsbCE9Q29va2llcy5nZXQoInV1aWQiKT9Db29raWVzLmdldCgidXVpZCIpOiIifSxzZXRDb250YWN0SW5mbzpmdW5jdGlvbigpe2lmKCJ1bmRlZmluZWQiIT09dHlwZW9mICQuZm4uZ29vZ2xlUGxhY2VzKXt2YXIgYj0kKCdpbnB1dFtkYXRhLWdvb2dsZS1wbGFjZXM9InRydWUiXScpOzAhPWIubGVuZ3RoJiYoYj1iLmdvb2dsZVBsYWNlcygiZ2V0QWRkcmVzcyIpLCIiIT1iLmNpdHkmJiIiPT1hLmNvbnRhY3RDaXR5JiYoYS5jb250YWN0Q2l0eT1iLmNpdHkubG9uZ19uYW1lKSwiIiE9Yi5zdHJlZXQmJiIiIT1iLnN0cmVldF9udW1iZXImJiIiPT1hLmNvbnRhY3RBZGRyZXNzJiYoYS5jb250YWN0QWRkcmVzcz1iLnN0cmVldF9udW1iZXIubG9uZ19uYW1lKyIgIitiLnN0cmVldC5sb25nX25hbWUpLCIiIT1iLnByb3ZpbmNlJiYiIj09YS5jb250YWN0UHJvdmluY2UmJihhLmNvbnRhY3RQcm92aW5jZT0KYi5wcm92aW5jZS5zaG9ydF9uYW1lKSwiIiE9Yi5wb3N0YWwmJiIiPT1hLmNvbnRhY3RaaXAmJihhLmNvbnRhY3RaaXA9Yi5wb3N0YWwubG9uZ19uYW1lKSl9fSxnZXRMb25nRGF0ZVRvU2hvcnRGb3JtYXQ6ZnVuY3Rpb24oYil7aWYoIiI9PWIpcmV0dXJuIGI7Yj1iLnRvTG93ZXJDYXNlKCk7dmFyIGM9e2phbnZpZXI6ImphbnVhcnkiLCJmw6l2cmllciI6ImZlYnJ1YXJ5IixtYXJzOiJtYXJjaCIsYXZyaWw6ImFwcmlsIixtYWk6Im1heSIsanVpbjoianVuZSIsanVpbGxldDoianVseSIsImFvw7t0IjoiYXVndXN0IixzZXB0ZW1icmU6InNlcHRlbWJlciIsb2N0b2JyZToib2N0b2JlciIsbm92ZW1icmU6Im5vdmVtYmVyIiwiZMOpY2VtYnJlIjoiZGVjZW1iZXIifTtiPWIucmVwbGFjZSgvXGJcUytcYi9pZyxmdW5jdGlvbihkKXt2YXIgZj1kLnRvTG93ZXJDYXNlKCk7cmV0dXJuIGNbZl0\/Y1tmXTpkfSk7cmV0dXJuKG5ldyBEYXRlKGIpKS5mb3JtYXQoInl5eXktTU0tZGQiKX0sZ2V0RW1haWxDb25zZW50OmZ1bmN0aW9uKGIpe3ZhciBjPQpuZXcgRGF0ZTthLnNldENvbnRhY3RJbmZvKCk7dmFyIGQ9YS5jb250YWN0QmlydGg\/YS5jb250YWN0QmlydGg6YS5nZXRMb25nRGF0ZVRvU2hvcnRGb3JtYXQoYS5iaXJ0aGRhdGUpOyQoIi51aS1sb2FkZXItYmFja2dyb3VuZCIpLnNob3coKTtnZXREYXRhPXtlbWFpbDphLnVzZXJFbWFpbCxwaG9uZTphLnVzZXJQaG9uZSxuYW1lOmEudXNlckZpcnN0TmFtZSsiICIrYS51c2VyTGFzdE5hbWUsYWRkcjphLmNvbnRhY3RBZGRyZXNzP2EuY29udGFjdEFkZHJlc3M6YS51c2VyQWRkcmVzcyxjaXR5OmEuY29udGFjdENpdHkscHJvdmluY2U6YS5jb250YWN0UHJvdmluY2UsemlwOmEuY29udGFjdFppcD9hLmNvbnRhY3RaaXA6YS51c2VyUG9zdGFsLG5hczphLmNvbnRhY3ROQVMsYmlydGg6ZCxzaXRlSUQ6JCgiI3NpdGVJRCIpLnZhbCgpLFVVSUQ6YS5nZXRVVUlEKCksdHM6Yy5nZXRUaW1lKCksbGFuZzokKCIjYWN0aXZlc2l0ZWxhbmd1YWdlIikudmFsKCksdXBkYXRlSW1wbGljaXQ6ITB9OwokLmFqYXgoe3R5cGU6IkdFVCIsdXJsOiIvYWpheC9nZXRFbWFpbENvbnNlbnRGcm9tQ1JNP3dzd2lkdGg9MCIsZGF0YTpnZXREYXRhLGRhdGFUeXBlOiJqc29uIn0pLmFsd2F5cyhmdW5jdGlvbihmLGgsbSl7Zj1mP2Y6e2hhc0NvbnNlbnQ6ITF9OyQoIi51aS1sb2FkZXItYmFja2dyb3VuZCIpLmhpZGUoKTt0cnl7InVuZGVmaW5lZCI9PXR5cGVvZiBmJiYidW5kZWZpbmVkIiE9PXR5cGVvZiBkZWJ1ZyYmZGVidWcoIioqKiogZXJyb3IgKioqKiIse2Vycm9yOiJObyBEYXRhIix0ZXh0U3RhdHVzOmgscnZhbHVlOmYsdjpnZXREYXRhLHQ6Ii9hamF4L2dldEVtYWlsQ29uc2VudEZyb21DUk0\/d3N3aWR0aD0wIn0pLFtbImNvbnNlbnRUeXBlIiwiY29uc2VudFR5cGUiXSxbImNvbnNlbnRFeHBpcmF0aW9uIiwiZXhwaXJhdGlvbiJdLFsiY29uc2VudERhdGUiLCJkYXRlIl0sWyJjb25zZW50RnJlcXVlbmN5IiwiZnJlcXVlbmN5Il0sClsiY29uc2VudERldGFpbHNGUiIsImRldGFpbHNGUkVOQ0giXSxbImNvbnNlbnREZXRhaWxzRU4iLCJkZXRhaWxzRU5HTElTSCJdLFsiZGV0YWlsc0RlZmF1bHRzIiwiZGV0YWlsc0RlZmF1bHRzIl0sWyJjb250YWN0SUQiLCJ1aWQiXV0ubWFwKGZ1bmN0aW9uKHIpe3ZhciBrPXJbMF07cj1yWzFdO2RlbGV0ZSB2b2lkIDA7YVtrXT12b2lkIDAhPWZbcl0\/ZltyXTphW2tdfSl9Y2F0Y2gocil7InVuZGVmaW5lZCIhPT10eXBlb2YgZGVidWcmJmRlYnVnKCIqKioqIGVycm9yICoqKioiLHtlcnJvcjpyLHRleHRTdGF0dXM6aCxydmFsdWU6Zix2OmdldERhdGEsdDoiL2FqYXgvZ2V0RW1haWxDb25zZW50RnJvbUNSTT93c3dpZHRoPTAifSl9YihmKX0pfSxiYW5kcExpbms6ZnVuY3Rpb24oYil7Yj1mdW5jdGlvbih0KXtyZXR1cm4gdC5yZXBsYWNlKC8tL2csIl8iKS5yZXBsYWNlKC8nL2csIiIpfTtpZigidW5kZWZpbmVkIj09dHlwZW9mIENvb2tpZXMuZ2V0KCJiYW5kcGxpbmsiKXx8Cm51bGw9PUNvb2tpZXMuZ2V0KCJiYW5kcGxpbmsiKXx8InVuZGVmaW5lZCI9PXR5cGVvZiBDb29raWVzLmdldCgic2Vzc2lkIil8fG51bGw9PUNvb2tpZXMuZ2V0KCJzZXNzaWQiKSlyZXR1cm4iIjt2YXIgYz1Db29raWVzLmdldCgiYmFuZHBsaW5rIiksZD1Db29raWVzLmdldCgic2Vzc2lkIik7aWYoMD5jLmluZGV4T2YoInx8fCIpKXJldHVybiIiO3ZhciBmPWMuc3BsaXQoInx8fCIpO2lmKDQ+Zi5sZW5ndGgpcmV0dXJuIiI7Yz0obmV3IFN0cmluZyhmWzBdKSkuc3BsaXQoIi8iKTt2YXIgaD1uZXcgU3RyaW5nKGZbMV0pLG09bmV3IFN0cmluZyhmWzJdKTtmPW5ldyBTdHJpbmcoZlszXSk7dmFyIHI9JCgiI3BvcHVwdHJpbSIpLmxlbmd0aCYmInskUE9QVVBUUklNfSIhPSQoIiNwb3B1cHRyaW0iKS52YWwoKT8kKCIjcG9wdXB0cmltIikudmFsKCk6IiIsaz0iPGEgaHJlZj0nIitkMmNtZWRpYS5nZXRIdHRwVGV4dCgpKyI6Ly8iK3dpbmRvdy5sb2NhdGlvbi5ob3N0bmFtZSskKCIjdHh0QnVpbGRBbmRQcmljZUZvbGRlclBhdGgiKS52YWwoKTsKIkVOR0xJU0giPT0kKCIjYWN0aXZlc2l0ZWxhbmd1YWdlIikudmFsKCk\/KHBhcnNlSW50KGNbMl0pLCQoIiNUWFRNT05USCIrcGFyc2VJbnQoY1sxXSkudG9TdHJpbmcoKSkudmFsKCksays9ZisiLSIrYihoKSsiLSIrYihtKSsiLmh0bWw\/c2lkPSIrZCsiJyB0YXJnZXQ9J19ibGFuayc+IitmKyIgIitoKyIgIittKyIgIityKyI8L2E+Iik6KCQoIiNUWFRNT05USCIrcGFyc2VJbnQoY1sxXSkudG9TdHJpbmcoKSkudmFsKCksays9YihoKSsiLSIrYihtKSsiLSIrZisiLmh0bWw\/c2lkPSIrZCsiJyB0YXJnZXQ9J19ibGFuayc+IitoKyIgIittKyIgIityKyIgIitmKyI8L2E+Iik7cmV0dXJuIGt9LGxvZ0Zvcm1SZXF1ZXN0OmZ1bmN0aW9uKGIsYyxkKXt2YXIgZj1NYXRoLmZsb29yKDk5OTk5OTkqTWF0aC5yYW5kb20oKSksaD0kKCIjdG9wc2l0ZWlkIikubGVuZ3RoPyQoIiN0b3BzaXRlaWQiKS52YWwoKToiMCIsbT0kKCIjdG9wY2FyaWQiKS5sZW5ndGgmJjA8JCgiI3RvcGNhcmlkIikudmFsKCkubGVuZ3RoPwokKCIjdG9wY2FyaWQiKS52YWwoKToiMCIscj1Db29raWVzLmdldCgidWlkIik\/Q29va2llcy5nZXQoInVpZCIpOiIwIixrPUNvb2tpZXMuZ2V0KCJ1dG1fc291cmNlIik\/Q29va2llcy5nZXQoInV0bV9zb3VyY2UiKToiMCIsdD1Db29raWVzLmdldCgidXRtX2NhbXBhaWduIik\/Q29va2llcy5nZXQoInV0bV9jYW1wYWlnbiIpOiIwIix1PUNvb2tpZXMuZ2V0KCJ1dG1fc291cmNlX3JldGFyZ2V0aW5nIik\/Q29va2llcy5nZXQoInV0bV9zb3VyY2VfcmV0YXJnZXRpbmciKToiMCIsbD1Db29raWVzLmdldCgidXRtX2NhbXBhaWduX3JldGFyZ2V0aW5nIik\/Q29va2llcy5nZXQoInV0bV9jYW1wYWlnbl9yZXRhcmdldGluZyIpOiIwIixxPSQoIiN0b3Bpc21vYmlsZSIpLmxlbmd0aCYmMT09JCgiI3RvcGlzbW9iaWxlIikudmFsKCk\/IllFUyI6Ik5PIix3PSQoIiNhY3RpdmVzaXRlbGFuZ3VhZ2UiKS5sZW5ndGg\/JCgiI2FjdGl2ZXNpdGVsYW5ndWFnZSIpLnZhbCgpOiJGUkVOQ0giLHA9dm9pZCAwIT09CmEmJnZvaWQgMCE9PWEucGhvbmVNYW5kYXRvcnk\/YS5waG9uZU1hbmRhdG9yeTowOyJ1bmRlZmluZWQiIT10eXBlb2YgZCYmZHx8KGQ9IjAiKTt0PXQucmVwbGFjZSgvXHQvZywiIikucmVwbGFjZSgvXG4vZywiIikucmVwbGFjZSgvXHIvZywiIikucmVwbGFjZUFsbCgiJTBBIiwiIikucmVwbGFjZUFsbCgiJTA5IiwiIikucmVwbGFjZUFsbCgiJTBCIiwiIikucmVwbGFjZUFsbCgiJTAwIiwiIikucmVwbGFjZUFsbCgiJTVDIiwiIikucmVwbGFjZUFsbCgiJTBEIiwiIik7az1rLnJlcGxhY2UoL1x0L2csIiIpLnJlcGxhY2UoL1xuL2csIiIpLnJlcGxhY2UoL1xyL2csIiIpLnJlcGxhY2VBbGwoIiUwQSIsIiIpLnJlcGxhY2VBbGwoIiUwOSIsIiIpLnJlcGxhY2VBbGwoIiUwQiIsIiIpLnJlcGxhY2VBbGwoIiUwMCIsIiIpLnJlcGxhY2VBbGwoIiU1QyIsIiIpLnJlcGxhY2VBbGwoIiUwRCIsIiIpO2I9Ii9wcm94eV9zYXViL2xvZ0Zvcm1SZXF1ZXN0LyIrZW5jb2RlVVJJQ29tcG9uZW50KGgpKwoiLyIrZW5jb2RlVVJJQ29tcG9uZW50KG0pKyIvIitlbmNvZGVVUklDb21wb25lbnQocikrIi8iK2VuY29kZVVSSUNvbXBvbmVudChrKSsiLyIrZW5jb2RlVVJJQ29tcG9uZW50KHQpKyIvIitlbmNvZGVVUklDb21wb25lbnQocSkrIi8iK2VuY29kZVVSSUNvbXBvbmVudCh3KSsiLyIrZW5jb2RlVVJJQ29tcG9uZW50KHUpKyIvIitlbmNvZGVVUklDb21wb25lbnQobCkrIi8iK2VuY29kZVVSSUNvbXBvbmVudChjKSsiLyIrZW5jb2RlVVJJQ29tcG9uZW50KGIpKyIvIitlbmNvZGVVUklDb21wb25lbnQoZCkrIi8iKyEhcCsiLyIrZW5jb2RlVVJJQ29tcG9uZW50KGYpKyIuZ2lmIjskKCJib2R5IikuYXBwZW5kKCI8aW1nIHN0eWxlPSd3aWR0aDoxcHg7aGVpZ2h0OjFweDtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjBweDt0b3A6MHB4Oycgc3JjPSciK2IrIicgYWx0PScnIC8+Iil9LGdldFVzZWRFbWFpbEZvck11bHRpcGxlRGVhbGVyczpmdW5jdGlvbigpe3ZhciBiPSJmciI7IkVOR0xJU0giPT0KJCgiI2FjdGl2ZXNpdGVsYW5ndWFnZSIpLnZhbCgpJiYoYj0iZW4iKTt1cmk9Ii8iK2IrIi9waHAvZ2V0RGVhbGVyc0VtYWlsVG8ucGhwP21ha2U9IithLm1ha2UrIiZtb2RlbD0iK2EubW9kZWwrIiZ5ZWFyPSIrYS55ZWFyKyImY2I9IitNYXRoLmZsb29yKDk5OTk5OTkqTWF0aC5yYW5kb20oKSk7JC5hamF4KHt1cmw6dXJpLGFzeW5jOiExLHN1Y2Nlc3M6ZnVuY3Rpb24oYyl7Yz1jLnNwbGl0KCJ8fHwiKTsidW5kZWZpbmVkIiE9dHlwZW9mIGNbMF0mJjA8Y1swXS5sZW5ndGgmJihhLnNlbmRUbz1jWzBdKTsidW5kZWZpbmVkIiE9dHlwZW9mIGNbMV0mJjA8Y1sxXS5sZW5ndGgmJihhLnNlbmRUb0FERkZvcm1hdD1jWzFdKX19KX0scHJlU2VuZEltcGxpY2l0OmZ1bmN0aW9uKCl7aWYoYS5wYXJ0aWFsKXJldHVybiExO2pzb25PYmplY3Q9YS5nZXRKc29uT2JqZWN0KCk7dmFyIGI9e2pzb246SlNPTi5zdHJpbmdpZnkoanNvbk9iamVjdCkscGFydGlhbDohMH07JC5hamF4KHt0eXBlOiJQT1NUIiwKdXJsOiIvbWFpbC9zZW5kTWFpbEV4LnBocCIsZGF0YTpiLGJlZm9yZVNlbmQ6ZnVuY3Rpb24oYyl7JCgnaW5wdXRbbmFtZT0ibGVhZF9kZXBhcnRtZW50Il0nKS52YWwoanNvbk9iamVjdC5kZXBhcnRtZW50KTskKCdpbnB1dFtuYW1lPSJsZWFkVHlwZSJdJykudmFsKGEuc3ViamVjdC5yZXBsYWNlKC9bXG5ccl0vZywiICIpKTskKCdpbnB1dFtuYW1lPSJwYWdlSUQiXScpLnZhbCgkKCIjUEFHRUlEIikudmFsKCkpOyQoJ2lucHV0W25hbWU9ImN1cnJlbnRVUkwiXScpLnZhbCh3aW5kb3cubG9jYXRpb24uaHJlZik7JCgnaW5wdXRbbmFtZT0iaXNGdWxsV2lkdGgiXScpLnZhbCgkKCIjaXNGdWxsV2lkdGhQYWdlTmV3VkRQIikudmFsKCkpOyQoJ2lucHV0W25hbWU9ImRlYWxlck5hbWUiXScpLnZhbCgkKCIjbmV3VkRQRGVhbGVyTmFtZSIpLnZhbCgpKTskKCdpbnB1dFtuYW1lPSJidXR0b25Qb3NpdGlvbiJdJykudmFsKCQoIiNuZXdWRFBCdXR0b25Qb3NpdGlvbiIpLnZhbCgpKTskKCdpbnB1dFtuYW1lPSJpc01vYmlsZU5ld1ZEUCJdJykudmFsKCQoIiNpc21vYmlsZSIpLnZhbCgpKTsKYyYmYy5vdmVycmlkZU1pbWVUeXBlJiZjLm92ZXJyaWRlTWltZVR5cGUoImFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD1VVEYtOCIpO3RyeXtsZXQgZD0kKCJtZXRhW25hbWU9J2NzcmYtZG9tYWluLWNoZWNrJ10iKTtkLmxlbmd0aCYmYy5zZXRSZXF1ZXN0SGVhZGVyKCJjc3JmLWRvbWFpbi1jaGVjayIsZC5hdHRyKCJjb250ZW50IikpfWNhdGNoKGQpe2NvbnNvbGUuZXJyb3IoYyl9fSxzdWNjZXNzOmZ1bmN0aW9uKGMpeyJ1bmRlZmluZWQiIT09dHlwZW9mIGRlYnVnJiZkZWJ1ZyhjKX0sZXJyb3I6ZnVuY3Rpb24oYyxkLGYpe2EubG9nRm9ybVJlcXVlc3QoIkZvcm1TdWJtaXR0ZWRFbWFpbE5vdFNlbnQiLGEubWFpbElELGEucG9wdXBPZmZlclR5cGUpOyJ1bmRlZmluZWQiIT09dHlwZW9mIGRlYnVnJiZkZWJ1ZygicHJlU2VuZEltcGxpY2l0IGZhaWxlZCIsZCxmKX19KX0sbG9nRXZlbnQ6ZnVuY3Rpb24oYixjKXtjPWM\/YzphLm1haWxJRDtpZighYnx8IWMpcmV0dXJuInVuZGVmaW5lZCIhPT0KdHlwZW9mIGRlYnVnJiZkZWJ1ZygiIVVOTE9HR0VEIEVWRU5UISIsYixjKSwhMTsidW5kZWZpbmVkIiE9dHlwZW9mIGFjdGl2ZVVzZXJQcm9maWxlTW5nJiYidW5kZWZpbmVkIiE9dHlwZW9mIGFjdGl2ZVVzZXJQcm9maWxlTW5nLmxvZ1BhZ2VWaWV3RXZlbnQ\/YWN0aXZlVXNlclByb2ZpbGVNbmcubG9nUGFnZVZpZXdFdmVudChiLGMpOiJ1bmRlZmluZWQiIT09dHlwZW9mIGRlYnVnJiZkZWJ1ZygiIVVOTE9HR0VEIEVWRU5UISIsYixjKX0sYnVpbGRDUk1LZXk6ZnVuY3Rpb24oKXt2YXIgYj1wYXJzZUludCgkKCIjdG9wc2l0ZWlkIikudmFsKCksMTApLGM9YS5nZXRVVUlEKCksZD1nZXRDb29raWUoImVtYWlsRnJvbUF1dG9BbnN3ZXIiKTtpZighaXNOYU4oYikmJigiIiE9ZHx8IiIhPWMpJiYibnVtYmVyIj09dHlwZW9mIGImJjA8Yil7dmFyIGY9bmV3IERhdGUsaD1mLmdldE1vbnRoKCkrMTtoPSQuYmFzZTY0LmVuY29kZShmLmdldEZ1bGxZZWFyKCkrIi0iKygxMD5oPyIwIitoOmgpKwoiLSIrKDEwPmYuZ2V0RGF0ZSgpPyIwIitmLmdldERhdGUoKTpmLmdldERhdGUoKSkpO2Y9aC5zdWJzdHIoMCw4KTtoPWguc3Vic3RyKDgpO3JldHVybiAkLmJhc2U2NC5lbmNvZGUoZiskLmJhc2U2NC5lbmNvZGUoYisiOyIrYysiOyIrZCkraCl9cmV0dXJuIiJ9LHNldE1ha2VNb2RlbFllYXJGcm9tTGFzdFZpZXdlZDpmdW5jdGlvbigpe3ZhciBiPSQoIiNsYXN0dmlld2VkbWFrZSIpLnZhbCgpLGM9JCgiI2xhc3R2aWV3ZWRtb2RlbCIpLnZhbCgpLGQ9JCgiI2xhc3R2aWV3ZWR5ZWFyIikudmFsKCk7InVuZGVmaW5lZCIhPT10eXBlb2YgYiYmIiI9PT1hLm1ha2UmJihhLm1ha2U9Yik7InVuZGVmaW5lZCIhPT10eXBlb2YgYyYmIiI9PT1hLm1vZGVsJiYoYS5tb2RlbD1jKTsidW5kZWZpbmVkIj09PXR5cGVvZiBkfHwiIiE9PWEueWVhciYmMCE9PWEueWVhcnx8KGEueWVhcj1kKX0sZ2V0IHJlY2FwdGNoYSgpe3JldHVybiB3aW5kb3cuZ29vZ2xlUmVjYXB0Y2hhfSxzYW5pdGl6ZUhUTUw6ZnVuY3Rpb24oYil7cmV0dXJuIGVuY29kZVVSSShiKX0sCnNob3VsZERpc3BsYXlQdXJjaGFzZUludGVudENvbnRhY3Q6KCk9PntpZihudWxsPT09ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI2FzUHVyY2hhc2VJbnRlbnQiKXx8ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI2FzUHVyY2hhc2VJbnRlbnQgLnN0ZXBDb250YWN0IikuY2xhc3NMaXN0LmNvbnRhaW5zKCJoaWRkZW4iKSlyZXR1cm4hMTtsZXQgYj1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjYXNQdXJjaGFzZUludGVudCAuc3RlcENvbnRhY3QiKS5kYXRhc2V0LmRlcGFydG1lbnRzO2I9Yi5zcGxpdCgiOyIpO2lmKC0xPGIuaW5kZXhPZihhLmRlcGFydG1lbnQudG9Mb3dlckNhc2UoKSkpcmV0dXJuITA7dmFyIGM9InVuZGVmaW5lZCIhPXR5cGVvZiBkb2N1bWVudC5sb2NhdGlvbi5wYXRobmFtZT9kb2N1bWVudC5sb2NhdGlvbi5wYXRobmFtZTpkb2N1bWVudC5sb2NhdGlvbi5ocmVmLm1hdGNoKC9bQS16XTpcL1wvW15cL10rXC8oW15cP10rKVw\/Py4qLylbMV07Yz1hLnNhbml0aXplSFRNTChjKTsKbGV0IGQ9T2JqZWN0LnZhbHVlcyhPYmplY3QuZnJvbUVudHJpZXMoT2JqZWN0LmVudHJpZXMoe25ldzpbIm5ldWYiLCJuZXciXSx1c2VkOlsib2NjYXNpb24iLCJ1c2VkIl0sc2VydmljZTpbInNlcnZpY2UiLCJlbnRyZXRpZW4iLCJtYWludGVuYW5jZSIsInJlcGFpciJdLGZpbmFuY2U6WyJmaW5hbmNlbWVudCIsImZpbmFuY2UiLCJjcmVkaXQiLCJsb2FuIl19KS5maWx0ZXIoZj0+e1tmXT1mO3JldHVybi0xPGIuaW5kZXhPZihmKX0pKSkuZmxhdCgpO3JldHVybihuZXcgUmVnRXhwKCIoIitkLmpvaW4oInwiKSsiKSIpKS50ZXN0KGMudG9Mb3dlckNhc2UoKSl9fTtqUXVlcnkoZnVuY3Rpb24oYil7Yj1qc19kMmNfZ2V0X3ZhbCgiSVNWTSIpO3ZhciBjPWpzX2QyY19nZXRfdmFsKCJmZmRMMSIpLGQ9anNfZDJjX2dldF92YWwoIkdSV0wiKS5zcGxpdCgiOyIpO2EuaWdub3JlQ2FwdGNoYT1ifHwtMSE9ZC5pbmRleE9mKGMpO2EuaWdub3JlQ2FwdGNoYXx8KHdpbmRvdy5nb29nbGVSZWNhcHRjaGE\/CmEucmVjYXB0Y2hhLmluaXQoKTpkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJnb29nbGVSZWNhcHRjaGEucmVhZHkiLGZ1bmN0aW9uKCl7YS5yZWNhcHRjaGEuaW5pdCgpfSx7b25jZTohMH0pKX0pO2EucmVzZXRDYWxsYmFja3MoKTthLmFza1B1cmNoYXNlSW50ZW50PWZ1bmN0aW9uKGIpe3ZhciBjPSJ1bmRlaW5mZWQiIT10eXBlb2YgYi5wYXRobmFtZT9iLnBhdGhuYW1lOmIuaHJlZi5tYXRjaCgvW0Etel06XC9cL1teXC9dK1wvKFteXD9dKylcPz8uKi8pWzFdO3ZhciBkPVJlZ0V4cCgiKGRlbW9uc3RyYXRldXJzfGRlbW98bGlxdWlkYXRpb258Y2xlYXJhbmNlfHByb21vdGlvbnN8bmV1ZnxuZXd8b2NjYXNpb258dXNlZHxjcmVkaXR8ZmluYW5jZW1lbnQpIik7Yj17ZGVtb25zdHJhdGV1cnM6ImRlbW8iLGNsZWFyYW5jZToibGlxdWlkYXRpb24iLCJuZXciOiJuZXVmIixwcm9tb3Rpb25zOiJwcm9tbyIsdXNlZDoib2NjYXNpb24iLGNyZWRpdDoiZmluYW5jZW1lbnQifTtyZXR1cm4gZC50ZXN0KGMudG9Mb3dlckNhc2UoKSk\/CihjPWMubWF0Y2goZCksbnVsbCE9YyYmKGEucHVyY2hhc2VfaW50ZW50X3NlY3Rpb249InVuZGVmaW5lZCIhPXR5cGVvZiBiW2NbMV1dP2JbY1sxXV06Y1sxXSksITApOiExfShkb2N1bWVudC5sb2NhdGlvbik7cmV0dXJuIGF9KCksZW1haWxUcmFja2luZz1mdW5jdGlvbigpe3ZhciBlPXticmFuZDoiIixtb2RlbDoiIix5ZWFyOiIiLGlzcHJvbW86ITEsaXNleHByZXNzOiExLGlzaG9tZXBhZ2U6ITEsc2VjdGlvbjoiIix0ZXh0Q2FyU2VjdGlvblR5cGU6IlVTRUQiLGlzTW9iaWxlTmV3VkRQOiExLGlzRnVsbFdpZHRoOiExLGJ1dHRvblBvc2l0aW9uOiIiLGRlYWxlck5hbWU6IiJ9LGc9ZnVuY3Rpb24oYyl7dmFyIGQ9W10sZj1jLmJyYW5kP2MuYnJhbmQ6ZW1haWxIYW5kbGVyLm1ha2UsaD1jLm1vZGVsP2MubW9kZWw6ZW1haWxIYW5kbGVyLm1vZGVsO2M9Yy55ZWFyP2MueWVhcjplbWFpbEhhbmRsZXIueWVhcjtmLmxlbmd0aCYmZC5wdXNoKGYpO2gubGVuZ3RoJiZkLnB1c2goaCk7Yy5sZW5ndGgmJgpkLnB1c2goYyk7cmV0dXJuIGQuam9pbigiLSIpfSxuPWZ1bmN0aW9uKGMpe3ZhciBkPXsiaG9tZXBhZ2UuaHRtbCI6IkhvbWUtUGFnZSIsImNvbnRhY3R1cy5odG1sIjoiQ29udGFjdFVzIiwibmV3Y2FyZGV0YWlsLmh0bWwiOiJOZXctVkRQIiwibmV3Y2Fycy5odG1sIjoiTmV3LVNSUCIsImJ1aWxkYW5kcHJpY2UuaHRtbCI6Ik5ldy1CJlAiLCJyZXN1bWUtYnVpbGRhbmRwcmljZS5odG1sIjoiTmV3LUImUC1SZXN1bWUiLCJjb21wYXJlTmV3VmVoaWNsZXMuaHRtbCI6Ik5ldy1Db21wYXJlIiwidXNlZGNhcnMuaHRtbCI6IlVzZWQtU1JQIiwiY2FyZGV0YWlsLmh0bWwiOiJVc2VkLVZEUCIsImNyZWRpdC5odG1sIjoiRGVtYW5kZXMgLSBGaW5hbmNlbWVudCIsImRlYWxlcnRyYWNrLmh0bWwiOiJEZW1hbmRlcyAtIEZpbmFuY2VtZW50IiwicHJvbW90aW9uLmh0bWwiOiJQcm9tb3Rpb25zIiwicHJvbW90aW9uc2FsZXMuaHRtbCI6IlByb21vdGlvbnMiLCJwcm9tb3Rpb25zZXJ2aWNlLmh0bWwiOiJQcm9tb3Rpb25zIiwKInBhcnRzUmVxdWVzdC5odG1sIjoiRGVtYW5kZXMgLSBQae+\/vWNlcyIsInNlcnZpY2VzLmh0bWwiOiJTZXJ2aWNlIiwic2VydmljZVJlcXVlc3QuaHRtbCI6IkRlbWFuZGVzIC0gUkRWIFNlcnZpY2UiLCJib2R5U2hvcC5odG1sIjoiRGVtYW5kZXMgLSBSRFYgQ2Fyb3NzZXJpZSIsInRpcmVzUmVxdWVzdC5odG1sIjoiRGVtYW5kZXMgLSBQbmV1cyIsIm91cnRlYW0uaHRtbCI6IlRlYW0iLCJ0ZXN0ZHJpdmUuaHRtbCI6IkRlbWFuZGVzIC0gRXNzYWlzLVJvdXRpZXItT2NjYXNpb24iLCJ0ZXN0ZHJpdmVuZXcuaHRtbCI6IkRlbWFuZGVzIC0gRXNzYWlzLVJvdXRpZXItTmV1ZiIsImJyb2NodXJlcy5odG1sIjoiRGVtYW5kZXMgLSBCcm9jaHVyZXMiLCJqb2JvZmZlci5odG1sIjoiRGVtYW5kZXMgLSBFbXBsb2lzIiwibWFrZW9mZmVybmV3Lmh0bWwiOiJEZW1hbmRlcyAtIE9mZnJlIC0gTmV1ZiIsIm1ha2VvZmZlci5odG1sIjoiRGVtYW5kZXMgLSBPZmZyZSAtIE9jY2FzaW9uIiwicHJpY2VyZXF1ZXN0bmV3Lmh0bWwiOiJEZW1hbmRlcyAtIFByaXggLSBOZXVmIiwKInByaWNlcmVxdWVzdC5odG1sIjoiRGVtYW5kZXMgLSBQcml4IC0gT2NjYXNpb24iLCJmaW5kY2FyLmh0bWwiOiJEZW1hbmRlcyAtIFJlY2hlcmNoZSBPY2Nhc2lvbiIsInRyYWRlaW5uZXcuaHRtbCI6IkRlbWFuZGVzIC0gRWNoYW5nZSBOZXVmIiwidHJhZGVpbi5odG1sIjoiRGVtYW5kZXMgLSBFY2hhbmdlIE9jY2FzaW9uIn0sZj0tMSE9KGMuY3VycmVudFVSTHx8IiIpLmluZGV4T2YoInN0ZXA9cmVzdW1lIiksaD0tMSE9KGMuY3VycmVudFVSTHx8IiIpLmluZGV4T2YoInN0ZXA9b3B0aW9ucyIpOyJidWlsZGFuZHByaWNlLmh0bWwiPT1jLnBhZ2VJRCYmKGZ8fGgpJiYoYy5wYWdlSUQ9InJlc3VtZS1idWlsZGFuZHByaWNlLmh0bWwiKTtyZXR1cm4idW5kZWZpbmVkIiE9dHlwZW9mIGRbYy5wYWdlSURdP2RbYy5wYWdlSURdOiJPdGhlciJ9LGE9ZnVuY3Rpb24oYyl7dmFyIGQ9IkRlbWFuZGVzIixmPWMuYnJhbmQ\/Yy5icmFuZDplbWFpbEhhbmRsZXIubWFrZSxoPWMubW9kZWw\/Yy5tb2RlbDoKZW1haWxIYW5kbGVyLm1vZGVsO2MuaXNwcm9tbyYmKGQrPSItUHJvbW90aW9uIik7MDxmLmxlbmd0aCYmMDxoLmxlbmd0aCYmIWMuaXNob21lcGFnZT9kPWMuaXNwcm9tbz9kKygiLSIrZyhjKSk6ZCtbIiIsZixoLGMuc2VjdGlvbl0uam9pbigiLSIpOmMuaXNwcm9tbyYmYy5pc2hvbWVwYWdlJiYoZCs9Ii1JbmRleCIpOyIxIj09Yy5pc2V4cHJlc3MmJihjLnRleHRDYXJTZWN0aW9uVHlwZSYmKGQ9IkRlbWFuZGVzLUV4cHJlc3MiKSxkKz0iLSIrZyhjKSxkKz0iLSIrYy5zZWN0aW9uKTtyZXR1cm4gZH0sYj1mdW5jdGlvbihjKXt2YXIgZD0xMjAwPHdpbmRvdy5zY3JlZW4uYXZhaWxXaWR0aD8iPjEyMDBweCAtICIuaXNGdWxsV2lkdGg6IjwxMjAwcHggLSBOb3JtYWwgVkRQIjtbZCxjLmJ1dHRvblBvc2l0aW9uXS5qb2luKCItIik7Yz1bYy5kZWFsZXJOYW1lLGQsIkxlYWQiXS5qb2luKCItIik7Z2FUcmFjaygiYyIsIk5ldy1WRFAtRGVza3RvcC1MYXlvdXQtQ1IiLGFjdGlvbixjLDEpfTsKdGhpcy50cmFjaz1mdW5jdGlvbihjKXtpZihnZXRDb29raWUoImxlYWRTZW5kIikpcmV0dXJuIGRlYnVnKCJsZWFkIHNlbnQiKTtzZXRDb29raWUoImxlYWRTZW5kIiwhMCwxKTtjPSQuZXh0ZW5kKHt9LGUsYyk7Yy5jdXJyZW50VVJMPWMuY3VycmVudFVSTD9jLmN1cnJlbnRVUkw6d2luZG93LmxvY2F0aW9uLmhyZWY7Yy5pc3Byb21vPSIxIj09Yy5pc3Byb21vO2MuaXNob21lcGFnZT0iMSI9PWMuaXNob21lcGFnZTt2YXIgZD1uKGMpO2dhVHJhY2soIiIsIkNvdXJyaWVscyIsYy5sYWJlbCxhKGMpLDEpO2dhVHJhY2soImMiLCJDb3VycmllbHMtZGVwdCIsYy5kZXBhcnRtZW50LGcoYyksMSk7Z2FUcmFjaygiYyIsIkNvdXJyaWVscy1wYWdlIixkLGMubGVhZFR5cGUsMSk7Yy5pc01vYmlsZU5ld1ZEUCYmIk5ldy1WRFAiPT1kJiZiKGMpO3RyeXtkMmNfZ2FBY2NvdW50cy5hbGwubWFwKGZ1bmN0aW9uKGYpe2d0YWcoImNvbmZpZyIsZix7cGFnZV9wYXRoOiIvY29uZmlybWF0aW9uLmh0bWwifSl9KSwKZ3RhZygiY29uZmlnIiwiRy1aNVE4WjVDN0tGIix7cGFnZV9wYXRoOiIvY29uZmlybWF0aW9uLmh0bWwifSl9Y2F0Y2goZil7ZGVidWcoZil9fTtyZXR1cm4gdGhpc30oKSxnZXRNYWlsU2VudEhhbmRsZXI9ZnVuY3Rpb24oZSl7dmFyIGc9e3RpbWVvdXRDYWxsYmFjazpudWxsLHRpbWVvdXQ6bnVsbH07Zy5pZFRvQWRkPWU\/ZToiIjskKCIjZW1haWxTdWNjZXNzTWVzc2FnZSIpLmZpbmQoIi5kZWZhdWx0U3VjY2VzcyIpLnNob3coKTskKCIjZW1haWxTdWNjZXNzTWVzc2FnZSIpLmZpbmQoIi5zZXJ2aWNlU3VjY2VzcyIpLmhpZGUoKTskKCIjZW1haWxTdWNjZXNzTWVzc2FnZSIrZSkubGVuZ3RofHwoZT0iIixnLmlkVG9BZGQ9IiIsIlNFUlZJQ0UiIT1lbWFpbEhhbmRsZXIuZGVwYXJ0bWVudCYmIlBBUlRTIiE9ZW1haWxIYW5kbGVyLmRlcGFydG1lbnQpfHwoJCgiI2VtYWlsU3VjY2Vzc01lc3NhZ2UiKS5maW5kKCIuZGVmYXVsdFN1Y2Nlc3MiKS5oaWRlKCksJCgiI2VtYWlsU3VjY2Vzc01lc3NhZ2UiKS5maW5kKCIuc2VydmljZVN1Y2Nlc3MiKS5zaG93KCkpOwpnLnNob3dTdWNjZXNzPWZ1bmN0aW9uKCl7Z2V0Q29va2llKCJwcmV2ZW50RHVwbGljYXRlQ3JlZGl0U2NvcmUiKXx8Z2V0Q29va2llKCJjcmVkaXRTY29yZUNvbmZpcm1Qb3B1cFNob3duIil8fGdldENvb2tpZSgiY3JlZGl0U2NvcmVFbWJlZGRlZEZpbGxlZCIpfHwiIiE9ZW1haWxIYW5kbGVyLnVzZXJQaG9uZSYmIiIhPWVtYWlsSGFuZGxlci51c2VyQWRkcmVzcyYmIiIhPWVtYWlsSGFuZGxlci5iaXJ0aGRhdGV8fCJuZXciIT1lbWFpbEhhbmRsZXIuZGVwYXJ0bWVudC50b0xvd2VyQ2FzZSgpJiYidXNlZCIhPWVtYWlsSGFuZGxlci5kZXBhcnRtZW50LnRvTG93ZXJDYXNlKCl8fCEkKCIjY3JlZGl0U2NvcmVDb25maXJtUG9wdXBDb250YWluZXIiKS5sZW5ndGh8fCJUcmFkZUluQmFyUG9wdXBDb250YWluZXIiPT1lbWFpbEhhbmRsZXIucG9wdXBkaXY\/KCQoIiNlbWFpbFN1Y2Nlc3NNZXNzYWdlIitlKS5wYXJlbnQoKS5pcygiYm9keSIpfHwkKCIjZW1haWxTdWNjZXNzTWVzc2FnZSIrCmUpLmFwcGVuZFRvKCJib2R5IiksJCgiI2VtYWlsU3VjY2Vzc01lc3NhZ2UiK2UpLnJldmVhbCh7YW5pbWF0aW9uOiJmYWRlQW5kUG9wIixhbmltYXRpb25zcGVlZDozMDAsY2xvc2VvbmJhY2tncm91bmRjbGljazohMSxkaXNtaXNzbW9kYWxjbGFzczoiY2xvc2UtcmV2ZWFsLW1vZGFsIn0pLCQoIiNlbWFpbFN1Y2Nlc3NNZXNzYWdlIitlKyIgLmNvbmZpcm1fc3VjY2Vzc0NvbnRpbnVlIikub24oImNsaWNrIixnLmNsb3NlU3VjY2VzcykpOiQoIiNjcmVkaXRTY29yZUNvbmZpcm1Qb3B1cENvbnRhaW5lciIpLnBvcHVwaXplKCkuc2V0VHJpZ2dlcigiY2xpY2siKS5vcGVuKDEpOyQoIi51aS1sb2FkZXItYmFja2dyb3VuZCIpLmhpZGUoKTskKCIjZW1haWxtc2dmcm0iK2cuaWRUb0FkZCkudHJpZ2dlcigic3VibWl0Iil9O2cuY2xvc2VTdWNjZXNzPWZ1bmN0aW9uKCl7JCgiI2VtYWlsU3VjY2Vzc01lc3NhZ2UiK2cuaWRUb0FkZCkudHJpZ2dlcigicmV2ZWFsOmNsb3NlIik7bnVsbCE9Zy50aW1lb3V0Q2FsbGJhY2smJgpnLnRpbWVvdXRDYWxsYmFjaygpO3JldHVybiExfTtnLnNob3dGYWlsPWZ1bmN0aW9uKCl7JCgiI2VtYWlsRmFpbE1lc3NhZ2UiK2cuaWRUb0FkZCkucmV2ZWFsKHthbmltYXRpb246ImZhZGVBbmRQb3AiLGFuaW1hdGlvbnNwZWVkOjMwMCxjbG9zZW9uYmFja2dyb3VuZGNsaWNrOiExLGRpc21pc3Ntb2RhbGNsYXNzOiJjbG9zZS1yZXZlYWwtbW9kYWwifSk7JCgiI2VtYWlsRmFpbE1lc3NhZ2UiK2UrIiAuY29uZmlybV9mYWlsQ29udGludWUiKS5vbigiY2xpY2siLGZ1bmN0aW9uKCl7JCgiI2VtYWlsRmFpbE1lc3NhZ2UiK2UpLnRyaWdnZXIoInJldmVhbDpjbG9zZSIpfSk7JCgiLnVpLWxvYWRlci1iYWNrZ3JvdW5kIikuaGlkZSgpfTtyZXR1cm4gZ30sbWFpbFNlbnRIYW5kbGVyPW5ldyBnZXRNYWlsU2VudEhhbmRsZXIoIiIpOwpmdW5jdGlvbiBzdG9yYWdlQXZhaWxhYmxlKGUpe3RyeXt2YXIgZz13aW5kb3dbZV07Zy5zZXRJdGVtKCJfX3N0b3JhZ2VfdGVzdF9fIiwiX19zdG9yYWdlX3Rlc3RfXyIpO2cucmVtb3ZlSXRlbSgiX19zdG9yYWdlX3Rlc3RfXyIpO3JldHVybiEwfWNhdGNoKG4pe3JldHVybiBuIGluc3RhbmNlb2YgRE9NRXhjZXB0aW9uJiYoMjI9PT1uLmNvZGV8fDEwMTQ9PT1uLmNvZGV8fCJRdW90YUV4Y2VlZGVkRXJyb3IiPT09bi5uYW1lfHwiTlNfRVJST1JfRE9NX1FVT1RBX1JFQUNIRUQiPT09bi5uYW1lKSYmZyYmMCE9PWcubGVuZ3RofX0KdmFyIGZvcm1GaWxsPWZ1bmN0aW9uKCl7dmFyIGU9dGhpcyxnPXN0b3JhZ2VBdmFpbGFibGUoImxvY2FsU3RvcmFnZSIpLG49bnVsbCxhPSEwLGI9W10sYz17bmFtZTpbImlucHV0Lm5hbWUiLCdpbnB1dFtuYW1lPSJuYW1lIl0nXSxwb3N0YWw6WyJpbnB1dC5wb3N0YWwiLCdpbnB1dFtuYW1lPSJwb3N0YWwiXSddLGZpcnN0TmFtZTonaW5wdXQuZmlyc3ROYW1lIGlucHV0LmZpcnN0bmFtZSBpbnB1dFtuYW1lPSJmaXJzdG5hbWUiXSBpbnB1dFtuYW1lPSJmaXJzdE5hbWUiXSBpbnB1dCNmaXJzdG5hbWUgaW5wdXQjZmlyc3ROYW1lIGlucHV0I21pbmlfZm5hbWUnLnNwbGl0KCIgIiksbGFzdE5hbWU6J2lucHV0Lmxhc3ROYW1lIGlucHV0Lmxhc3RuYW1lIGlucHV0W25hbWU9Imxhc3RuYW1lIl0gaW5wdXRbbmFtZT0ibGFzdE5hbWUiXSBpbnB1dCNsYXN0bmFtZSBpbnB1dCNsYXN0TmFtZSBpbnB1dCNtaW5pX2xuYW1lJy5zcGxpdCgiICIpLHBob25lOlsiaW5wdXQucGhvbmUiLCdpbnB1dFtuYW1lPSJwaG9uZSJdJywKJ2lucHV0W25hbWU9InBob25lTnVtYmVyIl0nLCJpbnB1dCNtaW5pX3Bob25lIiwnW3R5cGU9InRlbCJdJ10sZW1haWw6WyJpbnB1dC5lbWFpbCIsJ2lucHV0W25hbWU9ImVtYWlsIl0nLCdpbnB1dFtuYW1lPSJlbWFpbEFkZHJlc3MiXScsImlucHV0I21pbmlfZW1haWwiXX0sZD1mdW5jdGlvbihsKXtpZighZylyZXR1cm4hMTt2YXIgcT1sb2NhbFN0b3JhZ2UuZ2V0SXRlbSgiZm9ybUZpbGxEYXRhIik7aWYobnVsbD09PXEpcmV0dXJuITE7JC5hamF4KHt0eXBlOiJQT1NUIix1cmw6Ii9wcm94eV9zZDJjL3NlcnZpY2UvZDJjLmVuY3J5cHRpb24uZ2V0IixkYXRhOntkYXRhOnF9fSkuZG9uZShmdW5jdGlvbih3KXtpZih3JiYiZnVuY3Rpb24iPT09dHlwZW9mIGwpdHJ5e2woSlNPTi5wYXJzZSh3LmRhdGEpKX1jYXRjaChwKXtjb25zb2xlLmxvZyhwKX19KX0sZj1mdW5jdGlvbigpe2E9ITA7bj1udWxsO2IuZm9yRWFjaChmdW5jdGlvbihsKXtsLmZpbGxlZD0hMX0pfSxoPWZ1bmN0aW9uKGwpe3UoInVzZXIubG9hZGVkIiwKZnVuY3Rpb24oKXtpZighbShsKSl7Yi5wdXNoKHtzY29wZTpsLGZpbGxlZDohMH0pO2Zvcih2YXIgcSBpbiBjKW4uaGFzT3duUHJvcGVydHkocSkmJmwuZmluZCgkKGNbcV0uam9pbigiLCIpKSkudmFsKG5bcV0pO2soImZvcm0uZmlsbGVkIil9fSk7bnVsbD09PW4mJmE\/KGE9ITEsZChmdW5jdGlvbihxKXtxLnBvc3RhbD1xLnBvc3RhbC50b1VwcGVyQ2FzZSgpO3EuZmlyc3ROYW1lPXEuZmlyc3ROYW1lLnRyaW0oKTtxLmxhc3ROYW1lPXEubGFzdE5hbWUudHJpbSgpO2VtYWlsSGFuZGxlci51c2VyUG9zdGFsPXEucG9zdGFsO2VtYWlsSGFuZGxlci51c2VyRW1haWw9cS5lbWFpbDtlbWFpbEhhbmRsZXIudXNlckZpcnN0TmFtZT1xLmZpcnN0TmFtZTtlbWFpbEhhbmRsZXIudXNlckxhc3ROYW1lPXEubGFzdE5hbWU7ZW1haWxIYW5kbGVyLnVzZXJQaG9uZT1xLnBob25lO3EubmFtZT0ocS5maXJzdE5hbWUrIiAiK3EubGFzdE5hbWUpLnRyaW0oKTtuPXE7aygidXNlci5sb2FkZWQiKX0pKToKbiYmaygidXNlci5sb2FkZWQiKX0sbT1mdW5jdGlvbihsKXtyZXR1cm4oX3Njb3BlPWIuZmluZChmdW5jdGlvbihxKXtpZihxLnNjb3BlLmlzKGwpKXJldHVybiBxfSkpP19zY29wZS5maWxsZWQ6ITF9LHI9W10saz1mdW5jdGlvbihsKXt2YXIgcT1bXS5zbGljZS5jYWxsKGFyZ3VtZW50cywxKTtpZihyW2xdKXt2YXIgdz1yW2xdLnNsaWNlKCk7dmFyIHA9dy5sZW5ndGg7Zm9yKGk9MDtpPHA7aSsrKXdbaV0uYXBwbHkodGhpcyxxKX19LHQ9ZnVuY3Rpb24obCxxKXtyW2xdfHwocltsXT1bXSk7cltsXS5wdXNoKHEpfSx1PWZ1bmN0aW9uKGwscSl7dChsLGZ1bmN0aW9uIHAoKXtyW2xdLnNwbGljZShyW2xdLmluZGV4T2YocCksMSk7cS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9KX07JChmdW5jdGlvbigpe2cmJigkKGRvY3VtZW50KS5vbigicG9wdXBpemVyLm9uT3BlbiIsZnVuY3Rpb24obCxxKXtsPXEudGFyZ2V0P3EudGFyZ2V0OiQocSk7aChsKX0pLCQoZG9jdW1lbnQpLm9uKCJwb3B1cGl6ZXIub25DbG9zZSIsCmZ1bmN0aW9uKGwscSl7fSksJCgiZm9ybSIpLmVhY2goZnVuY3Rpb24obCxxKXtoKCQocSkpfSkpfSk7cmV0dXJuIGU9e3NhdmU6ZnVuY3Rpb24obCl7aWYoIWcpcmV0dXJuITE7biYmIiI9PT1sLnBvc3RhbCYmKGwucG9zdGFsPW4ucG9zdGFsKTskLmFqYXgoe3R5cGU6IlBPU1QiLHVybDoiL3Byb3h5X3NkMmMvc2VydmljZS9kMmMuZW5jcnlwdGlvbi5zZXQiLGRhdGE6e2RhdGE6SlNPTi5zdHJpbmdpZnkobCl9fSkuZG9uZShmdW5jdGlvbihxKXtxJiYobG9jYWxTdG9yYWdlLnNldEl0ZW0oImZvcm1GaWxsRGF0YSIscS5kYXRhKSxmKCkpfSl9fX0oKTsKLyoqIC9qcy9qaGFzaHRhYmxlLmpzICoqLwp2YXIgX19fZDJjX2poYXNodGFibGVqc19jX29uPSIyMDI1LTA1LTIzIDE3OjA3OjA3IjsndXNlIHN0cmljdCc7dmFyIF9fX2QyY19qaGFzaHRhYmxlanNfY19vbj0iMjAyNC0wMS0zMSAxNDozNToxOSI7InVzZSBzdHJpY3QiO19fX2QyY19qaGFzaHRhYmxlanNfY19vbj0iMjAyMy0wMS0xMiAxMTozMzo0OSI7InVzZSBzdHJpY3QiO19fX2QyY19qaGFzaHRhYmxlanNfY19vbj0iMjAyMy0wMS0xMiAxMDo0MzozMyI7InVzZSBzdHJpY3QiO19fX2QyY19qaGFzaHRhYmxlanNfY19vbj0iMjAyMS0xMi0xNSAxMjo0MDoxMyI7InVzZSBzdHJpY3QiOwp2YXIgSGFzaHRhYmxlPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdShhKXtpZigic3RyaW5nIj09dHlwZW9mIGEpcmV0dXJuIGE7aWYoImZ1bmN0aW9uIj09dHlwZW9mIGEuaGFzaENvZGUpcmV0dXJuIGE9YS5oYXNoQ29kZSgpLCJzdHJpbmciPT10eXBlb2YgYT9hOnUoYSk7aWYoImZ1bmN0aW9uIj09dHlwZW9mIGEudG9TdHJpbmcpcmV0dXJuIGEudG9TdHJpbmcoKTt0cnl7cmV0dXJuIFN0cmluZyhhKX1jYXRjaChjKXtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGEpfX1mdW5jdGlvbiBCKGEsYyl7cmV0dXJuIGEuZXF1YWxzKGMpfWZ1bmN0aW9uIEMoYSxjKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgYy5lcXVhbHM\/Yy5lcXVhbHMoYSk6YT09PWN9ZnVuY3Rpb24gdihhKXtyZXR1cm4gZnVuY3Rpb24oYyl7aWYobnVsbD09PWMpdGhyb3cgRXJyb3IoIm51bGwgaXMgbm90IGEgdmFsaWQgIithKTtpZigidW5kZWZpbmVkIj09dHlwZW9mIGMpdGhyb3cgRXJyb3IoYSsKIiBtdXN0IG5vdCBiZSB1bmRlZmluZWQiKTt9fWZ1bmN0aW9uIHEoYSxjLGgsZCl7dGhpc1swXT1hO3RoaXMuZW50cmllcz1bXTt0aGlzLmFkZEVudHJ5KGMsaCk7bnVsbCE9PWQmJih0aGlzLmdldEVxdWFsaXR5RnVuY3Rpb249ZnVuY3Rpb24oKXtyZXR1cm4gZH0pfWZ1bmN0aW9uIHIoYSl7cmV0dXJuIGZ1bmN0aW9uKGMpe2Zvcih2YXIgaD10aGlzLmVudHJpZXMubGVuZ3RoLGQsaz10aGlzLmdldEVxdWFsaXR5RnVuY3Rpb24oYyk7aC0tOylpZihkPXRoaXMuZW50cmllc1toXSxrKGMsZFswXSkpc3dpdGNoKGEpe2Nhc2UgMDpyZXR1cm4hMDtjYXNlIDE6cmV0dXJuIGQ7Y2FzZSAyOnJldHVybltoLGRbMV1dfXJldHVybiExfX1mdW5jdGlvbiB3KGEpe3JldHVybiBmdW5jdGlvbihjKXtmb3IodmFyIGg9Yy5sZW5ndGgsZD0wLGs9dGhpcy5lbnRyaWVzLmxlbmd0aDtkPGs7KytkKWNbaCtkXT10aGlzLmVudHJpZXNbZF1bYV19fWZ1bmN0aW9uIG0oYSxjKXtyZXR1cm4oYT1hW2NdKSYmCmEgaW5zdGFuY2VvZiBxP2E6bnVsbH1mdW5jdGlvbiB4KGEsYyl7dmFyIGg9dGhpcyxkPVtdLGs9e30sbj0iZnVuY3Rpb24iPT10eXBlb2YgYT9hOnUsRD0iZnVuY3Rpb24iPT10eXBlb2YgYz9jOm51bGw7dGhpcy5wdXQ9ZnVuY3Rpb24oYixlKXtwKGIpO3koZSk7dmFyIGY9bihiKSxnLGw9bnVsbDsoZz1tKGssZikpPyhmPWcuZ2V0RW50cnlGb3JLZXkoYikpPyhsPWZbMV0sZlsxXT1lKTpnLmFkZEVudHJ5KGIsZSk6KGc9bmV3IHEoZixiLGUsRCksZFtkLmxlbmd0aF09ZyxrW2ZdPWcpO3JldHVybiBsfTt0aGlzLmdldD1mdW5jdGlvbihiKXtwKGIpO3ZhciBlPW4oYik7aWYoZT1tKGssZSkpaWYoYj1lLmdldEVudHJ5Rm9yS2V5KGIpKXJldHVybiBiWzFdO3JldHVybiBudWxsfTt0aGlzLmNvbnRhaW5zS2V5PWZ1bmN0aW9uKGIpe3AoYik7dmFyIGU9bihiKTtyZXR1cm4oZT1tKGssZSkpP2UuY29udGFpbnNLZXkoYik6ITF9O3RoaXMuY29udGFpbnNWYWx1ZT1mdW5jdGlvbihiKXt5KGIpOwpmb3IodmFyIGU9ZC5sZW5ndGg7ZS0tOylpZihkW2VdLmNvbnRhaW5zVmFsdWUoYikpcmV0dXJuITA7cmV0dXJuITF9O3RoaXMuY2xlYXI9ZnVuY3Rpb24oKXtkLmxlbmd0aD0wO2s9e319O3RoaXMuaXNFbXB0eT1mdW5jdGlvbigpe3JldHVybiFkLmxlbmd0aH07dmFyIHQ9ZnVuY3Rpb24oYil7cmV0dXJuIGZ1bmN0aW9uKCl7Zm9yKHZhciBlPVtdLGY9ZC5sZW5ndGg7Zi0tOylkW2ZdW2JdKGUpO3JldHVybiBlfX07dGhpcy5rZXlzPXQoImtleXMiKTt0aGlzLnZhbHVlcz10KCJ2YWx1ZXMiKTt0aGlzLmVudHJpZXM9dCgiZ2V0RW50cmllcyIpO3RoaXMucmVtb3ZlPWZ1bmN0aW9uKGIpe3AoYik7dmFyIGU9bihiKSxmPW51bGwsZz1tKGssZSk7aWYoZyYmKGY9Zy5yZW1vdmVFbnRyeUZvcktleShiKSxudWxsIT09ZiYmIWcuZW50cmllcy5sZW5ndGgpKXthOntmb3IoYj1kLmxlbmd0aDtiLS07KWlmKGc9ZFtiXSxlPT09Z1swXSlicmVhayBhO2I9bnVsbH16KGQsYik7ZGVsZXRlIGtbZV19cmV0dXJuIGZ9Owp0aGlzLnNpemU9ZnVuY3Rpb24oKXtmb3IodmFyIGI9MCxlPWQubGVuZ3RoO2UtLTspYis9ZFtlXS5lbnRyaWVzLmxlbmd0aDtyZXR1cm4gYn07dGhpcy5lYWNoPWZ1bmN0aW9uKGIpe2Zvcih2YXIgZT1oLmVudHJpZXMoKSxmPWUubGVuZ3RoLGc7Zi0tOylnPWVbZl0sYihnWzBdLGdbMV0pfTt0aGlzLnB1dEFsbD1mdW5jdGlvbihiLGUpe2I9Yi5lbnRyaWVzKCk7Zm9yKHZhciBmLGcsbCxBPWIubGVuZ3RoLEU9ImZ1bmN0aW9uIj09dHlwZW9mIGU7QS0tOylmPWJbQV0sZz1mWzBdLGY9ZlsxXSxFJiYobD1oLmdldChnKSkmJihmPWUoZyxsLGYpKSxoLnB1dChnLGYpfTt0aGlzLmNsb25lPWZ1bmN0aW9uKCl7dmFyIGI9bmV3IHgoYSxjKTtiLnB1dEFsbChoKTtyZXR1cm4gYn19dmFyIHo9ImZ1bmN0aW9uIj09dHlwZW9mIEFycmF5LnByb3RvdHlwZS5zcGxpY2U\/ZnVuY3Rpb24oYSxjKXthLnNwbGljZShjLDEpfTpmdW5jdGlvbihhLGMpe3ZhciBoO2lmKGM9PT1hLmxlbmd0aC0xKWEubGVuZ3RoPQpjO2Vsc2V7dmFyIGQ9YS5zbGljZShjKzEpO2EubGVuZ3RoPWM7dmFyIGs9MDtmb3IoaD1kLmxlbmd0aDtrPGg7KytrKWFbYytrXT1kW2tdfX0scD12KCJrZXkiKSx5PXYoInZhbHVlIik7cS5wcm90b3R5cGU9e2dldEVxdWFsaXR5RnVuY3Rpb246ZnVuY3Rpb24oYSl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIGEuZXF1YWxzP0I6Q30sZ2V0RW50cnlGb3JLZXk6cigxKSxnZXRFbnRyeUFuZEluZGV4Rm9yS2V5OnIoMikscmVtb3ZlRW50cnlGb3JLZXk6ZnVuY3Rpb24oYSl7cmV0dXJuKGE9dGhpcy5nZXRFbnRyeUFuZEluZGV4Rm9yS2V5KGEpKT8oeih0aGlzLmVudHJpZXMsYVswXSksYVsxXSk6bnVsbH0sYWRkRW50cnk6ZnVuY3Rpb24oYSxjKXt0aGlzLmVudHJpZXNbdGhpcy5lbnRyaWVzLmxlbmd0aF09W2EsY119LGtleXM6dygwKSx2YWx1ZXM6dygxKSxnZXRFbnRyaWVzOmZ1bmN0aW9uKGEpe2Zvcih2YXIgYz1hLmxlbmd0aCxoPTAsZD10aGlzLmVudHJpZXMubGVuZ3RoO2g8ZDsrK2gpYVtjKwpoXT10aGlzLmVudHJpZXNbaF0uc2xpY2UoMCl9LGNvbnRhaW5zS2V5OnIoMCksY29udGFpbnNWYWx1ZTpmdW5jdGlvbihhKXtmb3IodmFyIGM9dGhpcy5lbnRyaWVzLmxlbmd0aDtjLS07KWlmKGE9PT10aGlzLmVudHJpZXNbY11bMV0pcmV0dXJuITA7cmV0dXJuITF9fTtyZXR1cm4geH0oKTsKLyoqIC9qcy9uZXdjYXJzLmpzICoqLwp2YXIgX19fZDJjX25ld2NhcnNqc19jX29uPSIyMDI2LTA2LTEyIDEyOjMwOjAzIjsndXNlIHN0cmljdCc7dmFyICRqc2NvbXA9JGpzY29tcHx8e307JGpzY29tcC5zY29wZT17fTskanNjb21wLkFTU1VNRV9FUzU9ITE7JGpzY29tcC5BU1NVTUVfTk9fTkFUSVZFX01BUD0hMTskanNjb21wLkFTU1VNRV9OT19OQVRJVkVfU0VUPSExOyRqc2NvbXAuU0lNUExFX0ZST1VORF9QT0xZRklMTD0hMTskanNjb21wLklTT0xBVEVfUE9MWUZJTExTPSExOyRqc2NvbXAuRk9SQ0VfUE9MWUZJTExfUFJPTUlTRT0hMTskanNjb21wLkZPUkNFX1BPTFlGSUxMX1BST01JU0VfV0hFTl9OT19VTkhBTkRMRURfUkVKRUNUSU9OPSExOyRqc2NvbXAuZGVmaW5lUHJvcGVydHk9JGpzY29tcC5BU1NVTUVfRVM1fHwiZnVuY3Rpb24iPT10eXBlb2YgT2JqZWN0LmRlZmluZVByb3BlcnRpZXM\/T2JqZWN0LmRlZmluZVByb3BlcnR5OmZ1bmN0aW9uKGEsYixlKXtpZihhPT1BcnJheS5wcm90b3R5cGV8fGE9PU9iamVjdC5wcm90b3R5cGUpcmV0dXJuIGE7YVtiXT1lLnZhbHVlO3JldHVybiBhfTsKJGpzY29tcC5nZXRHbG9iYWw9ZnVuY3Rpb24oYSl7YT1bIm9iamVjdCI9PXR5cGVvZiBnbG9iYWxUaGlzJiZnbG9iYWxUaGlzLGEsIm9iamVjdCI9PXR5cGVvZiB3aW5kb3cmJndpbmRvdywib2JqZWN0Ij09dHlwZW9mIHNlbGYmJnNlbGYsIm9iamVjdCI9PXR5cGVvZiBnbG9iYWwmJmdsb2JhbF07Zm9yKHZhciBiPTA7YjxhLmxlbmd0aDsrK2Ipe3ZhciBlPWFbYl07aWYoZSYmZS5NYXRoPT1NYXRoKXJldHVybiBlfXRocm93IEVycm9yKCJDYW5ub3QgZmluZCBnbG9iYWwgb2JqZWN0Iik7fTskanNjb21wLmdsb2JhbD0kanNjb21wLmdldEdsb2JhbCh0aGlzKTskanNjb21wLklTX1NZTUJPTF9OQVRJVkU9ImZ1bmN0aW9uIj09PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT09dHlwZW9mIFN5bWJvbCgieCIpOyRqc2NvbXAuVFJVU1RfRVM2X1BPTFlGSUxMUz0hJGpzY29tcC5JU09MQVRFX1BPTFlGSUxMU3x8JGpzY29tcC5JU19TWU1CT0xfTkFUSVZFOyRqc2NvbXAucG9seWZpbGxzPXt9OwokanNjb21wLnByb3BlcnR5VG9Qb2x5ZmlsbFN5bWJvbD17fTskanNjb21wLlBPTFlGSUxMX1BSRUZJWD0iJGpzY3AkIjt2YXIgJGpzY29tcCRsb29rdXBQb2x5ZmlsbGVkVmFsdWU9ZnVuY3Rpb24oYSxiKXt2YXIgZT0kanNjb21wLnByb3BlcnR5VG9Qb2x5ZmlsbFN5bWJvbFtiXTtpZihudWxsPT1lKXJldHVybiBhW2JdO2U9YVtlXTtyZXR1cm4gdm9pZCAwIT09ZT9lOmFbYl19OyRqc2NvbXAucG9seWZpbGw9ZnVuY3Rpb24oYSxiLGUsZyl7YiYmKCRqc2NvbXAuSVNPTEFURV9QT0xZRklMTFM\/JGpzY29tcC5wb2x5ZmlsbElzb2xhdGVkKGEsYixlLGcpOiRqc2NvbXAucG9seWZpbGxVbmlzb2xhdGVkKGEsYixlLGcpKX07CiRqc2NvbXAucG9seWZpbGxVbmlzb2xhdGVkPWZ1bmN0aW9uKGEsYixlLGcpe2U9JGpzY29tcC5nbG9iYWw7YT1hLnNwbGl0KCIuIik7Zm9yKGc9MDtnPGEubGVuZ3RoLTE7ZysrKXt2YXIgaD1hW2ddO2lmKCEoaCBpbiBlKSlyZXR1cm47ZT1lW2hdfWE9YVthLmxlbmd0aC0xXTtnPWVbYV07Yj1iKGcpO2IhPWcmJm51bGwhPWImJiRqc2NvbXAuZGVmaW5lUHJvcGVydHkoZSxhLHtjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Yn0pfTsKJGpzY29tcC5wb2x5ZmlsbElzb2xhdGVkPWZ1bmN0aW9uKGEsYixlLGcpe3ZhciBoPWEuc3BsaXQoIi4iKTthPTE9PT1oLmxlbmd0aDtnPWhbMF07Zz0hYSYmZyBpbiAkanNjb21wLnBvbHlmaWxscz8kanNjb21wLnBvbHlmaWxsczokanNjb21wLmdsb2JhbDtmb3IodmFyIG49MDtuPGgubGVuZ3RoLTE7bisrKXt2YXIgdD1oW25dO2lmKCEodCBpbiBnKSlyZXR1cm47Zz1nW3RdfWg9aFtoLmxlbmd0aC0xXTtlPSRqc2NvbXAuSVNfU1lNQk9MX05BVElWRSYmImVzNiI9PT1lP2dbaF06bnVsbDtiPWIoZSk7bnVsbCE9YiYmKGE\/JGpzY29tcC5kZWZpbmVQcm9wZXJ0eSgkanNjb21wLnBvbHlmaWxscyxoLHtjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Yn0pOmIhPT1lJiYodm9pZCAwPT09JGpzY29tcC5wcm9wZXJ0eVRvUG9seWZpbGxTeW1ib2xbaF0mJihlPTFFOSpNYXRoLnJhbmRvbSgpPj4+MCwkanNjb21wLnByb3BlcnR5VG9Qb2x5ZmlsbFN5bWJvbFtoXT0kanNjb21wLklTX1NZTUJPTF9OQVRJVkU\/CiRqc2NvbXAuZ2xvYmFsLlN5bWJvbChoKTokanNjb21wLlBPTFlGSUxMX1BSRUZJWCtlKyIkIitoKSwkanNjb21wLmRlZmluZVByb3BlcnR5KGcsJGpzY29tcC5wcm9wZXJ0eVRvUG9seWZpbGxTeW1ib2xbaF0se2NvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpifSkpKX07JGpzY29tcC51bmRlcnNjb3JlUHJvdG9DYW5CZVNldD1mdW5jdGlvbigpe3ZhciBhPXthOiEwfSxiPXt9O3RyeXtyZXR1cm4gYi5fX3Byb3RvX189YSxiLmF9Y2F0Y2goZSl7fXJldHVybiExfTsKJGpzY29tcC5zZXRQcm90b3R5cGVPZj0kanNjb21wLlRSVVNUX0VTNl9QT0xZRklMTFMmJiJmdW5jdGlvbiI9PXR5cGVvZiBPYmplY3Quc2V0UHJvdG90eXBlT2Y\/T2JqZWN0LnNldFByb3RvdHlwZU9mOiRqc2NvbXAudW5kZXJzY29yZVByb3RvQ2FuQmVTZXQoKT9mdW5jdGlvbihhLGIpe2EuX19wcm90b19fPWI7aWYoYS5fX3Byb3RvX18hPT1iKXRocm93IG5ldyBUeXBlRXJyb3IoYSsiIGlzIG5vdCBleHRlbnNpYmxlIik7cmV0dXJuIGF9Om51bGw7JGpzY29tcC5hcnJheUl0ZXJhdG9ySW1wbD1mdW5jdGlvbihhKXt2YXIgYj0wO3JldHVybiBmdW5jdGlvbigpe3JldHVybiBiPGEubGVuZ3RoP3tkb25lOiExLHZhbHVlOmFbYisrXX06e2RvbmU6ITB9fX07JGpzY29tcC5hcnJheUl0ZXJhdG9yPWZ1bmN0aW9uKGEpe3JldHVybntuZXh0OiRqc2NvbXAuYXJyYXlJdGVyYXRvckltcGwoYSl9fTsKJGpzY29tcC5tYWtlSXRlcmF0b3I9ZnVuY3Rpb24oYSl7dmFyIGI9InVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJlN5bWJvbC5pdGVyYXRvciYmYVtTeW1ib2wuaXRlcmF0b3JdO3JldHVybiBiP2IuY2FsbChhKTokanNjb21wLmFycmF5SXRlcmF0b3IoYSl9OyRqc2NvbXAuZ2VuZXJhdG9yPXt9OyRqc2NvbXAuZ2VuZXJhdG9yLmVuc3VyZUl0ZXJhdG9yUmVzdWx0SXNPYmplY3RfPWZ1bmN0aW9uKGEpe2lmKCEoYSBpbnN0YW5jZW9mIE9iamVjdCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiSXRlcmF0b3IgcmVzdWx0ICIrYSsiIGlzIG5vdCBhbiBvYmplY3QiKTt9OwokanNjb21wLmdlbmVyYXRvci5Db250ZXh0PWZ1bmN0aW9uKCl7dGhpcy5pc1J1bm5pbmdfPSExO3RoaXMueWllbGRBbGxJdGVyYXRvcl89bnVsbDt0aGlzLnlpZWxkUmVzdWx0PXZvaWQgMDt0aGlzLm5leHRBZGRyZXNzPTE7dGhpcy5maW5hbGx5QWRkcmVzc189dGhpcy5jYXRjaEFkZHJlc3NfPTA7dGhpcy5maW5hbGx5Q29udGV4dHNfPXRoaXMuYWJydXB0Q29tcGxldGlvbl89bnVsbH07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuc3RhcnRfPWZ1bmN0aW9uKCl7aWYodGhpcy5pc1J1bm5pbmdfKXRocm93IG5ldyBUeXBlRXJyb3IoIkdlbmVyYXRvciBpcyBhbHJlYWR5IHJ1bm5pbmciKTt0aGlzLmlzUnVubmluZ189ITB9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLnN0b3BfPWZ1bmN0aW9uKCl7dGhpcy5pc1J1bm5pbmdfPSExfTsKJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuanVtcFRvRXJyb3JIYW5kbGVyXz1mdW5jdGlvbigpe3RoaXMubmV4dEFkZHJlc3M9dGhpcy5jYXRjaEFkZHJlc3NffHx0aGlzLmZpbmFsbHlBZGRyZXNzX307JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUubmV4dF89ZnVuY3Rpb24oYSl7dGhpcy55aWVsZFJlc3VsdD1hfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS50aHJvd189ZnVuY3Rpb24oYSl7dGhpcy5hYnJ1cHRDb21wbGV0aW9uXz17ZXhjZXB0aW9uOmEsaXNFeGNlcHRpb246ITB9O3RoaXMuanVtcFRvRXJyb3JIYW5kbGVyXygpfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5yZXR1cm49ZnVuY3Rpb24oYSl7dGhpcy5hYnJ1cHRDb21wbGV0aW9uXz17cmV0dXJuOmF9O3RoaXMubmV4dEFkZHJlc3M9dGhpcy5maW5hbGx5QWRkcmVzc199OwokanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5qdW1wVGhyb3VnaEZpbmFsbHlCbG9ja3M9ZnVuY3Rpb24oYSl7dGhpcy5hYnJ1cHRDb21wbGV0aW9uXz17anVtcFRvOmF9O3RoaXMubmV4dEFkZHJlc3M9dGhpcy5maW5hbGx5QWRkcmVzc199OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLnlpZWxkPWZ1bmN0aW9uKGEsYil7dGhpcy5uZXh0QWRkcmVzcz1iO3JldHVybnt2YWx1ZTphfX07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUueWllbGRBbGw9ZnVuY3Rpb24oYSxiKXthPSRqc2NvbXAubWFrZUl0ZXJhdG9yKGEpO3ZhciBlPWEubmV4dCgpOyRqc2NvbXAuZ2VuZXJhdG9yLmVuc3VyZUl0ZXJhdG9yUmVzdWx0SXNPYmplY3RfKGUpO2lmKGUuZG9uZSl0aGlzLnlpZWxkUmVzdWx0PWUudmFsdWUsdGhpcy5uZXh0QWRkcmVzcz1iO2Vsc2UgcmV0dXJuIHRoaXMueWllbGRBbGxJdGVyYXRvcl89YSx0aGlzLnlpZWxkKGUudmFsdWUsYil9OwokanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5qdW1wVG89ZnVuY3Rpb24oYSl7dGhpcy5uZXh0QWRkcmVzcz1hfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5qdW1wVG9FbmQ9ZnVuY3Rpb24oKXt0aGlzLm5leHRBZGRyZXNzPTB9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLnNldENhdGNoRmluYWxseUJsb2Nrcz1mdW5jdGlvbihhLGIpe3RoaXMuY2F0Y2hBZGRyZXNzXz1hO3ZvaWQgMCE9YiYmKHRoaXMuZmluYWxseUFkZHJlc3NfPWIpfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5zZXRGaW5hbGx5QmxvY2s9ZnVuY3Rpb24oYSl7dGhpcy5jYXRjaEFkZHJlc3NfPTA7dGhpcy5maW5hbGx5QWRkcmVzc189YXx8MH07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUubGVhdmVUcnlCbG9jaz1mdW5jdGlvbihhLGIpe3RoaXMubmV4dEFkZHJlc3M9YTt0aGlzLmNhdGNoQWRkcmVzc189Ynx8MH07CiRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmVudGVyQ2F0Y2hCbG9jaz1mdW5jdGlvbihhKXt0aGlzLmNhdGNoQWRkcmVzc189YXx8MDthPXRoaXMuYWJydXB0Q29tcGxldGlvbl8uZXhjZXB0aW9uO3RoaXMuYWJydXB0Q29tcGxldGlvbl89bnVsbDtyZXR1cm4gYX07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuZW50ZXJGaW5hbGx5QmxvY2s9ZnVuY3Rpb24oYSxiLGUpe2U\/dGhpcy5maW5hbGx5Q29udGV4dHNfW2VdPXRoaXMuYWJydXB0Q29tcGxldGlvbl86dGhpcy5maW5hbGx5Q29udGV4dHNfPVt0aGlzLmFicnVwdENvbXBsZXRpb25fXTt0aGlzLmNhdGNoQWRkcmVzc189YXx8MDt0aGlzLmZpbmFsbHlBZGRyZXNzXz1ifHwwfTsKJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUubGVhdmVGaW5hbGx5QmxvY2s9ZnVuY3Rpb24oYSxiKXtiPXRoaXMuZmluYWxseUNvbnRleHRzXy5zcGxpY2UoYnx8MClbMF07aWYoYj10aGlzLmFicnVwdENvbXBsZXRpb25fPXRoaXMuYWJydXB0Q29tcGxldGlvbl98fGIpe2lmKGIuaXNFeGNlcHRpb24pcmV0dXJuIHRoaXMuanVtcFRvRXJyb3JIYW5kbGVyXygpO3ZvaWQgMCE9Yi5qdW1wVG8mJnRoaXMuZmluYWxseUFkZHJlc3NfPGIuanVtcFRvPyh0aGlzLm5leHRBZGRyZXNzPWIuanVtcFRvLHRoaXMuYWJydXB0Q29tcGxldGlvbl89bnVsbCk6dGhpcy5uZXh0QWRkcmVzcz10aGlzLmZpbmFsbHlBZGRyZXNzX31lbHNlIHRoaXMubmV4dEFkZHJlc3M9YX07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuZm9ySW49ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyAkanNjb21wLmdlbmVyYXRvci5Db250ZXh0LlByb3BlcnR5SXRlcmF0b3IoYSl9OwokanNjb21wLmdlbmVyYXRvci5Db250ZXh0LlByb3BlcnR5SXRlcmF0b3I9ZnVuY3Rpb24oYSl7dGhpcy5vYmplY3RfPWE7dGhpcy5wcm9wZXJ0aWVzXz1bXTtmb3IodmFyIGIgaW4gYSl0aGlzLnByb3BlcnRpZXNfLnB1c2goYik7dGhpcy5wcm9wZXJ0aWVzXy5yZXZlcnNlKCl9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQuUHJvcGVydHlJdGVyYXRvci5wcm90b3R5cGUuZ2V0TmV4dD1mdW5jdGlvbigpe2Zvcig7MDx0aGlzLnByb3BlcnRpZXNfLmxlbmd0aDspe3ZhciBhPXRoaXMucHJvcGVydGllc18ucG9wKCk7aWYoYSBpbiB0aGlzLm9iamVjdF8pcmV0dXJuIGF9cmV0dXJuIG51bGx9OyRqc2NvbXAuZ2VuZXJhdG9yLkVuZ2luZV89ZnVuY3Rpb24oYSl7dGhpcy5jb250ZXh0Xz1uZXcgJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dDt0aGlzLnByb2dyYW1fPWF9OwokanNjb21wLmdlbmVyYXRvci5FbmdpbmVfLnByb3RvdHlwZS5uZXh0Xz1mdW5jdGlvbihhKXt0aGlzLmNvbnRleHRfLnN0YXJ0XygpO2lmKHRoaXMuY29udGV4dF8ueWllbGRBbGxJdGVyYXRvcl8pcmV0dXJuIHRoaXMueWllbGRBbGxTdGVwXyh0aGlzLmNvbnRleHRfLnlpZWxkQWxsSXRlcmF0b3JfLm5leHQsYSx0aGlzLmNvbnRleHRfLm5leHRfKTt0aGlzLmNvbnRleHRfLm5leHRfKGEpO3JldHVybiB0aGlzLm5leHRTdGVwXygpfTsKJGpzY29tcC5nZW5lcmF0b3IuRW5naW5lXy5wcm90b3R5cGUucmV0dXJuXz1mdW5jdGlvbihhKXt0aGlzLmNvbnRleHRfLnN0YXJ0XygpO3ZhciBiPXRoaXMuY29udGV4dF8ueWllbGRBbGxJdGVyYXRvcl87aWYoYilyZXR1cm4gdGhpcy55aWVsZEFsbFN0ZXBfKCJyZXR1cm4iaW4gYj9iWyJyZXR1cm4iXTpmdW5jdGlvbihlKXtyZXR1cm57dmFsdWU6ZSxkb25lOiEwfX0sYSx0aGlzLmNvbnRleHRfLnJldHVybik7dGhpcy5jb250ZXh0Xy5yZXR1cm4oYSk7cmV0dXJuIHRoaXMubmV4dFN0ZXBfKCl9OwokanNjb21wLmdlbmVyYXRvci5FbmdpbmVfLnByb3RvdHlwZS50aHJvd189ZnVuY3Rpb24oYSl7dGhpcy5jb250ZXh0Xy5zdGFydF8oKTtpZih0aGlzLmNvbnRleHRfLnlpZWxkQWxsSXRlcmF0b3JfKXJldHVybiB0aGlzLnlpZWxkQWxsU3RlcF8odGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yX1sidGhyb3ciXSxhLHRoaXMuY29udGV4dF8ubmV4dF8pO3RoaXMuY29udGV4dF8udGhyb3dfKGEpO3JldHVybiB0aGlzLm5leHRTdGVwXygpfTsKJGpzY29tcC5nZW5lcmF0b3IuRW5naW5lXy5wcm90b3R5cGUueWllbGRBbGxTdGVwXz1mdW5jdGlvbihhLGIsZSl7dHJ5e3ZhciBnPWEuY2FsbCh0aGlzLmNvbnRleHRfLnlpZWxkQWxsSXRlcmF0b3JfLGIpOyRqc2NvbXAuZ2VuZXJhdG9yLmVuc3VyZUl0ZXJhdG9yUmVzdWx0SXNPYmplY3RfKGcpO2lmKCFnLmRvbmUpcmV0dXJuIHRoaXMuY29udGV4dF8uc3RvcF8oKSxnO3ZhciBoPWcudmFsdWV9Y2F0Y2gobil7cmV0dXJuIHRoaXMuY29udGV4dF8ueWllbGRBbGxJdGVyYXRvcl89bnVsbCx0aGlzLmNvbnRleHRfLnRocm93XyhuKSx0aGlzLm5leHRTdGVwXygpfXRoaXMuY29udGV4dF8ueWllbGRBbGxJdGVyYXRvcl89bnVsbDtlLmNhbGwodGhpcy5jb250ZXh0XyxoKTtyZXR1cm4gdGhpcy5uZXh0U3RlcF8oKX07CiRqc2NvbXAuZ2VuZXJhdG9yLkVuZ2luZV8ucHJvdG90eXBlLm5leHRTdGVwXz1mdW5jdGlvbigpe2Zvcig7dGhpcy5jb250ZXh0Xy5uZXh0QWRkcmVzczspdHJ5e3ZhciBhPXRoaXMucHJvZ3JhbV8odGhpcy5jb250ZXh0Xyk7aWYoYSlyZXR1cm4gdGhpcy5jb250ZXh0Xy5zdG9wXygpLHt2YWx1ZTphLnZhbHVlLGRvbmU6ITF9fWNhdGNoKGIpe3RoaXMuY29udGV4dF8ueWllbGRSZXN1bHQ9dm9pZCAwLHRoaXMuY29udGV4dF8udGhyb3dfKGIpfXRoaXMuY29udGV4dF8uc3RvcF8oKTtpZih0aGlzLmNvbnRleHRfLmFicnVwdENvbXBsZXRpb25fKXthPXRoaXMuY29udGV4dF8uYWJydXB0Q29tcGxldGlvbl87dGhpcy5jb250ZXh0Xy5hYnJ1cHRDb21wbGV0aW9uXz1udWxsO2lmKGEuaXNFeGNlcHRpb24pdGhyb3cgYS5leGNlcHRpb247cmV0dXJue3ZhbHVlOmEucmV0dXJuLGRvbmU6ITB9fXJldHVybnt2YWx1ZTp2b2lkIDAsZG9uZTohMH19OwokanNjb21wLmdlbmVyYXRvci5HZW5lcmF0b3JfPWZ1bmN0aW9uKGEpe3RoaXMubmV4dD1mdW5jdGlvbihiKXtyZXR1cm4gYS5uZXh0XyhiKX07dGhpcy50aHJvdz1mdW5jdGlvbihiKXtyZXR1cm4gYS50aHJvd18oYil9O3RoaXMucmV0dXJuPWZ1bmN0aW9uKGIpe3JldHVybiBhLnJldHVybl8oYil9O3RoaXNbU3ltYm9sLml0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfX07JGpzY29tcC5nZW5lcmF0b3IuY3JlYXRlR2VuZXJhdG9yPWZ1bmN0aW9uKGEsYil7Yj1uZXcgJGpzY29tcC5nZW5lcmF0b3IuR2VuZXJhdG9yXyhuZXcgJGpzY29tcC5nZW5lcmF0b3IuRW5naW5lXyhiKSk7JGpzY29tcC5zZXRQcm90b3R5cGVPZiYmYS5wcm90b3R5cGUmJiRqc2NvbXAuc2V0UHJvdG90eXBlT2YoYixhLnByb3RvdHlwZSk7cmV0dXJuIGJ9OwokanNjb21wLmFzeW5jRXhlY3V0ZVByb21pc2VHZW5lcmF0b3I9ZnVuY3Rpb24oYSl7ZnVuY3Rpb24gYihnKXtyZXR1cm4gYS5uZXh0KGcpfWZ1bmN0aW9uIGUoZyl7cmV0dXJuIGEudGhyb3coZyl9cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKGcsaCl7ZnVuY3Rpb24gbih0KXt0LmRvbmU\/Zyh0LnZhbHVlKTpQcm9taXNlLnJlc29sdmUodC52YWx1ZSkudGhlbihiLGUpLnRoZW4obixoKX1uKGEubmV4dCgpKX0pfTskanNjb21wLmFzeW5jRXhlY3V0ZVByb21pc2VHZW5lcmF0b3JGdW5jdGlvbj1mdW5jdGlvbihhKXtyZXR1cm4gJGpzY29tcC5hc3luY0V4ZWN1dGVQcm9taXNlR2VuZXJhdG9yKGEoKSl9OyRqc2NvbXAuYXN5bmNFeGVjdXRlUHJvbWlzZUdlbmVyYXRvclByb2dyYW09ZnVuY3Rpb24oYSl7cmV0dXJuICRqc2NvbXAuYXN5bmNFeGVjdXRlUHJvbWlzZUdlbmVyYXRvcihuZXcgJGpzY29tcC5nZW5lcmF0b3IuR2VuZXJhdG9yXyhuZXcgJGpzY29tcC5nZW5lcmF0b3IuRW5naW5lXyhhKSkpfTsKbGV0ICRqc2NvbXAkb3B0Y2hhaW4kdG1wMTkzNzM4OTg1OSQwOwpuZXdDYXJzPXtpc01vYmlsZToiMSI9PT0obnVsbD09KCRqc2NvbXAkb3B0Y2hhaW4kdG1wMTkzNzM4OTg1OSQwPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpc01vYmlsZSIpKT92b2lkIDA6JGpzY29tcCRvcHRjaGFpbiR0bXAxOTM3Mzg5ODU5JDAudmFsdWUpLGNvbnRhaW5lcjpkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibmV3Y2FyQ29udGFpbmVyIikscmVzaXplTWFpbldpbmRvdzpmdW5jdGlvbigpe2lmKCFuZXdDYXJzLmlzTW9iaWxlKXt2YXIgYT0kKCIjcmlnaHRTaWRlIikuaGVpZ2h0KCktMzUsYj0kKCIjbmV3Y2FyQ29udGFpbmVyIikuaGVpZ2h0KCk7IWlzTmFOKGEpJiYhaXNOYU4oYikmJmE+YiYmKCQoIiNuZXdjYXJDb250YWluZXIiKS5oZWlnaHQoYSksJCgiI2Zvb3RlckRpdiIpLmNzcygicGFkZGluZyIsIjBweCIpKX19LHNldFBheW1lbnRUb29sdGlwczooKT0+e25ld0NhcnMuaXNNb2JpbGU\/JCgiLmRpdkNhcnNCb3hXcmFwcGVyIikuZWFjaChmdW5jdGlvbigpeyQodGhpcykuZmluZCgiLmRpdkNhclNpbmdsZU91dGVyQm94IC5kaXZDYXJQYXltZW50Q29udGFpbmVyIC5wYXltZW50SW5mb0J1YmJsZSAucGF5bWVudFRvb2x0aXAiKS5lYWNoKGZ1bmN0aW9uKCl7dHJ5e3ZhciBhPSQodGhpcykuYXR0cigiZGF0YS10b29sdGlwIik7CiQodGhpcykuZGFya1Rvb2x0aXAoe2NvbnRlbnQ6YSxncmF2aXR5OiJlYXN0Iix0aGVtZToibGlnaHQiLHRyaWdnZXI6ImNsaWNrIixhbmltYXRpb246ImZsaXBJbiJ9KX1jYXRjaChiKXt9fSl9KTokKCIuZGl2Q2Fyc0JveFdyYXBwZXIiKS5lYWNoKGZ1bmN0aW9uKCl7JCh0aGlzKS5maW5kKCIuZGl2Q2FyU2luZ2xlT3V0ZXJCb3giKS5vbigibW91c2VlbnRlciBtb3VzZWxlYXZlIixmdW5jdGlvbihhKXt0cnl7aWYoJCh0aGlzKS5kYXRhKCJ0b29sdGlwQ3JlYXRlZCIpKXJldHVybiExOyQodGhpcykuZGF0YSgidG9vbHRpcENyZWF0ZWQiLDEpOyQodGhpcykuZmluZCgiLmRpdkNhclBheW1lbnRDb250YWluZXJUb29sdGlwIikuZGFya1Rvb2x0aXAoe2dyYXZpdHk6Indlc3QiLHRoZW1lOiJsaWdodCIsdHJpZ2dlcjoiaG92ZXIiLGFuaW1hdGlvbjoiZmxpcEluIn0pfWNhdGNoKGIpe319KX0pfSxuZXdDYXJzRmlsdGVyOigpPT57ZnVuY3Rpb24gYSgpe3ZhciBjPSQoIi5kaXZDYXRlZ29yeUJveFdyYXBwZXIiKS5tYXAoZnVuY3Rpb24oZCwKZil7cmV0dXJuIHBhcnNlSW50KCQoZikuYXR0cigibmJWaXNpYmxlIikpfSkuZ2V0KCkucmVkdWNlKGZ1bmN0aW9uKGQsZil7cmV0dXJuIGQrZn0sMCk7cmV0dXJue2ZpbHRlcnM6e3N0YXR1czoiTmV3Iixib2R5U3R5bGU6JCgiaW5wdXQ6Y2hlY2tlZC5maWx0ZXJDaGVjay5jYXRlZ29yeSIpLm1hcChmdW5jdGlvbihkLGYpe3JldHVybiAkKGYpLnZhbCgpfSkuZ2V0KCksZnVlbFR5cGU6JCgiaW5wdXQ6Y2hlY2tlZC5maWx0ZXJDaGVjay5mdWVsdHlwZSIpLm1hcChmdW5jdGlvbihkLGYpe3JldHVybiAkKGYpLmRhdGEoImVzc2VuY2UiKX0pLmdldCgpLGRyaXZlVHJhaW46JCgiaW5wdXQ6Y2hlY2tlZC5maWx0ZXJDaGVjay5kcml2ZXRyYWluIikubWFwKGZ1bmN0aW9uKGQsZil7cmV0dXJuICQoZikuZGF0YSgiZHJpdmV0cmFpbiIpfSkuZ2V0KCksbWF4UHJpY2U6cC5tYXgsbWluUHJpY2U6cC5taW59LHZlaGljbGVDb3VudDpjfX12YXIgYj0hMTt0cnl7InVuZGVmaW5lZCI9PWpRdWVyeS5icm93c2VyLm1zaWU\/CmI9ITA6OTw9cGFyc2VJbnQoalF1ZXJ5LmJyb3dzZXIudmVyc2lvbiwxMCkmJihiPSEwKX1jYXRjaChjKXt9aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBib3hCbG9ja3N8fDE+Ym94QmxvY2tzLmxlbmd0aCliPSExOy0xPHdpbmRvdy5sb2NhdGlvbi5ocmVmLmluZGV4T2YoImNhbWlvbnMtY29tbWVyY2lhdXgiKSYmKGI9ITEpO2lmKGIpe3ZhciBlPW5ld0NhcnMuZ2V0RmlsdGVyKCk7Yj1nZXRVcmxWYXJzKCk7dmFyIGc9Yi5oYXNPd25Qcm9wZXJ0eSgiYm9keSIpLGg9Yi5oYXNPd25Qcm9wZXJ0eSgiZnVlbCIpO25ld0NhcnMuY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3JBbGwoIi5maWx0ZXJDaGVjayIpLmZvckVhY2goYz0+e2cmJmMuY2xhc3NMaXN0LmNvbnRhaW5zKCJjYXRlZ29yeSIpfHxoJiZjLmNsYXNzTGlzdC5jb250YWlucygiZnVlbHR5cGUiKXx8KGMuY2hlY2tlZD0hZS5oYXNPd25Qcm9wZXJ0eShjLmlkKXx8ITA9PT1lW2MuaWRdKX0pOyQoIiNmaWx0ZXJNYWluQm94Iikuc2hvdygpOwpmb3IodmFyIG4gaW4gYm94QmxvY2tzKXtiPTA7Zm9yKHZhciB0IGluIGJveEJsb2Nrc1tuXSliKys7JCgiI2NsYXNzIituKyJfY29udGFpbmVyIikuYXR0cigibmJWaXNpYmxlIixiKX0kKCIuZmlsdGVyQ2hlY2siKS5vbigiY2xpY2siLGZ1bmN0aW9uKCl7dmFyIGM9JCh0aGlzKTtuZXdDYXJzLnNldEZpbHRlcihjLmF0dHIoImlkIiksYy5pcygiOmNoZWNrZWQiKSk7c2V0VGltZW91dCh4LDEwMCk7aWYoYy5oYXNDbGFzcygiY2F0ZWdvcnkiKSl7dmFyIGQ9Yy52YWwoKTtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7QihkKX0sMTAwKX19KTskKCIucmFkaW9Tb3J0Iikub24oImNsaWNrIixmdW5jdGlvbigpe0MoJCh0aGlzKS52YWwoKSl9KTskKCIuZmlsdGVyU3BhbiIpLm9uKCJjbGljayIsZnVuY3Rpb24oKXt2YXIgYz0kKHRoaXMpO25ld0NhcnMuc2V0RmlsdGVyKCJmaWx0ZXJTcGFuIixjLmF0dHIoInJlbCIpKTtjPSIjIitjLmF0dHIoInJlbCIpOyQoYykudHJpZ2dlcigiY2xpY2siKX0pOwp2YXIgeT0iIix3PSIiLEc9ZnVuY3Rpb24oYyxkKXtyZXR1cm4gYy5jb25zbz09ZC5jb25zbz8wOmMuY29uc28+ZC5jb25zbz8xOi0xfSxIPWZ1bmN0aW9uKGMsZCl7cmV0dXJuIGMuY29uc289PWQuY29uc28\/MDpjLmNvbnNvPmQuY29uc28\/LTE6MX0sST1mdW5jdGlvbihjLGQpe3JldHVybiBjLnByaWNlPT1kLnByaWNlPzA6Yy5wcmljZT5kLnByaWNlPzE6LTF9LEo9ZnVuY3Rpb24oYyxkKXtyZXR1cm4gYy5wcmljZT09ZC5wcmljZT8wOmMucHJpY2U+ZC5wcmljZT8tMToxfSxLPWZ1bmN0aW9uKGMsZCl7cmV0dXJuIGMuY2FyTW9kZWw9PWQuY2FyTW9kZWw\/Yy55ZWFyPmQueWVhcj8tMTpjLnllYXI8ZC55ZWFyPzE6MDpjLmNhck1vZGVsPmQuY2FyTW9kZWw\/MTotMX0sQz1mdW5jdGlvbihjLGQpe3c9InVuZGVmaW5lZCIhPT10eXBlb2YgZD9kOnk9PWM\/IkFzYyI9PXc\/IkRlc2MiOiJBc2MiOiJBc2MiO3k9YztuZXdDYXJzLnNldEZpbHRlcigic29ydEJ5Iix5KTtuZXdDYXJzLnNldEZpbHRlcigic29ydERpciIsCncpO2Zvcih2YXIgZiBpbiBib3hCbG9ja3Mpe2M9MTtkPVtdO2Zvcih2YXIgbSBpbiBib3hCbG9ja3NbZl0pe3ZhciBsPWJveEJsb2Nrc1tmXVttXTtsLnZpc2libGUmJihkW2QubGVuZ3RoXT1sKX1zd2l0Y2goeSl7Y2FzZSAicHJpY2UiOiJBc2MiPT13P2Quc29ydChJKTpkLnNvcnQoSik7YnJlYWs7Y2FzZSAibW9kZWwiOmQuc29ydChLKTticmVhaztjYXNlICJjb25zbyI6IkFzYyI9PXc\/ZC5zb3J0KEcpOmQuc29ydChIKX1kLnNvcnQoZnVuY3Rpb24oayx1KXtyZXR1cm4gay5zcGVjaWFsT3JkZXI9PXUuc3BlY2lhbE9yZGVyPzA6ay5zcGVjaWFsT3JkZXI+dS5zcGVjaWFsT3JkZXI\/MTotMX0pO2ZvcihsPTA7bDxkLmxlbmd0aDtsKyspZFtsXS52aXNpYmxlJiYoZFtsXS5wb3NpdGlvbiE9bCsxJiYoZFtsXS5wb3NpdGlvbj1sKzEsQShmLCJmYnhfIitmKyJfIitkW2xdLmlkLCJtb3ZlIixsKzEpKSxjKyspfX0sTD1mdW5jdGlvbigpe2Zvcih2YXIgYyBpbiBib3hCbG9ja3Mpe3ZhciBkPQoxLGY7Zm9yKGYgaW4gYm94QmxvY2tzW2NdKXt2YXIgbT1ib3hCbG9ja3NbY11bZl07bS52aXNpYmxlJiZtLnBvc2l0aW9uIT1kJiYobS5wb3NpdGlvbj1kLEEoYyxmLCJtb3ZlIixkKSk7QShjLGYsbS52aXNpYmxlPyJzaG93IjoiaGlkZSIpO20udmlzaWJsZSYmZCsrfSQoIiNjbGFzcyIrYysiX2NvbnRhaW5lciIpLmF0dHIoIm5iVmlzaWJsZSIsZC0xKX19LEQ9ZnVuY3Rpb24oYyxkKXtmb3IodmFyIGY9MCxtPTE7bTxkO20rKyl7dmFyIGw9JCgiIyIrYyttKTswPGwubGVuZ3RoJiZsLnByb3AoImNoZWNrZWQiKSYmKGYrPU1hdGgucG93KDIsbS0xKSl9cmV0dXJuIGZ9LHg9ZnVuY3Rpb24oKXt2YXIgYz1EKCJmaWx0ZXJFc3NlbmNlQ2hlY2siLDYpLGQ9RCgiZmlsdGVyRHJpdmVUcmFpbkNoZWNrIiw0KSxmPVtdLG09W107JCgiLmZpbHRlckNoZWNrLmNhdGVnb3J5IikuZWFjaChmdW5jdGlvbigpeyQodGhpcykuaXMoIjpjaGVja2VkIikmJmYucHVzaCgkKHRoaXMpLnZhbCgpKX0pO3ZhciBsPQohMTswPCQoIi5maWx0ZXJDaGVjay5jYXJNYWtlIikubGVuZ3RoJiYoJCgiLmZpbHRlckNoZWNrLmNhck1ha2UiKS5lYWNoKGZ1bmN0aW9uKCl7JCh0aGlzKS5pcygiOmNoZWNrZWQiKSYmbS5wdXNoKCQodGhpcykudmFsKCkpfSksbD0hMCk7Zm9yKHZhciBrIGluIGJveEJsb2Nrcyl7dmFyIHU9MCxxO2ZvcihxIGluIGJveEJsb2Nrc1trXSl7dmFyIE09cGFyc2VJbnQoYm94QmxvY2tzW2tdW3FdLmZ1ZWwsMTApLHY9ITE7dj0odj0odj0odj0odj0hKHBhcnNlSW50KGJveEJsb2Nrc1trXVtxXS5kcml2ZXRyYWluLDEwKSZkKSl8fCEoTSZjKSl8fCEoIWJveEJsb2Nrc1trXVtxXS5jYXJDYXRlZ29yeXx8LTE8JC5pbkFycmF5KGJveEJsb2Nrc1trXVtxXS5jYXJDYXRlZ29yeSxmKSkpfHwhKCExPT09bHx8LTE8JC5pbkFycmF5KGJveEJsb2Nrc1trXVtxXS5jYXJNYWtlLG0pJiZsKSl8fCEoMD09Ym94QmxvY2tzW2tdW3FdLnByaWNlfHxib3hCbG9ja3Nba11bcV0ucHJpY2U8PXAubWF4JiYKYm94QmxvY2tzW2tdW3FdLnByaWNlPj1wLm1pbik7Ym94QmxvY2tzW2tdW3FdLnZpc2libGU9IXY7Ym94QmxvY2tzW2tdW3FdLnZpc2libGUmJnUrK30kKCIjY2xhc3MiK2srIl9jb250YWluZXIiKS5hdHRyKCJuYlZpc2libGUiLHUpO0Ioayl9TCgpOyIxIj09PSQoImJvZHkiKS5kYXRhKCJmaWx0ZXJzOmxvYWQiKSYmJCgiYm9keSIpLnRyaWdnZXIoJC5leHRlbmQoe3R5cGU6ImZpbHRlcnM6Y2hhbmdlIn0sYSgpKSl9LEI9ZnVuY3Rpb24oYyl7dmFyIGQ9JCgiI2NsYXNzIitjKyJfY29udGFpbmVyIik7aWYoMDxkLmxlbmd0aCl7dmFyIGY9JCgiI3Nob3dDbGFzc18iK2MpOzA9PT1mLmxlbmd0aCYmKGY9JCgnaW5wdXRbZGF0YS1lc3NlbmNlPSInK2MrJyJdJykpO2Y9MD09PWYubGVuZ3RoPyEwOmYuaXMoIjpjaGVja2VkIik7MDxwYXJzZUludChkLmF0dHIoIm5iVmlzaWJsZSIpLDEwKT8oZiYmKGQuYXR0cigic3RhdGUiLCJvcGVuIiksZC5mYWRlSW4oNjAwKSxuZXdDYXJzLmlzTW9iaWxlfHwKKGY9TWF0aC5jZWlsKHBhcnNlSW50KGQuYXR0cigibmJWaXNpYmxlIiksMTApLzMpLCQoIi5DTEFTU18iK2MpLmFuaW1hdGUoe2hlaWdodDpyLmhlaWdodCpmKyJweCJ9LDYwMCkpLGY9ITApLGZ8fEUoZCkpOkUoZCl9fSxFPWZ1bmN0aW9uKGMpe2MuYXR0cigic3RhdGUiLCJjbG9zZSIpO2MuZmFkZU91dCg2MDApO3JldHVybiEwfSxBPWZ1bmN0aW9uKGMsZCxmLG0sbCl7aWYoImhpZGUiPT1mKSQoIiMiK2QpLmFuaW1hdGUoe29wYWNpdHk6MH0sNjAwLGZ1bmN0aW9uKCl7JCh0aGlzKS5hdHRyKCJpcy1ib3gtdmlzaWJsZSIsMCkuY3NzKCJ2aXNpYmlsaXR5IiwiaGlkZGVuIil9KSxib3hCbG9ja3NbY11bZF0udmlzaWJsZT0hMSxzaXRlUGFnZS5pc01vYmlsZSYmKG5ld0NhcnMuY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3IoYCMke2R9YCkuaGlkZGVuPSEwKTtlbHNlIGlmKCJzaG93Ij09ZikkKCIjIitkKS5jc3MoInZpc2liaWxpdHkiLCJ2aXNpYmxlIikuYW5pbWF0ZSh7b3BhY2l0eToxfSwKNjAwLGZ1bmN0aW9uKCl7JCh0aGlzKS5hdHRyKCJpcy1ib3gtdmlzaWJsZSIsMSl9KSxib3hCbG9ja3NbY11bZF0udmlzaWJsZT0hMCxzaXRlUGFnZS5pc01vYmlsZSYmKG5ld0NhcnMuY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3IoYCMke2R9YCkuaGlkZGVuPSExKTtlbHNlIGlmKCFzaXRlUGFnZS5pc01vYmlsZSl7dmFyIGs9JCgiLmRpdkNhdGVnb3JpZXNCb3hXcmFwcGVyIikud2lkdGgoKTtjPU1hdGguZmxvb3Ioay9yLndpZHRoKTtmPWJveFBvc2l0aW9uc1tkXTtrPU1hdGguZmxvb3Ioay9jKTtjPXtsZWZ0OiIrPSIrKChtLTEpJWMqay0oZi0xKSVjKmspKyJweCIsdG9wOiIrPSIrKE1hdGguZmxvb3IoKG0tMSkvYykqci5oZWlnaHQtTWF0aC5mbG9vcigoZi0xKS9jKSpyLmhlaWdodCkrInB4In07dm9pZCAwPT1sPyQoIiMiK2QpLmFkZENsYXNzKCJNb3ZpbmdCb3giKS5hbmltYXRlKGMsNjAwLGZ1bmN0aW9uKCl7JCh0aGlzKS5yZW1vdmVDbGFzcygiTW92aW5nQm94Iil9KTokKCIjIisKZCkuYWRkQ2xhc3MoIk1vdmluZ0JveCIpLmFuaW1hdGUoYyw2MDAsZnVuY3Rpb24oKXskKHRoaXMpLnJlbW92ZUNsYXNzKCJNb3ZpbmdCb3giKTtldmFsKGwpfSk7Ym94UG9zaXRpb25zW2RdPW19fSxGPWZ1bmN0aW9uKCl7dmFyIGM9e3dpZHRoOjAsaGVpZ2h0OjB9OyQoJy5kaXZDYXJTaW5nbGVPdXRlckJveFtpcy1ib3gtdmlzaWJsZT0iMSJdOmZpcnN0JykuZWFjaChmdW5jdGlvbigpe2Mud2lkdGg9JCh0aGlzKS5vdXRlcldpZHRoKCEwKTtjLmhlaWdodD0kKHRoaXMpLm91dGVySGVpZ2h0KCEwKX0pO3JldHVybiBjfSx6PTk2MDskKCIuZGl2Q2FyU2luZ2xlT3V0ZXJCb3giKS5hdHRyKCJpcy1ib3gtdmlzaWJsZSIsMSk7dmFyIHI9RigpOzA8JCgiQk9EWS5pc0Z1bGxXaWR0aFBhZ2UiKS5sZW5ndGgmJjA8JCgiQk9EWS5pc1BhZ2VGdWxsV2lkdGhFbmFibGVkIikubGVuZ3RoJiYoMTMwMDx3aW5kb3cuaW5uZXJXaWR0aCYmKHo9MTIwMCksJCh3aW5kb3cpLm9uKCJyZXNpemUiLGZ1bmN0aW9uKCl7dmFyIGM9Cno7ej0xMzAwPHdpbmRvdy5pbm5lcldpZHRoPzEyMDA6OTYwO2MhPXomJnNldFRpbWVvdXQoZnVuY3Rpb24oKXtOKCl9KX0pKTt2YXIgTj1mdW5jdGlvbigpe3ZhciBjPXI7cj1GKCk7JCgiLmRpdkNhcnNCb3hXcmFwcGVyIikuZWFjaChmdW5jdGlvbigpe3ZhciBkPTA7JCh0aGlzKS5maW5kKCIuZGl2Q2FyU2luZ2xlT3V0ZXJCb3giKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIGY9cGFyc2VJbnQoJCh0aGlzKS5jc3MoInRvcCIpKSxtPXBhcnNlSW50KCQodGhpcykuY3NzKCJsZWZ0IikpOzA9PT1mJiYwPT09bXx8JCh0aGlzKS5jc3Moe3RvcDpyLmhlaWdodCooZi9wYXJzZUludChjLmhlaWdodCkpKyJweCJ9KS5jc3Moe2xlZnQ6ci53aWR0aCoobS9wYXJzZUludChjLndpZHRoKSkrInB4In0pOzE9PT1wYXJzZUludCgkKHRoaXMpLmF0dHIoImlzLWJveC12aXNpYmxlIikpJiZkKyt9KTtkJiYkKHRoaXMpLmNzcyh7aGVpZ2h0Ok1hdGguZmxvb3IoZC8zKSpyLmhlaWdodCsoZCUzP3IuaGVpZ2h0OgowKSsicHgifSl9KX0scD17bWluOjAsbWF4OjFFNn07KGZ1bmN0aW9uKCl7dmFyIGM9JCgiI3ByaWNlUmFuZ2VTbGlkZXJGaWx0ZXJDb250YWluZXIiKTtpZigwPGMubGVuZ3RoKXt2YXIgZD1jLmZpbmQoImRpdi5yYW5nZS1zbGlkZXIiKTtpZigwPGQubGVuZ3RoKXt2YXIgZj1udWxsLG09ZnVuY3Rpb24obCxrKXtwPXttaW46RDJDVXRpbHMuTnVtYmVyLnJvdW5kRG93bihrLnZhbHVlc1swXSwxRTMpLG1heDpEMkNVdGlscy5OdW1iZXIucm91bmRVcChrLnZhbHVlc1sxXSwxRTMpfTtudWxsIT09bCYmbmV3Q2Fycy5zZXRGaWx0ZXIoInNldFNob3dlZFZhbHVlcyIscC5taW4rIjoiK3AubWF4KTtjLmZpbmQoInNwYW4ucHJpY2UtbWluIikudGV4dChwLm1pbi50b0xvY2FsZVN0cmluZygpKTtjLmZpbmQoInNwYW4ucHJpY2UtbWF4IikudGV4dChwLm1heC50b0xvY2FsZVN0cmluZygpKTtjbGVhclRpbWVvdXQoZik7Zj1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7eCgpfSw1MDApfTtwPXttaW46RDJDVXRpbHMuTnVtYmVyLnJvdW5kRG93bihkLmF0dHIoImF0dHItcHJpY2UtbWluIikpLAptYXg6RDJDVXRpbHMuTnVtYmVyLnJvdW5kRG93bihkLmF0dHIoImF0dHItcHJpY2UtbWF4IikpfTtkLnNsaWRlcih7cmFuZ2U6ITAsbWluOnAubWluLG1heDpwLm1heCxzbGlkZTptLGNoYW5nZTptLGNyZWF0ZTpmdW5jdGlvbihsLGspe2w9bmV3Q2Fycy5nZXRGaWx0ZXIoKTtrPVtwLm1pbixwLm1heF07InN0cmluZyI9PT10eXBlb2YgbC5zZXRTaG93ZWRWYWx1ZXMmJihrPWwuc2V0U2hvd2VkVmFsdWVzLnNwbGl0KCI6IikpO2Quc2xpZGVyKCJ2YWx1ZXMiLGspO20obnVsbCx7dmFsdWVzOmt9KTtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7JCgiYm9keSIpLnRyaWdnZXIoJC5leHRlbmQoe3R5cGU6ImZpbHRlcnM6bG9hZCJ9LGEoKSkpfSwzRTMpfX0pfX19KSgpO3NldFRpbWVvdXQoZnVuY3Rpb24oKXt2YXIgYz0kKCIjc29ydEJ5Iik7dmFyIGQ9JCgiI3NvcnREaXIiKSxmPSJtb2RlbCI7dmFyIG09IkFzYyI7dmFyIGw9e21vZGVsOiJyYWRpb01vZGxlIixwcmljZToicmFkaW9QcmljZSIsCmNvbnNvOiJyYWRpb0NvbnNvIn07Yy5sZW5ndGgmJmQubGVuZ3RoJiYoZj1jLnZhbCgpLG09ZC52YWwoKSk7ZSYmInVuZGVmaW5lZCIhPT10eXBlb2YgbFtlLnNvcnRCeV0\/KGM9ZS5zb3J0QnksbT1lLnNvcnREaXIpOmM9Zjt0cnl7dmFyIGs9JCgiIyIrbFtjXSk7ay5sZW5ndGgmJmsucHJvcCgiY2hlY2tlZCIsImNoZWNrZWQiKTtDKGMsbSl9Y2F0Y2godSl7fX0sNTAwKTtpZigkKCIjdG9nZ2xlRmlsdGVyQnRuIikubGVuZ3RoKSQoIiN0b2dnbGVGaWx0ZXJCdG4iKS5vbigiY2xpY2sgdGFwIixmdW5jdGlvbigpeyQoIiNzaWRlU2lkZWJhckZpbHRlciIpLmxlbmd0aCYmKCQoIiNzaWRlU2lkZWJhckZpbHRlciIpLmhhc0NsYXNzKCJvcGVuIik\/JCgiI3NpZGVTaWRlYmFyRmlsdGVyIikucmVtb3ZlQ2xhc3MoIm9wZW4iKTokKCIjc2lkZVNpZGViYXJGaWx0ZXIiKS5hZGRDbGFzcygib3BlbiIpKX0pO2lmKCQoIiNjbG9zZVNpZGViYXJCdG4iKS5sZW5ndGgpJCgiI2Nsb3NlU2lkZWJhckJ0biIpLm9uKCJjbGljayB0YXAiLApmdW5jdGlvbigpeyQoIiNzaWRlU2lkZWJhckZpbHRlciIpLmxlbmd0aCYmJCgiI3NpZGVTaWRlYmFyRmlsdGVyIikuaGFzQ2xhc3MoIm9wZW4iKSYmJCgiI3NpZGVTaWRlYmFyRmlsdGVyIikucmVtb3ZlQ2xhc3MoIm9wZW4iKX0pOyQoIi5zZWxlY3RUb2dnbGVXcmFwcGVyQ2FyTWFrZSIpLmxlbmd0aCYmKCQoIiNzZWxlY3RBbGxCdG5DYXJNYWtlIikub24oImNsaWNrIHRhcCIsZnVuY3Rpb24oKXskKCIuZmlsdGVyQ2hlY2suY2FyTWFrZSIpLnByb3AoImNoZWNrZWQiLCEwKTtzZXRUaW1lb3V0KHgsMTAwKX0pLCQoIiN1bnNlbGVjdEFsbEJ0bkNhck1ha2UiKS5vbigiY2xpY2sgdGFwIixmdW5jdGlvbigpeyQoIi5maWx0ZXJDaGVjay5jYXJNYWtlIikucHJvcCgiY2hlY2tlZCIsITEpO3NldFRpbWVvdXQoeCwxMDApfSkpfX0sc2V0RmlsdGVyOihhLGIpPT57dmFyIGU9e30sZz1fbG9jYWxTdG9yYWdlR2V0KCJuZXdTdnBGaWx0ZXIiKTtudWxsIT1nJiYib2JqZWN0IiE9dHlwZW9mIGcmJgooZT1KU09OLnBhcnNlKGcpKTtnPXdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZTt2b2lkIDA9PWVbZ10mJihlW2ddPXt9KTtlW2ddW2FdPWI7X2xvY2FsU3RvcmFnZVNldCgibmV3U3ZwRmlsdGVyIixKU09OLnN0cmluZ2lmeShlKSl9LGdldEZpbHRlcjooKT0+e2xldCBhPSExO3ZhciBiPV9sb2NhbFN0b3JhZ2VHZXQoIm5ld1N2cEZpbHRlciIpO2xldCBlPXt9O251bGwhPWImJiJvYmplY3QiIT10eXBlb2YgYiYmKGU9SlNPTi5wYXJzZShiKSk7Yj13aW5kb3cubG9jYXRpb24ucGF0aG5hbWU7dm9pZCAwIT1lW2JdJiYoYT1lW2JdKTtyZXR1cm4gYX0sc2V0UHJpY2VUb29sVGlwczooKT0+e25ld0NhcnMuaXNNb2JpbGV8fGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5jYXJQcmljZUluaXRpYWxUb29sVGlwSWNvbiIpLmZvckVhY2goYT0+e2xldCBiPWEuZGF0YXNldC50b29sdGlwOyQoYSkuZGFya1Rvb2x0aXAoe2NvbnRlbnQ6YixncmF2aXR5OiJ3ZXN0Iix0aGVtZToibGlnaHQiLHRyaWdnZXI6ImhvdmVyIiwKYW5pbWF0aW9uOiJmbGlwSW4ifSl9KX0sc2V0RXZlbnRzOigpPT57bmV3Q2Fycy5pc01vYmlsZXx8KCQoImltZ1tlcnJvcmltZ10iKS5vbigiZXJyb3IiLGZ1bmN0aW9uKCl7dGhpcy5zcmM9JCh0aGlzKS5hdHRyKCJlcnJvcmltZyIpfSksJCgiaW1nW211bHRpaW1nPXRydWVdIikuZWFjaChmdW5jdGlvbigpeyQodGhpcykub24oIm1vdXNlb3ZlciIsZnVuY3Rpb24oKXskKHRoaXMpLmF0dHIoInNyYyIsJCh0aGlzKS5hdHRyKCJjb2xvcmltZyIpKX0pOyQodGhpcykub24oIm1vdXNlb3V0IixmdW5jdGlvbigpeyQodGhpcykuYXR0cigic3JjIiwkKHRoaXMpLmF0dHIoImJsYWNraW1nIikpfSl9KSl9LGdldEludmVudG9yeURhdGE6KCk9Pntjb25zdCBhPShiLGUpPT57bGV0IGc9IkZSRU5DSCI9PWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNhY3RpdmVzaXRlbGFuZ3VhZ2UiKS52YWx1ZT8iZnIiOiJlbiI7ZmV0Y2goYC8ke2d9L2FqYXgvZ2V0SW52ZW50b3J5RGF0YWAse21ldGhvZDoiUE9TVCIsCmhlYWRlcnM6e0FjY2VwdDoiYXBwbGljYXRpb24vanNvbiIsIkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZDsiLGNoYXJzZXQ6IlVURi04In0sYm9keTpuZXcgVVJMU2VhcmNoUGFyYW1zKGIpfSkudGhlbihoPT57aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBoJiYhMD09PWgub2smJjIwMD09aC5zdGF0dXMpcmV0dXJuIGguanNvbigpfSkudGhlbihoPT57aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBoLnN0YXR1cyYmInN1Y2Nlc3MiPT1oLnN0YXR1cyl7bGV0IG49aC5jb3VudDtoPWgudXJsO2xldCB0PWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNpblN0b2NrTGFiZWwiKS52YWx1ZTswPG4mJihlLnBhcmVudE5vZGUuaW5zZXJ0QWRqYWNlbnRIVE1MKCJiZWZvcmVlbmQiLGA8YSBocmVmPSIke2h9Ij4ke259ICR7dH08L2E+YCksZS5wYXJlbnROb2RlLmhpZGRlbj0hMSl9fSkuY2F0Y2goZnVuY3Rpb24oaCl7fSl9O2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2lucHV0W2RhdGEtdHlwZT0iaW52ZGF0YSJdJykuZm9yRWFjaChiPT4Ke2Eoe21ha2U6Yi5kYXRhc2V0Lm1ha2UsbW9kZWw6Yi5kYXRhc2V0Lm1vZGVsLHllYXI6Yi5kYXRhc2V0LnllYXIsc3R5bGVpZHM6Yi5kYXRhc2V0LnN0eWxlaWRzLGh5YnJpZDpiLmRhdGFzZXQuaHlicmlkfSxiKX0pfSxnZXRQYXltZW50RGF0YTooKT0+e2NvbnN0IGE9KGIsZSxnKT0+JGpzY29tcC5hc3luY0V4ZWN1dGVQcm9taXNlR2VuZXJhdG9yRnVuY3Rpb24oZnVuY3Rpb24qKCl7dHJ5e2NvbnN0IGg9eWllbGQoeWllbGQgZmV0Y2goYC8ke2VuY29kZVVSSUNvbXBvbmVudChnKX0vYWpheC9nZXRTaG93cm9vbVBheW1lbnRIdG1sYCx7bWV0aG9kOiJQT1NUIixoZWFkZXJzOntBY2NlcHQ6ImFwcGxpY2F0aW9uL2pzb24iLCJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ7IixjaGFyc2V0OiJVVEYtOCJ9LGJvZHk6bmV3IFVSTFNlYXJjaFBhcmFtcyhiKX0pKS5qc29uKCk7ZS5wYXJlbnROb2RlLnF1ZXJ5U2VsZWN0b3IoIi5za2VsZXRvbi1ibG9jayIpLmhpZGRlbj0KITA7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBoLnN0YXR1cyYmInN1Y2Nlc3MiPT1oLnN0YXR1cyl7bGV0IG49aC5jb250ZW50OzA8bi5sZW5ndGgmJihlLnBhcmVudE5vZGUuaW5zZXJ0QWRqYWNlbnRIVE1MKCJiZWZvcmVlbmQiLG4pLGUucGFyZW50Tm9kZS5oaWRkZW49ITEpfX1jYXRjaChoKXt9fSk7ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnaW5wdXRbZGF0YS10eXBlPSJwYXltZW50ZGF0YSJdJykuZm9yRWFjaChiPT57bGV0IGU9IkZSRU5DSCI9PWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNhY3RpdmVzaXRlbGFuZ3VhZ2UiKS52YWx1ZT8iZnIiOiJlbiI7YSh7c3R5bGVpZDpiLmRhdGFzZXQuc3R5bGVpZCx0aXRsZTpiLmRhdGFzZXQudGl0bGUsaHJlZjpiLmRhdGFzZXQuaHJlZixsaW5rU3R5bGU6Yi5kYXRhc2V0LmxpbmtzdHlsZSxsaW5rQ2xhc3M6Yi5kYXRhc2V0LmxpbmtjbGFzcyxjb250YWluZXJDbGFzczpiLmRhdGFzZXQuY29udGFpbmVyY2xhc3MscHJvbW9UZXh0OmIuZGF0YXNldC5wcm9tb3RleHQsCmxhbmc6ZX0sYixlKX0pfX07JCh3aW5kb3cpLm9uKCJsb2FkIixmdW5jdGlvbigpe25ld0NhcnMucmVzaXplTWFpbldpbmRvdygpfSk7ZG9jUmVhZHlBcnIucHVzaCgoKT0+e25ld0NhcnMuZ2V0UGF5bWVudERhdGEoKTtuZXdDYXJzLnNldFBheW1lbnRUb29sdGlwcygpO25ld0NhcnMuc2V0RXZlbnRzKCk7bmV3Q2Fycy5uZXdDYXJzRmlsdGVyKCk7bmV3Q2Fycy5zZXRQcmljZVRvb2xUaXBzKCk7bmV3Q2Fycy5nZXRJbnZlbnRvcnlEYXRhKCl9KTsKLyoqIC9qcy9kMmNfZm9yZF90YWdnaW5nLmpzICoqLwp2YXIgX19fZDJjX2QyY2ZvcmR0YWdnaW5nanNfY19vbj0iMjAyNi0wMy0zMSAxNzozMDowMyI7J3VzZSBzdHJpY3QnO3ZhciBkZWJ1Z19kMmZ0PW5ldyBmdW5jdGlvbigpe3RoaXMubG9nPWZ1bmN0aW9uKCl7dmFyIHo9bG9jYWxTdG9yYWdlLmdldEl0ZW0oImRlYnVnX2QyZnQiKTtudWxsPT16JiYoej0ibGl2ZSIhPWRlcGxveW1lbnRUeXBlKTswPHomJmNvbnNvbGUubG9nLmFwcGx5KG51bGwsYXJndW1lbnRzKX07dGhpcy5lbmFibGU9ZnVuY3Rpb24oeil7bG9jYWxTdG9yYWdlLnNldEl0ZW0oImRlYnVnX2QyZnQiLHopfTtyZXR1cm4gdGhpc307CmZ1bmN0aW9uIEQyRlQoeixJKXtmdW5jdGlvbiBPKCl7dmFyIGQ9dDtpZigvc2k6dmxzLy50ZXN0KHQucGFnZUlkKSl7dmFyIGI9dDt0cnl7Zm9yKHZhciBoPXdpbmRvdy5nVXNlZFNycEFwcHouZmlsdGVySW50ZXJmYWNlLmdldEZpbHRlckNvbnRyb2xsZXIoKS5nZXRDdXJyZW50RmlsdGVyc1ZhbHVlcygpLGM9IiIsYT0wO2E8aC5sZW5ndGg7YSsrKXt2YXIgZT1oW2FdLGw9ZS52YWx1ZXM7c3dpdGNoKGUuZmlkKXtjYXNlICJmbHRDYXRlZ29yaWVJZCI6MT09bC5sZW5ndGgmJigiY3BvIiE9YyYmMT09bFswXSYmKGM9InVzZWQiKSwzPT1sWzBdJiYoYz0ibmV3IikpO2JyZWFrO2Nhc2UgImZsdENlcnRpZmllZElkIjowPGwubGVuZ3RoJiYoYz0iY3BvIil9fXZhciBmPWN9Y2F0Y2goZyl7Zj0iIn1iLmludmVudG9yeUZsYWc9Zn1iPXZvaWQgMCE9PXQuaW52ZW50b3J5RmxhZyYmIiIhPXQuaW52ZW50b3J5RmxhZz90LmludmVudG9yeUZsYWc6L2NlcnRpZmllW2RzXS8udGVzdCh3aW5kb3cubG9jYXRpb24uaHJlZik\/CiJjcG8iOi91c2VkfG9jY2FzdGlvbi8udGVzdCh3aW5kb3cubG9jYXRpb24uaHJlZik\/InVzZWQiOi9uZSh3fHVmcykvLnRlc3Qod2luZG93LmxvY2F0aW9uLmhyZWYpPyJuZXciOiJvdGhlciI7ZC5zaVR5cGU9Yn1mdW5jdGlvbiBTKGQpe2lmKCJ2ZWhpY2xlOjxuYW1lcGxhdGU+Ij09ZClyZXR1cm4iPHNpLXR5cGU+OnNpOnZlaGljbGUgZGV0YWlsczxzaS1zdWZmaXg+IjtpZigvXihVTktOT1dOfGN1c3RvbSkvLnRlc3QoZCkpe2NvbnN0IGI9W3twYXR0ZXJuOi9tYWludGVuYW5jZS1wbGFufGZvcmQtcHJvdGVjdHxsaW5jb2xuLXByb3RlY3QvLHJlc3VsdDoic2VydmljZTpmb3JkIHByb3RlY3QifSx7cGF0dGVybjovZXYtY2hhcmdpbmcvLHJlc3VsdDoiZXYgY2hhcmdpbmcifSx7cGF0dGVybjovZXYtKGxpZmVzdHlsZXxvdmVydmlldykvLHJlc3VsdDoiZXYgbGlmZXN0eWxlIn0se3BhdHRlcm46L2V2LW93bmVyc2hpcC8scmVzdWx0OiJldiBvd25lcnNoaXAifSx7cGF0dGVybjovZXYtKGxpZ2h0bmluZ3xtYWNoLWUpLywKcmVzdWx0OiJldiB2aHA6PG5hbWVwbGF0ZT4ifV07Zm9yKGNvbnN0IGggb2YgYil7Y29uc3Qge3BhdHRlcm46YyxyZXN1bHQ6YX09aDtpZihjLnRlc3Qod2luZG93LmxvY2F0aW9uLnBhdGhuYW1lKSlyZXR1cm4gYX19cmV0dXJuIGR9ZnVuY3Rpb24gVChkKXtyZXR1cm4gd2luZG93LmxvY2F0aW9uLmhyZWYuaW5jbHVkZXMoIm9zdGlndXlsaW5jb2xuIil8fHdpbmRvdy5sb2NhdGlvbi5ocmVmLmluY2x1ZGVzKCJ0YXlsb3JsaW5jb2xuIik\/ImxpbmNvbG4iOmR9dmFyIHQ9STt0LnNpVHlwZT0iPHNpLXR5cGU+Ijt2YXIgSjtpZigib2JqZWN0Ij09PXR5cGVvZiB6JiYhelt3aW5kb3cuZGVwbG95bWVudFR5cGVdKXJldHVybiBkZWJ1Z19kMmZ0LmxvZygiTm8gYWRvYmUgdHJhY2tpbmcgZm9yOiAiK3dpbmRvdy5kZXBsb3ltZW50VHlwZSksdGhpczt0PWZ1bmN0aW9uKGQpe2QucGFnZUlkPVMoZC5wYWdlSWQpO2QuY2xpZW50PVQoZC5jbGllbnQpOyQuZXh0ZW5kKCEwLGQsZnVuY3Rpb24oKXt2YXIgYj0Ke307JC5lYWNoKCQoIiNkaWdpdGFsX2RhdGFfaW5mbyIpLmZpbmQoImlucHV0Iikuc2VyaWFsaXplQXJyYXkoKSxmdW5jdGlvbigpe2JbdGhpcy5uYW1lXT10aGlzLnZhbHVlfSk7cmV0dXJuIGJ9KCkpOy9ldi1saWdodG5pbmcoLWZyKT9cLmh0bWwvLnRlc3Qod2luZG93LmxvY2F0aW9uLnBhdGhuYW1lKSYmKGQubWFrZT0iRm9yZCIsZC5tb2RlbD0iRjE1MCBMaWdodG5pbmciKTsvZXYtbWFjaC1lKC1mcik\/XC5odG1sLy50ZXN0KHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSkmJihkLm1ha2U9IkZvcmQiLGQubW9kZWw9Ik11c3RhbmcgTWFjaCBFIik7cmV0dXJuIGR9KHQpO2NvbnNvbGUubG9nKCJEMkZUIHBhZ2VEYXRhIix0KTt2YXIgVT17cGFnZTp7dXNlckxhbmd1YWdlOm51bGwsY2xpZW50Om51bGwsc2l0ZTpudWxsLHBhZ2VOYW1lOiI8cGFnZU5hbWU+IixzaXRlU2VjdGlvbjoiPHNpdGVTZWN0aW9uPiIsaGllcmFyY2h5OiI8aGllcmFyY2h5PiIscGFnZU5hbWVOb1ZlaGljbGU6IjxwYWdlbmFtZS1uby12ZWhpY2xlPiIsCnJhZFVJVmVyc2lvbjoiPHJhZFVJVmVyc2lvbj4iLHZhcmlhbnROYW1lOiI8dmFyaWFudE5hbWU+Iix0b29sOiI8dG9vbD4iLHRvb2xEZXNjcmlwdG9yOiI8dG9vbERlc2NyaXB0b3I+IixzZWFyY2hEZXB0aDoiPHNlYXJjaERlcHRoPiIsdmlucmVhbDoiPHZpblJlYWw+In0sdmVoaWNsZTp7bW9kZWxZZWFyOiI8bW9kZWxZZWFyPiIsbmFtZXBsYXRlOiI8bmFtZXBsYXRlPiIsYm9keU1vZGVsVHJpbToiPHZlaGljbGVUcmltPiIsZXh0SW50Q29sb3JDb2RlOiI8dmVoaWNsZUV4dEludENvbG9yQ29kZT4iLGVuZ2luZVRyYW5zOiI8dmVoaWNsZVRhbnNtaXNzaW9uPiIscHJpY2U6Ijx2ZWhpY2xlUHJpY2U+In0sdXNlcjp7cGFDb2RlOm51bGwsbGVhZFR5cGU6IjxwYWdlTG9hZExlYWRUeXBlPiIsY2tzVmlzaXRJZDoiPGNrc1Zpc2l0SWQ+In19LEs9MCxHPSExLEI9eyIqIjp7Ii5tYXBfb3Blbl9ob3Vyc19leHBhbmQiOntvbmNsaWNrOntvbmNsaWNrOiI8b3Blbl9ob3Vyc19vbmNsaWNrPiJ9fSwKJ2FbaHJlZio9Imdvb2dsZSJdW2hyZWYqPSJtYXBzIl0nOntvbmNsaWNrOntvbmNsaWNrOiJoZWxwOmRpcmVjdGlvbnMiLG9uY2xpY2tMaW5rTmFtZToiZGM6aGVscDpkaXJlY3Rpb25zIn19fSxob21lOnsiLnRyYWRlSW5CYXJfYnRuIjp7fSwiLnNlYXJjaC1ib3gtdGFicyBidXR0b24uc2VhcmNoLWJveC10YWIiOntvbmNsaWNrOntvbmNsaWNrOmZ1bmN0aW9uKCl7dmFyIGQ9IiI7dHJ5e2Q9dGhpcy5ldmVudERhdGEuZWxlbWVudC5hdHRyKCJkYXRhLXR5cGUiKX1jYXRjaChiKXtkZWJ1Z19kMmZ0LmxvZyhiKX0ibmV3aW52Ij09ZCYmKGQ9Im5ldyIpO3JldHVybiI8cGFnZWlkPjpjb250ZW50OmludmVudG9yeSBzZWFyY2g6IitkfX19LCIuY2Fyb3Vzc2VsIC5hcnJvd3MgLmFycm93LWxlZnQgLmFycm93Ijp7b25jbGljazp7b25jbGljazoiPHBhZ2VpZD46Y29udGVudDpzaG93cm9vbSBpbnZlbnRvcnkgc2Nyb2xsOmxlZnQifX0sIi5jYXJvdXNzZWwgLmFycm93cyAuYXJyb3ctcmlnaHQgLmFycm93Ijp7b25jbGljazp7b25jbGljazoiPHBhZ2VpZD46Y29udGVudDpzaG93cm9vbSBpbnZlbnRvcnkgc2Nyb2xsOnJpZ2h0In19LAoiLmN0YTRfc3BsaXRfaW1hZ2VfYnV0dG9uIjp7b25jbGljazp7b25jbGljazpmdW5jdGlvbigpe3ZhciBkPSIiLGI9IiIsaD0iIjt0cnl7ZD10aGlzLmV2ZW50RGF0YS5lbGVtZW50LmZpbmQoInNwYW4iKS5odG1sKCksYj10aGlzLmV2ZW50RGF0YS5lbGVtZW50LmF0dHIoImhyZWYiKX1jYXRjaChjKXtkZWJ1Z19kMmZ0LmxvZyhjKX0vXihjb25maWd8YnVpbGQpL2kudGVzdChkKSYmKGg9ImJ1aWxkIGFuZCBwcmljZSIpOy9eZmluYW5jfGNyZWRpdC9pLnRlc3QoZCsiOjoiK2IpJiYoaD0iYXBwbHkgZm9yIGZpbmFuY2luZyIpOy9vZmZbcmVdW3JlXS9pLnRlc3QoZCkmJihoPSJjdXJyZW50IG9mZmVycyIpOy8ocmVxdWVzdHN8ZGVtYW5kZXMpLipcYnBhcnRzXGIvaS50ZXN0KGIpJiYoaD0ib3JkZXIgcGFydHMiKTsvKHJlcXVlc3RzfGRlbWFuZGVzKS4qXGIoZXNzYWl8dGVzdClcYi9pLnRlc3QoYikmJihoPSJ0ZXN0IGRyaXZlIik7aD1oP2g6ZC50b0xvd2VyQ2FzZSgpO3JldHVybiJob21lOmNvbnRlbnQ6IisKaH19fSwiI2Jhbm5lcl9zZWFyY2hfYmFyX2Zvcm1fYnV0dG9uIjp7b25jbGljazp7b25jbGljazpmdW5jdGlvbigpe3ZhciBkPSQoIiNiYW5uZXJfc2VhcmNoX2Jhcl9zZWxlY3RfbWFrZSIpLnZhbCgpLGI9JCgiI2Jhbm5lcl9zZWFyY2hfYmFyX3NlbGVjdF9tb2RlbCBvcHRpb246c2VsZWN0ZWQiKS50ZXh0KCksaD0kKCIjYmFubmVyX3NlYXJjaF9iYXJfc2VsZWN0X21vZGVsIikudmFsKCk7Yj1iLnJlcGxhY2UoL1woXGQrXCkvZywiIik7cmV0dXJuImhvbWU6Y29udGVudDppbnZlbnRvcnkgc2VhcmNoIisoImFsbCIhPWQmJiJhbGwiIT1oPyI6IitkKyIgIitiOiIiKS50b0xvd2VyQ2FzZSgpfX19fSwiPHNpLXR5cGU+OnNpOnZsczxzaS1zdWZmaXg+Ijp7Ii5jYXJCb3hXcmFwcGVyIGEiOntvbmNsaWNrOntvbmNsaWNrOiI8c2ktdHlwZT46c2k6dmxzPHNpLXN1ZmZpeD4iLG9uY2xpY2tMaW5rTmFtZToiZGM6PHNpLXR5cGU+OnNpOnZsczpjb250ZW50OmFjdGlvbjxzaS1zdWZmaXg+In19LAoiI2ZsdFNvcnRJZCBidXR0b24iOntpZ25vcmU6ITB9LCIuZGl2U3BhbkZpbHRlcnMgLmZsdFdyYXBwZXIgYnV0dG9uIjp7aWdub3JlOiEwfSwiLmJ1eV9ub3dfY2FyZF9jdGEiOntpc0dsb2JhbDohMSxvbmNsaWNrOntvbmNsaWNrOiI8c2ktdHlwZT46c2k6dmxzOmJ1eSBub3ciLG9uY2xpY2tMaW5rTmFtZToiZGM6PHNpLXR5cGU+OnNpOnZsczpjb250ZW50OmFjdGlvbiJ9fX0sIjxzaS10eXBlPjpzaTp2ZWhpY2xlIGRldGFpbHM8c2ktc3VmZml4PiI6eyIud2luZG93LXN0aWNrZXItYWN0aW9uLWJveCBhIjp7cGFnZTp7dmFyaWFudE5hbWU6IndpbmRvdy1zdGlja2VyIix0b29sOiJldmVudDp3aW5kb3cgc3RpY2tlciIsdG9vbERlc2NyaXB0b3I6InZlaGljbGUgZGV0YWlsczp3aW5kb3cgc3RpY2tlciJ9LG9uY2xpY2s6e29uY2xpY2tMaW5rTmFtZToiZGM6PHNpLXR5cGU+OnNpOnZlaGljbGUgZGV0YWlsczp2aWV3IHdpbmRvdyBzdGlja2VyPHNpLXN1ZmZpeD4iLG9uY2xpY2s6IjxzaS10eXBlPjpzaTp2ZWhpY2xlIGRldGFpbHM6dmlldyB3aW5kb3cgc3RpY2tlcjxzaS1zdWZmaXg+In19LAoiLnNsaWRlcyAuc2xpZGUgYSI6e2NvbnRlbnRBY3Rpb246InBob3RvIGNsaWNrIn0sIiNwb3B1cFNwZWNzUmVxdWVzdCI6e2NvbnRlbnRBY3Rpb246InByaW50In0sIiNzaGFyZU9uRmFjZWJvb2siOntjb250ZW50QWN0aW9uOiJmYWNlYm9vayBsaWtlIn0sIiNidXlOb3dPRU1Nb2RlbF9saW5rIjp7b25jbGljazp7b25jbGljazoiPHNpLXR5cGU+OnNpOnZlaGljbGUgZGV0YWlsczpidXkgbm93IixvbmNsaWNrTGlua05hbWU6ImRjOjxzaS10eXBlPjpzaTp2bHM6Y29udGVudDphY3Rpb246PG5hbWVwbGF0ZT4ifX19LHNob3dyb29tOnsiLmRpdkNhclRpdGxlQ29udGFpbmVyIGEiOntvbmNsaWNrOntvbmNsaWNrOiI8cGFnZWlkPjpjb250ZW50OnZlaGljbGUgY2xpY2s6PG5hbWVwbGF0ZT4ifX19LCJjb21tZXJjaWFsOmhvbWUiOnsiLmRpdkNhclRpdGxlQ29udGFpbmVyIGEiOntwYWdlOntoaWVyYXJjaHk6ImNvbW1lcmNpYWw6aG9tZSJ9LG9uY2xpY2s6e29uY2xpY2s6IjxwYWdlaWQ+OmNvbnRlbnQ6dmVoaWNsZSBjbGljazo8bmFtZXBsYXRlPiJ9fSwKIiNjb21tZXJjaWFsZm9ybV9mb3JtIGJ1dHRvbiI6e3BhZ2U6e2hpZXJhcmNoeToiY29tbWVyY2lhbDpob21lOmNvbnRhY3Q6dGhhbmsgeW91OjxuYW1lcGxhdGU+IixwYWdlTmFtZU5vVmVoaWNsZToiZGM6Y29tbWVyY2lhbDpob21lOmNvbnRhY3Q6dGhhbmsgeW91Iix0b29sOiJkZWZhdWx0IGZvcm0iLHRvb2xEZXNjcmlwdG9yOiJjb21tZXJjaWFsOmNvbnRhY3QifSx1c2VyOntsZWFkVHlwZToiY29tbWVyY2lhbDpjb250YWN0In19LCIuZGl2Q2FySW1hZ2VDb250YWluZXIgYSI6e3BhZ2U6e2hpZXJhcmNoeToiY29tbWVyY2lhbDpob21lIn0sb25jbGljazp7b25jbGljazoiPHBhZ2VpZD46Y29udGVudDp2ZWhpY2xlIGNsaWNrOjxuYW1lcGxhdGU+In0sdXNlcjp7bGVhZFR5cGU6IiIsdG9vbDoiIix0b29sRGVzY3JpcHRvcjoiIn19LCIuZGl2Q2FyUGF5bWVudENvbnRhaW5lciBhIjp7cGFnZTp7dmFyaWFudE5hbWU6InBheW1lbnQtZXN0aW1hdG9yLW9uY2xpY2siLGhpZXJhcmNoeToic2hvcHBpbmcgdG9vbHM6cGF5bWVudCBlc3RpbWF0b3I6Y29tbWVyY2lhbDo8bmFtZXBsYXRlPiJ9LApvbmNsaWNrOntvbmNsaWNrOiJ2ZWhpY2xlIGNsaWNrOjxuYW1lcGxhdGU+In0sdXNlcjp7bGVhZFR5cGU6InNob3dyb29tOnBheW1lbnQgZXN0aW1hdG9yIix0b29sOiJldmVudDpwYXltZW50IGVzdGltYXRvciIsdG9vbERlc2NyaXB0b3I6InNob3dyb29tOnBheW1lbnQgZXN0aW1hdG9yIn19fSxwb3B1cDp7IiNUcmFkZUluQmFyUG9wdXBDb250YWluZXIiOmZ1bmN0aW9uKCl7dmFyIGQ9e3BhZ2U6e2hpZXJhcmNoeToic2hvcHBpbmcgdG9vbHM6dmFsdWUgeW91ciB0cmFkZTxzaS1jYXRlZ29yeT48c2ktc3VmZml4PiIscGFnZU5hbWU6ImRjOjxwYWdlSWROb1N1ZmZpeD46dmFsdWUgeW91ciB0cmFkZTxzaS1zdWZmaXg+IixwYWdlTmFtZU5vVmVoaWNsZToiZGM6PHBhZ2VJZE5vU3VmZml4Pjp2YWx1ZSB5b3VyIHRyYWRlIn0sdXNlcjp7bGVhZFR5cGU6IjxzZWN0aW9uPjp2YWx1ZSB5b3VyIHRyYWRlIn19O3RyeXsvYmFubmVyfHRyYWRlaW5iYXIvLnRlc3QodGhpcy5sYXN0RXZlbnQuZGF0YS5zZXR0aW5ncy5wb3B1cEV2ZW50U291cmNlKSYmCiQuZXh0ZW5kKCEwLGQse3BhZ2U6e3NpdGVTZWN0aW9uOiJnbG9iYWwiLHBhZ2VOYW1lOiJkYzpnbG9iYWw6dmFsdWUgeW91ciB0cmFkZTxzaS1zdWZmaXg+IixwYWdlTmFtZU5vVmVoaWNsZToiZGM6Z2xvYmFsOnZhbHVlIHlvdXIgdHJhZGUifX0pfWNhdGNoKGIpe31yZXR1cm4gZH0sIiNtb250aGx5UGF5bWVudHNQb3B1cENvbnRhaW5lciI6e3BhZ2U6e2hpZXJhcmNoeToic2hvcHBpbmcgdG9vbHM6Z2V0IHF1b3RlPHNpLWNhdGVnb3J5PjxzaS1zdWZmaXg+IixwYWdlTmFtZToiZGM6PHBhZ2VJZE5vU3VmZml4Pjp2cmZxPHNpLXN1ZmZpeD4iLHBhZ2VOYW1lTm9WZWhpY2xlOiJkYzo8cGFnZUlkTm9TdWZmaXg+OnZyZnEiLHNpdGVTZWN0aW9uOiJnZXQgcXVvdGUifX0sIiNwYXltZW50Q2FsY3VsYXRvclBvcHVwQ29udGFpbmVyIjpmdW5jdGlvbigpe3JldHVybi86c2k6dmxzLy50ZXN0KHRoaXMuc3RhdGljRGF0YS5wYWdlSWQpP3tjb250ZW50QWN0aW9uOiJwYXltZW50IGVzdGltYXRvciIsCnBhZ2U6e3ZhcmlhbnROYW1lOiJwYXltZW50LWVzdGltYXRvci1vbmNsaWNrIixoaWVyYXJjaHk6IjxwYXltZW50LWVzdGltYXRvci1oaWVyYXJjaHk+IixwYWdlTmFtZToiZGM6PHBhZ2VJZE5vU3VmZml4PjpwYXltZW50IGVzdGltYXRvcjpjb250ZW50IGFjdGlvbjxwYXltZW50LWVzdGltYXRvci1zaS1zdWZmaXg+IixwYWdlTmFtZU5vVmVoaWNsZToiZGM6PHBhZ2VJZE5vU3VmZml4PjpwYXltZW50IGVzdGltYXRvcjpjb250ZW50IGFjdGlvbiIsdG9vbDoiZXZlbnQ6cGF5bWVudCBlc3RpbWF0b3IiLHRvb2xEZXNjcmlwdG9yOiJ2bHM6cGF5bWVudCBlc3RpbWF0b3IiLHNpdGVTZWN0aW9uOiI8c2l0ZVNlY3Rpb24+In0sb25jbGljazp7b25jbGlja0xpbmtOYW1lOiJkYzo8cGFnZUlkTm9TdWZmaXg+OnBheW1lbnQgZXN0aW1hdG9yOmNvbnRlbnQgYWN0aW9uPHBheW1lbnQtZXN0aW1hdG9yLXNpLXN1ZmZpeD4iLG9uY2xpY2s6IjxwYWdlSWROb1N1ZmZpeD46cGF5bWVudCBlc3RpbWF0b3I6ZXN0aW1hdGUifSwKdXNlcjp7bGVhZFR5cGU6InZsczpwYXltZW50IGVzdGltYXRvciJ9fTovdmVoaWNsZTp8dmVoaWNsZSBkZXRhaWxzLy50ZXN0KHRoaXMuc3RhdGljRGF0YS5wYWdlSWQpP3twYWdlOntoaWVyYXJjaHk6InNob3BwaW5nIHRvb2xzOnBheW1lbnQgZXN0aW1hdG9yPHNpLWNhdGVnb3J5PjxzaS1zdWZmaXg+IixwYWdlTmFtZToiZGM6PHBhZ2VJZE5vU3VmZml4PjpwYXltZW50IGVzdGltYXRvcjxzaS1zdWZmaXg+IixwYWdlTmFtZU5vVmVoaWNsZToiZGM6PHBhZ2VJZE5vU3VmZml4PjpwYXltZW50IGVzdGltYXRvciIsc2l0ZVNlY3Rpb246IjxzaXRlU2VjdGlvbj4iLHZhcmlhbnROYW1lOiJnbG9iYWwtb3ZlcmxheSIsdG9vbDoiZXZlbnQ6cGF5bWVudCBlc3RpbWF0b3IiLHRvb2xEZXNjcmlwdG9yOiJ2ZWhpY2xlIGRldGFpbHM6cGF5bWVudCBlc3RpbWF0b3IifSxvbmNsaWNrOntvbmNsaWNrOiI8c2l0ZVNlY3Rpb24+OnNpOnZlaGljbGUgZGV0YWlsczpwYXltZW50IGVzdGltYXRvcjpkaXNjb3ZlciBvZmZlciJ9LAp1c2VyOntsZWFkVHlwZToidmRwOnBheW1lbnQgZXN0aW1hdG9yIn19OiExfSwiLnNuc19wb3B1cCI6e3BhZ2U6e3BhZ2VOYW1lOiJkYzo8cGFnZUlkTm9TdWZmaXg+OnNjcmF0Y2ggb2ZmZXI8c2ktc3VmZml4PiIscGFnZU5hbWVOb1ZlaGljbGU6ImRjOjxwYWdlSWROb1N1ZmZpeD46c2NyYXRjaCBvZmZlciIsaGllcmFyY2h5OiJzaG9wcGluZyB0b29sczpzY3JhdGNoIG9mZmVyPHNpLWNhdGVnb3J5PjxzaS1zdWZmaXg+In19LCIjcG9wdXBDb250YWluZXJfYXZhaWxhYmlsaXR5dXNlZCI6e3BhZ2U6e2hpZXJhcmNoeToic2hvcHBpbmcgdG9vbHM6Y29uZmlybSBhdmFpbGFiaWxpdHk8c2ktY2F0ZWdvcnk+PHNpLXN1ZmZpeD4iLHBhZ2VOYW1lOiJkYzo8cGFnZUlkTm9TdWZmaXg+OmNvbmZpcm0gYXZhaWxhYmlsaXR5PHNpLXN1ZmZpeD4iLHBhZ2VOYW1lTm9WZWhpY2xlOiJkYzo8cGFnZUlkTm9TdWZmaXg+OmNvbmZpcm0gYXZhaWxhYmlsaXR5IixzaXRlU2VjdGlvbjoiPHNpdGVTZWN0aW9uPiJ9fX19LApQPWZ1bmN0aW9uKCl7dmFyIGQ9e307aWYoInVuZGVmaW5lZCI9PXR5cGVvZiB3aW5kb3cuZ1VzZWRTcnBBcHB6KXJldHVybiBkO3RyeXt2YXIgYj13aW5kb3cuZ1VzZWRTcnBBcHB6LmZpbHRlckludGVyZmFjZS5nZXRIdW1hbkZpbHRlclN0YXRlKCk7MT09Yi5mbHRNb2RlbElkLmxlbmd0aCYmMT09Yi5mbHRNYWtlSWQubGVuZ3RoJiYoZC5tYWtlPWIuZmx0TWFrZUlkWzBdLGQubW9kZWw9Yi5mbHRNb2RlbElkWzBdKTsxPT1iLmZsdENhcm9zc2VyaWVJZC5sZW5ndGgmJihkLnZlaGljbGVDYXRlZ29yeT1iLmZsdENhcm9zc2VyaWVJZFswXSl9Y2F0Y2goaCl7ZGVidWdfZDJmdC5sb2coIkQyRlQgU2VhcmNoIEZpbHRlciBFcnJvciIsaCl9cmV0dXJuIGR9LFY9eyIjaG9tZXBhZ2UtYmFubmVyIC5uaXZvLWltYWdlTGluayI6ImJhbm5lciBjbGljayIsIi5uZXdDYXJDYXJkIGEiOiJzaG93cm9vbSBzZWFyY2g6PG5hbWVwbGF0ZT4iLCIuc2xpZGUtYXJyb3dzIGEiOiJwaG90byBzY3JvbGwiLAoiI3NjcmF0Y2hhbmRzYXZlX2VtYmVkZGVkX2J0bl8yIjoic3BlY2lhbCBvZmZlciIsIi5zY2hlZHVsZVRlc3REcml2ZURlYWxlciI6InRlc3QgZHJpdmU6ZGVhbGVyc2hpcCIsIi5zY2hlZHVsZVRlc3REcml2ZUhvbWUiOiJ0ZXN0IGRyaXZlOmhvbWUiLCIuc2NoZWR1bGVUZXN0RHJpdmVWaXJ0dWFsIjoidGVzdCBkcml2ZTp2aXJ0dWFsIiwiI0ZpbmFuY2VBY3Rpb25Cb3hfcG9wdXAiOiJmaW5hbmNlIGl0IiwiI0NyZWRpdFNjb3JlQnRuIjoiY3JlZGl0IHNjb3JlIiwiLnNwZWNzLXRvZ2dsZSBhIjoiPHNwZWNzLXRvZ2dsZS10eXBlPiIsIiNzdHlsZXMtY29udGFpbmVyIGxpIGEiOiJ0cmltIHNlbGVjdDx2ZHAtdHJpbT4iLCIjQnVpbGRBbmRQcmljZUFjdGlvbkJveExpbmsiOiJidWlsZCBhbmQgcHJpY2UiLCIjc2NyYXRjaGFuZHNhdmVfZW1iZWRkZWRfYnRuXzEiOiJkaXNjb3ZlciBvZmZlciIsIiNjb21wYXJlX3RhYmxlIGEiOiJ2ZWhpY2xlIGNvbXBhcmU8Y29tcGFyaXNvbi1uYW1lcGxhdGU+IiwKIi5fX3ZpZXdfbWFwIjoidmlldyBvbiBtYXAiLCIucGF5bWVudENhbGN1bGF0b3JWRFAiOiJwYXltZW50IGVzdGltYXRvciIsIi5fX3BheW1lbnRDYWxjdWxhdG9yIjoicGF5bWVudCBlc3RpbWF0b3IiLCJ1bC50cmltVGFicyBsaSI6ImNvbXBhcmU6dHJpbSBzZWxlY3Q8Y29tcGFyaXNvbi10cmltPiIsIiNFdmFsQWN0aW9uQm94TGluayI6InZhbHVlIHlvdXIgdHJhZGUiLCIjQnVpbGRBbmRQcmljZUFjdGlvbkJveExpbmsiOiJidWlsZCBhbmQgcHJpY2UiLCIjY29tcGFyZVNlbGVjdCI6ImNvbXBhcmU6dHJpbSBzZWxlY3Q6PHNlbGVjdGVkLW9wdGlvbi10ZXh0PiIsIiNzZWVfb3B0aW9ucyBhIjoic2VlIG9wdGlvbnMiLCIjRmluYW5jZU11bHRpc3RlcEFjdGlvbkJveExpbmsiOiJnZXQgYXBwcm92ZWQiLCIucHJvbW9zLWNvbnRhaW5lciAucHJvbW9zIGEiOiJvZmZlciBjbGljazxwcm9tby1uYW1lPiIsJ1tkYXRhLXRhZ2dpbmc9ImJyb2NodXJlLWRvd25sb2FkIl0nOiJicm9jaHVyZSBkb3dubG9hZDo8YnJvY2h1cmVOYW1lPiIsCidbZGF0YS10YWdnaW5nPSJpbmNlbnRpdmVzIl0nOiJleHBsb3JlIGluY2VudGl2ZXMiLCdbZGF0YS10YWdnaW5nPSJjaGFyZ2luZyJdJzoiZXhwbG9yZSBjaGFyZ2luZyIsJ1tkYXRhLXRhZ2dpbmc9Im93bmVyc2hpcCJdJzoib3duZXJzaGlwIGluZm8iLCdbZGF0YS10YWdnaW5nPSJtYWNoZSJdJzoiZXhwbG9yZSBtYWNoIGUiLCdbZGF0YS10YWdnaW5nPSJmMTUwIl0nOiJleHBsb3JlIGYxNTAiLCdbZGF0YS10YWdnaW5nPSJzY2hlZHVsZS1zZXJ2aWNlIl0nOiJzY2hlZHVsZSBzZXJ2aWNlIiwnW2RhdGEtdGFnZ2luZz0idmlldy1pbnZlbnRvcnkiXSc6InZpZXcgaW52ZW50b3J5IiwnW2RhdGEtdGFnZ2luZz0iY2hhcmdpbmctdXBkYXRlcyJdJzoiY2hhcmdpbmcgdXBkYXRlcyJ9LFc9eyJDb21tZXJjaWFsUmVxdWVzdF8oRlJ8RU4pIjp7cGFnZTp7aGllcmFyY2h5OiJjb21tZXJjaWFsOmhvbWU6Y3JlZGl0IGNoZWNrOnRoYW5rIHlvdTo8bmFtZXBsYXRlPiIscGFnZU5hbWU6ImRjOmNvbW1lcmNpYWw6aG9tZTpjb250YWN0OnRoYW5rIHlvdSIsCnBhZ2VOYW1lTm9WZWhpY2xlOiJkYzpjb21tZXJjaWFsOmhvbWU6Y29udGFjdDp0aGFuayB5b3UiLHRvb2w6ImRlZmF1bHQgZm9ybSIsdG9vbERlc2NyaXB0b3I6ImNvbW1lcmNpYWw6Y29udGFjdCJ9LHVzZXI6e2xlYWRUeXBlOiJjb21tZXJjaWFsOmNvbnRhY3QifX0sQ3JlZGl0TXVsdGlzdGVwUmVxdWVzdDp7cGFnZTp7dmFyaWFudE5hbWU6ImdldC1wcmUtYXBwcm92ZWQtc3VibWl0IixoaWVyYXJjaHk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yZXNvbHZlUHJlQXBwcm92YWxWYXJzKCJmb3JtLXN1Ym1pdCIsImhpZXJhcmNoeSIpfSxwYWdlTmFtZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJlc29sdmVQcmVBcHByb3ZhbFZhcnMoImZvcm0tc3VibWl0IiwicGFnZU5hbWUiKX0scGFnZU5hbWVOb1ZlaGljbGU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yZXNvbHZlUHJlQXBwcm92YWxWYXJzKCJmb3JtLXN1Ym1pdCIsInBhZ2VOYW1lTm9WZWhpY2xlIil9LHRvb2w6ImdldCBwcmUtYXBwcm92ZWQiLAp0b29sRGVzY3JpcHRvcjoiZ2V0IHByZS1hcHByb3ZlZDpzdWJtaXR0ZWQifSxldmVudDp7YWN0aW9uOiJnZXQgcHJlYXBwcm92ZWR8dG9vbCJ9fSxGaW5hbmNlTXVsdGlzdGVwQWN0aW9uQm94TGluazp7cGFnZTp7dmFyaWFudE5hbWU6ImdldC1wcmUtYXBwcm92ZWQtc3VibWl0IixoaWVyYXJjaHk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yZXNvbHZlUHJlQXBwcm92YWxWYXJzKCJmb3JtLXN1Ym1pdCIsImhpZXJhcmNoeSIpfSxwYWdlTmFtZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJlc29sdmVQcmVBcHByb3ZhbFZhcnMoImZvcm0tc3VibWl0IiwicGFnZU5hbWUiKX0scGFnZU5hbWVOb1ZlaGljbGU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yZXNvbHZlUHJlQXBwcm92YWxWYXJzKCJmb3JtLXN1Ym1pdCIsInBhZ2VOYW1lTm9WZWhpY2xlIil9LHRvb2w6ImdldCBwcmUtYXBwcm92ZWQiLHRvb2xEZXNjcmlwdG9yOiJnZXQgcHJlLWFwcHJvdmVkOnN1Ym1pdHRlZCJ9LGV2ZW50OnthY3Rpb246ImdldCBwcmVhcHByb3ZlZHx0b29sIn19LApSZWJhdGVDb3Vwb246ZnVuY3Rpb24oZCl7dmFyIGI9InZlaGljbGUgZGV0YWlscyIsaD0idmRwIjskKCJib2R5IikuaXMoIiNORVdDQVJERVRBSUxTIikmJihiPWg9InZlaGljbGUiKTtiPXtwYWdlOntoaWVyYXJjaHk6InNob3BwaW5nIHRvb2xzOjxmb3JtLWxhYmVsPjxzaS1jYXRlZ29yeT48c2ktc3VmZml4PiIscGFnZU5hbWU6ImRjOjxwYWdlSWROb1N1ZmZpeD46PGZvcm0tbGFiZWw+OnRoYW5rIHlvdTxzaS1zdWZmaXg+IixwYWdlTmFtZU5vVmVoaWNsZToiZGM6PHBhZ2VJZE5vU3VmZml4Pjo8Zm9ybS1sYWJlbD46dGhhbmsgeW91Iix0b29sOiJkZWZhdWx0IGZvcm0iLHRvb2xEZXNjcmlwdG9yOmIrIjpzY3JhdGNoIG9mZmVyIn0sdXNlcjp7bGVhZFR5cGU6aCsiOnNjcmF0Y2ggb2ZmZXIifX07ZC5kYXRhLmZvcm1MYWJlbD0oIiIrZW1haWxIYW5kbGVyLnBvcHVwT2ZmZXJUeXBlKS5yZXBsYWNlKC8oXFM\/KShbQS1aXSkvZyxmdW5jdGlvbihjLGEsZSl7Yz1hOzA8YS5sZW5ndGgmJgooYys9Ii0iKTtyZXR1cm4gYytlLnRvTG93ZXJDYXNlKCl9KTsvc2NyYXRjaC9pLnRlc3QoZW1haWxIYW5kbGVyLnBvcHVwT2ZmZXJUeXBlKSYmKGQuZGF0YS5mb3JtTGFiZWw9InNjcmF0Y2ggb2ZmZXIiKTsvY291cG9ufHJlYmF0ZS9pLnRlc3QoZW1haWxIYW5kbGVyLnBvcHVwT2ZmZXJUeXBlKSYmKGQuZGF0YS5mb3JtTGFiZWw9InZvdWNoZXIiKTsiIj09ZC5kYXRhLmZvcm1MYWJlbCYmKGQuZGF0YS5mb3JtTGFiZWw9InNjcmF0Y2ggb2ZmZXIiKTtyZXR1cm4gYn0sInByaWNldmVoaWNsZShuZXcpPyI6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yZXNvbHZlVmFsdWVZb3VyVHJhZGVUaGFua1lvdS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LFBhcnRzUmVxdWVzdDp7cGFnZTp7aGllcmFyY2h5OiJzZXJ2aWNlIGFuZCBwYXJ0czpvcmRlciBwYXJ0cyIscGFnZU5hbWU6ImRjOnNlcnZpY2U6b3JkZXIgcGFydHM6Y29udGFjdCB1czp0aGFuayB5b3UiLHBhZ2VOYW1lTm9WZWhpY2xlOiJkYzpzZXJ2aWNlOm9yZGVyIHBhcnRzOmNvbnRhY3QgdXM6dGhhbmsgeW91IiwKdG9vbDoiZGVmYXVsdCBmb3JtIix0b29sRGVzY3JpcHRvcjoib3JkZXIgcGFydHM6Y29udGFjdCIsc2l0ZVNlY3Rpb246InNlcnZpY2UgYW5kIHBhcnRzIn0sdXNlcjp7bGVhZFR5cGU6Im9yZGVyIHBhcnRzOmNvbnRhY3QifSxldmVudDp7YWN0aW9uOiJsZWFkIHN1Ym1pdHRlZHx0b29sIn19LFNlcnZpY2VSZXF1ZXN0OntwYWdlOntoaWVyYXJjaHk6InNlcnZpY2UgYW5kIHBhcnRzOnJlcXVlc3QgYXBwb2ludG1lbnQiLHBhZ2VOYW1lOiJkYzpzZXJ2aWNlOnJlcXVlc3QgYXBwb2ludG1lbnQ6dGhhbmsgeW91IixwYWdlTmFtZU5vVmVoaWNsZToiZGM6c2VydmljZTpyZXF1ZXN0IGFwcG9pbnRtZW50OnRoYW5rIHlvdSIsdG9vbDoiZGVmYXVsdCBmb3JtIix0b29sRGVzY3JpcHRvcjoicmVxdWVzdCBhcHBvaW50bWVudCIsc2l0ZVNlY3Rpb246InNlcnZpY2UgYW5kIHBhcnRzIn0sdXNlcjp7bGVhZFR5cGU6InJlcXVlc3QgYXBwb2ludG1lbnQifSxldmVudDp7YWN0aW9uOiJsZWFkIHN1Ym1pdHRlZHx0b29sIn19LApUaXJlc1JlcXVlc3Q6e3BhZ2U6e2hpZXJhcmNoeToic2VydmljZSBhbmQgdGlyZXM6b3JkZXIgdGlyZXMiLHBhZ2VOYW1lOiJkYzpzZXJ2aWNlOm9yZGVyIHRpcmVzOmNvbnRhY3QgdXM6dGhhbmsgeW91IixwYWdlTmFtZU5vVmVoaWNsZToiZGM6c2VydmljZTpvcmRlciB0aXJlczpjb250YWN0IHVzOnRoYW5rIHlvdSIsdG9vbDoiZGVmYXVsdCBmb3JtIix0b29sRGVzY3JpcHRvcjoib3JkZXIgdGlyZXM6Y29udGFjdCIsc2l0ZVNlY3Rpb246InNlcnZpY2UgYW5kIHBhcnRzIn0sdXNlcjp7bGVhZFR5cGU6Im9yZGVyIHRpcmVzOmNvbnRhY3QifSxldmVudDp7YWN0aW9uOiJsZWFkIHN1Ym1pdHRlZHx0b29sIn19LEJvZHlTaG9wOntwYWdlOntoaWVyYXJjaHk6InNlcnZpY2UgYW5kIHBhcnRzOnJlcXVlc3QgYm9keSBzaG9wIixwYWdlTmFtZToiZGM6c2VydmljZTpyZXF1ZXN0IGJvZHkgc2hvcDp0aGFuayB5b3UiLHBhZ2VOYW1lTm9WZWhpY2xlOiJkYzpzZXJ2aWNlOnJlcXVlc3QgYm9keSBzaG9wOnRoYW5rIHlvdSIsCnRvb2w6ImRlZmF1bHQgZm9ybSIsdG9vbERlc2NyaXB0b3I6InJlcXVlc3QgYm9keSBzaG9wIixzaXRlU2VjdGlvbjoic2VydmljZSBhbmQgcGFydHMifSx1c2VyOntsZWFkVHlwZToicmVxdWVzdCBib2R5IHNob3AifSxldmVudDp7YWN0aW9uOiJsZWFkIHN1Ym1pdHRlZHx0b29sIn19LENvbnRhY3RSZXF1ZXN0OntwYWdlOntwYWdlTmFtZToiZGM6YWJvdXQgdXM6Y29udGFjdCB1czp0aGFuayB5b3UiLHBhZ2VOYW1lTm9WZWhpY2xlOiJkYzphYm91dCB1czpjb250YWN0IHVzOnRoYW5rIHlvdSIsdG9vbDoiZGVmYXVsdCBmb3JtIix0b29sRGVzY3JpcHRvcjoiY29udGFjdCB1czpjb250YWN0In0sdXNlcjp7bGVhZFR5cGU6ImNvbnRhY3QgdXM6Y29udGFjdCJ9LGV2ZW50OnthY3Rpb246ImxlYWQgc3VibWl0dGVkfHRvb2wifX0sbWVudUNvbnRhY3RVczp7cGFnZTp7aGllcmFyY2h5OiJhYm91dCB1czpleHByZXNzIHJlcXVlc3QiLHBhZ2VOYW1lOiJkYzphYm91dCB1czpleHByZXNzIHJlcXVlc3Q6dGhhbmsgeW91IiwKcGFnZU5hbWVOb1ZlaGljbGU6ImRjOmFib3V0IHVzOmV4cHJlc3MgcmVxdWVzdDp0aGFuayB5b3UiLHRvb2w6ImRlZmF1bHQgZm9ybSIsdG9vbERlc2NyaXB0b3I6ImV4cHJlc3MgcmVxdWVzdDpjb250YWN0IixzaXRlU2VjdGlvbjoiYWJvdXQgdXMifSx1c2VyOntsZWFkVHlwZToiZXhwcmVzcyByZXF1ZXN0OmNvbnRhY3QifSxldmVudDp7YWN0aW9uOiJsZWFkIHN1Ym1pdHRlZHx0b29sIn19LENyZWRpdFNjb3JlOmZ1bmN0aW9uKCl7dmFyIGQ9InZlaGljbGUgZGV0YWlscyIsYj0idmRwIjskKCJib2R5IikuaXMoIiNORVdDQVJERVRBSUxTIikmJihkPWI9InZlaGljbGUiKTtyZXR1cm57cGFnZTp7aGllcmFyY2h5OiJzaG9wcGluZyB0b29sczpjcmVkaXQgY2hlY2s8c2ktY2F0ZWdvcnk+PHNpLXN1ZmZpeD4iLHBhZ2VOYW1lOiJkYzo8cGFnZUlkTm9TdWZmaXg+OmNyZWRpdCBjaGVjazp0aGFuayB5b3U8c2ktc3VmZml4PiIscGFnZU5hbWVOb1ZlaGljbGU6ImRjOjxwYWdlSWROb1N1ZmZpeD46Y3JlZGl0IGNoZWNrOnRoYW5rIHlvdSIsCnRvb2w6ImRlZmF1bHQgZm9ybSIsdG9vbERlc2NyaXB0b3I6ZCsiOmNyZWRpdCIsc2l0ZVNlY3Rpb246IjxzaXRlU2VjdGlvbj4ifSx1c2VyOntsZWFkVHlwZTpiKyI6Y3JlZGl0In0sZXZlbnQ6e2FjdGlvbjoibGVhZCBzdWJtaXR0ZWR8dG9vbCJ9fX0sTW9udGhseVBheW1lbnRzOntwYWdlOntoaWVyYXJjaHk6InNob3BwaW5nIHRvb2xzOmdldCBxdW90ZTxzaS1jYXRlZ29yeT46PG5hbWVwbGF0ZT4iLHBhZ2VOYW1lOiJkYzo8cGFnZUlkTm9TdWZmaXg+OnZyZnE6dGhhbmsgeW91PHNpLXN1ZmZpeD4iLHBhZ2VOYW1lTm9WZWhpY2xlOiJkYzo8cGFnZUlkTm9TdWZmaXg+OnZyZnE6dGhhbmsgeW91Iix0b29sOiJldmVudDpnZXQgcXVvdGUiLHRvb2xEZXNjcmlwdG9yOiJ2ZWhpY2xlIGRldGFpbHM6Z2V0IHF1b3RlIixzaXRlU2VjdGlvbjoiZ2V0IHF1b3RlIix2YXJpYW50TmFtZToidnJmcS1jb21wbGV0ZSJ9LHVzZXI6e2xlYWRUeXBlOiJ2ZHA6dnJmcSJ9LGV2ZW50OnthY3Rpb246ImxlYWQgc3VibWl0dGVkfHRvb2wifX0sCkF2YWlsYWJpbGl0eTpmdW5jdGlvbigpe3ZhciBkPSJ2ZWhpY2xlIGRldGFpbHMiLGI9InZkcCI7JCgiYm9keSIpLmlzKCIjTkVXQ0FSREVUQUlMUyIpJiYoZD1iPSJ2ZWhpY2xlIik7cmV0dXJue3BhZ2U6e2hpZXJhcmNoeToic2hvcHBpbmcgdG9vbHM6Y29uZmlybSBhdmFpbGFiaWxpdHk8c2ktY2F0ZWdvcnk+PHNpLXN1ZmZpeD4iLHBhZ2VOYW1lOiJkYzo8cGFnZUlkTm9TdWZmaXg+OmNvbmZpcm0gYXZhaWxhYmlsaXR5OnRoYW5rIHlvdTxzaS1zdWZmaXg+IixwYWdlTmFtZU5vVmVoaWNsZToiZGM6PHBhZ2VJZE5vU3VmZml4Pjpjb25maXJtIGF2YWlsYWJpbGl0eTp0aGFuayB5b3UiLHRvb2w6ImV2ZW50OmNvbmZpcm0gYXZhaWxhYmlsaXR5Iix0b29sRGVzY3JpcHRvcjpkKyI6Y29uZmlybSBhdmFpbGFiaWxpdHkiLHNpdGVTZWN0aW9uOiI8c2l0ZVNlY3Rpb24+In0sdXNlcjp7bGVhZFR5cGU6YisiOmNvbmZpcm0gYXZhaWxhYmlsaXR5In0sZXZlbnQ6e2FjdGlvbjoibGVhZCBzdWJtaXR0ZWR8dG9vbCJ9fX0sCiJUZXN0RHJpdmUoPzpOZXcpPyI6e3BhZ2U6e2hpZXJhcmNoeToic2hvcHBpbmcgdG9vbHM6dGVzdCBkcml2ZTxzaS1jYXRlZ29yeT48c2ktc3VmZml4PiIscGFnZU5hbWU6ImRjOnRlc3QgZHJpdmU6dGhhbmsgeW91PHNpLXN1ZmZpeD4iLHBhZ2VOYW1lTm9WZWhpY2xlOiJkYzp0ZXN0IGRyaXZlOnRoYW5rIHlvdSIsdG9vbDoiZXZlbnQ6bGVhZCBzdWJtaXR0ZWQiLHRvb2xEZXNjcmlwdG9yOiJ0ZXN0IGRyaXZlIixzaXRlU2VjdGlvbjoidGVzdCBkcml2ZSJ9LHVzZXI6e2xlYWRUeXBlOiJ0ZXN0IGRyaXZlIn0sZXZlbnQ6e2FjdGlvbjoibGVhZCBzdWJtaXR0ZWR8dG9vbCJ9fSxDb250YWN0VXNSZXF1ZXN0OntwYWdlOntoaWVyYXJjaHk6InNob3BwaW5nIHRvb2xzOmNvbnRhY3Q8c2ktY2F0ZWdvcnk+PHNpLXN1ZmZpeD4iLHBhZ2VOYW1lOiJkYzp2ZWhpY2xlOjx2ZHAtY3RhLWJ0bi10aXRsZT46dGhhbmsgeW91PHNpLXN1ZmZpeD4iLHBhZ2VOYW1lTm9WZWhpY2xlOiJkYzp2ZWhpY2xlOjx2ZHAtY3RhLWJ0bi10aXRsZT46dGhhbmsgeW91IiwKdG9vbDoiZXZlbnQ6bGVhZCBzdWJtaXR0ZWQiLHRvb2xEZXNjcmlwdG9yOiI8dmRwLWN0YS1idG4tdGl0bGU+IixzaXRlU2VjdGlvbjoiPHZkcC1jdGEtYnRuLXRpdGxlPiJ9LHVzZXI6e2xlYWRUeXBlOiI8dmRwLWN0YS1idG4tdGl0bGU+In0sZXZlbnQ6e2FjdGlvbjoibGVhZCBzdWJtaXR0ZWR8dG9vbCJ9fSxNdWx0aUZvcm1fU01TOntwYWdlOntoaWVyYXJjaHk6InNob3BwaW5nIHRvb2xzOmdlbmVyYWwgb2ZmZXI8c2ktY2F0ZWdvcnk+OjxuYW1lcGxhdGU+IixwYWdlTmFtZToiZGM6PHNpLXR5cGU+OnNpOnZlaGljbGUgZGV0YWlsczpnZW5lcmFsIG9mZmVyOnRoYW5rIHlvdTxzaS1zdWZmaXg+IixwYWdlTmFtZU5vVmVoaWNsZToiZGM6PHNpLXR5cGU+OnNpOnZlaGljbGUgZGV0YWlsczpnZW5lcmFsIG9mZmVyOnRoYW5rIHlvdSIsdG9vbDoiZGVmYXVsdCBmb3JtIix0b29sRGVzY3JpcHRvcjoidmVoaWNsZSBkZXRhaWxzOmdlbmVyYWwgb2ZmZXIiLHNpdGVTZWN0aW9uOiJzZWFyY2ggaW52ZW50b3J5In0sCnVzZXI6e2xlYWRUeXBlOiJ2ZHA6Z2VuZXJhbCBvZmZlciJ9fX0sTD1mdW5jdGlvbihkKXtyZXR1cm4gZnVuY3Rpb24oKXtkZWJ1Z19kMmZ0LmxvZyhkLGFyZ3VtZW50cyl9fSxYPWZ1bmN0aW9uKCl7d2luZG93Ll9zYXRlbGxpdGU9d2luZG93Ll9zYXRlbGxpdGV8fHt9O3dpbmRvdy5fc2F0ZWxsaXRlLnRyYWNrPXdpbmRvdy5fc2F0ZWxsaXRlLnRyYWNrfHxmdW5jdGlvbigpe307d2luZG93Ll9zYXRlbGxpdGUuX21vbml0b3JzPXdpbmRvdy5fc2F0ZWxsaXRlLl9tb25pdG9yc3x8W107d2luZG93Ll9zYXRlbGxpdGUuX21vbml0b3JzLnB1c2goe3J1bGVUcmlnZ2VyZWQ6TCgicnVsZSB0cmlnZ2VyZWQiKSxydWxlQ29tcGxldGVkOkwoInJ1bGUgY29tcGxldGVkIikscnVsZUNvbmRpdGlvbkZhaWxlZDpMKCJydWxlIGNvbmRpdGlvbiBmYWlsZWQiKX0pOzA8JCgiI2Fkb2JlX2xhdW5jaCIpLmxlbmd0aD9jb25zb2xlLmRlYnVnKCJEMkZUIDo6IEFkb2JlIExhdW5jaCBhbHJlYWR5IGxvYWRlZCIpOgooIm9iamVjdCI9PT10eXBlb2YgeiYmKHo9elt3aW5kb3cuZGVwbG95bWVudFR5cGVdKSxmdW5jdGlvbihkLGIsaCl7dmFyIGM9ZC5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKTtjLnR5cGU9InRleHQvamF2YXNjcmlwdCI7Yy5hc3luYz0hMDtjLmlkPWg7Yy5zcmM9YjtjLnNldEF0dHJpYnV0ZSgiZGF0YS1vdC1pZ25vcmUiLCIiKTtkLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJoZWFkIilbMF0uYXBwZW5kQ2hpbGQoYyl9KGRvY3VtZW50LHosImFkb2JlX2xhdW5jaCIpLC9kMmNtZWRpYVwuY2EkLy50ZXN0KHdpbmRvdy5sb2NhdGlvbi5ob3N0KSYmKGVuYWJsZURlYnVnPWZ1bmN0aW9uKCl7dHJ5e3dpbmRvdy5fc2F0ZWxsaXRlLnNldERlYnVnKCEwKX1jYXRjaChkKXtyZXR1cm4gZGVidWdfZDJmdC5sb2coZCksc2V0VGltZW91dChlbmFibGVEZWJ1ZywzMDApfX0pKX0sWT1mdW5jdGlvbihkKXt2YXIgYj17fTtkLnJlcGxhY2UoLygoPzpGb3JkfExpbmNvbG4pfCg\/OjIwWzAtOV17Mn0pKSstKFteLV0rKS0oKD86W14tXC5dKyl8KD86MjBbMC05XXsyfSlcLmh0bWwpLywKZnVuY3Rpb24oaCxjLGEsZSl7L14yMFswLTldezJ9JC8udGVzdChjKT8oYyYmKGIueWVhcj1jKSxhJiYoYi5tYWtlPWEpLGUmJihiLm1vZGVsPWUucmVwbGFjZSgvXy9nLCIgIikucmVwbGFjZSgvXGIoW0EtWl0pXHMvLCIkMS0iKSkpOi9eMjBbMC05XXsyfSQvLnRlc3QoZSkmJihjJiYoYi55ZWFyPWUpLGEmJihiLm1ha2U9YyksZSYmKGIubW9kZWw9YSkpfSk7cmV0dXJuIGJ9LHg9bmV3IGZ1bmN0aW9uKCl7ZnVuY3Rpb24gZChjLGEpe3JldHVybiBmdW5jdGlvbigpe2MuYXBwbHkobnVsbCxhKX19dmFyIGI9dGhpczskLmV4dGVuZCghMCxiLHtsYXN0RXZlbnQ6bnVsbCxzdGF0aWNEYXRhOkksZXZlbnREYXRhOm51bGx9KTt2YXIgaD1mdW5jdGlvbihjKXt2YXIgYT0kLmV4dGVuZCghMCx7fSx0LGIuZXZlbnREYXRhLFAoKSk7YS5wYWdlSWROb1N1ZmZpeD1hLnBhZ2VJZC5yZXBsYWNlKC86Pyg8KHNpLXN1ZmZpeHxuYW1lcGxhdGV8KT58ZmluYW5jZSBkZXBhcnRtZW50KSQvLCIiKTtjPQpjLnJlcGxhY2UoLzwoW14+XSspPi9pZyxmdW5jdGlvbihlLGwpe3RyeXtzd2l0Y2gobCl7Y2FzZSAicGFnZU5hbWUiOnJldHVybiJkYzoiK2EucGFnZUlkO2Nhc2UgInBhZ2VJZE5vU3VmZml4IjpyZXR1cm4gYS5wYWdlSWROb1N1ZmZpeDtjYXNlICJzZWN0aW9uIjp2YXIgZj1hLnBhZ2VJZDtpZigvXnNlcnZpY2U6Ly50ZXN0KGYpKXJldHVybi90aXJlcy8udGVzdChmKT8ic2VydmljZSBhbmQgdGlyZXMiOiJzZXJ2aWNlIGFuZCBwYXJ0cyI7MDxmLmluZGV4T2YoIjoiKSYmKGY9Zi5zcGxpdCgiOiIpWzBdKTtyZXR1cm4gZjtjYXNlICJwYWdlSWQiOmNhc2UgInBhZ2VpZCI6cmV0dXJuIGEucGFnZUlkO2Nhc2UgImNrc1Zpc2l0SWQiOnZhciBnPW5ldyBEYXRlLHI9bmV3IERhdGUoZy5nZXRGdWxsWWVhcigpLGcuZ2V0TW9udGgoKSxnLmdldERhdGUoKSwwLDAsMCksbj1NYXRoLnJvdW5kKDEwMCpNYXRoLnJhbmRvbSgpKSxrPWcudG9JU09TdHJpbmcoKS5tYXRjaCgvXGR7Mn0oXGR7Mn0pLShcZHsyfSktKFxkezJ9KS8pLApwPW4rMUU5KzEwMCooZy5nZXRUaW1lKCktci5nZXRUaW1lKCkpLHY9ay5zbGljZSgxLDQpLmpvaW4oIiIpO3JldHVybiB2KyJfZGNfIitwO2Nhc2UgInZpblJlYWwiOnJldHVybigiIithLnZpbikudG9Mb3dlckNhc2UoKTtjYXNlICJtb2RlbFllYXIiOnZhciBDPXBhcnNlSW50KGEueWVhcik7cmV0dXJuIDA8Qz9DOiIhIVVOREVGISEiO2Nhc2UgIm5hbWVwbGF0ZSI6dmFyIHU9YS5tYWtlLHc9YS5tb2RlbDt3PSgiIithLm1vZGVsKS5yZXBsYWNlKCJfIiwiICIsdyk7cmV0dXJuIHUmJncmJiJicmFuZCIhPXUudG9Mb3dlckNhc2UoKT8odSsiICIrdykudG9Mb3dlckNhc2UoKToiISFVTkRFRiEhIjtjYXNlICJvbmNsaWNrTGlua05hbWUiOmlmKGEuaXNDbGlja1RvQ2FsbClyZXR1cm5gZGM6JHthLnBhZ2VJZH06Y2xpY2stdG8tY2FsbGA7aWYoYS5wYWdlSWQubWF0Y2goLzpzaTp2ZWhpY2xlIGRldGFpbHMvKSYmInBheW1lbnQgZXN0aW1hdG9yIj09PWEuY29udGVudEZsYWcpcmV0dXJuImRjOiIrCmEuc2lUeXBlKyI6c2k6dmVoaWNsZSBkZXRhaWxzOnBheW1lbnQgZXN0aW1hdG9yOmNvbnRlbnQgYWN0aW9uOjxuYW1lcGxhdGU+IjtpZihhLnBhZ2VJZC5tYXRjaCgvZmluYW5jZTpmaW5hbmNlIGRlcGFydG1lbnQvKSYmImdldCBhcHByb3ZlZCI9PT1hLmNvbnRlbnRGbGFnKXJldHVybiJkYzpmaW5hbmNlOmZpbmFuY2UgZGVwYXJ0bWVudDpjb250ZW50OmFjdGlvbiI7aWYoYS5wYWdlSWQubWF0Y2goL3NwZWNpYWxzOm9mZmVycy8pJiZhLmNvbnRlbnRGbGFnLm1hdGNoKC9vZmZlciBjbGljay8pKXJldHVybiJkYzpzcGVjaWFsczpvZmZlcnM6Y29udGVudDphY3Rpb24iO2lmKGEuaGFzT3duUHJvcGVydHkoImNvbnRlbnRGbGFnIikmJmEuY29udGVudEZsYWcubWF0Y2goL2Jyb2NodXJlIGRvd25sb2FkLykpcmV0dXJuYGRjOiR7YS5wYWdlSWROb1N1ZmZpeH06ZG93bmxvYWRgO3A9IiI7YS5wYWdlSWQubWF0Y2goLzpzaTovKSYmKHA9IjxzaS1zdWZmaXg+Iik7cmV0dXJuImRjOiIrYS5wYWdlSWROb1N1ZmZpeCsKIjpjb250ZW50OmFjdGlvbiIrcDtjYXNlICJvbmNsaWNrIjpjb25zb2xlLmxvZygiRDJGVCB0cmFja1Byb3A1IEEiLGwsYS5wYWdlSWQsYSk7aWYoYS5pc0NsaWNrVG9DYWxsKXt2YXIgbT0ic2FsZXMiO3N3aXRjaChhLmRlcHQpe2Nhc2UgIlVTRUQiOmNhc2UgIk5FVyI6bT0ic2FsZXMiO2JyZWFrO2Nhc2UgIlBBUlRTIjpjYXNlICJTRVJWSUNFIjptPWEuZGVwdC50b0xvd2VyQ2FzZSgpfXJldHVybiBhLnBhZ2VJZCsiOmNsaWNrLXRvLWNhbGw6IittfXJldHVybiBhLmhhc093blByb3BlcnR5KCJjb250ZW50RmxhZyIpPyhtPSJjb250ZW50OiIsL3NpOnZsc3x2ZWhpY2xlIGRldGFpbHMvLnRlc3QoYS5wYWdlSWQpJiYobT0iIiksLzpmaW5hbmNlIGRlcGFydG1lbnQvLnRlc3QoYS5wYWdlSWQpPyJkYzpmaW5hbmNlOiBmaW5hbmNlIGRlcGFydG1lbnQ6Y29udGVudDpnZXQgYXBwcm92ZWQiOmEucGFnZUlkLm1hdGNoKC9ldiAoY2hhcmdpbmd8bGlmZXN0eWxlfG93bmVyc2hpcHx2aHApLyk\/CmEuY29udGVudEZsYWcubWF0Y2goL2Jyb2NodXJlIGRvd25sb2FkLyk\/YS5wYWdlSWQrIjpicm9jaHVyZSBkb3dubG9hZDo8YnJvY2h1cmVOYW1lPiI6YS5jb250ZW50RmxhZy5tYXRjaCgvY2hhcmdpbmcgdXBkYXRlcy8pPyI8cHJlZml4PiIrYS5wYWdlSWQrIjpnZXQgdXBkYXRlcyI6YS5wYWdlSWQubWF0Y2goL2V2IGxpZmVzdHlsZS8pfHxhLnBhZ2VJZC5tYXRjaCgvZXYgY2hhcmdpbmcvKT9hLmNvbnRlbnRGbGFnLm1hdGNoKC9leHBsb3JlIChmMTUwfG1hY2gpLyk\/IjxwcmVmaXg+OmV2IGxpZmVzdHlsZTp0ZXN0IGRyaXZlIjphLnBhZ2VJZCsiOmNvbnRlbnQ6IithLmNvbnRlbnRGbGFnOmEucGFnZUlkKyI6Y29udGVudDpyZWFkIGFydGljbGUiOmEucGFnZUlkTm9TdWZmaXgrIjoiK20raChhLmNvbnRlbnRGbGFnKSk6YS5pc0dsb2JhbD9hLnBhZ2VJZE5vU3VmZml4KyI6PGNvbnRlbnQtYWN0aW9uPiI6IiEhVU5ERUYhISI7Y2FzZSAicGFnZW5hbWUtbm8tdmVoaWNsZSI6dmFyIHk9CkkucGFnZUlkO3k9eS5yZXBsYWNlKC86PzwobmFtZXBsYXRlfHNpLXN1ZmZpeCk+JC8sIiIpO3JldHVybiJkYzoiK2goeSk7Y2FzZSAidG9vbCI6cmV0dXJuIGEuaXNDbGlja1RvQ2FsbD8iZXZlbnQ6Y2xpY2sgdG8gY2FsbCI6InNwZWNpYWxzOm9mZmVycyI9PWEucGFnZUlkPyJldmVudDppbmNlbnRpdmUgdmlld3MiOiJ1bmRlZmluZWQiIT09dHlwZW9mIGEuc3RlcCYmMT09YS5zdGVwPyJnZXQgcHJlLWFwcHJvdmVkIjoiISFVTkRFRiEhIjtjYXNlICJ0b29sRGVzY3JpcHRvciI6cmV0dXJuIGEuaXNDbGlja1RvQ2FsbD8obT0iZ2xvYmFsIiwvc2k6dmVoaWNsZSBkZXRhaWxzLy50ZXN0KGEucGFnZUlkKSYmKG09InZlaGljbGUgZGV0YWlscyIpLCJjbGljayB0byBjYWxsOiIrbSk6InVuZGVmaW5lZCIhPT10eXBlb2YgYS5zdGVwJiYxPT1hLnN0ZXA\/ImdldCBwcmUtYXBwcm92ZWQ6c3RhcnRlZCI6InNwZWNpYWxzOm9mZmVycyI9PWEucGFnZUlkPyJpbmNlbnRpdmUgdmlld3M6b2ZmZXJzIjoKIiEhVU5ERUYhISI7Y2FzZSAiaG91cnMtZGVwYXJ0bWVudCI6c3dpdGNoKCgiIithLmRlcHQpLnRvTG93ZXJDYXNlKCkpe2Nhc2UgInVzZWQiOmNhc2UgIm5ldyI6cmV0dXJuInNhbGVzIjtjYXNlICJwYXJ0cyI6Y2FzZSAic2VydmljZSI6cmV0dXJuInNlcnZpY2UgYW5kIHBhcnRzIn1icmVhaztjYXNlICJvZmZlci1uYW1lIjpyZXR1cm4gYS5pc09FTVJlYmF0ZT8icmViYXRlIjoidW5rbm93biI7Y2FzZSAicHJvbW8tbmFtZSI6bT0kKGEuZWxlbWVudCkuY2xvc2VzdCgiLnByb21vcyIpO3ZhciBxPSIiO20ubGVuZ3RoJiYocT0kKCIucHJvbW8tdGl0bGUiLG0pLnRleHQoKSk7cmV0dXJuIiIhPXE\/IjoiK3E6IiI7Y2FzZSAic2ktZmlsdGVyLXR5cGUiOmNhc2UgInNpLXR5cGUiOnJldHVybiBhLnNhbGVzRGVwdCYmIS9zaTp2bHMvLnRlc3QoYS5wYWdlSWQpJiYib3RoZXIiIT1hLnNhbGVzRGVwdD9hLnNhbGVzRGVwdDp0LnNpVHlwZTtjYXNlICJzdGVwLW51bWJlciI6dmFyIE09YS5zdGVwPwpwYXJzZUludChhLnN0ZXApOjA7cmV0dXJuL2ZpbmFuY2UvLnRlc3QoYS5wYWdlSWQpJiYxPT1NPyIxOmN1c3RvbWVyIGluZm8iOk07Y2FzZSAic2ktZmlsdGVyLWRldGFpbCI6cmV0dXJuIHY9ImZpbHRlciIscD0iIiwidW5kZWZpbmVkIiE9dHlwZW9mIGEuZmlsdGVyVHlwZSYmKCJTb3J0Ij09YS5maWx0ZXJUeXBlPyh2PSJzb3J0IGJ5IixwPSgiIithLmZpbHRlckRldGFpbCkucmVwbGFjZSgvXFcrL2csIiAiKSk6KHA9KCIiK2EuZmlsdGVyVHlwZSkucmVwbGFjZSgvXFcrL2csIiAiKSwiQ2FyYnVyYW50Ij09cCYmKHA9ImZ1ZWwiKSkpLCJ1bmRlZmluZWQiIT1wJiYocD0iOiIrcCksKHYrcCkudG9Mb3dlckNhc2UoKTtjYXNlICJzaS1zb3J0LXR5cGUiOmlmKCJ1bmRlZmluZWQiPT10eXBlb2YgYS5idG5WYWx1ZSlyZXR1cm4iIjtzd2l0Y2goYS5idG5WYWx1ZSl7Y2FzZSAxOnJldHVybiJwcmljZS1hc2MiO2Nhc2UgMjpyZXR1cm4icHJpY2UtZGVzYyI7Y2FzZSAzOnJldHVybiJtaWxlYWdlLWFzYyI7CmNhc2UgNDpyZXR1cm4ibWlsZWFnZS1kZXNjIjtjYXNlIDU6cmV0dXJuInllYXItYXNjIjtjYXNlIDY6cmV0dXJuInllYXItZGVzYyI7Y2FzZSA3OnJldHVybiJicmFuZCI7Y2FzZSA4OnJldHVybiJob3VzZS1icmFuZCI7Y2FzZSA5OnJldHVybiJhcnJpdmFsLWFzYyI7Y2FzZSAxMDpyZXR1cm4iYXJyaXZhbC1kZXNjIn1icmVhaztjYXNlICJ2ZHAtY3RhLWJ0bi10aXRsZSI6dmFyIE49YS5idXR0b25UZXh0O3JldHVybiBOP049Ti5yZXBsYWNlKC9bXmEtejAtOVxzLV0vaWcsIiIpLnRyaW0oKS5yZXBsYWNlKC9ccysvZywiLSIpLnRvTG93ZXJDYXNlKCk6IiI7Y2FzZSAic2ktc3VmZml4IjpyZXR1cm4gdT1hLm1ha2Usdz1hLm1vZGVsLHUmJnc\/IjoiKyh1KyIgIit3KS50b0xvd2VyQ2FzZSgpOiIiO2Nhc2UgInNpLWNhdGVnb3J5Ijp2YXIgRD1hLnZlaGljbGVDYXRlZ29yeTtyZXR1cm4gRCYmIjAiIT1EPygiOiIrRCkudG9Mb3dlckNhc2UoKToiIjtjYXNlICJzZWFyY2hEZXB0aCI6cmV0dXJuIG51bGw7CmNhc2UgInBhZ2VMb2FkTGVhZFR5cGUiOnJldHVybi86c2k6dmVoaWNsZSBkZXRhaWxzLy50ZXN0KGEucGFnZUlkKT8ic2k6dmxzIjoiISFVTkRFRiEhIjtjYXNlICJwYWdlTG9hZEV2ZW50IjpyZXR1cm4vOnNpOi8udGVzdChhLnBhZ2VJZCk\/InNlYXJjaCBpbnZlbnRvcnkiOi9zcGVjaWFscy8udGVzdChhLnBhZ2VJZCk\/ImluY2VudGl2ZSB2aWV3cyI6L3Z5dC8udGVzdChhLnBhZ2VJZCk\/InZhbHVlIHlvdXIgdHJhZGUiOiIhIVVOREVGISEiO2Nhc2UgInNpdGVTZWN0aW9uIjpyZXR1cm4vOnNpOi8udGVzdChhLnBhZ2VJZCl8fCJjb21tZXJjaWFsOmhvbWUiPT1hLnBhZ2VJZD8ic2VhcmNoIGludmVudG9yeSI6L3NlcnZpY2UvLnRlc3QoYS5wYWdlSWQpPyJzZXJ2aWNlIGFuZCBwYXJ0cyI6L3NwZWNpYWxzOm9mZmVycy8udGVzdChhLnBhZ2VJZCk\/InNwZWNpYWxzIjovdnl0LXBhZ2VpZC8udGVzdChhLnBhZ2VJZCk\/InZhbHVlIHlvdXIgdHJhZGUiOjA8YS5wYWdlSWROb1N1ZmZpeC5pbmRleE9mKCI6Iik\/CmEucGFnZUlkTm9TdWZmaXguc3BsaXQoIjoiKVswXTphLnBhZ2VJZE5vU3VmZml4O2Nhc2UgImhpZXJhcmNoeSI6LzpzaTp2bHMvLnRlc3QoYS5wYWdlSWQpJiYxPT1hLmlzR2xvYmFsJiYkKGEuZWxlbWVudFswXSkuaGFzQ2xhc3MoImRpdkNhclBheW1lbnRDYWxjdWxhdG9yIikmJihKPWEuZWxlbWVudCk7aWYoLzpzaTovLnRlc3QoYS5wYWdlSWQpKWlmKDA8JCgiI2ZsdENhcm9zc2VyaWVJZCAuZmx0RmlsdGVyIC5kaXZBbGxXcmFwcGVyIHVsLmRpdkJ1dHRvbkJveGVzID4gbGkuc2VsZWN0ZWQiKS5sZW5ndGgpcT0ic2hvcHBpbmcgdG9vbHM6c2VhcmNoIGludmVudG9yeS12bHM8c2ktY2F0ZWdvcnk+PHNpLXN1ZmZpeD4iO2Vsc2UgcmV0dXJuInNob3BwaW5nIHRvb2xzOnNlYXJjaCBpbnZlbnRvcnktdmxzIjtpZigidmVoaWNsZSI9PWEucGFnZUlkTm9TdWZmaXgpcmV0dXJuInZlaGljbGU6PG1vZGVsWWVhcj48c2ktY2F0ZWdvcnk+OjxuYW1lcGxhdGU+IjsvY29tbWVyY2lhbC8udGVzdChhLnBhZ2VJZCkmJgoocT0iY29tbWVyY2lhbDpob21lIik7aWYoL3NwZWNpYWxzOm9mZmVycy8udGVzdChhLnBhZ2VJZCkpcmV0dXJuInNwZWNpYWxzIjtpZigvdGVzdCBkcml2ZS8udGVzdChhLnBhZ2VJZCkpcmV0dXJuInNob3BwaW5nIHRvb2xzOjxwYWdlSWROb1N1ZmZpeD4iO2lmKC9eZmluYW5jZTovLnRlc3QoYS5wYWdlSWQpKXJldHVybiBhLnBhZ2VJZE5vU3VmZml4O2lmKC9eY3VzdG9tOi8udGVzdChhLnBhZ2VJZCkpcmV0dXJuImN1c3RvbSI7bT0vXnNlcnZpY2U6LztyZXR1cm4gbS50ZXN0KGEucGFnZUlkKT9hLnBhZ2VJZC5yZXBsYWNlKG0sIjxzZWN0aW9uPjoiKTpxP3E6YS5wYWdlSWQ7Y2FzZSAicGF5bWVudC1lc3RpbWF0b3ItaGllcmFyY2h5Ijp2YXIgRT0kKEpbMF0pO0Q9RS5hdHRyKCJkYXRhLWJvZHlUeXBlIik7dT1FLmF0dHIoImRhdGEtbWFrZSIpO3c9RS5hdHRyKCJkYXRhLW1vZGVsIik7dmFyIEY9InNob3BwaW5nIHRvb2xzOnBheW1lbnQgZXN0aW1hdG9yIjtEJiYoRis9IjoiK0QpOwp1JiYoRis9IjoiK3UrIiAiK3cpO3JldHVybiBGLnRvTG93ZXJDYXNlKCk7Y2FzZSAicGF5bWVudC1lc3RpbWF0b3Itc2ktc3VmZml4IjpyZXR1cm4gRT0kKEpbMF0pLHU9RS5hdHRyKCJkYXRhLW1ha2UiKSx3PUUuYXR0cigiZGF0YS1tb2RlbCIpLEY9IiIsdSYmKEYrPSI6Iit1KyIgIit3KSxGLnRvTG93ZXJDYXNlKCk7Y2FzZSAicmFkVUlWZXJzaW9uIjptPSJwYyI7Y29uc3QgSD1kb2N1bWVudC5ib2R5Lm9mZnNldFdpZHRoOzc2OD5IP209Im1vYmlsZSI6OTkyPkgmJihtPSJ0YWJsZXQiKTtyZXR1cm4idWk6cmFkOiIrbTtjYXNlICJ2YXJpYW50TmFtZSI6c3dpdGNoKGEucGFnZUlkKXtjYXNlICJob21lIjpyZXR1cm4iaG9tZS1sb2FkIn1yZXR1cm4vc2k6dmVoaWNsZSBkZXRhaWxzLy50ZXN0KGEucGFnZUlkKT8ic2ktZGV0YWlscy1sb2FkIjovc2k6dmxzLy50ZXN0KGEucGFnZUlkKT8ic2ktcmVzdWx0cy1sb2FkIjovc3BlY2lhbHM6b2ZmZXJzLy50ZXN0KGEucGFnZUlkKT8iaW5jZW50aXZlLXZpZXdzIjoKImdsb2JhbC1sb2FkIjtjYXNlICJnZXQtcHJlLWFwcHJvdmVkLXZhcmlhbnROYW1lIjpyZXR1cm4vZmluYW5jZTovLnRlc3QoYS5wYWdlSWQpJiYxPT1hLnN0ZXA\/ImdldC1wcmUtYXBwcm92ZWQtbG9hZCI6Imdsb2JhbC1vdmVybGF5IjtjYXNlICJjb250ZW50LWFjdGlvbiI6cmV0dXJuIGEuY29udGVudEFjdGlvbj9hLmNvbnRlbnRBY3Rpb246IiI7Y2FzZSAiY3VzdG9tLXRpdGxlIjp2YXIgUT13aW5kb3cubG9jYXRpb24ucGF0aG5hbWUubWF0Y2goL1wvKFteL10rKVwuaHRtbCQvKTtyZXR1cm4gUVsxXT9RWzFdOiJjdXN0b20iO2Nhc2UgInNwZWNzLXRvZ2dsZS10eXBlIjpyZXR1cm4gYS5zcGVjc1R5cGV8fCIiO2Nhc2UgInZhbHVlLXRyYWRlLXByZWZpeCI6cmV0dXJuL3ZlaGljbGUgZGV0YWlscy8udGVzdChhLnBhZ2VJZCk\/InZkcCI6L152ZWhpY2xlLy50ZXN0KGEucGFnZUlkKT8idmVoaWNsZSI6Imdsb2JhbCI7Y2FzZSAiZm9ybS1sYWJlbCI6cmV0dXJuIGRlYnVnX2QyZnQubG9nKGEpLAphLmZvcm1MYWJlbDtjYXNlICJleGl0LXR5cGUiOnJldHVybi9maW5hbmNlLy50ZXN0KGEuaHJlZik\/ImRkOmZpbmFuY2UiOi8oY29uZmlndXJlfGJ1aWxkKS8udGVzdChhLmhyZWYpPyJkZDpjb25maWd1cmUiOi9mb3JkYWNjZXNzLy50ZXN0KGEuaHJlZik\/ImRkOnBhcnRzIjphLnBhZ2VJZC5tYXRjaCgvZXYgKGNoYXJnaW5nfGxpZmVzdHlsZXxvd25lcnNoaXB8dmhwKS8pPy9hZmZvcmRhYmlsaXR5Ly50ZXN0KGEuaHJlZik\/ImZ2OmxwOmZ1ZWwgZWZmaWNpZW50OnRlY2hub2xvZ2llczphZmZvcmRhYmlsaXR5IjovY2hhcmdpbmcvLnRlc3QoYS5ocmVmKT8iZnY6bHA6ZnVlbCBlZmZpY2llbnQ6dGVjaG5vbG9naWVzOmhvbWUgY2hhcmdpbmciOiJleGl0IjoiZGQ6IithLmhyZWY7Y2FzZSAiaG9tZXBhZ2UtYmFubmVyLW5hbWVwbGF0ZSI6dmFyIEE9YS5lbGVtZW50LmF0dHIoImhyZWYiKTtyZXR1cm4iIiE9QSYmdm9pZCAwIT09QT8oQT1BLnJlcGxhY2UoIi8iLCIiKSxBPUEucmVwbGFjZSgiLWVuLmh0bWwiLAoiIiksQT1BLnJlcGxhY2UoIi1mci5odG1sIiwiIiksQT1BLnJlcGxhY2UoIi0iLCIgIiksIjoiK0EpOiIiO2Nhc2UgImNvbXBhcmlzb24tbmFtZXBsYXRlIjpyZXR1cm4gYS5jb21wYXJlQ2FyPygiOiIrYS5jb21wYXJlQ2FyKS50b0xvd2VyQ2FzZSgpOmEuZWxlbWVudD8oIjoiK2EuZWxlbWVudC50ZXh0KCkpLnRvTG93ZXJDYXNlKCk6IiI7Y2FzZSAiY29tcGFyaXNvbi10cmltIjpyZXR1cm4gbT0iIiwwPCQoIi50cmltLWxhYmVsIixhLmVsZW1lbnQpLmxlbmd0aCYmKG09JCgiLnRyaW0tbGFiZWwiLGEuZWxlbWVudCkuaHRtbCgpLnRvTG93ZXJDYXNlKCkpLCI6IittO2Nhc2UgInNlbGVjdGVkLW9wdGlvbi12YWx1ZSI6cmV0dXJuIDA8YS5lbGVtZW50Lmxlbmd0aCYmYS5lbGVtZW50LmlzKCJzZWxlY3QiKT9hLmVsZW1lbnQudmFsKCk6IiI7Y2FzZSAic2VsZWN0ZWQtb3B0aW9uLXRleHQiOmlmKDA8YS5lbGVtZW50Lmxlbmd0aCYmYS5lbGVtZW50LmlzKCJzZWxlY3QiKSl7dmFyIFI9CmEuZWxlbWVudC5nZXQoMCk7cmV0dXJuICQoUi5vcHRpb25zW1Iuc2VsZWN0ZWRJbmRleF0pLnRleHQoKS50b0xvd2VyQ2FzZSgpfXJldHVybiIiO2Nhc2UgInZkcC10cmltIjpyZXR1cm4gYS5lbGVtZW50PygiOiIrYS5lbGVtZW50LnRleHQoKSkudG9Mb3dlckNhc2UoKToidW5rbm93biB0cmltIjtjYXNlICJvcGVuX2hvdXJzX29uY2xpY2siOnJldHVybiJhYm91dCB1czpjb250YWN0IHVzIj09YS5wYWdlSWQmJjA8JChhLmVsZW1lbnQpLnBhcmVudHMoIi5tYWluX2JveCIpLmxlbmd0aD9hLnBhZ2VJZCsiOmNvbnRlbnQ6YWNjb3JkaW9uIGV4cGFuZCI6IjxwYWdlaWQ+OmNvbnRlbnQ6PGhvdXJzLWRlcGFydG1lbnQ+IGhvdXJzIjtjYXNlICJ2eXQtcGFnZWlkIjpyZXR1cm4gcD0idmFsdWUgeW91ciB0cmFkZSIsdj0iIixkMmNtZWRpYS5wYWdlRGVwYXJ0bWVudCgpLGQyY21lZGlhLnVybC5wYXJzZSgpLHYrcDtjYXNlICJ2ZWhpY2xlVHJpbSI6Y2FzZSAidmVoaWNsZUNvbG9yIjpjYXNlICJ2ZWhpY2xlVGFuc21pc3Npb24iOmNhc2UgInZlaGljbGVQcmljZSI6cmV0dXJuInVuZGVmaW5lZCIhPT0KdHlwZW9mIGFbbF0mJjA8YVtsXS5sZW5ndGg\/YVtsXS50b0xvd2VyQ2FzZSgpOiIhIVVOREVGISEiO2Nhc2UgImJyb2NodXJlTmFtZSI6cmV0dXJuIGEuaHJlZi5yZXBsYWNlKC9eLipbXFwvXS8sIiIpLnJlcGxhY2UoL1wucGRmJC8sIiIpfX1jYXRjaChIKXtkZWJ1Z19kMmZ0LmxvZygiUmVwbGFjZXJFcnJvciIsSCl9cmV0dXJuIiEhVU5ERUY6OiIrbCsiISEifSk7cmV0dXJuLzxbXj5dKz4vLnRlc3QoYyk\/aChjKTpjfTtiLmFzeW5jaWZ5PWZ1bmN0aW9uKGMpe3NldFRpbWVvdXQoYywwKX07Yi5oaXQ9ZnVuY3Rpb24oYyl7ZGVidWdfZDJmdC5sb2coImQyYyB0cmFjayIsYyk7ImZ1bmN0aW9uIj09PXR5cGVvZiB3aW5kb3cuX3NhdGVsbGl0ZS50cmFjayYmd2luZG93Ll9zYXRlbGxpdGUudHJhY2soYyl9O2IuY2xlYXJWYXJzPWZ1bmN0aW9uKCl7ZGVidWdfZDJmdC5sb2coIkNsZWFyIF9zYXRlbGxpdGUgdmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIik7dHJ5e3MuY2xlYXJWYXJzKCl9Y2F0Y2goYyl7fX07CmIuc2V0RGlnaXRhbERhdGE9ZnVuY3Rpb24oYyl7ZnVuY3Rpb24gYShnLHIpe3JldHVybiBmdW5jdGlvbihuLGspeyJmdW5jdGlvbiI9PXR5cGVvZiBrJiYoaz1rLmNhbGwoYikpO2dbbl09ZShuLHIsayk7L14hIVVOREVGLy50ZXN0KGdbbl0pJiZkZWxldGUgZ1tuXTtudWxsPT1nW25dJiZkZWxldGUgZ1tuXTsvc3RlcC1udW1iZXIvLnRlc3QoaykmJihHPSEwKX19ZnVuY3Rpb24gZShnLHIsbil7cmV0dXJuIG51bGwhPW4mJjA8bi5sZW5ndGg\/InN0cmluZyIhPXR5cGVvZiBuPyhkZWJ1Z19kMmZ0LmxvZyhuKSxuKTpoKG4pOiJ1bmRlZmluZWQiPT10eXBlb2YgZltnXT9udWxsOiJmdW5jdGlvbiI9PT10eXBlb2YgZltnXT8oZz1mW2ddLmNhbGwoYixuKSwic3RyaW5nIiE9dHlwZW9mIGc\/ZzpoKGcpKToic3RyaW5nIiE9dHlwZW9mIGZbZ10\/ZltnXTpoKGZbZ10pfWIuY2xlYXJWYXJzKCk7dmFyIGw9e307Y3x8KGM9e30pOyQuZXh0ZW5kKCEwLGwsVSxjKTt2YXIgZj17fTskLmV4dGVuZCghMCwKZixiLnN0YXRpY0RhdGEpO2IucGFyc2VFdmVudERhdGEobCk7JC5lYWNoKGwsZnVuY3Rpb24oKXskLmVhY2godGhpcyxhKHRoaXMpKX0pOyEwPT09RyYmKEs9cGFyc2VGbG9hdChLKSsxLEc9ITEpO3dpbmRvdy5kaWdpdGFsZGF0YT1sO2RlYnVnX2QyZnQubG9nKCJEMkZUIEZpbmFsIGRpZ2l0YWwgZGF0YSIsd2luZG93LmRpZ2l0YWxkYXRhKTtPKCl9O2IubG9ja2VkPSExO2IucGxyRmFjdG9yeT1mdW5jdGlvbihjLGEpe3ZhciBlPXtkYXRhOmMsdHlwZTphLGhhbmRsZXI6ZnVuY3Rpb24obCxmKXtmPWY\/Zjp7fTt2YXIgZz0kKHRoaXMpO2IuYXN5bmNpZnkoZnVuY3Rpb24oKXtpZihiLmxvY2tlZClyZXR1cm4gc2V0VGltZW91dChkKGUuaGFuZGxlcixhcmd1bWVudHMpLDUwMCk7Yi5sYXN0RXZlbnQ9JC5leHRlbmQoe30sbCk7Yi5sYXN0RXZlbnQuZGF0YT1mO2IubG9ja2VkPSEwO3ZhciByPXtwYWdlOnt9LHZlaGljbGU6e30sZXZlbnQ6e319OyQuZXh0ZW5kKCEwLHIsZS5kYXRhKTt2YXIgbj0KJC5leHRlbmQoITAse30sQlsiKiJdLEIucG9wdXAsQlt0LnBhZ2VJZF0pO2lmKCJwYWdlbG9hZCI9PWUudHlwZSlyLmV2ZW50LmFjdGlvbj0iPHBhZ2VMb2FkRXZlbnQ+IjtlbHNle3ZhciBrPSExOyQuZWFjaChuLGZ1bmN0aW9uKHAsdil7Zy5pcyhwKSYmKGs9ITAsImZ1bmN0aW9uIj09dHlwZW9mIHYmJih2PXYuY2FsbChiKSwwPT12JiYoaz0hMSkpLGsmJihyPSQuZXh0ZW5kKCEwLHt9LHIsdikpKX0pO2lmKCJwb3B1cCI9PWUudHlwZSYmITE9PT1rKXtiLmNsZWFyVmFycygpO2IubG9ja2VkPSExO3JldHVybn19WCgpO2Iuc2V0RGlnaXRhbERhdGEocik7InBhZ2Vsb2FkIiE9ZS50eXBlJiZ3aW5kb3cuZGlnaXRhbGRhdGEucGFnZS52YXJpYW50TmFtZSYmYi5oaXQod2luZG93LmRpZ2l0YWxkYXRhLnBhZ2UudmFyaWFudE5hbWUpO2IuY2xlYXJWYXJzKCk7Yi5sb2NrZWQ9ITF9KX19O3JldHVybiBlLmhhbmRsZXJ9O2IuZGNyRmFjdG9yeT1mdW5jdGlvbihjLGEpe3ZhciBlPXtkYXRhOmMsCmhhbmRsZXI6ZnVuY3Rpb24obCxmKXtmPWY\/Zjp7fTt2YXIgZz0kKHRoaXMpLHI9ZnVuY3Rpb24oKXtpZihiLmxvY2tlZClyZXR1cm4gc2V0VGltZW91dChkKGUuaGFuZGxlcixhcmd1bWVudHMpLDUwMCk7Yi5sb2NrZWQ9ITA7dmFyIG49ITEsaz1lLmRhdGEscD1udWxsIT1rLnZhcmlhbnROYW1lP2sudmFyaWFudE5hbWU6Imdsb2JhbC1vbmNsaWNrIix2PSQuZXh0ZW5kKCEwLHt9LEJbIioiXSxCW3QucGFnZUlkXSk7JC5lYWNoKHYsZnVuY3Rpb24oeSxxKXtuPWcuaXMoeSk\/ITA6bn0pO2lmKG4mJjE9PWsuaXNHbG9iYWwpcmV0dXJuIGIubG9ja2VkPSExLCEwO2suaXNPRU1SZWJhdGUmJihrLmNvbnRlbnRBY3Rpb249ITAsZi5jb250ZW50RmxhZz0ib2ZmZXIgY2xpY2s6PG9mZmVyLW5hbWU+IixmLmlzT0VNUmViYXRlPSEwKTtpZihrLmlzR2xvYmFsfHxrLmNvbnRlbnRBY3Rpb24pZi5jb250ZW50QWN0aW9uPWsuY29udGVudEFjdGlvbixmLmlzR2xvYmFsPSEwLCQuZWFjaChWLGZ1bmN0aW9uKHksCnEpe2cuaXMoeSkmJihmLmNvbnRlbnRGbGFnPXEsZi5jb250ZW50QWN0aW9uPSEwKX0pO2IubGFzdEV2ZW50PSQuZXh0ZW5kKHt9LGwpO2IubGFzdEV2ZW50LmRhdGE9ZjtiLmxhc3RFdmVudC50YXJnZXRFbGVtZW50PWc7Yi5sYXN0RXZlbnQuY29udGVudEZsYWc9ay5jb250ZW50RmxhZztrLmlzQ2xpY2tUb0NhbGw9Yi5pc0NsaWNrVG9DYWxsKCk7ay5pc0NsaWNrVG9DYWxsJiYoYi5sYXN0RXZlbnQuZGF0YS5pc0NsaWNrVG9DYWxsPWsuaXNDbGlja1RvQ2FsbCxwPSJjbGljay10by1jYWxsIik7dmFyIEM9e29uY2xpY2s6e29uY2xpY2tMaW5rTmFtZToiPG9uY2xpY2tMaW5rTmFtZT4iLG9uY2xpY2s6IjxvbmNsaWNrPiJ9LHBhZ2U6e3ZhcmlhbnROYW1lOnB9fTtpZihrLmlzRXhpdClyZXR1cm4gYi5sb2NrZWQ9ITEsITA7dmFyIHU9ITE7ay5pc1NlYXJjaEZpbHRlciYmJC5leHRlbmQoITAsQyx7b25jbGljazp7b25jbGljazoiPHNpLWZpbHRlci10eXBlPjpzaTp2bHM6PHNpLWZpbHRlci1kZXRhaWw+IiwKb25jbGlja0xpbmtOYW1lOiJkYzo8c2ktdHlwZT46c2k6dmxzOmNvbnRlbnQ6YWN0aW9uPHNpLXN1ZmZpeD4ifX0pO2lmKGsuaXNGb3JtU3VibWl0KXt2YXIgdz0hMSxtPXt1c2VyOntja3NWaXNpdElkOiI8Y2tzVmlzaXRJZD4ifSxvbmNsaWNrOntvbmNsaWNrTGlua05hbWU6bnVsbCxvbmNsaWNrOm51bGx9LGV2ZW50OnthY3Rpb246ImxlYWQgc3VibWl0dGVkIn19OyQuZWFjaChXLGZ1bmN0aW9uKHkscSl7dHJ5eyhuZXcgUmVnRXhwKHksImkiKSkudGVzdChmLm1haWxJRCkmJih3PSEwLCJmdW5jdGlvbiI9PXR5cGVvZiBxPyQuZXh0ZW5kKCEwLG0scS5jYWxsKGIsYi5sYXN0RXZlbnQsayxmLGcpKTokLmV4dGVuZCghMCxtLHEpKX1jYXRjaChNKXtkZWJ1Z19kMmZ0LmxvZygiSW52YWxpZCBydWxlICIreSl9fSk7JC5leHRlbmQoITAsQyxtKTt1PSF3O0s9MDtHPSExfSQuZWFjaCh2LGZ1bmN0aW9uKHkscSl7Zy5pcyh5KT8ocS5wYWdlJiZxLnBhZ2UudmFyaWFudE5hbWUmJihwPXEucGFnZS52YXJpYW50TmFtZSksCnEuaWdub3JlJiYodT0hMCksQz0kLmV4dGVuZCghMCx7fSxDLHEpKToiLmJ1eV9ub3dfY2FyZF9jdGEiPT15JiYoZi5jb250ZW50QWN0aW9uPSJidXkgbm93Iil9KTtpZih1KXJldHVybiBiLmxvY2tlZD0hMSwhMDtiLnNldERpZ2l0YWxEYXRhKEMpO2lmKGsuaXNHbG9iYWwmJiFrLmlzQ2xpY2tUb0NhbGwmJiFmLmNvbnRlbnRBY3Rpb24pcmV0dXJuIGIubG9ja2VkPSExLCEwO2IuaGl0KHdpbmRvdy5kaWdpdGFsZGF0YS5wYWdlLnZhcmlhbnROYW1lKTtiLmxvY2tlZD0hMTtyZXR1cm4hMH07YT9iLmFzeW5jaWZ5KHIpOnIoKX19O3JldHVybiBlLmhhbmRsZXJ9O2IuZXhpdEZhY3Rvcnk9ZnVuY3Rpb24oYyl7dmFyIGE9e2RhdGE6YyxoYW5kbGVyOmZ1bmN0aW9uKGUsbCl7dmFyIGY9JCh0aGlzKTtsPXt9O3ZhciBnPWEuZGF0YSxyPXI\/cjp7fTtiLmxhc3RFdmVudD1lO2IubGFzdEV2ZW50LmRhdGE9cjtiLmxhc3RFdmVudC50YXJnZXRFbGVtZW50PWY7Yi5sYXN0RXZlbnQuY29udGVudEZsYWc9CmcuY29udGVudEZsYWc7ZT1mLmF0dHIoImhyZWYiKTtyPS9odHRwKD86cz8pOlwvXC9bXi9dKmZvcmQoPzphY2Nlc3MpP1wuKD86Y2F8Y29tKS87ZSYmci50ZXN0KGUpJiYoYi5sYXN0RXZlbnQuZGF0YS5ocmVmPWUsbD0kLmV4dGVuZCghMCx7fSxsLHtwYWdlOnt2YXJpYW50TmFtZToicmVmZXJyYWwtZXhpdCJ9LG9uY2xpY2s6e29uY2xpY2s6InJlZmVycmFsOjxleGl0LXR5cGU+IixvbmNsaWNrTGlua05hbWU6InJlZmVycmFsOmV4aXQifSx2ZWhpY2xlOnttb2RlbFllYXI6Ijxtb2RlbFllYXI+IixuYW1lcGxhdGU6IjxuYW1lcGxhdGU+In0sdXNlcjp7Y2tzVmlzaXRJZDoiPGNrc1Zpc2l0SWQ+In0sZXZlbnQ6e2FjdGlvbjoiYnJhbmQgcmVmZXJyYWwifX0pLGIuc2V0RGlnaXRhbERhdGEobCksYi5oaXQod2luZG93LmRpZ2l0YWxkYXRhLnBhZ2UudmFyaWFudE5hbWUpKX19O3JldHVybiBhLmhhbmRsZXJ9O2IuaXNDbGlja1RvQ2FsbD1mdW5jdGlvbigpe3ZhciBjPSIiK2IubGFzdEV2ZW50LnRhcmdldEVsZW1lbnQuYXR0cigiaHJlZiIpOwpyZXR1cm4vdGVsOi8udGVzdChjKT8hMDohMX07Yi5wYXJzZUV2ZW50RGF0YT1mdW5jdGlvbihjKXtjPWIubGFzdEV2ZW50LnRhcmdldEVsZW1lbnQ7Yi5ldmVudERhdGE9e307aWYoIWIubGFzdEV2ZW50KXJldHVybiExO2lmKG51bGwhPWMpe2IuZXZlbnREYXRhLmVsZW1lbnQ9Yzt2YXIgYT1jLmRhdGEoKTthJiYoYS5ib2R5dHlwZSYmKGEuYm9keVR5cGV8fChhLmJvZHlUeXBlPWEuYm9keXR5cGUpLGEudmVoaWNsZUNhdGVnb3J5fHwoYS52ZWhpY2xlQ2F0ZWdvcnk9YS5ib2R5dHlwZSksZGVsZXRlIGEuYm9keXR5cGUpLCQuZXh0ZW5kKCEwLGIuZXZlbnREYXRhLGEpKTthPSIiK2MuYXR0cigiaHJlZiIpO2IuZXZlbnREYXRhLmhyZWY9YTskLmV4dGVuZCghMCxiLmV2ZW50RGF0YSxZKGEpKTskcD1jLnBhcmVudHMoIi5mbHRCb3giKTswPCRwLmxlbmd0aCYmKGIuZXZlbnREYXRhLmZpbHRlclR5cGU9Yi5yZXNvbHZlRmlsdGVyVHlwZSgkcFswXSkpfSQuZXh0ZW5kKCEwLGIuZXZlbnREYXRhLApQKCkpO2IubGFzdEV2ZW50LmRhdGEmJigkLmV4dGVuZCghMCxiLmV2ZW50RGF0YSxiLmxhc3RFdmVudC5kYXRhKSwidW5kZWZpbmVkIiE9dHlwZW9mIGIuZXZlbnREYXRhLmJvZHlUeXBlJiYoYz0iIitiLmV2ZW50RGF0YS5ib2R5VHlwZSwvXkJPRFlUWVBFXy8udGVzdChjKSYmKGIuZXZlbnREYXRhLnZlaGljbGVDYXRlZ29yeT1jLnN1YnN0cmluZyg5KS50b0xvd2VyQ2FzZSgpLCJ2YW4iPT1iLmV2ZW50RGF0YS52ZWhpY2xlQ2F0ZWdvcnkmJihiLmV2ZW50RGF0YS52ZWhpY2xlQ2F0ZWdvcnk9Im1pbml2YW4iKSkpKTtiLmxhc3RFdmVudD0hMX07Yi5yZXNvbHZlRmlsdGVyVHlwZT1mdW5jdGlvbihjKXtzd2l0Y2goJChjKS5wcm9wKCJpZCIpKXtjYXNlICJmbHRUZXh0U2VhcmNoSWQiOnJldHVybiJzZWFyY2giO2Nhc2UgImZsdENhdGVnb3JpZUlkIjpyZXR1cm4iY2F0ZWdvcnkiO2Nhc2UgImZsdENlcnRpZmllZElkIjpyZXR1cm4iY2VydGlmaWVkIjtjYXNlICJmbHRDYXJvc3NlcmllSWQiOnJldHVybiJib2R5IHR5cGUiOwpjYXNlICJmbHRDYXJidXJhbnRJZCI6cmV0dXJuImZ1ZWwiO2Nhc2UgImZsdFByaWNlSWQiOnJldHVybiJwcmljZSI7Y2FzZSAiZmx0TWFrZUlkIjpyZXR1cm4ibWFrZSI7Y2FzZSAiZmx0TW9kZWxJZCI6cmV0dXJuIm1vZGVsIjtjYXNlICJmbHRUcmltc0lkIjpyZXR1cm4idHJpbSI7Y2FzZSAiZmx0WWVhcklkIjpyZXR1cm4ieWVhciI7Y2FzZSAiZmx0S21JZCI6cmV0dXJuIm1pbGVhZ2UiO2Nhc2UgImZsdENvbG9ySWQiOnJldHVybiJjb2xvciI7Y2FzZSAiZmx0VHJhbnNtaXNzaW9uSWQiOnJldHVybiJ0cmFuc21pc3Npb24iO2Nhc2UgImZsdE9wdGlvbklkIjpyZXR1cm4ib3B0aW9ucyI7Y2FzZSAiZmx0QXJyaXZhbHNJZCI6cmV0dXJuInRpbWUifXJldHVybiJvdGhlciJ9O2IucmVzb2x2ZVZhbHVlWW91clRyYWRlVGhhbmtZb3U9ZnVuY3Rpb24oYyxhLGUsbCl7YT0hMTt2YXIgZj1sPSJnbG9iYWwiO2M9dGhpcy5zdGF0aWNEYXRhLnBhZ2VJZDt2YXIgZz0hMTtlLnBvcHVwRGl2JiYKKGU9JCgiIyIrZS5wb3B1cERpdiksMDxlLmxlbmd0aCYmZS5pcygiLnJldmVhbC1tb2RhbCIpJiYoZz1lKSk7ZyYmKGU9Zy5wb3B1cGl6ZSgpLnNldHRpbmdzLnBvcHVwRXZlbnRTb3VyY2UsYT0vYmFubmVyfHRyYWRlaW5iYXIvLnRlc3QoZSkpO2F8fCgvOnZlaGljbGUgZGV0YWlscy8udGVzdChjKT8obD0idmVoaWNsZSBkZXRhaWxzIixmPSJ2ZHAiKTpmPWw9InZlaGljbGUiKTtlPXtwYWdlOntzaXRlU2VjdGlvbjoiPHNpdGVTZWN0aW9uPiIsaGllcmFyY2h5OiJzaG9wcGluZyB0b29sczp2YWx1ZSB5b3VyIHRyYWRlPHNpLWNhdGVnb3J5PjxzaS1zdWZmaXg+IixwYWdlTmFtZToiZGM6PHBhZ2VJZE5vU3VmZml4Pjp2YWx1ZSB5b3VyIHRyYWRlOnRoYW5rIHlvdTxzaS1zdWZmaXg+IixwYWdlTmFtZU5vVmVoaWNsZToiZGM6PHBhZ2VJZE5vU3VmZml4Pjp2YWx1ZSB5b3VyIHRyYWRlOnRoYW5rIHlvdSIsdmFyaWFudE5hbWU6InZhbHVlLXlvdXItdHJhZGUtc3VibWl0Iix0b29sOiJldmVudDp2YWx1ZSB5b3VyIHRyYWRlIiwKdG9vbERlc2NyaXB0b3I6bCsiOnZhbHVlIHlvdXIgdHJhZGUifSx1c2VyOntsZWFkVHlwZTpmKyI6dmFsdWUgeW91ciB0cmFkZSJ9fTsiPHNpLXR5cGU+OnNpOnZlaGljbGUgZGV0YWlsczxzaS1zdWZmaXg+Ij09YyYmJC5leHRlbmQoITAsZSx7cGFnZTp7aGllcmFyY2h5OiJzaG9wcGluZyB0b29sczp2YWx1ZSB5b3VyIHRyYWRlPHNpLWNhdGVnb3J5PjxzaS1zdWZmaXg+IixwYWdlTmFtZToiZGM6PHBhZ2VJZE5vU3VmZml4Pjp2YWx1ZSB5b3VyIHRyYWRlOnRoYW5rIHlvdTxzaS1zdWZmaXg+IixwYWdlTmFtZU5vVmVoaWNsZToiZGM6PHBhZ2VJZE5vU3VmZml4Pjp2YWx1ZSB5b3VyIHRyYWRlOnRoYW5rIHlvdSIsdG9vbDoiZXZlbnQ6dmFsdWUgeW91ciB0cmFkZSIsdG9vbERlc2NyaXB0b3I6InZlaGljbGUgZGV0YWlsczp2YWx1ZSB5b3VyIHRyYWRlIn0sdXNlcjp7bGVhZFR5cGU6InZkcDp2YWx1ZSB5b3VyIHRyYWRlIn19KTsiPHZ5dC1wYWdlaWQ+Ij09YyYmJC5leHRlbmQoITAsCmUse3BhZ2U6e3BhZ2VOYW1lOiJkYzp2YWx1ZSB5b3VyIHRyYWRlOnRoYW5rIHlvdTxzaS1zdWZmaXg+IixwYWdlTmFtZU5vVmVoaWNsZToiZGM6dmFsdWUgeW91ciB0cmFkZTp0aGFuayB5b3UiLHNpdGVTZWN0aW9uOiJ2YWx1ZSB5b3VyIHRyYWRlIixoaWVyYXJjaHk6InZhbHVlIHlvdXIgdHJhZGUiLHRvb2w6ImV2ZW50OnZhbHVlIHlvdXIgdHJhZGUiLHRvb2xEZXNjcmlwdG9yOiJ2YWx1ZSB5b3VyIHRyYWRlIn0sdXNlcjp7bGVhZFR5cGU6InZhbHVlIHlvdXIgdHJhZGUifX0pOyJ2YWx1ZSB5b3VyIHRyYWRlIj09YyYmJC5leHRlbmQoITAsZSx7cGFnZTp7cGFnZU5hbWU6ImRjOnZhbHVlIHlvdXIgdHJhZGU6dGhhbmsgeW91PHNpLXN1ZmZpeD4iLHBhZ2VOYW1lTm9WZWhpY2xlOiJkYzp2YWx1ZSB5b3VyIHRyYWRlOnRoYW5rIHlvdSJ9fSk7YSYmJC5leHRlbmQoITAsZSx7cGFnZTp7c2l0ZVNlY3Rpb246Imdsb2JhbCIscGFnZU5hbWU6ImRjOmdsb2JhbDp2YWx1ZSB5b3VyIHRyYWRlOnRoYW5rIHlvdTxzaS1zdWZmaXg+IiwKcGFnZU5hbWVOb1ZlaGljbGU6ImRjOmdsb2JhbDp2YWx1ZSB5b3VyIHRyYWRlOnRoYW5rIHlvdSJ9LHVzZXI6e2xlYWRUeXBlOiJnbG9iYWw6dmFsdWUgeW91ciB0cmFkZSJ9fSk7cmV0dXJuIGV9O2IucmVzb2x2ZVByZUFwcHJvdmFsVmFycz1mdW5jdGlvbihjLGEpe3ZhciBlPSJob21lIjtzd2l0Y2godC5wYWdlSWQpe2Nhc2UgIjxzaS10eXBlPjpzaTp2bHM8c2ktc3VmZml4PiI6ZT0ic2VhcmNoIjticmVhaztjYXNlICJ2ZWhpY2xlOjxuYW1lcGxhdGU+IjplPSJ2ZHBfbmV3IjticmVhaztjYXNlICI8c2ktdHlwZT46c2k6dmVoaWNsZSBkZXRhaWxzPHNpLXN1ZmZpeD4iOmU9InZkcF91c2VkIjticmVhaztjYXNlICJmaW5hbmNlOmZpbmFuY2UgZGVwYXJ0bWVudCI6ZT0iZmluYW5jZSJ9c3dpdGNoKGEpe2Nhc2UgImhpZXJhcmNoeSI6c3dpdGNoKGUpe2Nhc2UgImZpbmFuY2UiOnJldHVybiJmaW5hbmNlIjtjYXNlICJob21lIjpyZXR1cm4iPHNlY3Rpb24+OmdldCBwcmVhcHByb3ZlZCI7CmNhc2UgInNlYXJjaCI6Y2FzZSAidmRwX25ldyI6Y2FzZSAidmRwX3VzZWQiOnJldHVybiJzaG9wcGluZyB0b29sczpnZXQgcHJlYXBwcm92ZWQ8c2ktY2F0ZWdvcnk+PHNpLXN1ZmZpeD4iO2RlZmF1bHQ6cmV0dXJuIjxzZWN0aW9uPiJ9Y2FzZSAicGFnZU5hbWUiOmNhc2UgInBhZ2VOYW1lTm9WZWhpY2xlIjpzd2l0Y2goYyl7Y2FzZSAiZm9ybS1zdGVwIjpyZXR1cm4iZGM6PHBhZ2VJZE5vU3VmZml4PjpnZXQgcHJlLWFwcHJvdmVkOjxzdGVwLW51bWJlcj4iO2Nhc2UgImZvcm0tc3VibWl0IjpyZXR1cm4iZGM6PHBhZ2VJZE5vU3VmZml4PjpnZXQgcHJlLWFwcHJvdmVkOnRoYW5rIHlvdSJ9fX07cmV0dXJuIGJ9O08oKTskKHgucGxyRmFjdG9yeSh7fSwicGFnZWxvYWQiKSk7c2V0VGltZW91dChmdW5jdGlvbigpeyQoZnVuY3Rpb24oKXt2YXIgZD0kLmV4dGVuZCghMCxCWyIqIl0sQlt0LnBhZ2VJZF0\/Qlt0LnBhZ2VJZF06e30pOyQuZWFjaChkLGZ1bmN0aW9uKGIsaCl7JChiKS5vbigiY2xpY2siLAp4LmRjckZhY3RvcnkoaCkpfSwhMSk7JCgiYm9keSIpLm9uKCJjbGljayIsImEiLHguZGNyRmFjdG9yeSh7aXNHbG9iYWw6ITB9LCExKSk7JCgiYm9keSIpLm9uKCJjbGljayIsImEiLHguZXhpdEZhY3Rvcnkoe30sITEpKTskKCJib2R5Iikub24oImNsaWNrIiwiYnV0dG9uIix4LmRjckZhY3Rvcnkoe2lzR2xvYmFsOiEwfSwhMSkpOyQoImJvZHkiKS5vbigiY2hhbmdlIiwic2VsZWN0Iix4LmRjckZhY3Rvcnkoe2lzR2xvYmFsOiEwLGlzU2VsZWN0Q2hhbmdlOiEwfSwhMSkpOyQoImJvZHkiKS5vbigiZW1haWxIYW5kbGVyLnN1Ym1pdCIseC5kY3JGYWN0b3J5KHtpc0Zvcm1TdWJtaXQ6ITAsdmFyaWFudE5hbWU6ImZvcm0tc3VibWl0In0sITApKTskKGRvY3VtZW50KS5vbigiaW52ZW50b3J5U2VhcmNoLmZpbHRlciIsImJvZHkiLHguZGNyRmFjdG9yeSh7aXNTZWFyY2hGaWx0ZXI6ITB9LCEwKSk7JChkb2N1bWVudCkub24oInBheW1lbnRDYWxjdWxhdG9yLmNsaWNrIiwiZGl2Iix4LmRjckZhY3Rvcnkoe2lzR2xvYmFsOiEwfSwKITEpKTskKGRvY3VtZW50KS5vbigib2VtX3JlYmF0ZS5jbGljayIsIi5wcm9tby1jYXJkLW9lbSIseC5kY3JGYWN0b3J5KHtpc09FTVJlYmF0ZTohMH0sITEpKTskKCJib2R5Iikub24oImNsaWNrIiwibGkiLHguZGNyRmFjdG9yeSh7aXNHbG9iYWw6ITB9LCExKSk7JChkb2N1bWVudCkub24oImZvcm0uc3RlcCIsIiNmaW5hbmNlX211bHRpc3RlcF9mb3JtIix4LnBsckZhY3Rvcnkoe3BhZ2U6e2hpZXJhcmNoeTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJlc29sdmVQcmVBcHByb3ZhbFZhcnMoImZvcm0tc3RlcCIsImhpZXJhcmNoeSIpfSxwYWdlTmFtZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJlc29sdmVQcmVBcHByb3ZhbFZhcnMoImZvcm0tc3RlcCIsInBhZ2VOYW1lIil9LHBhZ2VOYW1lTm9WZWhpY2xlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucmVzb2x2ZVByZUFwcHJvdmFsVmFycygiZm9ybS1zdGVwIiwicGFnZU5hbWVOb1ZlaGljbGUiKX0sdmFyaWFudE5hbWU6IjxnZXQtcHJlLWFwcHJvdmVkLXZhcmlhbnROYW1lPiIsCnRvb2w6Ijx0b29sPiIsdG9vbERlc2NyaXB0b3I6Ijx0b29sRGVzY3JpcHRvcj4ifX0sImZvcm0tc3RlcCIpKTskKCIucmV2ZWFsLW1vZGFsIikub25lKCJwb3B1cGl6ZXIub25PcGVuIix4LnBsckZhY3Rvcnkoe3BhZ2U6e3ZhcmlhbnROYW1lOiJnbG9iYWwtb3ZlcmxheSJ9fSwicG9wdXAiKSl9KX0sMjUwKTt3aW5kb3cuZDJmdD14fTsKLyoqIC9qcy9kMmNfYXNjX2dhNC5qcyAqKi8KdmFyIF9fX2QyY19kMmNhc2NnYTRqc19jX29uPSIyMDI2LTA1LTI4IDEyOjMwOjAzIjsndXNlIHN0cmljdCc7dmFyIGFzY1RvcENhckRldGFpbHM9ITEsYXNjTGFzdFNlYXJjaEZpbHRlclNvcnQ9ITEsYXNjTGFzdEZpbHRlckNsaWNrPSExLGFzY0xhc3RDdGFDbGljaz0hMSxhc2NDb21tU3RhcnRGaXJlZD0hMTtmdW5jdGlvbiBkMmFzY1B1YmxpY2F0aW9uRGF0ZShkKXtpZigiIj09ZClyZXR1cm4iIjt2YXIgaD1uZXcgRGF0ZShkKTtkPSIiKyhoLmdldE1vbnRoKCkrMSk7dmFyIGs9IiIraC5nZXREYXRlKCk7aD1oLmdldEZ1bGxZZWFyKCk7MTA+cGFyc2VGbG9hdChkKSYmKGQ9IjAiK2QpOzEwPnBhcnNlRmxvYXQoaykmJihrPSIwIitrKTtyZXR1cm5bZCxrLGhdLmpvaW4oIi8iKX1mdW5jdGlvbiBlbnN1cmVUcnV0aHkoZCl7cmV0dXJuIGQ\/ZDoiIn0KZnVuY3Rpb24gYXNjVXBkYXRlVG9wQ2FyRGF0YShkKXtpZighMSE9PWQpe2xldCBoPWQyYXNjUHVibGljYXRpb25EYXRlKGVuc3VyZVRydXRoeShkLmRhdGVfbGlzdGluZykpLGs9ZC5tYWtlY2VydCsiIjthc2NUb3BDYXJEZXRhaWxzPXtpdGVtX2lkOmVuc3VyZVRydXRoeShkLk5JViksaXRlbV9udW1iZXI6ZW5zdXJlVHJ1dGh5KGQuaWQpLGl0ZW1fcHJpY2U6ZW5zdXJlVHJ1dGh5KGQucHJpY2UpLGl0ZW1fY29uZGl0aW9uOmVuc3VyZVRydXRoeShkLnZjYXRlZ29yeSkudG9Mb3dlckNhc2UoKSxpdGVtX3llYXI6ZW5zdXJlVHJ1dGh5KGQueWVhcikudG9Mb3dlckNhc2UoKSxpdGVtX21ha2U6ZW5zdXJlVHJ1dGh5KGQubWFrZSkudG9Mb3dlckNhc2UoKSxpdGVtX21vZGVsOmVuc3VyZVRydXRoeShkLm1vZGVsKS50b0xvd2VyQ2FzZSgpLGl0ZW1fdmFyaWFudDplbnN1cmVUcnV0aHkoZC52ZXJzaW9uKS50b0xvd2VyQ2FzZSgpLGl0ZW1fY29sb3I6ZW5zdXJlVHJ1dGh5KGQuY29sb3IpLnRvTG93ZXJDYXNlKCksCml0ZW1fdHlwZTplbnN1cmVUcnV0aHkoZC5ib2R5VHlwZUlEKS50b0xvd2VyQ2FzZSgpLGl0ZW1fY2F0ZWdvcnk6ZW5zdXJlVHJ1dGh5KCIiKSxpdGVtX2Z1ZWxfdHlwZTplbnN1cmVUcnV0aHkoZC52Y2FyYnVyYW50KS50b0xvd2VyQ2FzZSgpLGl0ZW1faW52ZW50b3J5X2RhdGU6ZW5zdXJlVHJ1dGh5KGgpfTsiMjEiIT1rJiYiMCIhPWsmJmQyYXNjLnNldFZlaGljbGVTdGF0dXMoIkNQTyIpfWVsc2UgZD0kKCIjYXNjX2RpZ2l0YWxfZGF0YV9pbmZvIiksYXNjVG9wQ2FyRGV0YWlscz17aXRlbV9jb25kaXRpb246Im5ldyIsaXRlbV95ZWFyOiQoImlucHV0W25hbWU9J3llYXInXSIsZCkudmFsKCksaXRlbV9tYWtlOiQoImlucHV0W25hbWU9J21ha2UnXSIsZCkudmFsKCksaXRlbV9tb2RlbDplbnN1cmVUcnV0aHkoJCgiaW5wdXRbbmFtZT0nbW9kZWwnXSIsZCkudmFsKCkpLnRvTG93ZXJDYXNlKCksaXRlbV90eXBlOiQoImlucHV0W25hbWU9J3ZlaGljbGVDYXRlZ29yeSddIixkKS52YWwoKX07CmNvbnNvbGUubG9nKCJHQTQgYXNjVG9wQ2FyRGV0YWlscyIsYXNjVG9wQ2FyRGV0YWlscyl9CmZ1bmN0aW9uIGQyYXNjUmVzb2x2ZVBhZ2VJZChkKXtkPWQucmVwbGFjZSgvPFwvP1tePl0rKD58JCkvZywiIik7aWYoZC5pbmNsdWRlcygic2k6dmxzIikpcmV0dXJuInNlYXJjaCBpbnZlbnRvcnkiO2lmKGQuaW5jbHVkZXMoIjpzaTp2ZWhpY2xlIGRldGFpbHMiKXx8ZC5pbmNsdWRlcygidmVoaWNsZSIpKXJldHVybiJ2ZHAiO2lmKGQuaW5jbHVkZXMoImN1c3RvbToiKSlyZXR1cm4iYmxvZyI7aWYoZC5pbmNsdWRlcygiZmluYW5jZSIpKXJldHVybiJjcmVkaXQiO2lmKGQuaW5jbHVkZXMoInNlcnZpY2U6cmVxdWVzdCBhcHBvaW50bWVudCIpKXJldHVybiJyZXF1ZXN0IGFwcG9pbnRtZW50IjtpZihkLmluY2x1ZGVzKCJzZXJ2aWNlOm9yZGVyIHBhcnRzIikpcmV0dXJuIm9yZGVyIHBhcnRzIjtpZihkLmluY2x1ZGVzKCJhYm91dCB1czpjb250YWN0IHVzIikpcmV0dXJuImNvbnRhY3QgdXMiO2lmKGQuaW5jbHVkZXMoIlVOS05PV04iKSl7aWYoL2J1aWxkLWFuZC1wcmljZS8udGVzdCh3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUpfHwKL2NvbmZpZ3VyYXRpb24tZXQtcHJpeC8udGVzdCh3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUpKXJldHVybiJidWlsZCBhbmQgcHJpY2UiO2lmKC9wcmljZS1uZXcvLnRlc3Qod2luZG93LmxvY2F0aW9uLnBhdGhuYW1lKXx8L3ByaXgtbmV1Zi8udGVzdCh3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUpKXJldHVybiJwcmljZSByZXF1ZXN0IjtpZigvYnJvY2h1cmVzLy50ZXN0KHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSkpcmV0dXJuImJyb2NodXJlIjtpZigvYXV0by1qb2JzLy50ZXN0KHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSl8fC9lbXBsb2lzLWF1dG9tb2JpbGUvLnRlc3Qod2luZG93LmxvY2F0aW9uLnBhdGhuYW1lKSlyZXR1cm4iam9icyI7aWYoL291cnRlYW0vLnRlc3Qod2luZG93LmxvY2F0aW9uLnBhdGhuYW1lKXx8L2VxdWlwZS8udGVzdCh3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUpKXJldHVybiJvdXIgdGVhbSJ9cmV0dXJuIGR9CmZ1bmN0aW9uIGQyYXNjUmVzb2x2ZUxlYWRUeXBlKGQsaCl7aD1oLnRvTG93ZXJDYXNlKCk7bGV0IGs9e307Zm9yKHZhciBsIGluIGQpa1tsLnRvTG93ZXJDYXNlKCldPWRbbF07bD0kKCJodG1sIikuYXR0cigibGFuZyIpO2Q9IiI7bD0iZW4iPT1sLnRvTG93ZXJDYXNlKCl8fCJlbmciPT1sLnRvTG93ZXJDYXNlKCk\/IkVOR0xJU0giOiJGUkVOQ0giO3ZvaWQgMCE9PWtbaF0mJnZvaWQgMCE9PWtbaF1bbF0mJihkPWtbaF1bbF0pO3JldHVybiBkfQpmdW5jdGlvbiBEMkFTQyhkKXtkLnBhZ2VJZE9yZz1kLnBhZ2VJZDtkLnBhZ2VJZD1kMmFzY1Jlc29sdmVQYWdlSWQoZC5wYWdlSWQpO2QuZGVhbGVyX25hbWU9JCgiI2hpZGRlbkRlYWxlck5hbWUiKS52YWwoKTt2YXIgaD17c3RvcmVfbmFtZTpkLmRlYWxlcl9uYW1lLnRvTG93ZXJDYXNlKCksb2VtX2NvZGU6ZC5wYUNvZGUsb2VtX2JyYW5kOmQuY2xpZW50LGFmZmlsaWF0aW9uOiIiLGxhbmd1YWdlOmQudXNlckxhbmd1YWdlLGN1cnJlbmN5OiJjYWQiLHBhZ2VfdHlwZTpkLnBhZ2VJZCxpdGVtczpbXSxldmVudHM6W10sbWVhc3VyZW1lbnRfaWRzOlsiRy02R0VaMldXVDNMIl0scGxhdGZvcm1fY3VzdG9tOiIifSxrPXthc2NfY2xpY2tfdG9fY2FsbDpbImEucGhvbmUtbGluayIsImEucGhvbmUtYWN0aW9uIl0sYXNjX2N0YV9pbnRlcmFjdGlvbjoiLnYtY2FyZCBhOm5vdCgucGhvbmUtbGluayk7LmxlZnRfYm94IGE7I2Zvb3RlciBhOyNzY3JhdGNoYW5kc2F2ZV9lbWJlZGRlZF9idG5fMTsjUHVsbG91dF9CdWlsZC1hbmQtUHJpY2U7I25ld1ZkcEZ1bGx3aWR0aFZpZGVvSWZyYW1lIi5zcGxpdCgiOyIpLAphc2NfY3RhX2ludGVyYWN0aW9uOiIjcHJvbW9EaXNjb3ZlckJ1dHRvbiAuZGl2Q2FyUGF5bWVudENhbGN1bGF0b3IgI3NjcmF0Y2hhbmRzYXZlX2VtYmVkZGVkIC5sb2FuQ2FsY3VsYXRvclRyaWdnZXIgLm9mZmVyLWJ0biAuY3RQcm9tbyAudHJhZGVJbkJhcl9idG4iLnNwbGl0KCIgIiksYXNjX2N0YV9pbnRlcmFjdGlvbjpbIi5uZXdWZHBBY3Rpb25zIGEiLCIuY3RhLXRwbCBhIl0sYXNjX2NvbW1fZW5nYWdlbWVudDpbIi50ZXh0LXVzLWJ0biJdLGFzY19mb3JtX2VuZ2FnZW1lbnQ6WyJpbnB1dCIsInNlbGVjdCIsInRleHRhcmVhIl0sYXNjX21lZGlhX2ludGVyYWN0aW9uOlsiI25ld1ZkcEZ1bGx3aWR0aFZpZGVvSWZyYW1lIiwiaW1nIl0sYXNjX21lbnVfaW50ZXJhY3Rpb246WyIudXBfbWVudSBhIl0sYXNjX2VsZW1lbnRfY29uZmlndXJhdGlvbjpbIi5sYW5ndWFnZUJhciBhIl19LGw9ITE7Y29uc29sZS5sb2coIkQyQVNDIExvYWRpbmcuLi4iLGQpO3ZhciBnPW5ldyBmdW5jdGlvbigpe3ZhciBlPQp0aGlzO2Uuc2V0VmVoaWNsZVN0YXR1cz1mdW5jdGlvbihiKXtsZXQgYT0kKCIjYXNjX2RpZ2l0YWxfZGF0YV9pbmZvIGlucHV0W25hbWU9dmVoaWNsZVN0YXR1c10iKTtpZigiIiE9JCgiI2FzY19kaWdpdGFsX2RhdGFfaW5mbyBpbnB1dFtuYW1lPSdtYWtlJ10iKS52YWwoKSl7bGV0IGM9d2luZG93LmxvY2F0aW9uLnBhdGhuYW1lLnRvTG93ZXJDYXNlKCk7YS52YWwoL3VzZWQvLnRlc3QoYyl8fC9vY2Nhc2lvbi8udGVzdChjKT8iVXNlZCI6Ik5ldyIpfSExIT09YiYmYS52YWwoYil9O2Uuc2V0RGlnaXRhbERhdGE9ZnVuY3Rpb24oYixhKXtsZXQgYz1lLmFkZEV2ZW50KGIsYSk7aWYoITE9PT1jKXJldHVybiExO3ZvaWQgMCE9PWMuZm9ybV9uYW1lJiYoYy5mb3JtX25hbWU9Yy5mb3JtX25hbWUucmVwbGFjZSgibWVuc3VhbGl0P3MiLCJtZW5zdWFsaXRlcyIpLGMuZm9ybV9uYW1lPWMuZm9ybV9uYW1lLnJlcGxhY2UoInY\/aGljdWxlIiwidmVoaWN1bGUiKSxjLmZvcm1fbmFtZT1jLmZvcm1fbmFtZS5yZXBsYWNlKCI\/dGFwZXMiLAoiZXRhcGVzIiksYy5mb3JtX25hbWU9IkQyQyAiK2MuZm9ybV9uYW1lKTt2b2lkIDAhPT1jLmZvcm1fbGFuZyYmKGMuZm9ybV9sYW5nPWUuc3RhbmRhcmRpemVGb3JtTGFuZyhjLmZvcm1fbGFuZykpO2guZXZlbnRzLnVuc2hpZnQoSlNPTi5zdHJpbmdpZnkoe25hbWU6YixwYXJhbXM6Y30pKTsidmRwIj09Yy5wYWdlX3R5cGUmJihjLnBhZ2VfdHlwZT0iaXRlbSIpOyJzaG93cm9vbSI9PWMucGFnZV90eXBlJiYoYy5wYWdlX3R5cGU9Iml0ZW0iKTsic2VhcmNoIGludmVudG9yeSI9PWMucGFnZV90eXBlJiYoYy5wYWdlX3R5cGU9Iml0ZW1saXN0Iik7bGV0IGY9ZS5nZXRFdmVudFR5cGUoYik7ZS5yZXBvcnQoZixiLGMsaCk7ImFzY19mb3JtX3N1Ym1pc3Npb24iPT1iJiYoZS5zZXREaWdpdGFsRGF0YSgiYXNjX2Zvcm1fc3VibWlzc2lvbl9zYWxlcyIsYSksZS5zZXREaWdpdGFsRGF0YSgiRDJDX0Zvcm1fc3VibWlzc2lvbl9zYWxlcyIsYSksZS5zZXREaWdpdGFsRGF0YSgiRDJDX0xlYWRzIiwKYSksc2V0VGltZW91dChmdW5jdGlvbigpe2FzY0xhc3RDdGFDbGljaz0hMX0sMTI1MCkpOyJhc2NfY29tbV9zdWJtaXNzaW9uIj09YiYmZS5zZXREaWdpdGFsRGF0YSgiYXNjX2NvbW1fc3VibWlzc2lvbl9zYWxlcyIsYSk7ImFzY19mb3JtX2VuZ2FnZW1lbnQiPT1iJiYhMT09PWFzY0NvbW1TdGFydEZpcmVkJiZhIGluc3RhbmNlb2YgalF1ZXJ5JiYwPGEuY2xvc2VzdCgiI1NsaWRlV2lkZ2V0Rm9ybSIpLmxlbmd0aCYmKGFzY0NvbW1TdGFydEZpcmVkPSEwLGUuc2V0RGlnaXRhbERhdGEoImFzY19jb21tX3N0YXJ0IixhKSl9O2UuZ2V0RXZlbnRUeXBlPWZ1bmN0aW9uKGIpe2xldCBhPSJlbmdhZ2VtZW50Ijtzd2l0Y2goYil7Y2FzZSAiYXNjX2Zvcm1fc3VibWlzc2lvbiI6Y2FzZSAiYXNjX2Zvcm1fc3VibWlzc2lvbl9wYXJ0cyI6Y2FzZSAiYXNjX2Zvcm1fc3VibWlzc2lvbl9zYWxlc19hcHB0IjpjYXNlICJhc2NfZm9ybV9zdWJtaXNzaW9uX3NhbGVzIjpjYXNlICJhc2NfZm9ybV9zdWJtaXNzaW9uX3NlcnZpY2UiOmE9CiJjb252ZXJzaW9uIn1yZXR1cm4gYX07ZS5iaW5kRWxlbWVudHM9ZnVuY3Rpb24oYixhKXskLmVhY2goYSxmdW5jdGlvbihjLGYpeyQoZikuZWFjaChmdW5jdGlvbigpe2NvbnN0IG09JCh0aGlzKSxuPSJhc2NfZm9ybV9lbmdhZ2VtZW50Ij09Yj8iYmx1ciI6ImNsaWNrIjskKHRoaXMpLm9uKG4sZnVuY3Rpb24oKXtnLnNldERpZ2l0YWxEYXRhKGIsbSl9KX0pfSl9O2UuYWRkRXZlbnQ9ZnVuY3Rpb24oYixhKXt2YXIgYz17ZXZlbnRfb3duZXI6ImQyYyIscGFnZV90eXBlOmQucGFnZUlkLHBhZ2VfdXJsOndpbmRvdy5sb2NhdGlvbi5ocmVmLGV2ZW50X2xhYmVsOmIsZXZlbnRfY2F0ZWdvcnk6JCgiI2FzY19kaWdpdGFsX2RhdGFfaW5mbyBpbnB1dFtuYW1lPXZlaGljbGVTdGF0dXNdIikudmFsKCl9LGY9ITEhPT1hc2NMYXN0Q3RhQ2xpY2s\/ZS5DdGFUZXh0UGFyc2VyKGFzY0xhc3RDdGFDbGljayk6IiI7c3dpdGNoKGIpe2Nhc2UgImFzY19wYWdldmlldyI6YnJlYWs7Y2FzZSAiYXNjX2NsaWNrX3RvX2NhbGwiOmY9CmEuaGFzQ2xhc3MoInBob25lLWxpbmsiKT9hLnRleHQoKTphLmF0dHIoImhyZWYiKTtmPWYucmVwbGFjZSgvW14wLTlcK10vZywiIik7Yz1PYmplY3QuYXNzaWduKHt9LGMse2NvbW1fcGhvbmVfbnVtYmVyOmYsZGVwYXJ0bWVudDplLmdldEQyY0RlcGFydG1lbnQoYSksYWZmaWxpYXRpb246IiJ9KTticmVhaztjYXNlICJhc2NfY3RhX2ludGVyYWN0aW9uIjpmPWUuQ3RhVGV4dFBhcnNlcihhKTtlLmlzQ3RhQ2xpY2soYSkmJihhc2NMYXN0Q3RhQ2xpY2s9YSk7Yz1PYmplY3QuYXNzaWduKHt9LGMse2VsZW1lbnRfdGV4dDpmLGVsZW1lbnRfb3JkZXI6IiIsZWxlbWVudF9jb2xvcjoiIixlbGVtZW50X3R5cGU6ZS5nZXRFbGVtZW50VHlwZShhKSxldmVudF9hY3Rpb246IiIsZXZlbl9hY3Rpb25fcmVzdWx0OmEuYXR0cigiaHJlZiIpPyJyZWRpcmVjdCI6InBvcHVwIixsaW5rX3VybDphLmF0dHIoImhyZWYiKT9hLmF0dHIoImhyZWYiKToiIn0pO2JyZWFrO2Nhc2UgImFzY19mb3JtX2VuZ2FnZW1lbnQiOmY9CmUuZ2V0TGVhZFR5cGVGb3JtTmFtZShhKTtpZighMT09PWYpcmV0dXJuITE7bGV0IG09ZS5hc2NUZXh0UmVwbGFjZXIoYS52YWwoKSksbj1lLmdldEQyY0RlcGFydG1lbnQoYSk7Yz1PYmplY3QuYXNzaWduKHt9LGMse2VsZW1lbnRfdGV4dDptLGNvbW1fdHlwZToiZm9ybSIsY29tbV9zdGF0dXM6InN0YXJ0IixkZXBhcnRtZW50Om4sZm9ybV9uYW1lOmYsZm9ybV90eXBlOmUuZ2V0Rm9ybVR5cGUoYSksZm9ybV9sYW5nOiQoImlucHV0W25hbWU9J2xhbmcnXSIpLnZhbCgpLGZvcm1fZGVwdDpufSk7YnJlYWs7Y2FzZSAiYXNjX2Zvcm1fc3VibWlzc2lvbiI6Yz1PYmplY3QuYXNzaWduKHt9LGMse2NvbW1fdHlwZToiZm9ybSIsY29tbV9vdXRjb21lOiJjbG9zZSIsc3VibWlzc2lvbl9pZDoiIixlbGVtZW50X3RleHQ6InN1Ym1pdCIsY3RhX3RleHQ6ZixjdXN0b21lcl9waG9uZTphLmNvbmZpcm1fcGhvbmVfbnVtYmVyLGN1c3RvbWVyX2VtYWlsOmEuY29uZmlybV9lbWFpbCxkZXBhcnRtZW50OmUuZ2V0RDJjRGVwYXJ0bWVudChhKSwKZm9ybV9uYW1lOmEubGVhZFR5cGUsZm9ybV90eXBlOmUuZ2V0Rm9ybVR5cGUoYSksZm9ybV9sYW5nOiQoImlucHV0W25hbWU9J2xhbmcnXSIpLnZhbCgpLGZvcm1fZGVwdDplLmdldEQyY0RlcGFydG1lbnQoYSl9KTticmVhaztjYXNlICJhc2NfZm9ybV9zdWJtaXNzaW9uX3BhcnRzIjpjYXNlICJhc2NfZm9ybV9zdWJtaXNzaW9uX3NhbGVzIjpjYXNlICJhc2NfZm9ybV9zdWJtaXNzaW9uX3NhbGVzX2FwcHQiOmNhc2UgImFzY19mb3JtX3N1Ym1pc3Npb25fc2VydmljZSI6Y2FzZSAiYXNjX2Zvcm1fc3VibWlzc2lvbl9zZXJ2aWNlX2FwcHQiOmNhc2UgIkQyQ19MZWFkcyI6YS5jb25maXJtX3Bob25lX251bWJlcj12b2lkIDA9PT1hLmNvbmZpcm1fcGhvbmVfbnVtYmVyPyIiOmEuY29uZmlybV9waG9uZV9udW1iZXI7YS5jb25maXJtX2VtYWlsPXZvaWQgMD09PWEuY29uZmlybV9lbWFpbD8iIjphLmNvbmZpcm1fZW1haWw7Yz1PYmplY3QuYXNzaWduKHt9LGMse2NvbW1fdHlwZToiZm9ybSIsCmNvbW1fb3V0Y29tZTplLmdldEZvcm1PdXRjb21lKGIpLHN1Ym1pc3Npb25faWQ6IiIsZWxlbWVudF90ZXh0OmUuYXNjVGV4dFJlcGxhY2VyKCJzdWJtaXQiKSxjdGFfdGV4dDpmLGN1c3RvbWVyX3Bob25lOmEuY29uZmlybV9waG9uZV9udW1iZXIsY3VzdG9tZXJfZW1haWw6YS5jb25maXJtX2VtYWlsLGRlcGFydG1lbnQ6ZS5nZXREMmNEZXBhcnRtZW50KGEpLGZvcm1fbmFtZTphLmxlYWRUeXBlLGZvcm1fdHlwZTplLmdldEZvcm1UeXBlKGEpLGZvcm1fbGFuZzokKCJpbnB1dFtuYW1lPSdsYW5nJ10iKS52YWwoKSxmb3JtX2RlcHQ6ZS5nZXREMmNEZXBhcnRtZW50KGEpfSk7YnJlYWs7Y2FzZSAiRDJDX0Zvcm1fc3VibWlzc2lvbl9zYWxlcyI6Yz17Zm9ybV9maWxsZWQ6IlllcyJ9O2JyZWFrO2Nhc2UgImFzY19lbGVtZW50X2NvbmZpZ3VyYXRpb24iOmM9dm9pZCAwIT09YS5ldmVudF9hY3Rpb24\/T2JqZWN0LmFzc2lnbih7fSxjLHtldmVudF9hY3Rpb25fcmVzdWx0OmEuZXZlbnRfYWN0aW9uX3Jlc3VsdCwKZXZlbnRfYWN0aW9uOmEuZXZlbnRfYWN0aW9uLHByb2R1Y3RfbmFtZToiIixlbGVtZW50X3N0YXRlOmEuZmlsdGVySW5mby5zdGF0ZSxlbGVtZW50X3R5cGU6InNlYXJjaCI9PWEuZXZlbnRfYWN0aW9uPyJmaWx0ZXIiOiJzb3J0IixlbGVtZW50X3N1YnR5cGU6YS5maWx0ZXJJbmZvLnR5cGUsZWxlbWVudF90aXRsZTphLmZpbHRlckluZm8ubGFiZWwsZWxlbWVudF90ZXh0OmEuZmlsdGVySW5mby50aXRsZSxlbGVtZW50X3ZhbHVlOmEuZmlsdGVySW5mby52YWx1ZSxlbGVtZW50X2NvbG9yOiIiLGVsZW1lbnRfcG9zaXRpb246IiIsZWxlbWVudF9vcmRlcjoiIn0pOk9iamVjdC5hc3NpZ24oe30sYyx7ZXZlbnRfYWN0aW9uX3Jlc3VsdDoibGFuZ3VhZ2UiLGV2ZW50X2FjdGlvbjoiY2xpY2siLHByb2R1Y3RfbmFtZToiIixlbGVtZW50X3N0YXRlOjAsZWxlbWVudF90eXBlOiJsYW5ndWFnZSB0b2dnbGUsIixlbGVtZW50X3N1YnR5cGU6ImJ1dHRvbiIsZWxlbWVudF90aXRsZTplLmFzY1RleHRSZXBsYWNlcihhLnRleHQoKSksCmVsZW1lbnRfdGV4dDplLmFzY1RleHRSZXBsYWNlcihhLnRleHQoKSksZWxlbWVudF92YWx1ZTplLmFzY1RleHRSZXBsYWNlcihhLnRleHQoKSksZWxlbWVudF9jb2xvcjoiIixlbGVtZW50X3Bvc2l0aW9uOiIiLGVsZW1lbnRfb3JkZXI6IiJ9KTticmVhaztjYXNlICJhc2NfbWVkaWFfaW50ZXJhY3Rpb24iOmM9T2JqZWN0LmFzc2lnbih7fSxjLHtldmVudF9hY3Rpb25fcmVzdWx0OiIiLGFmZmlsaWF0aW9uOiIiLG1lZGlhX3R5cGU6IiIsbGlua191cmw6IiIsY3JlYXRpdmVfbmFtZToiIn0pO2JyZWFrO2Nhc2UgImFzY19tZW51X2ludGVyYWN0aW9uIjpjPU9iamVjdC5hc3NpZ24oe30sYyx7ZWxlbWVudF90ZXh0OmUuYXNjVGV4dFJlcGxhY2VyKGEudGV4dCgpKSxlbGVtZW50X3N1YnR5cGU6Im1lZ2FfbWVudSIsZWxlbWVudF90eXBlOmEuY2xvc2VzdCgibGkiKS5hdHRyKCJkYXRhLWlkIiksZXZlbnRfYWN0aW9uOiJjbGljayJ9KTticmVhaztjYXNlICJhc2NfcmV0YWlsX3Byb2Nlc3MiOmM9Ck9iamVjdC5hc3NpZ24oe30sYyx7Zmxvd19uYW1lOiJmaW5hbmNlIixlbGVtZW50X3RpdGxlOiIiLGZsb3dfb3V0Y29tZToicHJvY2VlZCIsaXRlbV9wYXltZW50OiJmaW5hbmNlIixmbG93X3N0YWdlOiIifSk7YnJlYWs7Y2FzZSAiYXNjX3NwZWNpYWxfb2ZmZXIiOmM9T2JqZWN0LmFzc2lnbih7fSxjLHtwcm9tb3Rpb25fbmFtZTokKCJoMjpmaXJzdC1jaGlsZCIsYSkubGVuZ3RoP2UuYXNjVGV4dFJlcGxhY2VyKCQoImgyOmZpcnN0LWNoaWxkIixhKS50ZXh0KCkpOiJEZWFsZXIgUHJvbW8iLGRlcGFydG1lbnQ6ZS5nZXREMmNEZXBhcnRtZW50KGEpLHByb2R1Y3RfbmFtZToiIixlbGVtZW50X3Bvc2l0aW9uOiJmbG9hdGluZyIsZmxvd19vdXRjb21lOiJzdGFydCJ9KTticmVhaztjYXNlICJhc2NfY29tbV9lbmdhZ2VtZW50IjpjPU9iamVjdC5hc3NpZ24oe30sYyx7Y29tbV9zdGF0dXM6InN0YXJ0Iixjb21tX3R5cGU6InNtcyIscHJvZHVjdF9uYW1lOiJkMmNfdGV4dCIsZXZlbnRfb3duZXI6ImQyYyJ9KTsKYnJlYWs7Y2FzZSAiYXNjX2NvbW1fc3VibWlzc2lvbiI6Yz1PYmplY3QuYXNzaWduKHt9LGMse2NvbW1fc3RhdHVzOiJjcm1fdXBkYXRlIixjb21tX3R5cGU6InNtcyIscHJvZHVjdF9uYW1lOiJkMmNfdGV4dCIsZXZlbnRfb3duZXI6ImQyYyIsZGVwYXJ0bWVudDplLmdldEQyY0RlcGFydG1lbnQoYSl9KTticmVhaztjYXNlICJhc2NfY29tbV9zdGFydCI6Yz1PYmplY3QuYXNzaWduKHt9LGMse2NvbW1fc3RhdHVzOiJlbmdhZ2UiLGNvbW1fdHlwZToic21zIixwcm9kdWN0X25hbWU6ImQyY190ZXh0IixldmVudF9vd25lcjoiZDJjIn0pO2JyZWFrO2Nhc2UgImFzY19jb21tX3N1Ym1pc3Npb25fc2FsZXMiOmM9T2JqZWN0LmFzc2lnbih7fSxjLHtjb21tX3R5cGU6ImNoYXQiLGFmZmlsaWF0aW9uOiJuYXRpdmUiLGRlcGFydG1lbnQ6ZS5nZXREMmNEZXBhcnRtZW50KGEpLGFmZmlsaWF0aW9uX2lkOiJtdWx0aS11c2VyIixjb21tX3N0YXR1czoiY3JtX3VwZGF0ZSIsZWxlbWVudF9wb3NpdGlvbjoicG9wLXVwIn0pOwpicmVhaztkZWZhdWx0OnJldHVybiBjb25zb2xlLmxvZygiRDJBU0MgRVJST1IoQ09ERTowMDEpIixiLGEpLCExfSExIT09YXNjVG9wQ2FyRGV0YWlscyYmIkQyQ19Gb3JtX3N1Ym1pc3Npb25fc2FsZXMiIT1iJiYoYz1PYmplY3QuYXNzaWduKHt9LGMsYXNjVG9wQ2FyRGV0YWlscykpO2NvbnNvbGUubG9nKCJHQTQgRmluYWwgRGlnaXRhbCBEYXRhIixjKTtyZXR1cm4gY307ZS5pc0N0YUNsaWNrPWZ1bmN0aW9uKGIpe2xldCBhPSExO2IgaW5zdGFuY2VvZiBqUXVlcnkmJigwPGIuY2xvc2VzdCgiLm5ld1ZkcEFjdGlvbnMiKS5sZW5ndGgmJihhPSEwKSwwPGIuY2xvc2VzdCgiLmN0YS10cGwiKS5sZW5ndGgmJihhPSEwKSwicHJvbW9EaXNjb3ZlckJ1dHRvbiI9PWIuYXR0cigiaWQiKSYmKGE9ITApLGIuaGFzQ2xhc3MoImRpdkNhclBheW1lbnRDYWxjdWxhdG9yIikmJihhPSEwKSwwPGIuY2xvc2VzdCgiLmRpdkNhclBheW1lbnRDYWxjdWxhdG9yIikubGVuZ3RoJiYoYT0hMCksMDxiLmNsb3Nlc3QoIiNzY3JhdGNoYW5kc2F2ZV9lbWJlZGRlZCIpLmxlbmd0aCYmCihhPSEwKSwic2NyYXRjaGFuZHNhdmVfZW1iZWRkZWQiPT1iLmF0dHIoImlkIikmJihhPSEwKSxiLmhhc0NsYXNzKCJsb2FuQ2FsY3VsYXRvclRyaWdnZXIiKSYmKGE9ITApLDA8Yi5jbG9zZXN0KCIubG9hbkNhbGN1bGF0b3JUcmlnZ2VyIikubGVuZ3RoJiYoYT0hMCksYi5oYXNDbGFzcygiY3RQcm9tbyIpJiYoYT0hMCksMDxiLmNsb3Nlc3QoIi5jdFByb21vIikubGVuZ3RoJiYoYT0hMCksYi5oYXNDbGFzcygib2ZmZXItYnRuIikmJihhPSEwKSwwPGIuY2xvc2VzdCgiLm9mZmVyLWJ0biIpLmxlbmd0aCYmKGE9ITApLGIuaGFzQ2xhc3MoInRyYWRlSW5CYXJfYnRuIikmJihhPSEwKSwwPGIuY2xvc2VzdCgiLnRyYWRlSW5CYXJfYnRuIikubGVuZ3RoJiYoYT0hMCksIlRSQURFSU4iPT1iLmF0dHIoImRhdGEtaWQiKSYmKGE9ITApKTtyZXR1cm4gYX07ZS5zdGFuZGFyZGl6ZUZvcm1MYW5nPWZ1bmN0aW9uKGIpe3ZvaWQgMD09PWImJiQoImh0bWwiKS5hdHRyKCJsYW5nIik7Yj1iLnRvTG93ZXJDYXNlKCk7CiJlbmciPT1iJiYoYj0iZW4iKTsiZW5nbGlzaCI9PWImJihiPSJlbiIpOyJmcm4iPT1iJiYoYj0iZnIiKTsiZnJlbmNoIj09YiYmKGI9ImZyIik7ImVuIiE9YiYmImZyIiE9YiYmKGI9ImVuIik7cmV0dXJuIGJ9O2UuQ3RhVGV4dFBhcnNlcj1mdW5jdGlvbihiKXtkLnBhZ2VJZC50b0xvd2VyQ2FzZSgpO2xldCBhPXdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZS50b0xvd2VyQ2FzZSgpLGM9IiI7aWYoL25ld1wvaW52ZW50b3J5XC9zZWFyY2gvLnRlc3QoYSl8fC9uZXVmc1wvaW52ZW50YWlyZVwvcmVjaGVyY2hlLy50ZXN0KGEpKWMrPSJEMkMgQ1RBTSAtIE5ldyBJbnZlbnRvcnkgU1JQOiAiO2Vsc2UgaWYoL25ld1wvaW52ZW50b3J5Ly50ZXN0KGEpfHwvbmV1ZnNcL2ludmVudGFpcmUvLnRlc3QoYSkpYys9IkQyQyBDVEFNIC0gTmV3IEludmVudG9yeSBWRFA6ICI7ZWxzZSBpZigvbmV3Ly50ZXN0KGEpfHwvbmV1ZnMvLnRlc3QoYSkpYys9IkQyQyBDVEFNIC0gTmV3IFNob3dSb29tIFZEUDogIjsKZWxzZSBpZigvdXNlZC8udGVzdChhKXx8L29jY2FzaW9uLy50ZXN0KGEpKWMrPSJEMkMgQ1RBTSAtIFVzZWQgSW52ZW50b3J5IFZEUDogIjtyZXR1cm4gYytlLmFzY1RleHRSZXBsYWNlcihiLnRleHQoKSl9O2UuZ2V0TGVhZFR5cGVGb3JtTmFtZT1mdW5jdGlvbihiKXtsZXQgYT0wPGIuY2xvc2VzdCgiZm9ybSIpLmxlbmd0aD9iLmNsb3Nlc3QoImZvcm0iKS5hdHRyKCJpZCIpOmIuYXR0cigiaWQiKSxjPSExO2QucGFnZUlkLmluY2x1ZGVzKCJvcmRlciBwYXJ0cyIpJiYoYz0iUGFydHNSZXF1ZXN0Iik7ZC5wYWdlSWQuaW5jbHVkZXMoInRlc3QgZHJpdmUiKSYmKGM9IlRlc3REcml2ZSIpO2QucGFnZUlkLmluY2x1ZGVzKCJwcmljZSByZXF1ZXN0IikmJihjPSJQcmljZVJlcXVlc3QiKTtkLnBhZ2VJZC5pbmNsdWRlcygiYnJvY2h1cmUiKSYmKGM9IkJyb2NodXJlc1JlcXVlc3QiKTtkLnBhZ2VJZC5pbmNsdWRlcygicmVxdWVzdCBhcHBvaW50bWVudCIpJiYoYz0iU2VydmljZVJlcXVlc3QiKTsKZC5wYWdlSWQuaW5jbHVkZXMoInRpcmVzIikmJihjPSJUaXJlc1JlcXVlc3QiKTtkLnBhZ2VJZC5pbmNsdWRlcygiYm9keSBzaG9wIikmJihjPSJCb2R5U2hvcCIpO2QucGFnZUlkLmluY2x1ZGVzKCJyZWNhbGwiKSYmKGM9IlJlY2FsbHMiKTtpZihiIGluc3RhbmNlb2YgalF1ZXJ5JiYoMDxiLmNsb3Nlc3QoIi5kaXZTcGFuRmlsdGVycyIpLmxlbmd0aHx8MDxiLmNsb3Nlc3QoIiNiYW5uZXJfc2VhcmNoX2Jhcl9jb250YWluZXIiKS5sZW5ndGgpKXJldHVybiExO2I9ZS5mb3JtRGF0YUJ5SWQoYik7cmV0dXJuITEhPT1iP2IuZm9ybU5hbWU6ITEhPT1jP2QyYXNjUmVzb2x2ZUxlYWRUeXBlKGQuZm9ybU1hcCxjKToiVU5LTk9XTjogIithfTtlLmZvcm1EYXRhQnlJZD1mdW5jdGlvbihiKXtpZihiIGluc3RhbmNlb2YgalF1ZXJ5KXtsZXQgYT0wPGIuY2xvc2VzdCgiZm9ybSIpLmxlbmd0aD9iLmNsb3Nlc3QoImZvcm0iKS5hdHRyKCJpZCIpOmIuYXR0cigiaWQiKTt2b2lkIDA9PT1hJiYoMDwKYi5jbG9zZXN0KCIjY29udGFjdHBvcHVwIikubGVuZ3RoJiYoYT0iUmVxdWVzdCBmb3IgY29udGFjdCIpLDA8Yi5jbG9zZXN0KCIuY3JlZGl0U2NvcmVJbnB1dCIpLmxlbmd0aCYmKGE9ImNyZWRpdFNjb3JlIiksMDxiLmNsb3Nlc3QoIiNzY3JhdGNoQW5kU2F2ZVBvcHVwQ29udGFpbmVyX2JucCIpLmxlbmd0aCYmKGE9IlJlYmF0ZUNvdXBvbk5ld0JOUCIpLDA8Yi5jbG9zZXN0KCIuc2NyYXRjaGFuZHNhdmVfdGV4dCIpLmxlbmd0aCYmKGE9IlJlYmF0ZUNvdXBvbiIpKTtpZihkLnBhZ2VJZC5pbmNsdWRlcygic2hvd3Jvb206Y29tcGFyZSIpJiZ2b2lkIDAhPT1hJiZhLmluY2x1ZGVzKCJmZWF0dXJlZFByb2R1Y3RfIikpcmV0dXJue2Zvcm1UeXBlOiJyZXNlYXJjaCIsZm9ybU5hbWU6IkNvbXBhcmVGb3JtIn07aWYoMDxiLmNsb3Nlc3QoIiNtdWx0aWZvcm1fZW1iZWRkZWQiKS5sZW5ndGgmJjA8Yi5jbG9zZXN0KCIjbXVsdGlmb3JtX2VtYmVkZGVkIikuZmluZCgiLm11bHRpZm9ybV9lbWJlZGRlZF9zdGVwMSIpLmxlbmd0aClyZXR1cm57Zm9ybVR5cGU6ImNvbnN1bWVyX2NvbnRhY3QiLApmb3JtTmFtZToiRGlzY292ZXJPZmZlciJ9O3N3aXRjaChhKXtjYXNlICJtaW5pZm9ybSI6Y2FzZSAiZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSI6cmV0dXJue2Zvcm1UeXBlOiJmaW5hbmNlX2NyZWRpdCIsZm9ybU5hbWU6IkNyZWRpdE11bHRpc3RlcFJlcXVlc3QifTtjYXNlICJsb2FuLWZvcm0iOnJldHVybntmb3JtVHlwZToiZmluYW5jZV9jcmVkaXQiLGZvcm1OYW1lOiJQcmljZVJlcXVlc3QifTtjYXNlICJmb3JtRGVhbGVyQXBwb2ludG1lbnQiOnJldHVybntmb3JtVHlwZToiY29uc3VtZXJfY29udGFjdCIsZm9ybU5hbWU6IkRlYWxlckFwcG9pbnRtZW50In07Y2FzZSAiU2xpZGVXaWRnZXRGb3JtIjpyZXR1cm57Zm9ybVR5cGU6ImNvbnN1bWVyX2NvbnRhY3QiLGZvcm1OYW1lOiJTbGlkZVdpZGdldEZvcm0ifTtjYXNlICJjcmVkaXRTY29yZSI6cmV0dXJue2Zvcm1UeXBlOiJmaW5hbmNlX2NyZWRpdCIsZm9ybU5hbWU6IkNyZWRpdFJlcXVlc3RfU2hvcnQifTtjYXNlICJSZWJhdGVDb3Vwb25OZXdCTlAiOnJldHVybntmb3JtVHlwZToicHJlLW9yZGVyIiwKZm9ybU5hbWU6IlJlYmF0ZUNvdXBvbk5ld0JOUCJ9O2Nhc2UgImJhbm5lcl9zZWFyY2hfYmFyX3NlbGVjdF9ib2R5IjpyZXR1cm57Zm9ybVR5cGU6ImNvbnN1bWVyX2NvbnRhY3QiLGZvcm1OYW1lOiJCYW5uZXJGb3JtIn07Y2FzZSAicGF5bWVudENhbGN1bGF0b3JJbnRlcnZhbCI6Y2FzZSAicGF5bWVudENhbGN1bGF0b3JUcmltU2VsZWN0IjpjYXNlICJwYXltZW50Q2FsY3VsYXRvckttQWxsb3dhbmNlIjpjYXNlICJwYXltZW50Q2FsY3VsYXRvckRvd25QYXltZW50IjpyZXR1cm57Zm9ybVR5cGU6ImZpbmFuY2VfY3JlZGl0Iixmb3JtTmFtZToiTW9udGhseVBheW1lbnRzIn07Y2FzZSAiY29udGFjdF9mb3JtIjpjYXNlICJjb250YWN0X2Zvcm0yIjpjYXNlICJjb250YWN0X2Zvcm0zIjpjYXNlICJSZXF1ZXN0IGZvciBjb250YWN0IjpyZXR1cm57Zm9ybVR5cGU6ImNvbnN1bWVyX2NvbnRhY3QiLGZvcm1OYW1lOiJDb250YWN0UmVxdWVzdCJ9O2Nhc2UgInF1aWNrRW1haWxGb3JtIjpjYXNlICJtYWlsRXhwcmVzc1JlcXVlc3QiOnJldHVybntmb3JtVHlwZToiY29uc3VtZXJfY29udGFjdCIsCmZvcm1OYW1lOiJRdWlja0VtYWlsIn07Y2FzZSAidHJhZGluTWFrZSI6Y2FzZSAidHJhZGluWWVhciI6Y2FzZSAidHJhZGluTW9kZWwiOmNhc2UgInRyYWRpblRyaW0iOmNhc2UgInRyYWRlSW5CYXJQb3B1cEZvcm0iOmNhc2UgIlNlbGxDYXJGb3JtIjpyZXR1cm57Zm9ybVR5cGU6InJlc2VhcmNoIixmb3JtTmFtZToiUHJpY2VWZWhpY2xlIn19aWYoMDxiLmNsb3Nlc3QoIi5zY3JhdGNoYm9keSIpLmxlbmd0aHx8MDxiLmNsb3Nlc3QoIi5zY3JhdGNoYm9keTEiKS5sZW5ndGh8fDA8Yi5jbG9zZXN0KCIuc2NyYXRjaGJvZHkyIikubGVuZ3RofHwwPGIuY2xvc2VzdCgiLnNjcmF0Y2hib2R5MyIpLmxlbmd0aClyZXR1cm57Zm9ybVR5cGU6ImNvbnN1bWVyX2NvbnRhY3QiLGZvcm1OYW1lOiJSZWJhdGVDb3Vwb25OZXcifTtpZigwPGIuY2xvc2VzdCgiI21vbnRobHlQYXltZW50c1BvcHVwQ29udGFpbmVyIikubGVuZ3RoKXJldHVybntmb3JtVHlwZToiZmluYW5jZV9jcmVkaXQiLGZvcm1OYW1lOiJNb250aGx5UGF5bWVudHMifX1yZXR1cm4hMX07CmUuY29tbVN1YkRhdGFQYXJzZXI9ZnVuY3Rpb24oYixhKXtsZXQgYz17Zm9ybV9uYW1lOiIiLGZvcm1fdHlwZToiIixmb3JtX2RlcHQ6IiIsZm9ybV9sYW5nOiIifTsvYXNjX2NvbW1fc3VibWlzc2lvbi8udGVzdChiKSYmIlNsaWRlV2lkZ2V0Rm9ybSI9PWEuY2xvc2VzdCgiZm9ybSIpLmF0dHIoImlkIikmJihjLmZvcm1fbmFtZT0iTGVhZDogQ2hhdCBTdWJtaXNzaW9uIik7cmV0dXJuIGN9O2UuYXNjVGV4dFJlcGxhY2VyPWZ1bmN0aW9uKGIpe2I9Yi5yZXBsYWNlKC8oXHJcbnxcbnxccnxcdCkvZ20sIiIpO2I9Yi5yZXBsYWNlKC88XC8\/W14+XSsoPnwkKS9nLCIiKTtyZXR1cm4gYj1iLnRyaW0oKX07ZS5oYXNoVGV4dD1mdW5jdGlvbihiKXtiPShuZXcgVGV4dEVuY29kZXIpLmVuY29kZShiLnRyaW0oKS50b0xvd2VyQ2FzZSgpKTtyZXR1cm4gY3J5cHRvLnN1YnRsZS5kaWdlc3QoIlNIQS0yNTYiLGIpLnRoZW4oYT0+QXJyYXkuZnJvbShuZXcgVWludDhBcnJheShhKSkubWFwKGM9PgpjLnRvU3RyaW5nKDE2KS5wYWRTdGFydCgyLCIwIikpLmpvaW4oIiIpKX07ZS5nZXRGb3JtT3V0Y29tZT1mdW5jdGlvbihiKXtzd2l0Y2goYil7Y2FzZSAiYXNjX2Zvcm1fc3VibWlzc2lvbl9wYXJ0cyI6Y2FzZSAiYXNjX2Zvcm1fc3VibWlzc2lvbl9zYWxlcyI6Y2FzZSAiYXNjX2Zvcm1fc3VibWlzc2lvbl9zZXJ2aWNlIjpjYXNlICJEMkNfTGVhZHMiOnJldHVybiJjcm1fdXBkYXRlIjtjYXNlICJhc2NfZm9ybV9zdWJtaXNzaW9uX3NhbGVzX2FwcHQiOmNhc2UgImFzY19mb3JtX3N1Ym1pc3Npb25fc2VydmljZV9hcHB0IjpyZXR1cm4iYXBwdF9ib29rZWQifX07ZS5nZXREMmNEZXBhcnRtZW50PWZ1bmN0aW9uKGIpe2xldCBhPWQucGFnZUlkLnRvTG93ZXJDYXNlKCksYz13aW5kb3cubG9jYXRpb24ucGF0aG5hbWUudG9Mb3dlckNhc2UoKSxmPSJPVEhFUiI7L25ldWZzLy50ZXN0KGMpJiYoZj0iTkVXIik7L25ldy8udGVzdChjKSYmKGY9Ik5FVyIpOy9vY2Nhc2lvbi8udGVzdChjKSYmCihmPSJVU0VEIik7L3VzZWQvLnRlc3QoYykmJihmPSJVU0VEIik7YS5pbmNsdWRlcygiZmluYW5jZSIpJiYoZj0iRklOQU5DRSIpO2EuaW5jbHVkZXMoInJlcXVlc3QgYXBwb2ludG1lbnQiKSYmKGY9IlNFUlZJQ0UiKTthLmluY2x1ZGVzKCJwYXJ0cyIpJiYoZj0iU0VSVklDRSIpO2EuaW5jbHVkZXMoInRpcmVzIikmJihmPSJTRVJWSUNFIik7YS5pbmNsdWRlcygiYm9keSBzaG9wIikmJihmPSJTRVJWSUNFIik7YS5pbmNsdWRlcygiZmluYW5jZSBkZXBhcnRtZW50IikmJihmPSJGSU5BTkNFIik7YS5pbmNsdWRlcygiY3JlZGl0IikmJihmPSJGSU5BTkNFIik7YS5pbmNsdWRlcygiY29udGFjdCB1cyIpJiYoZj0iU0FMRVMiKTthLmluY2x1ZGVzKCJyZWNhbGwiKSYmKGY9IlNFUlZJQ0UiKTtiIGluc3RhbmNlb2YgalF1ZXJ5JiYoMDxiLmNsb3Nlc3QoIiNmaW5hbmNlTXVsdGlzdGVwUG9wdXBDb250YWluZXIiKS5sZW5ndGgmJihmPSJGSU5BTkNFIiksImZpbmFuY2VNdWx0aXN0ZXBQb3B1cENvbnRhaW5lciI9PQpiLmF0dHIoImlkIikmJihmPSJGSU5BTkNFIiksMDxiLmNsb3Nlc3QoIiNTZWxsQ2FyRm9ybSIpLmxlbmd0aCYmKGY9IkZJTkFOQ0UiKSx2b2lkIDAhPT1iLmF0dHIoImRhdGEtZGVwYXJ0bWVudCIpJiYoZj1iLmF0dHIoImRhdGEtZGVwYXJ0bWVudCIpKSk7cmV0dXJuIGZ9O2UuZ2V0Rm9ybVR5cGU9ZnVuY3Rpb24oYil7bGV0IGE9ZC5wYWdlSWQudG9Mb3dlckNhc2UoKTtpZihhLmluY2x1ZGVzKCJyZXF1ZXN0IGFwcG9pbnRtZW50IikpcmV0dXJuInNlcnZpY2VfYXBwb2ludG1lbnQiO2lmKGEuaW5jbHVkZXMoIm9yZGVyIHBhcnRzIil8fGEuaW5jbHVkZXMoIm9yZGVyIHRpcmVzIikpcmV0dXJuInBhcnRzIjtpZihhLmluY2x1ZGVzKCJib2R5IHNob3AiKSlyZXR1cm4iYm9keV9zaG9wIjtpZihhLmluY2x1ZGVzKCJmaW5hbmNlIGRlcGFydG1lbnQiKXx8YS5pbmNsdWRlcygiY3JlZGl0IikpcmV0dXJuImNyZWRpdCI7Yj1lLmZvcm1EYXRhQnlJZChiKTtyZXR1cm4hMSE9PWI\/Yi5mb3JtVHlwZToKImNvbnN1bWVyX2NvbnRhY3QifTtlLmdldEVsZW1lbnRUeXBlPWZ1bmN0aW9uKGIpe3JldHVybiJ0b3BCYW5uZXJJbWFnZSI9PWIuYXR0cigiaWQiKXx8MDxiLmNsb3Nlc3QoIiN0b3BCYW5uZXJJbWFnZSIpLmxlbmd0aD8iYmFubmVyIjowPGIuY2xvc2VzdCgiLmhlYWRlci1pbWFnZS13cmFwcGVyIikubGVuZ3RoPyJoZWFkZXIiOjA8Yi5jbG9zZXN0KCIubGFuZ3VhZ2VCYXIiKS5sZW5ndGg\/ImFjY2Vzc2liaWxpdHlfdG9vbCI6MDxiLmhhcygiLmRlYWxlck1hcExpbmsiKS5sZW5ndGg\/Im1hcCI6MDxiLmNsb3Nlc3QoIi5zbGlkZXMiKS5sZW5ndGg\/ImdhbGxlcnkiOjA8Yi5jbG9zZXN0KCIudXNlZFZkcEFjdGlvbnMiKS5sZW5ndGg\/ImRpZ2l0YWxfcmV0YWlsaW5nX3Rvb2wiOiJQdWxsb3V0X0J1aWxkLWFuZC1QcmljZSI9PWIuYXR0cigiLnVzZWRWZHBBY3Rpb25zIik\/ImJhbm5lciI6Im5ld1ZkcEZ1bGx3aWR0aFZpZGVvSWZyYW1lIj09Yi5hdHRyKCIudXNlZFZkcEFjdGlvbnMiKT8KInZpZGVvIjoiZGlnaXRhbF9yZXRhaWxpbmcifTtlLmdldFZlaGljbGVKU09OPWZ1bmN0aW9uKGIsYSl7JC5nZXQoIi9qcy9qc29uLyIrYisiLmpzb24iKS5kb25lKGZ1bmN0aW9uKGMpe2MuaXRlbV9udW1iZXI9YjtpZigiIiE9YSYmdm9pZCAwIT09YSl3aW5kb3dbYV0oYyk7cmV0dXJuIGN9KX07ZS5yZXBvcnQ9ZnVuY3Rpb24oYixhLGMsZil7aWYodm9pZCAwPT09ZC5zdWJfZ2E0fHwiTiI9PWQuc3ViX2dhNCljPU9iamVjdC5hc3NpZ24oe30sYyx7c2VuZF90bzoiRy1aNVE4WjVDN0tGIn0pO2lmKCEwPT09bCYmImFzY19mb3JtX2VuZ2FnZW1lbnQiPT1hKXJldHVybiExO2d0YWcoImV2ZW50IixhLGMpO2w9ITA7c2V0VGltZW91dChmdW5jdGlvbigpe2w9ITF9LDFFMyl9O3JldHVybiBlfTtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Zy5zZXRWZWhpY2xlU3RhdHVzKCExKTsidmRwIj09ZC5wYWdlSWQmJigwPCQoIiN0b3BjYXJpZCIpLmxlbmd0aCYmIiIhPSQoIiN0b3BjYXJpZCIpLnZhbCgpJiYKIjAiIT0kKCIjdG9wY2FyaWQiKS52YWwoKT9nLmdldFZlaGljbGVKU09OKCQoIiN0b3BjYXJpZCIpLnZhbCgpLCJhc2NVcGRhdGVUb3BDYXJEYXRhIik6YXNjVXBkYXRlVG9wQ2FyRGF0YSghMSkpO3NldFRpbWVvdXQoZnVuY3Rpb24oKXskKGZ1bmN0aW9uKGIpe2cuc2V0RGlnaXRhbERhdGEoImFzY19wYWdldmlldyIse30pfSl9LDFFMyk7JC5lYWNoKGssZnVuY3Rpb24oYixhKXtnLmJpbmRFbGVtZW50cyhiLGEpfSwhMSk7JCgiLnJldmVhbC1tb2RhbCIpLm9uZSgicG9wdXBpemVyLm9uT3BlbiIsZnVuY3Rpb24oYil7Zy5zZXREaWdpdGFsRGF0YSgiYXNjX3NwZWNpYWxfb2ZmZXIiLCQoYi50YXJnZXQpKTtnLmJpbmRFbGVtZW50cygiYXNjX2Zvcm1fZW5nYWdlbWVudCIsWyQoYi50YXJnZXQpLmZpbmQoImZvcm0gaW5wdXQsIGZvcm0gc2VsZWN0LCBmb3JtIHRleHRhcmVhIildKX0pO3NldFRpbWVvdXQoKCk9PnskKCJhW2RhdGEtbGVhZC10cmlnZ2VyPSdEZWFsZXJBcHBvaW50bWVudCddIikub24oImNsaWNrIiwKZnVuY3Rpb24oKXtnLnNldERpZ2l0YWxEYXRhKCJhc2Nfc3BlY2lhbF9vZmZlciIsJCgiI21vZGFsRGVhbGVyQXBwb2ludG1lbnQiKSl9KTskKCJhW2RhdGEtbGVhZC10cmlnZ2VyPSdQYXlwYWxQYXltZW50J10iKS5vbigiY2xpY2siLGZ1bmN0aW9uKCl7Zy5zZXREaWdpdGFsRGF0YSgiYXNjX3NwZWNpYWxfb2ZmZXIiLCQoIiNtb2RhbFBheXBhbFBheW1lbnQiKSl9KX0sMUUzKTswPCQoIiNmbHRTb3J0SWQiKS5sZW5ndGgmJihhc2NMYXN0U2VhcmNoRmlsdGVyU29ydD0kKCIjZmx0U29ydElkIC5kaXZBY3Rpb25XcmFwcGVyIC5kaXZMYWJlbCIpLmh0bWwoKSk7aWYoInVuZGVmaW5lZCIhPT10eXBlb2Ygd2luZG93LkFic3RyYWN0VXNlZFNycE9iamVjdCl7dmFyIGU9bmV3IEFic3RyYWN0VXNlZFNycE9iamVjdCh7bmFtZToiZDJjX2hvbmRhX2d0bSJ9KTtlLmFkZFVzZWRTcnBFdmVudE9ic2VydmVyKCJwcm94eSIsZnVuY3Rpb24oYil7aWYoInVuZGVmaW5lZCIhPT10eXBlb2YgYi5jbWQmJgoicmVxdWVzdCI9PT1iLmNtZCYmITEhPT1iLmRhdGEpe2xldCBhPWIuZGF0YS5maWx0ZXJTdGF0ZS5maWx0ZXJTZWFyY2g7c2V0VGltZW91dChmdW5jdGlvbigpe2EucmVzdWx0cz1iLmRhdGEuZmlsdGVyU3RhdGUuY291bnRTZWFyY2hSZXN1bHRzO2EudHlwZWRTZWFyY2g9Yi5kYXRhLmZpbHRlclN0YXRlLnR5cGVkU2VhcmNoO2EuZXZlbnRfYWN0aW9uX3Jlc3VsdD0ic2VhcmNoIjthLmV2ZW50X2FjdGlvbj0ic2VhcmNoIjthLmZpbHRlckluZm89YXNjTGFzdEZpbHRlckNsaWNrO2FzY0xhc3RGaWx0ZXJDbGljaz0hMTtPYmplY3Qua2V5cyhhKS5pbmNsdWRlcygic29ydCIpJiZhc2NMYXN0U2VhcmNoRmlsdGVyU29ydCE9YS5zb3J0WzBdJiYoYXNjTGFzdFNlYXJjaEZpbHRlclNvcnQ9YS5zb3J0WzBdLGEuZXZlbnRfYWN0aW9uPSJzb3J0Iik7Zy5zZXREaWdpdGFsRGF0YSgiYXNjX2VsZW1lbnRfY29uZmlndXJhdGlvbiIsYSl9LDEwMCl9fSk7ZS5pbml0VXNlZFNycE9ic2VydmVyKCl9JChkb2N1bWVudCkub24oInVzZWRTcnBGaWx0ZXJzLm9uQ2hhbmdlIiwKImJvZHkiLChiLGEpPT57Yj0kKCIjIithLmlkKTtiPSQoIi5mbHRUaXRsZSIsYikudGV4dCgpO2xldCBjPWEudmFsdWU7dmFyIGY9IiI7bGV0IG09InRleHRfc2VhcmNoIjthLnZhbHVlJiZhLnZhbHVlLnRvU3RyaW5nKCkuaW5jbHVkZXMoIjo6Iik\/KG09ImJ1dHRvbiIsZj1hLnZhbHVlLnNwbGl0KCI6OiIpLGEudmFsdWU9ZlswXSxmPWZbMV0pOmEudmFsdWUmJmEudmFsdWUudG9TdHJpbmcoKS5pbmNsdWRlcygiLCIpJiYobT0icmFuZ2Vfc2xpZGVyIik7YXNjTGFzdEZpbHRlckNsaWNrPXtpZDphLmlkLHRpdGxlOmEubGFiZWwsdmFsdWU6YS52YWx1ZSxvcmdfdmFsdWU6YyxzdGF0ZTpmLHR5cGU6bSxsYWJlbDpifX0pOyQoImJvZHkiKS5vbigiZW1haWxIYW5kbGVyLmVtYWlsU2VudCIsZnVuY3Rpb24oYixhKXtjb25zb2xlLmxvZygiRDJBU0MgRW1haWwgU2VudCBUcmlnZ2VyIixiLGEpO2lmKHZvaWQgMCE9PWEuZGV0YWlsLmxlYWRUeXBlKXtiPWEuZGV0YWlsLmxlYWRUeXBlO2lmKGIuaW5jbHVkZXMoIkxlYWQ6IFJlcXVlc3QgZm9yIGZpbmFuY2luZyAoTXVsdGlzdGVwKSIpfHwKYi5pbmNsdWRlcygiTGVhZCA6IERlbWFuZGUgZGUgZmluYW5jZW1lbnQgKFBsdXMiKXx8KGEuZGV0YWlsLm1haWxJZHx8IiIpLnN0YXJ0c1dpdGgoIkNyZWRpdE11bHRpc3RlcFJlcXVlc3QiKSlyZXR1cm4hMTtiLmluY2x1ZGVzKCJMZWFkIDogRGVtYW5kZSBkZSB2YWxldXIiKSYmKGI9IkxlYWQgOiBEZW1hbmRlIGRlIHZhbGV1ciBkJ2VjaGFuZ2UiKTtiLnRyaW0oKTthLmRldGFpbC5sZWFkVHlwZT1ifXZvaWQgMCE9PWEuZGV0YWlsLmxlYWRUeXBlJiYiIiE9YS5kZXRhaWwubGVhZFR5cGV8fHZvaWQgMD09PWEuZGV0YWlsLm1haWxJZHx8KGEuZGV0YWlsLmxlYWRUeXBlPWQyYXNjUmVzb2x2ZUxlYWRUeXBlKGQuZm9ybU1hcCxhLmRldGFpbC5tYWlsSWQpKTthLmRldGFpbC5sZWFkTmFtZUFycj1kLmZvcm1NYXA7dm9pZCAwPT09YS5kZXRhaWwuY29uZmlybV9lbWFpbCYmKGEuZGV0YWlsLmNvbmZpcm1fZW1haWw9IiIpO3ZvaWQgMD09PWEuZGV0YWlsLmNvbmZpcm1fcGhvbmVfbnVtYmVyJiYKKGEuZGV0YWlsLmNvbmZpcm1fcGhvbmVfbnVtYmVyPSIiKTtQcm9taXNlLmFsbChbZy5oYXNoVGV4dChhLmRldGFpbC5jb25maXJtX2VtYWlsKSxnLmhhc2hUZXh0KGEuZGV0YWlsLmNvbmZpcm1fcGhvbmVfbnVtYmVyKV0pLnRoZW4oYz0+e3ZhciBbZixtXT1jO2EuZGV0YWlsLmNvbmZpcm1fZW1haWw9ZjthLmRldGFpbC5jb25maXJtX3Bob25lX251bWJlcj1tfSk7dm9pZCAwIT09YXNjVG9wQ2FyRGV0YWlscy5tYWtlJiYiIiE9YXNjVG9wQ2FyRGV0YWlscy5tYWtlfHx2b2lkIDA9PT1hLmRldGFpbC5tYWtlfHwiIj09YS5kZXRhaWwubWFrZXx8KGEuZGV0YWlsLnZjYXRlZ29yeT1hLmRldGFpbC5jb25kaXRpb24sYS5kZXRhaWwudmVyc2lvbj1hLmRldGFpbC50cmltLGEuZGV0YWlsLmJvZHlUeXBlSUQ9YS5kZXRhaWwudHJpbSxhLmRldGFpbC5jb2xvcj0iIixhLmRldGFpbC52Y2FyYnVyYW50PSIiLGEuZGV0YWlsLmRhdGVfbGlzdGluZz0iIixhc2NVcGRhdGVUb3BDYXJEYXRhKGEuZGV0YWlsKSk7CnNldFRpbWVvdXQoZnVuY3Rpb24oKXtnLnNldERpZ2l0YWxEYXRhKCJhc2NfZm9ybV9zdWJtaXNzaW9uIixhLmRldGFpbCl9LDI1MCk7IlNNU0luZm9MZWFkIiE9YS5kZXRhaWwubWFpbElkJiYiU01TTGVhZCIhPWEuZGV0YWlsLm1haWxJZHx8c2V0VGltZW91dChmdW5jdGlvbigpe2cuc2V0RGlnaXRhbERhdGEoImFzY19jb21tX3N1Ym1pc3Npb24iLGEuZGV0YWlsKX0sMjUwKX0pOyQoIiNTbGlkZVdpZGdldEZvcm0gYS5idG4tZGVmYXVsdCIpLm9uKCJjbGljayIsZnVuY3Rpb24oKXtsZXQgYj1kMmFzY1Jlc29sdmVMZWFkVHlwZShkLmZvcm1NYXAsIlNsaWRlV2lkZ2V0Rm9ybSIpO2cuc2V0RGlnaXRhbERhdGEoImFzY19mb3JtX3N1Ym1pc3Npb24iLHtkZXBhcnRtZW50OiJzYWxlcyIsbGVhZFR5cGU6YixjdXJyZW50VVJMOiIifSl9KTskKGRvY3VtZW50KS5vbigiZm9ybS5zdGVwIiwiI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0iLGZ1bmN0aW9uKGIpe2cuc2V0RGlnaXRhbERhdGEoImFzY19yZXRhaWxfcHJvY2VzcyIsCmIpfSk7JChkb2N1bWVudCkub24oIm11bHRpRm9ybUZpbmFuY2VTdWJtaXQiLGRvY3VtZW50LmJvZHksZnVuY3Rpb24oYil7Yj1kMmFzY1Jlc29sdmVMZWFkVHlwZShkLmZvcm1NYXAsIkNyZWRpdE11bHRpc3RlcFJlcXVlc3QiKTtnLnNldERpZ2l0YWxEYXRhKCJhc2NfZm9ybV9zdWJtaXNzaW9uIix7ZGVwYXJ0bWVudDoiZmluYW5jZSIsbGVhZFR5cGU6YixjdXJyZW50VVJMOiIifSl9KX0sMUUzKTt3aW5kb3cuZDJhc2M9Zzt3aW5kb3cuZDJhc2NEYXRhTWFwPWh9OwovKiogL2pzL3ByaW50VGhpcy5qcyAqKi8KdmFyIF9fX2QyY19wcmludFRoaXNqc19jX29uPSIyMDI1LTA1LTIzIDE3OjExOjQwIjsndXNlIHN0cmljdCc7dmFyIF9fX2QyY19wcmludFRoaXNqc19jX29uPSIyMDI0LTA3LTMwIDEwOjMwOjA4IjsidXNlIHN0cmljdCI7CihmdW5jdGlvbihjKXtmdW5jdGlvbiByKGQsZSl7ZSYmZC5hcHBlbmQoZS5qcXVlcnk\/ZS5jbG9uZSgpOmUpfWZ1bmN0aW9uIHQoZCxlLGspe3ZhciBmPWUuY2xvbmUoay5mb3JtVmFsdWVzKTtrLmZvcm1WYWx1ZXMmJnUoZSxmLCJzZWxlY3QsIHRleHRhcmVhIik7ay5yZW1vdmVTY3JpcHRzJiZmLmZpbmQoInNjcmlwdCIpLnJlbW92ZSgpO2sucHJpbnRDb250YWluZXI\/Zi5hcHBlbmRUbyhkKTpmLmVhY2goZnVuY3Rpb24oKXtjKHRoaXMpLmNoaWxkcmVuKCkuYXBwZW5kVG8oZCl9KX1mdW5jdGlvbiB1KGQsZSxrKXt2YXIgZj1kLmZpbmQoayk7ZS5maW5kKGspLmVhY2goZnVuY3Rpb24oZyxxKXtjKHEpLnZhbChmLmVxKGcpLnZhbCgpKX0pfXZhciBhO2MuZm4ucHJpbnRUaGlzPWZ1bmN0aW9uKGQpe2E9Yy5leHRlbmQoe30sYy5mbi5wcmludFRoaXMuZGVmYXVsdHMsZCk7dmFyIGU9dGhpcyBpbnN0YW5jZW9mIGpRdWVyeT90aGlzOmModGhpcyk7ZD0icHJpbnRUaGlzLSIrKG5ldyBEYXRlKS5nZXRUaW1lKCk7CmlmKHdpbmRvdy5sb2NhdGlvbi5ob3N0bmFtZSE9PWRvY3VtZW50LmRvbWFpbiYmbmF2aWdhdG9yLnVzZXJBZ2VudC5tYXRjaCgvbXNpZS9pKSl7dmFyIGs9J2phdmFzY3JpcHQ6ZG9jdW1lbnQud3JpdGUoIjxoZWFkPjxzY3JpcHQ+ZG9jdW1lbnQuZG9tYWluPVxcIicrZG9jdW1lbnQuZG9tYWluKydcXCI7XHgzYy9zY3JpcHQ+PC9oZWFkPjxib2R5PjwvYm9keT4iKScsZj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKTtmLm5hbWU9InByaW50SWZyYW1lIjtmLmlkPWQ7Zi5jbGFzc05hbWU9Ik1TSUUiO2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZik7Zi5zcmM9a31lbHNlIGMoIjxpZnJhbWUgaWQ9JyIrZCsiJyBuYW1lPSdwcmludElmcmFtZScgLz4iKS5hcHBlbmRUbygiYm9keSIpO3ZhciBnPWMoIiMiK2QpO2EuZGVidWd8fGcuY3NzKHtwb3NpdGlvbjoiYWJzb2x1dGUiLHdpZHRoOiIwcHgiLGhlaWdodDoiMHB4IixsZWZ0OiItNjAwcHgiLHRvcDoiLTYwMHB4In0pOwpzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ZnVuY3Rpb24gcShiLHApe2I9Yi5nZXQoMCk7Yj1iLmNvbnRlbnRXaW5kb3d8fGIuY29udGVudERvY3VtZW50fHxiO2I9Yi5kb2N1bWVudHx8Yi5jb250ZW50RG9jdW1lbnR8fGI7Yi5vcGVuKCk7Yi53cml0ZShwKTtiLmNsb3NlKCl9YS5kb2N0eXBlU3RyaW5nJiZxKGcsYS5kb2N0eXBlU3RyaW5nKTt2YXIgbT1nLmNvbnRlbnRzKCksbD1tLmZpbmQoImhlYWQiKSxuPW0uZmluZCgiYm9keSIpLGg9YygiYmFzZSIpO2g9ITA9PT1hLmJhc2UmJjA8aC5sZW5ndGg\/aC5hdHRyKCJocmVmIik6InN0cmluZyI9PT10eXBlb2YgYS5iYXNlP2EuYmFzZTpkb2N1bWVudC5sb2NhdGlvbi5wcm90b2NvbCsiLy8iK2RvY3VtZW50LmxvY2F0aW9uLmhvc3Q7bC5hcHBlbmQoJzxiYXNlIGhyZWY9IicraCsnIj4nKTthLmltcG9ydENTUyYmYygibGlua1tyZWw9c3R5bGVzaGVldF0iKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIGI9Yyh0aGlzKS5hdHRyKCJocmVmIik7aWYoYil7dmFyIHA9CmModGhpcykuYXR0cigibWVkaWEiKXx8ImFsbCI7bC5hcHBlbmQoIjxsaW5rIHR5cGU9J3RleHQvY3NzJyByZWw9J3N0eWxlc2hlZXQnIGhyZWY9JyIrYisiJyBtZWRpYT0nIitwKyInLz4iKX19KTthLmltcG9ydFN0eWxlJiZjKCJzdHlsZSIpLmVhY2goZnVuY3Rpb24oKXtsLmFwcGVuZCh0aGlzLm91dGVySFRNTCl9KTthLnBhZ2VUaXRsZSYmbC5hcHBlbmQoIjx0aXRsZT4iK2EucGFnZVRpdGxlKyI8L3RpdGxlPiIpO2EubG9hZENTUyYmKEFycmF5LmlzQXJyYXkoYS5sb2FkQ1NTKT9qUXVlcnkuZWFjaChhLmxvYWRDU1MsZnVuY3Rpb24oYixwKXtsLmFwcGVuZCgiPGxpbmsgdHlwZT0ndGV4dC9jc3MnIHJlbD0nc3R5bGVzaGVldCcgaHJlZj0nIit0aGlzKyInLz4iKX0pOmwuYXBwZW5kKCI8bGluayB0eXBlPSd0ZXh0L2NzcycgcmVsPSdzdHlsZXNoZWV0JyBocmVmPSciK2EubG9hZENTUysiJy8+IikpO2lmKGg9YS5jb3B5VGFnQ2xhc3NlcyloPSEwPT09aD8iYmgiOmgsLTEhPT1oLmluZGV4T2YoImIiKSYmCm4uYWRkQ2xhc3MoYygiYm9keSIpWzBdLmNsYXNzTmFtZSksLTEhPT1oLmluZGV4T2YoImgiKSYmbS5maW5kKCJodG1sIikuYWRkQ2xhc3MoYygiaHRtbCIpWzBdLmNsYXNzTmFtZSk7cihuLGEuaGVhZGVyKTtpZihhLmNhbnZhcyl7dmFyIHY9MDtlLmZpbmQoImNhbnZhcyIpLmFkZEJhY2soImNhbnZhcyIpLmVhY2goZnVuY3Rpb24oKXtjKHRoaXMpLmF0dHIoImRhdGEtcHJpbnR0aGlzIix2KyspfSl9dChuLGUsYSk7YS5jYW52YXMmJm4uZmluZCgiY2FudmFzIikuZWFjaChmdW5jdGlvbigpe3ZhciBiPWModGhpcykuZGF0YSgicHJpbnR0aGlzIik7Yj1jKCdbZGF0YS1wcmludHRoaXM9IicrYisnIl0nKTt0aGlzLmdldENvbnRleHQoIjJkIikuZHJhd0ltYWdlKGJbMF0sMCwwKTtiLnJlbW92ZURhdGEoInByaW50dGhpcyIpfSk7YS5yZW1vdmVJbmxpbmUmJihpc0Z1bmN0aW9uKGMucmVtb3ZlQXR0cik\/bS5maW5kKCJib2R5ICoiKS5yZW1vdmVBdHRyKCJzdHlsZSIpOm0uZmluZCgiYm9keSAqIikuYXR0cigic3R5bGUiLAoiIikpO3IobixhLmZvb3Rlcik7c2V0VGltZW91dChmdW5jdGlvbigpe2cuaGFzQ2xhc3MoIk1TSUUiKT8od2luZG93LmZyYW1lcy5wcmludElmcmFtZS50cmlnZ2VyKCJmb2N1cyIpLGwuYXBwZW5kKCI8c2NyaXB0PiAgd2luZG93LnByaW50KCk7IFx4M2Mvc2NyaXB0PiIpKTpkb2N1bWVudC5xdWVyeUNvbW1hbmRTdXBwb3J0ZWQoInByaW50Iik\/Z1swXS5jb250ZW50V2luZG93LmRvY3VtZW50LmV4ZWNDb21tYW5kKCJwcmludCIsITEsbnVsbCk6KGdbMF0uY29udGVudFdpbmRvdy50cmlnZ2VyKCJmb2N1cyIpLGdbMF0uY29udGVudFdpbmRvdy5wcmludCgpKTthLmRlYnVnfHxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Zy5yZW1vdmUoKX0sMUUzKX0sYS5wcmludERlbGF5KX0sMzMzKX07Yy5mbi5wcmludFRoaXMuZGVmYXVsdHM9e2RlYnVnOiExLGltcG9ydENTUzohMCxpbXBvcnRTdHlsZTohMSxwcmludENvbnRhaW5lcjohMCxsb2FkQ1NTOiIiLHBhZ2VUaXRsZToiIixyZW1vdmVJbmxpbmU6ITEsCnByaW50RGVsYXk6MzMzLGhlYWRlcjpudWxsLGZvb3RlcjpudWxsLGZvcm1WYWx1ZXM6ITAsY2FudmFzOiExLGJhc2U6ITEsZG9jdHlwZVN0cmluZzoiPCFET0NUWVBFIGh0bWw+IixyZW1vdmVTY3JpcHRzOiExLGNvcHlUYWdDbGFzc2VzOiExfX0pKGpRdWVyeSk7Ci8qKiAvanMvYmFzZTY0LmpzICoqLwp2YXIgX19fZDJjX2Jhc2U2NGpzX2Nfb249IjIwMjUtMDUtMjMgMTc6MDY6MDgiOyd1c2Ugc3RyaWN0Jzt2YXIgX19fZDJjX2Jhc2U2NGpzX2Nfb249IjIwMjQtMDctMDggMTA6MzA6MDUiOyJ1c2Ugc3RyaWN0IjsKdmFyIEJhc2U2ND17X2tleVN0cjoiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLz0iLF9iNjRUZXN0OlJlZ0V4cCgiXig\/OltBLVphLXowLTkrL117NH0pKig\/OltBLVphLXowLTkrL117Mn09PXxbQS1aYS16MC05Ky9dezN9PSk\/JCIpLGVuY29kZTpmdW5jdGlvbihhKXt2YXIgZD0iIixjPTA7Zm9yKGE9QmFzZTY0Ll91dGY4X2VuY29kZShhKTtjPGEubGVuZ3RoOyl7dmFyIGI9YS5jaGFyQ29kZUF0KGMrKyksZT1hLmNoYXJDb2RlQXQoYysrKSxmPWEuY2hhckNvZGVBdChjKyspLGc9Yj4+MjtiPShiJjMpPDw0fGU+PjQ7dmFyIGg9KGUmMTUpPDwyfGY+PjYsaz1mJjYzO2lzTmFOKGUpP2g9az02NDppc05hTihmKSYmKGs9NjQpO2Q9ZCt0aGlzLl9rZXlTdHIuY2hhckF0KGcpK3RoaXMuX2tleVN0ci5jaGFyQXQoYikrdGhpcy5fa2V5U3RyLmNoYXJBdChoKSt0aGlzLl9rZXlTdHIuY2hhckF0KGspfXJldHVybiBkfSxkZWNvZGU6ZnVuY3Rpb24oYSl7dmFyIGQ9CiIiLGM9MDtmb3IoYT1hLnJlcGxhY2UoL1teQS1aYS16MC05XCtcLz1dL2csIiIpO2M8YS5sZW5ndGg7KXt2YXIgYj10aGlzLl9rZXlTdHIuaW5kZXhPZihhLmNoYXJBdChjKyspKSxlPXRoaXMuX2tleVN0ci5pbmRleE9mKGEuY2hhckF0KGMrKykpLGY9dGhpcy5fa2V5U3RyLmluZGV4T2YoYS5jaGFyQXQoYysrKSksZz10aGlzLl9rZXlTdHIuaW5kZXhPZihhLmNoYXJBdChjKyspKTtiPWI8PDJ8ZT4+NDtlPShlJjE1KTw8NHxmPj4yO3ZhciBoPShmJjMpPDw2fGc7ZCs9U3RyaW5nLmZyb21DaGFyQ29kZShiKTs2NCE9ZiYmKGQrPVN0cmluZy5mcm9tQ2hhckNvZGUoZSkpOzY0IT1nJiYoZCs9U3RyaW5nLmZyb21DaGFyQ29kZShoKSl9cmV0dXJuIEJhc2U2NC5fdXRmOF9kZWNvZGUoZCl9LF91dGY4X2VuY29kZTpmdW5jdGlvbihhKXt2YXIgZD0iIjthPWEucmVwbGFjZSgvXHJcbi9nLCJcbiIpO2Zvcih2YXIgYz0wO2M8YS5sZW5ndGg7YysrKXt2YXIgYj1hLmNoYXJDb2RlQXQoYyk7MTI4PgpiP2QrPVN0cmluZy5mcm9tQ2hhckNvZGUoYik6KDEyNzxiJiYyMDQ4PmI\/ZCs9U3RyaW5nLmZyb21DaGFyQ29kZShiPj42fDE5Mik6KGQrPVN0cmluZy5mcm9tQ2hhckNvZGUoYj4+MTJ8MjI0KSxkKz1TdHJpbmcuZnJvbUNoYXJDb2RlKGI+PjYmNjN8MTI4KSksZCs9U3RyaW5nLmZyb21DaGFyQ29kZShiJjYzfDEyOCkpfXJldHVybiBkfSxfdXRmOF9kZWNvZGU6ZnVuY3Rpb24oYSl7Zm9yKHZhciBkPSIiLGM9MCxiLGUsZjtjPGEubGVuZ3RoOyliPWEuY2hhckNvZGVBdChjKSwxMjg+Yj8oZCs9U3RyaW5nLmZyb21DaGFyQ29kZShiKSxjKyspOjE5MTxiJiYyMjQ+Yj8oZT1hLmNoYXJDb2RlQXQoYysxKSxkKz1TdHJpbmcuZnJvbUNoYXJDb2RlKChiJjMxKTw8NnxlJjYzKSxjKz0yKTooZT1hLmNoYXJDb2RlQXQoYysxKSxmPWEuY2hhckNvZGVBdChjKzIpLGQrPVN0cmluZy5mcm9tQ2hhckNvZGUoKGImMTUpPDwxMnwoZSY2Myk8PDZ8ZiY2MyksYys9Myk7cmV0dXJuIGR9LHdoaXRlTGlzdDpmdW5jdGlvbigpe3JldHVyblsidHJhaWxlcnMiXX0sCmlzQmFzZTY0OmZ1bmN0aW9uKGEpe3JldHVybiBCYXNlNjQud2hpdGVMaXN0KCkuaW5jbHVkZXMoYS50b0xvd2VyQ2FzZSgpKXx8InVuZGVmaW5lZCI9PT10eXBlb2YgYXx8IiI9PT1hfHwiIj09PWEudHJpbSgpfHw0Pj1hLmxlbmd0aD8hMTpCYXNlNjQuZW5jb2RlKEJhc2U2NC5kZWNvZGUoYSkpPT1hfX07Ci8qKiAvanMvRmlyZXdvcmsubWluLmpzICoqLwovKiBKYXZhU2NyaXB0IEZpcmV3b3JrcyBBbmltYXRpb24gYnkgQW5kZXNDb2RlIChodHRwOi8vY29kZWNhbnlvbi5uZXQvdXNlci9hbmRlc2NvZGUvcG9ydGZvbGlvKSAqLyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBDRmlyZXdvcmsobix0LGkscix1KXtmd1RvdGFsKys7dGhpcy5udW09ZndUb3RhbDt0aGlzLmh0bWxDb250YWluZXJJZD1uLnRvTG93ZXJDYXNlKCk7dGhpcy5odG1sQ29udGFpbmVyPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKG4pO3RoaXMuZmlyZUNvbG9yPXQ7dGhpcy5zdGFydFg9aTt0aGlzLnN0YXJ0WT1yO3RoaXMuZndTY2FsZT10eXBlb2YgdSE9InVuZGVmaW5lZCI\/dToxO3RoaXMuU1ZHY2FudmFzPW51bGw7dGhpcy5md0NvbnRhaW5lcj1udWxsO3RoaXMuYXNjZW5kaW5nRmlyZUJhbGw9bnVsbDt0aGlzLnNwYXJrcz1udWxsO3RoaXMuZmFzdEV4cGxvc2lvbj1udWxsO3RoaXMucGFydGljbGVzPW51bGw7dGhpcy5zaGluZUNvbG9yPW51bGw7dGhpcy52ZWxYPTA7dGhpcy52ZWxZPS0xMDA7dGhpcy5ncmF2aXR5PTQwO3RoaXMudGltZUJlZm9yZUV4cGxvc2lvbj0xNTAwO3RoaXMuYXNjZW5kaW5nRmlyZUJhbGxSYWRpdXM9MTQ7dGhpcy5maXJzdEV4cGxvc2lvblJhZGl1cz00NTt0aGlzLm51bUV4cGxvc2lvblBhcnRpY2xlcz0yMDA7dGhpcy5leHBsb3Npb25QYXJ0aWNsZVJhZGl1cz0yLjU7dGhpcy5leHBsb3Npb25WZWxvY2l0eT0xODA7dGhpcy5leHBsb3Npb25EZWNlbGVyYXRpb249Ljk2O3RoaXMuZXhwbG9zaW9uUGFydGljbGVzTWF4TGlmZXNwYW49MmUzO3RoaXMuc2hpbmVSYWRpdXM9NjA7dGhpcy5zaGluZUV4cGFuc2lvblRpbWU9ODAwO3RoaXMuc2hpbmVGYWRlT3V0VGltZT0xMTAwO3RoaXMudXNlQXVkaW89ITE7dGhpcy5hdWRpb1VSTD0iRXhwbG9zaW9uLm1wMyI7dGhpcy5zZXBhcmF0aW9uPTExODt0aGlzLmZ3Q2VudGVyPTEzMn1mdW5jdGlvbiBGaXJld29ya1RpbWVyKG4sdCxpLHIsdSxmLGUsbyl7dmFyIHM9dHlwZW9mIGYhPSJ1bmRlZmluZWQiP2Y6ITEsaD10eXBlb2YgZSE9InVuZGVmaW5lZCI\/ZToxLGM9dHlwZW9mIG8hPSJ1bmRlZmluZWQiP286MDtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dmFyIHU9bmV3IENGaXJld29yayhuLHQsaSxyLGgpO3UudXNlQXVkaW89czt1LnZlbFg9Yzt1LnN0YXJ0KCl9LHUpfXZhciBmd1NWR25zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsZndUb3RhbD0wLGZ3QWN0aXZlcz17fSxleHBsb3Npb25Tb3VuZENyZWF0ZWQ9ITEsZXhwbG9zaW9uTVAzPW51bGw7Q0ZpcmV3b3JrLnByb3RvdHlwZS5zdGFydD1mdW5jdGlvbigpe2Z1bmN0aW9uIGgoKXtzfHwobi5zZXRTVkdzY2FsZShuLmFzY2VuZGluZ0ZpcmVCYWxsLG9bdF1bMF0sbi5md0NlbnRlcixuLmZ3Q2VudGVyKSxzZXRUaW1lb3V0KGgsb1t0XVsxXSksdD10PT1vLmxlbmd0aC0xPzA6dCsxKX1mdW5jdGlvbiBhKCl7cz0hMDtuLmZ3Q29udGFpbmVyLnJlbW92ZUNoaWxkKG4uYXNjZW5kaW5nRmlyZUJhbGwpO2NsZWFySW50ZXJ2YWwoYyk7bi5leHBsb3Npb24oKX1mdW5jdGlvbiB2KCl7bi5md0NvbnRhaW5lci5yZW1vdmVDaGlsZChuLnBhcnRpY2xlcyk7bi5md0NvbnRhaW5lci5yZW1vdmVDaGlsZChuLnNoaW5lQ29sb3IpO24uU1ZHY2FudmFzLnJlbW92ZUNoaWxkKG4uZndDb250YWluZXIpO2Z3QWN0aXZlc1tuLmh0bWxDb250YWluZXJJZF09TWF0aC5tYXgoMCxmd0FjdGl2ZXNbbi5odG1sQ29udGFpbmVySWRdLTEpO2Z3QWN0aXZlc1tuLmh0bWxDb250YWluZXJJZF09PTAmJm4uaHRtbENvbnRhaW5lci5yZW1vdmVDaGlsZChuLlNWR2NhbnZhcyl9dmFyIHIsaSx1LGYsZSxjO2Z3QWN0aXZlc1t0aGlzLmh0bWxDb250YWluZXJJZF09ZndBY3RpdmVzLmhhc093blByb3BlcnR5KHRoaXMuaHRtbENvbnRhaW5lcklkKT9md0FjdGl2ZXNbdGhpcy5odG1sQ29udGFpbmVySWRdKzE6MTt0aGlzLnNlcGFyYXRpb249TWF0aC5yb3VuZCgxLjYqKHRoaXMuc2hpbmVSYWRpdXMrdGhpcy5hc2NlbmRpbmdGaXJlQmFsbFJhZGl1cykpO3RoaXMuZndDZW50ZXI9dGhpcy5hc2NlbmRpbmdGaXJlQmFsbFJhZGl1cyt0aGlzLnNlcGFyYXRpb247cj10aGlzLmh0bWxDb250YWluZXIuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgiZndTVkdjYW52YXMiKTtyLmxlbmd0aD4wP3RoaXMuU1ZHY2FudmFzPXJbMF06KHRoaXMuU1ZHY2FudmFzPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyhmd1NWR25zLCJzdmciKSx0aGlzLlNWR2NhbnZhcy5zZXRBdHRyaWJ1dGVOUyhudWxsLCJjbGFzcyIsImZ3U1ZHY2FudmFzIiksdGhpcy5TVkdjYW52YXMuc2V0QXR0cmlidXRlTlMobnVsbCwid2lkdGgiLHRoaXMuaHRtbENvbnRhaW5lci5vZmZzZXRXaWR0aCksdGhpcy5TVkdjYW52YXMuc2V0QXR0cmlidXRlTlMobnVsbCwiaGVpZ2h0Iix0aGlzLmh0bWxDb250YWluZXIub2Zmc2V0SGVpZ2h0KSx0aGlzLlNWR2NhbnZhcy5zZXRBdHRyaWJ1dGVOUyhudWxsLCJzdHlsZSIsImRpc3BsYXk6YmxvY2s7IHBvc2l0aW9uOmFic29sdXRlIiksaT1nZXRDb21wdXRlZFN0eWxlKHRoaXMuaHRtbENvbnRhaW5lcixudWxsKS5wb3NpdGlvbi50b0xvd2VyQ2FzZSgpLGk9PSJhYnNvbHV0ZSJ8fGk9PSJmaXhlZCJ8fGk9PSJyZWxhdGl2ZSI\/KHRoaXMuU1ZHY2FudmFzLnN0eWxlLnRvcD0iMHB4Iix0aGlzLlNWR2NhbnZhcy5zdHlsZS5sZWZ0PSIwcHgiKToodT10aGlzLmh0bWxDb250YWluZXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksdGhpcy5TVkdjYW52YXMuc3R5bGUudG9wPXUudG9wKyJweCIsdGhpcy5TVkdjYW52YXMuc3R5bGUubGVmdD11LmxlZnQrInB4IiksdGhpcy5odG1sQ29udGFpbmVyLmFwcGVuZENoaWxkKHRoaXMuU1ZHY2FudmFzKSk7dGhpcy5md0NvbnRhaW5lcj1kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoZndTVkducywic3ZnIik7Zj0odGhpcy5zZXBhcmF0aW9uK3RoaXMuYXNjZW5kaW5nRmlyZUJhbGxSYWRpdXMpKnRoaXMuZndTY2FsZTt0aGlzLmZ3Q29udGFpbmVyLnNldEF0dHJpYnV0ZU5TKG51bGwsIngiLHRoaXMuc3RhcnRYLWYpO3RoaXMuZndDb250YWluZXIuc2V0QXR0cmlidXRlTlMobnVsbCwieSIsdGhpcy5zdGFydFktZik7dGhpcy5md0NvbnRhaW5lci5zZXRBdHRyaWJ1dGVOUyhudWxsLCJ3aWR0aCIsdGhpcy5zZXBhcmF0aW9uKjIqdGhpcy5md1NjYWxlKTt0aGlzLmZ3Q29udGFpbmVyLnNldEF0dHJpYnV0ZU5TKG51bGwsImhlaWdodCIsdGhpcy5zZXBhcmF0aW9uKjIqdGhpcy5md1NjYWxlKTtlPXRoaXMuc2VwYXJhdGlvbioyO3RoaXMuZndDb250YWluZXIuc2V0QXR0cmlidXRlTlMobnVsbCwidmlld0JveCIsIjAgMCAiK2UrIiAiK2UpO3RoaXMuU1ZHY2FudmFzLmFwcGVuZENoaWxkKHRoaXMuZndDb250YWluZXIpO3RoaXMudXNlQXVkaW8mJiFleHBsb3Npb25Tb3VuZENyZWF0ZWQmJihleHBsb3Npb25NUDM9bmV3IEF1ZGlvKHRoaXMuYXVkaW9VUkwpLGV4cGxvc2lvblNvdW5kQ3JlYXRlZD0hMCk7dGhpcy5jcmVhdGVHcmFkaWVudCh0aGlzLmZ3Q29udGFpbmVyLCJiaWdGaXJlR3JhZCIrdGhpcy5udW0sW3tvZmZzZXQ6IjIwJSIsc3R5bGU6InN0b3AtY29sb3I6I2ZmZjtzdG9wLW9wYWNpdHk6MSJ9LHtvZmZzZXQ6IjQ1JSIsc3R5bGU6InN0b3AtY29sb3I6IyIrdGhpcy5maXJlQ29sb3IrIjtzdG9wLW9wYWNpdHk6MC42In0se29mZnNldDoiMTAwJSIsc3R5bGU6InN0b3AtY29sb3I6IyIrdGhpcy5maXJlQ29sb3IrIjtzdG9wLW9wYWNpdHk6MCJ9XSk7dGhpcy5jcmVhdGVGaWx0ZXIodGhpcy5md0NvbnRhaW5lciwic3BhcmtsZXNHbG93Iit0aGlzLm51bSwiRkZGRkZGIiwyKTt0aGlzLmNyZWF0ZUdyYWRpZW50KHRoaXMuZndDb250YWluZXIsImV4cGxvc2lvbkdyYWQiK3RoaXMubnVtLFt7b2Zmc2V0OiIwJSIsc3R5bGU6InN0b3AtY29sb3I6I2ZmZjtzdG9wLW9wYWNpdHk6MSJ9LHtvZmZzZXQ6IjEwMCUiLHN0eWxlOiJzdG9wLWNvbG9yOiMiK3RoaXMuZmlyZUNvbG9yKyI7c3RvcC1vcGFjaXR5OjAifV0pO3RoaXMuY3JlYXRlRmlsdGVyKHRoaXMuZndDb250YWluZXIsInBhcnRpY2xlc0dsb3ciK3RoaXMubnVtLHRoaXMuZmlyZUNvbG9yLDQpO3RoaXMuY3JlYXRlR3JhZGllbnQodGhpcy5md0NvbnRhaW5lciwiYmFja2xpZ2h0R3JhZCIrdGhpcy5udW0sW3tvZmZzZXQ6IjIwJSIsc3R5bGU6InN0b3AtY29sb3I6IyIrdGhpcy5maXJlQ29sb3IrIjtzdG9wLW9wYWNpdHk6MC4zIn0se29mZnNldDoiMTAwJSIsc3R5bGU6InN0b3AtY29sb3I6IyIrdGhpcy5maXJlQ29sb3IrIjtzdG9wLW9wYWNpdHk6MCJ9XSk7dGhpcy5hc2NlbmRpbmdGaXJlQmFsbD10aGlzLmNyZWF0ZVNWRygiY2lyY2xlIiwiYmlnRmlyZSIse2N4OnRoaXMuZndDZW50ZXIsY3k6dGhpcy5md0NlbnRlcixyOnRoaXMuYXNjZW5kaW5nRmlyZUJhbGxSYWRpdXMsc3Ryb2tlOiJub25lIixmaWxsOiJ1cmwoI2JpZ0ZpcmVHcmFkIit0aGlzLm51bSsiKSJ9KTt0aGlzLmZ3Q29udGFpbmVyLmFwcGVuZENoaWxkKHRoaXMuYXNjZW5kaW5nRmlyZUJhbGwpO3ZhciBsPXRoaXMudGltZUJlZm9yZUV4cGxvc2lvbitNYXRoLm1heCh0aGlzLmV4cGxvc2lvblBhcnRpY2xlc01heExpZmVzcGFuLHRoaXMuc2hpbmVFeHBhbnNpb25UaW1lK3RoaXMuc2hpbmVGYWRlT3V0VGltZSkrMTAwLHk9dGhpcy5wcm9qZWN0aWxlVHdlZW4odGhpcy5md0NvbnRhaW5lcixsLHYsdGhpcy5ncmF2aXR5LHRoaXMudmVsWCx0aGlzLnZlbFkpLG49dGhpcyxzPSExLG89W1suODUsODVdLFsuNiwzMF0sWy44NSwxMjBdLFsxLDMwXV0sdD0wO2goKTt0aGlzLnNwYXJrcz1kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoZndTVkducywic3ZnIik7dGhpcy5zcGFya3Muc2V0QXR0cmlidXRlTlMobnVsbCwiZmlsdGVyIiwidXJsKCNzcGFya2xlc0dsb3ciK3RoaXMubnVtKyIpIik7dGhpcy5zcGFya3Muc2V0QXR0cmlidXRlTlMobnVsbCwieCIsdGhpcy5zZXBhcmF0aW9uKTt0aGlzLnNwYXJrcy5zZXRBdHRyaWJ1dGVOUyhudWxsLCJ5Iix0aGlzLnNlcGFyYXRpb24pO3RoaXMuZndDb250YWluZXIuYXBwZW5kQ2hpbGQodGhpcy5zcGFya3MpO2M9c2V0SW50ZXJ2YWwoZnVuY3Rpb24oKXtDRmlyZXdvcmsucHJvdG90eXBlLmFkZFNwYXJrLmNhbGwobil9LDUpO3NldFRpbWVvdXQoYSx0aGlzLnRpbWVCZWZvcmVFeHBsb3Npb24pfTtDRmlyZXdvcmsucHJvdG90eXBlLmNyZWF0ZVNWRz1mdW5jdGlvbihuLHQsaSl7dmFyIHI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKGZ3U1ZHbnMsbiksdTt0IT1udWxsJiZyLnNldEF0dHJpYnV0ZU5TKG51bGwsImlkIix0KTtmb3IodSBpbiBpKXIuc2V0QXR0cmlidXRlTlMobnVsbCx1LGlbdV0pO3JldHVybiByfTtDRmlyZXdvcmsucHJvdG90eXBlLmNyZWF0ZUdyYWRpZW50PWZ1bmN0aW9uKG4sdCxpKXtmb3IodmFyIGUscix1LG89dGhpcy5jcmVhdGVTVkcoInJhZGlhbEdyYWRpZW50Iix0LHtjeDoiNTAlIixjeToiNTAlIixyOiI1MCUiLGZ4OiI1MCUiLGZ5OiI1MCUifSksZj0wO2Y8aS5sZW5ndGg7ZisrKXtlPWlbZl07cj1kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoZndTVkducywic3RvcCIpO2Zvcih1IGluIGUpci5oYXNBdHRyaWJ1dGUodSl8fHIuc2V0QXR0cmlidXRlKHUsZVt1XSk7by5hcHBlbmRDaGlsZChyKX10aGlzLmluc2VydERlZihuLG8pfTtDRmlyZXdvcmsucHJvdG90eXBlLmNyZWF0ZUZpbHRlcj1mdW5jdGlvbihuLHQsaSxyKXt2YXIgZj1wYXJzZUludChpLDE2KSxvPShmPj4xNiYyNTUpLzI1NSxzPShmPj44JjI1NSkvMjU1LGg9KGYmMjU1KS8yNTUsdT10aGlzLmNyZWF0ZVNWRygiZmlsdGVyIix0LHt9KSxsPXRoaXMuY3JlYXRlU1ZHKCJmZUNvbG9yTWF0cml4IixudWxsLHt0eXBlOiJtYXRyaXgiLHZhbHVlczoiMCAwIDAgIitvKyIgIitvKyIgIDAgMCAwICIrcysiICIrcysiICAwIDAgMCAiK2grIiAiK2grIiAgMCAwIDAgMSAwIn0pLGM7dS5hcHBlbmRDaGlsZChsKTtjPXRoaXMuY3JlYXRlU1ZHKCJmZUdhdXNzaWFuQmx1ciIsbnVsbCx7c3RkRGV2aWF0aW9uOnIscmVzdWx0OiJjb2xvcmVkQmx1ciJ9KTt1LmFwcGVuZENoaWxkKGMpO3ZhciBlPXRoaXMuY3JlYXRlU1ZHKCJmZU1lcmdlIixudWxsLHt9KSxhPXRoaXMuY3JlYXRlU1ZHKCJmZU1lcmdlTm9kZSIsbnVsbCx7ImluIjoiY29sb3JlZEJsdXIifSksdj10aGlzLmNyZWF0ZVNWRygiZmVNZXJnZU5vZGUiLG51bGwseyJpbiI6IlNvdXJjZUdyYXBoaWMifSk7ZS5hcHBlbmRDaGlsZChhKTtlLmFwcGVuZENoaWxkKHYpO3UuYXBwZW5kQ2hpbGQoZSk7dGhpcy5pbnNlcnREZWYobix1KX07Q0ZpcmV3b3JrLnByb3RvdHlwZS5pbnNlcnREZWY9ZnVuY3Rpb24obix0KXt2YXIgaT1uLnF1ZXJ5U2VsZWN0b3IoImRlZnMiKXx8bi5pbnNlcnRCZWZvcmUoZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKGZ3U1ZHbnMsImRlZnMiKSxuLmZpcnN0Q2hpbGQpO2kuYXBwZW5kQ2hpbGQodCl9O0NGaXJld29yay5wcm90b3R5cGUuYWRkU3Bhcms9ZnVuY3Rpb24oKXtmdW5jdGlvbiBvKCl7bi5yZW1vdmVDaGlsZCh0KX12YXIgaT00MDArTWF0aC5yYW5kb20oKSo4MDAscj10aGlzLnZlbFgrTWF0aC5yYW5kb20oKSoyMC0xMCx1PU1hdGgucmFuZG9tKCkqODArNDAsZj10aGlzLmFzY2VuZGluZ0ZpcmVCYWxsUmFkaXVzK01hdGgucmFuZG9tKCkqMy0xLjUsZT10aGlzLmFzY2VuZGluZ0ZpcmVCYWxsUmFkaXVzK01hdGgucmFuZG9tKCkqNCxuPXRoaXMuc3BhcmtzLHQ9Q0ZpcmV3b3JrLnByb3RvdHlwZS5jcmVhdGVDaXJjbGUuY2FsbCh0aGlzLG4sZixlLDEsIkZGRUVCOCIpO3RoaXMucHJvamVjdGlsZVR3ZWVuKHQsaSxvLDAsLXIsdSwxLDApfTtDRmlyZXdvcmsucHJvdG90eXBlLmV4cGxvc2lvbj1mdW5jdGlvbigpe2Z1bmN0aW9uIGYodCl7MTU8dCYmdDw0MCYmbi5zZXRTVkdzY2FsZShuLmZhc3RFeHBsb3Npb24sMS42NyxuLmZ3Q2VudGVyLG4uZndDZW50ZXIpOzQwPD10JiZ0PDY1JiZuLnNldFNWR3NjYWxlKG4uZmFzdEV4cGxvc2lvbiwxLG4uZndDZW50ZXIsbi5md0NlbnRlcil9ZnVuY3Rpb24gYSh0KXt2YXIgaT1NYXRoLm1pbih0L24uc2hpbmVFeHBhbnNpb25UaW1lLDEpLHI9LjkrLjcqaSooMi1pKTtuLnNoaW5lQ29sb3Iuc2V0QXR0cmlidXRlKCJyIixyKm4uc2hpbmVSYWRpdXMpfWZ1bmN0aW9uIHYoKXt2YXIgdD1uLmFuaW1hdGlvbihuLnNoaW5lRmFkZU91dFRpbWUseSxudWxsKX1mdW5jdGlvbiB5KHQpe3ZhciBpPU1hdGgubWluKHQvbi5zaGluZUZhZGVPdXRUaW1lLDEpLHI9MS1pKmk7bi5zaGluZUNvbG9yLnNldEF0dHJpYnV0ZSgiZmlsbC1vcGFjaXR5IixyKX12YXIgbj10aGlzLHUsZSx0LGw7Zm9yKHRoaXMuc2hpbmVDb2xvcj10aGlzLmNyZWF0ZVNWRygiY2lyY2xlIiwic2hpbmVDb2xvciIse2N4OnRoaXMuZndDZW50ZXIsY3k6dGhpcy5md0NlbnRlcixyOnRoaXMuc2hpbmVSYWRpdXMsc3Ryb2tlOiJub25lIixmaWxsOiJ1cmwoI2JhY2tsaWdodEdyYWQiK3RoaXMubnVtKyIpIn0pLHRoaXMuZndDb250YWluZXIuYXBwZW5kQ2hpbGQodGhpcy5zaGluZUNvbG9yKSx0aGlzLmZhc3RFeHBsb3Npb249dGhpcy5jcmVhdGVTVkcoImNpcmNsZSIsImV4cGxvc2lvbiIse2N4OnRoaXMuZndDZW50ZXIsY3k6dGhpcy5md0NlbnRlcixyOnRoaXMuZmlyc3RFeHBsb3Npb25SYWRpdXMsc3Ryb2tlOiJub25lIixmaWxsOiJ1cmwoI2V4cGxvc2lvbkdyYWQiK3RoaXMubnVtKyIpIn0pLHRoaXMuZndDb250YWluZXIuYXBwZW5kQ2hpbGQodGhpcy5mYXN0RXhwbG9zaW9uKSx1PXRoaXMuYW5pbWF0aW9uKDY1LGYsZnVuY3Rpb24oKXtuLmZ3Q29udGFpbmVyLnJlbW92ZUNoaWxkKG4uZmFzdEV4cGxvc2lvbil9KSx0aGlzLnBhcnRpY2xlcz1kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoZndTVkducywic3ZnIiksdGhpcy5wYXJ0aWNsZXMuc2V0QXR0cmlidXRlTlMobnVsbCwiZmlsdGVyIiwidXJsKCNwYXJ0aWNsZXNHbG93Iit0aGlzLm51bSsiKSIpLGU9dGhpcy5wYXJ0aWNsZXMsdD0wO3Q8dGhpcy5udW1FeHBsb3Npb25QYXJ0aWNsZXM7dCsrKXZhciBpPU1hdGgucG93KE1hdGgucmFuZG9tKCksLjMpKnRoaXMuZXhwbG9zaW9uVmVsb2NpdHkscj1NYXRoLnJhbmRvbSgpKjIqTWF0aC5QSSxvPWkqTWF0aC5zaW4ocikscz1pKk1hdGguY29zKHIpLGg9NTArTWF0aC5yYW5kb20oKSp0aGlzLmV4cGxvc2lvblBhcnRpY2xlc01heExpZmVzcGFuLGM9dGhpcy5jcmVhdGVDaXJjbGUodGhpcy5wYXJ0aWNsZXMsdGhpcy5md0NlbnRlcix0aGlzLmZ3Q2VudGVyLHRoaXMuZXhwbG9zaW9uUGFydGljbGVSYWRpdXMsIkZGRkZGRiIsdGhpcy5maXJlQ29sb3IpLHA9dGhpcy5leHBsb3Npb25QYXJ0aWNsZVR3ZWVuKGMsaCx0aGlzLmV4cGxvc2lvblBhcnRpY2xlUmFkaXVzLHRoaXMuZXhwbG9zaW9uRGVjZWxlcmF0aW9uLG8scyk7dGhpcy5md0NvbnRhaW5lci5hcHBlbmRDaGlsZCh0aGlzLnBhcnRpY2xlcyk7bD10aGlzLmFuaW1hdGlvbih0aGlzLnNoaW5lRXhwYW5zaW9uVGltZSxhLHYpO3RoaXMudXNlQXVkaW8mJihleHBsb3Npb25NUDMuY3VycmVudFRpbWU9MCxleHBsb3Npb25NUDMucGxheSgpKX07Q0ZpcmV3b3JrLnByb3RvdHlwZS5jcmVhdGVDaXJjbGU9ZnVuY3Rpb24obix0LGkscix1LGYpe2Y9dHlwZW9mIGYhPSJ1bmRlZmluZWQiPyIjIitmOiJub25lIjt2YXIgZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoZndTVkducywiY2lyY2xlIik7cmV0dXJuIGUuc2V0QXR0cmlidXRlTlMobnVsbCwiY3giLHQpLGUuc2V0QXR0cmlidXRlTlMobnVsbCwiY3kiLGkpLGUuc2V0QXR0cmlidXRlTlMobnVsbCwiciIsciksZS5zZXRBdHRyaWJ1dGVOUyhudWxsLCJmaWxsIiwiIyIrdSksZS5zZXRBdHRyaWJ1dGVOUyhudWxsLCJzdHJva2UiLGYpLGYhPSJub25lIiYmZS5zZXRBdHRyaWJ1dGVOUyhudWxsLCJzdHJva2Utd2lkdGgiLC41KSxuLmFwcGVuZENoaWxkKGUpLGV9O0NGaXJld29yay5wcm90b3R5cGUucHJvamVjdGlsZVR3ZWVuPWZ1bmN0aW9uKG4sdCxpLHIsdSxmLGUsbyl7ZnVuY3Rpb24gcChpKXt2YXIgbyxwLHcseTtsPWktYTthPWk7bz1sLzFlMztmKz1yKm87cD1zPyJjeCI6IngiO3c9cz8iY3kiOiJ5IjtoLmluY3JlYXNlUGFyYW1ldGVyKG4scCx1Km8pO2guaW5jcmVhc2VQYXJhbWV0ZXIobix3LGYqbyk7YyYmKHk9ZSt2KihpL3QpLHM\/bi5zZXRBdHRyaWJ1dGUoImZpbGwtb3BhY2l0eSIseSk6bi5zdHlsZS5vcGFjaXR5PXkpfXZhciBoLHk7ZT10eXBlb2YgZSE9InVuZGVmaW5lZCI\/ZToxO289dHlwZW9mIG8hPSJ1bmRlZmluZWQiP286MTt2YXIgYz1lIT1vLHY9by1lLGw9MCxhPTAscz1uLm5vZGVOYW1lIT0ic3ZnIjtjJiYocz9uLnNldEF0dHJpYnV0ZSgiZmlsbC1vcGFjaXR5IixlKyIiKTpuLnN0eWxlLm9wYWNpdHk9ZSk7aD10aGlzO3k9dGhpcy5hbmltYXRpb24odCxwLGkpfTtDRmlyZXdvcmsucHJvdG90eXBlLmV4cGxvc2lvblBhcnRpY2xlVHdlZW49ZnVuY3Rpb24obix0LGkscix1LGYpe2Z1bmN0aW9uIGgoaCl7dmFyIGwsYSxjO2U9aC1zO3M9aDtsPU1hdGgucG93KHIsZS8xNyk7dSo9bDtmKj1sO2E9ZS8xZTM7by5pbmNyZWFzZVBhcmFtZXRlcihuLCJjeCIsdSphKTtvLmluY3JlYXNlUGFyYW1ldGVyKG4sImN5IixmKmEpO2M9MS0uOSooaC90KTtjPU1hdGgubWF4KGMsLjAxKTtuLnNldEF0dHJpYnV0ZSgiciIsYyppKTtuLnNldEF0dHJpYnV0ZSgic3Ryb2tlLXdpZHRoIiwuNSpjKX12YXIgbz10aGlzLGU9MCxzPTAsYz10aGlzLmFuaW1hdGlvbih0LGgsbnVsbCl9O0NGaXJld29yay5wcm90b3R5cGUuYW5pbWF0aW9uPWZ1bmN0aW9uKG4sdCxpKXtmdW5jdGlvbiB1KCl7dmFyIGU9KG5ldyBEYXRlKS5nZXRUaW1lKCksZjtyPT09bnVsbCYmKHI9ZSk7Zj1lLXI7dChmKTtmPG4\/c2V0VGltZW91dCh1LDE1KTppIT1udWxsJiZpKCl9aT10eXBlb2YgaSE9InVuZGVmaW5lZCI\/aTpudWxsO3ZhciByPW51bGw7dSgpfTtDRmlyZXdvcmsucHJvdG90eXBlLmluY3JlYXNlUGFyYW1ldGVyPWZ1bmN0aW9uKG4sdCxpKXtuLnNldEF0dHJpYnV0ZSh0LHBhcnNlRmxvYXQobi5nZXRBdHRyaWJ1dGUodCkpK2kpfTtDRmlyZXdvcmsucHJvdG90eXBlLnNldFNWR3NjYWxlPWZ1bmN0aW9uKG4sdCxpLHIpe24uc2V0QXR0cmlidXRlKCJ0cmFuc2Zvcm0iLCJzY2FsZSgiK3QrIikiKTtuLnNldEF0dHJpYnV0ZSgiY3giLGkrKDEtdCkqaS90KTtuLnNldEF0dHJpYnV0ZSgiY3kiLHIrKDEtdCkqci90KX07LypFT0YqLzsKLyoqIC9qcy92YW5pbGxhanMvaW1hc2subWluLmpzICoqLwohZnVuY3Rpb24odCxlKXsib2JqZWN0Ij09dHlwZW9mIGV4cG9ydHMmJiJ1bmRlZmluZWQiIT10eXBlb2YgbW9kdWxlP2UoZXhwb3J0cyk6ImZ1bmN0aW9uIj09dHlwZW9mIGRlZmluZSYmZGVmaW5lLmFtZD9kZWZpbmUoWyJleHBvcnRzIl0sZSk6ZSgodD0idW5kZWZpbmVkIiE9dHlwZW9mIGdsb2JhbFRoaXM\/Z2xvYmFsVGhpczp0fHxzZWxmKS5JTWFzaz17fSl9KHRoaXMsKGZ1bmN0aW9uKHQpeyJ1c2Ugc3RyaWN0Ijt2YXIgZT0idW5kZWZpbmVkIiE9dHlwZW9mIGdsb2JhbFRoaXM\/Z2xvYmFsVGhpczoidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdz93aW5kb3c6InVuZGVmaW5lZCIhPXR5cGVvZiBnbG9iYWw\/Z2xvYmFsOiJ1bmRlZmluZWQiIT10eXBlb2Ygc2VsZj9zZWxmOnt9LG49ZnVuY3Rpb24odCl7cmV0dXJuIHQmJnQuTWF0aD09TWF0aCYmdH0saT1uKCJvYmplY3QiPT10eXBlb2YgZ2xvYmFsVGhpcyYmZ2xvYmFsVGhpcyl8fG4oIm9iamVjdCI9PXR5cGVvZiB3aW5kb3cmJndpbmRvdyl8fG4oIm9iamVjdCI9PXR5cGVvZiBzZWxmJiZzZWxmKXx8bigib2JqZWN0Ij09dHlwZW9mIGUmJmUpfHxmdW5jdGlvbigpe3JldHVybiB0aGlzfSgpfHxGdW5jdGlvbigicmV0dXJuIHRoaXMiKSgpLHI9e30sdT1mdW5jdGlvbih0KXt0cnl7cmV0dXJuISF0KCl9Y2F0Y2godCl7cmV0dXJuITB9fSxzPSF1KChmdW5jdGlvbigpe3JldHVybiA3IT1PYmplY3QuZGVmaW5lUHJvcGVydHkoe30sMSx7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIDd9fSlbMV19KSksYT0hdSgoZnVuY3Rpb24oKXt2YXIgdD1mdW5jdGlvbigpe30uYmluZCgpO3JldHVybiJmdW5jdGlvbiIhPXR5cGVvZiB0fHx0Lmhhc093blByb3BlcnR5KCJwcm90b3R5cGUiKX0pKSxvPWEsbD1GdW5jdGlvbi5wcm90b3R5cGUuY2FsbCxoPW8\/bC5iaW5kKGwpOmZ1bmN0aW9uKCl7cmV0dXJuIGwuYXBwbHkobCxhcmd1bWVudHMpfSxjPXt9LGY9e30ucHJvcGVydHlJc0VudW1lcmFibGUscD1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLGQ9cCYmIWYuY2FsbCh7MToyfSwxKTtjLmY9ZD9mdW5jdGlvbih0KXt2YXIgZT1wKHRoaXMsdCk7cmV0dXJuISFlJiZlLmVudW1lcmFibGV9OmY7dmFyIHYsZyxrPWZ1bmN0aW9uKHQsZSl7cmV0dXJue2VudW1lcmFibGU6ISgxJnQpLGNvbmZpZ3VyYWJsZTohKDImdCksd3JpdGFibGU6ISg0JnQpLHZhbHVlOmV9fSx5PWEsbT1GdW5jdGlvbi5wcm90b3R5cGUsYj1tLmJpbmQsXz1tLmNhbGwsQT15JiZiLmJpbmQoXyxfKSxDPXk\/ZnVuY3Rpb24odCl7cmV0dXJuIHQmJkEodCl9OmZ1bmN0aW9uKHQpe3JldHVybiB0JiZmdW5jdGlvbigpe3JldHVybiBfLmFwcGx5KHQsYXJndW1lbnRzKX19LEU9QyxGPUUoe30udG9TdHJpbmcpLFM9RSgiIi5zbGljZSksdz1mdW5jdGlvbih0KXtyZXR1cm4gUyhGKHQpLDgsLTEpfSxCPUMsRD11LHg9dyxNPWkuT2JqZWN0LE89QigiIi5zcGxpdCksUD1EKChmdW5jdGlvbigpe3JldHVybiFNKCJ6IikucHJvcGVydHlJc0VudW1lcmFibGUoMCl9KSk\/ZnVuY3Rpb24odCl7cmV0dXJuIlN0cmluZyI9PXgodCk\/Tyh0LCIiKTpNKHQpfTpNLFQ9aS5UeXBlRXJyb3IsST1mdW5jdGlvbih0KXtpZihudWxsPT10KXRocm93IFQoIkNhbid0IGNhbGwgbWV0aG9kIG9uICIrdCk7cmV0dXJuIHR9LGo9UCxSPUksVj1mdW5jdGlvbih0KXtyZXR1cm4gaihSKHQpKX0sTD1mdW5jdGlvbih0KXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgdH0sTj1MLFU9ZnVuY3Rpb24odCl7cmV0dXJuIm9iamVjdCI9PXR5cGVvZiB0P251bGwhPT10Ok4odCl9LHo9aSxxPUwsSD1mdW5jdGlvbih0KXtyZXR1cm4gcSh0KT90OnZvaWQgMH0sWT1mdW5jdGlvbih0LGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPDI\/SCh6W3RdKTp6W3RdJiZ6W3RdW2VdfSxaPUMoe30uaXNQcm90b3R5cGVPZiksRz1ZKCJuYXZpZ2F0b3IiLCJ1c2VyQWdlbnQiKXx8IiIsSz1pLCQ9RyxXPUsucHJvY2VzcyxYPUsuRGVubyxKPVcmJlcudmVyc2lvbnN8fFgmJlgudmVyc2lvbixRPUomJkoudjg7USYmKGc9KHY9US5zcGxpdCgiLiIpKVswXT4wJiZ2WzBdPDQ\/MTorKHZbMF0rdlsxXSkpLCFnJiYkJiYoISh2PSQubWF0Y2goL0VkZ2VcLyhcZCspLykpfHx2WzFdPj03NCkmJih2PSQubWF0Y2goL0Nocm9tZVwvKFxkKykvKSkmJihnPSt2WzFdKTt2YXIgdHQ9ZyxldD11LG50PSEhT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyYmIWV0KChmdW5jdGlvbigpe3ZhciB0PVN5bWJvbCgpO3JldHVybiFTdHJpbmcodCl8fCEoT2JqZWN0KHQpaW5zdGFuY2VvZiBTeW1ib2wpfHwhU3ltYm9sLnNoYW0mJnR0JiZ0dDw0MX0pKSxpdD1udCYmIVN5bWJvbC5zaGFtJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcixydD1ZLHV0PUwsc3Q9WixhdD1pdCxvdD1pLk9iamVjdCxsdD1hdD9mdW5jdGlvbih0KXtyZXR1cm4ic3ltYm9sIj09dHlwZW9mIHR9OmZ1bmN0aW9uKHQpe3ZhciBlPXJ0KCJTeW1ib2wiKTtyZXR1cm4gdXQoZSkmJnN0KGUucHJvdG90eXBlLG90KHQpKX0saHQ9aS5TdHJpbmcsY3Q9TCxmdD1mdW5jdGlvbih0KXt0cnl7cmV0dXJuIGh0KHQpfWNhdGNoKHQpe3JldHVybiJPYmplY3QifX0scHQ9aS5UeXBlRXJyb3IsZHQ9ZnVuY3Rpb24odCl7aWYoY3QodCkpcmV0dXJuIHQ7dGhyb3cgcHQoZnQodCkrIiBpcyBub3QgYSBmdW5jdGlvbiIpfSx2dD1oLGd0PUwsa3Q9VSx5dD1pLlR5cGVFcnJvcixtdD17ZXhwb3J0czp7fX0sYnQ9aSxfdD1PYmplY3QuZGVmaW5lUHJvcGVydHksQXQ9ZnVuY3Rpb24odCxlKXt0cnl7X3QoYnQsdCx7dmFsdWU6ZSxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KX1jYXRjaChuKXtidFt0XT1lfXJldHVybiBlfSxDdD1BdCxFdD0iX19jb3JlLWpzX3NoYXJlZF9fIixGdD1pW0V0XXx8Q3QoRXQse30pLFN0PUZ0OyhtdC5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIFN0W3RdfHwoU3RbdF09dm9pZCAwIT09ZT9lOnt9KX0pKCJ2ZXJzaW9ucyIsW10pLnB1c2goe3ZlcnNpb246IjMuMjEuMCIsbW9kZToiZ2xvYmFsIixjb3B5cmlnaHQ6IqkgMjAxNC0yMDIyIERlbmlzIFB1c2hrYXJldiAoemxvaXJvY2sucnUpIixsaWNlbnNlOiJodHRwczovL2dpdGh1Yi5jb20vemxvaXJvY2svY29yZS1qcy9ibG9iL3YzLjIxLjAvTElDRU5TRSIsc291cmNlOiJodHRwczovL2dpdGh1Yi5jb20vemxvaXJvY2svY29yZS1qcyJ9KTt2YXIgd3Q9SSxCdD1pLk9iamVjdCxEdD1mdW5jdGlvbih0KXtyZXR1cm4gQnQod3QodCkpfSx4dD1EdCxNdD1DKHt9Lmhhc093blByb3BlcnR5KSxPdD1PYmplY3QuaGFzT3dufHxmdW5jdGlvbih0LGUpe3JldHVybiBNdCh4dCh0KSxlKX0sUHQ9QyxUdD0wLEl0PU1hdGgucmFuZG9tKCksanQ9UHQoMS4udG9TdHJpbmcpLFJ0PWZ1bmN0aW9uKHQpe3JldHVybiJTeW1ib2woIisodm9pZCAwPT09dD8iIjp0KSsiKV8iK2p0KCsrVHQrSXQsMzYpfSxWdD1pLEx0PW10LmV4cG9ydHMsTnQ9T3QsVXQ9UnQsenQ9bnQscXQ9aXQsSHQ9THQoIndrcyIpLFl0PVZ0LlN5bWJvbCxadD1ZdCYmWXQuZm9yLEd0PXF0P1l0Oll0JiZZdC53aXRob3V0U2V0dGVyfHxVdCxLdD1mdW5jdGlvbih0KXtpZighTnQoSHQsdCl8fCF6dCYmInN0cmluZyIhPXR5cGVvZiBIdFt0XSl7dmFyIGU9IlN5bWJvbC4iK3Q7enQmJk50KFl0LHQpP0h0W3RdPVl0W3RdOkh0W3RdPXF0JiZadD9adChlKTpHdChlKX1yZXR1cm4gSHRbdF19LCR0PWgsV3Q9VSxYdD1sdCxKdD1mdW5jdGlvbih0LGUpe3ZhciBuPXRbZV07cmV0dXJuIG51bGw9PW4\/dm9pZCAwOmR0KG4pfSxRdD1mdW5jdGlvbih0LGUpe3ZhciBuLGk7aWYoInN0cmluZyI9PT1lJiZndChuPXQudG9TdHJpbmcpJiYha3QoaT12dChuLHQpKSlyZXR1cm4gaTtpZihndChuPXQudmFsdWVPZikmJiFrdChpPXZ0KG4sdCkpKXJldHVybiBpO2lmKCJzdHJpbmciIT09ZSYmZ3Qobj10LnRvU3RyaW5nKSYmIWt0KGk9dnQobix0KSkpcmV0dXJuIGk7dGhyb3cgeXQoIkNhbid0IGNvbnZlcnQgb2JqZWN0IHRvIHByaW1pdGl2ZSB2YWx1ZSIpfSx0ZT1LdCxlZT1pLlR5cGVFcnJvcixuZT10ZSgidG9QcmltaXRpdmUiKSxpZT1mdW5jdGlvbih0LGUpe2lmKCFXdCh0KXx8WHQodCkpcmV0dXJuIHQ7dmFyIG4saT1KdCh0LG5lKTtpZihpKXtpZih2b2lkIDA9PT1lJiYoZT0iZGVmYXVsdCIpLG49JHQoaSx0LGUpLCFXdChuKXx8WHQobikpcmV0dXJuIG47dGhyb3cgZWUoIkNhbid0IGNvbnZlcnQgb2JqZWN0IHRvIHByaW1pdGl2ZSB2YWx1ZSIpfXJldHVybiB2b2lkIDA9PT1lJiYoZT0ibnVtYmVyIiksUXQodCxlKX0scmU9bHQsdWU9ZnVuY3Rpb24odCl7dmFyIGU9aWUodCwic3RyaW5nIik7cmV0dXJuIHJlKGUpP2U6ZSsiIn0sc2U9VSxhZT1pLmRvY3VtZW50LG9lPXNlKGFlKSYmc2UoYWUuY3JlYXRlRWxlbWVudCksbGU9ZnVuY3Rpb24odCl7cmV0dXJuIG9lP2FlLmNyZWF0ZUVsZW1lbnQodCk6e319LGhlPSFzJiYhdSgoZnVuY3Rpb24oKXtyZXR1cm4gNyE9T2JqZWN0LmRlZmluZVByb3BlcnR5KGxlKCJkaXYiKSwiYSIse2dldDpmdW5jdGlvbigpe3JldHVybiA3fX0pLmF9KSksY2U9cyxmZT1oLHBlPWMsZGU9ayx2ZT1WLGdlPXVlLGtlPU90LHllPWhlLG1lPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7ci5mPWNlP21lOmZ1bmN0aW9uKHQsZSl7aWYodD12ZSh0KSxlPWdlKGUpLHllKXRyeXtyZXR1cm4gbWUodCxlKX1jYXRjaCh0KXt9aWYoa2UodCxlKSlyZXR1cm4gZGUoIWZlKHBlLmYsdCxlKSx0W2VdKX07dmFyIGJlPXt9LF9lPXMmJnUoKGZ1bmN0aW9uKCl7cmV0dXJuIDQyIT1PYmplY3QuZGVmaW5lUHJvcGVydHkoKGZ1bmN0aW9uKCl7fSksInByb3RvdHlwZSIse3ZhbHVlOjQyLHdyaXRhYmxlOiExfSkucHJvdG90eXBlfSkpLEFlPWksQ2U9VSxFZT1BZS5TdHJpbmcsRmU9QWUuVHlwZUVycm9yLFNlPWZ1bmN0aW9uKHQpe2lmKENlKHQpKXJldHVybiB0O3Rocm93IEZlKEVlKHQpKyIgaXMgbm90IGFuIG9iamVjdCIpfSx3ZT1zLEJlPWhlLERlPV9lLHhlPVNlLE1lPXVlLE9lPWkuVHlwZUVycm9yLFBlPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSxUZT1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLEllPSJlbnVtZXJhYmxlIixqZT0iY29uZmlndXJhYmxlIixSZT0id3JpdGFibGUiO2JlLmY9d2U\/RGU\/ZnVuY3Rpb24odCxlLG4pe2lmKHhlKHQpLGU9TWUoZSkseGUobiksImZ1bmN0aW9uIj09dHlwZW9mIHQmJiJwcm90b3R5cGUiPT09ZSYmInZhbHVlImluIG4mJlJlIGluIG4mJiFuLndyaXRhYmxlKXt2YXIgaT1UZSh0LGUpO2kmJmkud3JpdGFibGUmJih0W2VdPW4udmFsdWUsbj17Y29uZmlndXJhYmxlOmplIGluIG4\/bi5jb25maWd1cmFibGU6aS5jb25maWd1cmFibGUsZW51bWVyYWJsZTpJZSBpbiBuP24uZW51bWVyYWJsZTppLmVudW1lcmFibGUsd3JpdGFibGU6ITF9KX1yZXR1cm4gUGUodCxlLG4pfTpQZTpmdW5jdGlvbih0LGUsbil7aWYoeGUodCksZT1NZShlKSx4ZShuKSxCZSl0cnl7cmV0dXJuIFBlKHQsZSxuKX1jYXRjaCh0KXt9aWYoImdldCJpbiBufHwic2V0ImluIG4pdGhyb3cgT2UoIkFjY2Vzc29ycyBub3Qgc3VwcG9ydGVkIik7cmV0dXJuInZhbHVlImluIG4mJih0W2VdPW4udmFsdWUpLHR9O3ZhciBWZT1iZSxMZT1rLE5lPXM\/ZnVuY3Rpb24odCxlLG4pe3JldHVybiBWZS5mKHQsZSxMZSgxLG4pKX06ZnVuY3Rpb24odCxlLG4pe3JldHVybiB0W2VdPW4sdH0sVWU9e2V4cG9ydHM6e319LHplPUwscWU9RnQsSGU9QyhGdW5jdGlvbi50b1N0cmluZyk7emUocWUuaW5zcGVjdFNvdXJjZSl8fChxZS5pbnNwZWN0U291cmNlPWZ1bmN0aW9uKHQpe3JldHVybiBIZSh0KX0pO3ZhciBZZSxaZSxHZSxLZT1xZS5pbnNwZWN0U291cmNlLCRlPUwsV2U9S2UsWGU9aS5XZWFrTWFwLEplPSRlKFhlKSYmL25hdGl2ZSBjb2RlLy50ZXN0KFdlKFhlKSksUWU9bXQuZXhwb3J0cyx0bj1SdCxlbj1RZSgia2V5cyIpLG5uPXt9LHJuPUplLHVuPWksc249Qyxhbj1VLG9uPU5lLGxuPU90LGhuPUZ0LGNuPWZ1bmN0aW9uKHQpe3JldHVybiBlblt0XXx8KGVuW3RdPXRuKHQpKX0sZm49bm4scG49Ik9iamVjdCBhbHJlYWR5IGluaXRpYWxpemVkIixkbj11bi5UeXBlRXJyb3Isdm49dW4uV2Vha01hcDtpZihybnx8aG4uc3RhdGUpe3ZhciBnbj1obi5zdGF0ZXx8KGhuLnN0YXRlPW5ldyB2biksa249c24oZ24uZ2V0KSx5bj1zbihnbi5oYXMpLG1uPXNuKGduLnNldCk7WWU9ZnVuY3Rpb24odCxlKXtpZih5bihnbix0KSl0aHJvdyBuZXcgZG4ocG4pO3JldHVybiBlLmZhY2FkZT10LG1uKGduLHQsZSksZX0sWmU9ZnVuY3Rpb24odCl7cmV0dXJuIGtuKGduLHQpfHx7fX0sR2U9ZnVuY3Rpb24odCl7cmV0dXJuIHluKGduLHQpfX1lbHNle3ZhciBibj1jbigic3RhdGUiKTtmbltibl09ITAsWWU9ZnVuY3Rpb24odCxlKXtpZihsbih0LGJuKSl0aHJvdyBuZXcgZG4ocG4pO3JldHVybiBlLmZhY2FkZT10LG9uKHQsYm4sZSksZX0sWmU9ZnVuY3Rpb24odCl7cmV0dXJuIGxuKHQsYm4pP3RbYm5dOnt9fSxHZT1mdW5jdGlvbih0KXtyZXR1cm4gbG4odCxibil9fXZhciBfbj17c2V0OlllLGdldDpaZSxoYXM6R2UsZW5mb3JjZTpmdW5jdGlvbih0KXtyZXR1cm4gR2UodCk\/WmUodCk6WWUodCx7fSl9LGdldHRlckZvcjpmdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oZSl7dmFyIG47aWYoIWFuKGUpfHwobj1aZShlKSkudHlwZSE9PXQpdGhyb3cgZG4oIkluY29tcGF0aWJsZSByZWNlaXZlciwgIit0KyIgcmVxdWlyZWQiKTtyZXR1cm4gbn19fSxBbj1zLENuPU90LEVuPUZ1bmN0aW9uLnByb3RvdHlwZSxGbj1BbiYmT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcixTbj1DbihFbiwibmFtZSIpLHduPVNuJiYic29tZXRoaW5nIj09PWZ1bmN0aW9uKCl7fS5uYW1lLEJuPVNuJiYoIUFufHxBbiYmRm4oRW4sIm5hbWUiKS5jb25maWd1cmFibGUpLERuPWkseG49TCxNbj1PdCxPbj1OZSxQbj1BdCxUbj1LZSxJbj17RVhJU1RTOlNuLFBST1BFUjp3bixDT05GSUdVUkFCTEU6Qm59LkNPTkZJR1VSQUJMRSxqbj1fbi5nZXQsUm49X24uZW5mb3JjZSxWbj1TdHJpbmcoU3RyaW5nKS5zcGxpdCgiU3RyaW5nIik7KFVlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLG4saSl7dmFyIHIsdT0hIWkmJiEhaS51bnNhZmUscz0hIWkmJiEhaS5lbnVtZXJhYmxlLGE9ISFpJiYhIWkubm9UYXJnZXRHZXQsbz1pJiZ2b2lkIDAhPT1pLm5hbWU\/aS5uYW1lOmU7eG4obikmJigiU3ltYm9sKCI9PT1TdHJpbmcobykuc2xpY2UoMCw3KSYmKG89IlsiK1N0cmluZyhvKS5yZXBsYWNlKC9eU3ltYm9sXCgoW14pXSopXCkvLCIkMSIpKyJdIiksKCFNbihuLCJuYW1lIil8fEluJiZuLm5hbWUhPT1vKSYmT24obiwibmFtZSIsbyksKHI9Um4obikpLnNvdXJjZXx8KHIuc291cmNlPVZuLmpvaW4oInN0cmluZyI9PXR5cGVvZiBvP286IiIpKSksdCE9PURuPyh1PyFhJiZ0W2VdJiYocz0hMCk6ZGVsZXRlIHRbZV0scz90W2VdPW46T24odCxlLG4pKTpzP3RbZV09bjpQbihlLG4pfSkoRnVuY3Rpb24ucHJvdG90eXBlLCJ0b1N0cmluZyIsKGZ1bmN0aW9uKCl7cmV0dXJuIHhuKHRoaXMpJiZqbih0aGlzKS5zb3VyY2V8fFRuKHRoaXMpfSkpO3ZhciBMbj17fSxObj1NYXRoLmNlaWwsVW49TWF0aC5mbG9vcix6bj1mdW5jdGlvbih0KXt2YXIgZT0rdDtyZXR1cm4gZSE9ZXx8MD09PWU\/MDooZT4wP1VuOk5uKShlKX0scW49em4sSG49TWF0aC5tYXgsWW49TWF0aC5taW4sWm49em4sR249TWF0aC5taW4sS249ZnVuY3Rpb24odCl7cmV0dXJuIHQ+MD9Hbihabih0KSw5MDA3MTk5MjU0NzQwOTkxKTowfSwkbj1LbixXbj1WLFhuPWZ1bmN0aW9uKHQsZSl7dmFyIG49cW4odCk7cmV0dXJuIG48MD9IbihuK2UsMCk6WW4obixlKX0sSm49ZnVuY3Rpb24odCl7cmV0dXJuICRuKHQubGVuZ3RoKX0sUW49ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKGUsbixpKXt2YXIgcix1PVduKGUpLHM9Sm4odSksYT1YbihpLHMpO2lmKHQmJm4hPW4pe2Zvcig7cz5hOylpZigocj11W2ErK10pIT1yKXJldHVybiEwfWVsc2UgZm9yKDtzPmE7YSsrKWlmKCh0fHxhIGluIHUpJiZ1W2FdPT09bilyZXR1cm4gdHx8YXx8MDtyZXR1cm4hdCYmLTF9fSx0aT17aW5jbHVkZXM6UW4oITApLGluZGV4T2Y6UW4oITEpfSxlaT1PdCxuaT1WLGlpPXRpLmluZGV4T2Yscmk9bm4sdWk9QyhbXS5wdXNoKSxzaT1mdW5jdGlvbih0LGUpe3ZhciBuLGk9bmkodCkscj0wLHU9W107Zm9yKG4gaW4gaSkhZWkocmksbikmJmVpKGksbikmJnVpKHUsbik7Zm9yKDtlLmxlbmd0aD5yOyllaShpLG49ZVtyKytdKSYmKH5paSh1LG4pfHx1aSh1LG4pKTtyZXR1cm4gdX0sYWk9WyJjb25zdHJ1Y3RvciIsImhhc093blByb3BlcnR5IiwiaXNQcm90b3R5cGVPZiIsInByb3BlcnR5SXNFbnVtZXJhYmxlIiwidG9Mb2NhbGVTdHJpbmciLCJ0b1N0cmluZyIsInZhbHVlT2YiXSxvaT1zaSxsaT1haS5jb25jYXQoImxlbmd0aCIsInByb3RvdHlwZSIpO0xuLmY9T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXN8fGZ1bmN0aW9uKHQpe3JldHVybiBvaSh0LGxpKX07dmFyIGhpPXt9O2hpLmY9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9sczt2YXIgY2k9WSxmaT1MbixwaT1oaSxkaT1TZSx2aT1DKFtdLmNvbmNhdCksZ2k9Y2koIlJlZmxlY3QiLCJvd25LZXlzIil8fGZ1bmN0aW9uKHQpe3ZhciBlPWZpLmYoZGkodCkpLG49cGkuZjtyZXR1cm4gbj92aShlLG4odCkpOmV9LGtpPU90LHlpPWdpLG1pPXIsYmk9YmUsX2k9dSxBaT1MLENpPS8jfFwucHJvdG90eXBlXC4vLEVpPWZ1bmN0aW9uKHQsZSl7dmFyIG49U2lbRmkodCldO3JldHVybiBuPT1CaXx8biE9d2kmJihBaShlKT9faShlKTohIWUpfSxGaT1FaS5ub3JtYWxpemU9ZnVuY3Rpb24odCl7cmV0dXJuIFN0cmluZyh0KS5yZXBsYWNlKENpLCIuIikudG9Mb3dlckNhc2UoKX0sU2k9RWkuZGF0YT17fSx3aT1FaS5OQVRJVkU9Ik4iLEJpPUVpLlBPTFlGSUxMPSJQIixEaT1FaSx4aT1pLE1pPXIuZixPaT1OZSxQaT1VZS5leHBvcnRzLFRpPUF0LElpPWZ1bmN0aW9uKHQsZSxuKXtmb3IodmFyIGk9eWkoZSkscj1iaS5mLHU9bWkuZixzPTA7czxpLmxlbmd0aDtzKyspe3ZhciBhPWlbc107a2kodCxhKXx8biYma2kobixhKXx8cih0LGEsdShlLGEpKX19LGppPURpLFJpPWZ1bmN0aW9uKHQsZSl7dmFyIG4saSxyLHUscyxhPXQudGFyZ2V0LG89dC5nbG9iYWwsbD10LnN0YXQ7aWYobj1vP3hpOmw\/eGlbYV18fFRpKGEse30pOih4aVthXXx8e30pLnByb3RvdHlwZSlmb3IoaSBpbiBlKXtpZih1PWVbaV0scj10Lm5vVGFyZ2V0R2V0PyhzPU1pKG4saSkpJiZzLnZhbHVlOm5baV0sIWppKG8\/aTphKyhsPyIuIjoiIyIpK2ksdC5mb3JjZWQpJiZ2b2lkIDAhPT1yKXtpZih0eXBlb2YgdT09dHlwZW9mIHIpY29udGludWU7SWkodSxyKX0odC5zaGFtfHxyJiZyLnNoYW0pJiZPaSh1LCJzaGFtIiwhMCksUGkobixpLHUsdCl9fSxWaT1zaSxMaT1haSxOaT1PYmplY3Qua2V5c3x8ZnVuY3Rpb24odCl7cmV0dXJuIFZpKHQsTGkpfSxVaT1zLHppPUMscWk9aCxIaT11LFlpPU5pLFppPWhpLEdpPWMsS2k9RHQsJGk9UCxXaT1PYmplY3QuYXNzaWduLFhpPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSxKaT16aShbXS5jb25jYXQpLFFpPSFXaXx8SGkoKGZ1bmN0aW9uKCl7aWYoVWkmJjEhPT1XaSh7YjoxfSxXaShYaSh7fSwiYSIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7WGkodGhpcywiYiIse3ZhbHVlOjMsZW51bWVyYWJsZTohMX0pfX0pLHtiOjJ9KSkuYilyZXR1cm4hMDt2YXIgdD17fSxlPXt9LG49U3ltYm9sKCksaT0iYWJjZGVmZ2hpamtsbW5vcHFyc3QiO3JldHVybiB0W25dPTcsaS5zcGxpdCgiIikuZm9yRWFjaCgoZnVuY3Rpb24odCl7ZVt0XT10fSkpLDchPVdpKHt9LHQpW25dfHxZaShXaSh7fSxlKSkuam9pbigiIikhPWl9KSk\/ZnVuY3Rpb24odCxlKXtmb3IodmFyIG49S2kodCksaT1hcmd1bWVudHMubGVuZ3RoLHI9MSx1PVppLmYscz1HaS5mO2k+cjspZm9yKHZhciBhLG89JGkoYXJndW1lbnRzW3IrK10pLGw9dT9KaShZaShvKSx1KG8pKTpZaShvKSxoPWwubGVuZ3RoLGM9MDtoPmM7KWE9bFtjKytdLFVpJiYhcWkocyxvLGEpfHwoblthXT1vW2FdKTtyZXR1cm4gbn06V2ksdHI9UWk7Umkoe3RhcmdldDoiT2JqZWN0IixzdGF0OiEwLGZvcmNlZDpPYmplY3QuYXNzaWduIT09dHJ9LHthc3NpZ246dHJ9KTt2YXIgZXI9e307ZXJbS3QoInRvU3RyaW5nVGFnIildPSJ6Ijt2YXIgbnI9aSxpcj0iW29iamVjdCB6XSI9PT1TdHJpbmcoZXIpLHJyPUwsdXI9dyxzcj1LdCgidG9TdHJpbmdUYWciKSxhcj1uci5PYmplY3Qsb3I9IkFyZ3VtZW50cyI9PXVyKGZ1bmN0aW9uKCl7cmV0dXJuIGFyZ3VtZW50c30oKSksbHI9aXI\/dXI6ZnVuY3Rpb24odCl7dmFyIGUsbixpO3JldHVybiB2b2lkIDA9PT10PyJVbmRlZmluZWQiOm51bGw9PT10PyJOdWxsIjoic3RyaW5nIj09dHlwZW9mKG49ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbZV19Y2F0Y2godCl7fX0oZT1hcih0KSxzcikpP246b3I\/dXIoZSk6Ik9iamVjdCI9PShpPXVyKGUpKSYmcnIoZS5jYWxsZWUpPyJBcmd1bWVudHMiOml9LGhyPWkuU3RyaW5nLGNyPWZ1bmN0aW9uKHQpe2lmKCJTeW1ib2wiPT09bHIodCkpdGhyb3cgVHlwZUVycm9yKCJDYW5ub3QgY29udmVydCBhIFN5bWJvbCB2YWx1ZSB0byBhIHN0cmluZyIpO3JldHVybiBocih0KX0sZnI9em4scHI9Y3IsZHI9SSx2cj1pLlJhbmdlRXJyb3IsZ3I9ZnVuY3Rpb24odCl7dmFyIGU9cHIoZHIodGhpcykpLG49IiIsaT1mcih0KTtpZihpPDB8fGk9PTEvMCl0aHJvdyB2cigiV3JvbmcgbnVtYmVyIG9mIHJlcGV0aXRpb25zIik7Zm9yKDtpPjA7KGk+Pj49MSkmJihlKz1lKSkxJmkmJihuKz1lKTtyZXR1cm4gbn07Umkoe3RhcmdldDoiU3RyaW5nIixwcm90bzohMH0se3JlcGVhdDpncn0pO3ZhciBrcj1DLHlyPUtuLG1yPWNyLGJyPUksX3I9a3IoZ3IpLEFyPWtyKCIiLnNsaWNlKSxDcj1NYXRoLmNlaWwsRXI9ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKGUsbixpKXt2YXIgcix1LHM9bXIoYnIoZSkpLGE9eXIobiksbz1zLmxlbmd0aCxsPXZvaWQgMD09PWk\/IiAiOm1yKGkpO3JldHVybiBhPD1vfHwiIj09bD9zOigodT1fcihsLENyKChyPWEtbykvbC5sZW5ndGgpKSkubGVuZ3RoPnImJih1PUFyKHUsMCxyKSksdD9zK3U6dStzKX19LEZyPXtzdGFydDpFcighMSksZW5kOkVyKCEwKX0sU3I9L1ZlcnNpb25cLzEwKD86XC5cZCspezEsMn0oPzogW1x3Li9dKyk\/KD86IE1vYmlsZVwvXHcrKT8gU2FmYXJpXC8vLnRlc3QoRyksd3I9RnIuc3RhcnQ7Umkoe3RhcmdldDoiU3RyaW5nIixwcm90bzohMCxmb3JjZWQ6U3J9LHtwYWRTdGFydDpmdW5jdGlvbih0KXtyZXR1cm4gd3IodGhpcyx0LGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwKX19KTt2YXIgQnI9RnIuZW5kO2Z1bmN0aW9uIERyKHQpe3JldHVybiBEcj0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbih0KXtyZXR1cm4gdHlwZW9mIHR9OmZ1bmN0aW9uKHQpe3JldHVybiB0JiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZ0LmNvbnN0cnVjdG9yPT09U3ltYm9sJiZ0IT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgdH0sRHIodCl9ZnVuY3Rpb24geHIodCxlKXtpZighKHQgaW5zdGFuY2VvZiBlKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX1mdW5jdGlvbiBNcih0LGUpe2Zvcih2YXIgbj0wO248ZS5sZW5ndGg7bisrKXt2YXIgaT1lW25dO2kuZW51bWVyYWJsZT1pLmVudW1lcmFibGV8fCExLGkuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiBpJiYoaS53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsaS5rZXksaSl9fWZ1bmN0aW9uIE9yKHQsZSxuKXtyZXR1cm4gZSYmTXIodC5wcm90b3R5cGUsZSksbiYmTXIodCxuKSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSx0fWZ1bmN0aW9uIFByKHQsZSl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGUmJm51bGwhPT1lKXRocm93IG5ldyBUeXBlRXJyb3IoIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uIik7dC5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShlJiZlLnByb3RvdHlwZSx7Y29uc3RydWN0b3I6e3ZhbHVlOnQsd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLGUmJklyKHQsZSl9ZnVuY3Rpb24gVHIodCl7cmV0dXJuIFRyPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3QuZ2V0UHJvdG90eXBlT2Y6ZnVuY3Rpb24odCl7cmV0dXJuIHQuX19wcm90b19ffHxPYmplY3QuZ2V0UHJvdG90eXBlT2YodCl9LFRyKHQpfWZ1bmN0aW9uIElyKHQsZSl7cmV0dXJuIElyPU9iamVjdC5zZXRQcm90b3R5cGVPZnx8ZnVuY3Rpb24odCxlKXtyZXR1cm4gdC5fX3Byb3RvX189ZSx0fSxJcih0LGUpfWZ1bmN0aW9uIGpyKHQsZSl7aWYobnVsbD09dClyZXR1cm57fTt2YXIgbixpLHI9ZnVuY3Rpb24odCxlKXtpZihudWxsPT10KXJldHVybnt9O3ZhciBuLGkscj17fSx1PU9iamVjdC5rZXlzKHQpO2ZvcihpPTA7aTx1Lmxlbmd0aDtpKyspbj11W2ldLGUuaW5kZXhPZihuKT49MHx8KHJbbl09dFtuXSk7cmV0dXJuIHJ9KHQsZSk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIHU9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyh0KTtmb3IoaT0wO2k8dS5sZW5ndGg7aSsrKW49dVtpXSxlLmluZGV4T2Yobik+PTB8fE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbCh0LG4pJiYocltuXT10W25dKX1yZXR1cm4gcn1mdW5jdGlvbiBScih0LGUpe2lmKGUmJigib2JqZWN0Ij09dHlwZW9mIGV8fCJmdW5jdGlvbiI9PXR5cGVvZiBlKSlyZXR1cm4gZTtpZih2b2lkIDAhPT1lKXRocm93IG5ldyBUeXBlRXJyb3IoIkRlcml2ZWQgY29uc3RydWN0b3JzIG1heSBvbmx5IHJldHVybiBvYmplY3Qgb3IgdW5kZWZpbmVkIik7cmV0dXJuIGZ1bmN0aW9uKHQpe2lmKHZvaWQgMD09PXQpdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWQiKTtyZXR1cm4gdH0odCl9ZnVuY3Rpb24gVnIodCl7dmFyIGU9ZnVuY3Rpb24oKXtpZigidW5kZWZpbmVkIj09dHlwZW9mIFJlZmxlY3R8fCFSZWZsZWN0LmNvbnN0cnVjdClyZXR1cm4hMTtpZihSZWZsZWN0LmNvbnN0cnVjdC5zaGFtKXJldHVybiExO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBQcm94eSlyZXR1cm4hMDt0cnl7cmV0dXJuIEJvb2xlYW4ucHJvdG90eXBlLnZhbHVlT2YuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChCb29sZWFuLFtdLChmdW5jdGlvbigpe30pKSksITB9Y2F0Y2godCl7cmV0dXJuITF9fSgpO3JldHVybiBmdW5jdGlvbigpe3ZhciBuLGk9VHIodCk7aWYoZSl7dmFyIHI9VHIodGhpcykuY29uc3RydWN0b3I7bj1SZWZsZWN0LmNvbnN0cnVjdChpLGFyZ3VtZW50cyxyKX1lbHNlIG49aS5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIFJyKHRoaXMsbil9fWZ1bmN0aW9uIExyKHQsZSl7Zm9yKDshT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQsZSkmJm51bGwhPT0odD1Ucih0KSk7KTtyZXR1cm4gdH1mdW5jdGlvbiBOcigpe3JldHVybiBOcj0idW5kZWZpbmVkIiE9dHlwZW9mIFJlZmxlY3QmJlJlZmxlY3QuZ2V0P1JlZmxlY3QuZ2V0OmZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1Mcih0LGUpO2lmKGkpe3ZhciByPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoaSxlKTtyZXR1cm4gci5nZXQ\/ci5nZXQuY2FsbChhcmd1bWVudHMubGVuZ3RoPDM\/dDpuKTpyLnZhbHVlfX0sTnIuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIFVyKHQsZSxuLGkpe3JldHVybiBVcj0idW5kZWZpbmVkIiE9dHlwZW9mIFJlZmxlY3QmJlJlZmxlY3Quc2V0P1JlZmxlY3Quc2V0OmZ1bmN0aW9uKHQsZSxuLGkpe3ZhciByLHU9THIodCxlKTtpZih1KXtpZigocj1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHUsZSkpLnNldClyZXR1cm4gci5zZXQuY2FsbChpLG4pLCEwO2lmKCFyLndyaXRhYmxlKXJldHVybiExfWlmKHI9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihpLGUpKXtpZighci53cml0YWJsZSlyZXR1cm4hMTtyLnZhbHVlPW4sT2JqZWN0LmRlZmluZVByb3BlcnR5KGksZSxyKX1lbHNlIWZ1bmN0aW9uKHQsZSxuKXtlIGluIHQ\/T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsZSx7dmFsdWU6bixlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOnRbZV09bn0oaSxlLG4pO3JldHVybiEwfSxVcih0LGUsbixpKX1mdW5jdGlvbiB6cih0LGUsbixpLHIpe2lmKCFVcih0LGUsbixpfHx0KSYmcil0aHJvdyBuZXcgRXJyb3IoImZhaWxlZCB0byBzZXQgcHJvcGVydHkiKTtyZXR1cm4gbn1mdW5jdGlvbiBxcih0LGUpe3JldHVybiBmdW5jdGlvbih0KXtpZihBcnJheS5pc0FycmF5KHQpKXJldHVybiB0fSh0KXx8ZnVuY3Rpb24odCxlKXt2YXIgbj1udWxsPT10P251bGw6InVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJnRbU3ltYm9sLml0ZXJhdG9yXXx8dFsiQEBpdGVyYXRvciJdO2lmKG51bGw9PW4pcmV0dXJuO3ZhciBpLHIsdT1bXSxzPSEwLGE9ITE7dHJ5e2ZvcihuPW4uY2FsbCh0KTshKHM9KGk9bi5uZXh0KCkpLmRvbmUpJiYodS5wdXNoKGkudmFsdWUpLCFlfHx1Lmxlbmd0aCE9PWUpO3M9ITApO31jYXRjaCh0KXthPSEwLHI9dH1maW5hbGx5e3RyeXtzfHxudWxsPT1uLnJldHVybnx8bi5yZXR1cm4oKX1maW5hbGx5e2lmKGEpdGhyb3cgcn19cmV0dXJuIHV9KHQsZSl8fGZ1bmN0aW9uKHQsZSl7aWYoIXQpcmV0dXJuO2lmKCJzdHJpbmciPT10eXBlb2YgdClyZXR1cm4gSHIodCxlKTt2YXIgbj1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodCkuc2xpY2UoOCwtMSk7Ik9iamVjdCI9PT1uJiZ0LmNvbnN0cnVjdG9yJiYobj10LmNvbnN0cnVjdG9yLm5hbWUpO2lmKCJNYXAiPT09bnx8IlNldCI9PT1uKXJldHVybiBBcnJheS5mcm9tKHQpO2lmKCJBcmd1bWVudHMiPT09bnx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QobikpcmV0dXJuIEhyKHQsZSl9KHQsZSl8fGZ1bmN0aW9uKCl7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC4iKX0oKX1mdW5jdGlvbiBIcih0LGUpeyhudWxsPT1lfHxlPnQubGVuZ3RoKSYmKGU9dC5sZW5ndGgpO2Zvcih2YXIgbj0wLGk9bmV3IEFycmF5KGUpO248ZTtuKyspaVtuXT10W25dO3JldHVybiBpfVJpKHt0YXJnZXQ6IlN0cmluZyIscHJvdG86ITAsZm9yY2VkOlNyfSx7cGFkRW5kOmZ1bmN0aW9uKHQpe3JldHVybiBCcih0aGlzLHQsYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDApfX0pLFJpKHtnbG9iYWw6ITB9LHtnbG9iYWxUaGlzOml9KTt2YXIgWXI9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KGUpe3hyKHRoaXMsdCksT2JqZWN0LmFzc2lnbih0aGlzLHtpbnNlcnRlZDoiIixyYXdJbnNlcnRlZDoiIixza2lwOiExLHRhaWxTaGlmdDowfSxlKX1yZXR1cm4gT3IodCxbe2tleToiYWdncmVnYXRlIix2YWx1ZTpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5yYXdJbnNlcnRlZCs9dC5yYXdJbnNlcnRlZCx0aGlzLnNraXA9dGhpcy5za2lwfHx0LnNraXAsdGhpcy5pbnNlcnRlZCs9dC5pbnNlcnRlZCx0aGlzLnRhaWxTaGlmdCs9dC50YWlsU2hpZnQsdGhpc319LHtrZXk6Im9mZnNldCIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudGFpbFNoaWZ0K3RoaXMuaW5zZXJ0ZWQubGVuZ3RofX1dKSx0fSgpO2Z1bmN0aW9uIFpyKHQpe3JldHVybiJzdHJpbmciPT10eXBlb2YgdHx8dCBpbnN0YW5jZW9mIFN0cmluZ312YXIgR3I9Ik5PTkUiLEtyPSJMRUZUIiwkcj0iRk9SQ0VfTEVGVCIsV3I9IlJJR0hUIixYcj0iRk9SQ0VfUklHSFQiO2Z1bmN0aW9uIEpyKHQpe3JldHVybiB0LnJlcGxhY2UoLyhbLiorP149IToke30oKXxbXF1cL1xcXSkvZywiXFwkMSIpfWZ1bmN0aW9uIFFyKHQpe3JldHVybiBBcnJheS5pc0FycmF5KHQpP3Q6W3QsbmV3IFlyXX1mdW5jdGlvbiB0dSh0LGUpe2lmKGU9PT10KXJldHVybiEwO3ZhciBuLGk9QXJyYXkuaXNBcnJheShlKSxyPUFycmF5LmlzQXJyYXkodCk7aWYoaSYmcil7aWYoZS5sZW5ndGghPXQubGVuZ3RoKXJldHVybiExO2ZvcihuPTA7bjxlLmxlbmd0aDtuKyspaWYoIXR1KGVbbl0sdFtuXSkpcmV0dXJuITE7cmV0dXJuITB9aWYoaSE9cilyZXR1cm4hMTtpZihlJiZ0JiYib2JqZWN0Ij09PURyKGUpJiYib2JqZWN0Ij09PURyKHQpKXt2YXIgdT1lIGluc3RhbmNlb2YgRGF0ZSxzPXQgaW5zdGFuY2VvZiBEYXRlO2lmKHUmJnMpcmV0dXJuIGUuZ2V0VGltZSgpPT10LmdldFRpbWUoKTtpZih1IT1zKXJldHVybiExO3ZhciBhPWUgaW5zdGFuY2VvZiBSZWdFeHAsbz10IGluc3RhbmNlb2YgUmVnRXhwO2lmKGEmJm8pcmV0dXJuIGUudG9TdHJpbmcoKT09dC50b1N0cmluZygpO2lmKGEhPW8pcmV0dXJuITE7dmFyIGw9T2JqZWN0LmtleXMoZSk7Zm9yKG49MDtuPGwubGVuZ3RoO24rKylpZighT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQsbFtuXSkpcmV0dXJuITE7Zm9yKG49MDtuPGwubGVuZ3RoO24rKylpZighdHUodFtsW25dXSxlW2xbbl1dKSlyZXR1cm4hMTtyZXR1cm4hMH1yZXR1cm4hKCFlfHwhdHx8ImZ1bmN0aW9uIiE9dHlwZW9mIGV8fCJmdW5jdGlvbiIhPXR5cGVvZiB0KSYmZS50b1N0cmluZygpPT09dC50b1N0cmluZygpfXZhciBldT1mdW5jdGlvbigpe2Z1bmN0aW9uIHQoZSxuLGkscil7Zm9yKHhyKHRoaXMsdCksdGhpcy52YWx1ZT1lLHRoaXMuY3Vyc29yUG9zPW4sdGhpcy5vbGRWYWx1ZT1pLHRoaXMub2xkU2VsZWN0aW9uPXI7dGhpcy52YWx1ZS5zbGljZSgwLHRoaXMuc3RhcnRDaGFuZ2VQb3MpIT09dGhpcy5vbGRWYWx1ZS5zbGljZSgwLHRoaXMuc3RhcnRDaGFuZ2VQb3MpOyktLXRoaXMub2xkU2VsZWN0aW9uLnN0YXJ0fXJldHVybiBPcih0LFt7a2V5OiJzdGFydENoYW5nZVBvcyIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIE1hdGgubWluKHRoaXMuY3Vyc29yUG9zLHRoaXMub2xkU2VsZWN0aW9uLnN0YXJ0KX19LHtrZXk6Imluc2VydGVkQ291bnQiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmN1cnNvclBvcy10aGlzLnN0YXJ0Q2hhbmdlUG9zfX0se2tleToiaW5zZXJ0ZWQiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnZhbHVlLnN1YnN0cih0aGlzLnN0YXJ0Q2hhbmdlUG9zLHRoaXMuaW5zZXJ0ZWRDb3VudCl9fSx7a2V5OiJyZW1vdmVkQ291bnQiLGdldDpmdW5jdGlvbigpe3JldHVybiBNYXRoLm1heCh0aGlzLm9sZFNlbGVjdGlvbi5lbmQtdGhpcy5zdGFydENoYW5nZVBvc3x8dGhpcy5vbGRWYWx1ZS5sZW5ndGgtdGhpcy52YWx1ZS5sZW5ndGgsMCl9fSx7a2V5OiJyZW1vdmVkIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5vbGRWYWx1ZS5zdWJzdHIodGhpcy5zdGFydENoYW5nZVBvcyx0aGlzLnJlbW92ZWRDb3VudCl9fSx7a2V5OiJoZWFkIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy52YWx1ZS5zdWJzdHJpbmcoMCx0aGlzLnN0YXJ0Q2hhbmdlUG9zKX19LHtrZXk6InRhaWwiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnZhbHVlLnN1YnN0cmluZyh0aGlzLnN0YXJ0Q2hhbmdlUG9zK3RoaXMuaW5zZXJ0ZWRDb3VudCl9fSx7a2V5OiJyZW1vdmVEaXJlY3Rpb24iLGdldDpmdW5jdGlvbigpe3JldHVybiF0aGlzLnJlbW92ZWRDb3VudHx8dGhpcy5pbnNlcnRlZENvdW50P0dyOnRoaXMub2xkU2VsZWN0aW9uLmVuZCE9PXRoaXMuY3Vyc29yUG9zJiZ0aGlzLm9sZFNlbGVjdGlvbi5zdGFydCE9PXRoaXMuY3Vyc29yUG9zfHx0aGlzLm9sZFNlbGVjdGlvbi5lbmQhPT10aGlzLm9sZFNlbGVjdGlvbi5zdGFydD9LcjpXcn19XSksdH0oKSxudT1mdW5jdGlvbigpe2Z1bmN0aW9uIHQoKXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06IiIsbj1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06MCxpPWFyZ3VtZW50cy5sZW5ndGg+Mj9hcmd1bWVudHNbMl06dm9pZCAwO3hyKHRoaXMsdCksdGhpcy52YWx1ZT1lLHRoaXMuZnJvbT1uLHRoaXMuc3RvcD1pfXJldHVybiBPcih0LFt7a2V5OiJ0b1N0cmluZyIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy52YWx1ZX19LHtrZXk6ImV4dGVuZCIsdmFsdWU6ZnVuY3Rpb24odCl7dGhpcy52YWx1ZSs9U3RyaW5nKHQpfX0se2tleToiYXBwZW5kVG8iLHZhbHVlOmZ1bmN0aW9uKHQpe3JldHVybiB0LmFwcGVuZCh0aGlzLnRvU3RyaW5nKCkse3RhaWw6ITB9KS5hZ2dyZWdhdGUodC5fYXBwZW5kUGxhY2Vob2xkZXIoKSl9fSx7a2V5OiJzdGF0ZSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJue3ZhbHVlOnRoaXMudmFsdWUsZnJvbTp0aGlzLmZyb20sc3RvcDp0aGlzLnN0b3B9fSxzZXQ6ZnVuY3Rpb24odCl7T2JqZWN0LmFzc2lnbih0aGlzLHQpfX0se2tleToidW5zaGlmdCIsdmFsdWU6ZnVuY3Rpb24odCl7aWYoIXRoaXMudmFsdWUubGVuZ3RofHxudWxsIT10JiZ0aGlzLmZyb20+PXQpcmV0dXJuIiI7dmFyIGU9dGhpcy52YWx1ZVswXTtyZXR1cm4gdGhpcy52YWx1ZT10aGlzLnZhbHVlLnNsaWNlKDEpLGV9fSx7a2V5OiJzaGlmdCIsdmFsdWU6ZnVuY3Rpb24oKXtpZighdGhpcy52YWx1ZS5sZW5ndGgpcmV0dXJuIiI7dmFyIHQ9dGhpcy52YWx1ZVt0aGlzLnZhbHVlLmxlbmd0aC0xXTtyZXR1cm4gdGhpcy52YWx1ZT10aGlzLnZhbHVlLnNsaWNlKDAsLTEpLHR9fV0pLHR9KCk7ZnVuY3Rpb24gaXUodCl7dmFyIGU9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0\/YXJndW1lbnRzWzFdOnt9O3JldHVybiBuZXcgaXUuSW5wdXRNYXNrKHQsZSl9dmFyIHJ1PWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdChlKXt4cih0aGlzLHQpLHRoaXMuX3ZhbHVlPSIiLHRoaXMuX3VwZGF0ZShPYmplY3QuYXNzaWduKHt9LHQuREVGQVVMVFMsZSkpLHRoaXMuaXNJbml0aWFsaXplZD0hMH1yZXR1cm4gT3IodCxbe2tleToidXBkYXRlT3B0aW9ucyIsdmFsdWU6ZnVuY3Rpb24odCl7T2JqZWN0LmtleXModCkubGVuZ3RoJiZ0aGlzLndpdGhWYWx1ZVJlZnJlc2godGhpcy5fdXBkYXRlLmJpbmQodGhpcyx0KSl9fSx7a2V5OiJfdXBkYXRlIix2YWx1ZTpmdW5jdGlvbih0KXtPYmplY3QuYXNzaWduKHRoaXMsdCl9fSx7a2V5OiJzdGF0ZSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJue192YWx1ZTp0aGlzLnZhbHVlfX0sc2V0OmZ1bmN0aW9uKHQpe3RoaXMuX3ZhbHVlPXQuX3ZhbHVlfX0se2tleToicmVzZXQiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5fdmFsdWU9IiJ9fSx7a2V5OiJ2YWx1ZSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3ZhbHVlfSxzZXQ6ZnVuY3Rpb24odCl7dGhpcy5yZXNvbHZlKHQpfX0se2tleToicmVzb2x2ZSIsdmFsdWU6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMucmVzZXQoKSx0aGlzLmFwcGVuZCh0LHtpbnB1dDohMH0sIiIpLHRoaXMuZG9Db21taXQoKSx0aGlzLnZhbHVlfX0se2tleToidW5tYXNrZWRWYWx1ZSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudmFsdWV9LHNldDpmdW5jdGlvbih0KXt0aGlzLnJlc2V0KCksdGhpcy5hcHBlbmQodCx7fSwiIiksdGhpcy5kb0NvbW1pdCgpfX0se2tleToidHlwZWRWYWx1ZSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZG9QYXJzZSh0aGlzLnZhbHVlKX0sc2V0OmZ1bmN0aW9uKHQpe3RoaXMudmFsdWU9dGhpcy5kb0Zvcm1hdCh0KX19LHtrZXk6InJhd0lucHV0VmFsdWUiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmV4dHJhY3RJbnB1dCgwLHRoaXMudmFsdWUubGVuZ3RoLHtyYXc6ITB9KX0sc2V0OmZ1bmN0aW9uKHQpe3RoaXMucmVzZXQoKSx0aGlzLmFwcGVuZCh0LHtyYXc6ITB9LCIiKSx0aGlzLmRvQ29tbWl0KCl9fSx7a2V5OiJpc0NvbXBsZXRlIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4hMH19LHtrZXk6ImlzRmlsbGVkIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pc0NvbXBsZXRlfX0se2tleToibmVhcmVzdElucHV0UG9zIix2YWx1ZTpmdW5jdGlvbih0LGUpe3JldHVybiB0fX0se2tleToiZXh0cmFjdElucHV0Iix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTowLGU9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0\/YXJndW1lbnRzWzFdOnRoaXMudmFsdWUubGVuZ3RoO3JldHVybiB0aGlzLnZhbHVlLnNsaWNlKHQsZSl9fSx7a2V5OiJleHRyYWN0VGFpbCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06MCxlPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp0aGlzLnZhbHVlLmxlbmd0aDtyZXR1cm4gbmV3IG51KHRoaXMuZXh0cmFjdElucHV0KHQsZSksdCl9fSx7a2V5OiJhcHBlbmRUYWlsIix2YWx1ZTpmdW5jdGlvbih0KXtyZXR1cm4gWnIodCkmJih0PW5ldyBudShTdHJpbmcodCkpKSx0LmFwcGVuZFRvKHRoaXMpfX0se2tleToiX2FwcGVuZENoYXJSYXciLHZhbHVlOmZ1bmN0aW9uKHQpe3JldHVybiB0Pyh0aGlzLl92YWx1ZSs9dCxuZXcgWXIoe2luc2VydGVkOnQscmF3SW5zZXJ0ZWQ6dH0pKTpuZXcgWXJ9fSx7a2V5OiJfYXBwZW5kQ2hhciIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGUsbj1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06e30saT1hcmd1bWVudHMubGVuZ3RoPjI\/YXJndW1lbnRzWzJdOnZvaWQgMCxyPXRoaXMuc3RhdGUsdT1Rcih0aGlzLmRvUHJlcGFyZSh0LG4pKSxzPXFyKHUsMik7aWYodD1zWzBdLChlPShlPXNbMV0pLmFnZ3JlZ2F0ZSh0aGlzLl9hcHBlbmRDaGFyUmF3KHQsbikpKS5pbnNlcnRlZCl7dmFyIGEsbz0hMSE9PXRoaXMuZG9WYWxpZGF0ZShuKTtpZihvJiZudWxsIT1pKXt2YXIgbD10aGlzLnN0YXRlOyEwPT09dGhpcy5vdmVyd3JpdGUmJihhPWkuc3RhdGUsaS51bnNoaWZ0KHRoaXMudmFsdWUubGVuZ3RoKSk7dmFyIGg9dGhpcy5hcHBlbmRUYWlsKGkpOyhvPWgucmF3SW5zZXJ0ZWQ9PT1pLnRvU3RyaW5nKCkpJiZoLmluc2VydGVkfHwic2hpZnQiIT09dGhpcy5vdmVyd3JpdGV8fCh0aGlzLnN0YXRlPWwsYT1pLnN0YXRlLGkuc2hpZnQoKSxvPShoPXRoaXMuYXBwZW5kVGFpbChpKSkucmF3SW5zZXJ0ZWQ9PT1pLnRvU3RyaW5nKCkpLG8mJmguaW5zZXJ0ZWQmJih0aGlzLnN0YXRlPWwpfW98fChlPW5ldyBZcix0aGlzLnN0YXRlPXIsaSYmYSYmKGkuc3RhdGU9YSkpfXJldHVybiBlfX0se2tleToiX2FwcGVuZFBsYWNlaG9sZGVyIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiBuZXcgWXJ9fSx7a2V5OiJfYXBwZW5kRWFnZXIiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBZcn19LHtrZXk6ImFwcGVuZCIsdmFsdWU6ZnVuY3Rpb24odCxlLG4pe2lmKCFacih0KSl0aHJvdyBuZXcgRXJyb3IoInZhbHVlIHNob3VsZCBiZSBzdHJpbmciKTt2YXIgaT1uZXcgWXIscj1acihuKT9uZXcgbnUoU3RyaW5nKG4pKTpuO2UmJmUudGFpbCYmKGUuX2JlZm9yZVRhaWxTdGF0ZT10aGlzLnN0YXRlKTtmb3IodmFyIHU9MDt1PHQubGVuZ3RoOysrdSlpLmFnZ3JlZ2F0ZSh0aGlzLl9hcHBlbmRDaGFyKHRbdV0sZSxyKSk7cmV0dXJuIG51bGwhPXImJihpLnRhaWxTaGlmdCs9dGhpcy5hcHBlbmRUYWlsKHIpLnRhaWxTaGlmdCksdGhpcy5lYWdlciYmbnVsbCE9ZSYmZS5pbnB1dCYmdCYmaS5hZ2dyZWdhdGUodGhpcy5fYXBwZW5kRWFnZXIoKSksaX19LHtrZXk6InJlbW92ZSIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06MCxlPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp0aGlzLnZhbHVlLmxlbmd0aDtyZXR1cm4gdGhpcy5fdmFsdWU9dGhpcy52YWx1ZS5zbGljZSgwLHQpK3RoaXMudmFsdWUuc2xpY2UoZSksbmV3IFlyfX0se2tleToid2l0aFZhbHVlUmVmcmVzaCIsdmFsdWU6ZnVuY3Rpb24odCl7aWYodGhpcy5fcmVmcmVzaGluZ3x8IXRoaXMuaXNJbml0aWFsaXplZClyZXR1cm4gdCgpO3RoaXMuX3JlZnJlc2hpbmc9ITA7dmFyIGU9dGhpcy5yYXdJbnB1dFZhbHVlLG49dGhpcy52YWx1ZSxpPXQoKTtyZXR1cm4gdGhpcy5yYXdJbnB1dFZhbHVlPWUsdGhpcy52YWx1ZSYmdGhpcy52YWx1ZSE9PW4mJjA9PT1uLmluZGV4T2YodGhpcy52YWx1ZSkmJnRoaXMuYXBwZW5kKG4uc2xpY2UodGhpcy52YWx1ZS5sZW5ndGgpLHt9LCIiKSxkZWxldGUgdGhpcy5fcmVmcmVzaGluZyxpfX0se2tleToicnVuSXNvbGF0ZWQiLHZhbHVlOmZ1bmN0aW9uKHQpe2lmKHRoaXMuX2lzb2xhdGVkfHwhdGhpcy5pc0luaXRpYWxpemVkKXJldHVybiB0KHRoaXMpO3RoaXMuX2lzb2xhdGVkPSEwO3ZhciBlPXRoaXMuc3RhdGUsbj10KHRoaXMpO3JldHVybiB0aGlzLnN0YXRlPWUsZGVsZXRlIHRoaXMuX2lzb2xhdGVkLG59fSx7a2V5OiJkb1ByZXBhcmUiLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp7fTtyZXR1cm4gdGhpcy5wcmVwYXJlP3RoaXMucHJlcGFyZSh0LHRoaXMsZSk6dH19LHtrZXk6ImRvVmFsaWRhdGUiLHZhbHVlOmZ1bmN0aW9uKHQpe3JldHVybighdGhpcy52YWxpZGF0ZXx8dGhpcy52YWxpZGF0ZSh0aGlzLnZhbHVlLHRoaXMsdCkpJiYoIXRoaXMucGFyZW50fHx0aGlzLnBhcmVudC5kb1ZhbGlkYXRlKHQpKX19LHtrZXk6ImRvQ29tbWl0Iix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuY29tbWl0JiZ0aGlzLmNvbW1pdCh0aGlzLnZhbHVlLHRoaXMpfX0se2tleToiZG9Gb3JtYXQiLHZhbHVlOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmZvcm1hdD90aGlzLmZvcm1hdCh0LHRoaXMpOnR9fSx7a2V5OiJkb1BhcnNlIix2YWx1ZTpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5wYXJzZT90aGlzLnBhcnNlKHQsdGhpcyk6dH19LHtrZXk6InNwbGljZSIsdmFsdWU6ZnVuY3Rpb24odCxlLG4saSl7dmFyIHIsdT10K2Uscz10aGlzLmV4dHJhY3RUYWlsKHUpO3RoaXMuZWFnZXImJihpPWZ1bmN0aW9uKHQpe3N3aXRjaCh0KXtjYXNlIEtyOnJldHVybiAkcjtjYXNlIFdyOnJldHVybiBYcjtkZWZhdWx0OnJldHVybiB0fX0oaSkscj10aGlzLmV4dHJhY3RJbnB1dCgwLHUse3JhdzohMH0pKTt2YXIgYT10aGlzLm5lYXJlc3RJbnB1dFBvcyh0LGU+MSYmMCE9PXQmJiF0aGlzLmVhZ2VyP0dyOmkpLG89bmV3IFlyKHt0YWlsU2hpZnQ6YS10fSkuYWdncmVnYXRlKHRoaXMucmVtb3ZlKGEpKTtpZih0aGlzLmVhZ2VyJiZpIT09R3ImJnI9PT10aGlzLnJhd0lucHV0VmFsdWUpaWYoaT09PSRyKWZvcih2YXIgbDtyPT09dGhpcy5yYXdJbnB1dFZhbHVlJiYobD10aGlzLnZhbHVlLmxlbmd0aCk7KW8uYWdncmVnYXRlKG5ldyBZcih7dGFpbFNoaWZ0Oi0xfSkpLmFnZ3JlZ2F0ZSh0aGlzLnJlbW92ZShsLTEpKTtlbHNlIGk9PT1YciYmcy51bnNoaWZ0KCk7cmV0dXJuIG8uYWdncmVnYXRlKHRoaXMuYXBwZW5kKG4se2lucHV0OiEwfSxzKSl9fSx7a2V5OiJtYXNrRXF1YWxzIix2YWx1ZTpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5tYXNrPT09dH19XSksdH0oKTtmdW5jdGlvbiB1dSh0KXtpZihudWxsPT10KXRocm93IG5ldyBFcnJvcigibWFzayBwcm9wZXJ0eSBzaG91bGQgYmUgZGVmaW5lZCIpO3JldHVybiB0IGluc3RhbmNlb2YgUmVnRXhwP2l1Lk1hc2tlZFJlZ0V4cDpacih0KT9pdS5NYXNrZWRQYXR0ZXJuOnQgaW5zdGFuY2VvZiBEYXRlfHx0PT09RGF0ZT9pdS5NYXNrZWREYXRlOnQgaW5zdGFuY2VvZiBOdW1iZXJ8fCJudW1iZXIiPT10eXBlb2YgdHx8dD09PU51bWJlcj9pdS5NYXNrZWROdW1iZXI6QXJyYXkuaXNBcnJheSh0KXx8dD09PUFycmF5P2l1Lk1hc2tlZER5bmFtaWM6aXUuTWFza2VkJiZ0LnByb3RvdHlwZSBpbnN0YW5jZW9mIGl1Lk1hc2tlZD90OnQgaW5zdGFuY2VvZiBpdS5NYXNrZWQ\/dC5jb25zdHJ1Y3Rvcjp0IGluc3RhbmNlb2YgRnVuY3Rpb24\/aXUuTWFza2VkRnVuY3Rpb246KGNvbnNvbGUud2FybigiTWFzayBub3QgZm91bmQgZm9yIG1hc2siLHQpLGl1Lk1hc2tlZCl9ZnVuY3Rpb24gc3UodCl7aWYoaXUuTWFza2VkJiZ0IGluc3RhbmNlb2YgaXUuTWFza2VkKXJldHVybiB0O3ZhciBlPSh0PU9iamVjdC5hc3NpZ24oe30sdCkpLm1hc2s7aWYoaXUuTWFza2VkJiZlIGluc3RhbmNlb2YgaXUuTWFza2VkKXJldHVybiBlO3ZhciBuPXV1KGUpO2lmKCFuKXRocm93IG5ldyBFcnJvcigiTWFza2VkIGNsYXNzIGlzIG5vdCBmb3VuZCBmb3IgcHJvdmlkZWQgbWFzaywgYXBwcm9wcmlhdGUgbW9kdWxlIG5lZWRzIHRvIGJlIGltcG9ydCBtYW51YWxseSBiZWZvcmUgY3JlYXRpbmcgbWFzay4iKTtyZXR1cm4gbmV3IG4odCl9cnUuREVGQVVMVFM9e2Zvcm1hdDpmdW5jdGlvbih0KXtyZXR1cm4gdH0scGFyc2U6ZnVuY3Rpb24odCl7cmV0dXJuIHR9fSxpdS5NYXNrZWQ9cnUsaXUuY3JlYXRlTWFzaz1zdTt2YXIgYXU9WyJtYXNrIl0sb3U9ezA6L1xkLyxhOi9bXHUwMDQxLVx1MDA1QVx1MDA2MS1cdTAwN0FcdTAwQUFcdTAwQjVcdTAwQkFcdTAwQzAtXHUwMEQ2XHUwMEQ4LVx1MDBGNlx1MDBGOC1cdTAyQzFcdTAyQzYtXHUwMkQxXHUwMkUwLVx1MDJFNFx1MDJFQ1x1MDJFRVx1MDM3MC1cdTAzNzRcdTAzNzZcdTAzNzdcdTAzN0EtXHUwMzdEXHUwMzg2XHUwMzg4LVx1MDM4QVx1MDM4Q1x1MDM4RS1cdTAzQTFcdTAzQTMtXHUwM0Y1XHUwM0Y3LVx1MDQ4MVx1MDQ4QS1cdTA1MjdcdTA1MzEtXHUwNTU2XHUwNTU5XHUwNTYxLVx1MDU4N1x1MDVEMC1cdTA1RUFcdTA1RjAtXHUwNUYyXHUwNjIwLVx1MDY0QVx1MDY2RVx1MDY2Rlx1MDY3MS1cdTA2RDNcdTA2RDVcdTA2RTVcdTA2RTZcdTA2RUVcdTA2RUZcdTA2RkEtXHUwNkZDXHUwNkZGXHUwNzEwXHUwNzEyLVx1MDcyRlx1MDc0RC1cdTA3QTVcdTA3QjFcdTA3Q0EtXHUwN0VBXHUwN0Y0XHUwN0Y1XHUwN0ZBXHUwODAwLVx1MDgxNVx1MDgxQVx1MDgyNFx1MDgyOFx1MDg0MC1cdTA4NThcdTA4QTBcdTA4QTItXHUwOEFDXHUwOTA0LVx1MDkzOVx1MDkzRFx1MDk1MFx1MDk1OC1cdTA5NjFcdTA5NzEtXHUwOTc3XHUwOTc5LVx1MDk3Rlx1MDk4NS1cdTA5OENcdTA5OEZcdTA5OTBcdTA5OTMtXHUwOUE4XHUwOUFBLVx1MDlCMFx1MDlCMlx1MDlCNi1cdTA5QjlcdTA5QkRcdTA5Q0VcdTA5RENcdTA5RERcdTA5REYtXHUwOUUxXHUwOUYwXHUwOUYxXHUwQTA1LVx1MEEwQVx1MEEwRlx1MEExMFx1MEExMy1cdTBBMjhcdTBBMkEtXHUwQTMwXHUwQTMyXHUwQTMzXHUwQTM1XHUwQTM2XHUwQTM4XHUwQTM5XHUwQTU5LVx1MEE1Q1x1MEE1RVx1MEE3Mi1cdTBBNzRcdTBBODUtXHUwQThEXHUwQThGLVx1MEE5MVx1MEE5My1cdTBBQThcdTBBQUEtXHUwQUIwXHUwQUIyXHUwQUIzXHUwQUI1LVx1MEFCOVx1MEFCRFx1MEFEMFx1MEFFMFx1MEFFMVx1MEIwNS1cdTBCMENcdTBCMEZcdTBCMTBcdTBCMTMtXHUwQjI4XHUwQjJBLVx1MEIzMFx1MEIzMlx1MEIzM1x1MEIzNS1cdTBCMzlcdTBCM0RcdTBCNUNcdTBCNURcdTBCNUYtXHUwQjYxXHUwQjcxXHUwQjgzXHUwQjg1LVx1MEI4QVx1MEI4RS1cdTBCOTBcdTBCOTItXHUwQjk1XHUwQjk5XHUwQjlBXHUwQjlDXHUwQjlFXHUwQjlGXHUwQkEzXHUwQkE0XHUwQkE4LVx1MEJBQVx1MEJBRS1cdTBCQjlcdTBCRDBcdTBDMDUtXHUwQzBDXHUwQzBFLVx1MEMxMFx1MEMxMi1cdTBDMjhcdTBDMkEtXHUwQzMzXHUwQzM1LVx1MEMzOVx1MEMzRFx1MEM1OFx1MEM1OVx1MEM2MFx1MEM2MVx1MEM4NS1cdTBDOENcdTBDOEUtXHUwQzkwXHUwQzkyLVx1MENBOFx1MENBQS1cdTBDQjNcdTBDQjUtXHUwQ0I5XHUwQ0JEXHUwQ0RFXHUwQ0UwXHUwQ0UxXHUwQ0YxXHUwQ0YyXHUwRDA1LVx1MEQwQ1x1MEQwRS1cdTBEMTBcdTBEMTItXHUwRDNBXHUwRDNEXHUwRDRFXHUwRDYwXHUwRDYxXHUwRDdBLVx1MEQ3Rlx1MEQ4NS1cdTBEOTZcdTBEOUEtXHUwREIxXHUwREIzLVx1MERCQlx1MERCRFx1MERDMC1cdTBEQzZcdTBFMDEtXHUwRTMwXHUwRTMyXHUwRTMzXHUwRTQwLVx1MEU0Nlx1MEU4MVx1MEU4Mlx1MEU4NFx1MEU4N1x1MEU4OFx1MEU4QVx1MEU4RFx1MEU5NC1cdTBFOTdcdTBFOTktXHUwRTlGXHUwRUExLVx1MEVBM1x1MEVBNVx1MEVBN1x1MEVBQVx1MEVBQlx1MEVBRC1cdTBFQjBcdTBFQjJcdTBFQjNcdTBFQkRcdTBFQzAtXHUwRUM0XHUwRUM2XHUwRURDLVx1MEVERlx1MEYwMFx1MEY0MC1cdTBGNDdcdTBGNDktXHUwRjZDXHUwRjg4LVx1MEY4Q1x1MTAwMC1cdTEwMkFcdTEwM0ZcdTEwNTAtXHUxMDU1XHUxMDVBLVx1MTA1RFx1MTA2MVx1MTA2NVx1MTA2Nlx1MTA2RS1cdTEwNzBcdTEwNzUtXHUxMDgxXHUxMDhFXHUxMEEwLVx1MTBDNVx1MTBDN1x1MTBDRFx1MTBEMC1cdTEwRkFcdTEwRkMtXHUxMjQ4XHUxMjRBLVx1MTI0RFx1MTI1MC1cdTEyNTZcdTEyNThcdTEyNUEtXHUxMjVEXHUxMjYwLVx1MTI4OFx1MTI4QS1cdTEyOERcdTEyOTAtXHUxMkIwXHUxMkIyLVx1MTJCNVx1MTJCOC1cdTEyQkVcdTEyQzBcdTEyQzItXHUxMkM1XHUxMkM4LVx1MTJENlx1MTJEOC1cdTEzMTBcdTEzMTItXHUxMzE1XHUxMzE4LVx1MTM1QVx1MTM4MC1cdTEzOEZcdTEzQTAtXHUxM0Y0XHUxNDAxLVx1MTY2Q1x1MTY2Ri1cdTE2N0ZcdTE2ODEtXHUxNjlBXHUxNkEwLVx1MTZFQVx1MTcwMC1cdTE3MENcdTE3MEUtXHUxNzExXHUxNzIwLVx1MTczMVx1MTc0MC1cdTE3NTFcdTE3NjAtXHUxNzZDXHUxNzZFLVx1MTc3MFx1MTc4MC1cdTE3QjNcdTE3RDdcdTE3RENcdTE4MjAtXHUxODc3XHUxODgwLVx1MThBOFx1MThBQVx1MThCMC1cdTE4RjVcdTE5MDAtXHUxOTFDXHUxOTUwLVx1MTk2RFx1MTk3MC1cdTE5NzRcdTE5ODAtXHUxOUFCXHUxOUMxLVx1MTlDN1x1MUEwMC1cdTFBMTZcdTFBMjAtXHUxQTU0XHUxQUE3XHUxQjA1LVx1MUIzM1x1MUI0NS1cdTFCNEJcdTFCODMtXHUxQkEwXHUxQkFFXHUxQkFGXHUxQkJBLVx1MUJFNVx1MUMwMC1cdTFDMjNcdTFDNEQtXHUxQzRGXHUxQzVBLVx1MUM3RFx1MUNFOS1cdTFDRUNcdTFDRUUtXHUxQ0YxXHUxQ0Y1XHUxQ0Y2XHUxRDAwLVx1MURCRlx1MUUwMC1cdTFGMTVcdTFGMTgtXHUxRjFEXHUxRjIwLVx1MUY0NVx1MUY0OC1cdTFGNERcdTFGNTAtXHUxRjU3XHUxRjU5XHUxRjVCXHUxRjVEXHUxRjVGLVx1MUY3RFx1MUY4MC1cdTFGQjRcdTFGQjYtXHUxRkJDXHUxRkJFXHUxRkMyLVx1MUZDNFx1MUZDNi1cdTFGQ0NcdTFGRDAtXHUxRkQzXHUxRkQ2LVx1MUZEQlx1MUZFMC1cdTFGRUNcdTFGRjItXHUxRkY0XHUxRkY2LVx1MUZGQ1x1MjA3MVx1MjA3Rlx1MjA5MC1cdTIwOUNcdTIxMDJcdTIxMDdcdTIxMEEtXHUyMTEzXHUyMTE1XHUyMTE5LVx1MjExRFx1MjEyNFx1MjEyNlx1MjEyOFx1MjEyQS1cdTIxMkRcdTIxMkYtXHUyMTM5XHUyMTNDLVx1MjEzRlx1MjE0NS1cdTIxNDlcdTIxNEVcdTIxODNcdTIxODRcdTJDMDAtXHUyQzJFXHUyQzMwLVx1MkM1RVx1MkM2MC1cdTJDRTRcdTJDRUItXHUyQ0VFXHUyQ0YyXHUyQ0YzXHUyRDAwLVx1MkQyNVx1MkQyN1x1MkQyRFx1MkQzMC1cdTJENjdcdTJENkZcdTJEODAtXHUyRDk2XHUyREEwLVx1MkRBNlx1MkRBOC1cdTJEQUVcdTJEQjAtXHUyREI2XHUyREI4LVx1MkRCRVx1MkRDMC1cdTJEQzZcdTJEQzgtXHUyRENFXHUyREQwLVx1MkRENlx1MkREOC1cdTJEREVcdTJFMkZcdTMwMDVcdTMwMDZcdTMwMzEtXHUzMDM1XHUzMDNCXHUzMDNDXHUzMDQxLVx1MzA5Nlx1MzA5RC1cdTMwOUZcdTMwQTEtXHUzMEZBXHUzMEZDLVx1MzBGRlx1MzEwNS1cdTMxMkRcdTMxMzEtXHUzMThFXHUzMUEwLVx1MzFCQVx1MzFGMC1cdTMxRkZcdTM0MDAtXHU0REI1XHU0RTAwLVx1OUZDQ1x1QTAwMC1cdUE0OENcdUE0RDAtXHVBNEZEXHVBNTAwLVx1QTYwQ1x1QTYxMC1cdUE2MUZcdUE2MkFcdUE2MkJcdUE2NDAtXHVBNjZFXHVBNjdGLVx1QTY5N1x1QTZBMC1cdUE2RTVcdUE3MTctXHVBNzFGXHVBNzIyLVx1QTc4OFx1QTc4Qi1cdUE3OEVcdUE3OTAtXHVBNzkzXHVBN0EwLVx1QTdBQVx1QTdGOC1cdUE4MDFcdUE4MDMtXHVBODA1XHVBODA3LVx1QTgwQVx1QTgwQy1cdUE4MjJcdUE4NDAtXHVBODczXHVBODgyLVx1QThCM1x1QThGMi1cdUE4RjdcdUE4RkJcdUE5MEEtXHVBOTI1XHVBOTMwLVx1QTk0Nlx1QTk2MC1cdUE5N0NcdUE5ODQtXHVBOUIyXHVBOUNGXHVBQTAwLVx1QUEyOFx1QUE0MC1cdUFBNDJcdUFBNDQtXHVBQTRCXHVBQTYwLVx1QUE3Nlx1QUE3QVx1QUE4MC1cdUFBQUZcdUFBQjFcdUFBQjVcdUFBQjZcdUFBQjktXHVBQUJEXHVBQUMwXHVBQUMyXHVBQURCLVx1QUFERFx1QUFFMC1cdUFBRUFcdUFBRjItXHVBQUY0XHVBQjAxLVx1QUIwNlx1QUIwOS1cdUFCMEVcdUFCMTEtXHVBQjE2XHVBQjIwLVx1QUIyNlx1QUIyOC1cdUFCMkVcdUFCQzAtXHVBQkUyXHVBQzAwLVx1RDdBM1x1RDdCMC1cdUQ3QzZcdUQ3Q0ItXHVEN0ZCXHVGOTAwLVx1RkE2RFx1RkE3MC1cdUZBRDlcdUZCMDAtXHVGQjA2XHVGQjEzLVx1RkIxN1x1RkIxRFx1RkIxRi1cdUZCMjhcdUZCMkEtXHVGQjM2XHVGQjM4LVx1RkIzQ1x1RkIzRVx1RkI0MFx1RkI0MVx1RkI0M1x1RkI0NFx1RkI0Ni1cdUZCQjFcdUZCRDMtXHVGRDNEXHVGRDUwLVx1RkQ4Rlx1RkQ5Mi1cdUZEQzdcdUZERjAtXHVGREZCXHVGRTcwLVx1RkU3NFx1RkU3Ni1cdUZFRkNcdUZGMjEtXHVGRjNBXHVGRjQxLVx1RkY1QVx1RkY2Ni1cdUZGQkVcdUZGQzItXHVGRkM3XHVGRkNBLVx1RkZDRlx1RkZEMi1cdUZGRDdcdUZGREEtXHVGRkRDXS8sIioiOi8uL30sbHU9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KGUpe3hyKHRoaXMsdCk7dmFyIG49ZS5tYXNrLGk9anIoZSxhdSk7dGhpcy5tYXNrZWQ9c3Uoe21hc2s6bn0pLE9iamVjdC5hc3NpZ24odGhpcyxpKX1yZXR1cm4gT3IodCxbe2tleToicmVzZXQiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5pc0ZpbGxlZD0hMSx0aGlzLm1hc2tlZC5yZXNldCgpfX0se2tleToicmVtb3ZlIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTowLGU9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0\/YXJndW1lbnRzWzFdOnRoaXMudmFsdWUubGVuZ3RoO3JldHVybiAwPT09dCYmZT49MT8odGhpcy5pc0ZpbGxlZD0hMSx0aGlzLm1hc2tlZC5yZW1vdmUodCxlKSk6bmV3IFlyfX0se2tleToidmFsdWUiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLm1hc2tlZC52YWx1ZXx8KHRoaXMuaXNGaWxsZWQmJiF0aGlzLmlzT3B0aW9uYWw\/dGhpcy5wbGFjZWhvbGRlckNoYXI6IiIpfX0se2tleToidW5tYXNrZWRWYWx1ZSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubWFza2VkLnVubWFza2VkVmFsdWV9fSx7a2V5OiJpc0NvbXBsZXRlIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gQm9vbGVhbih0aGlzLm1hc2tlZC52YWx1ZSl8fHRoaXMuaXNPcHRpb25hbH19LHtrZXk6Il9hcHBlbmRDaGFyIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06e307aWYodGhpcy5pc0ZpbGxlZClyZXR1cm4gbmV3IFlyO3ZhciBuPXRoaXMubWFza2VkLnN0YXRlLGk9dGhpcy5tYXNrZWQuX2FwcGVuZENoYXIodCxlKTtyZXR1cm4gaS5pbnNlcnRlZCYmITE9PT10aGlzLmRvVmFsaWRhdGUoZSkmJihpLmluc2VydGVkPWkucmF3SW5zZXJ0ZWQ9IiIsdGhpcy5tYXNrZWQuc3RhdGU9biksaS5pbnNlcnRlZHx8dGhpcy5pc09wdGlvbmFsfHx0aGlzLmxhenl8fGUuaW5wdXR8fChpLmluc2VydGVkPXRoaXMucGxhY2Vob2xkZXJDaGFyKSxpLnNraXA9IWkuaW5zZXJ0ZWQmJiF0aGlzLmlzT3B0aW9uYWwsdGhpcy5pc0ZpbGxlZD1Cb29sZWFuKGkuaW5zZXJ0ZWQpLGl9fSx7a2V5OiJhcHBlbmQiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ7cmV0dXJuKHQ9dGhpcy5tYXNrZWQpLmFwcGVuZC5hcHBseSh0LGFyZ3VtZW50cyl9fSx7a2V5OiJfYXBwZW5kUGxhY2Vob2xkZXIiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9bmV3IFlyO3JldHVybiB0aGlzLmlzRmlsbGVkfHx0aGlzLmlzT3B0aW9uYWx8fCh0aGlzLmlzRmlsbGVkPSEwLHQuaW5zZXJ0ZWQ9dGhpcy5wbGFjZWhvbGRlckNoYXIpLHR9fSx7a2V5OiJfYXBwZW5kRWFnZXIiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBZcn19LHtrZXk6ImV4dHJhY3RUYWlsIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0O3JldHVybih0PXRoaXMubWFza2VkKS5leHRyYWN0VGFpbC5hcHBseSh0LGFyZ3VtZW50cyl9fSx7a2V5OiJhcHBlbmRUYWlsIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0O3JldHVybih0PXRoaXMubWFza2VkKS5hcHBlbmRUYWlsLmFwcGx5KHQsYXJndW1lbnRzKX19LHtrZXk6ImV4dHJhY3RJbnB1dCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06MCxlPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp0aGlzLnZhbHVlLmxlbmd0aCxuPWFyZ3VtZW50cy5sZW5ndGg+Mj9hcmd1bWVudHNbMl06dm9pZCAwO3JldHVybiB0aGlzLm1hc2tlZC5leHRyYWN0SW5wdXQodCxlLG4pfX0se2tleToibmVhcmVzdElucHV0UG9zIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06R3Isbj0wLGk9dGhpcy52YWx1ZS5sZW5ndGgscj1NYXRoLm1pbihNYXRoLm1heCh0LG4pLGkpO3N3aXRjaChlKXtjYXNlIEtyOmNhc2UgJHI6cmV0dXJuIHRoaXMuaXNDb21wbGV0ZT9yOm47Y2FzZSBXcjpjYXNlIFhyOnJldHVybiB0aGlzLmlzQ29tcGxldGU\/cjppO2RlZmF1bHQ6cmV0dXJuIHJ9fX0se2tleToiZG9WYWxpZGF0ZSIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdCxlO3JldHVybih0PXRoaXMubWFza2VkKS5kb1ZhbGlkYXRlLmFwcGx5KHQsYXJndW1lbnRzKSYmKCF0aGlzLnBhcmVudHx8KGU9dGhpcy5wYXJlbnQpLmRvVmFsaWRhdGUuYXBwbHkoZSxhcmd1bWVudHMpKX19LHtrZXk6ImRvQ29tbWl0Iix2YWx1ZTpmdW5jdGlvbigpe3RoaXMubWFza2VkLmRvQ29tbWl0KCl9fSx7a2V5OiJzdGF0ZSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJue21hc2tlZDp0aGlzLm1hc2tlZC5zdGF0ZSxpc0ZpbGxlZDp0aGlzLmlzRmlsbGVkfX0sc2V0OmZ1bmN0aW9uKHQpe3RoaXMubWFza2VkLnN0YXRlPXQubWFza2VkLHRoaXMuaXNGaWxsZWQ9dC5pc0ZpbGxlZH19XSksdH0oKSxodT1mdW5jdGlvbigpe2Z1bmN0aW9uIHQoZSl7eHIodGhpcyx0KSxPYmplY3QuYXNzaWduKHRoaXMsZSksdGhpcy5fdmFsdWU9IiIsdGhpcy5pc0ZpeGVkPSEwfXJldHVybiBPcih0LFt7a2V5OiJ2YWx1ZSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3ZhbHVlfX0se2tleToidW5tYXNrZWRWYWx1ZSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaXNVbm1hc2tpbmc\/dGhpcy52YWx1ZToiIn19LHtrZXk6InJlc2V0Iix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuX2lzUmF3SW5wdXQ9ITEsdGhpcy5fdmFsdWU9IiJ9fSx7a2V5OiJyZW1vdmUiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0\/YXJndW1lbnRzWzBdOjAsZT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06dGhpcy5fdmFsdWUubGVuZ3RoO3JldHVybiB0aGlzLl92YWx1ZT10aGlzLl92YWx1ZS5zbGljZSgwLHQpK3RoaXMuX3ZhbHVlLnNsaWNlKGUpLHRoaXMuX3ZhbHVlfHwodGhpcy5faXNSYXdJbnB1dD0hMSksbmV3IFlyfX0se2tleToibmVhcmVzdElucHV0UG9zIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06R3Isbj0wLGk9dGhpcy5fdmFsdWUubGVuZ3RoO3N3aXRjaChlKXtjYXNlIEtyOmNhc2UgJHI6cmV0dXJuIG47ZGVmYXVsdDpyZXR1cm4gaX19fSx7a2V5OiJleHRyYWN0SW5wdXQiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0\/YXJndW1lbnRzWzBdOjAsZT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06dGhpcy5fdmFsdWUubGVuZ3RoLG49YXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0\/YXJndW1lbnRzWzJdOnt9O3JldHVybiBuLnJhdyYmdGhpcy5faXNSYXdJbnB1dCYmdGhpcy5fdmFsdWUuc2xpY2UodCxlKXx8IiJ9fSx7a2V5OiJpc0NvbXBsZXRlIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4hMH19LHtrZXk6ImlzRmlsbGVkIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gQm9vbGVhbih0aGlzLl92YWx1ZSl9fSx7a2V5OiJfYXBwZW5kQ2hhciIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGU9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0\/YXJndW1lbnRzWzFdOnt9LG49bmV3IFlyO2lmKHRoaXMuX3ZhbHVlKXJldHVybiBuO3ZhciBpPXRoaXMuY2hhcj09PXQscj1pJiYodGhpcy5pc1VubWFza2luZ3x8ZS5pbnB1dHx8ZS5yYXcpJiYhdGhpcy5lYWdlciYmIWUudGFpbDtyZXR1cm4gciYmKG4ucmF3SW5zZXJ0ZWQ9dGhpcy5jaGFyKSx0aGlzLl92YWx1ZT1uLmluc2VydGVkPXRoaXMuY2hhcix0aGlzLl9pc1Jhd0lucHV0PXImJihlLnJhd3x8ZS5pbnB1dCksbn19LHtrZXk6Il9hcHBlbmRFYWdlciIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYXBwZW5kQ2hhcih0aGlzLmNoYXIpfX0se2tleToiX2FwcGVuZFBsYWNlaG9sZGVyIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PW5ldyBZcjtyZXR1cm4gdGhpcy5fdmFsdWV8fCh0aGlzLl92YWx1ZT10Lmluc2VydGVkPXRoaXMuY2hhciksdH19LHtrZXk6ImV4dHJhY3RUYWlsIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXXx8dGhpcy52YWx1ZS5sZW5ndGgsbmV3IG51KCIiKX19LHtrZXk6ImFwcGVuZFRhaWwiLHZhbHVlOmZ1bmN0aW9uKHQpe3JldHVybiBacih0KSYmKHQ9bmV3IG51KFN0cmluZyh0KSkpLHQuYXBwZW5kVG8odGhpcyl9fSx7a2V5OiJhcHBlbmQiLHZhbHVlOmZ1bmN0aW9uKHQsZSxuKXt2YXIgaT10aGlzLl9hcHBlbmRDaGFyKHRbMF0sZSk7cmV0dXJuIG51bGwhPW4mJihpLnRhaWxTaGlmdCs9dGhpcy5hcHBlbmRUYWlsKG4pLnRhaWxTaGlmdCksaX19LHtrZXk6ImRvQ29tbWl0Iix2YWx1ZTpmdW5jdGlvbigpe319LHtrZXk6InN0YXRlIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm57X3ZhbHVlOnRoaXMuX3ZhbHVlLF9pc1Jhd0lucHV0OnRoaXMuX2lzUmF3SW5wdXR9fSxzZXQ6ZnVuY3Rpb24odCl7T2JqZWN0LmFzc2lnbih0aGlzLHQpfX1dKSx0fSgpLGN1PVsiY2h1bmtzIl0sZnU9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KCl7dmFyIGU9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0\/YXJndW1lbnRzWzBdOltdLG49YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0\/YXJndW1lbnRzWzFdOjA7eHIodGhpcyx0KSx0aGlzLmNodW5rcz1lLHRoaXMuZnJvbT1ufXJldHVybiBPcih0LFt7a2V5OiJ0b1N0cmluZyIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jaHVua3MubWFwKFN0cmluZykuam9pbigiIil9fSx7a2V5OiJleHRlbmQiLHZhbHVlOmZ1bmN0aW9uKGUpe2lmKFN0cmluZyhlKSl7WnIoZSkmJihlPW5ldyBudShTdHJpbmcoZSkpKTt2YXIgbj10aGlzLmNodW5rc1t0aGlzLmNodW5rcy5sZW5ndGgtMV0saT1uJiYobi5zdG9wPT09ZS5zdG9wfHxudWxsPT1lLnN0b3ApJiZlLmZyb209PT1uLmZyb20rbi50b1N0cmluZygpLmxlbmd0aDtpZihlIGluc3RhbmNlb2YgbnUpaT9uLmV4dGVuZChlLnRvU3RyaW5nKCkpOnRoaXMuY2h1bmtzLnB1c2goZSk7ZWxzZSBpZihlIGluc3RhbmNlb2YgdCl7aWYobnVsbD09ZS5zdG9wKWZvcih2YXIgcjtlLmNodW5rcy5sZW5ndGgmJm51bGw9PWUuY2h1bmtzWzBdLnN0b3A7KShyPWUuY2h1bmtzLnNoaWZ0KCkpLmZyb20rPWUuZnJvbSx0aGlzLmV4dGVuZChyKTtlLnRvU3RyaW5nKCkmJihlLnN0b3A9ZS5ibG9ja0luZGV4LHRoaXMuY2h1bmtzLnB1c2goZSkpfX19fSx7a2V5OiJhcHBlbmRUbyIsdmFsdWU6ZnVuY3Rpb24oZSl7aWYoIShlIGluc3RhbmNlb2YgaXUuTWFza2VkUGF0dGVybikpcmV0dXJuIG5ldyBudSh0aGlzLnRvU3RyaW5nKCkpLmFwcGVuZFRvKGUpO2Zvcih2YXIgbj1uZXcgWXIsaT0wO2k8dGhpcy5jaHVua3MubGVuZ3RoJiYhbi5za2lwOysraSl7dmFyIHI9dGhpcy5jaHVua3NbaV0sdT1lLl9tYXBQb3NUb0Jsb2NrKGUudmFsdWUubGVuZ3RoKSxzPXIuc3RvcCxhPXZvaWQgMDtpZihudWxsIT1zJiYoIXV8fHUuaW5kZXg8PXMpJiYoKHIgaW5zdGFuY2VvZiB0fHxlLl9zdG9wcy5pbmRleE9mKHMpPj0wKSYmbi5hZ2dyZWdhdGUoZS5fYXBwZW5kUGxhY2Vob2xkZXIocykpLGE9ciBpbnN0YW5jZW9mIHQmJmUuX2Jsb2Nrc1tzXSksYSl7dmFyIG89YS5hcHBlbmRUYWlsKHIpO28uc2tpcD0hMSxuLmFnZ3JlZ2F0ZShvKSxlLl92YWx1ZSs9by5pbnNlcnRlZDt2YXIgbD1yLnRvU3RyaW5nKCkuc2xpY2Uoby5yYXdJbnNlcnRlZC5sZW5ndGgpO2wmJm4uYWdncmVnYXRlKGUuYXBwZW5kKGwse3RhaWw6ITB9KSl9ZWxzZSBuLmFnZ3JlZ2F0ZShlLmFwcGVuZChyLnRvU3RyaW5nKCkse3RhaWw6ITB9KSl9cmV0dXJuIG59fSx7a2V5OiJzdGF0ZSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJue2NodW5rczp0aGlzLmNodW5rcy5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB0LnN0YXRlfSkpLGZyb206dGhpcy5mcm9tLHN0b3A6dGhpcy5zdG9wLGJsb2NrSW5kZXg6dGhpcy5ibG9ja0luZGV4fX0sc2V0OmZ1bmN0aW9uKGUpe3ZhciBuPWUuY2h1bmtzLGk9anIoZSxjdSk7T2JqZWN0LmFzc2lnbih0aGlzLGkpLHRoaXMuY2h1bmtzPW4ubWFwKChmdW5jdGlvbihlKXt2YXIgbj0iY2h1bmtzImluIGU\/bmV3IHQ6bmV3IG51O3JldHVybiBuLnN0YXRlPWUsbn0pKX19LHtrZXk6InVuc2hpZnQiLHZhbHVlOmZ1bmN0aW9uKHQpe2lmKCF0aGlzLmNodW5rcy5sZW5ndGh8fG51bGwhPXQmJnRoaXMuZnJvbT49dClyZXR1cm4iIjtmb3IodmFyIGU9bnVsbCE9dD90LXRoaXMuZnJvbTp0LG49MDtuPHRoaXMuY2h1bmtzLmxlbmd0aDspe3ZhciBpPXRoaXMuY2h1bmtzW25dLHI9aS51bnNoaWZ0KGUpO2lmKGkudG9TdHJpbmcoKSl7aWYoIXIpYnJlYWs7KytufWVsc2UgdGhpcy5jaHVua3Muc3BsaWNlKG4sMSk7aWYocilyZXR1cm4gcn1yZXR1cm4iIn19LHtrZXk6InNoaWZ0Iix2YWx1ZTpmdW5jdGlvbigpe2lmKCF0aGlzLmNodW5rcy5sZW5ndGgpcmV0dXJuIiI7Zm9yKHZhciB0PXRoaXMuY2h1bmtzLmxlbmd0aC0xOzA8PXQ7KXt2YXIgZT10aGlzLmNodW5rc1t0XSxuPWUuc2hpZnQoKTtpZihlLnRvU3RyaW5nKCkpe2lmKCFuKWJyZWFrOy0tdH1lbHNlIHRoaXMuY2h1bmtzLnNwbGljZSh0LDEpO2lmKG4pcmV0dXJuIG59cmV0dXJuIiJ9fV0pLHR9KCkscHU9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KGUsbil7eHIodGhpcyx0KSx0aGlzLm1hc2tlZD1lLHRoaXMuX2xvZz1bXTt2YXIgaT1lLl9tYXBQb3NUb0Jsb2NrKG4pfHwobjwwP3tpbmRleDowLG9mZnNldDowfTp7aW5kZXg6dGhpcy5tYXNrZWQuX2Jsb2Nrcy5sZW5ndGgsb2Zmc2V0OjB9KSxyPWkub2Zmc2V0LHU9aS5pbmRleDt0aGlzLm9mZnNldD1yLHRoaXMuaW5kZXg9dSx0aGlzLm9rPSExfXJldHVybiBPcih0LFt7a2V5OiJibG9jayIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubWFza2VkLl9ibG9ja3NbdGhpcy5pbmRleF19fSx7a2V5OiJwb3MiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLm1hc2tlZC5fYmxvY2tTdGFydFBvcyh0aGlzLmluZGV4KSt0aGlzLm9mZnNldH19LHtrZXk6InN0YXRlIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm57aW5kZXg6dGhpcy5pbmRleCxvZmZzZXQ6dGhpcy5vZmZzZXQsb2s6dGhpcy5va319LHNldDpmdW5jdGlvbih0KXtPYmplY3QuYXNzaWduKHRoaXMsdCl9fSx7a2V5OiJwdXNoU3RhdGUiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5fbG9nLnB1c2godGhpcy5zdGF0ZSl9fSx7a2V5OiJwb3BTdGF0ZSIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl9sb2cucG9wKCk7cmV0dXJuIHRoaXMuc3RhdGU9dCx0fX0se2tleToiYmluZEJsb2NrIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuYmxvY2t8fCh0aGlzLmluZGV4PDAmJih0aGlzLmluZGV4PTAsdGhpcy5vZmZzZXQ9MCksdGhpcy5pbmRleD49dGhpcy5tYXNrZWQuX2Jsb2Nrcy5sZW5ndGgmJih0aGlzLmluZGV4PXRoaXMubWFza2VkLl9ibG9ja3MubGVuZ3RoLTEsdGhpcy5vZmZzZXQ9dGhpcy5ibG9jay52YWx1ZS5sZW5ndGgpKX19LHtrZXk6Il9wdXNoTGVmdCIsdmFsdWU6ZnVuY3Rpb24odCl7Zm9yKHRoaXMucHVzaFN0YXRlKCksdGhpcy5iaW5kQmxvY2soKTswPD10aGlzLmluZGV4Oy0tdGhpcy5pbmRleCx0aGlzLm9mZnNldD0obnVsbD09PShlPXRoaXMuYmxvY2spfHx2b2lkIDA9PT1lP3ZvaWQgMDplLnZhbHVlLmxlbmd0aCl8fDApe3ZhciBlO2lmKHQoKSlyZXR1cm4gdGhpcy5vaz0hMH1yZXR1cm4gdGhpcy5vaz0hMX19LHtrZXk6Il9wdXNoUmlnaHQiLHZhbHVlOmZ1bmN0aW9uKHQpe2Zvcih0aGlzLnB1c2hTdGF0ZSgpLHRoaXMuYmluZEJsb2NrKCk7dGhpcy5pbmRleDx0aGlzLm1hc2tlZC5fYmxvY2tzLmxlbmd0aDsrK3RoaXMuaW5kZXgsdGhpcy5vZmZzZXQ9MClpZih0KCkpcmV0dXJuIHRoaXMub2s9ITA7cmV0dXJuIHRoaXMub2s9ITF9fSx7a2V5OiJwdXNoTGVmdEJlZm9yZUZpbGxlZCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3JldHVybiB0aGlzLl9wdXNoTGVmdCgoZnVuY3Rpb24oKXtpZighdC5ibG9jay5pc0ZpeGVkJiZ0LmJsb2NrLnZhbHVlKXJldHVybiB0Lm9mZnNldD10LmJsb2NrLm5lYXJlc3RJbnB1dFBvcyh0Lm9mZnNldCwkciksMCE9PXQub2Zmc2V0fHx2b2lkIDB9KSl9fSx7a2V5OiJwdXNoTGVmdEJlZm9yZUlucHV0Iix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PXRoaXM7cmV0dXJuIHRoaXMuX3B1c2hMZWZ0KChmdW5jdGlvbigpe2lmKCF0LmJsb2NrLmlzRml4ZWQpcmV0dXJuIHQub2Zmc2V0PXQuYmxvY2submVhcmVzdElucHV0UG9zKHQub2Zmc2V0LEtyKSwhMH0pKX19LHtrZXk6InB1c2hMZWZ0QmVmb3JlUmVxdWlyZWQiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztyZXR1cm4gdGhpcy5fcHVzaExlZnQoKGZ1bmN0aW9uKCl7aWYoISh0LmJsb2NrLmlzRml4ZWR8fHQuYmxvY2suaXNPcHRpb25hbCYmIXQuYmxvY2sudmFsdWUpKXJldHVybiB0Lm9mZnNldD10LmJsb2NrLm5lYXJlc3RJbnB1dFBvcyh0Lm9mZnNldCxLciksITB9KSl9fSx7a2V5OiJwdXNoUmlnaHRCZWZvcmVGaWxsZWQiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztyZXR1cm4gdGhpcy5fcHVzaFJpZ2h0KChmdW5jdGlvbigpe2lmKCF0LmJsb2NrLmlzRml4ZWQmJnQuYmxvY2sudmFsdWUpcmV0dXJuIHQub2Zmc2V0PXQuYmxvY2submVhcmVzdElucHV0UG9zKHQub2Zmc2V0LFhyKSx0Lm9mZnNldCE9PXQuYmxvY2sudmFsdWUubGVuZ3RofHx2b2lkIDB9KSl9fSx7a2V5OiJwdXNoUmlnaHRCZWZvcmVJbnB1dCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3JldHVybiB0aGlzLl9wdXNoUmlnaHQoKGZ1bmN0aW9uKCl7aWYoIXQuYmxvY2suaXNGaXhlZClyZXR1cm4gdC5vZmZzZXQ9dC5ibG9jay5uZWFyZXN0SW5wdXRQb3ModC5vZmZzZXQsR3IpLCEwfSkpfX0se2tleToicHVzaFJpZ2h0QmVmb3JlUmVxdWlyZWQiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztyZXR1cm4gdGhpcy5fcHVzaFJpZ2h0KChmdW5jdGlvbigpe2lmKCEodC5ibG9jay5pc0ZpeGVkfHx0LmJsb2NrLmlzT3B0aW9uYWwmJiF0LmJsb2NrLnZhbHVlKSlyZXR1cm4gdC5vZmZzZXQ9dC5ibG9jay5uZWFyZXN0SW5wdXRQb3ModC5vZmZzZXQsR3IpLCEwfSkpfX1dKSx0fSgpLGR1PWZ1bmN0aW9uKHQpe1ByKG4sdCk7dmFyIGU9VnIobik7ZnVuY3Rpb24gbigpe3JldHVybiB4cih0aGlzLG4pLGUuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiBPcihuLFt7a2V5OiJfdXBkYXRlIix2YWx1ZTpmdW5jdGlvbih0KXt0Lm1hc2smJih0LnZhbGlkYXRlPWZ1bmN0aW9uKGUpe3JldHVybiBlLnNlYXJjaCh0Lm1hc2spPj0wfSksTnIoVHIobi5wcm90b3R5cGUpLCJfdXBkYXRlIix0aGlzKS5jYWxsKHRoaXMsdCl9fV0pLG59KHJ1KTtpdS5NYXNrZWRSZWdFeHA9ZHU7dmFyIHZ1PVsiX2Jsb2NrcyJdLGd1PWZ1bmN0aW9uKHQpe1ByKG4sdCk7dmFyIGU9VnIobik7ZnVuY3Rpb24gbigpe3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTp7fTtyZXR1cm4geHIodGhpcyxuKSx0LmRlZmluaXRpb25zPU9iamVjdC5hc3NpZ24oe30sb3UsdC5kZWZpbml0aW9ucyksZS5jYWxsKHRoaXMsT2JqZWN0LmFzc2lnbih7fSxuLkRFRkFVTFRTLHQpKX1yZXR1cm4gT3Iobixbe2tleToiX3VwZGF0ZSIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06e307dC5kZWZpbml0aW9ucz1PYmplY3QuYXNzaWduKHt9LHRoaXMuZGVmaW5pdGlvbnMsdC5kZWZpbml0aW9ucyksTnIoVHIobi5wcm90b3R5cGUpLCJfdXBkYXRlIix0aGlzKS5jYWxsKHRoaXMsdCksdGhpcy5fcmVidWlsZE1hc2soKX19LHtrZXk6Il9yZWJ1aWxkTWFzayIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLGU9dGhpcy5kZWZpbml0aW9uczt0aGlzLl9ibG9ja3M9W10sdGhpcy5fc3RvcHM9W10sdGhpcy5fbWFza2VkQmxvY2tzPXt9O3ZhciBpPXRoaXMubWFzaztpZihpJiZlKWZvcih2YXIgcj0hMSx1PSExLHM9MDtzPGkubGVuZ3RoOysrcyl7aWYodGhpcy5ibG9ja3MpaWYoImNvbnRpbnVlIj09PWZ1bmN0aW9uKCl7dmFyIGU9aS5zbGljZShzKSxuPU9iamVjdC5rZXlzKHQuYmxvY2tzKS5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiAwPT09ZS5pbmRleE9mKHQpfSkpO24uc29ydCgoZnVuY3Rpb24odCxlKXtyZXR1cm4gZS5sZW5ndGgtdC5sZW5ndGh9KSk7dmFyIHI9blswXTtpZihyKXt2YXIgdT1zdShPYmplY3QuYXNzaWduKHtwYXJlbnQ6dCxsYXp5OnQubGF6eSxlYWdlcjp0LmVhZ2VyLHBsYWNlaG9sZGVyQ2hhcjp0LnBsYWNlaG9sZGVyQ2hhcixvdmVyd3JpdGU6dC5vdmVyd3JpdGV9LHQuYmxvY2tzW3JdKSk7cmV0dXJuIHUmJih0Ll9ibG9ja3MucHVzaCh1KSx0Ll9tYXNrZWRCbG9ja3Nbcl18fCh0Ll9tYXNrZWRCbG9ja3Nbcl09W10pLHQuX21hc2tlZEJsb2Nrc1tyXS5wdXNoKHQuX2Jsb2Nrcy5sZW5ndGgtMSkpLHMrPXIubGVuZ3RoLTEsImNvbnRpbnVlIn19KCkpY29udGludWU7dmFyIGE9aVtzXSxvPWEgaW4gZTtpZihhIT09bi5TVE9QX0NIQVIpaWYoInsiIT09YSYmIn0iIT09YSlpZigiWyIhPT1hJiYiXSIhPT1hKXtpZihhPT09bi5FU0NBUEVfQ0hBUil7aWYoKytzLCEoYT1pW3NdKSlicmVhaztvPSExfXZhciBsPW8\/bmV3IGx1KHtwYXJlbnQ6dGhpcyxsYXp5OnRoaXMubGF6eSxlYWdlcjp0aGlzLmVhZ2VyLHBsYWNlaG9sZGVyQ2hhcjp0aGlzLnBsYWNlaG9sZGVyQ2hhcixtYXNrOmVbYV0saXNPcHRpb25hbDp1fSk6bmV3IGh1KHtjaGFyOmEsZWFnZXI6dGhpcy5lYWdlcixpc1VubWFza2luZzpyfSk7dGhpcy5fYmxvY2tzLnB1c2gobCl9ZWxzZSB1PSF1O2Vsc2Ugcj0hcjtlbHNlIHRoaXMuX3N0b3BzLnB1c2godGhpcy5fYmxvY2tzLmxlbmd0aCl9fX0se2tleToic3RhdGUiLGdldDpmdW5jdGlvbigpe3JldHVybiBPYmplY3QuYXNzaWduKHt9LE5yKFRyKG4ucHJvdG90eXBlKSwic3RhdGUiLHRoaXMpLHtfYmxvY2tzOnRoaXMuX2Jsb2Nrcy5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB0LnN0YXRlfSkpfSl9LHNldDpmdW5jdGlvbih0KXt2YXIgZT10Ll9ibG9ja3MsaT1qcih0LHZ1KTt0aGlzLl9ibG9ja3MuZm9yRWFjaCgoZnVuY3Rpb24odCxuKXtyZXR1cm4gdC5zdGF0ZT1lW25dfSkpLHpyKFRyKG4ucHJvdG90eXBlKSwic3RhdGUiLGksdGhpcywhMCl9fSx7a2V5OiJyZXNldCIsdmFsdWU6ZnVuY3Rpb24oKXtOcihUcihuLnByb3RvdHlwZSksInJlc2V0Iix0aGlzKS5jYWxsKHRoaXMpLHRoaXMuX2Jsb2Nrcy5mb3JFYWNoKChmdW5jdGlvbih0KXtyZXR1cm4gdC5yZXNldCgpfSkpfX0se2tleToiaXNDb21wbGV0ZSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2Jsb2Nrcy5ldmVyeSgoZnVuY3Rpb24odCl7cmV0dXJuIHQuaXNDb21wbGV0ZX0pKX19LHtrZXk6ImlzRmlsbGVkIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYmxvY2tzLmV2ZXJ5KChmdW5jdGlvbih0KXtyZXR1cm4gdC5pc0ZpbGxlZH0pKX19LHtrZXk6ImlzRml4ZWQiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9ibG9ja3MuZXZlcnkoKGZ1bmN0aW9uKHQpe3JldHVybiB0LmlzRml4ZWR9KSl9fSx7a2V5OiJpc09wdGlvbmFsIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYmxvY2tzLmV2ZXJ5KChmdW5jdGlvbih0KXtyZXR1cm4gdC5pc09wdGlvbmFsfSkpfX0se2tleToiZG9Db21taXQiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5fYmxvY2tzLmZvckVhY2goKGZ1bmN0aW9uKHQpe3JldHVybiB0LmRvQ29tbWl0KCl9KSksTnIoVHIobi5wcm90b3R5cGUpLCJkb0NvbW1pdCIsdGhpcykuY2FsbCh0aGlzKX19LHtrZXk6InVubWFza2VkVmFsdWUiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9ibG9ja3MucmVkdWNlKChmdW5jdGlvbih0LGUpe3JldHVybiB0K2UudW5tYXNrZWRWYWx1ZX0pLCIiKX0sc2V0OmZ1bmN0aW9uKHQpe3pyKFRyKG4ucHJvdG90eXBlKSwidW5tYXNrZWRWYWx1ZSIsdCx0aGlzLCEwKX19LHtrZXk6InZhbHVlIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYmxvY2tzLnJlZHVjZSgoZnVuY3Rpb24odCxlKXtyZXR1cm4gdCtlLnZhbHVlfSksIiIpfSxzZXQ6ZnVuY3Rpb24odCl7enIoVHIobi5wcm90b3R5cGUpLCJ2YWx1ZSIsdCx0aGlzLCEwKX19LHtrZXk6ImFwcGVuZFRhaWwiLHZhbHVlOmZ1bmN0aW9uKHQpe3JldHVybiBOcihUcihuLnByb3RvdHlwZSksImFwcGVuZFRhaWwiLHRoaXMpLmNhbGwodGhpcyx0KS5hZ2dyZWdhdGUodGhpcy5fYXBwZW5kUGxhY2Vob2xkZXIoKSl9fSx7a2V5OiJfYXBwZW5kRWFnZXIiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQsZT1uZXcgWXIsbj1udWxsPT09KHQ9dGhpcy5fbWFwUG9zVG9CbG9jayh0aGlzLnZhbHVlLmxlbmd0aCkpfHx2b2lkIDA9PT10P3ZvaWQgMDp0LmluZGV4O2lmKG51bGw9PW4pcmV0dXJuIGU7dGhpcy5fYmxvY2tzW25dLmlzRmlsbGVkJiYrK247Zm9yKHZhciBpPW47aTx0aGlzLl9ibG9ja3MubGVuZ3RoOysraSl7dmFyIHI9dGhpcy5fYmxvY2tzW2ldLl9hcHBlbmRFYWdlcigpO2lmKCFyLmluc2VydGVkKWJyZWFrO2UuYWdncmVnYXRlKHIpfXJldHVybiBlfX0se2tleToiX2FwcGVuZENoYXJSYXciLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp7fSxuPXRoaXMuX21hcFBvc1RvQmxvY2sodGhpcy52YWx1ZS5sZW5ndGgpLGk9bmV3IFlyO2lmKCFuKXJldHVybiBpO2Zvcih2YXIgcj1uLmluZGV4OzsrK3Ipe3ZhciB1LHM9dGhpcy5fYmxvY2tzW3JdO2lmKCFzKWJyZWFrO3ZhciBhPXMuX2FwcGVuZENoYXIodCxPYmplY3QuYXNzaWduKHt9LGUse19iZWZvcmVUYWlsU3RhdGU6bnVsbD09PSh1PWUuX2JlZm9yZVRhaWxTdGF0ZSl8fHZvaWQgMD09PXU\/dm9pZCAwOnUuX2Jsb2Nrc1tyXX0pKSxvPWEuc2tpcDtpZihpLmFnZ3JlZ2F0ZShhKSxvfHxhLnJhd0luc2VydGVkKWJyZWFrfXJldHVybiBpfX0se2tleToiZXh0cmFjdFRhaWwiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxlPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTowLG49YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0\/YXJndW1lbnRzWzFdOnRoaXMudmFsdWUubGVuZ3RoLGk9bmV3IGZ1O3JldHVybiBlPT09bnx8dGhpcy5fZm9yRWFjaEJsb2Nrc0luUmFuZ2UoZSxuLChmdW5jdGlvbihlLG4scix1KXt2YXIgcz1lLmV4dHJhY3RUYWlsKHIsdSk7cy5zdG9wPXQuX2ZpbmRTdG9wQmVmb3JlKG4pLHMuZnJvbT10Ll9ibG9ja1N0YXJ0UG9zKG4pLHMgaW5zdGFuY2VvZiBmdSYmKHMuYmxvY2tJbmRleD1uKSxpLmV4dGVuZChzKX0pKSxpfX0se2tleToiZXh0cmFjdElucHV0Iix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTowLGU9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0\/YXJndW1lbnRzWzFdOnRoaXMudmFsdWUubGVuZ3RoLG49YXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0\/YXJndW1lbnRzWzJdOnt9O2lmKHQ9PT1lKXJldHVybiIiO3ZhciBpPSIiO3JldHVybiB0aGlzLl9mb3JFYWNoQmxvY2tzSW5SYW5nZSh0LGUsKGZ1bmN0aW9uKHQsZSxyLHUpe2krPXQuZXh0cmFjdElucHV0KHIsdSxuKX0pKSxpfX0se2tleToiX2ZpbmRTdG9wQmVmb3JlIix2YWx1ZTpmdW5jdGlvbih0KXtmb3IodmFyIGUsbj0wO248dGhpcy5fc3RvcHMubGVuZ3RoOysrbil7dmFyIGk9dGhpcy5fc3RvcHNbbl07aWYoIShpPD10KSlicmVhaztlPWl9cmV0dXJuIGV9fSx7a2V5OiJfYXBwZW5kUGxhY2Vob2xkZXIiLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMsbj1uZXcgWXI7aWYodGhpcy5sYXp5JiZudWxsPT10KXJldHVybiBuO3ZhciBpPXRoaXMuX21hcFBvc1RvQmxvY2sodGhpcy52YWx1ZS5sZW5ndGgpO2lmKCFpKXJldHVybiBuO3ZhciByPWkuaW5kZXgsdT1udWxsIT10P3Q6dGhpcy5fYmxvY2tzLmxlbmd0aDtyZXR1cm4gdGhpcy5fYmxvY2tzLnNsaWNlKHIsdSkuZm9yRWFjaCgoZnVuY3Rpb24oaSl7aWYoIWkubGF6eXx8bnVsbCE9dCl7dmFyIHI9bnVsbCE9aS5fYmxvY2tzP1tpLl9ibG9ja3MubGVuZ3RoXTpbXSx1PWkuX2FwcGVuZFBsYWNlaG9sZGVyLmFwcGx5KGkscik7ZS5fdmFsdWUrPXUuaW5zZXJ0ZWQsbi5hZ2dyZWdhdGUodSl9fSkpLG59fSx7a2V5OiJfbWFwUG9zVG9CbG9jayIsdmFsdWU6ZnVuY3Rpb24odCl7Zm9yKHZhciBlPSIiLG49MDtuPHRoaXMuX2Jsb2Nrcy5sZW5ndGg7KytuKXt2YXIgaT10aGlzLl9ibG9ja3Nbbl0scj1lLmxlbmd0aDtpZih0PD0oZSs9aS52YWx1ZSkubGVuZ3RoKXJldHVybntpbmRleDpuLG9mZnNldDp0LXJ9fX19LHtrZXk6Il9ibG9ja1N0YXJ0UG9zIix2YWx1ZTpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fYmxvY2tzLnNsaWNlKDAsdCkucmVkdWNlKChmdW5jdGlvbih0LGUpe3JldHVybiB0K2UudmFsdWUubGVuZ3RofSksMCl9fSx7a2V5OiJfZm9yRWFjaEJsb2Nrc0luUmFuZ2UiLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp0aGlzLnZhbHVlLmxlbmd0aCxuPWFyZ3VtZW50cy5sZW5ndGg+Mj9hcmd1bWVudHNbMl06dm9pZCAwLGk9dGhpcy5fbWFwUG9zVG9CbG9jayh0KTtpZihpKXt2YXIgcj10aGlzLl9tYXBQb3NUb0Jsb2NrKGUpLHU9ciYmaS5pbmRleD09PXIuaW5kZXgscz1pLm9mZnNldCxhPXImJnU\/ci5vZmZzZXQ6dGhpcy5fYmxvY2tzW2kuaW5kZXhdLnZhbHVlLmxlbmd0aDtpZihuKHRoaXMuX2Jsb2Nrc1tpLmluZGV4XSxpLmluZGV4LHMsYSksciYmIXUpe2Zvcih2YXIgbz1pLmluZGV4KzE7bzxyLmluZGV4OysrbyluKHRoaXMuX2Jsb2Nrc1tvXSxvLDAsdGhpcy5fYmxvY2tzW29dLnZhbHVlLmxlbmd0aCk7bih0aGlzLl9ibG9ja3Nbci5pbmRleF0sci5pbmRleCwwLHIub2Zmc2V0KX19fX0se2tleToicmVtb3ZlIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTowLGU9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0\/YXJndW1lbnRzWzFdOnRoaXMudmFsdWUubGVuZ3RoLGk9TnIoVHIobi5wcm90b3R5cGUpLCJyZW1vdmUiLHRoaXMpLmNhbGwodGhpcyx0LGUpO3JldHVybiB0aGlzLl9mb3JFYWNoQmxvY2tzSW5SYW5nZSh0LGUsKGZ1bmN0aW9uKHQsZSxuLHIpe2kuYWdncmVnYXRlKHQucmVtb3ZlKG4scikpfSkpLGl9fSx7a2V5OiJuZWFyZXN0SW5wdXRQb3MiLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTpHcjtpZighdGhpcy5fYmxvY2tzLmxlbmd0aClyZXR1cm4gMDt2YXIgbj1uZXcgcHUodGhpcyx0KTtpZihlPT09R3IpcmV0dXJuIG4ucHVzaFJpZ2h0QmVmb3JlSW5wdXQoKT9uLnBvczoobi5wb3BTdGF0ZSgpLG4ucHVzaExlZnRCZWZvcmVJbnB1dCgpP24ucG9zOnRoaXMudmFsdWUubGVuZ3RoKTtpZihlPT09S3J8fGU9PT0kcil7aWYoZT09PUtyKXtpZihuLnB1c2hSaWdodEJlZm9yZUZpbGxlZCgpLG4ub2smJm4ucG9zPT09dClyZXR1cm4gdDtuLnBvcFN0YXRlKCl9aWYobi5wdXNoTGVmdEJlZm9yZUlucHV0KCksbi5wdXNoTGVmdEJlZm9yZVJlcXVpcmVkKCksbi5wdXNoTGVmdEJlZm9yZUZpbGxlZCgpLGU9PT1Lcil7aWYobi5wdXNoUmlnaHRCZWZvcmVJbnB1dCgpLG4ucHVzaFJpZ2h0QmVmb3JlUmVxdWlyZWQoKSxuLm9rJiZuLnBvczw9dClyZXR1cm4gbi5wb3M7aWYobi5wb3BTdGF0ZSgpLG4ub2smJm4ucG9zPD10KXJldHVybiBuLnBvcztuLnBvcFN0YXRlKCl9cmV0dXJuIG4ub2s\/bi5wb3M6ZT09PSRyPzA6KG4ucG9wU3RhdGUoKSxuLm9rP24ucG9zOihuLnBvcFN0YXRlKCksbi5vaz9uLnBvczowKSl9cmV0dXJuIGU9PT1Xcnx8ZT09PVhyPyhuLnB1c2hSaWdodEJlZm9yZUlucHV0KCksbi5wdXNoUmlnaHRCZWZvcmVSZXF1aXJlZCgpLG4ucHVzaFJpZ2h0QmVmb3JlRmlsbGVkKCk\/bi5wb3M6ZT09PVhyP3RoaXMudmFsdWUubGVuZ3RoOihuLnBvcFN0YXRlKCksbi5vaz9uLnBvczoobi5wb3BTdGF0ZSgpLG4ub2s\/bi5wb3M6dGhpcy5uZWFyZXN0SW5wdXRQb3ModCxLcikpKSk6dH19LHtrZXk6Im1hc2tlZEJsb2NrIix2YWx1ZTpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5tYXNrZWRCbG9ja3ModClbMF19fSx7a2V5OiJtYXNrZWRCbG9ja3MiLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMsbj10aGlzLl9tYXNrZWRCbG9ja3NbdF07cmV0dXJuIG4\/bi5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBlLl9ibG9ja3NbdF19KSk6W119fV0pLG59KHJ1KTtndS5ERUZBVUxUUz17bGF6eTohMCxwbGFjZWhvbGRlckNoYXI6Il8ifSxndS5TVE9QX0NIQVI9ImAiLGd1LkVTQ0FQRV9DSEFSPSJcXCIsZ3UuSW5wdXREZWZpbml0aW9uPWx1LGd1LkZpeGVkRGVmaW5pdGlvbj1odSxpdS5NYXNrZWRQYXR0ZXJuPWd1O3ZhciBrdT1mdW5jdGlvbih0KXtQcihuLHQpO3ZhciBlPVZyKG4pO2Z1bmN0aW9uIG4oKXtyZXR1cm4geHIodGhpcyxuKSxlLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1yZXR1cm4gT3Iobixbe2tleToiX21hdGNoRnJvbSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubWF4TGVuZ3RoLVN0cmluZyh0aGlzLmZyb20pLmxlbmd0aH19LHtrZXk6Il91cGRhdGUiLHZhbHVlOmZ1bmN0aW9uKHQpe3Q9T2JqZWN0LmFzc2lnbih7dG86dGhpcy50b3x8MCxmcm9tOnRoaXMuZnJvbXx8MCxtYXhMZW5ndGg6dGhpcy5tYXhMZW5ndGh8fDB9LHQpO3ZhciBlPVN0cmluZyh0LnRvKS5sZW5ndGg7bnVsbCE9dC5tYXhMZW5ndGgmJihlPU1hdGgubWF4KGUsdC5tYXhMZW5ndGgpKSx0Lm1heExlbmd0aD1lO2Zvcih2YXIgaT1TdHJpbmcodC5mcm9tKS5wYWRTdGFydChlLCIwIikscj1TdHJpbmcodC50bykucGFkU3RhcnQoZSwiMCIpLHU9MDt1PHIubGVuZ3RoJiZyW3VdPT09aVt1XTspKyt1O3QubWFzaz1yLnNsaWNlKDAsdSkucmVwbGFjZSgvMC9nLCJcXDAiKSsiMCIucmVwZWF0KGUtdSksTnIoVHIobi5wcm90b3R5cGUpLCJfdXBkYXRlIix0aGlzKS5jYWxsKHRoaXMsdCl9fSx7a2V5OiJpc0NvbXBsZXRlIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gTnIoVHIobi5wcm90b3R5cGUpLCJpc0NvbXBsZXRlIix0aGlzKSYmQm9vbGVhbih0aGlzLnZhbHVlKX19LHtrZXk6ImJvdW5kYXJpZXMiLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlPSIiLG49IiIsaT1xcih0Lm1hdGNoKC9eKFxEKikoXGQqKShcRCopLyl8fFtdLDMpLHI9aVsxXSx1PWlbMl07cmV0dXJuIHUmJihlPSIwIi5yZXBlYXQoci5sZW5ndGgpK3Usbj0iOSIucmVwZWF0KHIubGVuZ3RoKSt1KSxbZT1lLnBhZEVuZCh0aGlzLm1heExlbmd0aCwiMCIpLG49bi5wYWRFbmQodGhpcy5tYXhMZW5ndGgsIjkiKV19fSx7a2V5OiJkb1ByZXBhcmUiLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlLGk9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0\/YXJndW1lbnRzWzFdOnt9LHI9UXIoTnIoVHIobi5wcm90b3R5cGUpLCJkb1ByZXBhcmUiLHRoaXMpLmNhbGwodGhpcyx0LnJlcGxhY2UoL1xEL2csIiIpLGkpKSx1PXFyKHIsMik7aWYodD11WzBdLGU9dVsxXSwhdGhpcy5hdXRvZml4fHwhdClyZXR1cm4gdDt2YXIgcz1TdHJpbmcodGhpcy5mcm9tKS5wYWRTdGFydCh0aGlzLm1heExlbmd0aCwiMCIpLGE9U3RyaW5nKHRoaXMudG8pLnBhZFN0YXJ0KHRoaXMubWF4TGVuZ3RoLCIwIiksbz10aGlzLnZhbHVlK3Q7aWYoby5sZW5ndGg+dGhpcy5tYXhMZW5ndGgpcmV0dXJuIiI7dmFyIGw9dGhpcy5ib3VuZGFyaWVzKG8pLGg9cXIobCwyKSxjPWhbMF0sZj1oWzFdO3JldHVybiBOdW1iZXIoZik8dGhpcy5mcm9tP3Nbby5sZW5ndGgtMV06TnVtYmVyKGMpPnRoaXMudG8\/InBhZCI9PT10aGlzLmF1dG9maXgmJm8ubGVuZ3RoPHRoaXMubWF4TGVuZ3RoP1siIixlLmFnZ3JlZ2F0ZSh0aGlzLmFwcGVuZChzW28ubGVuZ3RoLTFdK3QsaSkpXTphW28ubGVuZ3RoLTFdOnR9fSx7a2V5OiJkb1ZhbGlkYXRlIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0LGU9dGhpcy52YWx1ZSxpPWUuc2VhcmNoKC9bXjBdLyk7aWYoLTE9PT1pJiZlLmxlbmd0aDw9dGhpcy5fbWF0Y2hGcm9tKXJldHVybiEwO2Zvcih2YXIgcj10aGlzLmJvdW5kYXJpZXMoZSksdT1xcihyLDIpLHM9dVswXSxhPXVbMV0sbz1hcmd1bWVudHMubGVuZ3RoLGw9bmV3IEFycmF5KG8pLGg9MDtoPG87aCsrKWxbaF09YXJndW1lbnRzW2hdO3JldHVybiB0aGlzLmZyb208PU51bWJlcihhKSYmTnVtYmVyKHMpPD10aGlzLnRvJiYodD1OcihUcihuLnByb3RvdHlwZSksImRvVmFsaWRhdGUiLHRoaXMpKS5jYWxsLmFwcGx5KHQsW3RoaXNdLmNvbmNhdChsKSl9fV0pLG59KGd1KTtpdS5NYXNrZWRSYW5nZT1rdTt2YXIgeXU9ZnVuY3Rpb24odCl7UHIobix0KTt2YXIgZT1WcihuKTtmdW5jdGlvbiBuKHQpe3JldHVybiB4cih0aGlzLG4pLGUuY2FsbCh0aGlzLE9iamVjdC5hc3NpZ24oe30sbi5ERUZBVUxUUyx0KSl9cmV0dXJuIE9yKG4sW3trZXk6Il91cGRhdGUiLHZhbHVlOmZ1bmN0aW9uKHQpe3QubWFzaz09PURhdGUmJmRlbGV0ZSB0Lm1hc2ssdC5wYXR0ZXJuJiYodC5tYXNrPXQucGF0dGVybik7dmFyIGU9dC5ibG9ja3M7dC5ibG9ja3M9T2JqZWN0LmFzc2lnbih7fSxuLkdFVF9ERUZBVUxUX0JMT0NLUygpKSx0Lm1pbiYmKHQuYmxvY2tzLlkuZnJvbT10Lm1pbi5nZXRGdWxsWWVhcigpKSx0Lm1heCYmKHQuYmxvY2tzLlkudG89dC5tYXguZ2V0RnVsbFllYXIoKSksdC5taW4mJnQubWF4JiZ0LmJsb2Nrcy5ZLmZyb209PT10LmJsb2Nrcy5ZLnRvJiYodC5ibG9ja3MubS5mcm9tPXQubWluLmdldE1vbnRoKCkrMSx0LmJsb2Nrcy5tLnRvPXQubWF4LmdldE1vbnRoKCkrMSx0LmJsb2Nrcy5tLmZyb209PT10LmJsb2Nrcy5tLnRvJiYodC5ibG9ja3MuZC5mcm9tPXQubWluLmdldERhdGUoKSx0LmJsb2Nrcy5kLnRvPXQubWF4LmdldERhdGUoKSkpLE9iamVjdC5hc3NpZ24odC5ibG9ja3MsdGhpcy5ibG9ja3MsZSksT2JqZWN0LmtleXModC5ibG9ja3MpLmZvckVhY2goKGZ1bmN0aW9uKGUpe3ZhciBuPXQuYmxvY2tzW2VdOyEoImF1dG9maXgiaW4gbikmJiJhdXRvZml4ImluIHQmJihuLmF1dG9maXg9dC5hdXRvZml4KX0pKSxOcihUcihuLnByb3RvdHlwZSksIl91cGRhdGUiLHRoaXMpLmNhbGwodGhpcyx0KX19LHtrZXk6ImRvVmFsaWRhdGUiLHZhbHVlOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9dGhpcy5kYXRlLGk9YXJndW1lbnRzLmxlbmd0aCxyPW5ldyBBcnJheShpKSx1PTA7dTxpO3UrKylyW3VdPWFyZ3VtZW50c1t1XTtyZXR1cm4odD1OcihUcihuLnByb3RvdHlwZSksImRvVmFsaWRhdGUiLHRoaXMpKS5jYWxsLmFwcGx5KHQsW3RoaXNdLmNvbmNhdChyKSkmJighdGhpcy5pc0NvbXBsZXRlfHx0aGlzLmlzRGF0ZUV4aXN0KHRoaXMudmFsdWUpJiZudWxsIT1lJiYobnVsbD09dGhpcy5taW58fHRoaXMubWluPD1lKSYmKG51bGw9PXRoaXMubWF4fHxlPD10aGlzLm1heCkpfX0se2tleToiaXNEYXRlRXhpc3QiLHZhbHVlOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmZvcm1hdCh0aGlzLnBhcnNlKHQsdGhpcyksdGhpcykuaW5kZXhPZih0KT49MH19LHtrZXk6ImRhdGUiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnR5cGVkVmFsdWV9LHNldDpmdW5jdGlvbih0KXt0aGlzLnR5cGVkVmFsdWU9dH19LHtrZXk6InR5cGVkVmFsdWUiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmlzQ29tcGxldGU\/TnIoVHIobi5wcm90b3R5cGUpLCJ0eXBlZFZhbHVlIix0aGlzKTpudWxsfSxzZXQ6ZnVuY3Rpb24odCl7enIoVHIobi5wcm90b3R5cGUpLCJ0eXBlZFZhbHVlIix0LHRoaXMsITApfX0se2tleToibWFza0VxdWFscyIsdmFsdWU6ZnVuY3Rpb24odCl7cmV0dXJuIHQ9PT1EYXRlfHxOcihUcihuLnByb3RvdHlwZSksIm1hc2tFcXVhbHMiLHRoaXMpLmNhbGwodGhpcyx0KX19XSksbn0oZ3UpO3l1LkRFRkFVTFRTPXtwYXR0ZXJuOiJkey59YG17Ln1gWSIsZm9ybWF0OmZ1bmN0aW9uKHQpe3JldHVybiB0P1tTdHJpbmcodC5nZXREYXRlKCkpLnBhZFN0YXJ0KDIsIjAiKSxTdHJpbmcodC5nZXRNb250aCgpKzEpLnBhZFN0YXJ0KDIsIjAiKSx0LmdldEZ1bGxZZWFyKCldLmpvaW4oIi4iKToiIn0scGFyc2U6ZnVuY3Rpb24odCl7dmFyIGU9cXIodC5zcGxpdCgiLiIpLDMpLG49ZVswXSxpPWVbMV0scj1lWzJdO3JldHVybiBuZXcgRGF0ZShyLGktMSxuKX19LHl1LkdFVF9ERUZBVUxUX0JMT0NLUz1mdW5jdGlvbigpe3JldHVybntkOnttYXNrOmt1LGZyb206MSx0bzozMSxtYXhMZW5ndGg6Mn0sbTp7bWFzazprdSxmcm9tOjEsdG86MTIsbWF4TGVuZ3RoOjJ9LFk6e21hc2s6a3UsZnJvbToxOTAwLHRvOjk5OTl9fX0saXUuTWFza2VkRGF0ZT15dTt2YXIgbXU9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KCl7eHIodGhpcyx0KX1yZXR1cm4gT3IodCxbe2tleToic2VsZWN0aW9uU3RhcnQiLGdldDpmdW5jdGlvbigpe3ZhciB0O3RyeXt0PXRoaXMuX3Vuc2FmZVNlbGVjdGlvblN0YXJ0fWNhdGNoKHQpe31yZXR1cm4gbnVsbCE9dD90OnRoaXMudmFsdWUubGVuZ3RofX0se2tleToic2VsZWN0aW9uRW5kIixnZXQ6ZnVuY3Rpb24oKXt2YXIgdDt0cnl7dD10aGlzLl91bnNhZmVTZWxlY3Rpb25FbmR9Y2F0Y2godCl7fXJldHVybiBudWxsIT10P3Q6dGhpcy52YWx1ZS5sZW5ndGh9fSx7a2V5OiJzZWxlY3QiLHZhbHVlOmZ1bmN0aW9uKHQsZSl7aWYobnVsbCE9dCYmbnVsbCE9ZSYmKHQhPT10aGlzLnNlbGVjdGlvblN0YXJ0fHxlIT09dGhpcy5zZWxlY3Rpb25FbmQpKXRyeXt0aGlzLl91bnNhZmVTZWxlY3QodCxlKX1jYXRjaCh0KXt9fX0se2tleToiX3Vuc2FmZVNlbGVjdCIsdmFsdWU6ZnVuY3Rpb24odCxlKXt9fSx7a2V5OiJpc0FjdGl2ZSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuITF9fSx7a2V5OiJiaW5kRXZlbnRzIix2YWx1ZTpmdW5jdGlvbih0KXt9fSx7a2V5OiJ1bmJpbmRFdmVudHMiLHZhbHVlOmZ1bmN0aW9uKCl7fX1dKSx0fSgpO2l1Lk1hc2tFbGVtZW50PW11O3ZhciBidT1mdW5jdGlvbih0KXtQcihuLHQpO3ZhciBlPVZyKG4pO2Z1bmN0aW9uIG4odCl7dmFyIGk7cmV0dXJuIHhyKHRoaXMsbiksKGk9ZS5jYWxsKHRoaXMpKS5pbnB1dD10LGkuX2hhbmRsZXJzPXt9LGl9cmV0dXJuIE9yKG4sW3trZXk6InJvb3RFbGVtZW50IixnZXQ6ZnVuY3Rpb24oKXt2YXIgdCxlLG47cmV0dXJuIG51bGwhPT0odD1udWxsPT09KGU9KG49dGhpcy5pbnB1dCkuZ2V0Um9vdE5vZGUpfHx2b2lkIDA9PT1lP3ZvaWQgMDplLmNhbGwobikpJiZ2b2lkIDAhPT10P3Q6ZG9jdW1lbnR9fSx7a2V5OiJpc0FjdGl2ZSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaW5wdXQ9PT10aGlzLnJvb3RFbGVtZW50LmFjdGl2ZUVsZW1lbnR9fSx7a2V5OiJfdW5zYWZlU2VsZWN0aW9uU3RhcnQiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmlucHV0LnNlbGVjdGlvblN0YXJ0fX0se2tleToiX3Vuc2FmZVNlbGVjdGlvbkVuZCIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaW5wdXQuc2VsZWN0aW9uRW5kfX0se2tleToiX3Vuc2FmZVNlbGVjdCIsdmFsdWU6ZnVuY3Rpb24odCxlKXt0aGlzLmlucHV0LnNldFNlbGVjdGlvblJhbmdlKHQsZSl9fSx7a2V5OiJ2YWx1ZSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaW5wdXQudmFsdWV9LHNldDpmdW5jdGlvbih0KXt0aGlzLmlucHV0LnZhbHVlPXR9fSx7a2V5OiJiaW5kRXZlbnRzIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT10aGlzO09iamVjdC5rZXlzKHQpLmZvckVhY2goKGZ1bmN0aW9uKGkpe3JldHVybiBlLl90b2dnbGVFdmVudEhhbmRsZXIobi5FVkVOVFNfTUFQW2ldLHRbaV0pfSkpfX0se2tleToidW5iaW5kRXZlbnRzIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PXRoaXM7T2JqZWN0LmtleXModGhpcy5faGFuZGxlcnMpLmZvckVhY2goKGZ1bmN0aW9uKGUpe3JldHVybiB0Ll90b2dnbGVFdmVudEhhbmRsZXIoZSl9KSl9fSx7a2V5OiJfdG9nZ2xlRXZlbnRIYW5kbGVyIix2YWx1ZTpmdW5jdGlvbih0LGUpe3RoaXMuX2hhbmRsZXJzW3RdJiYodGhpcy5pbnB1dC5yZW1vdmVFdmVudExpc3RlbmVyKHQsdGhpcy5faGFuZGxlcnNbdF0pLGRlbGV0ZSB0aGlzLl9oYW5kbGVyc1t0XSksZSYmKHRoaXMuaW5wdXQuYWRkRXZlbnRMaXN0ZW5lcih0LGUpLHRoaXMuX2hhbmRsZXJzW3RdPWUpfX1dKSxufShtdSk7YnUuRVZFTlRTX01BUD17c2VsZWN0aW9uQ2hhbmdlOiJrZXlkb3duIixpbnB1dDoiaW5wdXQiLGRyb3A6ImRyb3AiLGNsaWNrOiJjbGljayIsZm9jdXM6ImZvY3VzIixjb21taXQ6ImJsdXIifSxpdS5IVE1MTWFza0VsZW1lbnQ9YnU7dmFyIF91PWZ1bmN0aW9uKHQpe1ByKG4sdCk7dmFyIGU9VnIobik7ZnVuY3Rpb24gbigpe3JldHVybiB4cih0aGlzLG4pLGUuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiBPcihuLFt7a2V5OiJfdW5zYWZlU2VsZWN0aW9uU3RhcnQiLGdldDpmdW5jdGlvbigpe3ZhciB0PXRoaXMucm9vdEVsZW1lbnQsZT10LmdldFNlbGVjdGlvbiYmdC5nZXRTZWxlY3Rpb24oKSxuPWUmJmUuYW5jaG9yT2Zmc2V0LGk9ZSYmZS5mb2N1c09mZnNldDtyZXR1cm4gbnVsbD09aXx8bnVsbD09bnx8bjxpP246aX19LHtrZXk6Il91bnNhZmVTZWxlY3Rpb25FbmQiLGdldDpmdW5jdGlvbigpe3ZhciB0PXRoaXMucm9vdEVsZW1lbnQsZT10LmdldFNlbGVjdGlvbiYmdC5nZXRTZWxlY3Rpb24oKSxuPWUmJmUuYW5jaG9yT2Zmc2V0LGk9ZSYmZS5mb2N1c09mZnNldDtyZXR1cm4gbnVsbD09aXx8bnVsbD09bnx8bj5pP246aX19LHtrZXk6Il91bnNhZmVTZWxlY3QiLHZhbHVlOmZ1bmN0aW9uKHQsZSl7aWYodGhpcy5yb290RWxlbWVudC5jcmVhdGVSYW5nZSl7dmFyIG49dGhpcy5yb290RWxlbWVudC5jcmVhdGVSYW5nZSgpO24uc2V0U3RhcnQodGhpcy5pbnB1dC5maXJzdENoaWxkfHx0aGlzLmlucHV0LHQpLG4uc2V0RW5kKHRoaXMuaW5wdXQubGFzdENoaWxkfHx0aGlzLmlucHV0LGUpO3ZhciBpPXRoaXMucm9vdEVsZW1lbnQscj1pLmdldFNlbGVjdGlvbiYmaS5nZXRTZWxlY3Rpb24oKTtyJiYoci5yZW1vdmVBbGxSYW5nZXMoKSxyLmFkZFJhbmdlKG4pKX19fSx7a2V5OiJ2YWx1ZSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaW5wdXQudGV4dENvbnRlbnR9LHNldDpmdW5jdGlvbih0KXt0aGlzLmlucHV0LnRleHRDb250ZW50PXR9fV0pLG59KGJ1KTtpdS5IVE1MQ29udGVudGVkaXRhYmxlTWFza0VsZW1lbnQ9X3U7dmFyIEF1PVsibWFzayJdLEN1PWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdChlLG4pe3hyKHRoaXMsdCksdGhpcy5lbD1lIGluc3RhbmNlb2YgbXU\/ZTplLmlzQ29udGVudEVkaXRhYmxlJiYiSU5QVVQiIT09ZS50YWdOYW1lJiYiVEVYVEFSRUEiIT09ZS50YWdOYW1lP25ldyBfdShlKTpuZXcgYnUoZSksdGhpcy5tYXNrZWQ9c3UobiksdGhpcy5fbGlzdGVuZXJzPXt9LHRoaXMuX3ZhbHVlPSIiLHRoaXMuX3VubWFza2VkVmFsdWU9IiIsdGhpcy5fc2F2ZVNlbGVjdGlvbj10aGlzLl9zYXZlU2VsZWN0aW9uLmJpbmQodGhpcyksdGhpcy5fb25JbnB1dD10aGlzLl9vbklucHV0LmJpbmQodGhpcyksdGhpcy5fb25DaGFuZ2U9dGhpcy5fb25DaGFuZ2UuYmluZCh0aGlzKSx0aGlzLl9vbkRyb3A9dGhpcy5fb25Ecm9wLmJpbmQodGhpcyksdGhpcy5fb25Gb2N1cz10aGlzLl9vbkZvY3VzLmJpbmQodGhpcyksdGhpcy5fb25DbGljaz10aGlzLl9vbkNsaWNrLmJpbmQodGhpcyksdGhpcy5hbGlnbkN1cnNvcj10aGlzLmFsaWduQ3Vyc29yLmJpbmQodGhpcyksdGhpcy5hbGlnbkN1cnNvckZyaWVuZGx5PXRoaXMuYWxpZ25DdXJzb3JGcmllbmRseS5iaW5kKHRoaXMpLHRoaXMuX2JpbmRFdmVudHMoKSx0aGlzLnVwZGF0ZVZhbHVlKCksdGhpcy5fb25DaGFuZ2UoKX1yZXR1cm4gT3IodCxbe2tleToibWFzayIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubWFza2VkLm1hc2t9LHNldDpmdW5jdGlvbih0KXtpZighdGhpcy5tYXNrRXF1YWxzKHQpKWlmKHQgaW5zdGFuY2VvZiBpdS5NYXNrZWR8fHRoaXMubWFza2VkLmNvbnN0cnVjdG9yIT09dXUodCkpe3ZhciBlPXN1KHttYXNrOnR9KTtlLnVubWFza2VkVmFsdWU9dGhpcy5tYXNrZWQudW5tYXNrZWRWYWx1ZSx0aGlzLm1hc2tlZD1lfWVsc2UgdGhpcy5tYXNrZWQudXBkYXRlT3B0aW9ucyh7bWFzazp0fSl9fSx7a2V5OiJtYXNrRXF1YWxzIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZTtyZXR1cm4gbnVsbD09dHx8KG51bGw9PT0oZT10aGlzLm1hc2tlZCl8fHZvaWQgMD09PWU\/dm9pZCAwOmUubWFza0VxdWFscyh0KSl9fSx7a2V5OiJ2YWx1ZSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3ZhbHVlfSxzZXQ6ZnVuY3Rpb24odCl7dGhpcy5tYXNrZWQudmFsdWU9dCx0aGlzLnVwZGF0ZUNvbnRyb2woKSx0aGlzLmFsaWduQ3Vyc29yKCl9fSx7a2V5OiJ1bm1hc2tlZFZhbHVlIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fdW5tYXNrZWRWYWx1ZX0sc2V0OmZ1bmN0aW9uKHQpe3RoaXMubWFza2VkLnVubWFza2VkVmFsdWU9dCx0aGlzLnVwZGF0ZUNvbnRyb2woKSx0aGlzLmFsaWduQ3Vyc29yKCl9fSx7a2V5OiJ0eXBlZFZhbHVlIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tYXNrZWQudHlwZWRWYWx1ZX0sc2V0OmZ1bmN0aW9uKHQpe3RoaXMubWFza2VkLnR5cGVkVmFsdWU9dCx0aGlzLnVwZGF0ZUNvbnRyb2woKSx0aGlzLmFsaWduQ3Vyc29yKCl9fSx7a2V5OiJfYmluZEV2ZW50cyIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmVsLmJpbmRFdmVudHMoe3NlbGVjdGlvbkNoYW5nZTp0aGlzLl9zYXZlU2VsZWN0aW9uLGlucHV0OnRoaXMuX29uSW5wdXQsZHJvcDp0aGlzLl9vbkRyb3AsY2xpY2s6dGhpcy5fb25DbGljayxmb2N1czp0aGlzLl9vbkZvY3VzLGNvbW1pdDp0aGlzLl9vbkNoYW5nZX0pfX0se2tleToiX3VuYmluZEV2ZW50cyIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmVsJiZ0aGlzLmVsLnVuYmluZEV2ZW50cygpfX0se2tleToiX2ZpcmVFdmVudCIsdmFsdWU6ZnVuY3Rpb24odCl7Zm9yKHZhciBlPWFyZ3VtZW50cy5sZW5ndGgsbj1uZXcgQXJyYXkoZT4xP2UtMTowKSxpPTE7aTxlO2krKyluW2ktMV09YXJndW1lbnRzW2ldO3ZhciByPXRoaXMuX2xpc3RlbmVyc1t0XTtyJiZyLmZvckVhY2goKGZ1bmN0aW9uKHQpe3JldHVybiB0LmFwcGx5KHZvaWQgMCxuKX0pKX19LHtrZXk6InNlbGVjdGlvblN0YXJ0IixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fY3Vyc29yQ2hhbmdpbmc\/dGhpcy5fY2hhbmdpbmdDdXJzb3JQb3M6dGhpcy5lbC5zZWxlY3Rpb25TdGFydH19LHtrZXk6ImN1cnNvclBvcyIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2N1cnNvckNoYW5naW5nP3RoaXMuX2NoYW5naW5nQ3Vyc29yUG9zOnRoaXMuZWwuc2VsZWN0aW9uRW5kfSxzZXQ6ZnVuY3Rpb24odCl7dGhpcy5lbCYmdGhpcy5lbC5pc0FjdGl2ZSYmKHRoaXMuZWwuc2VsZWN0KHQsdCksdGhpcy5fc2F2ZVNlbGVjdGlvbigpKX19LHtrZXk6Il9zYXZlU2VsZWN0aW9uIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMudmFsdWUhPT10aGlzLmVsLnZhbHVlJiZjb25zb2xlLndhcm4oIkVsZW1lbnQgdmFsdWUgd2FzIGNoYW5nZWQgb3V0c2lkZSBvZiBtYXNrLiBTeW5jcm9uaXplIG1hc2sgdXNpbmcgYG1hc2sudXBkYXRlVmFsdWUoKWAgdG8gd29yayBwcm9wZXJseS4iKSx0aGlzLl9zZWxlY3Rpb249e3N0YXJ0OnRoaXMuc2VsZWN0aW9uU3RhcnQsZW5kOnRoaXMuY3Vyc29yUG9zfX19LHtrZXk6InVwZGF0ZVZhbHVlIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMubWFza2VkLnZhbHVlPXRoaXMuZWwudmFsdWUsdGhpcy5fdmFsdWU9dGhpcy5tYXNrZWQudmFsdWV9fSx7a2V5OiJ1cGRhdGVDb250cm9sIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PXRoaXMubWFza2VkLnVubWFza2VkVmFsdWUsZT10aGlzLm1hc2tlZC52YWx1ZSxuPXRoaXMudW5tYXNrZWRWYWx1ZSE9PXR8fHRoaXMudmFsdWUhPT1lO3RoaXMuX3VubWFza2VkVmFsdWU9dCx0aGlzLl92YWx1ZT1lLHRoaXMuZWwudmFsdWUhPT1lJiYodGhpcy5lbC52YWx1ZT1lKSxuJiZ0aGlzLl9maXJlQ2hhbmdlRXZlbnRzKCl9fSx7a2V5OiJ1cGRhdGVPcHRpb25zIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT10Lm1hc2ssbj1qcih0LEF1KSxpPSF0aGlzLm1hc2tFcXVhbHMoZSkscj0hdHUodGhpcy5tYXNrZWQsbik7aSYmKHRoaXMubWFzaz1lKSxyJiZ0aGlzLm1hc2tlZC51cGRhdGVPcHRpb25zKG4pLChpfHxyKSYmdGhpcy51cGRhdGVDb250cm9sKCl9fSx7a2V5OiJ1cGRhdGVDdXJzb3IiLHZhbHVlOmZ1bmN0aW9uKHQpe251bGwhPXQmJih0aGlzLmN1cnNvclBvcz10LHRoaXMuX2RlbGF5VXBkYXRlQ3Vyc29yKHQpKX19LHtrZXk6Il9kZWxheVVwZGF0ZUN1cnNvciIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGU9dGhpczt0aGlzLl9hYm9ydFVwZGF0ZUN1cnNvcigpLHRoaXMuX2NoYW5naW5nQ3Vyc29yUG9zPXQsdGhpcy5fY3Vyc29yQ2hhbmdpbmc9c2V0VGltZW91dCgoZnVuY3Rpb24oKXtlLmVsJiYoZS5jdXJzb3JQb3M9ZS5fY2hhbmdpbmdDdXJzb3JQb3MsZS5fYWJvcnRVcGRhdGVDdXJzb3IoKSl9KSwxMCl9fSx7a2V5OiJfZmlyZUNoYW5nZUV2ZW50cyIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLl9maXJlRXZlbnQoImFjY2VwdCIsdGhpcy5faW5wdXRFdmVudCksdGhpcy5tYXNrZWQuaXNDb21wbGV0ZSYmdGhpcy5fZmlyZUV2ZW50KCJjb21wbGV0ZSIsdGhpcy5faW5wdXRFdmVudCl9fSx7a2V5OiJfYWJvcnRVcGRhdGVDdXJzb3IiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5fY3Vyc29yQ2hhbmdpbmcmJihjbGVhclRpbWVvdXQodGhpcy5fY3Vyc29yQ2hhbmdpbmcpLGRlbGV0ZSB0aGlzLl9jdXJzb3JDaGFuZ2luZyl9fSx7a2V5OiJhbGlnbkN1cnNvciIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmN1cnNvclBvcz10aGlzLm1hc2tlZC5uZWFyZXN0SW5wdXRQb3ModGhpcy5tYXNrZWQubmVhcmVzdElucHV0UG9zKHRoaXMuY3Vyc29yUG9zLEtyKSl9fSx7a2V5OiJhbGlnbkN1cnNvckZyaWVuZGx5Iix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuc2VsZWN0aW9uU3RhcnQ9PT10aGlzLmN1cnNvclBvcyYmdGhpcy5hbGlnbkN1cnNvcigpfX0se2tleToib24iLHZhbHVlOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMuX2xpc3RlbmVyc1t0XXx8KHRoaXMuX2xpc3RlbmVyc1t0XT1bXSksdGhpcy5fbGlzdGVuZXJzW3RdLnB1c2goZSksdGhpc319LHtrZXk6Im9mZiIsdmFsdWU6ZnVuY3Rpb24odCxlKXtpZighdGhpcy5fbGlzdGVuZXJzW3RdKXJldHVybiB0aGlzO2lmKCFlKXJldHVybiBkZWxldGUgdGhpcy5fbGlzdGVuZXJzW3RdLHRoaXM7dmFyIG49dGhpcy5fbGlzdGVuZXJzW3RdLmluZGV4T2YoZSk7cmV0dXJuIG4+PTAmJnRoaXMuX2xpc3RlbmVyc1t0XS5zcGxpY2UobiwxKSx0aGlzfX0se2tleToiX29uSW5wdXQiLHZhbHVlOmZ1bmN0aW9uKHQpe2lmKHRoaXMuX2lucHV0RXZlbnQ9dCx0aGlzLl9hYm9ydFVwZGF0ZUN1cnNvcigpLCF0aGlzLl9zZWxlY3Rpb24pcmV0dXJuIHRoaXMudXBkYXRlVmFsdWUoKTt2YXIgZT1uZXcgZXUodGhpcy5lbC52YWx1ZSx0aGlzLmN1cnNvclBvcyx0aGlzLnZhbHVlLHRoaXMuX3NlbGVjdGlvbiksbj10aGlzLm1hc2tlZC5yYXdJbnB1dFZhbHVlLGk9dGhpcy5tYXNrZWQuc3BsaWNlKGUuc3RhcnRDaGFuZ2VQb3MsZS5yZW1vdmVkLmxlbmd0aCxlLmluc2VydGVkLGUucmVtb3ZlRGlyZWN0aW9uKS5vZmZzZXQscj1uPT09dGhpcy5tYXNrZWQucmF3SW5wdXRWYWx1ZT9lLnJlbW92ZURpcmVjdGlvbjpHcix1PXRoaXMubWFza2VkLm5lYXJlc3RJbnB1dFBvcyhlLnN0YXJ0Q2hhbmdlUG9zK2kscik7ciE9PUdyJiYodT10aGlzLm1hc2tlZC5uZWFyZXN0SW5wdXRQb3ModSxHcikpLHRoaXMudXBkYXRlQ29udHJvbCgpLHRoaXMudXBkYXRlQ3Vyc29yKHUpLGRlbGV0ZSB0aGlzLl9pbnB1dEV2ZW50fX0se2tleToiX29uQ2hhbmdlIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMudmFsdWUhPT10aGlzLmVsLnZhbHVlJiZ0aGlzLnVwZGF0ZVZhbHVlKCksdGhpcy5tYXNrZWQuZG9Db21taXQoKSx0aGlzLnVwZGF0ZUNvbnRyb2woKSx0aGlzLl9zYXZlU2VsZWN0aW9uKCl9fSx7a2V5OiJfb25Ecm9wIix2YWx1ZTpmdW5jdGlvbih0KXt0LnByZXZlbnREZWZhdWx0KCksdC5zdG9wUHJvcGFnYXRpb24oKX19LHtrZXk6Il9vbkZvY3VzIix2YWx1ZTpmdW5jdGlvbih0KXt0aGlzLmFsaWduQ3Vyc29yRnJpZW5kbHkoKX19LHtrZXk6Il9vbkNsaWNrIix2YWx1ZTpmdW5jdGlvbih0KXt0aGlzLmFsaWduQ3Vyc29yRnJpZW5kbHkoKX19LHtrZXk6ImRlc3Ryb3kiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5fdW5iaW5kRXZlbnRzKCksdGhpcy5fbGlzdGVuZXJzLmxlbmd0aD0wLGRlbGV0ZSB0aGlzLmVsfX1dKSx0fSgpO2l1LklucHV0TWFzaz1DdTt2YXIgRXU9ZnVuY3Rpb24odCl7UHIobix0KTt2YXIgZT1WcihuKTtmdW5jdGlvbiBuKCl7cmV0dXJuIHhyKHRoaXMsbiksZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9cmV0dXJuIE9yKG4sW3trZXk6Il91cGRhdGUiLHZhbHVlOmZ1bmN0aW9uKHQpe3QuZW51bSYmKHQubWFzaz0iKiIucmVwZWF0KHQuZW51bVswXS5sZW5ndGgpKSxOcihUcihuLnByb3RvdHlwZSksIl91cGRhdGUiLHRoaXMpLmNhbGwodGhpcyx0KX19LHtrZXk6ImRvVmFsaWRhdGUiLHZhbHVlOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9dGhpcyxpPWFyZ3VtZW50cy5sZW5ndGgscj1uZXcgQXJyYXkoaSksdT0wO3U8aTt1Kyspclt1XT1hcmd1bWVudHNbdV07cmV0dXJuIHRoaXMuZW51bS5zb21lKChmdW5jdGlvbih0KXtyZXR1cm4gdC5pbmRleE9mKGUudW5tYXNrZWRWYWx1ZSk+PTB9KSkmJih0PU5yKFRyKG4ucHJvdG90eXBlKSwiZG9WYWxpZGF0ZSIsdGhpcykpLmNhbGwuYXBwbHkodCxbdGhpc10uY29uY2F0KHIpKX19XSksbn0oZ3UpO2l1Lk1hc2tlZEVudW09RXU7dmFyIEZ1PWZ1bmN0aW9uKHQpe1ByKG4sdCk7dmFyIGU9VnIobik7ZnVuY3Rpb24gbih0KXtyZXR1cm4geHIodGhpcyxuKSxlLmNhbGwodGhpcyxPYmplY3QuYXNzaWduKHt9LG4uREVGQVVMVFMsdCkpfXJldHVybiBPcihuLFt7a2V5OiJfdXBkYXRlIix2YWx1ZTpmdW5jdGlvbih0KXtOcihUcihuLnByb3RvdHlwZSksIl91cGRhdGUiLHRoaXMpLmNhbGwodGhpcyx0KSx0aGlzLl91cGRhdGVSZWdFeHBzKCl9fSx7a2V5OiJfdXBkYXRlUmVnRXhwcyIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD0iXiIrKHRoaXMuYWxsb3dOZWdhdGl2ZT8iWyt8XFwtXT8iOiIiKSxlPSh0aGlzLnNjYWxlPyIoIitKcih0aGlzLnJhZGl4KSsiXFxkezAsIit0aGlzLnNjYWxlKyJ9KT8iOiIiKSsiJCI7dGhpcy5fbnVtYmVyUmVnRXhwSW5wdXQ9bmV3IFJlZ0V4cCh0KyIoMHwoWzEtOV0rXFxkKikpPyIrZSksdGhpcy5fbnVtYmVyUmVnRXhwPW5ldyBSZWdFeHAodCsiXFxkKiIrZSksdGhpcy5fbWFwVG9SYWRpeFJlZ0V4cD1uZXcgUmVnRXhwKCJbIit0aGlzLm1hcFRvUmFkaXgubWFwKEpyKS5qb2luKCIiKSsiXSIsImciKSx0aGlzLl90aG91c2FuZHNTZXBhcmF0b3JSZWdFeHA9bmV3IFJlZ0V4cChKcih0aGlzLnRob3VzYW5kc1NlcGFyYXRvciksImciKX19LHtrZXk6Il9yZW1vdmVUaG91c2FuZHNTZXBhcmF0b3JzIix2YWx1ZTpmdW5jdGlvbih0KXtyZXR1cm4gdC5yZXBsYWNlKHRoaXMuX3Rob3VzYW5kc1NlcGFyYXRvclJlZ0V4cCwiIil9fSx7a2V5OiJfaW5zZXJ0VGhvdXNhbmRzU2VwYXJhdG9ycyIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGU9dC5zcGxpdCh0aGlzLnJhZGl4KTtyZXR1cm4gZVswXT1lWzBdLnJlcGxhY2UoL1xCKD89KFxkezN9KSsoPyFcZCkpL2csdGhpcy50aG91c2FuZHNTZXBhcmF0b3IpLGUuam9pbih0aGlzLnJhZGl4KX19LHtrZXk6ImRvUHJlcGFyZSIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGU7dD10LnJlcGxhY2UodGhpcy5fbWFwVG9SYWRpeFJlZ0V4cCx0aGlzLnJhZGl4KTtmb3IodmFyIGk9dGhpcy5fcmVtb3ZlVGhvdXNhbmRzU2VwYXJhdG9ycyh0KSxyPWFyZ3VtZW50cy5sZW5ndGgsdT1uZXcgQXJyYXkocj4xP3ItMTowKSxzPTE7czxyO3MrKyl1W3MtMV09YXJndW1lbnRzW3NdO3ZhciBhPVFyKChlPU5yKFRyKG4ucHJvdG90eXBlKSwiZG9QcmVwYXJlIix0aGlzKSkuY2FsbC5hcHBseShlLFt0aGlzLGldLmNvbmNhdCh1KSkpLG89cXIoYSwyKSxsPW9bMF0saD1vWzFdO3JldHVybiB0JiYhaSYmKGguc2tpcD0hMCksW2wsaF19fSx7a2V5OiJfc2VwYXJhdG9yc0NvdW50Iix2YWx1ZTpmdW5jdGlvbih0KXtmb3IodmFyIGU9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0mJmFyZ3VtZW50c1sxXSxuPTAsaT0wO2k8dDsrK2kpdGhpcy5fdmFsdWUuaW5kZXhPZih0aGlzLnRob3VzYW5kc1NlcGFyYXRvcixpKT09PWkmJigrK24sZSYmKHQrPXRoaXMudGhvdXNhbmRzU2VwYXJhdG9yLmxlbmd0aCkpO3JldHVybiBufX0se2tleToiX3NlcGFyYXRvcnNDb3VudEZyb21TbGljZSIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06dGhpcy5fdmFsdWU7cmV0dXJuIHRoaXMuX3NlcGFyYXRvcnNDb3VudCh0aGlzLl9yZW1vdmVUaG91c2FuZHNTZXBhcmF0b3JzKHQpLmxlbmd0aCwhMCl9fSx7a2V5OiJleHRyYWN0SW5wdXQiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0\/YXJndW1lbnRzWzBdOjAsZT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06dGhpcy52YWx1ZS5sZW5ndGgsaT1hcmd1bWVudHMubGVuZ3RoPjI\/YXJndW1lbnRzWzJdOnZvaWQgMCxyPXRoaXMuX2FkanVzdFJhbmdlV2l0aFNlcGFyYXRvcnModCxlKSx1PXFyKHIsMik7cmV0dXJuIHQ9dVswXSxlPXVbMV0sdGhpcy5fcmVtb3ZlVGhvdXNhbmRzU2VwYXJhdG9ycyhOcihUcihuLnByb3RvdHlwZSksImV4dHJhY3RJbnB1dCIsdGhpcykuY2FsbCh0aGlzLHQsZSxpKSl9fSx7a2V5OiJfYXBwZW5kQ2hhclJhdyIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGU9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0\/YXJndW1lbnRzWzFdOnt9O2lmKCF0aGlzLnRob3VzYW5kc1NlcGFyYXRvcilyZXR1cm4gTnIoVHIobi5wcm90b3R5cGUpLCJfYXBwZW5kQ2hhclJhdyIsdGhpcykuY2FsbCh0aGlzLHQsZSk7dmFyIGk9ZS50YWlsJiZlLl9iZWZvcmVUYWlsU3RhdGU\/ZS5fYmVmb3JlVGFpbFN0YXRlLl92YWx1ZTp0aGlzLl92YWx1ZSxyPXRoaXMuX3NlcGFyYXRvcnNDb3VudEZyb21TbGljZShpKTt0aGlzLl92YWx1ZT10aGlzLl9yZW1vdmVUaG91c2FuZHNTZXBhcmF0b3JzKHRoaXMudmFsdWUpO3ZhciB1PU5yKFRyKG4ucHJvdG90eXBlKSwiX2FwcGVuZENoYXJSYXciLHRoaXMpLmNhbGwodGhpcyx0LGUpO3RoaXMuX3ZhbHVlPXRoaXMuX2luc2VydFRob3VzYW5kc1NlcGFyYXRvcnModGhpcy5fdmFsdWUpO3ZhciBzPWUudGFpbCYmZS5fYmVmb3JlVGFpbFN0YXRlP2UuX2JlZm9yZVRhaWxTdGF0ZS5fdmFsdWU6dGhpcy5fdmFsdWUsYT10aGlzLl9zZXBhcmF0b3JzQ291bnRGcm9tU2xpY2Uocyk7cmV0dXJuIHUudGFpbFNoaWZ0Kz0oYS1yKSp0aGlzLnRob3VzYW5kc1NlcGFyYXRvci5sZW5ndGgsdS5za2lwPSF1LnJhd0luc2VydGVkJiZ0PT09dGhpcy50aG91c2FuZHNTZXBhcmF0b3IsdX19LHtrZXk6Il9maW5kU2VwYXJhdG9yQXJvdW5kIix2YWx1ZTpmdW5jdGlvbih0KXtpZih0aGlzLnRob3VzYW5kc1NlcGFyYXRvcil7dmFyIGU9dC10aGlzLnRob3VzYW5kc1NlcGFyYXRvci5sZW5ndGgrMSxuPXRoaXMudmFsdWUuaW5kZXhPZih0aGlzLnRob3VzYW5kc1NlcGFyYXRvcixlKTtpZihuPD10KXJldHVybiBufXJldHVybi0xfX0se2tleToiX2FkanVzdFJhbmdlV2l0aFNlcGFyYXRvcnMiLHZhbHVlOmZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcy5fZmluZFNlcGFyYXRvckFyb3VuZCh0KTtuPj0wJiYodD1uKTt2YXIgaT10aGlzLl9maW5kU2VwYXJhdG9yQXJvdW5kKGUpO3JldHVybiBpPj0wJiYoZT1pK3RoaXMudGhvdXNhbmRzU2VwYXJhdG9yLmxlbmd0aCksW3QsZV19fSx7a2V5OiJyZW1vdmUiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0\/YXJndW1lbnRzWzBdOjAsZT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06dGhpcy52YWx1ZS5sZW5ndGgsbj10aGlzLl9hZGp1c3RSYW5nZVdpdGhTZXBhcmF0b3JzKHQsZSksaT1xcihuLDIpO3Q9aVswXSxlPWlbMV07dmFyIHI9dGhpcy52YWx1ZS5zbGljZSgwLHQpLHU9dGhpcy52YWx1ZS5zbGljZShlKSxzPXRoaXMuX3NlcGFyYXRvcnNDb3VudChyLmxlbmd0aCk7dGhpcy5fdmFsdWU9dGhpcy5faW5zZXJ0VGhvdXNhbmRzU2VwYXJhdG9ycyh0aGlzLl9yZW1vdmVUaG91c2FuZHNTZXBhcmF0b3JzKHIrdSkpO3ZhciBhPXRoaXMuX3NlcGFyYXRvcnNDb3VudEZyb21TbGljZShyKTtyZXR1cm4gbmV3IFlyKHt0YWlsU2hpZnQ6KGEtcykqdGhpcy50aG91c2FuZHNTZXBhcmF0b3IubGVuZ3RofSl9fSx7a2V5OiJuZWFyZXN0SW5wdXRQb3MiLHZhbHVlOmZ1bmN0aW9uKHQsZSl7aWYoIXRoaXMudGhvdXNhbmRzU2VwYXJhdG9yKXJldHVybiB0O3N3aXRjaChlKXtjYXNlIEdyOmNhc2UgS3I6Y2FzZSAkcjp2YXIgbj10aGlzLl9maW5kU2VwYXJhdG9yQXJvdW5kKHQtMSk7aWYobj49MCl7dmFyIGk9bit0aGlzLnRob3VzYW5kc1NlcGFyYXRvci5sZW5ndGg7aWYodDxpfHx0aGlzLnZhbHVlLmxlbmd0aDw9aXx8ZT09PSRyKXJldHVybiBufWJyZWFrO2Nhc2UgV3I6Y2FzZSBYcjp2YXIgcj10aGlzLl9maW5kU2VwYXJhdG9yQXJvdW5kKHQpO2lmKHI+PTApcmV0dXJuIHIrdGhpcy50aG91c2FuZHNTZXBhcmF0b3IubGVuZ3RofXJldHVybiB0fX0se2tleToiZG9WYWxpZGF0ZSIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGU9KHQuaW5wdXQ\/dGhpcy5fbnVtYmVyUmVnRXhwSW5wdXQ6dGhpcy5fbnVtYmVyUmVnRXhwKS50ZXN0KHRoaXMuX3JlbW92ZVRob3VzYW5kc1NlcGFyYXRvcnModGhpcy52YWx1ZSkpO2lmKGUpe3ZhciBpPXRoaXMubnVtYmVyO2U9ZSYmIWlzTmFOKGkpJiYobnVsbD09dGhpcy5taW58fHRoaXMubWluPj0wfHx0aGlzLm1pbjw9dGhpcy5udW1iZXIpJiYobnVsbD09dGhpcy5tYXh8fHRoaXMubWF4PD0wfHx0aGlzLm51bWJlcjw9dGhpcy5tYXgpfXJldHVybiBlJiZOcihUcihuLnByb3RvdHlwZSksImRvVmFsaWRhdGUiLHRoaXMpLmNhbGwodGhpcyx0KX19LHtrZXk6ImRvQ29tbWl0Iix2YWx1ZTpmdW5jdGlvbigpe2lmKHRoaXMudmFsdWUpe3ZhciB0PXRoaXMubnVtYmVyLGU9dDtudWxsIT10aGlzLm1pbiYmKGU9TWF0aC5tYXgoZSx0aGlzLm1pbikpLG51bGwhPXRoaXMubWF4JiYoZT1NYXRoLm1pbihlLHRoaXMubWF4KSksZSE9PXQmJih0aGlzLnVubWFza2VkVmFsdWU9U3RyaW5nKGUpKTt2YXIgaT10aGlzLnZhbHVlO3RoaXMubm9ybWFsaXplWmVyb3MmJihpPXRoaXMuX25vcm1hbGl6ZVplcm9zKGkpKSx0aGlzLnBhZEZyYWN0aW9uYWxaZXJvcyYmdGhpcy5zY2FsZT4wJiYoaT10aGlzLl9wYWRGcmFjdGlvbmFsWmVyb3MoaSkpLHRoaXMuX3ZhbHVlPWl9TnIoVHIobi5wcm90b3R5cGUpLCJkb0NvbW1pdCIsdGhpcykuY2FsbCh0aGlzKX19LHtrZXk6Il9ub3JtYWxpemVaZXJvcyIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fcmVtb3ZlVGhvdXNhbmRzU2VwYXJhdG9ycyh0KS5zcGxpdCh0aGlzLnJhZGl4KTtyZXR1cm4gZVswXT1lWzBdLnJlcGxhY2UoL14oXEQqKSgwKikoXGQqKS8sKGZ1bmN0aW9uKHQsZSxuLGkpe3JldHVybiBlK2l9KSksdC5sZW5ndGgmJiEvXGQkLy50ZXN0KGVbMF0pJiYoZVswXT1lWzBdKyIwIiksZS5sZW5ndGg+MSYmKGVbMV09ZVsxXS5yZXBsYWNlKC8wKiQvLCIiKSxlWzFdLmxlbmd0aHx8KGUubGVuZ3RoPTEpKSx0aGlzLl9pbnNlcnRUaG91c2FuZHNTZXBhcmF0b3JzKGUuam9pbih0aGlzLnJhZGl4KSl9fSx7a2V5OiJfcGFkRnJhY3Rpb25hbFplcm9zIix2YWx1ZTpmdW5jdGlvbih0KXtpZighdClyZXR1cm4gdDt2YXIgZT10LnNwbGl0KHRoaXMucmFkaXgpO3JldHVybiBlLmxlbmd0aDwyJiZlLnB1c2goIiIpLGVbMV09ZVsxXS5wYWRFbmQodGhpcy5zY2FsZSwiMCIpLGUuam9pbih0aGlzLnJhZGl4KX19LHtrZXk6InVubWFza2VkVmFsdWUiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9yZW1vdmVUaG91c2FuZHNTZXBhcmF0b3JzKHRoaXMuX25vcm1hbGl6ZVplcm9zKHRoaXMudmFsdWUpKS5yZXBsYWNlKHRoaXMucmFkaXgsIi4iKX0sc2V0OmZ1bmN0aW9uKHQpe3pyKFRyKG4ucHJvdG90eXBlKSwidW5tYXNrZWRWYWx1ZSIsdC5yZXBsYWNlKCIuIix0aGlzLnJhZGl4KSx0aGlzLCEwKX19LHtrZXk6InR5cGVkVmFsdWUiLGdldDpmdW5jdGlvbigpe3JldHVybiBOdW1iZXIodGhpcy51bm1hc2tlZFZhbHVlKX0sc2V0OmZ1bmN0aW9uKHQpe3pyKFRyKG4ucHJvdG90eXBlKSwidW5tYXNrZWRWYWx1ZSIsU3RyaW5nKHQpLHRoaXMsITApfX0se2tleToibnVtYmVyIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy50eXBlZFZhbHVlfSxzZXQ6ZnVuY3Rpb24odCl7dGhpcy50eXBlZFZhbHVlPXR9fSx7a2V5OiJhbGxvd05lZ2F0aXZlIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zaWduZWR8fG51bGwhPXRoaXMubWluJiZ0aGlzLm1pbjwwfHxudWxsIT10aGlzLm1heCYmdGhpcy5tYXg8MH19XSksbn0ocnUpO0Z1LkRFRkFVTFRTPXtyYWRpeDoiLCIsdGhvdXNhbmRzU2VwYXJhdG9yOiIiLG1hcFRvUmFkaXg6WyIuIl0sc2NhbGU6MixzaWduZWQ6ITEsbm9ybWFsaXplWmVyb3M6ITAscGFkRnJhY3Rpb25hbFplcm9zOiExfSxpdS5NYXNrZWROdW1iZXI9RnU7dmFyIFN1PWZ1bmN0aW9uKHQpe1ByKG4sdCk7dmFyIGU9VnIobik7ZnVuY3Rpb24gbigpe3JldHVybiB4cih0aGlzLG4pLGUuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiBPcihuLFt7a2V5OiJfdXBkYXRlIix2YWx1ZTpmdW5jdGlvbih0KXt0Lm1hc2smJih0LnZhbGlkYXRlPXQubWFzayksTnIoVHIobi5wcm90b3R5cGUpLCJfdXBkYXRlIix0aGlzKS5jYWxsKHRoaXMsdCl9fV0pLG59KHJ1KTtpdS5NYXNrZWRGdW5jdGlvbj1TdTt2YXIgd3U9WyJjb21waWxlZE1hc2tzIiwiY3VycmVudE1hc2tSZWYiLCJjdXJyZW50TWFzayJdLEJ1PWZ1bmN0aW9uKHQpe1ByKG4sdCk7dmFyIGU9VnIobik7ZnVuY3Rpb24gbih0KXt2YXIgaTtyZXR1cm4geHIodGhpcyxuKSwoaT1lLmNhbGwodGhpcyxPYmplY3QuYXNzaWduKHt9LG4uREVGQVVMVFMsdCkpKS5jdXJyZW50TWFzaz1udWxsLGl9cmV0dXJuIE9yKG4sW3trZXk6Il91cGRhdGUiLHZhbHVlOmZ1bmN0aW9uKHQpe05yKFRyKG4ucHJvdG90eXBlKSwiX3VwZGF0ZSIsdGhpcykuY2FsbCh0aGlzLHQpLCJtYXNrImluIHQmJih0aGlzLmNvbXBpbGVkTWFza3M9QXJyYXkuaXNBcnJheSh0Lm1hc2spP3QubWFzay5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBzdSh0KX0pKTpbXSl9fSx7a2V5OiJfYXBwZW5kQ2hhclJhdyIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGU9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0\/YXJndW1lbnRzWzFdOnt9LG49dGhpcy5fYXBwbHlEaXNwYXRjaCh0LGUpO3JldHVybiB0aGlzLmN1cnJlbnRNYXNrJiZuLmFnZ3JlZ2F0ZSh0aGlzLmN1cnJlbnRNYXNrLl9hcHBlbmRDaGFyKHQsZSkpLG59fSx7a2V5OiJfYXBwbHlEaXNwYXRjaCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06IiIsZT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06e30sbj1lLnRhaWwmJm51bGwhPWUuX2JlZm9yZVRhaWxTdGF0ZT9lLl9iZWZvcmVUYWlsU3RhdGUuX3ZhbHVlOnRoaXMudmFsdWUsaT10aGlzLnJhd0lucHV0VmFsdWUscj1lLnRhaWwmJm51bGwhPWUuX2JlZm9yZVRhaWxTdGF0ZT9lLl9iZWZvcmVUYWlsU3RhdGUuX3Jhd0lucHV0VmFsdWU6aSx1PWkuc2xpY2Uoci5sZW5ndGgpLHM9dGhpcy5jdXJyZW50TWFzayxhPW5ldyBZcixvPXMmJnMuc3RhdGU7aWYodGhpcy5jdXJyZW50TWFzaz10aGlzLmRvRGlzcGF0Y2godCxPYmplY3QuYXNzaWduKHt9LGUpKSx0aGlzLmN1cnJlbnRNYXNrKWlmKHRoaXMuY3VycmVudE1hc2shPT1zKXtpZih0aGlzLmN1cnJlbnRNYXNrLnJlc2V0KCkscil7dmFyIGw9dGhpcy5jdXJyZW50TWFzay5hcHBlbmQocix7cmF3OiEwfSk7YS50YWlsU2hpZnQ9bC5pbnNlcnRlZC5sZW5ndGgtbi5sZW5ndGh9dSYmKGEudGFpbFNoaWZ0Kz10aGlzLmN1cnJlbnRNYXNrLmFwcGVuZCh1LHtyYXc6ITAsdGFpbDohMH0pLnRhaWxTaGlmdCl9ZWxzZSB0aGlzLmN1cnJlbnRNYXNrLnN0YXRlPW87cmV0dXJuIGF9fSx7a2V5OiJfYXBwZW5kUGxhY2Vob2xkZXIiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5fYXBwbHlEaXNwYXRjaC5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIHRoaXMuY3VycmVudE1hc2smJnQuYWdncmVnYXRlKHRoaXMuY3VycmVudE1hc2suX2FwcGVuZFBsYWNlaG9sZGVyKCkpLHR9fSx7a2V5OiJfYXBwZW5kRWFnZXIiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5fYXBwbHlEaXNwYXRjaC5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIHRoaXMuY3VycmVudE1hc2smJnQuYWdncmVnYXRlKHRoaXMuY3VycmVudE1hc2suX2FwcGVuZEVhZ2VyKCkpLHR9fSx7a2V5OiJkb0Rpc3BhdGNoIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06e307cmV0dXJuIHRoaXMuZGlzcGF0Y2godCx0aGlzLGUpfX0se2tleToiZG9WYWxpZGF0ZSIsdmFsdWU6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZSxpPWFyZ3VtZW50cy5sZW5ndGgscj1uZXcgQXJyYXkoaSksdT0wO3U8aTt1Kyspclt1XT1hcmd1bWVudHNbdV07cmV0dXJuKHQ9TnIoVHIobi5wcm90b3R5cGUpLCJkb1ZhbGlkYXRlIix0aGlzKSkuY2FsbC5hcHBseSh0LFt0aGlzXS5jb25jYXQocikpJiYoIXRoaXMuY3VycmVudE1hc2t8fChlPXRoaXMuY3VycmVudE1hc2spLmRvVmFsaWRhdGUuYXBwbHkoZSxyKSl9fSx7a2V5OiJyZXNldCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdDtudWxsPT09KHQ9dGhpcy5jdXJyZW50TWFzayl8fHZvaWQgMD09PXR8fHQucmVzZXQoKSx0aGlzLmNvbXBpbGVkTWFza3MuZm9yRWFjaCgoZnVuY3Rpb24odCl7cmV0dXJuIHQucmVzZXQoKX0pKX19LHtrZXk6InZhbHVlIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jdXJyZW50TWFzaz90aGlzLmN1cnJlbnRNYXNrLnZhbHVlOiIifSxzZXQ6ZnVuY3Rpb24odCl7enIoVHIobi5wcm90b3R5cGUpLCJ2YWx1ZSIsdCx0aGlzLCEwKX19LHtrZXk6InVubWFza2VkVmFsdWUiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmN1cnJlbnRNYXNrP3RoaXMuY3VycmVudE1hc2sudW5tYXNrZWRWYWx1ZToiIn0sc2V0OmZ1bmN0aW9uKHQpe3pyKFRyKG4ucHJvdG90eXBlKSwidW5tYXNrZWRWYWx1ZSIsdCx0aGlzLCEwKX19LHtrZXk6InR5cGVkVmFsdWUiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmN1cnJlbnRNYXNrP3RoaXMuY3VycmVudE1hc2sudHlwZWRWYWx1ZToiIn0sc2V0OmZ1bmN0aW9uKHQpe3ZhciBlPVN0cmluZyh0KTt0aGlzLmN1cnJlbnRNYXNrJiYodGhpcy5jdXJyZW50TWFzay50eXBlZFZhbHVlPXQsZT10aGlzLmN1cnJlbnRNYXNrLnVubWFza2VkVmFsdWUpLHRoaXMudW5tYXNrZWRWYWx1ZT1lfX0se2tleToiaXNDb21wbGV0ZSIsZ2V0OmZ1bmN0aW9uKCl7dmFyIHQ7cmV0dXJuIEJvb2xlYW4obnVsbD09PSh0PXRoaXMuY3VycmVudE1hc2spfHx2b2lkIDA9PT10P3ZvaWQgMDp0LmlzQ29tcGxldGUpfX0se2tleToiaXNGaWxsZWQiLGdldDpmdW5jdGlvbigpe3ZhciB0O3JldHVybiBCb29sZWFuKG51bGw9PT0odD10aGlzLmN1cnJlbnRNYXNrKXx8dm9pZCAwPT09dD92b2lkIDA6dC5pc0ZpbGxlZCl9fSx7a2V5OiJyZW1vdmUiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQsZT1uZXcgWXI7dGhpcy5jdXJyZW50TWFzayYmZS5hZ2dyZWdhdGUoKHQ9dGhpcy5jdXJyZW50TWFzaykucmVtb3ZlLmFwcGx5KHQsYXJndW1lbnRzKSkuYWdncmVnYXRlKHRoaXMuX2FwcGx5RGlzcGF0Y2goKSk7cmV0dXJuIGV9fSx7a2V5OiJzdGF0ZSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIE9iamVjdC5hc3NpZ24oe30sTnIoVHIobi5wcm90b3R5cGUpLCJzdGF0ZSIsdGhpcykse19yYXdJbnB1dFZhbHVlOnRoaXMucmF3SW5wdXRWYWx1ZSxjb21waWxlZE1hc2tzOnRoaXMuY29tcGlsZWRNYXNrcy5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB0LnN0YXRlfSkpLGN1cnJlbnRNYXNrUmVmOnRoaXMuY3VycmVudE1hc2ssY3VycmVudE1hc2s6dGhpcy5jdXJyZW50TWFzayYmdGhpcy5jdXJyZW50TWFzay5zdGF0ZX0pfSxzZXQ6ZnVuY3Rpb24odCl7dmFyIGU9dC5jb21waWxlZE1hc2tzLGk9dC5jdXJyZW50TWFza1JlZixyPXQuY3VycmVudE1hc2ssdT1qcih0LHd1KTt0aGlzLmNvbXBpbGVkTWFza3MuZm9yRWFjaCgoZnVuY3Rpb24odCxuKXtyZXR1cm4gdC5zdGF0ZT1lW25dfSkpLG51bGwhPWkmJih0aGlzLmN1cnJlbnRNYXNrPWksdGhpcy5jdXJyZW50TWFzay5zdGF0ZT1yKSx6cihUcihuLnByb3RvdHlwZSksInN0YXRlIix1LHRoaXMsITApfX0se2tleToiZXh0cmFjdElucHV0Iix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0O3JldHVybiB0aGlzLmN1cnJlbnRNYXNrPyh0PXRoaXMuY3VycmVudE1hc2spLmV4dHJhY3RJbnB1dC5hcHBseSh0LGFyZ3VtZW50cyk6IiJ9fSx7a2V5OiJleHRyYWN0VGFpbCIsdmFsdWU6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZSxpPWFyZ3VtZW50cy5sZW5ndGgscj1uZXcgQXJyYXkoaSksdT0wO3U8aTt1Kyspclt1XT1hcmd1bWVudHNbdV07cmV0dXJuIHRoaXMuY3VycmVudE1hc2s\/KHQ9dGhpcy5jdXJyZW50TWFzaykuZXh0cmFjdFRhaWwuYXBwbHkodCxyKTooZT1OcihUcihuLnByb3RvdHlwZSksImV4dHJhY3RUYWlsIix0aGlzKSkuY2FsbC5hcHBseShlLFt0aGlzXS5jb25jYXQocikpfX0se2tleToiZG9Db21taXQiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5jdXJyZW50TWFzayYmdGhpcy5jdXJyZW50TWFzay5kb0NvbW1pdCgpLE5yKFRyKG4ucHJvdG90eXBlKSwiZG9Db21taXQiLHRoaXMpLmNhbGwodGhpcyl9fSx7a2V5OiJuZWFyZXN0SW5wdXRQb3MiLHZhbHVlOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGUsaT1hcmd1bWVudHMubGVuZ3RoLHI9bmV3IEFycmF5KGkpLHU9MDt1PGk7dSsrKXJbdV09YXJndW1lbnRzW3VdO3JldHVybiB0aGlzLmN1cnJlbnRNYXNrPyh0PXRoaXMuY3VycmVudE1hc2spLm5lYXJlc3RJbnB1dFBvcy5hcHBseSh0LHIpOihlPU5yKFRyKG4ucHJvdG90eXBlKSwibmVhcmVzdElucHV0UG9zIix0aGlzKSkuY2FsbC5hcHBseShlLFt0aGlzXS5jb25jYXQocikpfX0se2tleToib3ZlcndyaXRlIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jdXJyZW50TWFzaz90aGlzLmN1cnJlbnRNYXNrLm92ZXJ3cml0ZTpOcihUcihuLnByb3RvdHlwZSksIm92ZXJ3cml0ZSIsdGhpcyl9LHNldDpmdW5jdGlvbih0KXtjb25zb2xlLndhcm4oJyJvdmVyd3JpdGUiIG9wdGlvbiBpcyBub3QgYXZhaWxhYmxlIGluIGR5bmFtaWMgbWFzaywgdXNlIHRoaXMgb3B0aW9uIGluIHNpYmxpbmdzJyl9fSx7a2V5OiJlYWdlciIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY3VycmVudE1hc2s\/dGhpcy5jdXJyZW50TWFzay5lYWdlcjpOcihUcihuLnByb3RvdHlwZSksImVhZ2VyIix0aGlzKX0sc2V0OmZ1bmN0aW9uKHQpe2NvbnNvbGUud2FybignImVhZ2VyIiBvcHRpb24gaXMgbm90IGF2YWlsYWJsZSBpbiBkeW5hbWljIG1hc2ssIHVzZSB0aGlzIG9wdGlvbiBpbiBzaWJsaW5ncycpfX0se2tleToibWFza0VxdWFscyIsdmFsdWU6ZnVuY3Rpb24odCl7cmV0dXJuIEFycmF5LmlzQXJyYXkodCkmJnRoaXMuY29tcGlsZWRNYXNrcy5ldmVyeSgoZnVuY3Rpb24oZSxuKXt2YXIgaTtyZXR1cm4gZS5tYXNrRXF1YWxzKG51bGw9PT0oaT10W25dKXx8dm9pZCAwPT09aT92b2lkIDA6aS5tYXNrKX0pKX19XSksbn0ocnUpO0J1LkRFRkFVTFRTPXtkaXNwYXRjaDpmdW5jdGlvbih0LGUsbil7aWYoZS5jb21waWxlZE1hc2tzLmxlbmd0aCl7dmFyIGk9ZS5yYXdJbnB1dFZhbHVlLHI9ZS5jb21waWxlZE1hc2tzLm1hcCgoZnVuY3Rpb24oZSxyKXtyZXR1cm4gZS5yZXNldCgpLGUuYXBwZW5kKGkse3JhdzohMH0pLGUuYXBwZW5kKHQsbikse3dlaWdodDplLnJhd0lucHV0VmFsdWUubGVuZ3RoLGluZGV4OnJ9fSkpO3JldHVybiByLnNvcnQoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGUud2VpZ2h0LXQud2VpZ2h0fSkpLGUuY29tcGlsZWRNYXNrc1tyWzBdLmluZGV4XX19fSxpdS5NYXNrZWREeW5hbWljPUJ1O3ZhciBEdT17TUFTS0VEOiJ2YWx1ZSIsVU5NQVNLRUQ6InVubWFza2VkVmFsdWUiLFRZUEVEOiJ0eXBlZFZhbHVlIn07ZnVuY3Rpb24geHUodCl7dmFyIGU9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0\/YXJndW1lbnRzWzFdOkR1Lk1BU0tFRCxuPWFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdP2FyZ3VtZW50c1syXTpEdS5NQVNLRUQsaT1zdSh0KTtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIGkucnVuSXNvbGF0ZWQoKGZ1bmN0aW9uKGkpe3JldHVybiBpW2VdPXQsaVtuXX0pKX19ZnVuY3Rpb24gTXUodCl7Zm9yKHZhciBlPWFyZ3VtZW50cy5sZW5ndGgsbj1uZXcgQXJyYXkoZT4xP2UtMTowKSxpPTE7aTxlO2krKyluW2ktMV09YXJndW1lbnRzW2ldO3JldHVybiB4dS5hcHBseSh2b2lkIDAsbikodCl9aXUuUElQRV9UWVBFPUR1LGl1LmNyZWF0ZVBpcGU9eHUsaXUucGlwZT1NdTt0cnl7Z2xvYmFsVGhpcy5JTWFzaz1pdX1jYXRjaCh0KXt9dC5IVE1MQ29udGVudGVkaXRhYmxlTWFza0VsZW1lbnQ9X3UsdC5IVE1MTWFza0VsZW1lbnQ9YnUsdC5JbnB1dE1hc2s9Q3UsdC5NYXNrRWxlbWVudD1tdSx0Lk1hc2tlZD1ydSx0Lk1hc2tlZERhdGU9eXUsdC5NYXNrZWREeW5hbWljPUJ1LHQuTWFza2VkRW51bT1FdSx0Lk1hc2tlZEZ1bmN0aW9uPVN1LHQuTWFza2VkTnVtYmVyPUZ1LHQuTWFza2VkUGF0dGVybj1ndSx0Lk1hc2tlZFJhbmdlPWt1LHQuTWFza2VkUmVnRXhwPWR1LHQuUElQRV9UWVBFPUR1LHQuY3JlYXRlTWFzaz1zdSx0LmNyZWF0ZVBpcGU9eHUsdC5kZWZhdWx0PWl1LHQucGlwZT1NdSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSl9KSk7DQovLyMgc291cmNlTWFwcGluZ1VSTD1pbWFzay5taW4uanMubWFwOwovKiogL2pzL21haWxFeHByZXNzUmVxdWVzdFdpZGdldC5qcyAqKi8KdmFyIF9fX2QyY19tYWlsRXhwcmVzc1JlcXVlc3RXaWRnZXRqc19jX29uPSIyMDI1LTA1LTIzIDE3OjEyOjQ3IjsndXNlIHN0cmljdCc7dmFyIF9fX2QyY19tYWlsRXhwcmVzc1JlcXVlc3RXaWRnZXRqc19jX29uPSIyMDI0LTAzLTI1IDEyOjMzOjQwIjsidXNlIHN0cmljdCI7CmZ1bmN0aW9uIENNYWlsRXhwcmVzc1JlcXVlc3RXaWRnZXQoZSxkKXt2YXIgYT10aGlzO2Euc2NvcGU9JChlKTthLnNldHRpbmdzPWQ7YS5oYXNFcnJvcnM9ITE7YS5pbml0PWZ1bmN0aW9uKCl7aWYoImZ1bmN0aW9uIj09PXR5cGVvZiBhLnNldHRpbmdzLm9uQmVmb3JlSW5pdCYmITE9PT1hLnNldHRpbmdzLm9uQmVmb3JlSW5pdC5jYWxsKGEuc2NvcGUsYSkpcmV0dXJuITE7YS5zZXR0aW5ncy5waG9uZS5tYXNrPWEuc2V0dGluZ3MucGhvbmUubWFza3x8IjAwMCAwMDAtMDAwMCI7YS5zY29wZS5maW5kKGEuc2V0dGluZ3MucGhvbmUuc2VsZWN0b3IpLmVhY2goKGIsYyk9PntJTWFzayhjLHttYXNrOlt7bWFzazphLnNldHRpbmdzLnBob25lLm1hc2t9LHttYXNrOmAxICR7YS5zZXR0aW5ncy5waG9uZS5tYXNrfWB9XX0pfSk7KGEuc2NvcGUuaXMoImZvcm0iKT9hLnNjb3BlOmEuc2NvcGUuZmluZCgiZm9ybSIpKS5vbigic3VibWl0IixmdW5jdGlvbigpe2Euc3VibWl0KCk7cmV0dXJuITF9KTsKYS5zY29wZS5maW5kKCIqIikub24oImZvY3VzIixmdW5jdGlvbigpe2EucmVzZXRFcnJvcnMoKX0pO2Euc2V0dGluZ3MuaW5pdGlhbGl6ZWQ9ITA7YS5zY29wZS5kYXRhKCJ8bWFpbGV4cHJlc3Mtb3B0aW9ucyIsYS5zZXR0aW5ncyk7aWYoImZ1bmN0aW9uIj09PXR5cGVvZiBhLnNldHRpbmdzLm9uQWZ0ZXJJbml0JiYhMT09PWEuc2V0dGluZ3Mub25BZnRlckluaXQuY2FsbChhLnNjb3BlLGEpKXJldHVybiExfTthLmdldElucHV0VmFsdWVzPWZ1bmN0aW9uKGIsYyl7cmV0dXJuIGEuc2NvcGUuZmluZChiKS5tYXAoZnVuY3Rpb24oKXtyZXR1cm4gJCh0aGlzKS52YWwoKX0pLmdldCgpLmpvaW4oYyl9O2EucHJlcGFyZUVtYWlsSGFuZGxlcj1mdW5jdGlvbihiLGMpeyQuZXh0ZW5kKGVtYWlsSGFuZGxlcix7bWFpbElEOmEuc2V0dGluZ3MuZW1haWxJZCxzdWJqZWN0OmIsYm9keTpjLHNlbmRUbzphLnNldHRpbmdzLmVtYWlsLnNlbmRUbyxzZW5kVG9BREZGb3JtYXQ6YS5zZXR0aW5ncy5lbWFpbC5zZW5kVG9BREYsCmRlcGFydG1lbnQ6YS5zZXR0aW5ncy5kZXBhcnRtZW50LHBvcHVwT2ZmZXJUeXBlOiIiIT1hLnNldHRpbmdzLnBvcHVwT2ZmZXJUeXBlP2Euc2V0dGluZ3MucG9wdXBPZmZlclR5cGU6YS5zZXR0aW5ncy5lbWFpbElkLHVzZXJGaXJzdE5hbWU6YS5nZXRJbnB1dFZhbHVlcygiaW5wdXRbbmFtZT0nZm5hbWUnXSIsIiAiKSx1c2VyTGFzdE5hbWU6YS5nZXRJbnB1dFZhbHVlcygiaW5wdXRbbmFtZT0nbG5hbWUnXSIsIiAiKSx1c2VyRW1haWw6YS5nZXRJbnB1dFZhbHVlcygiaW5wdXRbdHlwZT0nZW1haWwnXSwgaW5wdXRbbmFtZT0nZW1haWwnXSwgaW5wdXRbbmFtZT0nbWFpbCddIiwiOyIpLHVzZXJOYW1lOmEuZ2V0SW5wdXRWYWx1ZXMoImlucHV0W25hbWU9J25hbWUnXSIsIiAiKSx1c2VyUGhvbmU6YS5nZXRJbnB1dFZhbHVlcygiaW5wdXRbdHlwZT0ndGVsJ10sIGlucHV0LnBob25lIiwiLCIpLHVzZXJQb3N0YWw6YS5nZXRJbnB1dFZhbHVlcygiaW5wdXQucG9zdGFsIiwiLCIpLG1ha2U6YS5nZXRJbnB1dFZhbHVlcygiaW5wdXRbbmFtZT1tYWtlXSIpLAptb2RlbDphLmdldElucHV0VmFsdWVzKCJpbnB1dFtuYW1lPW1vZGVsXSIpLHllYXI6YS5nZXRJbnB1dFZhbHVlcygiaW5wdXRbbmFtZT15ZWFyXSIpLHRyYWRlaW46YS5nZXRJbnB1dFZhbHVlcygiaW5wdXQudHJhZGVpbiIsIiwiKSxhZGRyZXNzOmEuZ2V0SW5wdXRWYWx1ZXMoImlucHV0W25hbWU9J2FkZHJlc3MnXSIsIiIpLGJpcnRoZGF0ZTphLmdldElucHV0VmFsdWVzKCJpbnB1dFtuYW1lPSdiaXJ0aGRhdGUnXSIsIiIpLGNvbW1lbnRzOmEuZ2V0SW5wdXRWYWx1ZXMoInRleHRhcmVhW25hbWU9J21lc3NhZ2UnXSIpfSk7InN0cmluZyI9PT10eXBlb2YgZW1haWxIYW5kbGVyLnVzZXJOYW1lJiYiIj09ZW1haWxIYW5kbGVyLnVzZXJGaXJzdE5hbWUmJihiPWVtYWlsSGFuZGxlci51c2VyTmFtZS5zcGxpdCgiICIpLGVtYWlsSGFuZGxlci51c2VyRmlyc3ROYW1lPWIuc2hpZnQoKSxlbWFpbEhhbmRsZXIudXNlckxhc3ROYW1lPWIuam9pbigiICIpKTttYWlsU2VudEhhbmRsZXI9IlNFUlZJQ0UiPT0KZW1haWxIYW5kbGVyLmRlcGFydG1lbnR8fCJQQVJUUyI9PWVtYWlsSGFuZGxlci5kZXBhcnRtZW50P2dldE1haWxTZW50SGFuZGxlcigiX1NFUlZJQ0UiKTpnZXRNYWlsU2VudEhhbmRsZXIoKTtlbWFpbEhhbmRsZXIuY2FsbGJhY2s9ImZ1bmN0aW9uIj09PXR5cGVvZiBhLnNldHRpbmdzLm9uQWZ0ZXJTZW5kRW1haWw\/ZnVuY3Rpb24oZil7YS5zZXR0aW5ncy5vbkFmdGVyU2VuZEVtYWlsLmNhbGwoYS5zY29wZSxhLGYpO2lmKGEuc2V0dGluZ3MuZW1haWxJZC5pbmNsdWRlcygiUmViYXRlQ291cG9uIil8fGEuc2V0dGluZ3MuZW1haWxJZC5pbmNsdWRlcygiTXVsdGlGb3JtIil8fGEuc2V0dGluZ3MuZW1haWxJZC5pbmNsdWRlcygiQ29udGFjdFVzUmVxdWVzdCIpKWVtYWlsSGFuZGxlci5tYWluUHJvbW89ITA7YS5zZXR0aW5ncy5ub1N1Y2Nlc01lc3NhZ2V8fG1haWxTZW50SGFuZGxlci5zaG93U3VjY2VzcygpOyQoIiNnZW5lcmljX2Zvcm1fY29uZmlybSIpLmZpbmQoIi5sYWJlbGVtYWlsIikudmFsKGEuc2V0dGluZ3MuZ29vZ2xlVHJhY2tpbmcubGFiZWwpOwokKCIjZ2VuZXJpY19mb3JtX2NvbmZpcm0iKS5maW5kKCIubGFiZWxzZWN0aW9uIikudmFsKGEuc2V0dGluZ3MuZ29vZ2xlVHJhY2tpbmcubGFiZWxzZWN0aW9uKTskKCIjZ2VuZXJpY19mb3JtX2NvbmZpcm0iKS50cmlnZ2VyKCJzdWJtaXQiKTsib2JqZWN0Ij09dHlwZW9mIEN0YVRyYWNrJiYkKCIubXVsdGlmb3JtX2VtYmVkZGVkX2Zvb3RlciAubXVsdGlmb3JtX2VtYmVkZGVkX3N0ZXAxIikuc2hvdygpfTpmdW5jdGlvbihmKXtmPyhtYWlsU2VudEhhbmRsZXIuc2hvd1N1Y2Nlc3MoKSxhLnJlc2V0RmllbGRzKCksJCgiI2dlbmVyaWNfZm9ybV9jb25maXJtIikuZmluZCgiLmxhYmVsZW1haWwiKS52YWwoYS5zZXR0aW5ncy5nb29nbGVUcmFja2luZy5sYWJlbCksJCgiI2dlbmVyaWNfZm9ybV9jb25maXJtIikuZmluZCgiLmxhYmVsc2VjdGlvbiIpLnZhbChhLnNldHRpbmdzLmdvb2dsZVRyYWNraW5nLmxhYmVsc2VjdGlvbiksJCgiI2dlbmVyaWNfZm9ybV9jb25maXJtIikudHJpZ2dlcigic3VibWl0IikpOgptYWlsU2VudEhhbmRsZXIuc2hvd0ZhaWwoKX07cmV0dXJuIGVtYWlsSGFuZGxlcn07YS5yZXNldEVycm9ycz1mdW5jdGlvbigpe2EuaGFzRXJyb3JzJiYoJCgiLm1haWwtZXhwcmVzcy13aWRnZXRfX2Zvb3RlciAuZXJyb3JNc2ciKS5oaWRlKCksJCgiLnZhbGlkaXR5LWVycm9uZW91cyIpLnJlbW92ZUNsYXNzKCJ2YWxpZGl0eS1lcnJvbmVvdXMiKSxhLmhhc0Vycm9ycz0hMSl9O2EucmVzZXRGaWVsZHM9ZnVuY3Rpb24oKXthLnJlc2V0RXJyb3JzKCk7YS5zY29wZS5maW5kKCI6aW5wdXQiKS5ub3QoIjpidXR0b24sIDpzdWJtaXQsIDpyZXNldCwgOmhpZGRlbiIpLnByb3AoImNoZWNrZWQiLCExKS5wcm9wKCJzZWxlY3RlZCIsITEpLm5vdCgiOmNoZWNrYm94LCA6cmFkaW8sIHNlbGVjdCIpLnZhbCgiIil9O2Euc3VibWl0PWZ1bmN0aW9uKCl7aWYoImZ1bmN0aW9uIj09PXR5cGVvZiBhLnNldHRpbmdzLm9uQmVmb3JlVmFsaWRhdGUmJiExPT09YS5zZXR0aW5ncy5vbkJlZm9yZVZhbGlkYXRlLmNhbGwoYS5zY29wZSwKYSkpcmV0dXJuITE7YS5yZXNldEVycm9ycygpO2lmKCFhLnZhbGlkYXRlRm9ybSgpLnZhbGlkKXJldHVybiBhLmhhc0Vycm9ycz0hMCwkKCIubWFpbC1leHByZXNzLXdpZGdldF9fZm9vdGVyIC5lcnJvck1zZyIpLnNob3coKSwhMTtpZigiZnVuY3Rpb24iPT09dHlwZW9mIGEuc2V0dGluZ3Mub25BZnRlclZhbGlkYXRlJiYhMT09PWEuc2V0dGluZ3Mub25BZnRlclZhbGlkYXRlLmNhbGwoYS5zY29wZSxhKSlyZXR1cm4hMTt2YXIgYj1uZXcgTWFpbERlZmluaXRpb25QYXJzZXIoYS5zY29wZSx7ZmllbGRzOmEuc2NvcGUuc2VyaWFsaXplQXJyYXkoKSxzdWJqZWN0U2VsZWN0b3I6YS5zZXR0aW5ncy5kZWZpbml0aW9ucy5zdWJqZWN0LGJvZHlTZWxlY3RvcjphLnNldHRpbmdzLmRlZmluaXRpb25zLmJvZHl9KTthLnByZXBhcmVFbWFpbEhhbmRsZXIoYi5zdWJqZWN0LGIuYm9keSk7aWYoImZ1bmN0aW9uIj09PXR5cGVvZiBhLnNldHRpbmdzLm9uQmVmb3JlU2VuZEVtYWlsJiYhMT09PWEuc2V0dGluZ3Mub25CZWZvcmVTZW5kRW1haWwuY2FsbChhLnNjb3BlLAphKSlyZXR1cm4hMTtlbWFpbEhhbmRsZXIuc2VuZE1haWwoKX07YS52YWxpZGF0ZUZvcm09ZnVuY3Rpb24oKXskLnZhbGlkaXR5LnNldHVwKGEuc2V0dGluZ3MudmFsaWRhdGlvbikuc3RhcnQoKTthLnNjb3BlLmZpbmQoImlucHV0Om5vdCg6aGlkZGVuKSwgc2VsZWN0LCB0ZXh0YXJlYSIpLmVhY2goZnVuY3Rpb24oYixjKXtiPSQoYyk7Yi5ub25IdG1sKCk7KGIuaXMoIltyZXF1aXJlZF0iKXx8Yi5pcygiW2RhdGEtcmVxdWlyZWRdIil8fGIuaGFzQ2xhc3MoInJlcXVpcmVkIikpJiZiLnJlcXVpcmUoKTsoImVtYWlsIj09PWIuYXR0cigidHlwZSIpfHxiLmlzKCJbZGF0YS1lbWFpbF0iKXx8Yi5oYXNDbGFzcygiZW1haWwiKSkmJmIudmFsaWRFbWFpbEFkZHJlc3MoKTtpZigidGVsIj09PWIuYXR0cigidHlwZSIpfHxiLmhhc0NsYXNzKCJwaG9uZSIpKWIuaXMoIltkYXRhLW1vYmlsZV0iKXx8Yi5oYXNDbGFzcygibW9iaWxlIik\/Yi52YWxpZGF0ZU1vYmlsZSgpOigidGVsIj09PWIuYXR0cigidHlwZSIpfHwKYi5pcygiW2RhdGEtcGhvbmVdIil8fGIuaGFzQ2xhc3MoInBob25lIikpJiZiLnZhbGlkYXRlUGhvbmUoKX0pO3JldHVybiAkLnZhbGlkaXR5LmVuZCgpfTtyZXR1cm4gYX0KalF1ZXJ5KGZ1bmN0aW9uKGUpe2UuZm4ubWFpbEV4cHJlc3NSZXF1ZXN0PWZ1bmN0aW9uKGQpe2Q9ZHx8e307dmFyIGE9e2VtYWlsSWQ6IlF1aWNrRW1haWwiLHBvcHVwT2ZmZXJUeXBlOiIiLHBob25lOntzZWxlY3RvcjoiW3R5cGU9dGVsXSIsbWFzazoiMDAwIDAwMC0wMDAwIn0sdmFsaWRhdGlvbjp7b3V0cHV0TW9kZToiY3NzT25seSIsc2Nyb2xsVG86ITEsY3NzQ2xhc3M6InZhbGlkaXR5LWVycm9uZW91cyJ9LGRlZmluaXRpb25zOntzdWJqZWN0OiIubWFpbC1leHByZXNzLXdpZGdldF9fZW1haWwtZGVmaW5pdGlvbl9fc3ViamVjdCIsYm9keToiLm1haWwtZXhwcmVzcy13aWRnZXRfX2VtYWlsLWRlZmluaXRpb25fX2JvZHkifSxlbWFpbDp7c2VuZFRvOiIiLHNlbmRUb0FERjoiIn0sZ29vZ2xlVHJhY2tpbmc6e2xhYmVsOiIiLGxhYmVsc2VjdGlvbjoiIn0sbm9TdWNjZXNNZXNzYWdlOiExfTtpZigxPT09dGhpcy5sZW5ndGgpe3ZhciBiPXRoaXMuZGF0YSgibWFpbGV4cHJlc3Mtd2lkZ2V0Iik7CiJ1bmRlZmluZWQiPT09dHlwZW9mIGImJihiPXRoaXMuZGF0YSgifG1haWxleHByZXNzLW9wdGlvbnMiKT90aGlzLmRhdGEoInxtYWlsZXhwcmVzcy1vcHRpb25zIik6e30sYT1lLmV4dGVuZCh7fSxhLGIsZCksYj1uZXcgQ01haWxFeHByZXNzUmVxdWVzdFdpZGdldCh0aGlzLGEpLGEuaW5pdGlhbGl6ZWR8fGIuaW5pdCgpLHRoaXMuZGF0YSgibWFpbGV4cHJlc3Mtd2lkZ2V0IixiKSk7cmV0dXJuIGJ9dmFyIGM9W107dGhpcy5lYWNoKGZ1bmN0aW9uKCl7Yy5wdXNoKGUodGhpcykubWFpbEV4cHJlc3NSZXF1ZXN0KGQpKX0pO3JldHVybiBjfX0pOwovKiogL2pzL21haWxEZWZpbml0aW9uUGFyc2VyLmpzICoqLwp2YXIgX19fZDJjX21haWxEZWZpbml0aW9uUGFyc2VyanNfY19vbj0iMjAyNi0wMi0wMiAxMzozMDowNSI7J3VzZSBzdHJpY3QnO2Z1bmN0aW9uIE1haWxEZWZpbml0aW9uUGFyc2VyKGgsZil7dmFyIGI9dGhpcztiLnNjb3BlPWg7Yi5maWVsZHM9Zi5maWVsZHM7ZGVsZXRlIGYuZW1haWxUeXBlO2RlbGV0ZSBmLmZpZWxkcztiLnNldHRpbmdzPWY7Yi5zdWJqZWN0PSIiO2IuYm9keT0iIjtiLmNsZWFuQmxhbmtWYXJpYWJsZXM9ZnVuY3Rpb24oYSl7YT1hLnJlcGxhY2UoL3tcJFFVRVNUSU9OU30vZywiIik7YT1hLnJlcGxhY2UoL3tcJE1FU1NBR0V9L2csIiIpO2E9YS5yZXBsYWNlKC97XCRFTUFJTFBIT05FfS9nLCIiKTthPWEucmVwbGFjZSgve1wkRU1BSUxNQUtFfS9nLCIiKTthPWEucmVwbGFjZSgve1wkRU1BSUxNT0RFTH0vZywiIik7YT1hLnJlcGxhY2UoL3tcJEVNQUlMWUVBUn0vZywiIik7YT1hLnJlcGxhY2UoL3tcJFBBWU1FTlR9L2csIiIpO2E9YS5yZXBsYWNlKC97XCRQQVlNRU5UVEVSTX0vZywiIik7YT1hLnJlcGxhY2UoL3tcJE9GRkVSfS9nLCIiKTthPWEucmVwbGFjZSgve1wkU1RPQ0tOVU1CRVJ9L2csCiIiKTthPWEucmVwbGFjZSgve1wkQ09MT1J9L2csIiIpO2E9YS5yZXBsYWNlKC97XCROQU1FfS9nLCIiKTthPWEucmVwbGFjZSgve1wkRk5BTUV9L2csIiIpO2E9YS5yZXBsYWNlKC97XCRMTkFNRX0vZywiIik7YT1hLnJlcGxhY2UoL3tcJEVNQUlMfS9nLCIiKTtyZXR1cm4gYT1hLnJlcGxhY2UoL3tcJFVTRVJQSE9ORX0vZywiIil9O2IuZ2V0TGFzdFZlaGljbGVWaWV3ZWQ9ZnVuY3Rpb24oKXt2YXIgYT0kKCIjbGFzdHZpZXdlZG1ha2UiKTtpZigwPT09YS5sZW5ndGgmJjA9PT1hLnZhbCgpLmxlbmd0aClyZXR1cm4iIjt2YXIgYz1hLnZhbCgpO2E9JCgiI2xhc3R2aWV3ZWRzdG9ja251bWJlciIpLnZhbCgpO3ZhciBkPSQoIiNsYXN0dmlld2VkbW9kZWwiKS52YWwoKSxlPSQoIiNsYXN0dmlld2VkeWVhciIpLnZhbCgpLGc9JCgiI2xhc3R2aWV3ZWR0cmltIikudmFsKCl8fCIiO2M9YysiICIrZCsiICIrZSsoZy5sZW5ndGg\/IiAiK2c6IiIpO3JldHVybiBjKz0wPGEubGVuZ3RoPyIgKFN0b2NrIyAiKwphKyIpIjoiIn07Yi5nbG9iYWxSZXBsYWNlbWVudHM9ZnVuY3Rpb24oKXt2YXIgYT1bXTskKCJpbnB1dDpoaWRkZW4iKS5lYWNoKGZ1bmN0aW9uKGMsZCl7Yz0kKGQpLmF0dHIoIm5hbWUiKXx8JChkKS5hdHRyKCJpZCIpO2lmKCFjKXJldHVybiEwO3ZhciBlPSExOyJlbWFpbGJ1aWxkYW5kcHJpY2UiPT09Yy50b0xvd2VyQ2FzZSgpJiYiIj09PSQoZCkudmFsKCkucmVwbGFjZSgvIC9nLCIiKSYmKGU9ITApO2V8fCgiYnJhbmQiPT09Yy50b0xvd2VyQ2FzZSgpJiZhLnB1c2goe25hbWU6Im1ha2UiLHZhbHVlOiQoZCkudmFsKCl9KSxhLnB1c2goe25hbWU6Yyx2YWx1ZTokKGQpLnZhbCgpfSkpfSk7YS5wdXNoKHtuYW1lOiJMQVNUVkVISUNMRVZJRVdFRCIsdmFsdWU6Yi5nZXRMYXN0VmVoaWNsZVZpZXdlZCgpfSk7cmV0dXJuIGF9O2IuaW5pdD1mdW5jdGlvbigpe2IucGFyc2UoKTtiLmJvZHk9Yi5jbGVhbkJsYW5rVmFyaWFibGVzKGIuYm9keSk7Yi5zdWJqZWN0PWIuY2xlYW5CbGFua1ZhcmlhYmxlcyhiLnN1YmplY3QpfTsKYi5wYXJzZT1mdW5jdGlvbigpe2Iuc3ViamVjdD1iLnNjb3BlLmZpbmQoYi5zZXR0aW5ncy5zdWJqZWN0U2VsZWN0b3IpLmh0bWwoKTtiLmJvZHk9Yi5zY29wZS5maW5kKGIuc2V0dGluZ3MuYm9keVNlbGVjdG9yKS5odG1sKCk7dmFyIGE9W107W10ucHVzaC5hcHBseShhLGIuZmllbGRzKTtbXS5wdXNoLmFwcGx5KGEsYi5nbG9iYWxSZXBsYWNlbWVudHMoKSk7JChhKS5lYWNoKGZ1bmN0aW9uKGMsZCl7Yz1kLnZhbHVlO3ZhciBlPVtdO2UucHVzaChkLm5hbWUudG9VcHBlckNhc2UoKSk7ZS5wdXNoKCJNIitkLm5hbWUudG9VcHBlckNhc2UoKSk7c3dpdGNoKGQubmFtZS50b1VwcGVyQ2FzZSgpKXtjYXNlICJQSE9ORSI6ZS5wdXNoKCJFTUFJTFBIT05FIik7ZS5wdXNoKCJVU0VSUEhPTkUiKTticmVhaztjYXNlICJTRUFSQ0hFRFZFSElDTEUiOiIiPT1lbWFpbEhhbmRsZXIudHJpbSYmJCgiI3BvcHVwdHJpbSIpLmxlbmd0aCYmInskUE9QVVBUUklNfSIhPSQoIiNwb3B1cHRyaW0iKS52YWwoKSYmCihlbWFpbEhhbmRsZXIudHJpbT0kKCIjcG9wdXB0cmltIikudmFsKCksYys9IiAiK2VtYWlsSGFuZGxlci50cmltKTskKCI8c3Bhbj48L3NwYW4+IikuYXR0cigiaWQiLCJwaFNFQVJDSFZFSElDTEUiKS50ZXh0KGMpLmh0bWwoKTtyZXR1cm47Y2FzZSAiTkFNRSI6ZS5wdXNoKCJGTkFNRSIpO2JyZWFrO2Nhc2UgIkRFUEFSVE1FTlQiOmUucHVzaCgiREVQQVJUTUVOVDIiKTticmVhaztjYXNlICJNRVNTQUdFIjplLnB1c2goIk1FU1NBR0VTIil9ZD1uZXcgUmVnRXhwKCJ7XFwkKCIrZS5qb2luKCJ8IikrIil9IiwiZyIpO2IuYm9keT1iLmJvZHkucmVwbGFjZShkLGMpO2Iuc3ViamVjdD1iLnN1YmplY3QucmVwbGFjZShkLGMpfSl9O2IuaW5pdCgpO3JldHVybiBifTsKLyoqIC9qcy9uZWJDYWwvbmViRGF0ZUZuLmpzICoqLwp2YXIgX19fZDJjX25lYkRhdGVGbmpzX2Nfb249IjIwMjUtMDUtMjMgMTc6MDQ6MjQiOyd1c2Ugc3RyaWN0Jzt2YXIgX19fZDJjX25lYkRhdGVGbmpzX2Nfb249IjIwMjQtMDEtMzEgMTQ6MzE6NTciOyJ1c2Ugc3RyaWN0IjtfX19kMmNfbmViRGF0ZUZuanNfY19vbj0iMjAyMy0wMS0xMiAxMTozMjoyMyI7InVzZSBzdHJpY3QiO19fX2QyY19uZWJEYXRlRm5qc19jX29uPSIyMDIzLTAxLTEyIDEwOjQyOjE2IjsidXNlIHN0cmljdCI7X19fZDJjX25lYkRhdGVGbmpzX2Nfb249IjIwMjEtMTItMTUgMTI6Mzg6MzkiOyJ1c2Ugc3RyaWN0Ijtjb25zdCBuZWJEYXRlRm49e307CiQoImJvZHkiKS5oYXNDbGFzcygiRlJFTkNIIik\/JC5uZWJMYW5nPXttb250aE5hbWVzOiJKYW52aWVyIEYmZWFjdXRlO3ZyaWVyIE1hcnMgQXZyaWwgTWFpIEp1aW4gSnVpbGxldCBBbyZ1Y2lyYzt0IFNlcHRlbWJyZSBPY3RvYnJlIE5vdmVtYnJlIEQmZWFjdXRlO2NlbWJyZSIuc3BsaXQoIiAiKSxtb250aE5hbWVzU2hvcnQ6IkphbnYuIEYmZWFjdXRlO3ZyLiBNYXJzIEF2ci4gTWFpIEp1aW4gSnVpbC4gQW8mdWNpcmM7dCBTZXB0LiBPY3QuIE5vdi4gRCZlYWN1dGU7Yy4iLnNwbGl0KCIgIiksZGF5TmFtZXM6IkRpbWFuY2hlIEx1bmRpIE1hcmRpIE1lcmNyZWRpIEpldWRpIFZlbmRyZWRpIFNhbWVkaSIuc3BsaXQoIiAiKSxkYXlOYW1lc1Nob3J0OiJEaW0gTHVuIE1hciBNZXIgSmV1IFZlbiBTYW0iLnNwbGl0KCIgIiksZGF5TmFtZXNNaW46IkRpIEx1IE1hIE1lIEplIFZlIFNhIi5zcGxpdCgiICIpLHdlZWtIZWFkZXI6IlNtIixkYXRlRm9ybWF0OiJ5LU0tZCIsZmlyc3REYXk6MSwKaXNSVEw6ITEsc2hvd01vbnRoQWZ0ZXJZZWFyOiExLHllYXJTdWZmaXg6IiIsaW52YWxpZERhdGVGb3JtYXQ6ImludmFsaWRfZGF0ZSJ9OiQubmViTGFuZz17bW9udGhOYW1lczoiSmFudWFyeSBGZWJydWFyeSBNYXJjaCBBcHJpbCBNYXkgSnVuZSBKdWx5IEF1Z3VzdCBTZXB0ZW1iZXIgT2N0b2JlciBOb3ZlbWJlciBEZWNlbWJlciIuc3BsaXQoIiAiKSxtb250aE5hbWVzU2hvcnQ6Ikphbi4gRmViLiBNYXIuIEFwci4gTWF5IEp1bi4gSnVsLiBBdWcuIFNlcHQuIE9jdC4gTm92LiBEZWMuIi5zcGxpdCgiICIpLGRheU5hbWVzOiJTdW5kYXkgTW9uZGF5IFR1ZXNkYXkgV2VkbmVzZGF5IFRodXJzZGF5IEZyaWRheSBTYXR1cmRheSIuc3BsaXQoIiAiKSxkYXlOYW1lc1Nob3J0OiJTdW4gTW9uIFR1ZSBXZWQgVGh1IEZyaSBTYXQiLnNwbGl0KCIgIiksZGF5TmFtZXNNaW46IlN1IE1vIFR1IFdlIFRoIEZyIFNhIi5zcGxpdCgiICIpLHdlZWtIZWFkZXI6IlNtIixkYXRlRm9ybWF0OiJ5LU0tZCIsCmZpcnN0RGF5OjEsaXNSVEw6ITEsc2hvd01vbnRoQWZ0ZXJZZWFyOiExLHllYXJTdWZmaXg6IiIsaW52YWxpZERhdGVGb3JtYXQ6ImludmFsaWRfZGF0ZSJ9O0RhdGUuTFo9ZnVuY3Rpb24oYSl7cmV0dXJuKDA+YXx8OTxhPyIiOiIwIikrYX07bmViRGF0ZUZuLkxaPWZ1bmN0aW9uKGEpe3JldHVybigwPmF8fDk8YT8iIjoiMCIpK2F9O0RhdGUucHJlZmVyQW1lcmljYW5Gb3JtYXQ9ITA7bmViRGF0ZUZuLmNsZWFyVGltZT1mdW5jdGlvbihhKXthIGluc3RhbmNlb2YgRGF0ZSYmKGEuc2V0SG91cnMoMCksYS5zZXRNaW51dGVzKDApLGEuc2V0U2Vjb25kcygwKSxhLnNldE1pbGxpc2Vjb25kcygwKSk7cmV0dXJuIGF9OwpEYXRlLnByb3RvdHlwZS50b015c3FsRm9ybWF0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0RnVsbFllYXIoKSsiLSIrRGF0ZS5MWigxK3RoaXMuZ2V0TW9udGgoKSkrIi0iK0RhdGUuTFoodGhpcy5nZXREYXRlKCkpKyIgIitEYXRlLkxaKHRoaXMuZ2V0SG91cnMoKSkrIjoiK0RhdGUuTFoodGhpcy5nZXRNaW51dGVzKCkpKyI6IitEYXRlLkxaKHRoaXMuZ2V0U2Vjb25kcygpKX07RGF0ZS5wcm90b3R5cGUuaXNMZWFwWWVhcj1mdW5jdGlvbigpe3JldHVybiAyOT09KG5ldyBEYXRlKHRoaXMuZ2V0RnVsbFllYXIoKSwxLDI5KSkuZ2V0RGF0ZSgpfTtEYXRlLnByb3RvdHlwZS5nZXRMYXN0RGF5T2ZNb250aENhbD1mdW5jdGlvbigpe3JldHVybihuZXcgRGF0ZSh0aGlzLmdldEZ1bGxZZWFyKCksdGhpcy5nZXRNb250aCgpKzEsMCkpLmdldERhdGUoKX07RGF0ZS5wcm90b3R5cGUuc2V0RGF5PWZ1bmN0aW9uKGEpe3RoaXMuc2V0RGF0ZShhKTtyZXR1cm4gdGhpc307CkRhdGUucHJvdG90eXBlLnNldE1vbj1mdW5jdGlvbihhKXt0aGlzLnNldE1vbnRoKGEpO3JldHVybiB0aGlzfTtEYXRlLnByb3RvdHlwZS5zZXRZZWFyPWZ1bmN0aW9uKGEpe3RoaXMuc2V0RnVsbFllYXIoYSk7cmV0dXJuIHRoaXN9O0RhdGUucHJvdG90eXBlLmFkZERheT1mdW5jdGlvbihhKXt0aGlzLnNldERhdGUodGhpcy5nZXREYXRlKCkrYSk7cmV0dXJuIHRoaXN9O0RhdGUucHJvdG90eXBlLmFkZE1vbj1mdW5jdGlvbihhKXt0aGlzLnNldE1vbnRoKHRoaXMuZ2V0TW9udGgoKSthKTtyZXR1cm4gdGhpc307RGF0ZS5wcm90b3R5cGUuYWRkWWVhcj1mdW5jdGlvbihhKXt0aGlzLnNldEZ1bGxZZWFyKHRoaXMuZ2V0RnVsbFllYXIoKSthKTtyZXR1cm4gdGhpc307RGF0ZS5wYXJzZURhdGVUaW1lPWZ1bmN0aW9uKGEpe2E9YS5zcGxpdCgvWy0gOl0vKTtyZXR1cm4gbmV3IERhdGUoYVswXSxhWzFdLTEsYVsyXSxhWzNdLGFbNF0sYVs1XSl9OwpuZWJEYXRlRm4ucGFyc2VTdHJpbmc9ZnVuY3Rpb24oYSxlKXtpZigidW5kZWZpbmVkIj09PXR5cGVvZiBlfHxudWxsPT09ZXx8IiI9PT1lKXtlPVsiTS9kL3kiLCJNLWQteSIsIk0uZC55IiwiTS9kIiwiTS1kIl07dmFyIGM9WyJkL00veSIsImQtTS15IiwiZC5NLnkiLCJkL00iLCJkLU0iXTtlPVsieS1NLWQ7TU1NIGQsIHk7TU1NIGQseTt5LU1NTS1kO2QtTU1NLXk7TU1NIGQ7TU1NLWQ7ZC1NTU0iLnNwbGl0KCI7IiksRGF0ZS5wcmVmZXJBbWVyaWNhbkZvcm1hdD9lOmMsRGF0ZS5wcmVmZXJBbWVyaWNhbkZvcm1hdD9jOmVdO2ZvcihjPTA7YzxlLmxlbmd0aDtjKyspZm9yKHZhciBoPWVbY10saz0wO2s8aC5sZW5ndGg7aysrKXt2YXIgbj1uZWJEYXRlRm4ucGFyc2VTdHJpbmcoYSxoW2tdKTtpZihudWxsIT09bilyZXR1cm4gbn1yZXR1cm4gbnVsbH10aGlzLmlzSW50ZWdlcj1mdW5jdGlvbih1KXtmb3IodmFyIHE9MDtxPHUubGVuZ3RoO3ErKylpZigtMT09IjEyMzQ1Njc4OTAiLmluZGV4T2YodS5jaGFyQXQocSkpKXJldHVybiExOwpyZXR1cm4hMH07dGhpcy5nZXRJbnQ9ZnVuY3Rpb24odSxxLHksdyl7Zm9yKDt3Pj15O3ctLSl7dmFyIHg9dS5zdWJzdHJpbmcocSxxK3cpO2lmKHgubGVuZ3RoPHkpYnJlYWs7aWYodGhpcy5pc0ludGVnZXIoeCkpcmV0dXJuIHh9cmV0dXJuIG51bGx9O2ErPSIiO2UrPSIiO2g9Yz0wO3ZhciBtPSIiLGI9IiIsbD0obmV3IERhdGUpLmdldEZ1bGxZZWFyKCksZz0xLGQ9MSxmPTAscj0wLHQ9MCx2PSIiO209W107Zm9yKGI9MDtoPGUubGVuZ3RoOyl7bT1lLmNoYXJBdChoKTtmb3IoYj0iIjtlLmNoYXJBdChoKT09bSYmaDxlLmxlbmd0aDspYis9ZS5jaGFyQXQoaCsrKTtpZigieXl5eSI9PWJ8fCJ5eSI9PWJ8fCJ5Ij09Yil7Inl5eXkiPT1iJiYobj1rPTQpOyJ5eSI9PWImJihuPWs9Mik7InkiPT1iJiYoaz0yLG49NCk7bD10aGlzLmdldEludChhLGMsayxuKTtpZihudWxsPT09bClyZXR1cm4gbnVsbDtjKz1sLmxlbmd0aDsyPT1sLmxlbmd0aCYmKGw9NzA8bD8xOTAwKyhsLTApOjJFMysKKGwtMCkpfWVsc2UgaWYoIk1NTSI9PWJ8fCJOTk4iPT1iKXtnPTA7bT0iTU1NIj09Yj8kLm5lYkxhbmcubW9udGhOYW1lcy5jb25jYXQoJC5uZWJMYW5nLm1vbnRoTmFtZXNTaG9ydCk6JC5uZWJMYW5nLm1vbnRoTmFtZXNTaG9ydDtmb3IoYj0wO2I8bS5sZW5ndGg7YisrKXt2YXIgcD1tW2JdO2lmKGEuc3Vic3RyaW5nKGMsYytwLmxlbmd0aCkudG9Mb3dlckNhc2UoKT09cC50b0xvd2VyQ2FzZSgpKXtnPWIlMTIrMTtjKz1wLmxlbmd0aDticmVha319aWYoMT5nfHwxMjxnKXJldHVybiBudWxsfWVsc2UgaWYoIkVFIj09Ynx8IkUiPT1iKWZvcihtPSJFRSI9PWI\/JC5uZWJMYW5nLmRheU5hbWVzOiQubmViTGFuZy5kYXlOYW1lc1Nob3J0LGI9MDtiPG0ubGVuZ3RoO2IrKyl7aWYocD1tW2JdLGEuc3Vic3RyaW5nKGMsYytwLmxlbmd0aCkudG9Mb3dlckNhc2UoKT09cC50b0xvd2VyQ2FzZSgpKXtjKz1wLmxlbmd0aDticmVha319ZWxzZSBpZigiTU0iPT1ifHwiTSI9PWIpe2c9dGhpcy5nZXRJbnQoYSwKYyxiLmxlbmd0aCwyKTtpZihudWxsPT09Z3x8MT5nfHwxMjxnKXJldHVybiBudWxsO2MrPWcubGVuZ3RofWVsc2UgaWYoImRkIj09Ynx8ImQiPT1iKXtkPXRoaXMuZ2V0SW50KGEsYyxiLmxlbmd0aCwyKTtpZihudWxsPT09ZHx8MT5kfHwzMTxkKXJldHVybiBudWxsO2MrPWQubGVuZ3RofWVsc2UgaWYoImhoIj09Ynx8ImgiPT1iKXtmPXRoaXMuZ2V0SW50KGEsYyxiLmxlbmd0aCwyKTtpZihudWxsPT09Znx8MT5mfHwxMjxmKXJldHVybiBudWxsO2MrPWYubGVuZ3RofWVsc2UgaWYoIkhIIj09Ynx8IkgiPT1iKXtmPXRoaXMuZ2V0SW50KGEsYyxiLmxlbmd0aCwyKTtpZihudWxsPT09Znx8MD5mfHwyMzxmKXJldHVybiBudWxsO2MrPWYubGVuZ3RofWVsc2UgaWYoIktLIj09Ynx8IksiPT1iKXtmPXRoaXMuZ2V0SW50KGEsYyxiLmxlbmd0aCwyKTtpZihudWxsPT09Znx8MD5mfHwxMTxmKXJldHVybiBudWxsO2MrPWYubGVuZ3RoO2YrK31lbHNlIGlmKCJrayI9PWJ8fCJrIj09Yil7Zj10aGlzLmdldEludChhLApjLGIubGVuZ3RoLDIpO2lmKG51bGw9PT1mfHwxPmZ8fDI0PGYpcmV0dXJuIG51bGw7Yys9Zi5sZW5ndGg7Zi0tfWVsc2UgaWYoIm1tIj09Ynx8Im0iPT1iKXtyPXRoaXMuZ2V0SW50KGEsYyxiLmxlbmd0aCwyKTtpZihudWxsPT09cnx8MD5yfHw1OTxyKXJldHVybiBudWxsO2MrPXIubGVuZ3RofWVsc2UgaWYoInNzIj09Ynx8InMiPT1iKXt0PXRoaXMuZ2V0SW50KGEsYyxiLmxlbmd0aCwyKTtpZihudWxsPT09dHx8MD50fHw1OTx0KXJldHVybiBudWxsO2MrPXQubGVuZ3RofWVsc2UgaWYoImEiPT1iKXtpZigiYW0iPT1hLnN1YnN0cmluZyhjLGMrMikudG9Mb3dlckNhc2UoKSl2PSJBTSI7ZWxzZSBpZigicG0iPT1hLnN1YnN0cmluZyhjLGMrMikudG9Mb3dlckNhc2UoKSl2PSJQTSI7ZWxzZSByZXR1cm4gbnVsbDtjKz0yfWVsc2V7aWYoYS5zdWJzdHJpbmcoYyxjK2IubGVuZ3RoKSE9YilyZXR1cm4gbnVsbDtjKz1iLmxlbmd0aH19aWYoYyE9YS5sZW5ndGgpcmV0dXJuIG51bGw7aWYoMj09CmcpaWYoMD09PWwlNCYmMCE9PWwlMTAwfHwwPT09bCU0MDApe2lmKDI5PGQpcmV0dXJuIG51bGx9ZWxzZSBpZigyODxkKXJldHVybiBudWxsO2lmKDMwPGQmJig0PT1nfHw2PT1nfHw5PT1nfHwxMT09ZykpcmV0dXJuIG51bGw7MTI+ZiYmIlBNIj09dj9mPWYtMCsxMjoxMTxmJiYiQU0iPT12JiYoZi09MTIpO3JldHVybiBuZXcgRGF0ZShsLGctMSxkLGYscix0KX07RGF0ZS5pc1ZhbGlkPWZ1bmN0aW9uKGEsZSl7cmV0dXJuIG51bGwhPT1uZWJEYXRlRm4ucGFyc2VTdHJpbmcoYSxlKX07RGF0ZS5wcm90b3R5cGUuZGlmZj1mdW5jdGlvbihhKXtyZXR1cm4gbnVsbD09PWE\/ITE6dGhpcy5nZXRUaW1lKCk9PWEuZ2V0VGltZSgpPzA6dGhpcy5nZXRUaW1lKCk+YS5nZXRUaW1lKCk\/LTE6MX07CkRhdGUucHJvdG90eXBlLmZvcm1hdD1mdW5jdGlvbihhKXthKz0iIjt2YXIgZT0iIixjPTAsaD10aGlzLmdldEZ1bGxZZWFyKCkrIiIsaz10aGlzLmdldE1vbnRoKCkrMSxuPXRoaXMuZ2V0RGF0ZSgpLG09dGhpcy5nZXREYXkoKSxiPXRoaXMuZ2V0SG91cnMoKSxsPXRoaXMuZ2V0TWludXRlcygpLGc9dGhpcy5nZXRTZWNvbmRzKCksZD17fTs0PmgubGVuZ3RoJiYoaD0iIisoK2grMTkwMCkpO2QueT0iIitoO2QueXl5eT1oO2QueXk9aC5zdWJzdHJpbmcoMiw0KTtkLk09aztkLk1NPURhdGUuTFooayk7ZC5NTU09JC5uZWJMYW5nLm1vbnRoTmFtZXNbay0xXTtkLk5OTj0kLm5lYkxhbmcubW9udGhOYW1lc1Nob3J0W2stMV07ZC5kPW47ZC5kZD1EYXRlLkxaKG4pO2QuRT0kLm5lYkxhbmcuZGF5TmFtZXNTaG9ydFttXTtkLkVFPSQubmViTGFuZy5kYXlOYW1lc1ttXTtkLkg9YjtkLkhIPURhdGUuTFooYik7ZC5oPTA9PT1iPzEyOjEyPGI\/Yi0xMjpiO2QuaGg9RGF0ZS5MWihkLmgpO2QuSz0KZC5oLTE7ZC5rPWQuSCsxO2QuS0s9RGF0ZS5MWihkLkspO2Qua2s9RGF0ZS5MWihkLmspO2QuYT0xMTxiPyJQTSI6IkFNIjtkLm09bDtkLm1tPURhdGUuTFoobCk7ZC5zPWc7Zm9yKGQuc3M9RGF0ZS5MWihnKTtjPGEubGVuZ3RoOyl7aD1hLmNoYXJBdChjKTtmb3Ioaz0iIjthLmNoYXJBdChjKT09aCYmYzxhLmxlbmd0aDspays9YS5jaGFyQXQoYysrKTtlPSJ1bmRlZmluZWQiIT10eXBlb2YgZFtrXT9lK2Rba106ZStrfXJldHVybiBlfTsKRGF0ZS5wcm90b3R5cGUuYWRkPWZ1bmN0aW9uKGEsZSl7aWYoInVuZGVmaW5lZCI9PT10eXBlb2YgYXx8bnVsbD09PWF8fCJ1bmRlZmluZWQiPT09dHlwZW9mIGV8fG51bGw9PT1lKXJldHVybiB0aGlzO2U9K2U7aWYoInkiPT1hKXRoaXMuc2V0RnVsbFllYXIodGhpcy5nZXRGdWxsWWVhcigpK2UpO2Vsc2UgaWYoIk0iPT1hKXRoaXMuc2V0TW9udGgodGhpcy5nZXRNb250aCgpK2UpO2Vsc2UgaWYoImQiPT1hKXRoaXMuc2V0RGF0ZSh0aGlzLmdldERhdGUoKStlKTtlbHNlIGlmKCJ3Ij09YSlmb3IoYT0wPGU\/MTotMTswIT09ZTspe2Zvcih0aGlzLmFkZCgiZCIsYSk7MD09PXRoaXMuZ2V0RGF5KCl8fDY9PT10aGlzLmdldERheSgpOyl0aGlzLmFkZCgiZCIsYSk7ZS09YX1lbHNlImgiPT1hP3RoaXMuc2V0SG91cnModGhpcy5nZXRIb3VycygpK2UpOiJtIj09YT90aGlzLnNldE1pbnV0ZXModGhpcy5nZXRNaW51dGVzKCkrZSk6InMiPT1hJiZ0aGlzLnNldFNlY29uZHModGhpcy5nZXRTZWNvbmRzKCkrCmUpO3JldHVybiB0aGlzfTtEYXRlLnByb3RvdHlwZS5jbG9uZT1mdW5jdGlvbigpe3JldHVybiBuZXcgRGF0ZSh0aGlzLmdldFRpbWUoKSl9OwovKiogL2pzL25lYkNhbC9uZWJDYWwuanMgKiovCnZhciBfX19kMmNfbmViQ2FsanNfY19vbj0iMjAyNS0wNS0yMyAxNzowNDoyMiI7J3VzZSBzdHJpY3QnO3ZhciBfX19kMmNfbmViQ2FsanNfY19vbj0iMjAyNC0wNC0xNiAxMTozMDowNyI7InVzZSBzdHJpY3QiOwooZnVuY3Rpb24oZSl7ZS5uZWJDYWw9ZnVuY3Rpb24oaCxnKXt2YXIgbD17c2xpZGVEdXJhdGlvbjo1MDAsZmFkZUR1cmF0aW9uOjIwMCx0b2dnbGVEdXJhdGlvbjoyMDAscHJlZmlsbDohMSxkZWZhdWx0RGF0ZTp2b2lkIDAsbGlua1dpdGhJbnB1dDohMCxrZXlOYXZpZ2F0aW9uOiEwLHRoZW1lOiJkZWZhdWx0IixkZWZhdWx0VmlldzoibW9udGgiLHN0YXJ0TW9uZGF5OiExLGFsd2F5c1Nob3c6ITEsaW5qZWN0SW5zaWRlVGFyZ2V0OiExLGZvcm1hdDoieXl5eS1NTS1kZCIsYWxpZ25YOiJtaWRkbGUiLGFsaWduWToiYm90dG9tIixvZmZzZXRYOjIwLG9mZnNldFk6MCxwb3J0cmFpdDohMCxwaWNrYWJsZTohMCx0b2dnbGVyOnZvaWQgMCxkaXNhbGxvd1VzZXJJbnB1dDohMSxtaW5EYXRlOnZvaWQgMCxtYXhEYXRlOnZvaWQgMCxleGNsdWRlZFdlZWtkYXlzOnZvaWQgMCxleGNsdWRlZERhdGVzOnZvaWQgMCxjcmVhdGVIaWRkZW5JbnB1dDohMSxoaWRkZW5JbnB1dE5hbWU6ImRhdGUiLGhpZGRlbklucHV0Rm9ybWF0OiIldCIsCm9uU2VsZWN0OiExLG9uVmlld0NoYW5nZTohMX0sYT10aGlzO2Eub3B0aW9ucz17fTthLnRhcmdldD1lKGgpO2EuaW5pdD1mdW5jdGlvbigpe2Eub3B0aW9ucz1lLmV4dGVuZCh7fSxsLGcpO2EudG9kYXk9bmViRGF0ZUZuLmNsZWFyVGltZShuZXcgRGF0ZSk7YS50cmFuc2l0aW9uaW5nPSExO3ZvaWQgMCE9PWEub3B0aW9ucy5kZWZhdWx0RGF0ZT9hLnNlbGVjdGVkRGF0ZT1uZWJEYXRlRm4uY2xlYXJUaW1lKG5lYkRhdGVGbi5wYXJzZVN0cmluZyhhLm9wdGlvbnMuZGVmYXVsdERhdGUpKTphLm9wdGlvbnMubGlua1dpdGhJbnB1dCYmdm9pZCAwIT09YS50YXJnZXQudmFsKCkmJjAhPT1hLnRhcmdldC52YWwoKSYmKGEuc2VsZWN0ZWREYXRlPW5lYkRhdGVGbi5jbGVhclRpbWUobmViRGF0ZUZuLnBhcnNlU3RyaW5nKGEudGFyZ2V0LnZhbCgpKSkpO2lmKHZvaWQgMD09PWEuc2VsZWN0ZWREYXRlfHxudWxsPT09YS5zZWxlY3RlZERhdGUpYS5zZWxlY3RlZERhdGU9YS50b2RheS5jbG9uZSgpOwphLmVsZW1lbnQ9ZSgnPGRpdiBjbGFzcz0ibmViQ2FsICcrYS5vcHRpb25zLnRoZW1lKyciIHN0eWxlPSJkaXNwbGF5OiAnKyhhLm9wdGlvbnMuYWx3YXlzU2hvdz8iYmxvY2siOiJub25lIikrJyI+PGRpdiBjbGFzcz0iY2FsLXdyYXBwZXIiPjxkaXYgY2xhc3M9ImNhbC1oZWFkZXIiPjxkaXYgY2xhc3M9ImNhbC1hcnJvdy1sZWZ0Ij48L2Rpdj48ZGl2IGNsYXNzPSJjYWwtYXJyb3ctcmlnaHQiPjwvZGl2PjxkaXYgY2xhc3M9ImNhbC1sYWJlbCBjYWwtY2xpY2thYmxlIj48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJjYWwtYm9keSI+PGRpdiBjbGFzcz0iY2FsLWlubmVyIj48ZGl2IGNsYXNzPSJjYWwtY29udGFpbmVyIGEiPjwvZGl2PjxkaXYgY2xhc3M9ImNhbC1jb250YWluZXIgYiI+PC9kaXY+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iY2FsLWZvb3RlciI+PC9kaXY+PC9kaXY+PC9kaXY+Jyk7YS5vcHRpb25zLmluamVjdEluc2lkZVRhcmdldD8oYS5lbGVtZW50LmFkZENsYXNzKCJpbmxpbmUiKSwKYS5lbGVtZW50LmFwcGVuZFRvKGEudGFyZ2V0KSk6KGEuZWxlbWVudC5hcHBlbmRUbyhlKCJib2R5IikpLGEucG9zaXRpb24oKSxlKHdpbmRvdykub24oInJlc2l6ZSIsYS5wb3NpdGlvbikpO2EuY3VycmVudENvbnRhaW5lcj1hLmVsZW1lbnQuZmluZCgiLmNhbC1jb250YWluZXIuYSIpLmNzcygiei1pbmRleCIsOTk5KTthLnRlbXBDb250YWluZXI9YS5lbGVtZW50LmZpbmQoIi5jYWwtY29udGFpbmVyLmIiKS5jc3MoInotaW5kZXgiLDk5OCk7YS5oZWFkZXI9YS5lbGVtZW50LmZpbmQoIi5jYWwtaGVhZGVyIik7YS5sYWJlbD1hLmhlYWRlci5maW5kKCIuY2FsLWxhYmVsIik7YS5hcnJvd0xlZnQ9YS5oZWFkZXIuZmluZCgiLmNhbC1hcnJvdy1sZWZ0Iik7YS5hcnJvd1JpZ2h0PWEuaGVhZGVyLmZpbmQoIi5jYWwtYXJyb3ctcmlnaHQiKTthLmxhYmVsLm9uKCJjbGljayIsYS5sZXZlbFVwKTthLmFycm93TGVmdC5vbigiY2xpY2siLGEuc2xpZGVMZWZ0KTthLmFycm93UmlnaHQub24oImNsaWNrIiwKYS5zbGlkZVJpZ2h0KTt2b2lkIDAhPT1hLm9wdGlvbnMubWluRGF0ZSYmKGEub3B0aW9ucy5taW5EYXRlPW5lYkRhdGVGbi5jbGVhclRpbWUobmViRGF0ZUZuLnBhcnNlU3RyaW5nKGEub3B0aW9ucy5taW5EYXRlKSkpO3ZvaWQgMCE9PWEub3B0aW9ucy5tYXhEYXRlJiYoYS5vcHRpb25zLm1heERhdGU9bmViRGF0ZUZuLmNsZWFyVGltZShuZWJEYXRlRm4ucGFyc2VTdHJpbmcoYS5vcHRpb25zLm1heERhdGUpKSk7aWYodm9pZCAwIT09YS5vcHRpb25zLmV4Y2x1ZGVkRGF0ZXMpe3ZhciBiPVtdO2Eub3B0aW9ucy5leGNsdWRlZERhdGVzLmVhY2goZnVuY3Rpb24oYyl7Yi5pbmNsdWRlKGEuZm9ybWF0KG5lYkRhdGVGbi5jbGVhclRpbWUobmViRGF0ZUZuLnBhcnNlU3RyaW5nKGMpKSwiJXQiKSl9KTthLm9wdGlvbnMuZXhjbHVkZWREYXRlcz1ifWEub3B0aW9ucy5jcmVhdGVIaWRkZW5JbnB1dCYmKGEuaGlkZGVuSW5wdXQ9KG5ldyBFbGVtZW50KCJpbnB1dCIse3R5cGU6ImhpZGRlbiIsCm5hbWU6YS5vcHRpb25zLmhpZGRlbklucHV0TmFtZX0pKS5hcHBlbmRUbyhhLnRhcmdldCkpOyFhLm9wdGlvbnMuZGlzYWxsb3dVc2VySW5wdXQmJmEub3B0aW9ucy5saW5rV2l0aElucHV0JiYiaW5wdXQiPT1hLnRhcmdldC5hdHRyKCJ0YWciKSYmYS50YXJnZXQuYWRkRXZlbnQoImtleXVwIixmdW5jdGlvbigpe2Euc2V0RGF0ZShhLnRhcmdldC5hdHRyKCJ2YWx1ZSIpLCExKX0pO3ZvaWQgMCE9PWEub3B0aW9ucy50b2dnbGVyJiYoYS5vcHRpb25zLnRvZ2dsZXI9ZShhLm9wdGlvbnMudG9nZ2xlcikpOyh2b2lkIDAhPT1hLm9wdGlvbnMudG9nZ2xlcj9hLm9wdGlvbnMudG9nZ2xlcjphLnRhcmdldCkub24oImZvY3VzIixhLnNob3cpLm9uKCJjbGljayIsYS5zaG93KTtpZighYS5vcHRpb25zLmFsd2F5c1Nob3cpZShkb2N1bWVudCkub24oIm1vdXNlZG93biIsYS5vdXRzaWRlQ2xpY2spOyJJTlBVVCI9PWEudGFyZ2V0LnByb3AoInRhZ05hbWUiKSYmKGEudGFyZ2V0LnRyaWdnZXIoImtleWRvd24iLAphLm9uS2V5RG93biksYS50YXJnZXQudHJpZ2dlcigia2V5dXAiLGEub25LZXlVcCksYS5vcHRpb25zLmRpc2FsbG93VXNlcklucHV0JiZhLnRhcmdldC5hZGRFdmVudCgiY29udGV4dG1lbnUiLCRsYW1iZGEoITEpKSk7YS5zZWxlY3RlZERhdGU9YS5jb3JyZWN0RGF0ZShhLnNlbGVjdGVkRGF0ZSk7YS5vcHRpb25zLnByZWZpbGwmJmEucGljaygpO2Eudmlld0RhdGU9bmViRGF0ZUZuLmNsZWFyVGltZShhLnNlbGVjdGVkRGF0ZS5jbG9uZSgpLnNldERheSgxKSk7YS52aWV3PWEub3B0aW9ucy5kZWZhdWx0VmlldzthLnJlbmRlcigpfTthLnJlbmRlcj1mdW5jdGlvbigpe2EuY3VycmVudENvbnRhaW5lci5lbXB0eSgpO3N3aXRjaChhLnZpZXcpe2Nhc2UgImRlY2FkZSI6YS5yZW5kZXJEZWNhZGUoKTticmVhaztjYXNlICJ5ZWFyIjphLnJlbmRlclllYXIoKTticmVhaztkZWZhdWx0OmEucmVuZGVyTW9udGgoKX1yZXR1cm4gYX07YS5yZW5kZXJNb250aD1mdW5jdGlvbigpe2Eudmlldz0KIm1vbnRoIjthLmN1cnJlbnRDb250YWluZXIuZW1wdHkoKS5hZGRDbGFzcygiY2FsLW1vbnRoIik7YS5vcHRpb25zLnBpY2thYmxlJiZhLmN1cnJlbnRDb250YWluZXIuYWRkQ2xhc3MoImNhbC1waWNrYWJsZSIpO3ZhciBiPWUubmViTGFuZyxjPWEudmlld0RhdGUuZ2V0RGF5KCktKGEub3B0aW9ucy5zdGFydE1vbmRheT8xOjApOy0xPT1jJiYoYz02KTthLmxhYmVsLmh0bWwoYi5tb250aE5hbWVzW2Eudmlld0RhdGUuZ2V0TW9udGgoKV0rIiAiK2Eudmlld0RhdGUuZm9ybWF0KCJ5eXl5IikpO2Zvcih2YXIgZD1lKCI8ZGl2PjwvZGl2PiIpLmFkZENsYXNzKCJjYWwtcm93IikuYXBwZW5kVG8oYS5jdXJyZW50Q29udGFpbmVyKSxmPWEub3B0aW9ucy5zdGFydE1vbmRheT8xOjA7ZjwoYS5vcHRpb25zLnN0YXJ0TW9uZGF5Pzg6Nyk7ZisrKXt2YXIgaz1lKCI8ZGl2PjwvZGl2PiIpLmh0bWwoYi5kYXlOYW1lc1Nob3J0W2Eub3B0aW9ucy5zdGFydE1vbmRheSYmNz09Zj8wOmZdKS5hcHBlbmRUbyhkKTsKay5odG1sKGsuaHRtbCgpKX1kPWUoIjxkaXY+PC9kaXY+IikuYWRkQ2xhc3MoImNhbC1yb3ciKS5hcHBlbmRUbyhhLmN1cnJlbnRDb250YWluZXIpO2I9YS52aWV3RGF0ZS5jbG9uZSgpLmFkZCgiTSIsLTEpLmdldExhc3REYXlPZk1vbnRoQ2FsKCk7Zm9yKGY9MDtmPGM7ZisrKWEuaW5qZWN0RGF5KGQsYS52aWV3RGF0ZS5jbG9uZSgpLmFkZCgiTSIsLTEpLnNldERheShiLShjLWYpKzEpLCEwKTtmb3IoZj0xO2Y8PWEudmlld0RhdGUuZ2V0TGFzdERheU9mTW9udGhDYWwoKTtmKyspYS5pbmplY3REYXkoZCxhLnZpZXdEYXRlLmNsb25lKCkuc2V0RGF5KGYpKSw3PT1kLmNoaWxkcmVuKCkubGVuZ3RoJiYoZD1lKCI8ZGl2PjwvZGl2PiIpLmFkZENsYXNzKCJjYWwtcm93IikuYXBwZW5kVG8oYS5jdXJyZW50Q29udGFpbmVyKSk7Yj04LWQuY2hpbGRyZW4oKS5sZW5ndGg7Yz1hLnZpZXdEYXRlLmNsb25lKCkuYWRkKCJNIiwxKS5zZXREYXkoMSk7Zm9yKGY9MTtmPGI7ZisrKWEuaW5qZWN0RGF5KGQsCmMuY2xvbmUoKS5zZXREYXkoZiksITApO2ZvcihiPWEuY3VycmVudENvbnRhaW5lci5maW5kKCIuY2FsLXJvdyIpLmxlbmd0aDs3PmI7YisrKWZvcihkPWUoIjxkaXY+PC9kaXY+IikuYWRkQ2xhc3MoImNhbC1yb3ciKS5hcHBlbmRUbyhhLmN1cnJlbnRDb250YWluZXIpLGs9MDs3Pms7aysrKWEuaW5qZWN0RGF5KGQsYy5jbG9uZSgpLnNldERheShmKSwhMCksZisrO2EucmVuZGVyQWZ0ZXIoKX07YS5pbmplY3REYXk9ZnVuY3Rpb24oYixjLGQpe2I9ZSgiPGRpdj48L2Rpdj4iKS5odG1sKGMuZ2V0RGF0ZSgpKS5hcHBlbmRUbyhiKTtiLmRhdGEoImRhdGUiLGMpO2QmJmIuYWRkQ2xhc3MoImNhbC1vdXRzaWRlIik7aWYodm9pZCAwIT09YS5vcHRpb25zLm1pbkRhdGUmJmEub3B0aW9ucy5taW5EYXRlPmN8fHZvaWQgMCE9PWEub3B0aW9ucy5tYXhEYXRlJiZhLm9wdGlvbnMubWF4RGF0ZTxjfHx2b2lkIDAhPT1hLm9wdGlvbnMuZXhjbHVkZWRXZWVrZGF5cyYmYS5vcHRpb25zLmV4Y2x1ZGVkV2Vla2RheXMuY29udGFpbnMoYy5mb3JtYXQoIkUiKS50b0ludCgpKXx8CnZvaWQgMCE9PWEub3B0aW9ucy5leGNsdWRlZERhdGVzJiZhLm9wdGlvbnMuZXhjbHVkZWREYXRlcy5jb250YWlucyhhLmZvcm1hdChjLCIldCIpKSliLmFkZENsYXNzKCJjYWwtbm9uLXNlbGVjdGFibGUiKTtlbHNlIGlmKGEub3B0aW9ucy5waWNrYWJsZSliLm9uKCJjbGljayIsYS5waWNrKTtjLmZvcm1hdCgiZCIpPT1hLnRvZGF5LmZvcm1hdCgiZCIpJiZiLmFkZENsYXNzKCJjYWwtdG9kYXkiKTtkfHxjLmZvcm1hdCgiZCIpIT1hLnNlbGVjdGVkRGF0ZS5mb3JtYXQoImQiKXx8Yi5hZGRDbGFzcygiY2FsLXNlbGVjdGVkIil9O2EucmVuZGVyWWVhcj1mdW5jdGlvbigpe2Eudmlldz0ieWVhciI7YS5jdXJyZW50Q29udGFpbmVyLmFkZENsYXNzKCJjYWwteWVhci1kZWNhZGUgIisoYS5vcHRpb25zLnBvcnRyYWl0PyJjYWwtcG9ydHJhaXQiOiJjYWwtbGFuZHNjYXBlIikpO3ZhciBiPWUubmViTGFuZy5tb250aE5hbWVzU2hvcnQ7YS5sYWJlbC5odG1sKGEudmlld0RhdGUuZm9ybWF0KCJ5eXl5IikpOwpmb3IodmFyIGM9ZSgiPGRpdj48L2Rpdj4iKS5hZGRDbGFzcygiY2FsLXJvdyIpLmFwcGVuZFRvKGEuY3VycmVudENvbnRhaW5lciksZD0xOzEzPmQ7ZCsrKXt2YXIgZj1lKCI8ZGl2PjwvZGl2PiIpLmh0bWwoYltkLTFdKS5hcHBlbmRUbyhjKSxrPWEudmlld0RhdGUuY2xvbmUoKS5zZXRNb24oZC0xKTtmLmRhdGEoImRhdGUiLGspO2lmKHZvaWQgMCE9PWEub3B0aW9ucy5taW5EYXRlJiZhLm9wdGlvbnMubWluRGF0ZS5jbG9uZSgpLnNldERheSgxKT5rfHx2b2lkIDAhPT1hLm9wdGlvbnMubWF4RGF0ZSYmYS5vcHRpb25zLm1heERhdGUuY2xvbmUoKS5zZXREYXkoMSk8aylmLmFkZENsYXNzKCJjYWwtbm9uLXNlbGVjdGFibGUiKTtlbHNlIGYub24oImNsaWNrIixhLmxldmVsRG93bik7ZC0xPT1hLnRvZGF5LmdldE1vbnRoKCkmJmEudmlld0RhdGUuZ2V0RnVsbFllYXIoKT09YS50b2RheS5nZXRGdWxsWWVhcigpJiZmLmFkZENsYXNzKCJjYWwtdG9kYXkiKTtkLTE9PWEuc2VsZWN0ZWREYXRlLmdldE1vbnRoKCkmJgphLnZpZXdEYXRlLmdldEZ1bGxZZWFyKCk9PWEuc2VsZWN0ZWREYXRlLmdldEZ1bGxZZWFyKCkmJmYuYWRkQ2xhc3MoImNhbC1zZWxlY3RlZCIpO2QlKGEub3B0aW9ucy5wb3J0cmFpdD8zOjQpfHwxMj09ZHx8KGM9ZSgiPGRpdj48L2Rpdj4iKS5hZGRDbGFzcygiY2FsLXJvdyIpLmFwcGVuZFRvKGEuY3VycmVudENvbnRhaW5lcikpfWEucmVuZGVyQWZ0ZXIoKX07YS5yZW5kZXJEZWNhZGU9ZnVuY3Rpb24oKXthLmxhYmVsLnJlbW92ZUNsYXNzKCJjYWwtY2xpY2thYmxlIik7YS52aWV3PSJkZWNhZGUiO2EuY3VycmVudENvbnRhaW5lci5hZGRDbGFzcygiY2FsLXllYXItZGVjYWRlICIrKGEub3B0aW9ucy5wb3J0cmFpdD8iY2FsLXBvcnRyYWl0IjoiY2FsLWxhbmRzY2FwZSIpKTt2YXIgYjtmb3IoYj1wYXJzZUludChhLnZpZXdEYXRlLmZvcm1hdCgieXl5eSIpKTtiJTEyOyliLS07YS5sYWJlbC5odG1sKGIrIiAmIzE1MDsgIisoYisxMSkpO2Zvcih2YXIgYz1lKCI8ZGl2PjwvZGl2PiIpLmFkZENsYXNzKCJjYWwtcm93IikuYXBwZW5kVG8oYS5jdXJyZW50Q29udGFpbmVyKSwKZD1iO2Q8YisxMjtkKyspe3ZhciBmPWUoIjxkaXY+PC9kaXY+IikuaHRtbChkKS5hcHBlbmRUbyhjKSxrPWEudmlld0RhdGUuY2xvbmUoKS5zZXRZZWFyKGQpO2YuZGF0YSgiZGF0ZSIsayk7aWYodm9pZCAwIT09YS5vcHRpb25zLm1pbkRhdGUmJmEub3B0aW9ucy5taW5EYXRlLmdldEZ1bGxZZWFyKCk+ZHx8dm9pZCAwIT09YS5vcHRpb25zLm1heERhdGUmJmEub3B0aW9ucy5tYXhEYXRlLmdldEZ1bGxZZWFyKCk8ZClmLmFkZENsYXNzKCJjYWwtbm9uLXNlbGVjdGFibGUiKTtlbHNlIGYub24oImNsaWNrIixhLmxldmVsRG93bik7ZD09YS50b2RheS5nZXRGdWxsWWVhcigpJiZmLmFkZENsYXNzKCJjYWwtdG9kYXkiKTtkPT1hLnNlbGVjdGVkRGF0ZS5nZXRGdWxsWWVhcigpJiZmLmFkZENsYXNzKCJjYWwtc2VsZWN0ZWQiKTsoZCsxKSUoYS5vcHRpb25zLnBvcnRyYWl0PzM6NCl8fGQ9PWIrMTF8fChjPWUoIjxkaXY+PC9kaXY+IikuYWRkQ2xhc3MoImNhbC1yb3ciKS5hcHBlbmRUbyhhLmN1cnJlbnRDb250YWluZXIpKX1hLnJlbmRlckFmdGVyKCl9OwphLnJlbmRlckFmdGVyPWZ1bmN0aW9uKCl7Zm9yKHZhciBiPWEuY3VycmVudENvbnRhaW5lci5maW5kKCIuY2FsLXJvdyIpLGM9MDtjPGIubGVuZ3RoO2MrKyllKGJbY10pLmFkZENsYXNzKCJjYWwtcm93ICIrImFiY2RlZmciLnNwbGl0KCIiKVtjXSsiICIrKGMlMj8iY2FsLWV2ZW4iOiJjYWwtb2RkIikpO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBhLm9wdGlvbnMub25WaWV3Q2hhbmdlKWEub3B0aW9ucy5vblZpZXdDaGFuZ2UoYS52aWV3LGEuc2VsZWN0ZWREYXRlLGEudmlld0RhdGUpfTthLnNsaWRlTGVmdD1mdW5jdGlvbigpe2EudHJhbnNpdGlvbmluZyYmKGEudGVtcENvbnRhaW5lci5jc3Moe2xlZnQ6MH0pLnN0b3AoKSxhLnRlbXBDb250YWluZXIuY3NzKHtsZWZ0OjB9KS5zdG9wKCksYS50cmFuc2l0aW9uaW5nPSExKTthLnN3aXRjaENvbnRhaW5lcnMoKTtzd2l0Y2goYS52aWV3KXtjYXNlICJtb250aCI6YS52aWV3RGF0ZS5hZGQoIk0iLC0xKTticmVhaztjYXNlICJ5ZWFyIjphLnZpZXdEYXRlLmFkZCgieSIsCi0xKTticmVhaztjYXNlICJkZWNhZGUiOmEudmlld0RhdGUuc2V0RnVsbFllYXIoYS52aWV3RGF0ZS5nZXRGdWxsWWVhcigpLTEyKX1hLnJlbmRlcigpO2EudHJhbnNpdGlvbmluZz0hMDthLmN1cnJlbnRDb250YWluZXIuY3NzKHtsZWZ0Oi1hLmN1cnJlbnRDb250YWluZXIud2lkdGgoKX0pLmFuaW1hdGUoe2xlZnQ6MH0sYS5vcHRpb25zLnNsaWRlRHVyYXRpb24pO2EudGVtcENvbnRhaW5lci5jc3Moe2xlZnQ6MH0pLmFuaW1hdGUoe2xlZnQ6YS50ZW1wQ29udGFpbmVyLndpZHRoKCl9LGEub3B0aW9ucy5zbGlkZUR1cmF0aW9uLGZ1bmN0aW9uKCl7ZSh0aGlzKS5jc3Moe2xlZnQ6MH0pO2EudHJhbnNpdGlvbmluZz0hMX0pfTthLnNsaWRlUmlnaHQ9ZnVuY3Rpb24oKXthLnRyYW5zaXRpb25pbmcmJihhLnRlbXBDb250YWluZXIuY3NzKHtsZWZ0OjB9KS5zdG9wKCksYS50ZW1wQ29udGFpbmVyLmNzcyh7bGVmdDowfSkuc3RvcCgpLGEudHJhbnNpdGlvbmluZz0hMSk7YS5zd2l0Y2hDb250YWluZXJzKCk7CnN3aXRjaChhLnZpZXcpe2Nhc2UgIm1vbnRoIjphLnZpZXdEYXRlLmFkZCgiTSIsMSk7YnJlYWs7Y2FzZSAieWVhciI6YS52aWV3RGF0ZS5hZGQoInkiLDEpO2JyZWFrO2Nhc2UgImRlY2FkZSI6YS52aWV3RGF0ZS5zZXRGdWxsWWVhcihhLnZpZXdEYXRlLmdldEZ1bGxZZWFyKCkrMTIpfWEucmVuZGVyKCk7YS50cmFuc2l0aW9uaW5nPSEwO2EuY3VycmVudENvbnRhaW5lci5jc3Moe2xlZnQ6YS5jdXJyZW50Q29udGFpbmVyLndpZHRoKCl9KS5hbmltYXRlKHtsZWZ0OjB9LGEub3B0aW9ucy5zbGlkZUR1cmF0aW9uKTthLnRlbXBDb250YWluZXIuY3NzKHtsZWZ0OjB9KS5hbmltYXRlKHtsZWZ0Oi1hLnRlbXBDb250YWluZXIud2lkdGgoKX0sYS5vcHRpb25zLnNsaWRlRHVyYXRpb24sZnVuY3Rpb24oKXtlKHRoaXMpLmNzcyh7bGVmdDowfSk7YS50cmFuc2l0aW9uaW5nPSExfSl9O2EubGV2ZWxEb3duPWZ1bmN0aW9uKGIpe2lmKCFhLnRyYW5zaXRpb25pbmcpe2Euc3dpdGNoQ29udGFpbmVycygpOwphLnZpZXdEYXRlPWUoYi50YXJnZXQpLmRhdGEoImRhdGUiKTtzd2l0Y2goYS52aWV3KXtjYXNlICJ5ZWFyIjphLnJlbmRlck1vbnRoKCk7YnJlYWs7Y2FzZSAiZGVjYWRlIjphLnJlbmRlclllYXIoKX1hLnRyYW5zaXRpb25pbmc9ITA7YS5jdXJyZW50Q29udGFpbmVyLmZhZGVJbihhLm9wdGlvbnMuZmFkZUR1cmF0aW9uLGZ1bmN0aW9uKCl7YS50cmFuc2l0aW9uaW5nPSExfSk7YS50ZW1wQ29udGFpbmVyLmZhZGVPdXQoYS5vcHRpb25zLmZhZGVEdXJhdGlvbil9fTthLmxldmVsVXA9ZnVuY3Rpb24oKXtpZigiZGVjYWRlIiE9YS52aWV3JiYhYS50cmFuc2l0aW9uaW5nKXthLnN3aXRjaENvbnRhaW5lcnMoKTtzd2l0Y2goYS52aWV3KXtjYXNlICJtb250aCI6YS5yZW5kZXJZZWFyKCk7YnJlYWs7Y2FzZSAieWVhciI6YS5yZW5kZXJEZWNhZGUoKX1hLnRyYW5zaXRpb25pbmc9ITA7YS5jdXJyZW50Q29udGFpbmVyLmZhZGVJbihhLm9wdGlvbnMuZmFkZUR1cmF0aW9uLGZ1bmN0aW9uKCl7YS50cmFuc2l0aW9uaW5nPQohMX0pO2EudGVtcENvbnRhaW5lci5mYWRlT3V0KGEub3B0aW9ucy5mYWRlRHVyYXRpb24pfX07YS5jaGFuZ2VWaWV3PWZ1bmN0aW9uKGIpe2lmKCFhLnRyYW5zaXRpb25pbmcmJmIhPWEudmlldyl7YS5zd2l0Y2hDb250YWluZXJzKCk7c3dpdGNoKGIpe2Nhc2UgIm1vbnRoIjphLnJlbmRlck1vbnRoKCk7YnJlYWs7Y2FzZSAieWVhciI6YS5yZW5kZXJZZWFyKCk7YnJlYWs7Y2FzZSAiZGVjYWRlIjphLnJlbmRlckRlY2FkZSgpfWEudHJhbnNpdGlvbmluZz0hMDthLmN1cnJlbnRDb250YWluZXIuZmFkZUluKGEub3B0aW9ucy5mYWRlRHVyYXRpb24sZnVuY3Rpb24oKXthLnRyYW5zaXRpb25pbmc9ITF9KTthLnRlbXBDb250YWluZXIuZmFkZU91dChhLm9wdGlvbnMuZmFkZUR1cmF0aW9uKX19O2EudXBkYXRlTWluRGF0ZT1mdW5jdGlvbihiKXtpZighYS50cmFuc2l0aW9uaW5nJiYoYj1uZWJEYXRlRm4ucGFyc2VTdHJpbmcoYiksbnVsbCE9PWIpKXthLm9wdGlvbnMubWluRGF0ZT1uZWJEYXRlRm4uY2xlYXJUaW1lKGIpOwphLnN3aXRjaENvbnRhaW5lcnMoKTtzd2l0Y2goYS52aWV3KXtjYXNlICJtb250aCI6YS5yZW5kZXJNb250aCgpO2JyZWFrO2Nhc2UgInllYXIiOmEucmVuZGVyWWVhcigpO2JyZWFrO2Nhc2UgImRlY2FkZSI6YS5yZW5kZXJEZWNhZGUoKX1hLnRyYW5zaXRpb25pbmc9ITA7YS5jdXJyZW50Q29udGFpbmVyLmZhZGVJbihhLm9wdGlvbnMuZmFkZUR1cmF0aW9uLGZ1bmN0aW9uKCl7YS50cmFuc2l0aW9uaW5nPSExfSk7YS50ZW1wQ29udGFpbmVyLmZhZGVPdXQoYS5vcHRpb25zLmZhZGVEdXJhdGlvbil9fTthLnVwZGF0ZU1heERhdGU9ZnVuY3Rpb24oYil7aWYoIWEudHJhbnNpdGlvbmluZyYmKGI9bmViRGF0ZUZuLnBhcnNlU3RyaW5nKGIpLG51bGwhPT1iKSl7YS5vcHRpb25zLm1heERhdGU9bmViRGF0ZUZuLmNsZWFyVGltZShiKTthLnN3aXRjaENvbnRhaW5lcnMoKTtzd2l0Y2goYS52aWV3KXtjYXNlICJtb250aCI6YS5yZW5kZXJNb250aCgpO2JyZWFrO2Nhc2UgInllYXIiOmEucmVuZGVyWWVhcigpOwpicmVhaztjYXNlICJkZWNhZGUiOmEucmVuZGVyRGVjYWRlKCl9YS50cmFuc2l0aW9uaW5nPSEwO2EuY3VycmVudENvbnRhaW5lci5mYWRlSW4oYS5vcHRpb25zLmZhZGVEdXJhdGlvbixmdW5jdGlvbigpe2EudHJhbnNpdGlvbmluZz0hMX0pO2EudGVtcENvbnRhaW5lci5mYWRlT3V0KGEub3B0aW9ucy5mYWRlRHVyYXRpb24pfX07YS5zd2l0Y2hDb250YWluZXJzPWZ1bmN0aW9uKCl7YS5jdXJyZW50Q29udGFpbmVyPWEuY3VycmVudENvbnRhaW5lci5oYXNDbGFzcygiYSIpP2EuZWxlbWVudC5maW5kKCIuY2FsLWNvbnRhaW5lci5iIik6YS5lbGVtZW50LmZpbmQoIi5jYWwtY29udGFpbmVyLmEiKTthLnRlbXBDb250YWluZXI9YS50ZW1wQ29udGFpbmVyLmhhc0NsYXNzKCJhIik\/YS5lbGVtZW50LmZpbmQoIi5jYWwtY29udGFpbmVyLmIiKTphLmVsZW1lbnQuZmluZCgiLmNhbC1jb250YWluZXIuYSIpO2EuY3VycmVudENvbnRhaW5lci5lbXB0eSgpLnJlbW92ZUNsYXNzKCJjYWwtbW9udGggY2FsLXllYXItZGVjYWRlICIrCihhLm9wdGlvbnMucG9ydHJhaXQ\/ImNhbC1wb3J0cmFpdCI6ImNhbC1sYW5kc2NhcGUiKSkuY3NzKHtvcGFjaXR5OjEsZGlzcGxheToiYmxvY2siLCJ6LWluZGV4Ijo5OTl9KTthLnRlbXBDb250YWluZXIuY3NzKCJ6LWluZGV4Iiw5OTgpO2EubGFiZWwuYWRkQ2xhc3MoImNhbC1jbGlja2FibGUiKTthLmFycm93TGVmdC5jc3MoInZpc2liaWxpdHkiLCJ2aXNpYmxlIik7YS5hcnJvd1JpZ2h0LmNzcygidmlzaWJpbGl0eSIsInZpc2libGUiKX07YS5wb3NpdGlvbj1mdW5jdGlvbigpe3ZhciBiPWEudGFyZ2V0LmdldENvb3JkaW5hdGVzKCk7c3dpdGNoKGEub3B0aW9ucy5hbGlnblgpe2Nhc2UgImxlZnQiOnZhciBjPWIubGVmdDticmVhaztjYXNlICJtaWRkbGUiOmM9Yi5sZWZ0K2Iud2lkdGgvMi1hLmVsZW1lbnQud2lkdGgoKS8yO2JyZWFrO2RlZmF1bHQ6Y2FzZSAicmlnaHQiOmM9Yi5sZWZ0K2Iud2lkdGh9c3dpdGNoKGEub3B0aW9ucy5hbGlnblkpe2Nhc2UgImJvdHRvbSI6Yj1iLnRvcCsKYi5oZWlnaHQ7YnJlYWs7Y2FzZSAidG9wIjpiPWIudG9wLWEuZWxlbWVudC5nZXRIZWlnaHQoKTticmVhaztkZWZhdWx0OmNhc2UgImNlaWxpbmciOmI9Yi50b3B9Yys9cGFyc2VJbnQoYS5vcHRpb25zLm9mZnNldFgpO2IrPXBhcnNlSW50KGEub3B0aW9ucy5vZmZzZXRZKTthLmVsZW1lbnQuY3NzKHt0b3A6YixsZWZ0OmN9KX07YS5zaG93PWZ1bmN0aW9uKCl7YS52aXNpYmxlfHxhLm9wdGlvbnMuYWx3YXlzU2hvd3x8KGEudmlzaWJsZT0hMCxhLmVsZW1lbnQuZmFkZUluKGEub3B0aW9ucy50b2dnbGVEdXJhdGlvbiksYS5wb3NpdGlvbigpKX07YS5oaWRlPWZ1bmN0aW9uKCl7YS52aXNpYmxlJiYhYS5vcHRpb25zLmFsd2F5c1Nob3cmJihhLnZpc2libGU9ITEsYS5lbGVtZW50LmZhZGVPdXQoYS5vcHRpb25zLnRvZ2dsZUR1cmF0aW9uKSl9O2EudG9nZ2xlPWZ1bmN0aW9uKCl7YS52aXNpYmxlP2EuaGlkZSgpOmEuc2hvdygpfTthLm91dHNpZGVDbGljaz1mdW5jdGlvbihiKXtpZihhLnZpc2libGUpe3ZhciBjPQphLmVsZW1lbnQuZ2V0Q29vcmRpbmF0ZXMoKSxkPWEudGFyZ2V0LmdldENvb3JkaW5hdGVzKCk7KGIucGFnZVg8Yy5sZWZ0fHxiLnBhZ2VYPmMubGVmdCtjLndpZHRofHxiLnBhZ2VZPGMudG9wfHxiLnBhZ2VZPmMudG9wK2MuaGVpZ2h0KSYmKGIucGFnZVg8ZC5sZWZ0fHxiLnBhZ2VYPmQubGVmdCtkLndpZHRofHxiLnBhZ2VZPGQudG9wfHxiLnBhZ2VZPmQudG9wK2QuaGVpZ2h0KSYmYS5oaWRlKCl9fTthLnBpY2s9ZnVuY3Rpb24oYil7dm9pZCAwIT09YiYmKGEuc2VsZWN0ZWREYXRlPWUoYi50YXJnZXQpLmRhdGEoImRhdGUiKSxhLmVsZW1lbnQuZmluZCgiLmNhbC1zZWxlY3RlZCIpLnJlbW92ZUNsYXNzKCJjYWwtc2VsZWN0ZWQiKSxlKGIudGFyZ2V0KS5hZGRDbGFzcygiY2FsLXNlbGVjdGVkIiksZShiLnRhcmdldCkuaGFzQ2xhc3MoImNhbC1vdXRzaWRlIik\/YS5vcHRpb25zLmFsd2F5c1Nob3c\/MDxhLnNlbGVjdGVkRGF0ZS5kaWZmKGEudmlld0RhdGUpP2Euc2xpZGVMZWZ0KCk6CmEuc2xpZGVSaWdodCgpOihhLnZpZXdEYXRlPWEuc2VsZWN0ZWREYXRlLmNsb25lKCkuc2V0RGF5KDEpLHNldFRpbWVvdXQoYS5yZW5kZXIsMzAwKSk6c2V0VGltZW91dChhLmhpZGUsMTUwKSk7Yj1hLmZvcm1hdChhLnNlbGVjdGVkRGF0ZSk7Yj1lKCI8dGV4dGFyZWEgLz4iKS5odG1sKGIpLnRleHQoKTtpZighYS5vcHRpb25zLmluamVjdEluc2lkZVRhcmdldClzd2l0Y2goYS50YXJnZXQucHJvcCgidGFnTmFtZSIpLnRvTG93ZXJDYXNlKCkpe2Nhc2UgImlucHV0IjphLnRhcmdldC52YWwoYik7YnJlYWs7ZGVmYXVsdDphLnRhcmdldC5odG1sKGIpfXZvaWQgMCE9PWEuaGlkZGVuSW5wdXQmJmEuaGlkZGVuSW5wdXQuc2V0KCJ2YWx1ZSIsYS5mb3JtYXQoYS5zZWxlY3RlZERhdGUsYS5vcHRpb25zLmhpZGRlbklucHV0Rm9ybWF0KSk7aWYoImZ1bmN0aW9uIj09dHlwZW9mIGEub3B0aW9ucy5vblNlbGVjdClhLm9wdGlvbnMub25TZWxlY3QoYS5zZWxlY3RlZERhdGUpO3JldHVybiBhfTsKYS5mb3JtYXQ9ZnVuY3Rpb24oYixjKXt2b2lkIDA9PT1jJiYoYz10aGlzLm9wdGlvbnMuZm9ybWF0KTtpZih2b2lkIDAhPT1iKXJldHVybiBjPWMucmVwbGFjZSgvJShbYS16JV0pL2dpLGZ1bmN0aW9uKGQsZil7c3dpdGNoKGYpe2Nhc2UgIkQiOnJldHVybiBiLmdldCgiZGF0ZSIpO2Nhc2UgIm4iOnJldHVybiBiLmdldCgibW8iKSsxO2Nhc2UgInQiOnJldHVybiBwYXJzZUludChiLmdldFRpbWUoKS8xRTMpfXJldHVybiIlIitmfSksYi5mb3JtYXQoYyl9O2Eub25LZXlEb3duPWZ1bmN0aW9uKGIpe2lmKGEub3B0aW9ucy5rZXlOYXZpZ2F0aW9uKXt2YXIgYz1hLnNlbGVjdGVkRGF0ZS5jbG9uZSgpLGQ9ITAsZj0hMTtzd2l0Y2goYi53aGljaCl7Y2FzZSAzNzpjLmFkZCgiZCIsLTEpO2Y9ITA7ZD0hMTticmVhaztjYXNlIDM5OmMuYWRkKCJkIiwxKTtmPSEwO2JyZWFrO2Nhc2UgMzg6Yy5hZGQoIk0iLC0xKTtmPSEwO2Q9ITE7YnJlYWs7Y2FzZSA0MDpjLmFkZCgiTSIsMSk7Zj0hMDticmVhazsKY2FzZSA5OnNldFRpbWVvdXQoYS5oaWRlLDE1MCl9ZiYmKGM9YS5jb3JyZWN0RGF0ZShjLGQpLDAhPT1hLnNlbGVjdGVkRGF0ZS5kaWZmKGMpJiZhLnNldERhdGUoYykpfWlmKGEub3B0aW9ucy5kaXNhbGxvd1VzZXJJbnB1dClyZXR1cm4hMX07YS5vbktleVVwPWZ1bmN0aW9uKCl7L15cZHs0fS1cZHsyfS1cZHsyfSQvLnRlc3QoYS50YXJnZXQudmFsKCkpJiYoYS5zZXREYXRlKG5lYkRhdGVGbi5wYXJzZVN0cmluZyhhLnRhcmdldC52YWwoKSkpLGEudGFyZ2V0LnJlbW92ZUNsYXNzKCJpbnZhbGlkSW5wdXQgdG9vbHRpcCIpLnJlbW92ZUF0dHIoInRpdGxlIikpOy9eXGR7Mn0tLy50ZXN0KGEudGFyZ2V0LnZhbCgpKXx8L15cZHs0fS0oMVszLTldfChbMi05XVswLTldKSkvLnRlc3QoYS50YXJnZXQudmFsKCkpP2EudGFyZ2V0LmFkZENsYXNzKCJpbnZhbGlkSW5wdXQiKS5hdHRyKCJ0aXRsZSIsZS5uZWJMYW5nLmludmFsaWREYXRlRm9ybWF0KS50b29sdGlwKHt0b29sdGlwQ2xhc3M6ImFsYnVtX3Rvb2x0aXAiLApwb3NpdGlvbjp7bXk6ImNlbnRlciB0b3ArMzAiLGF0OiIifSxzaG93OntlZmZlY3Q6ImZhZGVJbiIsZHVyYXRpb246NTAwfSxjbG9zZTpmdW5jdGlvbigpe2UodGhpcykucmVtb3ZlKCl9fSk6YS50YXJnZXQucmVtb3ZlQ2xhc3MoImludmFsaWRJbnB1dCB0b29sdGlwIikucmVtb3ZlQXR0cigidGl0bGUiKX07YS5jb3JyZWN0RGF0ZT1mdW5jdGlvbihiLGMpe3ZvaWQgMD09PWMmJihjPSEwKTt2b2lkIDAhPT1hLm9wdGlvbnMubWluRGF0ZSYmMDxiLmRpZmYoYS5vcHRpb25zLm1pbkRhdGUpP2I9YS5vcHRpb25zLm1pbkRhdGUuY2xvbmUoKTp2b2lkIDAhPT1hLm9wdGlvbnMubWF4RGF0ZSYmMD5iLmRpZmYoYS5vcHRpb25zLm1heERhdGUpJiYoYj1hLm9wdGlvbnMubWF4RGF0ZS5jbG9uZSgpKTtmb3IodmFyIGQ9MDt2b2lkIDAhPT1hLm9wdGlvbnMuZXhjbHVkZWRXZWVrZGF5cyYmYS5vcHRpb25zLmV4Y2x1ZGVkV2Vla2RheXMuY29udGFpbnMoYi5mb3JtYXQoIkUiKS50b0ludCgpKXx8CnZvaWQgMCE9PWEub3B0aW9ucy5taW5EYXRlJiYwPGIuZGlmZihhLm9wdGlvbnMubWluRGF0ZSl8fHZvaWQgMCE9PWEub3B0aW9ucy5tYXhEYXRlJiYwPmIuZGlmZihhLm9wdGlvbnMubWF4RGF0ZSl8fHZvaWQgMCE9PWEub3B0aW9ucy5leGNsdWRlZERhdGVzJiZhLm9wdGlvbnMuZXhjbHVkZWREYXRlcy5jb250YWlucyhhLmZvcm1hdChiLCIldCIpKTspe2lmKDMxPT1kKWM9IWM7ZWxzZSBpZig2Mj09ZCl7Yj1hLm9wdGlvbnMubWluRGF0ZS5jbG9uZSgpO2JyZWFrfWM\/Yi5hZGQoImQiLDEpOmIuYWRkKCJkIiwtMSk7ZCsrfXJldHVybiBifTthLnNldERhdGU9ZnVuY3Rpb24oYixjKXt2b2lkIDA9PT1jJiYoYz0hMCk7Yj1uZWJEYXRlRm4uY2xlYXJUaW1lKCJkYXRlIj09dHlwZW9mIGI\/YjpuZWJEYXRlRm4ucGFyc2VTdHJpbmcoYikpO251bGwhPT1iJiYoYS5zZWxlY3RlZERhdGU9YS5jb3JyZWN0RGF0ZShiKSxhLnZpZXdEYXRlPWEuc2VsZWN0ZWREYXRlLmNsb25lKCkuc2V0RGF5KDEpLAphLnJlbmRlcigpLGMmJmEucGljaygpKTtyZXR1cm4gYX07YS5nZXREYXRlPWZ1bmN0aW9uKCl7cmV0dXJuIGEuc2VsZWN0ZWREYXRlfTthLmluaXQoKX07ZS5mbi5uZWJDYWw9ZnVuY3Rpb24oaCxnKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7aWYodm9pZCAwPT09ZSh0aGlzKS5kYXRhKCJuZWJDYWwiKSl7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBofHwib2JqZWN0Ij09dHlwZW9mIGgpe3ZhciBsPW5ldyBlLm5lYkNhbCh0aGlzLGgpO2UodGhpcykuZGF0YSgibmViQ2FsIixsKX19ZWxzZSBzd2l0Y2goaCl7Y2FzZSAiY2hhbmdlVmlldyI6aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBnKWJyZWFrO2UodGhpcykuZGF0YSgibmViQ2FsIikuY2hhbmdlVmlldyhnKTticmVhaztjYXNlICJtaW5EYXRlIjppZigidW5kZWZpbmVkIj09dHlwZW9mIGcpYnJlYWs7ZSh0aGlzKS5kYXRhKCJuZWJDYWwiKS51cGRhdGVNaW5EYXRlKGcpO2JyZWFrO2Nhc2UgIm1heERhdGUiOmlmKCJ1bmRlZmluZWQiPT0KdHlwZW9mIGcpYnJlYWs7ZSh0aGlzKS5kYXRhKCJuZWJDYWwiKS51cGRhdGVNYXhEYXRlKGcpO2JyZWFrO2Nhc2UgInNldERhdGUiOmlmKCJ1bmRlZmluZWQiPT10eXBlb2YgZylicmVhaztlKHRoaXMpLmRhdGEoIm5lYkNhbCIpLnNldERhdGUoZyk7YnJlYWs7Y2FzZSAicmVwb3NpdGlvbiI6ZSh0aGlzKS5kYXRhKCJuZWJDYWwiKS5wb3NpdGlvbigpfX0pfTtlLmZuLmdldENvb3JkaW5hdGVzPWZ1bmN0aW9uKGgpe2g9ZSh0aGlzKS5vZmZzZXQoKTt2YXIgZz1lKHRoaXMpLndpZHRoKCksbD1lKHRoaXMpLmhlaWdodCgpLGE9ZSh3aW5kb3cpLndpZHRoKCktaC5sZWZ0LWcsYj1lKHdpbmRvdykuaGVpZ2h0KCktaC50b3AtbDtyZXR1cm57dG9wOmgudG9wLGxlZnQ6aC5sZWZ0LHdpZHRoOmcsaGVpZ2h0OmwscmlnaHQ6YSxib3R0b206Yn19fSkoalF1ZXJ5KTsKLyoqIC9qcy9jcmVkaXRTY29yZUVtYmVkZGVkLmpzICoqLwp2YXIgX19fZDJjX2NyZWRpdFNjb3JlRW1iZWRkZWRqc19jX29uPSIyMDI2LTAxLTEyIDEwOjEzOjUxIjsndXNlIHN0cmljdCc7ZnVuY3Rpb24gaW5pdENyZWRpdFNjb3JlRW1iZWRkZWRGb3JtKCl7JCgiLmNyZWRpdFNjb3JlUG9wdXBDb250YWluZXJFbWJlZGRlZCwgLmZpbmFuY2VGb3JtQ29udGFpbmVyRW1iZWRkZWQiKS5lYWNoKGZ1bmN0aW9uKCl7IiMjRklOQU5DRV9FTUFJTCMjIj09JCh0aGlzKS5maW5kKCJbZGF0YS1zZW5kVG9FTWFpbF0iKS52YWwoKSYmKCQodGhpcykuZmluZCgiW2RhdGEtc2VuZFRvRU1haWxdIikudmFsKCQoIiNkMmNfdmFycyIpLmZpbmQoJ2lucHV0W2RhdGEtZm9ydmFyPSJGSU5BTkNFX0VNQUlMIl0nKS52YWwoKSksJCh0aGlzKS5maW5kKCJbZGF0YS1zZW5kVG9FTWFpbEFkZl0iKS52YWwoJCgiI2QyY192YXJzIikuZmluZCgnaW5wdXRbZGF0YS1mb3J2YXI9IkZJTkFOQ0VfQURGX0VNQUlMIl0nKS52YWwoKSkpOyQodGhpcykuZmluZCgiLmNyZWRpdFNjb3JlUG9wdXBGb3JtIikubWFpbEV4cHJlc3NSZXF1ZXN0KHtlbWFpbElkOiQoIi5lbWFpbElkQ29udGFpbmVyIiwKJCh0aGlzKSkudmFsKCksZW1haWw6e3NlbmRUbzokKCJbZGF0YS1zZW5kVG9FTWFpbF0iLCQodGhpcykpLnZhbCgpLHNlbmRUb0FERjokKCJbZGF0YS1zZW5kVG9FTWFpbEFkZl0iLCQodGhpcykpLnZhbCgpfSxwaG9uZTp7c2VsZWN0b3I6Ii5jcmVkaXRTY29yZVBob25lIn0sb25CZWZvcmVTZW5kRW1haWw6ZnVuY3Rpb24oKXtlbWFpbEhhbmRsZXIuY29uZGl0aW9uPSJGaW5hbmNlIn0sb25BZnRlclNlbmRFbWFpbDpmdW5jdGlvbigpe3NldENvb2tpZSgiY3JlZGl0U2NvcmVFbWJlZGRlZEZpbGxlZCIsMSwzMCk7JCh0aGlzKS5jbG9zZXN0KCIuZmluYW5jZS1tZW51LWZyZWVjcmVkaXQiKS5sZW5ndGg\/KCQoIiNlbWFpbFN1Y2Nlc3NNZXNzYWdlIikucmV2ZWFsKHthbmltYXRpb246ImZhZGVBbmRQb3AiLGFuaW1hdGlvbnNwZWVkOjMwMCxjbG9zZW9uYmFja2dyb3VuZGNsaWNrOiExLGRpc21pc3Ntb2RhbGNsYXNzOiJjbG9zZS1yZXZlYWwtbW9kYWwifSksJCgiI2VtYWlsU3VjY2Vzc01lc3NhZ2UgLmNvbmZpcm1fc3VjY2Vzc0NvbnRpbnVlIikub24oImNsaWNrIiwKZnVuY3Rpb24oKXskKCIjZW1haWxTdWNjZXNzTWVzc2FnZSIpLnRyaWdnZXIoInJldmVhbDpjbG9zZSIpfSkpOigkKCIuY3JlZGl0U2NvcmVFbWJlZGRlZEZvcm1JbnB1dHMiKS5oaWRlKCksJCgiLmNyZWRpdFNjb3JlRW1iZWRkZWRGb3JtU3VjY2VzcyIpLnNob3coKSk7InVuZGVmaW5lZCIhPT10eXBlb2YgZ1VzZWRTcnBBcHB6JiZzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Z1VzZWRTcnBBcHB6LmZpbHRlckludGVyZmFjZS5jbGVhclByb3h5Q2FjaGVBbmRSZUZldGNoKCl9LDRFMyl9LG9uQWZ0ZXJJbml0OmZ1bmN0aW9uKCl7JCgiYm9keSIpLmhhc0NsYXNzKCJFTkdMSVNIIik7dmFyIGE9bmV3IERhdGU7YS5zZXRGdWxsWWVhcihhLmdldEZ1bGxZZWFyKCktMzApO3ZhciBiPW5ldyBEYXRlO2Iuc2V0RnVsbFllYXIoYi5nZXRGdWxsWWVhcigpLTE4KTt2YXIgYz1uZXcgRGF0ZTtjLnNldEZ1bGxZZWFyKGMuZ2V0RnVsbFllYXIoKS0xMjApOyQodGhpcykuZmluZCgiLmNyZWRpdFNjb3JlQmlydGhkYXRlIikubmViQ2FsKHttYXhEYXRlOmIuZm9ybWF0KCJ5eXl5LU1NLWRkIiksCm1pbkRhdGU6Yy5mb3JtYXQoInl5eXktTU0tZGQiKSxkZWZhdWx0RGF0ZTphLmZvcm1hdCgieXl5eS1NTS1kZCIpLGZvcm1hdDoiZGQgTU1NIHl5eXkiLGRlZmF1bHRWaWV3OiJkZWNhZGUifSk7JCh0aGlzKS5maW5kKCdpbnB1dFtkYXRhLWdvb2dsZS1wbGFjZXMtY3VzdG9tPSJ0cnVlIl0nKS5nb29nbGVQbGFjZXMoKTskKHRoaXMpLm9uKCJjbGljayIsIi5jcmVkaXRBcHBfYnRuIixmdW5jdGlvbigpeyQodGhpcykuY2xvc2VzdCgiLmNyZWRpdFNjb3JlUG9wdXBGb3JtIikubWFpbEV4cHJlc3NSZXF1ZXN0KCkuc3VibWl0KCl9KTskKHRoaXMpLm9uKCJjbGljayIsIi5jcmVkaXRTY29yZV9idG4iLGZ1bmN0aW9uKCl7JCh0aGlzKS5jbG9zZXN0KCIuY3JlZGl0U2NvcmVQb3B1cEZvcm0iKS5tYWlsRXhwcmVzc1JlcXVlc3QoKS5zdWJtaXQoKX0pfX0pfSl9CihmdW5jdGlvbigpeyJ1bmRlZmluZWQiIT09dHlwZW9mIHdpbmRvdy5BYnN0cmFjdFVzZWRTcnBPYmplY3QmJigkLmV4dGVuZCh0aGlzLG5ldyB3aW5kb3cuQWJzdHJhY3RVc2VkU3JwT2JqZWN0KHtuYW1lOiJDcmVkaXRTY29yZUVtYmVkZGVkIn0pKSx0aGlzLmluaXRDcmVkaXQ9ZnVuY3Rpb24oYSl7IWEuY21kfHwicmVxdWVzdCIhPWEuY21kJiYicmVhZHkiIT1hLmNtZHx8KCJmdW5jdGlvbiI9PT10eXBlb2YgJC5mbi5tYWlsRXhwcmVzc1JlcXVlc3Q\/c2V0VGltZW91dChpbml0Q3JlZGl0U2NvcmVFbWJlZGRlZEZvcm0oKSk6c2V0VGltZW91dCh0aGlzLmluaXRDcmVkaXQuYmluZCh0aGlzLGEpLDEwMCkpfSx0aGlzLmFkZFVzZWRTcnBFdmVudE9ic2VydmVyKCJwcm94eSIsdGhpcy5pbml0Q3JlZGl0LmJpbmQodGhpcykpLHRoaXMuYWRkVXNlZFNycEV2ZW50T2JzZXJ2ZXIoImZpbHRlciIsdGhpcy5pbml0Q3JlZGl0LmJpbmQodGhpcykpLHRoaXMuaW5pdFVzZWRTcnBPYnNlcnZlcigpKTsKJChmdW5jdGlvbigpe3NldFRpbWVvdXQoZnVuY3Rpb24oKXtpbml0Q3JlZGl0U2NvcmVFbWJlZGRlZEZvcm0oKX0pfSl9KSgpOwovKiogL2pzL2pxdWVyeS5kYXRldGltZXBpY2tlci5qcyAqKi8KdmFyIF9fX2QyY19qcXVlcnlkYXRldGltZXBpY2tlcmpzX2Nfb249IjIwMjUtMDUtMjMgMTc6MDk6MzkiOyd1c2Ugc3RyaWN0Jzt2YXIgX19fZDJjX2pxdWVyeWRhdGV0aW1lcGlja2VyanNfY19vbj0iMjAyNC0wMy0yNSAxMjozMzoxMSI7InVzZSBzdHJpY3QiOwooZnVuY3Rpb24oZil7ImZ1bmN0aW9uIj09PXR5cGVvZiBkZWZpbmUmJmRlZmluZS5hbWQ\/ZGVmaW5lKFsianF1ZXJ5IiwianF1ZXJ5LW1vdXNld2hlZWwiLCJkYXRlLWZ1bmN0aW9ucyJdLGYpOiJvYmplY3QiPT09dHlwZW9mIGV4cG9ydHM\/bW9kdWxlLmV4cG9ydHM9ZjpmKGpRdWVyeSl9KShmdW5jdGlvbihmKXtmdW5jdGlvbiBNKHIsdixhKXt0aGlzLmRhdGU9cjt0aGlzLmRlc2M9djt0aGlzLnN0eWxlPWF9dmFyIEo9e2kxOG46e2FyOnttb250aHM6Ij8\/Pz8\/ID8\/Pz8\/Pzs\/Pz8\/Oz8\/Pz87Pz8\/Pz87Pz8\/Pzs\/Pz8\/Pz87Pz8\/Pzs\/Pzs\/Pz8\/Pzs\/Pz8\/PyA\/Pz8\/Pzs\/Pz8\/PyA\/Pz8\/Pz87Pz8\/Pz8gPz8\/Pz8iLnNwbGl0KCI7IiksZGF5T2ZXZWVrU2hvcnQ6Ij8\/Pz8\/Pz8iLnNwbGl0KCIiKSxkYXlPZldlZWs6Ij8\/Pz8\/ID8\/Pz8\/Pz8gPz8\/Pz8\/Pz8gPz8\/Pz8\/Pz8gPz8\/Pz8\/ID8\/Pz8\/PyA\/Pz8\/PyA\/Pz8\/PyIuc3BsaXQoIiAiKX0scm86e21vbnRoczoiSWFudWFyaWUgRmVicnVhcmllIE1hcnRpZSBBcHJpbGllIE1haSBJdW5pZSBJdWxpZSBBdWd1c3QgU2VwdGVtYnJpZSBPY3RvbWJyaWUgTm9pZW1icmllIERlY2VtYnJpZSIuc3BsaXQoIiAiKSwKZGF5T2ZXZWVrU2hvcnQ6IkR1IEx1IE1hIE1pIEpvIFZpIFPiIi5zcGxpdCgiICIpLGRheU9mV2VlazoiRHVtaW5pYz8gTHVuaSBNYXI\/aSBNaWVyY3VyaSBKb2kgVmluZXJpIFPibWI\/dD8iLnNwbGl0KCIgIil9LGlkOnttb250aHM6IkphbnVhcmkgRmVicnVhcmkgTWFyZXQgQXByaWwgTWVpIEp1bmkgSnVsaSBBZ3VzdHVzIFNlcHRlbWJlciBPa3RvYmVyIE5vdmVtYmVyIERlc2VtYmVyIi5zcGxpdCgiICIpLGRheU9mV2Vla1Nob3J0OiJNaW4gU2VuIFNlbCBSYWIgS2FtIEp1bSBTYWIiLnNwbGl0KCIgIiksZGF5T2ZXZWVrOiJNaW5nZ3UgU2VuaW4gU2VsYXNhIFJhYnUgS2FtaXMgSnVtYXQgU2FidHUiLnNwbGl0KCIgIil9LGlzOnttb250aHM6IkphbvphciBGZWJy+mFyIE1hcnMgQXBy7WwgTWHtIEr6bu0gSvps7SDBZ\/pzdCBTZXB0ZW1iZXIgT2t082JlciBO83ZlbWJlciBEZXNlbWJlciIuc3BsaXQoIiAiKSxkYXlPZldlZWtTaG9ydDoiU3VuIE3hbiDecmnwIE1p8CBGaW0gRvZzIExhdSIuc3BsaXQoIiAiKSwKZGF5T2ZXZWVrOiJTdW5udWRhZ3VyIE3hbnVkYWd1ciDecmnwanVkYWd1ciBNafB2aWt1ZGFndXIgRmltbXR1ZGFndXIgRvZzdHVkYWd1ciBMYXVnYXJkYWd1ciIuc3BsaXQoIiAiKX0sYmc6e21vbnRoczoiPz8\/Pz8\/ID8\/Pz8\/Pz8\/ID8\/Pz8gPz8\/Pz8gPz8\/ID8\/PyA\/Pz8gPz8\/Pz8\/ID8\/Pz8\/Pz8\/PyA\/Pz8\/Pz8\/PyA\/Pz8\/Pz8\/ID8\/Pz8\/Pz8\/Ii5zcGxpdCgiICIpLGRheU9mV2Vla1Nob3J0OiI\/PyA\/PyA\/PyA\/PyA\/PyA\/PyA\/PyIuc3BsaXQoIiAiKSxkYXlPZldlZWs6Ij8\/Pz8\/PyA\/Pz8\/Pz8\/Pz8\/ID8\/Pz8\/Pz8gPz8\/Pz8gPz8\/Pz8\/Pz8\/ID8\/Pz8\/ID8\/Pz8\/PyIuc3BsaXQoIiAiKX0sZmE6e21vbnRoczoiPz8\/Pz8\/PyA\/Pz8\/Pz8\/PyA\/Pz8\/PyA\/Pz8gPz8\/Pz8gPz8\/Pz8\/ID8\/PyA\/Pz8\/ID8\/PyA\/PyA\/Pz8\/ID8\/Pz8\/Ii5zcGxpdCgiICIpLGRheU9mV2Vla1Nob3J0OiI\/Pz8\/Pz87Pz8\/Pz8\/Oz8\/ID8\/Pz87Pz8\/Pz8\/Pz87Pz8\/Pz8\/Pzs\/Pz8\/Oz8\/Pz8iLnNwbGl0KCI7IiksCmRheU9mV2VlazoiPz8\/Pz8\/PyA\/Pz8\/Pz8gPz8\/Pz8\/PyA\/Pz8\/Pz8\/PyA\/Pz8\/Pz8\/PyA\/Pz8\/ID8\/Pz8gPz8\/Pz8\/PyIuc3BsaXQoIiAiKX0scnU6e21vbnRoczoiPz8\/Pz8\/ID8\/Pz8\/Pz8gPz8\/PyA\/Pz8\/Pz8gPz8\/ID8\/Pz8gPz8\/PyA\/Pz8\/Pz8gPz8\/Pz8\/Pz8gPz8\/Pz8\/PyA\/Pz8\/Pz8gPz8\/Pz8\/PyIuc3BsaXQoIiAiKSxkYXlPZldlZWtTaG9ydDoiPz8gPz8gPz8gPz8gPz8gPz8gPz8iLnNwbGl0KCIgIiksZGF5T2ZXZWVrOiI\/Pz8\/Pz8\/Pz8\/PyA\/Pz8\/Pz8\/Pz8\/PyA\/Pz8\/Pz8\/ID8\/Pz8\/ID8\/Pz8\/Pz8gPz8\/Pz8\/PyA\/Pz8\/Pz8\/Ii5zcGxpdCgiICIpfSx1azp7bW9udGhzOiI\/Pz8\/Pz8gPz8\/Pz8gPz8\/Pz8\/Pz8gPz8\/Pz8\/PyA\/Pz8\/Pz8\/ID8\/Pz8\/Pz8gPz8\/Pz8\/ID8\/Pz8\/Pz8gPz8\/Pz8\/Pz8gPz8\/Pz8\/PyA\/Pz8\/Pz8\/PyA\/Pz8\/Pz8\/Ii5zcGxpdCgiICIpLGRheU9mV2Vla1Nob3J0OiI\/Pz8gPz8\/ID8\/PyA\/Pz8gPz8\/ID8\/PyA\/Pz8iLnNwbGl0KCIgIiksZGF5T2ZXZWVrOiI\/Pz8\/Pz8gPz8\/Pz8\/Pz8\/ID8\/Pz8\/Pz8\/ID8\/Pz8\/PyA\/Pz8\/Pz8gPyc\/Pz8\/Pz8gPz8\/Pz8\/Ii5zcGxpdCgiICIpfSwKZW46e21vbnRoczoiSmFudWFyeSBGZWJydWFyeSBNYXJjaCBBcHJpbCBNYXkgSnVuZSBKdWx5IEF1Z3VzdCBTZXB0ZW1iZXIgT2N0b2JlciBOb3ZlbWJlciBEZWNlbWJlciIuc3BsaXQoIiAiKSxkYXlPZldlZWtTaG9ydDoiU3VuIE1vbiBUdWUgV2VkIFRodSBGcmkgU2F0Ii5zcGxpdCgiICIpLGRheU9mV2VlazoiU3VuZGF5IE1vbmRheSBUdWVzZGF5IFdlZG5lc2RheSBUaHVyc2RheSBGcmlkYXkgU2F0dXJkYXkiLnNwbGl0KCIgIil9LGVsOnttb250aHM6Ij8\/Pz8\/Pz8\/Pz8gPz8\/Pz8\/Pz8\/Pz8gPz8\/Pz8\/PyA\/Pz8\/Pz8\/PyA\/Pz8\/PyA\/Pz8\/Pz8\/ID8\/Pz8\/Pz8gPz8\/Pz8\/Pz8\/ID8\/Pz8\/Pz8\/Pz8\/ID8\/Pz8\/Pz8\/PyA\/Pz8\/Pz8\/Pz8gPz8\/Pz8\/Pz8\/PyIuc3BsaXQoIiAiKSxkYXlPZldlZWtTaG9ydDoiPz8\/ID8\/PyA\/Pz8gPz8\/ID8\/PyA\/Pz8gPz8\/Ii5zcGxpdCgiICIpLGRheU9mV2VlazoiPz8\/Pz8\/PyA\/Pz8\/Pz8\/ID8\/Pz8\/ID8\/Pz8\/Pz8gPz8\/Pz8\/ID8\/Pz8\/Pz8\/PyA\/Pz8\/Pz8\/Ii5zcGxpdCgiICIpfSwKZGU6e21vbnRoczoiSmFudWFyIEZlYnJ1YXIgTeRyeiBBcHJpbCBNYWkgSnVuaSBKdWxpIEF1Z3VzdCBTZXB0ZW1iZXIgT2t0b2JlciBOb3ZlbWJlciBEZXplbWJlciIuc3BsaXQoIiAiKSxkYXlPZldlZWtTaG9ydDoiU28gTW8gRGkgTWkgRG8gRnIgU2EiLnNwbGl0KCIgIiksZGF5T2ZXZWVrOiJTb25udGFnIE1vbnRhZyBEaWVuc3RhZyBNaXR0d29jaCBEb25uZXJzdGFnIEZyZWl0YWcgU2Ftc3RhZyIuc3BsaXQoIiAiKX0sbmw6e21vbnRoczoiamFudWFyaSBmZWJydWFyaSBtYWFydCBhcHJpbCBtZWkganVuaSBqdWxpIGF1Z3VzdHVzIHNlcHRlbWJlciBva3RvYmVyIG5vdmVtYmVyIGRlY2VtYmVyIi5zcGxpdCgiICIpLGRheU9mV2Vla1Nob3J0OiJ6byBtYSBkaSB3byBkbyB2ciB6YSIuc3BsaXQoIiAiKSxkYXlPZldlZWs6InpvbmRhZyBtYWFuZGFnIGRpbnNkYWcgd29lbnNkYWcgZG9uZGVyZGFnIHZyaWpkYWcgemF0ZXJkYWciLnNwbGl0KCIgIil9LHRyOnttb250aHM6Ik9jYWsgP3ViYXQgTWFydCBOaXNhbiBNYXk\/cyBIYXppcmFuIFRlbW11eiBBP3VzdG9zIEV5bPxsIEVraW0gS2FzP20gQXJhbD9rIi5zcGxpdCgiICIpLApkYXlPZldlZWtTaG9ydDoiUGF6IFB0cyBTYWwgx2FyIFBlciBDdW0gQ3RzIi5zcGxpdCgiICIpLGRheU9mV2VlazoiUGF6YXIgUGF6YXJ0ZXNpIFNhbD8gx2FyP2FtYmEgUGVyP2VtYmUgQ3VtYSBDdW1hcnRlc2kiLnNwbGl0KCIgIil9LGZyOnttb250aHM6IkphbnZpZXIgRul2cmllciBNYXJzIEF2cmlsIE1haSBKdWluIEp1aWxsZXQgQW\/7dCBTZXB0ZW1icmUgT2N0b2JyZSBOb3ZlbWJyZSBE6WNlbWJyZSIuc3BsaXQoIiAiKSxkYXlPZldlZWtTaG9ydDoiRGltIEx1biBNYXIgTWVyIEpldSBWZW4gU2FtIi5zcGxpdCgiICIpLGRheU9mV2VlazoiZGltYW5jaGUgbHVuZGkgbWFyZGkgbWVyY3JlZGkgamV1ZGkgdmVuZHJlZGkgc2FtZWRpIi5zcGxpdCgiICIpfSxlczp7bW9udGhzOiJFbmVybyBGZWJyZXJvIE1hcnpvIEFicmlsIE1heW8gSnVuaW8gSnVsaW8gQWdvc3RvIFNlcHRpZW1icmUgT2N0dWJyZSBOb3ZpZW1icmUgRGljaWVtYnJlIi5zcGxpdCgiICIpLGRheU9mV2Vla1Nob3J0OiJEb20gTHVuIE1hciBNaekgSnVlIFZpZSBT4WIiLnNwbGl0KCIgIiksCmRheU9mV2VlazoiRG9taW5nbyBMdW5lcyBNYXJ0ZXMgTWnpcmNvbGVzIEp1ZXZlcyBWaWVybmVzIFPhYmFkbyIuc3BsaXQoIiAiKX0sdGg6e21vbnRoczoiPz8\/Pz8\/ID8\/Pz8\/Pz8\/Pz8gPz8\/Pz8\/ID8\/Pz8\/PyA\/Pz8\/Pz8\/ID8\/Pz8\/Pz8\/ID8\/Pz8\/Pz8gPz8\/Pz8\/PyA\/Pz8\/Pz8\/ID8\/Pz8\/PyA\/Pz8\/Pz8\/Pz8gPz8\/Pz8\/PyIuc3BsaXQoIiAiKSxkYXlPZldlZWtTaG9ydDoiPz8uID8uID8uID8uID8\/LiA\/LiA\/LiIuc3BsaXQoIiAiKSxkYXlPZldlZWs6Ij8\/Pz8\/Pz8gPz8\/Pz8\/ID8\/Pz8\/PyA\/Pz8gPz8\/Pz8gPz8\/Pz8gPz8\/Pz8gPz8\/Pz8\/PyIuc3BsaXQoIiAiKX0scGw6e21vbnRoczoic3R5Y3plPyBsdXR5IG1hcnplYyBrd2llY2llPyBtYWogY3plcndpZWMgbGlwaWVjIHNpZXJwaWU\/IHdyemVzaWU\/IHBhP2R6aWVybmlrIGxpc3RvcGFkIGdydWR6aWU\/Ii5zcGxpdCgiICIpLGRheU9mV2Vla1Nob3J0OiJuZCBwbiB3dCA\/ciBjeiBwdCBzYiIuc3BsaXQoIiAiKSxkYXlPZldlZWs6Im5pZWR6aWVsYSBwb25pZWR6aWE\/ZWsgd3RvcmVrID9yb2RhIGN6d2FydGVrIHBpP3RlayBzb2JvdGEiLnNwbGl0KCIgIil9LApwdDp7bW9udGhzOiJKYW5laXJvIEZldmVyZWlybyBNYXLnbyBBYnJpbCBNYWlvIEp1bmhvIEp1bGhvIEFnb3N0byBTZXRlbWJybyBPdXR1YnJvIE5vdmVtYnJvIERlemVtYnJvIi5zcGxpdCgiICIpLGRheU9mV2Vla1Nob3J0OiJEb20gU2VnIFRlciBRdWEgUXVpIFNleCBTYWIiLnNwbGl0KCIgIiksZGF5T2ZXZWVrOiJEb21pbmdvIFNlZ3VuZGEgVGVy52EgUXVhcnRhIFF1aW50YSBTZXh0YSBT4WJhZG8iLnNwbGl0KCIgIil9LGNoOnttb250aHM6Ij8\/ID8\/ID8\/ID8\/ID8\/ID8\/ID8\/ID8\/ID8\/ID8\/ID8\/PyA\/Pz8iLnNwbGl0KCIgIiksZGF5T2ZXZWVrU2hvcnQ6Ij8\/Pz8\/Pz8iLnNwbGl0KCIiKX0sc2U6e21vbnRoczoiSmFudWFyaSBGZWJydWFyaSBNYXJzIEFwcmlsIE1haiBKdW5pIEp1bGkgQXVndXN0aSBTZXB0ZW1iZXIgT2t0b2JlciBOb3ZlbWJlciBEZWNlbWJlciIuc3BsaXQoIiAiKSxkYXlPZldlZWtTaG9ydDoiU\/ZuIE3lbiBUaXMgT25zIFRvciBGcmUgTPZyIi5zcGxpdCgiICIpfSwKa3I6e21vbnRoczoiMT8gMj8gMz8gND8gNT8gNj8gNz8gOD8gOT8gMTA\/IDExPyAxMj8iLnNwbGl0KCIgIiksZGF5T2ZXZWVrU2hvcnQ6Ij8\/Pz8\/Pz8iLnNwbGl0KCIiKSxkYXlPZldlZWs6Ij8\/PyA\/Pz8gPz8\/ID8\/PyA\/Pz8gPz8\/ID8\/PyIuc3BsaXQoIiAiKX0saXQ6e21vbnRoczoiR2VubmFpbyBGZWJicmFpbyBNYXJ6byBBcHJpbGUgTWFnZ2lvIEdpdWdubyBMdWdsaW8gQWdvc3RvIFNldHRlbWJyZSBPdHRvYnJlIE5vdmVtYnJlIERpY2VtYnJlIi5zcGxpdCgiICIpLGRheU9mV2Vla1Nob3J0OiJEb20gTHVuIE1hciBNZXIgR2lvIFZlbiBTYWIiLnNwbGl0KCIgIiksZGF5T2ZXZWVrOiJEb21lbmljYSBMdW5lZOwgTWFydGVk7CBNZXJjb2xlZOwgR2lvdmVk7CBWZW5lcmTsIFNhYmF0byIuc3BsaXQoIiAiKX0sZGE6e21vbnRoczoiSmFudWFyeSBGZWJydWFyIE1hcnRzIEFwcmlsIE1haiBKdW5pIEp1bHkgQXVndXN0IFNlcHRlbWJlciBPa3RvYmVyIE5vdmVtYmVyIERlY2VtYmVyIi5zcGxpdCgiICIpLApkYXlPZldlZWtTaG9ydDoiU\/huIE1hbiBUaXIgT25zIFRvciBGcmUgTPhyIi5zcGxpdCgiICIpLGRheU9mV2Vlazoic\/huZGFnIG1hbmRhZyB0aXJzZGFnIG9uc2RhZyB0b3JzZGFnIGZyZWRhZyBs+HJkYWciLnNwbGl0KCIgIil9LG5vOnttb250aHM6IkphbnVhciBGZWJydWFyIE1hcnMgQXByaWwgTWFpIEp1bmkgSnVsaSBBdWd1c3QgU2VwdGVtYmVyIE9rdG9iZXIgTm92ZW1iZXIgRGVzZW1iZXIiLnNwbGl0KCIgIiksZGF5T2ZXZWVrU2hvcnQ6IlP4biBNYW4gVGlyIE9ucyBUb3IgRnJlIEz4ciIuc3BsaXQoIiAiKSxkYXlPZldlZWs6IlP4bmRhZyBNYW5kYWcgVGlyc2RhZyBPbnNkYWcgVG9yc2RhZyBGcmVkYWcgTPhyZGFnIi5zcGxpdCgiICIpfSxqYTp7bW9udGhzOiIxPyAyPyAzPyA0PyA1PyA2PyA3PyA4PyA5PyAxMD8gMTE\/IDEyPyIuc3BsaXQoIiAiKSxkYXlPZldlZWtTaG9ydDoiPz8\/Pz8\/PyIuc3BsaXQoIiIpLGRheU9mV2VlazoiPz8gPz8gPz8gPz8gPz8gPz8gPz8iLnNwbGl0KCIgIil9LAp2aTp7bW9udGhzOiJUaOFuZyAxO1Ro4W5nIDI7VGjhbmcgMztUaOFuZyA0O1Ro4W5nIDU7VGjhbmcgNjtUaOFuZyA3O1Ro4W5nIDg7VGjhbmcgOTtUaOFuZyAxMDtUaOFuZyAxMTtUaOFuZyAxMiIuc3BsaXQoIjsiKSxkYXlPZldlZWtTaG9ydDoiQ04gVDIgVDMgVDQgVDUgVDYgVDciLnNwbGl0KCIgIiksZGF5T2ZXZWVrOiJDaD8gbmg\/dDtUaD8gaGFpO1RoPyBiYTtUaD8gdD87VGg\/IG4\/bTtUaD8gc+F1O1RoPyBiP3kiLnNwbGl0KCI7Iil9LHNsOnttb250aHM6IkphbnVhciBGZWJydWFyIE1hcmVjIEFwcmlsIE1haiBKdW5paiBKdWxpaiBBdmd1c3QgU2VwdGVtYmVyIE9rdG9iZXIgTm92ZW1iZXIgRGVjZW1iZXIiLnNwbGl0KCIgIiksZGF5T2ZXZWVrU2hvcnQ6Ik5lZCBQb24gVG9yIFNyZSA\/ZXQgUGV0IFNvYiIuc3BsaXQoIiAiKSxkYXlPZldlZWs6Ik5lZGVsamEgUG9uZWRlbGplayBUb3JlayBTcmVkYSA\/ZXRydGVrIFBldGVrIFNvYm90YSIuc3BsaXQoIiAiKX0sY3M6e21vbnRoczoiTGVkZW4g2m5vciBCP2V6ZW4gRHViZW4gS3Y\/dGVuID9lcnZlbiA\/ZXJ2ZW5lYyBTcnBlbiBa4T\/tID\/tamVuIExpc3RvcGFkIFByb3NpbmVjIi5zcGxpdCgiICIpLApkYXlPZldlZWtTaG9ydDoiTmUgUG8g2nQgU3QgP3QgUOEgU28iLnNwbGl0KCIgIil9LGh1Onttb250aHM6IkphbnXhciBGZWJydeFyIE3hcmNpdXMgwXByaWxpcyBN4Wp1cyBK+m5pdXMgSvpsaXVzIEF1Z3VzenR1cyBTemVwdGVtYmVyIE9rdPNiZXIgTm92ZW1iZXIgRGVjZW1iZXIiLnNwbGl0KCIgIiksZGF5T2ZXZWVrU2hvcnQ6IlZhIEjpIEtlIFN6ZSBDcyBQ6SBTem8iLnNwbGl0KCIgIiksZGF5T2ZXZWVrOiJ2YXPhcm5hcCBo6XRmPyBrZWRkIHN6ZXJkYSBjc\/x09nJ09msgcOludGVrIHN6b21iYXQiLnNwbGl0KCIgIil9LGF6Onttb250aHM6IllhbnZhciBGZXZyYWwgTWFydCBBcHJlbCBNYXkgSXl1biBJeXVsIEF2cXVzdCBTZW50eWFiciBPa3R5YWJyIE5veWFiciBEZWthYnIiLnNwbGl0KCIgIiksZGF5T2ZXZWVrU2hvcnQ6IkIgQmUgx2EgxyBDYSBDID8iLnNwbGl0KCIgIiksZGF5T2ZXZWVrOiJCYXphcjtCYXphciBlcnQ\/c2k7xz9yPz9uYj8gYXg\/YW0\/O8c\/cj8\/bmI\/O0P8bT8gYXg\/YW0\/O0P8bT87Pz9uYj8iLnNwbGl0KCI7Iil9LApiczp7bW9udGhzOiJKYW51YXIgRmVicnVhciBNYXJ0IEFwcmlsIE1haiBKdW4gSnVsIEF2Z3VzdCBTZXB0ZW1iYXIgT2t0b2JhciBOb3ZlbWJhciBEZWNlbWJhciIuc3BsaXQoIiAiKSxkYXlPZldlZWtTaG9ydDoiTmVkIFBvbiBVdG8gU3JpID9ldCBQZXQgU3ViIi5zcGxpdCgiICIpLGRheU9mV2VlazoiTmVkamVsamEgUG9uZWRqZWxqYWsgVXRvcmFrIFNyaWplZGEgP2V0dnJ0YWsgUGV0YWsgU3Vib3RhIi5zcGxpdCgiICIpfSxjYTp7bW9udGhzOiJHZW5lciBGZWJyZXIgTWFy5yBBYnJpbCBNYWlnIEp1bnkgSnVsaW9sIEFnb3N0IFNldGVtYnJlIE9jdHVicmUgTm92ZW1icmUgRGVzZW1icmUiLnNwbGl0KCIgIiksZGF5T2ZXZWVrU2hvcnQ6IkRnIERsIER0IERjIERqIER2IERzIi5zcGxpdCgiICIpLGRheU9mV2VlazoiRGl1bWVuZ2UgRGlsbHVucyBEaW1hcnRzIERpbWVjcmVzIERpam91cyBEaXZlbmRyZXMgRGlzc2FidGUiLnNwbGl0KCIgIil9LCJlbi1HQiI6e21vbnRoczoiSmFudWFyeSBGZWJydWFyeSBNYXJjaCBBcHJpbCBNYXkgSnVuZSBKdWx5IEF1Z3VzdCBTZXB0ZW1iZXIgT2N0b2JlciBOb3ZlbWJlciBEZWNlbWJlciIuc3BsaXQoIiAiKSwKZGF5T2ZXZWVrU2hvcnQ6IlN1biBNb24gVHVlIFdlZCBUaHUgRnJpIFNhdCIuc3BsaXQoIiAiKSxkYXlPZldlZWs6IlN1bmRheSBNb25kYXkgVHVlc2RheSBXZWRuZXNkYXkgVGh1cnNkYXkgRnJpZGF5IFNhdHVyZGF5Ii5zcGxpdCgiICIpfSxldDp7bW9udGhzOiJKYWFudWFyIFZlZWJydWFyIE3kcnRzIEFwcmlsbCBNYWkgSnV1bmkgSnV1bGkgQXVndXN0IFNlcHRlbWJlciBPa3Rvb2JlciBOb3ZlbWJlciBEZXRzZW1iZXIiLnNwbGl0KCIgIiksZGF5T2ZXZWVrU2hvcnQ6IlBFVEtOUkwiLnNwbGl0KCIiKSxkYXlPZldlZWs6IlD8aGFw5GV2IEVzbWFzcORldiBUZWlzaXDkZXYgS29sbWFw5GV2IE5lbGphcORldiBSZWVkZSBMYXVw5GV2Ii5zcGxpdCgiICIpfSxldTp7bW9udGhzOiJVcnRhcnJpbGEgT3RzYWlsYSBNYXJ0eG9hIEFwaXJpbGEgTWFpYXR6YSBFa2FpbmEgVXp0YWlsYSBBYnV6dHVhIElyYWlsYSBVcnJpYSBBemFyb2EgQWJlbmR1YSIuc3BsaXQoIiAiKSxkYXlPZldlZWtTaG9ydDoiSWcuIEFsLiBBci4gQXouIE9nLiBPci4gTGEuIi5zcGxpdCgiICIpLApkYXlPZldlZWs6IklnYW5kZWEgQXN0ZWxlaGVuYSBBc3RlYXJ0ZWEgQXN0ZWF6a2VuYSBPc3RlZ3VuYSBPc3RpcmFsYSBMYXJ1bmJhdGEiLnNwbGl0KCIgIil9LGZpOnttb250aHM6IlRhbW1pa3V1IEhlbG1pa3V1IE1hYWxpc2t1dSBIdWh0aWt1dSBUb3Vrb2t1dSBLZXPka3V1IEhlaW7ka3V1IEVsb2t1dSBTeXlza3V1IExva2FrdXUgTWFycmFza3V1IEpvdWx1a3V1Ii5zcGxpdCgiICIpLGRheU9mV2Vla1Nob3J0OiJTdSBNYSBUaSBLZSBUbyBQZSBMYSIuc3BsaXQoIiAiKSxkYXlPZldlZWs6InN1bm51bnRhaSBtYWFuYW50YWkgdGlpc3RhaSBrZXNraXZpaWtrbyB0b3JzdGFpIHBlcmphbnRhaSBsYXVhbnRhaSIuc3BsaXQoIiAiKX0sZ2w6e21vbnRoczoiWGFuIEZlYiBNYXogQWJyIE1haSBYdW4gWHVsIEFnbyBTZXQgT3V0IE5vdiBEZWMiLnNwbGl0KCIgIiksZGF5T2ZXZWVrU2hvcnQ6IkRvbSBMdW4gTWFyIE1lciBYb3YgVmVuIFNhYiIuc3BsaXQoIiAiKSxkYXlPZldlZWs6IkRvbWluZ28gTHVucyBNYXJ0ZXMgTelyY29yZXMgWG92ZXMgVmVucmVzIFPhYmFkbyIuc3BsaXQoIiAiKX0sCmhyOnttb250aHM6IlNpamU\/YW5qIFZlbGphP2EgTz91amFrIFRyYXZhbmogU3ZpYmFuaiBMaXBhbmogU3JwYW5qIEtvbG92b3ogUnVqYW4gTGlzdG9wYWQgU3R1ZGVuaSBQcm9zaW5hYyIuc3BsaXQoIiAiKSxkYXlPZldlZWtTaG9ydDoiTmVkIFBvbiBVdG8gU3JpID9ldCBQZXQgU3ViIi5zcGxpdCgiICIpLGRheU9mV2VlazoiTmVkamVsamEgUG9uZWRqZWxqYWsgVXRvcmFrIFNyaWplZGEgP2V0dnJ0YWsgUGV0YWsgU3Vib3RhIi5zcGxpdCgiICIpfSxrbzp7bW9udGhzOiIxPyAyPyAzPyA0PyA1PyA2PyA3PyA4PyA5PyAxMD8gMTE\/IDEyPyIuc3BsaXQoIiAiKSxkYXlPZldlZWtTaG9ydDoiPz8\/Pz8\/PyIuc3BsaXQoIiIpLGRheU9mV2VlazoiPz8\/ID8\/PyA\/Pz8gPz8\/ID8\/PyA\/Pz8gPz8\/Ii5zcGxpdCgiICIpfSxsdDp7bW9udGhzOiJTYXVzaW8gVmFzYXJpbyBLb3ZvIEJhbGFuZD9pbyBHZWd1Pz9zIEJpcj9lbGlvIExpZXBvcyBSdWdwaj8\/aW8gUnVncz9qbyBTcGFsaW8gTGFwa3JpP2lvIEdydW9kP2lvIi5zcGxpdCgiICIpLApkYXlPZldlZWtTaG9ydDoiU2VrIFBpciBBbnQgVHJlIEtldCBQZW4gP2U\/Ii5zcGxpdCgiICIpLGRheU9mV2VlazoiU2VrbWFkaWVuaXMgUGlybWFkaWVuaXMgQW50cmFkaWVuaXMgVHJlP2lhZGllbmlzIEtldHZpcnRhZGllbmlzIFBlbmt0YWRpZW5pcyA\/ZT90YWRpZW5pcyIuc3BsaXQoIiAiKX0sbHY6e21vbnRoczoiSmFudj9yaXM7RmVicnU\/cmlzO01hcnRzO0Fwcj9saXMgO01haWpzO0o\/bmlqcztKP2xpanM7QXVndXN0cztTZXB0ZW1icmlzO09rdG9icmlzO05vdmVtYnJpcztEZWNlbWJyaXMiLnNwbGl0KCI7IiksZGF5T2ZXZWVrU2hvcnQ6IlN2IFByIE90IFRyIEN0IFBrIFN0Ii5zcGxpdCgiICIpLGRheU9mV2VlazoiU3Y\/dGRpZW5hIFBpcm1kaWVuYSBPdHJkaWVuYSBUcmU\/ZGllbmEgQ2V0dXJ0ZGllbmEgUGlla3RkaWVuYSBTZXN0ZGllbmEiLnNwbGl0KCIgIil9LG1rOnttb250aHM6Ij8\/Pz8\/Pz8gPz8\/Pz8\/Pz8gPz8\/PyA\/Pz8\/PyA\/Pz8gPz8\/PyA\/Pz8\/ID8\/Pz8\/PyA\/Pz8\/Pz8\/Pz8gPz8\/Pz8\/Pz8gPz8\/Pz8\/PyA\/Pz8\/Pz8\/PyIuc3BsaXQoIiAiKSwKZGF5T2ZXZWVrU2hvcnQ6Ij8\/PyA\/Pz8gPz8\/ID8\/PyA\/Pz8gPz8\/ID8\/PyIuc3BsaXQoIiAiKSxkYXlPZldlZWs6Ij8\/Pz8\/PyA\/Pz8\/Pz8\/Pz8\/ID8\/Pz8\/Pz8gPz8\/Pz8gPz8\/Pz8\/Pz8gPz8\/Pz8gPz8\/Pz8\/Ii5zcGxpdCgiICIpfSxtbjp7bW9udGhzOiIxLT8gPz8\/OzItPyA\/Pz87My0\/ID8\/Pzs0LT8gPz8\/OzUtPyA\/Pz87Ni0\/ID8\/Pzs3LT8gPz8\/OzgtPyA\/Pz87OS0\/ID8\/PzsxMC0\/ID8\/PzsxMS0\/ID8\/PzsxMi0\/ID8\/PyIuc3BsaXQoIjsiKSxkYXlPZldlZWtTaG9ydDoiPz8\/ID8\/PyA\/Pz8gPz8\/ID8\/PyA\/Pz8gPz8\/Ii5zcGxpdCgiICIpLGRheU9mV2VlazoiPz8\/Pz8gPz8\/Pz8\/ID8\/Pz8\/PyA\/Pz8\/PyA\/Pz8\/Pz8gPz8\/Pz8gPz8\/Ii5zcGxpdCgiICIpfSwicHQtQlIiOnttb250aHM6IkphbmVpcm8gRmV2ZXJlaXJvIE1hcudvIEFicmlsIE1haW8gSnVuaG8gSnVsaG8gQWdvc3RvIFNldGVtYnJvIE91dHVicm8gTm92ZW1icm8gRGV6ZW1icm8iLnNwbGl0KCIgIiksZGF5T2ZXZWVrU2hvcnQ6IkRvbSBTZWcgVGVyIFF1YSBRdWkgU2V4IFPhYiIuc3BsaXQoIiAiKSwKZGF5T2ZXZWVrOiJEb21pbmdvIFNlZ3VuZGEgVGVy52EgUXVhcnRhIFF1aW50YSBTZXh0YSBT4WJhZG8iLnNwbGl0KCIgIil9LHNrOnttb250aHM6IkphbnXhciBGZWJydeFyIE1hcmVjIEFwcu1sIE3haiBK+m4gSvpsIEF1Z3VzdCBTZXB0ZW1iZXIgT2t082JlciBOb3ZlbWJlciBEZWNlbWJlciIuc3BsaXQoIiAiKSxkYXlPZldlZWtTaG9ydDoiTmUgUG8gVXQgU3QgP3QgUGkgU28iLnNwbGl0KCIgIiksZGF5T2ZXZWVrOiJOZWRlP2EgUG9uZGVsb2sgVXRvcm9rIFN0cmVkYSA\/dHZydG9rIFBpYXRvayBTb2JvdGEiLnNwbGl0KCIgIil9LHNxOnttb250aHM6IkphbmFyIFNoa3VydCBNYXJzIFByaWxsIE1haiBRZXJzaG9yIEtvcnJpayBHdXNodCBTaHRhdG9yIFRldG9yIE7rbnRvciBEaGpldG9yIi5zcGxpdCgiICIpLGRheU9mV2Vla1Nob3J0OiJEaWUgSOtuIE1hciBN63IgRW5qIFByZSBTaHR1Ii5zcGxpdCgiICIpLGRheU9mV2VlazoiRSBEaWVsO0UgSOtu6ztFIE1hcnQ\/O0UgTetya3Vy6ztFIEVuanRlO0UgUHJlbXRlO0UgU2h0dW7rIi5zcGxpdCgiOyIpfSwKInNyLVlVIjp7bW9udGhzOiJKYW51YXIgRmVicnVhciBNYXJ0IEFwcmlsIE1haiBKdW4gSnVsIEF2Z3VzdCBTZXB0ZW1iYXIgT2t0b2JhciBOb3ZlbWJhciBEZWNlbWJhciIuc3BsaXQoIiAiKSxkYXlPZldlZWtTaG9ydDoiTmVkIFBvbiBVdG8gU3JlID9ldCBQZXQgU3ViIi5zcGxpdCgiICIpLGRheU9mV2VlazoiTmVkZWxqYSBQb25lZGVsamFrIFV0b3JhayBTcmVkYSA\/ZXR2cnRhayBQZXRhayBTdWJvdGEiLnNwbGl0KCIgIil9LHNyOnttb250aHM6Ij8\/Pz8\/PyA\/Pz8\/Pz8\/ID8\/Pz8gPz8\/Pz8gPz8\/ID8\/PyA\/Pz8gPz8\/Pz8\/ID8\/Pz8\/Pz8\/PyA\/Pz8\/Pz8\/ID8\/Pz8\/Pz8\/ID8\/Pz8\/Pz8\/Ii5zcGxpdCgiICIpLGRheU9mV2Vla1Nob3J0OiI\/Pz8gPz8\/ID8\/PyA\/Pz8gPz8\/ID8\/PyA\/Pz8iLnNwbGl0KCIgIiksZGF5T2ZXZWVrOiI\/Pz8\/Pz8gPz8\/Pz8\/Pz8\/ID8\/Pz8\/PyA\/Pz8\/PyA\/Pz8\/Pz8\/PyA\/Pz8\/PyA\/Pz8\/Pz8iLnNwbGl0KCIgIil9LHN2Onttb250aHM6IkphbnVhcmkgRmVicnVhcmkgTWFycyBBcHJpbCBNYWogSnVuaSBKdWxpIEF1Z3VzdGkgU2VwdGVtYmVyIE9rdG9iZXIgTm92ZW1iZXIgRGVjZW1iZXIiLnNwbGl0KCIgIiksCmRheU9mV2Vla1Nob3J0OiJT9m4gTeVuIFRpcyBPbnMgVG9yIEZyZSBM9nIiLnNwbGl0KCIgIiksZGF5T2ZXZWVrOiJT9m5kYWcgTeVuZGFnIFRpc2RhZyBPbnNkYWcgVG9yc2RhZyBGcmVkYWcgTPZyZGFnIi5zcGxpdCgiICIpfSwiemgtVFciOnttb250aHM6Ij8\/ID8\/ID8\/ID8\/ID8\/ID8\/ID8\/ID8\/ID8\/ID8\/ID8\/PyA\/Pz8iLnNwbGl0KCIgIiksZGF5T2ZXZWVrU2hvcnQ6Ij8\/Pz8\/Pz8iLnNwbGl0KCIiKSxkYXlPZldlZWs6Ij8\/PyA\/Pz8gPz8\/ID8\/PyA\/Pz8gPz8\/ID8\/PyIuc3BsaXQoIiAiKX0semg6e21vbnRoczoiPz8gPz8gPz8gPz8gPz8gPz8gPz8gPz8gPz8gPz8gPz8\/ID8\/PyIuc3BsaXQoIiAiKSxkYXlPZldlZWtTaG9ydDoiPz8\/Pz8\/PyIuc3BsaXQoIiIpLGRheU9mV2VlazoiPz8\/ID8\/PyA\/Pz8gPz8\/ID8\/PyA\/Pz8gPz8\/Ii5zcGxpdCgiICIpfSxoZTp7bW9udGhzOiI\/Pz8\/PyA\/Pz8\/Pz8gPz8\/ID8\/Pz8\/ID8\/PyA\/Pz8\/ID8\/Pz8gPz8\/Pz8\/ID8\/Pz8\/PyA\/Pz8\/Pz8\/ID8\/Pz8\/PyA\/Pz8\/PyIuc3BsaXQoIiAiKSwKZGF5T2ZXZWVrU2hvcnQ6Ij8nID8nID8nID8nID8nID8nID8\/PyIuc3BsaXQoIiAiKSxkYXlPZldlZWs6Ij8\/Pz8\/ID8\/PyA\/Pz8\/PyA\/Pz8\/PyA\/Pz8\/PyA\/Pz8\/ID8\/PyA\/Pz8\/PyIuc3BsaXQoIiAiKX0saHk6e21vbnRoczoiPz8\/Pz8\/PyA\/Pz8\/Pz8\/ID8\/Pz8gPz8\/Pz8gPz8\/Pz8gPz8\/Pz8\/ID8\/Pz8\/PyA\/Pz8\/Pz8\/ID8\/Pz8\/Pz8\/PyA\/Pz8\/Pz8\/Pz8gPz8\/Pz8\/Pz8gPz8\/Pz8\/Pz8\/Ii5zcGxpdCgiICIpLGRheU9mV2Vla1Nob3J0OiI\/PyA\/Pz8gPz8\/ID8\/PyA\/Pz8gPz8\/PyA\/Pz8iLnNwbGl0KCIgIiksZGF5T2ZXZWVrOiI\/Pz8\/Pz8gPz8\/Pz8\/Pz8\/PyA\/Pz8\/Pz8\/Pz8gPz8\/Pz8\/Pz8\/PyA\/Pz8\/Pz8\/Pz8gPz8\/Pz8\/ID8\/Pz8\/Ii5zcGxpdCgiICIpfSxrZzp7bW9udGhzOiI\/Pz8\/PyA\/Pz87Pz8\/Pz8\/ID8\/Pzs\/Pz8\/Pz8gPz8\/Pz87Pz8\/ID8\/Pz8\/Oz8\/Pz87Pz8\/Pz87Pz8\/Pzs\/Pz8gPz8\/Pzs\/Pz8gPz8\/Pzs\/Pz8\/Pz8\/PyA\/Pz87Pz8\/Pz8\/PyA\/Pz87Pz8\/Pz8\/ID8\/PyIuc3BsaXQoIjsiKSwKZGF5T2ZXZWVrU2hvcnQ6Ij8\/PyA\/Pz8gPz8\/ID8\/PyA\/Pz8gPz8\/ID8\/PyIuc3BsaXQoIiAiKSxkYXlPZldlZWs6Ij8\/Pz8\/Pz8gPz8\/Pz8\/PyA\/Pz8\/Pz8\/ID8\/Pz8\/Pz8gPz8\/Pz8\/Pz8gPz8\/PyA\/Pz8\/PyIuc3BsaXQoIiAiKX19LHZhbHVlOiIiLHJ0bDohMSxmb3JtYXQ6IlkvbS9kIEg6aSIsZm9ybWF0VGltZToiSDppIixmb3JtYXREYXRlOiJZL20vZCIsc3RhcnREYXRlOiExLHN0ZXA6NjAsbW9udGhDaGFuZ2VTcGlubmVyOiEwLGNsb3NlT25EYXRlU2VsZWN0OiExLGNsb3NlT25UaW1lU2VsZWN0OiEwLGNsb3NlT25XaXRob3V0Q2xpY2s6ITAsY2xvc2VPbklucHV0Q2xpY2s6ITAsdGltZXBpY2tlcjohMCxkYXRlcGlja2VyOiEwLHdlZWtzOiExLGRlZmF1bHRUaW1lOiExLGRlZmF1bHREYXRlOiExLG1pbkRhdGU6ITEsbWF4RGF0ZTohMSxtaW5UaW1lOiExLG1heFRpbWU6ITEsZGlzYWJsZWRNaW5UaW1lOiExLGRpc2FibGVkTWF4VGltZTohMSxhbGxvd1RpbWVzOltdLG9wZW5lZDohMSwKaW5pdFRpbWU6ITAsaW5saW5lOiExLHRoZW1lOiIiLG9uU2VsZWN0RGF0ZTpmdW5jdGlvbigpe30sb25TZWxlY3RUaW1lOmZ1bmN0aW9uKCl7fSxvbkNoYW5nZU1vbnRoOmZ1bmN0aW9uKCl7fSxvbkNoYW5nZVllYXI6ZnVuY3Rpb24oKXt9LG9uQ2hhbmdlRGF0ZVRpbWU6ZnVuY3Rpb24oKXt9LG9uU2hvdzpmdW5jdGlvbigpe30sb25DbG9zZTpmdW5jdGlvbigpe30sb25HZW5lcmF0ZTpmdW5jdGlvbigpe30sd2l0aG91dENvcHlyaWdodDohMCxpbnZlcnNlQnV0dG9uOiExLGhvdXJzMTI6ITEsbmV4dDoieGRzb2Z0X25leHQiLHByZXY6Inhkc29mdF9wcmV2IixkYXlPZldlZWtTdGFydDowLHBhcmVudElEOiJib2R5Iix0aW1lSGVpZ2h0SW5UaW1lUGlja2VyOjI1LHRpbWVwaWNrZXJTY3JvbGxiYXI6ITAsdG9kYXlCdXR0b246ITAscHJldkJ1dHRvbjohMCxuZXh0QnV0dG9uOiEwLGRlZmF1bHRTZWxlY3Q6ITAsc2Nyb2xsTW9udGg6ITAsc2Nyb2xsVGltZTohMCxzY3JvbGxJbnB1dDohMCwKbGF6eUluaXQ6ITEsbWFzazohMSx2YWxpZGF0ZU9uQmx1cjohMCxhbGxvd0JsYW5rOiEwLHllYXJTdGFydDoxOTUwLHllYXJFbmQ6MjA1MCxtb250aFN0YXJ0OjAsbW9udGhFbmQ6MTEsc3R5bGU6IiIsaWQ6IiIsZml4ZWQ6ITEscm91bmRUaW1lOiJyb3VuZCIsY2xhc3NOYW1lOiIiLHdlZWtlbmRzOltdLGhpZ2hsaWdodGVkRGF0ZXM6W10saGlnaGxpZ2h0ZWRQZXJpb2RzOltdLGRpc2FibGVkRGF0ZXM6W10sZGlzYWJsZWRXZWVrRGF5czpbXSx5ZWFyT2Zmc2V0OjAsYmVmb3JlU2hvd0RheTpudWxsLGVudGVyTGlrZVRhYjohMCxzaG93QXBwbHlCdXR0b246ITF9LEc9ImVuIjtmLmRhdGV0aW1lcGlja2VyPXtzZXRMb2NhbGU6ZnVuY3Rpb24ocil7Rz1KLmkxOG5bcl0\/cjoiZW4iO0RhdGUubW9udGhOYW1lcz1KLmkxOG5bR10ubW9udGhzO0RhdGUuZGF5TmFtZXM9Si5pMThuW0ddLmRheU9mV2Vla319O3dpbmRvdy5nZXRDb21wdXRlZFN0eWxlfHwod2luZG93LmdldENvbXB1dGVkU3R5bGU9CmZ1bmN0aW9uKHIsdil7dGhpcy5lbD1yO3RoaXMuZ2V0UHJvcGVydHlWYWx1ZT1mdW5jdGlvbihhKXt2YXIgRD0vKFwtKFthLXpdKXsxfSkvZzsiZmxvYXQiPT09YSYmKGE9InN0eWxlRmxvYXQiKTtELnRlc3QoYSkmJihhPWEucmVwbGFjZShELGZ1bmN0aW9uKEksZyxlKXtyZXR1cm4gZS50b1VwcGVyQ2FzZSgpfSkpO3JldHVybiByLmN1cnJlbnRTdHlsZVthXXx8bnVsbH07cmV0dXJuIHRoaXN9KTtBcnJheS5wcm90b3R5cGUuaW5kZXhPZnx8KEFycmF5LnByb3RvdHlwZS5pbmRleE9mPWZ1bmN0aW9uKHIsdil7dmFyIGE7dj12fHwwO2ZvcihhPXRoaXMubGVuZ3RoO3Y8YTt2Kz0xKWlmKHRoaXNbdl09PT1yKXJldHVybiB2O3JldHVybi0xfSk7RGF0ZS5wcm90b3R5cGUuY291bnREYXlzSW5Nb250aD1mdW5jdGlvbigpe3JldHVybihuZXcgRGF0ZSh0aGlzLmdldEZ1bGxZZWFyKCksdGhpcy5nZXRNb250aCgpKzEsMCkpLmdldERhdGUoKX07Zi5mbi54ZHNvZnRTY3JvbGxlcj1mdW5jdGlvbihyKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIHY9CmYodGhpcyksYT1mdW5jdGlvbihwKXt2YXIgQj17eDowLHk6MH07aWYoInRvdWNoc3RhcnQiPT09cC50eXBlfHwidG91Y2htb3ZlIj09PXAudHlwZXx8InRvdWNoZW5kIj09PXAudHlwZXx8InRvdWNoY2FuY2VsIj09PXAudHlwZSlwPXAub3JpZ2luYWxFdmVudC50b3VjaGVzWzBdfHxwLm9yaWdpbmFsRXZlbnQuY2hhbmdlZFRvdWNoZXNbMF0sQi54PXAuY2xpZW50WCxCLnk9cC5jbGllbnRZO2Vsc2UgaWYoIm1vdXNlZG93biI9PT1wLnR5cGV8fCJtb3VzZXVwIj09PXAudHlwZXx8Im1vdXNlbW92ZSI9PT1wLnR5cGV8fCJtb3VzZW92ZXIiPT09cC50eXBlfHwibW91c2VvdXQiPT09cC50eXBlfHwibW91c2VlbnRlciI9PT1wLnR5cGV8fCJtb3VzZWxlYXZlIj09PXAudHlwZSlCLng9cC5jbGllbnRYLEIueT1wLmNsaWVudFk7cmV0dXJuIEJ9LEQ9MTAwLEk9ITEsZz0wLGU9MCxoPTAsYz0hMSx0PTAsdT1mdW5jdGlvbigpe307aWYoImhpZGUiPT09cil2LmZpbmQoIi54ZHNvZnRfc2Nyb2xsYmFyIikuaGlkZSgpOwplbHNle2lmKCFmKHRoaXMpLmhhc0NsYXNzKCJ4ZHNvZnRfc2Nyb2xsZXJfYm94Iikpe3ZhciB3PXYuY2hpbGRyZW4oKS5lcSgwKSxFPXZbMF0uY2xpZW50SGVpZ2h0LEM9d1swXS5vZmZzZXRIZWlnaHQseT1mKCc8ZGl2IGNsYXNzPSJ4ZHNvZnRfc2Nyb2xsYmFyIj48L2Rpdj4nKSx6PWYoJzxkaXYgY2xhc3M9Inhkc29mdF9zY3JvbGxlciI+PC9kaXY+Jyk7eS5hcHBlbmQoeik7di5hZGRDbGFzcygieGRzb2Z0X3Njcm9sbGVyX2JveCIpLmFwcGVuZCh5KTt1PWZ1bmN0aW9uKHApe3A9YShwKS55LWcrdDswPnAmJihwPTApO3ArelswXS5vZmZzZXRIZWlnaHQ+aCYmKHA9aC16WzBdLm9mZnNldEhlaWdodCk7di50cmlnZ2VyKCJzY3JvbGxfZWxlbWVudC54ZHNvZnRfc2Nyb2xsZXIiLFtEP3AvRDowXSl9O3oub24oInRvdWNoc3RhcnQueGRzb2Z0X3Njcm9sbGVyIG1vdXNlZG93bi54ZHNvZnRfc2Nyb2xsZXIiLGZ1bmN0aW9uKHApe0V8fHYudHJpZ2dlcigicmVzaXplX3Njcm9sbC54ZHNvZnRfc2Nyb2xsZXIiLApbcl0pO2c9YShwKS55O3Q9cGFyc2VJbnQoei5jc3MoIm1hcmdpbi10b3AiKSwxMCk7aD15WzBdLm9mZnNldEhlaWdodDsibW91c2Vkb3duIj09PXAudHlwZT8oZG9jdW1lbnQmJmYoZG9jdW1lbnQuYm9keSkuYWRkQ2xhc3MoInhkc29mdF9ub3NlbGVjdCIpLGYoW2RvY3VtZW50LmJvZHksd2luZG93XSkub24oIm1vdXNldXAueGRzb2Z0X3Njcm9sbGVyIixmdW5jdGlvbiBOKCl7ZihbZG9jdW1lbnQuYm9keSx3aW5kb3ddKS5vZmYoIm1vdXNldXAueGRzb2Z0X3Njcm9sbGVyIixOKS5vZmYoIm1vdXNlbW92ZS54ZHNvZnRfc2Nyb2xsZXIiLHUpLnJlbW92ZUNsYXNzKCJ4ZHNvZnRfbm9zZWxlY3QiKX0pLGYoZG9jdW1lbnQuYm9keSkub24oIm1vdXNlbW92ZS54ZHNvZnRfc2Nyb2xsZXIiLHUpKTooYz0hMCxwLnN0b3BQcm9wYWdhdGlvbigpLHAucHJldmVudERlZmF1bHQoKSl9KS5vbigidG91Y2htb3ZlIixmdW5jdGlvbihwKXtjJiYocC5wcmV2ZW50RGVmYXVsdCgpLHUocCkpfSkub24oInRvdWNoZW5kIHRvdWNoY2FuY2VsIiwKZnVuY3Rpb24ocCl7Yz0hMTt0PTB9KTt2Lm9uKCJzY3JvbGxfZWxlbWVudC54ZHNvZnRfc2Nyb2xsZXIiLGZ1bmN0aW9uKHAsQil7RXx8di50cmlnZ2VyKCJyZXNpemVfc2Nyb2xsLnhkc29mdF9zY3JvbGxlciIsW0IsITBdKTtCPTE8Qj8xOjA+Qnx8aXNOYU4oQik\/MDpCO3ouY3NzKCJtYXJnaW4tdG9wIixEKkIpO3NldFRpbWVvdXQoZnVuY3Rpb24oKXt3LmNzcygibWFyZ2luVG9wIiwtcGFyc2VJbnQoKHdbMF0ub2Zmc2V0SGVpZ2h0LUUpKkIsMTApKX0sMTApfSkub24oInJlc2l6ZV9zY3JvbGwueGRzb2Z0X3Njcm9sbGVyIixmdW5jdGlvbihwLEIsTil7RT12WzBdLmNsaWVudEhlaWdodDtDPXdbMF0ub2Zmc2V0SGVpZ2h0O3A9RS9DO3ZhciBPPXAqeVswXS5vZmZzZXRIZWlnaHQ7MTxwP3ouaGlkZSgpOih6LnNob3coKSx6LmNzcygiaGVpZ2h0IixwYXJzZUludCgxMDxPP086MTAsMTApKSxEPXlbMF0ub2Zmc2V0SGVpZ2h0LXpbMF0ub2Zmc2V0SGVpZ2h0LCEwIT09TiYmdi50cmlnZ2VyKCJzY3JvbGxfZWxlbWVudC54ZHNvZnRfc2Nyb2xsZXIiLApbQnx8TWF0aC5hYnMocGFyc2VJbnQody5jc3MoIm1hcmdpblRvcCIpLDEwKSkvKEMtRSldKSl9KTt2Lm9uKCJtb3VzZXdoZWVsIixmdW5jdGlvbihwKXt2YXIgQj1NYXRoLmFicyhwYXJzZUludCh3LmNzcygibWFyZ2luVG9wIiksMTApKTtCLT0yMCpwLmRlbHRhWTswPkImJihCPTApO3YudHJpZ2dlcigic2Nyb2xsX2VsZW1lbnQueGRzb2Z0X3Njcm9sbGVyIixbQi8oQy1FKV0pO3Auc3RvcFByb3BhZ2F0aW9uKCk7cmV0dXJuITF9KTt2Lm9uKCJ0b3VjaHN0YXJ0IixmdW5jdGlvbihwKXtJPWEocCk7ZT1NYXRoLmFicyhwYXJzZUludCh3LmNzcygibWFyZ2luVG9wIiksMTApKX0pO3Yub24oInRvdWNobW92ZSIsZnVuY3Rpb24ocCl7SSYmKHAucHJldmVudERlZmF1bHQoKSxwPWEocCksdi50cmlnZ2VyKCJzY3JvbGxfZWxlbWVudC54ZHNvZnRfc2Nyb2xsZXIiLFsoZS0ocC55LUkueSkpLyhDLUUpXSkpfSk7di5vbigidG91Y2hlbmQgdG91Y2hjYW5jZWwiLGZ1bmN0aW9uKHApe0k9ITE7CmU9MH0pfXYudHJpZ2dlcigicmVzaXplX3Njcm9sbC54ZHNvZnRfc2Nyb2xsZXIiLFtyXSl9fSl9O2YuZm4uZGF0ZXRpbWVwaWNrZXI9ZnVuY3Rpb24ocil7dmFyIHY9ITEsYT1mLmlzUGxhaW5PYmplY3Qocil8fCFyP2YuZXh0ZW5kKCEwLHt9LEoscik6Zi5leHRlbmQoITAse30sSiksRD0wLEk9ZnVuY3Rpb24oZSl7ZS5vbigib3Blbi54ZHNvZnQgZm9jdXNpbi54ZHNvZnQgbW91c2Vkb3duLnhkc29mdCIsZnVuY3Rpb24gdChjKXtlLmlzKCI6ZGlzYWJsZWQiKXx8ZS5kYXRhKCJ4ZHNvZnRfZGF0ZXRpbWVwaWNrZXIiKXx8KGNsZWFyVGltZW91dChEKSxEPXNldFRpbWVvdXQoZnVuY3Rpb24oKXtlLmRhdGEoInhkc29mdF9kYXRldGltZXBpY2tlciIpfHxnKGUpO2Uub2ZmKCJvcGVuLnhkc29mdCBmb2N1c2luLnhkc29mdCBtb3VzZWRvd24ueGRzb2Z0Iix0KS50cmlnZ2VyKCJvcGVuLnhkc29mdCIpfSwxMDApKX0pfSxnPWZ1bmN0aW9uKGUpe2Z1bmN0aW9uIGgoKXtpZihhLnN0YXJ0RGF0ZSl2YXIgYj0KbC5zdHJUb0RhdGUoYS5zdGFydERhdGUpO2Vsc2UgaWYoYj1hLnZhbHVlfHwoZSYmZS52YWwmJmUudmFsKCk\/ZS52YWwoKToiIikpYj1sLnN0clRvRGF0ZVRpbWUoYik7ZWxzZSBpZihhLmRlZmF1bHREYXRlJiYoYj1sLnN0clRvRGF0ZVRpbWUoYS5kZWZhdWx0RGF0ZSksYS5kZWZhdWx0VGltZSkpe3ZhciBkPWwuc3RydG90aW1lKGEuZGVmYXVsdFRpbWUpO2Iuc2V0SG91cnMoZC5nZXRIb3VycygpKTtiLnNldE1pbnV0ZXMoZC5nZXRNaW51dGVzKCkpfWImJmwuaXNWYWxpZERhdGUoYik\/Yy5kYXRhKCJjaGFuZ2VkIiwhMCk6Yj0iIjtyZXR1cm4gYnx8MH12YXIgYz1mKCc8ZGl2IGNsYXNzPSJ4ZHNvZnRfZGF0ZXRpbWVwaWNrZXIgeGRzb2Z0X25vc2VsZWN0Ij48L2Rpdj4nKSx0PWYoJzxkaXYgY2xhc3M9Inhkc29mdF9jb3B5cmlnaHQiPjxhIHRhcmdldD0iX2JsYW5rIiBocmVmPSJodHRwOi8veGRzb2Z0Lm5ldC9qcXBsdWdpbnMvZGF0ZXRpbWVwaWNrZXIvIj54ZHNvZnQubmV0PC9hPjwvZGl2PicpLAp1PWYoJzxkaXYgY2xhc3M9Inhkc29mdF9kYXRlcGlja2VyIGFjdGl2ZSI+PC9kaXY+Jyksdz1mKCc8ZGl2IGNsYXNzPSJ4ZHNvZnRfbW91bnRocGlja2VyIj48YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9Inhkc29mdF9wcmV2Ij48L2J1dHRvbj48YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9Inhkc29mdF90b2RheV9idXR0b24iPjwvYnV0dG9uPjxkaXYgY2xhc3M9Inhkc29mdF9sYWJlbCB4ZHNvZnRfbW9udGgiPjxzcGFuPjwvc3Bhbj48aT48L2k+PC9kaXY+PGRpdiBjbGFzcz0ieGRzb2Z0X2xhYmVsIHhkc29mdF95ZWFyIj48c3Bhbj48L3NwYW4+PGk+PC9pPjwvZGl2PjxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0ieGRzb2Z0X25leHQiPjwvYnV0dG9uPjwvZGl2PicpLEU9ZignPGRpdiBjbGFzcz0ieGRzb2Z0X2NhbGVuZGFyIj48L2Rpdj4nKSxDPWYoJzxkaXYgY2xhc3M9Inhkc29mdF90aW1lcGlja2VyIGFjdGl2ZSI+PGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJ4ZHNvZnRfcHJldiI+PC9idXR0b24+PGRpdiBjbGFzcz0ieGRzb2Z0X3RpbWVfYm94Ij48L2Rpdj48YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9Inhkc29mdF9uZXh0Ij48L2J1dHRvbj48L2Rpdj4nKSwKeT1DLmZpbmQoIi54ZHNvZnRfdGltZV9ib3giKS5lcSgwKSx6PWYoJzxkaXYgY2xhc3M9Inhkc29mdF90aW1lX3ZhcmlhbnQiPjwvZGl2PicpLHA9ZignPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJ4ZHNvZnRfc2F2ZV9zZWxlY3RlZCBibHVlLWdyYWRpZW50LWJ1dHRvbiI+U2F2ZSBTZWxlY3RlZDwvYnV0dG9uPicpLEI9ZignPGRpdiBjbGFzcz0ieGRzb2Z0X3NlbGVjdCB4ZHNvZnRfbW9udGhzZWxlY3QiPjxkaXY+PC9kaXY+PC9kaXY+JyksTj1mKCc8ZGl2IGNsYXNzPSJ4ZHNvZnRfc2VsZWN0IHhkc29mdF95ZWFyc2VsZWN0Ij48ZGl2PjwvZGl2PjwvZGl2PicpLE89ITEsVz0wO2EuaWQmJmMuYXR0cigiaWQiLGEuaWQpO2Euc3R5bGUmJmMuYXR0cigic3R5bGUiLGEuc3R5bGUpO2Eud2Vla3MmJmMuYWRkQ2xhc3MoInhkc29mdF9zaG93d2Vla3MiKTthLnJ0bCYmYy5hZGRDbGFzcygieGRzb2Z0X3J0bCIpO2MuYWRkQ2xhc3MoInhkc29mdF8iK2EudGhlbWUpO2MuYWRkQ2xhc3MoYS5jbGFzc05hbWUpOwp3LmZpbmQoIi54ZHNvZnRfbW9udGggc3BhbiIpLmFmdGVyKEIpO3cuZmluZCgiLnhkc29mdF95ZWFyIHNwYW4iKS5hZnRlcihOKTt3LmZpbmQoIi54ZHNvZnRfbW9udGgsLnhkc29mdF95ZWFyIikub24oIm1vdXNlZG93bi54ZHNvZnQiLGZ1bmN0aW9uKGIpe3ZhciBkPWYodGhpcykuZmluZCgiLnhkc29mdF9zZWxlY3QiKS5lcSgwKSxrPTAsbj0wLG09ZC5pcygiOnZpc2libGUiKSxxO3cuZmluZCgiLnhkc29mdF9zZWxlY3QiKS5oaWRlKCk7bC5jdXJyZW50VGltZSYmKGs9bC5jdXJyZW50VGltZVtmKHRoaXMpLmhhc0NsYXNzKCJ4ZHNvZnRfbW9udGgiKT8iZ2V0TW9udGgiOiJnZXRGdWxsWWVhciJdKCkpO2RbbT8iaGlkZSI6InNob3ciXSgpO209ZC5maW5kKCJkaXYueGRzb2Z0X29wdGlvbiIpO2ZvcihxPTA7cTxtLmxlbmd0aCYmbS5lcShxKS5kYXRhKCJ2YWx1ZSIpIT09aztxKz0xKW4rPW1bMF0ub2Zmc2V0SGVpZ2h0O2QueGRzb2Z0U2Nyb2xsZXIobi8oZC5jaGlsZHJlbigpWzBdLm9mZnNldEhlaWdodC0KZFswXS5jbGllbnRIZWlnaHQpKTtiLnN0b3BQcm9wYWdhdGlvbigpO3JldHVybiExfSk7dy5maW5kKCIueGRzb2Z0X3NlbGVjdCIpLnhkc29mdFNjcm9sbGVyKCkub24oIm1vdXNlZG93bi54ZHNvZnQiLGZ1bmN0aW9uKGIpe2Iuc3RvcFByb3BhZ2F0aW9uKCk7Yi5wcmV2ZW50RGVmYXVsdCgpfSkub24oIm1vdXNlZG93bi54ZHNvZnQiLCIueGRzb2Z0X29wdGlvbiIsZnVuY3Rpb24oYil7aWYodm9pZCAwPT09bC5jdXJyZW50VGltZXx8bnVsbD09PWwuY3VycmVudFRpbWUpbC5jdXJyZW50VGltZT1sLm5vdygpO2I9bC5jdXJyZW50VGltZS5nZXRGdWxsWWVhcigpO2lmKGwmJmwuY3VycmVudFRpbWUpbC5jdXJyZW50VGltZVtmKHRoaXMpLnBhcmVudCgpLnBhcmVudCgpLmhhc0NsYXNzKCJ4ZHNvZnRfbW9udGhzZWxlY3QiKT8ic2V0TW9udGgiOiJzZXRGdWxsWWVhciJdKGYodGhpcykuZGF0YSgidmFsdWUiKSk7Zih0aGlzKS5wYXJlbnQoKS5wYXJlbnQoKS5oaWRlKCk7Yy50cmlnZ2VyKCJ4Y2hhbmdlLnhkc29mdCIpOwphLm9uQ2hhbmdlTW9udGgmJmlzRnVuY3Rpb24oYS5vbkNoYW5nZU1vbnRoKSYmYS5vbkNoYW5nZU1vbnRoLmNhbGwoYyxsLmN1cnJlbnRUaW1lLGMuZGF0YSgiaW5wdXQiKSk7YiE9PWwuY3VycmVudFRpbWUuZ2V0RnVsbFllYXIoKSYmaXNGdW5jdGlvbihhLm9uQ2hhbmdlWWVhcikmJmEub25DaGFuZ2VZZWFyLmNhbGwoYyxsLmN1cnJlbnRUaW1lLGMuZGF0YSgiaW5wdXQiKSl9KTtjLnNldE9wdGlvbnM9ZnVuY3Rpb24oYil7dmFyIGQ9e30saz1mdW5jdGlvbihuLG0pe249bi5yZXBsYWNlKC8oW1xbXF1cL1x7XH1cKFwpXC1cLlwrXXsxfSkvZywiXFwkMSIpLnJlcGxhY2UoL18vZywie2RpZ2l0K30iKS5yZXBsYWNlKC8oWzAtOV17MX0pL2csIntkaWdpdCQxfSIpLnJlcGxhY2UoL1x7ZGlnaXQoWzAtOV17MX0pXH0vZywiWzAtJDFfXXsxfSIpLnJlcGxhY2UoL1x7ZGlnaXRbXCtdXH0vZywiWzAtOV9dezF9Iik7cmV0dXJuKG5ldyBSZWdFeHAobikpLnRlc3QobSl9O2E9Zi5leHRlbmQoITAsCnt9LGEsYik7Yi5hbGxvd1RpbWVzJiZBcnJheS5pc0FycmF5KGIuYWxsb3dUaW1lcykmJmIuYWxsb3dUaW1lcy5sZW5ndGgmJihhLmFsbG93VGltZXM9Zi5leHRlbmQoITAsW10sYi5hbGxvd1RpbWVzKSk7Yi53ZWVrZW5kcyYmQXJyYXkuaXNBcnJheShiLndlZWtlbmRzKSYmYi53ZWVrZW5kcy5sZW5ndGgmJihhLndlZWtlbmRzPWYuZXh0ZW5kKCEwLFtdLGIud2Vla2VuZHMpKTtiLmhpZ2hsaWdodGVkRGF0ZXMmJkFycmF5LmlzQXJyYXkoYi5oaWdobGlnaHRlZERhdGVzKSYmYi5oaWdobGlnaHRlZERhdGVzLmxlbmd0aCYmKGYuZWFjaChiLmhpZ2hsaWdodGVkRGF0ZXMsZnVuY3Rpb24obixtKXtuPWYubWFwKG0uc3BsaXQoIiwiKSxmLnRyaW0pO209bmV3IE0oRGF0ZS5wYXJzZURhdGUoblswXSxhLmZvcm1hdERhdGUpLG5bMV0sblsyXSk7dmFyIHE9bS5kYXRlLmRhdGVGb3JtYXQoYS5mb3JtYXREYXRlKTt2b2lkIDAhPT1kW3FdPyhuPWRbcV0uZGVzYykmJm4ubGVuZ3RoJiZtLmRlc2MmJgptLmRlc2MubGVuZ3RoJiYoZFtxXS5kZXNjPW4rIlxuIittLmRlc2MpOmRbcV09bX0pLGEuaGlnaGxpZ2h0ZWREYXRlcz1mLmV4dGVuZCghMCxbXSxkKSk7Yi5oaWdobGlnaHRlZFBlcmlvZHMmJkFycmF5LmlzQXJyYXkoYi5oaWdobGlnaHRlZFBlcmlvZHMpJiZiLmhpZ2hsaWdodGVkUGVyaW9kcy5sZW5ndGgmJihkPWYuZXh0ZW5kKCEwLFtdLGEuaGlnaGxpZ2h0ZWREYXRlcyksZi5lYWNoKGIuaGlnaGxpZ2h0ZWRQZXJpb2RzLGZ1bmN0aW9uKG4sbSl7dmFyIHE7aWYoQXJyYXkuaXNBcnJheShtKSl7bj1tWzBdO3ZhciB4PW1bMV0sRj1tWzJdLEE9bVszXX1lbHNlIG09Zi5tYXAobS5zcGxpdCgiLCIpLGYudHJpbSksbj1EYXRlLnBhcnNlRGF0ZShtWzBdLGEuZm9ybWF0RGF0ZSkseD1EYXRlLnBhcnNlRGF0ZShtWzFdLGEuZm9ybWF0RGF0ZSksRj1tWzJdLEE9bVszXTtmb3IoO248PXg7KXttPW5ldyBNKG4sRixBKTt2YXIgSD1uLmRhdGVGb3JtYXQoYS5mb3JtYXREYXRlKTtuLnNldERhdGUobi5nZXREYXRlKCkrCjEpO3ZvaWQgMCE9PWRbSF0\/KHE9ZFtIXS5kZXNjKSYmcS5sZW5ndGgmJm0uZGVzYyYmbS5kZXNjLmxlbmd0aCYmKGRbSF0uZGVzYz1xKyJcbiIrbS5kZXNjKTpkW0hdPW19fSksYS5oaWdobGlnaHRlZERhdGVzPWYuZXh0ZW5kKCEwLFtdLGQpKTtiLmRpc2FibGVkRGF0ZXMmJkFycmF5LmlzQXJyYXkoYi5kaXNhYmxlZERhdGVzKSYmYi5kaXNhYmxlZERhdGVzLmxlbmd0aCYmKGEuZGlzYWJsZWREYXRlcz1mLmV4dGVuZCghMCxbXSxiLmRpc2FibGVkRGF0ZXMpKTtiLmRpc2FibGVkV2Vla0RheXMmJkFycmF5LmlzQXJyYXkoYi5kaXNhYmxlZFdlZWtEYXlzKSYmYi5kaXNhYmxlZFdlZWtEYXlzLmxlbmd0aCYmKGEuZGlzYWJsZWRXZWVrRGF5cz1mLmV4dGVuZCghMCxbXSxiLmRpc2FibGVkV2Vla0RheXMpKTshYS5vcGVuJiYhYS5vcGVuZWR8fGEuaW5saW5lfHxlLnRyaWdnZXIoIm9wZW4ueGRzb2Z0Iik7YS5pbmxpbmUmJihPPSEwLGMuYWRkQ2xhc3MoInhkc29mdF9pbmxpbmUiKSxlLmFmdGVyKGMpLmhpZGUoKSk7CmEuaW52ZXJzZUJ1dHRvbiYmKGEubmV4dD0ieGRzb2Z0X3ByZXYiLGEucHJldj0ieGRzb2Z0X25leHQiKTthLmRhdGVwaWNrZXI\/dS5hZGRDbGFzcygiYWN0aXZlIik6dS5yZW1vdmVDbGFzcygiYWN0aXZlIik7YS50aW1lcGlja2VyP0MuYWRkQ2xhc3MoImFjdGl2ZSIpOkMucmVtb3ZlQ2xhc3MoImFjdGl2ZSIpO2EudmFsdWUmJihsLnNldEN1cnJlbnRUaW1lKGEudmFsdWUpLGUmJmUudmFsJiZlLnZhbChsLnN0cikpO2lzTmFOKGEuZGF5T2ZXZWVrU3RhcnQpP2EuZGF5T2ZXZWVrU3RhcnQ9MDphLmRheU9mV2Vla1N0YXJ0PXBhcnNlSW50KGEuZGF5T2ZXZWVrU3RhcnQsMTApJTc7YS50aW1lcGlja2VyU2Nyb2xsYmFyfHx5Lnhkc29mdFNjcm9sbGVyKCJoaWRlIik7YS5taW5EYXRlJiYvXltcK1wtXSguKikkLy50ZXN0KGEubWluRGF0ZSkmJihhLm1pbkRhdGU9bC5zdHJUb0RhdGVUaW1lKGEubWluRGF0ZSkuZGF0ZUZvcm1hdChhLmZvcm1hdERhdGUpKTthLm1heERhdGUmJi9eW1wrXC1dKC4qKSQvLnRlc3QoYS5tYXhEYXRlKSYmCihhLm1heERhdGU9bC5zdHJUb0RhdGVUaW1lKGEubWF4RGF0ZSkuZGF0ZUZvcm1hdChhLmZvcm1hdERhdGUpKTtwLnRvZ2dsZShhLnNob3dBcHBseUJ1dHRvbik7dy5maW5kKCIueGRzb2Z0X3RvZGF5X2J1dHRvbiIpLmNzcygidmlzaWJpbGl0eSIsYS50b2RheUJ1dHRvbj8idmlzaWJsZSI6ImhpZGRlbiIpO3cuZmluZCgiLiIrYS5wcmV2KS5jc3MoInZpc2liaWxpdHkiLGEucHJldkJ1dHRvbj8idmlzaWJsZSI6ImhpZGRlbiIpO3cuZmluZCgiLiIrYS5uZXh0KS5jc3MoInZpc2liaWxpdHkiLGEubmV4dEJ1dHRvbj8idmlzaWJsZSI6ImhpZGRlbiIpO2EubWFzayYmKGUub2ZmKCJrZXlkb3duLnhkc29mdCIpLCEwPT09YS5tYXNrJiYoYS5tYXNrPWEuZm9ybWF0LnJlcGxhY2UoL1kvZywiOTk5OSIpLnJlcGxhY2UoL0YvZywiOTk5OSIpLnJlcGxhY2UoL20vZywiMTkiKS5yZXBsYWNlKC9kL2csIjM5IikucmVwbGFjZSgvSC9nLCIyOSIpLnJlcGxhY2UoL2kvZywiNTkiKS5yZXBsYWNlKC9zL2csCiI1OSIpKSwic3RyaW5nIj09PXR5cGVvZiBhLm1hc2smJihrKGEubWFzayxlLnZhbCgpKXx8ZS52YWwoYS5tYXNrLnJlcGxhY2UoL1swLTldL2csIl8iKSksZS5vbigia2V5ZG93bi54ZHNvZnQiLGZ1bmN0aW9uKG4pe3ZhciBtPXRoaXMudmFsdWUscT1uLndoaWNoO2lmKDQ4PD1xJiY1Nz49cXx8OTY8PXEmJjEwNT49cXx8OD09PXF8fDQ2PT09cSl7YTp7dHJ5e2lmKGRvY3VtZW50LnNlbGVjdGlvbiYmZG9jdW1lbnQuc2VsZWN0aW9uLmNyZWF0ZVJhbmdlKXt2YXIgeD1kb2N1bWVudC5zZWxlY3Rpb24uY3JlYXRlUmFuZ2UoKS5nZXRCb29rbWFyaygpLmNoYXJDb2RlQXQoMiktMjticmVhayBhfWlmKHRoaXMuc2V0U2VsZWN0aW9uUmFuZ2Upe3g9dGhpcy5zZWxlY3Rpb25TdGFydDticmVhayBhfX1jYXRjaChBKXt4PTA7YnJlYWsgYX14PXZvaWQgMH12YXIgRj04IT09cSYmNDYhPT1xP1N0cmluZy5mcm9tQ2hhckNvZGUoOTY8PXEmJjEwNT49cT9xLTQ4OnEpOiJfIjtmb3IoOCE9PXEmJgo0NiE9PXF8fCF4fHwoLS14LEY9Il8iKTsvW14wLTlfXS8udGVzdChhLm1hc2suc3Vic3RyKHgsMSkpJiZ4PGEubWFzay5sZW5ndGgmJjA8eDspeCs9OD09PXF8fDQ2PT09cT8tMToxO209bS5zdWJzdHIoMCx4KStGK20uc3Vic3RyKHgrMSk7aWYoIiI9PT10cmltKG0pKW09YS5tYXNrLnJlcGxhY2UoL1swLTldL2csIl8iKTtlbHNlIGlmKHg9PT1hLm1hc2subGVuZ3RoKXJldHVybiBuLnByZXZlbnREZWZhdWx0KCksITE7Zm9yKHgrPTg9PT1xfHw0Nj09PXE\/MDoxOy9bXjAtOV9dLy50ZXN0KGEubWFzay5zdWJzdHIoeCwxKSkmJng8YS5tYXNrLmxlbmd0aCYmMDx4Oyl4Kz04PT09cXx8NDY9PT1xPy0xOjE7ayhhLm1hc2ssbSk\/KHRoaXMudmFsdWU9bSxtPXRoaXMsKG09InN0cmluZyI9PT10eXBlb2YgbXx8bSBpbnN0YW5jZW9mIFN0cmluZz9kb2N1bWVudC5nZXRFbGVtZW50QnlJZChtKTptKSYmKG0uY3JlYXRlVGV4dFJhbmdlPyhtPW0uY3JlYXRlVGV4dFJhbmdlKCksbS5jb2xsYXBzZSghMCksCm0ubW92ZUVuZCgiY2hhcmFjdGVyIix4KSxtLm1vdmVTdGFydCgiY2hhcmFjdGVyIix4KSxtLnNlbGVjdCgpKTptLnNldFNlbGVjdGlvblJhbmdlJiZtLnNldFNlbGVjdGlvblJhbmdlKHgseCkpKToiIj09PXRyaW0obSk\/dGhpcy52YWx1ZT1hLm1hc2sucmVwbGFjZSgvWzAtOV0vZywiXyIpOmUudHJpZ2dlcigiZXJyb3JfaW5wdXQueGRzb2Z0Iil9ZWxzZSBpZigtMSE9PVs2NSw2Nyw4Niw5MCw4OV0uaW5kZXhPZihxKSYmdnx8LTEhPT1bMjcsMzgsNDAsMzcsMzksMTE2LDE3LDksMTNdLmluZGV4T2YocSkpcmV0dXJuITA7bi5wcmV2ZW50RGVmYXVsdCgpO3JldHVybiExfSkpKTtpZihhLnZhbGlkYXRlT25CbHVyKWUub2ZmKCJibHVyLnhkc29mdCIpLm9uKCJibHVyLnhkc29mdCIsZnVuY3Rpb24oKXtpZihhLmFsbG93QmxhbmsmJiF0cmltKGYodGhpcykudmFsKCkpLmxlbmd0aClmKHRoaXMpLnZhbChudWxsKSxjLmRhdGEoInhkc29mdF9kYXRldGltZSIpLmVtcHR5KCk7ZWxzZXtpZighRGF0ZS5wYXJzZURhdGUoZih0aGlzKS52YWwoKSwKYS5mb3JtYXQpKXt2YXIgbj0rW2YodGhpcykudmFsKClbMF0sZih0aGlzKS52YWwoKVsxXV0uam9pbigiIiksbT0rW2YodGhpcykudmFsKClbMl0sZih0aGlzKS52YWwoKVszXV0uam9pbigiIik7IWEuZGF0ZXBpY2tlciYmYS50aW1lcGlja2VyJiYwPD1uJiYyND5uJiYwPD1tJiY2MD5tP2YodGhpcykudmFsKFtuLG1dLm1hcChmdW5jdGlvbihxKXtyZXR1cm4gOTxxP3E6IjAiK3F9KS5qb2luKCI6IikpOmYodGhpcykudmFsKGwubm93KCkuZGF0ZUZvcm1hdChhLmZvcm1hdCkpfWMuZGF0YSgieGRzb2Z0X2RhdGV0aW1lIikuc2V0Q3VycmVudFRpbWUoZih0aGlzKS52YWwoKSl9Yy50cmlnZ2VyKCJjaGFuZ2VkYXRldGltZS54ZHNvZnQiKX0pO2EuZGF5T2ZXZWVrU3RhcnRQcmV2PTA9PT1hLmRheU9mV2Vla1N0YXJ0PzY6YS5kYXlPZldlZWtTdGFydC0xO2MudHJpZ2dlcigieGNoYW5nZS54ZHNvZnQiKS50cmlnZ2VyKCJhZnRlck9wZW4ueGRzb2Z0Iil9O2MuZGF0YSgib3B0aW9ucyIsCmEpLm9uKCJtb3VzZWRvd24ueGRzb2Z0IixmdW5jdGlvbihiKXtiLnN0b3BQcm9wYWdhdGlvbigpO2IucHJldmVudERlZmF1bHQoKTtOLmhpZGUoKTtCLmhpZGUoKTtyZXR1cm4hMX0pO3kuYXBwZW5kKHopO3kueGRzb2Z0U2Nyb2xsZXIoKTtjLm9uKCJhZnRlck9wZW4ueGRzb2Z0IixmdW5jdGlvbigpe3kueGRzb2Z0U2Nyb2xsZXIoKX0pO2MuYXBwZW5kKHUpLmFwcGVuZChDKTshMCE9PWEud2l0aG91dENvcHlyaWdodCYmYy5hcHBlbmQodCk7dS5hcHBlbmQodykuYXBwZW5kKEUpLmFwcGVuZChwKTtmKGEucGFyZW50SUQpLmFwcGVuZChjKTt2YXIgbD1uZXcgZnVuY3Rpb24oKXt2YXIgYj10aGlzO2Iubm93PWZ1bmN0aW9uKGQpe3ZhciBrPW5ldyBEYXRlO2lmKCFkJiZhLmRlZmF1bHREYXRlKXt2YXIgbj1iLnN0clRvRGF0ZVRpbWUoYS5kZWZhdWx0RGF0ZSk7ay5zZXRGdWxsWWVhcihuLmdldEZ1bGxZZWFyKCkpO2suc2V0TW9udGgobi5nZXRNb250aCgpKTtrLnNldERhdGUobi5nZXREYXRlKCkpfWEueWVhck9mZnNldCYmCmsuc2V0RnVsbFllYXIoay5nZXRGdWxsWWVhcigpK2EueWVhck9mZnNldCk7IWQmJmEuZGVmYXVsdFRpbWUmJihkPWIuc3RydG90aW1lKGEuZGVmYXVsdFRpbWUpLGsuc2V0SG91cnMoZC5nZXRIb3VycygpKSxrLnNldE1pbnV0ZXMoZC5nZXRNaW51dGVzKCkpKTtyZXR1cm4ga307Yi5pc1ZhbGlkRGF0ZT1mdW5jdGlvbihkKXtyZXR1cm4iW29iamVjdCBEYXRlXSIhPT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZCk\/ITE6IWlzTmFOKGQuZ2V0VGltZSgpKX07Yi5zZXRDdXJyZW50VGltZT1mdW5jdGlvbihkKXtiLmN1cnJlbnRUaW1lPSJzdHJpbmciPT09dHlwZW9mIGQ\/Yi5zdHJUb0RhdGVUaW1lKGQpOmIuaXNWYWxpZERhdGUoZCk\/ZDpiLm5vdygpO2MudHJpZ2dlcigieGNoYW5nZS54ZHNvZnQiKX07Yi5lbXB0eT1mdW5jdGlvbigpe2IuY3VycmVudFRpbWU9bnVsbH07Yi5nZXRDdXJyZW50VGltZT1mdW5jdGlvbihkKXtyZXR1cm4gYi5jdXJyZW50VGltZX07Yi5uZXh0TW9udGg9CmZ1bmN0aW9uKCl7aWYodm9pZCAwPT09Yi5jdXJyZW50VGltZXx8bnVsbD09PWIuY3VycmVudFRpbWUpYi5jdXJyZW50VGltZT1iLm5vdygpO3ZhciBkPWIuY3VycmVudFRpbWUuZ2V0TW9udGgoKSsxOzEyPT09ZCYmKGIuY3VycmVudFRpbWUuc2V0RnVsbFllYXIoYi5jdXJyZW50VGltZS5nZXRGdWxsWWVhcigpKzEpLGQ9MCk7dmFyIGs9Yi5jdXJyZW50VGltZS5nZXRGdWxsWWVhcigpO2IuY3VycmVudFRpbWUuc2V0RGF0ZShNYXRoLm1pbigobmV3IERhdGUoYi5jdXJyZW50VGltZS5nZXRGdWxsWWVhcigpLGQrMSwwKSkuZ2V0RGF0ZSgpLGIuY3VycmVudFRpbWUuZ2V0RGF0ZSgpKSk7Yi5jdXJyZW50VGltZS5zZXRNb250aChkKTthLm9uQ2hhbmdlTW9udGgmJmlzRnVuY3Rpb24oYS5vbkNoYW5nZU1vbnRoKSYmYS5vbkNoYW5nZU1vbnRoLmNhbGwoYyxsLmN1cnJlbnRUaW1lLGMuZGF0YSgiaW5wdXQiKSk7ayE9PWIuY3VycmVudFRpbWUuZ2V0RnVsbFllYXIoKSYmaXNGdW5jdGlvbihhLm9uQ2hhbmdlWWVhcikmJgphLm9uQ2hhbmdlWWVhci5jYWxsKGMsbC5jdXJyZW50VGltZSxjLmRhdGEoImlucHV0IikpO2MudHJpZ2dlcigieGNoYW5nZS54ZHNvZnQiKTtyZXR1cm4gZH07Yi5wcmV2TW9udGg9ZnVuY3Rpb24oKXtpZih2b2lkIDA9PT1iLmN1cnJlbnRUaW1lfHxudWxsPT09Yi5jdXJyZW50VGltZSliLmN1cnJlbnRUaW1lPWIubm93KCk7dmFyIGQ9Yi5jdXJyZW50VGltZS5nZXRNb250aCgpLTE7LTE9PT1kJiYoYi5jdXJyZW50VGltZS5zZXRGdWxsWWVhcihiLmN1cnJlbnRUaW1lLmdldEZ1bGxZZWFyKCktMSksZD0xMSk7Yi5jdXJyZW50VGltZS5zZXREYXRlKE1hdGgubWluKChuZXcgRGF0ZShiLmN1cnJlbnRUaW1lLmdldEZ1bGxZZWFyKCksZCsxLDApKS5nZXREYXRlKCksYi5jdXJyZW50VGltZS5nZXREYXRlKCkpKTtiLmN1cnJlbnRUaW1lLnNldE1vbnRoKGQpO2Eub25DaGFuZ2VNb250aCYmaXNGdW5jdGlvbihhLm9uQ2hhbmdlTW9udGgpJiZhLm9uQ2hhbmdlTW9udGguY2FsbChjLGwuY3VycmVudFRpbWUsCmMuZGF0YSgiaW5wdXQiKSk7Yy50cmlnZ2VyKCJ4Y2hhbmdlLnhkc29mdCIpO3JldHVybiBkfTtiLmdldFdlZWtPZlllYXI9ZnVuY3Rpb24oZCl7dmFyIGs9bmV3IERhdGUoZC5nZXRGdWxsWWVhcigpLDAsMSk7cmV0dXJuIE1hdGguY2VpbCgoKGQtaykvODY0RTUray5nZXREYXkoKSsxKS83KX07Yi5zdHJUb0RhdGVUaW1lPWZ1bmN0aW9uKGQpe3ZhciBrO2lmKGQmJmQgaW5zdGFuY2VvZiBEYXRlJiZiLmlzVmFsaWREYXRlKGQpKXJldHVybiBkOyhrPS9eKFwrfFwtKSguKikkLy5leGVjKGQpKSYmKGtbMl09RGF0ZS5wYXJzZURhdGUoa1syXSxhLmZvcm1hdERhdGUpKTtrJiZrWzJdPyhkPWtbMl0uZ2V0VGltZSgpLTZFNCprWzJdLmdldFRpbWV6b25lT2Zmc2V0KCksaz1uZXcgRGF0ZShiLm5vdyghMCkuZ2V0VGltZSgpK3BhcnNlSW50KGtbMV0rIjEiLDEwKSpkKSk6az1kP0RhdGUucGFyc2VEYXRlKGQsYS5mb3JtYXQpOmIubm93KCk7Yi5pc1ZhbGlkRGF0ZShrKXx8KGs9Yi5ub3coKSk7CnJldHVybiBrfTtiLnN0clRvRGF0ZT1mdW5jdGlvbihkKXtpZihkJiZkIGluc3RhbmNlb2YgRGF0ZSYmYi5pc1ZhbGlkRGF0ZShkKSlyZXR1cm4gZDtkPWQ\/RGF0ZS5wYXJzZURhdGUoZCxhLmZvcm1hdERhdGUpOmIubm93KCEwKTtiLmlzVmFsaWREYXRlKGQpfHwoZD1iLm5vdyghMCkpO3JldHVybiBkfTtiLnN0cnRvdGltZT1mdW5jdGlvbihkKXtpZihkJiZkIGluc3RhbmNlb2YgRGF0ZSYmYi5pc1ZhbGlkRGF0ZShkKSlyZXR1cm4gZDtkPWQ\/RGF0ZS5wYXJzZURhdGUoZCxhLmZvcm1hdFRpbWUpOmIubm93KCEwKTtiLmlzVmFsaWREYXRlKGQpfHwoZD1iLm5vdyghMCkpO3JldHVybiBkfTtiLnN0cj1mdW5jdGlvbigpe3JldHVybiBiLmN1cnJlbnRUaW1lLmRhdGVGb3JtYXQoYS5mb3JtYXQpfTtiLmN1cnJlbnRUaW1lPXRoaXMubm93KCl9O3Aub24oImNsaWNrIixmdW5jdGlvbihiKXtiLnByZXZlbnREZWZhdWx0KCk7Yy5kYXRhKCJjaGFuZ2VkIiwhMCk7bC5zZXRDdXJyZW50VGltZShoKCkpOwplLnZhbChsLnN0cigpKTtjLnRyaWdnZXIoImNsb3NlLnhkc29mdCIpfSk7dy5maW5kKCIueGRzb2Z0X3RvZGF5X2J1dHRvbiIpLm9uKCJtb3VzZWRvd24ueGRzb2Z0IixmdW5jdGlvbigpe2MuZGF0YSgiY2hhbmdlZCIsITApO2wuc2V0Q3VycmVudFRpbWUoMCk7Yy50cmlnZ2VyKCJhZnRlck9wZW4ueGRzb2Z0Iil9KS5vbigiZGJsY2xpY2sueGRzb2Z0IixmdW5jdGlvbigpe3ZhciBiPWwuZ2V0Q3VycmVudFRpbWUoKTtiPW5ldyBEYXRlKGIuZ2V0RnVsbFllYXIoKSxiLmdldE1vbnRoKCksYi5nZXREYXRlKCkpO3ZhciBkPWwuc3RyVG9EYXRlKGEubWluRGF0ZSk7ZD1uZXcgRGF0ZShkLmdldEZ1bGxZZWFyKCksZC5nZXRNb250aCgpLGQuZ2V0RGF0ZSgpKTtiPGR8fChkPWwuc3RyVG9EYXRlKGEubWF4RGF0ZSksZD1uZXcgRGF0ZShkLmdldEZ1bGxZZWFyKCksZC5nZXRNb250aCgpLGQuZ2V0RGF0ZSgpKSxiPmR8fChlLnZhbChsLnN0cigpKSxlLnRyaWdnZXIoImNoYW5nZSIpLGMudHJpZ2dlcigiY2xvc2UueGRzb2Z0IikpKX0pOwp3LmZpbmQoIi54ZHNvZnRfcHJldiwueGRzb2Z0X25leHQiKS5vbigibW91c2Vkb3duLnhkc29mdCIsZnVuY3Rpb24oKXt2YXIgYj1mKHRoaXMpLGQ9MCxrPSExOyhmdW5jdGlvbiBxKG0pe2IuaGFzQ2xhc3MoYS5uZXh0KT9sLm5leHRNb250aCgpOmIuaGFzQ2xhc3MoYS5wcmV2KSYmbC5wcmV2TW9udGgoKTthLm1vbnRoQ2hhbmdlU3Bpbm5lciYmKGt8fChkPXNldFRpbWVvdXQocSxtfHwxMDApKSl9KSg1MDApO2YoW2RvY3VtZW50LmJvZHksd2luZG93XSkub24oIm1vdXNldXAueGRzb2Z0IixmdW5jdGlvbiBxKCl7Y2xlYXJUaW1lb3V0KGQpO2s9ITA7ZihbZG9jdW1lbnQuYm9keSx3aW5kb3ddKS5vZmYoIm1vdXNldXAueGRzb2Z0IixxKX0pfSk7Qy5maW5kKCIueGRzb2Z0X3ByZXYsLnhkc29mdF9uZXh0Iikub24oIm1vdXNlZG93bi54ZHNvZnQiLGZ1bmN0aW9uKCl7dmFyIGI9Zih0aGlzKSxkPTAsaz0hMSxuPTExMDsoZnVuY3Rpb24geChxKXt2YXIgRj15WzBdLmNsaWVudEhlaWdodCwKQT16WzBdLm9mZnNldEhlaWdodCxIPU1hdGguYWJzKHBhcnNlSW50KHouY3NzKCJtYXJnaW5Ub3AiKSwxMCkpO2IuaGFzQ2xhc3MoYS5uZXh0KSYmQS1GLWEudGltZUhlaWdodEluVGltZVBpY2tlcj49SD96LmNzcygibWFyZ2luVG9wIiwiLSIrKEgrYS50aW1lSGVpZ2h0SW5UaW1lUGlja2VyKSsicHgiKTpiLmhhc0NsYXNzKGEucHJldikmJjA8PUgtYS50aW1lSGVpZ2h0SW5UaW1lUGlja2VyJiZ6LmNzcygibWFyZ2luVG9wIiwiLSIrKEgtYS50aW1lSGVpZ2h0SW5UaW1lUGlja2VyKSsicHgiKTt5LnRyaWdnZXIoInNjcm9sbF9lbGVtZW50Lnhkc29mdF9zY3JvbGxlciIsW01hdGguYWJzKHBhcnNlSW50KHouY3NzKCJtYXJnaW5Ub3AiKSwxMCkvKEEtRikpXSk7bj0xMDxuPzEwOm4tMTA7a3x8KGQ9c2V0VGltZW91dCh4LHF8fG4pKX0pKDUwMCk7ZihbZG9jdW1lbnQuYm9keSx3aW5kb3ddKS5vbigibW91c2V1cC54ZHNvZnQiLGZ1bmN0aW9uIHgoKXtjbGVhclRpbWVvdXQoZCk7az0hMDsKZihbZG9jdW1lbnQuYm9keSx3aW5kb3ddKS5vZmYoIm1vdXNldXAueGRzb2Z0Iix4KX0pfSk7dmFyIGJhPTA7Yy5vbigieGNoYW5nZS54ZHNvZnQiLGZ1bmN0aW9uKGIpe2NsZWFyVGltZW91dChiYSk7YmE9c2V0VGltZW91dChmdW5jdGlvbigpe2lmKHZvaWQgMD09PWwuY3VycmVudFRpbWV8fG51bGw9PT1sLmN1cnJlbnRUaW1lKWwuY3VycmVudFRpbWU9bC5ub3coKTtmb3IodmFyIGQ9IiIsaz1uZXcgRGF0ZShsLmN1cnJlbnRUaW1lLmdldEZ1bGxZZWFyKCksbC5jdXJyZW50VGltZS5nZXRNb250aCgpLDEsMTIsMCwwKSxuPTAsbSxxPWwubm93KCkseD0hMSxGPSExLEE9W10sSD0hMCxYPSIiLFA9IiIsWTtrLmdldERheSgpIT09YS5kYXlPZldlZWtTdGFydDspay5zZXREYXRlKGsuZ2V0RGF0ZSgpLTEpO2QrPSI8dGFibGU+PHRoZWFkPjx0cj4iO2Eud2Vla3MmJihkKz0iPHRoPjwvdGg+Iik7Zm9yKG09MDs3Pm07bSs9MSlkKz0iPHRoPiIrYS5pMThuW0ddLmRheU9mV2Vla1Nob3J0WyhtKwphLmRheU9mV2Vla1N0YXJ0KSU3XSsiPC90aD4iO2QrPSI8L3RyPjwvdGhlYWQ+PHRib2R5PiI7ITEhPT1hLm1heERhdGUmJih4PWwuc3RyVG9EYXRlKGEubWF4RGF0ZSkseD1uZXcgRGF0ZSh4LmdldEZ1bGxZZWFyKCkseC5nZXRNb250aCgpLHguZ2V0RGF0ZSgpLDIzLDU5LDU5LDk5OSkpO2ZvcighMSE9PWEubWluRGF0ZSYmKEY9bC5zdHJUb0RhdGUoYS5taW5EYXRlKSxGPW5ldyBEYXRlKEYuZ2V0RnVsbFllYXIoKSxGLmdldE1vbnRoKCksRi5nZXREYXRlKCkpKTtuPGwuY3VycmVudFRpbWUuY291bnREYXlzSW5Nb250aCgpfHxrLmdldERheSgpIT09YS5kYXlPZldlZWtTdGFydHx8bC5jdXJyZW50VGltZS5nZXRNb250aCgpPT09ay5nZXRNb250aCgpOyl7QT1bXTtuKz0xO3ZhciBSPWsuZ2V0RGF5KCk7bT1rLmdldERhdGUoKTtQPWsuZ2V0RnVsbFllYXIoKTt2YXIgUT1rLmdldE1vbnRoKCksZGE9bC5nZXRXZWVrT2ZZZWFyKGspO1k9IiI7QS5wdXNoKCJ4ZHNvZnRfZGF0ZSIpO3ZhciBWPQphLmJlZm9yZVNob3dEYXkmJmlzRnVuY3Rpb24oYS5iZWZvcmVTaG93RGF5LmNhbGwpP2EuYmVmb3JlU2hvd0RheS5jYWxsKGMsayk6bnVsbDshMSE9PXgmJms+eHx8ITEhPT1GJiZrPEZ8fFYmJiExPT09VlswXT9BLnB1c2goInhkc29mdF9kaXNhYmxlZCIpOi0xIT09YS5kaXNhYmxlZERhdGVzLmluZGV4T2Yoay5kYXRlRm9ybWF0KGEuZm9ybWF0RGF0ZSkpP0EucHVzaCgieGRzb2Z0X2Rpc2FibGVkIik6LTEhPT1hLmRpc2FibGVkV2Vla0RheXMuaW5kZXhPZihSKSYmQS5wdXNoKCJ4ZHNvZnRfZGlzYWJsZWQiKTtWJiYiIiE9PVZbMV0mJkEucHVzaChWWzFdKTtsLmN1cnJlbnRUaW1lLmdldE1vbnRoKCkhPT1RJiZBLnB1c2goInhkc29mdF9vdGhlcl9tb250aCIpOyhhLmRlZmF1bHRTZWxlY3R8fGMuZGF0YSgiY2hhbmdlZCIpKSYmbC5jdXJyZW50VGltZS5kYXRlRm9ybWF0KGEuZm9ybWF0RGF0ZSk9PT1rLmRhdGVGb3JtYXQoYS5mb3JtYXREYXRlKSYmQS5wdXNoKCJ4ZHNvZnRfY3VycmVudCIpOwpxLmRhdGVGb3JtYXQoYS5mb3JtYXREYXRlKT09PWsuZGF0ZUZvcm1hdChhLmZvcm1hdERhdGUpJiZBLnB1c2goInhkc29mdF90b2RheSIpOzAhPT1rLmdldERheSgpJiY2IT09ay5nZXREYXkoKSYmLTE9PT1hLndlZWtlbmRzLmluZGV4T2Yoay5kYXRlRm9ybWF0KGEuZm9ybWF0RGF0ZSkpfHxBLnB1c2goInhkc29mdF93ZWVrZW5kIik7dm9pZCAwIT09YS5oaWdobGlnaHRlZERhdGVzW2suZGF0ZUZvcm1hdChhLmZvcm1hdERhdGUpXSYmKFI9YS5oaWdobGlnaHRlZERhdGVzW2suZGF0ZUZvcm1hdChhLmZvcm1hdERhdGUpXSxBLnB1c2godm9pZCAwPT09Ui5zdHlsZT8ieGRzb2Z0X2hpZ2hsaWdodGVkX2RlZmF1bHQiOlIuc3R5bGUpLFk9dm9pZCAwPT09Ui5kZXNjPyIiOlIuZGVzYyk7YS5iZWZvcmVTaG93RGF5JiZpc0Z1bmN0aW9uKGEuYmVmb3JlU2hvd0RheSkmJkEucHVzaChhLmJlZm9yZVNob3dEYXkoaykpO0gmJihkKz0iPHRyPiIsSD0hMSxhLndlZWtzJiYoZCs9Ijx0aD4iK2RhKwoiPC90aD4iKSk7ZCs9Jzx0ZCBkYXRhLWRhdGU9IicrbSsnIiBkYXRhLW1vbnRoPSInK1ErJyIgZGF0YS15ZWFyPSInK1ArJyIgY2xhc3M9Inhkc29mdF9kYXRlIHhkc29mdF9kYXlfb2Zfd2Vlaycray5nZXREYXkoKSsiICIrQS5qb2luKCIgIikrJyIgdGl0bGU9IicrWSsnIj48ZGl2PicrbSsiPC9kaXY+PC90ZD4iO2suZ2V0RGF5KCk9PT1hLmRheU9mV2Vla1N0YXJ0UHJldiYmKGQrPSI8L3RyPiIsSD0hMCk7ay5zZXREYXRlKG0rMSl9RS5odG1sKGQrIjwvdGJvZHk+PC90YWJsZT4iKTt3LmZpbmQoIi54ZHNvZnRfbGFiZWwgc3BhbiIpLmVxKDApLnRleHQoYS5pMThuW0ddLm1vbnRoc1tsLmN1cnJlbnRUaW1lLmdldE1vbnRoKCldKTt3LmZpbmQoIi54ZHNvZnRfbGFiZWwgc3BhbiIpLmVxKDEpLnRleHQobC5jdXJyZW50VGltZS5nZXRGdWxsWWVhcigpKTtRPVA9WD0iIjtkPWZ1bmN0aW9uKFMsVCl7dmFyIEs9bC5ub3coKSxjYT1hLmFsbG93VGltZXMmJkFycmF5LmlzQXJyYXkoYS5hbGxvd1RpbWVzKSYmCmEuYWxsb3dUaW1lcy5sZW5ndGg7Sy5zZXRIb3VycyhTKTtTPXBhcnNlSW50KEsuZ2V0SG91cnMoKSwxMCk7Sy5zZXRNaW51dGVzKFQpO1Q9cGFyc2VJbnQoSy5nZXRNaW51dGVzKCksMTApO3ZhciBMPW5ldyBEYXRlKGwuY3VycmVudFRpbWUpO0wuc2V0SG91cnMoUyk7TC5zZXRNaW51dGVzKFQpO0E9W107KCExIT09YS5taW5EYXRlVGltZSYmYS5taW5EYXRlVGltZT5MfHwhMSE9PWEubWF4VGltZSYmbC5zdHJ0b3RpbWUoYS5tYXhUaW1lKS5nZXRUaW1lKCk8Sy5nZXRUaW1lKCl8fCExIT09YS5taW5UaW1lJiZsLnN0cnRvdGltZShhLm1pblRpbWUpLmdldFRpbWUoKT5LLmdldFRpbWUoKSkmJkEucHVzaCgieGRzb2Z0X2Rpc2FibGVkIik7KCExIT09YS5taW5EYXRlVGltZSYmYS5taW5EYXRlVGltZT5MfHwhMSE9PWEuZGlzYWJsZWRNaW5UaW1lJiZLLmdldFRpbWUoKT5sLnN0cnRvdGltZShhLmRpc2FibGVkTWluVGltZSkuZ2V0VGltZSgpJiYhMSE9PWEuZGlzYWJsZWRNYXhUaW1lJiYKSy5nZXRUaW1lKCk8bC5zdHJ0b3RpbWUoYS5kaXNhYmxlZE1heFRpbWUpLmdldFRpbWUoKSkmJkEucHVzaCgieGRzb2Z0X2Rpc2FibGVkIik7TD1uZXcgRGF0ZShsLmN1cnJlbnRUaW1lKTtMLnNldEhvdXJzKHBhcnNlSW50KGwuY3VycmVudFRpbWUuZ2V0SG91cnMoKSwxMCkpO2NhfHxMLnNldE1pbnV0ZXMoTWF0aFthLnJvdW5kVGltZV0obC5jdXJyZW50VGltZS5nZXRNaW51dGVzKCkvYS5zdGVwKSphLnN0ZXApOyhhLmluaXRUaW1lfHxhLmRlZmF1bHRTZWxlY3R8fGMuZGF0YSgiY2hhbmdlZCIpKSYmTC5nZXRIb3VycygpPT09cGFyc2VJbnQoUywxMCkmJighY2EmJjU5PGEuc3RlcHx8TC5nZXRNaW51dGVzKCk9PT1wYXJzZUludChULDEwKSkmJihhLmRlZmF1bHRTZWxlY3R8fGMuZGF0YSgiY2hhbmdlZCIpP0EucHVzaCgieGRzb2Z0X2N1cnJlbnQiKTphLmluaXRUaW1lJiZBLnB1c2goInhkc29mdF9pbml0X3RpbWUiKSk7cGFyc2VJbnQocS5nZXRIb3VycygpLDEwKT09PXBhcnNlSW50KFMsCjEwKSYmcGFyc2VJbnQocS5nZXRNaW51dGVzKCksMTApPT09cGFyc2VJbnQoVCwxMCkmJkEucHVzaCgieGRzb2Z0X3RvZGF5Iik7WCs9JzxkaXYgY2xhc3M9Inhkc29mdF90aW1lICcrQS5qb2luKCIgIikrJyIgZGF0YS1ob3VyPSInK1MrJyIgZGF0YS1taW51dGU9IicrVCsnIj4nK0suZGF0ZUZvcm1hdChhLmZvcm1hdFRpbWUpKyI8L2Rpdj4ifTtpZihhLmFsbG93VGltZXMmJkFycmF5LmlzQXJyYXkoYS5hbGxvd1RpbWVzKSYmYS5hbGxvd1RpbWVzLmxlbmd0aClmb3Iobj0wO248YS5hbGxvd1RpbWVzLmxlbmd0aDtuKz0xKVA9bC5zdHJ0b3RpbWUoYS5hbGxvd1RpbWVzW25dKS5nZXRIb3VycygpLFE9bC5zdHJ0b3RpbWUoYS5hbGxvd1RpbWVzW25dKS5nZXRNaW51dGVzKCksZChQLFEpO2Vsc2UgZm9yKG09bj0wO248KGEuaG91cnMxMj8xMjoyNCk7bis9MSlmb3IobT0wOzYwPm07bSs9YS5zdGVwKVA9KDEwPm4\/IjAiOiIiKStuLFE9KDEwPm0\/IjAiOiIiKSttLGQoUCxRKTt6Lmh0bWwoWCk7CnI9IiI7bj0wO2ZvcihuPXBhcnNlSW50KGEueWVhclN0YXJ0LDEwKSthLnllYXJPZmZzZXQ7bjw9cGFyc2VJbnQoYS55ZWFyRW5kLDEwKSthLnllYXJPZmZzZXQ7bis9MSlyKz0nPGRpdiBjbGFzcz0ieGRzb2Z0X29wdGlvbiAnKyhsLmN1cnJlbnRUaW1lLmdldEZ1bGxZZWFyKCk9PT1uPyJ4ZHNvZnRfY3VycmVudCI6IiIpKyciIGRhdGEtdmFsdWU9IicrbisnIj4nK24rIjwvZGl2PiI7Ti5jaGlsZHJlbigpLmVxKDApLmh0bWwocik7bj1wYXJzZUludChhLm1vbnRoU3RhcnQsMTApO2ZvcihyPSIiO248PXBhcnNlSW50KGEubW9udGhFbmQsMTApO24rPTEpcis9JzxkaXYgY2xhc3M9Inhkc29mdF9vcHRpb24gJysobC5jdXJyZW50VGltZS5nZXRNb250aCgpPT09bj8ieGRzb2Z0X2N1cnJlbnQiOiIiKSsnIiBkYXRhLXZhbHVlPSInK24rJyI+JythLmkxOG5bR10ubW9udGhzW25dKyI8L2Rpdj4iO0IuY2hpbGRyZW4oKS5lcSgwKS5odG1sKHIpO2YoYykudHJpZ2dlcigiZ2VuZXJhdGUueGRzb2Z0Iil9LAoxMCk7Yi5zdG9wUHJvcGFnYXRpb24oKX0pLm9uKCJhZnRlck9wZW4ueGRzb2Z0IixmdW5jdGlvbigpe2lmKGEudGltZXBpY2tlcil7dmFyIGI7ei5maW5kKCIueGRzb2Z0X2N1cnJlbnQiKS5sZW5ndGg\/Yj0iLnhkc29mdF9jdXJyZW50Ijp6LmZpbmQoIi54ZHNvZnRfaW5pdF90aW1lIikubGVuZ3RoJiYoYj0iLnhkc29mdF9pbml0X3RpbWUiKTtpZihiKXt2YXIgZD15WzBdLmNsaWVudEhlaWdodCxrPXpbMF0ub2Zmc2V0SGVpZ2h0O2I9ei5maW5kKGIpLmluZGV4KCkqYS50aW1lSGVpZ2h0SW5UaW1lUGlja2VyKzE7ay1kPGImJihiPWstZCk7eS50cmlnZ2VyKCJzY3JvbGxfZWxlbWVudC54ZHNvZnRfc2Nyb2xsZXIiLFtwYXJzZUludChiLDEwKS8oay1kKV0pfWVsc2UgeS50cmlnZ2VyKCJzY3JvbGxfZWxlbWVudC54ZHNvZnRfc2Nyb2xsZXIiLFswXSl9fSk7dmFyIFo9MDtFLm9uKCJjbGljay54ZHNvZnQiLCJ0ZCIsZnVuY3Rpb24oYil7Yi5zdG9wUHJvcGFnYXRpb24oKTtaKz0xO3ZhciBkPQpmKHRoaXMpLGs9bC5jdXJyZW50VGltZTtpZih2b2lkIDA9PT1rfHxudWxsPT09aylsLmN1cnJlbnRUaW1lPWwubm93KCksaz1sLmN1cnJlbnRUaW1lO2lmKGQuaGFzQ2xhc3MoInhkc29mdF9kaXNhYmxlZCIpKXJldHVybiExO2suc2V0RGF0ZSgxKTtrLnNldEZ1bGxZZWFyKGQuZGF0YSgieWVhciIpKTtrLnNldE1vbnRoKGQuZGF0YSgibW9udGgiKSk7ay5zZXREYXRlKGQuZGF0YSgiZGF0ZSIpKTtjLnRyaWdnZXIoInNlbGVjdC54ZHNvZnQiLFtrXSk7ZS52YWwobC5zdHIoKSk7YS5vblNlbGVjdERhdGUmJmlzRnVuY3Rpb24oYS5vblNlbGVjdERhdGUpJiZhLm9uU2VsZWN0RGF0ZS5jYWxsKGMsbC5jdXJyZW50VGltZSxjLmRhdGEoImlucHV0IiksYik7Yy5kYXRhKCJjaGFuZ2VkIiwhMCk7Yy50cmlnZ2VyKCJ4Y2hhbmdlLnhkc29mdCIpO2MudHJpZ2dlcigiY2hhbmdlZGF0ZXRpbWUueGRzb2Z0Iik7KDE8Wnx8ITA9PT1hLmNsb3NlT25EYXRlU2VsZWN0fHwhMT09PWEuY2xvc2VPbkRhdGVTZWxlY3QmJgohYS50aW1lcGlja2VyKSYmIWEuaW5saW5lJiZjLnRyaWdnZXIoImNsb3NlLnhkc29mdCIpO3NldFRpbWVvdXQoZnVuY3Rpb24oKXtaPTB9LDIwMCl9KTt6Lm9uKCJjbGljay54ZHNvZnQiLCJkaXYiLGZ1bmN0aW9uKGIpe2Iuc3RvcFByb3BhZ2F0aW9uKCk7dmFyIGQ9Zih0aGlzKSxrPWwuY3VycmVudFRpbWU7aWYodm9pZCAwPT09a3x8bnVsbD09PWspbC5jdXJyZW50VGltZT1sLm5vdygpLGs9bC5jdXJyZW50VGltZTtpZihkLmhhc0NsYXNzKCJ4ZHNvZnRfZGlzYWJsZWQiKSlyZXR1cm4hMTtrLnNldEhvdXJzKGQuZGF0YSgiaG91ciIpKTtrLnNldE1pbnV0ZXMoZC5kYXRhKCJtaW51dGUiKSk7Yy50cmlnZ2VyKCJzZWxlY3QueGRzb2Z0Iixba10pO2MuZGF0YSgiaW5wdXQiKS52YWwobC5zdHIoKSk7YS5vblNlbGVjdFRpbWUmJmlzRnVuY3Rpb24oYS5vblNlbGVjdFRpbWUpJiZhLm9uU2VsZWN0VGltZS5jYWxsKGMsbC5jdXJyZW50VGltZSxjLmRhdGEoImlucHV0IiksYik7Yy5kYXRhKCJjaGFuZ2VkIiwKITApO2MudHJpZ2dlcigieGNoYW5nZS54ZHNvZnQiKTtjLnRyaWdnZXIoImNoYW5nZWRhdGV0aW1lLnhkc29mdCIpOyEwIT09YS5pbmxpbmUmJiEwPT09YS5jbG9zZU9uVGltZVNlbGVjdCYmYy50cmlnZ2VyKCJjbG9zZS54ZHNvZnQiKX0pO3Uub24oIm1vdXNld2hlZWwueGRzb2Z0IixmdW5jdGlvbihiKXtpZighYS5zY3JvbGxNb250aClyZXR1cm4hMDswPmIuZGVsdGFZP2wubmV4dE1vbnRoKCk6bC5wcmV2TW9udGgoKTtyZXR1cm4hMX0pO2Uub24oIm1vdXNld2hlZWwueGRzb2Z0IixmdW5jdGlvbihiKXtpZighYS5zY3JvbGxJbnB1dClyZXR1cm4hMDtpZighYS5kYXRlcGlja2VyJiZhLnRpbWVwaWNrZXIpcmV0dXJuIFU9ei5maW5kKCIueGRzb2Z0X2N1cnJlbnQiKS5sZW5ndGg\/ei5maW5kKCIueGRzb2Z0X2N1cnJlbnQiKS5lcSgwKS5pbmRleCgpOjAsMDw9VStiLmRlbHRhWSYmVStiLmRlbHRhWTx6LmNoaWxkcmVuKCkubGVuZ3RoJiYoVSs9Yi5kZWx0YVkpLHouY2hpbGRyZW4oKS5lcShVKS5sZW5ndGgmJgp6LmNoaWxkcmVuKCkuZXEoVSkudHJpZ2dlcigibW91c2Vkb3duIiksITE7aWYoYS5kYXRlcGlja2VyJiYhYS50aW1lcGlja2VyKXJldHVybiB1LnRyaWdnZXIoYixbYi5kZWx0YVksYi5kZWx0YVgsYi5kZWx0YVldKSxlLnZhbCYmZS52YWwobC5zdHIoKSksYy50cmlnZ2VyKCJjaGFuZ2VkYXRldGltZS54ZHNvZnQiKSwhMX0pO2Mub24oImNoYW5nZWRhdGV0aW1lLnhkc29mdCIsZnVuY3Rpb24oYil7aWYoYS5vbkNoYW5nZURhdGVUaW1lJiZpc0Z1bmN0aW9uKGEub25DaGFuZ2VEYXRlVGltZSkpe3ZhciBkPWMuZGF0YSgiaW5wdXQiKTthLm9uQ2hhbmdlRGF0ZVRpbWUuY2FsbChjLGwuY3VycmVudFRpbWUsZCxiKTtkZWxldGUgYS52YWx1ZTtkLnRyaWdnZXIoImNoYW5nZSIpfX0pLm9uKCJnZW5lcmF0ZS54ZHNvZnQiLGZ1bmN0aW9uKCl7YS5vbkdlbmVyYXRlJiZpc0Z1bmN0aW9uKGEub25HZW5lcmF0ZSkmJmEub25HZW5lcmF0ZS5jYWxsKGMsbC5jdXJyZW50VGltZSxjLmRhdGEoImlucHV0IikpOwpPJiYoYy50cmlnZ2VyKCJhZnRlck9wZW4ueGRzb2Z0IiksTz0hMSl9KS5vbigiY2xpY2sueGRzb2Z0IixmdW5jdGlvbihiKXtiLnN0b3BQcm9wYWdhdGlvbigpfSk7dmFyIFU9MCxhYT1mdW5jdGlvbigpe3ZhciBiPWMuZGF0YSgiaW5wdXQiKS5vZmZzZXQoKSxkPWIudG9wK2MuZGF0YSgiaW5wdXQiKVswXS5vZmZzZXRIZWlnaHQtMSxrPWIubGVmdCxuPSJhYnNvbHV0ZSI7InJ0bCI9PWMuZGF0YSgiaW5wdXQiKS5wYXJlbnQoKS5jc3MoImRpcmVjdGlvbiIpJiYoay09Yy5vdXRlcldpZHRoKCktYy5kYXRhKCJpbnB1dCIpLm91dGVyV2lkdGgoKSk7YS5maXhlZD8oZC09Zih3aW5kb3cpLnNjcm9sbFRvcCgpLGstPWYod2luZG93KS5zY3JvbGxMZWZ0KCksbj0iZml4ZWQiKTooZCtjWzBdLm9mZnNldEhlaWdodD5mKHdpbmRvdykuaGVpZ2h0KCkrZih3aW5kb3cpLnNjcm9sbFRvcCgpJiYoZD1iLnRvcC1jWzBdLm9mZnNldEhlaWdodCsxKSwwPmQmJihkPTApLGsrY1swXS5vZmZzZXRXaWR0aD4KZih3aW5kb3cpLndpZHRoKCkmJihrPWYod2luZG93KS53aWR0aCgpLWNbMF0ub2Zmc2V0V2lkdGgpKTtiPWNbMF07ZG8gaWYoYj1iLnBhcmVudE5vZGUsInJlbGF0aXZlIj09PXdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGIpLmdldFByb3BlcnR5VmFsdWUoInBvc2l0aW9uIikmJmYod2luZG93KS53aWR0aCgpPj1iLm9mZnNldFdpZHRoKXtrLT0oZih3aW5kb3cpLndpZHRoKCktYi5vZmZzZXRXaWR0aCkvMjticmVha313aGlsZSgiSFRNTCIhPT1iLm5vZGVOYW1lKTtjLmNzcyh7bGVmdDprLHRvcDpkLHBvc2l0aW9uOm59KX07Yy5vbigib3Blbi54ZHNvZnQiLGZ1bmN0aW9uKGIpe3ZhciBkPSEwO2Eub25TaG93JiZpc0Z1bmN0aW9uKGEub25TaG93KSYmKGQ9YS5vblNob3cuY2FsbChjLGwuY3VycmVudFRpbWUsYy5kYXRhKCJpbnB1dCIpLGIpKTtpZighMSE9PWQmJihjLnNob3coKSxhYSgpLGYod2luZG93KS5vZmYoInJlc2l6ZS54ZHNvZnQiLGFhKS5vbigicmVzaXplLnhkc29mdCIsCmFhKSxhLmNsb3NlT25XaXRob3V0Q2xpY2spKWYoW2RvY3VtZW50LmJvZHksd2luZG93XSkub24oIm1vdXNlZG93bi54ZHNvZnQiLGZ1bmN0aW9uIG4oKXtjLnRyaWdnZXIoImNsb3NlLnhkc29mdCIpO2YoW2RvY3VtZW50LmJvZHksd2luZG93XSkub2ZmKCJtb3VzZWRvd24ueGRzb2Z0IixuKX0pfSkub24oImNsb3NlLnhkc29mdCIsZnVuY3Rpb24oYil7dmFyIGQ9ITA7dy5maW5kKCIueGRzb2Z0X21vbnRoLC54ZHNvZnRfeWVhciIpLmZpbmQoIi54ZHNvZnRfc2VsZWN0IikuaGlkZSgpO2Eub25DbG9zZSYmaXNGdW5jdGlvbihhLm9uQ2xvc2UpJiYoZD1hLm9uQ2xvc2UuY2FsbChjLGwuY3VycmVudFRpbWUsYy5kYXRhKCJpbnB1dCIpLGIpKTshMT09PWR8fGEub3BlbmVkfHxhLmlubGluZXx8Yy5oaWRlKCk7Yi5zdG9wUHJvcGFnYXRpb24oKX0pLm9uKCJ0b2dnbGUueGRzb2Z0IixmdW5jdGlvbihiKXtjLmlzKCI6dmlzaWJsZSIpP2MudHJpZ2dlcigiY2xvc2UueGRzb2Z0Iik6Yy50cmlnZ2VyKCJvcGVuLnhkc29mdCIpfSkuZGF0YSgiaW5wdXQiLAplKTtXPTA7Yy5kYXRhKCJ4ZHNvZnRfZGF0ZXRpbWUiLGwpO2Muc2V0T3B0aW9ucyhhKTtsLnNldEN1cnJlbnRUaW1lKGgoKSk7ZS5kYXRhKCJ4ZHNvZnRfZGF0ZXRpbWVwaWNrZXIiLGMpLm9uKCJvcGVuLnhkc29mdCBmb2N1c2luLnhkc29mdCBtb3VzZWRvd24ueGRzb2Z0IixmdW5jdGlvbihiKXtlLmlzKCI6ZGlzYWJsZWQiKXx8ZS5kYXRhKCJ4ZHNvZnRfZGF0ZXRpbWVwaWNrZXIiKS5pcygiOnZpc2libGUiKSYmYS5jbG9zZU9uSW5wdXRDbGlja3x8KGNsZWFyVGltZW91dChXKSxXPXNldFRpbWVvdXQoZnVuY3Rpb24oKXtlLmlzKCI6ZGlzYWJsZWQiKXx8KE89ITAsbC5zZXRDdXJyZW50VGltZShoKCkpLGMudHJpZ2dlcigib3Blbi54ZHNvZnQiKSl9LDEwMCkpfSkub24oImtleWRvd24ueGRzb2Z0IixmdW5jdGlvbihiKXtiPWIud2hpY2g7aWYoLTEhPT1bMTNdLmluZGV4T2YoYikmJmEuZW50ZXJMaWtlVGFiKXJldHVybiBiPWYoImlucHV0OnZpc2libGUsdGV4dGFyZWE6dmlzaWJsZSIpLApjLnRyaWdnZXIoImNsb3NlLnhkc29mdCIpLGIuZXEoYi5pbmRleCh0aGlzKSsxKS5mb2N1cygpLCExO2lmKC0xIT09WzldLmluZGV4T2YoYikpcmV0dXJuIGMudHJpZ2dlcigiY2xvc2UueGRzb2Z0IiksITB9KX07Zihkb2N1bWVudCkub2ZmKCJrZXlkb3duLnhkc29mdGN0cmwga2V5dXAueGRzb2Z0Y3RybCIpLm9uKCJrZXlkb3duLnhkc29mdGN0cmwiLGZ1bmN0aW9uKGUpezE3PT09ZS5rZXlDb2RlJiYodj0hMCl9KS5vbigia2V5dXAueGRzb2Z0Y3RybCIsZnVuY3Rpb24oZSl7MTc9PT1lLmtleUNvZGUmJih2PSExKX0pO3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgZT1mKHRoaXMpLmRhdGEoInhkc29mdF9kYXRldGltZXBpY2tlciIpO2lmKGUpe2lmKCJzdHJpbmciPT09dHlwZW9mIHIpc3dpdGNoKHIpe2Nhc2UgInNob3ciOmYodGhpcykuc2VsZWN0KCkuZm9jdXMoKTtlLnRyaWdnZXIoIm9wZW4ueGRzb2Z0Iik7YnJlYWs7Y2FzZSAiaGlkZSI6ZS50cmlnZ2VyKCJjbG9zZS54ZHNvZnQiKTsKYnJlYWs7Y2FzZSAidG9nZ2xlIjplLnRyaWdnZXIoInRvZ2dsZS54ZHNvZnQiKTticmVhaztjYXNlICJkZXN0cm95IjplPWYodGhpcyk7dmFyIGg9ZS5kYXRhKCJ4ZHNvZnRfZGF0ZXRpbWVwaWNrZXIiKTtoJiYoaC5kYXRhKCJ4ZHNvZnRfZGF0ZXRpbWUiLG51bGwpLGgucmVtb3ZlKCksZS5kYXRhKCJ4ZHNvZnRfZGF0ZXRpbWVwaWNrZXIiLG51bGwpLm9mZigiLnhkc29mdCIpLGYod2luZG93KS5vZmYoInJlc2l6ZS54ZHNvZnQiKSxmKFt3aW5kb3csZG9jdW1lbnQuYm9keV0pLm9mZigibW91c2Vkb3duLnhkc29mdCIpLGUudW5tb3VzZXdoZWVsJiZlLnVubW91c2V3aGVlbCgpKTticmVhaztjYXNlICJyZXNldCI6KHRoaXMudmFsdWU9dGhpcy5kZWZhdWx0VmFsdWUpJiZlLmRhdGEoInhkc29mdF9kYXRldGltZSIpLmlzVmFsaWREYXRlKERhdGUucGFyc2VEYXRlKHRoaXMudmFsdWUsYS5mb3JtYXQpKXx8ZS5kYXRhKCJjaGFuZ2VkIiwhMSk7ZS5kYXRhKCJ4ZHNvZnRfZGF0ZXRpbWUiKS5zZXRDdXJyZW50VGltZSh0aGlzLnZhbHVlKTsKYnJlYWs7Y2FzZSAidmFsaWRhdGUiOmU9ZS5kYXRhKCJpbnB1dCIpLGUudHJpZ2dlcigiYmx1ci54ZHNvZnQiKX1lbHNlIGUuc2V0T3B0aW9ucyhyKTtyZXR1cm4gMH0ic3RyaW5nIiE9PXR5cGVvZiByJiYoIWEubGF6eUluaXR8fGEub3Blbnx8YS5pbmxpbmU\/ZyhmKHRoaXMpKTpJKGYodGhpcykpKX0pfTtmLmZuLmRhdGV0aW1lcGlja2VyLmRlZmF1bHRzPUp9KTsKKGZ1bmN0aW9uKGYpeyJmdW5jdGlvbiI9PT10eXBlb2YgZGVmaW5lJiZkZWZpbmUuYW1kP2RlZmluZShbImpxdWVyeSJdLGYpOiJvYmplY3QiPT09dHlwZW9mIGV4cG9ydHM\/bW9kdWxlLmV4cG9ydHM9ZjpmKGpRdWVyeSl9KShmdW5jdGlvbihmKXtmdW5jdGlvbiBNKGUpe3ZhciBoPWV8fHdpbmRvdy5ldmVudCxjPXYuY2FsbChhcmd1bWVudHMsMSksdD0wLHU9MCx3PTAsRT0wO2U9Zi5ldmVudC5maXgoaCk7ZS50eXBlPSJtb3VzZXdoZWVsIjsiZGV0YWlsImluIGgmJih1PS0xKmguZGV0YWlsKTsid2hlZWxEZWx0YSJpbiBoJiYodT1oLndoZWVsRGVsdGEpOyJ3aGVlbERlbHRhWSJpbiBoJiYodT1oLndoZWVsRGVsdGFZKTsid2hlZWxEZWx0YVgiaW4gaCYmKHQ9LTEqaC53aGVlbERlbHRhWCk7ImF4aXMiaW4gaCYmaC5heGlzPT09aC5IT1JJWk9OVEFMX0FYSVMmJih0PS0xKnUsdT0wKTt2YXIgQz0wPT09dT90OnU7ImRlbHRhWSJpbiBoJiYoQz11PS0xKmguZGVsdGFZKTsiZGVsdGFYImluCmgmJih0PWguZGVsdGFYLDA9PT11JiYoQz0tMSp0KSk7aWYoMCE9PXV8fDAhPT10KXtpZigxPT09aC5kZWx0YU1vZGUpe3ZhciB5PWYuZGF0YSh0aGlzLCJtb3VzZXdoZWVsLWxpbmUtaGVpZ2h0Iik7Qyo9eTt1Kj15O3QqPXl9ZWxzZSAyPT09aC5kZWx0YU1vZGUmJih5PWYuZGF0YSh0aGlzLCJtb3VzZXdoZWVsLXBhZ2UtaGVpZ2h0IiksQyo9eSx1Kj15LHQqPXkpO3k9TWF0aC5tYXgoTWF0aC5hYnModSksTWF0aC5hYnModCkpO2lmKCFEfHx5PEQpRD15LGcuc2V0dGluZ3MuYWRqdXN0T2xkRGVsdGFzJiYibW91c2V3aGVlbCI9PT1oLnR5cGUmJjA9PT15JTEyMCYmKEQvPTQwKTtnLnNldHRpbmdzLmFkanVzdE9sZERlbHRhcyYmIm1vdXNld2hlZWwiPT09aC50eXBlJiYwPT09eSUxMjAmJihDLz00MCx0Lz00MCx1Lz00MCk7Qz1NYXRoWzE8PUM\/ImZsb29yIjoiY2VpbCJdKEMvRCk7dD1NYXRoWzE8PXQ\/ImZsb29yIjoiY2VpbCJdKHQvRCk7dT1NYXRoWzE8PXU\/ImZsb29yIjoiY2VpbCJdKHUvCkQpO2cuc2V0dGluZ3Mubm9ybWFsaXplT2Zmc2V0JiZ0aGlzLmdldEJvdW5kaW5nQ2xpZW50UmVjdCYmKGg9dGhpcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSx3PWUuY2xpZW50WC1oLmxlZnQsRT1lLmNsaWVudFktaC50b3ApO2UuZGVsdGFYPXQ7ZS5kZWx0YVk9dTtlLmRlbHRhRmFjdG9yPUQ7ZS5vZmZzZXRYPXc7ZS5vZmZzZXRZPUU7ZS5kZWx0YU1vZGU9MDtjLnVuc2hpZnQoZSxDLHQsdSk7YSYmY2xlYXJUaW1lb3V0KGEpO2E9c2V0VGltZW91dChKLDIwMCk7cmV0dXJuKGYuZXZlbnQuZGlzcGF0Y2h8fGYuZXZlbnQuaGFuZGxlKS5hcHBseSh0aGlzLGMpfX1mdW5jdGlvbiBKKCl7RD1udWxsfXZhciBHPVsid2hlZWwiLCJtb3VzZXdoZWVsIiwiRE9NTW91c2VTY3JvbGwiLCJNb3pNb3VzZVBpeGVsU2Nyb2xsIl0scj0ib253aGVlbCJpbiBkb2N1bWVudHx8OTw9ZG9jdW1lbnQuZG9jdW1lbnRNb2RlP1sid2hlZWwiXTpbIm1vdXNld2hlZWwiLCJEb21Nb3VzZVNjcm9sbCIsIk1vek1vdXNlUGl4ZWxTY3JvbGwiXSwKdj1BcnJheS5wcm90b3R5cGUuc2xpY2UsYSxEO2lmKGYuZXZlbnQuZml4SG9va3MpZm9yKHZhciBJPUcubGVuZ3RoO0k7KWYuZXZlbnQuZml4SG9va3NbR1stLUldXT1mLmV2ZW50Lm1vdXNlSG9va3M7dmFyIGc9Zi5ldmVudC5zcGVjaWFsLm1vdXNld2hlZWw9e3ZlcnNpb246IjMuMS4xMiIsc2V0dXA6ZnVuY3Rpb24oKXtpZih0aGlzLmFkZEV2ZW50TGlzdGVuZXIpZm9yKHZhciBlPXIubGVuZ3RoO2U7KXRoaXMuYWRkRXZlbnRMaXN0ZW5lcihyWy0tZV0sTSwhMSk7ZWxzZSB0aGlzLm9ubW91c2V3aGVlbD1NO2YuZGF0YSh0aGlzLCJtb3VzZXdoZWVsLWxpbmUtaGVpZ2h0IixnLmdldExpbmVIZWlnaHQodGhpcykpO2YuZGF0YSh0aGlzLCJtb3VzZXdoZWVsLXBhZ2UtaGVpZ2h0IixnLmdldFBhZ2VIZWlnaHQodGhpcykpfSx0ZWFyZG93bjpmdW5jdGlvbigpe2lmKHRoaXMucmVtb3ZlRXZlbnRMaXN0ZW5lcilmb3IodmFyIGU9ci5sZW5ndGg7ZTspdGhpcy5yZW1vdmVFdmVudExpc3RlbmVyKHJbLS1lXSwKTSwhMSk7ZWxzZSB0aGlzLm9ubW91c2V3aGVlbD1udWxsO2YucmVtb3ZlRGF0YSh0aGlzLCJtb3VzZXdoZWVsLWxpbmUtaGVpZ2h0Iik7Zi5yZW1vdmVEYXRhKHRoaXMsIm1vdXNld2hlZWwtcGFnZS1oZWlnaHQiKX0sZ2V0TGluZUhlaWdodDpmdW5jdGlvbihlKXtlPWYoZSk7dmFyIGg9ZVsib2Zmc2V0UGFyZW50ImluIGYuZm4\/Im9mZnNldFBhcmVudCI6InBhcmVudCJdKCk7aC5sZW5ndGh8fChoPWYoImJvZHkiKSk7cmV0dXJuIHBhcnNlSW50KGguY3NzKCJmb250U2l6ZSIpLDEwKXx8cGFyc2VJbnQoZS5jc3MoImZvbnRTaXplIiksMTApfHwxNn0sZ2V0UGFnZUhlaWdodDpmdW5jdGlvbihlKXtyZXR1cm4gZihlKS5oZWlnaHQoKX0sc2V0dGluZ3M6e2FkanVzdE9sZERlbHRhczohMCxub3JtYWxpemVPZmZzZXQ6ITB9fTtmLmZuLmV4dGVuZCh7bW91c2V3aGVlbDpmdW5jdGlvbihlKXtyZXR1cm4gZT90aGlzLm9uKCJtb3VzZXdoZWVsIixlKTp0aGlzLnRyaWdnZXIoIm1vdXNld2hlZWwiKX0sCnVubW91c2V3aGVlbDpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5vZmYoIm1vdXNld2hlZWwiLGUpfX0pfSk7CiFmdW5jdGlvbihmKXsiZnVuY3Rpb24iPT09dHlwZW9mIGRlZmluZSYmZGVmaW5lLmFtZD9kZWZpbmUoW10sZik6Im9iamVjdCI9PT10eXBlb2YgZXhwb3J0cz9tb2R1bGUuZXhwb3J0cz1mOmYoKX0oZnVuY3Rpb24oKXtmdW5jdGlvbiBmKGcpe3JldHVybiBmdW5jdGlvbihlKXtmb3IodmFyIGg9W10sYz0wLHQ9Zy5sZW5ndGg7Yzx0O2MrKyloLnB1c2goInN0cmluZyI9PT10eXBlb2YgZ1tjXT9nW2NdOmdbY10oZSkpO3JldHVybiBoLmpvaW4oIiIpfX1mdW5jdGlvbiBNKGcsZSxoKXtyZXR1cm4gZnVuY3Rpb24oYyl7dmFyIHQ9bmV3IERhdGU7aWYoKGM9Yy5tYXRjaChhW2VdKSkmJjA8Yy5sZW5ndGgpe2MueT10LmdldEZ1bGxZZWFyKCk7Yy5tPXQuZ2V0TW9udGgoKTtjLmQ9dC5nZXREYXRlKCk7Yy5oPS0xO2MuaT0tMTtjLnM9LTE7dD0wO2Zvcih2YXIgdT1oLmxlbmd0aDt0PHU7dCsrKWhbdF0oYyk7aWYoMDxjLnkmJjA8PWMubSYmMDxjLmQmJjA8PWMuaCYmMDw9Yy5pJiYwPD1jLnMpcmV0dXJuIG5ldyBEYXRlKGMueSwKYy5tLGMuZCxjLmgsYy5pLGMucyk7aWYoMDxjLnkmJjA8PWMubSYmMDxjLmQmJjA8PWMuaCYmMDw9Yy5pKXJldHVybiBuZXcgRGF0ZShjLnksYy5tLGMuZCxjLmgsYy5pKTtpZigwPGMueSYmMDw9Yy5tJiYwPGMuZCYmMDw9Yy5oKXJldHVybiBuZXcgRGF0ZShjLnksYy5tLGMuZCxjLmgpO2lmKDA8Yy55JiYwPD1jLm0mJjA8Yy5kKXJldHVybiBuZXcgRGF0ZShjLnksYy5tLGMuZCk7aWYoMDxjLnkmJjA8PWMubSlyZXR1cm4gbmV3IERhdGUoYy55LGMubSk7aWYoMDxjLnkpcmV0dXJuIG5ldyBEYXRlKGMueSl9cmV0dXJuIG51bGx9fWZ1bmN0aW9uIEooZyxlKXtzd2l0Y2goZyl7Y2FzZSAiRCI6cmV0dXJue2c6MCxzOiIoPzpTdW58TW9ufFR1ZXxXZWR8VGh1fEZyaXxTYXQpIn07Y2FzZSAiaiI6Y2FzZSAiZCI6cmV0dXJue2c6MSxhOmZ1bmN0aW9uKGgpe2guZD1wYXJzZUludChoW2VdLDEwKX0sczoiKFxcZHsxLDJ9KSJ9O2Nhc2UgImwiOnJldHVybntnOjAsczoiKD86IitEYXRlLmRheU5hbWVzLmpvaW4oInwiKSsKIikifTtjYXNlICJTIjpyZXR1cm57ZzowLHM6Iig\/OnN0fG5kfHJkfHRoKSJ9O2Nhc2UgInciOnJldHVybntnOjAsczoiXFxkIn07Y2FzZSAieiI6cmV0dXJue2c6MCxzOiIoPzpcXGR7MSwzfSkifTtjYXNlICJXIjpyZXR1cm57ZzowLHM6Iig\/OlxcZHsyfSkifTtjYXNlICJGIjpyZXR1cm57ZzoxLGE6ZnVuY3Rpb24oaCl7aC5tPXBhcnNlSW50KERhdGUubW9udGhOdW1iZXJzW2hbZV0uc3Vic3RyaW5nKDAsMyldLDEwKX0sczoiKCIrRGF0ZS5tb250aE5hbWVzLmpvaW4oInwiKSsiKSJ9O2Nhc2UgIk0iOnJldHVybntnOjEsYTpmdW5jdGlvbihoKXtoLm09cGFyc2VJbnQoRGF0ZS5tb250aE51bWJlcnNbaFtlXV0sMTApfSxzOiIoSmFufEZlYnxNYXJ8QXByfE1heXxKdW58SnVsfEF1Z3xTZXB8T2N0fE5vdnxEZWMpIn07Y2FzZSAibiI6Y2FzZSAibSI6cmV0dXJue2c6MSxhOmZ1bmN0aW9uKGgpe2gubT1wYXJzZUludChoW2VdLDEwKS0xfSxzOiIoXFxkezEsMn0pIn07Y2FzZSAidCI6cmV0dXJue2c6MCwKczoiXFxkezEsMn0ifTtjYXNlICJMIjpyZXR1cm57ZzowLHM6Iig\/OjF8MCkifTtjYXNlICJZIjpyZXR1cm57ZzoxLGE6ZnVuY3Rpb24oaCl7aC55PXBhcnNlSW50KGhbZV0sMTApfSxzOiIoXFxkezR9KSJ9O2Nhc2UgInkiOnJldHVybntnOjEsYTpmdW5jdGlvbihoKXt2YXIgYz1wYXJzZUludChoW2VdLDEwKTtoLnk9Yz5EYXRlLnkya1llYXI\/MTkwMCtjOjJFMytjfSxzOiIoXFxkezEsMn0pIn07Y2FzZSAiYSI6cmV0dXJue2c6MSxhOmZ1bmN0aW9uKGgpeyJhbSI9PT1oW2VdPzEyPT1oLmgmJihoLmg9MCk6MTI+aC5oJiYoaC5oKz0xMil9LHM6IihhbXxwbSkifTtjYXNlICJBIjpyZXR1cm57ZzoxLGE6ZnVuY3Rpb24oaCl7IkFNIj09PWhbZV0\/MTI9PWguaCYmKGguaD0wKToxMj5oLmgmJihoLmgrPTEyKX0sczoiKEFNfFBNKSJ9O2Nhc2UgImciOmNhc2UgIkciOmNhc2UgImgiOmNhc2UgIkgiOnJldHVybntnOjEsYTpmdW5jdGlvbihoKXtoLmg9cGFyc2VJbnQoaFtlXSwxMCl9LHM6IihcXGR7MSwyfSkifTsKY2FzZSAiaSI6cmV0dXJue2c6MSxhOmZ1bmN0aW9uKGgpe2guaT1wYXJzZUludChoW2VdLDEwKX0sczoiKFxcZHsyfSkifTtjYXNlICJzIjpyZXR1cm57ZzoxLGE6ZnVuY3Rpb24oaCl7aC5zPXBhcnNlSW50KGhbZV0sMTApfSxzOiIoXFxkezJ9KSJ9O2Nhc2UgIk8iOnJldHVybntnOjAsczoiWystXVxcZHs0fSJ9O2Nhc2UgIlQiOnJldHVybntnOjAsczoiW0EtWl17M30ifTtjYXNlICJaIjpyZXR1cm57ZzowLHM6IlsrLV1cXGR7MSw1fSJ9O2RlZmF1bHQ6cmV0dXJue2c6MCxzOkcoZyl9fX1mdW5jdGlvbiBHKGcpe3JldHVybiBnLnJlcGxhY2UoLygnfFxcKS9nLCJcXCQxIil9ZnVuY3Rpb24gcihnLGUsaCl7Zz0iIitnO2ZvcihoPSIiK2h8fCIgIjtnLmxlbmd0aDxlOylnPWgrZztyZXR1cm4gZ312YXIgdj17fSxhPVtdLEQ9e30sST17ZDpmdW5jdGlvbihnKXtyZXR1cm4gcihnLmdldERhdGUoKSwyLCIwIil9LEQ6ZnVuY3Rpb24oZyl7cmV0dXJuIERhdGUuZGF5TmFtZXNbZy5nZXREYXkoKV0uc3Vic3RyaW5nKDAsCjMpfSxqOmZ1bmN0aW9uKGcpe3JldHVybiBnLmdldERhdGUoKX0sbDpmdW5jdGlvbihnKXtyZXR1cm4gRGF0ZS5kYXlOYW1lc1tnLmdldERheSgpXX0sUzpmdW5jdGlvbihnKXtyZXR1cm4gZy5nZXRTdWZmaXgoKX0sdzpmdW5jdGlvbihnKXtyZXR1cm4gZy5nZXREYXkoKX0sejpmdW5jdGlvbihnKXtyZXR1cm4gZy5nZXREYXlPZlllYXIoKX0sVzpmdW5jdGlvbihnKXtyZXR1cm4gZy5nZXRXZWVrT2ZZZWFyKCl9LEY6ZnVuY3Rpb24oZyl7cmV0dXJuIERhdGUubW9udGhOYW1lc1tnLmdldE1vbnRoKCldfSxtOmZ1bmN0aW9uKGcpe3JldHVybiByKGcuZ2V0TW9udGgoKSsxLDIsIjAiKX0sTTpmdW5jdGlvbihnKXtyZXR1cm4gRGF0ZS5tb250aE5hbWVzW2cuZ2V0TW9udGgoKV0uc3Vic3RyaW5nKDAsMyl9LG46ZnVuY3Rpb24oZyl7cmV0dXJuIGcuZ2V0TW9udGgoKSsxfSx0OmZ1bmN0aW9uKGcpe3JldHVybiBnLmdldERheXNJbk1vbnRoKCl9LEw6ZnVuY3Rpb24oZyl7cmV0dXJuIGcuaXNMZWFwWWVhcigpPwoxOjB9LFk6ZnVuY3Rpb24oZyl7cmV0dXJuIGcuZ2V0RnVsbFllYXIoKX0seTpmdW5jdGlvbihnKXtyZXR1cm4oIiIrZy5nZXRGdWxsWWVhcigpKS5zdWJzdHJpbmcoMiw0KX0sYTpmdW5jdGlvbihnKXtyZXR1cm4gMTI+Zy5nZXRIb3VycygpPyJhbSI6InBtIn0sQTpmdW5jdGlvbihnKXtyZXR1cm4gMTI+Zy5nZXRIb3VycygpPyJBTSI6IlBNIn0sZzpmdW5jdGlvbihnKXtyZXR1cm4gZy5nZXRIb3VycygpJTEyP2cuZ2V0SG91cnMoKSUxMjoxMn0sRzpmdW5jdGlvbihnKXtyZXR1cm4gZy5nZXRIb3VycygpfSxoOmZ1bmN0aW9uKGcpe3JldHVybiByKGcuZ2V0SG91cnMoKSUxMj9nLmdldEhvdXJzKCklMTI6MTIsMiwiMCIpfSxIOmZ1bmN0aW9uKGcpe3JldHVybiByKGcuZ2V0SG91cnMoKSwyLCIwIil9LGk6ZnVuY3Rpb24oZyl7cmV0dXJuIHIoZy5nZXRNaW51dGVzKCksMiwiMCIpfSxzOmZ1bmN0aW9uKGcpe3JldHVybiByKGcuZ2V0U2Vjb25kcygpLDIsIjAiKX0sTzpmdW5jdGlvbihnKXtyZXR1cm4gZy5nZXRHTVRPZmZzZXQoKX0sClQ6ZnVuY3Rpb24oZyl7cmV0dXJuIGcuZ2V0VGltZXpvbmUoKX0sWjpmdW5jdGlvbihnKXtyZXR1cm4tNjAqZy5nZXRUaW1lem9uZU9mZnNldCgpfX07RGF0ZS5wcm90b3R5cGUuZGF0ZUZvcm1hdD1mdW5jdGlvbihnKXtpZighRFtnXSl7Zm9yKHZhciBlPVtdLGg9ITEsYyx0PTA7dDxnLmxlbmd0aDsrK3QpYz1nLmNoYXJBdCh0KSxofHwiXFwiIT09Yz9oPyhoPSExLGUucHVzaChHKGMpKSk6ZS5wdXNoKElbY118fEcoYykpOmg9ITA7RFtnXT1mKGUpfXJldHVybiBEW2ddKHRoaXMpfTtEYXRlLnBhcnNlRGF0ZT1mdW5jdGlvbihnLGUpe2lmKCF2W2VdKXtmb3IodmFyIGg9YS5sZW5ndGgsYz0xLHQ9IiIsdT0hMSx3LEU9W10sQz0wO0M8ZS5sZW5ndGg7KytDKXc9ZS5jaGFyQXQoQyksdXx8IlxcIiE9PXc\/dT8odT0hMSx0Kz1HKHcpKToodz1KKHcsYyksYys9dy5nLHQrPXcucyx3LmcmJncuYSYmRS5wdXNoKHcuYSkpOnU9ITA7YVtoXT1uZXcgUmVnRXhwKCJeIit0KyIkIik7dltlXT1NKGUsCmgsRSl9cmV0dXJuIHZbZV0oZyl9O0RhdGUucHJvdG90eXBlLmdldFRpbWV6b25lPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudG9TdHJpbmcoKS5yZXBsYWNlKC9eLio\/IChbQS1aXXszfSkgWzAtOV17NH0uKiQvLCIkMSIpLnJlcGxhY2UoL14uKj9cKChbQS1aXSlbYS16XSsgKFtBLVpdKVthLXpdKyAoW0EtWl0pW2Etel0rXCkkLywiJDEkMiQzIil9O0RhdGUucHJvdG90eXBlLmdldEdNVE9mZnNldD1mdW5jdGlvbigpe3JldHVybigwPHRoaXMuZ2V0VGltZXpvbmVPZmZzZXQoKT8iLSI6IisiKStyKE1hdGguZmxvb3IodGhpcy5nZXRUaW1lem9uZU9mZnNldCgpLzYwKSwyLCIwIikrcih0aGlzLmdldFRpbWV6b25lT2Zmc2V0KCklNjAsMiwiMCIpfTtEYXRlLnByb3RvdHlwZS5nZXREYXlPZlllYXI9ZnVuY3Rpb24oKXt2YXIgZz0wO0RhdGUuZGF5c0luTW9udGhbMV09dGhpcy5pc0xlYXBZZWFyKCk\/Mjk6Mjg7Zm9yKHZhciBlPTA7ZTx0aGlzLmdldE1vbnRoKCk7KytlKWcrPURhdGUuZGF5c0luTW9udGhbZV07CnJldHVybiBnK3RoaXMuZ2V0RGF0ZSgpLTF9O0RhdGUucHJvdG90eXBlLmdldFdlZWtPZlllYXI9ZnVuY3Rpb24oKXt2YXIgZz10aGlzLmdldERheU9mWWVhcigpKyg0LXRoaXMuZ2V0RGF5KCkpLGU9Ny0obmV3IERhdGUodGhpcy5nZXRGdWxsWWVhcigpLDAsMSkpLmdldERheSgpKzQ7cmV0dXJuIHIoKGctZSkvNysxLDIsIjAiKX07RGF0ZS5wcm90b3R5cGUuaXNMZWFwWWVhcj1mdW5jdGlvbigpe3ZhciBnPXRoaXMuZ2V0RnVsbFllYXIoKTtyZXR1cm4hKDAhPT0oZyYzKXx8IShnJTEwMHx8MD09PWclNDAwJiZnKSl9O0RhdGUucHJvdG90eXBlLmdldEZpcnN0RGF5T2ZNb250aD1mdW5jdGlvbigpe3ZhciBnPSh0aGlzLmdldERheSgpLSh0aGlzLmdldERhdGUoKS0xKSklNztyZXR1cm4gMD5nP2crNzpnfTtEYXRlLnByb3RvdHlwZS5nZXRMYXN0RGF5T2ZNb250aD1mdW5jdGlvbigpe3ZhciBnPSh0aGlzLmdldERheSgpKyhEYXRlLmRheXNJbk1vbnRoW3RoaXMuZ2V0TW9udGgoKV0tdGhpcy5nZXREYXRlKCkpKSUKNztyZXR1cm4gMD5nP2crNzpnfTtEYXRlLnByb3RvdHlwZS5nZXREYXlzSW5Nb250aD1mdW5jdGlvbigpe0RhdGUuZGF5c0luTW9udGhbMV09dGhpcy5pc0xlYXBZZWFyKCk\/Mjk6Mjg7cmV0dXJuIERhdGUuZGF5c0luTW9udGhbdGhpcy5nZXRNb250aCgpXX07RGF0ZS5wcm90b3R5cGUuZ2V0U3VmZml4PWZ1bmN0aW9uKCl7c3dpdGNoKHRoaXMuZ2V0RGF0ZSgpKXtjYXNlIDE6Y2FzZSAyMTpjYXNlIDMxOnJldHVybiJzdCI7Y2FzZSAyOmNhc2UgMjI6cmV0dXJuIm5kIjtjYXNlIDM6Y2FzZSAyMzpyZXR1cm4icmQiO2RlZmF1bHQ6cmV0dXJuInRoIn19O0RhdGUuZGF5c0luTW9udGg9WzMxLDI4LDMxLDMwLDMxLDMwLDMxLDMxLDMwLDMxLDMwLDMxXTtEYXRlLm1vbnRoTmFtZXM9IkphbnVhcnkgRmVicnVhcnkgTWFyY2ggQXByaWwgTWF5IEp1bmUgSnVseSBBdWd1c3QgU2VwdGVtYmVyIE9jdG9iZXIgTm92ZW1iZXIgRGVjZW1iZXIiLnNwbGl0KCIgIik7RGF0ZS5kYXlOYW1lcz0iU3VuZGF5IE1vbmRheSBUdWVzZGF5IFdlZG5lc2RheSBUaHVyc2RheSBGcmlkYXkgU2F0dXJkYXkiLnNwbGl0KCIgIik7CkRhdGUueTJrWWVhcj01MDtEYXRlLm1vbnRoTnVtYmVycz17SmFuOjAsRmViOjEsTWFyOjIsQXByOjMsTWF5OjQsSnVuOjUsSnVsOjYsQXVnOjcsU2VwOjgsT2N0OjksTm92OjEwLERlYzoxMX07RGF0ZS5wYXR0ZXJucz17SVNPODYwMUxvbmdQYXR0ZXJuOiJZLW0tZCBIOmk6cyIsSVNPODYwMVNob3J0UGF0dGVybjoiWS1tLWQiLFNob3J0RGF0ZVBhdHRlcm46Im4vai9ZIixMb25nRGF0ZVBhdHRlcm46ImwsIEYgZCwgWSIsRnVsbERhdGVUaW1lUGF0dGVybjoibCwgRiBkLCBZIGc6aTpzIEEiLE1vbnRoRGF5UGF0dGVybjoiRiBkIixTaG9ydFRpbWVQYXR0ZXJuOiJnOmkgQSIsTG9uZ1RpbWVQYXR0ZXJuOiJnOmk6cyBBIixTb3J0YWJsZURhdGVUaW1lUGF0dGVybjoiWS1tLWRcXFRIOmk6cyIsVW5pdmVyc2FsU29ydGFibGVEYXRlVGltZVBhdHRlcm46IlktbS1kIEg6aTpzTyIsWWVhck1vbnRoUGF0dGVybjoiRiwgWSJ9fSk7Ci8qKiAvanMvdmFuaWxsYWpzL2Zvcm0uanMgKiovCnZhciBfX19kMmNfZm9ybWpzX2Nfb249IjIwMjUtMDUtMjMgMTc6MDU6MjAiOyd1c2Ugc3RyaWN0Jzt2YXIgX19fZDJjX2Zvcm1qc19jX29uPSIyMDI0LTAxLTMxIDE0OjMzOjA5IjsidXNlIHN0cmljdCI7X19fZDJjX2Zvcm1qc19jX29uPSIyMDIzLTA0LTI3IDEwOjMwOjQ5IjsidXNlIHN0cmljdCI7CmNvbnN0IEZvcm09ZnVuY3Rpb24oKXt0aGlzLk1BU0tTPXtwaG9uZToiMDAwIDAwMC0wMDAwIixzaW46IjAwMCAwMDAgMDAwIixwb3N0YWxDb2RlOiJhMGEgMGEwIn07dGhpcy5tYXNrPShhLGIpPT57YT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKGEpO2EubGVuZ3RoJiZhLmZvckVhY2goYz0+e0lNYXNrKGMsYil9KX07dGhpcy5tYXNrTnVtYmVyPShhLGIpPT57bGV0IGM9e21hc2s6TnVtYmVyLG1pbjowfTtiJiYoYy5tYXg9Yik7dGhpcy5tYXNrKGEsYyl9O3RoaXMubWFza1Bob25lPWE9Pnt0aGlzLm1hc2soYSx7bWFzazpbe21hc2s6dGhpcy5NQVNLUy5waG9uZX0se21hc2s6YDEgJHt0aGlzLk1BU0tTLnBob25lfWB9XX0pfTt0aGlzLm1hc2tQb3N0YWxDb2RlPWE9Pnt0aGlzLm1hc2soYSx7bWFzazp0aGlzLk1BU0tTLnBvc3RhbENvZGUscHJlcGFyZTpiPT5iLnRvVXBwZXJDYXNlKCl9KX19OwovKiogL2pzL21haWxTY2hlZHVsZS4yLjAuanMgKiovCnZhciBfX19kMmNfbWFpbFNjaGVkdWxlMjBqc19jX29uPSIyMDI2LTAxLTEyIDEwOjE0OjEwIjsndXNlIHN0cmljdCc7bGV0IGRlYWxlclN0b3JlSG91cnM9e307CmZ1bmN0aW9uIE1haWxTY2hlZHVsZShoKXt2YXIgYz17Zmlyc3RDaG9pY2U6IiIsc2Vjb25kQ2hvaWNlOiIiLHdhaXRpbmdPblNpdGU6IiIsdHJhbnNwb3J0T3B0aW9uOiIiLHNjb3BlOmguc2NvcGUsZmlyc3RDaG9pY2VPYmplY3RJZDoiZmlyc3REYXRlIixzZWNvbmRDaG9pY2VPYmplY3RJZDoic2Vjb25kRGF0ZSIsZmlyc3RIb3VyU2VsZWN0OiJmaXJzdERhdGVTZWxlY3QiLHNlY29uZEhvdXJTZWxlY3Q6InNlY29uZERhdGVTZWxlY3QiLHNldHVwRGF0ZTpmdW5jdGlvbihhLGIsZCl7dmFyIGU9JCgiIyIrYSksZz1uZXcgRGF0ZTtjLmlzRGF0ZShiKXx8KGI9bmV3IERhdGUpO2MuaXNEYXRlKGQpfHwoZD1uZXcgRGF0ZShnLmdldFRpbWUoKStjLmRheVRvTWlsbGlzZWNvbmRzKDMwKSkpO3ZhciBrPW5ldyBEYXRlO2suc2V0TWludXRlcyhrLmdldE1pbnV0ZXMoKSszMCk7ZS5vbigia2V5ZG93biIsZnVuY3Rpb24oZil7Zi5wcmV2ZW50RGVmYXVsdCgpO3JldHVybiExfSk7ZS5kYXRhKCJkYXRldGltZXBpY2tlck9wdGlvbnMiLAp7ZGF0ZVNlbGVjdGVkOiExLHRpbWVTZWxlY3RlZDohMX0pOyQoIiNhY3RpdmVzaXRlbGFuZ3VhZ2UiKS52YWwoKSYmIkVOR0xJU0giPT09JCgiI2FjdGl2ZXNpdGVsYW5ndWFnZSIpLnZhbCgpfHwkLmRhdGV0aW1lcGlja2VyLnNldExvY2FsZSgiZnIiKTtlLmRhdGV0aW1lcGlja2VyKCQuZXh0ZW5kKHt9LHAse2lkOmErIl9kYXRlVGltZVBpY2tlciIsbWluRGF0ZTpiLG1heERhdGU6ZCxkaXNhYmxlZERhdGVzOmMuZ2V0Q2xvc2VkRGF0ZXNCZXR3ZWVuKGIsZCksb25DaGFuZ2VEYXRlVGltZTpmdW5jdGlvbihmKXtudWxsIT1mJiZmLnRvRGF0ZVN0cmluZygpPT09Zy50b0RhdGVTdHJpbmcoKT90aGlzLnNldE9wdGlvbnMoe21pblRpbWU6ay5kYXRlRm9ybWF0KCJIOmkiKX0pOnRoaXMuc2V0T3B0aW9ucyh7bWluVGltZTohMX0pfSxvblNob3c6ZnVuY3Rpb24oZil7Zj0kKHRoaXMpLmRhdGEoKS5vcHRpb25zLmRhdGVTZWxlY3RlZD8kKHRoaXMpLmRhdGEoKS5vcHRpb25zLnZhbHVlOmI7CmMudXBkYXRlSG91cnMoZixhKX19KSl9LGluaXQ6ZnVuY3Rpb24oKXt2YXIgYT1jLmdldFBpY2tlckRhdGVSYW5nZSgpO2lmKDE+JChjLnNjb3BlKS5sZW5ndGgpcmV0dXJuIHNldFRpbWVvdXQoYy5pbml0LDFFNCk7aWYoISQoYy5zY29wZSkuaXMoIjp2aXNpYmxlIikpcmV0dXJuIHNldFRpbWVvdXQoYy5pbml0LDFFMyk7YT8oJCgiIyIrYy5maXJzdENob2ljZU9iamVjdElkKS5wcm9wKCJkaXNhYmxlZCIsITEpLCQoIiMiK2Muc2Vjb25kQ2hvaWNlT2JqZWN0SWQpLnByb3AoImRpc2FibGVkIiwhMSksYy5zZXR1cERhdGUoYy5maXJzdENob2ljZU9iamVjdElkLGEuc3RhcnREYXRlLGEuZW5kRGF0ZSksYy5zZXR1cERhdGUoYy5zZWNvbmRDaG9pY2VPYmplY3RJZCxhLnN0YXJ0RGF0ZSxhLmVuZERhdGUpKTooJCgiIyIrYy5maXJzdENob2ljZU9iamVjdElkKS5wcm9wKCJkaXNhYmxlZCIsITApLCQoIiMiK2MuZmlyc3RDaG9pY2VPYmplY3RJZCkuY2xvc2VzdCgiLmpxVHJhbnNmb3JtSW5wdXRXcmFwcGVyIikuY3NzKHsiYmFja2dyb3VuZC1jb2xvciI6Ii1pbnRlcm5hbC1saWdodC1kYXJrLWNvbG9yKHJnYmEoMjM5LCAyMzksIDIzOSwgMC4zKSwgcmdiYSg1OSwgNTksIDU5LCAwLjMpKSIsCiJib3JkZXItY29sb3IiOiJyZ2JhKDExOCwgMTE4LCAxMTgsIDAuMykifSksJCgiIyIrYy5zZWNvbmRDaG9pY2VPYmplY3RJZCkucHJvcCgiZGlzYWJsZWQiLCEwKSwkKCIjIitjLnNlY29uZENob2ljZU9iamVjdElkKS5jbG9zZXN0KCIuanFUcmFuc2Zvcm1JbnB1dFdyYXBwZXIiKS5jc3MoeyJiYWNrZ3JvdW5kLWNvbG9yIjoiLWludGVybmFsLWxpZ2h0LWRhcmstY29sb3IocmdiYSgyMzksIDIzOSwgMjM5LCAwLjMpLCByZ2JhKDU5LCA1OSwgNTksIDAuMykpIiwiYm9yZGVyLWNvbG9yIjoicmdiYSgxMTgsIDExOCwgMTE4LCAwLjMpIn0pKX0sYXNzaWduVmFsdWVzOmZ1bmN0aW9uKCl7dmFyIGE9JChjLnNjb3BlKSxiPW51bGw7c3dpdGNoKG1haWxQYWdlLm1haWxJRCl7Y2FzZSAiU2VydmljZVJlcXVlc3QiOnZhciBkPWEuZmluZCgiI2ZpcnN0RGF0ZSIpO2I9YS5maW5kKCIjc2Vjb25kRGF0ZSIpO2JyZWFrO2Nhc2UgInNlcnZpY2VNZW51IjpkPWEuZmluZChzZXJ2aWNlRm9ybV9tZW51U2VydmljZS5kYXRlSWQpOwpicmVhaztjYXNlICJoZWFkZXJTZXJ2aWNlIjpkPWEuZmluZChzZXJ2aWNlRm9ybV9oZWFkZXJTZXJ2aWNlLmRhdGVJZCk7YnJlYWs7ZGVmYXVsdDpkPWEuZmluZCgiIyIrYy5maXJzdENob2ljZU9iamVjdElkKSxiPWEuZmluZCgiIyIrYy5zZWNvbmRDaG9pY2VPYmplY3RJZCl9Yy5maXJzdENob2ljZT1jLmdldERhdGVDaG9pY2UoZCk7Yy5zZWNvbmRDaG9pY2U9Yy5nZXREYXRlQ2hvaWNlKGIpO2Mud2FpdGluZ09uU2l0ZT1hLmZpbmQoInNlbGVjdFtuYW1lPSd3YWl0aW5nb25zaXRlJ10gb3B0aW9uOnNlbGVjdGVkIikudmFsKCk7Yy50cmFuc3BvcnRPcHRpb249Yy5nZXRUcmFuc3BvcnRPcHRpb24oKX0sZ2V0VHJhbnNwb3J0T3B0aW9uOmZ1bmN0aW9uKCl7dmFyIGE9JChjLnNjb3BlKS5maW5kKCJzZWxlY3RbbmFtZT0ncHJlZmVycmVkVHJhbnNwb3J0J10gb3B0aW9uOnNlbGVjdGVkIik7cmV0dXJuIGEubGVuZ3RoP2EudmFsKCk6IiJ9LGdldFRyYW5zcG9ydE9wdGlvblRleHQ6ZnVuY3Rpb24oKXt2YXIgYT0KJChjLnNjb3BlKS5maW5kKCJzZWxlY3RbbmFtZT0ncHJlZmVycmVkVHJhbnNwb3J0J10gb3B0aW9uOnNlbGVjdGVkIik7cmV0dXJuIGEubGVuZ3RoP2EudGV4dCgpOiIifSx1cGRhdGVIb3VyczpmdW5jdGlvbihhLGIpe3ZhciBkPSQoIiMiK2IpLGU9Yy5nZXRBbGxvd2VkVGltZXMoYSxiKTtjLmRpc3BsYXlQaWNrZXJNZXNzYWdlKGIsYy5nZXREYXRlU2NoZWR1bGUoYSkpOzA8ZS5sZW5ndGg\/KGI9e3RpbWVwaWNrZXI6ITAsYWxsb3dUaW1lczplfSwiIj09PWQudmFsKCk\/Yi52YWx1ZT1hLmRhdGVGb3JtYXQoIlkvbS9kIikrIiAiK2VbMF06Yi52YWx1ZT1hLGQuZGF0ZXRpbWVwaWNrZXIoYikpOihkLnZhbCgiIiksZC5kYXRldGltZXBpY2tlcih7dGltZXBpY2tlcjohMX0pKX0sY2xvc2VkQWZ0ZXJNaWRuaWdodDpmdW5jdGlvbihhKXthPWMuZ2V0RGF0ZVNjaGVkdWxlKGEpO3JldHVybiJ1bmRlZmluZWQiPT09YS5zdGFydEhvdXI\/ITE6YS5lbmRIb3VyPGEuc3RhcnRIb3VyJiYwIT09CmEuZW5kSG91cn0sZGlzcGxheVBpY2tlck1lc3NhZ2U6ZnVuY3Rpb24oYSxiKXt2YXIgZD0iIjtzd2l0Y2goYi5zdGF0dXMpe2Nhc2UgImNsb3NlZCI6ZD0kKCIudGV4dENsb3NlZCIpLnZhbCgpO2JyZWFrO2Nhc2UgInJkdiI6ZD0kKCIudGV4dFJkdiIpLnZhbCgpO2JyZWFrO2Nhc2UgImNvbnRhY3QiOmQ9Yi5tZXNzYWdlfSQoIiMiK2ErIl9kYXRlVGltZVBpY2tlciAuZGF0ZVRpbWVQaWNrZXJNZXNzYWdlIikuaHRtbChkKX0scmVtb3ZlQ2xvc2VkSG91cnM6ZnVuY3Rpb24oYSl7dmFyIGI9JChjLnNjb3BlKS5maW5kKCIuQ2xvc2VkU2NoZWR1bGUiKTtpZighYi5sZW5ndGh8fCJjbG9zZWQiPT09Yi52YWwoKSlyZXR1cm4gYTt2YXIgZD1bXSxlPXBhcnNlSW50KGIuYXR0cigic3RhcnRob3VyIikpLGc9cGFyc2VJbnQoYi5hdHRyKCJzdGFydG1pbiIpKSxrPXBhcnNlSW50KGIuYXR0cigiZW5kaG91ciIpKTtiPXBhcnNlSW50KGIuYXR0cigiZW5kbWluIikpO3ZhciBmPW5ldyBEYXRlOwpmLnNldEhvdXJzKGUsZyk7dmFyIHE9bmV3IERhdGU7cS5zZXRIb3VycyhrLGIpOyQuZWFjaChhLGZ1bmN0aW9uKG0scil7bT1yLnNwbGl0KCI6Iik7dmFyIG49bmV3IERhdGU7bi5zZXRIb3VycyhwYXJzZUludChtWzBdKSxwYXJzZUludChtWzFdKSk7KG48Znx8bj49cSkmJmQucHVzaChyKX0pO3JldHVybiBkfSxnZXRBbGxvd2VkVGltZXM6ZnVuY3Rpb24oYSxiKXskKCIjIitiKTtiPVtdO3ZhciBkPWMuZ2V0RGF0ZVNjaGVkdWxlKGEpLGU9bmV3IERhdGUoYSk7ZS5zZXREYXRlKGEuZ2V0RGF0ZSgpLTEpO2U9Yy5nZXREYXlCZWZvcmVBcHBvaW50bWVudHMoZSk7Yj1iLmNvbmNhdChlKTtpZigiY29uY2VzcyI9PT1kLnN0YXR1c3x8IiI9PT1kLnN0YXR1c3x8InVuZGVmaW5lZCI9PT10eXBlb2YgZC5zdGF0dXN8fCJyZHYiPT09ZC5zdGF0dXMpe2U9ZC5zdGFydEhvdXI7dmFyIGc9ZC5zdGFydE1pbjtkPWMuZ2V0RW5kT2ZEYXkoZSxkLmVuZEhvdXIsZC5lbmRNaW4pO2U9Yy5nZXRBcHBvaW50bWVudHNCZXR3ZWVuKGUsCmcsZC5lbmRIb3VyLGQuZW5kTWluKTtlPWMucmVtb3ZlQ2xvc2VkSG91cnMoZSk7Yj1iLmNvbmNhdChlKX1pZihhLnRvRGF0ZVN0cmluZygpPT0obmV3IERhdGUpLnRvRGF0ZVN0cmluZygpKWZvcihhPShuZXcgRGF0ZSkuZ2V0SG91cnMoKTswPGIubGVuZ3RoOylpZihwYXJzZUludChiWzBdKTw9YSliLnNoaWZ0KCk7ZWxzZSBicmVhaztyZXR1cm4gYn0sZ2V0QXBwb2ludG1lbnRzQmV0d2VlbjpmdW5jdGlvbihhLGIsZCxlKXthKz0zMD09PWI\/LjU6MDtkPWQrKDMwPT09ZT8uNTowKS0xO2U9W107Zm9yKGI9IjE1Ij09JCgiLlNFUlZJQ0VfQVBQT0lOVE1FTlRfTEVOR1RIIikudmFsKCk\/LjI1Oi41O2E8PWQ7YSs9YikwPT09YSUxP2UucHVzaChhKyI6MDAiKTowPT09YSUuNT9lLnB1c2goTWF0aC5mbG9vcihhKSsiOjMwIik6MD09PShhLS4yNSklMT9lLnB1c2goTWF0aC5mbG9vcihhKSsiOjE1Iik6ZS5wdXNoKE1hdGguZmxvb3IoYSkrIjo0NSIpO3JldHVybiBlfSxnZXRDbG9zZWREYXRlc0JldHdlZW46ZnVuY3Rpb24oYSwKYil7Yj1jLmdldERheXNEaWZmKGEsYik7Zm9yKHZhciBkPVtdLGU9W10sZz0wO2c8YjtnKyspe3ZhciBrPW5ldyBEYXRlKChuZXcgRGF0ZShhKSkuc2V0RGF0ZShhLmdldERhdGUoKSsoZy0xKSkpLGY9bmV3IERhdGUoKG5ldyBEYXRlKGEpKS5zZXREYXRlKGEuZ2V0RGF0ZSgpK2cpKTtlLmhhc093blByb3BlcnR5KGYuZ2V0RGF5KCkpfHwoZVtmLmdldERheSgpXT1jLmdldERhdGVTY2hlZHVsZShmKSk7ImNsb3NlZCIhPT1lW2YuZ2V0RGF5KCldLnN0YXR1cyYmIm9ubGluZSIhPT1lW2YuZ2V0RGF5KCldLnN0YXR1c3x8Yy5jbG9zZWRBZnRlck1pZG5pZ2h0KGspfHxkLnB1c2goZi5kYXRlRm9ybWF0KCJZL20vZCIpKX1yZXR1cm4gZH0sZ2V0RGF0ZUNob2ljZTpmdW5jdGlvbihhKXtyZXR1cm4gYSYmMDxhLmxlbmd0aCYmKGE9bmV3IERhdGUoYS52YWwoKSksYy5pc0RhdGUoYSkpP2EuZGF0ZUZvcm1hdCgiWTptOmQgSDppIik6IiJ9LGdldERhdGVTY2hlZHVsZTpmdW5jdGlvbihhKXt2YXIgYj0KZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNlcnZpY2VFbWFpbHNTZWxlY3QiKTtpZihiJiZiLm9wdGlvbnMmJjE8Yi5vcHRpb25zLmxlbmd0aCYmMDw9Yi5zZWxlY3RlZEluZGV4JiZiLm9wdGlvbnMuaGFzT3duUHJvcGVydHkoYi5zZWxlY3RlZEluZGV4KSYmZGVhbGVyU3RvcmVIb3VycyYmZGVhbGVyU3RvcmVIb3Vycy5oYXNPd25Qcm9wZXJ0eShiLm9wdGlvbnNbYi5zZWxlY3RlZEluZGV4XS5nZXRBdHRyaWJ1dGUoImRhdGEtZGVhbGVybmFtZSIpKSl7Yj1iLm9wdGlvbnNbYi5zZWxlY3RlZEluZGV4XS5nZXRBdHRyaWJ1dGUoImRhdGEtZGVhbGVybmFtZSIpO2NvbnN0IGc9YS50b0xvY2FsZURhdGVTdHJpbmcoImVuLVVTIix7d2Vla2RheToibG9uZyJ9KS5yZXBsYWNlKC9cdTIwMEUvZywiIik7YT1kZWFsZXJTdG9yZUhvdXJzW2JdO2lmKGImJmEmJihhPWEuZmluZChrPT5rLmRheT09PWcpKSYmYS5ob3VycyYmImNsb3NlZCIhPT1hLmhvdXJzLnRvTG93ZXJDYXNlKCkmJihiPShhLmhvdXJzLm1hdGNoKC86L2cpfHwKW10pLmxlbmd0aCxhLmhvdXJzLmluY2x1ZGVzKCItIikmJjI9PT1iKSl7dmFyIGQ9YS5ob3Vycy5zcGxpdCgiIC0gIik7YT1wYXJzZUludChkWzBdLnNwbGl0KCI6IilbMF0pO2I9cGFyc2VJbnQoZFswXS5zcGxpdCgiOiIpWzFdLnN1YnN0cmluZygwLDIpKTt2YXIgZT1wYXJzZUludChkWzFdLnNwbGl0KCI6IilbMF0pO2Q9cGFyc2VJbnQoZFsxXS5zcGxpdCgiOiIpWzFdLnN1YnN0cmluZygwLDIpKTtyZXR1cm57c3RhdHVzOiIiLHN0YXJ0SG91cjphLHN0YXJ0TWluOmIsZW5kSG91cjplLGVuZE1pbjpkfX1yZXR1cm57c3RhdHVzOiJjbG9zZWQifX1hPWEudG9Mb2NhbGVEYXRlU3RyaW5nKCJlbi1VUyIse3dlZWtkYXk6ImxvbmcifSkucmVwbGFjZSgvXHUyMDBFL2csIiIpO2I9Ii4iK2ErIlNjaGVkdWxlIjtiPSQoYy5zY29wZSkuZmluZChiKTtlPWIudmFsKCk7cmV0dXJuImNvbmNlc3MiPT09ZXx8InJkdiI9PT1lP3tzdGF0dXM6ZSxzdGFydEhvdXI6NyxzdGFydE1pbjozMCxlbmRIb3VyOjIwLAplbmRNaW46MH06IiI9PT1lfHwidW5kZWZpbmVkIj09PXR5cGVvZiBlP3tzdGF0dXM6ZSxzdGFydEhvdXI6cGFyc2VJbnQoYi5hdHRyKCJzdGFydGhvdXIiKSksc3RhcnRNaW46cGFyc2VJbnQoYi5hdHRyKCJzdGFydG1pbiIpKSxlbmRIb3VyOnBhcnNlSW50KGIuYXR0cigiZW5kaG91ciIpKSxlbmRNaW46cGFyc2VJbnQoYi5hdHRyKCJlbmRtaW4iKSl9OntzdGF0dXM6ZSxtZXNzYWdlOiQoYy5zY29wZSkuZmluZCgiLiIrYSsiU2NoZWR1bGVfbWVzc2FnZSIpLmh0bWwoKX19LGdldERheUJlZm9yZUFwcG9pbnRtZW50czpmdW5jdGlvbihhKXt2YXIgYj1jLmdldERhdGVTY2hlZHVsZShhKTtyZXR1cm4gYy5jbG9zZWRBZnRlck1pZG5pZ2h0KGEpP2MuZ2V0QXBwb2ludG1lbnRzQmV0d2VlbigwLDAsYi5lbmRIb3VyLGIuZW5kTWluKTpbXX0sZ2V0RGF5c0RpZmY6ZnVuY3Rpb24oYSxiKXt2YXIgZD1jLmRheVRvTWlsbGlzZWNvbmRzKDEpO3JldHVybiBNYXRoLnJvdW5kKChiLmdldFRpbWUoKS0KYS5nZXRUaW1lKCkpL2QpfSxnZXRFbmRPZkRheTpmdW5jdGlvbihhLGIsZCl7cmV0dXJuIGE8Yj97ZW5kSG91cjpiLGVuZE1pbjpkfTpiPGEmJjA9PT1iP3tlbmRIb3VyOjI0LGVuZE1pbjpkfTp7ZW5kSG91cjoyNCxlbmRNaW46MzB9fSxnZXROZXh0T3BlbkRhdGU6ZnVuY3Rpb24oYSl7aWYoImNsb3NlZCI9PT1jLmdldERhdGVTY2hlZHVsZShhKS5zdGF0dXMpe2E9bmV3IERhdGUoKG5ldyBEYXRlKGEpKS5zZXREYXRlKGEuZ2V0RGF0ZSgpKzEpKTt2YXIgYj1uZXcgRGF0ZSgobmV3IERhdGUpLnNldERhdGUoKG5ldyBEYXRlKS5nZXREYXRlKCkrNykpO3JldHVybiBhPmI\/ITE6Yy5nZXROZXh0T3BlbkRhdGUoYSl9cmV0dXJuIGF9LGdldFBpY2tlckRhdGVSYW5nZTpmdW5jdGlvbigpe3ZhciBhPSQoIi5hbGxvd1RvZGF5IikudmFsKCksYj1wYXJzZUludCgkKCIubWluU3RhcnREYXlzIikudmFsKCkpLGQ9MCxlPW5ldyBEYXRlO2F8fChkPTEpO2ImJihkPWIpO2E9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLmZvb3RlclZpc2l0Q29udGFjdEZvcm1XcmFwcGVyIik7Cm51bGwhPT1hPyhiPWUuZ2V0RGF5KCksYj0wPT09Yj83OmIsMT09YS5xdWVyeVNlbGVjdG9yQWxsKCIud2Vla0RheVNjaGVkdWxlIilbYi0xXS5kYXRhc2V0LmNsb3NlZD9lPW5ldyBEYXRlKChuZXcgRGF0ZShlKSkuc2V0RGF0ZShlLmdldERhdGUoKStkKSk6KGE9ZS5nZXRIb3VycygpLGI9ZS5nZXRNaW51dGVzKCkrNjAsNjA8PWImJihhKz1NYXRoLmZsb29yKGIvNjApLGIlPTYwLGIlMzAmJig1Pj1iJTMwP2ItPWIlMzA6NTxiJTMwJiYoYis9MzAtYiUzMCkpKSwyNDw9YT8oZD1kP2Q6MSxlPW5ldyBEYXRlKGUuc2V0RGF0ZShlLmdldERhdGUoKStkKSkpOihlPW5ldyBEYXRlKGUuc2V0RGF0ZShlLmdldERhdGUoKStkKSksZS5zZXRIb3VycyhhLGIsMCwwKSkpKTooZT1uZXcgRGF0ZSgobmV3IERhdGUoZSkpLnNldERhdGUoZS5nZXREYXRlKCkrZCkpLGU9Yy5nZXROZXh0T3BlbkRhdGUoZSkpO2lmKCFlKXJldHVybiExO2Q9bmV3IERhdGUoZS5nZXRUaW1lKCkrYy5kYXlUb01pbGxpc2Vjb25kcyg0NTApKTsKcmV0dXJue3N0YXJ0RGF0ZTplLGVuZERhdGU6ZH19LGlzRGF0ZTpmdW5jdGlvbihhKXtyZXR1cm4gYSBpbnN0YW5jZW9mIERhdGUmJiJJbnZhbGlkIERhdGUiIT09YS50b0RhdGVTdHJpbmcoKX0sZGF5VG9NaWxsaXNlY29uZHM6ZnVuY3Rpb24oYSl7cmV0dXJuIDg2NEU1KmF9LHBpY2tlck9uQ2xvc2U6ZnVuY3Rpb24oYSxiKXthPSQoYikuZGF0YSgiZGF0ZXRpbWVwaWNrZXJPcHRpb25zIikudGltZVNlbGVjdGVkO3ZhciBkPSQoYikuZGF0YSgiZGF0ZXRpbWVwaWNrZXJPcHRpb25zIikuZGF0ZVNlbGVjdGVkOyIiPT09Yi52YWwoKSYmbCYmKCQoIiMiK2IuZGF0YSgiaG91ci1zZWxlY3QiKSkuZW1wdHkoKSwkKCIjIitiLmRhdGEoImhvdXItc2VsZWN0IikpLnByb3AoImRpc2FibGVkIiwhMCkpO2lmKCFhJiYhZClyZXR1cm4hMDthfHxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yi52YWwoYi52YWwoKS5zcGxpdCgiICIpWzBdLnRyaW0oKSl9KX0scGlja2VyT25HZW5lcmF0ZTpmdW5jdGlvbigpeyQoIi54ZHNvZnRfc2F2ZV9zZWxlY3RlZCIpLnJlbW92ZSgpOwowPT09JCgiLmRhdGVUaW1lUGlja2VyTWVzc2FnZSIsdGhpcykubGVuZ3RoJiYkKHRoaXMpLmFwcGVuZCgnPGRpdiBzdHlsZT0iY2xlYXI6IGJvdGg7IHBhZGRpbmc6IDExcHg7ICBmb250LXNpemU6IDEycHg7Zm9udC13ZWlnaHQ6Ym9sZDsgIiBjbGFzcz0iZGF0ZVRpbWVQaWNrZXJNZXNzYWdlIj48L2Rpdj4nKX0scGlja2VyT25TZWxlY3REYXRlOmZ1bmN0aW9uKGEsYil7JCh0aGlzKS5kYXRhKCkub3B0aW9ucy52YWx1ZT1hOyQodGhpcykuZGF0YSgpLm9wdGlvbnMuZGF0ZVNlbGVjdGVkPSEwO2IuZGF0YSgiZGF0ZXRpbWVwaWNrZXJPcHRpb25zIikuZGF0ZVNlbGVjdGVkPSEwOyQoIi54ZHNvZnRfc2F2ZV9zZWxlY3RlZCIpLnJlbW92ZSgpO2IuZGF0YSgiaG91ci1zZWxlY3QiKT9jLnVwZGF0ZUhvdXJzKGEsYi5hdHRyKCJpZCIpLGIuZGF0YSgiaG91ci1zZWxlY3QiKSk6Yy51cGRhdGVIb3VycyhhLGIuYXR0cigiaWQiKSk7cmV0dXJuITF9LHBpY2tlck9uU2VsZWN0VGltZTpmdW5jdGlvbihhLApiKXskKHRoaXMpLmRhdGEoKS5vcHRpb25zLnZhbHVlPWE7JCh0aGlzKS5kYXRhKCkub3B0aW9ucy50aW1lU2VsZWN0ZWQ9ITA7Yi5kYXRhKCJkYXRldGltZXBpY2tlck9wdGlvbnMiKS50aW1lU2VsZWN0ZWQ9ITB9LHNldFNjb3BlOmZ1bmN0aW9uKGEpe2Muc2NvcGU9YTtyZXR1cm4gY319LGw9aC5pc01vYmlsZTtsJiYoYy5pbml0PWZ1bmN0aW9uKCl7dmFyIGE9JChjLnNjb3BlKTthLmZpbmQoIiMiK2MuZmlyc3RIb3VyU2VsZWN0KS5wcm9wKCJkaXNhYmxlZCIsITApO2EuZmluZCgiIyIrYy5zZWNvbmRIb3VyU2VsZWN0KS5wcm9wKCJkaXNhYmxlZCIsITApO2EuZmluZCgiIyIrYy5maXJzdENob2ljZU9iamVjdElkKS5kYXRhKCJob3VyLXNlbGVjdCIsYy5maXJzdEhvdXJTZWxlY3QpO2EuZmluZCgiIyIrYy5zZWNvbmRDaG9pY2VPYmplY3RJZCkuZGF0YSgiaG91ci1zZWxlY3QiLGMuc2Vjb25kSG91clNlbGVjdCk7dmFyIGI9Yy5nZXRQaWNrZXJEYXRlUmFuZ2UoKTtiPyhhLmZpbmQoIiMiKwpjLmZpcnN0SG91clNlbGVjdCkub24oImNoYW5nZSIsZnVuY3Rpb24oKXt2YXIgZD0kKCIjIitjLmZpcnN0Q2hvaWNlT2JqZWN0SWQpLnZhbCgpLGU9JCh0aGlzKS52YWwoKTthLmZpbmQoImlucHV0W25hbWU9ZGF0ZTFdIikudmFsKGQrIiAiK2UpfSksYS5maW5kKCIjIitjLnNlY29uZEhvdXJTZWxlY3QpLm9uKCJjaGFuZ2UiLGZ1bmN0aW9uKCl7dmFyIGQ9JCgiIyIrYy5zZWNvbmRDaG9pY2VPYmplY3RJZCkudmFsKCksZT0kKHRoaXMpLnZhbCgpO2EuZmluZCgiaW5wdXRbbmFtZT1kYXRlMl0iKS52YWwoZCsiICIrZSl9KSxjLnNldHVwRGF0ZShjLmZpcnN0Q2hvaWNlT2JqZWN0SWQsYy5maXJzdEhvdXJTZWxlY3QsYi5zdGFydERhdGUsYi5lbmREYXRlKSxjLnNldHVwRGF0ZShjLnNlY29uZENob2ljZU9iamVjdElkLGMuc2Vjb25kSG91clNlbGVjdCxiLnN0YXJ0RGF0ZSxiLmVuZERhdGUpKTooYS5maW5kKCIjIitjLmZpcnN0Q2hvaWNlT2JqZWN0SWQpLnByb3AoImRpc2FibGVkIiwKITApLGEuZmluZCgiIyIrYy5zZWNvbmRDaG9pY2VPYmplY3RJZCkucHJvcCgiZGlzYWJsZWQiLCEwKSl9LGMuYXNzaWduVmFsdWVzPWZ1bmN0aW9uKCl7dmFyIGE9JChjLnNjb3BlKSxiPWEuZmluZCgiIyIrYy5maXJzdEhvdXJTZWxlY3QpLmZpbmQoIjpzZWxlY3RlZCIpLnRleHQoKSxkPW5ldyBEYXRlKGEuZmluZCgiIyIrYy5maXJzdENob2ljZU9iamVjdElkKS52YWwoKSk7ZC5zZXRIb3VycyhiLnNwbGl0KCI6IilbMF0sYi5zcGxpdCgiOiIpWzFdKTsiSW52YWxpZCBEYXRlIiE9PWQudG9EYXRlU3RyaW5nKCkmJihjLmZpcnN0Q2hvaWNlPWQuZGF0ZUZvcm1hdCgiWTptOmQgSDppIikpO2I9YS5maW5kKCIjIitjLnNlY29uZEhvdXJTZWxlY3QpLmZpbmQoIjpzZWxlY3RlZCIpLnRleHQoKTtkPW5ldyBEYXRlKGEuZmluZCgiIyIrYy5zZWNvbmRDaG9pY2VPYmplY3RJZCkudmFsKCkpO2Quc2V0SG91cnMoYi5zcGxpdCgiOiIpWzBdLGIuc3BsaXQoIjoiKVsxXSk7IkludmFsaWQgRGF0ZSIhPT0KZC50b0RhdGVTdHJpbmcoKSYmKGMuc2Vjb25kQ2hvaWNlPWQuZGF0ZUZvcm1hdCgiWTptOmQgSDppIikpO2Mud2FpdGluZ09uU2l0ZT1hLmZpbmQoInNlbGVjdFtuYW1lPSd3YWl0aW5nb25zaXRlJ10gb3B0aW9uOnNlbGVjdGVkIikudmFsKCl9LGMuc2V0dXBEYXRlPWZ1bmN0aW9uKGEsYixkLGUpe3ZhciBnPSQoIiMiK2EpLGs9bmV3IERhdGU7Yy5pc0RhdGUoZCl8fChkPW5ldyBEYXRlKTtjLmlzRGF0ZShlKXx8KGU9bmV3IERhdGUoay5nZXRUaW1lKCkrYy5kYXlUb01pbGxpc2Vjb25kcygzMCkpKTtnLm9uKCJrZXlkb3duIixmdW5jdGlvbihmKXtmLnByZXZlbnREZWZhdWx0KCk7cmV0dXJuITF9KTtnLmRhdGEoImRhdGV0aW1lcGlja2VyT3B0aW9ucyIse2RhdGVTZWxlY3RlZDohMSx0aW1lU2VsZWN0ZWQ6ITF9KTskKCIjYWN0aXZlc2l0ZWxhbmd1YWdlIikudmFsKCkmJiJFTkdMSVNIIj09PSQoIiNhY3RpdmVzaXRlbGFuZ3VhZ2UiKS52YWwoKXx8JC5kYXRldGltZXBpY2tlci5zZXRMb2NhbGUoImZyIik7CmcuZGF0ZXRpbWVwaWNrZXIoJC5leHRlbmQoe30scCx7aWQ6YSsiX2RhdGVUaW1lUGlja2VyIix0aW1lcGlja2VyOiExLGZvcm1hdDoiWS9tL2QiLG1pbkRhdGU6ZCxtYXhEYXRlOmUsZGlzYWJsZWREYXRlczpjLmdldENsb3NlZERhdGVzQmV0d2VlbihkLGUpLG9uU2hvdzpmdW5jdGlvbihmKXtmPSQodGhpcykuZGF0YSgpLm9wdGlvbnMuZGF0ZVNlbGVjdGVkP2Y6ZDtjLnVwZGF0ZUhvdXJzKGYsYSxiKX19KSl9LGMudXBkYXRlSG91cnM9ZnVuY3Rpb24oYSxiLGQpe2Q9JChjLnNjb3BlKS5maW5kKCIjIitkKTt2YXIgZT1jLmdldEFsbG93ZWRUaW1lcyhhLGIpO2E9Yy5nZXREYXRlU2NoZWR1bGUoYSk7Yy5kaXNwbGF5UGlja2VyTWVzc2FnZShiLGEpO2QuZW1wdHkoKTswPGUubGVuZ3RoP2QucHJvcCgiZGlzYWJsZWQiLCExKTpkLnByb3AoImRpc2FibGVkIiwhMCk7Zm9yKHZhciBnIGluIGUpaWYoZS5oYXNPd25Qcm9wZXJ0eShnKSl7Yj1lW2ddO3ZhciBrPSQoIjxvcHRpb24+PC9vcHRpb24+IikudGV4dChlW2ddKTsKYj09PWEuc3RhcnRIb3VyKyI6IithLnN0YXJ0TWluJiZrLnByb3AoInNlbGVjdGVkIiwic2VsZWN0ZWQiKTtkLmFwcGVuZChrKX19KTt2YXIgcD17bGFuZzoiRU5HTElTSCI9PT0kKCIjYWN0aXZlc2l0ZWxhbmd1YWdlIikudmFsKCk\/ImVuIjoiZnIiLGFsbG93Qmxhbms6ITAsZGF5T2ZXZWVrU3RhcnQ6MSxzdGVwOjMwLG9uR2VuZXJhdGU6Yy5waWNrZXJPbkdlbmVyYXRlLG9uU2VsZWN0VGltZTpjLnBpY2tlck9uU2VsZWN0VGltZSxvblNlbGVjdERhdGU6Yy5waWNrZXJPblNlbGVjdERhdGUsb25DbG9zZTpjLnBpY2tlck9uQ2xvc2V9O3JldHVybiBjfXZhciBtYWlsU2NoZWR1bGU9bmV3IE1haWxTY2hlZHVsZSh7c2NvcGU6IiNtYWlsU2NoZWR1bGVGb3JtIixpc01vYmlsZTowPCQoIiNpc01vYmlsZSIpLmxlbmd0aD8kKCIjaXNNb2JpbGUiKS52YWwoKToiIn0pOwpmdW5jdGlvbiBmZXRjaEFuZEluaXREZWFsZXJIb3VycyhoKXtkZWFsZXJTdG9yZUhvdXJzW2hdfHwiIj09PWg\/bWFpbFNjaGVkdWxlLmluaXQoKTpmZXRjaCgiL2FqYXgvR2V0U3RvcmVIb3Vycz9kZWFsZXJfbmFtZT0iK2gpLnRoZW4oYz0+Yy5qc29uKCkpLnRoZW4oYz0+e2MuaXNPayYmYy5ob3Vyc0luZm8\/ZGVhbGVyU3RvcmVIb3Vyc1toXT1jLmhvdXJzSW5mbzpjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gZmV0Y2ggc3RvcmUgaG91cnMgZm9yIGRlYWxlciBuYW1lOiAiK2grIiBlcnJvcjogIitjLmVycm9yKTttYWlsU2NoZWR1bGUuaW5pdCgpfSkuY2F0Y2goYz0+Y29uc29sZS5lcnJvcigiRXJyb3IgZmV0Y2hpbmcgc3RvcmUgaG91cnMgZm9yIGRlYWxlciBuYW1lICIraCsiOiAiLGMpKX0KJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKXtjb25zdCBoPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXJ2aWNlRW1haWxzU2VsZWN0Iik7aWYoaCYmaC5vcHRpb25zJiYxPGgub3B0aW9ucy5sZW5ndGgpe2NvbnN0IGM9aC5vcHRpb25zWzBdLmdldEF0dHJpYnV0ZSgiZGF0YS1kZWFsZXJuYW1lIik7ZmV0Y2hBbmRJbml0RGVhbGVySG91cnMoYyk7aC5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLCgpPT57aWYoMDw9aC5zZWxlY3RlZEluZGV4KXtjb25zdCBsPWgub3B0aW9uc1toLnNlbGVjdGVkSW5kZXhdLmdldEF0dHJpYnV0ZSgiZGF0YS1kZWFsZXJuYW1lIik7ZmV0Y2hBbmRJbml0RGVhbGVySG91cnMobCl9fSl9ZWxzZSBtYWlsU2NoZWR1bGUuaW5pdCgpfSk7Ci8qKiAvanMvbWFpbFNlcnZpY2VXaWRnZXQuanMgKiovCnZhciBfX19kMmNfbWFpbFNlcnZpY2VXaWRnZXRqc19jX29uPSIyMDI1LTA1LTIzIDE3OjEzOjA1IjsndXNlIHN0cmljdCc7dmFyIF9fX2QyY19tYWlsU2VydmljZVdpZGdldGpzX2Nfb249IjIwMjQtMDMtMjUgMTI6MzM6NDgiOyJ1c2Ugc3RyaWN0Ijt2YXIgU2VydmljZVdpZGdldD1mdW5jdGlvbihhKXtpZigiIj09PWEpdGhyb3cgbmV3IEV4cGVjdGlvbigiRW1wdHkgYXJndW1lbnQsIGV4cGVjdGVkIGpRdWVyeSBvYmplY3Qgb3Igc3RyaW5nIik7dGhpcy5mb3JtPSQoYSk7dGhpcy5zY2hlZHVsZT1uZXcgTWFpbFNjaGVkdWxlKHtzY29wZTp0aGlzLmZvcm19KTt0aGlzLmZvcm1IYW5kbGU9dGhpcy5mb3JtLmRhdGEoImZvcm0iKTt0aGlzLmRhdGVJZD10aGlzLmZvcm0uZmluZCgiLnNzZi1kYXRlIikuYXR0cigiaWQiKTt0aGlzLmluaXQoKX07CihmdW5jdGlvbigpe3RoaXMuaW5pdD1mdW5jdGlvbigpe3RoaXMuc2NoZWR1bGUuZmlyc3RDaG9pY2VPYmplY3RJZD10aGlzLmRhdGVJZDt0aGlzLnNjaGVkdWxlLmluaXQoKTt0aGlzLmNhbGVuZGFyT3BlbkhhbmRsZXIoKTt0aGlzLnN1Ym1pdEZvcm1IYW5kbGVyKCk7dGhpcy5zZXRJbnB1dE1hc2tzKCk7dGhpcy5zYWZhcmlGaXgoKX07dGhpcy5nZXRDbGFzcz1mdW5jdGlvbihhKXtyZXR1cm4iIj09PWF8fCJ1bmRlZmluZWQiPT09dHlwZW9mIGE\/IiI6YS5yZXBsYWNlKC8gXHMrLywiIC4iKS5yZXBsYWNlKC8oICkoPz1bYS16QS16XSkvZywiIC4iKS5yZXBsYWNlKC9eLywiLiIpLnJlcGxhY2UoLyAvZywiIil9O3RoaXMuc2V0SW5wdXRNYXNrcz1mdW5jdGlvbigpeyhuZXcgRm9ybSkubWFza1Bob25lKCIuc3NmLXBob25lIil9O3RoaXMuY2FsZW5kYXJPcGVuSGFuZGxlcj1mdW5jdGlvbigpe3ZhciBhPXRoaXMuZm9ybS5jbG9zZXN0KCIjTWFpbk1lbnVfU0VSVklDRSIpO2lmKGEubGVuZ3RoKXt2YXIgYj0KdGhpcy5mb3JtLmZpbmQoIi5zc2YtZGF0ZSIpO2Iub24oImZvY3VzIixmdW5jdGlvbihjKXthLmFkZENsYXNzKCJtZW51LWFjdGl2ZSIpfSk7Yi5vbigiYmx1ciIsZnVuY3Rpb24oYyl7JCgiI3NzZi1kYXRlX2RhdGVUaW1lUGlja2VyIikuaXMoIjp2aXNpYmxlIik\/JCgiI3NzZi1kYXRlX2RhdGVUaW1lUGlja2VyIikuY3NzKCJkaXNwbGF5Iiwibm9uZSIpOmEucmVtb3ZlQ2xhc3MoIm1lbnUtYWN0aXZlIil9KTthLmZpbmQoIi5tZW51LXNlcnZpY2Utd3JhcHBlciIpLm9uKCJtb3VzZWxlYXZlIixmdW5jdGlvbigpeyQoIiNzc2YtZGF0ZV9kYXRlVGltZVBpY2tlciIpLmlzKCI6dmlzaWJsZSIpfHxhLnJlbW92ZUNsYXNzKCJtZW51LWFjdGl2ZSIpfSl9fTt0aGlzLnNldEVtYWlsSGFuZGxlclZhbHVlc0FuZEJvZHk9ZnVuY3Rpb24oYSl7ZW1haWxIYW5kbGVyLnVzZXJGaXJzdE5hbWU9dGhpcy5mb3JtLmZpbmQoIi5zc2YtbmFtZSIpLnZhbCgpO2VtYWlsSGFuZGxlci51c2VyUGhvbmU9CnRoaXMuZm9ybS5maW5kKCIuc3NmLXBob25lIikudmFsKCk7ZW1haWxIYW5kbGVyLnVzZXJFbWFpbD10aGlzLmZvcm0uZmluZCgiLnNzZi1lbWFpbCIpLnZhbCgpO2VtYWlsSGFuZGxlci5tYWtlPXRoaXMuZm9ybS5maW5kKCIuc3NmLXZlaGljbGUiKS52YWwoKTtlbWFpbEhhbmRsZXIubW9kZWw9IiI7ZW1haWxIYW5kbGVyLnllYXI9IiI7ZW1haWxIYW5kbGVyLnZpbj10aGlzLmZvcm0uZmluZCgiLnNzZi12aW4iKS52YWwoKTthPWEucmVwbGFjZSgve1wkUVVFU1RJT05TfS9nLHRoaXMuZm9ybS5maW5kKCIuc3NmLWNvbW1lbnQiKS52YWwoKSk7YT1hLnJlcGxhY2UoL3tcJEZOQU1FfS9nLHRoaXMuZm9ybS5maW5kKCIuc3NmLW5hbWUiKS52YWwoKSk7YT1hLnJlcGxhY2UoL3tcJEVNQUlMUEhPTkV9L2csdGhpcy5mb3JtLmZpbmQoIi5zc2YtcGhvbmUiKS52YWwoKSk7YT1hLnJlcGxhY2UoL3tcJEVNQUlMTUFLRX0vZyx0aGlzLmZvcm0uZmluZCgiLnNzZi12ZWhpY2xlIikudmFsKCkpOwphPWEucmVwbGFjZSgve1wkVklOfS9nLHRoaXMuZm9ybS5maW5kKCIuc3NmLXZpbiIpLnZhbCgpKTthPWEucmVwbGFjZSgve1wkRU1BSUx9L2csdGhpcy5mb3JtLmZpbmQoIi5zc2YtZW1haWwiKS52YWwoKSk7YT1hLnJlcGxhY2UoL3tcJFdBSVRJTkdPTlNJVEV9L2csdGhpcy5mb3JtLmZpbmQoInNlbGVjdFtuYW1lPSd3YWl0aW5nb25zaXRlJ10gb3B0aW9uOnNlbGVjdGVkIikudmFsKCkpO3JldHVybiBhLnJlcGxhY2UoL3tcJFRSQU5TUE9SVE9QVElPTn0vZyx0aGlzLmZvcm0uZmluZCgic2VsZWN0W25hbWU9J3ByZWZlcnJlZFRyYW5zcG9ydCddIG9wdGlvbjpzZWxlY3RlZCIpLnRleHQoKSl9O3RoaXMuZ2V0U2VuZFRvPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZm9ybS5maW5kKCIudGV4dFNlbmRUb0VtYWlsIikudmFsKCl9O3RoaXMuc3VibWl0Rm9ybUhhbmRsZXI9ZnVuY3Rpb24oKXt2YXIgYT10aGlzO3RoaXMuZm9ybS5maW5kKCIuc3NmLXN1Ym1pdCA+IGJ1dHRvbiIpLm9uKCJjbGljayIsCmZ1bmN0aW9uKGIpe2IucHJldmVudERlZmF1bHQoKTtiPW1haWxQYWdlLmpxU2NvcGU7dmFyIGM9bWFpbFBhZ2UubWFpbElEO21haWxQYWdlLm1haWxJRD1hLmZvcm1IYW5kbGU7bWFpbFBhZ2UuanFTY29wZT1hLmdldENsYXNzKGEuZm9ybS5hdHRyKCJjbGFzcyIpKSsnW2RhdGEtZm9ybT0iJythLmZvcm1IYW5kbGUrJyJdJzttYWlsUGFnZS5zYXZlKCk7bWFpbFBhZ2UuanFTY29wZT1iO21haWxQYWdlLm1haWxJRD1jfSl9O3RoaXMuc2FmYXJpRml4PWZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5mb3JtLmZpbmQoIi5qcVRyYW5zZm9ybVNhZmFyaVRleHRhcmVhID4gZGl2Iik7aWYoMCE9YS5sZW5ndGgpe3ZhciBiPWEuZmluZCgidGV4dGFyZWEiKS5jc3MoIndpZHRoIik7YS5jc3Moe3dpZHRoOmIsIm1pbi1oZWlnaHQiOiI1MHB4In0pfX07dGhpcy5zZXRFbWFpbFNlbnRDYWxsYmFjaz1mdW5jdGlvbigpe3ZhciBhPXRoaXMsYj1tYWlsUGFnZS5lbWFpbFNlbnQ7bWFpbFBhZ2UuZW1haWxTZW50PQpmdW5jdGlvbihjKXtiKGMpO2MmJmEucmVzZXRGb3JtKCk7bWFpbFBhZ2UuZW1haWxTZW50PWJ9fTt0aGlzLnJlc2V0Rm9ybT1mdW5jdGlvbigpe3RoaXMuZm9ybS5maW5kKCdpbnB1dFt0eXBlPSJ0ZXh0Il0sIHRleHRhcmVhJykudmFsKCIiKTt0aGlzLnNldFdhdGVybWFya3MoKX19KS5jYWxsKFNlcnZpY2VXaWRnZXQucHJvdG90eXBlKTsKJChmdW5jdGlvbigpeyQoImZvcm0uc2hvcnQtc2VydmljZS1mb3JtIikuZWFjaChmdW5jdGlvbigpe3ZhciBhPSQodGhpcykuZGF0YSgiZm9ybSIpO3dpbmRvd1sic2VydmljZUZvcm1fIithXT1uZXcgU2VydmljZVdpZGdldCgkKHRoaXMpKX0pOyQoIi5zZXJ2aWNlLWhlYWRlci1mb3JtIikub24oIm1vdXNlZW50ZXIgbW91c2VsZWF2ZSIsZnVuY3Rpb24oYSl7MD09PSQoIi5zZXJ2aWNlLWhlYWRlci1mb3JtLmlzT3BlbiIpLmxlbmd0aCYmIm1vdXNlbGVhdmUiIT09YS50eXBlJiYkKCIuc2VydmljZS1oZWFkZXItZm9ybSIpLmFkZENsYXNzKCJpc09wZW4iKTtpZigibW91c2VsZWF2ZSI9PT1hLnR5cGUpe2EuZnJvbUVsZW1lbnQ9PT0kKCIuY3JlZGl0U2NvcmVQb3B1cEZvcm0iKVswXSYmJCgiLnNlcnZpY2UtaGVhZGVyLWZvcm0iKS5yZW1vdmVDbGFzcygiaXNPcGVuIik7dmFyIGI9JChhLnRvRWxlbWVudCkuaGFzQ2xhc3MoInhkc29mdF9kYXRldGltZXBpY2tlciIpfHwkKGEudG9FbGVtZW50KS5jbG9zZXN0KCIueGRzb2Z0X2RhdGV0aW1lcGlja2VyIikubGVuZ3RoLApjPSQoYS50b0VsZW1lbnQpLmhhc0NsYXNzKCJwYWMtY29udGFpbmVyIik7bnVsbD09PWEudG9FbGVtZW50fHxifHxjfHwkKCIuc2VydmljZS1oZWFkZXItZm9ybSIpLnJlbW92ZUNsYXNzKCJpc09wZW4iKX19KX0pOwovKiogL2pzL2dlbmVyaWNNYWlsLmpzICoqLwp2YXIgX19fZDJjX2dlbmVyaWNNYWlsanNfY19vbj0iMjAyNS0wNS0yMyAxNzoxMDoxNSI7J3VzZSBzdHJpY3QnO3ZhciBfX19kMmNfZ2VuZXJpY01haWxqc19jX29uPSIyMDI0LTExLTI4IDEwOjMwOjExIjsidXNlIHN0cmljdCI7CkdlbmVyaWNNYWlsPWZ1bmN0aW9uKHYpe2Z1bmN0aW9uIG0oYyl7Yz1jLnRvU3RyaW5nKCk7cmV0dXJuIGMucmVwbGFjZSgvPFwvP1tePl0rPi9naSwiIil9dmFyIGI9dGhpcztiLm1haWxJRD12O2IuZW1haWxTZW50PWZ1bmN0aW9uKGMpe21haWxTZW50SGFuZGxlcj1nZXRNYWlsU2VudEhhbmRsZXIoYi5tYWlsSUQpO2M\/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\/dGhpcy5jc3Moe3Bvc2l0aW9uOiJhYnNvbHV0ZSIsbGVmdDooJCh3aW5kb3cpLndpZHRoKCktJCgiI01pc3NpbmdWYWxpZGF0aW9uTXNnIikub3V0ZXJXaWR0aCgpKS8yLAp0b3A6JCgiI3NlbmRFbWFpbEZvcm1TdWJtaXQiKS5wb3NpdGlvbigpLnRvcC0xMH0pOnRoaXMuY3NzKHtwb3NpdGlvbjoiYWJzb2x1dGUiLGxlZnQ6KCQod2luZG93KS53aWR0aCgpLSQoIiNjb250YWluZXIiKS5vdXRlcldpZHRoKCkpLzIsdG9wOigkKHdpbmRvdykuaGVpZ2h0KCktJCgiI2NvbnRhaW5lciIpLm91dGVySGVpZ2h0KCkpLzJ9KTtyZXR1cm4gdGhpc307InVuZGVmaW5lZCIhPXR5cGVvZiBtYWlsUGFnZS5tYWlsSUQmJmVtYWlsSGFuZGxlci5sb2dGb3JtUmVxdWVzdCgiRm9ybUxvYWRlZCIsbWFpbFBhZ2UubWFpbElEKX0pOwovKiogL2pzL21haWxRdWlja0VtYWlsV2lkZ2V0LmpzICoqLwp2YXIgX19fZDJjX21haWxRdWlja0VtYWlsV2lkZ2V0anNfY19vbj0iMjAyNS0wNS0yMyAxNzoxMjo1MiI7J3VzZSBzdHJpY3QnO3ZhciBfX19kMmNfbWFpbFF1aWNrRW1haWxXaWRnZXRqc19jX29uPSIyMDI0LTAzLTI1IDEyOjMzOjQyIjsidXNlIHN0cmljdCI7CnZhciBtYWlsUXVpY2tFbWFpbD1mdW5jdGlvbigpe3ZhciBhPXtuYW1lOiIiLGVtYWlsOiIiLG1lc3NhZ2U6IiIscGhvbmU6IiIsbWFrZToiIixtb2RlbDoiIix5ZWFyOiIiLHN0b2NrTnVtYmVyOiIiLGRlcGFydG1lbnQ6IiIsc2VsZWN0b3I6Ii5kZWZhdWx0IixzY29wZTpudWxsLGFzc2lnblZhbHVlczpmdW5jdGlvbigpe2EubmFtZT0kKCIjcXVpY2tFbWFpbE5hbWUiLGEuc2NvcGUpLnZhbCgpO2EuZW1haWw9JCgiI3F1aWNrRW1haWxBZGRyIixhLnNjb3BlKS52YWwoKTthLnBob25lPSQoIiNxdWlja0VtYWlsVGVsIixhLnNjb3BlKS52YWwoKTthLm1lc3NhZ2U9JCgiI3F1aWNrRW1haWxNc2ciLGEuc2NvcGUpLnZhbCgpO2EuZGVwYXJ0bWVudD0kKCIjcXVpY2tFbWFpbERlcGFydG1lbnQiLGEuc2NvcGUpLnZhbCgpO2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgYS5uYW1lfHxudWxsPT1hLm5hbWUpYS5uYW1lPSIiO2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgYS5lbWFpbHx8bnVsbD09YS5lbWFpbClhLmVtYWlsPQoiIjtpZigidW5kZWZpbmVkIj09dHlwZW9mIGEucGhvbmV8fG51bGw9PWEucGhvbmUpYS5waG9uZT0iIjtpZigidW5kZWZpbmVkIj09dHlwZW9mIGEubWVzc2FnZXx8bnVsbD09YS5tZXNzYWdlKWEubWVzc2FnZT0iIjtpZigidW5kZWZpbmVkIj09dHlwZW9mIGEuZGVwYXJ0bWVudHx8bnVsbD09YS5kZXBhcnRtZW50KWEuZGVwYXJ0bWVudD0iIjt2YXIgYj1kMmNtZWRpYS5odG1sRmlsZSgpOzA8bG9jYXRpb24uaHJlZi5pbmRleE9mKCItIikmJihiPWIuc3BsaXQoIi0iKSwwPGIubGVuZ3RoJiYoYS5tYWtlPWJbMF0ucmVwbGFjZSgiXyIsIi0iKSksMTxiLmxlbmd0aCYmKGEubW9kZWw9YlsxXS5yZXBsYWNlKCJfIiwiLSIpKSwyPGIubGVuZ3RoJiYoYS55ZWFyPWJbMl0pLDM8Yi5sZW5ndGgmJihhLnN0b2NrTnVtYmVyPWJbM10ucmVwbGFjZSgiaWQiLCIiKSksMDwkKCIjZXhwcmVzc3N0b2NrbnVtYmVyIixhLnNjb3BlKS5sZW5ndGgmJjI8JCgiI2V4cHJlc3NzdG9ja251bWJlciIsYS5zY29wZSkudmFsKCkubGVuZ3RoJiYKKGEuc3RvY2tOdW1iZXI9JCgiI2V4cHJlc3NzdG9ja251bWJlciIsYS5zY29wZSkudmFsKCkpLDA8YS5tb2RlbC5sZW5ndGgmJjA9PWEueWVhci5sZW5ndGgmJiFpc05hTihhLm1vZGVsKSYmMTk4MDxhLm1vZGVsJiYyMTAwPmEubW9kZWwmJihhLnllYXI9c2VhcmNoQ3JpdGVyaWEubW9kZWwsYS5tb2RlbD0iIikpOyJ1bmRlZmluZWQiPT10eXBlb2YgYS5tYWtlJiYoYS5tYWtlPSIiKTsidW5kZWZpbmVkIj09dHlwZW9mIGEubW9kZWwmJihhLm1vZGVsPSIiKTsidW5kZWZpbmVkIj09dHlwZW9mIGEueWVhciYmKGEueWVhcj0iIik7InVuZGVmaW5lZCI9PXR5cGVvZiBhLm1lc3NhZ2UmJihhLm1lc3NhZ2U9IiIpfSxhcHBseVBob25lV006ZnVuY3Rpb24oKXsiKCAgICkgICAgLSAgICAiIT0kKCIjcXVpY2tFbWFpbFRlbCIsYS5zY29wZSkudmFsKCkmJiIiIT0kKCIjcXVpY2tFbWFpbFRlbCIsYS5zY29wZSkudmFsKCl8fCQoIiNxdWlja0VtYWlsVGVsIixhLnNjb3BlKS52YWwoIiIpfSxpbml0OmZ1bmN0aW9uKCl7InVuZGVmaW5lZCIhPQp0eXBlb2YgJCgiI2NvdXBvbkRlZmF1bHRNc2ciKS52YWwoKSYmMDwkKCIjY291cG9uRGVmYXVsdE1zZyIpLnZhbCgpLmxlbmd0aCYmKCQoIiNxdWlja0VtYWlsTXNnIixhLnNjb3BlKS5jc3MoImhlaWdodCIsIjUwcHgiKSwkKCIjcXVpY2tFbWFpbE1zZyIsYS5zY29wZSkuYXR0cigicm93cyIsMiksJCgiI3F1aWNrRW1haWxNc2ciLGEuc2NvcGUpLnZhbCgkKCIjY291cG9uRGVmYXVsdE1zZyIpLnZhbCgpKSk7JCgiLnNlbmRRdWlja0VtYWlsIixhLnNjb3BlKS5vbigiY2xpY2siLGEuc2F2ZSk7KG5ldyBGb3JtKS5tYXNrUGhvbmUoIiNxdWlja0VtYWlsVGVsIik7JCgiI3F1aWNrRW1haWxUZWwiKS5vbigiYmx1ciIsZnVuY3Rpb24oKXthLnNldFNlbGVjdG9yKHRoaXMpO3NldFRpbWVvdXQoZnVuY3Rpb24oKXthLmFwcGx5UGhvbmVXTSgpfSwyNTApfSl9LHJlc2V0V2F0ZXJtYXJrc0NvbG9yczpmdW5jdGlvbigpezA9PWEubmFtZS5sZW5ndGgmJigkKCIjcXVpY2tFbWFpbE5hbWUiLGEuc2NvcGUpLmNzcygiY29sb3IiLAoiIzU3NTc1NyIpLCQoIiNxdWlja0VtYWlsTmFtZSIsYS5zY29wZSkudmFsKCIiKSk7MD09YS5lbWFpbC5sZW5ndGgmJigkKCIjcXVpY2tFbWFpbEFkZHIiLGEuc2NvcGUpLmNzcygiY29sb3IiLCIjNTc1NzU3IiksJCgiI3F1aWNrRW1haWxBZGRyIixhLnNjb3BlKS52YWwoIiIpKTswPT1hLm1lc3NhZ2UubGVuZ3RoJiYoJCgiI3F1aWNrRW1haWxNc2ciLGEuc2NvcGUpLmNzcygiY29sb3IiLCIjNTc1NzU3IiksJCgiI3F1aWNrRW1haWxNc2ciLGEuc2NvcGUpLnZhbCgiIikpfSxzZXRTZWxlY3RvcjpmdW5jdGlvbigpe2Euc2NvcGU9JCh0aGlzKS5jbG9zZXN0KCJmb3JtIik7cmV0dXJuIGEuc2NvcGV9LHNhdmU6ZnVuY3Rpb24oYil7YiYmYi5wcmV2ZW50RGVmYXVsdCgpO2Euc2V0U2VsZWN0b3IuY2FsbCh0aGlzKTswPCQoIiNlbWFpbFN1Y2Nlc3NNZXNzYWdlIikubGVuZ3RoJiYoJCgiI2VtYWlsU3VjY2Vzc01lc3NhZ2UiKS5wYXJlbnQoKS5pcygiYm9keSIpfHwkKCIjZW1haWxTdWNjZXNzTWVzc2FnZSIpLmFwcGVuZFRvKCJib2R5IikpOwowPCQoIiNlbWFpbEZhaWxNZXNzYWdlIikubGVuZ3RoJiYoJCgiI2VtYWlsRmFpbE1lc3NhZ2UiKS5wYXJlbnQoKS5pcygiYm9keSIpfHwkKCIjZW1haWxGYWlsTWVzc2FnZSIpLmFwcGVuZFRvKCJib2R5IikpO2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgJCgiI3RleHRTYXZlTWFpbElEIixhLnNjb3BlKS52YWwoKSYmIlJlYmF0ZUNvdXBvblByb21vIj09JCgiI3RleHRTYXZlTWFpbElEIixhLnNjb3BlKS52YWwoKSYmKCQudmFsaWRpdHkuc3RhcnQoKSwkKCIjcXVpY2tFbWFpbE5hbWUiLGEuc2NvcGUpLnJlcXVpcmUoKS5ub25IdG1sKCksJCgiI3F1aWNrRW1haWxNc2ciLGEuc2NvcGUpLnJlcXVpcmUoKS5ub25IdG1sKCksJCgiI3F1aWNrRW1haWxBZGRyIixhLnNjb3BlKS5yZXF1aXJlKCkudmFsaWRFbWFpbEFkZHJlc3MoKSxiPSQudmFsaWRpdHkuZW5kKCksIWIudmFsaWQpKXJldHVybiAkKCIjTWlzc2luZ1ZhbGlkYXRpb25Nc2ciKS5jc3Moe3Bvc2l0aW9uOiJhYnNvbHV0ZSIsbGVmdDo2MCwKdG9wOjIxNCx3aWR0aDozMDF9KSwkKCIjTWlzc2luZ1ZhbGlkYXRpb25Nc2ciKS5zaG93KCksJChkb2N1bWVudCkub24oIm1vdXNlZG93biIsZnVuY3Rpb24oYyl7JC52YWxpZGl0eS5jbGVhcigpOyQoIiNNaXNzaW5nVmFsaWRhdGlvbk1zZyIpLmhpZGUoKTskKHRoaXMpLm9mZihjKX0pLCExO2EuYXNzaWduVmFsdWVzKCk7Yj0hMDskLnZhbGlkaXR5LnNldHVwKHtvdXRwdXRNb2RlOiJwb3B1cCIsc2Nyb2xsVG86ITF9KS5zdGFydCgpOyQoYS5zY29wZSkuZmluZCgiaW5wdXQ6bm90KDpoaWRkZW4pLCB0ZXh0YXJlYSIpLm5vbkh0bWwoKTswPCQoIiNleHByZXNzU2VsZWN0UmVxdWlyZWQiLGEuc2NvcGUpLmxlbmd0aCYmIjEiPT0kKCIjZXhwcmVzc1NlbGVjdFJlcXVpcmVkIixhLnNjb3BlKS52YWwoKSYmJCgiI3F1aWNrRW1haWxEZXBhcnRtZW50IixhLnNjb3BlKS5yZXF1aXJlKCkubm9uSHRtbCgpOzA8JCgiI2V4cHJlc3NQaG9uZVJlcXVpcmVkIixhLnNjb3BlKS5sZW5ndGgmJiIxIj09CiQoIiNleHByZXNzUGhvbmVSZXF1aXJlZCIsYS5zY29wZSkudmFsKCkmJigkKCIjcXVpY2tFbWFpbFRlbCIsYS5zY29wZSkuaGFzQ2xhc3MoInJlcXVpcmVkIil8fCQoIiNxdWlja0VtYWlsVGVsIixhLnNjb3BlKS5hZGRDbGFzcygicmVxdWlyZWQiKSwkKCIjcXVpY2tFbWFpbFRlbCIsYS5zY29wZSkucmVxdWlyZSgpKTskKCIjcXVpY2tFbWFpbE5hbWUiLGEuc2NvcGUpLnJlcXVpcmUoKS5ub25IdG1sKCk7JCgiI3F1aWNrRW1haWxUZWwiKS52YWxpZGF0ZVBob25lKCk7JCgiI3F1aWNrRW1haWxBZGRyIixhLnNjb3BlKS5yZXF1aXJlKCkudmFsaWRFbWFpbEFkZHJlc3MoKTskKCIjcXVpY2tFbWFpbE1zZyIsYS5zY29wZSkucmVxdWlyZSgpLm5vbkh0bWwoKTtiPSQudmFsaWRpdHkuZW5kKCk7KGI9Yi52YWxpZCk\/KCJ1bmRlZmluZWQiIT10eXBlb2YgJCgiI3RleHRTYXZlTWFpbElEIixhLnNjb3BlKS52YWwoKSYmIiIhPSQoIiN0ZXh0U2F2ZU1haWxJRCIsYS5zY29wZSkudmFsKCk\/bWFpbFBhZ2UubWFpbElEPQokKCIjdGV4dFNhdmVNYWlsSUQiLGEuc2NvcGUpLnZhbCgpOm1haWxQYWdlLm1haWxJRD0iUXVpY2tFbWFpbCIsInVuZGVmaWVuZCIhPXR5cGVvZiAkKCIjbmV3U2VjdGlvbk92ZXJyaWRlIikudmFsKCkmJiIxIj09JCgiI25ld1NlY3Rpb25PdmVycmlkZSIpLnZhbCgpJiYtMT09YS5zY29wZS5oYXNDbGFzcygibWVudSIpJiYobWFpbFBhZ2UubWFpbElEPSJRdWlja0VtYWlsTmV3SW52ZW50b3J5IiksInVuZGVmaW5lZCIhPXR5cGVvZiAkKCIjcHJpbnRGbGFnIixhLnNjb3BlKS52YWwoKSYmIjEiPT0kKCIjcHJpbnRGbGFnIixhLnNjb3BlKS52YWwoKSYmInVuZGVmaW5lZCIhPSQoIiNjb3Vwb25QcmludFVSTCIpLnZhbCgpJiYtMTwkKCIjY291cG9uUHJpbnRVUkwiKS52YWwoKS5pbmRleE9mKCIuaHRtbCIpJiYocHJpbnRDb3Vwb25Vcmw9JCgiI2NvdXBvblByaW50VVJMIikudmFsKCksd2luZG93Lm9wZW4ocHJpbnRDb3Vwb25VcmwsIl9ibGFuayIpKSxtYWlsUGFnZS5qcVNjb3BlPWEuc2NvcGUsCm1haWxQYWdlLnNhdmUoKSk6KCQoIiNxdWlja0VtYWlsRm9ybSAuTWlzc2luZ1ZhbGlkYXRpb25Nc2ciLGEuc2NvcGUpLnNob3coKSwkKCIjcXVpY2tFbWFpbEZvcm0iLGEuc2NvcGUpLm9uKCJjbGljayIsZnVuY3Rpb24oYyl7JCh0aGlzKS5maW5kKCIuTWlzc2luZ1ZhbGlkYXRpb25Nc2ciKS5oaWRlKCk7JCh0aGlzKS5vZmYoYyl9KSk7cmV0dXJuITF9LGlzRW1haWw6ZnVuY3Rpb24oYil7cmV0dXJuL14oW2EtekEtWjAtOV8uKy1dKStAKChbYS16QS1aMC05LV0pK1wuKSsoW2EtekEtWjAtOV17Miw0fSkrJC8udGVzdChiKX0sdmFsaWRhdGVFbWFpbDpmdW5jdGlvbihiKXt2YXIgYz0hMTskLmFqYXgoe3R5cGU6IkdFVCIsdXJsOiIvYWpheC92YWxpZGF0ZUVtYWlsQWNjb3VudD93c3dpZHRoPTAmZW1haWw9IitiLGFzeW5jOiExLHN1Y2Nlc3M6ZnVuY3Rpb24oZCxlLGYpezE9PWQmJihjPSEwKX19KTtyZXR1cm4gY30sZ2V0U2VuZFRvOmZ1bmN0aW9uKCl7dmFyIGI9CiQoIiNxdWlja0VtYWlsRGVwYXJ0bWVudCIsYS5zY29wZSkudmFsKCk7cmV0dXJuICQoIiNleHByZXNzRGVwYXJ0bWVudEVtYWlsXyIrYikudmFsKCl9LGdldFNlbmRUb0FkZjpmdW5jdGlvbigpe3ZhciBiPSQoIiNxdWlja0VtYWlsRGVwYXJ0bWVudCIsYS5zY29wZSkudmFsKCk7cmV0dXJuICQoIiNleHByZXNzRGVwYXJ0bWVudEVtYWlsQWRmXyIrYikudmFsKCl9fTtyZXR1cm4gYX0oKTskKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpe21haWxRdWlja0VtYWlsLnNldFNlbGVjdG9yLmNhbGwoJCgiI3F1aWNrRW1haWxGb3JtLmRlZmF1bHQiKSk7bWFpbFF1aWNrRW1haWwuaW5pdCgpOzA8JCgiI3F1aWNrRW1haWxGb3JtLm1lbnUiKS5sZW5ndGgmJihtYWlsUXVpY2tFbWFpbC5zZXRTZWxlY3Rvci5jYWxsKCQoIiNxdWlja0VtYWlsRm9ybS5tZW51IikpLG1haWxRdWlja0VtYWlsLmluaXQoKSl9KTsKLyoqIC9qcy90cmFkZUluQmFyLmpzICoqLwp2YXIgX19fZDJjX3RyYWRlSW5CYXJqc19jX29uPSIyMDI2LTAxLTI3IDEwOjMwOjA5IjsndXNlIHN0cmljdCc7ZnVuY3Rpb24gdHJhZGVJbkJhckluaXRpYWxpemUoKXtmb3IodmFyIHA9JCgnc2VsZWN0W25hbWU9InRyYWRpbk1ha2UiXScpLGs9JCgnc2VsZWN0W25hbWU9InRyYWRpbk1vZGVsIl0nKSxsPSQoJ3NlbGVjdFtuYW1lPSJ0cmFkaW5UcmltIl0nKSxxPSQoJ3NlbGVjdFtuYW1lPSJ0cmFkaW5ZZWFyIl0nKSxnPSQoJ2lucHV0W25hbWU9InRyYWRpblZpbiJdJyksdT17fSx3PShuZXcgRGF0ZSkuZ2V0RnVsbFllYXIoKTsxOTk5PHc7dy0tKTtwLm9uKCJmb2N1cyIsZnVuY3Rpb24oKXtwLmNzcygiYmFja2dyb3VuZCIsIiNmZmZmZmYiKX0pO2sub24oImZvY3VzIixmdW5jdGlvbigpe2suY3NzKCJiYWNrZ3JvdW5kIiwiI2ZmZmZmZiIpfSk7bC5vbigiZm9jdXMiLGZ1bmN0aW9uKCl7bC5jc3MoImJhY2tncm91bmQiLCIjZmZmZmZmIil9KTtxLm9uKCJmb2N1cyIsZnVuY3Rpb24oKXtxLmNzcygiYmFja2dyb3VuZCIsIiNmZmZmZmYiKX0pO3ZhciBoPSQoImJvZHkiKS5oYXNDbGFzcygiRU5HTElTSCIpPwoiRU5HTElTSCI6IkZSRU5DSCIsQT0nPG9wdGlvbiB2YWx1ZT0iIj4nKygiRU5HTElTSCI9PWg\/Ik1vZGVsIjoiTW9kJmVncmF2ZTtsZSIpKyI8L29wdGlvbj4iLEQ9JzxvcHRpb24gdmFsdWU9IiI+JysoIkVOR0xJU0giPT1oPyJUcmltIjoiVmVyc2lvbiIpKyI8L29wdGlvbj4iLEY9JzxvcHRpb24gdmFsdWU9IiI+JysoIkVOR0xJU0giPT1oPyJZZWFyIjoiQW5uJmVhY3V0ZTtlIikrIjwvb3B0aW9uPiI7JChkb2N1bWVudCkub24oInRyYWRlSW5CYXIuY2xvbmVkIixmdW5jdGlvbigpe3A9JCgnc2VsZWN0W25hbWU9InRyYWRpbk1ha2UiXScpO2s9JCgnc2VsZWN0W25hbWU9InRyYWRpbk1vZGVsIl0nKTtsPSQoJ3NlbGVjdFtuYW1lPSJ0cmFkaW5UcmltIl0nKTtxPSQoJ3NlbGVjdFtuYW1lPSJ0cmFkaW5ZZWFyIl0nKTtnPSQoJ2lucHV0W25hbWU9InRyYWRpblZpbiJdJyk7cC52YWwocC52YWwoKSk7cS52YWwocS52YWwoKSk7ay52YWwoay52YWwoKSk7bC52YWwobC52YWwoKSl9KTsKcC5vbigiY2hhbmdlIixmdW5jdGlvbigpe3AudmFsKCQodGhpcykudmFsKCkpO3EuZW1wdHkoKTtrLmVtcHR5KCk7bC5lbXB0eSgpOyIiIT10aGlzLnZhbHVlJiYkLmFqYXgoe3R5cGU6IlBPU1QiLHVybDooIkVOR0xJU0giPT1oPyIvZW4vIjoiL2ZyLyIpKyIvYWpheC9nZXRUcmFkZUluQmFyRGF0YT93c3dpZHRoPTAiLGRhdGFUeXBlOiJqc29uIixkYXRhOntsYW5ndWFnZTpoLG1ha2U6dGhpcy52YWx1ZX0sc3VjY2VzczpmdW5jdGlvbihiKXt1PWI7cS5hcHBlbmQoRik7Zm9yKHZhciBmIGluIGIpcS5hcHBlbmQoJzxvcHRpb24gdmFsdWU9IicrZisnIj4nK2YrIjwvb3B0aW9uPiIpO2cmJmcuZmlyc3QoKSYmIiIhPWcuZmlyc3QoKS5hdHRyKCJ2aW5ZZWFyIikmJihxLnZhbChnLmZpcnN0KCkuYXR0cigidmluWWVhciIpKSxxLmZpcnN0KCkudHJpZ2dlcigiY2hhbmdlIikpfX0pfSk7cS5vbigiY2hhbmdlIixmdW5jdGlvbigpe3ZhciBiPSQodGhpcykudmFsKCksCmY9cC52YWwoKTtxLnZhbCgkKHRoaXMpLnZhbCgpKTtrLmVtcHR5KCk7bC5lbXB0eSgpO2lmKDEhPSQoImlucHV0W25hbWU9bm9DQkJdIikudmFsKCkpJC5hamF4KHt0eXBlOiJQT1NUIix1cmw6KCJFTkdMSVNIIj09aD8iL2VuLyI6Ii9mci8iKSsiL2FqYXgvZ2V0VHJhZGVJbkJhck1vZGVsP3dzd2lkdGg9MCIsZGF0YVR5cGU6Impzb24iLGRhdGE6e2xhbmd1YWdlOmgsbWFrZTpmLHllYXI6Yn0sc3VjY2VzczpmdW5jdGlvbihhKXtjb25zb2xlLmxvZyhhKTtrLmFwcGVuZChBKTtmb3IodmFyIGQ9MDtkPGEubGVuZ3RoO2QrKyl7dmFyIGM9YVtkXS5uYW1lO2suYXBwZW5kKCc8b3B0aW9uIHZhbHVlPSInK2MrJyI+JytjKyI8L29wdGlvbj4iKX1nJiZnLmZpcnN0KCkmJiIiIT1nLmZpcnN0KCkuYXR0cigidmluTW9kZWwiKSYmKGsudmFsKGcuZmlyc3QoKS5hdHRyKCJ2aW5Nb2RlbCIpKSxrLmZpcnN0KCkudHJpZ2dlcigiY2hhbmdlIikpO2cuZmlyc3QoKS5hdHRyKCJ2aW5ZZWFyIiwKIiIpO2cuZmlyc3QoKS5hdHRyKCJ2aW5Nb2RlbCIsIiIpfX0pO2Vsc2UgaWYoMT09JCgiaW5wdXRbbmFtZT1pc0FjY3V0cmFkZV0iKS52YWwoKSkkLmFqYXgoe3R5cGU6IlBPU1QiLHVybDooIkVOR0xJU0giPT1oPyIvZW4vIjoiL2ZyLyIpKyIvYWpheC9nZXRUcmFkZUluTW5nTW9kZWw\/d3N3aWR0aD0wIixkYXRhVHlwZToianNvbiIsZGF0YTp7bGFuZ3VhZ2U6aCxtYWtlOmYseWVhcjpifSxzdWNjZXNzOmZ1bmN0aW9uKGEpe2NvbnNvbGUubG9nKGEpO2suYXBwZW5kKEEpO2Zvcih2YXIgZD0wO2Q8YS5sZW5ndGg7ZCsrKXt2YXIgYz1hW2RdLm5hbWU7ay5hcHBlbmQoJzxvcHRpb24gdmFsdWU9IicrYysnIj4nK2MrIjwvb3B0aW9uPiIpfWcmJmcuZmlyc3QoKSYmIiIhPWcuZmlyc3QoKS5hdHRyKCJ2aW5Nb2RlbCIpJiYoay52YWwoZy5maXJzdCgpLmF0dHIoInZpbk1vZGVsIikpLGsuZmlyc3QoKS50cmlnZ2VyKCJjaGFuZ2UiKSk7Zy5maXJzdCgpLmF0dHIoInZpblllYXIiLAoiIik7Zy5maXJzdCgpLmF0dHIoInZpbk1vZGVsIiwiIil9fSk7ZWxzZSBpZigwPE9iamVjdC5rZXlzKHUpLmxlbmd0aCYmIiIhPXRoaXMudmFsdWUpe2suYXBwZW5kKEEpO2Y9e307Zm9yKHZhciBlPTA7ZTx1W2JdLmxlbmd0aDtlKyspInVuZGVmaW5lZCI9PXR5cGVvZiBmW3VbYl1bZV0ubW9kZWxdJiYoay5hcHBlbmQoJzxvcHRpb24gdmFsdWU9IicrdVtiXVtlXS5tb2RlbCsnIj4nK3VbYl1bZV0ubW9kZWwrIjwvb3B0aW9uPiIpLGZbdVtiXVtlXS5tb2RlbF09dVtiXVtlXS5tb2RlbCl9fSk7ay5vbigiY2hhbmdlIixmdW5jdGlvbihiKXt2YXIgZj1wLnZhbCgpO2I9cS52YWwoKTt2YXIgZT0kKHRoaXMpLnZhbCgpO2sudmFsKCQodGhpcykudmFsKCkpO2wuZW1wdHkoKTtpZigxIT0kKCJpbnB1dFtuYW1lPW5vQ0JCXSIpLnZhbCgpKSQuYWpheCh7dHlwZToiUE9TVCIsdXJsOigiRU5HTElTSCI9PWg\/Ii9lbi8iOiIvZnIvIikrIi9hamF4L2dldFRyYWRlSW5CYXJUcmltP3dzd2lkdGg9MCIsCmRhdGFUeXBlOiJqc29uIixkYXRhOntsYW5ndWFnZTpoLG1ha2U6Zixtb2RlbDplLHllYXI6Yn0sc3VjY2VzczpmdW5jdGlvbihhKXtjb25zb2xlLmxvZyhhKTtsLmFwcGVuZCgnPG9wdGlvbiB2YWx1ZT0iIj4nKygiRU5HTElTSCI9PWg\/IlRyaW0iOiJWZXJzaW9uIikrIjwvb3B0aW9uPiIpO2Zvcih2YXIgZD0wLGM9MDtjPGEubGVuZ3RoO2MrKyl7dmFyIG09YVtjXS5zdHlsZSsiICIrYVtjXS5zZXJpZXMseD1hW2NdLnV2YztkKys7bC5hcHBlbmQoJzxvcHRpb24gZGF0YS1zdHlsZWlkPSInK3grJyIgdmFsdWU9IicrbSsnIj4nK20rIjwvb3B0aW9uPiIpfTE9PWQmJiQoIm9wdGlvbjplcSgxKSIsbCkucHJvcCgic2VsZWN0ZWQiLCJzZWxlY3RlZCIpfX0pO2Vsc2UgaWYoMT09JCgiaW5wdXRbbmFtZT1pc0FjY3V0cmFkZV0iKS52YWwoKSkkLmFqYXgoe3R5cGU6IlBPU1QiLHVybDooIkVOR0xJU0giPT1oPyIvZW4vIjoiL2ZyLyIpKyIvYWpheC9nZXRUcmFkZUluTW5nVHJpbT93c3dpZHRoPTAiLApkYXRhVHlwZToianNvbiIsZGF0YTp7bGFuZ3VhZ2U6aCxtYWtlOmYsbW9kZWw6ZSx5ZWFyOmJ9LHN1Y2Nlc3M6ZnVuY3Rpb24oYSl7Y29uc29sZS5sb2coYSk7bC5hcHBlbmQoJzxvcHRpb24gdmFsdWU9IiI+JysoIkVOR0xJU0giPT1oPyJUcmltIjoiVmVyc2lvbiIpKyI8L29wdGlvbj4iKTtmb3IodmFyIGQ9MCxjPTA7YzxhLmxlbmd0aDtjKyspe3ZhciBtPWFbY10ubmFtZSx4PWFbY10uaWQ7ZCsrO2wuYXBwZW5kKCc8b3B0aW9uIGRhdGEtc3R5bGVpZD0iJyt4KyciIHZhbHVlPSInK20rJyI+JyttKyI8L29wdGlvbj4iKX0xPT1kJiYkKCJvcHRpb246ZXEoMSkiLGwpLnByb3AoInNlbGVjdGVkIiwhMCl9fSk7ZWxzZSBpZigwPE9iamVjdC5rZXlzKHUpLmxlbmd0aCYmIiIhPXRoaXMudmFsdWUpe2wuYXBwZW5kKEQpO2ZvcihlPWY9MDtlPHVbYl0ubGVuZ3RoO2UrKyl1W2JdW2VdLm1vZGVsPT10aGlzLnZhbHVlJiYoZisrLGwuYXBwZW5kKCc8b3B0aW9uIGRhdGEtc3R5bGVpZD0iJysKdVtiXVtlXS5zdHlsZWlkKyciIHZhbHVlPSInK3VbYl1bZV0udHJpbSsnIj4nK3VbYl1bZV0udHJpbSsiPC9vcHRpb24+IikpOzE9PWYmJiQoIm9wdGlvbjplcSgxKSIsbCkucHJvcCgic2VsZWN0ZWQiLCJzZWxlY3RlZCIpfX0pO2wub24oImNoYW5nZSIsZnVuY3Rpb24oKXtsLnZhbCgkKHRoaXMpLnZhbCgpKX0pO3ZhciBCPSExO2lmKDEhPSQoImlucHV0W25hbWU9bm9DQkJdIikudmFsKCkpZy5vbigia2V5dXAiLGZ1bmN0aW9uKCl7Zy52YWwoJCh0aGlzKS52YWwoKSk7JCh0aGlzKS52YWwoKSYmMTc8PSQodGhpcykudmFsKCkubGVuZ3RoJiYhQiYmKEI9ITAsJC5hamF4KHt0eXBlOiJQT1NUIix1cmw6KCQoImJvZHkiKS5oYXNDbGFzcygiRU5HTElTSCIpPyIvZW4vIjoiL2ZyLyIpKyIvYWpheC9nZXRUcmFkZUluQmFyVmFsdWU\/d3N3aWR0aD0wIixkYXRhVHlwZToianNvbiIsZGF0YTp7dmluOiQodGhpcykudmFsKCkscHJvdmluY2U6JCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT0iZGVhbGVyUHJvdmluY2VUcmFkZUluIl0nKS52YWwoKX0sCnN1Y2Nlc3M6ZnVuY3Rpb24oYil7YiYmYi5tb2RlbCYmYi5tb2RlbF95ZWFyPyhnLmZpcnN0KCkuYXR0cigidmluTW9kZWwiLGIubW9kZWwpLGcuZmlyc3QoKS5hdHRyKCJ2aW5ZZWFyIixiLm1vZGVsX3llYXIpLHAudmFsKGIubWFrZSkscC5maXJzdCgpLnRyaWdnZXIoImNoYW5nZSIpLHJlbW92ZVJlZFdhcm5pbmdNZXNzYWdlKCksc3dpdGNoVG9WZWhpY2xlQW5kRm9jdXNUcmltKCkpOmFkZFJlZFdhcm5pbmdNZXNzYWdlKCQoImJvZHkiKS5oYXNDbGFzcygiRU5HTElTSCIpPyJVbnJlY29nbml6ZWQgVklOIjoiTklWIG5vbiByZWNvbm51Iil9LGNvbXBsZXRlOmZ1bmN0aW9uKGIpe0I9ITF9fSkpfSk7ZWxzZSBpZigxPT0kKCJpbnB1dFtuYW1lPWlzQWNjdXRyYWRlXSIpLnZhbCgpKWcub24oImtleXVwIixmdW5jdGlvbigpe2cudmFsKCQodGhpcykudmFsKCkpOyQodGhpcykudmFsKCkmJjE3PD0kKHRoaXMpLnZhbCgpLmxlbmd0aCYmIUImJihCPSEwLCQuYWpheCh7dHlwZToiUE9TVCIsCnVybDooJCgiYm9keSIpLmhhc0NsYXNzKCJFTkdMSVNIIik\/Ii9lbi8iOiIvZnIvIikrIi9hamF4L2dldFRyYWRlSW5NbmdWaW4\/d3N3aWR0aD0wIixkYXRhVHlwZToianNvbiIsZGF0YTp7dmluOiQodGhpcykudmFsKCkscHJvdmluY2U6JCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT0iZGVhbGVyUHJvdmluY2VUcmFkZUluIl0nKS52YWwoKX0sc3VjY2VzczpmdW5jdGlvbihiKXtiJiZiLm1vZGVsJiZiLnllYXI\/KGcuZmlyc3QoKS5hdHRyKCJ2aW5Nb2RlbCIsYi5tb2RlbCksZy5maXJzdCgpLmF0dHIoInZpblllYXIiLGIueWVhcikscC52YWwoYi5tYWtlKSxwLmZpcnN0KCkudHJpZ2dlcigiY2hhbmdlIikscmVtb3ZlUmVkV2FybmluZ01lc3NhZ2UoKSxzd2l0Y2hUb1ZlaGljbGVBbmRGb2N1c1RyaW0oKSk6YWRkUmVkV2FybmluZ01lc3NhZ2UoJCgiYm9keSIpLmhhc0NsYXNzKCJFTkdMSVNIIik\/IlVucmVjb2duaXplZCBWSU4iOiJOSVYgbm9uIHJlY29ubnUiKX0sCmNvbXBsZXRlOmZ1bmN0aW9uKGIpe0I9ITF9fSkpfSk7dz1nZXRVcmxWYXJzKCk7Zm9yKHZhciBHPU9iamVjdC5rZXlzKHcpLEg9Ry5sZW5ndGgsST17fTtILS07KXt2YXIgSj1HW0hdO0lbSi50b0xvd2VyQ2FzZSgpXT13W0pdfXc9STt3LnRtYWtlJiZ3LnRtb2RlbCYmdy50eWVhciYmc2V0VGltZW91dChmdW5jdGlvbigpe2xhdW5jaFRyYWRlSW5Qb3B1cCgiYXV0b21hdGljIil9LDFFMyk7d1sidHJhZGUtZnVsbCJdJiZzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7bGF1bmNoVHJhZGVJblBvcHVwKCJhdXRvbWF0aWMiKX0sMUUzKTskKCIudHJhZGVJbkJhcl9idG4iKS5vbigiY2xpY2siLGZ1bmN0aW9uKGIpe2I9ITE7IiI9PXAudmFsKCkmJihwLmNzcygiYmFja2dyb3VuZCIsIiNGRjdFNzkiKSxiPSEwKTtpZigiIj09ay52YWwoKXx8bnVsbD09ay52YWwoKSlrLmNzcygiYmFja2dyb3VuZCIsIiNGRjdFNzkiKSxiPSEwO2lmKCIiPT1sLnZhbCgpfHxudWxsPT1sLnZhbCgpKWwuY3NzKCJiYWNrZ3JvdW5kIiwKIiNGRjdFNzkiKSxiPSEwO2lmKCIiPT1xLnZhbCgpfHxudWxsPT1xLnZhbCgpKXEuY3NzKCJiYWNrZ3JvdW5kIiwiI0ZGN0U3OSIpLGI9ITA7MD09YiYmbGF1bmNoVHJhZGVJblBvcHVwKCJ0cmFkZWluYmFyIil9KTtpZigiMSI9PSQoIiNpc01vYmlsZSIpLnZhbCgpfHwiIj09cC52YWwoKXx8InVuZGVmaW5lZCI9PT10eXBlb2YgcC52YWwoKXx8IiI9PWsudmFsKCl8fCIiPT1xLnZhbCgpKXt2YXIgeT0kKCIjdHJhZGVJbkJhclBvcHVwTWFrZSIpLHI9JCgiI3RyYWRlSW5CYXJQb3B1cE1vZGVsIiksdj0kKCIjdHJhZGVJbkJhclBvcHVwVHJpbSIpLHo9JCgiI3RyYWRlSW5CYXJQb3B1cFllYXIiKSxuPSQoIiN0cmFkZUluQmFyUG9wdXBOaXYiKSx0PXt9LEU9ZDJjbWVkaWEuY2FwaXRhbGlzZUZpcnN0TGV0dGVyKHcudG1vZGVsP3cudG1vZGVsLnRvTG93ZXJDYXNlKCk6IiIpLEM9dy50eWVhcjtpZigwIT0kKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPSJDQkJNT0RFTFNFTEVDVCJdJykudmFsKCkpJCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gLm5pdk1ha2VNb2RlbFNlbGVjdCIpLm9uKCJjaGFuZ2UiLApmdW5jdGlvbigpeyJ2aW4iPT0kKCIjdHJhZGVJbkJhclBvcHVwRm9ybSAubml2TWFrZU1vZGVsU2VsZWN0OmNoZWNrZWQiKS52YWwoKT8oJCgiI3RyYWRlSW5CYXJQb3B1cE1ha2VEaXZDb250YWluZXIiKS5oaWRlKCksJCgiI3RyYWRlSW5CYXJQb3B1cE1vZGVsRGl2Q29udGFpbmVyIikuaGlkZSgpLCQoIiN0cmFkZUluQmFyUG9wdXBZZWFyRGl2Q29udGFpbmVyIikuaGlkZSgpLCQoIiN0cmFkZUluQmFyUG9wdXBOaXZEaXZDb250YWluZXIiKS5jc3MoImRpc3BsYXkiLCJpbmxpbmUtYmxvY2siKSk6KCQoIiN0cmFkZUluQmFyUG9wdXBOaXZEaXZDb250YWluZXIiKS5oaWRlKCksJCgiI3RyYWRlSW5CYXJQb3B1cE1ha2VEaXZDb250YWluZXIiKS5jc3MoImRpc3BsYXkiLCJpbmxpbmUtYmxvY2siKSwkKCIjdHJhZGVJbkJhclBvcHVwTW9kZWxEaXZDb250YWluZXIiKS5jc3MoImRpc3BsYXkiLCJpbmxpbmUtYmxvY2siKSwkKCIjdHJhZGVJbkJhclBvcHVwWWVhckRpdkNvbnRhaW5lciIpLmNzcygiZGlzcGxheSIsCiJpbmxpbmUtYmxvY2siKSk7InVuZGVmaW5lZCIhPT10eXBlb2YgdHJhZGVpbnBvcHVwZDJjJiZ0cmFkZWlucG9wdXBkMmMudHJhZGVJbkJvdHRvbUxvZ29IZWlndCgpfSk7eS5vbigiY2hhbmdlIixmdW5jdGlvbigpe3kudmFsKCQodGhpcykudmFsKCkpO3ouZW1wdHkoKTtyLmVtcHR5KCk7di5lbXB0eSgpOyIiIT10aGlzLnZhbHVlJiYkLmFqYXgoe3R5cGU6IlBPU1QiLHVybDooIkVOR0xJU0giPT1oPyIvZW4vIjoiL2ZyLyIpKyIvYWpheC9nZXRUcmFkZUluQmFyRGF0YT93c3dpZHRoPTAiLGRhdGFUeXBlOiJqc29uIixkYXRhOntsYW5ndWFnZTpoLG1ha2U6dGhpcy52YWx1ZX0sc3VjY2VzczpmdW5jdGlvbihiKXt0PWI7ei5hcHBlbmQoRik7IiIhPW4uYXR0cigidmluWWVhciIpJiYoQz1uLmF0dHIoInZpblllYXIiKSk7Zm9yKHZhciBmIGluIGIpYj0iIixDJiYoYj1mPT1DPydzZWxlY3RlZD0ic2VsZWN0ZWQiJzoiIiksei5hcHBlbmQoIjxvcHRpb24gIisKYisnIHZhbHVlPSInK2YrJyI+JytmKyI8L29wdGlvbj4iKTtDJiYoei50cmlnZ2VyKCJjaGFuZ2UiKSxDPSExKX19KX0pO3oub24oImNoYW5nZSIsZnVuY3Rpb24oKXt6LnZhbCgkKHRoaXMpLnZhbCgpKTtyLmVtcHR5KCk7di5lbXB0eSgpO3ZhciBiPSQodGhpcykudmFsKCksZj15LnZhbCgpO2lmKDEhPSQoImlucHV0W25hbWU9bm9DQkJdIikudmFsKCkpJC5hamF4KHt0eXBlOiJQT1NUIix1cmw6KCJFTkdMSVNIIj09aD8iL2VuLyI6Ii9mci8iKSsiL2FqYXgvZ2V0VHJhZGVJbkJhck1vZGVsP3dzd2lkdGg9MCIsZGF0YVR5cGU6Impzb24iLGRhdGE6e2xhbmd1YWdlOmgsbWFrZTpmLHllYXI6Yn0sc3VjY2VzczpmdW5jdGlvbihkKXtjb25zb2xlLmxvZyhkKTtyLmFwcGVuZChBKTtmb3IodmFyIGM9MDtjPGQubGVuZ3RoO2MrKyl7dmFyIG09ZFtjXS5uYW1lO3IuYXBwZW5kKCc8b3B0aW9uIHZhbHVlPSInK20rJyI+JyttKyI8L29wdGlvbj4iKX0iIiE9Cm4uYXR0cigidmluTW9kZWwiKSYmKHIudmFsKG4uYXR0cigidmluTW9kZWwiKSksci50cmlnZ2VyKCJjaGFuZ2UiKSk7bi5hdHRyKCJ2aW5ZZWFyIiwiIik7bi5hdHRyKCJ2aW5Nb2RlbCIsIiIpfX0pO2Vsc2UgaWYoMT09JCgiaW5wdXRbbmFtZT1pc0FjY3V0cmFkZV0iKS52YWwoKSkkLmFqYXgoe3R5cGU6IlBPU1QiLHVybDooIkVOR0xJU0giPT1oPyIvZW4vIjoiL2ZyLyIpKyIvYWpheC9nZXRUcmFkZUluTW5nTW9kZWw\/d3N3aWR0aD0wIixkYXRhVHlwZToianNvbiIsZGF0YTp7bGFuZ3VhZ2U6aCxtYWtlOmYseWVhcjpifSxzdWNjZXNzOmZ1bmN0aW9uKGQpe2NvbnNvbGUubG9nKGQpO3IuYXBwZW5kKEEpO2Zvcih2YXIgYz0wO2M8ZC5sZW5ndGg7YysrKXt2YXIgbT1kW2NdLm5hbWU7ci5hcHBlbmQoJzxvcHRpb24gdmFsdWU9IicrbSsnIj4nK20rIjwvb3B0aW9uPiIpfSIiIT1uLmF0dHIoInZpbk1vZGVsIikmJihyLnZhbChuLmF0dHIoInZpbk1vZGVsIikpLApyLnRyaWdnZXIoImNoYW5nZSIpKTtuLmF0dHIoInZpblllYXIiLCIiKTtuLmF0dHIoInZpbk1vZGVsIiwiIil9fSk7ZWxzZSBpZigwPE9iamVjdC5rZXlzKHQpLmxlbmd0aCYmIiIhPXRoaXMudmFsdWUpe3IuYXBwZW5kKEEpO2Y9e307Zm9yKHZhciBlPTA7ZTx0W2JdLmxlbmd0aDtlKyspaWYoInVuZGVmaW5lZCI9PXR5cGVvZiBmW3RbYl1bZV0ubW9kZWxdKXt2YXIgYT0iIjtFJiYoYT10W2JdW2VdLm1vZGVsPT1FPydzZWxlY3RlZD0ic2VsZWN0ZWQiJzoiIik7ci5hcHBlbmQoIjxvcHRpb24gIithKycgdmFsdWU9IicrdFtiXVtlXS5tb2RlbCsnIj4nK3RbYl1bZV0ubW9kZWwrIjwvb3B0aW9uPiIpO2ZbdFtiXVtlXS5tb2RlbF09dFtiXVtlXS5tb2RlbH1FJiYoci50cmlnZ2VyKCJjaGFuZ2UiKSxFPSExKX19KTtyLm9uKCJjaGFuZ2UiLGZ1bmN0aW9uKCl7ci52YWwoJCh0aGlzKS52YWwoKSk7di5lbXB0eSgpO3ZhciBiPXoudmFsKCksZj15LnZhbCgpLGU9JCh0aGlzKS52YWwoKTsKaWYoMSE9JCgiaW5wdXRbbmFtZT1ub0NCQl0iKS52YWwoKSkkLmFqYXgoe3R5cGU6IlBPU1QiLHVybDooIkVOR0xJU0giPT1oPyIvZW4vIjoiL2ZyLyIpKyIvYWpheC9nZXRUcmFkZUluQmFyVHJpbT93c3dpZHRoPTAiLGRhdGFUeXBlOiJqc29uIixkYXRhOntsYW5ndWFnZTpoLG1ha2U6Zixtb2RlbDplLHllYXI6Yn0sc3VjY2VzczpmdW5jdGlvbihhKXtjb25zb2xlLmxvZyhhKTt2LmFwcGVuZChEKTtmb3IodmFyIGQ9MCxjPTA7YzxhLmxlbmd0aDtjKyspe3ZhciBtPWFbY10uc3R5bGUrIiAiK2FbY10uc2VyaWVzLHg9YVtjXS51dmM7ZCsrO3YuYXBwZW5kKCc8b3B0aW9uIGRhdGEtc3R5bGVpZD0iJyt4KyciIHZhbHVlPSInK20rJyI+JyttKyI8L29wdGlvbj4iKX0xPT1kJiYkKCJvcHRpb246ZXEoMSkiLHYpLnByb3AoInNlbGVjdGVkIiwic2VsZWN0ZWQiKX19KTtlbHNlIGlmKDE9PSQoImlucHV0W25hbWU9aXNBY2N1dHJhZGVdIikudmFsKCkpJC5hamF4KHt0eXBlOiJQT1NUIiwKdXJsOigiRU5HTElTSCI9PWg\/Ii9lbi8iOiIvZnIvIikrIi9hamF4L2dldFRyYWRlSW5NbmdUcmltP3dzd2lkdGg9MCIsZGF0YVR5cGU6Impzb24iLGRhdGE6e2xhbmd1YWdlOmgsbWFrZTpmLG1vZGVsOmUseWVhcjpifSxzdWNjZXNzOmZ1bmN0aW9uKGEpe2NvbnNvbGUubG9nKGEpO3YuYXBwZW5kKEQpO2Zvcih2YXIgZD0wLGM9MDtjPGEubGVuZ3RoO2MrKyl7dmFyIG09YVtjXS5uYW1lLHg9YVtjXS5pZDtkKys7di5hcHBlbmQoJzxvcHRpb24gZGF0YS1zdHlsZWlkPSInK3grJyIgdmFsdWU9IicrbSsnIj4nK20rIjwvb3B0aW9uPiIpfTE9PWQmJiQoIm9wdGlvbjplcSgxKSIsdikucHJvcCgic2VsZWN0ZWQiLCEwKX19KTtlbHNlIGlmKDA8T2JqZWN0LmtleXModCkubGVuZ3RoJiYiIiE9dGhpcy52YWx1ZSl7di5hcHBlbmQoRCk7Zm9yKGU9Zj0wO2U8dFtiXS5sZW5ndGg7ZSsrKXRbYl1bZV0ubW9kZWw9PXRoaXMudmFsdWUmJihmKyssdi5hcHBlbmQoJzxvcHRpb24gZGF0YS1zdHlsZWlkPSInKwp0W2JdW2VdLnN0eWxlaWQrJyIgdmFsdWU9IicrdFtiXVtlXS50cmltKyciPicrdFtiXVtlXS50cmltKyI8L29wdGlvbj4iKSk7MT09ZiYmJCgib3B0aW9uOmVxKDEpIix2KS5wcm9wKCJzZWxlY3RlZCIsInNlbGVjdGVkIil9fSk7aWYoMSE9JCgiaW5wdXRbbmFtZT1ub0NCQl0iKS52YWwoKXx8MT09JCgiaW5wdXRbbmFtZT1pc0FjY3V0cmFkZV0iKS52YWwoKSl7MSE9JCgiaW5wdXRbbmFtZT1ub0NCQl0iKS52YWwoKT8odi5vbigiY2hhbmdlIixmdW5jdGlvbigpeyQuYWpheCh7dHlwZToiUE9TVCIsdXJsOigkKCJib2R5IikuaGFzQ2xhc3MoIkVOR0xJU0giKT8iL2VuLyI6Ii9mci8iKSsiL2FqYXgvZ2V0VHJhZGVJbkJhclZhbHVlP3dzd2lkdGg9MCIsZGF0YVR5cGU6Impzb24iLGRhdGE6e3V2YzokKHRoaXMpLmZpbmQoIjpjaGVja2VkIikuYXR0cigiZGF0YS1zdHlsZWlkIikscHJvdmluY2U6JCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT0iZGVhbGVyUHJvdmluY2VUcmFkZUluIl0nKS52YWwoKX0sCnN1Y2Nlc3M6ZnVuY3Rpb24oYSl7Y29uc29sZS5sb2coYSk7JCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gc2VsZWN0W25hbWU9IlZFSElDTEVPUFRJT05TIl0nKS5maW5kKCJvcHRpb24iKS5yZW1vdmUoKTtpZihhLmFkZF9kZWR1Y3RfbGlzdC5sZW5ndGgpe2Zvcih2YXIgZD0wO2Q8YS5hZGRfZGVkdWN0X2xpc3QubGVuZ3RoO2QrKykkKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBzZWxlY3RbbmFtZT0iVkVISUNMRU9QVElPTlMiXScpLmFwcGVuZCgnPG9wdGlvbiB2YWx1ZT0iJythLmFkZF9kZWR1Y3RfbGlzdFtkXS51b2MrJyI+JythLmFkZF9kZWR1Y3RfbGlzdFtkXS5uYW1lKyI8L29wdGlvbj4iKTskKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBzZWxlY3RbbmFtZT0iVkVISUNMRU9QVElPTlMiXScpLm11bHRpc2VsZWN0KHtoZWFkZXI6ITEsbm9uZVNlbGVjdGVkVGV4dDoiT3B0aW9ucyIsc2VsZWN0ZWRUZXh0OmZ1bmN0aW9uKGMsbSx4KXtyZXR1cm4gJCgiYm9keSIpLmhhc0NsYXNzKCJFTkdMSVNIIik\/CmMrIiAiKyQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9Im11bHRpc2VsZWN0ZWRUZXh0VmFsdWUiXScpLnZhbCgpOmMrIiAiKyQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9Im11bHRpc2VsZWN0ZWRUZXh0VmFsdWUiXScpLnZhbCgpKygxPGM\/InMiOiIiKX0sY2xhc3NlczoidHJhZGVJbkJhck11bHRpc2VsZWN0In0pLm11bHRpc2VsZWN0KCJyZWZyZXNoIik7JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gLm9wZW5WZWhpY2xlT3B0aW9ucyIpLmhpZGUoKTskKCIjdHJhZGVJbkJhclBvcHVwRm9ybSAubXVsdGlzZWxlY3RWZWhpY2xlT3B0aW9ucyIpLnNob3coKX1lbHNlICQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIC5tdWx0aXNlbGVjdFZlaGljbGVPcHRpb25zIikuaGlkZSgpLCQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIC5vcGVuVmVoaWNsZU9wdGlvbnMiKS5zaG93KCl9fSl9KSxuLm9uKCJwYXN0ZSIsZnVuY3Rpb24oKXtsZXQgYT0kKHRoaXMpO3NldFRpbWVvdXQoZnVuY3Rpb24oKXthLnRyaWdnZXIoImtleXVwIil9LAoyMDApfSksbi5vbigia2V5dXAiLGZ1bmN0aW9uKCl7JCh0aGlzKS52YWwoKSYmMTc8PSQodGhpcykudmFsKCkubGVuZ3RoJiYkLmFqYXgoe3R5cGU6IlBPU1QiLHVybDooJCgiYm9keSIpLmhhc0NsYXNzKCJFTkdMSVNIIik\/Ii9lbi8iOiIvZnIvIikrIi9hamF4L2dldFRyYWRlSW5CYXJWYWx1ZT93c3dpZHRoPTAiLGRhdGFUeXBlOiJqc29uIixkYXRhOnt2aW46JCh0aGlzKS52YWwoKSxwcm92aW5jZTokKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPSJkZWFsZXJQcm92aW5jZVRyYWRlSW4iXScpLnZhbCgpfSxzdWNjZXNzOmZ1bmN0aW9uKGEpe2EmJmEubW9kZWwmJmEubW9kZWxfeWVhcj8obi5maXJzdCgpLmF0dHIoInZpbk1vZGVsIixhLm1vZGVsKSxuLmZpcnN0KCkuYXR0cigidmluWWVhciIsYS5tb2RlbF95ZWFyKSx5LnZhbChhLm1ha2UpLHkuZmlyc3QoKS50cmlnZ2VyKCJjaGFuZ2UiKSxmKCksZSgpKTpiKCQoImJvZHkiKS5oYXNDbGFzcygiRU5HTElTSCIpPwoiVW5yZWNvZ25pemVkIFZJTiI6Ik5JViBub24gcmVjb25udSIpfX0pfSkpOjE9PSQoImlucHV0W25hbWU9aXNBY2N1dHJhZGVdIikudmFsKCkmJih2Lm9uKCJjaGFuZ2UiLGZ1bmN0aW9uKCl7JC5hamF4KHt0eXBlOiJQT1NUIix1cmw6KCQoImJvZHkiKS5oYXNDbGFzcygiRU5HTElTSCIpPyIvZW4vIjoiL2ZyLyIpKyIvYWpheC9nZXRUcmFkZUluTW5nT3B0aW9ucz93c3dpZHRoPTAiLGRhdGFUeXBlOiJqc29uIixkYXRhOntpZDokKHRoaXMpLmZpbmQoIjpjaGVja2VkIikuYXR0cigiZGF0YS1zdHlsZWlkIikscHJvdmluY2U6JCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT0iZGVhbGVyUHJvdmluY2VUcmFkZUluIl0nKS52YWwoKX0sc3VjY2VzczpmdW5jdGlvbihhKXtjb25zb2xlLmxvZyhhKTskKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBzZWxlY3RbbmFtZT0iVkVISUNMRU9QVElPTlMiXScpLmZpbmQoIm9wdGlvbiIpLnJlbW92ZSgpO2lmKGEubGVuZ3RoKXtmb3IodmFyIGQ9CjA7ZDxhLmxlbmd0aDtkKyspJCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gc2VsZWN0W25hbWU9IlZFSElDTEVPUFRJT05TIl0nKS5hcHBlbmQoJzxvcHRpb24gdmFsdWU9IicrYVtkXS5pZCsnIj4nK2FbZF0ubmFtZSsiPC9vcHRpb24+Iik7JCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gc2VsZWN0W25hbWU9IlZFSElDTEVPUFRJT05TIl0nKS5tdWx0aXNlbGVjdCh7aGVhZGVyOiExLG5vbmVTZWxlY3RlZFRleHQ6Ik9wdGlvbnMiLHNlbGVjdGVkVGV4dDpmdW5jdGlvbihjLG0seCl7cmV0dXJuICQoImJvZHkiKS5oYXNDbGFzcygiRU5HTElTSCIpP2MrIiAiKyQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9Im11bHRpc2VsZWN0ZWRUZXh0VmFsdWUiXScpLnZhbCgpOmMrIiAiKyQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9Im11bHRpc2VsZWN0ZWRUZXh0VmFsdWUiXScpLnZhbCgpKygxPGM\/InMiOiIiKX0sY2xhc3NlczoidHJhZGVJbkJhck11bHRpc2VsZWN0In0pLm11bHRpc2VsZWN0KCJyZWZyZXNoIik7CiQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIC5vcGVuVmVoaWNsZU9wdGlvbnMiKS5oaWRlKCk7JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gLm11bHRpc2VsZWN0VmVoaWNsZU9wdGlvbnMiKS5zaG93KCl9ZWxzZSAkKCIjdHJhZGVJbkJhclBvcHVwRm9ybSAubXVsdGlzZWxlY3RWZWhpY2xlT3B0aW9ucyIpLmhpZGUoKSwkKCIjdHJhZGVJbkJhclBvcHVwRm9ybSAub3BlblZlaGljbGVPcHRpb25zIikuc2hvdygpfX0pfSksbi5vbigicGFzdGUiLGZ1bmN0aW9uKCl7bGV0IGE9JCh0aGlzKTtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7YS50cmlnZ2VyKCJrZXl1cCIpfSwyMDApfSksbi5vbigia2V5dXAiLGZ1bmN0aW9uKCl7JCh0aGlzKS52YWwoKSYmMTc8PSQodGhpcykudmFsKCkubGVuZ3RoJiYkLmFqYXgoe3R5cGU6IlBPU1QiLHVybDooJCgiYm9keSIpLmhhc0NsYXNzKCJFTkdMSVNIIik\/Ii9lbi8iOiIvZnIvIikrIi9hamF4L2dldFRyYWRlSW5NbmdWaW4\/d3N3aWR0aD0wIiwKZGF0YVR5cGU6Impzb24iLGRhdGE6e3ZpbjokKHRoaXMpLnZhbCgpLHByb3ZpbmNlOiQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9ImRlYWxlclByb3ZpbmNlVHJhZGVJbiJdJykudmFsKCl9LHN1Y2Nlc3M6ZnVuY3Rpb24oYSl7YSYmYS5tb2RlbCYmYS55ZWFyPyhuLmZpcnN0KCkuYXR0cigidmluTW9kZWwiLGEubW9kZWwpLG4uZmlyc3QoKS5hdHRyKCJ2aW5ZZWFyIixhLnllYXIpLHkudmFsKGEubWFrZSkseS5maXJzdCgpLnRyaWdnZXIoImNoYW5nZSIpLGYoKSxlKCkpOmIoJCgiYm9keSIpLmhhc0NsYXNzKCJFTkdMSVNIIik\/IlVucmVjb2duaXplZCBWSU4iOiJOSVYgbm9uIHJlY29ubnUiKX19KX0pKTtmdW5jdGlvbiBiKGEpe3ZhciBkPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0cmFkZUluQmFyUG9wdXBOaXZEaXZDb250YWluZXIiKTtpZihkKXt2YXIgYz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVkV2FybmluZ01lc3NhZ2UiKTtjJiZjLnJlbW92ZSgpOwpjPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTtjLmlkPSJyZWRXYXJuaW5nTWVzc2FnZSI7Yy50ZXh0Q29udGVudD1hO2Muc3R5bGUuY29sb3I9InJlZCI7Yy5zdHlsZS5wb3NpdGlvbj0iYWJzb2x1dGUiO2Muc3R5bGUudG9wPSI1MCUiO2Muc3R5bGUucmlnaHQ9IjhweCI7Yy5zdHlsZS5tYXJnaW5Ub3A9IjRweCI7Yy5zdHlsZS5mb250U2l6ZT0iMTFweCI7Yy5zdHlsZS50cmFuc2Zvcm09InRyYW5zbGF0ZVkoLTUwJSkiO2Quc3R5bGUucG9zaXRpb249InJlbGF0aXZlIjtkLmFwcGVuZENoaWxkKGMpfX1mdW5jdGlvbiBmKCl7dmFyIGE9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlZFdhcm5pbmdNZXNzYWdlIik7YSYmYS5yZW1vdmUoKX1mdW5jdGlvbiBlKCl7dmFyIGE9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm5pdk1ha2VNb2RlbFNlbGVjdE1vZGVsIik7YSYmYS5jbGljaygpOyhhPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0cmFkZUluQmFyUG9wdXBUcmltIikpJiYKYS5mb2N1cygpfX19fTsKLyoqIC9qcy90cmFkZUluQmFyT3ZlcmxheS5qcyAqKi8KdmFyIF9fX2QyY190cmFkZUluQmFyT3ZlcmxheWpzX2Nfb249IjIwMjUtMDUtMjMgMTc6MTM6MjIiOyd1c2Ugc3RyaWN0Jzt2YXIgX19fZDJjX3RyYWRlSW5CYXJPdmVybGF5anNfY19vbj0iMjAyNC0wMS0zMSAxNDozODo0OCI7InVzZSBzdHJpY3QiO19fX2QyY190cmFkZUluQmFyT3ZlcmxheWpzX2Nfb249IjIwMjMtMDgtMDcgMTE6MzA6MDUiOyJ1c2Ugc3RyaWN0IjsKJChmdW5jdGlvbigpe2Z1bmN0aW9uIGEoKXtiPXNldEludGVydmFsKGZ1bmN0aW9uKCl7JCgiLmpzLXRyYWRlSW5CYXJPdmVybGF5IikudG9nZ2xlKCl9LDNFMyl9dmFyIGI7YSgpOyQoIiN0cmFkZUluQmFyIikub24oIm1vdXNlb3ZlciIsZnVuY3Rpb24oKXskKCIuanMtdHJhZGVJbkJhck92ZXJsYXkiKS5oaWRlKCk7Y2xlYXJJbnRlcnZhbChiKX0pOyQoIiN0cmFkZUluQmFyIikub24oIm1vdXNlb3V0IixmdW5jdGlvbigpeyQoIiN0cmFkZUluQmFyIGlucHV0LCAjdHJhZGVJbkJhciBzZWxlY3QiKS5pcygiOmZvY3VzIil8fGEoKX0pOyQoIiN0cmFkZWluQmFyRmxvYXQiKS5vbigibW91c2VvdmVyIixmdW5jdGlvbigpeyQoIi5qcy10cmFkZUluQmFyT3ZlcmxheSIpLmhpZGUoKTtjbGVhckludGVydmFsKGIpfSk7JCgiI3RyYWRlaW5CYXJGbG9hdCIpLm9uKCJtb3VzZW91dCIsZnVuY3Rpb24oKXskKCIjdHJhZGVpbkJhckZsb2F0IGlucHV0LCAjdHJhZGVJbkJhciBzZWxlY3QiKS5pcygiOmZvY3VzIil8fAphKCl9KX0pOwovKiogL2pzL3RyYWRlaW5wb3B1cC5qcyAqKi8KdmFyIF9fX2QyY190cmFkZWlucG9wdXBqc19jX29uPSIyMDI2LTA2LTA0IDA5OjMwOjE2IjsndXNlIHN0cmljdCc7dmFyIHRyYWRlaW5wb3B1cGQyYz17aW5pdDpmdW5jdGlvbigpe30sb25CZWZvcmVTdWJtaXQ6ZnVuY3Rpb24oYSl7ZW1haWxIYW5kbGVyLmRlcGFydG1lbnQ9Ik5FVyI7ZW1haWxIYW5kbGVyLmNvbmRpdGlvbj0ibmV3IjthLnNldHRpbmdzLnZlaGljbGVTdGF0ZT0ibmV3IjtpZigidXNlZGNhcnMuaHRtbCI9PSQoIiNQQUdFSUQiKS52YWwoKXx8IjAiPT0kKCJpbnB1dFtuYW1lPXRyYWRlSW5IYXNOZXdEZXBdIikudmFsKCkpZW1haWxIYW5kbGVyLmRlcGFydG1lbnQ9IlVTRUQiLGVtYWlsSGFuZGxlci5jb25kaXRpb249InVzZWQiLGEuc2V0dGluZ3MudmVoaWNsZVN0YXRlPSJ1c2VkIjtlbWFpbEhhbmRsZXIubWFrZT0kKCIjbGFzdHZpZXdlZG1ha2UiKS52YWwoKTtlbWFpbEhhbmRsZXIubW9kZWw9JCgiI2xhc3R2aWV3ZWRtb2RlbCIpLnZhbCgpO2VtYWlsSGFuZGxlci55ZWFyPSQoIiNsYXN0dmlld2VkeWVhciIpLnZhbCgpOyQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9IkVNQUlMTUFLRSJdJykudmFsKCQoIiNsYXN0dmlld2VkbWFrZSIpLnZhbCgpKTsKJCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT0iRU1BSUxNT0RFTCJdJykudmFsKCQoIiNsYXN0dmlld2VkbW9kZWwiKS52YWwoKSk7JCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT0iRU1BSUxZRUFSIl0nKS52YWwoJCgiI2xhc3R2aWV3ZWR5ZWFyIikudmFsKCkpOyQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9IlNUT0NLTlVNQkVSIl0nKS52YWwoJCgiI2xhc3R2aWV3ZWRzdG9ja251bWJlciIpLnZhbCgpKTskKCIjdmVoaWNsZWNvbG9yIikubGVuZ3RoJiYkKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPSJDT0xPUiJdJykudmFsKCQoIiN2ZWhpY2xlY29sb3IiKS52YWwoKSk7JCgiI3RyYWRlSW5CYXJQb3B1cE1ha2UiKS5oYXNDbGFzcygicmVxdWlyZWQiKSYmIiIhPSQoIiN0cmFkZUluQmFyUG9wdXBNYWtlIikudmFsKCkmJigkKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPSJNQUtFRVgiXScpLnZhbCgkKCIjdHJhZGVJbkJhclBvcHVwTWFrZSIpLnZhbCgpKSwKZW1haWxIYW5kbGVyLmNhcjJfbWFrZT0kKCIjdHJhZGVJbkJhclBvcHVwTWFrZSIpLnZhbCgpKTskKCIjdHJhZGVJbkJhclBvcHVwTW9kZWwiKS5oYXNDbGFzcygicmVxdWlyZWQiKSYmIiIhPSQoIiN0cmFkZUluQmFyUG9wdXBNb2RlbCIpLnZhbCgpJiYoJCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT0iTU9ERUxFWCJdJykudmFsKCQoIiN0cmFkZUluQmFyUG9wdXBNb2RlbCIpLnZhbCgpKSxlbWFpbEhhbmRsZXIuY2FyMl9tb2RlbD0kKCIjdHJhZGVJbkJhclBvcHVwTW9kZWwiKS52YWwoKSk7JCgiI3RyYWRlSW5CYXJQb3B1cFRyaW0iKS5oYXNDbGFzcygicmVxdWlyZWQiKSYmIiIhPSQoIiN0cmFkZUluQmFyUG9wdXBUcmltIikudmFsKCkmJigkKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPSJUUklNRVgiXScpLnZhbCgkKCIjdHJhZGVJbkJhclBvcHVwVHJpbSIpLnZhbCgpKSwkKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPSJ0cmFkZWluYmFyU3R5bGVpZCJdJykudmFsKCQoIiN0cmFkZUluQmFyUG9wdXBUcmltIG9wdGlvbjpzZWxlY3RlZCIpLmF0dHIoImRhdGEtc3R5bGVpZCIpKSwKZW1haWxIYW5kbGVyLmNhcjJfdHJpbT0kKCIjdHJhZGVJbkJhclBvcHVwVHJpbSIpLnZhbCgpKTskKCIjdHJhZGVJbkJhclBvcHVwWWVhciIpLmhhc0NsYXNzKCJyZXF1aXJlZCIpJiYiIiE9JCgiI3RyYWRlSW5CYXJQb3B1cFllYXIiKS52YWwoKSYmKCQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9IllFQVJFWCJdJykudmFsKCQoIiN0cmFkZUluQmFyUG9wdXBZZWFyIikudmFsKCkpLGVtYWlsSGFuZGxlci5jYXIyX3llYXI9JCgiI3RyYWRlSW5CYXJQb3B1cFllYXIiKS52YWwoKSk7JCgiI3RyYWRlSW5CYXJQb3B1cE5pdiIpLmxlbmd0aCYmIiIhPSQoIiN0cmFkZUluQmFyUG9wdXBOaXYiKS52YWwoKSYmJCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT0iVklORVgiXScpLnZhbCgkKCIjdHJhZGVJbkJhclBvcHVwTml2IikudmFsKCkpOyQoIiNUcmFkZUluQmFyUG9wdXBDb250YWluZXIiKS5maW5kKCdpbnB1dFtuYW1lPSJ0cmFkZWluYmFyUmVnaXN0ZXJQYXJ0aWFsSUQiXScpLmxlbmd0aCYmCihlbWFpbEhhbmRsZXIudHJhZGVpbmJhclJlZ2lzdGVyUGFydGlhbElEPSQoIiNUcmFkZUluQmFyUG9wdXBDb250YWluZXIiKS5maW5kKCdpbnB1dFtuYW1lPSJ0cmFkZWluYmFyUmVnaXN0ZXJQYXJ0aWFsSUQiXScpLnZhbCgpKTtlbWFpbEhhbmRsZXIuY2FyMl9vZG9tZXRlcj0kKCIjcmViYXRlTWlsZWFnZV90cmFkZUluQmFyUG9wdXAiKS52YWwoKTthLnNldHRpbmdzLmNsb3NlT25TdWJtaXQ9ITE7aWYoISQoImlucHV0W25hbWU9dHJhZGVJbkJhclNtc09yRW1haWxdOmNoZWNrZWQiKS5sZW5ndGgmJjA9PSQoImlucHV0W25hbWU9dHJhZGVJblZhbHVlQ0JCQ2FsbGVkXSIpLnZhbCgpJiYxIT0kKCJpbnB1dFtuYW1lPW5vQ0JCXSIpLnZhbCgpKXJldHVybiB0aGlzLm9uQmVmb3JlU3VibWl0Q0JCQ2FsbChhKSwhMTtpZighJCgiaW5wdXRbbmFtZT10cmFkZUluQmFyU21zT3JFbWFpbF06Y2hlY2tlZCIpLmxlbmd0aCYmMD09JCgiaW5wdXRbbmFtZT10cmFkZUluVmFsdWVDQkJDYWxsZWRdIikudmFsKCkmJgoxPT0kKCJpbnB1dFtuYW1lPWlzQWNjdXRyYWRlXSIpLnZhbCgpKXJldHVybiB0aGlzLm9uQmVmb3JlU3VibWl0QWNjdXRyYWRlQ2FsbChhKSwhMTtpZigkKCJpbnB1dFtuYW1lPXRyYWRlSW5CYXJTbXNPckVtYWlsXTpjaGVja2VkIikubGVuZ3RoJiYxPT0kKCJpbnB1dFtuYW1lPXRyYWRlSW5WYWx1ZUNCQkNhbGxlZF0iKS52YWwoKSYmMT09JCgiaW5wdXRbbmFtZT10cmFkZUluVmFsdWVDQkJBdmFpbGFibGVWYWx1ZXNdIikudmFsKCkmJjEhPSQoImlucHV0W25hbWU9bm9DQkJdIikudmFsKCkpdGhpcy5vbkJlZm9yZVN1Ym1pdENCQk1lc3NhZ2UoYSk7ZWxzZSBpZigkKCJpbnB1dFtuYW1lPXRyYWRlSW5CYXJTbXNPckVtYWlsXTpjaGVja2VkIikubGVuZ3RoJiYxPT0kKCJpbnB1dFtuYW1lPXRyYWRlSW5WYWx1ZUNCQkNhbGxlZF0iKS52YWwoKSYmMT09JCgiaW5wdXRbbmFtZT10cmFkZUluVmFsdWVDQkJBdmFpbGFibGVWYWx1ZXNdIikudmFsKCkmJjE9PSQoImlucHV0W25hbWU9aXNBY2N1dHJhZGVdIikudmFsKCkpdGhpcy5vbkJlZm9yZVN1Ym1pdEFjY3V0cmFkZU1lc3NhZ2UoYSk7CmlmKCIxIj09PSQoImlucHV0W25hbWU9c3RlcDNhY3RpdmVdIikudmFsKCkmJiIwIj09PSQoImlucHV0W25hbWU9c3RlcDNkb25lXSIpLnZhbCgpKXJldHVybiB0aGlzLmluaXRUcmFkZUluU3RlcDMoKSwhMTthLnNldHRpbmdzLmNsb3NlT25TdWJtaXQ9ITB9LG9uQWZ0ZXJTdWJtaXQ6ZnVuY3Rpb24oYSl7JCgiYm9keSIpLnRyaWdnZXIoIlRyYWRlSW5CYXJQb3B1cFdpZGdldF9vblN1Ym1pdCIsW10pO2E9JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT1kZWZhdWx0U3VibWl0TWVzYWdlXSIpLnZhbCgpOzA9PSQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9dHJhZGVJblZhbHVlQ0JCQXZhaWxhYmxlVmFsdWVzXSIpLnZhbCgpJiYxIT0kKCJpbnB1dFtuYW1lPW5vQ0JCXSIpLnZhbCgpJiYoYT0kKCIjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPW5vVmFsdWVTdWJtaXRNZXNhZ2VdIikudmFsKCkpO2xldCBrPSQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9dHJhZGVJbkxvd10iKS52YWwoKXx8CjAsZD0kKCIjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPXRyYWRlSW5IaWdoXSIpLnZhbCgpfHwwLGI9JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT10cmFkZUluQXZnXSIpLnZhbCgpfHwwO3ZhciBjPSQoImJvZHkiKS5oYXNDbGFzcygiRU5HTElTSCIpPyQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9IllFQVJFWCJdJykudmFsKCkrIiAiKyQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9Ik1BS0VFWCJdJykudmFsKCkrIiAiKyQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9Ik1PREVMRVgiXScpLnZhbCgpOiQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9Ik1BS0VFWCJdJykudmFsKCkrIiAiKyQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9Ik1PREVMRVgiXScpLnZhbCgpKyIgIiskKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPSJZRUFSRVgiXScpLnZhbCgpO2lmKDE9PQokKCIjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPVJFQUxUSU1FRVNUSU1BVEVdIikudmFsKCkpe3ZhciBoPSQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9IkNCQlNJTkdMRVZBTFVFIl0nKS52YWwoKTtsZXQgZT0nPHNwYW4gc3R5bGU9InRleHQtYWxpZ246Y2VudGVyO2ZvbnQtd2VpZ2h0OjYwMDtmb250LXNpemU6MTZweDsiPjxicj4nK2MrIjwvc3Bhbj4iLG49IiI7JCgiYm9keSIpLmhhc0NsYXNzKCJFTkdMSVNIIik\/IjEiPT1oP2UrPSI8YnI+RXN0aW1hdGVkIFZhbHVlOiAkIitiOihlKz0iPGJyPk1pbmltdW0gRXN0aW1hdGVkIFZhbHVlOiAkIitrLGUrPSI8YnI+TWF4aW11bSBFc3RpbWF0ZWQgVmFsdWU6ICQiK2QpOiIxIj09aD9lKz0iPGJyPlZhbGV1ciBlc3RpbcOpZTogIitiKyIkIjooZSs9Ijxicj5WYWxldXIgZXN0aW3DqWUgbWluaW1hbGU6ICIraysiJCIsZSs9Ijxicj5WYWxldXIgZXN0aW3DqWUgbWF4aW1hbGU6ICIrZCsiJCIpO24rPSc8ZGl2IHN0eWxlPSJmb250LXNpemU6MTJweDttYXJnaW4tdG9wOjEwcHg7Ij4nKwokKCJpbnB1dFtuYW1lPXRyYWRlSW5Nc2dEaXNjbGFpbWVyVGV4dDFdIikudmFsKCkrJCgiaW5wdXRbbmFtZT10cmFkZUluTXNnRGlzY2xhaW1lclRleHQyXSIpLnZhbCgpKyI8L2Rpdj4iO2ErPSc8ZGl2IHN0eWxlPSJ0ZXh0LWFsaWduOmNlbnRlcjtmb250LXdlaWdodDpib2xkO2ZvbnQtc2l6ZToyMHB4OyI+JytlKyI8L2Rpdj4iK259JCgiI2VtYWlsU3VjY2Vzc01lc3NhZ2VfVHJhZGVJbkJhclBvcHVwQ29udGFpbmVyIHAiKS5odG1sKCI8YnI+IithKTtsZXQgZz1pc05hTihwYXJzZUludChiKSk\/ZDpiO2lzTmFOKHBhcnNlSW50KGcpKXx8KGE9bmV3IEN1c3RvbUV2ZW50KCJ0cmFja3N0ZXAuY29tcGxldGUiLHtkZXRhaWw6e3N0ZXBJZDoiVHJhZGVJbkFjdGlvbkJveCIsb25Db21wbGV0ZTplPT57ZS5kYXRhc2V0LmNvbXBsX3R4dF9mcj1lLmRhdGFzZXQuY29tcGxfdHh0X2ZyLnJlcGxhY2UoInskVFJBREVDQVJ9IixjKS5yZXBsYWNlKCJ7JFRSQURFVkFMfSIsZyk7ZS5kYXRhc2V0LmNvbXBsX3R4dF9lbj0KZS5kYXRhc2V0LmNvbXBsX3R4dF9lbi5yZXBsYWNlKCJ7JFRSQURFQ0FSfSIsYykucmVwbGFjZSgieyRUUkFERVZBTH0iLGcpO3ZhciBuPXt5ZWFyOiQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9WUVBUkVYXSIpLnZhbCgpLG1ha2U6JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT1NQUtFRVhdIikudmFsKCksbW9kZWw6JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT1NT0RFTEVYXSIpLnZhbCgpLHRyaW06JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT1UUklNRVhdIikudmFsKCksdmFsdWU6cGFyc2VJbnQoZy5yZXBsYWNlKCIsIiwiIikpfTtfbG9jYWxTdG9yYWdlU2V0KCJ0cmFkZWluX3N1Ym1pdF9kYXRhIixKU09OLnN0cmluZ2lmeShuKSwxKTtpZigxPnBhcnNlSW50KGcpKXtuPSQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9emVyb1ZhbHVlTWVzc2FnZUVuXSIpLnZhbCgpO2xldCByPSQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9emVyb1ZhbHVlTWVzc2FnZUZyXSIpLnZhbCgpOwplLmRhdGFzZXQuY29tcGxfdHh0X2ZyPWAke2N9IHwgJHtyfWA7ZS5kYXRhc2V0LmNvbXBsX3R4dF9lbj1gJHtjfSB8ICR7bn1gfX0sZm9yY2VVcGRhdGU6ITB9fSksZG9jdW1lbnQuZGlzcGF0Y2hFdmVudChhKSk7JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gW25hbWU9dHJhZGVJbkF2Z10iKS52YWwoMCk7JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gW25hbWU9dHJhZGVJbkxvd10iKS52YWwoMCk7JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gW25hbWU9dHJhZGVJbkhpZ2hdIikudmFsKDApOyQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIFtuYW1lPXRyYWRlSW5WYWx1ZUNCQkF2YWlsYWJsZVZhbHVlc10iKS52YWwoMCk7JCgiLnRyYWRlSW5CYXJTdGVwMSIpLnNob3coKTskKCIudHJhZGVJbkJhclN0ZXAyVGl0bGUiKS50ZXh0KCQoIi50cmFkZUluQmFyU3RlcDJUaXRsZSIpLnRleHQoKS5yZXBsYWNlKCIgIitjLCIiKSk7JCgiaW5wdXRbbmFtZT10cmFkZUluQmFyU21zT3JFbWFpbF0iKS5yZW1vdmVDbGFzcygicmVxUmFkaW8iKTsKJCgiLnRyYWRlSW5CYXJTdGVwMiIpLmhpZGUoKTskKCJpbnB1dFtuYW1lPXRyYWRlSW5WYWx1ZUNCQkNhbGxlZF0iKS52YWwoMCk7JCgiaW5wdXRbbmFtZT10cmFkZUluQmFyU21zT3JFbWFpbF06Y2hlY2tlZCIpLnByb3AoImNoZWNrZWQiLCExKTskKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBzZWxlY3RbbmFtZT0iVkVISUNMRU9QVElPTlMiXScpLmZpbmQoIm9wdGlvbiIpLnJlbW92ZSgpOyQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9IlFVRVNUSU9OUyJdJykudmFsKCIiKX0sb25CZWZvcmVPcGVuOmZ1bmN0aW9uKCl7Zm9yKHZhciBhPWdldFVybFZhcnMoKSxrPU9iamVjdC5rZXlzKGEpLGQ9ay5sZW5ndGgsYj17fTtkLS07KXt2YXIgYz1rW2RdO2JbYy50b0xvd2VyQ2FzZSgpXT1hW2NdfWE9Yjt2YXIgaD0kKCdzZWxlY3RbbmFtZT0idHJhZGluTWFrZSJdJykudmFsKCk\/JCgnc2VsZWN0W25hbWU9InRyYWRpbk1ha2UiXScpLnZhbCgpOmQyY21lZGlhLmNhcGl0YWxpc2VGaXJzdExldHRlcihhLnRtYWtlPwphLnRtYWtlLnRvTG93ZXJDYXNlKCk6IiIpLGc9JCgnc2VsZWN0W25hbWU9InRyYWRpbk1vZGVsIl0nKS52YWwoKT8kKCdzZWxlY3RbbmFtZT0idHJhZGluTW9kZWwiXScpLnZhbCgpOmQyY21lZGlhLmNhcGl0YWxpc2VGaXJzdExldHRlcihhLnRtb2RlbD9hLnRtb2RlbC50b0xvd2VyQ2FzZSgpOiIiKTtrPSQoJ3NlbGVjdFtuYW1lPSJ0cmFkaW5UcmltIl0nKS52YWwoKT8kKCdzZWxlY3RbbmFtZT0idHJhZGluVHJpbSJdJykudmFsKCk6IiAiO2Q9JCgnc2VsZWN0W25hbWU9InRyYWRpblRyaW0iXScpLnZhbCgpPyQoJ3NlbGVjdFtuYW1lPSJ0cmFkaW5UcmltIl0gb3B0aW9uOnNlbGVjdGVkJykuYXR0cigiZGF0YS1zdHlsZWlkIik6IiAiO3ZhciBlPSQoJ3NlbGVjdFtuYW1lPSJ0cmFkaW5ZZWFyIl0nKS52YWwoKT8kKCdzZWxlY3RbbmFtZT0idHJhZGluWWVhciJdJykudmFsKCk6YS50eWVhcjthPSQoJ2lucHV0W25hbWU9InRyYWRpblZpbiJdJykudmFsKCk\/JCgnaW5wdXRbbmFtZT0idHJhZGluVmluIl0nKS52YWwoKToKIiI7JCgidHJhZGVJblNlbGVjdGVkTWFrZSIpLnZhbChoKTskKCJ0cmFkZUluU2VsZWN0ZWRNb2RlbCIpLnZhbChnKTskKCJ0cmFkZUluU2VsZWN0ZWRUcmltIikudmFsKGspOyQoInRyYWRlSW5TZWxlY3RlZFllYXIiKS52YWwoZSk7JCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT0iTUFLRUVYIl0nKS52YWwoaCk7JCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT0iTU9ERUxFWCJdJykudmFsKGcpOyQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9IlRSSU1FWCJdJykudmFsKGspOyQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9IllFQVJFWCJdJykudmFsKGUpOyQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9InRyYWRlaW5iYXJTdHlsZWlkIl0nKS52YWwoZCk7JCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT0iVklORVgiXScpLnZhbChhKTtpZigidW5kZWZpbmVkIiE9PXR5cGVvZiBjbGllbnRTdG9yYWdlKXt2YXIgbjsKYT1udWxsIT0obj1jbGllbnRTdG9yYWdlLmdldCgiZmlyc3RuYW1lIikpP246IiI7dmFyIHI7bj1udWxsIT0ocj1jbGllbnRTdG9yYWdlLmdldCgibGFzdG5hbWUiKSk\/cjoiIjtyPWErKCIiIT1uPyIgIitjbGllbnRTdG9yYWdlLmdldCgibGFzdG5hbWUiKToiIik7JCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT0iRk5BTUUiXScpLnZhbChyKTt2YXIgZjskKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPSJFTUFJTFBIT05FIl0nKS52YWwobnVsbCE9KGY9Y2xpZW50U3RvcmFnZS5nZXQoInBob25lIikpP2Y6IiIpO3ZhciB1OyQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9IkVNQUlMIl0nKS52YWwobnVsbCE9KHU9Y2xpZW50U3RvcmFnZS5nZXQoImVtYWlsIikpP3U6IiIpfWVtYWlsSGFuZGxlci5jYXIyX21ha2U9aDtlbWFpbEhhbmRsZXIuY2FyMl9tb2RlbD1nO2VtYWlsSGFuZGxlci5jYXIyX3RyaW09aztlbWFpbEhhbmRsZXIuY2FyMl95ZWFyPQplO2VtYWlsSGFuZGxlci5jYXIyX29kb21ldGVyPSQoIiNyZWJhdGVNaWxlYWdlX3RyYWRlSW5CYXJQb3B1cCIpLnZhbCgpO2VtYWlsSGFuZGxlci5kZXBhcnRtZW50PSJORVciO2lmKCJ1c2VkY2Fycy5odG1sIj09JCgiI1BBR0VJRCIpLnZhbCgpfHwiMCI9PSQoImlucHV0W25hbWU9dHJhZGVJbkhhc05ld0RlcF0iKS52YWwoKSllbWFpbEhhbmRsZXIuZGVwYXJ0bWVudD0iVVNFRCI7Zj0kKCJib2R5IikuaGFzQ2xhc3MoIkVOR0xJU0giKT8iICIrZSsiICIraCsiICIrZzoiICIraCsiICIrZysiICIrZTskKCIjdHJhZGVJbkJhclBvcHVwU2VsZWN0ZWRWZWhpY2xlIikuaHRtbChmKTtDb29raWVzLmdldCgicG9wdXBQYWdlVmlld3MiKXx8Q29va2llcy5zZXQoInBvcHVwUGFnZVZpZXdzIiwiMCIsbnVsbCwiLyIpO2lmKCIxIj09JCgiI2lzTW9iaWxlIikudmFsKCl8fCIiPT1ofHwiIj09Z3x8IiI9PWUpeyIxIiE9JCgiI2lzTW9iaWxlIikudmFsKCkmJigkKCIjVHJhZGVJbkJhclBvcHVwQ29udGFpbmVyIikuY3NzKCJoZWlnaHQiLAoiNjgwcHgiKSwkKCIjdHJhZGVJbkJhclBvcHVwX2Zvcm1XIikuY3NzKCJoZWlnaHQiLCI2ODBweCIpKTskKCIjdHJhZGVJbkJhclBvcHVwTWFrZSIpLmFkZENsYXNzKCJyZXF1aXJlZCIpOyQoIiN0cmFkZUluQmFyUG9wdXBNYWtlIikuZW1wdHkoKTskKCIjdHJhZGVJbkJhclBvcHVwTW9kZWwiKS5hZGRDbGFzcygicmVxdWlyZWQiKTskKCIjdHJhZGVJbkJhclBvcHVwTW9kZWwiKS5lbXB0eSgpOyQoIiN0cmFkZUluQmFyUG9wdXBZZWFyIikuYWRkQ2xhc3MoInJlcXVpcmVkIik7JCgiI3RyYWRlSW5CYXJQb3B1cFllYXIiKS5lbXB0eSgpOyJ2aW4iIT0kKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPSJDQkJNT0RFTFNFTEVDVCJdJykudmFsKCk\/KCQoIiN0cmFkZUluQmFyUG9wdXBNYWtlRGl2Q29udGFpbmVyIikuY3NzKCJkaXNwbGF5IiwiaW5saW5lLWJsb2NrIiksJCgiI3RyYWRlSW5CYXJQb3B1cE1vZGVsRGl2Q29udGFpbmVyIikuY3NzKCJkaXNwbGF5IiwiaW5saW5lLWJsb2NrIiksCiQoIiN0cmFkZUluQmFyUG9wdXBZZWFyRGl2Q29udGFpbmVyIikuY3NzKCJkaXNwbGF5IiwiaW5saW5lLWJsb2NrIikpOiQoIiN0cmFkZUluQmFyUG9wdXBOaXZEaXZDb250YWluZXIiKS5jc3MoImRpc3BsYXkiLCJpbmxpbmUtYmxvY2siKTswIT0kKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPSJDQkJNT0RFTFNFTEVDVCJdJykudmFsKCkmJigkKCcubml2TWFrZU1vZGVsU2VsZWN0Q29udGFpbmVyIC5uaXZNYWtlTW9kZWxTZWxlY3RbdmFsdWU9IicrJCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT0iQ0JCTU9ERUxTRUxFQ1QiXScpLnZhbCgpKyciXScpLnByb3AoImNoZWNrZWQiLCEwKSwkKCIubml2TWFrZU1vZGVsU2VsZWN0Q29udGFpbmVyIikuc2hvdygpKTskKCIjdHJhZGVJbkJhclBvcHVwVHJpbURpdkNvbnRhaW5lciIpLmNzcygiZGlzcGxheSIsImlubGluZS1ibG9jayIpOyQoIiN0cmFkZUluQmFyUG9wdXBUcmltIikuYWRkQ2xhc3MoInJlcXVpcmVkIik7CiQoIiN0cmFkZUluQmFyUG9wdXBUcmltIikuZW1wdHkoKTtmPSQoImJvZHkiKS5oYXNDbGFzcygiRU5HTElTSCIpPyIgdHJhZGUtaW4hIjoiIMOpY2hhbmdlISI7JCgiI3RyYWRlSW5CYXJQb3B1cFNlbGVjdGVkVmVoaWNsZSIpLmh0bWwoZik7JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gLm5pdk1ha2VNb2RlbFNlbGVjdCIpLmxlbmd0aCYmJCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gLm5pdk1ha2VNb2RlbFNlbGVjdCIpLnRyaWdnZXIoImNoYW5nZSIpO3ZhciBxPSQoImJvZHkiKS5oYXNDbGFzcygiRU5HTElTSCIpPyJFTkdMSVNIIjoiRlJFTkNIIjskLmFqYXgoe3R5cGU6IlBPU1QiLHVybDooIkVOR0xJU0giPT1xPyIvZW4vIjoiL2ZyLyIpKyIvYWpheC9nZXRUcmFkZUluQmFyRGF0YT93c3dpZHRoPTAiLGRhdGFUeXBlOiJqc29uIixkYXRhOntsYW5ndWFnZTpxfSxzdWNjZXNzOmZ1bmN0aW9uKG0peyQoIiN0cmFkZUluQmFyUG9wdXBNYWtlIikuYXBwZW5kKCc8b3B0aW9uIHZhbHVlPSIiPicrCigiRU5HTElTSCI9PXE\/Ik1ha2UiOiJNYXJxdWUiKSsiPC9vcHRpb24+Iik7Zm9yKHZhciBsPTA7bDxtLmxlbmd0aDtsKyspe3ZhciBwPW1bbF0ubWFrZS50b0xvd2VyQ2FzZSgpPT1oLnRvTG93ZXJDYXNlKCk\/J3NlbGVjdGVkPSJzZWxlY3RlZCInOiIiO2xldCB0PTE9PSQoImlucHV0W25hbWU9aXNBY2N1dHJhZGVdIikudmFsKCk\/bVtsXS5tYWtlLnRvVXBwZXJDYXNlKCk6bVtsXS5tYWtlOyQoIiN0cmFkZUluQmFyUG9wdXBNYWtlIikuYXBwZW5kKCI8b3B0aW9uICIrcCsnIHZhbHVlPSInK3QrJyI+JyttW2xdLm1ha2UrIjwvb3B0aW9uPiIpfSQoIiN0cmFkZUluQmFyUG9wdXBNYWtlIikudHJpZ2dlcigiY2hhbmdlIik7JCgiI3RyYWRlSW5CYXJQb3B1cE5pdiIpLmxlbmd0aCYmJCgiI3RyYWRlSW5CYXJQb3B1cE5pdiIpLnRyaWdnZXIoImtleXVwIil9fSl9ZWxzZSIgIj09az8oJCgiI3RyYWRlSW5CYXJQb3B1cFRyaW1EaXZDb250YWluZXIiKS5jc3MoImRpc3BsYXkiLCJpbmxpbmUtYmxvY2siKSwKJCgiI3RyYWRlSW5CYXJQb3B1cFRyaW0iKS5hZGRDbGFzcygicmVxdWlyZWQiKSwkKCIjdHJhZGVJbkJhclBvcHVwVHJpbSIpLmVtcHR5KCkscT0kKCJib2R5IikuaGFzQ2xhc3MoIkVOR0xJU0giKT8iRU5HTElTSCI6IkZSRU5DSCIsMSE9JCgiaW5wdXRbbmFtZT1ub0NCQl0iKS52YWwoKT8kLmFqYXgoe3R5cGU6IlBPU1QiLHVybDooIkVOR0xJU0giPT1xPyIvZW4vIjoiL2ZyLyIpKyIvYWpheC9nZXRUcmFkZUluQmFyVHJpbT93c3dpZHRoPTAiLGRhdGFUeXBlOiJqc29uIixkYXRhOntsYW5ndWFnZTpxLG1ha2U6aCxtb2RlbDpnLHllYXI6ZX0sc3VjY2VzczpmdW5jdGlvbihtKXskKCIjdHJhZGVJbkJhclBvcHVwVHJpbSIpLmFwcGVuZCgnPG9wdGlvbiB2YWx1ZT0iIj4nKygiRU5HTElTSCI9PXE\/IlRyaW0iOiJWZXJzaW9uIikrIjwvb3B0aW9uPiIpO2Zvcih2YXIgbD0wO2w8bS5sZW5ndGg7bCsrKXt2YXIgcD1tW2xdLnN0eWxlKyIgIittW2xdLnNlcmllcywKdD1tW2xdLnV2YzskKCIjdHJhZGVJbkJhclBvcHVwVHJpbSIpLmFwcGVuZCgnPG9wdGlvbiBkYXRhLXN0eWxlaWQ9IicrdCsnIiB2YWx1ZT0iJytwKyciPicrcCsiPC9vcHRpb24+Iil9fX0pOjE9PSQoImlucHV0W25hbWU9aXNBY2N1dHJhZGVdIikudmFsKCk\/JC5hamF4KHt0eXBlOiJQT1NUIix1cmw6KCJFTkdMSVNIIj09cT8iL2VuLyI6Ii9mci8iKSsiL2FqYXgvZ2V0VHJhZGVJbk1uZ1RyaW0\/d3N3aWR0aD0wIixkYXRhVHlwZToianNvbiIsZGF0YTp7bGFuZ3VhZ2U6cSxtYWtlOmgsbW9kZWw6Zyx5ZWFyOmV9LHN1Y2Nlc3M6ZnVuY3Rpb24obSl7JCgiI3RyYWRlSW5CYXJQb3B1cFRyaW0iKS5hcHBlbmQoJzxvcHRpb24gdmFsdWU9IiI+JysoIkVOR0xJU0giPT1xPyJUcmltIjoiVmVyc2lvbiIpKyI8L29wdGlvbj4iKTtmb3IodmFyIGw9MDtsPG0ubGVuZ3RoO2wrKyl7dmFyIHA9bVtsXS5uYW1lLHQ9bVtsXS5pZDskKCIjdHJhZGVJbkJhclBvcHVwVHJpbSIpLmFwcGVuZCgnPG9wdGlvbiBkYXRhLXN0eWxlaWQ9IicrCnQrJyIgdmFsdWU9IicrcCsnIj4nK3ArIjwvb3B0aW9uPiIpfX19KTokLmFqYXgoe3R5cGU6IlBPU1QiLHVybDooIkVOR0xJU0giPT1xPyIvZW4vIjoiL2ZyLyIpKyIvYWpheC9nZXRUcmFkZUluQmFyRGF0YT93c3dpZHRoPTAiLGRhdGFUeXBlOiJqc29uIixkYXRhOntsYW5ndWFnZTpxLG1ha2U6aH0sc3VjY2VzczpmdW5jdGlvbihtKXskKCIjdHJhZGVJbkJhclBvcHVwVHJpbSIpLmFwcGVuZCgnPG9wdGlvbiB2YWx1ZT0iIj4nKygiRU5HTElTSCI9PXE\/IlRyaW0iOiJWZXJzaW9uIikrIjwvb3B0aW9uPiIpO2Zvcih2YXIgbD0wO2w8bVtlXS5sZW5ndGg7bCsrKW1bZV1bbF0ubW9kZWwudG9Mb3dlckNhc2UoKT09Zy50b0xvd2VyQ2FzZSgpJiYkKCIjdHJhZGVJbkJhclBvcHVwVHJpbSIpLmFwcGVuZCgnPG9wdGlvbiB2YWx1ZT0iJyttW2VdW2xdLnRyaW0rJyI+JyttW2VdW2xdLnRyaW0rIjwvb3B0aW9uPiIpfX0pKTooJCgiI3RyYWRlSW5CYXJQb3B1cE1ha2VEaXZDb250YWluZXIiKS5oaWRlKCksCiQoIiN0cmFkZUluQmFyUG9wdXBNYWtlIikucmVtb3ZlQ2xhc3MoInJlcXVpcmVkIiksJCgiI3RyYWRlSW5CYXJQb3B1cE1vZGVsRGl2Q29udGFpbmVyIikuaGlkZSgpLCQoIiN0cmFkZUluQmFyUG9wdXBNb2RlbCIpLnJlbW92ZUNsYXNzKCJyZXF1aXJlZCIpLCQoIiN0cmFkZUluQmFyUG9wdXBZZWFyRGl2Q29udGFpbmVyIikuaGlkZSgpLCQoIiN0cmFkZUluQmFyUG9wdXBZZWFyIikucmVtb3ZlQ2xhc3MoInJlcXVpcmVkIiksJCgiI3RyYWRlSW5CYXJQb3B1cFRyaW1EaXZDb250YWluZXIiKS5oaWRlKCksJCgiI3RyYWRlSW5CYXJQb3B1cFRyaW0iKS5yZW1vdmVDbGFzcygicmVxdWlyZWQiKSwxIT0kKCJpbnB1dFtuYW1lPW5vQ0JCXSIpLnZhbCgpPygkKCIubml2TWFrZU1vZGVsU2VsZWN0Q29udGFpbmVyIikuaGlkZSgpLCQoIiN0cmFkZUluQmFyUG9wdXBOaXZEaXZDb250YWluZXIiKS5oaWRlKCksJC5hamF4KHt0eXBlOiJQT1NUIix1cmw6KCQoImJvZHkiKS5oYXNDbGFzcygiRU5HTElTSCIpPwoiL2VuLyI6Ii9mci8iKSsiL2FqYXgvZ2V0VHJhZGVJbkJhclZhbHVlP3dzd2lkdGg9MCIsZGF0YVR5cGU6Impzb24iLGRhdGE6e3V2YzokKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPSJ0cmFkZWluYmFyU3R5bGVpZCJdJykudmFsKCkscHJvdmluY2U6JCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT0iZGVhbGVyUHJvdmluY2VUcmFkZUluIl0nKS52YWwoKX0sc3VjY2VzczpmdW5jdGlvbihtKXskKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBzZWxlY3RbbmFtZT0iVkVISUNMRU9QVElPTlMiXScpLmZpbmQoIm9wdGlvbiIpLnJlbW92ZSgpOyQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIC5tdWx0aXNlbGVjdFZlaGljbGVPcHRpb25zIikuaGlkZSgpOyQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIC5vcGVuVmVoaWNsZU9wdGlvbnMiKS5zaG93KCl9fSkpOjE9PSQoImlucHV0W25hbWU9aXNBY2N1dHJhZGVdIikudmFsKCkmJigkKCIubml2TWFrZU1vZGVsU2VsZWN0Q29udGFpbmVyIikuaGlkZSgpLAokKCIjdHJhZGVJbkJhclBvcHVwTml2RGl2Q29udGFpbmVyIikuaGlkZSgpLCQuYWpheCh7dHlwZToiUE9TVCIsdXJsOigkKCJib2R5IikuaGFzQ2xhc3MoIkVOR0xJU0giKT8iL2VuLyI6Ii9mci8iKSsiL2FqYXgvZ2V0VHJhZGVJbk1uZ09wdGlvbnM\/d3N3aWR0aD0wIixkYXRhVHlwZToianNvbiIsZGF0YTp7aWQ6JCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT0idHJhZGVpbmJhclN0eWxlaWQiXScpLnZhbCgpLHByb3ZpbmNlOiQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9ImRlYWxlclByb3ZpbmNlVHJhZGVJbiJdJykudmFsKCl9LHN1Y2Nlc3M6ZnVuY3Rpb24obSl7JCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gc2VsZWN0W25hbWU9IlZFSElDTEVPUFRJT05TIl0nKS5maW5kKCJvcHRpb24iKS5yZW1vdmUoKTskKCIjdHJhZGVJbkJhclBvcHVwRm9ybSAubXVsdGlzZWxlY3RWZWhpY2xlT3B0aW9ucyIpLmhpZGUoKTskKCIjdHJhZGVJbkJhclBvcHVwRm9ybSAub3BlblZlaGljbGVPcHRpb25zIikuc2hvdygpfX0pKSk7CmE9Z2V0VXJsVmFycygpO2Y9YS5oYXNPd25Qcm9wZXJ0eSgidHJhZGUtdmFsdWUiKSYmInllcyI9PWFbInRyYWRlLXZhbHVlIl07dT1hLmhhc093blByb3BlcnR5KCJ0cmFkZS12YWx1ZSIpJiYibm8iPT1hWyJ0cmFkZS12YWx1ZSJdO3I9JCgnaW5wdXRbbmFtZT0iQ0JCQ2hlY2tVc2VyIl0nKS5sZW5ndGg\/YXRvYigkKCdpbnB1dFtuYW1lPSJDQkJDaGVja1VzZXIiXScpLnZhbCgpKToiIjt1fHwiNjYuMTMwLjEwNy4xNTciIT1yJiYxIT1Db29raWVzLmdldCgiRDJDVVVJRCIpJiYhZnx8MT09JCgiaW5wdXRbbmFtZT1ub0NCQl0iKS52YWwoKXx8KCQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9IkZOQU1FIl0nKS5oaWRlKCksJCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT0iRU1BSUxQSE9ORSJdJykuaGlkZSgpLCQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9IkVNQUlMIl0nKS5oaWRlKCksJCgiLnRyYWRlSW5CYXJEZWFsZXJNZXNzYWdlIikuc2hvdygpKTsKJCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gW25hbWU9IkVNQUlMUEhPTkUiXScpLmVhY2goKG0sbCk9PntJTWFzayhsLHttYXNrOlt7bWFzazoiMDAwIDAwMC0wMDAwIn0se21hc2s6IjEgMDAwIDAwMC0wMDAwIn1dfSl9KTskKCIjdHJhZGVJbkJhclBvcHVwX2Zvcm1XIC50cmFkZUluRGlzY2xhaW1lciAudHJhZGVJbkRpc2NsYWltZXJTaG9ydCIpLm9uKCJjbGljayIsZnVuY3Rpb24oKXtsZXQgbT0kKHRoaXMpLmZpbmQoIi50cmFkZUluRGlzY2xhaW1lckNvbnRlbnQiKS5odG1sKCk7JCgiLnRyYWRlSW5EaXNjbGFpbWVyRHJhd2VyIC50cmFkZUluRGlzY2xhaW1lckNvbnRlbnQiKS5lbXB0eSgpLmh0bWwobSk7JCgiLnRyYWRlSW5EaXNjbGFpbWVyRHJhd2VyIikuc2hvdygpLmFkZENsYXNzKCJvcGVuIil9KTskKCIjVHJhZGVJbkJhclBvcHVwQ29udGFpbmVyIC50cmFkZUluRGlzY2xhaW1lckNsb3NlIikub24oImNsaWNrIixmdW5jdGlvbigpeyQoIi50cmFkZUluRGlzY2xhaW1lckRyYXdlciIpLnJlbW92ZUNsYXNzKCJvcGVuIikuaGlkZSgpfSk7CnRoaXMudHJhZGVJbkJvdHRvbUxvZ29IZWlndCgpfSxvbkJlZm9yZVZhbGlkYXRpb246ZnVuY3Rpb24oYSl7dmFyIGs9Z2V0VXJsVmFycygpO2E9ay5oYXNPd25Qcm9wZXJ0eSgidHJhZGUtdmFsdWUiKSYmInllcyI9PWtbInRyYWRlLXZhbHVlIl07az1rLmhhc093blByb3BlcnR5KCJ0cmFkZS12YWx1ZSIpJiYibm8iPT1rWyJ0cmFkZS12YWx1ZSJdO3ZhciBkPSQoJ2lucHV0W25hbWU9IkNCQkNoZWNrVXNlciJdJykubGVuZ3RoP2F0b2IoJCgnaW5wdXRbbmFtZT0iQ0JCQ2hlY2tVc2VyIl0nKS52YWwoKSk6IiI7aWYoIWsmJigiNjYuMTMwLjEwNy4xNTciPT1kfHwxPT1Db29raWVzLmdldCgiRDJDVVVJRCIpfHxhKSYmMSE9JCgiaW5wdXRbbmFtZT1ub0NCQl0iKS52YWwoKSl7JCgiI3JlYmF0ZU1pbGVhZ2VfdHJhZGVJbkJhclBvcHVwIikucmVtb3ZlQ2xhc3MoInZhbGlkaXR5LWVycm9uZW91cyIpOyQoIiN0cmFkZUluQmFyUG9wdXBNYWtlIikuaGFzQ2xhc3MoInJlcXVpcmVkIikmJgoiIiE9JCgiI3RyYWRlSW5CYXJQb3B1cE1ha2UiKS52YWwoKSYmJCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT0iTUFLRUVYIl0nKS52YWwoJCgiI3RyYWRlSW5CYXJQb3B1cE1ha2UiKS52YWwoKSk7JCgiI3RyYWRlSW5CYXJQb3B1cE1vZGVsIikuaGFzQ2xhc3MoInJlcXVpcmVkIikmJiIiIT0kKCIjdHJhZGVJbkJhclBvcHVwTW9kZWwiKS52YWwoKSYmJCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT0iTU9ERUxFWCJdJykudmFsKCQoIiN0cmFkZUluQmFyUG9wdXBNb2RlbCIpLnZhbCgpKTskKCIjdHJhZGVJbkJhclBvcHVwVHJpbSIpLmhhc0NsYXNzKCJyZXF1aXJlZCIpJiYiIiE9JCgiI3RyYWRlSW5CYXJQb3B1cFRyaW0iKS52YWwoKSYmKCQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9IlRSSU1FWCJdJykudmFsKCQoIiN0cmFkZUluQmFyUG9wdXBUcmltIikudmFsKCkpLCQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9InRyYWRlaW5iYXJTdHlsZWlkIl0nKS52YWwoJCgiI3RyYWRlSW5CYXJQb3B1cFRyaW0gb3B0aW9uOnNlbGVjdGVkIikuYXR0cigiZGF0YS1zdHlsZWlkIikpKTsKJCgiI3RyYWRlSW5CYXJQb3B1cFllYXIiKS5oYXNDbGFzcygicmVxdWlyZWQiKSYmIiIhPSQoIiN0cmFkZUluQmFyUG9wdXBZZWFyIikudmFsKCkmJiQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9IllFQVJFWCJdJykudmFsKCQoIiN0cmFkZUluQmFyUG9wdXBZZWFyIikudmFsKCkpO2lmKDE+JCgiI3JlYmF0ZU1pbGVhZ2VfdHJhZGVJbkJhclBvcHVwIikudmFsKCkpcmV0dXJuICQoIiNyZWJhdGVNaWxlYWdlX3RyYWRlSW5CYXJQb3B1cCIpLmFkZENsYXNzKCJ2YWxpZGl0eS1lcnJvbmVvdXMiKSwhMTthPSQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIHNlbGVjdFtuYW1lPSJWRUhJQ0xFT1BUSU9OUyJdJykuZmluZCgib3B0aW9uOnNlbGVjdGVkIikubWFwKGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudmFsdWV9KS5nZXQoKS5qb2luKCIsICIpO3ZhciBiPSQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIHNlbGVjdFtuYW1lPSJWRUhJQ0xFT1BUSU9OUyJdJykuZmluZCgib3B0aW9uOnNlbGVjdGVkIikubWFwKGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudGV4dH0pLmdldCgpLmpvaW4oIiwgIik7Cms9JCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT0iS00iXScpLnZhbCgpOyQuYWpheCh7dHlwZToiUE9TVCIsdXJsOigkKCJib2R5IikuaGFzQ2xhc3MoIkVOR0xJU0giKT8iL2VuLyI6Ii9mci8iKSsiL2FqYXgvZ2V0VHJhZGVJbkJhclZhbHVlP3dzd2lkdGg9MCIsZGF0YVR5cGU6Impzb24iLGRhdGE6e3V2YzokKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPSJ0cmFkZWluYmFyU3R5bGVpZCJdJykudmFsKCksb3B0aW9uczphLHZlaGljbGVLTTprLHByb3ZpbmNlOiQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9ImRlYWxlclByb3ZpbmNlVHJhZGVJbiJdJykudmFsKCl9LHN1Y2Nlc3M6ZnVuY3Rpb24oYyl7dmFyIGg9Yy5jYW5hZGlhbl90cmFkZWluX3ZhbHVlfHxjLmJhc2VfdHJhZGVpbl9hdmd8fDAsZz1jLmNhbmFkaWFuX3RyYWRlaW5fbG93fHxjLmJhc2VfdHJhZGVpbl9yb3VnaHx8MDtjPWMuY2FuYWRpYW5fdHJhZGVpbl9oaWdofHwKYy5iYXNlX3RyYWRlaW5fY2xlYW58fDA7aD0iJCIrRDJDVXRpbHMuRm9ybWF0LnRvTnVtYmVyKGgpO2c9IiQiK0QyQ1V0aWxzLkZvcm1hdC50b051bWJlcihnKTtjPSIkIitEMkNVdGlscy5Gb3JtYXQudG9OdW1iZXIoYyk7dmFyIGU9JCgiYm9keSIpLmhhc0NsYXNzKCJFTkdMSVNIIik\/JCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT0iWUVBUkVYIl0nKS52YWwoKSsiICIrJCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT0iTUFLRUVYIl0nKS52YWwoKSsiICIrJCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT0iTU9ERUxFWCJdJykudmFsKCkrIiAiKyQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9IlRSSU1FWCJdJykudmFsKCk6JCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT0iTUFLRUVYIl0nKS52YWwoKSsiICIrJCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT0iTU9ERUxFWCJdJykudmFsKCkrIiAiKwokKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPSJZRUFSRVgiXScpLnZhbCgpKyIgIiskKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPSJUUklNRVgiXScpLnZhbCgpO2ImJihlKz0iICgiK2IrIikiKTskKCIjdHJhZGVJbkJhclBvcHVwRm9ybSAudHJhZGVJbkJhckRlYWxlclN0ZXAgLnRyYWRlSW5CYXJEZWFsZXJTdGVwTWFrZU1vZGVsWWVhciIpLnRleHQoZSk7IjEiPT0kKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPSJDQkJTSU5HTEVWQUxVRSJdJykudmFsKCk\/KCQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIC50cmFkZUluQmFyRGVhbGVyU3RlcCAudHJhZGVJbkJhckNCQk1pblZhbHVlIikucGFyZW50KCkuaGlkZSgpLCQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIC50cmFkZUluQmFyRGVhbGVyU3RlcCAudHJhZGVJbkJhckNCQk1heFZhbHVlIikucGFyZW50KCkuaGlkZSgpKTokKCIjdHJhZGVJbkJhclBvcHVwRm9ybSAudHJhZGVJbkJhckRlYWxlclN0ZXAgLnRyYWRlSW5CYXJDQkJBdmdWYWx1ZSIpLnBhcmVudCgpLmhpZGUoKTsKJCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gLnRyYWRlSW5CYXJEZWFsZXJTdGVwIC50cmFkZUluQmFyQ0JCTWluVmFsdWUiKS50ZXh0KGcpOyQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIC50cmFkZUluQmFyRGVhbGVyU3RlcCAudHJhZGVJbkJhckNCQk1heFZhbHVlIikudGV4dChjKTskKCIjdHJhZGVJbkJhclBvcHVwRm9ybSAudHJhZGVJbkJhckRlYWxlclN0ZXAgLnRyYWRlSW5CYXJDQkJBdmdWYWx1ZSIpLnRleHQoaCk7JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gLnRyYWRlSW5CYXJEZWFsZXJTdGVwIikuc2hvdygpfX0pO3JldHVybiExfX0sb25CZWZvcmVTdWJtaXRDQkJDYWxsOmZ1bmN0aW9uKGEpe3ZhciBrPSQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIHNlbGVjdFtuYW1lPSJWRUhJQ0xFT1BUSU9OUyJdJykuZmluZCgib3B0aW9uOnNlbGVjdGVkIikubWFwKGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudmFsdWV9KS5nZXQoKS5qb2luKCIsICIpLGQ9JCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gc2VsZWN0W25hbWU9IlZFSElDTEVPUFRJT05TIl0nKS5maW5kKCJvcHRpb246c2VsZWN0ZWQiKS5tYXAoZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy50ZXh0fSkuZ2V0KCkuam9pbigiLCAiKTsKIiIhPWQmJiQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9IlFVRVNUSU9OUyJdJykudmFsKGQpO2Q9JCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT0iS00iXScpLnZhbCgpOyQuYWpheCh7dHlwZToiUE9TVCIsdXJsOigkKCJib2R5IikuaGFzQ2xhc3MoIkVOR0xJU0giKT8iL2VuLyI6Ii9mci8iKSsiL2FqYXgvZ2V0VHJhZGVJbkJhclZhbHVlP3dzd2lkdGg9MCIsZGF0YVR5cGU6Impzb24iLGRhdGE6e3V2YzokKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPSJ0cmFkZWluYmFyU3R5bGVpZCJdJykudmFsKCksb3B0aW9uczprLHZlaGljbGVLTTpkLHByb3ZpbmNlOiQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9ImRlYWxlclByb3ZpbmNlVHJhZGVJbiJdJykudmFsKCl9LHN1Y2Nlc3M6ZnVuY3Rpb24oYil7dmFyIGM9Yi5jYW5hZGlhbl90cmFkZWluX3ZhbHVlfHxiLmJhc2VfdHJhZGVpbl9hdmd8fAowLGg9Yi5jYW5hZGlhbl90cmFkZWluX2xvd3x8Yi5iYXNlX3RyYWRlaW5fcm91Z2h8fDA7Yj1iLmNhbmFkaWFuX3RyYWRlaW5faGlnaHx8Yi5iYXNlX3RyYWRlaW5fY2xlYW58fDA7dmFyIGc9JCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT0iQ0JCQURERURWQUxVRSJdJykudmFsKCksZT0kKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPSJDQkJBRERFRFZBTFVFTUFLRVMiXScpLnZhbCgpLG49JCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT0iQ0JCQURERURWQUxVRVRZUEUiXScpLnZhbCgpLHI9JCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT0iQ0JCU0lOR0xFVkFMVUUiXScpLnZhbCgpOzAhPWcmJiIiIT1lJiYtMTxlLnNwbGl0KCI7IikuaW5kZXhPZigkKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPSJNQUtFRVgiXScpLnZhbCgpKSYmKCJjYXNoIj09bj8oYys9cGFyc2VJbnQoZyksaCs9cGFyc2VJbnQoZyksYis9CnBhcnNlSW50KGcpKToicGVyY2VudGFnZSI9PW4mJihnPTErZy8xMDAsYyo9ZyxoKj1nLGIqPWcpKTskKCIjdHJhZGVJbkJhclBvcHVwRm9ybSBbbmFtZT10cmFkZUluQXZnXSIpLmF0dHIoImRhdGEtYXZnIixjKTtpZigkKCJpbnB1dFtuYW1lPWZpbmFuY2VUcmFkZUluTWFrZV0iKS5sZW5ndGgpe2c9JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT1ZRUFSRVhdIikudmFsKCk7ZT0kKCIjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPU1BS0VFWF0iKS52YWwoKTtuPSQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9TU9ERUxFWF0iKS52YWwoKTtsZXQgbD0kKCIjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPVRSSU1FWF0iKS52YWwoKTskKCJpbnB1dFtuYW1lPWZpbmFuY2VUcmFkZUluTWFrZV0iKS52YWwoZSk7JCgiaW5wdXRbbmFtZT1maW5hbmNlVHJhZGVJbk1vZGVsXSIpLnZhbChuKTskKCJpbnB1dFtuYW1lPWZpbmFuY2VUcmFkZUluWWVhcl0iKS52YWwoZyk7CiQoImlucHV0W25hbWU9ZmluYW5jZVRyYWRlSW5UcmltXSIpLnZhbChsKTskKCJpbnB1dFtuYW1lPWZpbmFuY2VUcmFkZUluVmFsdWVdIikudmFsKCQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9dHJhZGVJbkF2Z10iKS5hdHRyKCJkYXRhLWF2ZyIpKTskKCIjcGF5bWVudFRyYWRlSW5WYWx1ZSIpLnZhbCgkKCIjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPXRyYWRlSW5BdmddIikuYXR0cigiZGF0YS1hdmciKSk7JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT10cmFkZUluQXZnXSIpLmF0dHIoImRhdGEtYXZnIiwiIil9aWYoMT09YS5zZXR0aW5ncy5mb3JtdWx0aXN0ZXApe2xldCBsPWlzTmFOKHBhcnNlSW50KGMpKT8wOmM7bD1EMkNVdGlscy5Gb3JtYXQudG9OdW1iZXIobCk7ZW1haWxIYW5kbGVyLnVzZXJFbWFpbD0kKCIjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPUVNQUlMXSIpLnZhbCgpO2VtYWlsSGFuZGxlci51c2VyUGhvbmU9CiQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9RU1BSUxQSE9ORV0iKS52YWwoKTt2YXIgZjtjPW51bGwhPShmPSQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9Rk5BTUVdIikudmFsKCkpP2Y6IiI7dmFyIHU7Zj1udWxsIT0odT1jLnNwbGl0KCIgIilbMF0pP3U6IiI7dmFyIHE7dT1udWxsIT0ocT1jLnNwbGl0KCIgIilbMV0pP3E6IiI7ZW1haWxIYW5kbGVyLnVzZXJGaXJzdE5hbWU9ZjtlbWFpbEhhbmRsZXIudXNlckxhc3ROYW1lPXU7dmFyIG09JCgiYm9keSIpLmhhc0NsYXNzKCJFTkdMSVNIIik\/JCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT0iWUVBUkVYIl0nKS52YWwoKSsiICIrJCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT0iTUFLRUVYIl0nKS52YWwoKSsiICIrJCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT0iTU9ERUxFWCJdJykudmFsKCk6JCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT0iTUFLRUVYIl0nKS52YWwoKSsKIiAiKyQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9Ik1PREVMRVgiXScpLnZhbCgpKyIgIiskKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPSJZRUFSRVgiXScpLnZhbCgpO2lzTmFOKHBhcnNlSW50KGwpKXx8KHE9bmV3IEN1c3RvbUV2ZW50KCJ0cmFja3N0ZXAuY29tcGxldGUiLHtkZXRhaWw6e3N0ZXBJZDoiVHJhZGVJbkFjdGlvbkJveCIsb25Db21wbGV0ZTpwPT57cC5kYXRhc2V0LmNvbXBsX3R4dF9mcj1wLmRhdGFzZXQuY29tcGxfdHh0X2ZyLnJlcGxhY2UoInskVFJBREVDQVJ9IixtKS5yZXBsYWNlKCJ7JFRSQURFVkFMfSIsbCk7cC5kYXRhc2V0LmNvbXBsX3R4dF9lbj1wLmRhdGFzZXQuY29tcGxfdHh0X2VuLnJlcGxhY2UoInskVFJBREVDQVJ9IixtKS5yZXBsYWNlKCJ7JFRSQURFVkFMfSIsbCk7dmFyIHQ9e3llYXI6JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT1ZRUFSRVhdIikudmFsKCksbWFrZTokKCIjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPU1BS0VFWF0iKS52YWwoKSwKbW9kZWw6JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT1NT0RFTEVYXSIpLnZhbCgpLHRyaW06JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT1UUklNRVhdIikudmFsKCksdmFsdWU6cGFyc2VJbnQobC5yZXBsYWNlKCIsIiwiIikpfTtfbG9jYWxTdG9yYWdlU2V0KCJ0cmFkZWluX3N1Ym1pdF9kYXRhIixKU09OLnN0cmluZ2lmeSh0KSwxKTtpZigxPnBhcnNlSW50KGwpKXt0PSQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9emVyb1ZhbHVlTWVzc2FnZUVuXSIpLnZhbCgpO2xldCB2PSQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9emVyb1ZhbHVlTWVzc2FnZUZyXSIpLnZhbCgpO3AuZGF0YXNldC5jb21wbF90eHRfZnI9YCR7bX0gfCAke3Z9YDtwLmRhdGFzZXQuY29tcGxfdHh0X2VuPWAke219IHwgJHt0fWB9fSxmb3JjZVVwZGF0ZTohMH19KSxkb2N1bWVudC5kaXNwYXRjaEV2ZW50KHEpKTthLnNldHRpbmdzLmZvcm11bHRpc3RlcD0KITE7YS5jbG9zZSgpfWVsc2UgJCgiaW5wdXRbbmFtZT10cmFkZUluVmFsdWVDQkJDYWxsZWRdIikudmFsKDEpLCIxIj09cj9iPWg9InJlbW92ZWVtcHR5IjpjPSJyZW1vdmVlbXB0eSIsMDxofHwwPGJ8fDA8Yz8oJCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gW25hbWU9dHJhZGVJbkF2Z10iKS52YWwoRDJDVXRpbHMuRm9ybWF0LnRvTnVtYmVyKGMpKSwkKCIjdHJhZGVJbkJhclBvcHVwRm9ybSBbbmFtZT10cmFkZUluTG93XSIpLnZhbChEMkNVdGlscy5Gb3JtYXQudG9OdW1iZXIoaCkpLCQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIFtuYW1lPXRyYWRlSW5IaWdoXSIpLnZhbChEMkNVdGlscy5Gb3JtYXQudG9OdW1iZXIoYikpLCQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIFtuYW1lPXRyYWRlSW5WYWx1ZUNCQkF2YWlsYWJsZVZhbHVlc10iKS52YWwoMSksdHJhZGVpbnBvcHVwZDJjLmluaXRUcmFkZUluU3RlcDIoYSkscG9wdXBJc1N1Ym1pdHRpbmc9ITEpOihwb3B1cElzU3VibWl0dGluZz0hMSwKJCgiaW5wdXRbbmFtZT1zdGVwM2RvbmVdIikudmFsKDEpLCQoIi50cmFkZUluQmFyUG9wdXBTdWJtaXQiKS50cmlnZ2VyKCJjbGljayIpKX19KX0sb25CZWZvcmVTdWJtaXRBY2N1dHJhZGVDYWxsOmZ1bmN0aW9uKGEpe3ZhciBrPSQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIHNlbGVjdFtuYW1lPSJWRUhJQ0xFT1BUSU9OUyJdJykuZmluZCgib3B0aW9uOnNlbGVjdGVkIikubWFwKGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudmFsdWV9KS5nZXQoKS5qb2luKCIsICIpLGQ9JCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gc2VsZWN0W25hbWU9IlZFSElDTEVPUFRJT05TIl0nKS5maW5kKCJvcHRpb246c2VsZWN0ZWQiKS5tYXAoZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy50ZXh0fSkuZ2V0KCkuam9pbigiLCAiKTsiIiE9ZCYmJCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT0iUVVFU1RJT05TIl0nKS52YWwoZCk7ZD0kKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPSJLTSJdJykudmFsKCk7CnZhciBiPSQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIHNlbGVjdFtuYW1lPSJDT0xPUkVYIl0nKS5maW5kKCJvcHRpb246c2VsZWN0ZWQiKS5hdHRyKCJkYXRhLWlkIik7JC5hamF4KHt0eXBlOiJQT1NUIix1cmw6KCQoImJvZHkiKS5oYXNDbGFzcygiRU5HTElTSCIpPyIvZW4vIjoiL2ZyLyIpKyIvYWpheC9nZXRUcmFkZUluTW5nVmFsdWU\/d3N3aWR0aD0wIixkYXRhVHlwZToianNvbiIsZGF0YTp7aWQ6JCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT0idHJhZGVpbmJhclN0eWxlaWQiXScpLnZhbCgpLG9wdGlvbnM6ayxrbTpkLGNvbG9yOmIscHJvdmluY2U6JCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT0iZGVhbGVyUHJvdmluY2VUcmFkZUluIl0nKS52YWwoKX0sc3VjY2VzczpmdW5jdGlvbihjKXt2YXIgaD1jLmF2Z3x8MCxnPWMubG93fHwwO2M9Yy5oaWdofHwwO3ZhciBlPSQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9IkNCQkFEREVEVkFMVUUiXScpLnZhbCgpLApuPSQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9IkNCQkFEREVEVkFMVUVNQUtFUyJdJykudmFsKCkscj0kKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPSJDQkJBRERFRFZBTFVFVFlQRSJdJykudmFsKCksZj0kKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPSJDQkJTSU5HTEVWQUxVRSJdJykudmFsKCk7MCE9ZSYmIiIhPW4mJi0xPG4uc3BsaXQoIjsiKS5pbmRleE9mKCQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9Ik1BS0VFWCJdJykudmFsKCkpJiYoImNhc2giPT1yPyhoKz1wYXJzZUludChlKSxnKz1wYXJzZUludChlKSxjKz1wYXJzZUludChlKSk6InBlcmNlbnRhZ2UiPT1yJiYoZT0xK2UvMTAwLGgqPWUsZyo9ZSxjKj1lKSk7JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gW25hbWU9dHJhZGVJbkF2Z10iKS5hdHRyKCJkYXRhLWF2ZyIsaCk7aWYoJCgiaW5wdXRbbmFtZT1maW5hbmNlVHJhZGVJbk1ha2VdIikubGVuZ3RoKXtlPQokKCIjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPVlFQVJFWF0iKS52YWwoKTtuPSQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9TUFLRUVYXSIpLnZhbCgpO3I9JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT1NT0RFTEVYXSIpLnZhbCgpO2xldCBwPSQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9VFJJTUVYXSIpLnZhbCgpOyQoImlucHV0W25hbWU9ZmluYW5jZVRyYWRlSW5NYWtlXSIpLnZhbChuKTskKCJpbnB1dFtuYW1lPWZpbmFuY2VUcmFkZUluTW9kZWxdIikudmFsKHIpOyQoImlucHV0W25hbWU9ZmluYW5jZVRyYWRlSW5ZZWFyXSIpLnZhbChlKTskKCJpbnB1dFtuYW1lPWZpbmFuY2VUcmFkZUluVHJpbV0iKS52YWwocCk7JCgiaW5wdXRbbmFtZT1maW5hbmNlVHJhZGVJblZhbHVlXSIpLnZhbCgkKCIjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPXRyYWRlSW5BdmddIikuYXR0cigiZGF0YS1hdmciKSk7JCgiI3BheW1lbnRUcmFkZUluVmFsdWUiKS52YWwoJCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT10cmFkZUluQXZnXSIpLmF0dHIoImRhdGEtYXZnIikpOwokKCIjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPXRyYWRlSW5BdmddIikuYXR0cigiZGF0YS1hdmciLCIiKX1pZigxPT1hLnNldHRpbmdzLmZvcm11bHRpc3RlcCl7bGV0IHA9aXNOYU4ocGFyc2VJbnQoaCkpPzA6aDtwPUQyQ1V0aWxzLkZvcm1hdC50b051bWJlcihwKTtlbWFpbEhhbmRsZXIudXNlckVtYWlsPSQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9RU1BSUxdIikudmFsKCk7ZW1haWxIYW5kbGVyLnVzZXJQaG9uZT0kKCIjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPUVNQUlMUEhPTkVdIikudmFsKCk7dmFyIHU7aD1udWxsIT0odT0kKCIjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPUZOQU1FXSIpLnZhbCgpKT91OiIiO3ZhciBxO3U9bnVsbCE9KHE9aC5zcGxpdCgiICIpWzBdKT9xOiIiO3ZhciBtO3E9bnVsbCE9KG09aC5zcGxpdCgiICIpWzFdKT9tOiIiO2VtYWlsSGFuZGxlci51c2VyRmlyc3ROYW1lPXU7ZW1haWxIYW5kbGVyLnVzZXJMYXN0TmFtZT0KcTt2YXIgbD0kKCJib2R5IikuaGFzQ2xhc3MoIkVOR0xJU0giKT8kKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPSJZRUFSRVgiXScpLnZhbCgpKyIgIiskKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPSJNQUtFRVgiXScpLnZhbCgpKyIgIiskKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPSJNT0RFTEVYIl0nKS52YWwoKTokKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPSJNQUtFRVgiXScpLnZhbCgpKyIgIiskKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPSJNT0RFTEVYIl0nKS52YWwoKSsiICIrJCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT0iWUVBUkVYIl0nKS52YWwoKTtpc05hTihwYXJzZUludChwKSl8fChtPW5ldyBDdXN0b21FdmVudCgidHJhY2tzdGVwLmNvbXBsZXRlIix7ZGV0YWlsOntzdGVwSWQ6IlRyYWRlSW5BY3Rpb25Cb3giLG9uQ29tcGxldGU6dD0+e3QuZGF0YXNldC5jb21wbF90eHRfZnI9CnQuZGF0YXNldC5jb21wbF90eHRfZnIucmVwbGFjZSgieyRUUkFERUNBUn0iLGwpLnJlcGxhY2UoInskVFJBREVWQUx9IixwKTt0LmRhdGFzZXQuY29tcGxfdHh0X2VuPXQuZGF0YXNldC5jb21wbF90eHRfZW4ucmVwbGFjZSgieyRUUkFERUNBUn0iLGwpLnJlcGxhY2UoInskVFJBREVWQUx9IixwKTt2YXIgdj17eWVhcjokKCIjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPVlFQVJFWF0iKS52YWwoKSxtYWtlOiQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9TUFLRUVYXSIpLnZhbCgpLG1vZGVsOiQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9TU9ERUxFWF0iKS52YWwoKSx0cmltOiQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9VFJJTUVYXSIpLnZhbCgpLHZhbHVlOnBhcnNlSW50KHAucmVwbGFjZSgiLCIsIiIpKX07X2xvY2FsU3RvcmFnZVNldCgidHJhZGVpbl9zdWJtaXRfZGF0YSIsSlNPTi5zdHJpbmdpZnkodiksMSk7aWYoMT4KcGFyc2VJbnQocCkpe3Y9JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT16ZXJvVmFsdWVNZXNzYWdlRW5dIikudmFsKCk7bGV0IHc9JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT16ZXJvVmFsdWVNZXNzYWdlRnJdIikudmFsKCk7dC5kYXRhc2V0LmNvbXBsX3R4dF9mcj1gJHtsfSB8ICR7d31gO3QuZGF0YXNldC5jb21wbF90eHRfZW49YCR7bH0gfCAke3Z9YH19LGZvcmNlVXBkYXRlOiEwfX0pLGRvY3VtZW50LmRpc3BhdGNoRXZlbnQobSkpO2Euc2V0dGluZ3MuZm9ybXVsdGlzdGVwPSExO2EuY2xvc2UoKX1lbHNlICQoImlucHV0W25hbWU9dHJhZGVJblZhbHVlQ0JCQ2FsbGVkXSIpLnZhbCgxKSwiMSI9PWY\/Yz1nPSJyZW1vdmVlbXB0eSI6aD0icmVtb3ZlZW1wdHkiLDA8Z3x8MDxjfHwwPGg\/KCQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIFtuYW1lPXRyYWRlSW5BdmddIikudmFsKEQyQ1V0aWxzLkZvcm1hdC50b051bWJlcihoKSksJCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gW25hbWU9dHJhZGVJbkxvd10iKS52YWwoRDJDVXRpbHMuRm9ybWF0LnRvTnVtYmVyKGcpKSwKJCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gW25hbWU9dHJhZGVJbkhpZ2hdIikudmFsKEQyQ1V0aWxzLkZvcm1hdC50b051bWJlcihjKSksJCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gW25hbWU9dHJhZGVJblZhbHVlQ0JCQXZhaWxhYmxlVmFsdWVzXSIpLnZhbCgxKSx0cmFkZWlucG9wdXBkMmMuaW5pdFRyYWRlSW5TdGVwMihhKSx0cmFkZWlucG9wdXBkMmMuc2V0SGVpZ2h0TW9iaWxlKDIpLHRyYWRlaW5wb3B1cGQyYy50cmFkZUluQm90dG9tTG9nb0hlaWd0KCkscG9wdXBJc1N1Ym1pdHRpbmc9ITEpOihwb3B1cElzU3VibWl0dGluZz0hMSwkKCJpbnB1dFtuYW1lPXN0ZXAzZG9uZV0iKS52YWwoMSksJCgiLnRyYWRlSW5CYXJQb3B1cFN1Ym1pdCIpLnRyaWdnZXIoImNsaWNrIikpfX0pfSxvbkJlZm9yZVN1Ym1pdENCQk1lc3NhZ2U6ZnVuY3Rpb24oYSl7JCgiI3RyYWRlSW5CYXJQb3B1cFN1Ym1pdCIpLnByb3AoImRpc2FibGVkIiwhMCk7JCgiI3RyYWRlSW5CYXJQb3B1cFN1Ym1pdCIpLnBhcmVudCgpLmhpZGUoKTsKYT0kKCIjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPUVNQUlMXSIpLnZhbCgpO3ZhciBrPSQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9RU1BSUxQSE9ORV0iKS52YWwoKSxkPSQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9WUVBUkVYXSIpLnZhbCgpLGI9JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT1NQUtFRVhdIikudmFsKCksYz0kKCIjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPU1PREVMRVhdIikudmFsKCk7JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT1UUklNRVhdIikudmFsKCk7dmFyIGg9JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT10cmFkZUluQXZnXSIpLnZhbCgpLGc9JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT10cmFkZUluTG93XSIpLnZhbCgpLGU9JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT10cmFkZUluSGlnaF0iKS52YWwoKTtkPQokKCJib2R5IikuaGFzQ2xhc3MoIkVOR0xJU0giKT9kKyIgIitiKyIgIitjOmIrIiAiK2MrIiAiK2Q7Yj0kKCIjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPWRlYWxlck5hbWVUcmFkZUluXSIpLnZhbCgpO2M9JCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT0iQ0JCU0lOR0xFVkFMVUUiXScpLnZhbCgpO3ZhciBuPSIiO2lmKCJTTVMiPT0kKCIjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPXRyYWRlSW5CYXJTbXNPckVtYWlsXTpjaGVja2VkIikudmFsKCkpdmFyIHI9IlNNUyIsZj0iMSI9PWM\/JCgiYm9keSIpLmhhc0NsYXNzKCJFTkdMSVNIIik\/IlRoZSBDYW5hZGlhbiBCbGFjayBCb29rIGVzdGltYXRlZCB0cmFkZSB2YWx1ZSBmb3IgeW91ciAiK2QrIiBpcyAkIitoKyIuIFdlJ2xsIGNvbnRhY3QgeW91IHNob3J0bHkgdG8gZGlzY3Vzcy4gIitiKyIgIiskKCJpbnB1dFtuYW1lPXRyYWRlSW5Nc2dEaXNjbGFpbWVyVGV4dDFdIikudmFsKCkrJCgiaW5wdXRbbmFtZT10cmFkZUluTXNnRGlzY2xhaW1lclRleHQyXSIpLnZhbCgpOgoiTGEgdmFsZXVyIGQnw6ljaGFuZ2UgZXN0aW3DqWUgQ2FuYWRpYW4gQmxhY2sgQm9vayBwb3VyIHZvdHJlICIrZCsiIGVzdCAkIitoKyIuIE5vdXMgY29tbXVuaXF1ZXJvbnMgYXZlYyB2b3VzIHNvdXMgcGV1IHBvdXIgZW4gZGlzY3V0ZXIuICIrYisiICIrJCgiaW5wdXRbbmFtZT10cmFkZUluTXNnRGlzY2xhaW1lclRleHQxXSIpLnZhbCgpKyQoImlucHV0W25hbWU9dHJhZGVJbk1zZ0Rpc2NsYWltZXJUZXh0Ml0iKS52YWwoKTokKCJib2R5IikuaGFzQ2xhc3MoIkVOR0xJU0giKT8iVGhlIENhbmFkaWFuIEJsYWNrIEJvb2sgZXN0aW1hdGVkIHRyYWRlIHZhbHVlIGZvciB5b3VyICIrZCsiIGlzIGJldHdlZW4gJCIrZysiIGFuZCAkIitlKyIuIFdlJ2xsIGNvbnRhY3QgeW91IHNob3J0bHkgdG8gZGlzY3Vzcy4gIitiKyIgIiskKCJpbnB1dFtuYW1lPXRyYWRlSW5Nc2dEaXNjbGFpbWVyVGV4dDFdIikudmFsKCkrJCgiaW5wdXRbbmFtZT10cmFkZUluTXNnRGlzY2xhaW1lclRleHQyXSIpLnZhbCgpOgoiTGEgdmFsZXVyIGQnw6ljaGFuZ2UgZXN0aW3DqWUgQ2FuYWRpYW4gQmxhY2sgQm9vayBwb3VyIHZvdHJlICIrZCsiIHNlIHNpdHVlIGVudHJlICQiK2crIiBldCAkIitlKyIuIE5vdXMgY29tbXVuaXF1ZXJvbnMgYXZlYyB2b3VzIHNvdXMgcGV1IHBvdXIgZW4gZGlzY3V0ZXIuICIrYisiICIrJCgiaW5wdXRbbmFtZT10cmFkZUluTXNnRGlzY2xhaW1lclRleHQxXSIpLnZhbCgpKyQoImlucHV0W25hbWU9dHJhZGVJbk1zZ0Rpc2NsYWltZXJUZXh0Ml0iKS52YWwoKTtlbHNlIHI9IkVNQUlMIixuPSQoImJvZHkiKS5oYXNDbGFzcygiRU5HTElTSCIpPyJJTVBPUlRBTlQ6IFlvdXIgdHJhZGUgdmFsdWUgZm9yIHlvdXIgIitkOiJJTVBPUlRBTlQ6IExhIHZhbGV1ciBkJ8OpY2hhbmdlIGRlIHZvdHJlICIrZCwkKCJib2R5IikuaGFzQ2xhc3MoIkVOR0xJU0giKT8oZj0iSGkgIiskKCIjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPUZOQU1FXSIpLnZhbCgpKyIsPGJyPjxicj4iLGY9CmYrKCJGb2xsb3dpbmcgdXAgb24geW91ciByZWNlbnQgdHJhZGUgZXN0aW1hdGUgcmVxdWVzdCBmb3IgYSAiK2QrIiwgaGVyZSBpcyB0aGUgZXN0aW1hdGUgZnJvbSB0aGUgQ2FuYWRpYW4gQmxhY2sgQm9vazo8YnI+PGJyPiIpKygkKCJpbnB1dFtuYW1lPXRyYWRlSW5Nc2dEaXNjbGFpbWVyVGV4dDFdIikudmFsKCkrJCgiaW5wdXRbbmFtZT10cmFkZUluTXNnRGlzY2xhaW1lclRleHQyXSIpLnZhbCgpKyI8YnI+PGJyPiIpLGY9IjEiPT1jP2YrKCJFc3RpbWF0ZWQgVmFsdWU6ICQiK2grIjxicj4iKTpmKygiTWluaW11bSBFc3RpbWF0ZWQgVmFsdWU6ICQiK2crIjxicj5NYXhpbXVtIEVzdGltYXRlZCBWYWx1ZTogJCIpKyhlKyI8YnI+IiksZis9IihBY2NvcmRpbmcgdG8gQ2FuYWRpYW4gQmxhY2sgQm9vaywgbGVzcyByZWNvbmRpdGlvbmluZyBjb3N0cywgaWYgYXBwbGljYWJsZSk8YnI+PGJyPiIsZis9IkEgcmVwcmVzZW50YXRpdmUgd2lsbCBjb250YWN0IHlvdSBzaG9ydGx5IHRvIGV4cGxhaW4gdGhlIGRldGFpbHMgb2YgdGhlIHZhbHVlcy48YnI+PGJyPiIsCmYrPSJUaGFua3MgZm9yIHRydXN0aW5nICIrYisiITxicj48YnI+Iik6KGY9IkJvbmpvdXIgIiskKCIjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPUZOQU1FXSIpLnZhbCgpKyIsPGJyPjxicj4iLGY9ZisoIlN1aXRlIMOgIHZvdHJlIGRlbWFuZGUgZCdlc3RpbWF0aW9uIGRlIGxhIHZhbGV1ciBkZSB2b3RyZSDDqWNoYW5nZSBwb3VyIHVuICIrZCsiLCB2b2ljaSBsJ8OpdmFsdWF0aW9uIGRlIHZvdHJlIHbDqWhpY3VsZSBzZWxvbiBsZSBDYW5hZGlhbiBCbGFjayBCb29rOjxicj48YnI+IikrKCQoImlucHV0W25hbWU9dHJhZGVJbk1zZ0Rpc2NsYWltZXJUZXh0MV0iKS52YWwoKSskKCJpbnB1dFtuYW1lPXRyYWRlSW5Nc2dEaXNjbGFpbWVyVGV4dDJdIikudmFsKCkrIjxicj48YnI+IiksZj0iMSI9PWM\/ZisoIlZhbGV1ciBlc3RpbcOpZTogJCIraCsiPGJyPiIpOmYrKCJWYWxldXIgZXN0aW3DqWUgbWluaW1hbGU6ICQiK2crIjxicj5WYWxldXIgZXN0aW3DqWUgbWF4aW1hbGU6ICQiKSsKKGUrIjxicj4iKSxmKz0iKFNlbG9uIGxlIENhbmFkaWFuIEJsYWNrIEJvb2ssIG1vaW5zIGxlcyBjb8O7dHMgZGUgcmVjb25kaXRpb25uZW1lbnQgc2kgYXBwbGljYWJsZSk8YnI+PGJyPiIsZis9IlVuIGNvbnNlaWxsZXIgZW50cmVyYSBlbiBjb21tdW5pY2F0aW9uIHNvdXMgcGV1IGF2ZWMgdm91cyBhZmluIGRlIGRpc2N1dGVyIGRlIGNldHRlIHZhbGV1ciBldCB2b3VzIGVuIGV4cGxpcXVlciBsZXMgZMOpdGFpbHMuPGJyPjxicj4iLGYrPSJNZXJjaSBkZSBmYWlyZSBjb25maWFuY2Ugw6AgIitiKyIhPGJyPjxicj4iKTtmPWJ0b2EoZik7bj1idG9hKG4pO2VtYWlsSGFuZGxlci5vbkFmdGVyTGVhZENyZWF0ZWQ9e2FjdGlvbjpyLHN1YmplY3Q6bixtZXNzYWdlOmYsZW1haWw6YSxwaG9uZTprfX0sb25CZWZvcmVTdWJtaXRBY2N1dHJhZGVNZXNzYWdlOmZ1bmN0aW9uKGEpeyQoIiN0cmFkZUluQmFyUG9wdXBTdWJtaXQiKS5wcm9wKCJkaXNhYmxlZCIsITApOyQoIiN0cmFkZUluQmFyUG9wdXBTdWJtaXQiKS5wYXJlbnQoKS5oaWRlKCk7CmE9JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT1FTUFJTF0iKS52YWwoKTt2YXIgaz0kKCIjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPUVNQUlMUEhPTkVdIikudmFsKCksZD0kKCIjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPVlFQVJFWF0iKS52YWwoKSxiPSQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9TUFLRUVYXSIpLnZhbCgpLGM9JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT1NT0RFTEVYXSIpLnZhbCgpOyQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9VFJJTUVYXSIpLnZhbCgpO3ZhciBoPSQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9dHJhZGVJbkF2Z10iKS52YWwoKSxnPSQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9dHJhZGVJbkxvd10iKS52YWwoKSxlPSQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9dHJhZGVJbkhpZ2hdIikudmFsKCk7ZD0KJCgiYm9keSIpLmhhc0NsYXNzKCJFTkdMSVNIIik\/ZCsiICIrYisiICIrYzpiKyIgIitjKyIgIitkO2I9JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT1kZWFsZXJOYW1lVHJhZGVJbl0iKS52YWwoKTtjPSQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9IkNCQlNJTkdMRVZBTFVFIl0nKS52YWwoKTt2YXIgbj0iIjtpZigiU01TIj09JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT10cmFkZUluQmFyU21zT3JFbWFpbF06Y2hlY2tlZCIpLnZhbCgpKXZhciByPSJTTVMiLGY9IjEiPT1jPyQoImJvZHkiKS5oYXNDbGFzcygiRU5HTElTSCIpPyJBY2N1LVRyYWRlIGVzdGltYXRlZCB0cmFkZSB2YWx1ZSBmb3IgeW91ciAiK2QrIiBpcyAkIitoKyIuIFdlJ2xsIGNvbnRhY3QgeW91IHNob3J0bHkgdG8gZGlzY3Vzcy4gIitiKyIgIiskKCJpbnB1dFtuYW1lPXRyYWRlSW5Nc2dEaXNjbGFpbWVyVGV4dDFdIikudmFsKCkrJCgiaW5wdXRbbmFtZT10cmFkZUluTXNnRGlzY2xhaW1lclRleHQyXSIpLnZhbCgpOgoiTGEgdmFsZXVyIGQnw6ljaGFuZ2UgQWNjdS1UcmFkZSBlc3RpbcOpZSBwb3VyIHZvdHJlICIrZCsiIGVzdCAkIitoKyIuIE5vdXMgY29tbXVuaXF1ZXJvbnMgYXZlYyB2b3VzIHNvdXMgcGV1IHBvdXIgZW4gZGlzY3V0ZXIuICIrYisiICIrJCgiaW5wdXRbbmFtZT10cmFkZUluTXNnRGlzY2xhaW1lclRleHQxXSIpLnZhbCgpKyQoImlucHV0W25hbWU9dHJhZGVJbk1zZ0Rpc2NsYWltZXJUZXh0Ml0iKS52YWwoKTokKCJib2R5IikuaGFzQ2xhc3MoIkVOR0xJU0giKT8iQWNjdS1UcmFkZSBlc3RpbWF0ZWQgdHJhZGUgdmFsdWUgZm9yIHlvdXIgIitkKyIgaXMgYmV0d2VlbiAkIitnKyIgYW5kICQiK2UrIi4gV2UnbGwgY29udGFjdCB5b3Ugc2hvcnRseSB0byBkaXNjdXNzLiAiK2IrIiAiKyQoImlucHV0W25hbWU9dHJhZGVJbk1zZ0Rpc2NsYWltZXJUZXh0MV0iKS52YWwoKSskKCJpbnB1dFtuYW1lPXRyYWRlSW5Nc2dEaXNjbGFpbWVyVGV4dDJdIikudmFsKCk6IkxhIHZhbGV1ciBkJ8OpY2hhbmdlIEFjY3UtVHJhZGUgZXN0aW3DqWUgcG91ciB2b3RyZSAiKwpkKyIgc2Ugc2l0dWUgZW50cmUgJCIrZysiIGV0ICQiK2UrIi4gTm91cyBjb21tdW5pcXVlcm9ucyBhdmVjIHZvdXMgc291cyBwZXUgcG91ciBlbiBkaXNjdXRlci4gIitiKyIgIiskKCJpbnB1dFtuYW1lPXRyYWRlSW5Nc2dEaXNjbGFpbWVyVGV4dDFdIikudmFsKCkrJCgiaW5wdXRbbmFtZT10cmFkZUluTXNnRGlzY2xhaW1lclRleHQyXSIpLnZhbCgpO2Vsc2Ugcj0iRU1BSUwiLG49JCgiYm9keSIpLmhhc0NsYXNzKCJFTkdMSVNIIik\/IklNUE9SVEFOVDogWW91ciB0cmFkZSB2YWx1ZSBmb3IgeW91ciAiK2Q6IklNUE9SVEFOVDogTGEgdmFsZXVyIGQnw6ljaGFuZ2UgZGUgdm90cmUgIitkLCQoImJvZHkiKS5oYXNDbGFzcygiRU5HTElTSCIpPyhmPSJIaSAiKyQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9Rk5BTUVdIikudmFsKCkrIiw8YnI+PGJyPiIsZj1mKygiRm9sbG93aW5nIHVwIG9uIHlvdXIgcmVjZW50IHRyYWRlIGVzdGltYXRlIHJlcXVlc3QgZm9yIGEgIisKZCsiLCBoZXJlIGlzIHRoZSBlc3RpbWF0ZSBmcm9tIEFjY3UtVHJhZGU6PGJyPjxicj4iKSsoJCgiaW5wdXRbbmFtZT10cmFkZUluTXNnRGlzY2xhaW1lclRleHQxXSIpLnZhbCgpKyQoImlucHV0W25hbWU9dHJhZGVJbk1zZ0Rpc2NsYWltZXJUZXh0Ml0iKS52YWwoKSsiPGJyPjxicj4iKSxmPSIxIj09Yz9mKygiRXN0aW1hdGVkIFZhbHVlOiAkIitoKyI8YnI+Iik6ZisoIk1pbmltdW0gRXN0aW1hdGVkIFZhbHVlOiAkIitnKyI8YnI+TWF4aW11bSBFc3RpbWF0ZWQgVmFsdWU6ICQiKSsoZSsiPGJyPiIpLGYrPSIoQWNjb3JkaW5nIHRvIEFjY3UtVHJhZGUsIGxlc3MgcmVjb25kaXRpb25pbmcgY29zdHMsIGlmIGFwcGxpY2FibGUpPGJyPjxicj4iLGYrPSJBIHJlcHJlc2VudGF0aXZlIHdpbGwgY29udGFjdCB5b3Ugc2hvcnRseSB0byBleHBsYWluIHRoZSBkZXRhaWxzIG9mIHRoZSB2YWx1ZXMuPGJyPjxicj4iLGYrPSJUaGFua3MgZm9yIHRydXN0aW5nICIrYisiITxicj48YnI+Iik6CihmPSJCb25qb3VyICIrJCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT1GTkFNRV0iKS52YWwoKSsiLDxicj48YnI+IixmPWYrKCJTdWl0ZSDDoCB2b3RyZSBkZW1hbmRlIGQnZXN0aW1hdGlvbiBkZSBsYSB2YWxldXIgZGUgdm90cmUgw6ljaGFuZ2UgcG91ciB1biAiK2QrIiwgdm9pY2kgbCfDqXZhbHVhdGlvbiBkZSB2b3RyZSB2w6loaWN1bGUgc2Vsb24gQWNjdS1UcmFkZTo8YnI+PGJyPiIpKygkKCJpbnB1dFtuYW1lPXRyYWRlSW5Nc2dEaXNjbGFpbWVyVGV4dDFdIikudmFsKCkrJCgiaW5wdXRbbmFtZT10cmFkZUluTXNnRGlzY2xhaW1lclRleHQyXSIpLnZhbCgpKyI8YnI+PGJyPiIpLGY9IjEiPT1jP2YrKCJWYWxldXIgZXN0aW3DqWU6ICQiK2grIjxicj4iKTpmKygiVmFsZXVyIGVzdGltw6llIG1pbmltYWxlOiAkIitnKyI8YnI+VmFsZXVyIGVzdGltw6llIG1heGltYWxlOiAkIikrKGUrIjxicj4iKSxmKz0iKFNlbG9uIEFjY3UtVHJhZGUsIG1vaW5zIGxlcyBjb8O7dHMgZGUgcmVjb25kaXRpb25uZW1lbnQgc2kgYXBwbGljYWJsZSk8YnI+PGJyPiIsCmYrPSJVbiBjb25zZWlsbGVyIGVudHJlcmEgZW4gY29tbXVuaWNhdGlvbiBzb3VzIHBldSBhdmVjIHZvdXMgYWZpbiBkZSBkaXNjdXRlciBkZSBjZXR0ZSB2YWxldXIgZXQgdm91cyBlbiBleHBsaXF1ZXIgbGVzIGTDqXRhaWxzLjxicj48YnI+IixmKz0iTWVyY2kgZGUgZmFpcmUgY29uZmlhbmNlIMOgICIrYisiITxicj48YnI+Iik7Zj1idG9hKGYpO249YnRvYShuKTtlbWFpbEhhbmRsZXIub25BZnRlckxlYWRDcmVhdGVkPXthY3Rpb246cixzdWJqZWN0Om4sbWVzc2FnZTpmLGVtYWlsOmEscGhvbmU6a319LGluaXRUcmFkZUluU3RlcDE6ZnVuY3Rpb24oKXskKCIjdHJhZGVJbkJhclBvcHVwRm9ybSBbbmFtZT10cmFkZUluQXZnXSIpLnZhbCgwKTskKCIjdHJhZGVJbkJhclBvcHVwRm9ybSBbbmFtZT10cmFkZUluTG93XSIpLnZhbCgwKTskKCIjdHJhZGVJbkJhclBvcHVwRm9ybSBbbmFtZT10cmFkZUluSGlnaF0iKS52YWwoMCk7JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gW25hbWU9dHJhZGVJblZhbHVlQ0JCQXZhaWxhYmxlVmFsdWVzXSIpLnZhbCgwKTsKJCgiaW5wdXRbbmFtZT10cmFkZUluQmFyU21zT3JFbWFpbF0iKS5yZW1vdmVDbGFzcygicmVxUmFkaW8iKTskKCJpbnB1dFtuYW1lPXRyYWRlSW5WYWx1ZUNCQkNhbGxlZF0iKS52YWwoMCk7JCgiaW5wdXRbbmFtZT10cmFkZUluQmFyU21zT3JFbWFpbF06Y2hlY2tlZCIpLnByb3AoImNoZWNrZWQiLCExKTskKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBzZWxlY3RbbmFtZT0iVkVISUNMRU9QVElPTlMiXScpLmZpbmQoIm9wdGlvbiIpLnJlbW92ZSgpOyQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9IlFVRVNUSU9OUyJdJykudmFsKCIiKTskKCIjdHJhZGVJbkJhclBvcHVwRm9ybSAudHJhZGVJbkJhclN0ZXAxIikuc2hvdygpOyQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIC50cmFkZUluQmFyU3RlcDIiKS5oaWRlKCk7JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gLnRyYWRlSW5CYXJTdGVwMyIpLmhpZGUoKTskKCIjdHJhZGVJbkJhclBvcHVwRm9ybSAudHJhZGVJbkJhclN0ZXA0IikuaGlkZSgpOwokKCIjdHJhZGVJbkJhclBvcHVwRm9ybSAudHJhZGVJbkJhclN0ZXA1IikuaGlkZSgpOyQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIC50cmFkZUluQmFyU3RlcDYiKS5oaWRlKCk7JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gI3RyYWRlSW5CYXJQb3B1cFN1Ym1pdCIpLnBhcmVudCgpLnNob3coKTskKCIjdHJhZGVJbkJhclBvcHVwX2Zvcm1XICN0cmFkZUluQmFyUG9wdXBfbGluZTEiKS5zaG93KCk7dGhpcy5zZXRIZWlnaHRNb2JpbGUoMSk7JCgiI3RyYWRlSW5CYXJQb3B1cF9mb3JtVyAudHJhZGVJbkRpc2NsYWltZXIiKS5zaG93KCk7dGhpcy50cmFkZUluQm90dG9tTG9nb0hlaWd0KCl9LGluaXRUcmFkZUluU3RlcDI6ZnVuY3Rpb24oYSl7dmFyIGs9JCgiI1RyYWRlSW5CYXJQb3B1cENvbnRhaW5lciIpLmZpbmQoImZvcm0iKS5maXJzdCgpLnNlcmlhbGl6ZUFycmF5KCksZD0kKCIjVHJhZGVJbkJhclBvcHVwQ29udGFpbmVyIikuZmluZCgiLmVtYWlsQm9keSIpLmh0bWwoKSsiIixiPSQoIiNUcmFkZUluQmFyUG9wdXBDb250YWluZXIiKS5maW5kKCIuZW1haWxTdWJqZWN0IikuaHRtbCgpKwoiIixjPVtdO1tdLnB1c2guYXBwbHkoYyxrKTskLmVhY2goYyxmdW5jdGlvbigpe3ZhciBoPW5ldyBSZWdFeHAoIntcXCQiK3RoaXMubmFtZS50b1VwcGVyQ2FzZSgpKyJ9IiwiZyIpLGc9dGhpcy52YWx1ZTsiU0VBUkNIRURWRUhJQ0xFIj09dGhpcy5uYW1lLnRvVXBwZXJDYXNlKCkmJihnPSI8c3BhbiBpZD0ncGhTRUFSQ0hWRUhJQ0xFJz4iK2crIjwvc3Bhbj4iKTtkPWQucmVwbGFjZShoLGcpO2I9Yi5yZXBsYWNlKGgsdGhpcy52YWx1ZSl9KTtlbWFpbEhhbmRsZXIuc3ViamVjdD1iO2VtYWlsSGFuZGxlci5ib2R5PWQ7ZW1haWxIYW5kbGVyLnNlbmRUbz1hLnNldHRpbmdzLmZvcm0uc2VuZFRvO2VtYWlsSGFuZGxlci5zZW5kVG9BREZGb3JtYXQ9YS5zZXR0aW5ncy5mb3JtLnNlbmRUb0FERjtlbWFpbEhhbmRsZXIubWFpbElEPWEuc2V0dGluZ3MuZm9ybS5lbWFpbGlkOyIiIT09ZW1haWxIYW5kbGVyLnNlbGVjdGVkU2VuZFRvJiYoZW1haWxIYW5kbGVyLnNlbmRUbz1lbWFpbEhhbmRsZXIuc2VsZWN0ZWRTZW5kVG8pOwoiIiE9PWVtYWlsSGFuZGxlci5zZWxlY3RlZFNlbmRUb0FERkZvcm1hdCYmKGVtYWlsSGFuZGxlci5zZW5kVG9BREZGb3JtYXQ9ZW1haWxIYW5kbGVyLnNlbGVjdGVkU2VuZFRvQURGRm9ybWF0KTthPSQoIiNUcmFkZUluQmFyUG9wdXBDb250YWluZXIiKS5maW5kKCdpbnB1dFtuYW1lPSJGTkFNRSJdJykudmFsKCkuc3BsaXQoIiAiKTtlbWFpbEhhbmRsZXIudXNlckZpcnN0TmFtZT1hLnNoaWZ0KCk7ZW1haWxIYW5kbGVyLnVzZXJMYXN0TmFtZT1hLmpvaW4oIiAiKTtlbWFpbEhhbmRsZXIudXNlclBob25lPSQoIiNUcmFkZUluQmFyUG9wdXBDb250YWluZXIiKS5maW5kKCdpbnB1dFtuYW1lPSJFTUFJTFBIT05FIl0nKS52YWwoKTtlbWFpbEhhbmRsZXIudXNlckVtYWlsPSQoIiNUcmFkZUluQmFyUG9wdXBDb250YWluZXIiKS5maW5kKCdpbnB1dFtuYW1lPSJFTUFJTCJdJykudmFsKCk7YT1lbWFpbEhhbmRsZXIuZ2V0SnNvbk9iamVjdCgpO2VtYWlsSGFuZGxlci5zdWJqZWN0PSIiO2VtYWlsSGFuZGxlci5ib2R5PQoiIjtrPSQoImJvZHkiKS5oYXNDbGFzcygiRU5HTElTSCIpPyJFTkdMSVNIIjoiRlJFTkNIIjskLmFqYXgoe3R5cGU6IlBPU1QiLHVybDooIkVOR0xJU0giPT1rPyIvZW4vIjoiL2ZyLyIpKyIvYWpheC9yZWdpc3RlclRyYWRlTGVhZD93c3dpZHRoPTAiLGRhdGFUeXBlOiJqc29uIixkYXRhOmEsc3VjY2VzczpmdW5jdGlvbihoKXtoLnBhcnRpYWxMZWFkSUQmJiQoIiNUcmFkZUluQmFyUG9wdXBDb250YWluZXIiKS5maW5kKCdpbnB1dFtuYW1lPSJ0cmFkZWluYmFyUmVnaXN0ZXJQYXJ0aWFsSUQiXScpLnZhbChoLnBhcnRpYWxMZWFkSUQpfX0pOyQoIi50cmFkZUluQmFyU3RlcDEiKS5oaWRlKCk7JCgiI3RyYWRlSW5CYXJQb3B1cF9mb3JtVyAudHJhZGVJbkRpc2NsYWltZXIiKS5oaWRlKCk7YT0kKCJib2R5IikuaGFzQ2xhc3MoIkVOR0xJU0giKT8kKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPSJZRUFSRVgiXScpLnZhbCgpKyIgIiskKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPSJNQUtFRVgiXScpLnZhbCgpKwoiICIrJCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT0iTU9ERUxFWCJdJykudmFsKCk6JCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT0iTUFLRUVYIl0nKS52YWwoKSsiICIrJCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT0iTU9ERUxFWCJdJykudmFsKCkrIiAiKyQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9IllFQVJFWCJdJykudmFsKCk7JCgiLnRyYWRlSW5CYXJTdGVwMlRpdGxlIikudGV4dCgkKCIudHJhZGVJbkJhclN0ZXAyVGl0bGUiKS50ZXh0KCkrIiAiK2EpOyQoImlucHV0W25hbWU9dHJhZGVJbkJhclNtc09yRW1haWxdIikuYWRkQ2xhc3MoInJlcVJhZGlvIik7JCgiLnRyYWRlSW5CYXJTdGVwMiIpLnNob3coKX0saW5pdFRyYWRlSW5TdGVwMzpmdW5jdGlvbigpe3BvcHVwSXNTdWJtaXR0aW5nPSExOyQoIiN0cmFkZUluU3RlcDNZZXMiKS5vbigiY2xpY2siLGZ1bmN0aW9uKCl7dHJhZGVpbnBvcHVwZDJjLnRyYWRlSW5TdGVwM1llcygpOwpyZXR1cm4hMX0pOyQoIiN0cmFkZUluQmFyUG9wdXBGb3JtICN0cmFkZUluQmFyUG9wdXBTdWJtaXQiKS5wYXJlbnQoKS5oaWRlKCk7JCgiI3RyYWRlSW5CYXJQb3B1cF9mb3JtVyAudHJhZGVJbkRpc2NsYWltZXIiKS5oaWRlKCk7JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gLnRyYWRlSW5CYXJTdGVwMSIpLmhpZGUoKTskKCIjdHJhZGVJbkJhclBvcHVwRm9ybSAudHJhZGVJbkJhclN0ZXAyIikuaGlkZSgpOyQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIC50cmFkZUluQmFyU3RlcDMiKS5zaG93KCk7JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gLnRyYWRlSW5CYXJTdGVwNCIpLmhpZGUoKTskKCIjdHJhZGVJbkJhclBvcHVwRm9ybSAudHJhZGVJbkJhclN0ZXA1IikuaGlkZSgpOyQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIC50cmFkZUluQmFyU3RlcDYiKS5oaWRlKCk7dGhpcy5zZXRIZWlnaHRNb2JpbGUoMyk7JCgiaW5wdXRbbmFtZT1zdGVwM2RvbmVdIikudmFsKDEpO3RoaXMudHJhZGVJbkJvdHRvbUxvZ29IZWlndCgpfSwKdHJhZGVJblN0ZXAzWWVzOmZ1bmN0aW9uKCl7dGhpcy5pbml0VHJhZGVJblN0ZXA0KCl9LGluaXRUcmFkZUluU3RlcDQ6ZnVuY3Rpb24oKXskKCIjdHJhZGVJbkJhclBvcHVwRm9ybSAjdHJhZGVJbkJhclBvcHVwU3VibWl0IikucGFyZW50KCkuaGlkZSgpOyQoIiN0cmFkZUluQmFyUG9wdXBfZm9ybVcgLnRyYWRlSW5EaXNjbGFpbWVyIikuaGlkZSgpOyQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIC50cmFkZUluQmFyU3RlcDEiKS5oaWRlKCk7JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gLnRyYWRlSW5CYXJTdGVwMiIpLmhpZGUoKTskKCIjdHJhZGVJbkJhclBvcHVwRm9ybSAudHJhZGVJbkJhclN0ZXAzIikuaGlkZSgpOyQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIC50cmFkZUluQmFyU3RlcDQiKS5zaG93KCk7JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gLnRyYWRlSW5CYXJTdGVwNSIpLmhpZGUoKTskKCIjdHJhZGVJbkJhclBvcHVwRm9ybSAudHJhZGVJbkJhclN0ZXA2IikuaGlkZSgpO3RoaXMuc2V0SGVpZ2h0TW9iaWxlKDQpOwokKCIjdHJhZGVJblN0ZXA0WWVzIikub24oImNsaWNrIixmdW5jdGlvbigpe2lmKCIiPT0kKCIjdHJhZGVJbktleVNlbGVjdCIpLnZhbCgpKXJldHVybiAkKCIjdHJhZGVJbktleVNlbGVjdCIpLmFkZENsYXNzKCJ2YWxpZGl0eS1lcnJvbmVvdXMiKSwhMTt0cmFkZWlucG9wdXBkMmMudHJhZGVJblN0ZXA0Q29udGludWUoKTtyZXR1cm4hMX0pOyQoIiN0cmFkZUluS2V5U2VsZWN0Iikub24oImNoYW5nZSIsZnVuY3Rpb24oKXskKCIjdHJhZGVJbktleVNlbGVjdCIpLnJlbW92ZUNsYXNzKCJ2YWxpZGl0eS1lcnJvbmVvdXMiKX0pO3RoaXMudHJhZGVJbkJvdHRvbUxvZ29IZWlndCgpfSx0cmFkZUluU3RlcDRDb250aW51ZTpmdW5jdGlvbigpeyIiPT0kKCIjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPVZJTkVYXSIpLnZhbCgpP3RoaXMuaW5pdFRyYWRlSW5TdGVwNSgpOnRoaXMuaW5pdFRyYWRlSW5TdGVwNigpfSxpbml0VHJhZGVJblN0ZXA1OmZ1bmN0aW9uKCl7JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gI3RyYWRlSW5CYXJQb3B1cFN1Ym1pdCIpLnBhcmVudCgpLmhpZGUoKTsKJCgiI3RyYWRlSW5CYXJQb3B1cF9mb3JtVyAudHJhZGVJbkRpc2NsYWltZXIiKS5oaWRlKCk7JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gLnRyYWRlSW5CYXJTdGVwMSIpLmhpZGUoKTskKCIjdHJhZGVJbkJhclBvcHVwRm9ybSAudHJhZGVJbkJhclN0ZXAyIikuaGlkZSgpOyQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIC50cmFkZUluQmFyU3RlcDMiKS5oaWRlKCk7JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gLnRyYWRlSW5CYXJTdGVwNCIpLmhpZGUoKTskKCIjdHJhZGVJbkJhclBvcHVwRm9ybSAudHJhZGVJbkJhclN0ZXA1Iikuc2hvdygpOyQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIC50cmFkZUluQmFyU3RlcDYiKS5oaWRlKCk7dGhpcy5zZXRIZWlnaHRNb2JpbGUoNSk7JCgiI3RyYWRlSW5TdGVwNVllcyIpLm9uKCJjbGljayIsZnVuY3Rpb24oKXt0cmFkZWlucG9wdXBkMmMudHJhZGVJblN0ZXA1Q29udGludWUoKTtyZXR1cm4hMX0pO3RoaXMudHJhZGVJbkJvdHRvbUxvZ29IZWlndCgpfSwKdHJhZGVJblN0ZXA1Q29udGludWU6ZnVuY3Rpb24oKXskKCIjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPVZJTkVYXSIpLnZhbCgkKCIjdHJhZGVJbkJhclBvcHVwRm9ybSAjc3RlcDVWaW4iKS52YWwoKSk7dGhpcy5pbml0VHJhZGVJblN0ZXA2KCl9LGluaXRUcmFkZUluU3RlcDY6ZnVuY3Rpb24oKXskKCIjdHJhZGVJbkJhclBvcHVwX2Zvcm1XICN0cmFkZUluQmFyUG9wdXBfbGluZTEiKS5oaWRlKCk7JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gI3RyYWRlSW5CYXJQb3B1cFN1Ym1pdCIpLnBhcmVudCgpLmhpZGUoKTskKCIjdHJhZGVJbkJhclBvcHVwX2Zvcm1XIC50cmFkZUluRGlzY2xhaW1lciIpLmhpZGUoKTskKCIjdHJhZGVJbkJhclBvcHVwRm9ybSAudHJhZGVJbkJhclN0ZXAxIikuaGlkZSgpOyQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIC50cmFkZUluQmFyU3RlcDIiKS5oaWRlKCk7JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gLnRyYWRlSW5CYXJTdGVwMyIpLmhpZGUoKTsKJCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gLnRyYWRlSW5CYXJTdGVwNCIpLmhpZGUoKTskKCIjdHJhZGVJbkJhclBvcHVwRm9ybSAudHJhZGVJbkJhclN0ZXA1IikuaGlkZSgpOyQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIC50cmFkZUluQmFyU3RlcDYiKS5zaG93KCk7dGhpcy5zZXRIZWlnaHRNb2JpbGUoNik7dGhpcy5pbml0SW1hZ2VVcGxvYWQoKTskKCIjdHJhZGVJblN0ZXA2WWVzIikub24oImNsaWNrIixmdW5jdGlvbigpeyQoIiN0cmFkZUluU3RlcDZZZXMiKS5oaWRlKCk7dHJhZGVpbnBvcHVwZDJjLnVwbG9hZEltYWdlc1RvQmFja2VuZCgpfSk7dGhpcy50cmFkZUluQm90dG9tTG9nb0hlaWd0KCl9LGluaXRJbWFnZVVwbG9hZDpmdW5jdGlvbigpe2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIiN0cmFkZUluQmFyUG9wdXBGb3JtIC51cGxvYWQtYXJlYSIpLmZvckVhY2goYT0+e2NvbnN0IGs9YS5xdWVyeVNlbGVjdG9yKCdpbnB1dFt0eXBlPSJmaWxlIl0nKSxkPWEucXVlcnlTZWxlY3RvcigiLnBsYWNlaG9sZGVyIiksCmI9YS5xdWVyeVNlbGVjdG9yKCIuZGVsZXRlLWJ0biIpLGM9YS5xdWVyeVNlbGVjdG9yKCIuYWRkLWljb24iKSxoPWEuZGF0YXNldC5vdmVybGF5O2gmJihhLnN0eWxlLmJhY2tncm91bmRJbWFnZT1gdXJsKCR7aH0pYCk7YS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PntrLnZhbHVlfHxrLmNsaWNrKCl9KTtrLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsZz0+e2lmKChnPWcudGFyZ2V0LmZpbGVzWzBdKSYmZy50eXBlLnN0YXJ0c1dpdGgoImltYWdlLyIpKXtjb25zdCBlPW5ldyBGaWxlUmVhZGVyO2Uub25sb2FkPSgpPT57ZC5zcmM9ZS5yZXN1bHQ7ZC5zdHlsZS5kaXNwbGF5PSJibG9jayI7YS5zdHlsZS5iYWNrZ3JvdW5kSW1hZ2U9Im5vbmUiO2Iuc3R5bGUuZGlzcGxheT0iYmxvY2siO2Muc3R5bGUuZGlzcGxheT0ibm9uZSJ9O2UucmVhZEFzRGF0YVVSTChnKX1lbHNlIGsudmFsdWU9IiJ9KTtiLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixnPT57Zy5zdG9wUHJvcGFnYXRpb24oKTsKay52YWx1ZT0iIjtkLnNyYz0iIjtkLnN0eWxlLmRpc3BsYXk9Im5vbmUiO2Euc3R5bGUuYmFja2dyb3VuZEltYWdlPWB1cmwoJHtofSlgO2Iuc3R5bGUuZGlzcGxheT0ibm9uZSI7Yy5zdHlsZS5kaXNwbGF5PSJmbGV4IjtyZXR1cm4hMX0pO2Iuc3R5bGUuZGlzcGxheT0ibm9uZSI7ZC5zdHlsZS5kaXNwbGF5PSJub25lIn0pfSx1cGxvYWRJbWFnZXNUb0JhY2tlbmQ6ZnVuY3Rpb24oKXt2YXIgYT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIjdHJhZGVJbkJhclBvcHVwRm9ybSAudXBsb2FkLWFyZWEiKTtjb25zdCBrPW5ldyBGb3JtRGF0YTtsZXQgZD0hMTthLmZvckVhY2goYj0+e2I9Yi5xdWVyeVNlbGVjdG9yKCdpbnB1dFt0eXBlPSJmaWxlIl0nKTswPGIuZmlsZXMubGVuZ3RoJiZiLmZpbGVzWzBdLnR5cGUuc3RhcnRzV2l0aCgiaW1hZ2UvIikmJihrLmFwcGVuZCgiaW1hZ2VzW10iLGIuZmlsZXNbMF0sYi5nZXRBdHRyaWJ1dGUoImRhdGEtbmFtZSIpKSxkPSEwKX0pO2Q\/KGE9CiQoImJvZHkiKS5oYXNDbGFzcygiRU5HTElTSCIpPyJFTkdMSVNIIjoiRlJFTkNIIiwkLmFqYXgoe3R5cGU6IlBPU1QiLHVybDooIkVOR0xJU0giPT1hPyIvZW4vIjoiL2ZyLyIpKyIvYWpheC91cGxvYWRUcmFkZUluSW1hZ2VzIixjb250ZW50VHlwZTohMSxwcm9jZXNzRGF0YTohMSxkYXRhOmssc3VjY2VzczpmdW5jdGlvbihiKXtpZihiLmxlbmd0aCl7JGRhdGFPYmo9SlNPTi5wYXJzZShiKTskaW1hZ2VFeFZhbHVlPSIiO2ZvcihiPTA7YjwkZGF0YU9iai5sZW5ndGg7YisrKSRpbWFnZUV4VmFsdWUrPSRkYXRhT2JqW2JdLmZpbGVuYW1lKyIgOiAiKyRkYXRhT2JqW2JdLmZpbGVVcmwrIiBcbiI7JCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT0iVFJBREVJTklNQUdFRVgiXScpLnZhbCgkaW1hZ2VFeFZhbHVlKX0kKCIudHJhZGVJbkJhclBvcHVwU3VibWl0IikudHJpZ2dlcigiY2xpY2siKX19KSk6JCgiLnRyYWRlSW5CYXJQb3B1cFN1Ym1pdCIpLnRyaWdnZXIoImNsaWNrIil9LApzZXRIZWlnaHRNb2JpbGUoYSl7aWYoIjEiPT0kKCIjaXNtb2JpbGUiKS52YWwoKSlzd2l0Y2goYSl7Y2FzZSAyOiQoIiNUcmFkZUluQmFyUG9wdXBDb250YWluZXIiKS5jc3MoImhlaWdodCIsIjU0MHB4Iik7JCgiI3RyYWRlSW5CYXJQb3B1cF9mb3JtVyIpLmNzcygiaGVpZ2h0IiwiNTMwcHgiKTticmVhaztjYXNlIDM6JCgiI1RyYWRlSW5CYXJQb3B1cENvbnRhaW5lciIpLmNzcygiaGVpZ2h0IiwiNjAwcHgiKTskKCIjdHJhZGVJbkJhclBvcHVwX2Zvcm1XIikuY3NzKCJoZWlnaHQiLCI1OTBweCIpO2JyZWFrO2Nhc2UgNDokKCIjVHJhZGVJbkJhclBvcHVwQ29udGFpbmVyIikuY3NzKCJoZWlnaHQiLCI1NDBweCIpOyQoIiN0cmFkZUluQmFyUG9wdXBfZm9ybVciKS5jc3MoImhlaWdodCIsIjUzMHB4Iik7YnJlYWs7Y2FzZSA1OiQoIiNUcmFkZUluQmFyUG9wdXBDb250YWluZXIiKS5jc3MoImhlaWdodCIsIjUzMHB4Iik7JCgiI3RyYWRlSW5CYXJQb3B1cF9mb3JtVyIpLmNzcygiaGVpZ2h0IiwKIjUyMHB4Iik7YnJlYWs7Y2FzZSA2OiQoIiNUcmFkZUluQmFyUG9wdXBDb250YWluZXIiKS5jc3MoImhlaWdodCIsIjc1MHB4Iik7JCgiI3RyYWRlSW5CYXJQb3B1cF9mb3JtVyIpLmNzcygiaGVpZ2h0IiwiNzQwcHgiKTticmVhaztkZWZhdWx0OiQoIiNUcmFkZUluQmFyUG9wdXBDb250YWluZXIiKS5jc3MoImhlaWdodCIsIjk4MHB4IiksJCgiI3RyYWRlSW5CYXJQb3B1cF9mb3JtVyIpLmNzcygiaGVpZ2h0IiwiOTcwcHgiKX19LHRyYWRlSW5Cb3R0b21Mb2dvSGVpZ3Q6ZnVuY3Rpb24oKXtpZigkKCIudHJhZGVJbkJvdHRvbUxvZ28iKS5sZW5ndGgpe3ZhciBhPSQoIiN0cmFkZUluQmFyUG9wdXBfZm9ybVciKTtsZXQgaz0kKCIudHJhZGVJbkJvdHRvbUxvZ28iKSxkPSQoIiN0cmFkZUluQmFyUG9wdXBfZm9ybVcgLnRyYWRlSW5EaXNjbGFpbWVyIiksYj0kKCIjaXNNb2JpbGUiKS5sZW5ndGgmJiIxIj09JCgiI2lzTW9iaWxlIikudmFsKCksYz0kKCIubml2TWFrZU1vZGVsU2VsZWN0Q29udGFpbmVyIikuaXMoIjp2aXNpYmxlIik7CmE9YS5pbm5lckhlaWdodCgpLWsucG9zaXRpb24oKS50b3A7ZC5sZW5ndGgmJmQuaXMoIjp2aXNpYmxlIikmJihhLT1kLm91dGVySGVpZ2h0KCEwKSsoYj8wOmM\/MTA6MzApKTskKCIudHJhZGVJbkJvdHRvbUxvZ28iKS5oZWlnaHQoYSsicHgiKX19fTsKLyoqIC9qcy9wb3B1cGl6ZXIuanMgKiovCnZhciBfX19kMmNfcG9wdXBpemVyanNfY19vbj0iMjAyNi0wNi0wNCAwOTozMDoxMyI7J3VzZSBzdHJpY3QnO2lzU2NyYXRjaEFuZFNhdmU9InVuZGVmaW5lZCI9PXR5cGVvZiBpc1NjcmF0Y2hBbmRTYXZlPyIiOmlzU2NyYXRjaEFuZFNhdmU7cG9wdXBXaWRnZXRfcGFnZVZpZXdzSW5jcmVtZW50ZWQ9InVuZGVmaW5lZCI9PXR5cGVvZiBwb3B1cFdpZGdldF9wYWdlVmlld3NJbmNyZW1lbnRlZD8iIjpwb3B1cFdpZGdldF9wYWdlVmlld3NJbmNyZW1lbnRlZDtzaG93UG9wdXBXaWRnZXQ9ImZ1bmN0aW9uIiE9dHlwZW9mIHNob3dQb3B1cFdpZGdldD9mdW5jdGlvbigpe306c2hvd1BvcHVwV2lkZ2V0O2FjdGl2YXRlUG9wdXBCZWZvcmVMb2FkPSJmdW5jdGlvbiIhPXR5cGVvZiBhY3RpdmF0ZVBvcHVwQmVmb3JlTG9hZD9mdW5jdGlvbigpe306YWN0aXZhdGVQb3B1cEJlZm9yZUxvYWQ7CnZhciBwb3B1cElzU3VibWl0dGluZz0hMSxDUG9wdXBTdXBlcnZpc29yPWZ1bmN0aW9uKCl7dmFyIGM9dGhpcztjLm9ubG9hZFF1ZXVlPVtdO2MuaW5kZXg9MDtjLmlzQW5pbWF0aW5nPSExO2MucG9wdXBzPVtdO2MucmVnaXN0ZXI9ZnVuY3Rpb24oYSl7dmFyIGs9MDswPE51bWJlcihhLnNldHRpbmdzLnNob3dvbmxvYWQpJiYhMCE9PWEuc2V0dGluZ3Muc2hvd29ubG9hZCYmKGs9YS5zZXR0aW5ncy5zaG93b25sb2FkKTt2YXIgYj0xOzE8YS5zZXR0aW5ncy5wcmlvcml0eSYmKGI9YS5zZXR0aW5ncy5wcmlvcml0eSk7MSE9Q29va2llcy5nZXQoIm5vdXNlZGN0YSIpfHwidXNlZGNhcnMuaHRtbCIhPSQoIiNQQUdFSUQiKS52YWwoKSYmImNhcmRldGFpbC5odG1sIiE9JCgiI1BBR0VJRCIpLnZhbCgpP2Mub25sb2FkUXVldWUucHVzaCh7cG9wdXA6YSxkZWxheTprLHByaW9yaXR5OmJ9KTpjb25zb2xlLmxvZygiTm90IHNob3dpbmcgcG9wdXAgb25sb2FkLCBiZWNhdXNlIGl0cyBhIHVzZWQgcGFnZSBhbmQgdGhlIGNvb2tpZSBub3VzZWRjdGEgaXMgc2V0Iil9OwpjLnJlcG9zaXRpb249ZnVuY3Rpb24oKXtpZighKHBvcHVwaXplckFjdGl2ZSgpfHwidW5kZWZpbmVkIiE9dHlwZW9mIG1vZGVsQ29uZmlnJiZtb2RlbENvbmZpZy5pc0FjdGl2ZSYmbW9kZWxDb25maWcuaXNBY3RpdmUoKSkpcmV0dXJuICQoImJvZHkiKS5jc3MoIm92ZXJmbG93IiwiIiksITE7aWYoYy5pc0FuaW1hdGluZylyZXR1cm4hMTt2YXIgYT0idW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdy5pbm5lckhlaWdodD93aW5kb3cuaW5uZXJIZWlnaHQ6JCh3aW5kb3cpLmhlaWdodCgpLGs9JChkb2N1bWVudCkuc2Nyb2xsVG9wKCksYj0vTW9iaS8udGVzdChuYXZpZ2F0b3IudXNlckFnZW50KT81OjIwOyQoIi5yZXZlYWwtbW9kYWwiKS5lYWNoKGZ1bmN0aW9uKGQsZSl7ZD0kKHRoaXMpO2lmKCJ2aXNpYmxlIj09ZC5jc3MoInZpc2liaWxpdHkiKSl7ZT1kLm9mZnNldCgpLnRvcDt2YXIgaD1kLm91dGVySGVpZ2h0KCksbD1lK2g7aWYoYTxoK2J8fG5hdmlnYXRvci51c2VyQWdlbnQubWF0Y2goLyhpUGhvbmV8aVBvZCkvZykpe2lmKCQoImJvZHkiKS5jc3MoIm92ZXJmbG93IiwKImF1dG8iKSxrPmx8fGsrYTxlKWU9aytiLGMuaXNBbmltYXRpbmc9ITAsZC5hbmltYXRlKHt0b3A6ZSsicHgifSwyMDAsZnVuY3Rpb24oKXtjLmlzQW5pbWF0aW5nPSExfSl9ZWxzZSBlPWsrKGEtaCkvMixlPWU8Yj9iOmUsYy5pc0FuaW1hdGluZz0hMCxkLmFuaW1hdGUoe3RvcDplKyJweCJ9LDIwMCxmdW5jdGlvbigpe2MuaXNBbmltYXRpbmc9ITF9KX19KX07Yy5zaG93PWZ1bmN0aW9uKCl7aWYoISgwPCQoIiNkaXNhYmxlUG9wdXBzIikubGVuZ3RoJiYiMSI9PSQoIiNkaXNhYmxlUG9wdXBzIikudmFsKCkpJiYoYy5vbmxvYWRRdWV1ZS5zb3J0KGZ1bmN0aW9uKGEsayl7aWYoYS5wcmlvcml0eT5rLnByaW9yaXR5KXJldHVybiAxO2lmKGEucHJpb3JpdHk8ay5wcmlvcml0eSlyZXR1cm4tMTtpZihhLnByaW9yaXR5PT1rLnByaW9yaXR5KXJldHVybiBhLmRlbGF5PGsuZGVsYXk\/MTotMX0pLCgiQlVJTERBTkRQUklDRSIhPXBhZ2V8fCItMSIhPXdpbmRvdy5sb2NhdGlvbi5ocmVmLmluZGV4T2YoInN0ZXA9cmVzdW1lIikpJiYKMDxjLm9ubG9hZFF1ZXVlLmxlbmd0aCkpe2ZvcihrZXkgaW4gYy5vbmxvYWRRdWV1ZSlpZigxPT1jLm9ubG9hZFF1ZXVlW2tleV0ucG9wdXAuc2V0dGluZ3MuZW5kUG9wdXBRdWV1ZSlyZXR1cm4gYy5vbmxvYWRRdWV1ZVtrZXldLnBvcHVwLm9wZW4oYy5vbmxvYWRRdWV1ZVtrZXldLmRlbGF5KSwhMTtmb3Ioa2V5IGluIGMub25sb2FkUXVldWUpYy5vbmxvYWRRdWV1ZVtrZXldLnBvcHVwLm9wZW4oYy5vbmxvYWRRdWV1ZVtrZXldLmRlbGF5KX19O3ZhciBtPWZ1bmN0aW9uKCl7aWYocG9wdXBpemVyQWN0aXZlKCkpcmV0dXJuIHNldFRpbWVvdXQobSw1MDApLCExO3NldFRpbWVvdXQoZnVuY3Rpb24oKXtpZihwb3B1cGl6ZXJBY3RpdmUoKSlyZXR1cm4gbSgpOyQucG9zdE1lc3NhZ2UoImNsb3NlUG9wdXAiLCIqIix3aW5kb3cucGFyZW50KX0sMUUzKX07c2V0VGltZW91dChmdW5jdGlvbigpezA8JCgiI2F1dG9hdWJhaW5lX3BvcHVwIikubGVuZ3RoJiYiZmFsc2UiIT0kKCIjYXV0b2F1YmFpbmVfcG9wdXAiKS52YWwoKSYmCm0oKX0sNUUzKX0scG9wdXBTdXBlcnZpc29yPW5ldyBDUG9wdXBTdXBlcnZpc29yLHBvcHVwaXplckFjdGl2ZT1mdW5jdGlvbigpe2lmKHBvcHVwaXplckNvbmZpZy5wb3B1cE9wZW4pcmV0dXJuITA7dmFyIGM9ITE7JCgiLnJldmVhbC1tb2RhbCwgLnJldmVhbC1tb2RlbC1kby1ub3Qtc2hvdyIpLmVhY2goZnVuY3Rpb24oKXtpZigxIT1jKXt2YXIgbT0kKHRoaXMpO2lmKCFtLmlzKCI6aGlkZGVuIikpc3dpdGNoKG0uY3NzKCJ2aXNpYmlsaXR5Iikpe2Nhc2UgInVuZGVmaW5lZCI6Y2FzZSAidmlzaWJsZSI6Yz0hMH19fSk7aWYoJCgiLnBwX292ZXJsYXkiKS5pcygiOnZpc2libGUiKXx8ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLm1vZGFsLW92ZXJsYXkiKSljPSEwO3JldHVybiBjfSxwb3B1cGl6ZXJDb25maWc9e307JC5leHRlbmQoITAscG9wdXBpemVyQ29uZmlnLHtwb3B1cE9wZW46ITF9KTsKdmFyIHBvcHVwaXplcj1mdW5jdGlvbihjLG0pe3ZhciBhPXRoaXMsaz0iYXV0byI7Yz9hLnRhcmdldD1jOmM9YS50YXJnZXQ7YS5zZXR0aW5ncz1tO2Euc2V0VHJpZ2dlcj1mdW5jdGlvbihiKXtrPSJzdHJpbmciPT10eXBlb2YgYiYmImNsaWNrIj09Yi50b0xvd2VyQ2FzZSgpPyJjbGljayI6ImF1dG8iO2Euc2V0dGluZ3MudHJpZ2dlcj1rO3JldHVybiBhfTthLmluaXQ9ZnVuY3Rpb24oKXt2YXIgYj0iZnVuY3Rpb24iPT10eXBlb2YgYS5zZXR0aW5ncy5vbkJlZm9yZUluaXRpYWxpemUsZD0iZnVuY3Rpb24iPT10eXBlb2YgYS5zZXR0aW5ncy5vbkFmdGVySW5pdGlhbGl6ZTtpZihhLmlzQ29udGVudExvYWRlZCgpfHwhYiYmIWQpe2lmKGIpe3ZhciBlPWEuc2V0dGluZ3Mub25CZWZvcmVJbml0aWFsaXplLmNhbGwoYyxhKTtpZigwPT1lKXJldHVybn1iPSExO2lmKGEuc2V0dGluZ3MudGhyZXNob2xkJiZhLnNldHRpbmdzLm1haW5wb3B1cCl7YS5zZXR0aW5ncy5zaG93b25sb2FkPSExOwppZigiZnVuY3Rpb24iPT10eXBlb2YgYS5zZXR0aW5ncy5vbkFmdGVySW5pdGlhbGl6ZSYmKGI9ITAsZT1hLnNldHRpbmdzLm9uQWZ0ZXJJbml0aWFsaXplLmNhbGwoYyxhKSwwPT1lKSl7YS5zYXZlU2V0dGluZ3MoKTtyZXR1cm59dGhyZXNob2xkRXhlYyhhLnNldHRpbmdzLnRocmVzaG9sZFZhbHVlLzEwMCxhLmV4ZWNPcGVuKX1pZihhLnNldHRpbmdzLnNjcm9sbHVwJiZhLnNldHRpbmdzLm1haW5wb3B1cCl7YS5zZXR0aW5ncy5zaG93b25sb2FkPSExO2lmKGQmJihiPSEwLGU9YS5zZXR0aW5ncy5vbkFmdGVySW5pdGlhbGl6ZS5jYWxsKGMsYSksMD09ZSkpe2Euc2F2ZVNldHRpbmdzKCk7cmV0dXJufXNjcm9sbHVwRXhlYyhhLmV4ZWNPcGVuKX1jLmFkZENsYXNzKCJyZXZlYWwtbW9kYWwiKTsidW5kZWZpbmVkIiE9dHlwZW9mIGEuc2V0dGluZ3MuYWRkZWRDbGFzc2VzJiYwPGEuc2V0dGluZ3MuYWRkZWRDbGFzc2VzLmxlbmd0aCYmYy5hZGRDbGFzcyhhLnNldHRpbmdzLmFkZGVkQ2xhc3Nlcyk7CiQoImZvcm0iLGMpLm9uKCJzdWJtaXQiLGEuc3VibWl0KTtlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpO2Euc2V0dGluZ3MuYW5pbWF0aW9uJiZlLmdldENvbnRleHQmJigidW5kZWZpbmVkIiE9dHlwZW9mIGEuc2V0dGluZ3MuYW5pbWF0aW9uLmVmZmVjdCYmKGEuc2V0dGluZ3MucmV2ZWFsLmFuaW1hdGlvbj0iZXh0ZXJuYWxBbmltYXRpb24iLGMuYWRkQ2xhc3MoYS5zZXR0aW5ncy5hbmltYXRpb24uZWZmZWN0KSksInVuZGVmaW5lZCIhPXR5cGVvZiBhLnNldHRpbmdzLmFuaW1hdGlvbi5zcGVlZCYmYy5hZGRDbGFzcyhhLnNldHRpbmdzLmFuaW1hdGlvbi5zcGVlZCkpO2Euc2V0dGluZ3MuaW5pdGlhbGl6ZWQ9ITA7Yy50cmlnZ2VyKCJwb3B1cGl6ZXIuaW5pdGlhbGl6ZWQiLGEpO2lmKGQmJiFiJiYoZT1hLnNldHRpbmdzLm9uQWZ0ZXJJbml0aWFsaXplLmNhbGwoYyxhKSwwPT1lKSl7YS5zYXZlU2V0dGluZ3MoKTtyZXR1cm59YS5zYXZlU2V0dGluZ3MoKTtkPSQoIiNoaWRkZW5Ta2lwT25sb2FkUHJpbnRzY3JlZW4iKTsKaWYoMDxkLmxlbmd0aCYmIkRPX1NLSVBfUE9QVVAiPT1kLnZhbCgpKXJldHVybiExOyFhLnNldHRpbmdzLnNob3dvbmxvYWR8fG51bGwhPUNvb2tpZXMuZ2V0KCJwb3B1cEZvcm1GaWxsZWQiKXx8bnVsbCE9Q29va2llcy5nZXQoYS5zZXR0aW5ncy5jb29raWVOYW1lKXx8MSE9YS5zZXR0aW5ncy5jbG9zZUJ1dHRvbiYmMCE9YS5zZXR0aW5ncy5jbG9zZUJ1dHRvbnx8KC0xIT13aW5kb3cubG9jYXRpb24uaHJlZi5pbmRleE9mKCIvcmVxdWVzdC8iKXx8LTEhPXdpbmRvdy5sb2NhdGlvbi5ocmVmLmluZGV4T2YoIi9kZW1hbmRlcy8iKSkmJi0xPT1hLnNldHRpbmdzLm5hbWUuaW5kZXhPZigiaW1hZ2VQb3B1cCIpfHxwb3B1cFN1cGVydmlzb3IucmVnaXN0ZXIoYSk7JChkb2N1bWVudCkub2ZmKCJjbGljayIsIi4iK20ucmV2ZWFsLmRpc21pc3Ntb2RhbGNsYXNzKS5vbigiY2xpY2siLCIuIittLnJldmVhbC5kaXNtaXNzbW9kYWxjbGFzcyxmdW5jdGlvbihoKXtjLnRyaWdnZXIoInBvcHVwaXplci5jbG9zZSIsCmMpfSk7JChkb2N1bWVudCkub2ZmKCJrZXl1cCIpLm9uKCJrZXl1cCIsZnVuY3Rpb24oaCl7Mjc9PT1oLndoaWNoJiZjLnRyaWdnZXIoInBvcHVwaXplci5jbG9zZSIsYyl9KTsidW5kZWZpbmVkIiE9PXR5cGVvZiBhLnNldHRpbmdzLmZvcm0uZnJvbUFBJiYoZW1haWxIYW5kbGVyLmZyb21BQT1hLnNldHRpbmdzLmZvcm0uZnJvbUFBKTtyZXR1cm4gYX1hLmxvYWQoYS5pbml0KX07YS5vbk9wZW49ZnVuY3Rpb24oKXthLmlzQ29udGVudExvYWRlZCgpfHxhLmxvYWQoKTtpZigiYXV0byI9PWsmJm51bGwhPUNvb2tpZXMuZ2V0KGEuc2V0dGluZ3MuY29va2llTmFtZSkpcmV0dXJuITE7dmFyIGI9ZW1haWxIYW5kbGVyLmdldE5ld1NlcXVlbmNlKCk7Yi5zZXRBY3Rpb24oZnVuY3Rpb24oKXtlbWFpbEhhbmRsZXIuZGVhbGVyU2VsZWN0RnVuYyghMCx0aGlzKX0pO3ZhciBkPWVtYWlsSGFuZGxlci5nZXROZXdTZXF1ZW5jZSgpO2Quc2V0QWN0aW9uKGZ1bmN0aW9uKCl7Yy5maW5kKCIucG9wdXBpemVyQm9keSIpLnNob3coKTsKaWYobnVsbCE9Q29va2llcy5nZXQoInBvcHVwRm9ybUZpbGxlZCIpfHxudWxsIT1Db29raWVzLmdldChhLnNldHRpbmdzLmNvb2tpZU5hbWUpKWMuZmluZCgiLmNsb3NlLXJldmVhbC1tb2RhbCIpLnJlbW92ZUNsYXNzKCJtb2RhbC1jbG9zZS1oaWRlIiksYy5maW5kKCIuY2xvc2UtcmV2ZWFsLW1vZGFsIikuc2hvdygpO2EuY3JlYXRlQ29uZmlybUZvcm0oKTtpZigiZnVuY3Rpb24iPT10eXBlb2YgYS5zZXR0aW5ncy5vbkJlZm9yZU9wZW4mJjA9PWEuc2V0dGluZ3Mub25CZWZvcmVPcGVuLmNhbGwoYyxhKSlyZXR1cm4hMTt2YXIgZT0iL3BvcHVwLSIrYS50YXJnZXQuZmluZCgiLmVtYWlsU3ViamVjdCIpLnRleHQoKS5yZXBsYWNlKC9bXG5ccl0vZywiICIpO2EudGFyZ2V0LmZpbmQoIiNpbWFnZVBvcHVwTGVhZFR5cGUiKS5sZW5ndGgmJihlPSIvcG9wdXAtIithLnRhcmdldC5maW5kKCIjaW1hZ2VQb3B1cExlYWRUeXBlIikuYXR0cigiZGF0YS10cmFuc2xhdGVkIikucmVwbGFjZSgvW1xuXHJdL2csCiIgIikpO2EudGFyZ2V0LmZpbmQoIiNwYXltZW50Q2FsY3VsYXRvckNvbnRhaW5lciIpLmxlbmd0aCYmKGU9JCgiYm9keSIpLmhhc0NsYXNzKCJGUkVOQ0giKT8iL25ldWZzL2NhbGN1bGF0cmljZS1wcmV0LWF1dG8tcG9wdXAuaHRtbCI6Ii9uZXcvY2FyLWxvYW4tY2FsY3VsYXRvci1wb3B1cC5odG1sIik7Z2FQYWdlVmlldyhlKTtnYTRQYWdlVmlldyhlKTthLmxvZ0V2ZW50KCJwb3B1cC5vcGVuIik7ImxpdmUiPT0kKCIjdG9wZGVwbG95bWVudHR5cGUiKS52YWwoKSYmZ2FUcmFjaygiYy5fdHJhY2tFdmVudCIsIlBvcHVwLUxhdW5jaGVkIixhLnNldHRpbmdzLm5hbWUsd2luZG93LmxvY2F0aW9uLmhyZWYsMSk7YS5zZXR0aW5ncy5jb3VudGRvd24mJmEuaW5pdENvdW50ZG93bigpO2MuZGF0YSgib3BlbiIsITApO3BvcHVwaXplckNvbmZpZy5wb3B1cE9wZW49ITA7Im9uT3BlbiI9PWEuc2V0dGluZ3MuY29va2llQ3JlYXRlJiZhLnNldENvb2tpZSgpO2U9Yy5maW5kKCJmb3JtIikuZmlyc3QoKTsKZS5maW5kKCdpbnB1dCBbdHlwZT0idGV4dCJdJykuZWFjaChmdW5jdGlvbigpeyQodGhpcykub2ZmKCJmb2N1cyBibHVyIGNoYW5nZSIpLmNzcygiY29sb3IiLCIjMDAwIik7JCh0aGlzKS5hdHRyKCJwbGFjZWhvbGRlciIsJCh0aGlzKS5hdHRyKCJhbHQiKSl9KTt2YXIgaD1uZXcgRm9ybTtoLm1hc2tQaG9uZShjLmZpbmQoImZvcm0iKS5zZWxlY3RvcisiIGlucHV0LnBob25lIik7aC5tYXNrUGhvbmUoYy5maW5kKCJmb3JtIikuc2VsZWN0b3IrIiBpbnB1dC5tb2JpbGUiKTswPGUuZmluZCgiLnBob25lLnJlcXVpcmVkIikubGVuZ3RoP2VtYWlsSGFuZGxlci5waG9uZU1hbmRhdG9yeT0xOmVtYWlsSGFuZGxlci5waG9uZU1hbmRhdG9yeT0wO2Euc2V0dGluZ3MuZm9ybS5lbWFpbGlkJiZlbWFpbEhhbmRsZXIubG9nRm9ybVJlcXVlc3QoIkZvcm1Mb2FkZWQiLGEuc2V0dGluZ3MuZm9ybS5lbWFpbGlkLGEuc2V0dGluZ3MuZm9ybS5vZmZlcnR5cGUpO2Euc2V0dGluZ3MucmV2ZWFsLmNsb3NlZD0KYS5vbkNsb3NlO2MucmV2ZWFsKGEuc2V0dGluZ3MucmV2ZWFsKTskKCIjZmxvYXRQcm9tb1RvcEJ0bkNvbnRhaW5lciIpLmhpZGUoKTskKCIjY29udGFpbmVyRmxCIikuaGlkZSgpOyQoIiN0b2FzdC1jb250YWluZXIiKS5oaWRlKCk7JCgiI2FsZXJ0TXNnQ29udGFpbmVyIikuaGlkZSgpO2Euc2V0dGluZ3MuZm9ybS5PS0J1dHRvbkNsYXNzJiYoZT1hLnNldHRpbmdzLmZvcm0uT0tCdXR0b25DbGFzcywiLiI9PWVbMF0mJihlPWUuc3Vic3RyaW5nKDEpKSwkKCIuIitlLGMpLm9mZigiY2xpY2siKS5vbigiY2xpY2siLGEuc3VibWl0KSk7YS5zZXR0aW5ncy5mb3JtLkNhbmNlbEJ1dHRvbkNsYXNzJiYoZT1hLnNldHRpbmdzLmZvcm0uQ2FuY2VsQnV0dG9uQ2xhc3MsIi4iPT1lWzBdJiYoZT1lLnN1YnN0cmluZygxKSksJCgiLiIrZSxjKS5vZmYoImNsaWNrIikub24oImNsaWNrIixhLmNhbmNlbCkpO2MudHJpZ2dlcigicG9wdXBpemVyLm9uT3BlbiIsYSl9KTskKCIjUE9TVF9MRUFEX1NFTkRfVE9fREVBTEVSX0JFRk9SRV9QT1BVUCIpLmxlbmd0aCYmCiIxIj09JCgiI1BPU1RfTEVBRF9TRU5EX1RPX0RFQUxFUl9CRUZPUkVfUE9QVVAiKS52YWwoKT8iYXV0byIhPWs\/Yi5zZXROZXh0KGQpLmV4ZXV0ZSgpOmQuZXhldXRlKCk6ZC5leGV1dGUoKX07YS5vbkNsb3NlPWZ1bmN0aW9uKCl7Yy5kYXRhKCJvcGVuIiwhMSk7cG9wdXBpemVyQ29uZmlnLnBvcHVwT3Blbj0hMTthLnNldHRpbmdzLnN1Ym1pdHRlZHx8YS5sb2dFdmVudCgicG9wdXAuY2FuY2VsIik7c2V0VGltZW91dChmdW5jdGlvbigpeyQoIiN0b2FzdC1jb250YWluZXIiKS5zaG93KCl9LDUwMCk7c2V0VGltZW91dChmdW5jdGlvbigpeyQoIi5yZXZlYWwtbW9kYWwtYmciKS5sZW5ndGgmJiQoIi5yZXZlYWwtbW9kYWwtYmciKS5yZW1vdmUoKX0sMUUzKTtjLnRyaWdnZXIoInBvcHVwaXplci5vbkNsb3NlIixhKTsiZnVuY3Rpb24iPT10eXBlb2YgYS5zZXR0aW5ncy5vbkNsb3NlJiZhLnNldHRpbmdzLm9uQ2xvc2UuY2FsbChjLGEpfTthLnN1Ym1pdD1mdW5jdGlvbigpe2lmKHBvcHVwSXNTdWJtaXR0aW5nKXJldHVybiExOwpwb3B1cElzU3VibWl0dGluZz0hMDtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7cG9wdXBJc1N1Ym1pdHRpbmc9ITF9LDNFMyk7dmFyIGI9Yy5maW5kKCJmb3JtIikuZmlyc3QoKSxkPVtdLGU9IiIsaD0iIixsPVtdLHA9W10sZz0hMCx0PSIiLHo9IiIsQT0iIjtpZigiZnVuY3Rpb24iPT10eXBlb2YgYS5zZXR0aW5ncy5vbkJlZm9yZVZhbGlkYXRpb24pc3dpdGNoKGEuc2V0dGluZ3Mub25CZWZvcmVWYWxpZGF0aW9uLmNhbGwoYixjLGEpKXtjYXNlICExOmNhc2UgMDpyZXR1cm4gcG9wdXBJc1N1Ym1pdHRpbmc9ITE7Y2FzZSAtMTpnPSExfWlmKGcpeyQudmFsaWRpdHkuc2V0dXAoe291dHB1dE1vZGU6InBvcHVwIixzY3JvbGxUbzohMX0pLnN0YXJ0KCk7Yi5maW5kKCJpbnB1dDpub3QoOmhpZGRlbiksIHRleHRhcmVhIikubm9uSHRtbCgpO2IuZmluZCgiaW5wdXQucmVxdWlyZWQsIHNlbGVjdC5yZXF1aXJlZCwgdGV4dGFyZWEucmVxdWlyZWQiKS5yZXF1aXJlKCk7dmFyIHY9ITEsQj0hMSwKdz0hMTtiLmZpbmQoImlucHV0IikuZmlsdGVyKCIucmVxUmFkaW8iKS5yYWRpb09wdGlvbkNob3NlbigpO2IuZmluZCgiaW5wdXQiKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIGY9JCh0aGlzKTtmLmhhc0NsYXNzKCJlbWFpbCIpJiYoZi5oYXNDbGFzcygicmVxdWlyZWQiKXx8MDxmLnZhbCgpLmxlbmd0aCkmJih3PSEwKTtpZihmLmhhc0NsYXNzKCJwaG9uZSIpfHxmLmhhc0NsYXNzKCJtb2JpbGUiKSlpZihCPSEwLGYuaGFzQ2xhc3MoInJlcXVpcmVkIil8fDA8Zi52YWwoKS5sZW5ndGgpdj0hMH0pOzA9PXYmJjA9PXcmJihCP3Y9ITA6dz0hMCk7Yi5maW5kKCJpbnB1dCIpLmVhY2goZnVuY3Rpb24oKXt2YXIgZj0kKHRoaXMpO2YuaGFzQ2xhc3MoImVtYWlsIikmJmYudmFsaWRFbWFpbEFkZHJlc3MoKTtmLmhhc0NsYXNzKCJwaG9uZSIpJiZmLnZhbGlkYXRlUGhvbmUoKTtmLmhhc0NsYXNzKCJtb2JpbGUiKSYmZi52YWxpZGF0ZU1vYmlsZSgpfSk7MT5jLmZpbmQoIi5NaXNzaW5nVmFsaWRhdGlvbk1zZyIpLmxlbmd0aCYmCmMuYXBwZW5kKCc8ZGl2IGNsYXNzPSJNaXNzaW5nVmFsaWRhdGlvbk1zZyI+PC9kaXY+Jyk7aWYoISQudmFsaWRpdHkuZW5kKCkudmFsaWQpcmV0dXJuICQoIi5NaXNzaW5nVmFsaWRhdGlvbk1zZyIsYykuc2hvdygpLCQoZG9jdW1lbnQpLm9uKCJtb3VzZWRvd24iLGZ1bmN0aW9uKGYpeyQoIi5NaXNzaW5nVmFsaWRhdGlvbk1zZyIsYykuaGlkZSgpOyQodGhpcykub2ZmKGYpfSksYS5sb2dFdmVudCgicG9wdXAudmFsaWRhdGlvbkZhaWxlZCIpLHBvcHVwSXNTdWJtaXR0aW5nPSExfWlmKCJmdW5jdGlvbiI9PXR5cGVvZiBhLnNldHRpbmdzLm9uQmVmb3Jlc3VibWl0KXtnPSEwO3RyeXtnPWEuc2V0dGluZ3Mub25CZWZvcmVzdWJtaXQuY2FsbChjLGEpfWNhdGNoKGYpe2NvbnNvbGUubG9nKCJPbiBiZWZvcmUgc3VibWl0IGZhaWxlZCwgcmV0dXJuaW5nIHRydWUuIixmKX1pZigwPT1nKXJldHVybiBhLnNldHRpbmdzLmNsb3NlT25TdWJtaXQmJmEuY2xvc2UoKSwhMX1hLmxvZ0V2ZW50KCJwb3B1cC5zdWJtaXQiKTsKYi5maW5kKCJpbnB1dCIpLmVhY2goZnVuY3Rpb24oKXt2YXIgZj0kKHRoaXMpOyhmLmhhc0NsYXNzKCJlbWFpbCIpfHwiZW1haWwiPT09Zi5hdHRyKCJ0eXBlIikpJiZkLnB1c2goZi52YWwoKSk7Zi5oYXNDbGFzcygicG9zdGFsIikmJihlPWYudmFsKCkpO2YuaGFzQ2xhc3MoInRyYWRlaW4iKSYmKGg9Zi52YWwoKSk7KGYuaGFzQ2xhc3MoInBob25lIil8fGYuaGFzQ2xhc3MoIm1vYmlsZSIpfHwidGVsIj09PWYuYXR0cigidHlwZSIpKSYmcC5wdXNoKGYudmFsKCkpOyJ1bmRlZmluZWQiPT10eXBlb2YgZi5hdHRyKCJuYW1lIikmJmYuYXR0cigibmFtZSIsIiIpOyhmLmhhc0NsYXNzKCJuYW1lIil8fCJuYW1lIj09Zi5hdHRyKCJuYW1lIikudG9Mb3dlckNhc2UoKSkmJmwucHVzaChmLnZhbCgpKTsoZi5oYXNDbGFzcygiZmlyc3RuYW1lIil8fCJmaXJzdG5hbWUiPT1mLmF0dHIoIm5hbWUiKS50b0xvd2VyQ2FzZSgpKSYmbC51bnNoaWZ0KGYudmFsKCkpOyhmLmhhc0NsYXNzKCJsYXN0bmFtZSIpfHwKImxhc3RuYW1lIj09Zi5hdHRyKCJuYW1lIikudG9Mb3dlckNhc2UoKSkmJmwucHVzaChmLnZhbCgpKTtpZihmLmhhc0NsYXNzKCJjb21tZW50Iil8fCJjb21tZW50Ij09Zi5hdHRyKCJuYW1lIikudG9Mb3dlckNhc2UoKSl0PWYudmFsKCk7aWYoZi5oYXNDbGFzcygiYWRkcmVzcyIpfHwiYWRkcmVzcyI9PWYuYXR0cigibmFtZSIpLnRvTG93ZXJDYXNlKCkpej1mLnZhbCgpO2lmKGYuaGFzQ2xhc3MoImJpcnRoZGF0ZSIpfHwiYmlydGhkYXRlIj09Zi5hdHRyKCJuYW1lIikudG9Mb3dlckNhc2UoKSlBPWYudmFsKCl9KTtnPWIuc2VyaWFsaXplQXJyYXkoKTt2YXIgeD0kKCIuZW1haWxCb2R5IixjKS5odG1sKCkrIiIsdT0kKCIuZW1haWxTdWJqZWN0IixjKS5odG1sKCkrIiI7IlByaWNlVmVoaWNsZSI9PWEuc2V0dGluZ3MuZm9ybS5lbWFpbGlkJiYwPT1iLmZpbmQoIltuYW1lPW5vQ0JCXSIpLnZhbCgpJiYiU01TIj09Yi5maW5kKCIjdHJhZGVJbkJhclNtc09yRW1haWxTbXM6Y2hlY2tlZCIpLnZhbCgpJiYKKHUrPSIgKFNNUykiKTt2YXIgcT1bXTtbXS5wdXNoLmFwcGx5KHEsZyk7W10ucHVzaC5hcHBseShxLGEuZ2xvYmFsUmVwbGFjZW1lbnRzKCkpOyQuZWFjaChxLGZ1bmN0aW9uKCl7dmFyIGY9bmV3IFJlZ0V4cCgie1xcJCIrdGhpcy5uYW1lLnRvVXBwZXJDYXNlKCkrIn0iLCJnIiksbj10aGlzLnZhbHVlOyJTRUFSQ0hFRFZFSElDTEUiPT10aGlzLm5hbWUudG9VcHBlckNhc2UoKSYmKG49IjxzcGFuIGlkPSdwaFNFQVJDSFZFSElDTEUnPiIrbisiPC9zcGFuPiIpO3g9eC5yZXBsYWNlKGYsbik7dT11LnJlcGxhY2UoZix0aGlzLnZhbHVlKX0pO2c9e3NlbmRUbzphLnNldHRpbmdzLmZvcm0uc2VuZFRvLHNlbmRUb0FERkZvcm1hdDphLnNldHRpbmdzLmZvcm0uc2VuZFRvQURGLGNvbmRpdGlvbjphLnNldHRpbmdzLnZlaGljbGVTdGF0ZSxtYWlsSUQ6YS5zZXR0aW5ncy5mb3JtLmVtYWlsaWQsc3ViamVjdDp1LGJvZHk6eCx1c2VyUG9zdGFsOmUsYWRkcmVzczp6LGJpcnRoZGF0ZTpBLHRyYWRlaW46aCwKcG9wdXBkaXY6IiIsdXNlckVtYWlsOmQuam9pbigiOyIpLHVzZXJOYW1lOmwuam9pbigiICIpLHVzZXJQaG9uZTpwLmpvaW4oIiwiKSxzbXM6YS5zZXR0aW5ncy5mb3JtLnNtcyxwb3B1cE9mZmVyVHlwZTphLnNldHRpbmdzLmZvcm0ub2ZmZXJ0eXBlLGNvbW1lbnRzOnR9OyQuZXh0ZW5kKCEwLGVtYWlsSGFuZGxlcixnKTsic3RyaW5nIj09dHlwZW9mIGVtYWlsSGFuZGxlci51c2VyTmFtZSYmKGc9ZW1haWxIYW5kbGVyLnVzZXJOYW1lLnNwbGl0KCIgIiksZW1haWxIYW5kbGVyLnVzZXJGaXJzdE5hbWU9Zy5zaGlmdCgpLGVtYWlsSGFuZGxlci51c2VyTGFzdE5hbWU9Zy5qb2luKCIgIikpO2VtYWlsSGFuZGxlci5wb3B1cGRpdj1hLnRhcmdldC5hdHRyKCJpZCIpO2lmKGEuc2V0dGluZ3MuZmlsbGZsYWcpdmFyIEM9ZnVuY3Rpb24oKXtDb29raWVzLnNldCgicG9wdXBGb3JtRmlsbGVkIiwiMSIsOTAsIi8iKTtjLnRyaWdnZXIoInBvcHVwaXplci5mb3JtRmlsbGVkIixhKX07aWYoImZ1bmN0aW9uIj09CnR5cGVvZiBlbWFpbEhhbmRsZXIuY2FsbGJhY2smJjA8ZW1haWxIYW5kbGVyLmNhbGxiYWNrLmxlbmd0aCl2YXIgRD1lbWFpbEhhbmRsZXIuY2FsbGJhY2s7dmFyIEU9ZnVuY3Rpb24oKXtyZXR1cm4hMH07ImZ1bmN0aW9uIj09dHlwZW9mIGEuc2V0dGluZ3Mub25BZnRlcnN1Ym1pdCYmKEU9YS5zZXR0aW5ncy5vbkFmdGVyc3VibWl0KTtlbWFpbEhhbmRsZXIub25CZWZvcmVTaG93Q29uc2VudD1mdW5jdGlvbigpe2MuY3NzKHtvcGFjaXR5OjEsdmlzaWJpbGl0eToiaGlkZGVuIn0pO2VtYWlsSGFuZGxlci5vbkJlZm9yZVNob3dDb25zZW50PSExfTtlbWFpbEhhbmRsZXIub25BZnRlckNvbnNlbnQ9ZnVuY3Rpb24oZil7YS5zZXR0aW5ncy5jbG9zZU9uU3VibWl0P2EuY2xvc2UoKTpjLnJldmVhbChhLnNldHRpbmdzLnJldmVhbCk7ZW1haWxIYW5kbGVyLm9uQmVmb3JlU2hvd0NvbnNlbnQ9ITE7ZW1haWxIYW5kbGVyLm9uQWZ0ZXJDb25zZW50PSExfTtlbWFpbEhhbmRsZXIub25EdXBsaWNhdGVTZW5kPQpmdW5jdGlvbigpe2Euc2V0dGluZ3MuY2xvc2VPblN1Ym1pdCYmYS5jbG9zZSgpO2VtYWlsSGFuZGxlci5yZXNldENhbGxiYWNrcygpfTtlbWFpbEhhbmRsZXIuY2FsbGJhY2s9ZnVuY3Rpb24oZil7dmFyIG49ITE7YS5zZXR0aW5ncy5mb3JtLnNob3dFbWFpbENvbmZpcm1hdGlvbiYmKG49Z2V0TWFpbFNlbnRIYW5kbGVyKCJfIitjLmF0dHIoImlkIikpLG4udGltZW91dENhbGxiYWNrPWZ1bmN0aW9uKCl7Yi50cmlnZ2VyKCJyZXNldCIpfSk7dmFyIEY9YS5zZXR0aW5ncy5jbG9zZU9uU3VibWl0O2lmKGYpYS5sb2dFdmVudCgicG9wdXAubGVhZF9zZW50IiksMD09RS5jYWxsKGMsYSkmJihGPSExKSwiZnVuY3Rpb24iPT10eXBlb2YgQyYmQygpLCJmdW5jdGlvbiI9PXR5cGVvZiBEJiZEKCksIm9uU3VibWl0Ij09YS5zZXR0aW5ncy5jb29raWVDcmVhdGUmJmEuc2V0Q29va2llKCksRiYmImhpZGRlbiIhPWMuY3NzKCJ2aXNpYmlsaXR5IikmJmEuY2xvc2UoIkNPTlNFTlQiKSxhLnNldHRpbmdzLm1haW5wb3B1cCYmCihlbWFpbEhhbmRsZXIubWFpblByb21vPSEwKSxuP24uc2hvd1N1Y2Nlc3MoKTowPCQoImZvcm0jIitjLmF0dHIoImlkIikrIl9jb25maXJtIikubGVuZ3RoJiYkKCJmb3JtIyIrYy5hdHRyKCJpZCIpKyJfY29uZmlybSIpLnRyaWdnZXIoInN1Ym1pdCIpO2Vsc2V7bnx8KG49Z2V0TWFpbFNlbnRIYW5kbGVyKCkpO3RyeXtuLnNob3dGYWlsKCl9Y2F0Y2goRyl7fX1zZXRUaW1lb3V0KGVtYWlsSGFuZGxlci5yZXNldENhbGxiYWNrcygpLDFFMyl9O2Euc2F2ZVNldHRpbmdzKHtzdWJtaXR0ZWQ6ITB9KTtpZigiZnVuY3Rpb24iPT10eXBlb2YgYS5zZXR0aW5ncy5vbkJlZm9yZVNlbmRNYWlsJiYwPT1hLnNldHRpbmdzLm9uQmVmb3JlU2VuZE1haWwuY2FsbChjLGEpKXJldHVybiExO2Euc2V0RGVmYXVsdEFERigpOyJmdW5jdGlvbiI9PXR5cGVvZiBhLnNldHRpbmdzLm9uQURGJiYoZz1hLnNldHRpbmdzLm9uQURGLmNhbGwoYyxhKSwib2JqZWN0Ij09dHlwZW9mIGcmJiQuZXh0ZW5kKGEuc2V0dGluZ3MuQURGLApnKSk7Zz0ibWFrZSBtb2RlbCB5ZWFyIHN0b2NrTnVtYmVyIHRyaW0gdmluIHByaWNlIGNhcmlkIi5zcGxpdCgiICIpO3E9YS5zZXR0aW5ncy5BREY7Zm9yKHZhciB5PTA7eTxnLmxlbmd0aDt5Kyspe3ZhciByPWdbeV07ZW1haWxIYW5kbGVyW3JdPSIiIT1lbWFpbEhhbmRsZXJbcl0\/ZW1haWxIYW5kbGVyW3JdOnFbcl0\/cVtyXTplbWFpbEhhbmRsZXJbcl19ZW1haWxIYW5kbGVyLmJvZHk9YS5jbGVhbkJsYW5rVmFyaWFibGVzKGVtYWlsSGFuZGxlci5ib2R5KTthLnNob3dQdXJjaGFzZUludGVudFBvcHVwKCl8fGVtYWlsSGFuZGxlci5zZW5kTWFpbChhLnNldHRpbmdzLmJ5cGFzc0NvbnNlbnQpO3JldHVybiEwfTthLnNob3dQdXJjaGFzZUludGVudFBvcHVwPWZ1bmN0aW9uKCl7aWYoYS5zZXR0aW5ncy5wdXJjaGFzZUludGVudFBvcHVwKXt2YXIgYj0kKCIjaW50ZXJzdGl0aWFsVmVoaWNsZUludGVudCIpO2lmKDE+Yi5sZW5ndGh8fG51bGwhPUNvb2tpZXMuZ2V0KCJwdXJjaGFzZV9pbnRlbnQiKSlyZXR1cm4hMTsKZ2FUcmFjaygiX3RyYWNrRXZlbnQiLCJJbnRlbnRpb25zIGQnYWNoYXQiLCJQb3B1cCB2dXMiLGEuc2V0dGluZ3MuZ29vZ2xlVHJhY2tpbmcubGFiZWwsMSk7Yy5jc3Moe29wYWNpdHk6MSx2aXNpYmlsaXR5OiJoaWRkZW4ifSk7Yi5maW5kKCJmb3JtIikub24oInN1Ym1pdCIsZnVuY3Rpb24oKXt2YXIgZD0kKHRoaXMpLGU9ZC5maW5kKCJpbnB1dCIpOyQudmFsaWRpdHkuc2V0dXAoe291dHB1dE1vZGU6InBvcHVwIn0pLnN0YXJ0KCk7ZC5maW5kKCJpbnB1dDpub3QoOmhpZGRlbiksIHRleHRhcmVhIikubm9uSHRtbCgpO2UuZmlsdGVyKCIucmVxdWlyZWQiKS5yZXF1aXJlKCkubm9uSHRtbCgpO2UuZmlsdGVyKCIucmVxUmFkaW8iKS5yYWRpb09wdGlvbkNob3NlbigpO2lmKCQudmFsaWRpdHkuZW5kKCkudmFsaWQpe2IudHJpZ2dlcigicmV2ZWFsOmNsb3NlIik7dmFyIGg9e3B1cmNoYXNlX2ludGVudDohMH07ZC5zZXJpYWxpemVBcnJheSgpLm1hcChmdW5jdGlvbihsLHAsZyl7aFtsLm5hbWVdPQpsLnZhbHVlfSk7Q29va2llcy5zZXQoInB1cmNoYXNlX2ludGVudCIsaC5wdXJjaGFzZV9pbnRlbnQsMzAsIi8iKTtnYVRyYWNrKCJfdHJhY2tFdmVudCIsIkludGVudGlvbnMgZCdhY2hhdCIsIlJlcG9uc2VzIixoLnB1cmNoYXNlX2ludGVudCwxKTtlbWFpbEhhbmRsZXIuc2VuZE1haWwoYS5zZXR0aW5ncy5ieXBhc3NDb25zZW50KX1yZXR1cm4hMX0pO2IucmV2ZWFsKHtjbG9zZV9vbl9iYWNrZ3JvdW5kX2NsaWNrOiExLGRpc21pc3NfbW9kYWxfY2xhc3M6Il9fTlVMTF9fIn0pO3JldHVybiEwfXJldHVybiExfTthLmdsb2JhbFJlcGxhY2VtZW50cz1mdW5jdGlvbigpe3ZhciBiPVtdOyQoImlucHV0W3R5cGU9aGlkZGVuXSIpLmVhY2goZnVuY3Rpb24oKXt2YXIgZz0kKHRoaXMpLmF0dHIoIm5hbWUiKTtnPSJ1bmRlZmluZWQiIT10eXBlb2YgZz9nOiQodGhpcykuYXR0cigiaWQiKTtpZighZylyZXR1cm4hMDt2YXIgdD0hMTsiZW1haWxidWlsZGFuZHByaWNlIj09Zy50b0xvd2VyQ2FzZSgpJiYKIiI9PSQodGhpcykudmFsKCkucmVwbGFjZSgvIC9nLCIiKSYmKHQ9ITApO3R8fCgiYnJhbmQiPT1nLnRvTG93ZXJDYXNlKCkmJmIucHVzaCh7bmFtZToibWFrZSIsdmFsdWU6JCh0aGlzKS52YWwoKX0pLGIucHVzaCh7bmFtZTpnLHZhbHVlOiQodGhpcykudmFsKCl9KSl9KTt2YXIgZD0iIjtpZigwPCQoIiNsYXN0dmlld2VkbWFrZSIpLmxlbmd0aCYmMDwkKCIjbGFzdHZpZXdlZG1ha2UiKS52YWwoKS5sZW5ndGgpe3ZhciBlPSQoIiNsYXN0dmlld2Vkc3RvY2tudW1iZXIiKS52YWwoKTtkPSQoIiNsYXN0dmlld2VkbWFrZSIpLnZhbCgpO3ZhciBoPSQoIiNsYXN0dmlld2VkbW9kZWwiKS52YWwoKSxsPSQoIiNsYXN0dmlld2VkeWVhciIpLnZhbCgpLHA9JCgiI2xhc3R2aWV3ZWR0cmltIikudmFsKCl8fCIiO2Q9ZCsiICIraCsiICIrbCsocC5sZW5ndGg\/IiAiK3A6IiIpO2QrPTA8ZS5sZW5ndGg\/IiAoU3RvY2sjICIrZSsiKSI6IiJ9Yi5wdXNoKHtuYW1lOiJMQVNUVkVISUNMRVZJRVdFRCIsCnZhbHVlOmR9KTtyZXR1cm4gYn07YS5jbGVhbkJsYW5rVmFyaWFibGVzPWZ1bmN0aW9uKGIpe3ZhciBkPWIucmVwbGFjZSgve1wkUVVFU1RJT05TfS9nLCIiKS5yZXBsYWNlKC97XCRNRVNTQUdFfS9nLCIiKS5yZXBsYWNlKC97XCRFTUFJTFBIT05FfS9nLCIiKS5yZXBsYWNlKC97XCRFTUFJTE1BS0V9L2csIiIpLnJlcGxhY2UoL3tcJEVNQUlMTU9ERUx9L2csIiIpLnJlcGxhY2UoL3tcJEVNQUlMWUVBUn0vZywiIikucmVwbGFjZSgve1wkUEFZTUVOVH0vZywiIikucmVwbGFjZSgve1wkUEFZTUVOVFRFUk19L2csIiIpLnJlcGxhY2UoL3tcJE9GRkVSfS9nLCIiKS5yZXBsYWNlKC97XCRTVE9DS05VTUJFUn0vZywiIikucmVwbGFjZSgve1wkQ09MT1J9L2csIiIpLnJlcGxhY2UoL3tcJEZOQU1FfS9nLCIiKS5yZXBsYWNlKC97XCRMTkFNRX0vZywiIikucmVwbGFjZSgve1wkRU1BSUx9L2csIiIpLnJlcGxhY2UoL3tcJFVTRVJQSE9ORX0vZywiIik7bWFpbFBhZ2UmJmIucmVwbGFjZSgve1wkRU1BSUxCVUlMREFORFBSSUNFfS9nLAptYWlsUGFnZS5iYW5kcExpbmsoKSk7cmV0dXJuIGR9O2EuY2FuY2VsPWZ1bmN0aW9uKCl7YS5jbG9zZSgiQ0FOQ0VMIil9O2Eub3Blbj1mdW5jdGlvbihiKXtpZigxPT1jLmRhdGEoIm9wZW4iKSlyZXR1cm4hMTsib2JqZWN0Ij09dHlwZW9mIGImJi0xIT0iY2xpY2sgdGFwIi5pbmRleE9mKGIudHlwZS50b0xvd2VyQ2FzZSgpKSYmKGs9ImNsaWNrIik7aWYoIWlzTmFOKGIpKXJldHVybiBzZXRUaW1lb3V0KGEub3BlbiwxRTMqYik7aWYoIWEuaXNDb250ZW50TG9hZGVkKCkpcmV0dXJuIGEubG9hZChhLm9wZW4pO2lmKCJ1bmRlZmluZWQiIT09dHlwZW9mIHdpbmRvdy5uZXdWRFBWaWRlb0lzUGxheWluZyYmMT09d2luZG93Lm5ld1ZEUFZpZGVvSXNQbGF5aW5nJiYiY2xpY2siIT1rfHxhLmlzQWN0aXZlKCkpcmV0dXJuIGEub3Blbig1KTthLm9uT3BlbigpO3JldHVybiBhfTthLmV4ZWNPcGVuPWZ1bmN0aW9uKCl7bnVsbD09Q29va2llcy5nZXQoInBvcHVwU2hvd25FeGVjIikmJihDb29raWVzLnNldCgicG9wdXBTaG93bkV4ZWMiLAoiMSIsbnVsbCx3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUpLGEub3BlbigwKSl9O2EuaW5pdENvdW50ZG93bj1mdW5jdGlvbigpe3RyeXt2YXIgYj1uZXcgRGF0ZSgxRTMqYS5zZXR0aW5ncy5jb3VudGRvd24pO2lmKDA8Yy5maW5kKCIuY291bnRkb3duIikubGVuZ3RoKXt2YXIgZD1jLmZpbmQoIi5jb3VudGRvd24iKSxlPW5ldyBEYXRlLGg9Yi5nZXRUaW1lKCktZS5nZXRUaW1lKCk7aWYoMDxoKXt2YXIgbD1bTWF0aC5mbG9vcihoLzg2NEU1KSxNYXRoLmZsb29yKGglODY0RTUvMzZFNSksTWF0aC5mbG9vcihoJTg2NEU1JTM2RTUvNkU0KSxNYXRoLmZsb29yKGglODY0RTUlMzZFNSU2RTQvMUUzKV07Zm9yKGI9MDtiPGwubGVuZ3RoO2IrKylsW2JdPTk8bFtiXT9sW2JdLnRvU3RyaW5nKCk6IjAiK2xbYl07dmFyIHA9bC5qb2luKCI6Iik7ZC5jb3VudGRvd24oe3N0YXJ0VGltZTpwLGltYWdlOiIvaW1hZ2VzL2RpZ2l0c19zbWFsbC5wbmciLGRpZ2l0V2lkdGg6MjksZGlnaXRIZWlnaHQ6NDN9KX1lbHNlIGQuaGlkZSgpfX1jYXRjaChnKXsidW5kZWZpbmVkIiE9PQp0eXBlb2YgZGVidWcmJihkZWJ1ZyhnKSxkZWJ1ZygiSW52YWxpZCBkYXRlICIsYS5zZXR0aW5ncy5jb3VudGRvd24pKX19O2EuY2xvc2U9ZnVuY3Rpb24oYil7aWYoIkNBTkNFTCI9PWImJiJmdW5jdGlvbiI9PXR5cGVvZiBhLnNldHRpbmdzLm9uQmVmb3JlQ2FuY2VsKXt2YXIgZD1hLnNldHRpbmdzLm9uQmVmb3JlQ2FuY2VsLmNhbGwoYyxhKTtpZigwPT1kKXJldHVybiExfWlmKCJmdW5jdGlvbiI9PXR5cGVvZiBhLnNldHRpbmdzLm9uQmVmb3JlQ2xvc2UmJihkPWEuc2V0dGluZ3Mub25CZWZvcmVDbG9zZS5jYWxsKGMsYSxiKSwwPT1kKSlyZXR1cm4hMTtjLnRyaWdnZXIoInJldmVhbDpjbG9zZSIpfTthLmlzQWN0aXZlPWZ1bmN0aW9uKCl7cmV0dXJuIHBvcHVwaXplckFjdGl2ZSgpfTthLnNldENvb2tpZT1mdW5jdGlvbigpe0Nvb2tpZXMuc2V0KGEuc2V0dGluZ3MuY29va2llTmFtZSwiMSIsYS5zZXR0aW5ncy5jb29raWVEdXJhdGlvbiwiLyIpO3ZhciBiPWEuc2V0dGluZ3MuY29va2llTmFtZS50b0xvd2VyQ2FzZSgpOwppZigicmViYXRlc2hvd24iPT1ifHwicmViYXRlb3RoZXJzaG93biI9PWImJiJ1c2VkIj09JCgiI2N1cnJlbnRTdGF0dXMiKS52YWwoKSliPW5ldyBEYXRlLGIuc2V0VGltZShiLmdldFRpbWUoKSsxOEU0KSxDb29raWVzLnNldCgidXNlZFNsaWRlclBvcHVwRGlzcGxheWVkIiwiMSIsYiwiLyIpfTthLnNhdmVTZXR0aW5ncz1mdW5jdGlvbihiKXtiPSJ1bmRlZmluZWQiPT10eXBlb2YgYj97fTpiO2I9Im9iamVjdCIhPXR5cGVvZiBiP3t1c2VyRGVmaW5lZE5vbk9iamVjdDpifTpiO2MuZGF0YSgicG9wdXBTZXR0aW5ncyIsJC5leHRlbmQoITAsYS5zZXR0aW5ncyxiKSl9O2Euc2V0RGVmYXVsdEFERj1mdW5jdGlvbigpe3ZhciBiPSQoIiNwb3B1cG1ha2UiKS52YWwoKSxkPSQoIiNwb3B1cG1vZGVsIikudmFsKCksZT0kKCIjcG9wdXB5ZWFyIikudmFsKCk7MDwkKCJpbnB1dC5icmFuZGVtYWlsIikudmFsKCkubGVuZ3RoJiYwPCQoImlucHV0Lm1vZGVsZW1haWwiKS52YWwoKS5sZW5ndGgmJgowPCQoImlucHV0LnllYXJlbWFpbCIpLnZhbCgpLmxlbmd0aCYmKGI9JCgiaW5wdXQuYnJhbmRlbWFpbCIpLnZhbCgpLGQ9JCgiaW5wdXQubW9kZWxlbWFpbCIpLnZhbCgpLGU9JCgiaW5wdXQueWVhcmVtYWlsIikudmFsKCkpO2Euc2V0dGluZ3MuQURGPXttYWtlOmIsbW9kZWw6ZCx5ZWFyOmUsc3RvY2tOdW1iZXI6JCgiI3BvcHVwc3RvY2tudW1iZXIiKS52YWwoKX19O2EubG9nRXZlbnQ9ZnVuY3Rpb24oYil7dmFyIGQ9YS5zZXR0aW5ncy5mb3JtO2Q9ZC5vZmZlcnR5cGU\/ZC5vZmZlcnR5cGU6IkVNQUlMSURfIitkLmVtYWlsaWQ7aWYoIWIpcmV0dXJuITE7JChhLnRhcmdldCkudHJpZ2dlcihiKTtpZigicG9wdXAubGVhZF9zZW50Ij09Yil7dmFyIGU9ay5yZXBsYWNlKC8oXlthLXpdezF9KS9nLGZ1bmN0aW9uKGwpe3JldHVybiBsLnRvVXBwZXJDYXNlKCl9KSxoPWQyY21lZGlhLnBhZ2VEZXBhcnRtZW50KCk7Z2FUcmFjaygiYy5fdHJhY2tFdmVudCIsIlBvcHVwLWxlYWRzIixlLGgsCjEpfSJ1bmRlZmluZWQiIT10eXBlb2YgYWN0aXZlVXNlclByb2ZpbGVNbmcmJiJ1bmRlZmluZWQiIT10eXBlb2YgYWN0aXZlVXNlclByb2ZpbGVNbmcubG9nUGFnZVZpZXdFdmVudD8oInVuZGVmaW5lZCIhPT10eXBlb2YgZGVidWcmJmRlYnVnKCJMb2cgRXZlbnQiLGIsZCxhKSxhY3RpdmVVc2VyUHJvZmlsZU1uZy5sb2dQYWdlVmlld0V2ZW50KGIsZCkpOiJ1bmRlZmluZWQiIT09dHlwZW9mIGRlYnVnJiZkZWJ1ZygiIVVOTE9HR0VEIEVWRU5UISIsYixkKX07YS5pc0NvbnRlbnRMb2FkZWQ9ZnVuY3Rpb24oKXtpZighYS50YXJnZXRbMF0uaGFzQXR0cmlidXRlKCJkYXRhLWxhenlsb2FkaWQiKSlyZXR1cm4hMDt2YXIgYj0wPT09YS50YXJnZXQuaHRtbCgpLnRyaW0oKS5sZW5ndGgsZD1hLnNldHRpbmdzLmNvbnRlbnRMb2FkZWR8fCExO3JldHVybiFiJiZkfTthLmxvYWQ9ZnVuY3Rpb24oYil7YS5pc0NvbnRlbnRMb2FkZWQoKT8oYS5zZXR0aW5ncy5jb250ZW50TG9hZGVkPSEwLGIoKSk6CiQuYWpheCh7dHlwZToiR0VUIixjYWNoZTohMCx1cmw6KCJFTkdMSVNIIj09PSQoIiNhY3RpdmVzaXRlbGFuZ3VhZ2UiKS52YWwoKT8iL2VuIjoiL2ZyIikrIi9hamF4L2dldFBvcHVwQ29udGVudCIsZGF0YTp7d3N3aWR0aDoiMCIsXzphLnNldHRpbmdzLmlkZW50LGlkOmEudGFyZ2V0LmRhdGEoImxhenlsb2FkaWQiKSxtYWtlOiQoIiNsYXN0dmlld2VkbWFrZSIpLnZhbCgpfHwiIixtb2RlbDokKCIjbGFzdHZpZXdlZG1vZGVsIikudmFsKCl8fCIiLHllYXI6JCgiI2xhc3R2aWV3ZWR5ZWFyIikudmFsKCl8fCIiLHRyaW06JCgiI2xhc3R2aWV3ZWR0cmltIikudmFsKCl8fCIiLHN0b2NrTnVtYmVyOiQoIiNsYXN0dmlld2Vkc3RvY2tudW1iZXIiKS52YWwoKXx8IiIsdmVoaWNsZUlkOiQoIiN0b3BjYXJpZCIpLnZhbCgpfHwwfSxzdWNjZXNzOmZ1bmN0aW9uKGQpe2EudGFyZ2V0Lmh0bWwoZCk7YS5zZXR0aW5ncy5jb250ZW50TG9hZGVkPSEwOyJmdW5jdGlvbiI9PT0KdHlwZW9mIGFkZE5vVHJhbnNsYXRlRW1haWxEZWYmJmFkZE5vVHJhbnNsYXRlRW1haWxEZWYoKTtiKCl9fSl9O2EuY3JlYXRlQ29uZmlybUZvcm09ZnVuY3Rpb24oKXt2YXIgYj1hLnRhcmdldC5hdHRyKCJpZCIpKyJfY29uZmlybSI7MT4kKCIjY29uZmlybV9mb3JtcyIpLmxlbmd0aCYmJCgiYm9keSIpLmFwcGVuZCgkKCI8ZGl2PjwvZGl2PiIpLmF0dHIoImlkIiwiY29uZmlybV9mb3JtcyIpKTtpZigxPiQoIiMiK2IpLmxlbmd0aCYmYS5zZXR0aW5ncy5jb25maXJtRm9ybSYmMCE9PWEuc2V0dGluZ3MuY29uZmlybUZvcm0ubGVuZ3RoKXtiPSQoIjxmb3JtPjwvZm9ybT4iKS5hdHRyKCJpZCIsYikuYXR0cigibWV0aG9kIiwiUE9TVCIpLmF0dHIoImFjdGlvbiIsIi9jb25maXJtYXRpb24uaHRtbCIpLmF0dHIoInRhcmdldCIsImlmcmFtZWd0cmFjayIpO3ZhciBkPSQoIiNhdXRvYXViYWluZV9wb3B1cCIpO2Q9W3tuYW1lOiJndGFnX2NvbnZlcnNpb24iLHZhbHVlOiJndGFnIn0se25hbWU6ImxlYWRfZGVwYXJ0bWVudCIsCnZhbHVlOiIifSx7bmFtZToibGVhZFR5cGUiLHZhbHVlOiIifSx7bmFtZToicGFnZUlEIix2YWx1ZToiIn0se25hbWU6ImN1cnJlbnRVUkwiLHZhbHVlOiIifSx7bmFtZToiYnV0dG9uUG9zaXRpb24iLHZhbHVlOiIifSx7bmFtZToiZGVhbGVyTmFtZSIsdmFsdWU6IiJ9LHtuYW1lOiJpc0Z1bGxXaWR0aCIsdmFsdWU6IiJ9LHtuYW1lOiJpc01vYmlsZU5ld1ZEUCIsdmFsdWU6IiJ9LHtuYW1lOiJ0ZXN0bW9kZSIsdmFsdWU6IjAiLGNsYXNzOiJ0ZXN0bW9kZSJ9LHtuYW1lOiJmcm9tQXV0b0F1YmFpbmUiLHZhbHVlOjA8ZC5sZW5ndGgmJiJmYWxzZSIhPWQudmFsKCl9XTtbXS5wdXNoLmFwcGx5KGQsYS5zZXR0aW5ncy5jb25maXJtRm9ybSk7Zm9yKHZhciBlPTA7ZTxkLmxlbmd0aDtlKyspJCgiPGlucHV0IC8+IikuYXR0cigidHlwZSIsImhpZGRlbiIpLmF0dHIoZFtlXSkuYXBwZW5kVG8oYik7JCgiI2NvbmZpcm1fZm9ybXMiKS5hcHBlbmQoYik7Yi5vbigic3VibWl0IixvbkNvbmZpcm1TdWJtaXQpfTE+CiQoIiNndHJhY2tGcmFtZSIpLmxlbmd0aCYmJCgiPGlmcmFtZT48L2lmcmFtZT4iKS5hdHRyKHt3aWR0aDoxLGhlaWdodDoxLGZyYW1lQm9yZGVyOjAsaWQ6Imd0cmFja0ZyYW1lIixuYW1lOiJpZnJhbWVndHJhY2siLHN0eWxlOiJ3aWR0aDogMXB4OyBoZWlnaHQ6IDFweDsifSkuYXBwZW5kVG8oIiNjb25maXJtX2Zvcm1zIil9O3JldHVybiBhfTsKalF1ZXJ5KGZ1bmN0aW9uKGMpe3ZhciBtPWMoIiNzaXRlY29tcGlsZWlkIikubGVuZ3RoP2MoIiNzaXRlY29tcGlsZWlkIikudmFsKCk6TWF0aC5yb3VuZCgxRTcqTWF0aC5yYW5kb20oKSkudG9TdHJpbmcoMTYpO2MuZm4ucG9wdXBpemU9ZnVuY3Rpb24oYSl7YT1hP2E6e307dmFyIGs9e3JldmVhbDp7YW5pbWF0aW9uOiJmYWRlQW5kUG9wIixhbmltYXRpb25zcGVlZDozMDAsY2xvc2VvbmJhY2tncm91bmRjbGljazohMSxkaXNtaXNzbW9kYWxjbGFzczoiY2xvc2UtcmV2ZWFsLW1vZGFsIn0sZm9ybTp7ZW1haWxpZDowLG9mZmVydHlwZTowLG5hbWU6MCxzZW5kVG86MCxzZW5kVG9BREY6MCxPS0J1dHRvbkNsYXNzOiJzdWJtaXRCdG4iLENhbmNlbEJ1dHRvbkNsYXNzOiJjYW5jZWxCdG4iLHNob3dFbWFpbENvbmZpcm1hdGlvbjohMX0sQURGOnttYWtlOiIiLG1vZGVsOiIiLHllYXI6IiIsc3RvY2tOdW1iZXI6IiJ9LGlkZW50Om0sZW5kUG9wdXBRdWV1ZTohMSxwcmlvcml0eToxLGFuaW1hdGlvbjohMSwKbm90cmFuc2Zvcm06ITEsZmlsbGZsYWc6ITEsc3VibWl0dGVkOiExLHNob3dvbmxvYWQ6ITEsY29va2llTmFtZTohMSxjb29raWVEdXJhdGlvbjo2MCxjbG9zZU9uU3VibWl0OiEwLGFkZGVkQ2xhc3NlczoiIn07aWYoMT09dGhpcy5sZW5ndGgpe3ZhciBiPXRoaXMuZGF0YSgicG9wdXBTZXR0aW5ncyIpP3RoaXMuZGF0YSgicG9wdXBTZXR0aW5ncyIpOnt9O3NldHRpbmdzPXt9O2MuZXh0ZW5kKCEwLHNldHRpbmdzLGssYixhKTshc2V0dGluZ3MuY29va2llTmFtZSYmMDx0aGlzLmF0dHIoImlkIikubGVuZ3RoJiYoc2V0dGluZ3MuY29va2llTmFtZT0iY3BwXyIrdGhpcy5hdHRyKCJpZCIpKTshc2V0dGluZ3MubmFtZSYmMDx0aGlzLmF0dHIoImlkIikubGVuZ3RoJiYoc2V0dGluZ3MubmFtZT10aGlzLmF0dHIoImlkIikucmVwbGFjZSgvQ29udGFpbmVyXGIvLCIiKSk7dGhpcy5kYXRhKCJwb3B1cFNldHRpbmdzIixzZXR0aW5ncyk7YT1uZXcgcG9wdXBpemVyKHRoaXMsc2V0dGluZ3MpOwpzZXR0aW5ncy5pbml0aWFsaXplZHx8KGEuaW5pdCgpLHBvcHVwU3VwZXJ2aXNvci5wb3B1cHMucHVzaChhKSk7cmV0dXJuIGF9cG9wdXBzPVtdO3RoaXMuZWFjaChmdW5jdGlvbigpe3BvcHVwcy5wdXNoKGModGhpcykucG9wdXBpemUoKSl9KTtyZXR1cm4gcG9wdXBzfTtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dmFyIGE9bnVsbDtjKHdpbmRvdykub24oInRvdWNobW92ZSwgb25zY3JvbGwsIHNjcm9sbCBtb3VzZXdoZWVsIHJlc2l6ZSIsZnVuY3Rpb24oayl7Y2xlYXJUaW1lb3V0KGEpO2E9c2V0VGltZW91dChwb3B1cFN1cGVydmlzb3IucmVwb3NpdGlvbiwxRTMpfSl9LDFFMyl9KTsKLyoqIC9qcy92dGlwLmpzICoqLwp2YXIgX19fZDJjX3Z0aXBqc19jX29uPSIyMDI1LTA1LTIzIDE3OjEwOjQ3IjsndXNlIHN0cmljdCc7dmFyIF9fX2QyY192dGlwanNfY19vbj0iMjAyNC0wMy0yNSAxMjozNTozOSI7InVzZSBzdHJpY3QiOwp0aGlzLnZ0aXA9ZnVuY3Rpb24oKXt0aGlzLnhPZmZzZXQ9LTEwO3RoaXMueU9mZnNldD0xMDskKCIudnRpcCIpLm9mZigpLm9uKCJob3ZlciIsZnVuY3Rpb24oYSl7dGhpcy50PXRoaXMudGl0bGU7dGhpcy50aXRsZT0iIjt0aGlzLnRvcD1hLnBhZ2VZK3lPZmZzZXQ7dGhpcy5sZWZ0PWEucGFnZVgreE9mZnNldDskKCJib2R5IikuYXBwZW5kKCc8cCBpZD0idnRpcCIgc3R5bGU9InotaW5kZXg6MTAwMDAwOyI+PGltZyBpZD0idnRpcEFycm93IiAvPicrdGhpcy50KyI8L3A+Iik7JCgicCN2dGlwICN2dGlwQXJyb3ciKS5hdHRyKCJzcmMiLCIvaW1hZ2VzL3NjcmF0Y2gvdnRpcF9hcnJvdy5wbmciKTskKCJwI3Z0aXAiKS5jc3MoInRvcCIsdGhpcy50b3ArInB4IikuY3NzKCJsZWZ0Iix0aGlzLmxlZnQrInB4IikuZmFkZUluKCJzbG93Iil9LGZ1bmN0aW9uKCl7dGhpcy50aXRsZT10aGlzLnQ7JCgicCN2dGlwIikuZmFkZU91dCgic2xvdyIpLnJlbW92ZSgpfSkub24oIm1vdXNlbW92ZSIsCmZ1bmN0aW9uKGEpe3RoaXMudG9wPWEucGFnZVkreU9mZnNldDt0aGlzLmxlZnQ9YS5wYWdlWCt4T2Zmc2V0OyQoInAjdnRpcCIpLmNzcygidG9wIix0aGlzLnRvcCsicHgiKS5jc3MoImxlZnQiLHRoaXMubGVmdCsicHgiKX0pfTtqUXVlcnkoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKGEpe3Z0aXAoKX0pOwovKiogL2pzL3dTY3JhdGNoUGFkLmpzICoqLwp2YXIgX19fZDJjX3dTY3JhdGNoUGFkanNfY19vbj0iMjAyNS0wNS0yMyAxNzoxMzozNyI7J3VzZSBzdHJpY3QnO3ZhciBfX19kMmNfd1NjcmF0Y2hQYWRqc19jX29uPSIyMDI0LTA0LTEyIDE4OjMwOjA2IjsidXNlIHN0cmljdCI7CihmdW5jdGlvbihkKXtmdW5jdGlvbiBoKGIsYSl7dGhpcy5zcD1udWxsO3RoaXMuc2V0dGluZ3M9Yjt0aGlzLiRlbGVtPWE7dGhpcy5lbmFibGVkPSEwO3RoaXMuc2NyYXRjaD0hMTt0aGlzLmN0eD10aGlzLmNhbnZhcz1udWxsO3JldHVybiB0aGlzfWQuZm4ud1NjcmF0Y2hQYWQ9ZnVuY3Rpb24oYixhKXtpZigiZW5hYmxlIj09YilkKHRoaXMpLmRhdGEoIl93U2NyYXRjaFBhZCIpLmVuYWJsZSgpO2Vsc2V7aWYoIm9iamVjdCI9PT10eXBlb2YgYilhPWI7ZWxzZSBpZigic3RyaW5nIj09dHlwZW9mIGIpe3ZhciBjPVtdLGY9dGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIGU9ZCh0aGlzKS5kYXRhKCJfd1NjcmF0Y2hQYWQiKTtlJiYoInJlc2V0Ij09PWI\/ZS5yZXNldCgpOiJjbGVhciI9PT1iP2UuY2xlYXIoKToiZW5hYmxlZCI9PT1iP2UuZW5hYmxlZD0hMD09PWE6dm9pZCAwIT09ZC5mbi53U2NyYXRjaFBhZC5kZWZhdWx0U2V0dGluZ3NbYl0mJih2b2lkIDAhPT1hP2Uuc2V0dGluZ3NbYl09CmE6Yy5wdXNoKGUuc2V0dGluZ3NbYl0pKSl9KTtyZXR1cm4gMT09PWMubGVuZ3RoP2NbMF06MDxjLmxlbmd0aD9jOmZ9YT1kLmV4dGVuZCh7fSxkLmZuLndTY3JhdGNoUGFkLmRlZmF1bHRTZXR0aW5ncyxhfHx7fSk7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciBlPWQodGhpcyksZz1qUXVlcnkuZXh0ZW5kKCEwLHt9LGEpO2lmKCFkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKS5nZXRDb250ZXh0KXt2YXIgaz0iQnJvd3NlciBkb2VzIG5vdCBzdXBwb3J0IEhUTUw1IGNhbnZhcywgcGxlYXNlIHVwZ3JhZGUgdG8gYSBtb3JlIG1vZGVybiBicm93c2VyLiI7ZCgiI3RleHREb2VzTm90U3VwcG9ydEhUTUw1IikubGVuZ3RoJiYoaz1kKCIjdGV4dERvZXNOb3RTdXBwb3J0SFRNTDUiKS52YWwoKSk7ZS5jc3MoInBhZGRpbmctdG9wIiwiNjBweCIpO2UuY3NzKCJoZWlnaHQiLCI1NXB4Iik7ZS5odG1sKGspOyJ1bmRlZmluZWQiIT10eXBlb2YgZy5pZFRvQWRkJiZkKCIjYmxvY2thZ2UiKwpnLmlkVG9BZGQpLmxlbmd0aCYmZCgiI2Jsb2NrYWdlIitnLmlkVG9BZGQpLmNzcygidG9wIixwYXJzZUludChkKCIjYmxvY2thZ2UiK2cuaWRUb0FkZCkuY3NzKCJ0b3AiKSkrMzArInB4Iik7cmV0dXJuITF9Zz1uZXcgaChnLGUpO2UuYXBwZW5kKGcuZ2VuZXJhdGUoKSk7Zy5waXhlbHM9Zy5jYW52YXMud2lkdGgqZy5jYW52YXMuaGVpZ2h0O2UuZGF0YSgiX3dTY3JhdGNoUGFkIixnKTtnLmluaXQoKX0pfX07ZC5mbi53U2NyYXRjaFBhZC5kZWZhdWx0U2V0dGluZ3M9e3dpZHRoOjYwMCxoZWlnaHQ6MTE1LGltYWdlOiIvaW1hZ2VzL3NjcmF0Y2gvc2xpZGUyLnBuZyIsaW1hZ2UyOiIvaW1hZ2VzL3BvcHVwcy9zdHlsZTIvc2NyYXRjaC5wbmciLGltYWdlRGlzYWJsZWQ6Ii9pbWFnZXMvcG9wdXBzL3N0eWxlMi9zY3JhdGNoX2Rpc2FibGVkLnBuZyIsY29sb3I6IiMzMzY2OTkiLG92ZXJsYXk6Im5vbmUiLHNpemU6MzAscmVhbHRpbWVQZXJjZW50OiExLHNjcmF0Y2hEb3duOm51bGwsc2NyYXRjaFVwOm51bGwsCnNjcmF0Y2hNb3ZlOm51bGwsY3Vyc29yOm51bGwsaWRUb0FkZDoiIixiYWNrZ3JvdW5kQ29sb3I6IiMwMTBhMjgiLGVuYWJsZWQ6ITB9O2gucHJvdG90eXBlPXtnZW5lcmF0ZTpmdW5jdGlvbigpe3RoaXMuY2FudmFzPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpO3RoaXMuY3R4PXRoaXMuY2FudmFzLmdldENvbnRleHQoIjJkIik7dGhpcy5zcD1kKCI8ZGl2PjwvZGl2PiIpLmNzcyh7cG9zaXRpb246InJlbGF0aXZlIn0pLmFwcGVuZChkKHRoaXMuY2FudmFzKS5hdHRyKCJ3aWR0aCIsdGhpcy5zZXR0aW5ncy53aWR0aCsicHgiKS5hdHRyKCJoZWlnaHQiLHRoaXMuc2V0dGluZ3MuaGVpZ2h0KyJweCIpLmF0dHIoInN0eWxlIiwicG9zaXRpb246YWJzb2x1dGU7bGVmdDotMnB4O3RvcDotMXB4O3otaW5kZXg6MTsiKSk7dGhpcy5zZXR0aW5ncy5lbmFibGVkJiZ0aGlzLmVuYWJsZSgpO3JldHVybiB0aGlzLnNwfSxlbmFibGU6ZnVuY3Rpb24oKXt0aGlzLmRyYXdJbWFnZSh0aGlzLnNldHRpbmdzLmltYWdlMiwKITApO3RoaXMuYmluZEJyb3dzZXIoKTt0aGlzLmJpbmRNb2JpbGUodGhpcy5zcCl9LGJpbmRCcm93c2VyOmZ1bmN0aW9uKGIpe3ZhciBhPXRoaXM7ZCh0aGlzLmNhbnZhcykub24oIm1vdXNlZG93biIsZnVuY3Rpb24oYyl7aWYoIWEuZW5hYmxlZClyZXR1cm4hMDtjLnByZXZlbnREZWZhdWx0KCk7Yy5zdG9wUHJvcGFnYXRpb24oKTthLmNhbnZhc19vZmZzZXQ9ZChhLmNhbnZhcykub2Zmc2V0KCk7YS5zY3JhdGNoPSEwO2Euc2NyYXRjaEZ1bmMoYyxhLCJEb3duIil9KS5vbigibW91c2Vtb3ZlIixmdW5jdGlvbihjKXtjLnByZXZlbnREZWZhdWx0KCk7Yy5zdG9wUHJvcGFnYXRpb24oKTthLnNjcmF0Y2gmJmEuc2NyYXRjaEZ1bmMoYyxhLCJNb3ZlIil9KS5vbigibW91c2V1cCIsZnVuY3Rpb24oYyl7Yy5wcmV2ZW50RGVmYXVsdCgpO2Muc3RvcFByb3BhZ2F0aW9uKCk7YS5zY3JhdGNoJiYoYS5zY3JhdGNoPSExLGEuc2NyYXRjaEZ1bmMoYyxhLCJVcCIpKX0pfSxiaW5kTW9iaWxlOmZ1bmN0aW9uKGIpe2Iub24oInRvdWNoc3RhcnQgdG91Y2htb3ZlIHRvdWNoZW5kIHRvdWNoY2FuY2VsIiwKZnVuY3Rpb24oKXt2YXIgYT1ldmVudC5jaGFuZ2VkVG91Y2hlc1swXTtzd2l0Y2goZXZlbnQudHlwZSl7Y2FzZSAidG91Y2hzdGFydCI6dmFyIGM9Im1vdXNlZG93biI7YnJlYWs7Y2FzZSAidG91Y2htb3ZlIjpjPSJtb3VzZW1vdmUiO2JyZWFrO2Nhc2UgInRvdWNoZW5kIjpjPSJtb3VzZXVwIjticmVhaztkZWZhdWx0OnJldHVybn12YXIgZj1kb2N1bWVudC5jcmVhdGVFdmVudCgiTW91c2VFdmVudCIpO2YuaW5pdE1vdXNlRXZlbnQoYywhMCwhMCx3aW5kb3csMSxhLnNjcmVlblgsYS5zY3JlZW5ZLGEuY2xpZW50WCxhLmNsaWVudFksITEsITEsITEsITEsMCxudWxsKTthLnRhcmdldC5kaXNwYXRjaEV2ZW50KGYpO2V2ZW50LnByZXZlbnREZWZhdWx0KCl9KX0saW5pdDpmdW5jdGlvbigpe3RoaXMuc3AuY3NzKCJ3aWR0aCIsdGhpcy5zZXR0aW5ncy53aWR0aC0yKTt0aGlzLnNwLmNzcygiaGVpZ2h0Iix0aGlzLnNldHRpbmdzLmhlaWdodC0yKTt0aGlzLnNwLmNzcygiY3Vyc29yIix0aGlzLnNldHRpbmdzLmN1cnNvcj8KJ3VybCgiJyt0aGlzLnNldHRpbmdzLmN1cnNvcisnIiksIGRlZmF1bHQnOiJkZWZhdWx0Iik7ZCh0aGlzLmNhbnZhcykuY3NzKHtjdXJzb3I6dGhpcy5zZXR0aW5ncy5jdXJzb3I\/J3VybCgiJyt0aGlzLnNldHRpbmdzLmN1cnNvcisnIiksIGRlZmF1bHQnOiJkZWZhdWx0In0pO3RoaXMuY2FudmFzLndpZHRoPXRoaXMuc2V0dGluZ3Mud2lkdGg7dGhpcy5jYW52YXMuaGVpZ2h0PXRoaXMuc2V0dGluZ3MuaGVpZ2h0O3RoaXMucGl4ZWxzPXRoaXMuY2FudmFzLndpZHRoKnRoaXMuY2FudmFzLmhlaWdodDt0aGlzLnNldHRpbmdzLmltYWdlMj8odGhpcy5kcmF3SW1hZ2UodGhpcy5zZXR0aW5ncy5pbWFnZTIpLHRoaXMuc2V0dGluZ3MuZW5hYmxlZHx8dGhpcy5kcmF3SW1hZ2UodGhpcy5zZXR0aW5ncy5pbWFnZURpc2FibGVkLCEwKSk6KCJub25lIiE9dGhpcy5zZXR0aW5ncy5vdmVybGF5Pyh0aGlzLnNldHRpbmdzLmltYWdlJiZ0aGlzLmRyYXdJbWFnZSh0aGlzLnNldHRpbmdzLmltYWdlKSwKdGhpcy5jdHguZ2xvYmFsQ29tcG9zaXRlT3BlcmF0aW9uPXRoaXMuc2V0dGluZ3Mub3ZlcmxheSk6dGhpcy5zZXRCZ0ltYWdlKCksdGhpcy5jdHguZmlsbFN0eWxlPXRoaXMuc2V0dGluZ3MuY29sb3IsdGhpcy5jdHguYmVnaW5QYXRoKCksdGhpcy5jdHgucmVjdCgwLDAsdGhpcy5zZXR0aW5ncy53aWR0aCx0aGlzLnNldHRpbmdzLmhlaWdodCksdGhpcy5jdHguZmlsbCgpKX0scmVzZXQ6ZnVuY3Rpb24oKXt0aGlzLmN0eC5nbG9iYWxDb21wb3NpdGVPcGVyYXRpb249InNvdXJjZS1vdmVyIjt0aGlzLmluaXQoKX0sY2xlYXI6ZnVuY3Rpb24oKXt0aGlzLmN0eC5jbGVhclJlY3QoMCwwLHRoaXMuc2V0dGluZ3Mud2lkdGgsdGhpcy5zZXR0aW5ncy5oZWlnaHQpfSxzZXRCZ0ltYWdlOmZ1bmN0aW9uKCl7dGhpcy5zZXR0aW5ncy5pbWFnZSYmKHRoaXMuc3AuYWRkQ2xhc3MoInNjcmF0Y2hEaXZUZXh0IiksdGhpcy5zcC5jc3MoImJhY2tncm91bmQtY29sb3IiLHRoaXMuc2V0dGluZ3MuYmFja2dyb3VuZENvbG9yKSwKdGhpcy5zcC5hcHBlbmQoIjxkaXYgaWQ9J3NjcmF0Y2hEaXZUZXh0Iit0aGlzLnNldHRpbmdzLmlkVG9BZGQrIicgc3R5bGU9J3RleHQtYWxpZ246Y2VudGVyO2ZvbnQtc2l6ZTozMHB4O2NvbG9yOiNmZmY7bWFyZ2luLWxlZnQ6MHB4O3BhZGRpbmctbGVmdDoxMHB4O3BhZGRpbmctcmlnaHQ6MTBweDtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MjBweDt6LWluZGV4OjA7Jz4iK2QoIiNzY3JhdGNoSW5wdXRUZXh0Iit0aGlzLnNldHRpbmdzLmlkVG9BZGQpLnZhbCgpKyI8L2Rpdj4iKSl9LGRyYXdJbWFnZTpmdW5jdGlvbihiLGEpe3ZhciBjPXRoaXMsZj1uZXcgSW1hZ2U7Zi5zcmM9YjtkKGYpLm9uKCJsb2FkIixmdW5jdGlvbigpe2MuY3R4LmRyYXdJbWFnZShmLDAsMCk7InVuZGVmaW5lZCIhPXR5cGVvZiBhJiZhfHxjLnNldEJnSW1hZ2UoKX0pfSxzY3JhdGNoRnVuYzpmdW5jdGlvbihiLGEsYyl7Yi5wYWdlWD1NYXRoLmZsb29yKGIucGFnZVgtYS5jYW52YXNfb2Zmc2V0LmxlZnQpO2IucGFnZVk9Ck1hdGguZmxvb3IoYi5wYWdlWS1hLmNhbnZhc19vZmZzZXQudG9wKTthWyJzY3JhdGNoIitjXShiLGEpOyh0aGlzLnNldHRpbmdzLnJlYWx0aW1lUGVyY2VudHx8IlVwIj09YykmJmEuc2V0dGluZ3NbInNjcmF0Y2giK2NdJiZhLnNldHRpbmdzWyJzY3JhdGNoIitjXS5hcHBseShhLFtiLGEuc2NyYXRjaFBlcmNlbnRhZ2UoYSldKX0sc2NyYXRjaFBlcmNlbnRhZ2U6ZnVuY3Rpb24oYil7Zm9yKHZhciBhPTAsYz1iLmN0eC5nZXRJbWFnZURhdGEoMCwwLGIuY2FudmFzLndpZHRoLGIuY2FudmFzLmhlaWdodCksZj0wLGU9Yy5kYXRhLmxlbmd0aDtmPGU7Zis9NCkwPT1jLmRhdGFbZl0mJjA9PWMuZGF0YVtmKzFdJiYwPT1jLmRhdGFbZisyXSYmMD09Yy5kYXRhW2YrM10mJmErKztyZXR1cm4gYS9iLnBpeGVscyoxMDB9LHNjcmF0Y2hEb3duOmZ1bmN0aW9uKGIsYSl7YS5jdHguZ2xvYmFsQ29tcG9zaXRlT3BlcmF0aW9uPSJkZXN0aW5hdGlvbi1vdXQiO2EuY3R4LmxpbmVKb2luPSJyb3VuZCI7CmEuY3R4LmxpbmVDYXA9InJvdW5kIjthLmN0eC5zdHJva2VTdHlsZT1hLnNldHRpbmdzLmNvbG9yO2EuY3R4LmxpbmVXaWR0aD1hLnNldHRpbmdzLnNpemU7YS5jdHguYmVnaW5QYXRoKCk7YS5jdHguYXJjKGIucGFnZVgsYi5wYWdlWSxhLnNldHRpbmdzLnNpemUvMiwwLDIqTWF0aC5QSSwhMCk7YS5jdHguY2xvc2VQYXRoKCk7YS5jdHguZmlsbCgpO2EuY3R4LmJlZ2luUGF0aCgpO2EuY3R4Lm1vdmVUbyhiLnBhZ2VYLGIucGFnZVkpfSxzY3JhdGNoTW92ZTpmdW5jdGlvbihiLGEpe2EuY3R4LmxpbmVUbyhiLnBhZ2VYLGIucGFnZVkpO2EuY3R4LnN0cm9rZSgpfSxzY3JhdGNoVXA6ZnVuY3Rpb24oYixhKXthLmN0eC5jbG9zZVBhdGgoKX19fSkoalF1ZXJ5KTsKLyoqIC9qcy9zd2ZzdG9yZS5qcyAqKi8KdmFyIF9fX2QyY19zd2ZzdG9yZWpzX2Nfb249IjIwMjUtMDUtMjMgMTc6MTI6MjEiOyd1c2Ugc3RyaWN0Jzt2YXIgX19fZDJjX3N3ZnN0b3JlanNfY19vbj0iMjAyNC0wMS0zMSAxNDozNzo1MyI7InVzZSBzdHJpY3QiO19fX2QyY19zd2ZzdG9yZWpzX2Nfb249IjIwMjMtMDEtMTIgMTE6MzU6MTgiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfc3dmc3RvcmVqc19jX29uPSIyMDIzLTAxLTEyIDEwOjQ0OjU4IjsidXNlIHN0cmljdCI7X19fZDJjX3N3ZnN0b3JlanNfY19vbj0iMjAyMS0xMi0xNSAxMjo0MjozMSI7InVzZSBzdHJpY3QiOwooZnVuY3Rpb24oKXtmdW5jdGlvbiBnKGEpe2lmKCJmdW5jdGlvbiI9PT10eXBlb2YgYSl0aHJvdyJTd2ZTdG9yZSBFcnJvcjogRnVuY3Rpb25zIGNhbm5vdCBiZSB1c2VkIGFzIGtleXMgb3IgdmFsdWVzLiI7fXZhciBoPTAsbT0vW15hLXowLTlfXS9naTt3aW5kb3cuU3dmU3RvcmU9ZnVuY3Rpb24oYSl7ZnVuY3Rpb24gZShkKXt2YXIgYj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGIpO2IuaWQ9IlN3ZlN0b3JlXyIrYS5uYW1lc3BhY2UrIl8iK2grKztkfHwoYi5zdHlsZS5wb3NpdGlvbj0iYWJzb2x1dGUiLGIuc3R5bGUudG9wPSItMjAwMHB4IixiLnN0eWxlLmxlZnQ9Ii0yMDAwcHgiKTtyZXR1cm4gYn1hPWF8fHt9O3ZhciBmPXtzd2ZfdXJsOiJzdG9yYWdlLnN3ZiIsbmFtZXNwYWNlOiJzd2ZzdG9yZSIscGF0aDpudWxsLGRlYnVnOiExLHRpbWVvdXQ6MTAsb25yZWFkeTpudWxsLG9uZXJyb3I6bnVsbH07Zm9yKGMgaW4gZilmLmhhc093blByb3BlcnR5KGMpJiYKKGEuaGFzT3duUHJvcGVydHkoYyl8fChhW2NdPWZbY10pKTthLm5hbWVzcGFjZT1hLm5hbWVzcGFjZS5yZXBsYWNlKG0sIl8iKTtpZih3aW5kb3cuU3dmU3RvcmVbYS5uYW1lc3BhY2VdKXRocm93IlRoZXJlIGlzIGFscmVhZHkgYW4gaW5zdGFuY2Ugb2YgU3dmU3RvcmUgdXNpbmcgdGhlICciK2EubmFtZXNwYWNlKyInIG5hbWVzcGFjZS4gVXNlIHRoYXQgaW5zdGFuY2Ugb3Igc3BlY2lmeSBhbiBhbHRlcm5hdGUgbmFtZXNwYWNlIGluIHRoZSBjb25maWcuIjt0aGlzLmNvbmZpZz1hO2lmKGEuZGVidWcpe2lmKCJ1bmRlZmluZWQiPT09dHlwZW9mIGNvbnNvbGUpe3ZhciBuPWUoITApO3dpbmRvdy5jb25zb2xlPXtsb2c6ZnVuY3Rpb24oZCl7dmFyIGI9ZSghMCk7Yi5pbm5lckhUTUw9ZDtuLmFwcGVuZENoaWxkKGIpfX19dGhpcy5sb2c9ZnVuY3Rpb24oZCxiLGspe2I9InN3ZlN0b3JlIj09PWI\/InN3ZiI6YjtpZigidW5kZWZpbmVkIiE9PXR5cGVvZiBjb25zb2xlW2RdKWNvbnNvbGVbZF0oIlN3ZlN0b3JlIC0gIisKYS5uYW1lc3BhY2UrIiAoIitiKyIpOiAiK2spO2Vsc2UgY29uc29sZS5sb2coIlN3ZlN0b3JlIC0gIithLm5hbWVzcGFjZSsiOiAiK2QrIiAoIitiKyIpOiAiK2spfX1lbHNlIHRoaXMubG9nPWZ1bmN0aW9uKCl7fTt0aGlzLmxvZygiaW5mbyIsImpzIiwiSW5pdGlhbGl6aW5nLi4uIik7U3dmU3RvcmVbYS5uYW1lc3BhY2VdPXRoaXM7Zj1lKGEuZGVidWcpO3ZhciBjPSJTd2ZTdG9yZV8iK2EubmFtZXNwYWNlKyJfIitoKyssbD0ibG9nZm49U3dmU3RvcmUuIithLm5hbWVzcGFjZSsiLmxvZyZhbXA7b25sb2FkPVN3ZlN0b3JlLiIrYS5uYW1lc3BhY2UrIi5vbmxvYWQmYW1wO29uZXJyb3I9U3dmU3RvcmUuIithLm5hbWVzcGFjZSsiLm9uZXJyb3ImYW1wOyIrKGEucGF0aD8iTFNPUGF0aD0iK2EucGF0aCsiJmFtcDsiOiIiKSsiTFNPTmFtZT0iK2EubmFtZXNwYWNlO2YuaW5uZXJIVE1MPSc8b2JqZWN0IGhlaWdodD0iMTAwIiB3aWR0aD0iNTAwIiBjb2RlYmFzZT0iaHR0cHM6Ly9kb3dubG9hZC5tYWNyb21lZGlhLmNvbS9wdWIvc2hvY2t3YXZlL2NhYnMvZmxhc2gvc3dmbGFzaC5jYWIiIGlkPSInKwpjKyciIGNsYXNzaWQ9ImNsc2lkOkQyN0NEQjZFLUFFNkQtMTFjZi05NkI4LTQ0NDU1MzU0MDAwMCI+ICAgIDxwYXJhbSB2YWx1ZT0iJythLnN3Zl91cmwrJyIgbmFtZT0ibW92aWUiPiAgPHBhcmFtIHZhbHVlPSInK2wrJyIgbmFtZT0iRmxhc2hWYXJzIj4gICA8cGFyYW0gdmFsdWU9ImFsd2F5cyIgbmFtZT0iYWxsb3dTY3JpcHRBY2Nlc3MiPiAgPGVtYmVkIGhlaWdodD0iMzc1IiBhbGlnbj0ibWlkZGxlIiB3aWR0aD0iNTAwIiBwbHVnaW5zcGFnZT0iaHR0cHM6Ly93d3cubWFjcm9tZWRpYS5jb20vZ28vZ2V0Zmxhc2hwbGF5ZXIiIGZsYXNodmFycz0iJytsKyciIHR5cGU9ImFwcGxpY2F0aW9uL3gtc2hvY2t3YXZlLWZsYXNoIiBhbGxvd3NjcmlwdGFjY2Vzcz0iYWx3YXlzIiBxdWFsaXR5PSJoaWdoIiBsb29wPSJmYWxzZSIgcGxheT0idHJ1ZSIgbmFtZT0iJytjKyciIGJnY29sb3I9IiNmZmZmZmYiIHNyYz0iJythLnN3Zl91cmwrJyI+PC9vYmplY3Q+Jzt0aGlzLnN3Zj1kb2N1bWVudFtjXXx8CndpbmRvd1tjXTt0aGlzLl90aW1lb3V0PXNldFRpbWVvdXQoZnVuY3Rpb24oKXtTd2ZTdG9yZVthLm5hbWVzcGFjZV0ubG9nKCJlcnJvciIsImpzIiwiVGltZW91dCByZWFjaGVkLCBhc3N1bWluZyAiK2Euc3dmX3VybCsiIGZhaWxlZCB0byBsb2FkIGFuZCBmaXJpbmcgdGhlIG9uZXJyb3IgY2FsbGJhY2suIik7aWYoYS5vbmVycm9yKWEub25lcnJvcigpfSwxRTMqYS50aW1lb3V0KX07U3dmU3RvcmUucHJvdG90eXBlPXt2ZXJzaW9uOiIxLjkiLHJlYWR5OiExLHNldDpmdW5jdGlvbihhLGUpe3RoaXMuX2NoZWNrUmVhZHkoKTtnKGEpO2coZSk7dGhpcy5zd2Yuc2V0KGEsZSl9LGdldDpmdW5jdGlvbihhKXt0aGlzLl9jaGVja1JlYWR5KCk7ZyhhKTtyZXR1cm4gdGhpcy5zd2YuZ2V0KGEpfSxnZXRBbGw6ZnVuY3Rpb24oKXt0aGlzLl9jaGVja1JlYWR5KCk7dmFyIGE9dGhpcy5zd2YuZ2V0QWxsKCk7YS5fX2ZsYXNoQnVnRml4JiZkZWxldGUgYS5fX2ZsYXNoQnVnRml4O3JldHVybiBhfSwKY2xlYXI6ZnVuY3Rpb24oYSl7dGhpcy5fY2hlY2tSZWFkeSgpO2coYSk7dGhpcy5zd2YuY2xlYXIoYSl9LF9jaGVja1JlYWR5OmZ1bmN0aW9uKCl7aWYoIXRoaXMucmVhZHkpdGhyb3ciU3dmU3RvcmUgaXMgbm90IHlldCBmaW5pc2hlZCBpbml0aWFsaXppbmcuIFBhc3MgYSBjb25maWcub25yZWFkeSBjYWxsYmFjayBvciB3YWl0IHVudGlsIHRoaXMucmVhZHkgaXMgdHJ1ZSBiZWZvcmUgdHJ5aW5nIHRvIHVzZSBhIFN3ZlN0b3JlIGluc3RhbmNlLiI7fSxvbmxvYWQ6ZnVuY3Rpb24oKXt2YXIgYT10aGlzO3NldFRpbWVvdXQoZnVuY3Rpb24oKXtjbGVhclRpbWVvdXQoYS5fdGltZW91dCk7YS5yZWFkeT0hMDthLnNldCgiX19mbGFzaEJ1Z0ZpeCIsIjEiKTtpZihhLmNvbmZpZy5vbnJlYWR5KWEuY29uZmlnLm9ucmVhZHkoKX0sMCl9LG9uZXJyb3I6ZnVuY3Rpb24oKXtjbGVhclRpbWVvdXQodGhpcy5fdGltZW91dCk7aWYodGhpcy5jb25maWcub25lcnJvcil0aGlzLmNvbmZpZy5vbmVycm9yKCl9fX0pKCk7Ci8qKiAvanMvanF1ZXJ5LmNvdW50ZG93bi5qcyAqKi8KdmFyIF9fX2QyY19qcXVlcnljb3VudGRvd25qc19jX29uPSIyMDI1LTA1LTIzIDE3OjA5OjMyIjsndXNlIHN0cmljdCc7dmFyIF9fX2QyY19qcXVlcnljb3VudGRvd25qc19jX29uPSIyMDI0LTAxLTMxIDE0OjM2OjEyIjsidXNlIHN0cmljdCI7X19fZDJjX2pxdWVyeWNvdW50ZG93bmpzX2Nfb249IjIwMjMtMDEtMTIgMTE6NDA6MjUiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfanF1ZXJ5Y291bnRkb3duanNfY19vbj0iMjAyMy0wMS0xMiAxMDo1MDoxMCI7InVzZSBzdHJpY3QiO19fX2QyY19qcXVlcnljb3VudGRvd25qc19jX29uPSIyMDIxLTEyLTE1IDEyOjUwOjM1IjsidXNlIHN0cmljdCI7CmpRdWVyeS5mbi5jb3VudGRvd249ZnVuY3Rpb24oaCl7aWYoMTx0aGlzLmxlbmd0aClyZXR1cm4gJCh0aGlzKS5lYWNoKGZ1bmN0aW9uKCl7JCh0aGlzKS5jb3VudGRvd24oaCl9KSx0aGlzO2lmKHRoaXMuZGF0YSgiY291bnRpbmciKSlyZXR1cm4gdGhpczt0aGlzLmRhdGEoImNvdW50aW5nIiwhMCk7dmFyIGE9e3N0ZXBUaW1lOjYwLGZvcm1hdDoiZGQ6aGg6bW06c3MiLHN0YXJ0VGltZToiMDE6MTI6MzI6NTUiLGRpZ2l0SW1hZ2VzOjYsZGlnaXRXaWR0aDo1MyxkaWdpdEhlaWdodDo3Nyx0aW1lckVuZDpmdW5jdGlvbigpe30saW1hZ2U6ImRpZ2l0cy5wbmcifSxjPVtdLGY9ZnVuY3Rpb24oYixkKXtyZXR1cm4gdm9pZCAwIT09ZD9jW2JdLmNzcyh7bWFyZ2luVG9wOmQrInB4In0pOnBhcnNlSW50KGNbYl0uY3NzKCJtYXJnaW5Ub3AiKS5yZXBsYWNlKCJweCIsIiIpKX0saz1mdW5jdGlvbihiKXtjW2JdLl9kaWdpdEluaXRpYWw9LShjW2JdLl9fbWF4KmEuZGlnaXRIZWlnaHQqYS5kaWdpdEltYWdlcyk7CnJldHVybiBmdW5jdGlvbiBlKCl7bXRvcD1mKGIpK2EuZGlnaXRIZWlnaHQ7aWYobXRvcD09YS5kaWdpdEhlaWdodClpZihmKGIsY1tiXS5fZGlnaXRJbml0aWFsKSwwPGIpayhiLTEpKCksMDxiJiZ2b2lkIDAhPT1jW2JdLl9fY29uZG1heCYmY1tiLTFdLl9kaWdpdEluaXRpYWw9PWYoYi0xKSYmZihiLC0oY1tiXS5fX2NvbmRtYXgqYS5kaWdpdEhlaWdodCphLmRpZ2l0SW1hZ2VzKSk7ZWxzZXtjbGVhckludGVydmFsKGwpO2Zvcih2YXIgZz0wO2c8Yy5sZW5ndGg7ZysrKWYoZywwKTthLnRpbWVyRW5kKCl9ZWxzZSBmKGIsbXRvcCksMCE9ZihiKS9hLmRpZ2l0SGVpZ2h0JWEuZGlnaXRJbWFnZXMmJnNldFRpbWVvdXQoZSxhLnN0ZXBUaW1lKSwwPT1tdG9wJiYoY1tiXS5fX2lzbWF4PSEwKX19OyQuZXh0ZW5kKGEsaCk7dGhpcy5jc3Moe2hlaWdodDphLmRpZ2l0SGVpZ2h0LG92ZXJmbG93OiJoaWRkZW4ifSk7KGZ1bmN0aW9uKGIpe2Zvcih2YXIgZD0wLGU9MDtlPGEuc3RhcnRUaW1lLmxlbmd0aDtlKyspe2lmKDA8PQpwYXJzZUludChhLnN0YXJ0VGltZVtlXSkpe2VsZW09JCgnPGRpdiBpZD0iY250XycrZSsnIiBjbGFzcz0iY250RGlnaXQiIC8+JykuY3NzKHtoZWlnaHQ6YS5kaWdpdEhlaWdodCphLmRpZ2l0SW1hZ2VzKjEwLGZsb2F0OiJsZWZ0IixiYWNrZ3JvdW5kOiJ1cmwoJyIrYS5pbWFnZSsiJykiLHdpZHRoOmEuZGlnaXRXaWR0aH0pO2MucHVzaChlbGVtKTtmKGQsLShwYXJzZUludChhLnN0YXJ0VGltZVtlXSkqYS5kaWdpdEhlaWdodCphLmRpZ2l0SW1hZ2VzKSk7Y1tkXS5fX21heD05O3N3aXRjaChhLmZvcm1hdFtlXSl7Y2FzZSAiaCI6Y1tkXS5fX21heD0wPT1kJTI\/Mjo5OzA9PWQlMiYmKGNbZF0uX19jb25kbWF4PTQpO2JyZWFrO2Nhc2UgImQiOmNbZF0uX19tYXg9OTticmVhaztjYXNlICJtIjpjYXNlICJzIjpjW2RdLl9fbWF4PTA9PWQlMj81Ojl9KytkfWVsc2UgZWxlbT0kKCc8ZGl2IGNsYXNzPSJjbnRTZXBhcmF0b3IiLz4nKS5jc3Moe2Zsb2F0OiJsZWZ0In0pLnRleHQoYS5zdGFydFRpbWVbZV0pOwpiLmFwcGVuZChlbGVtKX19KSh0aGlzKTt2YXIgbD1zZXRJbnRlcnZhbChrKGMubGVuZ3RoLTEpLDFFMyl9OwovKiogL2pzL2RhdGVVdGlscy5qcyAqKi8KdmFyIF9fX2QyY19kYXRlVXRpbHNqc19jX29uPSIyMDI1LTA1LTIzIDE3OjA5OjQ2IjsndXNlIHN0cmljdCc7dmFyIF9fX2QyY19kYXRlVXRpbHNqc19jX29uPSIyMDI0LTAxLTMxIDE0OjM2OjAxIjsidXNlIHN0cmljdCI7X19fZDJjX2RhdGVVdGlsc2pzX2Nfb249IjIwMjMtMDEtMTIgMTE6MzQ6MzMiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfZGF0ZVV0aWxzanNfY19vbj0iMjAyMy0wMS0xMiAxMDo0NDoxNCI7InVzZSBzdHJpY3QiO19fX2QyY19kYXRlVXRpbHNqc19jX29uPSIyMDIxLTEyLTE1IDEyOjQxOjIzIjsidXNlIHN0cmljdCI7RGF0ZS5wcm90b3R5cGUuYW1vdW50QmV0d2Vlbj1mdW5jdGlvbihhLGIsYyxkKXtpZigidW5kZWZpbmVkIj09dHlwZW9mIGF8fG51bGw9PWF8fCJ1bmRlZmluZWQiPT10eXBlb2YgYnx8bnVsbD09YilyZXR1cm4gbnVsbDthPWEuZ2V0VGltZSgpO2I9Yi5nZXRUaW1lKCk7cmV0dXJuIE1hdGguZmxvb3IoKGItYS1kKS9jKX07Ci8qKiAvanMvanF1ZXJ5LnJldmVhbC5qcyAqKi8KdmFyIF9fX2QyY19qcXVlcnlyZXZlYWxqc19jX29uPSIyMDI2LTA1LTA1IDE2OjMwOjAzIjsndXNlIHN0cmljdCc7KGZ1bmN0aW9uKGIpe2IoImJvZHkiKS5vbigiY2xpY2siLCJhW2RhdGEtcmV2ZWFsLWlkXSIsZnVuY3Rpb24oYSl7YS5wcmV2ZW50RGVmYXVsdCgpO2E9Yih0aGlzKS5hdHRyKCJkYXRhLXJldmVhbC1pZCIpO2IoIiMiK2EpLnJldmVhbChiKHRoaXMpLmRhdGEoKSl9KTtiLmZuLnJldmVhbD1mdW5jdGlvbihhKXthPWIuZXh0ZW5kKHt9LHthbmltYXRpb246ImZhZGVBbmRQb3AiLGFuaW1hdGlvbnNwZWVkOjMwMCxjbG9zZW9uYmFja2dyb3VuZGNsaWNrOiEwLGRpc21pc3Ntb2RhbGNsYXNzOiJjbG9zZS1yZXZlYWwtbW9kYWwiLGNsb3Nlb25lc2NhcGU6ITB9LGEpO3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXtmdW5jdGlvbiBmKCl7Im9iamVjdCI9PXR5cGVvZiBwb3B1cFN1cGVydmlzb3ImJnNldFRpbWVvdXQocG9wdXBTdXBlcnZpc29yLnJlcG9zaXRpb24sMUUzKTtnPSExfXZhciBjPWIodGhpcyksaD1wYXJzZUludChjLmNzcygidG9wIikpLG09Yy5oZWlnaHQoKSsKaCxnPSExLGQ9YigiLnJldmVhbC1tb2RhbC1iZyIpOzA9PWQubGVuZ3RoJiYoZD1iKCc8ZGl2IGNsYXNzPSJyZXZlYWwtbW9kYWwtYmciIC8+JykuaW5zZXJ0QWZ0ZXIoYykpO2Mub24oInJldmVhbDpvcGVuIixmdW5jdGlvbigpe3ZhciBrPSJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93LmlubmVySGVpZ2h0P3dpbmRvdy5pbm5lckhlaWdodDpiKHdpbmRvdykuaGVpZ2h0KCksbj1iKGMpLm91dGVySGVpZ2h0KCk7YihjKS5vZmZzZXQoKTtiKGRvY3VtZW50KS5zY3JvbGxUb3AoKTt2YXIgbD0vTW9iaS8udGVzdChuYXZpZ2F0b3IudXNlckFnZW50KT81OjIwLGU9KGstbikvMitsO2U9ZTxsfHxrPG4\/bDplOzA8YigiI2QyY19ib2R5Q29udGVudCIpLmxlbmd0aCYmKGUtPWIoIiNkMmNfYm9keUNvbnRlbnQiKS5vZmZzZXQoKS50b3ApOzA8YigiLnNsb3RNYWNoaW5lQ29udGFpbmVyIikubGVuZ3RoJiZiKCIuc2xvdE1hY2hpbmVDb250YWluZXIiKS5zaG93KCk7ZC5vZmYoImNsaWNrLm1vZGFsRXZlbnQiKTsKYigiLiIrYS5kaXNtaXNzbW9kYWxjbGFzcykub2ZmKCJjbGljay5tb2RhbEV2ZW50Iik7Z3x8KGc9ITAsImZhZGVBbmRQb3AiPT1hLmFuaW1hdGlvbiYmKGMuY3NzKHt0b3A6Yihkb2N1bWVudCkuc2Nyb2xsVG9wKCktbSxvcGFjaXR5OjAsdmlzaWJpbGl0eToidmlzaWJsZSJ9KSxkLmZhZGVJbihhLmFuaW1hdGlvbnNwZWVkLzIpLGMuZGVsYXkoYS5hbmltYXRpb25zcGVlZC8yKS5hbmltYXRlKHt0b3A6Yihkb2N1bWVudCkuc2Nyb2xsVG9wKCkrZSsicHgiLG9wYWNpdHk6MX0sYS5hbmltYXRpb25zcGVlZCxmKCkpKSwiZmFkZSI9PWEuYW5pbWF0aW9uJiYoYy5jc3Moe29wYWNpdHk6MCx2aXNpYmlsaXR5OiJ2aXNpYmxlIix0b3A6Yihkb2N1bWVudCkuc2Nyb2xsVG9wKCkrZX0pLGQuZmFkZUluKGEuYW5pbWF0aW9uc3BlZWQvMiksYy5kZWxheShhLmFuaW1hdGlvbnNwZWVkLzIpLmFuaW1hdGUoe29wYWNpdHk6MX0sYS5hbmltYXRpb25zcGVlZCxmKCkpKSwibm9uZSI9PWEuYW5pbWF0aW9uJiYKKGMuY3NzKHt2aXNpYmlsaXR5OiJ2aXNpYmxlIix0b3A6Yihkb2N1bWVudCkuc2Nyb2xsVG9wKCkrZX0pLGQuY3NzKHtkaXNwbGF5OiJibG9jayJ9KSxmKCkpLCJleHRlcm5hbEFuaW1hdGlvbiI9PWEuYW5pbWF0aW9uJiYoYy5jc3Moe3Zpc2liaWxpdHk6InZpc2libGUiLHRvcDpiKGRvY3VtZW50KS5zY3JvbGxUb3AoKStlLGRpc3BsYXk6Im5vbmUifSkuc2hvdygpLGQuY3NzKHtkaXNwbGF5OiJibG9jayJ9KSxmKCkpKTtjLm9mZigicmV2ZWFsOm9wZW4iKX0pO2Mub24oInJldmVhbDpjbG9zZSIsZnVuY3Rpb24oKXtiKCJib2R5IikuY3NzKCJvdmVyZmxvdyIsIiIpO2IoIi5zbG90TWFjaGluZUNvbnRhaW5lciIpLmhpZGUoKTtpZighZyYmKGc9ITAsImZhZGVBbmRQb3AiPT1hLmFuaW1hdGlvbiYmKGQuZGVsYXkoYS5hbmltYXRpb25zcGVlZCkuZmFkZU91dChhLmFuaW1hdGlvbnNwZWVkKSxjLmFuaW1hdGUoe3RvcDpiKGRvY3VtZW50KS5zY3JvbGxUb3AoKS1tKyJweCIsb3BhY2l0eTowfSwKYS5hbmltYXRpb25zcGVlZC8yLGZ1bmN0aW9uKCl7Yy5jc3Moe3RvcDpoLG9wYWNpdHk6MSx2aXNpYmlsaXR5OiJoaWRkZW4ifSk7ZigpfSkpLCJmYWRlIj09YS5hbmltYXRpb24mJihkLmRlbGF5KGEuYW5pbWF0aW9uc3BlZWQpLmZhZGVPdXQoYS5hbmltYXRpb25zcGVlZCksYy5hbmltYXRlKHtvcGFjaXR5OjB9LGEuYW5pbWF0aW9uc3BlZWQsZnVuY3Rpb24oKXtjLmNzcyh7b3BhY2l0eToxLHZpc2liaWxpdHk6ImhpZGRlbiIsdG9wOmh9KTtmKCl9KSksIm5vbmUiPT1hLmFuaW1hdGlvbiYmKGMuY3NzKHt2aXNpYmlsaXR5OiJoaWRkZW4iLHRvcDpofSksZC5jc3Moe2Rpc3BsYXk6Im5vbmUifSkpLCJleHRlcm5hbEFuaW1hdGlvbiI9PWEuYW5pbWF0aW9uKSljLmhpZGUoKS5vbmUoImFuaW1hdGlvbkVuZCIsZnVuY3Rpb24oKXtiKHRoaXMpLmNzcyh7dmlzaWJpbGl0eToiaGlkZGVuIix0b3A6aCxkaXNwbGF5OiJub25lIn0pO2QuY3NzKHtkaXNwbGF5OiJub25lIn0pfSk7Yy5vZmYoInJldmVhbDpjbG9zZSIpOwoidW5kZWZpbmVkIiE9dHlwZW9mIGEuY2xvc2VkJiZhLmNsb3NlZCgpfSk7Yy50cmlnZ2VyKCJyZXZlYWw6b3BlbiIpO2IoIi4iK2EuZGlzbWlzc21vZGFsY2xhc3MpLm9uKCJjbGljay5tb2RhbEV2ZW50IHRvdWNoc3RhcnQiLGZ1bmN0aW9uKCl7Yy50cmlnZ2VyKCJyZXZlYWw6Y2xvc2UiKX0pO2EuY2xvc2VvbmJhY2tncm91bmRjbGljayYmKGQuY3NzKHtjdXJzb3I6InBvaW50ZXIifSksZC5vbigiY2xpY2subW9kYWxFdmVudCIsZnVuY3Rpb24oKXtjLnRyaWdnZXIoInJldmVhbDpjbG9zZSIpfSkpO2lmKGEuY2xvc2VvbmVzY2FwZSliKCJib2R5Iikub24oImtleXVwIixmdW5jdGlvbihrKXsyNz09PWsud2hpY2gmJmMudHJpZ2dlcigicmV2ZWFsOmNsb3NlIil9KX0pfX0pKGpRdWVyeSk7Ci8qKiAvanMvanF1ZXJ5LnByZXR0eVBob3RvMi5qcyAqKi8KdmFyIF9fX2QyY19qcXVlcnlwcmV0dHlQaG90bzJqc19jX29uPSIyMDI1LTA1LTIzIDE3OjExOjQzIjsndXNlIHN0cmljdCc7dmFyIF9fX2QyY19qcXVlcnlwcmV0dHlQaG90bzJqc19jX29uPSIyMDI0LTAzLTI1IDEyOjMzOjMzIjsidXNlIHN0cmljdCI7CihmdW5jdGlvbihhKXtmdW5jdGlvbiB5KCl7dmFyIGU9bG9jYXRpb24uaHJlZjtyZXR1cm4gaGFzaHRhZz0tMSE9PWUuaW5kZXhPZigiI3ByZXR0eVBob3RvIik\/ZGVjb2RlVVJJKGUuc3Vic3RyaW5nKGUuaW5kZXhPZigiI3ByZXR0eVBob3RvIikrMSxlLmxlbmd0aCkpOiExfWZ1bmN0aW9uIGwoZSxwKXtlPWUucmVwbGFjZSgvW1xbXS8sIlxcWyIpLnJlcGxhY2UoL1tcXV0vLCJcXF0iKTtlPShuZXcgUmVnRXhwKCJbXFw\/Jl0iK2UrIj0oW14mI10qKSIpKS5leGVjKHApO3JldHVybiBudWxsPT1lPyIiOmVbMV19YS5wcmV0dHlQaG90bz17dmVyc2lvbjoiMy4xLjUifTthLmZuLnByZXR0eVBob3RvPWZ1bmN0aW9uKGUpe2Z1bmN0aW9uIHAoKXthKCIucHBfbG9hZGVySWNvbiIpLmhpZGUoKTtwcm9qZWN0ZWRUb3A9c2Nyb2xsX3Bvcy5zY3JvbGxUb3ArKGsvMi1kLmNvbnRhaW5lckhlaWdodC8yKTswPnByb2plY3RlZFRvcCYmKHByb2plY3RlZFRvcD0wKTskcHB0LmZhZGVUbyhiLmFuaW1hdGlvbl9zcGVlZCwKMSk7JHBwX3BpY19ob2xkZXIuZmluZCgiLnBwX2NvbnRlbnQiKS5hbmltYXRlKHtoZWlnaHQ6ZC5jb250ZW50SGVpZ2h0LHdpZHRoOmQuY29udGVudFdpZHRofSxiLmFuaW1hdGlvbl9zcGVlZCk7JHBwX3BpY19ob2xkZXIuYW5pbWF0ZSh7dG9wOnByb2plY3RlZFRvcCxsZWZ0OjA+aC8yLWQuY29udGFpbmVyV2lkdGgvMj8wOmgvMi1kLmNvbnRhaW5lcldpZHRoLzIsd2lkdGg6ZC5jb250YWluZXJXaWR0aH0sYi5hbmltYXRpb25fc3BlZWQsZnVuY3Rpb24oKXskcHBfcGljX2hvbGRlci5maW5kKCIucHBfaG92ZXJDb250YWluZXIsI2Z1bGxSZXNJbWFnZSIpLmhlaWdodChkLmhlaWdodCkud2lkdGgoZC53aWR0aCk7JHBwX3BpY19ob2xkZXIuZmluZCgiLnBwX2ZhZGUiKS5mYWRlSW4oYi5hbmltYXRpb25fc3BlZWQpO2lzU2V0JiYiaW1hZ2UiPT10KHBwX2ltYWdlc1tzZXRfcG9zaXRpb25dKT8kcHBfcGljX2hvbGRlci5maW5kKCIucHBfaG92ZXJDb250YWluZXIiKS5zaG93KCk6JHBwX3BpY19ob2xkZXIuZmluZCgiLnBwX2hvdmVyQ29udGFpbmVyIikuaGlkZSgpOwpiLmFsbG93X2V4cGFuZCYmKGQucmVzaXplZD9hKCJhLnBwX2V4cGFuZCxhLnBwX2NvbnRyYWN0Iikuc2hvdygpOmEoImEucHBfZXhwYW5kIikuaGlkZSgpKTshYi5hdXRvcGxheV9zbGlkZXNob3d8fHF8fHV8fGEucHJldHR5UGhvdG8uc3RhcnRTbGlkZXNob3coKTtiLmNoYW5nZXBpY3R1cmVjYWxsYmFjaygpO3U9ITB9KTtpc1NldCYmYi5vdmVybGF5X2dhbGxlcnkmJiJpbWFnZSI9PXQocHBfaW1hZ2VzW3NldF9wb3NpdGlvbl0pPyhpdGVtV2lkdGg9NTcsbmF2V2lkdGg9ImZhY2Vib29rIj09Yi50aGVtZXx8InBwX2RlZmF1bHQiPT1iLnRoZW1lPzUwOjMwLGl0ZW1zUGVyUGFnZT1NYXRoLmZsb29yKChkLmNvbnRhaW5lcldpZHRoLTEwMC1uYXZXaWR0aCkvaXRlbVdpZHRoKSxpdGVtc1BlclBhZ2U9aXRlbXNQZXJQYWdlPHBwX2ltYWdlcy5sZW5ndGg\/aXRlbXNQZXJQYWdlOnBwX2ltYWdlcy5sZW5ndGgsdG90YWxQYWdlPU1hdGguY2VpbChwcF9pbWFnZXMubGVuZ3RoL2l0ZW1zUGVyUGFnZSktCjEsMD09dG90YWxQYWdlPyhuYXZXaWR0aD0wLCRwcF9nYWxsZXJ5LmZpbmQoIi5wcF9hcnJvd19uZXh0LC5wcF9hcnJvd19wcmV2aW91cyIpLmhpZGUoKSk6JHBwX2dhbGxlcnkuZmluZCgiLnBwX2Fycm93X25leHQsLnBwX2Fycm93X3ByZXZpb3VzIikuc2hvdygpLGdhbGxlcnlXaWR0aD1pdGVtc1BlclBhZ2UqaXRlbVdpZHRoLGZ1bGxHYWxsZXJ5V2lkdGg9cHBfaW1hZ2VzLmxlbmd0aCppdGVtV2lkdGgsJHBwX2dhbGxlcnkuY3NzKCJtYXJnaW4tbGVmdCIsLShnYWxsZXJ5V2lkdGgvMituYXZXaWR0aC8yKSkuZmluZCgiZGl2OmZpcnN0Iikud2lkdGgoZ2FsbGVyeVdpZHRoKzUpLmZpbmQoInVsIikud2lkdGgoZnVsbEdhbGxlcnlXaWR0aCkuZmluZCgibGkuc2VsZWN0ZWQiKS5yZW1vdmVDbGFzcygic2VsZWN0ZWQiKSxnb1RvUGFnZT1NYXRoLmZsb29yKHNldF9wb3NpdGlvbi9pdGVtc1BlclBhZ2UpPHRvdGFsUGFnZT9NYXRoLmZsb29yKHNldF9wb3NpdGlvbi9pdGVtc1BlclBhZ2UpOgp0b3RhbFBhZ2UsYS5wcmV0dHlQaG90by5jaGFuZ2VHYWxsZXJ5UGFnZShnb1RvUGFnZSksJHBwX2dhbGxlcnlfbGkuZmlsdGVyKCI6ZXEoIitzZXRfcG9zaXRpb24rIikiKS5hZGRDbGFzcygic2VsZWN0ZWQiKSk6JHBwX3BpY19ob2xkZXIuZmluZCgiLnBwX2NvbnRlbnQiKS5vZmYoIm1vdXNlZW50ZXIgbW91c2VsZWF2ZSIpO2UuYWpheGNhbGxiYWNrKCl9ZnVuY3Rpb24geihjKXskcHBfcGljX2hvbGRlci5maW5kKCIjcHBfZnVsbF9yZXMgb2JqZWN0LCNwcF9mdWxsX3JlcyBlbWJlZCIpLmNzcygidmlzaWJpbGl0eSIsImhpZGRlbiIpOyRwcF9waWNfaG9sZGVyLmZpbmQoIi5wcF9mYWRlIikuZmFkZU91dChiLmFuaW1hdGlvbl9zcGVlZCxmdW5jdGlvbigpe2EoIi5wcF9sb2FkZXJJY29uIikuc2hvdygpO2MoKX0pfWZ1bmN0aW9uIEcoYyl7MTxjP2EoIi5wcF9uYXYiKS5zaG93KCk6YSgiLnBwX25hdiIpLmhpZGUoKX1mdW5jdGlvbiBnKGMsZil7cmVzaXplZD0hMTtBKGMsZik7aW1hZ2VXaWR0aD0KYztpbWFnZUhlaWdodD1mO2lmKChtPmh8fG4+aykmJmRvcmVzaXplJiZiLmFsbG93X3Jlc2l6ZSYmIXIpe3Jlc2l6ZWQ9ITA7Zm9yKGZpdHRpbmc9ITE7IWZpdHRpbmc7KW0+aD8oaW1hZ2VXaWR0aD1oLTUwLGltYWdlSGVpZ2h0PWYvYyppbWFnZVdpZHRoKTpuPms\/KGltYWdlSGVpZ2h0PWstNTAsaW1hZ2VXaWR0aD1jL2YqaW1hZ2VIZWlnaHQpOmZpdHRpbmc9ITAsbj1pbWFnZUhlaWdodCxtPWltYWdlV2lkdGg7KG0+aHx8bj5rKSYmZyhtLG4pO0EoaW1hZ2VXaWR0aCxpbWFnZUhlaWdodCl9cmV0dXJue3dpZHRoOk1hdGguZmxvb3IoaW1hZ2VXaWR0aCksaGVpZ2h0Ok1hdGguZmxvb3IoaW1hZ2VIZWlnaHQpLGNvbnRhaW5lckhlaWdodDpNYXRoLmZsb29yKG4pLGNvbnRhaW5lcldpZHRoOk1hdGguZmxvb3IobSkrMipiLmhvcml6b250YWxfcGFkZGluZyxjb250ZW50SGVpZ2h0Ok1hdGguZmxvb3IodiksY29udGVudFdpZHRoOk1hdGguZmxvb3IoQikscmVzaXplZH19ZnVuY3Rpb24gQShjLApmKXtjPXBhcnNlRmxvYXQoYyk7Zj1wYXJzZUZsb2F0KGYpOyRwcF9kZXRhaWxzPSRwcF9waWNfaG9sZGVyLmZpbmQoIi5wcF9kZXRhaWxzIik7JHBwX2RldGFpbHMud2lkdGgoYyk7ZGV0YWlsc0hlaWdodD1wYXJzZUZsb2F0KCRwcF9kZXRhaWxzLmNzcygibWFyZ2luVG9wIikpK3BhcnNlRmxvYXQoJHBwX2RldGFpbHMuY3NzKCJtYXJnaW5Cb3R0b20iKSk7JHBwX2RldGFpbHM9JHBwX2RldGFpbHMuY2xvbmUoKS5hZGRDbGFzcyhiLnRoZW1lKS53aWR0aChjKS5hcHBlbmRUbyhhKCJib2R5IikpLmNzcyh7cG9zaXRpb246ImFic29sdXRlIix0b3A6LTFFNH0pO2RldGFpbHNIZWlnaHQrPSRwcF9kZXRhaWxzLmhlaWdodCgpO2RldGFpbHNIZWlnaHQ9MzQ+PWRldGFpbHNIZWlnaHQ\/MzY6ZGV0YWlsc0hlaWdodDskcHBfZGV0YWlscy5yZW1vdmUoKTskcHBfdGl0bGU9JHBwX3BpY19ob2xkZXIuZmluZCgiLnBwdCIpOyRwcF90aXRsZS53aWR0aChjKTt0aXRsZUhlaWdodD1wYXJzZUZsb2F0KCRwcF90aXRsZS5jc3MoIm1hcmdpblRvcCIpKSsKcGFyc2VGbG9hdCgkcHBfdGl0bGUuY3NzKCJtYXJnaW5Cb3R0b20iKSk7JHBwX3RpdGxlPSRwcF90aXRsZS5jbG9uZSgpLmFwcGVuZFRvKGEoImJvZHkiKSkuY3NzKHtwb3NpdGlvbjoiYWJzb2x1dGUiLHRvcDotMUU0fSk7dGl0bGVIZWlnaHQrPSRwcF90aXRsZS5oZWlnaHQoKTskcHBfdGl0bGUucmVtb3ZlKCk7dj1mK2RldGFpbHNIZWlnaHQ7Qj1jO249dit0aXRsZUhlaWdodCskcHBfcGljX2hvbGRlci5maW5kKCIucHBfdG9wIikuaGVpZ2h0KCkrJHBwX3BpY19ob2xkZXIuZmluZCgiLnBwX2JvdHRvbSIpLmhlaWdodCgpO209Y31mdW5jdGlvbiB0KGMpe3JldHVybiBjLm1hdGNoKC95b3V0dWJlXC5jb21cL3dhdGNoL2kpfHxjLm1hdGNoKC95b3V0dVwuYmUvaSk\/InlvdXR1YmUiOmMubWF0Y2goL3ZpbWVvXC5jb20vaSk\/InZpbWVvIjpjLm1hdGNoKC9cLm1wNC9pKT8ibXA0IjpjLm1hdGNoKC9hdnUzZC9pKT8iYXZ1M2QiOmMubWF0Y2goL1xiLm1vdlxiL2kpPyJxdWlja3RpbWUiOgpjLm1hdGNoKC9cYi5zd2ZcYi9pKT8iZmxhc2giOmMubWF0Y2goL1xiaWZyYW1lPXRydWVcYi9pKT8iaWZyYW1lIjpjLm1hdGNoKC9cYmFqYXg9dHJ1ZVxiL2kpPyJhamF4IjpjLm1hdGNoKC9cYmN1c3RvbT10cnVlXGIvaSk\/ImN1c3RvbSI6IiMiPT1jLnN1YnN0cigwLDEpPyJpbmxpbmUiOiJpbWFnZSJ9ZnVuY3Rpb24gdygpe2RvcmVzaXplJiYidW5kZWZpbmVkIiE9dHlwZW9mICRwcF9waWNfaG9sZGVyJiYoc2Nyb2xsX3Bvcz1DKCksY29udGVudEhlaWdodD0kcHBfcGljX2hvbGRlci5oZWlnaHQoKSxjb250ZW50d2lkdGg9JHBwX3BpY19ob2xkZXIud2lkdGgoKSxwcm9qZWN0ZWRUb3A9ay8yK3Njcm9sbF9wb3Muc2Nyb2xsVG9wLWNvbnRlbnRIZWlnaHQvMiwwPnByb2plY3RlZFRvcCYmKHByb2plY3RlZFRvcD0wKSxjb250ZW50SGVpZ2h0Pmt8fCRwcF9waWNfaG9sZGVyLmNzcyh7dG9wOnByb2plY3RlZFRvcCxsZWZ0OmgvMitzY3JvbGxfcG9zLnNjcm9sbExlZnQtY29udGVudHdpZHRoLwoyfSkpfWZ1bmN0aW9uIEMoKXtpZihzZWxmLnBhZ2VZT2Zmc2V0KXJldHVybntzY3JvbGxUb3A6c2VsZi5wYWdlWU9mZnNldCxzY3JvbGxMZWZ0OnNlbGYucGFnZVhPZmZzZXR9O2lmKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCYmZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcClyZXR1cm57c2Nyb2xsVG9wOmRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxUb3Asc2Nyb2xsTGVmdDpkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsTGVmdH07aWYoZG9jdW1lbnQuYm9keSlyZXR1cm57c2Nyb2xsVG9wOmRvY3VtZW50LmJvZHkuc2Nyb2xsVG9wLHNjcm9sbExlZnQ6ZG9jdW1lbnQuYm9keS5zY3JvbGxMZWZ0fX1mdW5jdGlvbiBEKGMpe2Iuc29jaWFsX3Rvb2xzJiYoZmFjZWJvb2tfbGlrZV9saW5rPWIuc29jaWFsX3Rvb2xzLnJlcGxhY2UoIntsb2NhdGlvbl9ocmVmfSIsZW5jb2RlVVJJQ29tcG9uZW50KGxvY2F0aW9uLmhyZWYpKSk7Yi5tYXJrdXA9Yi5tYXJrdXAucmVwbGFjZSgie3BwX3NvY2lhbH0iLAoiIik7YSgiYm9keSIpLmFwcGVuZChiLm1hcmt1cCk7JHBwX3BpY19ob2xkZXI9YSgiLnBwX3BpY19ob2xkZXIiKTskcHB0PWEoIi5wcHQiKTskcHBfb3ZlcmxheT1hKCJkaXYucHBfb3ZlcmxheSIpO2lmKGlzU2V0JiZiLm92ZXJsYXlfZ2FsbGVyeSl7Y3VycmVudEdhbGxlcnlQYWdlPTA7dG9JbmplY3Q9IiI7Zm9yKGM9MDtjPHBwX2ltYWdlcy5sZW5ndGg7YysrKXBwX2ltYWdlc1tjXS5tYXRjaCgvXGIoanBnfGpwZWd8cG5nfGdpZilcYi9naSk\/KGNsYXNzbmFtZT0iIixpbWdfc3JjPXBwX2ltYWdlc1tjXSk6KGNsYXNzbmFtZT0iZGVmYXVsdCIsaW1nX3NyYz0iIiksdG9JbmplY3QrPSI8bGkgY2xhc3M9JyIrY2xhc3NuYW1lKyInPjxhIGhyZWY9JyMnPjxpbWcgc3JjPSciK2ltZ19zcmMrIicgd2lkdGg9JzUwJyBhbHQ9JycgLz48L2E+PC9saT4iO3RvSW5qZWN0PWIuZ2FsbGVyeV9tYXJrdXAucmVwbGFjZSgve2dhbGxlcnl9L2csdG9JbmplY3QpOyRwcF9waWNfaG9sZGVyLmZpbmQoIiNwcF9mdWxsX3JlcyIpLmFmdGVyKHRvSW5qZWN0KTsKJHBwX2dhbGxlcnk9YSgiLnBwX3BpY19ob2xkZXIgLnBwX2dhbGxlcnkiKTskcHBfZ2FsbGVyeV9saT0kcHBfZ2FsbGVyeS5maW5kKCJsaSIpOyRwcF9nYWxsZXJ5LmZpbmQoIi5wcF9hcnJvd19uZXh0Iikub24oImNsaWNrIixmdW5jdGlvbigpe2EucHJldHR5UGhvdG8uY2hhbmdlR2FsbGVyeVBhZ2UoIm5leHQiKTthLnByZXR0eVBob3RvLnN0b3BTbGlkZXNob3coKTtyZXR1cm4hMX0pOyRwcF9nYWxsZXJ5LmZpbmQoIi5wcF9hcnJvd19wcmV2aW91cyIpLm9uKCJjbGljayIsZnVuY3Rpb24oKXthLnByZXR0eVBob3RvLmNoYW5nZUdhbGxlcnlQYWdlKCJwcmV2aW91cyIpO2EucHJldHR5UGhvdG8uc3RvcFNsaWRlc2hvdygpO3JldHVybiExfSk7JHBwX3BpY19ob2xkZXIuZmluZCgiLnBwX2NvbnRlbnQiKS5vbigiaG92ZXIiLGZ1bmN0aW9uKCl7JHBwX3BpY19ob2xkZXIuZmluZCgiLnBwX2dhbGxlcnk6bm90KC5kaXNhYmxlZCkiKS5mYWRlSW4oKX0sZnVuY3Rpb24oKXskcHBfcGljX2hvbGRlci5maW5kKCIucHBfZ2FsbGVyeTpub3QoLmRpc2FibGVkKSIpLmZhZGVPdXQoKX0pOwppdGVtV2lkdGg9NTc7JHBwX2dhbGxlcnlfbGkuZWFjaChmdW5jdGlvbihmKXthKHRoaXMpLmZpbmQoImEiKS5vbigiY2xpY2siLGZ1bmN0aW9uKCl7YS5wcmV0dHlQaG90by5jaGFuZ2VQYWdlKGYpO2EucHJldHR5UGhvdG8uc3RvcFNsaWRlc2hvdygpO3JldHVybiExfSl9KX1iLnNsaWRlc2hvdyYmKCRwcF9waWNfaG9sZGVyLmZpbmQoIi5wcF9uYXYiKS5wcmVwZW5kKCc8YSBocmVmPSIjIiBjbGFzcz0icHBfcGxheSI+UGxheTwvYT4nKSwkcHBfcGljX2hvbGRlci5maW5kKCIucHBfbmF2IC5wcF9wbGF5Iikub24oImNsaWNrIixmdW5jdGlvbigpe2EucHJldHR5UGhvdG8uc3RhcnRTbGlkZXNob3coKTtyZXR1cm4hMX0pKTskcHBfcGljX2hvbGRlci5hdHRyKCJjbGFzcyIsInBwX3BpY19ob2xkZXIgIitiLnRoZW1lKTskcHBfb3ZlcmxheS5jc3Moe29wYWNpdHk6MCxoZWlnaHQ6YShkb2N1bWVudCkuaGVpZ2h0KCksd2lkdGg6YSh3aW5kb3cpLndpZHRoKCl9KS5vbigiY2xpY2siLGZ1bmN0aW9uKCl7Yi5tb2RhbHx8CmEucHJldHR5UGhvdG8uY2xvc2UoKX0pO2EoImEucHBfY2xvc2UiKS5vbigiY2xpY2siLGZ1bmN0aW9uKCl7YS5wcmV0dHlQaG90by5jbG9zZSgpO3JldHVybiExfSk7aWYoYi5hbGxvd19leHBhbmQpYSgiYS5wcF9leHBhbmQiKS5vbigiY2xpY2siLGZ1bmN0aW9uKGYpe2EodGhpcykuaGFzQ2xhc3MoInBwX2V4cGFuZCIpPyhhKHRoaXMpLnJlbW92ZUNsYXNzKCJwcF9leHBhbmQiKS5hZGRDbGFzcygicHBfY29udHJhY3QiKSxkb3Jlc2l6ZT0hMSk6KGEodGhpcykucmVtb3ZlQ2xhc3MoInBwX2NvbnRyYWN0IikuYWRkQ2xhc3MoInBwX2V4cGFuZCIpLGRvcmVzaXplPSEwKTt6KGZ1bmN0aW9uKCl7YS5wcmV0dHlQaG90by5vcGVuKCl9KTtyZXR1cm4hMX0pOyRwcF9waWNfaG9sZGVyLmZpbmQoIi5wcF9wcmV2aW91cywgLnBwX25hdiAucHBfYXJyb3dfcHJldmlvdXMiKS5vbigiY2xpY2siLGZ1bmN0aW9uKCl7YS5wcmV0dHlQaG90by5jaGFuZ2VQYWdlKCJwcmV2aW91cyIpO2EucHJldHR5UGhvdG8uc3RvcFNsaWRlc2hvdygpOwpyZXR1cm4hMX0pOyRwcF9waWNfaG9sZGVyLmZpbmQoIi5wcF9uZXh0LCAucHBfbmF2IC5wcF9hcnJvd19uZXh0Iikub24oImNsaWNrIixmdW5jdGlvbigpe2EucHJldHR5UGhvdG8uY2hhbmdlUGFnZSgibmV4dCIpO2EucHJldHR5UGhvdG8uc3RvcFNsaWRlc2hvdygpO3JldHVybiExfSk7dygpfWU9alF1ZXJ5LmV4dGVuZCh7aG9vazoicmVsIixhbmltYXRpb25fc3BlZWQ6ImZhc3QiLGFqYXhjYWxsYmFjazpmdW5jdGlvbigpe30sc2xpZGVzaG93OjVFMyxhdXRvcGxheV9zbGlkZXNob3c6ITEsb3BhY2l0eTouOCxzaG93X3RpdGxlOiEwLGFsbG93X3Jlc2l6ZTohMCxhbGxvd19leHBhbmQ6ITAsZGVmYXVsdF93aWR0aDo1MDAsZGVmYXVsdF9oZWlnaHQ6MzQ0LGNvdW50ZXJfc2VwYXJhdG9yX2xhYmVsOiIvIix0aGVtZToicHBfZGVmYXVsdCIsaG9yaXpvbnRhbF9wYWRkaW5nOjIwLGhpZGVmbGFzaDohMSx3bW9kZToib3BhcXVlIixhdXRvcGxheTohMCxtb2RhbDohMSxkZWVwbGlua2luZzohMCwKb3ZlcmxheV9nYWxsZXJ5OiEwLG92ZXJsYXlfZ2FsbGVyeV9tYXg6MzAsa2V5Ym9hcmRfc2hvcnRjdXRzOiEwLGNoYW5nZXBpY3R1cmVjYWxsYmFjazpmdW5jdGlvbigpe30sY2FsbGJhY2s6ZnVuY3Rpb24oKXt9LGllNl9mYWxsYmFjazohMCxtYXJrdXA6JzxkaXYgY2xhc3M9InBwX3BpY19ob2xkZXIiPiAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcHQiPiZuYnNwOzwvZGl2PiAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcF90b3AiPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHBfbGVmdCI+PC9kaXY+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcF9taWRkbGUiPjwvZGl2PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHBfcmlnaHQiPjwvZGl2PiAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4gICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHBfY29udGVudF9jb250YWluZXIiPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHBfbGVmdCI+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIjIiBjbGFzcz0icHBfZXhwYW5kIiB0aXRsZT0iRXhwYW5kIHRoZSBpbWFnZSI+RXhwYW5kPC9hPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHBfcmlnaHQiPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InBwX2NvbnRlbnQiPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcF9sb2FkZXJJY29uIj48L2Rpdj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHBfZmFkZSI+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz0icHBfY2xvc2UiIGhyZWY9IiMiPkNsb3NlPC9hPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHBfaG92ZXJDb250YWluZXIganF1ZXJ5cHAyIj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz0icHBfbmV4dCIgaHJlZj0iIyI+bmV4dDwvYT4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz0icHBfcHJldmlvdXMiIGhyZWY9IiMiPnByZXZpb3VzPC9hPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJwcF9mdWxsX3JlcyI+PC9kaXY+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcF9kZXRhaWxzIj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0icHBfZGVzY3JpcHRpb24iPjwvcD4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcF9zb2NpYWwiPntwcF9zb2NpYWx9PC9kaXY+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PiAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4gICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHBfYm90dG9tIj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InBwX2xlZnQiPjwvZGl2PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHBfbWlkZGxlIj48L2Rpdj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InBwX3JpZ2h0Ij48L2Rpdj4gICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+ICAgICAgICAgICAgICAgICAgICAgPC9kaXY+ICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHBfb3ZlcmxheSI+PC9kaXY+JywKZ2FsbGVyeV9tYXJrdXA6JzxkaXYgY2xhc3M9InBwX2dhbGxlcnkiPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiMiIGNsYXNzPSJwcF9hcnJvd19wcmV2aW91cyI+UHJldmlvdXM8L2E+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2dhbGxlcnl9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iIyIgY2xhc3M9InBwX2Fycm93X25leHQiPk5leHQ8L2E+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4nLGltYWdlX21hcmt1cDonPGltZyBpZD0iZnVsbFJlc0ltYWdlIiBzcmM9IntwYXRofSIgLz4nLGZsYXNoX21hcmt1cDonPG9iamVjdCBjbGFzc2lkPSJjbHNpZDpEMjdDREI2RS1BRTZELTExY2YtOTZCOC00NDQ1NTM1NDAwMDAiIHdpZHRoPSJ7d2lkdGh9IiBoZWlnaHQ9IntoZWlnaHR9Ij48cGFyYW0gbmFtZT0id21vZGUiIHZhbHVlPSJ7d21vZGV9IiAvPjxwYXJhbSBuYW1lPSJhbGxvd2Z1bGxzY3JlZW4iIHZhbHVlPSJ0cnVlIiAvPjxwYXJhbSBuYW1lPSJhbGxvd3NjcmlwdGFjY2VzcyIgdmFsdWU9ImFsd2F5cyIgLz48cGFyYW0gbmFtZT0ibW92aWUiIHZhbHVlPSJ7cGF0aH0iIC8+PGVtYmVkIHNyYz0ie3BhdGh9IiB0eXBlPSJhcHBsaWNhdGlvbi94LXNob2Nrd2F2ZS1mbGFzaCIgYWxsb3dmdWxsc2NyZWVuPSJ0cnVlIiBhbGxvd3NjcmlwdGFjY2Vzcz0iYWx3YXlzIiB3aWR0aD0ie3dpZHRofSIgaGVpZ2h0PSJ7aGVpZ2h0fSIgd21vZGU9Int3bW9kZX0iPjwvZW1iZWQ+PC9vYmplY3Q+JywKcXVpY2t0aW1lX21hcmt1cDonPG9iamVjdCBjbGFzc2lkPSJjbHNpZDowMkJGMjVENS04QzE3LTRCMjMtQkM4MC1EMzQ4OEFCRERDNkIiIGNvZGViYXNlPSJodHRwOi8vd3d3LmFwcGxlLmNvbS9xdGFjdGl2ZXgvcXRwbHVnaW4uY2FiIiBoZWlnaHQ9IntoZWlnaHR9IiB3aWR0aD0ie3dpZHRofSI+PHBhcmFtIG5hbWU9InNyYyIgdmFsdWU9IntwYXRofSI+PHBhcmFtIG5hbWU9ImF1dG9wbGF5IiB2YWx1ZT0ie2F1dG9wbGF5fSI+PHBhcmFtIG5hbWU9InR5cGUiIHZhbHVlPSJ2aWRlby9xdWlja3RpbWUiPjxlbWJlZCBzcmM9IntwYXRofSIgaGVpZ2h0PSJ7aGVpZ2h0fSIgd2lkdGg9Int3aWR0aH0iIGF1dG9wbGF5PSJ7YXV0b3BsYXl9IiB0eXBlPSJ2aWRlby9xdWlja3RpbWUiIHBsdWdpbnNwYWdlPSJodHRwOi8vd3d3LmFwcGxlLmNvbS9xdWlja3RpbWUvZG93bmxvYWQvIj48L2VtYmVkPjwvb2JqZWN0PicsaWZyYW1lX21hcmt1cDonPGlmcmFtZSBzcmMgPSJ7cGF0aH0iIHdpZHRoPSJ7d2lkdGh9IiBoZWlnaHQ9IntoZWlnaHR9IiBmcmFtZWJvcmRlcj0ibm8iPjwvaWZyYW1lPicsCmlubGluZV9tYXJrdXA6JzxkaXYgY2xhc3M9InBwX2lubGluZSI+e2NvbnRlbnR9PC9kaXY+JyxtcDRfbWFya3VwOic8dmlkZW8gd2lkdGg9IjEwMCUiIGhlaWdodD0iIiBwcmVsb2FkPSJhdXRvIiBhdXRvcGxheSBjb250cm9scz0iIiBpZD0icGxheWVyIiBzdHlsZT0id2lkdGg6IDEwMCU7Ij48c291cmNlIHR5cGU9InZpZGVvL21wNCIgc3JjPSJ7cGF0aH0iPjwvc291cmNlPjwvdmlkZW8+JyxjdXN0b21fbWFya3VwOiIiLHNvY2lhbF90b29sczonPGRpdiBjbGFzcz0idHdpdHRlciI+PGEgaHJlZj0iaHR0cDovL3R3aXR0ZXIuY29tL3NoYXJlIiBjbGFzcz0idHdpdHRlci1zaGFyZS1idXR0b24iIGRhdGEtY291bnQ9Im5vbmUiPlR3ZWV0PC9hPjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHA6Ly9wbGF0Zm9ybS50d2l0dGVyLmNvbS93aWRnZXRzLmpzIj5ceDNjL3NjcmlwdD48L2Rpdj48ZGl2IGNsYXNzPSJmYWNlYm9vayI+PGlmcmFtZSBzcmM9Ii8vd3d3LmZhY2Vib29rLmNvbS9wbHVnaW5zL2xpa2UucGhwP2xvY2FsZT1lbl9VUyZocmVmPXtsb2NhdGlvbl9ocmVmfSZhbXA7bGF5b3V0PWJ1dHRvbl9jb3VudCZhbXA7c2hvd19mYWNlcz10cnVlJmFtcDt3aWR0aD01MDAmYW1wO2FjdGlvbj1saWtlJmFtcDtmb250JmFtcDtjb2xvcnNjaGVtZT1saWdodCZhbXA7aGVpZ2h0PTIzIiBzY3JvbGxpbmc9Im5vIiBmcmFtZWJvcmRlcj0iMCIgc3R5bGU9ImJvcmRlcjpub25lOyBvdmVyZmxvdzpoaWRkZW47IHdpZHRoOjUwMHB4OyBoZWlnaHQ6MjNweDsiIGFsbG93VHJhbnNwYXJlbmN5PSJ0cnVlIj48L2lmcmFtZT48L2Rpdj4nfSwKZSk7dmFyIGI9e30seD10aGlzLHI9ITEsZCx1LHYsQixuLG0saz1hKHdpbmRvdykuaGVpZ2h0KCksaD1hKHdpbmRvdykud2lkdGgoKSxxO2RvcmVzaXplPSEwO3Njcm9sbF9wb3M9QygpO2Eod2luZG93KS5vZmYoInJlc2l6ZS5wcmV0dHlwaG90byIpLm9uKCJyZXNpemUucHJldHR5cGhvdG8iLGZ1bmN0aW9uKCl7dygpO2s9YSh3aW5kb3cpLmhlaWdodCgpO2g9YSh3aW5kb3cpLndpZHRoKCk7InVuZGVmaW5lZCIhPXR5cGVvZiAkcHBfb3ZlcmxheSYmJHBwX292ZXJsYXkuaGVpZ2h0KGEoZG9jdW1lbnQpLmhlaWdodCgpKS53aWR0aChoKX0pO2lmKGUua2V5Ym9hcmRfc2hvcnRjdXRzKWEoZG9jdW1lbnQpLm9mZigia2V5ZG93bi5wcmV0dHlwaG90byIpLm9uKCJrZXlkb3duLnByZXR0eXBob3RvIixmdW5jdGlvbihjKXtpZigidW5kZWZpbmVkIiE9dHlwZW9mICRwcF9waWNfaG9sZGVyJiYkcHBfcGljX2hvbGRlci5pcygiOnZpc2libGUiKSlzd2l0Y2goYy5rZXlDb2RlKXtjYXNlIDM3OmEucHJldHR5UGhvdG8uY2hhbmdlUGFnZSgicHJldmlvdXMiKTsKYy5wcmV2ZW50RGVmYXVsdCgpO2JyZWFrO2Nhc2UgMzk6YS5wcmV0dHlQaG90by5jaGFuZ2VQYWdlKCJuZXh0Iik7Yy5wcmV2ZW50RGVmYXVsdCgpO2JyZWFrO2Nhc2UgMjc6Yi5tb2RhbHx8YS5wcmV0dHlQaG90by5jbG9zZSgpLGMucHJldmVudERlZmF1bHQoKX19KTthLnByZXR0eVBob3RvLmluaXRpYWxpemU9ZnVuY3Rpb24oKXtiPWU7InBwX2RlZmF1bHQiPT1iLnRoZW1lJiYoYi5ob3Jpem9udGFsX3BhZGRpbmc9MTYpO3RoZVJlbD1hKHRoaXMpLmF0dHIoYi5ob29rKTtnYWxsZXJ5UmVnRXhwPS9cWyg\/Oi4qKVxdLztwcF9pbWFnZXM9KGlzU2V0PWdhbGxlcnlSZWdFeHAuZXhlYyh0aGVSZWwpPyEwOiExKT9qUXVlcnkubWFwKHgsZnVuY3Rpb24oYyxmKXtpZigtMSE9YShjKS5hdHRyKGIuaG9vaykuaW5kZXhPZih0aGVSZWwpKXJldHVybiBhKGMpLmF0dHIoImhyZWYiKX0pOmEubWFrZUFycmF5KGEodGhpcykuYXR0cigiaHJlZiIpKTtwcF90aXRsZXM9aXNTZXQ\/alF1ZXJ5Lm1hcCh4LApmdW5jdGlvbihjLGYpe2lmKC0xIT1hKGMpLmF0dHIoYi5ob29rKS5pbmRleE9mKHRoZVJlbCkpcmV0dXJuIGEoYykuZmluZCgiaW1nIikuYXR0cigiYWx0Iik\/YShjKS5maW5kKCJpbWciKS5hdHRyKCJhbHQiKToiIn0pOmEubWFrZUFycmF5KGEodGhpcykuZmluZCgiaW1nIikuYXR0cigiYWx0IikpO3BwX2Rlc2NyaXB0aW9ucz1pc1NldD9qUXVlcnkubWFwKHgsZnVuY3Rpb24oYyxmKXtpZigtMSE9YShjKS5hdHRyKGIuaG9vaykuaW5kZXhPZih0aGVSZWwpKXJldHVybiBhKGMpLmF0dHIoInRpdGxlIik\/YShjKS5hdHRyKCJ0aXRsZSIpOiIifSk6YS5tYWtlQXJyYXkoYSh0aGlzKS5hdHRyKCJ0aXRsZSIpKTtwcF9pbWFnZXMubGVuZ3RoPmIub3ZlcmxheV9nYWxsZXJ5X21heCYmKGIub3ZlcmxheV9nYWxsZXJ5PSExKTtzZXRfcG9zaXRpb249alF1ZXJ5LmluQXJyYXkoYSh0aGlzKS5hdHRyKCJocmVmIikscHBfaW1hZ2VzKTtyZWxfaW5kZXg9aXNTZXQ\/c2V0X3Bvc2l0aW9uOmEoImFbIisKYi5ob29rKyJePSciK3RoZVJlbCsiJ10iKS5pbmRleChhKHRoaXMpKTtEKHRoaXMpO2lmKGIuYWxsb3dfcmVzaXplKWEod2luZG93KS5vbigic2Nyb2xsLnByZXR0eXBob3RvIixmdW5jdGlvbigpe3coKX0pO2EucHJldHR5UGhvdG8ub3BlbigpO3JldHVybiExfTthLnByZXR0eVBob3RvLm9wZW49ZnVuY3Rpb24oYyxmLEUsRil7InVuZGVmaW5lZCI9PXR5cGVvZiBiJiYoYj1lLHBwX2ltYWdlcz1hLm1ha2VBcnJheShjKSxwcF90aXRsZXM9Zj9hLm1ha2VBcnJheShmKTphLm1ha2VBcnJheSgiIikscHBfZGVzY3JpcHRpb25zPUU\/YS5tYWtlQXJyYXkoRSk6YS5tYWtlQXJyYXkoIiIpLGlzU2V0PTE8cHBfaW1hZ2VzLmxlbmd0aD8hMDohMSxzZXRfcG9zaXRpb249Rj9GOjAsRChjLnRhcmdldCkpO2IuaGlkZWZsYXNoJiZhKCJvYmplY3QsZW1iZWQsaWZyYW1lW3NyYyo9eW91dHViZV0saWZyYW1lW3NyYyo9dmltZW9dIikuY3NzKCJ2aXNpYmlsaXR5IiwiaGlkZGVuIik7RyhhKHBwX2ltYWdlcykubGVuZ3RoKTsKYSgiLnBwX2xvYWRlckljb24iKS5zaG93KCk7Yi5kZWVwbGlua2luZyYmInVuZGVmaW5lZCIhPXR5cGVvZiB0aGVSZWwmJihsb2NhdGlvbi5oYXNoPXRoZVJlbCsiLyIrcmVsX2luZGV4KyIvIik7Yi5zb2NpYWxfdG9vbHMmJihmYWNlYm9va19saWtlX2xpbms9Yi5zb2NpYWxfdG9vbHMucmVwbGFjZSgie2xvY2F0aW9uX2hyZWZ9IixlbmNvZGVVUklDb21wb25lbnQobG9jYXRpb24uaHJlZikpLCRwcF9waWNfaG9sZGVyLmZpbmQoIi5wcF9zb2NpYWwiKS5odG1sKGZhY2Vib29rX2xpa2VfbGluaykpOyRwcHQuaXMoIjpoaWRkZW4iKSYmJHBwdC5jc3MoIm9wYWNpdHkiLDApLnNob3coKTskcHBfb3ZlcmxheS5zaG93KCkuZmFkZVRvKGIuYW5pbWF0aW9uX3NwZWVkLGIub3BhY2l0eSk7JHBwX3BpY19ob2xkZXIuZmluZCgiLmN1cnJlbnRUZXh0SG9sZGVyIikudGV4dChzZXRfcG9zaXRpb24rMStiLmNvdW50ZXJfc2VwYXJhdG9yX2xhYmVsK2EocHBfaW1hZ2VzKS5sZW5ndGgpOyJ1bmRlZmluZWQiIT0KdHlwZW9mIHBwX2Rlc2NyaXB0aW9uc1tzZXRfcG9zaXRpb25dJiYiIiE9cHBfZGVzY3JpcHRpb25zW3NldF9wb3NpdGlvbl0\/JHBwX3BpY19ob2xkZXIuZmluZCgiLnBwX2Rlc2NyaXB0aW9uIikuc2hvdygpLmh0bWwodW5lc2NhcGUocHBfZGVzY3JpcHRpb25zW3NldF9wb3NpdGlvbl0pKTokcHBfcGljX2hvbGRlci5maW5kKCIucHBfZGVzY3JpcHRpb24iKS5oaWRlKCk7bW92aWVfd2lkdGg9cGFyc2VGbG9hdChsKCJ3aWR0aCIscHBfaW1hZ2VzW3NldF9wb3NpdGlvbl0pKT9sKCJ3aWR0aCIscHBfaW1hZ2VzW3NldF9wb3NpdGlvbl0pOmIuZGVmYXVsdF93aWR0aC50b1N0cmluZygpO21vdmllX2hlaWdodD1wYXJzZUZsb2F0KGwoImhlaWdodCIscHBfaW1hZ2VzW3NldF9wb3NpdGlvbl0pKT9sKCJoZWlnaHQiLHBwX2ltYWdlc1tzZXRfcG9zaXRpb25dKTpiLmRlZmF1bHRfaGVpZ2h0LnRvU3RyaW5nKCk7cj0hMTstMSE9bW92aWVfaGVpZ2h0LmluZGV4T2YoIiUiKSYmKG1vdmllX2hlaWdodD0KcGFyc2VGbG9hdChhKHdpbmRvdykuaGVpZ2h0KCkqcGFyc2VGbG9hdChtb3ZpZV9oZWlnaHQpLzEwMC0xNTApLHI9ITApOy0xIT1tb3ZpZV93aWR0aC5pbmRleE9mKCIlIikmJihtb3ZpZV93aWR0aD1wYXJzZUZsb2F0KGEod2luZG93KS53aWR0aCgpKnBhcnNlRmxvYXQobW92aWVfd2lkdGgpLzEwMC0xNTApLHI9ITApOyRwcF9waWNfaG9sZGVyLmZhZGVJbihmdW5jdGlvbigpe2Iuc2hvd190aXRsZSYmIiIhPXBwX3RpdGxlc1tzZXRfcG9zaXRpb25dJiYidW5kZWZpbmVkIiE9dHlwZW9mIHBwX3RpdGxlc1tzZXRfcG9zaXRpb25dPyRwcHQuaHRtbCh1bmVzY2FwZShwcF90aXRsZXNbc2V0X3Bvc2l0aW9uXSkpOiRwcHQuaHRtbCgiJm5ic3A7Iik7aW1nUHJlbG9hZGVyPSIiO3NraXBJbmplY3Rpb249ITE7c3dpdGNoKHQocHBfaW1hZ2VzW3NldF9wb3NpdGlvbl0pKXtjYXNlICJpbWFnZSI6aW1nUHJlbG9hZGVyPW5ldyBJbWFnZTtuZXh0SW1hZ2U9bmV3IEltYWdlO2lzU2V0JiZzZXRfcG9zaXRpb248CmEocHBfaW1hZ2VzKS5sZW5ndGgtMSYmKG5leHRJbWFnZS5zcmM9cHBfaW1hZ2VzW3NldF9wb3NpdGlvbisxXSk7cHJldkltYWdlPW5ldyBJbWFnZTtpc1NldCYmcHBfaW1hZ2VzW3NldF9wb3NpdGlvbi0xXSYmKHByZXZJbWFnZS5zcmM9cHBfaW1hZ2VzW3NldF9wb3NpdGlvbi0xXSk7JHBwX3BpY19ob2xkZXIuZmluZCgiI3BwX2Z1bGxfcmVzIilbMF0uaW5uZXJIVE1MPWIuaW1hZ2VfbWFya3VwLnJlcGxhY2UoL3twYXRofS9nLHBwX2ltYWdlc1tzZXRfcG9zaXRpb25dKTtpbWdQcmVsb2FkZXIub25sb2FkPWZ1bmN0aW9uKCl7ZD1nKGltZ1ByZWxvYWRlci53aWR0aCxpbWdQcmVsb2FkZXIuaGVpZ2h0KTtwKCl9O2ltZ1ByZWxvYWRlci5vbmVycm9yPWZ1bmN0aW9uKCl7YWxlcnQoIkltYWdlIGNhbm5vdCBiZSBsb2FkZWQuIE1ha2Ugc3VyZSB0aGUgcGF0aCBpcyBjb3JyZWN0IGFuZCBpbWFnZSBleGlzdC4iKTthLnByZXR0eVBob3RvLmNsb3NlKCl9O2ltZ1ByZWxvYWRlci5zcmM9cHBfaW1hZ2VzW3NldF9wb3NpdGlvbl07CmJyZWFrO2Nhc2UgInlvdXR1YmUiOmQ9Zyhtb3ZpZV93aWR0aCxtb3ZpZV9oZWlnaHQpO21vdmllX2lkPWwoInYiLHBwX2ltYWdlc1tzZXRfcG9zaXRpb25dKTsiIj09bW92aWVfaWQmJihtb3ZpZV9pZD1wcF9pbWFnZXNbc2V0X3Bvc2l0aW9uXS5zcGxpdCgieW91dHUuYmUvIiksbW92aWVfaWQ9bW92aWVfaWRbMV0sMDxtb3ZpZV9pZC5pbmRleE9mKCI\/IikmJihtb3ZpZV9pZD1tb3ZpZV9pZC5zdWJzdHIoMCxtb3ZpZV9pZC5pbmRleE9mKCI\/IikpKSwwPG1vdmllX2lkLmluZGV4T2YoIiYiKSYmKG1vdmllX2lkPW1vdmllX2lkLnN1YnN0cigwLG1vdmllX2lkLmluZGV4T2YoIiYiKSkpKTttb3ZpZT0iaHR0cHM6Ly93d3cueW91dHViZS5jb20vZW1iZWQvIittb3ZpZV9pZDtsKCJyZWwiLHBwX2ltYWdlc1tzZXRfcG9zaXRpb25dKT9tb3ZpZSs9Ij9yZWw9IitsKCJyZWwiLHBwX2ltYWdlc1tzZXRfcG9zaXRpb25dKTptb3ZpZSs9Ij9yZWw9MSI7Yi5hdXRvcGxheSYmKG1vdmllKz0iJmF1dG9wbGF5PTEiKTsKdG9JbmplY3Q9Yi5pZnJhbWVfbWFya3VwLnJlcGxhY2UoL3t3aWR0aH0vZyxkLndpZHRoKS5yZXBsYWNlKC97aGVpZ2h0fS9nLGQuaGVpZ2h0KS5yZXBsYWNlKC97d21vZGV9L2csYi53bW9kZSkucmVwbGFjZSgve3BhdGh9L2csbW92aWUpO2JyZWFrO2Nhc2UgInZpbWVvIjpkPWcobW92aWVfd2lkdGgsbW92aWVfaGVpZ2h0KTttb3ZpZV9pZD1wcF9pbWFnZXNbc2V0X3Bvc2l0aW9uXTttb3ZpZT0iaHR0cDovL3BsYXllci52aW1lby5jb20vdmlkZW8vIittb3ZpZV9pZC5tYXRjaCgvaHR0cChzPyk6XC9cLyh3d3dcLik\/dmltZW8uY29tXC8oXGQrKS8pWzNdKyI\/dGl0bGU9MCZhbXA7YnlsaW5lPTAmYW1wO3BvcnRyYWl0PTAiO2IuYXV0b3BsYXkmJihtb3ZpZSs9IiZhdXRvcGxheT0xOyIpO3ZpbWVvX3dpZHRoPWQud2lkdGgrIi9lbWJlZC8\/bW9vZ193aWR0aD0iK2Qud2lkdGg7dG9JbmplY3Q9Yi5pZnJhbWVfbWFya3VwLnJlcGxhY2UoL3t3aWR0aH0vZyx2aW1lb193aWR0aCkucmVwbGFjZSgve2hlaWdodH0vZywKZC5oZWlnaHQpLnJlcGxhY2UoL3twYXRofS9nLG1vdmllKTticmVhaztjYXNlICJtcDQiOmQ9Zyhtb3ZpZV93aWR0aCxtb3ZpZV9oZWlnaHQpO21vdmllX3VybD1wcF9pbWFnZXNbc2V0X3Bvc2l0aW9uXTt0b0luamVjdD1iLm1wNF9tYXJrdXAucmVwbGFjZSgve3BhdGh9L2csbW92aWVfdXJsKTticmVhaztjYXNlICJxdWlja3RpbWUiOmQ9Zyhtb3ZpZV93aWR0aCxtb3ZpZV9oZWlnaHQpO2QuaGVpZ2h0Kz0xNTtkLmNvbnRlbnRIZWlnaHQrPTE1O2QuY29udGFpbmVySGVpZ2h0Kz0xNTt0b0luamVjdD1iLnF1aWNrdGltZV9tYXJrdXAucmVwbGFjZSgve3dpZHRofS9nLGQud2lkdGgpLnJlcGxhY2UoL3toZWlnaHR9L2csZC5oZWlnaHQpLnJlcGxhY2UoL3t3bW9kZX0vZyxiLndtb2RlKS5yZXBsYWNlKC97cGF0aH0vZyxwcF9pbWFnZXNbc2V0X3Bvc2l0aW9uXSkucmVwbGFjZSgve2F1dG9wbGF5fS9nLGIuYXV0b3BsYXkpO2JyZWFrO2Nhc2UgImZsYXNoIjpkPWcobW92aWVfd2lkdGgsCm1vdmllX2hlaWdodCk7Zmxhc2hfdmFycz1wcF9pbWFnZXNbc2V0X3Bvc2l0aW9uXTtmbGFzaF92YXJzPWZsYXNoX3ZhcnMuc3Vic3RyaW5nKHBwX2ltYWdlc1tzZXRfcG9zaXRpb25dLmluZGV4T2YoImZsYXNodmFycyIpKzEwLHBwX2ltYWdlc1tzZXRfcG9zaXRpb25dLmxlbmd0aCk7ZmlsZW5hbWU9cHBfaW1hZ2VzW3NldF9wb3NpdGlvbl07ZmlsZW5hbWU9ZmlsZW5hbWUuc3Vic3RyaW5nKDAsZmlsZW5hbWUuaW5kZXhPZigiPyIpKTt0b0luamVjdD1iLmZsYXNoX21hcmt1cC5yZXBsYWNlKC97d2lkdGh9L2csZC53aWR0aCkucmVwbGFjZSgve2hlaWdodH0vZyxkLmhlaWdodCkucmVwbGFjZSgve3dtb2RlfS9nLGIud21vZGUpLnJlcGxhY2UoL3twYXRofS9nLGZpbGVuYW1lKyI\/IitmbGFzaF92YXJzKTticmVhaztjYXNlICJpZnJhbWUiOmQ9Zyhtb3ZpZV93aWR0aCxtb3ZpZV9oZWlnaHQpO2ZyYW1lX3VybD1wcF9pbWFnZXNbc2V0X3Bvc2l0aW9uXTtmcmFtZV91cmw9ZnJhbWVfdXJsLnN1YnN0cigwLApmcmFtZV91cmwuaW5kZXhPZigiaWZyYW1lIiktMSk7dG9JbmplY3Q9Yi5pZnJhbWVfbWFya3VwLnJlcGxhY2UoL3t3aWR0aH0vZyxkLndpZHRoKS5yZXBsYWNlKC97aGVpZ2h0fS9nLGQuaGVpZ2h0KS5yZXBsYWNlKC97cGF0aH0vZyxmcmFtZV91cmwpO2JyZWFrO2Nhc2UgImFqYXgiOmRvcmVzaXplPSExO2Q9Zyhtb3ZpZV93aWR0aCxtb3ZpZV9oZWlnaHQpO3NraXBJbmplY3Rpb249ZG9yZXNpemU9ITA7YS5nZXQocHBfaW1hZ2VzW3NldF9wb3NpdGlvbl0sZnVuY3Rpb24oSCl7dG9JbmplY3Q9Yi5pbmxpbmVfbWFya3VwLnJlcGxhY2UoL3tjb250ZW50fS9nLEgpOyRwcF9waWNfaG9sZGVyLmZpbmQoIiNwcF9mdWxsX3JlcyIpWzBdLmlubmVySFRNTD10b0luamVjdDtwKCl9KTticmVhaztjYXNlICJjdXN0b20iOmQ9Zyhtb3ZpZV93aWR0aCxtb3ZpZV9oZWlnaHQpO3RvSW5qZWN0PWIuY3VzdG9tX21hcmt1cDticmVhaztjYXNlICJpbmxpbmUiOm15Q2xvbmU9YShwcF9pbWFnZXNbc2V0X3Bvc2l0aW9uXSkuY2xvbmUoKS5hcHBlbmQoJzxiciBjbGVhcj0iYWxsIiAvPicpLmNzcyh7d2lkdGg6Yi5kZWZhdWx0X3dpZHRofSkud3JhcElubmVyKCc8ZGl2IGlkPSJwcF9mdWxsX3JlcyI+PGRpdiBjbGFzcz0icHBfaW5saW5lIj48L2Rpdj48L2Rpdj4nKS5hcHBlbmRUbyhhKCJib2R5IikpLnNob3coKSwKZG9yZXNpemU9ITEsZD1nKGEobXlDbG9uZSkud2lkdGgoKSxhKG15Q2xvbmUpLmhlaWdodCgpKSxkb3Jlc2l6ZT0hMCxhKG15Q2xvbmUpLnJlbW92ZSgpLHRvSW5qZWN0PWIuaW5saW5lX21hcmt1cC5yZXBsYWNlKC97Y29udGVudH0vZyxhKHBwX2ltYWdlc1tzZXRfcG9zaXRpb25dKS5odG1sKCkpfWltZ1ByZWxvYWRlcnx8c2tpcEluamVjdGlvbnx8KCRwcF9waWNfaG9sZGVyLmZpbmQoIiNwcF9mdWxsX3JlcyIpWzBdLmlubmVySFRNTD10b0luamVjdCxwKCkpfSk7cmV0dXJuITF9O2EucHJldHR5UGhvdG8uY2hhbmdlUGFnZT1mdW5jdGlvbihjKXtjdXJyZW50R2FsbGVyeVBhZ2U9MDsicHJldmlvdXMiPT1jPyhzZXRfcG9zaXRpb24tLSwwPnNldF9wb3NpdGlvbiYmKHNldF9wb3NpdGlvbj1hKHBwX2ltYWdlcykubGVuZ3RoLTEpKToibmV4dCI9PWM\/KHNldF9wb3NpdGlvbisrLHNldF9wb3NpdGlvbj5hKHBwX2ltYWdlcykubGVuZ3RoLTEmJihzZXRfcG9zaXRpb249MCkpOnNldF9wb3NpdGlvbj0KYztyZWxfaW5kZXg9c2V0X3Bvc2l0aW9uO2RvcmVzaXplfHwoZG9yZXNpemU9ITApO2IuYWxsb3dfZXhwYW5kJiZhKCIucHBfY29udHJhY3QiKS5yZW1vdmVDbGFzcygicHBfY29udHJhY3QiKS5hZGRDbGFzcygicHBfZXhwYW5kIik7eihmdW5jdGlvbigpe2EucHJldHR5UGhvdG8ub3BlbigpfSl9O2EucHJldHR5UGhvdG8uY2hhbmdlR2FsbGVyeVBhZ2U9ZnVuY3Rpb24oYyl7Im5leHQiPT1jPyhjdXJyZW50R2FsbGVyeVBhZ2UrKyxjdXJyZW50R2FsbGVyeVBhZ2U+dG90YWxQYWdlJiYoY3VycmVudEdhbGxlcnlQYWdlPTApKToicHJldmlvdXMiPT1jPyhjdXJyZW50R2FsbGVyeVBhZ2UtLSwwPmN1cnJlbnRHYWxsZXJ5UGFnZSYmKGN1cnJlbnRHYWxsZXJ5UGFnZT10b3RhbFBhZ2UpKTpjdXJyZW50R2FsbGVyeVBhZ2U9YztzbGlkZV9zcGVlZD0ibmV4dCI9PWN8fCJwcmV2aW91cyI9PWM\/Yi5hbmltYXRpb25fc3BlZWQ6MDtzbGlkZV90bz1jdXJyZW50R2FsbGVyeVBhZ2UqaXRlbXNQZXJQYWdlKgppdGVtV2lkdGg7JHBwX2dhbGxlcnkuZmluZCgidWwiKS5hbmltYXRlKHtsZWZ0Oi1zbGlkZV90b30sc2xpZGVfc3BlZWQpfTthLnByZXR0eVBob3RvLnN0YXJ0U2xpZGVzaG93PWZ1bmN0aW9uKCl7InVuZGVmaW5lZCI9PXR5cGVvZiBxPygkcHBfcGljX2hvbGRlci5maW5kKCIucHBfcGxheSIpLm9mZigiY2xpY2siKS5yZW1vdmVDbGFzcygicHBfcGxheSIpLmFkZENsYXNzKCJwcF9wYXVzZSIpLm9uKCJjbGljayIsZnVuY3Rpb24oKXthLnByZXR0eVBob3RvLnN0b3BTbGlkZXNob3coKTtyZXR1cm4hMX0pLHE9c2V0SW50ZXJ2YWwoYS5wcmV0dHlQaG90by5zdGFydFNsaWRlc2hvdyxiLnNsaWRlc2hvdykpOmEucHJldHR5UGhvdG8uY2hhbmdlUGFnZSgibmV4dCIpfTthLnByZXR0eVBob3RvLnN0b3BTbGlkZXNob3c9ZnVuY3Rpb24oKXskcHBfcGljX2hvbGRlci5maW5kKCIucHBfcGF1c2UiKS5vZmYoImNsaWNrIikucmVtb3ZlQ2xhc3MoInBwX3BhdXNlIikuYWRkQ2xhc3MoInBwX3BsYXkiKS5vbigiY2xpY2siLApmdW5jdGlvbigpe2EucHJldHR5UGhvdG8uc3RhcnRTbGlkZXNob3coKTtyZXR1cm4hMX0pO2NsZWFySW50ZXJ2YWwocSk7cT12b2lkIDB9O2EucHJldHR5UGhvdG8uY2xvc2U9ZnVuY3Rpb24oKXskcHBfb3ZlcmxheS5pcygiOmFuaW1hdGVkIil8fChhLnByZXR0eVBob3RvLnN0b3BTbGlkZXNob3coKSwkcHBfcGljX2hvbGRlci5zdG9wKCkuZmluZCgib2JqZWN0LGVtYmVkIikuY3NzKCJ2aXNpYmlsaXR5IiwiaGlkZGVuIiksYSgiZGl2LnBwX3BpY19ob2xkZXIsZGl2LnBwdCwucHBfZmFkZSIpLmZhZGVPdXQoYi5hbmltYXRpb25fc3BlZWQsZnVuY3Rpb24oKXthKHRoaXMpLnJlbW92ZSgpfSksJHBwX292ZXJsYXkuZmFkZU91dChiLmFuaW1hdGlvbl9zcGVlZCxmdW5jdGlvbigpe2IuaGlkZWZsYXNoJiZhKCJvYmplY3QsZW1iZWQsaWZyYW1lW3NyYyo9eW91dHViZV0saWZyYW1lW3NyYyo9dmltZW9dIikuY3NzKCJ2aXNpYmlsaXR5IiwidmlzaWJsZSIpO2EodGhpcykucmVtb3ZlKCk7CmEod2luZG93KS5vZmYoInNjcm9sbC5wcmV0dHlwaG90byIpOy0xIT09bG9jYXRpb24uaHJlZi5pbmRleE9mKCIjcHJldHR5UGhvdG8iKSYmKGxvY2F0aW9uLmhhc2g9InByZXR0eVBob3RvIik7Yi5jYWxsYmFjaygpO2RvcmVzaXplPSEwO3U9ITE7ZGVsZXRlIGJ9KSl9OyFwcF9hbHJlYWR5SW5pdGlhbGl6ZWQmJnkoKSYmKHBwX2FscmVhZHlJbml0aWFsaXplZD0hMCxoYXNoUmVsPWhhc2hJbmRleD15KCksaGFzaEluZGV4PWhhc2hJbmRleC5zdWJzdHJpbmcoaGFzaEluZGV4LmluZGV4T2YoIi8iKSsxLGhhc2hJbmRleC5sZW5ndGgtMSksaGFzaFJlbD1oYXNoUmVsLnN1YnN0cmluZygwLGhhc2hSZWwuaW5kZXhPZigiLyIpKSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7YSgiYVsiK2UuaG9vaysiXj0nIitoYXNoUmVsKyInXTplcSgiK2hhc2hJbmRleCsiKSIpLnRyaWdnZXIoImNsaWNrIil9LDUwKSk7cmV0dXJuIHRoaXMub2ZmKCJjbGljay5wcmV0dHlwaG90byIpLm9uKCJjbGljay5wcmV0dHlwaG90byIsCmEucHJldHR5UGhvdG8uaW5pdGlhbGl6ZSl9fSkoalF1ZXJ5KTt2YXIgcHBfYWxyZWFkeUluaXRpYWxpemVkPSExOwovKiogL2pzL2pxdWVyeS50cmFuc2l0aW9uLm1pbi5qcyAqKi8KLyohCiAqIGpRdWVyeSBUcmFuc2l0IC0gQ1NTMyB0cmFuc2l0aW9ucyBhbmQgdHJhbnNmb3JtYXRpb25zCiAqIENvcHlyaWdodChjKSAyMDExIFJpY28gU3RhLiBDcnV6IDxyaWNvQHJpY29zdGFjcnV6LmNvbT4KICogTUlUIExpY2Vuc2VkLgogKgogKiBodHRwOi8vcmljb3N0YWNydXouY29tL2pxdWVyeS50cmFuc2l0CiAqIGh0dHA6Ly9naXRodWIuY29tL3JzdGFjcnV6L2pxdWVyeS50cmFuc2l0CiAqLwooZnVuY3Rpb24oZCl7ZnVuY3Rpb24gayhhKXt2YXIgYj1bIk1veiIsIldlYmtpdCIsIk8iLCJtcyJdLGM9YS5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSthLnN1YnN0cigxKTtpZihhIGluIGkuc3R5bGUpcmV0dXJuIGE7Zm9yKGE9MDthPGIubGVuZ3RoOysrYSl7dmFyIGQ9YlthXStjO2lmKGQgaW4gaS5zdHlsZSlyZXR1cm4gZH19ZnVuY3Rpb24gaihhKXsic3RyaW5nIj09PXR5cGVvZiBhJiZ0aGlzLnBhcnNlKGEpO3JldHVybiB0aGlzfWZ1bmN0aW9uIHAoYSxiLGMpeyEwPT09Yj9hLnF1ZXVlKGMpOmI\/YS5xdWV1ZShiLGMpOmMoKX1mdW5jdGlvbiBtKGEpe3ZhciBiPVtdO2QuZWFjaChhLGZ1bmN0aW9uKGEpe2E9ZC5jYW1lbENhc2UoYSk7YT1kLnRyYW5zaXQucHJvcGVydHlNYXBbYV18fGE7YT1yKGEpOy0xPT09ZC5pbkFycmF5KGEsYikmJmIucHVzaChhKX0pO3JldHVybiBifWZ1bmN0aW9uIHEoYSxiLGMsZSl7YT1tKGEpO2QuY3NzRWFzZVtjXSYmKGM9ZC5jc3NFYXNlW2NdKTsKdmFyIGg9IiIrbihiKSsiICIrYzswPHBhcnNlSW50KGUsMTApJiYoaCs9IiAiK24oZSkpO3ZhciBmPVtdO2QuZWFjaChhLGZ1bmN0aW9uKGEsYil7Zi5wdXNoKGIrIiAiK2gpfSk7cmV0dXJuIGYuam9pbigiLCAiKX1mdW5jdGlvbiBmKGEsYil7Ynx8KGQuY3NzTnVtYmVyW2FdPSEwKTtkLnRyYW5zaXQucHJvcGVydHlNYXBbYV09ZS50cmFuc2Zvcm07ZC5jc3NIb29rc1thXT17Z2V0OmZ1bmN0aW9uKGIpe3JldHVybihkKGIpLmNzcygidHJhbnNmb3JtIil8fG5ldyBqKS5nZXQoYSl9LHNldDpmdW5jdGlvbihiLGUpe3ZhciBoPWQoYikuY3NzKCJ0cmFuc2Zvcm0iKXx8bmV3IGo7aC5zZXRGcm9tU3RyaW5nKGEsZSk7ZChiKS5jc3Moe3RyYW5zZm9ybTpofSl9fX1mdW5jdGlvbiByKGEpe3JldHVybiBhLnJlcGxhY2UoLyhbQS1aXSkvZyxmdW5jdGlvbihhKXtyZXR1cm4iLSIrYS50b0xvd2VyQ2FzZSgpfSl9ZnVuY3Rpb24gZyhhLGIpe3JldHVybiJzdHJpbmciPT09dHlwZW9mIGEmJiFhLm1hdGNoKC9eW1wtMC05XC5dKyQvKT8KYToiIithK2J9ZnVuY3Rpb24gbihhKXtkLmZ4LnNwZWVkc1thXSYmKGE9ZC5meC5zcGVlZHNbYV0pO3JldHVybiBnKGEsIm1zIil9ZC50cmFuc2l0PXt2ZXJzaW9uOiIwLjEuMyIscHJvcGVydHlNYXA6e21hcmdpbkxlZnQ6Im1hcmdpbiIsbWFyZ2luUmlnaHQ6Im1hcmdpbiIsbWFyZ2luQm90dG9tOiJtYXJnaW4iLG1hcmdpblRvcDoibWFyZ2luIixwYWRkaW5nTGVmdDoicGFkZGluZyIscGFkZGluZ1JpZ2h0OiJwYWRkaW5nIixwYWRkaW5nQm90dG9tOiJwYWRkaW5nIixwYWRkaW5nVG9wOiJwYWRkaW5nIn0sZW5hYmxlZDohMCx1c2VUcmFuc2l0aW9uRW5kOiExfTt2YXIgaT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSxlPXt9LHM9LTE8bmF2aWdhdG9yLnVzZXJBZ2VudC50b0xvd2VyQ2FzZSgpLmluZGV4T2YoImNocm9tZSIpO2UudHJhbnNpdGlvbj1rKCJ0cmFuc2l0aW9uIik7ZS50cmFuc2l0aW9uRGVsYXk9aygidHJhbnNpdGlvbkRlbGF5Iik7ZS50cmFuc2Zvcm09aygidHJhbnNmb3JtIik7CmUudHJhbnNmb3JtT3JpZ2luPWsoInRyYW5zZm9ybU9yaWdpbiIpO2kuc3R5bGVbZS50cmFuc2Zvcm1dPSIiO2kuc3R5bGVbZS50cmFuc2Zvcm1dPSJyb3RhdGVZKDkwZGVnKSI7ZS50cmFuc2Zvcm0zZD0iIiE9PWkuc3R5bGVbZS50cmFuc2Zvcm1dO2QuZXh0ZW5kKGQuc3VwcG9ydCxlKTt2YXIgbz1lLnRyYW5zaXRpb25FbmQ9e01velRyYW5zaXRpb246InRyYW5zaXRpb25lbmQiLE9UcmFuc2l0aW9uOiJvVHJhbnNpdGlvbkVuZCIsV2Via2l0VHJhbnNpdGlvbjoid2Via2l0VHJhbnNpdGlvbkVuZCIsbXNUcmFuc2l0aW9uOiJNU1RyYW5zaXRpb25FbmQifVtlLnRyYW5zaXRpb25dfHxudWxsLGk9bnVsbDtkLmNzc0Vhc2U9e19kZWZhdWx0OiJlYXNlIiwiaW4iOiJlYXNlLWluIixvdXQ6ImVhc2Utb3V0IiwiaW4tb3V0IjoiZWFzZS1pbi1vdXQiLHNuYXA6ImN1YmljLWJlemllcigwLDEsLjUsMSkifTtkLmNzc0hvb2tzLnRyYW5zZm9ybT17Z2V0OmZ1bmN0aW9uKGEpe3JldHVybiBkKGEpLmRhdGEoInRyYW5zZm9ybSIpfSwKc2V0OmZ1bmN0aW9uKGEsYil7dmFyIGM9YjtjIGluc3RhbmNlb2Yganx8KGM9bmV3IGooYykpO2Euc3R5bGVbZS50cmFuc2Zvcm1dPSJXZWJraXRUcmFuc2Zvcm0iPT09ZS50cmFuc2Zvcm0mJiFzP2MudG9TdHJpbmcoITApOmMudG9TdHJpbmcoKTtkKGEpLmRhdGEoInRyYW5zZm9ybSIsYyl9fTtkLmNzc0hvb2tzLnRyYW5zZm9ybU9yaWdpbj17Z2V0OmZ1bmN0aW9uKGEpe3JldHVybiBhLnN0eWxlW2UudHJhbnNmb3JtT3JpZ2luXX0sc2V0OmZ1bmN0aW9uKGEsYil7YS5zdHlsZVtlLnRyYW5zZm9ybU9yaWdpbl09Yn19O2QuY3NzSG9va3MudHJhbnNpdGlvbj17Z2V0OmZ1bmN0aW9uKGEpe3JldHVybiBhLnN0eWxlW2UudHJhbnNpdGlvbl19LHNldDpmdW5jdGlvbihhLGIpe2Euc3R5bGVbZS50cmFuc2l0aW9uXT1ifX07Zigic2NhbGUiKTtmKCJ0cmFuc2xhdGUiKTtmKCJyb3RhdGUiKTtmKCJyb3RhdGVYIik7Zigicm90YXRlWSIpO2YoInJvdGF0ZTNkIik7ZigicGVyc3BlY3RpdmUiKTsKZigic2tld1giKTtmKCJza2V3WSIpO2YoIngiLCEwKTtmKCJ5IiwhMCk7ai5wcm90b3R5cGU9e3NldEZyb21TdHJpbmc6ZnVuY3Rpb24oYSxiKXt2YXIgYz0ic3RyaW5nIj09PXR5cGVvZiBiP2Iuc3BsaXQoIiwiKTpiLmNvbnN0cnVjdG9yPT09QXJyYXk\/YjpbYl07Yy51bnNoaWZ0KGEpO2oucHJvdG90eXBlLnNldC5hcHBseSh0aGlzLGMpfSxzZXQ6ZnVuY3Rpb24oYSl7dmFyIGI9QXJyYXkucHJvdG90eXBlLnNsaWNlLmFwcGx5KGFyZ3VtZW50cyxbMV0pO3RoaXMuc2V0dGVyW2FdP3RoaXMuc2V0dGVyW2FdLmFwcGx5KHRoaXMsYik6dGhpc1thXT1iLmpvaW4oIiwiKX0sZ2V0OmZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLmdldHRlclthXT90aGlzLmdldHRlclthXS5hcHBseSh0aGlzKTp0aGlzW2FdfHwwfSxzZXR0ZXI6e3JvdGF0ZTpmdW5jdGlvbihhKXt0aGlzLnJvdGF0ZT1nKGEsImRlZyIpfSxyb3RhdGVYOmZ1bmN0aW9uKGEpe3RoaXMucm90YXRlWD1nKGEsImRlZyIpfSxyb3RhdGVZOmZ1bmN0aW9uKGEpe3RoaXMucm90YXRlWT0KZyhhLCJkZWciKX0sc2NhbGU6ZnVuY3Rpb24oYSxiKXt2b2lkIDA9PT1iJiYoYj1hKTt0aGlzLnNjYWxlPWErIiwiK2J9LHNrZXdYOmZ1bmN0aW9uKGEpe3RoaXMuc2tld1g9ZyhhLCJkZWciKX0sc2tld1k6ZnVuY3Rpb24oYSl7dGhpcy5za2V3WT1nKGEsImRlZyIpfSxwZXJzcGVjdGl2ZTpmdW5jdGlvbihhKXt0aGlzLnBlcnNwZWN0aXZlPWcoYSwicHgiKX0seDpmdW5jdGlvbihhKXt0aGlzLnNldCgidHJhbnNsYXRlIixhLG51bGwpfSx5OmZ1bmN0aW9uKGEpe3RoaXMuc2V0KCJ0cmFuc2xhdGUiLG51bGwsYSl9LHRyYW5zbGF0ZTpmdW5jdGlvbihhLGIpe3ZvaWQgMD09PXRoaXMuX3RyYW5zbGF0ZVgmJih0aGlzLl90cmFuc2xhdGVYPTApO3ZvaWQgMD09PXRoaXMuX3RyYW5zbGF0ZVkmJih0aGlzLl90cmFuc2xhdGVZPTApO251bGwhPT1hJiYodGhpcy5fdHJhbnNsYXRlWD1nKGEsInB4IikpO251bGwhPT1iJiYodGhpcy5fdHJhbnNsYXRlWT1nKGIsInB4IikpO3RoaXMudHJhbnNsYXRlPQp0aGlzLl90cmFuc2xhdGVYKyIsIit0aGlzLl90cmFuc2xhdGVZfX0sZ2V0dGVyOnt4OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3RyYW5zbGF0ZVh8fDB9LHk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fdHJhbnNsYXRlWXx8MH0sc2NhbGU6ZnVuY3Rpb24oKXt2YXIgYT0odGhpcy5zY2FsZXx8IjEsMSIpLnNwbGl0KCIsIik7YVswXSYmKGFbMF09cGFyc2VGbG9hdChhWzBdKSk7YVsxXSYmKGFbMV09cGFyc2VGbG9hdChhWzFdKSk7cmV0dXJuIGFbMF09PT1hWzFdP2FbMF06YX0scm90YXRlM2Q6ZnVuY3Rpb24oKXtmb3IodmFyIGE9KHRoaXMucm90YXRlM2R8fCIwLDAsMCwwZGVnIikuc3BsaXQoIiwiKSxiPTA7Mz49YjsrK2IpYVtiXSYmKGFbYl09cGFyc2VGbG9hdChhW2JdKSk7YVszXSYmKGFbM109ZyhhWzNdLCJkZWciKSk7cmV0dXJuIGF9fSxwYXJzZTpmdW5jdGlvbihhKXt2YXIgYj10aGlzO2EucmVwbGFjZSgvKFthLXpBLVowLTldKylcKCguKj8pXCkvZyxmdW5jdGlvbihhLGQsCmUpe2Iuc2V0RnJvbVN0cmluZyhkLGUpfSl9LHRvU3RyaW5nOmZ1bmN0aW9uKGEpe3ZhciBiPVtdLGM7Zm9yKGMgaW4gdGhpcylpZih0aGlzLmhhc093blByb3BlcnR5KGMpJiYoZS50cmFuc2Zvcm0zZHx8ISgicm90YXRlWCI9PT1jfHwicm90YXRlWSI9PT1jfHwicGVyc3BlY3RpdmUiPT09Y3x8InRyYW5zZm9ybU9yaWdpbiI9PT1jKSkpIl8iIT09Y1swXSYmKGEmJiJzY2FsZSI9PT1jP2IucHVzaChjKyIzZCgiK3RoaXNbY10rIiwxKSIpOmEmJiJ0cmFuc2xhdGUiPT09Yz9iLnB1c2goYysiM2QoIit0aGlzW2NdKyIsMCkiKTpiLnB1c2goYysiKCIrdGhpc1tjXSsiKSIpKTtyZXR1cm4gYi5qb2luKCIgIil9fTtkLmZuLnRyYW5zaXRpb249ZC5mbi50cmFuc2l0PWZ1bmN0aW9uKGEsYixjLGYpe3ZhciBoPXRoaXMsZz0wLGk9ITA7ImZ1bmN0aW9uIj09PXR5cGVvZiBiJiYoZj1iLGI9dm9pZCAwKTsiZnVuY3Rpb24iPT09dHlwZW9mIGMmJihmPWMsYz12b2lkIDApOyJ1bmRlZmluZWQiIT09CnR5cGVvZiBhLmVhc2luZyYmKGM9YS5lYXNpbmcsZGVsZXRlIGEuZWFzaW5nKTsidW5kZWZpbmVkIiE9PXR5cGVvZiBhLmR1cmF0aW9uJiYoYj1hLmR1cmF0aW9uLGRlbGV0ZSBhLmR1cmF0aW9uKTsidW5kZWZpbmVkIiE9PXR5cGVvZiBhLmNvbXBsZXRlJiYoZj1hLmNvbXBsZXRlLGRlbGV0ZSBhLmNvbXBsZXRlKTsidW5kZWZpbmVkIiE9PXR5cGVvZiBhLnF1ZXVlJiYoaT1hLnF1ZXVlLGRlbGV0ZSBhLnF1ZXVlKTsidW5kZWZpbmVkIiE9PXR5cGVvZiBhLmRlbGF5JiYoZz1hLmRlbGF5LGRlbGV0ZSBhLmRlbGF5KTsidW5kZWZpbmVkIj09PXR5cGVvZiBiJiYoYj1kLmZ4LnNwZWVkcy5fZGVmYXVsdCk7InVuZGVmaW5lZCI9PT10eXBlb2YgYyYmKGM9ZC5jc3NFYXNlLl9kZWZhdWx0KTt2YXIgYj1uKGIpLGo9cShhLGIsYyxnKSxsPWQudHJhbnNpdC5lbmFibGVkJiZlLnRyYW5zaXRpb24\/cGFyc2VJbnQoYiwxMCkrcGFyc2VJbnQoZywxMCk6MDtpZigwPT09bClyZXR1cm4gcChoLGksZnVuY3Rpb24oYil7aC5jc3MoYSk7CmYmJmYuYXBwbHkoaCk7YiYmYigpfSksaDt2YXIgaz17fSxtPWZ1bmN0aW9uKGIpe3ZhciBjPWZhbHNlLGc9ZnVuY3Rpb24oKXtjJiZoLm9mZihvLGcpO2w+MCYmaC5lYWNoKGZ1bmN0aW9uKCl7dGhpcy5zdHlsZVtlLnRyYW5zaXRpb25dPWtbdGhpc118fG51bGx9KTt0eXBlb2YgZj09PSJmdW5jdGlvbiImJmYuYXBwbHkoaCk7dHlwZW9mIGI9PT0iZnVuY3Rpb24iJiZiKCl9O2lmKGw+MCYmbyYmZC50cmFuc2l0LnVzZVRyYW5zaXRpb25FbmQpe2M9dHJ1ZTtoLm9uKG8sZyl9ZWxzZSB3aW5kb3cuc2V0VGltZW91dChnLGwpO2guZWFjaChmdW5jdGlvbigpe2w+MCYmKHRoaXMuc3R5bGVbZS50cmFuc2l0aW9uXT1qKTtkKHRoaXMpLmNzcyhhKX0pfTtwKGgsaSxmdW5jdGlvbihhKXt2YXIgYj0wO2UudHJhbnNpdGlvbj09PSJNb3pUcmFuc2l0aW9uIiYmYjwyNSYmKGI9MjUpO3dpbmRvdy5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7bShhKX0sYil9KTtyZXR1cm4gdGhpc307ZC50cmFuc2l0LmdldFRyYW5zaXRpb25WYWx1ZT0KcX0pKGpRdWVyeSk7LypFT0YqLzsKLyoqIC9qcy9qcXVlcnkudG91Y2hTd2lwZS5taW4uanMgKiovCihmdW5jdGlvbihnKXtnLmZuLnN3aXBlPWZ1bmN0aW9uKG0pe2lmKCF0aGlzKXJldHVybiBmYWxzZTt2YXIgYj17ZmluZ2VyczoxLHRocmVzaG9sZDo3NSxzd2lwZTpudWxsLHN3aXBlTGVmdDpudWxsLHN3aXBlUmlnaHQ6bnVsbCxzd2lwZVVwOm51bGwsc3dpcGVEb3duOm51bGwsc3dpcGVTdGF0dXM6bnVsbCxjbGljazpudWxsLHRyaWdnZXJPblRvdWNoRW5kOnRydWUsYWxsb3dQYWdlU2Nyb2xsOiJhdXRvIn0scD0ibGVmdCIsdj0icmlnaHQiLHc9InVwIix4PSJkb3duIix5PSJub25lIix6PSJob3Jpem9udGFsIixBPSJ2ZXJ0aWNhbCIsRz0iYXV0byIsSD0ic3RhcnQiLEI9Im1vdmUiLHE9ImVuZCIsbj0iY2FuY2VsIixkPSJvbnRvdWNoc3RhcnQiaW4gd2luZG93LEM9ZD8idG91Y2hzdGFydCI6Im1vdXNlZG93biIscj1kPyJ0b3VjaG1vdmUiOiJtb3VzZW1vdmUiLHM9ZD8idG91Y2hlbmQiOiJtb3VzZXVwIixjPSJzdGFydCI7aWYobS5hbGxvd1BhZ2VTY3JvbGw9PXVuZGVmaW5lZCYmDQoobS5zd2lwZSE9dW5kZWZpbmVkfHxtLnN3aXBlU3RhdHVzIT11bmRlZmluZWQpKW0uYWxsb3dQYWdlU2Nyb2xsPXk7bSYmZy5leHRlbmQoYixtKTtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7ZnVuY3Rpb24gRChhKXt2YXIgZT1kP2EudG91Y2hlc1swXTphO2M9SDtpZihkKWs9YS50b3VjaGVzLmxlbmd0aDtkaXN0YW5jZT0wO2RpcmVjdGlvbj1udWxsO2lmKGs9PWIuZmluZ2Vyc3x8IWQpe2gueD1mLng9ZS5wYWdlWDtoLnk9Zi55PWUucGFnZVk7Yi5zd2lwZVN0YXR1cyYmbyhhLGMpfWVsc2UgbChhKTtpZihkKXtkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKHIsdCk7ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihzLHUpfWVsc2V7Zyhkb2N1bWVudCkub24ocix0KTtnKGRvY3VtZW50KS5vbihzLHUpfX1mdW5jdGlvbiB0KGEpe2lmKCEoYz09cXx8Yz09bikpe3ZhciBlPWQ\/YS50b3VjaGVzWzBdOmE7Zi54PWUucGFnZVg7Zi55PWUucGFnZVk7ZGlyZWN0aW9uPUUoKTtpZihkKWs9DQphLnRvdWNoZXMubGVuZ3RoO2M9QjtlPWRpcmVjdGlvbjtpZihiLmFsbG93UGFnZVNjcm9sbD09eSlhLnByZXZlbnREZWZhdWx0KCk7ZWxzZXt2YXIgaT1iLmFsbG93UGFnZVNjcm9sbD09Rztzd2l0Y2goZSl7Y2FzZSBwOmlmKGIuc3dpcGVMZWZ0JiZpfHwhaSYmYi5hbGxvd1BhZ2VTY3JvbGwhPXopYS5wcmV2ZW50RGVmYXVsdCgpO2JyZWFrO2Nhc2UgdjppZihiLnN3aXBlUmlnaHQmJml8fCFpJiZiLmFsbG93UGFnZVNjcm9sbCE9eilhLnByZXZlbnREZWZhdWx0KCk7YnJlYWs7Y2FzZSB3OmlmKGIuc3dpcGVVcCYmaXx8IWkmJmIuYWxsb3dQYWdlU2Nyb2xsIT1BKWEucHJldmVudERlZmF1bHQoKTticmVhaztjYXNlIHg6aWYoYi5zd2lwZURvd24mJml8fCFpJiZiLmFsbG93UGFnZVNjcm9sbCE9QSlhLnByZXZlbnREZWZhdWx0KCl9fWlmKGs9PWIuZmluZ2Vyc3x8IWQpe2Rpc3RhbmNlPUYoKTtiLnN3aXBlU3RhdHVzJiZvKGEsYyxkaXJlY3Rpb24sZGlzdGFuY2UpO2lmKCFiLnRyaWdnZXJPblRvdWNoRW5kKWlmKGRpc3RhbmNlPj0NCmIudGhyZXNob2xkKXtjPXE7byhhLGMpO2woYSl9fWVsc2V7Yz1uO28oYSxjKTtsKGEpfX19ZnVuY3Rpb24gdShhKXthLnByZXZlbnREZWZhdWx0KCk7ZGlzdGFuY2U9RigpO2RpcmVjdGlvbj1FKCk7aWYoYi50cmlnZ2VyT25Ub3VjaEVuZCl7Yz1xO2lmKChrPT1iLmZpbmdlcnN8fCFkKSYmZi54IT0wKWRpc3RhbmNlPj1iLnRocmVzaG9sZHx8KGM9bik7ZWxzZSBjPW47byhhLGMpO2woYSl9ZWxzZSBpZihjPT1CKXtjPW47byhhLGMpO2woYSl9aWYoZCl7ZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihyLHQpO2RvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIocyx1KX1lbHNle2coZG9jdW1lbnQpLm9mZihyLHQpO2coZG9jdW1lbnQpLm9mZihzLHUpfX1mdW5jdGlvbiBsKCl7az0wO2gueD0wO2gueT0wO2YueD0wO2YueT0wfWZ1bmN0aW9uIG8oYSxlKXtpZihiLnN3aXBlU3RhdHVzKWIuc3dpcGVTdGF0dXMuY2FsbChqLGEsZSxkaXJlY3Rpb258fG51bGwsZGlzdGFuY2V8fA0KMCk7aWYoZT09bilpZihiLmNsaWNrJiYoaz09MXx8IWQpJiYoaXNOYU4oZGlzdGFuY2UpfHxkaXN0YW5jZT09MCkpYi5jbGljay5jYWxsKGosYSxhLnRhcmdldCk7aWYoZT09cSl7Yi5zd2lwZSYmYi5zd2lwZS5jYWxsKGosYSxkaXJlY3Rpb24sZGlzdGFuY2UpO3N3aXRjaChkaXJlY3Rpb24pe2Nhc2UgcDpiLnN3aXBlTGVmdCYmYi5zd2lwZUxlZnQuY2FsbChqLGEsZGlyZWN0aW9uLGRpc3RhbmNlKTticmVhaztjYXNlIHY6Yi5zd2lwZVJpZ2h0JiZiLnN3aXBlUmlnaHQuY2FsbChqLGEsZGlyZWN0aW9uLGRpc3RhbmNlKTticmVhaztjYXNlIHc6Yi5zd2lwZVVwJiZiLnN3aXBlVXAuY2FsbChqLGEsZGlyZWN0aW9uLGRpc3RhbmNlKTticmVhaztjYXNlIHg6Yi5zd2lwZURvd24mJmIuc3dpcGVEb3duLmNhbGwoaixhLGRpcmVjdGlvbixkaXN0YW5jZSl9fX1mdW5jdGlvbiBGKCl7cmV0dXJuIE1hdGgucm91bmQoTWF0aC5zcXJ0KE1hdGgucG93KGYueC1oLngsMikrTWF0aC5wb3coZi55LQ0KaC55LDIpKSl9ZnVuY3Rpb24gRSgpe3ZhciBhO2E9TWF0aC5yb3VuZChNYXRoLmF0YW4yKGYueS1oLnksaC54LWYueCkqMTgwL01hdGguUEkpO2lmKGE8MClhPTM2MC1NYXRoLmFicyhhKTthPWE7cmV0dXJuIGE8PTQ1JiZhPj0wP3A6YTw9MzYwJiZhPj0zMTU\/cDphPj0xMzUmJmE8PTIyNT92OmE+NDUmJmE8MTM1P3g6d312YXIgaj1nKHRoaXMpLGs9MCxoPXt4OjAseTowfSxmPXt4OjAseTowfTtpZihkKXt0aGlzLmFkZEV2ZW50TGlzdGVuZXIoQyxEKTtkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaGNhbmNlbCIsbCl9ZWxzZXtqLm9uKEMsRCk7Zyhkb2N1bWVudCkub24oInRvdWNoY2FuY2VsIixsKX19KX19KShqUXVlcnkpOy8qRU9GKi87Ci8qKiAvanMvcGFnZWJhbm5lci5qcyAqKi8KdmFyIF9fX2QyY19wYWdlYmFubmVyanNfY19vbj0iMjAyNi0wNi0wNSAxMzozMDowMyI7J3VzZSBzdHJpY3QnO2Z1bmN0aW9uIFBhZ2VCYW5uZXIoYSl7bmV3IFBhZ2VCYW5uZXJzQ2Fyb3VzZWwoYSl9CmZ1bmN0aW9uIG1vdG9pbnNpZ2h0QmFubmVyVmFyaWFibGVSZXBsYWNlbWVudCgpe2lmKCQoIi5qcy1tb3RvaW5zaWdodFNob3BQb3B1cENvbnRhaW5lciIpLmxlbmd0aClpZigkKCIjbmV3U2VjdGlvbk92ZXJyaWRlIikubGVuZ3RoJiYiMSI9PSQoIiNuZXdTZWN0aW9uT3ZlcnJpZGUiKS52YWwoKSlpZigkKCIjTU9UT0lOU0lHSFRfU0hPUElOR19UT09MX1NFTEVDVCIpLmxlbmd0aCYmInRhYiI9PSQoIiNNT1RPSU5TSUdIVF9TSE9QSU5HX1RPT0xfU0VMRUNUIikudmFsKCkpe3ZhciBhPSQoIiNqcy1tb3RvaW5zaWdodFNob3BQb3B1cENvbnRhaW5lci1pbnB1dCIpLnZhbCgpOyQoImRpdiN0b3BCYW5uZXJJbWFnZSIpLmF0dHIoIm9uY2xpY2siLCJ3aW5kb3cub3BlbignIithKyInLCAnX2JsYW5rJykiKS5hdHRyKCJvbnRhcCIsIndpbmRvdy5vcGVuKCciK2ErIicsICdfYmxhbmsnKSIpfWVsc2UgJCgiZGl2I3RvcEJhbm5lckltYWdlIikuYXR0cigib25jbGljayIsIiQoJyNtb3RvaW5zaWdodFNob3BQb3B1cENvbnRhaW5lcicpLnBvcHVwaXplKCkuc2V0VHJpZ2dlcignY2xpY2snKS5vcGVuKCk7cmV0dXJuIGZhbHNlOyIpLmF0dHIoIm9udGFwIiwKIiQoJyNtb3RvaW5zaWdodFNob3BQb3B1cENvbnRhaW5lcicpLnBvcHVwaXplKCkuc2V0VHJpZ2dlcignY2xpY2snKS5vcGVuKCk7cmV0dXJuIGZhbHNlOyIpO2Vsc2UgJCgiI01PVE9JTlNJR0hUX1NIT1BJTkdfVE9PTF9VU0VEX1NFTEVDVCIpLmxlbmd0aCYmInRhYiI9PSQoIiNNT1RPSU5TSUdIVF9TSE9QSU5HX1RPT0xfVVNFRF9TRUxFQ1QiKS52YWwoKT8oYT0kKCIjanMtbW90b2luc2lnaHRTaG9wUG9wdXBDb250YWluZXItaW5wdXQiKS52YWwoKSwkKCJkaXYjdG9wQmFubmVySW1hZ2UiKS5hdHRyKCJvbmNsaWNrIiwid2luZG93Lm9wZW4oJyIrYSsiJywgJ19ibGFuaycpIikuYXR0cigib250YXAiLCJ3aW5kb3cub3BlbignIithKyInLCAnX2JsYW5rJykiKSk6JCgiZGl2I3RvcEJhbm5lckltYWdlIikuYXR0cigib25jbGljayIsIiQoJyNtb3RvaW5zaWdodFNob3BQb3B1cENvbnRhaW5lcicpLnBvcHVwaXplKCkuc2V0VHJpZ2dlcignY2xpY2snKS5vcGVuKCk7cmV0dXJuIGZhbHNlOyIpLmF0dHIoIm9udGFwIiwKIiQoJyNtb3RvaW5zaWdodFNob3BQb3B1cENvbnRhaW5lcicpLnBvcHVwaXplKCkuc2V0VHJpZ2dlcignY2xpY2snKS5vcGVuKCk7cmV0dXJuIGZhbHNlOyIpO2Vsc2UgJCgiI25ld1NlY3Rpb25PdmVycmlkZSIpLmxlbmd0aCYmIjEiPT0kKCIjbmV3U2VjdGlvbk92ZXJyaWRlIikudmFsKCk\/JCgiI01PVE9JTlNJR0hUX1NIT1BJTkdfVE9PTF9TRUxFQ1QiKS5sZW5ndGgmJiJ0YWIiPT0kKCIjTU9UT0lOU0lHSFRfU0hPUElOR19UT09MX1NFTEVDVCIpLnZhbCgpPyhhPSQoIiNtb3RvaW5zaWdodHNob3BzY3JpcHR1cmwiKS52YWwoKSxhPWEucmVwbGFjZSgiaW50ZWdyYXRpb24vaW50ZWdyYXRpb24uanMiLCJzZWFyY2gvIiksJCgiZGl2I3RvcEJhbm5lckltYWdlIikuYXR0cigib25jbGljayIsIndpbmRvdy5vcGVuKCciK2ErIicsICdfYmxhbmsnKSIpLmF0dHIoIm9udGFwIiwid2luZG93Lm9wZW4oJyIrYSsiJywgJ19ibGFuaycpIikpOiQoImRpdiN0b3BCYW5uZXJJbWFnZSIpLmF0dHIoIm9uY2xpY2siLAoiJCgnI21vdG9pbnNpZ2h0U2hvcFBvcHVwQ29udGFpbmVyJykucG9wdXBpemUoKS5zZXRUcmlnZ2VyKCdjbGljaycpLm9wZW4oKTtyZXR1cm4gZmFsc2U7IikuYXR0cigib250YXAiLCIkKCcjbW90b2luc2lnaHRTaG9wUG9wdXBDb250YWluZXInKS5wb3B1cGl6ZSgpLnNldFRyaWdnZXIoJ2NsaWNrJykub3BlbigpO3JldHVybiBmYWxzZTsiKTokKCIjTU9UT0lOU0lHSFRfU0hPUElOR19UT09MX1VTRURfU0VMRUNUIikubGVuZ3RoJiYidGFiIj09JCgiI01PVE9JTlNJR0hUX1NIT1BJTkdfVE9PTF9VU0VEX1NFTEVDVCIpLnZhbCgpPyhhPSQoIiNtb3RvaW5zaWdodHNob3BzY3JpcHR1cmwiKS52YWwoKSxhPWEucmVwbGFjZSgiaW50ZWdyYXRpb24vaW50ZWdyYXRpb24uanMiLCJzZWFyY2gvP2NvbmRpdGlvbj1Vc2VkIiksJCgiZGl2I3RvcEJhbm5lckltYWdlIikuYXR0cigib25jbGljayIsIndpbmRvdy5vcGVuKCciK2ErIicsICdfYmxhbmsnKSIpLmF0dHIoIm9udGFwIiwid2luZG93Lm9wZW4oJyIrCmErIicsICdfYmxhbmsnKSIpKTokKCJkaXYjdG9wQmFubmVySW1hZ2UiKS5hdHRyKCJvbmNsaWNrIiwiJCgnI21vdG9pbnNpZ2h0U2hvcFBvcHVwQ29udGFpbmVyJykucG9wdXBpemUoKS5zZXRUcmlnZ2VyKCdjbGljaycpLm9wZW4oKTtyZXR1cm4gZmFsc2U7IikuYXR0cigib250YXAiLCIkKCcjbW90b2luc2lnaHRTaG9wUG9wdXBDb250YWluZXInKS5wb3B1cGl6ZSgpLnNldFRyaWdnZXIoJ2NsaWNrJykub3BlbigpO3JldHVybiBmYWxzZTsiKX0KY2xhc3MgUGFnZUJhbm5lcnNDYXJvdXNlbHtjb25zdHJ1Y3RvcihhKXtpZigidW5kZWZpbmVkIiE9PXR5cGVvZiBhKXt0aGlzLmlzSW52ZW50b3J5UGFnZSYmInVuZGVmaW5lZCIhPT10eXBlb2YgYS5uZXdJbnZlbnRvcnkmJihhPWEubmV3SW52ZW50b3J5KTt2YXIgZSxiO3RoaXMuZGF0YT1udWxsIT0oYj1udWxsPT0oZT1hKT92b2lkIDA6ZS5iYW5uZXJzKT9iOmE7dmFyIGMsZDt0aGlzLmNvbmZpZz1udWxsIT0oZD1udWxsPT0oYz1hKT92b2lkIDA6Yy5jb25maWcpP2Q6YTt0aGlzLmJhbm5lcnM9W107dGhpcy5pbmRleD0tMTt0aGlzLmluaXRpYWxpemVkPSExO3RoaXMudGltZW91dElEPW51bGw7dGhpcy5pbml0KCl9fWdldCBpc0ludmVudG9yeVBhZ2UoKXtyZXR1cm4ibmV3aW52Ij09PXN0b3JlLmdldCgiY29udGV4dCIpLmNhdGVnb3J5fWdldCBjdXJyZW50UGF0aCgpe3JldHVybiBkZWNvZGVVUklDb21wb25lbnQod2luZG93LmxvY2F0aW9uLnBhdGhuYW1lK3dpbmRvdy5sb2NhdGlvbi5zZWFyY2gpLnRvTG93ZXJDYXNlKCl9Z2V0ICR0b3BCYW5uZXJJbWFnZSgpe3JldHVybiAkKCJkaXYjdG9wQmFubmVySW1hZ2UiKX1pbml0KCl7aWYoIXRoaXMuaW5pdGlhbGl6ZWQpe3ZhciBhPQp7fSxlPXt9LGI9W10sYz0wO2Zvcih2YXIgZCBpbiB0aGlzLmRhdGEpImh0bWw1Ij09PWR8fHRoaXMuX2lzS2V5d29yZEluUGF0aChkKXx8dGhpcy5faXNLZXl3b3JkSW5Db29raWUoZCl8fCQoImJvZHkiKS5oYXNDbGFzcygidGVtcGxhdGU1IikmJigibmV1ZnMiPT09ZHx8Im5ldyI9PT1kKT8iaHRtbDUiPT09ZCYmInVuZGVmaW5lZCIhPT10eXBlb2YgbmV3Y2FyRGV0YWlscyYmInVuZGVmaW5lZCIhPT10eXBlb2YgbmV3Y2FyRGV0YWlscy5zbGlkZXJPYmplY3QmJm51bGwhPW5ld2NhckRldGFpbHMuc2xpZGVyT2JqZWN0JiYzPm5ld2NhckRldGFpbHMuc2xpZGVyT2JqZWN0LnRvdGFsU2xpZGVzKCl8fCQuZWFjaCh0aGlzLmRhdGFbZF0sKGcsZik9PntjPXBhcnNlSW50KGcpOy0xPT09Yi5pbmRleE9mKGMpPyhiLnB1c2goYyksYVtjXT1mKTphW2MrNTBdPWZ9KToiZGVmYXVsdCI9PT1kfHx0aGlzLl9pc0tleXdvcmRJblBhdGgoZCl8fHRoaXMuX2lzS2V5d29yZEluQ29va2llKGQpPyQuZWFjaCh0aGlzLmRhdGFbZF0sCihnLGYpPT57YVswXT1mO2IucHVzaCgwKX0pOiJzdGF0aWNiYW5uZXJzIj09PWQmJiQuZWFjaCh0aGlzLmRhdGFbZF0sKGcsZik9PntjPXBhcnNlSW50KGcpOy0xPT09Yi5pbmRleE9mKGMpJiYoYi5wdXNoKGMpLGFbY109Zik7ZVtnXT1mfSk7dmFyIGg9ITA7JC5lYWNoKGEsKGcsZik9PnsiZGVmYXVsdCIhPWYuaSYmKGg9ITEpfSk7dGhpcy5iYW5uZXJzPVtdOyQuZWFjaChhLChnLGYpPT57InVuZGVmaW5lZCIhPT10eXBlb2YgZiYmKCJkZWZhdWx0Ij09PWYuaSYmITA9PT1ofHwiZGVmYXVsdCIhPT1mLmkpJiZ0aGlzLmJhbm5lcnMucHVzaChmKX0pOzA9PT10aGlzLmJhbm5lcnMubGVuZ3RoJiYwPE9iamVjdC5rZXlzKGUpLmxlbmd0aCYmJC5lYWNoKGUsKGcsZik9PnsidW5kZWZpbmVkIiE9PXR5cGVvZiBmJiZ0aGlzLmJhbm5lcnMucHVzaChmKX0pO2Q9JCgiI2lzTW9iaWxlIik7MDxkLmxlbmd0aCYmMT09PWQudmFsKCkmJigkKCJkaXYjdG9wQmFubmVySW1hZ2UiKS5hZGRDbGFzcygiLW10MTAiKSwKJCgnW2lkKj0iaGVhZGVyUHJvbW9GbG9hdEJ1dHRvbkluQm9keSJdJykuaGlkZSgpKTt0aGlzLmluaXRpYWxpemVkPSEwOzA8T2JqZWN0LmtleXModGhpcy5iYW5uZXJzKS5sZW5ndGg\/dGhpcy5yb3RhdGUoKTp0aGlzLmNsZWFyQXNwZWN0UmF0aW8oKX19Y2xlYXJBc3BlY3RSYXRpbygpe2xldCBhPSQoImRpdiN0b3BCYW5uZXJJbWFnZSIpO2EubGVuZ3RoJiZhLmNzcygiYXNwZWN0LXJhdGlvIiwiIil9c3RvcCgpe2NsZWFyVGltZW91dCh0aGlzLnRpbWVvdXRJRCl9c3RhcnQoYSl7dGhpcy5pbml0aWFsaXplZCYmKHRoaXMudGltZW91dElEPXNldFRpbWVvdXQoKCk9PnRoaXMucm90YXRlKCksYSkpfXJvdGF0ZSgpe2lmKCJmdW5jdGlvbiI9PT10eXBlb2YgcG9wdXBpemVyQWN0aXZlJiZwb3B1cGl6ZXJBY3RpdmUoKSlzZXRUaW1lb3V0KCgpPT50aGlzLnJvdGF0ZSgpLDNFMyk7ZWxzZXt2YXIgYT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIuZGFyay10b29sdGlwIik7aWYoYS5sZW5ndGgpe2xldCBjPQohMTthLmZvckVhY2goZD0+eyJub25lIiE9d2luZG93LmdldENvbXB1dGVkU3R5bGUoZCxudWxsKS5nZXRQcm9wZXJ0eVZhbHVlKCJkaXNwbGF5IikmJihjPSEwKX0pO2lmKCEwPT09Yyl7c2V0VGltZW91dCgoKT0+dGhpcy5yb3RhdGUoKSwyRTMpO3JldHVybn19YT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjdG9wQmFubmVySW1hZ2UiKTtpZighMT09PWlzSW5WaWV3cG9ydChhLHt0b3A6LTM1MH0pKXRoaXMuc3RhcnQoM0UzKTtlbHNle3RoaXMuaW5kZXgrKzt0aGlzLmluZGV4Pj1PYmplY3Qua2V5cyh0aGlzLmJhbm5lcnMpLmxlbmd0aCYmKHRoaXMuaW5kZXg9MCk7dmFyIGU9JCgiZGl2I3RvcEJhbm5lckltYWdlIiksYj10aGlzLmJhbm5lcnNbdGhpcy5pbmRleF07aWYoYiYmImh0bWw1Ij09PWIuaSl7YT0wO2xldCBjPTE9PT1iLnU\/dGhpcy5jb25maWcuYzE6dGhpcy5jb25maWcuYzJfMSxkPTI9PT1iLnU\/dGhpcy5jb25maWcuYzI6dGhpcy5jb25maWcuYzJfMjtlLmh0bWwoIiIpLmhpZGUoKTsKbGV0IGg9JCgiI3Byb21vX2J0bl90eXBlIikudmFsKCk7dm9pZCAwPT09aCYmKGg9ImJlc3RvZmZlcl9hbmltYXRlIik7bGV0IGc9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaWZyYW1lIik7Zy5pZD0iZ3dkYmFubmVyIjtnLnN0eWxlLndpZHRoPSI5MzBweCI7Zy5zdHlsZS5oZWlnaHQ9IjIwMHB4IjtnLnNldEF0dHJpYnV0ZSgic2Nyb2xsaW5nIiwibm8iKTtnLnNldEF0dHJpYnV0ZSgiZnJhbWVib3JkZXIiLCIwIik7ImludmVudG9yeSI9PT1iLm8mJjEwPCQoIiN1c2VkSW52ZW50b3J5TmV3UGFnZSIpLmh0bWwoKS5sZW5ndGgmJiFDb29raWVzLmdldCgiaW52ZW50b3J5TmV3UG9wdXBTaG93biIpJiYoYT0xKTtsZXQgZj0kKCIjcG9wdXBtYWtlIikudmFsKCkucmVwbGFjZSgvLXxccy9nLCJfIiksaz0kKCIjdGV4dE1vZGVsT3ZlcnJpZGUiKS52YWwoKTtrPShrP2s6JCgiI3BvcHVwbW9kZWwiKS52YWwoKSkucmVwbGFjZSgvLXxccy9nLCJfIik7bGV0IG09JCgiI3BvcHVweWVhciIpLnZhbCgpLApsPSQoIiNzdHlsZWlkIikudmFsKCk7bD0wPHBhcnNlSW50KGwpPyItaWQiK2w6IiI7JCgiYm9keSIpLmhhc0NsYXNzKCJFTkdMSVNIIik\/Zy5zcmM9YC9nd2RiYW5uZXIvJHttfS0ke2Z9LSR7a30ke2x9Lmh0bWw\/cHR5cGU9JHtofSZjMT0ke2N9JmMyPSR7ZH0mdD0ke2IudX0mbz0ke2F9YDpnLnNyYz1gL2d3ZGJhbm5lci8ke2Z9LSR7a30tJHttfSR7bH0uaHRtbD9wdHlwZT0ke2h9JmMxPSR7Y30mYzI9JHtkfSZ0PSR7Yi51fSZvPSR7YX1gO2UuaHRtbChnKS5mYWRlSW4oInNsb3ciKX1lbHNlIGlmKGImJiJkZWZhdWx0Ij09PWIuaSllLmh0bWwoIiIpLmhpZGUoKS5odG1sKGIuaCkuZmFkZUluKCJzbG93IikuYXR0cigib25jbGljayIsZS5maW5kKCJ0YWJsZSIpLmF0dHIoIm9uY2xpY2siKSkuYXR0cigib250YXAiLGUuZmluZCgidGFibGUiKS5hdHRyKCJvbmNsaWNrIikpO2Vsc2UgJCgnPGltZyBmZXRjaHByaW9yaXR5PSJoaWdoIiBhbHQ9IiIgc3R5bGU9IndpZHRoOjEwMCU7Y3Vyc29yOnBvaW50ZXI7IiBzcmM9IicrCmIuaSsnIj4nKS5vbigibG9hZCIsYz0+e2UuaHRtbCgiIikuaGlkZSgpOyQoYy5jdXJyZW50VGFyZ2V0KS5hcHBlbmRUbygiZGl2I3RvcEJhbm5lckltYWdlIik7dGhpcy5fcHJvY2Vzc0Rpc2NsYWltZXIoYik7bnVsbCE9Yi51JiYwPGIudS5sZW5ndGg\/LTE8Yi51LmluZGV4T2YoInRyYWRlaW52YWx1ZXMuY2EiKXx8LTE8Yi51LmluZGV4T2YoImluc3RhbnRvZmZlci5hY2N1LXRyYWRlLmNvbSIpPyQoYy5jdXJyZW50VGFyZ2V0KS5hdHRyKCJvbmNsaWNrIiwic2hvd1RyYWRlSW5Qb3B1cCgnIitiLnUrIicpIikuYXR0cigib250YXAiLCJzaG93VHJhZGVJblBvcHVwKCciK2IudSsiJykiKTotMTxiLnUudG9Mb3dlckNhc2UoKS5pbmRleE9mKCIkdHJhZGVib29zdCIpPyQoYy5jdXJyZW50VGFyZ2V0KS5hdHRyKCJvbmNsaWNrIiwicmV0dXJuIGxhdW5jaFRyYWRlSW5Qb3B1cCgnYmFubmVyJyk7IikuYXR0cigib250YXAiLCJyZXR1cm4gbGF1bmNoVHJhZGVJblBvcHVwKCdiYW5uZXInKTsiKToKLTE8Yi51LnRvTG93ZXJDYXNlKCkuaW5kZXhPZigiJGNyZWRpdHNjb3JlIik\/JChjLmN1cnJlbnRUYXJnZXQpLmF0dHIoIm9uY2xpY2siLCIkKCcjY3JlZGl0U2NvcmVQb3B1cENvbnRhaW5lcicpLnBvcHVwaXplKCkuc2V0VHJpZ2dlcignY2xpY2snKS5vcGVuKCk7cmV0dXJuIGZhbHNlOyIpLmF0dHIoIm9udGFwIiwiJCgnI2NyZWRpdFNjb3JlUG9wdXBDb250YWluZXInKS5wb3B1cGl6ZSgpLnNldFRyaWdnZXIoJ2NsaWNrJykub3BlbigpO3JldHVybiBmYWxzZTsiKTotMTxiLnUudG9Mb3dlckNhc2UoKS5pbmRleE9mKCIkbXVsdGlzdGVwZmluYW5jZSIpPyQoYy5jdXJyZW50VGFyZ2V0KS5hdHRyKCJvbmNsaWNrIiwiJCgnI2ZpbmFuY2VNdWx0aXN0ZXBQb3B1cENvbnRhaW5lcicpLnBvcHVwaXplKCkuc2V0VHJpZ2dlcignY2xpY2snKS5vcGVuKCk7cmV0dXJuIGZhbHNlOyIpLmF0dHIoIm9udGFwIiwiJCgnI2ZpbmFuY2VNdWx0aXN0ZXBQb3B1cENvbnRhaW5lcicpLnBvcHVwaXplKCkuc2V0VHJpZ2dlcignY2xpY2snKS5vcGVuKCk7cmV0dXJuIGZhbHNlOyIpOgotMTxiLnUudG9Mb3dlckNhc2UoKS5pbmRleE9mKCIkY3JlZGl0Ym9vc3QiKT8kKGMuY3VycmVudFRhcmdldCkuYXR0cigib25jbGljayIsIiQoJyNjcmVkaXRCb29zdE11bHRpUG9wdXBDb250YWluZXInKS5wb3B1cGl6ZSgpLnNldFRyaWdnZXIoJ2NsaWNrJykub3BlbigpO3JldHVybiBmYWxzZTsiKS5hdHRyKCJvbnRhcCIsIiQoJyNjcmVkaXRCb29zdE11bHRpUG9wdXBDb250YWluZXInKS5wb3B1cGl6ZSgpLnNldFRyaWdnZXIoJ2NsaWNrJykub3BlbigpO3JldHVybiBmYWxzZTsiKTotMTxiLnUuaW5kZXhPZigiJG1vdG9pbnNpZ2h0c2hvcCIpPyQoIiNtb3RvaW5zaWdodFNob3BQb3B1cENvbnRhaW5lciIpLmxlbmd0aCYmbW90b2luc2lnaHRCYW5uZXJWYXJpYWJsZVJlcGxhY2VtZW50KCk6LTE8Yi51LnRvTG93ZXJDYXNlKCkuaW5kZXhPZigiJHNlcnZpY2VhcHQiKT8kKGMuY3VycmVudFRhcmdldCkuYXR0cigib25jbGljayIsIkxlYWRIYW5kbGVyKCkuZ2V0TGVhZCgnRGVhbGVyQXBwb2ludG1lbnQnKS5kaXNwbGF5KCk7cmV0dXJuIGZhbHNlOyIpLmF0dHIoIm9udGFwIiwKIkxlYWRIYW5kbGVyKCkuZ2V0TGVhZCgnRGVhbGVyQXBwb2ludG1lbnQnKS5kaXNwbGF5KCk7cmV0dXJuIGZhbHNlOyIpOi0xPGIudS50b0xvd2VyQ2FzZSgpLmluZGV4T2YoImphdmFzY3JpcHQ6dm9pZCIpPyQoYy5jdXJyZW50VGFyZ2V0KS5hdHRyKCJvbmNsaWNrIixiLnUpLmF0dHIoIm9udGFwIixiLnUpOjA9PT1iLnUuaW5kZXhPZigiLyIpfHwtMTxiLnUuaW5kZXhPZih3aW5kb3cubG9jYXRpb24uaG9zdCk\/JChjLmN1cnJlbnRUYXJnZXQpLmF0dHIoIm9uY2xpY2siLCJ3aW5kb3cubG9jYXRpb24gPSAnIitiLnUrIiciKTokKGMuY3VycmVudFRhcmdldCkuYXR0cigib25jbGljayIsIndpbmRvdy5vcGVuKCciK2IudSsiJywgJ19ibGFuaycpIik6JChjLmN1cnJlbnRUYXJnZXQpLmF0dHIoIm9uY2xpY2siLCJzaG93UG9wdXBXaWRnZXQoKSIpLmF0dHIoIm9udGFwIiwic2hvd1BvcHVwV2lkZ2V0KCkiKTtlLmZhZGVJbigic2xvdyIpfSk7Mj5PYmplY3Qua2V5cyh0aGlzLmJhbm5lcnMpLmxlbmd0aHx8CnRoaXMuc3RhcnQoYi50KX19fV9pc0tleXdvcmRJblBhdGgoYSl7cmV0dXJuLTEhPT10aGlzLmN1cnJlbnRQYXRoLmluZGV4T2YoZGVjb2RlVVJJQ29tcG9uZW50KGErIiIpLnRvTG93ZXJDYXNlKCkpfV9pc0tleXdvcmRJbkNvb2tpZShhKXtsZXQgZT1Db29raWVzLmdldCgiZDJjb2ZmZXIiKTtyZXR1cm4gZSYmKGU9ZS50b0xvd2VyQ2FzZSgpLC0xIT09ZS5pbmRleE9mKGEudG9Mb3dlckNhc2UoKSkpPyEwOiExfV9wcm9jZXNzRGlzY2xhaW1lcihhKXtpZihhLmhhc093blByb3BlcnR5KCJkIikmJjAhPT1hLmQubGVuZ3RoKXt2YXIgZT17ZnI6e3Nob3c6IkFmZmljaGVyIGxlcyBtb2RhbGl0w6lzIGV0IGNvbmRpdGlvbnMgZ8OpbsOpcmFsZXMiLGhpZGU6Ik1hc3F1ZXIgbGVzIG1vZGFsaXTDqXMgZXQgY29uZGl0aW9ucyBnw6luw6lyYWxlcyJ9LGVuOntzaG93OiJWaWV3IFRlcm1zIGFuZCBDb25kaXRpb25zIixoaWRlOiJIaWRlIFRlcm1zIGFuZCBDb25kaXRpb25zIn19LGI9IjEiPT09CiQoIiNpc21vYmlsZSIpLnZhbCgpLGM9JCgnPGRpdiBjbGFzcz0idG9wQmFubmVySW1hZ2UtLWRpc2NsYWltZXItY29udGFpbmVyIj48aSBjbGFzcz0iZmFzIGZhLXRpbWVzIGZhLTJ4Ij48L2k+PGRpdj48L2Rpdj48L2Rpdj4nKSxkPSQoYDxkaXYgY2xhc3M9InRvcEJhbm5lckltYWdlLS1kaXNjbGFpbWVyLWNvbnRyb2wiPjxidXR0b24gdHlwZT0iYnV0dG9uIj4ke2VbRDJDVXRpbHMuTGFuZy5nZXRTaG9ydExhbmcoITEpXS5zaG93fTwvYnV0dG9uPjwvZGl2PmApO2MuZmluZCgiZGl2IikuYXBwZW5kKGEuZCk7dGhpcy4kdG9wQmFubmVySW1hZ2UuYXBwZW5kKGMpO3RoaXMuJHRvcEJhbm5lckltYWdlLmFwcGVuZChkKTtpZihiKWQub24oImNsaWNrIiwoKT0+e2MuaXMoIjp2aXNpYmxlIik\/KGQuZmluZCgiYnV0dG9uIikudGV4dChlW0QyQ1V0aWxzLkxhbmcuZ2V0U2hvcnRMYW5nKCExKV0uc2hvdyksYy5mYWRlT3V0KCksdGhpcy5zdGFydChhLnQpKTooZC5maW5kKCJidXR0b24iKS50ZXh0KGVbRDJDVXRpbHMuTGFuZy5nZXRTaG9ydExhbmcoITEpXS5oaWRlKSwKYy5mYWRlSW4oKSx0aGlzLnN0b3AoKSl9KTtlbHNlIGQub24oImNsaWNrIiwoKT0+e2Muc2hvdygpO3RoaXMuc3RvcCgpfSksYy5maW5kKCJpIikub24oImNsaWNrIiwoKT0+e2MuaGlkZSgpO3RoaXMuc3RhcnQoYS50KX0pfX19OwovKiogL2pzL2dvb2dsZW1hcHMuanMgKiovCnZhciBfX19kMmNfZ29vZ2xlbWFwc2pzX2Nfb249IjIwMjYtMDEtMTIgMTA6MTQ6NTQiOyd1c2Ugc3RyaWN0JztjbGFzcyBHb29nbGVNYXBzV3JhcHBlcntjb25zdHJ1Y3RvcihhKXt0aGlzLnByZXZpb3VzSW5mb1dpbmRvdz0hMTt0aGlzLm9wdGlvbnM9e2VsZW1lbnQ6YSYmYS5lbGVtZW50P2EuZWxlbWVudDoiIixjZW50ZXI6YSYmYS5jZW50ZXI\/YS5jZW50ZXI6e2xhdDo0NS40NjcyNzcsbG5nOi03My44MzQ1MjZ9LGNlbnRlck9mZnNldDphJiZhLmNlbnRlck9mZnNldD9hLmNlbnRlck9mZnNldDp7eDowLHk6MH0sem9vbTphJiZhLnpvb20\/YS56b29tOjksYWRkcmVzc2VzOmEmJmEuYWRkcmVzc2VzP2EuYWRkcmVzc2VzOltdLG9uQmVmb3JlSW5pdDphJiZhLm9uQmVmb3JlSW5pdD9hLm9uQmVmb3JlSW5pdDpmdW5jdGlvbigpe30sb25BZnRlckluaXQ6YSYmYS5vbkFmdGVySW5pdD9hLm9uQWZ0ZXJJbml0OmZ1bmN0aW9uKCl7fSxvbkFmdGVyTWFya2VyQ3JlYXRlZDphJiZhLm9uQWZ0ZXJNYXJrZXJDcmVhdGVkP2Eub25BZnRlck1hcmtlckNyZWF0ZWQ6ZnVuY3Rpb24oKXt9fX1zdGF0aWMgc2V0R29vZ2xlTWFwKCl7dmFyIGE9CjAsZT1mdW5jdGlvbigpe2dvb2dsZS5tYXBzLk1hcC5wcm90b3R5cGUuc2V0Q2VudGVyV2l0aE9mZnNldD1mdW5jdGlvbihrLGcsbCl7dmFyIGM9dGhpcyxiPW5ldyBnb29nbGUubWFwcy5PdmVybGF5VmlldztiLm9uQWRkPWZ1bmN0aW9uKCl7dmFyIGY9dGhpcy5nZXRQcm9qZWN0aW9uKCksZD1mLmZyb21MYXRMbmdUb0NvbnRhaW5lclBpeGVsKGspO2QueCs9ZztkLnkrPWw7Yy5zZXRDZW50ZXIoZi5mcm9tQ29udGFpbmVyUGl4ZWxUb0xhdExuZyhkKSl9O2IuZHJhdz1mdW5jdGlvbigpe307Yi5zZXRNYXAodGhpcyl9fTtpZigidW5kZWZpbmVkIiE9PXR5cGVvZiBnb29nbGUpZSgpO2Vsc2UgdmFyIGg9c2V0SW50ZXJ2YWwoZnVuY3Rpb24oKXs0PmE\/InVuZGVmaW5lZCIhPT10eXBlb2YgZ29vZ2xlPyhjbGVhckludGVydmFsKGgpLGUoKSk6YSsrOmNsZWFySW50ZXJ2YWwoaCl9LDFFMyl9aW5pdCgpe3ZhciBhPXRoaXMsZT1hLm9wdGlvbnMuY2VudGVyT2Zmc2V0Lng\/YS5vcHRpb25zLmNlbnRlck9mZnNldC54OgowLGg9YS5vcHRpb25zLmNlbnRlck9mZnNldC55P2Eub3B0aW9ucy5jZW50ZXJPZmZzZXQueTowLGs9bmV3IGdvb2dsZS5tYXBzLkxhdExuZ0JvdW5kczthLm9wdGlvbnMub25CZWZvcmVJbml0KCk7aWYoYS5vcHRpb25zLmFkZHJlc3Nlcy5sZW5ndGgpe3ZhciBnPWEub3B0aW9ucy5jZW50ZXIsbD1uZXcgZ29vZ2xlLm1hcHMuR2VvY29kZXIsYz1uZXcgZ29vZ2xlLm1hcHMuTWFwKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGEub3B0aW9ucy5lbGVtZW50KSx7em9vbTphLm9wdGlvbnMuem9vbSxjZW50ZXI6YS5vcHRpb25zLmNlbnRlcixtYXBUeXBlSWQ6Z29vZ2xlLm1hcHMuTWFwVHlwZUlkLlJPQURNQVAsZ2VzdHVyZUhhbmRsaW5nOiJncmVlZHkiLHNjcm9sbHdoZWVsOiExLG1hcFR5cGVDb250cm9sOiExfSk7Z29vZ2xlLm1hcHMuZXZlbnQuYWRkTGlzdGVuZXJPbmNlKGMsImlkbGUiLGZ1bmN0aW9uKCl7YS5vcHRpb25zLmFkZHJlc3Nlcy5tYXAoZnVuY3Rpb24oYixmLGQpe2Y9ZnVuY3Rpb24obiwKcSl7dHJ5e2lmKHE9PWdvb2dsZS5tYXBzLkdlb2NvZGVyU3RhdHVzLk9LKXtrLmV4dGVuZChuWzBdLmdlb21ldHJ5LmxvY2F0aW9uKTtjLmZpdEJvdW5kcyhrKTtjLnNldFpvb20oYS5vcHRpb25zLnpvb20pO2c9Yy5nZXRCb3VuZHMoKS5nZXRDZW50ZXIoKTtjLnNldENlbnRlcldpdGhPZmZzZXQoZyxlLGgpO3ZhciBwPW5ldyBnb29nbGUubWFwcy5JbmZvV2luZG93KHtjb250ZW50OmIuaW5mb3dpbmRvd30pLG09bmV3IGdvb2dsZS5tYXBzLk1hcmtlcih7bWFwOmMscG9zaXRpb246blswXS5nZW9tZXRyeS5sb2NhdGlvbix0aXRsZTpiLnRpdGxlLGljb246Yi5pY29ufSk7bS5hZGRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKCl7YS5wcmV2aW91c0luZm9XaW5kb3cmJmEucHJldmlvdXNJbmZvV2luZG93LmNsb3NlKCk7YS5wcmV2aW91c0luZm9XaW5kb3c9cDtwLm9wZW4oYyxtKX0pO2Eub3B0aW9ucy5vbkFmdGVyTWFya2VyQ3JlYXRlZChiLG0pfX1jYXRjaChyKXtjb25zb2xlLmxvZyhyKX19OwphLmhhc0xhdChiKSYmYS5oYXNMbmcoYik\/KGQ9bmV3IGdvb2dsZS5tYXBzLkxhdExuZyhOdW1iZXIoYi5nZW9tZXRyeS5sb2NhdGlvbi5sYXQpLE51bWJlcihiLmdlb21ldHJ5LmxvY2F0aW9uLmxuZykpLGYoW3tnZW9tZXRyeTp7bG9jYXRpb246ZH19XSwiT0siKSk6bC5nZW9jb2RlKHthZGRyZXNzOmIuYWRkcmVzc30sZil9KX0pO2dvb2dsZS5tYXBzLmV2ZW50LmFkZERvbUxpc3RlbmVyKHdpbmRvdywicmVzaXplIixmdW5jdGlvbigpe2Muc2V0Q2VudGVyV2l0aE9mZnNldChnLGUsaCl9KX1hLm9wdGlvbnMub25BZnRlckluaXQoKX1faGFzTGF0TG5nUHJvcChhLGUpe3JldHVybiBhLmhhc093blByb3BlcnR5KCJnZW9tZXRyeSIpJiZhLmdlb21ldHJ5Lmhhc093blByb3BlcnR5KCJsb2NhdGlvbiIpJiZhLmdlb21ldHJ5LmxvY2F0aW9uLmhhc093blByb3BlcnR5KGUpJiYiZmFsc2UiIT1hLmdlb21ldHJ5LmxvY2F0aW9uW2VdPyEwOiExfWhhc0xhdChhKXtyZXR1cm4gdGhpcy5faGFzTGF0TG5nUHJvcChhLAoibGF0Iil9aGFzTG5nKGEpe3JldHVybiB0aGlzLl9oYXNMYXRMbmdQcm9wKGEsImxuZyIpfX07Ci8qKiAvanMvZm9vdGVyV2lkZ2V0LmpzICoqLwp2YXIgX19fZDJjX2Zvb3RlcldpZGdldGpzX2Nfb249IjIwMjYtMDEtMTIgMTA6MTQ6MDciOyd1c2Ugc3RyaWN0JztpblZpZXdFeGVjKCIjZm9vdGVyV3JhcHBlciIsZnVuY3Rpb24oKXt2YXIgYj1mdW5jdGlvbigpe3ZhciBhPSQoIiN0YXJnZXRQYWdlIikudmFsKCk7InVuZGVmaW5lZCI9PWEmJihhPSJVTktOT1dOIik7Z2FUcmFjaygiYy5fdHJhY2tFdmVudCIsIkZvb3Rlci1NYXAtTG9hZCIsIkRlc2t0b3AiLGEsMSl9O3RyeXtHb29nbGVNYXBzV3JhcHBlci5zZXRHb29nbGVNYXAoKTt2YXIgYz0kKCIjZm9vdGVyR29vZ2xlTWFwWm9vbSIpLnZhbCgpLGY9MTxwYXJzZUludChjKSYmMTg+PXBhcnNlSW50KGMpP3BhcnNlSW50KGMpOjksZT1uZXcgR29vZ2xlTWFwc1dyYXBwZXIoe2VsZW1lbnQ6ImZvb3Rlckdvb2dsZU1hcCIsYWRkcmVzc2VzOiJ1bmRlZmluZWQiIT10eXBlb2YgZm9vdGVyTWFwQWRkcmVzc2VzP2Zvb3Rlck1hcEFkZHJlc3NlczpbXSxjZW50ZXJPZmZzZXQ6e3g6LTM1MCx5OjB9LHpvb206ZixvbkJlZm9yZUluaXQ6ZnVuY3Rpb24oKXtiKCl9LG9uQWZ0ZXJJbml0OmZ1bmN0aW9uKCl7aWYoInVuZGVmaW5lZCIhPQp0eXBlb2YgZm9vdGVyTWFwQWRkcmVzc2VzJiZmb290ZXJNYXBBZGRyZXNzZXMubGVuZ3RoKSQoZG9jdW1lbnQpLm9uKCJjbGljayIsIi5tYXBfZGVhbGVyX2xpc3RfaXRlbSIsZnVuY3Rpb24oKXskKCIub3Blbl9ob3Vyc19tYXBfYWN0aXZlIikuc2xpZGVUb2dnbGUoInNsb3ciKTskKCIubWFwX29wZW5faG91cnNfZXhwYW5kX2Fycm93IikucmVtb3ZlQ2xhc3MoImZhLWFuZ2xlLXVwIik7JCgiLm1hcF9vcGVuX2hvdXJzX2V4cGFuZF9hcnJvdyIpLmFkZENsYXNzKCJmYS1hbmdsZS1kb3duIik7dmFyIGE9JCh0aGlzKS5maW5kKCIuZXhwYW5kYWJsZV9jb250ZW50X211bHRpbG9jYXRpb24iKS5lcSgwKS5oYXNDbGFzcygib3Blbl9ob3Vyc19tYXBfYWN0aXZlIik7JCgiLm9wZW5faG91cnNfbWFwX2FjdGl2ZSIpLnJlbW92ZUNsYXNzKCJvcGVuX2hvdXJzX21hcF9hY3RpdmUiKTthfHwoJCh0aGlzKS5maW5kKCIuZXhwYW5kYWJsZV9jb250ZW50X211bHRpbG9jYXRpb24iKS5lcSgwKS5zbGlkZVRvZ2dsZSgic2xvdyIpLAokKHRoaXMpLmZpbmQoIi5leHBhbmRhYmxlX2NvbnRlbnRfbXVsdGlsb2NhdGlvbiIpLmVxKDApLmFkZENsYXNzKCJvcGVuX2hvdXJzX21hcF9hY3RpdmUiKSwkKHRoaXMpLmZpbmQoIi5tYXBfb3Blbl9ob3Vyc19leHBhbmRfYXJyb3ciKS5yZW1vdmVDbGFzcygiZmEtYW5nbGUtZG93biIpLCQodGhpcykuZmluZCgiLm1hcF9vcGVuX2hvdXJzX2V4cGFuZF9hcnJvdyIpLmFkZENsYXNzKCJmYS1hbmdsZS11cCIpKX0pO2Vsc2UgJCgiI2Zvb3Rlckdvb2dsZU1hcENvbnRhaW5lciIpLmhpZGUoKX0sb25BZnRlck1hcmtlckNyZWF0ZWQ6ZnVuY3Rpb24oYSxnKXt2YXIgZD1hLm9wZW5pbmdIb3Vycz9hLm9wZW5pbmdIb3VyczoiIjtkPSc8ZGl2IGNsYXNzPSJtYXBfZGVhbGVyX2xpc3RfaXRlbSIgZGF0YS10cz0iJythLnNhZmVUaXRsZSsnIiAgZGF0YS1uYW1lPSInK2EudGl0bGUrJyI+PHNwYW4gY2xhc3M9Im1hcmtlclNwYW4iPjwvc3Bhbj48c3BhbiBjbGFzcz0ibWFwX2RlYWxlcl9saXN0X2l0ZW1fbmFtZSI+JysKYS50aXRsZSsiPC9zcGFuPiIrKGQ\/JzxzcGFuIGNsYXNzPSJtYXBfb3Blbl9ob3Vyc19leHBhbmRfYXJyb3cgZmEgZmEtYW5nbGUtZG93biI+PC9zcGFuPic6IiIpKyQoIjxkaXY+IikuaHRtbChkKS50ZXh0KCkrIjwvZGl2PiI7JCgiI21hcF9kZWFsZXJfbGlzdCIpLmFwcGVuZChkKTskKCdbZGF0YS10cz0iJythLnNhZmVUaXRsZSsnIl0nKS5vbigiY2xpY2siLGZ1bmN0aW9uKCl7JCgiLm1hcF9kZWFsZXJfbGlzdF9pdGVtX25hbWUiKS5yZW1vdmVDbGFzcygibWFwX2RlYWxlcl9saXN0X2l0ZW1fbmFtZV9hY3RpdmUiKTskKHRoaXMpLmZpbmQoIi5tYXBfZGVhbGVyX2xpc3RfaXRlbV9uYW1lIikuYWRkQ2xhc3MoIm1hcF9kZWFsZXJfbGlzdF9pdGVtX25hbWVfYWN0aXZlIik7Z29vZ2xlLm1hcHMuZXZlbnQudHJpZ2dlcihnLCJjbGljayIpfSl9fSk7JCgiI2Zvb3Rlckdvb2dsZU1hcCIpLmxlbmd0aD8idW5kZWZpbmVkIiE9PXR5cGVvZiBnb29nbGU\/ZS5pbml0KCk6c2V0VGltZW91dChmdW5jdGlvbigpe2UuaW5pdCgpfSwKMUUzKTokKCIjZm9vdGVyR29vZ2xlTWFwSG91cnNDb250YWluZXIiKS5sZW5ndGgmJmIoKX1jYXRjaChhKXtjb25zb2xlLmxvZyhhKX19KTskKGZ1bmN0aW9uKCl7JCgiLmNFeHBlbmRMaXN0IEJVVFRPTiIpLm9uKCJjbGljayIsZnVuY3Rpb24oKXt2YXIgYj0kKHRoaXMpLmNsb3Nlc3QoImRpdi5jRm9vdGVyQ2FyTGlua3MiKTtiLmxlbmd0aCYmKGIuaGFzQ2xhc3MoImNMaXN0RXhwZW5kZWQiKXx8Yi5hZGRDbGFzcygiY0xpc3RFeHBlbmRlZCIpLmZpbmQoIi5jRXhwZW5kTGlzdCIpLmhpZGUoKSl9KTtpZigkKCIjZmJsaWtlLWNvbnRhaW5lciIpLmxlbmd0aCl7YigtMSk7ZnVuY3Rpb24gYihjKXskKCIjZmJsaWtlLWNvbnRhaW5lciIpLmZpbmQoImlmcmFtZSIpLmF0dHIoInRhYmluZGV4IixjKTskKCIjZmJsaWtlLWNvbnRhaW5lciIpLmZpbmQoImlmcmFtZSIpLmF0dHIoInRhYmluZGV4IikhPWMmJnNldFRpbWVvdXQoZnVuY3Rpb24oKXtiKGMpfSwxRTMpfX19KTsKLyoqIC9qcy9mYXZvcml0ZXMuanMgKiovCnZhciBfX19kMmNfZmF2b3JpdGVzanNfY19vbj0iMjAyNS0wNS0yMyAxNzoxMDowMyI7J3VzZSBzdHJpY3QnO3ZhciBfX19kMmNfZmF2b3JpdGVzanNfY19vbj0iMjAyNS0wMS0wOSAwOTozMDowNCI7InVzZSBzdHJpY3QiOwpmdW5jdGlvbiBEMkZBVigpe2Z1bmN0aW9uIHAoKXt2YXIgYT1uZXcgRGF0ZTtyZXR1cm4gYS5nZXRGdWxsWWVhcigpKyItIisoMTA+YS5nZXRNb250aCgpKzE\/IjAiKyhhLmdldE1vbnRoKCkrMSk6YS5nZXRNb250aCgpKzEpKyItIisoMTA+YS5nZXREYXRlKCk\/IjAiK2EuZ2V0RGF0ZSgpOmEuZ2V0RGF0ZSgpKSsiICIrKDEwPmEuZ2V0SG91cnMoKT8iMCIrYS5nZXRIb3VycygpOmEuZ2V0SG91cnMoKSkrIjoiKygxMD5hLmdldE1pbnV0ZXMoKT8iMCIrYS5nZXRNaW51dGVzKCk6YS5nZXRNaW51dGVzKCkpKyI6IisoMTA+YS5nZXRTZWNvbmRzKCk\/IjAiK2EuZ2V0U2Vjb25kcygpOmEuZ2V0U2Vjb25kcygpKX1mdW5jdGlvbiB1KGEpe3ZhciBiPVtdLGQ9MTAwLGM7Zm9yKGMgaW4gYSl7dmFyIGc9LS1kKyJfIithW2NdLmNyZWF0ZWQ7YltnXT1hW2NdfXJldHVybiBifWZ1bmN0aW9uIGsoYSl7aWYodm9pZCAwPT09YXx8IiI9PWEpcmV0dXJuITE7Z2FUcmFjaygiX3RyYWNrRXZlbnQiLCJGYXZvcml0ZXMiLAphLHdpbmRvdy5sb2NhdGlvbi5ocmVmLDEpO3JldHVybiEwfXZhciBsPSQoImJvZHkiKS5oYXNDbGFzcygiRU5HTElTSCIpPyJlbiI6ImZyIixuPTA8JCgiI2lzbW9iaWxlIikubGVuZ3RoJiYiMSI9PSQoIiNpc21vYmlsZSIpLnZhbCgpPyJtb2JpbGUiOiJkZXNrdG9wIix0PW5ldyBmdW5jdGlvbigpe3NlbGYuY3JlYXRlTG9jYWxTdG9yYWdlPWZ1bmN0aW9uKCl7bnVsbD09PUNvb2tpZXMuZ2V0KCJkMmZhdkRhdGEiKSYmKGQyZmF2RGF0YU9iaj17Y3JlYXRlZDpwKCksb3JpZ2luYWxUaW1lem9uZTpJbnRsLkRhdGVUaW1lRm9ybWF0KCkucmVzb2x2ZWRPcHRpb25zKCkudGltZVpvbmUsZmF2b3JpdGVzOnt9LGZhdkNvdW50OjB9LHNldENvb2tpZSgiZDJmYXZEYXRhIixKU09OLnN0cmluZ2lmeShkMmZhdkRhdGFPYmopKSl9O3NlbGYuZ2V0VmVoaWNsZUpzb249ZnVuY3Rpb24oYSl7aWYodm9pZCAwPT09YSlyZXR1cm4hMTskLmdldCgiL2pzL2pzb24vIithKyIuanNvbiIpLmRvbmUoZnVuY3Rpb24oYil7aWYodm9pZCAwIT09CmIuaW1hZ2VzWzBdKXt2YXIgZD1KU09OLnBhcnNlKENvb2tpZXMuZ2V0KCJkMmZhdkRhdGEiKSk7ZC5mYXZvcml0ZXNbaWRdLmltYWdlPWIuaW1hZ2VzWzBdO3NldENvb2tpZSgiZDJmYXZEYXRhIixKU09OLnN0cmluZ2lmeShkKSk7IiIhPWNhbGxiYWNrJiZ2b2lkIDAhPT1jYWxsYmFjayYmc2VsZi5iaW5kTmF2aWdhdGlvbigpfX0pfTtzZWxmLmJpbmROYXZpZ2F0aW9uPWZ1bmN0aW9uKCl7dmFyIGE9SlNPTi5wYXJzZShDb29raWVzLmdldCgiZDJmYXZEYXRhIikpLGI9YS5mYXZDb3VudCxkPTA8Yj8hMDohMSxjPSJlbiI9PWw\/ITA9PT1kPyJNeSBmYXZvcml0ZXMiOiJZb3UgaGF2ZSBubyBmYXZvcml0ZXMgeWV0ISI6ITA9PT1kPyJNZXMgZmF2b3JpcyI6IlZvdXMgbidhdmV6IHBhcyBlbmNvcmUgZGUgZmF2b3JpcyEiLGc9JCgiLmQyYy1mYXZzLW5hdi13cmFwcGVyIC5kMmMtZmF2cy1uYXYtZHJvcGRvd24td3JhcHBlciAuZDJjLWZhdnMtbmF2LWRyb3Bkb3duLWlubmVyQm94IiksaD0KJCgiLmQyYy1mYXZzLW5hdi1kZC13cmFwcGVyIC5zdWJtZW51SXRlbUNvbnRhaW5lciAjaXRlbV9GQVZPUklURSIpO2E9dShhLmZhdm9yaXRlcyk7Zy5odG1sKCIiKTtoLmh0bWwoIiIpO2lmKCEwPT09ZClmb3IodmFyIGUgaW4gYSl7dmFyIGY9IiIsbT0iIixxPXZvaWQgMCE9PWFbZV0uc2lkJiZhW2VdLnNpZD8iIyIrYVtlXS5zaWQ6IiIscj12b2lkIDAhPT1hW2VdLmltYWdlPyc8aW1nIHNyYz0iJythW2VdLmltYWdlKyciIC8+JzoiIjsibW9iaWxlIj09bj8obSs9JzxzcGFuIGNsYXNzPSItbTAiPlxuPGEgY2xhc3M9InN1Ym1lbnUtaXRlbSBmbGV4LWJveCBmbGV4LWJldHdlZW4gLWJ0IC0tcy01IEZBVk9SSVRFIiBocmVmPSInK2FbZV0udXJsKyciIHRhcmdldD0iIiBvbmNsaWNrPSIiPlxuPHNwYW4gY2xhc3M9Ii1waCI+JysoImVuIj09bD9hW2VdLnRpdGxlOmFbZV0udGl0bGVfZnIpKyc8L3NwYW4+XG48c3BhbiByb2xlPSJidXR0b24iIHRhYmluZGV4PSIwIiBjbGFzcz0iLXAgLS1zLTUiPlxuPHN2ZyBjbGFzcz0iaWNvbiI+PHVzZSB4bGluazpocmVmPSIjaWNvbi1jaGV2cm9uLXJpZ2h0Ij48L3VzZT48L3N2Zz5cbjwvc3Bhbj5cbjwvYT5cbjwvc3Bhbj5cbicsCmgucHJlcGVuZChtKSk6KGYrPSc8YSBocmVmPSInK2FbZV0udXJsKyciPicsZis9JzxkaXYgY2xhc3M9ImQyYy1mYXZzLW5hdi1kcm9wZG93bi1pdGVtIj4nLGYrPXIsZis9IjxkaXY+IixmKz0iZW4iPT1sP2FbZV0udGl0bGU6YVtlXS50aXRsZV9mcixmKz0iPC9kaXY+IixmKz0nPGRpdiBzdHlsZT0iZGlzcGxheTpibG9jazsiPjwvZGl2PicsIiIhPXEmJihmKz0nPGRpdiBjbGFzcz0iZDJjLWZhdnMtbmF2LWRyb3Bkb3duLWl0ZW0tc3ViICcrKCIiIT1yPyJoYXNDYXJJbWFnZSI6IiIpKyciPicsZis9IiIrcSxmKz0iPC9kaXY+IiksZis9IjwvZGl2PiIsZis9IjwvYT4iLGcucHJlcGVuZChmKSl9ImRlc2t0b3AiPT1uJiYwPCQoIiNraWFTaGlmdENlcnRpZmllZEZvb3RlciIpLmxlbmd0aCYmISQoIi5sYW5ndWFnZUJhciBkaXYuZDJjLWZhdnMtbmF2LXdyYXBwZXIiKS5oYXNDbGFzcygiaXNLaWFTaGlmdCIpJiYkKCIubGFuZ3VhZ2VCYXIsIC5sYW5ndWFnZUJhciBkaXYuZDJjLWZhdnMtbmF2LXdyYXBwZXIiKS5hZGRDbGFzcygiaXNLaWFTaGlmdCIpOwokKCIuZDJjLWZhdnMtbmF2LXdyYXBwZXIiKS5hdHRyKCJ0aXRsZSIsYyk7ITA9PT1kPygkKCIuZDJjLWZhdnMtbmF2LXdyYXBwZXIsIC5kMmMtZmF2cy1uYXYtZGQtd3JhcHBlciIpLnJlbW92ZUNsYXNzKCJkMmMtZmF2cy1uYXYtZGlzYWJsZWQiKSwkKCIuYnVyZ2VyLW1lbnUgdWwgbGkgZGl2LmQyYy1mYXZzLW5hdi13cmFwcGVyID4gc3BhbiIpLmh0bWwoIiAoIitiKyIpIiksJCgiLmxhbmd1YWdlQmFyIGRpdi5kMmMtZmF2cy1uYXYtd3JhcHBlciAuZmF2LW5hdi1jb3VudCIpLmh0bWwoYiksJCgiLmxhbmd1YWdlQmFyIGRpdi5kMmMtZmF2cy1uYXYtd3JhcHBlciIpLmFkZENsYXNzKCJmYXYtbmF2LWhhcy12ZWhpY2xlcyIpKTooJCgiLmJ1cmdlci1tZW51IHVsIGxpIGRpdi5kMmMtZmF2cy1uYXYtd3JhcHBlciA+IHNwYW4iKS5odG1sKCIiKSwkKCIubGFuZ3VhZ2VCYXIgZGl2LmQyYy1mYXZzLW5hdi13cmFwcGVyIC5mYXYtbmF2LWNvdW50IikuaHRtbCgiIiksJCgiLmxhbmd1YWdlQmFyIGRpdi5kMmMtZmF2cy1uYXYtd3JhcHBlciIpLnJlbW92ZUNsYXNzKCJmYXYtbmF2LWhhcy12ZWhpY2xlcyIpLAokKCIuZDJjLWZhdnMtbmF2LXdyYXBwZXIsIC5kMmMtZmF2cy1uYXYtZGQtd3JhcHBlciIpLmFkZENsYXNzKCJkMmMtZmF2cy1uYXYtZGlzYWJsZWQiKSk7JCgiLmQyYy1mYXZzLW5hdi13cmFwcGVyLmZhdi1uYXYtaGFzLXZlaGljbGVzIikub2ZmKCJtb3VzZWVudGVyIikub24oIm1vdXNlZW50ZXIiLGZ1bmN0aW9uKCl7aygiRmF2b3JpdGUtU3VtbWFyeS1WaWV3ZWQiKX0pOyQoIi5kMmMtZmF2cy1uYXYtZGQtd3JhcHBlcjpub3QoLmQyYy1mYXZzLW5hdi1kaXNhYmxlZCkgLm1lbnVFeHBhbmQiKS5vZmYoImNsaWNrIikub24oImNsaWNrIixmdW5jdGlvbigpeyQoIi5kMmMtZmF2cy1uYXYtZGQtd3JhcHBlciAuc3VibWVudUl0ZW1Db250YWluZXIiKS5pcygiOnZpc2libGUiKXx8aygiRmF2b3JpdGUtU3VtbWFyeS1WaWV3ZWQiKX0pOyQoIi5kMmMtZmF2cy1uYXYtZHJvcGRvd24taXRlbSwgLmQyYy1mYXZzLW5hdi1kZC13cmFwcGVyIC5zdWJtZW51SXRlbSIpLm9mZigiY2xpY2siKS5vbigiY2xpY2siLApmdW5jdGlvbigpe2soIkZhdm9yaXRlLVN1bW1hcnktQ2xpY2tlZCIpfSl9O3NlbGYuYmluZFRyaWdnZXJzPWZ1bmN0aW9uKCl7JCgiLmQyYy1mYXZzLXRyaWdnZXItd3JhcHBlciIpLmVhY2goZnVuY3Rpb24oYSl7dmFyIGI9JCh0aGlzKS5hdHRyKCJkYXRhLW1ha2UiKSxkPSQodGhpcykuYXR0cigiZGF0YS1tb2RlbCIpLGM9JCh0aGlzKS5hdHRyKCJkYXRhLXllYXIiKSxnPSQodGhpcykuYXR0cigiZGF0YS10cmltIiksaD0kKHRoaXMpLmF0dHIoImRhdGEtY2FyaWQiKTthPWMrIiAiK2IrIiAiK2QrKGc\/IiAiK2c6IiIpLnJlcGxhY2UoLyhcclxufFxufFxyfFx0KS9nbSwiIik7Zz1iKyIgIitkKyhnPyIgIitnOiIiKS5yZXBsYWNlKC8oXHJcbnxcbnxccnxcdCkvZ20sIiIpKyIgIitjO2I9KGMrIi0iK2IrIi0iK2QrKHZvaWQgMCE9PWgmJiIiIT1oPyItIitoOiIiKSkucmVwbGFjZSgvIC9nLCItIikudG9Mb3dlckNhc2UoKTskKHRoaXMpLmFkZENsYXNzKGIpOyQodGhpcykuaHRtbCgnPHNwYW4gY2xhc3M9ImZhLWxheWVycyI+XG4gICAgPGkgY2xhc3M9ImZhIGZhLWhlYXJ0Ij48L2k+XG4gICAgPGkgY2xhc3M9ImZhciBmYS1oZWFydCI+PC9pPlxuIDwvc3Bhbj4nKTsKJCh0aGlzKS5hdHRyKCJ0aXRsZSIsImVuIj09bD8iTXkgZmF2b3JpdGVzIjoiTWVzIGZhdm9yaXMiKTskKHRoaXMpLmF0dHIoImRhdGEtY2xhc3MiLGIpOyQodGhpcykuYXR0cigiZGF0YS10aXRsZSIsYSk7JCh0aGlzKS5hdHRyKCJkYXRhLXRpdGxlLWZyIixnKTskKHRoaXMpLm9uKCJjbGljayIsZnVuY3Rpb24oKXtjb25zb2xlLmxvZygiRDJGQVYgLSBSZWNvcmQgRmF2IiwkKHRoaXMpKTtzZWxmLnJlY29yZEZhdm9yaXRlKCQodGhpcykpfSl9KS5wcm9taXNlKCkuZG9uZShmdW5jdGlvbigpe3NlbGYuc2V0SWNvbnMoKX0pfTtzZWxmLnJlY29yZEZhdm9yaXRlPWZ1bmN0aW9uKGEpe3ZhciBiPUpTT04ucGFyc2UoQ29va2llcy5nZXQoImQyZmF2RGF0YSIpKXx8e2Zhdm9yaXRlczp7fX07aWYoMDxhLnNpYmxpbmdzKCJhIikubGVuZ3RoKXZhciBkPWEuc2libGluZ3MoImEiKS5hdHRyKCJocmVmIik7ZWxzZSBpZigwPGEuY2xvc2VzdCgiLmRpdkNhclNpbmdsZU91dGVyQm94IikubGVuZ3RoKXt2YXIgYz0KYS5jbG9zZXN0KCIuZGl2Q2FyU2luZ2xlT3V0ZXJCb3giKTtkPSQoIi5kaXZDYXJUaXRsZUNvbnRhaW5lciA+IGEiLGMpLmF0dHIoImhyZWYiKX1lbHNlIGQ9d2luZG93LmxvY2F0aW9uLmhyZWY7dmFyIGc9MDxhLmNsb3Nlc3QoIi5jYXJCb3hJbm5lciIpLmhhcygiLmNhclByaWNlIikubGVuZ3RoPyQoIi5jYXJQcmljZSIsYS5jbG9zZXN0KCIuY2FyQm94SW5uZXIiKSkudGV4dCgpOjA8YS5jbG9zZXN0KCIuZGl2Q2FyU2luZ2xlT3V0ZXJCb3giKS5oYXMoIi5kaXZOZXdDYXJTdGFydFByaWNlID4gc3BhbiIpLmxlbmd0aD8kKCIuZGl2TmV3Q2FyU3RhcnRQcmljZSA+IHNwYW4iLGEuY2xvc2VzdCgiLmRpdkNhclNpbmdsZU91dGVyQm94IikpLmh0bWwoKTokKCIjY2FyUHJpY2UiKS50ZXh0KCk7aWYoMDxhLmNsb3Nlc3QoIi5jYXJCb3hJbm5lciIpLmhhcygiLmNhckltYWdlIikubGVuZ3RoKWM9JCgiLmNhckltYWdlID4gYSA+IGltZyIsYS5jbG9zZXN0KCIuY2FyQm94SW5uZXIiKSkuYXR0cigic3JjIik7CmVsc2UgaWYoMDxhLmNsb3Nlc3QoIi5kaXZDYXJTaW5nbGVPdXRlckJveCIpLmhhcygiLmRpdkNhckltYWdlQ29udGFpbmVyID4gYSA+IGltZyIpLmxlbmd0aCljPSQoIi5kaXZDYXJJbWFnZUNvbnRhaW5lciA+IGEgPiBpbWciLGEuY2xvc2VzdCgiLmRpdkNhclNpbmdsZU91dGVyQm94IikpLmF0dHIoInNyYyIpO2Vsc2UgaWYoYz0kKCIuU2xpZGVyT3V0ZXJCb3ggLnNsaWRlci1tYWluIC5zbGlkZXMgLnNsaWRlOmZpcnN0LWNoaWxkIikuYXR0cigiZGF0YS1pbWFnZSIpLCIiPT1jfHx2b2lkIDA9PT1jKWM9JCgiLlNsaWRlck91dGVyQm94IC5zbGlkZXItbWFpbiAuc2xpZGVzIC5zbGlkZTpmaXJzdC1jaGlsZCBhIGltZyIpLmF0dHIoInNyYyIpO2c9Zy5yZXBsYWNlKC8oXHJcbnxcbnxccnxcdHxcJCkvZ20sIiIpO3ZhciBoPWEuYXR0cigiZGF0YS1jbGFzcyIpLGU9YS5hdHRyKCJkYXRhLXN0b2NraWQiKSxmPTA7aWYoInskQ0FSU1RPQ0tOVU1CRVJ9Ij09ZXx8dm9pZCAwPT09ZSllPQoiIjthLmhhc0NsYXNzKCJkMmMtZmF2cy1zZWxlY3RlZCIpPyhkZWxldGUgYi5mYXZvcml0ZXNbaF0saygiRmF2b3JpdGUtUmVtb3ZlZCIpKTooYi5mYXZvcml0ZXNbaF09e2lkOmgsY3JlYXRlZDpwKCksdGl0bGU6YS5hdHRyKCJkYXRhLXRpdGxlIiksdGl0bGVfZnI6YS5hdHRyKCJkYXRhLXRpdGxlLWZyIikseWVhcjphLmF0dHIoImRhdGEteWVhciIpLG1ha2U6YS5hdHRyKCJkYXRhLW1ha2UiKSxtb2RlbDphLmF0dHIoImRhdGEtbW9kZWwiKSxzaWQ6ZSx1cmw6ZCxwcmljZTpnLHZpZDphLmF0dHIoImRhdGEtY2FyaWQiKSxpbWFnZTpjfSxrKCJGYXZvcml0ZS1BZGRlZCIpKTtmb3IodmFyIG0gaW4gYi5mYXZvcml0ZXMpYi5mYXZvcml0ZXMuaGFzT3duUHJvcGVydHkobSkmJisrZjtiLmZhdkNvdW50PWY7c2V0Q29va2llKCJkMmZhdkRhdGEiLEpTT04uc3RyaW5naWZ5KGIpKTtzZWxmLnNldEljb25zKCl9O3NlbGYuc2V0SWNvbnM9ZnVuY3Rpb24oKXtpZihDb29raWVzLmdldCgiZDJmYXZEYXRhIikpe3ZhciBhPQpKU09OLnBhcnNlKENvb2tpZXMuZ2V0KCJkMmZhdkRhdGEiKSk7JCgiLmQyYy1mYXZzLXRyaWdnZXItd3JhcHBlciIpLnJlbW92ZUNsYXNzKCJkMmMtZmF2cy1zZWxlY3RlZCIpO2Zvcih2YXIgYiBpbiBhLmZhdm9yaXRlcylhLmZhdm9yaXRlcy5oYXNPd25Qcm9wZXJ0eShiKSYmMDwkKCIuIitiKS5sZW5ndGgmJiQoIi5kMmMtZmF2cy10cmlnZ2VyLXdyYXBwZXIuIitiKS5jbG9zZXN0KCIuZDJjLWZhdnMtdHJpZ2dlci13cmFwcGVyIikuYWRkQ2xhc3MoImQyYy1mYXZzLXNlbGVjdGVkIik7c2VsZi5iaW5kTmF2aWdhdGlvbigpfX07cmV0dXJuIHNlbGZ9O3NldFRpbWVvdXQoZnVuY3Rpb24oKXskKGZ1bmN0aW9uKCl7dC5jcmVhdGVMb2NhbFN0b3JhZ2UoKTtpZigibW9iaWxlIj09bil7dmFyIGE9JCgiI1NpdGVzX1BhZ2VfR2VuZXJhbF9NZW51X0JUTiIpLnZhbCgpO2E9JzxsaSBjbGFzcz0iZDJjLWZhdnMtbmF2LWRkLXdyYXBwZXIiPlx0XHRcbjxhIGNsYXNzPSJGQVZPUklURSBtZW51LWl0ZW0gZmxleC1ib3ggZDJjLWZhdnMtbmF2LXdyYXBwZXIiIGhyZWY9IiMiIG9uY2xpY2s9IiI+XG48aSBjbGFzcz0iZmEgZmEtaGVhcnQiPjwvaT5cbjxzcGFuIGNsYXNzPSJzaHJpbmstZ3JvdyI+JysKKCJlbiI9PWw\/Ik15IGZhdm9yaXRlcyI6Ik1lcyBmYXZvcmlzIikrJzwvc3Bhbj5cbjxzcGFuIHJvbGU9ImJ1dHRvbiIgdGFiaW5kZXg9IjAiIGNsYXNzPSJtZW51RXhwYW5kIC1wIC0tcy01IiBhcmlhLWxhYmVsPSInK2ErJyI+XG48c3ZnIGNsYXNzPSJpY29uIj48dXNlIHhsaW5rOmhyZWY9IiNpY29uLWNoZXZyb24tZG93biI+PC91c2U+PC9zdmc+XG48L3NwYW4+XG48L2E+XG48ZGl2IGNsYXNzPSJzdWJtZW51SXRlbUNvbnRhaW5lciIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPlxuPHN0YWNrLWxjIGlkPSJpdGVtX0ZBVk9SSVRFIiBjbGFzcz0iLS1zLTkiPjwvc3RhY2stbGM+XG48L2Rpdj5cbjwvbGk+JzskKCIuYnVyZ2VyLW1lbnUtY29udGFpbmVyIG5hdiA+IHVsIikuYXBwZW5kKGEpOyQoIi5idXJnZXItbWVudS1jb250YWluZXIgLmQyYy1mYXZzLW5hdi1kZC13cmFwcGVyIGEuZDJjLWZhdnMtbmF2LXdyYXBwZXIsIC5idXJnZXItbWVudS1jb250YWluZXIgLmQyYy1mYXZzLW5hdi1kZC13cmFwcGVyIC5tZW51RXhwYW5kIikub24oImNsaWNrIiwKZnVuY3Rpb24oYil7Yi5wcmV2ZW50RGVmYXVsdCgpO2I9JCh0aGlzKS5jbG9zZXN0KCIuZDJjLWZhdnMtbmF2LWRkLXdyYXBwZXIiKTtiLmhhc0NsYXNzKCJkMmMtZmF2cy1uYXYtZGlzYWJsZWQiKXx8dG9nZ2xlU3VibWVudXMoJCgiLm1lbnVFeHBhbmQiLGIpKX0pfXNlbGYuYmluZFRyaWdnZXJzKCk7MDwkKCIubHN0V3JhcHBlciIpLmxlbmd0aCYmInVuZGVmaW5lZCIhPT10eXBlb2Ygd2luZG93LkFic3RyYWN0VXNlZFNycE9iamVjdCYmKGE9bmV3IEFic3RyYWN0VXNlZFNycE9iamVjdCh7bmFtZToiZDJjX2Zhdm9yaXRlcyJ9KSxhLmFkZFVzZWRTcnBFdmVudE9ic2VydmVyKCJwcm94eSIsZnVuY3Rpb24oYil7InVuZGVmaW5lZCIhPT10eXBlb2YgYi5jbWQmJiJyZXF1ZXN0Ij09PWIuY21kJiZzZWxmLmJpbmRUcmlnZ2VycygpfSksYS5pbml0VXNlZFNycE9ic2VydmVyKCkpfSl9LDFFMyk7d2luZG93LmQyZmF2PXR9RDJGQVYoKTsKLyoqIC9qcy9vcGVuaG91cnMuanMgKiovCnZhciBfX19kMmNfb3BlbmhvdXJzanNfY19vbj0iMjAyNS0wNS0yMyAxNzoxMTowMyI7J3VzZSBzdHJpY3QnO3ZhciBfX19kMmNfb3BlbmhvdXJzanNfY19vbj0iMjAyNS0wMy0xOCAxNDozMDowOCI7InVzZSBzdHJpY3QiOwp2YXIgT3BlbkhvdXJzPWZ1bmN0aW9uKGIpe2Z1bmN0aW9uIGMoZCl7dmFyIGU9JCh0aGlzKS5zaWJsaW5ncygiLmV4cGFuZGFibGVfY29udGVudCIpLmVxKDApLmhhc0NsYXNzKCJvcGVuX2hvdXJzX21hcF9hY3RpdmUiKTskKGQuY3VycmVudFRhcmdldCkuZmluZCgiLm1hcF9vcGVuX2hvdXJzX2V4cGFuZF9hcnJvdyIpLnRvZ2dsZUNsYXNzKCJleHBhbmRlZCIpOyQodGhpcykucGFyZW50cyhhLm9wdGlvbnMuY29udGFpbmVyKS5maW5kKCIub3Blbl9ob3Vyc19tYXBfYWN0aXZlIikuc2xpZGVUb2dnbGUoInNsb3ciKTskKHRoaXMpLnBhcmVudHMoYS5vcHRpb25zLmNvbnRhaW5lcikuZmluZCgiLm9wZW5faG91cnNfbWFwX2FjdGl2ZSIpLnJlbW92ZUNsYXNzKCJvcGVuX2hvdXJzX21hcF9hY3RpdmUiKTtlfHwoJCh0aGlzKS5zaWJsaW5ncygiLmV4cGFuZGFibGVfY29udGVudCIpLmVxKDApLnNsaWRlVG9nZ2xlKCJzbG93IiksJCh0aGlzKS5zaWJsaW5ncygiLmV4cGFuZGFibGVfY29udGVudCIpLmVxKDApLmFkZENsYXNzKCJvcGVuX2hvdXJzX21hcF9hY3RpdmUiKSl9CnZhciBhPXRoaXM7YS5vcHRpb25zPWI7YS4kY29udGFpbmVyPSQoYS5vcHRpb25zLmNvbnRhaW5lcik7YS5pbml0PWZ1bmN0aW9uKCl7YS4kY29udGFpbmVyLmZpbmQoIi5tYXBfb3Blbl9ob3Vyc19leHBhbmQiKS5vbigiY2xpY2sgYXV0b19vcGVuIixjKTswPGEuJGNvbnRhaW5lci5maW5kKCIubWFwX29wZW5faG91cnNfZXhwYW5kLmRlZmF1bHRfb3BlbmVkIikubGVuZ3RoP2EuJGNvbnRhaW5lci5maW5kKCIubWFwX29wZW5faG91cnNfZXhwYW5kLmRlZmF1bHRfb3BlbmVkIikudHJpZ2dlcigiYXV0b19vcGVuIik6MiE9JCgiLmV4cGFuZGFibGVfY29udGVudCIpLmxlbmd0aHx8MDwkKCIuZXhwYW5kYWJsZV9jb250ZW50IikuZmluZCgiLnZpc2l0Q29udGFjdEhlYWRlciIpLmxlbmd0aD9hLm9wdGlvbnMuaGFzT3duUHJvcGVydHkoImF1dG9PcGVuIikmJiFhLm9wdGlvbnMuYXV0b09wZW58fGEuJGNvbnRhaW5lci5maW5kKCIubWFwX29wZW5faG91cnNfZXhwYW5kIikuZmlyc3QoKS50cmlnZ2VyKCJhdXRvX29wZW4iKToKJCgiLmV4cGFuZGFibGVfY29udGVudCIpLnNsaWRlVG9nZ2xlKCJzbG93IikuYWRkQ2xhc3MoIm9wZW5faG91cnNfbWFwX2FjdGl2ZSIpfTtyZXR1cm4gYX07Ci8qKiAvanMvdmlzaXRDb250YWN0Rm9ybS5qcyAqKi8KdmFyIF9fX2QyY192aXNpdENvbnRhY3RGb3JtanNfY19vbj0iMjAyNS0wNS0yMyAxNzoxMzozNSI7J3VzZSBzdHJpY3QnO3ZhciBfX19kMmNfdmlzaXRDb250YWN0Rm9ybWpzX2Nfb249IjIwMjQtMDMtMjUgMTI6MzU6MzYiOyJ1c2Ugc3RyaWN0IjsKJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKXskKCIudmlzaXRDb250YWN0Rm9ybSIpLmVhY2goZnVuY3Rpb24oKXskKHRoaXMpLnBhcmVudCgpLnBhcmVudCgpLm9uKCJtb3VzZWVudGVyIG1vdXNlbGVhdmUiLGZ1bmN0aW9uKGEpeyQodGhpcykuZmluZCgiLnZpc2l0Q29udGFjdEZvcm1Db250YWluZXIiKS5oYXNDbGFzcygiZml4ZWRQb3NpdGlvbiIpfHwoYT0oJCh0aGlzKS5vdXRlcldpZHRoKCktJCh0aGlzKS5maW5kKCIudmlzaXRDb250YWN0Rm9ybUNvbnRhaW5lciIpLm91dGVyV2lkdGgoKSkvMiwkKHRoaXMpLmZpbmQoIi52aXNpdENvbnRhY3RGb3JtQ29udGFpbmVyIikuY3NzKCJsZWZ0IixhKyJweCIpLCQodGhpcykuZmluZCgiLnZpc2l0Q29udGFjdEZvcm1Db250YWluZXIiKS5hZGRDbGFzcygiZml4ZWRQb3NpdGlvbiIpKX0pOyQodGhpcykucGFyZW50KCkub24oIm1vdXNlZW50ZXIgbW91c2VsZWF2ZSIsZnVuY3Rpb24oYSl7JCh0aGlzKS5oYXNDbGFzcygiaXNPcGVuIil8fAoibW91c2VsZWF2ZSI9PT1hLnR5cGV8fCQodGhpcykuYWRkQ2xhc3MoImlzT3BlbiIpO2lmKCJtb3VzZWxlYXZlIj09PWEudHlwZSl7dmFyIGI9JChhLnRvRWxlbWVudCkuaGFzQ2xhc3MoInhkc29mdF9kYXRldGltZXBpY2tlciIpfHwkKGEudG9FbGVtZW50KS5jbG9zZXN0KCIueGRzb2Z0X2RhdGV0aW1lcGlja2VyIikubGVuZ3RoO251bGw9PT1hLnRvRWxlbWVudHx8Ynx8JCh0aGlzKS5yZW1vdmVDbGFzcygiaXNPcGVuIil9fSk7dmFyIGM9JCh0aGlzKS5hdHRyKCJkYXRhLW1haWxpZCIpLGQ9JCh0aGlzKS5maW5kKCIudGV4dFNlbmRUb0VtYWlsIikudmFsKCksZT0kKHRoaXMpLmZpbmQoIi50ZXh0U2VuZFRvRW1haWxBZGYiKS52YWwoKSxmPSQodGhpcykuZmluZCgiLnZpc2l0Q29udGFjdEZvcm1EZXAiKS52YWwoKTskKHRoaXMpLm1haWxFeHByZXNzUmVxdWVzdCh7ZW1haWxJZDpjLGRlcGFydG1lbnQ6ZixlbWFpbDp7c2VuZFRvOmQsc2VuZFRvQURGOmV9LGRlZmluaXRpb25zOntzdWJqZWN0OiIuZW1haWxTdWJqZWN0RGVmX1Zpc2l0Q29udGFjdCIsCmJvZHk6Ii5lbWFpbEJvZHlEZWZfVmlzaXRDb250YWN0In0scGhvbmU6e3NlbGVjdG9yOiIudmlzaXRDb250YWN0UGhvbmUifSxvbkFmdGVySW5pdDpmdW5jdGlvbigpe3NjaGVkdWxlPW5ldyBNYWlsU2NoZWR1bGUoe3Njb3BlOiQodGhpcyl9KTtzY2hlZHVsZS5maXJzdENob2ljZU9iamVjdElkPSQodGhpcykuZmluZCgiLnZpc2l0Q29udGFjdERhdGUiKS5hdHRyKCJpZCIpO3NjaGVkdWxlLmluaXQoKTskKHRoaXMpLmZpbmQoIi52aXNpdENvbnRhY3REYXRlIikub24oImNoYW5nZSIsZnVuY3Rpb24oKXswPT09JCh0aGlzKS52YWwoKS5sZW5ndGg\/JCh0aGlzKS5wYXJlbnQoKS5wYXJlbnQoKS5maW5kKCIudmlzaXRDb250YWN0Q29tbWVudCIpLnJlbW92ZUNsYXNzKCJzaG93Q29tbWVudCIpOiQodGhpcykucGFyZW50KCkucGFyZW50KCkuZmluZCgiLnZpc2l0Q29udGFjdENvbW1lbnQiKS5hZGRDbGFzcygic2hvd0NvbW1lbnQiKX0pOyQodGhpcykub24oImNsaWNrIiwiLnZpc2l0Q29udGFjdEZvcm1TdWJtaXQiLApmdW5jdGlvbigpeyQodGhpcykuY2xvc2VzdCgiLnZpc2l0Q29udGFjdEZvcm0iKS5tYWlsRXhwcmVzc1JlcXVlc3QoKS5zdWJtaXQoKTtyZXR1cm4hMX0pfX0pfSl9KTsKLyoqIC9qcy9nZW9Mb2NhdGlvbi5qcyAqKi8KdmFyIF9fX2QyY19nZW9Mb2NhdGlvbmpzX2Nfb249IjIwMjUtMDUtMjMgMTc6MTA6MjQiOyd1c2Ugc3RyaWN0Jzt2YXIgX19fZDJjX2dlb0xvY2F0aW9uanNfY19vbj0iMjAyNS0wMi0yNiAwOTozMDoxMSI7InVzZSBzdHJpY3QiOwp2YXIgZ2VvTG9jYXRvcj1mdW5jdGlvbihmKXt2YXIgYT10aGlzO2EubWFwc0FQSUtleT1udWxsO2EudXNlSFRNTDU9ITA7YS5nZW9jb2RlTG9jYXRpb249ITA7YS5hdHRlbXB0UGFnZU51bT0wO2EudHJhY2tMb2NhdGlvbkdBPSExO2EuZm9yY2VHZW9sb2NBdHRlbXB0PSExO2Euc2hvd1BvaW50ZXJNZXNzYWdlPSEwO2EudGltZW91dHM9W107YS5icm93c2VyPSIiO2EuaXNNb2JpbGU9IjEiPT0kKCIjaXNtb2JpbGUiKS52YWwoKTthLmdlb2xvY1N0YXR1c2VzPXtPSzoiU1VDQ0VTUyIsUkVGVVNFRDoiUkVGVVNFRCIsQ09PS0lFX0FDQ0VQVEVEOiJQUkVfQUNDRVBURUQiLENPT0tJRV9SRUZVU0VEOiJQUkVfUkVGVVNFRCIsQ0FOQ0VMRUQ6IkNBTkNFTEVEIixGQUlMOiJGQUlMRUQifTthLmdlb2xvY0Vycm9ycz17SU5WQUxJRF9SRVNQT05TRToiSU5WQUxJRF9SRVNQT05TRSIsQ09OTkVDVElPTl9GQUlMRUQ6IkNPTk5FQ1RJT05fRkFJTEVEIixHRU9MT0NfRkFJTEVEOiJHRU9MT0NfRkFJTEVEIiwKR0VPTE9DX1JFRlVTRUQ6IkdFT0xPQ19SRUZVU0VEIixHRU9DT0RFX0ZBSUxFRDoiR0VPQ09ERV9GQUlMRUQifTthLmdlb2xvY1Jlc3VsdD17cmVzdWx0OjAsZ2VvbG9jX2RhdGU6IiIsZ2VvbG9jX3N0YXR1czphLmdlb2xvY1N0YXR1c2VzLkZBSUwsZ2VvY29kZV9zdGF0dXM6MCxsYXRpdHVkZTowLGxvbmdpdHVkZTowLGFjY3VyYWN5OjAscG9zdGFsX2NvZGU6IiIsZ2VvY29kZV9hZGRyZXNzOiIiLGdlb2NvZGVfYWRkcmVzc19zdHI6IiJ9O2EuZ2VvbG9jQ2FsbGJhY2s9ZnVuY3Rpb24oKXtmKGEuZ2VvbG9jUmVzdWx0KTtmPWZ1bmN0aW9uKCl7Y29uc29sZS5sb2coIkdlbyBjYWxsYmFjayBhbHJlYWR5IGZpcmVkLiIpfX07YS5faW5pdD1mdW5jdGlvbigpe2EuaXNNb2JpbGUmJihhLnNob3dQb2ludGVyTWVzc2FnZT0hMSk7aWYoMDxhLmF0dGVtcHRQYWdlTnVtKXt2YXIgYj1udWxsIT1Db29raWVzLmdldCgiZ2VvbG9jUGFnZVZpZXdzIik\/cGFyc2VJbnQoQ29va2llcy5nZXQoImdlb2xvY1BhZ2VWaWV3cyIpKSsKMToxO0Nvb2tpZXMuc2V0KCJnZW9sb2NQYWdlVmlld3MiLGI8YS5hdHRlbXB0UGFnZU51bT9iOjAsbnVsbCwiLyIpO2lmKGI8YS5hdHRlbXB0UGFnZU51bSlyZXR1cm4gYS5nZW9sb2NSZXN1bHQucmVzdWx0PTAsYS5nZW9sb2NSZXN1bHQuc3RhdHVzPWEuZ2VvbG9jU3RhdHVzZXMuQ0FOQ0VMRUQsYS5nZW9sb2NDYWxsYmFjaygpLCExfWlmKCFhLmZvcmNlR2VvbG9jQXR0ZW1wdCYmQ29va2llcy5nZXQoImdlb2xvY1Byb2Nlc3NlZCIpKXJldHVybiBiPUpTT04ucGFyc2UoQ29va2llcy5nZXQoImdlb2xvY1Byb2Nlc3NlZCIpKSwiMSI9PWIuYWNjZXB0ZWQ\/KGEuZ2VvbG9jUmVzdWx0LnJlc3VsdD0xLGEuZ2VvbG9jUmVzdWx0Lmdlb2xvY19kYXRlPWIuZ2VvbG9jX2RhdGUsYS5nZW9sb2NSZXN1bHQuZ2VvbG9jX3N0YXR1cz1hLmdlb2xvY1N0YXR1c2VzLkNPT0tJRV9BQ0NFUFRFRCxhLmdlb2xvY1Jlc3VsdC5sYXRpdHVkZT1iLmxhdGl0aXVkZSxhLmdlb2xvY1Jlc3VsdC5sb25naXR1ZGU9CmIubG9uZ2l0dWRlLGEuZ2VvbG9jUmVzdWx0Lmdlb2NvZGVfYWRkcmVzcz1iLmFkZHJlc3MsYS5nZW9sb2NSZXN1bHQuZ2VvY29kZV9hZGRyZXNzX3N0cj1iLmFkZHJlc3Nfc3RyKTooYS5nZW9sb2NSZXN1bHQucmVzdWx0PTAsYS5nZW9sb2NSZXN1bHQuc3RhdHVzPWEuZ2VvbG9jU3RhdHVzZXMuQ09PS0lFX1JFRlVTRUQpLGEuZ2VvbG9jQ2FsbGJhY2soKSwhMTtpZigiaHR0cHM6IiE9bG9jYXRpb24ucHJvdG9jb2wpcmV0dXJuIGEuZ2VvbG9jUmVzdWx0LnJlc3VsdD0wLGEuZ2VvbG9jUmVzdWx0LnN0YXR1cz1hLmdlb2xvY1N0YXR1c2VzLkNBTkNFTEVELGEuZ2VvbG9jQ2FsbGJhY2soKSwhMTtpZihsdF9JRTl8fCFuYXZpZ2F0b3IuZ2VvbG9jYXRpb24pYS51c2VIVE1MNT0hMTtuYXZpZ2F0b3IuYnJvd3Nlcj1mdW5jdGlvbigpe3ZhciBjPW5hdmlnYXRvci51c2VyQWdlbnQsZD1jLm1hdGNoKC8ob3BlcmF8Y2hyb21lfHNhZmFyaXxmaXJlZm94fG1zaWV8dHJpZGVudCg\/PVwvKSlcLz9ccyooXGQrKS9pKXx8CltdO2lmKC90cmlkZW50L2kudGVzdChkWzFdKSl7dmFyIGU9L1xicnZbIDpdKyhcZCspL2cuZXhlYyhjKXx8W107cmV0dXJuIklFeHBsb3JlciAiKyhlWzFdfHwiIil9aWYoIkNocm9tZSI9PT1kWzFdJiYoZT1jLm1hdGNoKC9cYk9QUlwvKFxkKykvKSxudWxsIT1lKSlyZXR1cm4iT3BlcmEgIitlWzFdO2Q9ZFsyXT9bZFsxXSxkWzJdXTpbbmF2aWdhdG9yLmFwcE5hbWUsbmF2aWdhdG9yLmFwcFZlcnNpb24sIi0\/Il07bnVsbCE9KGU9Yy5tYXRjaCgvdmVyc2lvblwvKFxkKykvaSkpJiZkLnNwbGljZSgxLDEsZVsxXSk7cmV0dXJuIGQuam9pbigiICIpfSgpO2EuYnJvd3Nlcj1uYXZpZ2F0b3IuYnJvd3NlcjtyZXR1cm4hMH07YS5oYW5kbGVMb2NhdGlvblN1Y2Nlc3M9ZnVuY3Rpb24oKXt2YXIgYj0iTGF0aXR1ZGU6ICIrYS5nZW9sb2NSZXN1bHQubGF0aXR1ZGUrIjsgTG9uZ2l0dWRlOiAiK2EuZ2VvbG9jUmVzdWx0LmxvbmdpdHVkZTszPD1hLmdlb2xvY1Jlc3VsdC5wb3N0YWxfY29kZS5sZW5ndGgmJgooYj1hLmdlb2xvY1Jlc3VsdC5wb3N0YWxfY29kZSk7YS50cmFja0xvY2F0aW9uKCJHZW9sb2NhdGlvbiIsIkFjY2VwdGVkIixiKTthLmdlb2xvY1Jlc3VsdC5nZW9sb2NfZGF0ZT0obmV3IERhdGUpLmdldFRpbWUoKTtiPW5ldyBEYXRlO2Iuc2V0SG91cnMoMjMsNTksNTksMCk7Q29va2llcy5zZXQoImdlb2xvY1Byb2Nlc3NlZCIsSlNPTi5zdHJpbmdpZnkoe2FjY2VwdGVkOjEsZ2VvbG9jX2RhdGU6YS5nZW9sb2NSZXN1bHQuZ2VvbG9jX2RhdGUsbGF0aXR1ZGU6YS5nZW9sb2NSZXN1bHQubGF0aXR1ZGUsbG9uZ2l0dWRlOmEuZ2VvbG9jUmVzdWx0LmxvbmdpdHVkZSxwb3N0YWxfY29kZTphLmdlb2xvY1Jlc3VsdC5wb3N0YWxfY29kZSxhY2N1cmFjeTphLmdlb2xvY1Jlc3VsdC5hY2N1cmFjeSxhZGRyZXNzOmEuZ2VvbG9jUmVzdWx0Lmdlb2NvZGVfYWRkcmVzcyxhZGRyZXNzX3N0cjphLmdlb2xvY1Jlc3VsdC5nZW9jb2RlX2FkZHJlc3Nfc3RyfSksYiwiLyIpO2EuZ2VvbG9jQ2FsbGJhY2soKX07CmEuaGFuZGxlTG9jYXRpb25FcnJvcj1mdW5jdGlvbihiLGMpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgY3x8bnVsbD09YyljPSIiO2EuZ2VvbG9jUmVzdWx0LnJlc3VsdD0wO2EuZ2VvbG9jUmVzdWx0Lmdlb2xvY19kYXRlPShuZXcgRGF0ZSkuZ2V0VGltZSgpO2EuZ2VvbG9jUmVzdWx0Lmdlb2xvY19zdGF0dXM9YS5nZW9sb2NTdGF0dXNlcy5GQUlMO3N3aXRjaChiKXtjYXNlIGEuZ2VvbG9jRXJyb3JzLklOVkFMSURfUkVTUE9OU0U6Yz0iR2VvbG9jIGVycm9yIG1lc2FnZTogSW52YWxpZCByZXNwb25zZSBkYXRhIjticmVhaztjYXNlIGEuZ2VvbG9jRXJyb3JzLkNPTk5FQ1RJT05fRkFJTEVEOmM9Ikdlb2xvYyBlcnJvciBtZXNhZ2U6IENvbmVjdGlvbiBmYWlsZWQiO2JyZWFrO2Nhc2UgYS5nZW9sb2NFcnJvcnMuR0VPTE9DX1JFRlVTRUQ6YS5nZW9sb2NSZXN1bHQuZ2VvbG9jX3N0YXR1cz1hLmdlb2xvY1N0YXR1c2VzLlJFRlVTRUQ7YnJlYWs7Y2FzZSBhLmdlb2xvY0Vycm9ycy5HRU9MT0NfRkFJTEVEOmJyZWFrOwpjYXNlIGEuZ2VvbG9jRXJyb3JzLkdFT0NPREVfRkFJTEVEOmM9Ikdlb2xvYyBlcnJvciBtZXNhZ2U6IEludmFsaWQgcmVzcG9uc2UgZGF0YSI7YnJlYWs7ZGVmYXVsdDpjPSJVbmtub3duIGVycm9yIG9jdXJyZWQifWEudHJhY2tMb2NhdGlvbigiR2VvbG9jYXRpb24iLCJGYWlsZWQiLGMpO2EuZ2VvbG9jQ2FsbGJhY2soKX07YS5nZXRMb2NhdGlvbj1mdW5jdGlvbigpe2EuX2luaXQoKSYmKDA9PWEudXNlSFRNTDU\/YS5nZXRHb29nbGVTZXJ2aWNlTG9jYXRpb24oKTphLmdldEhUTUw1TG9jYXRpb24oKSl9O2EuZ2V0R29vZ2xlU2VydmljZUxvY2F0aW9uPWZ1bmN0aW9uKCl7YS5oYW5kbGVMb2NhdGlvblN1Y2Nlc3MoKTtyZXR1cm4hMX07YS5nZXRIVE1MNUxvY2F0aW9uPWZ1bmN0aW9uKCl7YS5zaG93R2VvbG9jTXNnKCk7bmF2aWdhdG9yLmdlb2xvY2F0aW9uLmdldEN1cnJlbnRQb3NpdGlvbihmdW5jdGlvbihiKXthLmhpZGVHZW9sb2NNc2coKTthLmNsZWFyU2V0VGltZW91dHMoKTsKYS5nZW9sb2NSZXN1bHQucmVzdWx0PTE7YS5nZW9sb2NSZXN1bHQuZ2VvbG9jX3N0YXR1cz1hLmdlb2xvY1N0YXR1c2VzLk9LO2EuZ2VvbG9jUmVzdWx0LmxhdGl0dWRlPWIuY29vcmRzLmxhdGl0dWRlO2EuZ2VvbG9jUmVzdWx0LmxvbmdpdHVkZT1iLmNvb3Jkcy5sb25naXR1ZGU7YS5nZW9sb2NSZXN1bHQuYWNjdXJhY3k9Yi5jb29yZHMuYWNjdXJhY3k7aWYoMSE9YS5nZW9jb2RlTG9jYXRpb24pcmV0dXJuIGEuaGFuZGxlTG9jYXRpb25TdWNjZXNzKCksITE7YS5sYXRMb25nR2VvY29kZShiLmNvb3Jkcy5sYXRpdHVkZSxiLmNvb3Jkcy5sb25naXR1ZGUpfSxmdW5jdGlvbihiKXtjb25zb2xlLmxvZyhiKTt2YXIgYz0iR2VvbG9jIGVycm9yIGNvZGU6ICIrYi5jb2RlKyIsIGdlb2xvYyBlcnJvciBtZXNhZ2U6ICIrYi5tZXNzYWdlO2EuaGlkZUdlb2xvY01zZygpO2EuY2xlYXJTZXRUaW1lb3V0cygpO0Nvb2tpZXMuc2V0KCJnZW9sb2NQcm9jZXNzZWQiLEpTT04uc3RyaW5naWZ5KHthY2NlcHRlZDowfSksCjEsIi8iKTt2YXIgZD1hLmdlb2xvY0Vycm9ycy5HRU9MT0NfUkVGVVNFRDsxIT1wYXJzZUludChiLmNvZGUpJiYoZD1hLmdlb2xvY0Vycm9ycy5HRU9MT0NfRkFJTEVEKTthLmhhbmRsZUxvY2F0aW9uRXJyb3IoZCxjKX0se3RpbWVvdXQ6MjVFM30pfTthLmxhdExvbmdHZW9jb2RlPWZ1bmN0aW9uKGIsYyl7YS5nZW9sb2NSZXN1bHQuZ2VvY29kZV9hZGRyZXNzPWIrInwiK2M7YS5nZW9sb2NSZXN1bHQuZ2VvY29kZV9hZGRyZXNzX3N0cj0iTGF0aXR1ZGU6ICIrYisiOyBMb25naXR1ZGU6ICIrYzthLmhhbmRsZUxvY2F0aW9uU3VjY2VzcygpfTthLnRyYWNrUG9zdGFsPWZ1bmN0aW9uKCl7aWYoJGNvb2tpZT1Db29raWVzLmdldCgiSFRNTDVHZW8iKSlpZigkY29va2llPUpTT04ucGFyc2UoJGNvb2tpZSksJGNvb2tpZS5wb3N0YWxfY29kZSlyZXR1cm47aWYoInVuZGVmaW5lZCIhPT10eXBlb2YgYS5nZW9sb2NSZXN1bHQucG9zdGFsX2NvZGUmJiIiIT09YS5nZW9sb2NSZXN1bHQucG9zdGFsX2NvZGUpe3ZhciBiPQphLmdlb2xvY1Jlc3VsdC5wb3N0YWxfY29kZSsifCIrYS5nZW9sb2NSZXN1bHQuYWNjdXJhY3k7InVuZGVmaW5lZCIhPXR5cGVvZiBhY3RpdmVVc2VyUHJvZmlsZU1uZyYmInVuZGVmaW5lZCIhPXR5cGVvZiBhY3RpdmVVc2VyUHJvZmlsZU1uZy5sb2dQYWdlVmlld0V2ZW50PygidW5kZWZpbmVkIiE9PXR5cGVvZiBkZWJ1ZyYmZGVidWcoIkxvZyBFdmVudCIsYS5nZW9sb2NSZXN1bHQucG9zdGFsX2NvZGUsIkhUTUw1R2VvLnBvc3RhbCIpLGFjdGl2ZVVzZXJQcm9maWxlTW5nLmxvZ1BhZ2VWaWV3RXZlbnQoYiwiSFRNTDVHZW8ucG9zdGFsIikpOiJ1bmRlZmluZWQiIT09dHlwZW9mIGRlYnVnJiZkZWJ1ZygiIVVOTE9HR0VEIEVWRU5UISIsYS5nZW9sb2NSZXN1bHQucG9zdGFsX2NvZGUsIkhUTUw1R2VvLnBvc3RhbCIpO2I9bmV3IERhdGU7Yi5zZXRIb3VycygyMyw1OSw1OSwwKTtDb29raWVzLnNldCgiSFRNTDVHZW8iLEpTT04uc3RyaW5naWZ5KHtwb3N0YWxfY29kZToxfSksYiwiLyIpfX07CmEuZ2V0QWRkcmVzc0Nvb3JkPWZ1bmN0aW9uKGIsYyl7cmV0dXJuITF9O2EudHJhY2tMb2NhdGlvbj1mdW5jdGlvbihiLGMsZCl7aWYoIWEudHJhY2tMb2NhdGlvbkdBKXJldHVybiExfTthLmNsZWFyU2V0VGltZW91dHM9ZnVuY3Rpb24oKXtmb3IodmFyIGI9MDtiPGEudGltZW91dHMubGVuZ3RoO2IrKyljbGVhclRpbWVvdXQoYS50aW1lb3V0c1tiXSk7YS50aW1lb3V0cz1bXX07YS5zaG93R2VvbG9jTXNnPWZ1bmN0aW9uKCl7aWYoIWEuc2hvd1BvaW50ZXJNZXNzYWdlKXJldHVybiExO2EuY2xlYXJTZXRUaW1lb3V0cygpO3ZhciBiPXNldFRpbWVvdXQoZnVuY3Rpb24oKXtnZW9sb2NGYWlsKCl9LDNFNCk7YS50aW1lb3V0cy5wdXNoKGIpO2lmKC0xPGEuYnJvd3Nlci5pbmRleE9mKCJGaXJlZm94Iil8fC0xPGEuYnJvd3Nlci5pbmRleE9mKCJJRSIpKSQoIi5nZW9sb2MtbW9kYWwtYmciKS5vZmYoImNsaWNrIikub24oImNsaWNrIixmdW5jdGlvbigpe2dlb2xvY0ZhaWwoKTtjbGVhclRpbWVvdXQoYil9KSwKJCgiI2dlb2xvY2F0aW9uTXNnIikub2ZmKCJjbGljayIpLm9uKCJjbGljayIsZnVuY3Rpb24oKXtnZW9sb2NGYWlsKCk7Y2xlYXJUaW1lb3V0KGIpfSksJCgiI2dlb2xvY2F0aW9uTXNnSUUiKS5vZmYoImNsaWNrIikub24oImNsaWNrIixmdW5jdGlvbigpe2dlb2xvY0ZhaWwoKTtjbGVhclRpbWVvdXQoYil9KTt2YXIgYz0iZ2VvbG9jYXRpb25Nc2ciLGQ9ITAsZT17dG9wOiIwIixsZWZ0OiIwIn07c3dpdGNoKCEwKXtjYXNlIC0xPGEuYnJvd3Nlci5pbmRleE9mKCJJRSIpOmU9e2JvdHRvbToiMHB4IixsZWZ0OiI0MyUifTtjPSJnZW9sb2NhdGlvbk1zZ0lFIjticmVhaztjYXNlIC0xPGEuYnJvd3Nlci5pbmRleE9mKCJGaXJlZm94Iik6ZT17dG9wOiI5MHB4IixsZWZ0OiI1cHgifTskKCJpbWcuYnV0dG9uX3BvaW50ZXIiKS5jc3MoImxlZnQiLCI3NXB4Iik7JCgiaW1nLmJ1dHRvbl9wb2ludGVyIikuY3NzKCJ0b3AiLCIzNXB4Iik7LTE9PSQoIiN0eHRVc2VyQWdlbnQiKS52YWwoKS5pbmRleE9mKCJXaW5kb3dzIikmJgokKCJpbWcuYnV0dG9uX3BvaW50ZXIiKS5jc3MoImxlZnQiLCIxNzVweCIpO2JyZWFrO2Nhc2UgLTE8YS5icm93c2VyLmluZGV4T2YoIkNocm9tZSIpOmU9e3RvcDoiNjVweCIsbGVmdDoiMHB4In07JCgiaW1nLmJ1dHRvbl9wb2ludGVyIikuY3NzKCJsZWZ0IiwiMjEwcHgiKTstMT09JCgiI3R4dFVzZXJBZ2VudCIpLnZhbCgpLmluZGV4T2YoIldpbmRvd3MiKSYmKGU9e3RvcDoiNzVweCIsbGVmdDoiNTBweCJ9LCQoImltZy5idXR0b25fcG9pbnRlciIpLmNzcygibGVmdCIsIjI0MHB4IikpO2JyZWFrO2Nhc2UgLTE8YS5icm93c2VyLmluZGV4T2YoIlNhZmFyaSIpOmU9e3RvcDoiNTE1cHgiLGxlZnQ6IjM1JSJ9O2Q9ITA7YnJlYWs7Y2FzZSAtMTxhLmJyb3dzZXIuaW5kZXhPZigiT3BlcmEiKTplPXt0b3A6IjAiLGxlZnQ6IjAifTtkPSExO2JyZWFrO2RlZmF1bHQ6ZT17dG9wOiIwIixsZWZ0OiIwIn0sZD0hMX1kJiYoInVuZGVmaW5lZCIhPXR5cGVvZiAkKCIucmV2ZWFsLW1vZGFsLWJnIikudmFsKCkmJgoiYmxvY2siPT0kKCIucmV2ZWFsLW1vZGFsLWJnIikuY3NzKCJkaXNwbGF5IikmJiQoIi5yZXZlYWwtbW9kYWwtYmciKS5oaWRlKCksJCgiLmdlb2xvYy1tb2RhbC1iZyIpLnNob3coKSwkKCIjIitjKS5jc3MoZSksJCgiIyIrYykuc2hvdygpLCJ1bmRlZmluZWQiPT10eXBlb2Ygc2l0ZVNlY3Rpb24mJihzaXRlU2VjdGlvbj0iVU5ERUZJTkVEIiksYS50cmFja0xvY2F0aW9uKCJHZW9sb2NhdGlvbiIsIlNlY3Rpb24tIitzaXRlU2VjdGlvbiwiIikpfTthLmhpZGVHZW9sb2NNc2c9ZnVuY3Rpb24oYil7aWYoIWEuc2hvd1BvaW50ZXJNZXNzYWdlKXJldHVybiExO2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgYnx8bnVsbD09YiliPSExOyQoIi5nZW9sb2MtbW9kYWwtYmciKS5oaWRlKCk7Ynx8KCQoIiNnZW9sb2NhdGlvbk1zZyIpLmhpZGUoKSwkKCIjZ2VvbG9jYXRpb25Nc2dJRSIpLmhpZGUoKSl9O2EuZ2VvbG9jRmFpbD1mdW5jdGlvbigpey0xPGEuYnJvd3Nlci5pbmRleE9mKCJJRSIpJiYKbG9jYXRpb24ucmVsb2FkKCk7b3ZlcmxheU9ubHk9ITA7aWYoLTE8YS5icm93c2VyLmluZGV4T2YoIkZpcmVmb3giKXx8LTE8YS5icm93c2VyLmluZGV4T2YoIklFIikpb3ZlcmxheU9ubHk9ITE7YS5oaWRlR2VvbG9jTXNnKG92ZXJsYXlPbmx5KTtyZXR1cm4hMX07YS5nZXREaXN0YW5jZT1mdW5jdGlvbihiLGMsZCl7cmV0dXJuIGEuZ2V0RGlzdGFuY2VIYXZlcnNpbmUoYixjKX07YS5nZXREaXN0YW5jZUhhdmVyc2luZT1mdW5jdGlvbihiLGMpe3ZhciBkPShjLmxhdC1iLmxhdCkqTWF0aC5QSS8xODAsZT0oYy5sb25nLWIubG9uZykqTWF0aC5QSS8xODA7Yj1NYXRoLnNpbihkLzIpKk1hdGguc2luKGQvMikrTWF0aC5jb3MoYi5sYXQqTWF0aC5QSS8xODApKk1hdGguY29zKGMubGF0Kk1hdGguUEkvMTgwKSpNYXRoLnNpbihlLzIpKk1hdGguc2luKGUvMik7cmV0dXJuKDEyNzU2Mjc0Kk1hdGguYXRhbjIoTWF0aC5zcXJ0KGIpLE1hdGguc3FydCgxLWIpKSkudG9GaXhlZCgyKX07YS5nZXREaXN0YW5jZUdtYXBzPQpmdW5jdGlvbihiLGMpe3JldHVybiBhLmdldERpc3RhbmNlSGF2ZXJzaW5lKGIsYyl9fTsKLyoqIC9qcy90b2FzdHIuanMgKiovCnZhciBfX19kMmNfdG9hc3RyanNfY19vbj0iMjAyNS0wNS0yMyAxNzoxMjowOSI7J3VzZSBzdHJpY3QnO3ZhciBfX19kMmNfdG9hc3RyanNfY19vbj0iMjAyNC0wMy0yNiAxMjozMDoxNSI7InVzZSBzdHJpY3QiOwooZnVuY3Rpb24oeil7eihbImpxdWVyeSJdLGZ1bmN0aW9uKGQpe3JldHVybiBmdW5jdGlvbigpe2Z1bmN0aW9uIG4oYSxjKXthfHwoYT1sKCkpO2Y9ZCgiIyIrYS5jb250YWluZXJJZCk7aWYoZi5sZW5ndGgpcmV0dXJuIGY7YyYmKGY9ZCgiPGRpdi8+IikuYXR0cigiaWQiLGEuY29udGFpbmVySWQpLmFkZENsYXNzKGEucG9zaXRpb25DbGFzcykuYXR0cigiYXJpYS1saXZlIiwicG9saXRlIikuYXR0cigicm9sZSIsImFsZXJ0IikuY3NzKCJjb2xvciIsYS5jb2xvciksZi5hcHBlbmRUbyhkKGEudGFyZ2V0KSkpO3JldHVybiBmfWZ1bmN0aW9uIEEoYSxjLGUpe2U9ZSYmZS5mb3JjZT9lLmZvcmNlOiExO3JldHVybiBhJiYoZXx8MD09PWQoIjpmb2N1cyIsYSkubGVuZ3RoKT8oYVtjLmhpZGVNZXRob2RdKHtkdXJhdGlvbjpjLmhpZGVEdXJhdGlvbixlYXNpbmc6Yy5oaWRlRWFzaW5nLGNvbXBsZXRlOmZ1bmN0aW9uKCl7dShhKX19KSwhMCk6ITF9ZnVuY3Rpb24gRSgpe3JldHVybnt0YXBUb0Rpc21pc3M6ITAsCnRvYXN0Q2xhc3M6InRvYXN0Iixjb250YWluZXJJZDoidG9hc3QtY29udGFpbmVyIixkZWJ1ZzohMSxzaG93TWV0aG9kOiJmYWRlSW4iLHNob3dEdXJhdGlvbjozMDAsc2hvd0Vhc2luZzoic3dpbmciLG9uU2hvd246ZnVuY3Rpb24oKXtkKCIudHJhZGVJbkJhck1vYmlsZUJ1dHRvbiIpLmFkZENsYXNzKCJ3aXRoVG9hc3RlciIpO2QoIi5wcm9tb1RvcEJ0bi5mbG9hdGluZyIpLmFkZENsYXNzKCJ3aXRoVG9hc3RlciIpfSxoaWRlTWV0aG9kOiJmYWRlT3V0IixoaWRlRHVyYXRpb246MUUzLGhpZGVFYXNpbmc6InN3aW5nIixvbkhpZGRlbjpmdW5jdGlvbigpe2QoIi50cmFkZUluQmFyTW9iaWxlQnV0dG9uIikucmVtb3ZlQ2xhc3MoIndpdGhUb2FzdGVyIik7ZCgiLnByb21vVG9wQnRuLmZsb2F0aW5nIikucmVtb3ZlQ2xhc3MoIndpdGhUb2FzdGVyIil9LG9uQ2xvc2U6ZnVuY3Rpb24oKXtkKCIudHJhZGVJbkJhck1vYmlsZUJ1dHRvbiIpLnJlbW92ZUNsYXNzKCJ3aXRoVG9hc3RlciIpOwpkKCIucHJvbW9Ub3BCdG4uZmxvYXRpbmciKS5yZW1vdmVDbGFzcygid2l0aFRvYXN0ZXIiKX0sZXh0ZW5kZWRUaW1lT3V0OjFFMyxpY29uQ2xhc3Nlczp7ZXJyb3I6InRvYXN0LWVycm9yIixpbmZvOiJ0b2FzdC1pbmZvIixzdWNjZXNzOiJ0b2FzdC1zdWNjZXNzIix3YXJuaW5nOiJ0b2FzdC13YXJuaW5nIn0saWNvbkNsYXNzOiJ0b2FzdC1pbmZvIixjb2xvcjoiI0ZGRiIsYmdDb2xvcjoiIixwb3NpdGlvbkNsYXNzOiJ0b2FzdC10b3AtcmlnaHQiLHRpbWVPdXQ6NUUzLHRpdGxlQ2xhc3M6InRvYXN0LXRpdGxlIixtZXNzYWdlQ2xhc3M6InRvYXN0LW1lc3NhZ2UiLHRhcmdldDoiYm9keSIsY2xvc2VIdG1sOic8YnV0dG9uIHR5cGU9ImJ1dHRvbiI+JnRpbWVzOzwvYnV0dG9uPicsbmV3ZXN0T25Ub3A6ITAscHJldmVudER1cGxpY2F0ZXM6ITEscHJvZ3Jlc3NCYXI6ITF9fWZ1bmN0aW9uIHIoYSl7ZnVuY3Rpb24gYyhrKXtpZighZCgiOmZvY3VzIixnKS5sZW5ndGh8fGspcmV0dXJuIGNsZWFyVGltZW91dChoLmludGVydmFsSWQpLApnW2IuaGlkZU1ldGhvZF0oe2R1cmF0aW9uOmIuaGlkZUR1cmF0aW9uLGVhc2luZzpiLmhpZGVFYXNpbmcsY29tcGxldGU6ZnVuY3Rpb24oKXt1KGcpO2lmKGIub25IaWRkZW4mJiJoaWRkZW4iIT09bS5zdGF0ZSliLm9uSGlkZGVuKCk7bS5zdGF0ZT0iaGlkZGVuIjttLmVuZFRpbWU9bmV3IERhdGU7cCYmcChtKX19KX1mdW5jdGlvbiBlKCl7aWYoMDxiLnRpbWVPdXR8fDA8Yi5leHRlbmRlZFRpbWVPdXQpdj1zZXRUaW1lb3V0KGMsYi5leHRlbmRlZFRpbWVPdXQpLGgubWF4SGlkZVRpbWU9cGFyc2VGbG9hdChiLmV4dGVuZGVkVGltZU91dCksaC5oaWRlRXRhPShuZXcgRGF0ZSkuZ2V0VGltZSgpK2gubWF4SGlkZVRpbWV9ZnVuY3Rpb24gRigpe2NsZWFyVGltZW91dCh2KTtoLmhpZGVFdGE9MDtnLnN0b3AoITAsITApW2Iuc2hvd01ldGhvZF0oe2R1cmF0aW9uOmIuc2hvd0R1cmF0aW9uLGVhc2luZzpiLnNob3dFYXNpbmd9KX1mdW5jdGlvbiBHKCl7dmFyIGs9KGguaGlkZUV0YS0obmV3IERhdGUpLmdldFRpbWUoKSkvCmgubWF4SGlkZVRpbWUqMTAwO3cud2lkdGgoaysiJSIpfXZhciBiPWwoKSx4PWEuaWNvbkNsYXNzfHxiLmljb25DbGFzczsidW5kZWZpbmVkIiE9PXR5cGVvZiBhLm9wdGlvbnNPdmVycmlkZSYmKGI9ZC5leHRlbmQoYixhLm9wdGlvbnNPdmVycmlkZSkseD1hLm9wdGlvbnNPdmVycmlkZS5pY29uQ2xhc3N8fHgpO2E6e2lmKGIucHJldmVudER1cGxpY2F0ZXMpaWYoYS5tZXNzYWdlPT09eSl7dmFyIHE9ITA7YnJlYWsgYX1lbHNlIHk9YS5tZXNzYWdlO3E9ITF9aWYoIXEpe0IrKztmPW4oYiwhMCk7dmFyIHY9bnVsbCxnPWQoIjxkaXYvPiIpO3E9ZCgiPGRpdi8+Iik7dmFyIEM9ZCgiPGRpdi8+Iiksdz1kKCI8ZGl2Lz4iKSx0PWQoYi5jbG9zZUh0bWwpLGg9e2ludGVydmFsSWQ6bnVsbCxoaWRlRXRhOm51bGwsbWF4SGlkZVRpbWU6bnVsbH0sbT17dG9hc3RJZDpCLHN0YXRlOiJ2aXNpYmxlIixzdGFydFRpbWU6bmV3IERhdGUsb3B0aW9uczpiLG1hcDphfTs2PGIuYmdDb2xvci5sZW5ndGgmJgpnLmNzcygiYmFja2dyb3VuZC1jb2xvciIsYi5iZ0NvbG9yKTthLmljb25DbGFzcyYmZy5hZGRDbGFzcyhiLnRvYXN0Q2xhc3MpLmFkZENsYXNzKHgpO2EudGl0bGUmJihxLmFwcGVuZChhLnRpdGxlKS5hZGRDbGFzcyhiLnRpdGxlQ2xhc3MpLGcuYXBwZW5kKHEpKTthLm1lc3NhZ2UmJihDLmFwcGVuZChhLm1lc3NhZ2UpLmFkZENsYXNzKGIubWVzc2FnZUNsYXNzKSxnLmFwcGVuZChDKSk7Yi5jbG9zZUJ1dHRvbiYmKHQuYWRkQ2xhc3MoInRvYXN0LWNsb3NlLWJ1dHRvbiIpLmF0dHIoInJvbGUiLCJidXR0b24iKSxnLnByZXBlbmQodCkpO2IucHJvZ3Jlc3NCYXImJih3LmFkZENsYXNzKCJ0b2FzdC1wcm9ncmVzcyIpLGcucHJlcGVuZCh3KSk7Yi5uZXdlc3RPblRvcD9mLnByZXBlbmQoZyk6Zi5hcHBlbmQoZyk7Zy5oaWRlKCk7Z1tiLnNob3dNZXRob2RdKHtkdXJhdGlvbjpiLnNob3dEdXJhdGlvbixlYXNpbmc6Yi5zaG93RWFzaW5nLGNvbXBsZXRlOmIub25TaG93bn0pOzA8Yi50aW1lT3V0JiYKKHY9c2V0VGltZW91dChjLGIudGltZU91dCksaC5tYXhIaWRlVGltZT1wYXJzZUZsb2F0KGIudGltZU91dCksaC5oaWRlRXRhPShuZXcgRGF0ZSkuZ2V0VGltZSgpK2gubWF4SGlkZVRpbWUsYi5wcm9ncmVzc0JhciYmKGguaW50ZXJ2YWxJZD1zZXRJbnRlcnZhbChHLDEwKSkpOyhmdW5jdGlvbigpe2cub24oIm1vdXNlZW50ZXIiLEYpLm9uKCJtb3VzZWxlYXZlIixlKTtpZighYi5vbmNsaWNrJiZiLnRhcFRvRGlzbWlzcylnLm9uKCJjbGljayIsYyk7aWYoYi5jbG9zZUJ1dHRvbiYmdCl0Lm9uKCJjbGljayIsZnVuY3Rpb24oayl7ay5zdG9wUHJvcGFnYXRpb24\/ay5zdG9wUHJvcGFnYXRpb24oKTp2b2lkIDAhPT1rLmNhbmNlbEJ1YmJsZSYmITAhPT1rLmNhbmNlbEJ1YmJsZSYmKGsuY2FuY2VsQnViYmxlPSEwKTtpZigiZnVuY3Rpb24iPT10eXBlb2YgYi5vbkNsb3NlKWIub25DbG9zZSgpO2MoITApfSk7aWYoYi5vbmNsaWNrKWcub24oImNsaWNrIixmdW5jdGlvbigpe2Iub25jbGljaygpOwpjKCl9KX0pKCk7cCYmcChtKTtiLmRlYnVnJiZjb25zb2xlJiZjb25zb2xlLmxvZyhtKTtyZXR1cm4gZ319ZnVuY3Rpb24gbCgpe3JldHVybiBkLmV4dGVuZCh7fSxFKCksRC5vcHRpb25zKX1mdW5jdGlvbiB1KGEpe2Z8fChmPW4oKSk7YS5pcygiOnZpc2libGUiKXx8KGEucmVtb3ZlKCksMD09PWYuY2hpbGRyZW4oKS5sZW5ndGgmJihmLnJlbW92ZSgpLHk9dm9pZCAwKSl9dmFyIGYscCxCPTAsRD17Y2xlYXI6ZnVuY3Rpb24oYSxjKXt2YXIgZT1sKCk7Znx8bihlKTtpZighQShhLGUsYykpZm9yKGE9Zi5jaGlsZHJlbigpLGM9YS5sZW5ndGgtMTswPD1jO2MtLSlBKGQoYVtjXSksZSl9LHJlbW92ZTpmdW5jdGlvbihhKXt2YXIgYz1sKCk7Znx8bihjKTthJiYwPT09ZCgiOmZvY3VzIixhKS5sZW5ndGg\/dShhKTpmLmNoaWxkcmVuKCkubGVuZ3RoJiZmLnJlbW92ZSgpfSxlcnJvcjpmdW5jdGlvbihhLGMsZSl7cmV0dXJuIHIoe3R5cGU6ImVycm9yIixpY29uQ2xhc3M6bCgpLmljb25DbGFzc2VzLmVycm9yLAptZXNzYWdlOmEsb3B0aW9uc092ZXJyaWRlOmUsdGl0bGU6Y30pfSxnZXRDb250YWluZXI6bixpbmZvOmZ1bmN0aW9uKGEsYyxlKXtyZXR1cm4gcih7dHlwZToiaW5mbyIsaWNvbkNsYXNzOmwoKS5pY29uQ2xhc3Nlcy5pbmZvLG1lc3NhZ2U6YSxvcHRpb25zT3ZlcnJpZGU6ZSx0aXRsZTpjfSl9LG9wdGlvbnM6e30sc3Vic2NyaWJlOmZ1bmN0aW9uKGEpe3A9YX0sc3VjY2VzczpmdW5jdGlvbihhLGMsZSl7cmV0dXJuIHIoe3R5cGU6InN1Y2Nlc3MiLGljb25DbGFzczpsKCkuaWNvbkNsYXNzZXMuc3VjY2VzcyxtZXNzYWdlOmEsb3B0aW9uc092ZXJyaWRlOmUsdGl0bGU6Y30pfSx2ZXJzaW9uOiIyLjEuMSIsd2FybmluZzpmdW5jdGlvbihhLGMsZSl7cmV0dXJuIHIoe3R5cGU6Indhcm5pbmciLGljb25DbGFzczpsKCkuaWNvbkNsYXNzZXMud2FybmluZyxtZXNzYWdlOmEsb3B0aW9uc092ZXJyaWRlOmUsdGl0bGU6Y30pfX0seTtyZXR1cm4gRH0oKX0pfSkoImZ1bmN0aW9uIj09PXR5cGVvZiBkZWZpbmUmJgpkZWZpbmUuYW1kP2RlZmluZTpmdW5jdGlvbih6LGQpeyJ1bmRlZmluZWQiIT09dHlwZW9mIG1vZHVsZSYmbW9kdWxlLmV4cG9ydHM\/bW9kdWxlLmV4cG9ydHM9ZChyZXF1aXJlKCJqcXVlcnkiKSk6d2luZG93LnRvYXN0cj1kKHdpbmRvdy5qUXVlcnkpfSk7Ci8qKiAvanMvaHRtbDJjYW52YXMuanMgKiovCnZhciBfX19kMmNfaHRtbDJjYW52YXNqc19jX29uPSIyMDI1LTA1LTIzIDE3OjA2OjI2IjsndXNlIHN0cmljdCc7dmFyIF9fX2QyY19odG1sMmNhbnZhc2pzX2Nfb249IjIwMjQtMDEtMzEgMTQ6MzQ6NTQiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfaHRtbDJjYW52YXNqc19jX29uPSIyMDIzLTAxLTEyIDExOjM2OjM3IjsidXNlIHN0cmljdCI7X19fZDJjX2h0bWwyY2FudmFzanNfY19vbj0iMjAyMy0wMS0xMiAxMDo0NjoyMCI7InVzZSBzdHJpY3QiO19fX2QyY19odG1sMmNhbnZhc2pzX2Nfb249IjIwMjItMDItMDcgMjI6MzA6MDgiOyJ1c2Ugc3RyaWN0IjsKKGZ1bmN0aW9uKE4sUixRKXtmdW5jdGlvbiBxYShkLHAscSl7dmFyIGs9ZC5ydW50aW1lU3R5bGUmJmQucnVudGltZVN0eWxlW3BdLGM9ZC5zdHlsZTtpZighL14tP1swLTldK1wuP1swLTldKig\/OnB4KT8kL2kudGVzdChxKSYmL14tP1xkLy50ZXN0KHEpKXt2YXIgbj1jLmxlZnQ7ayYmKGQucnVudGltZVN0eWxlLmxlZnQ9ZC5jdXJyZW50U3R5bGUubGVmdCk7Yy5sZWZ0PSJmb250U2l6ZSI9PT1wPyIxZW0iOnF8fDA7cT1jLnBpeGVsTGVmdCsicHgiO2MubGVmdD1uO2smJihkLnJ1bnRpbWVTdHlsZS5sZWZ0PWspfXJldHVybi9eKHRoaW58bWVkaXVtfHRoaWNrKSQvaS50ZXN0KHEpP3E6TWF0aC5yb3VuZChwYXJzZUZsb2F0KHEpKSsicHgifWZ1bmN0aW9uIHhhKGQpe3JldHVybiBwYXJzZUludChkLDEwKX1mdW5jdGlvbiBqYShkKXtyZXR1cm4tMSE9PWQudG9TdHJpbmcoKS5pbmRleE9mKCIlIil9ZnVuY3Rpb24geWEoZCxwKXt2YXIgcT1bXTtyZXR1cm57c3RvcmFnZTpxLHdpZHRoOmQsCmhlaWdodDpwLGNsaXA6ZnVuY3Rpb24oKXtxLnB1c2goe3R5cGU6ImZ1bmN0aW9uIixuYW1lOiJjbGlwIixhcmd1bWVudHN9KX0sdHJhbnNsYXRlOmZ1bmN0aW9uKCl7cS5wdXNoKHt0eXBlOiJmdW5jdGlvbiIsbmFtZToidHJhbnNsYXRlIixhcmd1bWVudHN9KX0sZmlsbDpmdW5jdGlvbigpe3EucHVzaCh7dHlwZToiZnVuY3Rpb24iLG5hbWU6ImZpbGwiLGFyZ3VtZW50c30pfSxzYXZlOmZ1bmN0aW9uKCl7cS5wdXNoKHt0eXBlOiJmdW5jdGlvbiIsbmFtZToic2F2ZSIsYXJndW1lbnRzfSl9LHJlc3RvcmU6ZnVuY3Rpb24oKXtxLnB1c2goe3R5cGU6ImZ1bmN0aW9uIixuYW1lOiJyZXN0b3JlIixhcmd1bWVudHN9KX0sZmlsbFJlY3Q6ZnVuY3Rpb24oKXtxLnB1c2goe3R5cGU6ImZ1bmN0aW9uIixuYW1lOiJmaWxsUmVjdCIsYXJndW1lbnRzfSl9LGNyZWF0ZVBhdHRlcm46ZnVuY3Rpb24oKXtxLnB1c2goe3R5cGU6ImZ1bmN0aW9uIixuYW1lOiJjcmVhdGVQYXR0ZXJuIixhcmd1bWVudHN9KX0sCmRyYXdTaGFwZTpmdW5jdGlvbigpe3ZhciBrPVtdO3EucHVzaCh7dHlwZToiZnVuY3Rpb24iLG5hbWU6ImRyYXdTaGFwZSIsYXJndW1lbnRzOmt9KTtyZXR1cm57bW92ZVRvOmZ1bmN0aW9uKCl7ay5wdXNoKHtuYW1lOiJtb3ZlVG8iLGFyZ3VtZW50c30pfSxsaW5lVG86ZnVuY3Rpb24oKXtrLnB1c2goe25hbWU6ImxpbmVUbyIsYXJndW1lbnRzfSl9LGFyY1RvOmZ1bmN0aW9uKCl7ay5wdXNoKHtuYW1lOiJhcmNUbyIsYXJndW1lbnRzfSl9LGJlemllckN1cnZlVG86ZnVuY3Rpb24oKXtrLnB1c2goe25hbWU6ImJlemllckN1cnZlVG8iLGFyZ3VtZW50c30pfSxxdWFkcmF0aWNDdXJ2ZVRvOmZ1bmN0aW9uKCl7ay5wdXNoKHtuYW1lOiJxdWFkcmF0aWNDdXJ2ZVRvIixhcmd1bWVudHN9KX19fSxkcmF3SW1hZ2U6ZnVuY3Rpb24oKXtxLnB1c2goe3R5cGU6ImZ1bmN0aW9uIixuYW1lOiJkcmF3SW1hZ2UiLGFyZ3VtZW50c30pfSxmaWxsVGV4dDpmdW5jdGlvbigpe3EucHVzaCh7dHlwZToiZnVuY3Rpb24iLApuYW1lOiJmaWxsVGV4dCIsYXJndW1lbnRzfSl9LHNldFZhcmlhYmxlOmZ1bmN0aW9uKGssYyl7cS5wdXNoKHt0eXBlOiJ2YXJpYWJsZSIsbmFtZTprLGFyZ3VtZW50czpjfSk7cmV0dXJuIGN9fX12YXIgeD17fSxyYTt4LlV0aWw9e307eC5VdGlsLmxvZz1mdW5jdGlvbihkKXt4LmxvZ2dpbmcmJk4uY29uc29sZSYmTi5jb25zb2xlLmxvZyYmTi5jb25zb2xlLmxvZyhkKX07eC5VdGlsLnRyaW1UZXh0PWZ1bmN0aW9uKGQpe3JldHVybiBmdW5jdGlvbihwKXtyZXR1cm4gZD9kLmFwcGx5KHApOigocHx8IiIpKyIiKS5yZXBsYWNlKC9eXHMrfFxzKyQvZywiIil9fShTdHJpbmcucHJvdG90eXBlLnRyaW0pO3guVXRpbC5hc0Zsb2F0PWZ1bmN0aW9uKGQpe3JldHVybiBwYXJzZUZsb2F0KGQpfTsoZnVuY3Rpb24oKXt2YXIgZD0vKChyZ2JhfHJnYilcKFteXCldK1wpKFxzLT9cZCtweCl7MCx9KS9nLHA9LygtP1xkK3B4KXwoIy4rKXwocmdiXCguK1wpKXwocmdiYVwoLitcKSkvZzt4LlV0aWwucGFyc2VUZXh0U2hhZG93cz0KZnVuY3Rpb24ocSl7aWYoIXF8fCJub25lIj09PXEpcmV0dXJuW107cT1xLm1hdGNoKGQpO2Zvcih2YXIgaz1bXSxjPTA7cSYmYzxxLmxlbmd0aDtjKyspe3ZhciBuPXFbY10ubWF0Y2gocCk7ay5wdXNoKHtjb2xvcjpuWzBdLG9mZnNldFg6blsxXT9uWzFdLnJlcGxhY2UoInB4IiwiIik6MCxvZmZzZXRZOm5bMl0\/blsyXS5yZXBsYWNlKCJweCIsIiIpOjAsYmx1cjpuWzNdP25bM10ucmVwbGFjZSgicHgiLCIiKTowfSl9cmV0dXJuIGt9fSkoKTt4LlV0aWwucGFyc2VCYWNrZ3JvdW5kSW1hZ2U9ZnVuY3Rpb24oZCl7dmFyIHAscSxrLGMsbj1bXSx0PTAsdj0wLGwsZSxJPWZ1bmN0aW9uKCl7cCYmKCciJz09PUouc3Vic3RyKDAsMSkmJihKPUouc3Vic3RyKDEsSi5sZW5ndGgtMikpLEomJmUucHVzaChKKSwiLSI9PT1wLnN1YnN0cigwLDEpJiYwPChrPXAuaW5kZXhPZigiLSIsMSkrMSkmJihxPXAuc3Vic3RyKDAsaykscD1wLnN1YnN0cihrKSksbi5wdXNoKHtwcmVmaXg6cSxtZXRob2Q6cC50b0xvd2VyQ2FzZSgpLAp2YWx1ZTpjLGFyZ3M6ZX0pKTtlPVtdO3A9cT1KPWM9IiJ9O0koKTtmb3IodmFyIHo9MCxFPWQubGVuZ3RoO3o8RTt6Kyspe3ZhciBLPWRbel07aWYoISgwPT09dCYmLTE8IiBcclxuXHQiLmluZGV4T2YoSykpKXtzd2l0Y2goSyl7Y2FzZSAnIic6bD9sPT09SyYmKGw9bnVsbCk6bD1LO2JyZWFrO2Nhc2UgIigiOmlmKCFsKWlmKDA9PT10KXt0PTE7Yys9Sztjb250aW51ZX1lbHNlIHYrKzticmVhaztjYXNlICIpIjppZighbCYmMT09PXQpaWYoMD09PXYpe3Q9MDtjKz1LO0koKTtjb250aW51ZX1lbHNlIHYtLTticmVhaztjYXNlICIsIjppZighbClpZigwPT09dCl7SSgpO2NvbnRpbnVlfWVsc2UgaWYoMT09PXQmJjA9PT12JiYhcC5tYXRjaCgvXnVybCQvaSkpe2UucHVzaChKKTt2YXIgSj0iIjtjKz1LO2NvbnRpbnVlfX1jKz1LOzA9PT10P3ArPUs6Sis9S319SSgpO3JldHVybiBufTt4LlV0aWwuQm91bmRzPWZ1bmN0aW9uKGQpe3ZhciBwPXt9O2lmKGQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KXt2YXIgcT0KZC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtwLnRvcD1xLnRvcDtwLmJvdHRvbT1xLmJvdHRvbXx8cS50b3ArcS5oZWlnaHQ7cC5sZWZ0PXEubGVmdDtwLndpZHRoPWQub2Zmc2V0V2lkdGg7cC5oZWlnaHQ9ZC5vZmZzZXRIZWlnaHR9cmV0dXJuIHB9O3guVXRpbC5PZmZzZXRCb3VuZHM9ZnVuY3Rpb24oZCl7dmFyIHA9ZC5vZmZzZXRQYXJlbnQ\/eC5VdGlsLk9mZnNldEJvdW5kcyhkLm9mZnNldFBhcmVudCk6e3RvcDowLGxlZnQ6MH07cmV0dXJue3RvcDpkLm9mZnNldFRvcCtwLnRvcCxib3R0b206ZC5vZmZzZXRUb3ArZC5vZmZzZXRIZWlnaHQrcC50b3AsbGVmdDpkLm9mZnNldExlZnQrcC5sZWZ0LHdpZHRoOmQub2Zmc2V0V2lkdGgsaGVpZ2h0OmQub2Zmc2V0SGVpZ2h0fX07eC5VdGlsLmdldENTUz1mdW5jdGlvbihkLHAscSl7dm9pZCAwIT09ZCYmKHJhPVIuZGVmYXVsdFZpZXcuZ2V0Q29tcHV0ZWRTdHlsZShkLG51bGwpKTt2YXIgaz1yYVtwXTtpZigvXmJhY2tncm91bmQoU2l6ZXxQb3NpdGlvbikkLy50ZXN0KHApKXthOntrPQooa3x8IiIpLnNwbGl0KCIsIik7az1rW3F8fDBdfHxrWzBdfHwiYXV0byI7az14LlV0aWwudHJpbVRleHQoaykuc3BsaXQoIiAiKTtpZigiYmFja2dyb3VuZFNpemUiIT09cHx8IWtbMF18fCFrWzBdLm1hdGNoKC9eKGNvdmVyfGNvbnRhaW58YXV0bykkLykpe2tbMF09LTE9PT1rWzBdLmluZGV4T2YoIiUiKT9xYShkLHArIlgiLGtbMF0pOmtbMF07aWYoa1sxXT09PVEpaWYoImJhY2tncm91bmRTaXplIj09PXApe2tbMV09ImF1dG8iO2Q9azticmVhayBhfWVsc2Uga1sxXT1rWzBdO2tbMV09LTE9PT1rWzFdLmluZGV4T2YoIiUiKT9xYShkLHArIlkiLGtbMV0pOmtbMV19ZD1rfXJldHVybiBkfXJldHVybi9ib3JkZXIoVG9wfEJvdHRvbSkoTGVmdHxSaWdodClSYWRpdXMvLnRlc3QocCk\/KGQ9ay5zcGxpdCgiICIpLDE+PWQubGVuZ3RoJiYoZFsxXT1kWzBdKSxkLm1hcCh4YSkpOmt9O3guVXRpbC5yZXNpemVCb3VuZHM9ZnVuY3Rpb24oZCxwLHEsayxjKXtkLz1wO2MmJiJhdXRvIiE9PWM\/CnEvazxkXiJjb250YWluIj09PWM\/KHE9ayxjPWsqZCk6KGM9cSxxLz1kKTooYz1xLHE9ayk7cmV0dXJue3dpZHRoOmMsaGVpZ2h0OnF9fTt4LlV0aWwuQmFja2dyb3VuZFBvc2l0aW9uPWZ1bmN0aW9uKGQscCxxLGssYyl7ZD14LlV0aWwuZ2V0Q1NTKGQsImJhY2tncm91bmRQb3NpdGlvbiIsayk7MT09PWQubGVuZ3RoJiYoZD1bZFswXSxkWzBdXSk7az1qYShkWzBdKT8ocC53aWR0aC0oY3x8cSkud2lkdGgpKihwYXJzZUZsb2F0KGRbMF0pLzEwMCk6cGFyc2VJbnQoZFswXSwxMCk7cD0iYXV0byI9PT1kWzFdP2svcS53aWR0aCpxLmhlaWdodDpqYShkWzFdKT8ocC5oZWlnaHQtKGN8fHEpLmhlaWdodCkqcGFyc2VGbG9hdChkWzFdKS8xMDA6cGFyc2VJbnQoZFsxXSwxMCk7ImF1dG8iPT09ZFswXSYmKGs9cC9xLmhlaWdodCpxLndpZHRoKTtyZXR1cm57bGVmdDprLHRvcDpwfX07eC5VdGlsLkJhY2tncm91bmRTaXplPWZ1bmN0aW9uKGQscCxxLGspe2Q9eC5VdGlsLmdldENTUyhkLCJiYWNrZ3JvdW5kU2l6ZSIsCmspOzE9PT1kLmxlbmd0aCYmKGQ9W2RbMF0sZFswXV0pO2lmKGphKGRbMF0pKWs9cC53aWR0aCpwYXJzZUZsb2F0KGRbMF0pLzEwMDtlbHNle2lmKC9jb250YWlufGNvdmVyLy50ZXN0KGRbMF0pKXJldHVybiB4LlV0aWwucmVzaXplQm91bmRzKHEud2lkdGgscS5oZWlnaHQscC53aWR0aCxwLmhlaWdodCxkWzBdKTtrPXBhcnNlSW50KGRbMF0sMTApfXA9ImF1dG8iPT09ZFswXSYmImF1dG8iPT09ZFsxXT9xLmhlaWdodDoiYXV0byI9PT1kWzFdP2svcS53aWR0aCpxLmhlaWdodDpqYShkWzFdKT9wLmhlaWdodCpwYXJzZUZsb2F0KGRbMV0pLzEwMDpwYXJzZUludChkWzFdLDEwKTsiYXV0byI9PT1kWzBdJiYoaz1wL3EuaGVpZ2h0KnEud2lkdGgpO3JldHVybnt3aWR0aDprLGhlaWdodDpwfX07eC5VdGlsLkJhY2tncm91bmRSZXBlYXQ9ZnVuY3Rpb24oZCxwKXtkPXguVXRpbC5nZXRDU1MoZCwiYmFja2dyb3VuZFJlcGVhdCIpLnNwbGl0KCIsIikubWFwKHguVXRpbC50cmltVGV4dCk7cmV0dXJuIGRbcF18fApkWzBdfTt4LlV0aWwuRXh0ZW5kPWZ1bmN0aW9uKGQscCl7Zm9yKHZhciBxIGluIGQpZC5oYXNPd25Qcm9wZXJ0eShxKSYmKHBbcV09ZFtxXSk7cmV0dXJuIHB9O3guVXRpbC5DaGlsZHJlbj1mdW5jdGlvbihkKXt0cnl7aWYoZC5ub2RlTmFtZSYmIklGUkFNRSI9PT1kLm5vZGVOYW1lLnRvVXBwZXJDYXNlKCkpdmFyIHA9ZC5jb250ZW50RG9jdW1lbnR8fGQuY29udGVudFdpbmRvdy5kb2N1bWVudDtlbHNle3ZhciBxPWQuY2hpbGROb2RlcztkPVtdO2lmKG51bGwhPT1xKXt2YXIgaz1kLmxlbmd0aCxjPTA7aWYoIm51bWJlciI9PT10eXBlb2YgcS5sZW5ndGgpZm9yKHZhciBuPXEubGVuZ3RoO2M8bjtjKyspZFtrKytdPXFbY107ZWxzZSBmb3IoO3FbY10hPT1ROylkW2srK109cVtjKytdO2QubGVuZ3RoPWt9cD1kfWQ9cH1jYXRjaCh0KXt4LlV0aWwubG9nKCJodG1sMmNhbnZhcy5VdGlsLkNoaWxkcmVuIGZhaWxlZCB3aXRoIGV4Y2VwdGlvbjogIit0Lm1lc3NhZ2UpLGQ9W119cmV0dXJuIGR9Owp4LlV0aWwuaXNUcmFuc3BhcmVudD1mdW5jdGlvbihkKXtyZXR1cm4hZHx8InRyYW5zcGFyZW50Ij09PWR8fCJyZ2JhKDAsIDAsIDAsIDApIj09PWR9O3guVXRpbC5Gb250PWZ1bmN0aW9uKCl7dmFyIGQ9e307cmV0dXJuIGZ1bmN0aW9uKHAscSxrKXtpZihkW3ArIi0iK3FdIT09USlyZXR1cm4gZFtwKyItIitxXTt2YXIgYz1rLmNyZWF0ZUVsZW1lbnQoImRpdiIpLG49ay5jcmVhdGVFbGVtZW50KCJpbWciKSx0PWsuY3JlYXRlRWxlbWVudCgic3BhbiIpO2Muc3R5bGUudmlzaWJpbGl0eT0iaGlkZGVuIjtjLnN0eWxlLmZvbnRGYW1pbHk9cDtjLnN0eWxlLmZvbnRTaXplPXE7Yy5zdHlsZS5tYXJnaW49MDtjLnN0eWxlLnBhZGRpbmc9MDtrLmJvZHkuYXBwZW5kQ2hpbGQoYyk7bi5zcmM9ImRhdGE6aW1hZ2UvZ2lmO2Jhc2U2NCxSMGxHT0RsaEFRQUJBSUFCQVAvLy93QUFBQ3dBQUFBQUFRQUJBQUFDQWtRQkFEcz0iO24ud2lkdGg9MTtuLmhlaWdodD0xO24uc3R5bGUubWFyZ2luPTA7bi5zdHlsZS5wYWRkaW5nPQowO24uc3R5bGUudmVydGljYWxBbGlnbj0iYmFzZWxpbmUiO3Quc3R5bGUuZm9udEZhbWlseT1wO3Quc3R5bGUuZm9udFNpemU9cTt0LnN0eWxlLm1hcmdpbj0wO3Quc3R5bGUucGFkZGluZz0wO3QuYXBwZW5kQ2hpbGQoay5jcmVhdGVUZXh0Tm9kZSgiSGlkZGVuIFRleHQiKSk7Yy5hcHBlbmRDaGlsZCh0KTtjLmFwcGVuZENoaWxkKG4pO3ZhciB2PW4ub2Zmc2V0VG9wLXQub2Zmc2V0VG9wKzE7Yy5yZW1vdmVDaGlsZCh0KTtjLmFwcGVuZENoaWxkKGsuY3JlYXRlVGV4dE5vZGUoIkhpZGRlbiBUZXh0IikpO2Muc3R5bGUubGluZUhlaWdodD0ibm9ybWFsIjtuLnN0eWxlLnZlcnRpY2FsQWxpZ249InN1cGVyIjtuPXtiYXNlbGluZTp2LGxpbmVXaWR0aDoxLG1pZGRsZTpuLm9mZnNldFRvcC1jLm9mZnNldFRvcCsxfTtkW3ArIi0iK3FdPW47ay5ib2R5LnJlbW92ZUNoaWxkKGMpO3JldHVybiBufX0oKTsoZnVuY3Rpb24oKXtmdW5jdGlvbiBkKGMpe3JldHVybiBmdW5jdGlvbihuKXt0cnl7Yy5hZGRDb2xvclN0b3Aobi5zdG9wLApuLmNvbG9yKX1jYXRjaCh0KXtwLmxvZyhbImZhaWxlZCB0byBhZGQgY29sb3Igc3RvcDogIix0LCI7IHRyaWVkIHRvIGFkZDogIixuXSl9fX12YXIgcD14LlV0aWwscT17fTt4LkdlbmVyYXRlPXE7dmFyIGs9Wy9eKC13ZWJraXQtbGluZWFyLWdyYWRpZW50KVwoKFthLXpcc10rKShbXHdcZFwuXHMsJVwoXCldKylcKSQvLC9eKC1vLWxpbmVhci1ncmFkaWVudClcKChbYS16XHNdKykoW1x3XGRcLlxzLCVcKFwpXSspXCkkLywvXigtd2Via2l0LWdyYWRpZW50KVwoKGxpbmVhcnxyYWRpYWwpLFxzKCg\/OlxkezEsM30lPylccyg\/OlxkezEsM30lPyksXHMoPzpcZHsxLDN9JT8pXHMoPzpcZHsxLDN9JT8pKShbXHdcZFwuXHMsJVwoXClcLV0rKVwpJC8sL14oLW1vei1saW5lYXItZ3JhZGllbnQpXCgoKD86XGR7MSwzfSU\/KVxzKD86XGR7MSwzfSU\/KSkoW1x3XGRcLlxzLCVcKFwpXSspXCkkLywvXigtd2Via2l0LXJhZGlhbC1ncmFkaWVudClcKCgoPzpcZHsxLDN9JT8pXHMoPzpcZHsxLDN9JT8pKSxccyhcdyspXHMoW2EtelwtXSspKFtcd1xkXC5ccywlXChcKV0rKVwpJC8sCi9eKC1tb3otcmFkaWFsLWdyYWRpZW50KVwoKCg\/OlxkezEsM30lPylccyg\/OlxkezEsM30lPykpLFxzKFx3Kylccz8oW2EtelwtXSopKFtcd1xkXC5ccywlXChcKV0rKVwpJC8sL14oLW8tcmFkaWFsLWdyYWRpZW50KVwoKCg\/OlxkezEsM30lPylccyg\/OlxkezEsM30lPykpLFxzKFx3KylccyhbYS16XC1dKykoW1x3XGRcLlxzLCVcKFwpXSspXCkkL107cS5wYXJzZUdyYWRpZW50PWZ1bmN0aW9uKGMsbil7dmFyIHQsdj1rLmxlbmd0aCxsO2Zvcih0PTA7dDx2JiYhKGw9Yy5tYXRjaChrW3RdKSk7dCs9MSk7aWYobClzd2l0Y2gobFsxXSl7Y2FzZSAiLXdlYmtpdC1saW5lYXItZ3JhZGllbnQiOmNhc2UgIi1vLWxpbmVhci1ncmFkaWVudCI6dmFyIGU9e3R5cGU6ImxpbmVhciIseDA6bnVsbCx5MDpudWxsLHgxOm51bGwseTE6bnVsbCxjb2xvclN0b3BzOltdfTtpZihjPWxbMl0ubWF0Y2goL1x3Ky9nKSlmb3Iodj1jLmxlbmd0aCx0PTA7dDx2O3QrPTEpc3dpdGNoKGNbdF0pe2Nhc2UgInRvcCI6ZS55MD0KMDtlLnkxPW4uaGVpZ2h0O2JyZWFrO2Nhc2UgInJpZ2h0IjplLngwPW4ud2lkdGg7ZS54MT0wO2JyZWFrO2Nhc2UgImJvdHRvbSI6ZS55MD1uLmhlaWdodDtlLnkxPTA7YnJlYWs7Y2FzZSAibGVmdCI6ZS54MD0wLGUueDE9bi53aWR0aH1udWxsPT09ZS54MCYmbnVsbD09PWUueDEmJihlLngwPWUueDE9bi53aWR0aC8yKTtudWxsPT09ZS55MCYmbnVsbD09PWUueTEmJihlLnkwPWUueTE9bi5oZWlnaHQvMik7aWYoYz1sWzNdLm1hdGNoKC8oKD86cmdifHJnYmEpXChcZHsxLDN9LFxzXGR7MSwzfSxcc1xkezEsM30oPzosXHNbMC05XC5dKyk\/XCkoPzpcc1xkezEsM30oPzolfHB4KSk\/KSsvZykpe3Y9Yy5sZW5ndGg7dmFyIEk9MS9NYXRoLm1heCh2LTEsMSk7Zm9yKHQ9MDt0PHY7dCs9MSl7dmFyIHo9Y1t0XS5tYXRjaCgvKCg\/OnJnYnxyZ2JhKVwoXGR7MSwzfSxcc1xkezEsM30sXHNcZHsxLDN9KD86LFxzWzAtOVwuXSspP1wpKVxzKihcZHsxLDN9KT8oJXxweCk\/Lyk7elsyXT8obD1wYXJzZUZsb2F0KHpbMl0pLApsPSIlIj09PXpbM10\/bC8xMDA6bC9uLndpZHRoKTpsPXQqSTtlLmNvbG9yU3RvcHMucHVzaCh7Y29sb3I6elsxXSxzdG9wOmx9KX19YnJlYWs7Y2FzZSAiLXdlYmtpdC1ncmFkaWVudCI6ZT17dHlwZToicmFkaWFsIj09PWxbMl0\/ImNpcmNsZSI6bFsyXSx4MDowLHkwOjAseDE6MCx5MTowLGNvbG9yU3RvcHM6W119O2lmKGM9bFszXS5tYXRjaCgvKFxkezEsM30pJT9ccyhcZHsxLDN9KSU\/LFxzKFxkezEsM30pJT9ccyhcZHsxLDN9KSU\/LykpZS54MD1jWzFdKm4ud2lkdGgvMTAwLGUueTA9Y1syXSpuLmhlaWdodC8xMDAsZS54MT1jWzNdKm4ud2lkdGgvMTAwLGUueTE9Y1s0XSpuLmhlaWdodC8xMDA7aWYoYz1sWzRdLm1hdGNoKC8oKD86ZnJvbXx0b3xjb2xvci1zdG9wKVwoKD86WzAtOVwuXSssXHMpPyg\/OnJnYnxyZ2JhKVwoXGR7MSwzfSxcc1xkezEsM30sXHNcZHsxLDN9KD86LFxzWzAtOVwuXSspP1wpXCkpKy9nKSlmb3Iodj1jLmxlbmd0aCx0PTA7dDx2O3QrPTEpej1jW3RdLm1hdGNoKC8oZnJvbXx0b3xjb2xvci1zdG9wKVwoKFswLTlcLl0rKT8oPzosXHMpPygoPzpyZ2J8cmdiYSlcKFxkezEsM30sXHNcZHsxLDN9LFxzXGR7MSwzfSg\/Oixcc1swLTlcLl0rKT9cKSlcKS8pLApsPXBhcnNlRmxvYXQoelsyXSksImZyb20iPT09elsxXSYmKGw9MCksInRvIj09PXpbMV0mJihsPTEpLGUuY29sb3JTdG9wcy5wdXNoKHtjb2xvcjp6WzNdLHN0b3A6bH0pO2JyZWFrO2Nhc2UgIi1tb3otbGluZWFyLWdyYWRpZW50IjplPXt0eXBlOiJsaW5lYXIiLHgwOjAseTA6MCx4MTowLHkxOjAsY29sb3JTdG9wczpbXX07aWYoYz1sWzJdLm1hdGNoKC8oXGR7MSwzfSklP1xzKFxkezEsM30pJT8vKSllLngwPWNbMV0qbi53aWR0aC8xMDAsZS55MD1jWzJdKm4uaGVpZ2h0LzEwMCxlLngxPW4ud2lkdGgtZS54MCxlLnkxPW4uaGVpZ2h0LWUueTA7aWYoYz1sWzNdLm1hdGNoKC8oKD86cmdifHJnYmEpXChcZHsxLDN9LFxzXGR7MSwzfSxcc1xkezEsM30oPzosXHNbMC05XC5dKyk\/XCkoPzpcc1xkezEsM30lKT8pKy9nKSlmb3Iodj1jLmxlbmd0aCxJPTEvTWF0aC5tYXgodi0xLDEpLHQ9MDt0PHY7dCs9MSl6PWNbdF0ubWF0Y2goLygoPzpyZ2J8cmdiYSlcKFxkezEsM30sXHNcZHsxLDN9LFxzXGR7MSwzfSg\/Oixcc1swLTlcLl0rKT9cKSlccyooXGR7MSwzfSk\/KCUpPy8pLAp6WzJdPyhsPXBhcnNlRmxvYXQoelsyXSkselszXSYmKGwvPTEwMCkpOmw9dCpJLGUuY29sb3JTdG9wcy5wdXNoKHtjb2xvcjp6WzFdLHN0b3A6bH0pO2JyZWFrO2Nhc2UgIi13ZWJraXQtcmFkaWFsLWdyYWRpZW50IjpjYXNlICItbW96LXJhZGlhbC1ncmFkaWVudCI6Y2FzZSAiLW8tcmFkaWFsLWdyYWRpZW50IjplPXt0eXBlOiJjaXJjbGUiLHgwOjAseTA6MCx4MTpuLndpZHRoLHkxOm4uaGVpZ2h0LGN4OjAsY3k6MCxyeDowLHJ5OjAsY29sb3JTdG9wczpbXX07aWYoYz1sWzJdLm1hdGNoKC8oXGR7MSwzfSklP1xzKFxkezEsM30pJT8vKSllLmN4PWNbMV0qbi53aWR0aC8xMDAsZS5jeT1jWzJdKm4uaGVpZ2h0LzEwMDtjPWxbM10ubWF0Y2goL1x3Ky8pO3o9bFs0XS5tYXRjaCgvW2EtelwtXSovKTtpZihjJiZ6KXN3aXRjaCh6WzBdKXtjYXNlICJmYXJ0aGVzdC1jb3JuZXIiOmNhc2UgImNvdmVyIjpjYXNlICIiOnQ9TWF0aC5zcXJ0KE1hdGgucG93KGUuY3gsMikrTWF0aC5wb3coZS5jeSwKMikpO2M9TWF0aC5zcXJ0KE1hdGgucG93KGUuY3gsMikrTWF0aC5wb3coZS55MS1lLmN5LDIpKTt2PU1hdGguc3FydChNYXRoLnBvdyhlLngxLWUuY3gsMikrTWF0aC5wb3coZS55MS1lLmN5LDIpKTt6PU1hdGguc3FydChNYXRoLnBvdyhlLngxLWUuY3gsMikrTWF0aC5wb3coZS5jeSwyKSk7ZS5yeD1lLnJ5PU1hdGgubWF4KHQsYyx2LHopO2JyZWFrO2Nhc2UgImNsb3Nlc3QtY29ybmVyIjp0PU1hdGguc3FydChNYXRoLnBvdyhlLmN4LDIpK01hdGgucG93KGUuY3ksMikpO2M9TWF0aC5zcXJ0KE1hdGgucG93KGUuY3gsMikrTWF0aC5wb3coZS55MS1lLmN5LDIpKTt2PU1hdGguc3FydChNYXRoLnBvdyhlLngxLWUuY3gsMikrTWF0aC5wb3coZS55MS1lLmN5LDIpKTt6PU1hdGguc3FydChNYXRoLnBvdyhlLngxLWUuY3gsMikrTWF0aC5wb3coZS5jeSwyKSk7ZS5yeD1lLnJ5PU1hdGgubWluKHQsYyx2LHopO2JyZWFrO2Nhc2UgImZhcnRoZXN0LXNpZGUiOiJjaXJjbGUiPT09Y1swXT9lLnJ4PQplLnJ5PU1hdGgubWF4KGUuY3gsZS5jeSxlLngxLWUuY3gsZS55MS1lLmN5KTooZS50eXBlPWNbMF0sZS5yeD1NYXRoLm1heChlLmN4LGUueDEtZS5jeCksZS5yeT1NYXRoLm1heChlLmN5LGUueTEtZS5jeSkpO2JyZWFrO2Nhc2UgImNsb3Nlc3Qtc2lkZSI6Y2FzZSAiY29udGFpbiI6ImNpcmNsZSI9PT1jWzBdP2Uucng9ZS5yeT1NYXRoLm1pbihlLmN4LGUuY3ksZS54MS1lLmN4LGUueTEtZS5jeSk6KGUudHlwZT1jWzBdLGUucng9TWF0aC5taW4oZS5jeCxlLngxLWUuY3gpLGUucnk9TWF0aC5taW4oZS5jeSxlLnkxLWUuY3kpKX1pZihjPWxbNV0ubWF0Y2goLygoPzpyZ2J8cmdiYSlcKFxkezEsM30sXHNcZHsxLDN9LFxzXGR7MSwzfSg\/Oixcc1swLTlcLl0rKT9cKSg\/OlxzXGR7MSwzfSg\/OiV8cHgpKT8pKy9nKSlmb3Iodj1jLmxlbmd0aCxJPTEvTWF0aC5tYXgodi0xLDEpLHQ9MDt0PHY7dCs9MSl6PWNbdF0ubWF0Y2goLygoPzpyZ2J8cmdiYSlcKFxkezEsM30sXHNcZHsxLDN9LFxzXGR7MSwzfSg\/Oixcc1swLTlcLl0rKT9cKSlccyooXGR7MSwzfSk\/KCV8cHgpPy8pLAp6WzJdPyhsPXBhcnNlRmxvYXQoelsyXSksbD0iJSI9PT16WzNdP2wvMTAwOmwvbi53aWR0aCk6bD10KkksZS5jb2xvclN0b3BzLnB1c2goe2NvbG9yOnpbMV0sc3RvcDpsfSl9cmV0dXJuIGV9O3EuR3JhZGllbnQ9ZnVuY3Rpb24oYyxuKXtpZigwIT09bi53aWR0aCYmMCE9PW4uaGVpZ2h0KXt2YXIgdD1SLmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpLHY9dC5nZXRDb250ZXh0KCIyZCIpO3Qud2lkdGg9bi53aWR0aDt0LmhlaWdodD1uLmhlaWdodDtpZihjPXguR2VuZXJhdGUucGFyc2VHcmFkaWVudChjLG4pKXN3aXRjaChjLnR5cGUpe2Nhc2UgImxpbmVhciI6dmFyIGw9di5jcmVhdGVMaW5lYXJHcmFkaWVudChjLngwLGMueTAsYy54MSxjLnkxKTtjLmNvbG9yU3RvcHMuZm9yRWFjaChkKGwpKTt2LmZpbGxTdHlsZT1sO3YuZmlsbFJlY3QoMCwwLG4ud2lkdGgsbi5oZWlnaHQpO2JyZWFrO2Nhc2UgImNpcmNsZSI6bD12LmNyZWF0ZVJhZGlhbEdyYWRpZW50KGMuY3gsYy5jeSwwLGMuY3gsCmMuY3ksYy5yeCk7Yy5jb2xvclN0b3BzLmZvckVhY2goZChsKSk7di5maWxsU3R5bGU9bDt2LmZpbGxSZWN0KDAsMCxuLndpZHRoLG4uaGVpZ2h0KTticmVhaztjYXNlICJlbGxpcHNlIjpuPVIuY3JlYXRlRWxlbWVudCgiY2FudmFzIik7dmFyIGU9bi5nZXRDb250ZXh0KCIyZCIpO2w9TWF0aC5tYXgoYy5yeCxjLnJ5KTt2YXIgST0yKmw7bi53aWR0aD1uLmhlaWdodD1JO2w9ZS5jcmVhdGVSYWRpYWxHcmFkaWVudChjLnJ4LGMucnksMCxjLnJ4LGMucnksbCk7Yy5jb2xvclN0b3BzLmZvckVhY2goZChsKSk7ZS5maWxsU3R5bGU9bDtlLmZpbGxSZWN0KDAsMCxJLEkpO3YuZmlsbFN0eWxlPWMuY29sb3JTdG9wc1tjLmNvbG9yU3RvcHMubGVuZ3RoLTFdLmNvbG9yO3YuZmlsbFJlY3QoMCwwLHQud2lkdGgsdC5oZWlnaHQpO3YuZHJhd0ltYWdlKG4sYy5jeC1jLnJ4LGMuY3ktYy5yeSwyKmMucngsMipjLnJ5KX1yZXR1cm4gdH19O3EuTGlzdEFscGhhPWZ1bmN0aW9uKGMpe3ZhciBuPSIiOwpkbyBuPVN0cmluZy5mcm9tQ2hhckNvZGUoYyUyNis2NCkrbixjLz0yNjt3aGlsZSgyNjwyNipjKTtyZXR1cm4gbn07cS5MaXN0Um9tYW49ZnVuY3Rpb24oYyl7dmFyIG49Ik0gQ00gRCBDRCBDIFhDIEwgWEwgWCBJWCBWIElWIEkiLnNwbGl0KCIgIiksdD1bMUUzLDkwMCw1MDAsNDAwLDEwMCw5MCw1MCw0MCwxMCw5LDUsNCwxXSx2PSIiLGwsZT1uLmxlbmd0aDtpZigwPj1jfHw0RTM8PWMpcmV0dXJuIGM7Zm9yKGw9MDtsPGU7bCs9MSlmb3IoO2M+PXRbbF07KWMtPXRbbF0sdis9bltsXTtyZXR1cm4gdn19KSgpO3guUGFyc2U9ZnVuY3Rpb24oZCxwLHEpe2Z1bmN0aW9uIGsoYSl7ZnVuY3Rpb24gYihoKXt2YXIgcj1hYShoLCI6YmVmb3JlIiksdz1hYShoLCI6YWZ0ZXIiKTtyJiZmLnB1c2goe3R5cGU6ImJlZm9yZSIscHNldWRvOnIsZWw6aH0pO3cmJmYucHVzaCh7dHlwZToiYWZ0ZXIiLHBzZXVkbzp3LGVsOmh9KX12YXIgZj1bXSxnPVtdOyhmdW5jdGlvbigpe2Zvcih2YXIgaD0vOmJlZm9yZXw6YWZ0ZXIvLApyPVIuc3R5bGVTaGVldHMsdz0wLG09ci5sZW5ndGg7dzxtO3crKyl0cnl7Zm9yKHZhciBEPXJbd10uY3NzUnVsZXMsdT0wLEg9RC5sZW5ndGg7dTxIO3UrKyloLnRlc3QoRFt1XS5zZWxlY3RvclRleHQpJiZnLnB1c2goRFt1XS5zZWxlY3RvclRleHQpfWNhdGNoKEwpe313PTA7Zm9yKG09Zy5sZW5ndGg7dzxtO3crKylnW3ddPWdbd10ubWF0Y2goLyheW146XSopLylbMV19KSgpOyhmdW5jdGlvbihoKXtoPVIucXVlcnlTZWxlY3RvckFsbChnLmZpbHRlcihmdW5jdGlvbihtKXtyZXR1cm4gbT8hMDohMX0pLmpvaW4oIiwiKSk7Zm9yKHZhciByPTAsdz1oLmxlbmd0aDtyPHc7cisrKWIoaFtyXSl9KShhKTsoZnVuY3Rpb24oKXtmLmZvckVhY2goZnVuY3Rpb24oaCl7aD1oLmVsO2guY2xhc3NMaXN0P2guY2xhc3NMaXN0LmFkZCgiX19faHRtbDJjYW52YXNfX19wc2V1ZG9lbGVtZW50LXBhcmVudCIpOmguY2xhc3NOYW1lKz0iIF9fX2h0bWwyY2FudmFzX19fcHNldWRvZWxlbWVudC1wYXJlbnQifSk7CmYuZm9yRWFjaChmdW5jdGlvbihoKXsiYmVmb3JlIj09PWgudHlwZT9oLmVsLmluc2VydEJlZm9yZShoLnBzZXVkbyxoLmVsLmZpcnN0Q2hpbGQpOmguZWwuYXBwZW5kQ2hpbGQoaC5wc2V1ZG8pfSl9KSgpfWZ1bmN0aW9uIGMoYSxiKXthPXBhcnNlSW50KEMoYSxiKSwxMCk7cmV0dXJuIGlzTmFOKGEpPzA6YX1mdW5jdGlvbiBuKGEsYixmLGcsaCxyKXsidHJhbnNwYXJlbnQiIT09ciYmKGEuc2V0VmFyaWFibGUoImZpbGxTdHlsZSIsciksYS5maWxsUmVjdChiLGYsZyxoKSl9ZnVuY3Rpb24gdChhLGIsZil7aWYoMDxhLmxlbmd0aClyZXR1cm4gYitmLnRvVXBwZXJDYXNlKCl9ZnVuY3Rpb24gdihhLGIpe3N3aXRjaChiKXtjYXNlICJsb3dlcmNhc2UiOnJldHVybiBhLnRvTG93ZXJDYXNlKCk7Y2FzZSAiY2FwaXRhbGl6ZSI6cmV0dXJuIGEucmVwbGFjZSgvKF58XHN8OnwtfFwofFwpKShbYS16XSkvZyx0KTtjYXNlICJ1cHBlcmNhc2UiOnJldHVybiBhLnRvVXBwZXJDYXNlKCk7ZGVmYXVsdDpyZXR1cm4gYX19CmZ1bmN0aW9uIGwoYSxiLGYsZyl7dmFyIGg9QyhiLCJmb250V2VpZ2h0Iikscj1DKGIsImZvbnRGYW1pbHkiKSx3PUMoYiwiZm9udFNpemUiKSxtPU0ucGFyc2VUZXh0U2hhZG93cyhDKGIsInRleHRTaGFkb3ciKSk7c3dpdGNoKHBhcnNlSW50KGgsMTApKXtjYXNlIDQwMTpoPSJib2xkIjticmVhaztjYXNlIDQwMDpoPSJub3JtYWwifWEuc2V0VmFyaWFibGUoImZpbGxTdHlsZSIsZyk7YS5zZXRWYXJpYWJsZSgiZm9udCIsW0MoYiwiZm9udFN0eWxlIiksQyhiLCJmb250VmFyaWFudCIpLGgsdyxyXS5qb2luKCIgIikpO2Euc2V0VmFyaWFibGUoInRleHRBbGlnbiIsImxlZnQiKTttLmxlbmd0aCYmKGEuc2V0VmFyaWFibGUoInNoYWRvd0NvbG9yIixtWzBdLmNvbG9yKSxhLnNldFZhcmlhYmxlKCJzaGFkb3dPZmZzZXRYIixtWzBdLm9mZnNldFgpLGEuc2V0VmFyaWFibGUoInNoYWRvd09mZnNldFkiLG1bMF0ub2Zmc2V0WSksYS5zZXRWYXJpYWJsZSgic2hhZG93Qmx1ciIsbVswXS5ibHVyKSk7CmlmKCJub25lIiE9PWYpcmV0dXJuIE0uRm9udChyLHcsUCl9ZnVuY3Rpb24gZShhLGIsZil7dmFyIGc9Zi5jdHgsaD1DKGEsImNvbG9yIikscj1DKGEsInRleHREZWNvcmF0aW9uIiksdz1DKGEsInRleHRBbGlnbiIpLG09YixEPTA7aWYoMDxNLnRyaW1UZXh0KGIubm9kZVZhbHVlKS5sZW5ndGgpe2Iubm9kZVZhbHVlPXYoYi5ub2RlVmFsdWUsQyhhLCJ0ZXh0VHJhbnNmb3JtIikpO3c9dy5yZXBsYWNlKFsiLXdlYmtpdC1hdXRvIl0sWyJhdXRvIl0pO3ZhciB1PSFwLmxldHRlclJlbmRlcmluZyYmL14obGVmdHxyaWdodHxqdXN0aWZ5fGF1dG8pJC8udGVzdCh3KSYmL14obm9ybWFsfG5vbmV8MHB4KSQvLnRlc3QoQyhhLCJsZXR0ZXJTcGFjaW5nIikpP2Iubm9kZVZhbHVlLnNwbGl0KC8oXGJ8ICkvKTpiLm5vZGVWYWx1ZS5zcGxpdCgiIiksSD1sKGcsYSxyLGgpO3AuY2hpbmVzZSYmdS5mb3JFYWNoKGZ1bmN0aW9uKEwsRil7Ly4qW1x1NEUwMC1cdTlGQTVdLiokLy50ZXN0KEwpJiYoTD0KTC5zcGxpdCgiIiksTC51bnNoaWZ0KEYsMSksdS5zcGxpY2UuYXBwbHkodSxMKSl9KTt1LmZvckVhY2goZnVuY3Rpb24oTCxGKXt2YXIgVj1GPHUubGVuZ3RoLTE7Rj1mLnRyYW5zZm9ybS5tYXRyaXg7aWYoemEucmFuZ2VCb3VuZHMmJiFGKXtpZigibm9uZSIhPT1yfHwwIT09TS50cmltVGV4dChMKS5sZW5ndGgpe0Y9bTtWPUQ7dmFyIFM9UC5jcmVhdGVSYW5nZSgpO1Muc2V0U3RhcnQoRixWKTtTLnNldEVuZChGLFYrTC5sZW5ndGgpO1M9Uy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKX1EKz1MLmxlbmd0aH1lbHNlIGlmKG0mJiJzdHJpbmciPT09dHlwZW9mIG0ubm9kZVZhbHVlKXtWPVY\/bS5zcGxpdFRleHQoTC5sZW5ndGgpOm51bGw7dmFyIFo9bTtTPVoucGFyZW50Tm9kZTt2YXIgY2E9UC5jcmVhdGVFbGVtZW50KCJ3cmFwcGVyIiksZWE9Wi5jbG9uZU5vZGUoITApO2NhLmFwcGVuZENoaWxkKFouY2xvbmVOb2RlKCEwKSk7Uy5yZXBsYWNlQ2hpbGQoY2EsWik7Rj1GP00uT2Zmc2V0Qm91bmRzKGNhKToKTS5Cb3VuZHMoY2EpO1MucmVwbGFjZUNoaWxkKGVhLGNhKTtTPUY7bT1WfWlmKEY9Uylzd2l0Y2goVj1GLmxlZnQsUz1GLmJvdHRvbSxudWxsIT09TCYmMDxNLnRyaW1UZXh0KEwpLmxlbmd0aCYmZy5maWxsVGV4dChMLFYsUykscil7Y2FzZSAidW5kZXJsaW5lIjpuKGcsRi5sZWZ0LE1hdGgucm91bmQoRi50b3ArSC5iYXNlbGluZStILmxpbmVXaWR0aCksRi53aWR0aCwxLGgpO2JyZWFrO2Nhc2UgIm92ZXJsaW5lIjpuKGcsRi5sZWZ0LE1hdGgucm91bmQoRi50b3ApLEYud2lkdGgsMSxoKTticmVhaztjYXNlICJsaW5lLXRocm91Z2giOm4oZyxGLmxlZnQsTWF0aC5jZWlsKEYudG9wK0gubWlkZGxlK0gubGluZVdpZHRoKSxGLndpZHRoLDEsaCl9fSl9fWZ1bmN0aW9uIEkoYSxiLGYpe2I9Yi5jdHg7dmFyIGc9QyhhLCJsaXN0U3R5bGVUeXBlIik7aWYoL14oZGVjaW1hbHxkZWNpbWFsLWxlYWRpbmctemVyb3x1cHBlci1hbHBoYXx1cHBlci1sYXRpbnx1cHBlci1yb21hbnxsb3dlci1hbHBoYXxsb3dlci1ncmVla3xsb3dlci1sYXRpbnxsb3dlci1yb21hbikkL2kudGVzdChnKSl7dmFyIGg9Ci0xLHI9MSx3PWEucGFyZW50Tm9kZS5jaGlsZE5vZGVzO2lmKGEucGFyZW50Tm9kZSl7Zm9yKDt3WysraF0hPT1hOykxPT09d1toXS5ub2RlVHlwZSYmcisrO2g9cn1lbHNlIGg9LTE7c3dpdGNoKGcpe2Nhc2UgImRlY2ltYWwiOnZhciBtPWg7YnJlYWs7Y2FzZSAiZGVjaW1hbC1sZWFkaW5nLXplcm8iOm09MT09PWgudG9TdHJpbmcoKS5sZW5ndGg\/IjAiK2gudG9TdHJpbmcoKTpoLnRvU3RyaW5nKCk7YnJlYWs7Y2FzZSAidXBwZXItcm9tYW4iOm09eC5HZW5lcmF0ZS5MaXN0Um9tYW4oaCk7YnJlYWs7Y2FzZSAibG93ZXItcm9tYW4iOm09eC5HZW5lcmF0ZS5MaXN0Um9tYW4oaCkudG9Mb3dlckNhc2UoKTticmVhaztjYXNlICJsb3dlci1hbHBoYSI6bT14LkdlbmVyYXRlLkxpc3RBbHBoYShoKS50b0xvd2VyQ2FzZSgpO2JyZWFrO2Nhc2UgInVwcGVyLWFscGhhIjptPXguR2VuZXJhdGUuTGlzdEFscGhhKGgpfW0rPSIuICI7aD1QLmNyZWF0ZUVsZW1lbnQoImJvdW5kZWxlbWVudCIpOwpoLnN0eWxlLmRpc3BsYXk9ImlubGluZSI7cj1hLnN0eWxlLmxpc3RTdHlsZVR5cGU7YS5zdHlsZS5saXN0U3R5bGVUeXBlPSJub25lIjtoLmFwcGVuZENoaWxkKFAuY3JlYXRlVGV4dE5vZGUobSkpO2EuaW5zZXJ0QmVmb3JlKGgsYS5maXJzdENoaWxkKTtnPU0uQm91bmRzKGgpO2EucmVtb3ZlQ2hpbGQoaCk7YS5zdHlsZS5saXN0U3R5bGVUeXBlPXI7bChiLGEsIm5vbmUiLEMoYSwiY29sb3IiKSk7Imluc2lkZSI9PT1DKGEsImxpc3RTdHlsZVBvc2l0aW9uIikmJihiLnNldFZhcmlhYmxlKCJ0ZXh0QWxpZ24iLCJsZWZ0IiksYT1mLmxlZnQsZj1nLmJvdHRvbSxudWxsIT09bSYmMDxNLnRyaW1UZXh0KG0pLmxlbmd0aCYmYi5maWxsVGV4dChtLGEsZikpfX1mdW5jdGlvbiB6KGEpe3JldHVybihhPWRbYV0pJiYhMD09PWEuc3VjY2VlZGVkP2EuaW1nOiExfWZ1bmN0aW9uIEUoYSxiKXt2YXIgZj1NYXRoLm1heChhLmxlZnQsYi5sZWZ0KSxnPU1hdGgubWF4KGEudG9wLGIudG9wKTtyZXR1cm57bGVmdDpmLAp0b3A6Zyx3aWR0aDpNYXRoLm1pbihhLmxlZnQrYS53aWR0aCxiLmxlZnQrYi53aWR0aCktZixoZWlnaHQ6TWF0aC5taW4oYS50b3ArYS5oZWlnaHQsYi50b3ArYi5oZWlnaHQpLWd9fWZ1bmN0aW9uIEsoYSxiLGYsZyxoKXt2YXIgcj1jKGIsInBhZGRpbmdMZWZ0Iiksdz1jKGIsInBhZGRpbmdUb3AiKSxtPWMoYiwicGFkZGluZ1JpZ2h0Iik7Yj1jKGIsInBhZGRpbmdCb3R0b20iKTtVKGEsZiwwLDAsZi53aWR0aCxmLmhlaWdodCxnLmxlZnQrcitoWzNdLndpZHRoLGcudG9wK3craFswXS53aWR0aCxnLndpZHRoLShoWzFdLndpZHRoK2hbM10ud2lkdGgrcittKSxnLmhlaWdodC0oaFswXS53aWR0aCtoWzJdLndpZHRoK3crYikpfWZ1bmN0aW9uIEooYSl7cmV0dXJuWyJUb3AiLCJSaWdodCIsIkJvdHRvbSIsIkxlZnQiXS5tYXAoZnVuY3Rpb24oYil7cmV0dXJue3dpZHRoOmMoYSwiYm9yZGVyIitiKyJXaWR0aCIpLGNvbG9yOkMoYSwiYm9yZGVyIitiKyJDb2xvciIpfX0pfWZ1bmN0aW9uIEcoYSl7cmV0dXJuWyJUb3BMZWZ0IiwKIlRvcFJpZ2h0IiwiQm90dG9tUmlnaHQiLCJCb3R0b21MZWZ0Il0ubWFwKGZ1bmN0aW9uKGIpe3JldHVybiBDKGEsImJvcmRlciIrYisiUmFkaXVzIil9KX1mdW5jdGlvbiBPKGEsYixmLGcpe3ZhciBoPShNYXRoLnNxcnQoMiktMSkvMyo0LHI9ZipoO2gqPWc7Zj1hK2Y7Zz1iK2c7cmV0dXJue3RvcExlZnQ6VCh7eDphLHk6Z30se3g6YSx5OmctaH0se3g6Zi1yLHk6Yn0se3g6Zix5OmJ9KSx0b3BSaWdodDpUKHt4OmEseTpifSx7eDphK3IseTpifSx7eDpmLHk6Zy1ofSx7eDpmLHk6Z30pLGJvdHRvbVJpZ2h0OlQoe3g6Zix5OmJ9LHt4OmYseTpiK2h9LHt4OmErcix5Omd9LHt4OmEseTpnfSksYm90dG9tTGVmdDpUKHt4OmYseTpnfSx7eDpmLXIseTpnfSx7eDphLHk6YitofSx7eDphLHk6Yn0pfX1mdW5jdGlvbiBUKGEsYixmLGcpe3ZhciBoPWZ1bmN0aW9uKHIsdyxtKXtyZXR1cm57eDpyLngrKHcueC1yLngpKm0seTpyLnkrKHcueS1yLnkpKm19fTtyZXR1cm57c3RhcnQ6YSxzdGFydENvbnRyb2w6YiwKZW5kQ29udHJvbDpmLGVuZDpnLHN1YmRpdmlkZTpmdW5jdGlvbihyKXt2YXIgdz1oKGEsYixyKSxtPWgoYixmLHIpLEQ9aChmLGcsciksdT1oKHcsbSxyKTttPWgobSxELHIpO3I9aCh1LG0scik7cmV0dXJuW1QoYSx3LHUsciksVChyLG0sRCxnKV19LGN1cnZlVG86ZnVuY3Rpb24ocil7ci5wdXNoKFsiYmV6aWVyQ3VydmUiLGIueCxiLnksZi54LGYueSxnLngsZy55XSl9LGN1cnZlVG9SZXZlcnNlZDpmdW5jdGlvbihyKXtyLnB1c2goWyJiZXppZXJDdXJ2ZSIsZi54LGYueSxiLngsYi55LGEueCxhLnldKX19fWZ1bmN0aW9uIFcoYSxiLGYsZyxoLHIsdyl7MDxiWzBdfHwwPGJbMV0\/KGEucHVzaChbImxpbmUiLGdbMF0uc3RhcnQueCxnWzBdLnN0YXJ0LnldKSxnWzBdLmN1cnZlVG8oYSksZ1sxXS5jdXJ2ZVRvKGEpKTphLnB1c2goWyJsaW5lIixyLHddKTsoMDxmWzBdfHwwPGZbMV0pJiZhLnB1c2goWyJsaW5lIixoWzBdLnN0YXJ0LngsaFswXS5zdGFydC55XSl9ZnVuY3Rpb24gYmEoYSwKYixmLGcsaCxyLHcpe3ZhciBtPVtdOzA8YlswXXx8MDxiWzFdPyhtLnB1c2goWyJsaW5lIixnWzFdLnN0YXJ0LngsZ1sxXS5zdGFydC55XSksZ1sxXS5jdXJ2ZVRvKG0pKTptLnB1c2goWyJsaW5lIixhLmMxWzBdLGEuYzFbMV1dKTswPGZbMF18fDA8ZlsxXT8obS5wdXNoKFsibGluZSIsclswXS5zdGFydC54LHJbMF0uc3RhcnQueV0pLHJbMF0uY3VydmVUbyhtKSxtLnB1c2goWyJsaW5lIix3WzBdLmVuZC54LHdbMF0uZW5kLnldKSx3WzBdLmN1cnZlVG9SZXZlcnNlZChtKSk6KG0ucHVzaChbImxpbmUiLGEuYzJbMF0sYS5jMlsxXV0pLG0ucHVzaChbImxpbmUiLGEuYzNbMF0sYS5jM1sxXV0pKTswPGJbMF18fDA8YlsxXT8obS5wdXNoKFsibGluZSIsaFsxXS5lbmQueCxoWzFdLmVuZC55XSksaFsxXS5jdXJ2ZVRvUmV2ZXJzZWQobSkpOm0ucHVzaChbImxpbmUiLGEuYzRbMF0sYS5jNFsxXV0pO3JldHVybiBtfWZ1bmN0aW9uIHkoYSxiLGYpe3ZhciBnPWIubGVmdCxoPWIudG9wLHI9CmIud2lkdGgsdz1iLmhlaWdodCxtPUcoYSksRD1iLmxlZnQsdT1iLnRvcCxIPWIud2lkdGgsTD1iLmhlaWdodCxGPW1bMF1bMF0sVj1tWzBdWzFdLFM9bVsxXVswXSxaPW1bMV1bMV0sY2E9bVsyXVswXSxlYT1tWzJdWzFdLFk9bVszXVswXSxYPW1bM11bMV0sb2E9SC1TLHNhPUwtZWEsdGE9SC1jYSxmYT1MLVgsa2E9TyhELHUsRixWKS50b3BMZWZ0LnN1YmRpdmlkZSguNSk7Rj1PKEQrZlszXS53aWR0aCx1K2ZbMF0ud2lkdGgsTWF0aC5tYXgoMCxGLWZbM10ud2lkdGgpLE1hdGgubWF4KDAsVi1mWzBdLndpZHRoKSkudG9wTGVmdC5zdWJkaXZpZGUoLjUpO1Y9TyhEK29hLHUsUyxaKS50b3BSaWdodC5zdWJkaXZpZGUoLjUpO1M9TyhEK01hdGgubWluKG9hLEgrZlszXS53aWR0aCksdStmWzBdLndpZHRoLG9hPkgrZlszXS53aWR0aD8wOlMtZlszXS53aWR0aCxaLWZbMF0ud2lkdGgpLnRvcFJpZ2h0LnN1YmRpdmlkZSguNSk7Wj1PKEQrdGEsdStzYSxjYSxlYSkuYm90dG9tUmlnaHQuc3ViZGl2aWRlKC41KTsKSD1PKEQrTWF0aC5taW4odGEsSCtmWzNdLndpZHRoKSx1K01hdGgubWluKHNhLEwrZlswXS53aWR0aCksTWF0aC5tYXgoMCxjYS1mWzFdLndpZHRoKSxNYXRoLm1heCgwLGVhLWZbMl0ud2lkdGgpKS5ib3R0b21SaWdodC5zdWJkaXZpZGUoLjUpO0w9TyhELHUrZmEsWSxYKS5ib3R0b21MZWZ0LnN1YmRpdmlkZSguNSk7RD1PKEQrZlszXS53aWR0aCx1K2ZhLE1hdGgubWF4KDAsWS1mWzNdLndpZHRoKSxNYXRoLm1heCgwLFgtZlsyXS53aWR0aCkpLmJvdHRvbUxlZnQuc3ViZGl2aWRlKC41KTt1PVtdO3N3aXRjaChDKGEsImJhY2tncm91bmRDbGlwIikpe2Nhc2UgImNvbnRlbnQtYm94IjpjYXNlICJwYWRkaW5nLWJveCI6Vyh1LG1bMF0sbVsxXSxGLFMsYi5sZWZ0K2ZbM10ud2lkdGgsYi50b3ArZlswXS53aWR0aCk7Vyh1LG1bMV0sbVsyXSxTLEgsYi5sZWZ0K2Iud2lkdGgtZlsxXS53aWR0aCxiLnRvcCtmWzBdLndpZHRoKTtXKHUsbVsyXSxtWzNdLEgsRCxiLmxlZnQrYi53aWR0aC1mWzFdLndpZHRoLApiLnRvcCtiLmhlaWdodC1mWzJdLndpZHRoKTtXKHUsbVszXSxtWzBdLEQsRixiLmxlZnQrZlszXS53aWR0aCxiLnRvcCtiLmhlaWdodC1mWzJdLndpZHRoKTticmVhaztkZWZhdWx0OlcodSxtWzBdLG1bMV0sa2EsVixiLmxlZnQsYi50b3ApLFcodSxtWzFdLG1bMl0sVixaLGIubGVmdCtiLndpZHRoLGIudG9wKSxXKHUsbVsyXSxtWzNdLFosTCxiLmxlZnQrYi53aWR0aCxiLnRvcCtiLmhlaWdodCksVyh1LG1bM10sbVswXSxMLGthLGIubGVmdCxiLnRvcCtiLmhlaWdodCl9ZmE9e2NsaXA6dSxib3JkZXJzOltdfTtmb3IoYT0wOzQ+YTthKyspaWYoMDxmW2FdLndpZHRoKXtiPWc7dT1oO1k9cjtYPXctZlsyXS53aWR0aDtzd2l0Y2goYSl7Y2FzZSAwOlg9ZlswXS53aWR0aDt2YXIgbGE9YmEoe2MxOltiLHVdLGMyOltiK1ksdV0sYzM6W2IrWS1mWzFdLndpZHRoLHUrWF0sYzQ6W2IrZlszXS53aWR0aCx1K1hdfSxtWzBdLG1bMV0sa2EsRixWLFMpO2JyZWFrO2Nhc2UgMTpiPWcrci1mWzFdLndpZHRoOwpZPWZbMV0ud2lkdGg7bGE9YmEoe2MxOltiK1ksdV0sYzI6W2IrWSx1K1grZlsyXS53aWR0aF0sYzM6W2IsdStYXSxjNDpbYix1K2ZbMF0ud2lkdGhdfSxtWzFdLG1bMl0sVixTLFosSCk7YnJlYWs7Y2FzZSAyOnU9dSt3LWZbMl0ud2lkdGg7WD1mWzJdLndpZHRoO2xhPWJhKHtjMTpbYitZLHUrWF0sYzI6W2IsdStYXSxjMzpbYitmWzNdLndpZHRoLHVdLGM0OltiK1ktZlszXS53aWR0aCx1XX0sbVsyXSxtWzNdLFosSCxMLEQpO2JyZWFrO2Nhc2UgMzpZPWZbM10ud2lkdGgsbGE9YmEoe2MxOltiLHUrWCtmWzJdLndpZHRoXSxjMjpbYix1XSxjMzpbYitZLHUrZlswXS53aWR0aF0sYzQ6W2IrWSx1K1hdfSxtWzNdLG1bMF0sTCxELGthLEYpfWZhLmJvcmRlcnMucHVzaCh7YXJnczpsYSxjb2xvcjpmW2FdLmNvbG9yfSl9cmV0dXJuIGZhfWZ1bmN0aW9uIEEoYSxiKXt2YXIgZj1hLmRyYXdTaGFwZSgpO2IuZm9yRWFjaChmdW5jdGlvbihnLGgpe2ZbMD09PWg\/Im1vdmVUbyI6Z1swXSsiVG8iXS5hcHBseShudWxsLApnLnNsaWNlKDEpKX0pO3JldHVybiBmfWZ1bmN0aW9uIEIoYSxiLGYpe3ZhciBnPVAuY3JlYXRlRWxlbWVudCgidmFsdWV3cmFwIik7ImxpbmVIZWlnaHQgdGV4dEFsaWduIGZvbnRGYW1pbHkgY29sb3IgZm9udFNpemUgcGFkZGluZ0xlZnQgcGFkZGluZ1RvcCB3aWR0aCBoZWlnaHQgYm9yZGVyIGJvcmRlckxlZnRXaWR0aCBib3JkZXJUb3BXaWR0aCIuc3BsaXQoIiAiKS5mb3JFYWNoKGZ1bmN0aW9uKGgpe3RyeXtnLnN0eWxlW2hdPUMoYSxoKX1jYXRjaChyKXtNLmxvZygiaHRtbDJjYW52YXM6IFBhcnNlOiBFeGNlcHRpb24gY2F1Z2h0IGluIHJlbmRlckZvcm1WYWx1ZTogIityLm1lc3NhZ2UpfX0pO2cuc3R5bGUuYm9yZGVyQ29sb3I9ImJsYWNrIjtnLnN0eWxlLmJvcmRlclN0eWxlPSJzb2xpZCI7Zy5zdHlsZS5kaXNwbGF5PSJibG9jayI7Zy5zdHlsZS5wb3NpdGlvbj0iYWJzb2x1dGUiO2lmKC9eKHN1Ym1pdHxyZXNldHxidXR0b258dGV4dHxwYXNzd29yZCkkLy50ZXN0KGEudHlwZSl8fAoiU0VMRUNUIj09PWEubm9kZU5hbWUpZy5zdHlsZS5saW5lSGVpZ2h0PUMoYSwiaGVpZ2h0Iik7Zy5zdHlsZS50b3A9Yi50b3ArInB4IjtnLnN0eWxlLmxlZnQ9Yi5sZWZ0KyJweCI7KGI9IlNFTEVDVCI9PT1hLm5vZGVOYW1lPyhhLm9wdGlvbnNbYS5zZWxlY3RlZEluZGV4XXx8MCkudGV4dDphLnZhbHVlKXx8KGI9YS5wbGFjZWhvbGRlcik7Yj1QLmNyZWF0ZVRleHROb2RlKGIpO2cuYXBwZW5kQ2hpbGQoYik7bWEuYXBwZW5kQ2hpbGQoZyk7ZShhLGIsZik7bWEucmVtb3ZlQ2hpbGQoZyl9ZnVuY3Rpb24gVShhKXthLmRyYXdJbWFnZS5hcHBseShhLEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywxKSl9ZnVuY3Rpb24gYWEoYSxiKXt2YXIgZj1OLmdldENvbXB1dGVkU3R5bGUoYSxiKTthPU4uZ2V0Q29tcHV0ZWRTdHlsZShhKTtpZihmJiZmLmNvbnRlbnQmJiJub25lIiE9PWYuY29udGVudCYmIi1tb3otYWx0LWNvbnRlbnQiIT09Zi5jb250ZW50JiYibm9uZSIhPT0KZi5kaXNwbGF5JiZhLmNvbnRlbnQhPT1mLmNvbnRlbnQpe2E9Zi5jb250ZW50KyIiO2lmKCInIj09PWFbMF18fCciJz09PWFbMF0pYT1hLnJlcGxhY2UoLyheWyciXSl8KFsnIl0kKS9nLCIiKTtiPSJ1cmwiPT09YS5zdWJzdHIoMCwzKTt2YXIgZz1SLmNyZWF0ZUVsZW1lbnQoYj8iaW1nIjoic3BhbiIpO2cuY2xhc3NOYW1lPSJfX19odG1sMmNhbnZhc19fX3BzZXVkb2VsZW1lbnQtZWxlbWVudCAiO09iamVjdC5rZXlzKGYpLmZpbHRlcihkYSkuZm9yRWFjaChmdW5jdGlvbihoKXt0cnl7Zy5zdHlsZVtoXT1mW2hdfWNhdGNoKHIpe00ubG9nKFsiVHJpZWQgdG8gYXNzaWduIHJlYWRvbmx5IHByb3BlcnR5ICIsaCwiRXJyb3I6IixyXSl9fSk7Yj9nLnNyYz1NLnBhcnNlQmFja2dyb3VuZEltYWdlKGEpWzBdLmFyZ3NbMF06Zy5pbm5lckhUTUw9YTtyZXR1cm4gZ319ZnVuY3Rpb24gZGEoYSl7cmV0dXJuIGlzTmFOKE4ucGFyc2VJbnQoYSwxMCkpfWZ1bmN0aW9uIGhhKGEsYixmLGcpe3ZhciBoPQpNYXRoLnJvdW5kKGcubGVmdCtmLmxlZnQpO2Y9TWF0aC5yb3VuZChnLnRvcCtmLnRvcCk7YS5jcmVhdGVQYXR0ZXJuKGIpO2EudHJhbnNsYXRlKGgsZik7YS5maWxsKCk7YS50cmFuc2xhdGUoLWgsLWYpfWZ1bmN0aW9uIG5hKGEsYixmLGcsaCxyLHcsbSl7dmFyIEQ9W107RC5wdXNoKFsibGluZSIsTWF0aC5yb3VuZChoKSxNYXRoLnJvdW5kKHIpXSk7RC5wdXNoKFsibGluZSIsTWF0aC5yb3VuZChoK3cpLE1hdGgucm91bmQocildKTtELnB1c2goWyJsaW5lIixNYXRoLnJvdW5kKGgrdyksTWF0aC5yb3VuZChtK3IpXSk7RC5wdXNoKFsibGluZSIsTWF0aC5yb3VuZChoKSxNYXRoLnJvdW5kKG0rcildKTtBKGEsRCk7YS5zYXZlKCk7YS5jbGlwKCk7aGEoYSxiLGYsZyk7YS5yZXN0b3JlKCl9ZnVuY3Rpb24gQWEoYSxiLGYpe2Zvcih2YXIgZz1DKGEsImJhY2tncm91bmRJbWFnZSIpLGg9TS5wYXJzZUJhY2tncm91bmRJbWFnZShnKSxyLHc9aC5sZW5ndGg7dy0tOylpZihnPWhbd10sZy5hcmdzJiYKMCE9PWcuYXJncy5sZW5ndGgpaWYocj16KCJ1cmwiPT09Zy5tZXRob2Q\/Zy5hcmdzWzBdOmcudmFsdWUpKXt2YXIgbT1hO2c9Yjt2YXIgRD1mLHU9cixIPXcsTD1NLkJhY2tncm91bmRTaXplKG0sZyx1LEgpO3I9TS5CYWNrZ3JvdW5kUG9zaXRpb24obSxnLHUsSCxMKTttPU0uQmFja2dyb3VuZFJlcGVhdChtLEgpO0g9TDtpZih1LndpZHRoIT09SC53aWR0aHx8dS5oZWlnaHQhPT1ILmhlaWdodCl7dmFyIEY9UC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKTtGLndpZHRoPUgud2lkdGg7Ri5oZWlnaHQ9SC5oZWlnaHQ7TD1GLmdldENvbnRleHQoIjJkIik7VShMLHUsMCwwLHUud2lkdGgsdS5oZWlnaHQsMCwwLEgud2lkdGgsSC5oZWlnaHQpO3U9Rn1zd2l0Y2gobSl7Y2FzZSAicmVwZWF0LXgiOmNhc2UgInJlcGVhdCBuby1yZXBlYXQiOm5hKEQsdSxyLGcsZy5sZWZ0LGcudG9wK3IudG9wLDk5OTk5LHUuaGVpZ2h0KTticmVhaztjYXNlICJyZXBlYXQteSI6Y2FzZSAibm8tcmVwZWF0IHJlcGVhdCI6bmEoRCwKdSxyLGcsZy5sZWZ0K3IubGVmdCxnLnRvcCx1LndpZHRoLDk5OTk5KTticmVhaztjYXNlICJuby1yZXBlYXQiOm5hKEQsdSxyLGcsZy5sZWZ0K3IubGVmdCxnLnRvcCtyLnRvcCx1LndpZHRoLHUuaGVpZ2h0KTticmVhaztkZWZhdWx0OmhhKEQsdSxyLHt0b3A6Zy50b3AsbGVmdDpnLmxlZnQsd2lkdGg6dS53aWR0aCxoZWlnaHQ6dS5oZWlnaHR9KX19ZWxzZSBNLmxvZygiaHRtbDJjYW52YXM6IEVycm9yIGxvYWRpbmcgYmFja2dyb3VuZDoiLGcpfWZ1bmN0aW9uIEJhKGEpe3JldHVybiBhLnJlcGxhY2UoInB4IiwiIil9ZnVuY3Rpb24gQ2EoYSxiKXtiPS8obWF0cml4KVwoKC4rKVwpLzt2YXIgZj1DKGEsInRyYW5zZm9ybSIpfHxDKGEsIi13ZWJraXQtdHJhbnNmb3JtIil8fEMoYSwiLW1vei10cmFuc2Zvcm0iKXx8QyhhLCItbXMtdHJhbnNmb3JtIil8fEMoYSwiLW8tdHJhbnNmb3JtIik7YT1DKGEsInRyYW5zZm9ybS1vcmlnaW4iKXx8QyhhLCItd2Via2l0LXRyYW5zZm9ybS1vcmlnaW4iKXx8CkMoYSwiLW1vei10cmFuc2Zvcm0tb3JpZ2luIil8fEMoYSwiLW1zLXRyYW5zZm9ybS1vcmlnaW4iKXx8QyhhLCItby10cmFuc2Zvcm0tb3JpZ2luIil8fCIwcHggMHB4IjthPWEuc3BsaXQoIiAiKS5tYXAoQmEpLm1hcChNLmFzRmxvYXQpO2lmKGYmJiJub25lIiE9PWYmJihiPWYubWF0Y2goYikpKXN3aXRjaChiWzFdKXtjYXNlICJtYXRyaXgiOnZhciBnPWJbMl0uc3BsaXQoIiwiKS5tYXAoTS50cmltVGV4dCkubWFwKE0uYXNGbG9hdCl9cmV0dXJue29yaWdpbjphLG1hdHJpeDpnfX1mdW5jdGlvbiBEYShhLGIsZixnKXt2YXIgaD15YShiP2Yud2lkdGg6TWF0aC5tYXgoTWF0aC5tYXgoUC5ib2R5LnNjcm9sbFdpZHRoLFAuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFdpZHRoKSxNYXRoLm1heChQLmJvZHkub2Zmc2V0V2lkdGgsUC5kb2N1bWVudEVsZW1lbnQub2Zmc2V0V2lkdGgpLE1hdGgubWF4KFAuYm9keS5jbGllbnRXaWR0aCxQLmRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0aCkpLApiP2YuaGVpZ2h0Ok1hdGgubWF4KE1hdGgubWF4KFAuYm9keS5zY3JvbGxIZWlnaHQsUC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsSGVpZ2h0KSxNYXRoLm1heChQLmJvZHkub2Zmc2V0SGVpZ2h0LFAuZG9jdW1lbnRFbGVtZW50Lm9mZnNldEhlaWdodCksTWF0aC5tYXgoUC5ib2R5LmNsaWVudEhlaWdodCxQLmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQpKSkscj1oLnNldFZhcmlhYmxlKCJnbG9iYWxBbHBoYSIsQyhhLCJvcGFjaXR5IikqKGI\/Yi5vcGFjaXR5OjEpKTtnPXtjdHg6aCxvcGFjaXR5OnIsY3NzUG9zaXRpb246QyhhLCJwb3NpdGlvbiIpLGJvcmRlcnM6SihhKSx0cmFuc2Zvcm06ZyxjbGlwOmImJmIuY2xpcD9NLkV4dGVuZCh7fSxiLmNsaXApOm51bGx9O3ZhciB3PShyPSJzdGF0aWMiIT09Zy5jc3NQb3NpdGlvbik\/QyhhLCJ6SW5kZXgiKToiYXV0byIsbT1DKGEsIm9wYWNpdHkiKSxEPSJub25lIiE9PUMoYSwiY3NzRmxvYXQiKTtnLnpJbmRleD1oPXtkZXB0aDowLHppbmRleDp3LApjaGlsZHJlbjpbXX07aC5pc1Bvc2l0aW9uZWQ9cjtoLmlzRmxvYXRlZD1EO2gub3BhY2l0eT1tO2gub3duU3RhY2tpbmc9ImF1dG8iIT09d3x8MT5tO2guZGVwdGg9Yj9iLnpJbmRleC5kZXB0aCsxOjA7YiYmYi56SW5kZXguY2hpbGRyZW4ucHVzaChnKTshMD09PXAudXNlT3ZlcmZsb3cmJiEwPT09LyhoaWRkZW58c2Nyb2xsfGF1dG8pLy50ZXN0KEMoYSwib3ZlcmZsb3ciKSkmJiExPT09LyhCT0RZKS9pLnRlc3QoYS5ub2RlTmFtZSkmJihnLmNsaXA9Zy5jbGlwP0UoZy5jbGlwLGYpOmYpO3JldHVybiBnfWZ1bmN0aW9uIEVhKGEsYixmKXthPXtsZWZ0OmIubGVmdCthWzNdLndpZHRoLHRvcDpiLnRvcCthWzBdLndpZHRoLHdpZHRoOmIud2lkdGgtKGFbMV0ud2lkdGgrYVszXS53aWR0aCksaGVpZ2h0OmIuaGVpZ2h0LShhWzBdLndpZHRoK2FbMl0ud2lkdGgpfTtmJiYoYT1FKGEsZikpO3JldHVybiBhfWZ1bmN0aW9uIEZhKGEsYil7YT1iLm1hdHJpeD9NLk9mZnNldEJvdW5kcyhhKToKTS5Cb3VuZHMoYSk7Yi5vcmlnaW5bMF0rPWEubGVmdDtiLm9yaWdpblsxXSs9YS50b3A7cmV0dXJuIGF9ZnVuY3Rpb24gdWEoYSxiLGYpe3ZhciBnPUNhKGEsYiksaD1GYShhLGcpLHI7Yj1EYShhLGIsaCxnKTtnPWIuYm9yZGVyczt2YXIgdz1iLmN0eCxtPUVhKGcsaCxiLmNsaXApLEQ9eShhLGgsZyksdT12YS50ZXN0KGEubm9kZU5hbWUpPyIjZWZlZmVmIjpDKGEsImJhY2tncm91bmRDb2xvciIpO0EodyxELmNsaXApO3cuc2F2ZSgpO3cuY2xpcCgpOzA8bS5oZWlnaHQmJjA8bS53aWR0aCYmIWY\/KG4odyxoLmxlZnQsaC50b3AsaC53aWR0aCxoLmhlaWdodCx1KSxBYShhLG0sdykpOmYmJihiLmJhY2tncm91bmRDb2xvcj11KTt3LnJlc3RvcmUoKTtELmJvcmRlcnMuZm9yRWFjaChmdW5jdGlvbihIKXt2YXIgTD1ILmFyZ3M7SD1ILmNvbG9yOyJ0cmFuc3BhcmVudCIhPT1IJiYody5zZXRWYXJpYWJsZSgiZmlsbFN0eWxlIixIKSxBKHcsTCksdy5maWxsKCkpfSk7c3dpdGNoKGEubm9kZU5hbWUpe2Nhc2UgIklNRyI6KHI9CnooYS5nZXRBdHRyaWJ1dGUoInNyYyIpKSk\/Syh3LGEscixoLGcpOk0ubG9nKCJodG1sMmNhbnZhczogRXJyb3IgbG9hZGluZyA8aW1nPjoiK2EuZ2V0QXR0cmlidXRlKCJzcmMiKSk7YnJlYWs7Y2FzZSAiSU5QVVQiOi9eKHRleHR8dXJsfGVtYWlsfHN1Ym1pdHxidXR0b258cmVzZXQpJC8udGVzdChhLnR5cGUpJiYwPChhLnZhbHVlfHxhLnBsYWNlaG9sZGVyfHwiIikubGVuZ3RoJiZCKGEsaCxiKTticmVhaztjYXNlICJURVhUQVJFQSI6MDwoYS52YWx1ZXx8YS5wbGFjZWhvbGRlcnx8IiIpLmxlbmd0aCYmQihhLGgsYik7YnJlYWs7Y2FzZSAiU0VMRUNUIjowPChhLm9wdGlvbnN8fGEucGxhY2Vob2xkZXJ8fCIiKS5sZW5ndGgmJkIoYSxoLGIpO2JyZWFrO2Nhc2UgIkxJIjpJKGEsYixtKTticmVhaztjYXNlICJDQU5WQVMiOksodyxhLGEsaCxnKX1yZXR1cm4gYn1mdW5jdGlvbiBHYShhKXtyZXR1cm4ibm9uZSIhPT1DKGEsImRpc3BsYXkiKSYmImhpZGRlbiIhPT1DKGEsInZpc2liaWxpdHkiKSYmCiFhLmhhc0F0dHJpYnV0ZSgiZGF0YS1odG1sMmNhbnZhcy1pZ25vcmUiKX1mdW5jdGlvbiBIYShhLGIsZil7Znx8KGY9ZnVuY3Rpb24oKXt9KTtpZihHYShhKSYmKGI9dWEoYSxiLCExKXx8YiwhdmEudGVzdChhLm5vZGVOYW1lKSkpcmV0dXJuIHdhKGEsYixmKTtmKCl9ZnVuY3Rpb24gd2EoYSxiLGYpe2Z1bmN0aW9uIGcobSl7bS5ub2RlVHlwZT09PW0uRUxFTUVOVF9OT0RFP0hhKG0sYixoKToobS5ub2RlVHlwZT09PW0uVEVYVF9OT0RFJiZlKGEsbSxiKSxoKCkpfWZ1bmN0aW9uIGgobSl7MD49LS13JiYoTS5sb2coImZpbmlzaGVkIHJlbmRlcmluZyAiK3IubGVuZ3RoKyIgY2hpbGRyZW4uIiksZigpKX12YXIgcj1NLkNoaWxkcmVuKGEpLHc9ci5sZW5ndGgrMTtoKCk7cC5hc3luYz9yLmZvckVhY2goZnVuY3Rpb24obSl7c2V0VGltZW91dChmdW5jdGlvbigpe2cobSl9LDApfSk6ci5mb3JFYWNoKGcpfU4uc2Nyb2xsKDAsMCk7dmFyIGlhPXAuZWxlbWVudHM9PT1RP1IuYm9keTpwLmVsZW1lbnRzWzBdLApQPWlhLm93bmVyRG9jdW1lbnQsTT14LlV0aWwsemE9TS5TdXBwb3J0KHAsUCksdmE9bmV3IFJlZ0V4cCgiKCIrcC5pZ25vcmVFbGVtZW50cysiKSIpLG1hPVAuYm9keSxDPU0uZ2V0Q1NTLHBhPVAuY3JlYXRlRWxlbWVudCgic3R5bGUiKTtwYS5pbm5lckhUTUw9Jy5fX19odG1sMmNhbnZhc19fX3BzZXVkb2VsZW1lbnQtcGFyZW50OmJlZm9yZSB7IGNvbnRlbnQ6ICIiICFpbXBvcnRhbnQ7IGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfS5fX19odG1sMmNhbnZhc19fX3BzZXVkb2VsZW1lbnQtcGFyZW50OmFmdGVyIHsgY29udGVudDogIiIgIWltcG9ydGFudDsgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9JzttYS5hcHBlbmRDaGlsZChwYSk7ZD1kfHx7fTsoZnVuY3Rpb24oKXt2YXIgYT1DKFIuZG9jdW1lbnRFbGVtZW50LCJiYWNrZ3JvdW5kQ29sb3IiKSxiPU0uaXNUcmFuc3BhcmVudChhKSYmaWE9PT1SLmJvZHksZj11YShpYSxudWxsLCExLGIpO2soaWEpO3dhKGlhLGYsZnVuY3Rpb24oKXtiJiYKKGE9Zi5iYWNrZ3JvdW5kQ29sb3IpO21hLnJlbW92ZUNoaWxkKHBhKTtmb3IodmFyIGc9Ui5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJfX19odG1sMmNhbnZhc19fX3BzZXVkb2VsZW1lbnQtZWxlbWVudCIpO2cubGVuZ3RoOylnWzBdLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoZ1swXSk7Zm9yKGc9Ui5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJfX19odG1sMmNhbnZhc19fX3BzZXVkb2VsZW1lbnQtcGFyZW50Iik7Zy5sZW5ndGg7KXt2YXIgaD1nWzBdO2guY2xhc3NMaXN0P2guY2xhc3NMaXN0LnJlbW92ZSgiX19faHRtbDJjYW52YXNfX19wc2V1ZG9lbGVtZW50LXBhcmVudCIpOmguY2xhc3NOYW1lPWguY2xhc3NOYW1lLnJlcGxhY2UoIl9fX2h0bWwyY2FudmFzX19fcHNldWRvZWxlbWVudC1wYXJlbnQiLCIiKS50cmltKCl9TS5sb2coIkRvbmUgcGFyc2luZywgbW92aW5nIHRvIFJlbmRlci4iKTtxKHtiYWNrZ3JvdW5kQ29sb3I6YSxzdGFjazpmfSl9KX0pKCl9O3guUHJlbG9hZD1mdW5jdGlvbihkKXtmdW5jdGlvbiBwKCl7ZS5sb2coImh0bWwyY2FudmFzOiBzdGFydDogaW1hZ2VzOiAiKwpsLm51bUxvYWRlZCsiIC8gIitsLm51bVRvdGFsKyIgKGZhaWxlZDogIitsLm51bUZhaWxlZCsiKSIpOyFsLmZpcnN0UnVuJiZsLm51bUxvYWRlZD49bC5udW1Ub3RhbCYmKGUubG9nKCJGaW5pc2hlZCBsb2FkaW5nIGltYWdlczogIyAiK2wubnVtVG90YWwrIiAoZmFpbGVkOiAiK2wubnVtRmFpbGVkKyIpIiksImZ1bmN0aW9uIj09PXR5cGVvZiBkLmNvbXBsZXRlJiZkLmNvbXBsZXRlKGwpKX1mdW5jdGlvbiBxKHksQSxCKXt2YXIgVT1kLnByb3h5O0cuaHJlZj15O3k9Ry5ocmVmO3ZhciBhYT0iaHRtbDJjYW52YXNfIitJKys7Qi5jYWxsYmFja25hbWU9YWE7VT0tMTxVLmluZGV4T2YoIj8iKT9VKyImIjpVKyI\/IjtVKz0idXJsPSIrZW5jb2RlVVJJQ29tcG9uZW50KHkpKyImY2FsbGJhY2s9IithYTt2YXIgZGE9RS5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKTtOW2FhXT1mdW5jdGlvbihoYSl7ImVycm9yOiI9PT1oYS5zdWJzdHJpbmcoMCw2KT8oQi5zdWNjZWVkZWQ9ITEsbC5udW1Mb2FkZWQrKywKbC5udW1GYWlsZWQrKyxwKCkpOih2KEEsQiksQS5zcmM9aGEpO05bYWFdPVE7dHJ5e2RlbGV0ZSBOW2FhXX1jYXRjaChuYSl7fWRhLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoZGEpO2RhPW51bGw7ZGVsZXRlIEIuc2NyaXB0O2RlbGV0ZSBCLmNhbGxiYWNrbmFtZX07ZGEuc2V0QXR0cmlidXRlKCJ0eXBlIiwidGV4dC9qYXZhc2NyaXB0Iik7ZGEuc2V0QXR0cmlidXRlKCJzcmMiLFUpO0Iuc2NyaXB0PWRhO04uZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChkYSl9ZnVuY3Rpb24gayh5LEEpe0E9Ti5nZXRDb21wdXRlZFN0eWxlKHksQSk7dmFyIEI9QS5jb250ZW50OyJ1cmwiPT09Qi5zdWJzdHIoMCwzKSYmYmEubG9hZEltYWdlKHguVXRpbC5wYXJzZUJhY2tncm91bmRJbWFnZShCKVswXS5hcmdzWzBdKTtuKEEuYmFja2dyb3VuZEltYWdlLHkpfWZ1bmN0aW9uIGMoeSl7cmV0dXJuIHkmJnkubWV0aG9kJiZ5LmFyZ3MmJjA8eS5hcmdzLmxlbmd0aH1mdW5jdGlvbiBuKHksQSl7dmFyIEI7CnguVXRpbC5wYXJzZUJhY2tncm91bmRJbWFnZSh5KS5maWx0ZXIoYykuZm9yRWFjaChmdW5jdGlvbihVKXtpZigidXJsIj09PVUubWV0aG9kKWJhLmxvYWRJbWFnZShVLmFyZ3NbMF0pO2Vsc2UgaWYoVS5tZXRob2QubWF0Y2goL1wtP2dyYWRpZW50JC8pKXtCPT09USYmKEI9eC5VdGlsLkJvdW5kcyhBKSk7VT1VLnZhbHVlO3ZhciBhYT14LkdlbmVyYXRlLkdyYWRpZW50KFUsQik7YWEhPT1RJiYobFtVXT17aW1nOmFhLHN1Y2NlZWRlZDohMH0sbC5udW1Ub3RhbCsrLGwubnVtTG9hZGVkKysscCgpKX19KX1mdW5jdGlvbiB0KHkpe3ZhciBBPSExO3RyeXtpZihudWxsIT09eS5nZXRBdHRyaWJ1dGUoImhpZGRlbiIpfHwibm9uZSI9PT1nZXRDb21wdXRlZFN0eWxlKHkpLmdldFByb3BlcnR5VmFsdWUoImRpc3BsYXkiKSlyZXR1cm47ZS5DaGlsZHJlbih5KS5mb3JFYWNoKHQpfWNhdGNoKEIpe310cnl7QT15Lm5vZGVUeXBlfWNhdGNoKEIpe0E9ITEsZS5sb2coImh0bWwyY2FudmFzOiBmYWlsZWQgdG8gYWNjZXNzIHNvbWUgZWxlbWVudCdzIG5vZGVUeXBlIC0gRXhjZXB0aW9uOiAiKwpCLm1lc3NhZ2UpfWlmKDE9PT1BfHxBPT09USl7ayh5LCI6YmVmb3JlIik7ayh5LCI6YWZ0ZXIiKTt0cnl7bihlLmdldENTUyh5LCJiYWNrZ3JvdW5kSW1hZ2UiKSx5KX1jYXRjaChCKXtlLmxvZygiaHRtbDJjYW52YXM6IGZhaWxlZCB0byBnZXQgYmFja2dyb3VuZC1pbWFnZSAtIEV4Y2VwdGlvbjogIitCLm1lc3NhZ2UpfW4oeSl9fWZ1bmN0aW9uIHYoeSxBKXt5Lm9ubG9hZD1mdW5jdGlvbigpe0EudGltZXIhPT1RJiZOLmNsZWFyVGltZW91dChBLnRpbWVyKTtsLm51bUxvYWRlZCsrO0Euc3VjY2VlZGVkPSEwO3kub25lcnJvcj15Lm9ubG9hZD1udWxsO3AoKX07eS5vbmVycm9yPWZ1bmN0aW9uKCl7aWYoImFub255bW91cyI9PT15LmNyb3NzT3JpZ2luJiYoTi5jbGVhclRpbWVvdXQoQS50aW1lciksZC5wcm94eSkpe3ZhciBCPXkuc3JjO3k9bmV3IEltYWdlO0EuaW1nPXk7eS5zcmM9QjtxKHkuc3JjLHksQSl9ZWxzZSBsLm51bUxvYWRlZCsrLGwubnVtRmFpbGVkKyssQS5zdWNjZWVkZWQ9CiExLHkub25lcnJvcj15Lm9ubG9hZD1udWxsLHAoKX19dmFyIGw9e251bUxvYWRlZDowLG51bUZhaWxlZDowLG51bVRvdGFsOjAsY2xlYW51cERvbmU6ITF9LGU9eC5VdGlsLEk9MCx6PWQuZWxlbWVudHNbMF18fFIuYm9keSxFPXoub3duZXJEb2N1bWVudCxLPXouZ2V0RWxlbWVudHNCeVRhZ05hbWUoImltZyIpLEo9Sy5sZW5ndGgsRz1FLmNyZWF0ZUVsZW1lbnQoImEiKSxPPShuZXcgSW1hZ2UpLmNyb3NzT3JpZ2luIT09USxUO0cuaHJlZj1OLmxvY2F0aW9uLmhyZWY7dmFyIFc9Ry5wcm90b2NvbCtHLmhvc3QsYmE9e2xvYWRJbWFnZTpmdW5jdGlvbih5KXtpZih5JiZsW3ldPT09USl7dmFyIEE9bmV3IEltYWdlO2lmKHkubWF0Y2goL2RhdGE6aW1hZ2VcLy4qO2Jhc2U2NCwvaSkpe0Euc3JjPXkucmVwbGFjZSgvdXJsXChbJyJdezAsfXxbJyJdezAsfVwpJC9pZywiIik7dmFyIEI9bFt5XT17aW1nOkF9O2wubnVtVG90YWwrKzt2KEEsQil9ZWxzZSBHLmhyZWY9eSxHLmhyZWY9Ry5ocmVmLApHLnByb3RvY29sK0cuaG9zdD09PVd8fCEwPT09ZC5hbGxvd1RhaW50PyhCPWxbeV09e2ltZzpBfSxsLm51bVRvdGFsKyssdihBLEIpLEEuc3JjPXkpOk8mJiFkLmFsbG93VGFpbnQmJmQudXNlQ09SUz8oQS5jcm9zc09yaWdpbj0iYW5vbnltb3VzIixCPWxbeV09e2ltZzpBfSxsLm51bVRvdGFsKyssdihBLEIpLEEuc3JjPXkpOmQucHJveHkmJihCPWxbeV09e2ltZzpBfSxsLm51bVRvdGFsKysscSh5LEEsQikpfX0sY2xlYW51cERPTTpmdW5jdGlvbih5KXt2YXIgQTtpZighbC5jbGVhbnVwRG9uZSl7eSYmInN0cmluZyI9PT10eXBlb2YgeT9lLmxvZygiaHRtbDJjYW52YXM6IENsZWFudXAgYmVjYXVzZTogIit5KTplLmxvZygiaHRtbDJjYW52YXM6IENsZWFudXAgYWZ0ZXIgdGltZW91dDogIitkLnRpbWVvdXQrIiBtcy4iKTtmb3IoQSBpbiBsKWlmKGwuaGFzT3duUHJvcGVydHkoQSkpe3ZhciBCPWxbQV07aWYoIm9iamVjdCI9PT10eXBlb2YgQiYmQi5jYWxsYmFja25hbWUmJkIuc3VjY2VlZGVkPT09ClEpe05bQi5jYWxsYmFja25hbWVdPVE7dHJ5e2RlbGV0ZSBOW0IuY2FsbGJhY2tuYW1lXX1jYXRjaChVKXt9Qi5zY3JpcHQmJkIuc2NyaXB0LnBhcmVudE5vZGUmJihCLnNjcmlwdC5zZXRBdHRyaWJ1dGUoInNyYyIsImFib3V0OmJsYW5rIiksQi5zY3JpcHQucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChCLnNjcmlwdCkpO2wubnVtTG9hZGVkKys7bC5udW1GYWlsZWQrKztlLmxvZygiaHRtbDJjYW52YXM6IENsZWFuZWQgdXAgZmFpbGVkIGltZzogJyIrQSsiJyBTdGVwczogIitsLm51bUxvYWRlZCsiIC8gIitsLm51bVRvdGFsKX19Ti5zdG9wIT09UT9OLnN0b3AoKTpSLmV4ZWNDb21tYW5kIT09USYmUi5leGVjQ29tbWFuZCgiU3RvcCIsITEpO1IuY2xvc2UhPT1RJiZSLmNsb3NlKCk7bC5jbGVhbnVwRG9uZT0hMDt5JiYic3RyaW5nIj09PXR5cGVvZiB5fHxwKCl9fSxyZW5kZXJpbmdEb25lOmZ1bmN0aW9uKCl7VCYmTi5jbGVhclRpbWVvdXQoVCl9fTswPGQudGltZW91dCYmKFQ9Ti5zZXRUaW1lb3V0KGJhLmNsZWFudXBET00sCmQudGltZW91dCkpO2UubG9nKCJodG1sMmNhbnZhczogUHJlbG9hZCBzdGFydHM6IGZpbmRpbmcgYmFja2dyb3VuZC1pbWFnZXMiKTtsLmZpcnN0UnVuPSEwO3Qoeik7ZS5sb2coImh0bWwyY2FudmFzOiBQcmVsb2FkOiBGaW5kaW5nIGltYWdlcyIpO2Zvcih6PTA7ejxKO3orPTEpYmEubG9hZEltYWdlKEtbel0uZ2V0QXR0cmlidXRlKCJzcmMiKSk7bC5maXJzdFJ1bj0hMTtlLmxvZygiaHRtbDJjYW52YXM6IFByZWxvYWQ6IERvbmUuIik7bC5udW1Ub3RhbD09PWwubnVtTG9hZGVkJiZwKCk7cmV0dXJuIGJhfTt4LlJlbmRlcmVyPWZ1bmN0aW9uKGQscCl7ZnVuY3Rpb24gcShrLGMpe3JldHVybiJjaGlsZHJlbiI9PT1rPy0xOiJjaGlsZHJlbiI9PT1jPzE6ay1jfXJldHVybiBmdW5jdGlvbihrKXtpZigic3RyaW5nIj09PXR5cGVvZiBwLnJlbmRlcmVyJiZ4LlJlbmRlcmVyW2tdIT09USlrPXguUmVuZGVyZXJba10ocCk7ZWxzZSBpZigiZnVuY3Rpb24iPT09dHlwZW9mIGspaz1rKHApOwplbHNlIHRocm93IEVycm9yKCJVbmtub3duIHJlbmRlcmVyIik7aWYoImZ1bmN0aW9uIiE9PXR5cGVvZiBrKXRocm93IEVycm9yKCJJbnZhbGlkIHJlbmRlcmVyIGRlZmluZWQiKTtyZXR1cm4ga30ocC5yZW5kZXJlcikoZCxwLFIsZnVuY3Rpb24oayl7ZnVuY3Rpb24gYyh0KXtPYmplY3Qua2V5cyh0KS5zb3J0KHEpLmZvckVhY2goZnVuY3Rpb24odil7dmFyIGw9W10sZT1bXSxJPVtdLHo9W107dFt2XS5mb3JFYWNoKGZ1bmN0aW9uKEUpe0Uubm9kZS56SW5kZXguaXNQb3NpdGlvbmVkfHwxPkUubm9kZS56SW5kZXgub3BhY2l0eT9JLnB1c2goRSk6RS5ub2RlLnpJbmRleC5pc0Zsb2F0ZWQ\/ZS5wdXNoKEUpOmwucHVzaChFKX0pOyhmdW5jdGlvbiBKKEspe0suZm9yRWFjaChmdW5jdGlvbihHKXt6LnB1c2goRyk7Ry5jaGlsZHJlbiYmSihHLmNoaWxkcmVuKX0pfSkobC5jb25jYXQoZSxJKSk7ei5mb3JFYWNoKGZ1bmN0aW9uKEspe0suY29udGV4dD9jKEsuY29udGV4dCk6bi5wdXNoKEsubm9kZSl9KX0pfQp2YXIgbj1bXTtrPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIHYoZSxJLHope3ZhciBFPSJhdXRvIj09PUkuekluZGV4LnppbmRleD8wOk51bWJlcihJLnpJbmRleC56aW5kZXgpLEs9ZSxKPUkuekluZGV4LmlzUG9zaXRpb25lZCxHPUkuekluZGV4LmlzRmxvYXRlZCxPPXtub2RlOkl9LFQ9ejtpZihJLnpJbmRleC5vd25TdGFja2luZylLPU8uY29udGV4dD17Y2hpbGRyZW46W3tub2RlOkksY2hpbGRyZW46W119XX0sVD1RO2Vsc2UgaWYoSnx8RylUPU8uY2hpbGRyZW49W107MD09PUUmJno\/ei5wdXNoKE8pOihlW0VdfHwoZVtFXT1bXSksZVtFXS5wdXNoKE8pKTtJLnpJbmRleC5jaGlsZHJlbi5mb3JFYWNoKGZ1bmN0aW9uKFcpe3YoSyxXLFQpfSl9dmFyIGw9e307dihsLHQpO3JldHVybiBsfShrKTtjKGspO3JldHVybiBufShkLnN0YWNrKSx4KX07eC5VdGlsLlN1cHBvcnQ9ZnVuY3Rpb24oZCxwKXtmdW5jdGlvbiBxKCl7dmFyIGs9bmV3IEltYWdlLGM9cC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKSwKbj1jLmdldENvbnRleHQ9PT1RPyExOmMuZ2V0Q29udGV4dCgiMmQiKTtpZighMT09PW4pcmV0dXJuITE7Yy53aWR0aD1jLmhlaWdodD0xMDtrLnNyYz0iZGF0YTppbWFnZS9zdmcreG1sLDxzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB3aWR0aD0nMTAnIGhlaWdodD0nMTAnPjxmb3JlaWduT2JqZWN0IHdpZHRoPScxMCcgaGVpZ2h0PScxMCc+PGRpdiB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCcgc3R5bGU9J3dpZHRoOjEwO2hlaWdodDoxMDsnPnN1cDwvZGl2PjwvZm9yZWlnbk9iamVjdD48L3N2Zz4iO3RyeXtuLmRyYXdJbWFnZShrLDAsMCksYy50b0RhdGFVUkwoKX1jYXRjaCh0KXtyZXR1cm4hMX14LlV0aWwubG9nKCJodG1sMmNhbnZhczogUGFyc2U6IFNWRyBwb3dlcmVkIHJlbmRlcmluZyBhdmFpbGFibGUiKTtyZXR1cm4hMH1yZXR1cm57cmFuZ2VCb3VuZHM6ZnVuY3Rpb24oKXt2YXIgaz0hMTtpZihwLmNyZWF0ZVJhbmdlKXt2YXIgYz0KcC5jcmVhdGVSYW5nZSgpO2lmKGMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KXt2YXIgbj1wLmNyZWF0ZUVsZW1lbnQoImJvdW5kdGVzdCIpO24uc3R5bGUuaGVpZ2h0PSIxMjNweCI7bi5zdHlsZS5kaXNwbGF5PSJibG9jayI7cC5ib2R5LmFwcGVuZENoaWxkKG4pO2Muc2VsZWN0Tm9kZShuKTtjPWMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7Yz1jLmhlaWdodDsxMjM9PT1jJiYoaz0hMCk7cC5ib2R5LnJlbW92ZUNoaWxkKG4pfX1yZXR1cm4ga30oKSxzdmdSZW5kZXJpbmc6ZC5zdmdSZW5kZXJpbmcmJnEoKX19O04uaHRtbDJjYW52YXM9ZnVuY3Rpb24oZCxwKXtkPWQubGVuZ3RoP2Q6W2RdO3ZhciBxLGs9e2xvZ2dpbmc6ITEsZWxlbWVudHM6ZCxiYWNrZ3JvdW5kOiIjZmZmIixwcm94eTpudWxsLHRpbWVvdXQ6MCx1c2VDT1JTOiExLGFsbG93VGFpbnQ6ITEsc3ZnUmVuZGVyaW5nOiExLGlnbm9yZUVsZW1lbnRzOiJJRlJBTUV8T0JKRUNUfFBBUkFNIix1c2VPdmVyZmxvdzohMCxsZXR0ZXJSZW5kZXJpbmc6ITEsCmNoaW5lc2U6ITEsYXN5bmM6ITEsd2lkdGg6bnVsbCxoZWlnaHQ6bnVsbCx0YWludFRlc3Q6ITAscmVuZGVyZXI6IkNhbnZhcyJ9O2s9eC5VdGlsLkV4dGVuZChwLGspO3gubG9nZ2luZz1rLmxvZ2dpbmc7ay5jb21wbGV0ZT1mdW5jdGlvbihjKXsiZnVuY3Rpb24iPT09dHlwZW9mIGsub25wcmVsb2FkZWQmJiExPT09ay5vbnByZWxvYWRlZChjKXx8eC5QYXJzZShjLGssZnVuY3Rpb24obil7aWYoImZ1bmN0aW9uIiE9PXR5cGVvZiBrLm9ucGFyc2VkfHwhMSE9PWsub25wYXJzZWQobikpaWYocT14LlJlbmRlcmVyKG4sayksImZ1bmN0aW9uIj09PXR5cGVvZiBrLm9ucmVuZGVyZWQpay5vbnJlbmRlcmVkKHEpfSl9O04uc2V0VGltZW91dChmdW5jdGlvbigpe3guUHJlbG9hZChrKX0sMCk7cmV0dXJue3JlbmRlcjpmdW5jdGlvbihjLG4pe3JldHVybiB4LlJlbmRlcmVyKGMseC5VdGlsLkV4dGVuZChuLGspKX0scGFyc2U6ZnVuY3Rpb24oYyxuKXtyZXR1cm4geC5QYXJzZShjLHguVXRpbC5FeHRlbmQobiwKaykpfSxwcmVsb2FkOmZ1bmN0aW9uKGMpe3JldHVybiB4LlByZWxvYWQoeC5VdGlsLkV4dGVuZChjLGspKX0sbG9nOnguVXRpbC5sb2d9fTtOLmh0bWwyY2FudmFzLmxvZz14LlV0aWwubG9nO04uaHRtbDJjYW52YXMuUmVuZGVyZXI9e0NhbnZhczpRfTt4LlJlbmRlcmVyLkNhbnZhcz1mdW5jdGlvbihkKXtmdW5jdGlvbiBwKHYsbCl7di5iZWdpblBhdGgoKTtsLmZvckVhY2goZnVuY3Rpb24oZSl7dltlLm5hbWVdLmFwcGx5KHYsZS5hcmd1bWVudHMpfSk7di5jbG9zZVBhdGgoKX1kPWR8fHt9O3ZhciBxPVtdLGs9Ui5jcmVhdGVFbGVtZW50KCJjYW52YXMiKSxjPWsuZ2V0Q29udGV4dCgiMmQiKSxuPXguVXRpbCx0PWQuY2FudmFzfHxSLmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpO3JldHVybiBmdW5jdGlvbih2LGwsZSxJLHope3ZhciBFPXQuZ2V0Q29udGV4dCgiMmQiKSxLPXYuc3RhY2s7dC53aWR0aD10LnN0eWxlLndpZHRoPWwud2lkdGh8fEsuY3R4LndpZHRoO3QuaGVpZ2h0PXQuc3R5bGUuaGVpZ2h0PQpsLmhlaWdodHx8Sy5jdHguaGVpZ2h0O0s9RS5maWxsU3R5bGU7RS5maWxsU3R5bGU9bi5pc1RyYW5zcGFyZW50KHYuYmFja2dyb3VuZENvbG9yKSYmbC5iYWNrZ3JvdW5kIT09UT9sLmJhY2tncm91bmQ6di5iYWNrZ3JvdW5kQ29sb3I7RS5maWxsUmVjdCgwLDAsdC53aWR0aCx0LmhlaWdodCk7RS5maWxsU3R5bGU9SztJLmZvckVhY2goZnVuY3Rpb24oSil7RS50ZXh0QmFzZWxpbmU9ImJvdHRvbSI7RS5zYXZlKCk7Si50cmFuc2Zvcm0ubWF0cml4JiYoRS50cmFuc2xhdGUoSi50cmFuc2Zvcm0ub3JpZ2luWzBdLEoudHJhbnNmb3JtLm9yaWdpblsxXSksRS50cmFuc2Zvcm0uYXBwbHkoRSxKLnRyYW5zZm9ybS5tYXRyaXgpLEUudHJhbnNsYXRlKC1KLnRyYW5zZm9ybS5vcmlnaW5bMF0sLUoudHJhbnNmb3JtLm9yaWdpblsxXSkpO0ouY2xpcCYmKEUuYmVnaW5QYXRoKCksRS5yZWN0KEouY2xpcC5sZWZ0LEouY2xpcC50b3AsSi5jbGlwLndpZHRoLEouY2xpcC5oZWlnaHQpLEUuY2xpcCgpKTsKSi5jdHguc3RvcmFnZSYmSi5jdHguc3RvcmFnZS5mb3JFYWNoKGZ1bmN0aW9uKEcpe3ZhciBPPUU7c3dpdGNoKEcudHlwZSl7Y2FzZSAidmFyaWFibGUiOk9bRy5uYW1lXT1HLmFyZ3VtZW50czticmVhaztjYXNlICJmdW5jdGlvbiI6c3dpdGNoKEcubmFtZSl7Y2FzZSAiY3JlYXRlUGF0dGVybiI6aWYoMDxHLmFyZ3VtZW50c1swXS53aWR0aCYmMDxHLmFyZ3VtZW50c1swXS5oZWlnaHQpdHJ5e08uZmlsbFN0eWxlPU8uY3JlYXRlUGF0dGVybihHLmFyZ3VtZW50c1swXSwicmVwZWF0Iil9Y2F0Y2goVyl7bi5sb2coImh0bWwyY2FudmFzOiBSZW5kZXJlcjogRXJyb3IgY3JlYXRpbmcgcGF0dGVybiIsVy5tZXNzYWdlKX1icmVhaztjYXNlICJkcmF3U2hhcGUiOnAoTyxHLmFyZ3VtZW50cyk7YnJlYWs7Y2FzZSAiZHJhd0ltYWdlIjppZigwPEcuYXJndW1lbnRzWzhdJiYwPEcuYXJndW1lbnRzWzddKXt2YXIgVDtpZighKFQ9IWQudGFpbnRUZXN0KSYmKFQ9ZC50YWludFRlc3QpKWE6e2lmKC0xPT09CnEuaW5kZXhPZihHLmFyZ3VtZW50c1swXS5zcmMpKXtjLmRyYXdJbWFnZShHLmFyZ3VtZW50c1swXSwwLDApO3RyeXtjLmdldEltYWdlRGF0YSgwLDAsMSwxKX1jYXRjaChXKXtrPVIuY3JlYXRlRWxlbWVudCgiY2FudmFzIik7Yz1rLmdldENvbnRleHQoIjJkIik7VD0hMTticmVhayBhfXEucHVzaChHLmFyZ3VtZW50c1swXS5zcmMpfVQ9ITB9VCYmTy5kcmF3SW1hZ2UuYXBwbHkoTyxHLmFyZ3VtZW50cyl9YnJlYWs7ZGVmYXVsdDpPW0cubmFtZV0uYXBwbHkoTyxHLmFyZ3VtZW50cyl9fX0pO0UucmVzdG9yZSgpfSk7bi5sb2coImh0bWwyY2FudmFzOiBSZW5kZXJlcjogQ2FudmFzIHJlbmRlcmVyIGRvbmUgLSByZXR1cm5pbmcgY2FudmFzIG9iaiIpO3JldHVybiAxPT09bC5lbGVtZW50cy5sZW5ndGgmJiJvYmplY3QiPT09dHlwZW9mIGwuZWxlbWVudHNbMF0mJiJCT0RZIiE9PWwuZWxlbWVudHNbMF0ubm9kZU5hbWU\/KHY9ei5VdGlsLkJvdW5kcyhsLmVsZW1lbnRzWzBdKSxlPWUuY3JlYXRlRWxlbWVudCgiY2FudmFzIiksCmUud2lkdGg9TWF0aC5jZWlsKHYud2lkdGgpLGUuaGVpZ2h0PU1hdGguY2VpbCh2LmhlaWdodCksRT1lLmdldENvbnRleHQoIjJkIiksRS5kcmF3SW1hZ2UodCx2LmxlZnQsdi50b3Asdi53aWR0aCx2LmhlaWdodCwwLDAsdi53aWR0aCx2LmhlaWdodCksdD1udWxsLGUpOnR9fX0pKHdpbmRvdyxkb2N1bWVudCk7Ci8qKiAvanMvZDJjdGNrL3Vwcm9maWxlLmZpbmFsLm1pbi5qcyAqKi8KYWN0aXZlVXNlclByb2ZpbGVNbmc9e29ucmVhZHk6bnVsbCxvbm5vdGZvdW5kOm51bGwsZGlzYWJsZWQ6ITEsdWlkOm51bGwsYWN0aXZlU3RlcDowLHN3ZlN0b3JlOiExLHJlZ2lzdGVyZWRQYWdlVmlld3M6bnVsbCxyZWdpc3RlcmVkRXZlbnRzOm51bGwsc2Vzc2lvbmlkOm51bGwscmVnaXN0ZXJlZENhbGxiYWNrczpudWxsLHJlZ2lzdGVyZWRTZXNzaW9uQ2FsbGJhY2tzOm51bGwscGFnZVZpZXdDb3VudDpudWxsLF9fcHJvcGVydGllczpudWxsLGpxdWVyeUFjdGl2ZTohMCxpc0QyQ1NpdGU6ITAsX19yZXNldFY6OSxyZXNldFNlY29uZFBhc3M6ITEsX19vdXRwdXREaXZNc2c6ITEsX19vdXRwdXRDb25zb2xlTXNnOiExLGFqYXhNbmc6e2FzeW5jOiEwLF9sYXN0WDpudWxsLHg6ZnVuY3Rpb24oKXt0cnl7aWYoInVuZGVmaW5lZCIhPT10eXBlb2YgWE1MSHR0cFJlcXVlc3QpcmV0dXJuIG5ldyBYTUxIdHRwUmVxdWVzdDtmb3IodmFyIGE9WyJNU1hNTDIuWG1sSHR0cC41LjAiLAoJCQkiTVNYTUwyLlhtbEh0dHAuNC4wIiwiTVNYTUwyLlhtbEh0dHAuMy4wIiwiTVNYTUwyLlhtbEh0dHAuMi4wIiwiTWljcm9zb2Z0LlhtbEh0dHAiXSxiLGQ9MDtkPGEubGVuZ3RoO2QrKyl0cnl7Yj1uZXcgQWN0aXZlWE9iamVjdChhW2RdKTticmVha31jYXRjaChjKXt9fWNhdGNoKGMpe31yZXR1cm4gYn0sX3NlbmQ6ZnVuY3Rpb24oYSxiLGQsYyxlLGgpe3RyeXt2YXIgZj10aGlzLngoKTt0aGlzLl9sYXN0WD1mO2Yub3BlbihkLGEsZSk7dHJ5e2YuYWRkRXZlbnRMaXN0ZW5lcigiZXJyb3IiLGZ1bmN0aW9uKHEpeyJ1bmRlZmluZWQiIT10eXBlb2YgaCYmbnVsbCE9aCYmaChmLGYuc3RhdHVzVGV4dCxFcnJvcihmLnJlc3BvbnNlVGV4dCkpfSl9Y2F0Y2gocSl7fWYub25yZWFkeXN0YXRlY2hhbmdlPWZ1bmN0aW9uKCl7ND09Zi5yZWFkeVN0YXRlP2IoZi5yZXNwb25zZVRleHQpOiJ1bmRlZmluZWQiIT10eXBlb2YgaCYmbnVsbCE9aCYmaChmLGYuc3RhdHVzVGV4dCxFcnJvcihmLnJlc3BvbnNlVGV4dCkpfTsKCQkJIlBPU1QiPT1kJiZmLnNldFJlcXVlc3RIZWFkZXIoIkNvbnRlbnQtdHlwZSIsImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIpO2Yuc2VuZChjKX1jYXRjaChxKXsidW5kZWZpbmVkIiE9dHlwZW9mIGgmJm51bGwhPWgmJmgoZiwidW5rbm93biIscSl9fSxhamF4OmZ1bmN0aW9uKGEpe3ZhciBiPXRoaXM7dHJ5e2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgYS50eXBlJiYoYS50eXBlPSJHRVQiKSwidW5kZWZpbmVkIj09dHlwZW9mIGEuZGF0YSYmKGEuZGF0YT17fSksd2luZG93LmpRdWVyeSYmInVuZGVmaW5lZCIhPXR5cGVvZiAkLmFqYXgpJC5hamF4KGEpLmRvbmUoZnVuY3Rpb24oYyl7InVuZGVmaW5lZCIhPXR5cGVvZiBhLmRvbmUmJmEuZG9uZShjKX0pLmZhaWwoZnVuY3Rpb24oYyxlLGgpeyJ1bmRlZmluZWQiIT10eXBlb2YgYS5mYWlsJiZhLmZhaWwoYyxlLGgpfSkuYWx3YXlzKGZ1bmN0aW9uKCl7InVuZGVmaW5lZCIhPXR5cGVvZiBhLmFsd2F5cyYmYS5hbHdheXMoKX0pLmRvbmUoZnVuY3Rpb24oYyl7InVuZGVmaW5lZCIhPQoJCXR5cGVvZiBhLnN1Y2Nlc3MmJmEuc3VjY2VzcyhjKX0pLmFsd2F5cyhmdW5jdGlvbihjLGUpeyJ1bmRlZmluZWQiIT10eXBlb2YgYS5jb21wbGV0ZSYmYS5jb21wbGV0ZShiLl9sYXN0WCwidW5kZWZpbmVkIiE9dHlwZW9mIGIuX2xhc3RYLnN0YXR1c1RleHQ\/Yi5fbGFzdFguc3RhdHVzVGV4dDoiIil9KTtlbHNle3ZhciBkPWIuX2dldDsicG9zdCI9PWEudHlwZS50b0xvd2VyQ2FzZSgpJiYoZD1iLl9wb3N0KTtkKGEudXJsLGEuZGF0YSxmdW5jdGlvbihjKXsidW5kZWZpbmVkIiE9dHlwZW9mIGEuZG9uZSYmYS5kb25lKGMpOyJ1bmRlZmluZWQiIT10eXBlb2YgYS5zdWNjZXNzJiZhLnN1Y2Nlc3MoYyk7InVuZGVmaW5lZCIhPXR5cGVvZiBhLmNvbXBsZXRlJiZhLmNvbXBsZXRlKCk7InVuZGVmaW5lZCIhPXR5cGVvZiBhLmFsd2F5cyYmYS5hbHdheXMoKX0sYi5hc3luYyxmdW5jdGlvbihjLGUsaCl7InVuZGVmaW5lZCIhPXR5cGVvZiBhLmZhaWwmJmEuZmFpbChjLGUsaCl9KX19Y2F0Y2goYyl7Y29uc29sZSYmCgkJY29uc29sZS5sb2cmJmNvbnNvbGUubG9nKCJVbmV4cGVjdGVkIGVycm9yIGFjY2Vzc2luZyBhamF4TW5nLmdldDogJXMiLGMubWVzc2FnZSl9fSxfZ2V0OmZ1bmN0aW9uKGEsYixkLGMsZSl7dmFyIGg9W10sZjtmb3IoZiBpbiBiKWgucHVzaChlbmNvZGVVUklDb21wb25lbnQoZikrIj0iK2VuY29kZVVSSUNvbXBvbmVudChiW2ZdKSk7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBjfHxudWxsPT1jKWM9ITA7YWN0aXZlVXNlclByb2ZpbGVNbmcuYWpheE1uZy5fc2VuZChhKyI\/IitoLmpvaW4oIiYiKSxkLCJHRVQiLG51bGwsYyxlKX0sX3Bvc3Q6ZnVuY3Rpb24oYSxiLGQsYyxlKXt2YXIgaD1bXSxmO2ZvcihmIGluIGIpaC5wdXNoKGVuY29kZVVSSUNvbXBvbmVudChmKSsiPSIrZW5jb2RlVVJJQ29tcG9uZW50KGJbZl0pKTtpZigidW5kZWZpbmVkIj09dHlwZW9mIGN8fG51bGw9PWMpYz0hMDthY3RpdmVVc2VyUHJvZmlsZU1uZy5hamF4TW5nLl9zZW5kKGEsZCwiUE9TVCIsaC5qb2luKCImIiksCgkJCWMsZSl9LGdldFNjcmlwdDpmdW5jdGlvbihhLGIpe3RyeXtpZih3aW5kb3cualF1ZXJ5JiYidW5kZWZpbmVkIiE9dHlwZW9mICQuZ2V0U2NyaXB0KSQuZ2V0U2NyaXB0KGEsYik7ZWxzZXt2YXIgZD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKSxjPWRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJzY3JpcHQiKVswXTtkLmFzeW5jPTE7ZC5vbmxvYWQ9ZC5vbnJlYWR5c3RhdGVjaGFuZ2U9ZnVuY3Rpb24oZSxoKXtpZihofHwhZC5yZWFkeVN0YXRlfHwvbG9hZGVkfGNvbXBsZXRlLy50ZXN0KGQucmVhZHlTdGF0ZSkpZC5vbmxvYWQ9ZC5vbnJlYWR5c3RhdGVjaGFuZ2U9bnVsbCxkPXZvaWQgMCwhaCYmYiYmc2V0VGltZW91dChiLDApfTtkLnNyYz1hO2MucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoZCxjKX19Y2F0Y2goZSl7Y29uc29sZSYmY29uc29sZS5sb2cmJmNvbnNvbGUubG9nKCJVbmV4cGVjdGVkIGVycm9yIHJldHJpZXZpbmcganMgc2NyaXB0LiBUaGlzIHNob3VsZCBuZXZlciBoYXBwZW46ICVzIiwKCQkJZS5tZXNzYWdlKX19fSxjb29raWVNbmc6e3JlYWRDb29raWVWYWx1ZTpmdW5jdGlvbihhKXt2YXIgYj1udWxsO3RyeXtpZih3aW5kb3cualF1ZXJ5JiYidW5kZWZpbmVkIiE9dHlwZW9mICQuY29va2llKWI9JC5jb29raWUoYSksInVuZGVmaW5lZCI9PXR5cGVvZiBiJiYoYj1udWxsKTtlbHNle2ErPSI9Ijtmb3IodmFyIGQ9ZG9jdW1lbnQuY29va2llLnNwbGl0KCI7IiksYz0wO2M8ZC5sZW5ndGg7YysrKXtmb3IodmFyIGU9ZFtjXTsiICI9PWUuY2hhckF0KDApOyllPWUuc3Vic3RyaW5nKDEsZS5sZW5ndGgpO2lmKDA9PWUuaW5kZXhPZihhKSl7Yj1lLnN1YnN0cmluZyhhLmxlbmd0aCxlLmxlbmd0aCk7YnJlYWt9fX19Y2F0Y2goaCl7Y29uc29sZSYmY29uc29sZS5sb2cmJmNvbnNvbGUubG9nKCJVbmV4cGVjdGVkIGVycm9yIHJlYWRpbmcgY29va2llOiAlcyIsaC5tZXNzYWdlKX1yZXR1cm4gYn0sc2V0Q29va2llVmFsdWU6ZnVuY3Rpb24oYSxiLGQsYyl7dHJ5e2lmKCEwIT09dGhpcy5kaXNhYmxlZCl7aWYoInVuZGVmaW5lZCI9PQoJCQl0eXBlb2YgZHx8bnVsbD09ZClkPSIvIjtpZigidW5kZWZpbmVkIj09dHlwZW9mIGN8fG51bGw9PWMpYz0wOyJ1bmRlZmluZWQiPT10eXBlb2YgYiYmKGI9bnVsbCk7dmFyIGU9bmV3IERhdGU7ZS5zZXRUaW1lKGUuZ2V0VGltZSgpKzg2NEU1KmMpO3dpbmRvdy5qUXVlcnkmJiJ1bmRlZmluZWQiIT10eXBlb2YgJC5jb29raWU\/JC5jb29raWUoYSxiLHtwYXRoOmQsc2VjdXJlOiEwLGV4cGlyZXM6MD09Yz8iIjplfSk6KGV4cGlyZXM9MCE9Yz8iOyBleHBpcmVzPSIrZS50b0dNVFN0cmluZygpOiIiLGRvY3VtZW50LmNvb2tpZT1hKyI9IitiK2V4cGlyZXMrIjsgc2VjdXJlOyBwYXRoPSIrZCxiJiZhY3RpdmVVc2VyUHJvZmlsZU1uZy5jb29raWVNbmcubG9nQ29va2llKGEsYixjLGQpKX19Y2F0Y2goaCl7Y29uc29sZSYmY29uc29sZS5sb2cmJmNvbnNvbGUubG9nKCJVbmV4cGVjdGVkIGVycm9yIHNldHRpbmcgY29va2llOiAlcyIsaC5tZXNzYWdlKX19LGRlbGV0ZUNvb2tpZTpmdW5jdGlvbihhKXt0cnl7d2luZG93LmpRdWVyeSYmCgkJInVuZGVmaW5lZCIhPXR5cGVvZiAkLmNvb2tpZT8oJC5jb29raWUoYSxudWxsKSwkLmNvb2tpZShhLG51bGwse3BhdGg6Ii8ifSkpOnRoaXMuc2V0Q29va2llVmFsdWUoYSxudWxsLC0xKX1jYXRjaChiKXtjb25zb2xlJiZjb25zb2xlLmxvZyYmY29uc29sZS5sb2coIlVuZXhwZWN0ZWQgZXJyb3IgZGVsZXRpbmcgY29va2llOiAlcyIsYi5tZXNzYWdlKX19LGxvZ0Nvb2tpZTpmdW5jdGlvbihhLGIsZCxjLGUpeyJ1bmRlZmluZWQiPT09dHlwZW9mIGUmJihlPTUpOyJ1bmRlZmluZWQiPT09dHlwZW9mIHdpbmRvdy5Db29raWVMb2dnZXI\/ZSYmc2V0VGltZW91dChmdW5jdGlvbigpe2FjdGl2ZVVzZXJQcm9maWxlTW5nLmNvb2tpZU1uZy5sb2dDb29raWUoYSxiLGQsYyxlLTEpfSwxMDApOndpbmRvdy5Db29raWVMb2dnZXIubG9nKGEsYixkLGMpfX0sX191c2VQcm94eTpmdW5jdGlvbigpe3JldHVybiExPT09dGhpcy5pc0QyQ1NpdGU\/ITE6ITB9LF9pc0JvdDpmdW5jdGlvbigpe3JldHVybi9ib3R8Z29vZ2xlYm90fGNyYXdsZXJ8c3BpZGVyfHJvYm90fGNyYXdsaW5nL2kudGVzdChuYXZpZ2F0b3IudXNlckFnZW50KT8KCQkhMDohMX0sZ2V0U3RhdHNVUkk6ZnVuY3Rpb24oKXt2YXIgYT0iL3Byb3h5X3NkMmMvIjt0cnl7ITE9PT1hY3RpdmVVc2VyUHJvZmlsZU1uZy5pc0QyQ1NpdGUmJihhPSJodHRwOi8vc3RhdHMuZDJjbWVkaWEuY2EvIiwiaHR0cHM6Ij09d2luZG93LmxvY2F0aW9uLnByb3RvY29sJiYoYT0iaHR0cHM6Ly9zc2xzdGF0cy5kMmNtZWRpYS5jYS8iKSl9Y2F0Y2goYil7Y29uc29sZSYmY29uc29sZS5sb2cmJmNvbnNvbGUubG9nKCJVbmV4cGVjdGVkIGVycm9yIGNhdWdodCBpbiBnZXRTdGF0c1VSSTogJXMiLGIubWVzc2FnZSksYT0iaHR0cHM6Ly9zc2xzdGF0cy5kMmNtZWRpYS5jYS8ifXJldHVybiBhfSxnZXRGUFVSSTpmdW5jdGlvbigpe2lmKCEwPT09dGhpcy5kaXNhYmxlZClyZXR1cm4iIjt2YXIgYT0iL2pzL2QyY3Rjay9mcHJpbnQudjIubWluLmpzIjt0cnl7YT0hMT09PWFjdGl2ZVVzZXJQcm9maWxlTW5nLmlzRDJDU2l0ZT9udWxsIT13aW5kb3cubG9jYXRpb24mJiJ1bmRlZmluZWQiIT0KCXR5cGVvZiB3aW5kb3cubG9jYXRpb24uaHJlZiYmLTEhPXdpbmRvdy5sb2NhdGlvbi5ocmVmLmluZGV4T2YoImNybTIuZDJjbWVkaWEuY2EiKT8iaHR0cHM6Ly9jcm0yLmQyY21lZGlhLmNhL2Fzc2V0cy9qcy9kMmN0Y2svZnByaW50LnYyLmpzIjoiaHR0cHM6Ly93d3cuYXV0b2F1YmFpbmUuY29tL2pzL2QyY3Rjay9mcHJpbnQudjIubWluLmpzIjohMD09PXRoaXMuX19vdXRwdXREaXZNc2c\/Ii9qcy9kMmN0Y2svZnByaW50LnYyLmpzIjoiL2pzL2QyY3Rjay9mcHJpbnQudjIubWluLmpzIn1jYXRjaChiKXtjb25zb2xlJiZjb25zb2xlLmxvZyYmY29uc29sZS5sb2coIlVuZXhwZWN0ZWQgZXJyb3IgY2F1Z2h0IGluIGdldEZQVVJJOiAlcyIsYi5tZXNzYWdlKSxhPSIvanMvZDJjdGNrL2ZwcmludC52Mi5taW4uanMifXJldHVybiBhfSxnZXRTZXNzaW9uSUQ6ZnVuY3Rpb24oKXtpZihudWxsIT1hY3RpdmVVc2VyUHJvZmlsZU1uZy5zZXNzaW9uaWQpcmV0dXJuIGFjdGl2ZVVzZXJQcm9maWxlTW5nLnNlc3Npb25pZDsKCQl2YXIgYT13aW5kb3cuYWN0aXZlU2Vzc2lvbklEO2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgYXx8bnVsbD09YXx8MD09YSlyZXR1cm4gYWN0aXZlVXNlclByb2ZpbGVNbmcuc2Vzc2lvbmlkPXdpbmRvdy5hY3RpdmVTZXNzaW9uSUQsYWN0aXZlVXNlclByb2ZpbGVNbmcuc2Vzc2lvbmlkO2E9YWN0aXZlVXNlclByb2ZpbGVNbmcuY29va2llTW5nLnJlYWRDb29raWVWYWx1ZSgidXNpZCIpO3JldHVybiBudWxsIT1hPyhhY3RpdmVVc2VyUHJvZmlsZU1uZy5zZXNzaW9uaWQ9YSxhY3RpdmVVc2VyUHJvZmlsZU1uZy5zZXNzaW9uaWQpOjB9LHJlZ2lzdGVyQ2FsbGJhY2s6ZnVuY3Rpb24oYSl7aWYoITA9PT10aGlzLmRpc2FibGVkKXtpZihudWxsIT1hKXRyeXthKCl9Y2F0Y2goYil7fXJldHVybiExfW51bGw9PWFjdGl2ZVVzZXJQcm9maWxlTW5nLnJlZ2lzdGVyZWRDYWxsYmFja3MmJihhY3RpdmVVc2VyUHJvZmlsZU1uZy5yZWdpc3RlcmVkQ2FsbGJhY2tzPVtdKTsidW5kZWZpbmVkIiE9dHlwZW9mIGFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZCYmCgludWxsIT1hY3RpdmVVc2VyUHJvZmlsZU1uZy51aWQmJiJub25lIiE9YWN0aXZlVXNlclByb2ZpbGVNbmcudWlkP2EoKTphY3RpdmVVc2VyUHJvZmlsZU1uZy5yZWdpc3RlcmVkQ2FsbGJhY2tzLnB1c2goYSl9LHJlZ2lzdGVyU2Vzc2lvbkNhbGxiYWNrOmZ1bmN0aW9uKGEpe2lmKCEwPT09dGhpcy5kaXNhYmxlZCl7aWYobnVsbCE9YSl0cnl7YSgpfWNhdGNoKGIpe31yZXR1cm4hMX1udWxsPT1hY3RpdmVVc2VyUHJvZmlsZU1uZy5yZWdpc3RlcmVkU2Vzc2lvbkNhbGxiYWNrcyYmKGFjdGl2ZVVzZXJQcm9maWxlTW5nLnJlZ2lzdGVyZWRTZXNzaW9uQ2FsbGJhY2tzPVtdKTsidW5kZWZpbmVkIiE9dHlwZW9mIGFjdGl2ZVVzZXJQcm9maWxlTW5nLnNlc3Npb25pZCYmbnVsbCE9YWN0aXZlVXNlclByb2ZpbGVNbmcuc2Vzc2lvbmlkJiYwIT1hY3RpdmVVc2VyUHJvZmlsZU1uZy5zZXNzaW9uaWQ\/YSgpOmFjdGl2ZVVzZXJQcm9maWxlTW5nLnJlZ2lzdGVyZWRTZXNzaW9uQ2FsbGJhY2tzLnB1c2goYSl9LAoJX19ub3RpZnlVVUlEOmZ1bmN0aW9uKCl7dHJ5e2lmKCEwPT09dGhpcy5kaXNhYmxlZCl7dHJ5e2IoKX1jYXRjaChkKXt9cmV0dXJuITF9aWYobnVsbCE9YWN0aXZlVXNlclByb2ZpbGVNbmcucmVnaXN0ZXJlZENhbGxiYWNrcyl7Zm9yKHZhciBhPTA7YTxhY3RpdmVVc2VyUHJvZmlsZU1uZy5yZWdpc3RlcmVkQ2FsbGJhY2tzLmxlbmd0aDthKyspe3ZhciBiPWFjdGl2ZVVzZXJQcm9maWxlTW5nLnJlZ2lzdGVyZWRDYWxsYmFja3NbYV07YigpfWFjdGl2ZVVzZXJQcm9maWxlTW5nLnJlZ2lzdGVyZWRDYWxsYmFja3M9bnVsbH19Y2F0Y2goZCl7Y29uc29sZSYmY29uc29sZS5sb2cmJmNvbnNvbGUubG9nKCJVbmV4cGVjdGVkIGVycm9yIGNhdWdodCBpbiBfX25vdGlmeVVVSUQ6ICVzIixkLm1lc3NhZ2UpfX0sX19ub3RpZnlTZXNzaW9uSUQ6ZnVuY3Rpb24oKXtpZighMD09PXRoaXMuZGlzYWJsZWQpcmV0dXJuITE7dmFyIGE9YWN0aXZlVXNlclByb2ZpbGVNbmcuZ2V0U2Vzc2lvbklEKCk7CgkJaWYoInVuZGVmaW5lZCI9PXR5cGVvZiBhfHxudWxsPT1hfHwiMCI9PWF8fDA9PWEpdmFyIGI9c2V0SW50ZXJ2YWwoZnVuY3Rpb24oKXt0cnl7bnVsbD09YWN0aXZlVXNlclByb2ZpbGVNbmcucmVnaXN0ZXJlZFNlc3Npb25DYWxsYmFja3M\/Y2xlYXJJbnRlcnZhbChiKTowIT09YWN0aXZlVXNlclByb2ZpbGVNbmcuZ2V0U2Vzc2lvbklEKCkmJihjbGVhckludGVydmFsKGIpLGFjdGl2ZVVzZXJQcm9maWxlTW5nLl9fbm90aWZ5U2Vzc2lvbklEKCkpfWNhdGNoKGQpe2NvbnNvbGUmJmNvbnNvbGUubG9nJiZjb25zb2xlLmxvZygiTm90aWZ5IHNlc3Npb25pZCBmYWlsZWQgd2l0aDogJXMiLGQubWVzc2FnZSl9fSw1MDApO2lmKG51bGwhPWFjdGl2ZVVzZXJQcm9maWxlTW5nLnJlZ2lzdGVyZWRTZXNzaW9uQ2FsbGJhY2tzKXRyeXtmb3IoYT0wO2E8YWN0aXZlVXNlclByb2ZpbGVNbmcucmVnaXN0ZXJlZFNlc3Npb25DYWxsYmFja3MubGVuZ3RoO2ErKykoMCxhY3RpdmVVc2VyUHJvZmlsZU1uZy5yZWdpc3RlcmVkU2Vzc2lvbkNhbGxiYWNrc1thXSkoKTsKCQkJYWN0aXZlVXNlclByb2ZpbGVNbmcucmVnaXN0ZXJlZFNlc3Npb25DYWxsYmFja3M9bnVsbH1jYXRjaChkKXtjb25zb2xlJiZjb25zb2xlLmxvZyYmY29uc29sZS5sb2coIlVuZXhwZWN0ZWQgZXJyb3IgY2F1Z2h0IGluIF9fbm90aWZ5U2Vzc2lvbklEOiAlcyIsZC5tZXNzYWdlKX19LGxvZ01zZzpmdW5jdGlvbihhKXt0cnl7aWYoITA9PT10aGlzLmRpc2FibGVkKXJldHVybiExOyEwPT09dGhpcy5fX291dHB1dERpdk1zZyYmJChkb2N1bWVudC5ib2R5KS5hcHBlbmQoIjxkaXY+IithKyI8L2Rpdj4iKTshMD09PXRoaXMuX19vdXRwdXRDb25zb2xlTXNnJiZjb25zb2xlJiZjb25zb2xlLmxvZyYmY29uc29sZS5sb2coYSl9Y2F0Y2goYil7Y29uc29sZSYmY29uc29sZS5sb2cmJmNvbnNvbGUubG9nKCJVbmV4cGVjdGVkIGVycm9yIGNhdWdodCBpbiBtZXNzYWdlIGxvZ2dpbmcuIEhvdyBpcm9uaWM6ICVzIixiLm1lc3NhZ2UpfX0sY2hlY2tTY2hlZHVsZWRSZXNldDpmdW5jdGlvbigpe3ZhciBhPQoJCSExO3RyeXtpZighMD09PWFjdGl2ZVVzZXJQcm9maWxlTW5nLmRpc2FibGVkKXJldHVybiExO3ZhciBiPWFjdGl2ZVVzZXJQcm9maWxlTW5nLmNvb2tpZU1uZy5yZWFkQ29va2llVmFsdWUoInV1aWRfcnN0Iik7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBifHxudWxsPT1iKWI9MDtiIT10aGlzLl9fcmVzZXRWJiYoYT0hMCxhY3RpdmVVc2VyUHJvZmlsZU1uZy5jb29raWVNbmcuc2V0Q29va2llVmFsdWUoInV1aWRfcnN0Iix0aGlzLl9fcmVzZXRWLCIvIiw0RTMpKX1jYXRjaChkKXt0aGlzLmxvZ01zZygiVW5leHBlY3RlZCBlcnJvciBpbiBzY2hlZHVsZWQgcmVzZXQgY2hlY2s6ICIrZC5tZXNzYWdlKX1yZXR1cm4gYX0sZ2V0QWN0aXZlUHJvZmlsZWlkOmZ1bmN0aW9uKCl7aWYobnVsbCE9dGhpcy51aWQpcmV0dXJuIG51bGw9PXdpbmRvdy5hY3RpdmVQcm9maWxlSUQmJih3aW5kb3cuYWN0aXZlUHJvZmlsZUlEPXRoaXMudWlkKSx0aGlzLnVpZDtpZighMD09PWFjdGl2ZVVzZXJQcm9maWxlTW5nLmRpc2FibGVkKXJldHVybiBudWxsOwoJCXZhciBhPXRoaXMuY29va2llTW5nLnJlYWRDb29raWVWYWx1ZSgidXVpZCIpO2lmKG51bGwhPWEmJjA8YS5sZW5ndGgpcmV0dXJuIHRoaXMuYWN0aXZlUHJvZmlsZUlEPXRoaXMudWlkPWEsdGhpcy5fX2ZpcmVSZWFkeUV2ZW50KCksdGhpcy51aWQ7YT1hY3RpdmVVc2VyUHJvZmlsZU1uZy5jb29raWVNbmcucmVhZENvb2tpZVZhbHVlKCJ1dWlkX3ZsZDMiKTtpZihudWxsIT1hJiYwIT1hLmxlbmd0aCl7YWN0aXZlVXNlclByb2ZpbGVNbmcuX19sb2FkVXNlckRhdGFDb29raWUoKTthY3RpdmVVc2VyUHJvZmlsZU1uZy5lbnN1cmVWYWxpZElEKCk7aWYobnVsbCE9YWN0aXZlVXNlclByb2ZpbGVNbmcudWlkKXJldHVybiBhY3RpdmVVc2VyUHJvZmlsZU1uZy51aWQ7YWN0aXZlVXNlclByb2ZpbGVNbmcuX19sb2FkTG9jYWxTdG9yYWdlQ29va2llKCk7YWN0aXZlVXNlclByb2ZpbGVNbmcuZW5zdXJlVmFsaWRJRCgpO2lmKG51bGwhPWFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZClyZXR1cm4gYWN0aXZlVXNlclByb2ZpbGVNbmcudWlkOwoJCQlhY3RpdmVVc2VyUHJvZmlsZU1uZy5fX2xvYWRHbG9iYWxTdG9yYWdlQ29va2llKCk7YWN0aXZlVXNlclByb2ZpbGVNbmcuZW5zdXJlVmFsaWRJRCgpO2lmKG51bGwhPWFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZClyZXR1cm4gYWN0aXZlVXNlclByb2ZpbGVNbmcudWlkO2FjdGl2ZVVzZXJQcm9maWxlTW5nLl9fbG9hZFNlc3Npb25TdG9yYWdlQ29va2llKCk7YWN0aXZlVXNlclByb2ZpbGVNbmcuZW5zdXJlVmFsaWRJRCgpO2lmKG51bGwhPWFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZClyZXR1cm4gYWN0aXZlVXNlclByb2ZpbGVNbmcudWlkO2FjdGl2ZVVzZXJQcm9maWxlTW5nLl9fbG9hZEZyb21Mb2NhbERCKCk7YWN0aXZlVXNlclByb2ZpbGVNbmcuZW5zdXJlVmFsaWRJRCgpO2lmKG51bGwhPWFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZClyZXR1cm4gYWN0aXZlVXNlclByb2ZpbGVNbmcudWlkO2FjdGl2ZVVzZXJQcm9maWxlTW5nLl9fbG9hZEZMVkNvb2tpZSgpfWVsc2Ugc2V0VGltZW91dCgiYWN0aXZlVXNlclByb2ZpbGVNbmcuX19jb250aW51ZUxvYWQoMykiLAoJCQk1MDApO3JldHVybiBudWxsfSxlbnN1cmVWYWxpZElEOmZ1bmN0aW9uKCl7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBhY3RpdmVVc2VyUHJvZmlsZU1uZ3x8InN0cmluZyI9PXR5cGVvZiBhY3RpdmVVc2VyUHJvZmlsZU1uZy51aWQmJjA9PWFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZC5sZW5ndGgpYWN0aXZlVXNlclByb2ZpbGVNbmcudWlkPW51bGx9LHNldEFjdGl2ZVByb2ZpbGVpZDpmdW5jdGlvbigpe2lmKG51bGw9PWFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZHx8ITA9PT1hY3RpdmVVc2VyUHJvZmlsZU1uZy5kaXNhYmxlZClyZXR1cm4hMTthY3RpdmVVc2VyUHJvZmlsZU1uZy5zZXREQkNvb2tpZSgpO2FjdGl2ZVVzZXJQcm9maWxlTW5nLnNldFBOR0Nvb2tpZSgpO2FjdGl2ZVVzZXJQcm9maWxlTW5nLnNldEVUYWdDb29raWUoKTthY3RpdmVVc2VyUHJvZmlsZU1uZy5zZXRVc2VyRGF0YUNvb2tpZSgpO2FjdGl2ZVVzZXJQcm9maWxlTW5nLnNldExvY2FsU3RvcmFnZUNvb2tpZSgpO2FjdGl2ZVVzZXJQcm9maWxlTW5nLnNldEdsb2JhbFN0b3JhZ2VDb29raWUoKTsKCQlhY3RpdmVVc2VyUHJvZmlsZU1uZy5zZXRTZXNzaW9uU3RvcmFnZUNvb2tpZSgpO2FjdGl2ZVVzZXJQcm9maWxlTW5nLnNldEZMVkNvb2tpZSgpO2FjdGl2ZVVzZXJQcm9maWxlTW5nLl9fbm90aWZ5VVVJRCgpfSxfX2NvbnRpbnVlTG9hZDpmdW5jdGlvbihhKXtpZighMD09PWFjdGl2ZVVzZXJQcm9maWxlTW5nLmRpc2FibGVkKXJldHVybiExO2FjdGl2ZVVzZXJQcm9maWxlTW5nLmVuc3VyZVZhbGlkSUQoKTtpZihudWxsIT1hY3RpdmVVc2VyUHJvZmlsZU1uZy51aWQpYWN0aXZlVXNlclByb2ZpbGVNbmcuX19maXJlUmVhZHlFdmVudCgpO2Vsc2Ugc3dpdGNoKGEpe2Nhc2UgMTphY3RpdmVVc2VyUHJvZmlsZU1uZy5fX2xvYWRFVGFnQ29va2llKCk7YnJlYWs7Y2FzZSAyOmFjdGl2ZVVzZXJQcm9maWxlTW5nLl9fbG9hZFBOR0Nvb2tpZSgpO2JyZWFrO2RlZmF1bHQ6YWN0aXZlVXNlclByb2ZpbGVNbmcuX19maXJlTm90Rm91bmQoKX19LF9fZmlyZVJlYWR5RXZlbnQ6ZnVuY3Rpb24oKXtpZihudWxsIT0KCQlhY3RpdmVVc2VyUHJvZmlsZU1uZy5vbnJlYWR5KWFjdGl2ZVVzZXJQcm9maWxlTW5nLm9ucmVhZHkoYWN0aXZlVXNlclByb2ZpbGVNbmcudWlkKTthY3RpdmVVc2VyUHJvZmlsZU1uZy5fX25vdGlmeVVVSUQoKX0sX19maXJlTm90Rm91bmQ6ZnVuY3Rpb24oKXtpZihudWxsIT1hY3RpdmVVc2VyUHJvZmlsZU1uZy5vbm5vdGZvdW5kKWFjdGl2ZVVzZXJQcm9maWxlTW5nLm9ubm90Zm91bmQoKX0sc2V0RkxWQ29va2llOmZ1bmN0aW9uKCl7aWYobnVsbCE9YWN0aXZlVXNlclByb2ZpbGVNbmcudWlkJiYibm9uZSIhPWFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZCl7aWYoITA9PT1hY3RpdmVVc2VyUHJvZmlsZU1uZy5kaXNhYmxlZClyZXR1cm4hMTt0cnl7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBuYXZpZ2F0b3IucGx1Z2lucyYmIm9iamVjdCI9PXR5cGVvZiBuYXZpZ2F0b3IucGx1Z2luc1siU2hvY2t3YXZlIEZsYXNoIl18fHdpbmRvdy5BY3RpdmVYT2JqZWN0JiYwIT1uZXcgQWN0aXZlWE9iamVjdCgiU2hvY2t3YXZlRmxhc2guU2hvY2t3YXZlRmxhc2giKSl7aWYoIWFjdGl2ZVVzZXJQcm9maWxlTW5nLnN3ZlN0b3JlJiYKCQkoYWN0aXZlVXNlclByb2ZpbGVNbmcuc3dmU3RvcmU9ITAsInVuZGVmaW5lZCI9PXR5cGVvZiBTd2ZTdG9yZSkpe2FjdGl2ZVVzZXJQcm9maWxlTW5nLmFqYXhNbmcuZ2V0U2NyaXB0KCIvanMvc3dmc3RvcmUuanMiLGFjdGl2ZVVzZXJQcm9maWxlTW5nLnNldEZMVkNvb2tpZSk7cmV0dXJufXRyeXt2YXIgYT1uZXcgU3dmU3RvcmUoe25hbWVzcGFjZToidXByb2ZpbGUiLHN3Zl91cmw6Ii9mbGFzaC9zdG9yYWdlLnN3ZiIsb25yZWFkeTpmdW5jdGlvbigpe2Euc2V0KCJ1aWQiLGFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZCl9LG9uZXJyb3I6ZnVuY3Rpb24oKXt9fSl9Y2F0Y2goYil7InVuZGVmaW5lZCIhPXR5cGVvZiBjb25zb2xlJiZudWxsIT1jb25zb2xlJiZjb25zb2xlLmxvZyYmY29uc29sZS5sb2coIlVuYWJsZSB0byBzZXQgRkxWIENvb2tpZS4gRXJyb3I6ICIrYi5tZXNzYWdlKX19fWNhdGNoKGIpeyJ1bmRlZmluZWQiIT10eXBlb2YgY29uc29sZSYmbnVsbCE9Y29uc29sZSYmY29uc29sZS5sb2cmJgoJY29uc29sZS5sb2coIk1BSU46IFVuYWJsZSB0byBzZXQgRkxWIENvb2tpZS4gRXJyb3I6ICIrYi5tZXNzYWdlKX19fSxfX2xvYWRGTFZDb29raWU6ZnVuY3Rpb24oKXtpZihudWxsPT1hY3RpdmVVc2VyUHJvZmlsZU1uZy51aWQpe2lmKCEwPT09YWN0aXZlVXNlclByb2ZpbGVNbmcuZGlzYWJsZWQpcmV0dXJuITE7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBuYXZpZ2F0b3IucGx1Z2lucyYmIm9iamVjdCI9PXR5cGVvZiBuYXZpZ2F0b3IucGx1Z2luc1siU2hvY2t3YXZlIEZsYXNoIl18fHdpbmRvdy5BY3RpdmVYT2JqZWN0JiYwIT1uZXcgQWN0aXZlWE9iamVjdCgiU2hvY2t3YXZlRmxhc2guU2hvY2t3YXZlRmxhc2giKSl7aWYoIWFjdGl2ZVVzZXJQcm9maWxlTW5nLnN3ZlN0b3JlJiYoYWN0aXZlVXNlclByb2ZpbGVNbmcuc3dmU3RvcmU9ITAsInVuZGVmaW5lZCI9PXR5cGVvZiBTd2ZTdG9yZSkpe2FjdGl2ZVVzZXJQcm9maWxlTW5nLmFqYXhNbmcuZ2V0U2NyaXB0KCIvanMvc3dmc3RvcmUuanMiLAoJCWFjdGl2ZVVzZXJQcm9maWxlTW5nLl9fbG9hZEZMVkNvb2tpZSk7cmV0dXJufXRyeXt2YXIgYT1uZXcgU3dmU3RvcmUoe25hbWVzcGFjZToidXByb2ZpbGUiLHN3Zl91cmw6Ii9mbGFzaC9zdG9yYWdlLnN3ZiIsb25yZWFkeTpmdW5jdGlvbigpe3ZhciBiPWEuZ2V0KCJ1aWQiKTsidW5kZWZpbmVkIiE9dHlwZW9mIGImJm51bGwhPWImJihhY3RpdmVVc2VyUHJvZmlsZU1uZy51aWQ9Yik7YWN0aXZlVXNlclByb2ZpbGVNbmcuX19jb250aW51ZUxvYWQoMSl9LG9uZXJyb3I6ZnVuY3Rpb24oKXthY3RpdmVVc2VyUHJvZmlsZU1uZy5fX2NvbnRpbnVlTG9hZCgxKX19KX1jYXRjaChiKXt9fWVsc2UgYWN0aXZlVXNlclByb2ZpbGVNbmcuX19jb250aW51ZUxvYWQoMSl9fSxfX2xvYWRGcm9tTG9jYWxEQjpmdW5jdGlvbigpe2lmKG51bGw9PWFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZCl7aWYoITA9PT1hY3RpdmVVc2VyUHJvZmlsZU1uZy5kaXNhYmxlZClyZXR1cm4hMTt0cnl7d2luZG93Lm9wZW5EYXRhYmFzZSYmCglkYXRhYmFzZS50cmFuc2FjdGlvbihmdW5jdGlvbihhKXthLmV4ZWN1dGVTcWwoIlNFTEVDVCB2YWx1ZSBGUk9NIHVwcm9maWxlIFdIRVJFIG5hbWU9PyIsWyJ1aWQiXSxmdW5jdGlvbihiLGQpezE8PWQucm93cy5sZW5ndGgmJihhY3RpdmVVc2VyUHJvZmlsZU1uZy51aWQ9ZC5yb3dzLml0ZW0oMCkudmFsdWUpfSxmdW5jdGlvbihiLGQpe30pfSl9Y2F0Y2goYSl7fX19LHNldERCQ29va2llOmZ1bmN0aW9uKCl7aWYobnVsbCE9YWN0aXZlVXNlclByb2ZpbGVNbmcudWlkJiYibm9uZSIhPWFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZCl7aWYoITA9PT1hY3RpdmVVc2VyUHJvZmlsZU1uZy5kaXNhYmxlZClyZXR1cm4hMTt0cnl7aWYod2luZG93Lm9wZW5EYXRhYmFzZSl7dmFyIGE9d2luZG93Lm9wZW5EYXRhYmFzZSgic3FsaXRlX3Vwcm9maWxlIiwiIiwidXByb2ZpbGUiLDEwNDg1NzYpOyJ1bmRlZmluZWQiIT10eXBlb2YgdmFsdWUmJmEudHJhbnNhY3Rpb24oZnVuY3Rpb24oYil7Yi5leGVjdXRlU3FsKCJDUkVBVEUgVEFCTEUgSUYgTk9UIEVYSVNUUyB1cHJvZmlsZShpZCBJTlRFR0VSIE5PVCBOVUxMIFBSSU1BUlkgS0VZIEFVVE9JTkNSRU1FTlQsIHVpZCBURVhUIE5PVCBOVUxMLCB2YWx1ZSBURVhUIE5PVCBOVUxMLCBVTklRVUUgKHVpZCkpIiwKCQlbXSxmdW5jdGlvbihkLGMpe30sZnVuY3Rpb24oZCxjKXt9KTtiLmV4ZWN1dGVTcWwoIklOU0VSVCBPUiBSRVBMQUNFIElOVE8gdXByb2ZpbGUodWlkLCB2YWx1ZSkgVkFMVUVTKD8sID8pIixbInVpZCIsYWN0aXZlVXNlclByb2ZpbGVNbmcudWlkXSxmdW5jdGlvbihkLGMpe30sZnVuY3Rpb24oZCxjKXt9KX0pfX1jYXRjaChiKXt9fX0sX19sb2FkUE5HQ29va2llOmZ1bmN0aW9uKCl7aWYobnVsbD09YWN0aXZlVXNlclByb2ZpbGVNbmcudWlkKXtpZighMD09PWFjdGl2ZVVzZXJQcm9maWxlTW5nLmRpc2FibGVkKXJldHVybiExO3RyeXtpZihkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKS5nZXRDb250ZXh0KXt2YXIgYT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKTthLnN0eWxlLnZpc2liaWxpdHk9ImhpZGRlbiI7YS5zdHlsZS5wb3NpdGlvbj0iYWJzb2x1dGUiO2Eud2lkdGg9MjAwO2EuaGVpZ2h0PTE7dmFyIGI9YS5nZXRDb250ZXh0KCIyZCIpLGQ9bmV3IEltYWdlOwoJCWQuc3R5bGUudmlzaWJpbGl0eT0iaGlkZGVuIjtkLnN0eWxlLnBvc2l0aW9uPSJhYnNvbHV0ZSI7ZC5zcmM9Ii9pbWFnZXNfYXBpL2QyY2lnY2FjaGUxLnBuZyI7ZC5vbmVycm9yPWZ1bmN0aW9uKCl7YWN0aXZlVXNlclByb2ZpbGVNbmcuX19jb250aW51ZUxvYWQoMyl9O2Qub25sb2FkPWZ1bmN0aW9uKCl7dHJ5e2IuZHJhd0ltYWdlKGQsMCwwKTtmb3IodmFyIGM9Yi5nZXRJbWFnZURhdGEoMCwwLDIwMCwxKS5kYXRhLGU9IiIsaD0wLGY9Yy5sZW5ndGg7aDxmJiYwIT1jW2hdO2grPTQpe2UrPVN0cmluZy5mcm9tQ2hhckNvZGUoY1toXSk7aWYoMD09Y1toKzFdKWJyZWFrO2UrPVN0cmluZy5mcm9tQ2hhckNvZGUoY1toKzFdKTtpZigwPT1jW2grMl0pYnJlYWs7ZSs9U3RyaW5nLmZyb21DaGFyQ29kZShjW2grMl0pfTA8ZS5sZW5ndGgmJihhY3RpdmVVc2VyUHJvZmlsZU1uZy51aWQ9ZSl9Y2F0Y2gocSl7fWFjdGl2ZVVzZXJQcm9maWxlTW5nLl9fY29udGludWVMb2FkKDMpfX19Y2F0Y2goYyl7fX19LAoJc2V0UE5HQ29va2llOmZ1bmN0aW9uKCl7aWYobnVsbCE9YWN0aXZlVXNlclByb2ZpbGVNbmcudWlkJiYibm9uZSIhPWFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZCl7aWYoITA9PT1hY3RpdmVVc2VyUHJvZmlsZU1uZy5kaXNhYmxlZClyZXR1cm4hMTt2YXIgYT1uZXcgSW1hZ2U7YS5zdHlsZS52aXNpYmlsaXR5PSJoaWRkZW4iO2Euc3R5bGUucG9zaXRpb249ImFic29sdXRlIjthLnNyYz0iL2ltYWdlc19hcGkvZDJjaWdjYWNoZTEucG5nP3ZhbD0iK2FjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZH19LF9fbG9hZEVUYWdDb29raWU6ZnVuY3Rpb24oKXtpZihudWxsPT1hY3RpdmVVc2VyUHJvZmlsZU1uZy51aWQpe2lmKCEwPT09YWN0aXZlVXNlclByb2ZpbGVNbmcuZGlzYWJsZWQpcmV0dXJuITE7dGhpcy5hamF4TW5nLmFqYXgoe3VybDoiL2ltYWdlc19hcGkvZDJjaWdjYWNoZTIucG5nIix0eXBlOiJHRVQiLHN1Y2Nlc3M6ZnVuY3Rpb24oYSl7YWN0aXZlVXNlclByb2ZpbGVNbmcudWlkPWF9LAoJCWNvbXBsZXRlOmZ1bmN0aW9uKGEsYil7YWN0aXZlVXNlclByb2ZpbGVNbmcuX19jb250aW51ZUxvYWQoMil9fSl9fSxzZXRFVGFnQ29va2llOmZ1bmN0aW9uKCl7aWYobnVsbCE9YWN0aXZlVXNlclByb2ZpbGVNbmcudWlkJiYibm9uZSIhPWFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZCl7aWYoITA9PT1hY3RpdmVVc2VyUHJvZmlsZU1uZy5kaXNhYmxlZClyZXR1cm4hMTt2YXIgYT1uZXcgSW1hZ2U7YS5zdHlsZS52aXNpYmlsaXR5PSJoaWRkZW4iO2Euc3R5bGUucG9zaXRpb249ImFic29sdXRlIjthLnNyYz0iL2ltYWdlc19hcGkvZDJjaWdjYWNoZTIucG5nP3ZhbD0iK2FjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZH19LF9fbG9hZFVzZXJEYXRhQ29va2llOmZ1bmN0aW9uKCl7aWYobnVsbD09YWN0aXZlVXNlclByb2ZpbGVNbmcudWlkKXtpZighMD09PWFjdGl2ZVVzZXJQcm9maWxlTW5nLmRpc2FibGVkKXJldHVybiExO3RyeXt2YXIgYT10aGlzLmNyZWF0ZUVsZW0oImRpdiIsInVzZXJkYXRhX2VsIiwKCQkxKTthLnN0eWxlLmJlaGF2aW9yPSJ1cmwoI2RlZmF1bHQjdXNlckRhdGEpIjthLmxvYWQoInVpZCIpO2FjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZD1hLmdldEF0dHJpYnV0ZSgidWlkIil9Y2F0Y2goYil7fX19LHNldFVzZXJEYXRhQ29va2llOmZ1bmN0aW9uKCl7aWYobnVsbCE9YWN0aXZlVXNlclByb2ZpbGVNbmcudWlkJiYibm9uZSIhPWFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZCl7aWYoITA9PT1hY3RpdmVVc2VyUHJvZmlsZU1uZy5kaXNhYmxlZClyZXR1cm4hMTt0cnl7dmFyIGE9dGhpcy5jcmVhdGVFbGVtKCJkaXYiLCJ1c2VyZGF0YV9lbCIsMSk7YS5zdHlsZS5iZWhhdmlvcj0idXJsKCNkZWZhdWx0I3VzZXJEYXRhKSI7YS5zZXRBdHRyaWJ1dGUoInVpZCIsYWN0aXZlVXNlclByb2ZpbGVNbmcudWlkKTthLnNhdmUoInVpZCIpfWNhdGNoKGIpe319fSxfX2xvYWRMb2NhbFN0b3JhZ2VDb29raWU6ZnVuY3Rpb24oKXtpZihudWxsPT1hY3RpdmVVc2VyUHJvZmlsZU1uZy51aWQpe2lmKCEwPT09CgkJYWN0aXZlVXNlclByb2ZpbGVNbmcuZGlzYWJsZWQpcmV0dXJuITE7dHJ5e3dpbmRvdy5sb2NhbFN0b3JhZ2UmJihhY3RpdmVVc2VyUHJvZmlsZU1uZy51aWQ9bG9jYWxTdG9yYWdlLmdldEl0ZW0oInVpZCIpKX1jYXRjaChhKXt9fX0sc2V0TG9jYWxTdG9yYWdlQ29va2llOmZ1bmN0aW9uKCl7aWYobnVsbCE9YWN0aXZlVXNlclByb2ZpbGVNbmcudWlkJiYibm9uZSIhPWFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZCl7aWYoITA9PT1hY3RpdmVVc2VyUHJvZmlsZU1uZy5kaXNhYmxlZClyZXR1cm4hMTt0cnl7d2luZG93LmxvY2FsU3RvcmFnZSYmbG9jYWxTdG9yYWdlLnNldEl0ZW0oInVpZCIsYWN0aXZlVXNlclByb2ZpbGVNbmcudWlkKX1jYXRjaChhKXt9fX0sX19sb2FkR2xvYmFsU3RvcmFnZUNvb2tpZTpmdW5jdGlvbigpe2lmKG51bGw9PWFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZCl7aWYoITA9PT1hY3RpdmVVc2VyUHJvZmlsZU1uZy5kaXNhYmxlZClyZXR1cm4hMTt0cnl7aWYod2luZG93Lmdsb2JhbFN0b3JhZ2UpcmV0dXJuIHRoaXMuZ2V0SG9zdCgpLAoJCWV2YWwoImFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZCA9IGdsb2JhbFN0b3JhZ2VbaG9zdF0udWlkIil9Y2F0Y2goYSl7fX19LHNldEdsb2JhbFN0b3JhZ2VDb29raWU6ZnVuY3Rpb24oKXtpZihudWxsIT1hY3RpdmVVc2VyUHJvZmlsZU1uZy51aWQmJiJub25lIiE9YWN0aXZlVXNlclByb2ZpbGVNbmcudWlkKXtpZighMD09PWFjdGl2ZVVzZXJQcm9maWxlTW5nLmRpc2FibGVkKXJldHVybiExO3RyeXt3aW5kb3cuZ2xvYmFsU3RvcmFnZSYmKHRoaXMuZ2V0SG9zdCgpLGV2YWwoImdsb2JhbFN0b3JhZ2VbaG9zdF0udWlkID0gYWN0aXZlVXNlclByb2ZpbGVNbmcudWlkIikpfWNhdGNoKGEpe319fSxfX2xvYWRTZXNzaW9uU3RvcmFnZUNvb2tpZTpmdW5jdGlvbigpe2lmKG51bGw9PWFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZCl7aWYoITA9PT1hY3RpdmVVc2VyUHJvZmlsZU1uZy5kaXNhYmxlZClyZXR1cm4hMTt0cnl7d2luZG93LnNlc3Npb25TdG9yYWdlJiYoYWN0aXZlVXNlclByb2ZpbGVNbmcudWlkPQoJCXdpbmRvdy5zZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCJ1aWQiKSl9Y2F0Y2goYSl7fX19LHNldFNlc3Npb25TdG9yYWdlQ29va2llOmZ1bmN0aW9uKCl7aWYobnVsbCE9YWN0aXZlVXNlclByb2ZpbGVNbmcudWlkJiYibm9uZSIhPWFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZCl7aWYoITA9PT1hY3RpdmVVc2VyUHJvZmlsZU1uZy5kaXNhYmxlZClyZXR1cm4hMTt0cnl7d2luZG93LnNlc3Npb25TdG9yYWdlJiZ3aW5kb3cuc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSgidWlkIixhY3RpdmVVc2VyUHJvZmlsZU1uZy51aWQpfWNhdGNoKGEpe319fSxyZWdpc3RlclBhZ2VWaWV3OmZ1bmN0aW9uKCl7aWYoITA9PT1hY3RpdmVVc2VyUHJvZmlsZU1uZy5kaXNhYmxlZClyZXR1cm4hMDtudWxsPT1hY3RpdmVVc2VyUHJvZmlsZU1uZy5yZWdpc3RlcmVkUGFnZVZpZXdzJiYoYWN0aXZlVXNlclByb2ZpbGVNbmcucmVnaXN0ZXJlZFBhZ2VWaWV3cz1bXSk7Zm9yKHZhciBhPTA7YTxhY3RpdmVVc2VyUHJvZmlsZU1uZy5yZWdpc3RlcmVkUGFnZVZpZXdzLmxlbmd0aDthKyspaWYod2luZG93LmxvY2F0aW9uLmhyZWY9PQoJCWFjdGl2ZVVzZXJQcm9maWxlTW5nLnJlZ2lzdGVyZWRQYWdlVmlld3NbYV0pcmV0dXJuITE7YWN0aXZlVXNlclByb2ZpbGVNbmcucmVnaXN0ZXJlZFBhZ2VWaWV3cy5wdXNoKHdpbmRvdy5sb2NhdGlvbi5ocmVmKTtyZXR1cm4hMH0scmVnaXN0ZXJQYWdlVmlld0V2ZW50OmZ1bmN0aW9uKGEsYixkKXtpZighMD09PWFjdGl2ZVVzZXJQcm9maWxlTW5nLmRpc2FibGVkKXJldHVybiEwO2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgZHx8bnVsbD09ZClkPSIiO2E9YSsifHx8IitiKyJ8fHwiK2Q7bnVsbD09YWN0aXZlVXNlclByb2ZpbGVNbmcucmVnaXN0ZXJlZEV2ZW50cyYmKGFjdGl2ZVVzZXJQcm9maWxlTW5nLnJlZ2lzdGVyZWRFdmVudHM9W10pO2ZvcihiPTA7YjxhY3RpdmVVc2VyUHJvZmlsZU1uZy5yZWdpc3RlcmVkRXZlbnRzLmxlbmd0aDtiKyspaWYoYT09YWN0aXZlVXNlclByb2ZpbGVNbmcucmVnaXN0ZXJlZEV2ZW50c1tiXSlyZXR1cm4hMTthY3RpdmVVc2VyUHJvZmlsZU1uZy5yZWdpc3RlcmVkRXZlbnRzLnB1c2goYSk7CgkJcmV0dXJuITB9LGxvZ1BhZ2VWaWV3RXZlbnQ6ZnVuY3Rpb24oYSxiLGQpe2lmKCFhY3RpdmVVc2VyUHJvZmlsZU1uZy5faXNCb3QoKSl7aWYoITA9PT1hY3RpdmVVc2VyUHJvZmlsZU1uZy5kaXNhYmxlZClyZXR1cm4hMTtpZihhY3RpdmVVc2VyUHJvZmlsZU1uZy5yZWdpc3RlclBhZ2VWaWV3RXZlbnQoYSxiKSl7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBkfHxudWxsPT1kKWQ9IiI7aWYobnVsbD09YWN0aXZlVXNlclByb2ZpbGVNbmcuc2Vzc2lvbmlkfHwwPT1hY3RpdmVVc2VyUHJvZmlsZU1uZy5zZXNzaW9uaWQpYWN0aXZlVXNlclByb2ZpbGVNbmcucmVnaXN0ZXJTZXNzaW9uQ2FsbGJhY2soZnVuY3Rpb24oKXthY3RpdmVVc2VyUHJvZmlsZU1uZy5sb2dQYWdlVmlld0V2ZW50KGEsYixkKX0pO2Vsc2V7dmFyIGM9MDtpZigidW5kZWZpbmVkIj09dHlwZW9mIHdpbmRvdy5sYXN0Vmlld0lEKXt2YXIgZT1hY3RpdmVVc2VyUHJvZmlsZU1uZy5jb29raWVNbmcucmVhZENvb2tpZVZhbHVlKCJ1dmlldyIpOwoJCW51bGwhPWUmJihjPWUpfWVsc2UgYz13aW5kb3cubGFzdFBhZ2VWaWV3SUQ7InVuZGVmaW5lZCI9PXR5cGVvZiBjfHxudWxsPT1jfHwwPT1jP2NvbnNvbGUmJmNvbnNvbGUubG9nJiZjb25zb2xlLmxvZygiVW5hYmxlIHRvIGlkZW50aWZ5IGxhc3QgdmlldyBpZCIpOihlPWFjdGl2ZVVzZXJQcm9maWxlTW5nLmdldFN0YXRzVVJJKCksYz17c2lkOmFjdGl2ZVVzZXJQcm9maWxlTW5nLmdldFNlc3Npb25JRCgpLGFjdGlvbjoiZXZlbnQiLHZpZXdpZDpjLGV2ZW50OmEsZWNhdGVnb3J5OmIsYWRkZWRJbmZvOiJ1bmRlZmluZWQiIT10eXBlb2YgZD9kOiIifSxhY3RpdmVVc2VyUHJvZmlsZU1uZy5hamF4TW5nLmFqYXgoe3VybDplKyJzZXJ2aWNlL3Nlc3Npb25NbmcucGhwIix0eXBlOiJQT1NUIixkYXRhOmN9KSl9fX19LGxvZ1BhZ2VWaWV3RXg6ZnVuY3Rpb24oKXt0cnl7aWYoIWFjdGl2ZVVzZXJQcm9maWxlTW5nLl9pc0JvdCgpJiZhY3RpdmVVc2VyUHJvZmlsZU1uZy5yZWdpc3RlclBhZ2VWaWV3KCkpe2lmKCEwPT09CgkJYWN0aXZlVXNlclByb2ZpbGVNbmcuZGlzYWJsZWQpcmV0dXJuITE7dmFyIGE9bnVsbDsidW5kZWZpbmVkIiE9dHlwZW9mIGdldFVybFZhcnMmJihhPWdldFVybFZhcnMoKSk7Z2V0Q3VzdG9tVlJCPWZ1bmN0aW9uKGssdyl7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBjdXN0b21fdmFyaWFibGVzJiZudWxsIT1jdXN0b21fdmFyaWFibGVzKWZvcih2YXIgdSBpbiBjdXN0b21fdmFyaWFibGVzKXtpZih1Lm5hbWU9PWspcmV0dXJuIHUudmFsdWV9ZWxzZSByZXR1cm4gd307Z2V0Q0tWYWx1ZT1mdW5jdGlvbihrLHcpe3ZhciB1PWdldEN1c3RvbVZSQihrLG51bGwpO2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgdSYmbnVsbCE9dSlyZXR1cm4gdTt1PWFjdGl2ZVVzZXJQcm9maWxlTW5nLmNvb2tpZU1uZy5yZWFkQ29va2llVmFsdWUoayk7cmV0dXJuInVuZGVmaW5lZCI9PXR5cGVvZiB1fHxudWxsPT11P251bGw9PWF8fCJ1bmRlZmluZWQiPT10eXBlb2YgYVtrXT8idW5kZWZpbmVkIj09dHlwZW9mIHc\/CgkJIiI6dzphW2tdOnV9O2dldFVSTFZhbHVlPWZ1bmN0aW9uKGssdyl7az1rLnJlcGxhY2UoL1tcW10vLCJcXFsiKS5yZXBsYWNlKC9bXF1dLywiXFxdIik7az0obmV3IFJlZ0V4cCgiW1xcPyZdIitrKyI9KFteJiNdKikiKSkuZXhlYyh3aW5kb3cubG9jYXRpb24uaHJlZik7az1udWxsPT1rP251bGw6a1sxXTtyZXR1cm4idW5kZWZpbmVkIj09dHlwZW9mIGt8fG51bGw9PWt8fDA9PWsudG9TdHJpbmcoKS5sZW5ndGg\/dzprfTt2YXIgYj0iIixkPTAsYz0iRlJFTkNIIixlPWRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJzY3JpcHQiKSxoPWZ1bmN0aW9uKGspe3ZhciB3PXttYWtlOiIiLG1vZGVsOiIiLHllYXI6IiIscHJpY2U6MCxzaXRlaWQ6MCxkZWFsZXJpZDowLGxhbmd1YWdlOiJGUkVOQ0gifTtpZighaylyZXR1cm4gdztrPWsuc3BsaXQoL1s7Jl0vKTtmb3IodmFyIHU9MDt1PGsubGVuZ3RoO3UrKyl7dmFyIEI9a1t1XS5zcGxpdCgiPSIpO2lmKEImJjI9PUIubGVuZ3RoKXt2YXIgRT0KCQl1bmVzY2FwZShCWzBdKTtCPXVuZXNjYXBlKEJbMV0pO0I9Qi5yZXBsYWNlKC9cKy9nLCIgIik7d1tFXT1CfX1yZXR1cm4gd307aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBlJiZudWxsIT1lKWZvcih2YXIgZj0wO2Y8ZS5sZW5ndGg7ZisrKXt2YXIgcT1lW2ZdO2lmKC0xIT1xLnNyYy5pbmRleE9mKCIvdXBsaWdodC5qcz8iKSl7dmFyIHA9cS5zcmMucmVwbGFjZSgvXlteXD9dK1w\/Py8sIiIpLHk9aChwKTt2YXIgbD15Lm1ha2U7dmFyIEM9eS5tb2RlbDtiPXkueWVhcjt2YXIgQT15LnNpdGVpZDt2YXIgej15LmRlYWxlcmlkO2Q9eS5wcmljZTtjPXkubGFuZ3VhZ2U7YnJlYWt9fXZhciBtPWFjdGl2ZVVzZXJQcm9maWxlTW5nLmdldFNlc3Npb25JRCgpO2U9MDtpZigidW5kZWZpbmVkIj09bXx8MD09bSl7bT0wO3ZhciByPWFjdGl2ZVVzZXJQcm9maWxlTW5nLmNvb2tpZU1uZy5yZWFkQ29va2llVmFsdWUoInVzaWRfdG1wIik7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiByfHxudWxsPT1yKXt2YXIgeD0KCQluZXcgRGF0ZTt4LnNldFRpbWUoeC5nZXRUaW1lKCkrNzJFNSk7dmFyIGc9IjsgZXhwaXJlcz0iK3gudG9HTVRTdHJpbmcoKTtkb2N1bWVudC5jb29raWU9InVzaWRfdG1wPTEiK2crIjsgcGF0aD0vIn1lbHNlIGU9ITB9dmFyIG49d2luZG93LmxvY2F0aW9uLmhyZWY7aWYoLTE8bi5pbmRleE9mKCJzdGVwPXJlc3VtZSIpKXt2YXIgdD1hY3RpdmVVc2VyUHJvZmlsZU1uZy5jb29raWVNbmcucmVhZENvb2tpZVZhbHVlKCJzZXNzaWQiKTtuKz0iJnNlc3NpZD0iKygidW5kZWZpbmVkIiE9dHlwZW9mIHR8fG51bGwhPXQ\/dDoiTlVMTCIpfXZhciB2PXtzaWQ6bSx1dWlkOndpbmRvdy5hY3RpdmVQcm9maWxlSUQsc2l0ZWlkOkEsZGVhbGVyaWQ6eix1dG1Tb3VyY2U6Z2V0VVJMVmFsdWUoInV0bV9zb3VyY2UiLCIiKSx1dG1DYW1wYWlnbjpnZXRVUkxWYWx1ZSgidXRtX2NhbXBhaWduIiwib3JnYW5pYyIpLHV0bUtleXdvcmQ6Z2V0Q0tWYWx1ZSgidXRtX2tleXdvcmQiKSx1dG1MYW5kaW5nOmdldENLVmFsdWUoInV0bV9sYW5kaW5nIiksCgkJdXRtU291cmNlUmV0YXJnZXRpbmc6Z2V0Q0tWYWx1ZSgidXRtX3NvdXJjZV9yZXRhcmdldGluZyIpLHV0bUNhbXBhaWduUmV0YXJnZXRpbmc6Z2V0Q0tWYWx1ZSgidXRtX2NhbXBhaWduX3JldGFyZ2V0aW5nIiksbWFrZTpsLG1vZGVsOkMseWVhcjppc05hTihiKT8obmV3IERhdGUpLmdldEZ1bGxZZWFyKCk6YixsYW5ndWFnZTpjLHBhZ2U6InVuZGVmaW5lZCI9PXR5cGVvZiB3aW5kb3cuYWN0aXZlUGFnZT8iIjp3aW5kb3cuYWN0aXZlUGFnZSxwcmljZTpkLHNsb29rdXA6ZSxocmVmOm59LEQ9YWN0aXZlVXNlclByb2ZpbGVNbmcuZ2V0U3RhdHNVUkkoKTt2PUpTT04uc3RyaW5naWZ5KHYpO3Y9di5yZXBsYWNlQWxsKCIvIiwiXFwvIik7dGhpcy5hamF4TW5nLmFqYXgoe3VybDpEKyJzZXJ2aWNlL3Nlc3Npb25NbmcucGhwIixkYXRhOnYsZG9uZTpmdW5jdGlvbihrKXt0cnl7aWYoInN0cmluZyI9PXR5cGVvZiBrJiYoaz1KU09OLnBhcnNlKGspKSwidW5kZWZpbmVkIiE9dHlwZW9mIGsmJgoJCW51bGwhPWsmJihrLmNvbnN0cnVjdG9yPT1bXS5jb25zdHJ1Y3Rvcnx8ay5jb25zdHJ1Y3Rvcj09e30uY29uc3RydWN0b3IpKXttPWsuc2Vzc2lvbmlkO2xhc3RWaWV3SUQ9ay52aWV3aWQ7YWN0aXZlVXNlclByb2ZpbGVNbmcuX2xvYWRQcm9wZXJ0aWVzKGsucHJvcGVydGllcyk7d2luZG93LmFjdGl2ZVNlc3Npb25JRD1tO3dpbmRvdy5sYXN0UGFnZVZpZXdJRD1sYXN0Vmlld0lEO2FjdGl2ZVVzZXJQcm9maWxlTW5nLnNlc3Npb25pZD1tO3ZhciB3PW5ldyBEYXRlO3cuc2V0VGltZSh3LmdldFRpbWUoKSs3MkU1KTt2YXIgdT0iOyBleHBpcmVzPSIrdy50b0dNVFN0cmluZygpO2RvY3VtZW50LmNvb2tpZT0idXNpZD0iK20rdSsiOyBwYXRoPS8iO2RvY3VtZW50LmNvb2tpZT0idXZpZXc9IitsYXN0Vmlld0lEK3UrIjsgcGF0aD0vIjthY3RpdmVVc2VyUHJvZmlsZU1uZy5fZGVsZXRlQ29va2llKCJ1c2lkX3RtcCIpO2FjdGl2ZVVzZXJQcm9maWxlTW5nLl9fbm90aWZ5U2Vzc2lvbklEKCl9fWNhdGNoKEIpe310cnl7bnVsbCE9CgkJc2l0ZVdlYnNvY2tldExpc3RlbmVyLnNpdGVpZCYmc2l0ZVdlYnNvY2tldExpc3RlbmVyLmNvbm5lY3QoKX1jYXRjaChCKXt9fX0pfX1jYXRjaChrKXtjb25zb2xlJiZjb25zb2xlLmxvZyYmY29uc29sZS5sb2coIlVuYWJsZSB0byBzdGF0IHBhZ2UgZHVlIHRvIGVycm9yOiAiK2subWVzc2FnZSl9fSxsb2dQYWdlVmlldzpmdW5jdGlvbigpe3RyeXtpZighYWN0aXZlVXNlclByb2ZpbGVNbmcuX2lzQm90KCkmJmFjdGl2ZVVzZXJQcm9maWxlTW5nLnJlZ2lzdGVyUGFnZVZpZXcoKSl7aWYoITA9PT1hY3RpdmVVc2VyUHJvZmlsZU1uZy5kaXNhYmxlZClyZXR1cm4hMTtpZighMT09PWFjdGl2ZVVzZXJQcm9maWxlTW5nLmpxdWVyeUFjdGl2ZSlyZXR1cm4gdGhpcy5sb2dQYWdlVmlld0V4KCk7dmFyIGE9ZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInNjcmlwdCIpO2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgYSYmbnVsbCE9YSlmb3IodmFyIGI9MDtiPGEubGVuZ3RoO2IrKylpZigtMSE9CgkJYVtiXS5zcmMuaW5kZXhPZigiL3VwbGlnaHQuanM\/IikpcmV0dXJuIHRoaXMubG9nUGFnZVZpZXdFeCgpO3ZhciBkPW51bGw7InVuZGVmaW5lZCIhPXR5cGVvZiBnZXRVcmxWYXJzJiYoZD1nZXRVcmxWYXJzKCkpO2dldEN1c3RvbVZSQj1mdW5jdGlvbihnLG4pe2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgY3VzdG9tX3ZhcmlhYmxlcyYmbnVsbCE9Y3VzdG9tX3ZhcmlhYmxlcylmb3IodmFyIHQgaW4gY3VzdG9tX3ZhcmlhYmxlcyl7aWYodC5uYW1lPT1nKXJldHVybiB0LnZhbHVlfWVsc2UgcmV0dXJuIG59O2dldENLVmFsdWU9ZnVuY3Rpb24oZyxuKXt2YXIgdD1udWxsO3RyeXt2YXIgdj1nZXRDdXN0b21WUkIoZyxudWxsKTsidW5kZWZpbmVkIiE9dHlwZW9mIHYmJm51bGwhPXYmJih0PXYpO2lmKG51bGw9PXQmJih0PWFjdGl2ZVVzZXJQcm9maWxlTW5nLmNvb2tpZU1uZy5yZWFkQ29va2llVmFsdWUoZyksbnVsbD09dCkpe2lmKG51bGw9PWR8fCJ1bmRlZmluZWQiPT10eXBlb2YgZFtnXSlyZXR1cm4idW5kZWZpbmVkIj09Cgl0eXBlb2Ygbj8iIjpuO3Q9ZFtnXX19Y2F0Y2goRCl7Y29uc29sZSYmY29uc29sZS5sb2cmJmNvbnNvbGUubG9nKCJVbmV4cGVjdGVkIGVycm9yIHJldHJpZXZpbmcgY2tWYWx1ZSAtLSAlcyIsRC5tZXNzYWdlKX1yZXR1cm4gdH07Z2V0VVJMVmFsdWU9ZnVuY3Rpb24oZyxuKXtnPWcucmVwbGFjZSgvW1xbXS8sIlxcWyIpLnJlcGxhY2UoL1tcXV0vLCJcXF0iKTtnPShuZXcgUmVnRXhwKCJbXFw\/Jl0iK2crIj0oW14mI10qKSIpKS5leGVjKHdpbmRvdy5sb2NhdGlvbi5ocmVmKTtnPW51bGw9PWc\/bnVsbDpnWzFdO3JldHVybiJ1bmRlZmluZWQiPT10eXBlb2YgZ3x8bnVsbD09Z3x8MD09Zy50b1N0cmluZygpLmxlbmd0aD9uOmd9O2E9ZnVuY3Rpb24oKXtpZighMT09PWFjdGl2ZVVzZXJQcm9maWxlTW5nLmpxdWVyeUFjdGl2ZSlyZXR1cm5bXTt2YXIgZz1bXTt0cnl7dmFyIG49W10sdD1mdW5jdGlvbihrLHcpe3JldHVybiJ1bmRlZmluZWQiIT10eXBlb2YgJCgiIyIraykuYXR0cigiaWQiKSYmCgkoaz0kKCIjIitrKS52YWwoKSwic3RyaW5nIj09dHlwZW9mIGsmJjA8ay5sZW5ndGgmJi0xPT1rLmluZGV4T2YoIiMjIikpP2s6d307bi5wdXNoKCJwb3B1cCIpO24ucHVzaCgicGhvbmUiKTtuLnB1c2goImxhc3R2aWV3ZWQiKTtuLnB1c2goImV4cHJlc3NjYXIiKTtmb3IodmFyIHY9MDt2PG4ubGVuZ3RoO3YrKyl7dmFyIEQ9dChuW3ZdKyJtYWtlIixudWxsKTtpZihudWxsIT1EKXtnLnB1c2goRCk7Zy5wdXNoKHQoblt2XSsibW9kZWwiLG51bGwpKTtnLnB1c2godChuW3ZdKyJ5ZWFyIixudWxsKSk7YnJlYWt9fX1jYXRjaChrKXtnPVtdLGcucHVzaCgiIiksZy5wdXNoKCIiKSxnLnB1c2goIiIpfTA9PWcubGVuZ3RoJiZnLnB1c2goIiIpOzE9PWcubGVuZ3RoJiZnLnB1c2goIiIpOzI9PWcubGVuZ3RoJiZnLnB1c2goIiIpO3JldHVybiBnfTt2YXIgYz1iPSIiLGU9IiI7dHJ5e3ZhciBoPWEoKTtiPTA8aC5sZW5ndGg\/aFswXTpiO2M9MTxoLmxlbmd0aD9oWzFdOmM7ZT0yPGgubGVuZ3RoPwoJCWhbMl06ZX1jYXRjaChnKXtlPWM9Yj0iIn10cnl7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBzZWFyY2hDcml0ZXJpYSYmbnVsbCE9c2VhcmNoQ3JpdGVyaWEpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgYnx8bnVsbD09Ynx8MD09Yi5sZW5ndGgpYj0tMT09c2VhcmNoQ3JpdGVyaWEubWFrZT8iIjpzZWFyY2hDcml0ZXJpYS5tYWtlO2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgY3x8bnVsbD09Y3x8MD09Yy5sZW5ndGgpYz0tMT09c2VhcmNoQ3JpdGVyaWEubW9kZWw\/IiI6c2VhcmNoQ3JpdGVyaWEubW9kZWw7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBlfHxudWxsPT1lfHwwPT1lLmxlbmd0aCllPS0xPT1zZWFyY2hDcml0ZXJpYS55ZWFyPyIiOnNlYXJjaENyaXRlcmlhLnllYXJ9aWYobnVsbD09Ynx8MD09Yi5sZW5ndGgpInVuZGVmaW5lZCIhPXR5cGVvZiBtYWtlJiZudWxsIT1tYWtlJiYwPG1ha2UubGVuZ3RoJiYiMCIhPW1ha2U\/Yj1tYWtlOihiPSQoIiNwb3B1cG1ha2UiKS52YWwoKSwidW5kZWZpbmVkIj09Cgl0eXBlb2YgYiYmKGI9JCgiI2FjdGl2ZU1ha2UiKS52YWwoKSksInVuZGVmaW5lZCI9PXR5cGVvZiBiJiYoYj0kKCIjY2FyTWFrZSIpLnZhbCgpKSwidW5kZWZpbmVkIj09dHlwZW9mIGImJihiPSQoJ2lucHV0W25hbWU9Im1ha2UiXScpLnZhbCgpKSwidW5kZWZpbmVkIj09dHlwZW9mIGImJihiPWdldENLVmFsdWUoIm1ha2UiLCIiKSkpO2lmKG51bGw9PWN8fDA9PWMubGVuZ3RoKSJ1bmRlZmluZWQiIT10eXBlb2YgbW9kZWwmJm51bGwhPW1vZGVsJiYwPG1vZGVsLmxlbmd0aCYmIjAiIT1tb2RlbD9jPW1vZGVsOihjPSQoIiNwb3B1cG1vZGVsIikudmFsKCksInVuZGVmaW5lZCI9PXR5cGVvZiBjJiYoYz0kKCIjYWN0aXZlTW9kZWwiKS52YWwoKSksInVuZGVmaW5lZCI9PXR5cGVvZiBjJiYoYz0kKCIjY2FyTW9kZWwiKS52YWwoKSksInVuZGVmaW5lZCI9PXR5cGVvZiBjJiYoYz0kKCdpbnB1dFtuYW1lPSJtb2RlbCJdJykudmFsKCkpLCJ1bmRlZmluZWQiPT10eXBlb2YgYyYmKGM9Z2V0Q0tWYWx1ZSgibW9kZWwiLAoJCSIiKSkpO2lmKG51bGw9PWV8fDA9PWUubGVuZ3RoKSJ1bmRlZmluZWQiIT10eXBlb2YgeWVhciYmbnVsbCE9eWVhciYmIWlzTmFOKHllYXIpJiYwPHllYXIubGVuZ3RoJiYiMCIhPXllYXI\/ZT15ZWFyOihlPSQoIiNwb3B1cHllYXIiKS52YWwoKSwidW5kZWZpbmVkIj09dHlwZW9mIGUmJihlPSQoIiNhY3RpdmVZZWFyIikudmFsKCkpLCJ1bmRlZmluZWQiPT10eXBlb2YgZSYmKGU9JCgiI2NhclllYXIiKS52YWwoKSksInVuZGVmaW5lZCI9PXR5cGVvZiBlJiYoZT0kKCIjeWVhciIpLnZhbCgpKSwidW5kZWZpbmVkIj09dHlwZW9mIGUmJihlPSQoJ2lucHV0W25hbWU9InltYXhUZXh0Il0nKS52YWwoKSksInVuZGVmaW5lZCI9PXR5cGVvZiBlJiYoZT0kKCdpbnB1dFtuYW1lPSJ5bWluVGV4dCJdJykudmFsKCkpLCJ1bmRlZmluZWQiPT10eXBlb2YgZSYmKGU9Z2V0Q0tWYWx1ZSgieWVhciIsKG5ldyBEYXRlKS5nZXRGdWxsWWVhcigpKSkpfWNhdGNoKGcpe2NvbnNvbGUmJmNvbnNvbGUubG9nJiYKCWNvbnNvbGUubG9nKCJVbmV4cGVjdGVkIGVycm9yIGlkZW50aWZ5aW5nIG1ha2UtbW9kZWwteWVhcjogIitnLm1lc3NhZ2UpLG51bGw9PWImJihiPSIiKSxudWxsPT1jJiYoYz0iIiksbnVsbD09ZSYmKGU9IiIpfXZhciBmPTA7aWYoITEhPT1hY3RpdmVVc2VyUHJvZmlsZU1uZy5qcXVlcnlBY3RpdmUpe2lmKCJVU0VEQ0FSUyI9PXdpbmRvdy5hY3RpdmVQYWdlKXt2YXIgcT0wOyQoImRpdi5ib3gxNzAgZGl2Lm1haW5fcGljYm94IGRpdi5ib3gyX2RldGFpbHNfbWlkIGRpdi5ib3gyX2RldGFpbHNfdGV4dCBzcGFuIikuZWFjaChmdW5jdGlvbigpe3ZhciBnPSQodGhpcykudGV4dCgpOy0xIT1nLmluZGV4T2YoIiQiKSYmKHErKyxmKz1wYXJzZUludChnLnJlcGxhY2UoIiQiLCIiKS5yZXBsYWNlKCIsIiwiIikpKX0pO2Y9MDxxP2YvcTowO2lzTmFOKGYpJiYoZj0wKX0wIT1mJiYhaXNOYU4oZil8fCJ1bmRlZmluZWQiPT10eXBlb2YgJCgiI2N1cnJlbnRDYXJQcmljZSIpLmF0dHIoImlkIil8fAoJKGY9cGFyc2VJbnQoJCgiI2N1cnJlbnRDYXJQcmljZSIpLnZhbCgpLnJlcGxhY2UoIiQiLCIiKS5yZXBsYWNlKCIsIiwiIikpKTswIT1mJiYhaXNOYU4oZil8fCJ1bmRlZmluZWQiPT10eXBlb2YgJCgiI2NhcnByaWNlIikuYXR0cigiaWQiKXx8KGY9cGFyc2VJbnQoJCgiI2NhcnByaWNlIikudmFsKCkucmVwbGFjZSgiJCIsIiIpLnJlcGxhY2UoIiwiLCIiKSkpOzAhPWYmJiFpc05hTihmKXx8InVuZGVmaW5lZCI9PXR5cGVvZiAkKCIjY2FyUHJpY2UiKS5hdHRyKCJpZCIpfHwoZj1wYXJzZUludCgkKCIjY2FyUHJpY2UiKS52YWwoKS5yZXBsYWNlKCIkIiwiIikucmVwbGFjZSgiLCIsIiIpKSk7MCE9ZiYmIWlzTmFOKGYpfHwidW5kZWZpbmVkIj09dHlwZW9mICQoIiNleHByZXNzY2FycHJpY2UiKS5hdHRyKCJpZCIpfHwoZj1wYXJzZUludCgkKCIjZXhwcmVzc2NhcnByaWNlIikudmFsKCkucmVwbGFjZSgiJCIsIiIpLnJlcGxhY2UoIiwiLCIiKSkpOzAhPWYmJiFpc05hTihmKXx8InVuZGVmaW5lZCI9PQoJdHlwZW9mICQoIiNjYXJwcm9vZmNhcnByaWNlIikuYXR0cigiaWQiKXx8KGY9cGFyc2VJbnQoJCgiI2NhcnByb29mY2FycHJpY2UiKS52YWwoKS5yZXBsYWNlKCIkIiwiIikucmVwbGFjZSgiLCIsIiIpKSk7MCE9ZiYmIWlzTmFOKGYpfHwidW5kZWZpbmVkIj09dHlwZW9mICQoIiNzZWFyY2hSZXN1bHRzQXZnUHJpY2UiKS5hdHRyKCJpZCIpfHwoZj1wYXJzZUludCgkKCIjc2VhcmNoUmVzdWx0c0F2Z1ByaWNlIikudmFsKCkucmVwbGFjZSgiJCIsIiIpLnJlcGxhY2UoIiwiLCIiKSkpOzAhPWYmJiFpc05hTihmKXx8InVuZGVmaW5lZCI9PXR5cGVvZiAkKCdpbnB1dFtuYW1lPSJwbWluIl0nKS5hdHRyKCJpZCIpfHwoZj1wYXJzZUludCgkKCdpbnB1dFtuYW1lPSJwbWluIl0nKS52YWwoKS5yZXBsYWNlKCIkIiwiIikucmVwbGFjZSgiLCIsIiIpKSk7MCE9ZiYmIWlzTmFOKGYpfHwidW5kZWZpbmVkIj09dHlwZW9mICQoJ2lucHV0W25hbWU9InBtYXgiXScpLmF0dHIoImlkIil8fChmPXBhcnNlSW50KCQoJ2lucHV0W25hbWU9InBtYXgiXScpLnZhbCgpLnJlcGxhY2UoIiQiLAoJCSIiKS5yZXBsYWNlKCIsIiwiIikpKTswIT1mJiYhaXNOYU4oZil8fCJ1bmRlZmluZWQiPT10eXBlb2YgJCgiI2NhclByaWNlIikuYXR0cigiaWQiKXx8KGY9JCgiI2NhclByaWNlIikuaGFzQ2xhc3MoImJveDJfZGV0YWlsc190ZXh0MjUiKT9wYXJzZUludCgkKCIjY2FyUHJpY2UiKS5jaGlsZHJlbigiOmZpcnN0IikudGV4dCgpLnJlcGxhY2UoIiQiLCIiKS5yZXBsYWNlKCIsIiwiIikpOnBhcnNlSW50KCQoIiNjYXJQcmljZSIpLnRleHQoKS5yZXBsYWNlKCIkIiwiIikucmVwbGFjZSgiLCIsIiIpKSk7aXNOYU4oZikmJihmPTApO3ZhciBwPTAseT0wOyJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93LmFjdGl2ZVNpdGVJRCYmbnVsbCE9d2luZG93LmFjdGl2ZVNpdGVJRCYmMCE9d2luZG93LmFjdGl2ZVNpdGVJRD9wPXdpbmRvdy5hY3RpdmVTaXRlSUQ6KHA9JCgiI3NpdGVJRCIpLnZhbCgpLCJ1bmRlZmluZWQiPT10eXBlb2YgcCYmKHA9JCgiI3RvcHNpdGVpZCIpLnZhbCgpKSwidW5kZWZpbmVkIj09Cgl0eXBlb2YgcCYmKHA9MCkpOyJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93LmFjdGl2ZURlYWxlcklEJiYoeT13aW5kb3cuYWN0aXZlU2l0ZUlEKTt2YXIgbD1hY3RpdmVVc2VyUHJvZmlsZU1uZy5nZXRTZXNzaW9uSUQoKSxDPTA7aWYoInVuZGVmaW5lZCI9PWx8fDA9PWx8fCIwIj09bClpZihsPTAsInVuZGVmaW5lZCI9PXR5cGVvZiAkLmNvb2tpZSgidXNpZF90bXAiKSl7dmFyIEE9bmV3IERhdGU7QS5zZXRUaW1lKEEuZ2V0VGltZSgpKzcyRTUpO3ZhciB6PSI7IGV4cGlyZXM9IitBLnRvR01UU3RyaW5nKCk7ZG9jdW1lbnQuY29va2llPSJ1c2lkX3RtcD0xIit6KyI7IHBhdGg9LyJ9ZWxzZSBDPSEwO3ZhciBtPXdpbmRvdy5sb2NhdGlvbi5ocmVmOy0xPG0uaW5kZXhPZigic3RlcD1yZXN1bWUiKSYmKG0rPSImc2Vzc2lkPSIrKCJ1bmRlZmluZWQiIT10eXBlb2YgJC5jb29raWUoInNlc3NpZCIpPyQuY29va2llKCJzZXNzaWQiKToiTlVMTCIpKX12YXIgcj17c2lkOmwsdXVpZDphY3RpdmVVc2VyUHJvZmlsZU1uZy5nZXRBY3RpdmVQcm9maWxlaWQoKSwKCQlzaXRlaWQ6cCxkZWFsZXJpZDp5LHV0bVNvdXJjZTpnZXRVUkxWYWx1ZSgidXRtX3NvdXJjZSIsIiIpLHV0bUNhbXBhaWduOmdldFVSTFZhbHVlKCJ1dG1fY2FtcGFpZ24iLCJvcmdhbmljIiksdXRtS2V5d29yZDpnZXRDS1ZhbHVlKCJ1dG1fa2V5d29yZCIpLHV0bUxhbmRpbmc6Z2V0Q0tWYWx1ZSgidXRtX2xhbmRpbmciKSx1dG1Tb3VyY2VSZXRhcmdldGluZzpnZXRDS1ZhbHVlKCJ1dG1fc291cmNlX3JldGFyZ2V0aW5nIiksdXRtQ2FtcGFpZ25SZXRhcmdldGluZzpnZXRDS1ZhbHVlKCJ1dG1fY2FtcGFpZ25fcmV0YXJnZXRpbmciKSxtYWtlOmIsbW9kZWw6Yyx5ZWFyOmlzTmFOKGUpPyhuZXcgRGF0ZSkuZ2V0RnVsbFllYXIoKTplLGxhbmd1YWdlOiQoIiNhY3RpdmVzaXRlbGFuZ3VhZ2UiKS52YWwoKSxwYWdlOiJ1bmRlZmluZWQiPT10eXBlb2Ygd2luZG93LmFjdGl2ZVBhZ2U\/IiI6d2luZG93LmFjdGl2ZVBhZ2UscHJpY2U6ZixzbG9va3VwOkMsaHJlZjptfSx4PWFjdGl2ZVVzZXJQcm9maWxlTW5nLmdldFN0YXRzVVJJKCk7CgkJcj1KU09OLnN0cmluZ2lmeShyKTtyPXIucmVwbGFjZUFsbCgiLyIsIlxcLyIpO3RoaXMuYWpheE1uZy5hamF4KHt0eXBlOiJQT1NUIix1cmw6eCsic2VydmljZS9zZXNzaW9uTW5nLnBocCIsY29udGVudFR5cGU6ImFwcGxpY2F0aW9uL2pzb247IGNoYXJzZXQ9dXRmLTgiLGRhdGE6cixkb25lOmZ1bmN0aW9uKGcpeyJzdHJpbmciPT10eXBlb2YgZyYmKGc9SlNPTi5wYXJzZShnKSk7InVuZGVmaW5lZCI9PXR5cGVvZiBnfHxudWxsPT1nfHxnLmNvbnN0cnVjdG9yIT1bXS5jb25zdHJ1Y3RvciYmZy5jb25zdHJ1Y3RvciE9e30uY29uc3RydWN0b3J8fChsPWcuc2Vzc2lvbmlkLGxhc3RWaWV3SUQ9Zy52aWV3aWQsYWN0aXZlVXNlclByb2ZpbGVNbmcuX2xvYWRQcm9wZXJ0aWVzKGcucHJvcGVydGllcyksd2luZG93LmFjdGl2ZVNlc3Npb25JRD1sLHdpbmRvdy5sYXN0UGFnZVZpZXdJRD1sYXN0Vmlld0lELGFjdGl2ZVVzZXJQcm9maWxlTW5nLnNlc3Npb25pZD1sLGFjdGl2ZVVzZXJQcm9maWxlTW5nLmNvb2tpZU1uZy5zZXRDb29raWVWYWx1ZSgidXNpZCIsCgkJCQlsLCIvIiwyKSxhY3RpdmVVc2VyUHJvZmlsZU1uZy5jb29raWVNbmcuc2V0Q29va2llVmFsdWUoInV2aWV3IixsYXN0Vmlld0lELCIvIiwyKSxhY3RpdmVVc2VyUHJvZmlsZU1uZy5jb29raWVNbmcuZGVsZXRlQ29va2llKCJ1c2lkX3RtcCIpLGFjdGl2ZVVzZXJQcm9maWxlTW5nLl9fbm90aWZ5U2Vzc2lvbklEKCkpfSxmYWlsOmZ1bmN0aW9uKGcsbix0KXtjb25zb2xlJiZjb25zb2xlLmxvZyYmY29uc29sZS5sb2coIlVuYWJsZSB0byBsb2cgcGFnZSB2aWV3LiBFcnJvcjogIit0Lm1lc3NhZ2UpfSxhbHdheXM6ZnVuY3Rpb24oKXt9fSl9fWNhdGNoKGcpe2NvbnNvbGUmJmNvbnNvbGUubG9nJiZjb25zb2xlLmxvZygiVW5hYmxlIHRvIHN0YXQgcGFnZSBkdWUgdG8gZXJyb3I6ICIrZy5tZXNzYWdlKX19LF9sb2FkUHJvcGVydGllczpmdW5jdGlvbihhKXt0cnl7InVuZGVmaW5lZCIhPXR5cGVvZiBhJiZudWxsIT1hJiYoYWN0aXZlVXNlclByb2ZpbGVNbmcuX19wcm9wZXJ0aWVzPWEsYWN0aXZlVXNlclByb2ZpbGVNbmcucGFnZVZpZXdDb3VudD0KCQlhLnBhZ2V2aWV3cyl9Y2F0Y2goYil7fX0sZ2V0UHJvcGVydHk6ZnVuY3Rpb24oYSxiKXtyZXR1cm4idW5kZWZpbmVkIj09dHlwZW9mIGFjdGl2ZVVzZXJQcm9maWxlTW5nLl9fcHJvcGVydGllc3x8bnVsbD09YWN0aXZlVXNlclByb2ZpbGVNbmcuX19wcm9wZXJ0aWVzP251bGw6InVuZGVmaW5lZCI9PXR5cGVvZiBhY3RpdmVVc2VyUHJvZmlsZU1uZy5fX3Byb3BlcnRpZXNbYV0\/InVuZGVmaW5lZCIhPXR5cGVvZiBiP2I6IiI6YWN0aXZlVXNlclByb2ZpbGVNbmcuX19wcm9wZXJ0aWVzW2FdfSxhZGRQcm9wZXJ0eTpmdW5jdGlvbihhLGIsZCl7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBhfHxudWxsPT1hfHwwPT1hLmxlbmd0aHx8InVuZGVmaW5lZCI9PXR5cGVvZiBifHxudWxsPT1ifHwidW5kZWZpbmVkIj09dHlwZW9mIHdpbmRvdy5hY3RpdmVQcm9maWxlSUQpcmV0dXJuIG51bGw7InVuZGVmaW5lZCI9PXR5cGVvZiBkJiYoZD0iVVBEQVRFIik7YWN0aXZlVXNlclByb2ZpbGVNbmcuZ2V0U3RhdHNVUkkoKTsKCQl0aGlzLmFqYXhNbmcuYWpheCh7dHlwZToiR0VUIixhY3Rpb246ImFkZHByb3BlcnR5Iix1dWlkOmFjdGl2ZVVzZXJQcm9maWxlTW5nLmdldEFjdGl2ZVByb2ZpbGVpZCgpLHNpZDphY3RpdmVVc2VyUHJvZmlsZU1uZy5nZXRTZXNzaW9uSUQoKSxwbmFtZTphLHB2YWx1ZTpiLHBtb2RlOmR9KTtyZXR1cm4hMH0sdGFnQnJvd3NlcjpmdW5jdGlvbihhLGIpe3RyeXt2YXIgZD1hLGM9dGhpcztpZighMD09PWFjdGl2ZVVzZXJQcm9maWxlTW5nLmRpc2FibGVkKXJldHVybiExO2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgYXx8bnVsbD09YSlkPWZ1bmN0aW9uKGgpe3RyeXt2YXIgZj1uZXcgU3RyaW5nKGgpO2Y9Zi50cmltKCk7aWYoMDxmLmxlbmd0aCl7Yy5sb2dNc2coIlRhZ2dlZCB3aXRoIHV1aWQgPT4gIitmKTt2YXIgcT1jLmdldEFjdGl2ZVByb2ZpbGVpZCgpO2FjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZD1mLnRyaW0oKTtudWxsIT1xJiYidW5kZWZpbmVkIiE9dHlwZW9mIHEubGVuZ3RoJiYKCTA8cS5sZW5ndGgmJmFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZCE9cSYmYy5jb29raWVNbmcuc2V0Q29va2llVmFsdWUoInV1aWRfdjEiLHEsIi8iLDE4MCk7Yy5jb29raWVNbmcuc2V0Q29va2llVmFsdWUoInV1aWQiLGFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZCwiLyIsNUUzKTtjLmNvb2tpZU1uZy5zZXRDb29raWVWYWx1ZSgidXVpZF92bGQzIiwhMCwiLyIsNUUzKTtjLnNldEFjdGl2ZVByb2ZpbGVpZCgpfX1jYXRjaChwKXtjLmxvZ01zZygiVW5leHBlY3RlZCBlcnJvciByZXR1cm5lZCBmcm9tIHRhZ2dpbmc6ICIrcC5tZXNzYWdlKX19O3RoaXMubG9nTXNnKCJHZW5lcmF0aW5nIGZpbmdlcnByaW50Iik7dmFyIGU9dGhpcy5nZXRGUFVSSSgpO2MuYWpheE1uZy5nZXRTY3JpcHQoZSxmdW5jdGlvbigpe3RyeXt2YXIgaD1mdW5jdGlvbihsKXt0cnl7Yy5sb2dNc2coIkZpbmdlcnByaW50ZWQ6ICIrbCk7dmFyIEM9Yy5nZXRBY3RpdmVQcm9maWxlaWQoKSxBPWVuY29kZVVSSSh3aW5kb3cubG9jYXRpb24ub3JpZ2luKTsKCQlpZigidW5kZWZpbmVkIj09dHlwZW9mIGx8fG51bGw9PWwpcmV0dXJuITE7dmFyIHo9ITE7YWN0aXZlVXNlclByb2ZpbGVNbmcuaXNEMkNTaXRlJiYzPT13aW5kb3cuYWN0aXZlU2l0ZUlEJiYoej0hMCk7Yy5jb29raWVNbmcuc2V0Q29va2llVmFsdWUoInV1ZnAiLGwsIi8iLDVFMyk7dmFyIG09e2Q6QSxmcDE6bC5zdWJzdHJpbmcoMCw4KSxmcDI6bC5zdWJzdHJpbmcoOCwxNiksZnAzOmwuc3Vic3RyaW5nKDE2LDI0KSxmcDQ6bC5zdWJzdHJpbmcoMjQsMzIpLHVpZDpDLGFjdGlvbjoidXBncmFkZWZwIixkYm06eix2OmFjdGl2ZVVzZXJQcm9maWxlTW5nLl9fcmVzZXRWfSxyPWFjdGl2ZVVzZXJQcm9maWxlTW5nLmdldFN0YXRzVVJJKCk7Yy5sb2dNc2cocisic2VydmljZS9kMmMudXBncmFkZS52Ni5mcC5qcyIpO2MubG9nTXNnKEpTT04uc3RyaW5naWZ5KG0pKTtjLmFqYXhNbmcuYWpheCh7dXJsOnIrInNlcnZpY2UvZDJjLnVwZ3JhZGUudjYuZnAuanMiLHR5cGU6IkdFVCIsZGF0YTptLAoJCQlkb25lOmZ1bmN0aW9uKHgpe3RyeXtjLmxvZ01zZygiVVVJRCBhZnRlciB1cHJvZmlsZSB1cGRhdGU6ICIreCksInVuZGVmaW5lZCIhPXR5cGVvZiBkJiZudWxsIT1kP2QoeCk6Yy5jb29raWVNbmcuc2V0Q29va2llVmFsdWUoInV1aWQiLHgsIi8iLDVFMyksInVuZGVmaW5lZCIhPXR5cGVvZiBiJiZudWxsIT1iJiZiKCl9Y2F0Y2goZyl7fX19KX1jYXRjaCh4KXtjLmxvZ01zZygiVW5leHBlY3RlZCBlcnJvciBleGVjdXRpbmcgdGFnTWUgc3RlcDogIit4Lm1lc3NhZ2UpfX0sZj0hMTt0cnl7bmF2aWdhdG9yLnVzZXJBZ2VudC5pbmRleE9mKCJXaW4iKSxuYXZpZ2F0b3IudXNlckFnZW50LmluZGV4T2YoIk1hYyIpLG5hdmlnYXRvci51c2VyQWdlbnQuaW5kZXhPZigiTGludXgiKSxuYXZpZ2F0b3IudXNlckFnZW50LmluZGV4T2YoIkFuZHJvaWQiKSwtMSE9bmF2aWdhdG9yLnVzZXJBZ2VudC5pbmRleE9mKCJsaWtlIE1hYyIpJiYoZj0hMCksbG9jYXRpb24ucHJvdG9jb2wuaW5kZXhPZigiaHR0cHMiKX1jYXRjaChsKXt9dmFyIHE9CgkJe3ByZXByb2Nlc3NvcjpudWxsLGF1ZGlvOnt0aW1lb3V0OjFFMyxleGNsdWRlSU9TMTE6Zn0sZm9udHM6e3N3ZkNvbnRhaW5lcklkOiJkY3RrZGl2ZnAyIixzd2ZQYXRoOiJmbGFzaC9jb21waWxlZC9Gb250TGlzdC5zd2YiLHVzZXJEZWZpbmVkRm9udHM6W10sZXh0ZW5kZWRKc0ZvbnRzOiExfSxzY3JlZW46e2RldGVjdFNjcmVlbk9yaWVudGF0aW9uOiEwfSxwbHVnaW5zOntzb3J0UGx1Z2luc0ZvcjpbL3BhbGVtb29uL2ldLGV4Y2x1ZGVJRTohMX0sZXh0cmFDb21wb25lbnRzOltdLE5PVF9BVkFJTEFCTEU6Im5vdCBhdmFpbGFibGUiLEVSUk9SOiJlcnJvciIsRVhDTFVERUQ6ImV4Y2x1ZGVkIn0scD0hMTtudWxsIT13aW5kb3cmJm51bGwhPXdpbmRvdy5sb2NhdGlvbiYmInVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3cubG9jYXRpb24uaHJlZiYmKC0xPHdpbmRvdy5sb2NhdGlvbi5ocmVmLmluZGV4T2YoImQyY2RlYnVnPTEiKXx8LTEhPXdpbmRvdy5sb2NhdGlvbi5ocmVmLmluZGV4T2YoImNybTIuZDJjbWVkaWEuY2EiKSkmJgoJKHA9ITApO3ZhciB5PWZ1bmN0aW9uKGwpe3RyeXt2YXIgQz1mdW5jdGlvbih6KXt6PXoubWFwKGZ1bmN0aW9uKG0pe3ZhciByPSIiO3RyeXtzd2l0Y2gocCYmY29uc29sZS5sb2cobS5rZXkudG9Mb3dlckNhc2UoKSksbS5rZXkudG9Mb3dlckNhc2UoKSl7Y2FzZSAiY2FudmFzIjpjYXNlICJ3ZWJnbCI6Y2FzZSAiYWRibG9jayI6cj0iIjticmVhaztjYXNlICJ1c2VyYWdlbnQiOmlmKDA8bS52YWx1ZS5sZW5ndGgmJi0xIT1tLnZhbHVlLmluZGV4T2YoIiAiKSlmb3IodmFyIHg9bS52YWx1ZS5zcGxpdCgiICIpLGc9MDtnPHgubGVuZ3RoO2crKyl7dmFyIG49eFtnXTtpZigtMSE9bi5pbmRleE9mKCIvIikpe3ZhciB0PW4uc3BsaXQoIi8iKTtyKz10WzBdfWVsc2UtMT09bi5pbmRleE9mKCIuIikmJihyKz1uKX1wJiZjb25zb2xlLmxvZygiVXNlciBBZ2VudCAtLSAiK3IpO2JyZWFrO2RlZmF1bHQ6InVuZGVmaW5lZCIhPXR5cGVvZiBBcnJheS5pc0FycmF5JiZBcnJheS5pc0FycmF5KG0udmFsdWUpfHwKCW0udmFsdWUuY29uc3RydWN0b3I9PT1BcnJheT8obS52YWx1ZS5zb3J0KCkscj1tLnZhbHVlLmpvaW4oKSk6cj1tLnZhbHVlfX1jYXRjaCh2KXtjb25zb2xlJiZjb25zb2xlLmxvZyYmY29uc29sZS5sb2coIkZQIEZhaWxlZCAtLSAlcyAtICVvIix2Lm1lc3NhZ2UsbSl9aWYoInVuZGVmaW5lZCI9PXR5cGVvZiByfHxudWxsPT1yKXI9IiI7cmV0dXJuIHJ9KTt6LnNvcnQoKTtyZXR1cm4gen0obCk7cCYmY29uc29sZS5sb2coInRvIGhhc2g6ICVvIixDKTt2YXIgQT1GaW5nZXJwcmludDIueDY0aGFzaDEyOChDLmpvaW4oIiIpLDMxKTtwJiZjb25zb2xlLmxvZygiRlAgPT4gJXMiLEEpO2goQSk7Yy5sb2dNc2coIkZpbmdlcnByaW50OiAiK0EpfWNhdGNoKHope2NvbnNvbGUmJmNvbnNvbGUubG9nJiZjb25zb2xlLmxvZygiRlAyIEZhaWxlZCAtLSAlcyIsei5tZXNzYWdlKX19O3dpbmRvdy5yZXF1ZXN0SWRsZUNhbGxiYWNrP3JlcXVlc3RJZGxlQ2FsbGJhY2soZnVuY3Rpb24oKXt0cnl7RmluZ2VycHJpbnQyLmdldChxLAoJCXkpfWNhdGNoKGwpe2MubG9nTXNnKCIxLlVuYWJsZSB0byBpbnN0YW50aWF0ZSBGUDIuIEVycm9yOiAiK2wubWVzc2FnZSl9fSk6c2V0VGltZW91dChmdW5jdGlvbigpe3RyeXtGaW5nZXJwcmludDIuZ2V0KHEseSl9Y2F0Y2gobCl7Yy5sb2dNc2coIjIuVW5hYmxlIHRvIGluc3RhbnRpYXRlIEZQMi4gRXJyb3I6ICIrbC5tZXNzYWdlKX19LDUwMCl9Y2F0Y2gobCl7Yy5sb2dNc2coIlVuZXhwZWN0ZWQgZXJyb3IgZXhlY3V0aW5nIGZpcnN0IHN0ZXA6ICIrbC5tZXNzYWdlKX19KX1jYXRjaChoKXtjLmxvZ01zZygiVW5leHBlY3RlZCBlcnJvciBleGVjdXRpbmcgZmlyc3Qgc3RlcDogIitoLm1lc3NhZ2UpfX0sdXBkYXRlRlA6ZnVuY3Rpb24oKXt0cnl7aWYoITA9PT1hY3RpdmVVc2VyUHJvZmlsZU1uZy5kaXNhYmxlZClyZXR1cm4hMTt0aGlzLmxvZ01zZygiU3RhcnRpbmcgU2FmYXJpIFJ1biIpO2lmKCExPT09dGhpcy5yZXNldFNlY29uZFBhc3Mpe3RoaXMucmVzZXRTZWNvbmRQYXNzPQoJCSEwO3RoaXMubG9nTXNnKCJTdGFydGluZyBmaXJzdCBwYXNzIik7dmFyIGE9dGhpcy5jb29raWVNbmcucmVhZENvb2tpZVZhbHVlKCJ1dWlkIiksYj10aGlzLmNvb2tpZU1uZy5yZWFkQ29va2llVmFsdWUoInV1aWRfaW9zXzIiKTt0aGlzLmxvZ01zZygiVVVJRC4gIithKyIgLS0gSU9TUkVTRVQuICIrYik7bnVsbD09YXx8bnVsbD09Yj8odGhpcy5sb2dNc2coIkRyb3BwaW5nIHJlc2V0IGNvb2tpZSIpLHRoaXMuY29va2llTW5nLnNldENvb2tpZVZhbHVlKCJ1dWlkX2lvc18yIiwxLCIvIiw1RTMpLHRoaXMudGFnQnJvd3NlcihudWxsKSk6KHRoaXMubG9nTXNnKCJTZWNvbmQgcGFzcywgbm90aGluZyB0byBkbyIpLHdpbmRvdy5fX19kMmNDVEtNZXRob2QoKSl9ZWxzZSB3aW5kb3cuX19fZDJjQ1RLTWV0aG9kKCl9Y2F0Y2goZCl7dGhpcy5sb2dNc2coIlVuZXhwZWN0ZWQgZXJyb3IgdXBkYXRpbmcgbW9iaWxlIGNvb2tpZTogIitkLm1lc3NhZ2UpfX19Owp3aW5kb3cuX19fZDJjQ1RLTWV0aG9kPWZ1bmN0aW9uKCl7dHJ5e2lmKCFhY3RpdmVVc2VyUHJvZmlsZU1uZy5faXNCb3QoKSYmITAhPT1hY3RpdmVVc2VyUHJvZmlsZU1uZy5kaXNhYmxlZCl7YWN0aXZlVXNlclByb2ZpbGVNbmcuanF1ZXJ5QWN0aXZlPXdpbmRvdy5qUXVlcnk\/ITA6ITE7dmFyIGE9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRvcHNpdGVpZCIpO2lmKG51bGw9PWF8fCJ1bmRlZmluZWQiPT10eXBlb2YgYS52YWx1ZXx8aXNOYU4oYS52YWx1ZSkpYWN0aXZlVXNlclByb2ZpbGVNbmcubG9nTXNnKCJMb2FkaW5nIGZwc3lzdGVtIG9uIG5vbiBkMmMgd2Vic2l0ZSIpLGFjdGl2ZVVzZXJQcm9maWxlTW5nLmlzRDJDU2l0ZT0hMTtlbHNlIHRyeXt3aW5kb3cuYWN0aXZlU2l0ZUlEPXBhcnNlSW50KGEudmFsdWUpfWNhdGNoKHApe3dpbmRvdy5hY3RpdmVTaXRlSUQ9dm9pZCAwfXZhciBiPWFjdGl2ZVVzZXJQcm9maWxlTW5nLmNoZWNrU2NoZWR1bGVkUmVzZXQoKSxkPWFjdGl2ZVVzZXJQcm9maWxlTW5nLmNvb2tpZU1uZy5yZWFkQ29va2llVmFsdWUoInVzaWQiKTsKCWlmKCJ1bmRlZmluZWQiPT10eXBlb2Ygd2luZG93LmFjdGl2ZVNlc3Npb25JRHx8bnVsbD09d2luZG93LmFjdGl2ZVNlc3Npb25JRCl3aW5kb3cuYWN0aXZlU2Vzc2lvbklEPTA7bnVsbD09ZHx8aXNOYU4oZCl8fCh3aW5kb3cuYWN0aXZlU2Vzc2lvbklEPWQpO2FjdGl2ZVVzZXJQcm9maWxlTW5nLmNvb2tpZU1uZy5kZWxldGVDb29raWUoInV1aWRfdmxkIik7dmFyIGM9YWN0aXZlVXNlclByb2ZpbGVNbmcuZ2V0U3RhdHNVUkkoKSxlPWZ1bmN0aW9uKCl7dHJ5eyJ1bmRlZmluZWQiPT10eXBlb2Ygd2luZG93LnN0YXRFeGVjdXRlZCYmKCJ1bmRlZmluZWQiIT10eXBlb2YgYWN0aXZlVXNlclByb2ZpbGVNbmcmJm51bGwhPWFjdGl2ZVVzZXJQcm9maWxlTW5nJiYidW5kZWZpbmVkIiE9dHlwZW9mIGFjdGl2ZVVzZXJQcm9maWxlTW5nLmxvZ1BhZ2VWaWV3PyhhY3RpdmVVc2VyUHJvZmlsZU1uZy5sb2dQYWdlVmlldygpLHdpbmRvdy5zdGF0RXhlY3V0ZWQ9ITApOmFjdGl2ZVVzZXJQcm9maWxlTW5nLmFqYXhNbmcuYWpheCh7dXJsOmMrCgkJCSJzZXJ2aWNlL3Nlc3Npb25NbmcucGhwIix0eXBlOiJHRVQiLGRhdGE6e2FjdGlvbjoidW5rbm93biIsbXNnOiIxLkVpdGhlciBhY3RpdmVVc2VyUHJvZmlsZU1uZyBpcyBub3QgZGVmaW5lZCBvciBsb2dQYWdlVmlldyBpcyBub3QgZGVmaW5lZCJ9fSkpfWNhdGNoKHApe2FjdGl2ZVVzZXJQcm9maWxlTW5nLmxvZ01zZyhwLm1lc3NhZ2UpLGFjdGl2ZVVzZXJQcm9maWxlTW5nLmFqYXhNbmcuYWpheCh7dXJsOmMrInNlcnZpY2Uvc2Vzc2lvbk1uZy5waHAiLHR5cGU6IkdFVCIsZGF0YTp7YWN0aW9uOiJ1bmtub3duIixtc2c6cC5tZXNzYWdlfX0pfX0saD1hY3RpdmVVc2VyUHJvZmlsZU1uZy5jb29raWVNbmcucmVhZENvb2tpZVZhbHVlKCJ1dWlkIiksZj1udWxsPT1ofHwwPT1oLmxlbmd0aD8hMTohMDtoPWFjdGl2ZVVzZXJQcm9maWxlTW5nLmNvb2tpZU1uZy5yZWFkQ29va2llVmFsdWUoInV1aWRfdmxkMyIpO3ZhciBxPW51bGw9PWh8fDA9PWgubGVuZ3RoPyExOiEwO2lmKCFiJiZmJiYKCQlxKXthY3RpdmVVc2VyUHJvZmlsZU1uZy5yZWdpc3RlckNhbGxiYWNrKGUpO2lmKCJ1bmRlZmluZWQiPT10eXBlb2Ygd2luZG93LmFjdGl2ZVByb2ZpbGVJRHx8bnVsbD09d2luZG93LmFjdGl2ZVByb2ZpbGVJRCl3aW5kb3cuYWN0aXZlUHJvZmlsZUlEPWFjdGl2ZVVzZXJQcm9maWxlTW5nLmdldEFjdGl2ZVByb2ZpbGVpZCgpO2FjdGl2ZVVzZXJQcm9maWxlTW5nLl9fbm90aWZ5VVVJRCgpfWVsc2UgYWN0aXZlVXNlclByb2ZpbGVNbmcuc2Vzc2lvbmlkPW51bGwsd2luZG93LmFjdGl2ZVNlc3Npb25JRD1udWxsLGFjdGl2ZVVzZXJQcm9maWxlTW5nLnRhZ0Jyb3dzZXIobnVsbCxmdW5jdGlvbigpe2FjdGl2ZVVzZXJQcm9maWxlTW5nLnJlZ2lzdGVyQ2FsbGJhY2soZSl9KX19Y2F0Y2gocCl7Yz1hY3RpdmVVc2VyUHJvZmlsZU1uZy5nZXRTdGF0c1VSSSgpLGFjdGl2ZVVzZXJQcm9maWxlTW5nLmFqYXhNbmcuX2dldChjKyJzZXJ2aWNlL3Nlc3Npb25NbmcucGhwP2FjdGlvbj11bmtub3duJm1zZz0yLiIrCgllbmNvZGVVUklDb21wb25lbnQocC5tZXNzYWdlKSksY29uc29sZSYmY29uc29sZS5sb2cmJmNvbnNvbGUubG9nKCIxLiBVbmV4cGVjdGVkIGVycm9yIG9jY3VyZWQgbG9hZGluZyB1cHJvZmlsZS5maW5hbC5qcy4gRXJyb3I6ICIrcC5tZXNzYWdlKX19Owp0cnl7bGV0IGE9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI2Rpc2FibGVJbnRlcm5hbFNlc3Npb24iKTtpZihudWxsIT1hJiYiMSI9PWEudmFsdWUpe2FjdGl2ZVVzZXJQcm9maWxlTW5nLmRpc2FibGVkPSEwO2FjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZD1udWxsO2xldCBiPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiN0b3BzaXRlaWQiKTtudWxsIT1iJiYoYj1wYXJzZUludChiLnZhbHVlKSk7aXNOYU4oYil8fDIzNSE9Yj8oYWN0aXZlVXNlclByb2ZpbGVNbmcuY29va2llTW5nLmRlbGV0ZUNvb2tpZSgidXVpZCIpLGFjdGl2ZVVzZXJQcm9maWxlTW5nLmNvb2tpZU1uZy5kZWxldGVDb29raWUoInVpZCIpLGFjdGl2ZVVzZXJQcm9maWxlTW5nLmNvb2tpZU1uZy5kZWxldGVDb29raWUoInV1aWRfcnN0IiksYWN0aXZlVXNlclByb2ZpbGVNbmcuY29va2llTW5nLmRlbGV0ZUNvb2tpZSgidXNpZCIpLGFjdGl2ZVVzZXJQcm9maWxlTW5nLmNvb2tpZU1uZy5kZWxldGVDb29raWUoInV2aWV3IiksCglhY3RpdmVVc2VyUHJvZmlsZU1uZy5jb29raWVNbmcuZGVsZXRlQ29va2llKCJ1c2lkIiksYWN0aXZlVXNlclByb2ZpbGVNbmcuY29va2llTW5nLmRlbGV0ZUNvb2tpZSgidXNpZF90bXAiKSxhY3RpdmVVc2VyUHJvZmlsZU1uZy5jb29raWVNbmcuZGVsZXRlQ29va2llKCJ1dWlkX3YxIiksYWN0aXZlVXNlclByb2ZpbGVNbmcuY29va2llTW5nLmRlbGV0ZUNvb2tpZSgidXVpZF92bGQzIiksYWN0aXZlVXNlclByb2ZpbGVNbmcuY29va2llTW5nLmRlbGV0ZUNvb2tpZSgidXVmcCIpLGFjdGl2ZVVzZXJQcm9maWxlTW5nLmNvb2tpZU1uZy5kZWxldGVDb29raWUoInV1aWRfaW9zXzIiKSk6Y29uc29sZS5sb2coImJ5cGFzc2luZyBjb29raWUgcHVyZ2UiKX1lbHNlImxvYWRpbmciIT1kb2N1bWVudC5yZWFkeVN0YXRlP3dpbmRvdy5fX19kMmNDVEtNZXRob2QoKTpkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyP2RvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIkRPTUNvbnRlbnRMb2FkZWQiLHdpbmRvdy5fX19kMmNDVEtNZXRob2QpOgoJZG9jdW1lbnQuYXR0YWNoRXZlbnQoIm9ucmVhZHlzdGF0ZWNoYW5nZSIsZnVuY3Rpb24oKXsiY29tcGxldGUiPT1kb2N1bWVudC5yZWFkeVN0YXRlJiZ3aW5kb3cuX19fZDJjQ1RLTWV0aG9kKCl9KX1jYXRjaChhKXtjb25zb2xlJiZjb25zb2xlLmxvZyYmY29uc29sZS5sb2coIjUuIFVuZXhwZWN0ZWQgZXJyb3Igb2NjdXJlZCBsb2FkaW5nIHVwcm9maWxlLmZpbmFsLmpzLiBFcnJvcjogIithLm1lc3NhZ2UpfTsKLyoqIC9qcy9wb3B1cC5qcyAqKi8KdmFyIF9fX2QyY19wb3B1cGpzX2Nfb249IjIwMjUtMDUtMjMgMTc6MTE6MjciOyd1c2Ugc3RyaWN0Jzt2YXIgX19fZDJjX3BvcHVwanNfY19vbj0iMjAyNC0wMy0xNSAxMDozMDoxMCI7InVzZSBzdHJpY3QiO3ZhciBhY3RpdmF0ZWRQb3B1cERpdklEPSIiLG1haW5Qb3B1cERpdklEPSIiLHBvcHVwT25BZnRlclN1Ym1pdENsb3NlPSExLGlzUG9wdXBJbml0aWFsaXplZD0hMTsKZnVuY3Rpb24gc2hvd1BvcHVwV2lkZ2V0KGEsYj0hMCl7dmFyIGM9ITE9PT1iPyExOiEwO2lmKGlzU21zVGV4dFVzRm9ybSgpJiZiKXJldHVybiBzaG93U21zVGV4dFVzRm9ybShjKSwhMTtpZighMT09PWlzUG9wdXBJbml0aWFsaXplZClyZXR1cm4hMTthPWE\/YTp7fTtzZXR0aW5ncz17c2hvd01haW5Qb3B1cDohMSxkb05vdFJlZGlyZWN0OiExLGV2ZW50VHlwZToiY2xpY2siLGRlbGF5OiExfTskLmV4dGVuZChzZXR0aW5ncyxhKTthPXNldHRpbmdzLmRvTm90UmVkaXJlY3Q7Yj1zZXR0aW5ncy5ldmVudFR5cGU7Yz1zZXR0aW5ncy5kZWxheTt2YXIgZD0wPGFjdGl2YXRlZFBvcHVwRGl2SUQubGVuZ3RoP2FjdGl2YXRlZFBvcHVwRGl2SUQ6ITE7ITA9PT1zZXR0aW5ncy5zaG93TWFpblBvcHVwJiYwPG1haW5Qb3B1cERpdklELmxlbmd0aCYmKGQ9bWFpblBvcHVwRGl2SUQpO2lmKGQmJjA8ZC5sZW5ndGgpJCgiIyIrZCkucG9wdXBpemUoKS5zZXRUcmlnZ2VyKGIpLm9wZW4oYyk7ZWxzZSBpZigiZnVuY3Rpb24iPT09CnR5cGVvZiBzaG93UG9wdXBXaWRnZXRPTEQpc2hvd1BvcHVwV2lkZ2V0T0xEKCExKTtlbHNlIGlmKCExPT09YSkwPCQoIiNwcm9tb1NlY3Rpb25uYWJsZWQiKS5sZW5ndGgmJiIwIiE9JCgiI3Byb21vU2VjdGlvbm5hYmxlZCIpLnZhbCgpP3dpbmRvdy5sb2NhdGlvbi5ocmVmPSJFTkdMSVNIIj09JCgiI2FjdGl2ZXNpdGVsYW5ndWFnZSIpLnZhbCgpPyIvb3VyLXByb21vdGlvbnMuaHRtbCI6Ii9wcm9tb3Rpb25zLmh0bWwiOndpbmRvdy5sb2NhdGlvbi5ocmVmPSIvIjtlbHNlIHJldHVybiExfWZ1bmN0aW9uIHBvcHVwUG9zdE1lc3NhZ2VPbkF1dG9hdWJhaW5lKCl7c2V0VGltZW91dChmdW5jdGlvbigpeyQucG9zdE1lc3NhZ2UoImNsb3NlUG9wdXAiLCIqIixwYXJlbnQpfSwxRTMpfQpmdW5jdGlvbiBwb3B1cERlZmF1bHRPbkFmdGVySW5pdGlhbGl6ZShhLGIsYyxkLGUsZixnKXtpc1BvcHVwSW5pdGlhbGl6ZWQ9ITA7YyYmKG1haW5Qb3B1cERpdklEPWYrZCk7cmV0dXJuIGI9PWEmJmN8fCJyZXNldCI9PWImJmM\/KGFjdGl2YXRlZFBvcHVwRGl2SUQ9ZitkLCJ1c2VkY2Fycy5odG1sIiE9ZXx8Zz8ibmV3Y2Fycy5odG1sIiE9ZXx8Zz8hMDooY29uc29sZS5sb2coInBvcHVwLmpzIHBvcHVwRGVmYXVsdE9uQWZ0ZXJJbml0aWFsaXplIC0gbmV3Y2FycyByZXR1cm5zIGZhbHNlLiBQb3B1cCBtYXkgYmUgY2FuY2VsbGVkLiIpLCExKToodGhpcy5jb25zb2xlJiYidW5kZWZpbmVkIiE9PXR5cGVvZiBjb25zb2xlLmxvZyYmY29uc29sZS5sb2coInBvcHVwLmpzIHBvcHVwRGVmYXVsdE9uQWZ0ZXJJbml0aWFsaXplIC0gdXNlZGNhcnMgIHJldHVybnMgZmFsc2UuIFBvcHVwIG1heSBiZSBjYW5jZWxsZWQuIiksITEpKTohMX0KZnVuY3Rpb24gcG9wdXBjbG9zZVBERihhLGIpeyQoIiNwb3B1cGRpdnBkZiIrYSkubGVuZ3RoJiYkKCIjcG9wdXBkaXZwZGYiK2EpLmNzcygiZGlzcGxheSIsIm5vbmUiKTskKCIjcG9wdXBkaWZwZGZtb2RhbCIpLmxlbmd0aCYmJCgiI3BvcHVwZGlmcGRmbW9kYWwiKS5yZW1vdmUoKTskKCIjcG9wdXBkaXZwZGZpZnJhbWUiKS5sZW5ndGgmJiQoIiNwb3B1cGRpdnBkZmlmcmFtZSIpLnJlbW92ZSgpO2ImJnBvcHVwUG9zdE1lc3NhZ2VPbkF1dG9hdWJhaW5lKCl9ZnVuY3Rpb24gcHJpbnRQREZJRnJhbWUoKXt3aW5kb3cuZnJhbWVzLnBvcHVwZGl2cGRmaWZyYW1lLnByaW50TWUoKX1mdW5jdGlvbiBwb3B1cFRyaW0oYSl7cmV0dXJuIGEucmVwbGFjZSgvXlxzK3xccyskL2dtLCIiKX0KZnVuY3Rpb24gc2hvd1BvcHVwV2lkZ2V0QWRkVmVoaWNsZShhKXskKCdpbnB1dFtuYW1lPSJzZWFyY2hlZHZlaGljbGUiXScpLmVhY2goZnVuY3Rpb24oKXskKHRoaXMpLnZhbChhKX0pO3Nob3dQb3B1cFdpZGdldCgpfWZ1bmN0aW9uIHNob3dTcGVjaWFsU2NoZWR1bGVPbmxvYWQoKXt2YXIgYT0kKCIjc3BlY2lhbFNjaGVkdWxlIik7MDxhLmxlbmd0aCYmYS5wb3B1cGl6ZSh7c2hvd29ubG9hZDohMCxjb29raWVOYW1lOiJzcFNjaGVkdWxlRGlzcGxheWVkIixjb29raWVDcmVhdGU6Im9uT3BlbiIsY2xvc2VCdXR0b246ITB9KX1mdW5jdGlvbiBzaG93U3BlY2lhbFNjaGVkdWxlKCl7JCgiI3NwZWNpYWxTY2hlZHVsZSIpLnBvcHVwaXplKCkuc2V0VHJpZ2dlcigiY2xpY2siKS5vcGVuKCl9ZnVuY3Rpb24gc2hvd1RyYWRlQm9vc3RQb3B1cCgpeyQoIiNUcmFkZUluQmFyUG9wdXBDb250YWluZXIiKS5wb3B1cGl6ZSgpLnNldFRyaWdnZXIoImNsaWNrIikub3BlbigpfQpmdW5jdGlvbiBpc1Ntc1RleHRVc0Zvcm0oKXtsZXQgYT1bIm5ld2NhcmRldGFpbC5odG1sIiwibmV3Y2Fycy5odG1sIl0sYj1bImNhcmRldGFpbC5odG1sIiwidXNlZGNhcnMuaHRtbCJdO3JldHVybiIxIj09JCgiI0Rpc2NvdW50UG9wdXBOZXdSZWJhdGVTaG93VGV4dFVzIikudmFsKCkmJmEuaW5jbHVkZXMoJCgiI1BBR0VJRCIpLnZhbCgpKXx8IjEiPT0kKCIjRGlzY291bnRQb3B1cFVzZWRSZWJhdGVTaG93VGV4dFVzIikudmFsKCkmJmIuaW5jbHVkZXMoJCgiI1BBR0VJRCIpLnZhbCgpKT8hMDohMX1mdW5jdGlvbiBzaG93U21zVGV4dFVzRm9ybShhPSEwKXskKCIjaXNNb2JpbGUiKS5sZW5ndGgmJiIxIj09JCgiI2lzTW9iaWxlIikudmFsKCkmJiExIT09YT9kZWFsZXJMaW5lU21zKCk6ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI3NsaWRlaXQgI29wZW4taXRlbSIpLmNoZWNrZWQ9ITB9OwovKiogL2pzL2NvbnRhY3RQb3B1cC5qcyAqKi8KdmFyIF9fX2QyY19jb250YWN0UG9wdXBqc19jX29uPSIyMDI2LTAxLTEyIDEwOjEzOjQ2IjsndXNlIHN0cmljdCc7dmFyIGNvbnRhY3RQb3B1cD17cG9wdXA6JCgiI2NvbnRhY3Rwb3B1cCIpLG9wdGlvbnM6e3R5cGU6IiJ9LHNldENvbmZpZzpmdW5jdGlvbihhKXtjb250YWN0UG9wdXAub3B0aW9ucz0kLmV4dGVuZCh7fSxjb250YWN0UG9wdXAub3B0aW9ucyxhKTtyZXR1cm4gY29udGFjdFBvcHVwfSxpbml0OmZ1bmN0aW9uKCl7Y29udGFjdFBvcHVwLnNldENvbmZpZyh7dHlwZTpzZWxmLnNldHRpbmdzLmZvcm0udHlwZX0pO2NvbnRhY3RQb3B1cC5wb3B1cC5wb3B1cGl6ZSh7b25CZWZvcmVTZW5kTWFpbDpjb250YWN0UG9wdXAub25CZWZvcmVTZW5kTWFpbH0pLm9wZW4oKTtyZXR1cm4gY29udGFjdFBvcHVwfSxvbkJlZm9yZVNlbmRNYWlsOmZ1bmN0aW9uKGEpe2NvbnRhY3RQb3B1cC5zZXRFbWFpbEhhbmRsZXJGcm9tQWRkcmVzc2VzKCk7ZW1haWxIYW5kbGVyLmNvbmRpdGlvbj1jb250YWN0UG9wdXAuZ2V0Q29uZGl0aW9uKCk7ZW1haWxIYW5kbGVyLmRlcGFydG1lbnQ9Y29udGFjdFBvcHVwLmdldFR5cGUoKS50b1VwcGVyQ2FzZSgpOwoiQk5QIj09ZW1haWxIYW5kbGVyLmRlcGFydG1lbnQmJihlbWFpbEhhbmRsZXIuZGVwYXJ0bWVudD0iTkVXIik7ZW1haWxIYW5kbGVyLnNraXBHZXREZXA9ITA7ZW1haWxIYW5kbGVyLmJvZHk9ZW1haWxIYW5kbGVyLmJvZHkucmVwbGFjZSgieyROQU1FfSIsZW1haWxIYW5kbGVyLnVzZXJGaXJzdE5hbWUrIiAiK2VtYWlsSGFuZGxlci51c2VyTGFzdE5hbWUpfSxnZXRDb25kaXRpb246ZnVuY3Rpb24oKXtzd2l0Y2goY29udGFjdFBvcHVwLmdldFR5cGUoKSl7Y2FzZSAiYm5wIjpjYXNlICJuZXciOmNhc2UgIm1hbnVmYWN0dXJlciI6cmV0dXJuIm5ldyI7ZGVmYXVsdDpyZXR1cm4idXNlZCJ9fSxnZXRUeXBlOmZ1bmN0aW9uKCl7cmV0dXJuIGNvbnRhY3RQb3B1cC5vcHRpb25zLnR5cGV9LHNldEVtYWlsSGFuZGxlckZyb21BZGRyZXNzZXM6ZnVuY3Rpb24oKXt2YXIgYT1jb250YWN0UG9wdXAuZ2V0VHlwZSgpO3RyeXt2YXIgYj1jb250YWN0UG9wdXAuZ2V0RW1haWxzKGEpOyIiPT09Yi5zZW5kVG8mJgoiIj09PWIuc2VuZFRvQURGJiYoYj1jb250YWN0UG9wdXAuZ2V0RW1haWxzKCJ1c2VkIikpO3ZhciBjPWIuc2VuZFRvLGQ9Yi5zZW5kVG9BREY7IiI9PT1jJiYiIj09PWQmJmNvbnNvbGUubG9nKCJXYXJuaW5nOiBib3RoIGVtYWlsIGFuZCBBREYgYWRkcmVzc2VzIGFyZSBlbXB0eSEiKTtpZigkKCIjY3VzdG9tRm9ybV9vcmlnaW5hbHNlbmR0byIpLmxlbmd0aCYmIk90aGVyIj09JCgiI2N1c3RvbUZvcm1fb3JpZ2luYWxzZW5kdG8iKS52YWwoKSl7dmFyIGU9JCgiI2N1c3RvbUZvcm1fc2VuZHRvIikudmFsKCksZj0kKCIjY3VzdG9tRm9ybV9zZW5kdG9BREYiKS52YWwoKTtpZigiIiE9PWV8fCIiIT09ZiljPWUsZD1mfWVtYWlsSGFuZGxlci5zZW5kVG89YztlbWFpbEhhbmRsZXIuc2VuZFRvQURGRm9ybWF0PWR9Y2F0Y2goZyl7Y29uc29sZS5sb2coZyl9cmV0dXJuIGNvbnRhY3RQb3B1cH0sZ2V0RW1haWxzOmZ1bmN0aW9uKGEpe3ZhciBiPSQoIiNoaWRkZW5Db250YWN0cG9wdXAiKTsKImJucCI9PWEmJihhPSJuZXciKTt2YXIgYz1iLmZpbmQoIiNlbWFpbF8iK2EpLnZhbCgpO2E9Yi5maW5kKCIjZW1haWxBREZfIithKS52YWwoKTtyZXR1cm57c2VuZFRvOmMsc2VuZFRvQURGOmF9fX0saW5pdENvbnRhY3Rwb3B1cD1mdW5jdGlvbihhKXthLnByZXZlbnREZWZhdWx0KCk7Y29udGFjdFBvcHVwLmluaXQoKX0sY29udGFjdFBvcHVwU3VibWl0PWZ1bmN0aW9uKCl7JCgiI2NvbnRhY3Rwb3B1cCIpLnBvcHVwaXplKCkuc3VibWl0KCl9LGNvbnRhY3RQb3B1cENsb3NlPWZ1bmN0aW9uKCl7JCgiI2NvbnRhY3Rwb3B1cCIpLnBvcHVwaXplKCkuY2xvc2UoKX07Ci8qKiAvanMvdnVlL3Z1ZS5taW4uanMgKiovCi8qIQ0KICogVnVlLmpzIHYyLjYuMTENCiAqIChjKSAyMDE0LTIwMTkgRXZhbiBZb3UNCiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4NCiAqLw0KIWZ1bmN0aW9uKGUsdCl7Im9iamVjdCI9PXR5cGVvZiBleHBvcnRzJiYidW5kZWZpbmVkIiE9dHlwZW9mIG1vZHVsZT9tb2R1bGUuZXhwb3J0cz10KCk6ImZ1bmN0aW9uIj09dHlwZW9mIGRlZmluZSYmZGVmaW5lLmFtZD9kZWZpbmUodCk6KGU9ZXx8c2VsZikuVnVlPXQoKX0odGhpcyxmdW5jdGlvbigpeyJ1c2Ugc3RyaWN0Ijt2YXIgZT1PYmplY3QuZnJlZXplKHt9KTtmdW5jdGlvbiB0KGUpe3JldHVybiBudWxsPT1lfWZ1bmN0aW9uIG4oZSl7cmV0dXJuIG51bGwhPWV9ZnVuY3Rpb24gcihlKXtyZXR1cm4hMD09PWV9ZnVuY3Rpb24gaShlKXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIGV8fCJudW1iZXIiPT10eXBlb2YgZXx8InN5bWJvbCI9PXR5cGVvZiBlfHwiYm9vbGVhbiI9PXR5cGVvZiBlfWZ1bmN0aW9uIG8oZSl7cmV0dXJuIG51bGwhPT1lJiYib2JqZWN0Ij09dHlwZW9mIGV9dmFyIGE9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZztmdW5jdGlvbiBzKGUpe3JldHVybiJbb2JqZWN0IE9iamVjdF0iPT09YS5jYWxsKGUpfWZ1bmN0aW9uIGMoZSl7dmFyIHQ9cGFyc2VGbG9hdChTdHJpbmcoZSkpO3JldHVybiB0Pj0wJiZNYXRoLmZsb29yKHQpPT09dCYmaXNGaW5pdGUoZSl9ZnVuY3Rpb24gdShlKXtyZXR1cm4gbihlKSYmImZ1bmN0aW9uIj09dHlwZW9mIGUudGhlbiYmImZ1bmN0aW9uIj09dHlwZW9mIGUuY2F0Y2h9ZnVuY3Rpb24gbChlKXtyZXR1cm4gbnVsbD09ZT8iIjpBcnJheS5pc0FycmF5KGUpfHxzKGUpJiZlLnRvU3RyaW5nPT09YT9KU09OLnN0cmluZ2lmeShlLG51bGwsMik6U3RyaW5nKGUpfWZ1bmN0aW9uIGYoZSl7dmFyIHQ9cGFyc2VGbG9hdChlKTtyZXR1cm4gaXNOYU4odCk\/ZTp0fWZ1bmN0aW9uIHAoZSx0KXtmb3IodmFyIG49T2JqZWN0LmNyZWF0ZShudWxsKSxyPWUuc3BsaXQoIiwiKSxpPTA7aTxyLmxlbmd0aDtpKyspbltyW2ldXT0hMDtyZXR1cm4gdD9mdW5jdGlvbihlKXtyZXR1cm4gbltlLnRvTG93ZXJDYXNlKCldfTpmdW5jdGlvbihlKXtyZXR1cm4gbltlXX19dmFyIGQ9cCgic2xvdCxjb21wb25lbnQiLCEwKSx2PXAoImtleSxyZWYsc2xvdCxzbG90LXNjb3BlLGlzIik7ZnVuY3Rpb24gaChlLHQpe2lmKGUubGVuZ3RoKXt2YXIgbj1lLmluZGV4T2YodCk7aWYobj4tMSlyZXR1cm4gZS5zcGxpY2UobiwxKX19dmFyIG09T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTtmdW5jdGlvbiB5KGUsdCl7cmV0dXJuIG0uY2FsbChlLHQpfWZ1bmN0aW9uIGcoZSl7dmFyIHQ9T2JqZWN0LmNyZWF0ZShudWxsKTtyZXR1cm4gZnVuY3Rpb24obil7cmV0dXJuIHRbbl18fCh0W25dPWUobikpfX12YXIgXz0vLShcdykvZyxiPWcoZnVuY3Rpb24oZSl7cmV0dXJuIGUucmVwbGFjZShfLGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQ\/dC50b1VwcGVyQ2FzZSgpOiIifSl9KSwkPWcoZnVuY3Rpb24oZSl7cmV0dXJuIGUuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkrZS5zbGljZSgxKX0pLHc9L1xCKFtBLVpdKS9nLEM9ZyhmdW5jdGlvbihlKXtyZXR1cm4gZS5yZXBsYWNlKHcsIi0kMSIpLnRvTG93ZXJDYXNlKCl9KTt2YXIgeD1GdW5jdGlvbi5wcm90b3R5cGUuYmluZD9mdW5jdGlvbihlLHQpe3JldHVybiBlLmJpbmQodCl9OmZ1bmN0aW9uKGUsdCl7ZnVuY3Rpb24gbihuKXt2YXIgcj1hcmd1bWVudHMubGVuZ3RoO3JldHVybiByP3I+MT9lLmFwcGx5KHQsYXJndW1lbnRzKTplLmNhbGwodCxuKTplLmNhbGwodCl9cmV0dXJuIG4uX2xlbmd0aD1lLmxlbmd0aCxufTtmdW5jdGlvbiBrKGUsdCl7dD10fHwwO2Zvcih2YXIgbj1lLmxlbmd0aC10LHI9bmV3IEFycmF5KG4pO24tLTspcltuXT1lW24rdF07cmV0dXJuIHJ9ZnVuY3Rpb24gQShlLHQpe2Zvcih2YXIgbiBpbiB0KWVbbl09dFtuXTtyZXR1cm4gZX1mdW5jdGlvbiBPKGUpe2Zvcih2YXIgdD17fSxuPTA7bjxlLmxlbmd0aDtuKyspZVtuXSYmQSh0LGVbbl0pO3JldHVybiB0fWZ1bmN0aW9uIFMoZSx0LG4pe312YXIgVD1mdW5jdGlvbihlLHQsbil7cmV0dXJuITF9LEU9ZnVuY3Rpb24oZSl7cmV0dXJuIGV9O2Z1bmN0aW9uIE4oZSx0KXtpZihlPT09dClyZXR1cm4hMDt2YXIgbj1vKGUpLHI9byh0KTtpZighbnx8IXIpcmV0dXJuIW4mJiFyJiZTdHJpbmcoZSk9PT1TdHJpbmcodCk7dHJ5e3ZhciBpPUFycmF5LmlzQXJyYXkoZSksYT1BcnJheS5pc0FycmF5KHQpO2lmKGkmJmEpcmV0dXJuIGUubGVuZ3RoPT09dC5sZW5ndGgmJmUuZXZlcnkoZnVuY3Rpb24oZSxuKXtyZXR1cm4gTihlLHRbbl0pfSk7aWYoZSBpbnN0YW5jZW9mIERhdGUmJnQgaW5zdGFuY2VvZiBEYXRlKXJldHVybiBlLmdldFRpbWUoKT09PXQuZ2V0VGltZSgpO2lmKGl8fGEpcmV0dXJuITE7dmFyIHM9T2JqZWN0LmtleXMoZSksYz1PYmplY3Qua2V5cyh0KTtyZXR1cm4gcy5sZW5ndGg9PT1jLmxlbmd0aCYmcy5ldmVyeShmdW5jdGlvbihuKXtyZXR1cm4gTihlW25dLHRbbl0pfSl9Y2F0Y2goZSl7cmV0dXJuITF9fWZ1bmN0aW9uIGooZSx0KXtmb3IodmFyIG49MDtuPGUubGVuZ3RoO24rKylpZihOKGVbbl0sdCkpcmV0dXJuIG47cmV0dXJuLTF9ZnVuY3Rpb24gRChlKXt2YXIgdD0hMTtyZXR1cm4gZnVuY3Rpb24oKXt0fHwodD0hMCxlLmFwcGx5KHRoaXMsYXJndW1lbnRzKSl9fXZhciBMPSJkYXRhLXNlcnZlci1yZW5kZXJlZCIsTT1bImNvbXBvbmVudCIsImRpcmVjdGl2ZSIsImZpbHRlciJdLEk9WyJiZWZvcmVDcmVhdGUiLCJjcmVhdGVkIiwiYmVmb3JlTW91bnQiLCJtb3VudGVkIiwiYmVmb3JlVXBkYXRlIiwidXBkYXRlZCIsImJlZm9yZURlc3Ryb3kiLCJkZXN0cm95ZWQiLCJhY3RpdmF0ZWQiLCJkZWFjdGl2YXRlZCIsImVycm9yQ2FwdHVyZWQiLCJzZXJ2ZXJQcmVmZXRjaCJdLEY9e29wdGlvbk1lcmdlU3RyYXRlZ2llczpPYmplY3QuY3JlYXRlKG51bGwpLHNpbGVudDohMSxwcm9kdWN0aW9uVGlwOiExLGRldnRvb2xzOiExLHBlcmZvcm1hbmNlOiExLGVycm9ySGFuZGxlcjpudWxsLHdhcm5IYW5kbGVyOm51bGwsaWdub3JlZEVsZW1lbnRzOltdLGtleUNvZGVzOk9iamVjdC5jcmVhdGUobnVsbCksaXNSZXNlcnZlZFRhZzpULGlzUmVzZXJ2ZWRBdHRyOlQsaXNVbmtub3duRWxlbWVudDpULGdldFRhZ05hbWVzcGFjZTpTLHBhcnNlUGxhdGZvcm1UYWdOYW1lOkUsbXVzdFVzZVByb3A6VCxhc3luYzohMCxfbGlmZWN5Y2xlSG9va3M6SX0sUD0vYS16QS1aXHUwMEI3XHUwMEMwLVx1MDBENlx1MDBEOC1cdTAwRjZcdTAwRjgtXHUwMzdEXHUwMzdGLVx1MUZGRlx1MjAwQy1cdTIwMERcdTIwM0YtXHUyMDQwXHUyMDcwLVx1MjE4Rlx1MkMwMC1cdTJGRUZcdTMwMDEtXHVEN0ZGXHVGOTAwLVx1RkRDRlx1RkRGMC1cdUZGRkQvO2Z1bmN0aW9uIFIoZSx0LG4scil7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCx7dmFsdWU6bixlbnVtZXJhYmxlOiEhcix3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9KX12YXIgSD1uZXcgUmVnRXhwKCJbXiIrUC5zb3VyY2UrIi4kX1xcZF0iKTt2YXIgQixVPSJfX3Byb3RvX18iaW57fSx6PSJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93LFY9InVuZGVmaW5lZCIhPXR5cGVvZiBXWEVudmlyb25tZW50JiYhIVdYRW52aXJvbm1lbnQucGxhdGZvcm0sSz1WJiZXWEVudmlyb25tZW50LnBsYXRmb3JtLnRvTG93ZXJDYXNlKCksSj16JiZ3aW5kb3cubmF2aWdhdG9yLnVzZXJBZ2VudC50b0xvd2VyQ2FzZSgpLHE9SiYmL21zaWV8dHJpZGVudC8udGVzdChKKSxXPUomJkouaW5kZXhPZigibXNpZSA5LjAiKT4wLFo9SiYmSi5pbmRleE9mKCJlZGdlLyIpPjAsRz0oSiYmSi5pbmRleE9mKCJhbmRyb2lkIiksSiYmL2lwaG9uZXxpcGFkfGlwb2R8aW9zLy50ZXN0KEopfHwiaW9zIj09PUspLFg9KEomJi9jaHJvbWVcL1xkKy8udGVzdChKKSxKJiYvcGhhbnRvbWpzLy50ZXN0KEopLEomJkoubWF0Y2goL2ZpcmVmb3hcLyhcZCspLykpLFk9e30ud2F0Y2gsUT0hMTtpZih6KXRyeXt2YXIgZWU9e307T2JqZWN0LmRlZmluZVByb3BlcnR5KGVlLCJwYXNzaXZlIix7Z2V0OmZ1bmN0aW9uKCl7UT0hMH19KSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigidGVzdC1wYXNzaXZlIixudWxsLGVlKX1jYXRjaChlKXt9dmFyIHRlPWZ1bmN0aW9uKCl7cmV0dXJuIHZvaWQgMD09PUImJihCPSF6JiYhViYmInVuZGVmaW5lZCIhPXR5cGVvZiBnbG9iYWwmJihnbG9iYWwucHJvY2VzcyYmInNlcnZlciI9PT1nbG9iYWwucHJvY2Vzcy5lbnYuVlVFX0VOVikpLEJ9LG5lPXomJndpbmRvdy5fX1ZVRV9ERVZUT09MU19HTE9CQUxfSE9PS19fO2Z1bmN0aW9uIHJlKGUpe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBlJiYvbmF0aXZlIGNvZGUvLnRlc3QoZS50b1N0cmluZygpKX12YXIgaWUsb2U9InVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJnJlKFN5bWJvbCkmJiJ1bmRlZmluZWQiIT10eXBlb2YgUmVmbGVjdCYmcmUoUmVmbGVjdC5vd25LZXlzKTtpZT0idW5kZWZpbmVkIiE9dHlwZW9mIFNldCYmcmUoU2V0KT9TZXQ6ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKCl7dGhpcy5zZXQ9T2JqZWN0LmNyZWF0ZShudWxsKX1yZXR1cm4gZS5wcm90b3R5cGUuaGFzPWZ1bmN0aW9uKGUpe3JldHVybiEwPT09dGhpcy5zZXRbZV19LGUucHJvdG90eXBlLmFkZD1mdW5jdGlvbihlKXt0aGlzLnNldFtlXT0hMH0sZS5wcm90b3R5cGUuY2xlYXI9ZnVuY3Rpb24oKXt0aGlzLnNldD1PYmplY3QuY3JlYXRlKG51bGwpfSxlfSgpO3ZhciBhZT1TLHNlPTAsY2U9ZnVuY3Rpb24oKXt0aGlzLmlkPXNlKyssdGhpcy5zdWJzPVtdfTtjZS5wcm90b3R5cGUuYWRkU3ViPWZ1bmN0aW9uKGUpe3RoaXMuc3Vicy5wdXNoKGUpfSxjZS5wcm90b3R5cGUucmVtb3ZlU3ViPWZ1bmN0aW9uKGUpe2godGhpcy5zdWJzLGUpfSxjZS5wcm90b3R5cGUuZGVwZW5kPWZ1bmN0aW9uKCl7Y2UudGFyZ2V0JiZjZS50YXJnZXQuYWRkRGVwKHRoaXMpfSxjZS5wcm90b3R5cGUubm90aWZ5PWZ1bmN0aW9uKCl7Zm9yKHZhciBlPXRoaXMuc3Vicy5zbGljZSgpLHQ9MCxuPWUubGVuZ3RoO3Q8bjt0KyspZVt0XS51cGRhdGUoKX0sY2UudGFyZ2V0PW51bGw7dmFyIHVlPVtdO2Z1bmN0aW9uIGxlKGUpe3VlLnB1c2goZSksY2UudGFyZ2V0PWV9ZnVuY3Rpb24gZmUoKXt1ZS5wb3AoKSxjZS50YXJnZXQ9dWVbdWUubGVuZ3RoLTFdfXZhciBwZT1mdW5jdGlvbihlLHQsbixyLGksbyxhLHMpe3RoaXMudGFnPWUsdGhpcy5kYXRhPXQsdGhpcy5jaGlsZHJlbj1uLHRoaXMudGV4dD1yLHRoaXMuZWxtPWksdGhpcy5ucz12b2lkIDAsdGhpcy5jb250ZXh0PW8sdGhpcy5mbkNvbnRleHQ9dm9pZCAwLHRoaXMuZm5PcHRpb25zPXZvaWQgMCx0aGlzLmZuU2NvcGVJZD12b2lkIDAsdGhpcy5rZXk9dCYmdC5rZXksdGhpcy5jb21wb25lbnRPcHRpb25zPWEsdGhpcy5jb21wb25lbnRJbnN0YW5jZT12b2lkIDAsdGhpcy5wYXJlbnQ9dm9pZCAwLHRoaXMucmF3PSExLHRoaXMuaXNTdGF0aWM9ITEsdGhpcy5pc1Jvb3RJbnNlcnQ9ITAsdGhpcy5pc0NvbW1lbnQ9ITEsdGhpcy5pc0Nsb25lZD0hMSx0aGlzLmlzT25jZT0hMSx0aGlzLmFzeW5jRmFjdG9yeT1zLHRoaXMuYXN5bmNNZXRhPXZvaWQgMCx0aGlzLmlzQXN5bmNQbGFjZWhvbGRlcj0hMX0sZGU9e2NoaWxkOntjb25maWd1cmFibGU6ITB9fTtkZS5jaGlsZC5nZXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jb21wb25lbnRJbnN0YW5jZX0sT2JqZWN0LmRlZmluZVByb3BlcnRpZXMocGUucHJvdG90eXBlLGRlKTt2YXIgdmU9ZnVuY3Rpb24oZSl7dm9pZCAwPT09ZSYmKGU9IiIpO3ZhciB0PW5ldyBwZTtyZXR1cm4gdC50ZXh0PWUsdC5pc0NvbW1lbnQ9ITAsdH07ZnVuY3Rpb24gaGUoZSl7cmV0dXJuIG5ldyBwZSh2b2lkIDAsdm9pZCAwLHZvaWQgMCxTdHJpbmcoZSkpfWZ1bmN0aW9uIG1lKGUpe3ZhciB0PW5ldyBwZShlLnRhZyxlLmRhdGEsZS5jaGlsZHJlbiYmZS5jaGlsZHJlbi5zbGljZSgpLGUudGV4dCxlLmVsbSxlLmNvbnRleHQsZS5jb21wb25lbnRPcHRpb25zLGUuYXN5bmNGYWN0b3J5KTtyZXR1cm4gdC5ucz1lLm5zLHQuaXNTdGF0aWM9ZS5pc1N0YXRpYyx0LmtleT1lLmtleSx0LmlzQ29tbWVudD1lLmlzQ29tbWVudCx0LmZuQ29udGV4dD1lLmZuQ29udGV4dCx0LmZuT3B0aW9ucz1lLmZuT3B0aW9ucyx0LmZuU2NvcGVJZD1lLmZuU2NvcGVJZCx0LmFzeW5jTWV0YT1lLmFzeW5jTWV0YSx0LmlzQ2xvbmVkPSEwLHR9dmFyIHllPUFycmF5LnByb3RvdHlwZSxnZT1PYmplY3QuY3JlYXRlKHllKTtbInB1c2giLCJwb3AiLCJzaGlmdCIsInVuc2hpZnQiLCJzcGxpY2UiLCJzb3J0IiwicmV2ZXJzZSJdLmZvckVhY2goZnVuY3Rpb24oZSl7dmFyIHQ9eWVbZV07UihnZSxlLGZ1bmN0aW9uKCl7Zm9yKHZhciBuPVtdLHI9YXJndW1lbnRzLmxlbmd0aDtyLS07KW5bcl09YXJndW1lbnRzW3JdO3ZhciBpLG89dC5hcHBseSh0aGlzLG4pLGE9dGhpcy5fX29iX187c3dpdGNoKGUpe2Nhc2UicHVzaCI6Y2FzZSJ1bnNoaWZ0IjppPW47YnJlYWs7Y2FzZSJzcGxpY2UiOmk9bi5zbGljZSgyKX1yZXR1cm4gaSYmYS5vYnNlcnZlQXJyYXkoaSksYS5kZXAubm90aWZ5KCksb30pfSk7dmFyIF9lPU9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKGdlKSxiZT0hMDtmdW5jdGlvbiAkZShlKXtiZT1lfXZhciB3ZT1mdW5jdGlvbihlKXt2YXIgdDt0aGlzLnZhbHVlPWUsdGhpcy5kZXA9bmV3IGNlLHRoaXMudm1Db3VudD0wLFIoZSwiX19vYl9fIix0aGlzKSxBcnJheS5pc0FycmF5KGUpPyhVPyh0PWdlLGUuX19wcm90b19fPXQpOmZ1bmN0aW9uKGUsdCxuKXtmb3IodmFyIHI9MCxpPW4ubGVuZ3RoO3I8aTtyKyspe3ZhciBvPW5bcl07UihlLG8sdFtvXSl9fShlLGdlLF9lKSx0aGlzLm9ic2VydmVBcnJheShlKSk6dGhpcy53YWxrKGUpfTtmdW5jdGlvbiBDZShlLHQpe3ZhciBuO2lmKG8oZSkmJiEoZSBpbnN0YW5jZW9mIHBlKSlyZXR1cm4geShlLCJfX29iX18iKSYmZS5fX29iX18gaW5zdGFuY2VvZiB3ZT9uPWUuX19vYl9fOmJlJiYhdGUoKSYmKEFycmF5LmlzQXJyYXkoZSl8fHMoZSkpJiZPYmplY3QuaXNFeHRlbnNpYmxlKGUpJiYhZS5faXNWdWUmJihuPW5ldyB3ZShlKSksdCYmbiYmbi52bUNvdW50Kyssbn1mdW5jdGlvbiB4ZShlLHQsbixyLGkpe3ZhciBvPW5ldyBjZSxhPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZSx0KTtpZighYXx8ITEhPT1hLmNvbmZpZ3VyYWJsZSl7dmFyIHM9YSYmYS5nZXQsYz1hJiZhLnNldDtzJiYhY3x8MiE9PWFyZ3VtZW50cy5sZW5ndGh8fChuPWVbdF0pO3ZhciB1PSFpJiZDZShuKTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXt2YXIgdD1zP3MuY2FsbChlKTpuO3JldHVybiBjZS50YXJnZXQmJihvLmRlcGVuZCgpLHUmJih1LmRlcC5kZXBlbmQoKSxBcnJheS5pc0FycmF5KHQpJiZmdW5jdGlvbiBlKHQpe2Zvcih2YXIgbj12b2lkIDAscj0wLGk9dC5sZW5ndGg7cjxpO3IrKykobj10W3JdKSYmbi5fX29iX18mJm4uX19vYl9fLmRlcC5kZXBlbmQoKSxBcnJheS5pc0FycmF5KG4pJiZlKG4pfSh0KSkpLHR9LHNldDpmdW5jdGlvbih0KXt2YXIgcj1zP3MuY2FsbChlKTpuO3Q9PT1yfHx0IT10JiZyIT1yfHxzJiYhY3x8KGM\/Yy5jYWxsKGUsdCk6bj10LHU9IWkmJkNlKHQpLG8ubm90aWZ5KCkpfX0pfX1mdW5jdGlvbiBrZShlLHQsbil7aWYoQXJyYXkuaXNBcnJheShlKSYmYyh0KSlyZXR1cm4gZS5sZW5ndGg9TWF0aC5tYXgoZS5sZW5ndGgsdCksZS5zcGxpY2UodCwxLG4pLG47aWYodCBpbiBlJiYhKHQgaW4gT2JqZWN0LnByb3RvdHlwZSkpcmV0dXJuIGVbdF09bixuO3ZhciByPWUuX19vYl9fO3JldHVybiBlLl9pc1Z1ZXx8ciYmci52bUNvdW50P246cj8oeGUoci52YWx1ZSx0LG4pLHIuZGVwLm5vdGlmeSgpLG4pOihlW3RdPW4sbil9ZnVuY3Rpb24gQWUoZSx0KXtpZihBcnJheS5pc0FycmF5KGUpJiZjKHQpKWUuc3BsaWNlKHQsMSk7ZWxzZXt2YXIgbj1lLl9fb2JfXztlLl9pc1Z1ZXx8biYmbi52bUNvdW50fHx5KGUsdCkmJihkZWxldGUgZVt0XSxuJiZuLmRlcC5ub3RpZnkoKSl9fXdlLnByb3RvdHlwZS53YWxrPWZ1bmN0aW9uKGUpe2Zvcih2YXIgdD1PYmplY3Qua2V5cyhlKSxuPTA7bjx0Lmxlbmd0aDtuKyspeGUoZSx0W25dKX0sd2UucHJvdG90eXBlLm9ic2VydmVBcnJheT1mdW5jdGlvbihlKXtmb3IodmFyIHQ9MCxuPWUubGVuZ3RoO3Q8bjt0KyspQ2UoZVt0XSl9O3ZhciBPZT1GLm9wdGlvbk1lcmdlU3RyYXRlZ2llcztmdW5jdGlvbiBTZShlLHQpe2lmKCF0KXJldHVybiBlO2Zvcih2YXIgbixyLGksbz1vZT9SZWZsZWN0Lm93bktleXModCk6T2JqZWN0LmtleXModCksYT0wO2E8by5sZW5ndGg7YSsrKSJfX29iX18iIT09KG49b1thXSkmJihyPWVbbl0saT10W25dLHkoZSxuKT9yIT09aSYmcyhyKSYmcyhpKSYmU2UocixpKTprZShlLG4saSkpO3JldHVybiBlfWZ1bmN0aW9uIFRlKGUsdCxuKXtyZXR1cm4gbj9mdW5jdGlvbigpe3ZhciByPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3QuY2FsbChuLG4pOnQsaT0iZnVuY3Rpb24iPT10eXBlb2YgZT9lLmNhbGwobixuKTplO3JldHVybiByP1NlKHIsaSk6aX06dD9lP2Z1bmN0aW9uKCl7cmV0dXJuIFNlKCJmdW5jdGlvbiI9PXR5cGVvZiB0P3QuY2FsbCh0aGlzLHRoaXMpOnQsImZ1bmN0aW9uIj09dHlwZW9mIGU\/ZS5jYWxsKHRoaXMsdGhpcyk6ZSl9OnQ6ZX1mdW5jdGlvbiBFZShlLHQpe3ZhciBuPXQ\/ZT9lLmNvbmNhdCh0KTpBcnJheS5pc0FycmF5KHQpP3Q6W3RdOmU7cmV0dXJuIG4\/ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PVtdLG49MDtuPGUubGVuZ3RoO24rKyktMT09PXQuaW5kZXhPZihlW25dKSYmdC5wdXNoKGVbbl0pO3JldHVybiB0fShuKTpufWZ1bmN0aW9uIE5lKGUsdCxuLHIpe3ZhciBpPU9iamVjdC5jcmVhdGUoZXx8bnVsbCk7cmV0dXJuIHQ\/QShpLHQpOml9T2UuZGF0YT1mdW5jdGlvbihlLHQsbil7cmV0dXJuIG4\/VGUoZSx0LG4pOnQmJiJmdW5jdGlvbiIhPXR5cGVvZiB0P2U6VGUoZSx0KX0sSS5mb3JFYWNoKGZ1bmN0aW9uKGUpe09lW2VdPUVlfSksTS5mb3JFYWNoKGZ1bmN0aW9uKGUpe09lW2UrInMiXT1OZX0pLE9lLndhdGNoPWZ1bmN0aW9uKGUsdCxuLHIpe2lmKGU9PT1ZJiYoZT12b2lkIDApLHQ9PT1ZJiYodD12b2lkIDApLCF0KXJldHVybiBPYmplY3QuY3JlYXRlKGV8fG51bGwpO2lmKCFlKXJldHVybiB0O3ZhciBpPXt9O2Zvcih2YXIgbyBpbiBBKGksZSksdCl7dmFyIGE9aVtvXSxzPXRbb107YSYmIUFycmF5LmlzQXJyYXkoYSkmJihhPVthXSksaVtvXT1hP2EuY29uY2F0KHMpOkFycmF5LmlzQXJyYXkocyk\/czpbc119cmV0dXJuIGl9LE9lLnByb3BzPU9lLm1ldGhvZHM9T2UuaW5qZWN0PU9lLmNvbXB1dGVkPWZ1bmN0aW9uKGUsdCxuLHIpe2lmKCFlKXJldHVybiB0O3ZhciBpPU9iamVjdC5jcmVhdGUobnVsbCk7cmV0dXJuIEEoaSxlKSx0JiZBKGksdCksaX0sT2UucHJvdmlkZT1UZTt2YXIgamU9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdm9pZCAwPT09dD9lOnR9O2Z1bmN0aW9uIERlKGUsdCxuKXtpZigiZnVuY3Rpb24iPT10eXBlb2YgdCYmKHQ9dC5vcHRpb25zKSxmdW5jdGlvbihlLHQpe3ZhciBuPWUucHJvcHM7aWYobil7dmFyIHIsaSxvPXt9O2lmKEFycmF5LmlzQXJyYXkobikpZm9yKHI9bi5sZW5ndGg7ci0tOykic3RyaW5nIj09dHlwZW9mKGk9bltyXSkmJihvW2IoaSldPXt0eXBlOm51bGx9KTtlbHNlIGlmKHMobikpZm9yKHZhciBhIGluIG4paT1uW2FdLG9bYihhKV09cyhpKT9pOnt0eXBlOml9O2UucHJvcHM9b319KHQpLGZ1bmN0aW9uKGUsdCl7dmFyIG49ZS5pbmplY3Q7aWYobil7dmFyIHI9ZS5pbmplY3Q9e307aWYoQXJyYXkuaXNBcnJheShuKSlmb3IodmFyIGk9MDtpPG4ubGVuZ3RoO2krKylyW25baV1dPXtmcm9tOm5baV19O2Vsc2UgaWYocyhuKSlmb3IodmFyIG8gaW4gbil7dmFyIGE9bltvXTtyW29dPXMoYSk\/QSh7ZnJvbTpvfSxhKTp7ZnJvbTphfX19fSh0KSxmdW5jdGlvbihlKXt2YXIgdD1lLmRpcmVjdGl2ZXM7aWYodClmb3IodmFyIG4gaW4gdCl7dmFyIHI9dFtuXTsiZnVuY3Rpb24iPT10eXBlb2YgciYmKHRbbl09e2JpbmQ6cix1cGRhdGU6cn0pfX0odCksIXQuX2Jhc2UmJih0LmV4dGVuZHMmJihlPURlKGUsdC5leHRlbmRzLG4pKSx0Lm1peGlucykpZm9yKHZhciByPTAsaT10Lm1peGlucy5sZW5ndGg7cjxpO3IrKyllPURlKGUsdC5taXhpbnNbcl0sbik7dmFyIG8sYT17fTtmb3IobyBpbiBlKWMobyk7Zm9yKG8gaW4gdCl5KGUsbyl8fGMobyk7ZnVuY3Rpb24gYyhyKXt2YXIgaT1PZVtyXXx8amU7YVtyXT1pKGVbcl0sdFtyXSxuLHIpfXJldHVybiBhfWZ1bmN0aW9uIExlKGUsdCxuLHIpe2lmKCJzdHJpbmciPT10eXBlb2Ygbil7dmFyIGk9ZVt0XTtpZih5KGksbikpcmV0dXJuIGlbbl07dmFyIG89YihuKTtpZih5KGksbykpcmV0dXJuIGlbb107dmFyIGE9JChvKTtyZXR1cm4geShpLGEpP2lbYV06aVtuXXx8aVtvXXx8aVthXX19ZnVuY3Rpb24gTWUoZSx0LG4scil7dmFyIGk9dFtlXSxvPSF5KG4sZSksYT1uW2VdLHM9UGUoQm9vbGVhbixpLnR5cGUpO2lmKHM+LTEpaWYobyYmIXkoaSwiZGVmYXVsdCIpKWE9ITE7ZWxzZSBpZigiIj09PWF8fGE9PT1DKGUpKXt2YXIgYz1QZShTdHJpbmcsaS50eXBlKTsoYzwwfHxzPGMpJiYoYT0hMCl9aWYodm9pZCAwPT09YSl7YT1mdW5jdGlvbihlLHQsbil7aWYoIXkodCwiZGVmYXVsdCIpKXJldHVybjt2YXIgcj10LmRlZmF1bHQ7aWYoZSYmZS4kb3B0aW9ucy5wcm9wc0RhdGEmJnZvaWQgMD09PWUuJG9wdGlvbnMucHJvcHNEYXRhW25dJiZ2b2lkIDAhPT1lLl9wcm9wc1tuXSlyZXR1cm4gZS5fcHJvcHNbbl07cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIHImJiJGdW5jdGlvbiIhPT1JZSh0LnR5cGUpP3IuY2FsbChlKTpyfShyLGksZSk7dmFyIHU9YmU7JGUoITApLENlKGEpLCRlKHUpfXJldHVybiBhfWZ1bmN0aW9uIEllKGUpe3ZhciB0PWUmJmUudG9TdHJpbmcoKS5tYXRjaCgvXlxzKmZ1bmN0aW9uIChcdyspLyk7cmV0dXJuIHQ\/dFsxXToiIn1mdW5jdGlvbiBGZShlLHQpe3JldHVybiBJZShlKT09PUllKHQpfWZ1bmN0aW9uIFBlKGUsdCl7aWYoIUFycmF5LmlzQXJyYXkodCkpcmV0dXJuIEZlKHQsZSk\/MDotMTtmb3IodmFyIG49MCxyPXQubGVuZ3RoO248cjtuKyspaWYoRmUodFtuXSxlKSlyZXR1cm4gbjtyZXR1cm4tMX1mdW5jdGlvbiBSZShlLHQsbil7bGUoKTt0cnl7aWYodClmb3IodmFyIHI9dDtyPXIuJHBhcmVudDspe3ZhciBpPXIuJG9wdGlvbnMuZXJyb3JDYXB0dXJlZDtpZihpKWZvcih2YXIgbz0wO288aS5sZW5ndGg7bysrKXRyeXtpZighMT09PWlbb10uY2FsbChyLGUsdCxuKSlyZXR1cm59Y2F0Y2goZSl7QmUoZSxyLCJlcnJvckNhcHR1cmVkIGhvb2siKX19QmUoZSx0LG4pfWZpbmFsbHl7ZmUoKX19ZnVuY3Rpb24gSGUoZSx0LG4scixpKXt2YXIgbzt0cnl7KG89bj9lLmFwcGx5KHQsbik6ZS5jYWxsKHQpKSYmIW8uX2lzVnVlJiZ1KG8pJiYhby5faGFuZGxlZCYmKG8uY2F0Y2goZnVuY3Rpb24oZSl7cmV0dXJuIFJlKGUscixpKyIgKFByb21pc2UvYXN5bmMpIil9KSxvLl9oYW5kbGVkPSEwKX1jYXRjaChlKXtSZShlLHIsaSl9cmV0dXJuIG99ZnVuY3Rpb24gQmUoZSx0LG4pe2lmKEYuZXJyb3JIYW5kbGVyKXRyeXtyZXR1cm4gRi5lcnJvckhhbmRsZXIuY2FsbChudWxsLGUsdCxuKX1jYXRjaCh0KXt0IT09ZSYmVWUodCxudWxsLCJjb25maWcuZXJyb3JIYW5kbGVyIil9VWUoZSx0LG4pfWZ1bmN0aW9uIFVlKGUsdCxuKXtpZigheiYmIVZ8fCJ1bmRlZmluZWQiPT10eXBlb2YgY29uc29sZSl0aHJvdyBlO2NvbnNvbGUuZXJyb3IoZSl9dmFyIHplLFZlPSExLEtlPVtdLEplPSExO2Z1bmN0aW9uIHFlKCl7SmU9ITE7dmFyIGU9S2Uuc2xpY2UoMCk7S2UubGVuZ3RoPTA7Zm9yKHZhciB0PTA7dDxlLmxlbmd0aDt0KyspZVt0XSgpfWlmKCJ1bmRlZmluZWQiIT10eXBlb2YgUHJvbWlzZSYmcmUoUHJvbWlzZSkpe3ZhciBXZT1Qcm9taXNlLnJlc29sdmUoKTt6ZT1mdW5jdGlvbigpe1dlLnRoZW4ocWUpLEcmJnNldFRpbWVvdXQoUyl9LFZlPSEwfWVsc2UgaWYocXx8InVuZGVmaW5lZCI9PXR5cGVvZiBNdXRhdGlvbk9ic2VydmVyfHwhcmUoTXV0YXRpb25PYnNlcnZlcikmJiJbb2JqZWN0IE11dGF0aW9uT2JzZXJ2ZXJDb25zdHJ1Y3Rvcl0iIT09TXV0YXRpb25PYnNlcnZlci50b1N0cmluZygpKXplPSJ1bmRlZmluZWQiIT10eXBlb2Ygc2V0SW1tZWRpYXRlJiZyZShzZXRJbW1lZGlhdGUpP2Z1bmN0aW9uKCl7c2V0SW1tZWRpYXRlKHFlKX06ZnVuY3Rpb24oKXtzZXRUaW1lb3V0KHFlLDApfTtlbHNle3ZhciBaZT0xLEdlPW5ldyBNdXRhdGlvbk9ic2VydmVyKHFlKSxYZT1kb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShTdHJpbmcoWmUpKTtHZS5vYnNlcnZlKFhlLHtjaGFyYWN0ZXJEYXRhOiEwfSksemU9ZnVuY3Rpb24oKXtaZT0oWmUrMSklMixYZS5kYXRhPVN0cmluZyhaZSl9LFZlPSEwfWZ1bmN0aW9uIFllKGUsdCl7dmFyIG47aWYoS2UucHVzaChmdW5jdGlvbigpe2lmKGUpdHJ5e2UuY2FsbCh0KX1jYXRjaChlKXtSZShlLHQsIm5leHRUaWNrIil9ZWxzZSBuJiZuKHQpfSksSmV8fChKZT0hMCx6ZSgpKSwhZSYmInVuZGVmaW5lZCIhPXR5cGVvZiBQcm9taXNlKXJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihlKXtuPWV9KX12YXIgUWU9bmV3IGllO2Z1bmN0aW9uIGV0KGUpeyFmdW5jdGlvbiBlKHQsbil7dmFyIHIsaTt2YXIgYT1BcnJheS5pc0FycmF5KHQpO2lmKCFhJiYhbyh0KXx8T2JqZWN0LmlzRnJvemVuKHQpfHx0IGluc3RhbmNlb2YgcGUpcmV0dXJuO2lmKHQuX19vYl9fKXt2YXIgcz10Ll9fb2JfXy5kZXAuaWQ7aWYobi5oYXMocykpcmV0dXJuO24uYWRkKHMpfWlmKGEpZm9yKHI9dC5sZW5ndGg7ci0tOyllKHRbcl0sbik7ZWxzZSBmb3IoaT1PYmplY3Qua2V5cyh0KSxyPWkubGVuZ3RoO3ItLTspZSh0W2lbcl1dLG4pfShlLFFlKSxRZS5jbGVhcigpfXZhciB0dD1nKGZ1bmN0aW9uKGUpe3ZhciB0PSImIj09PWUuY2hhckF0KDApLG49In4iPT09KGU9dD9lLnNsaWNlKDEpOmUpLmNoYXJBdCgwKSxyPSIhIj09PShlPW4\/ZS5zbGljZSgxKTplKS5jaGFyQXQoMCk7cmV0dXJue25hbWU6ZT1yP2Uuc2xpY2UoMSk6ZSxvbmNlOm4sY2FwdHVyZTpyLHBhc3NpdmU6dH19KTtmdW5jdGlvbiBudChlLHQpe2Z1bmN0aW9uIG4oKXt2YXIgZT1hcmd1bWVudHMscj1uLmZucztpZighQXJyYXkuaXNBcnJheShyKSlyZXR1cm4gSGUocixudWxsLGFyZ3VtZW50cyx0LCJ2LW9uIGhhbmRsZXIiKTtmb3IodmFyIGk9ci5zbGljZSgpLG89MDtvPGkubGVuZ3RoO28rKylIZShpW29dLG51bGwsZSx0LCJ2LW9uIGhhbmRsZXIiKX1yZXR1cm4gbi5mbnM9ZSxufWZ1bmN0aW9uIHJ0KGUsbixpLG8sYSxzKXt2YXIgYyx1LGwsZjtmb3IoYyBpbiBlKXU9ZVtjXSxsPW5bY10sZj10dChjKSx0KHUpfHwodChsKT8odCh1LmZucykmJih1PWVbY109bnQodSxzKSkscihmLm9uY2UpJiYodT1lW2NdPWEoZi5uYW1lLHUsZi5jYXB0dXJlKSksaShmLm5hbWUsdSxmLmNhcHR1cmUsZi5wYXNzaXZlLGYucGFyYW1zKSk6dSE9PWwmJihsLmZucz11LGVbY109bCkpO2ZvcihjIGluIG4pdChlW2NdKSYmbygoZj10dChjKSkubmFtZSxuW2NdLGYuY2FwdHVyZSl9ZnVuY3Rpb24gaXQoZSxpLG8pe3ZhciBhO2UgaW5zdGFuY2VvZiBwZSYmKGU9ZS5kYXRhLmhvb2t8fChlLmRhdGEuaG9vaz17fSkpO3ZhciBzPWVbaV07ZnVuY3Rpb24gYygpe28uYXBwbHkodGhpcyxhcmd1bWVudHMpLGgoYS5mbnMsYyl9dChzKT9hPW50KFtjXSk6bihzLmZucykmJnIocy5tZXJnZWQpPyhhPXMpLmZucy5wdXNoKGMpOmE9bnQoW3MsY10pLGEubWVyZ2VkPSEwLGVbaV09YX1mdW5jdGlvbiBvdChlLHQscixpLG8pe2lmKG4odCkpe2lmKHkodCxyKSlyZXR1cm4gZVtyXT10W3JdLG98fGRlbGV0ZSB0W3JdLCEwO2lmKHkodCxpKSlyZXR1cm4gZVtyXT10W2ldLG98fGRlbGV0ZSB0W2ldLCEwfXJldHVybiExfWZ1bmN0aW9uIGF0KGUpe3JldHVybiBpKGUpP1toZShlKV06QXJyYXkuaXNBcnJheShlKT9mdW5jdGlvbiBlKG8sYSl7dmFyIHM9W107dmFyIGMsdSxsLGY7Zm9yKGM9MDtjPG8ubGVuZ3RoO2MrKyl0KHU9b1tjXSl8fCJib29sZWFuIj09dHlwZW9mIHV8fChsPXMubGVuZ3RoLTEsZj1zW2xdLEFycmF5LmlzQXJyYXkodSk\/dS5sZW5ndGg+MCYmKHN0KCh1PWUodSwoYXx8IiIpKyJfIitjKSlbMF0pJiZzdChmKSYmKHNbbF09aGUoZi50ZXh0K3VbMF0udGV4dCksdS5zaGlmdCgpKSxzLnB1c2guYXBwbHkocyx1KSk6aSh1KT9zdChmKT9zW2xdPWhlKGYudGV4dCt1KToiIiE9PXUmJnMucHVzaChoZSh1KSk6c3QodSkmJnN0KGYpP3NbbF09aGUoZi50ZXh0K3UudGV4dCk6KHIoby5faXNWTGlzdCkmJm4odS50YWcpJiZ0KHUua2V5KSYmbihhKSYmKHUua2V5PSJfX3ZsaXN0IithKyJfIitjKyJfXyIpLHMucHVzaCh1KSkpO3JldHVybiBzfShlKTp2b2lkIDB9ZnVuY3Rpb24gc3QoZSl7cmV0dXJuIG4oZSkmJm4oZS50ZXh0KSYmITE9PT1lLmlzQ29tbWVudH1mdW5jdGlvbiBjdChlLHQpe2lmKGUpe2Zvcih2YXIgbj1PYmplY3QuY3JlYXRlKG51bGwpLHI9b2U\/UmVmbGVjdC5vd25LZXlzKGUpOk9iamVjdC5rZXlzKGUpLGk9MDtpPHIubGVuZ3RoO2krKyl7dmFyIG89cltpXTtpZigiX19vYl9fIiE9PW8pe2Zvcih2YXIgYT1lW29dLmZyb20scz10O3M7KXtpZihzLl9wcm92aWRlZCYmeShzLl9wcm92aWRlZCxhKSl7bltvXT1zLl9wcm92aWRlZFthXTticmVha31zPXMuJHBhcmVudH1pZighcyYmImRlZmF1bHQiaW4gZVtvXSl7dmFyIGM9ZVtvXS5kZWZhdWx0O25bb109ImZ1bmN0aW9uIj09dHlwZW9mIGM\/Yy5jYWxsKHQpOmN9fX1yZXR1cm4gbn19ZnVuY3Rpb24gdXQoZSx0KXtpZighZXx8IWUubGVuZ3RoKXJldHVybnt9O2Zvcih2YXIgbj17fSxyPTAsaT1lLmxlbmd0aDtyPGk7cisrKXt2YXIgbz1lW3JdLGE9by5kYXRhO2lmKGEmJmEuYXR0cnMmJmEuYXR0cnMuc2xvdCYmZGVsZXRlIGEuYXR0cnMuc2xvdCxvLmNvbnRleHQhPT10JiZvLmZuQ29udGV4dCE9PXR8fCFhfHxudWxsPT1hLnNsb3QpKG4uZGVmYXVsdHx8KG4uZGVmYXVsdD1bXSkpLnB1c2gobyk7ZWxzZXt2YXIgcz1hLnNsb3QsYz1uW3NdfHwobltzXT1bXSk7InRlbXBsYXRlIj09PW8udGFnP2MucHVzaC5hcHBseShjLG8uY2hpbGRyZW58fFtdKTpjLnB1c2gobyl9fWZvcih2YXIgdSBpbiBuKW5bdV0uZXZlcnkobHQpJiZkZWxldGUgblt1XTtyZXR1cm4gbn1mdW5jdGlvbiBsdChlKXtyZXR1cm4gZS5pc0NvbW1lbnQmJiFlLmFzeW5jRmFjdG9yeXx8IiAiPT09ZS50ZXh0fWZ1bmN0aW9uIGZ0KHQsbixyKXt2YXIgaSxvPU9iamVjdC5rZXlzKG4pLmxlbmd0aD4wLGE9dD8hIXQuJHN0YWJsZTohbyxzPXQmJnQuJGtleTtpZih0KXtpZih0Ll9ub3JtYWxpemVkKXJldHVybiB0Ll9ub3JtYWxpemVkO2lmKGEmJnImJnIhPT1lJiZzPT09ci4ka2V5JiYhbyYmIXIuJGhhc05vcm1hbClyZXR1cm4gcjtmb3IodmFyIGMgaW4gaT17fSx0KXRbY10mJiIkIiE9PWNbMF0mJihpW2NdPXB0KG4sYyx0W2NdKSl9ZWxzZSBpPXt9O2Zvcih2YXIgdSBpbiBuKXUgaW4gaXx8KGlbdV09ZHQobix1KSk7cmV0dXJuIHQmJk9iamVjdC5pc0V4dGVuc2libGUodCkmJih0Ll9ub3JtYWxpemVkPWkpLFIoaSwiJHN0YWJsZSIsYSksUihpLCIka2V5IixzKSxSKGksIiRoYXNOb3JtYWwiLG8pLGl9ZnVuY3Rpb24gcHQoZSx0LG4pe3ZhciByPWZ1bmN0aW9uKCl7dmFyIGU9YXJndW1lbnRzLmxlbmd0aD9uLmFwcGx5KG51bGwsYXJndW1lbnRzKTpuKHt9KTtyZXR1cm4oZT1lJiYib2JqZWN0Ij09dHlwZW9mIGUmJiFBcnJheS5pc0FycmF5KGUpP1tlXTphdChlKSkmJigwPT09ZS5sZW5ndGh8fDE9PT1lLmxlbmd0aCYmZVswXS5pc0NvbW1lbnQpP3ZvaWQgMDplfTtyZXR1cm4gbi5wcm94eSYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCx7Z2V0OnIsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxyfWZ1bmN0aW9uIGR0KGUsdCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGVbdF19fWZ1bmN0aW9uIHZ0KGUsdCl7dmFyIHIsaSxhLHMsYztpZihBcnJheS5pc0FycmF5KGUpfHwic3RyaW5nIj09dHlwZW9mIGUpZm9yKHI9bmV3IEFycmF5KGUubGVuZ3RoKSxpPTAsYT1lLmxlbmd0aDtpPGE7aSsrKXJbaV09dChlW2ldLGkpO2Vsc2UgaWYoIm51bWJlciI9PXR5cGVvZiBlKWZvcihyPW5ldyBBcnJheShlKSxpPTA7aTxlO2krKylyW2ldPXQoaSsxLGkpO2Vsc2UgaWYobyhlKSlpZihvZSYmZVtTeW1ib2wuaXRlcmF0b3JdKXtyPVtdO2Zvcih2YXIgdT1lW1N5bWJvbC5pdGVyYXRvcl0oKSxsPXUubmV4dCgpOyFsLmRvbmU7KXIucHVzaCh0KGwudmFsdWUsci5sZW5ndGgpKSxsPXUubmV4dCgpfWVsc2UgZm9yKHM9T2JqZWN0LmtleXMoZSkscj1uZXcgQXJyYXkocy5sZW5ndGgpLGk9MCxhPXMubGVuZ3RoO2k8YTtpKyspYz1zW2ldLHJbaV09dChlW2NdLGMsaSk7cmV0dXJuIG4ocil8fChyPVtdKSxyLl9pc1ZMaXN0PSEwLHJ9ZnVuY3Rpb24gaHQoZSx0LG4scil7dmFyIGksbz10aGlzLiRzY29wZWRTbG90c1tlXTtvPyhuPW58fHt9LHImJihuPUEoQSh7fSxyKSxuKSksaT1vKG4pfHx0KTppPXRoaXMuJHNsb3RzW2VdfHx0O3ZhciBhPW4mJm4uc2xvdDtyZXR1cm4gYT90aGlzLiRjcmVhdGVFbGVtZW50KCJ0ZW1wbGF0ZSIse3Nsb3Q6YX0saSk6aX1mdW5jdGlvbiBtdChlKXtyZXR1cm4gTGUodGhpcy4kb3B0aW9ucywiZmlsdGVycyIsZSl8fEV9ZnVuY3Rpb24geXQoZSx0KXtyZXR1cm4gQXJyYXkuaXNBcnJheShlKT8tMT09PWUuaW5kZXhPZih0KTplIT09dH1mdW5jdGlvbiBndChlLHQsbixyLGkpe3ZhciBvPUYua2V5Q29kZXNbdF18fG47cmV0dXJuIGkmJnImJiFGLmtleUNvZGVzW3RdP3l0KGkscik6bz95dChvLGUpOnI\/QyhyKSE9PXQ6dm9pZCAwfWZ1bmN0aW9uIF90KGUsdCxuLHIsaSl7aWYobilpZihvKG4pKXt2YXIgYTtBcnJheS5pc0FycmF5KG4pJiYobj1PKG4pKTt2YXIgcz1mdW5jdGlvbihvKXtpZigiY2xhc3MiPT09b3x8InN0eWxlIj09PW98fHYobykpYT1lO2Vsc2V7dmFyIHM9ZS5hdHRycyYmZS5hdHRycy50eXBlO2E9cnx8Ri5tdXN0VXNlUHJvcCh0LHMsbyk\/ZS5kb21Qcm9wc3x8KGUuZG9tUHJvcHM9e30pOmUuYXR0cnN8fChlLmF0dHJzPXt9KX12YXIgYz1iKG8pLHU9QyhvKTtjIGluIGF8fHUgaW4gYXx8KGFbb109bltvXSxpJiYoKGUub258fChlLm9uPXt9KSlbInVwZGF0ZToiK29dPWZ1bmN0aW9uKGUpe25bb109ZX0pKX07Zm9yKHZhciBjIGluIG4pcyhjKX1lbHNlO3JldHVybiBlfWZ1bmN0aW9uIGJ0KGUsdCl7dmFyIG49dGhpcy5fc3RhdGljVHJlZXN8fCh0aGlzLl9zdGF0aWNUcmVlcz1bXSkscj1uW2VdO3JldHVybiByJiYhdD9yOih3dChyPW5bZV09dGhpcy4kb3B0aW9ucy5zdGF0aWNSZW5kZXJGbnNbZV0uY2FsbCh0aGlzLl9yZW5kZXJQcm94eSxudWxsLHRoaXMpLCJfX3N0YXRpY19fIitlLCExKSxyKX1mdW5jdGlvbiAkdChlLHQsbil7cmV0dXJuIHd0KGUsIl9fb25jZV9fIit0KyhuPyJfIituOiIiKSwhMCksZX1mdW5jdGlvbiB3dChlLHQsbil7aWYoQXJyYXkuaXNBcnJheShlKSlmb3IodmFyIHI9MDtyPGUubGVuZ3RoO3IrKyllW3JdJiYic3RyaW5nIiE9dHlwZW9mIGVbcl0mJkN0KGVbcl0sdCsiXyIrcixuKTtlbHNlIEN0KGUsdCxuKX1mdW5jdGlvbiBDdChlLHQsbil7ZS5pc1N0YXRpYz0hMCxlLmtleT10LGUuaXNPbmNlPW59ZnVuY3Rpb24geHQoZSx0KXtpZih0KWlmKHModCkpe3ZhciBuPWUub249ZS5vbj9BKHt9LGUub24pOnt9O2Zvcih2YXIgciBpbiB0KXt2YXIgaT1uW3JdLG89dFtyXTtuW3JdPWk\/W10uY29uY2F0KGksbyk6b319ZWxzZTtyZXR1cm4gZX1mdW5jdGlvbiBrdChlLHQsbixyKXt0PXR8fHskc3RhYmxlOiFufTtmb3IodmFyIGk9MDtpPGUubGVuZ3RoO2krKyl7dmFyIG89ZVtpXTtBcnJheS5pc0FycmF5KG8pP2t0KG8sdCxuKTpvJiYoby5wcm94eSYmKG8uZm4ucHJveHk9ITApLHRbby5rZXldPW8uZm4pfXJldHVybiByJiYodC4ka2V5PXIpLHR9ZnVuY3Rpb24gQXQoZSx0KXtmb3IodmFyIG49MDtuPHQubGVuZ3RoO24rPTIpe3ZhciByPXRbbl07InN0cmluZyI9PXR5cGVvZiByJiZyJiYoZVt0W25dXT10W24rMV0pfXJldHVybiBlfWZ1bmN0aW9uIE90KGUsdCl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiBlP3QrZTplfWZ1bmN0aW9uIFN0KGUpe2UuX289JHQsZS5fbj1mLGUuX3M9bCxlLl9sPXZ0LGUuX3Q9aHQsZS5fcT1OLGUuX2k9aixlLl9tPWJ0LGUuX2Y9bXQsZS5faz1ndCxlLl9iPV90LGUuX3Y9aGUsZS5fZT12ZSxlLl91PWt0LGUuX2c9eHQsZS5fZD1BdCxlLl9wPU90fWZ1bmN0aW9uIFR0KHQsbixpLG8sYSl7dmFyIHMsYz10aGlzLHU9YS5vcHRpb25zO3kobywiX3VpZCIpPyhzPU9iamVjdC5jcmVhdGUobykpLl9vcmlnaW5hbD1vOihzPW8sbz1vLl9vcmlnaW5hbCk7dmFyIGw9cih1Ll9jb21waWxlZCksZj0hbDt0aGlzLmRhdGE9dCx0aGlzLnByb3BzPW4sdGhpcy5jaGlsZHJlbj1pLHRoaXMucGFyZW50PW8sdGhpcy5saXN0ZW5lcnM9dC5vbnx8ZSx0aGlzLmluamVjdGlvbnM9Y3QodS5pbmplY3QsbyksdGhpcy5zbG90cz1mdW5jdGlvbigpe3JldHVybiBjLiRzbG90c3x8ZnQodC5zY29wZWRTbG90cyxjLiRzbG90cz11dChpLG8pKSxjLiRzbG90c30sT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsInNjb3BlZFNsb3RzIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gZnQodC5zY29wZWRTbG90cyx0aGlzLnNsb3RzKCkpfX0pLGwmJih0aGlzLiRvcHRpb25zPXUsdGhpcy4kc2xvdHM9dGhpcy5zbG90cygpLHRoaXMuJHNjb3BlZFNsb3RzPWZ0KHQuc2NvcGVkU2xvdHMsdGhpcy4kc2xvdHMpKSx1Ll9zY29wZUlkP3RoaXMuX2M9ZnVuY3Rpb24oZSx0LG4scil7dmFyIGk9UHQocyxlLHQsbixyLGYpO3JldHVybiBpJiYhQXJyYXkuaXNBcnJheShpKSYmKGkuZm5TY29wZUlkPXUuX3Njb3BlSWQsaS5mbkNvbnRleHQ9byksaX06dGhpcy5fYz1mdW5jdGlvbihlLHQsbixyKXtyZXR1cm4gUHQocyxlLHQsbixyLGYpfX1mdW5jdGlvbiBFdChlLHQsbixyLGkpe3ZhciBvPW1lKGUpO3JldHVybiBvLmZuQ29udGV4dD1uLG8uZm5PcHRpb25zPXIsdC5zbG90JiYoKG8uZGF0YXx8KG8uZGF0YT17fSkpLnNsb3Q9dC5zbG90KSxvfWZ1bmN0aW9uIE50KGUsdCl7Zm9yKHZhciBuIGluIHQpZVtiKG4pXT10W25dfVN0KFR0LnByb3RvdHlwZSk7dmFyIGp0PXtpbml0OmZ1bmN0aW9uKGUsdCl7aWYoZS5jb21wb25lbnRJbnN0YW5jZSYmIWUuY29tcG9uZW50SW5zdGFuY2UuX2lzRGVzdHJveWVkJiZlLmRhdGEua2VlcEFsaXZlKXt2YXIgcj1lO2p0LnByZXBhdGNoKHIscil9ZWxzZXsoZS5jb21wb25lbnRJbnN0YW5jZT1mdW5jdGlvbihlLHQpe3ZhciByPXtfaXNDb21wb25lbnQ6ITAsX3BhcmVudFZub2RlOmUscGFyZW50OnR9LGk9ZS5kYXRhLmlubGluZVRlbXBsYXRlO24oaSkmJihyLnJlbmRlcj1pLnJlbmRlcixyLnN0YXRpY1JlbmRlckZucz1pLnN0YXRpY1JlbmRlckZucyk7cmV0dXJuIG5ldyBlLmNvbXBvbmVudE9wdGlvbnMuQ3RvcihyKX0oZSxXdCkpLiRtb3VudCh0P2UuZWxtOnZvaWQgMCx0KX19LHByZXBhdGNoOmZ1bmN0aW9uKHQsbil7dmFyIHI9bi5jb21wb25lbnRPcHRpb25zOyFmdW5jdGlvbih0LG4scixpLG8pe3ZhciBhPWkuZGF0YS5zY29wZWRTbG90cyxzPXQuJHNjb3BlZFNsb3RzLGM9ISEoYSYmIWEuJHN0YWJsZXx8cyE9PWUmJiFzLiRzdGFibGV8fGEmJnQuJHNjb3BlZFNsb3RzLiRrZXkhPT1hLiRrZXkpLHU9ISEob3x8dC4kb3B0aW9ucy5fcmVuZGVyQ2hpbGRyZW58fGMpO3QuJG9wdGlvbnMuX3BhcmVudFZub2RlPWksdC4kdm5vZGU9aSx0Ll92bm9kZSYmKHQuX3Zub2RlLnBhcmVudD1pKTtpZih0LiRvcHRpb25zLl9yZW5kZXJDaGlsZHJlbj1vLHQuJGF0dHJzPWkuZGF0YS5hdHRyc3x8ZSx0LiRsaXN0ZW5lcnM9cnx8ZSxuJiZ0LiRvcHRpb25zLnByb3BzKXskZSghMSk7Zm9yKHZhciBsPXQuX3Byb3BzLGY9dC4kb3B0aW9ucy5fcHJvcEtleXN8fFtdLHA9MDtwPGYubGVuZ3RoO3ArKyl7dmFyIGQ9ZltwXSx2PXQuJG9wdGlvbnMucHJvcHM7bFtkXT1NZShkLHYsbix0KX0kZSghMCksdC4kb3B0aW9ucy5wcm9wc0RhdGE9bn1yPXJ8fGU7dmFyIGg9dC4kb3B0aW9ucy5fcGFyZW50TGlzdGVuZXJzO3QuJG9wdGlvbnMuX3BhcmVudExpc3RlbmVycz1yLHF0KHQscixoKSx1JiYodC4kc2xvdHM9dXQobyxpLmNvbnRleHQpLHQuJGZvcmNlVXBkYXRlKCkpfShuLmNvbXBvbmVudEluc3RhbmNlPXQuY29tcG9uZW50SW5zdGFuY2Usci5wcm9wc0RhdGEsci5saXN0ZW5lcnMsbixyLmNoaWxkcmVuKX0saW5zZXJ0OmZ1bmN0aW9uKGUpe3ZhciB0LG49ZS5jb250ZXh0LHI9ZS5jb21wb25lbnRJbnN0YW5jZTtyLl9pc01vdW50ZWR8fChyLl9pc01vdW50ZWQ9ITAsWXQociwibW91bnRlZCIpKSxlLmRhdGEua2VlcEFsaXZlJiYobi5faXNNb3VudGVkPygodD1yKS5faW5hY3RpdmU9ITEsZW4ucHVzaCh0KSk6WHQociwhMCkpfSxkZXN0cm95OmZ1bmN0aW9uKGUpe3ZhciB0PWUuY29tcG9uZW50SW5zdGFuY2U7dC5faXNEZXN0cm95ZWR8fChlLmRhdGEua2VlcEFsaXZlP2Z1bmN0aW9uIGUodCxuKXtpZihuJiYodC5fZGlyZWN0SW5hY3RpdmU9ITAsR3QodCkpKXJldHVybjtpZighdC5faW5hY3RpdmUpe3QuX2luYWN0aXZlPSEwO2Zvcih2YXIgcj0wO3I8dC4kY2hpbGRyZW4ubGVuZ3RoO3IrKyllKHQuJGNoaWxkcmVuW3JdKTtZdCh0LCJkZWFjdGl2YXRlZCIpfX0odCwhMCk6dC4kZGVzdHJveSgpKX19LER0PU9iamVjdC5rZXlzKGp0KTtmdW5jdGlvbiBMdChpLGEscyxjLGwpe2lmKCF0KGkpKXt2YXIgZj1zLiRvcHRpb25zLl9iYXNlO2lmKG8oaSkmJihpPWYuZXh0ZW5kKGkpKSwiZnVuY3Rpb24iPT10eXBlb2YgaSl7dmFyIHA7aWYodChpLmNpZCkmJnZvaWQgMD09PShpPWZ1bmN0aW9uKGUsaSl7aWYocihlLmVycm9yKSYmbihlLmVycm9yQ29tcCkpcmV0dXJuIGUuZXJyb3JDb21wO2lmKG4oZS5yZXNvbHZlZCkpcmV0dXJuIGUucmVzb2x2ZWQ7dmFyIGE9SHQ7YSYmbihlLm93bmVycykmJi0xPT09ZS5vd25lcnMuaW5kZXhPZihhKSYmZS5vd25lcnMucHVzaChhKTtpZihyKGUubG9hZGluZykmJm4oZS5sb2FkaW5nQ29tcCkpcmV0dXJuIGUubG9hZGluZ0NvbXA7aWYoYSYmIW4oZS5vd25lcnMpKXt2YXIgcz1lLm93bmVycz1bYV0sYz0hMCxsPW51bGwsZj1udWxsO2EuJG9uKCJob29rOmRlc3Ryb3llZCIsZnVuY3Rpb24oKXtyZXR1cm4gaChzLGEpfSk7dmFyIHA9ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PTAsbj1zLmxlbmd0aDt0PG47dCsrKXNbdF0uJGZvcmNlVXBkYXRlKCk7ZSYmKHMubGVuZ3RoPTAsbnVsbCE9PWwmJihjbGVhclRpbWVvdXQobCksbD1udWxsKSxudWxsIT09ZiYmKGNsZWFyVGltZW91dChmKSxmPW51bGwpKX0sZD1EKGZ1bmN0aW9uKHQpe2UucmVzb2x2ZWQ9QnQodCxpKSxjP3MubGVuZ3RoPTA6cCghMCl9KSx2PUQoZnVuY3Rpb24odCl7bihlLmVycm9yQ29tcCkmJihlLmVycm9yPSEwLHAoITApKX0pLG09ZShkLHYpO3JldHVybiBvKG0pJiYodShtKT90KGUucmVzb2x2ZWQpJiZtLnRoZW4oZCx2KTp1KG0uY29tcG9uZW50KSYmKG0uY29tcG9uZW50LnRoZW4oZCx2KSxuKG0uZXJyb3IpJiYoZS5lcnJvckNvbXA9QnQobS5lcnJvcixpKSksbihtLmxvYWRpbmcpJiYoZS5sb2FkaW5nQ29tcD1CdChtLmxvYWRpbmcsaSksMD09PW0uZGVsYXk\/ZS5sb2FkaW5nPSEwOmw9c2V0VGltZW91dChmdW5jdGlvbigpe2w9bnVsbCx0KGUucmVzb2x2ZWQpJiZ0KGUuZXJyb3IpJiYoZS5sb2FkaW5nPSEwLHAoITEpKX0sbS5kZWxheXx8MjAwKSksbihtLnRpbWVvdXQpJiYoZj1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Zj1udWxsLHQoZS5yZXNvbHZlZCkmJnYobnVsbCl9LG0udGltZW91dCkpKSksYz0hMSxlLmxvYWRpbmc\/ZS5sb2FkaW5nQ29tcDplLnJlc29sdmVkfX0ocD1pLGYpKSlyZXR1cm4gZnVuY3Rpb24oZSx0LG4scixpKXt2YXIgbz12ZSgpO3JldHVybiBvLmFzeW5jRmFjdG9yeT1lLG8uYXN5bmNNZXRhPXtkYXRhOnQsY29udGV4dDpuLGNoaWxkcmVuOnIsdGFnOml9LG99KHAsYSxzLGMsbCk7YT1hfHx7fSwkbihpKSxuKGEubW9kZWwpJiZmdW5jdGlvbihlLHQpe3ZhciByPWUubW9kZWwmJmUubW9kZWwucHJvcHx8InZhbHVlIixpPWUubW9kZWwmJmUubW9kZWwuZXZlbnR8fCJpbnB1dCI7KHQuYXR0cnN8fCh0LmF0dHJzPXt9KSlbcl09dC5tb2RlbC52YWx1ZTt2YXIgbz10Lm9ufHwodC5vbj17fSksYT1vW2ldLHM9dC5tb2RlbC5jYWxsYmFjaztuKGEpPyhBcnJheS5pc0FycmF5KGEpPy0xPT09YS5pbmRleE9mKHMpOmEhPT1zKSYmKG9baV09W3NdLmNvbmNhdChhKSk6b1tpXT1zfShpLm9wdGlvbnMsYSk7dmFyIGQ9ZnVuY3Rpb24oZSxyLGkpe3ZhciBvPXIub3B0aW9ucy5wcm9wcztpZighdChvKSl7dmFyIGE9e30scz1lLmF0dHJzLGM9ZS5wcm9wcztpZihuKHMpfHxuKGMpKWZvcih2YXIgdSBpbiBvKXt2YXIgbD1DKHUpO290KGEsYyx1LGwsITApfHxvdChhLHMsdSxsLCExKX1yZXR1cm4gYX19KGEsaSk7aWYocihpLm9wdGlvbnMuZnVuY3Rpb25hbCkpcmV0dXJuIGZ1bmN0aW9uKHQscixpLG8sYSl7dmFyIHM9dC5vcHRpb25zLGM9e30sdT1zLnByb3BzO2lmKG4odSkpZm9yKHZhciBsIGluIHUpY1tsXT1NZShsLHUscnx8ZSk7ZWxzZSBuKGkuYXR0cnMpJiZOdChjLGkuYXR0cnMpLG4oaS5wcm9wcykmJk50KGMsaS5wcm9wcyk7dmFyIGY9bmV3IFR0KGksYyxhLG8sdCkscD1zLnJlbmRlci5jYWxsKG51bGwsZi5fYyxmKTtpZihwIGluc3RhbmNlb2YgcGUpcmV0dXJuIEV0KHAsaSxmLnBhcmVudCxzKTtpZihBcnJheS5pc0FycmF5KHApKXtmb3IodmFyIGQ9YXQocCl8fFtdLHY9bmV3IEFycmF5KGQubGVuZ3RoKSxoPTA7aDxkLmxlbmd0aDtoKyspdltoXT1FdChkW2hdLGksZi5wYXJlbnQscyk7cmV0dXJuIHZ9fShpLGQsYSxzLGMpO3ZhciB2PWEub247aWYoYS5vbj1hLm5hdGl2ZU9uLHIoaS5vcHRpb25zLmFic3RyYWN0KSl7dmFyIG09YS5zbG90O2E9e30sbSYmKGEuc2xvdD1tKX0hZnVuY3Rpb24oZSl7Zm9yKHZhciB0PWUuaG9va3x8KGUuaG9vaz17fSksbj0wO248RHQubGVuZ3RoO24rKyl7dmFyIHI9RHRbbl0saT10W3JdLG89anRbcl07aT09PW98fGkmJmkuX21lcmdlZHx8KHRbcl09aT9NdChvLGkpOm8pfX0oYSk7dmFyIHk9aS5vcHRpb25zLm5hbWV8fGw7cmV0dXJuIG5ldyBwZSgidnVlLWNvbXBvbmVudC0iK2kuY2lkKyh5PyItIit5OiIiKSxhLHZvaWQgMCx2b2lkIDAsdm9pZCAwLHMse0N0b3I6aSxwcm9wc0RhdGE6ZCxsaXN0ZW5lcnM6dix0YWc6bCxjaGlsZHJlbjpjfSxwKX19fWZ1bmN0aW9uIE10KGUsdCl7dmFyIG49ZnVuY3Rpb24obixyKXtlKG4sciksdChuLHIpfTtyZXR1cm4gbi5fbWVyZ2VkPSEwLG59dmFyIEl0PTEsRnQ9MjtmdW5jdGlvbiBQdChlLGEscyxjLHUsbCl7cmV0dXJuKEFycmF5LmlzQXJyYXkocyl8fGkocykpJiYodT1jLGM9cyxzPXZvaWQgMCkscihsKSYmKHU9RnQpLGZ1bmN0aW9uKGUsaSxhLHMsYyl7aWYobihhKSYmbihhLl9fb2JfXykpcmV0dXJuIHZlKCk7bihhKSYmbihhLmlzKSYmKGk9YS5pcyk7aWYoIWkpcmV0dXJuIHZlKCk7QXJyYXkuaXNBcnJheShzKSYmImZ1bmN0aW9uIj09dHlwZW9mIHNbMF0mJigoYT1hfHx7fSkuc2NvcGVkU2xvdHM9e2RlZmF1bHQ6c1swXX0scy5sZW5ndGg9MCk7Yz09PUZ0P3M9YXQocyk6Yz09PUl0JiYocz1mdW5jdGlvbihlKXtmb3IodmFyIHQ9MDt0PGUubGVuZ3RoO3QrKylpZihBcnJheS5pc0FycmF5KGVbdF0pKXJldHVybiBBcnJheS5wcm90b3R5cGUuY29uY2F0LmFwcGx5KFtdLGUpO3JldHVybiBlfShzKSk7dmFyIHUsbDtpZigic3RyaW5nIj09dHlwZW9mIGkpe3ZhciBmO2w9ZS4kdm5vZGUmJmUuJHZub2RlLm5zfHxGLmdldFRhZ05hbWVzcGFjZShpKSx1PUYuaXNSZXNlcnZlZFRhZyhpKT9uZXcgcGUoRi5wYXJzZVBsYXRmb3JtVGFnTmFtZShpKSxhLHMsdm9pZCAwLHZvaWQgMCxlKTphJiZhLnByZXx8IW4oZj1MZShlLiRvcHRpb25zLCJjb21wb25lbnRzIixpKSk\/bmV3IHBlKGksYSxzLHZvaWQgMCx2b2lkIDAsZSk6THQoZixhLGUscyxpKX1lbHNlIHU9THQoaSxhLGUscyk7cmV0dXJuIEFycmF5LmlzQXJyYXkodSk\/dTpuKHUpPyhuKGwpJiZmdW5jdGlvbiBlKGksbyxhKXtpLm5zPW87ImZvcmVpZ25PYmplY3QiPT09aS50YWcmJihvPXZvaWQgMCxhPSEwKTtpZihuKGkuY2hpbGRyZW4pKWZvcih2YXIgcz0wLGM9aS5jaGlsZHJlbi5sZW5ndGg7czxjO3MrKyl7dmFyIHU9aS5jaGlsZHJlbltzXTtuKHUudGFnKSYmKHQodS5ucyl8fHIoYSkmJiJzdmciIT09dS50YWcpJiZlKHUsbyxhKX19KHUsbCksbihhKSYmZnVuY3Rpb24oZSl7byhlLnN0eWxlKSYmZXQoZS5zdHlsZSk7byhlLmNsYXNzKSYmZXQoZS5jbGFzcyl9KGEpLHUpOnZlKCl9KGUsYSxzLGMsdSl9dmFyIFJ0LEh0PW51bGw7ZnVuY3Rpb24gQnQoZSx0KXtyZXR1cm4oZS5fX2VzTW9kdWxlfHxvZSYmIk1vZHVsZSI9PT1lW1N5bWJvbC50b1N0cmluZ1RhZ10pJiYoZT1lLmRlZmF1bHQpLG8oZSk\/dC5leHRlbmQoZSk6ZX1mdW5jdGlvbiBVdChlKXtyZXR1cm4gZS5pc0NvbW1lbnQmJmUuYXN5bmNGYWN0b3J5fWZ1bmN0aW9uIHp0KGUpe2lmKEFycmF5LmlzQXJyYXkoZSkpZm9yKHZhciB0PTA7dDxlLmxlbmd0aDt0Kyspe3ZhciByPWVbdF07aWYobihyKSYmKG4oci5jb21wb25lbnRPcHRpb25zKXx8VXQocikpKXJldHVybiByfX1mdW5jdGlvbiBWdChlLHQpe1J0LiRvbihlLHQpfWZ1bmN0aW9uIEt0KGUsdCl7UnQuJG9mZihlLHQpfWZ1bmN0aW9uIEp0KGUsdCl7dmFyIG49UnQ7cmV0dXJuIGZ1bmN0aW9uIHIoKXtudWxsIT09dC5hcHBseShudWxsLGFyZ3VtZW50cykmJm4uJG9mZihlLHIpfX1mdW5jdGlvbiBxdChlLHQsbil7UnQ9ZSxydCh0LG58fHt9LFZ0LEt0LEp0LGUpLFJ0PXZvaWQgMH12YXIgV3Q9bnVsbDtmdW5jdGlvbiBadChlKXt2YXIgdD1XdDtyZXR1cm4gV3Q9ZSxmdW5jdGlvbigpe1d0PXR9fWZ1bmN0aW9uIEd0KGUpe2Zvcig7ZSYmKGU9ZS4kcGFyZW50KTspaWYoZS5faW5hY3RpdmUpcmV0dXJuITA7cmV0dXJuITF9ZnVuY3Rpb24gWHQoZSx0KXtpZih0KXtpZihlLl9kaXJlY3RJbmFjdGl2ZT0hMSxHdChlKSlyZXR1cm59ZWxzZSBpZihlLl9kaXJlY3RJbmFjdGl2ZSlyZXR1cm47aWYoZS5faW5hY3RpdmV8fG51bGw9PT1lLl9pbmFjdGl2ZSl7ZS5faW5hY3RpdmU9ITE7Zm9yKHZhciBuPTA7bjxlLiRjaGlsZHJlbi5sZW5ndGg7bisrKVh0KGUuJGNoaWxkcmVuW25dKTtZdChlLCJhY3RpdmF0ZWQiKX19ZnVuY3Rpb24gWXQoZSx0KXtsZSgpO3ZhciBuPWUuJG9wdGlvbnNbdF0scj10KyIgaG9vayI7aWYobilmb3IodmFyIGk9MCxvPW4ubGVuZ3RoO2k8bztpKyspSGUobltpXSxlLG51bGwsZSxyKTtlLl9oYXNIb29rRXZlbnQmJmUuJGVtaXQoImhvb2s6Iit0KSxmZSgpfXZhciBRdD1bXSxlbj1bXSx0bj17fSxubj0hMSxybj0hMSxvbj0wO3ZhciBhbj0wLHNuPURhdGUubm93O2lmKHomJiFxKXt2YXIgY249d2luZG93LnBlcmZvcm1hbmNlO2NuJiYiZnVuY3Rpb24iPT10eXBlb2YgY24ubm93JiZzbigpPmRvY3VtZW50LmNyZWF0ZUV2ZW50KCJFdmVudCIpLnRpbWVTdGFtcCYmKHNuPWZ1bmN0aW9uKCl7cmV0dXJuIGNuLm5vdygpfSl9ZnVuY3Rpb24gdW4oKXt2YXIgZSx0O2Zvcihhbj1zbigpLHJuPSEwLFF0LnNvcnQoZnVuY3Rpb24oZSx0KXtyZXR1cm4gZS5pZC10LmlkfSksb249MDtvbjxRdC5sZW5ndGg7b24rKykoZT1RdFtvbl0pLmJlZm9yZSYmZS5iZWZvcmUoKSx0PWUuaWQsdG5bdF09bnVsbCxlLnJ1bigpO3ZhciBuPWVuLnNsaWNlKCkscj1RdC5zbGljZSgpO29uPVF0Lmxlbmd0aD1lbi5sZW5ndGg9MCx0bj17fSxubj1ybj0hMSxmdW5jdGlvbihlKXtmb3IodmFyIHQ9MDt0PGUubGVuZ3RoO3QrKyllW3RdLl9pbmFjdGl2ZT0hMCxYdChlW3RdLCEwKX0obiksZnVuY3Rpb24oZSl7dmFyIHQ9ZS5sZW5ndGg7Zm9yKDt0LS07KXt2YXIgbj1lW3RdLHI9bi52bTtyLl93YXRjaGVyPT09biYmci5faXNNb3VudGVkJiYhci5faXNEZXN0cm95ZWQmJll0KHIsInVwZGF0ZWQiKX19KHIpLG5lJiZGLmRldnRvb2xzJiZuZS5lbWl0KCJmbHVzaCIpfXZhciBsbj0wLGZuPWZ1bmN0aW9uKGUsdCxuLHIsaSl7dGhpcy52bT1lLGkmJihlLl93YXRjaGVyPXRoaXMpLGUuX3dhdGNoZXJzLnB1c2godGhpcykscj8odGhpcy5kZWVwPSEhci5kZWVwLHRoaXMudXNlcj0hIXIudXNlcix0aGlzLmxhenk9ISFyLmxhenksdGhpcy5zeW5jPSEhci5zeW5jLHRoaXMuYmVmb3JlPXIuYmVmb3JlKTp0aGlzLmRlZXA9dGhpcy51c2VyPXRoaXMubGF6eT10aGlzLnN5bmM9ITEsdGhpcy5jYj1uLHRoaXMuaWQ9Kytsbix0aGlzLmFjdGl2ZT0hMCx0aGlzLmRpcnR5PXRoaXMubGF6eSx0aGlzLmRlcHM9W10sdGhpcy5uZXdEZXBzPVtdLHRoaXMuZGVwSWRzPW5ldyBpZSx0aGlzLm5ld0RlcElkcz1uZXcgaWUsdGhpcy5leHByZXNzaW9uPSIiLCJmdW5jdGlvbiI9PXR5cGVvZiB0P3RoaXMuZ2V0dGVyPXQ6KHRoaXMuZ2V0dGVyPWZ1bmN0aW9uKGUpe2lmKCFILnRlc3QoZSkpe3ZhciB0PWUuc3BsaXQoIi4iKTtyZXR1cm4gZnVuY3Rpb24oZSl7Zm9yKHZhciBuPTA7bjx0Lmxlbmd0aDtuKyspe2lmKCFlKXJldHVybjtlPWVbdFtuXV19cmV0dXJuIGV9fX0odCksdGhpcy5nZXR0ZXJ8fCh0aGlzLmdldHRlcj1TKSksdGhpcy52YWx1ZT10aGlzLmxhenk\/dm9pZCAwOnRoaXMuZ2V0KCl9O2ZuLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24oKXt2YXIgZTtsZSh0aGlzKTt2YXIgdD10aGlzLnZtO3RyeXtlPXRoaXMuZ2V0dGVyLmNhbGwodCx0KX1jYXRjaChlKXtpZighdGhpcy51c2VyKXRocm93IGU7UmUoZSx0LCdnZXR0ZXIgZm9yIHdhdGNoZXIgIicrdGhpcy5leHByZXNzaW9uKyciJyl9ZmluYWxseXt0aGlzLmRlZXAmJmV0KGUpLGZlKCksdGhpcy5jbGVhbnVwRGVwcygpfXJldHVybiBlfSxmbi5wcm90b3R5cGUuYWRkRGVwPWZ1bmN0aW9uKGUpe3ZhciB0PWUuaWQ7dGhpcy5uZXdEZXBJZHMuaGFzKHQpfHwodGhpcy5uZXdEZXBJZHMuYWRkKHQpLHRoaXMubmV3RGVwcy5wdXNoKGUpLHRoaXMuZGVwSWRzLmhhcyh0KXx8ZS5hZGRTdWIodGhpcykpfSxmbi5wcm90b3R5cGUuY2xlYW51cERlcHM9ZnVuY3Rpb24oKXtmb3IodmFyIGU9dGhpcy5kZXBzLmxlbmd0aDtlLS07KXt2YXIgdD10aGlzLmRlcHNbZV07dGhpcy5uZXdEZXBJZHMuaGFzKHQuaWQpfHx0LnJlbW92ZVN1Yih0aGlzKX12YXIgbj10aGlzLmRlcElkczt0aGlzLmRlcElkcz10aGlzLm5ld0RlcElkcyx0aGlzLm5ld0RlcElkcz1uLHRoaXMubmV3RGVwSWRzLmNsZWFyKCksbj10aGlzLmRlcHMsdGhpcy5kZXBzPXRoaXMubmV3RGVwcyx0aGlzLm5ld0RlcHM9bix0aGlzLm5ld0RlcHMubGVuZ3RoPTB9LGZuLnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24oKXt0aGlzLmxhenk\/dGhpcy5kaXJ0eT0hMDp0aGlzLnN5bmM\/dGhpcy5ydW4oKTpmdW5jdGlvbihlKXt2YXIgdD1lLmlkO2lmKG51bGw9PXRuW3RdKXtpZih0blt0XT0hMCxybil7Zm9yKHZhciBuPVF0Lmxlbmd0aC0xO24+b24mJlF0W25dLmlkPmUuaWQ7KW4tLTtRdC5zcGxpY2UobisxLDAsZSl9ZWxzZSBRdC5wdXNoKGUpO25ufHwobm49ITAsWWUodW4pKX19KHRoaXMpfSxmbi5wcm90b3R5cGUucnVuPWZ1bmN0aW9uKCl7aWYodGhpcy5hY3RpdmUpe3ZhciBlPXRoaXMuZ2V0KCk7aWYoZSE9PXRoaXMudmFsdWV8fG8oZSl8fHRoaXMuZGVlcCl7dmFyIHQ9dGhpcy52YWx1ZTtpZih0aGlzLnZhbHVlPWUsdGhpcy51c2VyKXRyeXt0aGlzLmNiLmNhbGwodGhpcy52bSxlLHQpfWNhdGNoKGUpe1JlKGUsdGhpcy52bSwnY2FsbGJhY2sgZm9yIHdhdGNoZXIgIicrdGhpcy5leHByZXNzaW9uKyciJyl9ZWxzZSB0aGlzLmNiLmNhbGwodGhpcy52bSxlLHQpfX19LGZuLnByb3RvdHlwZS5ldmFsdWF0ZT1mdW5jdGlvbigpe3RoaXMudmFsdWU9dGhpcy5nZXQoKSx0aGlzLmRpcnR5PSExfSxmbi5wcm90b3R5cGUuZGVwZW5kPWZ1bmN0aW9uKCl7Zm9yKHZhciBlPXRoaXMuZGVwcy5sZW5ndGg7ZS0tOyl0aGlzLmRlcHNbZV0uZGVwZW5kKCl9LGZuLnByb3RvdHlwZS50ZWFyZG93bj1mdW5jdGlvbigpe2lmKHRoaXMuYWN0aXZlKXt0aGlzLnZtLl9pc0JlaW5nRGVzdHJveWVkfHxoKHRoaXMudm0uX3dhdGNoZXJzLHRoaXMpO2Zvcih2YXIgZT10aGlzLmRlcHMubGVuZ3RoO2UtLTspdGhpcy5kZXBzW2VdLnJlbW92ZVN1Yih0aGlzKTt0aGlzLmFjdGl2ZT0hMX19O3ZhciBwbj17ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsZ2V0OlMsc2V0OlN9O2Z1bmN0aW9uIGRuKGUsdCxuKXtwbi5nZXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc1t0XVtuXX0scG4uc2V0PWZ1bmN0aW9uKGUpe3RoaXNbdF1bbl09ZX0sT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsbixwbil9ZnVuY3Rpb24gdm4oZSl7ZS5fd2F0Y2hlcnM9W107dmFyIHQ9ZS4kb3B0aW9uczt0LnByb3BzJiZmdW5jdGlvbihlLHQpe3ZhciBuPWUuJG9wdGlvbnMucHJvcHNEYXRhfHx7fSxyPWUuX3Byb3BzPXt9LGk9ZS4kb3B0aW9ucy5fcHJvcEtleXM9W107ZS4kcGFyZW50JiYkZSghMSk7dmFyIG89ZnVuY3Rpb24obyl7aS5wdXNoKG8pO3ZhciBhPU1lKG8sdCxuLGUpO3hlKHIsbyxhKSxvIGluIGV8fGRuKGUsIl9wcm9wcyIsbyl9O2Zvcih2YXIgYSBpbiB0KW8oYSk7JGUoITApfShlLHQucHJvcHMpLHQubWV0aG9kcyYmZnVuY3Rpb24oZSx0KXtlLiRvcHRpb25zLnByb3BzO2Zvcih2YXIgbiBpbiB0KWVbbl09ImZ1bmN0aW9uIiE9dHlwZW9mIHRbbl0\/Uzp4KHRbbl0sZSl9KGUsdC5tZXRob2RzKSx0LmRhdGE\/ZnVuY3Rpb24oZSl7dmFyIHQ9ZS4kb3B0aW9ucy5kYXRhO3ModD1lLl9kYXRhPSJmdW5jdGlvbiI9PXR5cGVvZiB0P2Z1bmN0aW9uKGUsdCl7bGUoKTt0cnl7cmV0dXJuIGUuY2FsbCh0LHQpfWNhdGNoKGUpe3JldHVybiBSZShlLHQsImRhdGEoKSIpLHt9fWZpbmFsbHl7ZmUoKX19KHQsZSk6dHx8e30pfHwodD17fSk7dmFyIG49T2JqZWN0LmtleXModCkscj1lLiRvcHRpb25zLnByb3BzLGk9KGUuJG9wdGlvbnMubWV0aG9kcyxuLmxlbmd0aCk7Zm9yKDtpLS07KXt2YXIgbz1uW2ldO3ImJnkocixvKXx8KGE9dm9pZCAwLDM2IT09KGE9KG8rIiIpLmNoYXJDb2RlQXQoMCkpJiY5NSE9PWEmJmRuKGUsIl9kYXRhIixvKSl9dmFyIGE7Q2UodCwhMCl9KGUpOkNlKGUuX2RhdGE9e30sITApLHQuY29tcHV0ZWQmJmZ1bmN0aW9uKGUsdCl7dmFyIG49ZS5fY29tcHV0ZWRXYXRjaGVycz1PYmplY3QuY3JlYXRlKG51bGwpLHI9dGUoKTtmb3IodmFyIGkgaW4gdCl7dmFyIG89dFtpXSxhPSJmdW5jdGlvbiI9PXR5cGVvZiBvP286by5nZXQ7cnx8KG5baV09bmV3IGZuKGUsYXx8UyxTLGhuKSksaSBpbiBlfHxtbihlLGksbyl9fShlLHQuY29tcHV0ZWQpLHQud2F0Y2gmJnQud2F0Y2ghPT1ZJiZmdW5jdGlvbihlLHQpe2Zvcih2YXIgbiBpbiB0KXt2YXIgcj10W25dO2lmKEFycmF5LmlzQXJyYXkocikpZm9yKHZhciBpPTA7aTxyLmxlbmd0aDtpKyspX24oZSxuLHJbaV0pO2Vsc2UgX24oZSxuLHIpfX0oZSx0LndhdGNoKX12YXIgaG49e2xhenk6ITB9O2Z1bmN0aW9uIG1uKGUsdCxuKXt2YXIgcj0hdGUoKTsiZnVuY3Rpb24iPT10eXBlb2Ygbj8ocG4uZ2V0PXI\/eW4odCk6Z24obikscG4uc2V0PVMpOihwbi5nZXQ9bi5nZXQ\/ciYmITEhPT1uLmNhY2hlP3luKHQpOmduKG4uZ2V0KTpTLHBuLnNldD1uLnNldHx8UyksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCxwbil9ZnVuY3Rpb24geW4oZSl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5fY29tcHV0ZWRXYXRjaGVycyYmdGhpcy5fY29tcHV0ZWRXYXRjaGVyc1tlXTtpZih0KXJldHVybiB0LmRpcnR5JiZ0LmV2YWx1YXRlKCksY2UudGFyZ2V0JiZ0LmRlcGVuZCgpLHQudmFsdWV9fWZ1bmN0aW9uIGduKGUpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBlLmNhbGwodGhpcyx0aGlzKX19ZnVuY3Rpb24gX24oZSx0LG4scil7cmV0dXJuIHMobikmJihyPW4sbj1uLmhhbmRsZXIpLCJzdHJpbmciPT10eXBlb2YgbiYmKG49ZVtuXSksZS4kd2F0Y2godCxuLHIpfXZhciBibj0wO2Z1bmN0aW9uICRuKGUpe3ZhciB0PWUub3B0aW9ucztpZihlLnN1cGVyKXt2YXIgbj0kbihlLnN1cGVyKTtpZihuIT09ZS5zdXBlck9wdGlvbnMpe2Uuc3VwZXJPcHRpb25zPW47dmFyIHI9ZnVuY3Rpb24oZSl7dmFyIHQsbj1lLm9wdGlvbnMscj1lLnNlYWxlZE9wdGlvbnM7Zm9yKHZhciBpIGluIG4pbltpXSE9PXJbaV0mJih0fHwodD17fSksdFtpXT1uW2ldKTtyZXR1cm4gdH0oZSk7ciYmQShlLmV4dGVuZE9wdGlvbnMsciksKHQ9ZS5vcHRpb25zPURlKG4sZS5leHRlbmRPcHRpb25zKSkubmFtZSYmKHQuY29tcG9uZW50c1t0Lm5hbWVdPWUpfX1yZXR1cm4gdH1mdW5jdGlvbiB3bihlKXt0aGlzLl9pbml0KGUpfWZ1bmN0aW9uIENuKGUpe2UuY2lkPTA7dmFyIHQ9MTtlLmV4dGVuZD1mdW5jdGlvbihlKXtlPWV8fHt9O3ZhciBuPXRoaXMscj1uLmNpZCxpPWUuX0N0b3J8fChlLl9DdG9yPXt9KTtpZihpW3JdKXJldHVybiBpW3JdO3ZhciBvPWUubmFtZXx8bi5vcHRpb25zLm5hbWUsYT1mdW5jdGlvbihlKXt0aGlzLl9pbml0KGUpfTtyZXR1cm4oYS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShuLnByb3RvdHlwZSkpLmNvbnN0cnVjdG9yPWEsYS5jaWQ9dCsrLGEub3B0aW9ucz1EZShuLm9wdGlvbnMsZSksYS5zdXBlcj1uLGEub3B0aW9ucy5wcm9wcyYmZnVuY3Rpb24oZSl7dmFyIHQ9ZS5vcHRpb25zLnByb3BzO2Zvcih2YXIgbiBpbiB0KWRuKGUucHJvdG90eXBlLCJfcHJvcHMiLG4pfShhKSxhLm9wdGlvbnMuY29tcHV0ZWQmJmZ1bmN0aW9uKGUpe3ZhciB0PWUub3B0aW9ucy5jb21wdXRlZDtmb3IodmFyIG4gaW4gdCltbihlLnByb3RvdHlwZSxuLHRbbl0pfShhKSxhLmV4dGVuZD1uLmV4dGVuZCxhLm1peGluPW4ubWl4aW4sYS51c2U9bi51c2UsTS5mb3JFYWNoKGZ1bmN0aW9uKGUpe2FbZV09bltlXX0pLG8mJihhLm9wdGlvbnMuY29tcG9uZW50c1tvXT1hKSxhLnN1cGVyT3B0aW9ucz1uLm9wdGlvbnMsYS5leHRlbmRPcHRpb25zPWUsYS5zZWFsZWRPcHRpb25zPUEoe30sYS5vcHRpb25zKSxpW3JdPWEsYX19ZnVuY3Rpb24geG4oZSl7cmV0dXJuIGUmJihlLkN0b3Iub3B0aW9ucy5uYW1lfHxlLnRhZyl9ZnVuY3Rpb24ga24oZSx0KXtyZXR1cm4gQXJyYXkuaXNBcnJheShlKT9lLmluZGV4T2YodCk+LTE6InN0cmluZyI9PXR5cGVvZiBlP2Uuc3BsaXQoIiwiKS5pbmRleE9mKHQpPi0xOihuPWUsIltvYmplY3QgUmVnRXhwXSI9PT1hLmNhbGwobikmJmUudGVzdCh0KSk7dmFyIG59ZnVuY3Rpb24gQW4oZSx0KXt2YXIgbj1lLmNhY2hlLHI9ZS5rZXlzLGk9ZS5fdm5vZGU7Zm9yKHZhciBvIGluIG4pe3ZhciBhPW5bb107aWYoYSl7dmFyIHM9eG4oYS5jb21wb25lbnRPcHRpb25zKTtzJiYhdChzKSYmT24obixvLHIsaSl9fX1mdW5jdGlvbiBPbihlLHQsbixyKXt2YXIgaT1lW3RdOyFpfHxyJiZpLnRhZz09PXIudGFnfHxpLmNvbXBvbmVudEluc3RhbmNlLiRkZXN0cm95KCksZVt0XT1udWxsLGgobix0KX0hZnVuY3Rpb24odCl7dC5wcm90b3R5cGUuX2luaXQ9ZnVuY3Rpb24odCl7dmFyIG49dGhpcztuLl91aWQ9Ym4rKyxuLl9pc1Z1ZT0hMCx0JiZ0Ll9pc0NvbXBvbmVudD9mdW5jdGlvbihlLHQpe3ZhciBuPWUuJG9wdGlvbnM9T2JqZWN0LmNyZWF0ZShlLmNvbnN0cnVjdG9yLm9wdGlvbnMpLHI9dC5fcGFyZW50Vm5vZGU7bi5wYXJlbnQ9dC5wYXJlbnQsbi5fcGFyZW50Vm5vZGU9cjt2YXIgaT1yLmNvbXBvbmVudE9wdGlvbnM7bi5wcm9wc0RhdGE9aS5wcm9wc0RhdGEsbi5fcGFyZW50TGlzdGVuZXJzPWkubGlzdGVuZXJzLG4uX3JlbmRlckNoaWxkcmVuPWkuY2hpbGRyZW4sbi5fY29tcG9uZW50VGFnPWkudGFnLHQucmVuZGVyJiYobi5yZW5kZXI9dC5yZW5kZXIsbi5zdGF0aWNSZW5kZXJGbnM9dC5zdGF0aWNSZW5kZXJGbnMpfShuLHQpOm4uJG9wdGlvbnM9RGUoJG4obi5jb25zdHJ1Y3RvciksdHx8e30sbiksbi5fcmVuZGVyUHJveHk9bixuLl9zZWxmPW4sZnVuY3Rpb24oZSl7dmFyIHQ9ZS4kb3B0aW9ucyxuPXQucGFyZW50O2lmKG4mJiF0LmFic3RyYWN0KXtmb3IoO24uJG9wdGlvbnMuYWJzdHJhY3QmJm4uJHBhcmVudDspbj1uLiRwYXJlbnQ7bi4kY2hpbGRyZW4ucHVzaChlKX1lLiRwYXJlbnQ9bixlLiRyb290PW4\/bi4kcm9vdDplLGUuJGNoaWxkcmVuPVtdLGUuJHJlZnM9e30sZS5fd2F0Y2hlcj1udWxsLGUuX2luYWN0aXZlPW51bGwsZS5fZGlyZWN0SW5hY3RpdmU9ITEsZS5faXNNb3VudGVkPSExLGUuX2lzRGVzdHJveWVkPSExLGUuX2lzQmVpbmdEZXN0cm95ZWQ9ITF9KG4pLGZ1bmN0aW9uKGUpe2UuX2V2ZW50cz1PYmplY3QuY3JlYXRlKG51bGwpLGUuX2hhc0hvb2tFdmVudD0hMTt2YXIgdD1lLiRvcHRpb25zLl9wYXJlbnRMaXN0ZW5lcnM7dCYmcXQoZSx0KX0obiksZnVuY3Rpb24odCl7dC5fdm5vZGU9bnVsbCx0Ll9zdGF0aWNUcmVlcz1udWxsO3ZhciBuPXQuJG9wdGlvbnMscj10LiR2bm9kZT1uLl9wYXJlbnRWbm9kZSxpPXImJnIuY29udGV4dDt0LiRzbG90cz11dChuLl9yZW5kZXJDaGlsZHJlbixpKSx0LiRzY29wZWRTbG90cz1lLHQuX2M9ZnVuY3Rpb24oZSxuLHIsaSl7cmV0dXJuIFB0KHQsZSxuLHIsaSwhMSl9LHQuJGNyZWF0ZUVsZW1lbnQ9ZnVuY3Rpb24oZSxuLHIsaSl7cmV0dXJuIFB0KHQsZSxuLHIsaSwhMCl9O3ZhciBvPXImJnIuZGF0YTt4ZSh0LCIkYXR0cnMiLG8mJm8uYXR0cnN8fGUsbnVsbCwhMCkseGUodCwiJGxpc3RlbmVycyIsbi5fcGFyZW50TGlzdGVuZXJzfHxlLG51bGwsITApfShuKSxZdChuLCJiZWZvcmVDcmVhdGUiKSxmdW5jdGlvbihlKXt2YXIgdD1jdChlLiRvcHRpb25zLmluamVjdCxlKTt0JiYoJGUoITEpLE9iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24obil7eGUoZSxuLHRbbl0pfSksJGUoITApKX0obiksdm4obiksZnVuY3Rpb24oZSl7dmFyIHQ9ZS4kb3B0aW9ucy5wcm92aWRlO3QmJihlLl9wcm92aWRlZD0iZnVuY3Rpb24iPT10eXBlb2YgdD90LmNhbGwoZSk6dCl9KG4pLFl0KG4sImNyZWF0ZWQiKSxuLiRvcHRpb25zLmVsJiZuLiRtb3VudChuLiRvcHRpb25zLmVsKX19KHduKSxmdW5jdGlvbihlKXt2YXIgdD17Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2RhdGF9fSxuPXtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fcHJvcHN9fTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsIiRkYXRhIix0KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsIiRwcm9wcyIsbiksZS5wcm90b3R5cGUuJHNldD1rZSxlLnByb3RvdHlwZS4kZGVsZXRlPUFlLGUucHJvdG90eXBlLiR3YXRjaD1mdW5jdGlvbihlLHQsbil7aWYocyh0KSlyZXR1cm4gX24odGhpcyxlLHQsbik7KG49bnx8e30pLnVzZXI9ITA7dmFyIHI9bmV3IGZuKHRoaXMsZSx0LG4pO2lmKG4uaW1tZWRpYXRlKXRyeXt0LmNhbGwodGhpcyxyLnZhbHVlKX1jYXRjaChlKXtSZShlLHRoaXMsJ2NhbGxiYWNrIGZvciBpbW1lZGlhdGUgd2F0Y2hlciAiJytyLmV4cHJlc3Npb24rJyInKX1yZXR1cm4gZnVuY3Rpb24oKXtyLnRlYXJkb3duKCl9fX0od24pLGZ1bmN0aW9uKGUpe3ZhciB0PS9eaG9vazovO2UucHJvdG90eXBlLiRvbj1mdW5jdGlvbihlLG4pe3ZhciByPXRoaXM7aWYoQXJyYXkuaXNBcnJheShlKSlmb3IodmFyIGk9MCxvPWUubGVuZ3RoO2k8bztpKyspci4kb24oZVtpXSxuKTtlbHNlKHIuX2V2ZW50c1tlXXx8KHIuX2V2ZW50c1tlXT1bXSkpLnB1c2gobiksdC50ZXN0KGUpJiYoci5faGFzSG9va0V2ZW50PSEwKTtyZXR1cm4gcn0sZS5wcm90b3R5cGUuJG9uY2U9ZnVuY3Rpb24oZSx0KXt2YXIgbj10aGlzO2Z1bmN0aW9uIHIoKXtuLiRvZmYoZSxyKSx0LmFwcGx5KG4sYXJndW1lbnRzKX1yZXR1cm4gci5mbj10LG4uJG9uKGUsciksbn0sZS5wcm90b3R5cGUuJG9mZj1mdW5jdGlvbihlLHQpe3ZhciBuPXRoaXM7aWYoIWFyZ3VtZW50cy5sZW5ndGgpcmV0dXJuIG4uX2V2ZW50cz1PYmplY3QuY3JlYXRlKG51bGwpLG47aWYoQXJyYXkuaXNBcnJheShlKSl7Zm9yKHZhciByPTAsaT1lLmxlbmd0aDtyPGk7cisrKW4uJG9mZihlW3JdLHQpO3JldHVybiBufXZhciBvLGE9bi5fZXZlbnRzW2VdO2lmKCFhKXJldHVybiBuO2lmKCF0KXJldHVybiBuLl9ldmVudHNbZV09bnVsbCxuO2Zvcih2YXIgcz1hLmxlbmd0aDtzLS07KWlmKChvPWFbc10pPT09dHx8by5mbj09PXQpe2Euc3BsaWNlKHMsMSk7YnJlYWt9cmV0dXJuIG59LGUucHJvdG90eXBlLiRlbWl0PWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMuX2V2ZW50c1tlXTtpZih0KXt0PXQubGVuZ3RoPjE\/ayh0KTp0O2Zvcih2YXIgbj1rKGFyZ3VtZW50cywxKSxyPSdldmVudCBoYW5kbGVyIGZvciAiJytlKyciJyxpPTAsbz10Lmxlbmd0aDtpPG87aSsrKUhlKHRbaV0sdGhpcyxuLHRoaXMscil9cmV0dXJuIHRoaXN9fSh3biksZnVuY3Rpb24oZSl7ZS5wcm90b3R5cGUuX3VwZGF0ZT1mdW5jdGlvbihlLHQpe3ZhciBuPXRoaXMscj1uLiRlbCxpPW4uX3Zub2RlLG89WnQobik7bi5fdm5vZGU9ZSxuLiRlbD1pP24uX19wYXRjaF9fKGksZSk6bi5fX3BhdGNoX18obi4kZWwsZSx0LCExKSxvKCksciYmKHIuX192dWVfXz1udWxsKSxuLiRlbCYmKG4uJGVsLl9fdnVlX189biksbi4kdm5vZGUmJm4uJHBhcmVudCYmbi4kdm5vZGU9PT1uLiRwYXJlbnQuX3Zub2RlJiYobi4kcGFyZW50LiRlbD1uLiRlbCl9LGUucHJvdG90eXBlLiRmb3JjZVVwZGF0ZT1mdW5jdGlvbigpe3RoaXMuX3dhdGNoZXImJnRoaXMuX3dhdGNoZXIudXBkYXRlKCl9LGUucHJvdG90eXBlLiRkZXN0cm95PWZ1bmN0aW9uKCl7dmFyIGU9dGhpcztpZighZS5faXNCZWluZ0Rlc3Ryb3llZCl7WXQoZSwiYmVmb3JlRGVzdHJveSIpLGUuX2lzQmVpbmdEZXN0cm95ZWQ9ITA7dmFyIHQ9ZS4kcGFyZW50OyF0fHx0Ll9pc0JlaW5nRGVzdHJveWVkfHxlLiRvcHRpb25zLmFic3RyYWN0fHxoKHQuJGNoaWxkcmVuLGUpLGUuX3dhdGNoZXImJmUuX3dhdGNoZXIudGVhcmRvd24oKTtmb3IodmFyIG49ZS5fd2F0Y2hlcnMubGVuZ3RoO24tLTspZS5fd2F0Y2hlcnNbbl0udGVhcmRvd24oKTtlLl9kYXRhLl9fb2JfXyYmZS5fZGF0YS5fX29iX18udm1Db3VudC0tLGUuX2lzRGVzdHJveWVkPSEwLGUuX19wYXRjaF9fKGUuX3Zub2RlLG51bGwpLFl0KGUsImRlc3Ryb3llZCIpLGUuJG9mZigpLGUuJGVsJiYoZS4kZWwuX192dWVfXz1udWxsKSxlLiR2bm9kZSYmKGUuJHZub2RlLnBhcmVudD1udWxsKX19fSh3biksZnVuY3Rpb24oZSl7U3QoZS5wcm90b3R5cGUpLGUucHJvdG90eXBlLiRuZXh0VGljaz1mdW5jdGlvbihlKXtyZXR1cm4gWWUoZSx0aGlzKX0sZS5wcm90b3R5cGUuX3JlbmRlcj1mdW5jdGlvbigpe3ZhciBlLHQ9dGhpcyxuPXQuJG9wdGlvbnMscj1uLnJlbmRlcixpPW4uX3BhcmVudFZub2RlO2kmJih0LiRzY29wZWRTbG90cz1mdChpLmRhdGEuc2NvcGVkU2xvdHMsdC4kc2xvdHMsdC4kc2NvcGVkU2xvdHMpKSx0LiR2bm9kZT1pO3RyeXtIdD10LGU9ci5jYWxsKHQuX3JlbmRlclByb3h5LHQuJGNyZWF0ZUVsZW1lbnQpfWNhdGNoKG4pe1JlKG4sdCwicmVuZGVyIiksZT10Ll92bm9kZX1maW5hbGx5e0h0PW51bGx9cmV0dXJuIEFycmF5LmlzQXJyYXkoZSkmJjE9PT1lLmxlbmd0aCYmKGU9ZVswXSksZSBpbnN0YW5jZW9mIHBlfHwoZT12ZSgpKSxlLnBhcmVudD1pLGV9fSh3bik7dmFyIFNuPVtTdHJpbmcsUmVnRXhwLEFycmF5XSxUbj17S2VlcEFsaXZlOntuYW1lOiJrZWVwLWFsaXZlIixhYnN0cmFjdDohMCxwcm9wczp7aW5jbHVkZTpTbixleGNsdWRlOlNuLG1heDpbU3RyaW5nLE51bWJlcl19LGNyZWF0ZWQ6ZnVuY3Rpb24oKXt0aGlzLmNhY2hlPU9iamVjdC5jcmVhdGUobnVsbCksdGhpcy5rZXlzPVtdfSxkZXN0cm95ZWQ6ZnVuY3Rpb24oKXtmb3IodmFyIGUgaW4gdGhpcy5jYWNoZSlPbih0aGlzLmNhY2hlLGUsdGhpcy5rZXlzKX0sbW91bnRlZDpmdW5jdGlvbigpe3ZhciBlPXRoaXM7dGhpcy4kd2F0Y2goImluY2x1ZGUiLGZ1bmN0aW9uKHQpe0FuKGUsZnVuY3Rpb24oZSl7cmV0dXJuIGtuKHQsZSl9KX0pLHRoaXMuJHdhdGNoKCJleGNsdWRlIixmdW5jdGlvbih0KXtBbihlLGZ1bmN0aW9uKGUpe3JldHVybiFrbih0LGUpfSl9KX0scmVuZGVyOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy4kc2xvdHMuZGVmYXVsdCx0PXp0KGUpLG49dCYmdC5jb21wb25lbnRPcHRpb25zO2lmKG4pe3ZhciByPXhuKG4pLGk9dGhpcy5pbmNsdWRlLG89dGhpcy5leGNsdWRlO2lmKGkmJighcnx8IWtuKGkscikpfHxvJiZyJiZrbihvLHIpKXJldHVybiB0O3ZhciBhPXRoaXMuY2FjaGUscz10aGlzLmtleXMsYz1udWxsPT10LmtleT9uLkN0b3IuY2lkKyhuLnRhZz8iOjoiK24udGFnOiIiKTp0LmtleTthW2NdPyh0LmNvbXBvbmVudEluc3RhbmNlPWFbY10uY29tcG9uZW50SW5zdGFuY2UsaChzLGMpLHMucHVzaChjKSk6KGFbY109dCxzLnB1c2goYyksdGhpcy5tYXgmJnMubGVuZ3RoPnBhcnNlSW50KHRoaXMubWF4KSYmT24oYSxzWzBdLHMsdGhpcy5fdm5vZGUpKSx0LmRhdGEua2VlcEFsaXZlPSEwfXJldHVybiB0fHxlJiZlWzBdfX19OyFmdW5jdGlvbihlKXt2YXIgdD17Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIEZ9fTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiY29uZmlnIix0KSxlLnV0aWw9e3dhcm46YWUsZXh0ZW5kOkEsbWVyZ2VPcHRpb25zOkRlLGRlZmluZVJlYWN0aXZlOnhlfSxlLnNldD1rZSxlLmRlbGV0ZT1BZSxlLm5leHRUaWNrPVllLGUub2JzZXJ2YWJsZT1mdW5jdGlvbihlKXtyZXR1cm4gQ2UoZSksZX0sZS5vcHRpb25zPU9iamVjdC5jcmVhdGUobnVsbCksTS5mb3JFYWNoKGZ1bmN0aW9uKHQpe2Uub3B0aW9uc1t0KyJzIl09T2JqZWN0LmNyZWF0ZShudWxsKX0pLGUub3B0aW9ucy5fYmFzZT1lLEEoZS5vcHRpb25zLmNvbXBvbmVudHMsVG4pLGZ1bmN0aW9uKGUpe2UudXNlPWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMuX2luc3RhbGxlZFBsdWdpbnN8fCh0aGlzLl9pbnN0YWxsZWRQbHVnaW5zPVtdKTtpZih0LmluZGV4T2YoZSk+LTEpcmV0dXJuIHRoaXM7dmFyIG49ayhhcmd1bWVudHMsMSk7cmV0dXJuIG4udW5zaGlmdCh0aGlzKSwiZnVuY3Rpb24iPT10eXBlb2YgZS5pbnN0YWxsP2UuaW5zdGFsbC5hcHBseShlLG4pOiJmdW5jdGlvbiI9PXR5cGVvZiBlJiZlLmFwcGx5KG51bGwsbiksdC5wdXNoKGUpLHRoaXN9fShlKSxmdW5jdGlvbihlKXtlLm1peGluPWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLm9wdGlvbnM9RGUodGhpcy5vcHRpb25zLGUpLHRoaXN9fShlKSxDbihlKSxmdW5jdGlvbihlKXtNLmZvckVhY2goZnVuY3Rpb24odCl7ZVt0XT1mdW5jdGlvbihlLG4pe3JldHVybiBuPygiY29tcG9uZW50Ij09PXQmJnMobikmJihuLm5hbWU9bi5uYW1lfHxlLG49dGhpcy5vcHRpb25zLl9iYXNlLmV4dGVuZChuKSksImRpcmVjdGl2ZSI9PT10JiYiZnVuY3Rpb24iPT10eXBlb2YgbiYmKG49e2JpbmQ6bix1cGRhdGU6bn0pLHRoaXMub3B0aW9uc1t0KyJzIl1bZV09bixuKTp0aGlzLm9wdGlvbnNbdCsicyJdW2VdfX0pfShlKX0od24pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh3bi5wcm90b3R5cGUsIiRpc1NlcnZlciIse2dldDp0ZX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh3bi5wcm90b3R5cGUsIiRzc3JDb250ZXh0Iix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuJHZub2RlJiZ0aGlzLiR2bm9kZS5zc3JDb250ZXh0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh3biwiRnVuY3Rpb25hbFJlbmRlckNvbnRleHQiLHt2YWx1ZTpUdH0pLHduLnZlcnNpb249IjIuNi4xMSI7dmFyIEVuPXAoInN0eWxlLGNsYXNzIiksTm49cCgiaW5wdXQsdGV4dGFyZWEsb3B0aW9uLHNlbGVjdCxwcm9ncmVzcyIpLGpuPWZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4idmFsdWUiPT09biYmTm4oZSkmJiJidXR0b24iIT09dHx8InNlbGVjdGVkIj09PW4mJiJvcHRpb24iPT09ZXx8ImNoZWNrZWQiPT09biYmImlucHV0Ij09PWV8fCJtdXRlZCI9PT1uJiYidmlkZW8iPT09ZX0sRG49cCgiY29udGVudGVkaXRhYmxlLGRyYWdnYWJsZSxzcGVsbGNoZWNrIiksTG49cCgiZXZlbnRzLGNhcmV0LHR5cGluZyxwbGFpbnRleHQtb25seSIpLE1uPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIEhuKHQpfHwiZmFsc2UiPT09dD8iZmFsc2UiOiJjb250ZW50ZWRpdGFibGUiPT09ZSYmTG4odCk\/dDoidHJ1ZSJ9LEluPXAoImFsbG93ZnVsbHNjcmVlbixhc3luYyxhdXRvZm9jdXMsYXV0b3BsYXksY2hlY2tlZCxjb21wYWN0LGNvbnRyb2xzLGRlY2xhcmUsZGVmYXVsdCxkZWZhdWx0Y2hlY2tlZCxkZWZhdWx0bXV0ZWQsZGVmYXVsdHNlbGVjdGVkLGRlZmVyLGRpc2FibGVkLGVuYWJsZWQsZm9ybW5vdmFsaWRhdGUsaGlkZGVuLGluZGV0ZXJtaW5hdGUsaW5lcnQsaXNtYXAsaXRlbXNjb3BlLGxvb3AsbXVsdGlwbGUsbXV0ZWQsbm9ocmVmLG5vcmVzaXplLG5vc2hhZGUsbm92YWxpZGF0ZSxub3dyYXAsb3BlbixwYXVzZW9uZXhpdCxyZWFkb25seSxyZXF1aXJlZCxyZXZlcnNlZCxzY29wZWQsc2VhbWxlc3Msc2VsZWN0ZWQsc29ydGFibGUsdHJhbnNsYXRlLHRydWVzcGVlZCx0eXBlbXVzdG1hdGNoLHZpc2libGUiKSxGbj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIsUG49ZnVuY3Rpb24oZSl7cmV0dXJuIjoiPT09ZS5jaGFyQXQoNSkmJiJ4bGluayI9PT1lLnNsaWNlKDAsNSl9LFJuPWZ1bmN0aW9uKGUpe3JldHVybiBQbihlKT9lLnNsaWNlKDYsZS5sZW5ndGgpOiIifSxIbj1mdW5jdGlvbihlKXtyZXR1cm4gbnVsbD09ZXx8ITE9PT1lfTtmdW5jdGlvbiBCbihlKXtmb3IodmFyIHQ9ZS5kYXRhLHI9ZSxpPWU7bihpLmNvbXBvbmVudEluc3RhbmNlKTspKGk9aS5jb21wb25lbnRJbnN0YW5jZS5fdm5vZGUpJiZpLmRhdGEmJih0PVVuKGkuZGF0YSx0KSk7Zm9yKDtuKHI9ci5wYXJlbnQpOylyJiZyLmRhdGEmJih0PVVuKHQsci5kYXRhKSk7cmV0dXJuIGZ1bmN0aW9uKGUsdCl7aWYobihlKXx8bih0KSlyZXR1cm4gem4oZSxWbih0KSk7cmV0dXJuIiJ9KHQuc3RhdGljQ2xhc3MsdC5jbGFzcyl9ZnVuY3Rpb24gVW4oZSx0KXtyZXR1cm57c3RhdGljQ2xhc3M6em4oZS5zdGF0aWNDbGFzcyx0LnN0YXRpY0NsYXNzKSxjbGFzczpuKGUuY2xhc3MpP1tlLmNsYXNzLHQuY2xhc3NdOnQuY2xhc3N9fWZ1bmN0aW9uIHpuKGUsdCl7cmV0dXJuIGU\/dD9lKyIgIit0OmU6dHx8IiJ9ZnVuY3Rpb24gVm4oZSl7cmV0dXJuIEFycmF5LmlzQXJyYXkoZSk\/ZnVuY3Rpb24oZSl7Zm9yKHZhciB0LHI9IiIsaT0wLG89ZS5sZW5ndGg7aTxvO2krKyluKHQ9Vm4oZVtpXSkpJiYiIiE9PXQmJihyJiYocis9IiAiKSxyKz10KTtyZXR1cm4gcn0oZSk6byhlKT9mdW5jdGlvbihlKXt2YXIgdD0iIjtmb3IodmFyIG4gaW4gZSllW25dJiYodCYmKHQrPSIgIiksdCs9bik7cmV0dXJuIHR9KGUpOiJzdHJpbmciPT10eXBlb2YgZT9lOiIifXZhciBLbj17c3ZnOiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsbWF0aDoiaHR0cDovL3d3dy53My5vcmcvMTk5OC9NYXRoL01hdGhNTCJ9LEpuPXAoImh0bWwsYm9keSxiYXNlLGhlYWQsbGluayxtZXRhLHN0eWxlLHRpdGxlLGFkZHJlc3MsYXJ0aWNsZSxhc2lkZSxmb290ZXIsaGVhZGVyLGgxLGgyLGgzLGg0LGg1LGg2LGhncm91cCxuYXYsc2VjdGlvbixkaXYsZGQsZGwsZHQsZmlnY2FwdGlvbixmaWd1cmUscGljdHVyZSxocixpbWcsbGksbWFpbixvbCxwLHByZSx1bCxhLGIsYWJicixiZGksYmRvLGJyLGNpdGUsY29kZSxkYXRhLGRmbixlbSxpLGtiZCxtYXJrLHEscnAscnQscnRjLHJ1YnkscyxzYW1wLHNtYWxsLHNwYW4sc3Ryb25nLHN1YixzdXAsdGltZSx1LHZhcix3YnIsYXJlYSxhdWRpbyxtYXAsdHJhY2ssdmlkZW8sZW1iZWQsb2JqZWN0LHBhcmFtLHNvdXJjZSxjYW52YXMsc2NyaXB0LG5vc2NyaXB0LGRlbCxpbnMsY2FwdGlvbixjb2wsY29sZ3JvdXAsdGFibGUsdGhlYWQsdGJvZHksdGQsdGgsdHIsYnV0dG9uLGRhdGFsaXN0LGZpZWxkc2V0LGZvcm0saW5wdXQsbGFiZWwsbGVnZW5kLG1ldGVyLG9wdGdyb3VwLG9wdGlvbixvdXRwdXQscHJvZ3Jlc3Msc2VsZWN0LHRleHRhcmVhLGRldGFpbHMsZGlhbG9nLG1lbnUsbWVudWl0ZW0sc3VtbWFyeSxjb250ZW50LGVsZW1lbnQsc2hhZG93LHRlbXBsYXRlLGJsb2NrcXVvdGUsaWZyYW1lLHRmb290IikscW49cCgic3ZnLGFuaW1hdGUsY2lyY2xlLGNsaXBwYXRoLGN1cnNvcixkZWZzLGRlc2MsZWxsaXBzZSxmaWx0ZXIsZm9udC1mYWNlLGZvcmVpZ25PYmplY3QsZyxnbHlwaCxpbWFnZSxsaW5lLG1hcmtlcixtYXNrLG1pc3NpbmctZ2x5cGgscGF0aCxwYXR0ZXJuLHBvbHlnb24scG9seWxpbmUscmVjdCxzd2l0Y2gsc3ltYm9sLHRleHQsdGV4dHBhdGgsdHNwYW4sdXNlLHZpZXciLCEwKSxXbj1mdW5jdGlvbihlKXtyZXR1cm4gSm4oZSl8fHFuKGUpfTtmdW5jdGlvbiBabihlKXtyZXR1cm4gcW4oZSk\/InN2ZyI6Im1hdGgiPT09ZT8ibWF0aCI6dm9pZCAwfXZhciBHbj1PYmplY3QuY3JlYXRlKG51bGwpO3ZhciBYbj1wKCJ0ZXh0LG51bWJlcixwYXNzd29yZCxzZWFyY2gsZW1haWwsdGVsLHVybCIpO2Z1bmN0aW9uIFluKGUpe2lmKCJzdHJpbmciPT10eXBlb2YgZSl7dmFyIHQ9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcihlKTtyZXR1cm4gdHx8ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iil9cmV0dXJuIGV9dmFyIFFuPU9iamVjdC5mcmVlemUoe2NyZWF0ZUVsZW1lbnQ6ZnVuY3Rpb24oZSx0KXt2YXIgbj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KGUpO3JldHVybiJzZWxlY3QiIT09ZT9uOih0LmRhdGEmJnQuZGF0YS5hdHRycyYmdm9pZCAwIT09dC5kYXRhLmF0dHJzLm11bHRpcGxlJiZuLnNldEF0dHJpYnV0ZSgibXVsdGlwbGUiLCJtdWx0aXBsZSIpLG4pfSxjcmVhdGVFbGVtZW50TlM6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKEtuW2VdLHQpfSxjcmVhdGVUZXh0Tm9kZTpmdW5jdGlvbihlKXtyZXR1cm4gZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoZSl9LGNyZWF0ZUNvbW1lbnQ6ZnVuY3Rpb24oZSl7cmV0dXJuIGRvY3VtZW50LmNyZWF0ZUNvbW1lbnQoZSl9LGluc2VydEJlZm9yZTpmdW5jdGlvbihlLHQsbil7ZS5pbnNlcnRCZWZvcmUodCxuKX0scmVtb3ZlQ2hpbGQ6ZnVuY3Rpb24oZSx0KXtlLnJlbW92ZUNoaWxkKHQpfSxhcHBlbmRDaGlsZDpmdW5jdGlvbihlLHQpe2UuYXBwZW5kQ2hpbGQodCl9LHBhcmVudE5vZGU6ZnVuY3Rpb24oZSl7cmV0dXJuIGUucGFyZW50Tm9kZX0sbmV4dFNpYmxpbmc6ZnVuY3Rpb24oZSl7cmV0dXJuIGUubmV4dFNpYmxpbmd9LHRhZ05hbWU6ZnVuY3Rpb24oZSl7cmV0dXJuIGUudGFnTmFtZX0sc2V0VGV4dENvbnRlbnQ6ZnVuY3Rpb24oZSx0KXtlLnRleHRDb250ZW50PXR9LHNldFN0eWxlU2NvcGU6ZnVuY3Rpb24oZSx0KXtlLnNldEF0dHJpYnV0ZSh0LCIiKX19KSxlcj17Y3JlYXRlOmZ1bmN0aW9uKGUsdCl7dHIodCl9LHVwZGF0ZTpmdW5jdGlvbihlLHQpe2UuZGF0YS5yZWYhPT10LmRhdGEucmVmJiYodHIoZSwhMCksdHIodCkpfSxkZXN0cm95OmZ1bmN0aW9uKGUpe3RyKGUsITApfX07ZnVuY3Rpb24gdHIoZSx0KXt2YXIgcj1lLmRhdGEucmVmO2lmKG4ocikpe3ZhciBpPWUuY29udGV4dCxvPWUuY29tcG9uZW50SW5zdGFuY2V8fGUuZWxtLGE9aS4kcmVmczt0P0FycmF5LmlzQXJyYXkoYVtyXSk\/aChhW3JdLG8pOmFbcl09PT1vJiYoYVtyXT12b2lkIDApOmUuZGF0YS5yZWZJbkZvcj9BcnJheS5pc0FycmF5KGFbcl0pP2Fbcl0uaW5kZXhPZihvKTwwJiZhW3JdLnB1c2gobyk6YVtyXT1bb106YVtyXT1vfX12YXIgbnI9bmV3IHBlKCIiLHt9LFtdKSxycj1bImNyZWF0ZSIsImFjdGl2YXRlIiwidXBkYXRlIiwicmVtb3ZlIiwiZGVzdHJveSJdO2Z1bmN0aW9uIGlyKGUsaSl7cmV0dXJuIGUua2V5PT09aS5rZXkmJihlLnRhZz09PWkudGFnJiZlLmlzQ29tbWVudD09PWkuaXNDb21tZW50JiZuKGUuZGF0YSk9PT1uKGkuZGF0YSkmJmZ1bmN0aW9uKGUsdCl7aWYoImlucHV0IiE9PWUudGFnKXJldHVybiEwO3ZhciByLGk9bihyPWUuZGF0YSkmJm4ocj1yLmF0dHJzKSYmci50eXBlLG89bihyPXQuZGF0YSkmJm4ocj1yLmF0dHJzKSYmci50eXBlO3JldHVybiBpPT09b3x8WG4oaSkmJlhuKG8pfShlLGkpfHxyKGUuaXNBc3luY1BsYWNlaG9sZGVyKSYmZS5hc3luY0ZhY3Rvcnk9PT1pLmFzeW5jRmFjdG9yeSYmdChpLmFzeW5jRmFjdG9yeS5lcnJvcikpfWZ1bmN0aW9uIG9yKGUsdCxyKXt2YXIgaSxvLGE9e307Zm9yKGk9dDtpPD1yOysraSluKG89ZVtpXS5rZXkpJiYoYVtvXT1pKTtyZXR1cm4gYX12YXIgYXI9e2NyZWF0ZTpzcix1cGRhdGU6c3IsZGVzdHJveTpmdW5jdGlvbihlKXtzcihlLG5yKX19O2Z1bmN0aW9uIHNyKGUsdCl7KGUuZGF0YS5kaXJlY3RpdmVzfHx0LmRhdGEuZGlyZWN0aXZlcykmJmZ1bmN0aW9uKGUsdCl7dmFyIG4scixpLG89ZT09PW5yLGE9dD09PW5yLHM9dXIoZS5kYXRhLmRpcmVjdGl2ZXMsZS5jb250ZXh0KSxjPXVyKHQuZGF0YS5kaXJlY3RpdmVzLHQuY29udGV4dCksdT1bXSxsPVtdO2ZvcihuIGluIGMpcj1zW25dLGk9Y1tuXSxyPyhpLm9sZFZhbHVlPXIudmFsdWUsaS5vbGRBcmc9ci5hcmcsZnIoaSwidXBkYXRlIix0LGUpLGkuZGVmJiZpLmRlZi5jb21wb25lbnRVcGRhdGVkJiZsLnB1c2goaSkpOihmcihpLCJiaW5kIix0LGUpLGkuZGVmJiZpLmRlZi5pbnNlcnRlZCYmdS5wdXNoKGkpKTtpZih1Lmxlbmd0aCl7dmFyIGY9ZnVuY3Rpb24oKXtmb3IodmFyIG49MDtuPHUubGVuZ3RoO24rKylmcih1W25dLCJpbnNlcnRlZCIsdCxlKX07bz9pdCh0LCJpbnNlcnQiLGYpOmYoKX1sLmxlbmd0aCYmaXQodCwicG9zdHBhdGNoIixmdW5jdGlvbigpe2Zvcih2YXIgbj0wO248bC5sZW5ndGg7bisrKWZyKGxbbl0sImNvbXBvbmVudFVwZGF0ZWQiLHQsZSl9KTtpZighbylmb3IobiBpbiBzKWNbbl18fGZyKHNbbl0sInVuYmluZCIsZSxlLGEpfShlLHQpfXZhciBjcj1PYmplY3QuY3JlYXRlKG51bGwpO2Z1bmN0aW9uIHVyKGUsdCl7dmFyIG4scixpPU9iamVjdC5jcmVhdGUobnVsbCk7aWYoIWUpcmV0dXJuIGk7Zm9yKG49MDtuPGUubGVuZ3RoO24rKykocj1lW25dKS5tb2RpZmllcnN8fChyLm1vZGlmaWVycz1jciksaVtscihyKV09cixyLmRlZj1MZSh0LiRvcHRpb25zLCJkaXJlY3RpdmVzIixyLm5hbWUpO3JldHVybiBpfWZ1bmN0aW9uIGxyKGUpe3JldHVybiBlLnJhd05hbWV8fGUubmFtZSsiLiIrT2JqZWN0LmtleXMoZS5tb2RpZmllcnN8fHt9KS5qb2luKCIuIil9ZnVuY3Rpb24gZnIoZSx0LG4scixpKXt2YXIgbz1lLmRlZiYmZS5kZWZbdF07aWYobyl0cnl7byhuLmVsbSxlLG4scixpKX1jYXRjaChyKXtSZShyLG4uY29udGV4dCwiZGlyZWN0aXZlICIrZS5uYW1lKyIgIit0KyIgaG9vayIpfX12YXIgcHI9W2VyLGFyXTtmdW5jdGlvbiBkcihlLHIpe3ZhciBpPXIuY29tcG9uZW50T3B0aW9ucztpZighKG4oaSkmJiExPT09aS5DdG9yLm9wdGlvbnMuaW5oZXJpdEF0dHJzfHx0KGUuZGF0YS5hdHRycykmJnQoci5kYXRhLmF0dHJzKSkpe3ZhciBvLGEscz1yLmVsbSxjPWUuZGF0YS5hdHRyc3x8e30sdT1yLmRhdGEuYXR0cnN8fHt9O2ZvcihvIGluIG4odS5fX29iX18pJiYodT1yLmRhdGEuYXR0cnM9QSh7fSx1KSksdSlhPXVbb10sY1tvXSE9PWEmJnZyKHMsbyxhKTtmb3IobyBpbihxfHxaKSYmdS52YWx1ZSE9PWMudmFsdWUmJnZyKHMsInZhbHVlIix1LnZhbHVlKSxjKXQodVtvXSkmJihQbihvKT9zLnJlbW92ZUF0dHJpYnV0ZU5TKEZuLFJuKG8pKTpEbihvKXx8cy5yZW1vdmVBdHRyaWJ1dGUobykpfX1mdW5jdGlvbiB2cihlLHQsbil7ZS50YWdOYW1lLmluZGV4T2YoIi0iKT4tMT9ocihlLHQsbik6SW4odCk\/SG4obik\/ZS5yZW1vdmVBdHRyaWJ1dGUodCk6KG49ImFsbG93ZnVsbHNjcmVlbiI9PT10JiYiRU1CRUQiPT09ZS50YWdOYW1lPyJ0cnVlIjp0LGUuc2V0QXR0cmlidXRlKHQsbikpOkRuKHQpP2Uuc2V0QXR0cmlidXRlKHQsTW4odCxuKSk6UG4odCk\/SG4obik\/ZS5yZW1vdmVBdHRyaWJ1dGVOUyhGbixSbih0KSk6ZS5zZXRBdHRyaWJ1dGVOUyhGbix0LG4pOmhyKGUsdCxuKX1mdW5jdGlvbiBocihlLHQsbil7aWYoSG4obikpZS5yZW1vdmVBdHRyaWJ1dGUodCk7ZWxzZXtpZihxJiYhVyYmIlRFWFRBUkVBIj09PWUudGFnTmFtZSYmInBsYWNlaG9sZGVyIj09PXQmJiIiIT09biYmIWUuX19pZXBoKXt2YXIgcj1mdW5jdGlvbih0KXt0LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpLGUucmVtb3ZlRXZlbnRMaXN0ZW5lcigiaW5wdXQiLHIpfTtlLmFkZEV2ZW50TGlzdGVuZXIoImlucHV0IixyKSxlLl9faWVwaD0hMH1lLnNldEF0dHJpYnV0ZSh0LG4pfX12YXIgbXI9e2NyZWF0ZTpkcix1cGRhdGU6ZHJ9O2Z1bmN0aW9uIHlyKGUscil7dmFyIGk9ci5lbG0sbz1yLmRhdGEsYT1lLmRhdGE7aWYoISh0KG8uc3RhdGljQ2xhc3MpJiZ0KG8uY2xhc3MpJiYodChhKXx8dChhLnN0YXRpY0NsYXNzKSYmdChhLmNsYXNzKSkpKXt2YXIgcz1CbihyKSxjPWkuX3RyYW5zaXRpb25DbGFzc2VzO24oYykmJihzPXpuKHMsVm4oYykpKSxzIT09aS5fcHJldkNsYXNzJiYoaS5zZXRBdHRyaWJ1dGUoImNsYXNzIixzKSxpLl9wcmV2Q2xhc3M9cyl9fXZhciBncixfcixiciwkcix3cixDcix4cj17Y3JlYXRlOnlyLHVwZGF0ZTp5cn0sa3I9L1tcdykuK1wtXyRcXV0vO2Z1bmN0aW9uIEFyKGUpe3ZhciB0LG4scixpLG8sYT0hMSxzPSExLGM9ITEsdT0hMSxsPTAsZj0wLHA9MCxkPTA7Zm9yKHI9MDtyPGUubGVuZ3RoO3IrKylpZihuPXQsdD1lLmNoYXJDb2RlQXQociksYSkzOT09PXQmJjkyIT09biYmKGE9ITEpO2Vsc2UgaWYocykzND09PXQmJjkyIT09biYmKHM9ITEpO2Vsc2UgaWYoYyk5Nj09PXQmJjkyIT09biYmKGM9ITEpO2Vsc2UgaWYodSk0Nz09PXQmJjkyIT09biYmKHU9ITEpO2Vsc2UgaWYoMTI0IT09dHx8MTI0PT09ZS5jaGFyQ29kZUF0KHIrMSl8fDEyND09PWUuY2hhckNvZGVBdChyLTEpfHxsfHxmfHxwKXtzd2l0Y2godCl7Y2FzZSAzNDpzPSEwO2JyZWFrO2Nhc2UgMzk6YT0hMDticmVhaztjYXNlIDk2OmM9ITA7YnJlYWs7Y2FzZSA0MDpwKys7YnJlYWs7Y2FzZSA0MTpwLS07YnJlYWs7Y2FzZSA5MTpmKys7YnJlYWs7Y2FzZSA5MzpmLS07YnJlYWs7Y2FzZSAxMjM6bCsrO2JyZWFrO2Nhc2UgMTI1OmwtLX1pZig0Nz09PXQpe2Zvcih2YXIgdj1yLTEsaD12b2lkIDA7dj49MCYmIiAiPT09KGg9ZS5jaGFyQXQodikpO3YtLSk7aCYma3IudGVzdChoKXx8KHU9ITApfX1lbHNlIHZvaWQgMD09PWk\/KGQ9cisxLGk9ZS5zbGljZSgwLHIpLnRyaW0oKSk6bSgpO2Z1bmN0aW9uIG0oKXsob3x8KG89W10pKS5wdXNoKGUuc2xpY2UoZCxyKS50cmltKCkpLGQ9cisxfWlmKHZvaWQgMD09PWk\/aT1lLnNsaWNlKDAscikudHJpbSgpOjAhPT1kJiZtKCksbylmb3Iocj0wO3I8by5sZW5ndGg7cisrKWk9T3IoaSxvW3JdKTtyZXR1cm4gaX1mdW5jdGlvbiBPcihlLHQpe3ZhciBuPXQuaW5kZXhPZigiKCIpO2lmKG48MClyZXR1cm4nX2YoIicrdCsnIikoJytlKyIpIjt2YXIgcj10LnNsaWNlKDAsbiksaT10LnNsaWNlKG4rMSk7cmV0dXJuJ19mKCInK3IrJyIpKCcrZSsoIikiIT09aT8iLCIraTppKX1mdW5jdGlvbiBTcihlLHQpe2NvbnNvbGUuZXJyb3IoIltWdWUgY29tcGlsZXJdOiAiK2UpfWZ1bmN0aW9uIFRyKGUsdCl7cmV0dXJuIGU\/ZS5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIGVbdF19KS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIGV9KTpbXX1mdW5jdGlvbiBFcihlLHQsbixyLGkpeyhlLnByb3BzfHwoZS5wcm9wcz1bXSkpLnB1c2goUnIoe25hbWU6dCx2YWx1ZTpuLGR5bmFtaWM6aX0scikpLGUucGxhaW49ITF9ZnVuY3Rpb24gTnIoZSx0LG4scixpKXsoaT9lLmR5bmFtaWNBdHRyc3x8KGUuZHluYW1pY0F0dHJzPVtdKTplLmF0dHJzfHwoZS5hdHRycz1bXSkpLnB1c2goUnIoe25hbWU6dCx2YWx1ZTpuLGR5bmFtaWM6aX0scikpLGUucGxhaW49ITF9ZnVuY3Rpb24ganIoZSx0LG4scil7ZS5hdHRyc01hcFt0XT1uLGUuYXR0cnNMaXN0LnB1c2goUnIoe25hbWU6dCx2YWx1ZTpufSxyKSl9ZnVuY3Rpb24gRHIoZSx0LG4scixpLG8sYSxzKXsoZS5kaXJlY3RpdmVzfHwoZS5kaXJlY3RpdmVzPVtdKSkucHVzaChScih7bmFtZTp0LHJhd05hbWU6bix2YWx1ZTpyLGFyZzppLGlzRHluYW1pY0FyZzpvLG1vZGlmaWVyczphfSxzKSksZS5wbGFpbj0hMX1mdW5jdGlvbiBMcihlLHQsbil7cmV0dXJuIG4\/Il9wKCIrdCsnLCInK2UrJyIpJzplK3R9ZnVuY3Rpb24gTXIodCxuLHIsaSxvLGEscyxjKXt2YXIgdTsoaT1pfHxlKS5yaWdodD9jP249IigiK24rIik9PT0nY2xpY2snPydjb250ZXh0bWVudSc6KCIrbisiKSI6ImNsaWNrIj09PW4mJihuPSJjb250ZXh0bWVudSIsZGVsZXRlIGkucmlnaHQpOmkubWlkZGxlJiYoYz9uPSIoIituKyIpPT09J2NsaWNrJz8nbW91c2V1cCc6KCIrbisiKSI6ImNsaWNrIj09PW4mJihuPSJtb3VzZXVwIikpLGkuY2FwdHVyZSYmKGRlbGV0ZSBpLmNhcHR1cmUsbj1McigiISIsbixjKSksaS5vbmNlJiYoZGVsZXRlIGkub25jZSxuPUxyKCJ+IixuLGMpKSxpLnBhc3NpdmUmJihkZWxldGUgaS5wYXNzaXZlLG49THIoIiYiLG4sYykpLGkubmF0aXZlPyhkZWxldGUgaS5uYXRpdmUsdT10Lm5hdGl2ZUV2ZW50c3x8KHQubmF0aXZlRXZlbnRzPXt9KSk6dT10LmV2ZW50c3x8KHQuZXZlbnRzPXt9KTt2YXIgbD1Scih7dmFsdWU6ci50cmltKCksZHluYW1pYzpjfSxzKTtpIT09ZSYmKGwubW9kaWZpZXJzPWkpO3ZhciBmPXVbbl07QXJyYXkuaXNBcnJheShmKT9vP2YudW5zaGlmdChsKTpmLnB1c2gobCk6dVtuXT1mP28\/W2wsZl06W2YsbF06bCx0LnBsYWluPSExfWZ1bmN0aW9uIElyKGUsdCxuKXt2YXIgcj1GcihlLCI6Iit0KXx8RnIoZSwidi1iaW5kOiIrdCk7aWYobnVsbCE9cilyZXR1cm4gQXIocik7aWYoITEhPT1uKXt2YXIgaT1GcihlLHQpO2lmKG51bGwhPWkpcmV0dXJuIEpTT04uc3RyaW5naWZ5KGkpfX1mdW5jdGlvbiBGcihlLHQsbil7dmFyIHI7aWYobnVsbCE9KHI9ZS5hdHRyc01hcFt0XSkpZm9yKHZhciBpPWUuYXR0cnNMaXN0LG89MCxhPWkubGVuZ3RoO288YTtvKyspaWYoaVtvXS5uYW1lPT09dCl7aS5zcGxpY2UobywxKTticmVha31yZXR1cm4gbiYmZGVsZXRlIGUuYXR0cnNNYXBbdF0scn1mdW5jdGlvbiBQcihlLHQpe2Zvcih2YXIgbj1lLmF0dHJzTGlzdCxyPTAsaT1uLmxlbmd0aDtyPGk7cisrKXt2YXIgbz1uW3JdO2lmKHQudGVzdChvLm5hbWUpKXJldHVybiBuLnNwbGljZShyLDEpLG99fWZ1bmN0aW9uIFJyKGUsdCl7cmV0dXJuIHQmJihudWxsIT10LnN0YXJ0JiYoZS5zdGFydD10LnN0YXJ0KSxudWxsIT10LmVuZCYmKGUuZW5kPXQuZW5kKSksZX1mdW5jdGlvbiBIcihlLHQsbil7dmFyIHI9bnx8e30saT1yLm51bWJlcixvPSIkJHYiO3IudHJpbSYmKG89Iih0eXBlb2YgJCR2ID09PSAnc3RyaW5nJz8gJCR2LnRyaW0oKTogJCR2KSIpLGkmJihvPSJfbigiK28rIikiKTt2YXIgYT1Ccih0LG8pO2UubW9kZWw9e3ZhbHVlOiIoIit0KyIpIixleHByZXNzaW9uOkpTT04uc3RyaW5naWZ5KHQpLGNhbGxiYWNrOiJmdW5jdGlvbiAoJCR2KSB7IithKyJ9In19ZnVuY3Rpb24gQnIoZSx0KXt2YXIgbj1mdW5jdGlvbihlKXtpZihlPWUudHJpbSgpLGdyPWUubGVuZ3RoLGUuaW5kZXhPZigiWyIpPDB8fGUubGFzdEluZGV4T2YoIl0iKTxnci0xKXJldHVybigkcj1lLmxhc3RJbmRleE9mKCIuIikpPi0xP3tleHA6ZS5zbGljZSgwLCRyKSxrZXk6JyInK2Uuc2xpY2UoJHIrMSkrJyInfTp7ZXhwOmUsa2V5Om51bGx9O19yPWUsJHI9d3I9Q3I9MDtmb3IoOyF6cigpOylWcihicj1VcigpKT9Kcihicik6OTE9PT1iciYmS3IoYnIpO3JldHVybntleHA6ZS5zbGljZSgwLHdyKSxrZXk6ZS5zbGljZSh3cisxLENyKX19KGUpO3JldHVybiBudWxsPT09bi5rZXk\/ZSsiPSIrdDoiJHNldCgiK24uZXhwKyIsICIrbi5rZXkrIiwgIit0KyIpIn1mdW5jdGlvbiBVcigpe3JldHVybiBfci5jaGFyQ29kZUF0KCsrJHIpfWZ1bmN0aW9uIHpyKCl7cmV0dXJuICRyPj1ncn1mdW5jdGlvbiBWcihlKXtyZXR1cm4gMzQ9PT1lfHwzOT09PWV9ZnVuY3Rpb24gS3IoZSl7dmFyIHQ9MTtmb3Iod3I9JHI7IXpyKCk7KWlmKFZyKGU9VXIoKSkpSnIoZSk7ZWxzZSBpZig5MT09PWUmJnQrKyw5Mz09PWUmJnQtLSwwPT09dCl7Q3I9JHI7YnJlYWt9fWZ1bmN0aW9uIEpyKGUpe2Zvcih2YXIgdD1lOyF6cigpJiYoZT1VcigpKSE9PXQ7KTt9dmFyIHFyLFdyPSJfX3IiLFpyPSJfX2MiO2Z1bmN0aW9uIEdyKGUsdCxuKXt2YXIgcj1xcjtyZXR1cm4gZnVuY3Rpb24gaSgpe251bGwhPT10LmFwcGx5KG51bGwsYXJndW1lbnRzKSYmUXIoZSxpLG4scil9fXZhciBYcj1WZSYmIShYJiZOdW1iZXIoWFsxXSk8PTUzKTtmdW5jdGlvbiBZcihlLHQsbixyKXtpZihYcil7dmFyIGk9YW4sbz10O3Q9by5fd3JhcHBlcj1mdW5jdGlvbihlKXtpZihlLnRhcmdldD09PWUuY3VycmVudFRhcmdldHx8ZS50aW1lU3RhbXA+PWl8fGUudGltZVN0YW1wPD0wfHxlLnRhcmdldC5vd25lckRvY3VtZW50IT09ZG9jdW1lbnQpcmV0dXJuIG8uYXBwbHkodGhpcyxhcmd1bWVudHMpfX1xci5hZGRFdmVudExpc3RlbmVyKGUsdCxRP3tjYXB0dXJlOm4scGFzc2l2ZTpyfTpuKX1mdW5jdGlvbiBRcihlLHQsbixyKXsocnx8cXIpLnJlbW92ZUV2ZW50TGlzdGVuZXIoZSx0Ll93cmFwcGVyfHx0LG4pfWZ1bmN0aW9uIGVpKGUscil7aWYoIXQoZS5kYXRhLm9uKXx8IXQoci5kYXRhLm9uKSl7dmFyIGk9ci5kYXRhLm9ufHx7fSxvPWUuZGF0YS5vbnx8e307cXI9ci5lbG0sZnVuY3Rpb24oZSl7aWYobihlW1dyXSkpe3ZhciB0PXE\/ImNoYW5nZSI6ImlucHV0IjtlW3RdPVtdLmNvbmNhdChlW1dyXSxlW3RdfHxbXSksZGVsZXRlIGVbV3JdfW4oZVtacl0pJiYoZS5jaGFuZ2U9W10uY29uY2F0KGVbWnJdLGUuY2hhbmdlfHxbXSksZGVsZXRlIGVbWnJdKX0oaSkscnQoaSxvLFlyLFFyLEdyLHIuY29udGV4dCkscXI9dm9pZCAwfX12YXIgdGksbmk9e2NyZWF0ZTplaSx1cGRhdGU6ZWl9O2Z1bmN0aW9uIHJpKGUscil7aWYoIXQoZS5kYXRhLmRvbVByb3BzKXx8IXQoci5kYXRhLmRvbVByb3BzKSl7dmFyIGksbyxhPXIuZWxtLHM9ZS5kYXRhLmRvbVByb3BzfHx7fSxjPXIuZGF0YS5kb21Qcm9wc3x8e307Zm9yKGkgaW4gbihjLl9fb2JfXykmJihjPXIuZGF0YS5kb21Qcm9wcz1BKHt9LGMpKSxzKWkgaW4gY3x8KGFbaV09IiIpO2ZvcihpIGluIGMpe2lmKG89Y1tpXSwidGV4dENvbnRlbnQiPT09aXx8ImlubmVySFRNTCI9PT1pKXtpZihyLmNoaWxkcmVuJiYoci5jaGlsZHJlbi5sZW5ndGg9MCksbz09PXNbaV0pY29udGludWU7MT09PWEuY2hpbGROb2Rlcy5sZW5ndGgmJmEucmVtb3ZlQ2hpbGQoYS5jaGlsZE5vZGVzWzBdKX1pZigidmFsdWUiPT09aSYmIlBST0dSRVNTIiE9PWEudGFnTmFtZSl7YS5fdmFsdWU9bzt2YXIgdT10KG8pPyIiOlN0cmluZyhvKTtpaShhLHUpJiYoYS52YWx1ZT11KX1lbHNlIGlmKCJpbm5lckhUTUwiPT09aSYmcW4oYS50YWdOYW1lKSYmdChhLmlubmVySFRNTCkpeyh0aT10aXx8ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IikpLmlubmVySFRNTD0iPHN2Zz4iK28rIjwvc3ZnPiI7Zm9yKHZhciBsPXRpLmZpcnN0Q2hpbGQ7YS5maXJzdENoaWxkOylhLnJlbW92ZUNoaWxkKGEuZmlyc3RDaGlsZCk7Zm9yKDtsLmZpcnN0Q2hpbGQ7KWEuYXBwZW5kQ2hpbGQobC5maXJzdENoaWxkKX1lbHNlIGlmKG8hPT1zW2ldKXRyeXthW2ldPW99Y2F0Y2goZSl7fX19fWZ1bmN0aW9uIGlpKGUsdCl7cmV0dXJuIWUuY29tcG9zaW5nJiYoIk9QVElPTiI9PT1lLnRhZ05hbWV8fGZ1bmN0aW9uKGUsdCl7dmFyIG49ITA7dHJ5e249ZG9jdW1lbnQuYWN0aXZlRWxlbWVudCE9PWV9Y2F0Y2goZSl7fXJldHVybiBuJiZlLnZhbHVlIT09dH0oZSx0KXx8ZnVuY3Rpb24oZSx0KXt2YXIgcj1lLnZhbHVlLGk9ZS5fdk1vZGlmaWVycztpZihuKGkpKXtpZihpLm51bWJlcilyZXR1cm4gZihyKSE9PWYodCk7aWYoaS50cmltKXJldHVybiByLnRyaW0oKSE9PXQudHJpbSgpfXJldHVybiByIT09dH0oZSx0KSl9dmFyIG9pPXtjcmVhdGU6cmksdXBkYXRlOnJpfSxhaT1nKGZ1bmN0aW9uKGUpe3ZhciB0PXt9LG49LzooLispLztyZXR1cm4gZS5zcGxpdCgvOyg\/IVteKF0qXCkpL2cpLmZvckVhY2goZnVuY3Rpb24oZSl7aWYoZSl7dmFyIHI9ZS5zcGxpdChuKTtyLmxlbmd0aD4xJiYodFtyWzBdLnRyaW0oKV09clsxXS50cmltKCkpfX0pLHR9KTtmdW5jdGlvbiBzaShlKXt2YXIgdD1jaShlLnN0eWxlKTtyZXR1cm4gZS5zdGF0aWNTdHlsZT9BKGUuc3RhdGljU3R5bGUsdCk6dH1mdW5jdGlvbiBjaShlKXtyZXR1cm4gQXJyYXkuaXNBcnJheShlKT9PKGUpOiJzdHJpbmciPT10eXBlb2YgZT9haShlKTplfXZhciB1aSxsaT0vXi0tLyxmaT0vXHMqIWltcG9ydGFudCQvLHBpPWZ1bmN0aW9uKGUsdCxuKXtpZihsaS50ZXN0KHQpKWUuc3R5bGUuc2V0UHJvcGVydHkodCxuKTtlbHNlIGlmKGZpLnRlc3QobikpZS5zdHlsZS5zZXRQcm9wZXJ0eShDKHQpLG4ucmVwbGFjZShmaSwiIiksImltcG9ydGFudCIpO2Vsc2V7dmFyIHI9dmkodCk7aWYoQXJyYXkuaXNBcnJheShuKSlmb3IodmFyIGk9MCxvPW4ubGVuZ3RoO2k8bztpKyspZS5zdHlsZVtyXT1uW2ldO2Vsc2UgZS5zdHlsZVtyXT1ufX0sZGk9WyJXZWJraXQiLCJNb3oiLCJtcyJdLHZpPWcoZnVuY3Rpb24oZSl7aWYodWk9dWl8fGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLnN0eWxlLCJmaWx0ZXIiIT09KGU9YihlKSkmJmUgaW4gdWkpcmV0dXJuIGU7Zm9yKHZhciB0PWUuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkrZS5zbGljZSgxKSxuPTA7bjxkaS5sZW5ndGg7bisrKXt2YXIgcj1kaVtuXSt0O2lmKHIgaW4gdWkpcmV0dXJuIHJ9fSk7ZnVuY3Rpb24gaGkoZSxyKXt2YXIgaT1yLmRhdGEsbz1lLmRhdGE7aWYoISh0KGkuc3RhdGljU3R5bGUpJiZ0KGkuc3R5bGUpJiZ0KG8uc3RhdGljU3R5bGUpJiZ0KG8uc3R5bGUpKSl7dmFyIGEscyxjPXIuZWxtLHU9by5zdGF0aWNTdHlsZSxsPW8ubm9ybWFsaXplZFN0eWxlfHxvLnN0eWxlfHx7fSxmPXV8fGwscD1jaShyLmRhdGEuc3R5bGUpfHx7fTtyLmRhdGEubm9ybWFsaXplZFN0eWxlPW4ocC5fX29iX18pP0Eoe30scCk6cDt2YXIgZD1mdW5jdGlvbihlLHQpe3ZhciBuLHI9e307aWYodClmb3IodmFyIGk9ZTtpLmNvbXBvbmVudEluc3RhbmNlOykoaT1pLmNvbXBvbmVudEluc3RhbmNlLl92bm9kZSkmJmkuZGF0YSYmKG49c2koaS5kYXRhKSkmJkEocixuKTsobj1zaShlLmRhdGEpKSYmQShyLG4pO2Zvcih2YXIgbz1lO289by5wYXJlbnQ7KW8uZGF0YSYmKG49c2koby5kYXRhKSkmJkEocixuKTtyZXR1cm4gcn0ociwhMCk7Zm9yKHMgaW4gZil0KGRbc10pJiZwaShjLHMsIiIpO2ZvcihzIGluIGQpKGE9ZFtzXSkhPT1mW3NdJiZwaShjLHMsbnVsbD09YT8iIjphKX19dmFyIG1pPXtjcmVhdGU6aGksdXBkYXRlOmhpfSx5aT0vXHMrLztmdW5jdGlvbiBnaShlLHQpe2lmKHQmJih0PXQudHJpbSgpKSlpZihlLmNsYXNzTGlzdCl0LmluZGV4T2YoIiAiKT4tMT90LnNwbGl0KHlpKS5mb3JFYWNoKGZ1bmN0aW9uKHQpe3JldHVybiBlLmNsYXNzTGlzdC5hZGQodCl9KTplLmNsYXNzTGlzdC5hZGQodCk7ZWxzZXt2YXIgbj0iICIrKGUuZ2V0QXR0cmlidXRlKCJjbGFzcyIpfHwiIikrIiAiO24uaW5kZXhPZigiICIrdCsiICIpPDAmJmUuc2V0QXR0cmlidXRlKCJjbGFzcyIsKG4rdCkudHJpbSgpKX19ZnVuY3Rpb24gX2koZSx0KXtpZih0JiYodD10LnRyaW0oKSkpaWYoZS5jbGFzc0xpc3QpdC5pbmRleE9mKCIgIik+LTE\/dC5zcGxpdCh5aSkuZm9yRWFjaChmdW5jdGlvbih0KXtyZXR1cm4gZS5jbGFzc0xpc3QucmVtb3ZlKHQpfSk6ZS5jbGFzc0xpc3QucmVtb3ZlKHQpLGUuY2xhc3NMaXN0Lmxlbmd0aHx8ZS5yZW1vdmVBdHRyaWJ1dGUoImNsYXNzIik7ZWxzZXtmb3IodmFyIG49IiAiKyhlLmdldEF0dHJpYnV0ZSgiY2xhc3MiKXx8IiIpKyIgIixyPSIgIit0KyIgIjtuLmluZGV4T2Yocik+PTA7KW49bi5yZXBsYWNlKHIsIiAiKTsobj1uLnRyaW0oKSk\/ZS5zZXRBdHRyaWJ1dGUoImNsYXNzIixuKTplLnJlbW92ZUF0dHJpYnV0ZSgiY2xhc3MiKX19ZnVuY3Rpb24gYmkoZSl7aWYoZSl7aWYoIm9iamVjdCI9PXR5cGVvZiBlKXt2YXIgdD17fTtyZXR1cm4hMSE9PWUuY3NzJiZBKHQsJGkoZS5uYW1lfHwidiIpKSxBKHQsZSksdH1yZXR1cm4ic3RyaW5nIj09dHlwZW9mIGU\/JGkoZSk6dm9pZCAwfX12YXIgJGk9ZyhmdW5jdGlvbihlKXtyZXR1cm57ZW50ZXJDbGFzczplKyItZW50ZXIiLGVudGVyVG9DbGFzczplKyItZW50ZXItdG8iLGVudGVyQWN0aXZlQ2xhc3M6ZSsiLWVudGVyLWFjdGl2ZSIsbGVhdmVDbGFzczplKyItbGVhdmUiLGxlYXZlVG9DbGFzczplKyItbGVhdmUtdG8iLGxlYXZlQWN0aXZlQ2xhc3M6ZSsiLWxlYXZlLWFjdGl2ZSJ9fSksd2k9eiYmIVcsQ2k9InRyYW5zaXRpb24iLHhpPSJhbmltYXRpb24iLGtpPSJ0cmFuc2l0aW9uIixBaT0idHJhbnNpdGlvbmVuZCIsT2k9ImFuaW1hdGlvbiIsU2k9ImFuaW1hdGlvbmVuZCI7d2kmJih2b2lkIDA9PT13aW5kb3cub250cmFuc2l0aW9uZW5kJiZ2b2lkIDAhPT13aW5kb3cub253ZWJraXR0cmFuc2l0aW9uZW5kJiYoa2k9IldlYmtpdFRyYW5zaXRpb24iLEFpPSJ3ZWJraXRUcmFuc2l0aW9uRW5kIiksdm9pZCAwPT09d2luZG93Lm9uYW5pbWF0aW9uZW5kJiZ2b2lkIDAhPT13aW5kb3cub253ZWJraXRhbmltYXRpb25lbmQmJihPaT0iV2Via2l0QW5pbWF0aW9uIixTaT0id2Via2l0QW5pbWF0aW9uRW5kIikpO3ZhciBUaT16P3dpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWU\/d2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZS5iaW5kKHdpbmRvdyk6c2V0VGltZW91dDpmdW5jdGlvbihlKXtyZXR1cm4gZSgpfTtmdW5jdGlvbiBFaShlKXtUaShmdW5jdGlvbigpe1RpKGUpfSl9ZnVuY3Rpb24gTmkoZSx0KXt2YXIgbj1lLl90cmFuc2l0aW9uQ2xhc3Nlc3x8KGUuX3RyYW5zaXRpb25DbGFzc2VzPVtdKTtuLmluZGV4T2YodCk8MCYmKG4ucHVzaCh0KSxnaShlLHQpKX1mdW5jdGlvbiBqaShlLHQpe2UuX3RyYW5zaXRpb25DbGFzc2VzJiZoKGUuX3RyYW5zaXRpb25DbGFzc2VzLHQpLF9pKGUsdCl9ZnVuY3Rpb24gRGkoZSx0LG4pe3ZhciByPU1pKGUsdCksaT1yLnR5cGUsbz1yLnRpbWVvdXQsYT1yLnByb3BDb3VudDtpZighaSlyZXR1cm4gbigpO3ZhciBzPWk9PT1DaT9BaTpTaSxjPTAsdT1mdW5jdGlvbigpe2UucmVtb3ZlRXZlbnRMaXN0ZW5lcihzLGwpLG4oKX0sbD1mdW5jdGlvbih0KXt0LnRhcmdldD09PWUmJisrYz49YSYmdSgpfTtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7YzxhJiZ1KCl9LG8rMSksZS5hZGRFdmVudExpc3RlbmVyKHMsbCl9dmFyIExpPS9cYih0cmFuc2Zvcm18YWxsKSgsfCQpLztmdW5jdGlvbiBNaShlLHQpe3ZhciBuLHI9d2luZG93LmdldENvbXB1dGVkU3R5bGUoZSksaT0ocltraSsiRGVsYXkiXXx8IiIpLnNwbGl0KCIsICIpLG89KHJba2krIkR1cmF0aW9uIl18fCIiKS5zcGxpdCgiLCAiKSxhPUlpKGksbykscz0ocltPaSsiRGVsYXkiXXx8IiIpLnNwbGl0KCIsICIpLGM9KHJbT2krIkR1cmF0aW9uIl18fCIiKS5zcGxpdCgiLCAiKSx1PUlpKHMsYyksbD0wLGY9MDtyZXR1cm4gdD09PUNpP2E+MCYmKG49Q2ksbD1hLGY9by5sZW5ndGgpOnQ9PT14aT91PjAmJihuPXhpLGw9dSxmPWMubGVuZ3RoKTpmPShuPShsPU1hdGgubWF4KGEsdSkpPjA\/YT51P0NpOnhpOm51bGwpP249PT1DaT9vLmxlbmd0aDpjLmxlbmd0aDowLHt0eXBlOm4sdGltZW91dDpsLHByb3BDb3VudDpmLGhhc1RyYW5zZm9ybTpuPT09Q2kmJkxpLnRlc3QocltraSsiUHJvcGVydHkiXSl9fWZ1bmN0aW9uIElpKGUsdCl7Zm9yKDtlLmxlbmd0aDx0Lmxlbmd0aDspZT1lLmNvbmNhdChlKTtyZXR1cm4gTWF0aC5tYXguYXBwbHkobnVsbCx0Lm1hcChmdW5jdGlvbih0LG4pe3JldHVybiBGaSh0KStGaShlW25dKX0pKX1mdW5jdGlvbiBGaShlKXtyZXR1cm4gMWUzKk51bWJlcihlLnNsaWNlKDAsLTEpLnJlcGxhY2UoIiwiLCIuIikpfWZ1bmN0aW9uIFBpKGUscil7dmFyIGk9ZS5lbG07bihpLl9sZWF2ZUNiKSYmKGkuX2xlYXZlQ2IuY2FuY2VsbGVkPSEwLGkuX2xlYXZlQ2IoKSk7dmFyIGE9YmkoZS5kYXRhLnRyYW5zaXRpb24pO2lmKCF0KGEpJiYhbihpLl9lbnRlckNiKSYmMT09PWkubm9kZVR5cGUpe2Zvcih2YXIgcz1hLmNzcyxjPWEudHlwZSx1PWEuZW50ZXJDbGFzcyxsPWEuZW50ZXJUb0NsYXNzLHA9YS5lbnRlckFjdGl2ZUNsYXNzLGQ9YS5hcHBlYXJDbGFzcyx2PWEuYXBwZWFyVG9DbGFzcyxoPWEuYXBwZWFyQWN0aXZlQ2xhc3MsbT1hLmJlZm9yZUVudGVyLHk9YS5lbnRlcixnPWEuYWZ0ZXJFbnRlcixfPWEuZW50ZXJDYW5jZWxsZWQsYj1hLmJlZm9yZUFwcGVhciwkPWEuYXBwZWFyLHc9YS5hZnRlckFwcGVhcixDPWEuYXBwZWFyQ2FuY2VsbGVkLHg9YS5kdXJhdGlvbixrPVd0LEE9V3QuJHZub2RlO0EmJkEucGFyZW50OylrPUEuY29udGV4dCxBPUEucGFyZW50O3ZhciBPPSFrLl9pc01vdW50ZWR8fCFlLmlzUm9vdEluc2VydDtpZighT3x8JHx8IiI9PT0kKXt2YXIgUz1PJiZkP2Q6dSxUPU8mJmg\/aDpwLEU9TyYmdj92OmwsTj1PJiZifHxtLGo9TyYmImZ1bmN0aW9uIj09dHlwZW9mICQ\/JDp5LEw9TyYmd3x8ZyxNPU8mJkN8fF8sST1mKG8oeCk\/eC5lbnRlcjp4KSxGPSExIT09cyYmIVcsUD1CaShqKSxSPWkuX2VudGVyQ2I9RChmdW5jdGlvbigpe0YmJihqaShpLEUpLGppKGksVCkpLFIuY2FuY2VsbGVkPyhGJiZqaShpLFMpLE0mJk0oaSkpOkwmJkwoaSksaS5fZW50ZXJDYj1udWxsfSk7ZS5kYXRhLnNob3d8fGl0KGUsImluc2VydCIsZnVuY3Rpb24oKXt2YXIgdD1pLnBhcmVudE5vZGUsbj10JiZ0Ll9wZW5kaW5nJiZ0Ll9wZW5kaW5nW2Uua2V5XTtuJiZuLnRhZz09PWUudGFnJiZuLmVsbS5fbGVhdmVDYiYmbi5lbG0uX2xlYXZlQ2IoKSxqJiZqKGksUil9KSxOJiZOKGkpLEYmJihOaShpLFMpLE5pKGksVCksRWkoZnVuY3Rpb24oKXtqaShpLFMpLFIuY2FuY2VsbGVkfHwoTmkoaSxFKSxQfHwoSGkoSSk\/c2V0VGltZW91dChSLEkpOkRpKGksYyxSKSkpfSkpLGUuZGF0YS5zaG93JiYociYmcigpLGomJmooaSxSKSksRnx8UHx8UigpfX19ZnVuY3Rpb24gUmkoZSxyKXt2YXIgaT1lLmVsbTtuKGkuX2VudGVyQ2IpJiYoaS5fZW50ZXJDYi5jYW5jZWxsZWQ9ITAsaS5fZW50ZXJDYigpKTt2YXIgYT1iaShlLmRhdGEudHJhbnNpdGlvbik7aWYodChhKXx8MSE9PWkubm9kZVR5cGUpcmV0dXJuIHIoKTtpZighbihpLl9sZWF2ZUNiKSl7dmFyIHM9YS5jc3MsYz1hLnR5cGUsdT1hLmxlYXZlQ2xhc3MsbD1hLmxlYXZlVG9DbGFzcyxwPWEubGVhdmVBY3RpdmVDbGFzcyxkPWEuYmVmb3JlTGVhdmUsdj1hLmxlYXZlLGg9YS5hZnRlckxlYXZlLG09YS5sZWF2ZUNhbmNlbGxlZCx5PWEuZGVsYXlMZWF2ZSxnPWEuZHVyYXRpb24sXz0hMSE9PXMmJiFXLGI9QmkodiksJD1mKG8oZyk\/Zy5sZWF2ZTpnKSx3PWkuX2xlYXZlQ2I9RChmdW5jdGlvbigpe2kucGFyZW50Tm9kZSYmaS5wYXJlbnROb2RlLl9wZW5kaW5nJiYoaS5wYXJlbnROb2RlLl9wZW5kaW5nW2Uua2V5XT1udWxsKSxfJiYoamkoaSxsKSxqaShpLHApKSx3LmNhbmNlbGxlZD8oXyYmamkoaSx1KSxtJiZtKGkpKToocigpLGgmJmgoaSkpLGkuX2xlYXZlQ2I9bnVsbH0pO3k\/eShDKTpDKCl9ZnVuY3Rpb24gQygpe3cuY2FuY2VsbGVkfHwoIWUuZGF0YS5zaG93JiZpLnBhcmVudE5vZGUmJigoaS5wYXJlbnROb2RlLl9wZW5kaW5nfHwoaS5wYXJlbnROb2RlLl9wZW5kaW5nPXt9KSlbZS5rZXldPWUpLGQmJmQoaSksXyYmKE5pKGksdSksTmkoaSxwKSxFaShmdW5jdGlvbigpe2ppKGksdSksdy5jYW5jZWxsZWR8fChOaShpLGwpLGJ8fChIaSgkKT9zZXRUaW1lb3V0KHcsJCk6RGkoaSxjLHcpKSl9KSksdiYmdihpLHcpLF98fGJ8fHcoKSl9fWZ1bmN0aW9uIEhpKGUpe3JldHVybiJudW1iZXIiPT10eXBlb2YgZSYmIWlzTmFOKGUpfWZ1bmN0aW9uIEJpKGUpe2lmKHQoZSkpcmV0dXJuITE7dmFyIHI9ZS5mbnM7cmV0dXJuIG4ocik\/QmkoQXJyYXkuaXNBcnJheShyKT9yWzBdOnIpOihlLl9sZW5ndGh8fGUubGVuZ3RoKT4xfWZ1bmN0aW9uIFVpKGUsdCl7ITAhPT10LmRhdGEuc2hvdyYmUGkodCl9dmFyIHppPWZ1bmN0aW9uKGUpe3ZhciBvLGEscz17fSxjPWUubW9kdWxlcyx1PWUubm9kZU9wcztmb3Iobz0wO288cnIubGVuZ3RoOysrbylmb3Ioc1tycltvXV09W10sYT0wO2E8Yy5sZW5ndGg7KythKW4oY1thXVtycltvXV0pJiZzW3JyW29dXS5wdXNoKGNbYV1bcnJbb11dKTtmdW5jdGlvbiBsKGUpe3ZhciB0PXUucGFyZW50Tm9kZShlKTtuKHQpJiZ1LnJlbW92ZUNoaWxkKHQsZSl9ZnVuY3Rpb24gZihlLHQsaSxvLGEsYyxsKXtpZihuKGUuZWxtKSYmbihjKSYmKGU9Y1tsXT1tZShlKSksZS5pc1Jvb3RJbnNlcnQ9IWEsIWZ1bmN0aW9uKGUsdCxpLG8pe3ZhciBhPWUuZGF0YTtpZihuKGEpKXt2YXIgYz1uKGUuY29tcG9uZW50SW5zdGFuY2UpJiZhLmtlZXBBbGl2ZTtpZihuKGE9YS5ob29rKSYmbihhPWEuaW5pdCkmJmEoZSwhMSksbihlLmNvbXBvbmVudEluc3RhbmNlKSlyZXR1cm4gZChlLHQpLHYoaSxlLmVsbSxvKSxyKGMpJiZmdW5jdGlvbihlLHQscixpKXtmb3IodmFyIG8sYT1lO2EuY29tcG9uZW50SW5zdGFuY2U7KWlmKGE9YS5jb21wb25lbnRJbnN0YW5jZS5fdm5vZGUsbihvPWEuZGF0YSkmJm4obz1vLnRyYW5zaXRpb24pKXtmb3Iobz0wO288cy5hY3RpdmF0ZS5sZW5ndGg7KytvKXMuYWN0aXZhdGVbb10obnIsYSk7dC5wdXNoKGEpO2JyZWFrfXYocixlLmVsbSxpKX0oZSx0LGksbyksITB9fShlLHQsaSxvKSl7dmFyIGY9ZS5kYXRhLHA9ZS5jaGlsZHJlbixtPWUudGFnO24obSk\/KGUuZWxtPWUubnM\/dS5jcmVhdGVFbGVtZW50TlMoZS5ucyxtKTp1LmNyZWF0ZUVsZW1lbnQobSxlKSxnKGUpLGgoZSxwLHQpLG4oZikmJnkoZSx0KSx2KGksZS5lbG0sbykpOnIoZS5pc0NvbW1lbnQpPyhlLmVsbT11LmNyZWF0ZUNvbW1lbnQoZS50ZXh0KSx2KGksZS5lbG0sbykpOihlLmVsbT11LmNyZWF0ZVRleHROb2RlKGUudGV4dCksdihpLGUuZWxtLG8pKX19ZnVuY3Rpb24gZChlLHQpe24oZS5kYXRhLnBlbmRpbmdJbnNlcnQpJiYodC5wdXNoLmFwcGx5KHQsZS5kYXRhLnBlbmRpbmdJbnNlcnQpLGUuZGF0YS5wZW5kaW5nSW5zZXJ0PW51bGwpLGUuZWxtPWUuY29tcG9uZW50SW5zdGFuY2UuJGVsLG0oZSk\/KHkoZSx0KSxnKGUpKToodHIoZSksdC5wdXNoKGUpKX1mdW5jdGlvbiB2KGUsdCxyKXtuKGUpJiYobihyKT91LnBhcmVudE5vZGUocik9PT1lJiZ1Lmluc2VydEJlZm9yZShlLHQscik6dS5hcHBlbmRDaGlsZChlLHQpKX1mdW5jdGlvbiBoKGUsdCxuKXtpZihBcnJheS5pc0FycmF5KHQpKWZvcih2YXIgcj0wO3I8dC5sZW5ndGg7KytyKWYodFtyXSxuLGUuZWxtLG51bGwsITAsdCxyKTtlbHNlIGkoZS50ZXh0KSYmdS5hcHBlbmRDaGlsZChlLmVsbSx1LmNyZWF0ZVRleHROb2RlKFN0cmluZyhlLnRleHQpKSl9ZnVuY3Rpb24gbShlKXtmb3IoO2UuY29tcG9uZW50SW5zdGFuY2U7KWU9ZS5jb21wb25lbnRJbnN0YW5jZS5fdm5vZGU7cmV0dXJuIG4oZS50YWcpfWZ1bmN0aW9uIHkoZSx0KXtmb3IodmFyIHI9MDtyPHMuY3JlYXRlLmxlbmd0aDsrK3Ipcy5jcmVhdGVbcl0obnIsZSk7bihvPWUuZGF0YS5ob29rKSYmKG4oby5jcmVhdGUpJiZvLmNyZWF0ZShucixlKSxuKG8uaW5zZXJ0KSYmdC5wdXNoKGUpKX1mdW5jdGlvbiBnKGUpe3ZhciB0O2lmKG4odD1lLmZuU2NvcGVJZCkpdS5zZXRTdHlsZVNjb3BlKGUuZWxtLHQpO2Vsc2UgZm9yKHZhciByPWU7cjspbih0PXIuY29udGV4dCkmJm4odD10LiRvcHRpb25zLl9zY29wZUlkKSYmdS5zZXRTdHlsZVNjb3BlKGUuZWxtLHQpLHI9ci5wYXJlbnQ7bih0PVd0KSYmdCE9PWUuY29udGV4dCYmdCE9PWUuZm5Db250ZXh0JiZuKHQ9dC4kb3B0aW9ucy5fc2NvcGVJZCkmJnUuc2V0U3R5bGVTY29wZShlLmVsbSx0KX1mdW5jdGlvbiBfKGUsdCxuLHIsaSxvKXtmb3IoO3I8PWk7KytyKWYobltyXSxvLGUsdCwhMSxuLHIpfWZ1bmN0aW9uIGIoZSl7dmFyIHQscixpPWUuZGF0YTtpZihuKGkpKWZvcihuKHQ9aS5ob29rKSYmbih0PXQuZGVzdHJveSkmJnQoZSksdD0wO3Q8cy5kZXN0cm95Lmxlbmd0aDsrK3Qpcy5kZXN0cm95W3RdKGUpO2lmKG4odD1lLmNoaWxkcmVuKSlmb3Iocj0wO3I8ZS5jaGlsZHJlbi5sZW5ndGg7KytyKWIoZS5jaGlsZHJlbltyXSl9ZnVuY3Rpb24gJChlLHQscil7Zm9yKDt0PD1yOysrdCl7dmFyIGk9ZVt0XTtuKGkpJiYobihpLnRhZyk\/KHcoaSksYihpKSk6bChpLmVsbSkpfX1mdW5jdGlvbiB3KGUsdCl7aWYobih0KXx8bihlLmRhdGEpKXt2YXIgcixpPXMucmVtb3ZlLmxlbmd0aCsxO2ZvcihuKHQpP3QubGlzdGVuZXJzKz1pOnQ9ZnVuY3Rpb24oZSx0KXtmdW5jdGlvbiBuKCl7MD09LS1uLmxpc3RlbmVycyYmbChlKX1yZXR1cm4gbi5saXN0ZW5lcnM9dCxufShlLmVsbSxpKSxuKHI9ZS5jb21wb25lbnRJbnN0YW5jZSkmJm4ocj1yLl92bm9kZSkmJm4oci5kYXRhKSYmdyhyLHQpLHI9MDtyPHMucmVtb3ZlLmxlbmd0aDsrK3Ipcy5yZW1vdmVbcl0oZSx0KTtuKHI9ZS5kYXRhLmhvb2spJiZuKHI9ci5yZW1vdmUpP3IoZSx0KTp0KCl9ZWxzZSBsKGUuZWxtKX1mdW5jdGlvbiBDKGUsdCxyLGkpe2Zvcih2YXIgbz1yO288aTtvKyspe3ZhciBhPXRbb107aWYobihhKSYmaXIoZSxhKSlyZXR1cm4gb319ZnVuY3Rpb24geChlLGksbyxhLGMsbCl7aWYoZSE9PWkpe24oaS5lbG0pJiZuKGEpJiYoaT1hW2NdPW1lKGkpKTt2YXIgcD1pLmVsbT1lLmVsbTtpZihyKGUuaXNBc3luY1BsYWNlaG9sZGVyKSluKGkuYXN5bmNGYWN0b3J5LnJlc29sdmVkKT9PKGUuZWxtLGksbyk6aS5pc0FzeW5jUGxhY2Vob2xkZXI9ITA7ZWxzZSBpZihyKGkuaXNTdGF0aWMpJiZyKGUuaXNTdGF0aWMpJiZpLmtleT09PWUua2V5JiYocihpLmlzQ2xvbmVkKXx8cihpLmlzT25jZSkpKWkuY29tcG9uZW50SW5zdGFuY2U9ZS5jb21wb25lbnRJbnN0YW5jZTtlbHNle3ZhciBkLHY9aS5kYXRhO24odikmJm4oZD12Lmhvb2spJiZuKGQ9ZC5wcmVwYXRjaCkmJmQoZSxpKTt2YXIgaD1lLmNoaWxkcmVuLHk9aS5jaGlsZHJlbjtpZihuKHYpJiZtKGkpKXtmb3IoZD0wO2Q8cy51cGRhdGUubGVuZ3RoOysrZClzLnVwZGF0ZVtkXShlLGkpO24oZD12Lmhvb2spJiZuKGQ9ZC51cGRhdGUpJiZkKGUsaSl9dChpLnRleHQpP24oaCkmJm4oeSk\/aCE9PXkmJmZ1bmN0aW9uKGUscixpLG8sYSl7Zm9yKHZhciBzLGMsbCxwPTAsZD0wLHY9ci5sZW5ndGgtMSxoPXJbMF0sbT1yW3ZdLHk9aS5sZW5ndGgtMSxnPWlbMF0sYj1pW3ldLHc9IWE7cDw9diYmZDw9eTspdChoKT9oPXJbKytwXTp0KG0pP209clstLXZdOmlyKGgsZyk\/KHgoaCxnLG8saSxkKSxoPXJbKytwXSxnPWlbKytkXSk6aXIobSxiKT8oeChtLGIsbyxpLHkpLG09clstLXZdLGI9aVstLXldKTppcihoLGIpPyh4KGgsYixvLGkseSksdyYmdS5pbnNlcnRCZWZvcmUoZSxoLmVsbSx1Lm5leHRTaWJsaW5nKG0uZWxtKSksaD1yWysrcF0sYj1pWy0teV0pOmlyKG0sZyk\/KHgobSxnLG8saSxkKSx3JiZ1Lmluc2VydEJlZm9yZShlLG0uZWxtLGguZWxtKSxtPXJbLS12XSxnPWlbKytkXSk6KHQocykmJihzPW9yKHIscCx2KSksdChjPW4oZy5rZXkpP3NbZy5rZXldOkMoZyxyLHAsdikpP2YoZyxvLGUsaC5lbG0sITEsaSxkKTppcihsPXJbY10sZyk\/KHgobCxnLG8saSxkKSxyW2NdPXZvaWQgMCx3JiZ1Lmluc2VydEJlZm9yZShlLGwuZWxtLGguZWxtKSk6ZihnLG8sZSxoLmVsbSwhMSxpLGQpLGc9aVsrK2RdKTtwPnY\/XyhlLHQoaVt5KzFdKT9udWxsOmlbeSsxXS5lbG0saSxkLHksbyk6ZD55JiYkKHIscCx2KX0ocCxoLHksbyxsKTpuKHkpPyhuKGUudGV4dCkmJnUuc2V0VGV4dENvbnRlbnQocCwiIiksXyhwLG51bGwseSwwLHkubGVuZ3RoLTEsbykpOm4oaCk\/JChoLDAsaC5sZW5ndGgtMSk6bihlLnRleHQpJiZ1LnNldFRleHRDb250ZW50KHAsIiIpOmUudGV4dCE9PWkudGV4dCYmdS5zZXRUZXh0Q29udGVudChwLGkudGV4dCksbih2KSYmbihkPXYuaG9vaykmJm4oZD1kLnBvc3RwYXRjaCkmJmQoZSxpKX19fWZ1bmN0aW9uIGsoZSx0LGkpe2lmKHIoaSkmJm4oZS5wYXJlbnQpKWUucGFyZW50LmRhdGEucGVuZGluZ0luc2VydD10O2Vsc2UgZm9yKHZhciBvPTA7bzx0Lmxlbmd0aDsrK28pdFtvXS5kYXRhLmhvb2suaW5zZXJ0KHRbb10pfXZhciBBPXAoImF0dHJzLGNsYXNzLHN0YXRpY0NsYXNzLHN0YXRpY1N0eWxlLGtleSIpO2Z1bmN0aW9uIE8oZSx0LGksbyl7dmFyIGEscz10LnRhZyxjPXQuZGF0YSx1PXQuY2hpbGRyZW47aWYobz1vfHxjJiZjLnByZSx0LmVsbT1lLHIodC5pc0NvbW1lbnQpJiZuKHQuYXN5bmNGYWN0b3J5KSlyZXR1cm4gdC5pc0FzeW5jUGxhY2Vob2xkZXI9ITAsITA7aWYobihjKSYmKG4oYT1jLmhvb2spJiZuKGE9YS5pbml0KSYmYSh0LCEwKSxuKGE9dC5jb21wb25lbnRJbnN0YW5jZSkpKXJldHVybiBkKHQsaSksITA7aWYobihzKSl7aWYobih1KSlpZihlLmhhc0NoaWxkTm9kZXMoKSlpZihuKGE9YykmJm4oYT1hLmRvbVByb3BzKSYmbihhPWEuaW5uZXJIVE1MKSl7aWYoYSE9PWUuaW5uZXJIVE1MKXJldHVybiExfWVsc2V7Zm9yKHZhciBsPSEwLGY9ZS5maXJzdENoaWxkLHA9MDtwPHUubGVuZ3RoO3ArKyl7aWYoIWZ8fCFPKGYsdVtwXSxpLG8pKXtsPSExO2JyZWFrfWY9Zi5uZXh0U2libGluZ31pZighbHx8ZilyZXR1cm4hMX1lbHNlIGgodCx1LGkpO2lmKG4oYykpe3ZhciB2PSExO2Zvcih2YXIgbSBpbiBjKWlmKCFBKG0pKXt2PSEwLHkodCxpKTticmVha30hdiYmYy5jbGFzcyYmZXQoYy5jbGFzcyl9fWVsc2UgZS5kYXRhIT09dC50ZXh0JiYoZS5kYXRhPXQudGV4dCk7cmV0dXJuITB9cmV0dXJuIGZ1bmN0aW9uKGUsaSxvLGEpe2lmKCF0KGkpKXt2YXIgYyxsPSExLHA9W107aWYodChlKSlsPSEwLGYoaSxwKTtlbHNle3ZhciBkPW4oZS5ub2RlVHlwZSk7aWYoIWQmJmlyKGUsaSkpeChlLGkscCxudWxsLG51bGwsYSk7ZWxzZXtpZihkKXtpZigxPT09ZS5ub2RlVHlwZSYmZS5oYXNBdHRyaWJ1dGUoTCkmJihlLnJlbW92ZUF0dHJpYnV0ZShMKSxvPSEwKSxyKG8pJiZPKGUsaSxwKSlyZXR1cm4gayhpLHAsITApLGU7Yz1lLGU9bmV3IHBlKHUudGFnTmFtZShjKS50b0xvd2VyQ2FzZSgpLHt9LFtdLHZvaWQgMCxjKX12YXIgdj1lLmVsbSxoPXUucGFyZW50Tm9kZSh2KTtpZihmKGkscCx2Ll9sZWF2ZUNiP251bGw6aCx1Lm5leHRTaWJsaW5nKHYpKSxuKGkucGFyZW50KSlmb3IodmFyIHk9aS5wYXJlbnQsZz1tKGkpO3k7KXtmb3IodmFyIF89MDtfPHMuZGVzdHJveS5sZW5ndGg7KytfKXMuZGVzdHJveVtfXSh5KTtpZih5LmVsbT1pLmVsbSxnKXtmb3IodmFyIHc9MDt3PHMuY3JlYXRlLmxlbmd0aDsrK3cpcy5jcmVhdGVbd10obnIseSk7dmFyIEM9eS5kYXRhLmhvb2suaW5zZXJ0O2lmKEMubWVyZ2VkKWZvcih2YXIgQT0xO0E8Qy5mbnMubGVuZ3RoO0ErKylDLmZuc1tBXSgpfWVsc2UgdHIoeSk7eT15LnBhcmVudH1uKGgpPyQoW2VdLDAsMCk6bihlLnRhZykmJmIoZSl9fXJldHVybiBrKGkscCxsKSxpLmVsbX1uKGUpJiZiKGUpfX0oe25vZGVPcHM6UW4sbW9kdWxlczpbbXIseHIsbmksb2ksbWksej97Y3JlYXRlOlVpLGFjdGl2YXRlOlVpLHJlbW92ZTpmdW5jdGlvbihlLHQpeyEwIT09ZS5kYXRhLnNob3c\/UmkoZSx0KTp0KCl9fTp7fV0uY29uY2F0KHByKX0pO1cmJmRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoInNlbGVjdGlvbmNoYW5nZSIsZnVuY3Rpb24oKXt2YXIgZT1kb2N1bWVudC5hY3RpdmVFbGVtZW50O2UmJmUudm1vZGVsJiZYaShlLCJpbnB1dCIpfSk7dmFyIFZpPXtpbnNlcnRlZDpmdW5jdGlvbihlLHQsbixyKXsic2VsZWN0Ij09PW4udGFnPyhyLmVsbSYmIXIuZWxtLl92T3B0aW9ucz9pdChuLCJwb3N0cGF0Y2giLGZ1bmN0aW9uKCl7VmkuY29tcG9uZW50VXBkYXRlZChlLHQsbil9KTpLaShlLHQsbi5jb250ZXh0KSxlLl92T3B0aW9ucz1bXS5tYXAuY2FsbChlLm9wdGlvbnMsV2kpKTooInRleHRhcmVhIj09PW4udGFnfHxYbihlLnR5cGUpKSYmKGUuX3ZNb2RpZmllcnM9dC5tb2RpZmllcnMsdC5tb2RpZmllcnMubGF6eXx8KGUuYWRkRXZlbnRMaXN0ZW5lcigiY29tcG9zaXRpb25zdGFydCIsWmkpLGUuYWRkRXZlbnRMaXN0ZW5lcigiY29tcG9zaXRpb25lbmQiLEdpKSxlLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsR2kpLFcmJihlLnZtb2RlbD0hMCkpKX0sY29tcG9uZW50VXBkYXRlZDpmdW5jdGlvbihlLHQsbil7aWYoInNlbGVjdCI9PT1uLnRhZyl7S2koZSx0LG4uY29udGV4dCk7dmFyIHI9ZS5fdk9wdGlvbnMsaT1lLl92T3B0aW9ucz1bXS5tYXAuY2FsbChlLm9wdGlvbnMsV2kpO2lmKGkuc29tZShmdW5jdGlvbihlLHQpe3JldHVybiFOKGUsclt0XSl9KSkoZS5tdWx0aXBsZT90LnZhbHVlLnNvbWUoZnVuY3Rpb24oZSl7cmV0dXJuIHFpKGUsaSl9KTp0LnZhbHVlIT09dC5vbGRWYWx1ZSYmcWkodC52YWx1ZSxpKSkmJlhpKGUsImNoYW5nZSIpfX19O2Z1bmN0aW9uIEtpKGUsdCxuKXtKaShlLHQsbiksKHF8fFopJiZzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7SmkoZSx0LG4pfSwwKX1mdW5jdGlvbiBKaShlLHQsbil7dmFyIHI9dC52YWx1ZSxpPWUubXVsdGlwbGU7aWYoIWl8fEFycmF5LmlzQXJyYXkocikpe2Zvcih2YXIgbyxhLHM9MCxjPWUub3B0aW9ucy5sZW5ndGg7czxjO3MrKylpZihhPWUub3B0aW9uc1tzXSxpKW89aihyLFdpKGEpKT4tMSxhLnNlbGVjdGVkIT09byYmKGEuc2VsZWN0ZWQ9byk7ZWxzZSBpZihOKFdpKGEpLHIpKXJldHVybiB2b2lkKGUuc2VsZWN0ZWRJbmRleCE9PXMmJihlLnNlbGVjdGVkSW5kZXg9cykpO2l8fChlLnNlbGVjdGVkSW5kZXg9LTEpfX1mdW5jdGlvbiBxaShlLHQpe3JldHVybiB0LmV2ZXJ5KGZ1bmN0aW9uKHQpe3JldHVybiFOKHQsZSl9KX1mdW5jdGlvbiBXaShlKXtyZXR1cm4iX3ZhbHVlImluIGU\/ZS5fdmFsdWU6ZS52YWx1ZX1mdW5jdGlvbiBaaShlKXtlLnRhcmdldC5jb21wb3Npbmc9ITB9ZnVuY3Rpb24gR2koZSl7ZS50YXJnZXQuY29tcG9zaW5nJiYoZS50YXJnZXQuY29tcG9zaW5nPSExLFhpKGUudGFyZ2V0LCJpbnB1dCIpKX1mdW5jdGlvbiBYaShlLHQpe3ZhciBuPWRvY3VtZW50LmNyZWF0ZUV2ZW50KCJIVE1MRXZlbnRzIik7bi5pbml0RXZlbnQodCwhMCwhMCksZS5kaXNwYXRjaEV2ZW50KG4pfWZ1bmN0aW9uIFlpKGUpe3JldHVybiFlLmNvbXBvbmVudEluc3RhbmNlfHxlLmRhdGEmJmUuZGF0YS50cmFuc2l0aW9uP2U6WWkoZS5jb21wb25lbnRJbnN0YW5jZS5fdm5vZGUpfXZhciBRaT17bW9kZWw6Vmksc2hvdzp7YmluZDpmdW5jdGlvbihlLHQsbil7dmFyIHI9dC52YWx1ZSxpPShuPVlpKG4pKS5kYXRhJiZuLmRhdGEudHJhbnNpdGlvbixvPWUuX192T3JpZ2luYWxEaXNwbGF5PSJub25lIj09PWUuc3R5bGUuZGlzcGxheT8iIjplLnN0eWxlLmRpc3BsYXk7ciYmaT8obi5kYXRhLnNob3c9ITAsUGkobixmdW5jdGlvbigpe2Uuc3R5bGUuZGlzcGxheT1vfSkpOmUuc3R5bGUuZGlzcGxheT1yP286Im5vbmUifSx1cGRhdGU6ZnVuY3Rpb24oZSx0LG4pe3ZhciByPXQudmFsdWU7IXIhPSF0Lm9sZFZhbHVlJiYoKG49WWkobikpLmRhdGEmJm4uZGF0YS50cmFuc2l0aW9uPyhuLmRhdGEuc2hvdz0hMCxyP1BpKG4sZnVuY3Rpb24oKXtlLnN0eWxlLmRpc3BsYXk9ZS5fX3ZPcmlnaW5hbERpc3BsYXl9KTpSaShuLGZ1bmN0aW9uKCl7ZS5zdHlsZS5kaXNwbGF5PSJub25lIn0pKTplLnN0eWxlLmRpc3BsYXk9cj9lLl9fdk9yaWdpbmFsRGlzcGxheToibm9uZSIpfSx1bmJpbmQ6ZnVuY3Rpb24oZSx0LG4scixpKXtpfHwoZS5zdHlsZS5kaXNwbGF5PWUuX192T3JpZ2luYWxEaXNwbGF5KX19fSxlbz17bmFtZTpTdHJpbmcsYXBwZWFyOkJvb2xlYW4sY3NzOkJvb2xlYW4sbW9kZTpTdHJpbmcsdHlwZTpTdHJpbmcsZW50ZXJDbGFzczpTdHJpbmcsbGVhdmVDbGFzczpTdHJpbmcsZW50ZXJUb0NsYXNzOlN0cmluZyxsZWF2ZVRvQ2xhc3M6U3RyaW5nLGVudGVyQWN0aXZlQ2xhc3M6U3RyaW5nLGxlYXZlQWN0aXZlQ2xhc3M6U3RyaW5nLGFwcGVhckNsYXNzOlN0cmluZyxhcHBlYXJBY3RpdmVDbGFzczpTdHJpbmcsYXBwZWFyVG9DbGFzczpTdHJpbmcsZHVyYXRpb246W051bWJlcixTdHJpbmcsT2JqZWN0XX07ZnVuY3Rpb24gdG8oZSl7dmFyIHQ9ZSYmZS5jb21wb25lbnRPcHRpb25zO3JldHVybiB0JiZ0LkN0b3Iub3B0aW9ucy5hYnN0cmFjdD90byh6dCh0LmNoaWxkcmVuKSk6ZX1mdW5jdGlvbiBubyhlKXt2YXIgdD17fSxuPWUuJG9wdGlvbnM7Zm9yKHZhciByIGluIG4ucHJvcHNEYXRhKXRbcl09ZVtyXTt2YXIgaT1uLl9wYXJlbnRMaXN0ZW5lcnM7Zm9yKHZhciBvIGluIGkpdFtiKG8pXT1pW29dO3JldHVybiB0fWZ1bmN0aW9uIHJvKGUsdCl7aWYoL1xkLWtlZXAtYWxpdmUkLy50ZXN0KHQudGFnKSlyZXR1cm4gZSgia2VlcC1hbGl2ZSIse3Byb3BzOnQuY29tcG9uZW50T3B0aW9ucy5wcm9wc0RhdGF9KX12YXIgaW89ZnVuY3Rpb24oZSl7cmV0dXJuIGUudGFnfHxVdChlKX0sb289ZnVuY3Rpb24oZSl7cmV0dXJuInNob3ciPT09ZS5uYW1lfSxhbz17bmFtZToidHJhbnNpdGlvbiIscHJvcHM6ZW8sYWJzdHJhY3Q6ITAscmVuZGVyOmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMsbj10aGlzLiRzbG90cy5kZWZhdWx0O2lmKG4mJihuPW4uZmlsdGVyKGlvKSkubGVuZ3RoKXt2YXIgcj10aGlzLm1vZGUsbz1uWzBdO2lmKGZ1bmN0aW9uKGUpe2Zvcig7ZT1lLnBhcmVudDspaWYoZS5kYXRhLnRyYW5zaXRpb24pcmV0dXJuITB9KHRoaXMuJHZub2RlKSlyZXR1cm4gbzt2YXIgYT10byhvKTtpZighYSlyZXR1cm4gbztpZih0aGlzLl9sZWF2aW5nKXJldHVybiBybyhlLG8pO3ZhciBzPSJfX3RyYW5zaXRpb24tIit0aGlzLl91aWQrIi0iO2Eua2V5PW51bGw9PWEua2V5P2EuaXNDb21tZW50P3MrImNvbW1lbnQiOnMrYS50YWc6aShhLmtleSk\/MD09PVN0cmluZyhhLmtleSkuaW5kZXhPZihzKT9hLmtleTpzK2Eua2V5OmEua2V5O3ZhciBjPShhLmRhdGF8fChhLmRhdGE9e30pKS50cmFuc2l0aW9uPW5vKHRoaXMpLHU9dGhpcy5fdm5vZGUsbD10byh1KTtpZihhLmRhdGEuZGlyZWN0aXZlcyYmYS5kYXRhLmRpcmVjdGl2ZXMuc29tZShvbykmJihhLmRhdGEuc2hvdz0hMCksbCYmbC5kYXRhJiYhZnVuY3Rpb24oZSx0KXtyZXR1cm4gdC5rZXk9PT1lLmtleSYmdC50YWc9PT1lLnRhZ30oYSxsKSYmIVV0KGwpJiYoIWwuY29tcG9uZW50SW5zdGFuY2V8fCFsLmNvbXBvbmVudEluc3RhbmNlLl92bm9kZS5pc0NvbW1lbnQpKXt2YXIgZj1sLmRhdGEudHJhbnNpdGlvbj1BKHt9LGMpO2lmKCJvdXQtaW4iPT09cilyZXR1cm4gdGhpcy5fbGVhdmluZz0hMCxpdChmLCJhZnRlckxlYXZlIixmdW5jdGlvbigpe3QuX2xlYXZpbmc9ITEsdC4kZm9yY2VVcGRhdGUoKX0pLHJvKGUsbyk7aWYoImluLW91dCI9PT1yKXtpZihVdChhKSlyZXR1cm4gdTt2YXIgcCxkPWZ1bmN0aW9uKCl7cCgpfTtpdChjLCJhZnRlckVudGVyIixkKSxpdChjLCJlbnRlckNhbmNlbGxlZCIsZCksaXQoZiwiZGVsYXlMZWF2ZSIsZnVuY3Rpb24oZSl7cD1lfSl9fXJldHVybiBvfX19LHNvPUEoe3RhZzpTdHJpbmcsbW92ZUNsYXNzOlN0cmluZ30sZW8pO2Z1bmN0aW9uIGNvKGUpe2UuZWxtLl9tb3ZlQ2ImJmUuZWxtLl9tb3ZlQ2IoKSxlLmVsbS5fZW50ZXJDYiYmZS5lbG0uX2VudGVyQ2IoKX1mdW5jdGlvbiB1byhlKXtlLmRhdGEubmV3UG9zPWUuZWxtLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpfWZ1bmN0aW9uIGxvKGUpe3ZhciB0PWUuZGF0YS5wb3Msbj1lLmRhdGEubmV3UG9zLHI9dC5sZWZ0LW4ubGVmdCxpPXQudG9wLW4udG9wO2lmKHJ8fGkpe2UuZGF0YS5tb3ZlZD0hMDt2YXIgbz1lLmVsbS5zdHlsZTtvLnRyYW5zZm9ybT1vLldlYmtpdFRyYW5zZm9ybT0idHJhbnNsYXRlKCIrcisicHgsIitpKyJweCkiLG8udHJhbnNpdGlvbkR1cmF0aW9uPSIwcyJ9fWRlbGV0ZSBzby5tb2RlO3ZhciBmbz17VHJhbnNpdGlvbjphbyxUcmFuc2l0aW9uR3JvdXA6e3Byb3BzOnNvLGJlZm9yZU1vdW50OmZ1bmN0aW9uKCl7dmFyIGU9dGhpcyx0PXRoaXMuX3VwZGF0ZTt0aGlzLl91cGRhdGU9ZnVuY3Rpb24obixyKXt2YXIgaT1adChlKTtlLl9fcGF0Y2hfXyhlLl92bm9kZSxlLmtlcHQsITEsITApLGUuX3Zub2RlPWUua2VwdCxpKCksdC5jYWxsKGUsbixyKX19LHJlbmRlcjpmdW5jdGlvbihlKXtmb3IodmFyIHQ9dGhpcy50YWd8fHRoaXMuJHZub2RlLmRhdGEudGFnfHwic3BhbiIsbj1PYmplY3QuY3JlYXRlKG51bGwpLHI9dGhpcy5wcmV2Q2hpbGRyZW49dGhpcy5jaGlsZHJlbixpPXRoaXMuJHNsb3RzLmRlZmF1bHR8fFtdLG89dGhpcy5jaGlsZHJlbj1bXSxhPW5vKHRoaXMpLHM9MDtzPGkubGVuZ3RoO3MrKyl7dmFyIGM9aVtzXTtjLnRhZyYmbnVsbCE9Yy5rZXkmJjAhPT1TdHJpbmcoYy5rZXkpLmluZGV4T2YoIl9fdmxpc3QiKSYmKG8ucHVzaChjKSxuW2Mua2V5XT1jLChjLmRhdGF8fChjLmRhdGE9e30pKS50cmFuc2l0aW9uPWEpfWlmKHIpe2Zvcih2YXIgdT1bXSxsPVtdLGY9MDtmPHIubGVuZ3RoO2YrKyl7dmFyIHA9cltmXTtwLmRhdGEudHJhbnNpdGlvbj1hLHAuZGF0YS5wb3M9cC5lbG0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksbltwLmtleV0\/dS5wdXNoKHApOmwucHVzaChwKX10aGlzLmtlcHQ9ZSh0LG51bGwsdSksdGhpcy5yZW1vdmVkPWx9cmV0dXJuIGUodCxudWxsLG8pfSx1cGRhdGVkOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5wcmV2Q2hpbGRyZW4sdD10aGlzLm1vdmVDbGFzc3x8KHRoaXMubmFtZXx8InYiKSsiLW1vdmUiO2UubGVuZ3RoJiZ0aGlzLmhhc01vdmUoZVswXS5lbG0sdCkmJihlLmZvckVhY2goY28pLGUuZm9yRWFjaCh1byksZS5mb3JFYWNoKGxvKSx0aGlzLl9yZWZsb3c9ZG9jdW1lbnQuYm9keS5vZmZzZXRIZWlnaHQsZS5mb3JFYWNoKGZ1bmN0aW9uKGUpe2lmKGUuZGF0YS5tb3ZlZCl7dmFyIG49ZS5lbG0scj1uLnN0eWxlO05pKG4sdCksci50cmFuc2Zvcm09ci5XZWJraXRUcmFuc2Zvcm09ci50cmFuc2l0aW9uRHVyYXRpb249IiIsbi5hZGRFdmVudExpc3RlbmVyKEFpLG4uX21vdmVDYj1mdW5jdGlvbiBlKHIpe3ImJnIudGFyZ2V0IT09bnx8ciYmIS90cmFuc2Zvcm0kLy50ZXN0KHIucHJvcGVydHlOYW1lKXx8KG4ucmVtb3ZlRXZlbnRMaXN0ZW5lcihBaSxlKSxuLl9tb3ZlQ2I9bnVsbCxqaShuLHQpKX0pfX0pKX0sbWV0aG9kczp7aGFzTW92ZTpmdW5jdGlvbihlLHQpe2lmKCF3aSlyZXR1cm4hMTtpZih0aGlzLl9oYXNNb3ZlKXJldHVybiB0aGlzLl9oYXNNb3ZlO3ZhciBuPWUuY2xvbmVOb2RlKCk7ZS5fdHJhbnNpdGlvbkNsYXNzZXMmJmUuX3RyYW5zaXRpb25DbGFzc2VzLmZvckVhY2goZnVuY3Rpb24oZSl7X2kobixlKX0pLGdpKG4sdCksbi5zdHlsZS5kaXNwbGF5PSJub25lIix0aGlzLiRlbC5hcHBlbmRDaGlsZChuKTt2YXIgcj1NaShuKTtyZXR1cm4gdGhpcy4kZWwucmVtb3ZlQ2hpbGQobiksdGhpcy5faGFzTW92ZT1yLmhhc1RyYW5zZm9ybX19fX07d24uY29uZmlnLm11c3RVc2VQcm9wPWpuLHduLmNvbmZpZy5pc1Jlc2VydmVkVGFnPVduLHduLmNvbmZpZy5pc1Jlc2VydmVkQXR0cj1Fbix3bi5jb25maWcuZ2V0VGFnTmFtZXNwYWNlPVpuLHduLmNvbmZpZy5pc1Vua25vd25FbGVtZW50PWZ1bmN0aW9uKGUpe2lmKCF6KXJldHVybiEwO2lmKFduKGUpKXJldHVybiExO2lmKGU9ZS50b0xvd2VyQ2FzZSgpLG51bGwhPUduW2VdKXJldHVybiBHbltlXTt2YXIgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KGUpO3JldHVybiBlLmluZGV4T2YoIi0iKT4tMT9HbltlXT10LmNvbnN0cnVjdG9yPT09d2luZG93LkhUTUxVbmtub3duRWxlbWVudHx8dC5jb25zdHJ1Y3Rvcj09PXdpbmRvdy5IVE1MRWxlbWVudDpHbltlXT0vSFRNTFVua25vd25FbGVtZW50Ly50ZXN0KHQudG9TdHJpbmcoKSl9LEEod24ub3B0aW9ucy5kaXJlY3RpdmVzLFFpKSxBKHduLm9wdGlvbnMuY29tcG9uZW50cyxmbyksd24ucHJvdG90eXBlLl9fcGF0Y2hfXz16P3ppOlMsd24ucHJvdG90eXBlLiRtb3VudD1mdW5jdGlvbihlLHQpe3JldHVybiBmdW5jdGlvbihlLHQsbil7dmFyIHI7cmV0dXJuIGUuJGVsPXQsZS4kb3B0aW9ucy5yZW5kZXJ8fChlLiRvcHRpb25zLnJlbmRlcj12ZSksWXQoZSwiYmVmb3JlTW91bnQiKSxyPWZ1bmN0aW9uKCl7ZS5fdXBkYXRlKGUuX3JlbmRlcigpLG4pfSxuZXcgZm4oZSxyLFMse2JlZm9yZTpmdW5jdGlvbigpe2UuX2lzTW91bnRlZCYmIWUuX2lzRGVzdHJveWVkJiZZdChlLCJiZWZvcmVVcGRhdGUiKX19LCEwKSxuPSExLG51bGw9PWUuJHZub2RlJiYoZS5faXNNb3VudGVkPSEwLFl0KGUsIm1vdW50ZWQiKSksZX0odGhpcyxlPWUmJno\/WW4oZSk6dm9pZCAwLHQpfSx6JiZzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Ri5kZXZ0b29scyYmbmUmJm5lLmVtaXQoImluaXQiLHduKX0sMCk7dmFyIHBvPS9ce1x7KCg\/Oi58XHI\/XG4pKz8pXH1cfS9nLHZvPS9bLS4qKz9eJHt9KCl8W1xdXC9cXF0vZyxobz1nKGZ1bmN0aW9uKGUpe3ZhciB0PWVbMF0ucmVwbGFjZSh2bywiXFwkJiIpLG49ZVsxXS5yZXBsYWNlKHZvLCJcXCQmIik7cmV0dXJuIG5ldyBSZWdFeHAodCsiKCg\/Oi58XFxuKSs\/KSIrbiwiZyIpfSk7dmFyIG1vPXtzdGF0aWNLZXlzOlsic3RhdGljQ2xhc3MiXSx0cmFuc2Zvcm1Ob2RlOmZ1bmN0aW9uKGUsdCl7dC53YXJuO3ZhciBuPUZyKGUsImNsYXNzIik7biYmKGUuc3RhdGljQ2xhc3M9SlNPTi5zdHJpbmdpZnkobikpO3ZhciByPUlyKGUsImNsYXNzIiwhMSk7ciYmKGUuY2xhc3NCaW5kaW5nPXIpfSxnZW5EYXRhOmZ1bmN0aW9uKGUpe3ZhciB0PSIiO3JldHVybiBlLnN0YXRpY0NsYXNzJiYodCs9InN0YXRpY0NsYXNzOiIrZS5zdGF0aWNDbGFzcysiLCIpLGUuY2xhc3NCaW5kaW5nJiYodCs9ImNsYXNzOiIrZS5jbGFzc0JpbmRpbmcrIiwiKSx0fX07dmFyIHlvLGdvPXtzdGF0aWNLZXlzOlsic3RhdGljU3R5bGUiXSx0cmFuc2Zvcm1Ob2RlOmZ1bmN0aW9uKGUsdCl7dC53YXJuO3ZhciBuPUZyKGUsInN0eWxlIik7biYmKGUuc3RhdGljU3R5bGU9SlNPTi5zdHJpbmdpZnkoYWkobikpKTt2YXIgcj1JcihlLCJzdHlsZSIsITEpO3ImJihlLnN0eWxlQmluZGluZz1yKX0sZ2VuRGF0YTpmdW5jdGlvbihlKXt2YXIgdD0iIjtyZXR1cm4gZS5zdGF0aWNTdHlsZSYmKHQrPSJzdGF0aWNTdHlsZToiK2Uuc3RhdGljU3R5bGUrIiwiKSxlLnN0eWxlQmluZGluZyYmKHQrPSJzdHlsZTooIitlLnN0eWxlQmluZGluZysiKSwiKSx0fX0sX289ZnVuY3Rpb24oZSl7cmV0dXJuKHlvPXlvfHxkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSkuaW5uZXJIVE1MPWUseW8udGV4dENvbnRlbnR9LGJvPXAoImFyZWEsYmFzZSxicixjb2wsZW1iZWQsZnJhbWUsaHIsaW1nLGlucHV0LGlzaW5kZXgsa2V5Z2VuLGxpbmssbWV0YSxwYXJhbSxzb3VyY2UsdHJhY2ssd2JyIiksJG89cCgiY29sZ3JvdXAsZGQsZHQsbGksb3B0aW9ucyxwLHRkLHRmb290LHRoLHRoZWFkLHRyLHNvdXJjZSIpLHdvPXAoImFkZHJlc3MsYXJ0aWNsZSxhc2lkZSxiYXNlLGJsb2NrcXVvdGUsYm9keSxjYXB0aW9uLGNvbCxjb2xncm91cCxkZCxkZXRhaWxzLGRpYWxvZyxkaXYsZGwsZHQsZmllbGRzZXQsZmlnY2FwdGlvbixmaWd1cmUsZm9vdGVyLGZvcm0saDEsaDIsaDMsaDQsaDUsaDYsaGVhZCxoZWFkZXIsaGdyb3VwLGhyLGh0bWwsbGVnZW5kLGxpLG1lbnVpdGVtLG1ldGEsb3B0Z3JvdXAsb3B0aW9uLHBhcmFtLHJwLHJ0LHNvdXJjZSxzdHlsZSxzdW1tYXJ5LHRib2R5LHRkLHRmb290LHRoLHRoZWFkLHRpdGxlLHRyLHRyYWNrIiksQ289L15ccyooW15ccyInPD5cLz1dKykoPzpccyooPSlccyooPzoiKFteIl0qKSIrfCcoW14nXSopJyt8KFteXHMiJz08PmBdKykpKT8vLHhvPS9eXHMqKCg\/OnYtW1x3LV0rOnxAfDp8IylcW1tePV0rXF1bXlxzIic8PlwvPV0qKSg\/OlxzKig9KVxzKig\/OiIoW14iXSopIit8JyhbXiddKiknK3woW15ccyInPTw+YF0rKSkpPy8sa289IlthLXpBLVpfXVtcXC1cXC4wLTlfYS16QS1aIitQLnNvdXJjZSsiXSoiLEFvPSIoKD86IitrbysiXFw6KT8iK2tvKyIpIixPbz1uZXcgUmVnRXhwKCJePCIrQW8pLFNvPS9eXHMqKFwvPyk+LyxUbz1uZXcgUmVnRXhwKCJePFxcLyIrQW8rIltePl0qPiIpLEVvPS9ePCFET0NUWVBFIFtePl0rPi9pLE5vPS9ePCFcLS0vLGpvPS9ePCFcWy8sRG89cCgic2NyaXB0LHN0eWxlLHRleHRhcmVhIiwhMCksTG89e30sTW89eyImbHQ7IjoiPCIsIiZndDsiOiI+IiwiJnF1b3Q7IjonIicsIiZhbXA7IjoiJiIsIiYjMTA7IjoiXG4iLCImIzk7IjoiXHQiLCImIzM5OyI6IicifSxJbz0vJig\/Omx0fGd0fHF1b3R8YW1wfCMzOSk7L2csRm89LyYoPzpsdHxndHxxdW90fGFtcHwjMzl8IzEwfCM5KTsvZyxQbz1wKCJwcmUsdGV4dGFyZWEiLCEwKSxSbz1mdW5jdGlvbihlLHQpe3JldHVybiBlJiZQbyhlKSYmIlxuIj09PXRbMF19O2Z1bmN0aW9uIEhvKGUsdCl7dmFyIG49dD9GbzpJbztyZXR1cm4gZS5yZXBsYWNlKG4sZnVuY3Rpb24oZSl7cmV0dXJuIE1vW2VdfSl9dmFyIEJvLFVvLHpvLFZvLEtvLEpvLHFvLFdvLFpvPS9eQHxedi1vbjovLEdvPS9edi18XkB8Xjp8XiMvLFhvPS8oW1xzXFNdKj8pXHMrKD86aW58b2YpXHMrKFtcc1xTXSopLyxZbz0vLChbXixcfVxdXSopKD86LChbXixcfVxdXSopKT8kLyxRbz0vXlwofFwpJC9nLGVhPS9eXFsuKlxdJC8sdGE9LzooLiopJC8sbmE9L146fF5cLnxedi1iaW5kOi8scmE9L1wuW14uXF1dKyg\/PVteXF1dKiQpL2csaWE9L152LXNsb3QoOnwkKXxeIy8sb2E9L1tcclxuXS8sYWE9L1xzKy9nLHNhPWcoX28pLGNhPSJfZW1wdHlfIjtmdW5jdGlvbiB1YShlLHQsbil7cmV0dXJue3R5cGU6MSx0YWc6ZSxhdHRyc0xpc3Q6dCxhdHRyc01hcDptYSh0KSxyYXdBdHRyc01hcDp7fSxwYXJlbnQ6bixjaGlsZHJlbjpbXX19ZnVuY3Rpb24gbGEoZSx0KXtCbz10Lndhcm58fFNyLEpvPXQuaXNQcmVUYWd8fFQscW89dC5tdXN0VXNlUHJvcHx8VCxXbz10LmdldFRhZ05hbWVzcGFjZXx8VDt0LmlzUmVzZXJ2ZWRUYWc7em89VHIodC5tb2R1bGVzLCJ0cmFuc2Zvcm1Ob2RlIiksVm89VHIodC5tb2R1bGVzLCJwcmVUcmFuc2Zvcm1Ob2RlIiksS289VHIodC5tb2R1bGVzLCJwb3N0VHJhbnNmb3JtTm9kZSIpLFVvPXQuZGVsaW1pdGVyczt2YXIgbixyLGk9W10sbz0hMSE9PXQucHJlc2VydmVXaGl0ZXNwYWNlLGE9dC53aGl0ZXNwYWNlLHM9ITEsYz0hMTtmdW5jdGlvbiB1KGUpe2lmKGwoZSksc3x8ZS5wcm9jZXNzZWR8fChlPWZhKGUsdCkpLGkubGVuZ3RofHxlPT09bnx8bi5pZiYmKGUuZWxzZWlmfHxlLmVsc2UpJiZkYShuLHtleHA6ZS5lbHNlaWYsYmxvY2s6ZX0pLHImJiFlLmZvcmJpZGRlbilpZihlLmVsc2VpZnx8ZS5lbHNlKWE9ZSwodT1mdW5jdGlvbihlKXt2YXIgdD1lLmxlbmd0aDtmb3IoO3QtLTspe2lmKDE9PT1lW3RdLnR5cGUpcmV0dXJuIGVbdF07ZS5wb3AoKX19KHIuY2hpbGRyZW4pKSYmdS5pZiYmZGEodSx7ZXhwOmEuZWxzZWlmLGJsb2NrOmF9KTtlbHNle2lmKGUuc2xvdFNjb3BlKXt2YXIgbz1lLnNsb3RUYXJnZXR8fCciZGVmYXVsdCInOyhyLnNjb3BlZFNsb3RzfHwoci5zY29wZWRTbG90cz17fSkpW29dPWV9ci5jaGlsZHJlbi5wdXNoKGUpLGUucGFyZW50PXJ9dmFyIGEsdTtlLmNoaWxkcmVuPWUuY2hpbGRyZW4uZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiFlLnNsb3RTY29wZX0pLGwoZSksZS5wcmUmJihzPSExKSxKbyhlLnRhZykmJihjPSExKTtmb3IodmFyIGY9MDtmPEtvLmxlbmd0aDtmKyspS29bZl0oZSx0KX1mdW5jdGlvbiBsKGUpe2lmKCFjKWZvcih2YXIgdDsodD1lLmNoaWxkcmVuW2UuY2hpbGRyZW4ubGVuZ3RoLTFdKSYmMz09PXQudHlwZSYmIiAiPT09dC50ZXh0OyllLmNoaWxkcmVuLnBvcCgpfXJldHVybiBmdW5jdGlvbihlLHQpe2Zvcih2YXIgbixyLGk9W10sbz10LmV4cGVjdEhUTUwsYT10LmlzVW5hcnlUYWd8fFQscz10LmNhbkJlTGVmdE9wZW5UYWd8fFQsYz0wO2U7KXtpZihuPWUsciYmRG8ocikpe3ZhciB1PTAsbD1yLnRvTG93ZXJDYXNlKCksZj1Mb1tsXXx8KExvW2xdPW5ldyBSZWdFeHAoIihbXFxzXFxTXSo\/KSg8LyIrbCsiW14+XSo+KSIsImkiKSkscD1lLnJlcGxhY2UoZixmdW5jdGlvbihlLG4scil7cmV0dXJuIHU9ci5sZW5ndGgsRG8obCl8fCJub3NjcmlwdCI9PT1sfHwobj1uLnJlcGxhY2UoLzwhXC0tKFtcc1xTXSo\/KS0tPi9nLCIkMSIpLnJlcGxhY2UoLzwhXFtDREFUQVxbKFtcc1xTXSo\/KV1dPi9nLCIkMSIpKSxSbyhsLG4pJiYobj1uLnNsaWNlKDEpKSx0LmNoYXJzJiZ0LmNoYXJzKG4pLCIifSk7Yys9ZS5sZW5ndGgtcC5sZW5ndGgsZT1wLEEobCxjLXUsYyl9ZWxzZXt2YXIgZD1lLmluZGV4T2YoIjwiKTtpZigwPT09ZCl7aWYoTm8udGVzdChlKSl7dmFyIHY9ZS5pbmRleE9mKCItLVx4M2UiKTtpZih2Pj0wKXt0LnNob3VsZEtlZXBDb21tZW50JiZ0LmNvbW1lbnQoZS5zdWJzdHJpbmcoNCx2KSxjLGMrdiszKSxDKHYrMyk7Y29udGludWV9fWlmKGpvLnRlc3QoZSkpe3ZhciBoPWUuaW5kZXhPZigiXT4iKTtpZihoPj0wKXtDKGgrMik7Y29udGludWV9fXZhciBtPWUubWF0Y2goRW8pO2lmKG0pe0MobVswXS5sZW5ndGgpO2NvbnRpbnVlfXZhciB5PWUubWF0Y2goVG8pO2lmKHkpe3ZhciBnPWM7Qyh5WzBdLmxlbmd0aCksQSh5WzFdLGcsYyk7Y29udGludWV9dmFyIF89eCgpO2lmKF8pe2soXyksUm8oXy50YWdOYW1lLGUpJiZDKDEpO2NvbnRpbnVlfX12YXIgYj12b2lkIDAsJD12b2lkIDAsdz12b2lkIDA7aWYoZD49MCl7Zm9yKCQ9ZS5zbGljZShkKTshKFRvLnRlc3QoJCl8fE9vLnRlc3QoJCl8fE5vLnRlc3QoJCl8fGpvLnRlc3QoJCl8fCh3PSQuaW5kZXhPZigiPCIsMSkpPDApOylkKz13LCQ9ZS5zbGljZShkKTtiPWUuc3Vic3RyaW5nKDAsZCl9ZDwwJiYoYj1lKSxiJiZDKGIubGVuZ3RoKSx0LmNoYXJzJiZiJiZ0LmNoYXJzKGIsYy1iLmxlbmd0aCxjKX1pZihlPT09bil7dC5jaGFycyYmdC5jaGFycyhlKTticmVha319ZnVuY3Rpb24gQyh0KXtjKz10LGU9ZS5zdWJzdHJpbmcodCl9ZnVuY3Rpb24geCgpe3ZhciB0PWUubWF0Y2goT28pO2lmKHQpe3ZhciBuLHIsaT17dGFnTmFtZTp0WzFdLGF0dHJzOltdLHN0YXJ0OmN9O2ZvcihDKHRbMF0ubGVuZ3RoKTshKG49ZS5tYXRjaChTbykpJiYocj1lLm1hdGNoKHhvKXx8ZS5tYXRjaChDbykpOylyLnN0YXJ0PWMsQyhyWzBdLmxlbmd0aCksci5lbmQ9YyxpLmF0dHJzLnB1c2gocik7aWYobilyZXR1cm4gaS51bmFyeVNsYXNoPW5bMV0sQyhuWzBdLmxlbmd0aCksaS5lbmQ9YyxpfX1mdW5jdGlvbiBrKGUpe3ZhciBuPWUudGFnTmFtZSxjPWUudW5hcnlTbGFzaDtvJiYoInAiPT09ciYmd28obikmJkEocikscyhuKSYmcj09PW4mJkEobikpO2Zvcih2YXIgdT1hKG4pfHwhIWMsbD1lLmF0dHJzLmxlbmd0aCxmPW5ldyBBcnJheShsKSxwPTA7cDxsO3ArKyl7dmFyIGQ9ZS5hdHRyc1twXSx2PWRbM118fGRbNF18fGRbNV18fCIiLGg9ImEiPT09biYmImhyZWYiPT09ZFsxXT90LnNob3VsZERlY29kZU5ld2xpbmVzRm9ySHJlZjp0LnNob3VsZERlY29kZU5ld2xpbmVzO2ZbcF09e25hbWU6ZFsxXSx2YWx1ZTpIbyh2LGgpfX11fHwoaS5wdXNoKHt0YWc6bixsb3dlckNhc2VkVGFnOm4udG9Mb3dlckNhc2UoKSxhdHRyczpmLHN0YXJ0OmUuc3RhcnQsZW5kOmUuZW5kfSkscj1uKSx0LnN0YXJ0JiZ0LnN0YXJ0KG4sZix1LGUuc3RhcnQsZS5lbmQpfWZ1bmN0aW9uIEEoZSxuLG8pe3ZhciBhLHM7aWYobnVsbD09biYmKG49YyksbnVsbD09byYmKG89YyksZSlmb3Iocz1lLnRvTG93ZXJDYXNlKCksYT1pLmxlbmd0aC0xO2E+PTAmJmlbYV0ubG93ZXJDYXNlZFRhZyE9PXM7YS0tKTtlbHNlIGE9MDtpZihhPj0wKXtmb3IodmFyIHU9aS5sZW5ndGgtMTt1Pj1hO3UtLSl0LmVuZCYmdC5lbmQoaVt1XS50YWcsbixvKTtpLmxlbmd0aD1hLHI9YSYmaVthLTFdLnRhZ31lbHNlImJyIj09PXM\/dC5zdGFydCYmdC5zdGFydChlLFtdLCEwLG4sbyk6InAiPT09cyYmKHQuc3RhcnQmJnQuc3RhcnQoZSxbXSwhMSxuLG8pLHQuZW5kJiZ0LmVuZChlLG4sbykpfUEoKX0oZSx7d2FybjpCbyxleHBlY3RIVE1MOnQuZXhwZWN0SFRNTCxpc1VuYXJ5VGFnOnQuaXNVbmFyeVRhZyxjYW5CZUxlZnRPcGVuVGFnOnQuY2FuQmVMZWZ0T3BlblRhZyxzaG91bGREZWNvZGVOZXdsaW5lczp0LnNob3VsZERlY29kZU5ld2xpbmVzLHNob3VsZERlY29kZU5ld2xpbmVzRm9ySHJlZjp0LnNob3VsZERlY29kZU5ld2xpbmVzRm9ySHJlZixzaG91bGRLZWVwQ29tbWVudDp0LmNvbW1lbnRzLG91dHB1dFNvdXJjZVJhbmdlOnQub3V0cHV0U291cmNlUmFuZ2Usc3RhcnQ6ZnVuY3Rpb24oZSxvLGEsbCxmKXt2YXIgcD1yJiZyLm5zfHxXbyhlKTtxJiYic3ZnIj09PXAmJihvPWZ1bmN0aW9uKGUpe2Zvcih2YXIgdD1bXSxuPTA7bjxlLmxlbmd0aDtuKyspe3ZhciByPWVbbl07eWEudGVzdChyLm5hbWUpfHwoci5uYW1lPXIubmFtZS5yZXBsYWNlKGdhLCIiKSx0LnB1c2gocikpfXJldHVybiB0fShvKSk7dmFyIGQsdj11YShlLG8scik7cCYmKHYubnM9cCksInN0eWxlIiE9PShkPXYpLnRhZyYmKCJzY3JpcHQiIT09ZC50YWd8fGQuYXR0cnNNYXAudHlwZSYmInRleHQvamF2YXNjcmlwdCIhPT1kLmF0dHJzTWFwLnR5cGUpfHx0ZSgpfHwodi5mb3JiaWRkZW49ITApO2Zvcih2YXIgaD0wO2g8Vm8ubGVuZ3RoO2grKyl2PVZvW2hdKHYsdCl8fHY7c3x8KCFmdW5jdGlvbihlKXtudWxsIT1GcihlLCJ2LXByZSIpJiYoZS5wcmU9ITApfSh2KSx2LnByZSYmKHM9ITApKSxKbyh2LnRhZykmJihjPSEwKSxzP2Z1bmN0aW9uKGUpe3ZhciB0PWUuYXR0cnNMaXN0LG49dC5sZW5ndGg7aWYobilmb3IodmFyIHI9ZS5hdHRycz1uZXcgQXJyYXkobiksaT0wO2k8bjtpKyspcltpXT17bmFtZTp0W2ldLm5hbWUsdmFsdWU6SlNPTi5zdHJpbmdpZnkodFtpXS52YWx1ZSl9LG51bGwhPXRbaV0uc3RhcnQmJihyW2ldLnN0YXJ0PXRbaV0uc3RhcnQscltpXS5lbmQ9dFtpXS5lbmQpO2Vsc2UgZS5wcmV8fChlLnBsYWluPSEwKX0odik6di5wcm9jZXNzZWR8fChwYSh2KSxmdW5jdGlvbihlKXt2YXIgdD1GcihlLCJ2LWlmIik7aWYodCllLmlmPXQsZGEoZSx7ZXhwOnQsYmxvY2s6ZX0pO2Vsc2V7bnVsbCE9RnIoZSwidi1lbHNlIikmJihlLmVsc2U9ITApO3ZhciBuPUZyKGUsInYtZWxzZS1pZiIpO24mJihlLmVsc2VpZj1uKX19KHYpLGZ1bmN0aW9uKGUpe251bGwhPUZyKGUsInYtb25jZSIpJiYoZS5vbmNlPSEwKX0odikpLG58fChuPXYpLGE\/dSh2KToocj12LGkucHVzaCh2KSl9LGVuZDpmdW5jdGlvbihlLHQsbil7dmFyIG89aVtpLmxlbmd0aC0xXTtpLmxlbmd0aC09MSxyPWlbaS5sZW5ndGgtMV0sdShvKX0sY2hhcnM6ZnVuY3Rpb24oZSx0LG4pe2lmKHImJighcXx8InRleHRhcmVhIiE9PXIudGFnfHxyLmF0dHJzTWFwLnBsYWNlaG9sZGVyIT09ZSkpe3ZhciBpLHUsbCxmPXIuY2hpbGRyZW47aWYoZT1jfHxlLnRyaW0oKT8ic2NyaXB0Ij09PShpPXIpLnRhZ3x8InN0eWxlIj09PWkudGFnP2U6c2EoZSk6Zi5sZW5ndGg\/YT8iY29uZGVuc2UiPT09YSYmb2EudGVzdChlKT8iIjoiICI6bz8iICI6IiI6IiIpY3x8ImNvbmRlbnNlIiE9PWF8fChlPWUucmVwbGFjZShhYSwiICIpKSwhcyYmIiAiIT09ZSYmKHU9ZnVuY3Rpb24oZSx0KXt2YXIgbj10P2hvKHQpOnBvO2lmKG4udGVzdChlKSl7Zm9yKHZhciByLGksbyxhPVtdLHM9W10sYz1uLmxhc3RJbmRleD0wO3I9bi5leGVjKGUpOyl7KGk9ci5pbmRleCk+YyYmKHMucHVzaChvPWUuc2xpY2UoYyxpKSksYS5wdXNoKEpTT04uc3RyaW5naWZ5KG8pKSk7dmFyIHU9QXIoclsxXS50cmltKCkpO2EucHVzaCgiX3MoIit1KyIpIikscy5wdXNoKHsiQGJpbmRpbmciOnV9KSxjPWkrclswXS5sZW5ndGh9cmV0dXJuIGM8ZS5sZW5ndGgmJihzLnB1c2gobz1lLnNsaWNlKGMpKSxhLnB1c2goSlNPTi5zdHJpbmdpZnkobykpKSx7ZXhwcmVzc2lvbjphLmpvaW4oIisiKSx0b2tlbnM6c319fShlLFVvKSk\/bD17dHlwZToyLGV4cHJlc3Npb246dS5leHByZXNzaW9uLHRva2Vuczp1LnRva2Vucyx0ZXh0OmV9OiIgIj09PWUmJmYubGVuZ3RoJiYiICI9PT1mW2YubGVuZ3RoLTFdLnRleHR8fChsPXt0eXBlOjMsdGV4dDplfSksbCYmZi5wdXNoKGwpfX0sY29tbWVudDpmdW5jdGlvbihlLHQsbil7aWYocil7dmFyIGk9e3R5cGU6Myx0ZXh0OmUsaXNDb21tZW50OiEwfTtyLmNoaWxkcmVuLnB1c2goaSl9fX0pLG59ZnVuY3Rpb24gZmEoZSx0KXt2YXIgbixyOyhyPUlyKG49ZSwia2V5IikpJiYobi5rZXk9ciksZS5wbGFpbj0hZS5rZXkmJiFlLnNjb3BlZFNsb3RzJiYhZS5hdHRyc0xpc3QubGVuZ3RoLGZ1bmN0aW9uKGUpe3ZhciB0PUlyKGUsInJlZiIpO3QmJihlLnJlZj10LGUucmVmSW5Gb3I9ZnVuY3Rpb24oZSl7dmFyIHQ9ZTtmb3IoO3Q7KXtpZih2b2lkIDAhPT10LmZvcilyZXR1cm4hMDt0PXQucGFyZW50fXJldHVybiExfShlKSl9KGUpLGZ1bmN0aW9uKGUpe3ZhciB0OyJ0ZW1wbGF0ZSI9PT1lLnRhZz8odD1GcihlLCJzY29wZSIpLGUuc2xvdFNjb3BlPXR8fEZyKGUsInNsb3Qtc2NvcGUiKSk6KHQ9RnIoZSwic2xvdC1zY29wZSIpKSYmKGUuc2xvdFNjb3BlPXQpO3ZhciBuPUlyKGUsInNsb3QiKTtuJiYoZS5zbG90VGFyZ2V0PSciIic9PT1uPyciZGVmYXVsdCInOm4sZS5zbG90VGFyZ2V0RHluYW1pYz0hKCFlLmF0dHJzTWFwWyI6c2xvdCJdJiYhZS5hdHRyc01hcFsidi1iaW5kOnNsb3QiXSksInRlbXBsYXRlIj09PWUudGFnfHxlLnNsb3RTY29wZXx8TnIoZSwic2xvdCIsbixmdW5jdGlvbihlLHQpe3JldHVybiBlLnJhd0F0dHJzTWFwWyI6Iit0XXx8ZS5yYXdBdHRyc01hcFsidi1iaW5kOiIrdF18fGUucmF3QXR0cnNNYXBbdF19KGUsInNsb3QiKSkpO2lmKCJ0ZW1wbGF0ZSI9PT1lLnRhZyl7dmFyIHI9UHIoZSxpYSk7aWYocil7dmFyIGk9dmEociksbz1pLm5hbWUsYT1pLmR5bmFtaWM7ZS5zbG90VGFyZ2V0PW8sZS5zbG90VGFyZ2V0RHluYW1pYz1hLGUuc2xvdFNjb3BlPXIudmFsdWV8fGNhfX1lbHNle3ZhciBzPVByKGUsaWEpO2lmKHMpe3ZhciBjPWUuc2NvcGVkU2xvdHN8fChlLnNjb3BlZFNsb3RzPXt9KSx1PXZhKHMpLGw9dS5uYW1lLGY9dS5keW5hbWljLHA9Y1tsXT11YSgidGVtcGxhdGUiLFtdLGUpO3Auc2xvdFRhcmdldD1sLHAuc2xvdFRhcmdldER5bmFtaWM9ZixwLmNoaWxkcmVuPWUuY2hpbGRyZW4uZmlsdGVyKGZ1bmN0aW9uKGUpe2lmKCFlLnNsb3RTY29wZSlyZXR1cm4gZS5wYXJlbnQ9cCwhMH0pLHAuc2xvdFNjb3BlPXMudmFsdWV8fGNhLGUuY2hpbGRyZW49W10sZS5wbGFpbj0hMX19fShlKSxmdW5jdGlvbihlKXsic2xvdCI9PT1lLnRhZyYmKGUuc2xvdE5hbWU9SXIoZSwibmFtZSIpKX0oZSksZnVuY3Rpb24oZSl7dmFyIHQ7KHQ9SXIoZSwiaXMiKSkmJihlLmNvbXBvbmVudD10KTtudWxsIT1GcihlLCJpbmxpbmUtdGVtcGxhdGUiKSYmKGUuaW5saW5lVGVtcGxhdGU9ITApfShlKTtmb3IodmFyIGk9MDtpPHpvLmxlbmd0aDtpKyspZT16b1tpXShlLHQpfHxlO3JldHVybiBmdW5jdGlvbihlKXt2YXIgdCxuLHIsaSxvLGEscyxjLHU9ZS5hdHRyc0xpc3Q7Zm9yKHQ9MCxuPXUubGVuZ3RoO3Q8bjt0KyspaWYocj1pPXVbdF0ubmFtZSxvPXVbdF0udmFsdWUsR28udGVzdChyKSlpZihlLmhhc0JpbmRpbmdzPSEwLChhPWhhKHIucmVwbGFjZShHbywiIikpKSYmKHI9ci5yZXBsYWNlKHJhLCIiKSksbmEudGVzdChyKSlyPXIucmVwbGFjZShuYSwiIiksbz1BcihvKSwoYz1lYS50ZXN0KHIpKSYmKHI9ci5zbGljZSgxLC0xKSksYSYmKGEucHJvcCYmIWMmJiJpbm5lckh0bWwiPT09KHI9YihyKSkmJihyPSJpbm5lckhUTUwiKSxhLmNhbWVsJiYhYyYmKHI9YihyKSksYS5zeW5jJiYocz1CcihvLCIkZXZlbnQiKSxjP01yKGUsJyJ1cGRhdGU6IisoJytyKyIpIixzLG51bGwsITEsMCx1W3RdLCEwKTooTXIoZSwidXBkYXRlOiIrYihyKSxzLG51bGwsITEsMCx1W3RdKSxDKHIpIT09YihyKSYmTXIoZSwidXBkYXRlOiIrQyhyKSxzLG51bGwsITEsMCx1W3RdKSkpKSxhJiZhLnByb3B8fCFlLmNvbXBvbmVudCYmcW8oZS50YWcsZS5hdHRyc01hcC50eXBlLHIpP0VyKGUscixvLHVbdF0sYyk6TnIoZSxyLG8sdVt0XSxjKTtlbHNlIGlmKFpvLnRlc3Qocikpcj1yLnJlcGxhY2UoWm8sIiIpLChjPWVhLnRlc3QocikpJiYocj1yLnNsaWNlKDEsLTEpKSxNcihlLHIsbyxhLCExLDAsdVt0XSxjKTtlbHNle3ZhciBsPShyPXIucmVwbGFjZShHbywiIikpLm1hdGNoKHRhKSxmPWwmJmxbMV07Yz0hMSxmJiYocj1yLnNsaWNlKDAsLShmLmxlbmd0aCsxKSksZWEudGVzdChmKSYmKGY9Zi5zbGljZSgxLC0xKSxjPSEwKSksRHIoZSxyLGksbyxmLGMsYSx1W3RdKX1lbHNlIE5yKGUscixKU09OLnN0cmluZ2lmeShvKSx1W3RdKSwhZS5jb21wb25lbnQmJiJtdXRlZCI9PT1yJiZxbyhlLnRhZyxlLmF0dHJzTWFwLnR5cGUscikmJkVyKGUsciwidHJ1ZSIsdVt0XSl9KGUpLGV9ZnVuY3Rpb24gcGEoZSl7dmFyIHQ7aWYodD1GcihlLCJ2LWZvciIpKXt2YXIgbj1mdW5jdGlvbihlKXt2YXIgdD1lLm1hdGNoKFhvKTtpZighdClyZXR1cm47dmFyIG49e307bi5mb3I9dFsyXS50cmltKCk7dmFyIHI9dFsxXS50cmltKCkucmVwbGFjZShRbywiIiksaT1yLm1hdGNoKFlvKTtpPyhuLmFsaWFzPXIucmVwbGFjZShZbywiIikudHJpbSgpLG4uaXRlcmF0b3IxPWlbMV0udHJpbSgpLGlbMl0mJihuLml0ZXJhdG9yMj1pWzJdLnRyaW0oKSkpOm4uYWxpYXM9cjtyZXR1cm4gbn0odCk7biYmQShlLG4pfX1mdW5jdGlvbiBkYShlLHQpe2UuaWZDb25kaXRpb25zfHwoZS5pZkNvbmRpdGlvbnM9W10pLGUuaWZDb25kaXRpb25zLnB1c2godCl9ZnVuY3Rpb24gdmEoZSl7dmFyIHQ9ZS5uYW1lLnJlcGxhY2UoaWEsIiIpO3JldHVybiB0fHwiIyIhPT1lLm5hbWVbMF0mJih0PSJkZWZhdWx0IiksZWEudGVzdCh0KT97bmFtZTp0LnNsaWNlKDEsLTEpLGR5bmFtaWM6ITB9OntuYW1lOiciJyt0KyciJyxkeW5hbWljOiExfX1mdW5jdGlvbiBoYShlKXt2YXIgdD1lLm1hdGNoKHJhKTtpZih0KXt2YXIgbj17fTtyZXR1cm4gdC5mb3JFYWNoKGZ1bmN0aW9uKGUpe25bZS5zbGljZSgxKV09ITB9KSxufX1mdW5jdGlvbiBtYShlKXtmb3IodmFyIHQ9e30sbj0wLHI9ZS5sZW5ndGg7bjxyO24rKyl0W2Vbbl0ubmFtZV09ZVtuXS52YWx1ZTtyZXR1cm4gdH12YXIgeWE9L154bWxuczpOU1xkKy8sZ2E9L15OU1xkKzovO2Z1bmN0aW9uIF9hKGUpe3JldHVybiB1YShlLnRhZyxlLmF0dHJzTGlzdC5zbGljZSgpLGUucGFyZW50KX12YXIgYmE9W21vLGdvLHtwcmVUcmFuc2Zvcm1Ob2RlOmZ1bmN0aW9uKGUsdCl7aWYoImlucHV0Ij09PWUudGFnKXt2YXIgbixyPWUuYXR0cnNNYXA7aWYoIXJbInYtbW9kZWwiXSlyZXR1cm47aWYoKHJbIjp0eXBlIl18fHJbInYtYmluZDp0eXBlIl0pJiYobj1JcihlLCJ0eXBlIikpLHIudHlwZXx8bnx8IXJbInYtYmluZCJdfHwobj0iKCIrclsidi1iaW5kIl0rIikudHlwZSIpLG4pe3ZhciBpPUZyKGUsInYtaWYiLCEwKSxvPWk\/IiYmKCIraSsiKSI6IiIsYT1udWxsIT1GcihlLCJ2LWVsc2UiLCEwKSxzPUZyKGUsInYtZWxzZS1pZiIsITApLGM9X2EoZSk7cGEoYyksanIoYywidHlwZSIsImNoZWNrYm94IiksZmEoYyx0KSxjLnByb2Nlc3NlZD0hMCxjLmlmPSIoIituKyIpPT09J2NoZWNrYm94JyIrbyxkYShjLHtleHA6Yy5pZixibG9jazpjfSk7dmFyIHU9X2EoZSk7RnIodSwidi1mb3IiLCEwKSxqcih1LCJ0eXBlIiwicmFkaW8iKSxmYSh1LHQpLGRhKGMse2V4cDoiKCIrbisiKT09PSdyYWRpbyciK28sYmxvY2s6dX0pO3ZhciBsPV9hKGUpO3JldHVybiBGcihsLCJ2LWZvciIsITApLGpyKGwsIjp0eXBlIixuKSxmYShsLHQpLGRhKGMse2V4cDppLGJsb2NrOmx9KSxhP2MuZWxzZT0hMDpzJiYoYy5lbHNlaWY9cyksY319fX1dO3ZhciAkYSx3YSxDYT17ZXhwZWN0SFRNTDohMCxtb2R1bGVzOmJhLGRpcmVjdGl2ZXM6e21vZGVsOmZ1bmN0aW9uKGUsdCxuKXt2YXIgcj10LnZhbHVlLGk9dC5tb2RpZmllcnMsbz1lLnRhZyxhPWUuYXR0cnNNYXAudHlwZTtpZihlLmNvbXBvbmVudClyZXR1cm4gSHIoZSxyLGkpLCExO2lmKCJzZWxlY3QiPT09bykhZnVuY3Rpb24oZSx0LG4pe3ZhciByPSd2YXIgJCRzZWxlY3RlZFZhbCA9IEFycmF5LnByb3RvdHlwZS5maWx0ZXIuY2FsbCgkZXZlbnQudGFyZ2V0Lm9wdGlvbnMsZnVuY3Rpb24obyl7cmV0dXJuIG8uc2VsZWN0ZWR9KS5tYXAoZnVuY3Rpb24obyl7dmFyIHZhbCA9ICJfdmFsdWUiIGluIG8gPyBvLl92YWx1ZSA6IG8udmFsdWU7cmV0dXJuICcrKG4mJm4ubnVtYmVyPyJfbih2YWwpIjoidmFsIikrIn0pOyI7cj1yKyIgIitCcih0LCIkZXZlbnQudGFyZ2V0Lm11bHRpcGxlID8gJCRzZWxlY3RlZFZhbCA6ICQkc2VsZWN0ZWRWYWxbMF0iKSxNcihlLCJjaGFuZ2UiLHIsbnVsbCwhMCl9KGUscixpKTtlbHNlIGlmKCJpbnB1dCI9PT1vJiYiY2hlY2tib3giPT09YSkhZnVuY3Rpb24oZSx0LG4pe3ZhciByPW4mJm4ubnVtYmVyLGk9SXIoZSwidmFsdWUiKXx8Im51bGwiLG89SXIoZSwidHJ1ZS12YWx1ZSIpfHwidHJ1ZSIsYT1JcihlLCJmYWxzZS12YWx1ZSIpfHwiZmFsc2UiO0VyKGUsImNoZWNrZWQiLCJBcnJheS5pc0FycmF5KCIrdCsiKT9faSgiK3QrIiwiK2krIik+LTEiKygidHJ1ZSI9PT1vPyI6KCIrdCsiKSI6IjpfcSgiK3QrIiwiK28rIikiKSksTXIoZSwiY2hhbmdlIiwidmFyICQkYT0iK3QrIiwkJGVsPSRldmVudC50YXJnZXQsJCRjPSQkZWwuY2hlY2tlZD8oIitvKyIpOigiK2ErIik7aWYoQXJyYXkuaXNBcnJheSgkJGEpKXt2YXIgJCR2PSIrKHI\/Il9uKCIraSsiKSI6aSkrIiwkJGk9X2koJCRhLCQkdik7aWYoJCRlbC5jaGVja2VkKXskJGk8MCYmKCIrQnIodCwiJCRhLmNvbmNhdChbJCR2XSkiKSsiKX1lbHNleyQkaT4tMSYmKCIrQnIodCwiJCRhLnNsaWNlKDAsJCRpKS5jb25jYXQoJCRhLnNsaWNlKCQkaSsxKSkiKSsiKX19ZWxzZXsiK0JyKHQsIiQkYyIpKyJ9IixudWxsLCEwKX0oZSxyLGkpO2Vsc2UgaWYoImlucHV0Ij09PW8mJiJyYWRpbyI9PT1hKSFmdW5jdGlvbihlLHQsbil7dmFyIHI9biYmbi5udW1iZXIsaT1JcihlLCJ2YWx1ZSIpfHwibnVsbCI7RXIoZSwiY2hlY2tlZCIsIl9xKCIrdCsiLCIrKGk9cj8iX24oIitpKyIpIjppKSsiKSIpLE1yKGUsImNoYW5nZSIsQnIodCxpKSxudWxsLCEwKX0oZSxyLGkpO2Vsc2UgaWYoImlucHV0Ij09PW98fCJ0ZXh0YXJlYSI9PT1vKSFmdW5jdGlvbihlLHQsbil7dmFyIHI9ZS5hdHRyc01hcC50eXBlLGk9bnx8e30sbz1pLmxhenksYT1pLm51bWJlcixzPWkudHJpbSxjPSFvJiYicmFuZ2UiIT09cix1PW8\/ImNoYW5nZSI6InJhbmdlIj09PXI\/V3I6ImlucHV0IixsPSIkZXZlbnQudGFyZ2V0LnZhbHVlIjtzJiYobD0iJGV2ZW50LnRhcmdldC52YWx1ZS50cmltKCkiKSxhJiYobD0iX24oIitsKyIpIik7dmFyIGY9QnIodCxsKTtjJiYoZj0iaWYoJGV2ZW50LnRhcmdldC5jb21wb3NpbmcpcmV0dXJuOyIrZiksRXIoZSwidmFsdWUiLCIoIit0KyIpIiksTXIoZSx1LGYsbnVsbCwhMCksKHN8fGEpJiZNcihlLCJibHVyIiwiJGZvcmNlVXBkYXRlKCkiKX0oZSxyLGkpO2Vsc2UgaWYoIUYuaXNSZXNlcnZlZFRhZyhvKSlyZXR1cm4gSHIoZSxyLGkpLCExO3JldHVybiEwfSx0ZXh0OmZ1bmN0aW9uKGUsdCl7dC52YWx1ZSYmRXIoZSwidGV4dENvbnRlbnQiLCJfcygiK3QudmFsdWUrIikiLHQpfSxodG1sOmZ1bmN0aW9uKGUsdCl7dC52YWx1ZSYmRXIoZSwiaW5uZXJIVE1MIiwiX3MoIit0LnZhbHVlKyIpIix0KX19LGlzUHJlVGFnOmZ1bmN0aW9uKGUpe3JldHVybiJwcmUiPT09ZX0saXNVbmFyeVRhZzpibyxtdXN0VXNlUHJvcDpqbixjYW5CZUxlZnRPcGVuVGFnOiRvLGlzUmVzZXJ2ZWRUYWc6V24sZ2V0VGFnTmFtZXNwYWNlOlpuLHN0YXRpY0tleXM6ZnVuY3Rpb24oZSl7cmV0dXJuIGUucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIGUuY29uY2F0KHQuc3RhdGljS2V5c3x8W10pfSxbXSkuam9pbigiLCIpfShiYSl9LHhhPWcoZnVuY3Rpb24oZSl7cmV0dXJuIHAoInR5cGUsdGFnLGF0dHJzTGlzdCxhdHRyc01hcCxwbGFpbixwYXJlbnQsY2hpbGRyZW4sYXR0cnMsc3RhcnQsZW5kLHJhd0F0dHJzTWFwIisoZT8iLCIrZToiIikpfSk7ZnVuY3Rpb24ga2EoZSx0KXtlJiYoJGE9eGEodC5zdGF0aWNLZXlzfHwiIiksd2E9dC5pc1Jlc2VydmVkVGFnfHxULGZ1bmN0aW9uIGUodCl7dC5zdGF0aWM9ZnVuY3Rpb24oZSl7aWYoMj09PWUudHlwZSlyZXR1cm4hMTtpZigzPT09ZS50eXBlKXJldHVybiEwO3JldHVybiEoIWUucHJlJiYoZS5oYXNCaW5kaW5nc3x8ZS5pZnx8ZS5mb3J8fGQoZS50YWcpfHwhd2EoZS50YWcpfHxmdW5jdGlvbihlKXtmb3IoO2UucGFyZW50Oyl7aWYoInRlbXBsYXRlIiE9PShlPWUucGFyZW50KS50YWcpcmV0dXJuITE7aWYoZS5mb3IpcmV0dXJuITB9cmV0dXJuITF9KGUpfHwhT2JqZWN0LmtleXMoZSkuZXZlcnkoJGEpKSl9KHQpO2lmKDE9PT10LnR5cGUpe2lmKCF3YSh0LnRhZykmJiJzbG90IiE9PXQudGFnJiZudWxsPT10LmF0dHJzTWFwWyJpbmxpbmUtdGVtcGxhdGUiXSlyZXR1cm47Zm9yKHZhciBuPTAscj10LmNoaWxkcmVuLmxlbmd0aDtuPHI7bisrKXt2YXIgaT10LmNoaWxkcmVuW25dO2UoaSksaS5zdGF0aWN8fCh0LnN0YXRpYz0hMSl9aWYodC5pZkNvbmRpdGlvbnMpZm9yKHZhciBvPTEsYT10LmlmQ29uZGl0aW9ucy5sZW5ndGg7bzxhO28rKyl7dmFyIHM9dC5pZkNvbmRpdGlvbnNbb10uYmxvY2s7ZShzKSxzLnN0YXRpY3x8KHQuc3RhdGljPSExKX19fShlKSxmdW5jdGlvbiBlKHQsbil7aWYoMT09PXQudHlwZSl7aWYoKHQuc3RhdGljfHx0Lm9uY2UpJiYodC5zdGF0aWNJbkZvcj1uKSx0LnN0YXRpYyYmdC5jaGlsZHJlbi5sZW5ndGgmJigxIT09dC5jaGlsZHJlbi5sZW5ndGh8fDMhPT10LmNoaWxkcmVuWzBdLnR5cGUpKXJldHVybiB2b2lkKHQuc3RhdGljUm9vdD0hMCk7aWYodC5zdGF0aWNSb290PSExLHQuY2hpbGRyZW4pZm9yKHZhciByPTAsaT10LmNoaWxkcmVuLmxlbmd0aDtyPGk7cisrKWUodC5jaGlsZHJlbltyXSxufHwhIXQuZm9yKTtpZih0LmlmQ29uZGl0aW9ucylmb3IodmFyIG89MSxhPXQuaWZDb25kaXRpb25zLmxlbmd0aDtvPGE7bysrKWUodC5pZkNvbmRpdGlvbnNbb10uYmxvY2ssbil9fShlLCExKSl9dmFyIEFhPS9eKFtcdyRfXSt8XChbXildKj9cKSlccyo9PnxeZnVuY3Rpb24oPzpccytbXHckXSspP1xzKlwoLyxPYT0vXChbXildKj9cKTsqJC8sU2E9L15bQS1aYS16XyRdW1x3JF0qKD86XC5bQS1aYS16XyRdW1x3JF0qfFxbJ1teJ10qPyddfFxbIlteIl0qPyJdfFxbXGQrXXxcW1tBLVphLXpfJF1bXHckXSpdKSokLyxUYT17ZXNjOjI3LHRhYjo5LGVudGVyOjEzLHNwYWNlOjMyLHVwOjM4LGxlZnQ6MzcscmlnaHQ6MzksZG93bjo0MCxkZWxldGU6WzgsNDZdfSxFYT17ZXNjOlsiRXNjIiwiRXNjYXBlIl0sdGFiOiJUYWIiLGVudGVyOiJFbnRlciIsc3BhY2U6WyIgIiwiU3BhY2ViYXIiXSx1cDpbIlVwIiwiQXJyb3dVcCJdLGxlZnQ6WyJMZWZ0IiwiQXJyb3dMZWZ0Il0scmlnaHQ6WyJSaWdodCIsIkFycm93UmlnaHQiXSxkb3duOlsiRG93biIsIkFycm93RG93biJdLGRlbGV0ZTpbIkJhY2tzcGFjZSIsIkRlbGV0ZSIsIkRlbCJdfSxOYT1mdW5jdGlvbihlKXtyZXR1cm4iaWYoIitlKyIpcmV0dXJuIG51bGw7In0samE9e3N0b3A6IiRldmVudC5zdG9wUHJvcGFnYXRpb24oKTsiLHByZXZlbnQ6IiRldmVudC5wcmV2ZW50RGVmYXVsdCgpOyIsc2VsZjpOYSgiJGV2ZW50LnRhcmdldCAhPT0gJGV2ZW50LmN1cnJlbnRUYXJnZXQiKSxjdHJsOk5hKCIhJGV2ZW50LmN0cmxLZXkiKSxzaGlmdDpOYSgiISRldmVudC5zaGlmdEtleSIpLGFsdDpOYSgiISRldmVudC5hbHRLZXkiKSxtZXRhOk5hKCIhJGV2ZW50Lm1ldGFLZXkiKSxsZWZ0Ok5hKCInYnV0dG9uJyBpbiAkZXZlbnQgJiYgJGV2ZW50LmJ1dHRvbiAhPT0gMCIpLG1pZGRsZTpOYSgiJ2J1dHRvbicgaW4gJGV2ZW50ICYmICRldmVudC5idXR0b24gIT09IDEiKSxyaWdodDpOYSgiJ2J1dHRvbicgaW4gJGV2ZW50ICYmICRldmVudC5idXR0b24gIT09IDIiKX07ZnVuY3Rpb24gRGEoZSx0KXt2YXIgbj10PyJuYXRpdmVPbjoiOiJvbjoiLHI9IiIsaT0iIjtmb3IodmFyIG8gaW4gZSl7dmFyIGE9TGEoZVtvXSk7ZVtvXSYmZVtvXS5keW5hbWljP2krPW8rIiwiK2ErIiwiOnIrPSciJytvKyciOicrYSsiLCJ9cmV0dXJuIHI9InsiK3Iuc2xpY2UoMCwtMSkrIn0iLGk\/bisiX2QoIityKyIsWyIraS5zbGljZSgwLC0xKSsiXSkiOm4rcn1mdW5jdGlvbiBMYShlKXtpZighZSlyZXR1cm4iZnVuY3Rpb24oKXt9IjtpZihBcnJheS5pc0FycmF5KGUpKXJldHVybiJbIitlLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gTGEoZSl9KS5qb2luKCIsIikrIl0iO3ZhciB0PVNhLnRlc3QoZS52YWx1ZSksbj1BYS50ZXN0KGUudmFsdWUpLHI9U2EudGVzdChlLnZhbHVlLnJlcGxhY2UoT2EsIiIpKTtpZihlLm1vZGlmaWVycyl7dmFyIGk9IiIsbz0iIixhPVtdO2Zvcih2YXIgcyBpbiBlLm1vZGlmaWVycylpZihqYVtzXSlvKz1qYVtzXSxUYVtzXSYmYS5wdXNoKHMpO2Vsc2UgaWYoImV4YWN0Ij09PXMpe3ZhciBjPWUubW9kaWZpZXJzO28rPU5hKFsiY3RybCIsInNoaWZ0IiwiYWx0IiwibWV0YSJdLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4hY1tlXX0pLm1hcChmdW5jdGlvbihlKXtyZXR1cm4iJGV2ZW50LiIrZSsiS2V5In0pLmpvaW4oInx8IikpfWVsc2UgYS5wdXNoKHMpO3JldHVybiBhLmxlbmd0aCYmKGkrPWZ1bmN0aW9uKGUpe3JldHVybiJpZighJGV2ZW50LnR5cGUuaW5kZXhPZigna2V5JykmJiIrZS5tYXAoTWEpLmpvaW4oIiYmIikrIilyZXR1cm4gbnVsbDsifShhKSksbyYmKGkrPW8pLCJmdW5jdGlvbigkZXZlbnQpeyIraSsodD8icmV0dXJuICIrZS52YWx1ZSsiKCRldmVudCkiOm4\/InJldHVybiAoIitlLnZhbHVlKyIpKCRldmVudCkiOnI\/InJldHVybiAiK2UudmFsdWU6ZS52YWx1ZSkrIn0ifXJldHVybiB0fHxuP2UudmFsdWU6ImZ1bmN0aW9uKCRldmVudCl7Iisocj8icmV0dXJuICIrZS52YWx1ZTplLnZhbHVlKSsifSJ9ZnVuY3Rpb24gTWEoZSl7dmFyIHQ9cGFyc2VJbnQoZSwxMCk7aWYodClyZXR1cm4iJGV2ZW50LmtleUNvZGUhPT0iK3Q7dmFyIG49VGFbZV0scj1FYVtlXTtyZXR1cm4iX2soJGV2ZW50LmtleUNvZGUsIitKU09OLnN0cmluZ2lmeShlKSsiLCIrSlNPTi5zdHJpbmdpZnkobikrIiwkZXZlbnQua2V5LCIrSlNPTi5zdHJpbmdpZnkocikrIikifXZhciBJYT17b246ZnVuY3Rpb24oZSx0KXtlLndyYXBMaXN0ZW5lcnM9ZnVuY3Rpb24oZSl7cmV0dXJuIl9nKCIrZSsiLCIrdC52YWx1ZSsiKSJ9fSxiaW5kOmZ1bmN0aW9uKGUsdCl7ZS53cmFwRGF0YT1mdW5jdGlvbihuKXtyZXR1cm4iX2IoIituKyIsJyIrZS50YWcrIicsIit0LnZhbHVlKyIsIisodC5tb2RpZmllcnMmJnQubW9kaWZpZXJzLnByb3A\/InRydWUiOiJmYWxzZSIpKyh0Lm1vZGlmaWVycyYmdC5tb2RpZmllcnMuc3luYz8iLHRydWUiOiIiKSsiKSJ9fSxjbG9hazpTfSxGYT1mdW5jdGlvbihlKXt0aGlzLm9wdGlvbnM9ZSx0aGlzLndhcm49ZS53YXJufHxTcix0aGlzLnRyYW5zZm9ybXM9VHIoZS5tb2R1bGVzLCJ0cmFuc2Zvcm1Db2RlIiksdGhpcy5kYXRhR2VuRm5zPVRyKGUubW9kdWxlcywiZ2VuRGF0YSIpLHRoaXMuZGlyZWN0aXZlcz1BKEEoe30sSWEpLGUuZGlyZWN0aXZlcyk7dmFyIHQ9ZS5pc1Jlc2VydmVkVGFnfHxUO3RoaXMubWF5YmVDb21wb25lbnQ9ZnVuY3Rpb24oZSl7cmV0dXJuISFlLmNvbXBvbmVudHx8IXQoZS50YWcpfSx0aGlzLm9uY2VJZD0wLHRoaXMuc3RhdGljUmVuZGVyRm5zPVtdLHRoaXMucHJlPSExfTtmdW5jdGlvbiBQYShlLHQpe3ZhciBuPW5ldyBGYSh0KTtyZXR1cm57cmVuZGVyOiJ3aXRoKHRoaXMpe3JldHVybiAiKyhlP1JhKGUsbik6J19jKCJkaXYiKScpKyJ9IixzdGF0aWNSZW5kZXJGbnM6bi5zdGF0aWNSZW5kZXJGbnN9fWZ1bmN0aW9uIFJhKGUsdCl7aWYoZS5wYXJlbnQmJihlLnByZT1lLnByZXx8ZS5wYXJlbnQucHJlKSxlLnN0YXRpY1Jvb3QmJiFlLnN0YXRpY1Byb2Nlc3NlZClyZXR1cm4gSGEoZSx0KTtpZihlLm9uY2UmJiFlLm9uY2VQcm9jZXNzZWQpcmV0dXJuIEJhKGUsdCk7aWYoZS5mb3ImJiFlLmZvclByb2Nlc3NlZClyZXR1cm4gemEoZSx0KTtpZihlLmlmJiYhZS5pZlByb2Nlc3NlZClyZXR1cm4gVWEoZSx0KTtpZigidGVtcGxhdGUiIT09ZS50YWd8fGUuc2xvdFRhcmdldHx8dC5wcmUpe2lmKCJzbG90Ij09PWUudGFnKXJldHVybiBmdW5jdGlvbihlLHQpe3ZhciBuPWUuc2xvdE5hbWV8fCciZGVmYXVsdCInLHI9cWEoZSx0KSxpPSJfdCgiK24rKHI\/IiwiK3I6IiIpLG89ZS5hdHRyc3x8ZS5keW5hbWljQXR0cnM\/R2EoKGUuYXR0cnN8fFtdKS5jb25jYXQoZS5keW5hbWljQXR0cnN8fFtdKS5tYXAoZnVuY3Rpb24oZSl7cmV0dXJue25hbWU6YihlLm5hbWUpLHZhbHVlOmUudmFsdWUsZHluYW1pYzplLmR5bmFtaWN9fSkpOm51bGwsYT1lLmF0dHJzTWFwWyJ2LWJpbmQiXTshbyYmIWF8fHJ8fChpKz0iLG51bGwiKTtvJiYoaSs9IiwiK28pO2EmJihpKz0obz8iIjoiLG51bGwiKSsiLCIrYSk7cmV0dXJuIGkrIikifShlLHQpO3ZhciBuO2lmKGUuY29tcG9uZW50KW49ZnVuY3Rpb24oZSx0LG4pe3ZhciByPXQuaW5saW5lVGVtcGxhdGU\/bnVsbDpxYSh0LG4sITApO3JldHVybiJfYygiK2UrIiwiK1ZhKHQsbikrKHI\/IiwiK3I6IiIpKyIpIn0oZS5jb21wb25lbnQsZSx0KTtlbHNle3ZhciByOyghZS5wbGFpbnx8ZS5wcmUmJnQubWF5YmVDb21wb25lbnQoZSkpJiYocj1WYShlLHQpKTt2YXIgaT1lLmlubGluZVRlbXBsYXRlP251bGw6cWEoZSx0LCEwKTtuPSJfYygnIitlLnRhZysiJyIrKHI\/IiwiK3I6IiIpKyhpPyIsIitpOiIiKSsiKSJ9Zm9yKHZhciBvPTA7bzx0LnRyYW5zZm9ybXMubGVuZ3RoO28rKyluPXQudHJhbnNmb3Jtc1tvXShlLG4pO3JldHVybiBufXJldHVybiBxYShlLHQpfHwidm9pZCAwIn1mdW5jdGlvbiBIYShlLHQpe2Uuc3RhdGljUHJvY2Vzc2VkPSEwO3ZhciBuPXQucHJlO3JldHVybiBlLnByZSYmKHQucHJlPWUucHJlKSx0LnN0YXRpY1JlbmRlckZucy5wdXNoKCJ3aXRoKHRoaXMpe3JldHVybiAiK1JhKGUsdCkrIn0iKSx0LnByZT1uLCJfbSgiKyh0LnN0YXRpY1JlbmRlckZucy5sZW5ndGgtMSkrKGUuc3RhdGljSW5Gb3I\/Iix0cnVlIjoiIikrIikifWZ1bmN0aW9uIEJhKGUsdCl7aWYoZS5vbmNlUHJvY2Vzc2VkPSEwLGUuaWYmJiFlLmlmUHJvY2Vzc2VkKXJldHVybiBVYShlLHQpO2lmKGUuc3RhdGljSW5Gb3Ipe2Zvcih2YXIgbj0iIixyPWUucGFyZW50O3I7KXtpZihyLmZvcil7bj1yLmtleTticmVha31yPXIucGFyZW50fXJldHVybiBuPyJfbygiK1JhKGUsdCkrIiwiK3Qub25jZUlkKysrIiwiK24rIikiOlJhKGUsdCl9cmV0dXJuIEhhKGUsdCl9ZnVuY3Rpb24gVWEoZSx0LG4scil7cmV0dXJuIGUuaWZQcm9jZXNzZWQ9ITAsZnVuY3Rpb24gZSh0LG4scixpKXtpZighdC5sZW5ndGgpcmV0dXJuIGl8fCJfZSgpIjt2YXIgbz10LnNoaWZ0KCk7cmV0dXJuIG8uZXhwPyIoIitvLmV4cCsiKT8iK2Eoby5ibG9jaykrIjoiK2UodCxuLHIsaSk6IiIrYShvLmJsb2NrKTtmdW5jdGlvbiBhKGUpe3JldHVybiByP3IoZSxuKTplLm9uY2U\/QmEoZSxuKTpSYShlLG4pfX0oZS5pZkNvbmRpdGlvbnMuc2xpY2UoKSx0LG4scil9ZnVuY3Rpb24gemEoZSx0LG4scil7dmFyIGk9ZS5mb3Isbz1lLmFsaWFzLGE9ZS5pdGVyYXRvcjE\/IiwiK2UuaXRlcmF0b3IxOiIiLHM9ZS5pdGVyYXRvcjI\/IiwiK2UuaXRlcmF0b3IyOiIiO3JldHVybiBlLmZvclByb2Nlc3NlZD0hMCwocnx8Il9sIikrIigoIitpKyIpLGZ1bmN0aW9uKCIrbythK3MrIil7cmV0dXJuICIrKG58fFJhKShlLHQpKyJ9KSJ9ZnVuY3Rpb24gVmEoZSx0KXt2YXIgbj0ieyIscj1mdW5jdGlvbihlLHQpe3ZhciBuPWUuZGlyZWN0aXZlcztpZighbilyZXR1cm47dmFyIHIsaSxvLGEscz0iZGlyZWN0aXZlczpbIixjPSExO2ZvcihyPTAsaT1uLmxlbmd0aDtyPGk7cisrKXtvPW5bcl0sYT0hMDt2YXIgdT10LmRpcmVjdGl2ZXNbby5uYW1lXTt1JiYoYT0hIXUoZSxvLHQud2FybikpLGEmJihjPSEwLHMrPSd7bmFtZToiJytvLm5hbWUrJyIscmF3TmFtZToiJytvLnJhd05hbWUrJyInKyhvLnZhbHVlPyIsdmFsdWU6KCIrby52YWx1ZSsiKSxleHByZXNzaW9uOiIrSlNPTi5zdHJpbmdpZnkoby52YWx1ZSk6IiIpKyhvLmFyZz8iLGFyZzoiKyhvLmlzRHluYW1pY0FyZz9vLmFyZzonIicrby5hcmcrJyInKToiIikrKG8ubW9kaWZpZXJzPyIsbW9kaWZpZXJzOiIrSlNPTi5zdHJpbmdpZnkoby5tb2RpZmllcnMpOiIiKSsifSwiKX1pZihjKXJldHVybiBzLnNsaWNlKDAsLTEpKyJdIn0oZSx0KTtyJiYobis9cisiLCIpLGUua2V5JiYobis9ImtleToiK2Uua2V5KyIsIiksZS5yZWYmJihuKz0icmVmOiIrZS5yZWYrIiwiKSxlLnJlZkluRm9yJiYobis9InJlZkluRm9yOnRydWUsIiksZS5wcmUmJihuKz0icHJlOnRydWUsIiksZS5jb21wb25lbnQmJihuKz0ndGFnOiInK2UudGFnKyciLCcpO2Zvcih2YXIgaT0wO2k8dC5kYXRhR2VuRm5zLmxlbmd0aDtpKyspbis9dC5kYXRhR2VuRm5zW2ldKGUpO2lmKGUuYXR0cnMmJihuKz0iYXR0cnM6IitHYShlLmF0dHJzKSsiLCIpLGUucHJvcHMmJihuKz0iZG9tUHJvcHM6IitHYShlLnByb3BzKSsiLCIpLGUuZXZlbnRzJiYobis9RGEoZS5ldmVudHMsITEpKyIsIiksZS5uYXRpdmVFdmVudHMmJihuKz1EYShlLm5hdGl2ZUV2ZW50cywhMCkrIiwiKSxlLnNsb3RUYXJnZXQmJiFlLnNsb3RTY29wZSYmKG4rPSJzbG90OiIrZS5zbG90VGFyZ2V0KyIsIiksZS5zY29wZWRTbG90cyYmKG4rPWZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1lLmZvcnx8T2JqZWN0LmtleXModCkuc29tZShmdW5jdGlvbihlKXt2YXIgbj10W2VdO3JldHVybiBuLnNsb3RUYXJnZXREeW5hbWljfHxuLmlmfHxuLmZvcnx8S2Eobil9KSxpPSEhZS5pZjtpZighcilmb3IodmFyIG89ZS5wYXJlbnQ7bzspe2lmKG8uc2xvdFNjb3BlJiZvLnNsb3RTY29wZSE9PWNhfHxvLmZvcil7cj0hMDticmVha31vLmlmJiYoaT0hMCksbz1vLnBhcmVudH12YXIgYT1PYmplY3Qua2V5cyh0KS5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIEphKHRbZV0sbil9KS5qb2luKCIsIik7cmV0dXJuInNjb3BlZFNsb3RzOl91KFsiK2ErIl0iKyhyPyIsbnVsbCx0cnVlIjoiIikrKCFyJiZpPyIsbnVsbCxmYWxzZSwiK2Z1bmN0aW9uKGUpe3ZhciB0PTUzODEsbj1lLmxlbmd0aDtmb3IoO247KXQ9MzMqdF5lLmNoYXJDb2RlQXQoLS1uKTtyZXR1cm4gdD4+PjB9KGEpOiIiKSsiKSJ9KGUsZS5zY29wZWRTbG90cyx0KSsiLCIpLGUubW9kZWwmJihuKz0ibW9kZWw6e3ZhbHVlOiIrZS5tb2RlbC52YWx1ZSsiLGNhbGxiYWNrOiIrZS5tb2RlbC5jYWxsYmFjaysiLGV4cHJlc3Npb246IitlLm1vZGVsLmV4cHJlc3Npb24rIn0sIiksZS5pbmxpbmVUZW1wbGF0ZSl7dmFyIG89ZnVuY3Rpb24oZSx0KXt2YXIgbj1lLmNoaWxkcmVuWzBdO2lmKG4mJjE9PT1uLnR5cGUpe3ZhciByPVBhKG4sdC5vcHRpb25zKTtyZXR1cm4iaW5saW5lVGVtcGxhdGU6e3JlbmRlcjpmdW5jdGlvbigpeyIrci5yZW5kZXIrIn0sc3RhdGljUmVuZGVyRm5zOlsiK3Iuc3RhdGljUmVuZGVyRm5zLm1hcChmdW5jdGlvbihlKXtyZXR1cm4iZnVuY3Rpb24oKXsiK2UrIn0ifSkuam9pbigiLCIpKyJdfSJ9fShlLHQpO28mJihuKz1vKyIsIil9cmV0dXJuIG49bi5yZXBsYWNlKC8sJC8sIiIpKyJ9IixlLmR5bmFtaWNBdHRycyYmKG49Il9iKCIrbisnLCInK2UudGFnKyciLCcrR2EoZS5keW5hbWljQXR0cnMpKyIpIiksZS53cmFwRGF0YSYmKG49ZS53cmFwRGF0YShuKSksZS53cmFwTGlzdGVuZXJzJiYobj1lLndyYXBMaXN0ZW5lcnMobikpLG59ZnVuY3Rpb24gS2EoZSl7cmV0dXJuIDE9PT1lLnR5cGUmJigic2xvdCI9PT1lLnRhZ3x8ZS5jaGlsZHJlbi5zb21lKEthKSl9ZnVuY3Rpb24gSmEoZSx0KXt2YXIgbj1lLmF0dHJzTWFwWyJzbG90LXNjb3BlIl07aWYoZS5pZiYmIWUuaWZQcm9jZXNzZWQmJiFuKXJldHVybiBVYShlLHQsSmEsIm51bGwiKTtpZihlLmZvciYmIWUuZm9yUHJvY2Vzc2VkKXJldHVybiB6YShlLHQsSmEpO3ZhciByPWUuc2xvdFNjb3BlPT09Y2E\/IiI6U3RyaW5nKGUuc2xvdFNjb3BlKSxpPSJmdW5jdGlvbigiK3IrIil7cmV0dXJuICIrKCJ0ZW1wbGF0ZSI9PT1lLnRhZz9lLmlmJiZuPyIoIitlLmlmKyIpPyIrKHFhKGUsdCl8fCJ1bmRlZmluZWQiKSsiOnVuZGVmaW5lZCI6cWEoZSx0KXx8InVuZGVmaW5lZCI6UmEoZSx0KSkrIn0iLG89cj8iIjoiLHByb3h5OnRydWUiO3JldHVybiJ7a2V5OiIrKGUuc2xvdFRhcmdldHx8JyJkZWZhdWx0IicpKyIsZm46IitpK28rIn0ifWZ1bmN0aW9uIHFhKGUsdCxuLHIsaSl7dmFyIG89ZS5jaGlsZHJlbjtpZihvLmxlbmd0aCl7dmFyIGE9b1swXTtpZigxPT09by5sZW5ndGgmJmEuZm9yJiYidGVtcGxhdGUiIT09YS50YWcmJiJzbG90IiE9PWEudGFnKXt2YXIgcz1uP3QubWF5YmVDb21wb25lbnQoYSk\/IiwxIjoiLDAiOiIiO3JldHVybiIiKyhyfHxSYSkoYSx0KStzfXZhciBjPW4\/ZnVuY3Rpb24oZSx0KXtmb3IodmFyIG49MCxyPTA7cjxlLmxlbmd0aDtyKyspe3ZhciBpPWVbcl07aWYoMT09PWkudHlwZSl7aWYoV2EoaSl8fGkuaWZDb25kaXRpb25zJiZpLmlmQ29uZGl0aW9ucy5zb21lKGZ1bmN0aW9uKGUpe3JldHVybiBXYShlLmJsb2NrKX0pKXtuPTI7YnJlYWt9KHQoaSl8fGkuaWZDb25kaXRpb25zJiZpLmlmQ29uZGl0aW9ucy5zb21lKGZ1bmN0aW9uKGUpe3JldHVybiB0KGUuYmxvY2spfSkpJiYobj0xKX19cmV0dXJuIG59KG8sdC5tYXliZUNvbXBvbmVudCk6MCx1PWl8fFphO3JldHVybiJbIitvLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gdShlLHQpfSkuam9pbigiLCIpKyJdIisoYz8iLCIrYzoiIil9fWZ1bmN0aW9uIFdhKGUpe3JldHVybiB2b2lkIDAhPT1lLmZvcnx8InRlbXBsYXRlIj09PWUudGFnfHwic2xvdCI9PT1lLnRhZ31mdW5jdGlvbiBaYShlLHQpe3JldHVybiAxPT09ZS50eXBlP1JhKGUsdCk6Mz09PWUudHlwZSYmZS5pc0NvbW1lbnQ\/KHI9ZSwiX2UoIitKU09OLnN0cmluZ2lmeShyLnRleHQpKyIpIik6Il92KCIrKDI9PT0obj1lKS50eXBlP24uZXhwcmVzc2lvbjpYYShKU09OLnN0cmluZ2lmeShuLnRleHQpKSkrIikiO3ZhciBuLHJ9ZnVuY3Rpb24gR2EoZSl7Zm9yKHZhciB0PSIiLG49IiIscj0wO3I8ZS5sZW5ndGg7cisrKXt2YXIgaT1lW3JdLG89WGEoaS52YWx1ZSk7aS5keW5hbWljP24rPWkubmFtZSsiLCIrbysiLCI6dCs9JyInK2kubmFtZSsnIjonK28rIiwifXJldHVybiB0PSJ7Iit0LnNsaWNlKDAsLTEpKyJ9IixuPyJfZCgiK3QrIixbIituLnNsaWNlKDAsLTEpKyJdKSI6dH1mdW5jdGlvbiBYYShlKXtyZXR1cm4gZS5yZXBsYWNlKC9cdTIwMjgvZywiXFx1MjAyOCIpLnJlcGxhY2UoL1x1MjAyOS9nLCJcXHUyMDI5Iil9bmV3IFJlZ0V4cCgiXFxiIisiZG8saWYsZm9yLGxldCxuZXcsdHJ5LHZhcixjYXNlLGVsc2Usd2l0aCxhd2FpdCxicmVhayxjYXRjaCxjbGFzcyxjb25zdCxzdXBlcix0aHJvdyx3aGlsZSx5aWVsZCxkZWxldGUsZXhwb3J0LGltcG9ydCxyZXR1cm4sc3dpdGNoLGRlZmF1bHQsZXh0ZW5kcyxmaW5hbGx5LGNvbnRpbnVlLGRlYnVnZ2VyLGZ1bmN0aW9uLGFyZ3VtZW50cyIuc3BsaXQoIiwiKS5qb2luKCJcXGJ8XFxiIikrIlxcYiIpO2Z1bmN0aW9uIFlhKGUsdCl7dHJ5e3JldHVybiBuZXcgRnVuY3Rpb24oZSl9Y2F0Y2gobil7cmV0dXJuIHQucHVzaCh7ZXJyOm4sY29kZTplfSksU319ZnVuY3Rpb24gUWEoZSl7dmFyIHQ9T2JqZWN0LmNyZWF0ZShudWxsKTtyZXR1cm4gZnVuY3Rpb24obixyLGkpeyhyPUEoe30scikpLndhcm47ZGVsZXRlIHIud2Fybjt2YXIgbz1yLmRlbGltaXRlcnM\/U3RyaW5nKHIuZGVsaW1pdGVycykrbjpuO2lmKHRbb10pcmV0dXJuIHRbb107dmFyIGE9ZShuLHIpLHM9e30sYz1bXTtyZXR1cm4gcy5yZW5kZXI9WWEoYS5yZW5kZXIsYykscy5zdGF0aWNSZW5kZXJGbnM9YS5zdGF0aWNSZW5kZXJGbnMubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBZYShlLGMpfSksdFtvXT1zfX12YXIgZXMsdHMsbnM9KGVzPWZ1bmN0aW9uKGUsdCl7dmFyIG49bGEoZS50cmltKCksdCk7ITEhPT10Lm9wdGltaXplJiZrYShuLHQpO3ZhciByPVBhKG4sdCk7cmV0dXJue2FzdDpuLHJlbmRlcjpyLnJlbmRlcixzdGF0aWNSZW5kZXJGbnM6ci5zdGF0aWNSZW5kZXJGbnN9fSxmdW5jdGlvbihlKXtmdW5jdGlvbiB0KHQsbil7dmFyIHI9T2JqZWN0LmNyZWF0ZShlKSxpPVtdLG89W107aWYobilmb3IodmFyIGEgaW4gbi5tb2R1bGVzJiYoci5tb2R1bGVzPShlLm1vZHVsZXN8fFtdKS5jb25jYXQobi5tb2R1bGVzKSksbi5kaXJlY3RpdmVzJiYoci5kaXJlY3RpdmVzPUEoT2JqZWN0LmNyZWF0ZShlLmRpcmVjdGl2ZXN8fG51bGwpLG4uZGlyZWN0aXZlcykpLG4pIm1vZHVsZXMiIT09YSYmImRpcmVjdGl2ZXMiIT09YSYmKHJbYV09blthXSk7ci53YXJuPWZ1bmN0aW9uKGUsdCxuKXsobj9vOmkpLnB1c2goZSl9O3ZhciBzPWVzKHQudHJpbSgpLHIpO3JldHVybiBzLmVycm9ycz1pLHMudGlwcz1vLHN9cmV0dXJue2NvbXBpbGU6dCxjb21waWxlVG9GdW5jdGlvbnM6UWEodCl9fSkoQ2EpLHJzPShucy5jb21waWxlLG5zLmNvbXBpbGVUb0Z1bmN0aW9ucyk7ZnVuY3Rpb24gaXMoZSl7cmV0dXJuKHRzPXRzfHxkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSkuaW5uZXJIVE1MPWU\/JzxhIGhyZWY9IlxuIi8+JzonPGRpdiBhPSJcbiIvPicsdHMuaW5uZXJIVE1MLmluZGV4T2YoIiYjMTA7Iik+MH12YXIgb3M9ISF6JiZpcyghMSksYXM9ISF6JiZpcyghMCksc3M9ZyhmdW5jdGlvbihlKXt2YXIgdD1ZbihlKTtyZXR1cm4gdCYmdC5pbm5lckhUTUx9KSxjcz13bi5wcm90b3R5cGUuJG1vdW50O3JldHVybiB3bi5wcm90b3R5cGUuJG1vdW50PWZ1bmN0aW9uKGUsdCl7aWYoKGU9ZSYmWW4oZSkpPT09ZG9jdW1lbnQuYm9keXx8ZT09PWRvY3VtZW50LmRvY3VtZW50RWxlbWVudClyZXR1cm4gdGhpczt2YXIgbj10aGlzLiRvcHRpb25zO2lmKCFuLnJlbmRlcil7dmFyIHI9bi50ZW1wbGF0ZTtpZihyKWlmKCJzdHJpbmciPT10eXBlb2YgcikiIyI9PT1yLmNoYXJBdCgwKSYmKHI9c3MocikpO2Vsc2V7aWYoIXIubm9kZVR5cGUpcmV0dXJuIHRoaXM7cj1yLmlubmVySFRNTH1lbHNlIGUmJihyPWZ1bmN0aW9uKGUpe2lmKGUub3V0ZXJIVE1MKXJldHVybiBlLm91dGVySFRNTDt2YXIgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtyZXR1cm4gdC5hcHBlbmRDaGlsZChlLmNsb25lTm9kZSghMCkpLHQuaW5uZXJIVE1MfShlKSk7aWYocil7dmFyIGk9cnMocix7b3V0cHV0U291cmNlUmFuZ2U6ITEsc2hvdWxkRGVjb2RlTmV3bGluZXM6b3Msc2hvdWxkRGVjb2RlTmV3bGluZXNGb3JIcmVmOmFzLGRlbGltaXRlcnM6bi5kZWxpbWl0ZXJzLGNvbW1lbnRzOm4uY29tbWVudHN9LHRoaXMpLG89aS5yZW5kZXIsYT1pLnN0YXRpY1JlbmRlckZucztuLnJlbmRlcj1vLG4uc3RhdGljUmVuZGVyRm5zPWF9fXJldHVybiBjcy5jYWxsKHRoaXMsZSx0KX0sd24uY29tcGlsZT1ycyx3bn0pOwovKiogL2pzL3Z1ZS92dWUtdGhlLW1hc2suanMgKiovCnZhciBfX19kMmNfdnVldGhlbWFza2pzX2Nfb249IjIwMjUtMDUtMjMgMTc6MDU6MzgiOyd1c2Ugc3RyaWN0Jzt2YXIgX19fZDJjX3Z1ZXRoZW1hc2tqc19jX29uPSIyMDI0LTAxLTMxIDE0OjMzOjE1IjsidXNlIHN0cmljdCI7X19fZDJjX3Z1ZXRoZW1hc2tqc19jX29uPSIyMDIzLTAxLTEyIDExOjQwOjU1IjsidXNlIHN0cmljdCI7X19fZDJjX3Z1ZXRoZW1hc2tqc19jX29uPSIyMDIzLTAxLTEyIDEwOjUwOjQxIjsidXNlIHN0cmljdCI7X19fZDJjX3Z1ZXRoZW1hc2tqc19jX29uPSIyMDIxLTEyLTE1IDEyOjUxOjI0IjsidXNlIHN0cmljdCI7CihmdW5jdGlvbihoLGMpeyJvYmplY3QiPT10eXBlb2YgZXhwb3J0cyYmIm9iamVjdCI9PXR5cGVvZiBtb2R1bGU\/bW9kdWxlLmV4cG9ydHM9YygpOiJmdW5jdGlvbiI9PXR5cGVvZiBkZWZpbmUmJmRlZmluZS5hbWQ\/ZGVmaW5lKFtdLGMpOiJvYmplY3QiPT10eXBlb2YgZXhwb3J0cz9leHBvcnRzLlZ1ZVRoZU1hc2s9YygpOmguVnVlVGhlTWFzaz1jKCl9KSh0aGlzLGZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uKGgpe2Z1bmN0aW9uIGMoZCl7aWYoYVtkXSlyZXR1cm4gYVtkXS5leHBvcnRzO3ZhciBlPWFbZF09e2k6ZCxsOiExLGV4cG9ydHM6e319O3JldHVybiBoW2RdLmNhbGwoZS5leHBvcnRzLGUsZS5leHBvcnRzLGMpLGUubD0hMCxlLmV4cG9ydHN9dmFyIGE9e307cmV0dXJuIGMubT1oLGMuYz1hLGMuaT1mdW5jdGlvbihkKXtyZXR1cm4gZH0sYy5kPWZ1bmN0aW9uKGQsZSxsKXtjLm8oZCxlKXx8T2JqZWN0LmRlZmluZVByb3BlcnR5KGQsZSx7Y29uZmlndXJhYmxlOiExLGVudW1lcmFibGU6ITAsCmdldDpsfSl9LGMubj1mdW5jdGlvbihkKXt2YXIgZT1kJiZkLl9fZXNNb2R1bGU\/ZnVuY3Rpb24oKXtyZXR1cm4gZC5kZWZhdWx0fTpmdW5jdGlvbigpe3JldHVybiBkfTtyZXR1cm4gYy5kKGUsImEiLGUpLGV9LGMubz1mdW5jdGlvbihkLGUpe3JldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZCxlKX0sYy5wPSIuIixjKGMucz0xMCl9KFtmdW5jdGlvbihoLGMpe2guZXhwb3J0cz17IiMiOntwYXR0ZXJuOi9cZC99LFg6e3BhdHRlcm46L1swLTlhLXpBLVpdL30sUzp7cGF0dGVybjovW2EtekEtWl0vfSxBOntwYXR0ZXJuOi9bYS16QS1aXS8sdHJhbnNmb3JtOmZ1bmN0aW9uKGEpe3JldHVybiBhLnRvTG9jYWxlVXBwZXJDYXNlKCl9fSxhOntwYXR0ZXJuOi9bYS16QS1aXS8sdHJhbnNmb3JtOmZ1bmN0aW9uKGEpe3JldHVybiBhLnRvTG9jYWxlTG93ZXJDYXNlKCl9fSwiISI6e2VzY2FwZTohMH19fSxmdW5jdGlvbihoLGMsYSl7ZnVuY3Rpb24gZChiKXt2YXIgZj0KZG9jdW1lbnQuY3JlYXRlRXZlbnQoIkV2ZW50Iik7cmV0dXJuIGYuaW5pdEV2ZW50KGIsITAsITApLGZ9dmFyIGU9YSgyKTtoPWEoMCk7dmFyIGw9YS5uKGgpO2MuYT1mdW5jdGlvbihiLGYpe3ZhciBnPWYudmFsdWU7aWYoKEFycmF5LmlzQXJyYXkoZyl8fCJzdHJpbmciPT10eXBlb2YgZykmJihnPXttYXNrOmcsdG9rZW5zOmwuYX0pLCJJTlBVVCIhPT1iLnRhZ05hbWUudG9Mb2NhbGVVcHBlckNhc2UoKSl7Zj1iLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJpbnB1dCIpO2lmKDEhPT1mLmxlbmd0aCl0aHJvdyBFcnJvcigidi1tYXNrIGRpcmVjdGl2ZSByZXF1aXJlcyAxIGlucHV0LCBmb3VuZCAiK2YubGVuZ3RoKTtiPWZbMF19Yi5vbmlucHV0PWZ1bmN0aW9uKG0pe2lmKG0uaXNUcnVzdGVkKXt2YXIgaz1iLnNlbGVjdGlvbkVuZDttPWIudmFsdWVbay0xXTtmb3IoYi52YWx1ZT1hLmkoZS5hKShiLnZhbHVlLGcubWFzaywhMCxnLnRva2Vucyk7azxiLnZhbHVlLmxlbmd0aCYmYi52YWx1ZS5jaGFyQXQoay0KMSkhPT1tOylrKys7Yj09PWRvY3VtZW50LmFjdGl2ZUVsZW1lbnQmJihiLnNldFNlbGVjdGlvblJhbmdlKGssayksc2V0VGltZW91dChmdW5jdGlvbigpe2Iuc2V0U2VsZWN0aW9uUmFuZ2UoayxrKX0sMCkpO2IuZGlzcGF0Y2hFdmVudChkKCJpbnB1dCIpKX19O2Y9YS5pKGUuYSkoYi52YWx1ZSxnLm1hc2ssITAsZy50b2tlbnMpO2YhPT1iLnZhbHVlJiYoYi52YWx1ZT1mLGIuZGlzcGF0Y2hFdmVudChkKCJpbnB1dCIpKSl9fSxmdW5jdGlvbihoLGMsYSl7dmFyIGQ9YSg2KSxlPWEoNSk7Yy5hPWZ1bmN0aW9uKGwsYil7dmFyIGY9ISgyPGFyZ3VtZW50cy5sZW5ndGgmJnZvaWQgMCE9PWFyZ3VtZW50c1syXSl8fGFyZ3VtZW50c1syXSxnPWFyZ3VtZW50c1szXTtyZXR1cm4gQXJyYXkuaXNBcnJheShiKT9hLmkoZS5hKShkLmEsYixnKShsLGIsZixnKTphLmkoZC5hKShsLGIsZixnKX19LGZ1bmN0aW9uKGgsYyxhKXtmdW5jdGlvbiBkKGcpe2cuY29tcG9uZW50KGIuYS5uYW1lLGIuYSk7CmcuZGlyZWN0aXZlKCJtYXNrIixsLmEpfU9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTtoPWEoMCk7dmFyIGU9YS5uKGgpLGw9YSgxKTtoPWEoNyk7dmFyIGI9YS5uKGgpO2EuZChjLCJUaGVNYXNrIixmdW5jdGlvbigpe3JldHVybiBiLmF9KTthLmQoYywibWFzayIsZnVuY3Rpb24oKXtyZXR1cm4gbC5hfSk7YS5kKGMsInRva2VucyIsZnVuY3Rpb24oKXtyZXR1cm4gZS5hfSk7YS5kKGMsInZlcnNpb24iLGZ1bmN0aW9uKCl7cmV0dXJuIGZ9KTt2YXIgZj0iMC4xMS4xIjtjLmRlZmF1bHQ9ZDsidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdyYmd2luZG93LlZ1ZSYmd2luZG93LlZ1ZS51c2UoZCl9LGZ1bmN0aW9uKGgsYyxhKXtPYmplY3QuZGVmaW5lUHJvcGVydHkoYywiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7aD1hKDEpO3ZhciBkPWEoMCksZT1hLm4oZCksbD1hKDIpO2MuZGVmYXVsdD17bmFtZToiVGhlTWFzayIscHJvcHM6e3ZhbHVlOltTdHJpbmcsCk51bWJlcl0sbWFzazp7dHlwZTpbU3RyaW5nLEFycmF5XSxyZXF1aXJlZDohMH0sbWFza2VkOnt0eXBlOkJvb2xlYW4sZGVmYXVsdDohMX0sdG9rZW5zOnt0eXBlOk9iamVjdCxkZWZhdWx0OmZ1bmN0aW9uKCl7cmV0dXJuIGUuYX19fSxkaXJlY3RpdmVzOnttYXNrOmguYX0sZGF0YTpmdW5jdGlvbigpe3JldHVybntsYXN0VmFsdWU6bnVsbCxkaXNwbGF5OnRoaXMudmFsdWV9fSx3YXRjaDp7dmFsdWU6ZnVuY3Rpb24oYil7YiE9PXRoaXMubGFzdFZhbHVlJiYodGhpcy5kaXNwbGF5PWIpfSxtYXNrZWQ6ZnVuY3Rpb24oKXt0aGlzLnJlZnJlc2godGhpcy5kaXNwbGF5KX19LGNvbXB1dGVkOntjb25maWc6ZnVuY3Rpb24oKXtyZXR1cm57bWFzazp0aGlzLm1hc2ssdG9rZW5zOnRoaXMudG9rZW5zLG1hc2tlZDp0aGlzLm1hc2tlZH19fSxtZXRob2RzOntvbklucHV0OmZ1bmN0aW9uKGIpe2IuaXNUcnVzdGVkfHx0aGlzLnJlZnJlc2goYi50YXJnZXQudmFsdWUpfSxyZWZyZXNoOmZ1bmN0aW9uKGIpe3RoaXMuZGlzcGxheT0KYjtiPWEuaShsLmEpKGIsdGhpcy5tYXNrLHRoaXMubWFza2VkLHRoaXMudG9rZW5zKTtiIT09dGhpcy5sYXN0VmFsdWUmJih0aGlzLmxhc3RWYWx1ZT1iLHRoaXMuJGVtaXQoImlucHV0IixiKSl9fX19LGZ1bmN0aW9uKGgsYyxhKXtjLmE9ZnVuY3Rpb24oZCxlLGwpe3JldHVybiBlPWUuc29ydChmdW5jdGlvbihiLGYpe3JldHVybiBiLmxlbmd0aC1mLmxlbmd0aH0pLGZ1bmN0aW9uKGIsZil7Zm9yKHZhciBnPSEoMjxhcmd1bWVudHMubGVuZ3RoJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0pfHxhcmd1bWVudHNbMl0sbT0wO208ZS5sZW5ndGg7KXt2YXIgaz1lW21dO20rKzt2YXIgbj1lW21dO2lmKCEobiYmZChiLG4sITAsbCkubGVuZ3RoPmsubGVuZ3RoKSlyZXR1cm4gZChiLGssZyxsKX1yZXR1cm4iIn19fSxmdW5jdGlvbihoLGMsYSl7Yy5hPWZ1bmN0aW9uKGQsZSl7dmFyIGw9ISgyPGFyZ3VtZW50cy5sZW5ndGgmJnZvaWQgMCE9PWFyZ3VtZW50c1syXSl8fGFyZ3VtZW50c1syXSxiPQphcmd1bWVudHNbM107ZD1kfHwiIjtlPWV8fCIiO2Zvcih2YXIgZj0wLGc9MCxtPSIiO2Y8ZS5sZW5ndGgmJmc8ZC5sZW5ndGg7KXt2YXIgaz1lW2ZdLG49YltrXSxwPWRbZ107biYmIW4uZXNjYXBlPyhuLnBhdHRlcm4udGVzdChwKSYmKG0rPW4udHJhbnNmb3JtP24udHJhbnNmb3JtKHApOnAsZisrKSxnKyspOihuJiZuLmVzY2FwZSYmKGYrKyxrPWVbZl0pLGwmJihtKz1rKSxwPT09ayYmZysrLGYrKyl9Zm9yKGc9IiI7ZjxlLmxlbmd0aCYmbDspe2s9ZVtmXTtpZihiW2tdKXtnPSIiO2JyZWFrfWcrPWs7ZisrfXJldHVybiBtK2d9fSxmdW5jdGlvbihoLGMsYSl7Yz1hKDgpKGEoNCksYSg5KSxudWxsLG51bGwpO2guZXhwb3J0cz1jLmV4cG9ydHN9LGZ1bmN0aW9uKGgsYyl7aC5leHBvcnRzPWZ1bmN0aW9uKGEsZCxlLGwpe3ZhciBiLGY9YT1hfHx7fSxnPXR5cGVvZiBhLmRlZmF1bHQ7Im9iamVjdCIhPT1nJiYiZnVuY3Rpb24iIT09Z3x8KGI9YSxmPWEuZGVmYXVsdCk7YT0iZnVuY3Rpb24iPT0KdHlwZW9mIGY\/Zi5vcHRpb25zOmY7aWYoZCYmKGEucmVuZGVyPWQucmVuZGVyLGEuc3RhdGljUmVuZGVyRm5zPWQuc3RhdGljUmVuZGVyRm5zKSxlJiYoYS5fc2NvcGVJZD1lKSxsKXt2YXIgbT1hLmNvbXB1dGVkfHwoYS5jb21wdXRlZD17fSk7T2JqZWN0LmtleXMobCkuZm9yRWFjaChmdW5jdGlvbihrKXt2YXIgbj1sW2tdO21ba109ZnVuY3Rpb24oKXtyZXR1cm4gbn19KX1yZXR1cm57ZXNNb2R1bGU6YixleHBvcnRzOmYsb3B0aW9uczphfX19LGZ1bmN0aW9uKGgsYyl7aC5leHBvcnRzPXtyZW5kZXI6ZnVuY3Rpb24oKXt2YXIgYT10aGlzLiRjcmVhdGVFbGVtZW50O3JldHVybih0aGlzLl9zZWxmLl9jfHxhKSgiaW5wdXQiLHtkaXJlY3RpdmVzOlt7bmFtZToibWFzayIscmF3TmFtZToidi1tYXNrIix2YWx1ZTp0aGlzLmNvbmZpZyxleHByZXNzaW9uOiJjb25maWcifV0sYXR0cnM6e3R5cGU6InRleHQifSxkb21Qcm9wczp7dmFsdWU6dGhpcy5kaXNwbGF5fSxvbjp7aW5wdXQ6dGhpcy5vbklucHV0fX0pfSwKc3RhdGljUmVuZGVyRm5zOltdfX0sZnVuY3Rpb24oaCxjLGEpe2guZXhwb3J0cz1hKDMpfV0pfSk7Ci8qKiAvanMvZmluYW5jZV9tdWx0aXN0ZXAuanMgKiovCnZhciBfX19kMmNfZmluYW5jZW11bHRpc3RlcGpzX2Nfb249IjIwMjYtMDYtMDQgMDk6MzA6MDQiOyd1c2Ugc3RyaWN0Jzt2YXIgJGpzY29tcD0kanNjb21wfHx7fTskanNjb21wLnNjb3BlPXt9OyRqc2NvbXAuQVNTVU1FX0VTNT0hMTskanNjb21wLkFTU1VNRV9OT19OQVRJVkVfTUFQPSExOyRqc2NvbXAuQVNTVU1FX05PX05BVElWRV9TRVQ9ITE7JGpzY29tcC5TSU1QTEVfRlJPVU5EX1BPTFlGSUxMPSExOyRqc2NvbXAuSVNPTEFURV9QT0xZRklMTFM9ITE7JGpzY29tcC5GT1JDRV9QT0xZRklMTF9QUk9NSVNFPSExOyRqc2NvbXAuRk9SQ0VfUE9MWUZJTExfUFJPTUlTRV9XSEVOX05PX1VOSEFORExFRF9SRUpFQ1RJT049ITE7JGpzY29tcC5kZWZpbmVQcm9wZXJ0eT0kanNjb21wLkFTU1VNRV9FUzV8fCJmdW5jdGlvbiI9PXR5cGVvZiBPYmplY3QuZGVmaW5lUHJvcGVydGllcz9PYmplY3QuZGVmaW5lUHJvcGVydHk6ZnVuY3Rpb24oYixoLG0pe2lmKGI9PUFycmF5LnByb3RvdHlwZXx8Yj09T2JqZWN0LnByb3RvdHlwZSlyZXR1cm4gYjtiW2hdPW0udmFsdWU7cmV0dXJuIGJ9OwokanNjb21wLmdldEdsb2JhbD1mdW5jdGlvbihiKXtiPVsib2JqZWN0Ij09dHlwZW9mIGdsb2JhbFRoaXMmJmdsb2JhbFRoaXMsYiwib2JqZWN0Ij09dHlwZW9mIHdpbmRvdyYmd2luZG93LCJvYmplY3QiPT10eXBlb2Ygc2VsZiYmc2VsZiwib2JqZWN0Ij09dHlwZW9mIGdsb2JhbCYmZ2xvYmFsXTtmb3IodmFyIGg9MDtoPGIubGVuZ3RoOysraCl7dmFyIG09YltoXTtpZihtJiZtLk1hdGg9PU1hdGgpcmV0dXJuIG19dGhyb3cgRXJyb3IoIkNhbm5vdCBmaW5kIGdsb2JhbCBvYmplY3QiKTt9OyRqc2NvbXAuZ2xvYmFsPSRqc2NvbXAuZ2V0R2xvYmFsKHRoaXMpOyRqc2NvbXAuSVNfU1lNQk9MX05BVElWRT0iZnVuY3Rpb24iPT09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PT10eXBlb2YgU3ltYm9sKCJ4Iik7JGpzY29tcC5UUlVTVF9FUzZfUE9MWUZJTExTPSEkanNjb21wLklTT0xBVEVfUE9MWUZJTExTfHwkanNjb21wLklTX1NZTUJPTF9OQVRJVkU7JGpzY29tcC5wb2x5ZmlsbHM9e307CiRqc2NvbXAucHJvcGVydHlUb1BvbHlmaWxsU3ltYm9sPXt9OyRqc2NvbXAuUE9MWUZJTExfUFJFRklYPSIkanNjcCQiO3ZhciAkanNjb21wJGxvb2t1cFBvbHlmaWxsZWRWYWx1ZT1mdW5jdGlvbihiLGgpe3ZhciBtPSRqc2NvbXAucHJvcGVydHlUb1BvbHlmaWxsU3ltYm9sW2hdO2lmKG51bGw9PW0pcmV0dXJuIGJbaF07bT1iW21dO3JldHVybiB2b2lkIDAhPT1tP206YltoXX07JGpzY29tcC5wb2x5ZmlsbD1mdW5jdGlvbihiLGgsbSxuKXtoJiYoJGpzY29tcC5JU09MQVRFX1BPTFlGSUxMUz8kanNjb21wLnBvbHlmaWxsSXNvbGF0ZWQoYixoLG0sbik6JGpzY29tcC5wb2x5ZmlsbFVuaXNvbGF0ZWQoYixoLG0sbikpfTsKJGpzY29tcC5wb2x5ZmlsbFVuaXNvbGF0ZWQ9ZnVuY3Rpb24oYixoLG0sbil7bT0kanNjb21wLmdsb2JhbDtiPWIuc3BsaXQoIi4iKTtmb3Iobj0wO248Yi5sZW5ndGgtMTtuKyspe3ZhciByPWJbbl07aWYoIShyIGluIG0pKXJldHVybjttPW1bcl19Yj1iW2IubGVuZ3RoLTFdO249bVtiXTtoPWgobik7aCE9biYmbnVsbCE9aCYmJGpzY29tcC5kZWZpbmVQcm9wZXJ0eShtLGIse2NvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpofSl9OwokanNjb21wLnBvbHlmaWxsSXNvbGF0ZWQ9ZnVuY3Rpb24oYixoLG0sbil7dmFyIHI9Yi5zcGxpdCgiLiIpO2I9MT09PXIubGVuZ3RoO249clswXTtuPSFiJiZuIGluICRqc2NvbXAucG9seWZpbGxzPyRqc2NvbXAucG9seWZpbGxzOiRqc2NvbXAuZ2xvYmFsO2Zvcih2YXIgdj0wO3Y8ci5sZW5ndGgtMTt2Kyspe3ZhciB5PXJbdl07aWYoISh5IGluIG4pKXJldHVybjtuPW5beV19cj1yW3IubGVuZ3RoLTFdO209JGpzY29tcC5JU19TWU1CT0xfTkFUSVZFJiYiZXM2Ij09PW0\/bltyXTpudWxsO2g9aChtKTtudWxsIT1oJiYoYj8kanNjb21wLmRlZmluZVByb3BlcnR5KCRqc2NvbXAucG9seWZpbGxzLHIse2NvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpofSk6aCE9PW0mJih2b2lkIDA9PT0kanNjb21wLnByb3BlcnR5VG9Qb2x5ZmlsbFN5bWJvbFtyXSYmKG09MUU5Kk1hdGgucmFuZG9tKCk+Pj4wLCRqc2NvbXAucHJvcGVydHlUb1BvbHlmaWxsU3ltYm9sW3JdPSRqc2NvbXAuSVNfU1lNQk9MX05BVElWRT8KJGpzY29tcC5nbG9iYWwuU3ltYm9sKHIpOiRqc2NvbXAuUE9MWUZJTExfUFJFRklYK20rIiQiK3IpLCRqc2NvbXAuZGVmaW5lUHJvcGVydHkobiwkanNjb21wLnByb3BlcnR5VG9Qb2x5ZmlsbFN5bWJvbFtyXSx7Y29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmh9KSkpfTskanNjb21wLnVuZGVyc2NvcmVQcm90b0NhbkJlU2V0PWZ1bmN0aW9uKCl7dmFyIGI9e2E6ITB9LGg9e307dHJ5e3JldHVybiBoLl9fcHJvdG9fXz1iLGguYX1jYXRjaChtKXt9cmV0dXJuITF9OwokanNjb21wLnNldFByb3RvdHlwZU9mPSRqc2NvbXAuVFJVU1RfRVM2X1BPTFlGSUxMUyYmImZ1bmN0aW9uIj09dHlwZW9mIE9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2Y6JGpzY29tcC51bmRlcnNjb3JlUHJvdG9DYW5CZVNldCgpP2Z1bmN0aW9uKGIsaCl7Yi5fX3Byb3RvX189aDtpZihiLl9fcHJvdG9fXyE9PWgpdGhyb3cgbmV3IFR5cGVFcnJvcihiKyIgaXMgbm90IGV4dGVuc2libGUiKTtyZXR1cm4gYn06bnVsbDskanNjb21wLmFycmF5SXRlcmF0b3JJbXBsPWZ1bmN0aW9uKGIpe3ZhciBoPTA7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGg8Yi5sZW5ndGg\/e2RvbmU6ITEsdmFsdWU6YltoKytdfTp7ZG9uZTohMH19fTskanNjb21wLmFycmF5SXRlcmF0b3I9ZnVuY3Rpb24oYil7cmV0dXJue25leHQ6JGpzY29tcC5hcnJheUl0ZXJhdG9ySW1wbChiKX19OwokanNjb21wLm1ha2VJdGVyYXRvcj1mdW5jdGlvbihiKXt2YXIgaD0idW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmU3ltYm9sLml0ZXJhdG9yJiZiW1N5bWJvbC5pdGVyYXRvcl07cmV0dXJuIGg\/aC5jYWxsKGIpOiRqc2NvbXAuYXJyYXlJdGVyYXRvcihiKX07JGpzY29tcC5nZW5lcmF0b3I9e307JGpzY29tcC5nZW5lcmF0b3IuZW5zdXJlSXRlcmF0b3JSZXN1bHRJc09iamVjdF89ZnVuY3Rpb24oYil7aWYoIShiIGluc3RhbmNlb2YgT2JqZWN0KSl0aHJvdyBuZXcgVHlwZUVycm9yKCJJdGVyYXRvciByZXN1bHQgIitiKyIgaXMgbm90IGFuIG9iamVjdCIpO307CiRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQ9ZnVuY3Rpb24oKXt0aGlzLmlzUnVubmluZ189ITE7dGhpcy55aWVsZEFsbEl0ZXJhdG9yXz1udWxsO3RoaXMueWllbGRSZXN1bHQ9dm9pZCAwO3RoaXMubmV4dEFkZHJlc3M9MTt0aGlzLmZpbmFsbHlBZGRyZXNzXz10aGlzLmNhdGNoQWRkcmVzc189MDt0aGlzLmZpbmFsbHlDb250ZXh0c189dGhpcy5hYnJ1cHRDb21wbGV0aW9uXz1udWxsfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5zdGFydF89ZnVuY3Rpb24oKXtpZih0aGlzLmlzUnVubmluZ18pdGhyb3cgbmV3IFR5cGVFcnJvcigiR2VuZXJhdG9yIGlzIGFscmVhZHkgcnVubmluZyIpO3RoaXMuaXNSdW5uaW5nXz0hMH07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuc3RvcF89ZnVuY3Rpb24oKXt0aGlzLmlzUnVubmluZ189ITF9OwokanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5qdW1wVG9FcnJvckhhbmRsZXJfPWZ1bmN0aW9uKCl7dGhpcy5uZXh0QWRkcmVzcz10aGlzLmNhdGNoQWRkcmVzc198fHRoaXMuZmluYWxseUFkZHJlc3NffTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5uZXh0Xz1mdW5jdGlvbihiKXt0aGlzLnlpZWxkUmVzdWx0PWJ9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLnRocm93Xz1mdW5jdGlvbihiKXt0aGlzLmFicnVwdENvbXBsZXRpb25fPXtleGNlcHRpb246Yixpc0V4Y2VwdGlvbjohMH07dGhpcy5qdW1wVG9FcnJvckhhbmRsZXJfKCl9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLnJldHVybj1mdW5jdGlvbihiKXt0aGlzLmFicnVwdENvbXBsZXRpb25fPXtyZXR1cm46Yn07dGhpcy5uZXh0QWRkcmVzcz10aGlzLmZpbmFsbHlBZGRyZXNzX307CiRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmp1bXBUaHJvdWdoRmluYWxseUJsb2Nrcz1mdW5jdGlvbihiKXt0aGlzLmFicnVwdENvbXBsZXRpb25fPXtqdW1wVG86Yn07dGhpcy5uZXh0QWRkcmVzcz10aGlzLmZpbmFsbHlBZGRyZXNzX307JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUueWllbGQ9ZnVuY3Rpb24oYixoKXt0aGlzLm5leHRBZGRyZXNzPWg7cmV0dXJue3ZhbHVlOmJ9fTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS55aWVsZEFsbD1mdW5jdGlvbihiLGgpe2I9JGpzY29tcC5tYWtlSXRlcmF0b3IoYik7dmFyIG09Yi5uZXh0KCk7JGpzY29tcC5nZW5lcmF0b3IuZW5zdXJlSXRlcmF0b3JSZXN1bHRJc09iamVjdF8obSk7aWYobS5kb25lKXRoaXMueWllbGRSZXN1bHQ9bS52YWx1ZSx0aGlzLm5leHRBZGRyZXNzPWg7ZWxzZSByZXR1cm4gdGhpcy55aWVsZEFsbEl0ZXJhdG9yXz1iLHRoaXMueWllbGQobS52YWx1ZSxoKX07CiRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmp1bXBUbz1mdW5jdGlvbihiKXt0aGlzLm5leHRBZGRyZXNzPWJ9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmp1bXBUb0VuZD1mdW5jdGlvbigpe3RoaXMubmV4dEFkZHJlc3M9MH07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuc2V0Q2F0Y2hGaW5hbGx5QmxvY2tzPWZ1bmN0aW9uKGIsaCl7dGhpcy5jYXRjaEFkZHJlc3NfPWI7dm9pZCAwIT1oJiYodGhpcy5maW5hbGx5QWRkcmVzc189aCl9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLnNldEZpbmFsbHlCbG9jaz1mdW5jdGlvbihiKXt0aGlzLmNhdGNoQWRkcmVzc189MDt0aGlzLmZpbmFsbHlBZGRyZXNzXz1ifHwwfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5sZWF2ZVRyeUJsb2NrPWZ1bmN0aW9uKGIsaCl7dGhpcy5uZXh0QWRkcmVzcz1iO3RoaXMuY2F0Y2hBZGRyZXNzXz1ofHwwfTsKJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuZW50ZXJDYXRjaEJsb2NrPWZ1bmN0aW9uKGIpe3RoaXMuY2F0Y2hBZGRyZXNzXz1ifHwwO2I9dGhpcy5hYnJ1cHRDb21wbGV0aW9uXy5leGNlcHRpb247dGhpcy5hYnJ1cHRDb21wbGV0aW9uXz1udWxsO3JldHVybiBifTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5lbnRlckZpbmFsbHlCbG9jaz1mdW5jdGlvbihiLGgsbSl7bT90aGlzLmZpbmFsbHlDb250ZXh0c19bbV09dGhpcy5hYnJ1cHRDb21wbGV0aW9uXzp0aGlzLmZpbmFsbHlDb250ZXh0c189W3RoaXMuYWJydXB0Q29tcGxldGlvbl9dO3RoaXMuY2F0Y2hBZGRyZXNzXz1ifHwwO3RoaXMuZmluYWxseUFkZHJlc3NfPWh8fDB9OwokanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5sZWF2ZUZpbmFsbHlCbG9jaz1mdW5jdGlvbihiLGgpe2g9dGhpcy5maW5hbGx5Q29udGV4dHNfLnNwbGljZShofHwwKVswXTtpZihoPXRoaXMuYWJydXB0Q29tcGxldGlvbl89dGhpcy5hYnJ1cHRDb21wbGV0aW9uX3x8aCl7aWYoaC5pc0V4Y2VwdGlvbilyZXR1cm4gdGhpcy5qdW1wVG9FcnJvckhhbmRsZXJfKCk7dm9pZCAwIT1oLmp1bXBUbyYmdGhpcy5maW5hbGx5QWRkcmVzc188aC5qdW1wVG8\/KHRoaXMubmV4dEFkZHJlc3M9aC5qdW1wVG8sdGhpcy5hYnJ1cHRDb21wbGV0aW9uXz1udWxsKTp0aGlzLm5leHRBZGRyZXNzPXRoaXMuZmluYWxseUFkZHJlc3NffWVsc2UgdGhpcy5uZXh0QWRkcmVzcz1ifTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5mb3JJbj1mdW5jdGlvbihiKXtyZXR1cm4gbmV3ICRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQuUHJvcGVydHlJdGVyYXRvcihiKX07CiRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQuUHJvcGVydHlJdGVyYXRvcj1mdW5jdGlvbihiKXt0aGlzLm9iamVjdF89Yjt0aGlzLnByb3BlcnRpZXNfPVtdO2Zvcih2YXIgaCBpbiBiKXRoaXMucHJvcGVydGllc18ucHVzaChoKTt0aGlzLnByb3BlcnRpZXNfLnJldmVyc2UoKX07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5Qcm9wZXJ0eUl0ZXJhdG9yLnByb3RvdHlwZS5nZXROZXh0PWZ1bmN0aW9uKCl7Zm9yKDswPHRoaXMucHJvcGVydGllc18ubGVuZ3RoOyl7dmFyIGI9dGhpcy5wcm9wZXJ0aWVzXy5wb3AoKTtpZihiIGluIHRoaXMub2JqZWN0XylyZXR1cm4gYn1yZXR1cm4gbnVsbH07JGpzY29tcC5nZW5lcmF0b3IuRW5naW5lXz1mdW5jdGlvbihiKXt0aGlzLmNvbnRleHRfPW5ldyAkanNjb21wLmdlbmVyYXRvci5Db250ZXh0O3RoaXMucHJvZ3JhbV89Yn07CiRqc2NvbXAuZ2VuZXJhdG9yLkVuZ2luZV8ucHJvdG90eXBlLm5leHRfPWZ1bmN0aW9uKGIpe3RoaXMuY29udGV4dF8uc3RhcnRfKCk7aWYodGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yXylyZXR1cm4gdGhpcy55aWVsZEFsbFN0ZXBfKHRoaXMuY29udGV4dF8ueWllbGRBbGxJdGVyYXRvcl8ubmV4dCxiLHRoaXMuY29udGV4dF8ubmV4dF8pO3RoaXMuY29udGV4dF8ubmV4dF8oYik7cmV0dXJuIHRoaXMubmV4dFN0ZXBfKCl9OwokanNjb21wLmdlbmVyYXRvci5FbmdpbmVfLnByb3RvdHlwZS5yZXR1cm5fPWZ1bmN0aW9uKGIpe3RoaXMuY29udGV4dF8uc3RhcnRfKCk7dmFyIGg9dGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yXztpZihoKXJldHVybiB0aGlzLnlpZWxkQWxsU3RlcF8oInJldHVybiJpbiBoP2hbInJldHVybiJdOmZ1bmN0aW9uKG0pe3JldHVybnt2YWx1ZTptLGRvbmU6ITB9fSxiLHRoaXMuY29udGV4dF8ucmV0dXJuKTt0aGlzLmNvbnRleHRfLnJldHVybihiKTtyZXR1cm4gdGhpcy5uZXh0U3RlcF8oKX07CiRqc2NvbXAuZ2VuZXJhdG9yLkVuZ2luZV8ucHJvdG90eXBlLnRocm93Xz1mdW5jdGlvbihiKXt0aGlzLmNvbnRleHRfLnN0YXJ0XygpO2lmKHRoaXMuY29udGV4dF8ueWllbGRBbGxJdGVyYXRvcl8pcmV0dXJuIHRoaXMueWllbGRBbGxTdGVwXyh0aGlzLmNvbnRleHRfLnlpZWxkQWxsSXRlcmF0b3JfWyJ0aHJvdyJdLGIsdGhpcy5jb250ZXh0Xy5uZXh0Xyk7dGhpcy5jb250ZXh0Xy50aHJvd18oYik7cmV0dXJuIHRoaXMubmV4dFN0ZXBfKCl9OwokanNjb21wLmdlbmVyYXRvci5FbmdpbmVfLnByb3RvdHlwZS55aWVsZEFsbFN0ZXBfPWZ1bmN0aW9uKGIsaCxtKXt0cnl7dmFyIG49Yi5jYWxsKHRoaXMuY29udGV4dF8ueWllbGRBbGxJdGVyYXRvcl8saCk7JGpzY29tcC5nZW5lcmF0b3IuZW5zdXJlSXRlcmF0b3JSZXN1bHRJc09iamVjdF8obik7aWYoIW4uZG9uZSlyZXR1cm4gdGhpcy5jb250ZXh0Xy5zdG9wXygpLG47dmFyIHI9bi52YWx1ZX1jYXRjaCh2KXtyZXR1cm4gdGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yXz1udWxsLHRoaXMuY29udGV4dF8udGhyb3dfKHYpLHRoaXMubmV4dFN0ZXBfKCl9dGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yXz1udWxsO20uY2FsbCh0aGlzLmNvbnRleHRfLHIpO3JldHVybiB0aGlzLm5leHRTdGVwXygpfTsKJGpzY29tcC5nZW5lcmF0b3IuRW5naW5lXy5wcm90b3R5cGUubmV4dFN0ZXBfPWZ1bmN0aW9uKCl7Zm9yKDt0aGlzLmNvbnRleHRfLm5leHRBZGRyZXNzOyl0cnl7dmFyIGI9dGhpcy5wcm9ncmFtXyh0aGlzLmNvbnRleHRfKTtpZihiKXJldHVybiB0aGlzLmNvbnRleHRfLnN0b3BfKCkse3ZhbHVlOmIudmFsdWUsZG9uZTohMX19Y2F0Y2goaCl7dGhpcy5jb250ZXh0Xy55aWVsZFJlc3VsdD12b2lkIDAsdGhpcy5jb250ZXh0Xy50aHJvd18oaCl9dGhpcy5jb250ZXh0Xy5zdG9wXygpO2lmKHRoaXMuY29udGV4dF8uYWJydXB0Q29tcGxldGlvbl8pe2I9dGhpcy5jb250ZXh0Xy5hYnJ1cHRDb21wbGV0aW9uXzt0aGlzLmNvbnRleHRfLmFicnVwdENvbXBsZXRpb25fPW51bGw7aWYoYi5pc0V4Y2VwdGlvbil0aHJvdyBiLmV4Y2VwdGlvbjtyZXR1cm57dmFsdWU6Yi5yZXR1cm4sZG9uZTohMH19cmV0dXJue3ZhbHVlOnZvaWQgMCxkb25lOiEwfX07CiRqc2NvbXAuZ2VuZXJhdG9yLkdlbmVyYXRvcl89ZnVuY3Rpb24oYil7dGhpcy5uZXh0PWZ1bmN0aW9uKGgpe3JldHVybiBiLm5leHRfKGgpfTt0aGlzLnRocm93PWZ1bmN0aW9uKGgpe3JldHVybiBiLnRocm93XyhoKX07dGhpcy5yZXR1cm49ZnVuY3Rpb24oaCl7cmV0dXJuIGIucmV0dXJuXyhoKX07dGhpc1tTeW1ib2wuaXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9fTskanNjb21wLmdlbmVyYXRvci5jcmVhdGVHZW5lcmF0b3I9ZnVuY3Rpb24oYixoKXtoPW5ldyAkanNjb21wLmdlbmVyYXRvci5HZW5lcmF0b3JfKG5ldyAkanNjb21wLmdlbmVyYXRvci5FbmdpbmVfKGgpKTskanNjb21wLnNldFByb3RvdHlwZU9mJiZiLnByb3RvdHlwZSYmJGpzY29tcC5zZXRQcm90b3R5cGVPZihoLGIucHJvdG90eXBlKTtyZXR1cm4gaH07CiRqc2NvbXAuYXN5bmNFeGVjdXRlUHJvbWlzZUdlbmVyYXRvcj1mdW5jdGlvbihiKXtmdW5jdGlvbiBoKG4pe3JldHVybiBiLm5leHQobil9ZnVuY3Rpb24gbShuKXtyZXR1cm4gYi50aHJvdyhuKX1yZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24obixyKXtmdW5jdGlvbiB2KHkpe3kuZG9uZT9uKHkudmFsdWUpOlByb21pc2UucmVzb2x2ZSh5LnZhbHVlKS50aGVuKGgsbSkudGhlbih2LHIpfXYoYi5uZXh0KCkpfSl9OyRqc2NvbXAuYXN5bmNFeGVjdXRlUHJvbWlzZUdlbmVyYXRvckZ1bmN0aW9uPWZ1bmN0aW9uKGIpe3JldHVybiAkanNjb21wLmFzeW5jRXhlY3V0ZVByb21pc2VHZW5lcmF0b3IoYigpKX07JGpzY29tcC5hc3luY0V4ZWN1dGVQcm9taXNlR2VuZXJhdG9yUHJvZ3JhbT1mdW5jdGlvbihiKXtyZXR1cm4gJGpzY29tcC5hc3luY0V4ZWN1dGVQcm9taXNlR2VuZXJhdG9yKG5ldyAkanNjb21wLmdlbmVyYXRvci5HZW5lcmF0b3JfKG5ldyAkanNjb21wLmdlbmVyYXRvci5FbmdpbmVfKGIpKSl9OwpmdW5jdGlvbiBpbml0aWFsaXplRmluYW5jZU11bHRpU3RlcChiKXtmdW5jdGlvbiBoKGMpe3N3aXRjaChjKXtjYXNlICJFbWFpbCBwcm92aWRlZCI6Y2FzZSAiUGhvbmUgcHJvdmlkZWQiOk98fCgkKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSIsYikudHJpZ2dlcigicG9wdXBpemVyLnN1Ym1pdHRlZCIpLE89ITApfSJmdW5jdGlvbiI9PT10eXBlb2YgZ2FUcmFjayYmZ2FUcmFjaygiX3RyYWNrRXZlbnQiLCJVc2VkLVNSUC1GaW5hbmNlLVBvcHVwIixjLHdpbmRvdy5sb2NhdGlvbi5ocmVmLDEpfWZ1bmN0aW9uIG0oYyl7JC5hamF4KHt1cmw6Ii8iK3crIi9hamF4L2dldEJhbm5lclNlYXJjaEJhck1ha2VzP3dzd2lkdGg9MCIsZGF0YVR5cGU6IkpTT04iLGRhdGE6e3R5cGU6Yy50b0xvd2VyQ2FzZSgpfSxzdWNjZXNzOmZ1bmN0aW9uKGQpeyQoIiNmaW5hbmNlTXVsdGlzdGVwTWFrZSIsYikuaHRtbCgkKCIjZmluYW5jZU11bHRpc3RlcE1ha2Ugb3B0aW9uOmZpcnN0IiwKYilbMF0ub3V0ZXJIVE1MKTskKCIjZmluYW5jZU11bHRpc3RlcE1vZGVsIixiKS5odG1sKCQoIiNmaW5hbmNlTXVsdGlzdGVwTW9kZWwgb3B0aW9uOmZpcnN0IixiKVswXS5vdXRlckhUTUwpOyQoIiNmaW5hbmNlTXVsdGlzdGVwVHJpbSIsYikuaHRtbCgkKCIjZmluYW5jZU11bHRpc3RlcFRyaW0gb3B0aW9uOmZpcnN0IixiKVswXS5vdXRlckhUTUwpOyQuZWFjaChkLGZ1bmN0aW9uKGUsZil7JCgiI2ZpbmFuY2VNdWx0aXN0ZXBNYWtlIixiKS5hcHBlbmQoJzxvcHRpb24gdmFsdWU9IicrZi5tYWtlKyciPicrZi50aXRsZTIrIjwvb3B0aW9uPiIpfSl9fSl9ZnVuY3Rpb24gbihjLGQpeyQuYWpheCh7dXJsOiIvIit3KyIvYWpheC9nZXRCYW5uZXJTZWFyY2hCYXJNb2RlbHM\/d3N3aWR0aD0wIixkYXRhVHlwZToiSlNPTiIsZGF0YTp7bWFrZTpidG9hKGQpLHR5cGU6Yy50b0xvd2VyQ2FzZSgpfSxzdWNjZXNzOmZ1bmN0aW9uKGUpeyQoIiNmaW5hbmNlTXVsdGlzdGVwTW9kZWwiLApiKS5odG1sKCQoIiNmaW5hbmNlTXVsdGlzdGVwTW9kZWwgb3B0aW9uOmZpcnN0IixiKVswXS5vdXRlckhUTUwpOyQoIiNmaW5hbmNlTXVsdGlzdGVwVHJpbSIsYikuaHRtbCgkKCIjZmluYW5jZU11bHRpc3RlcFRyaW0gb3B0aW9uOmZpcnN0IixiKVswXS5vdXRlckhUTUwpOyQuZWFjaChlLGZ1bmN0aW9uKGYsZyl7JCgiI2ZpbmFuY2VNdWx0aXN0ZXBNb2RlbCIsYikuYXBwZW5kKCc8b3B0aW9uIGRhdGEtbW9kZWw9IicrZy5tb2RlbE5hbWUrJyIgZGF0YS15ZWFyPSInK2cueWVhcisnIiB2YWx1ZT0iJytnLnRpdGxlMisnIj4nK2cudGl0bGUyKyI8L29wdGlvbj4iKX0pfX0pfWZ1bmN0aW9uIHIoYyxkLGUpeyQuYWpheCh7dXJsOiIvIit3KyIvYWpheC9nZXROZXdUcmltcz93c3dpZHRoPTAiLGRhdGFUeXBlOiJKU09OIixkYXRhOnttYWtlOmMsbW9kZWw6ZCx5ZWFyOmV9LHN1Y2Nlc3M6ZnVuY3Rpb24oZil7JCgiI2ZpbmFuY2VNdWx0aXN0ZXBUcmltIiwKYikuaHRtbCgkKCIjZmluYW5jZU11bHRpc3RlcFRyaW0gb3B0aW9uOmZpcnN0IixiKVswXS5vdXRlckhUTUwpOyQuZWFjaChmLGZ1bmN0aW9uKGcsbCl7JCgiI2ZpbmFuY2VNdWx0aXN0ZXBUcmltIixiKS5hcHBlbmQoJzxvcHRpb24gZGF0YS1wcmljZT0iJytsLnByaWNlKyciIGRhdGEtc3R5bGVpZD0iJytsLnN0eWxlaWQrJyIgdmFsdWU9IicrbC50cmltKyciPicrbC50cmltKyI8L29wdGlvbj4iKX0pfX0pfWZ1bmN0aW9uIHYoYyxkKXskLmFqYXgoe3VybDoiLyIrdysiL2FqYXgvZ2V0SW52ZW50b3J5VHJpbXM\/d3N3aWR0aD0wIixkYXRhVHlwZToiSlNPTiIsZGF0YTp7bWFrZTpjLG1vZGVsOmR9LHN1Y2Nlc3M6ZnVuY3Rpb24oZSl7JCgiI2ZpbmFuY2VNdWx0aXN0ZXBUcmltIixiKS5odG1sKCQoIiNmaW5hbmNlTXVsdGlzdGVwVHJpbSBvcHRpb246Zmlyc3QiLGIpWzBdLm91dGVySFRNTCk7JC5lYWNoKGUsZnVuY3Rpb24oZixnKXskKCIjZmluYW5jZU11bHRpc3RlcFRyaW0iLApiKS5hcHBlbmQoJzxvcHRpb24gZGF0YS1wcmljZT0iJytnLm9yaWdpbmFscHJpY2UrJyIgZGF0YS12ZWhpY2xlaWQ9IicrZy52ZWhpY2xlaWQrJyIgZGF0YS15ZWFyPSInK2cueWVhcisnIiBkYXRhLWlzbmV3PSInK2cuaXNuZXcrJyIgZGF0YS1pc2RlbW89IicrZy5kZW1vKyciIGRhdGEtc3RvY2tudW1iZXI9IicrZy5zdG9ja251bWJlcisnIiBkYXRhLW1pbGVhZ2U9IicrZy5taWxlYWdlKyciIGRhdGEtc3R5bGVpZD0iJytnLnN0eWxlaWQrJyIgdmFsdWU9IicrZy50cmltKyciPicrZy50aXRsZSsiPC9vcHRpb24+Iil9KX19KX1mdW5jdGlvbiB5KGMpeyQuYWpheCh7dXJsOiIvIit3KyIvYWpheC9nZXRVc2VkQ2FsY3VsYXRvckhUTUw\/d3N3aWR0aD0wIixkYXRhVHlwZToiSlNPTiIsZGF0YTp7Y2FyaWQ6Y30sc3VjY2VzczpmdW5jdGlvbihkKXtkLnZhbGlkPygkKCIjZmluYW5jZU11bHRpc3RlcFVzZWRDYWxjdWxhdG9yIixiKS5odG1sKGQuaHRtbCksCiQoIiNmaW5hbmNlTXVsdGlzdGVwVXNlZENhbGN1bGF0b3IiLGIpLmZpbmQoIi5jYWxjLWZvcm0iKS5maW5kKCIudXNlZENhbGN1bGF0b3JEb3duUGF5bWVudCIpLmFmdGVyKCQoIi5maW5hbmNlTXVsdGlzdGVwVXNlZENhbGN1bGF0b3JUcmFkZUluIixiKS5odG1sKCkpLFgoKSwkKCIjZmluYW5jZU11bHRpc3RlcFVzZWRDYWxjdWxhdG9yIC5wYXltZW50Q2FsY3VsYXRvclRyYWRlSW5GaW5hbCIpLnZhbChhLmZvcm1kYXRhLnRyYWRlSW5WYWx1ZSksJCgiI2ZpbmFuY2VNdWx0aXN0ZXBVc2VkQ2FsY3VsYXRvciAucGF5bWVudENhbGN1bGF0b3JUcmFkZUluRmluYWwiKS5hdHRyKCJtYXgiLGEuZm9ybWRhdGEudHJhZGVJblZhbHVlKSwkKCIjZmluYW5jZU11bHRpc3RlcFVzZWRDYWxjdWxhdG9yIixiKS5zaG93KCkpOihhLmZvcm1kYXRhLm5vUGF5bWVudD0hMCwkKCIjZmluYW5jZU11bHRpc3RlcFVzZWRDYWxjdWxhdG9yIixiKS5oaWRlKCksYS5uZXh0KCEwKSl9fSl9ZnVuY3Rpb24gWCgpeyQoIi5maW5hbmNlTXVsdGlzdGVwVXNlZENhbGN1bGF0b3IgLmRvd25wYXltZW50Iikub24oImJsdXIiLApmdW5jdGlvbigpe0QoKX0pOyQoIi5maW5hbmNlTXVsdGlzdGVwVXNlZENhbGN1bGF0b3IgLm5vT2ZNb250aHMiKS5vbigiY2hhbmdlIixmdW5jdGlvbigpe3ZhciBjPSQodGhpcykuZmluZCgib3B0aW9uOnNlbGVjdGVkIik7JCgiLmZpbmFuY2VNdWx0aXN0ZXBVc2VkQ2FsY3VsYXRvciAuaW50ZXJlc3RyYXRlIikudmFsKGMuYXR0cigiZGF0YS1yYXRlIikpO0QoKX0pOyQoIi5maW5hbmNlTXVsdGlzdGVwVXNlZENhbGN1bGF0b3IgLnBheW1lbnRGcmVxdWVuY3kiKS5vbigiY2hhbmdlIixmdW5jdGlvbigpe0QoKX0pO0QoKX1mdW5jdGlvbiBEKCl7dmFyIGM9cGFyc2VGbG9hdCgkKCIuZmluYW5jZU11bHRpc3RlcFVzZWRDYWxjdWxhdG9yIC5pbnRlcmVzdHJhdGUiLGIpLnZhbCgpLnJlcGxhY2UoIiwiLCIuIikpLnRvRml4ZWQoMikvMTAwLGQ9cGFyc2VGbG9hdCgkKCIuZmluYW5jZU11bHRpc3RlcFVzZWRDYWxjdWxhdG9yIC5ub09mTW9udGhzIixiKS52YWwoKSkvMTIsZT1wYXJzZUZsb2F0KCQoIi5maW5hbmNlTXVsdGlzdGVwVXNlZENhbGN1bGF0b3IgLmxvYW5hbW91bnQiLApiKS52YWwoKSkudG9GaXhlZCgyKTskKCIuZmluYW5jZU11bHRpc3RlcFVzZWRDYWxjdWxhdG9yIC5mZWVhbW91bnQiLGIpLmxlbmd0aCYmKGU9cGFyc2VGbG9hdChlKStwYXJzZUZsb2F0KCQoIi5maW5hbmNlTXVsdGlzdGVwVXNlZENhbGN1bGF0b3IgLmZlZWFtb3VudCIsYikudmFsKCkucmVwbGFjZSgiLCIsIiIpKSk7MT09JCgiI3VzZXRheGVzIixiKS52YWwoKSYmKGUqPXBhcnNlRmxvYXQoJCgiI3RheGVzIikudmFsKCkpLnRvRml4ZWQoMikvMTAwKzEpOzA8JCgiLmZpbmFuY2VNdWx0aXN0ZXBVc2VkQ2FsY3VsYXRvciAuZG93bnBheW1lbnQiLGIpLnZhbCgpJiYoZS09cGFyc2VGbG9hdCgkKCIuZmluYW5jZU11bHRpc3RlcFVzZWRDYWxjdWxhdG9yIC5kb3ducGF5bWVudCIsYikudmFsKCkpLnRvRml4ZWQoMikpO3ZhciBmPSIiLGc9MTI7c3dpdGNoKCQoIi5maW5hbmNlTXVsdGlzdGVwVXNlZENhbGN1bGF0b3IgLnBheW1lbnRGcmVxdWVuY3kiLGIpLnZhbCgpKXtjYXNlICJ3ZWVrIjpnPQo1MjtmPSQoIiN3ZWVrVGV4dCIpLnZhbCgpO2JyZWFrO2Nhc2UgIjJ3ZWVrcyI6Zz0yNjtmPSQoIiMyd2Vla3NUZXh0IikudmFsKCk7YnJlYWs7Y2FzZSAibW9udGhseSI6Zj0kKCIjbW9udGhseVRleHQiKS52YWwoKTtnPTEyO2JyZWFrO2Nhc2UgImJpbW9udGhseSI6Zj0kKCIjYmltb250aGx5VGV4dCIpLnZhbCgpLGc9MjR9ZCo9ZzswPGM\/KGMvPWcsZz1NYXRoLnBvdyhjKzEsZCksZSo9YypnLyhnLTEpKTplLz1kO2U9TWF0aC5yb3VuZCgxMDAqZSkvMTAwO2lzTmFOKGUpJiYoZT0wKTskKCIuZmluYW5jZU11bHRpc3RlcFVzZWRDYWxjdWxhdG9yIC5vdXRwdXRwcmljZSIsYikudmFsKCIkIitlKTskKCIuZmluYW5jZU11bHRpc3RlcFVzZWRDYWxjdWxhdG9yIC5vdXRwdXRwcmljZS10eHQiLGIpLmh0bWwoIiQiK2UpO2Y9JCgiI2VzdGltZGF0ZWRQYXltZW50VGV4dCIsYikudmFsKCkucmVwbGFjZSgiIyNGUkVRVUVOQ1kjIyIsZik7JCgiLmZpbmFuY2VNdWx0aXN0ZXBVc2VkQ2FsY3VsYXRvciAuZXN0aW1hdGVkVGV4dCIsCmIpLmh0bWwoIjxzdHJvbmc+IitmKyI8L3N0cm9uZz4iKTtmPSQoImJvZHkiKS5oYXNDbGFzcygiRlJFTkNIIik\/IkZpbmFuY2VtZW50IjoiRmluYW5jaW5nIjthLmZvcm1kYXRhLnBheW1lbnRUeXBlPWY7YS5mb3JtZGF0YS5wYXltZW50VHlwZVJlYWw9ImZpbmFuY2luZyI7YS5mb3JtZGF0YS5wYXltZW50VGVybT0kKCIuZmluYW5jZU11bHRpc3RlcFVzZWRDYWxjdWxhdG9yIC5ub09mTW9udGhzIixiKS52YWwoKTthLmZvcm1kYXRhLnBheW1lbnRWYWx1ZT1lO2EuZm9ybWRhdGEucGF5bWVudERvd25QYXltZW50PSQoIi5maW5hbmNlTXVsdGlzdGVwVXNlZENhbGN1bGF0b3IgLmRvd25wYXltZW50IixiKS52YWwoKXx8MDthLmZvcm1kYXRhLnBheW1lbnRJbnRlcnZhbD0kKCIuZmluYW5jZU11bHRpc3RlcFVzZWRDYWxjdWxhdG9yIC5wYXltZW50RnJlcXVlbmN5IixiKS52YWwoKTthLmZvcm1kYXRhLnBheW1lbnRSYXRlPSQoIi5maW5hbmNlTXVsdGlzdGVwVXNlZENhbGN1bGF0b3IgLmludGVyZXN0cmF0ZSIsCmIpLnZhbCgpO2EuZm9ybWRhdGEudmVoaWNsZUluaXRpYWxQcmljZT1wYXJzZUludCgkKCIuZmluYW5jZU11bHRpc3RlcFVzZWRDYWxjdWxhdG9yIC5sb2FuYW1vdW50IixiKS52YWwoKSk7Zj1wYXJzZUludCgkKCIuZmluYW5jZU11bHRpc3RlcFVzZWRDYWxjdWxhdG9yIC5mZWVhbW91bnQiLGIpLnZhbCgpLnJlcGxhY2UoIiwiLCIiKSk7YS5mb3JtZGF0YS52ZWhpY2xlRmluYWxQcmljZT1wYXJzZUludCgkKCIuZmluYW5jZU11bHRpc3RlcFVzZWRDYWxjdWxhdG9yIC5sb2FuYW1vdW50IixiKS52YWwoKSkrZjthLmZvcm1kYXRhLnBheW1lbnRUb3RhbEZlZT1mO2suY2hlY2tWYWxpZGl0eSgpfWZ1bmN0aW9uIFAoKXsiMSI9PSQoIiNGSU5BTkNFX01VTFRJU1RFUF9pc0luc3RhbnQiLGIpLnZhbCgpJiYoJChiKS5maW5kKCIuY29uZmlybWF0aW9uVGl0bGUiKS5oaWRlKCksJChiKS5maW5kKCIuY29uZmlybWF0aW9uVGV4dCIpLnNob3coKSwkKGIpLmZpbmQoIi5jcmVkaXREZWNpc2lvbiIpLmh0bWwoIiIpLAokKGIpLmZpbmQoIi5jcmVkaXREZWNpc2lvbiIpLmhpZGUoKSk7aWYoX2xvY2FsU3RvcmFnZUdldCgidHJhZGVpbl9zdWJtaXRfZGF0YSIpJiYiIj09JCgiaW5wdXRbbmFtZT1maW5hbmNlVHJhZGVJbk1ha2VdIikudmFsKCkpe3ZhciBjPUpTT04ucGFyc2UoX2xvY2FsU3RvcmFnZUdldCgidHJhZGVpbl9zdWJtaXRfZGF0YSIpKTskKCJpbnB1dFtuYW1lPWZpbmFuY2VUcmFkZUluTWFrZV0iKS52YWwoYy5tYWtlKTskKCJpbnB1dFtuYW1lPWZpbmFuY2VUcmFkZUluTW9kZWxdIikudmFsKGMubW9kZWwpOyQoImlucHV0W25hbWU9ZmluYW5jZVRyYWRlSW5ZZWFyXSIpLnZhbChjLnllYXIpOyQoImlucHV0W25hbWU9ZmluYW5jZVRyYWRlSW5UcmltXSIpLnZhbChjLnRyaW0pOyQoImlucHV0W25hbWU9ZmluYW5jZVRyYWRlSW5WYWx1ZV0iKS52YWwoYy52YWx1ZSk7X2xvY2FsU3RvcmFnZUdldCgidHJhZGVpbl9jdXJyZW50X3ZhbHVlIikmJihjPUpTT04ucGFyc2UoX2xvY2FsU3RvcmFnZUdldCgidHJhZGVpbl9jdXJyZW50X3ZhbHVlIikpLAokKCJpbnB1dFtuYW1lPWZpbmFuY2VUcmFkZUluVmFsdWVdIikuYXR0cigiZGF0YS1jdXJyZW50IixjLnZhbHVlKSl9YS5zaG93RXJyb3I9ITE7YS5wdXNoUGFydGlhbD0hMTtrLnNldERlcGFydG1lbnQoKTtrLnNldFRyYWRlSW4oKTtpZihrLnVzZXJJZCgpKSQuYWpheCh7dXJsOiIvIit3KyIvYWpheC9nZXRGaW5hbmNlTXVsdGlzdGVwVXNlcklkQW5kRGF0YT93c3dpZHRoPTAiLGRhdGFUeXBlOiJKU09OIix0eXBlOiJQT1NUIixkYXRhOnt1c2VySWQ6ay51c2VySWQoKSxkb21haW46USxzaXRlSWQ6JCgiI3NpdGVJRCIpLnZhbCgpfHwkKCIjdG9wc2l0ZWlkIikudmFsKCksbGFuZzokKCIjYWN0aXZlc2l0ZWxhbmd1YWdlIikudmFsKCksZW1haWxIYW5kbGVySnNvbk9iamVjdDpKU09OLnN0cmluZ2lmeShKKX0sc3VjY2VzczpmdW5jdGlvbihnKXtnLklEfHwoZy5JRD0tMSk7ay51c2VySWQoZy5JRCk7Zy5kYXRhJiYoYS5mb3JtZGF0YT1KU09OLnBhcnNlKGcuZGF0YSkpOwoiIiE9ZW1haWxIYW5kbGVyLnVzZXJGaXJzdE5hbWUmJiJ1bmRlZmluZWQiIT1lbWFpbEhhbmRsZXIudXNlckZpcnN0TmFtZSYmYS5mb3JtZGF0YS5maXJzdE5hbWUhPWVtYWlsSGFuZGxlci51c2VyRmlyc3ROYW1lJiYoYS5mb3JtZGF0YS5maXJzdE5hbWU9ZW1haWxIYW5kbGVyLnVzZXJGaXJzdE5hbWUpOyIiIT1lbWFpbEhhbmRsZXIudXNlckxhc3ROYW1lJiYidW5kZWZpbmVkIiE9ZW1haWxIYW5kbGVyLnVzZXJMYXN0TmFtZSYmYS5mb3JtZGF0YS5sYXN0TmFtZSE9ZW1haWxIYW5kbGVyLnVzZXJMYXN0TmFtZSYmKGEuZm9ybWRhdGEubGFzdE5hbWU9ZW1haWxIYW5kbGVyLnVzZXJMYXN0TmFtZSk7IiIhPWVtYWlsSGFuZGxlci51c2VyRW1haWwmJiJ1bmRlZmluZWQiIT1lbWFpbEhhbmRsZXIudXNlckVtYWlsJiZhLmZvcm1kYXRhLmVtYWlsQWRkcmVzcyE9ZW1haWxIYW5kbGVyLnVzZXJFbWFpbCYmKGEuZm9ybWRhdGEuZW1haWxBZGRyZXNzPWVtYWlsSGFuZGxlci51c2VyRW1haWwpOwoiIiE9ZW1haWxIYW5kbGVyLnVzZXJQaG9uZSYmInVuZGVmaW5lZCIhPWVtYWlsSGFuZGxlci51c2VyUGhvbmUmJmEuZm9ybWRhdGEucGhvbmVOdW1iZXIhPWVtYWlsSGFuZGxlci51c2VyUGhvbmUmJihhLmZvcm1kYXRhLnBob25lTnVtYmVyPWVtYWlsSGFuZGxlci51c2VyUGhvbmUsJCgiI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0iLGIpLmZpbmQoJ2lucHV0W25hbWU9InBob25lTnVtYmVyIl0nKS52YWwoYS5mb3JtZGF0YS5waG9uZU51bWJlcikpO2lmKGcuZW1haWxIYW5kbGVySnNvbil7bGV0IGw9SlNPTi5wYXJzZShnLmVtYWlsSGFuZGxlckpzb24pO2VtYWlsSGFuZGxlci5zZW5kVG89bC5zZW5kVG87ZW1haWxIYW5kbGVyLnNlbGVjdGVkU2VuZFRvPWwuc2VsZWN0ZWRTZW5kVG87ZW1haWxIYW5kbGVyLnNlbmRUb0FERkZvcm1hdD1sLnNlbmRUb0FERkZvcm1hdDtlbWFpbEhhbmRsZXIuc2VsZWN0ZWRTZW5kVG9BREZGb3JtYXQ9bC5zZWxlY3RlZFNlbmRUb0FERkZvcm1hdDtlbWFpbEhhbmRsZXIuZGVhbGVyTmFtZT0KbC5kZWFsZXJOYW1lO2VtYWlsSGFuZGxlci5oYXNTZWxlY3RlZE11bHRpQWRkcmVzcz0tMT09PVstMSwiLTEiLCIiXS5pbmRleE9mKGEuZm9ybWRhdGEubXVsdGlfZGVhbGVyX3NlbmRUbyl9aWYoInVuZGVmaW5lZCIhPT10eXBlb2YgY2xpZW50U3RvcmFnZSl7bGV0IGw7YS5mb3JtZGF0YS5maXJzdE5hbWU9bnVsbCE9KGw9ay5nZXRDbGllbnRTdG9yYWdlRGF0YSgiZmlyc3RuYW1lIikpP2w6YS5mb3JtZGF0YS5maXJzdE5hbWU7bGV0IHA7YS5mb3JtZGF0YS5sYXN0TmFtZT1udWxsIT0ocD1rLmdldENsaWVudFN0b3JhZ2VEYXRhKCJsYXN0bmFtZSIpKT9wOmEuZm9ybWRhdGEubGFzdE5hbWU7bGV0IHE7YS5mb3JtZGF0YS5lbWFpbEFkZHJlc3M9bnVsbCE9KHE9ay5nZXRDbGllbnRTdG9yYWdlRGF0YSgiZW1haWwiKSk\/cTphLmZvcm1kYXRhLmVtYWlsQWRkcmVzcztsZXQgdDthLmZvcm1kYXRhLnBob25lTnVtYmVyPW51bGwhPSh0PWsuZ2V0Q2xpZW50U3RvcmFnZURhdGEoInBob25lIikpPwp0OmEuZm9ybWRhdGEucGhvbmVOdW1iZXI7JCgiI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0iLGIpLmZpbmQoJ2lucHV0W25hbWU9InBob25lTnVtYmVyIl0nKS52YWwoYS5mb3JtZGF0YS5waG9uZU51bWJlcil9MD09YS5mb3JtZGF0YS5hZGRyZXNzX3llYXJzJiYwPT1hLmZvcm1kYXRhLmFkZHJlc3NfbW9udGhzJiYoYS5mb3JtZGF0YS5hZGRyZXNzPSIiKTtnLnN0ZXAmJihhLnN0ZXA9TnVtYmVyKGcuc3RlcCksYS5uZXh0U3RlcD1hLm5leHRTdGVwRGVmYXVsdFZhbHVlc1sic3RlcCIrZy5zdGVwXSk7JChkb2N1bWVudCkudHJpZ2dlcigiY3JlZGl0Lm11bHRpc3RlcC5zaG93Iik7JCgiI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0iLGIpLnNob3coKTtrLnNldEN1cnJlbnRNYWtlTW9kZWxZZWFyKCk7ay5vblNob3dGdW5jdGlvblRvUnVuKCk7YS5maXJzdFN0ZXA9ITF9LGNvbXBsZXRlOmZ1bmN0aW9uKGcpe2lmKCFnLmRhdGEpcmV0dXJuIGsudXNlcklkKC0xKSxsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgiZmluYW5jZV9tdWx0aXN0ZXAubGluZWFyX3N0ZXAiKSwKUCgpfX0pO2Vsc2V7YS5wdXNoUGFydGlhbD0hMTsiIiE9ZW1haWxIYW5kbGVyLnVzZXJGaXJzdE5hbWUmJiJ1bmRlZmluZWQiIT1lbWFpbEhhbmRsZXIudXNlckZpcnN0TmFtZSYmKGEuZm9ybWRhdGEuZmlyc3ROYW1lPWVtYWlsSGFuZGxlci51c2VyRmlyc3ROYW1lKTsiIiE9ZW1haWxIYW5kbGVyLnVzZXJMYXN0TmFtZSYmInVuZGVmaW5lZCIhPWVtYWlsSGFuZGxlci51c2VyTGFzdE5hbWUmJihhLmZvcm1kYXRhLmxhc3ROYW1lPWVtYWlsSGFuZGxlci51c2VyTGFzdE5hbWUpOyIiIT1lbWFpbEhhbmRsZXIudXNlckVtYWlsJiYidW5kZWZpbmVkIiE9ZW1haWxIYW5kbGVyLnVzZXJFbWFpbCYmKGEuZm9ybWRhdGEuZW1haWxBZGRyZXNzPWVtYWlsSGFuZGxlci51c2VyRW1haWwpOyIiIT1lbWFpbEhhbmRsZXIudXNlclBob25lJiYidW5kZWZpbmVkIiE9ZW1haWxIYW5kbGVyLnVzZXJQaG9uZSYmKGEuZm9ybWRhdGEucGhvbmVOdW1iZXI9ZW1haWxIYW5kbGVyLnVzZXJQaG9uZSwkKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSIsCmIpLmZpbmQoJ2lucHV0W25hbWU9InBob25lTnVtYmVyIl0nKS52YWwoYS5mb3JtZGF0YS5waG9uZU51bWJlcikpO2lmKCJ1bmRlZmluZWQiIT09dHlwZW9mIGNsaWVudFN0b3JhZ2Upe3ZhciBkO2EuZm9ybWRhdGEuZmlyc3ROYW1lPW51bGwhPShkPWsuZ2V0Q2xpZW50U3RvcmFnZURhdGEoImZpcnN0bmFtZSIpKT9kOmEuZm9ybWRhdGEuZmlyc3ROYW1lO3ZhciBlO2EuZm9ybWRhdGEubGFzdE5hbWU9bnVsbCE9KGU9ay5nZXRDbGllbnRTdG9yYWdlRGF0YSgibGFzdG5hbWUiKSk\/ZTphLmZvcm1kYXRhLmxhc3ROYW1lO3ZhciBmO2EuZm9ybWRhdGEuZW1haWxBZGRyZXNzPW51bGwhPShmPWsuZ2V0Q2xpZW50U3RvcmFnZURhdGEoImVtYWlsIikpP2Y6YS5mb3JtZGF0YS5lbWFpbEFkZHJlc3M7bGV0IGc7YS5mb3JtZGF0YS5waG9uZU51bWJlcj1udWxsIT0oZz1rLmdldENsaWVudFN0b3JhZ2VEYXRhKCJwaG9uZSIpKT9nOmEuZm9ybWRhdGEucGhvbmVOdW1iZXI7JCgiI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0iLApiKS5maW5kKCdpbnB1dFtuYW1lPSJwaG9uZU51bWJlciJdJykudmFsKGEuZm9ybWRhdGEucGhvbmVOdW1iZXIpfWsuaGFzRGVhbGVyU2VsZWN0VmFsdWVzKCkmJmsuc2V0RGVhbGVyU2VsZWN0RW1haWwoKTskKCcjbWluaWZvcm0gW25hbWU9Im11bHRpX2RlYWxlcl9zZW5kVG8iXScpLmxlbmd0aCYmIiIhPSQoJyNtaW5pZm9ybSBbbmFtZT0ibXVsdGlfZGVhbGVyX3NlbmRUbyJdJykudmFsKCkmJihhLmZvcm1kYXRhLm11bHRpX2RlYWxlcl9zZW5kVG89JCgnI21pbmlmb3JtIFtuYW1lPSJtdWx0aV9kZWFsZXJfc2VuZFRvIl0nKS52YWwoKSxhLmZvcm1kYXRhLm11bHRpRnJvbU1pbmk9ITApOyQoIiNtYXhfYnVkZ2V0IikubGVuZ3RoJiYoYS5wdXNoUGFydGlhbD0hMCxkPSIiLGU9cGFyc2VGbG9hdCgkKCIjbWF4X2J1ZGdldCIpLnZhbCgpLnJlcGxhY2UoL1teMC05Li1dKy9nLCIiKSksZD1rLmdldEN1cnJlbnRCdWRnZXQoZSksIjEiPT11JiZpc05hTihlKSYmKGQ9IiIpLGEuZm9ybWRhdGEuYnVkZ2V0PQpkKTskKCIudHJhY2stcHJvZ3Jlc3MiKS5sZW5ndGgmJihsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgidHJhZGVpbl9zdWJtaXRfZGF0YSIpJiYoYS5mb3JtZGF0YS5jdXJyZW50bHlEcml2aW5nPSJGSU5BTkNFX0ZPUk1fQUxSRUFEWV9EUklWSU5HX1RSQURFIiksZD1sb2NhbFN0b3JhZ2UuZ2V0SXRlbSgicmV0YWlsX3RyYWNrX2RhdGEiKSwoZD1KU09OLnBhcnNlKGQpKSYmZC52YWx1ZSYmKGQ9SlNPTi5wYXJzZShkLnZhbHVlKSkmJmQucGF5bWVudCYmZC5wYXltZW50LnBheW1lbnRWYWx1ZSYmKGU9ZC5wYXltZW50LnBheW1lbnRWYWx1ZSxkPWVbMF0sZT1lWzNdLGY9IiIsZD0ibW9udGhseSI9PWU\/cGFyc2VGbG9hdChkKToid2Vla2x5Ij09ZT81MipwYXJzZUZsb2F0KGQpLzEyOiJzZW1pbW9udGhseSI9PWU\/MjQqcGFyc2VGbG9hdChkKS8xMjoyNipwYXJzZUZsb2F0KGQpLzEyLGY9ay5nZXRDdXJyZW50QnVkZ2V0KGQpLGEuZm9ybWRhdGEuYnVkZ2V0PWYpKTtkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdbbmFtZT0iYnVkZ2V0Il0rbGFiZWwnKS5mb3JFYWNoKGc9Pgp7Zy5pbm5lckhUTUw9Zy5pbm5lckhUTUwucmVwbGFjZSgvKFwkXGR7Myw0fXxcZHszLDR9XCQpL2csbD0+RDJDVXRpbHMuRm9ybWF0LnRvUHJpY2UobC5yZXBsYWNlKC9cJC9nLCIiKSkpfSk7JChkb2N1bWVudCkudHJpZ2dlcigiY3JlZGl0Lm11bHRpc3RlcC5zaG93Iik7JCgiI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0iLGIpLnNob3coKTswPT1hLnN0ZXAmJigkKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV9uZXh0X2J0biIsYikuaGlkZSgpLCQoIiNmaW5hbmNlX211bHRpc3RlcF9mb3JtIixiKS5vZmYoImNsaWNrLm5vQnV0dG9uIiwiaW5wdXRbdHlwZT1yYWRpb10iKSwkKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSIsYikub24oImNsaWNrLm5vQnV0dG9uIiwiaW5wdXRbdHlwZT1yYWRpb10iLGZ1bmN0aW9uKCl7c2V0VGltZW91dChmdW5jdGlvbigpe2EubmV4dCgpfSwxRTMpfSkpO2suc2V0Q3VycmVudE1ha2VNb2RlbFllYXIoKX19dmFyIHo9JCgiI0ZJTkFOQ0VfTVVMVElTVEVQX1BIT05FX1BPU0lUSU9OX0NIRUNLIikudmFsKCksCks9JCgiI0ZJTkFOQ0VfTVVMVElTVEVQX1BIT05FX1BPU0lUSU9OX1NFTEVDVCIpLnZhbCgpLEU9JCgiI0FETUlOX01BTkRBVE9SWV9DUkVESVRfQlVSRUFVX0NIRUNLIikudmFsKCksQz0kKCIjQVNLX0ZPUl9TSU5fQ0hFQ0siKS52YWwoKSxPPSExLHU9JCgiI0ZJTkFOQ0VfTVVMVElTVEVQX2lzU2Vjb25kQ2hhbmNlIixiKS52YWwoKSx4PSQoIiNGSU5BTkNFX01VTFRJU1RFUF9pc0luc3RhbnQiLGIpLnZhbCgpLEY9JCgiI0ZJTkFOQ0VfTVVMVElTVEVQX2lzVndEUiIsYikudmFsKCksTD0xLE09WzEsMiwzLDYsNywxMywxNCwxNV0sRz1be2Z1bmM6InZhbGlkYXRlTm90RW1wdHkiLHZhbHVlOiJlbXBsb3ltZW50U3RhdHVzIn1dLFI9W10sUz1be2Z1bmM6InZhbGlkYXRlTm90RW1wdHkiLHZhbHVlOiJmaXJzdE5hbWUifSx7ZnVuYzoidmFsaWRhdGVOb3RFbXB0eSIsdmFsdWU6Imxhc3ROYW1lIn0se2Z1bmM6InZhbGlkYXRlTmFtZSIsdmFsdWU6IiJ9XSxUPVt7ZnVuYzoidmFsaWRhdGVOb3RFbXB0eSIsCnZhbHVlOiJhZGRyZXNzIn1dLFU9W3tmdW5jOiJ2YWxpZGF0ZU5vdEVtcHR5Iix2YWx1ZToicmVudE9yT3duIn0se2Z1bmM6InZhbGlkYXRlSXNOdW1iZXIiLHZhbHVlOiJtb250aGx5UGF5bWVudCJ9LHtmdW5jOiJ2YWxpZGF0ZU1vbnRobHlQYXltZW50Iix2YWx1ZToibW9udGhseVBheW1lbnQifV0sVj1bXSxCPXtzdGVwMDoxLHN0ZXAxOjIsc3RlcDI6MyxzdGVwMzoiMCI9PXo\/NDoiYmVmb3JlIj09Sz8xOTo0LHN0ZXA0OiIwIj09ej81OiJiZWZvcmUiPT1LPzU6MTksc3RlcDU6NixzdGVwNjo3LHN0ZXA3Ojgsc3RlcDg6OSxzdGVwOToxMSxzdGVwMTA6MTEsc3RlcDExOjEyLHN0ZXAxMjoxMyxzdGVwMTM6MTYsc3RlcDE0OjE2LHN0ZXAxNToxNixzdGVwMTY6MTcsc3RlcDE3OiIwIj09ej8xOTowPT1FPyIwIj09Qz8iMSI9PXU\/MjM6ImRvbmUiOjIyOjIwLHN0ZXAxODoiMCI9PXo\/MD09RT8iMCI9PUM\/IjEiPT11PzIzOiJkb25lIjoyMjoyMDoiYmVmb3JlIj09Sz80OjUsc3RlcDE5OjE4LApzdGVwMjA6IjAiPT1DPyIxIj09dT8yMzoiZG9uZSI6MjIsc3RlcDIyOiIxIj09dT8yMzoiZG9uZSIsc3RlcDIzOiJkb25lIn07b3B0aW9uYWxTdGVwcz1bXTsiMSI9PXUmJihvcHRpb25hbFN0ZXBzPVsyM10sIjAiPT1DJiYob3B0aW9uYWxTdGVwcz1bMjIsMjNdKSxNPVsxLDIsMyw2LDcsMTQsMTVdLEc9W3tmdW5jOiJ2YWxpZGF0ZU5vdEVtcHR5Iix2YWx1ZToiZW1wbG95bWVudFN0YXR1cyJ9LHtmdW5jOiJ2YWxpZGF0ZU5vdEVtcHR5Iix2YWx1ZToiZW1wbG95bWVudEFkZGVkSW5mbyJ9LHtmdW5jOiJ2YWxpZGF0ZUVtcGxveWVySW5mbyIsdmFsdWU6IiJ9LHtmdW5jOiJ2YWxpZGF0ZU5vdEVtcHR5RW1wbG95ZXJTdGF0dXNUaW1lIix2YWx1ZToiIn1dLEI9e3N0ZXAwOjEsc3RlcDE6MixzdGVwMjozLHN0ZXAzOjE4LHN0ZXA0OjE5LHN0ZXA1OjYsc3RlcDY6NyxzdGVwNzo4LHN0ZXA4Ojksc3RlcDk6MjIsc3RlcDEwOjExLHN0ZXAxMToxMixzdGVwMTI6MTMsc3RlcDEzOjE2LHN0ZXAxNDoxNiwKc3RlcDE1OjE2LHN0ZXAxNjoyMyxzdGVwMTg6NSxzdGVwMTk6MTEsc3RlcDIwOiJkb25lIixzdGVwMjI6NCxzdGVwMjM6MD09RT8iZG9uZSI6MjB9KTsiMSI9PXgmJihvcHRpb25hbFN0ZXBzPVsyMl0sTD0yNCxNPVsxLDIsMyw2LDcsMTQsMTVdLEc9W3tmdW5jOiJ2YWxpZGF0ZU5vdEVtcHR5Iix2YWx1ZToiZW1wbG95bWVudFN0YXR1cyJ9LHtmdW5jOiJ2YWxpZGF0ZUVtcGxveW1lbnRBZGRlZEluZm8iLHZhbHVlOiJlbXBsb3ltZW50QWRkZWRJbmZvIn0se2Z1bmM6InZhbGlkYXRlRW1wbG95ZXJJbmZvIix2YWx1ZToiIn0se2Z1bmM6InZhbGlkYXRlTm90RW1wdHlFbXBsb3llclN0YXR1c1RpbWUiLHZhbHVlOiIifSx7ZnVuYzoidmFsaWRhdGVBZGRyZXNzRW1wbG95ZXIiLHZhbHVlOiJhZGRyZXNzRW1wbG95ZXIifV0sUj1be2Z1bmM6InZhbGlkYXRlRW1wbG95bWVudEFkZGVkSW5mbyIsdmFsdWU6ImVtcGxveW1lbnRBZGRlZEluZm8yIn0se2Z1bmM6InZhbGlkYXRlRW1wbG95ZXJJbmZvMiIsCnZhbHVlOiIifSx7ZnVuYzoidmFsaWRhdGVOb3RFbXB0eUVtcGxveWVyU3RhdHVzVGltZTIiLHZhbHVlOiIifSx7ZnVuYzoidmFsaWRhdGVBZGRyZXNzRW1wbG95ZXIyIix2YWx1ZToiYWRkcmVzc0VtcGxveWVyMiJ9XSxTPVt7ZnVuYzoidmFsaWRhdGVOb3RFbXB0eSIsdmFsdWU6ImZpcnN0TmFtZSJ9LHtmdW5jOiJ2YWxpZGF0ZU5vdEVtcHR5Iix2YWx1ZToibGFzdE5hbWUifSx7ZnVuYzoidmFsaWRhdGVOb3RFbXB0eSIsdmFsdWU6InRpdGxlIn0se2Z1bmM6InZhbGlkYXRlTmFtZSIsdmFsdWU6IiJ9XSxUPVt7ZnVuYzoidmFsaWRhdGVBZGRyZXNzIix2YWx1ZToiYWRkcmVzcyJ9XSxCPXtzdGVwMDoyNCxzdGVwMjQ6MjUsc3RlcDI1OjQsc3RlcDQ6MTksc3RlcDE5OjE4LHN0ZXAxODo1LHN0ZXA1Ojgsc3RlcDg6OSxzdGVwOToxMSxzdGVwMTE6MTIsc3RlcDEyOjEzLHN0ZXAyNzoyOCxzdGVwMjg6MTMsc3RlcDEzOjE2LHN0ZXAxNDoxNixzdGVwMTU6MTYsc3RlcDE2OjE3LHN0ZXAxNzoyMiwKc3RlcDI5OjIyLHN0ZXAyMjowPT1FPzI2OjIwLHN0ZXAyMDoyNixzdGVwMjY6ImRvbmUifSwiMSI9PUYmJihHPVt7ZnVuYzoidmFsaWRhdGVOb3RFbXB0eSIsdmFsdWU6ImVtcGxveW1lbnRTdGF0dXMifSx7ZnVuYzoidmFsaWRhdGVFbXBsb3ltZW50QWRkZWRJbmZvVlciLHZhbHVlOiJlbXBsb3ltZW50QWRkZWRJbmZvIn0se2Z1bmM6InZhbGlkYXRlRW1wbG95ZXJJbmZvVlciLHZhbHVlOiIifSx7ZnVuYzoidmFsaWRhdGVOb3RFbXB0eUVtcGxveWVyU3RhdHVzVGltZVZXIix2YWx1ZToiIn0se2Z1bmM6InZhbGlkYXRlQWRkcmVzc0VtcGxveWVyVlciLHZhbHVlOiJhZGRyZXNzRW1wbG95ZXIifV0sQi5zdGVwMTY9MjIsQi5zdGVwMjI9MzAsQi5zdGVwMzA9ImRvbmUiLFU9W3tmdW5jOiJ2YWxpZGF0ZU5vdEVtcHR5Iix2YWx1ZToicmVudE9yT3duIn0se2Z1bmM6InZhbGlkYXRlSXNOdW1iZXIiLHZhbHVlOiJtb250aGx5UGF5bWVudCJ9LHtmdW5jOiJ2YWxpZGF0ZU1vbnRobHlQYXltZW50IiwKdmFsdWU6Im1vbnRobHlQYXltZW50In0se2Z1bmM6InZhbGlkYXRlTW9udGhseURpc2J1cnNlbWVudFZXIix2YWx1ZToibW9udGhseURpc2J1cnNlbWVudCJ9LHtmdW5jOiJ2YWxpZGF0ZU1vbnRobHlQYXltZW50Iix2YWx1ZToibW9udGhseURpc2J1cnNlbWVudCJ9XSxWPVt7ZnVuYzoiaW5pdERpc2J1cnNtZW50VlcifV0pKTt2YXIgYT1uZXcgVnVlKHtlbDokKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSIsYilbMF0sZGF0YTpmdW5jdGlvbigpe3JldHVybntjb250ZXh0OmIsYWpheFByb2Nlc3M6ITEsdXNlcklkOiIiLGNvbnZlcnNpb25TdWJtaXR0ZWQ6ITEsc2hvd0ljb246ITAscHVzaFBhcnRpYWw6ITEsY3VycmVudERlcHQ6Ik5FVyIsaW5pdFZlaGljbGVTZWxlY3Rpb25GaXJzdDohMCxzdGVwOjAsbmV4dFN0ZXA6TCxmaXJzdFN0ZXA6ITAsY2FsY3VsYXRvckZ1bmN0aW9uczoiIixjcmVkaXREZWNpc2lvbkhUTUw6IiIsZm9ybWRhdGE6e3ZlaGljbGVUeXBlOiIiLGJ1ZGdldDoiIiwKY3VycmVudGx5RHJpdmluZzoiIixlbWFpbEFkZHJlc3M6IiIsY3JlZGl0UmF0aW5nOiIiLGRvd25PcHRpb25zOiIiLGJpcnRoZGF0ZVllYXI6IiIsYmlydGhkYXRlTW9udGg6IiIsYmlydGhkYXRlRGF5OiIiLGFkZHJlc3M6IiIsc3BsaXRBZGRyZXNzOltdLGFkZHJlc3NfeWVhcnM6MCxhZGRyZXNzX21vbnRoczowLGFkZHJlc3MyOiIiLHNwbGl0QWRkcmVzczI6W10sYWRkcmVzczJfeWVhcnM6MCxhZGRyZXNzMl9tb250aHM6MCxhZGRyZXNzRW1wbG95ZXI6IiIsc3BsaXRBZGRyZXNzRW1wbG95ZXI6W10scmVudE9yT3duOiIiLG1vbnRobHlQYXltZW50OjAsbW9udGhseURpc2J1cnNlbWVudDowLGVtcGxveW1lbnRTdGF0dXM6IiIsZW1wbG95bWVudEFkZGVkSW5mbzoiIixlbXBsb3llck5hbWU6IiIsZW1wbG95ZXJQaG9uZToiIixlbXBsb3ltZW50U3RhdHVzWWVhcjowLGVtcGxveW1lbnRTdGF0dXNNb250aDowLGVtcGxveW1lbnRBZGRlZEluZm8yOiIiLGVtcGxveWVyTmFtZTI6IiIsCmVtcGxveWVyUGhvbmUyOiIiLGVtcGxveW1lbnRTdGF0dXNZZWFyMjowLGVtcGxveW1lbnRTdGF0dXNNb250aDI6MCxhZGRyZXNzRW1wbG95ZXIyOiIiLHNwbGl0QWRkcmVzc0VtcGxveWVyMjpbXSx3b3JraW5nV2hpbGVJblNjaG9vbDoiIixvdGhlckVtcGxveW1lbnRTdGF0dXM6IiIsbW9udGhseUluY29tZTowLG1vbnRobHlJbmNvbWVfeWVhcnM6MCxtb250aGx5SW5jb21lX21vbnRoczowLHRpdGxlOiIiLGZpcnN0TmFtZToiIixsYXN0TmFtZToiIixwaG9uZU51bWJlcjoiIixjdXJyZW50TWFrZToiIixjdXJyZW50TW9kZWw6IiIsY3VycmVudE1vZGVsVGV4dDoiIixjdXJyZW50WWVhcjoiIixjdXJyZW50U3RvY2tOdW1iZXI6IiIsY3VycmVudE1pbGVhZ2U6MTAsY3VycmVudFRyaW06IiIsY3VycmVudFN0eWxlaWQ6IiIsY3VycmVudENhcklkOiIiLHBheW1lbnRUeXBlOiIiLHBheW1lbnRUeXBlUmVhbDoiIixwYXltZW50VGVybToiIixwYXltZW50UmF0ZVR5cGU6IiIscGF5bWVudFZhbHVlOiIiLApiYXNlcGF5bWVudDoiIixwYXltZW50VG90YWxJbmNlbnRpdmU6MCxwYXltZW50VG90YWxGZWU6MCxwYXltZW50R1NUOjAscGF5bWVudEhTVDowLHBheW1lbnRQU1Q6MCxwYXltZW50RG93blBheW1lbnQ6MCxwYXltZW50S21BbGxvd2FuY2U6MCxwYXltZW50SW50ZXJ2YWw6IiIscGF5bWVudFJhdGU6IiIscGF5bWVudFJlc2lkdWFsVmFsdWU6MCxub1BheW1lbnQ6ITEsbXVsdGlfZGVhbGVyX3NlbmRUbzoiIixjcmVkaXRCdXJlYXVDcmVkaXQ6Ik5PIixTSU46IiIsYWRkZWRJbmZvOiIiLHZlaGljbGVTYWxlc0RlcHQ6Im90aGVyIix2ZWhpY2xlUHJpY2U6IiIsdmVoaWNsZVRyYW5zbWlzc2lvbjoiIix2ZWhpY2xlVHJpbToiIix2ZWhpY2xlQ29sb3I6IiIsaW5pdGlhbFRpdGxlU2hvdzohMCxtdWx0aUZyb21NaW5pOiExLHRyYWRlSW5NYWtlOiIiLHRyYWRlSW5Nb2RlbDoiIix0cmFkZUluWWVhcjoiIix0cmFkZUluVHJpbToiIix0cmFkZUluVmFsdWU6IiIsdmVoaWNsZUluaXRpYWxQcmljZToiIiwKdmVoaWNsZUZpbmFsUHJpY2U6IiIscGF5bWVudEZlZXNMaXN0OltdLHBheW1lbnRJbmNlbnRpdmVzTGlzdDpbXSxjcmVkaXRBcHBsaWNhdGlvbklkOiIiLGNvbnNlbnRBY2NvdW50TW9uaXRvcmluZzoiIixjb25zZW50Q3JlZGl0QXNzZXNzbWVudDoiIixjb25zZW50UGlwZWRhOiIiLGNvbnNlbnRDYXNsOiIiLGNvbnNlbnRWVzoiIn0sbmV4dFN0ZXBEZWZhdWx0VmFsdWVzOkIsdmFsaWRhdGlvblJ1bGVzOntzdGVwMTpbe2Z1bmM6InZhbGlkYXRlTm90RW1wdHkiLHZhbHVlOiJ2ZWhpY2xlVHlwZSJ9XSxzdGVwMjpbe2Z1bmM6InZhbGlkYXRlTm90RW1wdHkiLHZhbHVlOiJidWRnZXQifV0sc3RlcDM6W3tmdW5jOiJ2YWxpZGF0ZU5vdEVtcHR5Iix2YWx1ZToiY3VycmVudGx5RHJpdmluZyJ9XSxzdGVwNDpbe2Z1bmM6InZhbGlkYXRlTm90RW1wdHkiLHZhbHVlOiJlbWFpbEFkZHJlc3MifSx7ZnVuYzoidmFsaWRhdGVFbWFpbCIsdmFsdWU6ImVtYWlsQWRkcmVzcyJ9XSxzdGVwNTpbe2Z1bmM6InZhbGlkYXRlTm90RW1wdHkiLAp2YWx1ZToibXVsdGlfZGVhbGVyX3NlbmRUbyJ9XSxzdGVwNjpbe2Z1bmM6InZhbGlkYXRlTm90RW1wdHkiLHZhbHVlOiJjcmVkaXRSYXRpbmcifV0sc3RlcDc6W3tmdW5jOiJ2YWxpZGF0ZU5vdEVtcHR5Iix2YWx1ZToiZG93bk9wdGlvbnMifV0sc3RlcDg6W3tmdW5jOiJ2YWxpZGF0ZUJpcnRoZGF0ZSIsdmFsdWU6IiJ9XSxzdGVwOTpULHN0ZXAxMTpbe2Z1bmM6InZhbGlkYXRlTm90RW1wdHlBZGRyZXNzVGltZSIsdmFsdWU6IiJ9XSxzdGVwMTI6VSxzdGVwMTM6RyxzdGVwMTQ6W3tmdW5jOiJ2YWxpZGF0ZU5vdEVtcHR5Iix2YWx1ZToid29ya2luZ1doaWxlSW5TY2hvb2wifV0sc3RlcDE1Olt7ZnVuYzoidmFsaWRhdGVOb3RFbXB0eSIsdmFsdWU6Im90aGVyRW1wbG95bWVudFN0YXR1cyJ9XSxzdGVwMTY6W3tmdW5jOiJ2YWxpZGF0ZU1vcmVUaGFuWmVybyIsdmFsdWU6Im1vbnRobHlJbmNvbWUifSx7ZnVuYzoidmFsaWRhdGVNb250aGx5SW5jb21lIix2YWx1ZToibW9udGhseUluY29tZSJ9XSwKc3RlcDE3Olt7ZnVuYzoidmFsaWRhdGVOb3RFbXB0eU1vbnRobHlJbmNvbWVUaW1lIix2YWx1ZToiIn1dLHN0ZXAxODpTLHN0ZXAxOTpbe2Z1bmM6InZhbGlkYXRlUGhvbmVOdW1iZXIiLHZhbHVlOiJwaG9uZU51bWJlciJ9XSxzdGVwMjA6W3tmdW5jOiJ2YWxpZGF0ZUNoZWNrZWRDcmVkaXRCdXJlYXUiLHZhbHVlOiJjcmVkaXRCdXJlYXVDcmVkaXQifV0sc3RlcDIyOlt7ZnVuYzoidmFsaWRhdGVTSU4iLHZhbHVlOiJTSU4ifV0sc3RlcDI0Olt7ZnVuYzoidmFsaWRhdGVWZWhpY2xlIix2YWx1ZToiIn1dLHN0ZXAyNTpbe2Z1bmM6InZhbGlkYXRlUGF5bWVudCIsdmFsdWU6IiJ9XSxzdGVwMjY6W3tmdW5jOiJ2YWxpZGF0ZUNvbnNlbnQiLHZhbHVlOiIifV0sc3RlcDI3Olt7ZnVuYzoidmFsaWRhdGVBZGRyZXNzMiIsdmFsdWU6ImFkZHJlc3MyIn1dLHN0ZXAyODpbe2Z1bmM6InZhbGlkYXRlTm90RW1wdHlBZGRyZXNzMlRpbWUiLHZhbHVlOiIifV0sc3RlcDI5OlIsc3RlcDMwOlt7ZnVuYzoidmFsaWRhdGVDb25zZW50cyIsCnZhbHVlOiIifV19LG9uU2hvd0Z1bmN0aW9uOntzdGVwMjpbe2Z1bmM6InN0ZXAyVmlld2VkVHJhY2sifV0sc3RlcDQ6W3tmdW5jOiJlbWFpbFN0ZXBWaWV3ZWRUcmFjayJ9LHtmdW5jOiJpbml0RW1haWwifV0sc3RlcDY6W10sc3RlcDc6W10sc3RlcDg6W3tmdW5jOiJpbml0QmlydGhkYXRlQ2hhbmdlIn1dLHN0ZXA5Olt7ZnVuYzoiaW5pdEdvb2dsZUF1dG9jb21wbGV0ZSJ9XSxzdGVwMjc6W3tmdW5jOiJpbml0R29vZ2xlQXV0b2NvbXBsZXRlMiJ9XSxzdGVwMTM6W3tmdW5jOiJpbml0R29vZ2xlQXV0b2NvbXBsZXRlRW1wbG95ZXIifV0sc3RlcDU6W3tmdW5jOiJpbml0U2VsZWN0TXVsdGlEZWFsZXIifV0sc3RlcDE5Olt7ZnVuYzoicGhvbmVTdGVwVmlld2VkVHJhY2sifSx7ZnVuYzoiaW5pdFBob25lIn1dLHN0ZXAyNDpbe2Z1bmM6ImluaXRWZWhpY2xlU2VsZWN0aW9uIn1dLHN0ZXAyNTpbe2Z1bmM6ImluaXRDYWxjdWxhdG9yIn1dLHN0ZXAyNjpbe2Z1bmM6ImluaXRDb25zZW50In1dLApzdGVwMjk6W3tmdW5jOiJpbml0R29vZ2xlQXV0b2NvbXBsZXRlRW1wbG95ZXIyIn1dLHN0ZXAzMDpbe2Z1bmM6ImluaXRWV0NvbnNlbnQifV0sc3RlcDEyOlZ9LG5vQ29uZmlybUJ1dHRvblN0ZXBzOk0sc2hvd0Vycm9yOiEwLHNlY29uZENoYW5jZVN0ZXBUb1NraXA6WzEsMiwzLDYsN10sb3B0aW9uYWxTdGVwOm9wdGlvbmFsU3RlcHN9fSxtZXRob2RzOntuZXh0OmZ1bmN0aW9uKGMpe2N8fCh0aGlzLnNob3dFcnJvcj0hMCx0aGlzLmZvcm1kYXRhLmluaXRpYWxUaXRsZVNob3c9ITEsdGhpcy5wdXNoUGFydGlhbD0hMCk7aWYodGhpcy52YWxpZGF0aW9uUnVsZXMuaGFzT3duUHJvcGVydHkoInN0ZXAiK3RoaXMuc3RlcCkpZm9yKHZhciBkPTA7ZDx0aGlzLnZhbGlkYXRpb25SdWxlc1sic3RlcCIrdGhpcy5zdGVwXS5sZW5ndGg7ZCsrKWlmKGtbdGhpcy52YWxpZGF0aW9uUnVsZXNbInN0ZXAiK3RoaXMuc3RlcF1bZF0uZnVuY10odGhpcy5mb3JtZGF0YVt0aGlzLnZhbGlkYXRpb25SdWxlc1sic3RlcCIrCnRoaXMuc3RlcF1bZF0udmFsdWVdKSkkKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV9lcnJvciIsYikuaHRtbCgiIiksJCgnW25hbWU9IicrdGhpcy52YWxpZGF0aW9uUnVsZXNbInN0ZXAiK3RoaXMuc3RlcF1bZF0udmFsdWUrJyJdJyxiKS5jc3MoImJvcmRlci1jb2xvciIsIiIpO2Vsc2V7dGhpcy5zaG93RXJyb3ImJigkKCIjIit0aGlzLnZhbGlkYXRpb25SdWxlc1sic3RlcCIrdGhpcy5zdGVwXVtkXS52YWx1ZSsiRXJyb3JNc2ciLGIpLmxlbmd0aCYmJCgiI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm1fZXJyb3IiLGIpLmh0bWwoJCgiIyIrdGhpcy52YWxpZGF0aW9uUnVsZXNbInN0ZXAiK3RoaXMuc3RlcF1bZF0udmFsdWUrIkVycm9yTXNnIixiKS52YWwoKSksJCgnW25hbWU9IicrdGhpcy52YWxpZGF0aW9uUnVsZXNbInN0ZXAiK3RoaXMuc3RlcF1bZF0udmFsdWUrJyJdJyxiKS5jc3MoImJvcmRlci1jb2xvciIsInZhcigtLWxhYmVsLXJlcXVpcmVkLWNvbG9yKSIpKTtyZXR1cm59Zm9yKHRoaXMuc2hvd0Vycm9yPQohMTtrLmlzTmV4dFN0ZXBGaWxsZWQoKTspO2lmKDIxIT10aGlzLnN0ZXApezQ9PXRoaXMuc3RlcCYmIiIhPWEuZm9ybWRhdGEuZW1haWxBZGRyZXNzJiZrLmVtYWlsUHJvdmlkZWRUcmFjaygpOzE5PT10aGlzLnN0ZXAmJiIiIT1hLmZvcm1kYXRhLnBob25lTnVtYmVyJiZrLnBob25lUHJvdmlkZWRUcmFjaygpO2lmKDk9PXRoaXMuc3RlcCl0cnl7dmFyIGU9JCgnI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gaW5wdXRbbmFtZT0iYWRkcmVzcyJdJyxiKSxmPWUuZ29vZ2xlUGxhY2VzKCJnZXRBZGRyZXNzIiksZz0idW5kZWZpbmVkIiE9PXR5cGVvZiBmLnBvc3RhbC5sb25nX25hbWU\/Zi5wb3N0YWwubG9uZ19uYW1lOmUudmFsKCk7ZW1haWxIYW5kbGVyLnVzZXJQb3N0YWw9ZzsidW5kZWZpbmVkIiE9dHlwZW9mIGFjdGl2ZVVzZXJQcm9maWxlTW5nJiYidW5kZWZpbmVkIiE9dHlwZW9mIGFjdGl2ZVVzZXJQcm9maWxlTW5nLmxvZ1BhZ2VWaWV3RXZlbnQmJiIiIT1nJiYoInVuZGVmaW5lZCIhPT0KdHlwZW9mIGRlYnVnJiZkZWJ1ZygiTG9nIEV2ZW50IixnLCJVc2VyRm9ybS5wb3N0YWwiKSxhY3RpdmVVc2VyUHJvZmlsZU1uZy5sb2dQYWdlVmlld0V2ZW50KGcsIlVzZXJGb3JtLnBvc3RhbCIpKX1jYXRjaChsKXtjb25zb2xlLmxvZyhsKX00PD10aGlzLnN0ZXAmJiF0aGlzLmNvbnZlcnNpb25TdWJtaXR0ZWQmJih0aGlzLmNvbnZlcnNpb25TdWJtaXR0ZWQ9ITAsZD0kKCIjZmluYW5jZU11bHRpc3RlcFBvcHVwQ29udGFpbmVyX2NvbmZpcm0iKSwwPT09ZC5sZW5ndGgmJihkPSQoIiNnZW5lcmljX2Zvcm1fY29uZmlybSIpKSxkLmZpbmQoJ2lucHV0W25hbWU9ImxlYWRUeXBlIl0nKS52YWwoJCh0aGlzLmNvbnRleHQpLmZpbmQoIi5lbWFpbFN1YmplY3QiKS50ZXh0KCkucmVwbGFjZSgvW1xuXHJdL2csIiAiKSksZC5maW5kKCdpbnB1dFtuYW1lPSJsZWFkX2RlcGFydG1lbnQiXScpLnZhbCgiRklOQU5DRSIpLGQuZmluZCgnaW5wdXRbbmFtZT0icGFnZUlEIl0nKS52YWwoJCgiI1BBR0VJRCIpLnZhbCgpKSwKZC5maW5kKCdpbnB1dFtuYW1lPSJjdXJyZW50VVJMIl0nKS52YWwod2luZG93LmxvY2F0aW9uLmhyZWYpLGQuZmluZCgnaW5wdXRbbmFtZT0iaXNGdWxsV2lkdGgiXScpLnZhbCgkKCIjaXNGdWxsV2lkdGhQYWdlTmV3VkRQIikudmFsKCkpLGQuZmluZCgnaW5wdXRbbmFtZT0iZGVhbGVyTmFtZSJdJykudmFsKCQoIiNuZXdWRFBEZWFsZXJOYW1lIikudmFsKCkpLGQuZmluZCgnaW5wdXRbbmFtZT0iYnV0dG9uUG9zaXRpb24iXScpLnZhbCgkKCIjbmV3VkRQQnV0dG9uUG9zaXRpb24iKS52YWwoKSksZC5maW5kKCdpbnB1dFtuYW1lPSJpc01vYmlsZU5ld1ZEUCJdJykudmFsKCQoIiNpc21vYmlsZSIpLnZhbCgpKSxkLnRyaWdnZXIoInN1Ym1pdCIpLCJmdW5jdGlvbiI9PT10eXBlb2Ygd2luZG93LnRyYWNrQ29udmVyc2lvbiYmd2luZG93LnRyYWNrQ29udmVyc2lvbigpKTswIT10aGlzLnN0ZXAmJih0aGlzLnNob3dJY29uPSExKTt0aGlzLnN0ZXA9dGhpcy5uZXh0U3RlcDtsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgiZmluYW5jZV9tdWx0aXN0ZXAubGFzdF9zdGVwIik7CmN8fChhLmZpcnN0U3RlcD9hLmZpcnN0U3RlcD0hMTprLnN0ZXBUcmlnZ2VyKCEwKSk7KCIiIT10aGlzLmZvcm1kYXRhLmVtYWlsQWRkcmVzcyYmKCIwIj09JCgiI0ZJTkFOQ0VfTVVMVElTVEVQX1BIT05FX1BPU0lUSU9OX0NIRUNLIikudmFsKCl8fCJhZnRlciI9PSQoIiNGSU5BTkNFX01VTFRJU1RFUF9QSE9ORV9QT1NJVElPTl9TRUxFQ1QiKS52YWwoKSl8fCIiIT10aGlzLmZvcm1kYXRhLnBob25lTnVtYmVyJiYiMSI9PSQoIiNGSU5BTkNFX01VTFRJU1RFUF9QSE9ORV9QT1NJVElPTl9DSEVDSyIpLnZhbCgpJiYiYmVmb3JlIj09JCgiI0ZJTkFOQ0VfTVVMVElTVEVQX1BIT05FX1BPU0lUSU9OX1NFTEVDVCIpLnZhbCgpKSYmay5tdWx0aURlYWxlckZvcm1TdGF0dXMoKSYmdGhpcy5wdXNoUGFydGlhbCYmKCIxIj09JCgiI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gI09QRU5FREZST01JTUFHRVBPUFVQIixiKS52YWwoKT8kKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAjT1BFTkVERlJPTUlNQUdFUE9QVVAiLApiKS52YWwoIjAiKTprLnB1c2hEYXRhVG9TZXJ2ZXIoKSk7ay5zZXRDbGllbnRTdG9yYWdlRGF0YVZhbHVlcygpO3RoaXMubmV4dFN0ZXA9dGhpcy5uZXh0U3RlcERlZmF1bHRWYWx1ZXNbInN0ZXAiK3RoaXMuc3RlcF07MDw9dGhpcy5vcHRpb25hbFN0ZXAuaW5kZXhPZihhLnN0ZXApPyQoIiNmaW5hbmNlX211bHRpc3RlcF9mb3JtX25leHRfYnRuIGJ1dHRvbiIsYikuYWRkQ2xhc3MoImlzVmFsaWQiKTokKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV9uZXh0X2J0biBidXR0b24iLGIpLnJlbW92ZUNsYXNzKCJpc1ZhbGlkIik7ay5vblNob3dGdW5jdGlvblRvUnVuKCk7MDw9dGhpcy5ub0NvbmZpcm1CdXR0b25TdGVwcy5pbmRleE9mKHRoaXMuc3RlcCk\/KCQoIiNmaW5hbmNlX211bHRpc3RlcF9mb3JtX25leHRfYnRuIixiKS5oaWRlKCksJCgiI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0iLGIpLm9mZigiY2xpY2subm9CdXR0b24iLCJpbnB1dFt0eXBlPXJhZGlvXSIpLCQoIiNmaW5hbmNlX211bHRpc3RlcF9mb3JtIiwKYikub24oImNsaWNrLm5vQnV0dG9uIiwiaW5wdXRbdHlwZT1yYWRpb10iLGZ1bmN0aW9uKCl7c2V0VGltZW91dChmdW5jdGlvbigpe2EubmV4dCgpfSwxRTMpfSkpOigkKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV9uZXh0X2J0biIsYikuc2hvdygpLCQoIiNmaW5hbmNlX211bHRpc3RlcF9mb3JtIixiKS5vZmYoImNsaWNrLm5vQnV0dG9uIiwiaW5wdXRbdHlwZT1yYWRpb10iKSk7ImRvbmUiPT10aGlzLnN0ZXAmJigiMSI9PXg\/IjEiPT1GP2suY3JlZGl0QXBwU3VtaXNzaW9uKCk6ay5yb3V0ZU9uZUNhbGwoKTprLnNlbmRFbWFpbCgpKX19LGdldExpbmVhcnN0ZXA6ZnVuY3Rpb24oYyl7dmFyIGQ9bG9jYWxTdG9yYWdlLmdldEl0ZW0oImZpbmFuY2VfbXVsdGlzdGVwLmxpbmVhcl9zdGVwIik7ZD1wYXJzZUludChkP2Q6MCk7aWYoMD09ZHx8aXNOYU4oZCkpZD0xO2MmJihkKz0xLGxvY2FsU3RvcmFnZS5zZXRJdGVtKCJmaW5hbmNlX211bHRpc3RlcC5saW5lYXJfc3RlcCIsZCkpO3JldHVybiBkfX19KSwKdz0iRU5HTElTSCI9PSQoIiNhY3RpdmVzaXRlbGFuZ3VhZ2UiKS52YWwoKT8iZW4iOiJmciIsSj1lbWFpbEhhbmRsZXIuZ2V0SnNvbk9iamVjdCgpO3o9d2luZG93LmxvY2F0aW9uO3ZhciBRPXoucHJvdG9jb2wrIi8vIit6Lmhvc3Qsaz17aXNOZXh0U3RlcEZpbGxlZDpmdW5jdGlvbigpe2lmKCIxIj09eCYmIjEiPT1GJiZbMTksNCwzMF0uaW5jbHVkZXMoYS5uZXh0U3RlcCkpcmV0dXJuITE7aWYoIjEiPT11JiYwPD1hLnNlY29uZENoYW5jZVN0ZXBUb1NraXAuaW5kZXhPZihhLm5leHRTdGVwKSlyZXR1cm4gYS5uZXh0U3RlcD1hLm5leHRTdGVwRGVmYXVsdFZhbHVlc1sic3RlcCIrYS5uZXh0U3RlcF0sITA7aWYoKCIxIj09dXx8IjEiPT14KSYmMDw9YS5vcHRpb25hbFN0ZXAuaW5kZXhPZihhLm5leHRTdGVwKSlyZXR1cm4hMTtpZihhLnZhbGlkYXRpb25SdWxlcy5oYXNPd25Qcm9wZXJ0eSgic3RlcCIrYS5uZXh0U3RlcCkpe2Zvcih2YXIgYz0wO2M8YS52YWxpZGF0aW9uUnVsZXNbInN0ZXAiKwphLm5leHRTdGVwXS5sZW5ndGg7YysrKWlmKCFrW2EudmFsaWRhdGlvblJ1bGVzWyJzdGVwIithLm5leHRTdGVwXVtjXS5mdW5jXShhLmZvcm1kYXRhW2EudmFsaWRhdGlvblJ1bGVzWyJzdGVwIithLm5leHRTdGVwXVtjXS52YWx1ZV0pKXJldHVybiExO2EubmV4dFN0ZXA9YS5uZXh0U3RlcERlZmF1bHRWYWx1ZXNbInN0ZXAiK2EubmV4dFN0ZXBdO3JldHVybiEwfX0sdmFsaWRhdGVOb3RFbXB0eTpmdW5jdGlvbihjKXtyZXR1cm4iIiE9YyYmInVuZGVmaW5lZCIhPT10eXBlb2YgY30sdmFsaWRhdGVOYW1lOmZ1bmN0aW9uKCl7dmFyIGM9L15bQS16XHUwMEJGLVx1MUZGRlx1MkMwMC1cdUQ3RkYgJy1dKyQvO2xldCBkPWMudGVzdChhLmZvcm1kYXRhLmZpcnN0TmFtZSk7Yz1jLnRlc3QoYS5mb3JtZGF0YS5sYXN0TmFtZSk7ZCYmYz8oJCgnW25hbWU9ImZpcnN0TmFtZSJdJyxiKS5jc3MoImJvcmRlci1jb2xvciIsIiIpLCQoJ1tuYW1lPSJmaXJzdE5hbWUiXScsYikuY3NzKCJib3JkZXItYm90dG9tLXdpZHRoIiwKIiIpLCQoJ1tuYW1lPSJsYXN0TmFtZSJdJyxiKS5jc3MoImJvcmRlci1jb2xvciIsIiIpLCQoJ1tuYW1lPSJsYXN0TmFtZSJdJyxiKS5jc3MoImJvcmRlci1ib3R0b20td2lkdGgiLCIiKSwkKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV9lcnJvciIsYikuaHRtbCgiIikpOihkfHwoJCgnW25hbWU9ImZpcnN0TmFtZSJdJyxiKS5jc3MoImJvcmRlci1jb2xvciIsIiNjODNlM2UiKSwkKCdbbmFtZT0iZmlyc3ROYW1lIl0nLGIpLmNzcygiYm9yZGVyLWJvdHRvbS13aWR0aCIsIjVweCIpKSxjfHwoJCgnW25hbWU9Imxhc3ROYW1lIl0nLGIpLmNzcygiYm9yZGVyLWNvbG9yIiwiI2M4M2UzZSIpLCQoJ1tuYW1lPSJsYXN0TmFtZSJdJyxiKS5jc3MoImJvcmRlci1ib3R0b20td2lkdGgiLCI1cHgiKSksJCgiI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm1fZXJyb3IiLGIpLmh0bWwoJCgiI2ZpcnN0TmFtZUVycm9yTXNnIikudmFsKCkpKTtyZXR1cm4gZCYmY30sdmFsaWRhdGVJc051bWJlcjpmdW5jdGlvbihjKXtyZXR1cm4gMDw9CmN9LHZhbGlkYXRlTW9udGhseUluY29tZTpmdW5jdGlvbihjKXtyZXR1cm4gOTk5OTk5Pj1jfSx2YWxpZGF0ZU1vbnRobHlQYXltZW50OmZ1bmN0aW9uKGMpe3JldHVybiA5OTk5OT49Y30sdmFsaWRhdGVBZGRyZXNzOmZ1bmN0aW9uKGMpe3JldHVybiAwPGEuZm9ybWRhdGEuYWRkcmVzc195ZWFyc3x8MDxhLmZvcm1kYXRhLmFkZHJlc3NfbW9udGhzPyEwOiIiIT1jJiYoYz0kKCcjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSBpbnB1dFtkYXRhLWdvb2dsZS1wbGFjZXMtY3VzdG9tPSJ0cnVlIl1bbmFtZT0iYWRkcmVzcyJdJyxiKS5nb29nbGVQbGFjZXMoImdldEFkZHJlc3MiKSwiIiE9Yy5jaXR5JiYiIiE9Yy5zdHJlZXQpPyhhLmZvcm1kYXRhLnNwbGl0QWRkcmVzcz1jLCEwKTohMX0sdmFsaWRhdGVBZGRyZXNzMjpmdW5jdGlvbihjKXtyZXR1cm4gMDxhLmZvcm1kYXRhLmFkZHJlc3MyX3llYXJzfHwwPGEuZm9ybWRhdGEuYWRkcmVzczJfbW9udGhzPyEwOiIiIT1jJiYoYz0kKCcjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSBpbnB1dFtkYXRhLWdvb2dsZS1wbGFjZXMtY3VzdG9tPSJ0cnVlIl1bbmFtZT0iYWRkcmVzczIiXScsCmIpLmdvb2dsZVBsYWNlcygiZ2V0QWRkcmVzcyIpLCIiIT1jLmNpdHkmJiIiIT1jLnN0cmVldCk\/KGEuZm9ybWRhdGEuc3BsaXRBZGRyZXNzMj1jLCEwKTohMX0sdmFsaWRhdGVBZGRyZXNzRW1wbG95ZXI6ZnVuY3Rpb24oYyl7aWYoIkZJTkFOQ0VfRk9STV9FTVBMT1lNRU5UX1NUQVRVU19FTVBMT1lFRCIhPWEuZm9ybWRhdGEuZW1wbG95bWVudFN0YXR1cylyZXR1cm4hMDtpZigiIiE9Yyl7aWYoInVuZGVmaW5lZCIhPT1hLmZvcm1kYXRhLnNwbGl0QWRkcmVzc0VtcGxveWVyJiZudWxsIT09YS5mb3JtZGF0YS5zcGxpdEFkZHJlc3NFbXBsb3llciYmIm9iamVjdCI9PT10eXBlb2YgYS5mb3JtZGF0YS5zcGxpdEFkZHJlc3NFbXBsb3llciYmImNpdHkiaW4gYS5mb3JtZGF0YS5zcGxpdEFkZHJlc3NFbXBsb3llciYmIiIhPT1hLmZvcm1kYXRhLnNwbGl0QWRkcmVzc0VtcGxveWVyLmNpdHkpcmV0dXJuITA7ay5pbml0R29vZ2xlQXV0b2NvbXBsZXRlRW1wbG95ZXIoKTtjPSQoJyNmaW5hbmNlX211bHRpc3RlcF9mb3JtIGlucHV0W2RhdGEtZ29vZ2xlLXBsYWNlcy1jdXN0b209InRydWUiXVtuYW1lPSJhZGRyZXNzRW1wbG95ZXIiXScsCmIpLmdvb2dsZVBsYWNlcygiZ2V0QWRkcmVzcyIpO2lmKCIiIT1jLmNpdHkmJiIiIT1jLnN0cmVldClyZXR1cm4gYS5mb3JtZGF0YS5zcGxpdEFkZHJlc3NFbXBsb3llcj1jLCEwfXJldHVybiExfSx2YWxpZGF0ZU1vbnRobHlEaXNidXJzZW1lbnRWVzpmdW5jdGlvbihjKXtsZXQgZCxlLGY7cmV0dXJuIlFDIj09KG51bGwhPShmPW51bGw9PShkPWEuZm9ybWRhdGEuc3BsaXRBZGRyZXNzKT92b2lkIDA6bnVsbD09KGU9ZC5wcm92aW5jZSk\/dm9pZCAwOmUuc2hvcnRfbmFtZSk\/ZjokKCIjRklOQU5DRV9NVUxUSVNURVBfRGVhbGVyUHJvdmluY2UiLGIpLnZhbCgpKT8wPD1jOiEwfSx2YWxpZGF0ZUFkZHJlc3NFbXBsb3llclZXOmZ1bmN0aW9uKGMpe3ZhciBkPWEuZm9ybWRhdGEuZW1wbG95bWVudFN0YXR1cztpZigiRklOQU5DRV9GT1JNX0VNUExPWU1FTlRfU1RBVFVTX0VNUExPWUVEX0ZVTEwiIT1kJiYiRklOQU5DRV9GT1JNX0VNUExPWU1FTlRfU1RBVFVTX0VNUExPWUVEX1BBUlQiIT0KZClyZXR1cm4hMDtpZigiIiE9Yyl7aWYoInVuZGVmaW5lZCIhPT1hLmZvcm1kYXRhLnNwbGl0QWRkcmVzc0VtcGxveWVyJiZudWxsIT09YS5mb3JtZGF0YS5zcGxpdEFkZHJlc3NFbXBsb3llciYmIm9iamVjdCI9PT10eXBlb2YgYS5mb3JtZGF0YS5zcGxpdEFkZHJlc3NFbXBsb3llciYmImNpdHkiaW4gYS5mb3JtZGF0YS5zcGxpdEFkZHJlc3NFbXBsb3llciYmIiIhPT1hLmZvcm1kYXRhLnNwbGl0QWRkcmVzc0VtcGxveWVyLmNpdHkpcmV0dXJuITA7ay5pbml0R29vZ2xlQXV0b2NvbXBsZXRlRW1wbG95ZXIoKTtjPSQoJyNmaW5hbmNlX211bHRpc3RlcF9mb3JtIGlucHV0W2RhdGEtZ29vZ2xlLXBsYWNlcy1jdXN0b209InRydWUiXVtuYW1lPSJhZGRyZXNzRW1wbG95ZXIiXScsYikuZ29vZ2xlUGxhY2VzKCJnZXRBZGRyZXNzIik7aWYoIiIhPWMuY2l0eSYmIiIhPWMuc3RyZWV0KXJldHVybiBhLmZvcm1kYXRhLnNwbGl0QWRkcmVzc0VtcGxveWVyPWMsITB9cmV0dXJuITF9LHZhbGlkYXRlQWRkcmVzc0VtcGxveWVyMjpmdW5jdGlvbihjKXtpZigiIiE9CmMpe2lmKCJ1bmRlZmluZWQiIT09YS5mb3JtZGF0YS5zcGxpdEFkZHJlc3NFbXBsb3llcjImJm51bGwhPT1hLmZvcm1kYXRhLnNwbGl0QWRkcmVzc0VtcGxveWVyMiYmIm9iamVjdCI9PT10eXBlb2YgYS5mb3JtZGF0YS5zcGxpdEFkZHJlc3NFbXBsb3llcjImJiJjaXR5ImluIGEuZm9ybWRhdGEuc3BsaXRBZGRyZXNzRW1wbG95ZXIyJiYiIiE9PWEuZm9ybWRhdGEuc3BsaXRBZGRyZXNzRW1wbG95ZXIyLmNpdHkpcmV0dXJuITA7ay5pbml0R29vZ2xlQXV0b2NvbXBsZXRlRW1wbG95ZXIyKCk7Yz0kKCcjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSBpbnB1dFtkYXRhLWdvb2dsZS1wbGFjZXMtY3VzdG9tPSJ0cnVlIl1bbmFtZT0iYWRkcmVzc0VtcGxveWVyMiJdJyxiKS5nb29nbGVQbGFjZXMoImdldEFkZHJlc3MiKTtpZigiIiE9Yy5jaXR5JiYiIiE9Yy5zdHJlZXQpcmV0dXJuIGEuZm9ybWRhdGEuc3BsaXRBZGRyZXNzRW1wbG95ZXIyPWMsITB9cmV0dXJuITF9LHZhbGlkYXRlU3RhdHVzVGltZTpmdW5jdGlvbihjKXtpZigiIiE9CmMmJjEwPT1jLmxlbmd0aClyZXR1cm4gYz1jLnNwbGl0KCIvIiksbmV3IERhdGUoK2NbMl0sY1sxXS0xLCtjWzBdKTxuZXcgRGF0ZX0sdmFsaWRhdGVFbXBsb3ltZW50QWRkZWRJbmZvOmZ1bmN0aW9uKGMpe3ZhciBkPWEuZm9ybWRhdGEuZW1wbG95bWVudFN0YXR1cztyZXR1cm4iRklOQU5DRV9GT1JNX0VNUExPWU1FTlRfU1RBVFVTX0VNUExPWUVEIj09ZHx8IkZJTkFOQ0VfRk9STV9FTVBMT1lNRU5UX1NUQVRVU19TRUxGRU1QTE9ZRUQiPT1kfHwiRklOQU5DRV9GT1JNX0VNUExPWU1FTlRfU1RBVFVTX1NUVURFTlQiPT1kfHwiRklOQU5DRV9GT1JNX0VNUExPWU1FTlRfU1RBVFVTX09USEVSIj09ZD8iIiE9PWMmJiJ1bmRlZmluZWQiIT09dHlwZW9mIGM6ITB9LHZhbGlkYXRlRW1wbG95bWVudEFkZGVkSW5mb1ZXOmZ1bmN0aW9uKGMpe3ZhciBkPWEuZm9ybWRhdGEuZW1wbG95bWVudFN0YXR1cztyZXR1cm4iRklOQU5DRV9GT1JNX0VNUExPWU1FTlRfU1RBVFVTX0VNUExPWUVEX0ZVTEwiPT0KZHx8IkZJTkFOQ0VfRk9STV9FTVBMT1lNRU5UX1NUQVRVU19FTVBMT1lFRF9QQVJUIj09ZHx8IkZJTkFOQ0VfRk9STV9FTVBMT1lNRU5UX1NUQVRVU19TRUxGRU1QTE9ZRUQiPT1kPyIiIT09YyYmInVuZGVmaW5lZCIhPT10eXBlb2YgYzohMH0sdmFsaWRhdGVFbXBsb3llckluZm86ZnVuY3Rpb24oKXtyZXR1cm4iRklOQU5DRV9GT1JNX0VNUExPWU1FTlRfU1RBVFVTX0VNUExPWUVEIj09YS5mb3JtZGF0YS5lbXBsb3ltZW50U3RhdHVzPyIiIT09YS5mb3JtZGF0YS5lbXBsb3llck5hbWUmJiJ1bmRlZmluZWQiIT09dHlwZW9mIGEuZm9ybWRhdGEuZW1wbG95ZXJOYW1lJiZrLnZhbGlkYXRlUGhvbmVOdW1iZXJFbXBsb3llcihhLmZvcm1kYXRhLmVtcGxveWVyUGhvbmUpOiEwfSx2YWxpZGF0ZUVtcGxveWVySW5mb1ZXOmZ1bmN0aW9uKCl7dmFyIGM9YS5mb3JtZGF0YS5lbXBsb3ltZW50U3RhdHVzO3JldHVybiJGSU5BTkNFX0ZPUk1fRU1QTE9ZTUVOVF9TVEFUVVNfRU1QTE9ZRURfRlVMTCI9PQpjfHwiRklOQU5DRV9GT1JNX0VNUExPWU1FTlRfU1RBVFVTX0VNUExPWUVEX1BBUlQiPT1jPyIiIT09YS5mb3JtZGF0YS5lbXBsb3llck5hbWUmJiJ1bmRlZmluZWQiIT09dHlwZW9mIGEuZm9ybWRhdGEuZW1wbG95ZXJOYW1lJiZrLnZhbGlkYXRlUGhvbmVOdW1iZXJFbXBsb3llcihhLmZvcm1kYXRhLmVtcGxveWVyUGhvbmUpOiEwfSx2YWxpZGF0ZUVtcGxveWVySW5mbzI6ZnVuY3Rpb24oKXtyZXR1cm4iIiE9PWEuZm9ybWRhdGEuZW1wbG95ZXJOYW1lMiYmInVuZGVmaW5lZCIhPT10eXBlb2YgYS5mb3JtZGF0YS5lbXBsb3llck5hbWUyJiZrLnZhbGlkYXRlUGhvbmVOdW1iZXJFbXBsb3llcjIoYS5mb3JtZGF0YS5lbXBsb3llclBob25lMil9LHZhbGlkYXRlRW1haWw6ZnVuY3Rpb24oYyl7JC52YWxpZGl0eS5zZXR1cCh7b3V0cHV0TW9kZToiY3NzT25seSIsc2Nyb2xsVG86ITF9KS5zdGFydCgpOyQoIiNmaW5hbmNlX211bHRpc3RlcF9mb3JtIixiKS5maW5kKCdpbnB1dFtuYW1lPSJlbWFpbEFkZHJlc3MiXScpLnZhbGlkRW1haWxBZGRyZXNzKCk7CnJldHVybiAkLnZhbGlkaXR5LmVuZCgpLnZhbGlkfSx2YWxpZGF0ZUJpcnRoZGF0ZTpmdW5jdGlvbigpe3ZhciBjPWEuZm9ybWRhdGEuYmlydGhkYXRlWWVhcixkPWEuZm9ybWRhdGEuYmlydGhkYXRlTW9udGgsZT1hLmZvcm1kYXRhLmJpcnRoZGF0ZURheTtpZigzMTxlfHwxMjxkfHwxOTAwPmN8fDA+PWV8fDA+PWR8fCIiPT1jfHwiIj09ZHx8IiI9PWV8fDQ+Yy5sZW5ndGgpcmV0dXJuITE7Yz0xODw9ay5jYWxjdWxhdGVBZ2UobmV3IERhdGUoYyxkLTEsZSksbmV3IERhdGUpO2Euc2hvd0Vycm9yJiYoYz8kKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV9lcnJvciIsYikuaHRtbCgiIik6JCgiI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm1fZXJyb3IiLGIpLmh0bWwoJCgiI2JpcnRoZGF0ZUVycm9yTXNnIikudmFsKCkpKTtyZXR1cm4gY30sY2FsY3VsYXRlQWdlOmZ1bmN0aW9uKGMsZCl7dmFyIGU9ZC5nZXRGdWxsWWVhcigpLGY9ZC5nZXRNb250aCgpO2Q9ZC5nZXREYXRlKCk7dmFyIGc9Yy5nZXRGdWxsWWVhcigpLApsPWMuZ2V0TW9udGgoKTtjPWMuZ2V0RGF0ZSgpO2UtPWc7Zi09bDtpZigwPmZ8fDA9PWYmJjA+ZC1jKWU9cGFyc2VJbnQoZSktMTtyZXR1cm4gZX0saGFzVXNlcjpmdW5jdGlvbigpe3JldHVybiEhbG9jYWxTdG9yYWdlLmdldEl0ZW0oImZpbmFuY2VfbXVsdGlzdGVwX2Zvcm1fdXNlcklkIil9LHVzZXJJZDpmdW5jdGlvbihjKXtjJiYoLTE9PWM\/KGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCJmaW5hbmNlX211bHRpc3RlcF9mb3JtX3VzZXJJZCIpLGEudXNlcklkPSExKToobG9jYWxTdG9yYWdlLnNldEl0ZW0oImZpbmFuY2VfbXVsdGlzdGVwX2Zvcm1fdXNlcklkIixjKSxhLnVzZXJJZD1jKSk7YS51c2VySWR8fChhLnVzZXJJZD1sb2NhbFN0b3JhZ2UuZ2V0SXRlbSgiZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV91c2VySWQiKSk7cmV0dXJuIGEudXNlcklkfSxwdXNoRGF0YVRvU2VydmVyOmZ1bmN0aW9uKCl7aWYoIWEuYWpheFByb2Nlc3Mpe2EuYWpheFByb2Nlc3M9ITA7ay5zZXRUcmFkZUluKCk7CnZhciBjPWEuZm9ybWRhdGEsZD1hLnN0ZXAsZT0kKGIpLmZpbmQoIi5lbWFpbFN1YmplY3QiKSxmPSQoYikuZmluZCgiLmVtYWlsQm9keSIpO2U9ZS50ZXh0KCk\/ZS50ZXh0KCk6IiI7Zj1mLmh0bWwoKT9mLmh0bWwoKToiIjt2YXIgZz0kKCIjY3VycmVudFN0YXR1cyIpLnZhbCgpO2VtYWlsSGFuZGxlci5ib2R5PWY7ZW1haWxIYW5kbGVyLnN1YmplY3Q9ZTtrLnNldEVtYWlsSGFuZGxlclNlbmQoKTtlbWFpbEhhbmRsZXIubWFpbElEPSJDcmVkaXRNdWx0aXN0ZXBSZXF1ZXN0IjsiMSI9PXUmJihlbWFpbEhhbmRsZXIubWFpbElEPSJDcmVkaXRNdWx0aXN0ZXBSZXF1ZXN0Mm5kQ2hhbmNlIik7IjEiPT14JiYoZW1haWxIYW5kbGVyLm1haWxJRD0iQ3JlZGl0TXVsdGlzdGVwUmVxdWVzdEluc3RhbnQiKTtlbWFpbEhhbmRsZXIuZGVwYXJ0bWVudD0iRklOQU5DRSI7ZW1haWxIYW5kbGVyLmlzbW9iaWxlc2l0ZT0xPT0kKCIjaXNtb2JpbGUiKS52YWwoKT8iWUVTIjoiTk8iO2VtYWlsSGFuZGxlci5jb25kaXRpb249CiJ1bmRlZmluZWQiPT10eXBlb2YgZz8idXNlZCI6Zy50b0xvd2VyQ2FzZSgpO2VtYWlsSGFuZGxlci5jcmVkaXREYXRhPWM7Sj1lbWFpbEhhbmRsZXIuZ2V0SnNvbk9iamVjdCgpOyQuYWpheCh7dXJsOiIvIit3KyIvYWpheC9zZXRGaW5hbmNlTXVsdGlzdGVwRGF0YT93c3dpZHRoPTAiLGRhdGFUeXBlOiJKU09OIix0eXBlOiJQT1NUIixkYXRhOnt1c2VySWQ6ay51c2VySWQoKSxmb3JtZGF0YTpjLHN0ZXA6ZCxkb21haW46USxzaXRlSWQ6JCgiI3NpdGVJRCIpLnZhbCgpfHwkKCIjdG9wc2l0ZWlkIikudmFsKCksbGFuZzokKCIjYWN0aXZlc2l0ZWxhbmd1YWdlIikudmFsKCksZW1haWxIYW5kbGVySnNvbk9iamVjdDpKU09OLnN0cmluZ2lmeShKKX0sc3VjY2VzczpmdW5jdGlvbihsKXtsLklEJiZsLmlkQ2hhbmdlZCYmay51c2VySWQobC5JRCl9LGNvbXBsZXRlOmZ1bmN0aW9uKGwpe2EuYWpheFByb2Nlc3M9ITF9fSl9fSxvblNob3dGdW5jdGlvblRvUnVuOmZ1bmN0aW9uKCl7aWYoYS5vblNob3dGdW5jdGlvbi5oYXNPd25Qcm9wZXJ0eSgic3RlcCIrCmEuc3RlcCkmJiJ1bmRlZmluZWQiIT10eXBlb2YgYS5vblNob3dGdW5jdGlvblsic3RlcCIrYS5zdGVwXS5sZW5ndGgpZm9yKHZhciBjPTA7YzxhLm9uU2hvd0Z1bmN0aW9uWyJzdGVwIithLnN0ZXBdLmxlbmd0aDtjKyspa1thLm9uU2hvd0Z1bmN0aW9uWyJzdGVwIithLnN0ZXBdW2NdLmZ1bmNdKCl9LGluaXRHb29nbGVBdXRvY29tcGxldGU6ZnVuY3Rpb24oKXt2YXIgYz0kKCcjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSBpbnB1dFtkYXRhLWdvb2dsZS1wbGFjZXMtY3VzdG9tPSJ0cnVlIl1bbmFtZT0iYWRkcmVzcyJdJyxiKVswXSxkPW5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKCl7ZC5kaXNjb25uZWN0KCk7JCgnI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gaW5wdXRbZGF0YS1nb29nbGUtcGxhY2VzLWN1c3RvbT0idHJ1ZSJdW25hbWU9ImFkZHJlc3MiXScsYikuYXR0cigiYXV0b2NvbXBsZXRlIiwibmV3LXBhc3N3b3JkIil9KTtkLm9ic2VydmUoYyx7YXR0cmlidXRlczohMCwKYXR0cmlidXRlRmlsdGVyOlsiYXV0b2NvbXBsZXRlIl19KTtjPSQoIiNGSU5BTkNFX01VTFRJU1RFUF9kZWFsZXJMYXQiKS52YWwoKTt2YXIgZT0kKCIjRklOQU5DRV9NVUxUSVNURVBfZGVhbGVyTG9uZyIpLnZhbCgpO2M9e2xhdDpjLGxvbmc6ZSxyYWRpdXM6MkU1fTskKCcjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSBpbnB1dFtkYXRhLWdvb2dsZS1wbGFjZXMtY3VzdG9tPSJ0cnVlIl1bbmFtZT0iYWRkcmVzcyJdJyxiKS5nb29nbGVQbGFjZXMoYyl9LGluaXRHb29nbGVBdXRvY29tcGxldGUyOmZ1bmN0aW9uKCl7dmFyIGM9JCgnI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gaW5wdXRbZGF0YS1nb29nbGUtcGxhY2VzLWN1c3RvbT0idHJ1ZSJdW25hbWU9ImFkZHJlc3MyIl0nLGIpWzBdLGQ9bmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24oKXtkLmRpc2Nvbm5lY3QoKTskKCcjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSBpbnB1dFtkYXRhLWdvb2dsZS1wbGFjZXMtY3VzdG9tPSJ0cnVlIl1bbmFtZT0iYWRkcmVzczIiXScsCmIpLmF0dHIoImF1dG9jb21wbGV0ZSIsIm5ldy1wYXNzd29yZCIpfSk7ZC5vYnNlcnZlKGMse2F0dHJpYnV0ZXM6ITAsYXR0cmlidXRlRmlsdGVyOlsiYXV0b2NvbXBsZXRlIl19KTtjPSQoIiNGSU5BTkNFX01VTFRJU1RFUF9kZWFsZXJMYXQiKS52YWwoKTt2YXIgZT0kKCIjRklOQU5DRV9NVUxUSVNURVBfZGVhbGVyTG9uZyIpLnZhbCgpO2M9e2xhdDpjLGxvbmc6ZSxyYWRpdXM6MkU1fTskKCcjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSBpbnB1dFtkYXRhLWdvb2dsZS1wbGFjZXMtY3VzdG9tPSJ0cnVlIl1bbmFtZT0iYWRkcmVzczIiXScsYikuZ29vZ2xlUGxhY2VzKGMpfSxpbml0R29vZ2xlQXV0b2NvbXBsZXRlRW1wbG95ZXI6ZnVuY3Rpb24oKXt2YXIgYz0kKCcjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSBpbnB1dFtkYXRhLWdvb2dsZS1wbGFjZXMtY3VzdG9tPSJ0cnVlIl1bbmFtZT0iYWRkcmVzc0VtcGxveWVyIl0nLGIpWzBdLGQ9bmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24oKXtkLmRpc2Nvbm5lY3QoKTsKJCgnI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gaW5wdXRbZGF0YS1nb29nbGUtcGxhY2VzLWN1c3RvbT0idHJ1ZSJdW25hbWU9ImFkZHJlc3NFbXBsb3llciJdJyxiKS5hdHRyKCJhdXRvY29tcGxldGUiLCJuZXctcGFzc3dvcmQiKX0pO2Qub2JzZXJ2ZShjLHthdHRyaWJ1dGVzOiEwLGF0dHJpYnV0ZUZpbHRlcjpbImF1dG9jb21wbGV0ZSJdfSk7Yz0kKCIjRklOQU5DRV9NVUxUSVNURVBfZGVhbGVyTGF0IikudmFsKCk7dmFyIGU9JCgiI0ZJTkFOQ0VfTVVMVElTVEVQX2RlYWxlckxvbmciKS52YWwoKTtjPXtsYXQ6Yyxsb25nOmUscmFkaXVzOjJFNX07JCgnI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gaW5wdXRbZGF0YS1nb29nbGUtcGxhY2VzLWN1c3RvbT0idHJ1ZSJdW25hbWU9ImFkZHJlc3NFbXBsb3llciJdJyxiKS5nb29nbGVQbGFjZXMoYyl9LGluaXRHb29nbGVBdXRvY29tcGxldGVFbXBsb3llcjI6ZnVuY3Rpb24oKXt2YXIgYz0kKCcjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSBpbnB1dFtkYXRhLWdvb2dsZS1wbGFjZXMtY3VzdG9tPSJ0cnVlIl1bbmFtZT0iYWRkcmVzc0VtcGxveWVyMiJdJywKYilbMF0sZD1uZXcgTXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbigpe2QuZGlzY29ubmVjdCgpOyQoJyNmaW5hbmNlX211bHRpc3RlcF9mb3JtIGlucHV0W2RhdGEtZ29vZ2xlLXBsYWNlcy1jdXN0b209InRydWUiXVtuYW1lPSJhZGRyZXNzRW1wbG95ZXIyIl0nLGIpLmF0dHIoImF1dG9jb21wbGV0ZSIsIm5ldy1wYXNzd29yZCIpfSk7ZC5vYnNlcnZlKGMse2F0dHJpYnV0ZXM6ITAsYXR0cmlidXRlRmlsdGVyOlsiYXV0b2NvbXBsZXRlIl19KTtjPSQoIiNGSU5BTkNFX01VTFRJU1RFUF9kZWFsZXJMYXQiKS52YWwoKTt2YXIgZT0kKCIjRklOQU5DRV9NVUxUSVNURVBfZGVhbGVyTG9uZyIpLnZhbCgpO2M9e2xhdDpjLGxvbmc6ZSxyYWRpdXM6MkU1fTskKCcjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSBpbnB1dFtkYXRhLWdvb2dsZS1wbGFjZXMtY3VzdG9tPSJ0cnVlIl1bbmFtZT0iYWRkcmVzc0VtcGxveWVyMiJdJyxiKS5nb29nbGVQbGFjZXMoYyl9LGluaXRCaXJ0aGRhdGVDaGFuZ2U6ZnVuY3Rpb24oKXskKCIuZmluYW5jZV9tdWx0aXN0ZXBfYmlydGhkYXRlX2lucHV0X2RpdiBpbnB1dCIpLm9uKCJrZXl1cCIsCmZ1bmN0aW9uKCl7JCh0aGlzKS52YWwoKS5sZW5ndGg9PSQodGhpcykuYXR0cigibWF4bGVuZ3RoIikmJiQodGhpcykucGFyZW50KCkubmV4dCgiLmZpbmFuY2VfbXVsdGlzdGVwX2JpcnRoZGF0ZV9pbnB1dF9kaXYiKS5maW5kKCJpbnB1dCIpLnRyaWdnZXIoImZvY3VzIil9KX0sdmFsaWRhdGVOb3RFbXB0eUVtcGxveWVyU3RhdHVzVGltZTpmdW5jdGlvbigpe2lmKDcwPGEuZm9ybWRhdGEuZW1wbG95bWVudFN0YXR1c1llYXIpcmV0dXJuIGEuc2hvd0Vycm9yJiYoJCgnW25hbWU9ImVtcGxveW1lbnRTdGF0dXNZZWFyIl0nKS5jc3MoImJvcmRlci1jb2xvciIsIiNjODNlM2UiKSwkKCdbbmFtZT0iZW1wbG95bWVudFN0YXR1c1llYXIiXScpLmNzcygiYm9yZGVyLWJvdHRvbS13aWR0aCIsIjVweCIpLCQoIiNmaW5hbmNlX211bHRpc3RlcF9mb3JtX2Vycm9yIixiKS5odG1sKCQoIiNhZGRyZXNzVGltZXNFcnJvck1zZyIpLnZhbCgpKSksITE7aWYoMTI8YS5mb3JtZGF0YS5lbXBsb3ltZW50U3RhdHVzTW9udGgpcmV0dXJuIGEuc2hvd0Vycm9yJiYKKCQoJ1tuYW1lPSJlbXBsb3ltZW50U3RhdHVzTW9udGgiXScpLmNzcygiYm9yZGVyLWNvbG9yIiwiI2M4M2UzZSIpLCQoJ1tuYW1lPSJlbXBsb3ltZW50U3RhdHVzTW9udGgiXScpLmNzcygiYm9yZGVyLWJvdHRvbS13aWR0aCIsIjVweCIpLCQoIiNmaW5hbmNlX211bHRpc3RlcF9mb3JtX2Vycm9yIixiKS5odG1sKCQoIiNhZGRyZXNzVGltZXNFcnJvck1zZyIpLnZhbCgpKSksITE7aWYoMD49YS5mb3JtZGF0YS5lbXBsb3ltZW50U3RhdHVzWWVhciYmMD49YS5mb3JtZGF0YS5lbXBsb3ltZW50U3RhdHVzTW9udGgpcmV0dXJuIGEuc2hvd0Vycm9yJiYoJCgnW25hbWU9ImVtcGxveW1lbnRTdGF0dXNZZWFyIl0nKS5jc3MoImJvcmRlci1jb2xvciIsIiNjODNlM2UiKSwkKCdbbmFtZT0iZW1wbG95bWVudFN0YXR1c01vbnRoIl0nKS5jc3MoImJvcmRlci1jb2xvciIsIiNjODNlM2UiKSwkKCdbbmFtZT0iZW1wbG95bWVudFN0YXR1c1llYXIiXScpLmNzcygiYm9yZGVyLWJvdHRvbS13aWR0aCIsCiI1cHgiKSwkKCdbbmFtZT0iZW1wbG95bWVudFN0YXR1c01vbnRoIl0nKS5jc3MoImJvcmRlci1ib3R0b20td2lkdGgiLCI1cHgiKSwkKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV9lcnJvciIsYikuaHRtbCgkKCIjYWRkcmVzc1RpbWVzRXJyb3JNc2ciKS52YWwoKSkpLCExO2Euc2hvd0Vycm9yJiYoJCgnW25hbWU9ImVtcGxveW1lbnRTdGF0dXNZZWFyIl0nKS5jc3MoImJvcmRlci1jb2xvciIsIiIpLCQoJ1tuYW1lPSJlbXBsb3ltZW50U3RhdHVzTW9udGgiXScpLmNzcygiYm9yZGVyLWNvbG9yIiwiIiksJCgnW25hbWU9ImVtcGxveW1lbnRTdGF0dXNZZWFyIl0nKS5jc3MoImJvcmRlci1ib3R0b20td2lkdGgiLCIiKSwkKCdbbmFtZT0iZW1wbG95bWVudFN0YXR1c01vbnRoIl0nKS5jc3MoImJvcmRlci1ib3R0b20td2lkdGgiLCIiKSwkKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV9lcnJvciIsYikuaHRtbCgiIikpOyIxIj09eCYmKDYwPjEyKnBhcnNlSW50KGEuZm9ybWRhdGEuZW1wbG95bWVudFN0YXR1c1llYXIpKwpwYXJzZUludChhLmZvcm1kYXRhLmVtcGxveW1lbnRTdGF0dXNNb250aCk\/YS5uZXh0U3RlcERlZmF1bHRWYWx1ZXMuc3RlcDE3PTI5OmEubmV4dFN0ZXBEZWZhdWx0VmFsdWVzLnN0ZXAxNz0yMik7cmV0dXJuITB9LHZhbGlkYXRlTm90RW1wdHlFbXBsb3llclN0YXR1c1RpbWVWVzpmdW5jdGlvbigpe2lmKCJGSU5BTkNFX0ZPUk1fRU1QTE9ZTUVOVF9TVEFUVVNfVU5FTVBMT1lFRCI9PWEuZm9ybWRhdGEuZW1wbG95bWVudFN0YXR1c3x8IkZJTkFOQ0VfRk9STV9FTVBMT1lNRU5UX1NUQVRVU19TVFVERU5UIj09YS5mb3JtZGF0YS5lbXBsb3ltZW50U3RhdHVzfHwiRklOQU5DRV9GT1JNX0VNUExPWU1FTlRfU1RBVFVTX1JFVElSRUQiPT1hLmZvcm1kYXRhLmVtcGxveW1lbnRTdGF0dXMpcmV0dXJuITA7aWYoNzA8YS5mb3JtZGF0YS5lbXBsb3ltZW50U3RhdHVzWWVhcilyZXR1cm4gYS5zaG93RXJyb3ImJigkKCdbbmFtZT0iZW1wbG95bWVudFN0YXR1c1llYXIiXScpLmNzcygiYm9yZGVyLWNvbG9yIiwKIiNjODNlM2UiKSwkKCdbbmFtZT0iZW1wbG95bWVudFN0YXR1c1llYXIiXScpLmNzcygiYm9yZGVyLWJvdHRvbS13aWR0aCIsIjVweCIpLCQoIiNmaW5hbmNlX211bHRpc3RlcF9mb3JtX2Vycm9yIixiKS5odG1sKCQoIiNhZGRyZXNzVGltZXNFcnJvck1zZyIpLnZhbCgpKSksITE7aWYoMTI8YS5mb3JtZGF0YS5lbXBsb3ltZW50U3RhdHVzTW9udGgpcmV0dXJuIGEuc2hvd0Vycm9yJiYoJCgnW25hbWU9ImVtcGxveW1lbnRTdGF0dXNNb250aCJdJykuY3NzKCJib3JkZXItY29sb3IiLCIjYzgzZTNlIiksJCgnW25hbWU9ImVtcGxveW1lbnRTdGF0dXNNb250aCJdJykuY3NzKCJib3JkZXItYm90dG9tLXdpZHRoIiwiNXB4IiksJCgiI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm1fZXJyb3IiLGIpLmh0bWwoJCgiI2FkZHJlc3NUaW1lc0Vycm9yTXNnIikudmFsKCkpKSwhMTtpZigwPj1hLmZvcm1kYXRhLmVtcGxveW1lbnRTdGF0dXNZZWFyJiYwPj1hLmZvcm1kYXRhLmVtcGxveW1lbnRTdGF0dXNNb250aClyZXR1cm4gYS5zaG93RXJyb3ImJgooJCgnW25hbWU9ImVtcGxveW1lbnRTdGF0dXNZZWFyIl0nKS5jc3MoImJvcmRlci1jb2xvciIsIiNjODNlM2UiKSwkKCdbbmFtZT0iZW1wbG95bWVudFN0YXR1c01vbnRoIl0nKS5jc3MoImJvcmRlci1jb2xvciIsIiNjODNlM2UiKSwkKCdbbmFtZT0iZW1wbG95bWVudFN0YXR1c1llYXIiXScpLmNzcygiYm9yZGVyLWJvdHRvbS13aWR0aCIsIjVweCIpLCQoJ1tuYW1lPSJlbXBsb3ltZW50U3RhdHVzTW9udGgiXScpLmNzcygiYm9yZGVyLWJvdHRvbS13aWR0aCIsIjVweCIpLCQoIiNmaW5hbmNlX211bHRpc3RlcF9mb3JtX2Vycm9yIixiKS5odG1sKCQoIiNhZGRyZXNzVGltZXNFcnJvck1zZyIpLnZhbCgpKSksITE7YS5zaG93RXJyb3ImJigkKCdbbmFtZT0iZW1wbG95bWVudFN0YXR1c1llYXIiXScpLmNzcygiYm9yZGVyLWNvbG9yIiwiIiksJCgnW25hbWU9ImVtcGxveW1lbnRTdGF0dXNNb250aCJdJykuY3NzKCJib3JkZXItY29sb3IiLCIiKSwkKCdbbmFtZT0iZW1wbG95bWVudFN0YXR1c1llYXIiXScpLmNzcygiYm9yZGVyLWJvdHRvbS13aWR0aCIsCiIiKSwkKCdbbmFtZT0iZW1wbG95bWVudFN0YXR1c01vbnRoIl0nKS5jc3MoImJvcmRlci1ib3R0b20td2lkdGgiLCIiKSwkKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV9lcnJvciIsYikuaHRtbCgiIikpOyIxIj09eCYmKDYwPjEyKnBhcnNlSW50KGEuZm9ybWRhdGEuZW1wbG95bWVudFN0YXR1c1llYXIpK3BhcnNlSW50KGEuZm9ybWRhdGEuZW1wbG95bWVudFN0YXR1c01vbnRoKT9hLm5leHRTdGVwRGVmYXVsdFZhbHVlcy5zdGVwMTc9Mjk6YS5uZXh0U3RlcERlZmF1bHRWYWx1ZXMuc3RlcDE3PTIyKTtyZXR1cm4hMH0sdmFsaWRhdGVOb3RFbXB0eUVtcGxveWVyU3RhdHVzVGltZTI6ZnVuY3Rpb24oKXtpZig3MDxhLmZvcm1kYXRhLmVtcGxveW1lbnRTdGF0dXNZZWFyMilyZXR1cm4gYS5zaG93RXJyb3ImJigkKCdbbmFtZT0iZW1wbG95bWVudFN0YXR1c1llYXIyIl0nKS5jc3MoImJvcmRlci1jb2xvciIsIiNjODNlM2UiKSwkKCdbbmFtZT0iZW1wbG95bWVudFN0YXR1c1llYXIyIl0nKS5jc3MoImJvcmRlci1ib3R0b20td2lkdGgiLAoiNXB4IiksJCgiI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm1fZXJyb3IiLGIpLmh0bWwoJCgiI2FkZHJlc3NUaW1lc0Vycm9yTXNnIikudmFsKCkpKSwhMTtpZigxMjxhLmZvcm1kYXRhLmVtcGxveW1lbnRTdGF0dXNNb250aDIpcmV0dXJuIGEuc2hvd0Vycm9yJiYoJCgnW25hbWU9ImVtcGxveW1lbnRTdGF0dXNNb250aDIiXScpLmNzcygiYm9yZGVyLWNvbG9yIiwiI2M4M2UzZSIpLCQoJ1tuYW1lPSJlbXBsb3ltZW50U3RhdHVzTW9udGgyIl0nKS5jc3MoImJvcmRlci1ib3R0b20td2lkdGgiLCI1cHgiKSwkKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV9lcnJvciIsYikuaHRtbCgkKCIjYWRkcmVzc1RpbWVzRXJyb3JNc2ciKS52YWwoKSkpLCExO2lmKDA+PWEuZm9ybWRhdGEuZW1wbG95bWVudFN0YXR1c1llYXIyJiYwPj1hLmZvcm1kYXRhLmVtcGxveW1lbnRTdGF0dXNNb250aDIpcmV0dXJuIGEuc2hvd0Vycm9yJiYoJCgnW25hbWU9ImVtcGxveW1lbnRTdGF0dXNZZWFyMiJdJykuY3NzKCJib3JkZXItY29sb3IiLAoiI2M4M2UzZSIpLCQoJ1tuYW1lPSJlbXBsb3ltZW50U3RhdHVzTW9udGgyIl0nKS5jc3MoImJvcmRlci1jb2xvciIsIiNjODNlM2UiKSwkKCdbbmFtZT0iZW1wbG95bWVudFN0YXR1c1llYXIyIl0nKS5jc3MoImJvcmRlci1ib3R0b20td2lkdGgiLCI1cHgiKSwkKCdbbmFtZT0iZW1wbG95bWVudFN0YXR1c01vbnRoMiJdJykuY3NzKCJib3JkZXItYm90dG9tLXdpZHRoIiwiNXB4IiksJCgiI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm1fZXJyb3IiLGIpLmh0bWwoJCgiI2FkZHJlc3NUaW1lc0Vycm9yTXNnIikudmFsKCkpKSwhMTthLnNob3dFcnJvciYmKCQoJ1tuYW1lPSJlbXBsb3ltZW50U3RhdHVzWWVhcjIiXScpLmNzcygiYm9yZGVyLWNvbG9yIiwiIiksJCgnW25hbWU9ImVtcGxveW1lbnRTdGF0dXNNb250aDIiXScpLmNzcygiYm9yZGVyLWNvbG9yIiwiIiksJCgnW25hbWU9ImVtcGxveW1lbnRTdGF0dXNZZWFyMiJdJykuY3NzKCJib3JkZXItYm90dG9tLXdpZHRoIiwiIiksJCgnW25hbWU9ImVtcGxveW1lbnRTdGF0dXNNb250aDIiXScpLmNzcygiYm9yZGVyLWJvdHRvbS13aWR0aCIsCiIiKSwkKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV9lcnJvciIsYikuaHRtbCgiIikpO3JldHVybiEwfSx2YWxpZGF0ZU5vdEVtcHR5QWRkcmVzc1RpbWU6ZnVuY3Rpb24oKXtpZig3MDxhLmZvcm1kYXRhLmFkZHJlc3NfeWVhcnMpcmV0dXJuIGEuc2hvd0Vycm9yJiYoJCgnW25hbWU9ImFkZHJlc3NfeWVhcnMiXScpLmNzcygiYm9yZGVyLWNvbG9yIiwiI2M4M2UzZSIpLCQoJ1tuYW1lPSJhZGRyZXNzX3llYXJzIl0nKS5jc3MoImJvcmRlci1ib3R0b20td2lkdGgiLCI1cHgiKSwkKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV9lcnJvciIsYikuaHRtbCgkKCIjYWRkcmVzc1RpbWVzRXJyb3JNc2ciKS52YWwoKSkpLCExO2lmKDEyPGEuZm9ybWRhdGEuYWRkcmVzc19tb250aHMpcmV0dXJuIGEuc2hvd0Vycm9yJiYoJCgnW25hbWU9ImFkZHJlc3NfbW9udGhzIl0nKS5jc3MoImJvcmRlci1jb2xvciIsIiNjODNlM2UiKSwkKCdbbmFtZT0iYWRkcmVzc19tb250aHMiXScpLmNzcygiYm9yZGVyLWJvdHRvbS13aWR0aCIsCiI1cHgiKSwkKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV9lcnJvciIsYikuaHRtbCgkKCIjYWRkcmVzc1RpbWVzRXJyb3JNc2ciKS52YWwoKSkpLCExO2lmKDA+PWEuZm9ybWRhdGEuYWRkcmVzc195ZWFycyYmMD49YS5mb3JtZGF0YS5hZGRyZXNzX21vbnRocylyZXR1cm4gYS5zaG93RXJyb3ImJigkKCdbbmFtZT0iYWRkcmVzc195ZWFycyJdJykuY3NzKCJib3JkZXItY29sb3IiLCIjYzgzZTNlIiksJCgnW25hbWU9ImFkZHJlc3NfbW9udGhzIl0nKS5jc3MoImJvcmRlci1jb2xvciIsIiNjODNlM2UiKSwkKCdbbmFtZT0iYWRkcmVzc195ZWFycyJdJykuY3NzKCJib3JkZXItYm90dG9tLXdpZHRoIiwiNXB4IiksJCgnW25hbWU9ImFkZHJlc3NfbW9udGhzIl0nKS5jc3MoImJvcmRlci1ib3R0b20td2lkdGgiLCI1cHgiKSwkKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV9lcnJvciIsYikuaHRtbCgkKCIjYWRkcmVzc1RpbWVzRXJyb3JNc2ciKS52YWwoKSkpLCExO2Euc2hvd0Vycm9yJiYKKCQoJ1tuYW1lPSJhZGRyZXNzX3llYXJzIl0nKS5jc3MoImJvcmRlci1jb2xvciIsIiIpLCQoJ1tuYW1lPSJhZGRyZXNzX21vbnRocyJdJykuY3NzKCJib3JkZXItY29sb3IiLCIiKSwkKCdbbmFtZT0iYWRkcmVzc195ZWFycyJdJykuY3NzKCJib3JkZXItYm90dG9tLXdpZHRoIiwiIiksJCgnW25hbWU9ImFkZHJlc3NfbW9udGhzIl0nKS5jc3MoImJvcmRlci1ib3R0b20td2lkdGgiLCIiKSwkKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV9lcnJvciIsYikuaHRtbCgiIikpOyIxIj09eCYmKDI0PjEyKnBhcnNlSW50KGEuZm9ybWRhdGEuYWRkcmVzc195ZWFycykrcGFyc2VJbnQoYS5mb3JtZGF0YS5hZGRyZXNzX21vbnRocyk\/YS5uZXh0U3RlcERlZmF1bHRWYWx1ZXMuc3RlcDEyPTI3OmEubmV4dFN0ZXBEZWZhdWx0VmFsdWVzLnN0ZXAxMj0xMyk7cmV0dXJuITB9LHZhbGlkYXRlQ29uc2VudHM6ZnVuY3Rpb24oKXtsZXQgYyxkLGU7cmV0dXJuKCJRQyIhPShudWxsIT0oZT1udWxsPT0oYz0KYS5mb3JtZGF0YS5zcGxpdEFkZHJlc3MpP3ZvaWQgMDpudWxsPT0oZD1jLnByb3ZpbmNlKT92b2lkIDA6ZC5zaG9ydF9uYW1lKT9lOiQoIiNGSU5BTkNFX01VTFRJU1RFUF9EZWFsZXJQcm92aW5jZSIsYikudmFsKCkpfHxhLmZvcm1kYXRhLmNvbnNlbnRBY2NvdW50TW9uaXRvcmluZyYmYS5mb3JtZGF0YS5jb25zZW50Q3JlZGl0QXNzZXNzbWVudCkmJmEuZm9ybWRhdGEuY29uc2VudFZXPyEwOiExfSx2YWxpZGF0ZU5vdEVtcHR5QWRkcmVzczJUaW1lOmZ1bmN0aW9uKCl7aWYoNzA8YS5mb3JtZGF0YS5hZGRyZXNzMl95ZWFycylyZXR1cm4gYS5zaG93RXJyb3ImJigkKCdbbmFtZT0iYWRkcmVzczJfeWVhcnMiXScpLmNzcygiYm9yZGVyLWNvbG9yIiwiI2M4M2UzZSIpLCQoJ1tuYW1lPSJhZGRyZXNzMl95ZWFycyJdJykuY3NzKCJib3JkZXItYm90dG9tLXdpZHRoIiwiNXB4IiksJCgiI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm1fZXJyb3IiLGIpLmh0bWwoJCgiI2FkZHJlc3NUaW1lc0Vycm9yTXNnIikudmFsKCkpKSwKITE7aWYoMTI8YS5mb3JtZGF0YS5hZGRyZXNzMl9tb250aHMpcmV0dXJuIGEuc2hvd0Vycm9yJiYoJCgnW25hbWU9ImFkZHJlc3MyX21vbnRocyJdJykuY3NzKCJib3JkZXItY29sb3IiLCIjYzgzZTNlIiksJCgnW25hbWU9ImFkZHJlc3MyX21vbnRocyJdJykuY3NzKCJib3JkZXItYm90dG9tLXdpZHRoIiwiNXB4IiksJCgiI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm1fZXJyb3IiLGIpLmh0bWwoJCgiI2FkZHJlc3NUaW1lc0Vycm9yTXNnIikudmFsKCkpKSwhMTtpZigwPj1hLmZvcm1kYXRhLmFkZHJlc3MyX3llYXJzJiYwPj1hLmZvcm1kYXRhLmFkZHJlc3MyX21vbnRocylyZXR1cm4gYS5zaG93RXJyb3ImJigkKCdbbmFtZT0iYWRkcmVzczJfeWVhcnMiXScpLmNzcygiYm9yZGVyLWNvbG9yIiwiI2M4M2UzZSIpLCQoJ1tuYW1lPSJhZGRyZXNzMl9tb250aHMiXScpLmNzcygiYm9yZGVyLWNvbG9yIiwiI2M4M2UzZSIpLCQoJ1tuYW1lPSJhZGRyZXNzMl95ZWFycyJdJykuY3NzKCJib3JkZXItYm90dG9tLXdpZHRoIiwKIjVweCIpLCQoJ1tuYW1lPSJhZGRyZXNzMl9tb250aHMiXScpLmNzcygiYm9yZGVyLWJvdHRvbS13aWR0aCIsIjVweCIpLCQoIiNmaW5hbmNlX211bHRpc3RlcF9mb3JtX2Vycm9yIixiKS5odG1sKCQoIiNhZGRyZXNzMlRpbWVzRXJyb3JNc2ciKS52YWwoKSkpLCExO2Euc2hvd0Vycm9yJiYoJCgnW25hbWU9ImFkZHJlc3MyX3llYXJzIl0nKS5jc3MoImJvcmRlci1jb2xvciIsIiIpLCQoJ1tuYW1lPSJhZGRyZXNzMl9tb250aHMiXScpLmNzcygiYm9yZGVyLWNvbG9yIiwiIiksJCgnW25hbWU9ImFkZHJlc3MyX3llYXJzIl0nKS5jc3MoImJvcmRlci1ib3R0b20td2lkdGgiLCIiKSwkKCdbbmFtZT0iYWRkcmVzczJfbW9udGhzIl0nKS5jc3MoImJvcmRlci1ib3R0b20td2lkdGgiLCIiKSwkKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV9lcnJvciIsYikuaHRtbCgiIikpO3JldHVybiEwfSx2YWxpZGF0ZU5vdEVtcHR5TW9udGhseUluY29tZVRpbWU6ZnVuY3Rpb24oKXtpZig3MDxhLmZvcm1kYXRhLm1vbnRobHlJbmNvbWVfeWVhcnMpcmV0dXJuIGEuc2hvd0Vycm9yJiYKKCQoJ1tuYW1lPSJtb250aGx5SW5jb21lX3llYXJzIl0nKS5jc3MoImJvcmRlci1jb2xvciIsIiNjODNlM2UiKSwkKCdbbmFtZT0ibW9udGhseUluY29tZV95ZWFycyJdJykuY3NzKCJib3JkZXItYm90dG9tLXdpZHRoIiwiNXB4IiksJCgiI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm1fZXJyb3IiLGIpLmh0bWwoJCgiI21vbnRobHlJbmNvbWVUaW1lc0Vycm9yTXNnIikudmFsKCkpKSwhMTtpZigxMjxhLmZvcm1kYXRhLm1vbnRobHlJbmNvbWVfbW9udGhzKXJldHVybiBhLnNob3dFcnJvciYmKCQoJ1tuYW1lPSJtb250aGx5SW5jb21lX21vbnRocyJdJykuY3NzKCJib3JkZXItY29sb3IiLCIjYzgzZTNlIiksJCgnW25hbWU9Im1vbnRobHlJbmNvbWVfbW9udGhzIl0nKS5jc3MoImJvcmRlci1ib3R0b20td2lkdGgiLCI1cHgiKSwkKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV9lcnJvciIsYikuaHRtbCgkKCIjbW9udGhseUluY29tZVRpbWVzRXJyb3JNc2ciKS52YWwoKSkpLCExO2lmKDA+PQphLmZvcm1kYXRhLm1vbnRobHlJbmNvbWVfeWVhcnMmJjA+PWEuZm9ybWRhdGEubW9udGhseUluY29tZV9tb250aHMpcmV0dXJuIGEuc2hvd0Vycm9yJiYoJCgnW25hbWU9Im1vbnRobHlJbmNvbWVfeWVhcnMiXScpLmNzcygiYm9yZGVyLWNvbG9yIiwiI2M4M2UzZSIpLCQoJ1tuYW1lPSJtb250aGx5SW5jb21lX21vbnRocyJdJykuY3NzKCJib3JkZXItY29sb3IiLCIjYzgzZTNlIiksJCgnW25hbWU9Im1vbnRobHlJbmNvbWVfeWVhcnMiXScpLmNzcygiYm9yZGVyLWJvdHRvbS13aWR0aCIsIjVweCIpLCQoJ1tuYW1lPSJtb250aGx5SW5jb21lX21vbnRocyJdJykuY3NzKCJib3JkZXItYm90dG9tLXdpZHRoIiwiNXB4IiksJCgiI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm1fZXJyb3IiLGIpLmh0bWwoJCgiI21vbnRobHlJbmNvbWVUaW1lc0Vycm9yTXNnIikudmFsKCkpKSwhMTthLnNob3dFcnJvciYmKCQoJ1tuYW1lPSJtb250aGx5SW5jb21lX3llYXJzIl0nKS5jc3MoImJvcmRlci1jb2xvciIsCiIiKSwkKCdbbmFtZT0ibW9udGhseUluY29tZV9tb250aHMiXScpLmNzcygiYm9yZGVyLWNvbG9yIiwiIiksJCgnW25hbWU9Im1vbnRobHlJbmNvbWVfeWVhcnMiXScpLmNzcygiYm9yZGVyLWJvdHRvbS13aWR0aCIsIiIpLCQoJ1tuYW1lPSJtb250aGx5SW5jb21lX21vbnRocyJdJykuY3NzKCJib3JkZXItYm90dG9tLXdpZHRoIiwiIiksJCgiI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm1fZXJyb3IiLGIpLmh0bWwoIiIpKTtyZXR1cm4hMH0sdmFsaWRhdGVQaG9uZU51bWJlcjpmdW5jdGlvbihjKXtyZXR1cm4gYyYmKHBob25lPWMucmVwbGFjZSgiKCIsIiIpLnJlcGxhY2UoIikiLCIiKS5yZXBsYWNlKCIgIiwiIikucmVwbGFjZSgiLSIsIiIpLDEwPT1waG9uZS5sZW5ndGgpPygkLnZhbGlkaXR5LnNldHVwKHtvdXRwdXRNb2RlOiJwb3B1cCIsc2Nyb2xsVG86ITF9KS5zdGFydCgpLCQoIiNmaW5hbmNlX211bHRpc3RlcF9mb3JtIixiKS5maW5kKCdpbnB1dFtuYW1lPSJwaG9uZU51bWJlciJdJykudmFsaWRhdGVQaG9uZSgpLAokLnZhbGlkaXR5LmVuZCgpLnZhbGlkKTohMX0sdmFsaWRhdGVQaG9uZU51bWJlckVtcGxveWVyOmZ1bmN0aW9uKGMpe3JldHVybiBjJiYocGhvbmU9Yy5yZXBsYWNlKCIoIiwiIikucmVwbGFjZSgiKSIsIiIpLnJlcGxhY2UoIiAiLCIiKS5yZXBsYWNlKCItIiwiIiksMTA9PXBob25lLmxlbmd0aCk\/KCQudmFsaWRpdHkuc2V0dXAoe291dHB1dE1vZGU6InBvcHVwIixzY3JvbGxUbzohMX0pLnN0YXJ0KCksJCgiI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0iLGIpLmZpbmQoImlucHV0LmVtcGxveWVyUGhvbmUiKS52YWxpZGF0ZVBob25lKCksJC52YWxpZGl0eS5lbmQoKS52YWxpZCk6ITF9LHZhbGlkYXRlUGhvbmVOdW1iZXJFbXBsb3llcjI6ZnVuY3Rpb24oYyl7cmV0dXJuIGMmJihwaG9uZT1jLnJlcGxhY2UoIigiLCIiKS5yZXBsYWNlKCIpIiwiIikucmVwbGFjZSgiICIsIiIpLnJlcGxhY2UoIi0iLCIiKSwxMD09cGhvbmUubGVuZ3RoKT8oJC52YWxpZGl0eS5zZXR1cCh7b3V0cHV0TW9kZToicG9wdXAiLApzY3JvbGxUbzohMX0pLnN0YXJ0KCksJCgiI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0iLGIpLmZpbmQoImlucHV0LmVtcGxveWVyUGhvbmUyIikudmFsaWRhdGVQaG9uZSgpLCQudmFsaWRpdHkuZW5kKCkudmFsaWQpOiExfSx2YWxpZGF0ZVNJTjpmdW5jdGlvbihjKXtyZXR1cm4oIjEiPT11JiYiMCI9PUN8fCIxIj09eCkmJiIiPT1jJiYwPD1hLm9wdGlvbmFsU3RlcC5pbmRleE9mKDIyKXx8YyYmKHNpbj1jLnJlcGxhY2VBbGwoIiAiLCIiKSw5PT1zaW4ubGVuZ3RoKT8hMDohMX0sdmFsaWRhdGVWZWhpY2xlOmZ1bmN0aW9uKCl7dmFyIGM9ITE7c3dpdGNoKGEuY3VycmVudERlcHQpe2Nhc2UgIlVTRUQiOmM9IiIhPWEuZm9ybWRhdGEuY3VycmVudE1ha2UmJiIiIT1hLmZvcm1kYXRhLmN1cnJlbnRNb2RlbCYmIiIhPWEuZm9ybWRhdGEuY3VycmVudFllYXImJiIiIT1hLmZvcm1kYXRhLmN1cnJlbnRTdG9ja051bWJlciYmIiIhPWEuZm9ybWRhdGEuY3VycmVudFRyaW0mJiIiIT1hLmZvcm1kYXRhLmN1cnJlbnRDYXJJZDsKYnJlYWs7Y2FzZSAiTkVXSU5WIjpjPSIiIT1hLmZvcm1kYXRhLmN1cnJlbnRNYWtlJiYiIiE9YS5mb3JtZGF0YS5jdXJyZW50TW9kZWwmJiIiIT1hLmZvcm1kYXRhLmN1cnJlbnRZZWFyJiYiIiE9YS5mb3JtZGF0YS5jdXJyZW50U3RvY2tOdW1iZXImJiIiIT1hLmZvcm1kYXRhLmN1cnJlbnRUcmltJiYiIiE9YS5mb3JtZGF0YS5jdXJyZW50Q2FySWQmJiIiIT1hLmZvcm1kYXRhLmN1cnJlbnRTdHlsZWlkO2JyZWFrO2Nhc2UgIk5FVyI6Yz0iIiE9YS5mb3JtZGF0YS5jdXJyZW50TWFrZSYmIiIhPWEuZm9ybWRhdGEuY3VycmVudE1vZGVsJiYiIiE9YS5mb3JtZGF0YS5jdXJyZW50WWVhciYmIiIhPWEuZm9ybWRhdGEuY3VycmVudFN0eWxlaWQmJiIiIT1hLmZvcm1kYXRhLmN1cnJlbnRUcmltfXJldHVybiBjfSxpbml0VmVoaWNsZVNlbGVjdGlvbjpmdW5jdGlvbigpe2EuaW5pdFZlaGljbGVTZWxlY3Rpb25GaXJzdCYmKCQoJ2lucHV0W25hbWU9ImZpbmFuY2VNdWx0aXN0ZXBEZXB0Il0nLApiKS5vbigiY2hhbmdlIixmdW5jdGlvbigpe2xldCBjPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ2ZWhpY2xlU2VsZWN0aW9uV3JhcHBlciIpO2MucmVwbGFjZVdpdGgoYy5jbG9uZU5vZGUoITApKTtrLmluaXRWZWhpY2xlU2VsZWN0aW9uKCl9KSxhLmluaXRWZWhpY2xlU2VsZWN0aW9uRmlyc3Q9ITEpOyQoIiNmaW5hbmNlTXVsdGlzdGVwTWFrZSIsYikub2ZmKCJjaGFuZ2UiKTskKCIjZmluYW5jZU11bHRpc3RlcE1vZGVsIixiKS5vZmYoImNoYW5nZSIpOyQoIiNmaW5hbmNlTXVsdGlzdGVwVHJpbSIsYikub2ZmKCJjaGFuZ2UiKTsiVVNFRCI9PWEuY3VycmVudERlcHR8fCJORVdJTlYiPT1hLmN1cnJlbnREZXB0PyhtKCJuZXdpbnYiKSwkKCIjZmluYW5jZU11bHRpc3RlcE1ha2UiLGIpLm9uKCJjaGFuZ2UiLGZ1bmN0aW9uKCl7IiIhPSQoIiNmaW5hbmNlTXVsdGlzdGVwTWFrZSIsYikudmFsKCkmJihhLmZvcm1kYXRhLmN1cnJlbnRNb2RlbD0iIixhLmZvcm1kYXRhLmN1cnJlbnRNb2RlbFRleHQ9CiIiLGEuZm9ybWRhdGEuY3VycmVudFRyaW09IiIsYS5mb3JtZGF0YS5jdXJyZW50WWVhcj0iIixhLmZvcm1kYXRhLmN1cnJlbnRTdHlsZWlkPSIiLGEuZm9ybWRhdGEudmVoaWNsZVByaWNlPSIiLGEuZm9ybWRhdGEuY3VycmVudENhcklkPSIiLGEuZm9ybWRhdGEuY3VycmVudFN0b2NrTnVtYmVyPSIiLGEuZm9ybWRhdGEuY3VycmVudE1pbGVhZ2U9MTAsay5jaGVja1ZhbGlkaXR5KCksbigibmV3aW52IiwkKCIjZmluYW5jZU11bHRpc3RlcE1ha2UiLGIpLnZhbCgpKSl9KSwkKCIjZmluYW5jZU11bHRpc3RlcE1vZGVsIixiKS5vbigiY2hhbmdlIixmdW5jdGlvbigpeyIiIT0kKCIjZmluYW5jZU11bHRpc3RlcE1ha2UiLGIpLnZhbCgpJiYiIiE9JCgiI2ZpbmFuY2VNdWx0aXN0ZXBNb2RlbCIsYikudmFsKCkmJihhLmZvcm1kYXRhLmN1cnJlbnRUcmltPSIiLGEuZm9ybWRhdGEuY3VycmVudFllYXI9IiIsYS5mb3JtZGF0YS5jdXJyZW50U3R5bGVpZD0iIixhLmZvcm1kYXRhLnZlaGljbGVQcmljZT0KIiIsYS5mb3JtZGF0YS5jdXJyZW50Q2FySWQ9IiIsYS5mb3JtZGF0YS5jdXJyZW50U3RvY2tOdW1iZXI9IiIsYS5mb3JtZGF0YS5jdXJyZW50TWlsZWFnZT0xMCxrLmNoZWNrVmFsaWRpdHkoKSx2KCQoIiNmaW5hbmNlTXVsdGlzdGVwTWFrZSIsYikudmFsKCksJCgiI2ZpbmFuY2VNdWx0aXN0ZXBNb2RlbCBvcHRpb246c2VsZWN0ZWQiLGIpLmF0dHIoImRhdGEtbW9kZWwiKSkpfSksJCgiI2ZpbmFuY2VNdWx0aXN0ZXBUcmltIixiKS5vbigiY2hhbmdlIixmdW5jdGlvbigpe2EuZm9ybWRhdGEuY3VycmVudE1ha2U9JCgiI2ZpbmFuY2VNdWx0aXN0ZXBNYWtlIixiKS52YWwoKTthLmZvcm1kYXRhLmN1cnJlbnRNb2RlbD0kKCIjZmluYW5jZU11bHRpc3RlcE1vZGVsIG9wdGlvbjpzZWxlY3RlZCIsYikuYXR0cigiZGF0YS1tb2RlbCIpO2EuZm9ybWRhdGEuY3VycmVudFRyaW09JCgiI2ZpbmFuY2VNdWx0aXN0ZXBUcmltIixiKS52YWwoKTthLmZvcm1kYXRhLmN1cnJlbnRZZWFyPSQoIiNmaW5hbmNlTXVsdGlzdGVwVHJpbSBvcHRpb246c2VsZWN0ZWQiLApiKS5hdHRyKCJkYXRhLXllYXIiKTthLmZvcm1kYXRhLmN1cnJlbnRTdHlsZWlkPSQoIiNmaW5hbmNlTXVsdGlzdGVwVHJpbSBvcHRpb246c2VsZWN0ZWQiLGIpLmF0dHIoImRhdGEtc3R5bGVpZCIpO2EuZm9ybWRhdGEudmVoaWNsZVByaWNlPSQoIiNmaW5hbmNlTXVsdGlzdGVwVHJpbSBvcHRpb246c2VsZWN0ZWQiLGIpLmF0dHIoImRhdGEtcHJpY2UiKTthLmZvcm1kYXRhLmN1cnJlbnRDYXJJZD0kKCIjZmluYW5jZU11bHRpc3RlcFRyaW0gb3B0aW9uOnNlbGVjdGVkIixiKS5hdHRyKCJkYXRhLXZlaGljbGVpZCIpO2EuZm9ybWRhdGEuY3VycmVudFN0b2NrTnVtYmVyPSQoIiNmaW5hbmNlTXVsdGlzdGVwVHJpbSBvcHRpb246c2VsZWN0ZWQiLGIpLmF0dHIoImRhdGEtc3RvY2tudW1iZXIiKTthLmZvcm1kYXRhLmN1cnJlbnRNaWxlYWdlPSQoIiNmaW5hbmNlTXVsdGlzdGVwVHJpbSBvcHRpb246c2VsZWN0ZWQiLGIpLmF0dHIoImRhdGEtbWlsZWFnZSIpO3ZhciBjPSQoIiNmaW5hbmNlTXVsdGlzdGVwVHJpbSBvcHRpb246c2VsZWN0ZWQiLApiKS5hdHRyKCJkYXRhLWlzbmV3IiksZD0kKCIjZmluYW5jZU11bHRpc3RlcFRyaW0gb3B0aW9uOnNlbGVjdGVkIixiKS5hdHRyKCJkYXRhLWlzZGVtbyIpJiYiMSI9PSQoJ2lucHV0W25hbWU9IkZJTkFOQ0VfREVNT0FTTkVXIl0nLGIpLnZhbCgpO2EuY3VycmVudERlcHQ9IjEiPT1jfHxkPyJORVdJTlYiOiJVU0VEIjtrLmNoZWNrVmFsaWRpdHkoKX0pKToobShhLmN1cnJlbnREZXB0KSwkKCIjZmluYW5jZU11bHRpc3RlcE1ha2UiLGIpLm9uKCJjaGFuZ2UiLGZ1bmN0aW9uKCl7IiIhPSQoIiNmaW5hbmNlTXVsdGlzdGVwTWFrZSIsYikudmFsKCkmJihhLmZvcm1kYXRhLmN1cnJlbnRNb2RlbD0iIixhLmZvcm1kYXRhLmN1cnJlbnRNb2RlbFRleHQ9IiIsYS5mb3JtZGF0YS5jdXJyZW50WWVhcj0iIixhLmZvcm1kYXRhLmN1cnJlbnRUcmltPSIiLGEuZm9ybWRhdGEuY3VycmVudE1pbGVhZ2U9MTAsYS5mb3JtZGF0YS5jdXJyZW50U3R5bGVpZD0iIixhLmZvcm1kYXRhLnZlaGljbGVQcmljZT0KIiIsay5jaGVja1ZhbGlkaXR5KCksbihhLmN1cnJlbnREZXB0LCQoIiNmaW5hbmNlTXVsdGlzdGVwTWFrZSIsYikudmFsKCkpKX0pLCQoIiNmaW5hbmNlTXVsdGlzdGVwTW9kZWwiLGIpLm9uKCJjaGFuZ2UiLGZ1bmN0aW9uKCl7IiIhPSQoIiNmaW5hbmNlTXVsdGlzdGVwTWFrZSIsYikudmFsKCkmJiIiIT0kKCIjZmluYW5jZU11bHRpc3RlcE1vZGVsIixiKS52YWwoKSYmKGEuZm9ybWRhdGEuY3VycmVudFllYXI9IiIsYS5mb3JtZGF0YS5jdXJyZW50VHJpbT0iIixhLmZvcm1kYXRhLmN1cnJlbnRNaWxlYWdlPTEwLGEuZm9ybWRhdGEuY3VycmVudFN0eWxlaWQ9IiIsYS5mb3JtZGF0YS52ZWhpY2xlUHJpY2U9IiIsay5jaGVja1ZhbGlkaXR5KCkscigkKCIjZmluYW5jZU11bHRpc3RlcE1ha2UiLGIpLnZhbCgpLCQoIiNmaW5hbmNlTXVsdGlzdGVwTW9kZWwgb3B0aW9uOnNlbGVjdGVkIixiKS5hdHRyKCJkYXRhLW1vZGVsIiksJCgiI2ZpbmFuY2VNdWx0aXN0ZXBNb2RlbCBvcHRpb246c2VsZWN0ZWQiLApiKS5hdHRyKCJkYXRhLXllYXIiKSkpfSksJCgiI2ZpbmFuY2VNdWx0aXN0ZXBUcmltIixiKS5vbigiY2hhbmdlIixmdW5jdGlvbigpe2EuZm9ybWRhdGEuY3VycmVudE1ha2U9JCgiI2ZpbmFuY2VNdWx0aXN0ZXBNYWtlIixiKS52YWwoKTthLmZvcm1kYXRhLmN1cnJlbnRNb2RlbD0kKCIjZmluYW5jZU11bHRpc3RlcE1vZGVsIG9wdGlvbjpzZWxlY3RlZCIsYikuYXR0cigiZGF0YS1tb2RlbCIpO2EuZm9ybWRhdGEuY3VycmVudFllYXI9JCgiI2ZpbmFuY2VNdWx0aXN0ZXBNb2RlbCBvcHRpb246c2VsZWN0ZWQiLGIpLmF0dHIoImRhdGEteWVhciIpO2EuZm9ybWRhdGEuY3VycmVudFRyaW09JCgiI2ZpbmFuY2VNdWx0aXN0ZXBUcmltIixiKS52YWwoKTthLmZvcm1kYXRhLmN1cnJlbnRNaWxlYWdlPTEwO2EuZm9ybWRhdGEuY3VycmVudFN0eWxlaWQ9JCgiI2ZpbmFuY2VNdWx0aXN0ZXBUcmltIG9wdGlvbjpzZWxlY3RlZCIsYikuYXR0cigiZGF0YS1zdHlsZWlkIik7YS5mb3JtZGF0YS52ZWhpY2xlUHJpY2U9CiQoIiNmaW5hbmNlTXVsdGlzdGVwVHJpbSBvcHRpb246c2VsZWN0ZWQiLGIpLmF0dHIoImRhdGEtcHJpY2UiKTtrLmNoZWNrVmFsaWRpdHkoKX0pKX0sdmFsaWRhdGVQYXltZW50OmZ1bmN0aW9uKCl7cmV0dXJuIiIhPWEuZm9ybWRhdGEucGF5bWVudFR5cGUmJiIiIT1hLmZvcm1kYXRhLnBheW1lbnRUZXJtJiYiIiE9YS5mb3JtZGF0YS5wYXltZW50SW50ZXJ2YWwmJiIiIT1hLmZvcm1kYXRhLnBheW1lbnRWYWx1ZSYmIiIhPWEuZm9ybWRhdGEucGF5bWVudFJhdGV8fGEuZm9ybWRhdGEubm9QYXltZW50fSxpbml0Q2FsY3VsYXRvcjpmdW5jdGlvbigpe3ZhciBjPSQoImJvZHkiKS5oYXNDbGFzcygiRlJFTkNIIik\/IiBzdXIgY2UgIithLmZvcm1kYXRhLmN1cnJlbnRNYWtlKyIgIithLmZvcm1kYXRhLmN1cnJlbnRNb2RlbCsiICIrYS5mb3JtZGF0YS5jdXJyZW50WWVhcjoiIG9uIHRoaXMgIithLmZvcm1kYXRhLmN1cnJlbnRZZWFyKyIgIithLmZvcm1kYXRhLmN1cnJlbnRNYWtlKyIgIisKYS5mb3JtZGF0YS5jdXJyZW50TW9kZWw7JCgiI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLm11bHRpc3RlcFBheW1lbnRWZWhpY2xlIixiKS50ZXh0KGMpO2lmKCJORVciPT1hLmN1cnJlbnREZXB0fHwiTkVXSU5WIj09YS5jdXJyZW50RGVwdCl7JCgiI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm1fZXJyb3IiLGIpLmh0bWwoIiIpO2EuY2FsY3VsYXRvckZ1bmN0aW9ucz1uZXcgY2FsY3VsYXRvckZ1bmN0aW9ucygiIyIrYlswXS5pZCsiICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIik7Yz0iTkVXSU5WIj09YS5jdXJyZW50RGVwdDtsZXQgZT0iZmluYW5jaW5nIixmPTAsZz0wLGw9JCgnaW5wdXRbbmFtZT0iQURNSU5fU0hPV19MT1dFU1RfUEFZTUVOVF9JTlRFUlZBTCJdJykudmFsKCk7dmFyIGQ9MkU0O0Nvb2tpZXMuZ2V0KCJwYXltZW50Q2FsY3VsYXRvclNlbGVjdGVkT3B0aW9ucyIpJiYoZD1Db29raWVzLmdldCgicGF5bWVudENhbGN1bGF0b3JTZWxlY3RlZE9wdGlvbnMiKS5zcGxpdCgiLSIpLAplPSJ1bmRlZmluZWQiIT1kWzBdP2RbMF06ZSxmPWRbMV0sZz1wYXJzZUludChkWzRdKXx8MCxsPWRbMl0sZD1kWzNdKTthLmNhbGN1bGF0b3JGdW5jdGlvbnMuaW5pdChhLmZvcm1kYXRhLmN1cnJlbnRTdHlsZWlkLGUsZywwLGwsZCxjLGEuZm9ybWRhdGEuY3VycmVudFN0b2NrTnVtYmVyKTskKCJib2R5Iikub2ZmKCJjaGFuZ2UiLCIjIitiWzBdLmlkKycgI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFNlbGVjdCBpbnB1dFtuYW1lPSJzZWxlY3RlZFBheW1lbnQiXSwgIycrYlswXS5pZCsnICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRTZWxlY3QgaW5wdXRbbmFtZT0ic2VsZWN0ZWRQYXltZW50V2l0aFRheGVzIl0nKTskKCJib2R5Iikub2ZmKCJub1BheW1lbnQiLCIjIitiWzBdLmlkKyIgI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0iKTskKCJib2R5Iikub2ZmKCJwYXltZW50c1JlYWR5IiwiIyIrYlswXS5pZCsKIiAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSIpOyQoImJvZHkiKS5vbigibm9QYXltZW50IiwiIyIrYlswXS5pZCsiICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIixmdW5jdGlvbigpe2EuZm9ybWRhdGEubm9QYXltZW50PSEwO2EubmV4dCghMCl9KTskKCJib2R5Iikub24oImNoYW5nZSIsIiMiK2JbMF0uaWQrJyAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAucGF5bWVudENhbGN1bGF0b3JQYXltZW50U2VsZWN0IGlucHV0W25hbWU9InNlbGVjdGVkUGF5bWVudCJdLCAjJytiWzBdLmlkKycgI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFNlbGVjdCBpbnB1dFtuYW1lPSJzZWxlY3RlZFBheW1lbnRXaXRoVGF4ZXMiXScsZnVuY3Rpb24oKXt2YXIgcD0iZmluYW5jaW5nIj09YS5jYWxjdWxhdG9yRnVuY3Rpb25zLnBheW1lbnRUeXBlPyQoImJvZHkiKS5oYXNDbGFzcygiRlJFTkNIIik\/IkZpbmFuY2VtZW50IjoiRmluYW5jaW5nIjoibGVhc2luZyI9PQphLmNhbGN1bGF0b3JGdW5jdGlvbnMucGF5bWVudFR5cGU\/JCgiYm9keSIpLmhhc0NsYXNzKCJGUkVOQ0giKT8iTG9jYXRpb24iOiJMZWFzaW5nIjoiIjthLmZvcm1kYXRhLnBheW1lbnRUeXBlPXA7YS5mb3JtZGF0YS5wYXltZW50VHlwZVJlYWw9YS5jYWxjdWxhdG9yRnVuY3Rpb25zLnBheW1lbnRUeXBlO2EuZm9ybWRhdGEucGF5bWVudFRlcm09JCh0aGlzKS52YWwoKTthLmZvcm1kYXRhLnBheW1lbnRSYXRlVHlwZT0kKHRoaXMpLmF0dHIoImRhdGEtcmF0ZXR5cGUiKTtwPSQodGhpcykuY2xvc2VzdCgiLmZpbmFuY2VNdWx0aXN0ZXBOZXdDYWxjdWxhdG9yIikuZmluZCgnLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFNlbGVjdCBpbnB1dFtuYW1lPSJzZWxlY3RlZFBheW1lbnRXaXRoVGF4ZXMiXVt2YWx1ZT0iJythLmZvcm1kYXRhLnBheW1lbnRUZXJtKyciXVtkYXRhLXJhdGV0eXBlPSInK2EuZm9ybWRhdGEucGF5bWVudFJhdGVUeXBlKyciXScpO3ZhciBxO2EuZm9ybWRhdGEucGF5bWVudFJlc2lkdWFsVmFsdWU9Cm51bGwhPShxPXAuYXR0cigiZGF0YS1yZXNpZHVhbCIpKT9xOiQodGhpcykuYXR0cigiZGF0YS1yZXNpZHVhbCIpO3ZhciB0O2EuZm9ybWRhdGEucGF5bWVudFZhbHVlPW51bGwhPSh0PXAuYXR0cigiZGF0YS1yZWFscGF5bWVudCIpKT90OiQodGhpcykuYXR0cigiZGF0YS1yZWFscGF5bWVudCIpO3ZhciBBO2EuZm9ybWRhdGEuYmFzZXBheW1lbnQ9bnVsbCE9KEE9cC5hdHRyKCJkYXRhLWJhc2VwYXltZW50IikpP0E6JCh0aGlzKS5hdHRyKCJkYXRhLWJhc2VwYXltZW50Iik7YS5mb3JtZGF0YS5wYXltZW50VG90YWxJbmNlbnRpdmU9cC5hdHRyKCJkYXRhLXRvdGFsaW5jZW50aXZlIik7YS5mb3JtZGF0YS5wYXltZW50R1NUPXAuYXR0cigiZGF0YS1nc3QiKTthLmZvcm1kYXRhLnBheW1lbnRIU1Q9cC5hdHRyKCJkYXRhLWhzdCIpO2EuZm9ybWRhdGEucGF5bWVudFBTVD1wLmF0dHIoImRhdGEtcHN0Iik7YS5mb3JtZGF0YS52ZWhpY2xlSW5pdGlhbFByaWNlPXAuYXR0cigiZGF0YS1pbml0aWFsUHJpY2UiKTsKYS5mb3JtZGF0YS52ZWhpY2xlRmluYWxQcmljZT1wLmF0dHIoImRhdGEtZmluYWxQcmljZSIpO3ZhciBIO2EuZm9ybWRhdGEucGF5bWVudEZlZXNMaXN0PW51bGwhPShIPUpTT04ucGFyc2UoYXRvYihwLmF0dHIoImRhdGEtZmVlc0xpc3QiKSkpKT9IOltdO3E9MDtmb3IodmFyIE4gb2YgYS5mb3JtZGF0YS5wYXltZW50RmVlc0xpc3QpcSs9Ti5hbW91bnR8fDA7YS5mb3JtZGF0YS5wYXltZW50VG90YWxGZWU9cTt2YXIgSTthLmZvcm1kYXRhLnBheW1lbnRJbmNlbnRpdmVzTGlzdD1udWxsIT0oST1KU09OLnBhcnNlKGF0b2IocC5hdHRyKCJkYXRhLWluY2VudGl2ZXNMaXN0IikpKSk\/STpbXTthLmZvcm1kYXRhLnBheW1lbnREb3duUGF5bWVudD1hLmNhbGN1bGF0b3JGdW5jdGlvbnMuZG93bnBheW1lbnR8fDA7YS5mb3JtZGF0YS5wYXltZW50S21BbGxvd2FuY2U9YS5jYWxjdWxhdG9yRnVuY3Rpb25zLmttQWxsb3dhbmNlO2EuZm9ybWRhdGEucGF5bWVudEludGVydmFsPWEuY2FsY3VsYXRvckZ1bmN0aW9ucy5wYXltZW50RnJlcXVlbmN5OwphLmZvcm1kYXRhLnBheW1lbnRSYXRlPSQodGhpcykuYXR0cigiZGF0YS1yYXRlIik7YS5mb3JtZGF0YS50cmFkZUluVmFsdWU9YS5jYWxjdWxhdG9yRnVuY3Rpb25zLnRyYWRlSW5WYWx1ZTtxPShwYXJzZUludChhLmZvcm1kYXRhLnBheW1lbnREb3duUGF5bWVudCl8fDApKyhwYXJzZUludChhLmZvcm1kYXRhLnRyYWRlSW5WYWx1ZSl8fDApO0Nvb2tpZXMuc2V0KCJwYXltZW50Q2FsY3VsYXRvclNlbGVjdGVkT3B0aW9ucyIsYS5mb3JtZGF0YS5wYXltZW50VHlwZVJlYWwrIi0iK2EuZm9ybWRhdGEucGF5bWVudFRlcm0rIi0iK2EuZm9ybWRhdGEucGF5bWVudEludGVydmFsKyItIithLmZvcm1kYXRhLnBheW1lbnRLbUFsbG93YW5jZSsiLSIrcSxudWxsLCIvIik7Ik5FV0NBUlMiIT0oJCgiI3RhcmdldFBhZ2UiKS52YWwoKXx8ITEpJiYiVVNFRENBUlMiIT0oJCgiI3RhcmdldFBhZ2UiKS52YWwoKXx8ITEpJiYiZnVuY3Rpb24iPT10eXBlb2YgY2hhbmdlUGFnZVBheW1lbnRWYWx1ZSYmCihJPSQodGhpcykuYXR0cigiZGF0YS1yZWFscGF5bWVudCIpLE49JCh0aGlzKS5hdHRyKCJkYXRhLXRvdGFsaW50ZXJlc3QiKSxwPSQodGhpcykuYXR0cigiZGF0YS1sdXhlVGF4QW1vdW50IikscT1xLnRvRml4ZWQoMCksdD0kKHRoaXMpLmF0dHIoImRhdGEtcmF0ZXR5cGUiKSxBPSQodGhpcykuYXR0cigiZGF0YS1lZmZlY3RpdmVSYXRlIiksSD0kKHRoaXMpLmF0dHIoImRhdGEtdG90YWxDb3N0IiksY2hhbmdlUGFnZVBheW1lbnRWYWx1ZSh7Y3VycmVudFBheW1lbnQ6SSxjdXJyZW50UmF0ZTphLmZvcm1kYXRhLnBheW1lbnRSYXRlLHBheW1lbnRUZXJtOmEuZm9ybWRhdGEucGF5bWVudFRlcm0scGF5bWVudFR5cGU6YS5mb3JtZGF0YS5wYXltZW50VHlwZVJlYWwscGF5bWVudEludGVydmFsOmEuZm9ybWRhdGEucGF5bWVudEludGVydmFsLHBheW1lbnREb3duUGF5bWVudDpxLHRvdGFsSW50ZXJlc3Q6TixsdXhlVGF4QW1vdW50OnAscmF0ZVR5cGU6dCxlZmZlY3RpdmVSYXRlOkEsdG90YWxDb3N0Okh9KSwKJCgiIyIrYlswXS5pZCsiICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIikudHJpZ2dlcigicGF5bWVudENoYW5nZWQiKSk7ay5jaGVja1ZhbGlkaXR5KCl9KTskKCJib2R5Iikub24oInBheW1lbnRzUmVhZHkiLCIjIitiWzBdLmlkKyIgI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0iLGZ1bmN0aW9uKCl7Zj1hLmZvcm1kYXRhLnBheW1lbnRUZXJtP2EuZm9ybWRhdGEucGF5bWVudFRlcm06Zj9mOjA7MCE9ZiYmMDwkKCIjIitiWzBdLmlkKycgI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFNlbGVjdCBpbnB1dFtuYW1lPSJzZWxlY3RlZFBheW1lbnQiXVt2YWx1ZT0iJytmKyciXScpLmxlbmd0aD8kKCIjIitiWzBdLmlkKycgI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFNlbGVjdCBpbnB1dFtuYW1lPSJzZWxlY3RlZFBheW1lbnQiXVt2YWx1ZT0iJytmKyciXScpLmF0dHIoImNoZWNrZWQiLCJjaGVja2VkIikudHJpZ2dlcigiY2hhbmdlIik6CihhLmZvcm1kYXRhLnBheW1lbnRUeXBlPSIiLGEuZm9ybWRhdGEucGF5bWVudFR5cGVSZWFsPSIiLGEuZm9ybWRhdGEucGF5bWVudFRlcm09IiIsYS5mb3JtZGF0YS5wYXltZW50UmF0ZVR5cGU9IiIsYS5mb3JtZGF0YS5wYXltZW50UmVzaWR1YWxWYWx1ZT0iIixhLmZvcm1kYXRhLnBheW1lbnRWYWx1ZT0iIixhLmZvcm1kYXRhLnZlaGljbGVJbml0aWFsUHJpY2U9IiIsYS5mb3JtZGF0YS52ZWhpY2xlRmluYWxQcmljZT0iIixhLmZvcm1kYXRhLnBheW1lbnRGZWVzTGlzdD1bXSxhLmZvcm1kYXRhLnBheW1lbnRJbmNlbnRpdmVzTGlzdD1bXSxhLmZvcm1kYXRhLmJhc2VwYXltZW50PSIiLGEuZm9ybWRhdGEucGF5bWVudFRvdGFsSW5jZW50aXZlPTAsYS5mb3JtZGF0YS5wYXltZW50VG90YWxGZWU9MCxhLmZvcm1kYXRhLnBheW1lbnRHU1Q9MCxhLmZvcm1kYXRhLnBheW1lbnRIU1Q9MCxhLmZvcm1kYXRhLnBheW1lbnRQU1Q9MCxhLmZvcm1kYXRhLnBheW1lbnREb3duUGF5bWVudD0wLAphLmZvcm1kYXRhLnBheW1lbnRLbUFsbG93YW5jZT0wLGEuZm9ybWRhdGEucGF5bWVudEludGVydmFsPSIiLGEuZm9ybWRhdGEucGF5bWVudFJhdGU9IiIsYS5mb3JtZGF0YS50cmFkZUluVmFsdWU9IiIsay5jaGVja1ZhbGlkaXR5KCkpOyQoIi5maW5hbmNlTXVsdGlzdGVwTmV3Q2FsY3VsYXRvciIsYikuc2hvdygpfSk7c2V0VGltZW91dCgoKT0+e2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgQ3RhVHJhY2smJkN0YVRyYWNrLmdldFRyYWNrU3RlcCgiUGF5bWVudENhbGN1bGF0b3JBY3Rpb25Cb3giKSl7bGV0IHA9bmV3IEN1c3RvbUV2ZW50KCJ0cmFja3N0ZXAuY29tcGxldGUiLHtkZXRhaWw6e3N0ZXBJZDoiUGF5bWVudENhbGN1bGF0b3JBY3Rpb25Cb3giLGZvcmNlVXBkYXRlOiEwLG9uQ29tcGxldGU6cT0+e3EuZGF0YXNldC5jb21wbF90eHRfZnI9cS5kYXRhc2V0LmluaXRfY29tcGxfdHh0X2ZyLnJlcGxhY2UoInskUEFZTUVOVFJBVEV9IixjdGFQYXltZW50VGV4dEZyWzBdKS5yZXBsYWNlKCJ7JFBBWU1FTlRZUEV9IiwKY3RhUGF5bWVudFRleHRGclsxXSk7cS5kYXRhc2V0LmNvbXBsX3R4dF9lbj1xLmRhdGFzZXQuaW5pdF9jb21wbF90eHRfZW4ucmVwbGFjZSgieyRQQVlNRU5UUkFURX0iLGN0YVBheW1lbnRUZXh0RW5bMF0pLnJlcGxhY2UoInskUEFZTUVOVFlQRX0iLGN0YVBheW1lbnRUZXh0RW5bMV0pO3E9e3BheW1lbnQ6e319O19sb2NhbFN0b3JhZ2VHZXQoInJldGFpbF90cmFja19kYXRhIikmJihxPUpTT04ucGFyc2UoX2xvY2FsU3RvcmFnZUdldCgicmV0YWlsX3RyYWNrX2RhdGEiKSkpO2xldCB0PSJGUkVOQ0giPT09JCgiI2FjdGl2ZXNpdGVsYW5ndWFnZSIpLnZhbCgpP2N0YVBheW1lbnRUZXh0RnI6Y3RhUGF5bWVudFRleHRFbjtxLnBheW1lbnQ9e2xpc3RQcmljZTp0WzJdfHwiIixwYXltZW50OnRbMF18fCIiLHJhdGU6dFsxXXx8IiIscGF5bWVudFZhbHVlOmN0YVBheW1lbnRWYWx1ZXN8fFtdfTtfbG9jYWxTdG9yYWdlU2V0KCJyZXRhaWxfdHJhY2tfZGF0YSIsSlNPTi5zdHJpbmdpZnkocSksCjMwKTtDb29raWVzLnNldCgiY3RhX2RhdGFfdmFsaWQiLDEsMSwiLyIpfX19KTskKCIjIitiWzBdLmlkKyIgI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0iKS5vbigicGF5bWVudENoYW5nZWQiLGZ1bmN0aW9uKCl7ZG9jdW1lbnQuZGlzcGF0Y2hFdmVudChwKX0pfX0sMTAwKX1lbHNlICQoIiNmaW5hbmNlX211bHRpc3RlcF9mb3JtX2Vycm9yIixiKS5odG1sKCIiKSx5KGEuZm9ybWRhdGEuY3VycmVudENhcklkKX0saW5pdEVtYWlsOmZ1bmN0aW9uKCl7ay5jaGVja1ZhbGlkaXR5KCl9LGluaXRQaG9uZTpmdW5jdGlvbigpe2suY2hlY2tWYWxpZGl0eSgpfSxpbml0Q29uc2VudDpmdW5jdGlvbigpe2xldCBjPSIvIit3KyIvbXVsdGlzdGVwSW5zdGFudENvbnNlbnQuaHRtbCI7JCgiI2ZpbmFuY2VfbXVsdGlzdGVwX2NvbnNlbnRfdGV4dF9kaXYiLGIpLmF0dHIoInNyYyIsYyk7d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLGZ1bmN0aW9uKGQpeyhkLm9yaWdpbj13aW5kb3cubG9jYXRpb24ub3JpZ2luKSYmCiJjb25zZW50SWZyYW1lQm90dG9tIj09PWQuZGF0YSYmJCgiI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm1fbmV4dF9idXR0b25fY29uc2VudCIsYikuYWRkQ2xhc3MoImlzVmFsaWQiKX0sITEpfSxpbml0VldDb25zZW50OmZ1bmN0aW9uKCl7bGV0IGMsZCxlOyJRQyI9PShudWxsIT0oZT1udWxsPT0oYz1hLmZvcm1kYXRhLnNwbGl0QWRkcmVzcyk\/dm9pZCAwOm51bGw9PShkPWMucHJvdmluY2UpP3ZvaWQgMDpkLnNob3J0X25hbWUpP2U6JCgiI0ZJTkFOQ0VfTVVMVElTVEVQX0RlYWxlclByb3ZpbmNlIixiKS52YWwoKSk\/KCQoIi52d0NvbnNlbnREaXZzUk9DIikuaGlkZSgpLCQoIi52d0NvbnNlbnREaXZzUUMiKS5zaG93KCkpOigkKCIudndDb25zZW50RGl2c1JPQyIpLnNob3coKSwkKCIudndDb25zZW50RGl2c1FDIikuaGlkZSgpKX0saW5pdERpc2J1cnNtZW50Vlc6ZnVuY3Rpb24oKXtsZXQgYyxkLGU7IlFDIj09KG51bGwhPShlPW51bGw9PQooYz1hLmZvcm1kYXRhLnNwbGl0QWRkcmVzcyk\/dm9pZCAwOm51bGw9PShkPWMucHJvdmluY2UpP3ZvaWQgMDpkLnNob3J0X25hbWUpP2U6JCgiI0ZJTkFOQ0VfTVVMVElTVEVQX0RlYWxlclByb3ZpbmNlIixiKS52YWwoKSk\/KCQoIi5yZW50T3JPd25RdWVzdGlvblZXUUMiKS5zaG93KCksJCgiLnZ3RGlzYnVyc21lbnRRYyIpLnNob3coKSwkKCIubW9udGxoeVBheW1lbnRRdWVzdGlvbiIpLmhpZGUoKSk6KCQoIi5yZW50T3JPd25RdWVzdGlvblZXUUMiKS5oaWRlKCksJCgiLnZ3RGlzYnVyc21lbnRRYyIpLmhpZGUoKSwkKCIubW9udGxoeVBheW1lbnRRdWVzdGlvbiIpLnNob3coKSl9LHZhbGlkYXRlQ29uc2VudDpmdW5jdGlvbigpe2lmKCQoIiNmaW5hbmNlX211bHRpc3RlcF9mb3JtICNmaW5hbmNlX211bHRpc3RlcF9mb3JtX25leHRfYnV0dG9uX2NvbnNlbnQiLGIpLmhhc0NsYXNzKCJpc1ZhbGlkIikpcmV0dXJuIGEuZm9ybWRhdGEuY3JlZGl0QnVyZWF1Q3JlZGl0PSQoIiN3b3JraW5nV2hpbGVJblNjaG9vbF95ZXMiLApiKS5hdHRyKCJkYXRhLXRyYW5zbGF0ZWRWYWx1ZSIpLCEwO2EuZm9ybWRhdGEuY3JlZGl0QnVyZWF1Q3JlZGl0PSQoIiN3b3JraW5nV2hpbGVJblNjaG9vbF9ubyIsYikuYXR0cigiZGF0YS10cmFuc2xhdGVkVmFsdWUiKTtyZXR1cm4hMX0sdmFsaWRhdGVDaGVja2VkQ3JlZGl0QnVyZWF1OmZ1bmN0aW9uKGMpe2lmKCQoIiNmaW5hbmNlX211bHRpc3RlcF9mb3JtIixiKS5maW5kKCdpbnB1dFtuYW1lPSJjcmVkaXRCdXJlYXVDb25zZW50Il0nKS5pcygiOmNoZWNrZWQiKSlyZXR1cm4gYS5mb3JtZGF0YS5jcmVkaXRCdXJlYXVDcmVkaXQ9JCgiI3dvcmtpbmdXaGlsZUluU2Nob29sX3llcyIsYikuYXR0cigiZGF0YS10cmFuc2xhdGVkVmFsdWUiKSwhMDthLmZvcm1kYXRhLmNyZWRpdEJ1cmVhdUNyZWRpdD0kKCIjd29ya2luZ1doaWxlSW5TY2hvb2xfbm8iLGIpLmF0dHIoImRhdGEtdHJhbnNsYXRlZFZhbHVlIik7cmV0dXJuITF9LHZhbGlkYXRlTW9yZVRoYW5aZXJvOmZ1bmN0aW9uKGMpe3JldHVybiAwPApjfSxzZW5kRW1haWw6ZnVuY3Rpb24oKXt2YXIgYz0kKGIpLmZpbmQoIi5lbWFpbFN1YmplY3QiKSxkPSQoYikuZmluZCgiLmVtYWlsQm9keSIpO2M9Yy50ZXh0KCk\/Yy50ZXh0KCk6IiI7ZD1kLmh0bWwoKT9kLmh0bWwoKToiIjtpZihjJiZkKXt2YXIgZT0kKCdbdmFsdWU9IicrYS5mb3JtZGF0YS5lbXBsb3ltZW50U3RhdHVzKyciJykuYXR0cigiZGF0YS10cmFuc2xhdGVkVmFsdWUiKTsiIiE9YS5mb3JtZGF0YS5lbXBsb3ltZW50QWRkZWRJbmZvJiYoZSs9IiAoIithLmZvcm1kYXRhLmVtcGxveW1lbnRBZGRlZEluZm8rIikiKTtkPWQucmVwbGFjZSgieyRCT0RZVFlQRX0iLGEuZm9ybWRhdGEudmVoaWNsZVR5cGU\/JCgnW3ZhbHVlPSInK2EuZm9ybWRhdGEudmVoaWNsZVR5cGUrJyInKS5hdHRyKCJkYXRhLXRyYW5zbGF0ZWRWYWx1ZSIpOiJyZW1vdmVlbXB0eSIpO2Q9ZC5yZXBsYWNlKCJ7JFRJVExFfSIsYS5mb3JtZGF0YS50aXRsZT9hLmZvcm1kYXRhLnRpdGxlOiJyZW1vdmVlbXB0eSIpOwpkPWQucmVwbGFjZSgieyRGSVJTVE5BTUV9IixhLmZvcm1kYXRhLmZpcnN0TmFtZSk7ZD1kLnJlcGxhY2UoInskTEFTVE5BTUV9IixhLmZvcm1kYXRhLmxhc3ROYW1lKTtkPWQucmVwbGFjZSgieyRFTUFJTH0iLGEuZm9ybWRhdGEuZW1haWxBZGRyZXNzKTtkPWQucmVwbGFjZSgieyRQSE9ORU5VTUJFUn0iLGEuZm9ybWRhdGEucGhvbmVOdW1iZXIpO2Q9ZC5yZXBsYWNlKCJ7JEJJUlRIREFZfSIsYS5mb3JtZGF0YS5iaXJ0aGRhdGVEYXkrIi8iK2EuZm9ybWRhdGEuYmlydGhkYXRlTW9udGgrIi8iK2EuZm9ybWRhdGEuYmlydGhkYXRlWWVhcik7ZD1kLnJlcGxhY2UoInskQlVER0VUfSIsYS5mb3JtZGF0YS5idWRnZXQ\/JCgnW3ZhbHVlPSInK2EuZm9ybWRhdGEuYnVkZ2V0KyciJykuYXR0cigiZGF0YS10cmFuc2xhdGVkVmFsdWUiKToicmVtb3ZlZW1wdHkiKTtkPWQucmVwbGFjZSgieyRDVVJSRU5UTFlEUklWSU5HfSIsYS5mb3JtZGF0YS5jdXJyZW50bHlEcml2aW5nPyQoJ1t2YWx1ZT0iJysKYS5mb3JtZGF0YS5jdXJyZW50bHlEcml2aW5nKyciJykuYXR0cigiZGF0YS10cmFuc2xhdGVkVmFsdWUiKToicmVtb3ZlZW1wdHkiKTtkPWQucmVwbGFjZSgieyRDVVJSRU5URVNUSU1BVEVEQ1JFRElUUkFUSU5HfSIsYS5mb3JtZGF0YS5jcmVkaXRSYXRpbmc\/JCgnW3ZhbHVlPSInK2EuZm9ybWRhdGEuY3JlZGl0UmF0aW5nKyciJykuYXR0cigiZGF0YS10cmFuc2xhdGVkVmFsdWUiKToicmVtb3ZlZW1wdHkiKTtkPWQucmVwbGFjZSgieyRJTlRFUkVTVEVERE9XTk9QVElPTn0iLGEuZm9ybWRhdGEuZG93bk9wdGlvbnM\/JCgnW3ZhbHVlPSInK2EuZm9ybWRhdGEuZG93bk9wdGlvbnMrJyInKS5hdHRyKCJkYXRhLXRyYW5zbGF0ZWRWYWx1ZSIpOiJyZW1vdmVlbXB0eSIpO2Q9ZC5yZXBsYWNlKCJ7JENVUlJFTlRBRERSRVNTfSIsYS5mb3JtZGF0YS5hZGRyZXNzKTtkPWQucmVwbGFjZSgieyRDVVJSRU5UUkVTSURFTkNFVFlQRX0iLCQoJ1t2YWx1ZT0iJythLmZvcm1kYXRhLnJlbnRPck93bisKJyInKS5hdHRyKCJkYXRhLXRyYW5zbGF0ZWRWYWx1ZSIpKTtkPWQucmVwbGFjZSgieyRDVVJSRU5UT0NDVVBBVElPTkxFTkdUSH0iLGEuZm9ybWRhdGEuYWRkcmVzc195ZWFycysiICIrJCgiI0ZJTkFOQ0VfRk9STV9BRERSRVNTX1RJTUVTX1lFQVJTIikudmFsKCkrIiAiK2EuZm9ybWRhdGEuYWRkcmVzc19tb250aHMrIiAiKyQoIiNGSU5BTkNFX0ZPUk1fQUREUkVTU19USU1FU19NT05USFMiKS52YWwoKSk7dmFyIGYsZyxsLHA9bnVsbCE9KGw9bnVsbD09KGY9YS5mb3JtZGF0YS5zcGxpdEFkZHJlc3MpP3ZvaWQgMDpudWxsPT0oZz1mLnByb3ZpbmNlKT92b2lkIDA6Zy5zaG9ydF9uYW1lKT9sOiQoIiNGSU5BTkNFX01VTFRJU1RFUF9EZWFsZXJQcm92aW5jZSIsYikudmFsKCk7ZD1GJiYiUUMiPT1wP2QucmVwbGFjZSgieyRDVVJSRU5UTU9OVEhMWVJFTlR9IiwiJCIrYS5mb3JtZGF0YS5tb250aGx5UGF5bWVudCsiIC0tIERpc2J1cnNlbWVudDogJCIrYS5mb3JtZGF0YS5tb250aGx5RGlzYnVyc2VtZW50KToKZC5yZXBsYWNlKCJ7JENVUlJFTlRNT05USExZUkVOVH0iLCIkIithLmZvcm1kYXRhLm1vbnRobHlQYXltZW50KTtkPWQucmVwbGFjZSgieyRDVVJSRU5UT0NDVVBBVElPTn0iLGUpO2Q9ZC5yZXBsYWNlKCJ7JFdPUktJTkdXSElMRUlOU0NIT09MfSIsIiIhPWEuZm9ybWRhdGEud29ya2luZ1doaWxlSW5TY2hvb2w\/JCgnW3ZhbHVlPSInK2EuZm9ybWRhdGEud29ya2luZ1doaWxlSW5TY2hvb2wrJyInKS5hdHRyKCJkYXRhLXRyYW5zbGF0ZWRWYWx1ZSIpOiJyZW1vdmVlbXB0eSIpO2Q9ZC5yZXBsYWNlKCJ7JENVUlJFTlRJTkNPTUVTT1VSQ0V9IiwiIiE9YS5mb3JtZGF0YS5vdGhlckVtcGxveW1lbnRTdGF0dXM\/JCgnW3ZhbHVlPSInK2EuZm9ybWRhdGEub3RoZXJFbXBsb3ltZW50U3RhdHVzKyciJykuYXR0cigiZGF0YS10cmFuc2xhdGVkVmFsdWUiKToicmVtb3ZlZW1wdHkiKTtkPWQucmVwbGFjZSgieyRDVVJSRU5UTU9OVExZSU5DT01FfSIsIiQiK2EuZm9ybWRhdGEubW9udGhseUluY29tZSk7CmQ9ZC5yZXBsYWNlKCJ7JENVUlJFTlRNT05USExZSU5DT01FTEVOR1RIfSIsYS5mb3JtZGF0YS5tb250aGx5SW5jb21lX3llYXJzKyIgIiskKCIjRklOQU5DRV9GT1JNX01PTlRITFlfSU5DT01FX1RJTUVTX1lFQVJTIikudmFsKCkrIiAiK2EuZm9ybWRhdGEubW9udGhseUluY29tZV9tb250aHMrIiAiKyQoIiNGSU5BTkNFX0ZPUk1fTU9OVEhMWV9JTkNPTUVfVElNRVNfTU9OVEhTIikudmFsKCkpOyIiIT1hLmZvcm1kYXRhLmFkZHJlc3MyPyhkPWQucmVwbGFjZSgieyRQUkVWSU9VU0FERFJFU1N9IixhLmZvcm1kYXRhLmFkZHJlc3MyKSxkPWQucmVwbGFjZSgieyRQUkVWSU9VU09DQ1VQQVRJT05MRU5HVEh9IixhLmZvcm1kYXRhLmFkZHJlc3MyX3llYXJzKyIgIiskKCIjRklOQU5DRV9GT1JNX0FERFJFU1NfVElNRVNfWUVBUlMiKS52YWwoKSsiICIrYS5mb3JtZGF0YS5hZGRyZXNzMl9tb250aHMrIiAiKyQoIiNGSU5BTkNFX0ZPUk1fQUREUkVTU19USU1FU19NT05USFMiKS52YWwoKSksCmQ9ZC5yZXBsYWNlKCIjI1BSRVZJT1VTQUREUkVTU0lORk9TVEFSVCMjIiwiIiksZD1kLnJlcGxhY2UoIiMjUFJFVklPVVNBRERSRVNTSU5GT0VORCMjIiwiIikpOmQ9ZC5yZXBsYWNlKC8jI1BSRVZJT1VTQUREUkVTU0lORk9TVEFSVCMjW1xzXFNdKiMjUFJFVklPVVNBRERSRVNTSU5GT0VORCMjLywiIik7ZD1kLnJlcGxhY2UoInskQ1VSUkVOVE1BS0V9IiwiIiE9YS5mb3JtZGF0YS5jdXJyZW50TWFrZT9hLmZvcm1kYXRhLmN1cnJlbnRNYWtlOiJyZW1vdmVlbXB0eSIpO2Q9ZC5yZXBsYWNlKCJ7JENVUlJFTlRNT0RFTH0iLCIiIT1hLmZvcm1kYXRhLmN1cnJlbnRNb2RlbD9hLmZvcm1kYXRhLmN1cnJlbnRNb2RlbDoicmVtb3ZlZW1wdHkiKTtkPWQucmVwbGFjZSgieyRDVVJSRU5UWUVBUn0iLCIiIT1hLmZvcm1kYXRhLmN1cnJlbnRZZWFyP2EuZm9ybWRhdGEuY3VycmVudFllYXI6InJlbW92ZWVtcHR5Iik7ZD1kLnJlcGxhY2UoInskQ1VSUkVOVFNUT0NLTlVNQkVSfSIsIiIhPWEuZm9ybWRhdGEuY3VycmVudFN0b2NrTnVtYmVyPwphLmZvcm1kYXRhLmN1cnJlbnRTdG9ja051bWJlcjoicmVtb3ZlZW1wdHkiKTtkPWQucmVwbGFjZSgieyRjcmVkaXRCdXJlYXVDcmVkaXR9IiwiIiE9YS5mb3JtZGF0YS5jcmVkaXRCdXJlYXVDcmVkaXQ\/YS5mb3JtZGF0YS5jcmVkaXRCdXJlYXVDcmVkaXQ6Ik5PIik7ZD1kLnJlcGxhY2UoInskU0lOfSIsIiIhPWEuZm9ybWRhdGEuU0lOP2EuZm9ybWRhdGEuU0lOOiJyZW1vdmVlbXB0eSIpO2Q9ZC5yZXBsYWNlKCJ7JEFEREVESU5GT30iLCIiIT1hLmZvcm1kYXRhLmFkZGVkSW5mbz9hLmZvcm1kYXRhLmFkZGVkSW5mbzoicmVtb3ZlZW1wdHkiKTtkPWQucmVwbGFjZSgieyRFTVBMT1lFUn0iLCIiIT1hLmZvcm1kYXRhLmVtcGxveWVyTmFtZT9hLmZvcm1kYXRhLmVtcGxveWVyTmFtZToicmVtb3ZlZW1wdHkiKTtkPWQucmVwbGFjZSgieyRFTVBMT1lFUlBIT05FfSIsIiIhPWEuZm9ybWRhdGEuZW1wbG95ZXJQaG9uZT9hLmZvcm1kYXRhLmVtcGxveWVyUGhvbmU6InJlbW92ZWVtcHR5Iik7CmQ9ZC5yZXBsYWNlKCJ7JEVNUExPWUVNRU5UU1RBVFVTVElNRX0iLGEuZm9ybWRhdGEuZW1wbG95bWVudFN0YXR1c1llYXIrIiAiKyQoIiNGSU5BTkNFX0ZPUk1fTU9OVEhMWV9JTkNPTUVfVElNRVNfWUVBUlMiKS52YWwoKSsiICIrYS5mb3JtZGF0YS5lbXBsb3ltZW50U3RhdHVzTW9udGgrIiAiKyQoIiNGSU5BTkNFX0ZPUk1fTU9OVEhMWV9JTkNPTUVfVElNRVNfTU9OVEhTIikudmFsKCkpO2Q9ZC5yZXBsYWNlKCJ7JEVNUExPWUVSQUREUkVTU30iLCIiIT1hLmZvcm1kYXRhLmFkZHJlc3NFbXBsb3llcj9hLmZvcm1kYXRhLmFkZHJlc3NFbXBsb3llcjoicmVtb3ZlZW1wdHkiKTtkPWQucmVwbGFjZSgieyRDT05TRU5UQUNDT1VOVE1PTklUT1JJTkd9IiwiIiE9YS5mb3JtZGF0YS5jb25zZW50QWNjb3VudE1vbml0b3Jpbmc\/MT09YS5mb3JtZGF0YS5jb25zZW50QWNjb3VudE1vbml0b3Jpbmc\/IllFUyI6Ik5PIjoicmVtb3ZlZW1wdHkiKTtkPWQucmVwbGFjZSgieyRDT05TRU5UQ1JFRElUQVNTRVNTTUVOVH0iLAoiIiE9YS5mb3JtZGF0YS5jb25zZW50Q3JlZGl0QXNzZXNzbWVudD8xPT1hLmZvcm1kYXRhLmNvbnNlbnRDcmVkaXRBc3Nlc3NtZW50PyJZRVMiOiJOTyI6InJlbW92ZWVtcHR5Iik7ZD1kLnJlcGxhY2UoInskQ09OU0VOVFBJUEVEQX0iLCIiIT1hLmZvcm1kYXRhLmNvbnNlbnRQaXBlZGE\/MT09YS5mb3JtZGF0YS5jb25zZW50UGlwZWRhPyJZRVMiOiJOTyI6InJlbW92ZWVtcHR5Iik7ZD1kLnJlcGxhY2UoInskQ09OU0VOVENBU0x9IiwiIiE9YS5mb3JtZGF0YS5jb25zZW50Q2FzbD8xPT1hLmZvcm1kYXRhLmNvbnNlbnRDYXNsPyJZRVMiOiJOTyI6InJlbW92ZWVtcHR5Iik7IiIhPWEuZm9ybWRhdGEuZW1wbG95ZXJOYW1lMj8oZj0kKCdbdmFsdWU9IkZJTkFOQ0VfRk9STV9FTVBMT1lNRU5UX1NUQVRVU19FTVBMT1lFRCJdJykuYXR0cigiZGF0YS10cmFuc2xhdGVkVmFsdWUiKSwiIiE9YS5mb3JtZGF0YS5lbXBsb3ltZW50QWRkZWRJbmZvMiYmKGYrPSIgKCIrYS5mb3JtZGF0YS5lbXBsb3ltZW50QWRkZWRJbmZvMisKIikiKSxkPWQucmVwbGFjZSgieyRQUkVWSU9VU09DQ1VQQVRJT059IixmKSxkPWQucmVwbGFjZSgieyRQUkVWSU9VU0VNUExPWUVSfSIsIiIhPWEuZm9ybWRhdGEuZW1wbG95ZXJOYW1lMj9hLmZvcm1kYXRhLmVtcGxveWVyTmFtZTI6InJlbW92ZWVtcHR5IiksZD1kLnJlcGxhY2UoInskUFJFVklPVVNFTVBMT1lFUlBIT05FfSIsIiIhPWEuZm9ybWRhdGEuZW1wbG95ZXJQaG9uZTI\/YS5mb3JtZGF0YS5lbXBsb3llclBob25lMjoicmVtb3ZlZW1wdHkiKSxkPWQucmVwbGFjZSgieyRQUkVWSU9VU0VNUExPWUVNRU5UU1RBVFVTVElNRX0iLGEuZm9ybWRhdGEuZW1wbG95bWVudFN0YXR1c1llYXIyKyIgIiskKCIjRklOQU5DRV9GT1JNX01PTlRITFlfSU5DT01FX1RJTUVTX1lFQVJTIikudmFsKCkrIiAiK2EuZm9ybWRhdGEuZW1wbG95bWVudFN0YXR1c01vbnRoMisiICIrJCgiI0ZJTkFOQ0VfRk9STV9NT05USExZX0lOQ09NRV9USU1FU19NT05USFMiKS52YWwoKSksZD1kLnJlcGxhY2UoInskUFJFVklPVVNFTVBMT1lFUkFERFJFU1N9IiwKIiIhPWEuZm9ybWRhdGEuYWRkcmVzc0VtcGxveWVyMj9hLmZvcm1kYXRhLmFkZHJlc3NFbXBsb3llcjI6InJlbW92ZWVtcHR5IiksZD1kLnJlcGxhY2UoIiMjUFJFVklPVVNPQ0NVUEFUSU9OU1RBUlQjIyIsIiIpLGQ9ZC5yZXBsYWNlKCIjI1BSRVZJT1VTT0NDVVBBVElPTkVORCMjIiwiIikpOmQ9ZC5yZXBsYWNlKC8jI1BSRVZJT1VTT0NDVVBBVElPTlNUQVJUIyNbXHNcU10qIyNQUkVWSU9VU09DQ1VQQVRJT05FTkQjIy8sIiIpO2Q9ZC5yZXBsYWNlKCJ7JFBBWU1FTlRUWVBFfSIsIiIhPWEuZm9ybWRhdGEucGF5bWVudFR5cGU\/YS5mb3JtZGF0YS5wYXltZW50VHlwZToicmVtb3ZlZW1wdHkiKTtkPWQucmVwbGFjZSgieyRQQVlNRU5UVEVSTX0iLCIiIT1hLmZvcm1kYXRhLnBheW1lbnRUZXJtP2EuZm9ybWRhdGEucGF5bWVudFRlcm06InJlbW92ZWVtcHR5Iik7ZD1kLnJlcGxhY2UoInskUEFZTUVOVERPV05QQVlNRU5UfSIsIiIhPWEuZm9ybWRhdGEucGF5bWVudERvd25QYXltZW50PwphLmZvcm1kYXRhLnBheW1lbnREb3duUGF5bWVudDoicmVtb3ZlZW1wdHkiKTtkPWQucmVwbGFjZSgieyRQQVlNRU5USU5URVJWQUx9IiwiIiE9YS5mb3JtZGF0YS5wYXltZW50SW50ZXJ2YWw\/YS5mb3JtZGF0YS5wYXltZW50SW50ZXJ2YWw6InJlbW92ZWVtcHR5Iik7ZD1kLnJlcGxhY2UoInskUEFZTUVOVEtNQUxMT1dBTkNFfSIsIiIhPWEuZm9ybWRhdGEucGF5bWVudEttQWxsb3dhbmNlP2EuZm9ybWRhdGEucGF5bWVudEttQWxsb3dhbmNlOiJyZW1vdmVlbXB0eSIpO2Q9ZC5yZXBsYWNlKCJ7JFBBWU1FTlRWQUxVRX0iLCIiIT1hLmZvcm1kYXRhLnBheW1lbnRWYWx1ZT9hLmZvcm1kYXRhLnBheW1lbnRWYWx1ZToicmVtb3ZlZW1wdHkiKTtkPWQucmVwbGFjZSgieyRQQVlNRU5UUkFURX0iLCIiIT1hLmZvcm1kYXRhLnBheW1lbnRSYXRlP2EuZm9ybWRhdGEucGF5bWVudFJhdGU6InJlbW92ZWVtcHR5Iik7ZD1kLnJlcGxhY2UoInskTk9QQVlNRU5UfSIsYS5mb3JtZGF0YS5ub1BheW1lbnQ\/CiIiOiJyZW1vdmVlbXB0eSIpO2Q9ZC5yZXBsYWNlKCJ7JENSRURJVERFQ0lTSU9OfSIsYS5jcmVkaXREZWNpc2lvbkhUTUw\/YS5jcmVkaXREZWNpc2lvbkhUTUw6InJlbW92ZWVtcHR5Iik7IiIhPWEuZm9ybWRhdGEudHJhZGVJblZhbHVlPyhkPWQucmVwbGFjZSgieyRUUkFERU1BS0V9IixhLmZvcm1kYXRhLnRyYWRlSW5NYWtlKSxkPWQucmVwbGFjZSgieyRUUkFERU1PREVMfSIsYS5mb3JtZGF0YS50cmFkZUluTW9kZWwpLGQ9ZC5yZXBsYWNlKCJ7JFRSQURFWUVBUn0iLGEuZm9ybWRhdGEudHJhZGVJblRyaW0pLGQ9ZC5yZXBsYWNlKCJ7JFRSQURFVFJJTX0iLGEuZm9ybWRhdGEudHJhZGVJblllYXIpLGQ9ZC5yZXBsYWNlKCJ7JFRSQURFVkFMVUV9IixhLmZvcm1kYXRhLnRyYWRlSW5WYWx1ZSksZD1kLnJlcGxhY2UoIiMjVFJBREVJTklORk9TVEFSVCMjIiwiIiksZD1kLnJlcGxhY2UoIiMjVFJBREVJTklORk9FTkQjIyIsIiIpKTpkPWQucmVwbGFjZSgvIyNUUkFERUlOSU5GT1NUQVJUIyNbXHNcU10qIyNUUkFERUlOSU5GT0VORCMjLywKIiIpO2Q9ay5lbWFpbEJvZHlGb3JNdWx0aURlYWxlcihkKTtib2R5TG93ZXI9ZC50b0xvd2VyQ2FzZSgpO2ZvcihmPTA7LTE8Ym9keUxvd2VyLmluZGV4T2YoInJlbW92ZWVtcHR5Iik7KXtwb3M9Ym9keUxvd2VyLmluZGV4T2YoInJlbW92ZWVtcHR5Iik7aWYoLTE9PXBvcylicmVhaztycGxFbmQ9Ym9keUxvd2VyLmluZGV4T2YoIjxicj4iLHBvcyk7cnBsU3RhcnQ9Ym9keUxvd2VyLmxhc3RJbmRleE9mKCI8YnI+Iixwb3MpO2lmKC0xPT1ycGxFbmR8fC0xPT1ycGxTdGFydClicmVhaztycGxTdHJpbmc9ZC5zdWJzdHJpbmcocnBsU3RhcnQscnBsRW5kKTtkPWQucmVwbGFjZShycGxTdHJpbmcsIiIpO2JvZHlMb3dlcj1kLnRvTG93ZXJDYXNlKCk7ZisrO2lmKDUwPGYpYnJlYWt9ZW1haWxIYW5kbGVyLnN1YmplY3Q9YztlbWFpbEhhbmRsZXIuYm9keT1kO2suc2V0RW1haWxIYW5kbGVyU2VuZCgpO2VtYWlsSGFuZGxlci5tYWlsSUQ9IkNyZWRpdE11bHRpc3RlcFJlcXVlc3QiOyIxIj09CnUmJihlbWFpbEhhbmRsZXIubWFpbElEPSJDcmVkaXRNdWx0aXN0ZXBSZXF1ZXN0Mm5kQ2hhbmNlIik7IjEiPT14JiYoZW1haWxIYW5kbGVyLm1haWxJRD0iQ3JlZGl0TXVsdGlzdGVwUmVxdWVzdEluc3RhbnQiKTtlbWFpbEhhbmRsZXIuZGVwYXJ0bWVudD0iRklOQU5DRSI7ZW1haWxIYW5kbGVyLmlzbW9iaWxlc2l0ZT0xPT0kKCIjaXNtb2JpbGUiKT8iWUVTIjoiTk8iO2VtYWlsSGFuZGxlci51c2VyRW1haWw9YS5mb3JtZGF0YS5lbWFpbEFkZHJlc3M7ZW1haWxIYW5kbGVyLnVzZXJGaXJzdE5hbWU9YS5mb3JtZGF0YS5maXJzdE5hbWU7ZW1haWxIYW5kbGVyLnVzZXJMYXN0TmFtZT1hLmZvcm1kYXRhLmxhc3ROYW1lO2VtYWlsSGFuZGxlci51c2VyUGhvbmU9YS5mb3JtZGF0YS5waG9uZU51bWJlcjtlbWFpbEhhbmRsZXIuY29udGFjdEFkZHJlc3M9YS5mb3JtZGF0YS5hZGRyZXNzO2VtYWlsSGFuZGxlci5jb250YWN0QmlydGg9YS5mb3JtZGF0YS5iaXJ0aGRhdGVEYXkrIi8iK2EuZm9ybWRhdGEuYmlydGhkYXRlTW9udGgrCiIvIithLmZvcm1kYXRhLmJpcnRoZGF0ZVllYXI7ZW1haWxIYW5kbGVyLnNhbGVzRGVwdD1hLmZvcm1kYXRhLnZlaGljbGVTYWxlc0RlcHQ7ZW1haWxIYW5kbGVyLm1ha2U9YS5mb3JtZGF0YS5jdXJyZW50TWFrZTtlbWFpbEhhbmRsZXIubW9kZWw9YS5mb3JtZGF0YS5jdXJyZW50TW9kZWw7ZW1haWxIYW5kbGVyLnllYXI9YS5mb3JtZGF0YS5jdXJyZW50WWVhcjtlbWFpbEhhbmRsZXIuc3RvY2tOdW1iZXI9YS5mb3JtZGF0YS5jdXJyZW50U3RvY2tOdW1iZXI7ZW1haWxIYW5kbGVyLmRlcGFydG1lbnRCeVN0b2NrPSExO2VtYWlsSGFuZGxlci5za2lwR2VvTG9jPSEwO2VtYWlsSGFuZGxlci5wYXJ0aWFsPSExO2VtYWlsSGFuZGxlci5jYWxsYmFjaz1mdW5jdGlvbihxKXtpZihxKWsuc2V0RmluYW5jZUZvcm1TdGF0dXNUb1NlbnQoKTtlbHNle3ZhciB0PWVtYWlsSGFuZGxlci5fX2xhc3RSZXR1cm58fHt9O3E9Im9iamVjdCI9PT10eXBlb2YgdCYmdC5tZXNzYWdlP3QubWVzc2FnZToiIjsKdmFyIEE9anNfZDJjX2dldF92YWwoIkVNQUlMX0ZBSUxfTUVTU0FHRSIpfHwkKCIjRklOQU5DRV9GT1JNX1ZXQ1JFRElUX0VSUk9SX01TR19VU0VSIixiKS52YWwoKXx8IlRoZXJlIHdhcyBhIHByb2JsZW0gc3VibWl0dGluZyB5b3VyIGFwcGxpY2F0aW9uLiBQbGVhc2UgdHJ5IGFnYWluLiI7Y29uc29sZS5lcnJvcigiZmluYW5jZV9tdWx0aXN0ZXAuc2VuZEVtYWlsIGZhaWxlZCIsdCk7dD0kKCI8ZGl2PiIpLnRleHQocSkuaHRtbCgpOyQoIi5tdWx0aXN0ZXBJbnN0YW50U3Bpbm5lciIpLmhpZGUoKTthLnN0ZXA9MzA7JCgiI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm1fbmV4dF9idG4iLGIpLnNob3coKTskKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV9lcnJvciIsYikuaHRtbChxP0ErIiAiK3Q6QSl9fTtlbWFpbEhhbmRsZXIuc2VuZE1haWwoITEpfX0sc2V0RmluYW5jZUZvcm1TdGF0dXNUb1NlbnQ6ZnVuY3Rpb24oKXskLmFqYXgoe3VybDoiLyIrdysiL2FqYXgvc2V0RmluYW5jZU11bHRpc3RlcERhdGFTdGF0dXNUb1NlbnQ\/d3N3aWR0aD0wIiwKZGF0YVR5cGU6IkpTT04iLHR5cGU6IlBPU1QiLGRhdGE6e3VzZXJJZDprLnVzZXJJZCgpfSxzdWNjZXNzOmZ1bmN0aW9uKGMpe2xldCBkPW5ldyBDdXN0b21FdmVudCgidHJhY2tzdGVwLmNvbXBsZXRlIix7ZGV0YWlsOntzdGVwSWQ6IkZpbmFuY2VBY3Rpb25Cb3gifX0pO2RvY3VtZW50LmRpc3BhdGNoRXZlbnQoZCk7aWYoIlNVQ0NFU1MiPT1jfHxudWxsPT09YylhLnN0ZXA9MjEsay51c2VySWQoLTEpLGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCJmaW5hbmNlX211bHRpc3RlcC5saW5lYXJfc3RlcCIpLCQoZG9jdW1lbnQuYm9keSkudHJpZ2dlcigibXVsdGlGb3JtRmluYW5jZVN1Ym1pdCIpfX0pfSxyZXNldEZvcm06ZnVuY3Rpb24oKXthLmZvcm1kYXRhPXt2ZWhpY2xlVHlwZToiIixidWRnZXQ6IiIsY3VycmVudGx5RHJpdmluZzoiIixlbWFpbEFkZHJlc3M6IiIsY3JlZGl0UmF0aW5nOiIiLGRvd25PcHRpb25zOiIiLGJpcnRoZGF0ZVllYXI6IiIsYmlydGhkYXRlTW9udGg6IiIsCmJpcnRoZGF0ZURheToiIixhZGRyZXNzOiIiLHNwbGl0QWRkcmVzczpbXSxhZGRyZXNzX3llYXJzOjAsYWRkcmVzc19tb250aHM6MCxhZGRyZXNzMjoiIixzcGxpdEFkZHJlc3MyOltdLGFkZHJlc3MyX3llYXJzOjAsYWRkcmVzczJfbW9udGhzOjAsYWRkcmVzc0VtcGxveWVyOiIiLHNwbGl0QWRkcmVzc0VtcGxveWVyOltdLHJlbnRPck93bjoiIixtb250aGx5UGF5bWVudDowLG1vbnRobHlEaXNidXJzZW1lbnQ6MCxlbXBsb3ltZW50U3RhdHVzOiIiLGVtcGxveW1lbnRBZGRlZEluZm86IiIsZW1wbG95ZXJOYW1lOiIiLGVtcGxveWVyUGhvbmU6IiIsZW1wbG95bWVudFN0YXR1c1llYXI6MCxlbXBsb3ltZW50U3RhdHVzTW9udGg6MCxlbXBsb3ltZW50QWRkZWRJbmZvMjoiIixlbXBsb3llck5hbWUyOiIiLGVtcGxveWVyUGhvbmUyOiIiLGVtcGxveW1lbnRTdGF0dXNZZWFyMjowLGVtcGxveW1lbnRTdGF0dXNNb250aDI6MCxhZGRyZXNzRW1wbG95ZXIyOiIiLHNwbGl0QWRkcmVzc0VtcGxveWVyMjpbXSwKd29ya2luZ1doaWxlSW5TY2hvb2w6IiIsb3RoZXJFbXBsb3ltZW50U3RhdHVzOiIiLG1vbnRobHlJbmNvbWU6MCxtb250aGx5SW5jb21lX3llYXJzOjAsbW9udGhseUluY29tZV9tb250aHM6MCx0aXRsZToiIixmaXJzdE5hbWU6IiIsbGFzdE5hbWU6IiIscGhvbmVOdW1iZXI6IiIsY3VycmVudE1ha2U6IiIsY3VycmVudE1vZGVsOiIiLGN1cnJlbnRNb2RlbFRleHQ6IiIsY3VycmVudFllYXI6IiIsY3VycmVudFN0b2NrTnVtYmVyOiIiLGN1cnJlbnRNaWxlYWdlOjEwLGN1cnJlbnRUcmltOiIiLGN1cnJlbnRTdHlsZWlkOiIiLGN1cnJlbnRDYXJJZDoiIixwYXltZW50VHlwZToiIixwYXltZW50VHlwZVJlYWw6IiIscGF5bWVudFRlcm06IiIscGF5bWVudFJhdGVUeXBlOiIiLHBheW1lbnRWYWx1ZToiIixiYXNlcGF5bWVudDoiIixwYXltZW50VG90YWxJbmNlbnRpdmU6MCxwYXltZW50VG90YWxGZWU6MCxwYXltZW50R1NUOjAscGF5bWVudEhTVDowLHBheW1lbnRQU1Q6MCxwYXltZW50RG93blBheW1lbnQ6MCwKcGF5bWVudEttQWxsb3dhbmNlOjAscGF5bWVudEludGVydmFsOiIiLHBheW1lbnRSYXRlOiIiLHBheW1lbnRSZXNpZHVhbFZhbHVlOjAsbm9QYXltZW50OiExLG11bHRpX2RlYWxlcl9zZW5kVG86IiIsY3JlZGl0QnVyZWF1Q3JlZGl0OiJOTyIsU0lOOiIiLGFkZGVkSW5mbzoiIix2ZWhpY2xlU2FsZXNEZXB0OiJvdGhlciIsdmVoaWNsZVByaWNlOiIiLHZlaGljbGVUcmFuc21pc3Npb246IiIsdmVoaWNsZVRyaW06IiIsdmVoaWNsZUNvbG9yOiIiLGluaXRpYWxUaXRsZVNob3c6ITAsbXVsdGlGcm9tTWluaTohMSx0cmFkZUluTWFrZToiIix0cmFkZUluTW9kZWw6IiIsdHJhZGVJblllYXI6IiIsdHJhZGVJblRyaW06IiIsdHJhZGVJblZhbHVlOiIifX0sY3JlZGl0QXBwU3VtaXNzaW9uOmZ1bmN0aW9uKCl7dmFyIGM9YS5mb3JtZGF0YSxkPSQoIiNzaXRlSUQiKS52YWwoKXx8JCgiI3RvcHNpdGVpZCIpLnZhbCgpO2Muc2l0ZUlkPWQ7Yy5jdXJyZW50RGVwdD1hLmN1cnJlbnREZXB0OyQoIi5tdWx0aXN0ZXBJbnN0YW50U3Bpbm5lciIpLnNob3coKTsKYS5mb3JtZGF0YS5jcmVkaXRCdXJlYXVDcmVkaXQ9IllFUyI7YS5zdGVwPTIxOyQuYWpheCh7dXJsOiIvIit3K2AvYWpheC9zdWJtaXRDcmVkaXRBcHBsaWNhdGlvbj93c3dpZHRoPSR7ZW5jb2RlVVJJQ29tcG9uZW50KCIwIil9YCxkYXRhVHlwZToiSlNPTiIsdHlwZToiUE9TVCIsZGF0YTpjLHN1Y2Nlc3M6ZnVuY3Rpb24oZSl7bGV0IGYsZyxsPWUuYXBwbGljYXRpb25JZDtpZihlLmVycm9yKWY9JCgiI0ZJTkFOQ0VfRk9STV9WV0NSRURJVF9WV0VSUk9SX01TR19VU0VSIixiKS52YWwoKSxnPSQoIiNGSU5BTkNFX0ZPUk1fVldDUkVESVRfRVJST1JfTVNHX0xFQUQiLGIpLnZhbCgpLGEuY3JlZGl0RGVjaXNpb25IVE1MPWc7ZWxzZSBpZihsKXtpZihmPSQoIiNGSU5BTkNFX0ZPUk1fVldDUkVESVRfQVBQUk9WQUxfTVNHIixiKS52YWwoKSsiPGJyPjxicj4iK2wsZj1mLnJlcGxhY2UoIiMjVVNFUkVNQUlMIyMiLGMuZW1haWxBZGRyZXNzKSxnPSQoIiNGSU5BTkNFX0ZPUk1fVldDUkVESVRfU1VDQ0VTU19NU0dfTEVBRCIsCmIpLnZhbCgpKyI8c3Ryb25nPiIrbCsiPC9zdHJvbmc+IixhLmNyZWRpdERlY2lzaW9uSFRNTD1nLGEuY3JlZGl0QXBwbGljYXRpb25JZD1sLGUuYXBwbGljYXRpb25TdGF0dXMmJmUuYXBwbGljYXRpb25TdGF0dXMuc3RhdHVzKXN3aXRjaChlLmFwcGxpY2F0aW9uU3RhdHVzLnN0YXR1cyl7Y2FzZSAiQXBwcm92ZWQiOiQoIiNGSU5BTkNFX0ZPUk1fVldDUkVESVRfQVBQUk9WQUxfTVNHIixiKS52YWwoKTticmVhaztjYXNlICJQZW5kaW5nIjokKCIjRklOQU5DRV9GT1JNX1ZXQ1JFRElUX1BFTkRJTkdfTVNHIixiKS52YWwoKTticmVhaztkZWZhdWx0OiQoIiNGSU5BTkNFX0ZPUk1fVldDUkVESVRfTk9BUFBST1ZBTF9NU0ciLGIpLnZhbCgpfX1lbHNlIGY9JCgiI0ZJTkFOQ0VfRk9STV9WV0NSRURJVF9WV0VSUk9SX01TR19VU0VSIixiKS52YWwoKSxnPSQoIiNGSU5BTkNFX0ZPUk1fVldDUkVESVRfRVJST1JfTVNHX0xFQUQiLGIpLnZhbCgpLGEuY3JlZGl0RGVjaXNpb25IVE1MPWc7JChiKS5maW5kKCIuY29uZmlybWF0aW9uVGl0bGUiKS5oaWRlKCk7CiQoYikuZmluZCgiLmNvbmZpcm1hdGlvblRleHQiKS5oaWRlKCk7JChiKS5maW5kKCIuY3JlZGl0RGVjaXNpb24iKS5odG1sKGYpOyQoYikuZmluZCgiLmNyZWRpdERlY2lzaW9uIikuc2hvdygpOyQoIi5tdWx0aXN0ZXBJbnN0YW50U3Bpbm5lciIpLmhpZGUoKTtrLnNlbmRFbWFpbCgpfX0pfSxyb3V0ZU9uZUNhbGw6ZnVuY3Rpb24oKXt2YXIgYz1hLmZvcm1kYXRhLGQ9JCgiI3NpdGVJRCIpLnZhbCgpfHwkKCIjdG9wc2l0ZWlkIikudmFsKCk7Yy5zaXRlSWQ9ZDtjLmN1cnJlbnREZXB0PWEuY3VycmVudERlcHQ7JCgiLm11bHRpc3RlcEluc3RhbnRTcGlubmVyIikuc2hvdygpO2Euc3RlcD0yMTsoZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyBQcm9taXNlKChmLGcpPT4kanNjb21wLmFzeW5jRXhlY3V0ZVByb21pc2VHZW5lcmF0b3JGdW5jdGlvbihmdW5jdGlvbiooKXtlPWUrIj9jYj0iKzIwMzgzNDc0OTMqTWF0aC5yYW5kb20oKTtsZXQgbD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKTsKbC5zZXRBdHRyaWJ1dGUoInNyYyIsZSk7bC5zZXRBdHRyaWJ1dGUoImFzeW5jIiwiZmFsc2UiKTtsZXQgcD1kb2N1bWVudC5oZWFkO3AuaW5zZXJ0QmVmb3JlKGwscC5maXJzdEVsZW1lbnRDaGlsZCk7bC5hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwoKT0+e2YoKX0sITEpfSkpfSkoIi9qcy9yb3V0ZTFIYW5kbGVyLmpzIikudGhlbigoKT0+e2xldCBlPW5ldyByb3V0ZTFFdmVudEhhbmRsZXIoITEpO2Uub24oImNvbm5lY3RlZCIsKGYsZyk9Pntjb25zb2xlLmxvZygiQ29ubmVjdGVkIil9KTtlLm9uKCJyZWFkeSIsKGYsZyk9Pntjb25zb2xlLmxvZygiUmVhZHkiKTtlLnJlcXVlc3RDcmVkaXRDaGVjayhjKX0pO2Uub24oImVycm9yIiwoZixnKT0+e2NvbnNvbGUubG9nKCJFcnJvcjogJW8iLGYpO2UuY2xvc2UoKTtrLnNldENyZWRpdERlY2lzaW9uKGYubWVzc2FnZSk7JCgiLm11bHRpc3RlcEluc3RhbnRTcGlubmVyIikuaGlkZSgpO2suc2VuZEVtYWlsKCl9KTtlLm9uKCJjcmVkaXRDaGVja0NvbXBsZXRlIiwKKGYsZyk9Pntjb25zb2xlLmxvZygiQ3JlZGl0IENoZWNrIENvbXBsZXRlOiAlbyIsZik7ZS5jbG9zZSgpO2suc2V0Q3JlZGl0RGVjaXNpb24oZik7JCgiLm11bHRpc3RlcEluc3RhbnRTcGlubmVyIikuaGlkZSgpO2suc2VuZEVtYWlsKCl9KTtlLm9uKCJ3YWl0aW5nT25Sb3V0ZTEiLChmLGcpPT57Y29uc29sZS5sb2coIldhaXRpbmcgb24gUm91dGUgMTogJW8iLGYpfSl9KX0sc2V0Q3JlZGl0RGVjaXNpb246ZnVuY3Rpb24oYyl7dmFyIGQsZT0iIjtpZihjLmpzb24pe3ZhciBmPSJhcHByb3ZlZCI9PWMuanNvbi5zdGF0dXM\/IkFwcHJvdmVkIjoiRGVuaWVkIjt2YXIgZz1udWxsIT0oZD1jLmpzb24uaWQpP2Q6IiI7dmFyIGw7ZD1udWxsIT0obD1jLmpzb24ubGVuZGVyKT9sOiIiO2MuanNvbi5lcnJvcm1zZyYmIk5vIHBheW1lbnQiPT1jLmpzb24uZXJyb3Jtc2cmJihmPWMuanNvbi5lcnJvcm1zZyxkPWc9IiIpO2U9Yy5qc29uLmVycm9ybXNnfWVsc2UgaWYoYy5zdGF0ZSl7Zj0iRGVuaWVkIjsKdmFyIHA7Zz1udWxsIT0ocD1jLnN0YXRlLmlkKT9wOiIiO2Q9IiI7Yy5lcnJvcm1zZyYmIk5vIHBheW1lbnQiPT1jLmVycm9ybXNnJiYoZj1jLmVycm9ybXNnLGQ9Zz0iIik7ZT1jLmVycm9ybXNnP2MuZXJyb3Jtc2c6Yy5lcnJvcn1lbHNlIGY9IkRlbmllZCIsZD1nPSIiOyJBcHByb3ZlZCIhPWY\/KGw9JCgiI0ZJTkFOQ0VfRk9STV9ST1VURU9ORV9OT0FQUFJPVkFMX01TRyIpLnZhbCgpLCJObyBwYXltZW50Ij09Zj8oZj0iRU5HTElTSCI9PSQoIiNhY3RpdmVzaXRlbGFuZ3VhZ2UiKS52YWwoKT9mOiJQYXMgZGUgcGFpZW1lbnQiLGw9bC5yZXBsYWNlKCIkUm91dGVPbmVJRCIsIiIpLnJlcGxhY2UoIiRFcnJvckNvZGUiLGYpKTpsPWc\/bC5yZXBsYWNlKCIkUm91dGVPbmVJRCIsZykucmVwbGFjZSgiJEVycm9yQ29kZSIsZSk6bC5yZXBsYWNlKCIkUm91dGVPbmVJRCIsIiIpLnJlcGxhY2UoIiRFcnJvckNvZGUiLGUpKToobD0kKCIjRklOQU5DRV9GT1JNX1JPVVRFT05FX0FQUFJPVkFMX01TRyIpLnZhbCgpLApsPWwucmVwbGFjZSgiJE1ha2UiLGEuZm9ybWRhdGEuY3VycmVudE1ha2UpLGw9bC5yZXBsYWNlKCIkTW9kZWwiLGEuZm9ybWRhdGEuY3VycmVudE1vZGVsVGV4dCksbD1sLnJlcGxhY2UoIiRZZWFyIixhLmZvcm1kYXRhLmN1cnJlbnRZZWFyKSxsPWwucmVwbGFjZSgiJFZlcnNpb24iLGEuZm9ybWRhdGEuY3VycmVudFRyaW0pLGw9bC5yZXBsYWNlKCIkTGVuZGVyIixkKSxsPWwucmVwbGFjZSgiJFJlZmVyZW5jZUlEIixnKSxmPSQoJ2lucHV0W2RhdGEtZm9ydmFyPSJPVkVSV1JJVFRFUkRFQUxFUiJdJykudmFsKCkmJiQoJ2lucHV0W2RhdGEtZm9ydmFyPSJPVkVSV1JJVFRFUkRFQUxFUiJdJykubGVuZ3RoPyQoJ2lucHV0W2RhdGEtZm9ydmFyPSJPVkVSV1JJVFRFUkRFQUxFUiJdJykudmFsKCk6IiIscD0iIiE9JCgnaW5wdXRbZGF0YS1mb3J2YXI9IkRFQUxFUiJdJykudmFsKCkmJiQoJ2lucHV0W2RhdGEtZm9ydmFyPSJERUFMRVIiXScpLmxlbmd0aD8kKCdpbnB1dFtkYXRhLWZvcnZhcj0iREVBTEVSIl0nKS52YWwoKToKJCgiI2hpZGRlbkRlYWxlck5hbWUiKS52YWwoKSxmPWYhPXAmJiIiIT1mP2Y6cCxsPWwucmVwbGFjZSgiJERlYWxlck5hbWUiLGYpLGw9IiIhPWEuZm9ybWRhdGEuY3VycmVudFN0b2NrTnVtYmVyP2wucmVwbGFjZSgiJFN0b2NrIixhLmZvcm1kYXRhLmN1cnJlbnRTdG9ja051bWJlcik6bC5yZXBsYWNlKCIoU3RvY2sgJFN0b2NrKSIsIiIpLGY9IkVOR0xJU0giPT0kKCIjYWN0aXZlc2l0ZWxhbmd1YWdlIikudmFsKCk\/IkFwcHJvdmVkIjoiQXBwcm91dsOpIik7ZCYmKGYrPSIgIitkKTtnJiYoZis9IiAoIitnKyIpIik7ZSYmKGYrPSJcbiIrZSk7Zz1bXTtjLnJvdXRlMWlkJiZnLnB1c2goYy5yb3V0ZTFpZCk7Yy5zdGF0ZSYmYy5zdGF0ZS5pZCYmZy5wdXNoKGMuc3RhdGUuaWQpO2lmKGMuaGlzdG9yeSlmb3IoZT0wO2U8Yy5oaXN0b3J5Lmxlbmd0aDtlKyspYy5oaXN0b3J5W2VdLmlkJiZnLnB1c2goYy5oaXN0b3J5W2VdLmlkKTtlbWFpbEhhbmRsZXIub25BZnRlckxlYWRDcmVhdGVkPQp7YWN0aW9uOiJST1VURU9ORSIsY29udmVyc2F0aW9uSWRzOmd9O2EuY3JlZGl0RGVjaXNpb25IVE1MPWY7JChiKS5maW5kKCIuY29uZmlybWF0aW9uVGl0bGUiKS5oaWRlKCk7JChiKS5maW5kKCIuY29uZmlybWF0aW9uVGV4dCIpLmhpZGUoKTskKGIpLmZpbmQoIi5jcmVkaXREZWNpc2lvbiIpLnRleHQobCk7JChiKS5maW5kKCIuY3JlZGl0RGVjaXNpb24iKS5zaG93KCl9LHNldEN1cnJlbnRNYWtlTW9kZWxZZWFyOmZ1bmN0aW9uKCl7aWYoIjEiPT0kKCIjRklOQU5DRV9NVUxUSVNURVBfaXNJbnN0YW50IixiKS52YWwoKSl7YS5zdGVwPTA7YS5uZXh0U3RlcD1MO2EuZm9ybWRhdGEubm9QYXltZW50PSExO2EuY2FsY3VsYXRvckZ1bmN0aW9ucz1udWxsO2EuZm9ybWRhdGEucGF5bWVudFR5cGU9IiI7YS5mb3JtZGF0YS5wYXltZW50VHlwZVJlYWw9IiI7YS5mb3JtZGF0YS5wYXltZW50VGVybT0iIjthLmZvcm1kYXRhLnBheW1lbnRSYXRlVHlwZT0iIjthLmZvcm1kYXRhLnBheW1lbnRSZXNpZHVhbFZhbHVlPQoiIjthLmZvcm1kYXRhLnBheW1lbnRWYWx1ZT0iIjthLmZvcm1kYXRhLnZlaGljbGVJbml0aWFsUHJpY2U9IiI7YS5mb3JtZGF0YS52ZWhpY2xlRmluYWxQcmljZT0iIjthLmZvcm1kYXRhLnBheW1lbnRGZWVzTGlzdD1bXTthLmZvcm1kYXRhLnBheW1lbnRJbmNlbnRpdmVzTGlzdD1bXTthLmZvcm1kYXRhLmJhc2VwYXltZW50PSIiO2EuZm9ybWRhdGEucGF5bWVudFRvdGFsSW5jZW50aXZlPTA7YS5mb3JtZGF0YS5wYXltZW50VG90YWxGZWU9MDthLmZvcm1kYXRhLnBheW1lbnRHU1Q9MDthLmZvcm1kYXRhLnBheW1lbnRIU1Q9MDthLmZvcm1kYXRhLnBheW1lbnRQU1Q9MDthLmZvcm1kYXRhLnBheW1lbnREb3duUGF5bWVudD0wO2EuZm9ybWRhdGEudHJhZGVJblZhbHVlPSIiO2EuZm9ybWRhdGEucGF5bWVudEttQWxsb3dhbmNlPTA7YS5mb3JtZGF0YS5wYXltZW50SW50ZXJ2YWw9IiI7YS5mb3JtZGF0YS5wYXltZW50UmF0ZT0iIjt2YXIgYz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZmluYW5jZU11bHRpc3RlcE5ld0NhbGN1bGF0b3IiKTsKYy5yZXBsYWNlV2l0aChjLmNsb25lTm9kZSghMCkpfWEuZm9ybWRhdGEuY3VycmVudE1ha2U9JCgiI3BvcHVwbWFrZU11bHRpc3RlcEZvcm0iKS5sZW5ndGg\/JCgiI3BvcHVwbWFrZU11bHRpc3RlcEZvcm0iKS52YWwoKTphLmZvcm1kYXRhLmN1cnJlbnRNYWtlO2EuZm9ybWRhdGEuY3VycmVudE1vZGVsPSQoIiNwb3B1cG1vZGVsTXVsdGlzdGVwRm9ybSIpLmxlbmd0aD8kKCIjcG9wdXBtb2RlbE11bHRpc3RlcEZvcm0iKS52YWwoKTphLmZvcm1kYXRhLmN1cnJlbnRNb2RlbDthLmZvcm1kYXRhLmN1cnJlbnRZZWFyPSQoIiNwb3B1cHllYXJNdWx0aXN0ZXBGb3JtIikubGVuZ3RoJiYwIT0kKCIjcG9wdXB5ZWFyTXVsdGlzdGVwRm9ybSIpLnZhbCgpPyQoIiNwb3B1cHllYXJNdWx0aXN0ZXBGb3JtIikudmFsKCk6YS5mb3JtZGF0YS5jdXJyZW50WWVhcjthLmZvcm1kYXRhLmN1cnJlbnRTdG9ja051bWJlcj0kKCIjcG9wdXBzdG9ja251bWJlck11bHRpc3RlcEZvcm0iKS5sZW5ndGg\/JCgiI3BvcHVwc3RvY2tudW1iZXJNdWx0aXN0ZXBGb3JtIikudmFsKCk6CmEuZm9ybWRhdGEuY3VycmVudFN0b2NrTnVtYmVyO3ZhciBkPSQoIiN0b3BjYXJpZE11bHRpc3RlcEZvcm0iKS52YWwoKTswPT1wYXJzZUludChkKSYmKGQ9IiIpO2lmKCIiIT1hLmZvcm1kYXRhLmN1cnJlbnRNYWtlJiYiIiE9YS5mb3JtZGF0YS5jdXJyZW50TW9kZWwmJiIiIT1hLmZvcm1kYXRhLmN1cnJlbnRZZWFyfHwiIiE9ZClpZihkKSQuZ2V0SlNPTigiL2pzL2pzb24vIitkKyIuanNvbiIsZnVuY3Rpb24oZil7YS5mb3JtZGF0YS52ZWhpY2xlU2FsZXNEZXB0PSJ1c2VkIjthLmN1cnJlbnREZXB0PSJVU0VEIjtpZihmLmlzbmV3fHxmLmRlbW8mJiIxIj09JCgnaW5wdXRbbmFtZT0iRklOQU5DRV9ERU1PQVNORVciXScsYikudmFsKCkpYS5mb3JtZGF0YS52ZWhpY2xlU2FsZXNEZXB0PSJuZXciLGEuY3VycmVudERlcHQ9Ik5FV0lOViIsYS5mb3JtZGF0YS5jdXJyZW50U3R5bGVpZD1mLnN0eWxlSWQ7MDxmLm1ha2VjZXJ0JiYoYS5mb3JtZGF0YS52ZWhpY2xlU2FsZXNEZXB0PSJjcG8iKTsKdmFyIGc9KGYudHJhbnNtaXNzaW9uRU4rIiIpLm1hdGNoKC8oYXV0b21hdGljfG1hbnVhbCkvaSk7Zz1nP2dbMF06IiI7YS5mb3JtZGF0YS52ZWhpY2xlQ29sb3I9Zi5jb2xvckVOO2EuZm9ybWRhdGEudmVoaWNsZVByaWNlPWYub3JpZ2luYWxQcmljZTthLmZvcm1kYXRhLnZlaGljbGVUYW5zbWlzc2lvbj1nO2EuZm9ybWRhdGEudmVoaWNsZVRyaW09Zi52ZXJzaW9uO2EuZm9ybWRhdGEuY3VycmVudFRyaW09Zi52ZXJzaW9uO2EuZm9ybWRhdGEuY3VycmVudENhcklkPWQ7YS5mb3JtZGF0YS5jdXJyZW50TWlsZWFnZT1mLm1pbGVzO3N3aXRjaChmLmJvZHlUeXBlSUQpe2Nhc2UgIlNVViI6YS5mb3JtZGF0YS52ZWhpY2xlVHlwZT0iQk9EWVRZUEVfU1VWIjticmVhaztjYXNlICJUUlVDSyI6YS5mb3JtZGF0YS52ZWhpY2xlVHlwZT0iQk9EWVRZUEVfVFJVQ0siO2JyZWFrO2Nhc2UgIk1JTklWQU4iOmEuZm9ybWRhdGEudmVoaWNsZVR5cGU9IkJPRFlUWVBFX01JTklWQU4iO2JyZWFrO2RlZmF1bHQ6YS5mb3JtZGF0YS52ZWhpY2xlVHlwZT0KIkJPRFlUWVBFX0NBUiJ9MD09YS5zdGVwJiZhLm5leHQoITApO2sucG9wdXBMYXVuY2hlZFRyYWNrKCl9KTtlbHNle2EuZm9ybWRhdGEudmVoaWNsZVNhbGVzRGVwdD0ibmV3IjtjPSJFTkdMSVNIIj09JCgiI2FjdGl2ZXNpdGVsYW5ndWFnZSIpLnZhbCgpPyItZW4iOiItZnIiO3VybD0iL2pzb24vIithLmZvcm1kYXRhLmN1cnJlbnRNYWtlLnJlcGxhY2UoIi0iLCJfIikucmVwbGFjZSgiICIsIl8iKSsiLSIrYS5mb3JtZGF0YS5jdXJyZW50TW9kZWwucmVwbGFjZSgiLSIsIl8iKS5yZXBsYWNlKCIgIiwiXyIpKyItIithLmZvcm1kYXRhLmN1cnJlbnRZZWFyK2MrIi5qc29uIjtpZigiQk1XIj09YS5mb3JtZGF0YS5jdXJyZW50TWFrZXx8Ik1lcmNlZGVzLUJlbnoiPT1hLmZvcm1kYXRhLmN1cnJlbnRNYWtlKXt2YXIgZT0kKCIjdGV4dE1vZGVsT3ZlcnJpZGUiKS5sZW5ndGgmJiQoIiN0ZXh0TW9kZWxPdmVycmlkZSIpLnZhbCgpLmxlbmd0aD8kKCIjdGV4dE1vZGVsT3ZlcnJpZGUiKS52YWwoKToKYS5mb3JtZGF0YS5jdXJyZW50TW9kZWw7dXJsPSIvanNvbi8iK2EuZm9ybWRhdGEuY3VycmVudE1ha2UucmVwbGFjZSgiLSIsIl8iKS5yZXBsYWNlKCIgIiwiXyIpKyItIitlLnJlcGxhY2UoIi0iLCJfIikucmVwbGFjZSgiICIsIl8iKSsiLSIrYS5mb3JtZGF0YS5jdXJyZW50WWVhcitjKyIuanNvbiJ9MDw9YS5mb3JtZGF0YS5jdXJyZW50TW9kZWwuaW5kZXhPZigiaHlicmlkIikmJihlPSQoJ2lucHV0W2RhdGEtZm9ydmFyPSJNT0RFTEZPUkVNQUlMIl0nKS5sZW5ndGgmJiQoJ2lucHV0W2RhdGEtZm9ydmFyPSJNT0RFTEZPUkVNQUlMIl0nKS52YWwoKS5sZW5ndGg\/JCgnaW5wdXRbZGF0YS1mb3J2YXI9Ik1PREVMRk9SRU1BSUwiXScpLnZhbCgpOmEuZm9ybWRhdGEuY3VycmVudE1vZGVsLHVybD0iL2pzb24vIithLmZvcm1kYXRhLmN1cnJlbnRNYWtlLnJlcGxhY2UoIi0iLCJfIikrIi0iK2UucmVwbGFjZSgiLSIsIl8iKSsiLSIrYS5mb3JtZGF0YS5jdXJyZW50WWVhcitjKyIuanNvbiIpOwokKCIucGF5bWVudENhbGN1bGF0b3JWRFAiKS5sZW5ndGg\/YS5mb3JtZGF0YS5jdXJyZW50U3R5bGVpZD0kKCIucGF5bWVudENhbGN1bGF0b3JWRFAiKS5hdHRyKCJkYXRhLXN0eWxlaWQiKTokKCIucGF5bWVudENhbGNCdG4iKS5sZW5ndGg\/YS5mb3JtZGF0YS5jdXJyZW50U3R5bGVpZD0kKCIucGF5bWVudENhbGNCdG4iKS5hdHRyKCJkYXRhLXN0eWxlaWQiKTokKCIjYWN0aXZlU3R5bGVJRCIpLmxlbmd0aCYmKGEuZm9ybWRhdGEuY3VycmVudFN0eWxlaWQ9JCgiI2FjdGl2ZVN0eWxlSUQiKS52YWwoKSk7JC5nZXRKU09OKHVybCkuZG9uZShmdW5jdGlvbihmKXtpZihmKXtzd2l0Y2goZi5zZWN0aW9uKXtjYXNlICJzdXYiOmEuZm9ybWRhdGEudmVoaWNsZVR5cGU9IkJPRFlUWVBFX1NVViI7YnJlYWs7Y2FzZSAidHJ1Y2tzIjphLmZvcm1kYXRhLnZlaGljbGVUeXBlPSJCT0RZVFlQRV9UUlVDSyI7YnJlYWs7Y2FzZSAibWluaXZhbnMiOmEuZm9ybWRhdGEudmVoaWNsZVR5cGU9IkJPRFlUWVBFX01JTklWQU4iOwpicmVhaztkZWZhdWx0OmEuZm9ybWRhdGEudmVoaWNsZVR5cGU9IkJPRFlUWVBFX0NBUiJ9IiIhPWEuZm9ybWRhdGEuY3VycmVudFN0eWxlaWQmJmYuc3R5bGVzLmZvckVhY2goZnVuY3Rpb24oZyl7Zy5pZD09YS5mb3JtZGF0YS5jdXJyZW50U3R5bGVpZCYmKGEuZm9ybWRhdGEuY3VycmVudFRyaW09IiIhPWcudHJpbT9nLnRyaW06Zy5DRlN0eWxlTmFtZSxhLmZvcm1kYXRhLnZlaGljbGVQcmljZT1nLm1zcnBBbGxJbil9KX19KS5hbHdheXMoZnVuY3Rpb24oKXswPT1hLnN0ZXAmJihhLm5leHQoITApLGsucG9wdXBMYXVuY2hlZFRyYWNrKCkpfSl9ZWxzZSIiIT1hLmZvcm1kYXRhLmVtYWlsQWRkcmVzcyYmMjEhPWEuc3RlcCYmIjEiIT0kKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAjT1BFTkVERlJPTUlNQUdFUE9QVVAiLGIpLnZhbCgpJiZhLnB1c2hQYXJ0aWFsJiZrLnB1c2hEYXRhVG9TZXJ2ZXIoKSwtMT09YS5vcHRpb25hbFN0ZXAuaW5kZXhPZihhLnN0ZXApJiZhLm5leHQoITApLAprLnBvcHVwTGF1bmNoZWRUcmFjaygpfSxnZXRDbGllbnRTdG9yYWdlRGF0YTpmdW5jdGlvbihjKXtsZXQgZD0iIjsidW5kZWZpbmVkIiE9PXR5cGVvZiBjbGllbnRTdG9yYWdlJiYoZD1jbGllbnRTdG9yYWdlLmdldChjKSk7cmV0dXJuIGR9LHNldENsaWVudFN0b3JhZ2VEYXRhOmZ1bmN0aW9uKGMsZCl7InVuZGVmaW5lZCIhPT10eXBlb2YgY2xpZW50U3RvcmFnZSYmY2xpZW50U3RvcmFnZS5zZXQoYyxkKX0sc2V0Q2xpZW50U3RvcmFnZURhdGFWYWx1ZXM6ZnVuY3Rpb24oKXsidW5kZWZpbmVkIiE9PXR5cGVvZiBjbGllbnRTdG9yYWdlJiYoIiIhPT1hLmZvcm1kYXRhLmZpcnN0TmFtZSYmay5zZXRDbGllbnRTdG9yYWdlRGF0YSgiZmlyc3RuYW1lIixhLmZvcm1kYXRhLmZpcnN0TmFtZSksIiIhPT1hLmZvcm1kYXRhLmxhc3ROYW1lJiZrLnNldENsaWVudFN0b3JhZ2VEYXRhKCJsYXN0bmFtZSIsYS5mb3JtZGF0YS5sYXN0TmFtZSksIiIhPT1hLmZvcm1kYXRhLmVtYWlsQWRkcmVzcyYmCmsuc2V0Q2xpZW50U3RvcmFnZURhdGEoImVtYWlsIixhLmZvcm1kYXRhLmVtYWlsQWRkcmVzcyksIiIhPT1hLmZvcm1kYXRhLnBob25lTnVtYmVyJiZrLnNldENsaWVudFN0b3JhZ2VEYXRhKCJwaG9uZSIsYS5mb3JtZGF0YS5waG9uZU51bWJlcikpfSxzZXREZXBhcnRtZW50OmZ1bmN0aW9uKCl7dmFyIGM9ZW1haWxIYW5kbGVyLmdldERlcCgpO2lmKCJORVciIT1jfHwiTkVXSU5WIiE9Y3x8IlVTRUQiIT1jKWM9Ik5FVyI7YS5jdXJyZW50RGVwdD1jOyJORVciIT1jfHwiY2FyZGV0YWlsLmh0bWwiIT0kKCIjUEFHRUlEIikudmFsKCkmJiJ1c2VkY2Fycy5odG1sIiE9JCgiI1BBR0VJRCIpLnZhbCgpfHwoYS5jdXJyZW50RGVwdD0iTkVXSU5WIil9LHNldFRyYWRlSW46ZnVuY3Rpb24oKXthLmZvcm1kYXRhLnRyYWRlSW5NYWtlPSQoYikuZmluZCgnaW5wdXRbbmFtZT0iZmluYW5jZVRyYWRlSW5NYWtlIl0nKS52YWwoKTthLmZvcm1kYXRhLnRyYWRlSW5Nb2RlbD0kKGIpLmZpbmQoJ2lucHV0W25hbWU9ImZpbmFuY2VUcmFkZUluTW9kZWwiXScpLnZhbCgpOwphLmZvcm1kYXRhLnRyYWRlSW5ZZWFyPSQoYikuZmluZCgnaW5wdXRbbmFtZT0iZmluYW5jZVRyYWRlSW5ZZWFyIl0nKS52YWwoKTthLmZvcm1kYXRhLnRyYWRlSW5UcmltPSQoYikuZmluZCgnaW5wdXRbbmFtZT0iZmluYW5jZVRyYWRlSW5UcmltIl0nKS52YWwoKTtsZXQgYz0kKGIpLmZpbmQoJ2lucHV0W25hbWU9ImZpbmFuY2VUcmFkZUluVmFsdWUiXScpLnZhbCgpLGQ9JChiKS5maW5kKCdpbnB1dFtuYW1lPSJmaW5hbmNlVHJhZGVJblZhbHVlIl0nKS5hdHRyKCJkYXRhLWN1cnJlbnQiKTtkJiYiIj09YS5mb3JtZGF0YS50cmFkZUluVmFsdWU\/YS5mb3JtZGF0YS50cmFkZUluVmFsdWU9ZDoiIj09YS5mb3JtZGF0YS50cmFkZUluVmFsdWUmJihhLmZvcm1kYXRhLnRyYWRlSW5WYWx1ZT1jKTsiIiE9YS5mb3JtZGF0YS50cmFkZUluVmFsdWUmJigkKCIucGF5bWVudENhbGN1bGF0b3JUcmFkZUluRmluYWwiLGIpLnZhbChhLmZvcm1kYXRhLnRyYWRlSW5WYWx1ZSksJCgiLnBheW1lbnRDYWxjdWxhdG9yVHJhZGVJbkZpbmFsIiwKYikuYXR0cigibWF4IixjKSwkKCIucGF5bWVudENhbGN1bGF0b3JUcmFkZUluRmluYWwiLGIpLnNob3coKSwkKCIucGF5bWVudENhbGN1bGF0b3JUcmFkZUluSW5pdGlhbCIsYikuaGlkZSgpKX0sZ2V0Q3VycmVudEJ1ZGdldDpmdW5jdGlvbihjKXtyZXR1cm4iMSI9PSQoJ2lucHV0W25hbWU9IkZJTkFOQ0VfTVVMVElTVEVQX0hJR0hfQlVER0VUX0NIRUNLIl0nKS52YWwoKT81MDA+PWM\/IkZJTkFOQ0VfRk9STV9CVURHRVRfVU5ERVJfNTAwIjo2NzY8PWMmJjg1MD49Yz8iRklOQU5DRV9GT1JNX0JVREdFVF9CRVRXRUVOXzY3Nl9BTkRfODUwIjo4NTE8PWMmJjExMDA+PWM\/IkZJTkFOQ0VfRk9STV9CVURHRVRfQkVUV0VFTl84NTFfQU5EXzExMDAiOjEzNTA8Yz8iRklOQU5DRV9GT1JNX0JVREdFVF9PVkVSXzEzNTEiOjUwMTw9YyYmNjc1Pj1jPyJGSU5BTkNFX0ZPUk1fQlVER0VUX0JFVFdFRU5fNTAxX0FORF82NzUiOiJGSU5BTkNFX0ZPUk1fQlVER0VUX0JFVFdFRU5fMTEwMV9BTkRfMTM1MCI6CiIxIj09JCgnaW5wdXRbbmFtZT0iRklOQU5DRV9NVUxUSVNURVBfVkVSWUhJR0hfQlVER0VUX0NIRUNLIl0nKS52YWwoKT85MDA+PWM\/IkZJTkFOQ0VfRk9STV9CVURHRVRfVU5ERVJfOTAwIjoxMTUxPD1jJiYxNDAwPj1jPyJGSU5BTkNFX0ZPUk1fQlVER0VUX0JFVFdFRU5fMTE1MV9BTkRfMTQwMCI6MTQwMTw9YyYmMTY1MD49Yz8iRklOQU5DRV9GT1JNX0JVREdFVF9CRVRXRUVOXzE0MDFfQU5EXzE2NTAiOjE5MDA8Yz8iRklOQU5DRV9GT1JNX0JVREdFVF9PVkVSXzE5MDEiOjkwMTw9YyYmMTE1MD49Yz8iRklOQU5DRV9GT1JNX0JVREdFVF9CRVRXRUVOXzkwMV9BTkRfMTE1MCI6IkZJTkFOQ0VfRk9STV9CVURHRVRfQkVUV0VFTl8xNjUxX0FORF8xOTAwIjozNTA+PWM\/IkZJTkFOQ0VfRk9STV9CVURHRVRfVU5ERVJfMzUwIjo2MDE8PWMmJjc1MD49Yz8iRklOQU5DRV9GT1JNX0JVREdFVF9CRVRXRUVOXzYwMV9BTkRfNzUwIjo3NTE8PWMmJjkwMD49Yz8iRklOQU5DRV9GT1JNX0JVREdFVF9CRVRXRUVOXzc1MV9BTkRfOTAwIjoKOTAwPGM\/IkZJTkFOQ0VfRk9STV9CVURHRVRfT1ZFUl85MDEiOjM1MTw9YyYmNDc1Pj1jPyJGSU5BTkNFX0ZPUk1fQlVER0VUX0JFVFdFRU5fMzUxX0FORF80NzUiOiJGSU5BTkNFX0ZPUk1fQlVER0VUX0JFVFdFRU5fNDc2X0FORF82MDAifSxzZXREZWFsZXJTZWxlY3RFbWFpbDpmdW5jdGlvbigpe3Nlc3Npb25TdG9yYWdlLmdldEl0ZW0oImRlYWxlclNlbGVjdFZhbHVlcyIpJiYoZW1haWxIYW5kbGVyLnNldERlYWxlclNlbGVjdEVtYWlscygpLGEuZm9ybWRhdGEubXVsdGlfZGVhbGVyX3NlbmRUbz0tMSl9LGhhc0RlYWxlclNlbGVjdFZhbHVlczpmdW5jdGlvbigpe3JldHVybiBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCJkZWFsZXJTZWxlY3RWYWx1ZXMiKX0sc2V0RW1haWxIYW5kbGVyU2VuZDpmdW5jdGlvbigpe2lmKDA9PWEuZm9ybWRhdGEubXVsdGlGcm9tTWluaXx8ImZhbHNlIj09YS5mb3JtZGF0YS5tdWx0aUZyb21NaW5pKWVtYWlsSGFuZGxlci5zZW5kVG89JCgiI0ZJTkFOQ0VfRk9STV9TRU5EVE9fRU1BSUwiLApiKS52YWwoKSxlbWFpbEhhbmRsZXIuc2VuZFRvQURGRm9ybWF0PSQoIiNGSU5BTkNFX0ZPUk1fU0VORFRPQURGX0VNQUlMIixiKS52YWwoKSxlbWFpbEhhbmRsZXIuZGVhbGVyTmFtZT0iIiE9JCgiI0ZJTkFOQ0VfRk9STV9ERUFMRVJOQU1FIixiKS52YWwoKT8kKCIjRklOQU5DRV9GT1JNX0RFQUxFUk5BTUUiLGIpLnZhbCgpOmVtYWlsSGFuZGxlci5kZWFsZXJOYW1lO2VtYWlsSGFuZGxlci52ZWhpY2xlVHlwZT1hLmZvcm1kYXRhLnZlaGljbGVUeXBlO2VtYWlsSGFuZGxlci5jYXJpZD1hLmZvcm1kYXRhLmN1cnJlbnRDYXJJZDtpZihrLmhhc0RlYWxlclNlbGVjdFZhbHVlcygpKWsuc2V0RGVhbGVyU2VsZWN0RW1haWwoKTtlbHNlIGlmKC0xPT09Wy0xLCItMSIsIiJdLmluZGV4T2YoYS5mb3JtZGF0YS5tdWx0aV9kZWFsZXJfc2VuZFRvKSl7dmFyIGM9JCgiI211bHRpc3RlcC1tdWx0aWFkZHJlc3MiLGIpLmZpbmQoInNlbGVjdCIpO2M9Yy5sZW5ndGg\/YzokKCcjbWluaWZvcm0gW25hbWU9Im11bHRpX2RlYWxlcl9zZW5kVG8iXScpOwpjLmxlbmd0aCYmKGM9Yy5maW5kKCI6c2VsZWN0ZWQiKSxlbWFpbEhhbmRsZXIuc2VuZFRvPWMuZGF0YSgiZW1haWxmaW5hbmNlIil8fGMuZGF0YSgiZW1haWwiKSxlbWFpbEhhbmRsZXIuc2VsZWN0ZWRTZW5kVG89Yy5kYXRhKCJlbWFpbGZpbmFuY2UiKXx8Yy5kYXRhKCJlbWFpbCIpLGVtYWlsSGFuZGxlci5zZW5kVG9BREZGb3JtYXQ9Yy5kYXRhKCJlbWFpbGFkZmZpbmFuY2UiKXx8Yy5kYXRhKCJlbWFpbGFkZiIpLGVtYWlsSGFuZGxlci5zZWxlY3RlZFNlbmRUb0FERkZvcm1hdD1jLmRhdGEoImVtYWlsYWRmZmluYW5jZSIpfHxjLmRhdGEoImVtYWlsYWRmIiksZW1haWxIYW5kbGVyLmRlYWxlck5hbWU9Yy50ZXh0KCksZW1haWxIYW5kbGVyLmhhc1NlbGVjdGVkTXVsdGlBZGRyZXNzPSEwLGM9e3NlbmRUbzplbWFpbEhhbmRsZXIuc2VuZFRvLHNlbGVjdGVkU2VuZFRvOmVtYWlsSGFuZGxlci5zZWxlY3RlZFNlbmRUbyxzZW5kVG9BREZGb3JtYXQ6ZW1haWxIYW5kbGVyLnNlbmRUb0FERkZvcm1hdCwKc2VsZWN0ZWRTZW5kVG9BREZGb3JtYXQ6ZW1haWxIYW5kbGVyLnNlbGVjdGVkU2VuZFRvQURGRm9ybWF0LGRlYWxlck5hbWU6Yy50ZXh0KCkudHJpbSgpLGRlYWxlcmlkOmMuZGF0YSgiZGVhbGVyaWQiKX0sc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSgiZGVhbGVyU2VsZWN0VmFsdWVzIixKU09OLnN0cmluZ2lmeShjKSkpfX0saW5pdFNlbGVjdE11bHRpRGVhbGVyOmZ1bmN0aW9uKCl7aWYoay5oYXNEZWFsZXJTZWxlY3RWYWx1ZXMoKSlrLnNldERlYWxlclNlbGVjdEVtYWlsKCksYS5uZXh0KCEwKTtlbHNle3ZhciBjPSQoIiNtdWx0aS1hZGRyZXNzLXN1Ym1pc3Npb24iKTtpZigwPT09Yy5sZW5ndGgpYS5mb3JtZGF0YS5tdWx0aV9kZWFsZXJfc2VuZFRvPS0xLGEubmV4dCghMCk7ZWxzZXt2YXIgZD0kKCIjUE9TVF9MRUFEX1NFTkRfVE9fREVBTEVSX1RZUEVfU0VMRUNUIikubGVuZ3RoPyQoIiNQT1NUX0xFQURfU0VORF9UT19ERUFMRVJfVFlQRV9TRUxFQ1QiKS52YWwoKToibG9jYXRpb24iOwooMDwkKCIjdGFyZ2V0UGFnZSIpLmxlbmd0aCYmIkNBUkRFVEFJTFMiPT09JCgiI3RhcmdldFBhZ2UiKS52YWwoKXx8IiIhPSQoIiNwb3B1cHN0b2NrbnVtYmVyTXVsdGlzdGVwRm9ybSIpLnZhbCgpJiYiMSI9PSQoIiNGSU5BTkNFX0ZPUk1fQURNSU5fU0hPV1BIWVNJQ0FMQUREUkVTU19DSEVDSyIpLnZhbCgpKSYmImxvY2F0aW9uIj09ZD8oYS5mb3JtZGF0YS5tdWx0aV9kZWFsZXJfc2VuZFRvPS0xLGEubmV4dCghMCkpOiIiPT09JCgiI211bHRpc3RlcC1tdWx0aWFkZHJlc3MiLGIpLnRleHQoKS50cmltKCkmJigkKCIjbXVsdGlzdGVwLW11bHRpYWRkcmVzcyIsYikuYXBwZW5kKGMuaHRtbCgpKSwiIiE9PWEuZm9ybWRhdGEuY3VycmVudE1ha2UmJiJ1bmRlZmluZWQiIT09dHlwZW9mIG11bHRpRGVhbGVyU2VsZWN0JiYoYz0kKCIjbXVsdGlzdGVwLW11bHRpYWRkcmVzcyIsYikuZmluZCgic2VsZWN0IiksbXVsdGlEZWFsZXJTZWxlY3QuZmlsdGVyKGMpLmJ5TWFrZShhLmZvcm1kYXRhLmN1cnJlbnRNYWtlKSksCiQoIiNtdWx0aXN0ZXAtbXVsdGlhZGRyZXNzIixiKS5maW5kKCJzZWxlY3QiKS5vbigiY2hhbmdlIixmdW5jdGlvbigpeyQodGhpcykuY3NzKCJib3JkZXItY29sb3IiLCIiKTthLmZvcm1kYXRhLm11bHRpX2RlYWxlcl9zZW5kVG89JCh0aGlzKS52YWwoKTtrLmNoZWNrVmFsaWRpdHkoKX0pKX19fSxtdWx0aURlYWxlckZvcm1TdGF0dXM6ZnVuY3Rpb24oKXtyZXR1cm4gMD09PSQoIiNtdWx0aS1hZGRyZXNzLXN1Ym1pc3Npb24iKS5sZW5ndGg\/ITA6IiIhPT1hLmZvcm1kYXRhLm11bHRpX2RlYWxlcl9zZW5kVG99LGVtYWlsQm9keUZvck11bHRpRGVhbGVyOmZ1bmN0aW9uKGMpe2lmKDA9PT0kKCIjbXVsdGktYWRkcmVzcy1zdWJtaXNzaW9uIikubGVuZ3RoKXJldHVybiBjO3ZhciBkPSQoIiNtdWx0aXN0ZXAtbXVsdGlhZGRyZXNzIixiKS5maW5kKCJzZWxlY3QgOnNlbGVjdGVkIiksZT0kKCIjcG9zdExlYWRMYWJlbCIpLnZhbCgpOyJ1bmRlZmluZWQiIT09dHlwZW9mIGUmJmQubGVuZ3RoPwooZT1lLnJlcGxhY2UoInskTVVMVElERUFMRVJOQU1FfSIsZC50ZXh0KCkpLnJlcGxhY2UoInskUE9TVF9MRUFEX0VNQUlMU30iLCIiKSxjPWMucmVwbGFjZSgieyRERUFMRVJfU0VORFRPfSIsZSkpOiQoJ2lucHV0W2RhdGEtZm9ydmFyPSJPVkVSV1JJVFRFUkRFQUxFUiJdJykubGVuZ3RoJiYiIiE9JCgnaW5wdXRbZGF0YS1mb3J2YXI9Ik9WRVJXUklUVEVSREVBTEVSIl0nKS52YWwoKSYmJCgnaW5wdXRbZGF0YS1mb3J2YXI9IkRFQUxFUiJdJykubGVuZ3RoJiYkKCdpbnB1dFtkYXRhLWZvcnZhcj0iT1ZFUldSSVRURVJERUFMRVIiXScpLnZhbCgpIT0kKCdpbnB1dFtkYXRhLWZvcnZhcj0iREVBTEVSIl0nKS52YWwoKT8oZD0kKCJib2R5IikuaGFzQ2xhc3MoIkZSRU5DSCIpPyJDb25jZXNzaW9uIG\/vv70gZXN0IHNpdHXvv70gbGUgdu+\/vWhpY3VsZTogIjoiRGVhbGVyIHdoZXJlIHRoZSB2ZWhpY2xlIGlzIGxvY2F0ZWQ6ICIsZCs9JCgnaW5wdXRbZGF0YS1mb3J2YXI9Ik9WRVJXUklUVEVSREVBTEVSIl0nKS52YWwoKSwKYz1jLnJlcGxhY2UoInskREVBTEVSX1NFTkRUT30iLGQpKTpjPWMucmVwbGFjZSgvPGJyXHM\/XC8+e1wkREVBTEVSX1NFTkRUT30oYnJccz9cLyk\/LywiIikucmVwbGFjZSgieyRERUFMRVJfU0VORFRPfSIsIiIpO3JldHVybiBjfSxjaGVja1ZhbGlkaXR5OmZ1bmN0aW9uKCl7aWYoYS52YWxpZGF0aW9uUnVsZXMuaGFzT3duUHJvcGVydHkoInN0ZXAiK2Euc3RlcCkpZm9yKHZhciBjPTA7YzxhLnZhbGlkYXRpb25SdWxlc1sic3RlcCIrYS5zdGVwXS5sZW5ndGg7YysrKWlmKGtbYS52YWxpZGF0aW9uUnVsZXNbInN0ZXAiK2Euc3RlcF1bY10uZnVuY10oYS5mb3JtZGF0YVthLnZhbGlkYXRpb25SdWxlc1sic3RlcCIrYS5zdGVwXVtjXS52YWx1ZV0pKSQoIiNmaW5hbmNlX211bHRpc3RlcF9mb3JtX25leHRfYnRuIGJ1dHRvbiNmaW5hbmNlX211bHRpc3RlcF9mb3JtX25leHRfYnV0dG9uIixiKS5hZGRDbGFzcygiaXNWYWxpZCIpLCQoIiNmaW5hbmNlX211bHRpc3RlcF9mb3JtX25leHRfYnRuIGJ1dHRvbiNmaW5hbmNlX211bHRpc3RlcF9mb3JtX25leHRfYnV0dG9uX2NvbnNlbnRWVyIsCmIpLmFkZENsYXNzKCJpc1ZhbGlkIik7ZWxzZXskKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV9uZXh0X2J0biBidXR0b24jZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV9uZXh0X2J1dHRvbiIsYikucmVtb3ZlQ2xhc3MoImlzVmFsaWQiKTskKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV9uZXh0X2J0biBidXR0b24jZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV9uZXh0X2J1dHRvbl9jb25zZW50VlciLGIpLnJlbW92ZUNsYXNzKCJpc1ZhbGlkIik7YnJlYWt9ZWxzZSAkKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV9uZXh0X2J0biBidXR0b24jZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV9uZXh0X2J1dHRvbiIsYikuYWRkQ2xhc3MoImlzVmFsaWQiKSwkKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV9uZXh0X2J0biBidXR0b24jZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV9uZXh0X2J1dHRvbl9jb25zZW50VlciLGIpLmFkZENsYXNzKCJpc1ZhbGlkIil9LHBvcHVwTGF1bmNoZWRUcmFjazpmdW5jdGlvbigpe2goIlBvcHVwIGxhdW5jaGVkIik7CiFrLnVzZXJJZCgpJiZhLmZpcnN0U3RlcCYmbG9jYWxTdG9yYWdlLnNldEl0ZW0oImZpbmFuY2VfbXVsdGlzdGVwLmxpbmVhcl9zdGVwIiwxKTtrLnN0ZXBUcmlnZ2VyKCExKX0sc3RlcDJWaWV3ZWRUcmFjazpmdW5jdGlvbigpe2goIlN0ZXAgMiB2aWV3ZWQiKX0sZW1haWxTdGVwVmlld2VkVHJhY2s6ZnVuY3Rpb24oKXtoKCJFbWFpbCBzdGVwIHZpZXdlZCIpfSxwaG9uZVN0ZXBWaWV3ZWRUcmFjazpmdW5jdGlvbigpe2goIlBob25lIHN0ZXAgdmlld2VkIil9LGVtYWlsUHJvdmlkZWRUcmFjazpmdW5jdGlvbigpe2goIkVtYWlsIHByb3ZpZGVkIil9LHBob25lUHJvdmlkZWRUcmFjazpmdW5jdGlvbigpe2goIlBob25lIHByb3ZpZGVkIil9LHN0ZXBUcmlnZ2VyOmZ1bmN0aW9uKGMpe2M9e3N0ZXA6YS5nZXRMaW5lYXJzdGVwKGMpLG1ha2U6YS5mb3JtZGF0YS5jdXJyZW50TWFrZSxtb2RlbDphLmZvcm1kYXRhLmN1cnJlbnRNb2RlbCx5ZWFyOmEuZm9ybWRhdGEuY3VycmVudFllYXIsYm9keVR5cGU6YS5mb3JtZGF0YS52ZWhpY2xlVHlwZSwKc2FsZXNEZXB0OmEuZm9ybWRhdGEudmVoaWNsZVNhbGVzRGVwdCx2ZWhpY2xlQ29sb3I6YS5mb3JtZGF0YS52ZWhpY2xlQ29sb3IsdmVoaWNsZVByaWNlOmEuZm9ybWRhdGEudmVoaWNsZVByaWNlLHZlaGljbGVUYW5zbWlzc2lvbjphLmZvcm1kYXRhLnZlaGljbGVUYW5zbWlzc2lvbix2ZWhpY2xlVHJpbTphLmZvcm1kYXRhLnZlaGljbGVUcmltfTskKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSIsYikudHJpZ2dlcigiZm9ybS5zdGVwIixjKTthLmZpcnN0U3RlcD0hMX19O3dpbmRvdy5hcHBUZXN0PWE7dmFyIFc7JCgiI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gaW5wdXQsICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIHNlbGVjdCwgI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gdGV4dGFyZWEiKS5vbigiY2hhbmdlIGlucHV0IixmdW5jdGlvbigpe2NsZWFyVGltZW91dChXKTtXPXNldFRpbWVvdXQoay5jaGVja1ZhbGlkaXR5LDUwMCl9KTskKCcjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSBpbnB1dFt0eXBlPSJudW1iZXIiXScpLm9uKCJmb2N1cyIsCmZ1bmN0aW9uKCl7JCh0aGlzKS50cmlnZ2VyKCJzZWxlY3QiKX0pO3JldHVybntzdGFydDpQLGhhc1VzZXI6ay5oYXNVc2VyfX0KJChmdW5jdGlvbigpeyQoZG9jdW1lbnQpLm9uKCJyZXZlYWw6b3BlbiIsIiNmaW5hbmNlTXVsdGlzdGVwUG9wdXBDb250YWluZXIiLGZ1bmN0aW9uKCl7JChkb2N1bWVudCkudHJpZ2dlcigiY3JlZGl0Lm11bHRpc3RlcHBvcHVwLnN0YXJ0Iil9KTskKGRvY3VtZW50KS5vbigicmV2ZWFsOm9wZW4iLCIjZmluYW5jZU11bHRpc3RlcEluc3RhbnRQb3B1cENvbnRhaW5lciIsZnVuY3Rpb24oKXskKGRvY3VtZW50KS50cmlnZ2VyKCJjcmVkaXQubXVsdGlzdGVwcG9wdXAuc3RhcnQiKX0pOyQoZG9jdW1lbnQpLm9uKCJjbGljayIsIiNmaW5hbmNlTXVsdGlzdGVwUG9wdXBDb250YWluZXIgI2RyVmlld0Rpc2NsYWltZXJMaW5rIixmdW5jdGlvbigpeyIxIj09JCgiI0ZJTkFOQ0VfTVVMVElTVEVQX2lzVndEUiIpLnZhbCgpJiZ2b2lkIDAhPWRyRGlzY2xhaW1lckpTJiZkckRpc2NsYWltZXJKUy5jbG9zZUFsbE9wZW5EaXNjbGFpbWVyRGl2cygpOyQoIiNmaW5hbmNlTXVsdGlzdGVwUG9wdXBDb250YWluZXIgI2RyRGlzY2xhaW1lckRyYXdlciIpLnNob3coKTsKJCgiI2ZpbmFuY2VNdWx0aXN0ZXBQb3B1cENvbnRhaW5lciAjZHJEaXNjbGFpbWVyRHJhd2VyIikuYWRkQ2xhc3MoIm9wZW4iKX0pOyQoZG9jdW1lbnQpLm9uKCJjbGljayIsIiNmaW5hbmNlTXVsdGlzdGVwUG9wdXBDb250YWluZXIgLmNsb3NlRFJEaXNjbGFpbWVyRHJhd2VyIixmdW5jdGlvbigpeyQoIiNmaW5hbmNlTXVsdGlzdGVwUG9wdXBDb250YWluZXIgI2RyRGlzY2xhaW1lckRyYXdlciIpLnJlbW92ZUNsYXNzKCJvcGVuIik7JCgiI2ZpbmFuY2VNdWx0aXN0ZXBQb3B1cENvbnRhaW5lciAjZHJEaXNjbGFpbWVyRHJhd2VyIikuaGlkZSgpfSk7JChkb2N1bWVudCkub24oImNsaWNrIiwiI2ZpbmFuY2VNdWx0aXN0ZXBJbnN0YW50UG9wdXBDb250YWluZXIgI2RyVmlld0Rpc2NsYWltZXJMaW5rIixmdW5jdGlvbigpeyIxIj09JCgiI0ZJTkFOQ0VfTVVMVElTVEVQX2lzVndEUiIpLnZhbCgpJiZ2b2lkIDAhPWRyRGlzY2xhaW1lckpTJiZkckRpc2NsYWltZXJKUy5jbG9zZUFsbE9wZW5EaXNjbGFpbWVyRGl2cygpOwokKCIjZmluYW5jZU11bHRpc3RlcEluc3RhbnRQb3B1cENvbnRhaW5lciAjZHJEaXNjbGFpbWVyRHJhd2VyIikuc2hvdygpOyQoIiNmaW5hbmNlTXVsdGlzdGVwSW5zdGFudFBvcHVwQ29udGFpbmVyICNkckRpc2NsYWltZXJEcmF3ZXIiKS5hZGRDbGFzcygib3BlbiIpfSk7JChkb2N1bWVudCkub24oImNsaWNrIiwiI2ZpbmFuY2VNdWx0aXN0ZXBJbnN0YW50UG9wdXBDb250YWluZXIgLmNsb3NlRFJEaXNjbGFpbWVyRHJhd2VyIixmdW5jdGlvbigpeyQoIiNmaW5hbmNlTXVsdGlzdGVwSW5zdGFudFBvcHVwQ29udGFpbmVyICNkckRpc2NsYWltZXJEcmF3ZXIiKS5yZW1vdmVDbGFzcygib3BlbiIpOyQoIiNmaW5hbmNlTXVsdGlzdGVwSW5zdGFudFBvcHVwQ29udGFpbmVyICNkckRpc2NsYWltZXJEcmF3ZXIiKS5oaWRlKCl9KX0pOwovKiogL2pzL2NhbGN1bGF0b3JGdW5jdGlvbnMuanMgKiovCnZhciBfX19kMmNfY2FsY3VsYXRvckZ1bmN0aW9uc2pzX2Nfb249IjIwMjYtMDYtMDIgMTE6MzA6MDQiOyd1c2Ugc3RyaWN0JztjbGFzcyBjYWxjdWxhdG9yRnVuY3Rpb25ze2NvbnN0cnVjdG9yKGEpe3RoaXMucGFyZW50PWE7dGhpcy5wYXJlbnROYW1lPXRoaXMucGFyZW50LnJlcGxhY2UoIiMiLCIiKTt0aGlzLnNldFRyaWdnZXJzKCl9aW5pdChhLGIsZSxmLGgsZyxrLHAsbil7dmFyIHE9dGhpcy5wYXJlbnQ7dGhpcy5zdHlsZWlkPWE7dGhpcy5wYXltZW50VHlwZT1iO3RoaXMudHJhZGVJblZhbHVlPSQocSsiIC5wYXltZW50Q2FsY3VsYXRvclRyYWRlSW5GaW5hbCIpLnZhbCgpP3BhcnNlSW50KCQocSsiIC5wYXltZW50Q2FsY3VsYXRvclRyYWRlSW5GaW5hbCIpLnZhbCgpKTowO3RoaXMuZG93bnBheW1lbnQ9MD5lLXRoaXMudHJhZGVJblZhbHVlPzA6ZS10aGlzLnRyYWRlSW5WYWx1ZTt0aGlzLm9wdGlvbnNBbW91bnQ9Zjt0aGlzLnBheW1lbnRGcmVxdWVuY3k9aDt0aGlzLmttQWxsb3dhbmNlPWc7dGhpcy5pc0ludmVudG9yeT1rP2s6ITE7dGhpcy5zbj1wP3A6IiI7dGhpcy52aW49bj8KbjoiIjt0aGlzLmxvYWRQYXltZW50cyghMCl9c2V0SW5pdGlhbFZpZXcoYSl7dmFyIGI9dGhpcy5wYXJlbnQsZT10aGlzOyQoYisiIC5wYXltZW50Q2FsY3VsYXRvckttQWxsb3dhbmNlIG9wdGlvbiIpLnJlbW92ZSgpOyQoYisiIC5wYXltZW50Q2FsY3VsYXRvckRvd25QYXltZW50IikudmFsKHRoaXMuZG93bnBheW1lbnQpOyQoYisiIC5wYXltZW50Q2FsY3VsYXRvckludGVydmFsIikudmFsKGEuY3VycmVudFBheW1lbnRbMF0uaW50ZXJ2YWwpO2xldCBmPSJsZWFzZSI9PWEuY3VycmVudFBheW1lbnRbMF0udHlwZT8ibGVhc2luZyI6ImZpbmFuY2luZyI7JChiKyIgLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFR5cGUgbGkiKS5yZW1vdmVDbGFzcygiYWN0aXZlUGF5bWVudFR5cGUiKTskKGIrIiAucGF5bWVudENhbGN1bGF0b3JQYXltZW50VHlwZSBsaVtkYXRhLXR5cGU9JyIrZisiJ10iKS5hZGRDbGFzcygiYWN0aXZlUGF5bWVudFR5cGUiKTswPT1hLmZpbmFuY2UubGVuZ3RoPyQoYisKIiAucGF5bWVudENhbGN1bGF0b3JQYXltZW50VHlwZUZpbmFuY2UiKS5oaWRlKCk6JChiKyIgLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFR5cGVGaW5hbmNlIikuc2hvdygpO2lmKDA9PWEubGVhc2UubGVuZ3RoKSQoYisiIC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRUeXBlTGVhc2UiKS5oaWRlKCk7ZWxzZXskKGIrIiAucGF5bWVudENhbGN1bGF0b3JQYXltZW50VHlwZUxlYXNlIikuc2hvdygpO2xldCBnPVtdO2EubGVhc2UuZm9yRWFjaChmdW5jdGlvbihrKXstMT09JC5pbkFycmF5KGsua21fYWxsb3dhbmNlLGcpJiZnLnB1c2goay5rbV9hbGxvd2FuY2UpfSk7Zy5mb3JFYWNoKGZ1bmN0aW9uKGspe2xldCBwPWUucGF5bWVudENhbGN1bGF0b3JGb3JtYXROdW1iZXIoay50b0ZpeGVkKDApKTskKGIrIiAucGF5bWVudENhbGN1bGF0b3JLbUFsbG93YW5jZSIpLmFwcGVuZChuZXcgT3B0aW9uKHArIiBrbSIsaykpfSk7dmFyIGg9MkU0O2EuY3VycmVudFBheW1lbnRbMF0mJiJ1bmRlZmluZWQiIT09CnR5cGVvZiBhLmN1cnJlbnRQYXltZW50WzBdLmttX2FsbG93YW5jZSYmKGg9MDxhLmN1cnJlbnRQYXltZW50WzBdLmttX2FsbG93YW5jZT9hLmN1cnJlbnRQYXltZW50WzBdLmttX2FsbG93YW5jZToyRTQpOyQoYisiIC5wYXltZW50Q2FsY3VsYXRvckttQWxsb3dhbmNlIikudmFsKGgpfXRoaXMua21BbGxvd2FuY2U9JChiKyIgLnBheW1lbnRDYWxjdWxhdG9yS21BbGxvd2FuY2UiKS52YWwoKTsibGVhc2luZyI9PWY\/JChiKyIgLnBheW1lbnRDYWxjdWxhdG9yS21BbGxvd2FuY2VDb250YWluZXIiKS5zaG93KCk6JChiKyIgLnBheW1lbnRDYWxjdWxhdG9yS21BbGxvd2FuY2VDb250YWluZXIiKS5oaWRlKCk7JCgiYm9keSIpLm9uKCJjbGljayB0YXAiLGIrIiAuZmluYW5jaW5nLW9wdGlvbi5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRXcmFwcGVyICoiLGZ1bmN0aW9uKCl7JCh0aGlzKS5maW5kKCdpbnB1dFtuYW1lPSJzZWxlY3RlZFBheW1lbnQiXScpLnByb3AoImNoZWNrZWQiLCJjaGVja2VkIikudHJpZ2dlcigiY2hhbmdlIil9KTsKJCgiYm9keSIpLm9uKCJjaGFuZ2UiLGIrJyBpbnB1dFtuYW1lPSJzZWxlY3RlZFBheW1lbnQiXScsZnVuY3Rpb24oKXt2YXIgZz0kKHRoaXMpLnZhbCgpLGs9JCh0aGlzKS5hdHRyKCJkYXRhLXJhdGV0eXBlIik7JChiKyIgLmZpbmFuY2luZy1vcHRpb24iKS5yZW1vdmVDbGFzcygic2VsZWN0ZWQiKTskKCdpbnB1dFtuYW1lPSJzZWxlY3RlZFBheW1lbnRXaXRoVGF4ZXMiXVt2YWx1ZT0iJytnKyciXVtkYXRhLXJhdGV0eXBlPSInK2srJyJdJykuY2xvc2VzdCgiLmZpbmFuY2luZy1vcHRpb24iKS5hZGRDbGFzcygic2VsZWN0ZWQiKTskKCdpbnB1dFtuYW1lPSJzZWxlY3RlZFBheW1lbnRXaXRoVGF4ZXMiXVt2YWx1ZT0iJytnKyciXVtkYXRhLXJhdGV0eXBlPSInK2srJyJdJykucHJvcCgiY2hlY2tlZCIsITApOyQodGhpcykuY2xvc2VzdCgiLmZpbmFuY2luZy1vcHRpb24iKS5hZGRDbGFzcygic2VsZWN0ZWQiKX0pOyQoImJvZHkiKS5vbigiY2hhbmdlIixiKycgaW5wdXRbbmFtZT0ic2VsZWN0ZWRQYXltZW50V2l0aFRheGVzIl0nLApmdW5jdGlvbigpe3ZhciBnPSQodGhpcykudmFsKCksaz0kKHRoaXMpLmF0dHIoImRhdGEtcmF0ZXR5cGUiKTskKGIrIiAuZmluYW5jaW5nLW9wdGlvbiIpLnJlbW92ZUNsYXNzKCJzZWxlY3RlZCIpOyQoJ2lucHV0W25hbWU9InNlbGVjdGVkUGF5bWVudCJdW3ZhbHVlPSInK2crJyJdW2RhdGEtcmF0ZXR5cGU9IicraysnIl0nKS5jbG9zZXN0KCIuZmluYW5jaW5nLW9wdGlvbiIpLmFkZENsYXNzKCJzZWxlY3RlZCIpOyQoJ2lucHV0W25hbWU9InNlbGVjdGVkUGF5bWVudCJdW3ZhbHVlPSInK2crJyJdW2RhdGEtcmF0ZXR5cGU9IicraysnIl0nKS5wcm9wKCJjaGVja2VkIiwhMCk7JCh0aGlzKS5jbG9zZXN0KCIuZmluYW5jaW5nLW9wdGlvbiIpLmFkZENsYXNzKCJzZWxlY3RlZCIpfSl9c2V0VHJpZ2dlcnMoKXt2YXIgYT10aGlzLnBhcmVudCxiPXRoaXM7JChhKyIgLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFR5cGUgbGkiKS5vZmYoImNsaWNrIik7JChhKyIgLnBheW1lbnRDYWxjdWxhdG9ySW5jbHVkZVRheENoZWNrIikub2ZmKCJjaGFuZ2UiKTsKJChhKyIgLnBheW1lbnRDYWxjdWxhdG9ySW50ZXJ2YWwiKS5vZmYoImNoYW5nZSIpOyQoYSsiIC5wYXltZW50Q2FsY3VsYXRvckttQWxsb3dhbmNlIikub2ZmKCJjaGFuZ2UiKTskKGErIiAucGF5bWVudENhbGN1bGF0b3JEb3duUGF5bWVudCIpLm9mZigiYmx1ciIpOyQoYSsiIC5wYXltZW50Q2FsY3VsYXRvclRyYWRlSW5GaW5hbCIpLm9mZigiYmx1ciIpOyQoYSsiIC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRUeXBlIGxpIikub24oImNsaWNrIixmdW5jdGlvbigpeyQoYSsiIC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRUeXBlIGxpIikucmVtb3ZlQ2xhc3MoImFjdGl2ZVBheW1lbnRUeXBlIik7JCh0aGlzKS5hZGRDbGFzcygiYWN0aXZlUGF5bWVudFR5cGUiKTtiLnBheW1lbnRUeXBlPSQodGhpcykuYXR0cigiZGF0YS10eXBlIik7ImxlYXNpbmciPT0kKHRoaXMpLmF0dHIoImRhdGEtdHlwZSIpPyQoYSsiIC5wYXltZW50Q2FsY3VsYXRvckttQWxsb3dhbmNlQ29udGFpbmVyIikuc2hvdygpOgokKGErIiAucGF5bWVudENhbGN1bGF0b3JLbUFsbG93YW5jZUNvbnRhaW5lciIpLmhpZGUoKTtiLmxvYWRQYXltZW50cygpfSk7JChhKyIgLnBheW1lbnRDYWxjdWxhdG9ySW5jbHVkZVRheENoZWNrIikub24oImNoYW5nZSIsZnVuY3Rpb24oKXskKHRoaXMpLmlzKCI6Y2hlY2tlZCIpPygkKGErIiAucGF5bWVudENhbGN1bGF0b3JQYXltZW50Q29udGFpbmVyIikuaGlkZSgpLCQoYSsiIC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRDb250YWluZXJXaXRoVGF4ZXMiKS5zaG93KCkpOigkKGErIiAucGF5bWVudENhbGN1bGF0b3JQYXltZW50Q29udGFpbmVyV2l0aFRheGVzIikuaGlkZSgpLCQoYSsiIC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRDb250YWluZXIiKS5zaG93KCkpfSk7JChhKyIgLnBheW1lbnRDYWxjdWxhdG9ySW5jbHVkZVRheENoZWNrIikudHJpZ2dlcigiY2hhbmdlIik7JChhKyIgLnBheW1lbnRDYWxjdWxhdG9ySW50ZXJ2YWwiKS5vbigiY2hhbmdlIixmdW5jdGlvbigpe2IucGF5bWVudEZyZXF1ZW5jeT0KJCh0aGlzKS52YWwoKTtiLmxvYWRQYXltZW50cygpfSk7JChhKyIgLnBheW1lbnRDYWxjdWxhdG9yS21BbGxvd2FuY2UiKS5vbigiY2hhbmdlIixmdW5jdGlvbigpe2Iua21BbGxvd2FuY2U9JCh0aGlzKS52YWwoKTtiLmxvYWRQYXltZW50cygpfSk7JChhKyIgLnBheW1lbnRDYWxjdWxhdG9yRG93blBheW1lbnQiKS5vbigiYmx1ciIsZnVuY3Rpb24oKXtsZXQgZT1wYXJzZUludCgkKHRoaXMpLnZhbCgpKT9wYXJzZUludCgkKHRoaXMpLnZhbCgpKTowO2IuZG93bnBheW1lbnQ9ZTtiLmxvYWRQYXltZW50cygpfSk7JChhKyIgLnBheW1lbnRDYWxjdWxhdG9yVHJhZGVJbkZpbmFsIikub24oImJsdXIiLGZ1bmN0aW9uKCl7bGV0IGU9cGFyc2VJbnQoJCh0aGlzKS5hdHRyKCJtYXgiKSl8fDAsZj1wYXJzZUludCgkKHRoaXMpLnZhbCgpKXx8MDtmPWY+ZT9lOmY7JCh0aGlzKS52YWwoZik7Yi50cmFkZUluVmFsdWU9ZjtfbG9jYWxTdG9yYWdlU2V0KCJ0cmFkZWluX2N1cnJlbnRfdmFsdWUiLApKU09OLnN0cmluZ2lmeSh7dmFsdWU6Zn0pLDEpO2IubG9hZFBheW1lbnRzKCl9KX1sb2FkUGF5bWVudHMoYSl7YT1hP2E6ITE7bGV0IGI9KCQoImJvZHkiKS5oYXNDbGFzcygiRU5HTElTSCIpPyIvZW4iOiIvZnIiKSsiL2FqYXgvZ2V0UGF5bWVudERhdGFGb3JTdHlsZUlEP3dzd2lkdGg9MCI7dmFyIGU9dGhpcztlLnRyYWRlSW5WYWx1ZT1wYXJzZUludCgkKGUucGFyZW50KyIgLnBheW1lbnRDYWxjdWxhdG9yVHJhZGVJbkZpbmFsIikudmFsKCk\/JChlLnBhcmVudCsiIC5wYXltZW50Q2FsY3VsYXRvclRyYWRlSW5GaW5hbCIpLnZhbCgpOjApOyQuYWpheCh7dXJsOmIsdHlwZToiUE9TVCIsZGF0YVR5cGU6IkpTT04iLGRhdGE6e3N0eWxlaWQ6ZS5zdHlsZWlkLHBheW1lbnRUeXBlOmUucGF5bWVudFR5cGUsZG93bnBheW1lbnQ6ZS5kb3ducGF5bWVudCtlLnRyYWRlSW5WYWx1ZSxvcHRpb25zQW1vdW50OmUub3B0aW9uc0Ftb3VudCxwYXltZW50RnJlcXVlbmN5OmUucGF5bWVudEZyZXF1ZW5jeSwKa21BbGxvd2FuY2U6ZS5rbUFsbG93YW5jZSxvcHRpb25zOmUub3B0aW9uc0Ftb3VudCxpc0ludmVudG9yeTplLmlzSW52ZW50b3J5LHNuOmUuc24sdmluOmUudmluLGZvcmNlVGF4ZXM6ITB9LHN1Y2Nlc3M6ZnVuY3Rpb24oZil7Zi5jdXJyZW50UGF5bWVudCYmZi5jdXJyZW50UGF5bWVudC5sZW5ndGg\/KGEmJmUuc2V0SW5pdGlhbFZpZXcoZiksInVuZGVmaW5lZCIhPT10eXBlb2YgY2FsY0N1clBheW1lbnQmJihjYWxjQ3VyUGF5bWVudD1mKSxlLnNob3dQYXltZW50cyhmLmN1cnJlbnRQYXltZW50LGYucGF5bWVudEZlZXMsZi5tYWtlaWQsZiksJCgiYm9keSAiK2UucGFyZW50KS50cmlnZ2VyKCJwYXltZW50c1JlYWR5IikpOiQoImJvZHkgIitlLnBhcmVudCkudHJpZ2dlcigibm9QYXltZW50Iil9fSl9c2hvd1BheW1lbnRzKGEsYixlLGYpe3ZhciBoPXRoaXM7JChoLnBhcmVudCsiIC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRDb250YWluZXIiKS5odG1sKCIiKTskKGgucGFyZW50KwoiIC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRDb250YWluZXJXaXRoVGF4ZXMiKS5odG1sKCIiKTtsZXQgZz0iMSI9PSQoIiNwYXltZW50Q2FsY3VsYXRvclJvdW5kUGF5bWVudCIpLnZhbCgpPzA6MjsiMSI9PSQoIiNwYXltZW50Q2FsY3VsYXRvclN0cmlrZVBheW1lbnQiKS52YWwoKSYmJCgiI3BheW1lbnRDYWxjdWxhdG9yU3RyaWtlUGF5bWVudE9wdGlvbiIpLnZhbCgpO2xldCBrPVtdLHA9JCgiI29lbUNlcnRpZmljYXRpb24iKS52YWwoKXx8MDs1PGEubGVuZ3RoP2EuZm9yRWFjaChmdW5jdGlvbihsKXsoMD09bC50ZXJtJTEyfHw2ND09bC50ZXJtfHw0MD09ZSYmNTE9PWwudGVybXx8MjA9PWUmJlsyNywzMCwzOSw0Ml0uaW5jbHVkZXMobC50ZXJtKXx8WzE2LDIxXS5pbmNsdWRlcyhlKXx8NDI9PWwudGVybSYmMTAxND09cHx8WzMwLDQyXS5pbmNsdWRlcyhsLnRlcm0pJiZbNDcxNTYyLDQ3MTU2Myw0NzE1NjRdLmluY2x1ZGVzKHBhcnNlSW50KHNldHRpbmdzLnN0eWxlaWQpKXx8ClsxNiwxXS5pbmNsdWRlcyhlKSYmWzI4LDQwXS5pbmNsdWRlcyhsLnRlcm0pfHwyNz09bC50ZXJtJiYyNz09ZXx8NTI9PWwudGVybSYmMzk9PWUpJiZrLnB1c2gobCl9KTprPWE7ImRlc2MiPT0kKCIjUEFZTUVOVF9URVJNX09SREVSIikudmFsKCkmJihrPWsucmV2ZXJzZSgpKTt2YXIgbj17fSxxPSExO2suZm9yRWFjaChmdW5jdGlvbihsLG0pe09iamVjdC5oYXNPd24obixsLnRlcm0pP3E9ITA6bltsLnRlcm1dPXt9O25bbC50ZXJtXVtsLnJhdGVfdHlwZV09bX0pO3ZhciBIPVtdO2FbMF0mJiJsZWFzZSI9PWFbMF0udHlwZSYmInVuZGVmaW5lZCIhPT10eXBlb2YgYVswXS5rbV9hbGxvd2FuY2UmJihhPTA8YVswXS5rbV9hbGxvd2FuY2U\/YVswXS5rbV9hbGxvd2FuY2U6MkU0LCQoaC5wYXJlbnQrIiAucGF5bWVudENhbGN1bGF0b3JLbUFsbG93YW5jZSIpLnZhbChhKSx0aGlzLmttQWxsb3dhbmNlPSQoaC5wYXJlbnQrIiAucGF5bWVudENhbGN1bGF0b3JLbUFsbG93YW5jZSIpLnZhbCgpKTsKbGV0IEk9Zi50b3RhbEluY2VudGl2ZSxKPXE\/JCgiI0xPV0VTVFBBWU1FTlRfTEFCRUwiKS52YWwoKToiIixLPXE\/JCgiI0xPV0VTVFJBVEVfTEFCRUwiKS52YWwoKToiIixYPTAsej0iIixBPSIiOzE9PSQoIiNpc0RSU2l0ZSIpLmxlbmd0aCYmIjEiPT0kKCIjaXNEUlNpdGUiKS52YWwoKSYmKGE9aC5wYXJlbnROYW1lLnNwbGl0KCIjIiksZj1oLnBhcmVudE5hbWUsdm9pZCAwIT1hWzBdJiYoZj0kLnRyaW0oYVswXSkpLGE9YCR7Zn0tZGlzY2xhaW1lcnMtc3VwZXJzY3JpcHRzLTMtZGl2YCxmPWAke2Z9LWRpc2NsYWltZXJzLXN1cGVyc2NyaXB0cy0yLWRpdmAsIjE3NzEiPT09ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNpdGVJRCIpLnZhbHVlfHwiMjIwOSI9PT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2l0ZUlEIikudmFsdWUpJiYoej0nPGEgaHJlZj0iamF2YXNjcmlwdDp2b2lkKDApIiBjbGFzcz0iZGlzY2xhaW1lcnNTdXBlcnNjcmlwdHMgY2FsY0Rpc2NsYWltZXJzU3VwZXJzY3JpcHRzICIgZGF0YS1kaXNjbGFpbWVyLWRpdmlkPSInKwphKyciIGRhdGEtZGlzY2xhaW1lci1pZD0iMyI+PHN1cD4zPC9zdXA+PC9hPicsQT0nPGEgaHJlZj0iamF2YXNjcmlwdDp2b2lkKDApIiBjbGFzcz0iZGlzY2xhaW1lcnNTdXBlcnNjcmlwdHMgY2FsY0Rpc2NsYWltZXJzU3VwZXJzY3JpcHRzICIgZGF0YS1kaXNjbGFpbWVyLWRpdmlkPSInK2YrJyIgZGF0YS1kaXNjbGFpbWVyLWlkPSIyIj48c3VwPjI8L3N1cD48L2E+Jyk7JC5lYWNoKGssZnVuY3Rpb24obCxtKXtpZighSC5pbmNsdWRlcyhtLnRlcm0pKXtILnB1c2gobS50ZXJtKTt2YXIgZD0ic3RhbmRhcmQiPT1tLnJhdGVfdHlwZXx8Mj5PYmplY3Qua2V5cyhuW20udGVybV0pLmxlbmd0aD9tOmtbblttLnRlcm1dLnN0YW5kYXJkXSxjPTI9PU9iamVjdC5rZXlzKG5bbS50ZXJtXSkubGVuZ3RoP2tbblttLnRlcm1dLnN1YnZlbnRlZF06ITEseD0yPT1PYmplY3Qua2V5cyhuW20udGVybV0pLmxlbmd0aD9uW20udGVybV0uc3VidmVudGVkOiExLHY9bS50ZXJtLHk9bS5kb3ducGF5bWVudC50b0ZpeGVkKDApLApCPWQucGF5bWVudC50b0ZpeGVkKGcpLFk9ZC5wYXltZW50LnRvRml4ZWQoZyk7Qj1CLnJlcGxhY2UoL1wuKFswLTldKikvLGZ1bmN0aW9uKEMsdyl7cmV0dXJuJzxzdXAgY2xhc3M9InBkIj4nK3crIjwvc3VwPiJ9KTttPWQucGF5bWVudFdpdGhUYXhlcy50b0ZpeGVkKGcpO3ZhciBaPWQucGF5bWVudFdpdGhUYXhlcy50b0ZpeGVkKGcpO209bS5yZXBsYWNlKC9cLihbMC05XSopLyxmdW5jdGlvbihDLHcpe3JldHVybic8c3VwIGNsYXNzPSJwZCI+Jyt3KyI8L3N1cD4ifSk7dmFyIEw9ZC5yYXRlLGFhPSJwYXltZW50IitsO2w9InBheW1lbnQiK2wrIndpdGhUYXhlcyI7dj0kKCJib2R5IikuaGFzQ2xhc3MoIkVOR0xJU0giKT8iPHNwYW4+Iit2KyI8L3NwYW4+IG1vbnRoIjoiPHNwYW4+Iit2KyI8L3NwYW4+IG1vaXMiO3k9YDxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPiR7eX08L3NwYW4+YCsoJCgiYm9keSIpLmhhc0NsYXNzKCJFTkdMSVNIIik\/IiBkb3duIHBheW1lbnQiOiIgY29tcHRhbnQiKTsKdmFyIE09IiIhPSQoIiNkaXNjbGFpbWVyUHJpY2VUZXh0IikudmFsKCk\/IjxkaXY+IiskKCIjZGlzY2xhaW1lclByaWNlVGV4dCIpLnZhbCgpKyI8L2Rpdj4iOiIrdHgiLEQ9ZC5jYWxjdWxhdGVkRWZmZWN0aXZlUmF0ZT9kLmNhbGN1bGF0ZWRFZmZlY3RpdmVSYXRlOjAsTj1oLmZvcm1hdEVmZmVjdGl2ZVJhdGVUZXh0Q2FsYyhELGQucmF0ZSwiIiwnY2xhc3M9Ii1mczEwIicpLE89ZC50b3RhbE9ibGlnYXRpb25BbW91bnQ\/ZC50b3RhbE9ibGlnYXRpb25BbW91bnQ6MCxQPSdkYXRhLXRvb2x0aXA9IicrZC50b29sdGlwKyciJyxRPSdkYXRhLXRvb2x0aXA9IicrZC50b29sdGlwV2l0aFRheGVzKyciJyxyLGJhPW51bGwhPShyPWQubTJkX2ZpbmFuY2UpP3I6STtyPSJzaW5nbGUtY29sdW1uIjt2YXIgRT0ic21hbGwtYm94Iix0PSIiLHU9IiI7aWYoYyl7cj0ibGVmdC1zZWN0aW9uIjtFPSIiO3Q9Yy5wYXltZW50LnRvRml4ZWQoZyk7bGV0IEM9Yy5wYXltZW50LnRvRml4ZWQoZyk7dD10LnJlcGxhY2UoL1wuKFswLTldKikvLApmdW5jdGlvbihjYSxGKXtyZXR1cm4nPHN1cCBjbGFzcz0icGQiPicrRisiPC9zdXA+In0pO3U9Yy5wYXltZW50V2l0aFRheGVzLnRvRml4ZWQoZyk7bGV0IHc9Yy5wYXltZW50V2l0aFRheGVzLnRvRml4ZWQoZyk7dT11LnJlcGxhY2UoL1wuKFswLTldKikvLGZ1bmN0aW9uKGNhLEYpe3JldHVybic8c3VwIGNsYXNzPSJwZCI+JytGKyI8L3N1cD4ifSk7dmFyIFI9Yy5yYXRlLnRvRml4ZWQoMiksZGE9InBheW1lbnQiK3g7eD0icGF5bWVudCIreCsid2l0aFRheGVzIjtsZXQgRz1jLmNhbGN1bGF0ZWRFZmZlY3RpdmVSYXRlP2MuY2FsY3VsYXRlZEVmZmVjdGl2ZVJhdGU6MCxTPWguZm9ybWF0RWZmZWN0aXZlUmF0ZVRleHRDYWxjKEcsYy5yYXRlLCIiLCdjbGFzcz0iLWZzMTAiJyksVD1jLnRvdGFsT2JsaWdhdGlvbkFtb3VudD9jLnRvdGFsT2JsaWdhdGlvbkFtb3VudDowLFU9J2RhdGEtdG9vbHRpcD0iJytjLnRvb2x0aXArJyInLFY9J2RhdGEtdG9vbHRpcD0iJytjLnRvb2x0aXBXaXRoVGF4ZXMrCiciJyxXPWMubTJkX2ZpbmFuY2U7dD0nXHQ8ZGl2IGlkPSInK2RhKyciIGNsYXNzPSJyaWdodC1zZWN0aW9uIHBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFdyYXBwZXJDb250YWluZXIiICcrVSsnPlx0XHQ8ZGl2IGNsYXNzPSJsb3dlc3QtcmF0ZSI+JytSKyclIDxpIGNsYXNzPSJmYXMgZmEtaW5mby1jaXJjbGUgaW5mby1pY29uIHBheW1lbnRUb29sdGlwIHJpZ2h0VG9vbHRpcCIgJytVKyI+PC9pPiIrUysnPC9kaXY+XHRcdDxkaXYgY2xhc3M9ImFjdHVhbC1wYXltZW50Ij48c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj4nK3QrIjwvc3Bhbj4iK3orJzwvZGl2Plx0XHQ8ZGl2IGNsYXNzPSJkZXRhaWxzVGF4Ij4nK00rJzwvZGl2Plx0XHQ8ZGl2IGNsYXNzPSJyYWRpby1jb250YWluZXIgcGF5bWVudENhbGN1bGF0b3JQYXltZW50U2VsZWN0Ij5cdFx0XHQ8aW5wdXRcdFx0XHRcdFx0dHlwZT0icmFkaW8iXHRcdFx0XHRcdG5hbWU9InNlbGVjdGVkUGF5bWVudCJcdFx0XHRcdFx0dmFsdWU9IicrCmMudGVybSsnIlx0XHRcdFx0XHRkYXRhLWJhc2VwYXltZW50PSInK2MucGF5bWVudCsnIlx0XHRcdFx0XHRkYXRhLXJlYWxwYXltZW50PSInK2MucGF5bWVudCsnIlx0XHRcdFx0XHRkYXRhLXJhdGV0eXBlPSInK2MucmF0ZV90eXBlKyciXHRcdFx0XHRcdGRhdGEtZGlzcGxheWVkcGF5bWVudD0iJytDKyciXHRcdFx0XHRcdGRhdGEtcmVzaWR1YWw9IicrYy5yZXNpZHVhbCsnIlx0XHRcdFx0XHRkYXRhLXRvdGFsaW50ZXJlc3Q9IicrYy50b3RhbEludGVyZXN0KyciXHRcdFx0XHRcdGRhdGEtbHV4ZVRheEFtb3VudD0iJytjLmx1eGVUYXhBbW91bnQrJyJcdFx0XHRcdFx0ZGF0YS1lZmZlY3RpdmVSYXRlPSInK0crJyJcdFx0XHRcdFx0ZGF0YS10b3RhbENvc3Q9IicrVCsnIlx0XHRcdFx0XHRkYXRhLXJhdGU9IicrYy5yYXRlKyciICAgICAgICAgICAgICAgICBkYXRhLXJlc2lkdWFsPSInK2MucmVzaWR1YWxWYWx1ZSsnIiAgICAgICAgICAgICAgICAgZGF0YS10b3RhbGluY2VudGl2ZT0iJysKVysnIiAgICAgICAgICAgICAgICAgZGF0YS1pbml0aWFsUHJpY2U9IicrYy5pbml0aWFsUHJpY2UrJyIgICAgICAgICAgICAgICAgIGRhdGEtZmluYWxQcmljZT0iJytjLmZpbmFsUHJpY2UrJyIgICAgICAgICAgICAgICAgIGRhdGEtZmVlc0xpc3Q9IicrYnRvYShKU09OLnN0cmluZ2lmeShjLmZlZXNMaXN0KSkrJyIgICAgICAgICAgICAgICAgIGRhdGEtaW5jZW50aXZlc0xpc3Q9IicrYnRvYShKU09OLnN0cmluZ2lmeShjLmluY2VudGl2ZXNMaXN0KSkrJyIgICAgICAgICAgICAgICAgIGRhdGEtZ3N0PSIwIiAgICAgICAgICAgICAgICAgZGF0YS1oc3Q9IjAiICAgICAgICAgICAgICAgICBkYXRhLXBzdD0iMCJcdFx0XHRcdD5cdFx0XHQ8bGFiZWwgY2xhc3M9ImZpbmFuY2VDYWxjIj4nK0srIjwvbGFiZWw+XHRcdDwvZGl2Plx0PC9kaXY+Ijt1PSdcdDxkaXYgaWQ9IicreCsnIiBjbGFzcz0icmlnaHQtc2VjdGlvbiBwYXltZW50Q2FsY3VsYXRvclBheW1lbnRXcmFwcGVyQ29udGFpbmVyIiAnKwpWKyc+XHRcdDxkaXYgY2xhc3M9Imxvd2VzdC1yYXRlIj4nK1IrJyUgPGkgY2xhc3M9ImZhcyBmYS1pbmZvLWNpcmNsZSBpbmZvLWljb24gcGF5bWVudFRvb2x0aXAgcmlnaHRUb29sdGlwIiAnK1YrIj48L2k+IitTKyc8L2Rpdj5cdFx0PGRpdiBjbGFzcz0iYWN0dWFsLXBheW1lbnQiPjxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPicrdSsiPC9zcGFuPiIrQSsnPC9kaXY+XHRcdDxkaXYgY2xhc3M9InJhZGlvLWNvbnRhaW5lciBwYXltZW50Q2FsY3VsYXRvclBheW1lbnRTZWxlY3QiPlx0XHRcdDxpbnB1dFx0XHRcdFx0XHR0eXBlPSJyYWRpbyJcdFx0XHRcdFx0bmFtZT0ic2VsZWN0ZWRQYXltZW50V2l0aFRheGVzIlx0XHRcdFx0XHR2YWx1ZT0iJytjLnRlcm0rJyJcdFx0XHRcdFx0ZGF0YS1iYXNlcGF5bWVudD0iJytjLnBheW1lbnQrJyJcdFx0XHRcdFx0ZGF0YS1yZWFscGF5bWVudD0iJytjLnBheW1lbnRXaXRoVGF4ZXMrJyJcdFx0XHRcdFx0ZGF0YS1yYXRldHlwZT0iJytjLnJhdGVfdHlwZSsKJyJcdFx0XHRcdFx0ZGF0YS1kaXNwbGF5ZWRwYXltZW50PSInK3crJyJcdFx0XHRcdFx0ZGF0YS1yZXNpZHVhbD0iJytjLnJlc2lkdWFsV2l0aFRheGVzKyciXHRcdFx0XHRcdGRhdGEtdG90YWxpbnRlcmVzdD0iJytjLnRvdGFsSW50ZXJlc3RXaXRoVGF4ZXMrJyJcdFx0XHRcdFx0ZGF0YS1sdXhlVGF4QW1vdW50PSInK2MubHV4ZVRheEFtb3VudCsnIlx0XHRcdFx0XHRkYXRhLWVmZmVjdGl2ZVJhdGU9IicrRysnIlx0XHRcdFx0XHRkYXRhLXRvdGFsQ29zdD0iJytUKyciXHRcdFx0XHRcdGRhdGEtcmF0ZT0iJytjLnJhdGUrJyIgICAgICAgICAgICAgICAgIGRhdGEtcmVzaWR1YWw9IicrYy5yZXNpZHVhbFZhbHVlV2l0aFRheGVzKyciICAgICAgICAgICAgICAgICBkYXRhLXRvdGFsaW5jZW50aXZlPSInK1crJyIgICAgICAgICAgICAgICAgIGRhdGEtaW5pdGlhbFByaWNlPSInK2MuaW5pdGlhbFByaWNlKyciICAgICAgICAgICAgICAgICBkYXRhLWZpbmFsUHJpY2U9IicrYy5maW5hbFByaWNlKwonIiAgICAgICAgICAgICAgICAgZGF0YS1mZWVzTGlzdD0iJytidG9hKEpTT04uc3RyaW5naWZ5KGMuZmVlc0xpc3QpKSsnIiAgICAgICAgICAgICAgICAgZGF0YS1pbmNlbnRpdmVzTGlzdD0iJytidG9hKEpTT04uc3RyaW5naWZ5KGMuaW5jZW50aXZlc0xpc3QpKSsnIiAgICAgICAgICAgICAgICAgZGF0YS1nc3Q9IicrYy5nc3QrJyIgICAgICAgICAgICAgICAgIGRhdGEtaHN0PSInK2MuaHN0KyciICAgICAgICAgICAgICAgICBkYXRhLXBzdD0iJytjLnBzdCsnIlx0XHRcdFx0Plx0XHRcdDxsYWJlbCBjbGFzcz0iZmluYW5jZUNhbGMiPicrSysiPC9sYWJlbD5cdFx0PC9kaXY+XHQ8L2Rpdj4ifWM9JzxkaXYgY2xhc3M9ImZpbmFuY2luZy1vcHRpb24gcGF5bWVudENhbGN1bGF0b3JQYXltZW50V3JhcHBlciAnK0UrJyI+XHQ8ZGl2IGNsYXNzPSJ0ZXJtIj4nK3YrJzwvZGl2Plx0PGRpdiBjbGFzcz0iZG93bi1wYXltZW50Ij4nK3krJzwvZGl2Plx0PGRpdiBjbGFzcz0ic2VwYXJhdG9yUGF5Ij48L2Rpdj5cdDxkaXYgY2xhc3M9ImNvbnRlbnQtY29udGFpbmVyIj5cdFx0PGRpdiBpZD0iJysKYWErJyIgY2xhc3M9IicrcisnIHBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFdyYXBwZXJDb250YWluZXIiICcrUCsnPlx0XHRcdDxkaXYgY2xhc3M9Imxvd2VzdC1wYXltZW50Ij48c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj4nK0IrIjwvc3Bhbj4iK3orJyA8aSBjbGFzcz0iZmFzIGZhLWluZm8tY2lyY2xlIGluZm8taWNvbiBwYXltZW50VG9vbHRpcCBsZWZ0VG9vbHRpcCIgJytQKyc+PC9pPjwvZGl2Plx0XHRcdDxkaXYgY2xhc3M9ImRldGFpbHNUYXgiPicrTSsnPC9kaXY+XHRcdFx0PGRpdiBjbGFzcz0iYWN0dWFsLXJhdGUiPicrTCsiJSAiK04rJzwvZGl2Plx0XHRcdDxkaXYgY2xhc3M9InJhZGlvLWNvbnRhaW5lciBwYXltZW50Q2FsY3VsYXRvclBheW1lbnRTZWxlY3QiPlx0XHRcdFx0PGlucHV0IFx0XHRcdFx0XHR0eXBlPSJyYWRpbyJcdFx0XHRcdFx0XHRcdFx0XHRcdG5hbWU9InNlbGVjdGVkUGF5bWVudCJcdFx0XHRcdFx0dmFsdWU9IicrZC50ZXJtKyciXHRcdFx0XHRcdGRhdGEtYmFzZXBheW1lbnQ9IicrCmQucGF5bWVudCsnIlx0XHRcdFx0XHRkYXRhLXJlYWxwYXltZW50PSInK2QucGF5bWVudCsnIlx0XHRcdFx0XHRkYXRhLXJhdGV0eXBlPSInK2QucmF0ZV90eXBlKyciXHRcdFx0XHRcdGRhdGEtZGlzcGxheWVkcGF5bWVudD0iJytZKyciXHRcdFx0XHRcdGRhdGEtcmVzaWR1YWw9IicrZC5yZXNpZHVhbCsnIlx0XHRcdFx0XHRkYXRhLXRvdGFsaW50ZXJlc3Q9IicrZC50b3RhbEludGVyZXN0KyciXHRcdFx0XHRcdGRhdGEtbHV4ZVRheEFtb3VudD0iJytkLmx1eGVUYXhBbW91bnQrJyJcdFx0XHRcdFx0ZGF0YS1lZmZlY3RpdmVSYXRlPSInK0QrJyJcdFx0XHRcdFx0ZGF0YS10b3RhbENvc3Q9IicrTysnIlx0XHRcdFx0XHRkYXRhLXJhdGU9IicrZC5yYXRlKyciICAgICAgICAgICAgICAgICBkYXRhLXJlc2lkdWFsPSInK2QucmVzaWR1YWxWYWx1ZSsnIiAgICAgICAgICAgICAgICAgZGF0YS10b3RhbGluY2VudGl2ZT0iJytiYSsnIiAgICAgICAgICAgICAgICAgZGF0YS1pbml0aWFsUHJpY2U9IicrCmQuaW5pdGlhbFByaWNlKyciICAgICAgICAgICAgICAgICBkYXRhLWZpbmFsUHJpY2U9IicrZC5maW5hbFByaWNlKyciICAgICAgICAgICAgICAgICBkYXRhLWZlZXNMaXN0PSInK2J0b2EoSlNPTi5zdHJpbmdpZnkoZC5mZWVzTGlzdCkpKyciICAgICAgICAgICAgICAgICBkYXRhLWluY2VudGl2ZXNMaXN0PSInK2J0b2EoSlNPTi5zdHJpbmdpZnkoZC5pbmNlbnRpdmVzTGlzdCkpKyciICAgICAgICAgICAgICAgICBkYXRhLWdzdD0iMCIgICAgICAgICAgICAgICAgIGRhdGEtaHN0PSIwIiAgICAgICAgICAgICAgICAgZGF0YS1wc3Q9IjAiXHRcdFx0XHQ+XHRcdFx0XHQ8bGFiZWwgY2xhc3M9ImZpbmFuY2VDYWxjIj4nK0orIjwvbGFiZWw+XHRcdFx0PC9kaXY+XHRcdDwvZGl2PiIrdCsiXHQ8L2Rpdj48L2Rpdj4iO2Q9JzxkaXYgY2xhc3M9ImZpbmFuY2luZy1vcHRpb24gcGF5bWVudENhbGN1bGF0b3JQYXltZW50V3JhcHBlciAnK0UrJyI+XHQ8ZGl2IGNsYXNzPSJ0ZXJtIj4nK3YrJzwvZGl2Plx0PGRpdiBjbGFzcz0iZG93bi1wYXltZW50Ij4nKwp5Kyc8L2Rpdj5cdDxkaXYgY2xhc3M9InNlcGFyYXRvclBheSI+PC9kaXY+XHQ8ZGl2IGNsYXNzPSJjb250ZW50LWNvbnRhaW5lciI+XHRcdDxkaXYgaWQ9IicrbCsnIiBjbGFzcz0iJytyKycgcGF5bWVudENhbGN1bGF0b3JQYXltZW50V3JhcHBlckNvbnRhaW5lciIgJytRKyc+XHRcdFx0PGRpdiBjbGFzcz0ibG93ZXN0LXBheW1lbnQiPjxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPicrbSsiPC9zcGFuPiIrQSsnIDxpIGNsYXNzPSJmYXMgZmEtaW5mby1jaXJjbGUgaW5mby1pY29uIHBheW1lbnRUb29sdGlwIGxlZnRUb29sdGlwIiAnK1ErJz48L2k+PC9kaXY+XHRcdFx0PGRpdiBjbGFzcz0iYWN0dWFsLXJhdGUiPicrTCsiJSAiK04rJzwvZGl2Plx0XHRcdDxkaXYgY2xhc3M9InJhZGlvLWNvbnRhaW5lciBwYXltZW50Q2FsY3VsYXRvclBheW1lbnRTZWxlY3QiPlx0XHRcdFx0PGlucHV0IFx0XHRcdFx0XHR0eXBlPSJyYWRpbyJcdFx0XHRcdFx0XHRcdFx0XHRcdG5hbWU9InNlbGVjdGVkUGF5bWVudFdpdGhUYXhlcyJcdFx0XHRcdFx0dmFsdWU9IicrCmQudGVybSsnIlx0XHRcdFx0XHRkYXRhLWJhc2VwYXltZW50PSInK2QucGF5bWVudCsnIlx0XHRcdFx0XHRkYXRhLXJlYWxwYXltZW50PSInK2QucGF5bWVudFdpdGhUYXhlcysnIlx0XHRcdFx0XHRkYXRhLXJhdGV0eXBlPSInK2QucmF0ZV90eXBlKyciXHRcdFx0XHRcdGRhdGEtZGlzcGxheWVkcGF5bWVudD0iJytaKyciXHRcdFx0XHRcdGRhdGEtcmVzaWR1YWw9IicrZC5yZXNpZHVhbCsnIlx0XHRcdFx0XHRkYXRhLXRvdGFsaW50ZXJlc3Q9IicrZC50b3RhbEludGVyZXN0KyciXHRcdFx0XHRcdGRhdGEtbHV4ZVRheEFtb3VudD0iJytkLmx1eGVUYXhBbW91bnQrJyJcdFx0XHRcdFx0ZGF0YS1lZmZlY3RpdmVSYXRlPSInK0QrJyJcdFx0XHRcdFx0ZGF0YS10b3RhbENvc3Q9IicrTysnIlx0XHRcdFx0XHRkYXRhLXJhdGU9IicrZC5yYXRlKyciICAgICAgICAgICAgICAgICBkYXRhLXJlc2lkdWFsPSInK2QucmVzaWR1YWxWYWx1ZVdpdGhUYXhlcysnIiAgICAgICAgICAgICAgICAgZGF0YS10b3RhbGluY2VudGl2ZT0iJysKSSsnIiAgICAgICAgICAgICAgICAgZGF0YS1pbml0aWFsUHJpY2U9IicrZC5pbml0aWFsUHJpY2UrJyIgICAgICAgICAgICAgICAgIGRhdGEtZmluYWxQcmljZT0iJytkLmZpbmFsUHJpY2UrJyIgICAgICAgICAgICAgICAgIGRhdGEtZmVlc0xpc3Q9IicrYnRvYShKU09OLnN0cmluZ2lmeShkLmZlZXNMaXN0KSkrJyIgICAgICAgICAgICAgICAgIGRhdGEtaW5jZW50aXZlc0xpc3Q9IicrYnRvYShKU09OLnN0cmluZ2lmeShkLmluY2VudGl2ZXNMaXN0KSkrJyIgICAgICAgICAgICAgICAgIGRhdGEtZ3N0PSInK2QuZ3N0KyciICAgICAgICAgICAgICAgICBkYXRhLWhzdD0iJytkLmhzdCsnIiAgICAgICAgICAgICAgICAgZGF0YS1wc3Q9IicrZC5wc3QrJyJcdFx0XHRcdD5cdFx0XHRcdDxsYWJlbCBjbGFzcz0iZmluYW5jZUNhbGMiPicrSisiPC9sYWJlbD5cdFx0XHQ8L2Rpdj5cdFx0PC9kaXY+Iit1KyJcdDwvZGl2PjwvZGl2PiI7JChoLnBhcmVudCsiIC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRDb250YWluZXIiKS5hcHBlbmQoYyk7CiQoaC5wYXJlbnQrIiAucGF5bWVudENhbGN1bGF0b3JQYXltZW50Q29udGFpbmVyV2l0aFRheGVzIikuYXBwZW5kKGQpO1grK319KTtoLnNldFBheW1lbnRDYWxjdWxhdG9yUG9wdXBUb29sdGlwKCl9c2V0UGF5bWVudENhbGN1bGF0b3JQb3B1cFRvb2x0aXAoKXt2YXIgYT10aGlzLnBhcmVudCxiPXRoaXMucGFyZW50TmFtZTtpZigiMSI9PSQoIiNpc21vYmlsZSIpLnZhbCgpKSQoYSsiIC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRXcmFwcGVyIC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRXcmFwcGVyQ29udGFpbmVyIC5wYXltZW50VG9vbHRpcCIpLmVhY2goZnVuY3Rpb24oZil7dHJ5e3ZhciBoPSQodGhpcykuYXR0cigiZGF0YS10b29sdGlwIiksZz0kKHRoaXMpLmhhc0NsYXNzKCJsZWZ0VG9vbHRpcCIpPyJ3ZXN0IjoiZWFzdCI7JCh0aGlzKS5kYXJrVG9vbHRpcCh7Y29udGVudDpoLGdyYXZpdHk6Zyx0aGVtZToibGlnaHQiLHRyaWdnZXI6ImNsaWNrIixhbmltYXRpb246ImZsaXBJbiJ9KX1jYXRjaChrKXt9fSk7CmVsc2V7Zm9yKHZhciBlPTA7NT5lO2UrKykkKCIjZGFya3Rvb2x0aXAtIitiKyJwYXltZW50IitlKS5sZW5ndGgmJigkKCIjZGFya3Rvb2x0aXAtIitiKyJwYXltZW50IitlKS5yZW1vdmUoKSwkKCIjZGFya3Rvb2x0aXAtIitiKyJwYXltZW50IitlKyJ3aXRoVGF4ZXMiKS5yZW1vdmUoKSk7JChhKyIgLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFdyYXBwZXIgLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFdyYXBwZXJDb250YWluZXIiKS5lYWNoKGZ1bmN0aW9uKCl7dHJ5e3ZhciBmPSQodGhpcykuYXR0cigiZGF0YS10b29sdGlwIik7JCh0aGlzKS5kYXJrVG9vbHRpcCh7Y29udGVudDpmLGdyYXZpdHk6Im5vcnRoIix0aGVtZToibGlnaHQiLHRyaWdnZXI6ImhvdmVyIixhbmltYXRpb246Im5vbmUifSl9Y2F0Y2goaCl7fX0pfX1wYXltZW50Q2FsY3VsYXRvckZvcm1hdE51bWJlcihhKXtyZXR1cm4gYS5yZXBsYWNlKC9cQig\/PShcZHszfSkrKD8hXGQpKS9nLCIsIil9Zm9ybWF0RWZmZWN0aXZlUmF0ZVRleHRDYWxjKGEsCmIsZSxmLGgpe2Y9dm9pZCAwPT09Zj8iIjpmO2g9dm9pZCAwPT09aD8hMDpoO2I9cGFyc2VGbG9hdChhKS1wYXJzZUZsb2F0KGIpO3ZhciBnPXN0b3JlLmdldCgiZmllbGRzIikuQURNSU5fU0hPV19FRkZFQ1RJVkVfUkFURV9TRUxFQ1Q7aWYoImZhbHNlIj09PXN0b3JlLmdldCgiZmllbGRzIikuQURNSU5fU0hPV19FRkZFQ1RJVkVfUkFURXx8ImV2ZXJ5d2hlcmUiIT1nJiYwPj1iKXJldHVybiIiO2I9c3RvcmUuZ2V0KCJpMThuIikuRUZGRUNUSVZFX1JBVEVfTEFCRUw7Zz0kKCIjaXNtb2JpbGUiKS52YWwoKT8iPGJyLz4iOiIgIjtiPWIucmVwbGFjZSgieyRSQVRFfSIsYDxzcGFuICR7ZX0+JHthfSU8L3NwYW4+YCk7cmV0dXJuYCR7Z30ke2g\/YDxkaXYgJHtmfT5gOiIifSggJHtifSApJHtoPyI8L2Rpdj4iOiIifWB9fTsKLyoqIC9qcy92YW5pbGxhanMvbW9kYWwuanMgKiovCnZhciBfX19kMmNfbW9kYWxqc19jX29uPSIyMDI2LTAyLTI3IDE1OjMwOjAzIjsndXNlIHN0cmljdCc7Y29uc3QgTW9kYWxzPXt9LE1vZGFsPWZ1bmN0aW9uKGgsYil7bGV0IGM9e307Y29uc3Qgbj17dGl0bGU6aCxjb250ZW50VHlwZToibm9kZSIsY29udGVudFNyYzoiIixhZnRlckluaXQ6KCk9Pnt9fTtsZXQgaz0iIjtjb25zdCBlPWh0bWxUb05vZGUoJzxkaXYgY2xhc3M9Im1vZGFsLW92ZXJsYXkiPjwvZGl2PicpLGw9ZnVuY3Rpb24oYSl7YS5vbmNsaWNrPSgpPT5mKCJjYW5jZWwiKX0scD1mdW5jdGlvbigpeyhjLnF1ZXJ5U2VsZWN0b3IoIi5va2F5Iil8fCExKS5vbmNsaWNrPSgpPT5mKCJva2F5Iik7Y29uc3QgYT1jLnF1ZXJ5U2VsZWN0b3JBbGwoIi5jYW5jZWwiKXx8ITE7MTxhLmxlbmd0aD8kLmVhY2goYSxmdW5jdGlvbihkLGcpe2woZyl9KTphJiZsKGFbMF0pfSxtPWZ1bmN0aW9uKGEpeyJFc2NhcGUiPT1hLmtleSYmKGEucHJldmVudERlZmF1bHQoKSxhLnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoImtleXVwIiwKbSx7Y2FwdHVyZTohMH0pLGYoKSl9LGY9YT0+e2E9YXx8IiI7c3dpdGNoKGEpe2Nhc2UgImNhbmNlbCI6ImZ1bmN0aW9uIj09dHlwZW9mIGIub25CZWZvcmVDYW5jZWwmJmIub25CZWZvcmVDYW5jZWwuY2FsbCgpO2JyZWFrO2Nhc2UgIm9rYXkiOiJmdW5jdGlvbiI9PXR5cGVvZiBiLm9uQmVmb3JlU2F2ZSYmYi5vbkJlZm9yZVNhdmUuY2FsbCgpfSJmdW5jdGlvbiI9PXR5cGVvZiBiLm9uQmVmb3JlQ2xvc2UmJmIub25CZWZvcmVDbG9zZS5jYWxsKGEpO2RvY3VtZW50LmJvZHkuc3R5bGUub3ZlcmZsb3dZPSJhdXRvIjtjLmNsYXNzTGlzdC50b2dnbGUoImlzLWFjdGl2ZSIsITEpO2UucGFyZW50Tm9kZSYmKGUucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChlKSxrLmZvY3VzKCkpfTtiPU9iamVjdC5hc3NpZ24obixiKTsoZnVuY3Rpb24oKXtjb25zdCBhPStuZXcgRGF0ZTt2YXIgZD0iIjtzd2l0Y2goYi5jb250ZW50VHlwZSl7Y2FzZSAibm9kZSI6ZD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZChiLmNvbnRlbnRTcmMpOwpkLmhpZGRlbj0hMTticmVhaztjYXNlICJpZnJhbWUiOmQ9aHRtbFRvTm9kZShgPGRpdiBjbGFzcz0iaWZyYW1lLXdyYXBwZXIiPgoJCQkJCQkJCTxpZnJhbWUKCQkJCQkJCQkJc3JjPSIke2IuY29udGVudFNyY30iCgkJCQkJCQkJCWZyYW1lYm9yZGVyPSIwIgoJCQkJCQkJCQlhbGxvd2Z1bGxzY3JlZW49InRydWUiCgkJCQkJCQkJCXdlYmtpdGFsbG93ZnVsbHNjcmVlbj0idHJ1ZSIKCQkJCQkJCQkJbW96YWxsb3dmdWxsc2NyZWVuPSJ0cnVlIgoJCQkJCQkJCT48L2lmcmFtZT4KCQkJCQkJCTwvZGl2PmApfWxldCBnPSIiO2Iuc2hvd1llc05vQnV0dG9ucyYmKGc9YDxkaXYgY2xhc3M9Im1vZGFsLWZvb3RlciAtcCAtLXM1IGZsZXgtYmV0d2VlbiI+CgkJCQk8ZGl2PgoJCQkJCTxzcGFuIGNsYXNzPSIgLW10MiBtYWluVGV4dCAtYm9sZCI+JHtiLmJ1dHRvblRleHR8fCIifTwvc3Bhbj4KCQkJCTwvZGl2PgoJCQkJPGRpdj4KCQkJCQk8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImJ0biBjYW5jZWwiIGRhdGEtZGlzbWlzcz0ibW9kYWwiPiR7Yi5ub0J1dHRvbnx8Ik5vIn08L2J1dHRvbj4KCQkJCQk8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImJ0biBidG4tbWFpbjIgb2theSIgZGF0YS1kaXNtaXNzPSJtb2RhbCI+JHtiLnllc0J1dHRvbnx8IlllcyJ9PC9idXR0b24+CgkJCQk8L2Rpdj5gKTtjPWh0bWxUb05vZGUoYAoJCQk8Ym94LWxjIGNsYXNzPSJtb2RhbC13cmFwcGVyIC1iZy13aGl0ZSAtLXMwIj4KCQkJCTxzdGFjay1sYyBjbGFzcz0iLS1zMCI+CgkJCQkJPGRpdiBjbGFzcz0ibW9kYWwtaGVhZGVyIGZsZXgtYmV0d2VlbiAtcCAtLXM1Ij4KCQkJCQkJPGRpdiBjbGFzcz0ibW9kYWwtdGl0bGUgdHh0LXVwcGVyIC1mcy1sIC1ib2xkIj4KCQkJCQkJCSR7Yi50aXRsZX0KCQkJCQkJPC9kaXY+CgkJCQkJCTxkaXYgY2xhc3M9Im1vZGFsLWNvbnRyb2wiPgoJCQkJCQkJPGJ1dHRvbiB0aXRsZT0iY2xvc2UiIGNsYXNzPSJ4LWNsb3NlIGNhbmNlbCI+PC9idXR0b24+CgkJCQkJCTwvZGl2PgoJCQkJCTwvZGl2PgoJCQkJCTxkaXYgY2xhc3M9Im1vZGFsLWJvZHkiIGlkPSJxLSR7YX0iPgoKCQkJCQk8L2Rpdj4KCQkJCQkke2d9CgkJCQk8L3N0YWNrLWxjPgoJCQk8L2JveC1sYz4KCQlgKTtjLmlkPWBtb2RhbCR7aH1gO2Muc2V0QXR0cmlidXRlKCJyb2xlIiwiZGlhbG9nIik7Yy5zZXRBdHRyaWJ1dGUoImFyaWEtbGFiZWxsZWRieSIsYHEtJHthfWApO2MucXVlcnlTZWxlY3RvcigiLm1vZGFsLWJvZHkiKS5hcHBlbmRDaGlsZChkKTtkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGMpO2RvY3VtZW50LmJvZHkuc3R5bGUub3ZlcmZsb3dZPSJoaWRkZW4iO2IuYWZ0ZXJJbml0KCk7cCgpfSkoKTtyZXR1cm57ZGlzcGxheTpmdW5jdGlvbigpe2s9ZG9jdW1lbnQuYWN0aXZlRWxlbWVudDtkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGUpO2RvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImtleXVwIixtLHtjYXB0dXJlOiEwfSk7c2V0VGltZW91dChmdW5jdGlvbigpe2MuY2xhc3NMaXN0LnRvZ2dsZSgiaXMtYWN0aXZlIiwhMCl9LDEpfSxjbG9zZTpmfX07Ci8qKiAvanMvdmFuaWxsYWpzL2xlYWQuanMgKiovCnZhciBfX19kMmNfbGVhZGpzX2Nfb249IjIwMjYtMDQtMDIgMTM6MzA6MDMiOyd1c2Ugc3RyaWN0Jzt2YXIgJGpzY29tcD0kanNjb21wfHx7fTskanNjb21wLnNjb3BlPXt9OyRqc2NvbXAuQVNTVU1FX0VTNT0hMTskanNjb21wLkFTU1VNRV9OT19OQVRJVkVfTUFQPSExOyRqc2NvbXAuQVNTVU1FX05PX05BVElWRV9TRVQ9ITE7JGpzY29tcC5TSU1QTEVfRlJPVU5EX1BPTFlGSUxMPSExOyRqc2NvbXAuSVNPTEFURV9QT0xZRklMTFM9ITE7JGpzY29tcC5GT1JDRV9QT0xZRklMTF9QUk9NSVNFPSExOyRqc2NvbXAuRk9SQ0VfUE9MWUZJTExfUFJPTUlTRV9XSEVOX05PX1VOSEFORExFRF9SRUpFQ1RJT049ITE7JGpzY29tcC5kZWZpbmVQcm9wZXJ0eT0kanNjb21wLkFTU1VNRV9FUzV8fCJmdW5jdGlvbiI9PXR5cGVvZiBPYmplY3QuZGVmaW5lUHJvcGVydGllcz9PYmplY3QuZGVmaW5lUHJvcGVydHk6ZnVuY3Rpb24oYixhLGMpe2lmKGI9PUFycmF5LnByb3RvdHlwZXx8Yj09T2JqZWN0LnByb3RvdHlwZSlyZXR1cm4gYjtiW2FdPWMudmFsdWU7cmV0dXJuIGJ9OwokanNjb21wLmdldEdsb2JhbD1mdW5jdGlvbihiKXtiPVsib2JqZWN0Ij09dHlwZW9mIGdsb2JhbFRoaXMmJmdsb2JhbFRoaXMsYiwib2JqZWN0Ij09dHlwZW9mIHdpbmRvdyYmd2luZG93LCJvYmplY3QiPT10eXBlb2Ygc2VsZiYmc2VsZiwib2JqZWN0Ij09dHlwZW9mIGdsb2JhbCYmZ2xvYmFsXTtmb3IodmFyIGE9MDthPGIubGVuZ3RoOysrYSl7dmFyIGM9YlthXTtpZihjJiZjLk1hdGg9PU1hdGgpcmV0dXJuIGN9dGhyb3cgRXJyb3IoIkNhbm5vdCBmaW5kIGdsb2JhbCBvYmplY3QiKTt9OyRqc2NvbXAuZ2xvYmFsPSRqc2NvbXAuZ2V0R2xvYmFsKHRoaXMpOyRqc2NvbXAuSVNfU1lNQk9MX05BVElWRT0iZnVuY3Rpb24iPT09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PT10eXBlb2YgU3ltYm9sKCJ4Iik7JGpzY29tcC5UUlVTVF9FUzZfUE9MWUZJTExTPSEkanNjb21wLklTT0xBVEVfUE9MWUZJTExTfHwkanNjb21wLklTX1NZTUJPTF9OQVRJVkU7JGpzY29tcC5wb2x5ZmlsbHM9e307CiRqc2NvbXAucHJvcGVydHlUb1BvbHlmaWxsU3ltYm9sPXt9OyRqc2NvbXAuUE9MWUZJTExfUFJFRklYPSIkanNjcCQiO3ZhciAkanNjb21wJGxvb2t1cFBvbHlmaWxsZWRWYWx1ZT1mdW5jdGlvbihiLGEpe3ZhciBjPSRqc2NvbXAucHJvcGVydHlUb1BvbHlmaWxsU3ltYm9sW2FdO2lmKG51bGw9PWMpcmV0dXJuIGJbYV07Yz1iW2NdO3JldHVybiB2b2lkIDAhPT1jP2M6YlthXX07JGpzY29tcC5wb2x5ZmlsbD1mdW5jdGlvbihiLGEsYyxlKXthJiYoJGpzY29tcC5JU09MQVRFX1BPTFlGSUxMUz8kanNjb21wLnBvbHlmaWxsSXNvbGF0ZWQoYixhLGMsZSk6JGpzY29tcC5wb2x5ZmlsbFVuaXNvbGF0ZWQoYixhLGMsZSkpfTsKJGpzY29tcC5wb2x5ZmlsbFVuaXNvbGF0ZWQ9ZnVuY3Rpb24oYixhLGMsZSl7Yz0kanNjb21wLmdsb2JhbDtiPWIuc3BsaXQoIi4iKTtmb3IoZT0wO2U8Yi5sZW5ndGgtMTtlKyspe3ZhciBoPWJbZV07aWYoIShoIGluIGMpKXJldHVybjtjPWNbaF19Yj1iW2IubGVuZ3RoLTFdO2U9Y1tiXTthPWEoZSk7YSE9ZSYmbnVsbCE9YSYmJGpzY29tcC5kZWZpbmVQcm9wZXJ0eShjLGIse2NvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTphfSl9OwokanNjb21wLnBvbHlmaWxsSXNvbGF0ZWQ9ZnVuY3Rpb24oYixhLGMsZSl7dmFyIGg9Yi5zcGxpdCgiLiIpO2I9MT09PWgubGVuZ3RoO2U9aFswXTtlPSFiJiZlIGluICRqc2NvbXAucG9seWZpbGxzPyRqc2NvbXAucG9seWZpbGxzOiRqc2NvbXAuZ2xvYmFsO2Zvcih2YXIgcT0wO3E8aC5sZW5ndGgtMTtxKyspe3ZhciByPWhbcV07aWYoIShyIGluIGUpKXJldHVybjtlPWVbcl19aD1oW2gubGVuZ3RoLTFdO2M9JGpzY29tcC5JU19TWU1CT0xfTkFUSVZFJiYiZXM2Ij09PWM\/ZVtoXTpudWxsO2E9YShjKTtudWxsIT1hJiYoYj8kanNjb21wLmRlZmluZVByb3BlcnR5KCRqc2NvbXAucG9seWZpbGxzLGgse2NvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTphfSk6YSE9PWMmJih2b2lkIDA9PT0kanNjb21wLnByb3BlcnR5VG9Qb2x5ZmlsbFN5bWJvbFtoXSYmKGM9MUU5Kk1hdGgucmFuZG9tKCk+Pj4wLCRqc2NvbXAucHJvcGVydHlUb1BvbHlmaWxsU3ltYm9sW2hdPSRqc2NvbXAuSVNfU1lNQk9MX05BVElWRT8KJGpzY29tcC5nbG9iYWwuU3ltYm9sKGgpOiRqc2NvbXAuUE9MWUZJTExfUFJFRklYK2MrIiQiK2gpLCRqc2NvbXAuZGVmaW5lUHJvcGVydHkoZSwkanNjb21wLnByb3BlcnR5VG9Qb2x5ZmlsbFN5bWJvbFtoXSx7Y29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmF9KSkpfTskanNjb21wLnVuZGVyc2NvcmVQcm90b0NhbkJlU2V0PWZ1bmN0aW9uKCl7dmFyIGI9e2E6ITB9LGE9e307dHJ5e3JldHVybiBhLl9fcHJvdG9fXz1iLGEuYX1jYXRjaChjKXt9cmV0dXJuITF9OwokanNjb21wLnNldFByb3RvdHlwZU9mPSRqc2NvbXAuVFJVU1RfRVM2X1BPTFlGSUxMUyYmImZ1bmN0aW9uIj09dHlwZW9mIE9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2Y6JGpzY29tcC51bmRlcnNjb3JlUHJvdG9DYW5CZVNldCgpP2Z1bmN0aW9uKGIsYSl7Yi5fX3Byb3RvX189YTtpZihiLl9fcHJvdG9fXyE9PWEpdGhyb3cgbmV3IFR5cGVFcnJvcihiKyIgaXMgbm90IGV4dGVuc2libGUiKTtyZXR1cm4gYn06bnVsbDskanNjb21wLmFycmF5SXRlcmF0b3JJbXBsPWZ1bmN0aW9uKGIpe3ZhciBhPTA7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGE8Yi5sZW5ndGg\/e2RvbmU6ITEsdmFsdWU6YlthKytdfTp7ZG9uZTohMH19fTskanNjb21wLmFycmF5SXRlcmF0b3I9ZnVuY3Rpb24oYil7cmV0dXJue25leHQ6JGpzY29tcC5hcnJheUl0ZXJhdG9ySW1wbChiKX19OwokanNjb21wLm1ha2VJdGVyYXRvcj1mdW5jdGlvbihiKXt2YXIgYT0idW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmU3ltYm9sLml0ZXJhdG9yJiZiW1N5bWJvbC5pdGVyYXRvcl07cmV0dXJuIGE\/YS5jYWxsKGIpOiRqc2NvbXAuYXJyYXlJdGVyYXRvcihiKX07JGpzY29tcC5nZW5lcmF0b3I9e307JGpzY29tcC5nZW5lcmF0b3IuZW5zdXJlSXRlcmF0b3JSZXN1bHRJc09iamVjdF89ZnVuY3Rpb24oYil7aWYoIShiIGluc3RhbmNlb2YgT2JqZWN0KSl0aHJvdyBuZXcgVHlwZUVycm9yKCJJdGVyYXRvciByZXN1bHQgIitiKyIgaXMgbm90IGFuIG9iamVjdCIpO307CiRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQ9ZnVuY3Rpb24oKXt0aGlzLmlzUnVubmluZ189ITE7dGhpcy55aWVsZEFsbEl0ZXJhdG9yXz1udWxsO3RoaXMueWllbGRSZXN1bHQ9dm9pZCAwO3RoaXMubmV4dEFkZHJlc3M9MTt0aGlzLmZpbmFsbHlBZGRyZXNzXz10aGlzLmNhdGNoQWRkcmVzc189MDt0aGlzLmZpbmFsbHlDb250ZXh0c189dGhpcy5hYnJ1cHRDb21wbGV0aW9uXz1udWxsfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5zdGFydF89ZnVuY3Rpb24oKXtpZih0aGlzLmlzUnVubmluZ18pdGhyb3cgbmV3IFR5cGVFcnJvcigiR2VuZXJhdG9yIGlzIGFscmVhZHkgcnVubmluZyIpO3RoaXMuaXNSdW5uaW5nXz0hMH07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuc3RvcF89ZnVuY3Rpb24oKXt0aGlzLmlzUnVubmluZ189ITF9OwokanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5qdW1wVG9FcnJvckhhbmRsZXJfPWZ1bmN0aW9uKCl7dGhpcy5uZXh0QWRkcmVzcz10aGlzLmNhdGNoQWRkcmVzc198fHRoaXMuZmluYWxseUFkZHJlc3NffTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5uZXh0Xz1mdW5jdGlvbihiKXt0aGlzLnlpZWxkUmVzdWx0PWJ9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLnRocm93Xz1mdW5jdGlvbihiKXt0aGlzLmFicnVwdENvbXBsZXRpb25fPXtleGNlcHRpb246Yixpc0V4Y2VwdGlvbjohMH07dGhpcy5qdW1wVG9FcnJvckhhbmRsZXJfKCl9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLnJldHVybj1mdW5jdGlvbihiKXt0aGlzLmFicnVwdENvbXBsZXRpb25fPXtyZXR1cm46Yn07dGhpcy5uZXh0QWRkcmVzcz10aGlzLmZpbmFsbHlBZGRyZXNzX307CiRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmp1bXBUaHJvdWdoRmluYWxseUJsb2Nrcz1mdW5jdGlvbihiKXt0aGlzLmFicnVwdENvbXBsZXRpb25fPXtqdW1wVG86Yn07dGhpcy5uZXh0QWRkcmVzcz10aGlzLmZpbmFsbHlBZGRyZXNzX307JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUueWllbGQ9ZnVuY3Rpb24oYixhKXt0aGlzLm5leHRBZGRyZXNzPWE7cmV0dXJue3ZhbHVlOmJ9fTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS55aWVsZEFsbD1mdW5jdGlvbihiLGEpe2I9JGpzY29tcC5tYWtlSXRlcmF0b3IoYik7dmFyIGM9Yi5uZXh0KCk7JGpzY29tcC5nZW5lcmF0b3IuZW5zdXJlSXRlcmF0b3JSZXN1bHRJc09iamVjdF8oYyk7aWYoYy5kb25lKXRoaXMueWllbGRSZXN1bHQ9Yy52YWx1ZSx0aGlzLm5leHRBZGRyZXNzPWE7ZWxzZSByZXR1cm4gdGhpcy55aWVsZEFsbEl0ZXJhdG9yXz1iLHRoaXMueWllbGQoYy52YWx1ZSxhKX07CiRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmp1bXBUbz1mdW5jdGlvbihiKXt0aGlzLm5leHRBZGRyZXNzPWJ9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmp1bXBUb0VuZD1mdW5jdGlvbigpe3RoaXMubmV4dEFkZHJlc3M9MH07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuc2V0Q2F0Y2hGaW5hbGx5QmxvY2tzPWZ1bmN0aW9uKGIsYSl7dGhpcy5jYXRjaEFkZHJlc3NfPWI7dm9pZCAwIT1hJiYodGhpcy5maW5hbGx5QWRkcmVzc189YSl9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLnNldEZpbmFsbHlCbG9jaz1mdW5jdGlvbihiKXt0aGlzLmNhdGNoQWRkcmVzc189MDt0aGlzLmZpbmFsbHlBZGRyZXNzXz1ifHwwfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5sZWF2ZVRyeUJsb2NrPWZ1bmN0aW9uKGIsYSl7dGhpcy5uZXh0QWRkcmVzcz1iO3RoaXMuY2F0Y2hBZGRyZXNzXz1hfHwwfTsKJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuZW50ZXJDYXRjaEJsb2NrPWZ1bmN0aW9uKGIpe3RoaXMuY2F0Y2hBZGRyZXNzXz1ifHwwO2I9dGhpcy5hYnJ1cHRDb21wbGV0aW9uXy5leGNlcHRpb247dGhpcy5hYnJ1cHRDb21wbGV0aW9uXz1udWxsO3JldHVybiBifTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5lbnRlckZpbmFsbHlCbG9jaz1mdW5jdGlvbihiLGEsYyl7Yz90aGlzLmZpbmFsbHlDb250ZXh0c19bY109dGhpcy5hYnJ1cHRDb21wbGV0aW9uXzp0aGlzLmZpbmFsbHlDb250ZXh0c189W3RoaXMuYWJydXB0Q29tcGxldGlvbl9dO3RoaXMuY2F0Y2hBZGRyZXNzXz1ifHwwO3RoaXMuZmluYWxseUFkZHJlc3NfPWF8fDB9OwokanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5sZWF2ZUZpbmFsbHlCbG9jaz1mdW5jdGlvbihiLGEpe2E9dGhpcy5maW5hbGx5Q29udGV4dHNfLnNwbGljZShhfHwwKVswXTtpZihhPXRoaXMuYWJydXB0Q29tcGxldGlvbl89dGhpcy5hYnJ1cHRDb21wbGV0aW9uX3x8YSl7aWYoYS5pc0V4Y2VwdGlvbilyZXR1cm4gdGhpcy5qdW1wVG9FcnJvckhhbmRsZXJfKCk7dm9pZCAwIT1hLmp1bXBUbyYmdGhpcy5maW5hbGx5QWRkcmVzc188YS5qdW1wVG8\/KHRoaXMubmV4dEFkZHJlc3M9YS5qdW1wVG8sdGhpcy5hYnJ1cHRDb21wbGV0aW9uXz1udWxsKTp0aGlzLm5leHRBZGRyZXNzPXRoaXMuZmluYWxseUFkZHJlc3NffWVsc2UgdGhpcy5uZXh0QWRkcmVzcz1ifTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5mb3JJbj1mdW5jdGlvbihiKXtyZXR1cm4gbmV3ICRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQuUHJvcGVydHlJdGVyYXRvcihiKX07CiRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQuUHJvcGVydHlJdGVyYXRvcj1mdW5jdGlvbihiKXt0aGlzLm9iamVjdF89Yjt0aGlzLnByb3BlcnRpZXNfPVtdO2Zvcih2YXIgYSBpbiBiKXRoaXMucHJvcGVydGllc18ucHVzaChhKTt0aGlzLnByb3BlcnRpZXNfLnJldmVyc2UoKX07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5Qcm9wZXJ0eUl0ZXJhdG9yLnByb3RvdHlwZS5nZXROZXh0PWZ1bmN0aW9uKCl7Zm9yKDswPHRoaXMucHJvcGVydGllc18ubGVuZ3RoOyl7dmFyIGI9dGhpcy5wcm9wZXJ0aWVzXy5wb3AoKTtpZihiIGluIHRoaXMub2JqZWN0XylyZXR1cm4gYn1yZXR1cm4gbnVsbH07JGpzY29tcC5nZW5lcmF0b3IuRW5naW5lXz1mdW5jdGlvbihiKXt0aGlzLmNvbnRleHRfPW5ldyAkanNjb21wLmdlbmVyYXRvci5Db250ZXh0O3RoaXMucHJvZ3JhbV89Yn07CiRqc2NvbXAuZ2VuZXJhdG9yLkVuZ2luZV8ucHJvdG90eXBlLm5leHRfPWZ1bmN0aW9uKGIpe3RoaXMuY29udGV4dF8uc3RhcnRfKCk7aWYodGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yXylyZXR1cm4gdGhpcy55aWVsZEFsbFN0ZXBfKHRoaXMuY29udGV4dF8ueWllbGRBbGxJdGVyYXRvcl8ubmV4dCxiLHRoaXMuY29udGV4dF8ubmV4dF8pO3RoaXMuY29udGV4dF8ubmV4dF8oYik7cmV0dXJuIHRoaXMubmV4dFN0ZXBfKCl9OwokanNjb21wLmdlbmVyYXRvci5FbmdpbmVfLnByb3RvdHlwZS5yZXR1cm5fPWZ1bmN0aW9uKGIpe3RoaXMuY29udGV4dF8uc3RhcnRfKCk7dmFyIGE9dGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yXztpZihhKXJldHVybiB0aGlzLnlpZWxkQWxsU3RlcF8oInJldHVybiJpbiBhP2FbInJldHVybiJdOmZ1bmN0aW9uKGMpe3JldHVybnt2YWx1ZTpjLGRvbmU6ITB9fSxiLHRoaXMuY29udGV4dF8ucmV0dXJuKTt0aGlzLmNvbnRleHRfLnJldHVybihiKTtyZXR1cm4gdGhpcy5uZXh0U3RlcF8oKX07CiRqc2NvbXAuZ2VuZXJhdG9yLkVuZ2luZV8ucHJvdG90eXBlLnRocm93Xz1mdW5jdGlvbihiKXt0aGlzLmNvbnRleHRfLnN0YXJ0XygpO2lmKHRoaXMuY29udGV4dF8ueWllbGRBbGxJdGVyYXRvcl8pcmV0dXJuIHRoaXMueWllbGRBbGxTdGVwXyh0aGlzLmNvbnRleHRfLnlpZWxkQWxsSXRlcmF0b3JfWyJ0aHJvdyJdLGIsdGhpcy5jb250ZXh0Xy5uZXh0Xyk7dGhpcy5jb250ZXh0Xy50aHJvd18oYik7cmV0dXJuIHRoaXMubmV4dFN0ZXBfKCl9OwokanNjb21wLmdlbmVyYXRvci5FbmdpbmVfLnByb3RvdHlwZS55aWVsZEFsbFN0ZXBfPWZ1bmN0aW9uKGIsYSxjKXt0cnl7dmFyIGU9Yi5jYWxsKHRoaXMuY29udGV4dF8ueWllbGRBbGxJdGVyYXRvcl8sYSk7JGpzY29tcC5nZW5lcmF0b3IuZW5zdXJlSXRlcmF0b3JSZXN1bHRJc09iamVjdF8oZSk7aWYoIWUuZG9uZSlyZXR1cm4gdGhpcy5jb250ZXh0Xy5zdG9wXygpLGU7dmFyIGg9ZS52YWx1ZX1jYXRjaChxKXtyZXR1cm4gdGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yXz1udWxsLHRoaXMuY29udGV4dF8udGhyb3dfKHEpLHRoaXMubmV4dFN0ZXBfKCl9dGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yXz1udWxsO2MuY2FsbCh0aGlzLmNvbnRleHRfLGgpO3JldHVybiB0aGlzLm5leHRTdGVwXygpfTsKJGpzY29tcC5nZW5lcmF0b3IuRW5naW5lXy5wcm90b3R5cGUubmV4dFN0ZXBfPWZ1bmN0aW9uKCl7Zm9yKDt0aGlzLmNvbnRleHRfLm5leHRBZGRyZXNzOyl0cnl7dmFyIGI9dGhpcy5wcm9ncmFtXyh0aGlzLmNvbnRleHRfKTtpZihiKXJldHVybiB0aGlzLmNvbnRleHRfLnN0b3BfKCkse3ZhbHVlOmIudmFsdWUsZG9uZTohMX19Y2F0Y2goYSl7dGhpcy5jb250ZXh0Xy55aWVsZFJlc3VsdD12b2lkIDAsdGhpcy5jb250ZXh0Xy50aHJvd18oYSl9dGhpcy5jb250ZXh0Xy5zdG9wXygpO2lmKHRoaXMuY29udGV4dF8uYWJydXB0Q29tcGxldGlvbl8pe2I9dGhpcy5jb250ZXh0Xy5hYnJ1cHRDb21wbGV0aW9uXzt0aGlzLmNvbnRleHRfLmFicnVwdENvbXBsZXRpb25fPW51bGw7aWYoYi5pc0V4Y2VwdGlvbil0aHJvdyBiLmV4Y2VwdGlvbjtyZXR1cm57dmFsdWU6Yi5yZXR1cm4sZG9uZTohMH19cmV0dXJue3ZhbHVlOnZvaWQgMCxkb25lOiEwfX07CiRqc2NvbXAuZ2VuZXJhdG9yLkdlbmVyYXRvcl89ZnVuY3Rpb24oYil7dGhpcy5uZXh0PWZ1bmN0aW9uKGEpe3JldHVybiBiLm5leHRfKGEpfTt0aGlzLnRocm93PWZ1bmN0aW9uKGEpe3JldHVybiBiLnRocm93XyhhKX07dGhpcy5yZXR1cm49ZnVuY3Rpb24oYSl7cmV0dXJuIGIucmV0dXJuXyhhKX07dGhpc1tTeW1ib2wuaXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9fTskanNjb21wLmdlbmVyYXRvci5jcmVhdGVHZW5lcmF0b3I9ZnVuY3Rpb24oYixhKXthPW5ldyAkanNjb21wLmdlbmVyYXRvci5HZW5lcmF0b3JfKG5ldyAkanNjb21wLmdlbmVyYXRvci5FbmdpbmVfKGEpKTskanNjb21wLnNldFByb3RvdHlwZU9mJiZiLnByb3RvdHlwZSYmJGpzY29tcC5zZXRQcm90b3R5cGVPZihhLGIucHJvdG90eXBlKTtyZXR1cm4gYX07CiRqc2NvbXAuYXN5bmNFeGVjdXRlUHJvbWlzZUdlbmVyYXRvcj1mdW5jdGlvbihiKXtmdW5jdGlvbiBhKGUpe3JldHVybiBiLm5leHQoZSl9ZnVuY3Rpb24gYyhlKXtyZXR1cm4gYi50aHJvdyhlKX1yZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24oZSxoKXtmdW5jdGlvbiBxKHIpe3IuZG9uZT9lKHIudmFsdWUpOlByb21pc2UucmVzb2x2ZShyLnZhbHVlKS50aGVuKGEsYykudGhlbihxLGgpfXEoYi5uZXh0KCkpfSl9OyRqc2NvbXAuYXN5bmNFeGVjdXRlUHJvbWlzZUdlbmVyYXRvckZ1bmN0aW9uPWZ1bmN0aW9uKGIpe3JldHVybiAkanNjb21wLmFzeW5jRXhlY3V0ZVByb21pc2VHZW5lcmF0b3IoYigpKX07JGpzY29tcC5hc3luY0V4ZWN1dGVQcm9taXNlR2VuZXJhdG9yUHJvZ3JhbT1mdW5jdGlvbihiKXtyZXR1cm4gJGpzY29tcC5hc3luY0V4ZWN1dGVQcm9taXNlR2VuZXJhdG9yKG5ldyAkanNjb21wLmdlbmVyYXRvci5HZW5lcmF0b3JfKG5ldyAkanNjb21wLmdlbmVyYXRvci5FbmdpbmVfKGIpKSl9Owpjb25zdCBMZWFkPWZ1bmN0aW9uKGIpe2NvbnN0IGE9T2JqZWN0LmFzc2lnbih7fSxiKSxjPWEubGVhZElkfHxhLm5hbWU7Yj1hLmxlYWROb2RlO2NvbnN0IGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZvcm0iK2MpO2xldCBoPSExLHE9ZS5xdWVyeVNlbGVjdG9yKCIubGVhZEVtYWlsIFtkYXRhLXN1YmplY3RdIikuaW5uZXJUZXh0LHI9ZS5xdWVyeVNlbGVjdG9yKCIubGVhZEVtYWlsIFtkYXRhLWJvZHldIikuaW5uZXJIVE1MLHo9YS50cmlnZ2VyLGs9e307Y29uc3QgQT0oKT0+e0FycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwoZS5lbGVtZW50cyxkPT57aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBkLmF0dHJpYnV0ZXMubmFtZSl7dmFyIGY9ZC5hdHRyaWJ1dGVzLm5hbWUudmFsdWV8fCExO3N3aXRjaCghMCl7Y2FzZSBbIm5hbWUiXS5pbmNsdWRlcyhmLnRvTG93ZXJDYXNlKCkpOmNhc2UgWyJmaXJzdG5hbWUiXS5pbmNsdWRlcyhmLnRvTG93ZXJDYXNlKCkpOmNhc2UgWyJsYXN0bmFtZSJdLmluY2x1ZGVzKGYudG9Mb3dlckNhc2UoKSk6Y2FzZSAiZW1haWwiPT0KZi50b0xvd2VyQ2FzZSgpOmNhc2UgImRhdGEiPT1mOmJyZWFrO2Nhc2UgInBob25lIj09Zi50b0xvd2VyQ2FzZSgpOmNhc2UgInRlbCI9PWQudHlwZTpJTWFzayhkLHttYXNrOlt7bWFzazoiMDAwIDAwMC0wMDAwIn0se21hc2s6IjEgMDAwIDAwMC0wMDAwIn1dfSl9fX0pOyJ1bmRlZmluZWQiIT09dHlwZW9mIGNsaWVudFN0b3JhZ2UmJkFycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwoZS5lbGVtZW50cyxkPT57aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBkLmF0dHJpYnV0ZXMubmFtZSl7dmFyIGY9ZC5hdHRyaWJ1dGVzLm5hbWUudmFsdWV8fCExO3N3aXRjaCghMCl7Y2FzZSBbIm5hbWUiXS5pbmNsdWRlcyhmLnRvTG93ZXJDYXNlKCkpOnZhciBnO2Y9bnVsbCE9KGc9Y2xpZW50U3RvcmFnZS5nZXQoImZpcnN0bmFtZSIpKT9nOiIiO3ZhciBsO2c9bnVsbCE9KGw9Y2xpZW50U3RvcmFnZS5nZXQoImxhc3RuYW1lIikpP2w6IiI7bD1mKygiIiE9Zz8iICIrY2xpZW50U3RvcmFnZS5nZXQoImxhc3RuYW1lIik6CiIiKTtkLnZhbHVlPWw7YnJlYWs7Y2FzZSBbImZpcnN0bmFtZSJdLmluY2x1ZGVzKGYudG9Mb3dlckNhc2UoKSk6bGV0IG07ZC52YWx1ZT1udWxsIT0obT1jbGllbnRTdG9yYWdlLmdldCgiZmlyc3RuYW1lIikpP206IiI7YnJlYWs7Y2FzZSBbImxhc3RuYW1lIl0uaW5jbHVkZXMoZi50b0xvd2VyQ2FzZSgpKTpsZXQgbjtkLnZhbHVlPW51bGwhPShuPWNsaWVudFN0b3JhZ2UuZ2V0KCJsYXN0bmFtZSIpKT9uOiIiO2JyZWFrO2Nhc2UgImVtYWlsIj09Zi50b0xvd2VyQ2FzZSgpOmxldCBwO2QudmFsdWU9bnVsbCE9KHA9Y2xpZW50U3RvcmFnZS5nZXQoImVtYWlsIikpP3A6IiI7YnJlYWs7Y2FzZSAicGhvbmUiPT1mLnRvTG93ZXJDYXNlKCk6bGV0IHU7ZC52YWx1ZT1udWxsIT0odT1jbGllbnRTdG9yYWdlLmdldCgicGhvbmUiKSk\/dToiIn19fSl9LEU9KCk9PntpZihoKXJldHVybiExO2g9ITA7QigpLnRoZW4oZD0+e2lmKCFkKXJldHVybiB2KCJwb3B1cC52YWxpZGF0aW9uRmFpbGVkIiksCmg9ITE7YS52YWxpZGF0ZWQ9ITA7QygpO0QoKX0pfSxDPSgpPT57QXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbChlLmVsZW1lbnRzLGQ9PntpZigidW5kZWZpbmVkIiE9dHlwZW9mIGQuYXR0cmlidXRlcy5uYW1lKXt2YXIgZj1kLmF0dHJpYnV0ZXMubmFtZS52YWx1ZXx8ITE7aWYoZilzd2l0Y2goa1tmXT1kLnZhbHVlLCEwKXtjYXNlIFsibmFtZSJdLmluY2x1ZGVzKGYudG9Mb3dlckNhc2UoKSk6ZD1kLnZhbHVlLnNwbGl0KCIgIik7ay51c2VyRmlyc3ROYW1lKz1kLnNoaWZ0KCk7ay51c2VyTGFzdE5hbWUrPWQuam9pbigiICIpO2JyZWFrO2Nhc2UgWyJmaXJzdG5hbWUiXS5pbmNsdWRlcyhmLnRvTG93ZXJDYXNlKCkpOmsudXNlckZpcnN0TmFtZSs9ZC52YWx1ZTticmVhaztjYXNlIFsibGFzdG5hbWUiXS5pbmNsdWRlcyhmLnRvTG93ZXJDYXNlKCkpOmsudXNlckxhc3ROYW1lKz1kLnZhbHVlO2JyZWFrO2Nhc2UgImVtYWlsIj09Zi50b0xvd2VyQ2FzZSgpOmsudXNlckVtYWlsPQpkLnZhbHVlO2JyZWFrO2Nhc2UgInBob25lIj09Zi50b0xvd2VyQ2FzZSgpOmNhc2UgInRlbCI9PWQudHlwZTpJTWFzayhkLHttYXNrOlt7bWFzazoiMDAwIDAwMC0wMDAwIn0se21hc2s6IjEgMDAwIDAwMC0wMDAwIn1dfSk7ay51c2VyUGhvbmU9ZC52YWx1ZTticmVhaztjYXNlICJkYXRhIj09Zjpmb3IobGV0IGcgaW4gZC5kYXRhc2V0KWtbZy5yZXBsYWNlKC8tLi9nLGw9PmxbMV0udG9VcHBlckNhc2UoKSldPWQuZGF0YXNldFtnXX19fSl9LEQ9KCk9PntpZighMT09PWEub25CZWZvcmVTdWJtaXQoYSkpcmV0dXJuIGEuY2xvc2VPblN1Ym1pdCYmdCgpLCExO3ZhciBkPXgod2luZG93LmxvY2F0aW9uLmhyZWYpO2lmKENvb2tpZXMuZ2V0KGEubGVhZElkK2QpKXJldHVybiBoPSExLHkoITApLCExO0YoKTt2KCJwb3B1cC5zdWJtaXQiKTtsZXQgZjtpZigiRGlnaXRhbFJldGFpbCI9PShudWxsPT0oZj1rKT92b2lkIDA6Zi5pbnZva2VyKSl7ZD1jbGllbnRTdG9yYWdlLmdldCgiY2xpZW50U3RvcmFnZSIpfHwKe307bGV0IG4scDtrLmxlYWRJbnZva2VyU0lEPUcoKG51bGw9PWQ\/dm9pZCAwOm51bGw9PShuPWQuY29udGFjdCk\/dm9pZCAwOm4uZW1haWwpKyhudWxsPT1kP3ZvaWQgMDpudWxsPT0ocD1kLmNvbnRhY3QpP3ZvaWQgMDpwLnBob25lKSk7ZW1haWxIYW5kbGVyLmxlYWRJbnZva2VyPSJEaWdpdGFsUmV0YWlsIjtlbWFpbEhhbmRsZXIuZGlnaXRhbFJldGFpbFNJRD1rLmxlYWRJbnZva2VyU0lEfXZhciBnO3E9KG51bGw9PShnPWUucXVlcnlTZWxlY3RvcigiLmxlYWRFbWFpbCBbZGF0YS1zdWJqZWN0XSIpKT92b2lkIDA6Zy5pbm5lclRleHQpfHxxO2xldCBsO3I9KG51bGw9PShsPWUucXVlcnlTZWxlY3RvcigiLmxlYWRFbWFpbCBbZGF0YS1ib2R5XSIpKT92b2lkIDA6bC5pbm5lckhUTUwpfHxyO2VtYWlsSGFuZGxlci5ib2R5PUgoKTtlbWFpbEhhbmRsZXIuc3ViamVjdD1xO09iamVjdC5hc3NpZ24oZW1haWxIYW5kbGVyLGspOyJzdHJpbmciPT10eXBlb2YgZW1haWxIYW5kbGVyLnVzZXJOYW1lJiYKKGc9ZW1haWxIYW5kbGVyLnVzZXJOYW1lLnNwbGl0KCIgIiksZW1haWxIYW5kbGVyLnVzZXJGaXJzdE5hbWU9Zy5zaGlmdCgpLGVtYWlsSGFuZGxlci51c2VyTGFzdE5hbWU9Zy5qb2luKCIgIikpO2VtYWlsSGFuZGxlci5vbkJlZm9yZVNob3dDb25zZW50PWZ1bmN0aW9uKCl7ZW1haWxIYW5kbGVyLm9uQmVmb3JlU2hvd0NvbnNlbnQ9ITF9O2VtYWlsSGFuZGxlci5vbkFmdGVyQ29uc2VudD1mdW5jdGlvbihuKXtlbWFpbEhhbmRsZXIub25CZWZvcmVTaG93Q29uc2VudD0hMTtlbWFpbEhhbmRsZXIub25BZnRlckNvbnNlbnQ9ITF9O2VtYWlsSGFuZGxlci5vbkR1cGxpY2F0ZVNlbmQ9ZnVuY3Rpb24oKXtlbWFpbEhhbmRsZXIucmVzZXRDYWxsYmFja3MoKX07ZW1haWxIYW5kbGVyLmNhbGxiYWNrPWZ1bmN0aW9uKG4pe3ZhciBwPSExO2Euc2hvd0VtYWlsQ29uZmlybWF0aW9uJiYocD1nZXRNYWlsU2VudEhhbmRsZXIoIl8iK2EubmFtZSkscC50aW1lb3V0Q2FsbGJhY2s9ZnVuY3Rpb24oKXtlLnJlc2V0KCl9KTsKaWYobil2KCJwb3B1cC5sZWFkX3NlbnQiKSwiZnVuY3Rpb24iPT10eXBlb2Ygb3JpZ2luYWxDYWxsYmFjayYmb3JpZ2luYWxDYWxsYmFjay5jYWxsKCksIm9uU3VibWl0Ij09YS5jb29raWVDcmVhdGUmJkNvb2tpZXMuc2V0KGEuY29va2llTmFtZSwiMSIsYS5jb29raWVEdXJhdGlvbiwiLyIpLGEuc3VibWl0RmxhZyYmQ29va2llcy5zZXQoInBvcHVwRm9ybUZpbGxlZCIsIjEiLDEsIi8iKSxhLmNsb3NlT25TdWJtaXQmJnQoIkNPTlNFTlQiKSxwP3Auc2hvd1N1Y2Nlc3MoKTowPCQoYGZvcm0jZm9ybSR7YS5uYW1lfV9jb25maXJtYCkubGVuZ3RoJiYkKGBmb3JtI2Zvcm0ke2EubmFtZX1fY29uZmlybWApLnRyaWdnZXIoInN1Ym1pdCIpO2Vsc2V7cHx8KHA9Z2V0TWFpbFNlbnRIYW5kbGVyKCkpO3RyeXtwLnNob3dGYWlsKCl9Y2F0Y2godSl7fX15KG4pO3coKTtzZXRUaW1lb3V0KGVtYWlsSGFuZGxlci5yZXNldENhbGxiYWNrcygpLDFFMyk7biYmKG49eCh3aW5kb3cubG9jYXRpb24uaHJlZiksCkNvb2tpZXMuc2V0KGEubGVhZElkK24sIjEiLDEsIi8iKSl9O2Euc3VibWl0dGVkPSEwO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBhLm9uQmVmb3JlU2VuZE1haWwmJjA9PWEub25CZWZvcmVTZW5kTWFpbC5jYWxsKCkpcmV0dXJuITE7bGV0IG09e307ImZ1bmN0aW9uIj09dHlwZW9mIGEub25BREYmJihtPWEub25BREYuY2FsbCgpKTsibWFrZSBtb2RlbCB5ZWFyIHN0b2NrTnVtYmVyIHRyaW0gdmluIHByaWNlIGNhcmlkIi5zcGxpdCgiICIpLmZvckVhY2gobj0+e2VtYWlsSGFuZGxlcltuXT1tW25dfHxlbWFpbEhhbmRsZXJbbl19KTthLnB1cmNoYXNlSW50ZW50UG9wdXB8fGVtYWlsSGFuZGxlci5zZW5kTWFpbChhLmJ5cGFzc0NvbnNlbnQpO3JldHVybiEwfSx3PSgpPT57az17dXNlckZpcnN0TmFtZToiIix1c2VyTGFzdE5hbWU6IiIsdXNlckVtYWlsOiIiLHVzZXJQaG9uZToiIn07aD0hMX0sQj1mdW5jdGlvbigpe3JldHVybiAkanNjb21wLmFzeW5jRXhlY3V0ZVByb21pc2VHZW5lcmF0b3JGdW5jdGlvbihmdW5jdGlvbiooKXtpZihhLnNraXBWYWxpZGF0aW9uKXJldHVybiEwOwpjb25zdCBkPW5ldyBQcmlzdGluZShlLHtjbGFzc1RvOiJmb3JtLWxhYmVsIixlcnJvckNsYXNzOiJpbnZhbGlkIn0sITEpO2xldCBmPWUucXVlcnlTZWxlY3RvcignW25hbWU9InBob25lbnVtIl0nKSxnPSEwLGw9ITA7aWYoZi5yZXF1aXJlZHx8Zi52YWx1ZSlnPW51bGwsZz15aWVsZCBJKGYudmFsdWUpO251bGw9PT1nPyhkLmFkZFZhbGlkYXRvcihmLGZ1bmN0aW9uKG0pe209bS5yZXBsYWNlKC9bXjAtOV0rL2dpLCIiKTsiMSI9PW1bMF0mJihtPW0uc3Vic3RyaW5nKDEpKTttPXBhcnNlSW50KG0uc3Vic3RyaW5nKDAsMykpO3JldHVybiBnPVs0MzgsNTE0LDI2Myw0NTAsNTc5LDgxOSwyNDksNzA1LDIyNiw1MTksMjg5LDM2NSw5MDUsNDE2LDQzNyw2NDcsMzQzLDYxMyw3MDksODczLDQxOCw1ODEsNTA2LDkwMl0uaW5jbHVkZXMobSl9LCJFbnRlciBhIHZhbGlkIHBob25lIG51bWJlciIsNSwhMSksbD1kLnZhbGlkYXRlKCkpOihsPWQudmFsaWRhdGUoKSYmZyxmLnBhcmVudEVsZW1lbnQuY2xhc3NMaXN0LnRvZ2dsZSgiaW52YWxpZCIsCiFnKSk7Zi5yZXF1aXJlZCYmIWcmJiJ1bmRlZmluZWQiIT10eXBlb2YgZW1haWxIYW5kbGVyJiYoZW1haWxIYW5kbGVyLnBob25lVmFsaWRhdGlvbkF0dGVtcHRzKyssZW1haWxIYW5kbGVyLnBob25lTWFuZGF0b3J5PSEwKTtyZXR1cm4gbH0pfSxJPWQ9PiRqc2NvbXAuYXN5bmNFeGVjdXRlUHJvbWlzZUdlbmVyYXRvckZ1bmN0aW9uKGZ1bmN0aW9uKigpe2xldCBmPW51bGw7ZD1kLnJlcGxhY2UoL1teMC05XSsvZ2ksIiIpO3lpZWxkIGF4aW9zLmdldCgiL3Byb3h5X3JkMmMvc2l0ZXMvc3ZjL3ZhbGlkYXRlUGhvbmVOdW1iZXIucGhwIix7dGltZW91dDoyRTMsZGF0YVR5cGU6Impzb24iLHBhcmFtczp7cGhvbmU6ZH0scmVzcG9uc2VUeXBlOiJqc29uIn0pLnRoZW4oZnVuY3Rpb24oZyl7InVuZGVmaW5lZCIhPT10eXBlb2YgZy5kYXRhLmlzT2smJihmPWcuZGF0YS5waG9uZU51bWJlcklzVmFsaWQpfSkuY2F0Y2goZnVuY3Rpb24oZyl7fSk7cmV0dXJuIGZ9KSxGPSgpPT57Y29uc3QgZD0KZG9jdW1lbnQuZm9ybXMuZW1haWxtc2dmcm18fCExO2lmKCFkKXJldHVybiExO2QucXVlcnlTZWxlY3RvcignW25hbWU9ImxhYmVsIicpLnZhbHVlPWAke2EudHlwZX0gKCR7ay5jb25kaXRpb259KWA7ZC5xdWVyeVNlbGVjdG9yKCdbbmFtZT0ic2VjdGlvbiInKS52YWx1ZT1rLmNvbmRpdGlvbn0seD1kPT5bLi4uZF0ucmVkdWNlKChmLGcpPT5NYXRoLmltdWwoMzEsZikrZy5jaGFyQ29kZUF0KDApfDAsMCksSD1mdW5jdGlvbigpe2xldCBkPXIsZj17bmFtZTpbIk1OQU1FIl0scGhvbmVudW06WyJNUEhPTkUiLCJQSE9ORSJdLGVtYWlsOlsiTU1BSUwiXX07T2JqZWN0LmtleXMoaykuZm9yRWFjaChnPT57dmFyIGw9bmV3IFJlZ0V4cCgie1xcJCIrZy50b1VwcGVyQ2FzZSgpKyJ9IiwiZyIpO2Q9ZC5yZXBsYWNlKGwsa1tnXSk7ZltnXSYmKGw9bmV3IFJlZ0V4cCgie1xcJCgiK2ZbZ10uam9pbigifCIpKyIpfSIsImciKSxkPWQucmVwbGFjZShsLGtbZ10pKX0pO3JldHVybiBkfSx2PWZ1bmN0aW9uKGQpe3ZhciBmPQphLnR5cGU7aWYoIWQpcmV0dXJuITE7aWYoInBvcHVwLmxlYWRfc2VudCI9PWQpe3ZhciBnPSJjbGljayIucmVwbGFjZSgvKF5bYS16XXsxfSkvZyxmdW5jdGlvbihtKXtyZXR1cm4gbS50b1VwcGVyQ2FzZSgpfSksbD1kMmNtZWRpYS5wYWdlRGVwYXJ0bWVudCgpO2dhVHJhY2soImMuX3RyYWNrRXZlbnQiLCJQb3B1cC1sZWFkcyIsZyxsLDEpfSJ1bmRlZmluZWQiIT10eXBlb2YgYWN0aXZlVXNlclByb2ZpbGVNbmcmJiJ1bmRlZmluZWQiIT10eXBlb2YgYWN0aXZlVXNlclByb2ZpbGVNbmcubG9nUGFnZVZpZXdFdmVudD8oInVuZGVmaW5lZCIhPT10eXBlb2YgZGVidWcmJmRlYnVnKCJMb2cgRXZlbnQiLGQsZixzZWxmKSxhY3RpdmVVc2VyUHJvZmlsZU1uZy5sb2dQYWdlVmlld0V2ZW50KGQsZikpOiJ1bmRlZmluZWQiIT09dHlwZW9mIGRlYnVnJiZkZWJ1ZygiIVVOTE9HR0VEIEVWRU5UISIsZCxmKX0sdD0oKT0+e2Eub25CZWZvcmVDbG9zZShhKTt3KCk7TW9kYWxzW2NdJiZNb2RhbHNbY10uY2xvc2UoKX0sCnk9ZD0+e2Eub25BZnRlclN1Ym1pdChhLGQpO2EuY2xvc2VPblN1Ym1pdCYmZCYmdCgpO2QmJmUucmVzZXQoKX0sRz1kPT57bGV0IGY9MDtpZigwPT1kLmxlbmd0aClyZXR1cm4gZjtmb3IobGV0IGc9MCxsPWQubGVuZ3RoO2c8bDtnKyspe2xldCBtPWQuY2hhckNvZGVBdChnKTtmPShmPDw1KS1mK207Znw9MH1yZXR1cm4gTWF0aC5hYnMoZil9OygoKT0+eyQoZSkudHJpZ2dlcigicG9wdXBpemVyLm9uT3BlbiIsJChlKSk7dygpO0EoKTtlLm9uc3VibWl0PWQ9PntkLnByZXZlbnREZWZhdWx0KCk7RSgpfTthLm9uQmVmb3JlT3BlbihhKX0pKCk7cmV0dXJue2xlYWRJZDpjLGxlYWROb2RlOmIsdHJpZ2dlcjp6LGRpc3BsYXk6KCk9PnthLmRpc3BsYXk\/YS5kaXNwbGF5KGEpOihhLmNvbnRlbnRTcmM9YGxlYWQke2N9YCxNb2RhbHNbY118fChNb2RhbHNbY109bmV3IE1vZGFsKGMsYSkpLE1vZGFsc1tjXS5kaXNwbGF5KCkpfSxjbG9zZTp0fX0sTGVhZEhhbmRsZXI9ZnVuY3Rpb24oKXtjb25zdCBiPQp7b25CZWZvcmVPcGVuOigpPT57fSxvbkJlZm9yZVZhbGlkYXRpb246KCk9Pnt9LG9uQmVmb3JlU3VibWl0OigpPT57fSxvbkFmdGVyU3VibWl0OigpPT57fSxvbkJlZm9yZUNhbmNlbDooKT0+e30sb25CZWZvcmVDbG9zZTooKT0+e30sb25DbG9zZTooKT0+e30sZm9ybTp7ZW1haWxpZDpudWxsLG9mZmVydHlwZTpudWxsLG5hbWU6bnVsbCxzZW5kVG86bnVsbCxzZW5kVG9BREY6bnVsbCxPS0J1dHRvbkNsYXNzOiJzdWJtaXRCdG4iLENhbmNlbEJ1dHRvbkNsYXNzOiJjYW5jZWxCdG4iLHNob3dFbWFpbENvbmZpcm1hdGlvbjohMSxmcm9tQUE6ITF9LGdldElkU3VmZml4OmE9Pk1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSpEYXRlLm5vdygpKSxtb2RlOiJzdGF0aWMiLHRyaWdnZXI6ImF1dG8iLGRlbGF5OiExLGRpc3BsYXk6ITEsc3VibWl0dGVkOiExLGNsb3NlT25TdWJtaXQ6ITAsc3VibWl0RmxhZzohMSxieXBhc3NDb25zZW50OiExLHNob3dFbWFpbENvbmZpcm1hdGlvbjohMCxwdXJjaGFzZUludGVudFBvcHVwOiExfTsKaW5pdD0oKT0+eyJ1bmRlZmluZWQiIT09dHlwZW9mIHdpbmRvdy5BYnN0cmFjdFVzZWRTcnBPYmplY3QmJihuZXcgQWJzdHJhY3RVc2VkU3JwT2JqZWN0KHtuYW1lOiJWaWV3RGlzY292ZXJCdG5IYW5kbGVyIn0pKS5hZGRVc2VkU3JwRXZlbnRPYnNlcnZlcigiY29udGVudCIsYWRkTGVhZEV2ZW50cykuaW5pdFVzZWRTcnBPYnNlcnZlcigpO2FkZExlYWRFdmVudHMoKX07YWRkTGVhZEV2ZW50cz0oKT0+e2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIltkYXRhLWxlYWQtdHJpZ2dlcl0iKS5mb3JFYWNoKGE9Pnt0aGlzLmluaXRMZWFkVHJpZ2dlcihhKX0pfTt0aGlzLmluaXRMZWFkVHJpZ2dlcj1hPT57YS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsYz0+e2Muc3RvcFByb3BhZ2F0aW9uKCk7Yz1hLmRhdGFzZXQubGVhZFRyaWdnZXI7bGV0IGU9YS5kYXRhc2V0LmxlYWRpZHx8ITE7TGVhZENvbmZpZ3NbY10udHJpZ2dlcj1hO2M9dGhpcy5nZXRMZWFkKGMsZSk7Yy5kaXNwbGF5KCk7CmEuZGF0YXNldC5sZWFkaWQ9Yy5sZWFkSWR9KX07dGhpcy5nZXRMZWFkPShhLGMpPT57aWYoIShjPUxlYWRzW2N8fGFdKSl7e2M9YTtsZXQgZT1PYmplY3QuYXNzaWduKHt9LGIpO09iamVjdC5hc3NpZ24oZSxMZWFkQ29uZmlnc1thXSk7Y29uc3QgaD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZChgbGVhZCR7YX1gKTtoPyhhPWgsInN0YXRpYyIhPWUubW9kZSYmKGM9YCR7ZS5uYW1lfV8ke2UuZ2V0SWRTdWZmaXgoZSl9YCxhPWguY2xvbmVOb2RlKCEwKSxhLnNldEF0dHJpYnV0ZSgiaWQiLCJsZWFkIitjKSxhLnF1ZXJ5U2VsZWN0b3IoImZvcm0iKS5zZXRBdHRyaWJ1dGUoImlkIiwiZm9ybSIrYyksZG9jdW1lbnQuYm9keS5hcHBlbmQoYSkpLGUubGVhZElkPWMsZS5sZWFkTm9kZT1hLExlYWRzW2NdPW5ldyBMZWFkKGUpLGM9TGVhZHNbY10pOmM9ITF9fXJldHVybiBjfTtyZXR1cm57aW5pdCxpbml0TGVhZFRyaWdnZXIsZ2V0TGVhZH19O3ZhciBMZWFkcz1MZWFkc3x8e307ZG9jUmVhZHlBcnIucHVzaChMZWFkSGFuZGxlcigpLmluaXQpOwovKiogL2pzL3ZhbmlsbGFqcy9heGlvcy5taW4uanMgKiovCiFmdW5jdGlvbihlLHQpeyJvYmplY3QiPT10eXBlb2YgZXhwb3J0cyYmIm9iamVjdCI9PXR5cGVvZiBtb2R1bGU\/bW9kdWxlLmV4cG9ydHM9dCgpOiJmdW5jdGlvbiI9PXR5cGVvZiBkZWZpbmUmJmRlZmluZS5hbWQ\/ZGVmaW5lKFtdLHQpOiJvYmplY3QiPT10eXBlb2YgZXhwb3J0cz9leHBvcnRzLmF4aW9zPXQoKTplLmF4aW9zPXQoKX0odGhpcywoZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24oZSl7dmFyIHQ9e307ZnVuY3Rpb24gbihyKXtpZih0W3JdKXJldHVybiB0W3JdLmV4cG9ydHM7dmFyIG89dFtyXT17aTpyLGw6ITEsZXhwb3J0czp7fX07cmV0dXJuIGVbcl0uY2FsbChvLmV4cG9ydHMsbyxvLmV4cG9ydHMsbiksby5sPSEwLG8uZXhwb3J0c31yZXR1cm4gbi5tPWUsbi5jPXQsbi5kPWZ1bmN0aW9uKGUsdCxyKXtuLm8oZSx0KXx8T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCx7ZW51bWVyYWJsZTohMCxnZXQ6cn0pfSxuLnI9ZnVuY3Rpb24oZSl7InVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJlN5bWJvbC50b1N0cmluZ1RhZyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsU3ltYm9sLnRvU3RyaW5nVGFnLHt2YWx1ZToiTW9kdWxlIn0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KX0sbi50PWZ1bmN0aW9uKGUsdCl7aWYoMSZ0JiYoZT1uKGUpKSw4JnQpcmV0dXJuIGU7aWYoNCZ0JiYib2JqZWN0Ij09dHlwZW9mIGUmJmUmJmUuX19lc01vZHVsZSlyZXR1cm4gZTt2YXIgcj1PYmplY3QuY3JlYXRlKG51bGwpO2lmKG4ucihyKSxPYmplY3QuZGVmaW5lUHJvcGVydHkociwiZGVmYXVsdCIse2VudW1lcmFibGU6ITAsdmFsdWU6ZX0pLDImdCYmInN0cmluZyIhPXR5cGVvZiBlKWZvcih2YXIgbyBpbiBlKW4uZChyLG8sZnVuY3Rpb24odCl7cmV0dXJuIGVbdF19LmJpbmQobnVsbCxvKSk7cmV0dXJuIHJ9LG4ubj1mdW5jdGlvbihlKXt2YXIgdD1lJiZlLl9fZXNNb2R1bGU\/ZnVuY3Rpb24oKXtyZXR1cm4gZS5kZWZhdWx0fTpmdW5jdGlvbigpe3JldHVybiBlfTtyZXR1cm4gbi5kKHQsImEiLHQpLHR9LG4ubz1mdW5jdGlvbihlLHQpe3JldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSx0KX0sbi5wPSIiLG4obi5zPTExKX0oW2Z1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigzKSxvPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmc7ZnVuY3Rpb24gaShlKXtyZXR1cm4iW29iamVjdCBBcnJheV0iPT09by5jYWxsKGUpfWZ1bmN0aW9uIHMoZSl7cmV0dXJuIHZvaWQgMD09PWV9ZnVuY3Rpb24gYShlKXtyZXR1cm4gbnVsbCE9PWUmJiJvYmplY3QiPT10eXBlb2YgZX1mdW5jdGlvbiB1KGUpe2lmKCJbb2JqZWN0IE9iamVjdF0iIT09by5jYWxsKGUpKXJldHVybiExO3ZhciB0PU9iamVjdC5nZXRQcm90b3R5cGVPZihlKTtyZXR1cm4gbnVsbD09PXR8fHQ9PT1PYmplY3QucHJvdG90eXBlfWZ1bmN0aW9uIGMoZSl7cmV0dXJuIltvYmplY3QgRnVuY3Rpb25dIj09PW8uY2FsbChlKX1mdW5jdGlvbiBmKGUsdCl7aWYobnVsbCE9ZSlpZigib2JqZWN0IiE9dHlwZW9mIGUmJihlPVtlXSksaShlKSlmb3IodmFyIG49MCxyPWUubGVuZ3RoO248cjtuKyspdC5jYWxsKG51bGwsZVtuXSxuLGUpO2Vsc2UgZm9yKHZhciBvIGluIGUpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUsbykmJnQuY2FsbChudWxsLGVbb10sbyxlKX1lLmV4cG9ydHM9e2lzQXJyYXk6aSxpc0FycmF5QnVmZmVyOmZ1bmN0aW9uKGUpe3JldHVybiJbb2JqZWN0IEFycmF5QnVmZmVyXSI9PT1vLmNhbGwoZSl9LGlzQnVmZmVyOmZ1bmN0aW9uKGUpe3JldHVybiBudWxsIT09ZSYmIXMoZSkmJm51bGwhPT1lLmNvbnN0cnVjdG9yJiYhcyhlLmNvbnN0cnVjdG9yKSYmImZ1bmN0aW9uIj09dHlwZW9mIGUuY29uc3RydWN0b3IuaXNCdWZmZXImJmUuY29uc3RydWN0b3IuaXNCdWZmZXIoZSl9LGlzRm9ybURhdGE6ZnVuY3Rpb24oZSl7cmV0dXJuInVuZGVmaW5lZCIhPXR5cGVvZiBGb3JtRGF0YSYmZSBpbnN0YW5jZW9mIEZvcm1EYXRhfSxpc0FycmF5QnVmZmVyVmlldzpmdW5jdGlvbihlKXtyZXR1cm4idW5kZWZpbmVkIiE9dHlwZW9mIEFycmF5QnVmZmVyJiZBcnJheUJ1ZmZlci5pc1ZpZXc\/QXJyYXlCdWZmZXIuaXNWaWV3KGUpOmUmJmUuYnVmZmVyJiZlLmJ1ZmZlciBpbnN0YW5jZW9mIEFycmF5QnVmZmVyfSxpc1N0cmluZzpmdW5jdGlvbihlKXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIGV9LGlzTnVtYmVyOmZ1bmN0aW9uKGUpe3JldHVybiJudW1iZXIiPT10eXBlb2YgZX0saXNPYmplY3Q6YSxpc1BsYWluT2JqZWN0OnUsaXNVbmRlZmluZWQ6cyxpc0RhdGU6ZnVuY3Rpb24oZSl7cmV0dXJuIltvYmplY3QgRGF0ZV0iPT09by5jYWxsKGUpfSxpc0ZpbGU6ZnVuY3Rpb24oZSl7cmV0dXJuIltvYmplY3QgRmlsZV0iPT09by5jYWxsKGUpfSxpc0Jsb2I6ZnVuY3Rpb24oZSl7cmV0dXJuIltvYmplY3QgQmxvYl0iPT09by5jYWxsKGUpfSxpc0Z1bmN0aW9uOmMsaXNTdHJlYW06ZnVuY3Rpb24oZSl7cmV0dXJuIGEoZSkmJmMoZS5waXBlKX0saXNVUkxTZWFyY2hQYXJhbXM6ZnVuY3Rpb24oZSl7cmV0dXJuInVuZGVmaW5lZCIhPXR5cGVvZiBVUkxTZWFyY2hQYXJhbXMmJmUgaW5zdGFuY2VvZiBVUkxTZWFyY2hQYXJhbXN9LGlzU3RhbmRhcmRCcm93c2VyRW52OmZ1bmN0aW9uKCl7cmV0dXJuKCJ1bmRlZmluZWQiPT10eXBlb2YgbmF2aWdhdG9yfHwiUmVhY3ROYXRpdmUiIT09bmF2aWdhdG9yLnByb2R1Y3QmJiJOYXRpdmVTY3JpcHQiIT09bmF2aWdhdG9yLnByb2R1Y3QmJiJOUyIhPT1uYXZpZ2F0b3IucHJvZHVjdCkmJigidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdyYmInVuZGVmaW5lZCIhPXR5cGVvZiBkb2N1bWVudCl9LGZvckVhY2g6ZixtZXJnZTpmdW5jdGlvbiBlKCl7dmFyIHQ9e307ZnVuY3Rpb24gbihuLHIpe3UodFtyXSkmJnUobik\/dFtyXT1lKHRbcl0sbik6dShuKT90W3JdPWUoe30sbik6aShuKT90W3JdPW4uc2xpY2UoKTp0W3JdPW59Zm9yKHZhciByPTAsbz1hcmd1bWVudHMubGVuZ3RoO3I8bztyKyspZihhcmd1bWVudHNbcl0sbik7cmV0dXJuIHR9LGV4dGVuZDpmdW5jdGlvbihlLHQsbil7cmV0dXJuIGYodCwoZnVuY3Rpb24odCxvKXtlW29dPW4mJiJmdW5jdGlvbiI9PXR5cGVvZiB0P3IodCxuKTp0fSkpLGV9LHRyaW06ZnVuY3Rpb24oZSl7cmV0dXJuIGUudHJpbT9lLnRyaW0oKTplLnJlcGxhY2UoL15ccyt8XHMrJC9nLCIiKX0sc3RyaXBCT006ZnVuY3Rpb24oZSl7cmV0dXJuIDY1Mjc5PT09ZS5jaGFyQ29kZUF0KDApJiYoZT1lLnNsaWNlKDEpKSxlfX19LGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigwKSxvPW4oMTcpLGk9big1KSxzPXsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIn07ZnVuY3Rpb24gYShlLHQpeyFyLmlzVW5kZWZpbmVkKGUpJiZyLmlzVW5kZWZpbmVkKGVbIkNvbnRlbnQtVHlwZSJdKSYmKGVbIkNvbnRlbnQtVHlwZSJdPXQpfXZhciB1LGM9e3RyYW5zaXRpb25hbDp7c2lsZW50SlNPTlBhcnNpbmc6ITAsZm9yY2VkSlNPTlBhcnNpbmc6ITAsY2xhcmlmeVRpbWVvdXRFcnJvcjohMX0sYWRhcHRlcjooKCJ1bmRlZmluZWQiIT10eXBlb2YgWE1MSHR0cFJlcXVlc3R8fCJ1bmRlZmluZWQiIT10eXBlb2YgcHJvY2VzcyYmIltvYmplY3QgcHJvY2Vzc10iPT09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHByb2Nlc3MpKSYmKHU9big2KSksdSksdHJhbnNmb3JtUmVxdWVzdDpbZnVuY3Rpb24oZSx0KXtyZXR1cm4gbyh0LCJBY2NlcHQiKSxvKHQsIkNvbnRlbnQtVHlwZSIpLHIuaXNGb3JtRGF0YShlKXx8ci5pc0FycmF5QnVmZmVyKGUpfHxyLmlzQnVmZmVyKGUpfHxyLmlzU3RyZWFtKGUpfHxyLmlzRmlsZShlKXx8ci5pc0Jsb2IoZSk\/ZTpyLmlzQXJyYXlCdWZmZXJWaWV3KGUpP2UuYnVmZmVyOnIuaXNVUkxTZWFyY2hQYXJhbXMoZSk\/KGEodCwiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkO2NoYXJzZXQ9dXRmLTgiKSxlLnRvU3RyaW5nKCkpOnIuaXNPYmplY3QoZSl8fHQmJiJhcHBsaWNhdGlvbi9qc29uIj09PXRbIkNvbnRlbnQtVHlwZSJdPyhhKHQsImFwcGxpY2F0aW9uL2pzb24iKSxmdW5jdGlvbihlLHQsbil7aWYoci5pc1N0cmluZyhlKSl0cnl7cmV0dXJuKHR8fEpTT04ucGFyc2UpKGUpLHIudHJpbShlKX1jYXRjaChlKXtpZigiU3ludGF4RXJyb3IiIT09ZS5uYW1lKXRocm93IGV9cmV0dXJuKG58fEpTT04uc3RyaW5naWZ5KShlKX0oZSkpOmV9XSx0cmFuc2Zvcm1SZXNwb25zZTpbZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcy50cmFuc2l0aW9uYWx8fGMudHJhbnNpdGlvbmFsLG49dCYmdC5zaWxlbnRKU09OUGFyc2luZyxvPXQmJnQuZm9yY2VkSlNPTlBhcnNpbmcscz0hbiYmImpzb24iPT09dGhpcy5yZXNwb25zZVR5cGU7aWYoc3x8byYmci5pc1N0cmluZyhlKSYmZS5sZW5ndGgpdHJ5e3JldHVybiBKU09OLnBhcnNlKGUpfWNhdGNoKGUpe2lmKHMpe2lmKCJTeW50YXhFcnJvciI9PT1lLm5hbWUpdGhyb3cgaShlLHRoaXMsIkVfSlNPTl9QQVJTRSIpO3Rocm93IGV9fXJldHVybiBlfV0sdGltZW91dDowLHhzcmZDb29raWVOYW1lOiJYU1JGLVRPS0VOIix4c3JmSGVhZGVyTmFtZToiWC1YU1JGLVRPS0VOIixtYXhDb250ZW50TGVuZ3RoOi0xLG1heEJvZHlMZW5ndGg6LTEsdmFsaWRhdGVTdGF0dXM6ZnVuY3Rpb24oZSl7cmV0dXJuIGU+PTIwMCYmZTwzMDB9LGhlYWRlcnM6e2NvbW1vbjp7QWNjZXB0OiJhcHBsaWNhdGlvbi9qc29uLCB0ZXh0L3BsYWluLCAqLyoifX19O3IuZm9yRWFjaChbImRlbGV0ZSIsImdldCIsImhlYWQiXSwoZnVuY3Rpb24oZSl7Yy5oZWFkZXJzW2VdPXt9fSkpLHIuZm9yRWFjaChbInBvc3QiLCJwdXQiLCJwYXRjaCJdLChmdW5jdGlvbihlKXtjLmhlYWRlcnNbZV09ci5tZXJnZShzKX0pKSxlLmV4cG9ydHM9Y30sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiByKGUpe3RoaXMubWVzc2FnZT1lfXIucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIkNhbmNlbCIrKHRoaXMubWVzc2FnZT8iOiAiK3RoaXMubWVzc2FnZToiIil9LHIucHJvdG90eXBlLl9fQ0FOQ0VMX189ITAsZS5leHBvcnRzPXJ9LGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIGZ1bmN0aW9uKCl7Zm9yKHZhciBuPW5ldyBBcnJheShhcmd1bWVudHMubGVuZ3RoKSxyPTA7cjxuLmxlbmd0aDtyKyspbltyXT1hcmd1bWVudHNbcl07cmV0dXJuIGUuYXBwbHkodCxuKX19fSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oMCk7ZnVuY3Rpb24gbyhlKXtyZXR1cm4gZW5jb2RlVVJJQ29tcG9uZW50KGUpLnJlcGxhY2UoLyUzQS9naSwiOiIpLnJlcGxhY2UoLyUyNC9nLCIkIikucmVwbGFjZSgvJTJDL2dpLCIsIikucmVwbGFjZSgvJTIwL2csIisiKS5yZXBsYWNlKC8lNUIvZ2ksIlsiKS5yZXBsYWNlKC8lNUQvZ2ksIl0iKX1lLmV4cG9ydHM9ZnVuY3Rpb24oZSx0LG4pe2lmKCF0KXJldHVybiBlO3ZhciBpO2lmKG4paT1uKHQpO2Vsc2UgaWYoci5pc1VSTFNlYXJjaFBhcmFtcyh0KSlpPXQudG9TdHJpbmcoKTtlbHNle3ZhciBzPVtdO3IuZm9yRWFjaCh0LChmdW5jdGlvbihlLHQpe251bGwhPWUmJihyLmlzQXJyYXkoZSk\/dCs9IltdIjplPVtlXSxyLmZvckVhY2goZSwoZnVuY3Rpb24oZSl7ci5pc0RhdGUoZSk\/ZT1lLnRvSVNPU3RyaW5nKCk6ci5pc09iamVjdChlKSYmKGU9SlNPTi5zdHJpbmdpZnkoZSkpLHMucHVzaChvKHQpKyI9IitvKGUpKX0pKSl9KSksaT1zLmpvaW4oIiYiKX1pZihpKXt2YXIgYT1lLmluZGV4T2YoIiMiKTstMSE9PWEmJihlPWUuc2xpY2UoMCxhKSksZSs9KC0xPT09ZS5pbmRleE9mKCI\/Iik\/Ij8iOiImIikraX1yZXR1cm4gZX19LGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCxuLHIsbyl7cmV0dXJuIGUuY29uZmlnPXQsbiYmKGUuY29kZT1uKSxlLnJlcXVlc3Q9cixlLnJlc3BvbnNlPW8sZS5pc0F4aW9zRXJyb3I9ITAsZS50b0pTT049ZnVuY3Rpb24oKXtyZXR1cm57bWVzc2FnZTp0aGlzLm1lc3NhZ2UsbmFtZTp0aGlzLm5hbWUsZGVzY3JpcHRpb246dGhpcy5kZXNjcmlwdGlvbixudW1iZXI6dGhpcy5udW1iZXIsZmlsZU5hbWU6dGhpcy5maWxlTmFtZSxsaW5lTnVtYmVyOnRoaXMubGluZU51bWJlcixjb2x1bW5OdW1iZXI6dGhpcy5jb2x1bW5OdW1iZXIsc3RhY2s6dGhpcy5zdGFjayxjb25maWc6dGhpcy5jb25maWcsY29kZTp0aGlzLmNvZGUsc3RhdHVzOnRoaXMucmVzcG9uc2UmJnRoaXMucmVzcG9uc2Uuc3RhdHVzP3RoaXMucmVzcG9uc2Uuc3RhdHVzOm51bGx9fSxlfX0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKDApLG89bigxOCksaT1uKDE5KSxzPW4oNCksYT1uKDIwKSx1PW4oMjMpLGM9bigyNCksZj1uKDcpLGw9bigxKSxwPW4oMik7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcgUHJvbWlzZSgoZnVuY3Rpb24odCxuKXt2YXIgZCxoPWUuZGF0YSxtPWUuaGVhZGVycyx2PWUucmVzcG9uc2VUeXBlO2Z1bmN0aW9uIHkoKXtlLmNhbmNlbFRva2VuJiZlLmNhbmNlbFRva2VuLnVuc3Vic2NyaWJlKGQpLGUuc2lnbmFsJiZlLnNpZ25hbC5yZW1vdmVFdmVudExpc3RlbmVyKCJhYm9ydCIsZCl9ci5pc0Zvcm1EYXRhKGgpJiZkZWxldGUgbVsiQ29udGVudC1UeXBlIl07dmFyIGc9bmV3IFhNTEh0dHBSZXF1ZXN0O2lmKGUuYXV0aCl7dmFyIGI9ZS5hdXRoLnVzZXJuYW1lfHwiIix4PWUuYXV0aC5wYXNzd29yZD91bmVzY2FwZShlbmNvZGVVUklDb21wb25lbnQoZS5hdXRoLnBhc3N3b3JkKSk6IiI7bS5BdXRob3JpemF0aW9uPSJCYXNpYyAiK2J0b2EoYisiOiIreCl9dmFyIHc9YShlLmJhc2VVUkwsZS51cmwpO2Z1bmN0aW9uIEUoKXtpZihnKXt2YXIgcj0iZ2V0QWxsUmVzcG9uc2VIZWFkZXJzImluIGc\/dShnLmdldEFsbFJlc3BvbnNlSGVhZGVycygpKTpudWxsLGk9e2RhdGE6diYmInRleHQiIT09diYmImpzb24iIT09dj9nLnJlc3BvbnNlOmcucmVzcG9uc2VUZXh0LHN0YXR1czpnLnN0YXR1cyxzdGF0dXNUZXh0Omcuc3RhdHVzVGV4dCxoZWFkZXJzOnIsY29uZmlnOmUscmVxdWVzdDpnfTtvKChmdW5jdGlvbihlKXt0KGUpLHkoKX0pLChmdW5jdGlvbihlKXtuKGUpLHkoKX0pLGkpLGc9bnVsbH19aWYoZy5vcGVuKGUubWV0aG9kLnRvVXBwZXJDYXNlKCkscyh3LGUucGFyYW1zLGUucGFyYW1zU2VyaWFsaXplciksITApLGcudGltZW91dD1lLnRpbWVvdXQsIm9ubG9hZGVuZCJpbiBnP2cub25sb2FkZW5kPUU6Zy5vbnJlYWR5c3RhdGVjaGFuZ2U9ZnVuY3Rpb24oKXtnJiY0PT09Zy5yZWFkeVN0YXRlJiYoMCE9PWcuc3RhdHVzfHxnLnJlc3BvbnNlVVJMJiYwPT09Zy5yZXNwb25zZVVSTC5pbmRleE9mKCJmaWxlOiIpKSYmc2V0VGltZW91dChFKX0sZy5vbmFib3J0PWZ1bmN0aW9uKCl7ZyYmKG4oZigiUmVxdWVzdCBhYm9ydGVkIixlLCJFQ09OTkFCT1JURUQiLGcpKSxnPW51bGwpfSxnLm9uZXJyb3I9ZnVuY3Rpb24oKXtuKGYoIk5ldHdvcmsgRXJyb3IiLGUsbnVsbCxnKSksZz1udWxsfSxnLm9udGltZW91dD1mdW5jdGlvbigpe3ZhciB0PWUudGltZW91dD8idGltZW91dCBvZiAiK2UudGltZW91dCsibXMgZXhjZWVkZWQiOiJ0aW1lb3V0IGV4Y2VlZGVkIixyPWUudHJhbnNpdGlvbmFsfHxsLnRyYW5zaXRpb25hbDtlLnRpbWVvdXRFcnJvck1lc3NhZ2UmJih0PWUudGltZW91dEVycm9yTWVzc2FnZSksbihmKHQsZSxyLmNsYXJpZnlUaW1lb3V0RXJyb3I\/IkVUSU1FRE9VVCI6IkVDT05OQUJPUlRFRCIsZykpLGc9bnVsbH0sci5pc1N0YW5kYXJkQnJvd3NlckVudigpKXt2YXIgUz0oZS53aXRoQ3JlZGVudGlhbHN8fGModykpJiZlLnhzcmZDb29raWVOYW1lP2kucmVhZChlLnhzcmZDb29raWVOYW1lKTp2b2lkIDA7UyYmKG1bZS54c3JmSGVhZGVyTmFtZV09Uyl9InNldFJlcXVlc3RIZWFkZXIiaW4gZyYmci5mb3JFYWNoKG0sKGZ1bmN0aW9uKGUsdCl7dm9pZCAwPT09aCYmImNvbnRlbnQtdHlwZSI9PT10LnRvTG93ZXJDYXNlKCk\/ZGVsZXRlIG1bdF06Zy5zZXRSZXF1ZXN0SGVhZGVyKHQsZSl9KSksci5pc1VuZGVmaW5lZChlLndpdGhDcmVkZW50aWFscyl8fChnLndpdGhDcmVkZW50aWFscz0hIWUud2l0aENyZWRlbnRpYWxzKSx2JiYianNvbiIhPT12JiYoZy5yZXNwb25zZVR5cGU9ZS5yZXNwb25zZVR5cGUpLCJmdW5jdGlvbiI9PXR5cGVvZiBlLm9uRG93bmxvYWRQcm9ncmVzcyYmZy5hZGRFdmVudExpc3RlbmVyKCJwcm9ncmVzcyIsZS5vbkRvd25sb2FkUHJvZ3Jlc3MpLCJmdW5jdGlvbiI9PXR5cGVvZiBlLm9uVXBsb2FkUHJvZ3Jlc3MmJmcudXBsb2FkJiZnLnVwbG9hZC5hZGRFdmVudExpc3RlbmVyKCJwcm9ncmVzcyIsZS5vblVwbG9hZFByb2dyZXNzKSwoZS5jYW5jZWxUb2tlbnx8ZS5zaWduYWwpJiYoZD1mdW5jdGlvbihlKXtnJiYobighZXx8ZSYmZS50eXBlP25ldyBwKCJjYW5jZWxlZCIpOmUpLGcuYWJvcnQoKSxnPW51bGwpfSxlLmNhbmNlbFRva2VuJiZlLmNhbmNlbFRva2VuLnN1YnNjcmliZShkKSxlLnNpZ25hbCYmKGUuc2lnbmFsLmFib3J0ZWQ\/ZCgpOmUuc2lnbmFsLmFkZEV2ZW50TGlzdGVuZXIoImFib3J0IixkKSkpLGh8fChoPW51bGwpLGcuc2VuZChoKX0pKX19LGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7dmFyIHI9big1KTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0LG4sbyxpKXt2YXIgcz1uZXcgRXJyb3IoZSk7cmV0dXJuIHIocyx0LG4sbyxpKX19LGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3JldHVybiEoIWV8fCFlLl9fQ0FOQ0VMX18pfX0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKDApO2UuZXhwb3J0cz1mdW5jdGlvbihlLHQpe3Q9dHx8e307dmFyIG49e307ZnVuY3Rpb24gbyhlLHQpe3JldHVybiByLmlzUGxhaW5PYmplY3QoZSkmJnIuaXNQbGFpbk9iamVjdCh0KT9yLm1lcmdlKGUsdCk6ci5pc1BsYWluT2JqZWN0KHQpP3IubWVyZ2Uoe30sdCk6ci5pc0FycmF5KHQpP3Quc2xpY2UoKTp0fWZ1bmN0aW9uIGkobil7cmV0dXJuIHIuaXNVbmRlZmluZWQodFtuXSk\/ci5pc1VuZGVmaW5lZChlW25dKT92b2lkIDA6byh2b2lkIDAsZVtuXSk6byhlW25dLHRbbl0pfWZ1bmN0aW9uIHMoZSl7aWYoIXIuaXNVbmRlZmluZWQodFtlXSkpcmV0dXJuIG8odm9pZCAwLHRbZV0pfWZ1bmN0aW9uIGEobil7cmV0dXJuIHIuaXNVbmRlZmluZWQodFtuXSk\/ci5pc1VuZGVmaW5lZChlW25dKT92b2lkIDA6byh2b2lkIDAsZVtuXSk6byh2b2lkIDAsdFtuXSl9ZnVuY3Rpb24gdShuKXtyZXR1cm4gbiBpbiB0P28oZVtuXSx0W25dKTpuIGluIGU\/byh2b2lkIDAsZVtuXSk6dm9pZCAwfXZhciBjPXt1cmw6cyxtZXRob2Q6cyxkYXRhOnMsYmFzZVVSTDphLHRyYW5zZm9ybVJlcXVlc3Q6YSx0cmFuc2Zvcm1SZXNwb25zZTphLHBhcmFtc1NlcmlhbGl6ZXI6YSx0aW1lb3V0OmEsdGltZW91dE1lc3NhZ2U6YSx3aXRoQ3JlZGVudGlhbHM6YSxhZGFwdGVyOmEscmVzcG9uc2VUeXBlOmEseHNyZkNvb2tpZU5hbWU6YSx4c3JmSGVhZGVyTmFtZTphLG9uVXBsb2FkUHJvZ3Jlc3M6YSxvbkRvd25sb2FkUHJvZ3Jlc3M6YSxkZWNvbXByZXNzOmEsbWF4Q29udGVudExlbmd0aDphLG1heEJvZHlMZW5ndGg6YSx0cmFuc3BvcnQ6YSxodHRwQWdlbnQ6YSxodHRwc0FnZW50OmEsY2FuY2VsVG9rZW46YSxzb2NrZXRQYXRoOmEscmVzcG9uc2VFbmNvZGluZzphLHZhbGlkYXRlU3RhdHVzOnV9O3JldHVybiByLmZvckVhY2goT2JqZWN0LmtleXMoZSkuY29uY2F0KE9iamVjdC5rZXlzKHQpKSwoZnVuY3Rpb24oZSl7dmFyIHQ9Y1tlXXx8aSxvPXQoZSk7ci5pc1VuZGVmaW5lZChvKSYmdCE9PXV8fChuW2VdPW8pfSkpLG59fSxmdW5jdGlvbihlLHQpe2UuZXhwb3J0cz17dmVyc2lvbjoiMC4yNC4wIn19LGZ1bmN0aW9uKGUsdCxuKXtlLmV4cG9ydHM9bigxMil9LGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigwKSxvPW4oMyksaT1uKDEzKSxzPW4oOSk7dmFyIGE9ZnVuY3Rpb24gZSh0KXt2YXIgbj1uZXcgaSh0KSxhPW8oaS5wcm90b3R5cGUucmVxdWVzdCxuKTtyZXR1cm4gci5leHRlbmQoYSxpLnByb3RvdHlwZSxuKSxyLmV4dGVuZChhLG4pLGEuY3JlYXRlPWZ1bmN0aW9uKG4pe3JldHVybiBlKHModCxuKSl9LGF9KG4oMSkpO2EuQXhpb3M9aSxhLkNhbmNlbD1uKDIpLGEuQ2FuY2VsVG9rZW49bigyNiksYS5pc0NhbmNlbD1uKDgpLGEuVkVSU0lPTj1uKDEwKS52ZXJzaW9uLGEuYWxsPWZ1bmN0aW9uKGUpe3JldHVybiBQcm9taXNlLmFsbChlKX0sYS5zcHJlYWQ9bigyNyksYS5pc0F4aW9zRXJyb3I9bigyOCksZS5leHBvcnRzPWEsZS5leHBvcnRzLmRlZmF1bHQ9YX0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKDApLG89big0KSxpPW4oMTQpLHM9bigxNSksYT1uKDkpLHU9bigyNSksYz11LnZhbGlkYXRvcnM7ZnVuY3Rpb24gZihlKXt0aGlzLmRlZmF1bHRzPWUsdGhpcy5pbnRlcmNlcHRvcnM9e3JlcXVlc3Q6bmV3IGkscmVzcG9uc2U6bmV3IGl9fWYucHJvdG90eXBlLnJlcXVlc3Q9ZnVuY3Rpb24oZSl7InN0cmluZyI9PXR5cGVvZiBlPyhlPWFyZ3VtZW50c1sxXXx8e30pLnVybD1hcmd1bWVudHNbMF06ZT1lfHx7fSwoZT1hKHRoaXMuZGVmYXVsdHMsZSkpLm1ldGhvZD9lLm1ldGhvZD1lLm1ldGhvZC50b0xvd2VyQ2FzZSgpOnRoaXMuZGVmYXVsdHMubWV0aG9kP2UubWV0aG9kPXRoaXMuZGVmYXVsdHMubWV0aG9kLnRvTG93ZXJDYXNlKCk6ZS5tZXRob2Q9ImdldCI7dmFyIHQ9ZS50cmFuc2l0aW9uYWw7dm9pZCAwIT09dCYmdS5hc3NlcnRPcHRpb25zKHQse3NpbGVudEpTT05QYXJzaW5nOmMudHJhbnNpdGlvbmFsKGMuYm9vbGVhbiksZm9yY2VkSlNPTlBhcnNpbmc6Yy50cmFuc2l0aW9uYWwoYy5ib29sZWFuKSxjbGFyaWZ5VGltZW91dEVycm9yOmMudHJhbnNpdGlvbmFsKGMuYm9vbGVhbil9LCExKTt2YXIgbj1bXSxyPSEwO3RoaXMuaW50ZXJjZXB0b3JzLnJlcXVlc3QuZm9yRWFjaCgoZnVuY3Rpb24odCl7ImZ1bmN0aW9uIj09dHlwZW9mIHQucnVuV2hlbiYmITE9PT10LnJ1bldoZW4oZSl8fChyPXImJnQuc3luY2hyb25vdXMsbi51bnNoaWZ0KHQuZnVsZmlsbGVkLHQucmVqZWN0ZWQpKX0pKTt2YXIgbyxpPVtdO2lmKHRoaXMuaW50ZXJjZXB0b3JzLnJlc3BvbnNlLmZvckVhY2goKGZ1bmN0aW9uKGUpe2kucHVzaChlLmZ1bGZpbGxlZCxlLnJlamVjdGVkKX0pKSwhcil7dmFyIGY9W3Msdm9pZCAwXTtmb3IoQXJyYXkucHJvdG90eXBlLnVuc2hpZnQuYXBwbHkoZixuKSxmPWYuY29uY2F0KGkpLG89UHJvbWlzZS5yZXNvbHZlKGUpO2YubGVuZ3RoOylvPW8udGhlbihmLnNoaWZ0KCksZi5zaGlmdCgpKTtyZXR1cm4gb31mb3IodmFyIGw9ZTtuLmxlbmd0aDspe3ZhciBwPW4uc2hpZnQoKSxkPW4uc2hpZnQoKTt0cnl7bD1wKGwpfWNhdGNoKGUpe2QoZSk7YnJlYWt9fXRyeXtvPXMobCl9Y2F0Y2goZSl7cmV0dXJuIFByb21pc2UucmVqZWN0KGUpfWZvcig7aS5sZW5ndGg7KW89by50aGVuKGkuc2hpZnQoKSxpLnNoaWZ0KCkpO3JldHVybiBvfSxmLnByb3RvdHlwZS5nZXRVcmk9ZnVuY3Rpb24oZSl7cmV0dXJuIGU9YSh0aGlzLmRlZmF1bHRzLGUpLG8oZS51cmwsZS5wYXJhbXMsZS5wYXJhbXNTZXJpYWxpemVyKS5yZXBsYWNlKC9eXD8vLCIiKX0sci5mb3JFYWNoKFsiZGVsZXRlIiwiZ2V0IiwiaGVhZCIsIm9wdGlvbnMiXSwoZnVuY3Rpb24oZSl7Zi5wcm90b3R5cGVbZV09ZnVuY3Rpb24odCxuKXtyZXR1cm4gdGhpcy5yZXF1ZXN0KGEobnx8e30se21ldGhvZDplLHVybDp0LGRhdGE6KG58fHt9KS5kYXRhfSkpfX0pKSxyLmZvckVhY2goWyJwb3N0IiwicHV0IiwicGF0Y2giXSwoZnVuY3Rpb24oZSl7Zi5wcm90b3R5cGVbZV09ZnVuY3Rpb24odCxuLHIpe3JldHVybiB0aGlzLnJlcXVlc3QoYShyfHx7fSx7bWV0aG9kOmUsdXJsOnQsZGF0YTpufSkpfX0pKSxlLmV4cG9ydHM9Zn0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKDApO2Z1bmN0aW9uIG8oKXt0aGlzLmhhbmRsZXJzPVtdfW8ucHJvdG90eXBlLnVzZT1mdW5jdGlvbihlLHQsbil7cmV0dXJuIHRoaXMuaGFuZGxlcnMucHVzaCh7ZnVsZmlsbGVkOmUscmVqZWN0ZWQ6dCxzeW5jaHJvbm91czohIW4mJm4uc3luY2hyb25vdXMscnVuV2hlbjpuP24ucnVuV2hlbjpudWxsfSksdGhpcy5oYW5kbGVycy5sZW5ndGgtMX0sby5wcm90b3R5cGUuZWplY3Q9ZnVuY3Rpb24oZSl7dGhpcy5oYW5kbGVyc1tlXSYmKHRoaXMuaGFuZGxlcnNbZV09bnVsbCl9LG8ucHJvdG90eXBlLmZvckVhY2g9ZnVuY3Rpb24oZSl7ci5mb3JFYWNoKHRoaXMuaGFuZGxlcnMsKGZ1bmN0aW9uKHQpe251bGwhPT10JiZlKHQpfSkpfSxlLmV4cG9ydHM9b30sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKDApLG89bigxNiksaT1uKDgpLHM9bigxKSxhPW4oMik7ZnVuY3Rpb24gdShlKXtpZihlLmNhbmNlbFRva2VuJiZlLmNhbmNlbFRva2VuLnRocm93SWZSZXF1ZXN0ZWQoKSxlLnNpZ25hbCYmZS5zaWduYWwuYWJvcnRlZCl0aHJvdyBuZXcgYSgiY2FuY2VsZWQiKX1lLmV4cG9ydHM9ZnVuY3Rpb24oZSl7cmV0dXJuIHUoZSksZS5oZWFkZXJzPWUuaGVhZGVyc3x8e30sZS5kYXRhPW8uY2FsbChlLGUuZGF0YSxlLmhlYWRlcnMsZS50cmFuc2Zvcm1SZXF1ZXN0KSxlLmhlYWRlcnM9ci5tZXJnZShlLmhlYWRlcnMuY29tbW9ufHx7fSxlLmhlYWRlcnNbZS5tZXRob2RdfHx7fSxlLmhlYWRlcnMpLHIuZm9yRWFjaChbImRlbGV0ZSIsImdldCIsImhlYWQiLCJwb3N0IiwicHV0IiwicGF0Y2giLCJjb21tb24iXSwoZnVuY3Rpb24odCl7ZGVsZXRlIGUuaGVhZGVyc1t0XX0pKSwoZS5hZGFwdGVyfHxzLmFkYXB0ZXIpKGUpLnRoZW4oKGZ1bmN0aW9uKHQpe3JldHVybiB1KGUpLHQuZGF0YT1vLmNhbGwoZSx0LmRhdGEsdC5oZWFkZXJzLGUudHJhbnNmb3JtUmVzcG9uc2UpLHR9KSwoZnVuY3Rpb24odCl7cmV0dXJuIGkodCl8fCh1KGUpLHQmJnQucmVzcG9uc2UmJih0LnJlc3BvbnNlLmRhdGE9by5jYWxsKGUsdC5yZXNwb25zZS5kYXRhLHQucmVzcG9uc2UuaGVhZGVycyxlLnRyYW5zZm9ybVJlc3BvbnNlKSkpLFByb21pc2UucmVqZWN0KHQpfSkpfX0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKDApLG89bigxKTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0LG4pe3ZhciBpPXRoaXN8fG87cmV0dXJuIHIuZm9yRWFjaChuLChmdW5jdGlvbihuKXtlPW4uY2FsbChpLGUsdCl9KSksZX19LGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigwKTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0KXtyLmZvckVhY2goZSwoZnVuY3Rpb24obixyKXtyIT09dCYmci50b1VwcGVyQ2FzZSgpPT09dC50b1VwcGVyQ2FzZSgpJiYoZVt0XT1uLGRlbGV0ZSBlW3JdKX0pKX19LGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7dmFyIHI9big3KTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0LG4pe3ZhciBvPW4uY29uZmlnLnZhbGlkYXRlU3RhdHVzO24uc3RhdHVzJiZvJiYhbyhuLnN0YXR1cyk\/dChyKCJSZXF1ZXN0IGZhaWxlZCB3aXRoIHN0YXR1cyBjb2RlICIrbi5zdGF0dXMsbi5jb25maWcsbnVsbCxuLnJlcXVlc3QsbikpOmUobil9fSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oMCk7ZS5leHBvcnRzPXIuaXNTdGFuZGFyZEJyb3dzZXJFbnYoKT97d3JpdGU6ZnVuY3Rpb24oZSx0LG4sbyxpLHMpe3ZhciBhPVtdO2EucHVzaChlKyI9IitlbmNvZGVVUklDb21wb25lbnQodCkpLHIuaXNOdW1iZXIobikmJmEucHVzaCgiZXhwaXJlcz0iK25ldyBEYXRlKG4pLnRvR01UU3RyaW5nKCkpLHIuaXNTdHJpbmcobykmJmEucHVzaCgicGF0aD0iK28pLHIuaXNTdHJpbmcoaSkmJmEucHVzaCgiZG9tYWluPSIraSksITA9PT1zJiZhLnB1c2goInNlY3VyZSIpLGRvY3VtZW50LmNvb2tpZT1hLmpvaW4oIjsgIil9LHJlYWQ6ZnVuY3Rpb24oZSl7dmFyIHQ9ZG9jdW1lbnQuY29va2llLm1hdGNoKG5ldyBSZWdFeHAoIihefDtcXHMqKSgiK2UrIik9KFteO10qKSIpKTtyZXR1cm4gdD9kZWNvZGVVUklDb21wb25lbnQodFszXSk6bnVsbH0scmVtb3ZlOmZ1bmN0aW9uKGUpe3RoaXMud3JpdGUoZSwiIixEYXRlLm5vdygpLTg2NGU1KX19Ont3cml0ZTpmdW5jdGlvbigpe30scmVhZDpmdW5jdGlvbigpe3JldHVybiBudWxsfSxyZW1vdmU6ZnVuY3Rpb24oKXt9fX0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKDIxKSxvPW4oMjIpO2UuZXhwb3J0cz1mdW5jdGlvbihlLHQpe3JldHVybiBlJiYhcih0KT9vKGUsdCk6dH19LGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3JldHVybi9eKFthLXpdW2EtelxkXCtcLVwuXSo6KT9cL1wvL2kudGVzdChlKX19LGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQ\/ZS5yZXBsYWNlKC9cLyskLywiIikrIi8iK3QucmVwbGFjZSgvXlwvKy8sIiIpOmV9fSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oMCksbz1bImFnZSIsImF1dGhvcml6YXRpb24iLCJjb250ZW50LWxlbmd0aCIsImNvbnRlbnQtdHlwZSIsImV0YWciLCJleHBpcmVzIiwiZnJvbSIsImhvc3QiLCJpZi1tb2RpZmllZC1zaW5jZSIsImlmLXVubW9kaWZpZWQtc2luY2UiLCJsYXN0LW1vZGlmaWVkIiwibG9jYXRpb24iLCJtYXgtZm9yd2FyZHMiLCJwcm94eS1hdXRob3JpemF0aW9uIiwicmVmZXJlciIsInJldHJ5LWFmdGVyIiwidXNlci1hZ2VudCJdO2UuZXhwb3J0cz1mdW5jdGlvbihlKXt2YXIgdCxuLGkscz17fTtyZXR1cm4gZT8oci5mb3JFYWNoKGUuc3BsaXQoIlxuIiksKGZ1bmN0aW9uKGUpe2lmKGk9ZS5pbmRleE9mKCI6IiksdD1yLnRyaW0oZS5zdWJzdHIoMCxpKSkudG9Mb3dlckNhc2UoKSxuPXIudHJpbShlLnN1YnN0cihpKzEpKSx0KXtpZihzW3RdJiZvLmluZGV4T2YodCk+PTApcmV0dXJuO3NbdF09InNldC1jb29raWUiPT09dD8oc1t0XT9zW3RdOltdKS5jb25jYXQoW25dKTpzW3RdP3NbdF0rIiwgIituOm59fSkpLHMpOnN9fSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oMCk7ZS5leHBvcnRzPXIuaXNTdGFuZGFyZEJyb3dzZXJFbnYoKT9mdW5jdGlvbigpe3ZhciBlLHQ9Lyhtc2llfHRyaWRlbnQpL2kudGVzdChuYXZpZ2F0b3IudXNlckFnZW50KSxuPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImEiKTtmdW5jdGlvbiBvKGUpe3ZhciByPWU7cmV0dXJuIHQmJihuLnNldEF0dHJpYnV0ZSgiaHJlZiIscikscj1uLmhyZWYpLG4uc2V0QXR0cmlidXRlKCJocmVmIixyKSx7aHJlZjpuLmhyZWYscHJvdG9jb2w6bi5wcm90b2NvbD9uLnByb3RvY29sLnJlcGxhY2UoLzokLywiIik6IiIsaG9zdDpuLmhvc3Qsc2VhcmNoOm4uc2VhcmNoP24uc2VhcmNoLnJlcGxhY2UoL15cPy8sIiIpOiIiLGhhc2g6bi5oYXNoP24uaGFzaC5yZXBsYWNlKC9eIy8sIiIpOiIiLGhvc3RuYW1lOm4uaG9zdG5hbWUscG9ydDpuLnBvcnQscGF0aG5hbWU6Ii8iPT09bi5wYXRobmFtZS5jaGFyQXQoMCk\/bi5wYXRobmFtZToiLyIrbi5wYXRobmFtZX19cmV0dXJuIGU9byh3aW5kb3cubG9jYXRpb24uaHJlZiksZnVuY3Rpb24odCl7dmFyIG49ci5pc1N0cmluZyh0KT9vKHQpOnQ7cmV0dXJuIG4ucHJvdG9jb2w9PT1lLnByb3RvY29sJiZuLmhvc3Q9PT1lLmhvc3R9fSgpOmZ1bmN0aW9uKCl7cmV0dXJuITB9fSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oMTApLnZlcnNpb24sbz17fTtbIm9iamVjdCIsImJvb2xlYW4iLCJudW1iZXIiLCJmdW5jdGlvbiIsInN0cmluZyIsInN5bWJvbCJdLmZvckVhY2goKGZ1bmN0aW9uKGUsdCl7b1tlXT1mdW5jdGlvbihuKXtyZXR1cm4gdHlwZW9mIG49PT1lfHwiYSIrKHQ8MT8ibiAiOiIgIikrZX19KSk7dmFyIGk9e307by50cmFuc2l0aW9uYWw9ZnVuY3Rpb24oZSx0LG4pe2Z1bmN0aW9uIG8oZSx0KXtyZXR1cm4iW0F4aW9zIHYiK3IrIl0gVHJhbnNpdGlvbmFsIG9wdGlvbiAnIitlKyInIit0KyhuPyIuICIrbjoiIil9cmV0dXJuIGZ1bmN0aW9uKG4scixzKXtpZighMT09PWUpdGhyb3cgbmV3IEVycm9yKG8ociwiIGhhcyBiZWVuIHJlbW92ZWQiKyh0PyIgaW4gIit0OiIiKSkpO3JldHVybiB0JiYhaVtyXSYmKGlbcl09ITAsY29uc29sZS53YXJuKG8ociwiIGhhcyBiZWVuIGRlcHJlY2F0ZWQgc2luY2UgdiIrdCsiIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5lYXIgZnV0dXJlIikpKSwhZXx8ZShuLHIscyl9fSxlLmV4cG9ydHM9e2Fzc2VydE9wdGlvbnM6ZnVuY3Rpb24oZSx0LG4pe2lmKCJvYmplY3QiIT10eXBlb2YgZSl0aHJvdyBuZXcgVHlwZUVycm9yKCJvcHRpb25zIG11c3QgYmUgYW4gb2JqZWN0Iik7Zm9yKHZhciByPU9iamVjdC5rZXlzKGUpLG89ci5sZW5ndGg7by0tID4wOyl7dmFyIGk9cltvXSxzPXRbaV07aWYocyl7dmFyIGE9ZVtpXSx1PXZvaWQgMD09PWF8fHMoYSxpLGUpO2lmKCEwIT09dSl0aHJvdyBuZXcgVHlwZUVycm9yKCJvcHRpb24gIitpKyIgbXVzdCBiZSAiK3UpfWVsc2UgaWYoITAhPT1uKXRocm93IEVycm9yKCJVbmtub3duIG9wdGlvbiAiK2kpfX0sdmFsaWRhdG9yczpvfX0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKDIpO2Z1bmN0aW9uIG8oZSl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGUpdGhyb3cgbmV3IFR5cGVFcnJvcigiZXhlY3V0b3IgbXVzdCBiZSBhIGZ1bmN0aW9uLiIpO3ZhciB0O3RoaXMucHJvbWlzZT1uZXcgUHJvbWlzZSgoZnVuY3Rpb24oZSl7dD1lfSkpO3ZhciBuPXRoaXM7dGhpcy5wcm9taXNlLnRoZW4oKGZ1bmN0aW9uKGUpe2lmKG4uX2xpc3RlbmVycyl7dmFyIHQscj1uLl9saXN0ZW5lcnMubGVuZ3RoO2Zvcih0PTA7dDxyO3QrKyluLl9saXN0ZW5lcnNbdF0oZSk7bi5fbGlzdGVuZXJzPW51bGx9fSkpLHRoaXMucHJvbWlzZS50aGVuPWZ1bmN0aW9uKGUpe3ZhciB0LHI9bmV3IFByb21pc2UoKGZ1bmN0aW9uKGUpe24uc3Vic2NyaWJlKGUpLHQ9ZX0pKS50aGVuKGUpO3JldHVybiByLmNhbmNlbD1mdW5jdGlvbigpe24udW5zdWJzY3JpYmUodCl9LHJ9LGUoKGZ1bmN0aW9uKGUpe24ucmVhc29ufHwobi5yZWFzb249bmV3IHIoZSksdChuLnJlYXNvbikpfSkpfW8ucHJvdG90eXBlLnRocm93SWZSZXF1ZXN0ZWQ9ZnVuY3Rpb24oKXtpZih0aGlzLnJlYXNvbil0aHJvdyB0aGlzLnJlYXNvbn0sby5wcm90b3R5cGUuc3Vic2NyaWJlPWZ1bmN0aW9uKGUpe3RoaXMucmVhc29uP2UodGhpcy5yZWFzb24pOnRoaXMuX2xpc3RlbmVycz90aGlzLl9saXN0ZW5lcnMucHVzaChlKTp0aGlzLl9saXN0ZW5lcnM9W2VdfSxvLnByb3RvdHlwZS51bnN1YnNjcmliZT1mdW5jdGlvbihlKXtpZih0aGlzLl9saXN0ZW5lcnMpe3ZhciB0PXRoaXMuX2xpc3RlbmVycy5pbmRleE9mKGUpOy0xIT09dCYmdGhpcy5fbGlzdGVuZXJzLnNwbGljZSh0LDEpfX0sby5zb3VyY2U9ZnVuY3Rpb24oKXt2YXIgZTtyZXR1cm57dG9rZW46bmV3IG8oKGZ1bmN0aW9uKHQpe2U9dH0pKSxjYW5jZWw6ZX19LGUuZXhwb3J0cz1vfSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIGUuYXBwbHkobnVsbCx0KX19fSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbihlKXtyZXR1cm4ib2JqZWN0Ij09dHlwZW9mIGUmJiEwPT09ZS5pc0F4aW9zRXJyb3J9fV0pfSkpOwovLyMgc291cmNlTWFwcGluZ1VSTD1heGlvcy5taW4ubWFwOwovKiogL2pzL3ZhbmlsbGFqcy9wcmlzdGluZS5taW4uanMgKiovCiFmdW5jdGlvbihlLHIpeyJvYmplY3QiPT10eXBlb2YgZXhwb3J0cyYmInVuZGVmaW5lZCIhPXR5cGVvZiBtb2R1bGU\/bW9kdWxlLmV4cG9ydHM9cigpOiJmdW5jdGlvbiI9PXR5cGVvZiBkZWZpbmUmJmRlZmluZS5hbWQ\/ZGVmaW5lKHIpOihlPSJ1bmRlZmluZWQiIT10eXBlb2YgZ2xvYmFsVGhpcz9nbG9iYWxUaGlzOmV8fHNlbGYpLlByaXN0aW5lPXIoKX0odGhpcywoZnVuY3Rpb24oKXsidXNlIHN0cmljdCI7dmFyIGU9e2VuOntyZXF1aXJlZDoiVGhpcyBmaWVsZCBpcyByZXF1aXJlZCIsZW1haWw6IlRoaXMgZmllbGQgcmVxdWlyZXMgYSB2YWxpZCBlLW1haWwgYWRkcmVzcyIsbnVtYmVyOiJUaGlzIGZpZWxkIHJlcXVpcmVzIGEgbnVtYmVyIixpbnRlZ2VyOiJUaGlzIGZpZWxkIHJlcXVpcmVzIGFuIGludGVnZXIgdmFsdWUiLHVybDoiVGhpcyBmaWVsZCByZXF1aXJlcyBhIHZhbGlkIHdlYnNpdGUgVVJMIix0ZWw6IlRoaXMgZmllbGQgcmVxdWlyZXMgYSB2YWxpZCB0ZWxlcGhvbmUgbnVtYmVyIixtYXhsZW5ndGg6IlRoaXMgZmllbGRzIGxlbmd0aCBtdXN0IGJlIDwgJHsxfSIsbWlubGVuZ3RoOiJUaGlzIGZpZWxkcyBsZW5ndGggbXVzdCBiZSA+ICR7MX0iLG1pbjoiTWluaW11bSB2YWx1ZSBmb3IgdGhpcyBmaWVsZCBpcyAkezF9IixtYXg6Ik1heGltdW0gdmFsdWUgZm9yIHRoaXMgZmllbGQgaXMgJHsxfSIscGF0dGVybjoiUGxlYXNlIG1hdGNoIHRoZSByZXF1ZXN0ZWQgZm9ybWF0IixlcXVhbHM6IlRoZSB0d28gZmllbGRzIGRvIG5vdCBtYXRjaCJ9fTtmdW5jdGlvbiByKGUpe3ZhciByPWFyZ3VtZW50cztyZXR1cm4gdGhpcy5yZXBsYWNlKC9cJHsoW157fV0qKX0vZywoZnVuY3Rpb24oZSx0KXtyZXR1cm4gclt0XX0pKX1mdW5jdGlvbiB0KGUpe3JldHVybiBlLnByaXN0aW5lLnNlbGYuZm9ybS5xdWVyeVNlbGVjdG9yQWxsKCdpbnB1dFtuYW1lPSInK2UuZ2V0QXR0cmlidXRlKCJuYW1lIikrJyJdOmNoZWNrZWQnKS5sZW5ndGh9dmFyIG49e2NsYXNzVG86ImZvcm0tZ3JvdXAiLGVycm9yQ2xhc3M6Imhhcy1kYW5nZXIiLHN1Y2Nlc3NDbGFzczoiaGFzLXN1Y2Nlc3MiLGVycm9yVGV4dFBhcmVudDoiZm9ybS1ncm91cCIsZXJyb3JUZXh0VGFnOiJkaXYiLGVycm9yVGV4dENsYXNzOiJ0ZXh0LWhlbHAifSxpPVsicmVxdWlyZWQiLCJtaW4iLCJtYXgiLCJtaW5sZW5ndGgiLCJtYXhsZW5ndGgiLCJwYXR0ZXJuIl0scz0vXigoW148PigpXFtcXVxcLiw7OlxzQCJdKyhcLltePD4oKVxbXF1cXC4sOzpcc0AiXSspKil8KCIuKyIpKUAoKFxbWzAtOV17MSwzfVwuWzAtOV17MSwzfVwuWzAtOV17MSwzfVwuWzAtOV17MSwzfV0pfCgoW2EtekEtWlwtMC05XStcLikrW2EtekEtWl17Mix9KSkkLyxhPS8tbWVzc2FnZSg\/Oi0oW2Etel17Mn0oPzpfW0EtWl17Mn0pPykpPy8sbz0iZW4iLGw9e30sdT1mdW5jdGlvbihlLHIpe3IubmFtZT1lLHZvaWQgMD09PXIucHJpb3JpdHkmJihyLnByaW9yaXR5PTEpLGxbZV09cn07ZnVuY3Rpb24gZih0LHMsdSl7dmFyIGY9dGhpcztmdW5jdGlvbiBjKGUscix0LG4pe3ZhciBpPWxbdF07aWYoaSYmKGUucHVzaChpKSxuKSl7dmFyIHM9InBhdHRlcm4iPT09dD9bbl06bi5zcGxpdCgiLCIpO3MudW5zaGlmdChudWxsKSxyW3RdPXN9fWZ1bmN0aW9uIHAodCl7Zm9yKHZhciBuPVtdLGk9ITAscz0wO3QudmFsaWRhdG9yc1tzXTtzKyspe3ZhciBhPXQudmFsaWRhdG9yc1tzXSxsPXQucGFyYW1zW2EubmFtZV0\/dC5wYXJhbXNbYS5uYW1lXTpbXTtpZihsWzBdPXQuaW5wdXQudmFsdWUsIWEuZm4uYXBwbHkodC5pbnB1dCxsKSYmKGk9ITEsImZ1bmN0aW9uIj09dHlwZW9mIGEubXNnP24ucHVzaChhLm1zZyh0LmlucHV0LnZhbHVlLGwpKToic3RyaW5nIj09dHlwZW9mIGEubXNnP24ucHVzaChyLmFwcGx5KGEubXNnLGwpKTphLm1zZz09PU9iamVjdChhLm1zZykmJmEubXNnW29dP24ucHVzaChyLmFwcGx5KGEubXNnW29dLGwpKTp0Lm1lc3NhZ2VzW29dJiZ0Lm1lc3NhZ2VzW29dW2EubmFtZV0\/bi5wdXNoKHIuYXBwbHkodC5tZXNzYWdlc1tvXVthLm5hbWVdLGwpKTplW29dJiZlW29dW2EubmFtZV0mJm4ucHVzaChyLmFwcGx5KGVbb11bYS5uYW1lXSxsKSksITA9PT1hLmhhbHQpKWJyZWFrfXJldHVybiB0LmVycm9ycz1uLGl9ZnVuY3Rpb24gbShlKXtpZihlLmVycm9yRWxlbWVudHMpcmV0dXJuIGUuZXJyb3JFbGVtZW50czt2YXIgcj1mdW5jdGlvbihlLHIpe2Zvcig7KGU9ZS5wYXJlbnRFbGVtZW50KSYmIWUuY2xhc3NMaXN0LmNvbnRhaW5zKHIpOyk7cmV0dXJuIGV9KGUuaW5wdXQsZi5jb25maWcuY2xhc3NUbyksdD1udWxsLG49bnVsbDtyZXR1cm4odD1mLmNvbmZpZy5jbGFzc1RvPT09Zi5jb25maWcuZXJyb3JUZXh0UGFyZW50P3I6ci5xdWVyeVNlbGVjdG9yKCIuIitmLmNvbmZpZy5lcnJvclRleHRQYXJlbnQpKSYmKChuPXQucXVlcnlTZWxlY3RvcigiLnByaXN0aW5lLWVycm9yIikpfHwoKG49ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChmLmNvbmZpZy5lcnJvclRleHRUYWcpKS5jbGFzc05hbWU9InByaXN0aW5lLWVycm9yICIrZi5jb25maWcuZXJyb3JUZXh0Q2xhc3MsdC5hcHBlbmRDaGlsZChuKSxuLnByaXN0aW5lRGlzcGxheT1uLnN0eWxlLmRpc3BsYXkpKSxlLmVycm9yRWxlbWVudHM9W3Isbl19ZnVuY3Rpb24gZChlKXt2YXIgcj1tKGUpLHQ9clswXSxuPXJbMV07dCYmKHQuY2xhc3NMaXN0LnJlbW92ZShmLmNvbmZpZy5zdWNjZXNzQ2xhc3MpLHQuY2xhc3NMaXN0LmFkZChmLmNvbmZpZy5lcnJvckNsYXNzKSksbiYmKG4uaW5uZXJIVE1MPWUuZXJyb3JzLmpvaW4oIjxici8+Iiksbi5zdHlsZS5kaXNwbGF5PW4ucHJpc3RpbmVEaXNwbGF5fHwiIil9ZnVuY3Rpb24gaChlKXt2YXIgcj1mdW5jdGlvbihlKXt2YXIgcj1tKGUpLHQ9clswXSxuPXJbMV07cmV0dXJuIHQmJih0LmNsYXNzTGlzdC5yZW1vdmUoZi5jb25maWcuZXJyb3JDbGFzcyksdC5jbGFzc0xpc3QucmVtb3ZlKGYuY29uZmlnLnN1Y2Nlc3NDbGFzcykpLG4mJihuLmlubmVySFRNTD0iIixuLnN0eWxlLmRpc3BsYXk9Im5vbmUiKSxyfShlKVswXTtyJiZyLmNsYXNzTGlzdC5hZGQoZi5jb25maWcuc3VjY2Vzc0NsYXNzKX1yZXR1cm4gZnVuY3Rpb24oZSxyLHQpe2Uuc2V0QXR0cmlidXRlKCJub3ZhbGlkYXRlIiwidHJ1ZSIpLGYuZm9ybT1lLGYuY29uZmlnPWZ1bmN0aW9uKGUscil7Zm9yKHZhciB0IGluIHIpdCBpbiBlfHwoZVt0XT1yW3RdKTtyZXR1cm4gZX0ocnx8e30sbiksZi5saXZlPSEoITE9PT10KSxmLmZpZWxkcz1BcnJheS5mcm9tKGUucXVlcnlTZWxlY3RvckFsbCgiaW5wdXQ6bm90KFt0eXBlXj1oaWRkZW5dKTpub3QoW3R5cGVePXN1Ym1pdF0pLCBzZWxlY3QsIHRleHRhcmVhIikpLm1hcChmdW5jdGlvbihlKXt2YXIgcj1bXSx0PXt9LG49e307cmV0dXJuW10uZm9yRWFjaC5jYWxsKGUuYXR0cmlidXRlcywoZnVuY3Rpb24oZSl7aWYoL15kYXRhLXByaXN0aW5lLS8udGVzdChlLm5hbWUpKXt2YXIgcz1lLm5hbWUuc3Vic3RyKDE0KSxvPXMubWF0Y2goYSk7aWYobnVsbCE9PW8pe3ZhciBsPXZvaWQgMD09PW9bMV0\/ImVuIjpvWzFdO3JldHVybiBuLmhhc093blByb3BlcnR5KGwpfHwobltsXT17fSksdm9pZChuW2xdW3Muc2xpY2UoMCxzLmxlbmd0aC1vWzBdLmxlbmd0aCldPWUudmFsdWUpfSJ0eXBlIj09PXMmJihzPWUudmFsdWUpLGMocix0LHMsZS52YWx1ZSl9ZWxzZX5pLmluZGV4T2YoZS5uYW1lKT9jKHIsdCxlLm5hbWUsZS52YWx1ZSk6InR5cGUiPT09ZS5uYW1lJiZjKHIsdCxlLnZhbHVlKX0pKSxyLnNvcnQoKGZ1bmN0aW9uKGUscil7cmV0dXJuIHIucHJpb3JpdHktZS5wcmlvcml0eX0pKSxmLmxpdmUmJmUuYWRkRXZlbnRMaXN0ZW5lcih+WyJyYWRpbyIsImNoZWNrYm94Il0uaW5kZXhPZihlLmdldEF0dHJpYnV0ZSgidHlwZSIpKT8iY2hhbmdlIjoiaW5wdXQiLGZ1bmN0aW9uKGUpe2YudmFsaWRhdGUoZS50YXJnZXQpfS5iaW5kKGYpKSxlLnByaXN0aW5lPXtpbnB1dDplLHZhbGlkYXRvcnM6cixwYXJhbXM6dCxtZXNzYWdlczpuLHNlbGY6Zn19LmJpbmQoZikpfSh0LHMsdSksZi52YWxpZGF0ZT1mdW5jdGlvbihlLHIpe3I9ZSYmITA9PT1yfHwhMD09PWU7dmFyIHQ9Zi5maWVsZHM7ITAhPT1lJiYhMSE9PWUmJihlIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQ\/dD1bZS5wcmlzdGluZV06KGUgaW5zdGFuY2VvZiBOb2RlTGlzdHx8ZSBpbnN0YW5jZW9mKHdpbmRvdy4kfHxBcnJheSl8fGUgaW5zdGFuY2VvZiBBcnJheSkmJih0PUFycmF5LmZyb20oZSkubWFwKChmdW5jdGlvbihlKXtyZXR1cm4gZS5wcmlzdGluZX0pKSkpO2Zvcih2YXIgbj0hMCxpPTA7dFtpXTtpKyspe3ZhciBzPXRbaV07cChzKT8hciYmaChzKToobj0hMSwhciYmZChzKSl9cmV0dXJuIG59LGYuZ2V0RXJyb3JzPWZ1bmN0aW9uKGUpe2lmKCFlKXtmb3IodmFyIHI9W10sdD0wO3Q8Zi5maWVsZHMubGVuZ3RoO3QrKyl7dmFyIG49Zi5maWVsZHNbdF07bi5lcnJvcnMubGVuZ3RoJiZyLnB1c2goe2lucHV0Om4uaW5wdXQsZXJyb3JzOm4uZXJyb3JzfSl9cmV0dXJuIHJ9cmV0dXJuIGUudGFnTmFtZSYmInNlbGVjdCI9PT1lLnRhZ05hbWUudG9Mb3dlckNhc2UoKT9lLnByaXN0aW5lLmVycm9yczplLmxlbmd0aD9lWzBdLnByaXN0aW5lLmVycm9yczplLnByaXN0aW5lLmVycm9yc30sZi5hZGRWYWxpZGF0b3I9ZnVuY3Rpb24oZSxyLHQsbixpKXtlIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQ\/KGUucHJpc3RpbmUudmFsaWRhdG9ycy5wdXNoKHtmbjpyLG1zZzp0LHByaW9yaXR5Om4saGFsdDppfSksZS5wcmlzdGluZS52YWxpZGF0b3JzLnNvcnQoKGZ1bmN0aW9uKGUscil7cmV0dXJuIHIucHJpb3JpdHktZS5wcmlvcml0eX0pKSk6Y29uc29sZS53YXJuKCJUaGUgcGFyYW1ldGVyIGVsZW0gbXVzdCBiZSBhIGRvbSBlbGVtZW50Iil9LGYuYWRkRXJyb3I9ZnVuY3Rpb24oZSxyKXsoZT1lLmxlbmd0aD9lWzBdOmUpLnByaXN0aW5lLmVycm9ycy5wdXNoKHIpLGQoZS5wcmlzdGluZSl9LGYucmVzZXQ9ZnVuY3Rpb24oKXtmb3IodmFyIGU9MDtmLmZpZWxkc1tlXTtlKyspZi5maWVsZHNbZV0uZXJyb3JFbGVtZW50cz1udWxsO0FycmF5LmZyb20oZi5mb3JtLnF1ZXJ5U2VsZWN0b3JBbGwoIi5wcmlzdGluZS1lcnJvciIpKS5tYXAoKGZ1bmN0aW9uKGUpe2UucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChlKX0pKSxBcnJheS5mcm9tKGYuZm9ybS5xdWVyeVNlbGVjdG9yQWxsKCIuIitmLmNvbmZpZy5jbGFzc1RvKSkubWFwKChmdW5jdGlvbihlKXtlLmNsYXNzTGlzdC5yZW1vdmUoZi5jb25maWcuc3VjY2Vzc0NsYXNzKSxlLmNsYXNzTGlzdC5yZW1vdmUoZi5jb25maWcuZXJyb3JDbGFzcyl9KSl9LGYuZGVzdHJveT1mdW5jdGlvbigpe2YucmVzZXQoKSxmLmZpZWxkcy5mb3JFYWNoKChmdW5jdGlvbihlKXtkZWxldGUgZS5pbnB1dC5wcmlzdGluZX0pKSxmLmZpZWxkcz1bXX0sZi5zZXRHbG9iYWxDb25maWc9ZnVuY3Rpb24oZSl7bj1lfSxmfXJldHVybiB1KCJ0ZXh0Iix7Zm46ZnVuY3Rpb24oZSl7cmV0dXJuITB9LHByaW9yaXR5OjB9KSx1KCJyZXF1aXJlZCIse2ZuOmZ1bmN0aW9uKGUpe3JldHVybiJyYWRpbyI9PT10aGlzLnR5cGV8fCJjaGVja2JveCI9PT10aGlzLnR5cGU\/dCh0aGlzKTp2b2lkIDAhPT1lJiYiIiE9PWV9LHByaW9yaXR5Ojk5LGhhbHQ6ITB9KSx1KCJlbWFpbCIse2ZuOmZ1bmN0aW9uKGUpe3JldHVybiFlfHxzLnRlc3QoZSl9fSksdSgibnVtYmVyIix7Zm46ZnVuY3Rpb24oZSl7cmV0dXJuIWV8fCFpc05hTihwYXJzZUZsb2F0KGUpKX0scHJpb3JpdHk6Mn0pLHUoImludGVnZXIiLHtmbjpmdW5jdGlvbihlKXtyZXR1cm4hZXx8L15cZCskLy50ZXN0KGUpfX0pLHUoIm1pbmxlbmd0aCIse2ZuOmZ1bmN0aW9uKGUscil7cmV0dXJuIWV8fGUubGVuZ3RoPj1wYXJzZUludChyKX19KSx1KCJtYXhsZW5ndGgiLHtmbjpmdW5jdGlvbihlLHIpe3JldHVybiFlfHxlLmxlbmd0aDw9cGFyc2VJbnQocil9fSksdSgibWluIix7Zm46ZnVuY3Rpb24oZSxyKXtyZXR1cm4hZXx8KCJjaGVja2JveCI9PT10aGlzLnR5cGU\/dCh0aGlzKT49cGFyc2VJbnQocik6cGFyc2VGbG9hdChlKT49cGFyc2VGbG9hdChyKSl9fSksdSgibWF4Iix7Zm46ZnVuY3Rpb24oZSxyKXtyZXR1cm4hZXx8KCJjaGVja2JveCI9PT10aGlzLnR5cGU\/dCh0aGlzKTw9cGFyc2VJbnQocik6cGFyc2VGbG9hdChlKTw9cGFyc2VGbG9hdChyKSl9fSksdSgicGF0dGVybiIse2ZuOmZ1bmN0aW9uKGUscil7dmFyIHQ9ci5tYXRjaChuZXcgUmVnRXhwKCJeLyguKj8pLyhbZ2lteV0qKSQiKSk7cmV0dXJuIWV8fG5ldyBSZWdFeHAodFsxXSx0WzJdKS50ZXN0KGUpfX0pLHUoImVxdWFscyIse2ZuOmZ1bmN0aW9uKGUscil7dmFyIHQ9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcihyKTtyZXR1cm4gdCYmKCFlJiYhdC52YWx1ZXx8dC52YWx1ZT09PWUpfX0pLGYuYWRkVmFsaWRhdG9yPWZ1bmN0aW9uKGUscix0LG4saSl7dShlLHtmbjpyLG1zZzp0LHByaW9yaXR5Om4saGFsdDppfSl9LGYuYWRkTWVzc2FnZXM9ZnVuY3Rpb24ocix0KXt2YXIgbj1lLmhhc093blByb3BlcnR5KHIpP2Vbcl06ZVtyXT17fTtPYmplY3Qua2V5cyh0KS5mb3JFYWNoKChmdW5jdGlvbihlLHIpe25bZV09dFtlXX0pKX0sZi5zZXRMb2NhbGU9ZnVuY3Rpb24oZSl7bz1lfSxmfSkpOwoKLy9FeHRlbnNpb24KLy8gQSB2YWxpZGF0b3IgdG8gY2hlY2sgaWYgdGhlIGlucHV0IHZhbHVlIGlzIHdpdGhpbiBhIHNwZWNpZmllZCByYW5nZQovLyBUaGUgZ2xvYmFsIHZhbGlkYXRvciBtdXN0IGJlIGFkZGVkIGJlZm9yZSBjcmVhdGluZyB0aGUgcHJpc3RpbmUgaW5zdGFuY2UKCi8vIFByaXN0aW5lLmFkZFZhbGlkYXRvcigicGhvbmUiLCBmdW5jdGlvbihwaG9uZSkgewoKLy8gCXZhciBWYWxpZEFyZWFDb2RlcyA9IFsKLy8gCQk0MzgsNTE0LDI2Myw0NTAsNTc5LDgxOSwyNDksNzA1LDIyNiwKLy8gCQk1MTksMjg5LDM2NSw5MDUsNDE2LDQzNyw2NDcsMzQzLAovLyAJCTYxMyw3MDksODczLDQxOCw1ODEsNTA2LDkwMgovLyAJXTsKCi8vIAlwaG9uZSA9IHBob25lLnJlcGxhY2UoL1teMC05XSsvZ2ksICcnKTsKLy8gCWlmKHR5cGVvZiBlbWFpbEhhbmRsZXIhPSd1bmRlZmluZWQnICYmIHRoaXMuaGFzQ2xhc3MoJ3JlcXVpcmVkJykpIHsKLy8gCQllbWFpbEhhbmRsZXIucGhvbmVNYW5kYXRvcnk9dHJ1ZTsKLy8gCX0KLy8gCWlmKCBwaG9uZVswXSA9PSAnMScgKXsKLy8gCQlwaG9uZSA9IHBob25lLnN1YnN0cmluZyggMSApOwovLyAJfQoKLy8gCXZhciBhcmVhQ29kZSA9IHBhcnNlSW50KCBwaG9uZS5zdWJzdHJpbmcoMCwzKSApOwoKLy8gCWF4aW9zLmdldCgnaHR0cHM6Ly9hdXRvYXViYWluZS5jb20vc2VydmljZXMvdmFsaWRhdGVQaG9uZU51bWJlci5waHAnLHsKLy8gCQl0aW1lb3V0OjIwMDAsCi8vIAkJZGF0YVR5cGU6ICdqc29uJywKLy8gCQlwYXJhbXM6IHtwaG9uZTogcGhvbmV9LAovLyAJCXJlc3BvbnNlVHlwZTogJ2pzb24nCi8vIAl9KQovLyAJLnRoZW4oZnVuY3Rpb24ocmVzKSB7CgovLyAJCWlmICh0eXBlb2YgcmVzLmlzT2sgIT09ICd1bmRlZmluZWQnKXsKLy8gCQkJaWYgKHJlcy5waG9uZU51bWJlcklzVmFsaWQgPT09IGZhbHNlKSB7Ci8vIAkJCQkvL2NvbnNvbGUubG9nKCdwaG9uZSAnK3Bob25lKycgaXMgaW52YWxpZCcpOwovLyAJCQkJaWYodHlwZW9mIGVtYWlsSGFuZGxlciE9J3VuZGVmaW5lZCcgJiYgZW1haWxIYW5kbGVyLnBob25lTWFuZGF0b3J5ICkgewovLyAJCQkJCWVtYWlsSGFuZGxlci5waG9uZVZhbGlkYXRpb25BdHRlbXB0cysrOwovLyAJCQkJfQovLyAJCQkJcmV0dXJuIHRydWU7Ci8vIAkJCX0KLy8gCQkJfSBlbHNlIHsKLy8gCQkJLy92YWxpZGF0ZSBhcmVhY29kZSBhdCBsZWFzdAovLyAJCQlpZiggdHlwZW9mIFZhbGlkQXJlYUNvZGVzLmluZGV4T2YgIT0gJ3VuZGVmaW5lZCcgJiYJVmFsaWRBcmVhQ29kZXMuaW5kZXhPZiggYXJlYUNvZGUgKSA9PSAtMSApewovLyAJCQkJcmV0dXJuIGZhbHNlOwovLyAJCQl9Ci8vIAkJfQoKLy8gCX0pCi8vIAkuY2F0Y2goZnVuY3Rpb24oZXJyb3IpIHsKLy8gCQkvLyB2YWxpZGF0ZSBhcmVhY29kZSBhdCBsZWFzdAovLyAJCWlmKCB0eXBlb2YgVmFsaWRBcmVhQ29kZXMuaW5kZXhPZiAhPSAndW5kZWZpbmVkJyAmJglWYWxpZEFyZWFDb2Rlcy5pbmRleE9mKCBhcmVhQ29kZSApID09IC0xICl7Ci8vIAkJaWYodHlwZW9mIGVtYWlsSGFuZGxlciE9J3VuZGVmaW5lZCcJJiYgZW1haWxIYW5kbGVyLnBob25lTWFuZGF0b3J5KSBlbWFpbEhhbmRsZXIucGhvbmVWYWxpZGF0aW9uQXR0ZW1wdHMrKzsKLy8gCQkJcmV0dXJuIGZhbHNlOwovLyAJCX0KLy8gCQkvL2NvbnNvbGUubG9nKCJ2YWxpZGl0eSB2YWxpZGF0ZVBob25lTnVtYmVyIG5ldHdvcmsgZXJyb3IiKTsKCi8vIAkJcmV0dXJuIGZhbHNlOwovLyAJfSk7CgoKCi8vIH0sICJUaGUgdmFsdWUgKCR7MH0pIG11c3QgYmUgYmV0d2VlbiAkezF9IGFuZCAkezJ9IiwgNSwgZmFsc2UpOwovKiogL2pzL3ZhbmlsbGFqcy9mbGF0cGlja3IubWluLmpzICoqLwovKiBmbGF0cGlja3IgdjQuNi45LCwgQGxpY2Vuc2UgTUlUICovCiFmdW5jdGlvbihlLHQpeyJvYmplY3QiPT10eXBlb2YgZXhwb3J0cyYmInVuZGVmaW5lZCIhPXR5cGVvZiBtb2R1bGU\/bW9kdWxlLmV4cG9ydHM9dCgpOiJmdW5jdGlvbiI9PXR5cGVvZiBkZWZpbmUmJmRlZmluZS5hbWQ\/ZGVmaW5lKHQpOihlPSJ1bmRlZmluZWQiIT10eXBlb2YgZ2xvYmFsVGhpcz9nbG9iYWxUaGlzOmV8fHNlbGYpLmZsYXRwaWNrcj10KCl9KHRoaXMsKGZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO3ZhciBlPWZ1bmN0aW9uKCl7cmV0dXJuKGU9T2JqZWN0LmFzc2lnbnx8ZnVuY3Rpb24oZSl7Zm9yKHZhciB0LG49MSxhPWFyZ3VtZW50cy5sZW5ndGg7bjxhO24rKylmb3IodmFyIGkgaW4gdD1hcmd1bWVudHNbbl0pT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQsaSkmJihlW2ldPXRbaV0pO3JldHVybiBlfSkuYXBwbHkodGhpcyxhcmd1bWVudHMpfTtmdW5jdGlvbiB0KCl7Zm9yKHZhciBlPTAsdD0wLG49YXJndW1lbnRzLmxlbmd0aDt0PG47dCsrKWUrPWFyZ3VtZW50c1t0XS5sZW5ndGg7dmFyIGE9QXJyYXkoZSksaT0wO2Zvcih0PTA7dDxuO3QrKylmb3IodmFyIG89YXJndW1lbnRzW3RdLHI9MCxsPW8ubGVuZ3RoO3I8bDtyKyssaSsrKWFbaV09b1tyXTtyZXR1cm4gYX12YXIgbj1bIm9uQ2hhbmdlIiwib25DbG9zZSIsIm9uRGF5Q3JlYXRlIiwib25EZXN0cm95Iiwib25LZXlEb3duIiwib25Nb250aENoYW5nZSIsIm9uT3BlbiIsIm9uUGFyc2VDb25maWciLCJvblJlYWR5Iiwib25WYWx1ZVVwZGF0ZSIsIm9uWWVhckNoYW5nZSIsIm9uUHJlQ2FsZW5kYXJQb3NpdGlvbiJdLGE9e19kaXNhYmxlOltdLGFsbG93SW5wdXQ6ITEsYWxsb3dJbnZhbGlkUHJlbG9hZDohMSxhbHRGb3JtYXQ6IkYgaiwgWSIsYWx0SW5wdXQ6ITEsYWx0SW5wdXRDbGFzczoiZm9ybS1jb250cm9sIGlucHV0IixhbmltYXRlOiJvYmplY3QiPT10eXBlb2Ygd2luZG93JiYtMT09PXdpbmRvdy5uYXZpZ2F0b3IudXNlckFnZW50LmluZGV4T2YoIk1TSUUiKSxhcmlhRGF0ZUZvcm1hdDoiRiBqLCBZIixhdXRvRmlsbERlZmF1bHRUaW1lOiEwLGNsaWNrT3BlbnM6ITAsY2xvc2VPblNlbGVjdDohMCxjb25qdW5jdGlvbjoiLCAiLGRhdGVGb3JtYXQ6IlktbS1kIixkZWZhdWx0SG91cjoxMixkZWZhdWx0TWludXRlOjAsZGVmYXVsdFNlY29uZHM6MCxkaXNhYmxlOltdLGRpc2FibGVNb2JpbGU6ITEsZW5hYmxlU2Vjb25kczohMSxlbmFibGVUaW1lOiExLGVycm9ySGFuZGxlcjpmdW5jdGlvbihlKXtyZXR1cm4idW5kZWZpbmVkIiE9dHlwZW9mIGNvbnNvbGUmJmNvbnNvbGUud2FybihlKX0sZ2V0V2VlazpmdW5jdGlvbihlKXt2YXIgdD1uZXcgRGF0ZShlLmdldFRpbWUoKSk7dC5zZXRIb3VycygwLDAsMCwwKSx0LnNldERhdGUodC5nZXREYXRlKCkrMy0odC5nZXREYXkoKSs2KSU3KTt2YXIgbj1uZXcgRGF0ZSh0LmdldEZ1bGxZZWFyKCksMCw0KTtyZXR1cm4gMStNYXRoLnJvdW5kKCgodC5nZXRUaW1lKCktbi5nZXRUaW1lKCkpLzg2NGU1LTMrKG4uZ2V0RGF5KCkrNiklNykvNyl9LGhvdXJJbmNyZW1lbnQ6MSxpZ25vcmVkRm9jdXNFbGVtZW50czpbXSxpbmxpbmU6ITEsbG9jYWxlOiJkZWZhdWx0IixtaW51dGVJbmNyZW1lbnQ6NSxtb2RlOiJzaW5nbGUiLG1vbnRoU2VsZWN0b3JUeXBlOiJkcm9wZG93biIsbmV4dEFycm93OiI8c3ZnIHZlcnNpb249JzEuMScgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB4bWxuczp4bGluaz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluaycgdmlld0JveD0nMCAwIDE3IDE3Jz48Zz48L2c+PHBhdGggZD0nTTEzLjIwNyA4LjQ3MmwtNy44NTQgNy44NTQtMC43MDctMC43MDcgNy4xNDYtNy4xNDYtNy4xNDYtNy4xNDggMC43MDctMC43MDcgNy44NTQgNy44NTR6JyAvPjwvc3ZnPiIsbm9DYWxlbmRhcjohMSxub3c6bmV3IERhdGUsb25DaGFuZ2U6W10sb25DbG9zZTpbXSxvbkRheUNyZWF0ZTpbXSxvbkRlc3Ryb3k6W10sb25LZXlEb3duOltdLG9uTW9udGhDaGFuZ2U6W10sb25PcGVuOltdLG9uUGFyc2VDb25maWc6W10sb25SZWFkeTpbXSxvblZhbHVlVXBkYXRlOltdLG9uWWVhckNoYW5nZTpbXSxvblByZUNhbGVuZGFyUG9zaXRpb246W10scGx1Z2luczpbXSxwb3NpdGlvbjoiYXV0byIscG9zaXRpb25FbGVtZW50OnZvaWQgMCxwcmV2QXJyb3c6IjxzdmcgdmVyc2lvbj0nMS4xJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHhtbG5zOnhsaW5rPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rJyB2aWV3Qm94PScwIDAgMTcgMTcnPjxnPjwvZz48cGF0aCBkPSdNNS4yMDcgOC40NzFsNy4xNDYgNy4xNDctMC43MDcgMC43MDctNy44NTMtNy44NTQgNy44NTQtNy44NTMgMC43MDcgMC43MDctNy4xNDcgNy4xNDZ6JyAvPjwvc3ZnPiIsc2hvcnRoYW5kQ3VycmVudE1vbnRoOiExLHNob3dNb250aHM6MSxzdGF0aWM6ITEsdGltZV8yNGhyOiExLHdlZWtOdW1iZXJzOiExLHdyYXA6ITF9LGk9e3dlZWtkYXlzOntzaG9ydGhhbmQ6WyJTdW4iLCJNb24iLCJUdWUiLCJXZWQiLCJUaHUiLCJGcmkiLCJTYXQiXSxsb25naGFuZDpbIlN1bmRheSIsIk1vbmRheSIsIlR1ZXNkYXkiLCJXZWRuZXNkYXkiLCJUaHVyc2RheSIsIkZyaWRheSIsIlNhdHVyZGF5Il19LG1vbnRoczp7c2hvcnRoYW5kOlsiSmFuIiwiRmViIiwiTWFyIiwiQXByIiwiTWF5IiwiSnVuIiwiSnVsIiwiQXVnIiwiU2VwIiwiT2N0IiwiTm92IiwiRGVjIl0sbG9uZ2hhbmQ6WyJKYW51YXJ5IiwiRmVicnVhcnkiLCJNYXJjaCIsIkFwcmlsIiwiTWF5IiwiSnVuZSIsIkp1bHkiLCJBdWd1c3QiLCJTZXB0ZW1iZXIiLCJPY3RvYmVyIiwiTm92ZW1iZXIiLCJEZWNlbWJlciJdfSxkYXlzSW5Nb250aDpbMzEsMjgsMzEsMzAsMzEsMzAsMzEsMzEsMzAsMzEsMzAsMzFdLGZpcnN0RGF5T2ZXZWVrOjAsb3JkaW5hbDpmdW5jdGlvbihlKXt2YXIgdD1lJTEwMDtpZih0PjMmJnQ8MjEpcmV0dXJuInRoIjtzd2l0Y2godCUxMCl7Y2FzZSAxOnJldHVybiJzdCI7Y2FzZSAyOnJldHVybiJuZCI7Y2FzZSAzOnJldHVybiJyZCI7ZGVmYXVsdDpyZXR1cm4idGgifX0scmFuZ2VTZXBhcmF0b3I6IiB0byAiLHdlZWtBYmJyZXZpYXRpb246IldrIixzY3JvbGxUaXRsZToiU2Nyb2xsIHRvIGluY3JlbWVudCIsdG9nZ2xlVGl0bGU6IkNsaWNrIHRvIHRvZ2dsZSIsYW1QTTpbIkFNIiwiUE0iXSx5ZWFyQXJpYUxhYmVsOiJZZWFyIixtb250aEFyaWFMYWJlbDoiTW9udGgiLGhvdXJBcmlhTGFiZWw6IkhvdXIiLG1pbnV0ZUFyaWFMYWJlbDoiTWludXRlIix0aW1lXzI0aHI6ITF9LG89ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdm9pZCAwPT09dCYmKHQ9MiksKCIwMDAiK2UpLnNsaWNlKC0xKnQpfSxyPWZ1bmN0aW9uKGUpe3JldHVybiEwPT09ZT8xOjB9O2Z1bmN0aW9uIGwoZSx0KXt2YXIgbjtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgYT10aGlzO2NsZWFyVGltZW91dChuKSxuPXNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7cmV0dXJuIGUuYXBwbHkoYSxhcmd1bWVudHMpfSksdCl9fXZhciBjPWZ1bmN0aW9uKGUpe3JldHVybiBlIGluc3RhbmNlb2YgQXJyYXk\/ZTpbZV19O2Z1bmN0aW9uIGQoZSx0LG4pe2lmKCEwPT09bilyZXR1cm4gZS5jbGFzc0xpc3QuYWRkKHQpO2UuY2xhc3NMaXN0LnJlbW92ZSh0KX1mdW5jdGlvbiBzKGUsdCxuKXt2YXIgYT13aW5kb3cuZG9jdW1lbnQuY3JlYXRlRWxlbWVudChlKTtyZXR1cm4gdD10fHwiIixuPW58fCIiLGEuY2xhc3NOYW1lPXQsdm9pZCAwIT09biYmKGEudGV4dENvbnRlbnQ9biksYX1mdW5jdGlvbiB1KGUpe2Zvcig7ZS5maXJzdENoaWxkOyllLnJlbW92ZUNoaWxkKGUuZmlyc3RDaGlsZCl9ZnVuY3Rpb24gZihlLHQpe3JldHVybiB0KGUpP2U6ZS5wYXJlbnROb2RlP2YoZS5wYXJlbnROb2RlLHQpOnZvaWQgMH1mdW5jdGlvbiBtKGUsdCl7dmFyIG49cygiZGl2IiwibnVtSW5wdXRXcmFwcGVyIiksYT1zKCJpbnB1dCIsIm51bUlucHV0ICIrZSksaT1zKCJzcGFuIiwiYXJyb3dVcCIpLG89cygic3BhbiIsImFycm93RG93biIpO2lmKC0xPT09bmF2aWdhdG9yLnVzZXJBZ2VudC5pbmRleE9mKCJNU0lFIDkuMCIpP2EudHlwZT0ibnVtYmVyIjooYS50eXBlPSJ0ZXh0IixhLnBhdHRlcm49IlxcZCoiKSx2b2lkIDAhPT10KWZvcih2YXIgciBpbiB0KWEuc2V0QXR0cmlidXRlKHIsdFtyXSk7cmV0dXJuIG4uYXBwZW5kQ2hpbGQoYSksbi5hcHBlbmRDaGlsZChpKSxuLmFwcGVuZENoaWxkKG8pLG59ZnVuY3Rpb24gZyhlKXt0cnl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIGUuY29tcG9zZWRQYXRoP2UuY29tcG9zZWRQYXRoKClbMF06ZS50YXJnZXR9Y2F0Y2godCl7cmV0dXJuIGUudGFyZ2V0fX12YXIgcD1mdW5jdGlvbigpe30saD1mdW5jdGlvbihlLHQsbil7cmV0dXJuIG4ubW9udGhzW3Q\/InNob3J0aGFuZCI6ImxvbmdoYW5kIl1bZV19LHY9e0Q6cCxGOmZ1bmN0aW9uKGUsdCxuKXtlLnNldE1vbnRoKG4ubW9udGhzLmxvbmdoYW5kLmluZGV4T2YodCkpfSxHOmZ1bmN0aW9uKGUsdCl7ZS5zZXRIb3VycyhwYXJzZUZsb2F0KHQpKX0sSDpmdW5jdGlvbihlLHQpe2Uuc2V0SG91cnMocGFyc2VGbG9hdCh0KSl9LEo6ZnVuY3Rpb24oZSx0KXtlLnNldERhdGUocGFyc2VGbG9hdCh0KSl9LEs6ZnVuY3Rpb24oZSx0LG4pe2Uuc2V0SG91cnMoZS5nZXRIb3VycygpJTEyKzEyKnIobmV3IFJlZ0V4cChuLmFtUE1bMV0sImkiKS50ZXN0KHQpKSl9LE06ZnVuY3Rpb24oZSx0LG4pe2Uuc2V0TW9udGgobi5tb250aHMuc2hvcnRoYW5kLmluZGV4T2YodCkpfSxTOmZ1bmN0aW9uKGUsdCl7ZS5zZXRTZWNvbmRzKHBhcnNlRmxvYXQodCkpfSxVOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIG5ldyBEYXRlKDFlMypwYXJzZUZsb2F0KHQpKX0sVzpmdW5jdGlvbihlLHQsbil7dmFyIGE9cGFyc2VJbnQodCksaT1uZXcgRGF0ZShlLmdldEZ1bGxZZWFyKCksMCwyKzcqKGEtMSksMCwwLDAsMCk7cmV0dXJuIGkuc2V0RGF0ZShpLmdldERhdGUoKS1pLmdldERheSgpK24uZmlyc3REYXlPZldlZWspLGl9LFk6ZnVuY3Rpb24oZSx0KXtlLnNldEZ1bGxZZWFyKHBhcnNlRmxvYXQodCkpfSxaOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIG5ldyBEYXRlKHQpfSxkOmZ1bmN0aW9uKGUsdCl7ZS5zZXREYXRlKHBhcnNlRmxvYXQodCkpfSxoOmZ1bmN0aW9uKGUsdCl7ZS5zZXRIb3VycyhwYXJzZUZsb2F0KHQpKX0saTpmdW5jdGlvbihlLHQpe2Uuc2V0TWludXRlcyhwYXJzZUZsb2F0KHQpKX0sajpmdW5jdGlvbihlLHQpe2Uuc2V0RGF0ZShwYXJzZUZsb2F0KHQpKX0sbDpwLG06ZnVuY3Rpb24oZSx0KXtlLnNldE1vbnRoKHBhcnNlRmxvYXQodCktMSl9LG46ZnVuY3Rpb24oZSx0KXtlLnNldE1vbnRoKHBhcnNlRmxvYXQodCktMSl9LHM6ZnVuY3Rpb24oZSx0KXtlLnNldFNlY29uZHMocGFyc2VGbG9hdCh0KSl9LHU6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gbmV3IERhdGUocGFyc2VGbG9hdCh0KSl9LHc6cCx5OmZ1bmN0aW9uKGUsdCl7ZS5zZXRGdWxsWWVhcigyZTMrcGFyc2VGbG9hdCh0KSl9fSxEPXtEOiIoXFx3KykiLEY6IihcXHcrKSIsRzoiKFxcZFxcZHxcXGQpIixIOiIoXFxkXFxkfFxcZCkiLEo6IihcXGRcXGR8XFxkKVxcdysiLEs6IiIsTToiKFxcdyspIixTOiIoXFxkXFxkfFxcZCkiLFU6IiguKykiLFc6IihcXGRcXGR8XFxkKSIsWToiKFxcZHs0fSkiLFo6IiguKykiLGQ6IihcXGRcXGR8XFxkKSIsaDoiKFxcZFxcZHxcXGQpIixpOiIoXFxkXFxkfFxcZCkiLGo6IihcXGRcXGR8XFxkKSIsbDoiKFxcdyspIixtOiIoXFxkXFxkfFxcZCkiLG46IihcXGRcXGR8XFxkKSIsczoiKFxcZFxcZHxcXGQpIix1OiIoLispIix3OiIoXFxkXFxkfFxcZCkiLHk6IihcXGR7Mn0pIn0sdz17WjpmdW5jdGlvbihlKXtyZXR1cm4gZS50b0lTT1N0cmluZygpfSxEOmZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gdC53ZWVrZGF5cy5zaG9ydGhhbmRbdy53KGUsdCxuKV19LEY6ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBoKHcubihlLHQsbiktMSwhMSx0KX0sRzpmdW5jdGlvbihlLHQsbil7cmV0dXJuIG8ody5oKGUsdCxuKSl9LEg6ZnVuY3Rpb24oZSl7cmV0dXJuIG8oZS5nZXRIb3VycygpKX0sSjpmdW5jdGlvbihlLHQpe3JldHVybiB2b2lkIDAhPT10Lm9yZGluYWw\/ZS5nZXREYXRlKCkrdC5vcmRpbmFsKGUuZ2V0RGF0ZSgpKTplLmdldERhdGUoKX0sSzpmdW5jdGlvbihlLHQpe3JldHVybiB0LmFtUE1bcihlLmdldEhvdXJzKCk+MTEpXX0sTTpmdW5jdGlvbihlLHQpe3JldHVybiBoKGUuZ2V0TW9udGgoKSwhMCx0KX0sUzpmdW5jdGlvbihlKXtyZXR1cm4gbyhlLmdldFNlY29uZHMoKSl9LFU6ZnVuY3Rpb24oZSl7cmV0dXJuIGUuZ2V0VGltZSgpLzFlM30sVzpmdW5jdGlvbihlLHQsbil7cmV0dXJuIG4uZ2V0V2VlayhlKX0sWTpmdW5jdGlvbihlKXtyZXR1cm4gbyhlLmdldEZ1bGxZZWFyKCksNCl9LGQ6ZnVuY3Rpb24oZSl7cmV0dXJuIG8oZS5nZXREYXRlKCkpfSxoOmZ1bmN0aW9uKGUpe3JldHVybiBlLmdldEhvdXJzKCklMTI\/ZS5nZXRIb3VycygpJTEyOjEyfSxpOmZ1bmN0aW9uKGUpe3JldHVybiBvKGUuZ2V0TWludXRlcygpKX0sajpmdW5jdGlvbihlKXtyZXR1cm4gZS5nZXREYXRlKCl9LGw6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdC53ZWVrZGF5cy5sb25naGFuZFtlLmdldERheSgpXX0sbTpmdW5jdGlvbihlKXtyZXR1cm4gbyhlLmdldE1vbnRoKCkrMSl9LG46ZnVuY3Rpb24oZSl7cmV0dXJuIGUuZ2V0TW9udGgoKSsxfSxzOmZ1bmN0aW9uKGUpe3JldHVybiBlLmdldFNlY29uZHMoKX0sdTpmdW5jdGlvbihlKXtyZXR1cm4gZS5nZXRUaW1lKCl9LHc6ZnVuY3Rpb24oZSl7cmV0dXJuIGUuZ2V0RGF5KCl9LHk6ZnVuY3Rpb24oZSl7cmV0dXJuIFN0cmluZyhlLmdldEZ1bGxZZWFyKCkpLnN1YnN0cmluZygyKX19LGI9ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5jb25maWcsbj12b2lkIDA9PT10P2E6dCxvPWUubDEwbixyPXZvaWQgMD09PW8\/aTpvLGw9ZS5pc01vYmlsZSxjPXZvaWQgMCE9PWwmJmw7cmV0dXJuIGZ1bmN0aW9uKGUsdCxhKXt2YXIgaT1hfHxyO3JldHVybiB2b2lkIDA9PT1uLmZvcm1hdERhdGV8fGM\/dC5zcGxpdCgiIikubWFwKChmdW5jdGlvbih0LGEsbyl7cmV0dXJuIHdbdF0mJiJcXCIhPT1vW2EtMV0\/d1t0XShlLGksbik6IlxcIiE9PXQ\/dDoiIn0pKS5qb2luKCIiKTpuLmZvcm1hdERhdGUoZSx0LGkpfX0sQz1mdW5jdGlvbihlKXt2YXIgdD1lLmNvbmZpZyxuPXZvaWQgMD09PXQ\/YTp0LG89ZS5sMTBuLHI9dm9pZCAwPT09bz9pOm87cmV0dXJuIGZ1bmN0aW9uKGUsdCxpLG8pe2lmKDA9PT1lfHxlKXt2YXIgbCxjPW98fHIsZD1lO2lmKGUgaW5zdGFuY2VvZiBEYXRlKWw9bmV3IERhdGUoZS5nZXRUaW1lKCkpO2Vsc2UgaWYoInN0cmluZyIhPXR5cGVvZiBlJiZ2b2lkIDAhPT1lLnRvRml4ZWQpbD1uZXcgRGF0ZShlKTtlbHNlIGlmKCJzdHJpbmciPT10eXBlb2YgZSl7dmFyIHM9dHx8KG58fGEpLmRhdGVGb3JtYXQsdT1TdHJpbmcoZSkudHJpbSgpO2lmKCJ0b2RheSI9PT11KWw9bmV3IERhdGUsaT0hMDtlbHNlIGlmKC9aJC8udGVzdCh1KXx8L0dNVCQvLnRlc3QodSkpbD1uZXcgRGF0ZShlKTtlbHNlIGlmKG4mJm4ucGFyc2VEYXRlKWw9bi5wYXJzZURhdGUoZSxzKTtlbHNle2w9biYmbi5ub0NhbGVuZGFyP25ldyBEYXRlKChuZXcgRGF0ZSkuc2V0SG91cnMoMCwwLDAsMCkpOm5ldyBEYXRlKChuZXcgRGF0ZSkuZ2V0RnVsbFllYXIoKSwwLDEsMCwwLDAsMCk7Zm9yKHZhciBmPXZvaWQgMCxtPVtdLGc9MCxwPTAsaD0iIjtnPHMubGVuZ3RoO2crKyl7dmFyIHc9c1tnXSxiPSJcXCI9PT13LEM9IlxcIj09PXNbZy0xXXx8YjtpZihEW3ddJiYhQyl7aCs9RFt3XTt2YXIgTT1uZXcgUmVnRXhwKGgpLmV4ZWMoZSk7TSYmKGY9ITApJiZtWyJZIiE9PXc\/InB1c2giOiJ1bnNoaWZ0Il0oe2ZuOnZbd10sdmFsOk1bKytwXX0pfWVsc2UgYnx8KGgrPSIuIik7bS5mb3JFYWNoKChmdW5jdGlvbihlKXt2YXIgdD1lLmZuLG49ZS52YWw7cmV0dXJuIGw9dChsLG4sYyl8fGx9KSl9bD1mP2w6dm9pZCAwfX1pZihsIGluc3RhbmNlb2YgRGF0ZSYmIWlzTmFOKGwuZ2V0VGltZSgpKSlyZXR1cm4hMD09PWkmJmwuc2V0SG91cnMoMCwwLDAsMCksbDtuLmVycm9ySGFuZGxlcihuZXcgRXJyb3IoIkludmFsaWQgZGF0ZSBwcm92aWRlZDogIitkKSl9fX07ZnVuY3Rpb24gTShlLHQsbil7cmV0dXJuIHZvaWQgMD09PW4mJihuPSEwKSwhMSE9PW4\/bmV3IERhdGUoZS5nZXRUaW1lKCkpLnNldEhvdXJzKDAsMCwwLDApLW5ldyBEYXRlKHQuZ2V0VGltZSgpKS5zZXRIb3VycygwLDAsMCwwKTplLmdldFRpbWUoKS10LmdldFRpbWUoKX12YXIgeT04NjRlNTtmdW5jdGlvbiB4KGUpe3ZhciB0PWUuZGVmYXVsdEhvdXIsbj1lLmRlZmF1bHRNaW51dGUsYT1lLmRlZmF1bHRTZWNvbmRzO2lmKHZvaWQgMCE9PWUubWluRGF0ZSl7dmFyIGk9ZS5taW5EYXRlLmdldEhvdXJzKCksbz1lLm1pbkRhdGUuZ2V0TWludXRlcygpLHI9ZS5taW5EYXRlLmdldFNlY29uZHMoKTt0PGkmJih0PWkpLHQ9PT1pJiZuPG8mJihuPW8pLHQ9PT1pJiZuPT09byYmYTxyJiYoYT1lLm1pbkRhdGUuZ2V0U2Vjb25kcygpKX1pZih2b2lkIDAhPT1lLm1heERhdGUpe3ZhciBsPWUubWF4RGF0ZS5nZXRIb3VycygpLGM9ZS5tYXhEYXRlLmdldE1pbnV0ZXMoKTsodD1NYXRoLm1pbih0LGwpKT09PWwmJihuPU1hdGgubWluKGMsbikpLHQ9PT1sJiZuPT09YyYmKGE9ZS5tYXhEYXRlLmdldFNlY29uZHMoKSl9cmV0dXJue2hvdXJzOnQsbWludXRlczpuLHNlY29uZHM6YX19ImZ1bmN0aW9uIiE9dHlwZW9mIE9iamVjdC5hc3NpZ24mJihPYmplY3QuYXNzaWduPWZ1bmN0aW9uKGUpe2Zvcih2YXIgdD1bXSxuPTE7bjxhcmd1bWVudHMubGVuZ3RoO24rKyl0W24tMV09YXJndW1lbnRzW25dO2lmKCFlKXRocm93IFR5cGVFcnJvcigiQ2Fubm90IGNvbnZlcnQgdW5kZWZpbmVkIG9yIG51bGwgdG8gb2JqZWN0Iik7Zm9yKHZhciBhPWZ1bmN0aW9uKHQpe3QmJk9iamVjdC5rZXlzKHQpLmZvckVhY2goKGZ1bmN0aW9uKG4pe3JldHVybiBlW25dPXRbbl19KSl9LGk9MCxvPXQ7aTxvLmxlbmd0aDtpKyspe3ZhciByPW9baV07YShyKX1yZXR1cm4gZX0pO2Z1bmN0aW9uIEUocCx2KXt2YXIgdz17Y29uZmlnOmUoZSh7fSxhKSxULmRlZmF1bHRDb25maWcpLGwxMG46aX07ZnVuY3Rpb24gRShlKXtyZXR1cm4gZS5iaW5kKHcpfWZ1bmN0aW9uIGsoKXt2YXIgZT13LmNvbmZpZzshMT09PWUud2Vla051bWJlcnMmJjE9PT1lLnNob3dNb250aHN8fCEwIT09ZS5ub0NhbGVuZGFyJiZ3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKChmdW5jdGlvbigpe2lmKHZvaWQgMCE9PXcuY2FsZW5kYXJDb250YWluZXImJih3LmNhbGVuZGFyQ29udGFpbmVyLnN0eWxlLnZpc2liaWxpdHk9ImhpZGRlbiIsdy5jYWxlbmRhckNvbnRhaW5lci5zdHlsZS5kaXNwbGF5PSJibG9jayIpLHZvaWQgMCE9PXcuZGF5c0NvbnRhaW5lcil7dmFyIHQ9KHcuZGF5cy5vZmZzZXRXaWR0aCsxKSplLnNob3dNb250aHM7dy5kYXlzQ29udGFpbmVyLnN0eWxlLndpZHRoPXQrInB4Iix3LmNhbGVuZGFyQ29udGFpbmVyLnN0eWxlLndpZHRoPXQrKHZvaWQgMCE9PXcud2Vla1dyYXBwZXI\/dy53ZWVrV3JhcHBlci5vZmZzZXRXaWR0aDowKSsicHgiLHcuY2FsZW5kYXJDb250YWluZXIuc3R5bGUucmVtb3ZlUHJvcGVydHkoInZpc2liaWxpdHkiKSx3LmNhbGVuZGFyQ29udGFpbmVyLnN0eWxlLnJlbW92ZVByb3BlcnR5KCJkaXNwbGF5Iil9fSkpfWZ1bmN0aW9uIEkoZSl7aWYoMD09PXcuc2VsZWN0ZWREYXRlcy5sZW5ndGgpe3ZhciB0PXZvaWQgMD09PXcuY29uZmlnLm1pbkRhdGV8fE0obmV3IERhdGUsdy5jb25maWcubWluRGF0ZSk+PTA\/bmV3IERhdGU6bmV3IERhdGUody5jb25maWcubWluRGF0ZS5nZXRUaW1lKCkpLG49eCh3LmNvbmZpZyk7dC5zZXRIb3VycyhuLmhvdXJzLG4ubWludXRlcyxuLnNlY29uZHMsdC5nZXRNaWxsaXNlY29uZHMoKSksdy5zZWxlY3RlZERhdGVzPVt0XSx3LmxhdGVzdFNlbGVjdGVkRGF0ZU9iaj10fXZvaWQgMCE9PWUmJiJibHVyIiE9PWUudHlwZSYmZnVuY3Rpb24oZSl7ZS5wcmV2ZW50RGVmYXVsdCgpO3ZhciB0PSJrZXlkb3duIj09PWUudHlwZSxuPWcoZSksYT1uO3ZvaWQgMCE9PXcuYW1QTSYmbj09PXcuYW1QTSYmKHcuYW1QTS50ZXh0Q29udGVudD13LmwxMG4uYW1QTVtyKHcuYW1QTS50ZXh0Q29udGVudD09PXcubDEwbi5hbVBNWzBdKV0pO3ZhciBpPXBhcnNlRmxvYXQoYS5nZXRBdHRyaWJ1dGUoIm1pbiIpKSxsPXBhcnNlRmxvYXQoYS5nZXRBdHRyaWJ1dGUoIm1heCIpKSxjPXBhcnNlRmxvYXQoYS5nZXRBdHRyaWJ1dGUoInN0ZXAiKSksZD1wYXJzZUludChhLnZhbHVlLDEwKSxzPWUuZGVsdGF8fCh0PzM4PT09ZS53aGljaD8xOi0xOjApLHU9ZCtjKnM7aWYodm9pZCAwIT09YS52YWx1ZSYmMj09PWEudmFsdWUubGVuZ3RoKXt2YXIgZj1hPT09dy5ob3VyRWxlbWVudCxtPWE9PT13Lm1pbnV0ZUVsZW1lbnQ7dTxpPyh1PWwrdStyKCFmKSsocihmKSYmcighdy5hbVBNKSksbSYmaih2b2lkIDAsLTEsdy5ob3VyRWxlbWVudCkpOnU+bCYmKHU9YT09PXcuaG91ckVsZW1lbnQ\/dS1sLXIoIXcuYW1QTSk6aSxtJiZqKHZvaWQgMCwxLHcuaG91ckVsZW1lbnQpKSx3LmFtUE0mJmYmJigxPT09Yz91K2Q9PT0yMzpNYXRoLmFicyh1LWQpPmMpJiYody5hbVBNLnRleHRDb250ZW50PXcubDEwbi5hbVBNW3Iody5hbVBNLnRleHRDb250ZW50PT09dy5sMTBuLmFtUE1bMF0pXSksYS52YWx1ZT1vKHUpfX0oZSk7dmFyIGE9dy5faW5wdXQudmFsdWU7UygpLGJlKCksdy5faW5wdXQudmFsdWUhPT1hJiZ3Ll9kZWJvdW5jZWRDaGFuZ2UoKX1mdW5jdGlvbiBTKCl7aWYodm9pZCAwIT09dy5ob3VyRWxlbWVudCYmdm9pZCAwIT09dy5taW51dGVFbGVtZW50KXt2YXIgZSx0LG49KHBhcnNlSW50KHcuaG91ckVsZW1lbnQudmFsdWUuc2xpY2UoLTIpLDEwKXx8MCklMjQsYT0ocGFyc2VJbnQody5taW51dGVFbGVtZW50LnZhbHVlLDEwKXx8MCklNjAsaT12b2lkIDAhPT13LnNlY29uZEVsZW1lbnQ\/KHBhcnNlSW50KHcuc2Vjb25kRWxlbWVudC52YWx1ZSwxMCl8fDApJTYwOjA7dm9pZCAwIT09dy5hbVBNJiYoZT1uLHQ9dy5hbVBNLnRleHRDb250ZW50LG49ZSUxMisxMipyKHQ9PT13LmwxMG4uYW1QTVsxXSkpO3ZhciBvPXZvaWQgMCE9PXcuY29uZmlnLm1pblRpbWV8fHcuY29uZmlnLm1pbkRhdGUmJncubWluRGF0ZUhhc1RpbWUmJncubGF0ZXN0U2VsZWN0ZWREYXRlT2JqJiYwPT09TSh3LmxhdGVzdFNlbGVjdGVkRGF0ZU9iaix3LmNvbmZpZy5taW5EYXRlLCEwKTtpZih2b2lkIDAhPT13LmNvbmZpZy5tYXhUaW1lfHx3LmNvbmZpZy5tYXhEYXRlJiZ3Lm1heERhdGVIYXNUaW1lJiZ3LmxhdGVzdFNlbGVjdGVkRGF0ZU9iaiYmMD09PU0ody5sYXRlc3RTZWxlY3RlZERhdGVPYmosdy5jb25maWcubWF4RGF0ZSwhMCkpe3ZhciBsPXZvaWQgMCE9PXcuY29uZmlnLm1heFRpbWU\/dy5jb25maWcubWF4VGltZTp3LmNvbmZpZy5tYXhEYXRlOyhuPU1hdGgubWluKG4sbC5nZXRIb3VycygpKSk9PT1sLmdldEhvdXJzKCkmJihhPU1hdGgubWluKGEsbC5nZXRNaW51dGVzKCkpKSxhPT09bC5nZXRNaW51dGVzKCkmJihpPU1hdGgubWluKGksbC5nZXRTZWNvbmRzKCkpKX1pZihvKXt2YXIgYz12b2lkIDAhPT13LmNvbmZpZy5taW5UaW1lP3cuY29uZmlnLm1pblRpbWU6dy5jb25maWcubWluRGF0ZTsobj1NYXRoLm1heChuLGMuZ2V0SG91cnMoKSkpPT09Yy5nZXRIb3VycygpJiZhPGMuZ2V0TWludXRlcygpJiYoYT1jLmdldE1pbnV0ZXMoKSksYT09PWMuZ2V0TWludXRlcygpJiYoaT1NYXRoLm1heChpLGMuZ2V0U2Vjb25kcygpKSl9TyhuLGEsaSl9fWZ1bmN0aW9uIF8oZSl7dmFyIHQ9ZXx8dy5sYXRlc3RTZWxlY3RlZERhdGVPYmo7dCYmTyh0LmdldEhvdXJzKCksdC5nZXRNaW51dGVzKCksdC5nZXRTZWNvbmRzKCkpfWZ1bmN0aW9uIE8oZSx0LG4pe3ZvaWQgMCE9PXcubGF0ZXN0U2VsZWN0ZWREYXRlT2JqJiZ3LmxhdGVzdFNlbGVjdGVkRGF0ZU9iai5zZXRIb3VycyhlJTI0LHQsbnx8MCwwKSx3LmhvdXJFbGVtZW50JiZ3Lm1pbnV0ZUVsZW1lbnQmJiF3LmlzTW9iaWxlJiYody5ob3VyRWxlbWVudC52YWx1ZT1vKHcuY29uZmlnLnRpbWVfMjRocj9lOigxMitlKSUxMisxMipyKGUlMTI9PTApKSx3Lm1pbnV0ZUVsZW1lbnQudmFsdWU9byh0KSx2b2lkIDAhPT13LmFtUE0mJih3LmFtUE0udGV4dENvbnRlbnQ9dy5sMTBuLmFtUE1bcihlPj0xMildKSx2b2lkIDAhPT13LnNlY29uZEVsZW1lbnQmJih3LnNlY29uZEVsZW1lbnQudmFsdWU9byhuKSkpfWZ1bmN0aW9uIEYoZSl7dmFyIHQ9ZyhlKSxuPXBhcnNlSW50KHQudmFsdWUpKyhlLmRlbHRhfHwwKTsobi8xZTM+MXx8IkVudGVyIj09PWUua2V5JiYhL1teXGRdLy50ZXN0KG4udG9TdHJpbmcoKSkpJiZRKG4pfWZ1bmN0aW9uIEEoZSx0LG4sYSl7cmV0dXJuIHQgaW5zdGFuY2VvZiBBcnJheT90LmZvckVhY2goKGZ1bmN0aW9uKHQpe3JldHVybiBBKGUsdCxuLGEpfSkpOmUgaW5zdGFuY2VvZiBBcnJheT9lLmZvckVhY2goKGZ1bmN0aW9uKGUpe3JldHVybiBBKGUsdCxuLGEpfSkpOihlLmFkZEV2ZW50TGlzdGVuZXIodCxuLGEpLHZvaWQgdy5faGFuZGxlcnMucHVzaCh7cmVtb3ZlOmZ1bmN0aW9uKCl7cmV0dXJuIGUucmVtb3ZlRXZlbnRMaXN0ZW5lcih0LG4pfX0pKX1mdW5jdGlvbiBOKCl7cGUoIm9uQ2hhbmdlIil9ZnVuY3Rpb24gUChlLHQpe3ZhciBuPXZvaWQgMCE9PWU\/dy5wYXJzZURhdGUoZSk6dy5sYXRlc3RTZWxlY3RlZERhdGVPYmp8fCh3LmNvbmZpZy5taW5EYXRlJiZ3LmNvbmZpZy5taW5EYXRlPncubm93P3cuY29uZmlnLm1pbkRhdGU6dy5jb25maWcubWF4RGF0ZSYmdy5jb25maWcubWF4RGF0ZTx3Lm5vdz93LmNvbmZpZy5tYXhEYXRlOncubm93KSxhPXcuY3VycmVudFllYXIsaT13LmN1cnJlbnRNb250aDt0cnl7dm9pZCAwIT09biYmKHcuY3VycmVudFllYXI9bi5nZXRGdWxsWWVhcigpLHcuY3VycmVudE1vbnRoPW4uZ2V0TW9udGgoKSl9Y2F0Y2goZSl7ZS5tZXNzYWdlPSJJbnZhbGlkIGRhdGUgc3VwcGxpZWQ6ICIrbix3LmNvbmZpZy5lcnJvckhhbmRsZXIoZSl9dCYmdy5jdXJyZW50WWVhciE9PWEmJihwZSgib25ZZWFyQ2hhbmdlIiksSygpKSwhdHx8dy5jdXJyZW50WWVhcj09PWEmJncuY3VycmVudE1vbnRoPT09aXx8cGUoIm9uTW9udGhDaGFuZ2UiKSx3LnJlZHJhdygpfWZ1bmN0aW9uIFkoZSl7dmFyIHQ9ZyhlKTt+dC5jbGFzc05hbWUuaW5kZXhPZigiYXJyb3ciKSYmaihlLHQuY2xhc3NMaXN0LmNvbnRhaW5zKCJhcnJvd1VwIik\/MTotMSl9ZnVuY3Rpb24gaihlLHQsbil7dmFyIGE9ZSYmZyhlKSxpPW58fGEmJmEucGFyZW50Tm9kZSYmYS5wYXJlbnROb2RlLmZpcnN0Q2hpbGQsbz1oZSgiaW5jcmVtZW50Iik7by5kZWx0YT10LGkmJmkuZGlzcGF0Y2hFdmVudChvKX1mdW5jdGlvbiBIKGUsdCxuLGEpe3ZhciBpPVgodCwhMCksbz1zKCJzcGFuIiwiZmxhdHBpY2tyLWRheSAiK2UsdC5nZXREYXRlKCkudG9TdHJpbmcoKSk7cmV0dXJuIG8uZGF0ZU9iaj10LG8uJGk9YSxvLnNldEF0dHJpYnV0ZSgiYXJpYS1sYWJlbCIsdy5mb3JtYXREYXRlKHQsdy5jb25maWcuYXJpYURhdGVGb3JtYXQpKSwtMT09PWUuaW5kZXhPZigiaGlkZGVuIikmJjA9PT1NKHQsdy5ub3cpJiYody50b2RheURhdGVFbGVtPW8sby5jbGFzc0xpc3QuYWRkKCJ0b2RheSIpLG8uc2V0QXR0cmlidXRlKCJhcmlhLWN1cnJlbnQiLCJkYXRlIikpLGk\/KG8udGFiSW5kZXg9LTEsdmUodCkmJihvLmNsYXNzTGlzdC5hZGQoInNlbGVjdGVkIiksdy5zZWxlY3RlZERhdGVFbGVtPW8sInJhbmdlIj09PXcuY29uZmlnLm1vZGUmJihkKG8sInN0YXJ0UmFuZ2UiLHcuc2VsZWN0ZWREYXRlc1swXSYmMD09PU0odCx3LnNlbGVjdGVkRGF0ZXNbMF0sITApKSxkKG8sImVuZFJhbmdlIix3LnNlbGVjdGVkRGF0ZXNbMV0mJjA9PT1NKHQsdy5zZWxlY3RlZERhdGVzWzFdLCEwKSksIm5leHRNb250aERheSI9PT1lJiZvLmNsYXNzTGlzdC5hZGQoImluUmFuZ2UiKSkpKTpvLmNsYXNzTGlzdC5hZGQoImZsYXRwaWNrci1kaXNhYmxlZCIpLCJyYW5nZSI9PT13LmNvbmZpZy5tb2RlJiZmdW5jdGlvbihlKXtyZXR1cm4hKCJyYW5nZSIhPT13LmNvbmZpZy5tb2RlfHx3LnNlbGVjdGVkRGF0ZXMubGVuZ3RoPDIpJiYoTShlLHcuc2VsZWN0ZWREYXRlc1swXSk+PTAmJk0oZSx3LnNlbGVjdGVkRGF0ZXNbMV0pPD0wKX0odCkmJiF2ZSh0KSYmby5jbGFzc0xpc3QuYWRkKCJpblJhbmdlIiksdy53ZWVrTnVtYmVycyYmMT09PXcuY29uZmlnLnNob3dNb250aHMmJiJwcmV2TW9udGhEYXkiIT09ZSYmbiU3PT0xJiZ3LndlZWtOdW1iZXJzLmluc2VydEFkamFjZW50SFRNTCgiYmVmb3JlZW5kIiwiPHNwYW4gY2xhc3M9J2ZsYXRwaWNrci1kYXknPiIrdy5jb25maWcuZ2V0V2Vlayh0KSsiPC9zcGFuPiIpLHBlKCJvbkRheUNyZWF0ZSIsbyksb31mdW5jdGlvbiBMKGUpe2UuZm9jdXMoKSwicmFuZ2UiPT09dy5jb25maWcubW9kZSYmYWUoZSl9ZnVuY3Rpb24gVyhlKXtmb3IodmFyIHQ9ZT4wPzA6dy5jb25maWcuc2hvd01vbnRocy0xLG49ZT4wP3cuY29uZmlnLnNob3dNb250aHM6LTEsYT10O2EhPW47YSs9ZSlmb3IodmFyIGk9dy5kYXlzQ29udGFpbmVyLmNoaWxkcmVuW2FdLG89ZT4wPzA6aS5jaGlsZHJlbi5sZW5ndGgtMSxyPWU+MD9pLmNoaWxkcmVuLmxlbmd0aDotMSxsPW87bCE9cjtsKz1lKXt2YXIgYz1pLmNoaWxkcmVuW2xdO2lmKC0xPT09Yy5jbGFzc05hbWUuaW5kZXhPZigiaGlkZGVuIikmJlgoYy5kYXRlT2JqKSlyZXR1cm4gY319ZnVuY3Rpb24gUihlLHQpe3ZhciBuPWVlKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnR8fGRvY3VtZW50LmJvZHkpLGE9dm9pZCAwIT09ZT9lOm4\/ZG9jdW1lbnQuYWN0aXZlRWxlbWVudDp2b2lkIDAhPT13LnNlbGVjdGVkRGF0ZUVsZW0mJmVlKHcuc2VsZWN0ZWREYXRlRWxlbSk\/dy5zZWxlY3RlZERhdGVFbGVtOnZvaWQgMCE9PXcudG9kYXlEYXRlRWxlbSYmZWUody50b2RheURhdGVFbGVtKT93LnRvZGF5RGF0ZUVsZW06Vyh0PjA\/MTotMSk7dm9pZCAwPT09YT93Ll9pbnB1dC5mb2N1cygpOm4\/ZnVuY3Rpb24oZSx0KXtmb3IodmFyIG49LTE9PT1lLmNsYXNzTmFtZS5pbmRleE9mKCJNb250aCIpP2UuZGF0ZU9iai5nZXRNb250aCgpOncuY3VycmVudE1vbnRoLGE9dD4wP3cuY29uZmlnLnNob3dNb250aHM6LTEsaT10PjA\/MTotMSxvPW4tdy5jdXJyZW50TW9udGg7byE9YTtvKz1pKWZvcih2YXIgcj13LmRheXNDb250YWluZXIuY2hpbGRyZW5bb10sbD1uLXcuY3VycmVudE1vbnRoPT09bz9lLiRpK3Q6dDwwP3IuY2hpbGRyZW4ubGVuZ3RoLTE6MCxjPXIuY2hpbGRyZW4ubGVuZ3RoLGQ9bDtkPj0wJiZkPGMmJmQhPSh0PjA\/YzotMSk7ZCs9aSl7dmFyIHM9ci5jaGlsZHJlbltkXTtpZigtMT09PXMuY2xhc3NOYW1lLmluZGV4T2YoImhpZGRlbiIpJiZYKHMuZGF0ZU9iaikmJk1hdGguYWJzKGUuJGktZCk+PU1hdGguYWJzKHQpKXJldHVybiBMKHMpfXcuY2hhbmdlTW9udGgoaSksUihXKGkpLDApfShhLHQpOkwoYSl9ZnVuY3Rpb24gQihlLHQpe2Zvcih2YXIgbj0obmV3IERhdGUoZSx0LDEpLmdldERheSgpLXcubDEwbi5maXJzdERheU9mV2Vlays3KSU3LGE9dy51dGlscy5nZXREYXlzSW5Nb250aCgodC0xKzEyKSUxMixlKSxpPXcudXRpbHMuZ2V0RGF5c0luTW9udGgodCxlKSxvPXdpbmRvdy5kb2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCkscj13LmNvbmZpZy5zaG93TW9udGhzPjEsbD1yPyJwcmV2TW9udGhEYXkgaGlkZGVuIjoicHJldk1vbnRoRGF5IixjPXI\/Im5leHRNb250aERheSBoaWRkZW4iOiJuZXh0TW9udGhEYXkiLGQ9YSsxLW4sdT0wO2Q8PWE7ZCsrLHUrKylvLmFwcGVuZENoaWxkKEgobCxuZXcgRGF0ZShlLHQtMSxkKSxkLHUpKTtmb3IoZD0xO2Q8PWk7ZCsrLHUrKylvLmFwcGVuZENoaWxkKEgoIiIsbmV3IERhdGUoZSx0LGQpLGQsdSkpO2Zvcih2YXIgZj1pKzE7Zjw9NDItbiYmKDE9PT13LmNvbmZpZy5zaG93TW9udGhzfHx1JTchPTApO2YrKyx1Kyspby5hcHBlbmRDaGlsZChIKGMsbmV3IERhdGUoZSx0KzEsZiVpKSxmLHUpKTt2YXIgbT1zKCJkaXYiLCJkYXlDb250YWluZXIiKTtyZXR1cm4gbS5hcHBlbmRDaGlsZChvKSxtfWZ1bmN0aW9uIEooKXtpZih2b2lkIDAhPT13LmRheXNDb250YWluZXIpe3Uody5kYXlzQ29udGFpbmVyKSx3LndlZWtOdW1iZXJzJiZ1KHcud2Vla051bWJlcnMpO2Zvcih2YXIgZT1kb2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCksdD0wO3Q8dy5jb25maWcuc2hvd01vbnRoczt0Kyspe3ZhciBuPW5ldyBEYXRlKHcuY3VycmVudFllYXIsdy5jdXJyZW50TW9udGgsMSk7bi5zZXRNb250aCh3LmN1cnJlbnRNb250aCt0KSxlLmFwcGVuZENoaWxkKEIobi5nZXRGdWxsWWVhcigpLG4uZ2V0TW9udGgoKSkpfXcuZGF5c0NvbnRhaW5lci5hcHBlbmRDaGlsZChlKSx3LmRheXM9dy5kYXlzQ29udGFpbmVyLmZpcnN0Q2hpbGQsInJhbmdlIj09PXcuY29uZmlnLm1vZGUmJjE9PT13LnNlbGVjdGVkRGF0ZXMubGVuZ3RoJiZhZSgpfX1mdW5jdGlvbiBLKCl7aWYoISh3LmNvbmZpZy5zaG93TW9udGhzPjF8fCJkcm9wZG93biIhPT13LmNvbmZpZy5tb250aFNlbGVjdG9yVHlwZSkpe3ZhciBlPWZ1bmN0aW9uKGUpe3JldHVybiEodm9pZCAwIT09dy5jb25maWcubWluRGF0ZSYmdy5jdXJyZW50WWVhcj09PXcuY29uZmlnLm1pbkRhdGUuZ2V0RnVsbFllYXIoKSYmZTx3LmNvbmZpZy5taW5EYXRlLmdldE1vbnRoKCkpJiYhKHZvaWQgMCE9PXcuY29uZmlnLm1heERhdGUmJncuY3VycmVudFllYXI9PT13LmNvbmZpZy5tYXhEYXRlLmdldEZ1bGxZZWFyKCkmJmU+dy5jb25maWcubWF4RGF0ZS5nZXRNb250aCgpKX07dy5tb250aHNEcm9wZG93bkNvbnRhaW5lci50YWJJbmRleD0tMSx3Lm1vbnRoc0Ryb3Bkb3duQ29udGFpbmVyLmlubmVySFRNTD0iIjtmb3IodmFyIHQ9MDt0PDEyO3QrKylpZihlKHQpKXt2YXIgbj1zKCJvcHRpb24iLCJmbGF0cGlja3ItbW9udGhEcm9wZG93bi1tb250aCIpO24udmFsdWU9bmV3IERhdGUody5jdXJyZW50WWVhcix0KS5nZXRNb250aCgpLnRvU3RyaW5nKCksbi50ZXh0Q29udGVudD1oKHQsdy5jb25maWcuc2hvcnRoYW5kQ3VycmVudE1vbnRoLHcubDEwbiksbi50YWJJbmRleD0tMSx3LmN1cnJlbnRNb250aD09PXQmJihuLnNlbGVjdGVkPSEwKSx3Lm1vbnRoc0Ryb3Bkb3duQ29udGFpbmVyLmFwcGVuZENoaWxkKG4pfX19ZnVuY3Rpb24gVSgpe3ZhciBlLHQ9cygiZGl2IiwiZmxhdHBpY2tyLW1vbnRoIiksbj13aW5kb3cuZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpO3cuY29uZmlnLnNob3dNb250aHM+MXx8InN0YXRpYyI9PT13LmNvbmZpZy5tb250aFNlbGVjdG9yVHlwZT9lPXMoInNwYW4iLCJjdXItbW9udGgiKToody5tb250aHNEcm9wZG93bkNvbnRhaW5lcj1zKCJzZWxlY3QiLCJmbGF0cGlja3ItbW9udGhEcm9wZG93bi1tb250aHMiKSx3Lm1vbnRoc0Ryb3Bkb3duQ29udGFpbmVyLnNldEF0dHJpYnV0ZSgiYXJpYS1sYWJlbCIsdy5sMTBuLm1vbnRoQXJpYUxhYmVsKSxBKHcubW9udGhzRHJvcGRvd25Db250YWluZXIsImNoYW5nZSIsKGZ1bmN0aW9uKGUpe3ZhciB0PWcoZSksbj1wYXJzZUludCh0LnZhbHVlLDEwKTt3LmNoYW5nZU1vbnRoKG4tdy5jdXJyZW50TW9udGgpLHBlKCJvbk1vbnRoQ2hhbmdlIil9KSksSygpLGU9dy5tb250aHNEcm9wZG93bkNvbnRhaW5lcik7dmFyIGE9bSgiY3VyLXllYXIiLHt0YWJpbmRleDoiLTEifSksaT1hLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJpbnB1dCIpWzBdO2kuc2V0QXR0cmlidXRlKCJhcmlhLWxhYmVsIix3LmwxMG4ueWVhckFyaWFMYWJlbCksdy5jb25maWcubWluRGF0ZSYmaS5zZXRBdHRyaWJ1dGUoIm1pbiIsdy5jb25maWcubWluRGF0ZS5nZXRGdWxsWWVhcigpLnRvU3RyaW5nKCkpLHcuY29uZmlnLm1heERhdGUmJihpLnNldEF0dHJpYnV0ZSgibWF4Iix3LmNvbmZpZy5tYXhEYXRlLmdldEZ1bGxZZWFyKCkudG9TdHJpbmcoKSksaS5kaXNhYmxlZD0hIXcuY29uZmlnLm1pbkRhdGUmJncuY29uZmlnLm1pbkRhdGUuZ2V0RnVsbFllYXIoKT09PXcuY29uZmlnLm1heERhdGUuZ2V0RnVsbFllYXIoKSk7dmFyIG89cygiZGl2IiwiZmxhdHBpY2tyLWN1cnJlbnQtbW9udGgiKTtyZXR1cm4gby5hcHBlbmRDaGlsZChlKSxvLmFwcGVuZENoaWxkKGEpLG4uYXBwZW5kQ2hpbGQobyksdC5hcHBlbmRDaGlsZChuKSx7Y29udGFpbmVyOnQseWVhckVsZW1lbnQ6aSxtb250aEVsZW1lbnQ6ZX19ZnVuY3Rpb24gcSgpe3Uody5tb250aE5hdiksdy5tb250aE5hdi5hcHBlbmRDaGlsZCh3LnByZXZNb250aE5hdiksdy5jb25maWcuc2hvd01vbnRocyYmKHcueWVhckVsZW1lbnRzPVtdLHcubW9udGhFbGVtZW50cz1bXSk7Zm9yKHZhciBlPXcuY29uZmlnLnNob3dNb250aHM7ZS0tOyl7dmFyIHQ9VSgpO3cueWVhckVsZW1lbnRzLnB1c2godC55ZWFyRWxlbWVudCksdy5tb250aEVsZW1lbnRzLnB1c2godC5tb250aEVsZW1lbnQpLHcubW9udGhOYXYuYXBwZW5kQ2hpbGQodC5jb250YWluZXIpfXcubW9udGhOYXYuYXBwZW5kQ2hpbGQody5uZXh0TW9udGhOYXYpfWZ1bmN0aW9uICQoKXt3LndlZWtkYXlDb250YWluZXI\/dSh3LndlZWtkYXlDb250YWluZXIpOncud2Vla2RheUNvbnRhaW5lcj1zKCJkaXYiLCJmbGF0cGlja3Itd2Vla2RheXMiKTtmb3IodmFyIGU9dy5jb25maWcuc2hvd01vbnRocztlLS07KXt2YXIgdD1zKCJkaXYiLCJmbGF0cGlja3Itd2Vla2RheWNvbnRhaW5lciIpO3cud2Vla2RheUNvbnRhaW5lci5hcHBlbmRDaGlsZCh0KX1yZXR1cm4geigpLHcud2Vla2RheUNvbnRhaW5lcn1mdW5jdGlvbiB6KCl7aWYody53ZWVrZGF5Q29udGFpbmVyKXt2YXIgZT13LmwxMG4uZmlyc3REYXlPZldlZWssbj10KHcubDEwbi53ZWVrZGF5cy5zaG9ydGhhbmQpO2U+MCYmZTxuLmxlbmd0aCYmKG49dChuLnNwbGljZShlLG4ubGVuZ3RoKSxuLnNwbGljZSgwLGUpKSk7Zm9yKHZhciBhPXcuY29uZmlnLnNob3dNb250aHM7YS0tOyl3LndlZWtkYXlDb250YWluZXIuY2hpbGRyZW5bYV0uaW5uZXJIVE1MPSJcbiAgICAgIDxzcGFuIGNsYXNzPSdmbGF0cGlja3Itd2Vla2RheSc+XG4gICAgICAgICIrbi5qb2luKCI8L3NwYW4+PHNwYW4gY2xhc3M9J2ZsYXRwaWNrci13ZWVrZGF5Jz4iKSsiXG4gICAgICA8L3NwYW4+XG4gICAgICAifX1mdW5jdGlvbiBHKGUsdCl7dm9pZCAwPT09dCYmKHQ9ITApO3ZhciBuPXQ\/ZTplLXcuY3VycmVudE1vbnRoO248MCYmITA9PT13Ll9oaWRlUHJldk1vbnRoQXJyb3d8fG4+MCYmITA9PT13Ll9oaWRlTmV4dE1vbnRoQXJyb3d8fCh3LmN1cnJlbnRNb250aCs9biwody5jdXJyZW50TW9udGg8MHx8dy5jdXJyZW50TW9udGg+MTEpJiYody5jdXJyZW50WWVhcis9dy5jdXJyZW50TW9udGg+MTE\/MTotMSx3LmN1cnJlbnRNb250aD0ody5jdXJyZW50TW9udGgrMTIpJTEyLHBlKCJvblllYXJDaGFuZ2UiKSxLKCkpLEooKSxwZSgib25Nb250aENoYW5nZSIpLERlKCkpfWZ1bmN0aW9uIFYoZSl7cmV0dXJuISghdy5jb25maWcuYXBwZW5kVG98fCF3LmNvbmZpZy5hcHBlbmRUby5jb250YWlucyhlKSl8fHcuY2FsZW5kYXJDb250YWluZXIuY29udGFpbnMoZSl9ZnVuY3Rpb24gWihlKXtpZih3LmlzT3BlbiYmIXcuY29uZmlnLmlubGluZSl7dmFyIHQ9ZyhlKSxuPVYodCksYT10PT09dy5pbnB1dHx8dD09PXcuYWx0SW5wdXR8fHcuZWxlbWVudC5jb250YWlucyh0KXx8ZS5wYXRoJiZlLnBhdGguaW5kZXhPZiYmKH5lLnBhdGguaW5kZXhPZih3LmlucHV0KXx8fmUucGF0aC5pbmRleE9mKHcuYWx0SW5wdXQpKSxpPSJibHVyIj09PWUudHlwZT9hJiZlLnJlbGF0ZWRUYXJnZXQmJiFWKGUucmVsYXRlZFRhcmdldCk6IWEmJiFuJiYhVihlLnJlbGF0ZWRUYXJnZXQpLG89IXcuY29uZmlnLmlnbm9yZWRGb2N1c0VsZW1lbnRzLnNvbWUoKGZ1bmN0aW9uKGUpe3JldHVybiBlLmNvbnRhaW5zKHQpfSkpO2kmJm8mJih2b2lkIDAhPT13LnRpbWVDb250YWluZXImJnZvaWQgMCE9PXcubWludXRlRWxlbWVudCYmdm9pZCAwIT09dy5ob3VyRWxlbWVudCYmIiIhPT13LmlucHV0LnZhbHVlJiZ2b2lkIDAhPT13LmlucHV0LnZhbHVlJiZJKCksdy5jbG9zZSgpLHcuY29uZmlnJiYicmFuZ2UiPT09dy5jb25maWcubW9kZSYmMT09PXcuc2VsZWN0ZWREYXRlcy5sZW5ndGgmJih3LmNsZWFyKCExKSx3LnJlZHJhdygpKSl9fWZ1bmN0aW9uIFEoZSl7aWYoISghZXx8dy5jb25maWcubWluRGF0ZSYmZTx3LmNvbmZpZy5taW5EYXRlLmdldEZ1bGxZZWFyKCl8fHcuY29uZmlnLm1heERhdGUmJmU+dy5jb25maWcubWF4RGF0ZS5nZXRGdWxsWWVhcigpKSl7dmFyIHQ9ZSxuPXcuY3VycmVudFllYXIhPT10O3cuY3VycmVudFllYXI9dHx8dy5jdXJyZW50WWVhcix3LmNvbmZpZy5tYXhEYXRlJiZ3LmN1cnJlbnRZZWFyPT09dy5jb25maWcubWF4RGF0ZS5nZXRGdWxsWWVhcigpP3cuY3VycmVudE1vbnRoPU1hdGgubWluKHcuY29uZmlnLm1heERhdGUuZ2V0TW9udGgoKSx3LmN1cnJlbnRNb250aCk6dy5jb25maWcubWluRGF0ZSYmdy5jdXJyZW50WWVhcj09PXcuY29uZmlnLm1pbkRhdGUuZ2V0RnVsbFllYXIoKSYmKHcuY3VycmVudE1vbnRoPU1hdGgubWF4KHcuY29uZmlnLm1pbkRhdGUuZ2V0TW9udGgoKSx3LmN1cnJlbnRNb250aCkpLG4mJih3LnJlZHJhdygpLHBlKCJvblllYXJDaGFuZ2UiKSxLKCkpfX1mdW5jdGlvbiBYKGUsdCl7dmFyIG47dm9pZCAwPT09dCYmKHQ9ITApO3ZhciBhPXcucGFyc2VEYXRlKGUsdm9pZCAwLHQpO2lmKHcuY29uZmlnLm1pbkRhdGUmJmEmJk0oYSx3LmNvbmZpZy5taW5EYXRlLHZvaWQgMCE9PXQ\/dDohdy5taW5EYXRlSGFzVGltZSk8MHx8dy5jb25maWcubWF4RGF0ZSYmYSYmTShhLHcuY29uZmlnLm1heERhdGUsdm9pZCAwIT09dD90OiF3Lm1heERhdGVIYXNUaW1lKT4wKXJldHVybiExO2lmKCF3LmNvbmZpZy5lbmFibGUmJjA9PT13LmNvbmZpZy5kaXNhYmxlLmxlbmd0aClyZXR1cm4hMDtpZih2b2lkIDA9PT1hKXJldHVybiExO2Zvcih2YXIgaT0hIXcuY29uZmlnLmVuYWJsZSxvPW51bGwhPT0obj13LmNvbmZpZy5lbmFibGUpJiZ2b2lkIDAhPT1uP246dy5jb25maWcuZGlzYWJsZSxyPTAsbD12b2lkIDA7cjxvLmxlbmd0aDtyKyspe2lmKCJmdW5jdGlvbiI9PXR5cGVvZihsPW9bcl0pJiZsKGEpKXJldHVybiBpO2lmKGwgaW5zdGFuY2VvZiBEYXRlJiZ2b2lkIDAhPT1hJiZsLmdldFRpbWUoKT09PWEuZ2V0VGltZSgpKXJldHVybiBpO2lmKCJzdHJpbmciPT10eXBlb2YgbCl7dmFyIGM9dy5wYXJzZURhdGUobCx2b2lkIDAsITApO3JldHVybiBjJiZjLmdldFRpbWUoKT09PWEuZ2V0VGltZSgpP2k6IWl9aWYoIm9iamVjdCI9PXR5cGVvZiBsJiZ2b2lkIDAhPT1hJiZsLmZyb20mJmwudG8mJmEuZ2V0VGltZSgpPj1sLmZyb20uZ2V0VGltZSgpJiZhLmdldFRpbWUoKTw9bC50by5nZXRUaW1lKCkpcmV0dXJuIGl9cmV0dXJuIWl9ZnVuY3Rpb24gZWUoZSl7cmV0dXJuIHZvaWQgMCE9PXcuZGF5c0NvbnRhaW5lciYmKC0xPT09ZS5jbGFzc05hbWUuaW5kZXhPZigiaGlkZGVuIikmJi0xPT09ZS5jbGFzc05hbWUuaW5kZXhPZigiZmxhdHBpY2tyLWRpc2FibGVkIikmJncuZGF5c0NvbnRhaW5lci5jb250YWlucyhlKSl9ZnVuY3Rpb24gdGUoZSl7IShlLnRhcmdldD09PXcuX2lucHV0KXx8ISh3LnNlbGVjdGVkRGF0ZXMubGVuZ3RoPjB8fHcuX2lucHV0LnZhbHVlLmxlbmd0aD4wKXx8ZS5yZWxhdGVkVGFyZ2V0JiZWKGUucmVsYXRlZFRhcmdldCl8fHcuc2V0RGF0ZSh3Ll9pbnB1dC52YWx1ZSwhMCxlLnRhcmdldD09PXcuYWx0SW5wdXQ\/dy5jb25maWcuYWx0Rm9ybWF0OncuY29uZmlnLmRhdGVGb3JtYXQpfWZ1bmN0aW9uIG5lKGUpe3ZhciB0PWcoZSksbj13LmNvbmZpZy53cmFwP3AuY29udGFpbnModCk6dD09PXcuX2lucHV0LGE9dy5jb25maWcuYWxsb3dJbnB1dCxpPXcuaXNPcGVuJiYoIWF8fCFuKSxvPXcuY29uZmlnLmlubGluZSYmbiYmIWE7aWYoMTM9PT1lLmtleUNvZGUmJm4pe2lmKGEpcmV0dXJuIHcuc2V0RGF0ZSh3Ll9pbnB1dC52YWx1ZSwhMCx0PT09dy5hbHRJbnB1dD93LmNvbmZpZy5hbHRGb3JtYXQ6dy5jb25maWcuZGF0ZUZvcm1hdCksdC5ibHVyKCk7dy5vcGVuKCl9ZWxzZSBpZihWKHQpfHxpfHxvKXt2YXIgcj0hIXcudGltZUNvbnRhaW5lciYmdy50aW1lQ29udGFpbmVyLmNvbnRhaW5zKHQpO3N3aXRjaChlLmtleUNvZGUpe2Nhc2UgMTM6cj8oZS5wcmV2ZW50RGVmYXVsdCgpLEkoKSxzZSgpKTp1ZShlKTticmVhaztjYXNlIDI3OmUucHJldmVudERlZmF1bHQoKSxzZSgpO2JyZWFrO2Nhc2UgODpjYXNlIDQ2Om4mJiF3LmNvbmZpZy5hbGxvd0lucHV0JiYoZS5wcmV2ZW50RGVmYXVsdCgpLHcuY2xlYXIoKSk7YnJlYWs7Y2FzZSAzNzpjYXNlIDM5OmlmKHJ8fG4pdy5ob3VyRWxlbWVudCYmdy5ob3VyRWxlbWVudC5mb2N1cygpO2Vsc2UgaWYoZS5wcmV2ZW50RGVmYXVsdCgpLHZvaWQgMCE9PXcuZGF5c0NvbnRhaW5lciYmKCExPT09YXx8ZG9jdW1lbnQuYWN0aXZlRWxlbWVudCYmZWUoZG9jdW1lbnQuYWN0aXZlRWxlbWVudCkpKXt2YXIgbD0zOT09PWUua2V5Q29kZT8xOi0xO2UuY3RybEtleT8oZS5zdG9wUHJvcGFnYXRpb24oKSxHKGwpLFIoVygxKSwwKSk6Uih2b2lkIDAsbCl9YnJlYWs7Y2FzZSAzODpjYXNlIDQwOmUucHJldmVudERlZmF1bHQoKTt2YXIgYz00MD09PWUua2V5Q29kZT8xOi0xO3cuZGF5c0NvbnRhaW5lciYmdm9pZCAwIT09dC4kaXx8dD09PXcuaW5wdXR8fHQ9PT13LmFsdElucHV0P2UuY3RybEtleT8oZS5zdG9wUHJvcGFnYXRpb24oKSxRKHcuY3VycmVudFllYXItYyksUihXKDEpLDApKTpyfHxSKHZvaWQgMCw3KmMpOnQ9PT13LmN1cnJlbnRZZWFyRWxlbWVudD9RKHcuY3VycmVudFllYXItYyk6dy5jb25maWcuZW5hYmxlVGltZSYmKCFyJiZ3LmhvdXJFbGVtZW50JiZ3LmhvdXJFbGVtZW50LmZvY3VzKCksSShlKSx3Ll9kZWJvdW5jZWRDaGFuZ2UoKSk7YnJlYWs7Y2FzZSA5OmlmKHIpe3ZhciBkPVt3LmhvdXJFbGVtZW50LHcubWludXRlRWxlbWVudCx3LnNlY29uZEVsZW1lbnQsdy5hbVBNXS5jb25jYXQody5wbHVnaW5FbGVtZW50cykuZmlsdGVyKChmdW5jdGlvbihlKXtyZXR1cm4gZX0pKSxzPWQuaW5kZXhPZih0KTtpZigtMSE9PXMpe3ZhciB1PWRbcysoZS5zaGlmdEtleT8tMToxKV07ZS5wcmV2ZW50RGVmYXVsdCgpLCh1fHx3Ll9pbnB1dCkuZm9jdXMoKX19ZWxzZSF3LmNvbmZpZy5ub0NhbGVuZGFyJiZ3LmRheXNDb250YWluZXImJncuZGF5c0NvbnRhaW5lci5jb250YWlucyh0KSYmZS5zaGlmdEtleSYmKGUucHJldmVudERlZmF1bHQoKSx3Ll9pbnB1dC5mb2N1cygpKX19aWYodm9pZCAwIT09dy5hbVBNJiZ0PT09dy5hbVBNKXN3aXRjaChlLmtleSl7Y2FzZSB3LmwxMG4uYW1QTVswXS5jaGFyQXQoMCk6Y2FzZSB3LmwxMG4uYW1QTVswXS5jaGFyQXQoMCkudG9Mb3dlckNhc2UoKTp3LmFtUE0udGV4dENvbnRlbnQ9dy5sMTBuLmFtUE1bMF0sUygpLGJlKCk7YnJlYWs7Y2FzZSB3LmwxMG4uYW1QTVsxXS5jaGFyQXQoMCk6Y2FzZSB3LmwxMG4uYW1QTVsxXS5jaGFyQXQoMCkudG9Mb3dlckNhc2UoKTp3LmFtUE0udGV4dENvbnRlbnQ9dy5sMTBuLmFtUE1bMV0sUygpLGJlKCl9KG58fFYodCkpJiZwZSgib25LZXlEb3duIixlKX1mdW5jdGlvbiBhZShlKXtpZigxPT09dy5zZWxlY3RlZERhdGVzLmxlbmd0aCYmKCFlfHxlLmNsYXNzTGlzdC5jb250YWlucygiZmxhdHBpY2tyLWRheSIpJiYhZS5jbGFzc0xpc3QuY29udGFpbnMoImZsYXRwaWNrci1kaXNhYmxlZCIpKSl7Zm9yKHZhciB0PWU\/ZS5kYXRlT2JqLmdldFRpbWUoKTp3LmRheXMuZmlyc3RFbGVtZW50Q2hpbGQuZGF0ZU9iai5nZXRUaW1lKCksbj13LnBhcnNlRGF0ZSh3LnNlbGVjdGVkRGF0ZXNbMF0sdm9pZCAwLCEwKS5nZXRUaW1lKCksYT1NYXRoLm1pbih0LHcuc2VsZWN0ZWREYXRlc1swXS5nZXRUaW1lKCkpLGk9TWF0aC5tYXgodCx3LnNlbGVjdGVkRGF0ZXNbMF0uZ2V0VGltZSgpKSxvPSExLHI9MCxsPTAsYz1hO2M8aTtjKz15KVgobmV3IERhdGUoYyksITApfHwobz1vfHxjPmEmJmM8aSxjPG4mJighcnx8Yz5yKT9yPWM6Yz5uJiYoIWx8fGM8bCkmJihsPWMpKTtmb3IodmFyIGQ9MDtkPHcuY29uZmlnLnNob3dNb250aHM7ZCsrKWZvcih2YXIgcz13LmRheXNDb250YWluZXIuY2hpbGRyZW5bZF0sdT1mdW5jdGlvbihhLGkpe3ZhciBjLGQsdSxmPXMuY2hpbGRyZW5bYV0sbT1mLmRhdGVPYmouZ2V0VGltZSgpLGc9cj4wJiZtPHJ8fGw+MCYmbT5sO3JldHVybiBnPyhmLmNsYXNzTGlzdC5hZGQoIm5vdEFsbG93ZWQiKSxbImluUmFuZ2UiLCJzdGFydFJhbmdlIiwiZW5kUmFuZ2UiXS5mb3JFYWNoKChmdW5jdGlvbihlKXtmLmNsYXNzTGlzdC5yZW1vdmUoZSl9KSksImNvbnRpbnVlIik6byYmIWc\/ImNvbnRpbnVlIjooWyJzdGFydFJhbmdlIiwiaW5SYW5nZSIsImVuZFJhbmdlIiwibm90QWxsb3dlZCJdLmZvckVhY2goKGZ1bmN0aW9uKGUpe2YuY2xhc3NMaXN0LnJlbW92ZShlKX0pKSx2b2lkKHZvaWQgMCE9PWUmJihlLmNsYXNzTGlzdC5hZGQodDw9dy5zZWxlY3RlZERhdGVzWzBdLmdldFRpbWUoKT8ic3RhcnRSYW5nZSI6ImVuZFJhbmdlIiksbjx0JiZtPT09bj9mLmNsYXNzTGlzdC5hZGQoInN0YXJ0UmFuZ2UiKTpuPnQmJm09PT1uJiZmLmNsYXNzTGlzdC5hZGQoImVuZFJhbmdlIiksbT49ciYmKDA9PT1sfHxtPD1sKSYmKGQ9bix1PXQsKGM9bSk+TWF0aC5taW4oZCx1KSYmYzxNYXRoLm1heChkLHUpKSYmZi5jbGFzc0xpc3QuYWRkKCJpblJhbmdlIikpKSl9LGY9MCxtPXMuY2hpbGRyZW4ubGVuZ3RoO2Y8bTtmKyspdShmKX19ZnVuY3Rpb24gaWUoKXshdy5pc09wZW58fHcuY29uZmlnLnN0YXRpY3x8dy5jb25maWcuaW5saW5lfHxjZSgpfWZ1bmN0aW9uIG9lKGUpe3JldHVybiBmdW5jdGlvbih0KXt2YXIgbj13LmNvbmZpZ1siXyIrZSsiRGF0ZSJdPXcucGFyc2VEYXRlKHQsdy5jb25maWcuZGF0ZUZvcm1hdCksYT13LmNvbmZpZ1siXyIrKCJtaW4iPT09ZT8ibWF4IjoibWluIikrIkRhdGUiXTt2b2lkIDAhPT1uJiYod1sibWluIj09PWU\/Im1pbkRhdGVIYXNUaW1lIjoibWF4RGF0ZUhhc1RpbWUiXT1uLmdldEhvdXJzKCk+MHx8bi5nZXRNaW51dGVzKCk+MHx8bi5nZXRTZWNvbmRzKCk+MCksdy5zZWxlY3RlZERhdGVzJiYody5zZWxlY3RlZERhdGVzPXcuc2VsZWN0ZWREYXRlcy5maWx0ZXIoKGZ1bmN0aW9uKGUpe3JldHVybiBYKGUpfSkpLHcuc2VsZWN0ZWREYXRlcy5sZW5ndGh8fCJtaW4iIT09ZXx8XyhuKSxiZSgpKSx3LmRheXNDb250YWluZXImJihkZSgpLHZvaWQgMCE9PW4\/dy5jdXJyZW50WWVhckVsZW1lbnRbZV09bi5nZXRGdWxsWWVhcigpLnRvU3RyaW5nKCk6dy5jdXJyZW50WWVhckVsZW1lbnQucmVtb3ZlQXR0cmlidXRlKGUpLHcuY3VycmVudFllYXJFbGVtZW50LmRpc2FibGVkPSEhYSYmdm9pZCAwIT09biYmYS5nZXRGdWxsWWVhcigpPT09bi5nZXRGdWxsWWVhcigpKX19ZnVuY3Rpb24gcmUoKXtyZXR1cm4gdy5jb25maWcud3JhcD9wLnF1ZXJ5U2VsZWN0b3IoIltkYXRhLWlucHV0XSIpOnB9ZnVuY3Rpb24gbGUoKXsib2JqZWN0IiE9dHlwZW9mIHcuY29uZmlnLmxvY2FsZSYmdm9pZCAwPT09VC5sMTBuc1t3LmNvbmZpZy5sb2NhbGVdJiZ3LmNvbmZpZy5lcnJvckhhbmRsZXIobmV3IEVycm9yKCJmbGF0cGlja3I6IGludmFsaWQgbG9jYWxlICIrdy5jb25maWcubG9jYWxlKSksdy5sMTBuPWUoZSh7fSxULmwxMG5zLmRlZmF1bHQpLCJvYmplY3QiPT10eXBlb2Ygdy5jb25maWcubG9jYWxlP3cuY29uZmlnLmxvY2FsZToiZGVmYXVsdCIhPT13LmNvbmZpZy5sb2NhbGU\/VC5sMTBuc1t3LmNvbmZpZy5sb2NhbGVdOnZvaWQgMCksRC5LPSIoIit3LmwxMG4uYW1QTVswXSsifCIrdy5sMTBuLmFtUE1bMV0rInwiK3cubDEwbi5hbVBNWzBdLnRvTG93ZXJDYXNlKCkrInwiK3cubDEwbi5hbVBNWzFdLnRvTG93ZXJDYXNlKCkrIikiLHZvaWQgMD09PWUoZSh7fSx2KSxKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHAuZGF0YXNldHx8e30pKSkudGltZV8yNGhyJiZ2b2lkIDA9PT1ULmRlZmF1bHRDb25maWcudGltZV8yNGhyJiYody5jb25maWcudGltZV8yNGhyPXcubDEwbi50aW1lXzI0aHIpLHcuZm9ybWF0RGF0ZT1iKHcpLHcucGFyc2VEYXRlPUMoe2NvbmZpZzp3LmNvbmZpZyxsMTBuOncubDEwbn0pfWZ1bmN0aW9uIGNlKGUpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiB3LmNvbmZpZy5wb3NpdGlvbil7aWYodm9pZCAwIT09dy5jYWxlbmRhckNvbnRhaW5lcil7cGUoIm9uUHJlQ2FsZW5kYXJQb3NpdGlvbiIpO3ZhciB0PWV8fHcuX3Bvc2l0aW9uRWxlbWVudCxuPUFycmF5LnByb3RvdHlwZS5yZWR1Y2UuY2FsbCh3LmNhbGVuZGFyQ29udGFpbmVyLmNoaWxkcmVuLChmdW5jdGlvbihlLHQpe3JldHVybiBlK3Qub2Zmc2V0SGVpZ2h0fSksMCksYT13LmNhbGVuZGFyQ29udGFpbmVyLm9mZnNldFdpZHRoLGk9dy5jb25maWcucG9zaXRpb24uc3BsaXQoIiAiKSxvPWlbMF0scj1pLmxlbmd0aD4xP2lbMV06bnVsbCxsPXQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksYz13aW5kb3cuaW5uZXJIZWlnaHQtbC5ib3R0b20scz0iYWJvdmUiPT09b3x8ImJlbG93IiE9PW8mJmM8biYmbC50b3A+bix1PXdpbmRvdy5wYWdlWU9mZnNldCtsLnRvcCsocz8tbi0yOnQub2Zmc2V0SGVpZ2h0KzIpO2lmKGQody5jYWxlbmRhckNvbnRhaW5lciwiYXJyb3dUb3AiLCFzKSxkKHcuY2FsZW5kYXJDb250YWluZXIsImFycm93Qm90dG9tIixzKSwhdy5jb25maWcuaW5saW5lKXt2YXIgZj13aW5kb3cucGFnZVhPZmZzZXQrbC5sZWZ0LG09ITEsZz0hMTsiY2VudGVyIj09PXI\/KGYtPShhLWwud2lkdGgpLzIsbT0hMCk6InJpZ2h0Ij09PXImJihmLT1hLWwud2lkdGgsZz0hMCksZCh3LmNhbGVuZGFyQ29udGFpbmVyLCJhcnJvd0xlZnQiLCFtJiYhZyksZCh3LmNhbGVuZGFyQ29udGFpbmVyLCJhcnJvd0NlbnRlciIsbSksZCh3LmNhbGVuZGFyQ29udGFpbmVyLCJhcnJvd1JpZ2h0IixnKTt2YXIgcD13aW5kb3cuZG9jdW1lbnQuYm9keS5vZmZzZXRXaWR0aC0od2luZG93LnBhZ2VYT2Zmc2V0K2wucmlnaHQpLGg9ZithPndpbmRvdy5kb2N1bWVudC5ib2R5Lm9mZnNldFdpZHRoLHY9cCthPndpbmRvdy5kb2N1bWVudC5ib2R5Lm9mZnNldFdpZHRoO2lmKGQody5jYWxlbmRhckNvbnRhaW5lciwicmlnaHRNb3N0IixoKSwhdy5jb25maWcuc3RhdGljKWlmKHcuY2FsZW5kYXJDb250YWluZXIuc3R5bGUudG9wPXUrInB4IixoKWlmKHYpe3ZhciBEPWZ1bmN0aW9uKCl7Zm9yKHZhciBlPW51bGwsdD0wO3Q8ZG9jdW1lbnQuc3R5bGVTaGVldHMubGVuZ3RoO3QrKyl7dmFyIG49ZG9jdW1lbnQuc3R5bGVTaGVldHNbdF07dHJ5e24uY3NzUnVsZXN9Y2F0Y2goZSl7Y29udGludWV9ZT1uO2JyZWFrfXJldHVybiBudWxsIT1lP2U6KGE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3R5bGUiKSxkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKGEpLGEuc2hlZXQpO3ZhciBhfSgpO2lmKHZvaWQgMD09PUQpcmV0dXJuO3ZhciBiPXdpbmRvdy5kb2N1bWVudC5ib2R5Lm9mZnNldFdpZHRoLEM9TWF0aC5tYXgoMCxiLzItYS8yKSxNPUQuY3NzUnVsZXMubGVuZ3RoLHk9IntsZWZ0OiIrbC5sZWZ0KyJweDtyaWdodDphdXRvO30iO2Qody5jYWxlbmRhckNvbnRhaW5lciwicmlnaHRNb3N0IiwhMSksZCh3LmNhbGVuZGFyQ29udGFpbmVyLCJjZW50ZXJNb3N0IiwhMCksRC5pbnNlcnRSdWxlKCIuZmxhdHBpY2tyLWNhbGVuZGFyLmNlbnRlck1vc3Q6YmVmb3JlLC5mbGF0cGlja3ItY2FsZW5kYXIuY2VudGVyTW9zdDphZnRlciIreSxNKSx3LmNhbGVuZGFyQ29udGFpbmVyLnN0eWxlLmxlZnQ9QysicHgiLHcuY2FsZW5kYXJDb250YWluZXIuc3R5bGUucmlnaHQ9ImF1dG8ifWVsc2Ugdy5jYWxlbmRhckNvbnRhaW5lci5zdHlsZS5sZWZ0PSJhdXRvIix3LmNhbGVuZGFyQ29udGFpbmVyLnN0eWxlLnJpZ2h0PXArInB4IjtlbHNlIHcuY2FsZW5kYXJDb250YWluZXIuc3R5bGUubGVmdD1mKyJweCIsdy5jYWxlbmRhckNvbnRhaW5lci5zdHlsZS5yaWdodD0iYXV0byJ9fX1lbHNlIHcuY29uZmlnLnBvc2l0aW9uKHcsZSl9ZnVuY3Rpb24gZGUoKXt3LmNvbmZpZy5ub0NhbGVuZGFyfHx3LmlzTW9iaWxlfHwoSygpLERlKCksSigpKX1mdW5jdGlvbiBzZSgpe3cuX2lucHV0LmZvY3VzKCksLTEhPT13aW5kb3cubmF2aWdhdG9yLnVzZXJBZ2VudC5pbmRleE9mKCJNU0lFIil8fHZvaWQgMCE9PW5hdmlnYXRvci5tc01heFRvdWNoUG9pbnRzP3NldFRpbWVvdXQody5jbG9zZSwwKTp3LmNsb3NlKCl9ZnVuY3Rpb24gdWUoZSl7ZS5wcmV2ZW50RGVmYXVsdCgpLGUuc3RvcFByb3BhZ2F0aW9uKCk7dmFyIHQ9ZihnKGUpLChmdW5jdGlvbihlKXtyZXR1cm4gZS5jbGFzc0xpc3QmJmUuY2xhc3NMaXN0LmNvbnRhaW5zKCJmbGF0cGlja3ItZGF5IikmJiFlLmNsYXNzTGlzdC5jb250YWlucygiZmxhdHBpY2tyLWRpc2FibGVkIikmJiFlLmNsYXNzTGlzdC5jb250YWlucygibm90QWxsb3dlZCIpfSkpO2lmKHZvaWQgMCE9PXQpe3ZhciBuPXQsYT13LmxhdGVzdFNlbGVjdGVkRGF0ZU9iaj1uZXcgRGF0ZShuLmRhdGVPYmouZ2V0VGltZSgpKSxpPShhLmdldE1vbnRoKCk8dy5jdXJyZW50TW9udGh8fGEuZ2V0TW9udGgoKT53LmN1cnJlbnRNb250aCt3LmNvbmZpZy5zaG93TW9udGhzLTEpJiYicmFuZ2UiIT09dy5jb25maWcubW9kZTtpZih3LnNlbGVjdGVkRGF0ZUVsZW09biwic2luZ2xlIj09PXcuY29uZmlnLm1vZGUpdy5zZWxlY3RlZERhdGVzPVthXTtlbHNlIGlmKCJtdWx0aXBsZSI9PT13LmNvbmZpZy5tb2RlKXt2YXIgbz12ZShhKTtvP3cuc2VsZWN0ZWREYXRlcy5zcGxpY2UocGFyc2VJbnQobyksMSk6dy5zZWxlY3RlZERhdGVzLnB1c2goYSl9ZWxzZSJyYW5nZSI9PT13LmNvbmZpZy5tb2RlJiYoMj09PXcuc2VsZWN0ZWREYXRlcy5sZW5ndGgmJncuY2xlYXIoITEsITEpLHcubGF0ZXN0U2VsZWN0ZWREYXRlT2JqPWEsdy5zZWxlY3RlZERhdGVzLnB1c2goYSksMCE9PU0oYSx3LnNlbGVjdGVkRGF0ZXNbMF0sITApJiZ3LnNlbGVjdGVkRGF0ZXMuc29ydCgoZnVuY3Rpb24oZSx0KXtyZXR1cm4gZS5nZXRUaW1lKCktdC5nZXRUaW1lKCl9KSkpO2lmKFMoKSxpKXt2YXIgcj13LmN1cnJlbnRZZWFyIT09YS5nZXRGdWxsWWVhcigpO3cuY3VycmVudFllYXI9YS5nZXRGdWxsWWVhcigpLHcuY3VycmVudE1vbnRoPWEuZ2V0TW9udGgoKSxyJiYocGUoIm9uWWVhckNoYW5nZSIpLEsoKSkscGUoIm9uTW9udGhDaGFuZ2UiKX1pZihEZSgpLEooKSxiZSgpLGl8fCJyYW5nZSI9PT13LmNvbmZpZy5tb2RlfHwxIT09dy5jb25maWcuc2hvd01vbnRocz92b2lkIDAhPT13LnNlbGVjdGVkRGF0ZUVsZW0mJnZvaWQgMD09PXcuaG91ckVsZW1lbnQmJncuc2VsZWN0ZWREYXRlRWxlbSYmdy5zZWxlY3RlZERhdGVFbGVtLmZvY3VzKCk6TChuKSx2b2lkIDAhPT13LmhvdXJFbGVtZW50JiZ2b2lkIDAhPT13LmhvdXJFbGVtZW50JiZ3LmhvdXJFbGVtZW50LmZvY3VzKCksdy5jb25maWcuY2xvc2VPblNlbGVjdCl7dmFyIGw9InNpbmdsZSI9PT13LmNvbmZpZy5tb2RlJiYhdy5jb25maWcuZW5hYmxlVGltZSxjPSJyYW5nZSI9PT13LmNvbmZpZy5tb2RlJiYyPT09dy5zZWxlY3RlZERhdGVzLmxlbmd0aCYmIXcuY29uZmlnLmVuYWJsZVRpbWU7KGx8fGMpJiZzZSgpfU4oKX19dy5wYXJzZURhdGU9Qyh7Y29uZmlnOncuY29uZmlnLGwxMG46dy5sMTBufSksdy5faGFuZGxlcnM9W10sdy5wbHVnaW5FbGVtZW50cz1bXSx3LmxvYWRlZFBsdWdpbnM9W10sdy5fYmluZD1BLHcuX3NldEhvdXJzRnJvbURhdGU9Xyx3Ll9wb3NpdGlvbkNhbGVuZGFyPWNlLHcuY2hhbmdlTW9udGg9Ryx3LmNoYW5nZVllYXI9USx3LmNsZWFyPWZ1bmN0aW9uKGUsdCl7dm9pZCAwPT09ZSYmKGU9ITApO3ZvaWQgMD09PXQmJih0PSEwKTt3LmlucHV0LnZhbHVlPSIiLHZvaWQgMCE9PXcuYWx0SW5wdXQmJih3LmFsdElucHV0LnZhbHVlPSIiKTt2b2lkIDAhPT13Lm1vYmlsZUlucHV0JiYody5tb2JpbGVJbnB1dC52YWx1ZT0iIik7dy5zZWxlY3RlZERhdGVzPVtdLHcubGF0ZXN0U2VsZWN0ZWREYXRlT2JqPXZvaWQgMCwhMD09PXQmJih3LmN1cnJlbnRZZWFyPXcuX2luaXRpYWxEYXRlLmdldEZ1bGxZZWFyKCksdy5jdXJyZW50TW9udGg9dy5faW5pdGlhbERhdGUuZ2V0TW9udGgoKSk7aWYoITA9PT13LmNvbmZpZy5lbmFibGVUaW1lKXt2YXIgbj14KHcuY29uZmlnKSxhPW4uaG91cnMsaT1uLm1pbnV0ZXMsbz1uLnNlY29uZHM7TyhhLGksbyl9dy5yZWRyYXcoKSxlJiZwZSgib25DaGFuZ2UiKX0sdy5jbG9zZT1mdW5jdGlvbigpe3cuaXNPcGVuPSExLHcuaXNNb2JpbGV8fCh2b2lkIDAhPT13LmNhbGVuZGFyQ29udGFpbmVyJiZ3LmNhbGVuZGFyQ29udGFpbmVyLmNsYXNzTGlzdC5yZW1vdmUoIm9wZW4iKSx2b2lkIDAhPT13Ll9pbnB1dCYmdy5faW5wdXQuY2xhc3NMaXN0LnJlbW92ZSgiYWN0aXZlIikpO3BlKCJvbkNsb3NlIil9LHcuX2NyZWF0ZUVsZW1lbnQ9cyx3LmRlc3Ryb3k9ZnVuY3Rpb24oKXt2b2lkIDAhPT13LmNvbmZpZyYmcGUoIm9uRGVzdHJveSIpO2Zvcih2YXIgZT13Ll9oYW5kbGVycy5sZW5ndGg7ZS0tOyl3Ll9oYW5kbGVyc1tlXS5yZW1vdmUoKTtpZih3Ll9oYW5kbGVycz1bXSx3Lm1vYmlsZUlucHV0KXcubW9iaWxlSW5wdXQucGFyZW50Tm9kZSYmdy5tb2JpbGVJbnB1dC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHcubW9iaWxlSW5wdXQpLHcubW9iaWxlSW5wdXQ9dm9pZCAwO2Vsc2UgaWYody5jYWxlbmRhckNvbnRhaW5lciYmdy5jYWxlbmRhckNvbnRhaW5lci5wYXJlbnROb2RlKWlmKHcuY29uZmlnLnN0YXRpYyYmdy5jYWxlbmRhckNvbnRhaW5lci5wYXJlbnROb2RlKXt2YXIgdD13LmNhbGVuZGFyQ29udGFpbmVyLnBhcmVudE5vZGU7aWYodC5sYXN0Q2hpbGQmJnQucmVtb3ZlQ2hpbGQodC5sYXN0Q2hpbGQpLHQucGFyZW50Tm9kZSl7Zm9yKDt0LmZpcnN0Q2hpbGQ7KXQucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUodC5maXJzdENoaWxkLHQpO3QucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0KX19ZWxzZSB3LmNhbGVuZGFyQ29udGFpbmVyLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQody5jYWxlbmRhckNvbnRhaW5lcik7dy5hbHRJbnB1dCYmKHcuaW5wdXQudHlwZT0idGV4dCIsdy5hbHRJbnB1dC5wYXJlbnROb2RlJiZ3LmFsdElucHV0LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQody5hbHRJbnB1dCksZGVsZXRlIHcuYWx0SW5wdXQpO3cuaW5wdXQmJih3LmlucHV0LnR5cGU9dy5pbnB1dC5fdHlwZSx3LmlucHV0LmNsYXNzTGlzdC5yZW1vdmUoImZsYXRwaWNrci1pbnB1dCIpLHcuaW5wdXQucmVtb3ZlQXR0cmlidXRlKCJyZWFkb25seSIpKTtbIl9zaG93VGltZUlucHV0IiwibGF0ZXN0U2VsZWN0ZWREYXRlT2JqIiwiX2hpZGVOZXh0TW9udGhBcnJvdyIsIl9oaWRlUHJldk1vbnRoQXJyb3ciLCJfX2hpZGVOZXh0TW9udGhBcnJvdyIsIl9faGlkZVByZXZNb250aEFycm93IiwiaXNNb2JpbGUiLCJpc09wZW4iLCJzZWxlY3RlZERhdGVFbGVtIiwibWluRGF0ZUhhc1RpbWUiLCJtYXhEYXRlSGFzVGltZSIsImRheXMiLCJkYXlzQ29udGFpbmVyIiwiX2lucHV0IiwiX3Bvc2l0aW9uRWxlbWVudCIsImlubmVyQ29udGFpbmVyIiwickNvbnRhaW5lciIsIm1vbnRoTmF2IiwidG9kYXlEYXRlRWxlbSIsImNhbGVuZGFyQ29udGFpbmVyIiwid2Vla2RheUNvbnRhaW5lciIsInByZXZNb250aE5hdiIsIm5leHRNb250aE5hdiIsIm1vbnRoc0Ryb3Bkb3duQ29udGFpbmVyIiwiY3VycmVudE1vbnRoRWxlbWVudCIsImN1cnJlbnRZZWFyRWxlbWVudCIsIm5hdmlnYXRpb25DdXJyZW50TW9udGgiLCJzZWxlY3RlZERhdGVFbGVtIiwiY29uZmlnIl0uZm9yRWFjaCgoZnVuY3Rpb24oZSl7dHJ5e2RlbGV0ZSB3W2VdfWNhdGNoKGUpe319KSl9LHcuaXNFbmFibGVkPVgsdy5qdW1wVG9EYXRlPVAsdy5vcGVuPWZ1bmN0aW9uKGUsdCl7dm9pZCAwPT09dCYmKHQ9dy5fcG9zaXRpb25FbGVtZW50KTtpZighMD09PXcuaXNNb2JpbGUpe2lmKGUpe2UucHJldmVudERlZmF1bHQoKTt2YXIgbj1nKGUpO24mJm4uYmx1cigpfXJldHVybiB2b2lkIDAhPT13Lm1vYmlsZUlucHV0JiYody5tb2JpbGVJbnB1dC5mb2N1cygpLHcubW9iaWxlSW5wdXQuY2xpY2soKSksdm9pZCBwZSgib25PcGVuIil9aWYody5faW5wdXQuZGlzYWJsZWR8fHcuY29uZmlnLmlubGluZSlyZXR1cm47dmFyIGE9dy5pc09wZW47dy5pc09wZW49ITAsYXx8KHcuY2FsZW5kYXJDb250YWluZXIuY2xhc3NMaXN0LmFkZCgib3BlbiIpLHcuX2lucHV0LmNsYXNzTGlzdC5hZGQoImFjdGl2ZSIpLHBlKCJvbk9wZW4iKSxjZSh0KSk7ITA9PT13LmNvbmZpZy5lbmFibGVUaW1lJiYhMD09PXcuY29uZmlnLm5vQ2FsZW5kYXImJighMSE9PXcuY29uZmlnLmFsbG93SW5wdXR8fHZvaWQgMCE9PWUmJncudGltZUNvbnRhaW5lci5jb250YWlucyhlLnJlbGF0ZWRUYXJnZXQpfHxzZXRUaW1lb3V0KChmdW5jdGlvbigpe3JldHVybiB3LmhvdXJFbGVtZW50LnNlbGVjdCgpfSksNTApKX0sdy5yZWRyYXc9ZGUsdy5zZXQ9ZnVuY3Rpb24oZSx0KXtpZihudWxsIT09ZSYmIm9iamVjdCI9PXR5cGVvZiBlKWZvcih2YXIgYSBpbiBPYmplY3QuYXNzaWduKHcuY29uZmlnLGUpLGUpdm9pZCAwIT09ZmVbYV0mJmZlW2FdLmZvckVhY2goKGZ1bmN0aW9uKGUpe3JldHVybiBlKCl9KSk7ZWxzZSB3LmNvbmZpZ1tlXT10LHZvaWQgMCE9PWZlW2VdP2ZlW2VdLmZvckVhY2goKGZ1bmN0aW9uKGUpe3JldHVybiBlKCl9KSk6bi5pbmRleE9mKGUpPi0xJiYody5jb25maWdbZV09Yyh0KSk7dy5yZWRyYXcoKSxiZSghMCl9LHcuc2V0RGF0ZT1mdW5jdGlvbihlLHQsbil7dm9pZCAwPT09dCYmKHQ9ITEpO3ZvaWQgMD09PW4mJihuPXcuY29uZmlnLmRhdGVGb3JtYXQpO2lmKDAhPT1lJiYhZXx8ZSBpbnN0YW5jZW9mIEFycmF5JiYwPT09ZS5sZW5ndGgpcmV0dXJuIHcuY2xlYXIodCk7bWUoZSxuKSx3LmxhdGVzdFNlbGVjdGVkRGF0ZU9iaj13LnNlbGVjdGVkRGF0ZXNbdy5zZWxlY3RlZERhdGVzLmxlbmd0aC0xXSx3LnJlZHJhdygpLFAodm9pZCAwLHQpLF8oKSwwPT09dy5zZWxlY3RlZERhdGVzLmxlbmd0aCYmdy5jbGVhcighMSk7YmUodCksdCYmcGUoIm9uQ2hhbmdlIil9LHcudG9nZ2xlPWZ1bmN0aW9uKGUpe2lmKCEwPT09dy5pc09wZW4pcmV0dXJuIHcuY2xvc2UoKTt3Lm9wZW4oZSl9O3ZhciBmZT17bG9jYWxlOltsZSx6XSxzaG93TW9udGhzOltxLGssJF0sbWluRGF0ZTpbUF0sbWF4RGF0ZTpbUF0sY2xpY2tPcGVuczpbZnVuY3Rpb24oKXshMD09PXcuY29uZmlnLmNsaWNrT3BlbnM\/KEEody5faW5wdXQsImZvY3VzIix3Lm9wZW4pLEEody5faW5wdXQsImNsaWNrIix3Lm9wZW4pKToody5faW5wdXQucmVtb3ZlRXZlbnRMaXN0ZW5lcigiZm9jdXMiLHcub3Blbiksdy5faW5wdXQucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY2xpY2siLHcub3BlbikpfV19O2Z1bmN0aW9uIG1lKGUsdCl7dmFyIG49W107aWYoZSBpbnN0YW5jZW9mIEFycmF5KW49ZS5tYXAoKGZ1bmN0aW9uKGUpe3JldHVybiB3LnBhcnNlRGF0ZShlLHQpfSkpO2Vsc2UgaWYoZSBpbnN0YW5jZW9mIERhdGV8fCJudW1iZXIiPT10eXBlb2YgZSluPVt3LnBhcnNlRGF0ZShlLHQpXTtlbHNlIGlmKCJzdHJpbmciPT10eXBlb2YgZSlzd2l0Y2gody5jb25maWcubW9kZSl7Y2FzZSJzaW5nbGUiOmNhc2UidGltZSI6bj1bdy5wYXJzZURhdGUoZSx0KV07YnJlYWs7Y2FzZSJtdWx0aXBsZSI6bj1lLnNwbGl0KHcuY29uZmlnLmNvbmp1bmN0aW9uKS5tYXAoKGZ1bmN0aW9uKGUpe3JldHVybiB3LnBhcnNlRGF0ZShlLHQpfSkpO2JyZWFrO2Nhc2UicmFuZ2UiOm49ZS5zcGxpdCh3LmwxMG4ucmFuZ2VTZXBhcmF0b3IpLm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJuIHcucGFyc2VEYXRlKGUsdCl9KSl9ZWxzZSB3LmNvbmZpZy5lcnJvckhhbmRsZXIobmV3IEVycm9yKCJJbnZhbGlkIGRhdGUgc3VwcGxpZWQ6ICIrSlNPTi5zdHJpbmdpZnkoZSkpKTt3LnNlbGVjdGVkRGF0ZXM9dy5jb25maWcuYWxsb3dJbnZhbGlkUHJlbG9hZD9uOm4uZmlsdGVyKChmdW5jdGlvbihlKXtyZXR1cm4gZSBpbnN0YW5jZW9mIERhdGUmJlgoZSwhMSl9KSksInJhbmdlIj09PXcuY29uZmlnLm1vZGUmJncuc2VsZWN0ZWREYXRlcy5zb3J0KChmdW5jdGlvbihlLHQpe3JldHVybiBlLmdldFRpbWUoKS10LmdldFRpbWUoKX0pKX1mdW5jdGlvbiBnZShlKXtyZXR1cm4gZS5zbGljZSgpLm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiBlfHwibnVtYmVyIj09dHlwZW9mIGV8fGUgaW5zdGFuY2VvZiBEYXRlP3cucGFyc2VEYXRlKGUsdm9pZCAwLCEwKTplJiYib2JqZWN0Ij09dHlwZW9mIGUmJmUuZnJvbSYmZS50bz97ZnJvbTp3LnBhcnNlRGF0ZShlLmZyb20sdm9pZCAwKSx0bzp3LnBhcnNlRGF0ZShlLnRvLHZvaWQgMCl9OmV9KSkuZmlsdGVyKChmdW5jdGlvbihlKXtyZXR1cm4gZX0pKX1mdW5jdGlvbiBwZShlLHQpe2lmKHZvaWQgMCE9PXcuY29uZmlnKXt2YXIgbj13LmNvbmZpZ1tlXTtpZih2b2lkIDAhPT1uJiZuLmxlbmd0aD4wKWZvcih2YXIgYT0wO25bYV0mJmE8bi5sZW5ndGg7YSsrKW5bYV0ody5zZWxlY3RlZERhdGVzLHcuaW5wdXQudmFsdWUsdyx0KTsib25DaGFuZ2UiPT09ZSYmKHcuaW5wdXQuZGlzcGF0Y2hFdmVudChoZSgiY2hhbmdlIikpLHcuaW5wdXQuZGlzcGF0Y2hFdmVudChoZSgiaW5wdXQiKSkpfX1mdW5jdGlvbiBoZShlKXt2YXIgdD1kb2N1bWVudC5jcmVhdGVFdmVudCgiRXZlbnQiKTtyZXR1cm4gdC5pbml0RXZlbnQoZSwhMCwhMCksdH1mdW5jdGlvbiB2ZShlKXtmb3IodmFyIHQ9MDt0PHcuc2VsZWN0ZWREYXRlcy5sZW5ndGg7dCsrKWlmKDA9PT1NKHcuc2VsZWN0ZWREYXRlc1t0XSxlKSlyZXR1cm4iIit0O3JldHVybiExfWZ1bmN0aW9uIERlKCl7dy5jb25maWcubm9DYWxlbmRhcnx8dy5pc01vYmlsZXx8IXcubW9udGhOYXZ8fCh3LnllYXJFbGVtZW50cy5mb3JFYWNoKChmdW5jdGlvbihlLHQpe3ZhciBuPW5ldyBEYXRlKHcuY3VycmVudFllYXIsdy5jdXJyZW50TW9udGgsMSk7bi5zZXRNb250aCh3LmN1cnJlbnRNb250aCt0KSx3LmNvbmZpZy5zaG93TW9udGhzPjF8fCJzdGF0aWMiPT09dy5jb25maWcubW9udGhTZWxlY3RvclR5cGU\/dy5tb250aEVsZW1lbnRzW3RdLnRleHRDb250ZW50PWgobi5nZXRNb250aCgpLHcuY29uZmlnLnNob3J0aGFuZEN1cnJlbnRNb250aCx3LmwxMG4pKyIgIjp3Lm1vbnRoc0Ryb3Bkb3duQ29udGFpbmVyLnZhbHVlPW4uZ2V0TW9udGgoKS50b1N0cmluZygpLGUudmFsdWU9bi5nZXRGdWxsWWVhcigpLnRvU3RyaW5nKCl9KSksdy5faGlkZVByZXZNb250aEFycm93PXZvaWQgMCE9PXcuY29uZmlnLm1pbkRhdGUmJih3LmN1cnJlbnRZZWFyPT09dy5jb25maWcubWluRGF0ZS5nZXRGdWxsWWVhcigpP3cuY3VycmVudE1vbnRoPD13LmNvbmZpZy5taW5EYXRlLmdldE1vbnRoKCk6dy5jdXJyZW50WWVhcjx3LmNvbmZpZy5taW5EYXRlLmdldEZ1bGxZZWFyKCkpLHcuX2hpZGVOZXh0TW9udGhBcnJvdz12b2lkIDAhPT13LmNvbmZpZy5tYXhEYXRlJiYody5jdXJyZW50WWVhcj09PXcuY29uZmlnLm1heERhdGUuZ2V0RnVsbFllYXIoKT93LmN1cnJlbnRNb250aCsxPncuY29uZmlnLm1heERhdGUuZ2V0TW9udGgoKTp3LmN1cnJlbnRZZWFyPncuY29uZmlnLm1heERhdGUuZ2V0RnVsbFllYXIoKSkpfWZ1bmN0aW9uIHdlKGUpe3JldHVybiB3LnNlbGVjdGVkRGF0ZXMubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gdy5mb3JtYXREYXRlKHQsZSl9KSkuZmlsdGVyKChmdW5jdGlvbihlLHQsbil7cmV0dXJuInJhbmdlIiE9PXcuY29uZmlnLm1vZGV8fHcuY29uZmlnLmVuYWJsZVRpbWV8fG4uaW5kZXhPZihlKT09PXR9KSkuam9pbigicmFuZ2UiIT09dy5jb25maWcubW9kZT93LmNvbmZpZy5jb25qdW5jdGlvbjp3LmwxMG4ucmFuZ2VTZXBhcmF0b3IpfWZ1bmN0aW9uIGJlKGUpe3ZvaWQgMD09PWUmJihlPSEwKSx2b2lkIDAhPT13Lm1vYmlsZUlucHV0JiZ3Lm1vYmlsZUZvcm1hdFN0ciYmKHcubW9iaWxlSW5wdXQudmFsdWU9dm9pZCAwIT09dy5sYXRlc3RTZWxlY3RlZERhdGVPYmo\/dy5mb3JtYXREYXRlKHcubGF0ZXN0U2VsZWN0ZWREYXRlT2JqLHcubW9iaWxlRm9ybWF0U3RyKToiIiksdy5pbnB1dC52YWx1ZT13ZSh3LmNvbmZpZy5kYXRlRm9ybWF0KSx2b2lkIDAhPT13LmFsdElucHV0JiYody5hbHRJbnB1dC52YWx1ZT13ZSh3LmNvbmZpZy5hbHRGb3JtYXQpKSwhMSE9PWUmJnBlKCJvblZhbHVlVXBkYXRlIil9ZnVuY3Rpb24gQ2UoZSl7dmFyIHQ9ZyhlKSxuPXcucHJldk1vbnRoTmF2LmNvbnRhaW5zKHQpLGE9dy5uZXh0TW9udGhOYXYuY29udGFpbnModCk7bnx8YT9HKG4\/LTE6MSk6dy55ZWFyRWxlbWVudHMuaW5kZXhPZih0KT49MD90LnNlbGVjdCgpOnQuY2xhc3NMaXN0LmNvbnRhaW5zKCJhcnJvd1VwIik\/dy5jaGFuZ2VZZWFyKHcuY3VycmVudFllYXIrMSk6dC5jbGFzc0xpc3QuY29udGFpbnMoImFycm93RG93biIpJiZ3LmNoYW5nZVllYXIody5jdXJyZW50WWVhci0xKX1yZXR1cm4gZnVuY3Rpb24oKXt3LmVsZW1lbnQ9dy5pbnB1dD1wLHcuaXNPcGVuPSExLGZ1bmN0aW9uKCl7dmFyIHQ9WyJ3cmFwIiwid2Vla051bWJlcnMiLCJhbGxvd0lucHV0IiwiYWxsb3dJbnZhbGlkUHJlbG9hZCIsImNsaWNrT3BlbnMiLCJ0aW1lXzI0aHIiLCJlbmFibGVUaW1lIiwibm9DYWxlbmRhciIsImFsdElucHV0Iiwic2hvcnRoYW5kQ3VycmVudE1vbnRoIiwiaW5saW5lIiwic3RhdGljIiwiZW5hYmxlU2Vjb25kcyIsImRpc2FibGVNb2JpbGUiXSxpPWUoZSh7fSxKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHAuZGF0YXNldHx8e30pKSksdiksbz17fTt3LmNvbmZpZy5wYXJzZURhdGU9aS5wYXJzZURhdGUsdy5jb25maWcuZm9ybWF0RGF0ZT1pLmZvcm1hdERhdGUsT2JqZWN0LmRlZmluZVByb3BlcnR5KHcuY29uZmlnLCJlbmFibGUiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdy5jb25maWcuX2VuYWJsZX0sc2V0OmZ1bmN0aW9uKGUpe3cuY29uZmlnLl9lbmFibGU9Z2UoZSl9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHcuY29uZmlnLCJkaXNhYmxlIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHcuY29uZmlnLl9kaXNhYmxlfSxzZXQ6ZnVuY3Rpb24oZSl7dy5jb25maWcuX2Rpc2FibGU9Z2UoZSl9fSk7dmFyIHI9InRpbWUiPT09aS5tb2RlO2lmKCFpLmRhdGVGb3JtYXQmJihpLmVuYWJsZVRpbWV8fHIpKXt2YXIgbD1ULmRlZmF1bHRDb25maWcuZGF0ZUZvcm1hdHx8YS5kYXRlRm9ybWF0O28uZGF0ZUZvcm1hdD1pLm5vQ2FsZW5kYXJ8fHI\/Ikg6aSIrKGkuZW5hYmxlU2Vjb25kcz8iOlMiOiIiKTpsKyIgSDppIisoaS5lbmFibGVTZWNvbmRzPyI6UyI6IiIpfWlmKGkuYWx0SW5wdXQmJihpLmVuYWJsZVRpbWV8fHIpJiYhaS5hbHRGb3JtYXQpe3ZhciBkPVQuZGVmYXVsdENvbmZpZy5hbHRGb3JtYXR8fGEuYWx0Rm9ybWF0O28uYWx0Rm9ybWF0PWkubm9DYWxlbmRhcnx8cj8iaDppIisoaS5lbmFibGVTZWNvbmRzPyI6UyBLIjoiIEsiKTpkKyIgaDppIisoaS5lbmFibGVTZWNvbmRzPyI6UyI6IiIpKyIgSyJ9T2JqZWN0LmRlZmluZVByb3BlcnR5KHcuY29uZmlnLCJtaW5EYXRlIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHcuY29uZmlnLl9taW5EYXRlfSxzZXQ6b2UoIm1pbiIpfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHcuY29uZmlnLCJtYXhEYXRlIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHcuY29uZmlnLl9tYXhEYXRlfSxzZXQ6b2UoIm1heCIpfSk7dmFyIHM9ZnVuY3Rpb24oZSl7cmV0dXJuIGZ1bmN0aW9uKHQpe3cuY29uZmlnWyJtaW4iPT09ZT8iX21pblRpbWUiOiJfbWF4VGltZSJdPXcucGFyc2VEYXRlKHQsIkg6aTpTIil9fTtPYmplY3QuZGVmaW5lUHJvcGVydHkody5jb25maWcsIm1pblRpbWUiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdy5jb25maWcuX21pblRpbWV9LHNldDpzKCJtaW4iKX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh3LmNvbmZpZywibWF4VGltZSIse2dldDpmdW5jdGlvbigpe3JldHVybiB3LmNvbmZpZy5fbWF4VGltZX0sc2V0OnMoIm1heCIpfSksInRpbWUiPT09aS5tb2RlJiYody5jb25maWcubm9DYWxlbmRhcj0hMCx3LmNvbmZpZy5lbmFibGVUaW1lPSEwKTtPYmplY3QuYXNzaWduKHcuY29uZmlnLG8saSk7Zm9yKHZhciB1PTA7dTx0Lmxlbmd0aDt1Kyspdy5jb25maWdbdFt1XV09ITA9PT13LmNvbmZpZ1t0W3VdXXx8InRydWUiPT09dy5jb25maWdbdFt1XV07bi5maWx0ZXIoKGZ1bmN0aW9uKGUpe3JldHVybiB2b2lkIDAhPT13LmNvbmZpZ1tlXX0pKS5mb3JFYWNoKChmdW5jdGlvbihlKXt3LmNvbmZpZ1tlXT1jKHcuY29uZmlnW2VdfHxbXSkubWFwKEUpfSkpLHcuaXNNb2JpbGU9IXcuY29uZmlnLmRpc2FibGVNb2JpbGUmJiF3LmNvbmZpZy5pbmxpbmUmJiJzaW5nbGUiPT09dy5jb25maWcubW9kZSYmIXcuY29uZmlnLmRpc2FibGUubGVuZ3RoJiYhdy5jb25maWcuZW5hYmxlJiYhdy5jb25maWcud2Vla051bWJlcnMmJi9BbmRyb2lkfHdlYk9TfGlQaG9uZXxpUGFkfGlQb2R8QmxhY2tCZXJyeXxJRU1vYmlsZXxPcGVyYSBNaW5pL2kudGVzdChuYXZpZ2F0b3IudXNlckFnZW50KTtmb3IodT0wO3U8dy5jb25maWcucGx1Z2lucy5sZW5ndGg7dSsrKXt2YXIgZj13LmNvbmZpZy5wbHVnaW5zW3VdKHcpfHx7fTtmb3IodmFyIG0gaW4gZiluLmluZGV4T2YobSk+LTE\/dy5jb25maWdbbV09YyhmW21dKS5tYXAoRSkuY29uY2F0KHcuY29uZmlnW21dKTp2b2lkIDA9PT1pW21dJiYody5jb25maWdbbV09ZlttXSl9aS5hbHRJbnB1dENsYXNzfHwody5jb25maWcuYWx0SW5wdXRDbGFzcz1yZSgpLmNsYXNzTmFtZSsiICIrdy5jb25maWcuYWx0SW5wdXRDbGFzcyk7cGUoIm9uUGFyc2VDb25maWciKX0oKSxsZSgpLGZ1bmN0aW9uKCl7aWYody5pbnB1dD1yZSgpLCF3LmlucHV0KXJldHVybiB2b2lkIHcuY29uZmlnLmVycm9ySGFuZGxlcihuZXcgRXJyb3IoIkludmFsaWQgaW5wdXQgZWxlbWVudCBzcGVjaWZpZWQiKSk7dy5pbnB1dC5fdHlwZT13LmlucHV0LnR5cGUsdy5pbnB1dC50eXBlPSJ0ZXh0Iix3LmlucHV0LmNsYXNzTGlzdC5hZGQoImZsYXRwaWNrci1pbnB1dCIpLHcuX2lucHV0PXcuaW5wdXQsdy5jb25maWcuYWx0SW5wdXQmJih3LmFsdElucHV0PXMody5pbnB1dC5ub2RlTmFtZSx3LmNvbmZpZy5hbHRJbnB1dENsYXNzKSx3Ll9pbnB1dD13LmFsdElucHV0LHcuYWx0SW5wdXQucGxhY2Vob2xkZXI9dy5pbnB1dC5wbGFjZWhvbGRlcix3LmFsdElucHV0LmRpc2FibGVkPXcuaW5wdXQuZGlzYWJsZWQsdy5hbHRJbnB1dC5yZXF1aXJlZD13LmlucHV0LnJlcXVpcmVkLHcuYWx0SW5wdXQudGFiSW5kZXg9dy5pbnB1dC50YWJJbmRleCx3LmFsdElucHV0LnR5cGU9InRleHQiLHcuaW5wdXQuc2V0QXR0cmlidXRlKCJ0eXBlIiwiaGlkZGVuIiksIXcuY29uZmlnLnN0YXRpYyYmdy5pbnB1dC5wYXJlbnROb2RlJiZ3LmlucHV0LnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKHcuYWx0SW5wdXQsdy5pbnB1dC5uZXh0U2libGluZykpO3cuY29uZmlnLmFsbG93SW5wdXR8fHcuX2lucHV0LnNldEF0dHJpYnV0ZSgicmVhZG9ubHkiLCJyZWFkb25seSIpO3cuX3Bvc2l0aW9uRWxlbWVudD13LmNvbmZpZy5wb3NpdGlvbkVsZW1lbnR8fHcuX2lucHV0fSgpLGZ1bmN0aW9uKCl7dy5zZWxlY3RlZERhdGVzPVtdLHcubm93PXcucGFyc2VEYXRlKHcuY29uZmlnLm5vdyl8fG5ldyBEYXRlO3ZhciBlPXcuY29uZmlnLmRlZmF1bHREYXRlfHwoIklOUFVUIiE9PXcuaW5wdXQubm9kZU5hbWUmJiJURVhUQVJFQSIhPT13LmlucHV0Lm5vZGVOYW1lfHwhdy5pbnB1dC5wbGFjZWhvbGRlcnx8dy5pbnB1dC52YWx1ZSE9PXcuaW5wdXQucGxhY2Vob2xkZXI\/dy5pbnB1dC52YWx1ZTpudWxsKTtlJiZtZShlLHcuY29uZmlnLmRhdGVGb3JtYXQpO3cuX2luaXRpYWxEYXRlPXcuc2VsZWN0ZWREYXRlcy5sZW5ndGg+MD93LnNlbGVjdGVkRGF0ZXNbMF06dy5jb25maWcubWluRGF0ZSYmdy5jb25maWcubWluRGF0ZS5nZXRUaW1lKCk+dy5ub3cuZ2V0VGltZSgpP3cuY29uZmlnLm1pbkRhdGU6dy5jb25maWcubWF4RGF0ZSYmdy5jb25maWcubWF4RGF0ZS5nZXRUaW1lKCk8dy5ub3cuZ2V0VGltZSgpP3cuY29uZmlnLm1heERhdGU6dy5ub3csdy5jdXJyZW50WWVhcj13Ll9pbml0aWFsRGF0ZS5nZXRGdWxsWWVhcigpLHcuY3VycmVudE1vbnRoPXcuX2luaXRpYWxEYXRlLmdldE1vbnRoKCksdy5zZWxlY3RlZERhdGVzLmxlbmd0aD4wJiYody5sYXRlc3RTZWxlY3RlZERhdGVPYmo9dy5zZWxlY3RlZERhdGVzWzBdKTt2b2lkIDAhPT13LmNvbmZpZy5taW5UaW1lJiYody5jb25maWcubWluVGltZT13LnBhcnNlRGF0ZSh3LmNvbmZpZy5taW5UaW1lLCJIOmkiKSk7dm9pZCAwIT09dy5jb25maWcubWF4VGltZSYmKHcuY29uZmlnLm1heFRpbWU9dy5wYXJzZURhdGUody5jb25maWcubWF4VGltZSwiSDppIikpO3cubWluRGF0ZUhhc1RpbWU9ISF3LmNvbmZpZy5taW5EYXRlJiYody5jb25maWcubWluRGF0ZS5nZXRIb3VycygpPjB8fHcuY29uZmlnLm1pbkRhdGUuZ2V0TWludXRlcygpPjB8fHcuY29uZmlnLm1pbkRhdGUuZ2V0U2Vjb25kcygpPjApLHcubWF4RGF0ZUhhc1RpbWU9ISF3LmNvbmZpZy5tYXhEYXRlJiYody5jb25maWcubWF4RGF0ZS5nZXRIb3VycygpPjB8fHcuY29uZmlnLm1heERhdGUuZ2V0TWludXRlcygpPjB8fHcuY29uZmlnLm1heERhdGUuZ2V0U2Vjb25kcygpPjApfSgpLHcudXRpbHM9e2dldERheXNJbk1vbnRoOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIHZvaWQgMD09PWUmJihlPXcuY3VycmVudE1vbnRoKSx2b2lkIDA9PT10JiYodD13LmN1cnJlbnRZZWFyKSwxPT09ZSYmKHQlND09MCYmdCUxMDAhPTB8fHQlNDAwPT0wKT8yOTp3LmwxMG4uZGF5c0luTW9udGhbZV19fSx3LmlzTW9iaWxlfHxmdW5jdGlvbigpe3ZhciBlPXdpbmRvdy5kb2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCk7aWYody5jYWxlbmRhckNvbnRhaW5lcj1zKCJkaXYiLCJmbGF0cGlja3ItY2FsZW5kYXIiKSx3LmNhbGVuZGFyQ29udGFpbmVyLnRhYkluZGV4PS0xLCF3LmNvbmZpZy5ub0NhbGVuZGFyKXtpZihlLmFwcGVuZENoaWxkKCh3Lm1vbnRoTmF2PXMoImRpdiIsImZsYXRwaWNrci1tb250aHMiKSx3LnllYXJFbGVtZW50cz1bXSx3Lm1vbnRoRWxlbWVudHM9W10sdy5wcmV2TW9udGhOYXY9cygic3BhbiIsImZsYXRwaWNrci1wcmV2LW1vbnRoIiksdy5wcmV2TW9udGhOYXYuaW5uZXJIVE1MPXcuY29uZmlnLnByZXZBcnJvdyx3Lm5leHRNb250aE5hdj1zKCJzcGFuIiwiZmxhdHBpY2tyLW5leHQtbW9udGgiKSx3Lm5leHRNb250aE5hdi5pbm5lckhUTUw9dy5jb25maWcubmV4dEFycm93LHEoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkodywiX2hpZGVQcmV2TW9udGhBcnJvdyIse2dldDpmdW5jdGlvbigpe3JldHVybiB3Ll9faGlkZVByZXZNb250aEFycm93fSxzZXQ6ZnVuY3Rpb24oZSl7dy5fX2hpZGVQcmV2TW9udGhBcnJvdyE9PWUmJihkKHcucHJldk1vbnRoTmF2LCJmbGF0cGlja3ItZGlzYWJsZWQiLGUpLHcuX19oaWRlUHJldk1vbnRoQXJyb3c9ZSl9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHcsIl9oaWRlTmV4dE1vbnRoQXJyb3ciLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdy5fX2hpZGVOZXh0TW9udGhBcnJvd30sc2V0OmZ1bmN0aW9uKGUpe3cuX19oaWRlTmV4dE1vbnRoQXJyb3chPT1lJiYoZCh3Lm5leHRNb250aE5hdiwiZmxhdHBpY2tyLWRpc2FibGVkIixlKSx3Ll9faGlkZU5leHRNb250aEFycm93PWUpfX0pLHcuY3VycmVudFllYXJFbGVtZW50PXcueWVhckVsZW1lbnRzWzBdLERlKCksdy5tb250aE5hdikpLHcuaW5uZXJDb250YWluZXI9cygiZGl2IiwiZmxhdHBpY2tyLWlubmVyQ29udGFpbmVyIiksdy5jb25maWcud2Vla051bWJlcnMpe3ZhciB0PWZ1bmN0aW9uKCl7dy5jYWxlbmRhckNvbnRhaW5lci5jbGFzc0xpc3QuYWRkKCJoYXNXZWVrcyIpO3ZhciBlPXMoImRpdiIsImZsYXRwaWNrci13ZWVrd3JhcHBlciIpO2UuYXBwZW5kQ2hpbGQocygic3BhbiIsImZsYXRwaWNrci13ZWVrZGF5Iix3LmwxMG4ud2Vla0FiYnJldmlhdGlvbikpO3ZhciB0PXMoImRpdiIsImZsYXRwaWNrci13ZWVrcyIpO3JldHVybiBlLmFwcGVuZENoaWxkKHQpLHt3ZWVrV3JhcHBlcjplLHdlZWtOdW1iZXJzOnR9fSgpLG49dC53ZWVrV3JhcHBlcixhPXQud2Vla051bWJlcnM7dy5pbm5lckNvbnRhaW5lci5hcHBlbmRDaGlsZChuKSx3LndlZWtOdW1iZXJzPWEsdy53ZWVrV3JhcHBlcj1ufXcuckNvbnRhaW5lcj1zKCJkaXYiLCJmbGF0cGlja3ItckNvbnRhaW5lciIpLHcuckNvbnRhaW5lci5hcHBlbmRDaGlsZCgkKCkpLHcuZGF5c0NvbnRhaW5lcnx8KHcuZGF5c0NvbnRhaW5lcj1zKCJkaXYiLCJmbGF0cGlja3ItZGF5cyIpLHcuZGF5c0NvbnRhaW5lci50YWJJbmRleD0tMSksSigpLHcuckNvbnRhaW5lci5hcHBlbmRDaGlsZCh3LmRheXNDb250YWluZXIpLHcuaW5uZXJDb250YWluZXIuYXBwZW5kQ2hpbGQody5yQ29udGFpbmVyKSxlLmFwcGVuZENoaWxkKHcuaW5uZXJDb250YWluZXIpfXcuY29uZmlnLmVuYWJsZVRpbWUmJmUuYXBwZW5kQ2hpbGQoZnVuY3Rpb24oKXt3LmNhbGVuZGFyQ29udGFpbmVyLmNsYXNzTGlzdC5hZGQoImhhc1RpbWUiKSx3LmNvbmZpZy5ub0NhbGVuZGFyJiZ3LmNhbGVuZGFyQ29udGFpbmVyLmNsYXNzTGlzdC5hZGQoIm5vQ2FsZW5kYXIiKTt2YXIgZT14KHcuY29uZmlnKTt3LnRpbWVDb250YWluZXI9cygiZGl2IiwiZmxhdHBpY2tyLXRpbWUiKSx3LnRpbWVDb250YWluZXIudGFiSW5kZXg9LTE7dmFyIHQ9cygic3BhbiIsImZsYXRwaWNrci10aW1lLXNlcGFyYXRvciIsIjoiKSxuPW0oImZsYXRwaWNrci1ob3VyIix7ImFyaWEtbGFiZWwiOncubDEwbi5ob3VyQXJpYUxhYmVsfSk7dy5ob3VyRWxlbWVudD1uLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJpbnB1dCIpWzBdO3ZhciBhPW0oImZsYXRwaWNrci1taW51dGUiLHsiYXJpYS1sYWJlbCI6dy5sMTBuLm1pbnV0ZUFyaWFMYWJlbH0pO3cubWludXRlRWxlbWVudD1hLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJpbnB1dCIpWzBdLHcuaG91ckVsZW1lbnQudGFiSW5kZXg9dy5taW51dGVFbGVtZW50LnRhYkluZGV4PS0xLHcuaG91ckVsZW1lbnQudmFsdWU9byh3LmxhdGVzdFNlbGVjdGVkRGF0ZU9iaj93LmxhdGVzdFNlbGVjdGVkRGF0ZU9iai5nZXRIb3VycygpOncuY29uZmlnLnRpbWVfMjRocj9lLmhvdXJzOmZ1bmN0aW9uKGUpe3N3aXRjaChlJTI0KXtjYXNlIDA6Y2FzZSAxMjpyZXR1cm4gMTI7ZGVmYXVsdDpyZXR1cm4gZSUxMn19KGUuaG91cnMpKSx3Lm1pbnV0ZUVsZW1lbnQudmFsdWU9byh3LmxhdGVzdFNlbGVjdGVkRGF0ZU9iaj93LmxhdGVzdFNlbGVjdGVkRGF0ZU9iai5nZXRNaW51dGVzKCk6ZS5taW51dGVzKSx3LmhvdXJFbGVtZW50LnNldEF0dHJpYnV0ZSgic3RlcCIsdy5jb25maWcuaG91ckluY3JlbWVudC50b1N0cmluZygpKSx3Lm1pbnV0ZUVsZW1lbnQuc2V0QXR0cmlidXRlKCJzdGVwIix3LmNvbmZpZy5taW51dGVJbmNyZW1lbnQudG9TdHJpbmcoKSksdy5ob3VyRWxlbWVudC5zZXRBdHRyaWJ1dGUoIm1pbiIsdy5jb25maWcudGltZV8yNGhyPyIwIjoiMSIpLHcuaG91ckVsZW1lbnQuc2V0QXR0cmlidXRlKCJtYXgiLHcuY29uZmlnLnRpbWVfMjRocj8iMjMiOiIxMiIpLHcuaG91ckVsZW1lbnQuc2V0QXR0cmlidXRlKCJtYXhsZW5ndGgiLCIyIiksdy5taW51dGVFbGVtZW50LnNldEF0dHJpYnV0ZSgibWluIiwiMCIpLHcubWludXRlRWxlbWVudC5zZXRBdHRyaWJ1dGUoIm1heCIsIjU5Iiksdy5taW51dGVFbGVtZW50LnNldEF0dHJpYnV0ZSgibWF4bGVuZ3RoIiwiMiIpLHcudGltZUNvbnRhaW5lci5hcHBlbmRDaGlsZChuKSx3LnRpbWVDb250YWluZXIuYXBwZW5kQ2hpbGQodCksdy50aW1lQ29udGFpbmVyLmFwcGVuZENoaWxkKGEpLHcuY29uZmlnLnRpbWVfMjRociYmdy50aW1lQ29udGFpbmVyLmNsYXNzTGlzdC5hZGQoInRpbWUyNGhyIik7aWYody5jb25maWcuZW5hYmxlU2Vjb25kcyl7dy50aW1lQ29udGFpbmVyLmNsYXNzTGlzdC5hZGQoImhhc1NlY29uZHMiKTt2YXIgaT1tKCJmbGF0cGlja3Itc2Vjb25kIik7dy5zZWNvbmRFbGVtZW50PWkuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImlucHV0IilbMF0sdy5zZWNvbmRFbGVtZW50LnZhbHVlPW8ody5sYXRlc3RTZWxlY3RlZERhdGVPYmo\/dy5sYXRlc3RTZWxlY3RlZERhdGVPYmouZ2V0U2Vjb25kcygpOmUuc2Vjb25kcyksdy5zZWNvbmRFbGVtZW50LnNldEF0dHJpYnV0ZSgic3RlcCIsdy5taW51dGVFbGVtZW50LmdldEF0dHJpYnV0ZSgic3RlcCIpKSx3LnNlY29uZEVsZW1lbnQuc2V0QXR0cmlidXRlKCJtaW4iLCIwIiksdy5zZWNvbmRFbGVtZW50LnNldEF0dHJpYnV0ZSgibWF4IiwiNTkiKSx3LnNlY29uZEVsZW1lbnQuc2V0QXR0cmlidXRlKCJtYXhsZW5ndGgiLCIyIiksdy50aW1lQ29udGFpbmVyLmFwcGVuZENoaWxkKHMoInNwYW4iLCJmbGF0cGlja3ItdGltZS1zZXBhcmF0b3IiLCI6IikpLHcudGltZUNvbnRhaW5lci5hcHBlbmRDaGlsZChpKX13LmNvbmZpZy50aW1lXzI0aHJ8fCh3LmFtUE09cygic3BhbiIsImZsYXRwaWNrci1hbS1wbSIsdy5sMTBuLmFtUE1bcigody5sYXRlc3RTZWxlY3RlZERhdGVPYmo\/dy5ob3VyRWxlbWVudC52YWx1ZTp3LmNvbmZpZy5kZWZhdWx0SG91cik+MTEpXSksdy5hbVBNLnRpdGxlPXcubDEwbi50b2dnbGVUaXRsZSx3LmFtUE0udGFiSW5kZXg9LTEsdy50aW1lQ29udGFpbmVyLmFwcGVuZENoaWxkKHcuYW1QTSkpO3JldHVybiB3LnRpbWVDb250YWluZXJ9KCkpO2Qody5jYWxlbmRhckNvbnRhaW5lciwicmFuZ2VNb2RlIiwicmFuZ2UiPT09dy5jb25maWcubW9kZSksZCh3LmNhbGVuZGFyQ29udGFpbmVyLCJhbmltYXRlIiwhMD09PXcuY29uZmlnLmFuaW1hdGUpLGQody5jYWxlbmRhckNvbnRhaW5lciwibXVsdGlNb250aCIsdy5jb25maWcuc2hvd01vbnRocz4xKSx3LmNhbGVuZGFyQ29udGFpbmVyLmFwcGVuZENoaWxkKGUpO3ZhciBpPXZvaWQgMCE9PXcuY29uZmlnLmFwcGVuZFRvJiZ2b2lkIDAhPT13LmNvbmZpZy5hcHBlbmRUby5ub2RlVHlwZTtpZigody5jb25maWcuaW5saW5lfHx3LmNvbmZpZy5zdGF0aWMpJiYody5jYWxlbmRhckNvbnRhaW5lci5jbGFzc0xpc3QuYWRkKHcuY29uZmlnLmlubGluZT8iaW5saW5lIjoic3RhdGljIiksdy5jb25maWcuaW5saW5lJiYoIWkmJncuZWxlbWVudC5wYXJlbnROb2RlP3cuZWxlbWVudC5wYXJlbnROb2RlLmluc2VydEJlZm9yZSh3LmNhbGVuZGFyQ29udGFpbmVyLHcuX2lucHV0Lm5leHRTaWJsaW5nKTp2b2lkIDAhPT13LmNvbmZpZy5hcHBlbmRUbyYmdy5jb25maWcuYXBwZW5kVG8uYXBwZW5kQ2hpbGQody5jYWxlbmRhckNvbnRhaW5lcikpLHcuY29uZmlnLnN0YXRpYykpe3ZhciBsPXMoImRpdiIsImZsYXRwaWNrci13cmFwcGVyIik7dy5lbGVtZW50LnBhcmVudE5vZGUmJncuZWxlbWVudC5wYXJlbnROb2RlLmluc2VydEJlZm9yZShsLHcuZWxlbWVudCksbC5hcHBlbmRDaGlsZCh3LmVsZW1lbnQpLHcuYWx0SW5wdXQmJmwuYXBwZW5kQ2hpbGQody5hbHRJbnB1dCksbC5hcHBlbmRDaGlsZCh3LmNhbGVuZGFyQ29udGFpbmVyKX13LmNvbmZpZy5zdGF0aWN8fHcuY29uZmlnLmlubGluZXx8KHZvaWQgMCE9PXcuY29uZmlnLmFwcGVuZFRvP3cuY29uZmlnLmFwcGVuZFRvOndpbmRvdy5kb2N1bWVudC5ib2R5KS5hcHBlbmRDaGlsZCh3LmNhbGVuZGFyQ29udGFpbmVyKX0oKSxmdW5jdGlvbigpe3cuY29uZmlnLndyYXAmJlsib3BlbiIsImNsb3NlIiwidG9nZ2xlIiwiY2xlYXIiXS5mb3JFYWNoKChmdW5jdGlvbihlKXtBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKHcuZWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKCJbZGF0YS0iK2UrIl0iKSwoZnVuY3Rpb24odCl7cmV0dXJuIEEodCwiY2xpY2siLHdbZV0pfSkpfSkpO2lmKHcuaXNNb2JpbGUpcmV0dXJuIHZvaWQgZnVuY3Rpb24oKXt2YXIgZT13LmNvbmZpZy5lbmFibGVUaW1lP3cuY29uZmlnLm5vQ2FsZW5kYXI\/InRpbWUiOiJkYXRldGltZS1sb2NhbCI6ImRhdGUiO3cubW9iaWxlSW5wdXQ9cygiaW5wdXQiLHcuaW5wdXQuY2xhc3NOYW1lKyIgZmxhdHBpY2tyLW1vYmlsZSIpLHcubW9iaWxlSW5wdXQudGFiSW5kZXg9MSx3Lm1vYmlsZUlucHV0LnR5cGU9ZSx3Lm1vYmlsZUlucHV0LmRpc2FibGVkPXcuaW5wdXQuZGlzYWJsZWQsdy5tb2JpbGVJbnB1dC5yZXF1aXJlZD13LmlucHV0LnJlcXVpcmVkLHcubW9iaWxlSW5wdXQucGxhY2Vob2xkZXI9dy5pbnB1dC5wbGFjZWhvbGRlcix3Lm1vYmlsZUZvcm1hdFN0cj0iZGF0ZXRpbWUtbG9jYWwiPT09ZT8iWS1tLWRcXFRIOmk6UyI6ImRhdGUiPT09ZT8iWS1tLWQiOiJIOmk6UyIsdy5zZWxlY3RlZERhdGVzLmxlbmd0aD4wJiYody5tb2JpbGVJbnB1dC5kZWZhdWx0VmFsdWU9dy5tb2JpbGVJbnB1dC52YWx1ZT13LmZvcm1hdERhdGUody5zZWxlY3RlZERhdGVzWzBdLHcubW9iaWxlRm9ybWF0U3RyKSk7dy5jb25maWcubWluRGF0ZSYmKHcubW9iaWxlSW5wdXQubWluPXcuZm9ybWF0RGF0ZSh3LmNvbmZpZy5taW5EYXRlLCJZLW0tZCIpKTt3LmNvbmZpZy5tYXhEYXRlJiYody5tb2JpbGVJbnB1dC5tYXg9dy5mb3JtYXREYXRlKHcuY29uZmlnLm1heERhdGUsIlktbS1kIikpO3cuaW5wdXQuZ2V0QXR0cmlidXRlKCJzdGVwIikmJih3Lm1vYmlsZUlucHV0LnN0ZXA9U3RyaW5nKHcuaW5wdXQuZ2V0QXR0cmlidXRlKCJzdGVwIikpKTt3LmlucHV0LnR5cGU9ImhpZGRlbiIsdm9pZCAwIT09dy5hbHRJbnB1dCYmKHcuYWx0SW5wdXQudHlwZT0iaGlkZGVuIik7dHJ5e3cuaW5wdXQucGFyZW50Tm9kZSYmdy5pbnB1dC5wYXJlbnROb2RlLmluc2VydEJlZm9yZSh3Lm1vYmlsZUlucHV0LHcuaW5wdXQubmV4dFNpYmxpbmcpfWNhdGNoKGUpe31BKHcubW9iaWxlSW5wdXQsImNoYW5nZSIsKGZ1bmN0aW9uKGUpe3cuc2V0RGF0ZShnKGUpLnZhbHVlLCExLHcubW9iaWxlRm9ybWF0U3RyKSxwZSgib25DaGFuZ2UiKSxwZSgib25DbG9zZSIpfSkpfSgpO3ZhciBlPWwoaWUsNTApO3cuX2RlYm91bmNlZENoYW5nZT1sKE4sMzAwKSx3LmRheXNDb250YWluZXImJiEvaVBob25lfGlQYWR8aVBvZC9pLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCkmJkEody5kYXlzQ29udGFpbmVyLCJtb3VzZW92ZXIiLChmdW5jdGlvbihlKXsicmFuZ2UiPT09dy5jb25maWcubW9kZSYmYWUoZyhlKSl9KSk7QSh3aW5kb3cuZG9jdW1lbnQuYm9keSwia2V5ZG93biIsbmUpLHcuY29uZmlnLmlubGluZXx8dy5jb25maWcuc3RhdGljfHxBKHdpbmRvdywicmVzaXplIixlKTt2b2lkIDAhPT13aW5kb3cub250b3VjaHN0YXJ0P0Eod2luZG93LmRvY3VtZW50LCJ0b3VjaHN0YXJ0IixaKTpBKHdpbmRvdy5kb2N1bWVudCwibW91c2Vkb3duIixaKTtBKHdpbmRvdy5kb2N1bWVudCwiZm9jdXMiLFose2NhcHR1cmU6ITB9KSwhMD09PXcuY29uZmlnLmNsaWNrT3BlbnMmJihBKHcuX2lucHV0LCJmb2N1cyIsdy5vcGVuKSxBKHcuX2lucHV0LCJjbGljayIsdy5vcGVuKSk7dm9pZCAwIT09dy5kYXlzQ29udGFpbmVyJiYoQSh3Lm1vbnRoTmF2LCJjbGljayIsQ2UpLEEody5tb250aE5hdixbImtleXVwIiwiaW5jcmVtZW50Il0sRiksQSh3LmRheXNDb250YWluZXIsImNsaWNrIix1ZSkpO2lmKHZvaWQgMCE9PXcudGltZUNvbnRhaW5lciYmdm9pZCAwIT09dy5taW51dGVFbGVtZW50JiZ2b2lkIDAhPT13LmhvdXJFbGVtZW50KXt2YXIgdD1mdW5jdGlvbihlKXtyZXR1cm4gZyhlKS5zZWxlY3QoKX07QSh3LnRpbWVDb250YWluZXIsWyJpbmNyZW1lbnQiXSxJKSxBKHcudGltZUNvbnRhaW5lciwiYmx1ciIsSSx7Y2FwdHVyZTohMH0pLEEody50aW1lQ29udGFpbmVyLCJjbGljayIsWSksQShbdy5ob3VyRWxlbWVudCx3Lm1pbnV0ZUVsZW1lbnRdLFsiZm9jdXMiLCJjbGljayJdLHQpLHZvaWQgMCE9PXcuc2Vjb25kRWxlbWVudCYmQSh3LnNlY29uZEVsZW1lbnQsImZvY3VzIiwoZnVuY3Rpb24oKXtyZXR1cm4gdy5zZWNvbmRFbGVtZW50JiZ3LnNlY29uZEVsZW1lbnQuc2VsZWN0KCl9KSksdm9pZCAwIT09dy5hbVBNJiZBKHcuYW1QTSwiY2xpY2siLChmdW5jdGlvbihlKXtJKGUpLE4oKX0pKX13LmNvbmZpZy5hbGxvd0lucHV0JiZBKHcuX2lucHV0LCJibHVyIix0ZSl9KCksKHcuc2VsZWN0ZWREYXRlcy5sZW5ndGh8fHcuY29uZmlnLm5vQ2FsZW5kYXIpJiYody5jb25maWcuZW5hYmxlVGltZSYmXyh3LmNvbmZpZy5ub0NhbGVuZGFyP3cubGF0ZXN0U2VsZWN0ZWREYXRlT2JqOnZvaWQgMCksYmUoITEpKSxrKCk7dmFyIHQ9L14oKD8hY2hyb21lfGFuZHJvaWQpLikqc2FmYXJpL2kudGVzdChuYXZpZ2F0b3IudXNlckFnZW50KTshdy5pc01vYmlsZSYmdCYmY2UoKSxwZSgib25SZWFkeSIpfSgpLHd9ZnVuY3Rpb24gayhlLHQpe2Zvcih2YXIgbj1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChlKS5maWx0ZXIoKGZ1bmN0aW9uKGUpe3JldHVybiBlIGluc3RhbmNlb2YgSFRNTEVsZW1lbnR9KSksYT1bXSxpPTA7aTxuLmxlbmd0aDtpKyspe3ZhciBvPW5baV07dHJ5e2lmKG51bGwhPT1vLmdldEF0dHJpYnV0ZSgiZGF0YS1mcC1vbWl0IikpY29udGludWU7dm9pZCAwIT09by5fZmxhdHBpY2tyJiYoby5fZmxhdHBpY2tyLmRlc3Ryb3koKSxvLl9mbGF0cGlja3I9dm9pZCAwKSxvLl9mbGF0cGlja3I9RShvLHR8fHt9KSxhLnB1c2goby5fZmxhdHBpY2tyKX1jYXRjaChlKXtjb25zb2xlLmVycm9yKGUpfX1yZXR1cm4gMT09PWEubGVuZ3RoP2FbMF06YX0idW5kZWZpbmVkIiE9dHlwZW9mIEhUTUxFbGVtZW50JiYidW5kZWZpbmVkIiE9dHlwZW9mIEhUTUxDb2xsZWN0aW9uJiYidW5kZWZpbmVkIiE9dHlwZW9mIE5vZGVMaXN0JiYoSFRNTENvbGxlY3Rpb24ucHJvdG90eXBlLmZsYXRwaWNrcj1Ob2RlTGlzdC5wcm90b3R5cGUuZmxhdHBpY2tyPWZ1bmN0aW9uKGUpe3JldHVybiBrKHRoaXMsZSl9LEhUTUxFbGVtZW50LnByb3RvdHlwZS5mbGF0cGlja3I9ZnVuY3Rpb24oZSl7cmV0dXJuIGsoW3RoaXNdLGUpfSk7dmFyIFQ9ZnVuY3Rpb24oZSx0KXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIGU\/ayh3aW5kb3cuZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChlKSx0KTplIGluc3RhbmNlb2YgTm9kZT9rKFtlXSx0KTprKGUsdCl9O3JldHVybiBULmRlZmF1bHRDb25maWc9e30sVC5sMTBucz17ZW46ZSh7fSxpKSxkZWZhdWx0OmUoe30saSl9LFQubG9jYWxpemU9ZnVuY3Rpb24odCl7VC5sMTBucy5kZWZhdWx0PWUoZSh7fSxULmwxMG5zLmRlZmF1bHQpLHQpfSxULnNldERlZmF1bHRzPWZ1bmN0aW9uKHQpe1QuZGVmYXVsdENvbmZpZz1lKGUoe30sVC5kZWZhdWx0Q29uZmlnKSx0KX0sVC5wYXJzZURhdGU9Qyh7fSksVC5mb3JtYXREYXRlPWIoe30pLFQuY29tcGFyZURhdGVzPU0sInVuZGVmaW5lZCIhPXR5cGVvZiBqUXVlcnkmJnZvaWQgMCE9PWpRdWVyeS5mbiYmKGpRdWVyeS5mbi5mbGF0cGlja3I9ZnVuY3Rpb24oZSl7cmV0dXJuIGsodGhpcyxlKX0pLERhdGUucHJvdG90eXBlLmZwX2luY3I9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyBEYXRlKHRoaXMuZ2V0RnVsbFllYXIoKSx0aGlzLmdldE1vbnRoKCksdGhpcy5nZXREYXRlKCkrKCJzdHJpbmciPT10eXBlb2YgZT9wYXJzZUludChlLDEwKTplKSl9LCJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93JiYod2luZG93LmZsYXRwaWNrcj1UKSxUfSkpOwovKiogL2pzL3ZhbmlsbGFqcy9mbGF0cGlja3IuZnIuanMgKiovCnZhciBfX19kMmNfZmxhdHBpY2tyZnJqc19jX29uPSIyMDI1LTA1LTIzIDE3OjA1OjE3IjsndXNlIHN0cmljdCc7dmFyIF9fX2QyY19mbGF0cGlja3JmcmpzX2Nfb249IjIwMjQtMDEtMzEgMTQ6MzI6NDYiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfZmxhdHBpY2tyZnJqc19jX29uPSIyMDIzLTAxLTEyIDExOjQxOjQ2IjsidXNlIHN0cmljdCI7X19fZDJjX2ZsYXRwaWNrcmZyanNfY19vbj0iMjAyMy0wMS0xMiAxMDo1MTozMCI7InVzZSBzdHJpY3QiO19fX2QyY19mbGF0cGlja3JmcmpzX2Nfb249IjIwMjEtMTItMjEgMTM6MzA6NTIiOyJ1c2Ugc3RyaWN0IjsKKGZ1bmN0aW9uKGIsYSl7Im9iamVjdCI9PT10eXBlb2YgZXhwb3J0cyYmInVuZGVmaW5lZCIhPT10eXBlb2YgbW9kdWxlP2EoZXhwb3J0cyk6ImZ1bmN0aW9uIj09PXR5cGVvZiBkZWZpbmUmJmRlZmluZS5hbWQ\/ZGVmaW5lKFsiZXhwb3J0cyJdLGEpOihiPSJ1bmRlZmluZWQiIT09dHlwZW9mIGdsb2JhbFRoaXM\/Z2xvYmFsVGhpczpifHxzZWxmLGEoYi5mcj17fSkpfSkodGhpcyxmdW5jdGlvbihiKXt2YXIgYT0idW5kZWZpbmVkIiE9PXR5cGVvZiB3aW5kb3cmJnZvaWQgMCE9PXdpbmRvdy5mbGF0cGlja3I\/d2luZG93LmZsYXRwaWNrcjp7bDEwbnM6e319LGM9e2ZpcnN0RGF5T2ZXZWVrOjEsd2Vla2RheXM6e3Nob3J0aGFuZDoiZGltIGx1biBtYXIgbWVyIGpldSB2ZW4gc2FtIi5zcGxpdCgiICIpLGxvbmdoYW5kOiJkaW1hbmNoZSBsdW5kaSBtYXJkaSBtZXJjcmVkaSBqZXVkaSB2ZW5kcmVkaSBzYW1lZGkiLnNwbGl0KCIgIil9LG1vbnRoczp7c2hvcnRoYW5kOiJqYW52IGbDqXZyIG1hcnMgYXZyIG1haSBqdWluIGp1aWwgYW\/Du3Qgc2VwdCBvY3Qgbm92IGTDqWMiLnNwbGl0KCIgIiksCmxvbmdoYW5kOiJqYW52aWVyIGbDqXZyaWVyIG1hcnMgYXZyaWwgbWFpIGp1aW4ganVpbGxldCBhb8O7dCBzZXB0ZW1icmUgb2N0b2JyZSBub3ZlbWJyZSBkw6ljZW1icmUiLnNwbGl0KCIgIil9LG9yZGluYWw6ZnVuY3Rpb24oZCl7cmV0dXJuIDE8ZD8iIjoiZXIifSxyYW5nZVNlcGFyYXRvcjoiIGF1ICIsd2Vla0FiYnJldmlhdGlvbjoiU2VtIixzY3JvbGxUaXRsZToiRMOpZmlsZXIgcG91ciBhdWdtZW50ZXIgbGEgdmFsZXVyIix0b2dnbGVUaXRsZToiQ2xpcXVlciBwb3VyIGJhc2N1bGVyIix0aW1lXzI0aHI6ITB9O2EubDEwbnMuZnI9YzthPWEubDEwbnM7Yi5GcmVuY2g9YztiLmRlZmF1bHQ9YTtPYmplY3QuZGVmaW5lUHJvcGVydHkoYiwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSl9KTsKLyoqIC9qcy9mci5uZXdjYXJzLmlubGluZS5qcyAqKi8KdmFyIGpzX2QyY19nZXRfdmFsPShqc19kMmNfZ2V0X3ZhbHx8ZnVuY3Rpb24oaWQpe3RyeXtyZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLnZhbHVlO31jYXRjaChleCl7aWYoY29uc29sZSYmY29uc29sZS5sb2cpY29uc29sZS5sb2coIlN5c3RlbSBmYWlsZWQgd2hpbGUgcmV0cmlldmluZyByZXBsYWNlbWVudCB2YWx1ZTogIitpZCxleCk7cmV0dXJuJyc7fX0pO3ZhciBpZGVudF80ODk2NDA0OWM1M2NiNDJjMTZmZWQxZThkZTBkMzM2Njt0cnl7ZnVuY3Rpb24gT3B0YW5vbldyYXBwZXIoKXt9fWNhdGNoKGV6ejEpe2lmKGNvbnNvbGUmJmNvbnNvbGUubG9nKQpjb25zb2xlLmxvZyhlenoxKTt9CnZhciBpZGVudF8zMjVlYzY4YWI1M2MzZjI0ODJjN2Y5ZWU1NTU4ZWExMzt0cnl7KGZ1bmN0aW9uKHcsZCxzLGwsaSl7d1tsXT13W2xdfHxbXTt3W2xdLnB1c2goeydndG0uc3RhcnQnOm5ldyBEYXRlKCkuZ2V0VGltZSgpLGV2ZW50OidndG0uanMnfSk7dmFyIGY9ZC5nZXRFbGVtZW50c0J5VGFnTmFtZShzKVswXSxqPWQuY3JlYXRlRWxlbWVudChzKSxkbD1sIT0nZGF0YUxheWVyJz8nJmw9JytsOicnO2ouYXN5bmM9dHJ1ZTtqLnNldEF0dHJpYnV0ZU5vZGUoZC5jcmVhdGVBdHRyaWJ1dGUoJ2RhdGEtb3QtaWdub3JlJykpO2ouc3JjPSdodHRwczovL3d3dy5nb29nbGV0YWdtYW5hZ2VyLmNvbS9ndG0uanM\/aWQ9JytpK2RsO2ouc2V0QXR0cmlidXRlTm9kZShkLmNyZWF0ZUF0dHJpYnV0ZSgnZGF0YS1vdC1pZ25vcmUnKSk7Zi5wYXJlbnROb2RlLmluc2VydEJlZm9yZShqLGYpO30pKHdpbmRvdyxkb2N1bWVudCwnc2NyaXB0JywnZGF0YUxheWVyJywnR1RNLU1ISEJQV0snKTt9Y2F0Y2goZXp6MSl7aWYoY29uc29sZSYmY29uc29sZS5sb2cpCmNvbnNvbGUubG9nKGV6ejEpO30KdmFyIGlkZW50X2ZkM2IzZDI5NDI2ZmNlZGU0NWRjMmNiYTM4ZWJmYmZiO3RyeXtEMkZUKHsibGl2ZSI6IlwvXC9hc3NldHMuYWRvYmVkdG0uY29tXC8yNDhkNjNjMmZmNmJcLzE4MWFkZDE1MmQwMFwvbGF1bmNoLWNmNWZlNGViMmI3Mi5taW4uanMiLCJzdGFnaW5nIjoiXC9cL2Fzc2V0cy5hZG9iZWR0bS5jb21cLzI0OGQ2M2MyZmY2YlwvMTgxYWRkMTUyZDAwXC9sYXVuY2gtOThiYTExZDEyNGNkLXN0YWdpbmcubWluLmpzIn0seyJ1c2VyTGFuZ3VhZ2UiOiJmcmUiLCJwYUNvZGUiOiJCMjUwMyIsImNsaWVudCI6ImZvcmQiLCJzaXRlIjoiZGM6ZDJjOmNhIiwicGFnZUlkIjoic2hvd3Jvb20ifSk7fWNhdGNoKGV6ejEpe2lmKGNvbnNvbGUmJmNvbnNvbGUubG9nKQpjb25zb2xlLmxvZyhlenoxKTt9CnZhciBpZGVudF81NmRlNjdjNzQ0MThhOTdhOGQ0MzQ0MjZjYWVjM2FlYzt0cnl7RDJBU0MoeyJ1c2VyTGFuZ3VhZ2UiOiJmcmUiLCJwYUNvZGUiOiJCMjUwMyIsImNsaWVudCI6ImZvcmQiLCJwYWdlSWQiOiJzaG93cm9vbSIsIm9lbUluZm8iOnsib2VtRGVhbGVyQ29kZSI6IkIyNTAzIiwiMCI6IkIyNTAzIiwib2VtIjoiRm9yZCBEaXJlY3QiLCIxIjoiRm9yZCBEaXJlY3QifSwiZGVhbGVyX25hbWUiOiIiLCJmb3JtTWFwIjp7IkFERkJ1cmxpbmd0b25fQ2VudHJlXy1fRVZfVG91cl8tX0RyaXZlZmUiOnsiRlJFTkNIIjoiRGVtYW5kZSBkZSBCdXJsaW5ndG9uIENlbnRyZSAtIEVWIFRvdXIgLSBEcml2ZWZlc3QgKyBLaWEgU2lnbiBVcCBXYXJtIExlYWQ6IENvbnRhY3QgRGVhbGVyIiwiRU5HTElTSCI6IkxlYWQgRnJvbSBCdXJsaW5ndG9uIENlbnRyZSAtIEVWIFRvdXIgLSBEcml2ZWZlc3QgKyBLaWEgU2lnbiBVcCBXYXJtIExlYWQ6IENvbnRhY3QgRGVhbGVyIn0sIkFERmNhbXBiZWxscml2ZXJjYXJzLmNhXyhEMkNfTWVkaWEpXy1fTGUiOnsiRlJFTkNIIjoiRGVtYW5kZSBkZSBjYW1wYmVsbHJpdmVyY2Fycy5jYSAoRDJDIE1lZGlhKSAtIExlYWQ6IFZlaGljbGUgQXZhaWxhYmlsaXR5IFtHb29nbGUgLSBVc2VkICAgTG9jX3BoeXNpY2FsPTkwMDE2MTNdIiwiRU5HTElTSCI6IkxlYWQgRnJvbSBjYW1wYmVsbHJpdmVyY2Fycy5jYSAoRDJDIE1lZGlhKSAtIExlYWQ6IFZlaGljbGUgQXZhaWxhYmlsaXR5IFtHb29nbGUgLSBVc2VkICAgTG9jX3BoeXNpY2FsPTkwMDE2MTNdIn0sIkFERmNhcm1hdGNoZXIuY2FfKEQyQ19NZWRpYSlfLV9MZWFkOl9BcHAiOnsiRlJFTkNIIjoiRGVtYW5kZSBkZSBjYXJtYXRjaGVyLmNhIChEMkMgTWVkaWEpIC0gTGVhZDogQXBwb2ludG1lbnQgcmVxdWVzdCBbR29vZ2xlIC0gT3JnYW5pY10iLCJFTkdMSVNIIjoiTGVhZCBGcm9tIGNhcm1hdGNoZXIuY2EgKEQyQyBNZWRpYSkgLSBMZWFkOiBBcHBvaW50bWVudCByZXF1ZXN0IFtHb29nbGUgLSBPcmdhbmljXSJ9LCJBREZjYXJtYXRjaGVyLmNhXyhEMkNfTWVkaWEpXy1fTGVhZDpfQ2FyIjp7IkZSRU5DSCI6IkRlbWFuZGUgZGUgY2FybWF0Y2hlci5jYSAoRDJDIE1lZGlhKSAtIExlYWQ6IENhckZheCByZXF1ZXN0IFtHb29nbGUgLSBPcmdhbmljXSIsIkVOR0xJU0giOiJMZWFkIEZyb20gY2FybWF0Y2hlci5jYSAoRDJDIE1lZGlhKSAtIExlYWQ6IENhckZheCByZXF1ZXN0IFtHb29nbGUgLSBPcmdhbmljXSJ9LCJBREZjYXJtYXRjaGVyLmNhXyhEMkNfTWVkaWEpXy1fTGVhZDpfT2ZmIjp7IkZSRU5DSCI6IkRlbWFuZGUgZGUgY2FybWF0Y2hlci5jYSAoRDJDIE1lZGlhKSAtIExlYWQ6IE9mZmVyIG9uIGEgdmVoaWNsZSBbR29vZ2xlIC0gT3JnYW5pY10iLCJFTkdMSVNIIjoiTGVhZCBGcm9tIGNhcm1hdGNoZXIuY2EgKEQyQyBNZWRpYSkgLSBMZWFkOiBPZmZlciBvbiBhIHZlaGljbGUgW0dvb2dsZSAtIE9yZ2FuaWNdIn0sIkFERmNhcm1hdGNoZXIuY2FfKEQyQ19NZWRpYSlfLV9MZWFkOl9QREYiOnsiRlJFTkNIIjoiRGVtYW5kZSBkZSBjYXJtYXRjaGVyLmNhIChEMkMgTWVkaWEpIC0gTGVhZDogUERGIHJlcXVlc3QgLSBWZWhpY2xlIGluIGludmVudG9yeSBbR29vZ2xlIC0gT3JnYW5pY10iLCJFTkdMSVNIIjoiTGVhZCBGcm9tIGNhcm1hdGNoZXIuY2EgKEQyQyBNZWRpYSkgLSBMZWFkOiBQREYgcmVxdWVzdCAtIFZlaGljbGUgaW4gaW52ZW50b3J5IFtHb29nbGUgLSBPcmdhbmljXSJ9LCJBREZjYXJtYXRjaGVyLmNhXyhEMkNfTWVkaWEpXy1fTGVhZDpfUmVxIjp7IkZSRU5DSCI6IkRlbWFuZGUgZGUgY2FybWF0Y2hlci5jYSAoRDJDIE1lZGlhKSAtIExlYWQ6IFJlcXVlc3QgZm9yIGZpbmFuY2luZyAoTXVsdGlzdGVwKSBbR29vZ2xlIC0gT3JnYW5pY10iLCJFTkdMSVNIIjoiTGVhZCBGcm9tIGNhcm1hdGNoZXIuY2EgKEQyQyBNZWRpYSkgLSBMZWFkOiBSZXF1ZXN0IGZvciBmaW5hbmNpbmcgKE11bHRpc3RlcCkgW0dvb2dsZSAtIE9yZ2FuaWNdIn0sIkFERmNhcm1hdGNoZXIuY2FfKEQyQ19NZWRpYSlfLV9MZWFkOl9TZXIiOnsiRlJFTkNIIjoiRGVtYW5kZSBkZSBjYXJtYXRjaGVyLmNhIChEMkMgTWVkaWEpIC0gTGVhZDogU2VydmljZSBhcHBvaW50bWVudCByZXF1ZXN0IFtGYWNlYm9vayAtIE9yZ2FuaWNdIiwiRU5HTElTSCI6IkxlYWQgRnJvbSBjYXJtYXRjaGVyLmNhIChEMkMgTWVkaWEpIC0gTGVhZDogU2VydmljZSBhcHBvaW50bWVudCByZXF1ZXN0IFtGYWNlYm9vayAtIE9yZ2FuaWNdIn0sIkFERmNhcm1hdGNoZXIuY2FfKEQyQ19NZWRpYSlfLV9MZWFkOl9UcmEiOnsiRlJFTkNIIjoiRGVtYW5kZSBkZSBjYXJtYXRjaGVyLmNhIChEMkMgTWVkaWEpIC0gTGVhZDogVHJhZGUtaW4gcmVxdWVzdCBbR29vZ2xlIC0gT3JnYW5pY10iLCJFTkdMSVNIIjoiTGVhZCBGcm9tIGNhcm1hdGNoZXIuY2EgKEQyQyBNZWRpYSkgLSBMZWFkOiBUcmFkZS1pbiByZXF1ZXN0IFtHb29nbGUgLSBPcmdhbmljXSJ9LCJBREZjYXJtYXRjaGVyLmNhXyhEMkNfTWVkaWEpXy1fTGVhZDpfVmVoIjp7IkZSRU5DSCI6IkRlbWFuZGUgZGUgY2FybWF0Y2hlci5jYSAoRDJDIE1lZGlhKSAtIExlYWQ6IFZlaGljbGUgQXZhaWxhYmlsaXR5IFtHb29nbGUgLSBPcmdhbmljXSIsIkVOR0xJU0giOiJMZWFkIEZyb20gY2FybWF0Y2hlci5jYSAoRDJDIE1lZGlhKSAtIExlYWQ6IFZlaGljbGUgQXZhaWxhYmlsaXR5IFtHb29nbGUgLSBPcmdhbmljXSJ9LCJBREZjYXJtYXRjaGVyLmNhXyhEMkNfTWVkaWFfLV9PcmdhbmljKV8tIjp7IkZSRU5DSCI6IkRlbWFuZGUgZGUgY2FybWF0Y2hlci5jYSAoRDJDIE1lZGlhIC0gT3JnYW5pYykgLSBMZWFkOiBWZWhpY2xlIEF2YWlsYWJpbGl0eSBbT3JnYW5pY10iLCJFTkdMSVNIIjoiTGVhZCBGcm9tIGNhcm1hdGNoZXIuY2EgKEQyQyBNZWRpYSAtIE9yZ2FuaWMpIC0gTGVhZDogVmVoaWNsZSBBdmFpbGFiaWxpdHkgW09yZ2FuaWNdIn0sIkFERmRhbmllbHBhcmVkb2RnZS5jb21fKHBhcl9EMkNfTWVkaWEpXy0iOnsiRlJFTkNIIjoiRGVtYW5kZSBkZSBkYW5pZWxwYXJlZG9kZ2UuY29tIChwYXIgRDJDIE1lZGlhKSAtIEQyQyBNZWRpYSAtIExlYWQgOiBWb2lyIGwnb2ZmcmUgY291cG9uIFNSUCBbR29vZ2xlIC0gTmV1Zi12bGFdIiwiRU5HTElTSCI6IkxlYWQgRnJvbSBkYW5pZWxwYXJlZG9kZ2UuY29tIChwYXIgRDJDIE1lZGlhKSAtIEQyQyBNZWRpYSAtIExlYWQgOiBWb2lyIGwnb2ZmcmUgY291cG9uIFNSUCBbR29vZ2xlIC0gTmV1Zi12bGFdIn0sIkFERmRlbW9jcm0uZDJjbWVkaWEuY2FfKEQyQ19NZWRpYV8tX09yZ2EiOnsiRlJFTkNIIjoiRGVtYW5kZSBkZSBkZW1vY3JtLmQyY21lZGlhLmNhIChEMkMgTWVkaWEgLSBPcmdhbmljKSAtIExlYWQ6IFJlcXVlc3QgZm9yIGEgcmViYXRlIGNvdXBvbiAoaW52ZW50b3J5IHZlaGljbGUpIFtPcmdhbmljXSIsIkVOR0xJU0giOiJMZWFkIEZyb20gZGVtb2NybS5kMmNtZWRpYS5jYSAoRDJDIE1lZGlhIC0gT3JnYW5pYykgLSBMZWFkOiBSZXF1ZXN0IGZvciBhIHJlYmF0ZSBjb3Vwb24gKGludmVudG9yeSB2ZWhpY2xlKSBbT3JnYW5pY10ifSwiQURGTW9uX3NpdGVfLV9EMkNfTWVkaWFfLV9MZWFkXzpfRGVtYW5kZSI6eyJGUkVOQ0giOiJEZW1hbmRlIGRlIE1vbiBzaXRlIC0gRDJDIE1lZGlhIC0gTGVhZCA6IERlbWFuZGUgZGUgdmFsZXVyIGQnJkF0aWxkZTsmY29weTtjaGFuZ2UgKFNNUykgW0dvb2dsZSAtIE9yZ2FuaWNdIiwiRU5HTElTSCI6IkxlYWQgRnJvbSBNb24gc2l0ZSAtIEQyQyBNZWRpYSAtIExlYWQgOiBEZW1hbmRlIGRlIHZhbGV1ciBkJyZBdGlsZGU7JmNvcHk7Y2hhbmdlIChTTVMpIFtHb29nbGUgLSBPcmdhbmljXSJ9LCJBREZwYWxsYWRpbm9hdXRvZ3JvdXAuY29tXyhEMkNfTWVkaWEpXy1fIjp7IkZSRU5DSCI6IkRlbWFuZGUgZGUgcGFsbGFkaW5vYXV0b2dyb3VwLmNvbSAoRDJDIE1lZGlhKSAtIExlYWQ6IENhckZheCByZXF1ZXN0IFtHb29nbGUgLSBVc2VkLXZsYSAgIExvY19waHlzaWNhbD05MDAxMTQxXSIsIkVOR0xJU0giOiJMZWFkIEZyb20gcGFsbGFkaW5vYXV0b2dyb3VwLmNvbSAoRDJDIE1lZGlhKSAtIExlYWQ6IENhckZheCByZXF1ZXN0IFtHb29nbGUgLSBVc2VkLXZsYSAgIExvY19waHlzaWNhbD05MDAxMTQxXSJ9LCJBREZwYWxsYWRpbm9hdXRvZ3JvdXAuY29tXyhEMkNfTWVkaWEpX18tIjp7IkZSRU5DSCI6IkRlbWFuZGUgZGUgcGFsbGFkaW5vYXV0b2dyb3VwLmNvbSAoRDJDIE1lZGlhKSAgLSBMZWFkOiBSZXF1ZXN0IGZvciBjb250YWN0IFtGYWNlYm9vayAtIFVzZWQgWyBLZXl3b3JkOiBVc2VkK1RydWNrXSAgTG9jXyIsIkVOR0xJU0giOiJMZWFkIEZyb20gcGFsbGFkaW5vYXV0b2dyb3VwLmNvbSAoRDJDIE1lZGlhKSAgLSBMZWFkOiBSZXF1ZXN0IGZvciBjb250YWN0IFtGYWNlYm9vayAtIFVzZWQgWyBLZXl3b3JkOiBVc2VkK1RydWNrXSAgTG9jX3AifSwiQURGcGFsbGFkaW5vYXV0b2dyb3VwLmNvbV8oRDJDX19NZWRpYSlfLSI6eyJGUkVOQ0giOiJEZW1hbmRlIGRlIHBhbGxhZGlub2F1dG9ncm91cC5jb20gKEQyQyAgTWVkaWEpIC0gTGVhZDogVHJhZGUtaW4gcmVxdWVzdCBbR29vZ2xlIC0gVHJhZGUgICBMb2NfcGh5c2ljYWw9OTAwMTExOF0iLCJFTkdMSVNIIjoiTGVhZCBGcm9tIHBhbGxhZGlub2F1dG9ncm91cC5jb20gKEQyQyAgTWVkaWEpIC0gTGVhZDogVHJhZGUtaW4gcmVxdWVzdCBbR29vZ2xlIC0gVHJhZGUgICBMb2NfcGh5c2ljYWw9OTAwMTExOF0ifSwiQURGcGFsbGFkaW5vYXV0b2dyb3VwLmNvbV9fKEQyQ19NZWRpYSlfLSI6eyJGUkVOQ0giOiJEZW1hbmRlIGRlIHBhbGxhZGlub2F1dG9ncm91cC5jb20gIChEMkMgTWVkaWEpIC0gTGVhZDogVHJhZGUtaW4gcmVxdWVzdCBbR29vZ2xlIC0gVHJhZGUgICBMb2NfcGh5c2ljYWw9OTAwMTEzM10iLCJFTkdMSVNIIjoiTGVhZCBGcm9tIHBhbGxhZGlub2F1dG9ncm91cC5jb20gIChEMkMgTWVkaWEpIC0gTGVhZDogVHJhZGUtaW4gcmVxdWVzdCBbR29vZ2xlIC0gVHJhZGUgICBMb2NfcGh5c2ljYWw9OTAwMTEzM10ifSwiQURGcGFsbGFkaW5vc3ViYXJ1LmNhXyhwYXJfRDJDX01lZGlhXy1fTyI6eyJGUkVOQ0giOiJEZW1hbmRlIGRlIHBhbGxhZGlub3N1YmFydS5jYSAocGFyIEQyQyBNZWRpYSAtIE9yZ2FuaWMpIC0gRDJDIE1lZGlhIC0gTGVhZDogUERGIGJyb2NodXJlIHJlcXVlc3QgW09yZ2FuaWNdIiwiRU5HTElTSCI6IkxlYWQgRnJvbSBwYWxsYWRpbm9zdWJhcnUuY2EgKHBhciBEMkMgTWVkaWEgLSBPcmdhbmljKSAtIEQyQyBNZWRpYSAtIExlYWQ6IFBERiBicm9jaHVyZSByZXF1ZXN0IFtPcmdhbmljXSJ9LCJBREZTY2FyYm9yb3VnaF9Ub3duX0NlbnRyZV8tX0VWX1RvdXJfLV9EIjp7IkZSRU5DSCI6IkRlbWFuZGUgZGUgU2NhcmJvcm91Z2ggVG93biBDZW50cmUgLSBFViBUb3VyIC0gRHJpdmVmZXN0ICsgS2lhIFNpZ24gVXAgV2FybSBMZWFkOiBDb250YWN0IERlYWxlciIsIkVOR0xJU0giOiJMZWFkIEZyb20gU2NhcmJvcm91Z2ggVG93biBDZW50cmUgLSBFViBUb3VyIC0gRHJpdmVmZXN0ICsgS2lhIFNpZ24gVXAgV2FybSBMZWFkOiBDb250YWN0IERlYWxlciJ9LCJBREZTaGVyd2F5X0dhcmRlbnNfLV9FVl9Ub3VyXy1fRHJpdmVmZXN0Ijp7IkZSRU5DSCI6IkRlbWFuZGUgZGUgU2hlcndheSBHYXJkZW5zIC0gRVYgVG91ciAtIERyaXZlZmVzdCBTaWduIFVwIFdhcm0gTGVhZDogQ29udGFjdCBEZWFsZXIiLCJFTkdMSVNIIjoiTGVhZCBGcm9tIFNoZXJ3YXkgR2FyZGVucyAtIEVWIFRvdXIgLSBEcml2ZWZlc3QgU2lnbiBVcCBXYXJtIExlYWQ6IENvbnRhY3QgRGVhbGVyIn0sIkFERlNxdWFyZV9PbmVfLV9FVl9Ub3VyXy1fRHJpdmVmZXN0XytfS2kiOnsiRlJFTkNIIjoiRGVtYW5kZSBkZSBTcXVhcmUgT25lIC0gRVYgVG91ciAtIERyaXZlZmVzdCArIEtpYSBTaWduIFVwIFdhcm0gTGVhZDogQ29udGFjdCBEZWFsZXIiLCJFTkdMSVNIIjoiTGVhZCBGcm9tIFNxdWFyZSBPbmUgLSBFViBUb3VyIC0gRHJpdmVmZXN0ICsgS2lhIFNpZ24gVXAgV2FybSBMZWFkOiBDb250YWN0IERlYWxlciJ9LCJBREZTcXVhcmVfT25lXy1fRVZfVG91cl8tX0tpYV9TaWduX1VwX0hvIjp7IkZSRU5DSCI6IkRlbWFuZGUgZGUgU3F1YXJlIE9uZSAtIEVWIFRvdXIgLSBLaWEgU2lnbiBVcCBIb3QgTGVhZDogQ29udGFjdCBEZWFsZXIiLCJFTkdMSVNIIjoiTGVhZCBGcm9tIFNxdWFyZSBPbmUgLSBFViBUb3VyIC0gS2lhIFNpZ24gVXAgSG90IExlYWQ6IENvbnRhY3QgRGVhbGVyIn0sIkFERlVwcGVyX0NhbmFkYV9NYWxsXy1fRVZfVG91cl8tX0RyaXZlZmUiOnsiRlJFTkNIIjoiRGVtYW5kZSBkZSBVcHBlciBDYW5hZGEgTWFsbCAtIEVWIFRvdXIgLSBEcml2ZWZlc3QgU2lnbiBVcCBXYXJtIExlYWQ6IENvbnRhY3QgRGVhbGVyIiwiRU5HTElTSCI6IkxlYWQgRnJvbSBVcHBlciBDYW5hZGEgTWFsbCAtIEVWIFRvdXIgLSBEcml2ZWZlc3QgU2lnbiBVcCBXYXJtIExlYWQ6IENvbnRhY3QgRGVhbGVyIn0sIkFJQ2hhdGJvdExlYWQiOnsiRlJFTkNIIjoiTGVhZCA6IENoYXRCb3QgSUEiLCJFTkdMSVNIIjoiTGVhZDogQ2hhdEJvdCBBSSJ9LCJBdmFpbGFiaWxpdHlVc2VkIjp7IkZSRU5DSCI6IkxlYWQ6IERpc3BvbmliaWxpdGUgZCd1biB2ZWhpY3VsZSIsIkVOR0xJU0giOiJMZWFkOiBWZWhpY2xlIEF2YWlsYWJpbGl0eSJ9LCJCYW5uZXJGb3JtIjp7IkZSRU5DSCI6IkxlYWQ6IERlbWFuZGUgZGUgZm9ybSBiYW5uZXIiLCJFTkdMSVNIIjoiTGVhZDogQmFubmVyIEZvcm0gUmVxdWVzdCJ9LCJCZXN0UHJpY2VSZXF1ZXN0TmV3Ijp7IkZSRU5DSCI6IkxlYWQgOiBEZW1hbmRlIGRlICBtZWlsbGV1ciBwcml4ICh2ZWhpY3VsZSBuZXVmKSIsIkVOR0xJU0giOiJMZWFkOiBSZXF1ZXN0IGZvciBhIGJlc3QgcHJpY2UgKG5ldyB2ZWhpY2xlKSJ9LCJCb2R5U2hvcCI6eyJGUkVOQ0giOiJMZWFkIDogRGVtYW5kZSBkZSByZW5kZXotdm91cyBlbiBjYXJvc3NlcmllIiwiRU5HTElTSCI6IkxlYWQ6IFZlaGljbGUgYm9keSBzaG9wIGFwcG9pbnRtZW50IHJlcXVlc3QifSwiQnJvY2h1cmVzIjp7IkZSRU5DSCI6IkxlYWQgOiBEZW1hbmRlIGRlIGJyb2NodXJlIiwiRU5HTElTSCI6IkxlYWQgOiBCcm9jaHVyZSByZXF1ZXN0In0sIkJyb2NodXJlc1JlcXVlc3QiOnsiRlJFTkNIIjoiTGVhZCA6IERlbWFuZGUgZGUgYnJvY2h1cmUiLCJFTkdMSVNIIjoiTGVhZCA6IEJyb2NodXJlIHJlcXVlc3QifSwiQnVpbGRBbmRQcmljZV9TYXZlIjp7IkZSRU5DSCI6IkxlYWQ6IENvbmZpZ3VyYXRpb24gZCd1biB2ZWhpY3VsZSBuZXVmIiwiRU5HTElTSCI6IkxlYWQ6IE5ldyBWZWhpY2xlIENvbmZpZ3VyYXRpb24gKEJ1aWxkICYgUHJpY2UpIn0sIkJ1aWxkQW5kUHJpY2VfU3RvY2siOnsiRlJFTkNIIjoiTGVhZDogRGlzcG9uaWJpbGl0ZSBkJ3VuIHZlaGljdWxlIiwiRU5HTElTSCI6IkxlYWQ6IFZlaGljbGUgQXZhaWxhYmlsaXR5In0sIkNhcnByb29mTWFpbCI6eyJGUkVOQ0giOiJMZWFkIDogRGVtYW5kZSBkZSBDYXJGYXgiLCJFTkdMSVNIIjoiTGVhZDogQ2FyRmF4IHJlcXVlc3QifSwiQ29udGFjdFJlcXVlc3QiOnsiRlJFTkNIIjoiTGVhZCA6IERlbWFuZGUgZGUgY29udGFjdCIsIkVOR0xJU0giOiJMZWFkOiBSZXF1ZXN0IGZvciBjb250YWN0In0sIkNvbnRhY3RVc1JlcXVlc3QiOnsiRlJFTkNIIjoiTGVhZCA6IERlbWFuZGUgZGUgY29udGFjdCIsIkVOR0xJU0giOiJMZWFkOiBSZXF1ZXN0IGZvciBjb250YWN0In0sIkNvbnRhY3RWaXNpdFJlcXVlc3QiOnsiRlJFTkNIIjoiTGVhZCA6IERlbWFuZGUgZGUgY29udGFjdCBWZW50ZSIsIkVOR0xJU0giOiJMZWFkOiBSZXF1ZXN0IGZvciBjb250YWN0IFNhbGVzIn0sIkNvbnRhY3RWaXNpdFJlcXVlc3ROZXciOnsiRlJFTkNIIjoiTGVhZCA6IERlbWFuZGUgZGUgY29udGFjdCBWZW50ZSIsIkVOR0xJU0giOiJMZWFkOiBSZXF1ZXN0IGZvciBjb250YWN0IFNhbGVzIn0sIkNyZWRpdEJvb3N0TXVsdGkiOnsiRlJFTkNIIjoiTGVhZDogRGVtYW5kZSBkZSBwcmVxdWFsaWZpY2F0aW9uIGRlIGNyZWRpdCIsIkVOR0xJU0giOiJMZWFkOiBSZXF1ZXN0IGZvciBDcmVkaXQgUHJlLVF1YWxpZmljYXRpb24ifSwiQ3JlZGl0TXVsdGlzdGVwUmVxdWVzdCI6eyJGUkVOQ0giOiJMZWFkIDogRGVtYW5kZSBkZSBmaW5hbmNlbWVudCAoUGx1c2lldXJzIGV0YXBlcykiLCJFTkdMSVNIIjoiTGVhZDogUmVxdWVzdCBmb3IgZmluYW5jaW5nIChNdWx0aXN0ZXApIn0sIkNyZWRpdE11bHRpc3RlcFJlcXVlc3QybmRDaGFuY2UiOnsiRlJFTkNIIjoiTGVhZCA6IERlbWFuZGUgZGUgZmluYW5jZW1lbnQgKFBsdXNpZXVycyBldGFwZXMgMmUgY2hhbmNlKSIsIkVOR0xJU0giOiJMZWFkOiBSZXF1ZXN0IGZvciBmaW5hbmNpbmcgKE11bGlzdGVwIDJuZCBjaGFuY2UpIn0sIkNyZWRpdE11bHRpc3RlcFJlcXVlc3RJbnN0YW50Ijp7IkZSRU5DSCI6IkxlYWQ6IEFwcHJvYmF0aW9uIGRlIGNyZWRpdCBpbnN0YW50YW5lZSIsIkVOR0xJU0giOiJMZWFkOiBJbnN0YW50IENyZWRpdCBBcHByb3ZhbCJ9LCJDcmVkaXRSZXF1ZXN0Ijp7IkZSRU5DSCI6IkxlYWQgOiBEZW1hbmRlIGRlIGZpbmFuY2VtZW50IiwiRU5HTElTSCI6IkxlYWQ6IFJlcXVlc3QgZm9yIGZpbmFuY2luZyJ9LCJDcmVkaXRSZXF1ZXN0TW9iaWxlIjp7IkZSRU5DSCI6IkxlYWQgOiBEZW1hbmRlIGRlIGZpbmFuY2VtZW50IiwiRU5HTElTSCI6IkxlYWQ6IFJlcXVlc3QgZm9yIGZpbmFuY2luZyJ9LCJDcmVkaXRSZXF1ZXN0TW9iaWxlRnVsbCI6eyJGUkVOQ0giOiJMZWFkOiBSZXF1ZXN0IGZvciBmaW5hbmNpbmciLCJFTkdMSVNIIjoiTGVhZDogUmVxdWVzdCBmb3IgZmluYW5jaW5nIn0sIkNyZWRpdFJlcXVlc3RfU2hvcnQiOnsiRlJFTkNIIjoiTGVhZCA6IERlbWFuZGUgZGUgZmluYW5jZW1lbnQgKHZlcnNpb24gY291cnRlKSIsIkVOR0xJU0giOiJMZWFkIDogQ3JlZGl0IGFwcGxpY2F0aW9uIChzaG9ydCB2ZXJzaW9uKSJ9LCJEZWFsZXJBcHBvaW50bWVudCI6eyJGUkVOQ0giOiJMZWFkIDogRGVtYW5kZSBkZSByZW5kZXotdm91cyIsIkVOR0xJU0giOiJMZWFkOiBBcHBvaW50bWVudCByZXF1ZXN0In0sIkRpc2NvdmVyT2ZmZXIiOnsiRlJFTkNIIjoiTGVhZCA6IFZvaXIgbCdvZmZyZSBjb3Vwb24gU1JQIiwiRU5HTElTSCI6IkxlYWQ6IFNlZSBPZmZlciBDb3Vwb24gaW4gU1JQIn0sIkVzdGhldGljUmVxdWVzdCI6eyJGUkVOQ0giOiJMZWFkOiBEZW1hbmRlIGRlIHJlbmRlei12b3VzIGEgbCdlc3RoZXRxdWUgZXQgbGF2ZS1hdXRvIiwiRU5HTElTSCI6IkxlYWQ6IFZlaGljbGUgZXN0aGV0aWMgYW5kIGNhciB3YXNoIGFwcG9pbnRtZW50IHJlcXVlc3QifSwiZmFjZWJvb2tDb25uZWN0Ijp7IkZSRU5DSCI6IkxlYWQ6IFJhYmFpcyBGYWNlYm9vayIsIkVOR0xJU0giOiJMZWFkOiBGYWNlYm9vayBSZWJhdGUifSwiRmluZFZlaGljbGUiOnsiRlJFTkNIIjoiTGVhZCA6IERlbWFuZGUgZGUgcmVjaGVyY2hlIGRlIHZlaGljdWxlIiwiRU5HTElTSCI6IkxlYWQ6IFJlcXVlc3QgdG8gZmluZCBhIHByZS1vd25lZCB2ZWhpY2xlIn0sImhlYWRlclNlcnZpY2UiOnsiRlJFTkNIIjoiTGVhZCA6IERlbWFuZGUgZGUgcmVuZGV6LXZvdXMgYXUgc2VydmljZSBFeHByZXNzIiwiRU5HTElTSCI6IkxlYWQ6IFNlcnZpY2UgYXBwb2ludG1lbnQgcmVxdWVzdCBFeHByZXNzIn0sIk1ha2VPZmZlciI6eyJGUkVOQ0giOiJMZWFkIDogT2ZmcmUgZCdhY2hhdCBzdXIgdW4gdmVoaWN1bGUiLCJFTkdMSVNIIjoiTGVhZDogT2ZmZXIgb24gYSB2ZWhpY2xlIn0sIk1ha2VPZmZlck5ldyI6eyJGUkVOQ0giOiJMZWFkIDogT2ZmcmUgZCdhY2hhdCBzdXIgdW4gdmVoaWN1bGUiLCJFTkdMSVNIIjoiTGVhZDogT2ZmZXIgb24gYSB2ZWhpY2xlIn0sIm1lbnVTZXJ2aWNlIjp7IkZSRU5DSCI6IkxlYWQgOiBEZW1hbmRlIGRlIHJlbmRlei12b3VzIGF1IHNlcnZpY2UgRXhwcmVzcyIsIkVOR0xJU0giOiJMZWFkOiBTZXJ2aWNlIGFwcG9pbnRtZW50IHJlcXVlc3QgRXhwcmVzcyJ9LCJNb250aGx5UGF5bWVudHMiOnsiRlJFTkNIIjoiRGVtYW5kZSBkZSBtZW5zdWFsaXRlcyIsIkVOR0xJU0giOiJSZXF1ZXN0IGZvciBtb250aGx5IHBheW1lbnRzIn0sIk1vbnRobHlQYXltZW50c19ORVciOnsiRlJFTkNIIjoiRGVtYW5kZSBkZSBtZW5zdWFsaXRlcyIsIkVOR0xJU0giOiJSZXF1ZXN0IGZvciBtb250aGx5IHBheW1lbnRzIn0sIk1vbnRobHlQYXltZW50c19TTVMiOnsiRlJFTkNIIjoiRGVtYW5kZSBkZSBtZW5zdWFsaXRlcyAtIFNNUyIsIkVOR0xJU0giOiJSZXF1ZXN0IGZvciBtb250aGx5IHBheW1lbnRzIC0gU01TIn0sIk1vbnRobHlQYXltZW50c19TTVNfTkVXIjp7IkZSRU5DSCI6IkRlbWFuZGUgZGUgbWVuc3VhbGl0ZXMgLSBTTVMiLCJFTkdMSVNIIjoiUmVxdWVzdCBmb3IgbW9udGhseSBwYXltZW50cyAtIFNNUyJ9LCJQYXJ0c1JlcXVlc3QiOnsiRlJFTkNIIjoiTGVhZCA6IERlbWFuZGUgZGUgY29tbWFuZGUgcGkmZWdyYXZlO2NlIiwiRU5HTElTSCI6IkxlYWQ6IFJlcXVlc3QgZm9yIHZlaGljbGUgcGFydHMifSwiUGhvdG9SZXF1ZXN0Ijp7IkZSRU5DSCI6IkxlYWQ6IERlbWFuZGUgZGUgcGhvdG9zIiwiRU5HTElTSCI6IkxlYWQ6IFBob3RvIHJlcXVlc3QifSwiUG9wVXBJbnN0YW50UmViYXRlIjp7IkZSRU5DSCI6IkxlYWQ6IERlbWFuZGUgZGUgUmFiYWlzIEluc3RhbnRhbmUiLCJFTkdMSVNIIjoiTGVhZDogSW5zdGFudCBSZWJhdGUgcmVxdWVzdCJ9LCJQb3BVcEluc3RhbnRSZWJhdGUzIjp7IkZSRU5DSCI6IkxlYWQ6IERlbWFuZGUgZGUgUmFiYWlzIEluc3RhbnRhbmUiLCJFTkdMSVNIIjoiTGVhZDogSW5zdGFudCBSZWJhdGUgcmVxdWVzdCJ9LCJQb3BVcEluc3RhbnRSZWJhdGVBQSI6eyJGUkVOQ0giOiJMZWFkOiBEZW1hbmRlIGRlIFJhYmFpcyBJbnN0YW50YW5lIiwiRU5HTElTSCI6IkxlYWQ6IEluc3RhbnQgUmViYXRlIHJlcXVlc3QifSwiUHJpY2VSZXF1ZXN0Ijp7IkZSRU5DSCI6IkxlYWQgOiBEZW1hbmRlIGRlIHByaXgiLCJFTkdMSVNIIjoiTGVhZDogUHJpY2UgcmVxdWVzdCJ9LCJQcmljZVJlcXVlc3ROZXciOnsiRlJFTkNIIjoiTGVhZCA6IERlbWFuZGUgZGUgcHJpeCIsIkVOR0xJU0giOiJMZWFkOiBQcmljZSByZXF1ZXN0In0sIlByaWNlVmVoaWNsZSI6eyJGUkVOQ0giOiJMZWFkIDogRGVtYW5kZSBkZSB2YWxldXIgZCdlY2hhbmdlIiwiRU5HTElTSCI6IkxlYWQ6IFRyYWRlLWluIHJlcXVlc3QifSwiUHJpY2VWZWhpY2xlQWNjdXRyYWRlIjp7IkZSRU5DSCI6IkxlYWQgOiBEZW1hbmRlIGRlIHZhbGV1ciBkJ2VjaGFuZ2UiLCJFTkdMSVNIIjoiTGVhZCA6IFRyYWRlLWluIHJlcXVlc3QifSwiUHJpY2VWZWhpY2xlTmV3Ijp7IkZSRU5DSCI6IkxlYWQgOiBEZW1hbmRlIGRlIHZhbGV1ciBkJ2VjaGFuZ2UiLCJFTkdMSVNIIjoiTGVhZDogVHJhZGUtaW4gcmVxdWVzdCJ9LCJRdWlja0VtYWlsIjp7IkZSRU5DSCI6IkxlYWQgOiBEZW1hbmRlIEV4cHJlc3MiLCJFTkdMSVNIIjoiTGVhZDogRXhwcmVzcyByZXF1ZXN0In0sIlF1aWNrRW1haWxOZXdJbnZlbnRvcnkiOnsiRlJFTkNIIjoiTGVhZCA6IERlbWFuZGUgRXhwcmVzcyAoaW52ZW50YWlyZSBuZXVmKSIsIkVOR0xJU0giOiJMZWFkOiBFeHByZXNzIHJlcXVlc3QgKG5ldyBpbnZlbnRvcnkpIn0sIlJlYmF0ZUNvdXBvbiI6eyJGUkVOQ0giOiJMZWFkIDogRGVtYW5kZSBkZSBjb3Vwb24gcmFiYWlzICh2ZWhpY3VsZSBlbiBpbnZlbnRhaXJlKSIsIkVOR0xJU0giOiJMZWFkOiBSZXF1ZXN0IGZvciBhIHJlYmF0ZSBjb3Vwb24gKGludmVudG9yeSB2ZWhpY2xlKSJ9LCJSZWJhdGVDb3Vwb25JbnZlbnRvcnkiOnsiRlJFTkNIIjoiTGVhZCA6IERlbWFuZGUgZGUgY291cG9uIHJhYmFpcyAoaW52ZW50YWlyZSkiLCJFTkdMSVNIIjoiTGVhZDogUmVxdWVzdCBmb3IgYSByZWJhdGUgY291cG9uIChpbnZlbnRvcnkpIn0sIlJlYmF0ZUNvdXBvbk5ldyI6eyJGUkVOQ0giOiJMZWFkIDogRGVtYW5kZSBkZSBjb3Vwb24gcmFiYWlzIiwiRU5HTElTSCI6IkxlYWQ6IFJlcXVlc3QgZm9yIGEgcmViYXRlIGNvdXBvbiJ9LCJSZWJhdGVDb3Vwb25OZXdCTlAiOnsiRlJFTkNIIjoiTGVhZCA6IERlbWFuZGUgZGUgY291cG9uIHJhYmFpcyAoY29uZmlndXJhdGV1cikiLCJFTkdMSVNIIjoiTGVhZDogUmVxdWVzdCBmb3IgYSByZWJhdGUgY291cG9uIChjb25maWd1cmF0b3IpIn0sIlJlYmF0ZUNvdXBvbk5ld0ludmVudG9yeSI6eyJGUkVOQ0giOiJMZWFkIDogRGVtYW5kZSBkZSBjb3Vwb24gcmFiYWlzIChpbnZlbnRhaXJlKSIsIkVOR0xJU0giOiJMZWFkOiBSZXF1ZXN0IGZvciBhIHJlYmF0ZSBjb3Vwb24gKGludmVudG9yeSkifSwiUmViYXRlQ291cG9uTmV3U2xpZGVyIjp7IkZSRU5DSCI6IkxlYWQgOiBEZW1hbmRlIGRlIGNvdXBvbiByYWJhaXMgKGNhcm91c2VsKSIsIkVOR0xJU0giOiJMZWFkOiBSZXF1ZXN0IGZvciBhIHJlYmF0ZSBjb3Vwb24gKHNsaWRlcikifSwiUmViYXRlQ291cG9uUHJvbW8iOnsiRlJFTkNIIjoiTGVhZDogRGVtYW5kZSBkZSBjb3Vwb24gcmFiYWlzIChib3V0b24gJ1Byb21vdGlvbnMnKSIsIkVOR0xJU0giOiJMZWFkOiBSZWJhdGUgQ291cG9uIHJlcXVlc3QgKCdQcm9tb3Rpb25zJyBidXR0b24pIn0sIlJlYmF0ZUNvdXBvblNsaWRlciI6eyJGUkVOQ0giOiJMZWFkIDogRGVtYW5kZSBkZSBjb3Vwb24gcmFiYWlzIChjYXJvdXNlbCkiLCJFTkdMSVNIIjoiTGVhZDogUmVxdWVzdCBmb3IgYSByZWJhdGUgY291cG9uIChzbGlkZXIpIn0sIlJlYmF0ZUNvdXBvblVzZWRTbGlkZXIiOnsiRlJFTkNIIjoiTGVhZCA6IERlbWFuZGUgZGUgY291cG9uIHJhYmFpcyAoY2Fyb3VzZWwpIiwiRU5HTElTSCI6IkxlYWQ6IFJlcXVlc3QgZm9yIGEgcmViYXRlIGNvdXBvbiAoc2xpZGVyKSJ9LCJSZWNhbGxzIjp7IkZSRU5DSCI6IkRlbWFuZGUgZCdpbmZvcm1hdGlvbiBzdXIgbGVzIHJhcHBlbHMiLCJFTkdMSVNIIjoiUmVjYWxsIGluZm9ybWF0aW9uIHJlcXVlc3QifSwiUmVzZXJ2ZUl0Tm93Ijp7IkZSRU5DSCI6IkxlYWQgOiBEZW1hbmRlIHBvdXIgcmVzZXJ2ZXIgdW4gdmVoaWN1bGUiLCJFTkdMSVNIIjoiTGVhZCA6IFJlcXVlc3QgdG8gcHJlLW9yZGVyIGEgdmVoaWNsZSJ9LCJSZXNlcnZlSXROb3dOZXciOnsiRlJFTkNIIjoiTGVhZCA6IERlbWFuZGUgcG91ciByZXNlcnZlciB1biB2ZWhpY3VsZSIsIkVOR0xJU0giOiJMZWFkIDogUmVxdWVzdCB0byBwcmUtb3JkZXIgYSB2ZWhpY2xlIn0sIlNlbGxDYXIiOnsiRlJFTkNIIjoiTGVhZCA6IERlbWFuZGUgZGUgVmVuZGV6IFZlaGljdWxlIiwiRU5HTElTSCI6IkxlYWQgOiBSZXF1ZXN0IHRvIGJ1eSB5b3VyIGNhciJ9LCJTZWxsQ2FyX1Nob3J0Ijp7IkZSRU5DSCI6IkxlYWQgOiBEZW1hbmRlIGRlIFZlbmRlei1ub3VzIHZvdHJlIHZlaGljdWxlICh2ZXJzaW9uIGNvdXJ0ZSkiLCJFTkdMSVNIIjoiTGVhZCA6IFJlcXVlc3QgdG8gYnV5IHlvdXIgY2FyIChTaG9ydCB2ZXJzaW9uKSJ9LCJTZXJ2aWNlUmVxdWVzdCI6eyJGUkVOQ0giOiJMZWFkIDogRGVtYW5kZSBkZSByZW5kZXotdm91cyBhdSBzZXJ2aWNlIiwiRU5HTElTSCI6IkxlYWQ6IFNlcnZpY2UgYXBwb2ludG1lbnQgcmVxdWVzdCJ9LCJTTVNMZWFkIjp7IkZSRU5DSCI6IkxlYWQ6IERlbWFuZGUgU01TIChUZXh0bykiLCJFTkdMSVNIIjoiTGVhZDogU01TIHJlcXVlc3QifSwiU01TTGVhZF9vbGQiOnsiRlJFTkNIIjoiTGVhZCA6IERlbWFuZGUgU01TIChUZXh0bykiLCJFTkdMSVNIIjoiTGVhZCA6IFNNUyByZXF1ZXN0In0sIlNwZWNzUmVxdWVzdCI6eyJGUkVOQ0giOiJMZWFkOiBEZW1hbmRlIGRlIGZpY2hlIFBERiAtIFZlaGljdWxlIGVuIGludmVudGFpcmUiLCJFTkdMSVNIIjoiTGVhZDogUERGIHJlcXVlc3QgLSBWZWhpY2xlIGluIGludmVudG9yeSJ9LCJTcGVjc1JlcXVlc3ROZXciOnsiRlJFTkNIIjoiTGVhZDogRGVtYW5kZSBkZSBicm9jaHVyZSBQREYiLCJFTkdMSVNIIjoiTGVhZDogUERGIGJyb2NodXJlIHJlcXVlc3QifSwiU1JQQ29udGFjdFVzIjp7IkZSRU5DSCI6IkxlYWQgOiBEZW1hbmRlIGRlIGNvbnRhY3QgU1JQIiwiRU5HTElTSCI6IkxlYWQgOiBSZXF1ZXN0IGZvciBjb250YWN0IFNSUCJ9LCJUZXN0RHJpdmUiOnsiRlJFTkNIIjoiTGVhZCA6IERlbWFuZGUgZCdlc3NhaSByb3V0aWVyIiwiRU5HTElTSCI6IkxlYWQ6IFJlcXVlc3QgZm9yIGEgdGVzdCBkcml2ZSJ9LCJUZXN0RHJpdmVOZXciOnsiRlJFTkNIIjoiTGVhZCA6IERlbWFuZGUgZCdlc3NhaSByb3V0aWVyIiwiRU5HTElTSCI6IkxlYWQ6IFJlcXVlc3QgZm9yIGEgdGVzdCBkcml2ZSJ9LCJUaXJlc1JlcXVlc3QiOnsiRlJFTkNIIjoiTGVhZCA6IERlbWFuZGUgZGUgcG5ldXMiLCJFTkdMSVNIIjoiTGVhZDogUmVxdWVzdCBmb3IgdGlyZXMifSwiUHJvbW9NYWlsIjp7IkZSRU5DSCI6IkxlYWQgOiBEZW1hbmRlIGQnaW52aXRhdGlvbiBhIGxhIHZlbnRlIHByaXZlZSIsIkVOR0xJU0giOiJMZWFkOiBSZXF1ZXN0IGZvciBpbnZpdGF0aW9uIHRvIHByaXZhdGUgc2FsZSJ9LCJTbGlkZVdpZGdldEZvcm0iOnsiRlJFTkNIIjoiVUlURVhUIiwiRU5HTElTSCI6IlVJVEVYVCJ9LCJDb21wYXJlRm9ybSI6eyJGUkVOQ0giOiJVSVRFWFQiLCJFTkdMSVNIIjoiVUlURVhUIn0sIlNlYXJjaEZpbHRlcnMiOnsiRlJFTkNIIjoiVUlURVhUIiwiRU5HTElTSCI6IlVJVEVYVCJ9LCJoZWFkZXJHbG9iYWxTZWFyY2giOnsiRlJFTkNIIjoiVUlURVhUIiwiRU5HTElTSCI6IlVJVEVYVCJ9fSwic3ViX2dhNCI6IlkifSk7fWNhdGNoKGV6ejEpe2lmKGNvbnNvbGUmJmNvbnNvbGUubG9nKQpjb25zb2xlLmxvZyhlenoxKTt9CnZhciBpZGVudF9mNzNmYTZhYmJmYjRiYWIzZjQ5ZGFhZmIzODkxZTI3Zjt0cnl7KGZ1bmN0aW9uKHcsZCx0LHIsdSl7dmFyIGYsbixpO3dbdV09d1t1XXx8W10sZj1mdW5jdGlvbigpe3ZhciBvPXt0aToiNTA3OTM5MSIsZW5hYmxlQXV0b1NwYVRyYWNraW5nOnRydWV9O28ucT13W3VdLHdbdV09bmV3IFVFVChvKSx3W3VdLnB1c2goInBhZ2VMb2FkIil9LG49ZC5jcmVhdGVFbGVtZW50KHQpLG4uc3JjPXIsbi5hc3luYz0xLG4uc2V0QXR0cmlidXRlKCJkYXRhLW90LWlnbm9yZSIsdHJ1ZSksbi5zZXRBdHRyaWJ1dGUoInR5cGUiLCJ0ZXh0L2phdmFzY3JpcHQiKSxuLm9ubG9hZD1uLm9ucmVhZHlzdGF0ZWNoYW5nZT1mdW5jdGlvbigpe3ZhciBzPXRoaXMucmVhZHlTdGF0ZTtzJiZzIT09ImxvYWRlZCImJnMhPT0iY29tcGxldGUifHwoZigpLG4ub25sb2FkPW4ub25yZWFkeXN0YXRlY2hhbmdlPW51bGwpfSxpPWQuZ2V0RWxlbWVudHNCeVRhZ05hbWUodClbMF0saS5wYXJlbnROb2RlLmluc2VydEJlZm9yZShuLGkpfSkod2luZG93LGRvY3VtZW50LCJzY3JpcHQiLCIvL2JhdC5iaW5nLmNvbS9iYXQuanMiLCJ1ZXRxIik7fWNhdGNoKGV6ejEpe2lmKGNvbnNvbGUmJmNvbnNvbGUubG9nKQpjb25zb2xlLmxvZyhlenoxKTt9CnZhciBpZGVudF82MDA1NzEwZDI5Mzk1ODlmMGRjNzBhM2YwNjNmM2E0ODt0cnl7dmFyIGRlcGxveW1lbnRUeXBlPScnK2pzX2QyY19nZXRfdmFsKCIyZWpoYmMweXlvZzB3d3ciKSsnJztpZihkZXBsb3ltZW50VHlwZT09J2xpdmUnKXtnYVRyYWNrKCdfdHJhY2tFdmVudCcsJ1BhZ2VzIHZ1ZXMnLCdTZWN0aW9uLU5ldWYnLCcnLDEpO31lbHNlIGlmKGRlcGxveW1lbnRUeXBlPT0nc3RhZ2luZycpe2dhVHJhY2soJ2IuX3RyYWNrRXZlbnQnLCdNb2JpbGUgcGFnZXZpZXdzJywnU3RhbmRhcmQgTW9iaWxlJyx3aW5kb3cubG9jYXRpb24uaHJlZiwnMScpO319Y2F0Y2goZXp6MSl7aWYoY29uc29sZSYmY29uc29sZS5sb2cpCmNvbnNvbGUubG9nKGV6ejEpO30KdmFyIGlkZW50X2Q3NWI3NjgyODY4NDgwMWUyNjZkYmNiYjNjODEyMDU1O3RyeXskKGZ1bmN0aW9uKCl7JCgnLmV4dGVuZGVkUGhvbmVUcmlnZ2VyOm5vdCgubm90cmlnZ2VyKScpLm9uKCdtb3VzZWVudGVyJyxmdW5jdGlvbigpeyQoJy5leHRlbmRlZFBob25lVHJpZ2dlciArIC5leHRlbmRlZFBob25lJykuc2hvdygpO30pLm9uKCdtb3VzZWxlYXZlJyxmdW5jdGlvbigpeyQoJy5leHRlbmRlZFBob25lVHJpZ2dlciArIC5leHRlbmRlZFBob25lJykuaGlkZSgpO30pO30pO31jYXRjaChlenoxKXtpZihjb25zb2xlJiZjb25zb2xlLmxvZykKY29uc29sZS5sb2coZXp6MSk7fQp2YXIgaWRlbnRfM2UwOWQ0NjdlNTJhZWJhZDE0MjI2ZmZkMTVmZjQ2NGY7dHJ5e2pRdWVyeShmdW5jdGlvbigkKXskKCIjVHJhZGVJbkJhclBvcHVwQ29udGFpbmVyIikucG9wdXBpemUoeyJvbkJlZm9yZU9wZW4iOmZ1bmN0aW9uKCl7JCgnI3RyYWRlSW5CYXJQb3B1cFN1Ym1pdCcpLnByb3AoJ2Rpc2FibGVkJyxmYWxzZSk7JCgnI3RyYWRlSW5CYXJQb3B1cFN1Ym1pdCcpLnNob3coKTt0cmFkZWlucG9wdXBkMmMuaW5pdFRyYWRlSW5TdGVwMSgpOyQoJ2lucHV0W25hbWU9c3RlcDNkb25lXScpLnZhbCgwKTt0cmFkZWlucG9wdXBkMmMub25CZWZvcmVPcGVuKCk7fSwib25CZWZvcmVzdWJtaXQiOmZ1bmN0aW9uKHBvcHVwKXtyZXR1cm4gdHJhZGVpbnBvcHVwZDJjLm9uQmVmb3JlU3VibWl0KHBvcHVwKTt9LCJvbkFmdGVyc3VibWl0IjpmdW5jdGlvbihwb3B1cCl7dHJhZGVpbnBvcHVwZDJjLm9uQWZ0ZXJTdWJtaXQocG9wdXApO0Nvb2tpZXMuc2V0KCdwb3B1cEZvcm1GaWxsZWQnLG51bGwsbnVsbCwnLycpO0Nvb2tpZXMuc2V0KCd0cmFkZUluUG9wdXBTaG93bicsbnVsbCxudWxsLCcvJyk7aWYoJCgnI3RyYWRlSW5CYXInKS5sZW5ndGgpeyQoJyN0cmFkZUluQmFyJykuaGlkZSgpO30KaWYoJCgnI3RyYWRlaW5CYXJGbG9hdCcpLmxlbmd0aCl7JCgnI3RyYWRlaW5CYXJGbG9hdCcpLmhpZGUoKTt9fSwib25CZWZvcmVWYWxpZGF0aW9uIjpmdW5jdGlvbihwb3B1cCl7cmV0dXJuIHRyYWRlaW5wb3B1cGQyYy5vbkJlZm9yZVZhbGlkYXRpb24ocG9wdXApO30sIm9uQmVmb3JlQ2xvc2UiOmZ1bmN0aW9uKHBvcHVwKXtDb29raWVzLmdldCgndHJhZGVJblBvcHVwU2hvd24nLG51bGwsbnVsbCwnLycpOyQoJyNsZWFkU2VudCcpLnJlbW92ZSgpOyQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIC50cmFkZUluQmFyRGVhbGVyU3RlcCcpLmhpZGUoKTt9LCJvbkJlZm9yZUluaXRpYWxpemUiOmZ1bmN0aW9uKHBvcHVwKXtwb3B1cC5zZXR0aW5ncy5mb3JtLnNlbmRUbz1wb3B1cC5zZXR0aW5ncy5mb3JtLnNlbmRUbztwb3B1cC5zZXR0aW5ncy5mb3JtLnNlbmRUb0FERj1wb3B1cC5zZXR0aW5ncy5mb3JtLnNlbmRUb0FERjt9LCJvbkFmdGVySW5pdGlhbGl6ZSI6ZnVuY3Rpb24oc2VsZil7dHJhZGVJbkJhckluaXRpYWxpemUoKTt0cmFkZWlucG9wdXBkMmMuaW5pdCgpO3dpbmRvdy5sYXVuY2hUcmFkZUluUG9wdXA9ZnVuY3Rpb24oc291cmNlKXt2YXIgcD0kKCIjVHJhZGVJbkJhclBvcHVwQ29udGFpbmVyIikucG9wdXBpemUoe3BvcHVwRXZlbnRTb3VyY2U6c291cmNlfSk7aWYoc291cmNlIT0iYXV0b21hdGljIil7cC5zZXRUcmlnZ2VyKCJjbGljayIpO30KcC5vcGVuKCk7cmV0dXJuIGZhbHNlO30KaWYodHlwZW9mIHBvcHVwRGVmYXVsdE9uQWZ0ZXJJbml0aWFsaXplIT0idW5kZWZpbmVkIil7dmFyIHBvcHVwVHlwZT0idXNlZCI7dmFyIGN1cnJlbnRQYWdlPSIiK2pzX2QyY19nZXRfdmFsKCIxNmQ3dnd0NjZwbW93bzBrIikrIiI7dmFyIHRtcD1wb3B1cERlZmF1bHRPbkFmdGVySW5pdGlhbGl6ZSgidXNlZCIsIiIranNfZDJjX2dldF92YWwoIjZqeXA0NjY0dmd3czgwdyIpKyIiLGZhbHNlLCJ0cmFkZUluQmFyUG9wdXAiLCIiK2pzX2QyY19nZXRfdmFsKCIxNmQ3dnd0NjZwbW93bzBrIikrIiIsIlRyYWRlSW5CYXJQb3B1cENvbnRhaW5lciIsZmFsc2UpO3JldHVybiB0bXA7fX0sIm9uQmVmb3JlU2VuZE1haWwiOmZ1bmN0aW9uKHBvcHVwKXtpZignJz09Jycpe2lmKGVtYWlsSGFuZGxlci5nZXREZXAoKT09J05FVycpe2VtYWlsSGFuZGxlci5zZW5kVG89J2UzOGEwZDllMDRhN2JjODZiOWU2ZDhlYmVjM2U5N2RhfDE1Nzk5MDE0NDgnO2VtYWlsSGFuZGxlci5zZW5kVG9BREZGb3JtYXQ9JzEzMWQxOWE4YjE2NTc0ZDBjOTVmNWJiNzE3M2JkY2VjfDE1Nzk5MDE0NDgnO2VtYWlsSGFuZGxlci5zZW5kVG9BREY9JzEzMWQxOWE4YjE2NTc0ZDBjOTVmNWJiNzE3M2JkY2VjfDE1Nzk5MDE0NDgnO31lbHNle2VtYWlsSGFuZGxlci5zZW5kVG89JycranNfZDJjX2dldF92YWwoIjNwbTZ0dmdxcWVndzR3IikrJyc7ZW1haWxIYW5kbGVyLnNlbmRUb0FERkZvcm1hdD0nJytqc19kMmNfZ2V0X3ZhbCgicmQ1cDhzNGg2cjRzMGNrIikrJyc7ZW1haWxIYW5kbGVyLnNlbmRUb0FERj0nJytqc19kMmNfZ2V0X3ZhbCgicmQ1cDhzNGg2cjRzMGNrIikrJyc7fX0KaWYoZW1haWxIYW5kbGVyLmdldERlcCgpPT0nTkVXJyl7ZW1haWxIYW5kbGVyLm1haWxJRD0ncHJpY2V2ZWhpY2xlbmV3Jzt9ZWxzZXtlbWFpbEhhbmRsZXIubWFpbElEPSdwcmljZXZlaGljbGUnO319LCJvbkFmdGVyQ29uc2VudCI6ZnVuY3Rpb24ocG9wdXApeyQoJyN0cmFkZUluQmFyUG9wdXBTdWJtaXQnKS5wcm9wKCdkaXNhYmxlZCcsZmFsc2UpOyQoJyN0cmFkZUluQmFyUG9wdXBTdWJtaXQnKS5zaG93KCk7fSwiY29va2llRHVyYXRpb24iOjYwLCJjb29raWVOYW1lIjoidHJhZGVJblBvcHVwU2hvd24iLCJjb29raWVDcmVhdGUiOiJvblN1Ym1pdCIsImdvb2dsZVRyYWNraW5nIjp7ImlkU3VmZml4IjoiIiwibGFiZWwiOiIiLCJsYWJlbHNlY3Rpb24iOiIiLCJpc2V4cHJlc3MiOjAsImlzcHJvbW8iOjAsImlzaG9tZXBhZ2UiOjAsImlzbW9iaWxlIjowfSwiZm9ybSI6eyJlbWFpbGlkIjoiUHJpY2VWZWhpY2xlIiwib2ZmZXJ0eXBlIjoidHJhZGVJbkJhclBvcHVwIiwibmFtZSI6bnVsbCwic2VuZFRvIjoiIitqc19kMmNfZ2V0X3ZhbCgiM3BtNnR2Z3FxZWd3NHciKSsiIiwic2VuZFRvQURGIjoiIitqc19kMmNfZ2V0X3ZhbCgicmQ1cDhzNGg2cjRzMGNrIikrIiIsIk9LQnV0dG9uQ2xhc3MiOiJ0cmFkZUluQmFyUG9wdXBTdWJtaXQiLCJDYW5jZWxCdXR0b25DbGFzcyI6ImNhbmNlbEJ0biIsInNob3dFbWFpbENvbmZpcm1hdGlvbiI6dHJ1ZSwiZnJvbUFBIjpmYWxzZSwiY29uZmlybWF0aW9uIjp7InRpdGxlIjpudWxsLCJib2R5IjpudWxsfX0sInN0YXRlIjpbXSwidmVoaWNsZVN0YXRlIjoidXNlZCIsImNsb3NlT25TdWJtaXQiOmZhbHNlLCJmaWxsZmxhZyI6ZmFsc2UsIm5vdHJhbnNmb3JtIjp0cnVlLCJuYW1lIjpmYWxzZSwiYW5pbWF0aW9uIjoiZmFkZUFuZFBvcCIsImFuaW1hdGlvblNwZWVkIjozMDAsImNsb3NlT25CYWNrZ3JvdW5kQ2xpY2siOmZhbHNlLCJkaXNtaXNzTW9kYWxDbGFzcyI6ImNsb3NlLXJldmVhbC1tb2RhbCIsImNsb3NlQnV0dG9uIjp0cnVlLCJieXBhc3NDb25zZW50IjpmYWxzZSwidGhyZXNob2xkIjpmYWxzZSwidGhyZXNob2xkVmFsdWUiOmZhbHNlLCJzY3JvbGx1cCI6ZmFsc2UsIm1haW5wb3B1cCI6ZmFsc2UsImNvdW50ZG93biI6MTc4MjAxNDQwMCwiY29uZmlybUZvcm0iOltdfSk7fSk7fWNhdGNoKGV6ejEpe2lmKGNvbnNvbGUmJmNvbnNvbGUubG9nKQpjb25zb2xlLmxvZyhlenoxKTt9CnZhciBpZGVudF9lMjVkNmNmYWIzOTI3ZDc4ZDllMmY1YTJlMzQ3NjAxNjt0cnl7bWFpbFNlbnRIYW5kbGVyPWdldE1haWxTZW50SGFuZGxlcignX1RyYWRlSW5CYXJQb3B1cENvbnRhaW5lcicpO31jYXRjaChlenoxKXtpZihjb25zb2xlJiZjb25zb2xlLmxvZykKY29uc29sZS5sb2coZXp6MSk7fQp2YXIgaWRlbnRfZGYzNzhiNTllYjNhOGU4ZGM1NWJhMGFlNTQ3ZGU5NzY7dHJ5e2luVmlld0V4ZWMoJyNtYXBfb3Blbl9ob3VycycsZnVuY3Rpb24oKXtsZXQgbWFwVVJMPSdodHRwczovL3d3dy5nb29nbGUuY29tL21hcHMvZW1iZWQvdjEvcGxhY2U\/cT1wbGFjZV9pZCUzQUNoSUprN183UTlVX3prd1Jidm5vTGxCSGxxSSZrZXk9X19LRVlfXyZjZW50ZXI9NDUuNTc5MTAwMDAwMCUyQy03NC44OTQ0MDExNzk4MDcmem9vbT0xMCZsYW5ndWFnZT1mciZyZWdpb249Q0EnO2xldCBtYXBGcmFtZT0kKCcjbWFwZnJhbWUnKTtpZihtYXBGcmFtZS5sZW5ndGg+MCl7aW5qZWN0R29vZ2xlTWFwc0tleShmdW5jdGlvbihrZXkpe21hcEZyYW1lLmF0dHIoJ3NyYycsbWFwVVJMLnJlcGxhY2UoJ19fS0VZX18nLGtleSkpO30pO30KKG5ldyBPcGVuSG91cnMoe2NvbnRhaW5lcjonI21hcF9vcGVuX2hvdXJzJyxhdXRvT3Blbjp0cnVlLH0pKS5pbml0KCk7fSk7fWNhdGNoKGV6ejEpe2lmKGNvbnNvbGUmJmNvbnNvbGUubG9nKQpjb25zb2xlLmxvZyhlenoxKTt9CnZhciBpZGVudF9kNzViNzY4Mjg2ODQ4MDFlMjY2ZGJjYmIzYzgxMjA1NTt0cnl7JChmdW5jdGlvbigpeyQoJy5leHRlbmRlZFBob25lVHJpZ2dlcjpub3QoLm5vdHJpZ2dlciknKS5vbignbW91c2VlbnRlcicsZnVuY3Rpb24oKXskKCcuZXh0ZW5kZWRQaG9uZVRyaWdnZXIgKyAuZXh0ZW5kZWRQaG9uZScpLnNob3coKTt9KS5vbignbW91c2VsZWF2ZScsZnVuY3Rpb24oKXskKCcuZXh0ZW5kZWRQaG9uZVRyaWdnZXIgKyAuZXh0ZW5kZWRQaG9uZScpLmhpZGUoKTt9KTt9KTt9Y2F0Y2goZXp6MSl7aWYoY29uc29sZSYmY29uc29sZS5sb2cpCmNvbnNvbGUubG9nKGV6ejEpO30KdmFyIGlkZW50XzAyNGQzOGM5ZTFhMDM3ZGQ0MTU4YTBjYTk1NzQ0ZTMwO3RyeXt2YXIgc2l0ZVNlY3Rpb249IiIranNfZDJjX2dldF92YWwoImlwbnVtMm15MDBnOHMwMCIpKyIiO31jYXRjaChlenoxKXtpZihjb25zb2xlJiZjb25zb2xlLmxvZykKY29uc29sZS5sb2coZXp6MSk7fQp2YXIgaWRlbnRfNmI2ZmIwODViN2MzMzBkNzdmZWQ0Mjg3MzU4NDRjNjE7dHJ5eyQoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKCl7aWYoQ29va2llcy5nZXQoJ3RvYXN0ckFsZXJ0U2hvd24nKSYmQ29va2llcy5nZXQoJ3RvYXN0ckFsZXJ0U2hvd24nKTwwKQpyZXR1cm47aWYoJCgnI1BBR0VJRCcpLnZhbCgpPT0nbmV3Y2FyZGV0YWlsLmh0bWwnJiYneWVzJz09J3llcycpe3JldHVybjt9CnZhciB0b2FzdHJEaXNwbGF5VHlwZT0nc2Vzc2lvbic7dmFyIHRvYXN0ckZyZXF1ZW5jeT0xO3ZhciB0b2FzdHJJbml0VmFsPSh0b2FzdHJEaXNwbGF5VHlwZT09J3BhZ2V2aWV3Jz90b2FzdHJGcmVxdWVuY3k6MCk7dmFyIHRvYXN0ckRpc3BsYXllZD0oQ29va2llcy5oYXMoJ3RvYXN0ckFsZXJ0U2hvd24nKT9Db29raWVzLmdldCgndG9hc3RyQWxlcnRTaG93bicpOnRvYXN0ckluaXRWYWwpO3ZhciBkaXNwbGF5VG9hc3RyPWZhbHNlO3NldFRvYXN0ckNvb2tpZSgpO2lmKHRvYXN0ckRpc3BsYXlUeXBlPT0ncGFnZXZpZXcnJiZ0b2FzdHJEaXNwbGF5ZWQ9PXRvYXN0ckZyZXF1ZW5jeSl7ZGlzcGxheVRvYXN0cj10cnVlO3NldFRvYXN0ckNvb2tpZSgncmVzZXQnKTt9ZWxzZSBpZih0b2FzdHJEaXNwbGF5VHlwZT09J3Nlc3Npb24nJiZ0b2FzdHJEaXNwbGF5ZWQ8dG9hc3RyRnJlcXVlbmN5KXtkaXNwbGF5VG9hc3RyPXRydWU7c2V0VG9hc3RyQ29va2llKCdvZmYnKTt9CnRvYXN0ci5vcHRpb25zPXsiY2xvc2VCdXR0b24iOnRydWUsIm9uQ2xvc2UiOmZ1bmN0aW9uKCl7c2V0VG9hc3RyQ29va2llKCdvZmYnKTt9LCJkZWJ1ZyI6ZmFsc2UsIm5ld2VzdE9uVG9wIjpmYWxzZSwicHJvZ3Jlc3NCYXIiOmZhbHNlLCJwb3NpdGlvbkNsYXNzIjoidG9hc3QtYm90dG9tLWxlZnQiLCJwcmV2ZW50RHVwbGljYXRlcyI6ZmFsc2UsIm9uY2xpY2siOmZ1bmN0aW9uKCl7dG9hc3RDbGlja1JlZGlyZWN0KCk7c2V0VG9hc3RyQ29va2llKCJvZmYiKTt9LCJzaG93RHVyYXRpb24iOiIzMDAiLCJoaWRlRHVyYXRpb24iOiIxMDAwIiwidGltZU91dCI6IjMwMDAwIiwiZXh0ZW5kZWRUaW1lT3V0IjoiMTAwMCIsInNob3dFYXNpbmciOiJzd2luZyIsImhpZGVFYXNpbmciOiJsaW5lYXIiLCJzaG93TWV0aG9kIjoic2xpZGVEb3duIiwiaGlkZU1ldGhvZCI6ImZhZGVPdXQiLCJjb2xvciI6IiNmZmZmZmYiLCJiZ0NvbG9yIjoiI2ZmMDAwMCJ9CmlmKGRpc3BsYXlUb2FzdHIpe2lmKCEoZmFsc2UmJndpbmRvdy5tYXRjaE1lZGlhJiZ3aW5kb3cubWF0Y2hNZWRpYSgnKG1heC13aWR0aDogNzY3cHgpJykubWF0Y2hlcykpe3NldFRpbWVvdXQoZnVuY3Rpb24oKXt0b2FzdHIud2FybmluZygiQ29uZmlndXJleiB2b3RyZSBGb3JkIGVuIGNsaXF1YW50IGljaSEiLCJDT05GSUdVUkFURVVSIEZPUkQiKX0sNTAwMCk7fX19KTtmdW5jdGlvbiB0b2FzdENsaWNrUmVkaXJlY3QoKXt3aW5kb3cubG9jYXRpb24uaHJlZj0iL2NvbmZpZ3VyYXRpb24tZXQtcHJpeC9Gb3JkLmh0bWwiO30KZnVuY3Rpb24gc2V0VG9hc3RyQ29va2llKHR5cGUpe2lmKHR5cGVvZiB0eXBlPT0ndW5kZWZpbmVkJykKdHlwZT0naW5jcmVtZW50Jzt2YXIgdG9hc3RyQ29va2llVmFsPShDb29raWVzLmhhcygndG9hc3RyQWxlcnRTaG93bicpP3BhcnNlSW50KENvb2tpZXMuZ2V0KCd0b2FzdHJBbGVydFNob3duJykpOjApO3N3aXRjaCh0eXBlKXtjYXNlJ29mZic6dG9hc3RyQ29va2llVmFsPS0xO2JyZWFrO2Nhc2UncmVzZXQnOnRvYXN0ckNvb2tpZVZhbD0xO2JyZWFrO2Nhc2UnaW5jcmVtZW50JzpkZWZhdWx0OnRvYXN0ckNvb2tpZVZhbCsrO30KQ29va2llcy5zZXQoJ3RvYXN0ckFsZXJ0U2hvd24nLHRvYXN0ckNvb2tpZVZhbCxudWxsLCcvJyk7fX1jYXRjaChlenoxKXtpZihjb25zb2xlJiZjb25zb2xlLmxvZykKY29uc29sZS5sb2coZXp6MSk7fQp2YXIgaWRlbnRfZmQ0YzIxZDU1MzU0YzZkMjRlMzk5OTNkZjY4NDQxNmE7dHJ5e3ZhciB1dG1fc291cmNlPWdldFBhcmFtZXRlckJ5TmFtZSgndXRtX3NvdXJjZScpO2pRdWVyeShmdW5jdGlvbigkKXtpZih1dG1fc291cmNlIT0iIil7Q29va2llcy5zZXQoJ3V0bV9sYW5kaW5nX2Zvb3RlcicsbnVsbCxudWxsLCIvIik7fQppZihDb29raWVzLmdldCgidXRtX2xhbmRpbmdfZm9vdGVyIik9PW51bGx8fENvb2tpZXMuZ2V0KCJ1dG1fbGFuZGluZ19mb290ZXIiKT09PSdudWxsJyl7Q29va2llcy5zZXQoJ3V0bV9sYW5kaW5nX2Zvb3Rlcicsd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lLDE4MCwiLyIpO30KaWYoJCgnI2dlbmVyaWNfZm9ybV9jb25maXJtJykubGVuZ3RoPDEpe3ZhciBGb3JtPSQoJzxmb3JtIGlkPSJnZW5lcmljX2Zvcm1fY29uZmlybSIgdGFyZ2V0PSJpZnJhbWVndHJhY2siIG1ldGhvZD0icG9zdCIgYWN0aW9uPSIvY29uZmlybWF0aW9uLmh0bWwiPjwvZm9ybT4nKTt2YXIgbWFrZVZhbD0iIitqc19kMmNfZ2V0X3ZhbCgiMWVyaXY5MDBwZGE4OHd3OCIpKyIiO3ZhciBtb2RlbFZhbD0iIitqc19kMmNfZ2V0X3ZhbCgiMTBwYTd2M3FlbGRjb3NrIikrIiI7dmFyIHllYXJWYWw9IiIranNfZDJjX2dldF92YWwoInI4Mnpma3hhMmR3c3MwMCIpKyIiO3ZhciByZWZlcmFsVmFsPSIiK2pzX2QyY19nZXRfdmFsKCJpM2dzYXhnczVqazh3Y2siKSsiIjt2YXIgc2VjdGlvblZhbD0nJytqc19kMmNfZ2V0X3ZhbCgic283eXVxYWo0ZHdjYzhzIikrJyc7dmFyIGZyb21BdXRvYXViYWluZT0kKCcjYXV0b2F1YmFpbmVfcG9wdXAnKS5sZW5ndGg+MCYmKCQoJyNhdXRvYXViYWluZV9wb3B1cCcpLnZhbCgpIT0nZmFsc2UnKTt2YXIgaW5wdXRzPVt7bmFtZToibGFiZWwiLHZhbHVlOiIiLCdjbGFzcyc6ImxhYmVsZW1haWwifSx7bmFtZToic2VjdGlvbiIsdmFsdWU6IiIsJ2NsYXNzJzoibGFiZWxzZWN0aW9uIn0se25hbWU6ImJyYW5kIix2YWx1ZTptYWtlVmFsLCdjbGFzcyc6ImJyYW5kZW1haWwifSx7bmFtZToibW9kZWwiLHZhbHVlOm1vZGVsVmFsLCdjbGFzcyc6Im1vZGVsZW1haWwifSx7bmFtZToieWVhciIsdmFsdWU6eWVhclZhbCwnY2xhc3MnOiJ5ZWFyZW1haWwifSx7bmFtZToiZ29vZ2xlaWQiLHZhbHVlOiIifSx7bmFtZToiZ29vZ2xlaWRkMmNtZWRpYSIsdmFsdWU6IiJ9LHtuYW1lOiJiaW5nY29uaWQiLHZhbHVlOiIifSx7bmFtZToiYmluZ2FjdGlvbmlkIix2YWx1ZToiIn0se25hbWU6ImJpbmdkb21haW5pZCIsdmFsdWU6IiJ9LHtuYW1lOiJndGFnX2NvbnZlcnNpb24iLHZhbHVlOiJndGFnIn0se25hbWU6ImFkcm9sbEFkdiIsdmFsdWU6IiJ9LHtuYW1lOiJhZHJvbGxQaXgiLHZhbHVlOiIifSx7bmFtZToiZmFjZWJvb2tDb25JZCIsdmFsdWU6IjMwMzMwODQ0NjY4NTU4MSJ9LHtuYW1lOiJsZWFkX2RlcGFydG1lbnQiLHZhbHVlOiIifSx7bmFtZToibGVhZFR5cGUiLHZhbHVlOiIifSx7bmFtZToicGFnZUlEIix2YWx1ZToiIn0se25hbWU6ImN1cnJlbnRVUkwiLHZhbHVlOiIifSx7bmFtZToiZG9tYWluIix2YWx1ZToiY2FybGVmb3JkLmNvbSJ9LHtuYW1lOiJyZWZlcnJlciIsdmFsdWU6cmVmZXJhbFZhbH0se25hbWU6ImlzZXhwcmVzcyIsdmFsdWU6IiIsJ2NsYXNzJzonaXNleHByZXNzJ30se25hbWU6ImlzcHJvbW8iLHZhbHVlOiIifSx7bmFtZToiaXNob21lcGFnZSIsdmFsdWU6IiJ9LHtuYW1lOiJ0ZXN0bW9kZSIsdmFsdWU6IjAiLCdjbGFzcyc6InRlc3Rtb2RlIn0se25hbWU6J3RleHRDYXJTZWN0aW9uVHlwZScsdmFsdWU6c2VjdGlvblZhbH0se25hbWU6ImxhbmciLHZhbHVlOiJGUkVOQ0gifSx7bmFtZToiYnV0dG9uUG9zaXRpb24iLHZhbHVlOiIifSx7bmFtZToiZGVhbGVyTmFtZSIsdmFsdWU6IiJ9LHtuYW1lOiJpc0Z1bGxXaWR0aCIsdmFsdWU6IiJ9LHtuYW1lOiJpc01vYmlsZU5ld1ZEUCIsdmFsdWU6IiJ9LHtuYW1lOiJmcm9tQXV0b0F1YmFpbmUiLHZhbHVlOjB9XQpmb3IodmFyIGk9MDtpPGlucHV0cy5sZW5ndGg7aSsrKXskKCc8aW5wdXQgdHlwZT0iaGlkZGVuIiAvPicpLmF0dHIoaW5wdXRzW2ldKS5hcHBlbmRUbyhGb3JtKTt9CkZvcm0uYXBwZW5kVG8oJyNjb25maXJtX2Zvcm1zJyk7Rm9ybS5vbignc3VibWl0JyxvbkNvbmZpcm1TdWJtaXQpO30KaWYoJCgnI2d0cmFja0ZyYW1lJykubGVuZ3RoPDEpeyQoJzxpZnJhbWU+PC9pZnJhbWU+JykuYXR0cih7d2lkdGg6MSxoZWlnaHQ6MSxmcmFtZUJvcmRlcjowLGlkOidndHJhY2tGcmFtZScsbmFtZTonaWZyYW1lZ3RyYWNrJyxyb2xlOidub25lJyxzdHlsZTond2lkdGg6MXB4O2hlaWdodDoxcHg7Jyx0aXRsZTonZnJhbWUnfSkuYXBwZW5kVG8oJyNjb25maXJtX2Zvcm1zJyk7fX0pO3ZhciBzZXRDaGF0WmluZGV4PWZ1bmN0aW9uKCl7dmFyIGNoYXRFbD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdpZnJhbWVbdGl0bGU9ImNoYXQgd2lkZ2V0Il0nKTtpZihjaGF0RWwpe2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2lmcmFtZVt0aXRsZT0iY2hhdCB3aWRnZXQiXScpLnBhcmVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJ3otaW5kZXgnLCcxMCcsJ2ltcG9ydGFudCcpO319CnNldFRpbWVvdXQoc2V0Q2hhdFppbmRleCwzMDAwKTt9Y2F0Y2goZXp6MSl7aWYoY29uc29sZSYmY29uc29sZS5sb2cpCmNvbnNvbGUubG9nKGV6ejEpO30KdmFyIGlkZW50XzNhMjQ2YTc5OGQyNWRjYzMzMTU3NmViNWZkODBkNDdlO3RyeXskKCcuY29uc2VudC5kaXNjbGFpbWVyJykuZGFya1Rvb2x0aXAoe2dyYXZpdHk6J3NvdXRoJyx0aGVtZTonbGlnaHQnLHRyaWdnZXI6J2hvdmVyJyxvcGFjaXR5OjEsfSk7fWNhdGNoKGV6ejEpe2lmKGNvbnNvbGUmJmNvbnNvbGUubG9nKQpjb25zb2xlLmxvZyhlenoxKTt9CnZhciBpZGVudF9lNDFkMGIyOTJiMGZlMDg5NTdhNjQxOTkzNDA3ZDY3YTt0cnl7dHJ5e3dpbmRvdy5EMkNGYkNvbnNlbnQ9d2luZG93LkQyQ0ZiQ29uc2VudHx8e19zdGF0ZTpudWxsLF9xdWV1ZTpbXSxfZmx1c2g6ZnVuY3Rpb24oKXt2YXIgcT10aGlzLl9xdWV1ZTt0aGlzLl9xdWV1ZT1bXTtxLmZvckVhY2goZnVuY3Rpb24oY2Ipe3RyeXtjYigpO31jYXRjaChlKXt9fSk7fSxncmFudDpmdW5jdGlvbigpe3RoaXMuX3N0YXRlPSdncmFudCc7aWYodHlwZW9mIGZicSE9PSd1bmRlZmluZWQnKXtmYnEoJ2NvbnNlbnQnLCdncmFudCcpO3RoaXMuX2ZsdXNoKCk7fX0scmV2b2tlOmZ1bmN0aW9uKCl7dGhpcy5fc3RhdGU9J3Jldm9rZSc7aWYodHlwZW9mIGZicSE9PSd1bmRlZmluZWQnKXtmYnEoJ2NvbnNlbnQnLCdyZXZva2UnKTt9fSxvbkdyYW50ZWQ6ZnVuY3Rpb24oY2Ipe2lmKHR5cGVvZiBjYiE9PSdmdW5jdGlvbicpe3JldHVybjt9aWYodGhpcy5fc3RhdGU9PT0nZ3JhbnQnJiZ0eXBlb2YgZmJxIT09J3VuZGVmaW5lZCcpe3RyeXtjYigpO31jYXRjaChlKXt9fWVsc2V7dGhpcy5fcXVldWUucHVzaChjYik7fX0sc3luY1RvRmJxOmZ1bmN0aW9uKCl7aWYodGhpcy5fc3RhdGUmJnR5cGVvZiBmYnEhPT0ndW5kZWZpbmVkJyl7ZmJxKCdjb25zZW50Jyx0aGlzLl9zdGF0ZSk7aWYodGhpcy5fc3RhdGU9PT0nZ3JhbnQnKXt0aGlzLl9mbHVzaCgpO319fX07c2V0VGltZW91dChmdW5jdGlvbigpe2lmKHdpbmRvdy5EMkNGYkNvbnNlbnQuX3N0YXRlPT09bnVsbCYmdHlwZW9mIHdpbmRvdy5Db29raWVDb25zZW50PT09J3VuZGVmaW5lZCcpe3dpbmRvdy5EMkNGYkNvbnNlbnQuZ3JhbnQoKTt9fSwxNTAwKTshZnVuY3Rpb24oZixiLGUsdixuLHQscyl7aWYoZi5mYnEpcmV0dXJuO249Zi5mYnE9ZnVuY3Rpb24oKXtuLmNhbGxNZXRob2Q\/bi5jYWxsTWV0aG9kLmFwcGx5KG4sYXJndW1lbnRzKTpuLnF1ZXVlLnB1c2goYXJndW1lbnRzKX07aWYoIWYuX2ZicSlmLl9mYnE9bjtuLnB1c2g9bjtuLmxvYWRlZD0hMDtuLnZlcnNpb249JzIuMCc7bi5xdWV1ZT1bXTt0PWIuY3JlYXRlRWxlbWVudChlKTt0LmFzeW5jPSEwO3Quc2V0QXR0cmlidXRlKCdjbGFzcycsJ29wdGFub24tY2F0ZWdvcnktQzAwMDItQzAwMDMtQzAwMDQtQzAwMDUnKTt0LnNldEF0dHJpYnV0ZSgndHlwZScsJ3RleHQvcGxhaW4nKTt0LnNyYz12O3Quc2V0QXR0cmlidXRlKCdjbGFzcycsJ29wdGFub24tY2F0ZWdvcnktQzAwMDItQzAwMDMtQzAwMDQtQzAwMDUnKTt0LnNldEF0dHJpYnV0ZSgndHlwZScsJ3RleHQvcGxhaW4nKTtzPWIuZ2V0RWxlbWVudHNCeVRhZ05hbWUoZSlbMF07cy5wYXJlbnROb2RlLmluc2VydEJlZm9yZSh0LHMpfSh3aW5kb3csZG9jdW1lbnQsJ3NjcmlwdCcsJ2h0dHBzOi8vY29ubmVjdC5mYWNlYm9vay5uZXQvZW5fVVMvZmJldmVudHMuanMnKTtmYnEoJ2luaXQnLCczMDMzMDg0NDY2ODU1ODEnKTt3aW5kb3cuRDJDRmJDb25zZW50LnN5bmNUb0ZicSgpO3dpbmRvdy5EMkNGYkNvbnNlbnQub25HcmFudGVkKGZ1bmN0aW9uKCl7ZmJxKCd0cmFjaycsIlBhZ2VWaWV3Iik7fSk7d2luZG93LkQyQ0ZiQ29uc2VudC5vbkdyYW50ZWQoZnVuY3Rpb24oKXtmYnEoJ3RyYWNrJywnVmlld0NvbnRlbnQnKTt9KTt9Y2F0Y2goZXgpe307fWNhdGNoKGV6ejEpe2lmKGNvbnNvbGUmJmNvbnNvbGUubG9nKQpjb25zb2xlLmxvZyhlenoxKTt9CnZhciBpZGVudF84M2MyNTI4YTc1MzgwYzA3ODcyZTkyYWQyYzk5YWUyZTt0cnl7aWYodHlwZW9mIHBhZ2UhPT0ndW5kZWZpbmVkJyYmcGFnZT09Ik5FV0NBUkRFVEFJTFMiKXskKGRvY3VtZW50KS5vbignY2xpY2snLCdhJyxmdW5jdGlvbigpe3ZhciBvYmo9JCh0aGlzKTt2YXIgaHJlZj1vYmouYXR0cignaHJlZicpO3ZhciB0ZXh0PW9iai50ZXh0KCk7aWYodGV4dC5sZW5ndGg+MCYmb2JqLmZpbmQoJ2ltZycpLmxlbmd0aD09MCYmdHlwZW9mIGhyZWYhPSd1bmRlZmluZWQnKXt2YXIgdGl0bGU9JCgnLmJyYW5kZW1haWxbbmFtZT0iYnJhbmQiXScpLnZhbCgpKyctJyskKCcubW9kZWxlbWFpbFtuYW1lPSJtb2RlbCJdJykudmFsKCkrJy0nKyQoJy55ZWFyZW1haWwnKS52YWwoKTtpZihocmVmIT0iIyImJmhyZWYhPSIiJiZocmVmLmluZGV4T2YoImphdmFzY3JpcHQiKTwwJiZocmVmLmluZGV4T2YoJ3snKTwwKXt0aXRsZT1ocmVmO30KZ2FUcmFjaygnX3RyYWNrRXZlbnQnLCdOZXctVkRQLU91dGJvdW5kLWNsaWNrcycsb2JqLnRleHQoKSx0aXRsZSk7fX0pO319Y2F0Y2goZXp6MSl7aWYoY29uc29sZSYmY29uc29sZS5sb2cpCmNvbnNvbGUubG9nKGV6ejEpO30KdmFyIGlkZW50XzU5ZjMxMGRmYmU5YWQxODJhNTgzNmFkZDNhNDlhNDAxO3RyeXt2YXIgX21zcT1fbXNxfHxbXTtfbXNxLnB1c2goWydfc2V0V2Vic2l0ZScsJyddLFsnX3RyYWNrUGFnZXZpZXcnXSk7KGZ1bmN0aW9uKCl7dmFyIG1TaWduYWw9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7bVNpZ25hbC50eXBlPSd0ZXh0L2phdmFzY3JpcHQnO21TaWduYWwuYXN5bmM9dHJ1ZTttU2lnbmFsLnNldEF0dHJpYnV0ZSgnY2xhc3MnLCdvcHRhbm9uLWNhdGVnb3J5LUMwMDAyJyk7bVNpZ25hbC5zZXRBdHRyaWJ1dGUoJ3R5cGUnLCd0ZXh0L3BsYWluJyk7bVNpZ25hbC5zcmM9KCdodHRwczonPT1kb2N1bWVudC5sb2NhdGlvbi5wcm90b2NvbD8naHR0cHM6Ly8nOidodHRwOi8vJykrJ2Z6bG5rLmNvbS9zaWduYWxzLmpzJzt2YXIgcz1kb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnc2NyaXB0JylbMF07cy5wYXJlbnROb2RlLmluc2VydEJlZm9yZShtU2lnbmFsLHMpO30pKCk7fWNhdGNoKGV6ejEpe2lmKGNvbnNvbGUmJmNvbnNvbGUubG9nKQpjb25zb2xlLmxvZyhlenoxKTt9CnZhciBpZGVudF9jOTZmYmU4YmNmODcyZTk0YzViZDViNWE1OGFjOWRlNTt0cnl7alF1ZXJ5KGZ1bmN0aW9uKCQpeyQoIiNkMmNGb290ZXJDb29raWVEZWxldGUiKS5wb3B1cGl6ZSh7ImNvb2tpZUR1cmF0aW9uIjozMCwiY29va2llTmFtZSI6bnVsbCwiY29va2llQ3JlYXRlIjpudWxsLCJnb29nbGVUcmFja2luZyI6eyJpZFN1ZmZpeCI6IiIsImxhYmVsIjoiIiwibGFiZWxzZWN0aW9uIjoiIiwiaXNleHByZXNzIjowLCJpc3Byb21vIjowLCJpc2hvbWVwYWdlIjowLCJpc21vYmlsZSI6MH0sImZvcm0iOnsiZW1haWxpZCI6bnVsbCwib2ZmZXJ0eXBlIjpudWxsLCJuYW1lIjpudWxsLCJzZW5kVG8iOm51bGwsInNlbmRUb0FERiI6bnVsbCwiT0tCdXR0b25DbGFzcyI6InN1Ym1pdEJ0biIsIkNhbmNlbEJ1dHRvbkNsYXNzIjoiY2FuY2VsQnRuIiwic2hvd0VtYWlsQ29uZmlybWF0aW9uIjpmYWxzZSwiZnJvbUFBIjpmYWxzZSwiY29uZmlybWF0aW9uIjp7InRpdGxlIjpudWxsLCJib2R5IjpudWxsfX0sInN0YXRlIjpbXSwidmVoaWNsZVN0YXRlIjoidXNlZCIsImNsb3NlT25TdWJtaXQiOnRydWUsImZpbGxmbGFnIjpmYWxzZSwibm90cmFuc2Zvcm0iOnRydWUsIm5hbWUiOmZhbHNlLCJhbmltYXRpb24iOiJmYWRlQW5kUG9wIiwiYW5pbWF0aW9uU3BlZWQiOjMwMCwiY2xvc2VPbkJhY2tncm91bmRDbGljayI6ZmFsc2UsImRpc21pc3NNb2RhbENsYXNzIjoiY2xvc2UtcmV2ZWFsLW1vZGFsIiwiY2xvc2VCdXR0b24iOnRydWUsImJ5cGFzc0NvbnNlbnQiOmZhbHNlLCJ0aHJlc2hvbGQiOmZhbHNlLCJ0aHJlc2hvbGRWYWx1ZSI6ZmFsc2UsInNjcm9sbHVwIjpmYWxzZSwibWFpbnBvcHVwIjpmYWxzZSwic2hvd29ubG9hZCI6ZmFsc2UsImNvdW50ZG93biI6MTc4MjAxNDQwMCwiY29uZmlybUZvcm0iOlt7Im5hbWUiOiJsYWJlbCIsInZhbHVlIjoiIiwiY2xhc3MiOiJsYWJlbGVtYWlsIn0seyJuYW1lIjoic2VjdGlvbiIsInZhbHVlIjoiIiwiY2xhc3MiOiJsYWJlbHNlY3Rpb24ifSx7Im5hbWUiOiJicmFuZCIsInZhbHVlIjoiIitqc19kMmNfZ2V0X3ZhbCgiMWVyaXY5MDBwZGE4OHd3OCIpKyIiLCJjbGFzcyI6ImJyYW5kZW1haWwifSx7Im5hbWUiOiJtb2RlbCIsInZhbHVlIjoiIitqc19kMmNfZ2V0X3ZhbCgiMTBwYTd2M3FlbGRjb3NrIikrIiIsImNsYXNzIjoibW9kZWxlbWFpbCJ9LHsibmFtZSI6InllYXIiLCJ2YWx1ZSI6IiIranNfZDJjX2dldF92YWwoInI4Mnpma3hhMmR3c3MwMCIpKyIiLCJjbGFzcyI6InllYXJlbWFpbCJ9LHsibmFtZSI6Imdvb2dsZWlkIiwidmFsdWUiOiIifSx7Im5hbWUiOiJnb29nbGVpZGQyY21lZGlhIiwidmFsdWUiOiIifSx7Im5hbWUiOiJiaW5nY29uaWQiLCJ2YWx1ZSI6IiJ9LHsibmFtZSI6ImJpbmdhY3Rpb25pZCIsInZhbHVlIjoiIn0seyJuYW1lIjoiYmluZ2RvbWFpbmlkIiwidmFsdWUiOiIifSx7Im5hbWUiOiJhZHJvbGxBZHYiLCJ2YWx1ZSI6IiJ9LHsibmFtZSI6ImFkcm9sbFBpeCIsInZhbHVlIjoiIn0seyJuYW1lIjoiZmFjZWJvb2tDb25JZCIsInZhbHVlIjoiMzAzMzA4NDQ2Njg1NTgxIn0seyJuYW1lIjoiZG9tYWluIiwidmFsdWUiOiJjYXJsZWZvcmQuY29tIn0seyJuYW1lIjoicmVmZXJyZXIiLCJ2YWx1ZSI6IiIranNfZDJjX2dldF92YWwoImkzZ3NheGdzNWprOHdjayIpKyIifSx7Im5hbWUiOiJpc2V4cHJlc3MiLCJ2YWx1ZSI6IjAiLCJjbGFzcyI6ImlzZXhwcmVzcyJ9LHsibmFtZSI6ImlzcHJvbW8iLCJ2YWx1ZSI6IjAifSx7Im5hbWUiOiJpc2hvbWVwYWdlIiwidmFsdWUiOiIwIn0seyJuYW1lIjoidGV4dENhclNlY3Rpb25UeXBlIiwidmFsdWUiOiIiK2pzX2QyY19nZXRfdmFsKCJzbzd5dXFhajRkd2NjOHMiKSsiIn0seyJuYW1lIjoiZnJvbUFBIiwidmFsdWUiOiIifSx7Im5hbWUiOiJsYW5nIiwidmFsdWUiOiJGUkVOQ0gifV19KTt9KTt9Y2F0Y2goZXp6MSl7aWYoY29uc29sZSYmY29uc29sZS5sb2cpCmNvbnNvbGUubG9nKGV6ejEpO30KdmFyIGlkZW50X2QwNWE4Mjc5ODI2ZWEzMWIwZWI5MTdiNjc5YjU1ZTM1O3RyeXtqUXVlcnkoZnVuY3Rpb24oJCl7JCgiI2NvbnRhY3Rwb3B1cCIpLnBvcHVwaXplKHsib25BZnRlckluaXRpYWxpemUiOmZ1bmN0aW9uKHNlbGYpe2NvbnRhY3RQb3B1cC5zZXRDb25maWcoe3R5cGU6c2VsZi5zZXR0aW5ncy5mb3JtLnR5cGV9KTtpZih0eXBlb2YgcG9wdXBEZWZhdWx0T25BZnRlckluaXRpYWxpemUhPSJ1bmRlZmluZWQiKXt2YXIgdG1wPXBvcHVwRGVmYXVsdE9uQWZ0ZXJJbml0aWFsaXplKCJuZXciLCIiK2pzX2QyY19nZXRfdmFsKCI2anlwNDY2NHZnd3M4MHciKSsiIix0cnVlLCIiLCIiK2pzX2QyY19nZXRfdmFsKCIxNmQ3dnd0NjZwbW93bzBrIikrIiIsImNvbnRhY3Rwb3B1cCIsZmFsc2UpO2lmKHRydWUmJnRtcClzZWxmLnNldHRpbmdzLnNob3dvbmxvYWQ9MjA7cmV0dXJuIHRtcDt9fSwib25CZWZvcmVTZW5kTWFpbCI6ZnVuY3Rpb24oc2VsZil7Y29udGFjdFBvcHVwLm9uQmVmb3JlU2VuZE1haWwoKTt9LCJjb29raWVEdXJhdGlvbiI6MzAsImNvb2tpZU5hbWUiOm51bGwsImNvb2tpZUNyZWF0ZSI6bnVsbCwiZ29vZ2xlVHJhY2tpbmciOnsiaWRTdWZmaXgiOiIiLCJsYWJlbCI6IiIsImxhYmVsc2VjdGlvbiI6IiIsImlzZXhwcmVzcyI6MCwiaXNwcm9tbyI6MCwiaXNob21lcGFnZSI6MCwiaXNtb2JpbGUiOjB9LCJmb3JtIjp7ImVtYWlsaWQiOiJDb250YWN0VXNSZXF1ZXN0Iiwic2VuZFRvIjpudWxsLCJzZW5kVG9BREYiOm51bGwsInNob3dFbWFpbENvbmZpcm1hdGlvbiI6dHJ1ZSwiY29uZmlybWF0aW9uIjp7InRpdGxlIjoiVm90cmUgbWVzc2FnZSBhIGJpZW4gJmVhY3V0ZTt0JmVhY3V0ZTsgZW52b3kmZWFjdXRlOyEiLCJib2R5IjoiTWVyY2khIFVuIG1lbWJyZSBkZSBub3RyZSAmZWFjdXRlO3F1aXBlIHZvdXMgY29udGFjdGVyYSBzb3VzIHBldS4ifSwidHlwZSI6Im5ldyJ9LCJzdGF0ZSI6W10sInZlaGljbGVTdGF0ZSI6InVzZWQiLCJjbG9zZU9uU3VibWl0Ijp0cnVlLCJmaWxsZmxhZyI6ZmFsc2UsIm5vdHJhbnNmb3JtIjp0cnVlLCJuYW1lIjpmYWxzZSwiYW5pbWF0aW9uIjoiZmFkZUFuZFBvcCIsImFuaW1hdGlvblNwZWVkIjozMDAsImNsb3NlT25CYWNrZ3JvdW5kQ2xpY2siOmZhbHNlLCJkaXNtaXNzTW9kYWxDbGFzcyI6ImNsb3NlLXJldmVhbC1tb2RhbCIsImNsb3NlQnV0dG9uIjp0cnVlLCJieXBhc3NDb25zZW50IjpmYWxzZSwidGhyZXNob2xkIjpmYWxzZSwidGhyZXNob2xkVmFsdWUiOiI3NSIsInNjcm9sbHVwIjpmYWxzZSwibWFpbnBvcHVwIjp0cnVlLCJjb3VudGRvd24iOjE3ODIwMTQ0MDAsImNvbmZpcm1Gb3JtIjpbXX0pO30pO31jYXRjaChlenoxKXtpZihjb25zb2xlJiZjb25zb2xlLmxvZykKY29uc29sZS5sb2coZXp6MSk7fQp2YXIgaWRlbnRfM2Q3ODU0Mjc0MTI1ZWE2OWIwMjQ1NzU2NDZhNjk4ZGM7dHJ5e21haWxTZW50SGFuZGxlcj1nZXRNYWlsU2VudEhhbmRsZXIoJ19jb250YWN0cG9wdXAnKTt9Y2F0Y2goZXp6MSl7aWYoY29uc29sZSYmY29uc29sZS5sb2cpCmNvbnNvbGUubG9nKGV6ejEpO30KdmFyIGlkZW50X2EzODdhMDdlMDQyNzdmNDlmMjJiNmIzMTJkOTk3MTE2O3RyeXtqUXVlcnkoZnVuY3Rpb24oJCl7JCgiI2NyZWRpdFNjb3JlUG9wdXBDb250YWluZXIiKS5wb3B1cGl6ZSh7Im9uQWZ0ZXJzdWJtaXQiOmZ1bmN0aW9uKHNlbGYpe3NldENvb2tpZSgnY3JlZGl0U2NvcmVFbWJlZGRlZEZpbGxlZCcsMSwzMCk7aWYodHlwZW9mIGdVc2VkU3JwQXBweiE9PSd1bmRlZmluZWQnKXtnVXNlZFNycEFwcHouZmlsdGVySW50ZXJmYWNlLmNsZWFyUHJveHlDYWNoZUFuZFJlRmV0Y2goKTt9fSwib25BZnRlckluaXRpYWxpemUiOmZ1bmN0aW9uKHNlbGYpeyhuZXcgRm9ybSgpKS5tYXNrUGhvbmUoIiNjcmVkaXRTY29yZVBvcHVwQ29udGFpbmVyICNjcmVkaXRTY29yZVBob25lIik7dmFyIGxhbmc9JCgiYm9keSIpLmhhc0NsYXNzKCJFTkdMSVNIIik\/ImVuIjoiZnIiO3ZhciBzdGFydERhdGU9bmV3IERhdGUoKTtzdGFydERhdGUuc2V0RnVsbFllYXIoc3RhcnREYXRlLmdldEZ1bGxZZWFyKCktMzApO3ZhciBtYXhEYXRlPW5ldyBEYXRlKCk7bWF4RGF0ZS5zZXRGdWxsWWVhcihtYXhEYXRlLmdldEZ1bGxZZWFyKCktMTgpO3ZhciBtaW5EYXRlPW5ldyBEYXRlKCk7bWluRGF0ZS5zZXRGdWxsWWVhcihtaW5EYXRlLmdldEZ1bGxZZWFyKCktMTIwKTskKCIuY3JlZGl0U2NvcmVCaXJ0aGRhdGUiKS5uZWJDYWwoe21heERhdGU6bWF4RGF0ZS5mb3JtYXQoInl5eXktTU0tZGQiKSxtaW5EYXRlOm1pbkRhdGUuZm9ybWF0KCJ5eXl5LU1NLWRkIiksZGVmYXVsdERhdGU6c3RhcnREYXRlLmZvcm1hdCgieXl5eS1NTS1kZCIpLGZvcm1hdDoiZGQgTU1NIHl5eXkiLGRlZmF1bHRWaWV3OiJkZWNhZGUifSk7JCgnI2NyZWRpdFNjb3JlUG9wdXBDb250YWluZXIgaW5wdXRbZGF0YS1nb29nbGUtcGxhY2VzLWN1c3RvbT0idHJ1ZSJdJykuZ29vZ2xlUGxhY2VzKCk7dmFyIHBvcHVwVHlwZT0ibmV3IjtpZih0eXBlb2YgcG9wdXBEZWZhdWx0T25BZnRlckluaXRpYWxpemUhPSJ1bmRlZmluZWQiKXt2YXIgdG1wPXBvcHVwRGVmYXVsdE9uQWZ0ZXJJbml0aWFsaXplKCJuZXciLCIiK2pzX2QyY19nZXRfdmFsKCI2anlwNDY2NHZnd3M4MHciKSsiIixmYWxzZSwiIiwiIitqc19kMmNfZ2V0X3ZhbCgiMTZkN3Z3dDY2cG1vd28wayIpKyIiLCJjcmVkaXRTY29yZVBvcHVwQ29udGFpbmVyIixmYWxzZSk7aWYoMCYmdG1wKXtzZWxmLnNldHRpbmdzLnNob3dvbmxvYWQ9MTA7fQplbHNle3NlbGYuc2V0dGluZ3Muc2hvd29ubG9hZD1mYWxzZTt9CnJldHVybiB0bXA7fX0sImNvb2tpZUR1cmF0aW9uIjo2MCwiY29va2llTmFtZSI6ImNyZWRpdFNjb3JlU2hvd24iLCJjb29raWVDcmVhdGUiOiJvbk9wZW4iLCJnb29nbGVUcmFja2luZyI6eyJpZFN1ZmZpeCI6IiIsImxhYmVsIjoiIiwibGFiZWxzZWN0aW9uIjoiIiwiaXNleHByZXNzIjowLCJpc3Byb21vIjowLCJpc2hvbWVwYWdlIjowLCJpc21vYmlsZSI6MH0sImZvcm0iOnsiZW1haWxpZCI6IkNyZWRpdFNjb3JlIiwib2ZmZXJ0eXBlIjoiQ3JlZGl0U2NvcmUiLCJuYW1lIjpudWxsLCJzZW5kVG8iOiIiK2pzX2QyY19nZXRfdmFsKCIxM2RxdHNuY2Q4MXdrODQ0IikrIiIsInNlbmRUb0FERiI6IiIranNfZDJjX2dldF92YWwoIjVjY3lnazkyNW1nd2cwIikrIiIsIk9LQnV0dG9uQ2xhc3MiOiJjcmVkaXRTY29yZV9idG4iLCJDYW5jZWxCdXR0b25DbGFzcyI6ImNhbmNlbEJ0biIsInNob3dFbWFpbENvbmZpcm1hdGlvbiI6dHJ1ZSwiZnJvbUFBIjpmYWxzZSwiY29uZmlybWF0aW9uIjp7InRpdGxlIjoiVm90cmUgZGVtYW5kZSBhIGJpZW4gJmVhY3V0ZTt0JmVhY3V0ZTsgZW52b3kmZWFjdXRlO2UhIiwiYm9keSI6Ik1lcmNpISBVbiBjb25zZWlsbGVyIGNvbW11bmlxdWVyYSBhdmVjIHZvdXMgcG91ciB2b3VzIGRvbm5lciBsZXMgZCZlYWN1dGU7dGFpbHMgc3VyIHZvdHJlIHBvdGVudGllbCBkZSBjciZlYWN1dGU7ZGl0LiIsIm5vb3ZlcndyaXRlIjp0cnVlfX0sInN0YXRlIjpbXSwidmVoaWNsZVN0YXRlIjoidXNlZCIsImNsb3NlT25TdWJtaXQiOnRydWUsImZpbGxmbGFnIjpmYWxzZSwibm90cmFuc2Zvcm0iOnRydWUsIm5hbWUiOmZhbHNlLCJhbmltYXRpb24iOiJmYWRlQW5kUG9wIiwiYW5pbWF0aW9uU3BlZWQiOjMwMCwiY2xvc2VPbkJhY2tncm91bmRDbGljayI6ZmFsc2UsImRpc21pc3NNb2RhbENsYXNzIjoiY2xvc2UtcmV2ZWFsLW1vZGFsIiwiY2xvc2VCdXR0b24iOnRydWUsImJ5cGFzc0NvbnNlbnQiOmZhbHNlLCJ0aHJlc2hvbGQiOmZhbHNlLCJ0aHJlc2hvbGRWYWx1ZSI6MCwic2Nyb2xsdXAiOmZhbHNlLCJtYWlucG9wdXAiOmZhbHNlLCJzaG93b25sb2FkIjpmYWxzZSwiY291bnRkb3duIjoxNzgyMDE0NDAwLCJjb25maXJtRm9ybSI6W119KTt9KTt9Y2F0Y2goZXp6MSl7aWYoY29uc29sZSYmY29uc29sZS5sb2cpCmNvbnNvbGUubG9nKGV6ejEpO30KdmFyIGlkZW50X2Q2NmY1ZDk0ODU5NzQyYzZhNTFmOGJhZDljMGRmYWUwO3RyeXttYWlsU2VudEhhbmRsZXI9Z2V0TWFpbFNlbnRIYW5kbGVyKCdfY3JlZGl0U2NvcmVQb3B1cENvbnRhaW5lcicpO31jYXRjaChlenoxKXtpZihjb25zb2xlJiZjb25zb2xlLmxvZykKY29uc29sZS5sb2coZXp6MSk7fQp2YXIgaWRlbnRfOTRlNGM1OWMwYTRmMzRmN2E0M2YxMDUwYzU2MDY5ZmI7dHJ5e2pRdWVyeShmdW5jdGlvbigkKXskKCIjY3JlZGl0U2NvcmVDb25maXJtUG9wdXBDb250YWluZXIiKS5wb3B1cGl6ZSh7Im9uQmVmb3JlT3BlbiI6ZnVuY3Rpb24oc2VsZil7aWYoZW1haWxIYW5kbGVyKXskKCIjY3JlZGl0U2NvcmVDb25maXJtUG9wdXBDb250YWluZXIgLmNyZWRpdFNjb3JlQ29uZmlybUlucHV0IC5maXJzdG5hbWUiKS52YWwoZW1haWxIYW5kbGVyLnVzZXJGaXJzdE5hbWUpOyQoIiNjcmVkaXRTY29yZUNvbmZpcm1Qb3B1cENvbnRhaW5lciAuY3JlZGl0U2NvcmVDb25maXJtSW5wdXQgLmxhc3RuYW1lIikudmFsKGVtYWlsSGFuZGxlci51c2VyTGFzdE5hbWUpOyQoIiNjcmVkaXRTY29yZUNvbmZpcm1Qb3B1cENvbnRhaW5lciAuY3JlZGl0U2NvcmVDb25maXJtSW5wdXQgLmVtYWlsIikudmFsKGVtYWlsSGFuZGxlci51c2VyRW1haWwpOyQoIiNjcmVkaXRTY29yZUNvbmZpcm1Qb3B1cENvbnRhaW5lciAuY3JlZGl0U2NvcmVDb25maXJtSW5wdXQgLnBob25lIikudmFsKGVtYWlsSGFuZGxlci51c2VyUGhvbmUpOyQoIiNjcmVkaXRTY29yZUNvbmZpcm1Qb3B1cENvbnRhaW5lciAuY3JlZGl0U2NvcmVDb25maXJtSW5wdXQgLmJpcnRoZGF0ZSIpLnZhbChlbWFpbEhhbmRsZXIuYmlydGhkYXRlKTskKCIjY3JlZGl0U2NvcmVDb25maXJtUG9wdXBDb250YWluZXIgLmNyZWRpdFNjb3JlQ29uZmlybUlucHV0IC5hZGRyZXNzIikudmFsKGVtYWlsSGFuZGxlci51c2VyQWRkcmVzcyk7fX0sIm9uQ2xvc2UiOmZ1bmN0aW9uKHNlbGYpe2VtYWlsSGFuZGxlci5za2lwR2VvTG9jPWZhbHNlO30sIm9uQmVmb3Jlc3VibWl0IjpmdW5jdGlvbihzZWxmKXtlbWFpbEhhbmRsZXIuc2tpcEdlb0xvYz10cnVlO2VtYWlsSGFuZGxlci5sZWFkVGl0bGVUZXh0PSQoIiNjcmVkaXRTY29yZUNvbmZpcm1Qb3B1cENvbnRhaW5lciAuY3JlZGl0U2NvcmVDb25maXJtSW5wdXQgI2NyZWRpdFNjb3JlTGVhZFR5cGUiKS52YWwoKTt9LCJvbkFmdGVyc3VibWl0IjpmdW5jdGlvbihzZWxmKXtlbWFpbEhhbmRsZXIuc2tpcEdlb0xvYz1mYWxzZTtzZXRDb29raWUoJ2NyZWRpdFNjb3JlRW1iZWRkZWRGaWxsZWQnLDEsMzApO2lmKHR5cGVvZiBnVXNlZFNycEFwcHohPT0ndW5kZWZpbmVkJyl7Z1VzZWRTcnBBcHB6LmZpbHRlckludGVyZmFjZS5jbGVhclByb3h5Q2FjaGVBbmRSZUZldGNoKCk7fX0sIm9uQWZ0ZXJJbml0aWFsaXplIjpmdW5jdGlvbihzZWxmKXsobmV3IEZvcm0oKSkubWFza1Bob25lKCIjY3JlZGl0U2NvcmVDb25maXJtUG9wdXBDb250YWluZXIgLmNyZWRpdFNjb3JlUGhvbmUiKTt2YXIgbGFuZz0kKCJib2R5IikuaGFzQ2xhc3MoIkVOR0xJU0giKT8iZW4iOiJmciI7dmFyIHN0YXJ0RGF0ZT1uZXcgRGF0ZSgpO3N0YXJ0RGF0ZS5zZXRGdWxsWWVhcihzdGFydERhdGUuZ2V0RnVsbFllYXIoKS0zMCk7dmFyIG1heERhdGU9bmV3IERhdGUoKTttYXhEYXRlLnNldEZ1bGxZZWFyKG1heERhdGUuZ2V0RnVsbFllYXIoKS0xOCk7dmFyIG1pbkRhdGU9bmV3IERhdGUoKTttaW5EYXRlLnNldEZ1bGxZZWFyKG1pbkRhdGUuZ2V0RnVsbFllYXIoKS0xMjApOyQoIiNjcmVkaXRTY29yZUNvbmZpcm1Qb3B1cENvbnRhaW5lciAuY3JlZGl0U2NvcmVCaXJ0aGRhdGUiKS5uZWJDYWwoe21heERhdGU6bWF4RGF0ZS5mb3JtYXQoInl5eXktTU0tZGQiKSxtaW5EYXRlOm1pbkRhdGUuZm9ybWF0KCJ5eXl5LU1NLWRkIiksZGVmYXVsdERhdGU6c3RhcnREYXRlLmZvcm1hdCgieXl5eS1NTS1kZCIpLGZvcm1hdDoiZGQgTU1NIHl5eXkiLGRlZmF1bHRWaWV3OiJkZWNhZGUifSk7JCgnI2NyZWRpdFNjb3JlQ29uZmlybVBvcHVwQ29udGFpbmVyIGlucHV0W2RhdGEtZ29vZ2xlLXBsYWNlcy1jdXN0b209InRydWUiXScpLmdvb2dsZVBsYWNlcygpOyQoIiNjcmVkaXRTY29yZUNvbmZpcm1Qb3B1cENvbnRhaW5lciIpLm9uKCJjbGljayIsIi5jcmVkaXRTY29yZUNvbmZpcm1fYnRuIixmdW5jdGlvbigpe3NlbGYuc3VibWl0KCk7fSk7fSwiY29va2llRHVyYXRpb24iOjYwLCJjb29raWVOYW1lIjoiY3JlZGl0U2NvcmVDb25maXJtUG9wdXBTaG93biIsImNvb2tpZUNyZWF0ZSI6Im9uT3BlbiIsImdvb2dsZVRyYWNraW5nIjp7ImlkU3VmZml4IjoiIiwibGFiZWwiOiIiLCJsYWJlbHNlY3Rpb24iOiIiLCJpc2V4cHJlc3MiOjAsImlzcHJvbW8iOjAsImlzaG9tZXBhZ2UiOjAsImlzbW9iaWxlIjowfSwiZm9ybSI6eyJlbWFpbGlkIjoiQ3JlZGl0U2NvcmUiLCJvZmZlcnR5cGUiOiJDcmVkaXRTY29yZSIsIm5hbWUiOm51bGwsInNlbmRUbyI6IiIranNfZDJjX2dldF92YWwoIjEzZHF0c25jZDgxd2s4NDQiKSsiIiwic2VuZFRvQURGIjoiIitqc19kMmNfZ2V0X3ZhbCgiNWNjeWdrOTI1bWd3ZzAiKSsiIiwiT0tCdXR0b25DbGFzcyI6ImNyZWRpdFNjb3JlQ29uZmlybV9idG4iLCJDYW5jZWxCdXR0b25DbGFzcyI6ImNhbmNlbEJ0biIsInNob3dFbWFpbENvbmZpcm1hdGlvbiI6dHJ1ZSwiZnJvbUFBIjpmYWxzZSwiY29uZmlybWF0aW9uIjp7InRpdGxlIjoiVm90cmUgZGVtYW5kZSBhIGJpZW4gJmVhY3V0ZTt0JmVhY3V0ZTsgZW52b3kmZWFjdXRlO2UhIiwiYm9keSI6Ik1lcmNpISBVbiBjb25zZWlsbGVyIGNvbW11bmlxdWVyYSBhdmVjIHZvdXMgcG91ciB2b3VzIGRvbm5lciBsZXMgZCZlYWN1dGU7dGFpbHMgc3VyIHZvdHJlIHBvdGVudGllbCBkZSBjciZlYWN1dGU7ZGl0LiIsIm5vb3ZlcndyaXRlIjp0cnVlfX0sInN0YXRlIjpbXSwidmVoaWNsZVN0YXRlIjoidXNlZCIsImNsb3NlT25TdWJtaXQiOnRydWUsImZpbGxmbGFnIjpmYWxzZSwibm90cmFuc2Zvcm0iOnRydWUsIm5hbWUiOmZhbHNlLCJhbmltYXRpb24iOiJmYWRlQW5kUG9wIiwiYW5pbWF0aW9uU3BlZWQiOjMwMCwiY2xvc2VPbkJhY2tncm91bmRDbGljayI6ZmFsc2UsImRpc21pc3NNb2RhbENsYXNzIjoiY2xvc2UtcmV2ZWFsLW1vZGFsIiwiY2xvc2VCdXR0b24iOnRydWUsImJ5cGFzc0NvbnNlbnQiOnRydWUsInRocmVzaG9sZCI6ZmFsc2UsInRocmVzaG9sZFZhbHVlIjowLCJzY3JvbGx1cCI6ZmFsc2UsIm1haW5wb3B1cCI6ZmFsc2UsInNob3dvbmxvYWQiOmZhbHNlLCJjb3VudGRvd24iOjE3ODIwMTQ0MDAsImNvbmZpcm1Gb3JtIjpbXX0pO30pO31jYXRjaChlenoxKXtpZihjb25zb2xlJiZjb25zb2xlLmxvZykKY29uc29sZS5sb2coZXp6MSk7fQp2YXIgaWRlbnRfMzYzODdkOTIwOTY4NzhkNzliMDU2OTE1ZWNiNTM0OGY7dHJ5e21haWxTZW50SGFuZGxlcj1nZXRNYWlsU2VudEhhbmRsZXIoJ19jcmVkaXRTY29yZUNvbmZpcm1Qb3B1cENvbnRhaW5lcicpO31jYXRjaChlenoxKXtpZihjb25zb2xlJiZjb25zb2xlLmxvZykKY29uc29sZS5sb2coZXp6MSk7fQp2YXIgaWRlbnRfMGY3MjI0ZDQ3MDEzNmE5N2Q1ZTFmMjU2NWYwMTViOTU7dHJ5e2pRdWVyeShmdW5jdGlvbigkKXskKCIjZmluYW5jZU11bHRpc3RlcFBvcHVwQ29udGFpbmVyIikucG9wdXBpemUoeyJvbkFmdGVySW5pdGlhbGl6ZSI6ZnVuY3Rpb24oc2VsZil7dmFyIG11bHRpc3RlcD1pbml0aWFsaXplRmluYW5jZU11bHRpU3RlcChzZWxmLnRhcmdldCk7JChkb2N1bWVudCkub24oJ2NyZWRpdC5tdWx0aXN0ZXBwb3B1cC5zdGFydCcsZnVuY3Rpb24oZSl7bXVsdGlzdGVwLnN0YXJ0KCk7fSk7fSwiY29va2llRHVyYXRpb24iOjMwLCJjb29raWVOYW1lIjpudWxsLCJjb29raWVDcmVhdGUiOm51bGwsImdvb2dsZVRyYWNraW5nIjp7ImlkU3VmZml4IjoiIiwibGFiZWwiOiIiLCJsYWJlbHNlY3Rpb24iOiIiLCJpc2V4cHJlc3MiOjAsImlzcHJvbW8iOjAsImlzaG9tZXBhZ2UiOjAsImlzbW9iaWxlIjowfSwiZm9ybSI6eyJlbWFpbGlkIjoiQ3JlZGl0TXVsdGlzdGVwUmVxdWVzdCIsIm9mZmVydHlwZSI6IkNyZWRpdE11bHRpc3RlcFJlcXVlc3QiLCJuYW1lIjpudWxsLCJzZW5kVG8iOiIiK2pzX2QyY19nZXRfdmFsKCIxM2RxdHNuY2Q4MXdrODQ0IikrIiIsInNlbmRUb0FERiI6IiIranNfZDJjX2dldF92YWwoIjVjY3lnazkyNW1nd2cwIikrIiIsIk9LQnV0dG9uQ2xhc3MiOiJzdWJtaXRCdG4iLCJDYW5jZWxCdXR0b25DbGFzcyI6ImNhbmNlbEJ0biIsInNob3dFbWFpbENvbmZpcm1hdGlvbiI6ZmFsc2UsImZyb21BQSI6ZmFsc2UsImNvbmZpcm1hdGlvbiI6eyJ0aXRsZSI6bnVsbCwiYm9keSI6bnVsbH19LCJzdGF0ZSI6W10sInZlaGljbGVTdGF0ZSI6InVzZWQiLCJjbG9zZU9uU3VibWl0Ijp0cnVlLCJmaWxsZmxhZyI6ZmFsc2UsIm5vdHJhbnNmb3JtIjp0cnVlLCJuYW1lIjpmYWxzZSwiYW5pbWF0aW9uIjoiZmFkZUFuZFBvcCIsImFuaW1hdGlvblNwZWVkIjozMDAsImNsb3NlT25CYWNrZ3JvdW5kQ2xpY2siOmZhbHNlLCJkaXNtaXNzTW9kYWxDbGFzcyI6ImNsb3NlLXJldmVhbC1tb2RhbCIsImNsb3NlQnV0dG9uIjp0cnVlLCJieXBhc3NDb25zZW50IjpmYWxzZSwidGhyZXNob2xkIjpmYWxzZSwidGhyZXNob2xkVmFsdWUiOjAsInNjcm9sbHVwIjpmYWxzZSwibWFpbnBvcHVwIjpmYWxzZSwic2hvd29ubG9hZCI6ZmFsc2UsImNvdW50ZG93biI6MTc4MjAxNDQwMCwiY29uZmlybUZvcm0iOlt7Im5hbWUiOiJsYWJlbCIsInZhbHVlIjoiIiwiY2xhc3MiOiJsYWJlbGVtYWlsIn0seyJuYW1lIjoic2VjdGlvbiIsInZhbHVlIjoiIiwiY2xhc3MiOiJsYWJlbHNlY3Rpb24ifSx7Im5hbWUiOiJicmFuZCIsInZhbHVlIjoiIitqc19kMmNfZ2V0X3ZhbCgiMWVyaXY5MDBwZGE4OHd3OCIpKyIiLCJjbGFzcyI6ImJyYW5kZW1haWwifSx7Im5hbWUiOiJtb2RlbCIsInZhbHVlIjoiIitqc19kMmNfZ2V0X3ZhbCgiMTBwYTd2M3FlbGRjb3NrIikrIiIsImNsYXNzIjoibW9kZWxlbWFpbCJ9LHsibmFtZSI6InllYXIiLCJ2YWx1ZSI6IiIranNfZDJjX2dldF92YWwoInI4Mnpma3hhMmR3c3MwMCIpKyIiLCJjbGFzcyI6InllYXJlbWFpbCJ9LHsibmFtZSI6Imdvb2dsZWlkIiwidmFsdWUiOiIifSx7Im5hbWUiOiJnb29nbGVpZGQyY21lZGlhIiwidmFsdWUiOiIifSx7Im5hbWUiOiJiaW5nY29uaWQiLCJ2YWx1ZSI6IiJ9LHsibmFtZSI6ImJpbmdhY3Rpb25pZCIsInZhbHVlIjoiIn0seyJuYW1lIjoiYmluZ2RvbWFpbmlkIiwidmFsdWUiOiIifSx7Im5hbWUiOiJhZHJvbGxBZHYiLCJ2YWx1ZSI6IiJ9LHsibmFtZSI6ImFkcm9sbFBpeCIsInZhbHVlIjoiIn0seyJuYW1lIjoiZmFjZWJvb2tDb25JZCIsInZhbHVlIjoiMzAzMzA4NDQ2Njg1NTgxIn0seyJuYW1lIjoiZG9tYWluIiwidmFsdWUiOiJjYXJsZWZvcmQuY29tIn0seyJuYW1lIjoicmVmZXJyZXIiLCJ2YWx1ZSI6IiIranNfZDJjX2dldF92YWwoImkzZ3NheGdzNWprOHdjayIpKyIifSx7Im5hbWUiOiJpc2V4cHJlc3MiLCJ2YWx1ZSI6IjAiLCJjbGFzcyI6ImlzZXhwcmVzcyJ9LHsibmFtZSI6ImlzcHJvbW8iLCJ2YWx1ZSI6IjAifSx7Im5hbWUiOiJpc2hvbWVwYWdlIiwidmFsdWUiOiIwIn0seyJuYW1lIjoidGV4dENhclNlY3Rpb25UeXBlIiwidmFsdWUiOiIiK2pzX2QyY19nZXRfdmFsKCJzbzd5dXFhajRkd2NjOHMiKSsiIn0seyJuYW1lIjoiZnJvbUFBIiwidmFsdWUiOiIifSx7Im5hbWUiOiJsYW5nIiwidmFsdWUiOiJGUkVOQ0gifV19KTt9KTt9Y2F0Y2goZXp6MSl7aWYoY29uc29sZSYmY29uc29sZS5sb2cpCmNvbnNvbGUubG9nKGV6ejEpO30KdmFyIGlkZW50X2M3ZTViMmJmMTk3MTVkODdjZDNmMDljYWJmN2JjODIyO3RyeXtqUXVlcnkoZnVuY3Rpb24oJCl7JCgiI3JldHVyblBvcHVwQ29udGFpbmVyIikucG9wdXBpemUoeyJvbkJlZm9yZUluaXRpYWxpemUiOmZ1bmN0aW9uKHBvcHVwKXt2YXIgb25CZWZvcmVJbml0aWFsaXplUmV0dXJuPWZhbHNlO2lmKENvb2tpZXMuZ2V0KCdsYXN0VmlzaXRWRFAnKSE9PW51bGwpe3ZhciB0aW1lc3RhbXBEaWZmPU1hdGguZmxvb3IobmV3IERhdGUoKS5nZXRUaW1lKCkvIDEwMDApO3ZhciB0aW1lRGlmZj0odGltZXN0YW1wRGlmZi1Db29raWVzLmdldCgnbGFzdFZpc2l0VkRQJykpO2lmKHRpbWVEaWZmPjI0KjYwKjYwKXtvbkJlZm9yZUluaXRpYWxpemVSZXR1cm49dHJ1ZTtzZWxmLnNldHRpbmdzLmVuZFBvcHVwUXVldWU9dHJ1ZTt9fQpyZXR1cm4gb25CZWZvcmVJbml0aWFsaXplUmV0dXJuO30sInNob3dvbmxvYWQiOnRydWUsImNvb2tpZUR1cmF0aW9uIjoxNzI4MDAsImNvb2tpZU5hbWUiOiJyZXR1cm5Qb3B1cFNob3duIiwiY29va2llQ3JlYXRlIjoib25PcGVuIiwiZ29vZ2xlVHJhY2tpbmciOnsiaWRTdWZmaXgiOiIiLCJsYWJlbCI6IlJldHVybiBwb3B1cCIsImxhYmVsc2VjdGlvbiI6Ik5vdXZlYXUiLCJpc2V4cHJlc3MiOjAsImlzcHJvbW8iOjAsImlzaG9tZXBhZ2UiOjAsImlzbW9iaWxlIjowfSwiZm9ybSI6eyJlbWFpbGlkIjoiUmV0dXJuVmlzaXRvciIsIm9mZmVydHlwZSI6IlJFVFVSTl9QT1BVUCIsIm5hbWUiOm51bGwsInNlbmRUbyI6ImUzOGEwZDllMDRhN2JjODZiOWU2ZDhlYmVjM2U5N2RhfDE1Nzk5MDE0NDgiLCJzZW5kVG9BREYiOiIxMzFkMTlhOGIxNjU3NGQwYzk1ZjViYjcxNzNiZGNlY3wxNTc5OTAxNDQ4IiwiT0tCdXR0b25DbGFzcyI6InJldHVyblBvcHVwX3N1Ym1pdCIsIkNhbmNlbEJ1dHRvbkNsYXNzIjoiY2FuY2VsQnRuIiwic2hvd0VtYWlsQ29uZmlybWF0aW9uIjp0cnVlLCJmcm9tQUEiOmZhbHNlLCJjb25maXJtYXRpb24iOnsidGl0bGUiOm51bGwsImJvZHkiOm51bGx9fSwic3RhdGUiOltdLCJ2ZWhpY2xlU3RhdGUiOiJuZXciLCJjbG9zZU9uU3VibWl0Ijp0cnVlLCJmaWxsZmxhZyI6ZmFsc2UsIm5vdHJhbnNmb3JtIjp0cnVlLCJuYW1lIjpmYWxzZSwiYW5pbWF0aW9uIjoiZmFkZUFuZFBvcCIsImFuaW1hdGlvblNwZWVkIjozMDAsImNsb3NlT25CYWNrZ3JvdW5kQ2xpY2siOmZhbHNlLCJkaXNtaXNzTW9kYWxDbGFzcyI6ImNsb3NlLXJldmVhbC1tb2RhbCIsImNsb3NlQnV0dG9uIjp0cnVlLCJieXBhc3NDb25zZW50IjpmYWxzZSwidGhyZXNob2xkIjpmYWxzZSwidGhyZXNob2xkVmFsdWUiOjAsInNjcm9sbHVwIjpmYWxzZSwibWFpbnBvcHVwIjpmYWxzZSwicHJpb3JpdHkiOjEsImRlbGF5IjowLCJjb3VudGRvd24iOjE3ODIwMTQ0MDAsImNvbmZpcm1Gb3JtIjpbXX0pO30pO31jYXRjaChlenoxKXtpZihjb25zb2xlJiZjb25zb2xlLmxvZykKY29uc29sZS5sb2coZXp6MSk7fQp2YXIgaWRlbnRfOTcyY2Y5NDE0MTE0Njc0NDc4OGUyMjEyYTYyMWI5NzA7dHJ5e21haWxTZW50SGFuZGxlcj1nZXRNYWlsU2VudEhhbmRsZXIoJ19yZXR1cm5Qb3B1cENvbnRhaW5lcicpO31jYXRjaChlenoxKXtpZihjb25zb2xlJiZjb25zb2xlLmxvZykKY29uc29sZS5sb2coZXp6MSk7fTsKLyoqIC9qcy9za2VsZXRvbi5jb250cm9sbGVyLmpzICoqLwp2YXIgX19fZDJjX3NrZWxldG9uY29udHJvbGxlcmpzX2Nfb249IjIwMjYtMDQtMDEgMTE6MzA6MDIiOyd1c2Ugc3RyaWN0Jzt0cnl7alF1ZXJ5KGZ1bmN0aW9uKGMpe2xldCBoO2NvbnNvbGUubG9nKCJHU1BFRUQtQUZURVItSlFVRVJZOiIrKERhdGUubm93KCktKG51bGwhPShoPXdpbmRvdy5nVGVzdFNwZWVkQ29ubik\/aDowKSkvMUUzKTt3aW5kb3cuZ1Jlc291cmNlTG9hZGVyQW5kSnF1ZXJ5SXNSZWFkeT0hMDtzZXRUaW1lb3V0KCgpPT57dmFyIGI9YygiI2VtYmVkLWNvbnRhaW5lci15b3V0dWJlLWhvbWVwYWdlLWJ5aWQiKTtjb25zb2xlLmxvZygiU0tFTEVUT058I2VtYmVkLWNvbnRhaW5lci15b3V0dWJlLWhvbWVwYWdlLWJ5aWQiKTtpZihiLmxlbmd0aCl7dmFyIGE9Yi5hdHRyKCJkYXRhLWlmcmFtZS1hdHRyaWJ1dGVzIik7InVuZGVmaW5lZCIhPT1hJiZ2b2lkIDAhPT1hJiYoYT1KU09OLnBhcnNlKGF0b2IoYSkpLGMoIjxpZnJhbWUvPiIsYSkuYXBwZW5kVG8oYikpfX0sN0UzKTtzZXRUaW1lb3V0KCgpPT57dmFyIGI9YygiI2VtYmVkLWNvbnRhaW5lci1tYXBzLWhvbWVwYWdlLWJ5aWQiKTsKY29uc29sZS5sb2coIlNLRUxFVE9OfCNlbWJlZC1jb250YWluZXItbWFwcy1ob21lcGFnZS1ieWlkIik7aWYoYi5sZW5ndGgpe3ZhciBhPWIuYXR0cigiZGF0YS1pZnJhbWUtYXR0cmlidXRlcyIpOyJ1bmRlZmluZWQiIT09YSYmdm9pZCAwIT09YSYmKGE9SlNPTi5wYXJzZShhdG9iKGEpKSxpbmplY3RHb29nbGVNYXBzS2V5KGZ1bmN0aW9uKGYpe2Euc3JjPWEuc3JjLnJlcGxhY2UoIl9fS0VZX18iLGYpO2MoIjxpZnJhbWUvPiIsYSkuYXBwZW5kVG8oYil9KSl9fSw3RTMpO3dpbmRvdy5kZWxheWVkQ3NzPWZ1bmN0aW9uKGIpe3ZhciBhPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInN0eWxlIik7YS50eXBlPSJ0ZXh0L2NzcyI7YS5zdHlsZVNoZWV0P2Euc3R5bGVTaGVldC5jc3NUZXh0PWI6YS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShiKSk7Y29uc29sZS5sb2coIlNLRUxFVE9OfERFTEFZRURMT0FEQ1NTfCIrYik7ZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChhKX07CndpbmRvdy5kZWxheWVkQ3NzKCIuaGlkZU9uUHJlTG9hZHt2aXNpYmlsaXR5OnZpc2libGUgIWltcG9ydGFudDt9Iik7c2V0VGltZW91dCgoKT0+e2NvbnNvbGUubG9nKCJTS0VMRVRPTnxzZXR0aW5nIG1lbnUgbXV0YXRpb24gb2JzZXJ2ZXIiKTt0cnl7Y29uc3QgYT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIuc2tlbGV0b24uc2tlbGV0b24tZGVza3RvcC5za2VsZXRvbi1jb25kLTIiKTtpZihudWxsIT09YSl7Y29uc3QgZj1uZXcgTXV0YXRpb25PYnNlcnZlcigoZCxrKT0+e2Zvcihjb25zdCBlIG9mIGQpImF0dHJpYnV0ZXMiPT09ZS50eXBlJiYiY2xhc3MiPT09ZS5hdHRyaWJ1dGVOYW1lJiZlLnRhcmdldC5jbGFzc0xpc3QuY29udGFpbnMoInVwX21lbnUiKSYmKGQ9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLnNrZWxldG9uLnNrZWxldG9uLWRlc2t0b3Auc2tlbGV0b24tY29uZC0yIiksZS50YXJnZXQuY2xhc3NMaXN0LmNvbnRhaW5zKCJmaXhlZCIpP2QuY2xhc3NMaXN0LmNvbnRhaW5zKCJmaXhlZCIpfHwKZC5jbGFzc0xpc3QuYWRkKCJmaXhlZCIpOmQuY2xhc3NMaXN0LmNvbnRhaW5zKCJmaXhlZCIpJiZkLmNsYXNzTGlzdC5yZW1vdmUoImZpeGVkIikpfSksZz1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIuc2tlbGV0b24uc2tlbGV0b24tZGVza3RvcC5za2VsZXRvbi1jb25kLTIgPiAudXBfbWVudSIpO2cmJihmLm9ic2VydmUoZyx7YXR0cmlidXRlczohMCxjaGlsZExpc3Q6ITAsc3VidHJlZTohMH0pLGcuY2xhc3NMaXN0LmNvbnRhaW5zKCJmaXhlZCIpJiZhLmNsYXNzTGlzdC5hZGQoImZpeGVkIikpfX1jYXRjaChhKXtjb25zb2xlLmVycm9yKCJTS0VMRVRPTnwuc2tlbGV0b24uc2tlbGV0b24tZGVza3RvcC5za2VsZXRvbi1jb25kLTIiLGEpfWNvbnNvbGUubG9nKCJTS0VMRVRPTnxpcy1sb2FkZWQtbm93Iik7Y29uc3QgYj1jKCIuc2tlbGV0b24iKTtiLmFkZENsYXNzKCJpcy1sb2FkZWQtbm93Iik7c2V0VGltZW91dCgoKT0+e2NvbnNvbGUubG9nKCJTS0VMRVRPTnxyZW1vdmluZyBza2VsZXRvbnMgZmlyc3QgaW1nIGJhY2tncm91bmQiKTsKYi5maW5kKCJpbWcuaXMtc2tlbGV0b24tYmctaW1nIikucmVtb3ZlKCl9LDM8d2luZG93LmdTcGVlZENvbm4\/MUU0OjZFMyl9LDIwMCl9KX1jYXRjaChjKXt9Ow==","menu_new":"","html":"Cgk8c3R5bGU+CgkJaHRtbCB7Zm9udC1zaXplOjEwMCU7fQoJCW1haW4gKiB7bWFyZ2luOmluaXRpYWw7fQoJCWZvb3RlciB7Y2xlYXI6IGJvdGg7fQoJPC9zdHlsZT4KCgk8ZGl2IGlkPSJkMmNfYm9keUNvbnRlbnQiIGNsYXNzPSJkMmMtZW1iZWRkZWQtY29udGVudCI+CgoJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJhY3RpdmVzaXRlbGFuZ3VhZ2UiIHZhbHVlPSJGUkVOQ0giLz4KCgkJPGlucHV0CgkJCXR5cGU9ImhpZGRlbiIKCQkJaWQ9ImQyY0RhdGFTdG9yZSIKCQkJZGF0YS1iYXNldXJsPSJodHRwczovL2NhcmxlZm9yZC5jb20iCgkJCWRhdGEtYm9keWNsYXNzPSIgaGVhZGluZ0NhcHNPbiBGUkVOQ0ggaXNQYWdlRnVsbFdpZHRoRW5hYmxlZCB0ZW1wbGF0ZTEgaXNGdWxsV2lkdGhQYWdlIE5ld1NycDIiCgkJCWRhdGEtaXNtb2JpbGU9IjAiCgkJPgoKCQk8c2NyaXB0IHNyYz0iaHR0cHM6Ly9haWFwcHMuZDJjbWVkaWEuY2EvZXZib29zdC9ldi1jb21wYXJhdG9yLmlpZmUuanMiIGFzeW5jPjwvc2NyaXB0PjxzdHlsZT4KZGl2I2xhbmRpbmdwYWdlX2ltIHVsLCBkaXYjZXYgdWwsIGRpdiNicm9uY28yMDIxIHVsLCBkaXYjbWFjaGUgdWwsIGRpdiNmMTUwMjAyMSB1bCwgLnJlc3BvbnNpdmUtZWRpdG9yIHVsIHsKbGlzdC1zdHlsZS10eXBlOiBkaXNjIWltcG9ydGFudDsKfQo8IS0tRU5EX1JFTU9WQUJMRV9DT0RFX0JMT0NLX0NPTU1FTlRfMDAwMi0tPgoKPCEtLUVORF9SRU1PVkFCTEVfQ09ERV9CTE9DS19DT01NRU5UXzAwMDEtLT4KCjwhLS1TVEFSVF9SRU1PVkFCTEVfQ09ERV9CTE9DS19DT01NRU5UXzAwMDEtLT4KPCEtLSBOTyBIRUFEIFNDUklQVCAtLSBBdXRvQWxlcnQgLS0gQ3VzdG9tZXIgLS0+IAoKPCEtLUVORF9SRU1PVkFCTEVfQ09ERV9CTE9DS19DT01NRU5UXzAwMDEtLT4KCjxzY3JpcHQgdHlwZT0iYXBwbGljYXRpb24vbGQranNvbiI+CiAgICB7IkBjb250ZXh0IjoiaHR0cHM6XC9cL3NjaGVtYS5vcmciLCJAdHlwZSI6WyJBdXRvRGVhbGVyIiwiQXV0b21vdGl2ZUJ1c2luZXNzIl0sInVybCI6Imh0dHBzOlwvXC93d3cuY2FybGVmb3JkLmNvbSIsIm5hbWUiOiJDYXJsZSBGb3JkIiwiaW1hZ2UiOiJodHRwczpcL1wvd3d3LmNhcmxlZm9yZC5jb21cL2ltYWdlc1wvTG9nb01vYmlsZVwvQ0FSRl9Mb2dvX0VWX0ZSLnBuZyIsImxvZ28iOiJodHRwczpcL1wvd3d3LmNhcmxlZm9yZC5jb21cL2ltYWdlc1wvTG9nb01vYmlsZVwvQ0FSRl9Mb2dvX0VWX0ZSLnBuZyIsInNhbWVBcyI6WyJodHRwOlwvXC93d3cuZmFjZWJvb2suY29tXC8xMjI4MTg4ODQ0NDE4MDZcLyIsImh0dHBzOlwvXC93d3cueW91dHViZS5jb21cL0BDYXJsZUZvcmRJbmNHYXRpbmVhdVwvdmlkZW9zIiwiaHR0cHM6XC9cL3d3dy5pbnN0YWdyYW0uY29tXC9jYXJsZS5mb3JkXC8iXSwiZ2VvIjp7IkB0eXBlIjoiR2VvQ2lyY2xlIiwiZ2VvTWlkcG9pbnQiOnsiQHR5cGUiOiJHZW9Db29yZGluYXRlcyIsImxhdGl0dWRlIjoiNDUuNTc5MTAwMDAwMCIsImxvbmdpdHVkZSI6Ii03NS40MDc3ODAwMDAwIn0sImdlb1JhZGl1cyI6MTAwMDAwfSwiYWRkcmVzcyI6eyJAdHlwZSI6IlBvc3RhbEFkZHJlc3MiLCJzdHJlZXRBZGRyZXNzIjoiOTAxIERvbGxhcmQiLCJhZGRyZXNzTG9jYWxpdHkiOiJHYXRpbmVhdSIsImFkZHJlc3NSZWdpb24iOiJRdWViZWMiLCJwb3N0YWxDb2RlIjoiSjhMIDNUNCIsImFkZHJlc3NDb3VudHJ5IjoiQ0EifSwidGVsZXBob25lIjoiODE5LTk4Ni0zMDAwIiwicHJpY2VSYW5nZSI6IjMwODM1JC04OTI5NSQiLCJvcGVuaW5nSG91cnNTcGVjaWZpY2F0aW9uIjpbeyJAdHlwZSI6Ik9wZW5pbmdIb3Vyc1NwZWNpZmljYXRpb24iLCJkYXlPZldlZWsiOiJNb25kYXkiLCJvcGVucyI6IjA4OjMwIiwiY2xvc2VzIjoiMjA6MDAifSx7IkB0eXBlIjoiT3BlbmluZ0hvdXJzU3BlY2lmaWNhdGlvbiIsImRheU9mV2VlayI6IlR1ZXNkYXkiLCJvcGVucyI6IjA4OjMwIiwiY2xvc2VzIjoiMjA6MDAifSx7IkB0eXBlIjoiT3BlbmluZ0hvdXJzU3BlY2lmaWNhdGlvbiIsImRheU9mV2VlayI6IldlZG5lc2RheSIsIm9wZW5zIjoiMDg6MzAiLCJjbG9zZXMiOiIyMDowMCJ9LHsiQHR5cGUiOiJPcGVuaW5nSG91cnNTcGVjaWZpY2F0aW9uIiwiZGF5T2ZXZWVrIjoiVGh1cnNkYXkiLCJvcGVucyI6IjA4OjMwIiwiY2xvc2VzIjoiMjA6MDAifSx7IkB0eXBlIjoiT3BlbmluZ0hvdXJzU3BlY2lmaWNhdGlvbiIsImRheU9mV2VlayI6IkZyaWRheSIsIm9wZW5zIjoiMDg6MzAiLCJjbG9zZXMiOiIxODowMCJ9LHsiQHR5cGUiOiJPcGVuaW5nSG91cnNTcGVjaWZpY2F0aW9uIiwiZGF5T2ZXZWVrIjoiU2F0dXJkYXkiLCJvcGVucyI6IjA4OjAwIiwiY2xvc2VzIjoiMTY6MDAifV0sImhhc01hcCI6Imh0dHBzOlwvXC93d3cuZ29vZ2xlLmNvbVwvbWFwc1wvcGxhY2VcLzkwMSBEb2xsYXJkIEdhdGluZWF1IFF1ZWJlYyBKOEwgM1Q0IiwiY29udGFjdFBvaW50Ijp7IkB0eXBlIjoiQ29udGFjdFBvaW50IiwidGVsZXBob25lIjoiODE5LTk4Ni0zMDAwIiwiY29udGFjdFR5cGUiOlsiU2FsZXMiLCJTZXJ2aWNlIiwiUGFydHMiXSwiYXZhaWxhYmxlTGFuZ3VhZ2UiOlsiRW5nbGlzaCIsIkZyZW5jaCJdfSwiYXJlYVNlcnZlZCI6IlF1ZWJlYyIsIm1ha2VzT2ZmZXIiOlt7IkB0eXBlIjoiT2ZmZXIiLCJpdGVtT2ZmZXJlZCI6eyJAdHlwZSI6IlNlcnZpY2UiLCJuYW1lIjoiVmVudGVzIGRlIHZcdTAwZTloaWN1bGVzIEZvcmQgbmV1ZnMgZXQgZCdvY2Nhc2lvbiJ9fSx7IkB0eXBlIjoiT2ZmZXIiLCJpdGVtT2ZmZXJlZCI6eyJAdHlwZSI6IlNlcnZpY2UiLCJuYW1lIjoiRmluYW5jZW1lbnQgZGUgdlx1MDBlOWhpY3VsZXMifX0seyJAdHlwZSI6Ik9mZmVyIiwiaXRlbU9mZmVyZWQiOnsiQHR5cGUiOiJTZXJ2aWNlIiwibmFtZSI6IlJcdTAwZTlwYXJhdGlvbiBldCBtYWludGVuYW5jZSBkZSB2XHUwMGU5aGljdWxlcyJ9fSx7IkB0eXBlIjoiT2ZmZXIiLCJpdGVtT2ZmZXJlZCI6eyJAdHlwZSI6IlNlcnZpY2UiLCJuYW1lIjoiVmVudGVzIGRlIHBpXHUwMGU4Y2VzIGV0IGFjY2Vzc29pcmVzIn19XX0KCgo8c2NyaXB0IHR5cGU9ImFwcGxpY2F0aW9uL2xkK2pzb24iPgogICAgeyJAY29udGV4dCI6Imh0dHBzOlwvXC9zY2hlbWEub3JnIiwiQHR5cGUiOiJXZWJTaXRlIiwibmFtZSI6IkNhcmxlIEZvcmQiLCJ1cmwiOiJodHRwczpcL1wvd3d3LmNhcmxlZm9yZC5jb21cLyIsInBvdGVudGlhbEFjdGlvbiI6eyJAdHlwZSI6IlNlYXJjaEFjdGlvbiIsInRhcmdldCI6Imh0dHBzOlwvXC93d3cuY2FybGVmb3JkLmNvbVwvb2NjYXNpb25cL3JlY2hlcmNoZS5odG1sP3E9e3NlYXJjaF90ZXJtX3N0cmluZ30iLCJxdWVyeS1pbnB1dCI6InJlcXVpcmVkIG5hbWU9c2VhcmNoX3Rlcm1fc3RyaW5nIn19Cgo8IS0tICMjVk1KUzEjIyAtLT4KCQkJPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KCQkJCWJ1dHRvbiNvbmV0cnVzdC1hY2NlcHQtYnRuLWhhbmRsZXIgewoJCQkJCWJhY2tncm91bmQtY29sb3I6ICNlYjAwMDAgIWltcG9ydGFudDsKCQkJCQljb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50OwoJCQkJCWJvcmRlci1jb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50OwoJCQkJCWJvcmRlci1yYWRpdXM6IDNweCAhaW1wb3J0YW50OwoJCSAgCQl9CgkJCQlidXR0b24jb25ldHJ1c3QtcmVqZWN0LWFsbC1oYW5kbGVyIHsKCQkJCQliYWNrZ3JvdW5kLWNvbG9yOiAjZWIwMDAwICFpbXBvcnRhbnQ7CgkJCQkJY29sb3I6ICNlYjAwMDAgIWltcG9ydGFudDsKCQkJCQlib3JkZXItY29sb3I6ICNlYjAwMDAgIWltcG9ydGFudDsKCQkJCQlib3JkZXItcmFkaXVzOiAzcHggIWltcG9ydGFudDsKCQkJCX0KCQkJCWJ1dHRvbiNvbmV0cnVzdC1wYy1idG4taGFuZGxlciB7CgkJCQkJYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50OwoJCQkJCWNvbG9yOiAjNjk2OTY5ICFpbXBvcnRhbnQ7CgkJCQkJYm9yZGVyLWNvbG9yOiAjOTA5MDkwICFpbXBvcnRhbnQ7CgkJCQkJYm9yZGVyLXJhZGl1czogM3B4ICFpbXBvcnRhbnQ7CgkJCQl9CgkJCQlidXR0b24uc2F2ZS1wcmVmZXJlbmNlLWJ0bi1oYW5kbGVyLm9uZXRydXN0LWNsb3NlLWJ0bi1oYW5kbGVyIHsKCQkJCQliYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7CgkJCQkJY29sb3I6ICNlYjAwMDAgIWltcG9ydGFudDsKCQkJCQlib3JkZXItY29sb3I6ICNlYjAwMDAgIWltcG9ydGFudDsKCQkJCQlib3JkZXItcmFkaXVzOiAzcHggIWltcG9ydGFudDsKCQkJCX0KCQkJCWJ1dHRvbi5vdC1wYy1yZWZ1c2UtYWxsLWhhbmRsZXIgewoJCQkJCWJhY2tncm91bmQtY29sb3I6ICNlYjAwMDAgIWltcG9ydGFudDsKCQkJCQljb2xvcjogI2ViMDAwMCAhaW1wb3J0YW50OwoJCQkJCWJvcmRlci1jb2xvcjogI2ViMDAwMCAhaW1wb3J0YW50OwoJCQkJCWJvcmRlci1yYWRpdXM6IDNweCAhaW1wb3J0YW50OwoJCQkJfQoJCQkJYnV0dG9uI2FjY2VwdC1yZWNvbW1lbmRlZC1idG4taGFuZGxlcnsKCQkJCQliYWNrZ3JvdW5kLWNvbG9yOiAjZWIwMDAwICFpbXBvcnRhbnQ7CgkJCQkJY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDsKCQkJCQlib3JkZXItY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDsKCQkJCQlmb250LXNpemU6IHNtYWxsICFpbXBvcnRhbnQ7CgkJCQkJYm9yZGVyLXJhZGl1czogM3B4ICFpbXBvcnRhbnQ7CgkJCQl9CgkJCQkub3QtcGMtbG9nbyBpbWd7CgkJCQkJY29udGVudDp1cmwoIi9pbWFnZXMvTG9nby9DQVJGX0xvZ29fRVZfRlItdjQud2VicCIpICFpbXBvcnRhbnQ7CgkJCQl9CgkJCQkjb25ldHJ1c3QtcGMtc2RrIC5vdC1wYy1sb2dvewoJCQkJCXdpZHRoOiAzMCUgIWltcG9ydGFudDsKCQkJCQlqdXN0aWZ5LWNvbnRlbnQ6IGxlZnQgIWltcG9ydGFudDsKCQkJCX0KCQkJCS5vdC1ibnItbG9nb3sKCQkJCQljb250ZW50OnVybCgiL2ltYWdlcy9Mb2dvL0NBUkZfTG9nb19FVl9GUi12NC53ZWJwIikgIWltcG9ydGFudDsKCQkJCX0KCQkJCSNvbmV0cnVzdC1iYW5uZXItc2RrLm90LWJuci13LWxvZ28gLm90LWJuci1sb2dvewoJCQkJCXdpZHRoOiA4NXB4ICFpbXBvcnRhbnQ7CgkJCQkJaGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7CiAgICAJCQkJbWFyZ2luLWxlZnQ6IDI1cHggIWltcG9ydGFudDsKCQkJCX0KCQkJCSNvbmV0cnVzdC1iYW5uZXItc2RrLm90LWJuci13LWxvZ28gI29uZXRydXN0LXBvbGljeSB7CgkJCQkJbWFyZ2luLWxlZnQ6IDExMHB4ICFpbXBvcnRhbnQ7CgkJCQkJcGFkZGluZy1sZWZ0OiAyNXB4OwoJCQkJfQoKCQkJCUBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDI1cHgpewoJCQkJCSNvbmV0cnVzdC1iYW5uZXItc2RrLm90LWJuci13LWxvZ28gLm90LWJuci1sb2dvewogICAgCQkJCQlwb3NpdGlvbjogcmVsYXRpdmU7CgkJCQkJCW1hcmdpbjogMTVweCAwIDEwcHggMCAhaW1wb3J0YW50OwoJCQkJCQl0cmFuc2Zvcm06IGluaGVyaXQ7CgkJCQkJCXpvb206IDQwJTsKCQkJCQl9CgkJCQkJI29uZXRydXN0LWJhbm5lci1zZGsub3QtYm5yLXctbG9nbyAjb25ldHJ1c3QtcG9saWN5IHsKCQkJCQkJbWFyZ2luLWxlZnQ6IDBweCAhaW1wb3J0YW50OwogICAgCQkJCQlwYWRkaW5nLWxlZnQ6IDBweDsKCQkJCQkJbWFyZ2luLXRvcDo1cHg7CgkJCQkJfQoJCQkJCSNvbmV0cnVzdC1jb25zZW50LXNkayAjb25ldHJ1c3QtcG9saWN5LXRpdGxlewoJCQkJCQlmb250LXNpemU6IDFlbSAhaW1wb3J0YW50OwoJCQkJCX0KCQkJCQkjb25ldHJ1c3QtYmFubmVyLXNkayAjb25ldHJ1c3QtYWNjZXB0LWJ0bi1oYW5kbGVyLCAKCQkJCQkjb25ldHJ1c3QtYmFubmVyLXNkayAjb25ldHJ1c3QtcmVqZWN0LWFsbC1oYW5kbGVyLCAKCQkJCQkjb25ldHJ1c3QtYmFubmVyLXNkayAjb25ldHJ1c3QtcGMtYnRuLWhhbmRsZXJ7CgkJCQkJCXBhZGRpbmc6IDEwcHggMTBweDsKCQkJCQl9CgkJCQkJI29uZXRydXN0LWJhbm5lci1zZGsgYnV0dG9uLCAjb25ldHJ1c3QtcGMtc2RrIGJ1dHRvbiwgCgkJCQkJI290LXNkay1jb29raWUtcG9saWN5IGJ1dHRvbnsKCQkJCQkJbWFyZ2luLWJvdHRvbTogMC41cmVtOwoJCQkJCX0KCQkJCQkjb25ldHJ1c3QtcGMtc2RrIGJ1dHRvbiB7CgkJCQkJCXdpZHRoOiBhdXRvOwoJCQkJCX0KCQkJCQkjb25ldHJ1c3QtYmFubmVyLXNkayAub3Qtc2RrLWNvbnRhaW5lciwgCgkJCQkJI29uZXRydXN0LXBjLXNkayAub3Qtc2RrLWNvbnRhaW5lciwgCgkJCQkJI290LXNkay1jb29raWUtcG9saWN5IC5vdC1zZGstY29udGFpbmVyewoJCQkJCQlwYWRkaW5nOiA1cHggMjBweDsKCQkJCQl9CgkJCQkJI29uZXRydXN0LWJhbm5lci1zZGsgI29uZXRydXN0LXBvbGljeXsKCQkJCQkJbWFyZ2luOiAwOwoJCQkJCX0KCQkJCQkjb25ldHJ1c3QtYmFubmVyLXNkayAjb25ldHJ1c3QtYnV0dG9uLWdyb3VwICNvbmV0cnVzdC1hY2NlcHQtYnRuLWhhbmRsZXJ7CgkJCQkJCWZvbnQtc2l6ZTp2YXIoLS1mczApOwoJCQkJCX0KCQkJCX0KCQkJPC9zdHlsZT48bGluayByZWw9InNob3J0Y3V0IGljb24iIGhyZWY9Imh0dHBzOi8vY2FybGVmb3JkLmNvbS9pbWFnZXMvRmF2aWNvbi9mYXZpY29uLmljbyIgdHlwZT0iaW1hZ2UveC1pY29uIj48bGluayByZWw9ImFsdGVybmF0ZSIgbWVkaWE9Im9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA5NjBweCkiIGhyZWY9Imh0dHBzOi8vd3d3LmNhcmxlZm9yZC5jb20vZW1iZWRlci9wcm9jZXNzL2ZyP25mcj0xIj48bGluayByZWw9ImFsdGVybmF0ZSIgaHJlZj0iaHR0cHM6Ly93d3cuY2FybGVmb3JkLmNvbS9lbmcvIiBocmVmbGFuZz0iZW4tY2EiPjxsaW5rIHJlbD0icHJlbG9hZCIgYXM9ImltYWdlIiBocmVmPSJodHRwczovL2NhcmxlZm9yZC5jb20vaW1hZ2VzL0xvZ28vQ0FSRl9Mb2dvX0VWX0ZSLXY0LndlYnAiPjxsaW5rIHJlbD0icHJlbG9hZCIgaHJlZj0iLy9mb250cy5kMmNtZWRpYS5jYS93ZWJmb250cy9kZXNrdG9wLWF3ZXNvbWUvd2ViZm9udHMvZmEtbGlnaHQtMzAwLndvZmYyIiBhcz0iZm9udCIgdHlwZT0iZm9udC9XT0ZGMiIgY3Jvc3NvcmlnaW4+PGxpbmsgcmVsPSJwcmVsb2FkIiBocmVmPSIvL2ZvbnRzLmQyY21lZGlhLmNhL3dlYmZvbnRzL2Rlc2t0b3AtYXdlc29tZS93ZWJmb250cy9mYS1zb2xpZC05MDAud29mZjIiIGFzPSJmb250IiB0eXBlPSJmb250L1dPRkYyIiBjcm9zc29yaWdpbj48bGluayByZWw9InByZWxvYWQiIGhyZWY9Ii8vZm9udHMuZDJjbWVkaWEuY2Evd2ViZm9udHMvZGVza3RvcC1hd2Vzb21lL3dlYmZvbnRzL2ZhLXJlZ3VsYXItNDAwLndvZmYyIiBhcz0iZm9udCIgdHlwZT0iZm9udC9XT0ZGMiIgY3Jvc3NvcmlnaW4+PGxpbmsgcmVsPSJwcmVsb2FkIiBocmVmPSIvL2ZvbnRzLmQyY21lZGlhLmNhL0ZvcmRGMS1SZWd1bGFyLndvZmYyIiBhcz0iZm9udCIgdHlwZT0iZm9udC9XT0ZGMiIgY3Jvc3NvcmlnaW4+PGxpbmsgcmVsPSJwcmVsb2FkIiBocmVmPSIvL2ZvbnRzLmQyY21lZGlhLmNhL0ZvcmRGMS1MaWdodC53b2ZmMiIgYXM9ImZvbnQiIHR5cGU9ImZvbnQvV09GRjIiIGNyb3Nzb3JpZ2luPjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9jYXJsZWZvcmQuY29tL2Nzc19yL3Jlc291cmNlLmxvYWRlci5mci5jc3M\/dj0zJmFtcDtjc3NycGw9JmFtcDt3c3dpZHRoPTAmYW1wO2RldmljZT1kZXNrdG9wJmFtcDt1YT1RME5DYjNRdk1pNHdJQ2hvZEhSd2N6b3ZMMk52YlcxdmJtTnlZWGRzTG05eVp5OW1ZWEV2S1E9PSI+PGxpbmsgcmVsPSJwcmVjb25uZWN0IiBocmVmPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYSIgY3Jvc3NvcmlnaW4+PGxpbmsgcmVsPSJwcmVjb25uZWN0IiBocmVmPSJodHRwczovL2ltYWdlc2Nkbi5kMmNtZWRpYS5jYSIgY3Jvc3NvcmlnaW4+PGxpbmsgcmVsPSJwcmVjb25uZWN0IiBocmVmPSJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhIiBjcm9zc29yaWdpbj48bGluayByZWw9ImNhbm9uaWNhbCIgaHJlZj0iaHR0cHM6Ly93d3cuY2FybGVmb3JkLmNvbS9lbWJlZGVyL3Byb2Nlc3MvZnIiIGRhdGEtY2Fub25pY2FsLWhlYWRlci13aWRnZXQ9IjEiPjxzY3JpcHQgc3JjPSJodHRwczovL2Nkbi5jb29raWVsYXcub3JnL3NjcmlwdHRlbXBsYXRlcy9vdFNES1N0dWIuanMiIGRhdGEtZG9jdW1lbnQtbGFuZ3VhZ2U9InRydWUiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgY2hhcnNldD0iVVRGLTgiIGRhdGEtZG9tYWluLXNjcmlwdD0iNzc1NWJlZjgtMTdhNy00YTliLWI4ZTUtMTZmYmZjMmY1MGM2Ij48L3NjcmlwdD48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL2Nkbi5jb29raWVsYXcub3JnL2NvbnNlbnQvNzc1NWJlZjgtMTdhNy00YTliLWI4ZTUtMTZmYmZjMmY1MGM2L090QXV0b0Jsb2NrLmpzIj48L3NjcmlwdD48ZGl2IGlkPSJkaWdpdGFsX2RhdGFfaW5mbyIgZGF0YS1hbmFseXRpY3M9ImZvcmRfYWRvYmVfYW5hbHl0aWNzIj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0idmVoaWNsZUNhdGVnb3J5IiB2YWx1ZT0iIj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ibWFrZSIgdmFsdWU9IiI+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Im1vZGVsIiB2YWx1ZT0iIj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ieWVhciIgdmFsdWU9IiI+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InZpbiIgdmFsdWU9IiI+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImludmVudG9yeUZsYWciIHZhbHVlPSIiPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ2ZWhpY2xlVHJpbSIgdmFsdWU9IiI+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InZlaGljbGVUcmFuc21pc3Npb24iIHZhbHVlPSIiPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ2ZWhpY2xlUHJpY2UiIHZhbHVlPSIiPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ2ZWhpY2xlQ29sb3IiIHZhbHVlPSIiPgoJCTwvZGl2PgoJCTwhLS0gT086OmZkM2IzZDI5NDI2ZmNlZGU0NWRjMmNiYTM4ZWJmYmZiIC0tPjwhLS0gb2VtQ2VydGlmaWNhdGlvbiAiRm9yZCBEaXJlY3QiIC0tPgkJPGRpdiBpZD0iYXNjX2RpZ2l0YWxfZGF0YV9pbmZvIiBkYXRhLWFuYWx5dGljcz0iZ29vZ2xlX2FuYWx5dGljc180Ij4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0idmVoaWNsZUNhdGVnb3J5IiB2YWx1ZT0iIj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ibWFrZSIgdmFsdWU9IiI+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Im1vZGVsIiB2YWx1ZT0iIj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ieWVhciIgdmFsdWU9IiI+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InZpbiIgdmFsdWU9IiI+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InRyaW0iIHZhbHVlPSIiPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJwcmljZSIgdmFsdWU9IiI+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImV4dGNvbG9yIiB2YWx1ZT0iIj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZGF0ZV9saXN0aW5nIiB2YWx1ZT0iIj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZDJhc2NfaXNDZXJ0aWZpZWQiIHZhbHVlPSIiPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ2ZWhpY2xlU3RhdHVzIiB2YWx1ZT0iIj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZGVhbGVyQ29kZSIgdmFsdWU9IkIyNTAzIj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0icGFnZVR5cGUiIHZhbHVlPSJTaG93cm9vbSI+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImRlYWxlcl9uYW1lIiB2YWx1ZT0iQ2FybGUgRm9yZCI+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImRlYWxlcl9hZGRyZXNzIiB2YWx1ZT0iOTAxIERvbGxhcmQsIEdhdGluZWF1LCBPdXRhb3VhaXMiPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJkZWFsZXJfcG9zdGFsIiB2YWx1ZT0iSjhMIDNUNCI+CgkJPC9kaXY+CgkJPCEtLSBPTzo6NTZkZTY3Yzc0NDE4YTk3YThkNDM0NDI2Y2FlYzNhZWMgLS0+CjwhLS1FTkRfUkVNT1ZBQkxFX0NPREVfQkxPQ0tfQ09NTUVOVF8wMDAyLS0+Cgo8IS0tRU5EX1JFTU9WQUJMRV9DT0RFX0JMT0NLX0NPTU1FTlRfMDAwMS0tPgo8IS0tIEdsb2JhbCBzaXRlIHRhZyAoZ3RhZy5qcykgLSBHb29nbGUgQW5hbHl0aWNzIC0tPgoKPCEtLVNUQVJUX1JFTU9WQUJMRV9DT0RFX0JMT0NLX0NPTU1FTlRfMDAwMS0tPgo8c2NyaXB0IGFzeW5jIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xldGFnbWFuYWdlci5jb20vZ3RhZy9qcz9pZD1HLVdESkVRTVFCMUQiIHR5cGU9InRleHQvcGxhaW4iIGNsYXNzPSJvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIj48L3NjcmlwdD4KPCEtLUVORF9SRU1PVkFCTEVfQ09ERV9CTE9DS19DT01NRU5UXzAwMDEtLT4KCjwhLS0gIyNWTUpTMiMjIC0tPjwhLS0gR08gSUQgLS0+CjwhLS0gQklORyBTQ1JJUFQgLS0+CjwhLS0gT086OmY3M2ZhNmFiYmZiNGJhYjNmNDlkYWFmYjM4OTFlMjdmIC0tPgoJPHN0eWxlIHR5cGU9InRleHQvY3NzIiBkYXRhLXJsPSIxIj4KLyoqIC9jc3Mvcm9vdC5jc3MgKiovCjpyb290eyAtLXJhdGlvOjEuMTU7IC0tczA6MDsgLS1zLTk6Y2FsYyh2YXIoLS1zLTgpIC8gdmFyKC0tcmF0aW8pKTsgLS1zLTg6Y2FsYyh2YXIoLS1zLTcpIC8gdmFyKC0tcmF0aW8pKTsgLS1zLTc6Y2FsYyh2YXIoLS1zLTYpIC8gdmFyKC0tcmF0aW8pKTsgLS1zLTY6Y2FsYyh2YXIoLS1zLTUpIC8gdmFyKC0tcmF0aW8pKTsgLS1zLTU6Y2FsYyh2YXIoLS1zLTQpIC8gdmFyKC0tcmF0aW8pKTsgLS1zLTQ6Y2FsYyh2YXIoLS1zLTMpIC8gdmFyKC0tcmF0aW8pKTsgLS1zLTM6Y2FsYyh2YXIoLS1zLTIpIC8gdmFyKC0tcmF0aW8pKTsgLS1zLTI6Y2FsYyh2YXIoLS1zLTEpIC8gdmFyKC0tcmF0aW8pKTsgLS1zLTE6Y2FsYyh2YXIoLS1zKSAvIHZhcigtLXJhdGlvKSk7IC0tczowLjVyZW07IC0tczE6Y2FsYyh2YXIoLS1zKSAqIHZhcigtLXJhdGlvKSk7IC0tczI6Y2FsYyh2YXIoLS1zMSkgKiB2YXIoLS1yYXRpbykpOyAtLXMzOmNhbGModmFyKC0tczIpICogdmFyKC0tcmF0aW8pKTsgLS1zNDpjYWxjKHZhcigtLXMzKSAqIHZhcigtLXJhdGlvKSk7IC0tczU6Y2FsYyh2YXIoLS1zNCkgKiB2YXIoLS1yYXRpbykpOyAtLXM2OmNhbGModmFyKC0tczUpICogdmFyKC0tcmF0aW8pKTsgLS1zNzpjYWxjKHZhcigtLXM2KSAqIHZhcigtLXJhdGlvKSk7IC0tczg6Y2FsYyh2YXIoLS1zNykgKiB2YXIoLS1yYXRpbykpOyAtLXM5OmNhbGModmFyKC0tczgpICogdmFyKC0tcmF0aW8pKTsgLS1mcy1iYXNlOjAuODc1cmVtOyAtLWZzOnZhcigtLWZzLWJhc2UpOyAtLWZzLTk6Y2FsYyh2YXIoLS1mcy04KSAvIHZhcigtLXJhdGlvKSk7IC0tZnMtOCA6Y2FsYyh2YXIoLS1mcy03KSAvIHZhcigtLXJhdGlvKSk7IC0tZnMtNyA6Y2FsYyh2YXIoLS1mcy02KSAvIHZhcigtLXJhdGlvKSk7IC0tZnMtNiA6Y2FsYyh2YXIoLS1mcy01KSAvIHZhcigtLXJhdGlvKSk7IC0tZnMtNSA6Y2FsYyh2YXIoLS1mcy00KSAvIHZhcigtLXJhdGlvKSk7IC0tZnMtNCA6Y2FsYyh2YXIoLS1mcy0zKSAvIHZhcigtLXJhdGlvKSk7IC0tZnMtMyA6Y2FsYyh2YXIoLS1mcy0yKSAvIHZhcigtLXJhdGlvKSk7IC0tZnMtMiA6Y2FsYyh2YXIoLS1mcy0xKSAvIHZhcigtLXJhdGlvKSk7IC0tZnMtMSA6Y2FsYyh2YXIoLS1mczApIC8gdmFyKC0tcmF0aW8pKTsgLS1mczAgOnZhcigtLWZzLWJhc2UsIDAuODc1cmVtKTsgLS1mczEgOmNhbGModmFyKC0tZnMwKSAqIHZhcigtLXJhdGlvKSk7IC0tZnMyIDpjYWxjKHZhcigtLWZzMSkgKiB2YXIoLS1yYXRpbykpOyAtLWZzMyA6Y2FsYyh2YXIoLS1mczIpICogdmFyKC0tcmF0aW8pKTsgLS1mczQgOmNhbGModmFyKC0tZnMzKSAqIHZhcigtLXJhdGlvKSk7IC0tZnM1IDpjYWxjKHZhcigtLWZzNCkgKiB2YXIoLS1yYXRpbykpOyAtLWZzNiA6Y2FsYyh2YXIoLS1mczUpICogdmFyKC0tcmF0aW8pKTsgLS1mczcgOmNhbGModmFyKC0tZnM2KSAqIHZhcigtLXJhdGlvKSk7IC0tZnM4IDpjYWxjKHZhcigtLWZzNykgKiB2YXIoLS1yYXRpbykpOyAtLWZzOSA6Y2FsYyh2YXIoLS1mczgpICogdmFyKC0tcmF0aW8pKTsgLS1kZWZhdWx0LWJsYWNrOiMwMDAwMDA7IC0tdGFiLWNvbG9yLXNwZWNpYWxjYXNlOiMxZjJmNTM7IC0tdGFiLWNvbG9yOiMxZjJmNTM7IC0tdGFiLXRleHQtY29sb3I6I2ZmZmZmZjsgLS10YWItY29sb3ItbW9iOiMxZjJmNTM7IC0tdGFiLXRleHQtY29sb3ItbW9iOiNmZmZmZmY7IC0tdGFiLWNvbG9yLW1vYi1leDojZmZmZmZmOyAtLXRhYi10ZXh0LWNvbG9yLW1vYi1leDojMDAwMDAwOyAtLW1lbnUtY29sb3ItYm9yZGVyOjsgLS1tZW51LWNvbG9yLW1vYjojMWYyZjUzOyAtLW1lbnUtdGV4dC1jb2xvci1tb2I6I2ZmZmZmZjsgLS1tZW51LWNvbG9yLW1vYi1leDojZjNmM2YzOyAtLW1lbnUtdGV4dC1jb2xvci1tb2ItZXg6IzAwMDAwMDsgLS1wcm9tby1jb2xvcjojZWIwMDAwOyAtLXByb21vLXRleHQtY29sb3I6I2ZmZmZmZjsgLS1uZXdzcnAtbW9kZWwtY29sb3I6IzAwMDAwMDsgLS1mb290ZXItbGluay10aXRsZS1jb2w6I2ZmZmZmZjsgLS1mb290ZXItaXRlbXMtbGluay1jb2xvcjojZjNmM2YzOyAtLWZvb3Rlci1jb25kaXRpb25zLWNvbG9yOiNlZWVlZWU7IC0tZm9vdGVyLWJnLWNvbG9yOiMxZjJmNTM7IC0tZ2VuZXJhbC1iZy1jb2xvcjojZmZmZmZmOyAtLXRvcC1wcm9tby1idG4tdHh0OiNmZmZmZmY7IC0tdG9wLXByb21vLWJ0bi1iZzojZWIwMDAwOyAtLXByb21vLWJ0bi1jb2xvcjojZWIwMDAwOyAtLXByb21vLWJ0bi10ZXh0LWNvbG9yOiNmZmZmZmY7IC0tcHJvbW8tYnRuLWhvdmVyLWJnLWNvbG9yOiNlYjAwMDA7IC0tcHJvbW8tYnRuLWhvdmVyLXRleHQtY29sb3I6I2ZmZmZmZjsgLS1wcm9tby1idG4tYm9yZGVyLXJhZGl1czozcHg7IC0taG9tZS1iZy1jb2xvcjojZmZmZmZmOyAtLWJ1c2luZXNzLWRlc2MtdHh0LWNvbG9yOiNmZmZmZmY7IC0tYnVzaW5lc3MtZGVzYy1iZy1jb2xvcjojMWYyZjUzOyAtLWJ1c2luZXNzLWRlc2MtdHh0LWNvbG9yX21vYjojMDAwMDAwOyAtLWJ1c2luZXNzLWRlc2MtYmctY29sb3JfbW9iOiNmZmZmZmY7IC0tdXNlZC1zbGlkZXItYmc6I2ZmZmZmZjsgLS11c2VkLXNsaWRlci10eHQ6IzAwMDAwMDsgLS11c2VkLXNsaWRlci1wcmljZTojZmYwMDAwOyAtLW5ldy1zbGlkZXItYmc6OyAtLW5ldy12ZHAtYmVzdHByaWNlLWJ0bi1iZy1jb2xvcjojZmYwMDAwOyAtLW5ldy12ZHAtYmVzdHByaWNlLWJ0bi10ZXh0LWNvbG9yOiNmZmZmZmY7IC0tZGVhbGVyLW5hbWUtY29sb3I6IzAwMDAwMDsgLS1uZXdzLWJnLWNvbG9yOiNmZmZmZmY7IC0tbmV3cy10ZXh0LWNvbG9yOiMwMDAwMDA7IC0tZXhpdC1wb3B1cC1iZ2NvbDojMDAwMDAwOyAtLXVzZWQtb2ZmZXItYnRuLXRleHQtY29sb3I6I2ZmZmZmZjsgLS11c2VkLW9mZmVyLWJ0bi1iZy1jb2xvcjojY2MwMDAwOyAtLWZpbmFuY2UtYnRuLXRleHQtY29sb3I6I2ZmZmZmZjsgLS1maW5hbmNlLWJ0bi1iZy1jb2xvcjojZmYwMDAwOyAtLWZpbmFuY2UtYnRuLXRleHQtY29sb3ItbmV3aW52OiNmZmZmZmY7IC0tZmluYW5jZS1idG4tYmctY29sb3ItbmV3aW52OiNmZjAwMDA7IC0tbWVudS1ob3Zlci10ZXh0LWNvbG9yOiNmZmZmZmY7IC0tbWVudS1ob3Zlci1iZy1jb2xvcjojMDE2OWFhOyAtLW1lbnUtYmctY29sb3I6cmdiKDMxLDQ3LDgzKTsgLS1tYWluLW1lbnUtYmctY29sb3I6cmdiKDMxLDQ3LDgzKTsgLS1kZWFsZXItYWRkcmVzcy1jb2xvcjojMDAwMDAwOyAtLWRlYWxlci1hZGRyZXNzLWZvbnQtc2l6ZToxNDsgLS13aGl0ZTojZmZmOyAtLWxpZ2h0OiNmNmY2ZjY7IC0tbGlnaHQtZ3JheTojZWZlZmVmOyAtLW1pZC1ncmF5OiNkZGQ7IC0tZ3JheTojOTk5OyAtLWNudHItZ3JheTojNzY3Njc2OyAtLWRhcmstZ3JheTojNjY2OyAtLWJsYWNrLWdyYXk6IzMzMzsgLS1ibGFjazojMDAwOyAtLXJlZDojZmYwMDAwOyAtLWJvcmRlci10aGluOjFweDsgLS1ib3JkZXItdGhpY2s6MnB4OyAtLXR4dC11cHBlcjp1cHBlcmNhc2U7IC0tZm9udC1tZW51OkZvcmRGMTsgLS1mb250LW1lbnUtbW9iOkZvcmRGMTsgLS1mb250LW1lbnUtd2VpZ2h0OjQwMDsgLS1mb250LWgxOkZvcmRGMTsgLS1mb250LWgxLW1vYjpGb3JkRjE7IC0tZm9udC1oMS13ZWlnaHQ6NDAwOyAtLWZvbnQtaDI6Rm9yZEYxOyAtLWZvbnQtaDItbW9iOkZvcmRGMTsgLS1mb250LWgyLXdlaWdodDo0MDA7IC0tZm9udC10ZXh0OkZvcmRGMTsgLS1mb250LXRleHQtbW9iOkZvcmRGMTsgLS1mb250LXRleHQtd2VpZ2h0OjQwMDsgLS1mb250LWJ1dHRvbnM6Rm9yZEYxOyAtLWZvbnQtYnV0dG9ucy1tb2I6Rm9yZEYxOyAtLWZvbnQtYnV0dG9ucy13ZWlnaHQ6NDAwOyAtLWNvcm5lci1yaWJib24tYmctY29sb3I6IzAwMDAwMDsgLS1jb3JuZXItcmliYm9uLXRleHQtY29sb3I6I2ZmZmZmZjsgLS1ob21lcGFnZS1tZW51LWl0ZW0tY29sb3I6I2ZmZmZmZjsgLS1ob21lcGFnZS1oZWFkZXItaXRlbS1jb2xvcjojZmZmZmZmOyAtLWhvbWVwYWdlLWJhbm5lci1zZWFyY2gtYmFyLXZpZGVvLW9wYWNpdHk6MzA7IC0taG9tZXBhZ2Utc29jaWFsLWJnLWNvbG9yOjsgLS1ob21lcGFnZS1zb2NpYWwtdGV4dC1jb2xvcjojMDAwMDAwOyAtLWhvbWVwYWdlLXNvY2lhbC1sb2dvLWNvbG9yOiMxODc3ZjI7IC0tcHJvbW90aW9uLWJhY2tncm91bmQtY29sb3I6I2Q2ZDZkNjsgLS1wcm9tb3Rpb24tdGV4dC1jb2xvcjojMDAwMDAwOyAtLXVuZGVyYmFubmVyX3NlYXJjaF9iYXJfYmc6OyAtLXVuZGVyYmFubmVyX3NlYXJjaF9iYXJfY29sb3I6OyAtLXVuZGVyYmFubmVyX3NlYXJjaF9iYXJfYnRuX2JnOjsgLS11bmRlcmJhbm5lcl9zZWFyY2hfYmFyX2J0bl9jb2xvcjo7IC0tbmV3dmRwLWJlc3RwcmljZS10ZXh0LWNvbG9yLXByaWNlOiNmZjAwMDA7IC0tYWRtaW4tc29jaWFsLWN1c3RvbS1jb2xvci1waWNrZXItdGV4dDojMWYyZjUzOyAtLWFkbWluLWdlbmVyYWwtaGVhZGVyLWJnLWNvbG9yOiNmZmZmZmY7IC0tYWRtaW4tZ2VuZXJhbC10ZXh0LXVzLWRlYWxlci1saW5lLXRleHQtY29sb3I6I2ZmZmZmZjsgLS1hZG1pbi1nZW5lcmFsLXRleHQtdXMtZGVhbGVyLWxpbmUtYmctY29sb3I6I2NjMDAwMDsgLS10cmFkZWluYmFyLWJ0bi1iZzojZWIwMDAwOyAtLXRyYWRlaW5iYXItYnRuLWNvbG9yOiNmZmZmZmY7IC0tZGVmYXVsdC1ibGFjay10ZXh0OiMwMDAwMDA7IC0tcHJvbW8tYnRuLWJnLWNvbG9yOiNlYjAwMDA7IC0tdHJhZGVpbmJhci1iZzojY2NjY2NjOyAtLXRyYWRlaW5iYXItY29sb3I6I2ViMDAwMDsgLS1sYW5ndWFnZS1idG4tYWN0aXZlLWJnLWNvbG9yOiMxZjJmNTM7IC0taGVhZGVyLXNlcnZpY2UtYXBwb2ludG1lbnQtdGV4dC1jb2xvci1iZzo7IC0taGVhZGVyLXNlcnZpY2UtYXBwb2ludG1lbnQtdGV4dC1jb2xvcjojZmZmZmZmOyAtLWFkbWluLWdlbmVyYWwtYWxlcnQtYmFyLXRleHQtY29sb3I6I2ZmZmZmZjsgLS10b3AtcHJvbW8tYnRuLXR4dC1jb2xvcjpyZ2IoMjU1LDI1NSwyNTUpOyAtLXRvcC1wcm9tby1idG4tYmctY29sb3I6cmdiKDMxLDQ3LDgzKTsgLS1uZXctdmVoaWNsZS1jYXJvdXNlbC10eHQtY29sb3I6OyAtLWRpZ2l0YWwtcmV0YWlsaW5nLWRyYXdlci13aWR0aDolOyB9ICogeyBib3JkZXItY29sb3I6aW5oZXJpdDsgYm9yZGVyLXN0eWxlOnNvbGlkOyBib3JkZXItd2lkdGg6MDsgZm9udC1mYW1pbHk6aW5oZXJpdDsgbGluZS1oZWlnaHQ6MS4yZW07IH0gb2wsIHVsLCBtZW51IHsgbGlzdC1zdHlsZTpub25lOyBtYXJnaW46MDsgcGFkZGluZzowOyB9IGEgeyB0ZXh0LWRlY29yYXRpb246bm9uZTsgY29sb3I6aW5oZXJpdDsgfSBoMSxoMixoMyxoNCxoNSxoNiwgcCB7IG1hcmdpbjowOyB9IGgxLGgyLGgzLGg0LGg1LGg2eyBmb250LXNpemU6aW5oZXJpdDsgZm9udC13ZWlnaHQ6aW5oZXJpdDsgfSBpbWcgeyBtYXgtd2lkdGg6MTAwJTsgfSB0YWJsZSB7IGJvcmRlci1jb2xsYXBzZTpjb2xsYXBzZTsgfSB0ZXh0YXJlYSB7IHdoaXRlLXNwYWNlOnJldmVydDsgfSA6d2hlcmUoW2hpZGRlbl0peyBkaXNwbGF5Om5vbmUgIWltcG9ydGFudDsgfSA6d2hlcmUoW2NvbnRlbnRlZGl0YWJsZV0peyAtbW96LXVzZXItbW9kaWZ5OnJlYWQtd3JpdGU7IC13ZWJraXQtdXNlci1tb2RpZnk6cmVhZC13cml0ZTsgb3ZlcmZsb3ctd3JhcDpicmVhay13b3JkOyBsaW5lLWJyZWFrOmFmdGVyLXdoaXRlLXNwYWNlOyAtd2Via2l0LWxpbmUtYnJlYWs6YWZ0ZXItd2hpdGUtc3BhY2U7IH0gOndoZXJlKFtkcmFnZ2FibGU9InRydWUiXSkgeyAtd2Via2l0LXVzZXItZHJhZzplbGVtZW50OyB9ICNBZnRlckNhcm91c2VsID4gLmNvbnRhaW5lciwgI2hvbWVwYWdlLWNvbnRlbnQgPiAuY29udGFpbmVyLCAjaG9tZV9BZnRlckFjdGlvbkJveCA+IC5jb250YWluZXIsICNob21lX0FmdGVyRGlzcGxheVZlaGljbGUgPiAuY29udGFpbmVyIHsgbWF4LXdpZHRoOjEyMDBweDsgbWFyZ2luLWxlZnQ6YXV0bzsgbWFyZ2luLXJpZ2h0OmF1dG87IH0gI0FmdGVyQ2Fyb3VzZWwgPiAuY29udGFpbmVyOmhhcyguQWZ0ZXJDYXJvdXNlbEZ3KSwgI2hvbWVfQWZ0ZXJBY3Rpb25Cb3ggPiAuY29udGFpbmVyOmhhcyguQWZ0ZXJDYXJvdXNlbEZ3KSwgI2hvbWVfQWZ0ZXJEaXNwbGF5VmVoaWNsZSA+IC5jb250YWluZXI6aGFzKC5BZnRlckNhcm91c2VsRncpLCAjaG9tZV9BZnRlckRpc3BsYXlWZWhpY2xlID4gLmNvbnRhaW5lcjpoYXMoLmVtYmVkLWNvbnRhaW5lci15b3V0dWJlKSB7IG1heC13aWR0aDpub25lOyBwYWRkaW5nLWxlZnQ6MDsgcGFkZGluZy1yaWdodDowOyB9IGJvZHkuaGFzLWQyY2JvdCAjQWZ0ZXJDYXJvdXNlbCAuY29udGFpbmVyLCBib2R5Lmhhcy1kMmNib3QgI2hvbWVwYWdlLWNvbnRlbnQgLmNvbnRhaW5lciwgYm9keS5oYXMtZDJjYm90ICNob21lX0FmdGVyQWN0aW9uQm94IC5jb250YWluZXIsIGJvZHkuaGFzLWQyY2JvdCAjaG9tZV9BZnRlckRpc3BsYXlWZWhpY2xlIC5jb250YWluZXIgeyBtYXgtd2lkdGg6bm9uZSAhaW1wb3J0YW50OyBwYWRkaW5nLWxlZnQ6MCAhaW1wb3J0YW50OyBwYWRkaW5nLXJpZ2h0OjAgIWltcG9ydGFudDsgfSAucmVzcG9uc2l2ZS1lZGl0b3IgLmNvbnRhaW5lci1mbHVpZHsgb3ZlcmZsb3cteDpoaWRkZW47IH0gLnJlc3BvbnNpdmUtZWRpdG9yIC5jb250YWluZXItZmx1aWQgKiB7IGxpbmUtaGVpZ2h0OmluaXRpYWw7IH0gLmNrZWRpdG9yV3JhcHBlcnsgb3ZlcmZsb3cteDpoaWRkZW47IHNjcm9sbGJhci13aWR0aDpub25lOyB9ICogeyBmb250LXZhcmlhbnQtbnVtZXJpYzpsaW5pbmctbnVtczsgfQovKiogL2Nzcy92Mi9uYXYuY3NzICoqLwpoZWFkZXIubW9iaWxlLWhlYWRlcnsgLS10eHQtY29sb3I6dmFyKC0tbWVudS10ZXh0LWNvbG9yLW1vYiwgdmFyKC0tdGFiLXRleHQtY29sb3IpKTsgcG9zaXRpb246c3RpY2t5OyB0b3A6MDsgd2lkdGg6MTAwdnc7IGhlaWdodDozLjJyZW07IGJveC1zaGFkb3c6cmdiYSgwLCAwLCAwLCAwLjUpIDAgMCA1cHggM3B4OyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLW1lbnUtY29sb3ItbW9iLCB2YXIoLS10YWItY29sb3IpKTsgY29sb3I6dmFyKC0tdHh0LWNvbG9yKTsgei1pbmRleDoxMDAwOyB9IGRpdi5tb2JpbGUtaGVhZGVyLXNwYWNlcnsgcG9zaXRpb246cmVsYXRpdmU7IHdpZHRoOjEwMHZ3OyBoZWlnaHQ6My4ycmVtOyBkaXNwbGF5OmJsb2NrOyB9IGhlYWRlci5tb2JpbGUtaGVhZGVyID4gKiArICogeyBkaXNwbGF5OmZsZXg7IGp1c3RpZnktY29udGVudDpjZW50ZXI7IGFsaWduLWl0ZW1zOmNlbnRlcjsgaGVpZ2h0OjEwMCU7IH0gaGVhZGVyLm1vYmlsZS1oZWFkZXIudGFsbCA+ICogKyAqeyBib3JkZXItbGVmdDoxcHggc29saWQgI2RkZDsgZmxleDoxIDEgYXV0bzsgfSBoZWFkZXIgLmxvZ28tYWN0aW9uIH4gKiB7IG1pbi13aWR0aDoyLjVyZW07IH0gLmhlYWRlci1kZWFsZXItbmFtZSB7IGNvbG9yOmluaGVyaXQ7IGZvbnQtc2l6ZTp2YXIoLS1mcy0xKTsgLS1mczp2YXIoLS1mcy0xKTsgfSBoZWFkZXIgYXNpZGV7IC0tdHh0LWNvbG9yOnZhcigtLW1lbnUtdGV4dC1jb2xvci1tb2IsIHZhcigtLXRhYi10ZXh0LWNvbG9yKSk7IHBvc2l0aW9uOmFic29sdXRlOyB0b3A6Mi45NXJlbTsgbGVmdDotMTlyZW07IHdpZHRoOm1pbig4MHZ3LCAxOXJlbSk7IG1pbi1oZWlnaHQ6MTAwdmg7IGZvbnQtc2l6ZTp2YXIoLS1mcyk7IHRyYW5zaXRpb246dHJhbnNmb3JtIDMwMG1zIGVhc2UtaW47IGJhY2tncm91bmQtY29sb3I6dmFyKC0tbWVudS1jb2xvci1tb2IsIHZhcigtLXRhYi1jb2xvcikpOyBjb2xvcjp2YXIoLS1tZW51LXRleHQtY29sb3IpOyBtYXgtaGVpZ2h0OjEwMHZoOyBvdmVyZmxvdzphdXRvOyB6LWluZGV4OjEwMDsgfSBuYXZ7IC0tZnM6dmFyKC0tZnMxKTsgZm9udC1zaXplOnZhcigtLWZzKTsgfSBuYXYgLm1lbnUtaXRlbSwgbmF2IC5zdWJtZW51LWl0ZW0geyBwYWRkaW5nOnZhcigtLXMpOyB9IG5hdiAubWVudS1pdGVteyBhbGlnbi1pdGVtczpjZW50ZXI7IH0gbmF2IC5tZW51LWl0ZW0uaW52ZXJzZS1jb2xvcnsgY29sb3I6dmFyKC0tbWVudS1ob3Zlci10ZXh0LWNvbG9yKTsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1tZW51LWhvdmVyLWJnLWNvbG9yKTsgfSBuYXYgLnN1Ym1lbnUtaXRlbXsgYm9yZGVyLWNvbG9yOnZhcigtLWdyYXkpOyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLW1lbnUtY29sb3ItbW9iLWV4LCB2YXIoLS10YWItY29sb3IpKTsgY29sb3I6dmFyKC0tbWVudS10ZXh0LWNvbG9yLW1vYi1leCk7IH0gbmF2IC5zdWJtZW51LWl0ZW0gc3ZnLmljb24geyBmaWxsOnZhcigtLXRhYi10ZXh0LWNvbG9yLW1vYi1leCwgdmFyKC0tdGFiLXRleHQtY29sb3IpKTsgfSBuYXYgLm1lbnUtZ3JvdXAgeyBib3JkZXItdG9wLXdpZHRoOnZhcigtLWJvcmRlci10aGluKTsgfSBuYXYgLm1lbnUtZ3JvdXAgfiAubWVudS1ncm91cCB7IGJvcmRlci10b3Atd2lkdGg6MDsgfSBuYXYgLm1lbnVDb2xscGFzZSBzdmd7IHRyYW5zZm9ybTpyb3RhdGUoMTgwZGVnKTsgfSAjaG9tZW5hdiBuYXZ7IC0tdHh0LWNvbG9yOnZhcigtLXRhYi10ZXh0LWNvbG9yLW1vYiwgdmFyKC0tdGFiLXRleHQtY29sb3IpKTsgfSAjaG9tZW5hdiBuYXYgLm1lbnUtaXRlbXsgYmFja2dyb3VuZDp2YXIoLS10YWItY29sb3ItbW9iLCB2YXIoLS10YWItY29sb3IpKTsgY29sb3I6dmFyKC0tdGFiLXRleHQtY29sb3ItbW9iLCB2YXIoLS10YWItdGV4dC1jb2xvcikpOyB9ICNob21lbmF2IG5hdiAubWVudS1pdGVtLmludmVyc2UtY29sb3J7IGNvbG9yOnZhcigtLW1lbnUtaG92ZXItdGV4dC1jb2xvcik7IGJhY2tncm91bmQtY29sb3I6dmFyKC0tbWVudS1ob3Zlci1iZy1jb2xvcik7IH0gI2hvbWVuYXYgbmF2IC5zdWJtZW51LWl0ZW17IGJhY2tncm91bmQtY29sb3I6dmFyKC0tdGFiLWNvbG9yLW1vYi1leCwgdmFyKC0tdGFiLWNvbG9yKSk7IGNvbG9yOnZhcigtLXRhYi10ZXh0LWNvbG9yLW1vYi1leCwgdmFyKC0tdGFiLXRleHQtY29sb3IpKTsgfSAjaG9tZW5hdiBuYXYgbGl7IHBhZGRpbmctdG9wOnZhcigtLXMtOCk7IH0gI2hvbWVuYXYgbmF2IC5tZW51LWl0ZW17IGJvcmRlci1yYWRpdXM6MC4yNXJlbTsgfSAjaG9tZW5hdiBuYXYgLm1lbnUtaXRlbS5MQU5HVUFHRXsgZGlzcGxheTpub25lOyB9IC5idXJnZXItbWVudS1jb250YWluZXJ7IHBvc2l0aW9uOnJlbGF0aXZlOyB9IC5idXJnZXJfdG9wIHsgdHJhbnNmb3JtLW9yaWdpbjowIDUwJTsgfSAuYnVyZ2VyX2JvdHRvbSB7IHRyYW5zZm9ybS1vcmlnaW46MCA1MCU7IH0gLmJ1cmdlci1tZW51LWJ1dHRvbiA+IHNwYW4geyB3aWR0aDoxLjZyZW07IGhlaWdodDowLjI1cmVtOyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLW1lbnUtdGV4dC1jb2xvci1tb2IpOyBib3JkZXItcmFkaXVzOjAuMjVyZW07IHRyYW5zaXRpb246dHJhbnNmb3JtIDAuNHMgZWFzZTsgei1pbmRleDoxMDE7IH0gI2JtX3RvZ2dsZTpjaGVja2VkIH4gLmJ1cmdlci1tZW51LWJ1dHRvbiAuYnVyZ2VyX3RvcCwgI2JtX2JvdHRvbV90b2dnbGU6Y2hlY2tlZCB+IC5idXJnZXItbWVudS1idXR0b24gLmJ1cmdlcl90b3B7IG9wYWNpdHk6MTsgdHJhbnNmb3JtOnJvdGF0ZSg0NWRlZykgdHJhbnNsYXRlKDAuMXJlbSwgMCk7IH0gI2JtX3RvZ2dsZTpjaGVja2VkIH4gLmJ1cmdlci1tZW51LWJ1dHRvbiAuYnVyZ2VyX21pZGRsZSwgI2JtX2JvdHRvbV90b2dnbGU6Y2hlY2tlZCB+IC5idXJnZXItbWVudS1idXR0b24gLmJ1cmdlcl9taWRkbGV7IG9wYWNpdHk6MDsgdHJhbnNmb3JtOnJvdGF0ZSgwZGVnKSBzY2FsZSgwLjIsIDAuMik7IH0gI2JtX3RvZ2dsZTpjaGVja2VkIH4gLmJ1cmdlci1tZW51LWJ1dHRvbiAuYnVyZ2VyX2JvdHRvbSwgI2JtX2JvdHRvbV90b2dnbGU6Y2hlY2tlZCB+IC5idXJnZXItbWVudS1idXR0b24gLmJ1cmdlcl9ib3R0b217IG9wYWNpdHk6MTsgdHJhbnNmb3JtOnJvdGF0ZSgtNDVkZWcpIHRyYW5zbGF0ZSgwLjFyZW0sIDApOyB9ICNibV90b2dnbGU6Y2hlY2tlZCB+IC5idXJnZXItbWVudS1idXR0b24gfiBhc2lkZXsgdHJhbnNmb3JtOnRyYW5zbGF0ZSgxOXJlbSk7IH0gbGFiZWxbZm9yPSJibV90b2dnbGUiXXsgcG9zaXRpb246YWJzb2x1dGU7IHRvcDowOyBsZWZ0OjA7IHdpZHRoOjEwMCU7IGhlaWdodDoxMDAlOyB6LWluZGV4OjEwMjsgfSAudGhpbkxlZnQgLmhlYWRlci1kZWFsZXItbmFtZSB7IGZvbnQtc2l6ZTp2YXIoLS1mczApOyBtYXJnaW4tbGVmdDo4cHg7IH0gLnRoaW5MZWZ0IC5sb2dvLWFjdGlvbiBhIHsgZmxleC1iYXNpczoxNSUgfSBoZWFkZXIudGhpbkxlZnQgYXNpZGUgeyBsZWZ0OnVuc2V0OyByaWdodDowOyB0cmFuc2Zvcm06c2NhbGVYKDApIHRyYW5zbGF0ZVgoMTlyZW0pOyB0cmFuc2Zvcm0tb3JpZ2luOjEwMCUgNTAlOyB9IC50aGluTGVmdCAjYm1fdG9nZ2xlOmNoZWNrZWQgfiAuYnVyZ2VyLW1lbnUtYnV0dG9uIH4gYXNpZGV7IHRyYW5zZm9ybTp1bnNldDsgfQovKiogL2Nzcy9za2VsZXRvbi5jc3MgKiovCi5oaWRlT25QcmVMb2FkIHsgdmlzaWJpbGl0eTpoaWRkZW47IH0gLnJldmVhbC1tb2RhbCB7IHZpc2liaWxpdHk6aGlkZGVuOyBwb3NpdGlvbjphYnNvbHV0ZTsgdG9wOi0xMDAwcHg7IH0gLnNrZWxldG9uIHsgZGlzcGxheTpibG9jazsgcG9zaXRpb246cmVsYXRpdmU7IG1hcmdpbjowOyBwYWRkaW5nOjA7IGJhY2tncm91bmQ6I2VlZTsgfSAuc2tlbGV0b246OmJlZm9yZSB7IGRpc3BsYXk6ZmxleDsgd2lkdGg6MTAwJTsgaGVpZ2h0OjEwMCU7IHBvc2l0aW9uOmFic29sdXRlOyB6LWluZGV4OjQ7IGNvbnRlbnQ6IiI7IGZvbnQtc2l6ZTowLjc1cmVtOyBsaW5lLWhlaWdodDowLjc1cmVtOyBjb2xvcjojODg4OyBhbmltYXRpb246c2tlbGV0b24tYW5pbSAycyBsaW5lYXIgaW5maW5pdGU7IGp1c3RpZnktY29udGVudDpjZW50ZXI7IGxldHRlci1zcGFjaW5nOjAuMjVyZW07IGFsaWduLWl0ZW1zOmNlbnRlcjsgZm9udC13ZWlnaHQ6Ym9sZDsgfSBAa2V5ZnJhbWVzIHNrZWxldG9uLWFuaW0geyAwJSB7IGNvbnRlbnQ6IiI7IH0gMjUlIHsgY29udGVudDoifCI7IH0gNTAlIHsgY29udGVudDoifHwiOyB9IDc1JSB7IGNvbnRlbnQ6Inx8fCI7IH0gfSAuc2tlbGV0b24gZGl2OmZpcnN0LWNoaWxkLCAuc2tlbGV0b24gc3BhbjpmaXJzdC1jaGlsZCB7IG9wYWNpdHk6MDsgdHJhbnNpdGlvbjpvcGFjaXR5IC4zMDBzOyB9IC5za2VsZXRvbi5za2VsZXRvbi1kZXNrdG9wLnNrZWxldG9uLWNvbmQtMiB7IGJhY2tncm91bmQ6bm9uZTsgfSAuc2tlbGV0b24uc2tlbGV0b24tZGVza3RvcC5za2VsZXRvbi1jb25kLTIuZml4ZWQgeyB3aWR0aDppbmhlcml0ICFpbXBvcnRhbnQ7IH0gLnNrZWxldG9uLmlzLWxvYWRlZC1ub3cgeyBiYWNrZ3JvdW5kOnVuc2V0OyB9IC5za2VsZXRvbi5pcy1sb2FkZWQtbm93IGRpdjpmaXJzdC1jaGlsZCwgLnNrZWxldG9uLmlzLWxvYWRlZC1ub3cgc3BhbjpmaXJzdC1jaGlsZCB7IG9wYWNpdHk6MTsgfSAuc2tlbGV0b24uaXMtbG9hZGVkLW5vdzo6YmVmb3JlIHsgY29udGVudDoiIjsgZGlzcGxheTpub25lOyBhbmltYXRpb246dW5zZXQ7IH0gLnNrZWxldG9uLnNrZWxldG9uLWRlc2t0b3Auc2tlbGV0b24tY29uZC0yLmZpeGVkLmlzLWxvYWRlZC1ub3cgPiBkaXY6Zmlyc3QtY2hpbGQgeyBvcGFjaXR5Oi43NTsgfSAuc2tlbGV0b24uc2tlbGV0b24tZGVza3RvcC5za2VsZXRvbi1jb25kLTIuZml4ZWQuaXMtbG9hZGVkLW5vdyA+IGRpdjpmaXJzdC1jaGlsZDpob3ZlciB7IG9wYWNpdHk6MTsgfQovKiogL2Nzcy9jc3MuY3NzICoqLwpodG1sLCBib2R5LCBzcGFuLCBhcHBsZXQsIG9iamVjdCwgaWZyYW1lLCBoMSwgaDIsIGgzLCBoNCwgaDUsIGg2LCBwLCBibG9ja3F1b3RlLCBwcmUsIGFiYnIsIGFjcm9ueW0sIGFkZHJlc3MsIGJpZywgY2l0ZSwgY29kZSwgZGVsLCBkZm4sIGVtLCBmb250LCBpbWcsIGlucywga2JkLCBxLCBzLCBzYW1wLCBzbWFsbCwgc3RyaWtlLCBzdHJvbmcsIHN1Yiwgc3VwLCB0dCwgdmFyLCBiLCB1LCBpLCBjZW50ZXIsIGRsLCBkdCwgZGQsIG9sLCB1bCwgbGksIGZpZWxkc2V0LCBmb3JtLCBsYWJlbCwgbGVnZW5kLCB0YWJsZSwgY2FwdGlvbiwgdGJvZHksIHRmb290LCB0aGVhZCwgdHIsIHRoLCB0ZCB7IG1hcmdpbjowOyBwYWRkaW5nOjA7IH0gaHRtbHsgZm9udC1zaXplOjFyZW0gOyB9IGJvZHkgeyBwYWRkaW5nOjA7IG1hcmdpbi1sZWZ0OjBweDsgbWFyZ2luLXRvcDowOyBtYXJnaW4tcmlnaHQ6MHB4OyBtYXJnaW4tYm90dG9tOjBweDsgZm9udC1zaXplOjAuODc1cmVtIDsgZm9udC1mYW1pbHk6dmFyKC0tZm9udC10ZXh0KTsgZm9udC13ZWlnaHQ6dmFyKC0tZm9udC10ZXh0LXdlaWdodCk7IGJhY2tncm91bmQ6IHRvcCBjZW50ZXIgbm8tcmVwZWF0OyBiYWNrZ3JvdW5kLWltYWdlOnVybCgnL2ltYWdlcy9ibGFuay5naWYnKTsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1nZW5lcmFsLWJnLWNvbG9yKTsgfSBpbnB1dCwgdGV4dGFyZWEsIHNlbGVjdCwgYnV0dG9uIHsgZm9udC1mYW1pbHk6dmFyKC0tZm9udC10ZXh0KTsgZm9udC13ZWlnaHQ6dmFyKC0tZm9udC10ZXh0LXdlaWdodCk7IH0gLm5hdiBsaSBhLnRvcF9saW5rLCAudXBfbWVudSB1bC5uYXYgdWwuc3ViIGxpIGEuc3VidGl0bGUsIC5pbWdfbWVudS51cF9tZW51IHVsLm5hdiAjTWFpbk1lbnVfTkVXPnVsLnN1YiBsaT51bC5zdWI+bGkuaGFzU3ViIGxpIGEsIGJvZHkgLndyYXBwZXIgLnVwX21lbnUgLm5hdnsgZm9udC1mYW1pbHk6dmFyKC0tZm9udC1tZW51KTsgZm9udC13ZWlnaHQ6dmFyKC0tZm9udC1tZW51LXdlaWdodCk7IH0gaDF7IGZvbnQtZmFtaWx5OnZhcigtLWZvbnQtaDEpOyBmb250LXdlaWdodDp2YXIoLS1mb250LWgxLXdlaWdodCk7IGNsZWFyOmJvdGg7IH0gLmZuLm9yZ3sgZm9udC1mYW1pbHk6dmFyKC0tZm9udC1oMSk7IGZvbnQtd2VpZ2h0OnZhcigtLWZvbnQtaDEtd2VpZ2h0KTsgfSBpbnB1dFt0eXBlPWJ1dHRvbl0sIGJ1dHRvbi5qcVRyYW5zZm9ybUJ1dHRvbiBzcGFuIHNwYW4sIC5idXR0b25fMSBhLCAuYnV0dG9uXzIgYSwgLmJ1dHRvbl8zIGEsIC5idXR0b25fdW5kZXIgYSwgLmJ1dHRvbl9jbXBfbGVmdCBhLCAuYnV0dG9uX2NtcF9yaWdodCBhLCAuYnV0dG9uX2NtcF9hY3QgYSwgLnB1bGxvdXRzIGEsIC5pZE5hdjEgbGkgYS50b3BfbGluazEsIC5jdGFfcHJpY2UuYWx0LCAuY3RhX2NyZWRpdC5hbHQsIC5jdGFfdGVzdERyaXZlLCAuY3RhX2V2YWwuYWx0LCAuY3RhX3NlcnZpY2UuYWx0LCAuY3RhX3BhcnRzLmFsdCwgLmN0YV90aXJlcy5hbHQsIC5jdGFfc3ZjcHJvbW8uYWx0LCAuYm94MTUgaDIgYSwgLmJveDE5IGgyIGEsIC5ib3gyNyBhLCAudmlvciwgLmJ0bi1kZWZhdWx0LCAuYnRuLXNtLCAuYnRuLWxnIHsgZm9udC1mYW1pbHk6dmFyKC0tZm9udC1idXR0b25zKTsgZm9udC13ZWlnaHQ6dmFyKC0tZm9udC1idXR0b25zLXdlaWdodCk7IH0gaDIsaDMsaDQsaDUsaDZ7IGZvbnQtZmFtaWx5OnZhcigtLWZvbnQtaDIpOyBmb250LXdlaWdodDp2YXIoLS1mb250LWgyLXdlaWdodCk7IH0gc3Ryb25neyBmb250LXdlaWdodDo5MDAgIWltcG9ydGFudDsgfSAjbWFpbkRpdi53cmFwcGVyIC50b3BfYmd7IG1heC1oZWlnaHQ6MjUwcHg7IG1pbi1oZWlnaHQ6MTE1cHg7IH0gLmhlYWRlci1pbWFnZS13cmFwcGVyIGltZy5pbWFnZS1wYWRkaW5nIHsgcGFkZGluZy1ib3R0b206NXB4OyB9IC5ja2VkaXRvcldyYXBwZXIgaDIgeyBtYXJnaW4tbGVmdDowcHggIWltcG9ydGFudDsgbWFyZ2luLXJpZ2h0OjBweCAhaW1wb3J0YW50OyBtYXJnaW4tdG9wOjE1cHggIWltcG9ydGFudDsgbWFyZ2luLWJvdHRvbToxNXB4ICFpbXBvcnRhbnQ7IH0gLmNrZWRpdG9yV3JhcHBlciBhIHsgZmxvYXQ6bm9uZSAhaW1wb3J0YW50OyBtYXJnaW4tbGVmdDowcHggIWltcG9ydGFudDsgZm9udC1zaXplOjEwMCUgIWltcG9ydGFudDsgfSAuY2tlZGl0b3JXcmFwcGVyIHAgeyBmbG9hdDpub25lICFpbXBvcnRhbnQ7IH0gLmNrZWRpdG9yV3JhcHBlciBwOmVtcHR5IHsgbWFyZ2luLWJvdHRvbToxcmVtOyB9IC5yZXNwb25zaXZlLWVkaXRvciAuY29sbGFwc2Uuc2hvdywgLnJlc3BvbnNpdmUtZWRpdG9yIC5jb2xsYXBzZS5zaG93IC5jYXJkLWJvZHkgeyB2aXNpYmlsaXR5OnZpc2libGUgIWltcG9ydGFudDsgfSBhLmRlc2NyaXB0aW9uLWF1dG8tbGluayB7IHRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmUgIWltcG9ydGFudDsgY29sb3I6aW5oZXJpdDsgfSAuY2xyeyBjbGVhcjpib3RoO30gLmZsZWZ0eyBmbG9hdDpsZWZ0OyB9IGlucHV0OmludmFsaWR7Ym94LXNoYWRvdzpub25lOyAtbW96LWJveC1zaGFkb3c6bm9uZTt9IC5jb25kaXRpb25zLS1jb250YWluZXIgeyBkaXNwbGF5OmZsZXg7IGZsZXgtZGlyZWN0aW9uOnJvdzsganVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47IG1hcmdpbi1ib3R0b206OHB4OyB9IC5jb25kaXRpb25zLS1jb250YWluZXIgLmNvbmRpdGlvbnMgeyBmbGV4LWdyb3c6MjsgZm9udC1zaXplOjAuODEzcmVtIDsgbGluZS1oZWlnaHQ6MThweDsgY29sb3I6I2VlZWVlZTsgfSAuY29uZGl0aW9uc0Zvb3RlcnsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODEzcmVtIDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgbGluZS1oZWlnaHQ6MThweDsgdGV4dC10cmFuc2Zvcm06bm9uZTsgdGV4dC1hbGlnbjpsZWZ0OyBtYXJnaW4tbGVmdDo1cHg7IG1hcmdpbi10b3A6MjVweDsgY29sb3I6I2VlZWVlZTsgfSAuY29uZGl0aW9ucy0tY29udGFpbmVyIGEsIC5jb25kaXRpb25zRm9vdGVyIGEgeyB0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lOyBjdXJzb3I6cG9pbnRlcjsgZm9udC1zaXplOjAuODEzcmVtIDsgY29sb3I6I2VlZWVlZTsgZm9udC13ZWlnaHQ6bm9ybWFsOyB9IC5leHRlbmRlZFBob25lVHJpZ2dlciBheyBjb2xvcjppbmhlcml0OyB9IC5tYWluRGl2LXdyYXBwZXIgPiAubGFuZ3VhZ2VCYXItemVybyB7IG1hcmdpbjowOyBoZWlnaHQ6aW5oZXJpdDsgd2lkdGg6MTAwJTsgfSAuaGVhZGVyLXNlY3Rpb24gLmxhbmd1YWdlQmFyIHsgbWFyZ2luOjAgYXV0byAyLjc1cmVtOyB3aWR0aDppbmhlcml0OyB9IC5oZWFkZXItc2VjdGlvbiAubGFuZ3VhZ2VCYXIgKyAucGhvbmUgeyBtYXJnaW4tYm90dG9tOjAuNXJlbTsgfSAubGFuZ3VhZ2VCYXIgdWwgYTpob3Zlcntmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojNjY2NjY2OyB0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lO30gLmxhbmd1YWdlQmFyIHVsIGE6dmlzaXRlZHtwYWRkaW5nLXJpZ2h0OjM1cHg7IHdpZHRoOmF1dG87IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiM2NjY2NjY7IHRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7IHRleHQtYWxpZ246cmlnaHQ7fSAubGFuZ3VhZ2VCYXIubGFuZ3VhZ2VCYXItemVybyB7IGhlaWdodDowOyBwYWRkaW5nOjA7IG1hcmdpbjowOyB9ICNtYWluRGl2LndyYXBwZXIubm8taWNvbnMgeyBwYWRkaW5nLXRvcDowLjAxcmVtOyB9IC50b3Bfcm91eyB3aWR0aDo5NjBweDsgaGVpZ2h0OjRweDsgZmxvYXQ6bGVmdDsgfSAubG9nb3sgfSAubG9nb05vUGFkZGluZyBpbWd7IHdpZHRoOjEwMCU7fSAubGFuZ3VhZ2VCYXIgYS5kZXNrdG9wX2xhbmdfYnV0dG9uLCAubGFuZ3VhZ2VCYXIgc3Bhbi5kZXNrdG9wX2xhbmdfYnV0dG9ueyBwb3NpdGlvbjpyZWxhdGl2ZTsgZGlzcGxheTppbmxpbmUtYmxvY2s7IGZvbnQtc2l6ZTowLjc1cmVtIDsgd2lkdGg6MjhweDsgaGVpZ2h0OjI2cHg7IHBhZGRpbmc6MDsgdGV4dC1hbGlnbjpjZW50ZXI7IHRleHQtZGVjb3JhdGlvbjpub25lOyB2ZXJ0aWNhbC1hbGlnbjp0b3A7IGJvcmRlcjoxcHggc29saWQgI0I2QjdCOTsgY29sb3I6I0I2QjdCOTsgY29sb3I6IzFmMmY1MzsgYmFja2dyb3VuZC1jb2xvcjojZmZmZmZmOyBiYWNrZ3JvdW5kLWNvbG9yOiNmZmZmZmY7IGJhY2tncm91bmQtY29sb3I6I2ZmZmZmZjsgfSAubGFuZ3VhZ2VCYXIgLmRlc2t0b3BfbGFuZ19idXR0b24uYWN0aXZlLCAubGFuZ3VhZ2VCYXIgYS5kZXNrdG9wX2xhbmdfYnV0dG9uOmhvdmVyeyBjb2xvcjojZmZmZmZmOyBjb2xvcjojZmZmZmZmOyBiYWNrZ3JvdW5kLWNvbG9yOiNCNkI3Qjk7IGJhY2tncm91bmQtY29sb3I6IzFmMmY1MzsgfSAubGFuZ3VhZ2VCYXIgc3Bhbi5kZXNrdG9wX2xhbmdfYnV0dG9uOm50aC1jaGlsZChldmVuKSwgLmxhbmd1YWdlQmFyIGEuZGVza3RvcF9sYW5nX2J1dHRvbjpudGgtY2hpbGQoZXZlbil7IG1hcmdpbi1sZWZ0OjJweDsgfSAubGFuZ3VhZ2VCYXIgYS5kZXNrdG9wX2xhbmdfYnV0dG9uIHNwYW4uZGVza3RvcF9sYW5nX2J1dHRvbl90ZXh0LCAubGFuZ3VhZ2VCYXIgc3Bhbi5kZXNrdG9wX2xhbmdfYnV0dG9uIHNwYW4uZGVza3RvcF9sYW5nX2J1dHRvbl90ZXh0eyBwb3NpdGlvbjphYnNvbHV0ZTsgdG9wOjUwJTsgdHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlLCAtNTAlKTsgfSAubG9nb05vUGFkZGluZ3sgbWF4LXdpZHRoOjUwJTsgZmxvYXQ6bGVmdDsgbWFyZ2luLXRvcDotNHB4O30gLnYtY2FyZC50b3BfYmcgeyBkaXNwbGF5OmZsZXg7IGp1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuOyBhbGlnbi1pdGVtczpjZW50ZXI7IG1hcmdpbi10b3A6MTBweDsgfSAudi1jYXJkLnRvcF9iZy4tbXQwIC5oZWFkZXItc2VjdGlvbjpudGgtY2hpbGQoMikgeyBtYXJnaW4tdG9wOjc0cHg7IH0gLmhlYWRlci1zZWN0aW9uIHsgZGlzcGxheTpmbGV4OyB2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7IGp1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuOyBhbGlnbi1pdGVtczpjZW50ZXI7IH0gLmhlYWRlci1pbWFnZS13cmFwcGVyIHsgbWluLWhlaWdodDo5N3B4OyB9IC5oZWFkZXItc2VjdGlvbi5pbWFnZSB7IHdpZHRoOjI1JTsgfSAuaGVhZGVyLXNlY3Rpb24uaW1hZ2UgPiAuaGVhZGVyLWltYWdlLXdyYXBwZXIgaW1nIHsgbWF4LWhlaWdodDoyNTBweDsgfSAuaGVhZGVyLXNlY3Rpb24gPiBkaXYgeyBkaXNwbGF5OmlubGluZS1ibG9jazsgfSAuaGVhZGVyLXNlY3Rpb24gLnBob25lIHsgd2lkdGg6YXV0bzsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6dmFyKC0tZGVhbGVyLWFkZHJlc3MtY29sb3IpOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgdGV4dC1hbGlnbjpyaWdodDsgcGFkZGluZzowLjVyZW0gMDsgfSAuaGVhZGVyLXNlY3Rpb246bnRoLWNoaWxkKDIpLmltYWdlIHsgdGV4dC1hbGlnbjpyaWdodDsgfSAuaGVhZGVyLXNlY3Rpb24gLnBob25lLnBob25lX3JpZ2h0eyB0ZXh0LWFsaWduOnJpZ2h0OyB9IC5oZWFkZXItc2VjdGlvbiAucGhvbmUucGhvbmVfbGVmdCB7IHRleHQtYWxpZ246bGVmdDsgfSAuaGVhZGVyLXNlY3Rpb24gPiAudi1jYXJkIHsgfSAubXVsdGktYWRkcmVzcy13cmFwcGVyLmV4Y2VwdGlvblN0eWxleyBkaXNwbGF5OmZsZXg7IH0gLm11bHRpLWFkZHJlc3Mtd3JhcHBlci5leGNlcHRpb25TdHlsZSAubXVsdGktYWRkcmVzcy0tcGhvbmV7IHdpZHRoOmF1dG87IGFsaWduLWl0ZW1zOmNlbnRlcjsgfSAubXVsdGktYWRkcmVzcy13cmFwcGVyLmV4Y2VwdGlvblN0eWxlIC5tdWx0aS1hZGRyZXNzLS1waG9uZSBpeyBmb250LXNpemU6MC42MjVyZW0gOyB9IC5tdWx0aS1hZGRyZXNzLXdyYXBwZXIuZXhjZXB0aW9uU3R5bGUgYXsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IH0gLm11bHRpLWFkZHJlc3MgeyBkaXNwbGF5OmZsZXg7IGp1c3RpZnktY29udGVudDpmbGV4LWVuZDsgfSAubXVsdGktYWRkcmVzcy0tcGhvbmUgeyB3aWR0aDoxMzNweDsgZGlzcGxheTpmbGV4OyBqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjsgfSAubXVsdGktYWRkcmVzcyBpIHsgcGFkZGluZy1yaWdodDo1cHg7IHBhZGRpbmctbGVmdDoxMHB4OyB9IC50b3BfYmcgdGFibGUgdGJvZHkgdGQ6bnRoLWNoaWxkKDIpIC5oZWFkZXItc2VjdGlvbiB7IHdpZHRoOjEwMCU7IH0gLnRvcF9iZy5kaXZUYWJsZSAuaGVhZGVyLXNlY3Rpb246bnRoLWNoaWxkKDIpIHsgdGV4dC1hbGlnbjpyaWdodDsgfSAudG9wX2JnIHRhYmxlIHRkIC5oZWFkZXItc2VjdGlvbiB7IGRpc3BsYXk6aW5saW5lLWJsb2NrOyB9IC5waG9uZSBoMnsgZm9udC1zaXplOjEuNXJlbSA7IGNvbG9yOiM1MjUyNTI7IGZvbnQtd2VpZ2h0OmJvbGQ7IHRleHQtZGVjb3JhdGlvbjpub25lO30gLnBob25lIGgxeyBmb250LXNpemU6MS44NzVyZW0gOyBjb2xvcjojNTI1MjUyOyBmb250LXdlaWdodDpib2xkOyB0ZXh0LWRlY29yYXRpb246bm9uZTt9IC5waG9uZSBkaXYub3JneyBmb250LXNpemU6MS4zNzVyZW0gOyBjb2xvcjojNTI1MjUyOyBmb250LXdlaWdodDpib2xkOyB0ZXh0LWRlY29yYXRpb246bm9uZTt9IC5waG9uZV90ZXh0IHsgY29sb3I6dmFyKC0tZGVhbGVyLWFkZHJlc3MtY29sb3IpOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgcGFkZGluZy1sZWZ0OjJweDsgcGFkZGluZy10b3A6MnB4O30gLnBob25lX3RleHQgYXsgY29sb3I6dmFyKC0tZGVhbGVyLWFkZHJlc3MtY29sb3IpOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgZGlzcGxheTppbmxpbmUtYmxvY2s7IHdpbGwtY2hhbmdlOnRyYW5zZm9ybTsgdHJhbnNmb3JtLW9yaWdpbjpyaWdodCBjZW50ZXI7IHRyYW5zaXRpb246dHJhbnNmb3JtIDAuM3MgZWFzZTsgfSAucGhvbmVfdGV4dCBhOmhvdmVyeyB0cmFuc2Zvcm06c2NhbGUoMC45Myk7IGNvbG9yOiMwMDU3OWM7IHRleHQtZGVjb3JhdGlvbjpub25lOyB9IGEucGhvbmUtbGluayB7IGRpc3BsYXkgOmlubGluZS1ibG9jayAhaW1wb3J0YW50OyBwYWRkaW5nIDowICFpbXBvcnRhbnQ7IGNvbG9yIDppbmhlcml0OyB0ZXh0LWRlY29yYXRpb24gOm5vbmU7IH0gYS5waG9uZS1saW5rOmhvdmVyIHsgY29sb3I6aW5oZXJpdDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IH0gI3NsaWRlcnsgd2lkdGg6OTYwcHg7IG1hcmdpbi1sZWZ0OjBweDsgYm94LXNoYWRvdzpub25lOyB9IC5jZW50ZXJlZCB7cG9zaXRpb246YWJzb2x1dGU7IGxlZnQ6NTAlOyB0b3A6NTAlO30gLnVwX21lbnV7IHdpZHRoOjk2MHB4OyBoZWlnaHQ6MzFweDsgei1pbmRleDoxMTExOyBmbG9hdDpyaWdodDt3aGl0ZS1zcGFjZTpub3dyYXA7IH0gLmJhbm5lcnsgd2lkdGg6OTYwcHg7IGhlaWdodDozMDFweDsgZmxvYXQ6bGVmdDsgbWFyZ2luLWxlZnQ6MnB4OyBtYXJnaW4tYm90dG9tOjZweDsgfSAubWVfdG9weyB3aWR0aDo5NjdweDsgaGVpZ2h0OjhweDsgZmxvYXQ6bGVmdDt9IC5tZV9iZ3sgd2lkdGg6OTY3cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL21lX2JnX3JvdS5wbmcpIGxlZnQgdG9wIHJlcGVhdC15O30gLm1lX2Rlc2N7bWFyZ2luOjBweDtoZWlnaHQ6YXV0bztmb250LXNpemU6MC44NzVyZW0gOyBvdmVyZmxvdzpoaWRkZW47cGFkZGluZzo1cHggMTVweH0gLm1lX2JvdXsgd2lkdGg6OTY3cHg7IGhlaWdodDo5cHg7IGZsb2F0OmxlZnQ7fSAub25leyB3aWR0aDoyMjVweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IG1hcmdpbi1sZWZ0OjEwcHg7IG1hcmdpbi10b3A6OHB4O30gLnR3b3sgd2lkdGg6MjI1cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBtYXJnaW4tbGVmdDoxNHB4OyBtYXJnaW4tdG9wOjhweDt9IC50aHJlZXsgd2lkdGg6MjI1cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBtYXJnaW4tbGVmdDoxNHB4OyBtYXJnaW4tdG9wOjhweDt9IC5mb3VyeyB3aWR0aDoyMjVweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IG1hcmdpbi1sZWZ0OjRweDsgbWFyZ2luLXRvcDo0cHg7fSAuVm91c3sgZm9udC1zaXplOjEuMDYzcmVtIDsgY29sb3I6IzAwMDAwMDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHBhZGRpbmctYm90dG9tOjJweDt9IC5jbGFzc3sgZm9udC1zaXplOjAuODEzcmVtIDsgY29sb3I6IzU3NTc1NzsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHBhZGRpbmctYm90dG9tOjBweDsgcGFkZGluZy10b3A6NnB4O30gLmNsYXNzMXsgZm9udC1zaXplOjAuODEzcmVtIDsgY29sb3I6IzU3NTc1NzsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IGhlaWdodDoxNTdweDsgbWFyZ2luLXRvcDo2cHg7fSAuYm9yZGVye2JvcmRlcjoxcHggc29saWQgI2QzZDNkMzsgd2lkdGg6MjE4cHg7fSAuYm94eyB3aWR0aDo3NXB4OyBoZWlnaHQ6NzNweDsgdGV4dC1hbGlnbjpjZW50ZXI7IHBhZGRpbmctdG9wOjEwcHg7IG1hcmdpbjowIGF1dG87fSAuY2F7aGVpZ2h0OjE0M3B4O30gLmJveDIyNXsgd2lkdGg6MjI1cHg7IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IGNvbG9yOiM1NzU3NTc7IHRleHQtZGVjb3JhdGlvbjpub25lOyBwYWRkaW5nLWJvdHRvbTozcHg7fSAuYm94MjI0eyB3aWR0aDoyMjVweDsgZmxvYXQ6bGVmdDsgcGFkZGluZy1ib3R0b206NnB4O30gLmJveDIyM3sgd2lkdGg6MjI1cHg7IGZsb2F0OmxlZnQ7IHBhZGRpbmctdG9wOjNweDt9IC5ub3N7IHdpZHRoOjcxMHB4OyBoZWlnaHQ6MTAwJTsgbWFyZ2luLXRvcDo1cHg7IGZsb2F0OmxlZnQ7IG1hcmdpbi1yaWdodDo1cHg7fSAubm9zX3RvcHsgd2lkdGg6NzE2cHg7IGhlaWdodDo5cHg7IGZsb2F0OmxlZnQ7fSAubm9zX2JneyB3aWR0aDo3MTZweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvbm9zX2JnLnBuZykgbGVmdCB0b3AgcmVwZWF0LXk7fSAubm9zX2JvdXsgd2lkdGg6NzE2cHg7IGhlaWdodDo5cHg7IGZsb2F0OmxlZnQ7fSAubm9zX3RleHR7aGVpZ2h0OjMwcHg7IGZvbnQtc2l6ZToxLjEyNXJlbSA7IGNvbG9yOiM1NzU3NTc7IHRleHQtZGVjb3JhdGlvbjpub25lOyB0ZXh0LWFsaWduOmNlbnRlcjt9IC5hcm93eyB3aWR0aDo2OTVweDsgaGVpZ2h0OjE2MHB4OyBmbG9hdDpsZWZ0OyBtYXJnaW4tbGVmdDo0cHg7fSAuY29ueyBmb250LXNpemU6MC44MTNyZW0gOyBjb2xvcjojM2MzYzNjO30gLmRlc2Mge21heC13aWR0aDoxMDAlO30gLmRlc2NfYmcge3dpZHRoOjEwMCU7IGhlaWdodDoyNDhweDsgZmxvYXQ6bGVmdDsgYmFja2dyb3VuZDp1cmwoIi9pbWFnZXMvbm9zX2JnLnBuZyIpIHJlcGVhdC15IHNjcm9sbCBsZWZ0IHRvcCB0cmFuc3BhcmVudDt9IC5hZGRye21hcmdpbi10b3A6MjVweDt9IC5hZGRyX21pZHtiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL21lX2JnX3JvdS5wbmcpIGxlZnQgdG9wIHJlcGVhdC15O30gLmhpZGRlbntkaXNwbGF5Om5vbmUgIWltcG9ydGFudDt9IC5ob3Vyc19yZW0geyB0ZXh0LWFsaWduOnJpZ2h0O2xpbmUtaGVpZ2h0OjE4cHg7IGZsb2F0OnJpZ2h0O3BhZGRpbmctcmlnaHQ6MTVweDsgfSAuaG91cnNfcmVtIGF7IGZvbnQtc2l6ZTowLjY4OHJlbSA7IHRleHQtZGVjb3JhdGlvbjpub25lOyB9ICNse3dpZHRoOjYwcHg7IGZsb2F0OmxlZnQ7fSAuZGVye3dpZHRoOjQ2MHB4OyBoZWlnaHQ6MjU1cHg7IG1hcmdpbi10b3A6MXB4OyBmbG9hdDpsZWZ0O30gLmRlcl90b3B7IHdpZHRoOjQ2NHB4OyBoZWlnaHQ6OHB4OyBmbG9hdDpsZWZ0O30gLmRlcl9iZ3sgd2lkdGg6NDQ0cHg7IGhlaWdodDoyMjZweDsgZmxvYXQ6bGVmdDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9kZXJfYmcucG5nKSBsZWZ0IHRvcCByZXBlYXQteTsgcGFkZGluZzo2cHggMTBweCAxMHB4IDEwcHg7fSAuZGVyX2JvdXsgd2lkdGg6NDY0cHg7IGhlaWdodDo4cHg7IGZsb2F0OmxlZnQ7fSAuZGVte3dpZHRoOjQ5NXB4OyBoZWlnaHQ6MjU1cHg7IG1hcmdpbi10b3A6M3B4OyBmbG9hdDpsZWZ0OyBtYXJnaW4tbGVmdDo1cHg7bWFyZ2luLWJvdHRvbTo2cHg7fSAuc2JveDF7IHdpZHRoOjI0MHB4OyBoZWlnaHQ6MTIzcHg7IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MCA1cHggMTBweCA1cHh9IC5zYm94Mnsgd2lkdGg6MjQwcHg7IGhlaWdodDoxMjNweDsgZmxvYXQ6bGVmdDsgcGFkZGluZzowIDVweCAxMHB4IDVweH0gLnNib3gzeyB3aWR0aDoyNDBweDsgaGVpZ2h0OjEyM3B4OyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjAgNXB4IDEwcHggNXB4fSAuc2JveDR7IHdpZHRoOjI0MHB4OyBoZWlnaHQ6MTIzcHg7IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MCA1cHggMTBweCA1cHh9IC5ib3R0b200Ym94ZXN7ZmxvYXQ6bGVmdDt3aWR0aDoxMDAlO3BhZGRpbmc6MDtkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47fSAuYm90dG9tNGJveGVzICoge2JveC1zaXppbmc6Ym9yZGVyLWJveDt9IC5ib3R0b200Ym94ZXMgPiAuYm94MjQ1e2Zsb2F0OmxlZnQ7d2lkdGg6MjUlO21heC13aWR0aDoyNDVweDt9IC5ib3R0b200Ym94ZXMgPiAuYm94MjQxe2Zsb2F0OmxlZnQ7bWFyZ2luOjEwcHggNnB4O30gLmJvdHRvbTRib3hlcyA+IC5ib3gyNDE6Zmlyc3QtY2hpbGR7bWFyZ2luLWxlZnQ6MHB4O30gLmJvdHRvbTRib3hlcyA+IC5ib3gyNDE6bGFzdC1jaGlsZHttYXJnaW4tcmlnaHQ6MHB4O30gQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOjEwMjRweCkgeyAuYm90dG9tNGJveGVzIHRhYmxlIHsgcGFkZGluZzowIDEwcHg7IH0gfSAuc2JveFVzZWR7IGZsb2F0OmxlZnQ7IH0gLnNib3hfdG9weyB3aWR0aDoyNDdweDsgaGVpZ2h0OjVweDsgZmxvYXQ6bGVmdDt9IC5zYm94X2JneyB3aWR0aDoyNDdweDsgaGVpZ2h0OjEwN3B4OyBmbG9hdDpsZWZ0OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL3Nib3hfYmcucG5nKSBsZWZ0IHRvcCByZXBlYXQteTsgZm9udC1zaXplOjEuMTg4cmVtIDsgY29sb3I6IzE5MTkxOTsgdGV4dC1hbGlnbjpjZW50ZXI7fSAuc2JveF9ib3V7IHdpZHRoOjI0N3B4OyBoZWlnaHQ6NXB4OyBmbG9hdDpsZWZ0O30gLmRheyBtYXJnaW4tdG9wOjEycHg7fSAuZGExeyBtYXJnaW4tdG9wOjEwcHg7IGZvbnQtc2l6ZToxLjE4OHJlbSA7IGNvbG9yOiMxOTE5MTk7IHRleHQtYWxpZ246Y2VudGVyO30gLmRhMSBoMXsgcGFkZGluZzowOyBtYXJnaW46MDsgZm9udC1zaXplOjEuODc1cmVtIDsgY29sb3I6IzE5MTkxOTsgdGV4dC1hbGlnbjpjZW50ZXI7IGZvbnQtd2VpZ2h0Om5vcm1hbDt9IC5hZGRsaW5leyBjb2xvcjojMDAwMDAwIWltcG9ydGFudDsgb3ZlcmZsb3c6aGlkZGVuOyB0ZXh0LWFsaWduOmNlbnRlcjsgfSAjcmV0dXJuUG9wdXBOZXh0TW9kZWx7IGhlaWdodDo0MHB4IWltcG9ydGFudDsgfSAuYWRkbGluZTo6YmVmb3JlLCAuYWRkbGluZTo6YWZ0ZXIgeyBiYWNrZ3JvdW5kLWNvbG9yOiMwMDA7IGNvbnRlbnQ6IiI7IGRpc3BsYXk6aW5saW5lLWJsb2NrOyBoZWlnaHQ6MXB4OyBwb3NpdGlvbjpyZWxhdGl2ZTsgdmVydGljYWwtYWxpZ246bWlkZGxlOyB3aWR0aDo1MCU7IH0gLmFkZGxpbmU6YmVmb3JlIHsgcmlnaHQ6MC41ZW07IG1hcmdpbi1sZWZ0Oi01MCU7IH0gLmFkZGxpbmU6YWZ0ZXIgeyBsZWZ0OjAuNWVtOyBtYXJnaW4tcmlnaHQ6LTUwJTsgfSAuc2JveDEgYS5jTGluaywgLnNib3gyIGEuY0xpbmssIC5zYm94MyBhLmNMaW5rLCAuc2JveDQgYS5jTGlua3sgZGlzcGxheTpibG9jazsgaGVpZ2h0OjEwMCU7IHdpZHRoOjEwMCU7IHRleHQtZGVjb3JhdGlvbjpub25lOyB9IC5zYm94MSBhLmNMaW5rOmhvdmVyLCAuc2JveDIgYS5jTGluazpob3ZlciwgLnNib3gzIGEuY0xpbms6aG92ZXIsIC5zYm94NCBhLmNMaW5rOmhvdmVyeyB0ZXh0LWRlY29yYXRpb246bm9uZTsgfSAuaG9tZXBhZ2UtLWJ1c2luZXNzLWRlc2NyaXB0aW9uLCAuaG9tZXBhZ2UtLWJ1c2luZXNzLWRlc2NyaXB0aW9uLWNlcnQsIC5ob21lcGFnZS0tYnVzaW5lc3MtZGVzY3JpcHRpb24gLmJvcmRlcl9ib3ggeyBiYWNrZ3JvdW5kLWNvbG9yOiMxZjJmNTM7IGJhY2tncm91bmQtY29sb3I6IzFmMmY1MzsgY29sb3I6I2ZmZmZmZjsgY29sb3I6I2ZmZmZmZjsgfSAuaG9tZXBhZ2UtLWJ1c2luZXNzLWRlc2NyaXB0aW9uIGEsIC5ob21lcGFnZS0tYnVzaW5lc3MtZGVzY3JpcHRpb24tY2VydCBhIHsgY29sb3I6I2ZmZmZmZjsgY29sb3I6I2ZmZmZmZjsgfSAuaG9tZXBhZ2UtLWJ1c2luZXNzLWRlc2NyaXB0aW9uIC5ib3JkZXJfYm94LCAuaG9tZXBhZ2UtLWJ1c2luZXNzLWRlc2NyaXB0aW9uLWNlcnQgLmJvcmRlcl9ib3ggeyBiYWNrZ3JvdW5kLWNvbG9yOmluaGVyaXQ7IGNvbG9yOmluaGVyaXQ7IH0gLmJsYWNrX3RleHR7IGZvbnQtc2l6ZToxLjVyZW0gOyBjb2xvcjojMTkxOTE5OyBtYXJnaW4tYm90dG9tOjRweDt9IC5ncmF5X3RleHR7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IGNvbG9yOiMxOTE5MTk7fSAuYnV0eyBmbG9hdDpyaWdodDsgbWFyZ2luOjBweCAwcHggMHB4IDBweDt9IC5saW5leyBib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZDJkMmQyOyBtYXJnaW4tdG9wOjVweDsgbWFyZ2luLWJvdHRvbTo1cHg7fSAudml2eyBtYXJnaW4tdG9wOjVweDsgbWFyZ2luLWxlZnQ6NXB4OyBmb250LXNpemU6MS41cmVtIDsgY29sb3I6I2ZmZjsgY29sb3I6I2ZmZmZmZjsgdGV4dC1hbGlnbjpqdXN0aWZ5O30gLnR3eyB3aWR0aDoyNjBweDsgaGVpZ2h0OjQwcHg7IGZsb2F0OnJpZ2h0OyBtYXJnaW4tdG9wOjVweDsgdGV4dC1hbGlnbjpyaWdodDt9IC5FTkdMSVNIIC52aXZ7dGV4dC10cmFuc2Zvcm06Y2FwaXRhbGl6ZTt9IC5NYWluQm94TGF5ZXIgLnZpdiB7IG1hcmdpbi1sZWZ0OjA7IH0gLnNvY2lhbC1zaGFyaW5neyB3aWR0aDoxMDAlOyBjbGVhcjpib3RoOyBmbG9hdDpyaWdodDsgbWFyZ2luLXRvcDo1cHg7IH0gLnNvY2lhbC1zaGFyaW5nID4gZGl2LnNvY2lhbHsgZmxvYXQ6cmlnaHQ7IHBhZGRpbmctbGVmdDo1cHg7IH0gLnNvY2lhbC1zaGFyaW5nID4gZGl2LnNvY2lhbDpsYXN0LWNoaWxkeyBwYWRkaW5nLWxlZnQ6MDsgfSAuc29jaWFsLXNoYXJpbmcgPiBkaXYuc29jaWFsOmZpcnN0LWNoaWxkeyBwYWRkaW5nLXJpZ2h0OjVweDsgfSAuTWFpbkJveExheWVyIC5zb2NpYWwtc2hhcmluZyA+IGRpdi5zb2NpYWw6Zmlyc3QtY2hpbGR7IHBhZGRpbmctcmlnaHQ6MDsgfSAjZm9vdGVyRGl2IC5hZGQsICNmb290ZXJEaXYgLmFkZCBhIHsgY29sb3I6dmFyKC0tZm9vdGVyLWl0ZW1zLWxpbmstY29sb3IpOyB9ICNmb290ZXJEaXYgLmFkZCAub3JneyBjb2xvcjp2YXIoLS1mb290ZXItbGluay10aXRsZS1jb2wpOyB9IC5wb3VyeyB3aWR0aDo3MjVweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7fSAucGFnZW5ve3dpZHRoOjIzNnB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgbWFyZ2luLWxlZnQ6NXB4OyBwYWRkaW5nOjA7IHRleHQtdHJhbnNmb3JtOm5vbmU7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgbWFyZ2luLXRvcDoxMHB4OyB9IC5wYWdlbm8gdWx7IGxpc3Qtc3R5bGUtdHlwZTpub25lOyBtYXJnaW46MCAwIDE1cHggMDsgcGFkZGluZzowOyB3aWR0aDoyMzZweDsgdGV4dC10cmFuc2Zvcm06bm9uZTsgZm9udC13ZWlnaHQ6bm9ybWFsOyB9IC5wYWdlbm8gdWwgbGl7IGxpc3Qtc3R5bGUtdHlwZTpub25lOyBtYXJnaW46MDtkaXNwbGF5OmJsb2NrOyBmbG9hdDpub25lOyB3aWR0aDoyMzZweDsgdGV4dC10cmFuc2Zvcm06bm9uZTsgZm9udC13ZWlnaHQ6bm9ybWFsO30gLnBhZ2VubyB1bCBsaSBheyB3aWR0aDoyMzdweDsgbWFyZ2luOjA7IGRpc3BsYXk6YmxvY2s7IGZsb2F0Om5vbmU7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IGNvbG9yOnZhcigtLWZvb3Rlci1pdGVtcy1saW5rLWNvbG9yKTsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgbGluZS1oZWlnaHQ6MThweDsgdGV4dC10cmFuc2Zvcm06bm9uZTsgdGV4dC1hbGlnbjpsZWZ0OyB0ZXh0LXRyYW5zZm9ybTpub25lOyB9IC5wYWdlbm8gdWwgbGkgc3BhbiwgLnBhZ2VubyB1bCBsaSBhLmZ0aXRsZXsgd2lkdGg6MjM2cHg7IG1hcmdpbjowOyBkaXNwbGF5OmJsb2NrOyBmbG9hdDpub25lOyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojZmZmOyBjb2xvcjp2YXIoLS1mb290ZXItbGluay10aXRsZS1jb2wpOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgbWFyZ2luLWJvdHRvbToxMHB4OyBmb250LXdlaWdodDpub3JtYWw7IGxpbmUtaGVpZ2h0OjE4cHg7IHRleHQtYWxpZ246bGVmdDsgfSAucGFnZW5vIHVsIGxpIGEuZnRpdGxlOmhvdmVyeyBtYXJnaW4tYm90dG9tOjEwcHg7fSAucGFnZW5vIHVsIGxpIGE6aG92ZXJ7IGxpc3Qtc3R5bGUtdHlwZTpub25lOyBtYXJnaW46MDsgY29sb3I6dmFyKC0tZm9vdGVyLWxpbmstdGl0bGUtY29sKTsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IGRpc3BsYXk6YmxvY2s7IGxpbmUtaGVpZ2h0OjE4cHg7fSAucGFnZW5vIGxpIGEuYWN0aXZleyBsaXN0LXN0eWxlLXR5cGU6bm9uZTsgbWFyZ2luOjA7IGNvbG9yOiM5MTkxOTE7IHRleHQtZGVjb3JhdGlvbjpub25lOyBkaXNwbGF5OmJsb2NrOyBsaW5lLWhlaWdodDoxOHB4O30gLkVOR0xJU0ggLnBhZ2VubyB1bCBsaSBhe3RleHQtdHJhbnNmb3JtOmNhcGl0YWxpemU7fSAuYWRkeyB3aWR0aDoyMzBweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IGNvbG9yOiM5MTkxOTE7IHRleHQtZGVjb3JhdGlvbjpub25lOyBmb250LXdlaWdodDpub3JtYWw7IGxpbmUtaGVpZ2h0OjE4cHg7IHRleHQtdHJhbnNmb3JtOm5vbmU7IHRleHQtYWxpZ246cmlnaHQ7IHRleHQtdHJhbnNmb3JtOm5vbmU7IG1hcmdpbi10b3A6MTBweDttYXJnaW4tYm90dG9tOjEwcHg7fSAuY29weXsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODEzcmVtIDsgY29sb3I6IzkxOTE5MTsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgbGluZS1oZWlnaHQ6MThweDsgdGV4dC10cmFuc2Zvcm06bm9uZTsgdGV4dC1hbGlnbjpsZWZ0OyB0ZXh0LXRyYW5zZm9ybTpub25lOyBtYXJnaW4tbGVmdDo1cHg7IG1hcmdpbi10b3A6MjVweDt9IC5jb3B5IGF7IHRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7Y3Vyc29yOnBvaW50ZXI7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IGNvbG9yOiM5MTkxOTE7IGZvbnQtd2VpZ2h0Om5vcm1hbH0gLmNvcHkgYTpob3ZlcnsgY29sb3I6I2Q0ZDRkNDsgZm9udC13ZWlnaHQ6Ym9sZDt9IC5mb290ZXItbGlzdHMgbGkgPiBzcGFuIHsgdGV4dC10cmFuc2Zvcm06dmFyKC0tdHh0LXVwcGVyKTsgfSAjZm9vdGVyV3JhcHBlciAudi1jYXJkLmFkZCB7IGxpbmUtaGVpZ2h0OmluaXRpYWw7IH0gI2Zvb3RlciAuZm9vdGVyLXRpdGxlIHsgZm9udC1zaXplOnZhcigtLWZzNCk7IGNvbG9yOnZhcigtLWZvb3Rlci1saW5rLXRpdGxlLWNvbCwgdmFyKC0td2hpdGUpKTsgfSAuRU5HTElTSCAjZm9vdGVyIC5mb290ZXItdGl0bGUgeyB0ZXh0LXRyYW5zZm9ybTpjYXBpdGFsaXplOyB9ICNmb290ZXIgPiAuZmxleC1ib3ggPiAuZm9vdGVyLWxvZ29fX2NvbnRhaW5lciB7IG1hcmdpbi10b3A6MDsgbWFyZ2luLXJpZ2h0OnZhcigtLXM1KTsgfSAjZm9vdGVyID4gLmZsZXgtYm94ID4gLmZvb3Rlci1sb2dvX19jb250YWluZXIgaW1nIHsgbWF4LXdpZHRoOjEwMCU7IG1heC1oZWlnaHQ6MTUwcHg7IH0gLnNvY2lhbC1tZWRpYS1pY29ucyB7IGRpc3BsYXk6ZmxleDsgZmxleC1kaXJlY3Rpb246cm93OyBqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmQ7IHRleHQtYWxpZ246cmlnaHQ7IH0gLmRlYWxlci1hbGlnbi1sZWZ0IC5zb2NpYWwtbWVkaWEtaWNvbnMgeyB0ZXh0LWFsaWduOmxlZnQ7IGp1c3RpZnktY29udGVudDpmbGV4LXN0YXJ0OyB9IC5zb2NpYWwtbWVkaWEtaWNvbnMgLnNvY2lhbC1pY29ucyB7IHdpZHRoIDphdXRvOyBoZWlnaHQ6YXV0bzsgbWFyZ2luOjAgNHB4OyB9ICNmb290ZXIgYS5zb2NpYWwtbGluayA+IHN2ZyB7IGhlaWdodDoyMnB4OyBtYXJnaW4tbGVmdDozcHg7IH0gaGVhZGVyIC5oZWFkZXItc29jaWFsICNzb2NpYWxfbWVkaWFfaWNvbnNfZGl2ID4gYSA+IHN2ZyB7IGhlaWdodDoyMXB4OyBtYXJnaW4tdG9wOjRweDsgfSAuc29jaWFsLW1lZGlhLWljb25zIC5zb2NpYWwtaWNvbnMgLmZhYiB7IG1hcmdpbi10b3A6MDsgZm9udC1zaXplIDoxLjllbTsgY29sb3IgOnZhcigtLWZvb3Rlci1saW5rLXRpdGxlLWNvbCk7IH0gLmRpdlNwYW4uZGl2U3BhbjMgPiAuZm9vdGVyLWxvZ29fX2NvbnRhaW5lciB7IG1hcmdpbi10b3A6MXJlbTsgdGV4dC1hbGlnbjpyaWdodDsgfSAuZGVhbGVyLWFsaWduLWxlZnQgLmZvb3Rlci1sb2dvX19jb250YWluZXIgeyB0ZXh0LWFsaWduOmxlZnQ7IH0gLmRpdlNwYW4uZGl2U3BhbjMgPiAuZm9vdGVyLWxvZ29fX2NvbnRhaW5lciBpbWcgeyBtYXgtd2lkdGg6MTgwcHg7IG1heC1oZWlnaHQ6MTAwcHg7IH0gQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOjEwMjRweCkgeyAuaGVhZGVyLXNlY3Rpb24gLnBob25lLnBob25lX2xlZnQgeyBwYWRkaW5nLWxlZnQ6MTBweDsgfSAjZm9vdGVyIHsgcGFkZGluZy1sZWZ0OjEwcHg7IHBhZGRpbmctcmlnaHQ6MTBweDsgfSB9IEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDo5OTlweCkgeyAjTWFpbk1lbnVfU0VBUkNIX0JBUiB7IGRpc3BsYXk6bm9uZTsgfSAudXBfbWVudSB1bC5uYXYgPiBsaS5maXJzdE1lbnUgeyBwYWRkaW5nLWxlZnQ6MTBweDsgfSAudXBfbWVudSB1bC5uYXYgPiBsaTpudGgtb2YtdHlwZSgyKSB7IHBhZGRpbmctcmlnaHQ6MTBweDsgfSAudXBfbWVudSB1bC5uYXYgPiBsaTpudGgtb2YtdHlwZSgyKSA+IHVsLnN1YiB7IHJpZ2h0OjEwcHg7IH0gLmxhbmd1YWdlQmFyIGRpdjpmaXJzdC1vZi10eXBlIHsgbWFyZ2luLXJpZ2h0OjEwcHg7IH0gLm1lbnU3IC5maW5hbmNlLW1lbnUtZnJlZWNyZWRpdC5jZW50ZXIgeyByaWdodDotMTYwcHggIWltcG9ydGFudDsgbGVmdDphdXRvOyB9IC5tZW51OCAuZmluYW5jZS1tZW51LWZyZWVjcmVkaXQuY2VudGVyIHsgcmlnaHQ6LTE2MHB4ICFpbXBvcnRhbnQ7IGxlZnQ6YXV0bzsgfSAubWVudTUgLmZpbmFuY2UtbWVudS1mcmVlY3JlZGl0LmNlbnRlciB7IHJpZ2h0Oi0zMDBweCAhaW1wb3J0YW50OyBsZWZ0OmF1dG87IH0gfSAuZGl2U3Bhbi5wYWdlbm8geyBtYXJnaW4tbGVmdDowOyB9IC5kaXZTcGFuLnBhZ2VubyB1bCBsaSBzcGFuLCAuZGl2U3Bhbi5wYWdlbm8gdWwgbGkgYS5mdGl0bGUgeyBmb250LXNpemU6MC45MzhyZW0gOyBtYXgtd2lkdGg6MjI1cHg7IH0gLmRpdlNwYW4ucGFnZW5vIHVsIGxpIGEgeyBmb250LXNpemU6MC44NzVyZW0gOyB9IC5hZHIgeyBsaW5lLWhlaWdodDoxLjJyZW07IG1hcmdpbjowLjVyZW0gMDsgfSAjZm9vdGVyLmRlYWxlci1wb3NpdGlvbi1sZWZ0IC5mb290ZXItdGl0bGVfX2NvbnRhaW5lciB7IG1hcmdpbi1ib3R0b206MnJlbTsgfSAjZm9vdGVyLmRlYWxlci1wb3NpdGlvbi1sZWZ0IC5kaXZTcGFuMyB7IGZsb2F0OmxlZnQ7IG1hcmdpbi10b3A6MTVweDsgcGFkZGluZy1yaWdodDozMHB4OyB0ZXh0LWFsaWduOmxlZnQ7IH0gI2Zvb3Rlci5kZWFsZXItcG9zaXRpb24tbGVmdCAuZGl2U3BhbjkgeyBmbG9hdDpyaWdodDsgfSAjZm9vdGVyLmRlYWxlci1wb3NpdGlvbi1sZWZ0IC5zb2NpYWwtc2hhcmluZyB7IGZsb2F0OnVuc2V0OyBjbGVhcjp1bnNldDsgbWFyZ2luOjA7IH0gI2Zvb3Rlci5kZWFsZXItcG9zaXRpb24tbGVmdCAuc29jaWFsIHsgZmxvYXQ6bGVmdDsgfSAjZm9vdGVyLmRlYWxlci1wb3NpdGlvbi1yaWdodC5kZWFsZXItYWxpZ24tbGVmdCAuc29jaWFsLXNoYXJpbmcgeyB3aWR0aDoyNSU7IGZsb2F0OmxlZnQ7IHBhZGRpbmctbGVmdDo3NSU7IH0gI2Zvb3Rlci5kZWFsZXItcG9zaXRpb24tcmlnaHQuZGVhbGVyLWFsaWduLWxlZnQgLnNvY2lhbCB7IGZsb2F0OmxlZnQ7IG1hcmdpbi1sZWZ0OjFyZW07IH0gI2Zvb3Rlci5kZWFsZXItcG9zaXRpb24tcmlnaHQuZGVhbGVyLWFsaWduLWxlZnQgLnNvY2lhbDpmaXJzdC1jaGlsZCB7IG1hcmdpbjowOyBwYWRkaW5nOjA7IH0gI2Zvb3RlciAuaWNvbi10ZXh0eyBtYXJnaW4tYm90dG9tOi40cmVtOyB9ICNmb290ZXIgLmljb24tdGV4dCBzcGFueyB3aWR0aDoyMHB4OyBwYWRkaW5nOjAgIWltcG9ydGFudDsgfSAjZm9vdGVyIC5mbi5vcmcgeyBsaW5lLWhlaWdodDoyLjA2MjVyZW07IH0gLnNtYWxscGljX2JveHt3aWR0aDozMjlweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IG1hcmdpbjowO30gLnNtYWxscGljNDN7d2lkdGg6NDNweDsgaGVpZ2h0OjMxcHg7IGZsb2F0OmxlZnQ7IG1hcmdpbjowIDVweCAwIDA7IGJvcmRlcjoycHggc29saWQgI0ZGRkZGRjt9IC5kZXRhaWxze3dpZHRoOjgxcHg7IGhlaWdodDozMHB4OyBkaXNwbGF5OmJsb2NrOyB9IGEuZGV0YWlsc3t3aWR0aDo4MXB4OyBoZWlnaHQ6MzBweDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9kZXRhaWxzLnBuZykgbGVmdCB0b3Agbm8tcmVwZWF0O30gYTpob3Zlci5kZXRhaWxze3dpZHRoOjgxcHg7IGhlaWdodDozMHB4OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2RldGFpbHMucG5nKSBsZWZ0IC0zMnB4IG5vLXJlcGVhdDt9IC5iaWdfcGljYm94e21pbi1oZWlnaHQ6MTEwcHg7d2lkdGg6MTQ2cHg7fSAuYmlnX3BpY2JveCBpbWd7IGRpc3BsYXk6YmxvY2s7IH0gLnBpY2JveF92aWRlb2J0bl9lbiwgLnBpY2JveF92aWRlb2J0bl9mciB7ZGlzcGxheTpibG9jaztoZWlnaHQ6NDVweDt9IC5waWNib3hfdmlkZW9idG5fZW4ge2JhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL3ZpZGVvLWJ0bi10aHVtYl9lbi5wbmcnKSBuby1yZXBlYXQgc2Nyb2xsIDAgMCAvIDEwMCUgYXV0byB0cmFuc3BhcmVudDt9IC5waWNib3hfdmlkZW9idG5fZnIge2JhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL3ZpZGVvLWJ0bi10aHVtYl9mci5wbmcnKSBuby1yZXBlYXQgc2Nyb2xsIDAgMCAvIDEwMCUgYXV0byB0cmFuc3BhcmVudDt9IC5waWNib3hfdmlkZW9idG5fZW46aG92ZXIge2JhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL3ZpZGVvLWJ0bi10aHVtYl9lbl9ob3Zlci5wbmcnKSBuby1yZXBlYXQgc2Nyb2xsIDAgMCAvIDEwMCUgYXV0byB0cmFuc3BhcmVudDt9IC5waWNib3hfdmlkZW9idG5fZnI6aG92ZXIge2JhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL3ZpZGVvLWJ0bi10aHVtYl9mcl9ob3Zlci5wbmcnKSBuby1yZXBlYXQgc2Nyb2xsIDAgMCAvIDEwMCUgYXV0byB0cmFuc3BhcmVudDt9IC5iaWdfcGljYm94X3dyYXBwZXIgeyB3aWR0aDoxNDZweDsgZmxvYXQ6bGVmdDsgbWFyZ2luOjAgMTBweCAwcHggMjFweDsgfSAudGV4dF90aXRsZSBheyBkaXNwbGF5OmJsb2NrO3RleHQtZGVjb3JhdGlvbjpub25lOyB3aWR0aDozMjlweDsgaGVpZ2h0OmF1dG87IG1hcmdpbjowOyBwYWRkaW5nLWJvdHRvbTo1cHg7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiM0MTQxNDE7IGZvbnQtd2VpZ2h0OmJvbGQ7fSAudGV4dF90aXRsZTJ7d2lkdGg6MzI5cHg7IGhlaWdodDozMnB4OyBmbG9hdDpsZWZ0OyBtYXJnaW46MCA7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiM0MTQxNDE7fSAuc29sZF9jYXJfbm90ZXtiYWNrZ3JvdW5kLWNvbG9yOiMxRTFFMUU7IGJvcmRlci1yYWRpdXM6NXB4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6NXB4OyBjb2xvcjojRkZGOyB3aWR0aDoxMDAlOyBwYWRkaW5nOjEwcHggMDsgdGV4dC1hbGlnbjpjZW50ZXI7IG1hcmdpbi10b3A6MTVweDt9IC5zb2xkX2Nhcl9ub3RlIGEge2NvbG9yOiNGRkY7fSAuc29sZF9jYXJfbm90ZSBhOmhvdmVyIHtjb2xvcjojQkJCO30gLnRleHRfdGl0bGUze3dpZHRoOjMyOXB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgbWFyZ2luOjAgOyBwYWRkaW5nLWJvdHRvbTo3cHg7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiM0ODQ4NDg7fSAudGV4dF9ib3gye3dpZHRoOjMyOXB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgbWFyZ2luOjAgMHB4IDBweCAwcHg7IH0gLm1haW5fcGljYm94e3dpZHRoOjY3MXB4OyBtaW4taGVpZ2h0OjE3MHB4OyBmbG9hdDpsZWZ0OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2xpbmUucG5nKSBsZWZ0IGJvdHRvbSByZXBlYXQteDsgYmFja2dyb3VuZC1wb3NpdGlvbjpib3R0b207IHBhZGRpbmc6MDsgbWFyZ2luOjAgO30gLmJveDJfZGV0YWlsc19mb290ZXIye3dpZHRoOjY4MXB4OyBoZWlnaHQ6MTVweDsgZmxvYXQ6bGVmdDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9ib3hfZm9vdGVyLnBuZykgbGVmdCB0b3Agbm8tcmVwZWF0O30gLmJveDJfZGV0YWlsc19taWRFeHt3aWR0aDoxMDAlOyBoZWlnaHQ6YXV0bzsgYmFja2dyb3VuZDpub25lOyBwYWRkaW5nOjAgMHB4O2hlaWdodDo4NXB4O30gLmJveDJfZGV0YWlsc190ZXh0IHNwYW57IHRleHQtYWxpZ246Y2VudGVyOyBmb250LXNpemU6MS4xMjVyZW0gOyBjb2xvcjojRkZGRkZGOyBmb250LXdlaWdodDpib2xkO30gLmJveDJfZGV0YWlsc19mb290ZXIyMnt3aWR0aDo5NzFweDsgaGVpZ2h0OjE1cHg7IGZsb2F0OmxlZnQ7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvYm94X2Zvb3Rlci5wbmcpIGxlZnQgdG9wIG5vLXJlcGVhdDtiYWNrZ3JvdW5kLXNpemU6OTcxcHggYXV0bzt9IC5ib3gxNzB7cG9zaXRpb246cmVsYXRpdmU7d2lkdGg6NjcxcHg7IG1pbi1oZWlnaHQ6MTcwcHg7IGZsb2F0OmxlZnQ7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvbGluZS5wbmcpIGxlZnQgYm90dG9tIG5vLXJlcGVhdDsgYmFja2dyb3VuZC1wb3NpdGlvbjpib3R0b207IHBhZGRpbmc6MDsgbWFyZ2luOjAgMHB4IDEwcHggMDt9IC5jdXN0b21Cb3hCYXNpY3sgd2lkdGg6MjQxcHg7IGhlaWdodDoxMTZweDsgZmxvYXQ6bGVmdDsgcGFkZGluZzo1cHggMCAwIDA7IGJhY2tncm91bmQtcG9zaXRpb246bGVmdCB0b3A7IGJhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDsgYmFja2dyb3VuZC1zaXplOjI0MXB4IDEyMXB4OyBmb250LXNpemU6MS4xODhyZW0gOyBjb2xvcjojMTkxOTE5OyB0ZXh0LWFsaWduOmNlbnRlcjsgZm9udC13ZWlnaHQ6bm9ybWFsOyBjdXJzb3I6cG9pbnRlcjsgfSAuY3VzdG9tQm94QmFzaWM6aG92ZXJ7IGNvbG9yOiNmZmY7IH0gLmN1c3RvbTUgeyBiYWNrZ3JvdW5kLWltYWdlOnVybCgvaW1hZ2VzL2JveDIyX2hvdmVyLnBuZyk7IH0gLmN1c3RvbTU1IHsgYmFja2dyb3VuZC1pbWFnZTp1cmwoL2ltYWdlcy9ib3gyMi5wbmcpOyB9IC5jdXN0b202NjUgeyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2JveDIzX2hvdmVyLnBuZyk7IH0gLmN1c3RvbTY2NTUgeyBiYWNrZ3JvdW5kLWltYWdlOnVybCgvaW1hZ2VzL2JveDIzLnBuZyk7IH0gLmN1c3RvbTY3NSB7IGJhY2tncm91bmQtaW1hZ2U6dXJsKC9pbWFnZXMvYm94MjcucG5nKTsgfSAuY3VzdG9tNjc1NSB7IGJhY2tncm91bmQtaW1hZ2U6dXJsKC9pbWFnZXMvYm94MjdfaG92ZXIucG5nKTsgfSAuY3VzdG9tNjg1IHsgYmFja2dyb3VuZC1pbWFnZTp1cmwoL2ltYWdlcy9ib3gyOC5wbmcpOyB9IC5jdXN0b202ODU1IHsgYmFja2dyb3VuZC1pbWFnZTp1cmwoL2ltYWdlcy9ib3gyOF9ob3Zlci5wbmcpOyB9IC5pbWFnZV9yaWJib24geyBwb3NpdGlvbjphYnNvbHV0ZTsgbGVmdDotNXB4OyB0b3A6LTRweDsgei1pbmRleDoxOyBvdmVyZmxvdzpoaWRkZW47IHdpZHRoOjExMnB4OyBoZWlnaHQ6MTEycHg7IHRleHQtYWxpZ246cmlnaHQ7IH0gLmltYWdlX3JpYmJvbiBzcGFuIHsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6I2ZmZmZmZjsgdGV4dC1hbGlnbjpjZW50ZXI7IGxpbmUtaGVpZ2h0OjI4cHg7IHRyYW5zZm9ybTpyb3RhdGUoLTQ1ZGVnKTsgLXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKC00NWRlZyk7IHdpZHRoOjE0OHB4OyBkaXNwbGF5OmJsb2NrOyBiYWNrZ3JvdW5kOiNlYjAwMDA7IGJveC1zaGFkb3c6MCAzcHggMTBweCAtNXB4IHJnYmEoMCwgMCwgMCwgMSk7IHBvc2l0aW9uOmFic29sdXRlOyB0b3A6MzBweDsgbGVmdDotMzBweDsgfSAuaW1hZ2VfcmliYm9uIHNwYW46OmJlZm9yZSB7IGNvbnRlbnQ6IiI7IHBvc2l0aW9uOmFic29sdXRlOyBsZWZ0OjBweDsgdG9wOjEwMCU7IHotaW5kZXg6LTE7IGJvcmRlci1sZWZ0OjNweCBzb2xpZCAjZWIwMDAwOyBib3JkZXItcmlnaHQ6M3B4IHNvbGlkIHRyYW5zcGFyZW50OyBib3JkZXItYm90dG9tOjNweCBzb2xpZCB0cmFuc3BhcmVudDsgYm9yZGVyLXRvcDozcHggc29saWQgI2ViMDAwMDsgfSAuaW1hZ2VfcmliYm9uIHNwYW46OmFmdGVyIHsgY29udGVudDoiIjsgcG9zaXRpb246YWJzb2x1dGU7IHJpZ2h0OjBweDsgdG9wOjEwMCU7IHotaW5kZXg6LTE7IGJvcmRlci1sZWZ0OjNweCBzb2xpZCB0cmFuc3BhcmVudDsgYm9yZGVyLXJpZ2h0OjNweCBzb2xpZCAjZWIwMDAwOyBib3JkZXItYm90dG9tOjNweCBzb2xpZCB0cmFuc3BhcmVudDsgYm9yZGVyLXRvcDozcHggc29saWQgI2ViMDAwMDsgfSAuaW1hZ2VfcmliYm9uX3ZkcCB7IHBvc2l0aW9uOmFic29sdXRlOyBsZWZ0Oi01cHg7IHRvcDotNnB4OyBvdmVyZmxvdzpoaWRkZW47IHdpZHRoOjE5NHB4OyBoZWlnaHQ6MTk0cHg7IHRleHQtYWxpZ246cmlnaHQ7IHotaW5kZXg6NDA7IH0gLmltYWdlX3JpYmJvbl92ZHAgc3BhbiB7IGZvbnQtc2l6ZToxLjA2M3JlbSA7IGNvbG9yOiNmZmZmZmY7IHRleHQtYWxpZ246Y2VudGVyOyBsaW5lLWhlaWdodDozNnB4OyB0cmFuc2Zvcm06cm90YXRlKC00NWRlZyk7IC13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgtNDVkZWcpOyB3aWR0aDoyNzNweDsgZGlzcGxheTpibG9jazsgYmFja2dyb3VuZDojZWIwMDAwOyBib3gtc2hhZG93OjAgM3B4IDEwcHggLTVweCByZ2JhKDAsIDAsIDAsIDEpOyBwb3NpdGlvbjphYnNvbHV0ZTsgdG9wOjY3cHg7IGxlZnQ6LTUxcHg7IH0gLmltYWdlX3JpYmJvbl92ZHAgc3Bhbjo6YmVmb3JlIHsgY29udGVudDoiIjsgcG9zaXRpb246YWJzb2x1dGU7IGxlZnQ6MHB4OyB0b3A6MTAwJTsgei1pbmRleDotMTsgYm9yZGVyLWxlZnQ6M3B4IHNvbGlkICMxZjJmNTM7OyBib3JkZXItcmlnaHQ6M3B4IHNvbGlkIHRyYW5zcGFyZW50OyBib3JkZXItYm90dG9tOjNweCBzb2xpZCB0cmFuc3BhcmVudDsgYm9yZGVyLXRvcDozcHggc29saWQgIzFmMmY1Mzs7IH0gLmltYWdlX3JpYmJvbl92ZHAgc3Bhbjo6YWZ0ZXIgeyBjb250ZW50OiIiOyBwb3NpdGlvbjphYnNvbHV0ZTsgcmlnaHQ6MHB4OyB0b3A6MTAwJTsgei1pbmRleDotMTsgYm9yZGVyLWxlZnQ6M3B4IHNvbGlkIHRyYW5zcGFyZW50OyBib3JkZXItcmlnaHQ6M3B4IHNvbGlkICMxZjJmNTM7OyBib3JkZXItYm90dG9tOjNweCBzb2xpZCB0cmFuc3BhcmVudDsgYm9yZGVyLXRvcDozcHggc29saWQgIzFmMmY1Mzs7IH0gLnJpYmJvbi1jb250YWluZXIgeyB3aWR0aCA6MzAwcHg7IGhlaWdodCA6MzAwcHg7IG92ZXJmbG93IDpoaWRkZW47IHBvc2l0aW9uIDphYnNvbHV0ZTsgdG9wIDowOyBsZWZ0IDowOyB9IC5yaWJib24tY29udGFpbmVyIC5jb3JuZXItcmliYm9uIHsgei1pbmRleCA6NTU1OyBtYXJnaW4gOjA7IHBhZGRpbmcgOjAuNXJlbSAwICFpbXBvcnRhbnQ7IGJveC1zaGFkb3cgOjAgM3B4IDEwcHggLTVweCByZ2JhKDAsIDAsIDAsIDEpOyBmb250LXNpemUgOjE3cHg7IGxpbmUtaGVpZ2h0IDoyM3B4OyB0ZXh0LWFsaWduIDpjZW50ZXI7IHBvc2l0aW9uIDphYnNvbHV0ZTsgdG9wIDowOyBsZWZ0IDowOyB0cmFuc2Zvcm0gOnRyYW5zbGF0ZVgoLTMwJSkgdHJhbnNsYXRlWSgwJSkgcm90YXRlKC00NWRlZyk7IHRyYW5zZm9ybS1vcmlnaW4gOnRvcCByaWdodDsgYmFja2dyb3VuZCA6IzAwMDAwMDsgY29sb3IgOiNmZmZmZmY7IH0gLnJpYmJvbi1jb250YWluZXIgLmNvcm5lci1yaWJib246YmVmb3JlLCAucmliYm9uLWNvbnRhaW5lciAuY29ybmVyLXJpYmJvbjphZnRlciB7IGNvbnRlbnQgOiIiOyBwb3NpdGlvbiA6YWJzb2x1dGU7IHRvcCA6MDsgbWFyZ2luIDowIC0xcHg7IHdpZHRoIDoxMDAlOyBoZWlnaHQgOjEwMCU7IGJhY2tncm91bmQgOiMwMDAwMDA7IH0gLnJpYmJvbi1jb250YWluZXIgLmNvcm5lci1yaWJib246YmVmb3JlIHsgbGVmdDoxMDAlOyB9IC5yaWJib24tY29udGFpbmVyIC5jb3JuZXItcmliYm9uOmFmdGVyIHsgcmlnaHQ6MTAwJTsgfSAuc2VhcmNocmlnaHQgeyB3aWR0aDoyODBweDsgaGVpZ2h0OjExNnB4OyBwYWRkaW5nOjVweCAwIDAgMDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9yaWdodC1zZWFyY2gtYm94LnBuZykgbGVmdCB0b3AgcmVwZWF0LXg7IGZvbnQtc2l6ZToxLjE4OHJlbSA7IGNvbG9yOiMxOTE5MTk7IHRleHQtYWxpZ246Y2VudGVyOyBmb250LXdlaWdodDpub3JtYWw7Y3Vyc29yOnBvaW50ZXI7IH0gLnNlYXJjaHJpZ2h0aG92ZXIgeyB3aWR0aDoyODBweDsgaGVpZ2h0OjExNnB4OyBwYWRkaW5nOjVweCAwIDAgMDsgbWFyZ2luOjAgMCAwIDA7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvcmlnaHQtc2VhcmNoLWJveC1ob3Zlci5wbmcpIGxlZnQgdG9wIHJlcGVhdC14OyBmb250LXNpemU6MS4xODhyZW0gOyBjb2xvcjojRkZGRkZGOyB0ZXh0LWFsaWduOmNlbnRlcjsgZm9udC13ZWlnaHQ6bm9ybWFsOyBjdXJzb3I6cG9pbnRlcjsgfSAuc2VhcmNocmlnaHRYWFggeyB3aWR0aDoyODBweDsgaGVpZ2h0OjExNnB4OyBwYWRkaW5nOjVweCAwIDAgMDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9yaWdodC1zZWFyY2gtYm94LnBuZykgbGVmdCB0b3Agbm8tcmVwZWF0ICMwZjE3NDY7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiNGRkZGRkY7IHRleHQtYWxpZ246Y2VudGVyOyBmb250LXdlaWdodDpib2xkO2N1cnNvcjpwb2ludGVyOyBib3JkZXItcmFkaXVzOjhweDsgLW1vei1ib3JkZXItcmFkaXVzOjhweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjhweDsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IC5zZWFyY2hyaWdodGhvdmVyWFhYIHsgd2lkdGg6MjgwcHg7IGhlaWdodDoxMTZweDsgcGFkZGluZzo1cHggMCAwIDA7IG1hcmdpbjowIDAgMCAwOyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL3JpZ2h0LXNlYXJjaC1ib3gtaG92ZXIucG5nKSBsZWZ0IHRvcCBuby1yZXBlYXQgIzBmMTc0NjsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6I0ZGRkZGRjsgdGV4dC1hbGlnbjpjZW50ZXI7IGZvbnQtd2VpZ2h0OmJvbGQ7IGN1cnNvcjpwb2ludGVyOyBib3JkZXItcmFkaXVzOjhweDsgLW1vei1ib3JkZXItcmFkaXVzOjhweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjhweDsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IC5zZWFyY2hyaWdodC10ZXh0eyBtYXJnaW4tbGVmdDoxMDBweDsgdGV4dC1hbGlnbjpsZWZ0OyB3aWR0aDo2MCU7IH0gLnNlYXJjaHJpZ2h0LXRleHQgcHsgbWFyZ2luOjE1cHggMCAwOyB9IC5wYWdlbm8ye2hlaWdodDoyNHB4OyB9IC5wYWdlbm8yIHVseyBsaXN0LXN0eWxlLXR5cGU6bm9uZTsgbWFyZ2luOjA7IHBhZGRpbmc6MDsgdGV4dC10cmFuc2Zvcm06bm9uZTsgfSAucGFnZW5vMiB1bCBsaXsgbGlzdC1zdHlsZS10eXBlOm5vbmU7IG1hcmdpbjowOyBkaXNwbGF5OmlubGluZTt9IC5wYWdlbm8yIHVsIGxpIGF7IGxpc3Qtc3R5bGUtdHlwZTpub25lOyBtYXJnaW46MDsgZGlzcGxheTpibG9jazsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzMyMzIzMjsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHBhZGRpbmc6MCA3cHg7IG1hcmdpbi1yaWdodDoycHg7IGZvbnQtd2VpZ2h0OmJvbGQ7IGxpbmUtaGVpZ2h0OjI0cHg7IHRleHQtdHJhbnNmb3JtOm5vbmU7IHRleHQtYWxpZ246Y2VudGVyOyB0ZXh0LXRyYW5zZm9ybTpub25lOyBiYWNrZ3JvdW5kOiNiM2I0YjU7IGZsb2F0OmxlZnQ7IC1tb3otYm9yZGVyLXJhZGl1czo0cHg7IC13ZWJraXQtYm9yZGVyLXJhZGl1czo0cHg7IGJvcmRlci1yYWRpdXM6NHB4OyAta2h0bWwtYm9yZGVyLXJhZGl1czo0cHg7fSAucGFnZW5vMiB1bCBsaSBhOmhvdmVyeyBsaXN0LXN0eWxlLXR5cGU6bm9uZTsgbWFyZ2luOjA7IGRpc3BsYXk6YmxvY2s7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiNGRkZGRkY7IHRleHQtZGVjb3JhdGlvbjpub25lOyBwYWRkaW5nOjAgN3B4OyBtYXJnaW4tcmlnaHQ6MnB4OyBmb250LXdlaWdodDpib2xkOyBsaW5lLWhlaWdodDoyNHB4OyB0ZXh0LXRyYW5zZm9ybTpub25lOyB0ZXh0LWFsaWduOmNlbnRlcjsgdGV4dC10cmFuc2Zvcm06bm9uZTsgYmFja2dyb3VuZDojMjgyODI4OyBmbG9hdDpsZWZ0OyAtbW96LWJvcmRlci1yYWRpdXM6NHB4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6NHB4OyBib3JkZXItcmFkaXVzOjRweDsgLWtodG1sLWJvcmRlci1yYWRpdXM6NHB4O30gLnBhZ2VubzIgbGkgYS5hY3RpdmV7IGxpc3Qtc3R5bGUtdHlwZTpub25lOyBtYXJnaW46MDsgZGlzcGxheTpibG9jazsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6I0ZGRkZGRjsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHBhZGRpbmc6MCA3cHg7IG1hcmdpbi1yaWdodDoycHg7IGZvbnQtd2VpZ2h0OmJvbGQ7IGxpbmUtaGVpZ2h0OjI0cHg7IHRleHQtdHJhbnNmb3JtOm5vbmU7IHRleHQtYWxpZ246Y2VudGVyOyB0ZXh0LXRyYW5zZm9ybTpub25lOyBiYWNrZ3JvdW5kOiMyODI4Mjg7IGZsb2F0OmxlZnQ7IC1tb3otYm9yZGVyLXJhZGl1czo0cHg7IC13ZWJraXQtYm9yZGVyLXJhZGl1czo0cHg7IGJvcmRlci1yYWRpdXM6NHB4OyAta2h0bWwtYm9yZGVyLXJhZGl1czo0cHg7fSAubWFpbl9ib3h7d2lkdGg6OTYwcHg7IG1hcmdpbjowIGF1dG87fSAubWFpbl9sZWZ0X2JveHt3aWR0aDo2NzBweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7cGFkZGluZy1yaWdodDoxMHB4O30gLm1haW5fbGVmdF9ib3ggdWx7cGFkZGluZzowcHg7fSAuYm94X21pZF9yb3VuZCB7IGJhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7IC1tcy1maWx0ZXI6cHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LkFscGhhKE9wYWNpdHk9MTAwKTsgYmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LDApOyBib3JkZXItcmFkaXVzOjVweDsgYm94LXNoYWRvdzpub25lOyBmbG9hdDpsZWZ0OyBoZWlnaHQ6YXV0bzsgbWFyZ2luLXRvcDoxMHB4OyB9IC5ib3hfdG9wX3JvdW5kIHsgZGlzcGxheTpub25lOyB9IC5ib3gyX2RldGFpbHNfZm9vdGVyMiB7IGRpc3BsYXk6bm9uZTsgfSAuZGV0YWlsc19ib3ggaW1nLnZpcHsgbWFyZ2luLXRvcDotNDhweDsgd2lkdGg6MTQwcHg7IGJvcmRlcjoxcHg7IGJvcmRlci1yYWRpdXM6NHB4OyB9IC5ib3hfdG9wX3JvdW5kMnt3aWR0aDo5NzFweDsgaGVpZ2h0OjE1cHg7IGZsb2F0OmxlZnQ7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvYm94X3RvcC5wbmcpIGxlZnQgdG9wIG5vLXJlcGVhdDtiYWNrZ3JvdW5kLXNpemU6OTcxcHggYXV0bzsgbWFyZ2luLXRvcDo1cHg7fSAuYm94X21pZF9yb3VuZDJ7d2lkdGg6OTcxcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2JveF9taWQucG5nKSBsZWZ0IHRvcCByZXBlYXQteTtiYWNrZ3JvdW5kLXNpemU6OTcxcHggYXV0bzsgcGFkZGluZzowIDVweDt9IC5wYWdlX25hbWV7d2lkdGg6NjUwcHg7IGhlaWdodDozMHB4OyBmbG9hdDpsZWZ0OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL3Noby5wbmcpIGNlbnRlciBib3R0b20gbm8tcmVwZWF0OyBiYWNrZ3JvdW5kLXBvc2l0aW9uOmJvdHRvbTsgcGFkZGluZzowIDBweCAwcHggMjFweDsgbGluZS1oZWlnaHQ6MzBweDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzQxNDE0MTt9IC5wYWdlX25hbWUgYXsgbGluZS1oZWlnaHQ6MzBweDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzQxNDE0MTsgdGV4dC10cmFuc2Zvcm06bm9uZTsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7fSAucGFnZV9uYW1lIGE6aG92ZXJ7IGxpbmUtaGVpZ2h0OjMwcHg7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMwMDU4OWM7IHRleHQtdHJhbnNmb3JtOm5vbmU7IHRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7fSB0YWJsZS52ZWhpY2xlTGlzdFRhYmxlIGF7ZGlzcGxheTp0YWJsZS1jZWxsOyB2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7bGluZS1oZWlnaHQ6MS4yO30gdGFibGUudmVoaWNsZUxpc3RUYWJsZSBhOmhvdmVye2Rpc3BsYXk6dGFibGUtY2VsbDsgdmVydGljYWwtYWxpZ246bWlkZGxlO2xpbmUtaGVpZ2h0OjEuMjt9IC5Qb3JzY2hlMnt3aWR0aDoxMDAlO2hlaWdodDozMXB4OyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjAgMHB4IDIwcHggMjFweDsgbWFyZ2luOjE1cHggMCAyNXB4IDA7IGxpbmUtaGVpZ2h0OjMxcHg7IGZvbnQtc2l6ZToxLjg3NXJlbSA7IGNvbG9yOiM0MTQxNDE7ZGlzcGxheTppbmxpbmV9IC5Qb3JzY2hlMiBoMXtmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc2l6ZToxLjg3NXJlbSA7IGNvbG9yOiM0MTQxNDE7fSAuVHJpZXJwYXJ7IGZvbnQtc2l6ZTowLjc1cmVtIDsgY29sb3I6IzVCNjk5QzsgZm9udC13ZWlnaHQ6bm9ybWFsO3BhZGRpbmctbGVmdDo1cHg7fSAuc2VsZWN0ZWRfYm94Mnt3aWR0aDoxNzVweDsgaGVpZ2h0OjMxcHg7IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MCAwcHggMHB4IDBweDsgbWFyZ2luOjE1cHggMDsgbGluZS1oZWlnaHQ6MzFweDsgZm9udC1zaXplOjEuODc1cmVtIDsgY29sb3I6IzQxNDE0MTt9IC5zZWxlY3RlZF9vcmRlcmJ5e3dpZHRoOjEzNXB4OyBmbG9hdDpyaWdodDsgcGFkZGluZzowIDBweCAwcHggMHB4OyBtYXJnaW46MTBweCAxMHB4IDBweCAwcHg7IGZvbnQtc2l6ZToxLjg3NXJlbSA7IGNvbG9yOiM0MTQxNDE7fSAucHJpeHt3aWR0aDo3OXB4OyBoZWlnaHQ6NzhweDsgZmxvYXQ6bGVmdDsgcG9zaXRpb246YWJzb2x1dGU7IHotaW5kZXg6MTE7IG1hcmdpbi10b3A6LTRweDsgbWFyZ2luLWxlZnQ6LTRweDsgdG9wOjBweDt9IC5wYWdlbm81e3dpZHRoOjEwMCU7IGhlaWdodDoyNHB4OyBtYXJnaW46MzBweCAwIDIwcHggMHB4OyBwYWRkaW5nOjA7IGZsb2F0OmxlZnQgfSAucGFnZW5vNnt3aWR0aDoyNTRweDsgaGVpZ2h0OjI0cHg7IGZsb2F0OmxlZnQ7IHRleHQtYWxpZ246cmlnaHQ7fSAuc3VpdmFudHt3aWR0aDoyODBweDsgaGVpZ2h0OjE5cHg7IGZsb2F0OmxlZnQ7IHBhZGRpbmctdG9wOjVweDt9IC5tYWluX3JpZ2h0X2JveHt3aWR0aDoyODBweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7fSAuYm94N3t3aWR0aDoyOTBweDsgaGVpZ2h0OjEycHg7IGZsb2F0OmxlZnQ7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvbGVmdF9ib3hfdG9wLnBuZykgbGVmdCB0b3Agbm8tcmVwZWF0OyB9IC5ib3g3TGlua3t3aWR0aDoyOTBweDsgaGVpZ2h0OjEycHg7IGZsb2F0OmxlZnQ7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvbGVmdF9ib3hfdG9wLnBuZykgbGVmdCB0b3Agbm8tcmVwZWF0OyB9IC5ib3g3X21pZHt3aWR0aDoyODBweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvbGVmdF9ib3hfbWlkLnBuZykgbGVmdCB0b3AgcmVwZWF0LXk7IHBhZGRpbmc6MCAycHg7fSAuYm94N19taWRfZnVsbHt3aWR0aDo5NTZweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGJhY2tncm91bmQ6bm9uZSBsZWZ0IHRvcCBuby1yZXBlYXQgMCAwIHRyYW5zcGFyZW50OyBwYWRkaW5nOjAgMnB4IDE1cHg7IGJvcmRlci1ib3R0b206MXB4IHNvbGlkICNCQkI7fSAuc2ltdWxhcl92X2JveHsgd2lkdGg6MjY1cHg7IHBhZGRpbmc6MHB4IDBweCA1cHggMTBweDsgbWFyZ2luLWJvdHRvbTo1cHg7IH0gLmJveFNlYXJjaE5ld3N7bWFyZ2luLXRvcDotM3B4O21hcmdpbi1sZWZ0Oi01cHg7d2lkdGg6Mjg1cHg7IGhlaWdodDoxMnB4OyBmbG9hdDpsZWZ0OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2xlZnRfYm94X3RvcF8yODAucG5nKSBsZWZ0IHRvcCBuby1yZXBlYXQ7fSAuYm94U2VhcmNoTmV3c19taWR7bWFyZ2luLWxlZnQ6LTVweDtwYWRkaW5nOjBweDt3aWR0aDoyODFweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvbGVmdF9ib3hfbWlkXzI4MC5wbmcpIGxlZnQgdG9wIHJlcGVhdC15OyB9IC5ib3hTZWFyY2hOZXdzX2Zvb3RlcjE1e21hcmdpbi1sZWZ0Oi01cHg7d2lkdGg6Mjg1cHg7IGhlaWdodDoxMnB4OyBmbG9hdDpsZWZ0OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2xlZnRfYm94X2Zvb3Rlcl8yODAucG5nKSBsZWZ0IHRvcCBuby1yZXBlYXQ7fSAuYm94N0hfbWlke3dpZHRoOjI4MHB4OyBmbG9hdDpsZWZ0OyBwYWRkaW5nLWJvdHRvbTo2cHg7fSAuUmVjaGVyY2hlMjJ7aGVpZ2h0OjIwcHg7IHBhZGRpbmc6MTBweCA3cHg7IGZvbnQtc2l6ZToxLjEyNXJlbSA7IGNvbG9yOiMwMDAwMDA7fSAuc2ltVGl0bGV7aGVpZ2h0OmF1dG87IHBhZGRpbmc6MHB4OyBmb250LXNpemU6MS4xMjVyZW0gOyBjb2xvcjojMGYxYTFlO30gLmJveDh7d2lkdGg6MjcwcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjBweCAwcHggMHB4IDEwcHg7fSAuYm94OXt3aWR0aDoyMHB4OyBoZWlnaHQ6MThweDsgZmxvYXQ6bGVmdDsgcGFkZGluZzowcHggMHB4IDE0cHggMHB4OyBmb250LXNpemU6MS4xMjVyZW0gOyBjb2xvcjojMGYxYTFlO30gLmJveDExe3dpZHRoOjEwMHB4OyBoZWlnaHQ6MTFweDsgZmxvYXQ6bGVmdDsgcGFkZGluZzo3cHggMHB4IDE0cHggMHB4OyBmb250LXNpemU6MC44MTNyZW0gOyBjb2xvcjojNTc1NzU3OyBsaW5lLWhlaWdodDoxOHB4O30gLmJveDEye3dpZHRoOjEzMHB4OyBoZWlnaHQ6MTFweDsgZmxvYXQ6bGVmdDsgcGFkZGluZzo3cHggMHB4IDE0cHggMHB4OyBmb250LXNpemU6MC44MTNyZW0gOyBjb2xvcjojNTc1NzU3OyBsaW5lLWhlaWdodDoxOHB4O30gLnNlbGVjdF9ib3gxNHtoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgcGFkZGluZzowcHggMTBweCAwcHggMHB4OyBtYXJnaW4tYm90dG9tOjNweDt9IC5zZWxlY3RfYm94MTZ7aGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MHB4IDEwcHggMHB4IDEwcHg7IG1hcmdpbi1ib3R0b206M3B4O30gLnNlbGVjdF9ib3gxNXtoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgcGFkZGluZzoxMHB4IDEwcHggMHB4IDEwcHg7IG1hcmdpbi1ib3R0b206MTBweDt9IC5zZWxlY3RfYm94MTE1e3dpZHRoOjExNXB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgcGFkZGluZzowcHggMHB4IDBweCAxMHB4OyBtYXJnaW4tYm90dG9tOjEwcHg7fSAuc2VsZWN0X2JveDgwe3dpZHRoOjgwcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjBweCAwcHggMHB4IDBweDsgbWFyZ2luLWJvdHRvbToxMHB4O30gLmFfdGV4dHt3aWR0aDoyMHB4OyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44MTNyZW0gOyBjb2xvcjojNTc1NzU3OyBsaW5lLWhlaWdodDozMXB4OyB0ZXh0LWFsaWduOmNlbnRlcjsgcGFkZGluZzowIDVweDt9IC5ham91dGVye3dpZHRoOjEwMCU7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjEwcHggMDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6I0ZGRkZGRjsgYmFja2dyb3VuZC1jb2xvcjojMWYxZjFmO21hcmdpbjo1cHggMCAxMHB4IDBweDt9IC5ham91dGVyX2F7YmFja2dyb3VuZDp1cmwoIi9pbWFnZXMvc2VhcmNoLWRvd24tYXJyb3cucG5nIikgbm8tcmVwZWF0IHNjcm9sbCBsZWZ0IDNweCB0cmFuc3BhcmVudDsgcGFkZGluZy1sZWZ0OjI1cHg7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiNGRkZGRkY7IHRleHQtZGVjb3JhdGlvbjpub25lOyB9IC5ham91dGVyX2FfZnVsbHtiYWNrZ3JvdW5kOnVybCgiL2ltYWdlcy9zZWFyY2gtcmlnaHQtYXJyb3cucG5nIikgbm8tcmVwZWF0IHNjcm9sbCByaWdodCAtMXB4IHRyYW5zcGFyZW50OyBwYWRkaW5nLXJpZ2h0OjI1cHg7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiNGRkZGRkY7IHRleHQtZGVjb3JhdGlvbjpub25lOyB9IC5ib3gxM3t3aWR0aDoyNjBweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MHB4IDEwcHggMHB4IDEwcHg7fSAuaW5wdXRfYm94Mnt3aWR0aDoyMHB4OyBoZWlnaHQ6MThweDsgZmxvYXQ6bGVmdDsgcGFkZGluZzowcHggMHB4IDE0cHggMHB4OyBmb250LXNpemU6MS4xMjVyZW0gOyBjb2xvcjojMGYxYTFlO30gLmlucHV0X3RleHR7IHdpZHRoOjE5NXB4OyBoZWlnaHQ6MTFweDsgZmxvYXQ6bGVmdDsgcGFkZGluZzozcHggMHB4IDdweCA1cHg7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IGNvbG9yOiM1NzU3NTc7IGxpbmUtaGVpZ2h0OjE4cHg7IH0gLmJ1dHRvbl9ib3gye3dpZHRoOjI2MHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgfSAuYnV0dG9uX2JveFMyeyB3aWR0aDoyNDZweDsgaGVpZ2h0OjI5cHg7IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MTBweCAzcHggMTNweCAzcHg7IH0gLmJveC1mb290ZXIxNXt3aWR0aDoyOTBweDsgaGVpZ2h0OjEycHg7IGZsb2F0OmxlZnQ7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvbGVmdF9ib3hfZm9vdGVyLnBuZykgbGVmdCB0b3Agbm8tcmVwZWF0O30gLmRpc3sgbWFyZ2luLXRvcDo1cHg7IG1hcmdpbi1sZWZ0OjVweDsgd2lkdGg6MjQwcHg7fSAuZGlzX2N1c3RvbXsgd2lkdGg6MjQwcHg7d2lkdGg6MjQwcHg7fSAuZGlzX3RvcHsgd2lkdGg6MjQ2cHg7IGhlaWdodDo5cHg7IGZsb2F0OmxlZnQ7fSAuZGlzX3RvcF9jdXN0b217IHdpZHRoOjIzOHB4OyBoZWlnaHQ6NDBweDsgZmxvYXQ6bGVmdDsgY29sb3I6IzAwMDAwMDsgYmFja2dyb3VuZDojZWVlZWVlO30gLmRpc19iZ3sgd2lkdGg6MjQ2cHg7IGhlaWdodDoxNTBweDsgZmxvYXQ6bGVmdDsgY29sb3I6IzI4MjgyODsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9kaXNfYmcucG5nKSBsZWZ0IHRvcCByZXBlYXQteTt9IC5fZGlzX2JneyB3aWR0aDoyNDBweDsgaGVpZ2h0OjIwMHB4OyBmbG9hdDpsZWZ0OyBjb2xvcjojMjgyODI4O30gLmRpc19iZ19jdXN0b217IGZsb2F0OmxlZnQ7IGNvbG9yOiMyODI4Mjg7IGJhY2tncm91bmQ6cmdiYSgyNTUsMjU1LDI1NSwwKTt9IC5fZGlzX2JnX2N1c3RvbXsgZmxvYXQ6bGVmdDsgY29sb3I6IzI4MjgyODsgYmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LDApO30gLmRpc19ib3V7IHdpZHRoOjI0NnB4OyBoZWlnaHQ6NTBweDsgZmxvYXQ6bGVmdDsgY29sb3I6IzJkMmQyZDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9kaXNfYm91LnBuZykgbGVmdCB0b3Agbm8tcmVwZWF0O30gLl9kaXNfYm91eyB3aWR0aDoyNDBweDsgaGVpZ2h0OjM4cHg7IGZsb2F0OmxlZnQ7IGJvcmRlci1yYWRpdXM6MCAwIDZweCA2cHg7IG1hcmdpbi10b3A6MTRweDsgY29sb3I6IzJkMmQyZDs7IH0gLmRpc19ib3VfY3VzdG9teyB3aWR0aDoyMzhweDsgaGVpZ2h0OjUwcHg7IGZsb2F0OmxlZnQ7IHBhZGRpbmctdG9wOjVweDsgY29sb3I6IzFmMmY1MzsgYmFja2dyb3VuZDojZjNmM2YzO30gLl9kaXNfYm91X2N1c3RvbXsgd2lkdGg6MjQwcHg7IGhlaWdodDo0MHB4OyBmbG9hdDpsZWZ0OyBjb2xvcjojMWYyZjUzOyBib3JkZXItcmFkaXVzOjAgMCA2cHggNnB4OyBtYXJnaW4tdG9wOjEycHg7IGJhY2tncm91bmQtY29sb3I6I2YzZjNmMzsgfSAuZGlzX2JvdV8yeyB3aWR0aDoyNDZweDsgaGVpZ2h0OjlweDsgZmxvYXQ6bGVmdDsgY29sb3I6IzJkMmQyZDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9kaXNfYm91XzIucG5nKSBsZWZ0IHRvcCBuby1yZXBlYXQ7fSAuZGlzX3RleHR7IGZvbnQtc2l6ZToxLjQzOHJlbSA7IHBhZGRpbmc6NHB4IDBweCAwcHggMTVweDt9IC5sdW5kaV90ZXh0eyBmb250LXNpemU6MC44MTNyZW0gOyBwYWRkaW5nOjJweCAwcHggMHB4IDIwcHg7IGxpbmUtaGVpZ2h0OjE0cHg7fSAubHVuZGlfdGV4dF9ob21lcGFnZV9oMjQ4e2ZvbnQtc2l6ZTowLjgxM3JlbSA7IGxpbmUtaGVpZ2h0OjE4cHg7IHBhZGRpbmc6MTBweCAwIDAgMjBweDsgfSAubHVuZGlfdGV4dCB0aHt0ZXh0LWFsaWduOmxlZnQ7Zm9udC13ZWlnaHQ6bm9ybWFsO3dpZHRoOjYwcHg7fSAubHVuZGlfdGV4dCB0ZHt0ZXh0LWFsaWduOmxlZnQ7fSAucHsgaGVpZ2h0OjE2cHg7IGZsb2F0OmxlZnQ7IHBhZGRpbmc6N3B4IDVweCAwcHggMTBweDsgZm9udC1zaXplOjAuODEzcmVtIDt9IC5leyBoZWlnaHQ6MTZweDsgZmxvYXQ6cmlnaHQ7IHBhZGRpbmc6N3B4IDBweCAwcHggMHB4OyBmb250LXNpemU6MC44NzVyZW0gO30gLmJveDI4OCwgLmJveDI4OF9jdXN0b217d2lkdGg6MjgwcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyB9IC5fYm94Mjg4LCAuX2JveDI4OF9jdXN0b217d2lkdGg6MjgwcHg7IGZsb2F0OmxlZnQ7IH0gLmJveDI4OFVzZWR7d2lkdGg6MjgwcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBtYXJnaW4tbGVmdDowcHg7fSAuYm94Mjg4TmV3e3dpZHRoOjI4MHB4OyBmbG9hdDpsZWZ0OyB9IC5ib3gyODhOZXdfY3VzdG9te2Zsb2F0OmxlZnQ7fSAuYm94Mjg4TmV3UU0sIC5ib3gyODhOZXdRTV9tb2JpbGUgeyBib3JkZXItcmFkaXVzOjVweDsgYmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDsgLW1zLWZpbHRlcjpwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuQWxwaGEoT3BhY2l0eT0xMDApOyBiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsMCk7IGJveC1zaGFkb3c6bm9uZTsgY2xlYXI6Ym90aDsgZmxvYXQ6bGVmdDsgd2lkdGg6MjgwcHg7IG1hcmdpbi1ib3R0b206NXB4OyB9IC5ib3gyODhOZXdRTV9tb2JpbGUgeyB3aWR0aDoxMDAlOyB9IC5ib3gyODhOZXdRTV9tb2JpbGUgLlJlY2hlcmNoZTIyIHsgdGV4dC1hbGlnbjpjZW50ZXI7IH0gLmJveDI4OE5ld1FNX21vYmlsZSB0YWJsZSB7IHdpZHRoOjEwMCU7IH0gLmJveDI4OE5ld1FNX21vYmlsZSAuanFUcmFuc2Zvcm1JbnB1dFdyYXBwZXIgeyB3aWR0aDoxMDAlIWltcG9ydGFudDsgfSAuYm94Mjg4TmV3UU1fbW9iaWxlIC5qcVRyYW5zZm9ybUlucHV0V3JhcHBlciBpbnB1dCB7IHdpZHRoOjk1JSFpbXBvcnRhbnQ7IH0gLmJveDI4OFFNeyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgbWFyZ2luLXRvcDo1cHg7IGZvbnQtc2l6ZTowLjg3NXJlbSA7Zm9udC13ZWlnaHQ6bm9ybWFsO30gLmJveDI4OFFNX2N1c3RvbXt3aWR0aDoyNzhweDttYXJnaW46NXB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgb3ZlcmZsb3c6aGlkZGVuO2JvcmRlci1yYWRpdXM6NnB4O2JveC1zaGFkb3c6MCAwIDRweCAjMzMzO30gLnRleHRBcmVhUU17IGZvbnQtc2l6ZTowLjgxM3JlbSA7bGluZS1oZWlnaHQ6MTVweDt9IC5ib3gyODhfdG9we3dpZHRoOjI4OHB4OyBoZWlnaHQ6MTRweDsgZmxvYXQ6bGVmdDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9yaWdodF9ib3g0X3RvcC5wbmcpIGxlZnQgdG9wIG5vLXJlcGVhdDsgbWFyZ2luLXRvcDowcHg7fSAuYm94Mjg4X3RvcF9jdXN0b217d2lkdGg6Mjc4cHg7IGhlaWdodDo0MHB4OyBmbG9hdDpsZWZ0OyBjb2xvcjojMDAwMDAwOyBiYWNrZ3JvdW5kOiNlZWVlZWU7fSAuX2JveDI4OFFNeyB3aWR0aDoyODBweDsgfSAuX2JveDI4OF90b3B7fSAuX2JveDI4OF90b3BfY3VzdG9teyBoZWlnaHQ6NDBweDsgZmxvYXQ6bGVmdDsgV2lkdGg6MTAwJTsgY29sb3I6IzAwMDAwMDsgYmFja2dyb3VuZDojZjNmM2YzOyBib3JkZXItcmFkaXVzOjZweCA2cHggMCAwOyB9IC5fYm94Mjg4MF9taWR7fSAuX2JveDI4ODBfbWlkX2N1c3RvbXtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsMCk7fSAuYm94Mjg4X21pZHsgYm94LXNoYWRvdzowIDAgNXB4ICMzMzMzMzM7IGJvcmRlci1yYWRpdXM6NXB4OyBtYXJnaW4tdG9wOjVweDsgbWFyZ2luLWxlZnQ6NXB4OyBmbG9hdDpsZWZ0OyBjb2xvcjojMjgyODI4OyBiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsMCk7IH0gLmJveDI4OF9taWRfY3VzdG9teyBib3gtc2hhZG93OjAgMCA1cHggIzMzMzMzMzsgYm9yZGVyLXJhZGl1czo1cHg7IG1hcmdpbi10b3A6NXB4OyBtYXJnaW4tbGVmdDo1cHg7IGZsb2F0OmxlZnQ7IGNvbG9yOiMyODI4Mjg7IGJhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwwKTt9IC5ib3gyODgwX21pZHt3aWR0aDoyNThweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGNvbG9yOiMyODI4Mjg7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvcmlnaHRfYm94NF9taWQucG5nKSBsZWZ0IHRvcCByZXBlYXQteTsgcGFkZGluZzowIDE1cHggMHB4IDE1cHg7fSAuYm94Mjg4MF9taWRfY3VzdG9te3dpZHRoOjIyOHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgcGFkZGluZzo1cHggMjVweDsgY29sb3I6IzI4MjgyODsgYmFja2dyb3VuZDpyZ2JhKDI1NSwyNTUsMjU1LDApO30gLmJveDI2OV9taWR7d2lkdGg6MjU4cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL3JpZ2h0X2JveDRfbWlkLnBuZykgbGVmdCB0b3AgcmVwZWF0LXk7IHBhZGRpbmc6MCAxNXB4IDBweCAxNXB4O30gLnpvb20yMnt3aWR0aDoyNThweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IHRleHQtYWxpZ246Y2VudGVyO30gLnNlYXJjaF9yaWdodCB7YmFja2dyb3VuZDp1cmwoL2ltYWdlcy9zZWFyY2gucG5nKSAwIDAgbm8tcmVwZWF0OyB3aWR0aDoyNzhweDsgaGVpZ2h0OjExMXB4OyBkaXNwbGF5OmJsb2NrOyBtYXJnaW46NXB4IDVweCA1cHggNXB4fSAuRGVtYW5kZTIye3dpZHRoOjI3OHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgdGV4dC1hbGlnbjpjZW50ZXI7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiM5YTAxMDE7IGxpbmUtaGVpZ2h0OjI2cHg7IG1hcmdpbi10b3A6NjdweDt9IC5EZW1hbmRlMjIgYXsgdGV4dC1hbGlnbjpjZW50ZXI7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiM5YTAxMDE7IGxpbmUtaGVpZ2h0OjIwcHggOyB0ZXh0LWRlY29yYXRpb246bm9uZTt9IC5EZW1hbmRlMjIgYTpob3ZlcnsgdGV4dC1hbGlnbjpjZW50ZXI7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiM5YTAxMDE7IHRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7fSAuRGVtYW5kZTIyIHNwYW4gYXsgdGV4dC1hbGlnbjpjZW50ZXI7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMyOTI5Mjk7IGxpbmUtaGVpZ2h0OjIwcHggOyB0ZXh0LWRlY29yYXRpb246bm9uZTt9IC5EZW1hbmRlMjIgc3BhbiBhOmhvdmVyeyB0ZXh0LWFsaWduOmNlbnRlcjsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzI5MjkyOTsgdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTt9IC5ib3gyODhfZm9vdGVye3dpZHRoOjI4OHB4OyBoZWlnaHQ6MTRweDsgZmxvYXQ6bGVmdDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9yaWdodF9ib3g0X2Zvb3Rlci5wbmcpIGxlZnQgdG9wIG5vLXJlcGVhdDt9IC5ib3gyODhfZm9vdGVyX3Fze3dpZHRoOjI4OHB4OyBoZWlnaHQ6MTFweDsgZmxvYXQ6bGVmdDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9yaWdodF9ib3g0X2Zvb3Rlci5wbmcpIGxlZnQgdG9wIG5vLXJlcGVhdDt9IC5ib3gyODhfZm9vdGVyX3Fze3dpZHRoOjI4OHB4OyBoZWlnaHQ6MTFweDsgZmxvYXQ6bGVmdDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9yaWdodF9ib3g0X2Zvb3Rlci5wbmcpIGxlZnQgdG9wIG5vLXJlcGVhdDt9IC5ib3gyODhfZm9vdGVyNTV7IHdpZHRoOjI4MHB4OyBoZWlnaHQ6NTBweDsgZmxvYXQ6bGVmdDsgY29sb3I6IzJkMmQyZDsgYmFja2dyb3VuZC1jb2xvcjojQ0JDQkNCOyBib3JkZXItcmFkaXVzOjAgMCA2cHggNnB4OyB9IC5ib3gyODhfZm9vdGVyNTVfY3VzdG9teyB3aWR0aDoyODBweDsgaGVpZ2h0OjM1cHg7IHBhZGRpbmctdG9wOjVweDsgZmxvYXQ6bGVmdDsgY29sb3I6IzFmMmY1MzsgYmFja2dyb3VuZC1jb2xvcjojZjNmM2YzOyBib3JkZXItcmFkaXVzOjAgMCA2cHggNnB4OyB9IC5wIGF7dGV4dC1kZWNvcmF0aW9uOm5vbmU7fSAuZ2FwMTB7d2lkdGg6MjMwcHg7IGhlaWdodDoxMHB4OyBmbG9hdDpsZWZ0O30gLnBhZ2VfbmFtZTJ7d2lkdGg6NjUwcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjAgMCAyMHB4IDA7IGxpbmUtaGVpZ2h0OjMwcHg7IGZvbnQtc2l6ZToxLjYyNXJlbSA7IGNvbG9yOiMwMDAwMDA7Zm9udC13ZWlnaHQ6bm9ybWFsfSAucGFnZV9uYW1lM3sgd2lkdGg6MTAwJTtib3gtc2l6aW5nOmJvcmRlci1ib3g7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjBweCAxMHB4IDEwcHggMTBweDsgbGluZS1oZWlnaHQ6MzBweDsgZm9udC1zaXplOjEuNXJlbSA7IGNvbG9yOiMyNDI0MjQ7fSAucGFnZV9uYW1lMyBoMXsgZm9udC1zaXplOjEuODc1cmVtIDsgY29sb3I6IzI0MjQyNDtmb250LXdlaWdodDpub3JtYWx9IC5wYWdlX25hbWU0e3dpZHRoOjY1MHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9zaG8ucG5nKSBjZW50ZXIgYm90dG9tIG5vLXJlcGVhdDsgYmFja2dyb3VuZC1wb3NpdGlvbjpib3R0b207IHBhZGRpbmc6MCAwcHggMTBweCAyMXB4OyBsaW5lLWhlaWdodDozMHB4OyBmb250LXNpemU6MS4xMjVyZW0gOyBjb2xvcjojMDE0RjgwO30gLnBhZ2VfbmFtZTQgaDJ7IGZvbnQtc2l6ZToxLjVyZW0gOyBjb2xvcjpyZ2IoMzEsNDcsODMpO2ZvbnQtd2VpZ2h0Om5vcm1hbH0gLnBhZ2VfbmFtZTV7d2lkdGg6MTAwJTtoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9zaG8ucG5nKSBjZW50ZXIgYm90dG9tIG5vLXJlcGVhdDsgYmFja2dyb3VuZC1wb3NpdGlvbjpib3R0b207IHBhZGRpbmc6MCAwcHggMTBweCAwOyBtYXJnaW4tYm90dG9tOjE1cHg7IGxpbmUtaGVpZ2h0OjMwcHg7IGZvbnQtc2l6ZToxLjVyZW0gOyBjb2xvcjojMjQyNDI0O2ZvbnQtd2VpZ2h0Om5vcm1hbCB9ICNzZWFyY2hDb250YWluZXJQYXJlbnQgLnBhZ2VfbmFtZTU6bm90KDpmaXJzdC1jaGlsZCkgeyBtYXJnaW4tdG9wOjMwcHg7IH0gLmJveDJfdGV4dHtoZWlnaHQ6YXV0bzsgd2lkdGg6MTAwJTsgZmxvYXQ6bGVmdDsgbGluZS1oZWlnaHQ6MThweDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzI0MjQyNDsgfSAuYm94Ml90ZXh0IHB7IGxpbmUtaGVpZ2h0OjE4cHg7IGZvbnQtc2l6ZTowLjg3NXJlbSA7Y29sb3I6IzAwMDAwMDsgbWFyZ2luLWJvdHRvbToyMHB4O30gLnBvc2l0aXZlUmF0aW5nVHh0IHB7Zm9udC1zaXplOjFyZW0gO30gLnBvc2l0aXZlUmF0aW5nVHh0IGgzLCAucG9zaXRpdmVSYXRpbmdUeHQgaDR7Zm9udC13ZWlnaHQ6bm9ybWFsO30gLnBvc2l0aXZlUmF0aW5nVHh0IC5idG4tZGVmYXVsdHt0ZXh0LXRyYW5zZm9ybTpub25lO30gLnBvc2l0aXZlUmF0aW5nVHh0IC5idG4tZGVmYXVsdHtmb250LXNpemU6MS4yNXJlbSA7fSAuZXRhcGV7d2lkdGg6YXV0bzsgaGVpZ2h0OjQ2cHg7IGZsb2F0OmxlZnQ7IG1hcmdpbi1yaWdodDoyMHB4O30gLnRleHQxe3dpZHRoOmF1dG87IGhlaWdodDo0NnB4OyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjAgMHB4IDBweCAwcHg7fSAudGV4dDEgYXt3aWR0aDphdXRvOyBoZWlnaHQ6NDZweDsgZmxvYXQ6bGVmdDsgcGFkZGluZzowIDBweCAwcHggMHB4OyBsaW5lLWhlaWdodDo0NnB4OyB0ZXh0LWFsaWduOmxlZnQ7IGZvbnQtc2l6ZToxLjg3NXJlbSA7IGNvbG9yOiM0MzQzNDM7IGZvbnQtd2VpZ2h0OmJvbGQ7IHRleHQtZGVjb3JhdGlvbjpub25lOyB0ZXh0LXNoYWRvdzoxcHggMXB4IDFweCAjZjNmM2YzOyB9IC50ZXh0MSBhOmhvdmVye3dpZHRoOmF1dG87IGhlaWdodDo0NnB4OyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjAgMHB4IDBweCAwcHg7IGxpbmUtaGVpZ2h0OjQ2cHg7IHRleHQtYWxpZ246bGVmdDsgZm9udC1zaXplOjEuODc1cmVtIDsgY29sb3I6IzQzNDM0MzsgZm9udC13ZWlnaHQ6Ym9sZDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHRleHQtc2hhZG93OjFweCAxcHggMXB4ICNmM2YzZjM7IH0gLnRleHQxIGEuYWN0aXZle3dpZHRoOmF1dG87IGhlaWdodDo0NnB4OyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjAgMHB4IDBweCAwcHg7IGxpbmUtaGVpZ2h0OjQ2cHg7IHRleHQtYWxpZ246bGVmdDsgZm9udC1zaXplOjEuODc1cmVtIDsgY29sb3I6IzQzNDM0MzsgZm9udC13ZWlnaHQ6Ym9sZDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHRleHQtc2hhZG93OjFweCAxcHggMXB4ICNmM2YzZjM7IH0gLm9uZTF7d2lkdGg6NDZweDsgaGVpZ2h0OjQ2cHg7IGZsb2F0OnJpZ2h0OyBtYXJnaW4tbGVmdDoxMHB4O30gLm9uZTEgYXt3aWR0aDo0NnB4OyBoZWlnaHQ6NDZweDsgZmxvYXQ6bGVmdDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy8xX3JvdW5kLnBuZykgbGVmdCB0b3Agbm8tcmVwZWF0OyBmb250LXNpemU6Mi4yNXJlbSA7IGZvbnQtd2VpZ2h0OmJvbGQ7IGNvbG9yOiNGRkZGRkY7IGxpbmUtaGVpZ2h0OjQ2cHg7IHRleHQtYWxpZ246Y2VudGVyOyB0ZXh0LWRlY29yYXRpb246bm9uZTt9IC5vbmUxIGE6aG92ZXJ7d2lkdGg6NDZweDsgaGVpZ2h0OjQ2cHg7IGZsb2F0OmxlZnQ7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvMV9ob3Zlci5wbmcpIGxlZnQgdG9wIG5vLXJlcGVhdDsgZm9udC1zaXplOjIuMjVyZW0gOyBjb2xvcjojMDAwMDAwOyBsaW5lLWhlaWdodDo0NnB4OyBmb250LXdlaWdodDpib2xkOyB0ZXh0LWFsaWduOmNlbnRlcjsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7fSAub25lMSBhLmFjdGl2ZXt3aWR0aDo0NnB4OyBoZWlnaHQ6NDZweDsgZmxvYXQ6bGVmdDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy8xX2hvdmVyLnBuZykgbGVmdCB0b3Agbm8tcmVwZWF0OyBmb250LXNpemU6Mi4yNXJlbSA7IGNvbG9yOiMwMDAwMDA7IGxpbmUtaGVpZ2h0OjQ2cHg7IGZvbnQtd2VpZ2h0OmJvbGQ7IHRleHQtYWxpZ246Y2VudGVyOyB0ZXh0LWRlY29yYXRpb246bm9uZTt9IC5zZWxlY3Rpb25uZXp7d2lkdGg6YXV0bzsgaGVpZ2h0OmF1dG8gOyBmbG9hdDpsZWZ0OyBwYWRkaW5nLXJpZ2h0OjVweDsgcGFkZGluZy1sZWZ0OjNweDsgcGFkZGluZy10b3A6NHB4OyBmb250LXNpemU6MC44MTNyZW0gOyBjb2xvcjojMWExYTFhOyBsaW5lLWhlaWdodDoyMnB4OyBmb250LXdlaWdodDpib2xkOyB0ZXh0LWFsaWduOmxlZnQ7IHRleHQtZGVjb3JhdGlvbjpub25lO30gLmZvcm1zX2JveDIye2JveC1zaXppbmc6Ym9yZGVyLWJveDsgd2lkdGg6MTAwJTsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IG1hcmdpbjowIDAgMTBweCAwOyB9IC53aXRoX2JvcmRlciB7IGJvcmRlcjoxcHggc29saWQgI2Q0ZDRkNDsgLW1vei1ib3JkZXItcmFkaXVzOjhweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjhweDsgLWtodG1sLWJvcmRlci1yYWRpdXM6OHB4OyBwYWRkaW5nOjAgMTZweDsgfSAuUHJlbm9te3dpZHRoOjI3OXB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzI0MjQyNCA7IHBhZGRpbmc6OHB4IDAgMTBweCAwO30gLlByZW5vbSBzcGFueyBmb250LXNpemU6MS4zNzVyZW0gOyBjb2xvcjojZmYwMTAxO30gLlByZW5vbTJ7d2lkdGg6MzIxcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojMjQyNDI0IDsgcGFkZGluZzo4cHggMCAxMHB4IDA7fSAuUHJlbm9tMiBzcGFueyBmb250LXNpemU6MS4zNzVyZW0gOyBjb2xvcjojZmYwMTAxO30gLlByZW5vbTN7d2lkdGg6Mjc5cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojMjQyNDI0IDsgcGFkZGluZzowcHggMCAxMHB4IDA7fSAuUHJlbm9tNHt3aWR0aDozMjFweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMyNDI0MjQgOyBwYWRkaW5nOjBweCAwIDEwcHggMDt9IC5QcmVub201e3dpZHRoOjI3OXB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzI0MjQyNCA7IHBhZGRpbmc6cHggMCAxMHB4IDA7fSAuUHJlbm9tNnt3aWR0aDoyMTRweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMyNDI0MjQgOyBwYWRkaW5nOjBweCAwIDEwcHggMDt9IC5QcmVub203e3dpZHRoOjEwN3B4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzI0MjQyNCA7IHBhZGRpbmc6MHB4IDAgMTBweCAwO30gLlByZW5vbTh7d2lkdGg6Mjc5cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBwYWRkaW5nOnB4IDAgMTBweCAwOyBkaXNwbGF5OmJsb2NrfSAuUHJlbm9tOXt3aWR0aDoyMTRweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MHB4IDAgMTBweCAwO2Rpc3BsYXk6YmxvY2t9IC5QcmVub20xMHt3aWR0aDoxMDdweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MHB4IDAgMTBweCAwO2Rpc3BsYXk6YmxvY2t9IC50ZXh0MTV7d2lkdGg6Mjg1cHg7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBjb2xvcjojMjQyNDI0IDsgcGFkZGluZzowcHggMCAzcHggMDt9IC50ZXh0MTZ7d2lkdGg6MTcycHg7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBjb2xvcjojMjQyNDI0IDsgcGFkZGluZzowcHggMCAzcHggMDt9IC50ZXh0MTd7d2lkdGg6MTEycHg7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBjb2xvcjojMjQyNDI0IDsgcGFkZGluZzowcHggMCAzcHggMDt9IC50ZXh0MTh7d2lkdGg6Mjg1cHg7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBjb2xvcjojMjQyNDI0IDsgcGFkZGluZzo4cHggMCAzcHggMDt9IC50ZXh0MTUgc3BhbnsgZm9udC1zaXplOjEuMzc1cmVtIDsgY29sb3I6I2ZmMDEwMTt9IC5idXR0b241e3dpZHRoOjI4NXB4OyBtYXJnaW4tYm90dG9tOjMwcHg7IG1hcmdpbi10b3A6NzBweDsgZmxvYXQ6bGVmdDsgbWFyZ2luLXJpZ2h0OjVweDsgdGV4dC1hbGlnbjpyaWdodDsgfSAuYm94X2RhdGV7d2lkdGg6MTY3cHg7IG1hcmdpbi1ib3R0b206MTBweDsgZmxvYXQ6bGVmdDsgcGFkZGluZy10b3A6MXB4OyBtYXJnaW4tcmlnaHQ6NXB4O30gLmJveF9kYXRlMnt3aWR0aDoxMDdweDsgbWFyZ2luLWJvdHRvbToxMHB4OyBmbG9hdDpsZWZ0OyBtYXJnaW4tcmlnaHQ6NXB4OyBwYWRkaW5nLXRvcDowcHg7fSAuYm94X2RhdGUze3dpZHRoOjgwcHg7IG1hcmdpbi1ib3R0b206MTBweDsgZmxvYXQ6bGVmdDsgbWFyZ2luLXJpZ2h0OjVweDt9IHNwYW4uYXN0a3sgY29sb3I6I0ZGMDEwMTtmb250LXNpemU6MC42ODhyZW0gO2Zsb2F0OmxlZnQ7cGFkZGluZy1yaWdodDozcHg7IH0gLmJveDYxe3dpZHRoOjI4MHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgbWFyZ2luLXRvcDoxMHB4OyBkaXNwbGF5OmJsb2NrOyBjbGVhcjpib3RoOyB9IC5ib3g2MTY2e3dpZHRoOjI4MHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgbWFyZ2luLXRvcDoxMHB4OyB9IC5Qb2xpdGlxdWV7d2lkdGg6YXV0bzsgbWFyZ2luLWJvdHRvbToxMHB4OyBmbG9hdDpsZWZ0OyBtYXJnaW4tcmlnaHQ6NXB4OyBwYWRkaW5nOjAgMnB4IDBweCAycHg7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMwZDU5YWY7IGxpbmUtaGVpZ2h0OjIycHg7IH0gLlBvbGl0aXF1ZSBheyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojMGQ1OWFmOyBsaW5lLWhlaWdodDoyNHB4OyB0ZXh0LWRlY29yYXRpb246bm9uZTsgYm9yZGVyLWJvdHRvbToycHggc29saWQgIzZiOTFiZDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvbGluZTMucG5nKSBib3R0b20gbGVmdCByZXBlYXQteDsgYmFja2dyb3VuZC1wb3NpdGlvbjpib3R0b207fSAuUG9saXRpcXVlIGE6aG92ZXJ7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMyNDI0MjQ7IGxpbmUtaGVpZ2h0OjI0cHg7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvbGluZTQucG5nKSBib3R0b20gbGVmdCByZXBlYXQteDsgYmFja2dyb3VuZC1wb3NpdGlvbjpib3R0b207IHRleHQtZGVjb3JhdGlvbjpub25lOyBib3JkZXItYm90dG9tOjJweCBzb2xpZCAjMjQyNDI0O30gLnRleHQxNTV7d2lkdGg6Mjg1cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44MTNyZW0gOyBjb2xvcjojMjQyNDI0IDsgcGFkZGluZzowcHggMCAzcHggMDt9IC50ZXh0MTU1Y2hre2hlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44MTNyZW0gOyBjb2xvcjojMjQyNDI0IDsgcGFkZGluZzowcHggMTBweCAxMHB4IDE1cHg7dGV4dC1hbGlnbjpsZWZ0O30gLlZldWlsbGV6e3dpZHRoOjYxN3B4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgcGFkZGluZzoxN3B4IDA7IGZvbnQtc2l6ZToxLjM3NXJlbSA7IGNvbG9yOiMwMDAwMDA7Zm9udC13ZWlnaHQ6bm9ybWFsfSAuVmV1aWxsZXogc3Bhbnt0ZXh0LWFsaWduOmxlZnQ7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMyNDI0MjQ7IGxpbmUtaGVpZ2h0OjIycHg7fSAuVmV1aWxsZXogc3BhbiBheyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojMjQyNDI0OyBmbG9hdDpyaWdodDsgbGluZS1oZWlnaHQ6MjJweDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IGJvcmRlci1ib3R0b206MnB4IHNvbGlkICMyNDI0MjQ7IGRpc3BsYXk6YmxvY2t9IC5WZXVpbGxleiBzcGFuIGE6aG92ZXJ7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMwMDQ0NmY7IGZsb2F0OnJpZ2h0OyBsaW5lLWhlaWdodDoyMnB4OyB0ZXh0LWRlY29yYXRpb246bm9uZTsgYm9yZGVyLWJvdHRvbToycHggc29saWQgIzAwNDQ2ZjsgZGlzcGxheTpibG9jazt9IC5IeXBvdGhlcXVle3dpZHRoOjE5NXB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODEzcmVtIDsgY29sb3I6IzI0MjQyNCA7IHBhZGRpbmc6MDsgbGluZS1oZWlnaHQ6NTBweDt9IC5IeXBvdGhlcXVlMjJ7d2lkdGg6MjI0cHg7IG1hcmdpbi1ib3R0b206MTBweDsgZmxvYXQ6bGVmdDt9IC5IeXBvdGhlcXVlMzN7d2lkdGg6NTBweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IGNvbG9yOiMyNDI0MjQgOyBwYWRkaW5nOjBweCAwIDEwcHggMDsgbGluZS1oZWlnaHQ6MzVweDt9IC5jaXZpcXVle3dpZHRoOjEzMHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODEzcmVtIDsgY29sb3I6IzI0MjQyNCA7IHBhZGRpbmc6MHB4IDAgM3B4IDA7fSAuUnVle3dpZHRoOjI5MHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODEzcmVtIDsgY29sb3I6IzI0MjQyNCA7IHBhZGRpbmc6MHB4IDAgM3B4IDA7fSAuQXBwe3dpZHRoOjE4MHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODEzcmVtIDsgY29sb3I6IzI0MjQyNCA7IHBhZGRpbmc6MHB4IDAgM3B4IDA7fSAuZm9ybXMxMDB7d2lkdGg6MTMwcHg7IG1hcmdpbi1ib3R0b206MTBweDsgZmxvYXQ6bGVmdDt9IC5mb3JtczEwMXt3aWR0aDoyOTBweDsgbWFyZ2luLWJvdHRvbToxMHB4OyBmbG9hdDpsZWZ0O30gLmZvcm1zMTAye3dpZHRoOjE4MHB4OyBtYXJnaW4tYm90dG9tOjEwcHg7IGZsb2F0OmxlZnQ7fSAuVmlsbGV7IHdpZHRoOjI3MHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODEzcmVtIDsgY29sb3I6IzI0MjQyNCA7IHBhZGRpbmc6MHB4IDAgMTNweCAwO30gLlByb3ZpbmNleyB3aWR0aDoxNTBweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IGNvbG9yOiMyNDI0MjQgOyBwYWRkaW5nOjBweCAwIDEzcHggMDt9IC5Db2RleyB3aWR0aDoxNjBweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IGNvbG9yOiMyNDI0MjQgOyBwYWRkaW5nOjBweCAwIDEzcHggMDt9IC5mb3JtczEwM3sgd2lkdGg6MTAwJTsgbWFyZ2luLXRvcDowcHg7IH0gLmZvcm1zMTA0eyB3aWR0aDoxMDAlOyBtYXJnaW4tdG9wOjBweDsgfSAuZm9ybXMxMDV7IHdpZHRoOjEwMCU7IG1hcmdpbi10b3A6MHB4OyB9IC5mb3JtczEwNnsgd2lkdGg6MTAwJTsgbWFyZ2luLWJvdHRvbToxMHB4OyBmbG9hdDpsZWZ0fSAuVHlwZXt3aWR0aDoyMDBweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IGNvbG9yOiMyNDI0MjQgOyBwYWRkaW5nOjBweCAwIDNweCAwO30gLmJveDYwMHt3aWR0aDo2MDBweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IHBhZGRpbmctbGVmdDowcHg7IHBhZGRpbmctYm90dG9tOjIwcHg7IG1hcmdpbi1yaWdodDowcHg7fSAuRGVtYW5kZTU1e21hcmdpbjoxNXB4IDA7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvZC5wbmcpIDEwcHggdG9wIG5vLXJlcGVhdDsgcGFkZGluZzowIDAgMCA2MnB4OyBsaW5lLWhlaWdodDo0MHB4OyBmb250LXNpemU6MS4xMjVyZW0gOyBjb2xvcjojMTkxOTE5OyBmb250LXdlaWdodDpib2xkO30gLkRlbWFuZGU2NnttYXJnaW46MTVweCAwOyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2NhbDIucG5nKSAxMHB4IHRvcCBuby1yZXBlYXQ7IHBhZGRpbmc6MCAwIDAgNjJweDsgbGluZS1oZWlnaHQ6MjBweDsgZm9udC1zaXplOjEuMTI1cmVtIDsgY29sb3I6IzE5MTkxOTsgZm9udC13ZWlnaHQ6Ym9sZDt9IC5EZW1hbmRlNzd7bWFyZ2luOjE1cHggMDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9tLnBuZykgMTBweCB0b3Agbm8tcmVwZWF0OyBwYWRkaW5nOjAgMCAwIDYycHg7IGxpbmUtaGVpZ2h0OjQwcHg7IGZvbnQtc2l6ZToxLjEyNXJlbSA7IGNvbG9yOiMxOTE5MTk7IGZvbnQtd2VpZ2h0OmJvbGQ7fSAuRGVtYW5kZTg4e21hcmdpbjoxNXB4IDA7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvZi5wbmcpIDEwcHggdG9wIG5vLXJlcGVhdDsgcGFkZGluZzowIDAgMCA2MnB4OyBsaW5lLWhlaWdodDoyMHB4OyBmb250LXNpemU6MS4xMjVyZW0gOyBjb2xvcjojMTkxOTE5OyBmb250LXdlaWdodDpib2xkO30gLkRlbWFuZGU4ODd7bWFyZ2luOjE1cHggMDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9mLnBuZykgMTBweCB0b3Agbm8tcmVwZWF0OyBwYWRkaW5nOjAgMCAwIDYycHg7IGxpbmUtaGVpZ2h0OjIwcHg7IGZvbnQtc2l6ZToxLjEyNXJlbSA7IGNvbG9yOiMxOTE5MTk7IGZvbnQtd2VpZ2h0OmJvbGQ7fSAuYm94Ml90ZXh0Mnt3aWR0aDo2NDhweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MTBweCAwcHggMTVweCAyM3B4OyBsaW5lLWhlaWdodDoxOHB4OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojMjQyNDI0O30gLmJveF9icmFuZHt3aWR0aDo2NDhweDsgZmxvYXQ6bGVmdDtwYWRkaW5nOjIwcHggMHB4IDE1cHggMHB4OyBsaW5lLWhlaWdodDoxOHB4OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojMjQyNDI0OyB9IC5ib3gyX3RleHQze3dpZHRoOjY2MXB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgcGFkZGluZzowIDBweCAxMHB4IDEwcHg7IG1hcmdpbi10b3A6MTVweDsgbGluZS1oZWlnaHQ6MThweDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzI0MjQyNDsgfSAuY2FyX2JveHt3aWR0aDoyMDhweDsgaGVpZ2h0OjEzMHB4OyBmbG9hdDpsZWZ0OyBtYXJnaW46MCA4cHggMCAwOyBwYWRkaW5nOjA7IGJvcmRlcjowO30gLmNhcl9pbWFnZXN7d2lkdGg6MjA4cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBtYXJnaW46MDsgcGFkZGluZzowOyBib3JkZXI6MDsgdGV4dC1hbGlnbjpjZW50ZXI7fSAuY2FyX3RleHR7d2lkdGg6MjA4cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBsaW5lLWhlaWdodDoxMHB4OyBmb250LXNpemU6MC44MTNyZW0gOyBmb250LXdlaWdodDpib2xkOyBjb2xvcjojMDAwMDAwOyB0ZXh0LWFsaWduOmNlbnRlcn0gLmNhcl90ZXh0IGEge3RleHQtZGVjb3JhdGlvbjpub25lOyBjb2xvcjojMDAwMDAwOyBsaW5lLWhlaWdodDoxLjE7fSAuY2FyX3RleHQgYTpob3ZlciB7IHRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7IGNvbG9yOiMwMDAwMDB9IC5jYXJfYm94MnsgaGVpZ2h0OmF1dG87IG1hcmdpbjowIDEwcHggMTBweCAwOyBvdmVyZmxvdzpoaWRkZW47IGJvcmRlci1yYWRpdXM6NXB4OyAtbW96LWJvcmRlci1yYWRpdXM6NXB4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6NXB4OyBiYWNrZ3JvdW5kLWNvbG9yOiNGRkY7IC1tb3otYm94LXNoYWRvdzowIDAgMTBweCAxcHggcmdiYSgwLDAsMCwwLjIpOyAtd2Via2l0LWJveC1zaGFkb3c6MCAwIDEwcHggMXB4IHJnYmEoMCwwLDAsMC4yKTsgYm94LXNoYWRvdzowIDAgMTBweCAxcHggcmdiYSgwLDAsMCwwLjIpOyB9IC5jYXJfYm94Ml90YXh0e2hlaWdodDphdXRvOyBwYWRkaW5nLWJvdHRvbTo1cHg7IGZvbnQtc2l6ZToxcmVtIDsgY29sb3I6IzMwMzAzMDsgdGV4dC1hbGlnbjpsZWZ0OyBsaW5lLWhlaWdodDoyMXB4O30gLnBpY19ib3gyeyBib3JkZXI6MXB4IHNvbGlkICNBQUE7IGJhY2tncm91bmQ6I0ZGRkZGRjsgYm9yZGVyLXJhZGl1czozcHg7IC1tb3otYm9yZGVyLXJhZGl1czozcHg7IC13ZWJraXQtYm9yZGVyLXJhZGl1czozcHg7IH0gLnBpY19ib3gyIGltZyB7d2lkdGg6MTAwJTt9IC5wcmludHt3aWR0aDoxOTJweDsgaGVpZ2h0OmF1dG87IG1hcmdpbjowOyBwYWRkaW5nLXRvcDo3cHg7fSAucHJpbnQgYXsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9wcmludC5wbmcpIDEwcHggdG9wIG5vLXJlcGVhdDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzMwMzAzMDsgcGFkZGluZy1sZWZ0OjM1cHg7IHRleHQtZGVjb3JhdGlvbjpub25lO30gLnByaW50IGE6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvcHJpbnRfaG92ZXIucG5nKSAxMHB4IHRvcCBuby1yZXBlYXQ7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMwMDRhNzg7IHBhZGRpbmctbGVmdDozNXB4OyB0ZXh0LWRlY29yYXRpb246bm9uZTsgfSAucGFnZV9uYW1lX2Nvbnt3aWR0aDo4NDBweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MjBweCAyMXB4IDEwcHggMjBweDsgfSAuaG9tZTJ7d2lkdGg6MjMwcHg7IGhlaWdodDphdXRvOyBtYXJnaW4tbGVmdDoyMHB4OyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MXJlbSA7IGNvbG9yOiMzNzM3Mzc7IGxpbmUtaGVpZ2h0OjI0cHg7IHRleHQtZGVjb3JhdGlvbjpub25lOyB9IC5ob21lM3t3aWR0aDo1MTBweDsgaGVpZ2h0OmF1dG87IG1hcmdpbi1sZWZ0OjEwcHg7IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZToxcmVtIDsgY29sb3I6IzM3MzczNzsgbGluZS1oZWlnaHQ6MjRweDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IH0gLnRleHQyMHt3aWR0aDozMTBweDsgaGVpZ2h0OjMycHg7IGZsb2F0OmxlZnQ7IG1hcmdpbi1yaWdodDoxMHB4OyBtYXJnaW4tYm90dG9tOjEwcHg7IGxpbmUtaGVpZ2h0OjMycHg7IHRleHQtYWxpZ246bGVmdDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzBkMGQwZDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IH0gLnRleHQyMCBzcGFueyBjb2xvcjojRkYwMDAwO30gLmlucHV0MjV7d2lkdGg6MzEwcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBtYXJnaW4tYm90dG9tOjEwcHg7IH0gLnZldXh7d2lkdGg6NjAwcHg7IGZsb2F0OmxlZnQ7IG1hcmdpbi1ib3R0b206MTBweDsgcGFkZGluZy10b3A6NXB4OyBsaW5lLWhlaWdodDoxN3B4OyB0ZXh0LWFsaWduOmxlZnQ7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMwZDBkMGQ7IHRleHQtZGVjb3JhdGlvbjpub25lOyBtYXJnaW4tYm90dG9tOjEwcHg7fSAuTm9ze3dpZHRoOjI2NXB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgYmFja2dyb3VuZDojMDAwMDAwOyAtbW96LWJvcmRlci1yYWRpdXM6NXB4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6NXB4OyBib3JkZXItcmFkaXVzOjVweDsgLWtodG1sLWJvcmRlci1yYWRpdXM6NXB4OyBwYWRkaW5nOjE1cHggMCAxNXB4IDE1cHg7IG1hcmdpbjo1cHggMDsgZm9udC1zaXplOjEuNXJlbSA7IGNvbG9yOiNGRkZGRkY7fSAuYnV0dG9uX2pvYm9mZmVyIHsgZGlzcGxheTpibG9jazsgbGluZS1oZWlnaHQ6NTBweDsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvaWNvbl9lbXBsb3kucG5nJykgbm8tcmVwZWF0IHNjcm9sbCAwcHggMHB4IHJnYigyMzEsIDIzMiwgMjMyKTsgdGV4dC1hbGlnbjpjZW50ZXI7IGZvbnQtd2VpZ2h0OmJvbGQ7IHRleHQtZGVjb3JhdGlvbjpub25lOyBwYWRkaW5nLWxlZnQ6NDBweDsgYm9yZGVyLXJhZGl1czozcHg7IH0gLmJ1dHRvbl8xLCAuYnV0dG9uXzIsIC5idXR0b25fMyB7IG1hcmdpbi1ib3R0b206MTBweDsgfSAuYnV0dG9uXzEgYSwgLmJ1dHRvbl8yIGEsIC5idXR0b25fMyBhIHsgZGlzcGxheTpibG9jazsgd2lkdGg6MjQ5cHg7IGhlaWdodDozOHB4OyBib3JkZXItcmFkaXVzOjNweDsgZm9udC1zaXplOjEuMTI1cmVtIDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHRleHQtYWxpZ246Y2VudGVyOyBsaW5lLWhlaWdodDozOHB4OyB9IC5idXR0b25fMSBhLCAuYnV0dG9uXzIgYSB7IGJhY2tncm91bmQ6IzFmMmY1MzsgY29sb3I6I2ZmZmZmZjsgYm9yZGVyOjFweCBzb2xpZCAjZmZmZmZmOyB9IC5idXR0b25fMSBhOmhvdmVyLCAuYnV0dG9uXzIgYTpob3ZlcnsgYmFja2dyb3VuZDojMDE2OWFhOyBjb2xvcjojZmZmZmZmOyBib3JkZXI6MXB4IHNvbGlkICNmZmZmZmY7IH0gLmJ1dHRvbl8zIGE6bm90KC5kaXNjbGFpbWVyc1N1cGVyc2NyaXB0cyl7IGJhY2tncm91bmQ6IzAwMDsgY29sb3I6I0ZGRjsgYm9yZGVyOjFweCBzb2xpZCAjMDAwOyB9IC5idXR0b25fMyBhOm5vdCguZGlzY2xhaW1lcnNTdXBlcnNjcmlwdHMpOmhvdmVyeyBiYWNrZ3JvdW5kOiNGRkY7IGNvbG9yOiMwMDA7IH0gLmZiQ29ubmVjdEJ0biB7IHBvc2l0aW9uOnJlbGF0aXZlOyBiYWNrZ3JvdW5kLWNvbG9yOiMzMDU4OTg7IGNvbG9yOiNmZmY7IGJvcmRlci1yYWRpdXM6M3B4OyBsaW5lLWhlaWdodDozOHB4OyBtYXJnaW4tYm90dG9tOjEwcHg7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IHRleHQtYWxpZ246Y2VudGVyOyB9ICNjaGF0LXdpZGdldC1jb250YWluZXIsICNsaXZlX2NoYXRfc3RhdHVzLCAjQ2hhdERpdiwgI3BvZGl1bS1idWJibGUsICNqY29udCwgamRpdiwgI3Rzd193cmFwcGVyLCAuZmJfZGlhbG9nLCAuZmJfaWZyYW1lX3dpZGdldCwgLmZiLWN1c3RvbWVyY2hhdCwgLmVrLWNoYXQsIC5tYXRhZG9yLWxpdmVjaGF0LTEyMzc4OS1tYWluLXdyYXBwZXIsICNtYXRhZG9yLWNvbm5lY3QtdGV4dC1sYWJlbCwgI21hdGFkb3ItY29ubmVjdC10ZXh0LWxhYmVsLWJhZGdleyB6LWluZGV4OjEwMDAwICFpbXBvcnRhbnQ7IH0gc3ZnLmNoYXQtYnViYmxleyB3aWR0aDpyZXZlcnQ7IGhlaWdodDpyZXZlcnQ7IH0gLmZiQ29ubmVjdEJ0biAuZmEtZmFjZWJvb2t7IGNvbG9yOiMzMDU4OTg7IH0gYS5mYWNlYm9va0Nvbm5lY3RCdG4geyBjb2xvcjojZmZmOyBkaXNwbGF5OmlubGluZS1ibG9jazsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IGZvbnQtZmFtaWx5OmluaGVyaXQ7IH0gLmJ1dHRvbl92aWRlb3NfZnIgYSwgLmJ1dHRvbl92aWRlb3NfZW4gYXsgd2lkdGg6MjQ5cHg7IGhlaWdodDozOHB4OyBkaXNwbGF5OmJsb2NrOyB9IC5idXR0b25fdmlkZW9zX2ZyIGF7YmFja2dyb3VuZDp1cmwoIi9pbWFnZXMvdmlkZW9zLWJ1dHRvbl9mci5wbmciKSBuby1yZXBlYXQgMHB4IDBweCB0cmFuc3BhcmVudDt9IC5idXR0b25fdmlkZW9zX2ZyIGE6aG92ZXJ7YmFja2dyb3VuZDp1cmwoIi9pbWFnZXMvdmlkZW9zLWJ1dHRvbi1ob3Zlcl9mci5wbmciKSBuby1yZXBlYXQgMHB4IDBweCB0cmFuc3BhcmVudDt9IC5idXR0b25fdmlkZW9zX2VuIGF7YmFja2dyb3VuZDp1cmwoIi9pbWFnZXMvdmlkZW9zLWJ1dHRvbl9lbi5wbmciKSBuby1yZXBlYXQgMHB4IDBweCB0cmFuc3BhcmVudDt9IC5idXR0b25fdmlkZW9zX2VuIGE6aG92ZXJ7YmFja2dyb3VuZDp1cmwoIi9pbWFnZXMvdmlkZW9zLWJ1dHRvbi1ob3Zlcl9lbi5wbmciKSBuby1yZXBlYXQgMHB4IDBweCB0cmFuc3BhcmVudDt9IC5idXR0b25fdmlkZW9fZnIgYSwgLmJ1dHRvbl92aWRlb19lbiBheyB3aWR0aDoxOTNweDsgaGVpZ2h0OjUxcHg7IGRpc3BsYXk6YmxvY2s7IH0gLmJ1dHRvbl92aWRlb19mciBhe2JhY2tncm91bmQ6dXJsKCIvaW1hZ2VzL3ZpZGVvLWJ1dHRvbl9mci5wbmciKSBuby1yZXBlYXQgMHB4IDBweCB0cmFuc3BhcmVudDt9IC5idXR0b25fdmlkZW9fZnIgYTpob3ZlcntiYWNrZ3JvdW5kOnVybCgiL2ltYWdlcy92aWRlby1idXR0b24taG92ZXJfZnIucG5nIikgbm8tcmVwZWF0IDBweCAwcHggdHJhbnNwYXJlbnQ7fSAuYnV0dG9uX3ZpZGVvX2VuIGF7YmFja2dyb3VuZDp1cmwoIi9pbWFnZXMvdmlkZW8tYnV0dG9uX2VuLnBuZyIpIG5vLXJlcGVhdCAwcHggMHB4IHRyYW5zcGFyZW50O30gLmJ1dHRvbl92aWRlb19lbiBhOmhvdmVye2JhY2tncm91bmQ6dXJsKCIvaW1hZ2VzL3ZpZGVvLWJ1dHRvbi1ob3Zlcl9lbi5wbmciKSBuby1yZXBlYXQgMHB4IDBweCB0cmFuc3BhcmVudDt9IC5idXR0b25fdW5kZXJ7d2lkdGg6MjQ5cHg7IHBhZGRpbmc6MHB4OyBtYXJnaW46MTBweCAwcHg7fSAuYnV0dG9uX3VuZGVyIGF7IHdpZHRoOjEwMCU7bWluLWhlaWdodDozOHB4OyBib3JkZXItcmFkaXVzOjNweDsgZm9udC1zaXplOjEuMTI1cmVtIDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHRleHQtYWxpZ246Y2VudGVyOyBsaW5lLWhlaWdodDozOHB4OyB0ZXh0LXNoYWRvdzpub25lOyBkaXNwbGF5OmJsb2NrIH0gLmJ1dHRvbl91bmRlciBhOmhvdmVyeyBib3JkZXItcmFkaXVzOjNweDsgZm9udC1zaXplOjEuMTI1cmVtIDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHRleHQtYWxpZ246Y2VudGVyOyBsaW5lLWhlaWdodDozOHB4OyB0ZXh0LXNoYWRvdzoxcHggMXB4IDFweCAjMDAxZTMxOyB9IC5idXR0b25fdW5kZXIucHJvbW8gYXtiYWNrZ3JvdW5kLWNvbG9yOiNlODBkMGQ7IGJhY2tncm91bmQtaW1hZ2U6bm9uZTsgY29sb3I6I0ZGRjsgd2lkdGg6MjM3cHg7IG1hcmdpbi1sZWZ0OjVweDt9IC5idXR0b25fdW5kZXIucHJvbW8zIGF7YmFja2dyb3VuZC1jb2xvcjojY2IwMDAwOyBiYWNrZ3JvdW5kLWltYWdlOm5vbmU7IGNvbG9yOiNGRkY7IHdpZHRoOjIzN3B4OyBtYXJnaW4tbGVmdDo1cHg7fSAuYnV0dG9uX3VuZGVyLnByb21vIGE6aG92ZXIsLmJ1dHRvbl91bmRlci5wcm9tbzIgYTpob3ZlciwuYnV0dG9uX3VuZGVyLnByb21vMyBhOmhvdmVye2JhY2tncm91bmQtaW1hZ2U6dXJsKC9pbWFnZXMvYnV0dG9uXzFob3Zlci5wbmcpfSAuYnV0dG9uXzR7d2lkdGg6MjQ5cHg7IGhlaWdodDo1N3B4OyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjBweDsgbWFyZ2luLWJvdHRvbToxMHB4O30gLmJ1dHRvbl80IGF7IHdpZHRoOjI0OXB4OyBoZWlnaHQ6NTBweDsgcGFkZGluZy10b3A6N3B4OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2J1dHRvbl80LnBuZykgbGVmdCB0b3AgcmVwZWF0LXg7IGJvcmRlci1yYWRpdXM6M3B4O2ZvbnQtc2l6ZToxLjEyNXJlbSA7IGNvbG9yOiNGRkZGRkY7IHRleHQtZGVjb3JhdGlvbjpub25lOyB0ZXh0LWFsaWduOmNlbnRlcjsgbGluZS1oZWlnaHQ6MjJweDsgdGV4dC1zaGFkb3c6MXB4IDFweCAxcHggIzAwMWUzMTsgZGlzcGxheTpibG9jayB9IC5idXR0b25fNCBhOmhvdmVye3dpZHRoOjI0OXB4OyBoZWlnaHQ6NTBweDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9idXR0b25fNGhvdmVyLnBuZykgbGVmdCB0b3AgcmVwZWF0LXg7IGJvcmRlci1yYWRpdXM6M3B4OyBmb250LXNpemU6MS4xMjVyZW0gOyBjb2xvcjojRkZGRkZGOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgdGV4dC1hbGlnbjpjZW50ZXI7IGxpbmUtaGVpZ2h0OjIycHg7IHRleHQtc2hhZG93OjFweCAxcHggMXB4ICMwMDFlMzE7IH0gLmNoZWNrYm94MTUye3dpZHRoOmF1dG87IGhlaWdodDoxOHB4OyBmbG9hdDpsZWZ0OyBtYXJnaW46MDsgcGFkZGluZzowIDZweCAwIDA7IG1hcmdpbi10b3A6MDsgYm9yZGVyOjA7IHRvcDowOyB9IC5CYXNlMjJ7d2lkdGg6YXV0bzsgaGVpZ2h0OjE4cHg7IGZsb2F0OmxlZnQ7IG1hcmdpbi1yaWdodDo2cHg7IHBhZGRpbmc6NnB4IDZweCAwIDA7IG1hcmdpbi10b3A6MDsgYm9yZGVyOjA7IHRvcDowOyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojMDAwMDAwOyB0ZXh0LWRlY29yYXRpb246bm9uZTt9IC5ib3g5NDBfbGluZXt3aWR0aDo5NDBweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvbGluZTI1LnBuZykgbGVmdCBib3R0b20gcmVwZWF0LXg7IGJhY2tncm91bmQtcG9zaXRpb246Ym90dG9tOyBib3R0b206MDt9IC53aGl0ZV9ib3h7d2lkdGg6OTQwcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBiYWNrZ3JvdW5kOiNGRkZGRkY7IG92ZXJmbG93OmhpZGRlbjsgLW1vei1ib3JkZXItcmFkaXVzLXRvcGxlZnQ6NnB4OyAtbW96LWJvcmRlci1yYWRpdXMtdG9wcmlnaHQ6NnB4OyAtbW96LWJvcmRlci1yYWRpdXMtYm90dG9tcmlnaHQ6MHB4OyAtbW96LWJvcmRlci1yYWRpdXMtYm90dG9tbGVmdDowOyAtd2Via2l0LWJvcmRlci10b3AtbGVmdC1yYWRpdXM6NnB4OyAtd2Via2l0LWJvcmRlci10b3AtcmlnaHQtcmFkaXVzOjZweDsgLXdlYmtpdC1ib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czowcHg7IC13ZWJraXQtYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czowOyBib3JkZXItdG9wLWxlZnQtcmFkaXVzOjZweDsgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6NnB4OyBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjA7IGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjA7fSAuYm94MTAwe3dpZHRoOjIyMHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzBmMWExZTsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHRleHQtYWxpZ246bGVmdDsgcGFkZGluZzoxM3B4IDAgMTVweCAxMHB4O30gLmJveDEwMXt3aWR0aDoxNzdweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMwZjFhMWU7IHRleHQtZGVjb3JhdGlvbjpub25lOyB0ZXh0LWFsaWduOmNlbnRlcjsgcGFkZGluZzoxM3B4IDAgMTVweDtiYWNrZ3JvdW5kOnVybCgiL2ltYWdlcy9saW5lMjUucG5nIikgcmVwZWF0LXggc2Nyb2xsIGNlbnRlciBib3R0b20gI0Q5RDlEOTt9IC5ib3gxMDJ7d2lkdGg6MTc3cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojMGYxYTFlOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgdGV4dC1hbGlnbjpjZW50ZXI7IHBhZGRpbmc6MTNweCAwIDE1cHg7fSAuYm94MTAze3dpZHRoOjE3N3B4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzBmMWExZTsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHRleHQtYWxpZ246Y2VudGVyOyBwYWRkaW5nOjEzcHggMCAxNXB4O2JhY2tncm91bmQ6dXJsKCIvaW1hZ2VzL2xpbmUyNS5wbmciKSByZXBlYXQteCBzY3JvbGwgY2VudGVyIGJvdHRvbSAjRDlEOUQ5O30gLmJveDEwNHt3aWR0aDoxNzhweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMwZjFhMWU7IHRleHQtZGVjb3JhdGlvbjpub25lOyB0ZXh0LWFsaWduOmNlbnRlcjsgcGFkZGluZzoxM3B4IDAgMTVweDt9IC5ib3hFdmVue3dpZHRoOjE3N3B4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzBmMWExZTsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHRleHQtYWxpZ246Y2VudGVyOyBwYWRkaW5nOjEzcHggMHB4IDBweCAwcHg7fSAuYm94T2Rke3dpZHRoOjE3N3B4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzBmMWExZTsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHRleHQtYWxpZ246Y2VudGVyOyBwYWRkaW5nOjEzcHggMHB4IDBweCAwcHg7YmFja2dyb3VuZDp1cmwoIi9pbWFnZXMvbGluZTI1LnBuZyIpIHJlcGVhdC14IHNjcm9sbCBjZW50ZXIgYm90dG9tICNEOUQ5RDk7fSAuZmlsZWlucHV0LWJ1dHRvbiwgLmZpbGVpbnB1dC1idXR0b246aG92ZXIgeyBmb250LXNpemU6MC44NzVyZW0gIWltcG9ydGFudDsgbGluZS1oZWlnaHQ6MzFweDsgcG9zaXRpb246cmVsYXRpdmU7IH0gLmZpbGVpbnB1dC1idXR0b24gaW5wdXQgeyBwb3NpdGlvbjphYnNvbHV0ZTsgdG9wOjA7IHJpZ2h0OjA7IG1hcmdpbjowOyBvcGFjaXR5OjA7IC1tcy1maWx0ZXI6J2FscGhhKG9wYWNpdHk9MCknOyBjdXJzb3I6cG9pbnRlcjsgd2lkdGg6MTAwJTsgaGVpZ2h0OjEwMCU7IH0gLmJveDk0MF9tYWlue3dpZHRoOjk0MHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgcGFkZGluZzowcHggMCAxNXB4IDBweDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9ib3gyMDBfYmcucG5nKSBsZWZ0IHRvcCByZXBlYXQ7IC1tb3otYm9yZGVyLXJhZGl1czo2cHg7IC13ZWJraXQtYm9yZGVyLXJhZGl1czo2cHg7IGJvcmRlci1yYWRpdXM6NnB4OyAta2h0bWwtYm9yZGVyLXJhZGl1czo2cHg7fSAud2hpdGVfYm94X3RleHQye3dpZHRoOjIzMHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzBmMWExZTsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHRleHQtYWxpZ246Y2VudGVyO30gLndoaXRlX2JveF90ZXh0M3tiYWNrZ3JvdW5kLWNvbG9yOiNGNkY2RjY7Ym9yZGVyLWxlZnQ6MXB4IHNvbGlkICNDOUM5Qzk7Ym9yZGVyLXJpZ2h0OjFweCBzb2xpZCAjQzlDOUM5O3BhZGRpbmc6MTBweCAwcHg7d2lkdGg6MTc1cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojMGYxYTFlOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgdGV4dC1hbGlnbjpjZW50ZXI7fSAud2hpdGVfYm94X3RleHQ0e3BhZGRpbmc6MTBweCAwcHg7d2lkdGg6MTc3cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojMGYxYTFlOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgdGV4dC1hbGlnbjpjZW50ZXI7fSAud2hpdGVfYm94X3RleHQ1e2JhY2tncm91bmQtY29sb3I6I0Y2RjZGNjtib3JkZXItbGVmdDoxcHggc29saWQgI0M5QzlDOTtib3JkZXItcmlnaHQ6MXB4IHNvbGlkICNDOUM5Qzk7cGFkZGluZzoxMHB4IDBweDt3aWR0aDoxNzVweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMwZjFhMWU7IHRleHQtZGVjb3JhdGlvbjpub25lOyB0ZXh0LWFsaWduOmNlbnRlcjsgfSAud2hpdGVfYm94X3RleHQ2e3BhZGRpbmc6MTBweCAwcHg7d2lkdGg6MTc4cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojMGYxYTFlOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgdGV4dC1hbGlnbjpjZW50ZXI7fSAud2hpdGVfYm94X2JsYW5re3dpZHRoOjE3OHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzBmMWExZTsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHRleHQtYWxpZ246Y2VudGVyO30gLndoaXRlX2JveF90ZXh0T2Rke3BhZGRpbmc6MTBweCAwcHg7d2lkdGg6MTc3cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojMGYxYTFlOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgdGV4dC1hbGlnbjpjZW50ZXI7fSAud2hpdGVfYm94X3RleHRFdmVue2JhY2tncm91bmQtY29sb3I6I0Y2RjZGNjtib3JkZXItbGVmdDoxcHggc29saWQgI0M5QzlDOTtib3JkZXItcmlnaHQ6MXB4IHNvbGlkICNDOUM5Qzk7cGFkZGluZzoxMHB4IDBweDt3aWR0aDoxNzVweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMwZjFhMWU7IHRleHQtZGVjb3JhdGlvbjpub25lOyB0ZXh0LWFsaWduOmNlbnRlcjt9IC5ib3hfdGl0bGV7d2lkdGg6OTMwcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjMwcHggMHB4IDVweCAxMHB4OyBmb250LXNpemU6MC45MzhyZW0gOyBjb2xvcjojMGYxYTFlOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgdGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO30gLmN1c3RvbV8yMiB7d2lkdGg6MjQxcHg7IGhlaWdodDoxMjFweDsgZmxvYXQ6bGVmdDsgcGFkZGluZzowcHg7IG1hcmdpbjowIDhweCA4cHggMDsgYmFja2dyb3VuZDojZWJlYmViOy1tb3otYm9yZGVyLXJhZGl1czo4cHg7IC13ZWJraXQtYm9yZGVyLXJhZGl1czo4cHg7IGJvcmRlci1yYWRpdXM6OHB4OyAta2h0bWwtYm9yZGVyLXJhZGl1czo4cHg7Y3Vyc29yOnBvaW50ZXI7fSAuY3VzdG9tXzIyMiB7d2lkdGg6MjQxcHg7IGhlaWdodDoxMjFweDsgZmxvYXQ6bGVmdDsgcGFkZGluZzowcHg7IG1hcmdpbjowIDhweCA4cHggMDsgYmFja2dyb3VuZDojZmZmZmZmOy1tb3otYm9yZGVyLXJhZGl1czo4cHg7IC13ZWJraXQtYm9yZGVyLXJhZGl1czo4cHg7IGJvcmRlci1yYWRpdXM6OHB4OyAta2h0bWwtYm9yZGVyLXJhZGl1czo4cHg7Y3Vyc29yOnBvaW50ZXI7fSAudG95b3RhX2NhbXJ5e3dpZHRoOjQzMHB4OyBoZWlnaHQ6MjIycHg7IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MjBweCAwcHggMHB4IDEwcHg7IG1hcmdpbi1yaWdodDo4cHg7IGJhY2tncm91bmQ6I2ViZWJlYjstbW96LWJvcmRlci1yYWRpdXM6OHB4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6OHB4OyBib3JkZXItcmFkaXVzOjhweDsgLWtodG1sLWJvcmRlci1yYWRpdXM6OHB4O30gLnRveW90YV9jYW1yeSBoMXsgZm9udC1zaXplOjEuODc1cmVtIDsgY29sb3I6IzMwMzAzMDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHBhZGRpbmctYm90dG9tOjVweDt9IC50b3lvdGFfY2FtcnkgcHsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzVhNWE1YTsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHBhZGRpbmctYm90dG9tOjhweDt9IC5ib3gyX2RldGFpbHNfdGV4dDI1e3dpZHRoOjEwMCU7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBtYXJnaW46MTVweCBhdXRvOyB0ZXh0LWFsaWduOmNlbnRlcjsgZm9udC1zaXplOjEuODc1cmVtIDsgY29sb3I6I0ZGRkZGRjsgZm9udC13ZWlnaHQ6Ym9sZDsgdGV4dC1zaGFkb3c6MXB4IDFweCA0cHggIzgyODI4Mjt9IC5ib3gyX2RldGFpbHNfdGV4dDI1IHNwYW57IHRleHQtYWxpZ246Y2VudGVyOyBmb250LXNpemU6MS4xMjVyZW0gOyBjb2xvcjojZmZmOyBmb250LXdlaWdodDpib2xkO30gLmJveDE1e2N1cnNvcjpwb2ludGVyO3dpZHRoOmF1dG87IGhlaWdodDoyMHB4OyBmbG9hdDpsZWZ0OyBtYXJnaW46MHB4OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL21lbnUxMF9iZy5wbmcpIGxlZnQgdG9wIHJlcGVhdC14OyAtbW96LWJvcmRlci1yYWRpdXM6M3B4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6M3B4OyBib3JkZXItcmFkaXVzOjNweDsgLWtodG1sLWJvcmRlci1yYWRpdXM6M3B4OyBwYWRkaW5nOjRweCAycHg7IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiNGRkY7IHRleHQtZGVjb3JhdGlvbjpub25lOyBtYXJnaW4tcmlnaHQ6MXB4OyB9IC5ib3gxNSBoMntjdXJzb3I6cG9pbnRlcjtmbG9hdDpsZWZ0OyBwYWRkaW5nLXJpZ2h0OjVweDsgcGFkZGluZy10b3A6MHB4O30gLmJveDE1IGgyIGF7Y3Vyc29yOnBvaW50ZXI7ZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6I0ZGRjsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvaWNvbjIucG5nKSBsZWZ0IHRvcCBuby1yZXBlYXQ7IGZvbnQtd2VpZ2h0Om5vcm1hbDtwYWRkaW5nLWxlZnQ6NDBweDsgcGFkZGluZy1yaWdodDowcHg7IGxpbmUtaGVpZ2h0OjIwcHg7fSAuYm94MTUgaDIgYTpob3ZlcntjdXJzb3I6cG9pbnRlcjtmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojRkZGRkZGOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9pY29uMi5wbmcpIGxlZnQgdG9wIG5vLXJlcGVhdDsgZm9udC13ZWlnaHQ6bm9ybWFsOyBsaW5lLWhlaWdodDoyMHB4O30gLmJveDE2e3dpZHRoOmF1dG87IGhlaWdodDoyMHB4OyBmbG9hdDpsZWZ0OyBtYXJnaW46MHB4OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL21lbnUxMF9iZy5wbmcpIGxlZnQgdG9wIHJlcGVhdC14OyAtbW96LWJvcmRlci1yYWRpdXM6M3B4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6M3B4OyBib3JkZXItcmFkaXVzOjNweDsgLWtodG1sLWJvcmRlci1yYWRpdXM6M3B4OyBwYWRkaW5nOjRweCA0cHggNHB4IDhweDsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6I0ZGRjsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IG1hcmdpbi1yaWdodDoxcHg7IH0gLmJveDE2IGgye2Zsb2F0OmxlZnQ7IHBhZGRpbmctcmlnaHQ6NXB4OyBwYWRkaW5nLXRvcDowcHg7fSAuYm94MTYgaDIgYXtmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojRkZGOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9pY29uMy5wbmcpIGxlZnQgdG9wIG5vLXJlcGVhdDsgZm9udC13ZWlnaHQ6bm9ybWFsO3BhZGRpbmctbGVmdDoyMHB4OyBwYWRkaW5nLXJpZ2h0OjBweDsgbGluZS1oZWlnaHQ6MjBweDt9IC5ib3gxNiBoMiBhOmhvdmVye2Zsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOnJnYigyNTUsMjU1LDI1NSk7IHRleHQtZGVjb3JhdGlvbjpub25lOyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2ljb24zLnBuZykgbGVmdCB0b3Agbm8tcmVwZWF0OyBmb250LXdlaWdodDpub3JtYWw7IGxpbmUtaGVpZ2h0OjIwcHg7fSAuYm94MTd7d2lkdGg6YXV0bzsgaGVpZ2h0OjIwcHg7IGZsb2F0OmxlZnQ7IG1hcmdpbjowcHg7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvbWVudTEwX2JnLnBuZykgbGVmdCB0b3AgcmVwZWF0LXg7IC1tb3otYm9yZGVyLXJhZGl1czozcHg7IC13ZWJraXQtYm9yZGVyLXJhZGl1czozcHg7IGJvcmRlci1yYWRpdXM6M3B4OyAta2h0bWwtYm9yZGVyLXJhZGl1czozcHg7IHBhZGRpbmc6NHB4IDRweCA0cHggOHB4OyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojRkZGOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgbWFyZ2luLXJpZ2h0OjFweDsgfSAuYm94MTcgaDJ7ZmxvYXQ6bGVmdDsgcGFkZGluZy1yaWdodDo1cHg7IHBhZGRpbmctdG9wOjBweDt9IC5ib3gxNyBoMiBhe2Zsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiNGRkY7IHRleHQtZGVjb3JhdGlvbjpub25lOyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2ljb240LnBuZykgbGVmdCB0b3Agbm8tcmVwZWF0OyBmb250LXdlaWdodDpub3JtYWw7cGFkZGluZy1sZWZ0OjI1cHg7IHBhZGRpbmctcmlnaHQ6MHB4OyBsaW5lLWhlaWdodDoyMHB4O30gLmJveDE3IGgyIGE6aG92ZXJ7ZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzAwNTg5ZDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvaWNvbjQucG5nKSBsZWZ0IHRvcCBuby1yZXBlYXQ7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgbGluZS1oZWlnaHQ6MjBweDt9IC5ib3gxOHt3aWR0aDphdXRvOyBoZWlnaHQ6MjBweDsgZmxvYXQ6bGVmdDsgbWFyZ2luOjBweDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9tZW51MTBfYmcucG5nKSBsZWZ0IHRvcCByZXBlYXQteDsgLW1vei1ib3JkZXItcmFkaXVzOjNweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjNweDsgYm9yZGVyLXJhZGl1czozcHg7IC1raHRtbC1ib3JkZXItcmFkaXVzOjNweDsgcGFkZGluZzo0cHggNHB4IDRweCA4cHg7IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiNGRkY7IHRleHQtZGVjb3JhdGlvbjpub25lOyBtYXJnaW4tcmlnaHQ6MXB4OyB9IC5ib3gxOCBoMntmbG9hdDpsZWZ0OyBwYWRkaW5nLXJpZ2h0OjVweDsgcGFkZGluZy10b3A6MHB4O30gLmJveDE4IGgyIGF7ZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6I0ZGRjsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvaWNvbjUucG5nKSBsZWZ0IHRvcCBuby1yZXBlYXQ7IGZvbnQtd2VpZ2h0Om5vcm1hbDtwYWRkaW5nLWxlZnQ6MjVweDsgcGFkZGluZy1yaWdodDo1cHg7IGxpbmUtaGVpZ2h0OjIwcHg7fSAuYm94MTggaDIgYTpob3ZlcntmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojMDA1ODlkOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9pY29uNS5wbmcpIGxlZnQgdG9wIG5vLXJlcGVhdDsgZm9udC13ZWlnaHQ6bm9ybWFsOyBsaW5lLWhlaWdodDoyMHB4O30gLmJveDE5e3dpZHRoOmF1dG87IGhlaWdodDoyMHB4OyBmbG9hdDpsZWZ0OyBtYXJnaW46MHB4OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL21lbnUxMF9iZy5wbmcpIGxlZnQgdG9wIHJlcGVhdC14OyAtbW96LWJvcmRlci1yYWRpdXM6M3B4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6M3B4OyBib3JkZXItcmFkaXVzOjNweDsgLWtodG1sLWJvcmRlci1yYWRpdXM6M3B4OyBwYWRkaW5nOjRweDsgcGFkZGluZy1yaWdodDozcHg7IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiNGRkY7IHRleHQtZGVjb3JhdGlvbjpub25lOyBtYXJnaW4tcmlnaHQ6MXB4OyB9IC5ib3gxOSBoMntmbG9hdDpsZWZ0OyBwYWRkaW5nLXJpZ2h0OjVweDsgcGFkZGluZy10b3A6MHB4O30gLmJveDE5IGgyIGF7ZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6I0ZGRjsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvaWNvbjYucG5nKSBsZWZ0IHRvcCBuby1yZXBlYXQ7IGZvbnQtd2VpZ2h0Om5vcm1hbDtwYWRkaW5nLWxlZnQ6MjVweDsgbGluZS1oZWlnaHQ6MjBweDt9IC5ib3gxOSBoMiBhOmhvdmVye2Zsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMwMDU4OWQ7IHRleHQtZGVjb3JhdGlvbjpub25lOyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2ljb242LnBuZykgbGVmdCB0b3Agbm8tcmVwZWF0OyBmb250LXdlaWdodDpub3JtYWw7IGxpbmUtaGVpZ2h0OjIwcHg7fSAuYm94MTExNHtjdXJzb3I6cG9pbnRlcjt3aWR0aDphdXRvOyBoZWlnaHQ6MjBweDsgZmxvYXQ6bGVmdDsgbWFyZ2luOjBweDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9idXR0b25fMS5wbmcpIGxlZnQgdG9wIHJlcGVhdC14OyAtbW96LWJvcmRlci1yYWRpdXM6M3B4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6M3B4OyBib3JkZXItcmFkaXVzOjNweDsgLWtodG1sLWJvcmRlci1yYWRpdXM6M3B4OyBwYWRkaW5nOjRweDsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6I0ZGRjsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IG1hcmdpbi1yaWdodDoxcHg7IH0gLmJveDExMTQgaDJ7Y3Vyc29yOnBvaW50ZXI7ZmxvYXQ6bGVmdDsgcGFkZGluZy1yaWdodDo1cHg7IHBhZGRpbmctdG9wOjBweDt9IC5ib3gxMTE0IGgyIGF7Y3Vyc29yOnBvaW50ZXI7ZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6I0ZGRjsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvaWNvbjIucG5nKSBsZWZ0IHRvcCBuby1yZXBlYXQ7IGZvbnQtd2VpZ2h0Om5vcm1hbDtwYWRkaW5nLWxlZnQ6NDBweDsgcGFkZGluZy1yaWdodDoxMHB4OyBsaW5lLWhlaWdodDoyMHB4O30gLmJveDExMTQgaDIgYTpob3ZlcntjdXJzb3I6cG9pbnRlcjtmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojMDA1ODlkOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9pY29uMi5wbmcpIGxlZnQgdG9wIG5vLXJlcGVhdDsgZm9udC13ZWlnaHQ6bm9ybWFsOyBsaW5lLWhlaWdodDoyMHB4O30gLlNwZWNpZmljYXRpb25ze3dpZHRoOjY1MXB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgbWFyZ2luOjBweDsgcGFkZGluZzoxMHB4IDA7IGZvbnQtc2l6ZToxLjVyZW0gOyBjb2xvcjojMjUyNTI1OyB0ZXh0LWRlY29yYXRpb246bm9uZTtmb250LXdlaWdodDpub3JtYWw7bWFyZ2luLXRvcDo1cHg7fSAuTW9yYmkye3dpZHRoOjYzMXB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgcGFkZGluZzoxMHB4OyBtYXJnaW46MHB4OyBiYWNrZ3JvdW5kOiNFRkVGRUY7IC1tb3otYm9yZGVyLXJhZGl1czozcHg7Zm9udC13ZWlnaHQ6bm9ybWFsOyAtd2Via2l0LWJvcmRlci1yYWRpdXM6M3B4OyBib3JkZXItcmFkaXVzOjNweDsgLWtodG1sLWJvcmRlci1yYWRpdXM6M3B4OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojNWE1YTVhOyB0ZXh0LWRlY29yYXRpb246bm9uZTt9IC5Nb3JiaTIgcHsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzVhNWE1YTsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHBhZGRpbmctYm90dG9tOjhweDt9IC5ib3gyODg5X21pZHt3aWR0aDoyNzhweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvcmlnaHRfYm94NF9taWQucG5nKSBsZWZ0IHRvcCByZXBlYXQteTsgcGFkZGluZzowIDVweCAyMHB4IDVweDt9IC5Nb3JiaTIye3dpZHRoOjY1MXB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgcGFkZGluZzowcHg7IG1hcmdpbjowcHg7IC1tb3otYm9yZGVyLXJhZGl1czozcHg7IC13ZWJraXQtYm9yZGVyLXJhZGl1czozcHg7IGJvcmRlci1yYWRpdXM6M3B4OyAta2h0bWwtYm9yZGVyLXJhZGl1czozcHg7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiM1YTVhNWE7IHRleHQtZGVjb3JhdGlvbjpub25lO30gLmJveDI4ODlfbWlkIGgxeyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgcGFkZGluZzoxMHB4IDEwcHggMjBweCAxMHB4OyBmb250LXNpemU6MS44NzVyZW0gOyBjb2xvcjojMjgyODI4OyB0ZXh0LWRlY29yYXRpb246bm9uZTsgZm9udC13ZWlnaHQ6bm9ybWFsOyB0ZXh0LWFsaWduOmxlZnQ7IHRleHQtdHJhbnNmb3JtOm5vbmU7IGxpbmUtaGVpZ2h0OjI0cHh9IC5fYm94Mjg4OV9taWQgaDF7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjEwcHggMTBweCAyMHB4IDEwcHg7IGZvbnQtc2l6ZToxLjg3NXJlbSA7IGNvbG9yOiMyODI4Mjg7IHRleHQtZGVjb3JhdGlvbjpub25lOyBmb250LXdlaWdodDpub3JtYWw7IHRleHQtYWxpZ246bGVmdDsgdGV4dC10cmFuc2Zvcm06bm9uZTsgbGluZS1oZWlnaHQ6MjRweH0gLmJveDI4ODlfbWlkIGgyeyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgcGFkZGluZzo0cHggMTBweCAyMHB4IDE1cHg7IGZvbnQtc2l6ZToxLjVyZW0gOyBjb2xvcjojMjgyODI4OyB0ZXh0LWRlY29yYXRpb246bm9uZTsgZm9udC13ZWlnaHQ6bm9ybWFsOyB0ZXh0LWFsaWduOmxlZnQ7IHRleHQtdHJhbnNmb3JtOm5vbmU7IGxpbmUtaGVpZ2h0OjIzcHh9ICNzaW1pbGFyVGl0bGV7IHBhZGRpbmc6NHB4IDEwcHggOXB4IDE1cHg7IGZvbnQtc2l6ZToxLjQzOHJlbSA7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgfSAudGFiZTV7d2lkdGg6NjMxcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyB9IC50YWJlNSB1bHsgbGlzdC1zdHlsZS10eXBlOm5vbmU7IG1hcmdpbjowOyBwYWRkaW5nOjA7IHRleHQtdHJhbnNmb3JtOm5vbmU7IH0gLnRhYmU1IHVsIGxpeyBsaXN0LXN0eWxlLXR5cGU6bm9uZTsgbWFyZ2luOjA7IGRpc3BsYXk6YmxvY2s7fSAudGFiZTUgdWwgbGkgc3BhbntjdXJzb3I6cG9pbnRlcjsgbGlzdC1zdHlsZS10eXBlOm5vbmU7IG1hcmdpbjowOyBkaXNwbGF5OmJsb2NrOyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojMzIzMjMyOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgcGFkZGluZzo3cHggMTVweCA3cHggMTVweDsgbWFyZ2luLXJpZ2h0OjJweDsgZm9udC13ZWlnaHQ6bm9ybWFsOyBsaW5lLWhlaWdodDoxOHB4OyB0ZXh0LXRyYW5zZm9ybTpub25lOyB0ZXh0LWFsaWduOmNlbnRlcjsgdGV4dC10cmFuc2Zvcm06bm9uZTsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy90YWJfYmcucG5nKSBsZWZ0IHRvcCByZXBlYXQteDsgZmxvYXQ6bGVmdDsgLW1vei1ib3JkZXItcmFkaXVzLXRvcGxlZnQ6NnB4OyAtbW96LWJvcmRlci1yYWRpdXMtdG9wcmlnaHQ6NnB4OyAtbW96LWJvcmRlci1yYWRpdXMtYm90dG9tcmlnaHQ6MHB4OyAtbW96LWJvcmRlci1yYWRpdXMtYm90dG9tbGVmdDowOyAtd2Via2l0LWJvcmRlci10b3AtbGVmdC1yYWRpdXM6NnB4OyAtd2Via2l0LWJvcmRlci10b3AtcmlnaHQtcmFkaXVzOjZweDsgLXdlYmtpdC1ib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czowcHg7IC13ZWJraXQtYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czowOyBib3JkZXItdG9wLWxlZnQtcmFkaXVzOjZweDsgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6NnB4OyBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjA7IGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjA7fSAudGFiZTUgdWwgbGkgc3Bhbjpob3ZlcnsgbGlzdC1zdHlsZS10eXBlOm5vbmU7IGRpc3BsYXk6YmxvY2s7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiM3YjAwMDA7IHRleHQtZGVjb3JhdGlvbjpub25lOyBwYWRkaW5nOjdweCAxNXB4IDdweCAxNXB4OyBtYXJnaW4tcmlnaHQ6MnB4OyBmb250LXdlaWdodDpub3JtYWw7IGxpbmUtaGVpZ2h0OjE4cHg7IHRleHQtdHJhbnNmb3JtOm5vbmU7IHRleHQtYWxpZ246Y2VudGVyOyB0ZXh0LXRyYW5zZm9ybTpub25lOyBiYWNrZ3JvdW5kOiAjZWJlYmViOyBmbG9hdDpsZWZ0OyAtbW96LWJvcmRlci1yYWRpdXMtdG9wbGVmdDo2cHg7IC1tb3otYm9yZGVyLXJhZGl1cy10b3ByaWdodDo2cHg7IC1tb3otYm9yZGVyLXJhZGl1cy1ib3R0b21yaWdodDowcHg7IC1tb3otYm9yZGVyLXJhZGl1cy1ib3R0b21sZWZ0OjA7IC13ZWJraXQtYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czo2cHg7IC13ZWJraXQtYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6NnB4OyAtd2Via2l0LWJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjBweDsgLXdlYmtpdC1ib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjA7IGJvcmRlci10b3AtbGVmdC1yYWRpdXM6NnB4OyBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czo2cHg7IGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6MDsgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6MDsgfSAudGFiZTUgdWwgbGkgc3Bhbi5hY3RpdmV7Y3Vyc29yOmRlZmF1bHQ7IGxpc3Qtc3R5bGUtdHlwZTpub25lOyBkaXNwbGF5OmJsb2NrOyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojN2IwMDAwOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgcGFkZGluZzo3cHggMTVweCA3cHggMTVweDsgbWFyZ2luLXJpZ2h0OjJweDsgZm9udC13ZWlnaHQ6bm9ybWFsOyBsaW5lLWhlaWdodDoxOHB4OyB0ZXh0LXRyYW5zZm9ybTpub25lOyB0ZXh0LWFsaWduOmNlbnRlcjsgdGV4dC10cmFuc2Zvcm06bm9uZTsgYmFja2dyb3VuZDogI2ViZWJlYjsgZmxvYXQ6bGVmdDsgLW1vei1ib3JkZXItcmFkaXVzLXRvcGxlZnQ6NnB4OyAtbW96LWJvcmRlci1yYWRpdXMtdG9wcmlnaHQ6NnB4OyAtbW96LWJvcmRlci1yYWRpdXMtYm90dG9tcmlnaHQ6MHB4OyAtbW96LWJvcmRlci1yYWRpdXMtYm90dG9tbGVmdDowOyAtd2Via2l0LWJvcmRlci10b3AtbGVmdC1yYWRpdXM6NnB4OyAtd2Via2l0LWJvcmRlci10b3AtcmlnaHQtcmFkaXVzOjZweDsgLXdlYmtpdC1ib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czowcHg7IC13ZWJraXQtYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czowOyBib3JkZXItdG9wLWxlZnQtcmFkaXVzOjZweDsgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6NnB4OyBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjA7IGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjA7IH0gLnRhYl9kZXRhaWxzMnt3aWR0aDo2MzFweDsgcGFkZGluZzoxMHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgYmFja2dyb3VuZDojRUZFRkVGOyAtbW96LWJvcmRlci1yYWRpdXMtdG9wbGVmdDowcHg7IC1tb3otYm9yZGVyLXJhZGl1cy10b3ByaWdodDowcHg7IC1tb3otYm9yZGVyLXJhZGl1cy1ib3R0b21yaWdodDo2cHg7IC1tb3otYm9yZGVyLXJhZGl1cy1ib3R0b21sZWZ0OjZweDsgLXdlYmtpdC1ib3JkZXItdG9wLWxlZnQtcmFkaXVzOjBweDsgLXdlYmtpdC1ib3JkZXItdG9wLXJpZ2h0LXJhZGl1czowcHg7IC13ZWJraXQtYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6NnB4OyAtd2Via2l0LWJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6NnB4OyBib3JkZXItdG9wLWxlZnQtcmFkaXVzOjBweDsgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6MHB4OyBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjZweDsgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6NnB4O30gLmJveDI1e3dpZHRoOjQ4N3B4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgbWFyZ2luOjBweDsgYmFja2dyb3VuZDojRUZFRkVGOyAtbW96LWJvcmRlci1yYWRpdXM6M3B4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6M3B4OyBib3JkZXItcmFkaXVzOjNweDsgLWtodG1sLWJvcmRlci1yYWRpdXM6M3B4OyBtYXJnaW46MCAxM3B4IDAgMDsgcGFkZGluZzoyMHB4IDAgMjBweCAyMHB4O30gLmJveDI2e3dpZHRoOjI0M3B4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDt9IC5ib3gyNiB1bHsgbGlzdC1zdHlsZS10eXBlOm5vbmU7IG1hcmdpbjowOyBwYWRkaW5nOjA7IHRleHQtdHJhbnNmb3JtOm5vbmU7IH0gLmJveDI2IHVsIGxpeyBsaXN0LXN0eWxlLXR5cGU6bm9uZTsgbWFyZ2luOjA7IGRpc3BsYXk6YmxvY2s7fSAuYm94MjYgdWwgbGkgc3BhbnsgbGlzdC1zdHlsZS10eXBlOm5vbmU7IG1hcmdpbjowOyBkaXNwbGF5OmJsb2NrOyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojMzIzMjMyOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgcGFkZGluZzowIDdweCA3cHggMHB4OyBmb250LXdlaWdodDpub3JtYWw7IGxpbmUtaGVpZ2h0OjE4cHg7IHRleHQtdHJhbnNmb3JtOm5vbmU7IHRleHQtYWxpZ246bGVmdDt9IC5ib3gyNiB1bCBsaSBheyBsaXN0LXN0eWxlLXR5cGU6bm9uZTsgbWFyZ2luOjA7IGRpc3BsYXk6YmxvY2s7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMzMjMyMzI7IHRleHQtZGVjb3JhdGlvbjpub25lOyBwYWRkaW5nOjAgN3B4IDdweCAyMnB4OyBmb250LXdlaWdodDpub3JtYWw7IGxpbmUtaGVpZ2h0OjE4cHg7IHRleHQtdHJhbnNmb3JtOm5vbmU7IHRleHQtYWxpZ246bGVmdDsgfSAuYm94MjYgdWwgbGkgYTpob3ZlcnsgbGlzdC1zdHlsZS10eXBlOm5vbmU7IG1hcmdpbjowOyBkaXNwbGF5OmJsb2NrOyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojN2IwMDAwOyBwYWRkaW5nOjAgN3B4IDdweCAyMnB4OyBmb250LXdlaWdodDpub3JtYWw7IGxpbmUtaGVpZ2h0OjE4cHg7IHRleHQtdHJhbnNmb3JtOm5vbmU7IHRleHQtYWxpZ246bGVmdDsgdGV4dC10cmFuc2Zvcm06bm9uZTsgfSAuYm94MjYgdWwgbGkgYS5hY3RpdmV7IGxpc3Qtc3R5bGUtdHlwZTpub25lOyBtYXJnaW46MDsgZGlzcGxheTpibG9jazsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzdiMDAwMDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHBhZGRpbmc6MCA3cHggN3B4IDIycHg7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgbGluZS1oZWlnaHQ6MThweDsgdGV4dC1hbGlnbjpsZWZ0OyB0ZXh0LXRyYW5zZm9ybTpub25lOyB9IC5ib3gyN3t3aWR0aDoxMzFweDsgaGVpZ2h0OjI4cHg7IGZsb2F0OmxlZnQ7IG1hcmdpbi1ib3R0b206OHB4OyB9IC5ib3gzM3t3aWR0aDo2MzFweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7fSAuYm94MzMgdWx7IGxpc3Qtc3R5bGUtdHlwZTpub25lOyBtYXJnaW46MDsgcGFkZGluZzowOyB0ZXh0LXRyYW5zZm9ybTpub25lOyB9IC5ib3gzMyB1bCBsaXsgbGlzdC1zdHlsZS10eXBlOm5vbmU7IG1hcmdpbjowOyBkaXNwbGF5OmJsb2NrO30gLmJveDMzIHVsIGxpIGF7IGxpc3Qtc3R5bGUtdHlwZTpub25lOyBtYXJnaW46MDsgZGlzcGxheTpibG9jazsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzMyMzIzMjsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHBhZGRpbmc6MCA3cHggN3B4IDBweDsgbWFyZ2luLXJpZ2h0OjJweDsgZm9udC13ZWlnaHQ6Ym9sZDsgbGluZS1oZWlnaHQ6MThweDsgdGV4dC10cmFuc2Zvcm06bm9uZTsgdGV4dC1hbGlnbjpsZWZ0OyB0ZXh0LXRyYW5zZm9ybTpub25lO30gLmJveDMzIHVsIGxpIHNwYW57IGxpc3Qtc3R5bGUtdHlwZTpub25lOyBtYXJnaW46MDsgZGlzcGxheTpibG9jazsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzMyMzIzMjsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHBhZGRpbmc6MCA3cHggN3B4IDBweDsgbWFyZ2luLXJpZ2h0OjJweDsgZm9udC13ZWlnaHQ6Ym9sZDsgbGluZS1oZWlnaHQ6MThweDsgdGV4dC10cmFuc2Zvcm06bm9uZTsgdGV4dC1hbGlnbjpsZWZ0OyB0ZXh0LXRyYW5zZm9ybTpub25lO30gLmJveDMzIHB7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMzMjMyMzI7IHRleHQtZGVjb3JhdGlvbjpub25lOyBwYWRkaW5nOjAgMHB4IDdweCAwcHg7IGZvbnQtd2VpZ2h0OmJvbGQ7IGxpbmUtaGVpZ2h0OjE4cHg7IHRleHQtdHJhbnNmb3JtOm5vbmU7IHRleHQtYWxpZ246bGVmdDsgfSAuYm94MzMgdWwgbGkgYTpob3ZlcnsgbGlzdC1zdHlsZS10eXBlOm5vbmU7IG1hcmdpbjowOyBkaXNwbGF5OmJsb2NrOyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojN2IwMDAwOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgcGFkZGluZzowIDdweCA3cHggMjJweDsgbWFyZ2luLXJpZ2h0OjJweDsgZm9udC13ZWlnaHQ6Ym9sZDsgbGluZS1oZWlnaHQ6MThweDsgdGV4dC10cmFuc2Zvcm06bm9uZTsgdGV4dC1hbGlnbjpsZWZ0OyB0ZXh0LXRyYW5zZm9ybTpub25lOyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2Fycm93OC5wbmcpIGxlZnQgdG9wIG5vLXJlcGVhdDsgfSAuTW90ZXVye3dpZHRoOjI4MHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgbWFyZ2luLWJvdHRvbTo1cHg7fSAuTW90ZXVyIGgye3doaXRlLXNwYWNlOm5vcm1hbDsgd2lkdGg6MTM1cHg7IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjc1cmVtIDsgY29sb3I6IzIwMjAyMDt9IC5Nb3RldXIgaDN7d2hpdGUtc3BhY2U6bm9ybWFsOyB3aWR0aDoxNDBweDsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODEzcmVtIDsgZm9udC13ZWlnaHQ6bm9ybWFsOyBjb2xvcjojNWE1YTVhO30gLmJveDI2IHVsIGxpIHNwYW46YmVmb3JlLC5ib3gzMyB1bCBsaSBzcGFuOmJlZm9yZSwuTW90ZXVyIGgyOmJlZm9yZSB7IGNvbnRlbnQ6IlxmMTM4IjsgZm9udC1mYW1pbHk6J0ZvbnQgQXdlc29tZSA1IFBybyc7IGZvbnQtd2VpZ2h0OjkwMDsgbWFyZ2luLXJpZ2h0OjVweDsgfSAuYm94MjcgYXt3aWR0aDoxMzFweDsgaGVpZ2h0OjI4cHg7IGZsb2F0OmxlZnQ7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvYnV0dG9uMTBfYmcucG5nKSBsZWZ0IHRvcCByZXBlYXQteCA7IC1tb3otYm9yZGVyLXJhZGl1czozcHg7IC13ZWJraXQtYm9yZGVyLXJhZGl1czozcHg7IGJvcmRlci1yYWRpdXM6M3B4OyAta2h0bWwtYm9yZGVyLXJhZGl1czozcHg7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiNGRkZGRkY7IHRleHQtZGVjb3JhdGlvbjpub25lOyBmb250LXdlaWdodDpub3JtYWw7IHBhZGRpbmc6MDsgbGluZS1oZWlnaHQ6MjhweDsgdGV4dC1hbGlnbjpjZW50ZXI7IHRleHQtdHJhbnNmb3JtOm5vbmU7fSAuYm94MjcgYTpob3Zlcnt3aWR0aDoxMzFweDsgaGVpZ2h0OjI4cHg7IGZsb2F0OmxlZnQ7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvYnV0dG9uMTBfYmcucG5nKSBsZWZ0IC0zMnB4IHJlcGVhdC14IDsgLW1vei1ib3JkZXItcmFkaXVzOjNweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjNweDsgYm9yZGVyLXJhZGl1czozcHg7IC1raHRtbC1ib3JkZXItcmFkaXVzOjNweDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6I0ZGRkZGRjsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgdGV4dC1hbGlnbjpjZW50ZXI7IHRleHQtdHJhbnNmb3JtOm5vbmU7IGxpbmUtaGVpZ2h0OjI4cHg7IH0gLmJveDI4e3dpZHRoOjEyN3B4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgbWFyZ2luOjBweDsgYmFja2dyb3VuZDojNmY2ZjZmIHVybCgvaW1hZ2VzL2xpdGVyX2JnLnBuZykgbGVmdCB0b3AgcmVwZWF0LXg7IC1tb3otYm9yZGVyLXJhZGl1czozcHg7IC13ZWJraXQtYm9yZGVyLXJhZGl1czozcHg7IGJvcmRlci1yYWRpdXM6M3B4OyAta2h0bWwtYm9yZGVyLXJhZGl1czozcHg7IHBhZGRpbmc6MTBweCAycHggMTBweCAycHg7IG1hcmdpbjowIDBweCAwIDA7fSAudGV4dDQ0e3dpZHRoOjEyN3B4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9saXRlcl9saW5lLnBuZykgbGVmdCBib3R0b20gcmVwZWF0LXg7IGJhY2tncm91bmQtcG9zaXRpb246Ym90dG9tOyB0ZXh0LWFsaWduOmNlbnRlcjsgcGFkZGluZy1ib3R0b206NXB4OyBtYXJnaW4tYm90dG9tOjVweDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6I0ZGRkZGRjsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgdGV4dC1hbGlnbjpjZW50ZXI7IHRleHQtdHJhbnNmb3JtOm5vbmU7IGxpbmUtaGVpZ2h0OjE4cHh9IC50ZXh0X2JveDYwe3dpZHRoOjEzM3B4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgcGFkZGluZzowOyB9IC50ZXh0X2JveDYwIGgye3dpZHRoOjEzM3B4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgcGFkZGluZzowOyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojMjYyNjI2OyB0ZXh0LWRlY29yYXRpb246bm9uZTsgZm9udC13ZWlnaHQ6Ym9sZDsgdGV4dC1hbGlnbjpsZWZ0OyB0ZXh0LXRyYW5zZm9ybTpub25lOyBsaW5lLWhlaWdodDoxOHB4fSAudGV4dF9ib3g2MCBoM3t3aWR0aDoxMzNweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MDsgZm9udC1zaXplOjFyZW0gOyBjb2xvcjojN2IwMDAwOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgZm9udC13ZWlnaHQ6bm9ybWFsOyB0ZXh0LWFsaWduOmxlZnQ7IHRleHQtdHJhbnNmb3JtOm5vbmU7IGxpbmUtaGVpZ2h0OjE4cHh9IC50ZXh0X2JveDYwIHB7d2lkdGg6MTMzcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjVweCAwOyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojMjYyNjI2OyB0ZXh0LWRlY29yYXRpb246bm9uZTsgZm9udC13ZWlnaHQ6Ym9sZDsgdGV4dC1hbGlnbjpsZWZ0OyB0ZXh0LXRyYW5zZm9ybTpub25lOyBsaW5lLWhlaWdodDoxOHB4fSAudmlvcnt3aWR0aDphdXRvOyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgcGFkZGluZzowcHggMTBweDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy92aW9yLnBuZykgbGVmdCB0b3AgcmVwZWF0LXg7IGxpbmUtaGVpZ2h0OjIycHg7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiNGRkZGRkY7IHRleHQtZGVjb3JhdGlvbjpub25lOyBmb250LXdlaWdodDpub3JtYWw7IHRleHQtYWxpZ246bGVmdDsgdGV4dC10cmFuc2Zvcm06bm9uZTsgLW1vei1ib3JkZXItcmFkaXVzOjVweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjVweDsgYm9yZGVyLXJhZGl1czo1cHg7IC1raHRtbC1ib3JkZXItcmFkaXVzOjVweDsgfSAuYm94MTMze3dpZHRoOjEzM3B4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgcGFkZGluZzowOyBtYXJnaW46MDt9IC5ib3gyNTh7d2lkdGg6MjU4cHg7IGJvcmRlci1ib3R0b206MXB4IHNvbGlkICNiOWI5Yjk7IHBhZGRpbmc6MCAxMHB4IDVweCAxMHB4OyBtYXJnaW4tYm90dG9tOjVweDsgZmxvYXQ6bGVmdDt9IC5ib3gxMTZ7d2lkdGg6MTE2cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBib3JkZXI6MnB4IHNvbGlkICNGRkZGRkY7IHBhZGRpbmc6MDsgbWFyZ2luLXJpZ2h0OjVweDt9IC5ib3gxMTYgaW1ne3dpZHRoOjEyMHB4OyB9IC5ib3gye3dpZHRoOjI2MHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgbWFyZ2luLXJpZ2h0OjQ3cHg7IG1hcmdpbi1sZWZ0OjIwcHg7IHBhZGRpbmc6MCAwIDEwcHggNXB4OyBmb250LXNpemU6MC44MTNyZW0gOyBjb2xvcjojMjQyNDI0IDt9IC5ib3gyIHNwYW57Zm9udDpib2xkIDEycHggVmVyZGFuYSwgQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjsgY29sb3I6I0ZGMDAwMH0gLmJveDN7d2lkdGg6MjYwcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBtYXJnaW4tcmlnaHQ6MjBweDsgcGFkZGluZzowIDAgMTBweCA1cHg7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IGNvbG9yOiMyNDI0MjQgO30gLmJveDMgc3Bhbntmb250OmJvbGQgMTJweCBWZXJkYW5hLCBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmOyBjb2xvcjojRkYwMDAwfSAuYm94NHt3aWR0aDoyNjVweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IG1hcmdpbjowcHggNDVweCAxMHB4IDIwcHg7IH0gLmJveDQ0e3dpZHRoOjI2NXB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgbWFyZ2luOjBweCA0N3B4IDEwcHggMjBweDsgcG9zaXRpb246cmVsYXRpdmU7fSAuYm94NXt3aWR0aDoyNjVweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IG1hcmdpbjowcHggMjBweCAxMHB4IDA7fSAuYm94Nnt3aWR0aDoyODBweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IG1hcmdpbjoxMHB4IDBweCAwcHggMDt9IC5ib3g1NXt3aWR0aDoyNjVweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IG1hcmdpbjowcHggMjBweCAxMHB4IDA7cG9zaXRpb246cmVsYXRpdmU7fSAubGluMnt3aWR0aDo2MTdweDsgaGVpZ2h0OjJweDsgZmxvYXQ6bGVmdDsgbWFyZ2luOjBweCAwIDEwcHggMDsgcGFkZGluZzowOyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2xpbmUyLnBuZykgbGVmdCB0b3AgcmVwZWF0LXg7fSAuYm94MTR7cGFkZGluZzowcHggMDsgaGVpZ2h0OjE1cHg7IGZsb2F0OmxlZnR9IC5ib3gyMHtwYWRkaW5nOjAgMTBweDsgZmxvYXQ6bGVmdDsgbGluZS1oZWlnaHQ6MjdweDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzI0MjQyNCA7IGZvbnQtd2VpZ2h0OmJvbGQ7fSAudGV4dDMwe3dpZHRoOjYxN3B4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgcGFkZGluZzoxN3B4IDA7IGZvbnQtc2l6ZToxLjM3NXJlbSA7IGNvbG9yOiMyNDI0MjR9IC50ZXh0MzAgc3BhbntwYWRkaW5nLXJpZ2h0OjEwcHg7IGZsb2F0OnJpZ2h0OyB0ZXh0LWFsaWduOnJpZ2h0OyBmb250LXNpemU6MC44NzVyZW0gOyBmb250LXdlaWdodDpub3JtYWw7IGNvbG9yOiMyNDI0MjQ7fSAudGV4dDMwIHNwYW4gc3Ryb25ne2ZvbnQ6Ym9sZCAyMHB4IFZlcmRhbmEsIEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7IGNvbG9yOiNGRjAwMDAgfSAuYm94NjE3e3dpZHRoOjYxN3B4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgcGFkZGluZy1sZWZ0OjBweDsgcGFkZGluZy1ib3R0b206MjBweDsgbWFyZ2luLXJpZ2h0OjBweDt9IC5tYWluNjE3e3dpZHRoOjYxN3B4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgcGFkZGluZy1sZWZ0OjBweDsgbWFyZ2luLXRvcDoxNXB4O30gLmJveDIwQXtwYWRkaW5nOjAgNXB4OyBmbG9hdDpsZWZ0OyBsaW5lLWhlaWdodDoyNXB4OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojMjQyNDI0IDsgZm9udC13ZWlnaHQ6Ym9sZDt9IC5vblNpdGUgKyAucHJlZmVycmVkLCAucHJlZmVycmVkOmhhcygrLm9uU2l0ZSkgeyBhbGlnbi1zZWxmOmVuZDsgfSAjc2VydmljZVBhY2thZ2VzIHRhYmxlIHtib3JkZXItY29sbGFwc2U6Y29sbGFwc2U7IHdpZHRoOjEwMCU7IGxpbmUtaGVpZ2h0OjMwcHg7IG1hcmdpbi1ib3R0b206MTVweDsgZm9udC1zaXplOjkwJTt9ICNzZXJ2aWNlUGFja2FnZXMgdGFibGUgdGJvZHkgdHI6bnRoLWNoaWxkKG9kZCkge2JhY2tncm91bmQ6I2YzZjNmMzt9ICNzZXJ2aWNlUGFja2FnZXMgdGFibGUgdGR7cGFkZGluZy10b3A6MC41cmVtOyB2ZXJ0aWNhbC1hbGlnbjp0b3A7IGxpbmUtaGVpZ2h0OjEuNTt9ICNzZXJ2aWNlUGFja2FnZXMgdGFibGUgdGQ6bnRoLWNoaWxkKDIpIHtwYWRkaW5nOjAuNXJlbTt9IC5kZXRhaWxDYXJUaXRsZSwgLmRldGFpbENhclRpdGxlV2lkZSwgLmRldGFpbENhclRpdGxlRnVsbCB7d29yZC13cmFwOmJyZWFrLXdvcmQ7aGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IG1hcmdpbjowcHg7IGZvbnQtc2l6ZToxLjg3NXJlbSA7IGNvbG9yOiM0MTQxNDE7Zm9udC13ZWlnaHQ6bm9ybWFsO30gLmRldGFpbENhclRpdGxlIHt3aWR0aDo0OTBweDt9IC5kZXRhaWxDYXJUaXRsZVdpZGUge3dpZHRoOjc3NXB4O30gLmRldGFpbENhclRpdGxlRnVsbCB7d2lkdGg6MTAwJTt9IC5tYWluYm94X3RleHRhcmU2MTd7aGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IHBhZGRpbmctbGVmdDowcHg7IG1hcmdpbjoyMHB4IDA7IHRyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSwgMCUpOyBwb3NpdGlvbjpyZWxhdGl2ZTsgbGVmdDo1MCU7fSAudGV4dGJveDIye3dpZHRoOjM4MXB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgcGFkZGluZy1sZWZ0OjBweDsgbWFyZ2luOjBweCAwcHggMCAwO30gLmJ1dHRvbjUxeyB3aWR0aDphdXRvOyBoZWlnaHQ6MzZweDsgZmxvYXQ6bGVmdDsgfSAuYnV0dG9uNTEgYXsgd2lkdGg6YXV0bzsgaGVpZ2h0OjM2cHg7IGZsb2F0OmxlZnQ7IC1tb3otYm9yZGVyLXJhZGl1czo1cHg7IC13ZWJraXQtYm9yZGVyLXJhZGl1czo1cHg7IGJvcmRlci1yYWRpdXM6NXB4OyAta2h0bWwtYm9yZGVyLXJhZGl1czo1cHg7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvYnV0dG9uNS5wbmcpIGxlZnQgdG9wIHJlcGVhdC14OyBmb250LXNpemU6MS4xMjVyZW0gOyBjb2xvcjojRkZGRkZGIDsgcGFkZGluZzowIDEwcHg7IGxpbmUtaGVpZ2h0OjM2cHg7IHRleHQtZGVjb3JhdGlvbjpub25lOyB0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7IH0gLmJ1dHRvbjUxIGE6aG92ZXJ7IHdpZHRoOmF1dG87IGhlaWdodDozNnB4OyBmbG9hdDpsZWZ0OyAtbW96LWJvcmRlci1yYWRpdXM6NXB4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6NXB4OyBib3JkZXItcmFkaXVzOjVweDsgLWtodG1sLWJvcmRlci1yYWRpdXM6NXB4OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2J1dHRvbjUucG5nKSBsZWZ0IC00NHB4IHJlcGVhdC14OyBmb250LXNpemU6MS4xMjVyZW0gOyBjb2xvcjojRkZGRkZGIDsgcGFkZGluZzowIDEwcHg7IGxpbmUtaGVpZ2h0OjM2cHg7IHRleHQtZGVjb3JhdGlvbjpub25lOyB0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7fSAudGV4dDU1e3dpZHRoOjM4MXB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgcGFkZGluZy1sZWZ0OjBweDsgbWFyZ2luOjBweCAwcHggMjBweCAwOyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjp2YXIoLS1kZWZhdWx0LWJsYWNrKSA7IGxpbmUtaGVpZ2h0OjE4cHg7IHRleHQtZGVjb3JhdGlvbjpub25lOyB9IC50ZXh0NTUgcHsgcGFkZGluZy1sZWZ0OjBweCA1cHggMCAwOyBtYXJnaW46MHB4IDBweCAwcHggMDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6dmFyKC0tZGVmYXVsdC1ibGFjayk7IGxpbmUtaGVpZ2h0OjE4cHg7IHRleHQtZGVjb3JhdGlvbjpub25lOyB9IC5waWNib3hfMjIxe2hlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBwYWRkaW5nLWxlZnQ6MHB4OyBtYXJnaW46MHB4IDE1cHggMCAwO30gLnBpY2JveF8yMjEgaW1nIHsgd2lkdGg6MzMycHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyAtbW96LWJvcmRlci1yYWRpdXM6M3B4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6M3B4OyBib3JkZXItcmFkaXVzOjNweDsgLWtodG1sLWJvcmRlci1yYWRpdXM6M3B4OyB9IC5pc0Z1bGxXaWR0aFBhZ2UgLnBpY2JveF8yMjEgaW1nIHsgd2lkdGg6NDQycHg7IH0gLnBpY2JveDY1MXt3aWR0aDo2NTFweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IG1hcmdpbjo1cHggMTBweCAwcHg7fSAucGljYm94OTMwe3dpZHRoOjkzMHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgbWFyZ2luOjVweCA1cHggMHB4O30gLnBpY2JveDY1MSBpbWcgeyB3aWR0aDo2NTFweDsgfSAucGljYm94OTMwIGltZyB7IHdpZHRoOjkzMHB4OyB9IC5waWNib3g2NTEgaW1nLCAucGljYm94OTMwIGltZyB7IGZsb2F0OmxlZnQ7IGN1cnNvcjpwb2ludGVyOyAtbW96LWJvcmRlci1yYWRpdXM6M3B4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6M3B4OyBib3JkZXItcmFkaXVzOjNweDsgLWtodG1sLWJvcmRlci1yYWRpdXM6M3B4OyB9IC50b3BQcm9tb0ltYWdlIGltZyB7IC1tb3otYm9yZGVyLXJhZGl1czozcHg7IC13ZWJraXQtYm9yZGVyLXJhZGl1czozcHg7IGJvcmRlci1yYWRpdXM6M3B4OyAta2h0bWwtYm9yZGVyLXJhZGl1czozcHg7IG1hcmdpbi10b3A6NXB4OyB3aWR0aDo5MzBweDsgY3Vyc29yOnBvaW50ZXI7IH0gLnRvcFByb21vSW1hZ2VVc2VkIGltZyB7IC1tb3otYm9yZGVyLXJhZGl1czozcHg7IC13ZWJraXQtYm9yZGVyLXJhZGl1czozcHg7IGJvcmRlci1yYWRpdXM6M3B4OyAta2h0bWwtYm9yZGVyLXJhZGl1czozcHg7IHdpZHRoOjY1MHB4OyBjdXJzb3I6cG9pbnRlcjsgfSAudGVhbV90aXRsZV9kZWFsZXJ7bWFyZ2luLWJvdHRvbToxNXB4OyB0ZXh0LWFsaWduOmNlbnRlcjt9IC5mb3Jtc19ib3g2NjF7d2lkdGg6OTYwcHg7IGhlaWdodDphdXRvOyBtYXJnaW46MTBweCBhdXRvOyB9IC5waWNib3g5MHt3aWR0aDo5MHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgbWFyZ2luLXJpZ2h0OjhweDsgYm9yZGVyOjFweCBzb2xpZCAjYWNhY2FjOyAtd2Via2l0LWJvcmRlci1yYWRpdXM6M3B4OyBib3JkZXItcmFkaXVzOjNweDsgLWtodG1sLWJvcmRlci1yYWRpdXM6M3B4OyB9IC5waWNib3g5MCBpbWcge3dpZHRoOjkwcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyAtbW96LWJvcmRlci1yYWRpdXM6M3B4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6M3B4OyBib3JkZXItcmFkaXVzOjNweDsgLWtodG1sLWJvcmRlci1yYWRpdXM6M3B4OyB9IC50ZXh0Ym94MTkxe3dpZHRoOjUyJTsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IGxpbmUtaGVpZ2h0OjEuMjsgY29sb3I6IzI0MjQyNDsgfSAudGV4dGJveDE5MSBoNHsgZm9udC1zaXplOjEuMTI1cmVtIDsgY29sb3I6IzI0MjQyNDsgcGFkZGluZy1ib3R0b206NXB4OyB9IC5tYWluYm94Mjkxe3dpZHRoOjI5MXB4OyBtaW4taGVpZ2h0OjEyM3B4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgbWFyZ2luOjAgNXB4IDEwcHggMDsgYmFja2dyb3VuZDojZTZlNmU2OyBib3JkZXI6MXB4IHNvbGlkICNkNGQ0ZDQ7IC1tb3otYm9yZGVyLXJhZGl1czo4cHg7IC13ZWJraXQtYm9yZGVyLXJhZGl1czo4cHg7IGJvcmRlci1yYWRpdXM6OHB4OyAta2h0bWwtYm9yZGVyLXJhZGl1czo4cHg7IHBhZGRpbmc6MTVweCAxMHB4O30gLmxhenl7Ym9yZGVyOjA7ZGlzcGxheTpub25lfSAudGVjaFNwZWNze3dpZHRoOjYyMXB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgbWFyZ2luOjBweDsgcGFkZGluZzoyNXB4IDE1cHg7IGJhY2tncm91bmQ6I2ViZWJlYjsgYmFja2dyb3VuZC1wb3NpdGlvbjpyaWdodCBib3R0b207IC1tb3otYm9yZGVyLXJhZGl1cy10b3BsZWZ0OjBweDstbW96LWJvcmRlci1yYWRpdXMtdG9wcmlnaHQ6MHB4Oy1tb3otYm9yZGVyLXJhZGl1cy1ib3R0b21yaWdodDo2cHg7LW1vei1ib3JkZXItcmFkaXVzLWJvdHRvbWxlZnQ6NnB4Oy13ZWJraXQtYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czowcHg7LXdlYmtpdC1ib3JkZXItdG9wLXJpZ2h0LXJhZGl1czowcHg7LXdlYmtpdC1ib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czo2cHg7LXdlYmtpdC1ib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjZweDtib3JkZXItdG9wLWxlZnQtcmFkaXVzOjBweDtib3JkZXItdG9wLXJpZ2h0LXJhZGl1czowcHg7Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czo2cHg7Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6NnB4O30gLmVtYWlsX2xpbmt7dGV4dC1kZWNvcmF0aW9uOm5vbmU7IGNvbG9yOiM4ODg7fSAuZW1haWxfbGluazpob3Zlcnt0ZXh0LWRlY29yYXRpb246bm9uZTsgY29sb3I6IzMzMzt9IC5wYWdlX25hbWU1NTUgeyBjb2xvcjojMjQyNDI0OyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MS41cmVtIDsgZm9udC13ZWlnaHQ6bm9ybWFsOyBoZWlnaHQ6YXV0bzsgbGluZS1oZWlnaHQ6MzBweDsgcGFkZGluZzowIDAgMTBweCAwOyB3aWR0aDoxMDAlOyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IG1hcmdpbjowOyB9IC5wYWdlX25hbWU1NTUgYXsgY29sb3I6IzI0MjQyNDsgfSAucGFnZV9uYW1lNTU1IGE6aG92ZXJ7IGNvbG9yOiMyNDI0MjQ7IHRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7IH0gLnBhZ2VfbmFtZTU1NSBhOnZpc2l0ZWR7IGNvbG9yOiMyNDI0MjQ7IH0gLnBhZ2VfbmFtZU5FVzU1NSB7IGNvbG9yOiMyNDI0MjQ7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgaGVpZ2h0OmF1dG87IGZvbnQtc2l6ZTowLjg3NXJlbSA7IH0gLnBhZ2VfbmFtZU5FVzU1NSBheyBjb2xvcjojMjQyNDI0OyB9IC5wYWdlX25hbWVORVc1NTUgYTpob3ZlcnsgY29sb3I6IzI0MjQyNDsgdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTsgfSAucGFnZV9uYW1lTkVXNTU1IGE6dmlzaXRlZHsgY29sb3I6IzI0MjQyNDsgfSAuYm94Ml90ZXh0NDQgeyBjb2xvcjojMjQyNDI0OyBmb250LXNpemU6MXJlbTsgaGVpZ2h0OmF1dG87IGxpbmUtaGVpZ2h0OjE4cHg7IHBhZGRpbmc6MTBweCAwIDAgMDsgd2lkdGg6YXV0bzsgfSAudGV4dF9ib3gxMSB7IGZsb2F0OmxlZnQ7IGhlaWdodDphdXRvOyBtYXJnaW46MDsgcGFkZGluZzowIDIwcHggMTBweCAwOyB3aWR0aDphdXRvOyBsaW5lLWhlaWdodDoyMXB4OyBkaXNwbGF5OmZsZXg7IGZsZXgtZGlyZWN0aW9uOmNvbHVtbjsgfSAudGV4dF9ib3gxMSBoNCB7IGNvbG9yOiMyNDI0MjQ7IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGhlaWdodDphdXRvOyBtYXJnaW46MDsgcGFkZGluZzoxMHB4IDA7IH0gLnRleHRfYm94MTEgYSB7IGNvbG9yOiMyNDI0MjQ7IGZvbnQtc2l6ZTowLjc1cmVtIDsgaGVpZ2h0OmF1dG87IG1hcmdpbi1sZWZ0OjA7IHBhZGRpbmc6MTBweCAwOyBmbG9hdDpsZWZ0OyB9IC50ZXh0X2JveDExIGE6aG92ZXIgeyBjb2xvcjojMjQyNDI0OyB9IC50ZXh0X2JveDExIGE6dmlzaXRlZCB7IGNvbG9yOiMyNDI0MjQ7IH0gLnRleHRfYm94MTEgdWwsIC50ZXh0X2JveDExIHAgeyB9IC50ZXh0X2JveDExIHVsLCAudGV4dF9ib3gxMSBwIHsgY29sb3I6IzI0MjQyNDsgZm9udC1zaXplOjAuODc1cmVtIDsgaGVpZ2h0OmF1dG87IG1hcmdpbjowOyBwYWRkaW5nOjAgMCA1cHg7IH0gLnRleHRfYm94MTEgdWwgeyBsaXN0LXN0eWxlLXBvc2l0aW9uOmluc2lkZTsgfSAudGV4dF9ib3gxMSBwIGEgeyBmb250LXNpemU6MC44NzVyZW0gOyBtYXJnaW46MDsgcGFkZGluZzowOyBmbG9hdDpub25lOyB9IC5waWNib3gzMzYgeyBib3JkZXI6MXB4IHNvbGlkICM3RDdEN0Q7IGZsb2F0OmxlZnQ7IGhlaWdodDphdXRvOyBtYXJnaW4tcmlnaHQ6NjhweDsgfSAuZm9udF9zaXplMjEgeyBmb250LXNpemU6MS4zMTNyZW0gIWltcG9ydGFudDsgfSAucGFnZV9uYW1lMTggeyBjb2xvcjojMjQyNDI0OyBmb250LXNpemU6MS4xMjVyZW0gOyBoZWlnaHQ6YXV0bzsgbGluZS1oZWlnaHQ6MzBweDsgcGFkZGluZzowIDAgMTBweCAwOyB3aWR0aDoxMDAlOyBmb250LXdlaWdodDpib2xkOyB9IC5wYWdlX25hbWUxOCBheyBjb2xvcjojMjQyNDI0OyB0ZXh0LWRlY29yYXRpb246bm9uZTsgfSAucGFnZV9uYW1lMTggYTpob3ZlcnsgY29sb3I6IzI0MjQyNDsgdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTsgfSAudmlkZW81IHsgZmxvYXQ6bGVmdDsgaGVpZ2h0OjQxcHg7IG1hcmdpbi10b3A6NzBweDsgbWFyZ2luLWxlZnQ6NzBweDsgfSAuZmxvYXRMb2dveyB3aWR0aDo2MjFweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IG1hcmdpbjowcHg7IHBhZGRpbmc6MjVweCAxNXB4OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL0xPR09fR0FfVFJBTlNQQVJFTlQucG5nKSByaWdodCBib3R0b20gbm8tcmVwZWF0OyBiYWNrZ3JvdW5kLXBvc2l0aW9uOnJpZ2h0IGJvdHRvbTsgLW1vei1ib3JkZXItcmFkaXVzLXRvcGxlZnQ6MHB4Oy1tb3otYm9yZGVyLXJhZGl1cy10b3ByaWdodDowcHg7LW1vei1ib3JkZXItcmFkaXVzLWJvdHRvbXJpZ2h0OjZweDstbW96LWJvcmRlci1yYWRpdXMtYm90dG9tbGVmdDo2cHg7LXdlYmtpdC1ib3JkZXItdG9wLWxlZnQtcmFkaXVzOjBweDstd2Via2l0LWJvcmRlci10b3AtcmlnaHQtcmFkaXVzOjBweDstd2Via2l0LWJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjZweDstd2Via2l0LWJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6NnB4O2JvcmRlci10b3AtbGVmdC1yYWRpdXM6MHB4O2JvcmRlci10b3AtcmlnaHQtcmFkaXVzOjBweDtib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjZweDtib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czo2cHg7IH0gLmJ1dHRvbjIuanFUcmFuc2Zvcm1CdXR0b24geyBiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50OyBib3JkZXI6bWVkaXVtIG5vbmU7IGNvbG9yOiNGRkZGRkY7IGN1cnNvcjpwb2ludGVyOyBmb250LXNpemU6MC44MTNyZW0gOyBtYXJnaW46MDsgb3ZlcmZsb3c6dmlzaWJsZTsgcGFkZGluZzowOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgfSAuYnV0dG9uMi5qcVRyYW5zZm9ybUJ1dHRvbiBzcGFuIHsgYmFja2dyb3VuZDp1cmwoIi9pbWFnZXMvYnRuX3JpZ2h0Mi5wbmciKSBuby1yZXBlYXQgc2Nyb2xsIHJpZ2h0IHRvcCB0cmFuc3BhcmVudDsgZGlzcGxheTpibG9jazsgZmxvYXQ6bGVmdDsgaGVpZ2h0OjM1cHg7IG1hcmdpbjowOyBwYWRkaW5nOjAgNnB4IDAgMDsgfSAuYnV0dG9uMi5qcVRyYW5zZm9ybUJ1dHRvbiBzcGFuIHNwYW4geyBiYWNrZ3JvdW5kOnVybCgiL2ltYWdlcy9idG5fbGVmdDIucG5nIikgbm8tcmVwZWF0IHNjcm9sbCBsZWZ0IHRvcCB0cmFuc3BhcmVudDsgY29sb3I6I0ZGRkZGRjsgZGlzcGxheTpibG9jazsgZm9udC1zaXplOjAuODEzcmVtIDsgZm9udC13ZWlnaHQ6bm9ybWFsOyBoZWlnaHQ6MjZweDsgbGluZS1oZWlnaHQ6MTNweDsgcGFkZGluZzoxMnB4IDEzcHggMCAxNXB4OyB0ZXh0LWRlY29yYXRpb246bm9uZTsgdGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlOyB9IC5idXR0b24yLmpxVHJhbnNmb3JtQnV0dG9uX2hvdmVyIHNwYW4gc3BhbiB7IGJhY2tncm91bmQtcG9zaXRpb246bGVmdCAtMzhweDsgfSAuYnV0dG9uMi5qcVRyYW5zZm9ybUJ1dHRvbl9ob3ZlciBzcGFuIHsgYmFja2dyb3VuZC1wb3NpdGlvbjpyaWdodCAtMzhweDsgfSAuYnV0dG9uMi5qcVRyYW5zZm9ybUJ1dHRvbl9jbGljayBzcGFuIHNwYW4geyBiYWNrZ3JvdW5kLXBvc2l0aW9uOmxlZnQgLTY2cHg7IH0gLmJ1dHRvbjIuanFUcmFuc2Zvcm1CdXR0b25fY2xpY2sgc3BhbiB7IGJhY2tncm91bmQtcG9zaXRpb246cmlnaHQgLTY2cHg7IH0gLnZlaGljbGVMaXN0VGFibGUgeyBtYXJnaW46MTBweDsgZm9udC1zaXplOjAuNzVyZW0gOyBjb2xvcjojNDE0MTQxOyB9IC52ZWhpY2xlTGlzdFRhYmxlIHRyIHRkIHsgYm9yZGVyLWJvdHRvbToxcHggZG90dGVkICM2NjY2NjY7IGhlaWdodDozMHB4OyB9IC52ZWhpY2xlTGlzdFRhYmxlIHRyIHRkIGF7IGNvbG9yOiM0MTQxNDE7IGZvbnQtc2l6ZTowLjc1cmVtIDsgfSAudmVoaWNsZUxpc3RUYWJsZSB0ciB0ZCBhOmhvdmVyeyBjb2xvcjojNDE0MTQxOyBmb250LXNpemU6MC43NXJlbSA7IH0gLnZlaGljbGVMaXN0VGFibGUgdHIgdGQgYTp2aXNpdGVkeyBjb2xvcjojNDE0MTQxOyBmb250LXNpemU6MC43NXJlbSA7IH0gLmV4cGFuZFJvd3sgYmFja2dyb3VuZC1jb2xvcjojMWYxZjFmOyB0ZXh0LWFsaWduOnJpZ2h0OyBjb2xvcjojNDE0MTQxOyBtYXJnaW4tbGVmdDo0cHg7IG1hcmdpbi1yaWdodDoycHg7IH0gZGl2LmVycm9yTXNnIHsgYmFja2dyb3VuZC1jb2xvcjojZmZkZGRkOyBiYWNrZ3JvdW5kLWltYWdlOnVybCgiL2ltYWdlcy9lcnJvci5wbmciKTsgYmFja2dyb3VuZC1wb3NpdGlvbjoxMHB4IGNlbnRlcjsgYmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0OyBib3JkZXI6MXB4IHNvbGlkOyBjb2xvcjojZDEwMDBjOyBkaXNwbGF5Om5vbmU7IGZsb2F0OmxlZnQ7IHotaW5kZXg6OTk5OTsgcGFkZGluZzoxNXB4IDEwcHggMTVweCA1MHB4OyB9IGRpdi5lbWFpbFNlbnRNc2cgeyBiYWNrZ3JvdW5kLWNvbG9yOiNlZmZmZWY7IGJhY2tncm91bmQtaW1hZ2U6dXJsKCIvaW1hZ2VzL2FjY2VwdGVkLnBuZyIpOyBiYWNrZ3JvdW5kLXBvc2l0aW9uOjEwcHggY2VudGVyOyBiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7IGJvcmRlcjoxcHggc29saWQgIzA5NzcwMDsgY29sb3I6IzA5NzcwMDsgZGlzcGxheTpub25lOyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjE1cHggMTBweCAxNXB4IDUwcHg7IH0gZGl2LnRveW90SW1hZ2UgeyBjb2xvcjojNjY2NjY2OyBmb250LXNpemU6My40MzhyZW0gOyBmb250LXdlaWdodDpib2xkOyBoZWlnaHQ6MjUwcHg7IGxlZnQ6MDsgb3BhY2l0eTowLjg7IG92ZXJmbG93OmhpZGRlbjsgcGFkZGluZzo1cHggMTBweDsgcG9zaXRpb246YWJzb2x1dGU7IHRleHQtZGVjb3JhdGlvbjpub25lOyB3aWR0aDozODBweDsgei1pbmRleDo4OyB9IGRpdi50b3lvdEltYWdlIHAgeyBwYWRkaW5nOjVweDsgbWFyZ2luOjA7IGZvbnQtc2l6ZTowLjkzOHJlbSA7IGNvbG9yOiNBNkE2QTY7IHRleHQtZGVjb3JhdGlvbjpub25lOyB9IGRpdi5uZXdDYXJNYWluQm94IHsgd2lkdGg6OTYwcHg7IG1hcmdpbjowIGF1dG87IH0gZGl2Lm5ld0Nhck1haW5Cb3gyIHsgbWFyZ2luLXRvcDo1cHg7IH0gZGl2Lm5ld0Nhck1haW5Cb3gzIHsgd2lkdGg6OTYwcHg7IGhlaWdodDoxMnB4OyBmbG9hdDpsZWZ0OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2JveDk3MF90b3AucG5nKSBsZWZ0IHRvcCBuby1yZXBlYXQ7IH0gLnN0b2NrSW1nU3R5bGV7IHdpZHRoOjEwMCU7IGhlaWdodDo1MCU7IGZvbnQtc2l6ZToyLjI1cmVtIDsgdGV4dC1hbGlnbjpjZW50ZXI7IGZvbnQtd2VpZ2h0OmJvbGQ7IHBhZGRpbmctdG9wOjMwcHg7IHBvc2l0aW9uOmFic29sdXRlOyBtYXJnaW46MHB4OyBjb2xvcjojMzAzMDMwOyB9ICNmaXJzdFNsaWRlckltZyB7IGJhY2tncm91bmQtY29sb3I6I2ZmZjsgcG9zaXRpb246YWJzb2x1dGU7IHotaW5kZXg6MTU7IHdpZHRoOjEwMCU7IGhlaWdodDphdXRvOyBvcGFjaXR5OjE7IHBhZGRpbmc6MDsgbWFyZ2luOjA7IH0gI2ZpcnN0U2xpZGVySW1nIC5wbGFjZWhvbGRlcnsgYm9yZGVyOjFweCBzb2xpZCAjRkZGOyB3aWR0aDo2NDBweDsgaGVpZ2h0OjQ4MHB4OyB9ICNmaXJzdFNsaWRlckltZyAucGxhY2Vob2xkZXIgLmlubmVyLXBsYWNlaG9sZGVyeyBwb3NpdGlvbjphYnNvbHV0ZTsgd2lkdGg6MTAwJTsgaGVpZ2h0OjEwMCU7IG92ZXJmbG93OmhpZGRlbjsgZGlzcGxheTpmbGV4OyB0b3A6MDsgYm90dG9tOjA7IGxlZnQ6MDsgcmlnaHQ6MDsgfSAjZmlyc3RTbGlkZXJJbWcgSU1HeyBoZWlnaHQ6YXV0bzsgbWF4LXdpZHRoOjY0MHB4OyBtYXgtaGVpZ2h0OjQ4MHB4OyB3aWR0aDphdXRvOyBtYXJnaW46YXV0bzsgfSAjZmlyc3RTbGlkZXJJbWcuZmFkZS1vdXR7IHZpc2liaWxpdHk6aGlkZGVuOyBvcGFjaXR5OjA7IC13ZWJraXQtdHJhbnNpdGlvbjp2aXNpYmlsaXR5IDFtcyAwLjI1cywgb3BhY2l0eSAwLjI1cyBsaW5lYXI7IC1tb3otdHJhbnNpdGlvbjp2aXNpYmlsaXR5IDFtcyAwLjI1cywgb3BhY2l0eSAwLjI1cyBsaW5lYXI7IC1vLXRyYW5zaXRpb246dmlzaWJpbGl0eSAxbXMgMC4yNXMsIG9wYWNpdHkgMC4yNXMgbGluZWFyOyB0cmFuc2l0aW9uOnZpc2liaWxpdHkgMW1zIDAuMjVzLCBvcGFjaXR5IDAuMjVzIGxpbmVhcjsgfSAjc29jaWFsVGltZWxpbmV7IHdpZHRoOjk2MHB4OyBoZWlnaHQ6YXV0bzsgfSBkaXYubmV3Q2FyTWFpbkJveDQgeyB3aWR0aDo5NDBweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvYm94OTcwX21pZC5wbmcpIGxlZnQgdG9wIHJlcGVhdC15OyBwYWRkaW5nOjEwcHggMTVweDsgfSBkaXYubmV3Q2FyVGl0bGVCb3ggaDF7IHdpZHRoOjk0MHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjEuODc1cmVtIDsgY29sb3I6IzMwMzAzMDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IH0gLmdyYXlib3ggeyBiYWNrZ3JvdW5kLWNvbG9yOiNFRkVGRUY7IGJvcmRlcjoxcHggc29saWQgI0ZGRkZGRjsgYm9yZGVyLXJhZGl1czozcHg7IGNvbG9yOiMwMDA7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IGxpbmUtaGVpZ2h0Om5vcm1hbDsgcGFkZGluZzoxMHB4IDAgMTBweCAwOyB0ZXh0LWFsaWduOmNlbnRlcjsgdGV4dC1zaGFkb3c6MCAxcHggMCAjRkZGRkZGOyB9IC5ncmF5Ym94ID4gc3BhbiB7IGNvbG9yOiMwMDA7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IHRleHQtYWxpZ246Y2VudGVyOyB9IC5ncmF5Ym94IC5zbWFsbHRleHQgeyBib3JkZXItYm90dG9tOjFweCBzb2xpZCAjQ0NDQ0NDOyBib3JkZXItdG9wOjFweCBzb2xpZCAjQ0NDQ0NDOyBjb2xvcjojMzMzMzMzOyBmb250LXNpemU6MC42ODhyZW0gOyBtYXJnaW4tdG9wOjEwcHg7IHBhZGRpbmc6MTBweDsgfSAuZ3JheWJveCBoMiB7IGNvbG9yOiMwMDA7IGZvbnQtc2l6ZToxLjVyZW0gOyBmb250LXdlaWdodDpib2xkOyBtYXJnaW46NXB4IGF1dG87IH0gLmV4dGVuZGVkUGhvbmV7IHBvc2l0aW9uOmZpeGVkOyBiYWNrZ3JvdW5kLWNvbG9yOiM2NzY3Njc7IGNvbG9yOiNkZGQ7IHBhZGRpbmc6MC42ZW07IGJvcmRlci1yYWRpdXM6NXB4OyB6LWluZGV4Ojk5OTk7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IHRleHQtYWxpZ246bGVmdDsgfSAuZXh0ZW5kZWRQaG9uZSBsYWJlbHsgZGlzcGxheTppbmxpbmUtYmxvY2s7IH0gLmV4dGVuZGVkUGhvbmUgc3BhbnsgY29sb3I6I2ZmZjsgfSAucGhvbmVOb3RleyBmb250LXNpemU6MC42ODhyZW0gOyBwYWRkaW5nLXRvcDo3cHg7IH0gLmFkZGVkU2VhcmNoTGlua3NEaXZFeCB7IGNvbG9yOiM0MTQxNDE7IGZvbnQtc2l6ZToxcmVtIDsgdGV4dC1hbGlnbjpsZWZ0OyBwYWRkaW5nLWxlZnQ6MjBweDsgcGFkZGluZy10b3A6MzBweDsgfSAuYWRkZWRTZWFyY2hMaW5rc0RpdiBkaXZ7IHBhZGRpbmctbGVmdDoxMHB4OyBwYWRkaW5nLXRvcDoxMHB4OyB3aWR0aDoyMDBweDsgZmxvYXQ6bGVmdDsgfSAuYWRkZWRTZWFyY2hMaW5rc0RpdiB1bHsgbWFyZ2luLWJvdHRvbToyMHB4OyBmb250LXNpemU6MC44MTNyZW0gOyBtYXJnaW4tdG9wOjVweDsgfSAuYWRkZWRTZWFyY2hMaW5rc0RpdiB1bCBsaXsgbGlzdC1zdHlsZTpub25lIG91dHNpZGUgbm9uZTsgZGlzcGxheTpibG9jazsgbWFyZ2luLWxlZnQ6NDBweDsgdGV4dC1pbmRlbnQ6LTEwcHg7IH0gLmFkZGVkU2VhcmNoTGlua3NEaXYgdWwgbGkgYXsgY29sb3I6IzMzMzsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IGN1cnNvcjpwb2ludGVyOyB9IC5hZGRlZFNlYXJjaExpbmtzRGl2IHVsIGxpIGF7IGJhY2tncm91bmQ6dXJsKCIvaW1hZ2VzL2Fycm93X3JlZC5wbmciKSBuby1yZXBlYXQgc2Nyb2xsIDAgMTBweCB0cmFuc3BhcmVudDsgY29sb3I6IzMzMzMzMzsgbWFyZ2luLXJpZ2h0OjJweDsgcGFkZGluZzo2cHggMTBweDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IH0gLmFkZGVkU2VhcmNoTGlua3NEaXYgdWwgbGkgYTpob3ZlciB7IHRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7IH0gLmNvbXBhcmVMaW5rcyBheyB0ZXh0LWRlY29yYXRpb246bm9uZTsgfSAuY29tcGFyZUxpbmtzIGE6aG92ZXJ7IHRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7IH0gLmVtYWlsQm9keSwgLmVtYWlsU3ViamVjdHsgZGlzcGxheTpub25lOyB9ICNjb250YWN0dXMgZGl2LmVycm9yTXNnIHsgYmFja2dyb3VuZC1jb2xvcjojZmZkZGRkOyBiYWNrZ3JvdW5kLWltYWdlOnVybCgiL2ltYWdlcy9lcnJvci5wbmciKTsgYmFja2dyb3VuZC1wb3NpdGlvbjoxMHB4IGNlbnRlcjsgYmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0OyBib3JkZXI6MXB4IHNvbGlkOyBjb2xvcjojZDEwMDBjOyBkaXNwbGF5Om5vbmU7IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MTVweCAxMHB4IDE1cHggNTBweDsgfSAjY29udGFjdHVzIGRpdi5lbWFpbFNlbnRNc2cgeyBiYWNrZ3JvdW5kLWNvbG9yOiNlZmZmZWY7IGJhY2tncm91bmQtaW1hZ2U6dXJsKCIvaW1hZ2VzL2FjY2VwdGVkLnBuZyIpOyBiYWNrZ3JvdW5kLXBvc2l0aW9uOjEwcHggY2VudGVyOyBiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7IGJvcmRlcjoxcHggc29saWQgIzA5NzcwMDsgY29sb3I6IzA5NzcwMDsgZGlzcGxheTpub25lOyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjE1cHggMTBweCAxNXB4IDUwcHg7IH0gI1BhZ2VGaW5hbmNlIC5zdGVwQWN0aXZlIHsgYmFja2dyb3VuZDp1cmwoIi9pbWFnZXMvMV9ob3Zlci5wbmciKSBuby1yZXBlYXQgc2Nyb2xsIGxlZnQgdG9wIHRyYW5zcGFyZW50OyBjb2xvcjojMDAwMDAwOyBmbG9hdDpsZWZ0OyBmb250LXNpemU6Mi4yNXJlbSA7IGZvbnQtd2VpZ2h0OmJvbGQ7IGhlaWdodDo0NnB4OyBsaW5lLWhlaWdodDo0NnB4OyB0ZXh0LWFsaWduOmNlbnRlcjsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHdpZHRoOjQ2cHg7IG1hcmdpbi1sZWZ0OjEwcHg7IH0gI1BhZ2VGaW5hbmNlIC5zdGVwVW5hY3RpdmUgeyBiYWNrZ3JvdW5kOnVybCgiL2ltYWdlcy8xX3JvdW5kLnBuZyIpIG5vLXJlcGVhdCBzY3JvbGwgbGVmdCB0b3AgdHJhbnNwYXJlbnQ7IGNvbG9yOiNGRkZGRkY7IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZToyLjI1cmVtIDsgZm9udC13ZWlnaHQ6Ym9sZDsgaGVpZ2h0OjQ2cHg7IGxpbmUtaGVpZ2h0OjQ2cHg7IHRleHQtYWxpZ246Y2VudGVyOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgd2lkdGg6NDZweDsgbWFyZ2luLWxlZnQ6MTBweDsgfSAjUGFnZUZpbmFuY2UgLnRleHQxIHNwYW4geyBjb2xvcjojNDM0MzQzOyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MS44NzVyZW0gOyBmb250LXdlaWdodDpib2xkOyBoZWlnaHQ6NDZweDsgbGluZS1oZWlnaHQ6NDZweDsgcGFkZGluZzowOyB0ZXh0LWFsaWduOmxlZnQ7IHRleHQtZGVjb3JhdGlvbjpub25lOyB0ZXh0LXNoYWRvdzoxcHggMXB4IDFweCAjRjNGM0YzOyB3aWR0aDphdXRvOyB9ICNQYWdlRmluYW5jZSBkaXYuZW1haWxTZW50TXNnIHsgYmFja2dyb3VuZC1jb2xvcjojQjhGRkI4OyBiYWNrZ3JvdW5kLWltYWdlOnVybCgiL2ltYWdlcy9hY2NlcHRlZC5wbmciKTsgYmFja2dyb3VuZC1wb3NpdGlvbjoxMHB4IGNlbnRlcjsgYmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0OyBib3JkZXI6MXB4IHNvbGlkICMwQjk2MDA7IGNvbG9yOiMwQjk2MDA7IGRpc3BsYXk6bm9uZTsgZmxvYXQ6bGVmdDsgcGFkZGluZzoxNXB4IDEwcHggMTVweCA1MHB4OyB9IC5vdGhlcl9saW5rcyBheyB0ZXh0LWRlY29yYXRpb246bm9uZTsgfSAub3RoZXJfbGlua3MgYTpob3ZlcnsgdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTsgfSAucHJvbW90aW9uU2lkZUJ0bkEgeyBiYWNrZ3JvdW5kOiNlYjAwMDA7IGNvbG9yOiNmZmZmZmY7IGRpc3BsYXk6YmxvY2s7Zm9udC1zaXplOjEuMjVyZW0gO3dpZHRoOmZpdC1jb250ZW50O2hlaWdodDo1M3B4O3BhZGRpbmc6MnB4IDE1cHggMHB4IDE1cHg7Y3Vyc29yOnBvaW50ZXI7bGluZS1oZWlnaHQ6NTNweDt0ZXh0LWRlY29yYXRpb246bm9uZTtiYWNrZ3JvdW5kLXNpemU6MTAwJTsgLW1vei1ib3JkZXItcmFkaXVzLXRvcGxlZnQ6M3B4OyAtbW96LWJvcmRlci1yYWRpdXMtdG9wcmlnaHQ6M3B4OyAtbW96LWJvcmRlci1yYWRpdXMtYm90dG9tcmlnaHQ6MHB4OyAtbW96LWJvcmRlci1yYWRpdXMtYm90dG9tbGVmdDowOyAtd2Via2l0LWJvcmRlci10b3AtbGVmdC1yYWRpdXM6M3B4OyAtd2Via2l0LWJvcmRlci10b3AtcmlnaHQtcmFkaXVzOjNweDsgLXdlYmtpdC1ib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czowOyAtd2Via2l0LWJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6MDsgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6M3B4OyBib3JkZXItdG9wLWxlZnQtcmFkaXVzOjNweDsgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6cHg7IGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6MHB4OyB0cmFuc2Zvcm06cm90YXRlKC05MGRlZyk7IC1tcy10cmFuc2Zvcm06cm90YXRlKC05MGRlZyk7IC13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgtOTBkZWcpOyB9IC5mb290ZXJNdWx0aUFkZHJlc3MzIHsgYm9yZGVyLXJpZ2h0OjFweCAjOTE5MTkxIHNvbGlkOyBwYWRkaW5nLXJpZ2h0OjcwcHg7IG1hcmdpbi1sZWZ0OjE0cHg7IGNvbG9yOiM1NzU3NTc7IH0gLmZvb3Rlck11bHRpQWRkcmVzczIgeyBib3JkZXItcmlnaHQ6MXB4ICM5MTkxOTEgc29saWQ7IHBhZGRpbmctcmlnaHQ6MTUwcHg7IG1hcmdpbi1sZWZ0OjkzcHg7IGNvbG9yOiM1NzU3NTc7IH0gLmZvb3Rlck11bHRpQWRkcmVzczEgeyBtYXJnaW4tbGVmdDozNDVweDsgY29sb3I6IzU3NTc1NzsgfSAuc21hbGxBY3Rpb25XZWJzaXRlQ29sb3IgeyBiYWNrZ3JvdW5kIDp1cmwoIi9pbWFnZXMvYmxfYmcyLnBuZyIpIGxlZnQgdG9wIHJlcGVhdC14OyBjb2xvcjpyZ2IoMjU1LDI1NSwyNTUpOyB9IC5zbWFsbEFjdGlvbldlYnNpdGVDb2xvcjpob3ZlcnsgYmFja2dyb3VuZCA6dXJsKCIvaW1hZ2VzL21lbnUxMF9iZy5wbmciKSBsZWZ0IHRvcCByZXBlYXQteDsgY29sb3I6I0ZGRjsgfSAubmF2IGxpIGEudG9wX2xpbmsuaXNCb2xkLCAubmF2IGxpIGEuaXNCb2xkeyBmb250LXdlaWdodDpib2xkOyB9ICNtYWluSGVhZGVyIGRpdi5ib3gxNVBhZGRpbmd7IHBhZGRpbmctdG9wOjE1cHg7IH0gLm5hdiAubm90Q2xpY2thYmxleyBjdXJzb3I6ZGVmYXVsdCAhaW1wb3J0YW50OyB9IC5TMTAwUGVyY2VudFdpZHRoeyB3aWR0aDoxMDAlOyB9ICNmaWx0ZXJNYWluQm94IHsgY29sb3I6IzAwMDsgfSAjZmlsdGVyTWFpbkJveCAuZmlsdGVyU3BhbiwgI2ZpbHRlck1haW5Cb3ggLmZpbHRlckNoZWNrLCAjZmlsdGVyTWFpbkJveCAucmFkaW9Tb3J0IHsgY3Vyc29yOnBvaW50ZXI7IH0gLmJDb2RlU3R5bGUgeyBmbG9hdDpsZWZ0OyB3aWR0aDoyNSU7IGZvbnQtc2l6ZTowLjhlbTsgcGFkZGluZy10b3A6MTVweDsgcGFkZGluZy1ib3R0b206MTVweDsgYmFja2dyb3VuZC1jb2xvcjo7IH0gLmJDb2RlU29ydCB7IGZsb2F0OmxlZnQ7IHdpZHRoOjE2JTsgYmFja2dyb3VuZC1jb2xvcjo7IGZvbnQtc2l6ZTowLjhlbTsgcGFkZGluZy10b3A6MTVweDsgcGFkZGluZy1ib3R0b206MTVweDsgfSAuYkNvZGVTb3J0IC5iQ29kZUhlYWRpbmcsIC5iQ29kZVN0eWxlIC5iQ29kZUhlYWRpbmcgeyBtYXJnaW4tYm90dG9tOjVweDsgZm9udC13ZWlnaHQ6Ym9sZDsgcGFkZGluZy1sZWZ0OjJweDsgfSAucGFnZV9uYW1lNDJ7d2lkdGg6OTQwcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjAgMHB4IDEwcHggMjFweDsgbGluZS1oZWlnaHQ6MzBweDsgZm9udC1zaXplOjEuNXJlbSA7IGNvbG9yOiMwMDAwMDA7fSAucGFnZV9uYW1lNDIgaDIge2ZvbnQtc2l6ZToxLjVyZW0gOyBjb2xvcjojMDAwMDAwO2ZvbnQtd2VpZ2h0Om5vcm1hbDtib3JkZXI6bm9uZTt9IC5wYWdlX25hbWU0MiBoMi5ub3RmaXJzdCB7Zm9udC1zaXplOjEuNXJlbSA7IGNvbG9yOiMwMDAwMDA7Zm9udC13ZWlnaHQ6bm9ybWFsO21hcmdpbi10b3A6MHB4O3BhZGRpbmctdG9wOjQwcHg7Ym9yZGVyLXRvcDoxcHggI2NjY2NjYyBzb2xpZDt3aWR0aDo5MjBweDt9ICNmaWx0ZXJNYWluQm94Lm5ld2NhcnNzdHlsZTJ7IC1tb3otYm9yZGVyLXJhZGl1czowcHg7IC13ZWJraXQtYm9yZGVyLXJhZGl1czowcHg7IC1raHRtbC1ib3JkZXItcmFkaXVzOjBweDsgYm9yZGVyLXJhZGl1czowcHg7IGJvcmRlcjpub25lOyBib3JkZXItdG9wOjFweCBzb2xpZCAjYmViZWJlOyBib3JkZXItYm90dG9tOjFweCBzb2xpZCAjYmViZWJlOyB3aWR0aDo5NTVweDsgbGVmdDozcHg7IH0gZGl2LmltZGV2IGxhYmVseyBmb250LXdlaWdodDpib2xkOyBwYWRkaW5nLXRvcDoxMHB4OyB9IGRpdi5pbWRldiBkaXZ7IGJhY2tncm91bmQ6bm9uZTsgYmFja2dyb3VuZC1jb2xvcjojRDlEOUQ5OyBwYWRkaW5nOjEwcHggMHB4IDEwcHggMHB4OyB3aWR0aDoxMDAlOyBmb250LXNpemU6MC44MTNyZW0gOyB9IGRpdi5pbWRldl9pbm5lciB7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgbWFyZ2luLWxlZnQ6MzBweDsgd2lkdGg6OTAlICFpbXBvcnRhbnQ7IH0gdWwucXVpeiB7cGFkZGluZzoxMHB4IDAgMTBweCAyMHB4OyBsaXN0LXN0eWxlLXR5cGU6bm9uZTsgaGVpZ2h0OjE3NXB4O30gdWwucXVpeiBsaSB7cGFkZGluZzoxMHB4O30gdWwucXVpeiBsaSBpbnB1dCB7bWFyZ2luLXJpZ2h0OjEwcHg7fSAubmV3cy1ib2R5IHt3aWR0aDoxMDAlO3RleHQtYWxpZ246cmlnaHQ7Zm9udC1zaXplOjAuODEzcmVtIDtjb2xvcjojMTkxOTE5O3BhZGRpbmctcmlnaHQ6MTVweDttYXJnaW4tdG9wOi0yMHB4O3BhZGRpbmctYm90dG9tOjEwcHg7fSAubmV3cy1hbGwtdGV4dCB7Y29sb3I6IzE5MTkxOTt9ICNuZXdzQ29udGFpbmVyIC50ZXh0X2JveDExIGltZyB7IG1heC13aWR0aDo2NDBweDsgZGlzcGxheTpibG9jazsgbWFyZ2luOjVweCBhdXRvOyB9ICNuZXdzQ29udGFpbmVyIC51c2VkeyBjbGVhcjpib3RoOyB9IC5ob21lX2FjdGlvbl9hZGogeyB3aWR0aDo5NjFweDsgfSAuaG9tZV9hY3Rpb25fYWRqMiB7IHdpZHRoOjczMHB4IWltcG9ydGFudDsgaGVpZ2h0OjYwMHB4IWltcG9ydGFudDsgfSAuaG9tZV9lbWFpbHsgd2lkdGg6MjMycHg7IG1hcmdpbi1sZWZ0OjVweDsgbWFyZ2luLWJvdHRvbTo1cHg7IH0gLndpZGdldF9tZW51X2FkajF7IGZvbnQtc2l6ZTowLjhlbTsgfSAud2lkZ2V0X21lbnVfYWRqMnsgZmxvYXQ6cmlnaHQ7cG9zaXRpb246cmVsYXRpdmU7dG9wOi0ycHg7IH0gLndpZGdldF9tZW51X2V4dGVuZGVkUGhvbmV7IGZvbnQtc2l6ZTowLjhlbTsgbWFyZ2luLWxlZnQ6MTA0cHg7IHRvcDoxMzJweDsgfSAud2lkZ2V0X21lbnVfYWRqM3sgZm9udC1zaXplOjAuOGVtO2NvbG9yOiM1NzU3NTc7cG9zaXRpb246cmVsYXRpdmU7bGVmdDotOHB4OyB9IC53aWRnZXRfbWVudV9hZGo0eyBwb3NpdGlvbjpyZWxhdGl2ZTsgZm9udC1zaXplOjAuOGVtOyBkaXNwbGF5OnRhYmxlOyBwYWRkaW5nLWJvdHRvbToxMHB4OyB9IC5waG9uZV90ZXh0LnJpZ2h0IHsgZmxvYXQ6bm9uZTsgaGVpZ2h0OmluaXRpYWw7IG1hcmdpbi1sZWZ0OmF1dG87IHdpZHRoOmluaGVyaXQ7IH0gLnBob25lX3RleHQgLnRlbCB7IG1hcmdpbi1sZWZ0OjEwcHg7IH0gLnBob25lX3RleHQgbGFiZWwgeyBkaXNwbGF5OmZsZXg7IGp1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuOyBtYXJnaW4tYm90dG9tOjRweDsgfSAud2lkZ2V0X21lbnVfYWRqNC5yaWdodCB7IHBhZGRpbmctbGVmdDoxMHB4OyB0ZXh0LWFsaWduOnJpZ2h0OyB9IC53aWRnZXRfbWVudV9hZGo0LmxlZnQgeyBwYWRkaW5nLXJpZ2h0OjEwcHg7IHdpZHRoOmluaGVyaXQ7IH0gLndpZGdldF9tZW51X2FkajZ7IGZvbnQtc2l6ZTowLjhlbTtwb3NpdGlvbjpyZWxhdGl2ZTtsZWZ0Oi0zcHg7Y29sb3I6IzU3NTc1NztjdXJzb3I6cG9pbnRlcjsgfSAud2lkZ2V0X2V4cHJlc3NfbWFpbF9waG9uZV90aXRsZXsgYm9yZGVyLWJvdHRvbToxcHggc29saWQgI2FhYTt0ZXh0LWFsaWduOiBjZW50ZXI7Zm9udC1zaXplOjEuNXJlbSA7IGZvbnQtd2VpZ2h0OmJvbGQ7IHBhZGRpbmctYm90dG9tOjhweDsgcGFkZGluZy10b3A6OHB4OyBjb2xvcjojMDAwMDAwOyB9IC53aWRnZXRfZXhwcmVzc19tYWlsX2FkajF7IHBhZGRpbmc6MTVweCAxMHB4OyBsaW5lLWhlaWdodDo2MHB4OyBmb250LXNpemU6MmVtOyBwYWRkaW5nOjE1cHggMTBweDt0ZXh0LWFsaWduOmNlbnRlcjsgfSAuYmFubmVyUG9wdXBDbG9zZXsgbGVmdDo3MTBweDsgcG9zaXRpb246cmVsYXRpdmU7IHdpZHRoOjE1cHg7IHRvcDoyMHB4OyBjdXJzb3I6cG9pbnRlcjsgfSAucHJpY2VOb3RlIHsgY29sb3I6Izc1NzU3NTsgZm9udC1zdHlsZTppdGFsaWM7IHRleHQtYWxpZ246anVzdGlmeTsgZGlzcGxheTpibG9jazsgcGFkZGluZy1yaWdodDoxMHB4OyBmb250LXNpemU6MC43NXJlbSAhaW1wb3J0YW50OyBtYXJnaW4tYm90dG9tOjE0cHg7IH0gLnN0YWNrZWREaXNjbGFpbWVyeyBkaXNwbGF5OmJsb2NrOyBtYXJnaW4tdG9wOjEwcHg7IH0gc3Bhbi5zdGFja2VkRGlzY2xhaW1lcjpiZWZvcmV7IGNvbnRlbnQ6IioqIjsgcG9zaXRpb246cmVsYXRpdmU7IGZvbnQtc2l6ZToxcmVtOyB9IC50b3ByaW50eyBkaXNwbGF5Om5vbmU7IH0gLnJlZmZlcmVuY2VDb250ZW50RGVtbywgLnJlZmZlcmVuY2VDb250ZW50Q2xlYXJhbmNleyBwYWRkaW5nOjMwcHggMjBweDsgYm9yZGVyLWJvdHRvbToxcHggc29saWQgI2NjYzsgbWFyZ2luLWJvdHRvbToyMHB4OyB9IC5ib3gyX2RldGFpbHNfdGV4dDIgLmNvbXBhcmVCdXR0b24sIC5ib3gyX2RldGFpbHNfdGV4dDIyIC5jb21wYXJlQnV0dG9ueyBwb3NpdGlvbjphYnNvbHV0ZTsgbWFyZ2luLXRvcDotMjBweDsgei1pbmRleDoxOyBsZWZ0Oi0zMHB4OyB9IC52ZHB7IGNsZWFyOmJvdGg7IHdpZHRoOjE2MHB4OyB9IC5jb21wYXJlQnV0dG9ueyB0cmFuc2l0aW9uOmJveC1zaGFkb3cgMC4yNXMgZWFzZS1vdXQgMHM7IHRyYW5zaXRpb246dHJhbnNmb3JtIDAuMjVzIGVhc2Utb3V0IDBzOyBkaXNwbGF5Om5vbmU7IH0gZGl2I3NsaWRlci1wcm8tMTIgeyBib3JkZXI6MXB4IHNvbGlkICNFQkVCRUI7IGJvcmRlci1yYWRpdXM6M3B4OyBiYWNrZ3JvdW5kOiNmZmY7IH0gI3NsaWRlclByb21vQWxlcnR7IGJvcmRlci1yYWRpdXM6M3B4IDNweCAwIDA7IH0gLnNsaWRlLXdyYXBwZXJ7IGJvcmRlci1yYWRpdXM6M3B4OyB9ICNzbGlkZWl0IGxhYmVsLm9wZW57IGJvcmRlci1yYWRpdXM6M3B4IDAgMCAzcHg7IH0gaW1nLmltYWdlIHsgYm9yZGVyLXJhZGl1czozcHg7IH0gLm5ld1ZkcFZpZXdlciAuY29tcGFyZUJ1dHRvbnsgcG9zaXRpb246YWJzb2x1dGU7IGJvdHRvbToycHg7IHJpZ2h0OjBweDsgei1pbmRleDoxMTExOyB9IC5saXZlQWxlcnRfbGlua3sgY29sb3I6I0ZGRkZGRjsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IGZvbnQtd2VpZ2h0OmJvbGQ7IH0gLmxpdmVBbGVydF9saW5rOmhvdmVyIHsgdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTsgfSAuYnV0dG9uLXRvYXN0cnsgYmFja2dyb3VuZDojRkZGO3BhZGRpbmc6NHB4IDIwcHg7Ym9yZGVyLXJhZGl1czo1cHg7IGNvbG9yOiNCRDM2MkYhaW1wb3J0YW50OyB9IC5idXR0b24tdG9hc3RyOmhvdmVyeyBiYWNrZ3JvdW5kOiMwMDA7IGNvbG9yOiNGRkY7IH0gLnJldHVyblBvcHVwX3N1Ym1pdCBzcGFuIHsgcG9zaXRpb246YWJzb2x1dGUhaW1wb3J0YW50OyB0b3A6NTAlIWltcG9ydGFudDsgZGlzcGxheTpibG9jayFpbXBvcnRhbnQ7IHRleHQtYWxpZ246Y2VudGVyIWltcG9ydGFudDsgbGVmdDowIWltcG9ydGFudDsgcmlnaHQ6MCFpbXBvcnRhbnQ7IHBhZGRpbmc6MCA4cHggMCA4cHghaW1wb3J0YW50OyBjdXJzb3I6cG9pbnRlciFpbXBvcnRhbnQ7IGZvbnQtc2l6ZTowLjg3NXJlbSAhaW1wb3J0YW50OyBtYXJnaW46MCFpbXBvcnRhbnQ7IGNvbG9yOiNGRkYhaW1wb3J0YW50OyBtYXJnaW4tdG9wOi05cHghaW1wb3J0YW50OyB9IHJldHVyblBvcHVwX3N1Ym1pdDpob3ZlciB7IGJhY2tncm91bmQtY29sb3I6IzBiYjFlMDsgY29sb3I6I2ZmZjsgfSAucmV0dXJuUG9wdXBfc3VibWl0IHsgZGlzcGxheTpibG9jazsgYm9yZGVyLXN0eWxlOnNvbGlkOyBib3JkZXItcmFkaXVzOjVweDsgbGVmdDoyMjhweDsgei1pbmRleDo1OyB3aWR0aDoyMjVweDsgaGVpZ2h0OjQwcHg7IHBvc2l0aW9uOmFic29sdXRlOyBiYWNrZ3JvdW5kLWNvbG9yOiMwMDQwODA7IHRleHQtc2hhZG93OjFweCAxcHggIzAwMmI0NjsgY29sb3I6I2ZmZjsgYm9yZGVyLXdpZHRoOjFweDsgYm9yZGVyLWNvbG9yOiMzMzMzMzM7IGZvbnQtc2l6ZToxcmVtIDsgbGluZS1oZWlnaHQ6MTlweDsgZm9udC13ZWlnaHQ6bm9ybWFsOyB0ZXh0LWFsaWduOmNlbnRlcjsgYmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0OyB9ICNyZXR1cm5Qb3B1cEZvcm1fd3JhcHBlciB7IGRpc3BsYXk6YmxvY2s7IGJhY2tncm91bmQ6cmdiYSg2Niw2Niw2NiwxKTsgYm9yZGVyLXN0eWxlOm5vbmU7IGJvcmRlci1yYWRpdXM6MTFweDsgbGVmdDoyODBweDsgdG9wOjE1NXB4OyB6LWluZGV4OjI7IHdpZHRoOjUzMXB4OyBoZWlnaHQ6Mzg0cHg7IHBvc2l0aW9uOmFic29sdXRlOyB9ICNyZXR1cm5Qb3B1cFRpbHRleyB3aWR0aDozMzVweDsgZmxvYXQ6cmlnaHQ7IG1hcmdpbjoyMHB4OyBjb2xvcjojMDAwMDAwOyBmb250LXNpemU6MS4xMjVyZW0gOyB9ICNyZXR1cm5Qb3B1cFRpbHRlIC5ycF9tY3sgZm9udC1zaXplOjEuMTI1cmVtICFpbXBvcnRhbnQ7IH0gI3JldHVyblBvcHVwVGlsdGUyeyBjb2xvcjojRkZGOyBtYXJnaW46MjBweCAxMHB4IDIwcHggMjBweDsgcGFkZGluZzowOyB9IC5yZXR1cm5Qb3B1cEZvcm1fbGFiZWwgeyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IGxpbmUtaGVpZ2h0OjE0cHg7IGNvbG9yOiNiZmJmYmY7IG1hcmdpbi1sZWZ0OjIwcHg7IGRpc3BsYXk6aW5saW5lLWJsb2NrOyB9IC5yZXR1cm5Qb3B1cEZvcm1fdGFibGUgdHIgdGR7IHBhZGRpbmctYm90dG9tOjEwcHg7IH0gLnJwX21jIHsgZm9udC1zaXplOjAuODc1cmVtICFpbXBvcnRhbnQ7IGNvbG9yOiMwMDQwODAhaW1wb3J0YW50OyBwYWRkaW5nOjAhaW1wb3J0YW50OyBtYXJnaW46MCFpbXBvcnRhbnQ7IH0gI2V4aXRQb3B1cENvbnRhaW5lcnsgcGFkZGluZzowOyBiYWNrZ3JvdW5kLWltYWdlOm5vbmU7IH0gI2V4aXRfcG9wdXBfYWNjdXRyYWRlX2Zvcm17IGhlaWdodDozNHJlbTsgYmFja2dyb3VuZC1pbWFnZTp1cmwoL2ltYWdlcy9wb3B1cHMvdHJhZGVpbi1leGl0cG9wdXAtZnIucG5nKTsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1leGl0LXBvcHVwLWJnY29sLCAjZWVlKTsgfSBib2R5LkVOR0xJU0ggI2V4aXRfcG9wdXBfYWNjdXRyYWRlX2Zvcm17IGJhY2tncm91bmQtaW1hZ2U6dXJsKC9pbWFnZXMvcG9wdXBzL3RyYWRlaW4tZXhpdHBvcHVwLWVuLnBuZyk7IH0gLmV4aXRfcG9wdXBfYnV0dG9ucyBidXR0b24geyB3aWR0aDoxMXJlbTsgZm9udC13ZWlnaHQ6Ym9sZDsgfSAuZXhpdF9wb3B1cF90ZXh0X2xpbmVfMnsgbWFyZ2luLXRvcDoyN3B4OyBtYXJnaW4tYm90dG9tOjVweDsgfSAuZXhpdF9wb3B1cF90ZXh0X2xpbmVfM3sgZm9udC1zaXplOjEuNjI1cmVtIDsgbWFyZ2luLWJvdHRvbTozcHg7IGZvbnQtd2VpZ2h0OmJvbGRlcjsgfSAuZXhpdF9wb3B1cF90ZXh0X2xpbmVfNSB7IG1hcmdpbi1ib3R0b206MjBweDsgZm9udC1zaXplOjEuNjI1cmVtIDsgZm9udC13ZWlnaHQ6Ym9sZGVyOyBtYXJnaW4tdG9wOjYzcHg7IH0gI2V4aXRfcG9wdXBfYWNjdXRyYWRlX3RpdGxleyBoZWlnaHQ6OTVweDsgd2lkdGg6NTcwcHg7IG1hcmdpbi10b3A6MjBweDsgfSAjZXhpdF9wb3B1cF9hY2N1dHJhZGVfdGl0bGUuX0ZSRU5DSHsgYmFja2dyb3VuZC1pbWFnZTp1cmwoL2ltYWdlcy9wb3B1cHMvYWNjdS10cmFkZS1leGl0LXRpdGxlX2ZyLnBuZyk7IH0gI2V4aXRfcG9wdXBfYWNjdXRyYWRlX3RpdGxlLl9FTkdMSVNIeyBiYWNrZ3JvdW5kLWltYWdlOnVybCgvaW1hZ2VzL3BvcHVwcy9hY2N1LXRyYWRlLWV4aXQtdGl0bGVfZW4ucG5nKTsgfSAjYmVzdFByaWNlVmRwTmV3UG9wdXBDb250YWluZXJ7IHdpZHRoOjQ4MHB4OyBoZWlnaHQ6NTEwcHg7IH0gI2Jlc3RQcmljZVZkcE5ld1BvcHVwQ29udGFpbmVyIC5wb3B1cF9iZ3sgd2lkdGg6NDgwcHg7IGhlaWdodDo1MTVweDsgfSAjYmVzdFByaWNlVmRwTmV3UG9wdXBDb250YWluZXIgLnBvcHVwX2JneyBiYWNrZ3JvdW5kLWltYWdlOnVybCgnL2ltYWdlcy9wb3B1cHMvZnIvYmVzdFByaWNlTmV3VmRwLnBuZycpOyB9IC5wb3B1cF9iZ3sgYmFja2dyb3VuZC1jb2xvcjojMWYyZjUzOyBiYWNrZ3JvdW5kLXNpemU6NDgwcHggNTE1cHg7IH0gLnBvcHVwRm9ybSAuYXN0ZXJpc2t7IGNvbG9yOiNkMDA7IGZvbnQtd2VpZ2h0OmJvbGQ7IHBhZGRpbmc6MDsgZm9udC1zaXplOmluaGVyaXQ7IG1hcmdpbjowOyB9IC5wb3B1cEZvcm17IHotaW5kZXg6NTA7IHBvc2l0aW9uOmFic29sdXRlOyB0b3A6MjQ4cHg7IGhlaWdodDoyNDlweDsgbGVmdDo4MHB4OyBiYWNrZ3JvdW5kOnVybCgiL2ltYWdlcy9jb3Vwb24tZm9ybS1iZy0yLnBuZyIpIG5vLXJlcGVhdDsgd2lkdGg6MzM1cHg7IHBhZGRpbmc6MzBweDsgfSAucG9wdXBGb3JtVGl0bGV7IGhlaWdodDo0MHB4OyBtYXJnaW46OHB4OyBmb250LXNpemU6MC45MzhyZW0gOyBmb250LXdlaWdodDpib2xkOyB9IC5wb3B1cEZvcm1JbnB1dHMgdGQgeyBmb250LXNpemU6MC44NzVyZW0gOyB0ZXh0LWFsaWduOnJpZ2h0OyBwYWRkaW5nLXJpZ2h0OjEwcHg7IHBhZGRpbmctYm90dG9tOjNweDsgfSAucG9wdXBGb3JtIGlucHV0eyB3aWR0aDoyMTBweDsgfSAjYXNQdXJjaGFzZUludGVudHsgd2lkdGg6NjAwcHg7IHBhZGRpbmc6MzBweCAzMHB4OyBoZWlnaHQ6YXV0bzsgY29sb3I6IzAwMDsgYmFja2dyb3VuZC1jb2xvcjojZWVlOyB6LWluZGV4OjEwMDAwMjE7IH0gI3Byb21vRGlzY292ZXJCdXR0b257IH0gLm5ld1ZkcFZpZXdlciB7IHdpZHRoOjY0MHB4OyBoZWlnaHQ6NDgwcHg7IGZsb2F0OmxlZnQ7IG1hcmdpbi1sZWZ0OjIwcHg7IH0gLmxvY2F0aW9uLW5hbWVzIHsgcG9zaXRpb246c3RhdGljOyB9ICNNYWluTWVudV9ERUFMRVJTSElQUyA+IHVsLnN1YiA+IGxpID4gdWwgeyBwb3NpdGlvbjpzdGF0aWM7IH0gLmltZ19tZW51LnVwX21lbnUgdWwubmF2IHVsLnN1YiBsaSAubG9jYXRpb24tbmFtZXMgeyBtaW4td2lkdGg6MjAwcHg7IH0gI01haW5NZW51X0RFQUxFUlNISVBTIGxpLmxvY2F0aW9uLW5hbWVzIHsgbWluLXdpZHRoOjIwMHB4OyB9IC5sb2NhdGlvbi1uYW1lcywgLmxvY2F0aW9uLW5hbWVzIGxpIHsgbGlzdC1zdHlsZTpub25lOyB9IC5MMTAwIHsgbGVmdDoxMDAlOyB9IC5SMTAwIHsgcmlnaHQ6MTAwJTsgfSAubG9jYXRpb24tbmFtZXMgLmxvY2F0aW9uLWRldGFpbHMgeyBwb3NpdGlvbjphYnNvbHV0ZTsgdG9wOjA7IHBhZGRpbmc6MTRweDsgYm94LXNoYWRvdzowIDZweCAxMnB4IHJnYmEoMCwwLDAsLjE3NSk7IGRpc3BsYXk6bm9uZTsgYmFja2dyb3VuZC1jb2xvcjp3aGl0ZTsgbWluLXdpZHRoOjI5MHB4OyB9IC5sb2NhdGlvbi1uYW1lcyAubG9jYXRpb24tZGV0YWlscyA+IC50aXRsZSB7IG1hcmdpbi1ib3R0b206MWVtOyBmb250LXNpemU6aW5pdGlhbDsgY29sb3I6IzAwMDAwMDsgfSAubG9jYXRpb24tbmFtZXMgLmxvY2F0aW9uLWRldGFpbHMgPiAubG9jYXRpb24tZGV0YWlscy1sb2dvID4gaW1nIHsgbWF4LXdpZHRoOjEwMCU7IG1hcmdpbi1ib3R0b206OHB4OyB9IGxpLmxvY2F0aW9uLW5hbWVzOmhvdmVyIC5sb2NhdGlvbi1kZXRhaWxzIHsgZGlzcGxheTpibG9jazsgfSBsaS5sb2NhdGlvbi1uYW1lczpob3ZlciAubWFpbm1lbnUtc3VibWVudSB7IG9wYWNpdHk6MTsgdmlzaWJpbGl0eTp2aXNpYmxlOyB9IC5sb2NhdGlvbi1uYW1lcyAubG9jYXRpb24tZGV0YWlscyAubG9jYXRpb24tZGV0YWlscy1sb2dvIHsgYm9yZGVyLWJvdHRvbToxcHggc29saWQgI2U1ZTVlNTsgbWFyZ2luLWJvdHRvbTo4cHg7IHRleHQtYWxpZ246Y2VudGVyOyB9ICNNYWluTWVudV9ERUFMRVJTSElQUyAubG9jYXRpb24tbmFtZXMgLm1haW5tZW51LXN1Ym1lbnUgLmxvY2F0aW9uLWRldGFpbHMgeyBtYXgtaGVpZ2h0OjYwdmg7IHBvc2l0aW9uOnN0YXRpYzsgfSAudXBfbWVudSB1bC5uYXYgLmxvY2F0aW9uLWRldGFpbHMtaW5mbyBhIHsgY29sb3I6IzAwMDAwMDsgcGFkZGluZzowOyB9IC5sb2NhdGlvbi1kZXRhaWxzLWluZm8gLmxvY2F0aW9uLXNwYWNpbmctbWwtMTMgeyBtYXJnaW4tbGVmdDoxMy40OXB4OyB9IC51cF9tZW51IHVsLm5hdiBsaS5kZXRhaWxzLWluZm8tbGluayBhIHsgZGlzcGxheTppbmxpbmUtYmxvY2s7IH0gLnVwX21lbnUgdWwubmF2IC5kZXRhaWxzLWluZm8tbGluazpob3ZlciBhIHsgY29sb3I6I2ZmZmZmZjsgfSAjTWFpbk1lbnVfREVBTEVSU0hJUFMgPiB1bC5zdWIgPiBsaSA+IHVsIHsgbWF4LWhlaWdodDo2MHZoOyBvdmVyZmxvdy15OmF1dG87IG92ZXJmbG93LXg6aGlkZGVuOyB9IGJvZHkgLndyYXBwZXIgLnVwX21lbnUgLm5hdiA+IGxpOmhvdmVyIHVsLnN1YiBsaTpob3ZlciAuZGV0YWlscy1pbmZvLWxpbmsgbGk6aG92ZXIgYSB7IGRpc3BsYXk6aW5saW5lLWJsb2NrOyBiYWNrZ3JvdW5kLWltYWdlOm5vbmU7IGNvbG9yOiNmZmZmZmY7IGJhY2tncm91bmQtY29sb3I6IzAxNjlhYTsgfSBsaS5kZXRhaWxzLWluZm8tbGluazpob3ZlciB7IGJhY2tncm91bmQtY29sb3I6IzAxNjlhYTsgY29sb3I6I2ZmZmZmZjsgfSAubG9jYXRpb24tZGV0YWlscy1pbmZvIHVsIGxpIHsgcGFkZGluZy10b3A6NHB4OyBwYWRkaW5nLWJvdHRvbTo0cHg7IGZvbnQtd2VpZ2h0OjIwMDsgZm9udC1zaXplOjAuODc1cmVtIDsgbWFyZ2luLWJvdHRvbTo1cHg7IH0gLmxvY2F0aW9uLWRldGFpbHMtaW5mbyA+IHVsID4gbGk6YmVmb3JlIHsgY29udGVudDoiICI7IGJvcmRlcjpzb2xpZDsgYm9yZGVyLXdpZHRoOjAgMnB4IDJweCAwOyBkaXNwbGF5OmlubGluZS1ibG9jazsgcGFkZGluZzoycHg7IGJvcmRlci1yYWRpdXM6MnB4OyB0cmFuc2Zvcm06cm90YXRlKC00NWRlZyk7IC13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgtNDVkZWcpOyBtYXJnaW4tcmlnaHQ6N3B4OyBtYXJnaW4tYm90dG9tOjFweDsgfSAjTWFpbk1lbnVfREVBTEVSU0hJUFMgdWwgeyBwYWRkaW5nOjA7IH0gQG1lZGlhIHByaW50eyAudG9wcmludHsgZGlzcGxheTpibG9jazt9IH0gLm1yLTE1IHsgbWFyZ2luLXJpZ2h0OjE1cHg7IH0gLm1sLTE1IHsgbWFyZ2luLWxlZnQ6MTVweDsgfSAubWwtNyB7IG1hcmdpbi1sZWZ0OjdweDsgfSBzcGFuLmFycm93IHsgYm9yZGVyOnNvbGlkOyBib3JkZXItd2lkdGg6MCAycHggMnB4IDA7IGRpc3BsYXk6aW5saW5lLWJsb2NrOyBwYWRkaW5nOjJweDsgYm9yZGVyLXJhZGl1czoxcHg7IHBvc2l0aW9uOnJlbGF0aXZlOyB0b3A6LTJweDsgfSBzcGFuLmFycm93LmFycm93LWxhcmdlIHsgYm9yZGVyLXdpZHRoOjAgM3B4IDNweCAwOyBwYWRkaW5nOjRweDsgYm9yZGVyLXJhZGl1czozcHg7IH0gc3Bhbi5hcnJvdy5hcnJvdy1yaWdodCB7IHRyYW5zZm9ybTpyb3RhdGUoLTQ1ZGVnKTsgLXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKC00NWRlZyk7IH0gc3Bhbi5hcnJvdy5hcnJvdy1sZWZ0IHsgdHJhbnNmb3JtOnJvdGF0ZSgxMzVkZWcpOyAtd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMTM1ZGVnKTsgfSBzcGFuLmFycm93LmFycm93LXVwIHsgdHJhbnNmb3JtOnJvdGF0ZSgtMTM1ZGVnKTsgLXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKC0xMzVkZWcpOyB9IHNwYW4uYXJyb3cuYXJyb3ctZG93biB7IHRyYW5zZm9ybTpyb3RhdGUoNDVkZWcpOyAtd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoNDVkZWcpOyB9IC50b3BiYXIzYnRuV3JhcHsgYm9yZGVyLXJhZGl1czo1cHg7IGJhY2tncm91bmQtY29sb3I6I2ViMDAwMDsgYm9yZGVyOjJweCBzb2xpZCAjRDZENkQ2OyB2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7IGhlaWdodDo0MnB4OyBwYWRkaW5nOjAgMjBweDsgY29sb3I6I2ZmZmZmZjsgfSAudG9wYmFyM2J0bnsgZm9udC13ZWlnaHQ6Ym9sZDsgdHJhbnNpdGlvbjouMnM7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IHRleHQtdHJhbnNmb3JtOmNhcGl0YWxpemU7IGJvcmRlci1jb2xvcjp3aGl0ZTsgdGV4dC1hbGlnbjpjZW50ZXI7IGN1cnNvcjpwb2ludGVyOyBkaXNwbGF5OmJsb2NrOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgY29sb3I6aW5oZXJpdDsgfSAudHJhZGVJbkJhcl9idG57IGZvbnQtd2VpZ2h0OmJvbGQ7IGJvcmRlci1yYWRpdXM6NXB4OyB0ZXh0LXRyYW5zZm9ybTp2YXIoLS1jZXJ0LXR4dC10cmFuc2Zvcm0sIHZhcigtLXR4dC11cHBlcikpOyB0cmFuc2l0aW9uOi4yczsgYm9yZGVyOjJweCBzb2xpZCB0cmFuc3BhcmVudDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6d2hpdGU7IGJvcmRlci1jb2xvcjp3aGl0ZTsgdGV4dC1hbGlnbjpjZW50ZXI7IGN1cnNvcjpwb2ludGVyOyBoZWlnaHQ6NTBweDsgYmFja2dyb3VuZC1jb2xvcjojZWIwMDAwOyBjb2xvcjogI2ZmZmZmZjsgYm9yZGVyOjJweCBzb2xpZCAjRDZENkQ2OyBtaW4td2lkdGg6MjAwcHg7IG1heC13aWR0aDoyMDBweDsgfSAudHJhZGVJbkJhcl9idG46aG92ZXIsLnRvcGJhcjNidG5XcmFwOmhvdmVyeyBiYWNrZ3JvdW5kLWNvbG9yOiNmZmZmZmY7IGNvbG9yOiNlYjAwMDAhaW1wb3J0YW50OyB9ICNnUmF0aW5nTGFyZ2V7IGJhY2tncm91bmQ6IzFmMmY1MzsgY29sb3I6I2ZmZmZmZjsgYm9yZGVyOjFweCBzb2xpZCAjZmZmZmZmOyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjVweCAwcHg7IG1hcmdpbi10b3A6NXB4OyBjdXJzb3I6cG9pbnRlcjsgYm9yZGVyLXJhZGl1czozcHg7IHRleHQtYWxpZ246Y2VudGVyOyB3aWR0aDoxNTBweDsgbWFyZ2luLWxlZnQ6MzBweDsgfSAjZ1JhdGluZ3sgY3Vyc29yOnBvaW50ZXI7IH0gLnRyYWRlSW5WaW5JbnB1dHsgaGVpZ2h0OjUwcHg7IGJvcmRlci1yYWRpdXM6NXB4OyB0ZXh0LWFsaWduOmNlbnRlcjsgYm94LXNpemluZzpib3JkZXItYm94OyB3aWR0aDoxMDAlOyBmb250LXNpemU6MXJlbSA7IGNvbG9yOiMzYzM4MzY7IGJvcmRlcjoycHggc29saWQgI0Q2RDZENjsgfSAudHJhZGVJblZpbklucHV0OjpwbGFjZWhvbGRlcnsgZm9udC1zaXplOjFyZW0gOyBjb2xvcjojM2MzODM2OyB9IC50cmFkZUluT3JMYWJlbHsgbWF4LXdpZHRoOjI1cHg7IH0gI3RyYWRlSW5CYXJQb3B1cF9mb3JtVyAubml2TWFrZU1vZGVsU2VsZWN0Q29udGFpbmVyeyB3aWR0aDoxMDAlOyBwYWRkaW5nOjEycHg7IG1hcmdpbi10b3A6MTBweDsgZm9udC1zaXplOjFyZW0gOyB9ICN0cmFkZUluQmFyUG9wdXBfZm9ybVcgLm5pdk1ha2VNb2RlbFNlbGVjdENvbnRhaW5lciAubml2TWFrZU1vZGVsU2VsZWN0eyBkaXNwbGF5Om5vbmU7IH0gI3RyYWRlSW5CYXJQb3B1cF9mb3JtVyAubml2TWFrZU1vZGVsU2VsZWN0Q29udGFpbmVyIC5uaXZNYWtlTW9kZWxTZWxlY3RMYWJlbHsgZGlzcGxheTppbmxpbmUtYmxvY2s7IG1hcmdpbjowIDEycHg7IGN1cnNvcjpwb2ludGVyOyB9ICN0cmFkZUluQmFyUG9wdXBfZm9ybVcgLm5pdk1ha2VNb2RlbFNlbGVjdENvbnRhaW5lciAubml2TWFrZU1vZGVsU2VsZWN0OmNoZWNrZWQrbGFiZWx7IGJvcmRlci1ib3R0b206MnB4IHNvbGlkIGJsYWNrOyB9IC50cmFkaW5TZWxlY3RXeyBtaW4td2lkdGg6MjAwcHg7IG1heC13aWR0aDoyMDBweDsgfSAudHJhZGluU2VsZWN0Vy53aXRoVklOTWFrZXsgbWluLXdpZHRoOjE0MHB4OyBtYXgtd2lkdGg6MTQwcHg7IH0gLnRyYWRpblNlbGVjdFcud2l0aFZJTlllYXJ7IG1pbi13aWR0aDo4MHB4OyBtYXgtd2lkdGg6ODBweDsgfSAudHJhZGluSW5wdXRXeyBtaW4td2lkdGg6MjAwcHg7IG1heC13aWR0aDoyMDBweDsgfSAudHJhZGluU2VsZWN0QXsgcG9zaXRpb246cmVsYXRpdmU7IH0gLnRyYWRpblNlbGVjdEE6YWZ0ZXIgeyBjb250ZW50OiIgIjsgaGVpZ2h0OjA7IHdpZHRoOjA7IGJvcmRlci1sZWZ0OjVweCBzb2xpZCB0cmFuc3BhcmVudDsgYm9yZGVyLXJpZ2h0OjVweCBzb2xpZCB0cmFuc3BhcmVudDsgYm9yZGVyLXRvcDo1cHggc29saWQgIzAwMDAwMDsgcG9zaXRpb246YWJzb2x1dGU7IHJpZ2h0OjE0cHg7IHRvcDoxN3B4OyB0cmFuc2l0aW9uOmFsbCAwLjNzIGxpbmVhcjsgcG9pbnRlci1ldmVudHM6bm9uZTsgfSAudHJhZGluU2VsZWN0eyBjb2xvcjojM2MzODM2OyBib3JkZXI6MnB4IHNvbGlkICNENkQ2RDY7IGJvcmRlci1yYWRpdXM6NXB4OyBwYWRkaW5nOjEwcHggMTBweDsgZm9udC1zaXplOjFyZW0gOyBiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsMSk7IGJhY2tncm91bmQtcG9zaXRpb246OTUlIDUwJTsgd2lkdGg6MTAwJTsgLXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7IC1tb3otYXBwZWFyYW5jZTpub25lOyBwYWRkaW5nLXJpZ2h0OjI3cHg7IGhlaWdodDo1MHB4OyB9IC50cmFkaW5TZWxlY3Q6YWZ0ZXIgeyBjb250ZW50OiIgIjsgaGVpZ2h0OjA7IHdpZHRoOjA7IGJvcmRlci1sZWZ0OjVweCBzb2xpZCB0cmFuc3BhcmVudDsgYm9yZGVyLXJpZ2h0OjVweCBzb2xpZCB0cmFuc3BhcmVudDsgYm9yZGVyLXRvcDo1cHggc29saWQgIzAwMDAwMDsgcG9zaXRpb246YWJzb2x1dGU7IHJpZ2h0OjE0cHg7IHRvcDoxN3B4OyB0cmFuc2l0aW9uOmFsbCAwLjNzIGxpbmVhcjsgfSAubXVsdGlzZWxlY3RWZWhpY2xlT3B0aW9ucyBzcGFueyBmb250LXNpemU6MC45MzhyZW0gIWltcG9ydGFudDsgcGFkZGluZzowICFpbXBvcnRhbnQ7IG1hcmdpbjowICFpbXBvcnRhbnQ7IH0gI3RyYWRlSW5CYXJQb3B1cF9mb3JtVyAudHJhZGVJbkJhck11bHRpc2VsZWN0eyB3aWR0aDo1NjhweCFpbXBvcnRhbnQ7IGJvcmRlci1yYWRpdXM6MC4zcmVtIWltcG9ydGFudDsgYm9yZGVyLXdpZHRoOjFweCFpbXBvcnRhbnQ7IGJvcmRlci1yYWRpdXM6MC4zcmVtIWltcG9ydGFudDsgYm9yZGVyLWNvbG9yOiNhOWE5YTkhaW1wb3J0YW50OyB9IC51aS1tdWx0aXNlbGVjdC1tZW51LnRyYWRlSW5CYXJNdWx0aXNlbGVjdHsgbWluLXdpZHRoOjI3MnB4OyB6LWluZGV4OjEwMDAwMjA7IG1heC1oZWlnaHQ6MTIwcHg7IG92ZXJmbG93OnNjcm9sbDsgfSAudHJhZGVJbkJhckRlYWxlclN0ZXB7IHRleHQtYWxpZ246Y2VudGVyOyBtYXJnaW4tdG9wOjI1cHg7IH0gLnRyYWRlSW5CYXJEZWFsZXJTdGVwIC50cmFkZUluQmFyRGVhbGVyU3RlcE1ha2VNb2RlbFllYXJ7IGZvbnQtd2VpZ2h0OjcwMDsgfSAudHJhZGVJbkJhckRlYWxlclN0ZXAgc3BhbnsgbWFyZ2luOjAhaW1wb3J0YW50OyBmb250LXdlaWdodDo3MDAhaW1wb3J0YW50OyBjb2xvcjojMDAwMDAwIWltcG9ydGFudDsgfSBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6MTAyNHB4KSB7IC50cmFkaW5TZWxlY3RXIHsgbWluLXdpZHRoOmNhbGMoKDIwMHB4IC0gdmFyKC0tcykpIC0gdmFyKC0tcywgMC41cmVtKSk7IG1heC13aWR0aDpjYWxjKCgyMDBweCAtIHZhcigtLXMpKSAtIHZhcigtLXMsIDAuNXJlbSkpOyB9IH0gI2dvb2dsZVJldmlld3NGb290ZXJ7IG1hcmdpbjowIGF1dG87IGJhY2tncm91bmQtY29sb3I6I2ZmZjsgYm9yZGVyLXJhZGl1czo1cHg7IG1heC13aWR0aDo5NDBweDsgaGVpZ2h0OjI3NXB4OyB9IC5yZXZpZXctaXRlbSB7IGZsb2F0OmxlZnQ7IGhlaWdodDoxODVweDsgd2lkdGg6MTAwJTsgbWF4LXdpZHRoOjQ2MHB4OyBtYXJnaW4tcmlnaHQ6MTBweDsgYm9yZGVyLXRvcDo0cHggc29saWQgI0VCRUJFQjsgcGFkZGluZy10b3A6MTBweDsgfSAuZmlyc3RjaGFydXA6OmZpcnN0LWxldHRlcnsgdGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlOyB9IEkuaWNvbi1jb21wYXJlLTEsIHNwYW4uaWNvbi1jb21wYXJlLTF7IGNvbG9yOiNlYjAwMDA7IH0gSS5pY29uLWNvbXBhcmUtMTpob3Zlciwgc3Bhbi5pY29uLWNvbXBhcmUtMTpob3ZlcnsgY29sb3I6I2ZmZmZmZiAhaW1wb3J0YW50OyB0ZXh0LXNoYWRvdzojZWIwMDAwIDFweCAxcHgsICNlYjAwMDAgLTFweCAxcHgsICNlYjAwMDAgLTFweCAtMXB4LCAjZWIwMDAwIDFweCAtMXB4OyBib3JkZXItcmFkaXVzOjIwcHg7IGJhY2tncm91bmQtY29sb3I6I2ViMDAwMDsgfSAuZ1JhdGluZy1pY29uIGkgeyBmb250LXNpemU6MS4wNjNyZW0gOyB9IC5nUmF0aW5nLWljb24jZ1JhdGluZyB7IGRpc3BsYXk6ZmxleDsgYWxpZ24taXRlbXM6Y2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOyB3aWR0aDo5MHB4OyBoZWlnaHQ6MjhweDsgYmFja2dyb3VuZC1jb2xvcjojMWYyZjUzOyBjb2xvcjp3aGl0ZTsgY29sb3I6I2ZmZmZmZjsgY29sb3I6I2ZmZmZmZjsgZ2FwOjdweDsgfSAuZ1JhdGluZy1pbWcjZ1JhdGluZyB7IGJhY2tncm91bmQtaW1hZ2U6dXJsKC9pbWFnZXMvZ3JhdGluZy5wbmcpOyBjb2xvcjojMzU2Q0YyOyB3aWR0aDo5NXB4OyBoZWlnaHQ6MjhweDsgcGFkZGluZzo0cHggMzFweCAxMHB4IDEwcHg7IG1hcmdpbi10b3A6MXB4OyB9ICNnUmF0aW5neyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IGZvbnQtc2l6ZToxLjA2M3JlbSA7IGZvbnQtd2VpZ2h0OmJvbGQ7IGRpc3BsYXk6YmxvY2s7IH0gSU5QVVRbdHlwZT0idGV4dCJdLnZhbGlkaXR5LWVycm9uZW91c3sgYm9yZGVyOjFweCBzb2xpZCAjZGMzNTQ1OyBiYWNrZ3JvdW5kLWNvbG9yOiNmYWQ2ZGMgIWltcG9ydGFudDsgfSBJTlBVVFt0eXBlPSJ0ZWwiXS52YWxpZGl0eS1lcnJvbmVvdXN7IGJvcmRlcjoxcHggc29saWQgI2RjMzU0NTsgYmFja2dyb3VuZC1jb2xvcjojZmFkNmRjICFpbXBvcnRhbnQ7IH0gSU5QVVRbdHlwZT0iZW1haWwiXS52YWxpZGl0eS1lcnJvbmVvdXN7IGJvcmRlcjoxcHggc29saWQgI2RjMzU0NTsgYmFja2dyb3VuZC1jb2xvcjojZmFkNmRjICFpbXBvcnRhbnQ7IH0gSU5QVVRbdHlwZT0icGFzc3dvcmQiXS52YWxpZGl0eS1lcnJvbmVvdXN7IGJvcmRlcjoxcHggc29saWQgI2RjMzU0NTsgYmFja2dyb3VuZC1jb2xvcjojZmFkNmRjICFpbXBvcnRhbnQ7IH0gSDEuZGVmYXVsdHsgZm9udC1zaXplOjEuODc1cmVtIDsgY29sb3I6IzAwMDAwMDsgZm9udC13ZWlnaHQ6bm9ybWFsOyBjbGVhcjpib3RoOyBwYWRkaW5nOjAgMCAyNXB4IDA7IH0gSDEuZGVmYXVsdCBBeyB0ZXh0LWRlY29yYXRpb246bm9uZTsgfSBIMS5kZWZhdWx0IEkuaWNvbiwgSDEuZGVmYXVsdCBzcGFuLmljb24geyBib3JkZXItcmFkaXVzOjMwcHg7IHdpZHRoOjIzcHg7IGhlaWdodDoyOXB4OyBwYWRkaW5nLXRvcDo0cHg7IHBhZGRpbmctbGVmdDoxMHB4OyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MS41NjNyZW0gOyBtYXJnaW4tcmlnaHQ6MTBweDsgYm9yZGVyOjFweCBzb2xpZCAjZmZmZmZmOyBjb2xvcjojZmZmZmZmOyBiYWNrZ3JvdW5kLWNvbG9yOiMxZjJmNTM7IGJveC1zaXppbmc6Y29udGVudC1ib3g7IH0gSDEuZGVmYXVsdCBJLmljb24ubXVsdGlMaW5lSDEsIEgxLmRlZmF1bHQgc3Bhbi5pY29uLm11bHRpTGluZUgxeyBtYXJnaW4tdG9wOjEwcHg7IH0gSDEuZGVmYXVsdCBJLmljb24uc2luZ2xlTGluZUgxLCBIMS5kZWZhdWx0IHNwYW4uaWNvbi5zaW5nbGVMaW5lSDF7IG1hcmdpbi10b3A6MnB4OyB9IEgxLmRlZmF1bHQgPiBESVZ7IGRpc3BsYXk6dGFibGUtcm93OyB9IEgxLmRlZmF1bHQgPiBESVYgRElWOm50aC1jaGlsZCgxKXsgZm9udC13ZWlnaHQ6Ym9sZDsgfSBIMS5kZWZhdWx0ID4gRElWIERJVjpudGgtY2hpbGQoMil7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgY29sb3I6Izc1NzU3NTsgZm9udC1zaXplOjEuMTI1cmVtIDsgfSBIMS5kZWZhdWx0ID4gRElWIERJVjpudGgtY2hpbGQoMyl7IGZvbnQtc2l6ZTowLjhyZW07IGZvbnQtc2l6ZTowLjhyZW07IGNvbG9yOiNiYmI7IHBhZGRpbmctdG9wOjVweDsgfSBoMS5ja2VkaXRvci1kZWZhdWx0IHsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zaXplOjIuMTI1cmVtIDsgcGFkZGluZzowIDAgMTVweCAwOyBjb2xvcjojMDAwMDAwOyB9IGgxLmNrZWRpdG9yLWRlZmF1bHQ6OmJlZm9yZSB7IGNvbnRlbnQ6IlxmMDU0IjsgZm9udC1mYW1pbHk6Rm9udEF3ZXNvbWU7IHdpZHRoOjI4cHg7IGhlaWdodDozNXB4OyBtYXJnaW4tcmlnaHQ6MTBweDsgcGFkZGluZzo0cHggMCAwIDExcHg7IGJvcmRlci1yYWRpdXM6NDFweDsgZm9udC1zaXplOjEuOTM4cmVtIDsgZmxvYXQ6bGVmdDsgYm9yZGVyOjFweCBzb2xpZCAjZmZmZmZmOyBjb2xvcjojZmZmZmZmOyBiYWNrZ3JvdW5kLWNvbG9yOiMxZjJmNTM7IH0gSDIuZGVmYXVsdHsgZm9udC1zaXplOjEuNXJlbSA7IGNvbG9yOiMwMDAwMDA7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgY2xlYXI6Ym90aDsgcGFkZGluZzoxMHB4IDA7IG1hcmdpbi10b3A6MTBweDsgfSBIMi5kZWZhdWx0IEkuaWNvbiwgSDIuZGVmYXVsdCBzcGFuLmljb257IGJvcmRlci1yYWRpdXM6MzBweDsgd2lkdGg6MjBweDsgaGVpZ2h0OjI1cHg7IHBhZGRpbmctdG9wOjRweDsgcGFkZGluZy1sZWZ0OjlweDsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjEuMzc1cmVtIDsgbWFyZ2luLXJpZ2h0OjEwcHg7IGJvcmRlcjoxcHggc29saWQgI2ZmZmZmZjsgY29sb3I6I2ZmZmZmZjsgYmFja2dyb3VuZC1jb2xvcjojMWYyZjUzOyB9IEgyLmRlZmF1bHQgSS5pY29uLm11bHRpTGluZUgyLCBIMi5kZWZhdWx0IHNwYW4uaWNvbi5tdWx0aUxpbmVIMnsgbWFyZ2luLXRvcDo3cHg7IH0gSDIuZGVmYXVsdCBJLmljb24uc2luZ2xlTGluZUgyLCBIMi5kZWZhdWx0IHNwYW4uaWNvbi5zaW5nbGVMaW5lSDJ7IG1hcmdpbi10b3A6MHB4OyB9IEgyLmRlZmF1bHQgPiBESVZ7IGRpc3BsYXk6dGFibGUtcm93OyB9IEgyLmRlZmF1bHQgPiBESVYgRElWOm50aC1jaGlsZCgxKXsgZm9udC13ZWlnaHQ6Ym9sZDsgfSBIMi5kZWZhdWx0LmNyZWRzaWlVc2VkTWluSGVpZ2h0IC5UaXRsZVRleHQgeyB3aWR0aDo4MCU7IH0gSDIuZGVmYXVsdCA+IERJViBESVY6bnRoLWNoaWxkKDIpeyBmb250LXdlaWdodDpub3JtYWw7IGNvbG9yOiM3NTc1NzU7IGZvbnQtc2l6ZTowLjkzOHJlbSA7IH0gQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOjEzMDFweCkgeyBib2R5LmlzRnVsbFdpZHRoUGFnZS5pc1BhZ2VGdWxsV2lkdGhFbmFibGVkICNmaXJzdFNsaWRlckltZyAucGxhY2Vob2xkZXJ7IHdpZHRoOjgwMHB4OyBoZWlnaHQ6NjAwcHg7IH0gYm9keS5pc0Z1bGxXaWR0aFBhZ2UuaXNQYWdlRnVsbFdpZHRoRW5hYmxlZCAjZmlyc3RTbGlkZXJJbWcgSU1HeyBtYXgtd2lkdGg6ODAwcHg7IG1heC1oZWlnaHQ6NjAwcHg7IH0gQk9EWS5pc0Z1bGxXaWR0aFBhZ2UuaXNQYWdlRnVsbFdpZHRoRW5hYmxlZCBIMS5kZWZhdWx0IHsgfSBCT0RZLmlzRnVsbFdpZHRoUGFnZS5pc1BhZ2VGdWxsV2lkdGhFbmFibGVkIEgxLmRlZmF1bHQgPiBESVYgRElWOm50aC1jaGlsZCgyKXsgZm9udC1zaXplOjEuNDM4cmVtIDsgfSBCT0RZLmlzRnVsbFdpZHRoUGFnZS5pc1BhZ2VGdWxsV2lkdGhFbmFibGVkIEgxLmRlZmF1bHQgSS5pY29uLCBCT0RZLmlzRnVsbFdpZHRoUGFnZS5pc1BhZ2VGdWxsV2lkdGhFbmFibGVkIEgxLmRlZmF1bHQgc3Bhbi5pY29uIHsgd2lkdGg6MjhweDsgaGVpZ2h0OjM1cHg7IGZvbnQtc2l6ZToxLjkzOHJlbSA7IHBhZGRpbmctbGVmdDoxMXB4OyBib3JkZXItcmFkaXVzOjQxcHg7IH0gQk9EWS5pc0Z1bGxXaWR0aFBhZ2UuaXNQYWdlRnVsbFdpZHRoRW5hYmxlZCBIMS5kZWZhdWx0IEkuaWNvbi5tdWx0aUxpbmVIMSwgQk9EWS5pc0Z1bGxXaWR0aFBhZ2UuaXNQYWdlRnVsbFdpZHRoRW5hYmxlZCBIMS5kZWZhdWx0IHNwYW4uaWNvbi5tdWx0aUxpbmVIMXsgbWFyZ2luLXRvcDoxMXB4OyB9IEJPRFkuaXNGdWxsV2lkdGhQYWdlLmlzUGFnZUZ1bGxXaWR0aEVuYWJsZWQgSDEuZGVmYXVsdCBJLmljb24uc2luZ2xlTGluZUgxLCBCT0RZLmlzRnVsbFdpZHRoUGFnZS5pc1BhZ2VGdWxsV2lkdGhFbmFibGVkIEgxLmRlZmF1bHQgc3Bhbi5pY29uLnNpbmdsZUxpbmVIMXsgbWFyZ2luLXRvcDoxcHg7IH0gQk9EWS5pc0Z1bGxXaWR0aFBhZ2UuaXNQYWdlRnVsbFdpZHRoRW5hYmxlZCBIMi5kZWZhdWx0IHsgZm9udC1zaXplOjEuODc1cmVtIDsgfSBCT0RZLmlzRnVsbFdpZHRoUGFnZS5pc1BhZ2VGdWxsV2lkdGhFbmFibGVkIEgyLmRlZmF1bHQgPiBESVYgRElWOm50aC1jaGlsZCgyKXsgZm9udC1zaXplOjEuMTg4cmVtIDsgfSBCT0RZLmlzRnVsbFdpZHRoUGFnZS5pc1BhZ2VGdWxsV2lkdGhFbmFibGVkIEgyLmRlZmF1bHQuY3JlZHNpaVVzZWRNaW5IZWlnaHQgLlRpdGxlVGV4dCB7IHdpZHRoOjkwJTsgfSBCT0RZLmlzRnVsbFdpZHRoUGFnZS5pc1BhZ2VGdWxsV2lkdGhFbmFibGVkIEgyLmRlZmF1bHQgSS5pY29uLm11bHRpTGluZUgyLCBCT0RZLmlzRnVsbFdpZHRoUGFnZS5pc1BhZ2VGdWxsV2lkdGhFbmFibGVkIEgyLmRlZmF1bHQgc3Bhbi5pY29uLm11bHRpTGluZUgyeyBtYXJnaW4tdG9wOjExcHg7IH0gQk9EWS5pc0Z1bGxXaWR0aFBhZ2UuaXNQYWdlRnVsbFdpZHRoRW5hYmxlZCBIMi5kZWZhdWx0IEkuaWNvbi5zaW5nbGVMaW5lSDIsIEJPRFkuaXNGdWxsV2lkdGhQYWdlLmlzUGFnZUZ1bGxXaWR0aEVuYWJsZWQgSDIuZGVmYXVsdCBzcGFuLmljb24uc2luZ2xlTGluZUgyeyBtYXJnaW4tdG9wOjRweDsgfSB9ICNjaXR5VGl0bGUge2NvbG9yOiMwMDAwMDA7fSAubWFpbl9sZWZ0X2JveCB7IGNvbG9yOiMwMDAwMDA7IH0gLmRpdlRhYmxlIHsgZGlzcGxheTp0YWJsZTsgfSAuZGl2VGFibGUuYWxpZ24tY2VudGVyIHsgbWFyZ2luOjAgYXV0bzsgfSAuZGl2VGFibGUgLmZvcm1zX2JveDIyLCAuZGl2VGFibGUgZm9ybVtuYW1lPSJzZW5kRW1haWxGb3JtIl0geyB3aWR0aDo5NDBweDsgfSAuZGl2VGFibGUgLnRleHQzMCB7IHdpZHRoOjEwMCU7IH0gLnNlcnZpY2UtdGl0bGUgeyBtYXJnaW4tdG9wOjIwcHg7IH0gLmZ1bGxXaWR0aEZvcm0gLmZvcm1zX2JveDIyIHsgd2lkdGg6MTAwJTsgbWFyZ2luLWxlZnQ6MDsgbWFyZ2luLXJpZ2h0OjA7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgfSAuZnVsbFdpZHRoRm9ybSAudGV4dDMwIHsgd2lkdGg6MTAwJTsgfSAuZm9ybS1ncm91cCB7IG1hcmdpbi1ib3R0b206MTVweDsgfSAuaW5saW5lLWZvcm0tZ3JvdXAgeyBkaXNwbGF5OmlubGluZS1ibG9jazsgfSAuZm9ybS1ncm91cCBsYWJlbCB7IGRpc3BsYXk6aW5saW5lLWJsb2NrOyBtYXgtd2lkdGg6MTAwJTsgbWFyZ2luLWJvdHRvbTo1cHg7IGZvbnQtd2VpZ2h0OjcwMDsgfSAuZGl2U2VhcmNoTXNnIHsgZm9udC1zaXplOjAuOXJlbTsgbWFyZ2luOjIwcHggMCAwIDA7IHBhZGRpbmc6MTVweDsgYmFja2dyb3VuZC1jb2xvcjojZjdmN2Y3OyBib3JkZXItcmFkaXVzOjVweDsgY2xlYXI6Ym90aDsgfSAuY3JlZHNpaU5ldyB7IGRpc3BsYXk6YmxvY2s7IG1heC13aWR0aDo0NzBweDsgbWluLXdpZHRoOjMwMHB4OyB3aWR0aDoxMDAlOyBjdXJzb3I6cG9pbnRlcjsgb3ZlcmZsb3c6aGlkZGVuOyBoZWlnaHQ6YXV0bzsgcG9zaXRpb246YWJzb2x1dGU7IHRvcDowOyByaWdodDowOyB9IC5jcmVkc2lpTmV3VkRQIHsgZGlzcGxheTpibG9jazsgbWF4LXdpZHRoOjM1MHB4OyBtaW4td2lkdGg6MzAwcHg7IHdpZHRoOjEwMCU7IGN1cnNvcjpwb2ludGVyOyBvdmVyZmxvdzpoaWRkZW47IGhlaWdodDphdXRvOyBwb3NpdGlvbjpyZWxhdGl2ZTsgdG9wOjA7IHJpZ2h0OjA7IH0gLmNyZWRzaWlVc2VkTWluSGVpZ2h0IHsgbWluLWhlaWdodDoxMzBweDsgfSAuY3JlZHNpaUZpbmFuY2UgeyBkaXNwbGF5OmJsb2NrOyBtYXgtd2lkdGg6OTYwcHg7IG1pbi13aWR0aDozMDBweDsgd2lkdGg6MTAwJTsgY3Vyc29yOnBvaW50ZXI7IG92ZXJmbG93OmhpZGRlbjsgcG9zaXRpb246cmVsYXRpdmU7IGhlaWdodDoxMjVweDsgbWFyZ2luLXRvcDoxNXB4OyB9IC5jcmVkc2lpRmluYW5jZSAuY3JlZHNpaS13aWRnZXQtY29udGFpbmVyeyBtYXgtd2lkdGg6MTAwJSFpbXBvcnRhbnQ7IH0gLmNyZWRzaWlGaW5hbmNlTWVudSB7IGRpc3BsYXk6YmxvY2s7IG1heC13aWR0aDozNDVweDsgbWluLXdpZHRoOjMwMHB4OyB3aWR0aDoxMDAlOyBjdXJzb3I6cG9pbnRlcjsgb3ZlcmZsb3c6aGlkZGVuOyBoZWlnaHQ6YXV0bzsgcG9zaXRpb246cmVsYXRpdmU7IHRvcDowOyByaWdodDowOyB9IC5jcmVkc2lpRGl2IC5jcmVkc2lpRmluYW5jZU1lbnUgeyBtYXgtd2lkdGg6Mzc1cHg7IH0gLmNyZWRzaWlGaW5hbmNlTWVudSAuY3JlZHNpaS13aWRnZXR7IGJvcmRlcjowOyB9IC5wcm9tby1jYXJkIHsgcG9zaXRpb246cmVsYXRpdmU7IGhlaWdodDphdXRvOyBtYXJnaW4tYm90dG9tOjEwcHg7IGJhY2tncm91bmQtY29sb3I6I2YxZjFmMTsgcGFkZGluZzoyMHB4OyBvdmVyZmxvdzpoaWRkZW47IH0gLnByb21vLWJvZHkgLnBpY19ib3gyIHsgbWluLWhlaWdodDoxMzBweDsgfSAucHJvbW8taG92ZXIgeyBwb3NpdGlvbjphYnNvbHV0ZTsgbGVmdDowOyB0b3A6MDsgd2lkdGg6MTAwJTsgaGVpZ2h0OjEwMCU7IC13ZWJraXQtdHJhbnNpdGlvbjphbGwgMC4zczsgLW1vei10cmFuc2l0aW9uOmFsbCAwLjNzOyAtbXMtdHJhbnNpdGlvbjphbGwgMC4zczsgLW8tdHJhbnNpdGlvbjphbGwgMC4zczsgdHJhbnNpdGlvbjphbGwgMC4zczsgb3BhY2l0eTowOyB9IC5wcm9tby1ib2R5OmhvdmVyIC5wcm9tby1ob3ZlciB7IG9wYWNpdHk6MTsgfSAucHJvbW8tYm9keTpob3ZlciAucHJvbW8taW5mbyB7IHRyYW5zZm9ybTp0cmFuc2xhdGVZKC01MCUpIHNjYWxlKDEsMSk7IH0gLnByb21vLW1hc2sgeyBwb3NpdGlvbjphYnNvbHV0ZTsgdG9wOjA7IGxlZnQ6MDsgd2lkdGg6MTAwJTsgaGVpZ2h0OjEwMCU7IGJhY2tncm91bmQ6cmdiYSgwLDAsMCwwLjUpOyB9IC5wcm9tby1pbmZvIHsgcG9zaXRpb246YWJzb2x1dGU7IGxlZnQ6MDsgcmlnaHQ6MDsgdG9wOjUwJTsgd2lkdGg6MzUlOyBtYXJnaW46YXV0bzsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjI1cHg7IC1tb3otYm9yZGVyLXJhZGl1czoyNXB4OyBib3JkZXItcmFkaXVzOjI1cHg7IC13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTE1MCUpIHNjYWxlKDAsMCk7IC1tb3otdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTE1MCUpIHNjYWxlKDAsMCk7IC1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMTUwJSkgc2NhbGUoMCwwKTsgLW8tdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTE1MCUpIHNjYWxlKDAsMCk7IHRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xNTAlKSBzY2FsZSgwLDApOyAtd2Via2l0LWJveC1zaGFkb3c6MCAwIDEwcHggNXB4IHJiZ2EoMCwwLDAsMC4yKTsgLW1vei1ib3gtc2hhZG93OjAgMCAxMHB4IDVweCByYmdhKDAsMCwwLDAuMik7IGJveC1zaGFkb3c6MCAwIDEwcHggNXB4IHJiZ2EoMCwwLDAsMC4yKTsgLXdlYmtpdC10cmFuc2l0aW9uOmFsbCAwLjNzOyAtbW96LXRyYW5zaXRpb246YWxsIDAuM3M7IC1tcy10cmFuc2l0aW9uOmFsbCAwLjNzOyAtby10cmFuc2l0aW9uOmFsbCAwLjNzOyB0cmFuc2l0aW9uOmFsbCAwLjNzOyB9IC5mb3JtLWVuZCB7IGRpc3BsYXk6ZmxleDsganVzdGlmeS1jb250ZW50OmNlbnRlcjsgYWxpZ24taXRlbXM6Y2VudGVyOyB9IC5mb3JtLWVuZCAuYnRuLXdyYXBwZXIgeyBtYXJnaW46MCBhdXRvOyB9IC5mb3JtLWVuZCAuZW1wdHktc3BhY2UgeyBtYXJnaW46YXV0bzsgfSAuZm9ybS1lbmQgLnByb21vLWJ0biB7IHBvc2l0aW9uOmluaXRpYWw7IH0gLmZvcm0tZW5kIC5wcmludCB7IG1hcmdpbi1sZWZ0OmF1dG87IHdpZHRoOmluaXRpYWw7IH0gLnByb21vLWJ0biB7IHBhZGRpbmc6MTBweCAxMHB4IDEwcHggMTBweDsgd2lkdGg6MTAwJTsgYmFja2dyb3VuZC1jb2xvcjp3aGl0ZTsgYm9yZGVyOjFweCBzb2xpZDsgdGV4dC10cmFuc2Zvcm06dmFyKC0tY2VydC10eHQtdHJhbnNmb3JtLCB2YXIoLS10eHQtdXBwZXIpKTsgZm9udC13ZWlnaHQ6bm9ybWFsOyBwb3NpdGlvbjphYnNvbHV0ZTsgdGV4dC1hbGlnbjpjZW50ZXI7IHRleHQtZGVjb3JhdGlvbjpub25lOyBib3JkZXItY29sb3I6dmFyKC0tcHJvbW8tYnRuLXRleHQtY29sb3IpOyBjb2xvcjp2YXIoLS1wcm9tby1idG4tdGV4dC1jb2xvcik7IGJhY2tncm91bmQtY29sb3I6dmFyKC0tcHJvbW8tYnRuLWNvbG9yKTsgYm9yZGVyLXJhZGl1czp2YXIoLS1wcm9tby1idG4tYm9yZGVyLXJhZGl1cyk7IHRyYW5zaXRpb246MC4yNXM7IH0gLnByb21vcyB7IGJhY2tncm91bmQ6I2YxZjFmMTsgYm9yZGVyLXJhZGl1czo1cHg7IGJveC1zaGFkb3c6MCAwIDEwcHggMXB4IHJnYmEoMCwwLDAsMC4yKTsgcG9zaXRpb246cmVsYXRpdmU7IGN1cnNvcjpkZWZhdWx0OyBtYXJnaW46MTJweCAxMHB4OyBkaXNwbGF5OiBncmlkOyBncmlkLXJvdzpzcGFuIDg7IGdyaWQtY29sdW1uOnNwYW4gMTsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOnN1YmdyaWQ7IGdyaWQtdGVtcGxhdGUtcm93czpzdWJncmlkOyB9IC5wcm9tb3MgLmhlYWRlciB7IGdyaWQtYXJlYTpoZWFkZXI7IH0gI3NlcnZpY2UgLnByb21vcyAucHJvbW8tY29udGVudHsgZGlzcGxheTpibG9jazsgZ3JpZC1yb3c6YXV0bzsgfSAucHJvbW9zIC5wcm9tby1jb250ZW50IHsgZ3JpZC1hcmVhOmNvbnRlbnQ7IGRpc3BsYXk6Z3JpZDsgZ3JpZC10ZW1wbGF0ZS1yb3dzOnN1YmdyaWQ7IGdyaWQtcm93OjIgLyA3OyB9IC5wcm9tb3MgLnByb21vLWZvb3RlciB7IGdyaWQtYXJlYTpmb290ZXI7IHBhZGRpbmc6MCAxNXB4IDE1cHggMTVweDsgfSAucHJvbW9zOmhvdmVyIC5wcm9tby1idG4sIC5wcm9tby1idG46aG92ZXIgeyBjb2xvcjp2YXIoLS1wcm9tby1idG4taG92ZXItdGV4dC1jb2xvcik7IGJhY2tncm91bmQtY29sb3I6dmFyKC0tcHJvbW8tYnRuLWhvdmVyLWJnLWNvbG9yKTsgYm9yZGVyLWNvbG9yOnZhcigtLXByb21vLWJ0bi1ob3Zlci10ZXh0LWNvbG9yKTsgfSAucHJvbW9zIC5wcm9tby1idG4geyB3aWR0aDppbmhlcml0OyBwb3NpdGlvbjppbml0aWFsOyBkaXNwbGF5OmJsb2NrOyBwYWRkaW5nOjE1cHggNDVweDsgfSAucHJvbW9zLnByb21vLXNtYWxsIC5wcm9tby1idG4geyBwYWRkaW5nOjEwcHggMjVweDsgfSAucHJvbW8tYnJlYWsgeyBib3JkZXItdG9wOjFweCBzb2xpZCAjYWJhYmFiOyBwYWRkaW5nLXRvcDoxMHB4OyBtYXJnaW46MTVweCAwOyB9IC5wcm9tby1pbWFnZSwgLnByb21vLWRldGFpbHMtaW1hZ2UgeyBvdmVyZmxvdzpoaWRkZW47IC13ZWJraXQtYm9yZGVyLXJhZGl1czo1cHggNXB4IDAgMDsgLW1vei1ib3JkZXItcmFkaXVzOjVweCA1cHggMCAwOyBib3JkZXItcmFkaXVzOjVweCA1cHggMCAwOyBkaXNwbGF5OmZsZXg7IGFsaWduLWl0ZW1zOmNlbnRlcjsgYmFja2dyb3VuZC1zaXplOmNvbnRhaW47IGJhY2tncm91bmQtcG9zaXRpb246Y2VudGVyOyBiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7IGFzcGVjdC1yYXRpbzp2YXIoLS1wcm9tby1pbWctcmF0aW8sIG5vbmUpOyB9IC5wcm9tby1kZXRhaWxzLWltYWdleyB3aWR0aDoxMDAlOyB9IC5wcm9tb3M6aG92ZXIgLnByb21vLWltYWdlIGltZyB7IC13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDEuMSk7IC1tb3otdHJhbnNmb3JtOnNjYWxlKDEuMSk7IC1tcy10cmFuc2Zvcm06c2NhbGUoMS4xKTsgLW8tdHJhbnNmb3JtOnNjYWxlKDEuMSk7IHRyYW5zZm9ybTpzY2FsZSgxLjEpOyB9IC5wcm9tby1pbWFnZSBpbWcgeyBtYXgtd2lkdGg6MTAwJTsgdHJhbnNpdGlvbjp0cmFuc2Zvcm0gMXM7IGRpc3BsYXk6dGFibGUtY2VsbDsgbWFyZ2luOjAgYXV0bzsgfSAucHJvbW8tYm9keSB7IHBhZGRpbmc6MTVweDsgcG9zaXRpb246cmVsYXRpdmU7IH0gLnByb21vLWJvZHkuZ3JpZCB7IGRpc3BsYXk6Z3JpZDsgaGVpZ2h0OjEwMCU7IGdyaWQtdGVtcGxhdGUtcm93czoxZnIgM2ZyOyB9IC5wcm9tby1ib2R5LmdyaWQgLnByb21vLWNhcHRpb24uaGVhZGVyIHsgZGlzcGxheTpncmlkOyBncmlkLXRlbXBsYXRlLXJvd3M6MWZyIGF1dG87IH0gLnByb21vLWNvbnRlbnQucGFkZGVkIHsgcGFkZGluZzoxNXB4OyB9IC5wcm9tby1kZXNjIHsgZGlzcGxheTpub25lOyB9IC5wcm9tby10aXRsZSB7IGZvbnQtc2l6ZToxLjVyZW0gOyBkaXNwbGF5OmJsb2NrOyBmb250LXdlaWdodDo2MDA7IGNvbG9yOiMzMzMzMzM7IG1pbi1oZWlnaHQ6NzhweDsgfSAucHJvbW8tbWVkaXVtIC5wcm9tby10aXRsZSB7IG1pbi1oZWlnaHQ6ODdweDsgfSAucHJvbW8tc21hbGwgLnByb21vLXRpdGxlIHsgZm9udC1zaXplOjEuMjVyZW0gOyB9IC5wcm9tby1jYXB0aW9uIHsgY29sb3I6IzMzMzMzMzsgfSAucHJvbW8tY2FwdGlvbjpub3QoOmxhc3QtY2hpbGQpIHsgbWFyZ2luLWJvdHRvbToxMHB4OyB9IC5wcm9tby1vZmZlciAucHJvbW8tdGl0bGUgeyBtaW4taGVpZ2h0OjA7IH0gLnByb21vLXN1YmNhcHRpb24geyBtYXJnaW4tdG9wOjVweDsgZm9udC1zaXplOjAuODc1cmVtOyB9IC5wcm9tby1zdWJjYXB0aW9uLnN1YmhlYWRpbmcuLW1oIHsgbWluLWhlaWdodDozMXB4OyB9IC5wcm9tby1zdWJjYXB0aW9uLmRlc2NyaXB0aW9uLi1taCB7IG1pbi1oZWlnaHQ6NDhweDsgfSAucHJvbW8tZGlzbGNhaW1lciB7IGZvbnQtc2l6ZTowLjc1cmVtOyB9IC5wcm9tby1saW5rcyB7IGRpc3BsYXk6ZmxleDsganVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47IGFsaWduLWl0ZW1zOmNlbnRlcjsgfSAucHJvbW8tbGluay1pdGVtIC5wcmludCB7IHdpZHRoOmF1dG87IHRleHQtYWxpZ246cmlnaHQ7IH0gLnByb21vcy1jb250YWluZXIuZ3JpZCB7IHBvc2l0aW9uOnJlbGF0aXZlOyBkaXNwbGF5OmdyaWQ7IH0gLnByb21vcy1jb250YWluZXIgLmZhLWFycm93LWRvd24tdG8tbGluZSB7IGZvbnQtc2l6ZToycmVtOyBjb2xvcjojMDAwMDAwOyBwb3NpdGlvbjphYnNvbHV0ZTsgbGVmdDo1MCU7IHRvcDo1MCU7IGJhY2tncm91bmQ6I2ZmZmZmZjsgcGFkZGluZzo2cHg7IGJvcmRlci1yYWRpdXM6NXB4OyBib3gtc2hhZG93OjAgMCAxMHB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMik7IHRyYW5zaXRpb246YWxsIDAuMjVzIGVhc2Utb3V0OyB9IC5wcm9tb3MtY29udGFpbmVyLmdyaWQucHJvbW8tbWVkaXVtIHsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOnJlcGVhdCgyLCAxZnIpOyB9IC5wcm9tb3MtY29udGFpbmVyLmdyaWQucHJvbW8tc21hbGwgeyBncmlkLXRlbXBsYXRlLWNvbHVtbnM6cmVwZWF0KDMsIDFmcik7IH0gLnByb21vcy1jb250YWluZXIuZ3JpZC5jb2xsYXBzZSB7IGhlaWdodDoxNDJweDsgb3ZlcmZsb3c6aGlkZGVuOyB9IC5wcm9tb3MtY29udGFpbmVyLmdyaWQuY29sbGFwc2U6OmJlZm9yZSB7IGNvbnRlbnQ6IiI7IHBvc2l0aW9uOmFic29sdXRlOyBoZWlnaHQ6MTAwJTsgei1pbmRleDoxMDsgbGVmdDoxMHB4OyByaWdodDoxMHB4OyB0b3A6MTBweDsgYm9yZGVyLXJhZGl1czo1cHggNXB4IDAgMDsgYmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMGRlZywgcmdiKDAgMCAwIC8gMzAlKSAwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwKSAxMDAlKSB9IC5wcm9tb3MtY29udGFpbmVyLmdyaWQuY29sbGFwc2U6aG92ZXI6OmJlZm9yZSB7IGJhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDBkZWcsIHJnYigxMzggMTM4IDEzOCAvIDMwJSkgMCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMCkgMTAwJSk7IGN1cnNvcjpwb2ludGVyOyB9IC5wcm9tb3MtY29udGFpbmVyLmdyaWQuY29sbGFwc2U6aG92ZXIgLmZhLWFycm93LWRvd24tdG8tbGluZSB7IHRvcDo1NSU7IGNvbG9yOiM4MzgzODM7IH0gLmJhbm5lci1mb3JtIHsgcG9zaXRpb246cmVsYXRpdmU7IGRpc3BsYXk6dGFibGU7IG1hcmdpbjowIGF1dG87IH0gLmJhbm5lci1mb3JtIC5NYWluQm94TGF5ZXIgeyBwb3NpdGlvbjphYnNvbHV0ZTsgei1pbmRleDoxMDsgbGVmdDowOyByaWdodDowOyB0b3A6MDsgZGlzcGxheTp0YWJsZS1jZWxsOyBoZWlnaHQ6MTAwJTsgfSAuYmFubmVyLWZvcm0tYm94IHsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjVweDsgLW1vei1ib3JkZXItcmFkaXVzOjVweDsgYm9yZGVyLXJhZGl1czo1cHg7IHBvc2l0aW9uOmFic29sdXRlOyByaWdodDowOyBtYXgtd2lkdGg6MzUwcHg7IHdpZHRoOjEwMCU7IG1hcmdpbi10b3A6MzVweDsgfSBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6MTMwMXB4KSB7IC5NYWluQm94TGF5ZXIgLmJhbm5lci1mb3JtLWJveCB7IHRvcDo1MCU7IC13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSk7IC1tb3otdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSk7IC1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtNTAlKTsgLW8tdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSk7IHRyYW5zZm9ybTp0cmFuc2xhdGVZKC01MCUpOyBtYXJnaW4tdG9wOjA7IH0gfSBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6MTMwMXB4KSB7IC5iYW5uZXItZm9ybSAuYmFubmVyLWZvcm0tYm94IHsgcGFkZGluZzoxNXB4OyBtYXgtd2lkdGg6MjcwcHg7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IH0gLmJhbm5lci1mb3JtICNiYW5uZXJGb3JtIC5mb3JtLWNvbnRyb2wgeyBwYWRkaW5nOjRweCA4cHg7IGhlaWdodDozMHB4OyBtYXJnaW4tYm90dG9tOjEycHg7IH0gLmJhbm5lci1mb3JtIC5iYW5uZXItZm9ybS10aXRsZSB7IGZvbnQtc2l6ZToxNXB0OyB9IC5iYW5uZXItZm9ybSAuYmFubmVyLWZvcm0tc3VidGl0bGUgeyBmb250LXNpemU6MTFwdDsgfSAuYmFubmVyLWZvcm0gLmJ0bi5iYW5uZXItYnRuIHsgcGFkZGluZzo0cHggMTJweDsgfSB9IC5vdGhlckxvZ29NZW51Q29udGFpbmVyeyBmbG9hdDpsZWZ0OyB9IC5vdGhlckxvZ29NZW51Q29udGFpbmVyUmlnaHR7IGZsb2F0OnJpZ2h0OyB9IC5vdGhlckxvZ29NZW51SW1hZ2V7IG1heC13aWR0aDoyNTBweDsgbWF4LWhlaWdodDoxMDBweDsgfSAuY3RhYm94LS13cmFwcGVyIHsgY2xlYXI6Ym90aDsgcGFkZGluZzowLjc1cmVtIDA7IGJhY2tncm91bmQ6I2ZmZmZmZjsgfSAuY3RhYm94LS10YWJsZSB7IHdpZHRoOjg1JSFpbXBvcnRhbnQ7IG1heC13aWR0aDoxMjAwcHg7IG1hcmdpbjphdXRvOyBib3JkZXItc3BhY2luZzoxcmVtOyBib3JkZXItY29sbGFwc2U6dW5zZXQ7IH0gLmN0YWJveC0tY2VsbCB7IHdpZHRoOjI1JTsgdHJhbnNpdGlvbjphbGwgMC4ycyBsaW5lYXI7IH0gLmN0YWJveC0tY2VsbDpub3QoW29uY2xpY2s9JyddKTpob3ZlciB7IGN1cnNvcjpwb2ludGVyOyB9IC5jdGFib3gtLWNlbGwuY3RhYm94LS1jZWxsX18xIHsgd2lkdGg6MTAwJTsgfSAuY3RhYm94LS1jZWxsLmN0YWJveC0tY2VsbF9fMiB7IHdpZHRoOjQ4MHB4OyB9IC5jdGFib3gtLWNlbGwuY3RhYm94LS1jZWxsX18zIHsgd2lkdGg6MzMlOyB9IC5jdGFib3gtLWNvbnRhaW5lciB7IHBhZGRpbmc6MXJlbTsgfSAuY3RhYm94LS1jb250YWluZXIgLmN0YWJveC0taWNvbiB7IGZvbnQtc2l6ZToxLjU2M3JlbSA7IH0gLmN0YWJveC0tY29udGFpbmVyIC5jdGFib3gtLWljb24uY3RhYm94LS1pY29uX190b3AgeyBwYWRkaW5nLWJvdHRvbToxMHB4OyB9IC5jdGFib3gtLWNvbnRhaW5lciAuY3RhYm94LS1pY29uLmN0YWJveC0taWNvbl9fbGVmdCB7IGZsb2F0OmxlZnQ7IH0gLmN0YWJveC0taWNvbl9fbGVmdCB+IC5jdGFib3gtLXRpdGxlLCAuY3RhYm94LS1pY29uX19sZWZ0IH4gLmN0YWJveC0tZGVzY3JpcHRpb24sIC5jdGFib3gtLWljb25fX2xlZnQgfiAuY3RhYm94LS1idXR0b24geyBtYXJnaW4tbGVmdDozNXB4OyB9IC5jdGFib3gtLWNvbnRhaW5lciAuY3RhYm94LS10aXRsZSB7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc2l6ZToxLjU2M3JlbSA7IH0gLmN0YWJveC0tY29udGFpbmVyIC5jdGFib3gtLWRlc2NyaXB0aW9uIHsgbWFyZ2luLXRvcDoxMHB4OyB9IC5jdGFib3gtLWNvbnRhaW5lciAuY3RhYm94LS1idXR0b24geyBtYXJnaW4tdG9wOjIwcHg7IH0gLnBhcmFsbGF4LXNlY3Rpb24geyBiYWNrZ3JvdW5kLXBvc2l0aW9uOmNlbnRlcjsgYmFja2dyb3VuZC1zaXplOmNvdmVyOyBiYWNrZ3JvdW5kLWF0dGFjaG1lbnQ6bG9jYWw7IHBhZGRpbmc6MjVweCAwOyAtd2Via2l0LXRyYW5zaXRpb246YWxsIDAuM3M7IC1tb3otdHJhbnNpdGlvbjphbGwgMC4zczsgLW1zLXRyYW5zaXRpb246YWxsIDAuM3M7IC1vLXRyYW5zaXRpb246YWxsIDAuM3M7IHRyYW5zaXRpb246YWxsIDAuM3M7IGJhY2tncm91bmQtY29sb3I6IzAwMDsgfSAucGFyYWxsYXgtc2VjdGlvbiAuY29udGFpbmVyIHsgd2lkdGg6NjAlOyBwYWRkaW5nLXJpZ2h0OjE1cHg7IHBhZGRpbmctbGVmdDoxNXB4OyBtYXJnaW4tcmlnaHQ6YXV0bzsgbWFyZ2luLWxlZnQ6YXV0bzsgfSAucGFyYWxsYXgtc2VjdGlvbiAuY29udGFpbmVyLmxhcmdlIHsgd2lkdGg6ODAlOyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IH0gLnBhcmFsbGF4LWNvbnRlbnQgeyB3aWR0aDo0NSU7IHBhZGRpbmc6NDBweCA0MHB4OyBiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsMC43KTsgY29sb3I6I2ZmZjsgfSAucGFyYWxsYXgtY29udGVudCAucGFyYWxsYXgtY29udGVudC1idXNpbmVzcy10aXRsZSB7IGZvbnQtc2l6ZToxLjQzOHJlbSAhaW1wb3J0YW50OyBmb250LXdlaWdodDpub3JtYWwgIWltcG9ydGFudDsgbWFyZ2luLWJvdHRvbToyMHB4OyBjb2xvcjppbmhlcml0OyB9IC5wYXJhbGxheC1jb250ZW50IC5wYXJhbGxheC1jb250ZW50LWJ1c2luZXNzLWRlc2MgeyBmb250LXNpemU6MC45MzhyZW0gIWltcG9ydGFudDsgdGV4dC1hbGlnbjpsZWZ0OyBjb2xvcjppbmhlcml0OyB9IC5wYXJhbGxheC1jb250ZW50IC5wYXJhbGxheC1jb250ZW50LWJ1c2luZXNzLWRlc2MgYXsgY29sb3I6aW5oZXJpdDsgfSBAbWVkaWEgKG1heC13aWR0aDoxMzMwcHgpIHsgLnBhcmFsbGF4LXNlY3Rpb24gLmNvbnRhaW5lciB7IHdpZHRoOjgwJTsgfSAucGFyYWxsYXgtc2VjdGlvbiAuY29udGFpbmVyLmxhcmdlIHsgd2lkdGg6MTAwJTsgfSB9IC5zci1vbmx5IHsgcG9zaXRpb246YWJzb2x1dGUgIWltcG9ydGFudDsgd2lkdGg6MXB4ICFpbXBvcnRhbnQ7IGhlaWdodDoxcHggIWltcG9ydGFudDsgcGFkZGluZzowICFpbXBvcnRhbnQ7IG1hcmdpbjotMXB4ICFpbXBvcnRhbnQ7IG92ZXJmbG93OmhpZGRlbiAhaW1wb3J0YW50OyBjbGlwOnJlY3QoMCwgMCwgMCwgMCkgIWltcG9ydGFudDsgYm9yZGVyOjAgIWltcG9ydGFudDsgfSAuYm5wX3B1bGxvdXRfaW1neyBtYXgtd2lkdGg6MTByZW07IG1hcmdpbjphdXRvOyB9IC5ibnBfcHVsbG91dF9jb2xfc2VwYXJhdG9yeyB3aWR0aDoxcHg7IGJhY2tncm91bmQtY29sb3I6I0VCRUJFQjsgaGVpZ2h0Ojk4cHg7IHBvc2l0aW9uOmFic29sdXRlOyB0b3A6MjBweDsgfSAuYm5wX3B1bGxvdXRfbWlkX2NvbHsgd2lkdGg6NzAlOyBkaXNwbGF5OnRhYmxlLWNlbGw7IH0gLmJucF9wdWxsb3V0X21pZF9jb2xfcmlnaHR7IGJvcmRlci1sZWZ0LXdpZHRoOjFweDsgfSAuYm5wX3B1bGxvdXRfbWlkX2NvbF9zZXBhcmF0b3J7IHdpZHRoOjFweDsgYmFja2dyb3VuZC1jb2xvcjojRUJFQkVCOyBoZWlnaHQ6NDBweDsgcG9zaXRpb246YWJzb2x1dGU7IHRvcDo3OHB4OyB9IC5ibnBfcHVsbG91dF9taWRfY29sX3ByaWNlX3dpdGhfdGl0bGV7IGRpc3BsYXk6ZmxleDsgZmxleC1kaXJlY3Rpb246Y29sdW1uOyB0ZXh0LWFsaWduOmNlbnRlcjsgd2lkdGg6NDUlOyB9IC5ibnBfcHVsbG91dF9taWRfY29sX3ByaWNleyBmb250LXNpemU6MnJlbSA7IGZvbnQtd2VpZ2h0OmJvbGQ7IH0gQG1lZGlhIChtYXgtd2lkdGg6MTMzMHB4KSB7IC5ibnBfcHVsbG91dF9taWRfY29sIHsgd2lkdGg6NTAlOyB9IC5ibnBfcHVsbG91dF9taWRfY29sX3ByaWNlX3dpdGhfdGl0bGUgeyB3aWR0aDoxMDAlOyB9IC5ibnBfcHVsbG91dF9jb2xfc2VwYXJhdG9yIHsgaGVpZ2h0OjE2NHB4OyB9IC5ibnBfcHVsbG91dF9taWRfY29sX3NlcGFyYXRvciB7IGhlaWdodDoxMDZweDsgfSB9IC5wdWxsb3V0LWNvbnRlbnQgLmNyZWRpdFNjb3JlUHVsbG91dEltZ3sgaGVpZ2h0OjExMHB4OyBiYWNrZ3JvdW5kLWNvbG9yOiM0ZDhmMTQ7IH0gLnB1bGxvdXQtY29udGVudCAuY3JlZGl0U2NvcmVQdWxsb3V0QnV0dG9ueyBiYWNrZ3JvdW5kOiM0MTdGMUEgIWltcG9ydGFudDsgYm9yZGVyLXJhZGl1czozcHg7IGNvbG9yOiNmZmZmZmY7IHBhZGRpbmc6N3B4IDIwcHggN3B4OyBmb250LXNpemU6MXJlbSA7IGZvbnQtd2VpZ2h0OjcwMDsgdGV4dC1zaGFkb3c6MC40cHggMDsgfSAucHVsbG91dC1jb250ZW50IC5jcmVkaXRTY29yZVB1bGxvdXRDb250ZW50eyBjb2xvcjojMDAwMDAwOyBmb250LXNpemU6MS41NjNyZW0gOyBmb250LXdlaWdodDo3MDA7IG1hcmdpbi1ib3R0b206LTE1cHg7IH0gLnB1bGxvdXQtY29udGVudCAuY3JlZGl0U2NvcmVQdWxsb3V0Q29udGVudFNjb3JleyBjb2xvcjojMDAwMDAwOyBmb250LXdlaWdodDo3MDA7IGZvbnQtc2l6ZToxLjg3NXJlbSA7IHRleHQtc2hhZG93OjJweCAwOyB9IC5wdWxsb3V0LWNvbnRlbnQgLmNyZWRpdFNjb3JlUHVsbG91dENvbnRlbnRGcmVleyBjb2xvcjojNDE3RjFBOyBmb250LXdlaWdodDo3MDA7IGZvbnQtc2l6ZToyLjgxM3JlbSA7IHRleHQtc2hhZG93OjJweCAwOyB9IC5pc1BhZ2VGdWxsV2lkdGhFbmFibGVkLmlzRnVsbFdpZHRoUGFnZSAucHVsbG91dC1jb250ZW50IC5jcmVkaXRTY29yZVB1bGxvdXRNYXhXaWR0aHsgbWF4LXdpZHRoOjEyMDBweDsgfSAucHVsbG91dC1jb250ZW50IC5jcmVkaXRTY29yZVB1bGxvdXRNYXhXaWR0aHsgbWF4LXdpZHRoOjk2MHB4OyB9IC5zbGlkZXItbWFpbiBpbWd7IHRyYW5zaXRpb246dHJhbnNmb3JtIDAuNXMgZWFzZS1vdXQgfSAuY29tbXVuaWNhdGlvblByZWZ7IHBhZGRpbmc6dmFyKC0taW5wdXQtcGFkZGluZyk7IGJhY2tncm91bmQtY29sb3I6dmFyKC0taW5wdXQtYmctY29sb3IpOyBib3JkZXItcmFkaXVzOnZhcigtLWlucHV0LXJhZGl1cyk7IGJvcmRlcjoxcHggc29saWQgdmFyKC0taW5wdXQtYm9yZGVyLWNvbG9yKTsgY29sb3I6IzIxMjUyOTsgZm9udC1zaXplOnZhcigtLWlucHV0LWZvbnQtc2l6ZSk7IGxpbmUtaGVpZ2h0OnZhcigtLWlucHV0LWxpbmUtaGVpZ2h0KTsgZm9udC13ZWlnaHQ6NDAwOyB3aWR0aDo1MCUgIWltcG9ydGFudDsgfSAuZDJjZm9ybSB7IC0tbGFiZWwtcmVxdWlyZWQtc3ltYm9sOiIqIjsgLS1sYWJlbC1yZXF1aXJlZC1jb2xvcjojRkYwMDAwOyAtLWlucHV0LXBhZGRpbmc6dmFyKC0tcy0xKSB2YXIoLS1zMSk7IC0taW5wdXQtYmctY29sb3I6dmFyKC0td2hpdGUpOyAtLWlucHV0LWJvcmRlci1jb2xvcjp2YXIoLS1taWQtZ3JheSk7IC0taW5wdXQtcmFkaXVzOnZhcigtLXMtNik7IC0taW5wdXQtZm9udC1zaXplOnZhcigtLWZzMCk7IC0taW5wdXQtbGluZS1oZWlnaHQ6dmFyKC0tZnMyKTsgfSAubWFpbkRpdkFkanVzdEhlYWRlciAudXBfbWVudSAuUzEwMFBlcmNlbnRXaWR0aCB7IGJhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7IH0gLnVwX21lbnUuZml4ZWQgLlMxMDBQZXJjZW50V2lkdGh7IGJhY2tncm91bmQtY29sb3I6cmdiKDMxLDQ3LDgzKSB9IC5tYWluRGl2QWRqdXN0SGVhZGVyIC52LWNhcmQgLmFkZHJlc3MtbWlkZGxlIC5vcmcsIC5tYWluRGl2QWRqdXN0SGVhZGVyIC52LWNhcmQgLmFkZHJlc3MtbWlkZGxlIC5zdHJlZXQtYWRkcmVzcywgLm1haW5EaXZBZGp1c3RIZWFkZXIgLnYtY2FyZCAuYWRkcmVzcy1taWRkbGUgLmxvY2FsaXR5LCAubWFpbkRpdkFkanVzdEhlYWRlciAudi1jYXJkIC5hZGRyZXNzLW1pZGRsZSAucmVnaW9uLCAubWFpbkRpdkFkanVzdEhlYWRlciAudi1jYXJkIC5hZGRyZXNzLW1pZGRsZSAucG9zdGFsLWNvZGUsIC5tYWluRGl2QWRqdXN0SGVhZGVyIC52LWNhcmQgLmFkZHJlc3MtbWlkZGxlIC5leHRlbmRlZFBob25lVHJpZ2dlciwgLm1haW5EaXZBZGp1c3RIZWFkZXIgLnYtY2FyZCAuYWRkcmVzcy1taWRkbGUgLnBob25lLWxpbmsgeyBjb2xvcjp2YXIoLS1ob21lcGFnZS1oZWFkZXItaXRlbS1jb2xvcikgIWltcG9ydGFudDsgfSAubWFpbkRpdkFkanVzdEhlYWRlciAudi1jYXJkIC5hZGRyZXNzLW1pZGRsZSAuZGVhbGVyTWFwTGluayBzdmcgeyBmaWxsOnZhcigtLWhvbWVwYWdlLWhlYWRlci1pdGVtLWNvbG9yKTsgfSAubWFpbkRpdkFkanVzdEhlYWRlciAudi1jYXJkIC5hZGRyZXNzLW1pZGRsZSAuZmEtY2FyZXQtZG93bjo6YmVmb3JlLCAubWFpbkRpdkFkanVzdEhlYWRlciAudi1jYXJkIC5hZGRyZXNzLW1pZGRsZSAuZmEtcGhvbmU6OmJlZm9yZSB7IGNvbG9yOnZhcigtLWhvbWVwYWdlLWhlYWRlci1pdGVtLWNvbG9yKTsgfSAubWFpbkRpdkFkanVzdEhlYWRlciAudXBfbWVudSAuUzEwMFBlcmNlbnRXaWR0aCA+IHVsID4gbGkgPiBhLnRvcF9saW5rIHsgY29sb3I6dmFyKC0taG9tZXBhZ2UtbWVudS1pdGVtLWNvbG9yKTsgfSAubWFpbkRpdkFkanVzdEhlYWRlciAubGFuZ3VhZ2VCYXIgLmdSYXRpbmctaWNvbiNnUmF0aW5nLCAubWFpbkRpdkFkanVzdEhlYWRlciAubGFuZ3VhZ2VCYXIgLmRlc2t0b3BfbGFuZ19idXR0b24uYWN0aXZlLCAubWFpbkRpdkFkanVzdEhlYWRlciAubGFuZ3VhZ2VCYXIgYS5kZXNrdG9wX2xhbmdfYnV0dG9uOmhvdmVyIHsgYmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDsgY29sb3I6dmFyKC0taG9tZXBhZ2UtaGVhZGVyLWl0ZW0tY29sb3IpOyBib3JkZXI6MXB4IHNvbGlkIHZhcigtLWhvbWVwYWdlLWhlYWRlci1pdGVtLWNvbG9yKTsgfSAubWFpbkRpdkFkanVzdEhlYWRlciAubGFuZ3VhZ2VCYXIgLmRlc2t0b3BfbGFuZ19idXR0b24geyBjb2xvcjojMDAwMDAwOyBiYWNrZ3JvdW5kOnJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSk7IGJvcmRlcjoxcHggc29saWQgdmFyKC0taG9tZXBhZ2UtaGVhZGVyLWl0ZW0tY29sb3IpOyB9IC5tYWluRGl2QWRqdXN0SGVhZGVyIC5sYW5ndWFnZUJhciBkaXYuZDJjLWZhdnMtbmF2LXdyYXBwZXIgaS5mYXIgeyBjb2xvcjp2YXIoLS1ob21lcGFnZS1oZWFkZXItaXRlbS1jb2xvcik7IH0gLm1haW5EaXZBZGp1c3RIZWFkZXIgLmxhbmd1YWdlQmFyIC5zZXJ2aWNlLWhlYWRlci1mb3JtIC5idG4geyBib3JkZXItY29sb3I6dmFyKC0taG9tZXBhZ2UtaGVhZGVyLWl0ZW0tY29sb3IpOyB9IC5sYW5ndWFnZUJhciAuZ1JhdGluZy1pY29uI2dSYXRpbmcsIC5sYW5ndWFnZUJhciAjc2VydmljZV9hcHBvaW50X2hlYWRlciA+IGEsIC5sYW5ndWFnZUJhciAuZGVza3RvcF9sYW5nX2J1dHRvbiB7IGJvcmRlci1yYWRpdXM6dmFyKC0tcHJvbW8tYnRuLWJvcmRlci1yYWRpdXMpICFpbXBvcnRhbnQ7IH0gLmdSYXRpbmctaWNvbiNnUmF0aW5nIC5yYXRpbmcgeyBkaXNwbGF5OmZsZXg7IGFsaWduLWl0ZW1zOmNlbnRlcjsganVzdGlmeS1jb250ZW50OmNlbnRlcjsgbGluZS1oZWlnaHQ6MTsgfSAubWFyZ2luLWJvdHRvbS0tNHB4IHsgbWFyZ2luLWJvdHRvbTotNHB4OyB9IC5tYWluRGl2QWRqdXN0SGVhZGVyIC5sYW5ndWFnZUJhciwgLm1haW5EaXZBZGp1c3RIZWFkZXIgLnYtY2FyZCwgLm1haW5EaXZBZGp1c3RIZWFkZXIgLmJhbm5lci1zZWFyY2gtYm94LXdyYXBwZXIgeyB6LWluZGV4OjI7IHBvc2l0aW9uOnJlbGF0aXZlIH0KLyoqIC9jc3MvcHJvX2Ryb3Bkb3duXzQuY3NzICoqLwouaWROYXYxIHsgcGFkZGluZzowOyBsaXN0LXN0eWxlOm5vbmU7IGhlaWdodDoyOHB4OyBmb250LXNpemU6MC43NXJlbSA7IGZvbnQtc3R5bGU6bm9ybWFsOyBmb250LXdlaWdodDpib2xkOyB0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7IGNvbG9yOiNGOUY5Rjk7IH0gLmlkTmF2MSBsaS50b3Age2Rpc3BsYXk6YmxvY2s7IGZsb2F0OmxlZnQ7IGhlaWdodDoyOHB4OyBwYWRkaW5nOjA7fSAuaWROYXYxIGxpLnRvcDEge2Rpc3BsYXk6YmxvY2s7IGZsb2F0OmxlZnQ7IGhlaWdodDoyOHB4OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2JsX2hvdmVyLnBuZykgbGVmdCB0b3AgcmVwZWF0LXg7IHBhZGRpbmc6MDsgcGFkZGluZy1yaWdodDoycHg7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IHRleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTsgY29sb3I6I2ZmZjsgdGV4dC1hbGlnbjpjZW50ZXI7IC1tb3otYm9yZGVyLXJhZGl1czozcHg7IC13ZWJraXQtYm9yZGVyLXJhZGl1czozcHg7IGJvcmRlci1yYWRpdXM6M3B4OyAta2h0bWwtYm9yZGVyLXJhZGl1czozcHg7fSAuaWROYXYxIGxpIGEudG9wX2xpbmsgeyBkaXNwbGF5OmJsb2NrOyBmbG9hdDpsZWZ0OyBoZWlnaHQ6MjhweDsgbGluZS1oZWlnaHQ6MzBweDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IHRleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTsgZm9udC13ZWlnaHQ6bm9ybWFsOyBwYWRkaW5nOjBweCAxMnB4IDBweCAxMnB4OyBjdXJzb3I6cG9pbnRlcjsgLW1vei1ib3JkZXItcmFkaXVzOjNweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjNweDsgYm9yZGVyLXJhZGl1czozcHg7IC1raHRtbC1ib3JkZXItcmFkaXVzOjNweDsgYmFja2dyb3VuZDojMWYyZjUzOyBjb2xvcjojZmZmZmZmOyB9IC5pZE5hdjEgbGkgYS50b3BfbGluazpob3ZlciB7IC1tb3otYm9yZGVyLXJhZGl1czozcHg7IC13ZWJraXQtYm9yZGVyLXJhZGl1czozcHg7IGJvcmRlci1yYWRpdXM6M3B4OyBmaWx0ZXI6YnJpZ2h0bmVzcyg5NSUpOyB9IC5pZE5hdjEgbGkgYS50b3BfbGluazEgeyBjb2xvcjpyZ2IoMjU1LDI1NSwyNTUpOyBkaXNwbGF5OmJsb2NrOyBmbG9hdDpsZWZ0OyBoZWlnaHQ6MjhweDsgbGluZS1oZWlnaHQ6MzBweDsgY29sb3I6I2ZlZmVmZTsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IHRleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTsgZm9udC13ZWlnaHQ6bm9ybWFsOyBwYWRkaW5nOjBweCAxMnB4IDBweCAxMnB4OyBjdXJzb3I6cG9pbnRlcjsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9ibF9ob3Zlci5wbmcpIGxlZnQgdG9wIHJlcGVhdC14OyAtbW96LWJvcmRlci1yYWRpdXM6M3B4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6M3B4OyBib3JkZXItcmFkaXVzOjNweDsgLWtodG1sLWJvcmRlci1yYWRpdXM6M3B4O30gI2ZybVJlYmF0ZSAuaWROYXYxIGxpIGEudG9wX2xpbmsgeyBjb2xvcjojZmZmZmZmOyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2J1dHRvbl9wb3B1cC5wbmcpIHJlcGVhdC14IHNjcm9sbCBsZWZ0IHRvcDsgfSAjZnJtUmViYXRlIC5pZE5hdjEgbGkgYS50b3BfbGluazpob3ZlciB7IGNvbG9yOiNmZmZmZmY7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvYmxfaG92ZXIucG5nKSBsZWZ0IHRvcCByZXBlYXQteDsgfSAuaWROYXYxIGxpIGEuc2VydmljZS1saW5reyBtYXJnaW4tYm90dG9tOjEycHg7IHdpZHRoOjIwMnB4OyBmb250LXNpemU6MC44cmVtOyBmb250LXdlaWdodDpub3JtYWw7IH0gLmlkTmF2MSBsaSBhLnNlcnZpY2UtbGlua19fc3VibWl0IHsgZm9udC1zaXplOjAuOHJlbTsgZm9udC13ZWlnaHQ6bm9ybWFsOyB9IC5sYW5ndWFnZUJhciAuaWROYXYxIGxpIGEudG9wX2xpbmsgeyBiYWNrZ3JvdW5kOmluaGVyaXQ7IGJhY2tncm91bmQtY29sb3I6IzkyOTI5MjsgYmFja2dyb3VuZC1jb2xvcjojMWYyZjUzOyBmb250LXNpemU6MXJlbSA7IGNvbG9yOiNmZmZmZmY7IGNvbG9yOiNmZmZmZmY7IH0KLyoqIC9jc3MvanF1ZXJ5LXVpLWZhY3RvcnkvMS4xMy4yL2pxdWVyeS11aS5taW4uY3NzICoqLwoudWktaGVscGVyLWhpZGRlbntkaXNwbGF5Om5vbmV9LnVpLWhlbHBlci1oaWRkZW4tYWNjZXNzaWJsZXtib3JkZXI6MDtjbGlwOnJlY3QoMCAwIDAgMCk7aGVpZ2h0OjFweDttYXJnaW46LTFweDtvdmVyZmxvdzpoaWRkZW47cGFkZGluZzowO3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjFweH0udWktaGVscGVyLXJlc2V0e21hcmdpbjowO3BhZGRpbmc6MDtib3JkZXI6MDtvdXRsaW5lOjA7bGluZS1oZWlnaHQ6MS4zO3RleHQtZGVjb3JhdGlvbjpub25lO2ZvbnQtc2l6ZToxMDAlO2xpc3Qtc3R5bGU6bm9uZX0udWktaGVscGVyLWNsZWFyZml4OmJlZm9yZSwudWktaGVscGVyLWNsZWFyZml4OmFmdGVye2NvbnRlbnQ6IiI7ZGlzcGxheTp0YWJsZTtib3JkZXItY29sbGFwc2U6Y29sbGFwc2V9LnVpLWhlbHBlci1jbGVhcmZpeDphZnRlcntjbGVhcjpib3RofS51aS1oZWxwZXItemZpeHt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO3RvcDowO2xlZnQ6MDtwb3NpdGlvbjphYnNvbHV0ZTtvcGFjaXR5OjA7LW1zLWZpbHRlcjoiYWxwaGEob3BhY2l0eT0wKSJ9LnVpLWZyb250e3otaW5kZXg6MTAwfS51aS1zdGF0ZS1kaXNhYmxlZHtjdXJzb3I6ZGVmYXVsdCFpbXBvcnRhbnQ7cG9pbnRlci1ldmVudHM6bm9uZX0udWktaWNvbntkaXNwbGF5OmlubGluZS1ibG9jazt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7bWFyZ2luLXRvcDotLjI1ZW07cG9zaXRpb246cmVsYXRpdmU7dGV4dC1pbmRlbnQ6LTk5OTk5cHg7b3ZlcmZsb3c6aGlkZGVuO2JhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdH0udWktd2lkZ2V0LWljb24tYmxvY2t7bGVmdDo1MCU7bWFyZ2luLWxlZnQ6LThweDtkaXNwbGF5OmJsb2NrfS51aS13aWRnZXQtb3ZlcmxheXtwb3NpdGlvbjpmaXhlZDt0b3A6MDtsZWZ0OjA7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJX0udWktYWNjb3JkaW9uIC51aS1hY2NvcmRpb24taGVhZGVye2Rpc3BsYXk6YmxvY2s7Y3Vyc29yOnBvaW50ZXI7cG9zaXRpb246cmVsYXRpdmU7bWFyZ2luOjJweCAwIDAgMDtwYWRkaW5nOi41ZW0gLjVlbSAuNWVtIC43ZW07Zm9udC1zaXplOjEwMCV9LnVpLWFjY29yZGlvbiAudWktYWNjb3JkaW9uLWNvbnRlbnR7cGFkZGluZzoxZW0gMi4yZW07Ym9yZGVyLXRvcDowO292ZXJmbG93OmF1dG99LnVpLXNsaWRlcntwb3NpdGlvbjpyZWxhdGl2ZTt0ZXh0LWFsaWduOmxlZnR9LnVpLXNsaWRlciAudWktc2xpZGVyLWhhbmRsZXtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjI7d2lkdGg6MS4yZW07aGVpZ2h0OjEuMmVtO2N1cnNvcjpwb2ludGVyOy1tcy10b3VjaC1hY3Rpb246bm9uZTt0b3VjaC1hY3Rpb246bm9uZX0udWktc2xpZGVyIC51aS1zbGlkZXItcmFuZ2V7cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxO2ZvbnQtc2l6ZTouN2VtO2Rpc3BsYXk6YmxvY2s7Ym9yZGVyOjA7YmFja2dyb3VuZC1wb3NpdGlvbjowIDB9LnVpLXNsaWRlci51aS1zdGF0ZS1kaXNhYmxlZCAudWktc2xpZGVyLWhhbmRsZSwudWktc2xpZGVyLnVpLXN0YXRlLWRpc2FibGVkIC51aS1zbGlkZXItcmFuZ2V7ZmlsdGVyOmluaGVyaXR9LnVpLXNsaWRlci1ob3Jpem9udGFse2hlaWdodDouOGVtfS51aS1zbGlkZXItaG9yaXpvbnRhbCAudWktc2xpZGVyLWhhbmRsZXt0b3A6LS4zZW07bWFyZ2luLWxlZnQ6LS42ZW19LnVpLXNsaWRlci1ob3Jpem9udGFsIC51aS1zbGlkZXItcmFuZ2V7dG9wOjA7aGVpZ2h0OjEwMCV9LnVpLXNsaWRlci1ob3Jpem9udGFsIC51aS1zbGlkZXItcmFuZ2UtbWlue2xlZnQ6MH0udWktc2xpZGVyLWhvcml6b250YWwgLnVpLXNsaWRlci1yYW5nZS1tYXh7cmlnaHQ6MH0udWktc2xpZGVyLXZlcnRpY2Fse3dpZHRoOi44ZW07aGVpZ2h0OjEwMHB4fS51aS1zbGlkZXItdmVydGljYWwgLnVpLXNsaWRlci1oYW5kbGV7bGVmdDotLjNlbTttYXJnaW4tbGVmdDowO21hcmdpbi1ib3R0b206LS42ZW19LnVpLXNsaWRlci12ZXJ0aWNhbCAudWktc2xpZGVyLXJhbmdle2xlZnQ6MDt3aWR0aDoxMDAlfS51aS1zbGlkZXItdmVydGljYWwgLnVpLXNsaWRlci1yYW5nZS1taW57Ym90dG9tOjB9LnVpLXNsaWRlci12ZXJ0aWNhbCAudWktc2xpZGVyLXJhbmdlLW1heHt0b3A6MH0udWktd2lkZ2V0e2ZvbnQtZmFtaWx5OkFyaWFsLEhlbHZldGljYSxzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxZW19LnVpLXdpZGdldCAudWktd2lkZ2V0e2ZvbnQtc2l6ZToxZW19LnVpLXdpZGdldCBpbnB1dCwudWktd2lkZ2V0IHNlbGVjdCwudWktd2lkZ2V0IHRleHRhcmVhLC51aS13aWRnZXQgYnV0dG9ue2ZvbnQtZmFtaWx5OkFyaWFsLEhlbHZldGljYSxzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxZW19LnVpLXdpZGdldC51aS13aWRnZXQtY29udGVudHtib3JkZXI6MXB4IHNvbGlkICNjNWM1YzV9LnVpLXdpZGdldC1jb250ZW50e2JvcmRlcjoxcHggc29saWQgI2RkZDtiYWNrZ3JvdW5kOiNmZmY7Y29sb3I6IzMzM30udWktd2lkZ2V0LWNvbnRlbnQgYXtjb2xvcjojMzMzfS51aS13aWRnZXQtaGVhZGVye2JvcmRlcjoxcHggc29saWQgI2RkZDtiYWNrZ3JvdW5kOiNlOWU5ZTk7Y29sb3I6IzMzMztmb250LXdlaWdodDpib2xkfS51aS13aWRnZXQtaGVhZGVyIGF7Y29sb3I6IzMzM30udWktc3RhdGUtZGVmYXVsdCwudWktd2lkZ2V0LWNvbnRlbnQgLnVpLXN0YXRlLWRlZmF1bHQsLnVpLXdpZGdldC1oZWFkZXIgLnVpLXN0YXRlLWRlZmF1bHQsLnVpLWJ1dHRvbixodG1sIC51aS1idXR0b24udWktc3RhdGUtZGlzYWJsZWQ6aG92ZXIsaHRtbCAudWktYnV0dG9uLnVpLXN0YXRlLWRpc2FibGVkOmFjdGl2ZXtib3JkZXI6MXB4IHNvbGlkICNjNWM1YzU7YmFja2dyb3VuZDojZjZmNmY2O2ZvbnQtd2VpZ2h0Om5vcm1hbDtjb2xvcjojNDU0NTQ1fS51aS1zdGF0ZS1kZWZhdWx0IGEsLnVpLXN0YXRlLWRlZmF1bHQgYTpsaW5rLC51aS1zdGF0ZS1kZWZhdWx0IGE6dmlzaXRlZCxhLnVpLWJ1dHRvbixhOmxpbmsudWktYnV0dG9uLGE6dmlzaXRlZC51aS1idXR0b24sLnVpLWJ1dHRvbntjb2xvcjojNDU0NTQ1O3RleHQtZGVjb3JhdGlvbjpub25lfS51aS1zdGF0ZS1ob3ZlciwudWktd2lkZ2V0LWNvbnRlbnQgLnVpLXN0YXRlLWhvdmVyLC51aS13aWRnZXQtaGVhZGVyIC51aS1zdGF0ZS1ob3ZlciwudWktc3RhdGUtZm9jdXMsLnVpLXdpZGdldC1jb250ZW50IC51aS1zdGF0ZS1mb2N1cywudWktd2lkZ2V0LWhlYWRlciAudWktc3RhdGUtZm9jdXMsLnVpLWJ1dHRvbjpob3ZlciwudWktYnV0dG9uOmZvY3Vze2JvcmRlcjoxcHggc29saWQgI2NjYztiYWNrZ3JvdW5kOiNlZGVkZWQ7Zm9udC13ZWlnaHQ6bm9ybWFsO2NvbG9yOiMyYjJiMmJ9LnVpLXN0YXRlLWhvdmVyIGEsLnVpLXN0YXRlLWhvdmVyIGE6aG92ZXIsLnVpLXN0YXRlLWhvdmVyIGE6bGluaywudWktc3RhdGUtaG92ZXIgYTp2aXNpdGVkLC51aS1zdGF0ZS1mb2N1cyBhLC51aS1zdGF0ZS1mb2N1cyBhOmhvdmVyLC51aS1zdGF0ZS1mb2N1cyBhOmxpbmssLnVpLXN0YXRlLWZvY3VzIGE6dmlzaXRlZCxhLnVpLWJ1dHRvbjpob3ZlcixhLnVpLWJ1dHRvbjpmb2N1c3tjb2xvcjojMmIyYjJiO3RleHQtZGVjb3JhdGlvbjpub25lfS51aS12aXN1YWwtZm9jdXN7Ym94LXNoYWRvdzowIDAgM3B4IDFweCByZ2IoOTQsMTU4LDIxNCl9LnVpLXN0YXRlLWFjdGl2ZSwudWktd2lkZ2V0LWNvbnRlbnQgLnVpLXN0YXRlLWFjdGl2ZSwudWktd2lkZ2V0LWhlYWRlciAudWktc3RhdGUtYWN0aXZlLGEudWktYnV0dG9uOmFjdGl2ZSwudWktYnV0dG9uOmFjdGl2ZSwudWktYnV0dG9uLnVpLXN0YXRlLWFjdGl2ZTpob3Zlcntib3JkZXI6MXB4IHNvbGlkICMwMDNlZmY7YmFja2dyb3VuZDojMDA3ZmZmO2ZvbnQtd2VpZ2h0Om5vcm1hbDtjb2xvcjojZmZmfS51aS1pY29uLWJhY2tncm91bmQsLnVpLXN0YXRlLWFjdGl2ZSAudWktaWNvbi1iYWNrZ3JvdW5ke2JvcmRlcjojMDAzZWZmO2JhY2tncm91bmQtY29sb3I6I2ZmZn0udWktc3RhdGUtYWN0aXZlIGEsLnVpLXN0YXRlLWFjdGl2ZSBhOmxpbmssLnVpLXN0YXRlLWFjdGl2ZSBhOnZpc2l0ZWR7Y29sb3I6I2ZmZjt0ZXh0LWRlY29yYXRpb246bm9uZX0udWktc3RhdGUtaGlnaGxpZ2h0LC51aS13aWRnZXQtY29udGVudCAudWktc3RhdGUtaGlnaGxpZ2h0LC51aS13aWRnZXQtaGVhZGVyIC51aS1zdGF0ZS1oaWdobGlnaHR7Ym9yZGVyOjFweCBzb2xpZCAjZGFkNTVlO2JhY2tncm91bmQ6I2ZmZmE5MDtjb2xvcjojNzc3NjIwfS51aS1zdGF0ZS1jaGVja2Vke2JvcmRlcjoxcHggc29saWQgI2RhZDU1ZTtiYWNrZ3JvdW5kOiNmZmZhOTB9LnVpLXN0YXRlLWhpZ2hsaWdodCBhLC51aS13aWRnZXQtY29udGVudCAudWktc3RhdGUtaGlnaGxpZ2h0IGEsLnVpLXdpZGdldC1oZWFkZXIgLnVpLXN0YXRlLWhpZ2hsaWdodCBhe2NvbG9yOiM3Nzc2MjB9LnVpLXN0YXRlLWVycm9yLC51aS13aWRnZXQtY29udGVudCAudWktc3RhdGUtZXJyb3IsLnVpLXdpZGdldC1oZWFkZXIgLnVpLXN0YXRlLWVycm9ye2JvcmRlcjoxcHggc29saWQgI2YxYTg5OTtiYWNrZ3JvdW5kOiNmZGRmZGY7Y29sb3I6IzVmM2YzZn0udWktc3RhdGUtZXJyb3IgYSwudWktd2lkZ2V0LWNvbnRlbnQgLnVpLXN0YXRlLWVycm9yIGEsLnVpLXdpZGdldC1oZWFkZXIgLnVpLXN0YXRlLWVycm9yIGF7Y29sb3I6IzVmM2YzZn0udWktc3RhdGUtZXJyb3ItdGV4dCwudWktd2lkZ2V0LWNvbnRlbnQgLnVpLXN0YXRlLWVycm9yLXRleHQsLnVpLXdpZGdldC1oZWFkZXIgLnVpLXN0YXRlLWVycm9yLXRleHR7Y29sb3I6IzVmM2YzZn0udWktcHJpb3JpdHktcHJpbWFyeSwudWktd2lkZ2V0LWNvbnRlbnQgLnVpLXByaW9yaXR5LXByaW1hcnksLnVpLXdpZGdldC1oZWFkZXIgLnVpLXByaW9yaXR5LXByaW1hcnl7Zm9udC13ZWlnaHQ6Ym9sZH0udWktcHJpb3JpdHktc2Vjb25kYXJ5LC51aS13aWRnZXQtY29udGVudCAudWktcHJpb3JpdHktc2Vjb25kYXJ5LC51aS13aWRnZXQtaGVhZGVyIC51aS1wcmlvcml0eS1zZWNvbmRhcnl7b3BhY2l0eTouNzstbXMtZmlsdGVyOiJhbHBoYShvcGFjaXR5PTcwKSI7Zm9udC13ZWlnaHQ6bm9ybWFsfS51aS1zdGF0ZS1kaXNhYmxlZCwudWktd2lkZ2V0LWNvbnRlbnQgLnVpLXN0YXRlLWRpc2FibGVkLC51aS13aWRnZXQtaGVhZGVyIC51aS1zdGF0ZS1kaXNhYmxlZHtvcGFjaXR5Oi4zNTstbXMtZmlsdGVyOiJhbHBoYShvcGFjaXR5PTM1KSI7YmFja2dyb3VuZC1pbWFnZTpub25lfS51aS1zdGF0ZS1kaXNhYmxlZCAudWktaWNvbnstbXMtZmlsdGVyOiJhbHBoYShvcGFjaXR5PTM1KSJ9LnVpLWljb257d2lkdGg6MTZweDtoZWlnaHQ6MTZweH0udWktaWNvbiwudWktd2lkZ2V0LWNvbnRlbnQgLnVpLWljb257YmFja2dyb3VuZC1pbWFnZTp1cmwoImltYWdlcy91aS1pY29uc180NDQ0NDRfMjU2eDI0MC5wbmciKX0udWktd2lkZ2V0LWhlYWRlciAudWktaWNvbntiYWNrZ3JvdW5kLWltYWdlOnVybCgiaW1hZ2VzL3VpLWljb25zXzQ0NDQ0NF8yNTZ4MjQwLnBuZyIpfS51aS1zdGF0ZS1ob3ZlciAudWktaWNvbiwudWktc3RhdGUtZm9jdXMgLnVpLWljb24sLnVpLWJ1dHRvbjpob3ZlciAudWktaWNvbiwudWktYnV0dG9uOmZvY3VzIC51aS1pY29ue2JhY2tncm91bmQtaW1hZ2U6dXJsKCJpbWFnZXMvdWktaWNvbnNfNTU1NTU1XzI1NngyNDAucG5nIil9LnVpLXN0YXRlLWFjdGl2ZSAudWktaWNvbiwudWktYnV0dG9uOmFjdGl2ZSAudWktaWNvbntiYWNrZ3JvdW5kLWltYWdlOnVybCgiaW1hZ2VzL3VpLWljb25zX2ZmZmZmZl8yNTZ4MjQwLnBuZyIpfS51aS1zdGF0ZS1oaWdobGlnaHQgLnVpLWljb24sLnVpLWJ1dHRvbiAudWktc3RhdGUtaGlnaGxpZ2h0LnVpLWljb257YmFja2dyb3VuZC1pbWFnZTp1cmwoImltYWdlcy91aS1pY29uc183Nzc2MjBfMjU2eDI0MC5wbmciKX0udWktc3RhdGUtZXJyb3IgLnVpLWljb24sLnVpLXN0YXRlLWVycm9yLXRleHQgLnVpLWljb257YmFja2dyb3VuZC1pbWFnZTp1cmwoImltYWdlcy91aS1pY29uc19jYzAwMDBfMjU2eDI0MC5wbmciKX0udWktYnV0dG9uIC51aS1pY29ue2JhY2tncm91bmQtaW1hZ2U6dXJsKCJpbWFnZXMvdWktaWNvbnNfNzc3Nzc3XzI1NngyNDAucG5nIil9LnVpLWljb24tYmxhbmsudWktaWNvbi1ibGFuay51aS1pY29uLWJsYW5re2JhY2tncm91bmQtaW1hZ2U6bm9uZX0udWktaWNvbi1jYXJldC0xLW57YmFja2dyb3VuZC1wb3NpdGlvbjowIDB9LnVpLWljb24tY2FyZXQtMS1uZXtiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xNnB4IDB9LnVpLWljb24tY2FyZXQtMS1le2JhY2tncm91bmQtcG9zaXRpb246LTMycHggMH0udWktaWNvbi1jYXJldC0xLXNle2JhY2tncm91bmQtcG9zaXRpb246LTQ4cHggMH0udWktaWNvbi1jYXJldC0xLXN7YmFja2dyb3VuZC1wb3NpdGlvbjotNjVweCAwfS51aS1pY29uLWNhcmV0LTEtc3d7YmFja2dyb3VuZC1wb3NpdGlvbjotODBweCAwfS51aS1pY29uLWNhcmV0LTEtd3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi05NnB4IDB9LnVpLWljb24tY2FyZXQtMS1ud3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xMTJweCAwfS51aS1pY29uLWNhcmV0LTItbi1ze2JhY2tncm91bmQtcG9zaXRpb246LTEyOHB4IDB9LnVpLWljb24tY2FyZXQtMi1lLXd7YmFja2dyb3VuZC1wb3NpdGlvbjotMTQ0cHggMH0udWktaWNvbi10cmlhbmdsZS0xLW57YmFja2dyb3VuZC1wb3NpdGlvbjowIC0xNnB4fS51aS1pY29uLXRyaWFuZ2xlLTEtbmV7YmFja2dyb3VuZC1wb3NpdGlvbjotMTZweCAtMTZweH0udWktaWNvbi10cmlhbmdsZS0xLWV7YmFja2dyb3VuZC1wb3NpdGlvbjotMzJweCAtMTZweH0udWktaWNvbi10cmlhbmdsZS0xLXNle2JhY2tncm91bmQtcG9zaXRpb246LTQ4cHggLTE2cHh9LnVpLWljb24tdHJpYW5nbGUtMS1ze2JhY2tncm91bmQtcG9zaXRpb246LTY1cHggLTE2cHh9LnVpLWljb24tdHJpYW5nbGUtMS1zd3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi04MHB4IC0xNnB4fS51aS1pY29uLXRyaWFuZ2xlLTEtd3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi05NnB4IC0xNnB4fS51aS1pY29uLXRyaWFuZ2xlLTEtbnd7YmFja2dyb3VuZC1wb3NpdGlvbjotMTEycHggLTE2cHh9LnVpLWljb24tdHJpYW5nbGUtMi1uLXN7YmFja2dyb3VuZC1wb3NpdGlvbjotMTI4cHggLTE2cHh9LnVpLWljb24tdHJpYW5nbGUtMi1lLXd7YmFja2dyb3VuZC1wb3NpdGlvbjotMTQ0cHggLTE2cHh9LnVpLWljb24tYXJyb3ctMS1ue2JhY2tncm91bmQtcG9zaXRpb246MCAtMzJweH0udWktaWNvbi1hcnJvdy0xLW5le2JhY2tncm91bmQtcG9zaXRpb246LTE2cHggLTMycHh9LnVpLWljb24tYXJyb3ctMS1le2JhY2tncm91bmQtcG9zaXRpb246LTMycHggLTMycHh9LnVpLWljb24tYXJyb3ctMS1zZXtiYWNrZ3JvdW5kLXBvc2l0aW9uOi00OHB4IC0zMnB4fS51aS1pY29uLWFycm93LTEtc3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi02NXB4IC0zMnB4fS51aS1pY29uLWFycm93LTEtc3d7YmFja2dyb3VuZC1wb3NpdGlvbjotODBweCAtMzJweH0udWktaWNvbi1hcnJvdy0xLXd7YmFja2dyb3VuZC1wb3NpdGlvbjotOTZweCAtMzJweH0udWktaWNvbi1hcnJvdy0xLW53e2JhY2tncm91bmQtcG9zaXRpb246LTExMnB4IC0zMnB4fS51aS1pY29uLWFycm93LTItbi1ze2JhY2tncm91bmQtcG9zaXRpb246LTEyOHB4IC0zMnB4fS51aS1pY29uLWFycm93LTItbmUtc3d7YmFja2dyb3VuZC1wb3NpdGlvbjotMTQ0cHggLTMycHh9LnVpLWljb24tYXJyb3ctMi1lLXd7YmFja2dyb3VuZC1wb3NpdGlvbjotMTYwcHggLTMycHh9LnVpLWljb24tYXJyb3ctMi1zZS1ud3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xNzZweCAtMzJweH0udWktaWNvbi1hcnJvd3N0b3AtMS1ue2JhY2tncm91bmQtcG9zaXRpb246LTE5MnB4IC0zMnB4fS51aS1pY29uLWFycm93c3RvcC0xLWV7YmFja2dyb3VuZC1wb3NpdGlvbjotMjA4cHggLTMycHh9LnVpLWljb24tYXJyb3dzdG9wLTEtc3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi0yMjRweCAtMzJweH0udWktaWNvbi1hcnJvd3N0b3AtMS13e2JhY2tncm91bmQtcG9zaXRpb246LTI0MHB4IC0zMnB4fS51aS1pY29uLWFycm93dGhpY2stMS1ue2JhY2tncm91bmQtcG9zaXRpb246MXB4IC00OHB4fS51aS1pY29uLWFycm93dGhpY2stMS1uZXtiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xNnB4IC00OHB4fS51aS1pY29uLWFycm93dGhpY2stMS1le2JhY2tncm91bmQtcG9zaXRpb246LTMycHggLTQ4cHh9LnVpLWljb24tYXJyb3d0aGljay0xLXNle2JhY2tncm91bmQtcG9zaXRpb246LTQ4cHggLTQ4cHh9LnVpLWljb24tYXJyb3d0aGljay0xLXN7YmFja2dyb3VuZC1wb3NpdGlvbjotNjRweCAtNDhweH0udWktaWNvbi1hcnJvd3RoaWNrLTEtc3d7YmFja2dyb3VuZC1wb3NpdGlvbjotODBweCAtNDhweH0udWktaWNvbi1hcnJvd3RoaWNrLTEtd3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi05NnB4IC00OHB4fS51aS1pY29uLWFycm93dGhpY2stMS1ud3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xMTJweCAtNDhweH0udWktaWNvbi1hcnJvd3RoaWNrLTItbi1ze2JhY2tncm91bmQtcG9zaXRpb246LTEyOHB4IC00OHB4fS51aS1pY29uLWFycm93dGhpY2stMi1uZS1zd3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xNDRweCAtNDhweH0udWktaWNvbi1hcnJvd3RoaWNrLTItZS13e2JhY2tncm91bmQtcG9zaXRpb246LTE2MHB4IC00OHB4fS51aS1pY29uLWFycm93dGhpY2stMi1zZS1ud3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xNzZweCAtNDhweH0udWktaWNvbi1hcnJvd3RoaWNrc3RvcC0xLW57YmFja2dyb3VuZC1wb3NpdGlvbjotMTkycHggLTQ4cHh9LnVpLWljb24tYXJyb3d0aGlja3N0b3AtMS1le2JhY2tncm91bmQtcG9zaXRpb246LTIwOHB4IC00OHB4fS51aS1pY29uLWFycm93dGhpY2tzdG9wLTEtc3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi0yMjRweCAtNDhweH0udWktaWNvbi1hcnJvd3RoaWNrc3RvcC0xLXd7YmFja2dyb3VuZC1wb3NpdGlvbjotMjQwcHggLTQ4cHh9LnVpLWljb24tYXJyb3dyZXR1cm50aGljay0xLXd7YmFja2dyb3VuZC1wb3NpdGlvbjowIC02NHB4fS51aS1pY29uLWFycm93cmV0dXJudGhpY2stMS1ue2JhY2tncm91bmQtcG9zaXRpb246LTE2cHggLTY0cHh9LnVpLWljb24tYXJyb3dyZXR1cm50aGljay0xLWV7YmFja2dyb3VuZC1wb3NpdGlvbjotMzJweCAtNjRweH0udWktaWNvbi1hcnJvd3JldHVybnRoaWNrLTEtc3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi00OHB4IC02NHB4fS51aS1pY29uLWFycm93cmV0dXJuLTEtd3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi02NHB4IC02NHB4fS51aS1pY29uLWFycm93cmV0dXJuLTEtbntiYWNrZ3JvdW5kLXBvc2l0aW9uOi04MHB4IC02NHB4fS51aS1pY29uLWFycm93cmV0dXJuLTEtZXtiYWNrZ3JvdW5kLXBvc2l0aW9uOi05NnB4IC02NHB4fS51aS1pY29uLWFycm93cmV0dXJuLTEtc3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xMTJweCAtNjRweH0udWktaWNvbi1hcnJvd3JlZnJlc2gtMS13e2JhY2tncm91bmQtcG9zaXRpb246LTEyOHB4IC02NHB4fS51aS1pY29uLWFycm93cmVmcmVzaC0xLW57YmFja2dyb3VuZC1wb3NpdGlvbjotMTQ0cHggLTY0cHh9LnVpLWljb24tYXJyb3dyZWZyZXNoLTEtZXtiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xNjBweCAtNjRweH0udWktaWNvbi1hcnJvd3JlZnJlc2gtMS1ze2JhY2tncm91bmQtcG9zaXRpb246LTE3NnB4IC02NHB4fS51aS1pY29uLWFycm93LTR7YmFja2dyb3VuZC1wb3NpdGlvbjowIC04MHB4fS51aS1pY29uLWFycm93LTQtZGlhZ3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xNnB4IC04MHB4fS51aS1pY29uLWV4dGxpbmt7YmFja2dyb3VuZC1wb3NpdGlvbjotMzJweCAtODBweH0udWktaWNvbi1uZXd3aW57YmFja2dyb3VuZC1wb3NpdGlvbjotNDhweCAtODBweH0udWktaWNvbi1yZWZyZXNoe2JhY2tncm91bmQtcG9zaXRpb246LTY0cHggLTgwcHh9LnVpLWljb24tc2h1ZmZsZXtiYWNrZ3JvdW5kLXBvc2l0aW9uOi04MHB4IC04MHB4fS51aS1pY29uLXRyYW5zZmVyLWUtd3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi05NnB4IC04MHB4fS51aS1pY29uLXRyYW5zZmVydGhpY2stZS13e2JhY2tncm91bmQtcG9zaXRpb246LTExMnB4IC04MHB4fS51aS1pY29uLWZvbGRlci1jb2xsYXBzZWR7YmFja2dyb3VuZC1wb3NpdGlvbjowIC05NnB4fS51aS1pY29uLWZvbGRlci1vcGVue2JhY2tncm91bmQtcG9zaXRpb246LTE2cHggLTk2cHh9LnVpLWljb24tZG9jdW1lbnR7YmFja2dyb3VuZC1wb3NpdGlvbjotMzJweCAtOTZweH0udWktaWNvbi1kb2N1bWVudC1ie2JhY2tncm91bmQtcG9zaXRpb246LTQ4cHggLTk2cHh9LnVpLWljb24tbm90ZXtiYWNrZ3JvdW5kLXBvc2l0aW9uOi02NHB4IC05NnB4fS51aS1pY29uLW1haWwtY2xvc2Vke2JhY2tncm91bmQtcG9zaXRpb246LTgwcHggLTk2cHh9LnVpLWljb24tbWFpbC1vcGVue2JhY2tncm91bmQtcG9zaXRpb246LTk2cHggLTk2cHh9LnVpLWljb24tc3VpdGNhc2V7YmFja2dyb3VuZC1wb3NpdGlvbjotMTEycHggLTk2cHh9LnVpLWljb24tY29tbWVudHtiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xMjhweCAtOTZweH0udWktaWNvbi1wZXJzb257YmFja2dyb3VuZC1wb3NpdGlvbjotMTQ0cHggLTk2cHh9LnVpLWljb24tcHJpbnR7YmFja2dyb3VuZC1wb3NpdGlvbjotMTYwcHggLTk2cHh9LnVpLWljb24tdHJhc2h7YmFja2dyb3VuZC1wb3NpdGlvbjotMTc2cHggLTk2cHh9LnVpLWljb24tbG9ja2Vke2JhY2tncm91bmQtcG9zaXRpb246LTE5MnB4IC05NnB4fS51aS1pY29uLXVubG9ja2Vke2JhY2tncm91bmQtcG9zaXRpb246LTIwOHB4IC05NnB4fS51aS1pY29uLWJvb2ttYXJre2JhY2tncm91bmQtcG9zaXRpb246LTIyNHB4IC05NnB4fS51aS1pY29uLXRhZ3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi0yNDBweCAtOTZweH0udWktaWNvbi1ob21le2JhY2tncm91bmQtcG9zaXRpb246MCAtMTEycHh9LnVpLWljb24tZmxhZ3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xNnB4IC0xMTJweH0udWktaWNvbi1jYWxlbmRhcntiYWNrZ3JvdW5kLXBvc2l0aW9uOi0zMnB4IC0xMTJweH0udWktaWNvbi1jYXJ0e2JhY2tncm91bmQtcG9zaXRpb246LTQ4cHggLTExMnB4fS51aS1pY29uLXBlbmNpbHtiYWNrZ3JvdW5kLXBvc2l0aW9uOi02NHB4IC0xMTJweH0udWktaWNvbi1jbG9ja3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi04MHB4IC0xMTJweH0udWktaWNvbi1kaXNre2JhY2tncm91bmQtcG9zaXRpb246LTk2cHggLTExMnB4fS51aS1pY29uLWNhbGN1bGF0b3J7YmFja2dyb3VuZC1wb3NpdGlvbjotMTEycHggLTExMnB4fS51aS1pY29uLXpvb21pbntiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xMjhweCAtMTEycHh9LnVpLWljb24tem9vbW91dHtiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xNDRweCAtMTEycHh9LnVpLWljb24tc2VhcmNoe2JhY2tncm91bmQtcG9zaXRpb246LTE2MHB4IC0xMTJweH0udWktaWNvbi13cmVuY2h7YmFja2dyb3VuZC1wb3NpdGlvbjotMTc2cHggLTExMnB4fS51aS1pY29uLWdlYXJ7YmFja2dyb3VuZC1wb3NpdGlvbjotMTkycHggLTExMnB4fS51aS1pY29uLWhlYXJ0e2JhY2tncm91bmQtcG9zaXRpb246LTIwOHB4IC0xMTJweH0udWktaWNvbi1zdGFye2JhY2tncm91bmQtcG9zaXRpb246LTIyNHB4IC0xMTJweH0udWktaWNvbi1saW5re2JhY2tncm91bmQtcG9zaXRpb246LTI0MHB4IC0xMTJweH0udWktaWNvbi1jYW5jZWx7YmFja2dyb3VuZC1wb3NpdGlvbjowIC0xMjhweH0udWktaWNvbi1wbHVze2JhY2tncm91bmQtcG9zaXRpb246LTE2cHggLTEyOHB4fS51aS1pY29uLXBsdXN0aGlja3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi0zMnB4IC0xMjhweH0udWktaWNvbi1taW51c3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi00OHB4IC0xMjhweH0udWktaWNvbi1taW51c3RoaWNre2JhY2tncm91bmQtcG9zaXRpb246LTY0cHggLTEyOHB4fS51aS1pY29uLWNsb3Nle2JhY2tncm91bmQtcG9zaXRpb246LTgwcHggLTEyOHB4fS51aS1pY29uLWNsb3NldGhpY2t7YmFja2dyb3VuZC1wb3NpdGlvbjotOTZweCAtMTI4cHh9LnVpLWljb24ta2V5e2JhY2tncm91bmQtcG9zaXRpb246LTExMnB4IC0xMjhweH0udWktaWNvbi1saWdodGJ1bGJ7YmFja2dyb3VuZC1wb3NpdGlvbjotMTI4cHggLTEyOHB4fS51aS1pY29uLXNjaXNzb3Jze2JhY2tncm91bmQtcG9zaXRpb246LTE0NHB4IC0xMjhweH0udWktaWNvbi1jbGlwYm9hcmR7YmFja2dyb3VuZC1wb3NpdGlvbjotMTYwcHggLTEyOHB4fS51aS1pY29uLWNvcHl7YmFja2dyb3VuZC1wb3NpdGlvbjotMTc2cHggLTEyOHB4fS51aS1pY29uLWNvbnRhY3R7YmFja2dyb3VuZC1wb3NpdGlvbjotMTkycHggLTEyOHB4fS51aS1pY29uLWltYWdle2JhY2tncm91bmQtcG9zaXRpb246LTIwOHB4IC0xMjhweH0udWktaWNvbi12aWRlb3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi0yMjRweCAtMTI4cHh9LnVpLWljb24tc2NyaXB0e2JhY2tncm91bmQtcG9zaXRpb246LTI0MHB4IC0xMjhweH0udWktaWNvbi1hbGVydHtiYWNrZ3JvdW5kLXBvc2l0aW9uOjAgLTE0NHB4fS51aS1pY29uLWluZm97YmFja2dyb3VuZC1wb3NpdGlvbjotMTZweCAtMTQ0cHh9LnVpLWljb24tbm90aWNle2JhY2tncm91bmQtcG9zaXRpb246LTMycHggLTE0NHB4fS51aS1pY29uLWhlbHB7YmFja2dyb3VuZC1wb3NpdGlvbjotNDhweCAtMTQ0cHh9LnVpLWljb24tY2hlY2t7YmFja2dyb3VuZC1wb3NpdGlvbjotNjRweCAtMTQ0cHh9LnVpLWljb24tYnVsbGV0e2JhY2tncm91bmQtcG9zaXRpb246LTgwcHggLTE0NHB4fS51aS1pY29uLXJhZGlvLW9ue2JhY2tncm91bmQtcG9zaXRpb246LTk2cHggLTE0NHB4fS51aS1pY29uLXJhZGlvLW9mZntiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xMTJweCAtMTQ0cHh9LnVpLWljb24tcGluLXd7YmFja2dyb3VuZC1wb3NpdGlvbjotMTI4cHggLTE0NHB4fS51aS1pY29uLXBpbi1ze2JhY2tncm91bmQtcG9zaXRpb246LTE0NHB4IC0xNDRweH0udWktaWNvbi1wbGF5e2JhY2tncm91bmQtcG9zaXRpb246MCAtMTYwcHh9LnVpLWljb24tcGF1c2V7YmFja2dyb3VuZC1wb3NpdGlvbjotMTZweCAtMTYwcHh9LnVpLWljb24tc2Vlay1uZXh0e2JhY2tncm91bmQtcG9zaXRpb246LTMycHggLTE2MHB4fS51aS1pY29uLXNlZWstcHJldntiYWNrZ3JvdW5kLXBvc2l0aW9uOi00OHB4IC0xNjBweH0udWktaWNvbi1zZWVrLWVuZHtiYWNrZ3JvdW5kLXBvc2l0aW9uOi02NHB4IC0xNjBweH0udWktaWNvbi1zZWVrLXN0YXJ0e2JhY2tncm91bmQtcG9zaXRpb246LTgwcHggLTE2MHB4fS51aS1pY29uLXNlZWstZmlyc3R7YmFja2dyb3VuZC1wb3NpdGlvbjotODBweCAtMTYwcHh9LnVpLWljb24tc3RvcHtiYWNrZ3JvdW5kLXBvc2l0aW9uOi05NnB4IC0xNjBweH0udWktaWNvbi1lamVjdHtiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xMTJweCAtMTYwcHh9LnVpLWljb24tdm9sdW1lLW9mZntiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xMjhweCAtMTYwcHh9LnVpLWljb24tdm9sdW1lLW9ue2JhY2tncm91bmQtcG9zaXRpb246LTE0NHB4IC0xNjBweH0udWktaWNvbi1wb3dlcntiYWNrZ3JvdW5kLXBvc2l0aW9uOjAgLTE3NnB4fS51aS1pY29uLXNpZ25hbC1kaWFne2JhY2tncm91bmQtcG9zaXRpb246LTE2cHggLTE3NnB4fS51aS1pY29uLXNpZ25hbHtiYWNrZ3JvdW5kLXBvc2l0aW9uOi0zMnB4IC0xNzZweH0udWktaWNvbi1iYXR0ZXJ5LTB7YmFja2dyb3VuZC1wb3NpdGlvbjotNDhweCAtMTc2cHh9LnVpLWljb24tYmF0dGVyeS0xe2JhY2tncm91bmQtcG9zaXRpb246LTY0cHggLTE3NnB4fS51aS1pY29uLWJhdHRlcnktMntiYWNrZ3JvdW5kLXBvc2l0aW9uOi04MHB4IC0xNzZweH0udWktaWNvbi1iYXR0ZXJ5LTN7YmFja2dyb3VuZC1wb3NpdGlvbjotOTZweCAtMTc2cHh9LnVpLWljb24tY2lyY2xlLXBsdXN7YmFja2dyb3VuZC1wb3NpdGlvbjowIC0xOTJweH0udWktaWNvbi1jaXJjbGUtbWludXN7YmFja2dyb3VuZC1wb3NpdGlvbjotMTZweCAtMTkycHh9LnVpLWljb24tY2lyY2xlLWNsb3Nle2JhY2tncm91bmQtcG9zaXRpb246LTMycHggLTE5MnB4fS51aS1pY29uLWNpcmNsZS10cmlhbmdsZS1le2JhY2tncm91bmQtcG9zaXRpb246LTQ4cHggLTE5MnB4fS51aS1pY29uLWNpcmNsZS10cmlhbmdsZS1ze2JhY2tncm91bmQtcG9zaXRpb246LTY0cHggLTE5MnB4fS51aS1pY29uLWNpcmNsZS10cmlhbmdsZS13e2JhY2tncm91bmQtcG9zaXRpb246LTgwcHggLTE5MnB4fS51aS1pY29uLWNpcmNsZS10cmlhbmdsZS1ue2JhY2tncm91bmQtcG9zaXRpb246LTk2cHggLTE5MnB4fS51aS1pY29uLWNpcmNsZS1hcnJvdy1le2JhY2tncm91bmQtcG9zaXRpb246LTExMnB4IC0xOTJweH0udWktaWNvbi1jaXJjbGUtYXJyb3ctc3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xMjhweCAtMTkycHh9LnVpLWljb24tY2lyY2xlLWFycm93LXd7YmFja2dyb3VuZC1wb3NpdGlvbjotMTQ0cHggLTE5MnB4fS51aS1pY29uLWNpcmNsZS1hcnJvdy1ue2JhY2tncm91bmQtcG9zaXRpb246LTE2MHB4IC0xOTJweH0udWktaWNvbi1jaXJjbGUtem9vbWlue2JhY2tncm91bmQtcG9zaXRpb246LTE3NnB4IC0xOTJweH0udWktaWNvbi1jaXJjbGUtem9vbW91dHtiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xOTJweCAtMTkycHh9LnVpLWljb24tY2lyY2xlLWNoZWNre2JhY2tncm91bmQtcG9zaXRpb246LTIwOHB4IC0xOTJweH0udWktaWNvbi1jaXJjbGVzbWFsbC1wbHVze2JhY2tncm91bmQtcG9zaXRpb246MCAtMjA4cHh9LnVpLWljb24tY2lyY2xlc21hbGwtbWludXN7YmFja2dyb3VuZC1wb3NpdGlvbjotMTZweCAtMjA4cHh9LnVpLWljb24tY2lyY2xlc21hbGwtY2xvc2V7YmFja2dyb3VuZC1wb3NpdGlvbjotMzJweCAtMjA4cHh9LnVpLWljb24tc3F1YXJlc21hbGwtcGx1c3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi00OHB4IC0yMDhweH0udWktaWNvbi1zcXVhcmVzbWFsbC1taW51c3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi02NHB4IC0yMDhweH0udWktaWNvbi1zcXVhcmVzbWFsbC1jbG9zZXtiYWNrZ3JvdW5kLXBvc2l0aW9uOi04MHB4IC0yMDhweH0udWktaWNvbi1ncmlwLWRvdHRlZC12ZXJ0aWNhbHtiYWNrZ3JvdW5kLXBvc2l0aW9uOjAgLTIyNHB4fS51aS1pY29uLWdyaXAtZG90dGVkLWhvcml6b250YWx7YmFja2dyb3VuZC1wb3NpdGlvbjotMTZweCAtMjI0cHh9LnVpLWljb24tZ3JpcC1zb2xpZC12ZXJ0aWNhbHtiYWNrZ3JvdW5kLXBvc2l0aW9uOi0zMnB4IC0yMjRweH0udWktaWNvbi1ncmlwLXNvbGlkLWhvcml6b250YWx7YmFja2dyb3VuZC1wb3NpdGlvbjotNDhweCAtMjI0cHh9LnVpLWljb24tZ3JpcHNtYWxsLWRpYWdvbmFsLXNle2JhY2tncm91bmQtcG9zaXRpb246LTY0cHggLTIyNHB4fS51aS1pY29uLWdyaXAtZGlhZ29uYWwtc2V7YmFja2dyb3VuZC1wb3NpdGlvbjotODBweCAtMjI0cHh9LnVpLWNvcm5lci1hbGwsLnVpLWNvcm5lci10b3AsLnVpLWNvcm5lci1sZWZ0LC51aS1jb3JuZXItdGx7Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czozcHh9LnVpLWNvcm5lci1hbGwsLnVpLWNvcm5lci10b3AsLnVpLWNvcm5lci1yaWdodCwudWktY29ybmVyLXRye2JvcmRlci10b3AtcmlnaHQtcmFkaXVzOjNweH0udWktY29ybmVyLWFsbCwudWktY29ybmVyLWJvdHRvbSwudWktY29ybmVyLWxlZnQsLnVpLWNvcm5lci1ibHtib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjNweH0udWktY29ybmVyLWFsbCwudWktY29ybmVyLWJvdHRvbSwudWktY29ybmVyLXJpZ2h0LC51aS1jb3JuZXItYnJ7Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6M3B4fS51aS13aWRnZXQtb3ZlcmxheXtiYWNrZ3JvdW5kOiNhYWE7b3BhY2l0eTouMzstbXMtZmlsdGVyOkFscGhhKE9wYWNpdHk9MzApfS51aS13aWRnZXQtc2hhZG93ey13ZWJraXQtYm94LXNoYWRvdzowIDAgNXB4ICM2NjY7Ym94LXNoYWRvdzowIDAgNXB4ICM2NjZ9Ci8qKiAvY3NzL2Rhcmt0b29sdGlwLmNzcyAqKi8KLmRhcmstdG9vbHRpcHtkaXNwbGF5Om5vbmU7cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxMDAwO3RleHQtZGVjb3JhdGlvbjpub25lO2ZvbnQtd2VpZ2h0Om5vcm1hbDtoZWlnaHQ6YXV0bzt0b3A6MDtsZWZ0OjB9LmRhcmstdG9vbHRpcC5zbWFsbHtwYWRkaW5nOjRweDtmb250LXNpemU6MC43NXJlbSA7bWF4LXdpZHRoOjE1MHB4Oy13ZWJraXQtYm9yZGVyLXJhZGl1czoycHg7LW1vei1ib3JkZXItcmFkaXVzOjJweDtib3JkZXItcmFkaXVzOjJweH0uZGFyay10b29sdGlwLm1lZGl1bXtwYWRkaW5nOjZweDtmb250LXNpemU6MC42ODhyZW0gO21heC13aWR0aDoyMDBweDstd2Via2l0LWJvcmRlci1yYWRpdXM6NHB4Oy1tb3otYm9yZGVyLXJhZGl1czo0cHg7Ym9yZGVyLXJhZGl1czo0cHh9LmRhcmstdG9vbHRpcC5sYXJnZXtwYWRkaW5nOjE2cHg7Zm9udC1zaXplOjFyZW0gO21heC13aWR0aDoyNTBweDstd2Via2l0LWJvcmRlci1yYWRpdXM6NnB4Oy1tb3otYm9yZGVyLXJhZGl1czo2cHg7Ym9yZGVyLXJhZGl1czo2cHh9LmRhcmstdG9vbHRpcCAudGlwe3RyYW5zZm9ybTpzY2FsZSgxLjAxKTstd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgxLjAxKTt0cmFuc2Zvcm06c2NhbGUoMS4wMSk7Y29udGVudDoiIjtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDowO2hlaWdodDowO2JvcmRlci1zdHlsZTpzb2xpZDtsaW5lLWhlaWdodDowfS5kYXJrLXRvb2x0aXAuc291dGggLnRpcHtsZWZ0OjUwJTt0b3A6MTAwJX0uZGFyay10b29sdGlwLndlc3QgLnRpcHtsZWZ0OjA7dG9wOjUwJX0uZGFyay10b29sdGlwLm5vcnRoIC50aXB7bGVmdDo1MCU7dG9wOjB9LmRhcmstdG9vbHRpcC5lYXN0IC50aXB7bGVmdDoxMDAlO3RvcDo1MCV9LmRhcmstdG9vbHRpcC5zb3V0aC5zbWFsbCAudGlwe2JvcmRlci13aWR0aDowIDVweCAwIDVweDttYXJnaW4tbGVmdDotNXB4fS5kYXJrLXRvb2x0aXAuc291dGgubWVkaXVtIC50aXB7Ym9yZGVyLXdpZHRoOjAgNnB4IDAgNnB4O21hcmdpbi1sZWZ0Oi02cHh9LmRhcmstdG9vbHRpcC5zb3V0aC5sYXJnZSAudGlwe2JvcmRlci13aWR0aDowIDEycHggMCAxMnB4O21hcmdpbi1sZWZ0Oi0xMnB4fS5kYXJrLXRvb2x0aXAud2VzdC5zbWFsbCAudGlwe2JvcmRlci13aWR0aDo1cHggN3B4IDVweCAwO21hcmdpbi1sZWZ0Oi03cHg7bWFyZ2luLXRvcDotNXB4fS5kYXJrLXRvb2x0aXAud2VzdC5tZWRpdW0gLnRpcHtib3JkZXItd2lkdGg6NnB4IDhweCA2cHggMDttYXJnaW4tbGVmdDotOHB4O21hcmdpbi10b3A6LTZweH0uZGFyay10b29sdGlwLndlc3QubGFyZ2UgLnRpcHtib3JkZXItd2lkdGg6MTJweCAxNHB4IDEycHggMDttYXJnaW4tbGVmdDotMTRweDttYXJnaW4tdG9wOi0xMnB4fS5kYXJrLXRvb2x0aXAubm9ydGguc21hbGwgLnRpcHtib3JkZXItd2lkdGg6MCA1cHggN3B4IDVweDttYXJnaW4tbGVmdDotNXB4O21hcmdpbi10b3A6LTdweH0uZGFyay10b29sdGlwLm5vcnRoLm1lZGl1bSAudGlwe2JvcmRlci13aWR0aDowIDZweCA4cHggNnB4O21hcmdpbi1sZWZ0Oi02cHg7bWFyZ2luLXRvcDotOHB4fS5kYXJrLXRvb2x0aXAubm9ydGgubGFyZ2UgLnRpcHtib3JkZXItd2lkdGg6MCAxMnB4IDE0cHggMTJweDttYXJnaW4tbGVmdDotMTJweDttYXJnaW4tdG9wOi0xNHB4fS5kYXJrLXRvb2x0aXAuZWFzdC5zbWFsbCAudGlwe2JvcmRlci13aWR0aDo1cHggMCA1cHggMDttYXJnaW4tdG9wOi01cHh9LmRhcmstdG9vbHRpcC5lYXN0Lm1lZGl1bSAudGlwe2JvcmRlci13aWR0aDo2cHggMCA2cHggMDttYXJnaW4tdG9wOi02cHh9LmRhcmstdG9vbHRpcC5lYXN0LmxhcmdlIC50aXB7Ym9yZGVyLXdpZHRoOjEycHggMCAxMnB4IDA7bWFyZ2luLXRvcDotMTJweH0uZGFyay10b29sdGlwIHVsLmNvbmZpcm17bGlzdC1zdHlsZS10eXBlOm5vbmU7bWFyZ2luLXRvcDo1cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7bWFyZ2luOjAgYXV0b30uZGFyay10b29sdGlwIHVsLmNvbmZpcm0gbGl7cGFkZGluZzoxMHB4O2Zsb2F0OmxlZnQ7bWFyZ2luOjVweDttaW4td2lkdGg6MjVweDstd2Via2l0LWJvcmRlci1yYWRpdXM6M3B4Oy1tb3otYm9yZGVyLXJhZGl1czozcHg7LW8tYm9yZGVyLXJhZGl1czozcHg7Ym9yZGVyLXJhZGl1czozcHh9LmRhcmstdG9vbHRpcC5kYXJre2JhY2tncm91bmQtY29sb3I6I2RhZDlkYjtjb2xvcjojMDAwfS5kYXJrLXRvb2x0aXAubGlnaHR7YmFja2dyb3VuZC1jb2xvcjojZjVmNWY1O2NvbG9yOiM1ZTVlNWU7Ym9yZGVyOjFweCBzb2xpZCAjNWU1ZTVlO3otaW5kZXg6MTAwMDAzMH0uZGFyay10b29sdGlwLmRhcmsuc291dGggLnRpcHtib3JkZXItY29sb3I6I2RhZDlkYiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtfYm9yZGVyLWNvbG9yOiNkYWQ5ZGIgIzAwMCAjMDAwICMwMDA7X2ZpbHRlcjpwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuQ2hyb21hKGNvbG9yPScjMDAwMDAwJyl9LmRhcmstdG9vbHRpcC5kYXJrLndlc3QgLnRpcHtib3JkZXItY29sb3I6dHJhbnNwYXJlbnQgI2RhZDlkYiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtfYm9yZGVyLWNvbG9yOiMwMDAgI2RhZDlkYiAjMDAwICMwMDA7X2ZpbHRlcjpwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuQ2hyb21hKGNvbG9yPScjMDAwMDAwJyl9LmRhcmstdG9vbHRpcC5kYXJrLm5vcnRoIC50aXB7Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICNkYWQ5ZGIgdHJhbnNwYXJlbnQ7X2JvcmRlci1jb2xvcjojMDAwICMwMDAgI2RhZDlkYiAjMDAwO19maWx0ZXI6cHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LkNocm9tYShjb2xvcj0nIzAwMDAwMCcpfS5kYXJrLXRvb2x0aXAuZGFyay5lYXN0IC50aXB7Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICNkYWQ5ZGI7X2JvcmRlci1jb2xvcjojMDAwICMwMDAgIzAwMCAjZGFkOWRiO19maWx0ZXI6cHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LkNocm9tYShjb2xvcj0nIzAwMDAwMCcpfS5kYXJrLXRvb2x0aXAubGlnaHQuc291dGggLnRpcHtib3JkZXItY29sb3I6dHJhbnNwYXJlbnQ7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtiYWNrZ3JvdW5kLWltYWdlOnVybCgvY3NzL3RpcHMucG5nKTtiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7d2lkdGg6MTJweDtoZWlnaHQ6OHB4fS5kYXJrLXRvb2x0aXAubGlnaHQud2VzdCAudGlwe2JvcmRlci1jb2xvcjp0cmFuc3BhcmVudDtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2JhY2tncm91bmQtaW1hZ2U6dXJsKC9jc3MvdGlwdy5wbmcpO2JhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDt3aWR0aDo4cHg7aGVpZ2h0OjEycHh9LmRhcmstdG9vbHRpcC5saWdodC5ub3J0aCAudGlwe2JvcmRlci1jb2xvcjp0cmFuc3BhcmVudDtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2JhY2tncm91bmQtaW1hZ2U6dXJsKC9jc3MvdGlwbi5wbmcpO2JhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDt3aWR0aDoxMnB4O2hlaWdodDo4cHh9LmRhcmstdG9vbHRpcC5saWdodC5lYXN0IC50aXB7Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50O2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7YmFja2dyb3VuZC1pbWFnZTp1cmwoL2Nzcy90aXBlLnBuZyk7YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0O2JhY2tncm91bmQtcG9zaXRpb246bGVmdCBjZW50ZXI7d2lkdGg6OHB4O2hlaWdodDoxMnB4fS5kYXJrLXRvb2x0aXAuZGFyayB1bC5jb25maXJtIGxpe2JhY2tncm91bmQtY29sb3I6IzQxNmU4NX0uZGFyay10b29sdGlwLmRhcmsgdWwuY29uZmlybSBsaTpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOiM0MTdlODV9LmRhcmstdG9vbHRpcC5saWdodCB1bC5jb25maXJtIGxpe2JhY2tncm91bmQtY29sb3I6I2MxZGJkYn0uZGFyay10b29sdGlwLmxpZ2h0IHVsLmNvbmZpcm0gbGk6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjojZGNlOGU4fS5hbmltYXRlZHstd2Via2l0LWFuaW1hdGlvbi1maWxsLW1vZGU6Ym90aDstbW96LWFuaW1hdGlvbi1maWxsLW1vZGU6Ym90aDstbXMtYW5pbWF0aW9uLWZpbGwtbW9kZTpib3RoOy1vLWFuaW1hdGlvbi1maWxsLW1vZGU6Ym90aDthbmltYXRpb24tZmlsbC1tb2RlOmJvdGg7LXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246LjVzOy1tb3otYW5pbWF0aW9uLWR1cmF0aW9uOi41czstbXMtYW5pbWF0aW9uLWR1cmF0aW9uOi41czstby1hbmltYXRpb24tZHVyYXRpb246LjVzO2FuaW1hdGlvbi1kdXJhdGlvbjouNXN9QC13ZWJraXQta2V5ZnJhbWVzIGZsaXBJblVwezAuMDAwMSV7LXdlYmtpdC10cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVgoLTkwZGVnKTtvcGFjaXR5OjB9NDAley13ZWJraXQtdHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVYKDVkZWcpfTcwJXstd2Via2l0LXRyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlWCgtNWRlZyl9MTAwJXstd2Via2l0LXRyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlWCgwKTtvcGFjaXR5OjF9fUAtbW96LWtleWZyYW1lcyBmbGlwSW5VcHswLjAwMDEle3RyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlWCgtOTBkZWcpO29wYWNpdHk6MH00MCV7dHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVYKDVkZWcpfTcwJXt0cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVgoLTVkZWcpfTEwMCV7dHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVYKDApO29wYWNpdHk6MX19QC1vLWtleWZyYW1lcyBmbGlwSW5VcHswLjAwMDEley1vLXRyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlWCgtOTBkZWcpO29wYWNpdHk6MH00MCV7LW8tdHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVYKDVkZWcpfTcwJXstby10cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVgoLTVkZWcpfTEwMCV7LW8tdHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVYKDApO29wYWNpdHk6MX19QGtleWZyYW1lcyBmbGlwSW5VcHswLjAwMDEle3RyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlWCgtOTBkZWcpO29wYWNpdHk6MH00MCV7dHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVYKDVkZWcpfTcwJXt0cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVgoLTVkZWcpfTEwMCV7dHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVYKDApO29wYWNpdHk6MX19QC13ZWJraXQta2V5ZnJhbWVzIGZsaXBJblJpZ2h0ezAuMDAwMSV7LXdlYmtpdC10cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVkoLTkwZGVnKTtvcGFjaXR5OjB9NDAley13ZWJraXQtdHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVZKDVkZWcpfTcwJXstd2Via2l0LXRyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlWSgtNWRlZyl9MTAwJXstd2Via2l0LXRyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlWSgwKTtvcGFjaXR5OjF9fUAtbW96LWtleWZyYW1lcyBmbGlwSW5SaWdodHswLjAwMDEle3RyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlWSgtOTBkZWcpO29wYWNpdHk6MH00MCV7dHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVZKDVkZWcpfTcwJXt0cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVkoLTVkZWcpfTEwMCV7dHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVZKDApO29wYWNpdHk6MX19QC1vLWtleWZyYW1lcyBmbGlwSW5SaWdodHswLjAwMDEley1vLXRyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlWSgtOTBkZWcpO29wYWNpdHk6MH00MCV7LW8tdHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVZKDVkZWcpfTcwJXstby10cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVkoLTVkZWcpfTEwMCV7LW8tdHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVZKDApO29wYWNpdHk6MX19QGtleWZyYW1lcyBmbGlwSW5SaWdodHswLjAwMDEle3RyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlWSgtOTBkZWcpO29wYWNpdHk6MH00MCV7dHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVZKDVkZWcpfTcwJXt0cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVkoLTVkZWcpfTEwMCV7dHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVZKDApO29wYWNpdHk6MX19LmZsaXBJbnstd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6dmlzaWJsZSAhaW1wb3J0YW50Oy1tb3otYmFja2ZhY2UtdmlzaWJpbGl0eTp2aXNpYmxlICFpbXBvcnRhbnQ7LW8tYmFja2ZhY2UtdmlzaWJpbGl0eTp2aXNpYmxlICFpbXBvcnRhbnQ7YmFja2ZhY2UtdmlzaWJpbGl0eTp2aXNpYmxlICFpbXBvcnRhbnR9LmZsaXBJbi5zb3V0aCwuZmxpcEluLm5vcnRoey13ZWJraXQtYW5pbWF0aW9uLW5hbWU6ZmxpcEluVXA7LW1vei1hbmltYXRpb24tbmFtZTpmbGlwSW5VcDstby1hbmltYXRpb24tbmFtZTpmbGlwSW5VcDthbmltYXRpb24tbmFtZTpmbGlwSW5VcH0uZmxpcEluLndlc3QsLmZsaXBJbi5lYXN0ey13ZWJraXQtYW5pbWF0aW9uLW5hbWU6ZmxpcEluUmlnaHQ7LW1vei1hbmltYXRpb24tbmFtZTpmbGlwSW5SaWdodDstby1hbmltYXRpb24tbmFtZTpmbGlwSW5SaWdodDthbmltYXRpb24tbmFtZTpmbGlwSW5SaWdodH1ALXdlYmtpdC1rZXlmcmFtZXMgZmFkZUluezB7b3BhY2l0eTowfTEwMCV7b3BhY2l0eToxfX1ALW1vei1rZXlmcmFtZXMgZmFkZUluezB7b3BhY2l0eTowfTEwMCV7b3BhY2l0eToxfX1ALW8ta2V5ZnJhbWVzIGZhZGVJbnswe29wYWNpdHk6MH0xMDAle29wYWNpdHk6MX19QGtleWZyYW1lcyBmYWRlSW57MHtvcGFjaXR5OjB9MTAwJXtvcGFjaXR5OjF9fS5mYWRlSW57LXdlYmtpdC1hbmltYXRpb24tbmFtZTpmYWRlSW47LW1vei1hbmltYXRpb24tbmFtZTpmYWRlSW47LW8tYW5pbWF0aW9uLW5hbWU6ZmFkZUluO2FuaW1hdGlvbi1uYW1lOmZhZGVJbn0KLyoqIC9jc3MvZGl2X2Jsb2Nrcy5jc3MgKiovCmRpdi5kaXZCbG9ja1ZpZXd7IGRpc3BsYXk6YmxvY2s7IGZsb2F0OmxlZnQ7IHdpZHRoOjEwMCU7IH0gZGl2LmRpdkJsb2NrVmlldyBkaXYuZGl2QmxvY2tUaXRsZSwgZGl2LmRpdkJsb2NrVmlldyBsYWJlbC5kaXZCbG9ja1RpdGxleyBkaXNwbGF5OmJsb2NrOyBmb250LXdlaWdodDpib2xkOyB0ZXh0LWFsaWduOmxlZnQ7IHBhZGRpbmc6MzBweCAxMHB4IDEwcHggMTBweDsgY29sb3I6IzAwMDAwMDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHRleHQtdHJhbnNmb3JtOnZhcigtLXR4dC11cHBlcik7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyB9IGRpdi5kaXZCbG9ja1ZpZXcgZGl2LmRpdkJsb2NrVGl0bGUuYmxvY2tUaXRsZVN0eWxlMiwgZGl2LmRpdkJsb2NrVmlldyBsYWJlbC5kaXZCbG9ja1RpdGxlLmJsb2NrVGl0bGVTdHlsZTJ7IHBhZGRpbmc6MCA0MHB4IDEwcHg7IH0gZGl2LmRpdkJsb2NrVmlldyBkaXYuZGl2QmxvY2tDb250ZW50eyBiYWNrZ3JvdW5kOm5vbmU7IHBhZGRpbmc6MTVweCAwcHg7IG1hcmdpbjowOyBmbG9hdDpsZWZ0OyB3aWR0aDoxMDAlOyB9IGRpdi5kaXZCbG9ja1ZpZXcgZGl2LmRpdkJsb2NrQ29udGVudCBkaXYuZGl2QmxvY2tDb2x1bW57IGJhY2tncm91bmQ6bm9uZTsgcGFkZGluZzowIDQwcHg7IG1hcmdpbjowOyB3aWR0aDo4NjBweCAhaW1wb3J0YW50OyBmbG9hdDpsZWZ0OyBmb250LXNpemU6aW5oZXJpdDsgfSBkaXYuZGl2QmxvY2tWaWV3IFVMLmRpdkJsb2NrTGlzdHsgYmFja2dyb3VuZDppbml0aWFsOyBwYWRkaW5nOjA7IG1hcmdpbjowIDAgMjBweCAwOyB9IGRpdi5kaXZCbG9ja1ZpZXcgVUwuZGl2QmxvY2tMaXN0IFVMLmRpdklubmVyQmxvY2tMaXN0IHsgcGFkZGluZzoxMHB4IDAgMCAwOyB9IGRpdi5kaXZCbG9ja1ZpZXcgVUwuZGl2QmxvY2tMaXN0LnNpemVGb3I0Q29sdW1uc0xpc3R7IH0gZGl2LmRpdkJsb2NrVmlldyBVTC5kaXZCbG9ja0xpc3Q6bm90KC5zaXplRm9yNENvbHVtbnNMaXN0KTpudGgtY2hpbGQoM24rMSksIGRpdi5kaXZCbG9ja1ZpZXcgVUwuZGl2QmxvY2tMaXN0LnNpemVGb3I0Q29sdW1uc0xpc3Q6bnRoLWNoaWxkKDRuKzEpeyBjbGVhcjpsZWZ0OyB9IGRpdi5kaXZCbG9ja1ZpZXcgVUwuZGl2QmxvY2tMaXN0IGRpdi5kaXZCbG9ja0xpc3RUaXRsZXsgYmFja2dyb3VuZDppbml0aWFsOyBwYWRkaW5nOjAgMCAxMHB4IDA7IG1hcmdpbjowOyB3aWR0aDoxMDAlOyBmbG9hdDpsZWZ0OyBmb250LXdlaWdodDpib2xkIH0gZGl2LmRpdkJsb2NrVmlldyBVTC5kaXZCbG9ja0xpc3QgTEkuZGl2TGlzdEl0ZW17IHBhZGRpbmc6MCAzMHB4IDEwcHggMTBweDsgbWFyZ2luOjA7IHRleHQtaW5kZW50OjA7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2Fycm93X3JlZC5wbmcnKSBuby1yZXBlYXQgc2Nyb2xsIDAgNXB4IHRyYW5zcGFyZW50OyB9IGRpdi5kaXZCbG9ja1ZpZXcgVUwuZGl2QmxvY2tMaXN0IExJLmRpdkxpc3RJdGVtID4gQXsgbWFyZ2luOjA7IHBhZGRpbmc6MDsgYmFja2dyb3VuZDpub25lOyBmb250LXNpemU6aW5pdGlhbDsgfSBkaXYuZGl2QmxvY2tWaWV3IFVMLmRpdkJsb2NrTGlzdCBMSS5kaXZMaXN0VGl0bGUyeyBmb250LXNpemU6MS4xZW07IGJvcmRlcjowOyBtYXJnaW46MDsgcGFkZGluZzowIDAgMTBweCAwOyBmb250LXdlaWdodDpib2xkOyBsaXN0LXN0eWxlOm5vbmU7IH0gZGl2LmRpdkJsb2NrVmlldyBVTC5kaXZCbG9ja0xpc3QgTEkuZGl2TGlzdEl0ZW0yeyBwYWRkaW5nOjAgMzBweCAxMHB4IDEwcHg7IHRleHQtaW5kZW50OjA7IGxpc3Qtc3R5bGU6bm9uZSBvdXRzaWRlIG5vbmU7IGRpc3BsYXk6YmxvY2s7IG1hcmdpbjowIDAgMCAxMnB4OyB9IGRpdi5kaXZCbG9ja1ZpZXcgVUwuZGl2QmxvY2tMaXN0IExJLmRpdkxpc3RJdGVtMiAub3RoZXJPcHRpb25MYWJlbHsgZm9udC13ZWlnaHQ6Ym9sZCAhaW1wb3J0YW50OyB9IGRpdi5kaXZCbG9ja1ZpZXcgVUwuZGl2QmxvY2tMaXN0IExJLmRpdkxpc3RJdGVtMjpiZWZvcmV7IGNvbnRlbnQ6IlxmMTM4IjsgZm9udC1mYW1pbHk6J0ZvbnQgQXdlc29tZSA1IFBybyc7IGZvbnQtd2VpZ2h0OjkwMDsgbWFyZ2luLXJpZ2h0OjA7IG1hcmdpbi1sZWZ0Oi0yMXB4OyBwYWRkaW5nLXJpZ2h0OjVweDsgZm9udC1zaXplOjAuODc1cmVtIDsgfSBkaXYuZGl2QmxvY2tWaWV3IFVMLmRpdkJsb2NrTGlzdCBVTC5kaXZJbm5lckJsb2NrTGlzdCBMSS5kaXZMaXN0SXRlbTI6YmVmb3JleyBmb250LXdlaWdodDpub3JtYWw7IH0gZGl2LmRpdkJsb2NrVmlldyBVTC5kaXZCbG9ja0xpc3QgVUwuZGl2SW5uZXJCbG9ja0xpc3QgTEkgeyBwYWRkaW5nOjAgMzBweCAxMHB4IDEwcHg7IH0gZGl2LmRpdkJsb2NrVmlldyBVTC5kaXZCbG9ja0xpc3QgTEkuZGl2TGlzdEl0ZW0ubm9TdHlsZUl0ZW17IHBhZGRpbmc6MCAwIDVweCAwOyBtYXJnaW46MDsgdGV4dC1pbmRlbnQ6MDsgYmFja2dyb3VuZDpub25lOyBsaXN0LXN0eWxlOm5vbmU7IH0gZGl2LmRpdkJsb2NrVmlldyBVTC5kaXZCbG9ja0xpc3QgTEkuZGl2TGlzdEl0ZW0ub25TYW1lTGluZXsgcGFkZGluZy1yaWdodDoxNXB4OyBkaXNwbGF5OmlubGluZS10YWJsZTsgfSBkaXYuZGl2QmxvY2tWaWV3IFVMLmRpdkJsb2NrTGlzdCBMSS5kaXZMaXN0SXRlbS5vblNhbWVMaW5lOmxhc3QtY2hpbGR7IHBhZGRpbmctcmlnaHQ6MDsgfSBkaXYuZGl2QmxvY2tWaWV3IGRpdi5kaXZCbG9ja1RhYmxlT3V0ZXJ7IH0gZGl2LmRpdkJsb2NrVmlldyBkaXYuZGl2QmxvY2tUYWJsZXsgZGlzcGxheTp0YWJsZTsgd2lkdGg6MTAwJTsgcGFkZGluZzowOyBtYXJnaW46MDsgfSBkaXYuZGl2QmxvY2tWaWV3IGRpdi5kaXZCbG9ja1Jvd3sgZGlzcGxheTp0YWJsZS1yb3c7IHdpZHRoOjEwMCU7IH0gZGl2LmRpdkJsb2NrVmlldyBkaXYuZGl2QmxvY2tDZWxseyBkaXNwbGF5OnRhYmxlLWNlbGw7IH0gZGl2LmRpdkRpc2NsYWltZXJCbG9ja3sgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1nZW5lcmFsLWJnLWNvbG9yKTsgYm9yZGVyLXJhZGl1czozcHg7IH0gQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOjEzMDFweCkgeyBib2R5LmlzRnVsbFdpZHRoUGFnZS5pc1BhZ2VGdWxsV2lkdGhFbmFibGVkIGRpdi5kaXZCbG9ja1ZpZXcgZGl2LmRpdkJsb2NrQ29udGVudCBkaXYuZGl2QmxvY2tDb2x1bW4geyB3aWR0aDoxMTAwcHggIWltcG9ydGFudDsgfSB9Ci8qKiAvY3NzL25ld2NhcnMuY3NzICoqLwouZGl2RmlsdGVyT3V0ZXJCb3h7IGJhY2tncm91bmQtY29sb3I6I2ZmZjsgYm9yZGVyOjFweCBzb2xpZCAjYWFhOyBib3JkZXItcmFkaXVzOjVweDsgbWFyZ2luOjE1cHggMCAwIDA7IHBhZGRpbmc6MTVweDsgfSAuZGl2RmlsdGVyT3V0ZXJCb3ggVUwgeyBsaXN0LXN0eWxlOm5vbmU7IHBhZGRpbmc6MHB4IDEwcHggMjBweCAwOyBtYXJnaW46MDsgYm94LXNpemluZzpib3JkZXItYm94OyB9IC5kaXZGaWx0ZXJPdXRlckJveCBVTC5zaG93QXNSb3cgeyBkaXNwbGF5OmlubGluZS1mbGV4OyBmbGV4LXdyYXA6d3JhcDsgfSAuZGl2RmlsdGVyT3V0ZXJCb3ggVUwgTEl7IG1hcmdpbjowIDAgM3B4IDA7IH0gLmRpdkZpbHRlck91dGVyQm94IFVMLnNob3dBc1JvdyBMSXsgcGFkZGluZy1yaWdodDoxMHB4OyBmbGV4OjAgMCAxNTBweDsgfSAuZGl2RmlsdGVyT3V0ZXJCb3ggLmRpdkZpbHRlclRpdGxleyBmb250LXdlaWdodDpib2xkOyBwYWRkaW5nLWJvdHRvbToxMHB4OyB9IC5kaXZGaWx0ZXJPdXRlckJveCAuZGl2RmlsdGVyVGl0bGVDYXJNYWtleyBkaXNwbGF5OmZsZXg7IGFsaWduLWl0ZW1zOmNlbnRlcjsgZmxleC13cmFwOndyYXA7IGNvbHVtbi1nYXA6MTJweDsgcm93LWdhcDo0cHg7IH0gLmRpdkZpbHRlck91dGVyQm94IC5kaXZGaWx0ZXJUaXRsZUNhck1ha2UgLmRpdkZpbHRlclRpdGxlTGFiZWx7IGZvbnQtd2VpZ2h0OmJvbGQ7IH0gLmRpdkZpbHRlck91dGVyQm94IC5zZWxlY3RUb2dnbGVXcmFwcGVyQ2FyTWFrZXsgZGlzcGxheTppbmxpbmUtZmxleDsgY29sdW1uLWdhcDoxMHB4OyBhbGlnbi1pdGVtczpjZW50ZXI7IH0gLmRpdkZpbHRlck91dGVyQm94IC5zZWxlY3RUb2dnbGVXcmFwcGVyQ2FyTWFrZSAuc2VsZWN0QWxsVG9nZ2xlQnRuLCAuZGl2RmlsdGVyT3V0ZXJCb3ggLnNlbGVjdFRvZ2dsZVdyYXBwZXJDYXJNYWtlIC51bnNlbGVjdEFsbFRvZ2dsZUJ0bnsgYmFja2dyb3VuZDpub25lOyBib3JkZXI6MDsgcGFkZGluZzowOyBtYXJnaW46MDsgY29sb3I6I2ViMDAwMDsgZm9udC1zaXplOjAuODEzcmVtIDsgZm9udC13ZWlnaHQ6bm9ybWFsOyBjdXJzb3I6cG9pbnRlcjsgdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTsgfSAuZGl2RmlsdGVyT3V0ZXJCb3ggLnNlbGVjdFRvZ2dsZVdyYXBwZXJDYXJNYWtlIC5zZWxlY3RBbGxUb2dnbGVCdG46aG92ZXIsIC5kaXZGaWx0ZXJPdXRlckJveCAuc2VsZWN0VG9nZ2xlV3JhcHBlckNhck1ha2UgLnVuc2VsZWN0QWxsVG9nZ2xlQnRuOmhvdmVyeyB0ZXh0LWRlY29yYXRpb246bm9uZTsgfSAuZGl2RmlsdGVyT3V0ZXJCb3ggLmRpdkZpbHRlckJveFRpdGxleyBtYXJnaW46MCAwIDE1cHggMDsgY29sb3I6IzY2NjsgYm9yZGVyLWJvdHRvbToxcHggc29saWQgI2NjYzsgd2lkdGg6MTAwJTsgcGFkZGluZzowIDAgMTBweCAwOyBmb250LXNpemU6MC45MzhyZW0gOyB0ZXh0LXRyYW5zZm9ybTp2YXIoLS1jZXJ0LXR4dC10cmFuc2Zvcm0sIHZhcigtLXR4dC11cHBlcikpOyB9IGRpdi5kaXZDYXRlZ29yaWVzQm94V3JhcHBlcnsgY29sb3I6IzAwMDsgfSBkaXYuZGl2Q2F0ZWdvcmllc0JveFdyYXBwZXIgZGl2LmRpdkNhdGVnb3J5Qm94V3JhcHBlcnsgbWFyZ2luLWJvdHRvbToyMHB4OyB9IGRpdi5kaXZDYXRlZ29yaWVzQm94V3JhcHBlciBkaXYuZGl2Q2F0ZWdvcnlCb3hXcmFwcGVyOmxhc3QtY2hpbGR7IG1hcmdpbi1ib3R0b206MDsgfSBIMS5kZWZhdWx0LmlzU2luZ2xlVGl0bGUuaXNCb3R0b21Cb3JkZXJlZCwgZGl2LmRpdkNhdGVnb3JpZXNCb3hXcmFwcGVyIGRpdi5kaXZDYXRlZ29yeUJveFdyYXBwZXIgSDJ7IGJvcmRlci1ib3R0b206MXB4IHNvbGlkICNkZGQ7IG1hcmdpbi1ib3R0b206MTBweDsgfSBkaXYuZGl2Q2F0ZWdvcmllc0JveFdyYXBwZXIgZGl2LmRpdkNhdGVnb3J5Qm94V3JhcHBlciBkaXYuZGl2Q2Fyc0JveFdyYXBwZXIgeyBkaXNwbGF5OmZsZXg7IGZsZXgtZmxvdzpyb3cgd3JhcDsgfSBkaXYuZGl2Q2F0ZWdvcmllc0JveFdyYXBwZXIgZGl2LmRpdkNhdGVnb3J5Qm94V3JhcHBlciBkaXYuZGl2Q2FyU2luZ2xlT3V0ZXJCb3h7IHBvc2l0aW9uOnJlbGF0aXZlOyBmbG9hdDpsZWZ0OyBiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7IGJvcmRlci1yYWRpdXM6NXB4OyBtYXJnaW46MTVweCA1cHggMTBweCA1cHg7IHBhZGRpbmc6MTBweDsgYm9yZGVyOjFweCAjZGRkIHNvbGlkOyBoZWlnaHQ6MzIwcHg7IHRyYW5zaXRpb246Ym9yZGVyIDAuMnMgbGluZWFyLCBiYWNrZ3JvdW5kLWNvbG9yIDAuMnMgbGluZWFyOyAtd2Via2l0LXRyYW5zaXRpb246Ym9yZGVyIDAuMnMgbGluZWFyLCBiYWNrZ3JvdW5kLWNvbG9yIDAuMnMgbGluZWFyIDsgYm94LXNpemluZzpib3JkZXItYm94OyB3aWR0aDpjYWxjKDMzLjMzMzMzMyUgLSAxMHB4KTsgfSBkaXYuZGl2Q2F0ZWdvcmllc0JveFdyYXBwZXIgZGl2LmRpdkNhdGVnb3J5Qm94V3JhcHBlciBkaXYuZGl2Q2FyU2luZ2xlT3V0ZXJCb3guZGl2TWFrZUxvZ29Pbmx5eyBoZWlnaHQ6MTU2cHg7IHdpZHRoOmF1dG87IG1hcmdpbi10b3A6MjBweDsgcGFkZGluZzoyMHB4OyBib3JkZXItY29sb3I6I2VlZTsgdGV4dC1hbGlnbjpjZW50ZXI7IH0gZGl2LmRpdkNhdGVnb3JpZXNCb3hXcmFwcGVyIGRpdi5kaXZDYXRlZ29yeUJveFdyYXBwZXIgZGl2LmRpdkNhclNpbmdsZU91dGVyQm94LmRpdk1ha2VMb2dvT25seSBJTUcgeyBoZWlnaHQ6MTAwJTsgd2lkdGg6YXV0bzsgfSBkaXYuZGl2Q2F0ZWdvcmllc0JveFdyYXBwZXIgZGl2LmRpdkNhdGVnb3J5Qm94V3JhcHBlciBkaXYuZGl2Q2FyU2luZ2xlT3V0ZXJCb3g6bnRoLWNoaWxkKDMpeyB9IGRpdi5kaXZDYXRlZ29yaWVzQm94V3JhcHBlciBkaXYuZGl2Q2F0ZWdvcnlCb3hXcmFwcGVyIGRpdi5kaXZDYXJTaW5nbGVPdXRlckJveDpob3ZlciB7IGJhY2tncm91bmQtY29sb3I6I2VmZWZlZjsgfSBkaXYuZGl2Q2F0ZWdvcmllc0JveFdyYXBwZXIgZGl2LmRpdkNhdGVnb3J5Qm94V3JhcHBlciBkaXYuZGl2Q2FyU2luZ2xlT3V0ZXJCb3g6YWN0aXZlIHsgYm9yZGVyLWNvbG9yOiM2NjY7IH0gZGl2LmRpdkNhdGVnb3JpZXNCb3hXcmFwcGVyIGRpdi5kaXZDYXRlZ29yeUJveFdyYXBwZXIgZGl2LmRpdkNhclNpbmdsZU91dGVyQm94Lk1vdmluZ0JveEVmZmVjdCB7IH0gZGl2LmRpdkNhdGVnb3JpZXNCb3hXcmFwcGVyIGRpdi5kaXZDYXRlZ29yeUJveFdyYXBwZXIgZGl2LmRpdkNhclNpbmdsZU91dGVyQm94IGRpdi5kaXZDYXJTaW5nbGVJbm5lckJveHsgbWFyZ2luOjA7IHdpZHRoOjEwMCU7IGhlaWdodDoxMDAlOyBmbG9hdDpsZWZ0OyBvcGFjaXR5OjE7IG92ZXJmbG93OmhpZGRlbjsgcGFkZGluZzowOyBib3JkZXI6MDsgY3Vyc29yOnBvaW50ZXI7IH0gZGl2LmRpdkNhdGVnb3JpZXNCb3hXcmFwcGVyIGRpdi5kaXZDYXRlZ29yeUJveFdyYXBwZXIgZGl2LmRpdkNhclNpbmdsZU91dGVyQm94IGRpdi5kaXZDYXJTaW5nbGVJbm5lckJveCBkaXYuZGl2Q2FyVGl0bGVDb250YWluZXJ7IGZsb2F0OmxlZnQ7IGNsZWFyOmJvdGg7IHdpZHRoOjEwMCU7IGN1cnNvcjpwb2ludGVyOyBwb3NpdGlvbjpyZWxhdGl2ZTsgei1pbmRleDoxOyB9IGRpdi5kaXZDYXRlZ29yaWVzQm94V3JhcHBlciBkaXYuZGl2Q2F0ZWdvcnlCb3hXcmFwcGVyIGRpdi5kaXZDYXJTaW5nbGVPdXRlckJveCBkaXYuZGl2Q2FyU2luZ2xlSW5uZXJCb3ggZGl2LmRpdkNhclRpdGxlQ29udGFpbmVyIEF7IHRleHQtZGVjb3JhdGlvbjpub25lOyB9IGRpdi5kaXZDYXRlZ29yaWVzQm94V3JhcHBlciBkaXYuZGl2Q2F0ZWdvcnlCb3hXcmFwcGVyIGRpdi5kaXZDYXJTaW5nbGVPdXRlckJveCBkaXYuZGl2Q2FyU2luZ2xlSW5uZXJCb3ggZGl2LmRpdkNhclRpdGxlQ29udGFpbmVyIEgzeyB9IGRpdi5kaXZDYXRlZ29yaWVzQm94V3JhcHBlciBkaXYuZGl2Q2F0ZWdvcnlCb3hXcmFwcGVyIGRpdi5kaXZDYXJTaW5nbGVPdXRlckJveCBkaXYuZGl2Q2FyU2luZ2xlSW5uZXJCb3ggZGl2LmRpdkNhclRpdGxlQ29udGFpbmVyIHNwYW4uc3BhbkNhck1ha2V7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zaXplOjAuODc1cmVtIDsgd2lkdGg6YXV0bzsgaGVpZ2h0OmF1dG87IGxpbmUtaGVpZ2h0Om5vcm1hbDsgY29sb3I6IzAwMDsgfSBkaXYuZGl2Q2F0ZWdvcmllc0JveFdyYXBwZXIgZGl2LmRpdkNhdGVnb3J5Qm94V3JhcHBlciBkaXYuZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggZGl2LmRpdkNhclNpbmdsZUlubmVyQm94IGRpdi5kaXZDYXJUaXRsZUNvbnRhaW5lciBzcGFuLnNwYW5Nb2RlbE5hbWV7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc2l6ZToxLjMxM3JlbSA7IHdpZHRoOmF1dG87IGhlaWdodDphdXRvOyBsaW5lLWhlaWdodDpub3JtYWw7IGNvbG9yOnJnYigzMSw0Nyw4Myk7IH0gZGl2LmRpdkNhdGVnb3JpZXNCb3hXcmFwcGVyIGRpdi5kaXZDYXRlZ29yeUJveFdyYXBwZXIgZGl2LmRpdkNhclNpbmdsZU91dGVyQm94IGRpdi5kaXZDYXJTaW5nbGVJbm5lckJveCBkaXYuZGl2Q2FyVGl0bGVDb250YWluZXIgZGl2LmRpdk5ld0NhclN0YXJ0UHJpY2UsIGRpdi5kaXZDYXRlZ29yaWVzQm94V3JhcHBlciBkaXYuZGl2Q2F0ZWdvcnlCb3hXcmFwcGVyIGRpdi5kaXZDYXJTaW5nbGVPdXRlckJveCBkaXYuZGl2Q2FyU2luZ2xlSW5uZXJCb3ggZGl2LmRpdkNhclRpdGxlQ29udGFpbmVyIGRpdi5kaXZOZXdDYXJQcm9tb1ByaWNleyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc2l6ZTowLjc1cmVtIDsgd2lkdGg6YXV0bzsgaGVpZ2h0OmF1dG87IGxpbmUtaGVpZ2h0Om5vcm1hbDsgY29sb3I6IzAwMDsgfSBkaXYuZGl2Q2F0ZWdvcmllc0JveFdyYXBwZXIgZGl2LmRpdkNhdGVnb3J5Qm94V3JhcHBlciBkaXYuZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggZGl2LmRpdkNhclNpbmdsZUlubmVyQm94IGRpdi5kaXZDYXJJbWFnZUNvbnRhaW5lcnsgcG9zaXRpb246YWJzb2x1dGU7IGJvdHRvbToyMHB4OyBsZWZ0OjEwcHg7IHJpZ2h0OjEwcHg7IGhlaWdodDo4MCU7IH0gZGl2LmRpdkNhdGVnb3JpZXNCb3hXcmFwcGVyIGRpdi5kaXZDYXRlZ29yeUJveFdyYXBwZXIgZGl2LmRpdkNhclNpbmdsZU91dGVyQm94IGRpdi5kaXZDYXJTaW5nbGVJbm5lckJveCBkaXYuZGl2Q2FySW1hZ2VDb250YWluZXIgQXsgZmxvYXQ6bGVmdDsgY2xlYXI6Ym90aDsgd2lkdGg6MTAwJTsgfSBkaXYuZGl2Q2F0ZWdvcmllc0JveFdyYXBwZXIgZGl2LmRpdkNhdGVnb3J5Qm94V3JhcHBlciBkaXYuZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggZGl2LmRpdkNhclNpbmdsZUlubmVyQm94IGRpdi5kaXZDYXJJbWFnZUNvbnRhaW5lciBJTUd7IHdpZHRoOjEwMCU7IGhlaWdodDphdXRvOyB9IEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDoxMzAxcHgpIHsgYm9keS5pc0Z1bGxXaWR0aFBhZ2UuaXNQYWdlRnVsbFdpZHRoRW5hYmxlZCBkaXYuZGl2Q2F0ZWdvcmllc0JveFdyYXBwZXIgZGl2LmRpdkNhdGVnb3J5Qm94V3JhcHBlciBkaXYuZGl2Q2FyU2luZ2xlT3V0ZXJCb3h7IGhlaWdodDo0MDVweDsgfSBib2R5LmlzRnVsbFdpZHRoUGFnZS5pc1BhZ2VGdWxsV2lkdGhFbmFibGVkIGRpdi5kaXZDYXRlZ29yaWVzQm94V3JhcHBlciBkaXYuZGl2Q2F0ZWdvcnlCb3hXcmFwcGVyIGRpdi5kaXZDYXJTaW5nbGVPdXRlckJveC5kaXZNYWtlTG9nb09ubHl7IGhlaWdodDoxNTZweDsgfSBib2R5LmlzRnVsbFdpZHRoUGFnZS5pc1BhZ2VGdWxsV2lkdGhFbmFibGVkIGRpdi5kaXZDYXRlZ29yaWVzQm94V3JhcHBlciBkaXYuZGl2Q2F0ZWdvcnlCb3hXcmFwcGVyIGRpdi5kaXZDYXJTaW5nbGVPdXRlckJveCBkaXYuZGl2Q2FyU2luZ2xlSW5uZXJCb3ggZGl2LmRpdkNhclRpdGxlQ29udGFpbmVyIHNwYW4uc3BhbkNhck1ha2V7IGZvbnQtc2l6ZToxLjA2M3JlbSA7IH0gYm9keS5pc0Z1bGxXaWR0aFBhZ2UuaXNQYWdlRnVsbFdpZHRoRW5hYmxlZCBkaXYuZGl2Q2F0ZWdvcmllc0JveFdyYXBwZXIgZGl2LmRpdkNhdGVnb3J5Qm94V3JhcHBlciBkaXYuZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggZGl2LmRpdkNhclNpbmdsZUlubmVyQm94IGRpdi5kaXZDYXJUaXRsZUNvbnRhaW5lciBzcGFuLnNwYW5Nb2RlbE5hbWV7IGZvbnQtc2l6ZToxLjYyNXJlbSA7IH0gYm9keS5pc0Z1bGxXaWR0aFBhZ2UuaXNQYWdlRnVsbFdpZHRoRW5hYmxlZCBkaXYuZGl2Q2F0ZWdvcmllc0JveFdyYXBwZXIgZGl2LmRpdkNhdGVnb3J5Qm94V3JhcHBlciBkaXYuZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggZGl2LmRpdkNhclNpbmdsZUlubmVyQm94IGRpdi5kaXZDYXJUaXRsZUNvbnRhaW5lciBkaXYuZGl2TmV3Q2FyU3RhcnRQcmljZXsgZm9udC1zaXplOjAuOTM4cmVtIDsgfSBib2R5LmlzRnVsbFdpZHRoUGFnZS5pc1BhZ2VGdWxsV2lkdGhFbmFibGVkIGRpdi5kaXZGaWx0ZXJPdXRlckJveCBkaXYuZGl2RmlsdGVyQm94VGl0bGV7IHdpZHRoOjExMDBweDsgfSB9IC5yZWJhdGVUYWd7IHBhZGRpbmc6MnB4IDEwcHggNHB4IDEwcHg7IHRleHQtYWxpZ246Y2VudGVyOyBwb3NpdGlvbjphYnNvbHV0ZTsgdG9wOi0xNnB4OyByaWdodDoxNXB4OyBiYWNrZ3JvdW5kOiNlYjAwMDAhaW1wb3J0YW50OyBjb2xvcjojZmZmZmZmIWltcG9ydGFudDsgdGV4dC1zaGFkb3c6bm9uZSFpbXBvcnRhbnQ7IGJvcmRlci1yYWRpdXM6NXB4IDVweCAwIDA7IH0gLnJlYmF0ZVRhZyBzcGFuLnJlYmF0ZVRleHR7IGRpc3BsYXk6YmxvY2s7IGZvbnQtc2l6ZTowLjc1cmVtIDsgfSAucmViYXRlVGFnIHNwYW4ucmViYXRlQW1vdW50eyBkaXNwbGF5OmJsb2NrOyBmb250LXdlaWdodDo3MDA7IH0gZGl2LmRpdkNhdGVnb3JpZXNCb3hXcmFwcGVyIGRpdi5kaXZDYXRlZ29yeUJveFdyYXBwZXIgZGl2LmRpdkNhclNpbmdsZU91dGVyQm94LnJlYmF0ZUJvcmRlckNvbG9yeyBib3JkZXItY29sb3I6I2RkZDsgbWFyZ2luLXRvcDoyMHB4ICFpbXBvcnRhbnQ7IG1hcmdpbi1ib3R0b206MTVweCAhaW1wb3J0YW50OyB9IGRpdi5kaXZDYXJGb290ZXJDb250YWluZXJ7IHBvc2l0aW9uOmFic29sdXRlOyBib3R0b206MHB4OyBsZWZ0OjA7IHJpZ2h0OjA7IHdpZHRoOjEwMCU7IH0gZGl2LmNhclBheW1lbnRXcmFwcGVyeyBoZWlnaHQ6NnJlbTsgfSBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6MTI5OXB4KSB7IGRpdi5kaXZDYXRlZ29yaWVzQm94V3JhcHBlciBkaXYuZGl2Q2F0ZWdvcnlCb3hXcmFwcGVyIGRpdi5kaXZDYXJTaW5nbGVPdXRlckJveHsgaGVpZ2h0OjM4MHB4IWltcG9ydGFudDsgfSBkaXYuY2FyUGF5bWVudFdyYXBwZXJ7IGhlaWdodDo2cmVtIWltcG9ydGFudDsgfSB9IGRpdi5kaXZDYXRlZ29yaWVzQm94V3JhcHBlciBkaXYuZGl2Q2F0ZWdvcnlCb3hXcmFwcGVyIGRpdi5kaXZDYXJTaW5nbGVPdXRlckJveCBkaXYuZGl2Q2FyU2luZ2xlSW5uZXJCb3ggZGl2LmRpdkNhclBheW1lbnRDb250YWluZXIgeyB0ZXh0LWFsaWduOmNlbnRlcjsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jZXJ0LWNvbmNyZXRlLWdyYXksIHZhcigtLWxpZ2h0LWdyYXkpKTsgcGFkZGluZy1ib3R0b206NXB4OyBwYWRkaW5nLXRvcDo1cHg7IH0gZGl2LmRpdkNhdGVnb3JpZXNCb3hXcmFwcGVyIGRpdi5kaXZDYXRlZ29yeUJveFdyYXBwZXIgZGl2LmRpdkNhclNpbmdsZU91dGVyQm94IGRpdi5kaXZDYXJTaW5nbGVJbm5lckJveCBkaXYuZGl2Q2FyUGF5bWVudENvbnRhaW5lciBheyB0ZXh0LWRlY29yYXRpb246bm9uZTsgfSBkaXYuZGl2Q2F0ZWdvcmllc0JveFdyYXBwZXIgZGl2LmRpdkNhdGVnb3J5Qm94V3JhcHBlciBkaXYuZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggZGl2LmRpdkNhclNpbmdsZUlubmVyQm94IGRpdi5kaXZDYXJQYXltZW50Q29udGFpbmVyIC5wYXltZW50TGluZTJ7IGZvbnQtc2l6ZToxLjE4OHJlbSA7IH0gZGl2LmRpdkNhdGVnb3JpZXNCb3hXcmFwcGVyIGRpdi5kaXZDYXRlZ29yeUJveFdyYXBwZXIgZGl2LmRpdkNhclNpbmdsZU91dGVyQm94IGRpdi5kaXZDYXJTaW5nbGVJbm5lckJveCBkaXYuZGl2Q2FyUGF5bWVudENvbnRhaW5lciAucGF5bWVudExpbmUyIHNwYW57IGNvbG9yOiNlYjAwMDA7IGZvbnQtc2l6ZToxLjE4OHJlbSA7IGZvbnQtd2VpZ2h0OjcwMDsgfSBkaXYuZGl2Q2F0ZWdvcmllc0JveFdyYXBwZXIgZGl2LmRpdkNhdGVnb3J5Qm94V3JhcHBlciBkaXYuZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggZGl2LmRpdkNhclNpbmdsZUlubmVyQm94IGRpdi5kaXZDYXJQYXltZW50Q29udGFpbmVyIC5wYXltZW50TGluZTN7IGZvbnQtc2l6ZTowLjc1cmVtIDsgY29sb3I6IzZCNkI2QjsgfSBkaXYuZGl2Q2F0ZWdvcmllc0JveFdyYXBwZXIgZGl2LmRpdkNhdGVnb3J5Qm94V3JhcHBlciBkaXYuZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggZGl2LmRpdkNhclNpbmdsZUlubmVyQm94IGRpdi5kaXZDYXJQYXltZW50Q29udGFpbmVyIC5wYXltZW50TGluZTF7IGZvbnQtc2l6ZTowLjc1cmVtIDsgY29sb3I6IzZCNkI2QjsgfSBkaXYuZGl2Q2F0ZWdvcmllc0JveFdyYXBwZXIgZGl2LmRpdkNhdGVnb3J5Qm94V3JhcHBlciBkaXYuZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggZGl2LmRpdkNhclNpbmdsZUlubmVyQm94IGRpdi5kaXZDYXJDb250YWN0Q1RBQ29udGFpbmVyeyBiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7IH0gZGl2LmRpdkNhdGVnb3JpZXNCb3hXcmFwcGVyIGRpdi5kaXZDYXRlZ29yeUJveFdyYXBwZXIgZGl2LmRpdkNhclNpbmdsZU91dGVyQm94IGRpdi5kaXZDYXJTaW5nbGVJbm5lckJveCBkaXYuZGl2Q2FyUGF5bWVudENvbnRhaW5lcldpdGhDVEF7IGJvdHRvbTo1MHB4IWltcG9ydGFudDsgfSBkaXYuZGl2Q2FyU2luZ2xlT3V0ZXJCb3hXaXRoQ1RBeyBoZWlnaHQ6NDI1cHghaW1wb3J0YW50OyB9IGRpdi5kaXZDYXRlZ29yaWVzQm94V3JhcHBlciBkaXYuZGl2Q2F0ZWdvcnlCb3hXcmFwcGVyIGRpdi5kaXZDYXJTaW5nbGVPdXRlckJveCBkaXYuZGl2Q2FyU2luZ2xlSW5uZXJCb3ggZGl2LmRpdkNhckltYWdlQ29udGFpbmVyV2l0aENUQXsgYm90dG9tOjYwcHghaW1wb3J0YW50OyB9IC5kaXZDYXJTaW5nbGVPdXRlckJveCAuZGl2Q2FyUGF5bWVudENvbnRhaW5lclRvb2x0aXB7IGRpc3BsYXk6aW5saW5lLXRhYmxlOyBwYWRkaW5nOjAgMTBweDsgY3Vyc29yOnBvaW50ZXI7IH0gLmRpdkNhdGVnb3J5Qm94V3JhcHBlciAuZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggLmRpdkNhclBheW1lbnRDYWxjdWxhdG9yIHsgcG9zaXRpb246YWJzb2x1dGU7IGxlZnQ6MTAlOyB9IC5kaXZDYXRlZ29yeUJveFdyYXBwZXIgLmRpdkNhclNpbmdsZU91dGVyQm94IC5wYXltZW50SW5mb0J1YmJsZXsgZGlzcGxheTpub25lOyB9IGRpdi5kaXZDYXJTaW5nbGVPdXRlckJveDpob3ZlciBkaXYuZGl2Q2FySW5TdG9ja0xpbmt7IGJhY2tncm91bmQtY29sb3I6I2ZmZmZmZjsgfSBkaXYuZGl2Q2FySW5TdG9ja0xpbmt7IGJhY2tncm91bmQtY29sb3I6I2VmZWZlZjsgcGFkZGluZzozcHggOHB4OyBib3JkZXItcmFkaXVzOjNweDsgd2lkdGg6Zml0LWNvbnRlbnQ7IGNvbG9yOiMwMDA7IG1hcmdpbi10b3A6MTBweDsgfSBkaXYuZGl2Q2F0ZWdvcmllc0JveFdyYXBwZXIgZGl2LmRpdkNhdGVnb3J5Qm94V3JhcHBlciBkaXYuZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggZGl2LmRpdkNhclNpbmdsZUlubmVyQm94IGRpdi5kaXZDYXJJblN0b2NrTGluayBheyBjb2xvcjojMDAwOyB9IGRpdi5kaXZEaXNjbGFpbWVyQmxvY2t7IGJhY2tncm91bmQtY29sb3I6dmFyKC0tZ2VuZXJhbC1iZy1jb2xvcik7IGJvcmRlci1yYWRpdXM6M3B4OyB9Ci8qKiAvY3NzL2Rpdl9yYW5nZXNsaWRlci5jc3MgKiovCmRpdi5kaXZQcmljZVJhbmdlU2xpZGVyeyBtYXJnaW46MCAwIDEwcHggMDsgcGFkZGluZzowOyB9IGRpdi5kaXZQcmljZVJhbmdlU2xpZGVyIGRpdi5yYW5nZS1zbGlkZXItdGl0bGV7IGZvbnQtd2VpZ2h0OmJvbGQ7IHBhZGRpbmc6MCAwIDEwcHggMDsgfSBkaXYuZGl2UHJpY2VSYW5nZVNsaWRlciBkaXYucmFuZ2Utc2xpZGVyLXByaWNlc3sgcGFkZGluZzowIDAgMTVweCAwOyBmb250LXNpemU6MS4xMjVyZW0gOyB9IGRpdi5kaXZQcmljZVJhbmdlU2xpZGVyIGRpdi5yYW5nZS1zbGlkZXItcHJpY2VzIHNwYW4ucHJpY2UtbWlue30gZGl2LmRpdlByaWNlUmFuZ2VTbGlkZXIgZGl2LnJhbmdlLXNsaWRlci1wcmljZXMgc3Bhbi5wcmljZS1tYXh7fSBkaXYuZGl2UHJpY2VSYW5nZVNsaWRlciBkaXYucmFuZ2Utc2xpZGVyeyBib3JkZXItcmFkaXVzOjVweCAhaW1wb3J0YW50OyBoZWlnaHQ6MTBweDsgbWFyZ2luOjRweCA2cHggMCAtM3B4OyBwYWRkaW5nOjA7IGJvcmRlcjoxcHggc29saWQgI2NjYzsgfSBkaXYuZGl2UHJpY2VSYW5nZVNsaWRlciBkaXYucmFuZ2Utc2xpZGVyLWxlZnQsIGRpdi5kaXZQcmljZVJhbmdlU2xpZGVyIGRpdi5yYW5nZS1zbGlkZXItcmlnaHR7IGZvbnQtc2l6ZTowLjc1cmVtIDsgbGluZS1oZWlnaHQ6MjBweDsgY29sb3I6Izc1NzU3NTsgfSBkaXYuZGl2UHJpY2VSYW5nZVNsaWRlciBkaXYucmFuZ2Utc2xpZGVyLWxlZnR7IHRleHQtYWxpZ246bGVmdDsgfSBkaXYuZGl2UHJpY2VSYW5nZVNsaWRlciBkaXYucmFuZ2Utc2xpZGVyLXJpZ2h0eyB0ZXh0LWFsaWduOnJpZ2h0OyB9IGRpdi5kaXZQcmljZVJhbmdlU2xpZGVyIGRpdi5yYW5nZS1zbGlkZXIgZGl2LnVpLXNsaWRlci1yYW5nZXsgYmFja2dyb3VuZDojMWYyZjUzOyB9IGRpdi5kaXZQcmljZVJhbmdlU2xpZGVyIGRpdi5yYW5nZS1zbGlkZXIgQS51aS1zbGlkZXItaGFuZGxlLCBkaXYuZGl2UHJpY2VSYW5nZVNsaWRlciBkaXYucmFuZ2Utc2xpZGVyIHNwYW4udWktc2xpZGVyLWhhbmRsZXsgbWFyZ2luOi04cHggMCAwIC0xMXB4OyBib3JkZXI6MXB4IHNvbGlkICNjY2M7IHBhZGRpbmc6MCAhaW1wb3J0YW50OyBib3JkZXItcmFkaXVzOjUwcHggIWltcG9ydGFudDsgYmFja2dyb3VuZDojZmZmICFpbXBvcnRhbnQ7IHRvcDowOyBoZWlnaHQ6MjVweDsgd2lkdGg6MjVweDsgY3Vyc29yOnBvaW50ZXI7IG91dGxpbmU6bm9uZSAhaW1wb3J0YW50OyB9IGRpdi5kaXZQcmljZVJhbmdlU2xpZGVyIGRpdi5yYW5nZS1zbGlkZXIgQS51aS1zbGlkZXItaGFuZGxlLnVpLXN0YXRlLWhvdmVyLCBkaXYuZGl2UHJpY2VSYW5nZVNsaWRlciBkaXYucmFuZ2Utc2xpZGVyIEEudWktc2xpZGVyLWhhbmRsZS51aS1zdGF0ZS1hY3RpdmUsIGRpdi5kaXZQcmljZVJhbmdlU2xpZGVyIGRpdi5yYW5nZS1zbGlkZXIgc3Bhbi51aS1zbGlkZXItaGFuZGxlLnVpLXN0YXRlLWhvdmVyLCBkaXYuZGl2UHJpY2VSYW5nZVNsaWRlciBkaXYucmFuZ2Utc2xpZGVyIHNwYW4udWktc2xpZGVyLWhhbmRsZS51aS1zdGF0ZS1hY3RpdmV7IGJvcmRlci1jb2xvcjojNjY2OyB9IGRpdi5kaXZQcmljZVJhbmdlU2xpZGVyIGRpdi5yYW5nZS1zbGlkZXIgQS51aS1zbGlkZXItaGFuZGxlLnVpLXN0YXRlLWZvY3VzLCBkaXYuZGl2UHJpY2VSYW5nZVNsaWRlciBkaXYucmFuZ2Utc2xpZGVyIHNwYW4udWktc2xpZGVyLWhhbmRsZS51aS1zdGF0ZS1mb2N1c3sgb3V0bGluZTpub25lICFpbXBvcnRhbnQ7IH0KLyoqIC9jc3MvZGl2X2FuaW1hdGlvbnMubWluLmNzcyAqKi8KLmJvdW5jaW5nLXByaWNlLWFycm93ey13ZWJraXQtYW5pbWF0aW9uLW5hbWU6Ym91bmNpbmctYXJyb3c7LXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246NXM7LXdlYmtpdC1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50OmluZmluaXRlO2FuaW1hdGlvbi1uYW1lOmJvdW5jaW5nLWFycm93O2FuaW1hdGlvbi1kdXJhdGlvbjo1czthbmltYXRpb24taXRlcmF0aW9uLWNvdW50OmluZmluaXRlOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlKDVweCwwKSByb3RhdGUoMjUwZGVnKSBzY2FsZSgxKTstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUoNXB4LDApIHJvdGF0ZSgyNTBkZWcpIHNjYWxlKDEpO3RyYW5zZm9ybTp0cmFuc2xhdGUoNXB4LDApIHJvdGF0ZSgyNTBkZWcpIHNjYWxlKDEpfS5mYWRlLWluLW91dCwuZmFkZS1pbi1vdXQtZmFzdHstd2Via2l0LWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6aW5maW5pdGV9QGtleWZyYW1lcyBib3VuY2luZy1hcnJvd3swJSwxMDAlLDE2JSwzMiV7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGUoNXB4LDApIHJvdGF0ZSgyNTBkZWcpIHNjYWxlKDEpOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZSg1cHgsMCkgcm90YXRlKDI1MGRlZykgc2NhbGUoMSk7dHJhbnNmb3JtOnRyYW5zbGF0ZSg1cHgsMCkgcm90YXRlKDI1MGRlZykgc2NhbGUoMSl9MjQlLDgley1tcy10cmFuc2Zvcm06dHJhbnNsYXRlKDAsLTE1cHgpIHJvdGF0ZSgyOTBkZWcpIHNjYWxlKC43NSk7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlKDAsLTE1cHgpIHJvdGF0ZSgyOTBkZWcpIHNjYWxlKC43NSk7dHJhbnNmb3JtOnRyYW5zbGF0ZSgwLC0xNXB4KSByb3RhdGUoMjkwZGVnKSBzY2FsZSguNzUpfX1ALXdlYmtpdC1rZXlmcmFtZXMgYm91bmNpbmctYXJyb3d7MCUsMTAwJSwxNiUsMzIley1tcy10cmFuc2Zvcm06dHJhbnNsYXRlKDVweCwwKSByb3RhdGUoMjUwZGVnKSBzY2FsZSgxKTstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUoNXB4LDApIHJvdGF0ZSgyNTBkZWcpIHNjYWxlKDEpO3RyYW5zZm9ybTp0cmFuc2xhdGUoNXB4LDApIHJvdGF0ZSgyNTBkZWcpIHNjYWxlKDEpfTI0JSw4JXstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZSgwLC0xNXB4KSByb3RhdGUoMjkwZGVnKSBzY2FsZSguNzUpOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZSgwLC0xNXB4KSByb3RhdGUoMjkwZGVnKSBzY2FsZSguNzUpO3RyYW5zZm9ybTp0cmFuc2xhdGUoMCwtMTVweCkgcm90YXRlKDI5MGRlZykgc2NhbGUoLjc1KX19LmZhZGUtaW4tb3V0ey13ZWJraXQtYW5pbWF0aW9uLW5hbWU6ZmFkZS1pbi1vdXQ7LXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246MnM7YW5pbWF0aW9uLW5hbWU6ZmFkZS1pbi1vdXQ7YW5pbWF0aW9uLWR1cmF0aW9uOjJzO2FuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6aW5maW5pdGU7b3BhY2l0eToxfUAtd2Via2l0LWtleWZyYW1lcyBmYWRlLWluLW91dHswJSwxMDAlLDUwJXtvcGFjaXR5OjF9MjUle29wYWNpdHk6LjV9fUBrZXlmcmFtZXMgZmFkZS1pbi1vdXR7MCUsMTAwJSw0MCV7b3BhY2l0eToxfTIwJXtvcGFjaXR5Oi41fX0uZmFkZS1pbi1vdXQtZmFzdHstd2Via2l0LWFuaW1hdGlvbi1uYW1lOmZhZGUtaW4tb3V0LWZhc3Q7LXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246LjVzO2FuaW1hdGlvbi1uYW1lOmZhZGUtaW4tb3V0LWZhc3Q7YW5pbWF0aW9uLWR1cmF0aW9uOi41czthbmltYXRpb24taXRlcmF0aW9uLWNvdW50OmluZmluaXRlO29wYWNpdHk6MX1ALXdlYmtpdC1rZXlmcmFtZXMgZmFkZS1pbi1vdXQtZmFzdHswJSwxMDAle29wYWNpdHk6MX01MCV7b3BhY2l0eTouNX19QGtleWZyYW1lcyBmYWRlLWluLW91dC1mYXN0ezAlLDEwMCV7b3BhY2l0eToxfTUwJXtvcGFjaXR5Oi41fX0uaWNvbi1jaXJjbGluZ3std2Via2l0LWFuaW1hdGlvbi1uYW1lOmljb24tY2lyY2xpbmc7LXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246MXM7LXdlYmtpdC1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50OmluZmluaXRlOy13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjpjdWJpYy1iZXppZXIoLjY4LC0uNTUsLjI3LDEuNTUpO2FuaW1hdGlvbi1uYW1lOmljb24tY2lyY2xpbmc7YW5pbWF0aW9uLWR1cmF0aW9uOjFzO2FuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6aW5maW5pdGU7YW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjpjdWJpYy1iZXppZXIoLjY4LC0uNTUsLjI3LDEuNTUpfUAtd2Via2l0LWtleWZyYW1lcyBpY29uLWNpcmNsaW5ne2Zyb217LW1zLXRyYW5zZm9ybTpyb3RhdGUoMCk7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDApO3RyYW5zZm9ybTpyb3RhdGUoMCl9dG97LW1zLXRyYW5zZm9ybTpyb3RhdGUoMzYwZGVnKTstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMzYwZGVnKTt0cmFuc2Zvcm06cm90YXRlKDM2MGRlZyl9fUBrZXlmcmFtZXMgaWNvbi1jaXJjbGluZ3tmcm9tey1tcy10cmFuc2Zvcm06cm90YXRlKDApOy13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgwKTt0cmFuc2Zvcm06cm90YXRlKDApfXRvey1tcy10cmFuc2Zvcm06cm90YXRlKDM2MGRlZyk7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDM2MGRlZyk7dHJhbnNmb3JtOnJvdGF0ZSgzNjBkZWcpfX0KLyoqIC9jc3MvZm9udHMuY3NzICoqLwpAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidDYWxpYnJpJzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9jYWxpYnJpLXdlYmZvbnQuZW90Jyk7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvY2FsaWJyaS13ZWJmb250LmVvdD8jaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9jYWxpYnJpLXdlYmZvbnQud29mZicpIGZvcm1hdCgnd29mZicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvY2FsaWJyaS13ZWJmb250LnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL2NhbGlicmktd2ViZm9udC5zdmcjQ2FsaWJyaScpIGZvcm1hdCgnc3ZnJyk7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zdHlsZTpub3JtYWw7IGZvbnQtc2l6ZToxZW07IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQ2FsaWJyaSc7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvY2FsaWJyaWItd2ViZm9udC5lb3QnKTsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9jYWxpYnJpYi13ZWJmb250LmVvdD8jaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9jYWxpYnJpYi13ZWJmb250LndvZmYnKSBmb3JtYXQoJ3dvZmYnKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL2NhbGlicmliLXdlYmZvbnQudHRmJykgZm9ybWF0KCd0cnVldHlwZScpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvY2FsaWJyaWItd2ViZm9udC5zdmcjQ2FsaWJyaScpIGZvcm1hdCgnc3ZnJyk7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc3R5bGU6bm9ybWFsOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0NhbGlicmknOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL2NhbGlicmlpLXdlYmZvbnQuZW90Jyk7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvY2FsaWJyaWktd2ViZm9udC5lb3Q\/I2llZml4JykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvY2FsaWJyaWktd2ViZm9udC53b2ZmJykgZm9ybWF0KCd3b2ZmJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9jYWxpYnJpaS13ZWJmb250LnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL2NhbGlicmlpLXdlYmZvbnQuc3ZnI0NhbGlicmknKSBmb3JtYXQoJ3N2ZycpOyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc3R5bGU6aXRhbGljOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0FudGVubmEnOyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6IHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Gb3JkQW50ZW5uYVdHTC1SZWd1bGFyLndvZmYiKSBmb3JtYXQoIndvZmYiKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidBbnRlbm5hJzsgZm9udC1zdHlsZTppdGFsaWM7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgc3JjOiB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvRm9yZEFudGVubmFXR0wtUmVndWxhckl0YWxpYy53b2ZmIikgZm9ybWF0KCJ3b2ZmIik7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQW50ZW5uYSc7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6IHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Gb3JkQW50ZW5uYVdHTC1Cb2xkLndvZmYiKSBmb3JtYXQoIndvZmYiKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidBbnRlbm5hJzsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzogdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0ZvcmRBbnRlbm5hV0dMLUJvbGRJdGFsaWMud29mZiIpIGZvcm1hdCgid29mZiIpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0FudGVubmFMaWdodCc7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzogdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0ZvcmRBbnRlbm5hV0dMLUxpZ2h0LndvZmYiKSBmb3JtYXQoIndvZmYiKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidBbnRlbm5hTGlnaHQnOyBmb250LXN0eWxlOml0YWxpYzsgZm9udC13ZWlnaHQ6bm9ybWFsOyBzcmM6IHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Gb3JkQW50ZW5uYVdHTC1MaWdodEl0YWxpYy53b2ZmIikgZm9ybWF0KCJ3b2ZmIik7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQW50ZW5uYUxpZ2h0JzsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzogdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0ZvcmRBbnRlbm5hV0dMLVNlbWlib2xkLndvZmYiKSBmb3JtYXQoIndvZmYiKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidBbnRlbm5hTGlnaHQnOyBmb250LXdlaWdodDpib2xkOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOiB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvRm9yZEFudGVubmFXR0wtU2VtaWJvbGRJdGFsaWMud29mZiIpIGZvcm1hdCgid29mZiIpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0FudGVubmFDb25kJzsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOiB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvRm9yZEFudGVubmFDb25kV0dMLVJlZy53b2ZmIikgZm9ybWF0KCJ3b2ZmIik7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQW50ZW5uYUNvbmQnOyBmb250LXN0eWxlOml0YWxpYzsgZm9udC13ZWlnaHQ6bm9ybWFsOyBzcmM6IHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Gb3JkQW50ZW5uYUNvbmRXR0wtUmVnSXRhbGljLndvZmYiKSBmb3JtYXQoIndvZmYiKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidBbnRlbm5hQ29uZCc7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6IHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Gb3JkQW50ZW5uYUNvbmRXR0wtQm9sZC53b2ZmIikgZm9ybWF0KCJ3b2ZmIik7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQW50ZW5uYUNvbmQnOyBmb250LXdlaWdodDpib2xkOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOiB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvRm9yZEFudGVubmFDb25kV0dMLUJvbGRJdGFsaWMud29mZiIpIGZvcm1hdCgid29mZiIpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0FudGVubmFDb25kTGlnaHQnOyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6IHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Gb3JkQW50ZW5uYUNvbmRXR0wtTGlnaHQud29mZiIpIGZvcm1hdCgid29mZiIpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0FudGVubmFDb25kTGlnaHQnOyBmb250LXN0eWxlOml0YWxpYzsgZm9udC13ZWlnaHQ6bm9ybWFsOyBzcmM6IHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Gb3JkQW50ZW5uYUNvbmRXR0wtTGlnaHRJdGFsaWMud29mZiIpIGZvcm1hdCgid29mZiIpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0FudGVubmFDb25kTGlnaHQnOyBmb250LXdlaWdodDpib2xkOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOiB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvRm9yZEFudGVubmFDb25kV0dMLU1lZC53b2ZmIikgZm9ybWF0KCJ3b2ZmIik7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQW50ZW5uYUNvbmRMaWdodCc7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6IHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Gb3JkQW50ZW5uYUNvbmRXR0wtTWVkSXRhbGljLndvZmYiKSBmb3JtYXQoIndvZmYiKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidJbnRlcnN0YXRlJzsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOiB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSW50ZXJzdGF0ZS1SZWd1bGFyLndvZmYyIikgZm9ybWF0KCJ3b2ZmMiIpLCB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSW50ZXJzdGF0ZS1SZWd1bGFyLndvZmYiKSBmb3JtYXQoIndvZmYiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0ludGVyc3RhdGUtUmVndWxhci5vdGYiKSBmb3JtYXQoIm9wZW50eXBlIik7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonSW50ZXJzdGF0ZSc7IGZvbnQtc3R5bGU6aXRhbGljOyBmb250LXdlaWdodDpub3JtYWw7IHNyYzogdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0ludGVyc3RhdGUtUmVndWxhckl0YWxpYy53b2ZmMiIpIGZvcm1hdCgid29mZjIiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0ludGVyc3RhdGUtUmVndWxhckl0YWxpYy53b2ZmIikgZm9ybWF0KCJ3b2ZmIiksIHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9JbnRlcnN0YXRlLVJlZ3VsYXJJdGFsaWMub3RmIikgZm9ybWF0KCJvcGVudHlwZSIpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0ludGVyc3RhdGUnOyBmb250LXdlaWdodDpib2xkOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOiB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSW50ZXJzdGF0ZS1Cb2xkLndvZmYyIikgZm9ybWF0KCJ3b2ZmMiIpLCB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSW50ZXJzdGF0ZS1Cb2xkLndvZmYiKSBmb3JtYXQoIndvZmYiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0ludGVyc3RhdGUtQm9sZC5vdGYiKSBmb3JtYXQoIm9wZW50eXBlIik7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonSW50ZXJzdGF0ZSc7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6IHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9JbnRlcnN0YXRlLUJvbGRJdGFsaWMud29mZjIiKSBmb3JtYXQoIndvZmYyIiksIHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9JbnRlcnN0YXRlLUJvbGRJdGFsaWMud29mZiIpIGZvcm1hdCgid29mZiIpLCB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSW50ZXJzdGF0ZS1Cb2xkSXRhbGljLm90ZiIpIGZvcm1hdCgib3BlbnR5cGUiKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidJbnRlcnN0YXRlJzsgZm9udC13ZWlnaHQ6bGlnaHRlcjsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzogdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0ludGVyc3RhdGUtTGlnaHQud29mZjIiKSBmb3JtYXQoIndvZmYyIiksIHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9JbnRlcnN0YXRlLUxpZ2h0LndvZmYiKSBmb3JtYXQoIndvZmYiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0ludGVyc3RhdGUtTGlnaHQub3RmIikgZm9ybWF0KCJvcGVudHlwZSIpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0ludGVyc3RhdGUnOyBmb250LXdlaWdodDpsaWdodGVyOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOiB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSW50ZXJzdGF0ZS1MaWdodEl0YWxpYy53b2ZmMiIpIGZvcm1hdCgid29mZjIiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0ludGVyc3RhdGUtTGlnaHRJdGFsaWMud29mZiIpIGZvcm1hdCgid29mZiIpLCB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSW50ZXJzdGF0ZS1MaWdodEl0YWxpYy5vdGYiKSBmb3JtYXQoIm9wZW50eXBlIik7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonVldUZXh0JzsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOiB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2Evdnd0ZXh0LXJlZ3VsYXItd2ViZm9udC53b2ZmMiIpIGZvcm1hdCgid29mZjIiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL3Z3dGV4dC1yZWd1bGFyLXdlYmZvbnQud29mZiIpIGZvcm1hdCgid29mZiIpLCB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvVldUZXh0LVJlZ3VsYXIub3RmIikgZm9ybWF0KCJvcGVudHlwZSIpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1ZXVGV4dCc7IGZvbnQtc3R5bGU6aXRhbGljOyBmb250LXdlaWdodDpub3JtYWw7IHNyYzogdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL3Z3dGV4dC1yZWd1bGFyaXRhbGljLXdlYmZvbnQud29mZjIiKSBmb3JtYXQoIndvZmYyIiksIHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS92d3RleHQtcmVndWxhcml0YWxpYy13ZWJmb250LndvZmYiKSBmb3JtYXQoIndvZmYiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1ZXVGV4dC1SZWd1bGFySXRhbGljLm90ZiIpIGZvcm1hdCgib3BlbnR5cGUiKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidWV1RleHQnOyBmb250LXdlaWdodDpib2xkOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOiB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2Evdnd0ZXh0LWJvbGQtd2ViZm9udC53b2ZmMiIpIGZvcm1hdCgid29mZjIiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL3Z3dGV4dC1ib2xkLXdlYmZvbnQud29mZiIpIGZvcm1hdCgid29mZiIpLCB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvVldUZXh0LUJvbGQub3RmIikgZm9ybWF0KCJvcGVudHlwZSIpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1ZXVGV4dCc7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6IHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS92d3RleHRvZmZpY2UtYm9sZGl0YWxpYy13ZWJmb250LndvZmYyIikgZm9ybWF0KCJ3b2ZmMiIpLCB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2Evdnd0ZXh0b2ZmaWNlLWJvbGRpdGFsaWMtd2ViZm9udC53b2ZmIikgZm9ybWF0KCJ3b2ZmIiksIHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9WV1RleHRPZmZpY2UtQm9sZEl0YWxpYy50dGYiKSBmb3JtYXQoInRydWV0eXBlIik7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonVldUZXh0JzsgZm9udC13ZWlnaHQ6Ym9sZGVyOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOiB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvdndoZWFkbGluZW90LXNlbWlib2xkXzAtd2ViZm9udC53b2ZmMiIpIGZvcm1hdCgid29mZjIiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL3Z3aGVhZGxpbmVvdC1zZW1pYm9sZF8wLXdlYmZvbnQud29mZiIpIGZvcm1hdCgid29mZiIpLCB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvVldIZWFkbGluZU9ULVNlbWlib2xkXzAudHRmIikgZm9ybWF0KCJ0cnVldHlwZSIpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1ZXVGV4dCc7IGZvbnQtd2VpZ2h0OmxpZ2h0ZXI7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6IHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS92d3RleHQtbGlnaHQtd2ViZm9udC53b2ZmMiIpIGZvcm1hdCgid29mZjIiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL3Z3dGV4dC1saWdodC13ZWJmb250LndvZmYiKSBmb3JtYXQoIndvZmYiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1ZXVGV4dC1MaWdodC5vdGYiKSBmb3JtYXQoIm9wZW50eXBlIik7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonVldIZWFkJzsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvdndoZWFkLXJlZ3VsYXItd2ViZm9udC53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL3Z3aGVhZC1yZWd1bGFyLXdlYmZvbnQud29mZicpIGZvcm1hdCgnd29mZicpLCB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvVldIZWFkLVJlZ3VsYXIub3RmIikgZm9ybWF0KCJvcGVudHlwZSIpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1ZXSGVhZCc7IGZvbnQtc3R5bGU6aXRhbGljOyBmb250LXdlaWdodDpub3JtYWw7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL3Z3aGVhZC1yZWd1bGFyaXRhbGljLXdlYmZvbnQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS92d2hlYWQtcmVndWxhcml0YWxpYy13ZWJmb250LndvZmYnKSBmb3JtYXQoJ3dvZmYnKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1ZXSGVhZC1SZWd1bGFySXRhbGljLm90ZiIpIGZvcm1hdCgib3BlbnR5cGUiKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidWV0hlYWQnOyBmb250LXdlaWdodDpib2xkOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS92d2hlYWQtYm9sZC13ZWJmb250LndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvdndoZWFkLWJvbGQtd2ViZm9udC53b2ZmJykgZm9ybWF0KCd3b2ZmJyksIHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9WV0hlYWQtQm9sZC5vdGYiKSBmb3JtYXQoIm9wZW50eXBlIik7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonVldIZWFkJzsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL3Z3aGVhZC1ib2xkaXRhbGljLXdlYmZvbnQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS92d2hlYWQtYm9sZGl0YWxpYy13ZWJmb250LndvZmYnKSBmb3JtYXQoJ3dvZmYnKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1ZXSGVhZC1Cb2xkSXRhbGljLm90ZiIpIGZvcm1hdCgib3BlbnR5cGUiKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidWV0hlYWQnOyBmb250LXdlaWdodDpib2xkZXI7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS92d2hlYWQtZXh0cmFib2xkLXdlYmZvbnQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS92d2hlYWQtZXh0cmFib2xkLXdlYmZvbnQud29mZicpIGZvcm1hdCgnd29mZicpLCB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvVldIZWFkLUV4dHJhQm9sZC5vdGYiKSBmb3JtYXQoIm9wZW50eXBlIik7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonVldIZWFkT2ZmaWNlJzsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOiB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvVldIZWFkT2ZmaWNlLVJlZ3VsYXIud29mZjIiKSBmb3JtYXQoIndvZmYyIik7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonVldIZWFkT2ZmaWNlJzsgZm9udC1zdHlsZTppdGFsaWM7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgc3JjOiB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvdndoZWFkb2ZmaWNlLXJlZ3VsYXJpdGFsaWMtd2ViZm9udC53b2ZmMiIpIGZvcm1hdCgid29mZjIiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL3Z3aGVhZG9mZmljZS1yZWd1bGFyaXRhbGljLXdlYmZvbnQud29mZiIpIGZvcm1hdCgid29mZiIpLCB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvVldIZWFkT2ZmaWNlLVJlZ3VsYXJJdGFsaWMudHRmIikgZm9ybWF0KCJ0cnVldHlwZSIpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1ZXSGVhZE9mZmljZSc7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6IHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9WV0hlYWRPZmZpY2UtQm9sZC53b2ZmMiIpIGZvcm1hdCgid29mZjIiKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidWV0hlYWRPZmZpY2UnOyBmb250LXN0eWxlOml0YWxpYzsgZm9udC13ZWlnaHQ6Ym9sZDsgc3JjOiB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvdndoZWFkb2ZmaWNlLWJvbGRpdGFsaWMtd2ViZm9udC53b2ZmMiIpIGZvcm1hdCgid29mZjIiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL3Z3aGVhZG9mZmljZS1ib2xkaXRhbGljLXdlYmZvbnQud29mZiIpIGZvcm1hdCgid29mZiIpLCB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvVldIZWFkT2ZmaWNlLUJvbGRJdGFsaWMudHRmIikgZm9ybWF0KCJ0cnVldHlwZSIpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1ZXVGV4dE9mZmljZSc7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzogdXJsKCIvL2ZvbnRzLmQyY21lZGlhLmNhL1ZXVGV4dE9mZmljZS1SZWd1bGFyLndvZmYyIikgZm9ybWF0KCJ3b2ZmMiIpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1ZXVGV4dE9mZmljZSc7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6IHVybCgiLy9mb250cy5kMmNtZWRpYS5jYS9WV1RleHRPZmZpY2UtQm9sZC53b2ZmMiIpIGZvcm1hdCgid29mZjIiKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidMaW5jb2xuTWlsbGVyQic7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzogdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0xpbmNvbG5NaWxsZXJCLUJsYWNrLndvZmYyIikgZm9ybWF0KCJ3b2ZmMiIpLCB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTGluY29sbk1pbGxlckItQmxhY2sud29mZiIpIGZvcm1hdCgid29mZiIpLCB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTGluY29sbk1pbGxlckItQmxhY2sudHRmIikgZm9ybWF0KCJ0cnVldHlwZSIpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0xpbmNvbG5NaWxsZXJCJzsgZm9udC1zdHlsZTppdGFsaWM7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgc3JjOiB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTGluY29sbk1pbGxlckItSXRhbGljLndvZmYyIikgZm9ybWF0KCJ3b2ZmMiIpLCB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTGluY29sbk1pbGxlckItSXRhbGljLndvZmYiKSBmb3JtYXQoIndvZmYiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0xpbmNvbG5NaWxsZXJCLUl0YWxpYy50dGYiKSBmb3JtYXQoInRydWV0eXBlIik7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonTGluY29sbk1pbGxlckInOyBmb250LXdlaWdodDpib2xkOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOiB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTGluY29sbk1pbGxlckItQm9sZC53b2ZmMiIpIGZvcm1hdCgid29mZjIiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0xpbmNvbG5NaWxsZXJCLUJvbGQud29mZiIpIGZvcm1hdCgid29mZiIpLCB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTGluY29sbk1pbGxlckItQm9sZC50dGYiKSBmb3JtYXQoInRydWV0eXBlIik7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonTGluY29sbk1pbGxlckInOyBmb250LXN0eWxlOml0YWxpYzsgZm9udC13ZWlnaHQ6Ym9sZDsgc3JjOiB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTGluY29sbk1pbGxlckItQmxhY2tJdGFsaWMud29mZjIiKSBmb3JtYXQoIndvZmYyIiksIHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9MaW5jb2xuTWlsbGVyQi1CbGFja0l0YWxpYy53b2ZmIikgZm9ybWF0KCJ3b2ZmIiksIHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9MaW5jb2xuTWlsbGVyQi1CbGFja0l0YWxpYy50dGYiKSBmb3JtYXQoInRydWV0eXBlIik7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonTGluY29sbk1pbGxlckInOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9MaW5jb2xuTWlsbGVyQi1MaWdodC53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0xpbmNvbG5NaWxsZXJCLUxpZ2h0LndvZmYnKSBmb3JtYXQoJ3dvZmYnKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0xpbmNvbG5NaWxsZXJCLUxpZ2h0LnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKTsgZm9udC13ZWlnaHQ6bGlnaHRlcjsgZm9udC1zdHlsZTpub3JtYWw7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonTGluY29sblByb3hpbWFOb3ZhJzsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOiB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTGluY29sblByb3hpbWFOb3ZhLndvZmYyIikgZm9ybWF0KCJ3b2ZmMiIpLCB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTGluY29sblByb3hpbWFOb3ZhLndvZmYiKSBmb3JtYXQoIndvZmYiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0xpbmNvbG5Qcm94aW1hTm92YS50dGYiKSBmb3JtYXQoInRydWV0eXBlIik7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonTGluY29sblByb3hpbWFOb3ZhJzsgZm9udC1zdHlsZTppdGFsaWM7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgc3JjOiB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTGluY29sblByb3hpbWFOb3ZhLUl0YWxpYy53b2ZmMiIpIGZvcm1hdCgid29mZjIiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0xpbmNvbG5Qcm94aW1hTm92YS1JdGFsaWMud29mZiIpIGZvcm1hdCgid29mZiIpLCB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTGluY29sblByb3hpbWFOb3ZhLUl0YWxpYy50dGYiKSBmb3JtYXQoInRydWV0eXBlIik7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonTGluY29sblByb3hpbWFOb3ZhJzsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzogdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0xpbmNvbG5Qcm94aW1hTm92YS1Cb2xkLndvZmYyIikgZm9ybWF0KCJ3b2ZmMiIpLCB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTGluY29sblByb3hpbWFOb3ZhLUJvbGQud29mZiIpIGZvcm1hdCgid29mZiIpLCB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTGluY29sblByb3hpbWFOb3ZhLUJvbGQudHRmIikgZm9ybWF0KCJ0cnVldHlwZSIpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0xpbmNvbG5Qcm94aW1hTm92YSc7IGZvbnQtc3R5bGU6aXRhbGljOyBmb250LXdlaWdodDpib2xkOyBzcmM6IHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9MaW5jb2xuUHJveGltYU5vdmEtQm9sZEl0YWxpYy53b2ZmMiIpIGZvcm1hdCgid29mZjIiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0xpbmNvbG5Qcm94aW1hTm92YS1Cb2xkSXRhbGljLndvZmYiKSBmb3JtYXQoIndvZmYiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0xpbmNvbG5Qcm94aW1hTm92YS1Cb2xkSXRhbGljLnR0ZiIpIGZvcm1hdCgidHJ1ZXR5cGUiKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidMaW5jb2xuUHJveGltYU5vdmEnOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9MaW5jb2xuUHJveGltYU5vdmFMaWdodC53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0xpbmNvbG5Qcm94aW1hTm92YUxpZ2h0LndvZmYnKSBmb3JtYXQoJ3dvZmYnKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0xpbmNvbG5Qcm94aW1hTm92YUxpZ2h0LnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKTsgZm9udC13ZWlnaHQ6bGlnaHRlcjsgZm9udC1zdHlsZTpub3JtYWw7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonUHJveGltYU5vdmEnOyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6IHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Qcm94aW1hTm92YS53b2ZmMiIpIGZvcm1hdCgid29mZjIiKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidQcm94aW1hTm92YSc7IGZvbnQtc3R5bGU6aXRhbGljOyBmb250LXdlaWdodDpub3JtYWw7IHNyYzogdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1Byb3hpbWFOb3ZhLUl0YWxpYy53b2ZmMiIpIGZvcm1hdCgid29mZjIiKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidQcm94aW1hTm92YSc7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6IHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Qcm94aW1hTm92YS1Cb2xkLndvZmYyIikgZm9ybWF0KCJ3b2ZmMiIpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1Byb3hpbWFOb3ZhJzsgZm9udC1zdHlsZTppdGFsaWM7IGZvbnQtd2VpZ2h0OmJvbGQ7IHNyYzogdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1Byb3hpbWFOb3ZhLUJvbGRJdGFsaWMud29mZjIiKSBmb3JtYXQoIndvZmYyIik7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonUHJveGltYU5vdmEnOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Qcm94aW1hTm92YUxpZ2h0LndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyBmb250LXdlaWdodDpsaWdodGVyOyBmb250LXN0eWxlOm5vcm1hbDsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidSb2JvdG8nOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1JvYm90by1SZWd1bGFyLXdlYmZvbnQuZW90Jyk7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvUm9ib3RvLVJlZ3VsYXItd2ViZm9udC5lb3Q\/I2llZml4JykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvUm9ib3RvLVJlZ3VsYXItd2ViZm9udC53b2ZmJykgZm9ybWF0KCd3b2ZmJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Sb2JvdG8tUmVndWxhci13ZWJmb250LnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1JvYm90by1SZWd1bGFyLXdlYmZvbnQuc3ZnI1JvYm90bycpIGZvcm1hdCgnc3ZnJyk7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zdHlsZTpub3JtYWw7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonUm9ib3RvJzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Sb2JvdG8tQm9sZEl0YWxpYy13ZWJmb250LmVvdCcpOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1JvYm90by1Cb2xkSXRhbGljLXdlYmZvbnQuZW90PyNpZWZpeCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1JvYm90by1Cb2xkSXRhbGljLXdlYmZvbnQud29mZicpIGZvcm1hdCgnd29mZicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvUm9ib3RvLUJvbGRJdGFsaWMtd2ViZm9udC50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Sb2JvdG8tQm9sZEl0YWxpYy13ZWJmb250LnN2ZyNSb2JvdG9CbGFja0l0YWxpYycpIGZvcm1hdCgnc3ZnJyk7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc3R5bGU6aXRhbGljOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1JvYm90byc7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvUm9ib3RvLUJvbGQtd2ViZm9udC5lb3QnKTsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Sb2JvdG8tQm9sZC13ZWJmb250LmVvdD8jaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Sb2JvdG8tQm9sZC13ZWJmb250LndvZmYnKSBmb3JtYXQoJ3dvZmYnKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1JvYm90by1Cb2xkLXdlYmZvbnQudHRmJykgZm9ybWF0KCd0cnVldHlwZScpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvUm9ib3RvLUJvbGQtd2ViZm9udC5zdmcjUm9ib3RvQm9sZCcpIGZvcm1hdCgnc3ZnJyk7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc3R5bGU6bm9ybWFsOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1JvYm90byc7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvUm9ib3RvLUxpZ2h0LXdlYmZvbnQuZW90Jyk7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvUm9ib3RvLUxpZ2h0LXdlYmZvbnQuZW90PyNpZWZpeCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1JvYm90by1MaWdodC13ZWJmb250LndvZmYnKSBmb3JtYXQoJ3dvZmYnKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1JvYm90by1MaWdodC13ZWJmb250LnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1JvYm90by1MaWdodC13ZWJmb250LnN2ZyNSb2JvdG9MaWdodCcpIGZvcm1hdCgnc3ZnJyk7IGZvbnQtd2VpZ2h0OmxpZ2h0ZXI7IGZvbnQtc3R5bGU6bm9ybWFsOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0Rlc2lnbmtiJzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9kZXNpZ25rYi13ZWJmb250LmVvdCcpOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL2Rlc2lnbmtiLXdlYmZvbnQuZW90PyNpZWZpeCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL2Rlc2lnbmtiLXdlYmZvbnQud29mZicpIGZvcm1hdCgnd29mZicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvZGVzaWdua2Itd2ViZm9udC50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyk7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zdHlsZTpub3JtYWw7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonRGVzaWdua2InOyBzcmM6IHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9kZXNpZ25rYi13ZWJmb250LndvZmYiKSBmb3JtYXQoIndvZmYiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL2Rlc2lnbmtiLXdlYmZvbnQtYm9sZC50dGYiKSBmb3JtYXQoInRydWV0eXBlIik7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc3R5bGU6bm9ybWFsOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0Rlc2lnbmtiJzsgc3JjOiB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvZGVzaWdua2wtd2ViZm9udC53b2ZmIikgZm9ybWF0KCJ3b2ZmIiksIHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9kZXNpZ25rbC13ZWJmb250LWxpZ2h0LnR0ZiIpIGZvcm1hdCgidHJ1ZXR5cGUiKTsgZm9udC13ZWlnaHQ6bGlnaHRlcjsgZm9udC1zdHlsZTpub3JtYWw7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonRGVzaWdua20nOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL2Rlc2lnbmttLXdlYmZvbnQuZW90Jyk7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvZGVzaWdua20td2ViZm9udC5lb3Q\/I2llZml4JykgZm9ybWF0KCJlb3QiKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL2Rlc2lnbmttLXdlYmZvbnQudHRmJykgZm9ybWF0KCd0cnVldHlwZScpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvZGVzaWdua20td2ViZm9udC53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zdHlsZTpub3JtYWw7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonRGVzaWdua20nOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL2Rlc2lnbmttLXdlYmZvbnQud29mZicpIGZvcm1hdCgnd29mZicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvZGVzaWdua20td2ViZm9udC1tZWRpdW0udHRmJykgZm9ybWF0KCd0cnVldHlwZScpOyBmb250LXdlaWdodDptZWRpdW07IGZvbnQtc3R5bGU6bm9ybWFsOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0NvcnBvcmF0ZVMnOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9jb3Jwb3NfcmVndWxhcl93ZWJmb250LndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvY29ycG9zX3JlZ3VsYXJfd2ViZm9udC53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zdHlsZTpub3JtYWw7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQ29ycG9yYXRlUyc7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL2NvcnBvc19saWdodF93ZWJmb250LndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvY29ycG9zX2xpZ2h0X3dlYmZvbnQud29mZicpIGZvcm1hdCgnd29mZicpOyBmb250LXdlaWdodDoxMDA7IGZvbnQtc3R5bGU6bm9ybWFsOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0NvcnBvcmF0ZVMnOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9jb3Jwb3NfYm9sZF93ZWJmb250LndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvY29ycG9zX2JvbGRfd2ViZm9udC53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc3R5bGU6bm9ybWFsOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0NvcnBvcmF0ZUFDb25kZW5zZWQnOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9jb3Jwb3JhdGVhY29uZHByb19yZWd1bGFyX3dlYmZvbnQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9jb3Jwb3JhdGVhY29uZHByb19yZWd1bGFyX3dlYmZvbnQud29mZicpIGZvcm1hdCgnd29mZicpOyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc3R5bGU6bm9ybWFsOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0NvcnBvcmF0ZUFSZWd1bGFyJzsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvY29ycG9yYXRlYXByb19yZWd1bGFyX2xvZ29fd2ViZm9udC53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL2NvcnBvcmF0ZWFwcm9fcmVndWxhcl9sb2dvX3dlYmZvbnQud29mZicpIGZvcm1hdCgnd29mZicpOyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc3R5bGU6bm9ybWFsOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6IlNvdXJjZVNhbnNQcm8iOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL3NvdXJjZXNhbnNwcm8tcmVndWxhci13ZWJmb250LmVvdCcpOyBzcmM6dXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL3NvdXJjZXNhbnNwcm8tcmVndWxhci13ZWJmb250LmVvdD8jaWVmaXgiKSBmb3JtYXQoImVvdCIpLCB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2Evc291cmNlc2Fuc3Byby1yZWd1bGFyLXdlYmZvbnQud29mZiIpIGZvcm1hdCgid29mZiIpLCB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2Evc291cmNlc2Fuc3Byby1yZWd1bGFyLXdlYmZvbnQudHRmIikgZm9ybWF0KCJ0cnVldHlwZSIpLCB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2Evc291cmNlc2Fuc3Byby1yZWd1bGFyLXdlYmZvbnQuc3ZnI3NvdXJjZV9zYW5zX3Byb3JlZ3VsYXIiKSBmb3JtYXQoInN2ZyIpOyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc3R5bGU6bm9ybWFsOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6IlNvdXJjZVNhbnNQcm8iOyBzcmM6dXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL3NvdXJjZXNhbnNwcm8tYm9sZC13ZWJmb250LmVvdCIpOyBzcmM6dXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL3NvdXJjZXNhbnNwcm8tYm9sZC13ZWJmb250LmVvdD8jaWVmaXgiKSBmb3JtYXQoImVvdCIpLCB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2Evc291cmNlc2Fuc3Byby1ib2xkLXdlYmZvbnQud29mZiIpIGZvcm1hdCgid29mZiIpLCB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2Evc291cmNlc2Fuc3Byby1ib2xkLXdlYmZvbnQudHRmIikgZm9ybWF0KCJ0cnVldHlwZSIpLCB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2Evc291cmNlc2Fuc3Byby1ib2xkLXdlYmZvbnQuc3ZnI3NvdXJjZV9zYW5zX3Byb2JvbGQiKSBmb3JtYXQoInN2ZyIpOyBmb250LXdlaWdodDpib2xkOyBmb250LXN0eWxlOm5vcm1hbDsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OiJTb3VyY2VTYW5zUHJvIjsgc3JjOnVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9zb3VyY2VzYW5zcHJvLWxpZ2h0LXdlYmZvbnQuZW90Iik7IHNyYzp1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2Evc291cmNlc2Fuc3Byby1saWdodC13ZWJmb250LmVvdD8jaWVmaXgiKSBmb3JtYXQoImVvdCIpLCB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2Evc291cmNlc2Fuc3Byby1saWdodC13ZWJmb250LndvZmYiKSBmb3JtYXQoIndvZmYiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL3NvdXJjZXNhbnNwcm8tbGlnaHQtd2ViZm9udC50dGYiKSBmb3JtYXQoInRydWV0eXBlIiksIHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9zb3VyY2VzYW5zcHJvLWxpZ2h0LXdlYmZvbnQuc3ZnI3NvdXJjZV9zYW5zX3Byb2xpZ2h0IikgZm9ybWF0KCJzdmciKTsgZm9udC13ZWlnaHQ6MTAwOyBmb250LXN0eWxlOm5vcm1hbDsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidBdWRpJzsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOiB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQXVkaVR5cGUtTm9ybWFsLndvZmYyIikgZm9ybWF0KCJ3b2ZmMiIpLCB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQXVkaVR5cGUtTm9ybWFsLndvZmYiKSBmb3JtYXQoIndvZmYiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0F1ZGlUeXBlVjAzLU5vcm1hbC5vdGYiKSBmb3JtYXQoIm9wZW50eXBlIik7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQXVkaSc7IGZvbnQtc3R5bGU6aXRhbGljOyBmb250LXdlaWdodDpub3JtYWw7IHNyYzogdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0F1ZGlUeXBlLUV4dGVuZGVkSXRhbGljLndvZmYyIikgZm9ybWF0KCJ3b2ZmMiIpLCB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQXVkaVR5cGUtRXh0ZW5kZWRJdGFsaWMud29mZiIpIGZvcm1hdCgid29mZiIpLCB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQXVkaVR5cGVWMDMtSXRhbGljLm90ZiIpIGZvcm1hdCgib3BlbnR5cGUiKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidBdWRpJzsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzogdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0F1ZGlUeXBlLUJvbGQud29mZjIiKSBmb3JtYXQoIndvZmYyIiksIHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9BdWRpVHlwZS1Cb2xkLndvZmYiKSBmb3JtYXQoIndvZmYiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0F1ZGlUeXBlVjAzLUJvbGQiKSBmb3JtYXQoIm9wZW50eXBlIik7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQXVkaSc7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6IHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9BdWRpVHlwZS1FeHRlbmRlZEJvbGRJdGFsaWMud29mZjIiKSBmb3JtYXQoIndvZmYyIiksIHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9BdWRpVHlwZS1FeHRlbmRlZEJvbGRJdGFsaWMud29mZiIpIGZvcm1hdCgid29mZiIpLCB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQXVkaVR5cGVWMDMtRXh0ZW5kZWRCb2xkSXRhbGljLm90ZiIpIGZvcm1hdCgib3BlbnR5cGUiKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidBdWRpRXh0ZW5kZWQnOyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCIvL2ZvbnRzLmQyY21lZGlhLmNhL0F1ZGlUeXBlLUV4dGVuZGVkLTQuMDMtTm9ybWFsLm90ZiIpIGZvcm1hdCgib3BlbnR5cGUiKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidBdWRpRXh0ZW5kZWQnOyBmb250LXN0eWxlOml0YWxpYzsgZm9udC13ZWlnaHQ6bm9ybWFsOyBzcmM6dXJsKCIvL2ZvbnRzLmQyY21lZGlhLmNhL0F1ZGlUeXBlLUV4dGVuZGVkLTQuMDMtSXRhbGljLm90ZiIpIGZvcm1hdCgib3BlbnR5cGUiKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidBdWRpRXh0ZW5kZWQnOyBmb250LXdlaWdodDpib2xkOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgiLy9mb250cy5kMmNtZWRpYS5jYS9BdWRpVHlwZS1FeHRlbmRlZC00LjAzLUJvbGQub3RmIikgZm9ybWF0KCJvcGVudHlwZSIpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0F1ZGlFeHRlbmRlZCc7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCIvL2ZvbnRzLmQyY21lZGlhLmNhL0F1ZGlUeXBlLUV4dGVuZGVkLTQuMDMtQm9sZEl0YWxpYy5vdGYiKSBmb3JtYXQoIm9wZW50eXBlIik7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonUG9yc2NoZSc7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzogdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1BvcnNjaGVOZXh0LVJlZ3VsYXIub3RmIikgZm9ybWF0KCJvcGVudHlwZSIpLCB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvUG9yc2NoZU5leHQtUmVndWxhci53b2ZmMiIpIGZvcm1hdCgid29mZjIiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1BvcnNjaGVOZXh0LVJlZ3VsYXIud29mZiIpIGZvcm1hdCgid29mZiIpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1BvcnNjaGUnOyBmb250LXN0eWxlOml0YWxpYzsgZm9udC13ZWlnaHQ6bm9ybWFsOyBzcmM6IHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Qb3JzY2hlTmV4dC1JdGFsaWMud29mZjIiKSBmb3JtYXQoIndvZmYyIiksIHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Qb3JzY2hlTmV4dC1JdGFsaWMud29mZiIpIGZvcm1hdCgid29mZiIpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1BvcnNjaGUnOyBmb250LXdlaWdodDpib2xkOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOiB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvUG9yc2NoZU5leHQtQm9sZC5vdGYiKSBmb3JtYXQoIm9wZW50eXBlIiksIHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Qb3JzY2hlTmV4dC1Cb2xkLndvZmYyIikgZm9ybWF0KCJ3b2ZmMiIpLCB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvUG9yc2NoZU5leHQtQm9sZC53b2ZmIikgZm9ybWF0KCJ3b2ZmIik7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonUG9yc2NoZSc7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6IHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Qb3JzY2hlTmV4dC1Cb2xkSXRhbGljLndvZmYyIikgZm9ybWF0KCJ3b2ZmMiIpLCB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvUG9yc2NoZU5leHQtQm9sZEl0YWxpYy53b2ZmIikgZm9ybWF0KCJ3b2ZmIik7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonUG9yc2NoZSc7IHNyYzogdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1BvcnNjaGVOZXh0LVRoaW4ub3RmIikgZm9ybWF0KCJvcGVudHlwZSIpLCB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvUG9yc2NoZU5leHQtVGhpbi53b2ZmMiIpIGZvcm1hdCgid29mZjIiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1BvcnNjaGVOZXh0LVRoaW4ud29mZiIpIGZvcm1hdCgid29mZiIpOyBmb250LXdlaWdodDpsaWdodGVyOyBmb250LXN0eWxlOm5vcm1hbDsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidQb3JzY2hlJzsgc3JjOiB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvUG9yc2NoZU5leHQtVGhpbkl0YWxpYy53b2ZmMiIpIGZvcm1hdCgid29mZjIiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1BvcnNjaGVOZXh0LVRoaW5JdGFsaWMud29mZiIpIGZvcm1hdCgid29mZiIpOyBmb250LXdlaWdodDpsaWdodGVyOyBmb250LXN0eWxlOml0YWxpYzsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidPc3dhbGQnOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL09zd2FsZC5lb3QnKTsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Pc3dhbGQud29mZicpIGZvcm1hdCgnd29mZicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvT3N3YWxkLnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL09zd2FsZC5zdmcnKSBmb3JtYXQoJ3N2ZycpOyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc3R5bGU6bm9ybWFsOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J09zd2FsZEJvbGQnOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL09zd2FsZEJvbGQuZW90Jyk7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvT3N3YWxkQm9sZC53b2ZmJykgZm9ybWF0KCd3b2ZmJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Pc3dhbGRCb2xkLnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL09zd2FsZEJvbGQuc3ZnJykgZm9ybWF0KCdzdmcnKTsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zdHlsZTpub3JtYWw7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonTWF6ZGFUeXBlJzsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTWF6ZGFUeXBlLVJlZ3VsYXIud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zdHlsZTpub3JtYWw7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonTWF6ZGFUeXBlJzsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTWF6ZGFUeXBlLUJvbGQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc3R5bGU6bm9ybWFsOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J01hemRhVHlwZSc7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL01hemRhVHlwZS1Cb2xkSXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyBmb250LXdlaWdodDpib2xkOyBmb250LXN0eWxlOml0YWxpYzsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidNYXpkYVR5cGUnOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9NYXpkYVR5cGUtSXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc3R5bGU6aXRhbGljOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J01hemRhVHlwZSc7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL01hemRhVHlwZS1NZWRpdW0ud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IGZvbnQtd2VpZ2h0OmJvbGRlcjsgZm9udC1zdHlsZTpub3JtYWw7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonTWF6ZGFUeXBlJzsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTWF6ZGFUeXBlLU1lZGl1bUl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgZm9udC13ZWlnaHQ6Ym9sZGVyOyBmb250LXN0eWxlOml0YWxpYzsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidzaG93cm9vbSc7IHNyYzogbG9jYWwoJ3Nob3dyb29tJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS93ZWJmb250cy9zaG93cm9vbS53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL3dlYmZvbnRzL3Nob3dyb29tLnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL3dlYmZvbnRzL3Nob3dyb29tLndvZmYnKSBmb3JtYXQoJ3dvZmYnKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL3dlYmZvbnRzL3Nob3dyb29tLnN2ZycpIGZvcm1hdCgnc3ZnJyk7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zdHlsZTpub3JtYWw7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQXZlbmlyJzsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQXZlbmlyTFRTdGQtTGlnaHQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9BdmVuaXJMVFN0ZC1MaWdodC53b2ZmJykgZm9ybWF0KCd3b2ZmJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9BdmVuaXJMVFN0ZC1MaWdodC5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQXZlbmlyJzsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQXZlbmlyTFRTdGQtTGlnaHRPYmxpcXVlLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQXZlbmlyTFRTdGQtTGlnaHRPYmxpcXVlLndvZmYnKSBmb3JtYXQoJ3dvZmYnKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0F2ZW5pckxUU3RkLUxpZ2h0T2JsaXF1ZS5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQXZlbmlyJzsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0F2ZW5pckxUU3RkLUJsYWNrLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQXZlbmlyTFRTdGQtQmxhY2sud29mZjInKSBmb3JtYXQoJ3dvZmYnKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0F2ZW5pckxUU3RkLUJsYWNrLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidBdmVuaXInOyBmb250LXdlaWdodDpib2xkOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQXZlbmlyTFRTdGQtQmxhY2tPYmxpcXVlLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQXZlbmlyTFRTdGQtQmxhY2tPYmxpcXVlLndvZmYnKSBmb3JtYXQoJ3dvZmYnKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0F2ZW5pckxUU3RkLUJsYWNrT2JsaXF1ZS5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQXZlbmlyUHJvJzsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQXZlbmlyTmV4dFByby1ub3JtYWwud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQXZlbmlyUHJvJzsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0F2ZW5pck5leHRQcm8tYm9sZC53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidBdmVuaXJOZXh0JzsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQXZlbmlyTmV4dExUUHJvLVJlZ3VsYXIud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQXZlbmlyTmV4dCc7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9BdmVuaXJOZXh0TFRQcm8tQm9sZC53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidBdmVuaXJOZXh0Jzsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQXZlbmlyTmV4dExUUHJvLUl0LndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc3R5bGU6aXRhbGljOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0F2ZW5pck5leHRSb3VuZGVkJzsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQXZlbmlyTmV4dFJvdW5kZWRTdGQtUmVnLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0F2ZW5pck5leHRSb3VuZGVkJzsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0F2ZW5pck5leHRSb3VuZGVkU3RkLUJvbGQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQXZlbmlyTmV4dFJvdW5kZWQnOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9BdmVuaXJOZXh0Um91bmRlZFN0ZC1Cb2xkSXQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc3R5bGU6aXRhbGljOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0F2ZW5pck5leHRSb3VuZGVkJzsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQXZlbmlyTmV4dFJvdW5kZWRTdGQtSXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc3R5bGU6aXRhbGljOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0FwZXhOZXdCb29rJzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9hcGV4LW5ldy1ib29rLXJlZ3VsYXIudHRmJykgZm9ybWF0KCd0cnVldHlwZScpOyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc3R5bGU6bm9ybWFsOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J01vbnRzZXJyYXQnOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Nb250c2VycmF0LVJlZ3VsYXIud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9tb250c2VycmF0LXJlZ3VsYXItd2ViZm9udC5lb3Q\/I2llZml4JykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvbW9udHNlcnJhdC1yZWd1bGFyLXdlYmZvbnQud29mZicpIGZvcm1hdCgnd29mZicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvbW9udHNlcnJhdC1yZWd1bGFyLXdlYmZvbnQudHRmJykgZm9ybWF0KCd0cnVldHlwZScpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvbW9udHNlcnJhdC1yZWd1bGFyLXdlYmZvbnQuc3ZnI21vbnRzZXJyYXRyZWd1bGFyJykgZm9ybWF0KCdzdmcnKTsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXN0eWxlOm5vcm1hbDsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidNb250c2VycmF0Jzsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTW9udHNlcnJhdC1Cb2xkLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvbW9udHNlcnJhdC1ib2xkLXdlYmZvbnQuZW90PyNpZWZpeCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL21vbnRzZXJyYXQtYm9sZC13ZWJmb250LndvZmYnKSBmb3JtYXQoJ3dvZmYnKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL21vbnRzZXJyYXQtYm9sZC13ZWJmb250LnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL21vbnRzZXJyYXQtYm9sZC13ZWJmb250LnN2ZyNtb250c2VycmF0Ym9sZCcpIGZvcm1hdCgnc3ZnJyk7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc3R5bGU6bm9ybWFsOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J01vbnRzZXJyYXQnOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Nb250c2VycmF0LUJvbGRJdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9tb250c2VycmF0LWJvbGRpdGFsaWMtd2ViZm9udC5lb3Q\/I2llZml4JykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvbW9udHNlcnJhdC1ib2xkaXRhbGljLXdlYmZvbnQud29mZicpIGZvcm1hdCgnd29mZicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvbW9udHNlcnJhdC1ib2xkaXRhbGljLXdlYmZvbnQudHRmJykgZm9ybWF0KCd0cnVldHlwZScpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvbW9udHNlcnJhdC1ib2xkaXRhbGljLXdlYmZvbnQuc3ZnI21vbnRzZXJyYXRib2xkX2l0YWxpYycpIGZvcm1hdCgnc3ZnJyk7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc3R5bGU6aXRhbGljOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J01vbnRzZXJyYXQnOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Nb250c2VycmF0LUl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL21vbnRzZXJyYXQtcmVndWxhcml0YWxpYy13ZWJmb250LmVvdD8jaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9tb250c2VycmF0LXJlZ3VsYXJpdGFsaWMtd2ViZm9udC53b2ZmJykgZm9ybWF0KCd3b2ZmJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9tb250c2VycmF0LXJlZ3VsYXJpdGFsaWMtd2ViZm9udC50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9tb250c2VycmF0LXJlZ3VsYXJpdGFsaWMtd2ViZm9udC5zdmcjbW9udHNlcnJhdGl0YWxpYycpIGZvcm1hdCgnc3ZnJyk7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zdHlsZTppdGFsaWM7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonTW9udHNlcnJhdCc7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL01vbnRzZXJyYXQtTWVkaXVtLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvbW9udHNlcnJhdC1tZWRpdW0td2ViZm9udC5lb3Q\/I2llZml4JykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvbW9udHNlcnJhdC1tZWRpdW0td2ViZm9udC53b2ZmJykgZm9ybWF0KCd3b2ZmJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9tb250c2VycmF0LW1lZGl1bS13ZWJmb250LnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL21vbnRzZXJyYXQtbWVkaXVtLXdlYmZvbnQuc3ZnI21vbnRzZXJyYXRtZWRpdW0nKSBmb3JtYXQoJ3N2ZycpOyBmb250LXdlaWdodDpib2xkZXI7IGZvbnQtc3R5bGU6bm9ybWFsOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J01vbnRzZXJyYXQnOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Nb250c2VycmF0LU1lZGl1bUl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL21vbnRzZXJyYXQtbWVkaXVtaXRhbGljLXdlYmZvbnQuZW90PyNpZWZpeCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL21vbnRzZXJyYXQtbWVkaXVtaXRhbGljLXdlYmZvbnQud29mZicpIGZvcm1hdCgnd29mZicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvbW9udHNlcnJhdC1tZWRpdW1pdGFsaWMtd2ViZm9udC50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9tb250c2VycmF0LW1lZGl1bWl0YWxpYy13ZWJmb250LnN2ZyNtb250c2VycmF0bWVkaXVtX2l0YWxpYycpIGZvcm1hdCgnc3ZnJyk7IGZvbnQtd2VpZ2h0OmJvbGRlcjsgZm9udC1zdHlsZTppdGFsaWM7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonTU1DJzsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTU1DLVJlZ3VsYXIud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9NTUMtUmVndWxhci5lb3Q\/I2llZml4JykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTU1DLVJlZ3VsYXIud29mZicpIGZvcm1hdCgnd29mZicpOyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc3R5bGU6bm9ybWFsOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J01NQyc7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL01NQy1NZWRpdW0ud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9NTUMtTWVkaXVtLmVvdD8jaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9NTUMtTWVkaXVtLndvZmYnKSBmb3JtYXQoJ3dvZmYnKTsgZm9udC13ZWlnaHQ6NTAwOyBmb250LXN0eWxlOm5vcm1hbDsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidNTUMnOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9NTUMtQm9sZC53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL01NQy1Cb2xkLmVvdD8jaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9NTUMtQm9sZC53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc3R5bGU6bm9ybWFsOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0h5dW5kYWlTYW5zSGVhZCc7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0h5dW5kYWlTYW5zSGVhZC1SZWd1bGFyLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSHl1bmRhaVNhbnNIZWFkLVJlZ3VsYXIud29mZicpIGZvcm1hdCgnd29mZicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSHl1bmRhaVNhbnNIZWFkLVJlZ3VsYXIuZW90PyNpZWZpeCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0h5dW5kYWlTYW5zSGVhZC1SZWd1bGFyLnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKTsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXN0eWxlOm5vcm1hbDsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidIeXVuZGFpU2Fuc0hlYWQnOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IeXVuZGFpU2Fuc0hlYWQtTWVkaXVtLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSHl1bmRhaVNhbnNIZWFkLU1lZGl1bS53b2ZmJykgZm9ybWF0KCd3b2ZmJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IeXVuZGFpU2Fuc0hlYWQtTWVkaXVtLmVvdD8jaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IeXVuZGFpU2Fuc0hlYWQtTWVkaXVtLnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKTsgZm9udC13ZWlnaHQ6NTAwOyBmb250LXN0eWxlOm5vcm1hbDsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidIeXVuZGFpU2Fuc0hlYWQnOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IeXVuZGFpU2Fuc0hlYWQtQm9sZC53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0h5dW5kYWlTYW5zSGVhZC1Cb2xkLndvZmYnKSBmb3JtYXQoJ3dvZmYnKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0h5dW5kYWlTYW5zSGVhZC1Cb2xkLmVvdD8jaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IeXVuZGFpU2Fuc0hlYWQtQm9sZC50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyk7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc3R5bGU6bm9ybWFsOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0h5dW5kYWlTYW5zSGVhZCc7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0h5dW5kYWlTYW5zSGVhZC1MaWdodC53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0h5dW5kYWlTYW5zSGVhZC1MaWdodC53b2ZmJykgZm9ybWF0KCd3b2ZmJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IeXVuZGFpU2Fuc0hlYWQtTGlnaHQuZW90PyNpZWZpeCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0h5dW5kYWlTYW5zSGVhZC1MaWdodC50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyk7IGZvbnQtd2VpZ2h0OmxpZ2h0ZXI7IGZvbnQtc3R5bGU6bm9ybWFsOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0JNVyc7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0JNV1R5cGVOZXh0LUxpZ2h0LndvZmYnKSBmb3JtYXQoJ3dvZmYnKTsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXN0eWxlOm5vcm1hbDsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidCTVcnOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9CTVdUeXBlTmV4dC1Cb2xkLndvZmYnKSBmb3JtYXQoJ3dvZmYnKTsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zdHlsZTpub3JtYWw7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQk1XR2xvYmFsUHJvJzsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQk1XR2xvYmFsX1Byb19yZWcud29mZicpIGZvcm1hdCgnd29mZjInKTsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXN0eWxlOm5vcm1hbDsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidCTVdHbG9iYWxQcm8nOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9CTVdHbG9iYWxfUHJvX2JvbGQud29mZicpIGZvcm1hdCgnd29mZjInKTsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zdHlsZTpub3JtYWw7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonTmF0aW9uYWwnOyBmb250LXdlaWdodDoxMDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzaXplLWFkanVzdDoxMTYlOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9OYXRpb25hbC1UaGluLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTmF0aW9uYWwtVGhpbi5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonTmF0aW9uYWwnOyBmb250LXdlaWdodDoxMDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzaXplLWFkanVzdDoxMTYlOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9OYXRpb25hbC1UaGluSXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTmF0aW9uYWwtVGhpbkl0YWxpYy5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonTmF0aW9uYWwnOyBmb250LXdlaWdodDozMDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzaXplLWFkanVzdDoxMTYlOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9OYXRpb25hbC1MaWdodC53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL05hdGlvbmFsLUxpZ2h0Lm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidOYXRpb25hbCc7IGZvbnQtd2VpZ2h0OjMwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNpemUtYWRqdXN0OjExNiU7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL05hdGlvbmFsLUxpZ2h0SXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTmF0aW9uYWwtTGlnaHRJdGFsaWMub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J05hdGlvbmFsJzsgZm9udC13ZWlnaHQ6NDAwOyBmb250LXN0eWxlOm5vcm1hbDsgc2l6ZS1hZGp1c3Q6MTE2JTsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTmF0aW9uYWwtUmVndWxhci53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL05hdGlvbmFsLVJlZ3VsYXIub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J05hdGlvbmFsJzsgZm9udC13ZWlnaHQ6NDAwOyBmb250LXN0eWxlOml0YWxpYzsgc2l6ZS1hZGp1c3Q6MTE2JTsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTmF0aW9uYWwtUmVndWxhckl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL05hdGlvbmFsLVJlZ3VsYXJJdGFsaWMub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J05hdGlvbmFsJzsgZm9udC13ZWlnaHQ6NTAwOyBmb250LXN0eWxlOm5vcm1hbDsgc2l6ZS1hZGp1c3Q6MTE2JTsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTmF0aW9uYWwtTWVkaXVtLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTmF0aW9uYWwtTWVkaXVtLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidOYXRpb25hbCc7IGZvbnQtd2VpZ2h0OjUwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNpemUtYWRqdXN0OjExNiU7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL05hdGlvbmFsLU1lZGl1bUl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL05hdGlvbmFsLU1lZGl1bUl0YWxpYy5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonTmF0aW9uYWwnOyBmb250LXdlaWdodDo2MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzaXplLWFkanVzdDoxMTYlOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9OYXRpb25hbC1TZW1pYm9sZC53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL05hdGlvbmFsLVNlbWlib2xkLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidOYXRpb25hbCc7IGZvbnQtd2VpZ2h0OjYwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNpemUtYWRqdXN0OjExNiU7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL05hdGlvbmFsLVNlbWlib2xkSXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTmF0aW9uYWwtU2VtaWJvbGRJdGFsaWMub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J05hdGlvbmFsJzsgZm9udC13ZWlnaHQ6NzAwOyBmb250LXN0eWxlOm5vcm1hbDsgc2l6ZS1hZGp1c3Q6MTE2JTsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTmF0aW9uYWwtQm9sZC53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL05hdGlvbmFsLUJvbGQub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J05hdGlvbmFsJzsgZm9udC13ZWlnaHQ6NzAwOyBmb250LXN0eWxlOml0YWxpYzsgc2l6ZS1hZGp1c3Q6MTE2JTsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTmF0aW9uYWwtQm9sZEl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL05hdGlvbmFsLUJvbGRJdGFsaWMub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J05hdGlvbmFsJzsgZm9udC13ZWlnaHQ6ODAwOyBmb250LXN0eWxlOm5vcm1hbDsgc2l6ZS1hZGp1c3Q6MTE2JTsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTmF0aW9uYWwtRXh0cmFib2xkLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTmF0aW9uYWwtRXh0cmFib2xkLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidOYXRpb25hbCc7IGZvbnQtd2VpZ2h0OjgwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNpemUtYWRqdXN0OjExNiU7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL05hdGlvbmFsLUV4dHJhYm9sZEl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL05hdGlvbmFsLUV4dHJhYm9sZEl0YWxpYy5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonTmF0aW9uYWwnOyBmb250LXdlaWdodDo5MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzaXplLWFkanVzdDoxMTYlOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9OYXRpb25hbC1CbGFjay53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL05hdGlvbmFsLUJsYWNrLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidOYXRpb25hbCc7IGZvbnQtd2VpZ2h0OjkwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNpemUtYWRqdXN0OjExNiU7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL05hdGlvbmFsLUJsYWNrSXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTmF0aW9uYWwtQmxhY2tJdGFsaWMub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J05hdGlvbmFsQm9vayc7IGZvbnQtd2VpZ2h0OjQwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNpemUtYWRqdXN0OjExNiU7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL05hdGlvbmFsLUJvb2sud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9OYXRpb25hbC1Cb29rLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidOYXRpb25hbEJvb2snOyBmb250LXdlaWdodDo0MDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzaXplLWFkanVzdDoxMTYlOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9OYXRpb25hbC1Cb29rSXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTmF0aW9uYWwtQm9va0l0YWxpYy5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonTGFuZFJvdmVyJzsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0xhbmRSb3ZlcldlYi1Cb2xkLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTGFuZFJvdmVyV2ViLUJvbGQudHRmJykgZm9ybWF0KCd0cnVldHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0xhbmRSb3Zlcic7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0xhbmRSb3ZlcldlYi1MaWdodC53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0xhbmRSb3ZlcldlYi1MaWdodC50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonTmlzc2FuJzsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL05pc3NhbkJyYW5kQm9sZC53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL05pc3NhbkJyYW5kQm9sZC5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonTmlzc2FuJzsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTmlzc2FuQnJhbmRJdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9OaXNzYW5CcmFuZEl0YWxpYy5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonTmlzc2FuJzsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTmlzc2FuQnJhbmRSZWd1bGFyLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTmlzc2FuQnJhbmRSZWd1bGFyLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidKYWd1YXInOyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9KYWd1YXItUmVndWxhci53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidKYWd1YXInOyBmb250LXdlaWdodDpib2xkOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSmFndWFyLUJvbGQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonSmFndWFyTW9kZXJuJzsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSmFndWFyTW9kZXJuLVJlZ3VsYXIud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonSmFndWFyTW9kZXJuJzsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0phZ3Vhck1vZGVybi1Cb2xkLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0phZ3VhckdvdGhhbSc7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0phZ3VhckdvdGhhbS1MaWdodC53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidKYWd1YXJHb3RoYW0nOyBmb250LXdlaWdodDpib2xkOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSmFndWFyR290aGFtLUJvbGQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonR290aGFtJzsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvR09USEFNLUxpZ2h0LndvZmYnKSBmb3JtYXQoJ3dvZmYnKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0dPVEhBTS1MaWdodC5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonR290aGFtJzsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvR09USEFNLUxpZ2h0SXRhbGljLndvZmYnKSBmb3JtYXQoJ3dvZmYnKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0dPVEhBTS1MaWdodEl0YWxpYy5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonR290aGFtJzsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0dPVEhBTS1NZWRpdW0ud29mZicpIGZvcm1hdCgnd29mZicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvR09USEFNLU1lZGl1bS5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonR290aGFtJzsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0dPVEhBTS1NZWRpdW1JdGFsaWMud29mZicpIGZvcm1hdCgnd29mZicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvR09USEFNLU1lZGl1bUl0YWxpYy5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonSW5maW5pdGknOyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9JbmZpbml0aUJyYW5kLUxpZ2h0LndvZmYnKSBmb3JtYXQoJ3dvZmYnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidJbmZpbml0aSc7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9JbmZpbml0aUJyYW5kLUJvbGQud29mZicpIGZvcm1hdCgnd29mZicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1NpZ25hdHVyZSc7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0tpYVNpZ25hdHVyZVJlZ3VsYXIud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9LaWFTaWduYXR1cmVSZWd1bGFyLndvZmYnKSBmb3JtYXQoJ3dvZmYnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidTaWduYXR1cmUnOyBmb250LXdlaWdodDpib2xkOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvS2lhU2lnbmF0dXJlQm9sZC53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0tpYVNpZ25hdHVyZUJvbGQud29mZicpIGZvcm1hdCgnd29mZicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1NpZ25hdHVyZUxpZ2h0JzsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvS2lhU2lnbmF0dXJlTGlnaHQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9LaWFTaWduYXR1cmVMaWdodC53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonU2lnbmF0dXJlTGlnaHQnOyBmb250LXdlaWdodDpib2xkOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvS2lhU2lnbmF0dXJlQm9sZC53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0tpYVNpZ25hdHVyZUJvbGQud29mZicpIGZvcm1hdCgnd29mZicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1RveW90YVR5cGUnOyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Ub3lvdGFUeXBlLVJlZ3VsYXIud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Ub3lvdGFUeXBlLVJlZ3VsYXIud29mZicpIGZvcm1hdCgnd29mZicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1RveW90YVR5cGUnOyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Ub3lvdGFUeXBlLVJlZ3VsYXJJdC53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1RveW90YVR5cGUtUmVndWxhckl0LndvZmYnKSBmb3JtYXQoJ3dvZmYnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidUb3lvdGFUeXBlJzsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1RveW90YVR5cGUtQm9sZC53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1RveW90YVR5cGUtQm9sZC53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonVG95b3RhVHlwZSc7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Ub3lvdGFUeXBlLUJvbGRJdC53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1RveW90YVR5cGUtQm9sZEl0LndvZmYnKSBmb3JtYXQoJ3dvZmYnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidPdmVycGFzcyc7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL092ZXJwYXNzLVJlZ3VsYXIud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonT3ZlcnBhc3MnOyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9PdmVycGFzcy1JdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonT3ZlcnBhc3MnOyBmb250LXdlaWdodDoyMDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9PdmVycGFzcy1UaGluLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J092ZXJwYXNzJzsgZm9udC13ZWlnaHQ6MjAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvT3ZlcnBhc3MtVGhpbkl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidPdmVycGFzcyc7IGZvbnQtd2VpZ2h0OjMwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL092ZXJwYXNzLUxpZ2h0LndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J092ZXJwYXNzJzsgZm9udC13ZWlnaHQ6MzAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvT3ZlcnBhc3MtTGlnaHRJdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonT3ZlcnBhc3MnOyBmb250LXdlaWdodDo1MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9PdmVycGFzcy1NZWRpdW0ud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonT3ZlcnBhc3MnOyBmb250LXdlaWdodDo1MDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9PdmVycGFzcy1NZWRpdW1JdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonT3ZlcnBhc3MnOyBmb250LXdlaWdodDo2MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9PdmVycGFzcy1TZW1pQm9sZC53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidPdmVycGFzcyc7IGZvbnQtd2VpZ2h0OjYwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL092ZXJwYXNzLVNlbWlCb2xkSXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J092ZXJwYXNzJzsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL092ZXJwYXNzLUJvbGQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonT3ZlcnBhc3MnOyBmb250LXdlaWdodDpib2xkOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvT3ZlcnBhc3MtQm9sZEl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidUaXRpbGxpdW1XZWInOyBmb250LXdlaWdodDoyMDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1RpdGlsbGl1bVdlYi1FeHRyYUxpZ2h0LndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1RpdGlsbGl1bVdlYic7IGZvbnQtd2VpZ2h0OjIwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvVGl0aWxsaXVtV2ViLUV4dHJhTGlnaHRJdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonVGl0aWxsaXVtV2ViJzsgZm9udC13ZWlnaHQ6MzAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9UaXRpbGxpdW1XZWItTGlnaHQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonVGl0aWxsaXVtV2ViJzsgZm9udC13ZWlnaHQ6MzAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9UaXRpbGxpdW1XZWItTGlnaHRJdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonVGl0aWxsaXVtV2ViJzsgZm9udC13ZWlnaHQ6NDAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9UaXRpbGxpdW1XZWItUmVndWxhci53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidUaXRpbGxpdW1XZWInOyBmb250LXdlaWdodDo0MDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1RpdGlsbGl1bVdlYi1JdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonVGl0aWxsaXVtV2ViJzsgZm9udC13ZWlnaHQ6NjAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9UaXRpbGxpdW1XZWItU2VtaUJvbGQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonVGl0aWxsaXVtV2ViJzsgZm9udC13ZWlnaHQ6NjAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9UaXRpbGxpdW1XZWItU2VtaUJvbGRJdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonVGl0aWxsaXVtV2ViJzsgZm9udC13ZWlnaHQ6NzAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9UaXRpbGxpdW1XZWItQm9sZC53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidUaXRpbGxpdW1XZWInOyBmb250LXdlaWdodDo3MDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1RpdGlsbGl1bVdlYi1Cb2xkSXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1RpdGlsbGl1bVdlYic7IGZvbnQtd2VpZ2h0OjkwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvVGl0aWxsaXVtV2ViLUJsYWNrLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1JhbGV3YXknOyBmb250LXdlaWdodDoxMDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1JhbGV3YXktVGhpbi53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidSYWxld2F5JzsgZm9udC13ZWlnaHQ6MTAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9SYWxld2F5LVRoaW5JdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonUmFsZXdheSc7IGZvbnQtd2VpZ2h0OjIwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvUmFsZXdheS1FeHRyYUxpZ2h0LndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1JhbGV3YXknOyBmb250LXdlaWdodDoyMDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1JhbGV3YXktRXh0cmFMaWdodEl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidSYWxld2F5JzsgZm9udC13ZWlnaHQ6MzAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9SYWxld2F5LUxpZ2h0LndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1JhbGV3YXknOyBmb250LXdlaWdodDozMDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1JhbGV3YXktTGlnaHRJdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonUmFsZXdheSc7IGZvbnQtd2VpZ2h0OjQwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvUmFsZXdheS1SZWd1bGFyLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1JhbGV3YXknOyBmb250LXdlaWdodDo0MDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1JhbGV3YXktSXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1JhbGV3YXknOyBmb250LXdlaWdodDo1MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1JhbGV3YXktTWVkaXVtLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1JhbGV3YXknOyBmb250LXdlaWdodDo1MDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1JhbGV3YXktTWVkaXVtSXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1JhbGV3YXknOyBmb250LXdlaWdodDo2MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1JhbGV3YXktU2VtaUJvbGQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonUmFsZXdheSc7IGZvbnQtd2VpZ2h0OjYwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvUmFsZXdheS1TZW1pQm9sZEl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidSYWxld2F5JzsgZm9udC13ZWlnaHQ6NzAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9SYWxld2F5LUJvbGQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonUmFsZXdheSc7IGZvbnQtd2VpZ2h0OjcwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvUmFsZXdheS1Cb2xkSXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1JhbGV3YXknOyBmb250LXdlaWdodDo4MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1JhbGV3YXktRXh0cmFCb2xkLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1JhbGV3YXknOyBmb250LXdlaWdodDo4MDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1JhbGV3YXktRXh0cmFCb2xkSXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1JhbGV3YXknOyBmb250LXdlaWdodDo5MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1JhbGV3YXktQmxhY2sud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonUmFsZXdheSc7IGZvbnQtd2VpZ2h0OjkwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvUmFsZXdheS1CbGFja0l0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidQb3BwaW5zJzsgZm9udC13ZWlnaHQ6MTAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Qb3BwaW5zLVRoaW4ud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonUG9wcGlucyc7IGZvbnQtd2VpZ2h0OjEwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvUG9wcGlucy1UaGluSXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1BvcHBpbnMnOyBmb250LXdlaWdodDoyMDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1BvcHBpbnMtRXh0cmFMaWdodC53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidQb3BwaW5zJzsgZm9udC13ZWlnaHQ6MjAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Qb3BwaW5zLUV4dHJhTGlnaHRJdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonUG9wcGlucyc7IGZvbnQtd2VpZ2h0OjMwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvUG9wcGlucy1MaWdodC53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidQb3BwaW5zJzsgZm9udC13ZWlnaHQ6MzAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Qb3BwaW5zLUxpZ2h0SXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1BvcHBpbnMnOyBmb250LXdlaWdodDo0MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1BvcHBpbnMtUmVndWxhci53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidQb3BwaW5zJzsgZm9udC13ZWlnaHQ6NDAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Qb3BwaW5zLUl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidQb3BwaW5zJzsgZm9udC13ZWlnaHQ6NTAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Qb3BwaW5zLU1lZGl1bS53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidQb3BwaW5zJzsgZm9udC13ZWlnaHQ6NTAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Qb3BwaW5zLU1lZGl1bUl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidQb3BwaW5zJzsgZm9udC13ZWlnaHQ6NjAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Qb3BwaW5zLVNlbWlCb2xkLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1BvcHBpbnMnOyBmb250LXdlaWdodDo2MDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1BvcHBpbnMtU2VtaUJvbGRJdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonUG9wcGlucyc7IGZvbnQtd2VpZ2h0OjcwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvUG9wcGlucy1Cb2xkLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1BvcHBpbnMnOyBmb250LXdlaWdodDo3MDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1BvcHBpbnMtQm9sZEl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidQb3BwaW5zJzsgZm9udC13ZWlnaHQ6ODAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Qb3BwaW5zLUV4dHJhQm9sZC53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidQb3BwaW5zJzsgZm9udC13ZWlnaHQ6ODAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Qb3BwaW5zLUV4dHJhQm9sZEl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidQb3BwaW5zJzsgZm9udC13ZWlnaHQ6OTAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Qb3BwaW5zLUJsYWNrLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1BvcHBpbnMnOyBmb250LXdlaWdodDo5MDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1BvcHBpbnMtQmxhY2tJdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonT3BlblNhbnMnOyBmb250LXdlaWdodDozMDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL09wZW5TYW5zLUxpZ2h0LndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J09wZW5TYW5zJzsgZm9udC13ZWlnaHQ6MzAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9PcGVuU2Fucy1MaWdodEl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidPcGVuU2Fucyc7IGZvbnQtd2VpZ2h0OjQwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvT3BlblNhbnMtUmVndWxhci53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidPcGVuU2Fucyc7IGZvbnQtd2VpZ2h0OjQwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvT3BlblNhbnMtSXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J09wZW5TYW5zJzsgZm9udC13ZWlnaHQ6NTAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9PcGVuU2Fucy1NZWRpdW0ud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonT3BlblNhbnMnOyBmb250LXdlaWdodDo1MDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL09wZW5TYW5zLU1lZGl1bUl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidPcGVuU2Fucyc7IGZvbnQtd2VpZ2h0OjYwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvT3BlblNhbnMtU2VtaUJvbGQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonT3BlblNhbnMnOyBmb250LXdlaWdodDo2MDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL09wZW5TYW5zLVNlbWlCb2xkSXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J09wZW5TYW5zJzsgZm9udC13ZWlnaHQ6NzAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9PcGVuU2Fucy1Cb2xkLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J09wZW5TYW5zJzsgZm9udC13ZWlnaHQ6NzAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9PcGVuU2Fucy1Cb2xkSXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J09wZW5TYW5zJzsgZm9udC13ZWlnaHQ6ODAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9PcGVuU2Fucy1FeHRyYUJvbGQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonT3BlblNhbnMnOyBmb250LXdlaWdodDo4MDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL09wZW5TYW5zLUV4dHJhQm9sZEl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidCYXJsb3dDb25kZW5zZWQnOyBmb250LXdlaWdodDoxMDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0Jhcmxvd0NvbmRlbnNlZC1UaGluLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0Jhcmxvd0NvbmRlbnNlZCc7IGZvbnQtd2VpZ2h0OjEwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQmFybG93Q29uZGVuc2VkLVRoaW5JdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQmFybG93Q29uZGVuc2VkJzsgZm9udC13ZWlnaHQ6MjAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9CYXJsb3dDb25kZW5zZWQtRXh0cmFMaWdodC53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidCYXJsb3dDb25kZW5zZWQnOyBmb250LXdlaWdodDoyMDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0Jhcmxvd0NvbmRlbnNlZC1FeHRyYUxpZ2h0SXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0Jhcmxvd0NvbmRlbnNlZCc7IGZvbnQtd2VpZ2h0OjMwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQmFybG93Q29uZGVuc2VkLUxpZ2h0LndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0Jhcmxvd0NvbmRlbnNlZCc7IGZvbnQtd2VpZ2h0OjMwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQmFybG93Q29uZGVuc2VkLUxpZ2h0SXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0Jhcmxvd0NvbmRlbnNlZCc7IGZvbnQtd2VpZ2h0OjQwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQmFybG93Q29uZGVuc2VkLVJlZ3VsYXIud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQmFybG93Q29uZGVuc2VkJzsgZm9udC13ZWlnaHQ6NDAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9CYXJsb3dDb25kZW5zZWQtSXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0Jhcmxvd0NvbmRlbnNlZCc7IGZvbnQtd2VpZ2h0OjUwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQmFybG93Q29uZGVuc2VkLU1lZGl1bS53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidCYXJsb3dDb25kZW5zZWQnOyBmb250LXdlaWdodDo1MDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0Jhcmxvd0NvbmRlbnNlZC1NZWRpdW1JdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQmFybG93Q29uZGVuc2VkJzsgZm9udC13ZWlnaHQ6NjAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9CYXJsb3dDb25kZW5zZWQtU2VtaUJvbGQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQmFybG93Q29uZGVuc2VkJzsgZm9udC13ZWlnaHQ6NjAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9CYXJsb3dDb25kZW5zZWQtU2VtaUJvbGRJdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQmFybG93Q29uZGVuc2VkJzsgZm9udC13ZWlnaHQ6NzAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9CYXJsb3dDb25kZW5zZWQtQm9sZC53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidCYXJsb3dDb25kZW5zZWQnOyBmb250LXdlaWdodDo3MDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0Jhcmxvd0NvbmRlbnNlZC1Cb2xkSXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0Jhcmxvd0NvbmRlbnNlZCc7IGZvbnQtd2VpZ2h0OjgwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQmFybG93Q29uZGVuc2VkLUV4dHJhQm9sZC53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidCYXJsb3dDb25kZW5zZWQnOyBmb250LXdlaWdodDo4MDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0Jhcmxvd0NvbmRlbnNlZC1FeHRyYUJvbGRJdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQmFybG93Q29uZGVuc2VkJzsgZm9udC13ZWlnaHQ6OTAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9CYXJsb3dDb25kZW5zZWQtQmxhY2sud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQmFybG93Q29uZGVuc2VkJzsgZm9udC13ZWlnaHQ6OTAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9CYXJsb3dDb25kZW5zZWQtQmxhY2tJdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQmFybG93JzsgZm9udC13ZWlnaHQ6MTAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9CYXJsb3ctVGhpbi53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidCYXJsb3cnOyBmb250LXdlaWdodDoxMDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0Jhcmxvdy1UaGluSXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0Jhcmxvdyc7IGZvbnQtd2VpZ2h0OjIwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQmFybG93LUV4dHJhTGlnaHQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQmFybG93JzsgZm9udC13ZWlnaHQ6MjAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9CYXJsb3ctRXh0cmFMaWdodEl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidCYXJsb3cnOyBmb250LXdlaWdodDozMDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0Jhcmxvdy1MaWdodC53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidCYXJsb3cnOyBmb250LXdlaWdodDozMDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0Jhcmxvdy1MaWdodEl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidCYXJsb3cnOyBmb250LXdlaWdodDo0MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0Jhcmxvdy1SZWd1bGFyLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0Jhcmxvdyc7IGZvbnQtd2VpZ2h0OjQwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQmFybG93LUl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidCYXJsb3cnOyBmb250LXdlaWdodDo1MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0Jhcmxvdy1NZWRpdW0ud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQmFybG93JzsgZm9udC13ZWlnaHQ6NTAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9CYXJsb3ctTWVkaXVtSXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0Jhcmxvdyc7IGZvbnQtd2VpZ2h0OjYwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQmFybG93LVNlbWlCb2xkLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0Jhcmxvdyc7IGZvbnQtd2VpZ2h0OjYwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQmFybG93LVNlbWlCb2xkSXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0Jhcmxvdyc7IGZvbnQtd2VpZ2h0OjcwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQmFybG93LUJvbGQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQmFybG93JzsgZm9udC13ZWlnaHQ6NzAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9CYXJsb3ctQm9sZEl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidCYXJsb3cnOyBmb250LXdlaWdodDo4MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0Jhcmxvdy1FeHRyYUJvbGQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQmFybG93JzsgZm9udC13ZWlnaHQ6ODAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9CYXJsb3ctRXh0cmFCb2xkSXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0Jhcmxvdyc7IGZvbnQtd2VpZ2h0OjkwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQmFybG93LUJsYWNrLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0Jhcmxvdyc7IGZvbnQtd2VpZ2h0OjkwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQmFybG93LUJsYWNrSXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0J1aWNrRnV0dXJhTkQnOyBmb250LXdlaWdodDpib2xkOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9idWlmdWxia18td2ViZm9udC53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQnVpY2tGdXR1cmFORCc7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL2J1aWZ1bGJraS13ZWJmb250LndvZmYnKSBmb3JtYXQoJ3dvZmYnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidCdWlja0Z1dHVyYU5EJzsgZm9udC13ZWlnaHQ6bGlnaHRlcjsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvYnVpZnVsaWctd2ViZm9udC53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQnVpY2tGdXR1cmFORCc7IGZvbnQtd2VpZ2h0OmxpZ2h0ZXI7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL2J1aWZ1bGl0LXdlYmZvbnQud29mZicpIGZvcm1hdCgnd29mZicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0J1aWNrRnV0dXJhTkQnOyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL2J1aWZ1bWRpLXdlYmZvbnQud29mZicpIGZvcm1hdCgnd29mZicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0J1aWNrRnV0dXJhTkQnOyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL2J1aWZ1bG1lZC13ZWJmb250LndvZmYnKSBmb3JtYXQoJ3dvZmYnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidHTUdsb2JhbFNhbnMnOyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0dNR2xvYmFsU2Fucy01X1BsYWluLndvZmYnKSBmb3JtYXQoJ3dvZmYnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidHTUdsb2JhbFNhbnMnOyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0dNR2xvYmFsU2Fucy01aVBsYWluSXRhbGljLndvZmYnKSBmb3JtYXQoJ3dvZmYnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidHTUdsb2JhbFNhbnMnOyBmb250LXdlaWdodDpsaWdodGVyOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9HTUdsb2JhbFNhbnMtM19MaWdodC53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonR01HbG9iYWxTYW5zJzsgZm9udC13ZWlnaHQ6bGlnaHRlcjsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvR01HbG9iYWxTYW5zLTNpTGlnaHRJdGFsaWMud29mZicpIGZvcm1hdCgnd29mZicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0dNR2xvYmFsU2Fucyc7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0dNR2xvYmFsU2Fucy03X0JvbGQud29mZicpIGZvcm1hdCgnd29mZicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0dNR2xvYmFsU2Fucyc7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0dNR2xvYmFsU2Fucy03aUJvbGRJdGFsaWMud29mZicpIGZvcm1hdCgnd29mZicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0dNR2xvYmFsU2Fuc0NkJzsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9HTUdsb2JhbFNhbnNDZC01X1BsYWluLndvZmYnKSBmb3JtYXQoJ3dvZmYnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidHTUdsb2JhbFNhbnNDZCc7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvR01HbG9iYWxTYW5zQ2QtNWlQbGFpbkl0YWxpYy53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonR01HbG9iYWxTYW5zQ2QnOyBmb250LXdlaWdodDpsaWdodGVyOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9HTUdsb2JhbFNhbnNDZC0zX0xpZ2h0LndvZmYnKSBmb3JtYXQoJ3dvZmYnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidHTUdsb2JhbFNhbnNDZCc7IGZvbnQtd2VpZ2h0OmxpZ2h0ZXI7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0dNR2xvYmFsU2Fuc0NkLTNpTGlnaHRJdGFsaWMud29mZicpIGZvcm1hdCgnd29mZicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0dNR2xvYmFsU2Fuc0NkJzsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvR01HbG9iYWxTYW5zQ2QtN19Cb2xkLndvZmYnKSBmb3JtYXQoJ3dvZmYnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidHTUdsb2JhbFNhbnNDZCc7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0dNR2xvYmFsU2Fuc0NkLTdpQm9sZEl0YWxpYy53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonTXVsaSc7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTXVsaS1SZWd1bGFyLndvZmYnKSBmb3JtYXQoJ3dvZmYnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidNdWxpJzsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9NdWxpLUl0YWxpYy53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonTXVsaSc7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL011bGktQm9sZC53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonTXVsaSc7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL011bGktQm9sZEl0YWxpYy53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonTXVsaSc7IGZvbnQtd2VpZ2h0OmxpZ2h0ZXI7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL011bGktTGlnaHQud29mZicpIGZvcm1hdCgnd29mZicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J011bGknOyBmb250LXdlaWdodDpsaWdodGVyOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9NdWxpLUxpZ2h0SXRhbGljLndvZmYnKSBmb3JtYXQoJ3dvZmYnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidTdHJhdHVtR01DJzsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXN0eWxlOm5vcm1hbDsgc2l6ZS1hZGp1c3Q6MTIwJTsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9TdHJhdHVtR01DLVJlZ3VsYXIud29mZicpIGZvcm1hdCgnd29mZicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1N0cmF0dW1HTUMnOyBmb250LXdlaWdodDpib2xkOyBmb250LXN0eWxlOm5vcm1hbDsgc2l6ZS1hZGp1c3Q6MTIwJTsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9TdHJhdHVtR01DLUJvbGQud29mZicpIGZvcm1hdCgnd29mZicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1N0cmF0dW1HTUMnOyBmb250LXdlaWdodDoxMDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzaXplLWFkanVzdDoxMjAlOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1N0cmF0dW1HTUMtVGhpbi53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonU3RyYXR1bUdNQyc7IGZvbnQtd2VpZ2h0OjIwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNpemUtYWRqdXN0OjEyMCU7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvU3RyYXR1bUdNQy1MaWdodC53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonU3RyYXR1bUdNQyc7IGZvbnQtd2VpZ2h0OjUwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNpemUtYWRqdXN0OjEyMCU7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvU3RyYXR1bUdNQy1NZWRpdW0ud29mZicpIGZvcm1hdCgnd29mZicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1N0cmF0dW1HTUMnOyBmb250LXdlaWdodDo5MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzaXplLWFkanVzdDoxMjAlOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1N0cmF0dW1HTUMtQmxhY2sud29mZicpIGZvcm1hdCgnd29mZicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0xvdWlzJzsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Mb3Vpc0dsb2JhbDItUmVnLndvZmYnKSBmb3JtYXQoJ3dvZmYnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidMb3Vpcyc7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0xvdWlzR2xvYmFsMi1Cb2xkLndvZmYnKSBmb3JtYXQoJ3dvZmYnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidMb3Vpcyc7IGZvbnQtd2VpZ2h0OjkwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTG91aXNHbG9iYWwyLUhlYXZ5LndvZmYnKSBmb3JtYXQoJ3dvZmYnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidDYWRpbGxhY0dvdGhpYyc7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQ2FkaWxsYWNHb3RoaWMtUmVndWxhci53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQ2FkaWxsYWNHb3RoaWMnOyBmb250LXdlaWdodDpib2xkOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9DYWRpbGxhY0dvdGhpYy1Cb2xkLndvZmYnKSBmb3JtYXQoJ3dvZmYnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidDYWRpbGxhY0dvdGhpYyc7IGZvbnQtd2VpZ2h0OjUwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQ2FkaWxsYWNHb3RoaWMtTWVkaXVtLndvZmYnKSBmb3JtYXQoJ3dvZmYnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidDYWRpbGxhY0dvdGhpY1dpZGUnOyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0NhZGlsbGFjR290aGljLVdpZGVSZWd1bGFyLndvZmYnKSBmb3JtYXQoJ3dvZmYnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidDYWRpbGxhY0dvdGhpY1dpZGUnOyBmb250LXdlaWdodDpib2xkOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9DYWRpbGxhY0dvdGhpYy1XaWRlQm9sZC53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQ2FkaWxsYWNHb3RoaWNXaWRlJzsgZm9udC13ZWlnaHQ6NTAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9DYWRpbGxhY0dvdGhpYy1XaWRlTWVkaXVtLndvZmYnKSBmb3JtYXQoJ3dvZmYnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidDYWRpbGxhY0dvdGhpY05hcnJvdyc7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQ2FkaWxsYWNHb3RoaWMtTmFycm93UmVndWxhci53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQ2FkaWxsYWNHb3RoaWNOYXJyb3cnOyBmb250LXdlaWdodDpib2xkOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9DYWRpbGxhY0dvdGhpYy1OYXJyb3dCb2xkLndvZmYnKSBmb3JtYXQoJ3dvZmYnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidDYWRpbGxhY0dvdGhpY05hcnJvdyc7IGZvbnQtd2VpZ2h0OjUwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQ2FkaWxsYWNHb3RoaWMtTmFycm93TWVkaXVtLndvZmYnKSBmb3JtYXQoJ3dvZmYnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidNaW5pU2VyaWYnOyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL01JTklTZXJpZi1SZWd1bGFyLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyBzaXplLWFkanVzdDoxMjAlOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J01pbmlTZXJpZic7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTUlOSVNlcmlmLUl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgc2l6ZS1hZGp1c3Q6MTIwJTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidNaW5pU2VyaWYnOyBmb250LXdlaWdodDpib2xkOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9NSU5JU2VyaWYtQm9sZC53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgc2l6ZS1hZGp1c3Q6MTIwJTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidNaW5pU2VyaWYnOyBmb250LXdlaWdodDo5MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL01JTklTZXJpZi1CbGFjay53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgc2l6ZS1hZGp1c3Q6MTIwJTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidOb2JlbCc7IGZvbnQtd2VpZ2h0OjMwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTm9iZWxMaWdodC53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonTm9iZWwnOyBmb250LXdlaWdodDo0MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL05vYmVsUmVndWxhci53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonTm9iZWwnOyBmb250LXdlaWdodDo3MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL05vYmVsQm9sZC53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonTm9iZWxCb29rJzsgZm9udC13ZWlnaHQ6NDAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Ob2JlbEJvb2sud29mZicpIGZvcm1hdCgnd29mZicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0Fua28nOyBmb250LXdlaWdodDo0MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0Fua28tUmVndWxhci53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQW5rbyc7IGZvbnQtd2VpZ2h0OjQwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQW5rby1SZWd1bGFySXRhbGljLndvZmYnKSBmb3JtYXQoJ3dvZmYnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidBbmtvJzsgZm9udC13ZWlnaHQ6NTAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9BbmtvLU1lZGl1bS53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQW5rbyc7IGZvbnQtd2VpZ2h0OjUwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQW5rby1NZWRpdW1JdGFsaWMud29mZicpIGZvcm1hdCgnd29mZicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0Fua28nOyBmb250LXdlaWdodDo2MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0Fua28tU2VtaUJvbGQud29mZicpIGZvcm1hdCgnd29mZicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0Fua28nOyBmb250LXdlaWdodDo2MDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0Fua28tU2VtaUJvbGRJdGFsaWMud29mZicpIGZvcm1hdCgnd29mZicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0Fua28nOyBmb250LXdlaWdodDo3MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0Fua28tQm9sZC53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQW5rbyc7IGZvbnQtd2VpZ2h0OjcwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQW5rby1Cb2xkSXRhbGljLndvZmYnKSBmb3JtYXQoJ3dvZmYnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidFdmVyZXR0JzsgZm9udC13ZWlnaHQ6MTAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9FdmVyZXR0LVRoaW4td2ViLndvZmYnKSBmb3JtYXQoJ3dvZmYnKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0V2ZXJldHQtVGhpbi13ZWIud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonRXZlcmV0dCc7IGZvbnQtd2VpZ2h0OjMwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvRXZlcmV0dC1MaWdodC13ZWIud29mZicpIGZvcm1hdCgnd29mZicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvRXZlcmV0dC1saWdodC13ZWIud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonRXZlcmV0dCc7IGZvbnQtd2VpZ2h0OjQwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvRXZlcmV0dC1SZWd1bGFyLXdlYi53b2ZmJykgZm9ybWF0KCd3b2ZmJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9FdmVyZXR0LVJlZ3VsYXItd2ViLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0V2ZXJldHQnOyBmb250LXdlaWdodDo1MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0V2ZXJldHQtTWVkaXVtLXdlYi53b2ZmJykgZm9ybWF0KCd3b2ZmJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9FdmVyZXR0LU1lZGl1bS13ZWIud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonRXZlcmV0dCc7IGZvbnQtd2VpZ2h0OjcwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvRXZlcmV0dC1Cb2xkLXdlYi53b2ZmJykgZm9ybWF0KCd3b2ZmJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9FdmVyZXR0LUJvbGQtd2ViLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0V2ZXJldHRNb25vJzsgZm9udC13ZWlnaHQ6NDAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9FdmVyZXR0TW9uby1SZWd1bGFyLXdlYi53b2ZmJykgZm9ybWF0KCd3b2ZmJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9FdmVyZXR0TW9uby1SZWd1bGFyLXdlYi53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidIZWx2ZXRpY2FOZXVlTFQnOyBmb250LXdlaWdodDoxMDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1UaGluLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULVRoaW4ub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0hlbHZldGljYU5ldWVMVCc7IGZvbnQtd2VpZ2h0OjEwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULVRoaW4tSXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULVRoaW4tSXRhbGljLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidIZWx2ZXRpY2FOZXVlTFQnOyBmb250LXdlaWdodDoyMDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1VbHRyYUxpZ2h0LndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULVVsdHJhTGlnaHQub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0hlbHZldGljYU5ldWVMVCc7IGZvbnQtd2VpZ2h0OjIwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULVVsdHJhTGlnaHQtSXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULVVsdHJhTGlnaHQtSXRhbGljLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidIZWx2ZXRpY2FOZXVlTFQnOyBmb250LXdlaWdodDozMDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1MaWdodC53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1MaWdodC5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonSGVsdmV0aWNhTmV1ZUxUJzsgZm9udC13ZWlnaHQ6MzAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtTGlnaHQtSXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUxpZ2h0LUl0YWxpYy5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonSGVsdmV0aWNhTmV1ZUxUJzsgZm9udC13ZWlnaHQ6NDAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtUmVndWxhci53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1SZWd1bGFyLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidIZWx2ZXRpY2FOZXVlTFQnOyBmb250LXdlaWdodDo0MDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1SZWd1bGFyLUl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1SZWd1bGFyLUl0YWxpYy5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonSGVsdmV0aWNhTmV1ZUxUJzsgZm9udC13ZWlnaHQ6NTAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtTWVkaXVtLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULU1lZGl1bS5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonSGVsdmV0aWNhTmV1ZUxUJzsgZm9udC13ZWlnaHQ6NTAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtTWVkaXVtLUl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1NZWRpdW0tSXRhbGljLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidIZWx2ZXRpY2FOZXVlTFQnOyBmb250LXdlaWdodDo3MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1Cb2xkLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUJvbGQub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0hlbHZldGljYU5ldWVMVCc7IGZvbnQtd2VpZ2h0OjcwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUJvbGQtSXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUJvbGQtSXRhbGljLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidIZWx2ZXRpY2FOZXVlTFQnOyBmb250LXdlaWdodDo4MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1IZWF2eS53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1IZWF2eS5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonSGVsdmV0aWNhTmV1ZUxUJzsgZm9udC13ZWlnaHQ6ODAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtSGVhdnktSXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUhlYXZ5LUl0YWxpYy5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonSGVsdmV0aWNhTmV1ZUxUJzsgZm9udC13ZWlnaHQ6OTAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtQmxhY2sud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtQmxhY2sub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0hlbHZldGljYU5ldWVMVCc7IGZvbnQtd2VpZ2h0OjkwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUJsYWNrLUl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1CbGFjay1JdGFsaWMub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0hlbHZldGljYU5ldWVMVC1Db25kZW5zZWQnOyBmb250LXdlaWdodDoxMDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1Db25kZW5zZWQtVGhpbi53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1Db25kZW5zZWQtVGhpbi5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonSGVsdmV0aWNhTmV1ZUxULUNvbmRlbnNlZCc7IGZvbnQtd2VpZ2h0OjEwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUNvbmRlbnNlZC1UaGluLU9ibGlxdWUud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtQ29uZGVuc2VkLVRoaW4tT2JsaXF1ZS5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonSGVsdmV0aWNhTmV1ZUxULUNvbmRlbnNlZCc7IGZvbnQtd2VpZ2h0OjIwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUNvbmRlbnNlZC1VbHRyYUxpZ2h0LndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUNvbmRlbnNlZC1VbHRyYUxpZ2h0Lm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidIZWx2ZXRpY2FOZXVlTFQtQ29uZGVuc2VkJzsgZm9udC13ZWlnaHQ6MjAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtQ29uZGVuc2VkLVVsdHJhTGlnaHQtT2JsaXF1ZS53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1Db25kZW5zZWQtVWx0cmFMaWdodC1PYmxpcXVlLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidIZWx2ZXRpY2FOZXVlTFQtQ29uZGVuc2VkJzsgZm9udC13ZWlnaHQ6MzAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtQ29uZGVuc2VkLUxpZ2h0LndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUNvbmRlbnNlZC1MaWdodC5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonSGVsdmV0aWNhTmV1ZUxULUNvbmRlbnNlZCc7IGZvbnQtd2VpZ2h0OjMwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUNvbmRlbnNlZC1MaWdodC1PYmxpcXVlLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUNvbmRlbnNlZC1MaWdodC1PYmxpcXVlLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidIZWx2ZXRpY2FOZXVlTFQtQ29uZGVuc2VkJzsgZm9udC13ZWlnaHQ6NDAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtQ29uZGVuc2VkLVJlZ3VsYXIud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtQ29uZGVuc2VkLVJlZ3VsYXIub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0hlbHZldGljYU5ldWVMVC1Db25kZW5zZWQnOyBmb250LXdlaWdodDo0MDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1Db25kZW5zZWQtUmVndWxhci1PYmxpcXVlLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUNvbmRlbnNlZC1SZWd1bGFyLU9ibGlxdWUub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0hlbHZldGljYU5ldWVMVC1Db25kZW5zZWQnOyBmb250LXdlaWdodDo1MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1Db25kZW5zZWQtTWVkaXVtLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUNvbmRlbnNlZC1NZWRpdW0ub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0hlbHZldGljYU5ldWVMVC1Db25kZW5zZWQnOyBmb250LXdlaWdodDo1MDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1Db25kZW5zZWQtTWVkaXVtLU9ibGlxdWUud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtQ29uZGVuc2VkLU1lZGl1bS1PYmxpcXVlLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidIZWx2ZXRpY2FOZXVlTFQtQ29uZGVuc2VkJzsgZm9udC13ZWlnaHQ6NjAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtQ29uZGVuc2VkLUJvbGQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtQ29uZGVuc2VkLUJvbGQub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0hlbHZldGljYU5ldWVMVC1Db25kZW5zZWQnOyBmb250LXdlaWdodDo2MDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1Db25kZW5zZWQtQm9sZC1PYmxpcXVlLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUNvbmRlbnNlZC1Cb2xkLU9ibGlxdWUub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0hlbHZldGljYU5ldWVMVC1Db25kZW5zZWQnOyBmb250LXdlaWdodDo3MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1Db25kZW5zZWQtSGVhdnkud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtQ29uZGVuc2VkLUhlYXZ5Lm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidIZWx2ZXRpY2FOZXVlTFQtQ29uZGVuc2VkJzsgZm9udC13ZWlnaHQ6NzAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtQ29uZGVuc2VkLUhlYXZ5LU9ibGlxdWUud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtQ29uZGVuc2VkLUhlYXZ5LU9ibGlxdWUub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0hlbHZldGljYU5ldWVMVC1Db25kZW5zZWQnOyBmb250LXdlaWdodDo4MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1Db25kZW5zZWQtQmxhY2sud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtQ29uZGVuc2VkLUJsYWNrLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidIZWx2ZXRpY2FOZXVlTFQtQ29uZGVuc2VkJzsgZm9udC13ZWlnaHQ6ODAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtQ29uZGVuc2VkLUJsYWNrLU9ibGlxdWUud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtQ29uZGVuc2VkLUJsYWNrLU9ibGlxdWUub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0hlbHZldGljYU5ldWVMVC1Db25kZW5zZWQnOyBmb250LXdlaWdodDo5MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1Db25kZW5zZWQtRXh0cmFCbGFjay53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1Db25kZW5zZWQtRXh0cmFCbGFjay5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonSGVsdmV0aWNhTmV1ZUxULUNvbmRlbnNlZCc7IGZvbnQtd2VpZ2h0OjkwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUNvbmRlbnNlZC1FeHRyYUJsYWNrLU9ibGlxdWUud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtQ29uZGVuc2VkLUV4dHJhQmxhY2stT2JsaXF1ZS5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonSGVsdmV0aWNhTmV1ZUxULUV4dGVuZGVkJzsgZm9udC13ZWlnaHQ6MTAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtRXh0ZW5kZWQtVGhpbi53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1FeHRlbmRlZC1UaGluLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidIZWx2ZXRpY2FOZXVlTFQtRXh0ZW5kZWQnOyBmb250LXdlaWdodDoxMDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1FeHRlbmRlZC1UaGluLU9ibGlxdWUud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtRXh0ZW5kZWQtVGhpbi1PYmxpcXVlLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidIZWx2ZXRpY2FOZXVlTFQtRXh0ZW5kZWQnOyBmb250LXdlaWdodDozMDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1FeHRlbmRlZC1MaWdodC53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1FeHRlbmRlZC1MaWdodC5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonSGVsdmV0aWNhTmV1ZUxULUV4dGVuZGVkJzsgZm9udC13ZWlnaHQ6MzAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtRXh0ZW5kZWQtTGlnaHQtT2JsaXF1ZS53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1FeHRlbmRlZC1MaWdodC1PYmxpcXVlLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidIZWx2ZXRpY2FOZXVlTFQtRXh0ZW5kZWQnOyBmb250LXdlaWdodDo0MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1FeHRlbmRlZC1SZWd1bGFyLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUV4dGVuZGVkLVJlZ3VsYXIub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0hlbHZldGljYU5ldWVMVC1FeHRlbmRlZCc7IGZvbnQtd2VpZ2h0OjQwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUV4dGVuZGVkLVJlZ3VsYXItT2JsaXF1ZS53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1FeHRlbmRlZC1SZWd1bGFyLU9ibGlxdWUub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0hlbHZldGljYU5ldWVMVC1FeHRlbmRlZCc7IGZvbnQtd2VpZ2h0OjUwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUV4dGVuZGVkLU1lZGl1bS53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1FeHRlbmRlZC1NZWRpdW0ub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0hlbHZldGljYU5ldWVMVC1FeHRlbmRlZCc7IGZvbnQtd2VpZ2h0OjUwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUV4dGVuZGVkLU1lZGl1bS1PYmxpcXVlLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUV4dGVuZGVkLU1lZGl1bS1PYmxpcXVlLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidIZWx2ZXRpY2FOZXVlTFQtRXh0ZW5kZWQnOyBmb250LXdlaWdodDo3MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1FeHRlbmRlZC1Cb2xkLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUV4dGVuZGVkLUJvbGQub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0hlbHZldGljYU5ldWVMVC1FeHRlbmRlZCc7IGZvbnQtd2VpZ2h0OjcwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUV4dGVuZGVkLUJvbGQtT2JsaXF1ZS53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1FeHRlbmRlZC1Cb2xkLU9ibGlxdWUub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0hlbHZldGljYU5ldWVMVC1FeHRlbmRlZCc7IGZvbnQtd2VpZ2h0OjgwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUV4dGVuZGVkLUhlYXZ5LndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUV4dGVuZGVkLUhlYXZ5Lm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidIZWx2ZXRpY2FOZXVlTFQtRXh0ZW5kZWQnOyBmb250LXdlaWdodDo4MDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1FeHRlbmRlZC1IZWF2eS1PYmxpcXVlLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUV4dGVuZGVkLUhlYXZ5LU9ibGlxdWUub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0hlbHZldGljYU5ldWVMVC1FeHRlbmRlZCc7IGZvbnQtd2VpZ2h0OjkwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUV4dGVuZGVkLUJsYWNrLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUV4dGVuZGVkLUJsYWNrLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidIZWx2ZXRpY2FOZXVlTFQtRXh0ZW5kZWQnOyBmb250LXdlaWdodDo5MDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1FeHRlbmRlZC1CbGFjay1PYmxpcXVlLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUV4dGVuZGVkLUJsYWNrLU9ibGlxdWUub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0FjdXJhQmVzcG9rZSc7IGZvbnQtd2VpZ2h0OjMwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQWN1cmFCZXNwb2tlLUxpZ2h0LndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQWN1cmFCZXNwb2tlLUxpZ2h0Lm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidBY3VyYUJlc3Bva2UnOyBmb250LXdlaWdodDo0MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0FjdXJhQmVzcG9rZS1SZWd1bGFyLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQWN1cmFCZXNwb2tlLVJlZ3VsYXIub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0FjdXJhQmVzcG9rZSc7IGZvbnQtd2VpZ2h0OjcwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQWN1cmFCZXNwb2tlLUJvbGQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9BY3VyYUJlc3Bva2UtQm9sZC5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQWN1cmFCZXNwb2tlQm9vayc7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQWN1cmFCZXNwb2tlLUJvb2sud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9BY3VyYUJlc3Bva2UtQm9vay5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonRm9yZEYxJzsgZm9udC13ZWlnaHQ6MzAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Gb3JkRjEtTGlnaHQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonRm9yZEYxJzsgZm9udC13ZWlnaHQ6NDAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Gb3JkRjEtUmVndWxhci53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidGb3JkRjEnOyBmb250LXdlaWdodDo1MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0ZvcmRGMS1NZWRpdW0ud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonRm9yZEYxJzsgZm9udC13ZWlnaHQ6NjAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Gb3JkRjEtU2VtaWJvbGQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonRm9yZEYxJzsgZm9udC13ZWlnaHQ6NzAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Gb3JkRjEtQm9sZC53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidGZXJyYXJpU2Fucyc7IGZvbnQtd2VpZ2h0OjQwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJy8vZm9udHMuZDJjbWVkaWEuY2EvRmVycmFyaS1TYW5zTGlnaHQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonRmVycmFyaVNhbnMnOyBmb250LXdlaWdodDo0MDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCcvL2ZvbnRzLmQyY21lZGlhLmNhL0ZlcnJhcmktU2Fuc0xpZ2h0SXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0ZlcnJhcmlTYW5zJzsgZm9udC13ZWlnaHQ6NzAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnLy9mb250cy5kMmNtZWRpYS5jYS9GZXJyYXJpLVNhbnNNZWRpdW0ud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonRmVycmFyaVNhbnMnOyBmb250LXdlaWdodDo3MDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCcvL2ZvbnRzLmQyY21lZGlhLmNhL0ZlcnJhcmktU2Fuc01lZGl1bUl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidGZXJyYXJpU2Fucyc7IGZvbnQtd2VpZ2h0OjUwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJy8vZm9udHMuZDJjbWVkaWEuY2EvRmVycmFyaS1TYW5zUmVndWxhci53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidGZXJyYXJpU2Fucyc7IGZvbnQtd2VpZ2h0OjUwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJy8vZm9udHMuZDJjbWVkaWEuY2EvRmVycmFyaS1TYW5zUmVndWxhckl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidGZXJyYXJpU2Fucyc7IGZvbnQtd2VpZ2h0OjgwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJy8vZm9udHMuZDJjbWVkaWEuY2EvRmVycmFyaS1TYW5zQm9sZC53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidGZXJyYXJpU2Fucyc7IGZvbnQtd2VpZ2h0OjgwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJy8vZm9udHMuZDJjbWVkaWEuY2EvRmVycmFyaS1TYW5zQm9sZEl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidNY0xhcmVuQmVzcG9rZSc7IGZvbnQtd2VpZ2h0OjMwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJy8vZm9udHMuZDJjbWVkaWEuY2EvTWNMYXJlbkJlc3Bva2VfTHQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonTWNMYXJlbkJlc3Bva2UnOyBmb250LXdlaWdodDo0MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCcvL2ZvbnRzLmQyY21lZGlhLmNhL01jTGFyZW5CZXNwb2tlX1JnLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J01jTGFyZW5CZXNwb2tlJzsgZm9udC13ZWlnaHQ6NzAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnLy9mb250cy5kMmNtZWRpYS5jYS9NY0xhcmVuQmVzcG9rZV9CZC53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidOb3RvU2Fucyc7IGZvbnQtd2VpZ2h0OjEwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJy8vZm9udHMuZDJjbWVkaWEuY2EvTm90b1NhbnMtVGhpbi53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidOb3RvU2Fucyc7IGZvbnQtd2VpZ2h0OjMwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJy8vZm9udHMuZDJjbWVkaWEuY2EvTm90b1NhbnMtTGlnaHQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonTm90b1NhbnMnOyBmb250LXdlaWdodDo0MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCcvL2ZvbnRzLmQyY21lZGlhLmNhL05vdG9TYW5zLVJlZ3VsYXIud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonTm90b1NhbnMnOyBmb250LXdlaWdodDo0MDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCcvL2ZvbnRzLmQyY21lZGlhLmNhL05vdG9TYW5zLUl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidOb3RvU2Fucyc7IGZvbnQtd2VpZ2h0OjcwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJy8vZm9udHMuZDJjbWVkaWEuY2EvTm90b1NhbnMtQm9sZC53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidOb3RvU2Fucyc7IGZvbnQtd2VpZ2h0OjcwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJy8vZm9udHMuZDJjbWVkaWEuY2EvTm90b1NhbnMtQm9sZEl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidESU5OZXh0TFRQcm8nOyBmb250LXdlaWdodDozMDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCcvL2ZvbnRzLmQyY21lZGlhLmNhL0RJTk5leHRMVFByby1MaWdodC53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidESU5OZXh0TFRQcm8nOyBmb250LXdlaWdodDo0MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCcvL2ZvbnRzLmQyY21lZGlhLmNhL0RJTk5leHRMVFByby1SZWd1bGFyLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0RJTk5leHRMVFBybyc7IGZvbnQtd2VpZ2h0OjcwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJy8vZm9udHMuZDJjbWVkaWEuY2EvRElOTmV4dExUUHJvLUJvbGQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonVHVuZ3N0ZW4nOyBmb250LXdlaWdodDozMDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCcvL2ZvbnRzLmQyY21lZGlhLmNhL1R1bmdzdGVuLUxpZ2h0Lm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidUdW5nc3Rlbic7IGZvbnQtd2VpZ2h0OjcwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJy8vZm9udHMuZDJjbWVkaWEuY2EvVHVuZ3N0ZW4tQm9sZC5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0KLyoqIC9jc3MvbWFpbi5jc3MgKiovCi4tbGVmdCB7ZmxvYXQ6bGVmdCFpbXBvcnRhbnQ7fSAuLXJpZ2h0IHtmbG9hdDpyaWdodH0gLi1zbWFsbCB7Zm9udC1zaXplOi44ZW07bWFyZ2luLWJvdHRvbToxLjg3NWVtO2xpbmUtaGVpZ2h0OjEuODc1ZW0haW1wb3J0YW50O30gLi1sYXJnZSB7Zm9udC1zaXplOjEuMmVtO2xpbmUtaGVpZ2h0OjIuNWVtO21hcmdpbi1ib3R0b206MS4yNWVtIWltcG9ydGFudDt9IC4taGlkZSB7ZGlzcGxheTpub25lIWltcG9ydGFudDt9IC4tcXVpZXQge2NvbG9yOiM2NjYhaW1wb3J0YW50O30gLi1sb3VkIHtjb2xvcjojMDAwMDAwIWltcG9ydGFudDt9IC4taGlnaGxpZ2h0IHtiYWNrZ3JvdW5kOiNmZjAhaW1wb3J0YW50O30gLi1hZGRlZCB7YmFja2dyb3VuZDojMDYwO2NvbG9yOiNmZmYhaW1wb3J0YW50O30gLi1yZW1vdmVkIHtiYWNrZ3JvdW5kOiM5MDA7Y29sb3I6I2ZmZiFpbXBvcnRhbnQ7fSAuLXB1c2gtZmlyc3Qge21hcmdpbi1sZWZ0OjA7cGFkZGluZy1sZWZ0OjAhaW1wb3J0YW50O30gLi1wdXNoLWxhc3Qge21hcmdpbi1yaWdodDowO3BhZGRpbmctcmlnaHQ6MCFpbXBvcnRhbnQ7fSAuLXB1c2gtbGVmdCB7bWFyZ2luLXRvcDowO3BhZGRpbmctdG9wOjAhaW1wb3J0YW50O30gLi1wdXNoLWJvdHRvbSB7bWFyZ2luLWJvdHRvbTowO3BhZGRpbmctYm90dG9tOjAhaW1wb3J0YW50O30gLi1ub2JvcmRlciB7Ym9yZGVyOjAhaW1wb3J0YW50O30gLi1ub2RlY29yYXRpb24sIC4tbm8tdGV4dC1kZWNvcmF0aW9uLCAuLW5vdGV4dC1kZWNvcmF0aW9uIHt0ZXh0LWRlY29yYXRpb246bm9uZSFpbXBvcnRhbnQ7fSAuLXRleHQtdXBwZXJjYXNlLCAuLXVwcGVyY2FzZSwgLnRleHQtdXBwZXJjYXNlIHt0ZXh0LXRyYW5zZm9ybTp2YXIoLS10eHQtdXBwZXIpO30gLi10ZXh0LWxvd2VyY2FzZSwgLi1sb3dlcmNhc2Uge3RleHQtdHJhbnNmb3JtOmxvd2VyY2FzZSFpbXBvcnRhbnQ7fSAuLWhpZGRlbiB7IGRpc3BsYXk6bm9uZTsgfSAuLXRleHQtYm9sZCwuYm9sZHtmb250LXdlaWdodDpib2xkIWltcG9ydGFudDt9IC4tdGV4dC1ub3JtYWwsLm5vcm1hbHtmb250LXdlaWdodDpub3JtYWwhaW1wb3J0YW50O30gLi1hbGlnbi10b3Age3ZlcnRpY2FsLWFsaWduOnRvcCFpbXBvcnRhbnQ7fSAuLWFsaWduLW1pZGRsZSB7dmVydGljYWwtYWxpZ246bWlkZGxlIWltcG9ydGFudDt9IC4tbGluZS1oMXsgbGluZS1oZWlnaHQ6MWVtOyB9IC4tbGluZS1oMnsgbGluZS1oZWlnaHQ6MmVtOyB9IC4tYm90dG9tMHsgYm90dG9tOjA7IH0gLi1ib3R0b20wLWltcG9ydGFudHsgYm90dG9tOjAhaW1wb3J0YW50OyB9IC5Qb3JzY2hlMnsgY2xlYXI6Ym90aDsgfSAuYmxhY2stdGV4dCB7IGNvbG9yOiMwMDAwMDA7IH0gOjpwbGFjZWhvbGRlciB7IHBhZGRpbmctdG9wOjFweDsgY29sb3I6I2E5YTlhOTsgb3BhY2l0eToxOyB9IDotbXMtaW5wdXQtcGxhY2Vob2xkZXIgeyBjb2xvcjojYTlhOWE5OyB9IDo6LW1zLWlucHV0LXBsYWNlaG9sZGVyIHsgY29sb3I6I2E5YTlhOTsgfSAjY2FyVGl0bGUgLmZhLWNoZXZyb24tcmlnaHQsIC5TcGVjaWZpY2F0aW9ucyAuZmEtY2hldnJvbi1yaWdodCB7IGJvcmRlci1yYWRpdXM6MzBweDsgd2lkdGg6MjBweDsgaGVpZ2h0OjI1cHg7IHBhZGRpbmctdG9wOjRweDsgcGFkZGluZy1sZWZ0OjlweDsgZmxvYXQ6bGVmdDsgbWFyZ2luLXRvcDo4cHg7IGZvbnQtc2l6ZToxLjM3NXJlbSA7IGJvcmRlcjoxcHggc29saWQgI2ZmZmZmZjsgYmFja2dyb3VuZC1jb2xvcjojMWYyZjUzOyBjb2xvcjojZmZmZmZmIDsgbWFyZ2luLXJpZ2h0OjEwcHg7IH0gLlNwZWNpZmljYXRpb25zIC5mYS1jaGV2cm9uLXJpZ2h0eyBtYXJnaW4tdG9wOjFweDsgfSAjY2FyVGl0bGUgLm1ha2VNb2RlbFllYXJ7IGZvbnQtc2l6ZToxLjU2M3JlbSA7IH0gI2NhclRpdGxlIC5kZWFsZXJMY2F0aW9uQ2FyVGl0bGUgeyBmb250LXdlaWdodDpub3JtYWw7IGNvbG9yOiM5YzljOWM7IGZvbnQtc2l6ZToxLjEyNXJlbSA7IGxldHRlci1zcGFjaW5nOi0xcHg7IH0gLmNhclRpdGxlIC5mYS1jaGV2cm9uLXJpZ2h0eyBib3JkZXItcmFkaXVzOjMwcHg7IHdpZHRoOjIwcHg7IGhlaWdodDoyNXB4OyBwYWRkaW5nLXRvcDo0cHg7IHBhZGRpbmctbGVmdDo5cHg7IGZsb2F0OmxlZnQ7IG1hcmdpbi10b3A6OHB4OyBmb250LXNpemU6MS4zNzVyZW0gOyBib3JkZXI6MXB4IHNvbGlkICNmZmZmZmY7IGJhY2tncm91bmQtY29sb3I6IzFmMmY1MzsgY29sb3I6I2ZmZmZmZiA7IG1hcmdpbi1yaWdodDoxMHB4OyB9IC5jYXJUaXRsZSAubWFrZU1vZGVsWWVhcnsgZm9udC1zaXplOjEuNDM4cmVtIDsgfSAuY2FyVGl0bGUgLmRlYWxlckxjYXRpb25DYXJUaXRsZSB7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgY29sb3I6IzljOWM5YzsgZm9udC1zaXplOjAuOTM4cmVtIDsgbGV0dGVyLXNwYWNpbmc6LTFweDsgfSAjU2VhcmNoVGl0bGUgLmZhLWNoZXZyb24tcmlnaHR7IGJvcmRlci1yYWRpdXM6MzBweDsgd2lkdGg6MzFweDsgaGVpZ2h0OjQxcHg7IHBhZGRpbmctdG9wOjVweDsgcGFkZGluZy1sZWZ0OjE0cHg7IGZsb2F0OmxlZnQ7IG1hcmdpbi10b3A6OHB4OyBmb250LXNpemU6Mi4xODhyZW0gOyBib3JkZXI6MXB4IHNvbGlkICNmZmZmZmY7IGJhY2tncm91bmQtY29sb3I6IzFmMmY1MzsgY29sb3I6I2ZmZmZmZiA7IG1hcmdpbi1yaWdodDoxMHB4OyB9ICNTZWFyY2hUaXRsZSAuZGVhbGVyTGNhdGlvbkNhclRpdGxlIHsgZm9udC13ZWlnaHQ6bm9ybWFsOyBjb2xvcjojOWM5YzljOyBmb250LXNpemU6MXJlbSA7IGxldHRlci1zcGFjaW5nOi0xcHg7IG1hcmdpbi1sZWZ0OjQ1cHg7IGRpc3BsYXk6YmxvY2s7IH0gLnVpLW11bHRpc2VsZWN0LWNoZWNrYm94ZXMgbGFiZWwgaW5wdXQgeyBwb3NpdGlvbjpyZWxhdGl2ZTsgdG9wOjFweDsgbWFyZ2luLXJpZ2h0OjhweDsgaGVpZ2h0OjEzcHg7IH0gLnVpLXdpZGdldCwudWktc3RhdGUtaG92ZXIsIC51aS13aWRnZXQtY29udGVudCAudWktc3RhdGUtaG92ZXIsIC51aS13aWRnZXQtaGVhZGVyIC51aS1zdGF0ZS1ob3ZlciwgLnVpLXN0YXRlLWZvY3VzLCAudWktd2lkZ2V0LWNvbnRlbnQgLnVpLXN0YXRlLWZvY3VzLCAudWktd2lkZ2V0LWhlYWRlciAudWktc3RhdGUtZm9jdXMsIC51aS1zdGF0ZS1kZWZhdWx0LCAudWktd2lkZ2V0LWNvbnRlbnQgLnVpLXN0YXRlLWRlZmF1bHQsIC51aS13aWRnZXQtaGVhZGVyIC51aS1zdGF0ZS1kZWZhdWx0eyBiYWNrZ3JvdW5kOiNmZmYhaW1wb3J0YW50OyBjb2xvcjojNTU1OyBmb250LXNpemU6MC45MzhyZW0gIWltcG9ydGFudDsgfSAudWktc3RhdGUtZGVmYXVsdCwgLnVpLXdpZGdldC1jb250ZW50IC51aS1zdGF0ZS1kZWZhdWx0LCAudWktd2lkZ2V0LWhlYWRlciAudWktc3RhdGUtZGVmYXVsdHsgcGFkZGluZzo4cHggMTBweCFpbXBvcnRhbnQ7IH0gLnVpLW11bHRpc2VsZWN0LWNoZWNrYm94ZXMgbGl7IGZvbnQtc2l6ZTowLjkzOHJlbSAhaW1wb3J0YW50OyB9IC51aS1jb3JuZXItYWxseyBib3JkZXItcmFkaXVzOjBweCFpbXBvcnRhbnQ7IH0gLi1jb2xsYXBzZXsgYm9yZGVyLWNvbGxhcHNlOmNvbGxhcHNlOyB9IC4tbGl7IGxpc3Qtc3R5bGUtdHlwZTpub25lOyB9IC4tbm8tc2hhZG93LCAuLXNoYWRvdzAsIC4tbm9zaGFkb3d7IGJveC1zaGFkb3c6bm9uZSFpbXBvcnRhbnQ7IH0gLi11bmRlcmxpbmV7IHRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmUhaW1wb3J0YW50OyB9IC4tdG9wMHsgdG9wOjA7IH0gLi10ZXh0LWxlZnR7dGV4dC1hbGlnbjpsZWZ0IWltcG9ydGFudDt9IC4tdGV4dC1yaWdodHt0ZXh0LWFsaWduOnJpZ2h0IWltcG9ydGFudDt9IC4tdGV4dC1jZW50ZXJ7dGV4dC1hbGlnbjpjZW50ZXIhaW1wb3J0YW50O30gLi10ZXh0LXJlZCwgLi1yZWQtdGV4dHtjb2xvcjpyZWQhaW1wb3J0YW50O30gLi1ibG9ja3tkaXNwbGF5OmJsb2NrIWltcG9ydGFudDt9IC4taW5saW5lLWJsb2Nre2Rpc3BsYXk6aW5saW5lLWJsb2NrIWltcG9ydGFudDt9IC4tbm9uZSwgLi1oaWRkZW4sIC4taGlkZGUge2Rpc3BsYXk6bm9uZSFpbXBvcnRhbnQ7fSAuLWlubGluZSB7ZGlzcGxheTppbmxpbmUhaW1wb3J0YW50O30gLi1jb2xvcjEgeyBjb2xvcjojNTc1NzU3IWltcG9ydGFudDt9IC4tdGl0bGUxIHsgZm9udC1zaXplOjEuNDM4cmVtICFpbXBvcnRhbnQ7IGZvbnQtY29sb3I6IzAwMDAwMCAhaW1wb3J0YW50OyB0ZXh0LWRlY29yYXRpb246bm9uZSFpbXBvcnRhbnQ7IH0gLi1pbnB1dCB7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IGxpbmUtaGVpZ2h0OjE1cHg7IHZlcnRpY2FsLWFsaWduOm1pZGRsZTsgaGVpZ2h0OjMycHg7IGNvbG9yOiM0MDQwNDA7IHBhZGRpbmc6MHB4IDZweCFpbXBvcnRhbnQ7IG1hcmdpbjowcHg7IG91dGxpbmU6bm9uZTsgbWluLWhlaWdodDoyMHB4OyBib3JkZXI6MXB4IHNvbGlkICNjZWQ0ZGE7IGJvcmRlci1yYWRpdXM6LjI1cmVtOyB0cmFuc2l0aW9uOmJvcmRlci1jb2xvciAuMTVzIGVhc2UtaW4tb3V0LGJveC1zaGFkb3cgLjE1cyBlYXNlLWluLW91dDsgfSAuLWlucHV0OmZvY3VzLCAuLWlucHV0OmhvdmVyeyBib3JkZXItY29sb3I6IzgwYmRmZiAhaW1wb3J0YW50OyBib3gtc2hhZG93OjAgMCAwIDAuMnJlbSByZ2JhKDAsMTIzLDI1NSwuMjUpOyB9IC4tcG9zaXRpb24tc3RhdGljLCAuLXBvcy1zdGF0aWMsIC4tcG9zLXN0YXQge3Bvc2l0aW9uOnN0YXRpYyFpbXBvcnRhbnQ7fSAuLXBvc2l0aW9uLWFic29sdXRlLCAuLXBvcy1hYnNvbHV0ZSwgLi1wb3MtYWJzIHtwb3NpdGlvbjphYnNvbHV0ZSFpbXBvcnRhbnQ7fSAuLXBvc2l0aW9uLWZpeGVkLCAuLXBvcy1maXhlZCwgLi1wb3MtZml4IHtwb3NpdGlvbjpmaXhlZCFpbXBvcnRhbnQ7fSAuLXBvc2l0aW9uLXJlbGF0aXZlLCAuLXBvcy1yZWxhdGl2ZSwgLi1wb3MtcmVsIHtwb3NpdGlvbjpyZWxhdGl2ZSFpbXBvcnRhbnQ7fSAuLXBvc2l0aW9uLWluaGVyaXQsIC4tcG9zLWluaGVyaXQsIC4tcG9zLWluaCB7cG9zaXRpb246aW5oZXJpdCFpbXBvcnRhbnQ7fSAtbGgtMS0zLCAtbGluZS1oZWlnaHQtMS0zeyBsaW5lLWhlaWdodDoxLjM7IH0gLWxoLTIweyBsaW5lLWhlaWdodDoyMHB4OyB9IC4tZXJyb3IsIC4tYWxlcnQsIC4tbm90aWNlLCAuLXN1Y2Nlc3MsIC4taW5mbyB7cGFkZGluZzowLjhlbTttYXJnaW4tYm90dG9tOjFlbTtib3JkZXI6MnB4IHNvbGlkICNkZGQhaW1wb3J0YW50O30gLi1lcnJvciwgLi1hbGVydCB7YmFja2dyb3VuZDojZmJlM2U0O2NvbG9yOiM4YTFmMTE7Ym9yZGVyLWNvbG9yOiNmYmMyYzQhaW1wb3J0YW50O30gLi1ub3RpY2Uge2JhY2tncm91bmQ6I2ZmZjZiZjtjb2xvcjojNTE0NzIxO2JvcmRlci1jb2xvcjojZmZkMzI0IWltcG9ydGFudDt9IC4tc3VjY2VzcyB7YmFja2dyb3VuZDojZTZlZmMyO2NvbG9yOiMyNjQ0MDk7Ym9yZGVyLWNvbG9yOiNjNmQ4ODAhaW1wb3J0YW50O30gLi1pbmZvIHtiYWNrZ3JvdW5kOiNkNWVkZjg7Y29sb3I6IzIwNTc5MTtib3JkZXItY29sb3I6IzkyY2FlNCFpbXBvcnRhbnQ7fSAuLWVycm9yIGEsIC5hbGVydCBhIHtjb2xvcjojOGExZjExIWltcG9ydGFudDt9IC4tbm90aWNlIGEge2NvbG9yOiM1MTQ3MjEhaW1wb3J0YW50O30gLi1zdWNjZXNzIGEge2NvbG9yOiMyNjQ0MDkhaW1wb3J0YW50O30gLi1pbmZvIGEge2NvbG9yOiMyMDU3OTEhaW1wb3J0YW50O30gLi1ib3gge3BhZGRpbmc6MS41ZW07bWFyZ2luLWJvdHRvbToxLjVlbTtiYWNrZ3JvdW5kOiNlNWVDZjkhaW1wb3J0YW50O30gLWhyIHtiYWNrZ3JvdW5kOiNkZGRkZGQ7Y29sb3I6I2RkZGRkZDtjbGVhcjpib3RoO2Zsb2F0Om5vbmU7d2lkdGg6MTAwJTtoZWlnaHQ6MXB4O21hcmdpbjowIDAgMTdweDtib3JkZXI6bm9uZSFpbXBvcnRhbnQ7fSAtc3BhY2Uge2JhY2tncm91bmQ6I2ZmZjtjb2xvcjojZmZmO3Zpc2liaWxpdHk6aGlkZGVuO2NsZWFyOmJvdGg7ZmxvYXQ6bm9uZTt3aWR0aDoxMDAlO2hlaWdodDoxcHg7bWFyZ2luOjAgMCAxN3B4O2JvcmRlcjpub25lIWltcG9ydGFudDt9IC4tY2xlYXJmaXg6YWZ0ZXIge2NvbnRlbnQ6IlwwMDIwIjtkaXNwbGF5OmJsb2NrO2hlaWdodDowO2NsZWFyOmJvdGg7dmlzaWJpbGl0eTpoaWRkZW47b3ZlcmZsb3c6aGlkZGVuIWltcG9ydGFudDt9IC4tY2xlYXJmaXh7ZGlzcGxheTpibG9jayFpbXBvcnRhbnQ7fSAuLWNsZWFyIHtjbGVhcjpib3RoIWltcG9ydGFudDt9IC5pbnZpc2libGUge3Zpc2liaWxpdHk6aGlkZGVuO30gLmNsZWFyZml4OmFmdGVyIHtjb250ZW50OiIiOyBkaXNwbGF5OnRhYmxlOyBjbGVhcjpib3RoO30gLi1vdmVyZmxvdy1oaWRkZW4ge292ZXJmbG93OmhpZGRlbiFpbXBvcnRhbnQ7fSAuLXc1IHt3aWR0aDo1cHghaW1wb3J0YW50O30gLi13MTAge3dpZHRoOjEwcHghaW1wb3J0YW50O30gLi13MTUge3dpZHRoOjE1cHghaW1wb3J0YW50O30gLi13MTgge3dpZHRoOjE4cHghaW1wb3J0YW50O30gLi13MjAge3dpZHRoOjIwcHghaW1wb3J0YW50O30gLi13MjUge3dpZHRoOjI1cHghaW1wb3J0YW50O30gLi13MzAge3dpZHRoOjMwcHghaW1wb3J0YW50O30gLi13MzUge3dpZHRoOjM1cHghaW1wb3J0YW50O30gLi13NDAge3dpZHRoOjQwcHghaW1wb3J0YW50O30gLi13NDUge3dpZHRoOjQ1cHghaW1wb3J0YW50O30gLi13NTAge3dpZHRoOjUwcHghaW1wb3J0YW50O30gLi13NTUge3dpZHRoOjU1cHghaW1wb3J0YW50O30gLi13NjAge3dpZHRoOjYwcHghaW1wb3J0YW50O30gLi13NjUge3dpZHRoOjY1cHghaW1wb3J0YW50O30gLi13NzAge3dpZHRoOjcwcHghaW1wb3J0YW50O30gLi13NzMge3dpZHRoOjczcHghaW1wb3J0YW50O30gLi13NzUge3dpZHRoOjc1cHghaW1wb3J0YW50O30gLi13ODAge3dpZHRoOjgwcHghaW1wb3J0YW50O30gLi13ODUge3dpZHRoOjg1cHghaW1wb3J0YW50O30gLi13ODgge3dpZHRoOjg4cHghaW1wb3J0YW50O30gLi13OTAge3dpZHRoOjkwcHghaW1wb3J0YW50O30gLi13OTUge3dpZHRoOjk1cHghaW1wb3J0YW50O30gLi13MTAwIHt3aWR0aDoxMDBweCFpbXBvcnRhbnQ7fSAuLXcxMTAge3dpZHRoOjExMHB4IWltcG9ydGFudDt9IC4tdzEyMCB7d2lkdGg6MTIwcHghaW1wb3J0YW50O30gLi13MTI1IHt3aWR0aDoxMjVweCFpbXBvcnRhbnQ7fSAuLXcxMzAge3dpZHRoOjEzMHB4IWltcG9ydGFudDt9IC4tdzEzNSB7d2lkdGg6MTM1cHghaW1wb3J0YW50O30gLi13MTQwIHt3aWR0aDoxNDBweCFpbXBvcnRhbnQ7fSAuLXcxNDMge3dpZHRoOjE0M3B4IWltcG9ydGFudDt9IC4tdzE0NSB7d2lkdGg6MTQ1cHghaW1wb3J0YW50O30gLi13MTUwIHt3aWR0aDoxNTBweCFpbXBvcnRhbnQ7fSAuLXcxNzAge3dpZHRoOjE4MHB4IWltcG9ydGFudDt9IC4tdzE4MCB7d2lkdGg6MTgwcHghaW1wb3J0YW50O30gLi13MTg1IHt3aWR0aDoxODVweCFpbXBvcnRhbnQ7fSAuLXcxOTAge3dpZHRoOjE5MHB4IWltcG9ydGFudDt9IC4tdzIwMCB7d2lkdGg6MjAwcHghaW1wb3J0YW50O30gLi13MjEwIHt3aWR0aDoyMTBweCFpbXBvcnRhbnQ7fSAuLXcyMTUge3dpZHRoOjIxNXB4IWltcG9ydGFudDt9IC4tdzIyMCB7d2lkdGg6MjIwcHghaW1wb3J0YW50O30gLi13MjMwIHt3aWR0aDoyMzBweCFpbXBvcnRhbnQ7fSAuLXcyNDAge3dpZHRoOjI0MHB4IWltcG9ydGFudDt9IC4tdzI1MCB7d2lkdGg6MjUwcHghaW1wb3J0YW50O30gLi13MjU1IHt3aWR0aDoyNTVweCFpbXBvcnRhbnQ7fSAuLXcyNjAge3dpZHRoOjI2MHB4IWltcG9ydGFudDt9IC4tdzI3MCB7d2lkdGg6MjcwcHghaW1wb3J0YW50O30gLi13Mjc1IHt3aWR0aDoyNzVweCFpbXBvcnRhbnQ7fSAuLXcyODAge3dpZHRoOjI4MHB4IWltcG9ydGFudDt9IC4tdzI5MCB7d2lkdGg6MjkwcHghaW1wb3J0YW50O30gLi13MzAwIHt3aWR0aDozMDBweCFpbXBvcnRhbnQ7fSAuLXczMTUge3dpZHRoOjMxNXB4IWltcG9ydGFudDt9IC4tdzMyMCB7d2lkdGg6MzIwcHghaW1wb3J0YW50O30gLi13MzI1IHt3aWR0aDozMjVweCFpbXBvcnRhbnQ7fSAuLXczNTAge3dpZHRoOjM1MHB4IWltcG9ydGFudDt9IC4tdzQwMCB7d2lkdGg6NDAwcHghaW1wb3J0YW50O30gLi13NDUwIHt3aWR0aDo0NTBweCFpbXBvcnRhbnQ7fSAuLXc0NjAge3dpZHRoOjQ1MHB4IWltcG9ydGFudDt9IC4tdzUwMCB7d2lkdGg6NTAwcHghaW1wb3J0YW50O30gLi13NjMwIHt3aWR0aDo2MzBweCFpbXBvcnRhbnQ7fSAuLXc2MjAge3dpZHRoOjYyMHB4IWltcG9ydGFudDt9IC4tdzYyNSB7d2lkdGg6NjI1cHghaW1wb3J0YW50O30gLi13Njc1IHt3aWR0aDo2NzVweCFpbXBvcnRhbnQ7fSAuLXc2ODAge3dpZHRoOjY4MHB4IWltcG9ydGFudDt9IC4tdzY3MCB7d2lkdGg6NjcwcHghaW1wb3J0YW50O30gLi13NzAwIHt3aWR0aDo3MDBweCFpbXBvcnRhbnQ7fSAuLXc3MjAge3dpZHRoOjcyMHB4IWltcG9ydGFudDt9IC4tdzcyNSB7d2lkdGg6NzI1cHghaW1wb3J0YW50O30gLi13NzMwIHt3aWR0aDo3MzBweCFpbXBvcnRhbnQ7fSAuLXc3NTAge3dpZHRoOjc1MHB4IWltcG9ydGFudDt9IC4tdzgwMCB7d2lkdGg6ODAwcHghaW1wb3J0YW50O30gLi13OTAwIHt3aWR0aDo5MDBweCFpbXBvcnRhbnQ7fSAuLXc5Mzcge3dpZHRoOjkzN3B4IWltcG9ydGFudDt9IC4tdzk0MCB7d2lkdGg6OTQwcHghaW1wb3J0YW50O30gLi13OTYwIHt3aWR0aDo5NjBweCFpbXBvcnRhbnQ7fSAuLXc5NzAge3dpZHRoOjk3MHB4IWltcG9ydGFudDt9IC4tdzEwMDAge3dpZHRoOjEwMDBweCFpbXBvcnRhbnQ7fSAuLXc1cCB7d2lkdGg6NSUhaW1wb3J0YW50O30gLi13MTBwIHt3aWR0aDoxMCUhaW1wb3J0YW50O30gLi13MTVwIHt3aWR0aDoyMCUhaW1wb3J0YW50O30gLi13MjBwIHt3aWR0aDoyMCUhaW1wb3J0YW50O30gLi13cSwgLi13MjVwIHt3aWR0aDoyNSUhaW1wb3J0YW50O30gLi13MzBwIHt3aWR0aDozMCUhaW1wb3J0YW50O30gLi13MzVwIHt3aWR0aDozNSUhaW1wb3J0YW50O30gLi13NDBwIHt3aWR0aDo0MCUhaW1wb3J0YW50O30gLi13NDVwIHt3aWR0aDo0NSUhaW1wb3J0YW50O30gLi13aCwuLXc1MHAge3dpZHRoOjUwJSFpbXBvcnRhbnQ7fSAuLXc1NXAge3dpZHRoOjU1JSFpbXBvcnRhbnQ7fSAuLXc2MHAge3dpZHRoOjYwJSFpbXBvcnRhbnQ7fSAuLXc2NXAge3dpZHRoOjY1JSFpbXBvcnRhbnQ7fSAuLXc3MHAge3dpZHRoOjcwJSFpbXBvcnRhbnQ7fSAuLXc3NXAge3dpZHRoOjc1JSFpbXBvcnRhbnQ7fSAuLXc4MHAge3dpZHRoOjgwJSFpbXBvcnRhbnQ7fSAuLXc4NXAge3dpZHRoOjg1JSFpbXBvcnRhbnQ7fSAuLXc5MHAge3dpZHRoOjkwJSFpbXBvcnRhbnQ7fSAuLXc5NXAge3dpZHRoOjk1JSFpbXBvcnRhbnQ7fSAuLXdmLC4tdzEwMHAge3dpZHRoOjEwMCUhaW1wb3J0YW50O30gLi1tYXgtdy1ub25lIHttYXgtd2lkdGg6bm9uZSFpbXBvcnRhbnQ7fSAuLWg1IHtoZWlnaHQ6NXB4IWltcG9ydGFudDt9IC4taDYge2hlaWdodDo2cHghaW1wb3J0YW50O30gLi1oNyB7aGVpZ2h0OjdweCFpbXBvcnRhbnQ7fSAuLWg4IHtoZWlnaHQ6OHB4IWltcG9ydGFudDt9IC4taDkge2hlaWdodDo5cHghaW1wb3J0YW50O30gLi1oMTAge2hlaWdodDoxMHB4IWltcG9ydGFudDt9IC4taDExIHtoZWlnaHQ6MTFweCFpbXBvcnRhbnQ7fSAuLWgxMiB7aGVpZ2h0OjEycHghaW1wb3J0YW50O30gLi1oMTMge2hlaWdodDoxM3B4IWltcG9ydGFudDt9IC4taDE0IHtoZWlnaHQ6MTRweCFpbXBvcnRhbnQ7fSAuLWgxNSB7aGVpZ2h0OjE1cHghaW1wb3J0YW50O30gLi1oMjAge2hlaWdodDoyMHB4IWltcG9ydGFudDt9IC4taDI1IHtoZWlnaHQ6MjVweCFpbXBvcnRhbnQ7fSAuLWgzMCB7aGVpZ2h0OjMwcHghaW1wb3J0YW50O30gLi1oMzIge2hlaWdodDozMnB4IWltcG9ydGFudDt9IC4taDM1IHtoZWlnaHQ6MzVweCFpbXBvcnRhbnQ7fSAuLWg0MCB7aGVpZ2h0OjQwcHghaW1wb3J0YW50O30gLi1oNDUge2hlaWdodDo0NXB4IWltcG9ydGFudDt9IC4taDUwIHtoZWlnaHQ6NTBweCFpbXBvcnRhbnQ7fSAuLWg1NSB7aGVpZ2h0OjU1cHghaW1wb3J0YW50O30gLi1oNjAge2hlaWdodDo2MHB4IWltcG9ydGFudDt9IC4taDY1IHtoZWlnaHQ6NjVweCFpbXBvcnRhbnQ7fSAuLWg3MCB7aGVpZ2h0OjcwcHghaW1wb3J0YW50O30gLi1oNzUge2hlaWdodDo3NXB4IWltcG9ydGFudDt9IC4taDgwIHtoZWlnaHQ6ODBweCFpbXBvcnRhbnQ7fSAuLWg4NSB7aGVpZ2h0Ojg1cHghaW1wb3J0YW50O30gLi1oOTAge2hlaWdodDo5MHB4IWltcG9ydGFudDt9IC4taDk1IHtoZWlnaHQ6OTVweCFpbXBvcnRhbnQ7fSAuLWgxMDAge2hlaWdodDoxMDBweCFpbXBvcnRhbnQ7fSAuLWgxMTAge2hlaWdodDoxMTBweCFpbXBvcnRhbnQ7fSAuLWgxMjAge2hlaWdodDoxMjBweCFpbXBvcnRhbnQ7fSAuLWgxMzAge2hlaWdodDoxMzBweCFpbXBvcnRhbnQ7fSAuLWgxNDAge2hlaWdodDoxNDBweCFpbXBvcnRhbnQ7fSAuLWgxNTAge2hlaWdodDoxNTBweCFpbXBvcnRhbnQ7fSAuLWgxNjAge2hlaWdodDoxNjBweCFpbXBvcnRhbnQ7fSAuLWgxNzAge2hlaWdodDoxNzBweCFpbXBvcnRhbnQ7fSAuLWgxODAge2hlaWdodDoxODBweCFpbXBvcnRhbnQ7fSAuLWgxOTAge2hlaWdodDoxOTBweCFpbXBvcnRhbnQ7fSAuLWgyMDAge2hlaWdodDoyMDBweCFpbXBvcnRhbnQ7fSAuLWgyMjAge2hlaWdodDoyMjBweCFpbXBvcnRhbnQ7fSAuLWgyMzAge2hlaWdodDoyMzBweCFpbXBvcnRhbnQ7fSAuLWgyNDAge2hlaWdodDoyNDBweCFpbXBvcnRhbnQ7fSAuLWgyNDUge2hlaWdodDoyNDVweCFpbXBvcnRhbnQ7fSAuLWgyNDgge2hlaWdodDoyNDhweCFpbXBvcnRhbnQ7fSAuLWgyNTAge2hlaWdodDoyNTBweCFpbXBvcnRhbnQ7fSAuLWgyNTUge2hlaWdodDoyNTVweCFpbXBvcnRhbnQ7fSAuLWgyNjAge2hlaWdodDoyNjBweCFpbXBvcnRhbnQ7fSAuLWgzMDAge2hlaWdodDozMDBweCFpbXBvcnRhbnQ7fSAuLWgzNTAge2hlaWdodDozNTBweCFpbXBvcnRhbnQ7fSAuLWg0MDAge2hlaWdodDo0MDBweCFpbXBvcnRhbnQ7fSAuLWg0NTAge2hlaWdodDo0NTBweCFpbXBvcnRhbnQ7fSAuLWg1MDAge2hlaWdodDo1MDBweCFpbXBvcnRhbnQ7fSAuLWg1NTAge2hlaWdodDo1NTBweCFpbXBvcnRhbnQ7fSAuLWg2MDAge2hlaWdodDo2MDBweCFpbXBvcnRhbnQ7fSAuLWg2NTAge2hlaWdodDo2NTBweCFpbXBvcnRhbnQ7fSAuLWg3MDAge2hlaWdodDo3MDBweCFpbXBvcnRhbnQ7fSAuLWg3NTAge2hlaWdodDo3NTBweCFpbXBvcnRhbnQ7fSAuLWg4MDAge2hlaWdodDo4MDBweCFpbXBvcnRhbnQ7fSAuLWg5MDAge2hlaWdodDo5MDBweCFpbXBvcnRhbnQ7fSAuLWgxMDAwIHtoZWlnaHQ6MTAwMHB4IWltcG9ydGFudDt9IC4taDVwIHtoZWlnaHQ6NSUhaW1wb3J0YW50O30gLi1oMTBwIHtoZWlnaHQ6MTAlIWltcG9ydGFudDt9IC4taDE1cCB7aGVpZ2h0OjE1JSFpbXBvcnRhbnQ7fSAuLWgyMHAge2hlaWdodDoyMCUhaW1wb3J0YW50O30gLi1ocSwgLi1oMjVwIHtoZWlnaHQ6MjUlIWltcG9ydGFudDt9IC4taGgsLi1oNTBwIHtoZWlnaHQ6NTAlIWltcG9ydGFudDt9IC4taGYsLi1oMTAwcCB7aGVpZ2h0OjEwMCUhaW1wb3J0YW50O30gLi1ib3gtcy1ieyAtd2Via2l0LWJveC1zaXppbmc6Ym9yZGVyLWJveDsgLW1vei1ib3gtc2l6aW5nOmJvcmRlci1ib3g7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgfSAuLWJveC1jb250ZW50eyBib3gtc2l6aW5nOmNvbnRlbnQtYm94OyB9IC4tZmxleHtkaXNwbGF5OmZsZXg7fSAuLWZsZXgtY29sdW1ue2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47fSAuLWFpLWNlbnRlcnthbGlnbi1pdGVtczpjZW50ZXI7fSAuLXAwLC4tbm9wYWRkaW5nLC4tbm9wYWRkaW5ncyB7cGFkZGluZzowO30gLi1wMSB7cGFkZGluZzoxcHghaW1wb3J0YW50O30gLi1wMiB7cGFkZGluZzoycHghaW1wb3J0YW50O30gLi1wMyB7cGFkZGluZzozcHghaW1wb3J0YW50O30gLi1wNCB7cGFkZGluZzo0cHghaW1wb3J0YW50O30gLi1wNSB7cGFkZGluZzo1cHghaW1wb3J0YW50O30gLi1wNiB7cGFkZGluZzo2cHghaW1wb3J0YW50O30gLi1wNyB7cGFkZGluZzo3cHghaW1wb3J0YW50O30gLi1wOCB7cGFkZGluZzo4cHghaW1wb3J0YW50O30gLi1wOSB7cGFkZGluZzo5cHghaW1wb3J0YW50O30gLi1wMTAge3BhZGRpbmc6MTBweCFpbXBvcnRhbnQ7fSAuLXAxNSB7cGFkZGluZzoxNXB4IWltcG9ydGFudDt9IC4tcDIwIHtwYWRkaW5nOjIwcHghaW1wb3J0YW50O30gLi1wMjUge3BhZGRpbmc6MjVweCFpbXBvcnRhbnQ7fSAuLXAzMCB7cGFkZGluZzozMHB4IWltcG9ydGFudDt9IC4tcDM1IHtwYWRkaW5nOjM1cHghaW1wb3J0YW50O30gLi1wNDAge3BhZGRpbmc6NDBweCFpbXBvcnRhbnQ7fSAuLXA0NSB7cGFkZGluZzo0NXB4IWltcG9ydGFudDt9IC4tcDUwIHtwYWRkaW5nOjUwcHghaW1wb3J0YW50O30gLi1wbDAge3BhZGRpbmctbGVmdDowIWltcG9ydGFudDt9IC4tcGwxIHtwYWRkaW5nLWxlZnQ6MXB4IWltcG9ydGFudDt9IC4tcGwyIHtwYWRkaW5nLWxlZnQ6MnB4IWltcG9ydGFudDt9IC4tcGwzIHtwYWRkaW5nLWxlZnQ6M3B4IWltcG9ydGFudDt9IC4tcGw0IHtwYWRkaW5nLWxlZnQ6NHB4IWltcG9ydGFudDt9IC4tcGw1IHtwYWRkaW5nLWxlZnQ6NXB4IWltcG9ydGFudDt9IC4tcGw2IHtwYWRkaW5nLWxlZnQ6NnB4IWltcG9ydGFudDt9IC4tcGw3IHtwYWRkaW5nLWxlZnQ6N3B4IWltcG9ydGFudDt9IC4tcGw4IHtwYWRkaW5nLWxlZnQ6OHB4IWltcG9ydGFudDt9IC4tcGw5IHtwYWRkaW5nLWxlZnQ6OXB4IWltcG9ydGFudDt9IC4tcGwxMCB7cGFkZGluZy1sZWZ0OjEwcHghaW1wb3J0YW50O30gLi1wbDE1IHtwYWRkaW5nLWxlZnQ6MTVweCFpbXBvcnRhbnQ7fSAuLXBsMTYge3BhZGRpbmctbGVmdDoxNnB4IWltcG9ydGFudDt9IC4tcGwxNyB7cGFkZGluZy1sZWZ0OjE3cHghaW1wb3J0YW50O30gLi1wbDIwIHtwYWRkaW5nLWxlZnQ6MjBweCFpbXBvcnRhbnQ7fSAuLXBsMjUge3BhZGRpbmctbGVmdDoyNXB4IWltcG9ydGFudDt9IC4tcGwzMCB7cGFkZGluZy1sZWZ0OjMwcHghaW1wb3J0YW50O30gLi1wbDM1IHtwYWRkaW5nLWxlZnQ6MzVweCFpbXBvcnRhbnQ7fSAuLXBsNDAge3BhZGRpbmctbGVmdDo0MHB4IWltcG9ydGFudDt9IC4tcGw0NSB7cGFkZGluZy1sZWZ0OjQ1cHghaW1wb3J0YW50O30gLi1wbDUwIHtwYWRkaW5nLWxlZnQ6NTBweCFpbXBvcnRhbnQ7fSAuLXBsNTUge3BhZGRpbmctbGVmdDo1NXB4IWltcG9ydGFudDt9IC4tcHIwIHtwYWRkaW5nLXJpZ2h0OjAhaW1wb3J0YW50O30gLi1wcjEge3BhZGRpbmctcmlnaHQ6MXB4IWltcG9ydGFudDt9IC4tcHIyIHtwYWRkaW5nLXJpZ2h0OjJweCFpbXBvcnRhbnQ7fSAuLXByMyB7cGFkZGluZy1yaWdodDozcHghaW1wb3J0YW50O30gLi1wcjQge3BhZGRpbmctcmlnaHQ6NHB4IWltcG9ydGFudDt9IC4tcHI1IHtwYWRkaW5nLXJpZ2h0OjVweCFpbXBvcnRhbnQ7fSAuLXByNiB7cGFkZGluZy1yaWdodDo2cHghaW1wb3J0YW50O30gLi1wcjcge3BhZGRpbmctcmlnaHQ6N3B4IWltcG9ydGFudDt9IC4tcHI4IHtwYWRkaW5nLXJpZ2h0OjhweCFpbXBvcnRhbnQ7fSAuLXByOSB7cGFkZGluZy1yaWdodDo5cHghaW1wb3J0YW50O30gLi1wcjEwIHtwYWRkaW5nLXJpZ2h0OjEwcHghaW1wb3J0YW50O30gLi1wcjE1IHtwYWRkaW5nLXJpZ2h0OjE1cHghaW1wb3J0YW50O30gLi1wcjIwIHtwYWRkaW5nLXJpZ2h0OjIwcHghaW1wb3J0YW50O30gLi1wcjI1IHtwYWRkaW5nLXJpZ2h0OjI1cHghaW1wb3J0YW50O30gLi1wcjMwIHtwYWRkaW5nLXJpZ2h0OjMwcHghaW1wb3J0YW50O30gLi1wcjM1IHtwYWRkaW5nLXJpZ2h0OjM1cHghaW1wb3J0YW50O30gLi1wcjQwIHtwYWRkaW5nLXJpZ2h0OjQwcHghaW1wb3J0YW50O30gLi1wcjQ1IHtwYWRkaW5nLXJpZ2h0OjQ1cHghaW1wb3J0YW50O30gLi1wcjUwIHtwYWRkaW5nLXJpZ2h0OjUwcHghaW1wb3J0YW50O30gLi1wcjU1IHtwYWRkaW5nLXJpZ2h0OjU1cHghaW1wb3J0YW50O30gLi1wdDB7cGFkZGluZy10b3A6MCFpbXBvcnRhbnQ7fSAuLXB0MSB7cGFkZGluZy10b3A6MXB4IWltcG9ydGFudDt9IC4tcHQyIHtwYWRkaW5nLXRvcDoycHghaW1wb3J0YW50O30gLi1wdDMge3BhZGRpbmctdG9wOjNweCFpbXBvcnRhbnQ7fSAuLXB0NCB7cGFkZGluZy10b3A6NHB4IWltcG9ydGFudDt9IC4tcHQ1IHtwYWRkaW5nLXRvcDo1cHghaW1wb3J0YW50O30gLi1wdDYge3BhZGRpbmctdG9wOjZweCFpbXBvcnRhbnQ7fSAuLXB0NyB7cGFkZGluZy10b3A6N3B4IWltcG9ydGFudDt9IC4tcHQ4IHtwYWRkaW5nLXRvcDo4cHghaW1wb3J0YW50O30gLi1wdDkge3BhZGRpbmctdG9wOjlweCFpbXBvcnRhbnQ7fSAuLXB0MTAge3BhZGRpbmctdG9wOjEwcHghaW1wb3J0YW50O30gLi1wdDE1IHtwYWRkaW5nLXRvcDoxNXB4IWltcG9ydGFudDt9IC4tcHQyMCB7cGFkZGluZy10b3A6MjBweCFpbXBvcnRhbnQ7fSAuLXB0MjUge3BhZGRpbmctdG9wOjI1cHghaW1wb3J0YW50O30gLi1wdDMwIHtwYWRkaW5nLXRvcDozMHB4IWltcG9ydGFudDt9IC4tcHQzNSB7cGFkZGluZy10b3A6MzVweCFpbXBvcnRhbnQ7fSAuLXB0NDAge3BhZGRpbmctdG9wOjQwcHghaW1wb3J0YW50O30gLi1wdDQ1IHtwYWRkaW5nLXRvcDo0NXB4IWltcG9ydGFudDt9IC4tcHQ1MCB7cGFkZGluZy10b3A6NTBweCFpbXBvcnRhbnQ7fSAuLXB0NTUge3BhZGRpbmctdG9wOjU1cHghaW1wb3J0YW50O30gLi1wdDIwMCB7cGFkZGluZy10b3A6MjAwcHghaW1wb3J0YW50O30gLi1wYjAge3BhZGRpbmctYm90dG9tOjAhaW1wb3J0YW50O30gLi1wYjEge3BhZGRpbmctYm90dG9tOjFweCFpbXBvcnRhbnQ7fSAuLXBiMiB7cGFkZGluZy1ib3R0b206MnB4IWltcG9ydGFudDt9IC4tcGIzIHtwYWRkaW5nLWJvdHRvbTozcHghaW1wb3J0YW50O30gLi1wYjQge3BhZGRpbmctYm90dG9tOjRweCFpbXBvcnRhbnQ7fSAuLXBiNSB7cGFkZGluZy1ib3R0b206NXB4IWltcG9ydGFudDt9IC4tcGI2IHtwYWRkaW5nLWJvdHRvbTo2cHghaW1wb3J0YW50O30gLi1wYjcge3BhZGRpbmctYm90dG9tOjdweCFpbXBvcnRhbnQ7fSAuLXBiOCB7cGFkZGluZy1ib3R0b206OHB4IWltcG9ydGFudDt9IC4tcGI5IHtwYWRkaW5nLWJvdHRvbTo5cHghaW1wb3J0YW50O30gLi1wYjEwIHtwYWRkaW5nLWJvdHRvbToxMHB4IWltcG9ydGFudDt9IC4tcGIxNSB7cGFkZGluZy1ib3R0b206MTVweCFpbXBvcnRhbnQ7fSAuLXBiMjAge3BhZGRpbmctYm90dG9tOjIwcHghaW1wb3J0YW50O30gLi1wYjI1IHtwYWRkaW5nLWJvdHRvbToyNXB4IWltcG9ydGFudDt9IC4tcGIzMCB7cGFkZGluZy1ib3R0b206MzBweCFpbXBvcnRhbnQ7fSAuLXBiNDAge3BhZGRpbmctYm90dG9tOjQwcHghaW1wb3J0YW50O30gLWJvcmRlci1yYWRpdXMwLC1yYWRpdXMwLC1yYWQwIHtib3JkZXItcmFkaXVzOjBweCFpbXBvcnRhbnQ7fSAtYm9yZGVyLXJhZGl1czEsLXJhZGl1czEsLXJhZDEge2JvcmRlci1yYWRpdXM6MHB4IWltcG9ydGFudDt9IC1ib3JkZXItcmFkaXVzMiwtcmFkaXVzMiwtcmFkMiB7Ym9yZGVyLXJhZGl1czowcHghaW1wb3J0YW50O30gLWJvcmRlci1yYWRpdXMzLC1yYWRpdXMzLC1yYWQzIHtib3JkZXItcmFkaXVzOjBweCFpbXBvcnRhbnQ7fSAtYm9yZGVyLXJhZGl1czQsLXJhZGl1czQsLXJhZDQge2JvcmRlci1yYWRpdXM6MHB4IWltcG9ydGFudDt9IC1ib3JkZXItcmFkaXVzNSwtcmFkaXVzNSwtcmFkNSB7Ym9yZGVyLXJhZGl1czowcHghaW1wb3J0YW50O30gLWJvcmRlci1yYWRpdXM2LC1yYWRpdXM2LC1yYWQ2IHtib3JkZXItcmFkaXVzOjBweCFpbXBvcnRhbnQ7fSAtYm9yZGVyLXJhZGl1czcsLXJhZGl1czcsLXJhZDcge2JvcmRlci1yYWRpdXM6MHB4IWltcG9ydGFudDt9IC1ib3JkZXItcmFkaXVzOCwtcmFkaXVzOCwtcmFkOCB7Ym9yZGVyLXJhZGl1czowcHghaW1wb3J0YW50O30gLWJvcmRlci1yYWRpdXM5LC1yYWRpdXM5LC1yYWQ5IHtib3JkZXItcmFkaXVzOjBweCFpbXBvcnRhbnQ7fSAtYm9yZGVyLXJhZGl1czEwLC1yYWRpdXMxMCwtcmFkMTAge2JvcmRlci1yYWRpdXM6MHB4IWltcG9ydGFudDt9IC4tbWF1dG8ge21hcmdpbjphdXRvIWltcG9ydGFudDt9IC4tbTAgLi1ub21hcmdpbnMsLi1ub21hcmdpbnttYXJnaW46MCFpbXBvcnRhbnQ7fSAuLW0xIHttYXJnaW46MXB4IWltcG9ydGFudDt9IC4tbTIge21hcmdpbjoycHghaW1wb3J0YW50O30gLi1tMyB7bWFyZ2luOjNweCFpbXBvcnRhbnQ7fSAuLW00IHttYXJnaW46NHB4IWltcG9ydGFudDt9IC4tbTUge21hcmdpbjo1cHghaW1wb3J0YW50O30gLi1tNiB7bWFyZ2luOjZweCFpbXBvcnRhbnQ7fSAuLW03IHttYXJnaW46N3B4IWltcG9ydGFudDt9IC4tbTgge21hcmdpbjo4cHghaW1wb3J0YW50O30gLi1tOSB7bWFyZ2luOjlweCFpbXBvcnRhbnQ7fSAuLW0xMCB7bWFyZ2luOjEwcHghaW1wb3J0YW50O30gLi1tMTUge21hcmdpbjoxNXB4IWltcG9ydGFudDt9IC4tbTIwIHttYXJnaW46MjBweCFpbXBvcnRhbnQ7fSAuLW0yMiB7bWFyZ2luOjIycHghaW1wb3J0YW50O30gLi1tMjUge21hcmdpbjoyNXB4IWltcG9ydGFudDt9IC4tbTVwIHttYXJnaW46NSUhaW1wb3J0YW50O30gLi1tMTBwIHttYXJnaW46MTAlIWltcG9ydGFudDt9IC4tbTE1cCB7bWFyZ2luOjE1JSFpbXBvcnRhbnQ7fSAuLW0yMHAge21hcmdpbjoyMCUhaW1wb3J0YW50O30gLi1tMjVwIHttYXJnaW46MjUlIWltcG9ydGFudDt9IC4tbWxhdXRvIHttYXJnaW4tbGVmdDphdXRvIWltcG9ydGFudDt9IC4tbWwwIHttYXJnaW4tbGVmdDowIWltcG9ydGFudDt9IC4tbWwxIHttYXJnaW4tbGVmdDoxcHghaW1wb3J0YW50O30gLi1tbDIge21hcmdpbi1sZWZ0OjJweCFpbXBvcnRhbnQ7fSAuLW1sMyB7bWFyZ2luLWxlZnQ6M3B4IWltcG9ydGFudDt9IC4tbWw0IHttYXJnaW4tbGVmdDo0cHghaW1wb3J0YW50O30gLi1tbDUge21hcmdpbi1sZWZ0OjVweCFpbXBvcnRhbnQ7fSAuLW1sNiB7bWFyZ2luLWxlZnQ6NnB4IWltcG9ydGFudDt9IC4tbWw3IHttYXJnaW4tbGVmdDo3cHghaW1wb3J0YW50O30gLi1tbDgge21hcmdpbi1sZWZ0OjhweCFpbXBvcnRhbnQ7fSAuLW1sOSB7bWFyZ2luLWxlZnQ6OXB4IWltcG9ydGFudDt9IC4tbWwxMCB7bWFyZ2luLWxlZnQ6MTBweCFpbXBvcnRhbnQ7fSAuLW1sMTUge21hcmdpbi1sZWZ0OjE1cHghaW1wb3J0YW50O30gLi1tbDIwIHttYXJnaW4tbGVmdDoyMHB4IWltcG9ydGFudDt9IC4tbWwyNSB7bWFyZ2luLWxlZnQ6MjVweCFpbXBvcnRhbnQ7fSAuLW1sMjcge21hcmdpbi1sZWZ0OjI3cHghaW1wb3J0YW50O30gLi1tbDMwIHttYXJnaW4tbGVmdDozMHB4IWltcG9ydGFudDt9IC4tbWw1MCB7bWFyZ2luLWxlZnQ6NTBweCFpbXBvcnRhbnQ7fSAuLW1sODAge21hcmdpbi1sZWZ0OjgwcHghaW1wb3J0YW50O30gLi1tbDEwMCB7bWFyZ2luLWxlZnQ6MTAwcHghaW1wb3J0YW50O30gLi1tbDEzMCB7bWFyZ2luLWxlZnQ6MTMwcHghaW1wb3J0YW50O30gLi1tbDE1MCB7bWFyZ2luLWxlZnQ6MTUwcHghaW1wb3J0YW50O30gLi1tbDJwIHttYXJnaW4tbGVmdDoyJSFpbXBvcnRhbnQ7fSAuLW1sM3Age21hcmdpbi1sZWZ0OjMlIWltcG9ydGFudDt9IC4tbWw1cCB7bWFyZ2luLWxlZnQ6NSUhaW1wb3J0YW50O30gLi1tbDEwcCB7bWFyZ2luLWxlZnQ6MTAlIWltcG9ydGFudDt9IC4tbWwxNXAge21hcmdpbi1sZWZ0OjE1JSFpbXBvcnRhbnQ7fSAuLW1sMjBwIHttYXJnaW4tbGVmdDoyMCUhaW1wb3J0YW50O30gLi1tbDI1cCB7bWFyZ2luLWxlZnQ6MjUlIWltcG9ydGFudDt9IC4tbXJhdXRvIHttYXJnaW4tcmlnaHQ6YXV0byFpbXBvcnRhbnQ7fSAuLW1yMCB7bWFyZ2luLXJpZ2h0OjAhaW1wb3J0YW50O30gLi1tcjEge21hcmdpbi1yaWdodDoxcHghaW1wb3J0YW50O30gLi1tcjIge21hcmdpbi1yaWdodDoycHghaW1wb3J0YW50O30gLi1tcjMge21hcmdpbi1yaWdodDozcHghaW1wb3J0YW50O30gLi1tcjQge21hcmdpbi1yaWdodDo0cHghaW1wb3J0YW50O30gLi1tcjUge21hcmdpbi1yaWdodDo1cHghaW1wb3J0YW50O30gLi1tcjYge21hcmdpbi1yaWdodDo2cHghaW1wb3J0YW50O30gLi1tcjcge21hcmdpbi1yaWdodDo3cHghaW1wb3J0YW50O30gLi1tcjgge21hcmdpbi1yaWdodDo4cHghaW1wb3J0YW50O30gLi1tcjkge21hcmdpbi1yaWdodDo5cHghaW1wb3J0YW50O30gLi1tcjEwIHttYXJnaW4tcmlnaHQ6MTBweCFpbXBvcnRhbnQ7fSAuLW1yMTUge21hcmdpbi1yaWdodDoxNXB4IWltcG9ydGFudDt9IC4tbXIyMCB7bWFyZ2luLXJpZ2h0OjIwcHghaW1wb3J0YW50O30gLi1tcjI1IHttYXJnaW4tcmlnaHQ6MjVweCFpbXBvcnRhbnQ7fSAuLW1yMzAge21hcmdpbi1yaWdodDozMHB4IWltcG9ydGFudDt9IC4tbXIzNSB7bWFyZ2luLXJpZ2h0OjM1cHghaW1wb3J0YW50O30gLi1tcjQwIHttYXJnaW4tcmlnaHQ6NDBweCFpbXBvcnRhbnQ7fSAuLW1yNDUge21hcmdpbi1yaWdodDo0NXB4IWltcG9ydGFudDt9IC4tbXI1MCB7bWFyZ2luLXJpZ2h0OjUwcHghaW1wb3J0YW50O30gLi1tcjEwMCB7bWFyZ2luLXJpZ2h0OjEwMHB4IWltcG9ydGFudDt9IC4tbXIycCB7bWFyZ2luLXJpZ2h0OjIlIWltcG9ydGFudDt9IC4tbXIzcCB7bWFyZ2luLXJpZ2h0OjMlIWltcG9ydGFudDt9IC4tbXI1cCB7bWFyZ2luLXJpZ2h0OjUlIWltcG9ydGFudDt9IC4tbXIxMHAge21hcmdpbi1yaWdodDoxMCUhaW1wb3J0YW50O30gLi1tcjE1cCB7bWFyZ2luLXJpZ2h0OjE1JSFpbXBvcnRhbnQ7fSAuLW1yMjBwIHttYXJnaW4tcmlnaHQ6MjAlIWltcG9ydGFudDt9IC4tbXIyNXAge21hcmdpbi1yaWdodDoyNSUhaW1wb3J0YW50O30gLi1tdGF1dG8ge21hcmdpbi10b3A6YXV0byFpbXBvcnRhbnQ7fSAuLW10LTd7bWFyZ2luLXRvcDotN3B4IWltcG9ydGFudDt9IC4tbXQwe21hcmdpbi10b3A6MCFpbXBvcnRhbnQ7fSAuLW10MSB7bWFyZ2luLXRvcDoxcHghaW1wb3J0YW50O30gLi1tdDIge21hcmdpbi10b3A6MnB4IWltcG9ydGFudDt9IC4tbXQzIHttYXJnaW4tdG9wOjNweCFpbXBvcnRhbnQ7fSAuLW10NCB7bWFyZ2luLXRvcDo0cHghaW1wb3J0YW50O30gLi1tdDUge21hcmdpbi10b3A6NXB4IWltcG9ydGFudDt9IC4tbXQ2IHttYXJnaW4tdG9wOjZweCFpbXBvcnRhbnQ7fSAuLW10NyB7bWFyZ2luLXRvcDo3cHghaW1wb3J0YW50O30gLi1tdDgge21hcmdpbi10b3A6OHB4IWltcG9ydGFudDt9IC4tbXQ5IHttYXJnaW4tdG9wOjlweCFpbXBvcnRhbnQ7fSAuLW10MTAge21hcmdpbi10b3A6MTBweCFpbXBvcnRhbnQ7fSAuLW10MTEge21hcmdpbi10b3A6MTFweCFpbXBvcnRhbnQ7fSAuLW10MTIge21hcmdpbi10b3A6MTJweCFpbXBvcnRhbnQ7fSAuLW10MTMge21hcmdpbi10b3A6MTNweCFpbXBvcnRhbnQ7fSAuLW10MTQge21hcmdpbi10b3A6MTRweCFpbXBvcnRhbnQ7fSAuLW10MTUge21hcmdpbi10b3A6MTVweCFpbXBvcnRhbnQ7fSAuLW10MjAge21hcmdpbi10b3A6MjBweCFpbXBvcnRhbnQ7fSAuLW10MjUge21hcmdpbi10b3A6MjVweCFpbXBvcnRhbnQ7fSAuLW10Mjcge21hcmdpbi10b3A6MjdweCFpbXBvcnRhbnQ7fSAuLW10MzAge21hcmdpbi10b3A6MzBweCFpbXBvcnRhbnQ7fSAuLW10MzUge21hcmdpbi10b3A6MzVweCFpbXBvcnRhbnQ7fSAuLW10NDAge21hcmdpbi10b3A6NDBweCFpbXBvcnRhbnQ7fSAuLW10NTAge21hcmdpbi10b3A6NTBweCFpbXBvcnRhbnQ7fSAuLW10MTE1IHttYXJnaW4tdG9wOjExNXB4IWltcG9ydGFudDt9IC4tbXQyMDAge21hcmdpbi10b3A6MjAwcHghaW1wb3J0YW50O30gLi1tYmF1dG8ge21hcmdpbi1ib3R0b206YXV0byFpbXBvcnRhbnQ7fSAuLW1iMCB7bWFyZ2luLWJvdHRvbTowIWltcG9ydGFudDt9IC4tbWIxIHttYXJnaW4tYm90dG9tOjFweCFpbXBvcnRhbnQ7fSAuLW1iMiB7bWFyZ2luLWJvdHRvbToycHghaW1wb3J0YW50O30gLi1tYjMge21hcmdpbi1ib3R0b206M3B4IWltcG9ydGFudDt9IC4tbWI0IHttYXJnaW4tYm90dG9tOjRweCFpbXBvcnRhbnQ7fSAuLW1iNSB7bWFyZ2luLWJvdHRvbTo1cHghaW1wb3J0YW50O30gLi1tYjYge21hcmdpbi1ib3R0b206NnB4IWltcG9ydGFudDt9IC4tbWI3IHttYXJnaW4tYm90dG9tOjdweCFpbXBvcnRhbnQ7fSAuLW1iOCB7bWFyZ2luLWJvdHRvbTo4cHghaW1wb3J0YW50O30gLi1tYjkge21hcmdpbi1ib3R0b206OXB4IWltcG9ydGFudDt9IC4tbWIxMCB7bWFyZ2luLWJvdHRvbToxMHB4IWltcG9ydGFudDt9IC4tbWIxNSB7bWFyZ2luLWJvdHRvbToxNXB4IWltcG9ydGFudDt9IC4tbWIyMCB7bWFyZ2luLWJvdHRvbToyMHB4IWltcG9ydGFudDt9IC4tbWIyNSB7bWFyZ2luLWJvdHRvbToyNXB4IWltcG9ydGFudDt9IC4tbWIzMCB7bWFyZ2luLWJvdHRvbTozMHB4IWltcG9ydGFudDt9IC4tbWI1MCB7bWFyZ2luLWJvdHRvbTo1MHB4IWltcG9ydGFudDt9IC4tdG9wLTEwLCAuLXQtMTAge3RvcDotMTBweCFpbXBvcnRhbnQ7fSAuLXRvcDAsIC4tdDAge3RvcDowcHghaW1wb3J0YW50O30gLi10b3AxLCAuLXQxIHt0b3A6MXB4IWltcG9ydGFudDt9IC4tdG9wMiwgLi10MiB7dG9wOjJweCFpbXBvcnRhbnQ7fSAuLXRvcDMsIC4tdDMge3RvcDozcHghaW1wb3J0YW50O30gLi10b3A0LCAuLXQ0IHt0b3A6NHB4IWltcG9ydGFudDt9IC4tdG9wNSwgLi10NSB7dG9wOjVweCFpbXBvcnRhbnQ7fSAuLXRvcDYsIC4tdDYge3RvcDo2cHghaW1wb3J0YW50O30gLi10b3A3LCAuLXQ3IHt0b3A6N3B4IWltcG9ydGFudDt9IC4tdG9wOCwgLi10OCB7dG9wOjhweCFpbXBvcnRhbnQ7fSAuLXRvcDksIC4tdDkge3RvcDo5cHghaW1wb3J0YW50O30gLi10b3AxMCwgLi10MTAge3RvcDoxMHB4IWltcG9ydGFudDt9IC4tdG9wMTUsIC4tdDE1IHt0b3A6MTVweCFpbXBvcnRhbnQ7fSAuLXRvcDIwLCAuLXQyMCB7dG9wOjIwcHghaW1wb3J0YW50O30gLi10b3AyNSwgLi10MjV7dG9wOjI1cHghaW1wb3J0YW50O30gLi10b3AzMCwgLi10MzAge3RvcDozMHB4IWltcG9ydGFudDt9IC4tdG9wMzUsIC4tdDM1IHt0b3A6MzVweCFpbXBvcnRhbnQ7fSAuLXRvcDQwLCAuLXQ0MCB7dG9wOjQwcHghaW1wb3J0YW50O30gLi10b3A0NSwgLi10NDUge3RvcDo0NXB4IWltcG9ydGFudDt9IC4tdG9wNTAsIC4tdDUwIHt0b3A6NTBweCFpbXBvcnRhbnQ7fSAuLXRvcDEwMCwgLi10MTAwIHt0b3A6MTAwcHghaW1wb3J0YW50O30gLi10b3AyMDAsIC4tdDIwMCB7dG9wOjIwMHB4IWltcG9ydGFudDt9IC4tdG9wNXAsIC4tdDVwIHt0b3A6NSUhaW1wb3J0YW50O30gLi10b3AxMHAsIC4tdDEwcCB7dG9wOjEwJSFpbXBvcnRhbnQ7fSAuLXRvcDE1cCwgLi10MTVwIHt0b3A6MTUlIWltcG9ydGFudDt9IC4tdG9wMjBwLCAuLXQyMHAge3RvcDoyMCUhaW1wb3J0YW50O30gLi10b3AyNXAsIC4tdDI1cCB7dG9wOjI1JSFpbXBvcnRhbnQ7fSAuLXRvcDUwcCwgLi10NTBwIHt0b3A6NTAlIWltcG9ydGFudDt9IC4tdG9wMTAwcCwgLi10MTAwcCB7dG9wOjEwMCUhaW1wb3J0YW50O30gLi1sZWZ0MCwgLi1sMCB7bGVmdDowcHghaW1wb3J0YW50O30gLi1sZWZ0MSwgLi1sMSB7bGVmdDoxcHghaW1wb3J0YW50O30gLi1sZWZ0MiwgLi1sMiB7bGVmdDoycHghaW1wb3J0YW50O30gLi1sZWZ0MywgLi1sMyB7bGVmdDozcHghaW1wb3J0YW50O30gLi1sZWZ0NCwgLi1sNCB7bGVmdDo0cHghaW1wb3J0YW50O30gLi1sZWZ0NSwgLi1sNSB7bGVmdDo1cHghaW1wb3J0YW50O30gLi1sZWZ0NiwgLi1sNiB7bGVmdDo2cHghaW1wb3J0YW50O30gLi1sZWZ0NywgLi1sNyB7bGVmdDo3cHghaW1wb3J0YW50O30gLi1sZWZ0OCwgLi1sOCB7bGVmdDo4cHghaW1wb3J0YW50O30gLi1sZWZ0OSwgLi1sOSB7bGVmdDo5cHghaW1wb3J0YW50O30gLi1sZWZ0MTAsIC4tbDEwIHtsZWZ0OjEwcHghaW1wb3J0YW50O30gLi1sZWZ0MTUsIC4tbDE1IHtsZWZ0OjE1cHghaW1wb3J0YW50O30gLi1sZWZ0MjAsIC4tbDIwIHtsZWZ0OjIwcHghaW1wb3J0YW50O30gLi1sZWZ0MjUsIC4tbDI1e2xlZnQ6MjVweCFpbXBvcnRhbnQ7fSAuLWxlZnQzMCwgLi1sMzAge2xlZnQ6MzBweCFpbXBvcnRhbnQ7fSAuLWxlZnQzNSwgLi1sMzUge2xlZnQ6MzVweCFpbXBvcnRhbnQ7fSAuLWxlZnQ0MCwgLi1sNDAge2xlZnQ6NDBweCFpbXBvcnRhbnQ7fSAuLWxlZnQ0NSwgLi1sNDUge2xlZnQ6NDVweCFpbXBvcnRhbnQ7fSAuLWxlZnQ1MCwgLi1sNTAge2xlZnQ6NTBweCFpbXBvcnRhbnQ7fSAuLWxlZnQ1NSwgLi1sNTUge2xlZnQ6NTVweCFpbXBvcnRhbnQ7fSAuLWxlZnQ2MCwgLi1sNjAge2xlZnQ6NjBweCFpbXBvcnRhbnQ7fSAuLWxlZnQ2NSwgLi1sNjUge2xlZnQ6NjVweCFpbXBvcnRhbnQ7fSAuLWxlZnQ3MCwgLi1sNzAge2xlZnQ6NzBweCFpbXBvcnRhbnQ7fSAuLWxlZnQ3NSwgLi1sNzUge2xlZnQ6NzVweCFpbXBvcnRhbnQ7fSAuLWxlZnQ4MCwgLi1sODAge2xlZnQ6ODBweCFpbXBvcnRhbnQ7fSAuLWxlZnQ4NSwgLi1sODUge2xlZnQ6ODVweCFpbXBvcnRhbnQ7fSAuLWxlZnQ5MCwgLi1sOTAge2xlZnQ6OTBweCFpbXBvcnRhbnQ7fSAuLWxlZnQ5NSwgLi1sOTUge2xlZnQ6OTVweCFpbXBvcnRhbnQ7fSAuLWxlZnQxMDAsIC4tbDEwMCB7bGVmdDoxMDBweCFpbXBvcnRhbnQ7fSAuLWxlZnQxNTAsIC4tbDE1MCB7bGVmdDoxNTBweCFpbXBvcnRhbnQ7fSAuLWxlZnQyMDAsIC4tbDIwMCB7bGVmdDoyMDBweCFpbXBvcnRhbnQ7fSAuLWxlZnQyNTAsIC4tbDI1MCB7bGVmdDoyNTBweCFpbXBvcnRhbnQ7fSAuLWxlZnQzMDAsIC4tbDMwMCB7bGVmdDozMDBweCFpbXBvcnRhbnQ7fSAuLWxlZnQ1cCwgLi1sNXAge2xlZnQ6NSUhaW1wb3J0YW50O30gLi1sZWZ0MTBwLCAuLWwxMHAge2xlZnQ6MTAlIWltcG9ydGFudDt9IC4tbGVmdDE1cCwgLi1sMTVwIHtsZWZ0OjE1JSFpbXBvcnRhbnQ7fSAuLWxlZnQyMHAsIC4tbDIwcCB7bGVmdDoyMCUhaW1wb3J0YW50O30gLi1sZWZ0MjVwLCAuLWwyNXAge2xlZnQ6MjUlIWltcG9ydGFudDt9IC4tbGVmdDQwcCwgLi1sNDBwIHtsZWZ0OjQwJSFpbXBvcnRhbnQ7fSAuLWxlZnQ1MHAsIC4tbDUwcCB7bGVmdDo1MCUhaW1wb3J0YW50O30gLi1sZWZ0MTAwcCwgLi1sMTAwcCB7bGVmdDoxMDAlIWltcG9ydGFudDt9IC4tcmlnaHQwLCAuLXIwIHtyaWdodDowcHghaW1wb3J0YW50O30gLi1yaWdodDEsIC4tcjEge3JpZ2h0OjFweCFpbXBvcnRhbnQ7fSAuLXJpZ2h0MiwgLi1yMiB7cmlnaHQ6MnB4IWltcG9ydGFudDt9IC4tcmlnaHQzLCAuLXIzIHtyaWdodDozcHghaW1wb3J0YW50O30gLi1yaWdodDQsIC4tcjQge3JpZ2h0OjRweCFpbXBvcnRhbnQ7fSAuLXJpZ2h0NSwgLi1yNSB7cmlnaHQ6NXB4IWltcG9ydGFudDt9IC4tcmlnaHQ2LCAuLXI2IHtyaWdodDo2cHghaW1wb3J0YW50O30gLi1yaWdodDcsIC4tcjcge3JpZ2h0OjdweCFpbXBvcnRhbnQ7fSAuLXJpZ2h0OCwgLi1yOCB7cmlnaHQ6OHB4IWltcG9ydGFudDt9IC4tcmlnaHQ5LCAuLXI5IHtyaWdodDo5cHghaW1wb3J0YW50O30gLi1yaWdodDEwLCAuLXIxMCB7cmlnaHQ6MTBweCFpbXBvcnRhbnQ7fSAuLXJpZ2h0MTUsIC4tcjE1IHtyaWdodDoxNXB4IWltcG9ydGFudDt9IC4tcmlnaHQyMCwgLi1yMjAge3JpZ2h0OjIwcHghaW1wb3J0YW50O30gLi1yaWdodDI1LCAuLXIyNSB7cmlnaHQ6MjVweCFpbXBvcnRhbnQ7fSAuLXJpZ2h0MzAsIC4tcjMwIHtyaWdodDozMHB4IWltcG9ydGFudDt9IC4tcmlnaHQzNSwgLi1yMzUge3JpZ2h0OjM1cHghaW1wb3J0YW50O30gLi1yaWdodDQwLCAuLXI0MCB7cmlnaHQ6NDBweCFpbXBvcnRhbnQ7fSAuLXJpZ2h0NDUsIC4tcjQ1IHtyaWdodDo0NXB4IWltcG9ydGFudDt9IC4tcmlnaHQ1MCwgLi1yNTAge3JpZ2h0OjUwcHghaW1wb3J0YW50O30gLi1yaWdodDU1LCAuLXI1NSB7cmlnaHQ6NTVweCFpbXBvcnRhbnQ7fSAuLXJpZ2h0NjAsIC4tcjYwIHtyaWdodDo2MHB4IWltcG9ydGFudDt9IC4tcmlnaHQ2NSwgLi1yNjUge3JpZ2h0OjY1cHghaW1wb3J0YW50O30gLi1yaWdodDcwLCAuLXI3MCB7cmlnaHQ6NzBweCFpbXBvcnRhbnQ7fSAuLXJpZ2h0NzUsIC4tcjc1IHtyaWdodDo3NXB4IWltcG9ydGFudDt9IC4tcmlnaHQ4MCwgLi1yODAge3JpZ2h0OjgwcHghaW1wb3J0YW50O30gLi1yaWdodDg1LCAuLXI4NSB7cmlnaHQ6ODVweCFpbXBvcnRhbnQ7fSAuLXJpZ2h0OTAsIC4tcjkwIHtyaWdodDo5MHB4IWltcG9ydGFudDt9IC4tcmlnaHQ5NSwgLi1yOTUge3JpZ2h0Ojk1cHghaW1wb3J0YW50O30gLi1yaWdodDEwMCwgLi1yMTAwIHtyaWdodDoxMDBweCFpbXBvcnRhbnQ7fSAuLXJpZ2h0MTUwLCAuLXIxNTAge3JpZ2h0OjE1MHB4IWltcG9ydGFudDt9IC4tcmlnaHQyMDAsIC4tcjIwMCB7cmlnaHQ6MjAwcHghaW1wb3J0YW50O30gLi1yaWdodDI1MCwgLi1yMjUwIHtyaWdodDoyNTBweCFpbXBvcnRhbnQ7fSAuLXJpZ2h0NXAsIC4tcjVwIHtyaWdodDo1JSFpbXBvcnRhbnQ7fSAuLXJpZ2h0MTBwLCAuLXIxMHAge3JpZ2h0OjEwJSFpbXBvcnRhbnQ7fSAuLXJpZ2h0MTVwLCAuLXIxNXAge3JpZ2h0OjE1JSFpbXBvcnRhbnQ7fSAuLXJpZ2h0MjBwLCAuLXIyMHAge3JpZ2h0OjIwJSFpbXBvcnRhbnQ7fSAuLXJpZ2h0MjVwLCAuLXIyNXAge3JpZ2h0OjI1JSFpbXBvcnRhbnQ7fSAuLXJpZ2h0NTBwLCAuLXI1MHAge3JpZ2h0OjUwJSFpbXBvcnRhbnQ7fSAuLXJpZ2h0MTAwcCwgLi1yMTAwcCB7cmlnaHQ6MTAwJSFpbXBvcnRhbnQ7fSAuLXotaW5kZXg5OXt6LWluZGV4Ojk5IWltcG9ydGFudDt9IC4tei1pbmRleDEwMHt6LWluZGV4OjEwMCFpbXBvcnRhbnQ7fSAuLXotaW5kZXgxMDF7ei1pbmRleDoxMDEhaW1wb3J0YW50O30gLi16LWluZGV4MTAwMSwgLnppbmRleDEwMDF7IHotaW5kZXg6MTAwMSFpbXBvcnRhbnQ7IH0gLi16LWluZGV4MzYwMDEsIC56aW5kZXgzNjAwMXsgei1pbmRleDozNjAwMSFpbXBvcnRhbnQ7IH0gLi1uby1ib3JkZXItc3BhY2luZ3sgYm9yZGVyLXNwYWNpbmc6MCFpbXBvcnRhbnQ7IH0gLi10YWJsZXsgY2VsbHBhZGRpbmc6MCFpbXBvcnRhbnQ7IGNlbGxzcGFjaW5nOjAhaW1wb3J0YW50OyBib3JkZXI6MCFpbXBvcnRhbnQ7IH0gdGFibGUuLXRhYmxlIHRoZWFkIHRoIHsgYmFja2dyb3VuZDojYzNkOWZmIWltcG9ydGFudDsgfSB0YWJsZS4tdGFibGUgdHIgdGgsIHRhYmxlLi10YWJsZSB0ciB0ZCB7IHBhZGRpbmc6NHB4IDEwcHggNHB4IDVweCFpbXBvcnRhbnQ7IH0gdHIuLWJvcmRlci1ib3R0b20gdGQsIHRyLi1ib3JkZXItYm90dG9tIHRoIHsgYm9yZGVyLWJvdHRvbToxcHQgc29saWQgYmxhY2shaW1wb3J0YW50OyB9IC13aGl0ZS1zcGFjZS1ub3dyYXAge3doaXRlLXNwYWNlOm5vd3JhcCFpbXBvcnRhbnQ7fSAuLWN1cnNvci1hdXRvIHsgY3Vyc29yOmF1dG87IH0gLi1jdXJzb3ItZGVmYXVsdCB7IGN1cnNvcjpkZWZhdWx0OyB9IC4tY3Vyc29yLW5vbmUgeyBjdXJzb3I6bm9uZTsgfSAuLWN1cnNvci1jb250ZXh0LW1lbnUgeyBjdXJzb3I6Y29udGV4dC1tZW51OyB9IC4tY3Vyc29yLWhlbHAgeyBjdXJzb3I6aGVscDsgfSAuLWN1cnNvci1wb2ludGVyIHsgY3Vyc29yOnBvaW50ZXI7IH0gLi1jdXJzb3ItcHJvZ3Jlc3MgeyBjdXJzb3I6cHJvZ3Jlc3M7IH0gLi1jdXJzb3Itd2FpdCB7IGN1cnNvcjp3YWl0OyB9IC4tY3Vyc29yLWNlbGwgeyBjdXJzb3I6Y2VsbDsgfSAuLWN1cnNvci1jcm9zc2hhaXIgeyBjdXJzb3I6Y3Jvc3NoYWlyOyB9IC4tY3Vyc29yLXRleHQgeyBjdXJzb3I6dGV4dDsgfSAuLWN1cnNvci12ZXJ0aWNhbC10ZXh0IHsgY3Vyc29yOnZlcnRpY2FsLXRleHQ7IH0gLi1jdXJzb3ItYWxpYXMgeyBjdXJzb3I6YWxpYXM7IH0gLi1jdXJzb3ItY29weSB7IGN1cnNvcjpjb3B5OyB9IC4tY3Vyc29yLW1vdmUgeyBjdXJzb3I6bW92ZTsgfSAuLWN1cnNvci1uby1kcm9wIHsgY3Vyc29yOm5vLWRyb3A7IH0gLi1jdXJzb3Itbm90LWFsbG93ZWQgeyBjdXJzb3I6bm90LWFsbG93ZWQ7IH0gLi1jdXJzb3ItYWxsLXNjcm9sbCB7IGN1cnNvcjphbGwtc2Nyb2xsOyB9IC4tY3Vyc29yLWNvbC1yZXNpemUgeyBjdXJzb3I6Y29sLXJlc2l6ZTsgfSAuLWN1cnNvci1yb3ctcmVzaXplIHsgY3Vyc29yOnJvdy1yZXNpemU7IH0gLi1jdXJzb3Itbi1yZXNpemUgeyBjdXJzb3I6bi1yZXNpemU7IH0gLi1jdXJzb3ItZS1yZXNpemUgeyBjdXJzb3I6ZS1yZXNpemU7IH0gLi1jdXJzb3Itcy1yZXNpemUgeyBjdXJzb3I6cy1yZXNpemU7IH0gLi1jdXJzb3Itdy1yZXNpemUgeyBjdXJzb3I6dy1yZXNpemU7IH0gLi1jdXJzb3ItbnMtcmVzaXplIHsgY3Vyc29yOm5zLXJlc2l6ZTsgfSAuLWN1cnNvci1ldy1yZXNpemUgeyBjdXJzb3I6ZXctcmVzaXplOyB9IC4tY3Vyc29yLW5lLXJlc2l6ZSB7IGN1cnNvcjpuZS1yZXNpemU7IH0gLi1jdXJzb3ItbnctcmVzaXplIHsgY3Vyc29yOm53LXJlc2l6ZTsgfSAuLWN1cnNvci1zZS1yZXNpemUgeyBjdXJzb3I6c2UtcmVzaXplOyB9IC4tY3Vyc29yLXN3LXJlc2l6ZSB7IGN1cnNvcjpzdy1yZXNpemU7IH0gLi1jdXJzb3ItbmVzdy1yZXNpemUgeyBjdXJzb3I6bmVzdy1yZXNpemU7IH0gLi1jdXJzb3ItbndzZS1yZXNpemUgeyBjdXJzb3I6bndzZS1yZXNpemU7IH0gLi1mb250LXNpemUwLCAuLWZzMHsgZm9udC1zaXplOjAhaW1wb3J0YW50O30gLi1mb250LXNpemUxLCAuLWZzMXsgZm9udC1zaXplOjFweCFpbXBvcnRhbnQ7fSAuLWZvbnQtc2l6ZTIsIC4tZnMyeyBmb250LXNpemU6MnB4IWltcG9ydGFudDt9IC4tZm9udC1zaXplMywgLi1mczN7IGZvbnQtc2l6ZTozcHghaW1wb3J0YW50O30gLi1mb250LXNpemU0LCAuLWZzNHsgZm9udC1zaXplOjRweCFpbXBvcnRhbnQ7fSAuLWZvbnQtc2l6ZTUsIC4tZnM1eyBmb250LXNpemU6NXB4IWltcG9ydGFudDt9IC4tZm9udC1zaXplNiwgLi1mczZ7IGZvbnQtc2l6ZTo2cHghaW1wb3J0YW50O30gLi1mb250LXNpemU3LCAuLWZzN3sgZm9udC1zaXplOjdweCFpbXBvcnRhbnQ7fSAuLWZvbnQtc2l6ZTgsIC4tZnM4eyBmb250LXNpemU6MC41cmVtICFpbXBvcnRhbnQ7fSAuLWZvbnQtc2l6ZTksIC4tZnM5eyBmb250LXNpemU6MC41NjNyZW0gIWltcG9ydGFudDt9IC4tZm9udC1zaXplMTAsIC4tZnMxMHsgZm9udC1zaXplOjAuNjI1cmVtICFpbXBvcnRhbnQ7fSAuLWZvbnQtc2l6ZTExLCAuLWZzMTF7IGZvbnQtc2l6ZTowLjY4OHJlbSAhaW1wb3J0YW50O30gLi1mb250LXNpemUxMiwgLi1mczEyeyBmb250LXNpemU6MC43NXJlbSAhaW1wb3J0YW50O30gLi1mb250LXNpemUxMywgLi1mczEzeyBmb250LXNpemU6MC44MTNyZW0gIWltcG9ydGFudDt9IC4tZm9udC1zaXplMTQsIC4tZnMxNHsgZm9udC1zaXplOjAuODc1cmVtICFpbXBvcnRhbnQ7fSAuLWZvbnQtc2l6ZTE1LCAuLWZzMTV7IGZvbnQtc2l6ZTowLjkzOHJlbSAhaW1wb3J0YW50O30gLi1mb250LXNpemUxNiwgLi1mczE2eyBmb250LXNpemU6MXJlbSAhaW1wb3J0YW50O30gLi1mb250LXNpemUxNywgLi1mczE3eyBmb250LXNpemU6MS4wNjNyZW0gIWltcG9ydGFudDt9IC4tZm9udC1zaXplMTgsIC4tZnMxOHsgZm9udC1zaXplOjEuMTI1cmVtICFpbXBvcnRhbnQ7fSAuLWZvbnQtc2l6ZTE5LCAuLWZzMTl7IGZvbnQtc2l6ZToxLjE4OHJlbSAhaW1wb3J0YW50O30gLi1mb250LXNpemUyMCwgLi1mczIweyBmb250LXNpemU6MS4yNXJlbSAhaW1wb3J0YW50O30gLi1mb250LXNpemUyMSwgLi1mczIxeyBmb250LXNpemU6MS4zMTNyZW0gIWltcG9ydGFudDt9IC4tZm9udC1zaXplMjIsIC4tZnMyMnsgZm9udC1zaXplOjEuMzc1cmVtICFpbXBvcnRhbnQ7fSAuLWZvbnQtc2l6ZTIzLCAuLWZzMjN7IGZvbnQtc2l6ZToxLjQzOHJlbSAhaW1wb3J0YW50O30gLi1mb250LXNpemUyNCwgLi1mczI0eyBmb250LXNpemU6MS41cmVtICFpbXBvcnRhbnQ7fSAuLWZvbnQtc2l6ZTI1LCAuLWZzMjV7IGZvbnQtc2l6ZToxLjU2M3JlbSAhaW1wb3J0YW50O30gLi1mb250LXNpemUyNiwgLi1mczI2eyBmb250LXNpemU6MS42MjVyZW0gIWltcG9ydGFudDt9IC4tZm9udC1zaXplMjcsIC4tZnMyN3sgZm9udC1zaXplOjEuNjg4cmVtICFpbXBvcnRhbnQ7fSAuLWZvbnQtc2l6ZTI4LCAuLWZzMjh7IGZvbnQtc2l6ZToxLjc1cmVtICFpbXBvcnRhbnQ7fSAuLWZvbnQtc2l6ZTI5LCAuLWZzMjl7IGZvbnQtc2l6ZToxLjgxM3JlbSAhaW1wb3J0YW50O30gLi1mb250LXNpemUzMCwgLi1mczMweyBmb250LXNpemU6MS44NzVyZW0gIWltcG9ydGFudDt9IC4tZm9udC1zaXplMzEsIC4tZnMzMXsgZm9udC1zaXplOjEuOTM4cmVtICFpbXBvcnRhbnQ7fSAuLWZvbnQtc2l6ZTMyLCAuLWZzMzJ7IGZvbnQtc2l6ZToycmVtICFpbXBvcnRhbnQ7fSAuLWZvbnQtc2l6ZTMzLCAuLWZzMzN7IGZvbnQtc2l6ZToyLjA2M3JlbSAhaW1wb3J0YW50O30gLi1mb250LXNpemUzNCwgLi1mczM0eyBmb250LXNpemU6Mi4xMjVyZW0gIWltcG9ydGFudDt9IC4tZm9udC1zaXplMzUsIC4tZnMzNXsgZm9udC1zaXplOjIuMTg4cmVtICFpbXBvcnRhbnQ7fSAuLWZvbnQtc2l6ZTM2LCAuLWZzMzZ7IGZvbnQtc2l6ZToyLjI1cmVtICFpbXBvcnRhbnQ7fSAuLWZvbnQtc2l6ZTM3LCAuLWZzMzd7IGZvbnQtc2l6ZToyLjMxM3JlbSAhaW1wb3J0YW50O30gLi1mb250LXNpemUzOCwgLi1mczM4eyBmb250LXNpemU6Mi4zNzVyZW0gIWltcG9ydGFudDt9IC4tZm9udC1zaXplMzksIC4tZnMzOXsgZm9udC1zaXplOjIuNDM4cmVtICFpbXBvcnRhbnQ7fSAuLWZvbnQtc2l6ZTQwLCAuLWZzNDB7IGZvbnQtc2l6ZToyLjVyZW0gIWltcG9ydGFudDt9IC4tcmVkLWxpbmUtaDM1eyBoZWlnaHQ6MzVweDsgbWFyZ2luLWJvdHRvbTotMzVweDsgcG9zaXRpb246cmVsYXRpdmU7IHRvcDotMjVweDsgfSAjYnJlYWRjcnVtYnN7IGZvbnQtc2l6ZToxcmVtIDsgbWFyZ2luLWxlZnQ6MTBweDsgbWFyZ2luLXRvcDo4cHg7IG1hcmdpbi1ib3R0b206MTVweDsgY29sb3I6Izc1NzU3NTsgfSAuVXNlZFZkcDJNb2JpbGUgI2JyZWFkY3J1bWJzeyBmb250LXNpemU6MC45cmVtOyBjb2xvcjojMjIyMjIyOyBmb250LXdlaWdodDpib2xkOyBwYWRkaW5nOjEwcHg7IG1hcmdpbjowOyBsaW5lLWhlaWdodDoxLjI1cmVtOyB9ICNicmVhZGNydW1icyBheyBjb2xvcjojNzU3NTc1OyB9ICNjYXJwcm9vZl9tYWluLmNhcnByb29mX21haW57IHdpZHRoOjM0MHB4OyBoZWlnaHQ6YXV0bzsgYmFja2dyb3VuZC1jb2xvcjojZmZmOyBwYWRkaW5nOjIwcHg7IGRpc3BsYXk6bm9uZTsgei1pbmRleDo5OTk5OyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IGJvcmRlci1yYWRpdXM6NXB4OyBwb3NpdGlvbjpmaXhlZDsgdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSkgdHJhbnNsYXRlWCgtNTAlKTsgLW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC01MCUpIHRyYW5zbGF0ZVgoLTUwJSk7IGxlZnQ6NTAlOyB0b3A6NTAlOyB9ICNjYXJwcm9vZl9tYWluIC5jYXJwcm9vZkNsb3NlQnV0dG9ueyBmbG9hdDpyaWdodDsgdG9wOjA7IH0gI2NhcnByb29mX21haW4gLmNhcnByb29mTWFpbkRpdiB7IHdpZHRoOjEwMCU7IGhlaWdodDphdXRvOyBwYWRkaW5nOjA7IGJhY2tncm91bmQ6I2ZmZjsgYm94LXNpemluZzpib3JkZXItYm94OyBwb3NpdGlvbjpyZWxhdGl2ZTsgZmxvYXQ6bGVmdDsgfSAjY2FycHJvb2ZfbWFpbiAuY2FycHJvb2ZNYWluRGl2IFVMeyB3aWR0aDoxMDAlOyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IHBhZGRpbmc6MCAhaW1wb3J0YW50OyB9ICNjYXJwcm9vZl9tYWluIC5jYXJwcm9vZk1haW5EaXYgVUwgTEkgeyBsaXN0LXN0eWxlLXR5cGU6bm9uZTsgd2lkdGg6MTAwJTsgZmxvYXQ6bGVmdDsgcGFkZGluZzowIDAgNXB4IDA7IH0gI2NhcnByb29mX21haW4gLmNhcnByb29mX2ZpZWxkeyBtYXJnaW4tYm90dG9tOjdweDsgfSAjY2FycHJvb2ZfbWFpbiAuY2FycHJvb2ZNZXNzYWdleyBmb250LXNpemU6MXJlbTsgY29sb3I6IzAwMDsgZm9udC13ZWlnaHQ6bm9ybWFsOyBwYWRkaW5nLWJvdHRvbToxNXB4OyBwb3NpdGlvbjpyZWxhdGl2ZTsgZmxvYXQ6bGVmdDsgd2lkdGg6MTAwJTsgYm94LXNpemluZzpib3JkZXItYm94OyB9ICNpbm5lclBhZ2VEaXZ7IGRpc3BsYXk6dGFibGU7IH0gI2NhcnByb29mX21haW4gLmNhcnByb29mX2xhYmVseyBmb250LXNpemU6MXJlbTsgY29sb3I6IzY2NjY2NjsgZm9udC13ZWlnaHQ6Ym9sZDsgZGlzcGxheTpibG9jazsgZmxvYXQ6bGVmdDsgbWFyZ2luOjA7IHRleHQtYWxpZ246bGVmdDsgd2lkdGg6MTAwJTsgbGluZS1oZWlnaHQ6MjVweDsgYm94LXNpemluZzpib3JkZXItYm94OyB9ICNjYXJwcm9vZl9tYWluIC5jYXJwcm9vZl9pbnB1dHsgZm9udC1zaXplOjFyZW07IHBhZGRpbmc6NXB4OyBib3JkZXI6MXB4IHNvbGlkICNiOWJkYzE7IHdpZHRoOjEwMCU7IGNvbG9yOiM3OTc5Nzk7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgbWFyZ2luLWJvdHRvbToxMHB4OyBib3JkZXItcmFkaXVzOjVweDsgfSAjY2FycHJvb2ZfbWFpbiAuY2FycHJvb2ZfaW5wdXQ6Zm9jdXMgeyBiYWNrZ3JvdW5kLWNvbG9yOiNGNEY0RjQ7IGNvbG9yOiMwMDAwMDAgIWltcG9ydGFudDsgfSAjY2FycHJvb2ZfbWFpbiAucGhvbmVJbnB1dHsgZm9udC1zaXplOjFyZW07IHBhZGRpbmc6NXB4OyBib3JkZXI6MXB4IHNvbGlkICNiOWJkYzE7IHdpZHRoOjQ3cHg7IG1hcmdpbi1yaWdodDo1cHg7IGNvbG9yOiM3OTc5Nzk7IGJvcmRlci1yYWRpdXM6NXB4OyB9ICNjYXJwcm9vZl9tYWluIC5waG9uZUlucHV0OmZvY3VzIHsgYmFja2dyb3VuZC1jb2xvcjojRjRGNEY0OyBjb2xvcjojMDAwMDAwOyB9ICNjYXJwcm9vZl9tYWluIC5jYXJwcm9vZl9idXR0b25JRSB7IGJvcmRlcjoxcHggc29saWQgI0M4M0Y0MTsgbWFyZ2luOjEwcHggMTBweCAxMHB4IDA7IHBhZGRpbmc6M3B4IDEwcHg7IHRleHQtYWxpZ246Y2VudGVyOyBmbG9hdDpyaWdodDsgd2lkdGg6NjBweDsgY29sb3I6I2ZmZjsgY3Vyc29yOnBvaW50ZXI7IGJvcmRlci10b3AtY29sb3I6I0M4M0Y0MTsgYm9yZGVyLXJpZ2h0LWNvbG9yOiNDODNGNDE7IGJvcmRlci1ib3R0b20tY29sb3I6I0M4M0Y0MTsgYm9yZGVyLWxlZnQtY29sb3I6I0M4M0Y0MTsgYm9yZGVyLXRvcC13aWR0aDoxcHg7IGJvcmRlci1yaWdodC13aWR0aDoxcHg7IGJvcmRlci1ib3R0b20td2lkdGg6MXB4OyBib3JkZXItbGVmdC13aWR0aDoxcHg7IGJvcmRlci10b3Atc3R5bGU6c29saWQ7IGJvcmRlci1yaWdodC1zdHlsZTpzb2xpZDsgYm9yZGVyLWJvdHRvbS1zdHlsZTpzb2xpZDsgYm9yZGVyLWxlZnQtc3R5bGU6c29saWQ7IGJvcmRlci10b3AtbGVmdC1yYWRpdXM6OHB4OyBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czo4cHg7IGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjhweDsgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czo4cHg7IGJveC1zaGFkb3c6MHB4IDJweCAzcHggIzY2NjsgYmFja2dyb3VuZC1pbWFnZTpub25lOyBiYWNrZ3JvdW5kLWF0dGFjaG1lbnQ6c2Nyb2xsOyBiYWNrZ3JvdW5kLXJlcGVhdDpyZXBlYXQ7IGJhY2tncm91bmQtcG9zaXRpb246MCAwOyBiYWNrZ3JvdW5kLXNpemU6YXV0bzsgYmFja2dyb3VuZC1vcmlnaW46cGFkZGluZy1ib3g7IGJhY2tncm91bmQtY2xpcDpib3JkZXItYm94OyBiYWNrZ3JvdW5kLWNvbG9yOnJnYigyMDAsIDYzLCA2NSk7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgfSAjY2FycHJvb2ZfbWFpbiAuY2FycHJvb2ZfYnV0dG9uSUVIb3ZlciB7IGJhY2tncm91bmQtY29sb3I6I0M4M0Y0MTsgZm9udC13ZWlnaHQ6Ym9sZDsgfSAjY2FycHJvb2ZfbWFpbiAuY2FycHJvb2ZfYnV0dG9uIHsgZm9udC1zaXplOjEuMnJlbTsgZmxvYXQ6cmlnaHQ7IG1hcmdpbjoyNXB4IDAgMDsgZm9udC13ZWlnaHQ6bm9ybWFsOyBsaW5lLWhlaWdodDoxcmVtOyBwYWRkaW5nOjEwcHggMTVweDsgY3Vyc29yOnBvaW50ZXI7IGNvbG9yOiNmZmY7IHRleHQtYWxpZ246Y2VudGVyOyB0ZXh0LXNoYWRvdzowIC0xcHggMXB4ICM2NDc5OWU7IGJhY2tncm91bmQ6I2JiMDAwMzsgYmFja2dyb3VuZDotbW96LWxpbmVhci1ncmFkaWVudCh0b3AsICNDODNGNDEgMCUsICNiYjAwMDMgMTAwJSk7IGJhY2tncm91bmQ6LXdlYmtpdC1ncmFkaWVudChsaW5lYXIsIDAlIDAlLCAwJSAxMDAlLCBmcm9tKCNDODNGNDEpLCB0bygjYmIwMDAzKSk7IGJvcmRlcjoxcHggc29saWQgIzVjNmY5MTsgLW1vei1ib3JkZXItcmFkaXVzOjVweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjVweDsgYm9yZGVyLXJhZGl1czo1cHg7IHdpZHRoOjEwMCU7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgfSAjY2FycHJvb2ZfbWFpbiAuY2FycHJvb2ZfYnV0dG9uOmhvdmVyIHsgYmFja2dyb3VuZDojQzgzRjQxOyBjdXJzb3I6cG9pbnRlcjsgfSAjY2FycHJvb2ZfZGlhbG9nLW92ZXJsYXkgeyBiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsLjgpOyBwb3NpdGlvbjpmaXhlZDsgdG9wOjA7IGxlZnQ6MDsgcmlnaHQ6MDsgYm90dG9tOjA7IHotaW5kZXg6OTk5ODsgZGlzcGxheTpub25lOyB9IC5jYXJwcm9vZi1iYWRnZS5kZXNrdG9wIHsgbWFyZ2luLWxlZnQ6LTE1cHg7IGhlaWdodDo1NnB4OyBvdmVyZmxvdzpoaWRkZW47IG1hcmdpbi10b3A6LTEwcHg7IGZsb2F0OmxlZnQ7IH0gLnByZVByb2Nlc3Nvckh0bWxDYXJQb29mQVBJcmVwb3J0LmNhcnByb29mLWJhZGdlLmRlc2t0b3AsIC5wcmVQcm9jZXNzb3JDYXJQb29mQVBJcmVwb3J0VjUuY2FycHJvb2YtYmFkZ2UuZGVza3RvcCwgLnByZVByb2Nlc3Nvckh0bWxDYXJQcm9vZkRlZmF1bHQuY2FycHJvb2YtYmFkZ2UuZGVza3RvcCB7IHdpZHRoOjEwNnB4OyBtYXJnaW46MnB4IDVweCAwIDA7IGZsb2F0OmxlZnQ7IH0gI2NhcnByb29mX21haW4gaW1nIHsgd2lkdGg6NTAlOyBmbG9hdDpsZWZ0OyBwb3NpdGlvbjpyZWxhdGl2ZTsgbWFyZ2luOjAgMCAxNXB4IDA7IH0gI2FzUG9wVXB7IGJhY2tncm91bmQ6I2ZmZmZmZjsgd2lkdGg6NjAwcHg7IHBhZGRpbmc6MzBweDsgY29sb3I6IzAwMDAwMDsgei1pbmRleDoxMDAwMDIxOyB9ICNhc1BvcFVwIC5wb3B1cC1wb2xpY3kgeyBtaW4taGVpZ2h0OjEwMHB4OyBtYXgtaGVpZ2h0OjE1MHB4OyBvdmVyZmxvdy15OmF1dG87IH0gLnBvcHVwLXBvbGljeSBhIHsgdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTsgY29sb3I6Ymx1ZTsgfSAjYXNQb3BVcCAuYXNUaXRsZXsgdGV4dC1hbGlnbjpjZW50ZXI7IGZvbnQtc2l6ZToyLjI1cmVtIDsgZm9udC13ZWlnaHQ6OyBtYXJnaW4tYm90dG9tOjIwcHg7IH0gI2FzUG9wVXAgLmJ0bkV4cGxpY2l0eyBmbG9hdDpsZWZ0OyBwYWRkaW5nLWxlZnQ6NzBweDsgd2lkdGg6MTAwcHg7IH0gI2FzUG9wVXAgLmJ0bkltcGxpY2l0eyBmbG9hdDpyaWdodDsgd2lkdGg6MTAwcHg7IHBhZGRpbmctcmlnaHQ6NzBweDsgfSAjYXNQdXJjaGFzZUludGVudC5yZXZlYWwtbW9kYWwgc3Bhbi5qcVRyYW5zZm9ybVJhZGlvV3JhcHBlcnsgcGFkZGluZzowOyBtYXJnaW46NnB4IDRweCAwOyB9ICNhc1B1cmNoYXNlSW50ZW50IC5wb3B1cC1wb2xpY3kgeyBtYXgtaGVpZ2h0OjE3MHB4OyBvdmVyZmxvdy15OmF1dG87IGZvbnQtd2VpZ2h0OmJvbGQ7IH0gI2FzUHVyY2hhc2VJbnRlbnQgLmFzUElUaXRsZXsgdGV4dC1hbGlnbjpsZWZ0OyBmb250LXNpemU6MS41NjNyZW0gOyBtYXJnaW4tYm90dG9tOjA7IHBhZGRpbmctYm90dG9tOjEwcHg7IGRpc3BsYXk6YmxvY2s7IH0gI2FzUHVyY2hhc2VJbnRlbnQgLnZpVGV4dHsgY2xlYXI6Ym90aDsgZm9udC13ZWlnaHQ6Ym9sZDsgcGFkZGluZy1ib3R0b206MTBweDsgfSAjYXNQdXJjaGFzZUludGVudCAudmlPcHRpb25zeyBsaXN0LXN0eWxlOm5vbmU7IHBhZGRpbmc6NXB4OyBtYXJnaW4tYm90dG9tOjNweDsgfSAjYXNQdXJjaGFzZUludGVudCAudmlPcHRpb25zIGxpIHsgcGFkZGluZzoycHg7IH0gI2FzUHVyY2hhc2VJbnRlbnQgLnZpT3B0aW9ucyBsaXsgY2xlYXI6Ym90aDsgZm9udC1zaXplOjEwcHQ7IH0gI2FzUHVyY2hhc2VJbnRlbnQgbGkgbGFiZWx7IGZvbnQtc2l6ZToxMHB0OyB9ICNhc1B1cmNoYXNlSW50ZW50IC5idXR0b25EZWZhdWx0Q29sb3IgeyBtYXJnaW46MCBhdXRvIDVweDsgZGlzcGxheTpibG9jazsgY2xlYXI6Ym90aDsgfSAjYXNQdXJjaGFzZUludGVudCAuc3RlcHMgeyBsaXN0LXN0eWxlOmluc2lkZSBub25lIG5vbmU7IH0gI2FzUHVyY2hhc2VJbnRlbnQgLnN0ZXBzID4gbGl7IGJhY2tncm91bmQ6I2ZmZjsgYm9yZGVyOjFweCBzb2xpZCAjYmJiYmJiOyBib3JkZXItd2lkdGg6MCAxcHggMXB4IDA7IHBhZGRpbmc6MTVweDsgbWFyZ2luLWJvdHRvbToxNXB4OyBmb250LXNpemU6MTBwdDsgfSAjYXNQdXJjaGFzZUludGVudCAuYXN5ZXNubyB7IGZsb2F0OmxlZnQ7IHBhZGRpbmctcmlnaHQ6MTBweDsgd2lkdGg6OTBweDsgfSAjYXNQdXJjaGFzZUludGVudCAuYXN5ZXN7IHBhZGRpbmctbGVmdDo5MHB4OyB3aWR0aDo3MHB4OyB9IC5jb25zZW50LmRpc2NsYWltZXIgeyB0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lOyBjb2xvcjpibHVlOyBhbGlnbi1zZWxmOmNlbnRlcjsgbWFyZ2luLWJvdHRvbTp2YXIoLS1zLTMpOyBjdXJzb3I6aGVscDsgfSAuY3VzdG9tNV9sZWZ0LCAuY3VzdG9tMjVfbGVmdCwgLmN1c3RvbTM1X2xlZnQsIC5jdXN0b200NV9sZWZ0LCAuY3RhX3ByaWNlLC5jdGFfY3JlZGl0LC5jdGFfdGVzdERyaXZlLC5jdGFfZXZhbCwuY3RhX3N2Y3Byb21vLC5jdGFfc2VydmljZSwuY3RhX3BhcnRzLC5jdGFfdGlyZXMgeyB3aWR0aDoyODBweDsgaGVpZ2h0OjYxcHg7IHBhZGRpbmc6MCAxNXB4IDAgNjBweDsgZGlzcGxheTp0YWJsZS1jZWxsOyB2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7IGZvbnQtc2l6ZToxcmVtIDsgZm9udC13ZWlnaHQ6Ym9sZDsgY3Vyc29yOnBvaW50ZXI7IGNvbG9yOiMxOTE5MTk7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2JveDI1LnBuZycpIG5vLXJlcGVhdCBzY3JvbGwgbGVmdCB0b3A7IGJhY2tncm91bmQtc2l6ZTo1ODlweCA1NTBweDsgfSAuY3RhX3ByaWNlLmFsdDpob3ZlciwgLmN0YV9jcmVkaXQuYWx0OmhvdmVyLCAuY3RhX3Rlc3REcml2ZS5hbHQ6aG92ZXIsIC5jdGFfZXZhbC5hbHQ6aG92ZXIsIC5jdGFfc2VydmljZS5hbHQ6aG92ZXIsIC5jdGFfcGFydHMuYWx0OmhvdmVyLCAuY3RhX3RpcmVzLmFsdDpob3ZlciwgLmN0YV9zdmNwcm9tby5hbHQ6aG92ZXIgeyBjb2xvcjojMTkxOTE5OyB9IC5jdXN0b201NV9sZWZ0LCAuY3VzdG9tMjU1X2xlZnQsIC5jdXN0b20zNTVfbGVmdCwgLmN1c3RvbTQ1NV9sZWZ0LCAuY3RhX3ByaWNlLmFsdCwuY3RhX3ByaWNlOmhvdmVyLCAuY3RhX2NyZWRpdC5hbHQsIC5jdGFfY3JlZGl0OmhvdmVyLCAuY3RhX3Rlc3REcml2ZS5hbHQsIC5jdGFfdGVzdERyaXZlOmhvdmVyLCAuY3RhX2V2YWwuYWx0LCAuY3RhX2V2YWw6aG92ZXIsIC5jdGFfc2VydmljZS5hbHQsIC5jdGFfc2VydmljZTpob3ZlciwgLmN0YV9wYXJ0cy5hbHQsIC5jdGFfcGFydHM6aG92ZXIsIC5jdGFfdGlyZXMuYWx0LCAuY3RhX3RpcmVzOmhvdmVyLCAuY3RhX3N2Y3Byb21vLmFsdCwgLmN0YV9zdmNwcm9tbzpob3ZlciB7IGNvbG9yOiNGRkZGRkY7IH0gLmN0YV9wcmljZSwgLmN0YV9wcmljZS5hbHQ6aG92ZXIgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOjAgMDsgfSAuY3RhX3ByaWNlLmFsdCwgLmN0YV9wcmljZTpob3ZlciB7IGJhY2tncm91bmQtcG9zaXRpb246LTMwOXB4IDA7IH0gLmN0YV9jcmVkaXQsIC5jdGFfY3JlZGl0LmFsdDpob3ZlciB7IGJhY2tncm91bmQtcG9zaXRpb246bGVmdCAtNjdweDsgfSAuY3RhX2NyZWRpdC5hbHQsIC5jdGFfY3JlZGl0OmhvdmVyIHsgYmFja2dyb3VuZC1wb3NpdGlvbjotMzA5cHggLTY3cHg7IH0gLmN0YV90ZXN0RHJpdmUsIC5jdGFfdGVzdERyaXZlLmFsdDpob3ZlciB7IGJhY2tncm91bmQtcG9zaXRpb246bGVmdCAtMTM1cHg7IH0gLmN0YV90ZXN0RHJpdmUuYWx0LCAuY3RhX3Rlc3REcml2ZTpob3ZlciB7IGJhY2tncm91bmQtcG9zaXRpb246LTMwOXB4IC0xMzVweDsgfSAuY3RhX2V2YWwsIC5jdGFfZXZhbC5hbHQ6aG92ZXIgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOmxlZnQgLTIwNHB4OyB9IC5jdGFfZXZhbC5hbHQsIC5jdGFfZXZhbDpob3ZlciB7IGJhY2tncm91bmQtcG9zaXRpb246LTMwOXB4IC0yMDRweDsgfSAuY3RhX3N2Y3Byb21vLCAuY3RhX3N2Y3Byb21vLmFsdDpob3ZlciB7IGJhY2tncm91bmQtcG9zaXRpb246bGVmdCAtMjczcHg7IH0gLmN0YV9zdmNwcm9tby5hbHQsIC5jdGFfc3ZjcHJvbW86aG92ZXIgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOi0zMDlweCAtMjczcHg7IH0gLmN0YV9zZXJ2aWNlLCAuY3RhX3NlcnZpY2UuYWx0OmhvdmVyIHsgYmFja2dyb3VuZC1wb3NpdGlvbjpsZWZ0IC0zNDFweDsgfSAuY3RhX3NlcnZpY2UuYWx0LCAuY3RhX3NlcnZpY2U6aG92ZXIgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOi0zMDlweCAtMzQxcHg7IH0gLmN0YV9wYXJ0cywgLmN0YV9wYXJ0cy5hbHQ6aG92ZXIgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOmxlZnQgLTQxMHB4OyB9IC5jdGFfcGFydHMuYWx0LCAuY3RhX3BhcnRzOmhvdmVyIHsgYmFja2dyb3VuZC1wb3NpdGlvbjotMzA5cHggLTQxMHB4OyB9IC5jdGFfdGlyZXMsIC5jdGFfdGlyZXMuYWx0OmhvdmVyIHsgYmFja2dyb3VuZC1wb3NpdGlvbjpsZWZ0IC00ODJweDsgfSAuY3RhX3RpcmVzLmFsdCwgLmN0YV90aXJlczpob3ZlciB7IGJhY2tncm91bmQtcG9zaXRpb246LTMwOXB4IC00ODJweDsgfSAuY3RhX3NlcnZpY2UuaGlkZV90ZXh0LCAuY3RhX3BhcnRzLmhpZGVfdGV4dCwgLmN0YV90aXJlcy5oaWRlX3RleHQsIC5jdGFfcHJpY2UuaGlkZV90ZXh0LCAuY3RhX2NyZWRpdC5oaWRlX3RleHQsIC5jdGFfdGVzdERyaXZlLmhpZGVfdGV4dCwgLmN0YV9ldmFsLmhpZGVfdGV4dCwgLmN0YV9zdmNwcm9tby5oaWRlX3RleHQgeyB0ZXh0LWluZGVudDotMjAwMGVtOyB9IGJvZHkuRlJFTkNIIC5jdGFfcHJpY2UuY3VzdG9tLCBib2R5LkZSRU5DSCAuY3RhX3ByaWNlLmN1c3RvbTpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYmxhbmsuZ2lmJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkZSRU5DSCAuY3RhX2NyZWRpdC5jdXN0b20sIGJvZHkuRlJFTkNIIC5jdGFfY3JlZGl0LmN1c3RvbTpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYmxhbmsuZ2lmJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkZSRU5DSCAuY3RhX3Rlc3REcml2ZS5jdXN0b20sIGJvZHkuRlJFTkNIIC5jdGFfdGVzdERyaXZlLmN1c3RvbTpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYmxhbmsuZ2lmJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkZSRU5DSCAuY3RhX2V2YWwuY3VzdG9tLCBib2R5LkZSRU5DSCAuY3RhX2V2YWwuY3VzdG9tOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9ibGFuay5naWYnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRlJFTkNIIC5jdGFfc2VydmljZS5jdXN0b20sIGJvZHkuRlJFTkNIIC5jdGFfc2VydmljZS5jdXN0b206aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2JsYW5rLmdpZicpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5GUkVOQ0ggLmN0YV9wYXJ0cy5jdXN0b20sIGJvZHkuRlJFTkNIIC5jdGFfcGFydHMuY3VzdG9tOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9ibGFuay5naWYnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRlJFTkNIIC5jdGFfdGlyZXMuY3VzdG9tLCBib2R5LkZSRU5DSCAuY3RhX3RpcmVzLmN1c3RvbTpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYmxhbmsuZ2lmJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkZSRU5DSCAuY3RhX3N2Y3Byb21vLmN1c3RvbSwgYm9keS5GUkVOQ0ggLmN0YV9zdmNwcm9tby5jdXN0b206aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2JsYW5rLmdpZicpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5FTkdMSVNIIC5jdGFfcHJpY2UuY3VzdG9tLCBib2R5LkVOR0xJU0ggLmN0YV9wcmljZS5jdXN0b206aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2JsYW5rLmdpZicpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5FTkdMSVNIIC5jdGFfY3JlZGl0LmN1c3RvbSwgYm9keS5FTkdMSVNIIC5jdGFfY3JlZGl0LmN1c3RvbTpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYmxhbmsuZ2lmJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkVOR0xJU0ggLmN0YV90ZXN0RHJpdmUuY3VzdG9tLCBib2R5LkVOR0xJU0ggLmN0YV90ZXN0RHJpdmUuY3VzdG9tOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9ibGFuay5naWYnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRU5HTElTSCAuY3RhX2V2YWwuY3VzdG9tLCBib2R5LkVOR0xJU0ggLmN0YV9ldmFsLmN1c3RvbTpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYmxhbmsuZ2lmJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkVOR0xJU0ggLmN0YV9zZXJ2aWNlLmN1c3RvbSwgYm9keS5FTkdMSVNIIC5jdGFfc2VydmljZS5jdXN0b206aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2JsYW5rLmdpZicpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5FTkdMSVNIIC5jdGFfcGFydHMuY3VzdG9tLCBib2R5LkVOR0xJU0ggLmN0YV9wYXJ0cy5jdXN0b206aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2JsYW5rLmdpZicpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5FTkdMSVNIIC5jdGFfdGlyZXMuY3VzdG9tLCBib2R5LkVOR0xJU0ggLmN0YV90aXJlcy5jdXN0b206aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2JsYW5rLmdpZicpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5FTkdMSVNIIC5jdGFfc3ZjcHJvbW8uY3VzdG9tLCBib2R5LkVOR0xJU0ggLmN0YV9zdmNwcm9tby5jdXN0b206aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2JsYW5rLmdpZicpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5GUkVOQ0ggLmN0YV9wcmljZS5ibGFjaywgYm9keS5GUkVOQ0ggLmN0YV9wcmljZS5ibGFjazpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3ByaWNlX2JsYWNrX2ZyLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5GUkVOQ0ggLmN0YV9jcmVkaXQuYmxhY2ssIGJvZHkuRlJFTkNIIC5jdGFfY3JlZGl0LmJsYWNrOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfZmluYW5jZV9ibGFja19mci5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRlJFTkNIIC5jdGFfdGVzdERyaXZlLmJsYWNrLCBib2R5LkZSRU5DSCAuY3RhX3Rlc3REcml2ZS5ibGFjazpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3Rlc3Rkcml2ZV9ibGFja19mci5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRlJFTkNIIC5jdGFfZXZhbC5ibGFjaywgYm9keS5GUkVOQ0ggLmN0YV9ldmFsLmJsYWNrOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfdHJhZGVpbl9ibGFja19mci5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRlJFTkNIIC5jdGFfc2VydmljZS5ibGFjaywgYm9keS5GUkVOQ0ggLmN0YV9zZXJ2aWNlLmJsYWNrOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfc2VydmljZV9ibGFja19mci5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRlJFTkNIIC5jdGFfcGFydHMuYmxhY2ssIGJvZHkuRlJFTkNIIC5jdGFfcGFydHMuYmxhY2s6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV9wYXJ0c19ibGFja19mci5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRlJFTkNIIC5jdGFfdGlyZXMuYmxhY2ssIGJvZHkuRlJFTkNIIC5jdGFfdGlyZXMuYmxhY2s6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV90aXJlc19ibGFja19mci5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRlJFTkNIIC5jdGFfc3ZjcHJvbW8uYmxhY2ssIGJvZHkuRlJFTkNIIC5jdGFfc3ZjcHJvbW8uYmxhY2s6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV9wcm9tb3NlcnZpY2VfYmxhY2tfZnIucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkVOR0xJU0ggLmN0YV9wcmljZS5ibGFjaywgYm9keS5FTkdMSVNIIC5jdGFfcHJpY2UuYmxhY2s6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV9wcmljZV9ibGFja19lbi5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRU5HTElTSCAuY3RhX2NyZWRpdC5ibGFjaywgYm9keS5FTkdMSVNIIC5jdGFfY3JlZGl0LmJsYWNrOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfZmluYW5jZV9ibGFja19lbi5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRU5HTElTSCAuY3RhX3Rlc3REcml2ZS5ibGFjaywgYm9keS5FTkdMSVNIIC5jdGFfdGVzdERyaXZlLmJsYWNrOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfdGVzdGRyaXZlX2JsYWNrX2VuLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5FTkdMSVNIIC5jdGFfZXZhbC5ibGFjaywgYm9keS5FTkdMSVNIIC5jdGFfZXZhbC5ibGFjazpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3RyYWRlaW5fYmxhY2tfZW4ucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkVOR0xJU0ggLmN0YV9zZXJ2aWNlLmJsYWNrLCBib2R5LkVOR0xJU0ggLmN0YV9zZXJ2aWNlLmJsYWNrOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfc2VydmljZV9ibGFja19lbi5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRU5HTElTSCAuY3RhX3BhcnRzLmJsYWNrLCBib2R5LkVOR0xJU0ggLmN0YV9wYXJ0cy5ibGFjazpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3BhcnRzX2JsYWNrX2VuLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5FTkdMSVNIIC5jdGFfdGlyZXMuYmxhY2ssIGJvZHkuRU5HTElTSCAuY3RhX3RpcmVzLmJsYWNrOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfdGlyZXNfYmxhY2tfZW4ucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkVOR0xJU0ggLmN0YV9zdmNwcm9tby5ibGFjaywgYm9keS5FTkdMSVNIIC5jdGFfc3ZjcHJvbW8uYmxhY2s6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV9wcm9tb3NlcnZpY2VfYmxhY2tfZW4ucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkZSRU5DSCAuY3RhX3ByaWNlLmJsdWUsIGJvZHkuRlJFTkNIIC5jdGFfcHJpY2UuYmx1ZTpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3ByaWNlX2JsdWVfZnIucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkZSRU5DSCAuY3RhX2NyZWRpdC5ibHVlLCBib2R5LkZSRU5DSCAuY3RhX2NyZWRpdC5ibHVlOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfZmluYW5jZV9ibHVlX2ZyLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5GUkVOQ0ggLmN0YV90ZXN0RHJpdmUuYmx1ZSwgYm9keS5GUkVOQ0ggLmN0YV90ZXN0RHJpdmUuYmx1ZTpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3Rlc3Rkcml2ZV9ibHVlX2ZyLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5GUkVOQ0ggLmN0YV9ldmFsLmJsdWUsIGJvZHkuRlJFTkNIIC5jdGFfZXZhbC5ibHVlOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfdHJhZGVpbl9ibHVlX2ZyLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5GUkVOQ0ggLmN0YV9zZXJ2aWNlLmJsdWUsIGJvZHkuRlJFTkNIIC5jdGFfc2VydmljZS5ibHVlOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfc2VydmljZV9ibHVlX2ZyLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5GUkVOQ0ggLmN0YV9wYXJ0cy5ibHVlLCBib2R5LkZSRU5DSCAuY3RhX3BhcnRzLmJsdWU6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV9wYXJ0c19ibHVlX2ZyLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5GUkVOQ0ggLmN0YV90aXJlcy5ibHVlLCBib2R5LkZSRU5DSCAuY3RhX3RpcmVzLmJsdWU6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV90aXJlc19ibHVlX2ZyLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5GUkVOQ0ggLmN0YV9zdmNwcm9tby5ibHVlLCBib2R5LkZSRU5DSCAuY3RhX3N2Y3Byb21vLmJsdWU6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV9wcm9tb3NlcnZpY2VfYmx1ZV9mci5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRU5HTElTSCAuY3RhX3ByaWNlLmJsdWUsIGJvZHkuRU5HTElTSCAuY3RhX3ByaWNlLmJsdWU6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV9wcmljZV9ibHVlX2VuLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5FTkdMSVNIIC5jdGFfY3JlZGl0LmJsdWUsIGJvZHkuRU5HTElTSCAuY3RhX2NyZWRpdC5ibHVlOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfZmluYW5jZV9ibHVlX2VuLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5FTkdMSVNIIC5jdGFfdGVzdERyaXZlLmJsdWUsIGJvZHkuRU5HTElTSCAuY3RhX3Rlc3REcml2ZS5ibHVlOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfdGVzdGRyaXZlX2JsdWVfZW4ucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkVOR0xJU0ggLmN0YV9ldmFsLmJsdWUsIGJvZHkuRU5HTElTSCAuY3RhX2V2YWwuYmx1ZTpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3RyYWRlaW5fYmx1ZV9lbi5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRU5HTElTSCAuY3RhX3NlcnZpY2UuYmx1ZSwgYm9keS5FTkdMSVNIIC5jdGFfc2VydmljZS5ibHVlOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfc2VydmljZV9ibHVlX2VuLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5FTkdMSVNIIC5jdGFfcGFydHMuYmx1ZSwgYm9keS5FTkdMSVNIIC5jdGFfcGFydHMuYmx1ZTpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3BhcnRzX2JsdWVfZW4ucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkVOR0xJU0ggLmN0YV90aXJlcy5ibHVlLCBib2R5LkVOR0xJU0ggLmN0YV90aXJlcy5ibHVlOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfdGlyZXNfYmx1ZV9lbi5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRU5HTElTSCAuY3RhX3N2Y3Byb21vLmJsdWUsIGJvZHkuRU5HTElTSCAuY3RhX3N2Y3Byb21vLmJsdWU6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV9wcm9tb3NlcnZpY2VfYmx1ZV9lbi5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRlJFTkNIIC5jdGFfcHJpY2UucmVkLCBib2R5LkZSRU5DSCAuY3RhX3ByaWNlLnJlZDpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3ByaWNlX3JlZF9mci5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRlJFTkNIIC5jdGFfY3JlZGl0LnJlZCwgYm9keS5GUkVOQ0ggLmN0YV9jcmVkaXQucmVkOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfZmluYW5jZV9yZWRfZnIucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkZSRU5DSCAuY3RhX3Rlc3REcml2ZS5yZWQsIGJvZHkuRlJFTkNIIC5jdGFfdGVzdERyaXZlLnJlZDpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3Rlc3Rkcml2ZV9yZWRfZnIucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkZSRU5DSCAuY3RhX2V2YWwucmVkLCBib2R5LkZSRU5DSCAuY3RhX2V2YWwucmVkOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfdHJhZGVpbl9yZWRfZnIucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkZSRU5DSCAuY3RhX3NlcnZpY2UucmVkLCBib2R5LkZSRU5DSCAuY3RhX3NlcnZpY2UucmVkOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfc2VydmljZV9yZWRfZnIucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkZSRU5DSCAuY3RhX3BhcnRzLnJlZCwgYm9keS5GUkVOQ0ggLmN0YV9wYXJ0cy5yZWQ6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV9wYXJ0c19yZWRfZnIucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkZSRU5DSCAuY3RhX3RpcmVzLnJlZCwgYm9keS5GUkVOQ0ggLmN0YV90aXJlcy5yZWQ6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV90aXJlc19yZWRfZnIucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkZSRU5DSCAuY3RhX3N2Y3Byb21vLnJlZCwgYm9keS5GUkVOQ0ggLmN0YV9zdmNwcm9tby5yZWQ6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV9wcm9tb3NlcnZpY2VfcmVkX2ZyLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5FTkdMSVNIIC5jdGFfcHJpY2UucmVkLCBib2R5LkVOR0xJU0ggLmN0YV9wcmljZS5yZWQ6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV9wcmljZV9yZWRfZW4ucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkVOR0xJU0ggLmN0YV9jcmVkaXQucmVkLCBib2R5LkVOR0xJU0ggLmN0YV9jcmVkaXQucmVkOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfZmluYW5jZV9yZWRfZW4ucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkVOR0xJU0ggLmN0YV90ZXN0RHJpdmUucmVkLCBib2R5LkVOR0xJU0ggLmN0YV90ZXN0RHJpdmUucmVkOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfdGVzdGRyaXZlX3JlZF9lbi5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRU5HTElTSCAuY3RhX2V2YWwucmVkLCBib2R5LkVOR0xJU0ggLmN0YV9ldmFsLnJlZDpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3RyYWRlaW5fcmVkX2VuLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5FTkdMSVNIIC5jdGFfc2VydmljZS5yZWQsIGJvZHkuRU5HTElTSCAuY3RhX3NlcnZpY2UucmVkOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfc2VydmljZV9yZWRfZW4ucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkVOR0xJU0ggLmN0YV9wYXJ0cy5yZWQsIGJvZHkuRU5HTElTSCAuY3RhX3BhcnRzLnJlZDpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3BhcnRzX3JlZF9lbi5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRU5HTElTSCAuY3RhX3RpcmVzLnJlZCwgYm9keS5FTkdMSVNIIC5jdGFfdGlyZXMucmVkOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfdGlyZXNfcmVkX2VuLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5FTkdMSVNIIC5jdGFfc3ZjcHJvbW8ucmVkLCBib2R5LkVOR0xJU0ggLmN0YV9zdmNwcm9tby5yZWQ6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV9wcm9tb3NlcnZpY2VfcmVkX2VuLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5GUkVOQ0ggLmN0YV9wcmljZS5ncmV5LCBib2R5LkZSRU5DSCAuY3RhX3ByaWNlLmdyZXk6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV9wcmljZV9ncmV5X2ZyLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5GUkVOQ0ggLmN0YV9jcmVkaXQuZ3JleSwgYm9keS5GUkVOQ0ggLmN0YV9jcmVkaXQuZ3JleTpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX2ZpbmFuY2VfZ3JleV9mci5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRlJFTkNIIC5jdGFfdGVzdERyaXZlLmdyZXksIGJvZHkuRlJFTkNIIC5jdGFfdGVzdERyaXZlLmdyZXk6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV90ZXN0ZHJpdmVfZ3JleV9mci5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRlJFTkNIIC5jdGFfZXZhbC5ncmV5LCBib2R5LkZSRU5DSCAuY3RhX2V2YWwuZ3JleTpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3RyYWRlaW5fZ3JleV9mci5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRlJFTkNIIC5jdGFfc2VydmljZS5ncmV5LCBib2R5LkZSRU5DSCAuY3RhX3NlcnZpY2UuZ3JleTpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3NlcnZpY2VfZ3JleV9mci5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRlJFTkNIIC5jdGFfcGFydHMuZ3JleSwgYm9keS5GUkVOQ0ggLmN0YV9wYXJ0cy5ncmV5OmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfcGFydHNfZ3JleV9mci5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRlJFTkNIIC5jdGFfdGlyZXMuZ3JleSwgYm9keS5GUkVOQ0ggLmN0YV90aXJlcy5ncmV5OmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfdGlyZXNfZ3JleV9mci5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRlJFTkNIIC5jdGFfc3ZjcHJvbW8uZ3JleSwgYm9keS5GUkVOQ0ggLmN0YV9zdmNwcm9tby5ncmV5OmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfcHJvbW9zZXJ2aWNlX2dyZXlfZnIucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkVOR0xJU0ggLmN0YV9wcmljZS5ncmV5LCBib2R5LkVOR0xJU0ggLmN0YV9wcmljZS5ncmV5OmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfcHJpY2VfZ3JleV9lbi5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRU5HTElTSCAuY3RhX2NyZWRpdC5ncmV5LCBib2R5LkVOR0xJU0ggLmN0YV9jcmVkaXQuZ3JleTpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX2ZpbmFuY2VfZ3JleV9lbi5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRU5HTElTSCAuY3RhX3Rlc3REcml2ZS5ncmV5LCBib2R5LkVOR0xJU0ggLmN0YV90ZXN0RHJpdmUuZ3JleTpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3Rlc3Rkcml2ZV9ncmV5X2VuLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5FTkdMSVNIIC5jdGFfZXZhbC5ncmV5LCBib2R5LkVOR0xJU0ggLmN0YV9ldmFsLmdyZXk6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV90cmFkZWluX2dyZXlfZW4ucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkVOR0xJU0ggLmN0YV9zZXJ2aWNlLmdyZXksIGJvZHkuRU5HTElTSCAuY3RhX3NlcnZpY2UuZ3JleTpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3NlcnZpY2VfZ3JleV9lbi5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRU5HTElTSCAuY3RhX3BhcnRzLmdyZXksIGJvZHkuRU5HTElTSCAuY3RhX3BhcnRzLmdyZXk6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV9wYXJ0c19ncmV5X2VuLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5FTkdMSVNIIC5jdGFfdGlyZXMuZ3JleSwgYm9keS5FTkdMSVNIIC5jdGFfdGlyZXMuZ3JleTpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3RpcmVzX2dyZXlfZW4ucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkVOR0xJU0ggLmN0YV9zdmNwcm9tby5ncmV5LCBib2R5LkVOR0xJU0ggLmN0YV9zdmNwcm9tby5ncmV5OmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfcHJvbW9zZXJ2aWNlX2dyZXlfZW4ucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LmhlYWRpbmdDYXBzT24gaDEsIGJvZHkuaGVhZGluZ0NhcHNPbiBoMiwgYm9keS5oZWFkaW5nQ2Fwc09uIGgzLCBib2R5LmhlYWRpbmdDYXBzT24gc3Bhbi5oMi1hbHQsIGJvZHkuaGVhZGluZ0NhcHNPbiBzcGFuLmgzLWFsdCwgYm9keS5oZWFkaW5nQ2Fwc09uLlVzZWRTcnAyIC5jYXJCYXNpY3MgLmNhclRpdGxlIC5kaXZDaXR5LCBib2R5LmhlYWRpbmdDYXBzT24gLnYtY2FyZCAuaGVhZGVyLXNlY3Rpb24gLm9yZywgYm9keS5oZWFkaW5nQ2Fwc09uICNmb290ZXIgLm9yZywgYm9keS5oZWFkaW5nQ2Fwc09uIC5sb2dvYXJlYSAuYWRkcmVzcyAuYWRyIHNwYW46Zmlyc3QtY2hpbGQsIGJvZHkuaGVhZGluZ0NhcHNPbiAjZm9vdGVyIC52aXYsIGJvZHkuaGVhZGluZ0NhcHNPbiAuc2VhcmNoLWxpbmtzLXdyYXBwZXIgLnNlYXJjaC1saW5rLXRpdGxlLCBib2R5LmhlYWRpbmdDYXBzT24gLnBvcHVwaXplckJvZHkgI3RyYWRlSW5CYXJQb3B1cF9saW5lMSwgYm9keS5oZWFkaW5nQ2Fwc09uIC5jYXJvdXNzZWwgLmNhcm91c2VsVGFicyAudGFiLWxhYmVsLCBib2R5LmhlYWRpbmdDYXBzT24gLmZvcm1IZWFkaW5nLCBib2R5LmhlYWRpbmdDYXBzT24gLmNvbXBhcmUtdmVoaWNsZXMtZm9ybS10YWJsZSAudHJpbS1wcmV2aWV3IC5jb21wYXJlLXRpdGxlIHsgdGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlICFpbXBvcnRhbnQ7IH0gYm9keS5oZWFkaW5nQ2Fwc09uIC5jYXJvdXNzZWwgLmNhcm91c2VsVGFicyAudGFiLWxhYmVsIHsgZm9udC1zaXplOjEuMjVyZW07IH0gQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOjEzMDFweCkgeyBib2R5LmhlYWRpbmdDYXBzT24gLmRpdkNlcnRpZmljYXRpb25CbG9jayBoMi5kZWZhdWx0IHsgZm9udC1zaXplOjEuNHJlbSAhaW1wb3J0YW50OyB9IH0gLmRpdkNlcnRpZmljYXRpb25CbG9jayBoMiBzcGFuLmljb24sIC5kaXZDZXJ0aWZpY2F0aW9uQmxvY2sgc3Bhbi5oMi1hbHQgc3Bhbi5pY29uIHsgbWluLXdpZHRoOjIwcHg7IH0gLmRpdkNlcnRpZmljYXRpb25CbG9jayAuY2VydC10aXRsZSB7IGRpc3BsYXk6YmxvY2s7IG1hcmdpbi1sZWZ0OjIwcHg7IGZvbnQtc2l6ZToxLjNlbTsgfSAuZGl2Q2VydGlmaWNhdGlvbkJsb2NrIC5jZXJ0LXN1YnRpdGxlIHsgZGlzcGxheTpibG9jazsgbWFyZ2luLWxlZnQ6MjBweDsgbWFyZ2luLWJvdHRvbToxMHB4OyBjb2xvcjojNzc3OyBmb250LXNpemU6MWVtOyBtYXJnaW4tdG9wOjVweDsgfSAuZGl2Q2VydGlmaWNhdGlvbkJsb2NrIC5jZXJ0LWhpZ2hsaWdodGVkLXZhbHVlIHsgYmFja2dyb3VuZC1jb2xvcjojMDAwOyBib3JkZXI6MXB4IHNvbGlkICMwMDA7IGNvbG9yOiNGRkY7IHBhZGRpbmc6MTFweCAyMHB4IDlweCAyMHB4OyBib3JkZXItcmFkaXVzOjNweDsgZGlzcGxheTppbmxpbmUtYmxvY2s7IH0gLklubmVyQm94TGF5ZXIuZGl2Q2VydGlmaWNhdGlvbkJsb2NrLmlzT25lUm93IGltZyB7IG1heC13aWR0aDphdXRvICFpbXBvcnRhbnQ7IH0gLnVzZWRWZHBBY3Rpb25zIC5hY3Rpb24tYm94IGEuYnRuLWRlZmF1bHQgeyB3aWR0aDoxMDAlICFpbXBvcnRhbnQ7IGRpc3BsYXk6YmxvY2sgIWltcG9ydGFudDsgbWFyZ2luLWJvdHRvbToxMHB4ICFpbXBvcnRhbnQ7IH0gLmN0YV9wcmljZTpob3ZlciwgLmN0YV9jcmVkaXQ6aG92ZXIsIC5jdGFfdGVzdERyaXZlOmhvdmVyLCAuY3RhX2V2YWw6aG92ZXIsIC5jdGFfc2VydmljZTpob3ZlciwgLmN0YV9wYXJ0czpob3ZlciwgLmN0YV90aXJlczpob3ZlciwgLmN0YV9zdmNwcm9tbzpob3Zlcnsgb3BhY2l0eTowLjc1OyB9IC5zZWFyY2hfY2VydF9nZW5lcmljeyBoZWlnaHQ6NDRweDsgbWFyZ2luOjJweCA1cHggMCAwOyBmbG9hdDpsZWZ0OyBtYXJnaW4tdG9wOi0wcHg7IH0gI25ld0NhckluVXNlZFBhZ2V7IG1hcmdpbi10b3A6LTJweDsgbWFyZ2luLWJvdHRvbTo1cHg7IGRpc3BsYXk6bm9uZTsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IH0gI25ld0NhckluVXNlZFBhZ2UgLmJveDI4OF90b3B7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL3JpZ2h0X2JveDRfdG9wLnBuZycpIG5vLXJlcGVhdCBzY3JvbGwgbGVmdCB0b3AgdHJhbnNwYXJlbnQ7IH0gI25ld0NhckluVXNlZFBhZ2UgLmJveDI4ODBfbWlkeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9yaWdodF9ib3g0X21pZC5wbmcnKSByZXBlYXQteSBzY3JvbGwgbGVmdCB0b3AgdHJhbnNwYXJlbnQgfSAjbmV3Q2FySW5Vc2VkUGFnZSAuYm94Mjg4X2Zvb3Rlcl9xc3sgYmFja2dyb3VuZCA6dXJsKCcvaW1hZ2VzL3JpZ2h0X2JveDRfZm9vdGVyLnBuZycpIG5vLXJlcGVhdCBzY3JvbGwgbGVmdCB0b3AgdHJhbnNwYXJlbnQgfSAjbmV3Q2FySW5Vc2VkUGFnZV9zY3JhdGNoUHJpY2V7IHdpZHRoOjExMHB4OyBoZWlnaHQ6MzVweDsgZmxvYXQ6cmlnaHQ7IHBvc2l0aW9uOnJlbGF0aXZlOyBsZWZ0Oi04M3B4OyBkaXNwbGF5Om5vbmU7IH0gI25ld0NhckluVXNlZFBhZ2VfdGl0bGV7IGRpc3BsYXk6YmxvY2s7dGV4dC1hbGlnbjpjZW50ZXI7Zm9udC1zaXplOjAuOTM4cmVtIDtmb250LXdlaWdodDpib2xkO3RleHQtZGVjb3JhdGlvbjpub25lOyB9IHVsI2NyZWRpdF9kcml2ZXRyYWluLCB1bCNjcmVkaXRfZnVlbHR5cGUsIHVsI2NyZWRpdF9ib2R5VHlwZXMgeyBsaXN0LXN0eWxlOm5vbmU7IGZsb2F0OmxlZnQ7IHdpZHRoOjMzJTsgcGFkZGluZy1ib3R0b206MTBweDsgfSB1bCNjcmVkaXRfZHJpdmV0cmFpbiBsaSA+IGxhYmVsLCB1bCNjcmVkaXRfZnVlbHR5cGUgbGkgPiBsYWJlbCwgdWwjY3JlZGl0X2JvZHlUeXBlcyBsaSA+IGxhYmVseyBkaXNwbGF5OmJsb2NrOyBwYWRkaW5nLWJvdHRvbTo1cHg7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zaXplOjAuODEzcmVtIDsgY29sb3I6IzI0MjQyNDsgZmxvYXQ6bm9uZTsgfSB1bCNjcmVkaXRfZHJpdmV0cmFpbiBsaSA+IGRpdiwgdWwjY3JlZGl0X2Z1ZWx0eXBlIGxpID4gZGl2LCB1bCNjcmVkaXRfYm9keVR5cGVzIGxpID4gZGl2eyBkaXNwbGF5OmJsb2NrOyBwYWRkaW5nLWJvdHRvbTo1cHg7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zaXplOjAuODEzcmVtIDsgY29sb3I6IzAwMDAwMDsgZmxvYXQ6bm9uZTsgfSB1bCNjcmVkaXRfZHJpdmV0cmFpbiBsaSA+IGxhYmVsID4gc3BhbiwgdWwjY3JlZGl0X2Z1ZWx0eXBlIGxpID4gbGFiZWwgPiBzcGFuLCB1bCNjcmVkaXRfYm9keVR5cGVzIGxpID4gbGFiZWwgPiBzcGFueyBtYXJnaW4tcmlnaHQ6OHB4OyBtYXJnaW4tdG9wOjBweDsgfSAjY3JlZGl0X3ZpX2FkdmFuY2VkIGxhYmVseyBmbG9hdDpsZWZ0OyB9ICNjcmVkaXRfdmlfYWR2YW5jZWQgbGFiZWwgZGl2LmxhYmVseyBmbG9hdDpsZWZ0OyBsaW5lLWhlaWdodDozMnB4OyBtYXJnaW4tcmlnaHQ6NnB4OyB3aWR0aDoyMDBweDsgdGV4dC1hbGlnbjpyaWdodDsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXNpemU6MC44MTNyZW0gOyBjb2xvcjojMjQyNDI0OyB9IC5kZXRhaWxzX2JveCAuYm94Ml9kZXRhaWxzX21pZCAuYm94Ml9kZXRhaWxzX3RleHQsIC5kZXRhaWxzX2JveCAuYm94Ml9kZXRhaWxzX21pZCAuYm94Ml9kZXRhaWxzX3RleHQyNSBzcGFuLCAuZGV0YWlsc19ib3ggLmJveDJfZGV0YWlsc19taWQgLmJveDJfZGV0YWlsc190ZXh0IHNwYW57IGNvbG9yOiNmZjAwMDA7IH0gLnVzcC1jb2xvciB7IGNvbG9yOiNmZjAwMDA7IH0gLm15Y2Fyb3VzZWxfdGR7IGRpc3BsYXk6YmxvY2s7IHdpZHRoOjU2MHB4OyBvdmVyZmxvdzpoaWRkZW47IG1hcmdpbi1sZWZ0OjMwcHg7IG1hcmdpbi10b3A6MTBweDsgfSAudmVoaWNsZUNhcm91c2VseyB3aWR0aDoxOTBweDsgfSAuZGV0YWlsc19ib3gsIC5kZXRhaWxzX2JveCAuYm94Ml9kZXRhaWxzX21pZEV4IHsgYmFja2dyb3VuZDojYjViNWI0OyB9ICNleHRDb2xvclNlbGVjdC5maXhlZFdpZHRoICwgI2ludENvbG9yU2VsZWN0LmZpeGVkV2lkdGggeyB3aWR0aDoyMzBweDsgfSAuY29sb3JDaG9pY2V7IGhlaWdodDozMXB4OyB3aWR0aDozMXB4OyB0ZXh0LWFsaWduOmNlbnRlcjsgdGV4dC1pbmRlbnQ6LTIwMDBlbTsgbGluZS1oZWlnaHQ6MzFweDsgZm9udC1zaXplOjAuOTM4cmVtIDsgZm9udC13ZWlnaHQ6Ym9sZDsgZmxvYXQ6bGVmdDsgYm9yZGVyOjFweCBzb2xpZCAjMDAwOyBtYXJnaW46MnB4OyBjb2xvcjojZmZmOyB9IC5jb2xvckNob2ljZS5jaG9zZW4geyB0ZXh0LWluZGVudDowOyB9IC5jb2xvckNob2ljZS50YW4geyBiYWNrZ3JvdW5kLWNvbG9yOiNkMmI0OGM7IH0gLmNvbG9yQ2hvaWNlLmJsYWNrIHsgYmFja2dyb3VuZC1jb2xvcjojMDAwMDAwOyB9IC5jb2xvckNob2ljZS5nb2xkIHsgYmFja2dyb3VuZC1jb2xvcjojYjI5NjAwOyB9IC5jb2xvckNob2ljZS5icm93biB7IGJhY2tncm91bmQtY29sb3I6IzY2MzMwZTsgfSAuY29sb3JDaG9pY2UuZ3JlZW4geyBiYWNrZ3JvdW5kLWNvbG9yOiMwMDk5MDA7IH0gLmNvbG9yQ2hvaWNlLmdyYXkgeyBiYWNrZ3JvdW5kLWNvbG9yOiM5Nzk3OTc7IH0gLmNvbG9yQ2hvaWNlLmdyZXkgeyBiYWNrZ3JvdW5kLWNvbG9yOiM5Nzk3OTc7IH0gLmNvbG9yQ2hvaWNlLm9yYW5nZSB7IGJhY2tncm91bmQtY29sb3I6I2U2OTQwMDsgfSAuY29sb3JDaG9pY2Uuc2lsdmVyIHsgYmFja2dyb3VuZC1jb2xvcjojYzBjMGMwOyBjb2xvcjojMDAwMDAwOyB9IC5jb2xvckNob2ljZS5tYXV2ZSB7IGJhY2tncm91bmQtY29sb3I6I2Q0NzNkNDsgfSAuY29sb3JDaG9pY2UucmVkIHsgYmFja2dyb3VuZC1jb2xvcjojY2MwMDAwOyB9IC5jb2xvckNob2ljZS53aGl0ZSB7IGJhY2tncm91bmQtY29sb3I6I0ZGRkZGRjsgY29sb3I6IzAwMDAwMDsgfSAuY29sb3JDaG9pY2UueWVsbG93IHsgYmFja2dyb3VuZC1jb2xvcjojZjBjMDAwOyBjb2xvcjojMDAwMDAwOyB9IC5jb2xvckNob2ljZS5ibHVlIHsgYmFja2dyb3VuZC1jb2xvcjojMTkxOWM0OyB9IC5jb2xvckNob2ljZS5jb3BwZXIgeyBiYWNrZ3JvdW5kLWNvbG9yOiNBRjQ3NDQ7IH0gLmNvbG9yQ2hvaWNlLnB1cnBsZSB7IGJhY2tncm91bmQtY29sb3I6IzUzMTVCMjsgfSAubGlnaHQtZ3JheSB7IGJhY2tncm91bmQtY29sb3I6IzRiNGM0YzsgY29sb3I6IzAwMDAwMDt9IGEuY29sb3JDaG9pY2UgeyBjb2xvcjojZmZmOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgfSB0ci5ib3JkZXJfYm90dG9tX2xpbmUgdGQsIHRyLmJvcmRlcl9ib3R0b21fbGluZSB0aCB7IGJvcmRlci1ib3R0b206MXB0IHNvbGlkIGJsYWNrOyB9IC5ib3JkZXJfYm94eyBib3JkZXItcmFkaXVzOjVweDsgbWFyZ2luLWJvdHRvbTo1cHg7IGJhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7IC1tcy1maWx0ZXI6cHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LkFscGhhKE9wYWNpdHk9MTAwKTsgYmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LDApOyBib3gtc2hhZG93Om5vbmU7IGNsZWFyOmJvdGg7IH0gLmhvbWVwYWdlIC5ib3JkZXJfYm94eyBib3gtc2hhZG93Om5vbmUhaW1wb3J0YW50OyB9ICNob21lX3NvY2lhbFRpbWVsaW5leyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWhvbWVwYWdlLXNvY2lhbC1iZy1jb2xvcik7IH0gI2Zvb3RlcldyYXBwZXJ7IHdpZHRoOjEwMCU7IG1hcmdpbi10b3A6MHB4OyBjbGVhcjpib3RoOyBwYWRkaW5nLXRvcDoxNXB4OyBjb2xvcjp2YXIoLS1mb290ZXItaXRlbXMtbGluay1jb2xvcik7IGNvbG9yOiNmM2YzZjM7IGJhY2tncm91bmQtY29sb3I6IzFmMmY1MzsgYmFja2dyb3VuZC1jb2xvcjojMWYyZjUzOyB9ICNmb290ZXJXcmFwcGVyIHN2ZyB7IGZpbGw6dmFyKC0tZm9vdGVyLWxpbmstdGl0bGUtY29sKTsgfSAuY3VzdG9tZm9ybV9zdWJtaXR7IG1hcmdpbi10b3A6MjBweDsgbWFyZ2luLWJvdHRvbToyMHB4OyB9IC5zZWVPcHRpb25zeyBkaXNwbGF5Om5vbmU7IH0gLnN0cmlrZS1wcmljZSwgLnN0cmlrZS1wcmljZS1ibGFjaywgLnN0cmlrZS1wcmljZS13aGl0ZSB7IGRpc3BsYXk6aW5saW5lLWJsb2NrOyBwb3NpdGlvbjpyZWxhdGl2ZTsgfSAuc3RyaWtlLXByaWNlOjpiZWZvcmUsIC5zdHJpa2UtcHJpY2UtYmxhY2s6OmJlZm9yZSwgLnN0cmlrZS1wcmljZS13aGl0ZTo6YmVmb3JlIHsgY29udGVudDoiIjsgaGVpZ2h0OjJweDsgcG9zaXRpb246YWJzb2x1dGU7IHRvcDo0MCU7IC1tb3otdHJhbnNmb3JtOnJvdGF0ZSg3ZGVnKTsgLXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDdkZWcpOyB0cmFuc2Zvcm06cm90YXRlKDdkZWcpOyB0cmFuc2Zvcm0tb3JpZ2luOjUwJSA1MCUgMDsgd2lkdGg6MTAwJTsgfSAuc3RyaWtlLXByaWNlLi10aGluOjpiZWZvcmV7IGhlaWdodDoxcHg7IH0gLnN0cmlrZS1wcmljZTo6YmVmb3JlIHsgYmFja2dyb3VuZDpub25lIHJlcGVhdCBzY3JvbGwgMCAwICMwMDA7IH0gLnN0cmlrZS1wcmljZS1ibGFjazo6YmVmb3JlIHsgYmFja2dyb3VuZDpub25lIHJlcGVhdCBzY3JvbGwgMCAwIGJsYWNrOyB9IC5zdHJpa2UtcHJpY2Utd2hpdGU6OmJlZm9yZSB7IGJhY2tncm91bmQ6bm9uZSByZXBlYXQgc2Nyb2xsIDAgMCB3aGl0ZTsgfSAuYmx1ci1wcmljZSB7IC13ZWJraXQtZmlsdGVyOmJsdXIoMC4xNWVtKTsgLW1vei1maWx0ZXI6Ymx1cigwLjE1ZW0pOyAtbXMtZmlsdGVyOmJsdXIoMC4xNWVtKTsgLW8tZmlsdGVyOmJsdXIoMC4xNWVtKTsgZmlsdGVyOnVybCgiZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyBoZWlnaHQ9JzAnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zyc+PGZpbHRlciBpZD0nc3ZnQmx1cicgeD0nLTUlJyB5PSctNSUnIHdpZHRoPScxMTAlJyBoZWlnaHQ9JzExMCUnPjxmZUdhdXNzaWFuQmx1ciBpbj0nU291cmNlR3JhcGhpYycgc3RkRGV2aWF0aW9uPSc1Jy8+I3N2Z0JsdXIiKTsgZmlsdGVyOnByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5CbHVyKFBpeGVsUmFkaXVzPSc1Jyk7IGZpbHRlcjpibHVyKDAuMTVlbSk7IH0gLmxlZnRfYm94eyBiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50OyAtbXMtZmlsdGVyOnByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5BbHBoYShPcGFjaXR5PTEwMCk7IGJhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwwKTsgbWFyZ2luLXRvcDoyLjVweCA7IHBhZGRpbmc6Mi41cHggMCAxMHB4OyBmbG9hdDpsZWZ0OyBoZWlnaHQ6YXV0bzsgYm9yZGVyLXJhZGl1czo1cHg7IGJveC1zaGFkb3c6bm9uZTsgfSAuYnRuLWRlZmF1bHQsIC5idG4tc20sIC5idG4tbGcsLmN1c3RvbWZvcm1fc3VibWl0LC5zdWJtaXR7IC1tb3otYm9yZGVyLXJhZGl1czozcHg7IC13ZWJraXQtYm9yZGVyLXJhZGl1czozcHg7IGRpc3BsYXk6aW5saW5lLWJsb2NrOyBjdXJzb3I6cG9pbnRlcjsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHRleHQtdHJhbnNmb3JtOnZhcigtLWNlcnQtdHh0LXRyYW5zZm9ybSwgdmFyKC0tdHh0LXVwcGVyKSk7IH0gLmJ0bi1kZWZhdWx0eyBiYWNrZ3JvdW5kLWNvbG9yOiMxZjJmNTM7IH0gLmJ0bi1kZWZhdWx0LCAuc3VibWl0LCAuY3VzdG9tZm9ybV9zdWJtaXQsIGlucHV0W3R5cGU9YnV0dG9uXS5idG4tZGVmYXVsdCwgaW5wdXRbdHlwZT1zdWJtaXRdLmJ0bi1kZWZhdWx0IHsgcGFkZGluZzoxMXB4IDIwcHggOXB4IDIwcHg7IGJvcmRlci1yYWRpdXM6M3B4OyB9IC5idG4tc20sIGlucHV0W3R5cGU9YnV0dG9uXS5idG4tc20sIGlucHV0W3R5cGU9c3VibWl0XS5idG4tc20geyBmb250LXNpemU6aW5oZXJpdCFpbXBvcnRhbnQ7IHBhZGRpbmc6NHB4IDEwcHghaW1wb3J0YW50OyBib3JkZXItcmFkaXVzOjNweCFpbXBvcnRhbnQ7IH0gLmJ0bi1sZywgaW5wdXRbdHlwZT1idXR0b25dLmJ0bi1sZywgaW5wdXRbdHlwZT1zdWJtaXRdLmJ0bi1sZyB7IGZvbnQtc2l6ZToxLjA2M3JlbSA7IHBhZGRpbmc6MTJweCA1MHB4OyBib3JkZXItcmFkaXVzOjZweDsgZm9udC13ZWlnaHQ6Ym9sZDsgfSAuYnRuLWRlZmF1bHQ6Zm9jdXMsIC5jdXN0b21mb3JtX3N1Ym1pdDpmb2N1cywgLmJ0bi1zbTpmb2N1cywgLmJ0bi1sZzpmb2N1cywgI2V4aXRfcG9wdXBfeWVzOmZvY3VzLCAjZXhpdF9wb3B1cF9ubzpmb2N1cyB7IG91dGxpbmU6bm9uZTsgfSAuYnRuLWRlZmF1bHQuYXBwbHktY3JlZGl0IHsgZGlzcGxheTppbmxpbmUtYmxvY2s7IHZlcnRpY2FsLWFsaWduOnRvcDsgd29yZC13cmFwOm5vcm1hbDsgd2lkdGg6MTAwcHg7IHRleHQtYWxpZ246Y2VudGVyOyBwYWRkaW5nOjNweCA1cHg7IGZvbnQtc2l6ZTowLjc1cmVtIDsgfSAuYnRuLWRlZmF1bHQsIC5jdXN0b21mb3JtX3N1Ym1pdCwgaW5wdXRbdHlwZT1idXR0b25dLmJ0bi1kZWZhdWx0LCBpbnB1dFt0eXBlPXN1Ym1pdF0uYnRuLWRlZmF1bHR7IGZvbnQtc2l6ZTowLjhyZW07IH0gLmJ0bi1kZWZhdWx0LCAuYnRuLXNtLC5idG4tbGcsIC5zdWJtaXQsICNzbGlkZWl0IGlucHV0LnNlbmQsIC5jdXN0b21mb3JtX3N1Ym1pdCB7IGJhY2tncm91bmQtY29sb3I6dmFyKC0tdGFiLWNvbG9yKTsgYm9yZGVyLXdpZHRoOjFweDsgYm9yZGVyLXN0eWxlOnNvbGlkOyBib3JkZXItY29sb3I6dmFyKC0tdGFiLXRleHQtY29sb3IpOyBjb2xvcjp2YXIoLS10YWItdGV4dC1jb2xvcik7IHRleHQtc2hhZG93Om5vbmU7IH0gLmJ0bi1kZWZhdWx0LmJ0bi1iZy1zYW1lIHsgYm9yZGVyLWNvbG9yOiMxZjJmNTM7IH0gLmJ0bi1kZWZhdWx0LmJ0bi1iZy1zYW1lOmhvdmVyIHsgYm9yZGVyLWNvbG9yOiMwMTY5YWE7IH0gLmJ0bi1kZWZhdWx0OmhvdmVyLCAuY3VzdG9tZm9ybV9zdWJtaXQ6aG92ZXIsIC5idG4tc206aG92ZXIsIC5idG4tbGc6aG92ZXIsIC5zdWJtaXQ6aG92ZXIsICNzbGlkZWl0IGlucHV0LnNlbmQ6aG92ZXIgeyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLW1lbnUtaG92ZXItYmctY29sb3IpOyBib3JkZXItd2lkdGg6MXB4OyBib3JkZXItc3R5bGU6c29saWQ7IGJvcmRlci1jb2xvcjp2YXIoLS1tZW51LWhvdmVyLXRleHQtY29sb3IpOyBjb2xvcjp2YXIoLS1tZW51LWhvdmVyLXRleHQtY29sb3IpOyB9IC5idG4tZGVmYXVsdC5wcm9tb2NvbG9yLCAuYnRuLXNtLnByb21vY29sb3IsIC5idG4tbGcucHJvbW9jb2xvciB7IGJhY2tncm91bmQtY29sb3I6I2ViMDAwMDsgYm9yZGVyOjFweCBzb2xpZCAjZWIwMDAwOyBjb2xvcjojZmZmZmZmOyB9IC5idG4tZGVmYXVsdC5wcm9tb2NvbG9yOmhvdmVyLCAuYnRuLXNtLnByb21vY29sb3I6aG92ZXIsIC5idG4tbGcucHJvbW9jb2xvcjpob3ZlcnsgYmFja2dyb3VuZC1jb2xvcjojZmZmZmZmOyBjb2xvcjojZWIwMDAwOyB9IC5idG4tZGVmYXVsdC5ibGFjaywgLmJ0bi1zbS5ibGFjaywgLmJ0bi1sZy5ibGFjayB7IGJhY2tncm91bmQtY29sb3IgOiMwMDAwMDA7IGJvcmRlciA6MXB4IHNvbGlkICMwMDAwMDA7IGNvbG9yIDojZmZmZmZmOyB9IC5idG4tZGVmYXVsdC5ibGFjay53aXRoYm9yZGVyLCAuYnRuLXNtLmJsYWNrLndpdGhib3JkZXIsIC5idG4tbGcuYmxhY2sud2l0aGJvcmRlciB7IGJvcmRlciA6MXB4IHNvbGlkICNmZmZmZmY7IH0gLmJ0bi1kZWZhdWx0LmJsYWNrOmhvdmVyLCAuYnRuLXNtLmJsYWNrOmhvdmVyLCAuYnRuLWxnLmJsYWNrOmhvdmVyIHsgYmFja2dyb3VuZC1jb2xvciA6I2ZmZmZmZjsgY29sb3I6IzAwMDAwMDsgfSAuYnRuLWRlZmF1bHQubm8sIC5idG4tc20ubm8sIC5idG4tbGcubm8geyBiYWNrZ3JvdW5kLWNvbG9yOiNGRkY7IGJvcmRlcjoxcHggc29saWQgIzU1NTsgY29sb3I6IzAwMDsgfSAuYnRuLWRlZmF1bHQubm86aG92ZXIsIC5idG4tc20ubm86aG92ZXIsIC5idG4tbGcubm86aG92ZXJ7IGJhY2tncm91bmQtY29sb3I6IzY2NjY2NjsgYm9yZGVyOjFweCBzb2xpZCAjNjY2NjY2OyBjb2xvcjojRkZGRkZGOyB9IC5idG4tZGVmYXVsdC5pbnZlcnQsIC5idG4tc20uaW52ZXJ0LCAuYnRuLWxnLmludmVydCwgLmJ0bi1kZWZhdWx0LmludmVydC5mbGF0LCAuYnRuLXNtLmludmVydC5mbGF0LCAuYnRuLWxnLmludmVydC5mbGF0IHsgYmFja2dyb3VuZDogdmFyKC0tdGFiLXRleHQtY29sb3IpOyBib3JkZXI6MXB4IHNvbGlkIHZhcigtLXRhYi10ZXh0LWNvbG9yKTsgY29sb3I6dmFyKC0tdGFiLWNvbG9yKTsgYm94LXNoYWRvdzpub25lOyB9IC5idG4tZGVmYXVsdC5pbnZlcnQ6aG92ZXIsIC5idG4tc20uaW52ZXJ0OmhvdmVyLCAuYnRuLWxnLmludmVydDpob3ZlciwgLmJ0bi1kZWZhdWx0LmludmVydC5mbGF0OmhvdmVyLCAuYnRuLXNtLmludmVydC5mbGF0OmhvdmVyLCAuYnRuLWxnLmludmVydC5mbGF0OmhvdmVyIHsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS10YWItY29sb3IpOyBib3JkZXItY29sb3I6dmFyKC0tdGFiLXRleHQtY29sb3IpOyBjb2xvcjp2YXIoLS10YWItdGV4dC1jb2xvcik7IH0gLmJ0bi1kZWZhdWx0LnJlZCwgLmJ0bi1zbS5yZWQsIC5idG4tbGcucmVkIHsgYmFja2dyb3VuZDojZmYzMzMzIWltcG9ydGFudDsgYmFja2dyb3VuZC1jb2xvcjojZmYzMzMzIWltcG9ydGFudDsgYm9yZGVyOjFweCBzb2xpZCAjZjUxYTFhIWltcG9ydGFudDsgY29sb3I6I0ZGRkZGRiFpbXBvcnRhbnQ7IH0gLmJ0bi1kZWZhdWx0LnJlZDpob3ZlciwgLmJ0bi1zbS5yZWQ6aG92ZXIsIC5idG4tbGcucmVkOmhvdmVyeyBiYWNrZ3JvdW5kOiMzMzMzMzMhaW1wb3J0YW50OyBiYWNrZ3JvdW5kLWNvbG9yOiMzMzMzMzMhaW1wb3J0YW50OyBib3JkZXI6MXB4IHNvbGlkICMzMzMzMzMhaW1wb3J0YW50OyBjb2xvcjojRkZGRkZGIWltcG9ydGFudDsgfSAuYnRuLWRlZmF1bHQud2hpdGUsIC5idG4tc20ud2hpdGUsIC5idG4tbGcud2hpdGUgeyBiYWNrZ3JvdW5kOiNmZmY7IGJvcmRlcjoxcHggc29saWQgIzAwMDsgY29sb3I6IzAwMDAwMDsgYm94LXNoYWRvdzpub25lOyB9IC5kZWFsZXItc2VsZWN0LXdyYXBwZXIgeyBkaXNwbGF5OmdyaWQ7IGdyaWQtdGVtcGxhdGUtY29sdW1uczoxZnIgMWZyOyBjb2x1bW4tZ2FwOjEuNXJlbTsgcm93LWdhcDowLjVyZW07IGdyaWQtYXV0by1jb2x1bW5zOjAuNWZyOyBtYXJnaW4tYm90dG9tOjEwcHg7IG1hcmdpbi10b3A6MTVweDsgfSAjbWluaWZvcm0gLmRlYWxlci1zZWxlY3Qtd3JhcHBlcnsgbWFyZ2luLWxlZnQ6MjBweDsgbWFyZ2luLXJpZ2h0OjIwcHg7IH0gLmRlYWxlci1zZWxlY3Qtd3JhcHBlciAuYnRuIHsgdGV4dC13cmFwOmF1dG87IHRleHQtYWxpZ246bGVmdDsgcGFkZGluZy1sZWZ0OjEwcHg7IHRyYW5zaXRpb246MC4ycyBlYXNlLWluLW91dDsgZm9udC13ZWlnaHQ6bm9ybWFsOyB9IC5kZWFsZXItc2VsZWN0LXdyYXBwZXIgLmJ0bi5mb2N1c2VkLCAuZGVhbGVyLXNlbGVjdC13cmFwcGVyIC5idG46Zm9jdXMgeyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXRhYi10ZXh0LWNvbG9yKTsgYm9yZGVyLXdpZHRoOjFweDsgYm9yZGVyLXN0eWxlOnNvbGlkOyBib3JkZXItY29sb3I6dmFyKC0tdGFiLWNvbG9yKTsgY29sb3I6dmFyKC0tdGFiLWNvbG9yKTsgYm94LXNoYWRvdzowIDZweCAxMnB4IHJnYmEoMCwwLDAsLjE3NSk7IHRyYW5zZm9ybTp0cmFuc2xhdGVYKDJweCk7IH0gLmFwcGx5LWNyZWRpdCB7IC1tb3otYm94LXNoYWRvdzppbnNldCAwcHggLTNweCA3cHggMHB4ICNmZjBkMGQ7IC13ZWJraXQtYm94LXNoYWRvdzppbnNldCAwcHggLTNweCA3cHggMHB4ICNmZjBkMGQ7IGJveC1zaGFkb3c6aW5zZXQgMHB4IC0zcHggN3B4IDBweCAjZmYwZDBkOyBiYWNrZ3JvdW5kOi13ZWJraXQtZ3JhZGllbnQobGluZWFyLCBsZWZ0IHRvcCwgbGVmdCBib3R0b20sIGNvbG9yLXN0b3AoMC4wNSwgI2ZmMzMzMyksIGNvbG9yLXN0b3AoMSwgI2ZmMDAwMCkpOyBiYWNrZ3JvdW5kOi1tb3otbGluZWFyLWdyYWRpZW50KHRvcCwgI2ZmMzMzMyA1JSwgI2ZmMDAwMCAxMDAlKTsgYmFja2dyb3VuZDotd2Via2l0LWxpbmVhci1ncmFkaWVudCh0b3AsICNmZjMzMzMgNSUsICNmZjAwMDAgMTAwJSk7IGJhY2tncm91bmQ6LW8tbGluZWFyLWdyYWRpZW50KHRvcCwgI2ZmMzMzMyA1JSwgI2ZmMDAwMCAxMDAlKTsgYmFja2dyb3VuZDotbXMtbGluZWFyLWdyYWRpZW50KHRvcCwgI2ZmMzMzMyA1JSwgI2ZmMDAwMCAxMDAlKTsgYmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCAjZmYzMzMzIDUlLCAjZmYwMDAwIDEwMCUpOyBmaWx0ZXI6cHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRpZW50KHN0YXJ0Q29sb3JzdHI9JyNmZjMzMzMnLCBlbmRDb2xvcnN0cj0nI0RCMDAwMCcsR3JhZGllbnRUeXBlPTApOyBiYWNrZ3JvdW5kLWNvbG9yOiNmZjMzMzM7IGJvcmRlcjoxcHggc29saWQgI2ZmMWExYTsgfSAuYXBwbHktY3JlZGl0OmhvdmVyIHsgYmFja2dyb3VuZDotd2Via2l0LWdyYWRpZW50KGxpbmVhciwgbGVmdCB0b3AsIGxlZnQgYm90dG9tLCBjb2xvci1zdG9wKDAuMDUsICNmZjMzMzMpLCBjb2xvci1zdG9wKDEsICNmZjAwMDApKTsgYmFja2dyb3VuZDotbW96LWxpbmVhci1ncmFkaWVudCh0b3AsICNmZjAwMDAgNSUsICNmZjMzMzMgMTAwJSk7IGJhY2tncm91bmQ6LXdlYmtpdC1saW5lYXItZ3JhZGllbnQodG9wLCAjZmYwMDAwIDUlLCAjZmYzMzMzIDEwMCUpOyBiYWNrZ3JvdW5kOi1vLWxpbmVhci1ncmFkaWVudCh0b3AsICNmZjAwMDAgNSUsICNmZjMzMzMgMTAwJSk7IGJhY2tncm91bmQ6LW1zLWxpbmVhci1ncmFkaWVudCh0b3AsICNmZjAwMDAgNSUsICNmZjMzMzMgMTAwJSk7IGJhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgI2ZmMDAwMCA1JSwgI2ZmMzMzMyAxMDAlKTsgZmlsdGVyOnByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudChzdGFydENvbG9yc3RyPScjZmYzMzMzJywgZW5kQ29sb3JzdHI9JyNEQjAwMDAnLEdyYWRpZW50VHlwZT0wKTsgYmFja2dyb3VuZC1jb2xvcjojZmYzMzMzOyB9IC5vZmZlci1idG57IGNvbG9yOnZhcigtLWJ0bi10eHQtY29sLCB2YXIoLS11c2VkLW9mZmVyLWJ0bi10ZXh0LWNvbG9yLCAjZmZmKSk7IGJhY2tncm91bmQtY29sb3I6dmFyKC0tYnRuLWJnLWNvbCwgdmFyKC0tdXNlZC1vZmZlci1idG4tYmctY29sb3IsIHZhcigtLXByb21vLWNvbG9yKSkpOyB9IDppcygubmV3VmRwQWN0aW9ucywgLnVzZWRWZHBBY3Rpb25zKSAqeyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IH0gOmlzKC5uZXdWZHBBY3Rpb25zLCAudXNlZFZkcEFjdGlvbnMpIC5wcm9tb0JUTnsgdGV4dC1hbGlnbjpsZWZ0OyB9IDppcygubmV3VmRwQWN0aW9ucywgLnVzZWRWZHBBY3Rpb25zKSAucHJvbW9CVE46OmFmdGVyeyBmb250LWZhbWlseTonRm9udCBBd2Vzb21lIDUgUHJvJywgc2VyaWY7IGZvbnQtd2VpZ2h0OjkwMDsgfSA6aXMoLm5ld1ZkcEFjdGlvbnMsIC51c2VkVmRwQWN0aW9ucywgLnVzZWQtZGV0YWlscywgLm5ldy1kZXRhaWxzKSAucHJvbW9CVE4gPiBzcGFuLmZheyBkaXNwbGF5OmZsZXg7IHdpZHRoOjEuNWVtOyBoZWlnaHQ6MS41ZW07IGFsaWduLWl0ZW1zOmNlbnRlcjsganVzdGlmeS1jb250ZW50OmNlbnRlcjsgY29sb3I6aW5oZXJpdDsgfSA6aXMoLm5ld1ZkcEFjdGlvbnMsIC51c2VkVmRwQWN0aW9ucykgLmNvbXBsZXRlZC5wcm9tb0JUTjo6YWZ0ZXJ7IGNvbnRlbnQ6IlxmMDBjIjsgY29sb3I6aW5oZXJpdDsgfSA6aXMoLm5ld1ZkcEFjdGlvbnMsIC51c2VkVmRwQWN0aW9ucykgLmNvbXBsZXRlZC5wcm9tb0JUTiBzcGFuLmZheyBjb2xvcjojMDAwOyB9IC5ncmF5Ym94IC5wcm9tb0JUTiwgLnVzZWRWZHBBY3Rpb25zIC5wcm9tb0JUTnsgYm9yZGVyLXJhZGl1czozcHghaW1wb3J0YW50OyBqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOyB0ZXh0LWFsaWduOnVuc2V0OyBsaW5lLWhlaWdodDoxLjVyZW07IH0gLmdyYXlib3ggLmJ1dHRvbl91bmRlciAucHJvbW9CVE4gc3RhY2stbGMsIC5uZXdWZHBBY3Rpb25zIC5idXR0b25fdW5kZXIgLnByb21vQlROIHN0YWNrLWxjIHsgZmxleC1ncm93OjEgIWltcG9ydGFudDsgdGV4dC1hbGlnbjpjZW50ZXIgIWltcG9ydGFudDsgfSAubXVsdGlmb3JtX2VtYmVkZGVkX2Zvb3RlciAuLWZvcmNlZC0tYS1jZmE6OmFmdGVyIHsgZmxleDowIDE7IH0gLmdyYXlib3ggLnByb21vQlROLmJ0bi1pY29uZWR7IGp1c3RpZnktY29udGVudDpmbGV4LXN0YXJ0OyBkaXNwbGF5OmZsZXg7IGFsaWduLWl0ZW1zOmNlbnRlcjsgbWFyZ2luOmF1dG87IHdpZHRoOjk1JTsgfSAuZ3JheWJveCAucHJvbW9CVE4uYnRuLWRlZmF1bHQgc3Bhbi5mYXsgZGlzcGxheTpub25lOyB9IC5ncmF5Ym94IC5wcm9tb0JUTi5idG4taWNvbmVkIHNwYW4uZmF7IGRpc3BsYXk6ZmxleDsgfSAuZ3JheWJveCAucHJvbW9CVE4gc3BhbiwgLnVzZWRWZHBBY3Rpb25zIC5wcm9tb0JUTiBzcGFueyBtYXJnaW4tbGVmdDp1bnNldDsgbGluZS1oZWlnaHQ6MS41ZW07IH0gLnByb21vQlROLmNoZXZyb24tcmlnaHQgLmN0YS1sYWJlbCB7IHBhZGRpbmctcmlnaHQ6MS41cmVtOyB9IC5wcm9tb0JUTiwgLnByb21vQlROIGEsIC5icm9jaHVyZUJ0bnsgYmFja2dyb3VuZDojZWIwMDAwOyBjb2xvcjojZmZmZmZmOyB0ZXh0LXNoYWRvdzpub25lOyBhbmltYXRpb246YWxsIDNzOyBib3JkZXItY29sb3I6I2ViMDAwMDsgfSAucHJvbW9CVE46aG92ZXIsIC5wcm9tb0JUTiBhOmhvdmVyeyBiYWNrZ3JvdW5kOiNlYjAwMDA7IGNvbG9yOiNmZmZmZmY7IGJvcmRlcjoxcHggc29saWQgI2ViMDAwMDsgfSAucHJvbW9CVE46aG92ZXIgPiAqID4gLmZhLCAucHJvbW9CVE4gYTpob3ZlciA+ICogPiAuZmEgeyBiYWNrZ3JvdW5kOiNmZmZmZmY7IGNvbG9yOiNlYjAwMDA7IH0gLnByb21vQlROLmdyb3c6aG92ZXIgeyB0cmFuc2Zvcm06c2NhbGUoMS4xKTsgfSAucHJvbW9CVE4uZ3Jvdzpob3ZlciwgLnByb21vQlROLmdyb3c6aG92ZXIgPiAqID4gLmZhLCAucHJvbW9CVE4uZ3JvdyBhOmhvdmVyID4gKiA+IC5mYSB7IHRyYW5zaXRpb246YWxsIDAuM3MgbGluZWFyOyB9IDpub3QoLmN0YS10cmFjay10cGwpIC5wcm9tb0JUTi5yaXBwbGUgeyBwb3NpdGlvbjpyZWxhdGl2ZTsgei1pbmRleDoxOyBvdmVyZmxvdzpoaWRkZW47IHRyYW5zaXRpb246MXMgYWxsIGVhc2U7IH0gOm5vdCguY3RhLXRyYWNrLXRwbCkgLnByb21vQlROLnJpcHBsZTpiZWZvcmUgeyBjb250ZW50IDoiICI7IHBvc2l0aW9uIDphYnNvbHV0ZTsgei1pbmRleCA6LTE7IGJvcmRlci1yYWRpdXMgOjEwMHB4OyB3aWR0aCA6MCU7IGhlaWdodCA6MTIwJTsgdG9wIDo1MCU7IGJvdHRvbSA6NTAlOyBsZWZ0IDo1MCU7IHJpZ2h0IDo1MCU7IHRyYW5zZm9ybSA6dHJhbnNsYXRlKC01MCUsIC01MCUpOyB0cmFuc2l0aW9uIDphbGwgMC42cyBlYXNlOyBib3JkZXI6dW5zZXQ7IGJhY2tncm91bmQ6I2ViMDAwMDsgfSA6bm90KC5jdGEtdHJhY2stdHBsKSAucHJvbW9CVE4ucmlwcGxlOmhvdmVyIHsgYmFja2dyb3VuZDojZWIwMDAwOyBjb2xvcjp2YXIoLS1wcm9tby1idG4taG92ZXItdGV4dC1jb2xvcik7IGJvcmRlci1jb2xvcjp2YXIoLS1wcm9tby1idG4taG92ZXItdGV4dC1jb2xvcik7OyB9IDpub3QoLmN0YS10cmFjay10cGwpIC5wcm9tb0JUTi5yaXBwbGU6aG92ZXI6YmVmb3JlIHsgd2lkdGg6MTIwJTsgfSAucHJvbW9CVE4ucmlwcGxlOmhvdmVyIHNwYW4uZmF7IGNvbG9yOnZhcigtLXByb21vLWJ0bi1ob3Zlci10ZXh0LWNvbG9yKTsgfSAucHJvbW9BcnJvdywucHJvbW9Db2xvcnsgY29sb3I6I2ViMDAwMCFpbXBvcnRhbnQ7IH0gLmJyb2NodXJlQnRueyBib3JkZXI6bm9uZTsgZGlzcGxheTpibG9jazsgdGV4dC1hbGlnbjpjZW50ZXI7IHBhZGRpbmc6NXB4OyB9IC52ZHAtYnRuIHsgYm9yZGVyLXJhZGl1czozcHg7IG1hcmdpbi1ib3R0b206MTBweDsgdGV4dC10cmFuc2Zvcm06bm9uZTsgdGV4dC1hbGlnbjpjZW50ZXI7IGZvbnQtc2l6ZToxLjA2M3JlbSA7IHBhZGRpbmc6OHB4IDVweDsgd2lkdGg6MjM3cHg7IH0gQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOjQwMHB4KSB7IC5idG4tZGVmYXVsdCwgLmN1c3RvbWZvcm1fc3VibWl0LCBpbnB1dFt0eXBlPWJ1dHRvbl0uYnRuLWRlZmF1bHQsIGlucHV0W3R5cGU9c3VibWl0XS5idG4tZGVmYXVsdHsgZm9udC1zaXplOmluaGVyaXQ7IH0gLmFwcGx5LWNyZWRpdCB7IGJhY2tncm91bmQ6I2ZmMzMzMzsgYm9yZGVyOjFweCBzb2xpZCAjZmYxYTFhOyB9IC5hcHBseS1jcmVkaXQ6aG92ZXIgeyBiYWNrZ3JvdW5kOnskQVBQTFlfQ1JFRElUX0JUTl9DT0xPUl9FTkRIT1ZFUkNPTE9SfTsgfSB9IC5iZ19ibHVleyBiYWNrZ3JvdW5kLWNvbG9yOiMwNjg4ZmEhaW1wb3J0YW50OyBjb2xvcjojZmZmOyB9IC5iZ19yZWR7IGJhY2tncm91bmQtY29sb3I6I2ZmMDAwMCFpbXBvcnRhbnQ7IGNvbG9yOiNmZmY7IH0gLmJnX2dyZWVueyBiYWNrZ3JvdW5kLWNvbG9yOiM2OGE1NGIhaW1wb3J0YW50OyBjb2xvcjojZmZmOyB9IC5iZ19ibGFja3sgYmFja2dyb3VuZC1jb2xvcjojMDAwMDAwIWltcG9ydGFudDsgY29sb3I6I2ZmZjsgfSAuYmdfZ3JheXsgYmFja2dyb3VuZC1jb2xvcjojNzk3OTc5IWltcG9ydGFudDsgY29sb3I6I2ZmZjsgfSAuYmdfYmx1ZSBhLC5iZ19yZWQgYSwuYmdfZ3JlZW4gYSwuYmdfYmxhY2sgYSwuYmdfZ3JheSBhIHsgY29sb3I6I2ZmZjsgfSAuYmdfZGVmYXVsdHsgYmFja2dyb3VuZC1jb2xvcjojMWYyZjUzIWltcG9ydGFudDsgfSAuYm94Mjd7IHdpZHRoOjEzMXB4OyBoZWlnaHQ6MjhweDsgZmxvYXQ6bGVmdDsgbWFyZ2luLWJvdHRvbTo4cHg7IH0gLmJveDI3IGF7IHdpZHRoOjEzMXB4OyBoZWlnaHQ6MjhweDsgZmxvYXQ6bGVmdDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9idXR0b24xMF9iZy5wbmcpIGxlZnQgdG9wIHJlcGVhdC14IDsgYm9yZGVyLXJhZGl1czozcHg7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiNGRkZGRkY7IHRleHQtZGVjb3JhdGlvbjpub25lOyBmb250LXdlaWdodDpub3JtYWw7IHBhZGRpbmc6MDsgbGluZS1oZWlnaHQ6MjhweDsgdGV4dC1hbGlnbjogY2VudGVyOyB0ZXh0LXRyYW5zZm9ybTpub25lOyB9IC5ib3gyNyBhOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2J1dHRvbjEwX2JnLnBuZykgbGVmdCAtMzJweCByZXBlYXQteDsgY29sb3I6I0ZGRkZGRjsgfSAuYm94Mjh7IHdpZHRoOjEyN3B4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgbWFyZ2luOjBweDsgYmFja2dyb3VuZDojNmY2ZjZmIHVybCgvaW1hZ2VzL2xpdGVyX2JnLnBuZykgbGVmdCB0b3AgcmVwZWF0LXg7IGJvcmRlci1yYWRpdXM6M3B4OyBwYWRkaW5nOjEwcHggMnB4IDEwcHggMnB4OyBtYXJnaW46MCAwcHggMCAwOyB9IC50ZXh0NDR7IHdpZHRoOjEyN3B4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9saXRlcl9saW5lLnBuZykgbGVmdCBib3R0b20gcmVwZWF0LXg7IGJhY2tncm91bmQtcG9zaXRpb246Ym90dG9tOyB0ZXh0LWFsaWduOmNlbnRlcjsgcGFkZGluZy1ib3R0b206NXB4OyBtYXJnaW4tYm90dG9tOjVweDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6I0ZGRkZGRjsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgdGV4dC1hbGlnbjpjZW50ZXI7IHRleHQtdHJhbnNmb3JtOm5vbmU7IGxpbmUtaGVpZ2h0OjE4cHg7IH0gLmNvbnN1bXB0aW9uLW5vdC1hdmFpbGFibGUgPiAudGV4dDQ0ID4gc3BhbiA+ICNjaXR5RnVlbCB7IGRpc3BsYXk6bm9uZTsgfSAuY29uc3VtcHRpb24tbm90LWF2YWlsYWJsZSA+IC50ZXh0NDQgPiBzcGFuID4gI2hpZ2h3YXlGdWVsIHsgZGlzcGxheTpub25lOyB9IC50ZXh0X3NsaWRlIGEgeyBoZWlnaHQ6MzhweDsgbWFyZ2luLXJpZ2h0OjAuM2VtOyBwYWRkaW5nLXRvcDoxcHggIWltcG9ydGFudDsgfSAudGV4dF9zbGlkZSBhID4gYiB7IGRpc3BsYXk6YmxvY2s7IG92ZXJmbG93OmhpZGRlbiAhaW1wb3J0YW50OyBwb3NpdGlvbjpyZWxhdGl2ZTsgaGVpZ2h0OjI1cHg7IHdpZHRoOjEwMCU7IH0gLnRleHRfc2xpZGUgYSA+IGIgPiBtMSB7IGRpc3BsYXk6aW5saW5lLWJsb2NrOyBwb3NpdGlvbjpyZWxhdGl2ZTsgd2hpdGUtc3BhY2U6bm93cmFwOyBsaW5lLWhlaWdodDozOHB4ICFpbXBvcnRhbnQ7IHRvcDotOHB4OyBsZWZ0OjA7IH0gLnRleHRfc2xpZGUudGV4dF9zbGlkZV80IGEgPiBiID4gbTEgeyBhbmltYXRpb246dGV4dF9zbGlkZV80IDRzIGVhc2UgNXM7IGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6aW5maW5pdGU7IH0gLnRleHRfc2xpZGUudGV4dF9zbGlkZV8zIGEgPiBiID4gbTEgeyBhbmltYXRpb246dGV4dF9zbGlkZV8zIDNzIGVhc2UgNHM7IGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6aW5maW5pdGU7IH0gLnRleHRfc2xpZGUudGV4dF9zbGlkZV8yIGEgPiBiID4gbTEgeyBhbmltYXRpb246dGV4dF9zbGlkZV8yIDJzIGVhc2UgMnM7IGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6aW5maW5pdGU7IH0gLnRleHRfc2xpZGUucHJvbW9jb2RlYm94IHsgcGFkZGluZzowcHggMHB4OyBtYXJnaW4tbGVmdDowcHg7IHdpZHRoOjEwMCU7IG1hcmdpbi10b3A6OXB4OyB9IEBrZXlmcmFtZXMgdGV4dF9zbGlkZV80IHsgMCUgeyB0b3A6LThweDsgfSAyNSUgeyB0b3A6LTQ2cHg7IH0gNTAlIHsgdG9wOi04NHB4OyB9IDc1JSB7IHRvcDotMTIycHg7IH0gMTAwJSB7IHRvcDotMTYwcHg7IH0gfSBAa2V5ZnJhbWVzIHRleHRfc2xpZGVfMyB7IDAlIHsgdG9wOi04cHg7IH0gMzMlIHsgdG9wOi00NnB4OyB9IDY2JSB7IHRvcDotODRweDsgfSAxMDAlIHsgdG9wOi0xMjJweDsgfSB9IEBrZXlmcmFtZXMgdGV4dF9zbGlkZV8yIHsgMCUgeyB0b3A6LThweDsgfSA1MCUgeyB0b3A6LTQ2cHg7IH0gMTAwJSB7IHRvcDotODRweDsgfSB9IC5tYXAgeyB3aWR0aDoxMDAlOyB0ZXh0LWFsaWduOmNlbnRlcjsgcG9zaXRpb246cmVsYXRpdmU7IH0gLm1hcCAud3JhcHBlcnsgcG9zaXRpb246c3RhdGljICFpbXBvcnRhbnQ7IH0gLm1hcF9kZWFsZXJfbGlzdCB7IGJhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuOSk7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgcG9zaXRpb246YWJzb2x1dGU7IHRvcDowOyBwYWRkaW5nOjAgMzBweDsgd2lkdGg6MzE1cHg7IGhlaWdodDoxMDAlOyB0ZXh0LWFsaWduOmxlZnQ7IG92ZXJmbG93LXk6YXV0bzsgfSAubWFwX2RlYWxlcl9saXN0X2l0ZW0geyBjdXJzb3I6cG9pbnRlcjsgcGFkZGluZzoxM3B4IDA7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IH0gLm1hcF9kZWFsZXJfbGlzdF9pdGVtX25hbWUgeyBwb3NpdGlvbjphYnNvbHV0ZTsgfSAubWFwX2RlYWxlcl9saXN0X2l0ZW1fbmFtZTpob3ZlciB7IGZvbnQtd2VpZ2h0OjcwMDsgfSAubWFwX2RlYWxlcl9saXN0X2l0ZW1fbmFtZV9hY3RpdmUgeyBmb250LXdlaWdodDo3MDA7IH0gLm1hcmtlclNwYW4geyBoZWlnaHQ6MThweDsgd2lkdGg6MjBweDsgZGlzcGxheTppbmxpbmUtYmxvY2s7IHBvc2l0aW9uOnJlbGF0aXZlOyBkaXNwbGF5OmlubGluZS1ibG9jazsgfSAubWFya2VyU3BhbjpiZWZvcmUgeyBjb250ZW50OicnOyBoZWlnaHQ6NHB4OyB3aWR0aDo0cHg7IGJvcmRlcjoycHggc29saWQgIzMzMzsgZGlzcGxheTpibG9jazsgcG9zaXRpb246YWJzb2x1dGU7IHRvcDoycHg7IGxlZnQ6MHB4OyB6LWluZGV4OjE7IGJhY2tncm91bmQ6I2ZmZjsgbGluZS1oZWlnaHQ6MjZweDsgYm9yZGVyLXJhZGl1czo0MHB4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6NDBweDsgLW1vei1ib3JkZXItcmFkaXVzOjQwcHg7IGNvbG9yOiNmZmY7IHRleHQtYWxpZ246Y2VudGVyOyB9IC5tYXJrZXJTcGFuOmFmdGVyIHsgY29udGVudDonJzsgaGVpZ2h0OjBweDsgd2lkdGg6MHB4OyBkaXNwbGF5OmJsb2NrOyBwb3NpdGlvbjphYnNvbHV0ZTsgYm90dG9tOjJweDsgbGVmdDoycHg7IGJvcmRlcjoxMHB4IHRyYW5zcGFyZW50IHNvbGlkOyBib3JkZXItdG9wLWNvbG9yOiMzMzM7IGJvcmRlci13aWR0aDo3cHggMnB4IDBweCAycHg7IH0gLm1hcF9vcGVuX2hvdXJzIHsgYmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC45KTsgYm94LXNpemluZzpib3JkZXItYm94OyBwb3NpdGlvbjphYnNvbHV0ZTsgdG9wOjA7IHdpZHRoOjQwMHB4OyBoZWlnaHQ6MTAwJTsgdGV4dC1hbGlnbjpsZWZ0OyB9IC5vcGVuX2hvdXJzX2NvbnRhaW5lciB7IGJhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuOSk7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgdGV4dC1hbGlnbjpsZWZ0OyB9IC5tYXBfb3Blbl9ob3VycyAubWFwX29wZW5faG91cnMtLXRpdGxlLCAub3Blbl9ob3Vyc19jb250YWluZXIgaDIsIC5vcGVuX2hvdXJzX2NvbnRhaW5lciBzcGFuLmgyLWFsdCB7IGZvbnQtc2l6ZToxLjVlbTsgZm9udC13ZWlnaHQ6Ym9sZDsgcGFkZGluZy1sZWZ0OjE1cHg7IG1hcmdpbi10b3A6MjBweDsgbWFyZ2luLWJvdHRvbToxMHB4OyBjb2xvcjppbmhlcml0OyB9IC5tYXBfb3Blbl9ob3VycyB1bCwgLm9wZW5faG91cnNfY29udGFpbmVyIHVsIHsgcGFkZGluZzowIDA7IH0gLm1hcF9vcGVuX2hvdXJzIHVsIGxpLCAub3Blbl9ob3Vyc19jb250YWluZXIgdWwgbGkgeyBsaXN0LXN0eWxlOm5vbmU7IGN1cnNvcjpwb2ludGVyOyBjdXJzb3I6aGFuZDsgYm9yZGVyLWJvdHRvbToxcHggc29saWQgI2YzZjNmMzsgfSAubWFwX29wZW5faG91cnNfZXhwYW5keyBwYWRkaW5nOjZweCAzMHB4IDhweCAxNXB4OyBkaXNwbGF5OmJsb2NrOyB9IC5leHBhbmRhYmxlX2NvbnRlbnR7IHBhZGRpbmc6MHB4IDE2cHggNXB4IDE2cHg7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGxpbmUtaGVpZ2h0OjEuNDI4NTcxNDM7IH0gLmV4cGFuZGFibGVfY29udGVudCBkaXYsIC5leHBhbmRhYmxlX2NvbnRlbnRfbXVsdGlsb2NhdGlvbiBkaXYgeyBkaXNwbGF5IDpmbGV4OyBmbGV4LWRpcmVjdGlvbiA6cm93OyB9IC5leHBhbmRhYmxlX2NvbnRlbnQgPiBkaXYgPiBzcGFuOmZpcnN0LW9mLXR5cGUsIC5leHBhbmRhYmxlX2NvbnRlbnRfbXVsdGlsb2NhdGlvbiBkaXYgc3BhbjpmaXJzdC1vZi10eXBlIHsgd2lkdGg6NDAlOyB9IC5leHBhbmRhYmxlX2NvbnRlbnRfbXVsdGlsb2NhdGlvbnsgZm9udC1zaXplOjAuODc1cmVtIDsgbGluZS1oZWlnaHQ6MS40Mjg1NzE0MzsgbWFyZ2luLXRvcDoxNXB4OyB9IEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aCA6NzU5cHgpIHsgLmV4cGFuZGFibGVfY29udGVudCwgLmV4cGFuZGFibGVfY29udGVudF9tdWx0aWxvY2F0aW9uIHsgZm9udC1zaXplOmluaGVyaXQ7IH0gfSAuZXhwYW5kYWJsZV9jb250ZW50X211bHRpbG9jYXRpb24gdGFibGV7IG1hcmdpbi10b3A6MTVweDsgfSAubWFwX29wZW5faG91cnNfZXhwYW5kX2Fycm93eyBmbG9hdDpyaWdodDsgbWFyZ2luLXRvcDozcHg7IH0gLm1hcF9vcGVuX2hvdXJzX2V4cGFuZF9hcnJvdy5leHBhbmRlZHsgdHJhbnNmb3JtOnJvdGF0ZSgxODBkZWcpOyB9IC5tYXBfb3Blbl9ob3Vyc19tb2JpbGV7IGJhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuOSk7IH0gLm1hcF9vcGVuX2hvdXJzX21vYmlsZSAubWFwX29wZW5faG91cnNfbW9iaWxlLS10aXRsZSB7IGZvbnQtc2l6ZTp2YXIoLS1mczQpOyB0ZXh0LWFsaWduOmNlbnRlcjsgfSAubWFwX29wZW5faG91cnNfbW9iaWxlIHVseyBwYWRkaW5nOjAgMDsgfSAubWFwX29wZW5faG91cnNfbW9iaWxlIHVsIGxpeyBsaXN0LXN0eWxlOm5vbmU7IGN1cnNvcjpwb2ludGVyOyBib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZjNmM2YzOyB9IC5tYWluX2xlZnRfYm94ICNmb290ZXJHb29nbGVNYXBIb3Vyc0NvbnRhaW5lcnsgd2lkdGg6OTYwcHg7IH0gLnZpZGVvQnRuU2xpZGVyLCAucGhvdG9CdG5TbGlkZXJ7IGJvcmRlci1yYWRpdXM6NTAlOyBib3JkZXI6MXB4IHNvbGlkICNiM2IzYjM7IGNvbG9yOiNiM2IzYjM7IHdpZHRoOjc1cHg7IGhlaWdodDo3NXB4OyBiYWNrZ3JvdW5kLWNvbG9yOiNmZmZmZmY7IG9wYWNpdHk6MC41OyB9IC52aWRlb0J0blNsaWRlcjpob3ZlciwgLnBob3RvQnRuU2xpZGVyOmhvdmVyeyBib3JkZXItcmFkaXVzOjUwJTsgYm9yZGVyOjFweCBzb2xpZCAjZmZmZmZmOyB3aWR0aDo3NXB4OyBoZWlnaHQ6NzVweDsgYmFja2dyb3VuZC1jb2xvcjojYjNiM2IzOyBvcGFjaXR5OjAuNTsgfSAucGhvdG9CdG5TbGlkZXIgLmZhLCAudmlkZW9CdG5TbGlkZXIgLmZheyBjb2xvcjojYjNiM2IzOyB9IC5waG90b0J0blNsaWRlcjpob3ZlciAuZmEsIC52aWRlb0J0blNsaWRlcjpob3ZlciAuZmF7IGNvbG9yOiNmZmZmZmY7IH0gLnZpZGVvQnRuU2xpZGVyVXNlZCwgLnBob3RvQnRuU2xpZGVyVXNlZHsgYm9yZGVyLXJhZGl1czo1MCU7IGJvcmRlcjoxcHggc29saWQgI2IzYjNiMzsgY29sb3I6I2IzYjNiMzsgd2lkdGg6NzVweDsgaGVpZ2h0Ojc1cHg7IGJhY2tncm91bmQtY29sb3I6I2ZmZmZmZjsgb3BhY2l0eTowLjk7IH0gLnZpZGVvQnRuU2xpZGVyVXNlZDpob3ZlciwgLnBob3RvQnRuU2xpZGVyVXNlZDpob3ZlcnsgYm9yZGVyLXJhZGl1czo1MCU7IGJvcmRlcjoxcHggc29saWQgI2ZmZmZmZjsgd2lkdGg6NzVweDsgaGVpZ2h0Ojc1cHg7IGJhY2tncm91bmQtY29sb3I6I2IzYjNiMzsgb3BhY2l0eTowLjU7IH0gLnBob3RvQnRuU2xpZGVyVXNlZCAuZmEsIC52aWRlb0J0blNsaWRlclVzZWQgLmZheyBjb2xvcjojYjNiM2IzOyB9IC5waG90b0J0blNsaWRlclVzZWQ6aG92ZXIgLmZhLCAudmlkZW9CdG5TbGlkZXJVc2VkOmhvdmVyIC5mYXsgY29sb3I6I2ZmZmZmZjsgfSAudmlkZW9zX3BpY3R1cmVzX2J1dHRvbnNfY29udGFpbmVyeyBsZWZ0OjVweDsgYm90dG9tOjgycHg7IHBvc2l0aW9uOnJlbGF0aXZlOyB6LWluZGV4Ojk5OTsgZmxvYXQ6bGVmdDsgbWFyZ2luLWJvdHRvbTotODBweDsgfSAuLWRpc3BsYXktbm9uZXsgZGlzcGxheTpub25lOyB9ICNkZWZhdWx0VG9wQmFubmVyV3JhcHsgdGV4dC1hbGlnbjpjZW50ZXI7IHZlcnRpY2FsLWFsaWduOm1pZGRsZTsgcGFkZGluZzo0MHB4IDE1cHg7IH0gI2RlZmF1bHRUb3BCYW5uZXJ7IHRleHQtYWxpZ246Y2VudGVyOyB3aWR0aDoxMDAlOyBib3JkZXItcmFkaXVzOjZweDsgY3Vyc29yOnBvaW50ZXI7IH0gI2RlZmF1bHRUb3BCYW5uZXJUaXRsZSwgI2RlZmF1bHRUb3BCYW5uZXJUZXh0eyBmb250LXdlaWdodDpib2xkOyB9ICNkZWZhdWx0VG9wQmFubmVyV3JhcCBkaXYuZGVmYXVsdFRvcEJhbm5lckJ0bldyYXBwZXJ7IG1hcmdpbjozMHB4IDAgMjBweCAwOyB3aWR0aDoxMDAlOyBmbG9hdDpsZWZ0OyB9ICNkZWZhdWx0VG9wQmFubmVyQnRueyBwYWRkaW5nOjEwcHggMzBweDsgYmFja2dyb3VuZDpibGFjazsgYm9yZGVyOjJweCB3aGl0ZSBzb2xpZDsgYm9yZGVyLXJhZGl1czozcHg7IHRleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTsgZm9udC13ZWlnaHQ6Ym9sZDsgY29sb3I6I2ZmZmZmZjsgYm94LXNoYWRvdzowcHggMnB4IDEzcHggMHB4ICMxYjFiMWI7IH0gI3RvcEJhbm5lckltYWdlLk5FV0NBUlMgI2RlZmF1bHRUb3BCYW5uZXJUaXRsZXsgZm9udC1zaXplOjMuMTI1cmVtIDsgfSAjdG9wQmFubmVySW1hZ2UuTkVXQ0FSUyAjZGVmYXVsdFRvcEJhbm5lclRleHR7IGZvbnQtc2l6ZToyLjgxM3JlbSA7IH0gI3RvcEJhbm5lckltYWdlLlVTRURDQVJTICNkZWZhdWx0VG9wQmFubmVyVGl0bGV7IGZvbnQtc2l6ZTozLjEyNXJlbSA7IH0gI3RvcEJhbm5lckltYWdlLlVTRURDQVJTICNkZWZhdWx0VG9wQmFubmVyVGV4dHsgZm9udC1zaXplOjIuODEzcmVtIDsgfSAjdG9wQmFubmVySW1hZ2U6ZW1wdHl7IG1hcmdpbjowICFpbXBvcnRhbnQ7IHBhZGRpbmc6MCAhaW1wb3J0YW50OyB9ICN0b3BCYW5uZXJJbWFnZS5VU0VEQ0FSUyAjZGVmYXVsdFRvcEJhbm5lcldyYXB7IGhlaWdodDoyNjVweDsgYm94LXNpemluZzpib3JkZXItYm94OyBwYWRkaW5nOjQwcHggMTVweDsgfSAjdG9wQmFubmVySW1hZ2UuTkVXQ0FSUyAjZGVmYXVsdFRvcEJhbm5lcldyYXB7IGhlaWdodDoyNjVweDsgYm94LXNpemluZzpib3JkZXItYm94OyBwYWRkaW5nOjQwcHggMTVweDsgfSAjZ29vZ2xlX3Jldmlld3N7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiM2NjY7IH0gI2dvb2dsZV9yZXZpZXdzIC5yZXZpZXctaXRlbSAucmV2aWV3LXN0YXJzIHVsIHsgZGlzcGxheTppbmxpbmUtYmxvY2s7IGxpc3Qtc3R5bGU6bm9uZTsgcGFkZGluZzowOyB9ICNnb29nbGVfcmV2aWV3cyAucmV2aWV3LWl0ZW0gLnJldmlldy1zdGFycyB1bCBsaSB7IGZsb2F0OmxlZnQ7IG1hcmdpbi1yaWdodDo1cHg7IHdpZHRoOmluaXRpYWwgIWltcG9ydGFudDsgcGFkZGluZzppbml0aWFsOyB9ICNnb29nbGVfcmV2aWV3cyAucmV2aWV3LWl0ZW0gLnJldmlldy1zdGFycyB1bCBsaSBpIHsgY29sb3I6I0U0QjI0ODsgZm9udC1zdHlsZTpub3JtYWw7IGZvbnQtc2l6ZTowLjkzOHJlbSA7IH0gI2dvb2dsZV9yZXZpZXdzIC5yZXZpZXctaXRlbSAucmV2aWV3LXN0YXJzIHVsIGxpIGkuaW5hY3RpdmUgeyBjb2xvcjojYzZjNmM2OyB9ICNnb29nbGVfcmV2aWV3cyAucmV2aWV3LWl0ZW0gLnJldmlldy1zdGFyOmFmdGVyIHsgY29udGVudDoiXDI2MDUiOyB9ICNlYXN5LWdwbGFjZXMtcmV2aWV3cy1idXR7IGZvbnQtd2VpZ2h0OmJvbGQ7IHBhZGRpbmc6NXB4IDhweDsgaGVpZ2h0OjI3cHg7IGxpbmUtaGVpZ2h0OjI3cHg7IH0gLnJldmlldy1hdXRob3J7IHRleHQtdHJhbnNmb3JtOmNhcGl0YWxpemU7IH0gI2Vhc3ktZ3BsYWNlcy1yZXZpZXdzLWJ1dC5kZWZhdWx0eyBjb2xvcjojNDQ0OyBiYWNrZ3JvdW5kLWNvbG9yOiNmNWY1ZjU7IGJhY2tncm91bmQtaW1hZ2U6LW1vei1saW5lYXItZ3JhZGllbnQoY2VudGVyIHRvcCAsICNmNWY1ZjUsICNmMWYxZjEpOyBib3JkZXI6MXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4xKTsgfSAjZWFzeS1ncGxhY2VzLXJldmlld3MtYnV0LnJlZHsgY29sb3I6I2ZmZjsgYmFja2dyb3VuZC1jb2xvcjojZjVmNWY1OyBiYWNrZ3JvdW5kLWltYWdlOi1tb3otbGluZWFyLWdyYWRpZW50KGNlbnRlciB0b3AgLCAjREQ0QjM5LCAjRDE0ODM2KTsgYm9yZGVyOjFweCBzb2xpZCAjRDE0ODM2OyB9ICNlYXN5LWdwbGFjZXMtcmV2aWV3cy1idXQuYmx1ZXsgY29sb3I6I2ZmZjsgYmFja2dyb3VuZC1jb2xvcjojNEQ5MEZFOyBiYWNrZ3JvdW5kLWltYWdlOi1tb3otbGluZWFyLWdyYWRpZW50KGNlbnRlciB0b3AgLCAjNEQ5MEZFLCAjNDc4N0VEKTsgYm9yZGVyOjFweCBzb2xpZCAjMzA3OUVEOyB9IC5lbWJlZC1jb250YWluZXIteW91dHViZSBpZnJhbWUsIC5lbWJlZC1jb250YWluZXIteW91dHViZSBvYmplY3QsIC5lbWJlZC1jb250YWluZXIteW91dHViZSBlbWJlZCB7IHBvc2l0aW9uOmFic29sdXRlOyB0b3A6MDsgbGVmdDowOyB3aWR0aDoxMDAlOyBoZWlnaHQ6MTAwJTsgfSAuZW1iZWQtY29udGFpbmVyLXlvdXR1YmUyeyBwb3NpdGlvbjpyZWxhdGl2ZTsgcGFkZGluZy1ib3R0b206NTYuMjUlOyBoZWlnaHQ6MDsgb3ZlcmZsb3c6aGlkZGVuOyBtYXgtd2lkdGg6MTAwJTsgfSAuZW1iZWQtY29udGFpbmVyLXlvdXR1YmUyIGlmcmFtZSwgLmVtYmVkLWNvbnRhaW5lci15b3V0dWJlMiBvYmplY3QsIC5lbWJlZC1jb250YWluZXIteW91dHViZTIgZW1iZWQgeyBwb3NpdGlvbjphYnNvbHV0ZTsgdG9wOjA7IGxlZnQ6MDsgd2lkdGg6MTAwJTsgaGVpZ2h0OjEwMCU7IH0gI3NlYXJjaENyaXRlcmlhVzo6YWZ0ZXIsICNhY3Rpb25Cb3hCdG46OmFmdGVyLCAjbGlua0NvbnRhaW5lcjo6YWZ0ZXJ7IGNvbnRlbnQ6Jyc7IGhlaWdodDoxcHg7IGRpc3BsYXk6aW5saW5lLWJsb2NrOyBtYXJnaW4tYm90dG9tOicxNXB4JzsgfSAjc2VhcmNoQ3JpdGVyaWFXOjphZnRlciwgI2FjdGlvbkJveEJ0bjo6YWZ0ZXIsICNsaW5rQ29udGFpbmVyOjphZnRlcnsgYmFja2dyb3VuZDojYWFhOyB3aWR0aDoyODBweDsgfSAuYmFubmVyUG9wdXBDbG9zZXsgY29sb3I6I2FhYTsgfSAuc2VlVmlkZW9CdG4xeyBiYWNrZ3JvdW5kLWNvbG9yOiMwMDAgIWltcG9ydGFudDsgYm9yZGVyOjFweCBzb2xpZCAjZmZmICFpbXBvcnRhbnQ7IGNvbG9yOiNmZmYgIWltcG9ydGFudDsgfSAuc2VlVmlkZW9CdG4xOmhvdmVyeyBiYWNrZ3JvdW5kLWNvbG9yOiNmZmYgIWltcG9ydGFudDsgYm9yZGVyOjFweCBzb2xpZCAjMDAwICFpbXBvcnRhbnQ7IGNvbG9yOiMwMDAwMDAgIWltcG9ydGFudDsgfSAjYm90dG9tTGVmdEJhbm5lckltYWdleyBtYXJnaW46MTBweCAwcHggMHB4OyBmbG9hdDpsZWZ0OyB3aWR0aDoxMDAlOyB9ICNkZWZhdWx0Qm90dG9tTGVmdEJhbm5lcnsgdGV4dC1hbGlnbjpjZW50ZXI7IHdpZHRoOjEwMCU7IGJvcmRlci1yYWRpdXM6NnB4OyBjdXJzb3I6cG9pbnRlcjsgfSAjZGVmYXVsdEJvdHRvbUxlZnRCYW5uZXJXcmFweyB0ZXh0LWFsaWduOmNlbnRlcjsgdmVydGljYWwtYWxpZ246bWlkZGxlOyBwYWRkaW5nOjE1cHg7IH0gI2RlZmF1bHRCb3R0b21MZWZ0QmFubmVyVGl0bGV7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc2l6ZToyLjE4OHJlbSA7IH0gI2RlZmF1bHRCb3R0b21MZWZ0QmFubmVyVGV4dHsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zaXplOjEuOTM4cmVtIDsgfSAjZGVmYXVsdEJvdHRvbUxlZnRCYW5uZXJXcmFwIGRpdi5kZWZhdWx0Qm90dG9tTGVmdEJhbm5lckJ0bldyYXBwZXJ7IG1hcmdpbjoyMHB4IDAgMTBweCAwOyB3aWR0aDoxMDAlOyBmbG9hdDpsZWZ0OyB9ICNkZWZhdWx0Qm90dG9tTGVmdEJhbm5lckJ0bnsgcGFkZGluZzo3cHggMjFweDsgYmFja2dyb3VuZDpibGFjazsgYm9yZGVyOjJweCB3aGl0ZSBzb2xpZDsgYm9yZGVyLXJhZGl1czozcHg7IHRleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTsgZm9udC13ZWlnaHQ6Ym9sZDsgY29sb3I6I2ZmZmZmZjsgYm94LXNoYWRvdzowcHggMnB4IDEzcHggMHB4ICMxYjFiMWI7IGZvbnQtc2l6ZTo3MCU7IH0gLm1haW5EaXYtd3JhcHBlciB7IHBhZGRpbmctdG9wOjAuMDFyZW07IGJhY2tncm91bmQtY29sb3I6I2ZmZmZmZjsgfSAubGFuZ3VhZ2VCYXIgI3NlcnZpY2VfYXBwb2ludF9oZWFkZXIgPiBhIHsgcGFkZGluZzowIDEycHg7IGhlaWdodDoyNnB4OyBsaW5lLWhlaWdodDoyN3B4OyBib3JkZXItcmFkaXVzOjA7IH0gI3NlcnZpY2VfYXBwb2ludF9oZWFkZXIgPiBhIHsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IGJhY2tncm91bmQtY29sb3I6IzFmMmY1MzsgYmFja2dyb3VuZC1jb2xvcjo7IGNvbG9yOndoaXRlOyBjb2xvcjojZmZmZmZmOyB9ICNzZXJ2aWNlX2FwcG9pbnRfaGVhZGVyID4gYS5idG4geyBmb250LXdlaWdodDpub3JtYWw7IH0gLmxhbmd1YWdlQmFyICNzZXJ2aWNlX2FwcG9pbnRfaGVhZGVyID4gLmJ0bi1kZWZhdWx0OmhvdmVyIHsgYm9yZGVyLWNvbG9yOiMxZjJmNTM7IGJvcmRlci1jb2xvcjo7IH0gI3NlcnZpY2VfYXBwb2ludF9oZWFkZXIgLnNob3J0LXNlcnZpY2UtZm9ybSB7IGRpc3BsYXk6bm9uZTsgYm94LXNoYWRvdzowIDZweCAxMnB4IHJnYmEoMCwgMCwgMCwgLjE3NSk7IHBvc2l0aW9uOmFic29sdXRlOyB3aWR0aDozNTBweDsgcmlnaHQ6MDsgcGFkZGluZzoxNXB4OyB6LWluZGV4Ojk5OTk7IGJhY2tncm91bmQtY29sb3I6d2hpdGU7IGhlaWdodDphdXRvOyB0b3A6MjNweDsgfSAubGFuZ3VhZ2VCYXIgI3NlcnZpY2VfYXBwb2ludF9oZWFkZXIgZGl2Om5vdChbY2xhc3NdKSB7IGZsb2F0OmluaXRpYWw7IHdpZHRoOjEwMCU7IG1hcmdpbi1yaWdodDowOyB0ZXh0LWFsaWduOmluaXRpYWw7IH0gI3NlcnZpY2VfYXBwb2ludF9oZWFkZXI6aG92ZXIgLnNob3J0LXNlcnZpY2UtZm9ybSB7IGRpc3BsYXk6YmxvY2s7IH0gI3NlcnZpY2VfYXBwb2ludF9oZWFkZXIgeyBwb3NpdGlvbjpyZWxhdGl2ZTsgfSAjc2VydmljZV9hcHBvaW50X2hlYWRlci5pc09wZW4gLnNob3J0LXNlcnZpY2UtZm9ybSB7IGRpc3BsYXk6YmxvY2s7IH0gLmxhbmd1YWdlQmFyICNzZXJ2aWNlX2FwcG9pbnRfaGVhZGVyIC5tYWlsd2lkZ2V0LS1mb3JtLXJvdywgLmxhbmd1YWdlQmFyICNzZXJ2aWNlX2FwcG9pbnRfaGVhZGVyIC5tYWlsd2lkZ2V0LS1mb3JtLXJvdyBkaXYgeyBtYXJnaW4tcmlnaHQ6aW5oZXJpdDsgd2lkdGg6MTAwJSAhaW1wb3J0YW50OyBmbG9hdDpub25lOyB9IC5sYW5ndWFnZUJhciAjc2VydmljZV9hcHBvaW50X2hlYWRlciAubWFpbHdpZGdldC0tZm9ybS1yb3cgdGFibGUgdGV4dGFyZWEgeyB3aWR0aDpjYWxjKDEwMCUgKyAycHgpICFpbXBvcnRhbnQ7IH0gI3VzZWRfNDA0X21lc3NhZ2UgeyB0ZXh0LWFsaWduOmNlbnRlcjsgcGFkZGluZzozMHB4OyBib3JkZXI6MXB4IHNvbGlkICNmMDA7IG1hcmdpbjowIDAgMjBweCAwOyB9IC5hdWRpLXRpdGxlIGgyIHsgZm9udC13ZWlnaHQ6bm9ybWFsOyB9IC5hdWRpLWNvbG9yIHsgY29sb3I6I2JiMGEzMDsgZm9udC13ZWlnaHQ6Ym9sZDsgfSBkaXYjc29jaWFsX21lZGlhX2ljb25zX2RpdiB7IGZvbnQtc2l6ZTppbmhlcml0OyB9IGEuc29jaWFsLWxpbmsgeyAtLWZzOnZhcigtLWZzNik7IC0tdHh0LWNvbG9yOiMxZjJmNTM7IH0gI3NvY2lhbF9tZWRpYV9pY29uc19kaXYgLnNvY2lhbC1saW5rW2RhdGEtdG9vbHRpcD0nWW91dHViZSddIC5zb2NpYWwtaWNvbnMgeyBtYXJnaW4tcmlnaHQ6M3B4OyB9IC5wYXlwYWxfYnV0dG9uX2h0bWwgdGFibGV7IG1hcmdpbi1sZWZ0OmF1dG87IG1hcmdpbi1yaWdodDphdXRvOyBiYWNrZ3JvdW5kLWNvbG9yOmJsYWNrOyBjb2xvcjp3aGl0ZTsgd2lkdGg6MTAwJTsgcGFkZGluZzowIDAgMTBweCAwOyBib3JkZXItcmFkaXVzOjNweCAzcHggMCAwOyB0ZXh0LWFsaWduOmNlbnRlcjsgfSAucGF5cGFsX2J1dHRvbl9odG1sIHRhYmxlIHRyOmZpcnN0LWNoaWxkeyBmb250LXNpemU6MS4xMjVyZW0gOyBoZWlnaHQ6NDBweDsgfSAucGF5cGFsX2J1dHRvbl9odG1sIHRhYmxlIHNlbGVjdHsgYm9yZGVyLXJhZGl1czo1cHg7IHdpZHRoOjIwMHB4OyBoZWlnaHQ6MzVweDsgYmFja2dyb3VuZC1jb2xvcjp3aGl0ZTsgfSAucGF5cGFsX2J1dHRvbl9odG1sIGlucHV0W3R5cGU9ImltYWdlIl1bbmFtZT0ic3VibWl0Il17IHdpZHRoOjEwMCU7IGJvcmRlcjpub25lOyBwYWRkaW5nOjA7IH0gQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOjQwMHB4KSB7IC5wYXlwYWxfYnV0dG9uX2h0bWx7IHdpZHRoOjkwJTsgbWFyZ2luOjAgYXV0bzsgfSB9ICNtdWx0aS1hZGRyZXNzLXN1Ym1pc3Npb24geyB6LWluZGV4OjEwMDAwMDAwMDIxOyB9ICNtdWx0aS1hZGRyZXNzLXN1Ym1pc3Npb24uZGVza3RvcCB7IHRleHQtYWxpZ246Y2VudGVyOyB9ICNtdWx0aS1hZGRyZXNzLXN1Ym1pc3Npb24uZGVza3RvcCBzZWxlY3QgeyBtYXgtd2lkdGg6MzAwcHg7IG1hcmdpbjowIGF1dG87IH0gI211bHRpLWFkZHJlc3Mtc3VibWlzc2lvbi5zbWFsbCB7IHBhZGRpbmc6MjBweCAxMHB4OyB9ICNtdWx0aS1hZGRyZXNzLXN1Ym1pc3Npb24gbGFiZWwgeyBkaXNwbGF5OmJsb2NrOyBtYXJnaW4tYm90dG9tOjVweDsgZm9udC13ZWlnaHQ6Ym9sZDsgfSAjbXVsdGktYWRkcmVzcy1zdWJtaXNzaW9uICNtdXRsaUFkZHJlc3NTdWJtaXQgeyBtYXJnaW46MCBhdXRvOyBtYXJnaW4tdG9wOjhweDsgZGlzcGxheTp0YWJsZTsgfSAjbXVsdGktYWRkcmVzcy1zdWJtaXNzaW9uICNtdWx0aS1kZWFsZXItbWFwIHsgaGVpZ2h0OjUyMHB4OyBtYXJnaW4tYm90dG9tOjEycHg7IH0gI211bHRpLWFkZHJlc3Mtc3VibWlzc2lvbi5yZXZlYWwtbW9kYWwgc3BhbiB7IGZvbnQtc2l6ZTppbmhlcml0OyB9IC52YWxpZGl0eS1lcnJvbmVvdXMgeyBib3JkZXI6MXB4IHNvbGlkICNkYzM1NDU7IGJhY2tncm91bmQtY29sb3I6I2ZhZDZkYyFpbXBvcnRhbnQ7IH0gLmJveDQudmFsaWRpdHktZXJyb25lb3VzLCAuYm94NS52YWxpZGl0eS1lcnJvbmVvdXMgeyB3aWR0aDoyNjNweDsgfSAuZm9ybS1jb250cm9sIHsgZGlzcGxheTpibG9jazsgd2lkdGg6MTAwJTsgaGVpZ2h0OjM0cHg7IHBhZGRpbmc6NnB4IDEycHg7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGxpbmUtaGVpZ2h0OjEuNDI4NTcxNDM7IGNvbG9yOiM1NTU7IGJhY2tncm91bmQtY29sb3I6I2ZmZjsgYmFja2dyb3VuZC1pbWFnZTpub25lOyBib3JkZXI6MXB4IHNvbGlkICNjY2M7IGJvcmRlci1yYWRpdXM6NHB4OyAtd2Via2l0LWJveC1zaGFkb3c6aW5zZXQgMCAxcHggMXB4IHJnYmEoMCwwLDAsLjA3NSk7IGJveC1zaGFkb3c6aW5zZXQgMCAxcHggMXB4IHJnYmEoMCwwLDAsLjA3NSk7IC13ZWJraXQtdHJhbnNpdGlvbjpib3JkZXItY29sb3IgZWFzZS1pbi1vdXQgLjE1cyxib3gtc2hhZG93IGVhc2UtaW4tb3V0IC4xNXM7IC1vLXRyYW5zaXRpb246Ym9yZGVyLWNvbG9yIGVhc2UtaW4tb3V0IC4xNXMsYm94LXNoYWRvdyBlYXNlLWluLW91dCAuMTVzOyAtd2Via2l0LXRyYW5zaXRpb246Ym9yZGVyLWNvbG9yIGVhc2UtaW4tb3V0IC4xNXMsLXdlYmtpdC1ib3gtc2hhZG93IGVhc2UtaW4tb3V0IC4xNXM7IHRyYW5zaXRpb246Ym9yZGVyLWNvbG9yIGVhc2UtaW4tb3V0IC4xNXMsLXdlYmtpdC1ib3gtc2hhZG93IGVhc2UtaW4tb3V0IC4xNXM7IHRyYW5zaXRpb246Ym9yZGVyLWNvbG9yIGVhc2UtaW4tb3V0IC4xNXMsYm94LXNoYWRvdyBlYXNlLWluLW91dCAuMTVzOyB0cmFuc2l0aW9uOmJvcmRlci1jb2xvciBlYXNlLWluLW91dCAuMTVzLGJveC1zaGFkb3cgZWFzZS1pbi1vdXQgLjE1cywtd2Via2l0LWJveC1zaGFkb3cgZWFzZS1pbi1vdXQgLjE1czsgfSAuYmFubmVyLWZvcm0tYm94IHsgcGFkZGluZzozMHB4OyBiYWNrZ3JvdW5kLWNvbG9yOjsgY29sb3I6OyB9IC5iYW5uZXItZm9ybS10aXRsZSB7IGZvbnQtd2VpZ2h0OjYwMDsgZm9udC1zaXplOjE4cHQ7IHRleHQtYWxpZ246Y2VudGVyOyB0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7IG1hcmdpbi1ib3R0b206NXB4OyB9IC5iYW5uZXItZm9ybS1zdWJ0aXRsZSB7IGZvbnQtc2l6ZToxMS41cHQ7IG1hcmdpbi1ib3R0b206NXB4OyB9IC5iYW5uZXItZm9ybS1ib2R5IHsgbWFyZ2luLWJvdHRvbToyNXB4OyB9IC5iYW5uZXItZm9ybS1ib2R5IC5mb3JtLWNvbnRyb2wgeyBoZWlnaHQ6NDFweDsgbWFyZ2luLWJvdHRvbToxNXB4OyAtd2Via2l0LWJveC1zaXppbmc6Ym9yZGVyLWJveDsgLW1vei1ib3gtc2l6aW5nOmJvcmRlci1ib3g7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgfSAuYmFubmVyLWZvcm0tYm94LWZvb3RlciB7IHRleHQtYWxpZ246Y2VudGVyOyBtYXJnaW4tdG9wOjI1cHg7IH0gLmJhbm5lci1mb3JtLWJveC1oZWFkZXIgeyB0ZXh0LWFsaWduOmNlbnRlcjsgbWFyZ2luLWJvdHRvbToxNXB4OyB9IC5idG4uYmFubmVyLWJ0biB7IHBhZGRpbmc6NnB4IDI0cHg7IGZvbnQtd2VpZ2h0OmJvbGQ7IHRleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTsgYmFja2dyb3VuZC1jb2xvcjpibGFjazsgY29sb3I6d2hpdGU7IGJhY2tncm91bmQtY29sb3I6OyBjb2xvcjo7IH0gLmJ0bi5iYW5uZXItYnRuOmhvdmVyIHsgYm94LXNoYWRvdzppbnNldCAwIDAgMTAwcHggMTAwcHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpOyB9IC5idG4geyBkaXNwbGF5OmlubGluZS1ibG9jazsgcGFkZGluZzo2cHggMTJweDsgbWFyZ2luLWJvdHRvbTowOyBmb250LXNpemU6MC44NzVyZW0gOyBmb250LXdlaWdodDo0MDA7IGxpbmUtaGVpZ2h0OjEuNDI4NTcxNDM7IHRleHQtYWxpZ246Y2VudGVyOyB3aGl0ZS1zcGFjZTpub3dyYXA7IHZlcnRpY2FsLWFsaWduOm1pZGRsZTsgLW1zLXRvdWNoLWFjdGlvbjptYW5pcHVsYXRpb247IHRvdWNoLWFjdGlvbjptYW5pcHVsYXRpb247IGN1cnNvcjpwb2ludGVyOyAtd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7IC1tb3otdXNlci1zZWxlY3Q6bm9uZTsgLW1zLXVzZXItc2VsZWN0Om5vbmU7IHVzZXItc2VsZWN0Om5vbmU7IGJvcmRlci1yYWRpdXM6NHB4OyB9IC5sYXp5bG9hZHsgdmlzaWJpbGl0eTpoaWRkZW47IH0gLmdib3ggeyBib3JkZXItcmFkaXVzOjVweDsgYm94LXNoYWRvdzowIDAgMTBweCAxcHggcmdiYSgwLDAsMCwwLjIpOyB9IC5wZCB7IHRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7IGZvbnQtc2l6ZTowLjVlbTsgdmVydGljYWwtYWxpZ246c3VwZXI7IH0gLnVpLWxvYWRlci1iYWNrZ3JvdW5keyB3aWR0aDoxMDAlOyBoZWlnaHQ6MTAwJTsgdG9wOjA7IHBhZGRpbmc6MDsgbWFyZ2luOjA7IGJhY2tncm91bmQ6cmdiYSgwLCAwLCAwLCAwLjMpOyBkaXNwbGF5Om5vbmU7IHBvc2l0aW9uOmZpeGVkOyB6LWluZGV4OjEwMDAwMDAwMDsgfSAudWktbG9hZGVyLWJhY2tncm91bmQtZ2lmeyBwb3NpdGlvbjphYnNvbHV0ZTsgdG9wOjUwJTsgbGVmdDo1MCU7IH0gLmQyY0Zvb3RlckNvb2tpZURlbGV0ZVRpdGxlIHsgZm9udC1zaXplOjEuM2VtOyB9IC5kMmNGb290ZXJDb29raWVEZWxldGVUZXh0IHsgbWFyZ2luLXRvcDozMHB4OyB9IC5tb250aGx5UGF5bWVudHNQb3B1cENvbnRhaW5lcl9idG57IGJhY2tncm91bmQ6I2ViMDAwMDsgY29sb3I6I2ZmZmZmZjsgcGFkZGluZzoxMHB4IDIwcHggMTBweCAyMHB4OyBkaXNwbGF5OmlubGluZS1ibG9jazsgfSAubW9udGhseVBheW1lbnRzUG9wdXBDb250YWluZXJfYnRuIHNwYW57IGJhY2tncm91bmQ6I2ViMDAwMDsgY29sb3I6I2ZmZmZmZjsgfSAjbW9udGhseVBheW1lbnRzUG9wdXBDb250YWluZXJfc21zeyBiYWNrZ3JvdW5kOiNlYjAwMDA7IGNvbG9yOiNmZmZmZmY7IH0gI21vbnRobHlQYXltZW50c1BvcHVwQ29udGFpbmVyX3NtcyBzcGFueyBiYWNrZ3JvdW5kOiNlYjAwMDA7IGNvbG9yOiNmZmZmZmY7IH0gLmJsYWNrQ29sb3JCb2xkeyBjb2xvcjojMDAwIWltcG9ydGFudDsgZm9udC13ZWlnaHQ6NzAwIWltcG9ydGFudDsgZm9udC1zaXplOjFyZW0gIWltcG9ydGFudDsgfSAuZmxleC1jZW50ZXIgLnJlc3BvbnNpdmUtZWRpdG9yIHsgZmxleC1ncm93OjE7IH0gLnJldmVhbC1tb2RhbHsgYm94LXNpemluZzpjb250ZW50LWJveDsgfSAuZ20tc3R5bGUtaXctZCB7IHBhZGRpbmctdG9wOjEycHg7IG1hcmdpbi1yaWdodDotMjRweDsgfSAuZ20tc3R5bGUgLmdtLXN0eWxlLWl3LWMgeyBmbGV4LWRpcmVjdGlvbjpyb3ctcmV2ZXJzZTsgfSAuZ3JlY2FwdGNoYS1iYWRnZSB7IHZpc2liaWxpdHk6aGlkZGVuICFpbXBvcnRhbnQ7IH0gLnJlY2FwdGNoYS1kaXNjbGFpbWVyIHsgZm9udC1zaXplOjAuNjg4cmVtIDsgY29sb3I6Izc3NzsgdGV4dC1hbGlnbjpjZW50ZXI7IG1hcmdpbjo4cHggMDsgbGluZS1oZWlnaHQ6MS4zOyB9Ci8qKiAvY3NzL2Jhc2UuY3NzICoqLwpzdGFjay1sYywgLnN0YWNrLWxjIHsgLS1zcGFjZTp2YXIoLS1zLCAwLjVyZW0pOyBkaXNwbGF5OmZsZXg7IGZsZXgtZGlyZWN0aW9uOmNvbHVtbjsganVzdGlmeS1jb250ZW50OmZsZXgtc3RhcnQ7IH0gc3RhY2stbGMgPiAqLCAuc3RhY2stbGMgPiAqIHsgbWFyZ2luLXRvcDowOyBtYXJnaW4tYm90dG9tOjA7IH0gc3RhY2stbGMgPiAqICsgKiwgLnN0YWNrLWxjID4gKiArICogeyBtYXJnaW4tdG9wOnZhcigtLXNwYWNlKTsgfSBzdGFjay1sYy4tLXMwID4gKiArICosIC5zdGFjay1sYy4tLXMwID4gKiArICogeyBib3JkZXItd2lkdGg6MDsgYm9yZGVyLXRvcC13aWR0aDp2YXIoLS1ib3JkZXItdGhpbik7IGJvcmRlci1jb2xvcjppbmhlcml0OyB9IC5ib3gtbGMsIGJveC1sYyB7IC0tc3BhY2U6dmFyKC0tcywgMC41cmVtKTsgZGlzcGxheTpibG9jazsgcGFkZGluZzp2YXIoLS1zcGFjZSk7IG91dGxpbmU6dmFyKC0tYm9yZGVyLXRoaW4pIHRyYW5zcGFyZW50OyBvdXRsaW5lLW9mZnNldDpjYWxjKHZhcigtLWJvcmRlci10aGluKSAqIC0xKTsgfSAuYm94LWxjLCBib3gtbGMgKiB7IGNvbG9yOmluaGVyaXQ7IH0gLmJnLWJveHsgY29sb3I6dmFyKC0tYmxhY2spOyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXdoaXRlKTsgYm9yZGVyLXdpZHRoOnZhcigtLWJvcmRlci10aGluKTsgfSAuZ2xhc3MtYm94eyBib3JkZXI6bm9uZTsgYmFja2dyb3VuZDpub25lOyBiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50OyBjb2xvcjppbmhlcml0OyB9IC5jdHItYm94LCAuZmxleC1ib3gsIC5mbGV4LWNvbHVtbiwgLmZsZXgtYXJvdW5kLCAuZmxleC1iZXR3ZWVuLCAuZmxleC1ldmVubHksIC5mbGV4LWNlbnRlciwgLmZsZXgtc3RhcnQsIC5mbGV4LWVuZCwgLmZsZXgtYXV0bywgLmZsZXgtZXF1YWx7IGRpc3BsYXk6ZmxleDsgfSAuaW5saW5lLWJveHsgZGlzcGxheTppbmxpbmUtYmxvY2s7IH0gLnNoYWRvdy1ib3h7IGJveC1zaGFkb3c6MCAwIDEwcHggMnB4IHZhcigtLW1pZC1ncmF5KTsgYm9yZGVyLWNvbG9yOnZhcigtLWxpZ2h0LWdyYXkpOyB9IC5mbGV4LWJveDpub3QoOmlzKC5mbGV4LWJldHdlZW4sLmZsZXgtZXZlbmx5LC5mbGV4LWFyb3VuZCkpID4gKiArICp7IG1hcmdpbi1sZWZ0OnZhcigtLXMpOyB9IC5ncm91cC1sYywgZ3JvdXAtbGMgeyAtLXNwYWNlOnZhcigtLXMsIDAuNXJlbSk7IH0gLmdyb3VwLWxjID4gKiwgZ3JvdXAtbGMgPiAqIHsgZGlzcGxheTpmbGV4OyBmbGV4LXdyYXA6d3JhcDsganVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47IGFsaWduLWl0ZW1zOmNlbnRlcjsgbWFyZ2luOmNhbGModmFyKC0tc3BhY2UpIC8gMiAqIC0xKTsgfSAuZ3JvdXAtbGMgPiAqID4gKiwgZ3JvdXAtbGMgPiAqID4gKiB7IG1hcmdpbjpjYWxjKHZhcigtLXNwYWNlKSAvIDIpOyB9IDppcyguc2lkZWJhci1sYyxzaWRlYmFyLWxjKSB7IG92ZXJmbG93OmhpZGRlbjsgfSA6aXMoLnNpZGViYXItbGMsc2lkZWJhci1sYykgPiAqIHsgLS1zcGFjZTp2YXIoLS1zLCAwLjVyZW0pOyBkaXNwbGF5OmZsZXg7IGZsZXgtd3JhcDp3cmFwOyBtYXJnaW46Y2FsYyh2YXIoLS1zcGFjZSkgLyAyICogLTEpOyB9IDppcyguc2lkZWJhci1sYyxzaWRlYmFyLWxjKSA+ICogPiAqIHsgbWFyZ2luOmNhbGModmFyKC0tc3BhY2UpIC8gMik7IGZsZXgtZ3JvdzoxOyB9IDppcyguc2lkZWJhci1sYyxzaWRlYmFyLWxjKSA+ICogPiA6Zmlyc3QtY2hpbGQgeyBmbGV4LWJhc2lzOjA7IGZsZXgtZ3Jvdzo5OTk7IG1pbi13aWR0aDpjYWxjKHZhcigtLXNpZGViYXItYnAsIDUwJSkgLSB2YXIoLS1zcGFjZSkpOyB9IDppcyguc3dpdGNoZXItbGMsc3dpdGNoZXItbGMpID4gKiB7IC0tc3BhY2U6dmFyKC0tcywgMC41cmVtKTsgZGlzcGxheTpmbGV4OyBmbGV4LXdyYXA6d3JhcDsgbWFyZ2luOmNhbGMoKHZhcigtLXNwYWNlKSAvIDIpICogLTEpOyB9IDppcyguc3dpdGNoZXItbGMsc3dpdGNoZXItbGMpID4gKiA+ICogeyBmbGV4LWdyb3c6MTsgZmxleC1iYXNpczpjYWxjKCh2YXIoLS1zd2l0Y2gtYnAsIDMwcmVtKSAtICgxMDAlIC0gdmFyKC0tc3BhY2UpKSkgKiA5OTkpOyBtYXJnaW46Y2FsYyh2YXIoLS1zcGFjZSkgLyAyKTsgfSA6aXMoLnN3aXRjaGVyLWxjLHN3aXRjaGVyLWxjKSA+ICogPiA6bnRoLWxhc3QtY2hpbGQobis1KSwgOmlzKC5zd2l0Y2hlci1sYyxzd2l0Y2hlci1sYykgPiAqID4gOm50aC1sYXN0LWNoaWxkKG4rNSkgfiAqIHsgZmxleC1iYXNpczoxMDAlOyB9IC4tLXMwey0tc3BhY2U6dmFyKC0tczApO30gLi0tcy05ey0tc3BhY2U6dmFyKC0tcy05KTt9IC4tLXMtOHstLXNwYWNlOnZhcigtLXMtOCk7fSAuLS1zLTd7LS1zcGFjZTp2YXIoLS1zLTcpO30gLi0tcy02ey0tc3BhY2U6dmFyKC0tcy02KTt9IC4tLXMtNXstLXNwYWNlOnZhcigtLXMtNSk7fSAuLS1zLTR7LS1zcGFjZTp2YXIoLS1zLTQpO30gLi0tcy0zey0tc3BhY2U6dmFyKC0tcy0zKTt9IC4tLXMtMnstLXNwYWNlOnZhcigtLXMtMik7fSAuLS1zLTF7LS1zcGFjZTp2YXIoLS1zLTEpO30gLi0tc3stLXNwYWNlOnZhcigtLXMpO30gLi0tczF7LS1zcGFjZTp2YXIoLS1zMSk7fSAuLS1zMnstLXNwYWNlOnZhcigtLXMyKTt9IC4tLXMzey0tc3BhY2U6dmFyKC0tczMpO30gLi0tczR7LS1zcGFjZTp2YXIoLS1zNCk7fSAuLS1zNXstLXNwYWNlOnZhcigtLXM1KTt9IC4tLXM2ey0tc3BhY2U6dmFyKC0tczYpO30gLi0tczd7LS1zcGFjZTp2YXIoLS1zNyk7fSAuLS1zOHstLXNwYWNlOnZhcigtLXM4KTt9IC4tLXM5ey0tc3BhY2U6dmFyKC0tczkpO30gLi0tZnMtOXtmb250LXNpemU6dmFyKC0tZnMtOSk7LS1mczp2YXIoLS1mcy05KTt9IC4tLWZzLTh7Zm9udC1zaXplOnZhcigtLWZzLTgpOy0tZnM6dmFyKC0tZnMtOCk7fSAuLS1mcy03e2ZvbnQtc2l6ZTp2YXIoLS1mcy03KTstLWZzOnZhcigtLWZzLTcpO30gLi0tZnMtNntmb250LXNpemU6dmFyKC0tZnMtNik7LS1mczp2YXIoLS1mcy02KTt9IC4tLWZzLTV7Zm9udC1zaXplOnZhcigtLWZzLTUpOy0tZnM6dmFyKC0tZnMtNSk7fSAuLS1mcy00e2ZvbnQtc2l6ZTp2YXIoLS1mcy00KTstLWZzOnZhcigtLWZzLTQpO30gLi0tZnMtM3tmb250LXNpemU6dmFyKC0tZnMtMyk7LS1mczp2YXIoLS1mcy0zKTt9IC4tLWZzLTJ7Zm9udC1zaXplOnZhcigtLWZzLTIpOy0tZnM6dmFyKC0tZnMtMik7fSAuLS1mcy0xe2ZvbnQtc2l6ZTp2YXIoLS1mcy0xKTstLWZzOnZhcigtLWZzLTEpO30gLi0tZnMwe2ZvbnQtc2l6ZTp2YXIoLS1mczApOy0tZnM6dmFyKC0tZnMwKTt9IC4tLWZzMXtmb250LXNpemU6dmFyKC0tZnMxKTstLWZzOnZhcigtLWZzMSk7fSAuLS1mczJ7Zm9udC1zaXplOnZhcigtLWZzMik7LS1mczp2YXIoLS1mczIpO30gLi0tZnMze2ZvbnQtc2l6ZTp2YXIoLS1mczMpOy0tZnM6dmFyKC0tZnMzKTt9IC4tLWZzNHtmb250LXNpemU6dmFyKC0tZnM0KTstLWZzOnZhcigtLWZzNCk7fSAuLS1mczV7Zm9udC1zaXplOnZhcigtLWZzNSk7LS1mczp2YXIoLS1mczUpO30gLi0tZnM2e2ZvbnQtc2l6ZTp2YXIoLS1mczYpOy0tZnM6dmFyKC0tZnM2KTt9IC4tLWZzN3tmb250LXNpemU6dmFyKC0tZnM3KTstLWZzOnZhcigtLWZzNyk7fSAuLS1mczh7Zm9udC1zaXplOnZhcigtLWZzOCk7LS1mczp2YXIoLS1mczgpO30gLi0tZnM5e2ZvbnQtc2l6ZTp2YXIoLS1mczkpOy0tZnM6dmFyKC0tZnM5KTt9IC5zaHJpbmstZ3Jvd3tmbGV4OjEgMTt9IC5mbGV4LXdyYXAge2ZsZXgtd3JhcDp3cmFwO30gLmZsZXgtcmV2ZXJzZSB7ZmxleC1kaXJlY3Rpb246cm93LXJldmVyc2U7fSAuZmxleC1hdXRvID4gKntmbGV4OjEgMSBhdXRvO30gLmZsZXgtZXF1YWwgPiAqe2ZsZXg6MSAxO30gLmFsaWduLWNlbnRlciB7YWxpZ24taXRlbXM6Y2VudGVyO30gLmFsaWduLXN0YXJ0e2FsaWduLWl0ZW1zOmZsZXgtc3RhcnQ7fSAuYWxpZ24tZW5ke2FsaWduLWl0ZW1zOmZsZXgtZW5kO30gLmFsaWduLWJhc2VsaW5le2FsaWduLWl0ZW1zOmJhc2VsaW5lO30gLmZsZXgtY29sdW1uIHtmbGV4LWZsb3c6Y29sdW1uO30gLmZsZXgtcm93IHtmbGV4LWZsb3c6cm93O30gLmZsZXgtYXJvdW5ke2p1c3RpZnktY29udGVudDpzcGFjZS1hcm91bmQ7fSAuZmxleC1iZXR3ZWVue2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO30gLmZsZXgtZXZlbmx5e2p1c3RpZnktY29udGVudDpzcGFjZS1ldmVubHk7fSAuZmxleC1jZW50ZXJ7anVzdGlmeS1jb250ZW50OmNlbnRlcjt9IC5mbGV4LXN0YXJ0e2p1c3RpZnktY29udGVudDpmbGV4LXN0YXJ0O30gLmZsZXgtZW5ke2p1c3RpZnktY29udGVudDpmbGV4LWVuZDt9IC4tcDAge3BhZGRpbmc6MDt9IC4tcHQwIHtwYWRkaW5nLXRvcDowO30gLi1wYjAge3BhZGRpbmctYm90dG9tOjA7fSAuLXB2MCB7cGFkZGluZy10b3A6MDtwYWRkaW5nLWJvdHRvbTowfSAuLXBoMCB7cGFkZGluZy1sZWZ0OjA7cGFkZGluZy1yaWdodDowfSAuLXAge3BhZGRpbmc6dmFyKC0tc3BhY2UpO30gLi1wdntwYWRkaW5nLXRvcDp2YXIoLS1zcGFjZSk7IHBhZGRpbmctYm90dG9tOnZhcigtLXNwYWNlKTt9IC4tcGh7cGFkZGluZy1sZWZ0OnZhcigtLXNwYWNlKTsgcGFkZGluZy1yaWdodDp2YXIoLS1zcGFjZSk7fSAuLXB0e3BhZGRpbmctdG9wOnZhcigtLXNwYWNlKTt9IC4tcGJ7cGFkZGluZy1ib3R0b206dmFyKC0tc3BhY2UpO30gLi1tMCB7bWFyZ2luOjA7fSAuLW10MCB7bWFyZ2luLXRvcDowO30gLi1tYjAge21hcmdpbi1ib3R0b206MDt9IC4tbXYwIHttYXJnaW4tdG9wOjA7bWFyZ2luLWJvdHRvbTowfSAuLW1oMCB7bWFyZ2luLWxlZnQ6MDttYXJnaW4tcmlnaHQ6MH0gLi1tIHttYXJnaW46dmFyKC0tc3BhY2UpO30gLi1tdnttYXJnaW4tdG9wOnZhcigtLXNwYWNlKTsgbWFyZ2luLWJvdHRvbTp2YXIoLS1zcGFjZSk7fSAuLW1oe21hcmdpbi1sZWZ0OnZhcigtLXNwYWNlKTsgbWFyZ2luLXJpZ2h0OnZhcigtLXNwYWNlKTt9IC4tbXR7bWFyZ2luLXRvcDp2YXIoLS1zcGFjZSk7fSAuLW1ie21hcmdpbi1ib3R0b206dmFyKC0tc3BhY2UpO30gLi1iMCB7Ym9yZGVyOm5vbmU7fSAuLWIyIHtib3JkZXItd2lkdGg6MnB4O30gLi1ie2JvcmRlci13aWR0aDoxcHg7fSAuLWJ0e2JvcmRlci10b3Atd2lkdGg6MXB4O30gLi1iYntib3JkZXItYm90dG9tLXdpZHRoOjFweDt9IC4tYnZ7Ym9yZGVyLXRvcC13aWR0aDoxcHg7Ym9yZGVyLWJvdHRvbS13aWR0aDoxcHg7fSAuLWJoe2JvcmRlci1sZWZ0LXdpZHRoOjFweDtib3JkZXItcmlnaHQtd2lkdGg6MXB4O30gLi13LWZ1bGwge3dpZHRoOjEwMHZ3O30gLi13LTEwMCB7d2lkdGg6MTAwJTt9IC4tdy01MCB7d2lkdGg6NTAlO30gLi13LTMzIHt3aWR0aDozMy4zMyU7fSAuLXctMjUge3dpZHRoOjI1JTt9IC4tdy01MHcge3dpZHRoOjUwdnc7fSAuLWZzLXh4c3tmb250LXNpemU6MC4xNXJlbTsgLS1mczowLjE1cmVtO30gLi1mcy14c3tmb250LXNpemU6MC41cmVtOyAtLWZzOjAuNXJlbTt9IC4tZnMtc3tmb250LXNpemU6MC43NXJlbTsgLS1mczowLjc1cmVtO30gLi1mcy1zcntmb250LXNpemU6MC45cmVtOyAtLWZzOjAuOXJlbTt9IC4tZnMtbHJ7Zm9udC1zaXplOjEuMXJlbTsgLS1mczoxLjFyZW07fSAuLWZzLWx7Zm9udC1zaXplOjEuMjVyZW07IC0tZnM6MS4yNXJlbTt9IC4tZnMteGx7Zm9udC1zaXplOjEuNXJlbTsgLS1mczoxLjVyZW07fSAuLWZzLXh4bHtmb250LXNpemU6MnJlbTsgLS1mczoycmVtO30gLi1mcy14eHhse2ZvbnQtc2l6ZToyLjI1cmVtOyAtLWZzOjIuMjVyZW07fSAuLWZ3MSB7Zm9udC13ZWlnaHQ6MTAwO30gLi1mdzIge2ZvbnQtd2VpZ2h0OjIwMDt9IC4tZnczIHtmb250LXdlaWdodDozMDA7fSAuLWZ3NCB7Zm9udC13ZWlnaHQ6NDAwO30gLi1mdzUge2ZvbnQtd2VpZ2h0OjUwMDt9IC4tZnc2IHtmb250LXdlaWdodDo2MDA7fSAuLWZ3NyB7Zm9udC13ZWlnaHQ6NzAwO30gLi1mdzgge2ZvbnQtd2VpZ2h0OjgwMDt9IC4tZnc5IHtmb250LXdlaWdodDo5MDA7fSAuLWJvbGQge2ZvbnQtd2VpZ2h0OmJvbGQ7fSAudHh0LXJlZCB7Y29sb3I6I2NjMDAwMDt9IC50eHQtY2VudGVye3RleHQtYWxpZ246Y2VudGVyO30gLnR4dC1yaWdodHt0ZXh0LWFsaWduOnJpZ2h0O30gLnR4dC1sZWZ0e3RleHQtYWxpZ246bGVmdDt9IC50eHQtdXBwZXJ7dGV4dC10cmFuc2Zvcm06dmFyKC0tY2VydC10eHQtdHJhbnNmb3JtLCB2YXIoLS10eHQtdXBwZXIsIHVwcGVyY2FzZSkpO30gLnR4dC1ub3Rle2ZvbnQtc3R5bGU6aXRhbGljO30gLnR4dC1wYXltZW50IHtjb2xvcjp2YXIoLS1uZXd2ZHAtYmVzdHByaWNlLXRleHQtY29sb3ItcHJpY2UpICFpbXBvcnRhbnQ7fSAuLXBvc3JlbHtwb3NpdGlvbjpyZWxhdGl2ZTt9IC5jZXJ0LXR4dC10cmFuc2Zvcm17dGV4dC10cmFuc2Zvcm06dmFyKC0tY2VydC10eHQtdHJhbnNmb3JtLCBub25lKTt9IFtoaWRkZW5dLCAuaGlkZGVuIHsgZGlzcGxheTpub25lICFpbXBvcnRhbnQ7IH0gLnNrZWxldG9uLXNsaWRlciA+ICp7IGRpc3BsYXk6bm9uZTsgfSAuc2tlbGV0b24tdHh0eyB0ZXh0LWluZGVudDoxMDAlOyB3aGl0ZS1zcGFjZTpub3dyYXA7IG92ZXJmbG93OmhpZGRlbjsgYmFja2dyb3VuZC1jb2xvcjpyZ2JhKDIyMSwgMjIxLCAyMjEsIDAuOCk7IGJvcmRlci1yYWRpdXM6MC41cmVtOyB9IC5za2VsZXRvbi1idG57IHdpZHRoOm1pbigyMHJlbSwxMDAlKTsgaGVpZ2h0OjIuNXJlbTsgYm9yZGVyLXJhZGl1czowLjVyZW07IGJhY2tncm91bmQtY29sb3I6cmdiYSgyMjEsIDIyMSwgMjIxLCAwLjgpOyBtYXJnaW46YXV0bzsgfSAuc2tlbGV0b24tYmxvY2t7IHdpZHRoOjEwMCU7IGhlaWdodDoxMDAlOyBiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjIxLCAyMjEsIDIyMSwgMC44KTsgfSAuc2tlbGV0b24tc2xpZGVyLCAuc2tlbGV0b24tdHh0LCAuc2tlbGV0b24tYnRuLCAuc2tlbGV0b24tYmxvY2sgeyBwb3NpdGlvbjpyZWxhdGl2ZTsgb3ZlcmZsb3c6aGlkZGVuOyBkaXNwbGF5OmJsb2NrOyB9IC5za2VsZXRvbi1zbGlkZXI6OmFmdGVyLCAuc2tlbGV0b24tdHh0OjphZnRlciwgLnNrZWxldG9uLWJ0bjo6YWZ0ZXIsIC5za2VsZXRvbi1ibG9jazo6YWZ0ZXIgeyBjb250ZW50OiIiOyBwb3NpdGlvbjphYnNvbHV0ZTsgdG9wOjA7IHJpZ2h0OjA7IGJvdHRvbTowOyBsZWZ0OjA7IHRyYW5zZm9ybTp0cmFuc2xhdGVYKC0xMDAlKTsgYmFja2dyb3VuZC1pbWFnZTpsaW5lYXItZ3JhZGllbnQoOTBkZWcsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMCkgMCwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIpIDIwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpIDYwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwKSk7IGFuaW1hdGlvbjpzaGltbWVyIDJzIGluZmluaXRlOyB9IC5za2VsZXRvbi1zbGlkZXIgeyBiYWNrZ3JvdW5kLWltYWdlOnVybCgiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCA1MTIgNTEyJyUzRSUzQ3BhdGggZD0nTTQ2NCA0NDhINDhjLTI2LjUxIDAtNDgtMjEuNDktNDgtNDhWMTEyYzAtMjYuNTEgMjEuNDktNDggNDgtNDhoNDE2YzI2LjUxIDAgNDggMjEuNDkgNDggNDh2Mjg4YzAgMjYuNTEtMjEuNDkgNDgtNDggNDh6TTExMiAxMjBjLTMwLjkyOCAwLTU2IDI1LjA3Mi01NiA1NnMyNS4wNzIgNTYgNTYgNTYgNTYtMjUuMDcyIDU2LTU2LTI1LjA3Mi01Ni01Ni01NnpNNjQgMzg0aDM4NFYyNzJsLTg3LjUxNS04Ny41MTVjLTQuNjg2LTQuNjg2LTEyLjI4NC00LjY4Ni0xNi45NzEgMEwyMDggMzIwbC01NS41MTUtNTUuNTE1Yy00LjY4Ni00LjY4Ni0xMi4yODQtNC42ODYtMTYuOTcxIDBMNjQgMzM2djQ4eicgZmlsbD0nJTIzZWVlJy8lM0UlM0Mvc3ZnJTNFIik7IGJhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDsgYmFja2dyb3VuZC1wb3NpdGlvbjpjZW50ZXI7IGJhY2tncm91bmQtY29sb3I6I2NjYzsgb3BhY2l0eTowLjk7IH0gQGtleWZyYW1lcyBzaGltbWVyIHsgMTAwJSB7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoMTAwJSk7fSB9IEBzdXBwb3J0cyAoLXdlYmtpdC10b3VjaC1jYWxsb3V0Om5vbmUpIHsgLnNrZWxldG9uLXNsaWRlcjo6YWZ0ZXIsIC5za2VsZXRvbi10eHQ6OmFmdGVyeyBhbmltYXRpb246bm9uZTsgfSB9IC5jb250ZW50LXNrZWxldG9uIHsgYmFja2dyb3VuZDojZWVlOyBib3JkZXItcmFkaXVzOjAuNXJlbTsgb3ZlcmZsb3c6aGlkZGVuOyB3aWR0aDoxMDAlOyBoZWlnaHQ6MTAwJTsgbWF4LXdpZHRoOjQwMHB4OyBwb3NpdGlvbjpyZWxhdGl2ZTsgfSAuY29udGVudC1za2VsZXRvbi5yZWN0YW5nbGUgeyBhc3BlY3QtcmF0aW86dmFyKC0tcmF0aW8sIDE2LzkpOyB9IC5jb250ZW50LXNrZWxldG9uLnRleHQgeyBoZWlnaHQ6YXV0bzsgcGFkZGluZzoxcmVtOyB9IC5jb250ZW50LXNrZWxldG9uLnRleHQ6OmJlZm9yZSwgLmNvbnRlbnQtc2tlbGV0b24udGV4dDo6YWZ0ZXIgeyBjb250ZW50OiIiOyBkaXNwbGF5OmJsb2NrOyBoZWlnaHQ6MXJlbTsgYmFja2dyb3VuZDojZGRkOyBtYXJnaW4tYm90dG9tOjAuNXJlbTsgYm9yZGVyLXJhZGl1czowLjI1cmVtOyB9IC5jb250ZW50LXNrZWxldG9uLnRleHQ6OmFmdGVyIHsgd2lkdGg6NzAlOyB9IC5jb250ZW50LXNrZWxldG9uLmFjdGl2ZSB7IGJhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDkwZGVnLCAjZjlmOWY5IDI1JSwgI2RlZGVkZSA1MCUsICNmOWY5ZjkgNzUlKTsgYmFja2dyb3VuZC1zaXplOjIwMCUgMTAwJTsgYW5pbWF0aW9uOnNoaW1tZXIgMnMgaW5maW5pdGUgbGluZWFyOyB9IEBrZXlmcmFtZXMgc2hpbW1lciB7IDAlIHsgYmFja2dyb3VuZC1wb3NpdGlvbjoyMDAlIDA7IH0gMTAwJSB7IGJhY2tncm91bmQtcG9zaXRpb246LTIwMCUgMDsgfSB9IC5jb250ZW50LXNrZWxldG9uLmRlYnVnOjphZnRlciB7IGNvbnRlbnQ6YXR0cihkYXRhLWJsb2NrKSAiIHwgIiBhdHRyKGRhdGEtc291cmNlKSAiIHwgIiBhdHRyKGRhdGEtZ2VuZXJhdGVkLWF0KTsgcG9zaXRpb246YWJzb2x1dGU7IHRvcDo0cHg7IGxlZnQ6NHB4OyByaWdodDo0cHg7IGZvbnQtc2l6ZTowLjdyZW07IGZvbnQtZmFtaWx5Om1vbm9zcGFjZSwgc2Fucy1zZXJpZjsgY29sb3I6I2ZmZjsgYmFja2dyb3VuZDpyZ2JhKDAsMCwwLDAuNik7IHBhZGRpbmc6MnB4IDRweDsgYm9yZGVyLXJhZGl1czo0cHg7IHotaW5kZXg6MTA7IHBvaW50ZXItZXZlbnRzOm5vbmU7IH0gYm9keSB7IHdpZHRoOmF1dG87IG1hcmdpbjowOyBwYWRkaW5nOjA7IGZvbnQtc2l6ZToxcmVtOyBmb250LWZhbWlseTp2YXIoLS1mb250LXRleHQtbW9iKTsgY29sb3I6dmFyKC0tZGVmYXVsdC1ibGFjayk7IGZvbnQtd2VpZ2h0OnZhcigtLWZvbnQtdGV4dC13ZWlnaHQpOyB9IHVsIHsgbGlzdC1zdHlsZTpub25lOyBsaXN0LXN0eWxlLXR5cGU6bm9uZTsgbGlzdC1zdHlsZS1wb3NpdGlvbjppbml0aWFsOyBsaXN0LXN0eWxlLWltYWdlOmluaXRpYWw7IH0gLnJlc3BvbnNpdmUtZWRpdG9yIHVsIHsgbGlzdC1zdHlsZTppbmhlcml0OyBsaXN0LXN0eWxlLXR5cGU6aW5oZXJpdDsgbGlzdC1zdHlsZS1wb3NpdGlvbjppbmhlcml0OyBsaXN0LXN0eWxlLWltYWdlOmluaGVyaXQ7IH0gc3ZnLCBzdmcuaWNvbnsgLS1pY29uLXNpemU6Y2FsYyh2YXIoLS1mcywgdmFyKC0tZnMwKSkgLyB2YXIoLS1yYXRpbykpOyBmaWxsOnZhcigtLXR4dC1jb2xvciwgdmFyKC0tYmxhY2spKTsgd2lkdGg6dmFyKC0taWNvbi1zaXplKTsgaGVpZ2h0OnZhcigtLWljb24tc2l6ZSk7IH0gc3ZnLmF1dGhvcml6ZWQtYmxhY2t7ZmlsbDojMjgyODI4IWltcG9ydGFudDt9IHN2Zy5hdXRob3JpemVkLWJsYWNrLWtpYXtmaWxsOiMwNTE0MUYhaW1wb3J0YW50O30gc3ZnLmF1dGhvcml6ZWQtcmVke2ZpbGw6I0ZGMDAwMCFpbXBvcnRhbnQ7fSBzdmcuYXV0aG9yaXplZC13aGl0ZXtmaWxsOiNGRkZGRkYhaW1wb3J0YW50O30gLmF1dGhvcml6ZWQtcmVkLXdoaXRlLXBsYXktYnRue2JhY2tncm91bmQ6cmFkaWFsLWdyYWRpZW50KCNGRkZGRkYgNTAlLHRyYW5zcGFyZW50IDUwJSk7fSBzdmcub2djb2xvci1mYWNlYm9va3tmaWxsOiM0MjY3QjIhaW1wb3J0YW50O30gc3ZnLm9nY29sb3ItdHdpdHRlcntmaWxsOiMxREExRjIhaW1wb3J0YW50O30gc3ZnLm9nY29sb3IteC10d2l0dGVye2ZpbGw6IzE0MTcxQSFpbXBvcnRhbnQ7fSBzdmcub2djb2xvci14LXR3aXR0ZXItd2hpdGV7ZmlsbDojRkZGRkZGIWltcG9ydGFudDt9IHN2Zy5vZ2NvbG9yLWxpbmtlZGlue2ZpbGw6IzAwNzdCNSFpbXBvcnRhbnQ7fSBzdmcub2djb2xvci1ibG9nZ2Vye2ZpbGw6I0ZGNTcyMiFpbXBvcnRhbnQ7fSBzdmcub2djb2xvci1waW50ZXJlc3R7ZmlsbDojRTYwMDIzIWltcG9ydGFudDt9IHN2Zy5vZ2NvbG9yLXlvdXR1YmV7ZmlsbDojRkYwMDAwIWltcG9ydGFudDsgYmFja2dyb3VuZDpyYWRpYWwtZ3JhZGllbnQoI0ZGRkZGRiA1MCUsdHJhbnNwYXJlbnQgNTAlKTt9IHN2Zy5vZ2NvbG9yLWluc3RhZ3JhbXtmaWxsOiM4MzNBQjQhaW1wb3J0YW50O30gc3ZnLm9nY29sb3ItdGlrdG9re2ZpbGw6I2ZmMDA1MCFpbXBvcnRhbnQ7fSAuZmFjZWJvb2stb2dpY29uLXR3ZWFrc3toZWlnaHQ6MjRweCFpbXBvcnRhbnQ7bWFyZ2luLXRvcDoycHghaW1wb3J0YW50O30gI2Zvb3RlciAuZmFjZWJvb2stb2dpY29uLXR3ZWFrc3toZWlnaHQ6MjNweCFpbXBvcnRhbnQ7bWFyZ2luLXRvcDowcHghaW1wb3J0YW50O30gLmluc3RhZ3JhbS1vZ2ljb24tdHdlYWtze2hlaWdodDoyOHB4IWltcG9ydGFudDttYXJnaW4tdG9wOjBweCFpbXBvcnRhbnQ7fSAjZm9vdGVyIC5pbnN0YWdyYW0tb2dpY29uLXR3ZWFrc3toZWlnaHQ6MjlweCFpbXBvcnRhbnQ7bWFyZ2luLXRvcDotNHB4IWltcG9ydGFudDt9IHN2Zy5jdXN0b21tZWRpYS1jb2xvcnBpY2tlcntmaWxsOnZhcigtLWFkbWluLXNvY2lhbC1jdXN0b20tY29sb3ItcGlja2VyLXRleHQpIWltcG9ydGFudDt9IC5zb2NpYWwtbWVkaWFfX2NvbnRhaW5lciAuYmctYXV0aG9yaXplZC1ibGFja3tiYWNrZ3JvdW5kLWNvbG9yOiMyODI4MjghaW1wb3J0YW50O30gLnNvY2lhbC1tZWRpYV9fY29udGFpbmVyIC5iZy1hdXRob3JpemVkLWJsYWNrLWtpYXtiYWNrZ3JvdW5kLWNvbG9yOiMwNTE0MUYhaW1wb3J0YW50O30gLnNvY2lhbC1tZWRpYV9fY29udGFpbmVyIC5iZy1hdXRob3JpemVkLXJlZHtiYWNrZ3JvdW5kLWNvbG9yOiNGRjAwMDAhaW1wb3J0YW50O30gLnNvY2lhbC1tZWRpYV9fY29udGFpbmVyIC5iZy1hdXRob3JpemVkLXdoaXRle2JhY2tncm91bmQtY29sb3I6I0ZGRkZGRiFpbXBvcnRhbnQ7fSAuc29jaWFsLW1lZGlhX19jb250YWluZXIgLmJnLW9nY29sb3ItZmFjZWJvb2t7YmFja2dyb3VuZC1jb2xvcjojM2E1OTk4IWltcG9ydGFudDt9IC5zb2NpYWwtbWVkaWFfX2NvbnRhaW5lciAuYmctb2djb2xvci10d2l0dGVye2JhY2tncm91bmQtY29sb3I6IzAwYWNlZCFpbXBvcnRhbnQ7fSAuc29jaWFsLW1lZGlhX19jb250YWluZXIgLmJnLW9nY29sb3IteC10d2l0dGVye2JhY2tncm91bmQtY29sb3I6IzE0MTcxQSFpbXBvcnRhbnQ7fSAuc29jaWFsLW1lZGlhX19jb250YWluZXIgLmJnLW9nY29sb3IteC10d2l0dGVyLXdoaXRle2JhY2tncm91bmQtY29sb3I6I0ZGRkZGRiFpbXBvcnRhbnQ7fSAuc29jaWFsLW1lZGlhX19jb250YWluZXIgLmJnLW9nY29sb3ItbGlua2VkaW57YmFja2dyb3VuZC1jb2xvcjojMDA3N0I1IWltcG9ydGFudDt9IC5zb2NpYWwtbWVkaWFfX2NvbnRhaW5lciAuYmctb2djb2xvci1ibG9nZ2Vye2JhY2tncm91bmQtY29sb3I6I0ZGNTcyMiFpbXBvcnRhbnQ7fSAuc29jaWFsLW1lZGlhX19jb250YWluZXIgLmJnLW9nY29sb3ItcGludGVyZXN0e2JhY2tncm91bmQtY29sb3I6I0U2MDAyMyFpbXBvcnRhbnQ7fSAuc29jaWFsLW1lZGlhX19jb250YWluZXIgLmJnLW9nY29sb3IteW91dHViZXtiYWNrZ3JvdW5kLWNvbG9yOiNGRjAwMDAhaW1wb3J0YW50O30gLnNvY2lhbC1tZWRpYV9fY29udGFpbmVyIC5iZy1vZ2NvbG9yLWluc3RhZ3JhbXtiYWNrZ3JvdW5kLWNvbG9yOiNmMjM5OTUhaW1wb3J0YW50O30gLnNvY2lhbC1tZWRpYV9fY29udGFpbmVyIC5iZy1vZ2NvbG9yLXRpa3Rva3tiYWNrZ3JvdW5kLWNvbG9yOiNmZjAwNTAhaW1wb3J0YW50O30gLnNvY2lhbC1tZWRpYV9fY29udGFpbmVyIC5iZy1jdXN0b21tZWRpYS1jb2xvcnBpY2tlcntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWFkbWluLXNvY2lhbC1jdXN0b20tY29sb3ItcGlja2VyLXRleHQpIWltcG9ydGFudDt9IC5zb2NpYWwtbWVkaWFfX2NvbnRhaW5lciAuYy1hdXRob3JpemVkLWJsYWNre2NvbG9yOiMyODI4MjghaW1wb3J0YW50O30gLnNvY2lhbC1tZWRpYV9fY29udGFpbmVyIC5jLWF1dGhvcml6ZWQtYmxhY2sta2lhe2NvbG9yOiMwNTE0MUYhaW1wb3J0YW50O30gLnNvY2lhbC1tZWRpYV9fY29udGFpbmVyIC5jLWF1dGhvcml6ZWQtcmVke2NvbG9yOiNGRjAwMDAhaW1wb3J0YW50O30gLnNvY2lhbC1tZWRpYV9fY29udGFpbmVyIC5jLWF1dGhvcml6ZWQtd2hpdGV7Y29sb3I6I0ZGRkZGRiFpbXBvcnRhbnQ7fSAuc29jaWFsLW1lZGlhX19jb250YWluZXIgLmMtb2djb2xvci1mYWNlYm9va3tjb2xvcjojM2E1OTk4IWltcG9ydGFudDt9IC5zb2NpYWwtbWVkaWFfX2NvbnRhaW5lciAuYy1vZ2NvbG9yLXR3aXR0ZXJ7Y29sb3I6IzAwYWNlZCFpbXBvcnRhbnQ7fSAuc29jaWFsLW1lZGlhX19jb250YWluZXIgLmMtb2djb2xvci14LXR3aXR0ZXJ7Y29sb3I6IzE0MTcxQSFpbXBvcnRhbnQ7fSAuc29jaWFsLW1lZGlhX19jb250YWluZXIgLmMtb2djb2xvci14LXR3aXR0ZXItd2hpdGV7Y29sb3I6I0ZGRkZGRiFpbXBvcnRhbnQ7fSAuc29jaWFsLW1lZGlhX19jb250YWluZXIgLmMtb2djb2xvci1saW5rZWRpbntjb2xvcjojMDA3N0I1IWltcG9ydGFudDt9IC5zb2NpYWwtbWVkaWFfX2NvbnRhaW5lciAuYy1vZ2NvbG9yLWJsb2dnZXJ7Y29sb3I6I0ZGNTcyMiFpbXBvcnRhbnQ7fSAuc29jaWFsLW1lZGlhX19jb250YWluZXIgLmMtb2djb2xvci1waW50ZXJlc3R7Y29sb3I6I0U2MDAyMyFpbXBvcnRhbnQ7fSAuc29jaWFsLW1lZGlhX19jb250YWluZXIgLmMtb2djb2xvci15b3V0dWJle2NvbG9yOiNGRjAwMDAhaW1wb3J0YW50OyBiYWNrZ3JvdW5kOnJhZGlhbC1ncmFkaWVudCgjRkZGRkZGIDUwJSx0cmFuc3BhcmVudCA1MCUpO30gLnNvY2lhbC1tZWRpYV9fY29udGFpbmVyIC5jLW9nY29sb3ItaW5zdGFncmFte2NvbG9yOiNmMjM5OTUhaW1wb3J0YW50O30gLnNvY2lhbC1tZWRpYV9fY29udGFpbmVyIC5jLW9nY29sb3ItdGlrdG9re2NvbG9yOiNmZjAwNTAhaW1wb3J0YW50O30gLnNvY2lhbC1tZWRpYV9fY29udGFpbmVyIC5jLWN1c3RvbW1lZGlhLWNvbG9ycGlja2Vye2NvbG9yOnZhcigtLWFkbWluLXNvY2lhbC1jdXN0b20tY29sb3ItcGlja2VyLXRleHQpIWltcG9ydGFudDt9IC5ub3RlLWJveHsgZGlzcGxheTpibG9jazsgYm9yZGVyLXJhZGl1czowLjI1cmVtOyB9IC5ub3RlLXN1Y2Nlc3N7IGNvbG9yOiMxNTU3MjQ7IGJhY2tncm91bmQtY29sb3I6I2Q0ZWRkYTsgYm9yZGVyLWNvbG9yOiMxNTU3MjQ7IGJvcmRlci13aWR0aDp2YXIoLS1ib3JkZXItdGhpbik7IH0gLm5vdGUtZXJyb3J7IGNvbG9yOiNmZmZmZmY7IGJhY2tncm91bmQtY29sb3I6I2ZmMDAwMDsgYm9yZGVyLWNvbG9yOiNmZjAwMDA7IGJvcmRlci13aWR0aDp2YXIoLS1ib3JkZXItdGhpbik7IH0gdWwuY2hlY2tsaXN0IGxpOmJlZm9yZXsgY29udGVudDoiIjsgYm9yZGVyLWxlZnQ6MC4ycmVtIHNvbGlkOyBib3JkZXItYm90dG9tOjAuMnJlbSBzb2xpZDsgd2lkdGg6MC43cmVtOyBoZWlnaHQ6MC40cmVtOyBkaXNwbGF5OmlubGluZS1ibG9jazsgdHJhbnNmb3JtOnJvdGF0ZSgtNDVkZWcpOyBtYXJnaW4tcmlnaHQ6MXJlbTsgfSB1bC5jaGVja2xpc3QgbGl7IG1hcmdpbi10b3A6dmFyKC0tc3BhY2UpOyBkaXNwbGF5OmZsZXg7IGFsaWduLWl0ZW1zOmNlbnRlcjsgfSAuaW52YWxpZCA+IDppcyhpbnB1dCxzZWxlY3QsdGV4dGFyZWEpeyBiYWNrZ3JvdW5kLWNvbG9yOiNmYWQ2ZGM7IH0gLi1iZy13aGl0ZXsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS13aGl0ZSk7IH0gLi1iZy1ncmF5eyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWdyYXkpOyBjb2xvcjp2YXIoLS13aGl0ZSk7IH0gLi1iZy1kYXJrLWdyYXl7IGJhY2tncm91bmQtY29sb3I6dmFyKC0tZGFyay1ncmF5KTsgY29sb3I6dmFyKC0td2hpdGUpOyB9IC4tYmctYmxhY2stZ3JheXsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1ibGFjay1ncmF5KTsgY29sb3I6dmFyKC0td2hpdGUpOyB9IC4tYmctYmxhY2t7IGJhY2tncm91bmQtY29sb3I6dmFyKC0tYmxhY2spOyBjb2xvcjp2YXIoLS13aGl0ZSk7IH0gLi1iZy1saWdodHsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1saWdodCk7IGNvbG9yOnZhcigtLWJsYWNrKTsgfSAuLWJnLWxpZ2h0LWdyYXl7IGJhY2tncm91bmQtY29sb3I6dmFyKC0tbGlnaHQtZ3JheSk7IGNvbG9yOnZhcigtLWJsYWNrKTsgfSAuLWJnLW5vbmV7YmFja2dyb3VuZDp0cmFuc3BhcmVudDt9IC4tcm91bmR7IGJvcmRlci1yYWRpdXM6MC4zcmVtOyB9IC5wdXNoLWRvd257IHBvc2l0aW9uOmFic29sdXRlOyBib3R0b206MHB4OyB9IC5wcmljZS1tYWlueyBjb2xvcjojZmYwMDAwOyB9IC5wcmljZS1zdHJpa2V7IGNvbG9yOiM5OTk7IHRleHQtZGVjb3JhdGlvbjpsaW5lLXRocm91Z2g7IH0gLmZvcm1hdC1wcmljZXsgcG9zaXRpb246cmVsYXRpdmU7IG1heC13aWR0aDpmaXQtY29udGVudDsgbWFyZ2luLXJpZ2h0OjAuN3JlbTsgbGluZS1oZWlnaHQ6MWVtOyB3aGl0ZS1zcGFjZTpub3dyYXA7IH0gOmlzKC5FTkdMSVNILFtkYXRhLWxhbmc9ImVuIl0pIC5mb3JtYXQtcHJpY2V7IG1hcmdpbi1sZWZ0OjAuNnJlbTsgbWFyZ2luLXJpZ2h0OnVuc2V0OyB9IC5mb3JtYXQtcHJpY2U6YWZ0ZXJ7IGNvbnRlbnQ6IiQiOyBmb250LXNpemU6bWF4KDAuNXJlbSwwLjZlbSk7IHBvc2l0aW9uOmFic29sdXRlOyB0b3A6dmFyKC0tZm9ybWF0LXBpY2Utc2lnbi1wb3NpdGlvbiwwKTsgcmlnaHQ6LTAuNmVtOyBsaW5lLWhlaWdodDppbmhlcml0OyB9IC5maW5hbC1wcmljZSAuZm9ybWF0LXByaWNlOmFmdGVyeyBtYXJnaW4tdG9wOi01cHg7IH0gLmZpbmFsLXByaWNlIC5mb3JtYXQtcHJpY2V7IGRpc3BsYXk6aW5saW5lLWJsb2NrOyBwYWRkaW5nLXJpZ2h0OjJweDsgfSA6aXMoLkVOR0xJU0gsW2RhdGEtbGFuZz0iZW4iXSkgLmZvcm1hdC1wcmljZTphZnRlcnsgbGVmdDotMC43ZW07IHJpZ2h0OnVuc2V0OyB9IC5wcmljZS1lbjpiZWZvcmV7IGNvbnRlbnQ6IiQiOyB9IDppcygucHJpY2UtZW4pOmJlZm9yZXsgZm9udC1zaXplOjAuNmVtOyBwb3NpdGlvbjpyZWxhdGl2ZTsgdG9wOi0wLjVlbTsgfSAucHJpY2UtZnI6YWZ0ZXJ7IGNvbnRlbnQ6IiAkIjsgfSA6aXMoLnByaWNlLWZyKTphZnRlcnsgZm9udC1zaXplOjAuNmVtOyBwb3NpdGlvbjpyZWxhdGl2ZTsgdG9wOi0wLjVlbTsgfSAuc2NyYXRjaC1vdmVyLCAuc2NyYXRjaC1sZWFzZXsgcG9zaXRpb246cmVsYXRpdmU7IH0gLnNjcmF0Y2gtb3ZlcjpiZWZvcmUsIC5zY3JhdGNoLWxlYXNlOmJlZm9yZXsgYmFja2dyb3VuZDpub25lIHJlcGVhdCBzY3JvbGwgMCAwIGJsYWNrOyBjb250ZW50OiIgIjsgaGVpZ2h0OjJweDsgcG9zaXRpb246YWJzb2x1dGU7IHRvcDo0NSU7IC1tb3otdHJhbnNmb3JtOnJvdGF0ZSg3ZGVnKTsgLXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDdkZWcpOyB0cmFuc2Zvcm06cm90YXRlKDdkZWcpOyB3aWR0aDo5MCU7IH0gLkVOR0xJU0ggOmlzKC5zY3JhdGNoLWxlYXNlLC5zY3JhdGNoLW92ZXIpOmhhcyguZm9ybWF0LXByaWNlKTpiZWZvcmV7IG1hcmdpbi1sZWZ0OjAuNXJlbTsgfSAuYmx1ci1vdmVyLCAuYmx1ci1sZWFzZSB7IC13ZWJraXQtZmlsdGVyOmJsdXIoMC4xNWVtKTsgLW1vei1maWx0ZXI6Ymx1cigwLjE1ZW0pOyAtbXMtZmlsdGVyOmJsdXIoMC4xNWVtKTsgLW8tZmlsdGVyOmJsdXIoMC4xNWVtKTsgZmlsdGVyOmJsdXIoMC4xNWVtKTsgfSAub3V0LXZpZXd7IHBvc2l0aW9uOmZpeGVkOyB0b3A6LTIwcHg7IGNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsMCk7IHotaW5kZXg6MDsgfSAudG9wLWZpeGVkIHsgcG9zaXRpb246Zml4ZWQ7IHRvcDozLjJyZW07IGxlZnQ6MDsgei1pbmRleDoxMDA7IGFsaWduLWl0ZW1zOmNlbnRlcjsgfSAuZml4ZWQtd3JhcHBlci50b3AtZml4ZWQgeyB3aWR0aDoxMDAlOyBwYWRkaW5nOnZhcigtLXMpOyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWxpZ2h0LWdyYXkpOyBib3JkZXItYm90dG9tLXdpZHRoOjFweDsgYm9yZGVyLWJvdHRvbS1jb2xvcjojMDAwOyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IGRpc3BsYXk6ZmxleDsganVzdGlmeS1jb250ZW50OmNlbnRlcjsgfSAuZml4ZWQtd3JhcHBlci50b3AtZml4ZWQgPiAucHJvbW9CVE4geyBtYXJnaW46MDsgd2lkdGg6OTB2dzsganVzdGlmeS1jb250ZW50OmNlbnRlcjsgfSAuZml4ZWQtd3JhcHBlci50b3AtZml4ZWQgLmN0YS1sYWJlbHsgdGV4dC1hbGlnbjpjZW50ZXI7IH0gLm1haW4tY29sb3JzeyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXRhYi1jb2xvcik7IGNvbG9yOnZhcigtLXRhYi10ZXh0LWNvbG9yKTsgfSAucHJvbW8tY29sb3JzeyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXRhYi1jb2xvcik7IGJhY2tncm91bmQtY29sb3I6dmFyKC0tcHJvbW8tY29sb3IpOyBjb2xvcjp2YXIoLS10YWItdGV4dC1jb2xvcik7IGNvbG9yOnZhcigtLXByb21vLXRleHQtY29sb3IpOyB9IC5idG57IC0tYnRuLWJnLWNvbDp2YXIoLS10YWItY29sb3IpOyAtLWJ0bi10eHQtY29sOnZhcigtLXRhYi10ZXh0LWNvbG9yKTsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1idG4tYmctY29sKTsgY29sb3I6dmFyKC0tYnRuLXR4dC1jb2wpOyBib3JkZXI6MXB4IHNvbGlkIHZhcigtLWJ0bi1icmQtY29sLCB2YXIoLS1idG4tdHh0LWNvbCkpOyBwYWRkaW5nOjAuNXJlbTsgZm9udC13ZWlnaHQ6Ym9sZDsgfSAuYnRuLWRhcmstZ3JleSwgLmNiRGFya0dyZXl7IC0tYnRuLWJnLWNvbDojMzMzOyAtLWJ0bi10eHQtY29sOiNmZmY7IH0gW3JvbGU9ImJ1dHRvbiJdeyBjdXJzb3I6cG9pbnRlcjsgfSAuYnRuLXByb21veyAtLXR4dC1jb2xvcjp2YXIoLS1wcm9tby10ZXh0LWNvbG9yLCB2YXIoLS10YWItdGV4dC1jb2xvcikpOyBjb2xvcjp2YXIoLS10eHQtY29sb3IpOyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXRhYi1jb2xvcik7IGJhY2tncm91bmQtY29sb3I6dmFyKC0tcHJvbW8tY29sb3IpOyBib3JkZXI6MXB4IHNvbGlkIHZhcigtLXByb21vLXRleHQtY29sb3IpOyBwb3NpdGlvbjpyZWxhdGl2ZTsgYWxpZ24taXRlbXM6Y2VudGVyOyBib3JkZXI6bm9uZTsgfSAuYnRuLWN0YTphZnRlcnsgY29udGVudDoiXGYwNTQiOyBmb250LXN0eWxlOm5vcm1hbDsgdGV4dC1kZWNvcmF0aW9uOmluaGVyaXQ7IHBvc2l0aW9uOmFic29sdXRlOyByaWdodDoxcmVtOyBmb250LWZhbWlseTonRm9udCBBd2Vzb21lIDUgUHJvJzsgZm9udC13ZWlnaHQ6OTAwOyB9IC5idG4tbWFpbnsgLS1idG4tYmctY29sOnZhcigtLXRhYi1jb2xvcik7IC0tYnRuLXR4dC1jb2w6dmFyKC0tdGFiLXRleHQtY29sb3IpOyAtLWJ0bi1icmQtY29sOnZhcigtLXRhYi10ZXh0LWNvbG9yLCB2YXIoLS10YWItdGV4dC1jb2xvcikpOyB9IC5idG4tbWFpbjIsIC5idG4tbWFpbjpob3ZlcnsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1tZW51LWhvdmVyLWJnLWNvbG9yKTsgYm9yZGVyOjFweCBzb2xpZCB2YXIoLS1tZW51LWhvdmVyLXRleHQtY29sb3IpOyBjb2xvcjp2YXIoLS1tZW51LWhvdmVyLXRleHQtY29sb3IpOyB9IC5idG4tYmxhY2t7IGJhY2tncm91bmQtY29sb3I6IzAwMDsgY29sb3I6I2ZmZjsgLS10eHQtY29sb3I6I2ZmZjsgfSAuYnRuLWxpZ2h0eyBiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7IGJvcmRlcjoxcHggc29saWQgI2FhYTsgY29sb3I6Izg4ODsgfSAuYnRuLXN1Y2Nlc3N7IC0tYnRuLWJnLWNvbDojNGNhZjUwOyAtLWJ0bi10eHQtY29sOiNmZmY7IH0gLmJ0bi13YXJuaW5neyAtLWJ0bi1iZy1jb2w6I2ZmOTgwMDsgLS1idG4tdHh0LWNvbDojZmZmOyB9IC5ibnQtZGlzYWJsZWQsIC5idG5bZGlzYWJsZWRdIHsgY29sb3I6dmFyKC0tZ3JheSk7IGJhY2tncm91bmQtY29sb3I6dmFyKC0tbGlnaHQtZ3JheSk7IGJvcmRlcjoxcHggc29saWQgdmFyKC0tZ3JheSk7IH0gLmJ0bi1lbWFpbC1tZSwgLmJ0bi10ZXh0LW1leyBkaXNwbGF5OmZsZXg7IGFsaWduLWl0ZW1zOmNlbnRlcjsganVzdGlmeS1jb250ZW50OmNlbnRlcjsgfSAuYnRuLWVtYWlsLW1lOmJlZm9yZXsgY29udGVudDoiXGYwZTAiOyBmb250LXdlaWdodDo5MDA7IH0gLmJ0bi10ZXh0LW1lOmJlZm9yZXsgY29udGVudDoiXGYzY2QiOyBmb250LXNpemU6eC1sYXJnZTsgZm9udC13ZWlnaHQ6OTAwOyB9IC5idG4tZW1haWwtbWU6YmVmb3JlLCAuYnRuLXRleHQtbWU6YmVmb3JleyBmb250LWZhbWlseTonRm9udCBBd2Vzb21lIDUgUHJvJzsgbWFyZ2luLXJpZ2h0OjVweDsgcG9zaXRpb246cmVsYXRpdmU7IHRvcDotMXB4OyB9IGJ1dHRvbi5yb3VuZC1idXR0b257IGFsbDppbmhlcml0OyBib3JkZXItcmFkaXVzOjUwJTsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS10YWItdGV4dC1jb2xvcik7IGZpbGw6dmFyKC0tdGFiLWNvbG9yKTsgcGFkZGluZzowLjNyZW07IGN1cnNvcjpwb2ludGVyOyB9IGJ1dHRvbi5pY29uLWJ1dHRvbnsgY29sb3I6dmFyKC0tcHJvbW8tYnRuLWNvbG9yKTsgYmFja2dyb3VuZC1jb2xvcjojZmZmOyBib3JkZXI6bm9uZTsgcGFkZGluZzowLjVyZW07IHdpZHRoOmF1dG87IH0gLngtY2xvc2V7IGJhY2tncm91bmQtaW1hZ2U6dXJsKCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgYXJpYS1oaWRkZW49J3RydWUnIGZvY3VzYWJsZT0nZmFsc2UnIHZpZXdCb3g9JzAgMCAxMCAxMCclM0UlM0NzdHlsZSUzRS52ZXJ0JTdCZmlsbDolMjMwMDA7JTdEJTNDL3N0eWxlJTNFJTNDcmVjdCBjbGFzcz0ndmVydCcgaGVpZ2h0PSc4JyB3aWR0aD0nMicgeT0nMScgeD0nNCclM0UlM0MvcmVjdCUzRSUzQ3JlY3QgaGVpZ2h0PScyJyB3aWR0aD0nOCcgeT0nNCcgeD0nMSclM0UlM0MvcmVjdCUzRSUzQy9zdmclM0UiKTsgYmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDsgYm9yZGVyOm5vbmU7IHdpZHRoOjEuNXJlbTsgaGVpZ2h0OjEuNXJlbTsgdHJhbnNmb3JtOnJvdGF0ZSg0NWRlZyk7IGN1cnNvcjpwb2ludGVyOyB9IDpub3QoLmNvbXBsZXRlZCkucmlwcGxlIHsgcG9zaXRpb246cmVsYXRpdmU7IG92ZXJmbG93OmhpZGRlbjsgdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsIDAsIDApOyB9IDpub3QoLmNvbXBsZXRlZCkucmlwcGxlOmFmdGVyIHsgY29udGVudDoiIjsgZGlzcGxheTpibG9jazsgcG9zaXRpb246YWJzb2x1dGU7IHdpZHRoOjEwMCU7IGhlaWdodDoxMDAlOyB0b3A6MDsgbGVmdDowOyBwb2ludGVyLWV2ZW50czpub25lOyBiYWNrZ3JvdW5kLWltYWdlOnJhZGlhbC1ncmFkaWVudChjaXJjbGUsIHJnYigwLCAwLCAwKSAxMCUsIHRyYW5zcGFyZW50IDEwLjAxJSk7IGJhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDsgYmFja2dyb3VuZC1wb3NpdGlvbjo1MCU7IHRyYW5zZm9ybTpzY2FsZSgxMCwxMCk7IG9wYWNpdHk6MDsgdHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjVzLCBvcGFjaXR5IDFzOyB9IDpub3QoLmNvbXBsZXRlZCkucmlwcGxlOmFjdGl2ZTphZnRlciB7IHRyYW5zZm9ybTpzY2FsZSgwLDApOyBvcGFjaXR5Oi4yOyB0cmFuc2l0aW9uOjBzOyB9IC5sb2dvYXJlYSB7IG1pbi1oZWlnaHQ6N3JlbTsgYm9yZGVyLWJvdHRvbToxcHggc29saWQgI2VlZTsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1hZG1pbi1nZW5lcmFsLWhlYWRlci1iZy1jb2xvcik7IH0gYSA+IDp3aGVyZSg6aXMoc3ZnLCAuZmEsIC5mYXMpOmZpcnN0LWNoaWxkOm5vdCg6b25seS1jaGlsZCkpeyBtYXJnaW4tcmlnaHQ6MC42cmVtOyB9IC5wcm9tb1RvcEJ0biA6aXMoYSxidXR0b24pIHsgLS1mczp2YXIoLS1mczEpOyAtLXR4dC1jb2xvcjp2YXIoLS10b3AtcHJvbW8tYnRuLXR4dCwgdmFyKC0tdG9wLXByb21vLWJ0bi10eHQtY29sb3IpKTsgYm9yZGVyLXJhZGl1czo0cHg7IGJvcmRlci10b3Atd2lkdGg6MXB4OyBib3JkZXItYm90dG9tLXdpZHRoOjFweDsgYm9yZGVyLWNvbG9yOiNmM2YzZjM7IGhlaWdodDozLjJyZW07IGZvbnQtc2l6ZTp2YXIoLS1mczEpOyBmb250LXdlaWdodDpib2xkOyBkaXNwbGF5OmZsZXg7IGp1c3RpZnktY29udGVudDpjZW50ZXI7IGFsaWduLWl0ZW1zOmNlbnRlcjsgYmFja2dyb3VuZDp2YXIoLS10b3AtcHJvbW8tYnRuLWJnLCB2YXIoLS10b3AtcHJvbW8tYnRuLWJnLWNvbG9yKSk7IGNvbG9yOnZhcigtLXRvcC1wcm9tby1idG4tdHh0LCB2YXIoLS10b3AtcHJvbW8tYnRuLXR4dC1jb2xvcikpOyB9IC5wcm9tb1RvcEJ0bi5kZWFsZXJMaW5lQnV0dG9uIDppcyhhLGJ1dHRvbil7IC0tdHh0LWNvbG9yOnZhcigtLWFkbWluLWdlbmVyYWwtdGV4dC11cy1kZWFsZXItbGluZS10ZXh0LWNvbG9yKTsgYmFja2dyb3VuZDp2YXIoLS1hZG1pbi1nZW5lcmFsLXRleHQtdXMtZGVhbGVyLWxpbmUtYmctY29sb3IpOyBjb2xvcjp2YXIoLS1hZG1pbi1nZW5lcmFsLXRleHQtdXMtZGVhbGVyLWxpbmUtdGV4dC1jb2xvcik7IGJvcmRlci1jb2xvcjp2YXIoLS1hZG1pbi1nZW5lcmFsLXRleHQtdXMtZGVhbGVyLWxpbmUtdGV4dC1jb2xvcik7IHdpZHRoOjEwMCU7IH0gOmlzKC5wcm9tb1RvcEJ0bixsYWJlbCkuZmxvYXRpbmd7IHBvc2l0aW9uOmZpeGVkOyBib3R0b206MS41cmVtOyByaWdodDoxLjVyZW07IHotaW5kZXg6MTA7IH0gLnByb21vVG9wQnRuLmZsb2F0aW5nLndpdGhUb2FzdGVyIHtib3R0b206NnJlbTt9IC5wcm9tb1RvcEJ0bi5mbG9hdGluZyA6aXMoYSxidXR0b24peyAtLWZzOnZhcigtLWZzNSk7IHBhZGRpbmc6MXJlbTsgYm9yZGVyLXJhZGl1czo1MCU7IGJvcmRlci13aWR0aDoxcHg7IGhlaWdodDp1bnNldDsgfSAucHJvbW9Ub3BCdG4uZmxvYXRpbmcgOmlzKGEsYnV0dG9uKSBzcGFuIHtkaXNwbGF5Om5vbmU7fSAuaWNvbi1oZWFkaW5nIHNwYW4uZmF7IGZvbnQtc2l6ZTppbmhlcml0OyB3aWR0aDoxZW07IHBhZGRpbmc6MC4yZW07IGhlaWdodDoxZW07IHRleHQtYWxpZ246Y2VudGVyOyBib3JkZXItcmFkaXVzOjUwJTsgYm9yZGVyOjFweCBzb2xpZCB2YXIoLS1ibGFjayk7IGNvbG9yOnZhcigtLXdoaXRlKTsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1ibGFjayk7IGJveC1zaXppbmc6Y29udGVudC1ib3g7IH0gLmljb24taGVhZGluZyAuc2Vjb25kYXJ5VGV4dHsgY29sb3I6Izc1NzU3NTsgZm9udC1zaXplOjAuNzVlbTsgfSAuZ3JvdXBUYWJzID4gKnsgY3Vyc29yOnBvaW50ZXI7IGZvbnQtc2l6ZTpjYWxjKDEuMnJlbSArICgyMCAtIDE4KSAqICgoMTAwdncgLSAzMjBweCkgLyAoMTEwMCAtIDMwMCkpKTsgfSAuZ3JvdXBUYWJzID4gKjpob3ZlcnsgYmFja2dyb3VuZC1jb2xvcjojZWZlZmVmOyB9IC5ncm91cFRhYnMgLnRhYi1sYWJlbCwgLm5ld0NhclNsaWRlciAuY2Fyb3VzZWxUaXRsZXsgY29sb3I6dmFyKC0tbmV3LXZlaGljbGUtY2Fyb3VzZWwtdHh0LWNvbG9yLCB2YXIoLS1kZWZhdWx0LWJsYWNrKSk7IH0gLmdyb3VwVGFicyAuYWN0aXZlVGFiIC50YWItbGFiZWx7IGNvbG9yOnZhcigtLW5ldy12ZWhpY2xlLWNhcm91c2VsLXR4dC1jb2xvciwgdmFyKC0tZGVmYXVsdC1ibGFjaykpOyBib3JkZXItYm90dG9tOjNweCBzb2xpZDsgYm9yZGVyLWJvdHRvbS1jb2xvcjojMDAwOyBib3JkZXItYm90dG9tLWNvbG9yOnZhcigtLXRhYi1jb2xvcik7IH0gLmNhclNsaWRlcnsgZGlzcGxheTpmbGV4OyBqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOyB9IC5jYXJTbGlkZXIgPiAqeyB3aWR0aDptaW4oOTByZW0sMTAwJSk7IH0gLmNhclNsaWRlci4tYmctbGlnaHQtZ3JheSA+ICp7IG1heC13aWR0aDptaW4oNzVyZW0sMTAwJSk7IH0gLm5ld0NhckNhcmR7IGhlaWdodDoxMDAlOyBtaW4taGVpZ2h0OjI3cmVtOyBib3JkZXI6MXB4IHNvbGlkICNiYmI7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgcG9zaXRpb246cmVsYXRpdmU7IGJhY2tncm91bmQtY29sb3I6dmFyKC0td2hpdGUpOyB9IC5uZXdDYXJDYXJkIGltZ3sgd2lkdGg6MTAwJTsgbWFyZ2luLXRvcDotMXJlbTsgcG9zaXRpb246cmVsYXRpdmU7IH0gLmNhclBheW1lbnRXcmFwcGVyeyB3aWR0aDptaW4oMTAwJSwyNXJlbSk7IG1pbi1oZWlnaHQ6N3JlbTsgfSAuY2FyUGF5bWVudFdyYXBwZXIgLnBheW1lbnRCbG9ja3sgaGVpZ2h0OjEwMCU7IH0gLnBheW1lbnRzRGlzYWJsZWQgLm5ld0NhckNhcmR7IG1pbi1oZWlnaHQ6MjJyZW07IH0gLnZlaGljbGVDYXJvdXNlbCAubmV3Q2FyQ2FyZHsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS13aGl0ZSk7IHdpZHRoOjIzLjdyZW07IGJvcmRlcjoxcHggc29saWQgI2JiYjsgbWFyZ2luOjAgMC40cmVtOyBoZWlnaHQ6MTAwJSB9IC5uZXdDYXJDYXJkIC5wcm9tby1iYWRnZXsgaGVpZ2h0OmZpdC1jb250ZW50OyBtaW4td2lkdGg6NnJlbTsgfSAubmV3Q2FyQ2FyZDpob3ZlcnsgYm94LXNoYWRvdzowIDAgMTBweCAycHggdmFyKC0tbWlkLWdyYXkpOyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWxpZ2h0LWdyYXkpOyB9IC5uZXdDYXJDYXJkOmhvdmVyIC5pblN0b2NrTGluayB7IGJhY2tncm91bmQtY29sb3I6I2ZmZmZmZjsgfSAubmV3Q2FyQ2FyZCAuY2FyZC1ib2R5eyBkaXNwbGF5OmZsZXg7IGFsaWduLWl0ZW1zOmNlbnRlcjsgaGVpZ2h0OjEycmVtOyBvdmVyZmxvdzpoaWRkZW47IH0gLm5ld0NhckNhcmQgPiAuYm94LWxjeyBtYXJnaW4tdG9wOjA7IHBhZGRpbmctdG9wOjA7IHBhZGRpbmctYm90dG9tOjA7IH0gLm5ld0NhckNhcmQgPiAuYm94LWxjOmZpcnN0LWNoaWxkeyBwYWRkaW5nLXRvcDowLjVyZW07IG1heC1oZWlnaHQ6MTByZW07IH0gLm5ld0NhckNhcmQgLmRlc2t0b3BQYXltZW50eyBwb3NpdGlvbjpyZWxhdGl2ZTsgfSAubmV3Q2FyQ2FyZCBzcGFuLnBheW1lbnRDYWxjQnRuLmRlc2t0b3B7IHBvc2l0aW9uOmFic29sdXRlOyByaWdodDo3JTsgZm9udC1zaXplOjEuN2VtOyBjdXJzb3I6cG9pbnRlcjsgfSAudXNlZENhclNsaWRleyBkaXNwbGF5OmJsb2NrOyBib3JkZXI6MXB4IHNvbGlkICNiYmI7IGJhY2tncm91bmQtY29sb3I6I2ZmZjsgaGVpZ2h0OjEwMCU7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgfSAudXNlZENhclNsaWRlICp7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgfSAudXNlZENhclNsaWRlIC5zbGlkZUNvbnRlbnR7IGhlaWdodDoxMDAlIH0gLmFuaW1hdGVkLXRyaWFuZ2xlIHsgcG9zaXRpb246cmVsYXRpdmU7IG1hcmdpbi1yaWdodDoxMHB4OyB9IC5hbmltYXRlZC10cmlhbmdsZSA+IC5mYTo6YWZ0ZXIgeyBjb250ZW50OiJcZjA3MSI7IH0gLmFuaW1hdGVkLXRyaWFuZ2xlIGl7IHBvc2l0aW9uOnJlbGF0aXZlOyB9IC5hbmltYXRlZC10cmlhbmdsZSA+IHN2ZywgLmFuaW1hdGVkLXRyaWFuZ2xlID4gLmZhOjphZnRlciB7IGFuaW1hdGlvbjpyaXBwbGUtMSAxcyBpbmZpbml0ZSBlYXNlLWluLW91dDsgYW5pbWF0aW9uLWRlbGF5OjAuNXM7IGFuaW1hdGlvbjpyaXBwbGUtMiAxcyBpbmZpbml0ZSBlYXNlLWluLW91dDsgYW5pbWF0aW9uLWRlbGF5OjAuNzVzOyBwb3NpdGlvbjphYnNvbHV0ZTsgfSAuYW5pbWF0ZWQtdHJpYW5nbGUgPiAuZmE6OmFmdGVyeyB0b3A6MDsgbGVmdDowOyB9IC5hbmltYXRlZC10cmlhbmdsZSA+IHN2Z3sgdG9wOjFweDsgbGVmdDotMXJlbTsgfSBAa2V5ZnJhbWVzIHJpcHBsZS0xIHsgMCUgeyB0cmFuc2Zvcm06c2NhbGUoMSk7IG9wYWNpdHk6MTsgfSAxMDAlIHsgdHJhbnNmb3JtOnNjYWxlKDEuNyk7IG9wYWNpdHk6MDsgfSB9IEBrZXlmcmFtZXMgcmlwcGxlLTIgeyAwJSB7IHRyYW5zZm9ybTpzY2FsZSgxKTsgb3BhY2l0eToxOyB9IDEwMCUgeyB0cmFuc2Zvcm06c2NhbGUoMik7IG9wYWNpdHk6MDsgfSB9IHNwYW4uYXN0ZXJpeDphZnRlcnsgY29udGVudDoiKiI7IHBvc2l0aW9uOnJlbGF0aXZlOyBmb250LXNpemU6MnJlbTsgfSBkaXYucHJpY2VOb3RlLmFzdGVyaXg6YmVmb3JleyBjb250ZW50OiIqIjsgcG9zaXRpb246cmVsYXRpdmU7IGZvbnQtc2l6ZToxcmVtOyB9IGZvb3RlciB7IC13ZWJraXQtYm94LXNoYWRvdzppbnNldCAwcHggMTBweCAxMXB4IC0xMXB4IHJnYmEoNTAsIDUwLCA1MCwgMC43NSk7IC1tb3otYm94LXNoYWRvdzogaW5zZXQgMHB4IDEwcHggMTFweCAtMTFweCByZ2JhKDUwLCA1MCwgNTAsIDAuNzUpOyBib3gtc2hhZG93OiBpbnNldCAwcHggMTBweCAxMXB4IC0xMXB4IHJnYmEoNTAsIDUwLCA1MCwgMC43NSk7IC0tdHh0LWNvbG9yOnZhcigtLWZvb3Rlci1pdGVtcy1saW5rLWNvbG9yKTsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1mb290ZXItYmctY29sb3IpOyBjb2xvcjp2YXIoLS1mb290ZXItaXRlbXMtbGluay1jb2xvcik7IH0gYS52aXNpdENvbnRhY3RCdXR0b257IC0tdHh0LWNvbG9yOnZhcigtLXByb21vLWJ0bi10ZXh0LWNvbG9yKTsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1wcm9tby1idG4tYmctY29sb3IpOyBjb2xvcjp2YXIoLS1wcm9tby1idG4tdGV4dC1jb2xvcik7IH0gLmNGb290ZXJDYXJMaW5rcyBsaS5jSXRlbUV4cGVuZHsgZGlzcGxheTpub25lOyB9IC5jRm9vdGVyQ2FyTGlua3MgaDMsIC5mb290ZXJfYWRkcmVzcyAuYWRyID4gc3BhbnsgY29sb3I6dmFyKC0tZm9vdGVyLWxpbmstdGl0bGUtY29sKTsgfSAuY0Zvb3RlckNhckxpbmtzIHNwYW4uaDMtYWx0IHsgZGlzcGxheTpibG9jazsgY29sb3I6dmFyKC0tZm9vdGVyLWxpbmstdGl0bGUtY29sKTsgfSAuY0Zvb3RlckNhckxpbmtzLmNMaXN0RXhwZW5kZWQgbGkuY0l0ZW1FeHBlbmR7IGRpc3BsYXk6YmxvY2s7IH0gLmNFeHBlbmRMaXN0IGJ1dHRvbnsgcGFkZGluZzp2YXIoLS1zKSAwOyBiYWNrZ3JvdW5kOm5vbmU7IH0gLmNvbmRpdGlvbnNGb290ZXIgeyBjb2xvcjp2YXIoLS1mb290ZXItY29uZGl0aW9ucy1jb2xvciwgIzkxOTE5MSk7IC0tdHh0LWNvbG9yOnZhcigtLWZvb3Rlci1jb25kaXRpb25zLWNvbG9yKTsgfSAudHJhZGVJbkJhck1vYmlsZUJ1dHRvbiB7IHBvc2l0aW9uOmZpeGVkOyBib3R0b206MTBweDsgbWFyZ2luOjVweCA1cHggMTVweCAxNXB4OyB6LWluZGV4OjQ7IHdpZHRoOjE0MHB4ICFpbXBvcnRhbnQ7IGJvcmRlci13aWR0aDoxcHg7IGJhY2tncm91bmQtY29sb3I6I2VhMDAyOTsgdGV4dC1hbGlnbjpsZWZ0OyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXRyYWRlaW5iYXItYnRuLWJnKTsgY29sb3I6IHZhcigtLXRyYWRlaW5iYXItYnRuLWNvbG9yKTsgYWxpZ24taXRlbXM6Y2VudGVyOyBib3JkZXItcmFkaXVzOjhweDsgYm9yZGVyLXdpZHRoOjFweCAzcHggNHB4IDFweDsgYm9yZGVyLWNvbG9yOiMzMzMzMzM7IHBhZGRpbmctdG9wOjEwcHg7IH0gLnRyYWRlSW5CYXJNb2JpbGVCdXR0b24gaXsgZGlzcGxheTppbmxpbmUtZmxleDsgYm9yZGVyLXJhZGl1czoxMDAlOyB3aWR0aDoyZW07IGFsaWduLWl0ZW1zOmNlbnRlcjsganVzdGlmeS1jb250ZW50OmNlbnRlcjsgYm9yZGVyOjJweCBzb2xpZCAjZmZmOyBiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7IGhlaWdodDoxLjVlbTsgY29sb3I6IzAwMDsgZmxvYXQ6bGVmdDsgfSAudHJhZGVJbkJhck1vYmlsZUJ1dHRvbi53aXRoVG9hc3RlciB7IGJvdHRvbTo1cmVtOyB9ICN0cmFkZUluQmFyUG9wdXBfbGluZTF7IGJhY2tncm91bmQtY29sb3I6I2YxZjFmMTsgYm9yZGVyOjFweCBzb2xpZCBncmV5OyBwYWRkaW5nOjIwcHggNDBweDsgZm9udC1zaXplOjEuMTI1cmVtIDsgdGV4dC1hbGlnbjpjZW50ZXI7IH0gLmJ0bi50cmFkZUluQmFyUG9wdXBTdWJtaXR7IHBhZGRpbmc6MC43NXJlbSAwLjM3NXJlbTsgYm9yZGVyLXdpZHRoOjFweDsgYm9yZGVyLWNvbG9yOiMwMDA7IGZvbnQtd2VpZ2h0OmJvbGQ7IGJvcmRlci1yYWRpdXM6M3B4OyBib3JkZXI6MXB4IHNvbGlkICMwMDA7IH0gI3RyYWRlSW5CYXJQb3B1cF9mb3JtVyBpbnB1dHsgbWFyZ2luOjVweCAwIDA7IH0gI3RyYWRlSW5CYXJQb3B1cF9mb3JtV3sgaGVpZ2h0OjU4MHB4OyBiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7IGNvbG9yOnZhcigtLWRlZmF1bHQtYmxhY2stdGV4dCk7IHBhZGRpbmc6MTVweDsgcG9zaXRpb246cmVsYXRpdmU7IH0gI3RyYWRlSW5CYXJQb3B1cF9mb3JtVyBpbnB1dHsgcGFkZGluZzoxMXB4IDEwcHg7IGZvbnQtc2l6ZTowLjkzOHJlbSA7IHdpZHRoOjI1MHB4OyBtYXJnaW46NXB4IDAgMDsgYm9yZGVyOjFweCBzb2xpZCAjYTlhOWE5IWltcG9ydGFudDsgfSAjdHJhZGVJbkJhclBvcHVwX2Zvcm1XIC50cmFkaW5TZWxlY3RQb3B1cHsgY29sb3I6IzNjMzgzNjsgZm9udC1zaXplOjFyZW07IGJhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwxKTsgYmFja2dyb3VuZC1wb3NpdGlvbjo5NSUgNTAlOyBhcHBlYXJhbmNlOm5vbmU7IC13ZWJraXQtYXBwZWFyYW5jZTpub25lOyAtbW96LWFwcGVhcmFuY2U6bm9uZTsgbWFyZ2luOjVweCAwIDA7IH0gI3RyYWRlSW5CYXJQb3B1cF9mb3JtVyA6OnBsYWNlaG9sZGVyIHsgY29sb3I6I2E5YTlhOTsgb3BhY2l0eToxOyB9ICN0cmFkZUluQmFyUG9wdXBfZm9ybVcgOi1tcy1pbnB1dC1wbGFjZWhvbGRlciB7IGNvbG9yOiNhOWE5YTk7IH0gI3RyYWRlSW5CYXJQb3B1cF9mb3JtVyA6Oi1tcy1pbnB1dC1wbGFjZWhvbGRlciB7IGNvbG9yOiNhOWE5YTk7IH0gLnRyYWRpblNlbGVjdCwgLnRyYWRpblNlbGVjdFBvcHVwIHsgY29sb3I6IzNjMzgzNjsgZm9udC1zaXplOjFyZW07IG1hcmdpbjo1cHggMCAwOyBhcHBlYXJhbmNlOm5vbmU7IC13ZWJraXQtYXBwZWFyYW5jZTpub25lOyAtbW96LWFwcGVhcmFuY2U6bm9uZTsgfSAudHJhZGluU2VsZWN0QSB7IHBvc2l0aW9uOnJlbGF0aXZlOyB9IC50cmFkaW5TZWxlY3RBOmFmdGVyIHsgY29udGVudDoiICI7IGhlaWdodDowOyB3aWR0aDowOyBib3JkZXItbGVmdDo1cHggc29saWQgdHJhbnNwYXJlbnQ7IGJvcmRlci1yaWdodDo1cHggc29saWQgdHJhbnNwYXJlbnQ7IGJvcmRlci10b3A6NXB4IHNvbGlkICMwMDAwMDA7IHBvc2l0aW9uOmFic29sdXRlOyByaWdodDoxNHB4OyB0b3A6MTdweDsgdHJhbnNpdGlvbjphbGwgMC4zcyBsaW5lYXI7IHBvaW50ZXItZXZlbnRzOm5vbmU7IH0gLmVtYWlsQm9keSwgLmVtYWlsU3ViamVjdHsgZGlzcGxheTpub25lOyB9IC5yZXZlYWwtbW9kYWw6bm90KCNwYXltZW50Q2FsY3VsYXRvclBvcHVwQ29udGFpbmVyKSAqOm5vdCguZmluYW5jZU11bHRpc3RlcE5ld0NhbGN1bGF0b3IgOmlzKGlucHV0LCBzZWxlY3QpKXsgYm94LXNpemluZzpib3JkZXItYm94OyB9IC5yZXZlYWwtbW9kYWw6bm90KCNwYXltZW50Q2FsY3VsYXRvclBvcHVwQ29udGFpbmVyKSA6aXMoaW5wdXRbdHlwZT0idGV4dCJdOm5vdCguZmluYW5jZU11bHRpc3RlcFVzZWRDYWxjdWxhdG9yIC5jYWxjLWZvcm0gaW5wdXQpLGlucHV0W3R5cGU9ImVtYWlsIl0saW5wdXRbdHlwZT0idGVsIl0sc2VsZWN0Om5vdCgucGF5bWVudENhbGN1bGF0b3JJbnRlcnZhbCwucGF5bWVudENhbGN1bGF0b3JLbUFsbG93YW5jZSwuZmluYW5jZU11bHRpc3RlcFVzZWRDYWxjdWxhdG9yIC5jYWxjLWZvcm0gc2VsZWN0LCBzZWxlY3Quc3RlcDI0c2VsZWN0KSl7IHBhZGRpbmc6MC40cmVtOyBib3JkZXItd2lkdGg6MXB4OyBib3JkZXItcmFkaXVzOjAuM3JlbTsgd2lkdGg6MTAwJTsgYm9yZGVyLWNvbG9yOiNhOWE5YTk7IH0gW2RhdGEtcGFnZT0iSE9NRVBBR0UiXXsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1ob21lLWJnLWNvbG9yLCAjRkZGRkZGKTsgfSAueXQtYmctY29udGFpbmVyeyBwb3NpdGlvbjpyZWxhdGl2ZTsgb3ZlcmZsb3c6aGlkZGVuOyB9IC5iYW5uZXItYmctY29udGFpbmVyeyBiYWNrZ3JvdW5kLXNpemU6Y292ZXI7IGJhY2tncm91bmQtcG9zaXRpb246Y2VudGVyIGNlbnRlcjsgYmFja2dyb3VuZC1ibGVuZC1tb2RlOmNvbG9yOyB9ICN5b3V0dWJlX19jb250YWluZXJ7IHBvc2l0aW9uOnJlbGF0aXZlOyB3aWR0aDoxMDAlOyBoZWlnaHQ6MDsgb3ZlcmZsb3c6aGlkZGVuOyBwYWRkaW5nLWJvdHRvbTptaW4oY2FsYygxMDB2aCAtIHZhcigtLWhlYWRlci1oZWlnaHQsMTByZW0pKSw2N3Z3KTsgYmFja2dyb3VuZC1jb2xvcjojODg4OyB9ICNob21lcGFnZV95b3V0dWJlX3BsYXllcnsgcG9zaXRpb246YWJzb2x1dGU7IHRvcDotNDUlOyBsZWZ0Oi0xMCU7IGhlaWdodDoxOTAlOyB3aWR0aDoxMjAlOyBwb2ludGVyLWV2ZW50czpub25lOyB9ICN5b3V0dWJlX19jb250YWluZXI6aXMoLmZ1bGxIZWlnaHQsLnZpc2libGVIZWlnaHQpeyBwYWRkaW5nLWJvdHRvbTpjYWxjKDEwMHZoIC0gdmFyKC0taGVhZGVyLWhlaWdodCwxMHJlbSkpOyB9IDppcyguZnVsbEhlaWdodCwudmlzaWJsZUhlaWdodCkgI2hvbWVwYWdlX3lvdXR1YmVfcGxheWVyeyBoZWlnaHQ6MTAwJTsgdG9wOjA7IH0gI3lvdXR1YmVfX2NvbnRhaW5lci5mdWxsV2lkdGh7IHBhZGRpbmctYm90dG9tOjU2LjI1JTsgfSAjbW9iaWxlU2xpZGVyICN5b3V0dWJlX19jb250YWluZXJ7IHBhZGRpbmctYm90dG9tOm1heCg2N3Z3LDI0cmVtKTsgfSAjbW9iaWxlU2xpZGVyICN5b3V0dWJlX19jb250YWluZXIgI2Jhbm5lcl9zZWFyY2hfYmFyX2NvbnRhaW5lcnsgaGVpZ2h0Om1heCg2N3Z3LDI0cmVtKTsgbWluLWhlaWdodDoxOHJlbTsgei1pbmRleDoxOyB9IC5mdWxsV2lkdGggI2hvbWVwYWdlX3lvdXR1YmVfcGxheWVyeyBoZWlnaHQ6MTIwJTsgdG9wOi0xMCU7IH0gLnl0LXZpZGVveyBiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7IGJhY2tncm91bmQtcG9zaXRpb246Y2VudGVyOyBiYWNrZ3JvdW5kLXNpemU6Y292ZXI7IH0gLnl0LXBsYXl7IGJhY2tncm91bmQtaW1hZ2U6dXJsKCdkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDU3NiA1MTIiPjwhLS0gRm9udCBBd2Vzb21lIEZyZWUgNS4xNS4xIGJ5IEBmb250YXdlc29tZSAtIGh0dHBzOi8vZm9udGF3ZXNvbWUuY29tIExpY2Vuc2UgLSBodHRwczovL2ZvbnRhd2Vzb21lLmNvbS9saWNlbnNlL2ZyZWUgKEljb25zOkNDIEJZIDQuMCwgRm9udHM6U0lMIE9GTCAxLjEsIENvZGU6TUlUIExpY2Vuc2UpIC0tPjxwYXRoIGQ9Ik01NDkuNjU1IDEyNC4wODNjLTYuMjgxLTIzLjY1LTI0Ljc4Ny00Mi4yNzYtNDguMjg0LTQ4LjU5N0M0NTguNzgxIDY0IDI4OCA2NCAyODggNjRTMTE3LjIyIDY0IDc0LjYyOSA3NS40ODZjLTIzLjQ5NyA2LjMyMi00Mi4wMDMgMjQuOTQ3LTQ4LjI4NCA0OC41OTctMTEuNDEyIDQyLjg2Ny0xMS40MTIgMTMyLjMwNS0xMS40MTIgMTMyLjMwNXMwIDg5LjQzOCAxMS40MTIgMTMyLjMwNWM2LjI4MSAyMy42NSAyNC43ODcgNDEuNSA0OC4yODQgNDcuODIxQzExNy4yMiA0NDggMjg4IDQ0OCAyODggNDQ4czE3MC43OCAwIDIxMy4zNzEtMTEuNDg2YzIzLjQ5Ny02LjMyMSA0Mi4wMDMtMjQuMTcxIDQ4LjI4NC00Ny44MjEgMTEuNDEyLTQyLjg2NyAxMS40MTItMTMyLjMwNSAxMS40MTItMTMyLjMwNXMwLTg5LjQzOC0xMS40MTItMTMyLjMwNXptLTMxNy41MSAyMTMuNTA4VjE3NS4xODVsMTQyLjczOSA4MS4yMDUtMTQyLjczOSA4MS4yMDF6IiBmaWxsPSIlMjNjMzNjMmQiIC8lM0UlM0Mvc3ZnJTNFJyk7IHdpZHRoOjVyZW07IGhlaWdodDo1cmVtOyBiYWNrZ3JvdW5kLXNpemU6Y29udGFpbjsgYmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0OyBiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50OyBvcGFjaXR5OjAuNzsgfSAuZW1iZWQtY29udGFpbmVyLXlvdXR1YmUgeyBwb3NpdGlvbjpyZWxhdGl2ZTsgaGVpZ2h0OmNhbGMoMTAwdncgLyAoMTYgLyA5KSk7IG92ZXJmbG93OmhpZGRlbjsgbWF4LXdpZHRoOjEwMCU7IGJhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDsgYmFja2dyb3VuZC1wb3NpdGlvbjpjZW50ZXI7IGJhY2tncm91bmQtc2l6ZTpjb3ZlcjsgfSAubW9iaWxlX2J1c2luZXNzRGVzYyB7IGJhY2tncm91bmQtY29sb3I6dmFyKC0tYnVzaW5lc3MtZGVzYy1iZy1jb2xvcl9tb2IsIHZhcigtLWZvb3Rlci1iZy1jb2xvcikpOyBjb2xvcjp2YXIoLS1idXNpbmVzcy1kZXNjLXR4dC1jb2xvcl9tb2IsIHZhcigtLWZvb3Rlci1saW5rLXRpdGxlLWNvbCkpOyB9IC5idXNpbmVzc0Rlc2MgeyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWJ1c2luZXNzLWRlc2MtYmctY29sb3JfbW9iLCB2YXIoLS1mb290ZXItYmctY29sb3IpKTsgY29sb3I6dmFyKC0tYnVzaW5lc3MtZGVzYy10eHQtY29sb3JfbW9iLCB2YXIoLS1mb290ZXItbGluay10aXRsZS1jb2wpKTsgfSAuYnVzaW5lc3NEZXNjICogeyBsaW5lLWhlaWdodDoxLjVyZW07IH0gLndyYXBwZXIgeyBtYXJnaW46MCBhdXRvOyB3aWR0aDo5NjBweDsgcG9zaXRpb246cmVsYXRpdmU7IH0gLmxhbmd1YWdlQmFyIHsgbWFyZ2luOjFyZW0gYXV0byA1cHg7IGhlaWdodDoyOHB4OyBwYWRkaW5nOjAgdmFyKC0tcyk7IH0gLnYtY2FyZC50b3BfYmcgeyBkaXNwbGF5OmZsZXg7IGp1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuOyBhbGlnbi1pdGVtczpjZW50ZXI7IG1hcmdpbi10b3A6MTBweDsgbWluLWhlaWdodDo4cmVtOyBwYWRkaW5nOjAgdmFyKC0tcyk7IH0gLmhlYWRlci1zZWN0aW9uIHsgZGlzcGxheTpmbGV4OyB2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7IGFsaWduLWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjsgYWxpZ24taXRlbXM6Y2VudGVyOyB9ICN0cmFkZUluQmFyTW9iaWxleyBiYWNrZ3JvdW5kLWNvbG9yOmJsYWNrOyBjb2xvcjogd2hpdGU7IGJvcmRlci1yYWRpdXM6NXB4OyBkaXNwbGF5OmJsb2NrOyBtYXJnaW46M3B4IDVweCA1cHggNXB4OyB9ICN0cmFkZUluQmFyTW9iaWxlIC5taWRkbGV7IGNvbG9yOiNmZmZmZmY7IH0gI3RyYWRlSW5CYXJNb2JpbGUgI2RlZmF1bHRUb3BCYW5uZXJUaXRsZXsgcGFkZGluZzo1cHggMjBweCAwcHggMjBweDsgfSAjdHJhZGVJbkJhck1vYmlsZSAuZGVmYXVsdFRvcEJhbm5lckJ0bldyYXBwZXIgZGl2eyBtYXgtd2lkdGg6MzMwcHg7IG1hcmdpbjoxMHB4IGF1dG87IHBhZGRpbmc6MTJweCAwOyBib3JkZXItcmFkaXVzOjJweDsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1wcm9tby1idG4tYmctY29sb3IpOyB9ICN0cmFkZUluQmFyTW9iaWxlIC5kZWZhdWx0VG9wQmFubmVyQnRuV3JhcHBlciBheyB0ZXh0LWFsaWduOmNlbnRlcjsgbWFyZ2luOjAgYXV0bzsgZm9udC13ZWlnaHQ6NzAwOyB9ICN0cmFkZUluQmFyTW9iaWxlICNkZWZhdWx0VG9wQmFubmVyTG9nbyBzcGFueyBmb250LXNpemU6MC44cmVtOyBmb250LXdlaWdodDozMDA7IGNvbG9yOnZhcigtLW1pZC1ncmF5KTsgfSAjdHJhZGVJbkJhcnsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS10cmFkZWluYmFyLWJnKTsgY29sb3I6IHZhcigtLXRyYWRlaW5iYXItY29sb3IpOyB9ICN0cmFkZUluQmFyV01vYmlsZSwgI3RyYWRlSW5CYXJXIHsgZGlzcGxheTpmbGV4OyBtaW4taGVpZ2h0OjUwcHg7IG1hcmdpbjphdXRvOyB3aWR0aDptaW4oMTAwJSwxMzUwcHgpOyBwb3NpdGlvbjpyZWxhdGl2ZTsganVzdGlmeS1jb250ZW50OmNlbnRlcjsgfSAubGFuZ3VhZ2VCYXIgLnNlcnZpY2UtaGVhZGVyLWZvcm0gPiBheyBwYWRkaW5nOjRweCAxMnB4OyBoZWlnaHQ6MThweDsgbGluZS1oZWlnaHQ6MThweDsgYm9yZGVyLXJhZGl1czowOyBmb250LXdlaWdodDpub3JtYWw7IGJhY2tncm91bmQtY29sb3I6dmFyKC0taGVhZGVyLXNlcnZpY2UtYXBwb2ludG1lbnQtdGV4dC1jb2xvci1iZywgdmFyKC0tbGFuZ3VhZ2UtYnRuLWFjdGl2ZS1iZy1jb2xvcikpOyBjb2xvcjp2YXIoLS1oZWFkZXItc2VydmljZS1hcHBvaW50bWVudC10ZXh0LWNvbG9yLCB3aGl0ZSApOyB9IC5sYW5ndWFnZUJhciAuc2VydmljZS1oZWFkZXItZm9ybSBhOmhvdmVyIHsgYm9yZGVyLWNvbG9yOnZhcigtLWhlYWRlci1zZXJ2aWNlLWFwcG9pbnRtZW50LXRleHQtY29sb3ItYmcsIHZhcigtLWxhbmd1YWdlLWJ0bi1hY3RpdmUtYmctY29sb3IpKTsgfSAjYWxlcnRNc2dDb250YWluZXJ7IHBvc2l0aW9uOnJlbGF0aXZlOyBiYWNrZ3JvdW5kLWNvbG9yOiMwMDA7IHotaW5kZXg6OTk5OyB3aWR0aDoxMDAlOyBjb2xvcjp3aGl0ZTsgYm94LXNpemluZzpib3JkZXItYm94OyBjb2xvcjp2YXIoLS1hZG1pbi1nZW5lcmFsLWFsZXJ0LWJhci10ZXh0LWNvbG9yKTsgZm9udC13ZWlnaHQ6NjAwOyB9ICNhbGVydE1zZ0NvbnRhaW5lci5zdGljay10b3B7IHBvc2l0aW9uOnN0aWNreTsgdG9wOjA7IHotaW5kZXg6OTk5OTk7IH0gQG1lZGlhIChtYXgtd2lkdGg6NzY3cHgpIHsgLmFsZXJ0LWhpZGUtb24tbW9iaWxlIHsgZGlzcGxheTpub25lICFpbXBvcnRhbnQ7IH0gfSAuZmEtZml4LWNlbnRlcjpiZWZvcmUgeyB3aWR0aDoxLjVlbTsgaGVpZ2h0OjEuNWVtOyBqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOyBhbGlnbi1pdGVtczpjZW50ZXI7IGRpc3BsYXk6ZmxleDsgfSAjeW91dHViZV9fY29udGFpbmVyLmZ1bGxzY3JlZW57IG9iamVjdC1maXQ6Y292ZXI7IHBvc2l0aW9uOnJlbGF0aXZlOyBsZWZ0OjA7IHJpZ2h0OjA7IHRvcDowOyBvcGFjaXR5OjAuODsgfSAubWFpbkRpdkFkanVzdEhlYWRlciB7IHBvc2l0aW9uOmFic29sdXRlOyBiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50OyB0cmFuc2l0aW9uOmJhY2tncm91bmQtY29sb3IgLjNzLCBib3JkZXIgLjNzOyB0b3A6MDsgbGVmdDowOyByaWdodDowOyBib3R0b206MDsgfSAubWFpbkRpdkFkanVzdEhlYWRlci53aXRoLWFsZXJ0IHsgdG9wOjQwcHg7IH0gLnBheW1lbnRCbG9ja0NvbnRhaW5lciB7IGJhY2tncm91bmQtY29sb3I6dmFyKC0tY2VydC1jb25jcmV0ZS1ncmF5LCB2YXIoLS1saWdodC1ncmF5KSk7IGNvbG9yOnZhcigtLWRhcmstZ3JheSk7IH0gLnZlaGljbGVMb2NhdGlvbnsgYm9yZGVyLXRvcDoxcHggc29saWQgI2RkZDsgdGV4dC1hbGlnbjpjZW50ZXI7IH0gLmxpbmVTZXBhcmF0b3J7IGJvcmRlci10b3A6MXB4IHNvbGlkICNBOUE5QTk7IG1hcmdpbi10b3A6NDBweDsgbWFyZ2luLWJvdHRvbTo0MHB4OyB9IC5yZXZlYWwtbW9kYWwgc3Bhbi5mYS1oYW5kLXBvaW50ZXItY29sb3IgeyBjb2xvcjojZmZmZmZmOyBtYXJnaW4tcmlnaHQ6NXB4OyBtYXJnaW4tdG9wOjVweDsgfSAuY29uZmxpY3QtcmVzb2x2ZS1vcHRpb25zIHsgZm9udC1zaXplOjAuODEzcmVtIDsgfQovKiogL2Nzcy9mb250YXdlc29tZS1hbGwubWluLmNzcyAqKi8KLmZhLC5mYXMsLmZhciwuZmFsLC5mYWQsLmZhYnstbW96LW9zeC1mb250LXNtb290aGluZzpncmF5c2NhbGU7LXdlYmtpdC1mb250LXNtb290aGluZzphbnRpYWxpYXNlZDtkaXNwbGF5OmlubGluZS1ibG9jaztmb250LXN0eWxlOm5vcm1hbDtmb250LXZhcmlhbnQ6bm9ybWFsO3RleHQtcmVuZGVyaW5nOmF1dG87bGluZS1oZWlnaHQ6MX0uZmEtbGd7Zm9udC1zaXplOjEuMzMzMzNlbTtsaW5lLWhlaWdodDouNzVlbTt2ZXJ0aWNhbC1hbGlnbjotLjA2NjdlbX0uZmEteHN7Zm9udC1zaXplOi43NWVtfS5mYS1zbXtmb250LXNpemU6Ljg3NWVtfS5mYS0xeHtmb250LXNpemU6MWVtfS5mYS0yeHtmb250LXNpemU6MmVtfS5mYS0zeHtmb250LXNpemU6M2VtfS5mYS00eHtmb250LXNpemU6NGVtfS5mYS01eHtmb250LXNpemU6NWVtfS5mYS02eHtmb250LXNpemU6NmVtfS5mYS03eHtmb250LXNpemU6N2VtfS5mYS04eHtmb250LXNpemU6OGVtfS5mYS05eHtmb250LXNpemU6OWVtfS5mYS0xMHh7Zm9udC1zaXplOjEwZW19LmZhLWZ3e3RleHQtYWxpZ246Y2VudGVyO3dpZHRoOjEuMjVlbX0uZmEtdWx7bGlzdC1zdHlsZS10eXBlOm5vbmU7bWFyZ2luLWxlZnQ6Mi41ZW07cGFkZGluZy1sZWZ0OjB9LmZhLXVsID4gbGl7cG9zaXRpb246cmVsYXRpdmV9LmZhLWxpe2xlZnQ6LTJlbTtwb3NpdGlvbjphYnNvbHV0ZTt0ZXh0LWFsaWduOmNlbnRlcjt3aWR0aDoyZW07bGluZS1oZWlnaHQ6aW5oZXJpdH0uZmEtYm9yZGVye2JvcmRlcjpzb2xpZCAuMDhlbSAjZWVlO2JvcmRlci1yYWRpdXM6LjFlbTtwYWRkaW5nOi4yZW0gLjI1ZW0gLjE1ZW19LmZhLXB1bGwtbGVmdHtmbG9hdDpsZWZ0fS5mYS1wdWxsLXJpZ2h0e2Zsb2F0OnJpZ2h0fS5mYS5mYS1wdWxsLWxlZnQsLmZhcy5mYS1wdWxsLWxlZnQsLmZhci5mYS1wdWxsLWxlZnQsLmZhbC5mYS1wdWxsLWxlZnQsLmZhYi5mYS1wdWxsLWxlZnR7bWFyZ2luLXJpZ2h0Oi4zZW19LmZhLmZhLXB1bGwtcmlnaHQsLmZhcy5mYS1wdWxsLXJpZ2h0LC5mYXIuZmEtcHVsbC1yaWdodCwuZmFsLmZhLXB1bGwtcmlnaHQsLmZhYi5mYS1wdWxsLXJpZ2h0e21hcmdpbi1sZWZ0Oi4zZW19LmZhLXNwaW57LXdlYmtpdC1hbmltYXRpb246ZmEtc3BpbiAycyBpbmZpbml0ZSBsaW5lYXI7YW5pbWF0aW9uOmZhLXNwaW4gMnMgaW5maW5pdGUgbGluZWFyfS5mYS1wdWxzZXstd2Via2l0LWFuaW1hdGlvbjpmYS1zcGluIDFzIGluZmluaXRlIHN0ZXBzKDgpO2FuaW1hdGlvbjpmYS1zcGluIDFzIGluZmluaXRlIHN0ZXBzKDgpfUAtd2Via2l0LWtleWZyYW1lcyBmYS1zcGluezAley13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgwZGVnKTt0cmFuc2Zvcm06cm90YXRlKDBkZWcpfTEwMCV7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDM2MGRlZyk7dHJhbnNmb3JtOnJvdGF0ZSgzNjBkZWcpfX1Aa2V5ZnJhbWVzIGZhLXNwaW57MCV7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDBkZWcpO3RyYW5zZm9ybTpyb3RhdGUoMGRlZyl9MTAwJXstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMzYwZGVnKTt0cmFuc2Zvcm06cm90YXRlKDM2MGRlZyl9fS5mYS1yb3RhdGUtOTB7LW1zLWZpbHRlcjpwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuQmFzaWNJbWFnZShyb3RhdGlvbj0xKTstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoOTBkZWcpO3RyYW5zZm9ybTpyb3RhdGUoOTBkZWcpfS5mYS1yb3RhdGUtMTgwey1tcy1maWx0ZXI6cHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LkJhc2ljSW1hZ2Uocm90YXRpb249Mik7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDE4MGRlZyk7dHJhbnNmb3JtOnJvdGF0ZSgxODBkZWcpfS5mYS1yb3RhdGUtMjcwey1tcy1maWx0ZXI6cHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LkJhc2ljSW1hZ2Uocm90YXRpb249Myk7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDI3MGRlZyk7dHJhbnNmb3JtOnJvdGF0ZSgyNzBkZWcpfS5mYS1mbGlwLWhvcml6b250YWx7LW1zLWZpbHRlcjoicHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LkJhc2ljSW1hZ2Uocm90YXRpb249MCxtaXJyb3I9MSkiOy13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKC0xLDEpO3RyYW5zZm9ybTpzY2FsZSgtMSwxKX0uZmEtZmxpcC12ZXJ0aWNhbHstbXMtZmlsdGVyOiJwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuQmFzaWNJbWFnZShyb3RhdGlvbj0yLG1pcnJvcj0xKSI7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMSwtMSk7dHJhbnNmb3JtOnNjYWxlKDEsLTEpfS5mYS1mbGlwLWJvdGgsLmZhLWZsaXAtaG9yaXpvbnRhbC5mYS1mbGlwLXZlcnRpY2Fsey1tcy1maWx0ZXI6InByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5CYXNpY0ltYWdlKHJvdGF0aW9uPTIsbWlycm9yPTEpIjstd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgtMSwtMSk7dHJhbnNmb3JtOnNjYWxlKC0xLC0xKX06cm9vdCAuZmEtcm90YXRlLTkwLDpyb290IC5mYS1yb3RhdGUtMTgwLDpyb290IC5mYS1yb3RhdGUtMjcwLDpyb290IC5mYS1mbGlwLWhvcml6b250YWwsOnJvb3QgLmZhLWZsaXAtdmVydGljYWwsOnJvb3QgLmZhLWZsaXAtYm90aHstd2Via2l0LWZpbHRlcjpub25lO2ZpbHRlcjpub25lfS5mYS1zdGFja3tkaXNwbGF5OmlubGluZS1ibG9jaztoZWlnaHQ6MmVtO2xpbmUtaGVpZ2h0OjJlbTtwb3NpdGlvbjpyZWxhdGl2ZTt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7d2lkdGg6Mi41ZW19LmZhLXN0YWNrLTF4LC5mYS1zdGFjay0yeHtsZWZ0OjA7cG9zaXRpb246YWJzb2x1dGU7dGV4dC1hbGlnbjpjZW50ZXI7d2lkdGg6MTAwJX0uZmEtc3RhY2stMXh7bGluZS1oZWlnaHQ6aW5oZXJpdH0uZmEtc3RhY2stMnh7Zm9udC1zaXplOjJlbX0uZmEtaW52ZXJzZXtjb2xvcjojZmZmfS5mYS01MDBweDpiZWZvcmV7Y29udGVudDoiXGYyNmUifS5mYS1hY2Nlc3NpYmxlLWljb246YmVmb3Jle2NvbnRlbnQ6IlxmMzY4In0uZmEtYWRkcmVzcy1ib29rOmJlZm9yZXtjb250ZW50OiJcZjJiOSJ9LmZhLWFkZHJlc3MtY2FyZDpiZWZvcmV7Y29udGVudDoiXGYyYmIifS5mYS1haXItZnJlc2hlbmVyOmJlZm9yZXtjb250ZW50OiJcZjVkMCJ9LmZhLWFsYXJtLWNsb2NrOmJlZm9yZXtjb250ZW50OiJcZjM0ZSJ9LmZhLWFtYnVsYW5jZTpiZWZvcmV7Y29udGVudDoiXGYwZjkifS5mYS1hbmRyb2lkOmJlZm9yZXtjb250ZW50OiJcZjE3YiJ9LmZhLWFuZ2xlLWRvdWJsZS1kb3duOmJlZm9yZXtjb250ZW50OiJcZjEwMyJ9LmZhLWFuZ2xlLWRvdWJsZS1sZWZ0OmJlZm9yZXtjb250ZW50OiJcZjEwMCJ9LmZhLWFuZ2xlLWRvdWJsZS1yaWdodDpiZWZvcmV7Y29udGVudDoiXGYxMDEifS5mYS1hbmdsZS1kb3VibGUtdXA6YmVmb3Jle2NvbnRlbnQ6IlxmMTAyIn0uZmEtYW5nbGUtZG93bjpiZWZvcmV7Y29udGVudDoiXGYxMDcifS5mYS1hbmdsZS1sZWZ0OmJlZm9yZXtjb250ZW50OiJcZjEwNCJ9LmZhLWFuZ2xlLXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZjEwNSJ9LmZhLWFuZ2xlLXVwOmJlZm9yZXtjb250ZW50OiJcZjEwNiJ9LmZhLWFwcGxlOmJlZm9yZXtjb250ZW50OiJcZjE3OSJ9LmZhLWFyY2hpdmU6YmVmb3Jle2NvbnRlbnQ6IlxmMTg3In0uZmEtYXJyb3ctYWx0LWNpcmNsZS1kb3duOmJlZm9yZXtjb250ZW50OiJcZjM1OCJ9LmZhLWFycm93LWFsdC1jaXJjbGUtbGVmdDpiZWZvcmV7Y29udGVudDoiXGYzNTkifS5mYS1hcnJvdy1hbHQtY2lyY2xlLXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZjM1YSJ9LmZhLWFycm93LWFsdC1jaXJjbGUtdXA6YmVmb3Jle2NvbnRlbnQ6IlxmMzViIn0uZmEtYXJyb3ctYWx0LWRvd246YmVmb3Jle2NvbnRlbnQ6IlxmMzU0In0uZmEtYXJyb3ctYWx0LWZyb20tYm90dG9tOmJlZm9yZXtjb250ZW50OiJcZjM0NiJ9LmZhLWFycm93LWFsdC1mcm9tLWxlZnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzQ3In0uZmEtYXJyb3ctYWx0LWZyb20tcmlnaHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzQ4In0uZmEtYXJyb3ctYWx0LWZyb20tdG9wOmJlZm9yZXtjb250ZW50OiJcZjM0OSJ9LmZhLWFycm93LWFsdC1sZWZ0OmJlZm9yZXtjb250ZW50OiJcZjM1NSJ9LmZhLWFycm93LWFsdC1yaWdodDpiZWZvcmV7Y29udGVudDoiXGYzNTYifS5mYS1hcnJvdy1hbHQtc3F1YXJlLWRvd246YmVmb3Jle2NvbnRlbnQ6IlxmMzUwIn0uZmEtYXJyb3ctYWx0LXNxdWFyZS1sZWZ0OmJlZm9yZXtjb250ZW50OiJcZjM1MSJ9LmZhLWFycm93LWFsdC1zcXVhcmUtcmlnaHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzUyIn0uZmEtYXJyb3ctYWx0LXNxdWFyZS11cDpiZWZvcmV7Y29udGVudDoiXGYzNTMifS5mYS1hcnJvdy1hbHQtdG8tYm90dG9tOmJlZm9yZXtjb250ZW50OiJcZjM0YSJ9LmZhLWFycm93LWFsdC10by1sZWZ0OmJlZm9yZXtjb250ZW50OiJcZjM0YiJ9LmZhLWFycm93LWFsdC10by1yaWdodDpiZWZvcmV7Y29udGVudDoiXGYzNGMifS5mYS1hcnJvdy1hbHQtdG8tdG9wOmJlZm9yZXtjb250ZW50OiJcZjM0ZCJ9LmZhLWFycm93LWFsdC11cDpiZWZvcmV7Y29udGVudDoiXGYzNTcifS5mYS1hcnJvdy1jaXJjbGUtZG93bjpiZWZvcmV7Y29udGVudDoiXGYwYWIifS5mYS1hcnJvdy1jaXJjbGUtbGVmdDpiZWZvcmV7Y29udGVudDoiXGYwYTgifS5mYS1hcnJvdy1jaXJjbGUtcmlnaHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMGE5In0uZmEtYXJyb3ctY2lyY2xlLXVwOmJlZm9yZXtjb250ZW50OiJcZjBhYSJ9LmZhLWFycm93LWRvd246YmVmb3Jle2NvbnRlbnQ6IlxmMDYzIn0uZmEtYXJyb3ctZnJvbS1ib3R0b206YmVmb3Jle2NvbnRlbnQ6IlxmMzQyIn0uZmEtYXJyb3ctZnJvbS1sZWZ0OmJlZm9yZXtjb250ZW50OiJcZjM0MyJ9LmZhLWFycm93LWZyb20tcmlnaHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzQ0In0uZmEtYXJyb3ctZnJvbS10b3A6YmVmb3Jle2NvbnRlbnQ6IlxmMzQ1In0uZmEtYXJyb3ctbGVmdDpiZWZvcmV7Y29udGVudDoiXGYwNjAifS5mYS1hcnJvdy1yaWdodDpiZWZvcmV7Y29udGVudDoiXGYwNjEifS5mYS1hcnJvdy1zcXVhcmUtZG93bjpiZWZvcmV7Y29udGVudDoiXGYzMzkifS5mYS1hcnJvdy1zcXVhcmUtbGVmdDpiZWZvcmV7Y29udGVudDoiXGYzM2EifS5mYS1hcnJvdy1zcXVhcmUtcmlnaHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzNiIn0uZmEtYXJyb3ctc3F1YXJlLXVwOmJlZm9yZXtjb250ZW50OiJcZjMzYyJ9LmZhLWFycm93LXRvLWJvdHRvbTpiZWZvcmV7Y29udGVudDoiXGYzM2QifS5mYS1hcnJvdy10by1sZWZ0OmJlZm9yZXtjb250ZW50OiJcZjMzZSJ9LmZhLWFycm93LXRvLXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZjM0MCJ9LmZhLWFycm93LXRvLXRvcDpiZWZvcmV7Y29udGVudDoiXGYzNDEifS5mYS1hcnJvdy11cDpiZWZvcmV7Y29udGVudDoiXGYwNjIifS5mYS1hcnJvd3M6YmVmb3Jle2NvbnRlbnQ6IlxmMDQ3In0uZmEtYXJyb3dzLWFsdDpiZWZvcmV7Y29udGVudDoiXGYwYjIifS5mYS1hcnJvd3MtYWx0LWg6YmVmb3Jle2NvbnRlbnQ6IlxmMzM3In0uZmEtYXJyb3dzLWFsdC12OmJlZm9yZXtjb250ZW50OiJcZjMzOCJ9LmZhLWFycm93cy1oOmJlZm9yZXtjb250ZW50OiJcZjA3ZSJ9LmZhLWFycm93cy12OmJlZm9yZXtjb250ZW50OiJcZjA3ZCJ9LmZhLWFzc2lzdGl2ZS1saXN0ZW5pbmctc3lzdGVtczpiZWZvcmV7Y29udGVudDoiXGYyYTIifS5mYS1hdDpiZWZvcmV7Y29udGVudDoiXGYxZmEifS5mYS1hdWRpby1kZXNjcmlwdGlvbjpiZWZvcmV7Y29udGVudDoiXGYyOWUifS5mYS1hd2FyZDpiZWZvcmV7Y29udGVudDoiXGY1NTkifS5mYS1iYWRnZTpiZWZvcmV7Y29udGVudDoiXGYzMzUifS5mYS1iYWRnZS1jaGVjazpiZWZvcmV7Y29udGVudDoiXGYzMzYifS5mYS1iYW46YmVmb3Jle2NvbnRlbnQ6IlxmMDVlIn0uZmEtYmFyY29kZTpiZWZvcmV7Y29udGVudDoiXGYwMmEifS5mYS1iYXJjb2RlLWFsdDpiZWZvcmV7Y29udGVudDoiXGY0NjMifS5mYS1iYXJzOmJlZm9yZXtjb250ZW50OiJcZjBjOSJ9LmZhLWJhdHRlcnktZnVsbDpiZWZvcmV7Y29udGVudDoiXGYyNDAifS5mYS1iYXR0ZXJ5LWhhbGY6YmVmb3Jle2NvbnRlbnQ6IlxmMjQyIn0uZmEtYmVsbDpiZWZvcmV7Y29udGVudDoiXGYwZjMifS5mYS1iZWxsLWV4Y2xhbWF0aW9uOmJlZm9yZXtjb250ZW50OiJcZjg0OCJ9LmZhLWJlbGwtcGx1czpiZWZvcmV7Y29udGVudDoiXGY4NDkifS5mYS1iZWxsLXNsYXNoOmJlZm9yZXtjb250ZW50OiJcZjFmNiJ9LmZhLWJsb2c6YmVmb3Jle2NvbnRlbnQ6IlxmNzgxIn0uZmEtYmxvZ2dlcjpiZWZvcmV7Y29udGVudDoiXGYzN2MifS5mYS1ibG9nZ2VyLWI6YmVmb3Jle2NvbnRlbnQ6IlxmMzdkIn0uZmEtYmx1ZXRvb3RoOmJlZm9yZXtjb250ZW50OiJcZjI5MyJ9LmZhLWJsdWV0b290aC1iOmJlZm9yZXtjb250ZW50OiJcZjI5NCJ9LmZhLWJvbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMGU3In0uZmEtYm9va21hcms6YmVmb3Jle2NvbnRlbnQ6IlxmMDJlIn0uZmEtYm94LW9wZW46YmVmb3Jle2NvbnRlbnQ6IlxmNDllIn0uZmEtYnJvYWRjYXN0LXRvd2VyOmJlZm9yZXtjb250ZW50OiJcZjUxOSJ9LmZhLWJ0YzpiZWZvcmV7Y29udGVudDoiXGYxNWEifS5mYS1idWc6YmVmb3Jle2NvbnRlbnQ6IlxmMTg4In0uZmEtYnVpbGRpbmc6YmVmb3Jle2NvbnRlbnQ6IlxmMWFkIn0uZmEtYnVsbGhvcm46YmVmb3Jle2NvbnRlbnQ6IlxmMGExIn0uZmEtYnVsbHNleWU6YmVmb3Jle2NvbnRlbnQ6IlxmMTQwIn0uZmEtYnVzOmJlZm9yZXtjb250ZW50OiJcZjIwNyJ9LmZhLWJ1cy1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmNTVlIn0uZmEtYnVzLXNjaG9vbDpiZWZvcmV7Y29udGVudDoiXGY1ZGQifS5mYS1jYWxjdWxhdG9yOmJlZm9yZXtjb250ZW50OiJcZjFlYyJ9LmZhLWNhbGN1bGF0b3ItYWx0OmJlZm9yZXtjb250ZW50OiJcZjY0YyJ9LmZhLWNhbGVuZGFyOmJlZm9yZXtjb250ZW50OiJcZjEzMyJ9LmZhLWNhbGVuZGFyLWFsdDpiZWZvcmV7Y29udGVudDoiXGYwNzMifS5mYS1jYWxlbmRhci1jaGVjazpiZWZvcmV7Y29udGVudDoiXGYyNzQifS5mYS1jYWxlbmRhci1lZGl0OmJlZm9yZXtjb250ZW50OiJcZjMzMyJ9LmZhLWNhbGVuZGFyLWV4Y2xhbWF0aW9uOmJlZm9yZXtjb250ZW50OiJcZjMzNCJ9LmZhLWNhbGVuZGFyLW1pbnVzOmJlZm9yZXtjb250ZW50OiJcZjI3MiJ9LmZhLWNhbGVuZGFyLXRpbWVzOmJlZm9yZXtjb250ZW50OiJcZjI3MyJ9LmZhLWNhbWVyYTpiZWZvcmV7Y29udGVudDoiXGYwMzAifS5mYS1jYW1lcmEtYWx0OmJlZm9yZXtjb250ZW50OiJcZjMzMiJ9LmZhLWNhbWVyYS1ob21lOmJlZm9yZXtjb250ZW50OiJcZjhmZSJ9LmZhLWNhcjpiZWZvcmV7Y29udGVudDoiXGYxYjkifS5mYS1jYXItYWx0OmJlZm9yZXtjb250ZW50OiJcZjVkZSJ9LmZhLWNhci1iYXR0ZXJ5OmJlZm9yZXtjb250ZW50OiJcZjVkZiJ9LmZhLWNhci1idWlsZGluZzpiZWZvcmV7Y29udGVudDoiXGY4NTkifS5mYS1jYXItYnVtcDpiZWZvcmV7Y29udGVudDoiXGY1ZTAifS5mYS1jYXItYnVzOmJlZm9yZXtjb250ZW50OiJcZjg1YSJ9LmZhLWNhci1jcmFzaDpiZWZvcmV7Y29udGVudDoiXGY1ZTEifS5mYS1jYXItZ2FyYWdlOmJlZm9yZXtjb250ZW50OiJcZjVlMiJ9LmZhLWNhci1tZWNoYW5pYzpiZWZvcmV7Y29udGVudDoiXGY1ZTMifS5mYS1jYXItc2lkZTpiZWZvcmV7Y29udGVudDoiXGY1ZTQifS5mYS1jYXItdGlsdDpiZWZvcmV7Y29udGVudDoiXGY1ZTUifS5mYS1jYXItd2FzaDpiZWZvcmV7Y29udGVudDoiXGY1ZTYifS5mYS1jYXJhdmFuOmJlZm9yZXtjb250ZW50OiJcZjhmZiJ9LmZhLWNhcmF2YW4tYWx0OmJlZm9yZXtjb250ZW50OiJcZTAwMCJ9LmZhLWNhcmV0LWNpcmNsZS1kb3duOmJlZm9yZXtjb250ZW50OiJcZjMyZCJ9LmZhLWNhcmV0LWNpcmNsZS1sZWZ0OmJlZm9yZXtjb250ZW50OiJcZjMyZSJ9LmZhLWNhcmV0LWNpcmNsZS1yaWdodDpiZWZvcmV7Y29udGVudDoiXGYzMzAifS5mYS1jYXJldC1jaXJjbGUtdXA6YmVmb3Jle2NvbnRlbnQ6IlxmMzMxIn0uZmEtY2FyZXQtZG93bjpiZWZvcmV7Y29udGVudDoiXGYwZDcifS5mYS1jYXJldC1sZWZ0OmJlZm9yZXtjb250ZW50OiJcZjBkOSJ9LmZhLWNhcmV0LXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZjBkYSJ9LmZhLWNhcmV0LXNxdWFyZS1kb3duOmJlZm9yZXtjb250ZW50OiJcZjE1MCJ9LmZhLWNhcmV0LXNxdWFyZS1sZWZ0OmJlZm9yZXtjb250ZW50OiJcZjE5MSJ9LmZhLWNhcmV0LXNxdWFyZS1yaWdodDpiZWZvcmV7Y29udGVudDoiXGYxNTIifS5mYS1jYXJldC1zcXVhcmUtdXA6YmVmb3Jle2NvbnRlbnQ6IlxmMTUxIn0uZmEtY2FyZXQtdXA6YmVmb3Jle2NvbnRlbnQ6IlxmMGQ4In0uZmEtY2FyczpiZWZvcmV7Y29udGVudDoiXGY4NWIifS5mYS1jYXJ0LWFycm93LWRvd246YmVmb3Jle2NvbnRlbnQ6IlxmMjE4In0uZmEtY2FydC1wbHVzOmJlZm9yZXtjb250ZW50OiJcZjIxNyJ9LmZhLWNjLXBheXBhbDpiZWZvcmV7Y29udGVudDoiXGYxZjQifS5mYS1jZXJ0aWZpY2F0ZTpiZWZvcmV7Y29udGVudDoiXGYwYTMifS5mYS1jaGFpcjpiZWZvcmV7Y29udGVudDoiXGY2YzAifS5mYS1jaGFsa2JvYXJkOmJlZm9yZXtjb250ZW50OiJcZjUxYiJ9LmZhLWNoYXJnaW5nLXN0YXRpb246YmVmb3Jle2NvbnRlbnQ6IlxmNWU3In0uZmEtY2hhcnQtbGluZTpiZWZvcmV7Y29udGVudDoiXGYyMDEifS5mYS1jaGFydC1saW5lLWRvd246YmVmb3Jle2NvbnRlbnQ6IlxmNjRkIn0uZmEtY2hlY2s6YmVmb3Jle2NvbnRlbnQ6IlxmMDBjIn0uZmEtY2hlY2stY2lyY2xlOmJlZm9yZXtjb250ZW50OiJcZjA1OCJ9LmZhLWNoZWNrLWRvdWJsZTpiZWZvcmV7Y29udGVudDoiXGY1NjAifS5mYS1jaGVjay1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMTRhIn0uZmEtY2hldnJvbi1jaXJjbGUtZG93bjpiZWZvcmV7Y29udGVudDoiXGYxM2EifS5mYS1jaGV2cm9uLWNpcmNsZS1sZWZ0OmJlZm9yZXtjb250ZW50OiJcZjEzNyJ9LmZhLWNoZXZyb24tY2lyY2xlLXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZjEzOCJ9LmZhLWNoZXZyb24tY2lyY2xlLXVwOmJlZm9yZXtjb250ZW50OiJcZjEzOSJ9LmZhLWNoZXZyb24tZG91YmxlLWRvd246YmVmb3Jle2NvbnRlbnQ6IlxmMzIyIn0uZmEtY2hldnJvbi1kb3VibGUtbGVmdDpiZWZvcmV7Y29udGVudDoiXGYzMjMifS5mYS1jaGV2cm9uLWRvdWJsZS1yaWdodDpiZWZvcmV7Y29udGVudDoiXGYzMjQifS5mYS1jaGV2cm9uLWRvdWJsZS11cDpiZWZvcmV7Y29udGVudDoiXGYzMjUifS5mYS1jaGV2cm9uLWRvd246YmVmb3Jle2NvbnRlbnQ6IlxmMDc4In0uZmEtY2hldnJvbi1sZWZ0OmJlZm9yZXtjb250ZW50OiJcZjA1MyJ9LmZhLWNoZXZyb24tcmlnaHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDU0In0uZmEtY2hldnJvbi1zcXVhcmUtZG93bjpiZWZvcmV7Y29udGVudDoiXGYzMjkifS5mYS1jaGV2cm9uLXNxdWFyZS1sZWZ0OmJlZm9yZXtjb250ZW50OiJcZjMyYSJ9LmZhLWNoZXZyb24tc3F1YXJlLXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZjMyYiJ9LmZhLWNoZXZyb24tc3F1YXJlLXVwOmJlZm9yZXtjb250ZW50OiJcZjMyYyJ9LmZhLWNoZXZyb24tdXA6YmVmb3Jle2NvbnRlbnQ6IlxmMDc3In0uZmEtY2lyY2xlOmJlZm9yZXtjb250ZW50OiJcZjExMSJ9LmZhLWNpcmNsZS1ub3RjaDpiZWZvcmV7Y29udGVudDoiXGYxY2UifS5mYS1jaXR5OmJlZm9yZXtjb250ZW50OiJcZjY0ZiJ9LmZhLWNsaXBib2FyZDpiZWZvcmV7Y29udGVudDoiXGYzMjgifS5mYS1jbG9jazpiZWZvcmV7Y29udGVudDoiXGYwMTcifS5mYS1jbG9uZTpiZWZvcmV7Y29udGVudDoiXGYyNGQifS5mYS1jbG9zZWQtY2FwdGlvbmluZzpiZWZvcmV7Y29udGVudDoiXGYyMGEifS5mYS1jbG91ZDpiZWZvcmV7Y29udGVudDoiXGYwYzIifS5mYS1jbG91ZC1kb3dubG9hZDpiZWZvcmV7Y29udGVudDoiXGYwZWQifS5mYS1jbG91ZC1kb3dubG9hZC1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzgxIn0uZmEtY2xvdWQtdXBsb2FkOmJlZm9yZXtjb250ZW50OiJcZjBlZSJ9LmZhLWNsb3VkLXVwbG9hZC1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzgyIn0uZmEtY2x1YjpiZWZvcmV7Y29udGVudDoiXGYzMjcifS5mYS1jb2ZmZWU6YmVmb3Jle2NvbnRlbnQ6IlxmMGY0In0uZmEtY29nOmJlZm9yZXtjb250ZW50OiJcZjAxMyJ9LmZhLWNvZ3M6YmVmb3Jle2NvbnRlbnQ6IlxmMDg1In0uZmEtY29tbWVudDpiZWZvcmV7Y29udGVudDoiXGYwNzUifS5mYS1jb21tZW50LWFsdDpiZWZvcmV7Y29udGVudDoiXGYyN2EifS5mYS1jb21tZW50LWFsdC1jaGVjazpiZWZvcmV7Y29udGVudDoiXGY0YTIifS5mYS1jb21tZW50LWFsdC1kb2xsYXI6YmVmb3Jle2NvbnRlbnQ6IlxmNjUwIn0uZmEtY29tbWVudC1kb2xsYXI6YmVmb3Jle2NvbnRlbnQ6IlxmNjUxIn0uZmEtY29tbWVudHM6YmVmb3Jle2NvbnRlbnQ6IlxmMDg2In0uZmEtY29tbWVudHMtYWx0OmJlZm9yZXtjb250ZW50OiJcZjRiNiJ9LmZhLWNvbW1lbnRzLWFsdC1kb2xsYXI6YmVmb3Jle2NvbnRlbnQ6IlxmNjUyIn0uZmEtY29tbWVudHMtZG9sbGFyOmJlZm9yZXtjb250ZW50OiJcZjY1MyJ9LmZhLWNvbXByZXNzLWFsdDpiZWZvcmV7Y29udGVudDoiXGY0MjIifS5mYS1jb21wcmVzcy1hcnJvd3MtYWx0OmJlZm9yZXtjb250ZW50OiJcZjc4YyJ9LmZhLWNvcHk6YmVmb3Jle2NvbnRlbnQ6IlxmMGM1In0uZmEtY29weXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZjFmOSJ9LmZhLWNvdWNoOmJlZm9yZXtjb250ZW50OiJcZjRiOCJ9LmZhLWNyZWF0aXZlLWNvbW1vbnMtc2hhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmNGYyIn0uZmEtY3JlZGl0LWNhcmQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDlkIn0uZmEtY3V0OmJlZm9yZXtjb250ZW50OiJcZjBjNCJ9LmZhLWRhdGFiYXNlOmJlZm9yZXtjb250ZW50OiJcZjFjMCJ9LmZhLWRlc2t0b3A6YmVmb3Jle2NvbnRlbnQ6IlxmMTA4In0uZmEtZGlhbW9uZDpiZWZvcmV7Y29udGVudDoiXGYyMTkifS5mYS1kaWdpdGFsLXRhY2hvZ3JhcGg6YmVmb3Jle2NvbnRlbnQ6IlxmNTY2In0uZmEtZG9sbGFyLXNpZ246YmVmb3Jle2NvbnRlbnQ6IlxmMTU1In0uZmEtZG90LWNpcmNsZTpiZWZvcmV7Y29udGVudDoiXGYxOTIifS5mYS1kb3dubG9hZDpiZWZvcmV7Y29udGVudDoiXGYwMTkifS5mYS1lZGl0OmJlZm9yZXtjb250ZW50OiJcZjA0NCJ9LmZhLWVsbGlwc2lzLWg6YmVmb3Jle2NvbnRlbnQ6IlxmMTQxIn0uZmEtZWxsaXBzaXMtaC1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzliIn0uZmEtZWxsaXBzaXMtdjpiZWZvcmV7Y29udGVudDoiXGYxNDIifS5mYS1lbGxpcHNpcy12LWFsdDpiZWZvcmV7Y29udGVudDoiXGYzOWMifS5mYS1lbmdpbmUtd2FybmluZzpiZWZvcmV7Y29udGVudDoiXGY1ZjIifS5mYS1lbnZlbG9wZTpiZWZvcmV7Y29udGVudDoiXGYwZTAifS5mYS1lbnZlbG9wZS1vcGVuOmJlZm9yZXtjb250ZW50OiJcZjJiNiJ9LmZhLWVudmVsb3BlLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYxOTkifS5mYS1lcmFzZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMTJkIn0uZmEtZXhjaGFuZ2U6YmVmb3Jle2NvbnRlbnQ6IlxmMGVjIn0uZmEtZXhjaGFuZ2UtYWx0OmJlZm9yZXtjb250ZW50OiJcZjM2MiJ9LmZhLWV4Y2xhbWF0aW9uOmJlZm9yZXtjb250ZW50OiJcZjEyYSJ9LmZhLWV4Y2xhbWF0aW9uLWNpcmNsZTpiZWZvcmV7Y29udGVudDoiXGYwNmEifS5mYS1leGNsYW1hdGlvbi1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMzIxIn0uZmEtZXhjbGFtYXRpb24tdHJpYW5nbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMDcxIn0uZmEtZXhwYW5kLWFsdDpiZWZvcmV7Y29udGVudDoiXGY0MjQifS5mYS1leHBhbmQtYXJyb3dzOmJlZm9yZXtjb250ZW50OiJcZjMxZCJ9LmZhLWV4cGFuZC1hcnJvd3MtYWx0OmJlZm9yZXtjb250ZW50OiJcZjMxZSJ9LmZhLWV4dGVybmFsLWxpbms6YmVmb3Jle2NvbnRlbnQ6IlxmMDhlIn0uZmEtZXh0ZXJuYWwtbGluay1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzVkIn0uZmEtZXh0ZXJuYWwtbGluay1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMTRjIn0uZmEtZXh0ZXJuYWwtbGluay1zcXVhcmUtYWx0OmJlZm9yZXtjb250ZW50OiJcZjM2MCJ9LmZhLWV5ZTpiZWZvcmV7Y29udGVudDoiXGYwNmUifS5mYS1leWUtc2xhc2g6YmVmb3Jle2NvbnRlbnQ6IlxmMDcwIn0uZmEtZmFjZWJvb2s6YmVmb3Jle2NvbnRlbnQ6IlxmMDlhIn0uZmEtZmFjZWJvb2stZjpiZWZvcmV7Y29udGVudDoiXGYzOWUifS5mYS1mYWNlYm9vay1tZXNzZW5nZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMzlmIn0uZmEtZmFjZWJvb2stc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjA4MiJ9LmZhLWZheDpiZWZvcmV7Y29udGVudDoiXGYxYWMifS5mYS1maWxlOmJlZm9yZXtjb250ZW50OiJcZjE1YiJ9LmZhLWZpbGUtYWx0OmJlZm9yZXtjb250ZW50OiJcZjE1YyJ9LmZhLWZpbGUtYXJjaGl2ZTpiZWZvcmV7Y29udGVudDoiXGYxYzYifS5mYS1maWxlLWF1ZGlvOmJlZm9yZXtjb250ZW50OiJcZjFjNyJ9LmZhLWZpbGUtY2hhcnQtbGluZTpiZWZvcmV7Y29udGVudDoiXGY2NTkifS5mYS1maWxlLWNoZWNrOmJlZm9yZXtjb250ZW50OiJcZjMxNiJ9LmZhLWZpbGUtY29kZTpiZWZvcmV7Y29udGVudDoiXGYxYzkifS5mYS1maWxlLWRvd25sb2FkOmJlZm9yZXtjb250ZW50OiJcZjU2ZCJ9LmZhLWZpbGUtZWRpdDpiZWZvcmV7Y29udGVudDoiXGYzMWMifS5mYS1maWxlLWV4Y2VsOmJlZm9yZXtjb250ZW50OiJcZjFjMyJ9LmZhLWZpbGUtZXhjbGFtYXRpb246YmVmb3Jle2NvbnRlbnQ6IlxmMzFhIn0uZmEtZmlsZS1leHBvcnQ6YmVmb3Jle2NvbnRlbnQ6IlxmNTZlIn0uZmEtZmlsZS1pbWFnZTpiZWZvcmV7Y29udGVudDoiXGYxYzUifS5mYS1maWxlLWltcG9ydDpiZWZvcmV7Y29udGVudDoiXGY1NmYifS5mYS1maWxlLWludm9pY2UtZG9sbGFyOmJlZm9yZXtjb250ZW50OiJcZjU3MSJ9LmZhLWZpbGUtbWludXM6YmVmb3Jle2NvbnRlbnQ6IlxmMzE4In0uZmEtZmlsZS1tdXNpYzpiZWZvcmV7Y29udGVudDoiXGY4YjYifS5mYS1maWxlLXBkZjpiZWZvcmV7Y29udGVudDoiXGYxYzEifS5mYS1maWxlLXBsdXM6YmVmb3Jle2NvbnRlbnQ6IlxmMzE5In0uZmEtZmlsZS1wb3dlcnBvaW50OmJlZm9yZXtjb250ZW50OiJcZjFjNCJ9LmZhLWZpbGUtc2VhcmNoOmJlZm9yZXtjb250ZW50OiJcZjg2NSJ9LmZhLWZpbGUtdGltZXM6YmVmb3Jle2NvbnRlbnQ6IlxmMzE3In0uZmEtZmlsZS11cGxvYWQ6YmVmb3Jle2NvbnRlbnQ6IlxmNTc0In0uZmEtZmlsZS12aWRlbzpiZWZvcmV7Y29udGVudDoiXGYxYzgifS5mYS1maWxlLXdvcmQ6YmVmb3Jle2NvbnRlbnQ6IlxmMWMyIn0uZmEtZmlsdGVyOmJlZm9yZXtjb250ZW50OiJcZjBiMCJ9LmZhLWZpbmdlcnByaW50OmJlZm9yZXtjb250ZW50OiJcZjU3NyJ9LmZhLWZpcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMDZkIn0uZmEtZmxhZzpiZWZvcmV7Y29udGVudDoiXGYwMjQifS5mYS1mbGFnLWFsdDpiZWZvcmV7Y29udGVudDoiXGY3NGMifS5mYS1mbGFnLWNoZWNrZXJlZDpiZWZvcmV7Y29udGVudDoiXGYxMWUifS5mYS1mbHV4LWNhcGFjaXRvcjpiZWZvcmV7Y29udGVudDoiXGY4YmEifS5mYS1mb2xkZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMDdiIn0uZmEtZm9sZGVyLWRvd25sb2FkOmJlZm9yZXtjb250ZW50OiJcZTA1MyJ9LmZhLWZvbGRlci1vcGVuOmJlZm9yZXtjb250ZW50OiJcZjA3YyJ9LmZhLWZvbGRlci11cGxvYWQ6YmVmb3Jle2NvbnRlbnQ6IlxlMDU0In0uZmEtZnJvd246YmVmb3Jle2NvbnRlbnQ6IlxmMTE5In0uZmEtZnJvd24tb3BlbjpiZWZvcmV7Y29udGVudDoiXGY1N2EifS5mYS1nYWxhY3RpYy1zZW5hdGU6YmVmb3Jle2NvbnRlbnQ6IlxmNTBkIn0uZmEtZ2FyYWdlOmJlZm9yZXtjb250ZW50OiJcZTAwOSJ9LmZhLWdhcmFnZS1jYXI6YmVmb3Jle2NvbnRlbnQ6IlxlMDBhIn0uZmEtZ2FyYWdlLW9wZW46YmVmb3Jle2NvbnRlbnQ6IlxlMDBiIn0uZmEtZ2FzLXB1bXA6YmVmb3Jle2NvbnRlbnQ6IlxmNTJmIn0uZmEtZ2FzLXB1bXAtc2xhc2g6YmVmb3Jle2NvbnRlbnQ6IlxmNWY0In0uZmEtZ2xhc3NlczpiZWZvcmV7Y29udGVudDoiXGY1MzAifS5mYS1nbG9iZTpiZWZvcmV7Y29udGVudDoiXGYwYWMifS5mYS1nb29nbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMWEwIn0uZmEtZ3JpcC1ob3Jpem9udGFsOmJlZm9yZXtjb250ZW50OiJcZjU4ZCJ9LmZhLWdyaXAtbGluZXM6YmVmb3Jle2NvbnRlbnQ6IlxmN2E0In0uZmEtZ3JpcC1saW5lcy12ZXJ0aWNhbDpiZWZvcmV7Y29udGVudDoiXGY3YTUifS5mYS1ncmlwLXZlcnRpY2FsOmJlZm9yZXtjb250ZW50OiJcZjU4ZSJ9LmZhLWhhbmQtaG9sZGluZy11c2Q6YmVmb3Jle2NvbnRlbnQ6IlxmNGMwIn0uZmEtaGFuZC1wb2ludC1kb3duOmJlZm9yZXtjb250ZW50OiJcZjBhNyJ9LmZhLWhhbmQtcG9pbnQtbGVmdDpiZWZvcmV7Y29udGVudDoiXGYwYTUifS5mYS1oYW5kLXBvaW50LXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZjBhNCJ9LmZhLWhhbmQtcG9pbnQtdXA6YmVmb3Jle2NvbnRlbnQ6IlxmMGE2In0uZmEtaGFuZC1wb2ludGVyOmJlZm9yZXtjb250ZW50OiJcZjI1YSJ9LmZhLWhhbmRzLXVzZDpiZWZvcmV7Y29udGVudDoiXGY0YzUifS5mYS1oYXNodGFnOmJlZm9yZXtjb250ZW50OiJcZjI5MiJ9LmZhLWhlYXJ0OmJlZm9yZXtjb250ZW50OiJcZjAwNCJ9LmZhLWhlYXJ0LWJyb2tlbjpiZWZvcmV7Y29udGVudDoiXGY3YTkifS5mYS1oZXhhZ29uOmJlZm9yZXtjb250ZW50OiJcZjMxMiJ9LmZhLWhpc3Rvcnk6YmVmb3Jle2NvbnRlbnQ6IlxmMWRhIn0uZmEtaG9tZTpiZWZvcmV7Y29udGVudDoiXGYwMTUifS5mYS1ob21lLWFsdDpiZWZvcmV7Y29udGVudDoiXGY4MGEifS5mYS1ob21lLWxnOmJlZm9yZXtjb250ZW50OiJcZjgwYiJ9LmZhLWhvbWUtbGctYWx0OmJlZm9yZXtjb250ZW50OiJcZjgwYyJ9LmZhLWhvdXNlOmJlZm9yZXtjb250ZW50OiJcZTAwZCJ9LmZhLWktY3Vyc29yOmJlZm9yZXtjb250ZW50OiJcZjI0NiJ9LmZhLWluYm94OmJlZm9yZXtjb250ZW50OiJcZjAxYyJ9LmZhLWluYm94LWluOmJlZm9yZXtjb250ZW50OiJcZjMxMCJ9LmZhLWluYm94LW91dDpiZWZvcmV7Y29udGVudDoiXGYzMTEifS5mYS1pbmZvOmJlZm9yZXtjb250ZW50OiJcZjEyOSJ9LmZhLWluZm8tY2lyY2xlOmJlZm9yZXtjb250ZW50OiJcZjA1YSJ9LmZhLWluZm8tc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjMwZiJ9LmZhLWluc3RhZ3JhbTpiZWZvcmV7Y29udGVudDoiXGYxNmQifS5mYS1pbnN0YWdyYW0tc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZTA1NSJ9LmZhLWtleTpiZWZvcmV7Y29udGVudDoiXGYwODQifS5mYS1sYW5ndWFnZTpiZWZvcmV7Y29udGVudDoiXGYxYWIifS5mYS1sYXNzbzpiZWZvcmV7Y29udGVudDoiXGY4YzgifS5mYS1sZWFmOmJlZm9yZXtjb250ZW50OiJcZjA2YyJ9LmZhLWxldmVsLWRvd246YmVmb3Jle2NvbnRlbnQ6IlxmMTQ5In0uZmEtbGV2ZWwtZG93bi1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmM2JlIn0uZmEtbGV2ZWwtdXA6YmVmb3Jle2NvbnRlbnQ6IlxmMTQ4In0uZmEtbGV2ZWwtdXAtYWx0OmJlZm9yZXtjb250ZW50OiJcZjNiZiJ9LmZhLWxpbmtlZGluOmJlZm9yZXtjb250ZW50OiJcZjA4YyJ9LmZhLWxpbmtlZGluLWluOmJlZm9yZXtjb250ZW50OiJcZjBlMSJ9LmZhLWxvY2F0aW9uLWFycm93OmJlZm9yZXtjb250ZW50OiJcZjEyNCJ9LmZhLWxvbmctYXJyb3ctYWx0LWRvd246YmVmb3Jle2NvbnRlbnQ6IlxmMzA5In0uZmEtbG9uZy1hcnJvdy1hbHQtbGVmdDpiZWZvcmV7Y29udGVudDoiXGYzMGEifS5mYS1sb25nLWFycm93LWFsdC1yaWdodDpiZWZvcmV7Y29udGVudDoiXGYzMGIifS5mYS1sb25nLWFycm93LWFsdC11cDpiZWZvcmV7Y29udGVudDoiXGYzMGMifS5mYS1sb25nLWFycm93LWRvd246YmVmb3Jle2NvbnRlbnQ6IlxmMTc1In0uZmEtbG9uZy1hcnJvdy1sZWZ0OmJlZm9yZXtjb250ZW50OiJcZjE3NyJ9LmZhLWxvbmctYXJyb3ctcmlnaHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTc4In0uZmEtbG9uZy1hcnJvdy11cDpiZWZvcmV7Y29udGVudDoiXGYxNzYifS5mYS1tYWdpYzpiZWZvcmV7Y29udGVudDoiXGYwZDAifS5mYS1tYXA6YmVmb3Jle2NvbnRlbnQ6IlxmMjc5In0uZmEtbWFwLW1hcmtlcjpiZWZvcmV7Y29udGVudDoiXGYwNDEifS5mYS1tYXAtbWFya2VyLWFsdDpiZWZvcmV7Y29udGVudDoiXGYzYzUifS5mYS1tYXAtcGluOmJlZm9yZXtjb250ZW50OiJcZjI3NiJ9LmZhLW1hcC1zaWduczpiZWZvcmV7Y29udGVudDoiXGYyNzcifS5mYS1tYXJrZXI6YmVmb3Jle2NvbnRlbnQ6IlxmNWExIn0uZmEtbWVkYWw6YmVmb3Jle2NvbnRlbnQ6IlxmNWEyIn0uZmEtbWVoOmJlZm9yZXtjb250ZW50OiJcZjExYSJ9LmZhLW1pY3JvY2hpcDpiZWZvcmV7Y29udGVudDoiXGYyZGIifS5mYS1taWNyb3Bob25lOmJlZm9yZXtjb250ZW50OiJcZjEzMCJ9LmZhLW1pY3JvcGhvbmUtYWx0OmJlZm9yZXtjb250ZW50OiJcZjNjOSJ9LmZhLW1pY3JvcGhvbmUtYWx0LXNsYXNoOmJlZm9yZXtjb250ZW50OiJcZjUzOSJ9LmZhLW1pY3JvcGhvbmUtc2xhc2g6YmVmb3Jle2NvbnRlbnQ6IlxmMTMxIn0uZmEtbWluZC1zaGFyZTpiZWZvcmV7Y29udGVudDoiXGY2NzcifS5mYS1taW51czpiZWZvcmV7Y29udGVudDoiXGYwNjgifS5mYS1taW51cy1jaXJjbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMDU2In0uZmEtbWludXMtaGV4YWdvbjpiZWZvcmV7Y29udGVudDoiXGYzMDcifS5mYS1taW51cy1vY3RhZ29uOmJlZm9yZXtjb250ZW50OiJcZjMwOCJ9LmZhLW1pbnVzLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYxNDYifS5mYS1tb2JpbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMTBiIn0uZmEtbW9iaWxlLWFsdDpiZWZvcmV7Y29udGVudDoiXGYzY2QifS5mYS1tb2JpbGUtYW5kcm9pZDpiZWZvcmV7Y29udGVudDoiXGYzY2UifS5mYS1tb2JpbGUtYW5kcm9pZC1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmM2NmIn0uZmEtbW9uZXktY2hlY2s6YmVmb3Jle2NvbnRlbnQ6IlxmNTNjIn0uZmEtbW9uZXktY2hlY2stYWx0OmJlZm9yZXtjb250ZW50OiJcZjUzZCJ9LmZhLW1vbmV5LWNoZWNrLWVkaXQ6YmVmb3Jle2NvbnRlbnQ6IlxmODcyIn0uZmEtbW9uZXktY2hlY2stZWRpdC1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmODczIn0uZmEtbW90b3JjeWNsZTpiZWZvcmV7Y29udGVudDoiXGYyMWMifS5mYS1tb3VudGFpbjpiZWZvcmV7Y29udGVudDoiXGY2ZmMifS5mYS1tb3VzZS1wb2ludGVyOmJlZm9yZXtjb250ZW50OiJcZjI0NSJ9LmZhLW1wMy1wbGF5ZXI6YmVmb3Jle2NvbnRlbnQ6IlxmOGNlIn0uZmEtbXVzaWM6YmVmb3Jle2NvbnRlbnQ6IlxmMDAxIn0uZmEtb2N0YWdvbjpiZWZvcmV7Y29udGVudDoiXGYzMDYifS5mYS1vaWwtY2FuOmJlZm9yZXtjb250ZW50OiJcZjYxMyJ9LmZhLW9pbC10ZW1wOmJlZm9yZXtjb250ZW50OiJcZjYxNCJ9LmZhLXBhaW50LWJydXNoOmJlZm9yZXtjb250ZW50OiJcZjFmYyJ9LmZhLXBhbGV0dGU6YmVmb3Jle2NvbnRlbnQ6IlxmNTNmIn0uZmEtcGFwZXItcGxhbmU6YmVmb3Jle2NvbnRlbnQ6IlxmMWQ4In0uZmEtcGFzdGU6YmVmb3Jle2NvbnRlbnQ6IlxmMGVhIn0uZmEtcGF5cGFsOmJlZm9yZXtjb250ZW50OiJcZjFlZCJ9LmZhLXBlbjpiZWZvcmV7Y29udGVudDoiXGYzMDQifS5mYS1wZW4tYWx0OmJlZm9yZXtjb250ZW50OiJcZjMwNSJ9LmZhLXBlbi1mYW5jeTpiZWZvcmV7Y29udGVudDoiXGY1YWMifS5mYS1wZW5jaWw6YmVmb3Jle2NvbnRlbnQ6IlxmMDQwIn0uZmEtcGVuY2lsLWFsdDpiZWZvcmV7Y29udGVudDoiXGYzMDMifS5mYS1wZW5jaWwtcnVsZXI6YmVmb3Jle2NvbnRlbnQ6IlxmNWFlIn0uZmEtcGVvcGxlLWFycm93czpiZWZvcmV7Y29udGVudDoiXGUwNjgifS5mYS1waG9uZTpiZWZvcmV7Y29udGVudDoiXGYwOTUifS5mYS1waG9uZS1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmODc5In0uZmEtcGhvbmUtc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjA5OCJ9LmZhLXBob25lLXNxdWFyZS1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmODdiIn0uZmEtcGhvbmUtdm9sdW1lOmJlZm9yZXtjb250ZW50OiJcZjJhMCJ9LmZhLXBob3RvLXZpZGVvOmJlZm9yZXtjb250ZW50OiJcZjg3YyJ9LmZhLXBpbnRlcmVzdDpiZWZvcmV7Y29udGVudDoiXGYwZDIifS5mYS1waW50ZXJlc3QtcDpiZWZvcmV7Y29udGVudDoiXGYyMzEifS5mYS1waW50ZXJlc3Qtc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjBkMyJ9LmZhLXBsYXk6YmVmb3Jle2NvbnRlbnQ6IlxmMDRiIn0uZmEtcGxheS1jaXJjbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMTQ0In0uZmEtcGx1ZzpiZWZvcmV7Y29udGVudDoiXGYxZTYifS5mYS1wbHVzOmJlZm9yZXtjb250ZW50OiJcZjA2NyJ9LmZhLXBsdXMtY2lyY2xlOmJlZm9yZXtjb250ZW50OiJcZjA1NSJ9LmZhLXBsdXMtaGV4YWdvbjpiZWZvcmV7Y29udGVudDoiXGYzMDAifS5mYS1wbHVzLW9jdGFnb246YmVmb3Jle2NvbnRlbnQ6IlxmMzAxIn0uZmEtcGx1cy1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMGZlIn0uZmEtcG9vOmJlZm9yZXtjb250ZW50OiJcZjJmZSJ9LmZhLXByaW50OmJlZm9yZXtjb250ZW50OiJcZjAyZiJ9LmZhLXFyY29kZTpiZWZvcmV7Y29udGVudDoiXGYwMjkifS5mYS1xdWVzdGlvbjpiZWZvcmV7Y29udGVudDoiXGYxMjgifS5mYS1xdWVzdGlvbi1jaXJjbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMDU5In0uZmEtcXVlc3Rpb24tc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjJmZCJ9LmZhLXF1b3RlLWxlZnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTBkIn0uZmEtcXVvdGUtcmlnaHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTBlIn0uZmEtcmFuZG9tOmJlZm9yZXtjb250ZW50OiJcZjA3NCJ9LmZhLXJlY3RhbmdsZS1sYW5kc2NhcGU6YmVmb3Jle2NvbnRlbnQ6IlxmMmZhIn0uZmEtcmVjdGFuZ2xlLXBvcnRyYWl0OmJlZm9yZXtjb250ZW50OiJcZjJmYiJ9LmZhLXJlY3RhbmdsZS13aWRlOmJlZm9yZXtjb250ZW50OiJcZjJmYyJ9LmZhLXJlY3ljbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMWI4In0uZmEtcmVkbzpiZWZvcmV7Y29udGVudDoiXGYwMWUifS5mYS1yZWRvLWFsdDpiZWZvcmV7Y29udGVudDoiXGYyZjkifS5mYS1yZXBlYXQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzYzIn0uZmEtcmVwZWF0LTE6YmVmb3Jle2NvbnRlbnQ6IlxmMzY1In0uZmEtcmVwZWF0LTEtYWx0OmJlZm9yZXtjb250ZW50OiJcZjM2NiJ9LmZhLXJlcGVhdC1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzY0In0uZmEtcmVwbHk6YmVmb3Jle2NvbnRlbnQ6IlxmM2U1In0uZmEtcmVwbHktYWxsOmJlZm9yZXtjb250ZW50OiJcZjEyMiJ9LmZhLXJldHdlZXQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDc5In0uZmEtcmV0d2VldC1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzYxIn0uZmEtcm9hZDpiZWZvcmV7Y29udGVudDoiXGYwMTgifS5mYS1yb2JvdDpiZWZvcmV7Y29udGVudDoiXGY1NDQifS5mYS1yc3M6YmVmb3Jle2NvbnRlbnQ6IlxmMDllIn0uZmEtcnNzLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYxNDMifS5mYS1ydjpiZWZvcmV7Y29udGVudDoiXGY3YmUifS5mYS1zYXZlOmJlZm9yZXtjb250ZW50OiJcZjBjNyJ9LmZhLXNjcmV3ZHJpdmVyOmJlZm9yZXtjb250ZW50OiJcZjU0YSJ9LmZhLXNlYXJjaDpiZWZvcmV7Y29udGVudDoiXGYwMDIifS5mYS1zZWFyY2gtbWludXM6YmVmb3Jle2NvbnRlbnQ6IlxmMDEwIn0uZmEtc2VhcmNoLXBsdXM6YmVmb3Jle2NvbnRlbnQ6IlxmMDBlIn0uZmEtc2hhcGVzOmJlZm9yZXtjb250ZW50OiJcZjYxZiJ9LmZhLXNoYXJlOmJlZm9yZXtjb250ZW50OiJcZjA2NCJ9LmZhLXNoYXJlLWFsbDpiZWZvcmV7Y29udGVudDoiXGYzNjcifS5mYS1zaGFyZS1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMWUwIn0uZmEtc2hhcmUtYWx0LXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYxZTEifS5mYS1zaGFyZS1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMTRkIn0uZmEtc2hpZWxkOmJlZm9yZXtjb250ZW50OiJcZjEzMiJ9LmZhLXNoaWVsZC1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmM2VkIn0uZmEtc2hvcHBpbmctYmFza2V0OmJlZm9yZXtjb250ZW50OiJcZjI5MSJ9LmZhLXNob3BwaW5nLWNhcnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDdhIn0uZmEtc2h1dHRsZS12YW46YmVmb3Jle2NvbnRlbnQ6IlxmNWI2In0uZmEtc2lnbi1pbjpiZWZvcmV7Y29udGVudDoiXGYwOTAifS5mYS1zaWduLWluLWFsdDpiZWZvcmV7Y29udGVudDoiXGYyZjYifS5mYS1zaWduLW91dDpiZWZvcmV7Y29udGVudDoiXGYwOGIifS5mYS1zaWduLW91dC1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMmY1In0uZmEtc2lnbmFsOmJlZm9yZXtjb250ZW50OiJcZjAxMiJ9LmZhLXNpZ25hbC1zdHJlYW06YmVmb3Jle2NvbnRlbnQ6IlxmOGRkIn0uZmEtc2l0ZW1hcDpiZWZvcmV7Y29udGVudDoiXGYwZTgifS5mYS1zbGlkZXJzLWg6YmVmb3Jle2NvbnRlbnQ6IlxmMWRlIn0uZmEtc2xpZGVycy1oLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYzZjAifS5mYS1zbGlkZXJzLXY6YmVmb3Jle2NvbnRlbnQ6IlxmM2YxIn0uZmEtc2xpZGVycy12LXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYzZjIifS5mYS1zbWlsZTpiZWZvcmV7Y29udGVudDoiXGYxMTgifS5mYS1zbXM6YmVmb3Jle2NvbnRlbnQ6IlxmN2NkIn0uZmEtc25vd2ZsYWtlOmJlZm9yZXtjb250ZW50OiJcZjJkYyJ9LmZhLXNvcnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMGRjIn0uZmEtc29ydC1hbHBoYS1kb3duOmJlZm9yZXtjb250ZW50OiJcZjE1ZCJ9LmZhLXNvcnQtYWxwaGEtZG93bi1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmODgxIn0uZmEtc29ydC1hbHBoYS11cDpiZWZvcmV7Y29udGVudDoiXGYxNWUifS5mYS1zb3J0LWFscGhhLXVwLWFsdDpiZWZvcmV7Y29udGVudDoiXGY4ODIifS5mYS1zb3J0LWFsdDpiZWZvcmV7Y29udGVudDoiXGY4ODMifS5mYS1zb3J0LWFtb3VudC1kb3duOmJlZm9yZXtjb250ZW50OiJcZjE2MCJ9LmZhLXNvcnQtYW1vdW50LWRvd24tYWx0OmJlZm9yZXtjb250ZW50OiJcZjg4NCJ9LmZhLXNvcnQtYW1vdW50LXVwOmJlZm9yZXtjb250ZW50OiJcZjE2MSJ9LmZhLXNvcnQtYW1vdW50LXVwLWFsdDpiZWZvcmV7Y29udGVudDoiXGY4ODUifS5mYS1zb3J0LWNpcmNsZTpiZWZvcmV7Y29udGVudDoiXGUwMzAifS5mYS1zb3J0LWNpcmNsZS1kb3duOmJlZm9yZXtjb250ZW50OiJcZTAzMSJ9LmZhLXNvcnQtY2lyY2xlLXVwOmJlZm9yZXtjb250ZW50OiJcZTAzMiJ9LmZhLXNvcnQtZG93bjpiZWZvcmV7Y29udGVudDoiXGYwZGQifS5mYS1zb3J0LW51bWVyaWMtZG93bjpiZWZvcmV7Y29udGVudDoiXGYxNjIifS5mYS1zb3J0LW51bWVyaWMtZG93bi1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmODg2In0uZmEtc29ydC1udW1lcmljLXVwOmJlZm9yZXtjb250ZW50OiJcZjE2MyJ9LmZhLXNvcnQtbnVtZXJpYy11cC1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmODg3In0uZmEtc29ydC1zaGFwZXMtZG93bjpiZWZvcmV7Y29udGVudDoiXGY4ODgifS5mYS1zb3J0LXNoYXBlcy1kb3duLWFsdDpiZWZvcmV7Y29udGVudDoiXGY4ODkifS5mYS1zb3J0LXNoYXBlcy11cDpiZWZvcmV7Y29udGVudDoiXGY4OGEifS5mYS1zb3J0LXNoYXBlcy11cC1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmODhiIn0uZmEtc29ydC1zaXplLWRvd246YmVmb3Jle2NvbnRlbnQ6IlxmODhjIn0uZmEtc29ydC1zaXplLWRvd24tYWx0OmJlZm9yZXtjb250ZW50OiJcZjg4ZCJ9LmZhLXNvcnQtc2l6ZS11cDpiZWZvcmV7Y29udGVudDoiXGY4OGUifS5mYS1zb3J0LXNpemUtdXAtYWx0OmJlZm9yZXtjb250ZW50OiJcZjg4ZiJ9LmZhLXNvcnQtdXA6YmVmb3Jle2NvbnRlbnQ6IlxmMGRlIn0uZmEtc3BhZGU6YmVmb3Jle2NvbnRlbnQ6IlxmMmY0In0uZmEtc3Bpbm5lcjpiZWZvcmV7Y29udGVudDoiXGYxMTAifS5mYS1zcGlubmVyLXRoaXJkOmJlZm9yZXtjb250ZW50OiJcZjNmNCJ9LmZhLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYwYzgifS5mYS1zdGFyOmJlZm9yZXtjb250ZW50OiJcZjAwNSJ9LmZhLXN0YXItZXhjbGFtYXRpb246YmVmb3Jle2NvbnRlbnQ6IlxmMmYzIn0uZmEtc3Rhci1oYWxmOmJlZm9yZXtjb250ZW50OiJcZjA4OSJ9LmZhLXN0YXItaGFsZi1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmNWMwIn0uZmEtc3RlZXJpbmctd2hlZWw6YmVmb3Jle2NvbnRlbnQ6IlxmNjIyIn0uZmEtc3RpY2t5LW5vdGU6YmVmb3Jle2NvbnRlbnQ6IlxmMjQ5In0uZmEtc3RvcHdhdGNoOmJlZm9yZXtjb250ZW50OiJcZjJmMiJ9LmZhLXN0b3JlOmJlZm9yZXtjb250ZW50OiJcZjU0ZSJ9LmZhLXN0b3JlLWFsdDpiZWZvcmV7Y29udGVudDoiXGY1NGYifS5mYS1zdWl0Y2FzZS1yb2xsaW5nOmJlZm9yZXtjb250ZW50OiJcZjVjMSJ9LmZhLXN1bjpiZWZvcmV7Y29udGVudDoiXGYxODUifS5mYS1zeW5jOmJlZm9yZXtjb250ZW50OiJcZjAyMSJ9LmZhLXN5bmMtYWx0OmJlZm9yZXtjb250ZW50OiJcZjJmMSJ9LmZhLXRhYmxldDpiZWZvcmV7Y29udGVudDoiXGYxMGEifS5mYS10YWJsZXQtYWx0OmJlZm9yZXtjb250ZW50OiJcZjNmYSJ9LmZhLXRhY2hvbWV0ZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMGU0In0uZmEtdGFjaG9tZXRlci1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmM2ZkIn0uZmEtdGFjaG9tZXRlci1hbHQtYXZlcmFnZTpiZWZvcmV7Y29udGVudDoiXGY2MjQifS5mYS10YWNob21ldGVyLWFsdC1mYXN0OmJlZm9yZXtjb250ZW50OiJcZjYyNSJ9LmZhLXRhY2hvbWV0ZXItYWx0LWZhc3Rlc3Q6YmVmb3Jle2NvbnRlbnQ6IlxmNjI2In0uZmEtdGFjaG9tZXRlci1hbHQtc2xvdzpiZWZvcmV7Y29udGVudDoiXGY2MjcifS5mYS10YWNob21ldGVyLWFsdC1zbG93ZXN0OmJlZm9yZXtjb250ZW50OiJcZjYyOCJ9LmZhLXRhY2hvbWV0ZXItYXZlcmFnZTpiZWZvcmV7Y29udGVudDoiXGY2MjkifS5mYS10YWNob21ldGVyLWZhc3Q6YmVmb3Jle2NvbnRlbnQ6IlxmNjJhIn0uZmEtdGFjaG9tZXRlci1mYXN0ZXN0OmJlZm9yZXtjb250ZW50OiJcZjYyYiJ9LmZhLXRhY2hvbWV0ZXItc2xvdzpiZWZvcmV7Y29udGVudDoiXGY2MmMifS5mYS10YWNob21ldGVyLXNsb3dlc3Q6YmVmb3Jle2NvbnRlbnQ6IlxmNjJkIn0uZmEtdGFnOmJlZm9yZXtjb250ZW50OiJcZjAyYiJ9LmZhLXRhZ3M6YmVmb3Jle2NvbnRlbnQ6IlxmMDJjIn0uZmEtdGF4aTpiZWZvcmV7Y29udGVudDoiXGYxYmEifS5mYS10ZW1wZXJhdHVyZS1oaWdoOmJlZm9yZXtjb250ZW50OiJcZjc2OSJ9LmZhLXRlbXBlcmF0dXJlLWxvdzpiZWZvcmV7Y29udGVudDoiXGY3NmIifS5mYS10ZXh0LWhlaWdodDpiZWZvcmV7Y29udGVudDoiXGYwMzQifS5mYS10ZXh0LXdpZHRoOmJlZm9yZXtjb250ZW50OiJcZjAzNSJ9LmZhLXRoZXJtb21ldGVyLWhhbGY6YmVmb3Jle2NvbnRlbnQ6IlxmMmM5In0uZmEtdGh1bWJzLWRvd246YmVmb3Jle2NvbnRlbnQ6IlxmMTY1In0uZmEtdGh1bWJzLXVwOmJlZm9yZXtjb250ZW50OiJcZjE2NCJ9LmZhLXRpY2tldDpiZWZvcmV7Y29udGVudDoiXGYxNDUifS5mYS10aWt0b2s6YmVmb3Jle2NvbnRlbnQ6IlxlMDdiIn0uZmEtdGltZXM6YmVmb3Jle2NvbnRlbnQ6IlxmMDBkIn0uZmEtdGltZXMtY2lyY2xlOmJlZm9yZXtjb250ZW50OiJcZjA1NyJ9LmZhLXRpbWVzLWhleGFnb246YmVmb3Jle2NvbnRlbnQ6IlxmMmVlIn0uZmEtdGltZXMtb2N0YWdvbjpiZWZvcmV7Y29udGVudDoiXGYyZjAifS5mYS10aW1lcy1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMmQzIn0uZmEtdGludDpiZWZvcmV7Y29udGVudDoiXGYwNDMifS5mYS10aXJlOmJlZm9yZXtjb250ZW50OiJcZjYzMSJ9LmZhLXRpcmUtZmxhdDpiZWZvcmV7Y29udGVudDoiXGY2MzIifS5mYS10aXJlLXByZXNzdXJlLXdhcm5pbmc6YmVmb3Jle2NvbnRlbnQ6IlxmNjMzIn0uZmEtdGlyZS1ydWdnZWQ6YmVmb3Jle2NvbnRlbnQ6IlxmNjM0In0uZmEtdG9nZ2xlLW9mZjpiZWZvcmV7Y29udGVudDoiXGYyMDQifS5mYS10b2dnbGUtb246YmVmb3Jle2NvbnRlbnQ6IlxmMjA1In0uZmEtdG9vbHM6YmVmb3Jle2NvbnRlbnQ6IlxmN2Q5In0uZmEtdHJhaWxlcjpiZWZvcmV7Y29udGVudDoiXGUwNDEifS5mYS10cmFzaDpiZWZvcmV7Y29udGVudDoiXGYxZjgifS5mYS10cmFzaC1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMmVkIn0uZmEtdHJhc2gtcmVzdG9yZTpiZWZvcmV7Y29udGVudDoiXGY4MjkifS5mYS10cmFzaC1yZXN0b3JlLWFsdDpiZWZvcmV7Y29udGVudDoiXGY4MmEifS5mYS10cmFzaC11bmRvOmJlZm9yZXtjb250ZW50OiJcZjg5NSJ9LmZhLXRyYXNoLXVuZG8tYWx0OmJlZm9yZXtjb250ZW50OiJcZjg5NiJ9LmZhLXRyaWFuZ2xlOmJlZm9yZXtjb250ZW50OiJcZjJlYyJ9LmZhLXRyb3BoeTpiZWZvcmV7Y29udGVudDoiXGYwOTEifS5mYS10cm9waHktYWx0OmJlZm9yZXtjb250ZW50OiJcZjJlYiJ9LmZhLXRydWNrOmJlZm9yZXtjb250ZW50OiJcZjBkMSJ9LmZhLXRydWNrLWxvYWRpbmc6YmVmb3Jle2NvbnRlbnQ6IlxmNGRlIn0uZmEtdHJ1Y2stbW9uc3RlcjpiZWZvcmV7Y29udGVudDoiXGY2M2IifS5mYS10cnVjay1waWNrdXA6YmVmb3Jle2NvbnRlbnQ6IlxmNjNjIn0uZmEtdHR5OmJlZm9yZXtjb250ZW50OiJcZjFlNCJ9LmZhLXR2OmJlZm9yZXtjb250ZW50OiJcZjI2YyJ9LmZhLXR3aXR0ZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMDk5In0uZmEtdHdpdHRlci1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMDgxIn0uZmEtdW5kbzpiZWZvcmV7Y29udGVudDoiXGYwZTIifS5mYS11bmRvLWFsdDpiZWZvcmV7Y29udGVudDoiXGYyZWEifS5mYS11cGxvYWQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDkzIn0uZmEtdXNkLWNpcmNsZTpiZWZvcmV7Y29udGVudDoiXGYyZTgifS5mYS11c2Qtc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjJlOSJ9LmZhLXVzZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMDA3In0uZmEtdXNlci1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmNDA2In0uZmEtdXNlci1jaGVjazpiZWZvcmV7Y29udGVudDoiXGY0ZmMifS5mYS11c2VyLWNpcmNsZTpiZWZvcmV7Y29udGVudDoiXGYyYmQifS5mYS11c2VyLWZyaWVuZHM6YmVmb3Jle2NvbnRlbnQ6IlxmNTAwIn0uZmEtdXNlcnM6YmVmb3Jle2NvbnRlbnQ6IlxmMGMwIn0uZmEtdmlkZW86YmVmb3Jle2NvbnRlbnQ6IlxmMDNkIn0uZmEtdm9pY2VtYWlsOmJlZm9yZXtjb250ZW50OiJcZjg5NyJ9LmZhLXZvbHVtZTpiZWZvcmV7Y29udGVudDoiXGY2YTgifS5mYS12b2x1bWUtZG93bjpiZWZvcmV7Y29udGVudDoiXGYwMjcifS5mYS12b2x1bWUtbXV0ZTpiZWZvcmV7Y29udGVudDoiXGY2YTkifS5mYS12b2x1bWUtb2ZmOmJlZm9yZXtjb250ZW50OiJcZjAyNiJ9LmZhLXZvbHVtZS1zbGFzaDpiZWZvcmV7Y29udGVudDoiXGYyZTIifS5mYS12b2x1bWUtdXA6YmVmb3Jle2NvbnRlbnQ6IlxmMDI4In0uZmEtd2Fnb24tY292ZXJlZDpiZWZvcmV7Y29udGVudDoiXGY4ZWUifS5mYS13YWxraWUtdGFsa2llOmJlZm9yZXtjb250ZW50OiJcZjhlZiJ9LmZhLXdlYmNhbTpiZWZvcmV7Y29udGVudDoiXGY4MzIifS5mYS13ZWJjYW0tc2xhc2g6YmVmb3Jle2NvbnRlbnQ6IlxmODMzIn0uZmEtd2hlZWxjaGFpcjpiZWZvcmV7Y29udGVudDoiXGYxOTMifS5mYS13aWZpOmJlZm9yZXtjb250ZW50OiJcZjFlYiJ9LmZhLXdyZW5jaDpiZWZvcmV7Y29udGVudDoiXGYwYWQifS5mYS15b3V0dWJlOmJlZm9yZXtjb250ZW50OiJcZjE2NyJ9LmZhLXlvdXR1YmUtc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjQzMSJ9LmZhLXNoaWVsZC1jaGVjazpiZWZvcmV7Y29udGVudDoiXGYyZjcifS5mYS1saW5rOmJlZm9yZXtjb250ZW50OiJcZjBjMSJ9LmZhLXVubGluazpiZWZvcmV7Y29udGVudDoiXGYxMjcifS5mYS1iYWRnZS1kb2xsYXI6YmVmb3Jle2NvbnRlbnQ6IlxmNjQ1In0uZmEtcGVuLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYxNGIifS5mYS1jb21tZW50LWFsdC1kb3RzOmJlZm9yZXtjb250ZW50OiJcZjRhMyJ9LmZhLWFycm93LWRvd24tdG8tbGluZTpiZWZvcmV7Y29udGVudDoiXGYzM2QifS5mYS1yaWdodDpiZWZvcmV7Y29udGVudDoiXGYzNTYiO30uc3Itb25seXtib3JkZXI6MDtjbGlwOnJlY3QoMCwwLDAsMCk7aGVpZ2h0OjFweDttYXJnaW46LTFweDtvdmVyZmxvdzpoaWRkZW47cGFkZGluZzowO3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjFweH0uc3Itb25seS1mb2N1c2FibGU6YWN0aXZlLC5zci1vbmx5LWZvY3VzYWJsZTpmb2N1c3tjbGlwOmF1dG87aGVpZ2h0OmF1dG87bWFyZ2luOjA7b3ZlcmZsb3c6dmlzaWJsZTtwb3NpdGlvbjpzdGF0aWM7d2lkdGg6YXV0b31AZm9udC1mYWNle2ZvbnQtZmFtaWx5OidGb250IEF3ZXNvbWUgNSBCcmFuZHMnO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtd2VpZ2h0OjQwMDtmb250LWRpc3BsYXk6YmxvY2s7c3JjOnVybCgvL2ZvbnRzLmQyY21lZGlhLmNhL3dlYmZvbnRzL2Rlc2t0b3AtYXdlc29tZS93ZWJmb250cy9mYS1icmFuZHMtNDAwLmVvdCk7c3JjOnVybCgvL2ZvbnRzLmQyY21lZGlhLmNhL3dlYmZvbnRzL2Rlc2t0b3AtYXdlc29tZS93ZWJmb250cy9mYS1icmFuZHMtNDAwLmVvdD8jaWVmaXgpIGZvcm1hdCgiZW1iZWRkZWQtb3BlbnR5cGUiKSx1cmwoLy9mb250cy5kMmNtZWRpYS5jYS93ZWJmb250cy9kZXNrdG9wLWF3ZXNvbWUvd2ViZm9udHMvZmEtYnJhbmRzLTQwMC53b2ZmMikgZm9ybWF0KCJ3b2ZmMiIpLHVybCgvL2ZvbnRzLmQyY21lZGlhLmNhL3dlYmZvbnRzL2Rlc2t0b3AtYXdlc29tZS93ZWJmb250cy9mYS1icmFuZHMtNDAwLndvZmYpIGZvcm1hdCgid29mZiIpLHVybCgvL2ZvbnRzLmQyY21lZGlhLmNhL3dlYmZvbnRzL2Rlc2t0b3AtYXdlc29tZS93ZWJmb250cy9mYS1icmFuZHMtNDAwLnR0ZikgZm9ybWF0KCJ0cnVldHlwZSIpLHVybCgvL2ZvbnRzLmQyY21lZGlhLmNhL3dlYmZvbnRzL2Rlc2t0b3AtYXdlc29tZS93ZWJmb250cy9mYS1icmFuZHMtNDAwLnN2ZyNmb250YXdlc29tZSkgZm9ybWF0KCJzdmciKX0uZmFie2ZvbnQtZmFtaWx5OidGb250IEF3ZXNvbWUgNSBCcmFuZHMnO2ZvbnQtd2VpZ2h0OjQwMH1AZm9udC1mYWNle2ZvbnQtZmFtaWx5OidGb250IEF3ZXNvbWUgNSBQcm8nO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtd2VpZ2h0OjMwMDtmb250LWRpc3BsYXk6YmxvY2s7c3JjOnVybCgvL2ZvbnRzLmQyY21lZGlhLmNhL3dlYmZvbnRzL2Rlc2t0b3AtYXdlc29tZS93ZWJmb250cy9mYS1saWdodC0zMDAuZW90KTtzcmM6dXJsKC8vZm9udHMuZDJjbWVkaWEuY2Evd2ViZm9udHMvZGVza3RvcC1hd2Vzb21lL3dlYmZvbnRzL2ZhLWxpZ2h0LTMwMC5lb3Q\/I2llZml4KSBmb3JtYXQoImVtYmVkZGVkLW9wZW50eXBlIiksdXJsKC8vZm9udHMuZDJjbWVkaWEuY2Evd2ViZm9udHMvZGVza3RvcC1hd2Vzb21lL3dlYmZvbnRzL2ZhLWxpZ2h0LTMwMC53b2ZmMikgZm9ybWF0KCJ3b2ZmMiIpLHVybCgvL2ZvbnRzLmQyY21lZGlhLmNhL3dlYmZvbnRzL2Rlc2t0b3AtYXdlc29tZS93ZWJmb250cy9mYS1saWdodC0zMDAud29mZikgZm9ybWF0KCJ3b2ZmIiksdXJsKC8vZm9udHMuZDJjbWVkaWEuY2Evd2ViZm9udHMvZGVza3RvcC1hd2Vzb21lL3dlYmZvbnRzL2ZhLWxpZ2h0LTMwMC50dGYpIGZvcm1hdCgidHJ1ZXR5cGUiKSx1cmwoLy9mb250cy5kMmNtZWRpYS5jYS93ZWJmb250cy9kZXNrdG9wLWF3ZXNvbWUvd2ViZm9udHMvZmEtbGlnaHQtMzAwLnN2ZyNmb250YXdlc29tZSkgZm9ybWF0KCJzdmciKX0uZmFse2ZvbnQtZmFtaWx5OidGb250IEF3ZXNvbWUgNSBQcm8nO2ZvbnQtd2VpZ2h0OjMwMH1AZm9udC1mYWNle2ZvbnQtZmFtaWx5OidGb250IEF3ZXNvbWUgNSBQcm8nO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtd2VpZ2h0OjQwMDtmb250LWRpc3BsYXk6YmxvY2s7c3JjOnVybCgvL2ZvbnRzLmQyY21lZGlhLmNhL3dlYmZvbnRzL2Rlc2t0b3AtYXdlc29tZS93ZWJmb250cy9mYS1yZWd1bGFyLTQwMC5lb3QpO3NyYzp1cmwoLy9mb250cy5kMmNtZWRpYS5jYS93ZWJmb250cy9kZXNrdG9wLWF3ZXNvbWUvd2ViZm9udHMvZmEtcmVndWxhci00MDAuZW90PyNpZWZpeCkgZm9ybWF0KCJlbWJlZGRlZC1vcGVudHlwZSIpLHVybCgvL2ZvbnRzLmQyY21lZGlhLmNhL3dlYmZvbnRzL2Rlc2t0b3AtYXdlc29tZS93ZWJmb250cy9mYS1yZWd1bGFyLTQwMC53b2ZmMikgZm9ybWF0KCJ3b2ZmMiIpLHVybCgvL2ZvbnRzLmQyY21lZGlhLmNhL3dlYmZvbnRzL2Rlc2t0b3AtYXdlc29tZS93ZWJmb250cy9mYS1yZWd1bGFyLTQwMC53b2ZmKSBmb3JtYXQoIndvZmYiKSx1cmwoLy9mb250cy5kMmNtZWRpYS5jYS93ZWJmb250cy9kZXNrdG9wLWF3ZXNvbWUvd2ViZm9udHMvZmEtcmVndWxhci00MDAudHRmKSBmb3JtYXQoInRydWV0eXBlIiksdXJsKC8vZm9udHMuZDJjbWVkaWEuY2Evd2ViZm9udHMvZGVza3RvcC1hd2Vzb21lL3dlYmZvbnRzL2ZhLXJlZ3VsYXItNDAwLnN2ZyNmb250YXdlc29tZSkgZm9ybWF0KCJzdmciKX0uZmFye2ZvbnQtZmFtaWx5OidGb250IEF3ZXNvbWUgNSBQcm8nO2ZvbnQtd2VpZ2h0OjQwMH1AZm9udC1mYWNle2ZvbnQtZmFtaWx5OidGb250IEF3ZXNvbWUgNSBQcm8nO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtd2VpZ2h0OjkwMDtmb250LWRpc3BsYXk6YmxvY2s7c3JjOnVybCgvL2ZvbnRzLmQyY21lZGlhLmNhL3dlYmZvbnRzL2Rlc2t0b3AtYXdlc29tZS93ZWJmb250cy9mYS1zb2xpZC05MDAuZW90KTtzcmM6dXJsKC8vZm9udHMuZDJjbWVkaWEuY2Evd2ViZm9udHMvZGVza3RvcC1hd2Vzb21lL3dlYmZvbnRzL2ZhLXNvbGlkLTkwMC5lb3Q\/I2llZml4KSBmb3JtYXQoImVtYmVkZGVkLW9wZW50eXBlIiksdXJsKC8vZm9udHMuZDJjbWVkaWEuY2Evd2ViZm9udHMvZGVza3RvcC1hd2Vzb21lL3dlYmZvbnRzL2ZhLXNvbGlkLTkwMC53b2ZmMikgZm9ybWF0KCJ3b2ZmMiIpLHVybCgvL2ZvbnRzLmQyY21lZGlhLmNhL3dlYmZvbnRzL2Rlc2t0b3AtYXdlc29tZS93ZWJmb250cy9mYS1zb2xpZC05MDAud29mZikgZm9ybWF0KCJ3b2ZmIiksdXJsKC8vZm9udHMuZDJjbWVkaWEuY2Evd2ViZm9udHMvZGVza3RvcC1hd2Vzb21lL3dlYmZvbnRzL2ZhLXNvbGlkLTkwMC50dGYpIGZvcm1hdCgidHJ1ZXR5cGUiKSx1cmwoLy9mb250cy5kMmNtZWRpYS5jYS93ZWJmb250cy9kZXNrdG9wLWF3ZXNvbWUvd2ViZm9udHMvZmEtc29saWQtOTAwLnN2ZyNmb250YXdlc29tZSkgZm9ybWF0KCJzdmciKX0uZmEsLmZhc3tmb250LWZhbWlseTonRm9udCBBd2Vzb21lIDUgUHJvJyFpbXBvcnRhbnQ7Zm9udC13ZWlnaHQ6OTAwfUBmb250LWZhY2V7Zm9udC1kaXNwbGF5OnN3YXA7Zm9udC1mYW1pbHk6J0QyQ0N1c3RvbUljb25zJztzcmM6bG9jYWwoRDJDQ3VzdG9tSWNvbnMpLHVybCgvL2ZvbnRzLmQyY21lZGlhLmNhL3dlYmZvbnRzL2QyYy1jdXN0b20taWNvbnMuZW90PyNpZWZpeCkgZm9ybWF0KCJlbWJlZGRlZC1vcGVudHlwZSIpLHVybCgvL2ZvbnRzLmQyY21lZGlhLmNhL3dlYmZvbnRzL2QyYy1jdXN0b20taWNvbnMud29mZikgZm9ybWF0KCJ3b2ZmIiksdXJsKC8vZm9udHMuZDJjbWVkaWEuY2Evd2ViZm9udHMvZDJjLWN1c3RvbS1pY29ucy50dGYpIGZvcm1hdCgidHJ1ZXR5cGUiKSx1cmwoLy9mb250cy5kMmNtZWRpYS5jYS93ZWJmb250cy9kMmMtY3VzdG9tLWljb25zLnN2ZyNzdmdGb250TmFtZSkgZm9ybWF0KCJzdmciKTtmb250LXdlaWdodDo0MDA7Zm9udC1zdHlsZTpub3JtYWx9LmZhLXgtdHdpdHRlcjpiZWZvcmV7Zm9udC1mYW1pbHk6J0QyQ0N1c3RvbUljb25zJyxzZXJpZjtjb250ZW50OiJcZTkwMCI7ZGlzcGxheTpibG9jaztmb250LXdlaWdodDo0MDA7Zm9udC1zdHlsZTpub3JtYWx9Ci8qKiAvY3NzL2ZvbnQtYXdlc29tZS5jb250ZW50Lm1pbi5jc3MgKiovCi5mYS01MDBweDpiZWZvcmV7Y29udGVudDoiXGYyNmUifS5mYS1hY2Nlc3NpYmxlLWljb246YmVmb3Jle2NvbnRlbnQ6IlxmMzY4In0uZmEtYWNjdXNvZnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzY5In0uZmEtYWRkcmVzcy1ib29rOmJlZm9yZXtjb250ZW50OiJcZjJiOSJ9LmZhLWFkZHJlc3MtY2FyZDpiZWZvcmV7Y29udGVudDoiXGYyYmIifS5mYS1hZGp1c3Q6YmVmb3Jle2NvbnRlbnQ6IlxmMDQyIn0uZmEtYWRuOmJlZm9yZXtjb250ZW50OiJcZjE3MCJ9LmZhLWFkdmVyc2FsOmJlZm9yZXtjb250ZW50OiJcZjM2YSJ9LmZhLWFmZmlsaWF0ZXRoZW1lOmJlZm9yZXtjb250ZW50OiJcZjM2YiJ9LmZhLWFsZ29saWE6YmVmb3Jle2NvbnRlbnQ6IlxmMzZjIn0uZmEtYWxpZ24tY2VudGVyOmJlZm9yZXtjb250ZW50OiJcZjAzNyJ9LmZhLWFsaWduLWp1c3RpZnk6YmVmb3Jle2NvbnRlbnQ6IlxmMDM5In0uZmEtYWxpZ24tbGVmdDpiZWZvcmV7Y29udGVudDoiXGYwMzYifS5mYS1hbGlnbi1yaWdodDpiZWZvcmV7Y29udGVudDoiXGYwMzgifS5mYS1hbWF6b246YmVmb3Jle2NvbnRlbnQ6IlxmMjcwIn0uZmEtYW1hem9uLXBheTpiZWZvcmV7Y29udGVudDoiXGY0MmMifS5mYS1hbWJ1bGFuY2U6YmVmb3Jle2NvbnRlbnQ6IlxmMGY5In0uZmEtYW1lcmljYW4tc2lnbi1sYW5ndWFnZS1pbnRlcnByZXRpbmc6YmVmb3Jle2NvbnRlbnQ6IlxmMmEzIn0uZmEtYW1pbGlhOmJlZm9yZXtjb250ZW50OiJcZjM2ZCJ9LmZhLWFuY2hvcjpiZWZvcmV7Y29udGVudDoiXGYxM2QifS5mYS1hbmRyb2lkOmJlZm9yZXtjb250ZW50OiJcZjE3YiJ9LmZhLWFuZ2VsbGlzdDpiZWZvcmV7Y29udGVudDoiXGYyMDkifS5mYS1hbmdsZS1kb3VibGUtZG93bjpiZWZvcmV7Y29udGVudDoiXGYxMDMifS5mYS1hbmdsZS1kb3VibGUtbGVmdDpiZWZvcmV7Y29udGVudDoiXGYxMDAifS5mYS1hbmdsZS1kb3VibGUtcmlnaHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTAxIn0uZmEtYW5nbGUtZG91YmxlLXVwOmJlZm9yZXtjb250ZW50OiJcZjEwMiJ9LmZhLWFuZ2xlLWRvd246YmVmb3Jle2NvbnRlbnQ6IlxmMTA3In0uZmEtYW5nbGUtbGVmdDpiZWZvcmV7Y29udGVudDoiXGYxMDQifS5mYS1hbmdsZS1yaWdodDpiZWZvcmV7Y29udGVudDoiXGYxMDUifS5mYS1hbmdsZS11cDpiZWZvcmV7Y29udGVudDoiXGYxMDYifS5mYS1hbmdyeWNyZWF0aXZlOmJlZm9yZXtjb250ZW50OiJcZjM2ZSJ9LmZhLWFuZ3VsYXI6YmVmb3Jle2NvbnRlbnQ6IlxmNDIwIn0uZmEtYXBwLXN0b3JlOmJlZm9yZXtjb250ZW50OiJcZjM2ZiJ9LmZhLWFwcC1zdG9yZS1pb3M6YmVmb3Jle2NvbnRlbnQ6IlxmMzcwIn0uZmEtYXBwZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMzcxIn0uZmEtYXBwbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMTc5In0uZmEtYXBwbGUtcGF5OmJlZm9yZXtjb250ZW50OiJcZjQxNSJ9LmZhLWFyY2hpdmU6YmVmb3Jle2NvbnRlbnQ6IlxmMTg3In0uZmEtYXJyb3ctYWx0LWNpcmNsZS1kb3duOmJlZm9yZXtjb250ZW50OiJcZjM1OCJ9LmZhLWFycm93LWFsdC1jaXJjbGUtbGVmdDpiZWZvcmV7Y29udGVudDoiXGYzNTkifS5mYS1hcnJvdy1hbHQtY2lyY2xlLXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZjM1YSJ9LmZhLWFycm93LWFsdC1jaXJjbGUtdXA6YmVmb3Jle2NvbnRlbnQ6IlxmMzViIn0uZmEtYXJyb3ctY2lyY2xlLWRvd246YmVmb3Jle2NvbnRlbnQ6IlxmMGFiIn0uZmEtYXJyb3ctY2lyY2xlLWxlZnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMGE4In0uZmEtYXJyb3ctY2lyY2xlLXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZjBhOSJ9LmZhLWFycm93LWNpcmNsZS11cDpiZWZvcmV7Y29udGVudDoiXGYwYWEifS5mYS1hcnJvdy1kb3duOmJlZm9yZXtjb250ZW50OiJcZjA2MyJ9LmZhLWFycm93LWxlZnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDYwIn0uZmEtYXJyb3ctcmlnaHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDYxIn0uZmEtYXJyb3ctdXA6YmVmb3Jle2NvbnRlbnQ6IlxmMDYyIn0uZmEtYXJyb3dzLWFsdDpiZWZvcmV7Y29udGVudDoiXGYwYjIifS5mYS1hcnJvd3MtYWx0LWg6YmVmb3Jle2NvbnRlbnQ6IlxmMzM3In0uZmEtYXJyb3dzLWFsdC12OmJlZm9yZXtjb250ZW50OiJcZjMzOCJ9LmZhLWFzc2lzdGl2ZS1saXN0ZW5pbmctc3lzdGVtczpiZWZvcmV7Y29udGVudDoiXGYyYTIifS5mYS1hc3RlcmlzazpiZWZvcmV7Y29udGVudDoiXGYwNjkifS5mYS1hc3ltbWV0cmlrOmJlZm9yZXtjb250ZW50OiJcZjM3MiJ9LmZhLWF0OmJlZm9yZXtjb250ZW50OiJcZjFmYSJ9LmZhLWF1ZGlibGU6YmVmb3Jle2NvbnRlbnQ6IlxmMzczIn0uZmEtYXVkaW8tZGVzY3JpcHRpb246YmVmb3Jle2NvbnRlbnQ6IlxmMjllIn0uZmEtYXV0b3ByZWZpeGVyOmJlZm9yZXtjb250ZW50OiJcZjQxYyJ9LmZhLWF2aWFuZXg6YmVmb3Jle2NvbnRlbnQ6IlxmMzc0In0uZmEtYXZpYXRvOmJlZm9yZXtjb250ZW50OiJcZjQyMSJ9LmZhLWF3czpiZWZvcmV7Y29udGVudDoiXGYzNzUifS5mYS1iYWNrd2FyZDpiZWZvcmV7Y29udGVudDoiXGYwNGEifS5mYS1iYWxhbmNlLXNjYWxlOmJlZm9yZXtjb250ZW50OiJcZjI0ZSJ9LmZhLWJhbjpiZWZvcmV7Y29udGVudDoiXGYwNWUifS5mYS1iYW5kY2FtcDpiZWZvcmV7Y29udGVudDoiXGYyZDUifS5mYS1iYXJjb2RlOmJlZm9yZXtjb250ZW50OiJcZjAyYSJ9LmZhLWJhcnM6YmVmb3Jle2NvbnRlbnQ6IlxmMGM5In0uZmEtYmFzZWJhbGwtYmFsbDpiZWZvcmV7Y29udGVudDoiXGY0MzMifS5mYS1iYXNrZXRiYWxsLWJhbGw6YmVmb3Jle2NvbnRlbnQ6IlxmNDM0In0uZmEtYmF0aDpiZWZvcmV7Y29udGVudDoiXGYyY2QifS5mYS1iYXR0ZXJ5LWVtcHR5OmJlZm9yZXtjb250ZW50OiJcZjI0NCJ9LmZhLWJhdHRlcnktZnVsbDpiZWZvcmV7Y29udGVudDoiXGYyNDAifS5mYS1iYXR0ZXJ5LWhhbGY6YmVmb3Jle2NvbnRlbnQ6IlxmMjQyIn0uZmEtYmF0dGVyeS1xdWFydGVyOmJlZm9yZXtjb250ZW50OiJcZjI0MyJ9LmZhLWJhdHRlcnktdGhyZWUtcXVhcnRlcnM6YmVmb3Jle2NvbnRlbnQ6IlxmMjQxIn0uZmEtYmVkOmJlZm9yZXtjb250ZW50OiJcZjIzNiJ9LmZhLWJlZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMGZjIn0uZmEtYmVoYW5jZTpiZWZvcmV7Y29udGVudDoiXGYxYjQifS5mYS1iZWhhbmNlLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYxYjUifS5mYS1iZWxsOmJlZm9yZXtjb250ZW50OiJcZjBmMyJ9LmZhLWJlbGwtc2xhc2g6YmVmb3Jle2NvbnRlbnQ6IlxmMWY2In0uZmEtYmljeWNsZTpiZWZvcmV7Y29udGVudDoiXGYyMDYifS5mYS1iaW1vYmplY3Q6YmVmb3Jle2NvbnRlbnQ6IlxmMzc4In0uZmEtYmlub2N1bGFyczpiZWZvcmV7Y29udGVudDoiXGYxZTUifS5mYS1iaXJ0aGRheS1jYWtlOmJlZm9yZXtjb250ZW50OiJcZjFmZCJ9LmZhLWJpdGJ1Y2tldDpiZWZvcmV7Y29udGVudDoiXGYxNzEifS5mYS1iaXRjb2luOmJlZm9yZXtjb250ZW50OiJcZjM3OSJ9LmZhLWJpdHk6YmVmb3Jle2NvbnRlbnQ6IlxmMzdhIn0uZmEtYmxhY2stdGllOmJlZm9yZXtjb250ZW50OiJcZjI3ZSJ9LmZhLWJsYWNrYmVycnk6YmVmb3Jle2NvbnRlbnQ6IlxmMzdiIn0uZmEtYmxpbmQ6YmVmb3Jle2NvbnRlbnQ6IlxmMjlkIn0uZmEtYmxvZ2dlcjpiZWZvcmV7Y29udGVudDoiXGYzN2MifS5mYS1ibG9nZ2VyLWI6YmVmb3Jle2NvbnRlbnQ6IlxmMzdkIn0uZmEtYmx1ZXRvb3RoOmJlZm9yZXtjb250ZW50OiJcZjI5MyJ9LmZhLWJsdWV0b290aC1iOmJlZm9yZXtjb250ZW50OiJcZjI5NCJ9LmZhLWJvbGQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDMyIn0uZmEtYm9sdDpiZWZvcmV7Y29udGVudDoiXGYwZTcifS5mYS1ib21iOmJlZm9yZXtjb250ZW50OiJcZjFlMiJ9LmZhLWJvb2s6YmVmb3Jle2NvbnRlbnQ6IlxmMDJkIn0uZmEtYm9va21hcms6YmVmb3Jle2NvbnRlbnQ6IlxmMDJlIn0uZmEtYm93bGluZy1iYWxsOmJlZm9yZXtjb250ZW50OiJcZjQzNiJ9LmZhLWJyYWlsbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMmExIn0uZmEtYnJpZWZjYXNlOmJlZm9yZXtjb250ZW50OiJcZjBiMSJ9LmZhLWJ0YzpiZWZvcmV7Y29udGVudDoiXGYxNWEifS5mYS1idWc6YmVmb3Jle2NvbnRlbnQ6IlxmMTg4In0uZmEtYnVpbGRpbmc6YmVmb3Jle2NvbnRlbnQ6IlxmMWFkIn0uZmEtYnVsbGhvcm46YmVmb3Jle2NvbnRlbnQ6IlxmMGExIn0uZmEtYnVsbHNleWU6YmVmb3Jle2NvbnRlbnQ6IlxmMTQwIn0uZmEtYnVyb21vYmVsZXhwZXJ0ZTpiZWZvcmV7Y29udGVudDoiXGYzN2YifS5mYS1idXM6YmVmb3Jle2NvbnRlbnQ6IlxmMjA3In0uZmEtYnV5c2VsbGFkczpiZWZvcmV7Y29udGVudDoiXGYyMGQifS5mYS1jYWxjdWxhdG9yOmJlZm9yZXtjb250ZW50OiJcZjFlYyJ9LmZhLWNhbGVuZGFyOmJlZm9yZXtjb250ZW50OiJcZjEzMyJ9LmZhLWNhbGVuZGFyLWFsdDpiZWZvcmV7Y29udGVudDoiXGYwNzMifS5mYS1jYWxlbmRhci1jaGVjazpiZWZvcmV7Y29udGVudDoiXGYyNzQifS5mYS1jYWxlbmRhci1taW51czpiZWZvcmV7Y29udGVudDoiXGYyNzIifS5mYS1jYWxlbmRhci1wbHVzOmJlZm9yZXtjb250ZW50OiJcZjI3MSJ9LmZhLWNhbGVuZGFyLXRpbWVzOmJlZm9yZXtjb250ZW50OiJcZjI3MyJ9LmZhLWNhbWVyYTpiZWZvcmV7Y29udGVudDoiXGYwMzAifS5mYS1jYW1lcmEtcmV0cm86YmVmb3Jle2NvbnRlbnQ6IlxmMDgzIn0uZmEtY2FyOmJlZm9yZSwuZmEtYXV0b21vYmlsZTpiZWZvcmV7Y29udGVudDoiXGYxYjkifS5mYS1jYXJldC1kb3duOmJlZm9yZXtjb250ZW50OiJcZjBkNyJ9LmZhLWNhcmV0LWxlZnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMGQ5In0uZmEtY2FyZXQtcmlnaHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMGRhIn0uZmEtY2FyZXQtc3F1YXJlLWRvd246YmVmb3Jle2NvbnRlbnQ6IlxmMTUwIn0uZmEtY2FyZXQtc3F1YXJlLWxlZnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTkxIn0uZmEtY2FyZXQtc3F1YXJlLXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZjE1MiJ9LmZhLWNhcmV0LXNxdWFyZS11cDpiZWZvcmV7Y29udGVudDoiXGYxNTEifS5mYS1jYXJldC11cDpiZWZvcmV7Y29udGVudDoiXGYwZDgifS5mYS1jYXJ0LWFycm93LWRvd246YmVmb3Jle2NvbnRlbnQ6IlxmMjE4In0uZmEtY2FydC1wbHVzOmJlZm9yZXtjb250ZW50OiJcZjIxNyJ9LmZhLWNjLWFtYXpvbi1wYXk6YmVmb3Jle2NvbnRlbnQ6IlxmNDJkIn0uZmEtY2MtYW1leDpiZWZvcmV7Y29udGVudDoiXGYxZjMifS5mYS1jYy1hcHBsZS1wYXk6YmVmb3Jle2NvbnRlbnQ6IlxmNDE2In0uZmEtY2MtZGluZXJzLWNsdWI6YmVmb3Jle2NvbnRlbnQ6IlxmMjRjIn0uZmEtY2MtZGlzY292ZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMWYyIn0uZmEtY2MtamNiOmJlZm9yZXtjb250ZW50OiJcZjI0YiJ9LmZhLWNjLW1hc3RlcmNhcmQ6YmVmb3Jle2NvbnRlbnQ6IlxmMWYxIn0uZmEtY2MtcGF5cGFsOmJlZm9yZXtjb250ZW50OiJcZjFmNCJ9LmZhLWNjLXN0cmlwZTpiZWZvcmV7Y29udGVudDoiXGYxZjUifS5mYS1jYy12aXNhOmJlZm9yZXtjb250ZW50OiJcZjFmMCJ9LmZhLWNlbnRlcmNvZGU6YmVmb3Jle2NvbnRlbnQ6IlxmMzgwIn0uZmEtY2VydGlmaWNhdGU6YmVmb3Jle2NvbnRlbnQ6IlxmMGEzIn0uZmEtY2hhcnQtYXJlYTpiZWZvcmV7Y29udGVudDoiXGYxZmUifS5mYS1jaGFydC1iYXI6YmVmb3Jle2NvbnRlbnQ6IlxmMDgwIn0uZmEtY2hhcnQtbGluZTpiZWZvcmV7Y29udGVudDoiXGYyMDEifS5mYS1jaGFydC1waWU6YmVmb3Jle2NvbnRlbnQ6IlxmMjAwIn0uZmEtY2hlY2s6YmVmb3Jle2NvbnRlbnQ6IlxmMDBjIn0uZmEtY2hlY2stY2lyY2xlOmJlZm9yZXtjb250ZW50OiJcZjA1OCJ9LmZhLWNoZWNrLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYxNGEifS5mYS1jaGVzczpiZWZvcmV7Y29udGVudDoiXGY0MzkifS5mYS1jaGVzcy1iaXNob3A6YmVmb3Jle2NvbnRlbnQ6IlxmNDNhIn0uZmEtY2hlc3MtYm9hcmQ6YmVmb3Jle2NvbnRlbnQ6IlxmNDNjIn0uZmEtY2hlc3Mta2luZzpiZWZvcmV7Y29udGVudDoiXGY0M2YifS5mYS1jaGVzcy1rbmlnaHQ6YmVmb3Jle2NvbnRlbnQ6IlxmNDQxIn0uZmEtY2hlc3MtcGF3bjpiZWZvcmV7Y29udGVudDoiXGY0NDMifS5mYS1jaGVzcy1xdWVlbjpiZWZvcmV7Y29udGVudDoiXGY0NDUifS5mYS1jaGVzcy1yb29rOmJlZm9yZXtjb250ZW50OiJcZjQ0NyJ9LmZhLWNoZXZyb24tY2lyY2xlLWRvd246YmVmb3Jle2NvbnRlbnQ6IlxmMTNhIn0uZmEtY2hldnJvbi1jaXJjbGUtbGVmdDpiZWZvcmV7Y29udGVudDoiXGYxMzcifS5mYS1jaGV2cm9uLWNpcmNsZS1yaWdodDpiZWZvcmV7Y29udGVudDoiXGYxMzgifS5mYS1jaGV2cm9uLWNpcmNsZS11cDpiZWZvcmV7Y29udGVudDoiXGYxMzkifS5mYS1jaGV2cm9uLWRvd246YmVmb3Jle2NvbnRlbnQ6IlxmMDc4In0uZmEtY2hldnJvbi1sZWZ0OmJlZm9yZXtjb250ZW50OiJcZjA1MyJ9LmZhLWNoZXZyb24tcmlnaHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDU0In0uZmEtY2hldnJvbi11cDpiZWZvcmV7Y29udGVudDoiXGYwNzcifS5mYS1jaGlsZDpiZWZvcmV7Y29udGVudDoiXGYxYWUifS5mYS1jaHJvbWU6YmVmb3Jle2NvbnRlbnQ6IlxmMjY4In0uZmEtY2lyY2xlOmJlZm9yZXtjb250ZW50OiJcZjExMSJ9LmZhLWNpcmNsZS1ub3RjaDpiZWZvcmV7Y29udGVudDoiXGYxY2UifS5mYS1jbGlwYm9hcmQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzI4In0uZmEtY2xvY2s6YmVmb3Jle2NvbnRlbnQ6IlxmMDE3In0uZmEtY2xvbmU6YmVmb3Jle2NvbnRlbnQ6IlxmMjRkIn0uZmEtY2xvc2VkLWNhcHRpb25pbmc6YmVmb3Jle2NvbnRlbnQ6IlxmMjBhIn0uZmEtY2xvdWQ6YmVmb3Jle2NvbnRlbnQ6IlxmMGMyIn0uZmEtY2xvdWQtZG93bmxvYWQtYWx0OmJlZm9yZXtjb250ZW50OiJcZjM4MSJ9LmZhLWNsb3VkLXVwbG9hZC1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzgyIn0uZmEtY2xvdWRzY2FsZTpiZWZvcmV7Y29udGVudDoiXGYzODMifS5mYS1jbG91ZHNtaXRoOmJlZm9yZXtjb250ZW50OiJcZjM4NCJ9LmZhLWNsb3VkdmVyc2lmeTpiZWZvcmV7Y29udGVudDoiXGYzODUifS5mYS1jb2RlOmJlZm9yZXtjb250ZW50OiJcZjEyMSJ9LmZhLWNvZGUtYnJhbmNoOmJlZm9yZXtjb250ZW50OiJcZjEyNiJ9LmZhLWNvZGVwZW46YmVmb3Jle2NvbnRlbnQ6IlxmMWNiIn0uZmEtY29kaWVwaWU6YmVmb3Jle2NvbnRlbnQ6IlxmMjg0In0uZmEtY29mZmVlOmJlZm9yZXtjb250ZW50OiJcZjBmNCJ9LmZhLWNvZzpiZWZvcmV7Y29udGVudDoiXGYwMTMifS5mYS1jb2dzOmJlZm9yZXtjb250ZW50OiJcZjA4NSJ9LmZhLWdlYXJzOmJlZm9yZXtjb250ZW50OiJcZjA4NSJ9LmZhLWNvbHVtbnM6YmVmb3Jle2NvbnRlbnQ6IlxmMGRiIn0uZmEtY29tbWVudDpiZWZvcmV7Y29udGVudDoiXGYwNzUifS5mYS1jb21tZW50LWFsdDpiZWZvcmV7Y29udGVudDoiXGYyN2EifS5mYS1jb21tZW50czpiZWZvcmV7Y29udGVudDoiXGYwODYifS5mYS1jb21wYXNzOmJlZm9yZXtjb250ZW50OiJcZjE0ZSJ9LmZhLWNvbXByZXNzOmJlZm9yZXtjb250ZW50OiJcZjA2NiJ9LmZhLWNvbm5lY3RkZXZlbG9wOmJlZm9yZXtjb250ZW50OiJcZjIwZSJ9LmZhLWNvbnRhbzpiZWZvcmV7Y29udGVudDoiXGYyNmQifS5mYS1jb3B5OmJlZm9yZXtjb250ZW50OiJcZjBjNSJ9LmZhLWNvcHlyaWdodDpiZWZvcmV7Y29udGVudDoiXGYxZjkifS5mYS1jcGFuZWw6YmVmb3Jle2NvbnRlbnQ6IlxmMzg4In0uZmEtY3JlYXRpdmUtY29tbW9uczpiZWZvcmV7Y29udGVudDoiXGYyNWUifS5mYS1jcmVkaXQtY2FyZDpiZWZvcmV7Y29udGVudDoiXGYwOWQifS5mYS1jcm9wOmJlZm9yZXtjb250ZW50OiJcZjEyNSJ9LmZhLWNyb3NzaGFpcnM6YmVmb3Jle2NvbnRlbnQ6IlxmMDViIn0uZmEtY3NzMzpiZWZvcmV7Y29udGVudDoiXGYxM2MifS5mYS1jc3MzLWFsdDpiZWZvcmV7Y29udGVudDoiXGYzOGIifS5mYS1jdWJlOmJlZm9yZXtjb250ZW50OiJcZjFiMiJ9LmZhLWN1YmVzOmJlZm9yZXtjb250ZW50OiJcZjFiMyJ9LmZhLWN1dDpiZWZvcmV7Y29udGVudDoiXGYwYzQifS5mYS1jdXR0bGVmaXNoOmJlZm9yZXtjb250ZW50OiJcZjM4YyJ9LmZhLWQtYW5kLWQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzhkIn0uZmEtZGFzaGN1YmU6YmVmb3Jle2NvbnRlbnQ6IlxmMjEwIn0uZmEtZGF0YWJhc2U6YmVmb3Jle2NvbnRlbnQ6IlxmMWMwIn0uZmEtZGVhZjpiZWZvcmV7Y29udGVudDoiXGYyYTQifS5mYS1kZWxpY2lvdXM6YmVmb3Jle2NvbnRlbnQ6IlxmMWE1In0uZmEtZGVwbG95ZG9nOmJlZm9yZXtjb250ZW50OiJcZjM4ZSJ9LmZhLWRlc2twcm86YmVmb3Jle2NvbnRlbnQ6IlxmMzhmIn0uZmEtZGVza3RvcDpiZWZvcmV7Y29udGVudDoiXGYxMDgifS5mYS1kZXZpYW50YXJ0OmJlZm9yZXtjb250ZW50OiJcZjFiZCJ9LmZhLWRpZ2c6YmVmb3Jle2NvbnRlbnQ6IlxmMWE2In0uZmEtZGlnaXRhbC1vY2VhbjpiZWZvcmV7Y29udGVudDoiXGYzOTEifS5mYS1kaXNjb3JkOmJlZm9yZXtjb250ZW50OiJcZjM5MiJ9LmZhLWRpc2NvdXJzZTpiZWZvcmV7Y29udGVudDoiXGYzOTMifS5mYS1kb2NodWI6YmVmb3Jle2NvbnRlbnQ6IlxmMzk0In0uZmEtZG9ja2VyOmJlZm9yZXtjb250ZW50OiJcZjM5NSJ9LmZhLWRvbGxhci1zaWduOmJlZm9yZSwuZmEtZG9sbGFyOmJlZm9yZSwuZmEtdXNkOmJlZm9yZXtjb250ZW50OiJcZjE1NSJ9LmZhLWRvdC1jaXJjbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMTkyIn0uZmEtZG93bmxvYWQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDE5In0uZmEtZHJhZnQyZGlnaXRhbDpiZWZvcmV7Y29udGVudDoiXGYzOTYifS5mYS1kcmliYmJsZTpiZWZvcmV7Y29udGVudDoiXGYxN2QifS5mYS1kcmliYmJsZS1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMzk3In0uZmEtZHJvcGJveDpiZWZvcmV7Y29udGVudDoiXGYxNmIifS5mYS1kcnVwYWw6YmVmb3Jle2NvbnRlbnQ6IlxmMWE5In0uZmEtZHlhbG9nOmJlZm9yZXtjb250ZW50OiJcZjM5OSJ9LmZhLWVhcmx5YmlyZHM6YmVmb3Jle2NvbnRlbnQ6IlxmMzlhIn0uZmEtZWRnZTpiZWZvcmV7Y29udGVudDoiXGYyODIifS5mYS1lZGl0OmJlZm9yZXtjb250ZW50OiJcZjA0NCJ9LmZhLWVqZWN0OmJlZm9yZXtjb250ZW50OiJcZjA1MiJ9LmZhLWVsZW1lbnRvcjpiZWZvcmV7Y29udGVudDoiXGY0MzAifS5mYS1lbGxpcHNpcy1oOmJlZm9yZXtjb250ZW50OiJcZjE0MSJ9LmZhLWVsbGlwc2lzLXY6YmVmb3Jle2NvbnRlbnQ6IlxmMTQyIn0uZmEtZW1iZXI6YmVmb3Jle2NvbnRlbnQ6IlxmNDIzIn0uZmEtZW1waXJlOmJlZm9yZXtjb250ZW50OiJcZjFkMSJ9LmZhLWVudmVsb3BlOmJlZm9yZXtjb250ZW50OiJcZjBlMCJ9LmZhLWVudmVsb3BlLW9wZW46YmVmb3Jle2NvbnRlbnQ6IlxmMmI2In0uZmEtZW52ZWxvcGUtc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjE5OSJ9LmZhLWVudmlyYTpiZWZvcmV7Y29udGVudDoiXGYyOTkifS5mYS1lcmFzZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMTJkIn0uZmEtZXJsYW5nOmJlZm9yZXtjb250ZW50OiJcZjM5ZCJ9LmZhLWV0aGVyZXVtOmJlZm9yZXtjb250ZW50OiJcZjQyZSJ9LmZhLWV0c3k6YmVmb3Jle2NvbnRlbnQ6IlxmMmQ3In0uZmEtZXVyby1zaWduOmJlZm9yZXtjb250ZW50OiJcZjE1MyJ9LmZhLWV4Y2hhbmdlLWFsdDpiZWZvcmV7Y29udGVudDoiXGYzNjIifS5mYS1leGNsYW1hdGlvbjpiZWZvcmV7Y29udGVudDoiXGYxMmEifS5mYS1leGNsYW1hdGlvbi1jaXJjbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMDZhIn0uZmEtZXhjbGFtYXRpb24tdHJpYW5nbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMDcxIn0uZmEtZXhwYW5kOmJlZm9yZXtjb250ZW50OiJcZjA2NSJ9LmZhLWV4cGFuZC1hcnJvd3MtYWx0OmJlZm9yZXtjb250ZW50OiJcZjMxZSJ9LmZhLWV4cGVkaXRlZHNzbDpiZWZvcmV7Y29udGVudDoiXGYyM2UifS5mYS1leHRlcm5hbC1saW5rLWFsdDpiZWZvcmV7Y29udGVudDoiXGYzNWQifS5mYS1leHRlcm5hbC1saW5rLXNxdWFyZS1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzYwIn0uZmEtZXllOmJlZm9yZXtjb250ZW50OiJcZjA2ZSJ9LmZhLWV5ZS1kcm9wcGVyOmJlZm9yZXtjb250ZW50OiJcZjFmYiJ9LmZhLWV5ZS1zbGFzaDpiZWZvcmV7Y29udGVudDoiXGYwNzAifS5mYS1mYWNlYm9vazpiZWZvcmV7Y29udGVudDoiXGYwOWEifS5mYS1mYWNlYm9vay1mOmJlZm9yZXtjb250ZW50OiJcZjM5ZSJ9LmZhLWZhY2Vib29rLW1lc3NlbmdlcjpiZWZvcmV7Y29udGVudDoiXGYzOWYifS5mYS1mYWNlYm9vay1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMDgyIn0uZmEtZmFzdC1iYWNrd2FyZDpiZWZvcmV7Y29udGVudDoiXGYwNDkifS5mYS1mYXN0LWZvcndhcmQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDUwIn0uZmEtZmF4OmJlZm9yZXtjb250ZW50OiJcZjFhYyJ9LmZhLWZlbWFsZTpiZWZvcmV7Y29udGVudDoiXGYxODIifS5mYS1maWdodGVyLWpldDpiZWZvcmV7Y29udGVudDoiXGYwZmIifS5mYS1maWxlOmJlZm9yZSwuZmEtZmlsZS1vOmJlZm9yZXtjb250ZW50OiJcZjE1YiJ9LmZhLWZpbGUtYWx0OmJlZm9yZXtjb250ZW50OiJcZjE1YyJ9LmZhLWZpbGUtYXJjaGl2ZTpiZWZvcmV7Y29udGVudDoiXGYxYzYifS5mYS1maWxlLWF1ZGlvOmJlZm9yZXtjb250ZW50OiJcZjFjNyJ9LmZhLWZpbGUtY29kZTpiZWZvcmV7Y29udGVudDoiXGYxYzkifS5mYS1maWxlLWV4Y2VsOmJlZm9yZXtjb250ZW50OiJcZjFjMyJ9LmZhLWZpbGUtaW1hZ2U6YmVmb3Jle2NvbnRlbnQ6IlxmMWM1In0uZmEtZmlsZS1wZGY6YmVmb3Jle2NvbnRlbnQ6IlxmMWMxIn0uZmEtZmlsZS1wb3dlcnBvaW50OmJlZm9yZXtjb250ZW50OiJcZjFjNCJ9LmZhLWZpbGUtdmlkZW86YmVmb3Jle2NvbnRlbnQ6IlxmMWM4In0uZmEtZmlsZS13b3JkOmJlZm9yZXtjb250ZW50OiJcZjFjMiJ9LmZhLWZpbG06YmVmb3Jle2NvbnRlbnQ6IlxmMDA4In0uZmEtZmlsdGVyOmJlZm9yZXtjb250ZW50OiJcZjBiMCJ9LmZhLWZpcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMDZkIn0uZmEtZmlyZS1leHRpbmd1aXNoZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMTM0In0uZmEtZmlyZWZveDpiZWZvcmV7Y29udGVudDoiXGYyNjkifS5mYS1maXJzdC1vcmRlcjpiZWZvcmV7Y29udGVudDoiXGYyYjAifS5mYS1maXJzdGRyYWZ0OmJlZm9yZXtjb250ZW50OiJcZjNhMSJ9LmZhLWZsYWc6YmVmb3Jle2NvbnRlbnQ6IlxmMDI0In0uZmEtZmxhZy1jaGVja2VyZWQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTFlIn0uZmEtZmxhc2s6YmVmb3Jle2NvbnRlbnQ6IlxmMGMzIn0uZmEtZmxpY2tyOmJlZm9yZXtjb250ZW50OiJcZjE2ZSJ9LmZhLWZsaXBib2FyZDpiZWZvcmV7Y29udGVudDoiXGY0NGQifS5mYS1mbHk6YmVmb3Jle2NvbnRlbnQ6IlxmNDE3In0uZmEtZm9sZGVyOmJlZm9yZXtjb250ZW50OiJcZjA3YiJ9LmZhLWZvbGRlci1vcGVuOmJlZm9yZXtjb250ZW50OiJcZjA3YyJ9LmZhLWZvbnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDMxIn0uZmEtZm9udC1hd2Vzb21lOmJlZm9yZXtjb250ZW50OiJcZjJiNCJ9LmZhLWZvbnQtYXdlc29tZS1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzVjIn0uZmEtZm9udC1hd2Vzb21lLWZsYWc6YmVmb3Jle2NvbnRlbnQ6IlxmNDI1In0uZmEtZm9udGljb25zOmJlZm9yZXtjb250ZW50OiJcZjI4MCJ9LmZhLWZvbnRpY29ucy1maTpiZWZvcmV7Y29udGVudDoiXGYzYTIifS5mYS1mb290YmFsbC1iYWxsOmJlZm9yZXtjb250ZW50OiJcZjQ0ZSJ9LmZhLWZvcnQtYXdlc29tZTpiZWZvcmV7Y29udGVudDoiXGYyODYifS5mYS1mb3J0LWF3ZXNvbWUtYWx0OmJlZm9yZXtjb250ZW50OiJcZjNhMyJ9LmZhLWZvcnVtYmVlOmJlZm9yZXtjb250ZW50OiJcZjIxMSJ9LmZhLWZvcndhcmQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDRlIn0uZmEtZm91cnNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYxODAifS5mYS1mcmVlLWNvZGUtY2FtcDpiZWZvcmV7Y29udGVudDoiXGYyYzUifS5mYS1mcmVlYnNkOmJlZm9yZXtjb250ZW50OiJcZjNhNCJ9LmZhLWZyb3duOmJlZm9yZXtjb250ZW50OiJcZjExOSJ9LmZhLWZ1dGJvbDpiZWZvcmV7Y29udGVudDoiXGYxZTMifS5mYS1nYW1lcGFkOmJlZm9yZXtjb250ZW50OiJcZjExYiJ9LmZhLWdhdmVsOmJlZm9yZXtjb250ZW50OiJcZjBlMyJ9LmZhLWdlbTpiZWZvcmV7Y29udGVudDoiXGYzYTUifS5mYS1nZW5kZXJsZXNzOmJlZm9yZXtjb250ZW50OiJcZjIyZCJ9LmZhLWdldC1wb2NrZXQ6YmVmb3Jle2NvbnRlbnQ6IlxmMjY1In0uZmEtZ2c6YmVmb3Jle2NvbnRlbnQ6IlxmMjYwIn0uZmEtZ2ctY2lyY2xlOmJlZm9yZXtjb250ZW50OiJcZjI2MSJ9LmZhLWdpZnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDZiIn0uZmEtZ2l0OmJlZm9yZXtjb250ZW50OiJcZjFkMyJ9LmZhLWdpdC1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMWQyIn0uZmEtZ2l0aHViOmJlZm9yZXtjb250ZW50OiJcZjA5YiJ9LmZhLWdpdGh1Yi1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTEzIn0uZmEtZ2l0aHViLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYwOTIifS5mYS1naXRrcmFrZW46YmVmb3Jle2NvbnRlbnQ6IlxmM2E2In0uZmEtZ2l0bGFiOmJlZm9yZXtjb250ZW50OiJcZjI5NiJ9LmZhLWdpdHRlcjpiZWZvcmV7Y29udGVudDoiXGY0MjYifS5mYS1nbGFzcy1tYXJ0aW5pOmJlZm9yZXtjb250ZW50OiJcZjAwMCJ9LmZhLWdsaWRlOmJlZm9yZXtjb250ZW50OiJcZjJhNSJ9LmZhLWdsaWRlLWc6YmVmb3Jle2NvbnRlbnQ6IlxmMmE2In0uZmEtZ2xvYmU6YmVmb3Jle2NvbnRlbnQ6IlxmMGFjIn0uZmEtZ29mb3JlOmJlZm9yZXtjb250ZW50OiJcZjNhNyJ9LmZhLWdvbGYtYmFsbDpiZWZvcmV7Y29udGVudDoiXGY0NTAifS5mYS1nb29kcmVhZHM6YmVmb3Jle2NvbnRlbnQ6IlxmM2E4In0uZmEtZ29vZHJlYWRzLWc6YmVmb3Jle2NvbnRlbnQ6IlxmM2E5In0uZmEtZ29vZ2xlOmJlZm9yZXtjb250ZW50OiJcZjFhMCJ9LmZhLWdvb2dsZS1kcml2ZTpiZWZvcmV7Y29udGVudDoiXGYzYWEifS5mYS1nb29nbGUtcGxheTpiZWZvcmV7Y29udGVudDoiXGYzYWIifS5mYS1nb29nbGUtcGx1czpiZWZvcmV7Y29udGVudDoiXGYyYjMifS5mYS1nb29nbGUtcGx1cy1nOmJlZm9yZXtjb250ZW50OiJcZjBkNSJ9LmZhLWdvb2dsZS1wbHVzLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYwZDQifS5mYS1nb29nbGUtd2FsbGV0OmJlZm9yZXtjb250ZW50OiJcZjFlZSJ9LmZhLWdyYWR1YXRpb24tY2FwOmJlZm9yZXtjb250ZW50OiJcZjE5ZCJ9LmZhLWdyYXRpcGF5OmJlZm9yZXtjb250ZW50OiJcZjE4NCJ9LmZhLWdyYXY6YmVmb3Jle2NvbnRlbnQ6IlxmMmQ2In0uZmEtZ3JpcGZpcmU6YmVmb3Jle2NvbnRlbnQ6IlxmM2FjIn0uZmEtZ3J1bnQ6YmVmb3Jle2NvbnRlbnQ6IlxmM2FkIn0uZmEtZ3VscDpiZWZvcmV7Y29udGVudDoiXGYzYWUifS5mYS1oLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYwZmQifS5mYS1oYWNrZXItbmV3czpiZWZvcmV7Y29udGVudDoiXGYxZDQifS5mYS1oYWNrZXItbmV3cy1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmM2FmIn0uZmEtaGFuZC1saXphcmQ6YmVmb3Jle2NvbnRlbnQ6IlxmMjU4In0uZmEtaGFuZC1wYXBlcjpiZWZvcmV7Y29udGVudDoiXGYyNTYifS5mYS1oYW5kLXBlYWNlOmJlZm9yZXtjb250ZW50OiJcZjI1YiJ9LmZhLWhhbmQtcG9pbnQtZG93bjpiZWZvcmV7Y29udGVudDoiXGYwYTcifS5mYS1oYW5kLXBvaW50LWxlZnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMGE1In0uZmEtaGFuZC1wb2ludC1yaWdodDpiZWZvcmV7Y29udGVudDoiXGYwYTQifS5mYS1oYW5kLXBvaW50LXVwOmJlZm9yZXtjb250ZW50OiJcZjBhNiJ9LmZhLWhhbmQtcG9pbnRlcjpiZWZvcmUsLmZhLWhhbmQtcG9pbnRlci1vOmJlZm9yZXtjb250ZW50OiJcZjI1YSJ9LmZhLWhhbmQtcm9jazpiZWZvcmV7Y29udGVudDoiXGYyNTUifS5mYS1oYW5kLXNjaXNzb3JzOmJlZm9yZXtjb250ZW50OiJcZjI1NyJ9LmZhLWhhbmQtc3BvY2s6YmVmb3Jle2NvbnRlbnQ6IlxmMjU5In0uZmEtaGFuZHNoYWtlOmJlZm9yZXtjb250ZW50OiJcZjJiNSJ9LmZhLWhhc2h0YWc6YmVmb3Jle2NvbnRlbnQ6IlxmMjkyIn0uZmEtaGRkOmJlZm9yZXtjb250ZW50OiJcZjBhMCJ9LmZhLWhlYWRpbmc6YmVmb3Jle2NvbnRlbnQ6IlxmMWRjIn0uZmEtaGVhZHBob25lczpiZWZvcmV7Y29udGVudDoiXGYwMjUifS5mYS1oZWFydDpiZWZvcmV7Y29udGVudDoiXGYwMDQifS5mYS1oZWFydGJlYXQ6YmVmb3Jle2NvbnRlbnQ6IlxmMjFlIn0uZmEtaGlwczpiZWZvcmV7Y29udGVudDoiXGY0NTIifS5mYS1oaXJlLWEtaGVscGVyOmJlZm9yZXtjb250ZW50OiJcZjNiMCJ9LmZhLWhpc3Rvcnk6YmVmb3Jle2NvbnRlbnQ6IlxmMWRhIn0uZmEtaG9ja2V5LXB1Y2s6YmVmb3Jle2NvbnRlbnQ6IlxmNDUzIn0uZmEtaG9tZTpiZWZvcmV7Y29udGVudDoiXGYwMTUifS5mYS1ob29saTpiZWZvcmV7Y29udGVudDoiXGY0MjcifS5mYS1ob3NwaXRhbDpiZWZvcmV7Y29udGVudDoiXGYwZjgifS5mYS1ob3RqYXI6YmVmb3Jle2NvbnRlbnQ6IlxmM2IxIn0uZmEtaG91cmdsYXNzOmJlZm9yZXtjb250ZW50OiJcZjI1NCJ9LmZhLWhvdXJnbGFzcy1lbmQ6YmVmb3Jle2NvbnRlbnQ6IlxmMjUzIn0uZmEtaG91cmdsYXNzLWhhbGY6YmVmb3Jle2NvbnRlbnQ6IlxmMjUyIn0uZmEtaG91cmdsYXNzLXN0YXJ0OmJlZm9yZXtjb250ZW50OiJcZjI1MSJ9LmZhLWhvdXp6OmJlZm9yZXtjb250ZW50OiJcZjI3YyJ9LmZhLWh0bWw1OmJlZm9yZXtjb250ZW50OiJcZjEzYiJ9LmZhLWh1YnNwb3Q6YmVmb3Jle2NvbnRlbnQ6IlxmM2IyIn0uZmEtaS1jdXJzb3I6YmVmb3Jle2NvbnRlbnQ6IlxmMjQ2In0uZmEtaWQtYmFkZ2U6YmVmb3Jle2NvbnRlbnQ6IlxmMmMxIn0uZmEtaWQtY2FyZDpiZWZvcmV7Y29udGVudDoiXGYyYzIifS5mYS1pbWFnZTpiZWZvcmV7Y29udGVudDoiXGYwM2UifS5mYS1pbWFnZXM6YmVmb3Jle2NvbnRlbnQ6IlxmMzAyIn0uZmEtaW1kYjpiZWZvcmV7Y29udGVudDoiXGYyZDgifS5mYS1pbmJveDpiZWZvcmV7Y29udGVudDoiXGYwMWMifS5mYS1pbmRlbnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDNjIn0uZmEtaW5kdXN0cnk6YmVmb3Jle2NvbnRlbnQ6IlxmMjc1In0uZmEtaW5mbzpiZWZvcmV7Y29udGVudDoiXGYxMjkifS5mYS1pbmZvLWNpcmNsZTpiZWZvcmV7Y29udGVudDoiXGYwNWEifS5mYS1pbnN0YWdyYW06YmVmb3Jle2NvbnRlbnQ6IlxmMTZkIn0uZmEtaW50ZXJuZXQtZXhwbG9yZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMjZiIn0uZmEtaW94aG9zdDpiZWZvcmV7Y29udGVudDoiXGYyMDgifS5mYS1pdGFsaWM6YmVmb3Jle2NvbnRlbnQ6IlxmMDMzIn0uZmEtaXR1bmVzOmJlZm9yZXtjb250ZW50OiJcZjNiNCJ9LmZhLWl0dW5lcy1ub3RlOmJlZm9yZXtjb250ZW50OiJcZjNiNSJ9LmZhLWplbmtpbnM6YmVmb3Jle2NvbnRlbnQ6IlxmM2I2In0uZmEtam9nZXQ6YmVmb3Jle2NvbnRlbnQ6IlxmM2I3In0uZmEtam9vbWxhOmJlZm9yZXtjb250ZW50OiJcZjFhYSJ9LmZhLWpzOmJlZm9yZXtjb250ZW50OiJcZjNiOCJ9LmZhLWpzLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYzYjkifS5mYS1qc2ZpZGRsZTpiZWZvcmV7Y29udGVudDoiXGYxY2MifS5mYS1rZXk6YmVmb3Jle2NvbnRlbnQ6IlxmMDg0In0uZmEta2V5Ym9hcmQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTFjIn0uZmEta2V5Y2RuOmJlZm9yZXtjb250ZW50OiJcZjNiYSJ9LmZhLWtpY2tzdGFydGVyOmJlZm9yZXtjb250ZW50OiJcZjNiYiJ9LmZhLWtpY2tzdGFydGVyLWs6YmVmb3Jle2NvbnRlbnQ6IlxmM2JjIn0uZmEta29ydnVlOmJlZm9yZXtjb250ZW50OiJcZjQyZiJ9LmZhLWxhbmd1YWdlOmJlZm9yZXtjb250ZW50OiJcZjFhYiJ9LmZhLWxhcHRvcDpiZWZvcmV7Y29udGVudDoiXGYxMDkifS5mYS1sYXJhdmVsOmJlZm9yZXtjb250ZW50OiJcZjNiZCJ9LmZhLWxhc3RmbTpiZWZvcmV7Y29udGVudDoiXGYyMDIifS5mYS1sYXN0Zm0tc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjIwMyJ9LmZhLWxlYWY6YmVmb3Jle2NvbnRlbnQ6IlxmMDZjIn0uZmEtbGVhbnB1YjpiZWZvcmV7Y29udGVudDoiXGYyMTIifS5mYS1sZW1vbjpiZWZvcmV7Y29udGVudDoiXGYwOTQifS5mYS1sZXNzOmJlZm9yZXtjb250ZW50OiJcZjQxZCJ9LmZhLWxldmVsLWRvd24tYWx0OmJlZm9yZXtjb250ZW50OiJcZjNiZSJ9LmZhLWxldmVsLXVwLWFsdDpiZWZvcmV7Y29udGVudDoiXGYzYmYifS5mYS1saWZlLXJpbmc6YmVmb3Jle2NvbnRlbnQ6IlxmMWNkIn0uZmEtbGlnaHRidWxiOmJlZm9yZXtjb250ZW50OiJcZjBlYiJ9LmZhLWxpbmU6YmVmb3Jle2NvbnRlbnQ6IlxmM2MwIn0uZmEtbGluazpiZWZvcmV7Y29udGVudDoiXGYwYzEifS5mYS1saW5rZWRpbjpiZWZvcmV7Y29udGVudDoiXGYwOGMifS5mYS1saW5rZWRpbi1pbjpiZWZvcmV7Y29udGVudDoiXGYwZTEifS5mYS1saW5vZGU6YmVmb3Jle2NvbnRlbnQ6IlxmMmI4In0uZmEtbGludXg6YmVmb3Jle2NvbnRlbnQ6IlxmMTdjIn0uZmEtbGlyYS1zaWduOmJlZm9yZXtjb250ZW50OiJcZjE5NSJ9LmZhLWxpc3Q6YmVmb3Jle2NvbnRlbnQ6IlxmMDNhIn0uZmEtbGlzdC1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDIyIn0uZmEtbGlzdC1vbDpiZWZvcmV7Y29udGVudDoiXGYwY2IifS5mYS1saXN0LXVsOmJlZm9yZXtjb250ZW50OiJcZjBjYSJ9LmZhLWxvY2F0aW9uLWFycm93OmJlZm9yZXtjb250ZW50OiJcZjEyNCJ9LmZhLWxvY2s6YmVmb3Jle2NvbnRlbnQ6IlxmMDIzIn0uZmEtbG9jay1vcGVuOmJlZm9yZXtjb250ZW50OiJcZjNjMSJ9LmZhLWxvbmctYXJyb3ctYWx0LWRvd246YmVmb3Jle2NvbnRlbnQ6IlxmMzA5In0uZmEtbG9uZy1hcnJvdy1hbHQtbGVmdDpiZWZvcmV7Y29udGVudDoiXGYzMGEifS5mYS1sb25nLWFycm93LWFsdC1yaWdodDpiZWZvcmV7Y29udGVudDoiXGYzMGIifS5mYS1sb25nLWFycm93LWFsdC11cDpiZWZvcmV7Y29udGVudDoiXGYzMGMifS5mYS1sb3ctdmlzaW9uOmJlZm9yZXtjb250ZW50OiJcZjJhOCJ9LmZhLWx5ZnQ6YmVmb3Jle2NvbnRlbnQ6IlxmM2MzIn0uZmEtbWFnZW50bzpiZWZvcmV7Y29udGVudDoiXGYzYzQifS5mYS1tYWdpYzpiZWZvcmV7Y29udGVudDoiXGYwZDAifS5mYS1tYWduZXQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDc2In0uZmEtbWFsZTpiZWZvcmV7Y29udGVudDoiXGYxODMifS5mYS1tYXA6YmVmb3Jle2NvbnRlbnQ6IlxmMjc5In0uZmEtbWFwLW1hcmtlcjpiZWZvcmV7Y29udGVudDoiXGYwNDEifS5mYS1tYXAtbWFya2VyLWFsdDpiZWZvcmV7Y29udGVudDoiXGYzYzUifS5mYS1tYXAtcGluOmJlZm9yZXtjb250ZW50OiJcZjI3NiJ9LmZhLW1hcC1zaWduczpiZWZvcmV7Y29udGVudDoiXGYyNzcifS5mYS1tYXJzOmJlZm9yZXtjb250ZW50OiJcZjIyMiJ9LmZhLW1hcnMtZG91YmxlOmJlZm9yZXtjb250ZW50OiJcZjIyNyJ9LmZhLW1hcnMtc3Ryb2tlOmJlZm9yZXtjb250ZW50OiJcZjIyOSJ9LmZhLW1hcnMtc3Ryb2tlLWg6YmVmb3Jle2NvbnRlbnQ6IlxmMjJiIn0uZmEtbWFycy1zdHJva2UtdjpiZWZvcmV7Y29udGVudDoiXGYyMmEifS5mYS1tYXhjZG46YmVmb3Jle2NvbnRlbnQ6IlxmMTM2In0uZmEtbWVkYXBwczpiZWZvcmV7Y29udGVudDoiXGYzYzYifS5mYS1tZWRpdW06YmVmb3Jle2NvbnRlbnQ6IlxmMjNhIn0uZmEtbWVkaXVtLW06YmVmb3Jle2NvbnRlbnQ6IlxmM2M3In0uZmEtbWVka2l0OmJlZm9yZXtjb250ZW50OiJcZjBmYSJ9LmZhLW1lZHJ0OmJlZm9yZXtjb250ZW50OiJcZjNjOCJ9LmZhLW1lZXR1cDpiZWZvcmV7Y29udGVudDoiXGYyZTAifS5mYS1tZWg6YmVmb3Jle2NvbnRlbnQ6IlxmMTFhIn0uZmEtbWVyY3VyeTpiZWZvcmV7Y29udGVudDoiXGYyMjMifS5mYS1taWNyb2NoaXA6YmVmb3Jle2NvbnRlbnQ6IlxmMmRiIn0uZmEtbWljcm9waG9uZTpiZWZvcmV7Y29udGVudDoiXGYxMzAifS5mYS1taWNyb3Bob25lLXNsYXNoOmJlZm9yZXtjb250ZW50OiJcZjEzMSJ9LmZhLW1pY3Jvc29mdDpiZWZvcmV7Y29udGVudDoiXGYzY2EifS5mYS1taW51czpiZWZvcmV7Y29udGVudDoiXGYwNjgifS5mYS1taW51cy1jaXJjbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMDU2In0uZmEtbWludXMtc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjE0NiJ9LmZhLW1peDpiZWZvcmV7Y29udGVudDoiXGYzY2IifS5mYS1taXhjbG91ZDpiZWZvcmV7Y29udGVudDoiXGYyODkifS5mYS1taXp1bmk6YmVmb3Jle2NvbnRlbnQ6IlxmM2NjIn0uZmEtbW9iaWxlOmJlZm9yZXtjb250ZW50OiJcZjEwYiJ9LmZhLW1vYmlsZS1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmM2NkIn0uZmEtbW9keDpiZWZvcmV7Y29udGVudDoiXGYyODUifS5mYS1tb25lcm86YmVmb3Jle2NvbnRlbnQ6IlxmM2QwIn0uZmEtbW9uZXktYmlsbC1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmM2QxIn0uZmEtbW9vbjpiZWZvcmV7Y29udGVudDoiXGYxODYifS5mYS1tb3RvcmN5Y2xlOmJlZm9yZXtjb250ZW50OiJcZjIxYyJ9LmZhLW1vdXNlLXBvaW50ZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMjQ1In0uZmEtbXVzaWM6YmVmb3Jle2NvbnRlbnQ6IlxmMDAxIn0uZmEtbmFwc3RlcjpiZWZvcmV7Y29udGVudDoiXGYzZDIifS5mYS1uZXV0ZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMjJjIn0uZmEtbmV3c3BhcGVyOmJlZm9yZSwuZmEtbmV3c3BhcGVyLW86YmVmb3Jle2NvbnRlbnQ6IlxmMWVhIn0uZmEtbmludGVuZG8tc3dpdGNoOmJlZm9yZXtjb250ZW50OiJcZjQxOCJ9LmZhLW5vZGU6YmVmb3Jle2NvbnRlbnQ6IlxmNDE5In0uZmEtbm9kZS1qczpiZWZvcmV7Y29udGVudDoiXGYzZDMifS5mYS1ucG06YmVmb3Jle2NvbnRlbnQ6IlxmM2Q0In0uZmEtbnM4OmJlZm9yZXtjb250ZW50OiJcZjNkNSJ9LmZhLW51dHJpdGlvbml4OmJlZm9yZXtjb250ZW50OiJcZjNkNiJ9LmZhLW9iamVjdC1ncm91cDpiZWZvcmV7Y29udGVudDoiXGYyNDcifS5mYS1vYmplY3QtdW5ncm91cDpiZWZvcmV7Y29udGVudDoiXGYyNDgifS5mYS1vZG5va2xhc3NuaWtpOmJlZm9yZXtjb250ZW50OiJcZjI2MyJ9LmZhLW9kbm9rbGFzc25pa2ktc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjI2NCJ9LmZhLW9wZW5jYXJ0OmJlZm9yZXtjb250ZW50OiJcZjIzZCJ9LmZhLW9wZW5pZDpiZWZvcmV7Y29udGVudDoiXGYxOWIifS5mYS1vcGVyYTpiZWZvcmV7Y29udGVudDoiXGYyNmEifS5mYS1vcHRpbi1tb25zdGVyOmJlZm9yZXtjb250ZW50OiJcZjIzYyJ9LmZhLW9zaTpiZWZvcmV7Y29udGVudDoiXGY0MWEifS5mYS1vdXRkZW50OmJlZm9yZXtjb250ZW50OiJcZjAzYiJ9LmZhLXBhZ2U0OmJlZm9yZXtjb250ZW50OiJcZjNkNyJ9LmZhLXBhZ2VsaW5lczpiZWZvcmV7Y29udGVudDoiXGYxOGMifS5mYS1wYWludC1icnVzaDpiZWZvcmV7Y29udGVudDoiXGYxZmMifS5mYS1wYWxmZWQ6YmVmb3Jle2NvbnRlbnQ6IlxmM2Q4In0uZmEtcGFwZXItcGxhbmU6YmVmb3Jle2NvbnRlbnQ6IlxmMWQ4In0uZmEtcGFwZXJjbGlwOmJlZm9yZXtjb250ZW50OiJcZjBjNiJ9LmZhLXBhcmFncmFwaDpiZWZvcmV7Y29udGVudDoiXGYxZGQifS5mYS1wYXN0ZTpiZWZvcmV7Y29udGVudDoiXGYwZWEifS5mYS1wYXRyZW9uOmJlZm9yZXtjb250ZW50OiJcZjNkOSJ9LmZhLXBhdXNlOmJlZm9yZXtjb250ZW50OiJcZjA0YyJ9LmZhLXBhdXNlLWNpcmNsZTpiZWZvcmV7Y29udGVudDoiXGYyOGIifS5mYS1wYXc6YmVmb3Jle2NvbnRlbnQ6IlxmMWIwIn0uZmEtcGF5cGFsOmJlZm9yZXtjb250ZW50OiJcZjFlZCJ9LmZhLXBlbi1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMTRiIn0uZmEtcGVuY2lsLWFsdDpiZWZvcmV7Y29udGVudDoiXGYzMDMifS5mYS1wZXJjZW50OmJlZm9yZXtjb250ZW50OiJcZjI5NSJ9LmZhLXBlcmlzY29wZTpiZWZvcmV7Y29udGVudDoiXGYzZGEifS5mYS1waGFicmljYXRvcjpiZWZvcmV7Y29udGVudDoiXGYzZGIifS5mYS1waG9lbml4LWZyYW1ld29yazpiZWZvcmV7Y29udGVudDoiXGYzZGMifS5mYS1waG9uZTpiZWZvcmV7Y29udGVudDoiXGYwOTUifS5mYS1waG9uZS1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMDk4In0uZmEtcGhvbmUtdm9sdW1lOmJlZm9yZXtjb250ZW50OiJcZjJhMCJ9LmZhLXBocDpiZWZvcmV7Y29udGVudDoiXGY0NTcifS5mYS1waWVkLXBpcGVyOmJlZm9yZXtjb250ZW50OiJcZjJhZSJ9LmZhLXBpZWQtcGlwZXItYWx0OmJlZm9yZXtjb250ZW50OiJcZjFhOCJ9LmZhLXBpZWQtcGlwZXItcHA6YmVmb3Jle2NvbnRlbnQ6IlxmMWE3In0uZmEtcGludGVyZXN0OmJlZm9yZXtjb250ZW50OiJcZjBkMiJ9LmZhLXBpbnRlcmVzdC1wOmJlZm9yZXtjb250ZW50OiJcZjIzMSJ9LmZhLXBpbnRlcmVzdC1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMGQzIn0uZmEtcGxhbmU6YmVmb3Jle2NvbnRlbnQ6IlxmMDcyIn0uZmEtcGxheTpiZWZvcmV7Y29udGVudDoiXGYwNGIifS5mYS1wbGF5LWNpcmNsZTpiZWZvcmV7Y29udGVudDoiXGYxNDQifS5mYS1wbGF5c3RhdGlvbjpiZWZvcmV7Y29udGVudDoiXGYzZGYifS5mYS1wbHVnOmJlZm9yZXtjb250ZW50OiJcZjFlNiJ9LmZhLXBsdXM6YmVmb3Jle2NvbnRlbnQ6IlxmMDY3In0uZmEtcGx1cy1jaXJjbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMDU1In0uZmEtcGx1cy1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMGZlIn0uZmEtcG9kY2FzdDpiZWZvcmV7Y29udGVudDoiXGYyY2UifS5mYS1wb3VuZC1zaWduOmJlZm9yZXtjb250ZW50OiJcZjE1NCJ9LmZhLXBvd2VyLW9mZjpiZWZvcmV7Y29udGVudDoiXGYwMTEifS5mYS1wcmludDpiZWZvcmV7Y29udGVudDoiXGYwMmYifS5mYS1wcm9kdWN0LWh1bnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMjg4In0uZmEtcHVzaGVkOmJlZm9yZXtjb250ZW50OiJcZjNlMSJ9LmZhLXB1enpsZS1waWVjZTpiZWZvcmV7Y29udGVudDoiXGYxMmUifS5mYS1weXRob246YmVmb3Jle2NvbnRlbnQ6IlxmM2UyIn0uZmEtcXE6YmVmb3Jle2NvbnRlbnQ6IlxmMWQ2In0uZmEtcXJjb2RlOmJlZm9yZXtjb250ZW50OiJcZjAyOSJ9LmZhLXF1ZXN0aW9uOmJlZm9yZXtjb250ZW50OiJcZjEyOCJ9LmZhLXF1ZXN0aW9uLWNpcmNsZTpiZWZvcmV7Y29udGVudDoiXGYwNTkifS5mYS1xdWlkZGl0Y2g6YmVmb3Jle2NvbnRlbnQ6IlxmNDU4In0uZmEtcXVpbnNjYXBlOmJlZm9yZXtjb250ZW50OiJcZjQ1OSJ9LmZhLXF1b3JhOmJlZm9yZXtjb250ZW50OiJcZjJjNCJ9LmZhLXF1b3RlLWxlZnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTBkIn0uZmEtcXVvdGUtcmlnaHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTBlIn0uZmEtcmFuZG9tOmJlZm9yZXtjb250ZW50OiJcZjA3NCJ9LmZhLXJhdmVscnk6YmVmb3Jle2NvbnRlbnQ6IlxmMmQ5In0uZmEtcmVhY3Q6YmVmb3Jle2NvbnRlbnQ6IlxmNDFiIn0uZmEtcmViZWw6YmVmb3Jle2NvbnRlbnQ6IlxmMWQwIn0uZmEtcmVjeWNsZTpiZWZvcmV7Y29udGVudDoiXGYxYjgifS5mYS1yZWQtcml2ZXI6YmVmb3Jle2NvbnRlbnQ6IlxmM2UzIn0uZmEtcmVkZGl0OmJlZm9yZXtjb250ZW50OiJcZjFhMSJ9LmZhLXJlZGRpdC1hbGllbjpiZWZvcmV7Y29udGVudDoiXGYyODEifS5mYS1yZWRkaXQtc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjFhMiJ9LmZhLXJlZG86YmVmb3Jle2NvbnRlbnQ6IlxmMDFlIn0uZmEtcmVkby1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMmY5In0uZmEtcmVnaXN0ZXJlZDpiZWZvcmV7Y29udGVudDoiXGYyNWQifS5mYS1yZW5kYWN0OmJlZm9yZXtjb250ZW50OiJcZjNlNCJ9LmZhLXJlbnJlbjpiZWZvcmV7Y29udGVudDoiXGYxOGIifS5mYS1yZXBseTpiZWZvcmV7Y29udGVudDoiXGYzZTUifS5mYS1yZXBseS1hbGw6YmVmb3Jle2NvbnRlbnQ6IlxmMTIyIn0uZmEtcmVwbHlkOmJlZm9yZXtjb250ZW50OiJcZjNlNiJ9LmZhLXJlc29sdmluZzpiZWZvcmV7Y29udGVudDoiXGYzZTcifS5mYS1yZXR3ZWV0OmJlZm9yZXtjb250ZW50OiJcZjA3OSJ9LmZhLXJvYWQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDE4In0uZmEtcm9ja2V0OmJlZm9yZXtjb250ZW50OiJcZjEzNSJ9LmZhLXJvY2tldGNoYXQ6YmVmb3Jle2NvbnRlbnQ6IlxmM2U4In0uZmEtcm9ja3JtczpiZWZvcmV7Y29udGVudDoiXGYzZTkifS5mYS1yc3M6YmVmb3Jle2NvbnRlbnQ6IlxmMDllIn0uZmEtcnNzLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYxNDMifS5mYS1ydWJsZS1zaWduOmJlZm9yZXtjb250ZW50OiJcZjE1OCJ9LmZhLXJ1cGVlLXNpZ246YmVmb3Jle2NvbnRlbnQ6IlxmMTU2In0uZmEtc2FmYXJpOmJlZm9yZXtjb250ZW50OiJcZjI2NyJ9LmZhLXNhc3M6YmVmb3Jle2NvbnRlbnQ6IlxmNDFlIn0uZmEtc2F2ZTpiZWZvcmV7Y29udGVudDoiXGYwYzcifS5mYS1zY2hsaXg6YmVmb3Jle2NvbnRlbnQ6IlxmM2VhIn0uZmEtc2NyaWJkOmJlZm9yZXtjb250ZW50OiJcZjI4YSJ9LmZhLXNlYXJjaDpiZWZvcmV7Y29udGVudDoiXGYwMDIifS5mYS1zZWFyY2gtbWludXM6YmVmb3Jle2NvbnRlbnQ6IlxmMDEwIn0uZmEtc2VhcmNoLXBsdXM6YmVmb3Jle2NvbnRlbnQ6IlxmMDBlIn0uZmEtc2VhcmNoZW5naW46YmVmb3Jle2NvbnRlbnQ6IlxmM2ViIn0uZmEtc2VsbGNhc3Q6YmVmb3Jle2NvbnRlbnQ6IlxmMmRhIn0uZmEtc2VsbHN5OmJlZm9yZXtjb250ZW50OiJcZjIxMyJ9LmZhLXNlcnZlcjpiZWZvcmV7Y29udGVudDoiXGYyMzMifS5mYS1zZXJ2aWNlc3RhY2s6YmVmb3Jle2NvbnRlbnQ6IlxmM2VjIn0uZmEtc2hhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMDY0In0uZmEtc2hhcmUtYWx0OmJlZm9yZXtjb250ZW50OiJcZjFlMCJ9LmZhLXNoYXJlLWFsdC1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMWUxIn0uZmEtc2hhcmUtc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjE0ZCJ9LmZhLXNoZWtlbC1zaWduOmJlZm9yZXtjb250ZW50OiJcZjIwYiJ9LmZhLXNoaWVsZC1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmM2VkIn0uZmEtc2hpcDpiZWZvcmV7Y29udGVudDoiXGYyMWEifS5mYS1zaGlydHNpbmJ1bGs6YmVmb3Jle2NvbnRlbnQ6IlxmMjE0In0uZmEtc2hvcHBpbmctYmFnOmJlZm9yZXtjb250ZW50OiJcZjI5MCJ9LmZhLXNob3BwaW5nLWJhc2tldDpiZWZvcmV7Y29udGVudDoiXGYyOTEifS5mYS1zaG9wcGluZy1jYXJ0OmJlZm9yZXtjb250ZW50OiJcZjA3YSJ9LmZhLXNob3dlcjpiZWZvcmV7Y29udGVudDoiXGYyY2MifS5mYS1zaWduLWluLWFsdDpiZWZvcmV7Y29udGVudDoiXGYyZjYifS5mYS1zaWduLWxhbmd1YWdlOmJlZm9yZXtjb250ZW50OiJcZjJhNyJ9LmZhLXNpZ24tb3V0LWFsdDpiZWZvcmV7Y29udGVudDoiXGYyZjUifS5mYS1zaWduYWw6YmVmb3Jle2NvbnRlbnQ6IlxmMDEyIn0uZmEtc2ltcGx5YnVpbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMjE1In0uZmEtc2lzdHJpeDpiZWZvcmV7Y29udGVudDoiXGYzZWUifS5mYS1zaXRlbWFwOmJlZm9yZXtjb250ZW50OiJcZjBlOCJ9LmZhLXNreWF0bGFzOmJlZm9yZXtjb250ZW50OiJcZjIxNiJ9LmZhLXNreXBlOmJlZm9yZXtjb250ZW50OiJcZjE3ZSJ9LmZhLXNsYWNrOmJlZm9yZXtjb250ZW50OiJcZjE5OCJ9LmZhLXNsYWNrLWhhc2g6YmVmb3Jle2NvbnRlbnQ6IlxmM2VmIn0uZmEtc2xpZGVycy1oOmJlZm9yZXtjb250ZW50OiJcZjFkZSJ9LmZhLXNsaWRlc2hhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMWU3In0uZmEtc21pbGU6YmVmb3JlLC5mYS1zbWlsZS1vOmJlZm9yZXtjb250ZW50OiJcZjExOCJ9LmZhLXNuYXBjaGF0OmJlZm9yZXtjb250ZW50OiJcZjJhYiJ9LmZhLXNuYXBjaGF0LWdob3N0OmJlZm9yZXtjb250ZW50OiJcZjJhYyJ9LmZhLXNuYXBjaGF0LXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYyYWQifS5mYS1zbm93Zmxha2U6YmVmb3Jle2NvbnRlbnQ6IlxmMmRjIn0uZmEtc29ydDpiZWZvcmV7Y29udGVudDoiXGYwZGMifS5mYS1zb3J0LWFscGhhLWRvd246YmVmb3Jle2NvbnRlbnQ6IlxmMTVkIn0uZmEtc29ydC1hbHBoYS11cDpiZWZvcmV7Y29udGVudDoiXGYxNWUifS5mYS1zb3J0LWFtb3VudC1kb3duOmJlZm9yZXtjb250ZW50OiJcZjE2MCJ9LmZhLXNvcnQtYW1vdW50LXVwOmJlZm9yZXtjb250ZW50OiJcZjE2MSJ9LmZhLXNvcnQtZG93bjpiZWZvcmV7Y29udGVudDoiXGYwZGQifS5mYS1zb3J0LW51bWVyaWMtZG93bjpiZWZvcmV7Y29udGVudDoiXGYxNjIifS5mYS1zb3J0LW51bWVyaWMtdXA6YmVmb3Jle2NvbnRlbnQ6IlxmMTYzIn0uZmEtc29ydC11cDpiZWZvcmV7Y29udGVudDoiXGYwZGUifS5mYS1zb3VuZGNsb3VkOmJlZm9yZXtjb250ZW50OiJcZjFiZSJ9LmZhLXNwYWNlLXNodXR0bGU6YmVmb3Jle2NvbnRlbnQ6IlxmMTk3In0uZmEtc3BlYWthcDpiZWZvcmV7Y29udGVudDoiXGYzZjMifS5mYS1zcGlubmVyOmJlZm9yZXtjb250ZW50OiJcZjExMCJ9LmZhLXNwb3RpZnk6YmVmb3Jle2NvbnRlbnQ6IlxmMWJjIn0uZmEtc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjBjOCJ9LmZhLXNxdWFyZS1mdWxsOmJlZm9yZXtjb250ZW50OiJcZjQ1YyJ9LmZhLXN0YWNrLWV4Y2hhbmdlOmJlZm9yZXtjb250ZW50OiJcZjE4ZCJ9LmZhLXN0YWNrLW92ZXJmbG93OmJlZm9yZXtjb250ZW50OiJcZjE2YyJ9LmZhLXN0YXI6YmVmb3Jle2NvbnRlbnQ6IlxmMDA1In0uZmEtc3Rhci1oYWxmOmJlZm9yZXtjb250ZW50OiJcZjA4OSJ9LmZhLXN0YXlsaW5rZWQ6YmVmb3Jle2NvbnRlbnQ6IlxmM2Y1In0uZmEtc3RlYW06YmVmb3Jle2NvbnRlbnQ6IlxmMWI2In0uZmEtc3RlYW0tc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjFiNyJ9LmZhLXN0ZWFtLXN5bWJvbDpiZWZvcmV7Y29udGVudDoiXGYzZjYifS5mYS1zdGVwLWJhY2t3YXJkOmJlZm9yZXtjb250ZW50OiJcZjA0OCJ9LmZhLXN0ZXAtZm9yd2FyZDpiZWZvcmV7Y29udGVudDoiXGYwNTEifS5mYS1zdGV0aG9zY29wZTpiZWZvcmV7Y29udGVudDoiXGYwZjEifS5mYS1zdGlja2VyLW11bGU6YmVmb3Jle2NvbnRlbnQ6IlxmM2Y3In0uZmEtc3RpY2t5LW5vdGU6YmVmb3Jle2NvbnRlbnQ6IlxmMjQ5In0uZmEtc3RvcDpiZWZvcmV7Y29udGVudDoiXGYwNGQifS5mYS1zdG9wLWNpcmNsZTpiZWZvcmV7Y29udGVudDoiXGYyOGQifS5mYS1zdG9wd2F0Y2g6YmVmb3Jle2NvbnRlbnQ6IlxmMmYyIn0uZmEtc3RyYXZhOmJlZm9yZXtjb250ZW50OiJcZjQyOCJ9LmZhLXN0cmVldC12aWV3OmJlZm9yZXtjb250ZW50OiJcZjIxZCJ9LmZhLXN0cmlrZXRocm91Z2g6YmVmb3Jle2NvbnRlbnQ6IlxmMGNjIn0uZmEtc3RyaXBlOmJlZm9yZXtjb250ZW50OiJcZjQyOSJ9LmZhLXN0cmlwZS1zOmJlZm9yZXtjb250ZW50OiJcZjQyYSJ9LmZhLXN0dWRpb3ZpbmFyaTpiZWZvcmV7Y29udGVudDoiXGYzZjgifS5mYS1zdHVtYmxldXBvbjpiZWZvcmV7Y29udGVudDoiXGYxYTQifS5mYS1zdHVtYmxldXBvbi1jaXJjbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMWEzIn0uZmEtc3Vic2NyaXB0OmJlZm9yZXtjb250ZW50OiJcZjEyYyJ9LmZhLXN1YndheTpiZWZvcmV7Y29udGVudDoiXGYyMzkifS5mYS1zdWl0Y2FzZTpiZWZvcmV7Y29udGVudDoiXGYwZjIifS5mYS1zdW46YmVmb3JlLC5mYS1zdW4tbzpiZWZvcmV7Y29udGVudDoiXGYxODUifS5mYS1zdXBlcnBvd2VyczpiZWZvcmV7Y29udGVudDoiXGYyZGQifS5mYS1zdXBlcnNjcmlwdDpiZWZvcmV7Y29udGVudDoiXGYxMmIifS5mYS1zdXBwbGU6YmVmb3Jle2NvbnRlbnQ6IlxmM2Y5In0uZmEtc3luYzpiZWZvcmV7Y29udGVudDoiXGYwMjEifS5mYS1zeW5jLWFsdDpiZWZvcmV7Y29udGVudDoiXGYyZjEifS5mYS10YWJsZTpiZWZvcmV7Y29udGVudDoiXGYwY2UifS5mYS10YWJsZS10ZW5uaXM6YmVmb3Jle2NvbnRlbnQ6IlxmNDVkIn0uZmEtdGFibGV0OmJlZm9yZXtjb250ZW50OiJcZjEwYSJ9LmZhLXRhYmxldC1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmM2ZhIn0uZmEtdGFjaG9tZXRlci1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmM2ZkIn0uZmEtdGFnOmJlZm9yZXtjb250ZW50OiJcZjAyYiJ9LmZhLXRhZ3M6YmVmb3Jle2NvbnRlbnQ6IlxmMDJjIn0uZmEtdGFza3M6YmVmb3Jle2NvbnRlbnQ6IlxmMGFlIn0uZmEtdGF4aTpiZWZvcmV7Y29udGVudDoiXGYxYmEifS5mYS10ZWxlZ3JhbTpiZWZvcmV7Y29udGVudDoiXGYyYzYifS5mYS10ZWxlZ3JhbS1wbGFuZTpiZWZvcmV7Y29udGVudDoiXGYzZmUifS5mYS10ZW5jZW50LXdlaWJvOmJlZm9yZXtjb250ZW50OiJcZjFkNSJ9LmZhLXRlcm1pbmFsOmJlZm9yZXtjb250ZW50OiJcZjEyMCJ9LmZhLXRleHQtaGVpZ2h0OmJlZm9yZXtjb250ZW50OiJcZjAzNCJ9LmZhLXRleHQtd2lkdGg6YmVmb3Jle2NvbnRlbnQ6IlxmMDM1In0uZmEtdGg6YmVmb3Jle2NvbnRlbnQ6IlxmMDBhIn0uZmEtdGgtbGFyZ2U6YmVmb3Jle2NvbnRlbnQ6IlxmMDA5In0uZmEtdGgtbGlzdDpiZWZvcmV7Y29udGVudDoiXGYwMGIifS5mYS10aGVtZWlzbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMmIyIn0uZmEtdGhlcm1vbWV0ZXItZW1wdHk6YmVmb3Jle2NvbnRlbnQ6IlxmMmNiIn0uZmEtdGhlcm1vbWV0ZXItZnVsbDpiZWZvcmV7Y29udGVudDoiXGYyYzcifS5mYS10aGVybW9tZXRlci1oYWxmOmJlZm9yZXtjb250ZW50OiJcZjJjOSJ9LmZhLXRoZXJtb21ldGVyLXF1YXJ0ZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMmNhIn0uZmEtdGhlcm1vbWV0ZXItdGhyZWUtcXVhcnRlcnM6YmVmb3Jle2NvbnRlbnQ6IlxmMmM4In0uZmEtdGh1bWJzLWRvd246YmVmb3Jle2NvbnRlbnQ6IlxmMTY1In0uZmEtdGh1bWJzLXVwOmJlZm9yZXtjb250ZW50OiJcZjE2NCJ9LmZhLXRodW1idGFjazpiZWZvcmV7Y29udGVudDoiXGYwOGQifS5mYS10aWNrZXQtYWx0OmJlZm9yZXtjb250ZW50OiJcZjNmZiJ9LmZhLXRpbWVzOmJlZm9yZXtjb250ZW50OiJcZjAwZCJ9LmZhLXRpbWVzLWNpcmNsZTpiZWZvcmV7Y29udGVudDoiXGYwNTcifS5mYS10aW50OmJlZm9yZXtjb250ZW50OiJcZjA0MyJ9LmZhLXRvZ2dsZS1vZmY6YmVmb3Jle2NvbnRlbnQ6IlxmMjA0In0uZmEtdG9nZ2xlLW9uOmJlZm9yZXtjb250ZW50OiJcZjIwNSJ9LmZhLXRyYWRlbWFyazpiZWZvcmV7Y29udGVudDoiXGYyNWMifS5mYS10cmFpbjpiZWZvcmV7Y29udGVudDoiXGYyMzgifS5mYS10cmFuc2dlbmRlcjpiZWZvcmV7Y29udGVudDoiXGYyMjQifS5mYS10cmFuc2dlbmRlci1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMjI1In0uZmEtdHJhc2g6YmVmb3Jle2NvbnRlbnQ6IlxmMWY4In0uZmEtdHJhc2gtYWx0OmJlZm9yZXtjb250ZW50OiJcZjJlZCJ9LmZhLXRyZWU6YmVmb3Jle2NvbnRlbnQ6IlxmMWJiIn0uZmEtdHJlbGxvOmJlZm9yZXtjb250ZW50OiJcZjE4MSJ9LmZhLXRyaXBhZHZpc29yOmJlZm9yZXtjb250ZW50OiJcZjI2MiJ9LmZhLXRyb3BoeTpiZWZvcmV7Y29udGVudDoiXGYwOTEifS5mYS10cnVjazpiZWZvcmV7Y29udGVudDoiXGYwZDEifS5mYS10dHk6YmVmb3Jle2NvbnRlbnQ6IlxmMWU0In0uZmEtdHVtYmxyOmJlZm9yZXtjb250ZW50OiJcZjE3MyJ9LmZhLXR1bWJsci1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMTc0In0uZmEtdHY6YmVmb3Jle2NvbnRlbnQ6IlxmMjZjIn0uZmEtdHdpdGNoOmJlZm9yZXtjb250ZW50OiJcZjFlOCJ9LmZhLXR3aXR0ZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMDk5In0uZmEtdHdpdHRlci1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMDgxIn0uZmEtdHlwbzM6YmVmb3Jle2NvbnRlbnQ6IlxmNDJiIn0uZmEtdWJlcjpiZWZvcmV7Y29udGVudDoiXGY0MDIifS5mYS11aWtpdDpiZWZvcmV7Y29udGVudDoiXGY0MDMifS5mYS11bWJyZWxsYTpiZWZvcmV7Y29udGVudDoiXGYwZTkifS5mYS11bmRlcmxpbmU6YmVmb3Jle2NvbnRlbnQ6IlxmMGNkIn0uZmEtdW5kbzpiZWZvcmV7Y29udGVudDoiXGYwZTIifS5mYS11bmRvLWFsdDpiZWZvcmV7Y29udGVudDoiXGYyZWEifS5mYS11bmlyZWdpc3RyeTpiZWZvcmV7Y29udGVudDoiXGY0MDQifS5mYS11bml2ZXJzYWwtYWNjZXNzOmJlZm9yZXtjb250ZW50OiJcZjI5YSJ9LmZhLXVuaXZlcnNpdHk6YmVmb3Jle2NvbnRlbnQ6IlxmMTljIn0uZmEtdW5saW5rOmJlZm9yZXtjb250ZW50OiJcZjEyNyJ9LmZhLXVubG9jazpiZWZvcmV7Y29udGVudDoiXGYwOWMifS5mYS11bmxvY2stYWx0OmJlZm9yZXtjb250ZW50OiJcZjEzZSJ9LmZhLXVudGFwcGQ6YmVmb3Jle2NvbnRlbnQ6IlxmNDA1In0uZmEtdXBsb2FkOmJlZm9yZXtjb250ZW50OiJcZjA5MyJ9LmZhLXVzYjpiZWZvcmV7Y29udGVudDoiXGYyODcifS5mYS11c2VyOmJlZm9yZXtjb250ZW50OiJcZjAwNyJ9LmZhLXVzZXItY2lyY2xlOmJlZm9yZXtjb250ZW50OiJcZjJiZCJ9LmZhLXVzZXItbWQ6YmVmb3Jle2NvbnRlbnQ6IlxmMGYwIn0uZmEtdXNlci1wbHVzOmJlZm9yZXtjb250ZW50OiJcZjIzNCJ9LmZhLXVzZXItc2VjcmV0OmJlZm9yZXtjb250ZW50OiJcZjIxYiJ9LmZhLXVzZXItdGltZXM6YmVmb3Jle2NvbnRlbnQ6IlxmMjM1In0uZmEtdXNlcnM6YmVmb3Jle2NvbnRlbnQ6IlxmMGMwIn0uZmEtdXNzdW5uYWg6YmVmb3Jle2NvbnRlbnQ6IlxmNDA3In0uZmEtdXRlbnNpbC1zcG9vbjpiZWZvcmV7Y29udGVudDoiXGYyZTUifS5mYS11dGVuc2lsczpiZWZvcmV7Y29udGVudDoiXGYyZTcifS5mYS12YWFkaW46YmVmb3Jle2NvbnRlbnQ6IlxmNDA4In0uZmEtdmVudXM6YmVmb3Jle2NvbnRlbnQ6IlxmMjIxIn0uZmEtdmVudXMtZG91YmxlOmJlZm9yZXtjb250ZW50OiJcZjIyNiJ9LmZhLXZlbnVzLW1hcnM6YmVmb3Jle2NvbnRlbnQ6IlxmMjI4In0uZmEtdmlhY29pbjpiZWZvcmV7Y29udGVudDoiXGYyMzcifS5mYS12aWFkZW86YmVmb3Jle2NvbnRlbnQ6IlxmMmE5In0uZmEtdmlhZGVvLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYyYWEifS5mYS12aWJlcjpiZWZvcmV7Y29udGVudDoiXGY0MDkifS5mYS12aWRlbzpiZWZvcmV7Y29udGVudDoiXGYwM2QifS5mYS12aW1lbzpiZWZvcmV7Y29udGVudDoiXGY0MGEifS5mYS12aW1lby1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMTk0In0uZmEtdmltZW8tdjpiZWZvcmV7Y29udGVudDoiXGYyN2QifS5mYS12aW5lOmJlZm9yZXtjb250ZW50OiJcZjFjYSJ9LmZhLXZrOmJlZm9yZXtjb250ZW50OiJcZjE4OSJ9LmZhLXZudjpiZWZvcmV7Y29udGVudDoiXGY0MGIifS5mYS12b2xsZXliYWxsLWJhbGw6YmVmb3Jle2NvbnRlbnQ6IlxmNDVmIn0uZmEtdm9sdW1lLWRvd246YmVmb3Jle2NvbnRlbnQ6IlxmMDI3In0uZmEtdm9sdW1lLW9mZjpiZWZvcmV7Y29udGVudDoiXGYwMjYifS5mYS12b2x1bWUtdXA6YmVmb3Jle2NvbnRlbnQ6IlxmMDI4In0uZmEtdnVlanM6YmVmb3Jle2NvbnRlbnQ6IlxmNDFmIn0uZmEtd2VpYm86YmVmb3Jle2NvbnRlbnQ6IlxmMThhIn0uZmEtd2VpeGluOmJlZm9yZXtjb250ZW50OiJcZjFkNyJ9LmZhLXdoYXRzYXBwOmJlZm9yZXtjb250ZW50OiJcZjIzMiJ9LmZhLXdoYXRzYXBwLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGY0MGMifS5mYS13aGVlbGNoYWlyOmJlZm9yZXtjb250ZW50OiJcZjE5MyJ9LmZhLXdobWNzOmJlZm9yZXtjb250ZW50OiJcZjQwZCJ9LmZhLXdpZmk6YmVmb3Jle2NvbnRlbnQ6IlxmMWViIn0uZmEtd2lraXBlZGlhLXc6YmVmb3Jle2NvbnRlbnQ6IlxmMjY2In0uZmEtd2luZG93LWNsb3NlOmJlZm9yZXtjb250ZW50OiJcZjQxMCJ9LmZhLXdpbmRvdy1tYXhpbWl6ZTpiZWZvcmV7Y29udGVudDoiXGYyZDAifS5mYS13aW5kb3ctbWluaW1pemU6YmVmb3Jle2NvbnRlbnQ6IlxmMmQxIn0uZmEtd2luZG93LXJlc3RvcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMmQyIn0uZmEtd2luZG93czpiZWZvcmV7Y29udGVudDoiXGYxN2EifS5mYS13b24tc2lnbjpiZWZvcmV7Y29udGVudDoiXGYxNTkifS5mYS13b3JkcHJlc3M6YmVmb3Jle2NvbnRlbnQ6IlxmMTlhIn0uZmEtd29yZHByZXNzLXNpbXBsZTpiZWZvcmV7Y29udGVudDoiXGY0MTEifS5mYS13cGJlZ2lubmVyOmJlZm9yZXtjb250ZW50OiJcZjI5NyJ9LmZhLXdwZXhwbG9yZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMmRlIn0uZmEtd3Bmb3JtczpiZWZvcmV7Y29udGVudDoiXGYyOTgifS5mYS13cmVuY2g6YmVmb3Jle2NvbnRlbnQ6IlxmMGFkIn0uZmEteGJveDpiZWZvcmV7Y29udGVudDoiXGY0MTIifS5mYS14aW5nOmJlZm9yZXtjb250ZW50OiJcZjE2OCJ9LmZhLXhpbmctc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjE2OSJ9LmZhLXktY29tYmluYXRvcjpiZWZvcmV7Y29udGVudDoiXGYyM2IifS5mYS15YWhvbzpiZWZvcmV7Y29udGVudDoiXGYxOWUifS5mYS15YW5kZXg6YmVmb3Jle2NvbnRlbnQ6IlxmNDEzIn0uZmEteWFuZGV4LWludGVybmF0aW9uYWw6YmVmb3Jle2NvbnRlbnQ6IlxmNDE0In0uZmEteWVscDpiZWZvcmV7Y29udGVudDoiXGYxZTkifS5mYS15ZW4tc2lnbjpiZWZvcmV7Y29udGVudDoiXGYxNTcifS5mYS15b2FzdDpiZWZvcmV7Y29udGVudDoiXGYyYjEifS5mYS15b3V0dWJlOmJlZm9yZXtjb250ZW50OiJcZjE2NyJ9LmZhLXlvdXR1YmUtc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjQzMSJ9Ci8qKiAvY3NzL3YyL2FuaW1hdGUuY3NzICoqLwouYW5pbS1iZWF0IHsgLXdlYmtpdC1hbmltYXRpb24tbmFtZTphbmltLWJlYXQ7IGFuaW1hdGlvbi1uYW1lOmFuaW0tYmVhdDsgLXdlYmtpdC1hbmltYXRpb24tZGVsYXk6dmFyKC0tYW5pbS1kZWxheSwwcyk7IGFuaW1hdGlvbi1kZWxheTp2YXIoLS1hbmltLWRlbGF5LDBzKTsgLXdlYmtpdC1hbmltYXRpb24tZGlyZWN0aW9uOnZhcigtLWFuaW0tZGlyZWN0aW9uLG5vcm1hbCk7IGFuaW1hdGlvbi1kaXJlY3Rpb246dmFyKC0tYW5pbS1kaXJlY3Rpb24sbm9ybWFsKTsgLXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246dmFyKC0tYW5pbS1kdXJhdGlvbiwxcyk7IGFuaW1hdGlvbi1kdXJhdGlvbjp2YXIoLS1hbmltLWR1cmF0aW9uLDFzKTsgLXdlYmtpdC1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50OnZhcigtLWFuaW0taXRlcmF0aW9uLWNvdW50LGluZmluaXRlKTsgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDp2YXIoLS1hbmltLWl0ZXJhdGlvbi1jb3VudCxpbmZpbml0ZSk7IC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjp2YXIoLS1hbmltLXRpbWluZyxlYXNlLWluLW91dCk7IGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246dmFyKC0tYW5pbS10aW1pbmcsZWFzZS1pbi1vdXQpIH0gLmFuaW0tYm91bmNlIHsgLXdlYmtpdC1hbmltYXRpb24tbmFtZTphbmltLWJvdW5jZTsgYW5pbWF0aW9uLW5hbWU6YW5pbS1ib3VuY2U7IC13ZWJraXQtYW5pbWF0aW9uLWRlbGF5OnZhcigtLWFuaW0tZGVsYXksMHMpOyBhbmltYXRpb24tZGVsYXk6dmFyKC0tYW5pbS1kZWxheSwwcyk7IC13ZWJraXQtYW5pbWF0aW9uLWRpcmVjdGlvbjp2YXIoLS1hbmltLWRpcmVjdGlvbixub3JtYWwpOyBhbmltYXRpb24tZGlyZWN0aW9uOnZhcigtLWFuaW0tZGlyZWN0aW9uLG5vcm1hbCk7IC13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOnZhcigtLWFuaW0tZHVyYXRpb24sMXMpOyBhbmltYXRpb24tZHVyYXRpb246dmFyKC0tYW5pbS1kdXJhdGlvbiwxcyk7IC13ZWJraXQtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDp2YXIoLS1hbmltLWl0ZXJhdGlvbi1jb3VudCxpbmZpbml0ZSk7IGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6dmFyKC0tYW5pbS1pdGVyYXRpb24tY291bnQsaW5maW5pdGUpOyAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246dmFyKC0tYW5pbS10aW1pbmcsY3ViaWMtYmV6aWVyKC4yOCwuODQsLjQyLDEpKTsgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjp2YXIoLS1hbmltLXRpbWluZyxjdWJpYy1iZXppZXIoLjI4LC44NCwuNDIsMSkpIH0gLmFuaW0tZmFkZSB7IC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6YW5pbS1mYWRlOyBhbmltYXRpb24tbmFtZTphbmltLWZhZGU7IC13ZWJraXQtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDp2YXIoLS1hbmltLWl0ZXJhdGlvbi1jb3VudCxpbmZpbml0ZSk7IGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6dmFyKC0tYW5pbS1pdGVyYXRpb24tY291bnQsaW5maW5pdGUpOyAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246dmFyKC0tYW5pbS10aW1pbmcsY3ViaWMtYmV6aWVyKC40LDAsLjYsMSkpOyBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOnZhcigtLWFuaW0tdGltaW5nLGN1YmljLWJlemllciguNCwwLC42LDEpKSB9IC5hbmltLWJlYXQtZmFkZSwuYW5pbS1mYWRlIHsgLXdlYmtpdC1hbmltYXRpb24tZGVsYXk6dmFyKC0tYW5pbS1kZWxheSwwcyk7IGFuaW1hdGlvbi1kZWxheTp2YXIoLS1hbmltLWRlbGF5LDBzKTsgLXdlYmtpdC1hbmltYXRpb24tZGlyZWN0aW9uOnZhcigtLWFuaW0tZGlyZWN0aW9uLG5vcm1hbCk7IGFuaW1hdGlvbi1kaXJlY3Rpb246dmFyKC0tYW5pbS1kaXJlY3Rpb24sbm9ybWFsKTsgLXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246dmFyKC0tYW5pbS1kdXJhdGlvbiwxcyk7IGFuaW1hdGlvbi1kdXJhdGlvbjp2YXIoLS1hbmltLWR1cmF0aW9uLDFzKSB9IC5hbmltLWJlYXQtZmFkZSB7IC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6YW5pbS1iZWF0LWZhZGU7IGFuaW1hdGlvbi1uYW1lOmFuaW0tYmVhdC1mYWRlOyAtd2Via2l0LWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6dmFyKC0tYW5pbS1pdGVyYXRpb24tY291bnQsaW5maW5pdGUpOyBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OnZhcigtLWFuaW0taXRlcmF0aW9uLWNvdW50LGluZmluaXRlKTsgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOnZhcigtLWFuaW0tdGltaW5nLGN1YmljLWJlemllciguNCwwLC42LDEpKTsgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjp2YXIoLS1hbmltLXRpbWluZyxjdWJpYy1iZXppZXIoLjQsMCwuNiwxKSkgfSAuYW5pbS1mbGlwIHsgLXdlYmtpdC1hbmltYXRpb24tbmFtZTphbmltLWZsaXA7IGFuaW1hdGlvbi1uYW1lOmFuaW0tZmxpcDsgLXdlYmtpdC1hbmltYXRpb24tZGVsYXk6dmFyKC0tYW5pbS1kZWxheSwwcyk7IGFuaW1hdGlvbi1kZWxheTp2YXIoLS1hbmltLWRlbGF5LDBzKTsgLXdlYmtpdC1hbmltYXRpb24tZGlyZWN0aW9uOnZhcigtLWFuaW0tZGlyZWN0aW9uLG5vcm1hbCk7IGFuaW1hdGlvbi1kaXJlY3Rpb246dmFyKC0tYW5pbS1kaXJlY3Rpb24sbm9ybWFsKTsgLXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246dmFyKC0tYW5pbS1kdXJhdGlvbiwzcyk7IGFuaW1hdGlvbi1kdXJhdGlvbjp2YXIoLS1hbmltLWR1cmF0aW9uLDNzKTsgLXdlYmtpdC1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50OnZhcigtLWFuaW0taXRlcmF0aW9uLWNvdW50LGluZmluaXRlKTsgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDp2YXIoLS1hbmltLWl0ZXJhdGlvbi1jb3VudCxpbmZpbml0ZSk7IC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjp2YXIoLS1hbmltLXRpbWluZyxlYXNlLWluLW91dCk7IGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246dmFyKC0tYW5pbS10aW1pbmcsZWFzZS1pbi1vdXQpIH0gLmFuaW0tc2hha2UgeyAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOmFuaW0tc2hha2U7IGFuaW1hdGlvbi1uYW1lOmFuaW0tc2hha2U7IC13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOnZhcigtLWFuaW0tZHVyYXRpb24sMXMpOyBhbmltYXRpb24tZHVyYXRpb246dmFyKC0tYW5pbS1kdXJhdGlvbiwxcyk7IC13ZWJraXQtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDp2YXIoLS1hbmltLWl0ZXJhdGlvbi1jb3VudCxpbmZpbml0ZSk7IGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6dmFyKC0tYW5pbS1pdGVyYXRpb24tY291bnQsaW5maW5pdGUpOyAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246dmFyKC0tYW5pbS10aW1pbmcsbGluZWFyKTsgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjp2YXIoLS1hbmltLXRpbWluZyxsaW5lYXIpIH0gLmFuaW0tc2hha2UsLmFuaW0tc3BpbiB7IC13ZWJraXQtYW5pbWF0aW9uLWRlbGF5OnZhcigtLWFuaW0tZGVsYXksMHMpOyBhbmltYXRpb24tZGVsYXk6dmFyKC0tYW5pbS1kZWxheSwwcyk7IC13ZWJraXQtYW5pbWF0aW9uLWRpcmVjdGlvbjp2YXIoLS1hbmltLWRpcmVjdGlvbixub3JtYWwpOyBhbmltYXRpb24tZGlyZWN0aW9uOnZhcigtLWFuaW0tZGlyZWN0aW9uLG5vcm1hbCkgfSAuYW5pbS1zcGluIHsgLXdlYmtpdC1hbmltYXRpb24tbmFtZTphbmltLXNwaW47IGFuaW1hdGlvbi1uYW1lOmFuaW0tc3BpbjsgLXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246dmFyKC0tYW5pbS1kdXJhdGlvbiwycyk7IGFuaW1hdGlvbi1kdXJhdGlvbjp2YXIoLS1hbmltLWR1cmF0aW9uLDJzKTsgLXdlYmtpdC1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50OnZhcigtLWFuaW0taXRlcmF0aW9uLWNvdW50LGluZmluaXRlKTsgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDp2YXIoLS1hbmltLWl0ZXJhdGlvbi1jb3VudCxpbmZpbml0ZSk7IC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjp2YXIoLS1hbmltLXRpbWluZyxsaW5lYXIpOyBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOnZhcigtLWFuaW0tdGltaW5nLGxpbmVhcikgfSAuYW5pbS1zcGluLXJldmVyc2UgeyAtLWFuaW0tZGlyZWN0aW9uOnJldmVyc2UgfSAuYW5pbS1wdWxzZSwuYW5pbS1zcGluLXB1bHNlIHsgLXdlYmtpdC1hbmltYXRpb24tbmFtZTphbmltLXNwaW47IGFuaW1hdGlvbi1uYW1lOmFuaW0tc3BpbjsgLXdlYmtpdC1hbmltYXRpb24tZGlyZWN0aW9uOnZhcigtLWFuaW0tZGlyZWN0aW9uLG5vcm1hbCk7IGFuaW1hdGlvbi1kaXJlY3Rpb246dmFyKC0tYW5pbS1kaXJlY3Rpb24sbm9ybWFsKTsgLXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246dmFyKC0tYW5pbS1kdXJhdGlvbiwxcyk7IGFuaW1hdGlvbi1kdXJhdGlvbjp2YXIoLS1hbmltLWR1cmF0aW9uLDFzKTsgLXdlYmtpdC1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50OnZhcigtLWFuaW0taXRlcmF0aW9uLWNvdW50LGluZmluaXRlKTsgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDp2YXIoLS1hbmltLWl0ZXJhdGlvbi1jb3VudCxpbmZpbml0ZSk7IC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjp2YXIoLS1hbmltLXRpbWluZyxzdGVwcyg4KSk7IGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246dmFyKC0tYW5pbS10aW1pbmcsc3RlcHMoOCkpIH0gQC13ZWJraXQta2V5ZnJhbWVzIGFuaW0tYmVhdCB7IDAlLDkwJSB7IC13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDEpOyB0cmFuc2Zvcm06c2NhbGUoMSkgfSA0NSUgeyAtd2Via2l0LXRyYW5zZm9ybTpzY2FsZSh2YXIoLS1hbmltLWJlYXQtc2NhbGUsMS4yNSkpOyB0cmFuc2Zvcm06c2NhbGUodmFyKC0tYW5pbS1iZWF0LXNjYWxlLDEuMjUpKSB9IH0gQGtleWZyYW1lcyBhbmltLWJlYXQgeyAwJSw5MCUgeyAtd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgxKTsgdHJhbnNmb3JtOnNjYWxlKDEpIH0gNDUlIHsgLXdlYmtpdC10cmFuc2Zvcm06c2NhbGUodmFyKC0tYW5pbS1iZWF0LXNjYWxlLDEuMjUpKTsgdHJhbnNmb3JtOnNjYWxlKHZhcigtLWFuaW0tYmVhdC1zY2FsZSwxLjI1KSkgfSB9IEAtd2Via2l0LWtleWZyYW1lcyBhbmltLWJvdW5jZSB7IDAlIHsgLXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMSkgdHJhbnNsYXRlWSgwKTsgdHJhbnNmb3JtOnNjYWxlKDEpIHRyYW5zbGF0ZVkoMCkgfSAxMCUgeyAtd2Via2l0LXRyYW5zZm9ybTpzY2FsZSh2YXIoLS1hbmltLWJvdW5jZS1zdGFydC1zY2FsZS14LDEuMSksdmFyKC0tYW5pbS1ib3VuY2Utc3RhcnQtc2NhbGUteSwuOSkpIHRyYW5zbGF0ZVkoMCk7IHRyYW5zZm9ybTpzY2FsZSh2YXIoLS1hbmltLWJvdW5jZS1zdGFydC1zY2FsZS14LDEuMSksdmFyKC0tYW5pbS1ib3VuY2Utc3RhcnQtc2NhbGUteSwuOSkpIHRyYW5zbGF0ZVkoMCkgfSAzMCUgeyAtd2Via2l0LXRyYW5zZm9ybTpzY2FsZSh2YXIoLS1hbmltLWJvdW5jZS1qdW1wLXNjYWxlLXgsLjkpLHZhcigtLWFuaW0tYm91bmNlLWp1bXAtc2NhbGUteSwxLjEpKSB0cmFuc2xhdGVZKHZhcigtLWFuaW0tYm91bmNlLWhlaWdodCwtLjVlbSkpOyB0cmFuc2Zvcm06c2NhbGUodmFyKC0tYW5pbS1ib3VuY2UtanVtcC1zY2FsZS14LC45KSx2YXIoLS1hbmltLWJvdW5jZS1qdW1wLXNjYWxlLXksMS4xKSkgdHJhbnNsYXRlWSh2YXIoLS1hbmltLWJvdW5jZS1oZWlnaHQsLS41ZW0pKSB9IDUwJSB7IC13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKHZhcigtLWFuaW0tYm91bmNlLWxhbmQtc2NhbGUteCwxLjA1KSx2YXIoLS1hbmltLWJvdW5jZS1sYW5kLXNjYWxlLXksLjk1KSkgdHJhbnNsYXRlWSgwKTsgdHJhbnNmb3JtOnNjYWxlKHZhcigtLWFuaW0tYm91bmNlLWxhbmQtc2NhbGUteCwxLjA1KSx2YXIoLS1hbmltLWJvdW5jZS1sYW5kLXNjYWxlLXksLjk1KSkgdHJhbnNsYXRlWSgwKSB9IDU3JSB7IC13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDEpIHRyYW5zbGF0ZVkodmFyKC0tYW5pbS1ib3VuY2UtcmVib3VuZCwtLjEyNWVtKSk7IHRyYW5zZm9ybTpzY2FsZSgxKSB0cmFuc2xhdGVZKHZhcigtLWFuaW0tYm91bmNlLXJlYm91bmQsLS4xMjVlbSkpIH0gNjQlIHsgLXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMSkgdHJhbnNsYXRlWSgwKTsgdHJhbnNmb3JtOnNjYWxlKDEpIHRyYW5zbGF0ZVkoMCkgfSB0byB7IC13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDEpIHRyYW5zbGF0ZVkoMCk7IHRyYW5zZm9ybTpzY2FsZSgxKSB0cmFuc2xhdGVZKDApIH0gfSBAa2V5ZnJhbWVzIGFuaW0tYm91bmNlIHsgMCUgeyAtd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgxKSB0cmFuc2xhdGVZKDApOyB0cmFuc2Zvcm06c2NhbGUoMSkgdHJhbnNsYXRlWSgwKSB9IDEwJSB7IC13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKHZhcigtLWFuaW0tYm91bmNlLXN0YXJ0LXNjYWxlLXgsMS4xKSx2YXIoLS1hbmltLWJvdW5jZS1zdGFydC1zY2FsZS15LC45KSkgdHJhbnNsYXRlWSgwKTsgdHJhbnNmb3JtOnNjYWxlKHZhcigtLWFuaW0tYm91bmNlLXN0YXJ0LXNjYWxlLXgsMS4xKSx2YXIoLS1hbmltLWJvdW5jZS1zdGFydC1zY2FsZS15LC45KSkgdHJhbnNsYXRlWSgwKSB9IDMwJSB7IC13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKHZhcigtLWFuaW0tYm91bmNlLWp1bXAtc2NhbGUteCwuOSksdmFyKC0tYW5pbS1ib3VuY2UtanVtcC1zY2FsZS15LDEuMSkpIHRyYW5zbGF0ZVkodmFyKC0tYW5pbS1ib3VuY2UtaGVpZ2h0LC0uNWVtKSk7IHRyYW5zZm9ybTpzY2FsZSh2YXIoLS1hbmltLWJvdW5jZS1qdW1wLXNjYWxlLXgsLjkpLHZhcigtLWFuaW0tYm91bmNlLWp1bXAtc2NhbGUteSwxLjEpKSB0cmFuc2xhdGVZKHZhcigtLWFuaW0tYm91bmNlLWhlaWdodCwtLjVlbSkpIH0gNTAlIHsgLXdlYmtpdC10cmFuc2Zvcm06c2NhbGUodmFyKC0tYW5pbS1ib3VuY2UtbGFuZC1zY2FsZS14LDEuMDUpLHZhcigtLWFuaW0tYm91bmNlLWxhbmQtc2NhbGUteSwuOTUpKSB0cmFuc2xhdGVZKDApOyB0cmFuc2Zvcm06c2NhbGUodmFyKC0tYW5pbS1ib3VuY2UtbGFuZC1zY2FsZS14LDEuMDUpLHZhcigtLWFuaW0tYm91bmNlLWxhbmQtc2NhbGUteSwuOTUpKSB0cmFuc2xhdGVZKDApIH0gNTclIHsgLXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMSkgdHJhbnNsYXRlWSh2YXIoLS1hbmltLWJvdW5jZS1yZWJvdW5kLC0uMTI1ZW0pKTsgdHJhbnNmb3JtOnNjYWxlKDEpIHRyYW5zbGF0ZVkodmFyKC0tYW5pbS1ib3VuY2UtcmVib3VuZCwtLjEyNWVtKSkgfSA2NCUgeyAtd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgxKSB0cmFuc2xhdGVZKDApOyB0cmFuc2Zvcm06c2NhbGUoMSkgdHJhbnNsYXRlWSgwKSB9IHRvIHsgLXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMSkgdHJhbnNsYXRlWSgwKTsgdHJhbnNmb3JtOnNjYWxlKDEpIHRyYW5zbGF0ZVkoMCkgfSB9IEAtd2Via2l0LWtleWZyYW1lcyBhbmltLWZhZGUgeyA1MCUgeyBvcGFjaXR5OnZhcigtLWFuaW0tZmFkZS1vcGFjaXR5LC40KSB9IH0gQGtleWZyYW1lcyBhbmltLWZhZGUgeyA1MCUgeyBvcGFjaXR5OnZhcigtLWFuaW0tZmFkZS1vcGFjaXR5LC40KSB9IH0gQC13ZWJraXQta2V5ZnJhbWVzIGFuaW0tYmVhdC1mYWRlIHsgMCUsdG8geyBvcGFjaXR5OnZhcigtLWFuaW0tYmVhdC1mYWRlLW9wYWNpdHksLjQpOyAtd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgxKTsgdHJhbnNmb3JtOnNjYWxlKDEpIH0gNTAlIHsgb3BhY2l0eToxOyAtd2Via2l0LXRyYW5zZm9ybTpzY2FsZSh2YXIoLS1hbmltLWJlYXQtZmFkZS1zY2FsZSwxLjEyNSkpOyB0cmFuc2Zvcm06c2NhbGUodmFyKC0tYW5pbS1iZWF0LWZhZGUtc2NhbGUsMS4xMjUpKSB9IH0gQGtleWZyYW1lcyBhbmltLWJlYXQtZmFkZSB7IDAlLHRvIHsgb3BhY2l0eTp2YXIoLS1hbmltLWJlYXQtZmFkZS1vcGFjaXR5LC40KTsgLXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMSk7IHRyYW5zZm9ybTpzY2FsZSgxKSB9IDUwJSB7IG9wYWNpdHk6MTsgLXdlYmtpdC10cmFuc2Zvcm06c2NhbGUodmFyKC0tYW5pbS1iZWF0LWZhZGUtc2NhbGUsMS4xMjUpKTsgdHJhbnNmb3JtOnNjYWxlKHZhcigtLWFuaW0tYmVhdC1mYWRlLXNjYWxlLDEuMTI1KSkgfSB9IEAtd2Via2l0LWtleWZyYW1lcyBhbmltLWZsaXAgeyA1MCUgeyAtd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUzZCh2YXIoLS1hbmltLWZsaXAteCwwKSx2YXIoLS1hbmltLWZsaXAteSwxKSx2YXIoLS1hbmltLWZsaXAteiwwKSx2YXIoLS1hbmltLWZsaXAtYW5nbGUsLTE4MGRlZykpOyB0cmFuc2Zvcm06cm90YXRlM2QodmFyKC0tYW5pbS1mbGlwLXgsMCksdmFyKC0tYW5pbS1mbGlwLXksMSksdmFyKC0tYW5pbS1mbGlwLXosMCksdmFyKC0tYW5pbS1mbGlwLWFuZ2xlLC0xODBkZWcpKSB9IH0gQGtleWZyYW1lcyBhbmltLWZsaXAgeyA1MCUgeyAtd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUzZCh2YXIoLS1hbmltLWZsaXAteCwwKSx2YXIoLS1hbmltLWZsaXAteSwxKSx2YXIoLS1hbmltLWZsaXAteiwwKSx2YXIoLS1hbmltLWZsaXAtYW5nbGUsLTE4MGRlZykpOyB0cmFuc2Zvcm06cm90YXRlM2QodmFyKC0tYW5pbS1mbGlwLXgsMCksdmFyKC0tYW5pbS1mbGlwLXksMSksdmFyKC0tYW5pbS1mbGlwLXosMCksdmFyKC0tYW5pbS1mbGlwLWFuZ2xlLC0xODBkZWcpKSB9IH0gQC13ZWJraXQta2V5ZnJhbWVzIGFuaW0tc2hha2UgeyAwJSB7IC13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgtMTVkZWcpOyB0cmFuc2Zvcm06cm90YXRlKC0xNWRlZykgfSA0JSB7IC13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgxNWRlZyk7IHRyYW5zZm9ybTpyb3RhdGUoMTVkZWcpIH0gOCUsMjQlIHsgLXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKC0xOGRlZyk7IHRyYW5zZm9ybTpyb3RhdGUoLTE4ZGVnKSB9IDEyJSwyOCUgeyAtd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMThkZWcpOyB0cmFuc2Zvcm06cm90YXRlKDE4ZGVnKSB9IDE2JSB7IC13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgtMjJkZWcpOyB0cmFuc2Zvcm06cm90YXRlKC0yMmRlZykgfSAyMCUgeyAtd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMjJkZWcpOyB0cmFuc2Zvcm06cm90YXRlKDIyZGVnKSB9IDMyJSB7IC13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgtMTJkZWcpOyB0cmFuc2Zvcm06cm90YXRlKC0xMmRlZykgfSAzNiUgeyAtd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMTJkZWcpOyB0cmFuc2Zvcm06cm90YXRlKDEyZGVnKSB9IDQwJSx0byB7IC13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgwZGVnKTsgdHJhbnNmb3JtOnJvdGF0ZSgwZGVnKSB9IH0gQGtleWZyYW1lcyBhbmltLXNoYWtlIHsgMCUgeyAtd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoLTE1ZGVnKTsgdHJhbnNmb3JtOnJvdGF0ZSgtMTVkZWcpIH0gNCUgeyAtd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMTVkZWcpOyB0cmFuc2Zvcm06cm90YXRlKDE1ZGVnKSB9IDglLDI0JSB7IC13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgtMThkZWcpOyB0cmFuc2Zvcm06cm90YXRlKC0xOGRlZykgfSAxMiUsMjglIHsgLXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDE4ZGVnKTsgdHJhbnNmb3JtOnJvdGF0ZSgxOGRlZykgfSAxNiUgeyAtd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoLTIyZGVnKTsgdHJhbnNmb3JtOnJvdGF0ZSgtMjJkZWcpIH0gMjAlIHsgLXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDIyZGVnKTsgdHJhbnNmb3JtOnJvdGF0ZSgyMmRlZykgfSAzMiUgeyAtd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoLTEyZGVnKTsgdHJhbnNmb3JtOnJvdGF0ZSgtMTJkZWcpIH0gMzYlIHsgLXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDEyZGVnKTsgdHJhbnNmb3JtOnJvdGF0ZSgxMmRlZykgfSA0MCUsdG8geyAtd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMGRlZyk7IHRyYW5zZm9ybTpyb3RhdGUoMGRlZykgfSB9IEAtd2Via2l0LWtleWZyYW1lcyBhbmltLXNwaW4geyAwJSB7IC13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgwZGVnKTsgdHJhbnNmb3JtOnJvdGF0ZSgwZGVnKSB9IHRvIHsgLXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDF0dXJuKTsgdHJhbnNmb3JtOnJvdGF0ZSgxdHVybikgfSB9IEBrZXlmcmFtZXMgYW5pbS1zcGluIHsgMCUgeyAtd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMGRlZyk7IHRyYW5zZm9ybTpyb3RhdGUoMGRlZykgfSB0byB7IC13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgxdHVybik7IHRyYW5zZm9ybTpyb3RhdGUoMXR1cm4pIH0gfSBAc3VwcG9ydHMgKC13ZWJraXQtdG91Y2gtY2FsbG91dDpub25lKSB7IGJvZHkgI3Byb21vVG9wQnRuIC5hbmltLWZsaXB7IC13ZWJraXQtYW5pbWF0aW9uLWRlbGF5OnVuc2V0OyBhbmltYXRpb24tZGVsYXk6dW5zZXQ7IC13ZWJraXQtYW5pbWF0aW9uLWRpcmVjdGlvbjp1bnNldDsgYW5pbWF0aW9uLWRpcmVjdGlvbjp1bnNldDsgLXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246dW5zZXQ7IGFuaW1hdGlvbi1kdXJhdGlvbjp1bnNldDsgLXdlYmtpdC1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50OnVuc2V0OyBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OnVuc2V0OyAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246dW5zZXQ7IGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246dW5zZXQ7IH0gfSAucHVsc2F0aW5nLWNpcmNsZSB7IHBvc2l0aW9uOnJlbGF0aXZlOyB3aWR0aDozMHB4OyBoZWlnaHQ6MzBweDsgZmxleDowIDAgYXV0bzsgJjpiZWZvcmUgeyBjb250ZW50OicnOyBwb3NpdGlvbjpyZWxhdGl2ZTsgZGlzcGxheTpibG9jazsgd2lkdGg6MzAwJTsgaGVpZ2h0OjMwMCU7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgbWFyZ2luLWxlZnQ6LTEwMCU7IG1hcmdpbi10b3A6LTEwMCU7IGJvcmRlci1yYWRpdXM6NDVweDsgYmFja2dyb3VuZC1jb2xvcjojMDFhNGU5OyBhbmltYXRpb246cHVsc2UtcmluZyAxLjI1cyBjdWJpYy1iZXppZXIoMC4yMTUsIDAuNjEsIDAuMzU1LCAxKSBpbmZpbml0ZTsgfSAmOmFmdGVyIHsgY29udGVudDonJzsgcG9zaXRpb246YWJzb2x1dGU7IGxlZnQ6MDsgdG9wOjA7IGRpc3BsYXk6YmxvY2s7IHdpZHRoOjEwMCU7IGhlaWdodDoxMDAlOyBiYWNrZ3JvdW5kLWNvbG9yOndoaXRlOyBib3JkZXItcmFkaXVzOjE1cHg7IGJveC1zaGFkb3c6MCAwIDhweCByZ2JhKDAsMCwwLC4zKTsgYW5pbWF0aW9uOnB1bHNlLWRvdCAxLjI1cyBjdWJpYy1iZXppZXIoMC40NTUsIDAuMDMsIDAuNTE1LCAwLjk1NSkgLS40cyBpbmZpbml0ZTsgfSB9IEBrZXlmcmFtZXMgcHVsc2UtcmluZyB7IDAlIHsgdHJhbnNmb3JtOnNjYWxlKC4zMyk7IH0gODAlLCAxMDAlIHsgb3BhY2l0eTowOyB9IH0gQGtleWZyYW1lcyBwdWxzZS1kb3QgeyAwJSB7IHRyYW5zZm9ybTpzY2FsZSguOCk7IH0gNTAlIHsgdHJhbnNmb3JtOnNjYWxlKDEpOyB9IDEwMCUgeyB0cmFuc2Zvcm06c2NhbGUoLjgpOyB9IH0KLyoqIC9jc3MvZGl2X2xheWVycy5jc3MgKiovCmRpdi5NYWluQm94TGF5ZXJ7IHdpZHRoOm1pbigxMDAlLDk2MHB4KTsgbWFyZ2luOjAgYXV0bzsgfSBkaXYuTWFpbkJveExheWVyIEgxeyB3aWR0aDo5NDBweDsgfSBkaXYuTWFpbkJveExheWVyIC5yZXNwb25zaXZlLWVkaXRvciBoMSB7IHdpZHRoOmluaXRpYWw7IH0gZGl2Lk1haW5Cb3hMYXllciBkaXYuY3JlZHNpaURpdiBIMXsgd2lkdGg6YXV0bzsgfSAuY3JlZHNpaURpdnsgd2hpdGUtc3BhY2U6bm9ybWFsOyB9IGRpdi5NYWluQm94TGF5ZXIgZGl2LkxlZnRCb3hMYXllciB7IH0gZGl2Lk1haW5Cb3hMYXllciBkaXYuUmlnaHRCb3hMYXllciB7IH0gZGl2Lk1haW5Cb3hMYXllciBkaXYuT3V0ZXJCb3hMYXllciB7IHBhZGRpbmc6MTBweDsgZmxvYXQ6bGVmdDsgd2lkdGg6OTQwcHg7IH0gZGl2Lk1haW5Cb3hMYXllciBkaXYuSW5uZXJCb3hMYXllciB7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjBweDsgbWFyZ2luOjBweDsgd2lkdGg6MTAwJTsgY2xlYXI6Ym90aDsgfSBkaXYuTWFpbkJveExheWVyIGRpdi5Jbm5lckJveExheWVyLnRvcEJvcmRlcmVkeyBib3JkZXItdG9wOjFweCBzb2xpZCAjY2NjOyB9IGRpdi5NYWluQm94TGF5ZXIgZGl2LklubmVyQm94TGF5ZXIuYm90dG9tQm9yZGVyZWR7IGJvcmRlci1ib3R0b206MXB4IHNvbGlkICNjY2M7IH0gZGl2Lk1haW5Cb3hMYXllciBkaXYuQm94Q2hpbGQgeyB9IGRpdi5NYWluQm94TGF5ZXIgZGl2LkJveENoaWxkLmVhc3R7IGZsb2F0OnJpZ2h0OyB9IGRpdi5NYWluQm94TGF5ZXIgZGl2LkJveENoaWxkLndlc3R7IGZsb2F0OmxlZnQ7IH0gYm9keS5pc0Z1bGxXaWR0aFBhZ2UuaXNQYWdlRnVsbFdpZHRoRW5hYmxlZCBkaXYuTWFpbkJveExheWVyICN0b3BCYW5uZXJJbWFnZXsgd2lkdGg6OTQwcHg7IGhlaWdodDphdXRvOyB0ZXh0LWFsaWduOmNlbnRlcjsgbWFyZ2luOjAgYXV0bzsgfSBib2R5LmlzRnVsbFdpZHRoUGFnZS5pc1BhZ2VGdWxsV2lkdGhFbmFibGVkIGRpdi5NYWluQm94TGF5ZXIgI3RvcEJhbm5lckltYWdlID4gaW1neyBtYXgtd2lkdGg6MTAwJSAhaW1wb3J0YW50OyB9IGRpdi5NYWluQm94TGF5ZXIgZGl2Lk91dGVyQm94TGF5ZXIjaGlzdG9yeURpdiBkaXYuSW5uZXJCb3hMYXllciAjYnJlYWRjcnVtYnMgeyBtYXJnaW46MDsgfSBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6MTMwMXB4KSB7IGJvZHkuaXNGdWxsV2lkdGhQYWdlLmlzUGFnZUZ1bGxXaWR0aEVuYWJsZWQgZGl2Lk1haW5Cb3hMYXllciB7IHdpZHRoOjEyMDBweDsgfSBib2R5LmlzRnVsbFdpZHRoUGFnZS5pc1BhZ2VGdWxsV2lkdGhFbmFibGVkIGRpdi5NYWluQm94TGF5ZXIgZGl2Lk91dGVyQm94TGF5ZXIgeyB3aWR0aDoxMTgwcHg7IH0gYm9keS5pc0Z1bGxXaWR0aFBhZ2UuaXNQYWdlRnVsbFdpZHRoRW5hYmxlZCBkaXYuTWFpbkJveExheWVyIGRpdi5PdXRlckJveExheWVyLnh0aW1lRnJhbWUgeyB3aWR0aDoxMjAwcHg7IH0gYm9keS5pc0Z1bGxXaWR0aFBhZ2UuaXNQYWdlRnVsbFdpZHRoRW5hYmxlZCBkaXYuTWFpbkJveExheWVyIEgxeyB3aWR0aDoxMTgwcHg7IH0gYm9keS5pc0Z1bGxXaWR0aFBhZ2UuaXNQYWdlRnVsbFdpZHRoRW5hYmxlZCBkaXYuTWFpbkJveExheWVyIC5yZXNwb25zaXZlLWVkaXRvciBoMSB7IHdpZHRoOmluaXRpYWw7IH0gYm9keS5pc0Z1bGxXaWR0aFBhZ2UuaXNQYWdlRnVsbFdpZHRoRW5hYmxlZCBkaXYuTWFpbkJveExheWVyIGRpdi5jcmVkc2lpRGl2IEgxeyB3aWR0aDphdXRvOyB9IGJvZHkuaXNGdWxsV2lkdGhQYWdlLmlzUGFnZUZ1bGxXaWR0aEVuYWJsZWQgZGl2Lk1haW5Cb3hMYXllciAjdG9wQmFubmVySW1hZ2UgeyB3aWR0aDoxMTgwcHg7IH0gYm9keS5pc0Z1bGxXaWR0aFBhZ2UuaXNQYWdlRnVsbFdpZHRoRW5hYmxlZCBkaXYuTWFpbkJveExheWVyICN0b3BCYW5uZXJJbWFnZS5URUFNIHsgd2lkdGg6OTYwcHg7IH0gfSBkaXYuTWFpbkJveExheWVyLnVjcENvbnRlbnRGdWxsV2lkdGggeyB3aWR0aDoxMDAlIWltcG9ydGFudDsgfSBkaXYuTWFpbkJveExheWVyIGRpdi5MZWZ0Qm94TGF5ZXIudWNwQ29udGVudEZ1bGxXaWR0aCB7IHdpZHRoOjEwMCUhaW1wb3J0YW50OyB9IGRpdi5NYWluQm94TGF5ZXIgZGl2Lk91dGVyQm94TGF5ZXIudWNwQ29udGVudEZ1bGxXaWR0aCB7IHdpZHRoOjEwMCUhaW1wb3J0YW50OyB9Ci8qKiAvY3NzL2Rpdl9zcGFucy5jc3MgKiovCi5kaXZTcGFue2Zsb2F0OmxlZnQ7Ym94LXNpemluZzpib3JkZXItYm94fS5kaXZTcGFuLmRpdlNwYW5MZWZ0e2Zsb2F0OmxlZnR9LmRpdlNwYW4uZGl2U3BhblJpZ2h0e2Zsb2F0OnJpZ2h0fS5kaXZTcGFuLmRpdlNwYW4xe3dpZHRoOjguMzMzMzMzMzMzMzMzMzMzJX0uZGl2U3Bhbi5kaXZTcGFuMnt3aWR0aDoxNi42NjY2NjY2NjY2NjY2NyV9LmRpdlNwYW4uZGl2U3BhbjN7d2lkdGg6MjUlfS5kaXZTcGFuLmRpdlNwYW40e3dpZHRoOjMzLjMzMzMzMzMzMzMzMzMzJX0uZGl2U3Bhbi5kaXZTcGFuNXt3aWR0aDo0MS42NjY2NjY2NjY2NjY2NyV9LmRpdlNwYW4uZGl2U3BhbjZ7d2lkdGg6NTAlfS5kaXZTcGFuLmRpdlNwYW43e3dpZHRoOjU4LjMzMzMzMzMzMzMzMzMzJX0uZGl2U3Bhbi5kaXZTcGFuOHt3aWR0aDo2Ni42NjY2NjY2NjY2NjY2NiV9LmRpdlNwYW4uZGl2U3Bhbjl7d2lkdGg6NzUlfS5kaXZTcGFuLmRpdlNwYW4xMHt3aWR0aDo4My4zMzMzMzMzMzMzMzMzMyV9LmRpdlNwYW4uZGl2U3BhbjExe3dpZHRoOjkxLjY2NjY2NjY2NjY2NjY2JX0uZGl2U3Bhbi5kaXZTcGFuMTJ7d2lkdGg6MTAwJX0KLyoqIC9jc3MvbWVudS1iYXNlLmNzcyAqKi8KYm9keSAudXBfbWVudSwgYm9keSAudXBfbWVudSAqIHsgYm94LXNpemluZzpjb250ZW50LWJveCAhaW1wb3J0YW50OyB9IGJvZHkgLnVwX21lbnUgdWwubmF2ID4gbGkgPiB1bC5zdWIsIGJvZHkgLnVwX21lbnUgdWwubmF2ID4gbGkgPiB1bC5zdWIgKiwgYm9keSAudXBfbWVudSBpbnB1dCwgYm9keSAudXBfbWVudSBzZWxlY3QsIGJvZHkgLnVwX21lbnUgdGV4dGFyZWEsIGJvZHkgLnVwX21lbnUgYnV0dG9uIHsgYm94LXNpemluZzpib3JkZXItYm94ICFpbXBvcnRhbnQ7IH0gYm9keSAudXBfbWVudSwgYm9keSAudXBfbWVudSA+IC5TMTAwUGVyY2VudFdpZHRoIHsgYm9yZGVyLXdpZHRoOmluaXRpYWw7IGJvcmRlci1zdHlsZTppbml0aWFsOyBib3JkZXItY29sb3I6aW5pdGlhbDsgfSAucHJpY2UgeyBkaXNwbGF5Om5vbmU7IH0gLm1lbnUtc3BlYy1wcmljZSA+IC5wcmljZSB7IGRpc3BsYXk6YmxvY2s7IG1hcmdpbjppbml0aWFsOyBtYXJnaW4tdG9wOjRweDsgd2lkdGg6aW5pdGlhbDsgZmxvYXQ6aW5pdGlhbDsgfSAubWVudS1zcGVjLXByaWNlID4gLnByaWNlID4gc3BhbiB7IGRpc3BsYXk6bGlzdC1pdGVtOyBsaW5lLWhlaWdodDoxNXB4OyB9IGltZy5ob21lLWljb24geyBwYWRkaW5nLXRvcDowICFpbXBvcnRhbnQ7IH0gYm9keSA+IC51cF9tZW51ID4gLm5hdiA+IC5pc0JvbGR7IGZvbnQtd2VpZ2h0OmJvbGQ7IH0gLm5hdiA+IGxpI01haW5NZW51X0hPTUUgPiBhLmlzSW1hZ2UgPiBzcGFueyBoZWlnaHQ6MzNweDsgd2lkdGg6MzFweDsgcGFkZGluZzowOyB0ZXh0LWluZGVudDotMjAwMGVtOyBiYWNrZ3JvdW5kLWltYWdlOnVybCgnL2ltYWdlcy9pY29uX2hvbWVfdGFiQ29sb3IucG5nJyk7IGJhY2tncm91bmQtcG9zaXRpb246Y2VudGVyIDA7IGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7IGRpc3BsYXk6YmxvY2s7IH0gLm5hdiA+IGxpI01haW5NZW51X0hPTUU6aG92ZXIgPiBhLmlzSW1hZ2UgPiBzcGFueyBiYWNrZ3JvdW5kLWltYWdlOnVybCgnL2ltYWdlcy9pY29uX2hvbWVfaG92ZXIucG5nJyk7IH0gdWwuc2xpbS1zdWJtZW51ID4gbGkgPiBhIHsgcGFkZGluZzo2cHggMTVweCAhaW1wb3J0YW50OyB0ZXh0LXdyYXA6YXV0bzsgfSB1bC5zbGltLXN1Ym1lbnUtMiA+IGxpID4gYSB7IHBhZGRpbmc6OXB4IDE1cHggIWltcG9ydGFudDsgdGV4dC13cmFwOmF1dG87IH0gdWwuc2xpbS1zdWJtZW51LTMgPiBsaSA+IGEgeyBwYWRkaW5nOjEycHggMTVweCAhaW1wb3J0YW50OyB9IHVsLnNsaW0tc3VibWVudS0zID4gbGkgPiBhOm5vdCgudG9wX2xpbmspIHsgdGV4dC13cmFwOmF1dG87IG1pbi13aWR0aDoyMDBweDsgfSB1bC5zdWIgPiBsaSA+IGEgeyB0ZXh0LXdyYXA6YXV0bzsgbWluLXdpZHRoOjIwMHB4OyB9IGRpdi5tYWlubWVudS1zdWJtZW51ID4gdWwuc3ViID4gbGkuaGFzU3ViID4gYSB7IGJvcmRlci1ib3R0b206MnB4IHNvbGlkIHZhcigtLW1lbnUtaG92ZXItYmctY29sb3IpOyBwYWRkaW5nLWJvdHRvbToxNXB4OyB0ZXh0LXRyYW5zZm9ybTp2YXIoLS10eHQtdXBwZXIpOyBsZXR0ZXItc3BhY2luZzoxcHg7IGZvbnQtd2VpZ2h0OmJvbGQ7IH0gZGl2Lm1haW5tZW51LXN1Ym1lbnUgPiB1bC5zdWIgPiBsaS5oYXNTdWIgPiBhOmFmdGVyIHsgY29udGVudDoiIjsgZGlzcGxheTpub25lOyB9IC51cF9tZW51IHVsLm5hdiAjTWFpbk1lbnVfTkVXPnVsLnN1YiA+IGxpID4gZGl2Lm1haW5tZW51LXN1Ym1lbnUgPiB1bC5zdWIgPmxpLmhhc1N1Yjpob3ZlciA+IGEsIC51cF9tZW51IHVsLm5hdiAjTWFpbk1lbnVfVEFCX0NPTU1FUkNJQUw+dWwuc3ViID4gbGkgPiBkaXYubWFpbm1lbnUtc3VibWVudSA+IHVsLnN1YiA+bGkuaGFzU3ViOmhvdmVyID4gYXsgYmFja2dyb3VuZC1jb2xvcjp3aGl0ZTsgY29sb3I6dmFyKC0tYmxhY2spOyB9IGRpdi5tYWlubWVudS1zdWJtZW51IHsgbGVmdDoxNDAlOyB0b3A6MDsgcG9zaXRpb246YWJzb2x1dGU7IGRpc3BsYXk6YmxvY2s7IHZpc2liaWxpdHk6aGlkZGVuOyBvcGFjaXR5OjA7IHotaW5kZXg6MTsgfSAudXBfbWVudSB1bC5uYXYgbGkjTWFpbk1lbnVfTkVXIHVsLnN1YiA+IGxpOmhvdmVyID4gLm1haW5tZW51LXN1Ym1lbnUsIC51cF9tZW51IHVsLm5hdiBsaSNNYWluTWVudV9VU0VEIHVsLnN1YiA+IGxpOmhvdmVyID4gLm1haW5tZW51LXN1Ym1lbnUsIGxpW2RhdGEtaWQ9IlNVQl9UQUJfQ09NTUVSQ0lBTF9DT01NRVIiXTpob3ZlciA+IC5tYWlubWVudS1zdWJtZW51IHsgZGlzcGxheTpibG9jazsgdmlzaWJpbGl0eTp2aXNpYmxlOyBsZWZ0OjEwMCU7IHRyYW5zaXRpb246YWxsIDAuMnMsIG9wYWNpdHkgMC41czsgb3BhY2l0eToxOyB9IGRpdi5tYWlubWVudS1zdWJtZW51ID4gdWwuc3ViID4gbGkgPiB1bC5zdWIsIGRpdi5tYWlubWVudS1zdWJtZW51ID4gdWwuc3ViID4gbGkgPiB1bC5zdWIgPiBsaSB7IHBvc2l0aW9uOnN0YXRpYzsgYmFja2dyb3VuZC1jb2xvcjp3aGl0ZTsgfSBkaXYubWFpbm1lbnUtc3VibWVudSA+IHVsLnN1YiA+IGxpID4gdWwuc3ViLCBkaXYubWFpbm1lbnUtc3VibWVudSA+IHVsLnN1YiA+IGxpID4gdWwuc3ViID4gbGk6aG92ZXIgeyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLW1lbnUtaG92ZXItYmctY29sb3IpOyB9IGRpdi5tYWlubWVudS1zdWJtZW51ID4gdWwuc3ViID4gbGkgPiB1bC5zdWIgPiBsaSB7IGJvcmRlci1ib3R0b206MXB4IHNvbGlkICNlNWU1ZTU7IGRpc3BsYXk6ZmxleDsgZmxleC1kaXJlY3Rpb246cm93LXJldmVyc2U7IH0gLm1lbnUtdGVjaC1zcGVjcyB7IHBvc2l0aW9uOmFic29sdXRlOyBsZWZ0Ojk0JTsgdG9wOjA7IC13ZWJraXQtYm94LXNoYWRvdzowIDZweCAxMnB4IHJnYmEoMCwwLDAsLjE3NSk7IGJveC1zaGFkb3c6MCA2cHggMTJweCByZ2JhKDAsMCwwLC4xNzUpOyBkaXNwbGF5Om5vbmU7IHBhZGRpbmc6MTRweDsgYmFja2dyb3VuZDp3aGl0ZTsgdGV4dC1hbGlnbjpsZWZ0OyB6LWluZGV4OjEwOyBjb2xvcjp2YXIoLS1ibGFjayk7IG1pbi13aWR0aDoyNTBweDsgZGlzcGxheTpub25lOyB2aXNpYmlsaXR5OmhpZGRlbjsgb3BhY2l0eTowOyB9IC5tZW51LXRlY2gtc3BlY3MgbGkuZGl2aWRlciB7IGhlaWdodDoxcHg7IG1hcmdpbjo5cHggMDsgb3ZlcmZsb3c6aGlkZGVuOyBiYWNrZ3JvdW5kLWNvbG9yOiNlNWU1ZTU7IH0gLm1lbnUtdGVjaC1zcGVjcyA+IC5tZW51LXNwZWNzLXRpdGxlIHsgbWFyZ2luLWJvdHRvbToxZW07IGZvbnQtc2l6ZTppbml0aWFsOyBjb2xvcjpibGFjazsgfSB1bC5tZW51LXNwZWNzLWxpc3QgbGkgeyBmb250LXNpemU6MC43NXJlbSA7IH0gdWwubWVudS1zcGVjcy1saXN0ID4gbGk6bnRoLWNoaWxkKG4rMykgeyBtYXJnaW4tYm90dG9tOjFlbTsgfSAubWVudS10ZWNoLXNwZWNzID4gdWwubWVudS1zcGVjcy1saXN0ID4gbGkgPiBhIHsgcGFkZGluZzozcHggNHB4ICFpbXBvcnRhbnQ7IGZvbnQtd2VpZ2h0OjQwMCAhaW1wb3J0YW50OyBmb250LXNpemU6MC43NXJlbSAhaW1wb3J0YW50OyB0ZXh0LWFsaWduOmxlZnQgIWltcG9ydGFudDsgfSAubWVudS1zcGVjcy1saXN0ID4gbGkgeyBib3JkZXItYm90dG9tOm5vbmU7IH0gLm1lbnUtc3BlY3MtbGlzdCBsaSBzdHJvbmcsIC5tZW51LXNwZWNzLWxpc3QgbGkgc3BhbiB7IGNvbG9yOnZhcigtLWJsYWNrKTsgfSB1bC5tZW51LXNwZWNzLWxpc3QgPiBsaSA+IHN0cm9uZyB7IGZvbnQtd2VpZ2h0OjcwMCAhaW1wb3J0YW50OzsgfSB1bC5tZW51LXNwZWNzLWxpc3QgPiBsaSA+IHNwYW4geyBsaW5lLWhlaWdodDoyOyB9IC5tYWlubWVudS1zdWJtZW51ID4gdWwuc3ViID4gbGkgPiB1bC5zdWIgPiBsaTpob3ZlciA+IC5tZW51LXRlY2gtc3BlY3MgeyBkaXNwbGF5OmJsb2NrOyB2aXNpYmlsaXR5OnZpc2libGU7IHRyYW5zaXRpb246MC41czsgb3BhY2l0eToxOyB9IC51cF9tZW51IGxpI01haW5NZW51X05FVyB1bC5zdWIgPiBsaSA+IHVsLnN1YiA+IGxpID4gdWwuc3ViID4gbGk6aG92ZXIgPiAubWVudS10ZWNoLXNwZWNzLCAudXBfbWVudSBsaSNNYWluTWVudV9UQUJfQ09NTUVSQ0lBTCB1bC5zdWIgPiBsaSA+IHVsLnN1YiA+IGxpID4gdWwuc3ViID4gbGk6aG92ZXIgPiAubWVudS10ZWNoLXNwZWNzeyBkaXNwbGF5OmJsb2NrOyB2aXNpYmlsaXR5OnZpc2libGU7IHRyYW5zaXRpb246MC41czsgb3BhY2l0eToxOyB9IGJvZHk6bm90KC5pc0Z1bGxXaWR0aFBhZ2UpIC51cF9tZW51IHsgcG9zaXRpb246aW5oZXJpdDsgfSBib2R5Om5vdCguaXNGdWxsV2lkdGhQYWdlKSAjbWFpbkRpdjo6YWZ0ZXIgeyBoZWlnaHQ6MDsgfSAjbWFpbkRpdi53cmFwcGVyIHsgcGFkZGluZzowOyB9IGJvZHkgLnVwX21lbnV7IGhlaWdodDphdXRvOyB3aWR0aDo5NjBweDsgcG9zaXRpb246cmVsYXRpdmU7IHotaW5kZXg6MTAwMDsgd2hpdGUtc3BhY2U6bm93cmFwOyBjb2xvcjp2YXIoLS1ibGFjayk7IH0gYm9keSAudXBfbWVudS5oaWRkZW5oZWFkZXJ7IG1hcmdpbi10b3A6MTA2cHg7IHBhZGRpbmctdG9wOjNweDsgfSBib2R5IC51cF9tZW51LmhpZGRlbmhlYWRlci5maXhlZCwgYm9keSAudXBfbWVudS5maXhlZCB7IHRvcDowOyBwb3NpdGlvbjpmaXhlZDsgbWFyZ2luLXRvcDowOyBvcGFjaXR5OjAuNzU7IH0gYm9keSAudXBfbWVudS53aXRoLWJvcmRlci5maXhlZCB7IHRvcDoxcHg7IH0gYm9keSAudXBfbWVudS5maXhlZDpob3Zlcnsgb3BhY2l0eToxOyB9IGJvZHkgLnVwX21lbnUgPiAuUzEwMFBlcmNlbnRXaWR0aCB7IGJhY2tncm91bmQ6dmFyKC0tbWVudS1iZy1jb2xvcik7IGhlaWdodDphdXRvOyB9IGJvZHkgLnVwX21lbnUgLm5hdiA+IGxpLm5vZnggPiBheyB0cmFuc2l0aW9uOm5vbmU7IH0gYm9keSAudXBfbWVudSAubmF2ID4gbGl7IGZsZXgtZ3JvdzoxOyB9IGJvZHkgLnVwX21lbnUgLm5hdiA+IGxpIGF7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IH0gLnN1YiB7IGhlaWdodDphdXRvOyB9IHVsLnN1YiB7IHBhZGRpbmc6MDsgfSAudXBfbWVudSB7IGZsb2F0OmxlZnQ7IG1hcmdpbjowOyB9IC51cF9tZW51IHVsIHsgbGlzdC1zdHlsZTpub25lOyBwYWRkaW5nOjA7IG1hcmdpbjowOyB6LWluZGV4OjE7IH0gLnVwX21lbnUgdWwuc3ViIHsgLXdlYmtpdC1ib3gtc2hhZG93OjAgNnB4IDEycHggcmdiYSgwLDAsMCwuMTc1KTsgYm94LXNoYWRvdzowIDZweCAxMnB4IHJnYmEoMCwwLDAsLjE3NSk7IH0gLnVwX21lbnUgdWwubmF2IHsgbWFyZ2luOjA7IHBhZGRpbmc6MDsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1tYWluLW1lbnUtYmctY29sb3IpOyBkaXNwbGF5OmZsZXg7IHdpZHRoOjEwMCU7IGp1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuOyBhbGlnbi1pdGVtczpjZW50ZXI7IGZsZXgtZGlyZWN0aW9uOnJvdy1yZXZlcnNlOyB9IC51cF9tZW51IHVsLm5hdiA+IGxpI01haW5NZW51X05FVyB7IHBvc2l0aW9uOnJlbGF0aXZlOyB9IC51cF9tZW51IHVsLm5hdiBsaSA+IGEgeyBkaXNwbGF5OmJsb2NrOyBjb2xvcjp2YXIoLS1ibGFjayk7IHRleHQtYWxpZ246bGVmdDsgcGFkZGluZzoxNXB4IDUlOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgd2lkdGg6YXV0bzsgfSAudXBfbWVudSB1bC5uYXYgbGkgdWwuc3ViIHsgZGlzcGxheTpub25lOyB9IC51cF9tZW51IHVsLm5hdiA+IGxpID4gYSB7IGNvbG9yOnZhcigtLXRhYi10ZXh0LWNvbG9yKTsgdGV4dC1hbGlnbjpjZW50ZXI7IH0gLnVwX21lbnUgdWwubmF2IGxpOmhvdmVyID4gYSwgLnVwX21lbnUgdWwubmF2IGxpLmlzT3BlbiA+IGEgeyBjb2xvcjp2YXIoLS1tZW51LWhvdmVyLXRleHQtY29sb3IpOyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLW1lbnUtaG92ZXItYmctY29sb3IpOyB9IC51cF9tZW51IHVsLm5hdiA+IGxpOmhvdmVyID4gdWwuc3ViLCAudXBfbWVudSB1bC5uYXYgPiBsaS5pc09wZW4gPiB1bC5zdWIgeyBkaXNwbGF5OmJsb2NrOyBwb3NpdGlvbjphYnNvbHV0ZTsgYmFja2dyb3VuZC1jb2xvcjp3aGl0ZTsgfSAudXBfbWVudSB1bC5uYXYgPiBsaSNNYWluTWVudV9ORVc6aG92ZXIgPiB1bC5zdWIsIC51cF9tZW51IHVsLm5hdiA+IGxpI01haW5NZW51X1RBQl9DT01NRVJDSUFMOmhvdmVyID4gdWwuc3VieyBtaW4td2lkdGg6MTAwJTsgfSAudXBfbWVudSB1bC5uYXYgbGk6aG92ZXIgPiB1bC5zdWIgPiBsaSA+IHVsLnN1YiB7IGxlZnQ6MTQwJTsgdG9wOjA7IHBvc2l0aW9uOmFic29sdXRlOyBkaXNwbGF5OmJsb2NrOyB2aXNpYmlsaXR5OmhpZGRlbjsgb3BhY2l0eTowOyB9ICNNYWluTWVudV9UQUJfQ09NTUVSQ0lBTCB7IHBvc2l0aW9uOnJlbGF0aXZlOyB9IC51cF9tZW51IGxpI01haW5NZW51X1RBQl9DT01NRVJDSUFMID4gdWwuc3ViID4gbGkgPiB1bC5zdWIgeyBtYXgtaGVpZ2h0OjY0MHB4OyBvdmVyZmxvdy15OmF1dG87IH0gLnVwX21lbnUgdWwubmF2ID4gbGkgPiB1bC5zdWIgPiBsaTpub3QoLmxhc3RJdGVtKTpub3QoLmxhc3RNZW51KTpub3QoLmhhc0l0ZW1zKSB7IGJvcmRlci1ib3R0b206MXB4IHNvbGlkICNlNWU1ZTU7IH0gLnVwX21lbnUgdWwubmF2ID4gbGkgPiB1bC5zdWIgPiBsaSA+IHVsLnN1YiA+IGxpID4gdWwuc3ViID4gbGk6bm90KC5sYXN0SXRlbSkgeyBib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZTVlNWU1OyB9IGxpIHVsLnN1YiBhIHsgYmFja2dyb3VuZC1jb2xvcjp3aGl0ZTsgfSAudXBfbWVudSB1bC5uYXYgbGkjTWFpbk1lbnVfTkVXIHVsLnN1YiA+IGxpOmhvdmVyIHVsLnN1YiwgLnVwX21lbnUgdWwubmF2IGxpI01haW5NZW51X1VTRUQgdWwuc3ViID4gbGk6aG92ZXIgdWwuc3ViLCAudXBfbWVudSB1bC5uYXYgbGkjTWFpbk1lbnVfVEFCX0NPTU1FUkNJQUwgdWwuc3ViID4gbGk6aG92ZXIgdWwuc3ViLCAudXBfbWVudSB1bC5uYXYgbGkjTWFpbk1lbnVfVVNFRCB1bC5zdWIgPiBsaTpob3ZlciB1bC5zdWIgeyBkaXNwbGF5OmJsb2NrOyB2aXNpYmlsaXR5OnZpc2libGU7IGxlZnQ6MTAwJTsgdHJhbnNpdGlvbjphbGwgMC4ycywgb3BhY2l0eSAwLjVzOyBvcGFjaXR5OjE7IH0gLnVwX21lbnUgdWwubmF2IGxpI01haW5NZW51X1VTRUQ6aG92ZXIgdWwuc3ViIGxpIHVsLnN1YiB7IGRpc3BsYXk6YmxvY2s7IHZpc2liaWxpdHk6dmlzaWJsZTsgbGVmdDowOyBwb3NpdGlvbjpyZWxhdGl2ZTsgb3BhY2l0eToxOyBib3gtc2hhZG93Om5vbmU7IH0gLnVwX21lbnUgbGkjTWFpbk1lbnVfTkVXIHVsLnN1YiA+IGxpLmhvdmVyID4gYSwgLnVwX21lbnUgbGkjTWFpbk1lbnVfVEFCX0NPTU1FUkNJQUwgdWwuc3ViID4gbGkuaG92ZXIgPiBhIHsgY29sb3I6dmFyKC0tbWVudS1ob3Zlci10ZXh0LWNvbG9yKTsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1tZW51LWhvdmVyLWJnLWNvbG9yKTsgfSAudXBfbWVudSBsaSNNYWluTWVudV9ORVcgdWwuc3ViID4gbGkuaG92ZXIgbGkgPiB1bC5zdWIsIC51cF9tZW51IGxpI01haW5NZW51X1RBQl9DT01NRVJDSUFMIHVsLnN1YiA+IGxpLmhvdmVyIGxpID4gdWwuc3ViIHsgZGlzcGxheTpibG9jazsgfSAudXBfbWVudSBsaSNNYWluTWVudV9ORVcgdWwuc3ViID4gbGk6aG92ZXIgPiB1bC5zdWIgPiBsaSA+IHVsLnN1YjpmaXJzdC1jaGlsZCwgLnVwX21lbnUgbGkjTWFpbk1lbnVfVEFCX0NPTU1FUkNJQUwgdWwuc3ViID4gbGk6aG92ZXIgPiB1bC5zdWIgPiBsaSA+IHVsLnN1YjpmaXJzdC1jaGlsZCB7IGRpc3BsYXk6YmxvY2s7IH0gI01haW5NZW51X1RBQl9DT01NRVJDSUFMID4gLnN1YiB7IG1pbi13aWR0aDoxMDAlOyB9ICNNYWluTWVudV9ORVcgPiB1bC5zdWIgPiBsaSA+IHVsLnN1YiwgLnVwX21lbnUgbGkjTWFpbk1lbnVfVEFCX0NPTU1FUkNJQUwgPiB1bC5zdWIgPiBsaSA+IHVsLnN1YiAuaXRlbS13cmFwLmltZ0xpbmsgeyBwYWRkaW5nLWJvdHRvbToxMHB4OyB9ICNNYWluTWVudV9ORVcgPiB1bC5zdWIgPiBsaSA+IHVsLnN1YiwgLnVwX21lbnUgbGkjTWFpbk1lbnVfVEFCX0NPTU1FUkNJQUwgPiB1bC5zdWIgPiBsaSA+IHVsLnN1YiB7IGJhY2tncm91bmQ6d2hpdGU7IHdpZHRoOjQyMHB4OyBwb3NpdGlvbjphYnNvbHV0ZTsgfSAudXBfbWVudSBsaSNNYWluTWVudV9ORVcgPiB1bC5zdWIgPiBsaSA+IHVsLnN1YiA+IGxpLCAudXBfbWVudSBsaSNNYWluTWVudV9UQUJfQ09NTUVSQ0lBTCA+IHVsLnN1YiA+IGxpID4gdWwuc3ViID4gbGkgeyBkaXNwbGF5OmJsb2NrOyB9IC51cF9tZW51IGxpI01haW5NZW51X05FVyA+IHVsLnN1YiA+IGxpID4gdWwuc3ViID4gbGk6bm90KC5sYXN0SXRlbSksIC51cF9tZW51IGxpI01haW5NZW51X1RBQl9DT01NRVJDSUFMID4gdWwuc3ViID4gbGkgPiB1bC5zdWIgPiBsaTpub3QoLmxhc3RJdGVtKSB7IGJvcmRlci1ib3R0b206MXB4IHNvbGlkICNlNWU1ZTU7IH0gLnVwX21lbnUgdWwubmF2ICNNYWluTWVudV9ORVc+dWwuc3ViIGxpPnVsLnN1Yj5saS5oYXNTdWI6aG92ZXI+YSwgLnVwX21lbnUgdWwubmF2ICNNYWluTWVudV9UQUJfQ09NTUVSQ0lBTD51bC5zdWIgbGk+dWwuc3ViPmxpLmhhc1N1Yjpob3Zlcj5hIHsgYmFja2dyb3VuZC1jb2xvcjp3aGl0ZTsgY29sb3I6dmFyKC0tYmxhY2spOyB9IC51cF9tZW51IHVsLm5hdiAjTWFpbk1lbnVfTkVXPnVsLnN1YiBsaSBhLmVtcHR5LCAudXBfbWVudSB1bC5uYXYgI01haW5NZW51X1RBQl9DT01NRVJDSUFMPnVsLnN1YiBsaSBhLmVtcHR5IHsgcGFkZGluZzowOyBib3JkZXItYm90dG9tOm5vbmU7IH0gLnVwX21lbnUgbGkjTWFpbk1lbnVfTkVXIHVsLnN1YiA+IGxpID4gdWwuc3ViID4gbGkgPiB1bC5zdWIsIC51cF9tZW51IGxpI01haW5NZW51X1RBQl9DT01NRVJDSUFMIHVsLnN1YiA+IGxpID4gdWwuc3ViID4gbGkgPiB1bC5zdWIgeyBsZWZ0OjA7IHRvcDppbmhlcml0OyBwb3NpdGlvbjpzdGF0aWM7IC13ZWJraXQtYm94LXNoYWRvdzpub25lOyBib3gtc2hhZG93Om5vbmU7IH0gLnVwX21lbnUgbGkjTWFpbk1lbnVfTkVXIHVsLnN1YiA+IGxpID4gdWwuc3ViID4gbGk6aG92ZXIgPiB1bC5zdWIgLCAudXBfbWVudSBsaSNNYWluTWVudV9UQUJfQ09NTUVSQ0lBTCB1bC5zdWIgPiBsaSA+IHVsLnN1YiA+IGxpOmhvdmVyID4gdWwuc3ViIHsgZGlzcGxheTpibG9jazsgfSAudXBfbWVudSBsaSNNYWluTWVudV9ORVcgdWwuc3ViID4gbGkgPiB1bC5zdWIgPiBsaSA+IHVsLnN1YiA+IGxpLCAudXBfbWVudSBsaSNNYWluTWVudV9UQUJfQ09NTUVSQ0lBTCB1bC5zdWIgPiBsaSA+IHVsLnN1YiA+IGxpID4gdWwuc3ViID4gbGkgeyBiYWNrZ3JvdW5kLWNvbG9yOndoaXRlOyB9IC51cF9tZW51IGxpI01haW5NZW51X05FVyB1bC5zdWIgPiBsaSA+IHVsLnN1YiA+IGxpID4gdWwuc3ViID4gbGk6aG92ZXIsIC51cF9tZW51IGxpI01haW5NZW51X1RBQl9DT01NRVJDSUFMIHVsLnN1YiA+IGxpID4gdWwuc3ViID4gbGkgPiB1bC5zdWIgPiBsaTpob3ZlciB7IGNvbG9yOnZhcigtLW1lbnUtaG92ZXItdGV4dC1jb2xvcik7IGJhY2tncm91bmQtY29sb3I6dmFyKC0tbWVudS1ob3Zlci1iZy1jb2xvcik7IH0gLnVwX21lbnUgbGkjTWFpbk1lbnVfTkVXIHVsLnN1YiA+IGxpID4gdWwuc3ViID4gbGkgPiB1bC5zdWIgPiBsaTpob3ZlciA+IGEsIC51cF9tZW51IGxpI01haW5NZW51X1RBQl9DT01NRVJDSUFMIHVsLnN1YiA+IGxpID4gdWwuc3ViID4gbGkgPiB1bC5zdWIgPiBsaTpob3ZlciA+IGEgeyBjb2xvcjp2YXIoLS1tZW51LWhvdmVyLXRleHQtY29sb3IpOyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLW1lbnUtaG92ZXItYmctY29sb3IpOyB9IC51cF9tZW51IGxpI01haW5NZW51X05FVyB1bC5zdWIgPiBsaSA+IHVsLnN1YiA+IGxpID4gdWwuc3ViID4gbGkgPiBhOm5vdCguaXRlbS13cmFwKSwgLnVwX21lbnUgbGkjTWFpbk1lbnVfVEFCX0NPTU1FUkNJQUwgdWwuc3ViID4gbGkgPiB1bC5zdWIgPiBsaSA+IHVsLnN1YiA+IGxpID4gYTpub3QoLml0ZW0td3JhcCkgeyBwYWRkaW5nOjA7IGxpbmUtaGVpZ2h0OjYwcHg7IGhlaWdodDo2MHB4OyB9IC51cF9tZW51IGxpI01haW5NZW51X05FVyB1bC5zdWIgPiBsaSA+IHVsLnN1YiA+IGxpID4gdWwuc3ViID4gbGkgPiBhOmZpcnN0LWNoaWxkLCAudXBfbWVudSBsaSNNYWluTWVudV9UQUJfQ09NTUVSQ0lBTCB1bC5zdWIgPiBsaSA+IHVsLnN1YiA+IGxpID4gdWwuc3ViID4gbGkgPiBhOmZpcnN0LWNoaWxkIHsgcGFkZGluZy1yaWdodDoxNXB4OyB3aWR0aDoyNSU7IG1pbi13aWR0aDpmaXQtY29udGVudDsgfSAudXBfbWVudSBsaSNNYWluTWVudV9ORVcgdWwuc3ViID4gbGkgPiB1bC5zdWIgPiBsaSA+IHVsLnN1YiA+IGxpID4gYTpudGgtb2YtdHlwZSgyKSwgLnVwX21lbnUgbGkjTWFpbk1lbnVfVEFCX0NPTU1FUkNJQUwgdWwuc3ViID4gbGkgPiB1bC5zdWIgPiBsaSA+IHVsLnN1YiA+IGxpID4gYTpudGgtb2YtdHlwZSgyKSB7IHBhZGRpbmctbGVmdDoxNXB4OyB3aWR0aDo3NSU7IH0gLnVwX21lbnUgbGkjTWFpbk1lbnVfTkVXIHVsLnN1YiA+IGxpID4gdWwuc3ViID4gbGkgPiB1bC5zdWIgPiBsaSA+IGEuaW1nTGluaywgLnVwX21lbnUgbGkjTWFpbk1lbnVfVEFCX0NPTU1FUkNJQUwgdWwuc3ViID4gbGkgPiB1bC5zdWIgPiBsaSA+IHVsLnN1YiA+IGxpID4gYS5pbWdMaW5rIHsgcG9zaXRpb246YWJzb2x1dGU7IHJpZ2h0OjA7IH0gLnVwX21lbnUgbGkjTWFpbk1lbnVfTkVXIHVsLnN1YiA+IGxpID4gdWwuc3ViID4gbGkgPiB1bC5zdWIgPiBsaSA+IGEuaW1nTGluayA+IGltZywgLnVwX21lbnUgbGkjTWFpbk1lbnVfVEFCX0NPTU1FUkNJQUwgdWwuc3ViID4gbGkgPiB1bC5zdWIgPiBsaSA+IHVsLnN1YiA+IGxpID4gYS5pbWdMaW5rID4gaW1nIHsgaGVpZ2h0OjYwcHg7IHZlcnRpY2FsLWFsaWduOmJhc2VsaW5lOyB9IC51cF9tZW51IGxpI01haW5NZW51X05FVyB1bC5zdWIgPiBsaSA+IHVsLnN1YiA+IGxpLmhhc1N1YiA+IGEsIC51cF9tZW51IGxpI01haW5NZW51X1RBQl9DT01NRVJDSUFMIHVsLnN1YiA+IGxpID4gdWwuc3ViID4gbGkuaGFzU3ViID4gYSB7IGJvcmRlci1ib3R0b206MnB4IHNvbGlkIHZhcigtLW1lbnUtaG92ZXItYmctY29sb3IpOyBwYWRkaW5nLWJvdHRvbToxNXB4OyB0ZXh0LXRyYW5zZm9ybTp2YXIoLS10eHQtdXBwZXIpOyBsZXR0ZXItc3BhY2luZzoxcHg7IGZvbnQtd2VpZ2h0OmJvbGQ7IH0gLnVwX21lbnUgbGkjTWFpbk1lbnVfTkVXIHVsLnN1YiA+IGxpID4gdWwuc3ViID4gbGkuaGFzU3ViID4gYTphZnRlciwgLnVwX21lbnUgbGkjTWFpbk1lbnVfVEFCX0NPTU1FUkNJQUwgdWwuc3ViID4gbGkgPiB1bC5zdWIgPiBsaS5oYXNTdWIgPiBhOmFmdGVyIHsgY29udGVudDoiIjsgZGlzcGxheTpub25lOyB9IGxpLmFsaWduLWxldmVsIHsgcG9zaXRpb246c3RhdGljOyB9IC51cF9tZW51IGxpI01haW5NZW51X05FVyB1bC5zdWIgPiBsaSA+IGRpdi5tYWlubWVudS1zdWJtZW51ID4gdWwuc3ViID4gbGkgPiB1bC5zdWIgPiBsaSA+IGE6bnRoLW9mLXR5cGUoMikuaXRlbS13cmFwLCAudXBfbWVudSBsaSNNYWluTWVudV9UQUJfQ09NTUVSQ0lBTCB1bC5zdWIgPiBsaSA+IGRpdi5tYWlubWVudS1zdWJtZW51ID4gdWwuc3ViID4gbGkgPiB1bC5zdWIgPiBsaSA+IGE6bnRoLW9mLXR5cGUoMikuaXRlbS13cmFweyBwYWRkaW5nLXRvcDoxMXB4OyBwYWRkaW5nLWJvdHRvbToxMHB4OyB3aGl0ZS1zcGFjZTpub3JtYWw7IH0gdWwuc3ViIGxpIGEuaXRlbS13cmFwIHsgbGluZS1oZWlnaHQ6MjBweDsgfSAudXBfbWVudSBsaSNNYWluTWVudV9ORVcgdWwuc3ViID4gbGkgPiAubWFpbm1lbnUtc3VibWVudSAqLCAudXBfbWVudSBsaSNNYWluTWVudV9ORVcgdWwuc3ViID4gbGkgPiB1bC5zdWIgKiwgLnVwX21lbnUgbGkjTWFpbk1lbnVfVEFCX0NPTU1FUkNJQUwgdWwuc3ViID4gbGkgPiAubWFpbm1lbnUtc3VibWVudSAqLCAudXBfbWVudSBsaSNNYWluTWVudV9UQUJfQ09NTUVSQ0lBTCB1bC5zdWIgPiBsaSA+IHVsLnN1YiAqIHsgYm94LXNpemluZzpib3JkZXItYm94OyB9IC51cF9tZW51IGxpI01haW5NZW51X05FVyB1bC5zdWIgPiBsaSA+IGRpdi5tYWlubWVudS1zdWJtZW51ID4gdWwuc3ViID4gbGkgPiB1bC5zdWIgPiBsaSA+IGE6bm90KC5pdGVtLXdyYXApLCAudXBfbWVudSBsaSNNYWluTWVudV9UQUJfQ09NTUVSQ0lBTCB1bC5zdWIgPiBsaSA+IGRpdi5tYWlubWVudS1zdWJtZW51ID4gdWwuc3ViID4gbGkgPiB1bC5zdWIgPiBsaSA+IGE6bm90KC5pdGVtLXdyYXApIHsgcGFkZGluZzowOyBsaW5lLWhlaWdodDo2MHB4OyBoZWlnaHQ6NjBweDsgdGV4dC1hbGlnbjpsZWZ0OyB9IC51cF9tZW51IGxpI01haW5NZW51X05FVyB1bC5zdWIgPiBsaSA+IGRpdi5tYWlubWVudS1zdWJtZW51ID4gdWwuc3ViID4gbGkgPiB1bC5zdWIgPiBsaSA+IGE6Zmlyc3QtY2hpbGQsIC51cF9tZW51IGxpI01haW5NZW51X1RBQl9DT01NRVJDSUFMIHVsLnN1YiA+IGxpID4gZGl2Lm1haW5tZW51LXN1Ym1lbnUgPiB1bC5zdWIgPiBsaSA+IHVsLnN1YiA+IGxpID4gYTpmaXJzdC1jaGlsZCB7IHBhZGRpbmctcmlnaHQ6MTVweDsgd2lkdGg6MzAlOyBtaW4td2lkdGg6Zml0LWNvbnRlbnQ7IH0gLnVwX21lbnUgbGkjTWFpbk1lbnVfTkVXIHVsLnN1YiA+IGxpID4gZGl2Lm1haW5tZW51LXN1Ym1lbnUgPiB1bC5zdWIgPiBsaSA+IHVsLnN1YiA+IGxpID4gYTpudGgtb2YtdHlwZSgyKSwgLnVwX21lbnUgbGkjTWFpbk1lbnVfVEFCX0NPTU1FUkNJQUwgdWwuc3ViID4gbGkgPiBkaXYubWFpbm1lbnUtc3VibWVudSA+IHVsLnN1YiA+IGxpID4gdWwuc3ViID4gbGkgPiBhOm50aC1vZi10eXBlKDIpeyBwYWRkaW5nLWxlZnQ6MTVweDsgd2lkdGg6NzAlOyB9IC51cF9tZW51IGxpI01haW5NZW51X05FVyB1bC5zdWIgPiBsaSA+IGRpdi5tYWlubWVudS1zdWJtZW51ID4gdWwuc3ViID4gbGkgPiB1bC5zdWIgPiBsaSA+IGE6Zmlyc3QtY2hpbGQ6YWZ0ZXIsIC51cF9tZW51IGxpI01haW5NZW51X1RBQl9DT01NRVJDSUFMIHVsLnN1YiA+IGxpID4gZGl2Lm1haW5tZW51LXN1Ym1lbnUgPiB1bC5zdWIgPiBsaSA+IHVsLnN1YiA+IGxpID4gYTpmaXJzdC1jaGlsZDphZnRlcnsgY29udGVudDoiICI7IGJvcmRlcjpzb2xpZDsgYm9yZGVyLXdpZHRoOjAgMnB4IDJweCAwOyBwYWRkaW5nOjJweDsgYm9yZGVyLXJhZGl1czoycHg7IHRyYW5zZm9ybTpyb3RhdGUoLTQ1ZGVnKTsgLXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKC00NWRlZyk7IGRpc3BsYXk6aW5saW5lLWJsb2NrOyB0b3A6LTI3cHg7IHJpZ2h0Oi03cHg7IHBvc2l0aW9uOnJlbGF0aXZlOyB9IC51cF9tZW51IGxpI01haW5NZW51X05FVyB1bC5zdWIgPiBsaSA+IHVsLnN1YiA+IGxpID4gdWwuc3ViID4gbGkgPiBhOmZpcnN0LWNoaWxkOmFmdGVyLCAudXBfbWVudSBsaSNNYWluTWVudV9UQUJfQ09NTUVSQ0lBTCB1bC5zdWIgPiBsaSA+IHVsLnN1YiA+IGxpID4gdWwuc3ViID4gbGkgPiBhOmZpcnN0LWNoaWxkOmFmdGVyeyBjb250ZW50OiIgIjsgYm9yZGVyOnNvbGlkOyBib3JkZXItd2lkdGg6MCAycHggMnB4IDA7IHBhZGRpbmc6MnB4OyBib3JkZXItcmFkaXVzOjJweDsgdHJhbnNmb3JtOnJvdGF0ZSgtNDVkZWcpOyAtd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoLTQ1ZGVnKTsgZGlzcGxheTppbmxpbmUtYmxvY2s7IHRvcDotMjdweDsgcmlnaHQ6LTdweDsgcG9zaXRpb246cmVsYXRpdmU7IH0gLnVwX21lbnUgbGkjTWFpbk1lbnVfTkVXIHVsLnN1YiA+IGxpID4gZGl2Lm1haW5tZW51LXN1Ym1lbnUgPiB1bC5zdWIgPiBsaSA+IHVsLnN1YiA+IGxpID4gYS5pbWdMaW5rLCAudXBfbWVudSBsaSNNYWluTWVudV9UQUJfQ09NTUVSQ0lBTCB1bC5zdWIgPiBsaSA+IGRpdi5tYWlubWVudS1zdWJtZW51ID4gdWwuc3ViID4gbGkgPiB1bC5zdWIgPiBsaSA+IGEuaW1nTGlua3sgcmlnaHQ6MDsgZmxvYXQ6cmlnaHQ7IH0gLnVwX21lbnUgbGkjTWFpbk1lbnVfTkVXIHVsLnN1YiA+IGxpID4gZGl2Lm1haW5tZW51LXN1Ym1lbnUgPiB1bC5zdWIgPiBsaSA+IHVsLnN1YiA+IGxpID4gYS5pbWdMaW5rID4gaW1nLCAudXBfbWVudSBsaSNNYWluTWVudV9UQUJfQ09NTUVSQ0lBTCB1bC5zdWIgPiBsaSA+IGRpdi5tYWlubWVudS1zdWJtZW51ID4gdWwuc3ViID4gbGkgPiB1bC5zdWIgPiBsaSA+IGEuaW1nTGluayA+IGltZ3sgaGVpZ2h0OjYxcHg7IHZlcnRpY2FsLWFsaWduOmJhc2VsaW5lOyB9IGxpLmxhc3RNZW51IHVsLnN1YiB7IHJpZ2h0OjA7IH0gLnVwX21lbnUgdWwubmF2IGxpIHVsLnN1YiBsaSBhOm50aC1vZi10eXBlKDEpLml0ZW0td3JhcCB7IHBhZGRpbmc6MDsgfSBsaS5oYXNJdGVtcyA+IGE6YWZ0ZXIgeyBjb250ZW50OiIgIjsgd2lkdGg6MDsgaGVpZ2h0OjA7IGJvcmRlci1yYWRpdXM6MnB4OyB2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7IGRpc3BsYXk6aW5saW5lLWJsb2NrOyBib3JkZXItbGVmdDo1cHggc29saWQgdHJhbnNwYXJlbnQ7IGJvcmRlci1yaWdodDo1cHggc29saWQgdHJhbnNwYXJlbnQ7IGJvcmRlci10b3A6NXB4IHNvbGlkOyBtYXJnaW4tbGVmdDo3cHg7IH0gbGkuaGFzU3ViID4gYTphZnRlciB7IGNvbnRlbnQ6IiAiOyBib3JkZXI6c29saWQ7IGJvcmRlci13aWR0aDowIDJweCAycHggMDsgZGlzcGxheTppbmxpbmUtYmxvY2s7IHBhZGRpbmc6MnB4OyBib3JkZXItcmFkaXVzOjJweDsgdHJhbnNmb3JtOnJvdGF0ZSgtNDVkZWcpOyAtd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoLTQ1ZGVnKTsgbGVmdDoxMDAlOyBtYXJnaW4tbGVmdDo3cHg7IHBvc2l0aW9uOnN0aWNreTsgfSAudXBfbWVudSAjTWFpbk1lbnVfVVNFRCBsaS5oYXNJdGVtcyA+IGE6YWZ0ZXIgeyBjb250ZW50OiIiOyBkaXNwbGF5Om5vbmU7IH0gLnVwX21lbnUgI01haW5NZW51X1VTRUQgPiB1bC5zdWIgPiBsaSA+IHVsLnN1YiA+IGxpID4gYTpiZWZvcmUsIC51cF9tZW51ICNNYWluTWVudV9VU0VEID4gdWwuc3ViID4gbGkgPiB1bC5zdWIgPiBsaSA+IHVsLnN1YiA+IGxpIGE6YmVmb3JlIHsgY29udGVudDoiICI7IGJvcmRlcjpzb2xpZDsgYm9yZGVyLXdpZHRoOjAgMnB4IDJweCAwOyBkaXNwbGF5OmlubGluZS1ibG9jazsgcGFkZGluZzoycHg7IGJvcmRlci1yYWRpdXM6MnB4OyB0cmFuc2Zvcm06cm90YXRlKC00NWRlZyk7IC13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgtNDVkZWcpOyBtYXJnaW4tcmlnaHQ6N3B4OyBwb3NpdGlvbjpyZWxhdGl2ZTsgdG9wOi0xcHg7IH0gaS50cmlhbmdsZSB7IHdpZHRoOjA7IGhlaWdodDowOyBib3JkZXItcmFkaXVzOjJweDsgdmVydGljYWwtYWxpZ246bWlkZGxlOyBkaXNwbGF5OmlubGluZS1ibG9jazsgfSBpLnRyaWFuZ2xlLnRyaWFuZ2xlLXVwIHsgYm9yZGVyLWxlZnQ6NXB4IHNvbGlkIHRyYW5zcGFyZW50OyBib3JkZXItcmlnaHQ6NXB4IHNvbGlkIHRyYW5zcGFyZW50OyBib3JkZXItYm90dG9tOjVweCBzb2xpZDsgfSBpLnRyaWFuZ2xlLnRyaWFuZ2xlLWRvd24geyBib3JkZXItbGVmdDo1cHggc29saWQgdHJhbnNwYXJlbnQ7IGJvcmRlci1yaWdodDo1cHggc29saWQgdHJhbnNwYXJlbnQ7IGJvcmRlci10b3A6NXB4IHNvbGlkOyB9IGkudHJpYW5nbGUudHJpYW5nbGUtcmlnaHQgeyBib3JkZXItdG9wOjVweCBzb2xpZCB0cmFuc3BhcmVudDsgYm9yZGVyLWJvdHRvbTo1cHggc29saWQgdHJhbnNwYXJlbnQ7IGJvcmRlci1sZWZ0OjVweCBzb2xpZDsgfSBpLnRyaWFuZ2xlLnRyaWFuZ2xlLWxlZnQgeyBib3JkZXItdG9wOjVweCBzb2xpZCB0cmFuc3BhcmVudDsgYm9yZGVyLWJvdHRvbTo1cHggc29saWQgdHJhbnNwYXJlbnQ7IGJvcmRlci1yaWdodDo1cHggc29saWQ7IH0gbGkjTWFpbk1lbnVfVVNFRF9TRUFSQ0hFUyB1bCBsaSB7IGJvcmRlci1ib3R0b206MXB4IHNvbGlkIHdoaXRlOyB9IC5tZW51LWFkZHJlc3MtZGVzYyB7IGJvcmRlci1ib3R0b206MXB4IHNvbGlkICNlNWU1ZTU7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IHBhZGRpbmctYm90dG9tOjIwcHg7IGJvcmRlci1ib3R0b206MXB4IHNvbGlkICNlNWU1ZTU7IGxpbmUtaGVpZ2h0OjE5cHg7IHdoaXRlLXNwYWNlOm5vcm1hbDsgfSAudXBfbWVudSAjTWFpbk1lbnVfQ09OVEFDVCB1bC5zdWIgPiAuY29udGFjdC1jb250YWluZXIgI21lbnUtbWFwLWxpbmsgeyBwYWRkaW5nOjA7IH0gLnVwX21lbnUgdWwubmF2ID4gbGkjTWFpbk1lbnVfQ09OVEFDVCA+IHVsLnN1YiA+IGxpLmNvbnRhY3QtY29udGFpbmVyIHsgYm9yZGVyLWJvdHRvbTpub25lOyBkaXNwbGF5OmdyaWQ7IGdyaWQtYXV0by1mbG93OmNvbHVtbjsgZ3JpZC1jb2x1bW4tZ2FwOjIwcHg7IH0gLnVwX21lbnUgI01haW5NZW51X0NPTlRBQ1QgdWwuc3ViLmNvbnRhY3R1cy1mb3JtIHsgd2lkdGg6MTAwJTsgcGFkZGluZzoxNXB4OyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IGxlZnQ6MDsgfSAudXBfbWVudSAjTWFpbk1lbnVfQ09OVEFDVCB1bC5zdWIuY29udGFjdHVzLWZvcm0uY29udGFjdC1zaG9ydCB7IHdpZHRoOjYxOXB4OyBsZWZ0OmF1dG87IHBhZGRpbmctbGVmdDowOyBwYWRkaW5nLXJpZ2h0OjA7IHJpZ2h0OjA7IH0gLnVwX21lbnUgI01haW5NZW51X0NPTlRBQ1QgdWwuc3ViLmNvbnRhY3Qtc2hvcnQgPiAuY29udGFjdC1jb250YWluZXIgPiAuYWRkcmVzcyB7IHBhZGRpbmctcmlnaHQ6MTVweDsgYm94LXNpemluZzpib3JkZXItYm94OyB3aGl0ZS1zcGFjZTpub3JtYWw7IH0gLm1lbnUtcGhvbmVzIHsgYm9yZGVyLXRvcDoycHggc29saWQgdmFyKC0tdGFiLWNvbG9yLXNwZWNpYWxjYXNlKTsgbWFyZ2luLXRvcDo4cHg7IH0gLnBob25lLXdyYXBwZXIgc3Bhbi5maXJzdCAuZmEtcGhvbmUgeyBtYXJnaW4tcmlnaHQ6OHB4OyB9IC5waG9uZS13cmFwcGVyIHsgcGFkZGluZy1ib3R0b206NXB4OyB9IC5tZW51LXBob25lcyAucGhvbmUtd3JhcHBlciB7IG1hcmdpbi10b3A6OHB4OyB9IC5tZW51LWFkZHJlc3MtZGVzYyAubWVudS1hZGRyZXNzLXdyYXBwZXIgeyBkaXNwbGF5OmlubGluZS1ibG9jazsgbWF4LXdpZHRoOjI2NnB4OyBjb2xvcjp2YXIoLS1ibGFjayk7IH0gLm1lbnUtYWRkcmVzcy1kZXNjID4gLmZhLW1hcC1tYXJrZXIgeyB2ZXJ0aWNhbC1hbGlnbjp0b3A7IG1hcmdpbi1yaWdodDo4cHg7IH0gLm1lbnUtbXVsdGlsb2NhdGlvbiB7IGJvcmRlci10b3A6MnB4IHNvbGlkIHZhcigtLXRhYi1jb2xvci1zcGVjaWFsY2FzZSk7IG1hcmdpbi10b3A6OHB4OyBwYWRkaW5nLXRvcDo4cHg7IH0gLm1lbnUtbXVsdGlsb2MgeyBtYXJnaW4tdG9wOjZweDsgfSAubWVudS1tdWx0aWxvYyBzdW1tYXJ5IHsgY3Vyc29yOnBvaW50ZXI7IGZvbnQtd2VpZ2h0OmJvbGQ7IGxpc3Qtc3R5bGU6bm9uZTsgfSAubWVudS1tdWx0aWxvYyBzdW1tYXJ5Ojotd2Via2l0LWRldGFpbHMtbWFya2VyIHsgZGlzcGxheTpub25lOyB9IC5tZW51LW11bHRpbG9jIHN1bW1hcnk6OmJlZm9yZSB7IGNvbnRlbnQ6IlwyNUI2IjsgZGlzcGxheTppbmxpbmUtYmxvY2s7IG1hcmdpbi1yaWdodDo2cHg7IHRyYW5zaXRpb246dHJhbnNmb3JtIC4ycyBlYXNlOyB0cmFuc2Zvcm0tb3JpZ2luOmNlbnRlcjsgfSAubWVudS1tdWx0aWxvY1tvcGVuXSBzdW1tYXJ5OjpiZWZvcmUgeyB0cmFuc2Zvcm06cm90YXRlKDkwZGVnKTsgfSAubWVudS1tdWx0aWxvYy1ib2R5IHsgcGFkZGluZy10b3A6NHB4OyBwYWRkaW5nLWxlZnQ6MTJweDsgfSAuY29udGFjdC1jb250YWluZXIgLnRpdGxlIHsgYm9yZGVyLWJvdHRvbToycHggc29saWQgdmFyKC0tdGFiLWNvbG9yLXNwZWNpYWxjYXNlKTsgdGV4dC10cmFuc2Zvcm06dmFyKC0tdGV4dC11cHBlcik7IGNvbG9yOnZhcigtLWJsYWNrKTsgZGlzcGxheTpibG9jazsgZm9udC13ZWlnaHQ6Ym9sZDsgcGFkZGluZzo2cHggMTVweCA2cHggMDsgbWFyZ2luLWJvdHRvbTo4cHg7IH0gLmNvbnRhY3QtY29udGFpbmVyIC5SZWNoZXJjaGUyMiB7IGJvcmRlci1ib3R0b206MnB4IHNvbGlkIHZhcigtLXRhYi1jb2xvci1zcGVjaWFsY2FzZSk7IHRleHQtdHJhbnNmb3JtOnZhcigtLXRleHQtdXBwZXIpOyBjb2xvcjp2YXIoLS1ibGFjayk7IGRpc3BsYXk6YmxvY2s7IHBhZGRpbmc6NnB4IDE1cHggNnB4IDA7IGZvbnQtc2l6ZToxMy4yOHB4OyBmb250LXdlaWdodDpib2xkOyBoZWlnaHQ6aW5oZXJpdDsgbWFyZ2luLWJvdHRvbTo4cHg7IH0gLmNvbnRhY3QtY29udGFpbmVyICNxdWlja0VtYWlsRm9ybSB7IG1hcmdpbjowIGF1dG87IH0gLmNvbnRhY3QtY29udGFpbmVyIC5hZGRyZXNzID4gdWwgPiBsaSA+IGE6YmVmb3JlIHsgY29udGVudDoiICI7IGJvcmRlcjpzb2xpZDsgYm9yZGVyLXdpZHRoOjAgMnB4IDJweCAwOyBkaXNwbGF5OmlubGluZS1ibG9jazsgcGFkZGluZzoycHg7IGJvcmRlci1yYWRpdXM6MnB4OyB0cmFuc2Zvcm06cm90YXRlKC00NWRlZyk7IC13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgtNDVkZWcpOyBtYXJnaW4tcmlnaHQ6N3B4OyBwb3NpdGlvbjpyZWxhdGl2ZTsgdG9wOi0xcHg7IH0gLmNvbnRhY3QtY29udGFpbmVyIC5idXR0b25fYm94UzIgeyBmbG9hdDpub25lOyB3aWR0aDoyNTVweDsgcGFkZGluZy1yaWdodDowOyB0ZXh0LWFsaWduOnJpZ2h0OyB9IC51cF9tZW51ICNNYWluTWVudV9TRVJWSUNFIHVsLnN1Yi5zZXJ2aWNlLWZvcm0geyB3aWR0aDo2MCU7IGxlZnQ6YXV0bzsgcmlnaHQ6MDsgcGFkZGluZy1sZWZ0OjE1cHg7IHBhZGRpbmctcmlnaHQ6MTVweDsgfSAubWVudS1zZXJ2aWNlLXdyYXBwZXIsIC5tZW51LXNlcnZpY2Utd3JhcHBlciAqIHsgLXdlYmtpdC1ib3gtc2l6aW5nOmJvcmRlci1ib3g7IC1tb3otYm94LXNpemluZzpib3JkZXItYm94OyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IH0gLm1lbnUtc2VydmljZS13cmFwcGVyLCAubWVudS1zZXJ2aWNlLXdyYXBwZXIgLmpxVHJhbnNmb3JtSW5wdXRXcmFwcGVyLCAubWVudS1zZXJ2aWNlLXdyYXBwZXIsIC5tZW51LXNlcnZpY2Utd3JhcHBlciAuanFUcmFuc2Zvcm1TZWxlY3RXcmFwcGVyeyAtd2Via2l0LWJveC1zaXppbmc6Y29udGVudC1ib3g7IC1tb3otYm94LXNpemluZzpjb250ZW50LWJveDsgYm94LXNpemluZzpjb250ZW50LWJveDsgfSAubWVudS1zZXJ2aWNlLXdyYXBwZXIgeyBtYXJnaW4tbGVmdDotMTVweDsgbWFyZ2luLXJpZ2h0Oi0xNXB4OyB9IC5tZW51LXNlcnZpY2Utd3JhcHBlcjo6YmVmb3JlLCAubWVudS1zZXJ2aWNlLXdyYXBwZXI6OmFmdGVyIHsgZGlzcGxheTp0YWJsZTsgY29udGVudDoiICI7IH0gLm1lbnUtc2VydmljZS13cmFwcGVyOjphZnRlciB7IGNsZWFyOmJvdGg7IH0gLm1lbnUtc2VydmljZS13cmFwcGVyIC5zZXJ2aWNlLWxlZnQsIC5tZW51LXNlcnZpY2Utd3JhcHBlciAuc2VydmljZS1yaWdodCB7IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MTVweDsgcG9zaXRpb246cmVsYXRpdmU7IH0gLm1lbnUtc2VydmljZS13cmFwcGVyIC5zZXJ2aWNlLWRpdmlkZXIgeyBmbG9hdDpsZWZ0OyB3aWR0aDowLjElOyBoZWlnaHQ6NDAycHg7IGJvcmRlci1sZWZ0OjFweCBzb2xpZCAjZTVlNWU1OyBtYXJnaW4tdG9wOjE1cHg7IH0gLm1lbnUtc2VydmljZS13cmFwcGVyIC5zZXJ2aWNlLXJpZ2h0IHsgd2lkdGg6MzkuOCU7IH0gLnVwX21lbnUgdWwubmF2ID4gbGkjTWFpbk1lbnVfU0VSVklDRSA+IHVsID4gbGkgPiAubWVudS1zZXJ2aWNlLXdyYXBwZXIgPiAuc2VydmljZS1yaWdodCB1bCBsaSB7IGJvcmRlci1ib3R0b206MXB4IHNvbGlkICNlNWU1ZTU7IH0gLm1lbnUtc2VydmljZS13cmFwcGVyIC5zZXJ2aWNlLWxlZnQgeyB3aWR0aDo2MCU7IH0gLnNob3J0LXNlcnZpY2UtZm9ybSBpbnB1dCB7IGRpc3BsYXk6YmxvY2s7IH0gLnNlcnZpY2UtZm9ybS10aXRsZSB7IGJvcmRlci1ib3R0b206MnB4IHNvbGlkIHZhcigtLXRhYi1jb2xvci1zcGVjaWFsY2FzZSk7IHRleHQtdHJhbnNmb3JtOnZhcigtLXR4dC11cHBlcik7IGRpc3BsYXk6YmxvY2s7IGZvbnQtd2VpZ2h0OmJvbGQ7IHBhZGRpbmc6NnB4IDE1cHggNnB4IDA7IG1hcmdpbi1ib3R0b206OHB4OyB9IC5zc2Ytc3VibWl0IHsgbWFyZ2luLXRvcDoxMHB4OyB0ZXh0LWFsaWduOmNlbnRlcjsgfSAuc3NmLXN1Ym1pdCAuanFUcmFuc2Zvcm1CdXR0b24gc3BhbiBzcGFuIHsgLXdlYmtpdC1ib3gtc2l6aW5nOmNvbnRlbnQtYm94OyAtbW96LWJveC1zaXppbmc6Y29udGVudC1ib3g7IGJveC1zaXppbmc6Y29udGVudC1ib3g7IH0gLnVwX21lbnUgdWwubmF2IGxpLm1lbnUtYWN0aXZlIHVsLnN1YiB7IGRpc3BsYXk6YmxvY2s7IHBvc2l0aW9uOmFic29sdXRlOyBiYWNrZ3JvdW5kLWNvbG9yOndoaXRlOyB9IC51cF9tZW51IHVsLm5hdiBsaS5tZW51LWFjdGl2ZSA+IGEgeyBjb2xvcjp2YXIoLS1tZW51LWhvdmVyLXRleHQtY29sb3IpOyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLW1lbnUtaG92ZXItYmctY29sb3IpOyB9IGZvcm0uc2hvcnQtc2VydmljZS1mb3JtLmpxdHJhbnNmb3JtZG9uZSAuanFUcmFuc2Zvcm1JbnB1dFdyYXBwZXIsIGZvcm0uc2hvcnQtc2VydmljZS1mb3JtLmpxdHJhbnNmb3JtZG9uZSAuanFUcmFuc2Zvcm1TZWxlY3RXcmFwcGVyIHsgbWFyZ2luLWJvdHRvbToxMHB4OyB9IC5zc2YtZGF0ZS1jYWxlbmRhciB7IHBvc2l0aW9uOmFic29sdXRlOyB6LWluZGV4OjE7IHRvcDowLjVyZW07IHJpZ2h0OjEuM3JlbTsgY29sb3I6I2FhYTsgd2lkdGg6MDsgfSAuaXRlbS13cmFwIHsgd2hpdGUtc3BhY2U6bm9ybWFsOyB9IC51cF9tZW51IHVsLnN1YiBsaSAuaXRlbS13cmFwIHsgbWluLWhlaWdodDo2MXB4OyB9IGJvZHkuaXNQYWdlRnVsbFdpZHRoRW5hYmxlZC5pc0Z1bGxXaWR0aFBhZ2UgLk1haW5Cb3hMYXllciAudXBfbWVudSwgYm9keS5pc1BhZ2VGdWxsV2lkdGhFbmFibGVkLmlzRnVsbFdpZHRoUGFnZSAud3JhcHBlci5NYWluQm94TGF5ZXIgLnVwX21lbnUgeyB3aWR0aDppbmhlcml0OyB9ICNmdWxsV2lkdGhNZW51QmFyIHsgd2lkdGg6Y2FsYyh2YXIoLS12d3MsIDF2dykgKiAxMDApOyBib3R0b206MDsgaGVpZ2h0OjEwMCU7IHBvc2l0aW9uOmFic29sdXRlOyBsZWZ0OjUwJTsgcmlnaHQ6NTAlOyBtYXJnaW4tbGVmdDotNTB2dzsgbWFyZ2luLXJpZ2h0Oi01MHZ3OyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IGJhY2tncm91bmQ6aW5oZXJpdDsgei1pbmRleDotMTsgfSAudXBfbWVudS53aXRoLWJvcmRlciAjZnVsbFdpZHRoTWVudUJhciB7IGJvcmRlci10b3A6MnB4IHNvbGlkIHZhcigtLW1lbnUtY29sb3ItYm9yZGVyKTsgYm9yZGVyLWJvdHRvbToycHggc29saWQgdmFyKC0tbWVudS1jb2xvci1ib3JkZXIpOyB0cmFuc2Zvcm06dHJhbnNsYXRlWSgycHgpOyB9IC51cF9tZW51ICNNYWluTWVudV9VU0VEID4gdWwuc3ViID4gbGkuaW52ZW50b3J5ID4gdWwuc3ViIHsgb3ZlcmZsb3c6aGlkZGVuOyB9IC51cF9tZW51ICNNYWluTWVudV9VU0VELnNob3J0ID4gdWwuc3ViIHsgbGVmdDppbmhlcml0OyB3aWR0aDphdXRvOyB9IC51cF9tZW51ICNNYWluTWVudV9VU0VELnNob3J0ID4gdWwuc3ViID4gbGlbZGF0YS1pZF49IlVTRURfIl0geyB3aWR0aDphdXRvOyBtaW4td2lkdGg6MjYwcHg7IH0gLnVwX21lbnUgI01haW5NZW51X1VTRUQuc2hvcnQgPiB1bC5zdWIgPiBsaS5pbnZlbnRvcnkgPiB1bCA+IGxpW2RhdGEtaWRePSJVU0VEX0NBUlNfRyJdIHsgd2lkdGg6YXV0bzsgfSAuc2tlbGV0b24uaGVhZGVyLW1lbnUuZml4ZWQgeyBwb3NpdGlvbjppbmhlcml0OyB9IEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDoxMzAwcHgpIHsgLnVwX21lbnUgI01haW5NZW51X1VTRUQuc2hvcnQuc2hvcnQtMiA+IHVsLnN1YiB7IGxlZnQ6MDsgfSB9Ci8qKiAvY3NzL21lbnU1LmNzcyAqKi8KLnVwX21lbnUgI01haW5NZW51X1VTRUQgPiB1bC5zdWJ7IHdpZHRoOjEwMCU7IGxlZnQ6MDsgfSAudXBfbWVudSAjTWFpbk1lbnVfVVNFRCA+IHVsLnN1YiA+IGxpIHsgZmxvYXQ6bGVmdDsgd2lkdGg6MjUlOyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IHBhZGRpbmc6NXB4OyB9IC51cF9tZW51ICNNYWluTWVudV9VU0VEID4gdWwuc3ViID4gbGkuaW52ZW50b3J5IHsgZmxvYXQ6bGVmdDsgd2lkdGg6NzUlOyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IH0gLnVwX21lbnUgI01haW5NZW51X1VTRUQgPiB1bC5zdWIgPiBsaSA+IGEgeyBib3JkZXItYm90dG9tOjJweCBzb2xpZCB2YXIoLS10YWItY29sb3Itc3BlY2lhbGNhc2UpOyB0ZXh0LXRyYW5zZm9ybTp2YXIoLS10eHQtdXBwZXIpOyBkaXNwbGF5OmJsb2NrOyB9IC51cF9tZW51ICNNYWluTWVudV9VU0VEID4gdWwuc3ViID4gbGk6aG92ZXIgPiBhIHsgYmFja2dyb3VuZC1jb2xvcjp3aGl0ZTsgY29sb3I6dmFyKC0tYmxhY2spOyB9IC51cF9tZW51ICNNYWluTWVudV9VU0VEID4gdWwuc3ViID4gbGkuaW52ZW50b3J5ID4gdWwgPiBsaSB7IHdpZHRoOjMzJTsgZmxvYXQ6bGVmdDsgfSAuY29udGFjdC1jb250YWluZXIgI3F1aWNrRW1haWxGb3JtIHsgd2lkdGg6MTAwJTsgfSAuY29udGFjdC1jb250YWluZXIgLmJ1dHRvbl9ib3hTMiB7IG1hcmdpbjphdXRvOyB9IC51cF9tZW51ICNNYWluTWVudV9VU0VELnNpbXBsaWZpZWQgdWwuc3ViIHsgd2lkdGg6aW5oZXJpdDsgbGVmdDppbmhlcml0OyB9IC5leHByZXNzLWZvcm0gdGFibGUgeyBtYXJnaW46MCBhdXRvOyB9IC5leHByZXNzLWZvcm0gLndpZGdldF9leHByZXNzX21haWxfcGhvbmVfdGl0bGUgeyBkaXNwbGF5Om5vbmU7IH0gaW1nI21lbnUtY29udGFjdC1tYXAgeyB3aWR0aDoxMDAlOyB9IC51cF9tZW51ICNNYWluTWVudV9VU0VELnNpbXBsaWZpZWQgdWwuc3ViICNNYWluTWVudV9VU0VEX1NFQVJDSEVTIHsgd2lkdGg6MTAwJTsgfSAuZmluYW5jZS1tZW51LWNyZWRzaWl7IG1pbi13aWR0aDozNzVweDsgfSAudXBfbWVudSB1bC5uYXYgPiBsaSNNYWluTWVudV9GSU5BTkNFID4gdWwgPiBsaSA+IC5tZW51LWZpbmFuY2Utd3JhcHBlciA+IHVsIGxpIHsgYm9yZGVyLWJvdHRvbToxcHggc29saWQgI2U1ZTVlNTsgfSAjTWFpbk1lbnVfRklOQU5DRSB7IHBvc2l0aW9uOnJlbGF0aXZlOyB9IC5tZW51NSAuZmluYW5jZS1tZW51LWZyZWVjcmVkaXQubGVmdCB7IGxlZnQ6MDsgcmlnaHQ6YXV0bzsgfSAubWVudTUgLmZpbmFuY2UtbWVudS1mcmVlY3JlZGl0LnJpZ2h0IHsgcmlnaHQ6MDsgbGVmdDphdXRvOyB9IC5tZW51NSAuZmluYW5jZS1tZW51LWZyZWVjcmVkaXQuY2VudGVyIHsgcmlnaHQ6LTI1MHB4OyBsZWZ0OmF1dG87IH0gLm1lbnU1IC5maW5hbmNlLW1lbnUtZnJlZWNyZWRpdCB7IG1pbi13aWR0aDo4MDBweDsgfSAudXBfbWVudSB1bC5uYXYgPiBsaS5sYXN0TWVudSA+IHVsLnN1YiA+IGxpID4gdWwgPiBsaSA+IGRpdiB7IHJpZ2h0OjEwMCU7IGxlZnQ6aW5pdGlhbDsgfSAudXBfbWVudSB1bC5uYXYgbGkuaW52ZXJzZS1jb2xvciA+IGEgeyBjb2xvcjp2YXIoLS1tZW51LWhvdmVyLXRleHQtY29sb3IpOyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLW1lbnUtaG92ZXItYmctY29sb3IpOyB9IC5kZWFsZXJNYXBMaW5rIC5mYS1sb2NhdGlvbi1hcnJvdyB7IG1hcmdpbjowIDdweCAwIDA7IH0gLnYtY2FyZC50b3BfYmcuaGVhZGVyLWluZm8gLmhlYWRlci1zZWN0aW9uLmFkZHJlc3MtcmlnaHQgeyBmbGV4LWdyb3c6MjsganVzdGlmeS1jb250ZW50OnJpZ2h0OyB9IC52LWNhcmQudG9wX2JnLmhlYWRlci1pbmZvIC5oZWFkZXItc2VjdGlvbi5sb2dvLXJpZ2h0IHsgbWFyZ2luLWxlZnQ6MTBweDsgfQovKiogL2Nzcy9jcmVkaXRTY29yZUVtYmVkZGVkLmNzcyAqKi8KLmNyZWRpdFNjb3JlUG9wdXBDb250YWluZXJFbWJlZGRlZHsgcGFkZGluZzoyMHB4IDIwcHggMjVweCAyMHB4OyB9IC5jcmVkaXRTY29yZVVzZWRPdXRlcldyYXAgLmNyZWRpdFNjb3JlX2J0bnsgY29sb3I6I2ZmZmZmZiAhaW1wb3J0YW50OyBiYWNrZ3JvdW5kOiNlYjAwMDAgIWltcG9ydGFudDsgYmFja2dyb3VuZDogIWltcG9ydGFudDsgfSAuY3JlZGl0U2NvcmVQb3B1cENvbnRhaW5lckVtYmVkZGVkIC5jcmVkaXRTY29yZUVtYmVkZGVkSW1hZ2V7IHdpZHRoOjEwMCU7IGJhY2tncm91bmQtY29sb3I6I2ViMDAwMDsgYmFja2dyb3VuZC1jb2xvcjo7IH0gLmNyZWRpdFNjb3JlUG9wdXBDb250YWluZXJFbWJlZGRlZCBkaXYuY3JlZGl0U2NvcmVFbWJlZGRlZEZvcm1TdWNjZXNzeyBmb250LXNpemU6MS4yNXJlbSA7IHRleHQtYWxpZ246Y2VudGVyOyBtYXJnaW4tdG9wOjMwcHg7IH0gLmNyZWRpdFNjb3JlUG9wdXBDb250YWluZXJFbWJlZGRlZCwgLmZpbmFuY2VGb3JtQ29udGFpbmVyRW1iZWRkZWR7IGJhY2tncm91bmQ6d2hpdGU7IG1hcmdpbjowOyB9IC5jcmVkaXRTY29yZVBvcHVwQ29udGFpbmVyRW1iZWRkZWQgc3BhbiwgLmZpbmFuY2VGb3JtQ29udGFpbmVyRW1iZWRkZWQgc3BhbnsgbWFyZ2luOjA7IHBhZGRpbmc6MDsgZm9udC1zaXplOjEuMTI1cmVtIDsgfSAuY3JlZGl0U2NvcmVQb3B1cENvbnRhaW5lckVtYmVkZGVkIHNwYW4uY3JlZGl0SGlnaGxpZ2h0VGV4dE1lbnUsIC5maW5hbmNlRm9ybUNvbnRhaW5lckVtYmVkZGVkIHNwYW4uY3JlZGl0SGlnaGxpZ2h0VGV4dE1lbnV7IGNvbG9yOiM0ZDhmMTQ7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc2l6ZToxLjNyZW07IH0gLmNyZWRpdFNjb3JlUG9wdXBDb250YWluZXJFbWJlZGRlZCBzcGFuLmNyZWRpdFNjb3JlQm9sZCwgLmZpbmFuY2VGb3JtQ29udGFpbmVyRW1iZWRkZWQgc3Bhbi5jcmVkaXRTY29yZUJvbGR7IGZvbnQtd2VpZ2h0OmJvbGQ7IH0gLmNyZWRpdFNjb3JlUG9wdXBDb250YWluZXJFbWJlZGRlZCBkaXYuY3JlZGl0U2NvcmVUaXRsZUNvbnRhaW5lciwgLmZpbmFuY2VGb3JtQ29udGFpbmVyRW1iZWRkZWQgZGl2LmNyZWRpdFNjb3JlVGl0bGVDb250YWluZXJ7IHRleHQtYWxpZ246Y2VudGVyOyB9IC5jcmVkaXRTY29yZVBvcHVwQ29udGFpbmVyRW1iZWRkZWQgZGl2LmNyZWRpdFNjb3JlVGl0bGUsIC5maW5hbmNlRm9ybUNvbnRhaW5lckVtYmVkZGVkIGRpdi5jcmVkaXRTY29yZVRpdGxleyBmb250LXNpemU6MS4yNXJlbSA7IH0gLmNyZWRpdFNjb3JlUG9wdXBDb250YWluZXJFbWJlZGRlZCBkaXYuY3JlZGl0U2NvcmVJbWFnZUNvbnRhaW5lciwgLmZpbmFuY2VGb3JtQ29udGFpbmVyRW1iZWRkZWQgc3Bhbi5jcmVkaXRTY29yZVRpdGxlRnJlZXsgdGV4dC1hbGlnbjpjZW50ZXI7IHBhZGRpbmc6MTBweDsgfSAuZmluYW5jZUZvcm1Db250YWluZXJFbWJlZGRlZCBkaXYuY3JlZGl0U2NvcmVJbWFnZUNvbnRhaW5lcnsgdGV4dC1hbGlnbjpjZW50ZXI7IH0gLmNyZWRpdFNjb3JlUG9wdXBDb250YWluZXJFbWJlZGRlZCBzcGFuLmNyZWRpdFNjb3JlVGl0bGVGcmVlLCAuZmluYW5jZUZvcm1Db250YWluZXJFbWJlZGRlZCBzcGFuLmNyZWRpdFNjb3JlVGl0bGVTY29yZXsgZm9udC1zaXplOjIuODEzcmVtIDsgdGV4dC1zaGFkb3c6MnB4IDA7IH0gLmNyZWRpdFNjb3JlUG9wdXBDb250YWluZXJFbWJlZGRlZCBzcGFuLmNyZWRpdFNjb3JlVGl0bGVTY29yZSwgLmZpbmFuY2VGb3JtQ29udGFpbmVyRW1iZWRkZWQgc3Bhbi5jcmVkaXRTY29yZVRpdGxlU2NvcmV7IGZvbnQtc2l6ZToxLjgxM3JlbSA7IHRleHQtc2hhZG93OjEuMnB4IDA7IH0gLmNyZWRpdFNjb3JlVXNlZE91dGVyV3JhcCAuY3JlZGl0U2NvcmVfYnRuLCAuY3JlZGl0U2NvcmVNZW51T3V0ZXJXcmFwIC5jcmVkaXRTY29yZV9idG57IHdpZHRoOjEwMCU7IHRleHQtYWxpZ246Y2VudGVyOyBoZWlnaHQ6NDBweDsgYm94LXNpemluZzpib3JkZXItYm94OyBmbG9hdDp1bnNldCAhaW1wb3J0YW50OyB9IC5jcmVkaXRTY29yZVBvcHVwQ29udGFpbmVyRW1iZWRkZWQgLmNyZWRpdFNjb3JlSW5wdXQsIC5maW5hbmNlRm9ybUNvbnRhaW5lckVtYmVkZGVkIC5jcmVkaXRTY29yZUlucHV0eyBtYXJnaW4tYm90dG9tOjEwcHg7IH0gLmNyZWRpdFNjb3JlUG9wdXBDb250YWluZXJFbWJlZGRlZCBkaXYuY3JlZGl0U2NvcmVFeHRyYVRleHQsIC5maW5hbmNlRm9ybUNvbnRhaW5lckVtYmVkZGVkIGRpdi5jcmVkaXRTY29yZUV4dHJhVGV4dHsgdGV4dC1hbGlnbjpjZW50ZXI7IH0gLmNyZWRpdFNjb3JlUG9wdXBDb250YWluZXJFbWJlZGRlZCBkaXYuY3JlZGl0U2NvcmVDb25zZW50TWVzc2FnZSwgLmZpbmFuY2VGb3JtQ29udGFpbmVyRW1iZWRkZWQgZGl2LmNyZWRpdFNjb3JlQ29uc2VudE1lc3NhZ2V7IGNvbG9yOiNiM2IzYjM7IGZvbnQtc2l6ZTowLjY4OHJlbSA7IHRleHQtYWxpZ246Y2VudGVyOyBtYXJnaW46MTBweCAyMHB4IDAgMjBweDsgfSAuY3JlZGl0U2NvcmVQb3B1cENvbnRhaW5lckVtYmVkZGVkIHNwYW4uY3JlZGl0SGlnaGxpZ2h0VGV4dFVzZWQsIC5maW5hbmNlRm9ybUNvbnRhaW5lckVtYmVkZGVkIHNwYW4uY3JlZGl0SGlnaGxpZ2h0VGV4dFVzZWR7IGNvbG9yOiNlYjAwMDA7IGNvbG9yOjsgZm9udC13ZWlnaHQ6Ym9sZDsgdGV4dC1zaGFkb3c6MXB4IDBweDsgbGV0dGVyLXNwYWNpbmc6MC41cHg7IH0gLmNyZWRpdFNjb3JlUG9wdXBDb250YWluZXJFbWJlZGRlZCBkaXYuY3JlZGl0QXBwVGl0bGUxeyBmb250LXNpemU6MS43NXJlbSA7IGZvbnQtd2VpZ2h0OmJvbGQ7IG1hcmdpbi1ib3R0b206MnB4OyB9IC5jcmVkaXRTY29yZVBvcHVwQ29udGFpbmVyRW1iZWRkZWQgc3Bhbi5jcmVkaXRBcHBEYXJrQmx1ZUNvbG9yRU57IGZvbnQtc2l6ZTozLjFyZW07IGxpbmUtaGVpZ2h0OjQ5cHg7IGxldHRlci1zcGFjaW5nOjEuNHB4OyB9IC5jcmVkaXRTY29yZVBvcHVwQ29udGFpbmVyRW1iZWRkZWQgc3Bhbi5jcmVkaXRBcHBEYXJrQmx1ZUNvbG9yRlJ7IGZvbnQtc2l6ZToxLjg3NXJlbSA7IGxpbmUtaGVpZ2h0OjM4cHg7IGxldHRlci1zcGFjaW5nOjEuMXB4OyB9IC5jcmVkaXRTY29yZVBvcHVwQ29udGFpbmVyRW1iZWRkZWQgc3Bhbi5jcmVkaXRBcHBUaXRsZTMsIC5maW5hbmNlRm9ybUNvbnRhaW5lckVtYmVkZGVkIHNwYW4uY3JlZGl0QXBwVGl0bGUzeyBmb250LXNpemU6MS41cmVtOyBjb2xvcjpibGFjazsgfSAuY3JlZGl0U2NvcmVQb3B1cENvbnRhaW5lckVtYmVkZGVkIC5jcmVkaXRBcHBFbWJlZGRlZEltYWdleyB3aWR0aDo1MCU7IH0gYm9keS5pc1VzZWRTcnBQYWdlIC5jcmVkaXRTY29yZVBvcHVwQ29udGFpbmVyRW1iZWRkZWQgLmNyZWRpdEFwcEVtYmVkZGVkSW1hZ2V7IGhlaWdodDo2cmVtOyB3aWR0aDphdXRvOyB9IC5jcmVkaXRTY29yZVBvcHVwQ29udGFpbmVyRW1iZWRkZWQgLmdyYXlMaW5lQ3JlZGl0Rm9ybXsgaGVpZ2h0OjJweDsgYm9yZGVyLXdpZHRoOjA7IGJhY2tncm91bmQtY29sb3I6dmFyKC0tbGlnaHQtZ3JheSk7IG1hcmdpbjoxMHB4IDEwcHg7IH0gLmNyZWRpdFNjb3JlUG9wdXBDb250YWluZXJFbWJlZGRlZCAuY3JlZGl0QXBwX2J0bnsgd2lkdGg6MTAwJTsgdGV4dC1hbGlnbjpjZW50ZXI7IGhlaWdodDo0MHB4OyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IGZsb2F0OnVuc2V0ICFpbXBvcnRhbnQ7IGNvbG9yOiNmZmZmZmYgIWltcG9ydGFudDsgfSAuY3JlZGl0U2NvcmVQb3B1cENvbnRhaW5lckVtYmVkZGVkIC5jcmVkaXRBcHBTdWJUaXRsZXsgbWFyZ2luLXRvcDoxMHB4OyB9IC5jcmVkaXRTY29yZVBvcHVwQ29udGFpbmVyRW1iZWRkZWQgLmNyZWRpdEFwcF9idG57IGJhY2tncm91bmQ6I2ViMDAwMCAhaW1wb3J0YW50OyBiYWNrZ3JvdW5kOiAhaW1wb3J0YW50OyB9IC5jcmVkaXRTY29yZVBvcHVwQ29udGFpbmVyRW1iZWRkZWQgLmNyZWRpdEFwcEVtYmVkZGVkSW1hZ2V7IGJhY2tncm91bmQtY29sb3I6I2ViMDAwMDsgYmFja2dyb3VuZC1jb2xvcjo7IH0gLnBhYy1jb250YWluZXIgeyB6LWluZGV4OjEwMDAwMjE7IH0gLmZpbmFuY2VGb3JtQ29udGFpbmVyRW1iZWRkZWR7IHBhZGRpbmc6MTBweCAwcHggMTdweCAwcHg7IH0gLmZpbmFuY2VGb3JtQ29udGFpbmVyRW1iZWRkZWQgLmdyYXlMaW5lQ3JlZGl0Rm9ybXsgbWFyZ2luOjEzcHggMTBweCAxMHB4IDE1cHg7IGhlaWdodDoycHg7IGJvcmRlci13aWR0aDowOyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWxpZ2h0LWdyYXkpOyB9IC5maW5hbmNlRm9ybUNvbnRhaW5lckVtYmVkZGVkIHNwYW4uY3JlZGl0QXBwRGFya0JsdWVDb2xvckVOeyBmb250LXNpemU6MS4xcmVtOyB9IC5maW5hbmNlRm9ybUNvbnRhaW5lckVtYmVkZGVkIHNwYW4uY3JlZGl0QXBwRGFya0JsdWVDb2xvckZSeyBmb250LXNpemU6MS4xcmVtOyB9IC5maW5hbmNlRm9ybUNvbnRhaW5lckVtYmVkZGVkIC5jcmVkaXRBcHBFbWJlZGRlZEltYWdleyB3aWR0aDo1NSU7IGJhY2tncm91bmQ6IzRkOGYxNDsgfSAuZmluYW5jZUZvcm1Db250YWluZXJFbWJlZGRlZCAuY3JlZGl0QXBwX2J0bnsgd2lkdGg6OTUlOyB0ZXh0LWFsaWduOmNlbnRlcjsgaGVpZ2h0OjQwcHg7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgZmxvYXQ6dW5zZXQgIWltcG9ydGFudDsgY29sb3I6I2ZmZmZmZiAhaW1wb3J0YW50OyBtYXJnaW46NXB4IDIuNSU7IGZvbnQtd2VpZ2h0OjUwMDsgZm9udC1zaXplOjAuN3JlbTsgfSAuZmluYW5jZUZvcm1Db250YWluZXJFbWJlZGRlZCBzcGFuLmNyZWRpdEFwcEJsYWNrQ29sb3IgeyBjb2xvcjojMDAwOyBmb250LXdlaWdodDpib2xkOyBsZXR0ZXItc3BhY2luZzowLjVweDsgfSAuZmluYW5jZUZvcm1Db250YWluZXJFbWJlZGRlZCAuY3JlZGl0QXBwVGl0bGVJbWFnZSB7IHdpZHRoOjEwMCU7IGZsZXgtZGlyZWN0aW9uOmNvbHVtbjsgZGlzcGxheTpmbGV4OyBqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYXJvdW5kOyBhbGlnbi1pdGVtczpjZW50ZXI7IH0gLmZpbmFuY2VGb3JtQ29udGFpbmVyRW1iZWRkZWQgLmNyZWRpdFNjb3JlRW1iZWRkZWRGb3JtSW5wdXRzIHsgd2lkdGg6MTAwJTsgcGFkZGluZzoxMHB4IDMwcHggMCAwcHg7IH0gLmZpbmFuY2VGb3JtQ29udGFpbmVyRW1iZWRkZWQgLmNyZWRpdEFwcF9idG57IGNvbG9yOiNmZmZmZmY7IGJhY2tncm91bmQ6IzRkOGYxNDsgfSAuZmluYW5jZUZvcm1Db250YWluZXJFbWJlZGRlZCBkaXYuY3JlZGl0QXBwVGl0bGUxeyBmb250LXNpemU6MS41cmVtIDsgZm9udC13ZWlnaHQ6Ym9sZDsgbWFyZ2luLWJvdHRvbToycHg7IH0gLndyYXBwZXJDcmVkaXRTY29yZXsgd2lkdGg6MTAwJTsgcGFkZGluZy10b3A6MjBweDsgfSAuY3JlZGl0U2NvcmVNZW51T3V0ZXJXcmFweyBwYWRkaW5nOjIwcHggMjBweCAxNnB4IDIwcHg7IH0gLmNyZWRpdFNjb3JlTWVudU91dGVyV3JhcCAuY3JlZGl0U2NvcmVFbWJlZGRlZEZvcm1JbnB1dHN7IHdpZHRoOjEwMCU7IHBhZGRpbmc6MjBweCAyMHB4IDBweCAzMHB4OyB9IC5jcmVkaXRTY29yZU1lbnVPdXRlcldyYXAgLmNyZWRpdFNjb3JlX2J0bnsgY29sb3I6I2ZmZmZmZjsgYmFja2dyb3VuZDojNGQ4ZjE0OyB9IC5jcmVkaXRTY29yZU1lbnVPdXRlcldyYXAgLmNyZWRpdFNjb3JlRW1iZWRkZWRJbWFnZXsgd2lkdGg6NTIlOyBiYWNrZ3JvdW5kOiM0ZDhmMTQ7IH0gLmZpbmFuY2UtbWVudS1mcmVlY3JlZGl0IC5tZW51LWZpbmFuY2Utd3JhcHBlciA+IHVsIHsgZmxvYXQ6cmlnaHQ7IH0gLmZpbmFuY2UtbWVudS1mcmVlY3JlZGl0IC5tZW51LWZpbmFuY2Utd3JhcHBlcnsgZGlzcGxheTpmbGV4OyBmbGV4LWRpcmVjdGlvbjpyb3ctcmV2ZXJzZTsgfSAuZmluYW5jZS1oZWFkZXItZnJlZWNyZWRpdCAuY3JlZGl0U2NvcmVQb3B1cENvbnRhaW5lckVtYmVkZGVkLCAuZmluYW5jZS1tZW51LWZyZWVjcmVkaXQgLmNyZWRpdFNjb3JlUG9wdXBDb250YWluZXJFbWJlZGRlZCwgLmZpbmFuY2UtaGVhZGVyLWZyZWVjcmVkaXQgLmZpbmFuY2VGb3JtQ29udGFpbmVyRW1iZWRkZWQsIC5maW5hbmNlLW1lbnUtZnJlZWNyZWRpdCAuZmluYW5jZUZvcm1Db250YWluZXJFbWJlZGRlZHsgcGFkZGluZy10b3A6MDsgfSAuZmluYW5jZS1oZWFkZXItZnJlZWNyZWRpdCAuY3JlZGl0U2NvcmVQb3B1cEZvcm0sIC5maW5hbmNlLW1lbnUtZnJlZWNyZWRpdCAuY3JlZGl0U2NvcmVQb3B1cEZvcm0geyBkaXNwbGF5OmZsZXg7IGhlaWdodDphdXRvICFpbXBvcnRhbnQ7IH0gLmZpbmFuY2UtaGVhZGVyLWZyZWVjcmVkaXQgLmNyZWRpdFNjb3JlUG9wdXBGb3JtID4gZGl2IHsgcGFkZGluZzoxMHB4IDVweDsgfSAuZmluYW5jZS1oZWFkZXItZnJlZWNyZWRpdCAuY3JlZGl0U2NvcmVQb3B1cENvbnRhaW5lckVtYmVkZGVkIGlucHV0LCAuZmluYW5jZS1oZWFkZXItZnJlZWNyZWRpdCAuZmluYW5jZUZvcm1Db250YWluZXJFbWJlZGRlZCBpbnB1dHsgZGlzcGxheTpibG9jazsgd2lkdGg6MTAwJTsgYm94LXNpemluZzpib3JkZXItYm94OyB9IC5maW5hbmNlLWhlYWRlci1mcmVlY3JlZGl0IC5jcmVkaXRTY29yZUNvbnNlbnRNZXNzYWdlLCAuZmluYW5jZS1tZW51LWZyZWVjcmVkaXQgLmNyZWRpdFNjb3JlQ29uc2VudE1lc3NhZ2UgeyB3aGl0ZS1zcGFjZTpub3JtYWw7IH0gLmZpbmFuY2UtaGVhZGVyLWZyZWVjcmVkaXQgLmNyZWRpdFNjb3JlUG9wdXBDb250YWluZXJFbWJlZGRlZCBzcGFuLmNyZWRpdFNjb3JlVGl0bGVTY29yZSwgLmZpbmFuY2UtbWVudS1mcmVlY3JlZGl0IC5jcmVkaXRTY29yZVBvcHVwQ29udGFpbmVyRW1iZWRkZWQgc3Bhbi5jcmVkaXRTY29yZVRpdGxlU2NvcmUgeyBmb250LXNpemU6MS41cmVtIDsgfSAuZmluYW5jZS1oZWFkZXItZnJlZWNyZWRpdCAuY3JlZGl0U2NvcmVQb3B1cENvbnRhaW5lckVtYmVkZGVkIHNwYW4uY3JlZGl0U2NvcmVUaXRsZUZyZWUsIC5maW5hbmNlLW1lbnUtZnJlZWNyZWRpdCAuY3JlZGl0U2NvcmVQb3B1cENvbnRhaW5lckVtYmVkZGVkIHNwYW4uY3JlZGl0U2NvcmVUaXRsZUZyZWUgeyBmb250LXNpemU6MS44NzVyZW0gOyB9Ci8qKiAvY3NzL21haWxFeHByZXNzUmVxdWVzdFdpZGdldC5jc3MgKiovCi5tYWlsLWV4cHJlc3Mtd2lkZ2V0LCAubWFpbC1leHByZXNzLXdpZGdldC0tZnVsbHdpZHRoIHsgZmxvYXQ6bGVmdDsgd2lkdGg6Mjg1cHg7IG1hcmdpbjo1cHggNXB4IDVweCAxNXB4OyBwYWRkaW5nOjVweDsgfSAubWFpbC1leHByZXNzLXdpZGdldDphZnRlciB7IGNvbnRlbnQ6IiAiOyBjbGVhcjpib3RoOyB9IC5tYWlsLWV4cHJlc3Mtd2lkZ2V0X19jb250YWluZXIsIC5tYWlsLWV4cHJlc3Mtd2lkZ2V0X19jb250YWluZXItLWZ1bGx3aWR0aCB7IGJhY2tncm91bmQtY29sb3I6IzAwMDAwMDsgYm94LXNoYWRvdzoxcHggMnB4IDZweCAwIHJnYmEoMTUwLCAxNTAsIDE1MCwgMC4yNSk7IGNsZWFyOmJvdGg7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgd2lkdGg6MTAwJTsgYm9yZGVyLXJhZGl1czo1cHg7IH0gLm1haWwtZXhwcmVzcy13aWRnZXRfX2VtYWlsLWRlZmluaXRpb24geyBkaXNwbGF5Om5vbmU7IH0gLm1haWwtZXhwcmVzcy13aWRnZXRfX2hlYWRlciB7IHBhZGRpbmc6MTBweCAxNXB4IDVweCAxNXB4OyBib3JkZXItcmFkaXVzOjVweCA1cHggMCAwOyBib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZmZmZmZmOyB9IC5tYWlsLWV4cHJlc3Mtd2lkZ2V0X19oZWFkZXIgLm1haWwtZXhwcmVzcy13aWRnZXRfX2hlYWRlci0tdGl0bGUgeyBmb250LXNpemU6dmFyKC0tZnM0KTsgZm9udC13ZWlnaHQ6Ym9sZDsgdGV4dC1hbGlnbjpjZW50ZXI7IH0gLm1haWwtZXhwcmVzcy13aWRnZXRfX2JvZHkgeyBwYWRkaW5nOjE1cHg7IH0gLm1haWwtZXhwcmVzcy13aWRnZXRfX2Zvb3RlciB7IHBhZGRpbmc6NXB4IDE1cHggMTVweCAxNXB4OyB9IC5tYWlsLWV4cHJlc3Mtd2lkZ2V0X19mb290ZXIgLmVycm9yTXNnIHsgbWFyZ2luLWJvdHRvbToxNXB4OyB9IC5tYWlsLWV4cHJlc3Mtd2lkZ2V0X19mb290ZXJfX3N1Ym1pdCBidXR0b24geyB3aWR0aDoxMDAlOyBwYWRkaW5nOjAgMTlweDsgbWFyZ2luOjA7IGNvbG9yOiNmZmZmZmY7IGJvcmRlcjoxcHggc29saWQgI2ZmZmZmZjsgYm9yZGVyLXJhZGl1czozcHg7IGJhY2tncm91bmQtY29sb3I6IzAwMDAwMDsgZm9udC1zaXplOjAuODEzcmVtIDsgbGluZS1oZWlnaHQ6MjhweDsgZm9udC13ZWlnaHQ6Ym9sZDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IGN1cnNvcjpwb2ludGVyOyB9IC5tYWlsLWV4cHJlc3Mtd2lkZ2V0X19mb290ZXJfX3N1Ym1pdCBidXR0b246aG92ZXIgeyBib3JkZXItY29sb3I6IzAwMDAwMDsgYmFja2dyb3VuZC1jb2xvcjojZmZmZmZmOyBjb2xvcjojMDAwMDAwOyB9Ci8qKiAvY3NzL25lYkNhbC9uZWJDYWwuY3NzICoqLwoubmViQ2FsICogeyBvdmVyZmxvdzpoaWRkZW47IHBhZGRpbmc6MDsgbWFyZ2luOjA7IGxpbmUtaGVpZ2h0OjEwMCU7IGJhY2tncm91bmQtY29sb3IgOndoaXRlOyB9IC5uZWJDYWwgLmNhbC1oZWFkZXIgLmNhbC1hcnJvdy1sZWZ0LCAubmViQ2FsIC5jYWwtaGVhZGVyIC5jYWwtYXJyb3ctcmlnaHQgeyBjdXJzb3I6cG9pbnRlcjt9IC5uZWJDYWwgLmNhbC1oZWFkZXIgLmNhbC1hcnJvdy1sZWZ0IHsgZmxvYXQ6bGVmdDsgfSAubmViQ2FsIC5jYWwtaGVhZGVyIC5jYWwtYXJyb3ctbGVmdDpiZWZvcmUgeyBjb250ZW50Oic8JzsgZm9udC13ZWlnaHQ6Ym9sZDsgY29sb3I6IzUyM2EyOTsgfSAubmViQ2FsIC5jYWwtaGVhZGVyIC5jYWwtYXJyb3ctcmlnaHQgeyBmbG9hdDpyaWdodDsgfSAubmViQ2FsIC5jYWwtaGVhZGVyIC5jYWwtYXJyb3ctcmlnaHQ6YmVmb3JlIHsgY29udGVudDonPic7IGZvbnQtd2VpZ2h0OmJvbGQ7IGNvbG9yOiM1MjNhMjk7IH0gLm5lYkNhbCAuY2FsLWhlYWRlciAuY2FsLWxhYmVsIHsgZGlzcGxheTppbmxpbmUtYmxvY2s7IG92ZXJmbG93OnZpc2libGU7IHdpZHRoOjE0NnB4OyB9IC5uZWJDYWwgLmNhbC1oZWFkZXIgLmNhbC1sYWJlbC5jYWwtY2xpY2thYmxlIHsgY3Vyc29yOnBvaW50ZXI7IH0gLm5lYkNhbCAuY2FsLWJvZHkgeyBwb3NpdGlvbjpyZWxhdGl2ZTsgfSAubmViQ2FsIC5jYWwtYm9keSAuY2FsLWlubmVyIC5jYWwtY29udGFpbmVyIHsgcG9zaXRpb246YWJzb2x1dGU7IGxlZnQ6MDsgfSAubmViQ2FsIC5jYWwtYm9keSAuY2FsLWlubmVyIC5jYWwtY29udGFpbmVyIC5jYWwtcm93IGRpdiB7IGZsb2F0OmxlZnQ7IH0gLm5lYkNhbCAuY2FsLWJvZHkgLmNhbC1pbm5lciAuY2FsLWNvbnRhaW5lci5jYWwtbW9udGguY2FsLXBpY2thYmxlIC5jYWwtcm93IGRpdiwgLm5lYkNhbCAuY2FsLWJvZHkgLmNhbC1pbm5lciAuY2FsLWNvbnRhaW5lci5jYWwteWVhci1kZWNhZGUgLmNhbC1yb3cgZGl2IHsgY3Vyc29yOnBvaW50ZXI7fSAubmViQ2FsIHsgY3Vyc29yOmRlZmF1bHQ7IHBvc2l0aW9uOmFic29sdXRlOyB6LWluZGV4OjEwMDAwMjA7IHRleHQtYWxpZ246Y2VudGVyOyB3aWR0aDoyOTBweDsgaGVpZ2h0OjIxNXB4OyBmb250LXNpemU6MC45MzhyZW0gOyBjb2xvcjojNTIzYTI5OyB9IC5uZWJDYWwuaW5saW5lIHsgcG9zaXRpb246cmVsYXRpdmU7IH0gLm5lYkNhbC5kZWZhdWx0IC5jYWwtd3JhcHBlciB7IHBhZGRpbmc6MCA0cHg7IGJvcmRlcjpzb2xpZCAxcHggI2RkZGVkOTsgLW1vei1ib3gtc2hhZG93OjBweCAwcHggNHB4IDJweCAjZDhkOGQ4Oy13ZWJraXQtYm94LXNoYWRvdzowcHggMHB4IDRweCAycHggI2Q4ZDhkODtib3gtc2hhZG93OjBweCAwcHggNHB4IDJweCAjZDhkOGQ4O30gLm5lYkNhbC5kZWZhdWx0IC5jYWwtaGVhZGVyIHsgaGVpZ2h0OjI1cHg7IH0gLm5lYkNhbC5kZWZhdWx0IC5jYWwtaGVhZGVyIC5jYWwtYXJyb3ctbGVmdCwgLm5lYkNhbC5kZWZhdWx0IC5jYWwtaGVhZGVyIC5jYWwtYXJyb3ctcmlnaHQgeyB3aWR0aDoxMnB4OyBoZWlnaHQ6MTNweDsgbWFyZ2luOjZweCA3cHg7IH0gLm5lYkNhbC5kZWZhdWx0IC5jYWwtaGVhZGVyIC5jYWwtYXJyb3ctbGVmdCB7IH0gLm5lYkNhbC5kZWZhdWx0IC5jYWwtaGVhZGVyIC5jYWwtYXJyb3ctbGVmdDpob3ZlciB7IH0gLm5lYkNhbC5kZWZhdWx0IC5jYWwtaGVhZGVyIC5jYWwtYXJyb3ctcmlnaHQgeyB9IC5uZWJDYWwuZGVmYXVsdCAuY2FsLWhlYWRlciAuY2FsLWFycm93LXJpZ2h0OmhvdmVyIHsgfSAubmViQ2FsLmRlZmF1bHQgLmNhbC1oZWFkZXIgLmNhbC1sYWJlbCB7IGxpbmUtaGVpZ2h0OjI1cHg7IGNvbG9yOiM1MjNhMjk7IHRleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTsgfSAubmViQ2FsLmRlZmF1bHQgLmNhbC1oZWFkZXIgLmNhbC1sYWJlbC5jYWwtY2xpY2thYmxlIHsgY29sb3I6IzA4YTUzYzsgfSAubmViQ2FsLmRlZmF1bHQgLmNhbC1oZWFkZXIgLmNhbC1sYWJlbC5jYWwtY2xpY2thYmxlOmhvdmVyIHsgdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTsgfSAubmViQ2FsLmRlZmF1bHQgLmNhbC1ib2R5IHsgaGVpZ2h0OjE4MHB4OyB9IC5uZWJDYWwuZGVmYXVsdCAuY2FsLWJvZHkgLmNhbC1pbm5lciAuY2FsLWNvbnRhaW5lciB7IHdpZHRoOjI5MHB4OyBoZWlnaHQ6MTgwcHg7IH0gLm5lYkNhbC5kZWZhdWx0IC5jYWwtYm9keSAuY2FsLWlubmVyIC5jYWwtY29udGFpbmVyIC5jYWwtcm93IHsgd2lkdGg6MjkwcHg7IH0gLm5lYkNhbC5kZWZhdWx0IC5jYWwtYm9keSAuY2FsLWlubmVyIC5jYWwtY29udGFpbmVyLmNhbC15ZWFyLWRlY2FkZSAuY2FsLXJvdy5jYWwtb2RkIGRpdiB7IG1hcmdpbjo1cHg7IGJhY2tncm91bmQtY29sb3I6I2RlZGVkZTtib3JkZXI6MXB4IHNvbGlkICNkOWQ5ZDk7fSAubmViQ2FsLmRlZmF1bHQgLmNhbC1ib2R5IC5jYWwtaW5uZXIgLmNhbC1jb250YWluZXIuY2FsLXllYXItZGVjYWRlIC5jYWwtcm93LmNhbC1ldmVuIGRpdiB7IG1hcmdpbjo1cHg7IGJhY2tncm91bmQtY29sb3I6I2YwZjBmMDtib3JkZXI6MXB4IHNvbGlkICNlY2VjZWM7fSAubmViQ2FsLmRlZmF1bHQgLmNhbC1ib2R5IC5jYWwtaW5uZXIgLmNhbC1jb250YWluZXIgLmNhbC1yb3cgZGl2LmNhbC10b2RheSB7IHRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7IH0gLm5lYkNhbC5kZWZhdWx0IC5jYWwtYm9keSAuY2FsLWlubmVyIC5jYWwtY29udGFpbmVyIC5jYWwtcm93IGRpdi5jYWwtc2VsZWN0ZWQgeyBtYXJnaW4tbGVmdDo1cHg7IG1hcmdpbi1yaWdodDo1cHg7IGhlaWdodDoyMHB4O2ZvbnQtc2l6ZToxcmVtIDtmb250LXdlaWdodDo2MDA7IGNvbG9yOiNmZmYgIWltcG9ydGFudDt0ZXh0LXNoYWRvdzoxcHggMXB4IDBweCAjMzlhNjYzOyBiYWNrZ3JvdW5kLWNvbG9yOiM1NGJiMDA7LXdlYmtpdC1ib3JkZXItcmFkaXVzOjVweDstbW96LWJvcmRlci1yYWRpdXM6NXB4O2JvcmRlci1yYWRpdXM6NXB4O30gLm5lYkNhbC5kZWZhdWx0IC5jYWwtYm9keSAuY2FsLWlubmVyIC5jYWwtY29udGFpbmVyIC5jYWwtcm93IGRpdi5jYWwtbm9uLXNlbGVjdGFibGUsIC5uZWJDYWwuZGVmYXVsdCAuY2FsLWJvZHkgLmNhbC1pbm5lciAuY2FsLWNvbnRhaW5lciAuY2FsLXJvdyBkaXYuY2FsLW5vbi1zZWxlY3RhYmxlOmhvdmVyIHsgY29sb3I6I2JkYmRiZCAhaW1wb3J0YW50OyBjdXJzb3I6ZGVmYXVsdCAhaW1wb3J0YW50OyB9IC5uZWJDYWwuZGVmYXVsdCAuY2FsLWJvZHkgLmNhbC1pbm5lciAuY2FsLWNvbnRhaW5lci5jYWwtbW9udGggLmNhbC1yb3cuYSBkaXYgeyBjdXJzb3I6ZGVmYXVsdCAhaW1wb3J0YW50OyBjb2xvcjojMzc5YjU3ICFpbXBvcnRhbnQ7dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlOyB9IC5uZWJDYWwuZGVmYXVsdCAuY2FsLWJvZHkgLmNhbC1pbm5lciAuY2FsLWNvbnRhaW5lci5jYWwtbW9udGggLmNhbC1yb3cgeyBoZWlnaHQ6MjZweDsgfSAubmViQ2FsLmRlZmF1bHQgLmNhbC1ib2R5IC5jYWwtaW5uZXIgLmNhbC1jb250YWluZXIuY2FsLW1vbnRoIC5jYWwtcm93IGRpdiB7IG1hcmdpbi10b3A6M3B4OyB3aWR0aDo0MHB4OyB9IC5uZWJDYWwuZGVmYXVsdCAuY2FsLWJvZHkgLmNhbC1pbm5lciAuY2FsLWNvbnRhaW5lci5jYWwtbW9udGggLmNhbC1yb3cgZGl2LmNhbC1zZWxlY3RlZCB7IG1hcmdpbi10b3A6M3B4OyB3aWR0aDozMHB4OyB9IC5uZWJDYWwuZGVmYXVsdCAuY2FsLWJvZHkgLmNhbC1pbm5lciAuY2FsLWNvbnRhaW5lci5jYWwtbW9udGggLmNhbC1yb3cgZGl2LmNhbC1maXJzdCB7IHBhZGRpbmctbGVmdDoxNnB4OyB9IC5uZWJDYWwuZGVmYXVsdCAuY2FsLWJvZHkgLmNhbC1pbm5lciAuY2FsLWNvbnRhaW5lci5jYWwtbW9udGggLmNhbC1yb3cgZGl2LmNhbC1sYXN0IHsgcGFkZGluZy1yaWdodDoxNnB4OyB9IC5uZWJDYWwuZGVmYXVsdCAuY2FsLWJvZHkgLmNhbC1pbm5lciAuY2FsLWNvbnRhaW5lci5jYWwtbW9udGggLmNhbC1yb3cgZGl2LmNhbC1vdXRzaWRlIHsgY29sb3I6I2RlZGVkZTsgfSAubmViQ2FsLmRlZmF1bHQgLmNhbC1ib2R5IC5jYWwtaW5uZXIgLmNhbC1jb250YWluZXIuY2FsLW1vbnRoIC5jYWwtcm93LmNhbC1ldmVuIGRpdi5jYWwtb3V0c2lkZSB7IGNvbG9yOiNjZWNlY2U7IH0gLm5lYkNhbC5kZWZhdWx0IC5jYWwtYm9keSAuY2FsLWlubmVyIC5jYWwtY29udGFpbmVyLmNhbC1tb250aCAuY2FsLXJvdy5hIGRpdiB7IGNvbG9yOiM5YzljOWM7IH0gLm5lYkNhbC5kZWZhdWx0IC5jYWwtYm9keSAuY2FsLWlubmVyIC5jYWwtY29udGFpbmVyLmNhbC15ZWFyLWRlY2FkZSAuY2FsLXJvdyB7IGhlaWdodDo0MnB4OyB9IC5uZWJDYWwuZGVmYXVsdCAuY2FsLWJvZHkgLmNhbC1pbm5lciAuY2FsLWNvbnRhaW5lci5jYWwteWVhci1kZWNhZGUgLmNhbC1yb3cgZGl2IHsgd2lkdGg6ODBweDtsaW5lLWhlaWdodDoyN3B4OyBoZWlnaHQ6MjdweDsgfSAubmViQ2FsLmRlZmF1bHQgLmNhbC1ib2R5IC5jYWwtaW5uZXIgLmNhbC1jb250YWluZXIuY2FsLXllYXItZGVjYWRlIC5jYWwtcm93IGRpdi5jYWwtZmlyc3QgeyBtYXJnaW4tbGVmdDoxNnB4OyB9IC5uZWJDYWwuZGVmYXVsdCAuY2FsLWJvZHkgLmNhbC1pbm5lciAuY2FsLWNvbnRhaW5lci5jYWwteWVhci1kZWNhZGUgLmNhbC1yb3cgZGl2LmNhbC1sYXN0IHsgbWFyZ2luLXJpZ2h0OjE2cHg7IH0gLm5lYkNhbC5kZWZhdWx0IC5jYWwtYm9keSAuY2FsLWlubmVyIC5jYWwtY29udGFpbmVyLmNhbC15ZWFyLWRlY2FkZSAuY2FsLXJvdyBkaXYuY2FsLXNlbGVjdGVkIHsgYmFja2dyb3VuZC1jb2xvcjojNTRiYjAwO30gLm5lYkNhbC5kZWZhdWx0IC5jYWwtYm9keSAuY2FsLWlubmVyIC5jYWwtY29udGFpbmVyLmNhbC1tb250aC5jYWwtcGlja2FibGUgLmNhbC1yb3cgZGl2OmhvdmVyLCAubmViQ2FsLmRlZmF1bHQgLmNhbC1ib2R5IC5jYWwtaW5uZXIgLmNhbC1jb250YWluZXIuY2FsLXllYXItZGVjYWRlIC5jYWwtcm93IGRpdjpob3ZlciB7IGNvbG9yOiNiMmNmZTE7IH0gLm5lYkNhbC5kZWZhdWx0IC5jYWwtZm9vdGVyIHsgaGVpZ2h0OjRweDsgfQovKiogL2Nzcy9mb3Jtcy9mb3Jtcy5wcmVsb2FkLmNzcyAqKi8KLmQyY2Zvcm0geyAtLWxhYmVsLXJlcXVpcmVkLXN5bWJvbDoiKiI7IC0tbGFiZWwtcmVxdWlyZWQtY29sb3I6I0ZGMDAwMDsgLS1pbnB1dC1wYWRkaW5nOnZhcigtLXMtMSkgdmFyKC0tczEpOyAtLWlucHV0LWJnLWNvbG9yOnZhcigtLXdoaXRlKTsgLS1pbnB1dC1ib3JkZXItY29sb3I6dmFyKC0tbWlkLWdyYXkpOyAtLWlucHV0LXJhZGl1czp2YXIoLS1zLTYpOyAtLWlucHV0LWZvbnQtc2l6ZTp2YXIoLS1mczApOyAtLWlucHV0LWxpbmUtaGVpZ2h0OnZhcigtLWZzMik7IH0gLmQyY2Zvcm0gKiB7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgfSAuZDJjZm9ybSBib3gtbGMgeyAtLXNwYWNlOnZhcigtLXMtNCk7IHBhZGRpbmctbGVmdDowOyBwYWRkaW5nLXJpZ2h0OjA7IGRpc3BsYXk6ZmxleDsgZmxleC1kaXJlY3Rpb246Y29sdW1uOyBhbGlnbi1pdGVtczpmbGV4LXN0YXJ0OyB9IC5kMmNmb3JtLS10aGluIGJveC1sYyB7IC0tc3BhY2U6dmFyKC0tcy05KTsgfSAuZDJjZm9ybS0tcm93IHN0YWNrLWxjIHsgZmxleC1kaXJlY3Rpb246cm93OyBmbGV4LXdyYXA6d3JhcDsgfSAuZDJjZm9ybS0tcm93IGJveC1sYyB7IHBhZGRpbmctcmlnaHQ6dmFyKC0tc3BhY2UpOyBwYWRkaW5nLWxlZnQ6dmFyKC0tc3BhY2UpOyB9IC5kMmNmb3JtLS1ob3Jpem9udGFsIGJveC1sYyB7IGZsZXgtZGlyZWN0aW9uOnJvdzsgYWxpZ24taXRlbXM6ZmxleC1zdGFydDsgfSAuZDJjZm9ybS0taG9yaXpvbnRhbCBib3gtbGMgbGFiZWwgeyBtaW4td2lkdGg6MTE1cHg7IHdpZHRoOjMwJTsgcGFkZGluZy1yaWdodDp2YXIoLS1zKTsgbWFyZ2luLXRvcDp2YXIoLS1zMSk7IG1hcmdpbi1ib3R0b206MDsgfSAuZDJjZm9ybSBsYWJlbDpoYXMoW3JlcXVpcmVkXSkgc3BhbjphZnRlcnsgY29sb3IgOnZhcigtLWxhYmVsLXJlcXVpcmVkLWNvbG9yKTsgY29udGVudCA6dmFyKC0tbGFiZWwtcmVxdWlyZWQtc3ltYm9sKTsgcGFkZGluZy1sZWZ0IDp2YXIoLS1zLTYpOyB9IC5kMmNmb3JtIGxhYmVsOm5vdCguZmluYW5jZUNhbGMpLCAuZDJjZm9ybSAubGFiZWw6bm90KC5maW5hbmNlQ2FsYykgeyBtYXJnaW4tYm90dG9tOnZhcigtLXMtMyk7IGZvbnQtc2l6ZTp2YXIoLS1pbnB1dC1mb250LXNpemUpOyBsaW5lLWhlaWdodDp2YXIoLS1pbnB1dC1saW5lLWhlaWdodCk7IGZvbnQtd2VpZ2h0OjQwMDsgfSAuZDJjZm9ybSBsYWJlbC4tLXJlcXVpcmVkOm5vdCgudHh0LXJpZ2h0KTphZnRlciwgLmQyY2Zvcm0gLmxhYmVsLi0tcmVxdWlyZWQ6bm90KC50eHQtcmlnaHQpOmFmdGVyLCAuZDJjZm9ybSBsYWJlbC4tcmVxdWlyZWQ6bm90KC50eHQtcmlnaHQpOmFmdGVyLCAuZDJjZm9ybSAubGFiZWwuLXJlcXVpcmVkOm5vdCgudHh0LXJpZ2h0KTphZnRlciB7IGNvbG9yIDp2YXIoLS1sYWJlbC1yZXF1aXJlZC1jb2xvcik7IGNvbnRlbnQgOnZhcigtLWxhYmVsLXJlcXVpcmVkLXN5bWJvbCk7IHBhZGRpbmctbGVmdCA6dmFyKC0tcy02KTsgfSAuZDJjZm9ybSBsYWJlbC4tLXJlcXVpcmVkLnR4dC1yaWdodDpiZWZvcmUsIC5kMmNmb3JtIC5sYWJlbC4tLXJlcXVpcmVkLnR4dC1yaWdodDpiZWZvcmUsIC5kMmNmb3JtIGxhYmVsLi1yZXF1aXJlZC50eHQtcmlnaHQ6YmVmb3JlLCAuZDJjZm9ybSAubGFiZWwuLXJlcXVpcmVkLnR4dC1yaWdodDpiZWZvcmUgeyBjb2xvciA6dmFyKC0tbGFiZWwtcmVxdWlyZWQtY29sb3IpOyBjb250ZW50IDp2YXIoLS1sYWJlbC1yZXF1aXJlZC1zeW1ib2wpOyBwYWRkaW5nLXJpZ2h0IDp2YXIoLS1zLTYpOyB9IC5kMmNmb3JtIDp3aGVyZShpbnB1dDpub3QoW3R5cGU9c3VibWl0XSwucGF5bWVudENhbGN1bGF0b3JEb3duUGF5bWVudCk6bm90KFt0eXBlPSJyYWRpbyJdKTpub3QoW3R5cGU9ImNoZWNrYm94Il0pKSwgLmQyY2Zvcm0gc2VsZWN0Om5vdCgucGF5bWVudENhbGN1bGF0b3JJbnRlcnZhbCwucGF5bWVudENhbGN1bGF0b3JLbUFsbG93YW5jZSwuZmluYW5jZU11bHRpc3RlcFVzZWRDYWxjdWxhdG9yIC5jYWxjLWZvcm0gc2VsZWN0KSwgLmQyY2Zvcm0gdGV4dGFyZWEgeyB3aWR0aDoxMDAlOyBwYWRkaW5nOnZhcigtLWlucHV0LXBhZGRpbmcpOyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWlucHV0LWJnLWNvbG9yKTsgYm9yZGVyLXJhZGl1czp2YXIoLS1pbnB1dC1yYWRpdXMpOyBib3JkZXI6MXB4IHNvbGlkIHZhcigtLWlucHV0LWJvcmRlci1jb2xvcik7IGNvbG9yOiMyMTI1Mjk7IGZvbnQtc2l6ZTp2YXIoLS1pbnB1dC1mb250LXNpemUpOyBsaW5lLWhlaWdodDp2YXIoLS1pbnB1dC1saW5lLWhlaWdodCk7IGZvbnQtd2VpZ2h0OjQwMDsgfSAuZDJjZm9ybSBpbnB1dDpub3QoW3R5cGU9c3VibWl0XSk6bm90KFt0eXBlPSJyYWRpbyJdKTpub3QoW3R5cGU9ImNoZWNrYm94Il0pLCAuZDJjZm9ybSBzZWxlY3QgeyBoZWlnaHQ6MzVweDsgfSAuZDJjZm9ybSAuaW52YWxpZCA+IDppcyhpbnB1dCxzZWxlY3QsdGV4dGFyZWEpeyBiYWNrZ3JvdW5kLWNvbG9yOiNmYWQ2ZGM7IH0gLmQyY2Zvcm0gaW5wdXQ6ZGlzYWJsZWQsIC5kMmNmb3JtIGlucHV0LmRpc2FibGVkIHsgYmFja2dyb3VuZC1jb2xvcjpyZ2JhKDIzOSwgMjM5LCAyMzksIDAuMyk7IGNvbG9yOnJnYig4NCwgODQsIDg0KTsgYm9yZGVyLWNvbG9yOnJnYmEoMTE4LCAxMTgsIDExOCwgMC4zKTsgY3Vyc29yOm5vdC1hbGxvd2VkOyB9IC5kMmNmb3JtIGlucHV0LnR4dC11cHBlciB7IHRleHQtdHJhbnNmb3JtOm5vbmU7IH0gLmQyY2Zvcm0gaW5wdXQudHh0LXVwcGVyOjpwbGFjZWhvbGRlciB7IHRleHQtdHJhbnNmb3JtOnZhcigtLXR4dC11cHBlciwgdXBwZXJjYXNlKTsgfSAuZDJjZm9ybSAuaW5wdXQtaWNvbi1sZWZ0LCAuZDJjZm9ybSAuaW5wdXQtaWNvbi1yaWdodCB7IHBvc2l0aW9uOnJlbGF0aXZlOyB9IC5kMmNmb3JtIC5pbnB1dC1pY29uIHsgcG9zaXRpb246YWJzb2x1dGU7IHotaW5kZXg6MTsgdG9wOnZhcigtLXMxKTsgZm9udC1zaXplOnZhcigtLWlucHV0LWZvbnQtc2l6ZSk7IGxpbmUtaGVpZ2h0OnZhcigtLWlucHV0LWxpbmUtaGVpZ2h0KTsgY29sb3I6dmFyKC0tZGFyay1ncmF5KTsgfSAuZDJjZm9ybSAuaW5wdXQtaWNvbi1yaWdodCAuaW5wdXQtaWNvbiB7IHJpZ2h0OnZhcigtLXM0KTsgfSAuZDJjZm9ybSAuaW5wdXQtaWNvbi1sZWZ0IC5pbnB1dC1pY29uIHsgbGVmdDp2YXIoLS1zNCk7IH0gLmQyY2Zvcm0gLmlucHV0LWljb24tbGVmdCBpbnB1dCB7IHBhZGRpbmctbGVmdDp2YXIoLS1zOSk7IH0gLmQyY2Zvcm0gLnNlcGFyYXRvciB7IHdpZHRoOjEwMCU7IGJvcmRlci10b3A6MXB4IHNvbGlkICNkNGQ0ZDQ7IG1hcmdpbi10b3A6dmFyKC0tczcpOyBtYXJnaW4tYm90dG9tOnZhcigtLXM3KTsgfSAuZDJjZm9ybSAucmFkaW8taW5saW5lIHsgZGlzcGxheTpmbGV4OyB3aWR0aDoxMDAlOyB9IC5kMmNmb3JtIC5jaGVja2JveC1saXN0IHsgZGlzcGxheTpmbGV4OyBmbGV4LWRpcmVjdGlvbjpjb2x1bW47IG1hcmdpbi1ib3R0b206dmFyKC0tcy0zKTsgfSAuZDJjZm9ybSAuY2hlY2tib3gtbGlzdCA+ICogeyBtYXJnaW4tYm90dG9tOjA7IH0gLmQyY2Zvcm0gLm11bHRpcGxlLWlucHV0IHsgZGlzcGxheTpmbGV4OyB3aWR0aDoxMDAlOyB9IC5kMmNmb3JtIC5tdWx0aXBsZS1pbnB1dCA+ICo6bm90KDpsYXN0LW9mLXR5cGUpIHsgbWFyZ2luLXJpZ2h0OnZhcigtLXMxKTsgfSAuZDJjZm9ybSAuaW5wdXQtZ3JvdXAgeyBkaXNwbGF5OmZsZXg7IHdpZHRoIDoxMDAlOyB9IC5kMmNmb3JtIC5pbnB1dC1ncm91cCAuaW5wdXQtZ3JvdXAtdGV4dCB7IGRpc3BsYXk6ZmxleDsgYWxpZ24taXRlbXM6Y2VudGVyOyBwYWRkaW5nOnZhcigtLWlucHV0LXBhZGRpbmcpOyBiYWNrZ3JvdW5kOnZhcigtLWxpZ2h0LWdyYXkpOyBib3JkZXI6MXB4IHNvbGlkIHZhcigtLWlucHV0LWJvcmRlci1jb2xvcik7IGJvcmRlci1yYWRpdXM6dmFyKC0taW5wdXQtcmFkaXVzKTsgZm9udC1zaXplOnZhcigtLWlucHV0LWZvbnQtc2l6ZSk7IGxpbmUtaGVpZ2h0OnZhcigtLWlucHV0LWxpbmUtaGVpZ2h0KTsgd2hpdGUtc3BhY2U6bm93cmFwOyB9IC5kMmNmb3JtIC5pbnB1dC1ncm91cCA+IDpub3QoOmZpcnN0LWNoaWxkKSB7IGJvcmRlci1sZWZ0OjA7IGJvcmRlci10b3AtbGVmdC1yYWRpdXM6MCAhaW1wb3J0YW50OyBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjAgIWltcG9ydGFudDsgfSAuZDJjZm9ybSAuaW5wdXQtZ3JvdXAgPiA6bm90KDpsYXN0LWNoaWxkKSB7IGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOjAgIWltcG9ydGFudDsgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6MCAhaW1wb3J0YW50OyB9IEBtZWRpYSAobWF4LXdpZHRoOjk4MHB4KSB7IC5kMmNmb3JtLS1ob3Jpem9udGFsIGJveC1sYyBsYWJlbCB7IG1pbi13aWR0aDo4NXB4OyB9IH0KLyoqIC9jc3MvZm9ybXMvZm9ybXMuY3NzICoqLwouZDJjZm9ybSBpbnB1dDpub3QoW3R5cGU9c3VibWl0XSk6bm90KFt0eXBlPSJyYWRpbyJdKTpub3QoW3R5cGU9ImNoZWNrYm94Il0pLCAuZDJjZm9ybSBzZWxlY3QsIC5kMmNmb3JtIHRleHRhcmVhIHsgdHJhbnNpdGlvbjpib3JkZXItY29sb3IgLjE1cyBlYXNlLWluLW91dCxib3gtc2hhZG93IC4xNXMgZWFzZS1pbi1vdXQ7IH0gLmQyY2Zvcm0gaW5wdXQ6bm90KFt0eXBlPXN1Ym1pdF0pOm5vdChbdHlwZT0icmFkaW8iXSk6bm90KFt0eXBlPSJjaGVja2JveCJdKTpmb2N1cywgLmQyY2Zvcm0gc2VsZWN0OmZvY3VzLCAuZDJjZm9ybSB0ZXh0YXJlYTpmb2N1cyB7IGJvcmRlci1jb2xvcjojODZiN2ZlOyBvdXRsaW5lOjA7IGJveC1zaGFkb3c6MCAwIDAgMC4ycmVtIHJnYigxMyAxMTAgMjUzIC8gMjUlKTsgfSAuZDJjZm9ybSAuaW5wdXQtZ3JvdXAgaW5wdXQ6bm90KFt0eXBlPXN1Ym1pdF0pOm5vdChbdHlwZT0icmFkaW8iXSk6bm90KFt0eXBlPSJjaGVja2JveCJdKTpmb2N1cywgLmQyY2Zvcm0gLmlucHV0LWdyb3VwIHNlbGVjdDpmb2N1cywgLmQyY2Zvcm0gLmlucHV0LWdyb3VwIHRleHRhcmVhOmZvY3VzIHsgei1pbmRleDozOyB9IC5kMmNmb3JtIGlucHV0LnZhbGlkaXR5LWVycm9uZW91cywgLmQyY2Zvcm0gc2VsZWN0LnZhbGlkaXR5LWVycm9uZW91cywgLmQyY2Zvcm0gdGV4dGFyZWEudmFsaWRpdHktZXJyb25lb3VzLCAuZDJjZm9ybSAuaW5wdXQtZ3JvdXAgLnZhbGlkaXR5LWVycm9uZW91cyArIC5pbnB1dC1ncm91cC10ZXh0IHsgYm9yZGVyLWNvbG9yOiNkYzM1NDUgIWltcG9ydGFudDsgYmFja2dyb3VuZC1jb2xvcjojZmFkNmRjICFpbXBvcnRhbnQ7IH0gLmQyY2Zvcm0gaW5wdXQudmFsaWRpdHktZXJyb25lb3VzOjpwbGFjZWhvbGRlciwgLmQyY2Zvcm0gdGV4dGFyZWEudmFsaWRpdHktZXJyb25lb3VzOjpwbGFjZWhvbGRlciwgLmQyY2Zvcm0gc2VsZWN0LnZhbGlkaXR5LWVycm9uZW91cywgLmQyY2Zvcm0gLmlucHV0LWdyb3VwIC52YWxpZGl0eS1lcnJvbmVvdXMgKyAuaW5wdXQtZ3JvdXAtdGV4dCB7IGNvbG9yOiNkYzM1NDU7IH0KLyoqIC9jc3MvanF1ZXJ5LmRhdGV0aW1lcGlja2VyLmNzcyAqKi8KLnhkc29mdF9kYXRldGltZXBpY2tlcntib3gtc2hhZG93OjAgNXB4IDE1cHggLTVweCByZ2JhKDAsMCwwLDAuNTA2KTtiYWNrZ3JvdW5kOiNmZmY7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgI2JiYjtib3JkZXItbGVmdDoxcHggc29saWQgI2NjYztib3JkZXItcmlnaHQ6MXB4IHNvbGlkICNjY2M7Ym9yZGVyLXRvcDoxcHggc29saWQgI2NjYztjb2xvcjojMzMzO2ZvbnQtZmFtaWx5OiJIZWx2ZXRpY2EgTmV1ZSIsSGVsdmV0aWNhLEFyaWFsLHNhbnMtc2VyaWY7cGFkZGluZzo4cHg7cGFkZGluZy1sZWZ0OjA7cGFkZGluZy10b3A6MnB4O3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTAwMDAyMTstbW96LWJveC1zaXppbmc6Ym9yZGVyLWJveDtib3gtc2l6aW5nOmJvcmRlci1ib3g7ZGlzcGxheTpub25lfS54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIgaWZyYW1le3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MDt0b3A6MDt3aWR0aDo3NXB4O2hlaWdodDoyMTBweDtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O2JvcmRlcjowfS54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIgYnV0dG9ue2JvcmRlcjpub25lICFpbXBvcnRhbnR9Lnhkc29mdF9ub3NlbGVjdHstd2Via2l0LXRvdWNoLWNhbGxvdXQ6bm9uZTstd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7LWtodG1sLXVzZXItc2VsZWN0Om5vbmU7LW1vei11c2VyLXNlbGVjdDpub25lOy1tcy11c2VyLXNlbGVjdDpub25lOy1vLXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZX0ueGRzb2Z0X25vc2VsZWN0OjpzZWxlY3Rpb257YmFja2dyb3VuZDp0cmFuc3BhcmVudH0ueGRzb2Z0X25vc2VsZWN0OjotbW96LXNlbGVjdGlvbntiYWNrZ3JvdW5kOnRyYW5zcGFyZW50fS54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIueGRzb2Z0X2lubGluZXtkaXNwbGF5OmlubGluZS1ibG9jaztwb3NpdGlvbjpzdGF0aWM7Ym94LXNoYWRvdzpub25lfS54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIgKnstbW96LWJveC1zaXppbmc6Ym9yZGVyLWJveDtib3gtc2l6aW5nOmJvcmRlci1ib3g7cGFkZGluZzowO21hcmdpbjowfS54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIgLnhkc29mdF9kYXRlcGlja2VyLC54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIgLnhkc29mdF90aW1lcGlja2Vye2Rpc3BsYXk6bm9uZX0ueGRzb2Z0X2RhdGV0aW1lcGlja2VyIC54ZHNvZnRfZGF0ZXBpY2tlci5hY3RpdmUsLnhkc29mdF9kYXRldGltZXBpY2tlciAueGRzb2Z0X3RpbWVwaWNrZXIuYWN0aXZle2Rpc3BsYXk6YmxvY2t9Lnhkc29mdF9kYXRldGltZXBpY2tlciAueGRzb2Z0X2RhdGVwaWNrZXJ7d2lkdGg6MjI0cHg7ZmxvYXQ6bGVmdDttYXJnaW4tbGVmdDo4cHh9Lnhkc29mdF9kYXRldGltZXBpY2tlci54ZHNvZnRfc2hvd3dlZWtzIC54ZHNvZnRfZGF0ZXBpY2tlcnt3aWR0aDoyNTZweH0ueGRzb2Z0X2RhdGV0aW1lcGlja2VyIC54ZHNvZnRfdGltZXBpY2tlcnt3aWR0aDo1OHB4O2Zsb2F0OmxlZnQ7dGV4dC1hbGlnbjpjZW50ZXI7bWFyZ2luLWxlZnQ6OHB4O21hcmdpbi10b3A6MH0ueGRzb2Z0X2RhdGV0aW1lcGlja2VyIC54ZHNvZnRfZGF0ZXBpY2tlci5hY3RpdmUrLnhkc29mdF90aW1lcGlja2Vye21hcmdpbi10b3A6OHB4O21hcmdpbi1ib3R0b206M3B4fS54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIgLnhkc29mdF9tb3VudGhwaWNrZXJ7cG9zaXRpb246cmVsYXRpdmU7dGV4dC1hbGlnbjpjZW50ZXJ9Lnhkc29mdF9kYXRldGltZXBpY2tlciAueGRzb2Z0X2xhYmVsIGksLnhkc29mdF9kYXRldGltZXBpY2tlciAueGRzb2Z0X3ByZXYsLnhkc29mdF9kYXRldGltZXBpY2tlciAueGRzb2Z0X25leHQsLnhkc29mdF9kYXRldGltZXBpY2tlciAueGRzb2Z0X3RvZGF5X2J1dHRvbntiYWNrZ3JvdW5kLWltYWdlOnVybChkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUdRQUFBQWVDQVlBQUFEYVc3dnpBQUFBR1hSRldIUlRiMlowZDJGeVpRQkJaRzlpWlNCSmJXRm5aVkpsWVdSNWNjbGxQQUFBQXlKcFZGaDBXRTFNT21OdmJTNWhaRzlpWlM1NGJYQUFBQUFBQUR3L2VIQmhZMnRsZENCaVpXZHBiajBpNzd1L0lpQnBaRDBpVnpWTk1FMXdRMlZvYVVoNmNtVlRlazVVWTNwcll6bGtJajgrSUR4NE9uaHRjRzFsZEdFZ2VHMXNibk02ZUQwaVlXUnZZbVU2Ym5NNmJXVjBZUzhpSUhnNmVHMXdkR3M5SWtGa2IySmxJRmhOVUNCRGIzSmxJRFV1TXkxak1ERXhJRFkyTGpFME5UWTJNU3dnTWpBeE1pOHdNaTh3TmkweE5EbzFOam95TnlBZ0lDQWdJQ0FnSWo0Z1BISmtaanBTUkVZZ2VHMXNibk02Y21SbVBTSm9kSFJ3T2k4dmQzZDNMbmN6TG05eVp5OHhPVGs1THpBeUx6SXlMWEprWmkxemVXNTBZWGd0Ym5NaklqNGdQSEprWmpwRVpYTmpjbWx3ZEdsdmJpQnlaR1k2WVdKdmRYUTlJaUlnZUcxc2JuTTZlRzF3UFNKb2RIUndPaTh2Ym5NdVlXUnZZbVV1WTI5dEwzaGhjQzh4TGpBdklpQjRiV3h1Y3pwNGJYQk5UVDBpYUhSMGNEb3ZMMjV6TG1Ga2IySmxMbU52YlM5NFlYQXZNUzR3TDIxdEx5SWdlRzFzYm5NNmMzUlNaV1k5SW1oMGRIQTZMeTl1Y3k1aFpHOWlaUzVqYjIwdmVHRndMekV1TUM5elZIbHdaUzlTWlhOdmRYSmpaVkpsWmlNaUlIaHRjRHBEY21WaGRHOXlWRzl2YkQwaVFXUnZZbVVnVUdodmRHOXphRzl3SUVOVE5pQW9WMmx1Wkc5M2N5a2lJSGh0Y0UxTk9rbHVjM1JoYm1ObFNVUTlJbmh0Y0M1cGFXUTZRME5CUmpJMU5qTTBNMFV3TVRGRk5EazROa0ZHTXpKRlFrUXpRakV3UlVJaUlIaHRjRTFOT2tSdlkzVnRaVzUwU1VROUluaHRjQzVrYVdRNlEwTkJSakkxTmpRME0wVXdNVEZGTkRrNE5rRkdNekpGUWtRelFqRXdSVUlpUGlBOGVHMXdUVTA2UkdWeWFYWmxaRVp5YjIwZ2MzUlNaV1k2YVc1emRHRnVZMlZKUkQwaWVHMXdMbWxwWkRwRFEwRkdNalUyTVRRelJUQXhNVVUwT1RnMlFVWXpNa1ZDUkROQ01UQkZRaUlnYzNSU1pXWTZaRzlqZFcxbGJuUkpSRDBpZUcxd0xtUnBaRHBEUTBGR01qVTJNalF6UlRBeE1VVTBPVGcyUVVZek1rVkNSRE5DTVRCRlFpSXZQaUE4TDNKa1pqcEVaWE5qY21sd2RHbHZiajRnUEM5eVpHWTZVa1JHUGlBOEwzZzZlRzF3YldWMFlUNGdQRDk0Y0dGamEyVjBJR1Z1WkQwaWNpSS9Qb05FUDU0QUFBSU9TVVJCVkhqYTdKcTlUc013RU1jeHJaRDRXcEJZZUtVQ2Ura1RNQ0FDSFpoNEJGZkhPL0FBSUhaR0ZoWWtCQnNTRXF4c0xDQWdYS2hiWFlPVHhoOXBmSlZQK3F1dG5aNXMvNUx6Mlk1STAzUWhXamkyR0ljZ0Fva1dnZkN4TnZjT0NDR0txaVNxaFVwMGxhSE9uZTA1dmRFeUdNZmtkeEpEVmpnd0RsRVFnWVFCZ3grVUxKYVdTWFhTNnIvRVI1RkJWUjhWZkdmdFRLY0lUTnMrYTFYcGNGb0V4UkVJREYxNEFWSUZ4Z1FVUytoNTIwY2R1ZDZ3TmtDMFVCdzZCQ08vSG9DWXdCaEQ4UUNrUS94MW13RHlENHBsaDRENkREVjBUQUd5bzRIY2F3TElCQlNMRGtIZUgwTWcyeVZQM2w0VFFNWlFERHNFT2wvTWdIUXFoTU51RTBEK29CaDBDSXI4TUFLeWF6Qkg5V3lCdUt4RFdnYlhmak5mMzJUWjFLV20vQXAxb1NrL1I1M1V0UTV4VGgzTFVsTW1UOGd0Nmc1MVE5cCtTb2J4Z0pRL3Ftc2ZaaFd5d0dGU2wweUJqQ0xKQ01nWGFpbDNiNytydW1kVkoyWVJzczRjTityNnFBSERrUFdqUGpkSkNGNG45Um1BRC9WOUEvV3A0TlFhc3NEandsQjZYQmlDeGNKUVdtWlpiOFRIRmlsZnkvbGZyVHZMZ2hxMlRxVEhyUk1US05KMHNJaGRvMTVSVCtScHlXd0ZkWTk2VVovTGRRS0JHamNYcGNjMUFsU0ZFZkxtb3VEKzFrbnV4QkRVVnJ2T0Jtb09DL3JFY043T1F4S1ZlSlRDaUFkVXpVSmhBMk9lejlRVGtwNzJPVFZjeERjWFk4aUtOa3hHQUpYbUpDT1F3T2E2ZGh5WHNPYTZYd0VHQUtkZWI1RVQzclFkQUFBQUFFbEZUa1N1UW1DQyl9Lnhkc29mdF9kYXRldGltZXBpY2tlciAueGRzb2Z0X2xhYmVsIGl7b3BhY2l0eTouNTtiYWNrZ3JvdW5kLXBvc2l0aW9uOi05MnB4IC0xOXB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrO3dpZHRoOjlweDtoZWlnaHQ6MjBweDt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9Lnhkc29mdF9kYXRldGltZXBpY2tlciAueGRzb2Z0X3ByZXZ7ZmxvYXQ6bGVmdDtiYWNrZ3JvdW5kLXBvc2l0aW9uOi0yMHB4IDB9Lnhkc29mdF9kYXRldGltZXBpY2tlciAueGRzb2Z0X3RvZGF5X2J1dHRvbntmbG9hdDpsZWZ0O2JhY2tncm91bmQtcG9zaXRpb246LTcwcHggMDttYXJnaW4tbGVmdDo1cHh9Lnhkc29mdF9kYXRldGltZXBpY2tlciAueGRzb2Z0X25leHR7ZmxvYXQ6cmlnaHQ7YmFja2dyb3VuZC1wb3NpdGlvbjowIDB9Lnhkc29mdF9kYXRldGltZXBpY2tlciAueGRzb2Z0X25leHQsLnhkc29mdF9kYXRldGltZXBpY2tlciAueGRzb2Z0X3ByZXYsLnhkc29mdF9kYXRldGltZXBpY2tlciAueGRzb2Z0X3RvZGF5X2J1dHRvbntiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2JhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDtib3JkZXI6MCBub25lO2N1cnNvcjpwb2ludGVyO2Rpc3BsYXk6YmxvY2s7aGVpZ2h0OjMwcHg7b3BhY2l0eTouNTstbXMtZmlsdGVyOiJhbHBoYShvcGFjaXR5PTUwKSI7b3V0bGluZTptZWRpdW0gbm9uZTtvdmVyZmxvdzpoaWRkZW47cGFkZGluZzowO3Bvc2l0aW9uOnJlbGF0aXZlO3RleHQtaW5kZW50OjEwMCU7d2hpdGUtc3BhY2U6bm93cmFwO3dpZHRoOjIwcHg7bWluLXdpZHRoOjB9Lnhkc29mdF9kYXRldGltZXBpY2tlciAueGRzb2Z0X3RpbWVwaWNrZXIgLnhkc29mdF9wcmV2LC54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIgLnhkc29mdF90aW1lcGlja2VyIC54ZHNvZnRfbmV4dHtmbG9hdDpub25lO2JhY2tncm91bmQtcG9zaXRpb246LTQwcHggLTE1cHg7aGVpZ2h0OjE1cHg7d2lkdGg6MzBweDtkaXNwbGF5OmJsb2NrO21hcmdpbi1sZWZ0OjE0cHg7bWFyZ2luLXRvcDo3cHh9Lnhkc29mdF9kYXRldGltZXBpY2tlciAueGRzb2Z0X3RpbWVwaWNrZXIgLnhkc29mdF9wcmV2e2JhY2tncm91bmQtcG9zaXRpb246LTQwcHggMDttYXJnaW4tYm90dG9tOjdweDttYXJnaW4tdG9wOjB9Lnhkc29mdF9kYXRldGltZXBpY2tlciAueGRzb2Z0X3RpbWVwaWNrZXIgLnhkc29mdF90aW1lX2JveHtoZWlnaHQ6MTUxcHg7b3ZlcmZsb3c6aGlkZGVuO2JvcmRlci1ib3R0b206MXB4IHNvbGlkICNkZGR9Lnhkc29mdF9kYXRldGltZXBpY2tlciAueGRzb2Z0X3RpbWVwaWNrZXIgLnhkc29mdF90aW1lX2JveD5kaXY+ZGl2e2JhY2tncm91bmQ6I2Y1ZjVmNTtib3JkZXItdG9wOjFweCBzb2xpZCAjZGRkO2NvbG9yOiM2NjY7Zm9udC1zaXplOjAuNzVyZW0gO3RleHQtYWxpZ246Y2VudGVyO2JvcmRlci1jb2xsYXBzZTpjb2xsYXBzZTtjdXJzb3I6cG9pbnRlcjtib3JkZXItYm90dG9tLXdpZHRoOjA7aGVpZ2h0OjI1cHg7bGluZS1oZWlnaHQ6MjVweH0ueGRzb2Z0X2RhdGV0aW1lcGlja2VyIC54ZHNvZnRfdGltZXBpY2tlciAueGRzb2Z0X3RpbWVfYm94PmRpdj5kaXY6Zmlyc3QtY2hpbGR7Ym9yZGVyLXRvcC13aWR0aDowfS54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIgLnhkc29mdF90b2RheV9idXR0b246aG92ZXIsLnhkc29mdF9kYXRldGltZXBpY2tlciAueGRzb2Z0X25leHQ6aG92ZXIsLnhkc29mdF9kYXRldGltZXBpY2tlciAueGRzb2Z0X3ByZXY6aG92ZXJ7b3BhY2l0eToxOy1tcy1maWx0ZXI6ImFscGhhKG9wYWNpdHk9MTAwKSJ9Lnhkc29mdF9kYXRldGltZXBpY2tlciAueGRzb2Z0X2xhYmVse2Rpc3BsYXk6aW5saW5lO3Bvc2l0aW9uOnJlbGF0aXZlO3otaW5kZXg6OTk5OTttYXJnaW46MDtwYWRkaW5nOjVweCAzcHg7Zm9udC1zaXplOjAuODc1cmVtIDtsaW5lLWhlaWdodDoyMHB4O2ZvbnQtd2VpZ2h0OmJvbGQ7YmFja2dyb3VuZC1jb2xvcjojZmZmO2Zsb2F0OmxlZnQ7d2lkdGg6MTgycHg7dGV4dC1hbGlnbjpjZW50ZXI7Y3Vyc29yOnBvaW50ZXJ9Lnhkc29mdF9kYXRldGltZXBpY2tlciAueGRzb2Z0X2xhYmVsOmhvdmVyPnNwYW57dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZX0ueGRzb2Z0X2RhdGV0aW1lcGlja2VyIC54ZHNvZnRfbGFiZWw6aG92ZXIgaXtvcGFjaXR5OjEuMH0ueGRzb2Z0X2RhdGV0aW1lcGlja2VyIC54ZHNvZnRfbGFiZWw+Lnhkc29mdF9zZWxlY3R7Ym9yZGVyOjFweCBzb2xpZCAjY2NjO3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjA7dG9wOjMwcHg7ei1pbmRleDoxMDE7ZGlzcGxheTpub25lO2JhY2tncm91bmQ6I2ZmZjttYXgtaGVpZ2h0OjE2MHB4O292ZXJmbG93LXk6aGlkZGVufS54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIgLnhkc29mdF9sYWJlbD4ueGRzb2Z0X3NlbGVjdC54ZHNvZnRfbW9udGhzZWxlY3R7cmlnaHQ6LTdweH0ueGRzb2Z0X2RhdGV0aW1lcGlja2VyIC54ZHNvZnRfbGFiZWw+Lnhkc29mdF9zZWxlY3QueGRzb2Z0X3llYXJzZWxlY3R7cmlnaHQ6MnB4fS54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIgLnhkc29mdF9sYWJlbD4ueGRzb2Z0X3NlbGVjdD5kaXY+Lnhkc29mdF9vcHRpb246aG92ZXJ7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kOiMzMzN9Lnhkc29mdF9kYXRldGltZXBpY2tlciAueGRzb2Z0X2xhYmVsPi54ZHNvZnRfc2VsZWN0PmRpdj4ueGRzb2Z0X29wdGlvbntwYWRkaW5nOjJweCAxMHB4IDJweCA1cHg7dGV4dC1kZWNvcmF0aW9uOm5vbmUgIWltcG9ydGFudH0ueGRzb2Z0X2RhdGV0aW1lcGlja2VyIC54ZHNvZnRfbGFiZWw+Lnhkc29mdF9zZWxlY3Q+ZGl2Pi54ZHNvZnRfb3B0aW9uLnhkc29mdF9jdXJyZW50e2JhY2tncm91bmQ6IzNhZjtib3gtc2hhZG93OiMxNzhmZTUgMCAxcHggM3B4IDAgaW5zZXQ7Y29sb3I6I2ZmZjtmb250LXdlaWdodDo3MDB9Lnhkc29mdF9kYXRldGltZXBpY2tlciAueGRzb2Z0X21vbnRoe3dpZHRoOjEwMHB4O3RleHQtYWxpZ246cmlnaHR9Lnhkc29mdF9kYXRldGltZXBpY2tlciAueGRzb2Z0X2NhbGVuZGFye2NsZWFyOmJvdGh9Lnhkc29mdF9kYXRldGltZXBpY2tlciAueGRzb2Z0X3llYXJ7d2lkdGg6NDhweDttYXJnaW4tbGVmdDo1cHh9Lnhkc29mdF9kYXRldGltZXBpY2tlciAueGRzb2Z0X2NhbGVuZGFyIHRhYmxle2JvcmRlci1jb2xsYXBzZTpjb2xsYXBzZTt3aWR0aDoxMDAlfS54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIgLnhkc29mdF9jYWxlbmRhciB0ZD5kaXZ7cGFkZGluZy1yaWdodDo1cHh9Lnhkc29mdF9kYXRldGltZXBpY2tlciAueGRzb2Z0X2NhbGVuZGFyIHRoe2hlaWdodDoyNXB4fS54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIgLnhkc29mdF9jYWxlbmRhciB0ZCwueGRzb2Z0X2RhdGV0aW1lcGlja2VyIC54ZHNvZnRfY2FsZW5kYXIgdGh7d2lkdGg6MTQuMjg1NzE0MiU7YmFja2dyb3VuZDojZjVmNWY1O2JvcmRlcjoxcHggc29saWQgI2RkZDtjb2xvcjojNjY2O2ZvbnQtc2l6ZTowLjc1cmVtIDt0ZXh0LWFsaWduOnJpZ2h0O3ZlcnRpY2FsLWFsaWduOm1pZGRsZTtwYWRkaW5nOjA7Ym9yZGVyLWNvbGxhcHNlOmNvbGxhcHNlO2N1cnNvcjpwb2ludGVyO2hlaWdodDoyNXB4fS54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIueGRzb2Z0X3Nob3d3ZWVrcyAueGRzb2Z0X2NhbGVuZGFyIHRkLC54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIueGRzb2Z0X3Nob3d3ZWVrcyAueGRzb2Z0X2NhbGVuZGFyIHRoe3dpZHRoOjEyLjUlfS54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIgLnhkc29mdF9jYWxlbmRhciB0aHtiYWNrZ3JvdW5kOiNmMWYxZjF9Lnhkc29mdF9kYXRldGltZXBpY2tlciAueGRzb2Z0X2NhbGVuZGFyIHRkLnhkc29mdF90b2RheXtjb2xvcjojM2FmfS54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIgLnhkc29mdF9jYWxlbmRhciB0ZC54ZHNvZnRfaGlnaGxpZ2h0ZWRfZGVmYXVsdHtiYWNrZ3JvdW5kOiNmZmU5ZDI7Ym94LXNoYWRvdzojZmZiODcxIDAgMXB4IDRweCAwIGluc2V0O2NvbG9yOiMwMDB9Lnhkc29mdF9kYXRldGltZXBpY2tlciAueGRzb2Z0X2NhbGVuZGFyIHRkLnhkc29mdF9oaWdobGlnaHRlZF9taW50e2JhY2tncm91bmQ6I2MxZmZjOTtib3gtc2hhZG93OiMwMGRkMWMgMCAxcHggNHB4IDAgaW5zZXQ7Y29sb3I6IzAwMH0ueGRzb2Z0X2RhdGV0aW1lcGlja2VyIC54ZHNvZnRfY2FsZW5kYXIgdGQueGRzb2Z0X2RlZmF1bHQsLnhkc29mdF9kYXRldGltZXBpY2tlciAueGRzb2Z0X2NhbGVuZGFyIHRkLnhkc29mdF9jdXJyZW50LC54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIgLnhkc29mdF90aW1lcGlja2VyIC54ZHNvZnRfdGltZV9ib3g+ZGl2PmRpdi54ZHNvZnRfY3VycmVudHtiYWNrZ3JvdW5kOmdyZXk7Ym94LXNoYWRvdzpyZ2JhKDI5LDMwLDMxLDAuNykgMCAxcHggM3B4IDAgaW5zZXQ7Y29sb3I6I2ZmZjtmb250LXdlaWdodDo3MDB9Lnhkc29mdF9kYXRldGltZXBpY2tlciAueGRzb2Z0X2NhbGVuZGFyIHRkLnhkc29mdF9vdGhlcl9tb250aCwueGRzb2Z0X2RhdGV0aW1lcGlja2VyIC54ZHNvZnRfY2FsZW5kYXIgdGQueGRzb2Z0X2Rpc2FibGVkLC54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIgLnhkc29mdF90aW1lX2JveD5kaXY+ZGl2Lnhkc29mdF9kaXNhYmxlZHtvcGFjaXR5Oi41Oy1tcy1maWx0ZXI6ImFscGhhKG9wYWNpdHk9NTApIjtjdXJzb3I6ZGVmYXVsdH0ueGRzb2Z0X2RhdGV0aW1lcGlja2VyIC54ZHNvZnRfY2FsZW5kYXIgdGQueGRzb2Z0X290aGVyX21vbnRoLnhkc29mdF9kaXNhYmxlZHtvcGFjaXR5Oi4yOy1tcy1maWx0ZXI6ImFscGhhKG9wYWNpdHk9MjApIn0ueGRzb2Z0X2RhdGV0aW1lcGlja2VyIC54ZHNvZnRfY2FsZW5kYXIgdGQ6aG92ZXIsLnhkc29mdF9kYXRldGltZXBpY2tlciAueGRzb2Z0X3RpbWVwaWNrZXIgLnhkc29mdF90aW1lX2JveD5kaXY+ZGl2OmhvdmVye2NvbG9yOiNmZmYgIWltcG9ydGFudDtiYWNrZ3JvdW5kOiMzMzMgIWltcG9ydGFudDtib3gtc2hhZG93Om5vbmUgIWltcG9ydGFudH0ueGRzb2Z0X2RhdGV0aW1lcGlja2VyIC54ZHNvZnRfY2FsZW5kYXIgdGQueGRzb2Z0X2N1cnJlbnQueGRzb2Z0X2Rpc2FibGVkOmhvdmVyLC54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIgLnhkc29mdF90aW1lcGlja2VyIC54ZHNvZnRfdGltZV9ib3g+ZGl2PmRpdi54ZHNvZnRfY3VycmVudC54ZHNvZnRfZGlzYWJsZWQ6aG92ZXJ7YmFja2dyb3VuZDojM2FmICFpbXBvcnRhbnQ7Ym94LXNoYWRvdzojMTc4ZmU1IDAgMXB4IDNweCAwIGluc2V0ICFpbXBvcnRhbnQ7Y29sb3I6I2ZmZiAhaW1wb3J0YW50fS54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIgLnhkc29mdF9jYWxlbmRhciB0ZC54ZHNvZnRfZGlzYWJsZWQ6aG92ZXIsLnhkc29mdF9kYXRldGltZXBpY2tlciAueGRzb2Z0X3RpbWVwaWNrZXIgLnhkc29mdF90aW1lX2JveD5kaXY+ZGl2Lnhkc29mdF9kaXNhYmxlZDpob3Zlcntjb2xvcjppbmhlcml0ICFpbXBvcnRhbnQ7YmFja2dyb3VuZDppbmhlcml0ICFpbXBvcnRhbnQ7Ym94LXNoYWRvdzppbmhlcml0ICFpbXBvcnRhbnR9Lnhkc29mdF9kYXRldGltZXBpY2tlciAueGRzb2Z0X2NhbGVuZGFyIHRoe2ZvbnQtd2VpZ2h0OjcwMDt0ZXh0LWFsaWduOmNlbnRlcjtjb2xvcjojOTk5O2N1cnNvcjpkZWZhdWx0fS54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIgLnhkc29mdF9jb3B5cmlnaHR7Y29sb3I6I2NjYyAhaW1wb3J0YW50O2ZvbnQtc2l6ZTowLjYyNXJlbSA7Y2xlYXI6Ym90aDtmbG9hdDpub25lO21hcmdpbi1sZWZ0OjhweH0ueGRzb2Z0X2RhdGV0aW1lcGlja2VyIC54ZHNvZnRfY29weXJpZ2h0IGF7Y29sb3I6I2VlZSAhaW1wb3J0YW50fS54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIgLnhkc29mdF9jb3B5cmlnaHQgYTpob3Zlcntjb2xvcjojYWFhICFpbXBvcnRhbnR9Lnhkc29mdF90aW1lX2JveHtwb3NpdGlvbjpyZWxhdGl2ZTtib3JkZXI6MXB4IHNvbGlkICNjY2N9Lnhkc29mdF9zY3JvbGxiYXI+Lnhkc29mdF9zY3JvbGxlcntiYWNrZ3JvdW5kOiNjY2MgIWltcG9ydGFudDtoZWlnaHQ6MjBweDtib3JkZXItcmFkaXVzOjNweH0ueGRzb2Z0X3Njcm9sbGJhcntwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDo3cHg7cmlnaHQ6MDt0b3A6MDtib3R0b206MDtjdXJzb3I6cG9pbnRlcn0ueGRzb2Z0X3Njcm9sbGVyX2JveHtwb3NpdGlvbjpyZWxhdGl2ZX0ueGRzb2Z0X2RhdGV0aW1lcGlja2VyLnhkc29mdF9kYXJre2JveC1zaGFkb3c6MCA1cHggMTVweCAtNXB4IHJnYmEoMjU1LDI1NSwyNTUsMC41MDYpO2JhY2tncm91bmQ6IzAwMDtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjNDQ0O2JvcmRlci1sZWZ0OjFweCBzb2xpZCAjMzMzO2JvcmRlci1yaWdodDoxcHggc29saWQgIzMzMztib3JkZXItdG9wOjFweCBzb2xpZCAjMzMzO2NvbG9yOiNjY2N9Lnhkc29mdF9kYXRldGltZXBpY2tlci54ZHNvZnRfZGFyayAueGRzb2Z0X3RpbWVwaWNrZXIgLnhkc29mdF90aW1lX2JveHtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjMjIyfS54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIueGRzb2Z0X2RhcmsgLnhkc29mdF90aW1lcGlja2VyIC54ZHNvZnRfdGltZV9ib3g+ZGl2PmRpdntiYWNrZ3JvdW5kOiMwYTBhMGE7Ym9yZGVyLXRvcDoxcHggc29saWQgIzIyMjtjb2xvcjojOTk5fS54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIueGRzb2Z0X2RhcmsgLnhkc29mdF9sYWJlbHtiYWNrZ3JvdW5kLWNvbG9yOiMwMDB9Lnhkc29mdF9kYXRldGltZXBpY2tlci54ZHNvZnRfZGFyayAueGRzb2Z0X2xhYmVsPi54ZHNvZnRfc2VsZWN0e2JvcmRlcjoxcHggc29saWQgIzMzMztiYWNrZ3JvdW5kOiMwMDB9Lnhkc29mdF9kYXRldGltZXBpY2tlci54ZHNvZnRfZGFyayAueGRzb2Z0X2xhYmVsPi54ZHNvZnRfc2VsZWN0PmRpdj4ueGRzb2Z0X29wdGlvbjpob3Zlcntjb2xvcjojMDAwO2JhY2tncm91bmQ6IzAwN2ZmZn0ueGRzb2Z0X2RhdGV0aW1lcGlja2VyLnhkc29mdF9kYXJrIC54ZHNvZnRfbGFiZWw+Lnhkc29mdF9zZWxlY3Q+ZGl2Pi54ZHNvZnRfb3B0aW9uLnhkc29mdF9jdXJyZW50e2JhY2tncm91bmQ6I2M1MDtib3gtc2hhZG93OiNiMDNlMDAgMCAxcHggM3B4IDAgaW5zZXQ7Y29sb3I6IzAwMH0ueGRzb2Z0X2RhdGV0aW1lcGlja2VyLnhkc29mdF9kYXJrIC54ZHNvZnRfbGFiZWwgaSwueGRzb2Z0X2RhdGV0aW1lcGlja2VyLnhkc29mdF9kYXJrIC54ZHNvZnRfcHJldiwueGRzb2Z0X2RhdGV0aW1lcGlja2VyLnhkc29mdF9kYXJrIC54ZHNvZnRfbmV4dCwueGRzb2Z0X2RhdGV0aW1lcGlja2VyLnhkc29mdF9kYXJrIC54ZHNvZnRfdG9kYXlfYnV0dG9ue2JhY2tncm91bmQtaW1hZ2U6dXJsKGRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBR1FBQUFBZUNBWUFBQURhVzd2ekFBQUFHWFJGV0hSVGIyWjBkMkZ5WlFCQlpHOWlaU0JKYldGblpWSmxZV1I1Y2NsbFBBQUFBeUpwVkZoMFdFMU1PbU52YlM1aFpHOWlaUzU0YlhBQUFBQUFBRHcvZUhCaFkydGxkQ0JpWldkcGJqMGk3N3UvSWlCcFpEMGlWelZOTUUxd1EyVm9hVWg2Y21WVGVrNVVZM3ByWXpsa0lqOCtJRHg0T25odGNHMWxkR0VnZUcxc2JuTTZlRDBpWVdSdlltVTZibk02YldWMFlTOGlJSGc2ZUcxd2RHczlJa0ZrYjJKbElGaE5VQ0JEYjNKbElEVXVNeTFqTURFeElEWTJMakUwTlRZMk1Td2dNakF4TWk4d01pOHdOaTB4TkRvMU5qb3lOeUFnSUNBZ0lDQWdJajRnUEhKa1pqcFNSRVlnZUcxc2JuTTZjbVJtUFNKb2RIUndPaTh2ZDNkM0xuY3pMbTl5Wnk4eE9UazVMekF5THpJeUxYSmtaaTF6ZVc1MFlYZ3Ribk1qSWo0Z1BISmtaanBFWlhOamNtbHdkR2x2YmlCeVpHWTZZV0p2ZFhROUlpSWdlRzFzYm5NNmVHMXdQU0pvZEhSd09pOHZibk11WVdSdlltVXVZMjl0TDNoaGNDOHhMakF2SWlCNGJXeHVjenA0YlhCTlRUMGlhSFIwY0RvdkwyNXpMbUZrYjJKbExtTnZiUzk0WVhBdk1TNHdMMjF0THlJZ2VHMXNibk02YzNSU1pXWTlJbWgwZEhBNkx5OXVjeTVoWkc5aVpTNWpiMjB2ZUdGd0x6RXVNQzl6Vkhsd1pTOVNaWE52ZFhKalpWSmxaaU1pSUhodGNEcERjbVZoZEc5eVZHOXZiRDBpUVdSdlltVWdVR2h2ZEc5emFHOXdJRU5UTmlBb1YybHVaRzkzY3lraUlIaHRjRTFOT2tsdWMzUmhibU5sU1VROUluaHRjQzVwYVdRNlFVRXhRVVV6T1RBME0wVXlNVEZGTkRsQk0wRkZRVEpFTlRFeFJEVkJPRFlpSUhodGNFMU5Pa1J2WTNWdFpXNTBTVVE5SW5odGNDNWthV1E2UVVFeFFVVXpPVEUwTTBVeU1URkZORGxCTTBGRlFUSkVOVEV4UkRWQk9EWWlQaUE4ZUcxd1RVMDZSR1Z5YVhabFpFWnliMjBnYzNSU1pXWTZhVzV6ZEdGdVkyVkpSRDBpZUcxd0xtbHBaRHBCUVRGQlJUTTRSVFF6UlRJeE1VVTBPVUV6UVVWQk1rUTFNVEZFTlVFNE5pSWdjM1JTWldZNlpHOWpkVzFsYm5SSlJEMGllRzF3TG1ScFpEcEJRVEZCUlRNNFJqUXpSVEl4TVVVME9VRXpRVVZCTWtRMU1URkVOVUU0TmlJdlBpQThMM0prWmpwRVpYTmpjbWx3ZEdsdmJqNGdQQzl5WkdZNlVrUkdQaUE4TDNnNmVHMXdiV1YwWVQ0Z1BEOTRjR0ZqYTJWMElHVnVaRDBpY2lJL1BwMFZ4R0VBQUFJQVNVUkJWSGphN0pyTlNnTXhFTWVidGdoKzNNU0xyMVQxWG4yQ0hvU0tCMDgrUW1SOEJ4OUE4ZTdSaXhkQjlDS0NvTmRleEl1Z3hGbEphN3JOWm5lVGJMSXBNL0NuTkxzZE12TmpNOGwwbVJDaVE5WWU2MUlLQ0FnWkFVbkgrbVUzTU1aYUhZQ2hCbkpVRHpXT0ZaZFZmYzUrWkZMYnJXRGVYUHdieElxckxMZmFlUzBoRUJWR0lSUUNFaVpvSFF3dGxHU0J5Q0NkWUJsOGc4ZWdUVEFXb0tRTVJCUkJjWnhZbGh6aEtlZ3FNT2FnZUVyc0NIVmtrM2hYSUZvb0RnSEIxS2tISUhWZ3pLQjRBREpRL0ExakFGbUFZaGtRcUE1VE9CdG9jcktyZ1h3UUE4Z2NGSXVBSU84c1FTQTdoaWR2UHdhUUdaU2FBWUhPVVdKQUJoV1d3MkVNSUg5UWFnUUVSVTRTQXJKWG8wWlpMMTh1dmF4ZWpYdC9FbTh4alZCWG12RnIxS1ZtL0FKMTB0UmUyWG5yYU5xYUp2S0UzS0h1VWJmSzFFK1ZIQjBxNDAveTNzZFFTeFk0RkhXZUtKQ3VuUDhVeURkcUpaZW5UM250VlY1aklZQ0FoMjB2VDdpb1A4dHBmNkUybGZFTXdFUmUrd2hWMU1IandaQjdQQmlDeGNHUVd3S1pLRDYybGZHTm5QLzFwb0ZBQTYwVDdyRjFVZ2NLZDJpZDNLRGVVUytvTFdWOERmV0FlcE9mcTAwQ2dRYWJpOXpqY2dKVllWRDdQVnpRVUFVR0FRa2JOSlRCSUNEaGd3WVRqRFlENlhlVzA4WktoK0E0cFlremVuT3hYVWJ2WmNXejdFOHlrUk1uSUhHWDFYUGwrMW0ydlBZcEwrMnFkYjhDREFBUmxLRkV6L1pWa0FBQUFBQkpSVTVFcmtKZ2dnPT0pfS54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIueGRzb2Z0X2RhcmsgLnhkc29mdF9jYWxlbmRhciB0ZCwueGRzb2Z0X2RhdGV0aW1lcGlja2VyLnhkc29mdF9kYXJrIC54ZHNvZnRfY2FsZW5kYXIgdGh7YmFja2dyb3VuZDojMGEwYTBhO2JvcmRlcjoxcHggc29saWQgIzIyMjtjb2xvcjojOTk5fS54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIueGRzb2Z0X2RhcmsgLnhkc29mdF9jYWxlbmRhciB0aHtiYWNrZ3JvdW5kOiMwZTBlMGV9Lnhkc29mdF9kYXRldGltZXBpY2tlci54ZHNvZnRfZGFyayAueGRzb2Z0X2NhbGVuZGFyIHRkLnhkc29mdF90b2RheXtjb2xvcjojYzUwfS54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIueGRzb2Z0X2RhcmsgLnhkc29mdF9jYWxlbmRhciB0ZC54ZHNvZnRfaGlnaGxpZ2h0ZWRfZGVmYXVsdHtiYWNrZ3JvdW5kOiNmZmU5ZDI7Ym94LXNoYWRvdzojZmZiODcxIDAgMXB4IDRweCAwIGluc2V0O2NvbG9yOiMwMDB9Lnhkc29mdF9kYXRldGltZXBpY2tlci54ZHNvZnRfZGFyayAueGRzb2Z0X2NhbGVuZGFyIHRkLnhkc29mdF9oaWdobGlnaHRlZF9taW50e2JhY2tncm91bmQ6I2MxZmZjOTtib3gtc2hhZG93OiMwMGRkMWMgMCAxcHggNHB4IDAgaW5zZXQ7Y29sb3I6IzAwMH0ueGRzb2Z0X2RhdGV0aW1lcGlja2VyLnhkc29mdF9kYXJrIC54ZHNvZnRfY2FsZW5kYXIgdGQueGRzb2Z0X2RlZmF1bHQsLnhkc29mdF9kYXRldGltZXBpY2tlci54ZHNvZnRfZGFyayAueGRzb2Z0X2NhbGVuZGFyIHRkLnhkc29mdF9jdXJyZW50LC54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIueGRzb2Z0X2RhcmsgLnhkc29mdF90aW1lcGlja2VyIC54ZHNvZnRfdGltZV9ib3g+ZGl2PmRpdi54ZHNvZnRfY3VycmVudHtiYWNrZ3JvdW5kOiNjNTA7Ym94LXNoYWRvdzojYjAzZTAwIDAgMXB4IDNweCAwIGluc2V0O2NvbG9yOiMwMDB9Lnhkc29mdF9kYXRldGltZXBpY2tlci54ZHNvZnRfZGFyayAueGRzb2Z0X2NhbGVuZGFyIHRkOmhvdmVyLC54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIueGRzb2Z0X2RhcmsgLnhkc29mdF90aW1lcGlja2VyIC54ZHNvZnRfdGltZV9ib3g+ZGl2PmRpdjpob3Zlcntjb2xvcjojMDAwICFpbXBvcnRhbnQ7YmFja2dyb3VuZDojMDA3ZmZmICFpbXBvcnRhbnR9Lnhkc29mdF9kYXRldGltZXBpY2tlci54ZHNvZnRfZGFyayAueGRzb2Z0X2NhbGVuZGFyIHRoe2NvbG9yOiM2NjZ9Lnhkc29mdF9kYXRldGltZXBpY2tlci54ZHNvZnRfZGFyayAueGRzb2Z0X2NvcHlyaWdodHtjb2xvcjojMzMzICFpbXBvcnRhbnR9Lnhkc29mdF9kYXRldGltZXBpY2tlci54ZHNvZnRfZGFyayAueGRzb2Z0X2NvcHlyaWdodCBhe2NvbG9yOiMxMTEgIWltcG9ydGFudH0ueGRzb2Z0X2RhdGV0aW1lcGlja2VyLnhkc29mdF9kYXJrIC54ZHNvZnRfY29weXJpZ2h0IGE6aG92ZXJ7Y29sb3I6IzU1NSAhaW1wb3J0YW50fS54ZHNvZnRfZGFyayAueGRzb2Z0X3RpbWVfYm94e2JvcmRlcjoxcHggc29saWQgIzMzM30ueGRzb2Z0X2RhcmsgLnhkc29mdF9zY3JvbGxiYXI+Lnhkc29mdF9zY3JvbGxlcntiYWNrZ3JvdW5kOiMzMzMgIWltcG9ydGFudH0ueGRzb2Z0X2RhdGV0aW1lcGlja2VyIC54ZHNvZnRfc2F2ZV9zZWxlY3RlZHtkaXNwbGF5OmJsb2NrO2JvcmRlcjoxcHggc29saWQgI2RkZCAhaW1wb3J0YW50O21hcmdpbi10b3A6NXB4O3dpZHRoOjEwMCU7Y29sb3I6IzQ1NDU1MTtmb250LXNpemU6MTNweH0ueGRzb2Z0X2RhdGV0aW1lcGlja2VyIC5ibHVlLWdyYWRpZW50LWJ1dHRvbntmb250LWZhbWlseToibXVzZW8tc2FucyIsIkJvb2sgQW50aXF1YSIsc2Fucy1zZXJpZjtmb250LXNpemU6MC43NXJlbSA7Zm9udC13ZWlnaHQ6MzAwO2NvbG9yOiM4Mjg3OGM7aGVpZ2h0OjI4cHg7cG9zaXRpb246cmVsYXRpdmU7cGFkZGluZzo0cHggMTdweCA0cHggMzNweDtib3JkZXI6MXB4IHNvbGlkICNkN2Q4ZGE7YmFja2dyb3VuZDotbW96LWxpbmVhci1ncmFkaWVudCh0b3AsI2ZmZiAwLCNmNGY4ZmEgNzMlKTtiYWNrZ3JvdW5kOi13ZWJraXQtZ3JhZGllbnQobGluZWFyLGxlZnQgdG9wLGxlZnQgYm90dG9tLGNvbG9yLXN0b3AoMCwjZmZmKSxjb2xvci1zdG9wKDczJSwjZjRmOGZhKSk7YmFja2dyb3VuZDotd2Via2l0LWxpbmVhci1ncmFkaWVudCh0b3AsI2ZmZiAwLCNmNGY4ZmEgNzMlKTtiYWNrZ3JvdW5kOi1vLWxpbmVhci1ncmFkaWVudCh0b3AsI2ZmZiAwLCNmNGY4ZmEgNzMlKTtiYWNrZ3JvdW5kOi1tcy1saW5lYXItZ3JhZGllbnQodG9wLCNmZmYgMCwjZjRmOGZhIDczJSk7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCNmZmYgMCwjZjRmOGZhIDczJSk7ZmlsdGVyOnByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudChzdGFydENvbG9yc3RyPScjZmZmJyxlbmRDb2xvcnN0cj0nI2Y0ZjhmYScsR3JhZGllbnRUeXBlPTApfS54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIgLmJsdWUtZ3JhZGllbnQtYnV0dG9uOmhvdmVyLC54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIgLmJsdWUtZ3JhZGllbnQtYnV0dG9uOmZvY3VzLC54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIgLmJsdWUtZ3JhZGllbnQtYnV0dG9uOmhvdmVyIHNwYW4sLnhkc29mdF9kYXRldGltZXBpY2tlciAuYmx1ZS1ncmFkaWVudC1idXR0b246Zm9jdXMgc3Bhbntjb2xvcjojNDU0NTUxO2JhY2tncm91bmQ6LW1vei1saW5lYXItZ3JhZGllbnQodG9wLCNmNGY4ZmEgMCwjRkZGIDczJSk7YmFja2dyb3VuZDotd2Via2l0LWdyYWRpZW50KGxpbmVhcixsZWZ0IHRvcCxsZWZ0IGJvdHRvbSxjb2xvci1zdG9wKDAsI2Y0ZjhmYSksY29sb3Itc3RvcCg3MyUsI0ZGRikpO2JhY2tncm91bmQ6LXdlYmtpdC1saW5lYXItZ3JhZGllbnQodG9wLCNmNGY4ZmEgMCwjRkZGIDczJSk7YmFja2dyb3VuZDotby1saW5lYXItZ3JhZGllbnQodG9wLCNmNGY4ZmEgMCwjRkZGIDczJSk7YmFja2dyb3VuZDotbXMtbGluZWFyLWdyYWRpZW50KHRvcCwjZjRmOGZhIDAsI0ZGRiA3MyUpO2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwjZjRmOGZhIDAsI0ZGRiA3MyUpO2ZpbHRlcjpwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoc3RhcnRDb2xvcnN0cj0nI2Y0ZjhmYScsZW5kQ29sb3JzdHI9JyNGRkYnLEdyYWRpZW50VHlwZT0wKX0ueGRzb2Z0X2Rpc2FibGVke2JhY2tncm91bmQtY29sb3I6cmVkO2NvbG9yOndoaXRlO29wYWNpdHk6MX0ueGRzb2Z0X2Rpc2FibGVke2JhY2tncm91bmQtY29sb3I6I2U4NDY0NiAhaW1wb3J0YW50O2NvbG9yOndoaXRlICFpbXBvcnRhbnR9Ci8qKiAvY3NzL2Zvcm1zL2Zvcm1zLnByZWxvYWQuY3NzICoqLwouZDJjZm9ybSB7IC0tbGFiZWwtcmVxdWlyZWQtc3ltYm9sOiIqIjsgLS1sYWJlbC1yZXF1aXJlZC1jb2xvcjojRkYwMDAwOyAtLWlucHV0LXBhZGRpbmc6dmFyKC0tcy0xKSB2YXIoLS1zMSk7IC0taW5wdXQtYmctY29sb3I6dmFyKC0td2hpdGUpOyAtLWlucHV0LWJvcmRlci1jb2xvcjp2YXIoLS1taWQtZ3JheSk7IC0taW5wdXQtcmFkaXVzOnZhcigtLXMtNik7IC0taW5wdXQtZm9udC1zaXplOnZhcigtLWZzMCk7IC0taW5wdXQtbGluZS1oZWlnaHQ6dmFyKC0tZnMyKTsgfSAuZDJjZm9ybSAqIHsgYm94LXNpemluZzpib3JkZXItYm94OyB9IC5kMmNmb3JtIGJveC1sYyB7IC0tc3BhY2U6dmFyKC0tcy00KTsgcGFkZGluZy1sZWZ0OjA7IHBhZGRpbmctcmlnaHQ6MDsgZGlzcGxheTpmbGV4OyBmbGV4LWRpcmVjdGlvbjpjb2x1bW47IGFsaWduLWl0ZW1zOmZsZXgtc3RhcnQ7IH0gLmQyY2Zvcm0tLXRoaW4gYm94LWxjIHsgLS1zcGFjZTp2YXIoLS1zLTkpOyB9IC5kMmNmb3JtLS1yb3cgc3RhY2stbGMgeyBmbGV4LWRpcmVjdGlvbjpyb3c7IGZsZXgtd3JhcDp3cmFwOyB9IC5kMmNmb3JtLS1yb3cgYm94LWxjIHsgcGFkZGluZy1yaWdodDp2YXIoLS1zcGFjZSk7IHBhZGRpbmctbGVmdDp2YXIoLS1zcGFjZSk7IH0gLmQyY2Zvcm0tLWhvcml6b250YWwgYm94LWxjIHsgZmxleC1kaXJlY3Rpb246cm93OyBhbGlnbi1pdGVtczpmbGV4LXN0YXJ0OyB9IC5kMmNmb3JtLS1ob3Jpem9udGFsIGJveC1sYyBsYWJlbCB7IG1pbi13aWR0aDoxMTVweDsgd2lkdGg6MzAlOyBwYWRkaW5nLXJpZ2h0OnZhcigtLXMpOyBtYXJnaW4tdG9wOnZhcigtLXMxKTsgbWFyZ2luLWJvdHRvbTowOyB9IC5kMmNmb3JtIGxhYmVsOmhhcyhbcmVxdWlyZWRdKSBzcGFuOmFmdGVyeyBjb2xvciA6dmFyKC0tbGFiZWwtcmVxdWlyZWQtY29sb3IpOyBjb250ZW50IDp2YXIoLS1sYWJlbC1yZXF1aXJlZC1zeW1ib2wpOyBwYWRkaW5nLWxlZnQgOnZhcigtLXMtNik7IH0gLmQyY2Zvcm0gbGFiZWw6bm90KC5maW5hbmNlQ2FsYyksIC5kMmNmb3JtIC5sYWJlbDpub3QoLmZpbmFuY2VDYWxjKSB7IG1hcmdpbi1ib3R0b206dmFyKC0tcy0zKTsgZm9udC1zaXplOnZhcigtLWlucHV0LWZvbnQtc2l6ZSk7IGxpbmUtaGVpZ2h0OnZhcigtLWlucHV0LWxpbmUtaGVpZ2h0KTsgZm9udC13ZWlnaHQ6NDAwOyB9IC5kMmNmb3JtIGxhYmVsLi0tcmVxdWlyZWQ6bm90KC50eHQtcmlnaHQpOmFmdGVyLCAuZDJjZm9ybSAubGFiZWwuLS1yZXF1aXJlZDpub3QoLnR4dC1yaWdodCk6YWZ0ZXIsIC5kMmNmb3JtIGxhYmVsLi1yZXF1aXJlZDpub3QoLnR4dC1yaWdodCk6YWZ0ZXIsIC5kMmNmb3JtIC5sYWJlbC4tcmVxdWlyZWQ6bm90KC50eHQtcmlnaHQpOmFmdGVyIHsgY29sb3IgOnZhcigtLWxhYmVsLXJlcXVpcmVkLWNvbG9yKTsgY29udGVudCA6dmFyKC0tbGFiZWwtcmVxdWlyZWQtc3ltYm9sKTsgcGFkZGluZy1sZWZ0IDp2YXIoLS1zLTYpOyB9IC5kMmNmb3JtIGxhYmVsLi0tcmVxdWlyZWQudHh0LXJpZ2h0OmJlZm9yZSwgLmQyY2Zvcm0gLmxhYmVsLi0tcmVxdWlyZWQudHh0LXJpZ2h0OmJlZm9yZSwgLmQyY2Zvcm0gbGFiZWwuLXJlcXVpcmVkLnR4dC1yaWdodDpiZWZvcmUsIC5kMmNmb3JtIC5sYWJlbC4tcmVxdWlyZWQudHh0LXJpZ2h0OmJlZm9yZSB7IGNvbG9yIDp2YXIoLS1sYWJlbC1yZXF1aXJlZC1jb2xvcik7IGNvbnRlbnQgOnZhcigtLWxhYmVsLXJlcXVpcmVkLXN5bWJvbCk7IHBhZGRpbmctcmlnaHQgOnZhcigtLXMtNik7IH0gLmQyY2Zvcm0gOndoZXJlKGlucHV0Om5vdChbdHlwZT1zdWJtaXRdLC5wYXltZW50Q2FsY3VsYXRvckRvd25QYXltZW50KTpub3QoW3R5cGU9InJhZGlvIl0pOm5vdChbdHlwZT0iY2hlY2tib3giXSkpLCAuZDJjZm9ybSBzZWxlY3Q6bm90KC5wYXltZW50Q2FsY3VsYXRvckludGVydmFsLC5wYXltZW50Q2FsY3VsYXRvckttQWxsb3dhbmNlLC5maW5hbmNlTXVsdGlzdGVwVXNlZENhbGN1bGF0b3IgLmNhbGMtZm9ybSBzZWxlY3QpLCAuZDJjZm9ybSB0ZXh0YXJlYSB7IHdpZHRoOjEwMCU7IHBhZGRpbmc6dmFyKC0taW5wdXQtcGFkZGluZyk7IGJhY2tncm91bmQtY29sb3I6dmFyKC0taW5wdXQtYmctY29sb3IpOyBib3JkZXItcmFkaXVzOnZhcigtLWlucHV0LXJhZGl1cyk7IGJvcmRlcjoxcHggc29saWQgdmFyKC0taW5wdXQtYm9yZGVyLWNvbG9yKTsgY29sb3I6IzIxMjUyOTsgZm9udC1zaXplOnZhcigtLWlucHV0LWZvbnQtc2l6ZSk7IGxpbmUtaGVpZ2h0OnZhcigtLWlucHV0LWxpbmUtaGVpZ2h0KTsgZm9udC13ZWlnaHQ6NDAwOyB9IC5kMmNmb3JtIGlucHV0Om5vdChbdHlwZT1zdWJtaXRdKTpub3QoW3R5cGU9InJhZGlvIl0pOm5vdChbdHlwZT0iY2hlY2tib3giXSksIC5kMmNmb3JtIHNlbGVjdCB7IGhlaWdodDozNXB4OyB9IC5kMmNmb3JtIC5pbnZhbGlkID4gOmlzKGlucHV0LHNlbGVjdCx0ZXh0YXJlYSl7IGJhY2tncm91bmQtY29sb3I6I2ZhZDZkYzsgfSAuZDJjZm9ybSBpbnB1dDpkaXNhYmxlZCwgLmQyY2Zvcm0gaW5wdXQuZGlzYWJsZWQgeyBiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjM5LCAyMzksIDIzOSwgMC4zKTsgY29sb3I6cmdiKDg0LCA4NCwgODQpOyBib3JkZXItY29sb3I6cmdiYSgxMTgsIDExOCwgMTE4LCAwLjMpOyBjdXJzb3I6bm90LWFsbG93ZWQ7IH0gLmQyY2Zvcm0gaW5wdXQudHh0LXVwcGVyIHsgdGV4dC10cmFuc2Zvcm06bm9uZTsgfSAuZDJjZm9ybSBpbnB1dC50eHQtdXBwZXI6OnBsYWNlaG9sZGVyIHsgdGV4dC10cmFuc2Zvcm06dmFyKC0tdHh0LXVwcGVyLCB1cHBlcmNhc2UpOyB9IC5kMmNmb3JtIC5pbnB1dC1pY29uLWxlZnQsIC5kMmNmb3JtIC5pbnB1dC1pY29uLXJpZ2h0IHsgcG9zaXRpb246cmVsYXRpdmU7IH0gLmQyY2Zvcm0gLmlucHV0LWljb24geyBwb3NpdGlvbjphYnNvbHV0ZTsgei1pbmRleDoxOyB0b3A6dmFyKC0tczEpOyBmb250LXNpemU6dmFyKC0taW5wdXQtZm9udC1zaXplKTsgbGluZS1oZWlnaHQ6dmFyKC0taW5wdXQtbGluZS1oZWlnaHQpOyBjb2xvcjp2YXIoLS1kYXJrLWdyYXkpOyB9IC5kMmNmb3JtIC5pbnB1dC1pY29uLXJpZ2h0IC5pbnB1dC1pY29uIHsgcmlnaHQ6dmFyKC0tczQpOyB9IC5kMmNmb3JtIC5pbnB1dC1pY29uLWxlZnQgLmlucHV0LWljb24geyBsZWZ0OnZhcigtLXM0KTsgfSAuZDJjZm9ybSAuaW5wdXQtaWNvbi1sZWZ0IGlucHV0IHsgcGFkZGluZy1sZWZ0OnZhcigtLXM5KTsgfSAuZDJjZm9ybSAuc2VwYXJhdG9yIHsgd2lkdGg6MTAwJTsgYm9yZGVyLXRvcDoxcHggc29saWQgI2Q0ZDRkNDsgbWFyZ2luLXRvcDp2YXIoLS1zNyk7IG1hcmdpbi1ib3R0b206dmFyKC0tczcpOyB9IC5kMmNmb3JtIC5yYWRpby1pbmxpbmUgeyBkaXNwbGF5OmZsZXg7IHdpZHRoOjEwMCU7IH0gLmQyY2Zvcm0gLmNoZWNrYm94LWxpc3QgeyBkaXNwbGF5OmZsZXg7IGZsZXgtZGlyZWN0aW9uOmNvbHVtbjsgbWFyZ2luLWJvdHRvbTp2YXIoLS1zLTMpOyB9IC5kMmNmb3JtIC5jaGVja2JveC1saXN0ID4gKiB7IG1hcmdpbi1ib3R0b206MDsgfSAuZDJjZm9ybSAubXVsdGlwbGUtaW5wdXQgeyBkaXNwbGF5OmZsZXg7IHdpZHRoOjEwMCU7IH0gLmQyY2Zvcm0gLm11bHRpcGxlLWlucHV0ID4gKjpub3QoOmxhc3Qtb2YtdHlwZSkgeyBtYXJnaW4tcmlnaHQ6dmFyKC0tczEpOyB9IC5kMmNmb3JtIC5pbnB1dC1ncm91cCB7IGRpc3BsYXk6ZmxleDsgd2lkdGggOjEwMCU7IH0gLmQyY2Zvcm0gLmlucHV0LWdyb3VwIC5pbnB1dC1ncm91cC10ZXh0IHsgZGlzcGxheTpmbGV4OyBhbGlnbi1pdGVtczpjZW50ZXI7IHBhZGRpbmc6dmFyKC0taW5wdXQtcGFkZGluZyk7IGJhY2tncm91bmQ6dmFyKC0tbGlnaHQtZ3JheSk7IGJvcmRlcjoxcHggc29saWQgdmFyKC0taW5wdXQtYm9yZGVyLWNvbG9yKTsgYm9yZGVyLXJhZGl1czp2YXIoLS1pbnB1dC1yYWRpdXMpOyBmb250LXNpemU6dmFyKC0taW5wdXQtZm9udC1zaXplKTsgbGluZS1oZWlnaHQ6dmFyKC0taW5wdXQtbGluZS1oZWlnaHQpOyB3aGl0ZS1zcGFjZTpub3dyYXA7IH0gLmQyY2Zvcm0gLmlucHV0LWdyb3VwID4gOm5vdCg6Zmlyc3QtY2hpbGQpIHsgYm9yZGVyLWxlZnQ6MDsgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czowICFpbXBvcnRhbnQ7IGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6MCAhaW1wb3J0YW50OyB9IC5kMmNmb3JtIC5pbnB1dC1ncm91cCA+IDpub3QoOmxhc3QtY2hpbGQpIHsgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6MCAhaW1wb3J0YW50OyBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czowICFpbXBvcnRhbnQ7IH0gQG1lZGlhIChtYXgtd2lkdGg6OTgwcHgpIHsgLmQyY2Zvcm0tLWhvcml6b250YWwgYm94LWxjIGxhYmVsIHsgbWluLXdpZHRoOjg1cHg7IH0gfQovKiogL2Nzcy9mb3Jtcy9mb3Jtcy5jc3MgKiovCi5kMmNmb3JtIGlucHV0Om5vdChbdHlwZT1zdWJtaXRdKTpub3QoW3R5cGU9InJhZGlvIl0pOm5vdChbdHlwZT0iY2hlY2tib3giXSksIC5kMmNmb3JtIHNlbGVjdCwgLmQyY2Zvcm0gdGV4dGFyZWEgeyB0cmFuc2l0aW9uOmJvcmRlci1jb2xvciAuMTVzIGVhc2UtaW4tb3V0LGJveC1zaGFkb3cgLjE1cyBlYXNlLWluLW91dDsgfSAuZDJjZm9ybSBpbnB1dDpub3QoW3R5cGU9c3VibWl0XSk6bm90KFt0eXBlPSJyYWRpbyJdKTpub3QoW3R5cGU9ImNoZWNrYm94Il0pOmZvY3VzLCAuZDJjZm9ybSBzZWxlY3Q6Zm9jdXMsIC5kMmNmb3JtIHRleHRhcmVhOmZvY3VzIHsgYm9yZGVyLWNvbG9yOiM4NmI3ZmU7IG91dGxpbmU6MDsgYm94LXNoYWRvdzowIDAgMCAwLjJyZW0gcmdiKDEzIDExMCAyNTMgLyAyNSUpOyB9IC5kMmNmb3JtIC5pbnB1dC1ncm91cCBpbnB1dDpub3QoW3R5cGU9c3VibWl0XSk6bm90KFt0eXBlPSJyYWRpbyJdKTpub3QoW3R5cGU9ImNoZWNrYm94Il0pOmZvY3VzLCAuZDJjZm9ybSAuaW5wdXQtZ3JvdXAgc2VsZWN0OmZvY3VzLCAuZDJjZm9ybSAuaW5wdXQtZ3JvdXAgdGV4dGFyZWE6Zm9jdXMgeyB6LWluZGV4OjM7IH0gLmQyY2Zvcm0gaW5wdXQudmFsaWRpdHktZXJyb25lb3VzLCAuZDJjZm9ybSBzZWxlY3QudmFsaWRpdHktZXJyb25lb3VzLCAuZDJjZm9ybSB0ZXh0YXJlYS52YWxpZGl0eS1lcnJvbmVvdXMsIC5kMmNmb3JtIC5pbnB1dC1ncm91cCAudmFsaWRpdHktZXJyb25lb3VzICsgLmlucHV0LWdyb3VwLXRleHQgeyBib3JkZXItY29sb3I6I2RjMzU0NSAhaW1wb3J0YW50OyBiYWNrZ3JvdW5kLWNvbG9yOiNmYWQ2ZGMgIWltcG9ydGFudDsgfSAuZDJjZm9ybSBpbnB1dC52YWxpZGl0eS1lcnJvbmVvdXM6OnBsYWNlaG9sZGVyLCAuZDJjZm9ybSB0ZXh0YXJlYS52YWxpZGl0eS1lcnJvbmVvdXM6OnBsYWNlaG9sZGVyLCAuZDJjZm9ybSBzZWxlY3QudmFsaWRpdHktZXJyb25lb3VzLCAuZDJjZm9ybSAuaW5wdXQtZ3JvdXAgLnZhbGlkaXR5LWVycm9uZW91cyArIC5pbnB1dC1ncm91cC10ZXh0IHsgY29sb3I6I2RjMzU0NTsgfQovKiogL2Nzcy9qcXVlcnkubXVsdGlzZWxlY3QuY3NzICoqLwoudWktbXVsdGlzZWxlY3R7cGFkZGluZzoycHggMCAycHggNHB4O3RleHQtYWxpZ246bGVmdH0udWktbXVsdGlzZWxlY3Qgc3Bhbi51aS1pY29ue2Zsb2F0OnJpZ2h0fS51aS1tdWx0aXNlbGVjdC1zaW5nbGUgLnVpLW11bHRpc2VsZWN0LWNoZWNrYm94ZXMgaW5wdXR7cG9zaXRpb246YWJzb2x1dGUgIWltcG9ydGFudDt0b3A6YXV0byAhaW1wb3J0YW50O2xlZnQ6LTk5OTlweH0udWktbXVsdGlzZWxlY3Qtc2luZ2xlIC51aS1tdWx0aXNlbGVjdC1jaGVja2JveGVzIGxhYmVse3BhZGRpbmc6NXB4ICFpbXBvcnRhbnR9LnVpLW11bHRpc2VsZWN0LWhlYWRlcnttYXJnaW4tYm90dG9tOjNweDtwYWRkaW5nOjNweCAwIDNweCA0cHh9LnVpLW11bHRpc2VsZWN0LWhlYWRlciB1bHtmb250LXNpemU6LjllbX0udWktbXVsdGlzZWxlY3QtaGVhZGVyIHVsIGxpe2Zsb2F0OmxlZnQ7cGFkZGluZzowIDEwcHggMCAwfS51aS1tdWx0aXNlbGVjdC1oZWFkZXIgYXt0ZXh0LWRlY29yYXRpb246bm9uZX0udWktbXVsdGlzZWxlY3QtaGVhZGVyIGE6aG92ZXJ7dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZX0udWktbXVsdGlzZWxlY3QtaGVhZGVyIHNwYW4udWktaWNvbntmbG9hdDpsZWZ0fS51aS1tdWx0aXNlbGVjdC1oZWFkZXIgbGkudWktbXVsdGlzZWxlY3QtY2xvc2V7ZmxvYXQ6cmlnaHQ7dGV4dC1hbGlnbjpyaWdodDtwYWRkaW5nLXJpZ2h0OjB9LnVpLW11bHRpc2VsZWN0LW1lbnV7ZGlzcGxheTpub25lO3BhZGRpbmc6M3B4O3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTAwMDA7dGV4dC1hbGlnbjpsZWZ0fS51aS1tdWx0aXNlbGVjdC1jaGVja2JveGVze3Bvc2l0aW9uOnJlbGF0aXZlO292ZXJmbG93LXk6YXV0b30udWktbXVsdGlzZWxlY3QtY2hlY2tib3hlcyBsYWJlbHtjdXJzb3I6ZGVmYXVsdDtkaXNwbGF5OmJsb2NrO2JvcmRlcjoxcHggc29saWQgdHJhbnNwYXJlbnQ7cGFkZGluZzozcHggMXB4fS51aS1tdWx0aXNlbGVjdC1jaGVja2JveGVzIGxhYmVsIGlucHV0e3Bvc2l0aW9uOnJlbGF0aXZlO3RvcDoxcHh9LnVpLW11bHRpc2VsZWN0LWNoZWNrYm94ZXMgbGl7Y2xlYXI6Ym90aDtmb250LXNpemU6LjllbTtwYWRkaW5nLXJpZ2h0OjNweH0udWktbXVsdGlzZWxlY3QtY2hlY2tib3hlcyBsaS51aS1tdWx0aXNlbGVjdC1vcHRncm91cC1sYWJlbHt0ZXh0LWFsaWduOmNlbnRlcjtmb250LXdlaWdodDpib2xkO2JvcmRlci1ib3R0b206MXB4IHNvbGlkfS51aS1tdWx0aXNlbGVjdC1jaGVja2JveGVzIGxpLnVpLW11bHRpc2VsZWN0LW9wdGdyb3VwLWxhYmVsIGF7ZGlzcGxheTpibG9jaztwYWRkaW5nOjNweDttYXJnaW46MXB4IDA7dGV4dC1kZWNvcmF0aW9uOm5vbmV9KiBodG1sIC51aS1tdWx0aXNlbGVjdC1jaGVja2JveGVzIGxhYmVse2JvcmRlcjowfS51aS1tdWx0aXNlbGVjdC1oYXNmaWx0ZXIgdWx7cG9zaXRpb246cmVsYXRpdmU7dG9wOjJweH0udWktbXVsdGlzZWxlY3QtZmlsdGVye2Zsb2F0OmxlZnQ7bWFyZ2luLXJpZ2h0OjEwcHg7Zm9udC1zaXplOjExcHh9LnVpLW11bHRpc2VsZWN0LWZpbHRlciBpbnB1dHt3aWR0aDoxMDBweDtmb250LXNpemU6MC42MjVyZW0gO21hcmdpbi1sZWZ0OjVweDtoZWlnaHQ6MTVweDtwYWRkaW5nOjJweDtib3JkZXI6MXB4IHNvbGlkICMyOTI5Mjk7LXdlYmtpdC1hcHBlYXJhbmNlOnRleHRmaWVsZDstd2Via2l0LWJveC1zaXppbmc6Y29udGVudC1ib3h9Ci8qKiAvY3NzL3RyYWRlaW5wb3B1cC5jc3MgKiovCi50cmFkZUluQmFyU3RlcDIgLnRyYWRlSW5CYXJTdGVwMlF1ZXN0aW9ueyBtYXJnaW46MjBweCAwOyB9IC50cmFkZUluQmFyU3RlcDIgLnJhZGlvX2RpdiBsYWJlbHsgd2lkdGg6NTBweDsgcGFkZGluZzowOyBtYXJnaW46NXB4OyBkaXNwbGF5OmlubGluZS1ibG9jayB9IC50cmFkZUluQmFyU3RlcDIgLnJhZGlvX2RpdiBpbnB1dHsgd2lkdGg6YXV0byAhaW1wb3J0YW50OyBwYWRkaW5nOjAgIWltcG9ydGFudDsgbWFyZ2luOjVweCAhaW1wb3J0YW50OyBib3JkZXI6bm9uZSAhaW1wb3J0YW50OyB9IC50cmFkZUluQmFyU3RlcDIsIC50cmFkZUluQmFyU3RlcDMsIC50cmFkZUluQmFyU3RlcDQsIC50cmFkZUluQmFyU3RlcDV7IG1hcmdpbjo2MHB4IDA7IHRleHQtYWxpZ246Y2VudGVyOyB9IC50cmFkZUluQmFyU3RlcDZ7IG1hcmdpbjowIDAgMzBweCAwOyB0ZXh0LWFsaWduOmNlbnRlcjsgfSAudHJhZGVJbkJhclN0ZXAzIC50cmFkZUluQmFyU3RlcDNRdWVzdGlvbiwgLnRyYWRlSW5CYXJTdGVwNCAudHJhZGVJbkJhclN0ZXA0UXVlc3Rpb24sIC50cmFkZUluQmFyU3RlcDUgLnRyYWRlSW5CYXJTdGVwNVF1ZXN0aW9uLCAudHJhZGVJbkJhclN0ZXA2IC50cmFkZUluQmFyU3RlcDZRdWVzdGlvbnsgbWFyZ2luOjIwcHggMDsgfSAjdHJhZGVJbkJhclBvcHVwU3VibWl0LCAudHJhZGVJbkJhclN0ZXAzICN0cmFkZUluU3RlcDNZZXMsIC50cmFkZUluQmFyU3RlcDQgI3RyYWRlSW5TdGVwNFllcywgLnRyYWRlSW5CYXJTdGVwNSAjdHJhZGVJblN0ZXA1WWVzLCAudHJhZGVJbkJhclN0ZXA2ICN0cmFkZUluU3RlcDZZZXN7IGJhY2tncm91bmQ6I2ViMDAwMDsgY29sb3I6I2ZmZmZmZjsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHdpZHRoOjEwMCU7IHBhZGRpbmc6MTJweDsgZm9udC13ZWlnaHQ6NTAwOyBib3JkZXItcmFkaXVzOjZweDsgYm9yZGVyOm5vbmU7IGN1cnNvcjpwb2ludGVyOyB0cmFuc2l0aW9uOmFsbCAwLjNzOyBtYXgtd2lkdGg6MzUwcHg7IH0gLnRyYWRlSW5CYXJTdGVwMyAjdHJhZGVJblN0ZXAzTm97IGJhY2tncm91bmQ6I2UwZTBlMDsgY29sb3I6IzMzMzsgd2lkdGg6MTAwJTsgcGFkZGluZzoxMnB4OyBmb250LXdlaWdodDo1MDA7IGJvcmRlci1yYWRpdXM6NnB4OyBib3JkZXI6bm9uZTsgY3Vyc29yOnBvaW50ZXI7IHRyYW5zaXRpb246YWxsIDAuM3M7IG1heC13aWR0aDozNTBweDsgbWFyZ2luLXRvcDoxMHB4OyB9ICN0cmFkZUluQmFyUG9wdXBTdWJtaXQ6aG92ZXIsIC50cmFkZUluQmFyU3RlcDMgI3RyYWRlSW5TdGVwM1llczpob3ZlciwgLnRyYWRlSW5CYXJTdGVwNCAjdHJhZGVJblN0ZXA0WWVzOmhvdmVyLCAudHJhZGVJbkJhclN0ZXA1ICN0cmFkZUluU3RlcDVZZXM6aG92ZXIsIC50cmFkZUluQmFyU3RlcDYgI3RyYWRlSW5TdGVwNlllczpob3ZlcnsgYmFja2dyb3VuZDojZmZmZmZmOyBjb2xvcjojZWIwMDAwOyBvcGFjaXR5OjAuOTsgfSAjdHJhZGVJbkJhclBvcHVwX2Zvcm1XICN0cmFkZUluQmFyUG9wdXBGb3JtIC50cmFkZUluQmFyU3RlcDQgI3RyYWRlSW5LZXlTZWxlY3R7IHdpZHRoOjM1MHB4OyBtYXgtd2lkdGg6MzUwcHg7IHBhZGRpbmc6MTBweDsgbWFyZ2luLWJvdHRvbToyMHB4OyBib3JkZXItcmFkaXVzOjZweDsgYm9yZGVyOjFweCBzb2xpZCAjY2NjOyBmb250LXNpemU6MC44NzVyZW0gOyBvdXRsaW5lOm5vbmU7IH0gI3RyYWRlSW5CYXJQb3B1cF9mb3JtVyAjdHJhZGVJbkJhclBvcHVwRm9ybSAudHJhZGVJbkJhclN0ZXA1ICNzdGVwNVZpbnsgd2lkdGg6MzUwcHg7IG1heC13aWR0aDozNTBweDsgfSAjdHJhZGVJbkJhclBvcHVwX2Zvcm1XICN0cmFkZUluQmFyUG9wdXBGb3JtIC50cmFkZUluQmFyU3RlcDYgLnRyYWRlSW5CYXJTdGVwNlRpdGxleyBmb250LXNpemU6MS4yNXJlbSA7IGZvbnQtd2VpZ2h0OmJvbGQ7IH0gI3RyYWRlSW5CYXJQb3B1cF9mb3JtVyAjdHJhZGVJbkJhclBvcHVwX2xpbmUxeyBib3JkZXItcmFkaXVzOjZweDsgfSAjdHJhZGVJbkJhclBvcHVwX2Zvcm1XICN0cmFkZUluQmFyUG9wdXBGb3JtIC51cGxvYWRlci1jb250YWluZXIgeyBtYXgtd2lkdGg6NjAwcHg7IHdpZHRoOjEwMCU7IG1hcmdpbjowIGF1dG87IGJhY2tncm91bmQtY29sb3I6I2ZmZjsgcGFkZGluZzoyMHB4OyBib3JkZXItcmFkaXVzOjhweDsgYm94LXNoYWRvdzowIDRweCA4cHggcmdiYSgwLCAwLCAwLCAwLjEpOyB9ICN0cmFkZUluQmFyUG9wdXBfZm9ybVcgI3RyYWRlSW5CYXJQb3B1cEZvcm0gLnVwbG9hZGVyLWNvbnRhaW5lciBoMiB7IGZvbnQtc2l6ZToxLjJyZW07IG1hcmdpbi1ib3R0b206MTBweDsgdGV4dC1hbGlnbjpjZW50ZXI7IH0gI3RyYWRlSW5CYXJQb3B1cF9mb3JtVyAjdHJhZGVJbkJhclBvcHVwRm9ybSAudXBsb2FkZXItY29udGFpbmVyIHAgeyBjb2xvcjojNjY2OyBtYXJnaW4tYm90dG9tOjIwcHg7IHRleHQtYWxpZ246Y2VudGVyOyBmb250LXNpemU6MC45cmVtOyB9ICN0cmFkZUluQmFyUG9wdXBfZm9ybVcgI3RyYWRlSW5CYXJQb3B1cEZvcm0gLmltYWdlLWdyaWQgeyBkaXNwbGF5OmdyaWQ7IGdyaWQtdGVtcGxhdGUtY29sdW1uczpyZXBlYXQoNCwgMWZyKTsgZ2FwOjE1cHg7IG92ZXJmbG93LXk6c2Nyb2xsOyBoZWlnaHQ6MjgwcHg7IG1hcmdpbi1ib3R0b206MTBweDsgfSAjdHJhZGVJbkJhclBvcHVwX2Zvcm1XICN0cmFkZUluQmFyUG9wdXBGb3JtIC51cGxvYWQtYXJlYSB7IHBvc2l0aW9uOnJlbGF0aXZlOyB3aWR0aDoxMDAlOyBhc3BlY3QtcmF0aW86MSAvIDE7IGJvcmRlcjoycHggZGFzaGVkICNjY2M7IGJvcmRlci1yYWRpdXM6MTBweDsgY3Vyc29yOnBvaW50ZXI7IG92ZXJmbG93OmhpZGRlbjsgYmFja2dyb3VuZC1zaXplOjkwJTsgYmFja2dyb3VuZC1wb3NpdGlvbjpjZW50ZXI7IGJhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDsgYmFja2dyb3VuZC1jb2xvcjojZjVmNWY1OyB9ICN0cmFkZUluQmFyUG9wdXBfZm9ybVcgI3RyYWRlSW5CYXJQb3B1cEZvcm0gLnVwbG9hZC1hcmVhIGlucHV0W3R5cGU9ImZpbGUiXSB7IGRpc3BsYXk6bm9uZTsgfSAjdHJhZGVJbkJhclBvcHVwX2Zvcm1XICN0cmFkZUluQmFyUG9wdXBGb3JtIC5wbGFjZWhvbGRlciB7IHBvc2l0aW9uOmFic29sdXRlOyB0b3A6MDsgbGVmdDowOyB3aWR0aDoxMDAlOyBoZWlnaHQ6MTAwJTsgb2JqZWN0LWZpdDpjb250YWluOyBkaXNwbGF5Om5vbmU7IH0gI3RyYWRlSW5CYXJQb3B1cF9mb3JtVyAjdHJhZGVJbkJhclBvcHVwRm9ybSAucGxhY2Vob2xkZXItdGl0bGUgeyBwb3NpdGlvbjphYnNvbHV0ZTsgdG9wOjVweDsgbGVmdDo1MCU7IHRyYW5zZm9ybTp0cmFuc2xhdGVYKC01MCUpOyBmb250LXNpemU6MC44cmVtOyBmb250LXdlaWdodDpib2xkOyBjb2xvcjojNjY2OyBiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LCAyNTUsIDI1NSwgMC44KTsgcGFkZGluZzoxcHggNnB4OyBib3JkZXItcmFkaXVzOjRweDsgcG9pbnRlci1ldmVudHM6bm9uZTsgdGV4dC1hbGlnbjpjZW50ZXI7IHdoaXRlLXNwYWNlOm5vd3JhcDsgb3ZlcmZsb3c6aGlkZGVuOyB0ZXh0LW92ZXJmbG93OmVsbGlwc2lzOyB9ICN0cmFkZUluQmFyUG9wdXBfZm9ybVcgI3RyYWRlSW5CYXJQb3B1cEZvcm0gLmFkZC1pY29uIHsgcG9zaXRpb246YWJzb2x1dGU7IGJvdHRvbTo1cHg7IHJpZ2h0OjVweDsgZm9udC1zaXplOjEuMXJlbTsgY29sb3I6IzAwN0JGRjsgYmFja2dyb3VuZC1jb2xvcjp3aGl0ZTsgYm9yZGVyLXJhZGl1czo1MCU7IHdpZHRoOjI4cHg7IGhlaWdodDoyOHB4OyBkaXNwbGF5OmZsZXg7IGp1c3RpZnktY29udGVudDpjZW50ZXI7IGFsaWduLWl0ZW1zOmNlbnRlcjsgYm94LXNoYWRvdzowIDJweCA0cHggcmdiYSgwLCAwLCAwLCAwLjIpOyB9ICN0cmFkZUluQmFyUG9wdXBfZm9ybVcgI3RyYWRlSW5CYXJQb3B1cEZvcm0gLmRlbGV0ZS1idG4geyBwb3NpdGlvbjphYnNvbHV0ZTsgdG9wOjVweDsgcmlnaHQ6NXB4OyB3aWR0aDoyMHB4OyBoZWlnaHQ6MjBweDsgYmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuNyk7IGNvbG9yOndoaXRlOyBib3JkZXI6bm9uZTsgYm9yZGVyLXJhZGl1czo1MCU7IGZvbnQtc2l6ZTowLjc1cmVtIDsgbGluZS1oZWlnaHQ6MjBweDsgY3Vyc29yOnBvaW50ZXI7IGRpc3BsYXk6bm9uZTsgfSAjdHJhZGVJbkJhclBvcHVwX2Zvcm1XICN0cmFkZUluQmFyUG9wdXBGb3JtIC51cGxvYWQtYXJlYTpob3ZlciAuZGVsZXRlLWJ0biB7IGRpc3BsYXk6ZmxleDsgfSAudHJhZGVJbkJvdHRvbUxvZ297IHRleHQtYWxpZ246Y2VudGVyOyBjb2xvcjojYTlhOWE5OyBkaXNwbGF5OmZsZXg7IGFsaWduLWl0ZW1zOmNlbnRlcjsganVzdGlmeS1jb250ZW50OmNlbnRlcjsgfSAudHJhZGVJbkJvdHRvbUxvZ28udHJhZGVJbkJvdHRvbUxvZ29WV3sgbWFyZ2luOjAgYXV0bzsgd2lkdGg6ODUlOyB9ICN0cmFkZUluQmFyUG9wdXBfZm9ybVcgLnRyYWRlSW5EaXNjbGFpbWVyIC50cmFkZUluRGlzY2xhaW1lclNob3J0eyBwb3NpdGlvbjpyZWxhdGl2ZTsgd2hpdGUtc3BhY2U6bm93cmFwOyBvdmVyZmxvdzpoaWRkZW47IHRleHQtb3ZlcmZsb3c6Y2xpcDsgbWF4LXdpZHRoOjEwMCU7IGxpbmUtaGVpZ2h0OjEuNSAhaW1wb3J0YW50OyBmb250LXNpemU6MC44MTNyZW0gIWltcG9ydGFudDsgY29sb3I6IzAwMCAhaW1wb3J0YW50OyBtYXJnaW4tYm90dG9tOjAgIWltcG9ydGFudDsgcGFkZGluZy1yaWdodDoxNnB4OyB9ICN0cmFkZUluQmFyUG9wdXBfZm9ybVcgLnRyYWRlSW5EaXNjbGFpbWVyIC50cmFkZUluRGlzY2xhaW1lclNob3J0OjpiZWZvcmUgeyBjb250ZW50OiIiOyBwb3NpdGlvbjphYnNvbHV0ZTsgcmlnaHQ6MDsgdG9wOjA7IHdpZHRoOjIwcHg7IGhlaWdodDoxMDAlOyBiYWNrZ3JvdW5kOndoaXRlOyBwb2ludGVyLWV2ZW50czpub25lOyB9ICN0cmFkZUluQmFyUG9wdXBfZm9ybVcgLnRyYWRlSW5EaXNjbGFpbWVyIC50cmFkZUluRGlzY2xhaW1lclNob3J0OjphZnRlciB7IGNvbnRlbnQ6IiAiOyBoZWlnaHQ6MDsgd2lkdGg6MDsgYm9yZGVyLWxlZnQ6NXB4IHNvbGlkIHRyYW5zcGFyZW50OyBib3JkZXItcmlnaHQ6NXB4IHNvbGlkIHRyYW5zcGFyZW50OyBib3JkZXItdG9wOjVweCBzb2xpZCAjMDAwMDAwOyBwb3NpdGlvbjphYnNvbHV0ZTsgcmlnaHQ6NXB4OyB0b3A6NTAlOyB0cmFuc2Zvcm06dHJhbnNsYXRlWSgtNTAlKTsgdHJhbnNpdGlvbjphbGwgMC4zcyBsaW5lYXI7IHBvaW50ZXItZXZlbnRzOm5vbmU7IGJhY2tncm91bmQ6d2hpdGUgfSAjdHJhZGVJbkJhclBvcHVwX2Zvcm1XIC50cmFkZUluRGlzY2xhaW1lciAudHJhZGVJbkRpc2NsYWltZXJTaG9ydCBzcGFueyBsaW5lLWhlaWdodDoxLjUgIWltcG9ydGFudDsgZm9udC1zaXplOjAuODEzcmVtICFpbXBvcnRhbnQ7IGNvbG9yOiMwMDAgIWltcG9ydGFudDsgbWFyZ2luLWJvdHRvbTowICFpbXBvcnRhbnQ7IGN1cnNvcjpwb2ludGVyOyB9ICN0cmFkZUluQmFyUG9wdXBfZm9ybVcgLnRyYWRlSW5EaXNjbGFpbWVyIC50cmFkZUluRGlzY2xhaW1lclNob3J0IHNwYW4gYXsgZm9udC13ZWlnaHQ6Ym9sZDsgfSAudHJhZGVJbkRpc2NsYWltZXJEcmF3ZXJ7IHBvc2l0aW9uOmZpeGVkOyBsZWZ0OjA7IGJvdHRvbTotMzAwcHg7IHdpZHRoOjEwMCU7IGhlaWdodDphdXRvOyBiYWNrZ3JvdW5kOiNmZmY7IGJveC1zaGFkb3c6MCAtMnB4IDEwcHggcmdiYSgwLDAsMCwwLjMpOyB0cmFuc2l0aW9uOmJvdHRvbSAwLjNzIGVhc2U7IGRpc3BsYXk6bm9uZTsgb3ZlcmZsb3c6YXV0bzsgei1pbmRleDoxMDsgfSAudHJhZGVJbkRpc2NsYWltZXJEcmF3ZXIub3BlbnsgYm90dG9tOjA7IH0gLnRyYWRlSW5EaXNjbGFpbWVyRHJhd2VyLm9wZW4gLnRyYWRlSW5EaXNjbGFpbWVyQ29udGVudHsgcGFkZGluZzoyMHB4OyBvdmVyZmxvdy15OmF1dG87IH0gLnRyYWRlSW5EaXNjbGFpbWVyRHJhd2VyLm9wZW4gLnRyYWRlSW5EaXNjbGFpbWVyQ2xvc2V7IHBhZGRpbmc6N3B4OyBjdXJzb3I6cG9pbnRlcjsgcG9zaXRpb246Zml4ZWQ7IHJpZ2h0OjA7IH0gLnRyYWRlSW5EaXNjbGFpbWVyRHJhd2VyLm9wZW4gYXsgZm9udC13ZWlnaHQ6Ym9sZDsgfSBAbWVkaWEgKG1heC13aWR0aDo2MDBweCkgeyAjdHJhZGVJbkJhclBvcHVwX2Zvcm1XICN0cmFkZUluQmFyUG9wdXBGb3JtIC51cGxvYWRlci1jb250YWluZXIgeyBwYWRkaW5nOjE1cHg7IH0gI3RyYWRlSW5CYXJQb3B1cF9mb3JtVyAjdHJhZGVJbkJhclBvcHVwRm9ybSAuaW1hZ2UtZ3JpZCB7IGdyaWQtdGVtcGxhdGUtY29sdW1uczpyZXBlYXQoMywgMWZyKTsgZ2FwOjEwcHg7IH0gI3RyYWRlSW5CYXJQb3B1cF9mb3JtVyAjdHJhZGVJbkJhclBvcHVwRm9ybSAucGxhY2Vob2xkZXItdGl0bGUgeyBmb250LXNpemU6MC43cmVtOyB9IH0gQG1lZGlhIChtYXgtd2lkdGg6NDAwcHgpIHsgI3RyYWRlSW5CYXJQb3B1cF9mb3JtVyAjdHJhZGVJbkJhclBvcHVwRm9ybSAuaW1hZ2UtZ3JpZCB7IGdyaWQtdGVtcGxhdGUtY29sdW1uczpyZXBlYXQoMiwgMWZyKTsgZ2FwOjhweDsgfSAjdHJhZGVJbkJhclBvcHVwX2Zvcm1XICN0cmFkZUluQmFyUG9wdXBGb3JtIC5wbGFjZWhvbGRlci10aXRsZSB7IGZvbnQtc2l6ZTowLjZyZW07IH0gI3RyYWRlSW5CYXJQb3B1cF9mb3JtVyAjdHJhZGVJbkJhclBvcHVwRm9ybSAuYWRkLWljb24geyB3aWR0aDoyNHB4OyBoZWlnaHQ6MjRweDsgZm9udC1zaXplOjFyZW07IH0gI3RyYWRlSW5CYXJQb3B1cF9mb3JtVyAjdHJhZGVJbkJhclBvcHVwRm9ybSAuZGVsZXRlLWJ0biB7IHdpZHRoOjE2cHg7IGhlaWdodDoxNnB4OyBmb250LXNpemU6MC42MjVyZW0gOyB9IH0KLyoqIC9jc3MvcmV2ZWFsLmNzcyAqKi8KLnJldmVhbC1tb2RhbC1iZyB7IHBvc2l0aW9uOmZpeGVkOyBoZWlnaHQ6MTAwJTsgd2lkdGg6MTAwJTsgYmFja2dyb3VuZDojMDAwOyBiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsLjgpOyB6LWluZGV4OjEwMDAwMDk7IGRpc3BsYXk6bm9uZTsgdG9wOjA7IGxlZnQ6MDsgfSAucmV2ZWFsLW1vZGFsIHsgdmlzaWJpbGl0eTpoaWRkZW47IHRvcDotMTAwMHB4OyB3aWR0aDptaW4oNTIwcHgsIDkwdncpOyBiYWNrZ3JvdW5kOiNlZWUgdXJsKC9pbWFnZXMvbW9kYWwtZ2xvc3MucG5nKSBuby1yZXBlYXQgLTIwMHB4IC04MHB4OyBiYWNrZ3JvdW5kLWNvbG9yOiNlZWU7IHBvc2l0aW9uOmFic29sdXRlOyBsZWZ0OjA7IHJpZ2h0OjA7IG1hcmdpbjphdXRvOyB6LWluZGV4OjEwMDAwMjA7IHBhZGRpbmc6MzBweCA0MHB4IDM0cHg7IC1tb3otYm9yZGVyLXJhZGl1czo1cHg7IC13ZWJraXQtYm9yZGVyLXJhZGl1czo1cHg7IGJvcmRlci1yYWRpdXM6NXB4OyAtbW96LWJveC1zaGFkb3c6MCAwIDEwcHggcmdiYSgwLDAsMCwuNCk7IC13ZWJraXQtYm94LXNoYWRvdzowIDAgMTBweCByZ2JhKDAsMCwwLC40KTsgLWJveC1zaGFkb3c6MCAwIDEwcHggcmdiYSgwLDAsMCwuNCk7IH0gLnJldmVhbC1tb2RlbC1kby1ub3Qtc2hvdyB7IHZpc2liaWxpdHk6aGlkZGVuOyB0b3A6MTAwcHg7IHdpZHRoOjUyMHB4OyBwb3NpdGlvbjphYnNvbHV0ZTsgei1pbmRleDoxMDAwMDIwOyBwYWRkaW5nOjMwcHggNDBweCAzNHB4OyBiYWNrZ3JvdW5kOm5vbmU7IC1tb3otYm9yZGVyLXJhZGl1czowcHg7IC13ZWJraXQtYm9yZGVyLXJhZGl1czowcHg7IGJvcmRlci1yYWRpdXM6MHB4OyAtbW96LWJveC1zaGFkb3c6bm9uZTsgLXdlYmtpdC1ib3gtc2hhZG93Om5vbmU7IC1ib3gtc2hhZG93Om5vbmU7IH0gLi0taXMtcG9wdXAtZml4ZWQtY29udGFpbmVyIHsgcG9zaXRpb246Zml4ZWQ7IHRvcDowOyBsZWZ0OjA7IHJpZ2h0OjA7IHotaW5kZXg6MTAwMDAwMDAwOyB9IC5yZXZlYWwtbW9kYWwuc21hbGwgeyB3aWR0aDoyMDBweDt9IC5yZXZlYWwtbW9kYWwubWVkaXVtIHsgd2lkdGg6NDAwcHg7fSAucmV2ZWFsLW1vZGFsLmxhcmdlIHsgd2lkdGg6NjAwcHg7fSAucmV2ZWFsLW1vZGFsLnhsYXJnZSB7IHdpZHRoOjgwMHB4O30gLnJldmVhbC1tb2RhbCAuY2xvc2UtcmV2ZWFsLW1vZGFsIHsgZm9udC1zaXplOjEuMzc1cmVtIDsgbGluZS1oZWlnaHQ6LjU7IHBvc2l0aW9uOmFic29sdXRlOyB0b3A6OXB4OyByaWdodDoxMHB4OyBjb2xvcjojNDQ0OyB0ZXh0LXNoYWRvdzowIC0xcHggMXB4IHJiZ2EoMCwwLDAsLjYpOyBmb250LXdlaWdodDpib2xkOyBjdXJzb3I6cG9pbnRlcjsgfSAuY2xvc2UtcmV2ZWFsLW1vZGFsLm1vZGFsLWNsb3NlLWhpZGUgeyBkaXNwbGF5Om5vbmU7IH0gLnJldmVhbC1tb2RhbCBzcGFuIHsgcGFkZGluZzowcHg7IGZvbnQtc2l6ZToxLjVyZW0gOyBtYXJnaW4tYm90dG9tOjEwcHg7IGNvbG9yOiM0MTQxNDE7IH0gLnJldmVhbC1tb2RhbCBzcGFuLnN1Y2Nlc3MgeyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2NpcmNsZS1ncmVlbi0yNC1ucy5wbmcpIG5vLXJlcGVhdCBzY3JvbGwgbGVmdCBjZW50ZXIgdHJhbnNwYXJlbnQ7IH0gLnJldmVhbC1tb2RhbCBzcGFuLmZhaWwgeyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2NpcmNsZS1yZWQtMjQtbnMucG5nKSBuby1yZXBlYXQgc2Nyb2xsIGxlZnQgY2VudGVyIHRyYW5zcGFyZW50OyBwYWRkaW5nLWxlZnQ6MzBweDsgfSAucmV2ZWFsLW1vZGFsIHAgeyBtYXJnaW46MCA7IGZvbnQtc2l6ZTowLjkzOHJlbSA7IGNvbG9yOiM0MTQxNDE7IH0gLnBvcHVwLWRvbS1ub3dyYXBwZXIgeyBiYWNrZ3JvdW5kOm5vbmUgIWltcG9ydGFudDsgYm94LXNoYWRvdzpub25lOyB9IEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC1kZXZpY2Utd2lkdGg6NDgwcHgpIHsgLnJldmVhbC1tb2RhbCwgLnJldmVhbC1tb2RlbC1kby1ub3Qtc2hvdyB7IHRvcDoxMHB4OyB6LWluZGV4OjEwMDAwMjA7IHBhZGRpbmc6MC41cmVtOyBwYWRkaW5nLXRvcDoycmVtOyB9IC5yZXZlYWwtbW9kYWwgLmNsb3NlLXJldmVhbC1tb2RhbCB7IGZvbnQtc2l6ZToxLjg3NXJlbSA7IGxpbmUtaGVpZ2h0OjAuNjsgcmlnaHQ6MC41cmVtOyB0b3A6MC41cmVtOyB6LWluZGV4OjE7IH0gfSAuZW1haWwtY29uc2VudC1ib3ggOmlzKC50aXRsZS10eHQsIHApeyBtYXJnaW4tbGVmdDowOyBwYWRkaW5nOjA7IGNvbG9yOiM0MTQxNDE7IH0gLmVtYWlsLWNvbnNlbnQtYm94eyBiYWNrZ3JvdW5kLWNvbG9yOiNlZWU7IGNvbG9yOiM0MTQxNDE7IH0gLmVtYWlsLWNvbnNlbnQtYm94IC5pY29uLXRpdGxleyB0ZXh0LWFsaWduOmNlbnRlcjsgfQovKiogL2Nzcy9hZHZhbmNlZC1zbGlkZXItYmFzZS5jc3MgKiovCi5hZHZhbmNlZC1zbGlkZXIgeyBwb3NpdGlvbjpyZWxhdGl2ZTsgb3ZlcmZsb3c6dmlzaWJsZTsgb3V0bGluZTpub25lOyBtYXJnaW4tbGVmdDphdXRvOyBtYXJnaW4tcmlnaHQ6YXV0bzsgfSAuYWR2YW5jZWQtc2xpZGVyICogeyBtYXJnaW46MDsgcGFkZGluZzowOyB9IC5hZHZhbmNlZC1zbGlkZXIgLnNsaWRlci1tYWluIHsgcG9zaXRpb246YWJzb2x1dGU7IHdpZHRoOjEwMCU7IGhlaWdodDoxMDAlOyB6LWluZGV4OjEwOyB9IC5hZHZhbmNlZC1zbGlkZXIgLnNsaWRlLXdyYXBwZXIgeyBwb3NpdGlvbjpyZWxhdGl2ZTsgb3ZlcmZsb3c6dmlzaWJsZTsgd2lkdGg6MTAwJTsgaGVpZ2h0OjEwMCU7IHotaW5kZXg6MTA7IH0gLmFkdmFuY2VkLXNsaWRlciB1bC5zbGlkZXMgeyBwb3NpdGlvbjphYnNvbHV0ZTsgb3ZlcmZsb3c6aGlkZGVuOyBtYXJnaW46MDsgcGFkZGluZzowOyBsaXN0LXN0eWxlOm5vbmU7IHdpZHRoOjEwMCU7IGhlaWdodDoxMDAlOyB6LWluZGV4OjEwOyB9IC5hZHZhbmNlZC1zbGlkZXIgbGkuc2xpZGUgeyBwb3NpdGlvbjphYnNvbHV0ZTsgb3ZlcmZsb3c6aGlkZGVuOyBkaXNwbGF5OmZsZXg7IG1hcmdpbjowOyBwYWRkaW5nOjA7IHdpZHRoOjEwMCU7IGhlaWdodDoxMDAlOyB2aXNpYmlsaXR5OmhpZGRlbjsgbGlzdC1zdHlsZTpub25lOyBmaWx0ZXI6YWxwaGEob3BhY2l0eT0xMDApOyBvcGFjaXR5OjE7IH0gLmFkdmFuY2VkLXNsaWRlciBsaS5zbGlkZSAuaW1hZ2UsIC5hZHZhbmNlZC1zbGlkZXIgbGkuc2xpZGUgLnRodW1ibmFpbCwgLmFkdmFuY2VkLXNsaWRlciBsaS5zbGlkZSAuY2FwdGlvbiwgLmFkdmFuY2VkLXNsaWRlciBsaS5zbGlkZSAuaHRtbCB7IHBvc2l0aW9uOmFic29sdXRlOyB9IC5hZHZhbmNlZC1zbGlkZXIgbGkuc2xpZGUgaW1nLCAuYWR2YW5jZWQtc2xpZGVyIC50aHVtYm5haWwgaW1nIHsgbWF4LXdpZHRoOm5vbmU7IG1heC1oZWlnaHQ6bm9uZTsgYm9yZGVyOjAgbm9uZTsgfSAuYWR2YW5jZWQtc2xpZGVyIGxpLnNsaWRlIC5odG1sIHsgb3ZlcmZsb3c6aGlkZGVuOyB9IC5hZHZhbmNlZC1zbGlkZXIgbGkuc2xpZGUgLnZpZGVvIHsgfSAuYWR2YW5jZWQtc2xpZGVyIGxpLnNsaWRlLmFjdGl2ZSAudmlkZW8geyB9IC5hZHZhbmNlZC1zbGlkZXIgLnNsaWNlLWNvbnRhaW5lciB7IHBvc2l0aW9uOmFic29sdXRlOyB3aWR0aDoxMDAlOyBoZWlnaHQ6MTAwJTsgei1pbmRleDoxMDsgfSAuYWR2YW5jZWQtc2xpZGVyIC5zd2lwZWFibGUtY29udGFpbmVyIHsgcG9zaXRpb246YWJzb2x1dGU7IHdpZHRoOjEwMCU7IGhlaWdodDoxMDAlOyBvdmVyZmxvdzpoaWRkZW47IH0gLmFkdmFuY2VkLXNsaWRlciAuc3dpcGVhYmxlLWNvbnRhaW5lciAuc2xpZGVzIHsgLXdlYmtpdC11c2VyLXNlbGVjdDpub25lOyAtbW96LXVzZXItc2VsZWN0Om5vbmU7IC1vLXVzZXItc2VsZWN0Om5vbmU7IHVzZXItc2VsZWN0Om5vbmU7IH0gLmFkdmFuY2VkLXNsaWRlciAuc3dpcGVhYmxlLWNvbnRhaW5lciAuc2xpZGVzIC5zZWxlY3RhYmxlIHsgLXdlYmtpdC11c2VyLXNlbGVjdDphdXRvOyAtbW96LXVzZXItc2VsZWN0OmF1dG87IC1vLXVzZXItc2VsZWN0OmF1dG87IHVzZXItc2VsZWN0OmF1dG87IGN1cnNvcjphdXRvOyB9IC5hZHZhbmNlZC1zbGlkZXIgLnN3aXBlYWJsZS1jb250YWluZXIgLmdyYWIgeyBjdXJzb3I6Z3JhYjsgfSAuYWR2YW5jZWQtc2xpZGVyIC5zd2lwZWFibGUtY29udGFpbmVyIC5ncmFiYmluZyB7IGN1cnNvcjpncmFiYmluZzsgfSAuYWR2YW5jZWQtc2xpZGVyIC5zbGljZSB7IGRpc3BsYXk6YmxvY2s7IHBvc2l0aW9uOmFic29sdXRlOyB9IC5hZHZhbmNlZC1zbGlkZXIgLnByZWxvYWRlciB7IHBvc2l0aW9uOmFic29sdXRlOyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL3ByZWxvYWRlcjIuZ2lmKSBuby1yZXBlYXQ7IHdpZHRoOjYycHg7IGhlaWdodDoxNHB4OyB6LWluZGV4OjE1OyB9IC5hZHZhbmNlZC1zbGlkZXIgLnNsaWRlLWFycm93cyB7IHBvc2l0aW9uOnN0YXRpYzsgfSAuYWR2YW5jZWQtc2xpZGVyIC5zbGlkZS1hcnJvd3MgYSB7IHBvc2l0aW9uOmFic29sdXRlOyB6LWluZGV4OjMwOyBjdXJzb3I6cG9pbnRlcjsgfSAuYWR2YW5jZWQtc2xpZGVyIC5saWdodGJveC1pY29uIHsgcG9zaXRpb246YWJzb2x1dGU7IHdpZHRoOjgwcHg7IGhlaWdodDo4MHB4OyB0b3A6NTAlOyBsZWZ0OjUwJTsgbWFyZ2luLXRvcDotNDBweDsgbWFyZ2luLWxlZnQ6LTQwcHg7IGN1cnNvcjpwb2ludGVyOyB6LWluZGV4OjEwOyB9IC5hZHZhbmNlZC1zbGlkZXIgLmxpZ2h0Ym94LWljb24ucGxheSB7IGJhY2tncm91bmQtaW1hZ2U6dXJsKC9pbWFnZXMvbGlnaHRib3hfcGxheS5wbmcpOyB9IC5hZHZhbmNlZC1zbGlkZXIgLmxpZ2h0Ym94LWljb24ubWFnbmlmeWluZyB7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvbGlnaHRib3hfbWFnbmlmeWluZ19zbWFsbC5wbmcpIG5vLXJlcGVhdDsgZmxvYXQ6bGVmdDsgbGVmdDowOyB0b3A6MDsgbWFyZ2luLWxlZnQ6MTBweDsgbWFyZ2luLXRvcDoxMHB4OyBkaXNwbGF5Om5vbmU7IH0gfSAuYWR2YW5jZWQtc2xpZGVyIC5saWdodGJveC1pY29uLmh5cGVybGluayB7IGJhY2tncm91bmQtaW1hZ2U6dXJsKC9pbWFnZXMvbGlnaHRib3hfaHlwZXJsaW5rLnBuZyk7IH0gLmFkdmFuY2VkLXNsaWRlciAuc2xpZGVzaG93LWNvbnRyb2xzIHsgcG9zaXRpb246YWJzb2x1dGU7IHotaW5kZXg6NDA7IGN1cnNvcjpwb2ludGVyOyB9IC5hZHZhbmNlZC1zbGlkZXIgLnNoYWRvdyB7IHBvc2l0aW9uOmFic29sdXRlOyBoZWlnaHQ6OTRweDsgbWFyZ2luLXRvcDotNTBweDsgei1pbmRleDo1OyB9IC5hZHZhbmNlZC1zbGlkZXIgLnNoYWRvdyAuc2hhZG93LWxlZnQsIC5hZHZhbmNlZC1zbGlkZXIgLnNoYWRvdyAuc2hhZG93LXJpZ2h0LCAuYWR2YW5jZWQtc2xpZGVyIC5zaGFkb3cgLnNoYWRvdy1taWRkbGUgeyBmbG9hdDpsZWZ0OyB9IC5hZHZhbmNlZC1zbGlkZXIgLmZ1bGwtc2NyZWVuLWNvbnRyb2xzIHsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9mdWxsc2NyZWVuLnBuZykgbm8tcmVwZWF0OyBwb3NpdGlvbjphYnNvbHV0ZTsgd2lkdGg6MzFweDsgaGVpZ2h0OjI3cHg7IHRvcDoyMHB4OyBsZWZ0OjIwcHg7IHotaW5kZXg6NjA7IGN1cnNvcjpwb2ludGVyOyB9IC5hZHZhbmNlZC1zbGlkZXIgLnRpbWVyLWFuaW1hdGlvbiB7IHBvc2l0aW9uOmFic29sdXRlOyB6LWluZGV4OjUwOyB9IC5hZHZhbmNlZC1zbGlkZXIgY2FudmFzIHsgcG9zaXRpb246YWJzb2x1dGU7IH0gLmFkdmFuY2VkLXNsaWRlciAudGltZXItYW5pbWF0aW9uIC50aW1lci1hbmltYXRpb24tY29udHJvbHMgeyBwb3NpdGlvbjphYnNvbHV0ZTsgY3Vyc29yOnBvaW50ZXI7IHdpZHRoOjIwcHg7IGhlaWdodDoyMHB4OyB0b3A6NTAlOyBsZWZ0OjUwJTsgbWFyZ2luLXRvcDotMTBweDsgbWFyZ2luLWxlZnQ6LTEwcHg7IH0gLmFkdmFuY2VkLXNsaWRlciAudGltZXItYW5pbWF0aW9uIC50aW1lci1hbmltYXRpb24tY29udHJvbHMgeyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL3BsYXlwYXVzZV9zbWFsbC5wbmcpIG5vLXJlcGVhdDsgfSAuYWR2YW5jZWQtc2xpZGVyIC50aW1lci1hbmltYXRpb24ucGxheSAudGltZXItYW5pbWF0aW9uLWNvbnRyb2xzIHsgYmFja2dyb3VuZC1wb3NpdGlvbjotMjBweCAwOyB9IC5hZHZhbmNlZC1zbGlkZXIgLnRpbWVyLWFuaW1hdGlvbi5wYXVzZSAudGltZXItYW5pbWF0aW9uLWNvbnRyb2xzIHsgYmFja2dyb3VuZC1wb3NpdGlvbjowIDA7IH0gLmFkdmFuY2VkLXNsaWRlciAuY2FwdGlvbi1jb250YWluZXIgeyBvdmVyZmxvdzpoaWRkZW47IHBvc2l0aW9uOmFic29sdXRlOyB9IC5hZHZhbmNlZC1zbGlkZXIgLmNhcHRpb24tY29udGFpbmVyIC53cmFwcGVyIHsgcG9zaXRpb246YWJzb2x1dGU7IH0gLmFkdmFuY2VkLXNsaWRlciAuY2FwdGlvbi1jb250YWluZXIgLmJhY2tncm91bmQgeyBwb3NpdGlvbjphYnNvbHV0ZTsgd2lkdGg6MTAwJTsgaGVpZ2h0OjEwMCU7IH0gLmFkdmFuY2VkLXNsaWRlciAudGh1bWJuYWlsLXdyYXBwZXIgeyBwb3NpdGlvbjphYnNvbHV0ZTsgfSAuYWR2YW5jZWQtc2xpZGVyIC50aHVtYm5haWwgeyBiYWNrZ3JvdW5kLWltYWdlOnVybCgvaW1hZ2VzL3ByZWxvYWRlci5naWYpOyBiYWNrZ3JvdW5kLXBvc2l0aW9uOmNlbnRlcjsgYmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0OyBwb3NpdGlvbjphYnNvbHV0ZTsgb3ZlcmZsb3c6aGlkZGVuOyB9IC5hZHZhbmNlZC1zbGlkZXIgLnNsaWRlLWJ1dHRvbnMgeyBwb3NpdGlvbjphYnNvbHV0ZTsgei1pbmRleDoyMDsgfSAuYWR2YW5jZWQtc2xpZGVyIC5zbGlkZS1idXR0b25zIC5sZWZ0LCAuYWR2YW5jZWQtc2xpZGVyIC5zbGlkZS1idXR0b25zIC5yaWdodCwgLmFkdmFuY2VkLXNsaWRlciAuc2xpZGUtYnV0dG9ucyAubWlkZGxlIHsgZmxvYXQ6bGVmdDsgfSAuYWR2YW5jZWQtc2xpZGVyIC5zbGlkZS1idXR0b25zIGEgeyBwb3NpdGlvbjpyZWxhdGl2ZTsgY3Vyc29yOnBvaW50ZXI7IGZsb2F0OmxlZnQ7IHRleHQtZGVjb3JhdGlvbjpub25lOyB0ZXh0LWFsaWduOmNlbnRlcjsgfSAuYWR2YW5jZWQtc2xpZGVyIC50aHVtYm5haWwtc2Nyb2xsZXIgeyBwb3NpdGlvbjphYnNvbHV0ZTsgei1pbmRleDoyMDsgfSAuYWR2YW5jZWQtc2xpZGVyIC50aHVtYm5haWwtc2Nyb2xsZXIgLnZpc2libGUtY29udGFpbmVyIHsgcG9zaXRpb246cmVsYXRpdmU7IG92ZXJmbG93OmhpZGRlbjsgfSAuYWR2YW5jZWQtc2xpZGVyIC50aHVtYm5haWwtc2Nyb2xsZXIgLmNvbnRhaW5lciB7IHBvc2l0aW9uOmFic29sdXRlOyBvdmVyZmxvdzp2aXNpYmxlOyB0b3A6MDsgbGVmdDowOyBsaXN0LXN0eWxlOm5vbmU7IG1hcmdpbjowOyBwYWRkaW5nOjA7IH0gLmFkdmFuY2VkLXNsaWRlciAudGh1bWJuYWlsLXNjcm9sbGVyIC50aHVtYm5haWwtd3JhcHBlciB7IGN1cnNvcjpwb2ludGVyOyBsaXN0LXN0eWxlOm5vbmU7IH0gLmFkdmFuY2VkLXNsaWRlciAudGh1bWJuYWlsLXNjcm9sbGVyIC5saWdodGJveC1pY29uIHsgcG9zaXRpb246YWJzb2x1dGU7IHdpZHRoOjMwcHg7IGhlaWdodDozMHB4OyB0b3A6NTAlOyBsZWZ0OjUwJTsgbWFyZ2luLXRvcDotMTVweDsgbWFyZ2luLWxlZnQ6LTE1cHg7IGN1cnNvcjpwb2ludGVyOyB9IC5hZHZhbmNlZC1zbGlkZXIgLnRodW1ibmFpbC1zY3JvbGxlciAubGlnaHRib3gtaWNvbi5wbGF5IHsgYmFja2dyb3VuZC1pbWFnZTp1cmwoL2ltYWdlcy9saWdodGJveF9wbGF5X3NtYWxsLnBuZyk7IH0gLmFkdmFuY2VkLXNsaWRlciAudGh1bWJuYWlsLXNjcm9sbGVyIC5saWdodGJveC1pY29uLm1hZ25pZnlpbmcgeyBiYWNrZ3JvdW5kLWltYWdlOnVybCgvaW1hZ2VzL2xpZ2h0Ym94X21hZ25pZnlpbmdfc21hbGwucG5nKTsgfSAuYWR2YW5jZWQtc2xpZGVyIC50aHVtYm5haWwtc2Nyb2xsZXIgLmxpZ2h0Ym94LWljb24uaHlwZXJsaW5rIHsgYmFja2dyb3VuZC1pbWFnZTp1cmwoL2ltYWdlcy9saWdodGJveF9oeXBlcmxpbmtfc21hbGwucG5nKTsgfSAuYWR2YW5jZWQtc2xpZGVyIC50aHVtYm5haWwgLmNhcHRpb24geyBwb3NpdGlvbjphYnNvbHV0ZTsgd2lkdGg6MTAwJTsgfSAuYWR2YW5jZWQtc2xpZGVyIC50aHVtYm5haWwgLmNhcHRpb24gLmJhY2tncm91bmQgeyBwb3NpdGlvbjphYnNvbHV0ZTsgd2lkdGg6MTAwJTsgaGVpZ2h0OjEwMCU7IHotaW5kZXg6MTA7IH0gLmFkdmFuY2VkLXNsaWRlciAudGh1bWJuYWlsIC5jYXB0aW9uIC5jb250ZW50IHsgcG9zaXRpb246YWJzb2x1dGU7IHdpZHRoOjEwMCU7IHotaW5kZXg6MjA7IH0gLmFkdmFuY2VkLXNsaWRlciAudGh1bWJuYWlsLXNjcm9sbGVyIC5hcnJvd3MgYSB7IHBvc2l0aW9uOmFic29sdXRlOyBjdXJzb3I6cG9pbnRlcjsgfSAuYWR2YW5jZWQtc2xpZGVyIC50aHVtYm5haWwtc2Nyb2xsZXIgLmJ1dHRvbnMgeyBwb3NpdGlvbjphYnNvbHV0ZTsgd2lkdGg6YXV0bzsgfSAuYWR2YW5jZWQtc2xpZGVyIC50aHVtYm5haWwtc2Nyb2xsZXIgLmJ1dHRvbnMgYSB7IHBvc2l0aW9uOmFic29sdXRlOyBjdXJzb3I6cG9pbnRlcjsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IH0gLmFkdmFuY2VkLXNsaWRlci10b29sdGlwIHsgcG9zaXRpb246YWJzb2x1dGU7IHotaW5kZXg6OTk5OTsgfSAub2VtLWltZy1zbGlkZXIgLnNsaWRlIGEgeyBkaXNwbGF5OmZsZXg7IGFsaWduLWl0ZW1zOmNlbnRlcjsganVzdGlmeS1jb250ZW50OmNlbnRlcjsgfSAub2VtLWltZy1zbGlkZXIgLnNsaWRlOm50aC1jaGlsZCgtbis0KSBhIGltZ3sgd2lkdGg6MTE1JSAhaW1wb3J0YW50OyB9IC5vZW0taW1nLXNsaWRlciAuc2xpZGUgYSBpbWd7IGhlaWdodDphdXRvICFpbXBvcnRhbnQ7IG1hcmdpbjowICFpbXBvcnRhbnQ7IG1heC13aWR0aDpub25lICFpbXBvcnRhbnQ7IG1heC1oZWlnaHQ6bm9uZSAhaW1wb3J0YW50OyBwb3NpdGlvbjpyZWxhdGl2ZSAhaW1wb3J0YW50OyBsZWZ0OmluaXRpYWwgIWltcG9ydGFudDsgdG9wOmluaXRpYWwgIWltcG9ydGFudDsgbWF4LXdpZHRoOnVuc2V0ICFpbXBvcnRhbnQ7IG1heC1oZWlnaHQ6dW5zZXQgIWltcG9ydGFudDsgfSAub2VtLWltZy1zbGlkZXIgI2ZpcnN0U2xpZGVySW1nIC5wbGFjZWhvbGRlciB7IGJhY2tncm91bmQtc2l6ZToxMTUlOyB9Ci8qKiAvY3NzL3BhZ2ViYW5uZXIuY3NzICoqLwojdG9wQmFubmVySW1hZ2UgeyBwb3NpdGlvbjpyZWxhdGl2ZTsgfSAjdG9wQmFubmVySW1hZ2UgLnRvcEJhbm5lckltYWdlLS1kaXNjbGFpbWVyLWNvbnRhaW5lciB7IHotaW5kZXg6MTEwOyBjb2xvcjp2YXIoLS1kZWZhdWx0LWJsYWNrKTsgZm9udC1zaXplOnZhcigtLWZzKTsgcGFkZGluZzo1cHggMTBweDsgdGV4dC1hbGlnbjpjZW50ZXI7IGRpc3BsYXk6bm9uZTsgfSAjdG9wQmFubmVySW1hZ2UgLnRvcEJhbm5lckltYWdlLS1kaXNjbGFpbWVyLWNvbnRhaW5lciAuZmEtdGltZXMgeyBkaXNwbGF5Om5vbmU7IH0gI3RvcEJhbm5lckltYWdlIC50b3BCYW5uZXJJbWFnZS0tZGlzY2xhaW1lci1jb250cm9sIHsgdGV4dC1hbGlnbjpjZW50ZXI7IGN1cnNvcjpwb2ludGVyOyB0ZXh0LXdyYXA6bm93cmFwOyB9ICN0b3BCYW5uZXJJbWFnZSAudG9wQmFubmVySW1hZ2UtLWRpc2NsYWltZXItY29udHJvbCA+IGJ1dHRvbiB7IHRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7IGZvbnQtc2l6ZTp2YXIoLS1mcyk7IGNvbG9yOnZhcigtLXdoaXRlKTsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1ibGFjayk7IHdpZHRoOjEwMCU7IHBhZGRpbmc6MC43NXJlbTsgfSAjdG9wQmFubmVySW1hZ2U6bm90KDpoYXMoKikpIHsgZGlzcGxheTpub25lOyB9ICN0b3BCYW5uZXJJbWFnZVtkYXRhLWludmNhdD0ibmV3aW52Il06aGFzKC51c2VkSW52QmFubmVyOm9ubHktY2hpbGQpIHsgZGlzcGxheTpub25lOyB9ICN0b3BCYW5uZXJJbWFnZVtkYXRhLWludmNhdD0idXNlZCJdOmhhcygubmV3SW52QmFubmVyOm9ubHktY2hpbGQpIHsgZGlzcGxheTpub25lOyB9ICN0b3BCYW5uZXJJbWFnZVtkYXRhLWludmNhdD0ibmV3aW52Il0gLnVzZWRJbnZCYW5uZXIgeyBkaXNwbGF5Om5vbmU7IH0gI3RvcEJhbm5lckltYWdlW2RhdGEtaW52Y2F0PSJ1c2VkIl0gLm5ld0ludkJhbm5lciB7IGRpc3BsYXk6bm9uZTsgfSAjdG9wQmFubmVySW1hZ2VbZGF0YS1pbnZjYXQ9Im5ld2ludiJdOmhhcygubmV3SW52QmFubmVyKSAjZGVmYXVsdFRvcEJhbm5lciB7IGRpc3BsYXk6bm9uZTsgfSAjdG9wQmFubmVySW1hZ2VbZGF0YS1pbnZjYXQ9InVzZWQiXTpoYXMoLnVzZWRJbnZCYW5uZXIpICNkZWZhdWx0VG9wQmFubmVyIHsgZGlzcGxheTpub25lOyB9ICN0b3BCYW5uZXJJbWFnZSA+IGltZ3sgd2lkdGg6MTAwJTsgfSBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6NzYwcHgpIHsgI3RvcEJhbm5lckltYWdlIC50b3BCYW5uZXJJbWFnZS0tZGlzY2xhaW1lci1jb250cm9sIHsgcG9zaXRpb246YWJzb2x1dGU7IHotaW5kZXg6MTAyOyBsZWZ0OjUwJTsgdHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTUwJSk7IGJvdHRvbTowLjc1cmVtOyB9ICN0b3BCYW5uZXJJbWFnZSAudG9wQmFubmVySW1hZ2UtLWRpc2NsYWltZXItY29udHJvbCA+IGJ1dHRvbiB7IHdpZHRoOmF1dG87IGJvcmRlci1yYWRpdXM6M3B4OyBiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwgMCwgMCwgMC44KTsgYm9yZGVyOm5vbmU7IGNvbG9yOnZhcigtLXdoaXRlKTsgZm9udC1zaXplOnZhcigtLWZzLTIpOyB0ZXh0LWFsaWduOmNlbnRlcjsgY3Vyc29yOnBvaW50ZXI7IGRpc3BsYXk6aW5saW5lLWJsb2NrOyBwYWRkaW5nOjhweCAxM3B4OyB0ZXh0LWRlY29yYXRpb246bm9uZTsgfSAjdG9wQmFubmVySW1hZ2UgLnRvcEJhbm5lckltYWdlLS1kaXNjbGFpbWVyLWNvbnRhaW5lciB7IHBvc2l0aW9uOmFic29sdXRlOyB0b3A6MDsgd2lkdGg6Y2FsYygxMDAlIC0gMjBweCk7IGhlaWdodDpjYWxjKDEwMCUgLSAxMHB4KTsgYmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLDAuOCk7IGNvbG9yOnZhcigtLWxpZ2h0KTsgZm9udC1zaXplOnZhcigtLWZzKTsgfSAjdG9wQmFubmVySW1hZ2UgLnRvcEJhbm5lckltYWdlLS1kaXNjbGFpbWVyLWNvbnRhaW5lciAuZmEtdGltZXMgeyBkaXNwbGF5OmlubGluZS1ibG9jazsgcG9zaXRpb246YWJzb2x1dGU7IHRvcCA6MTBweDsgcmlnaHQ6MTAlOyBjdXJzb3I6cG9pbnRlcjsgfSAjdG9wQmFubmVySW1hZ2UgLnRvcEJhbm5lckltYWdlLS1kaXNjbGFpbWVyLWNvbnRhaW5lciA+IGRpdiB7IHBvc2l0aW9uOmFic29sdXRlOyB3aWR0aDo3NSU7IHRvcDo1MCU7IGxlZnQ6NTAlOyB0cmFuc2Zvcm06dHJhbnNsYXRlWSgtNTAlKSB0cmFuc2xhdGVYKC01MCUpOyBoZWlnaHQ6OTAlOyBvdmVyZmxvdy14OmhpZGRlbjsgb3ZlcmZsb3cteTphdXRvOyB9IH0KLyoqIC9jc3MvZmF2b3JpdGVzLnByZWxvYWQuY3NzICoqLwpkaXYuTWFpbkJveExheWVyIGRpdi5Cb3hDaGlsZC0yIGRpdi5TbGlkZXJPdXRlckJveCwgLmRpdkNhclNpbmdsZU91dGVyQm94IC5kaXZDYXJTaW5nbGVJbm5lckJveCB7IHBvc2l0aW9uOnJlbGF0aXZlOyB9IC5kMmMtZmF2cy10cmlnZ2VyLXdyYXBwZXIgeyBwb3NpdGlvbjphYnNvbHV0ZTsgcmlnaHQ6MTEwcHg7IHRvcDozMHB4OyB6LWluZGV4OjExOyBmb250LXNpemU6MS42ZW07IGN1cnNvcjpwb2ludGVyOyB9IC5jYXJCb3hPdXRlciAuY2FySW1hZ2UgLmQyYy1mYXZzLXRyaWdnZXItd3JhcHBlciB7IHJpZ2h0OjQwcHg7IHRvcDoxNXB4OyB9IC5kaXZDYXJTaW5nbGVPdXRlckJveCAuZGl2Q2FyU2luZ2xlSW5uZXJCb3ggLmRpdkNhclRpdGxlQ29udGFpbmVyIHsgbWF4LXdpZHRoOjg1JTsgfSAuZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggLmRpdkNhclNpbmdsZUlubmVyQm94IC5kMmMtZmF2cy10cmlnZ2VyLXdyYXBwZXIgeyByaWdodDoyN3B4OyB0b3A6MDsgfSAuZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggLnJlYmF0ZVRhZyArIC5kaXZDYXJTaW5nbGVJbm5lckJveCAuZDJjLWZhdnMtdHJpZ2dlci13cmFwcGVyIHsgdG9wOjYwcHg7IH0gLmZhLWxheWVycyAuZmEsIC5mYS1sYXllcnMgLmZhciB7IHBvc2l0aW9uOmFic29sdXRlOyB0b3A6MDsgbGVmdDowOyB9IC5kMmMtZmF2cy10cmlnZ2VyLXdyYXBwZXIgLmZhLWxheWVycyAuZmEgeyBjb2xvcjojRkZGOyBmb250LXNpemU6MC45NzVlbTsgbGVmdDoxcHggIWltcG9ydGFudDsgfSAuZDJjLWZhdnMtdHJpZ2dlci13cmFwcGVyIC5mYS1sYXllcnMgLmZhciwgLmQyYy1mYXZzLXRyaWdnZXItd3JhcHBlci5kMmMtZmF2cy1zZWxlY3RlZCAuZmEtbGF5ZXJzIC5mYSB7IGNvbG9yOiMxZjJmNTM7IGNvbG9yOjsgfSBib2R5LmlzRnVsbFdpZHRoUGFnZSAuZDJjLWZhdnMtdHJpZ2dlci13cmFwcGVyIHsgZmlsdGVyOmFscGhhKG9wYWNpdHk9MCk7IG9wYWNpdHk6MDsgfSBkaXYjbXljYXJvdXNlbGRpdiAuZDJjLWZhdnMtdHJpZ2dlci13cmFwcGVyLCBkaXYudXNlZC1kZXRhaWxzIC5kMmMtZmF2cy10cmlnZ2VyLXdyYXBwZXIgeyByaWdodDo0MHB4OyB0b3A6MTVweDsgfSAuaGVhZGVyLXNvY2lhbCAubGFuZ3VhZ2VCYXIgeyBtYXJnaW4tcmlnaHQ6MjVweDsgfSAubGFuZ3VhZ2VCYXIgZGl2LmQyYy1mYXZzLW5hdi13cmFwcGVyIHsgZm9udC1zaXplOnZhcigtLWZzNSk7IHBvc2l0aW9uOnJlbGF0aXZlOyB3aWR0aDoyOHB4OyBoZWlnaHQ6MjhweDsgfSAubGFuZ3VhZ2VCYXIgZGl2LmQyYy1mYXZzLW5hdi13cmFwcGVyIGkuZmEgeyBjb2xvcjp0cmFuc3BhcmVudDsgfSAubGFuZ3VhZ2VCYXIgZGl2LmQyYy1mYXZzLW5hdi13cmFwcGVyIGkuZmFyIHsgY29sb3I6I2FlYjViZTsgZm9udC13ZWlnaHQ6MTAwOyB9IC5sYW5ndWFnZUJhciBkaXYuZDJjLWZhdnMtbmF2LXdyYXBwZXIuZmF2LW5hdi1oYXMtdmVoaWNsZXMgLmZhLWxheWVycyBpLmZhLCAubGFuZ3VhZ2VCYXIgZGl2LmQyYy1mYXZzLW5hdi13cmFwcGVyLmZhdi1uYXYtaGFzLXZlaGljbGVzIC5mYS1sYXllcnMgaS5mYXIgeyBjdXJzb3I6cG9pbnRlcjsgY29sb3I6IzFmMmY1MzsgY29sb3I6OyB9IC5sYW5ndWFnZUJhciBkaXYuZDJjLWZhdnMtbmF2LXdyYXBwZXIgaS5mYXIgc3Bhbi5mYXYtbmF2LWNvdW50IHsgcG9zaXRpb246YWJzb2x1dGU7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IHRvcDo3cHg7IGxlZnQ6MDsgd2lkdGg6MTAwJTsgY29sb3I6I0ZGRjsgdGV4dC1hbGlnbjpjZW50ZXI7IGZvbnQtd2VpZ2h0OjYwMDsgZm9udC1mYW1pbHk6dmFyKC0tZm9udC1tZW51KSAhaW1wb3J0YW50OyB9IC5sYW5ndWFnZUJhciAuZDJjLWZhdnMtbmF2LXdyYXBwZXIgLmQyYy1mYXZzLW5hdi1kcm9wZG93bi13cmFwcGVyIHsgZGlzcGxheTpub25lOyB9IC5oZWFkZXItc29jaWFsIGRpdi5sYW5ndWFnZUJhci5pc0tpYVNoaWZ0IHsgbWFyZ2luLXJpZ2h0OjA7IH0gLmxhbmd1YWdlQmFyIC5kMmMtZmF2cy1uYXYtd3JhcHBlci5pc0tpYVNoaWZ0IHsgZm9udC1zaXplOjAuODc1cmVtOyB3aWR0aDoyMHB4OyBsZWZ0OjA7IHRvcDo1cHg7IG1hcmdpbi1yaWdodDoxMHB4OyB9IC5sYW5ndWFnZUJhciBkaXYuZDJjLWZhdnMtbmF2LXdyYXBwZXIuaXNLaWFTaGlmdCBpIHsgcGFkZGluZzowOyBtYXJnaW4tcmlnaHQ6OHB4OyBmb250LXNpemU6MS4yNXJlbTsgfSAubGFuZ3VhZ2VCYXIgZGl2LmQyYy1mYXZzLW5hdi13cmFwcGVyLmZhdi1uYXYtaGFzLXZlaGljbGVzLmlzS2lhU2hpZnQgLmZhLWxheWVycyBpLmZhLCAubGFuZ3VhZ2VCYXIgZGl2LmQyYy1mYXZzLW5hdi13cmFwcGVyLmZhdi1uYXYtaGFzLXZlaGljbGVzLmlzS2lhU2hpZnQgLmZhLWxheWVycyBpLmZhciB7IGN1cnNvcjpwb2ludGVyOyBjb2xvcjojRkZGOyB9IC5sYW5ndWFnZUJhciBkaXYuZDJjLWZhdnMtbmF2LXdyYXBwZXIuaXNLaWFTaGlmdCBpLmZhciBzcGFuLmZhdi1uYXYtY291bnQgeyBwYWRkaW5nOjA7IGZvbnQtc2l6ZTowLjY3NXJlbTsgdG9wOjRweDsgY29sb3I6IzAwMDsgfSAubGFuZ3VhZ2VCYXIgLmQyYy1mYXZzLW5hdi13cmFwcGVyLmlzS2lhU2hpZnQgLmQyYy1mYXZzLW5hdi1kcm9wZG93bi13cmFwcGVyIHsgdG9wOjIwcHg7IH0KLyoqIC9jc3MvZmF2b3JpdGVzLmxvYWQuY3NzICoqLwpib2R5LmlzRnVsbFdpZHRoUGFnZSBkaXYuTWFpbkJveExheWVyIGRpdi5Cb3hDaGlsZC0yIGRpdi5TbGlkZXJPdXRlckJveDpob3ZlciAuZDJjLWZhdnMtdHJpZ2dlci13cmFwcGVyLCBib2R5LmlzRnVsbFdpZHRoUGFnZSAuZGl2Q2FyU2luZ2xlT3V0ZXJCb3g6aG92ZXIgLmRpdkNhclNpbmdsZUlubmVyQm94IC5kMmMtZmF2cy10cmlnZ2VyLXdyYXBwZXIsIGJvZHkuaXNGdWxsV2lkdGhQYWdlIC5jYXJCb3hPdXRlcjpob3ZlciAuY2FySW1hZ2UgLmQyYy1mYXZzLXRyaWdnZXItd3JhcHBlciwgYm9keS5pc0Z1bGxXaWR0aFBhZ2UgLmQyYy1mYXZzLXRyaWdnZXItd3JhcHBlci5kMmMtZmF2cy1zZWxlY3RlZCB7IGZpbHRlcjphbHBoYShvcGFjaXR5PTEwMCk7IG9wYWNpdHk6MTsgLXdlYmtpdC10cmFuc2l0aW9uOm9wYWNpdHkgMzUwbXMgZWFzZS1pbi1vdXQ7IC1tb3otdHJhbnNpdGlvbjpvcGFjaXR5IDM1MG1zIGVhc2UtaW4tb3V0OyAtbXMtdHJhbnNpdGlvbjpvcGFjaXR5IDM1MG1zIGVhc2UtaW4tb3V0OyAtby10cmFuc2l0aW9uOm9wYWNpdHkgMzUwbXMgZWFzZS1pbi1vdXQ7IHRyYW5zaXRpb246b3BhY2l0eSAzNTBtcyBlYXNlLWluLW91dDsgfSAubGFuZ3VhZ2VCYXIgLmQyYy1mYXZzLW5hdi13cmFwcGVyIC5kMmMtZmF2cy1uYXYtZHJvcGRvd24td3JhcHBlciB7IHdpZHRoOjQwMHB4OyBwb3NpdGlvbjphYnNvbHV0ZTsgcmlnaHQ6MDsgdG9wOjI1cHg7IHotaW5kZXg6OTk5OTsgYmFja2dyb3VuZC1jb2xvcjojRkZGOyBib3JkZXI6MXB4IHNvbGlkICNlNWU1ZTU7IGJvcmRlci1ib3R0b206bm9uZTsgLXdlYmtpdC1ib3gtc2hhZG93OjAgNnB4IDEycHggcmdiYSgwLDAsMCwwLjE4KTsgYm94LXNoYWRvdzowIDZweCAxMnB4IHJnYmEoMCwgMCwgMCwgMC4xOCk7IG92ZXJmbG93OmhpZGRlbjsgfSAubGFuZ3VhZ2VCYXIgLmQyYy1mYXZzLW5hdi13cmFwcGVyIC5kMmMtZmF2cy1uYXYtZHJvcGRvd24td3JhcHBlcjpob3ZlciwgLmxhbmd1YWdlQmFyIC5kMmMtZmF2cy1uYXYtd3JhcHBlcjpub3QoLmQyYy1mYXZzLW5hdi1kaXNhYmxlZCk6aG92ZXIgLmQyYy1mYXZzLW5hdi1kcm9wZG93bi13cmFwcGVyIHsgZGlzcGxheTpibG9jazsgfSAubGFuZ3VhZ2VCYXIgLmQyYy1mYXZzLW5hdi13cmFwcGVyIC5kMmMtZmF2cy1uYXYtZHJvcGRvd24td3JhcHBlciAuZDJjLWZhdnMtbmF2LWRyb3Bkb3duLWlubmVyQm94IHsgd2lkdGg6MTAwJTsgfSAubGFuZ3VhZ2VCYXIgLmQyYy1mYXZzLW5hdi13cmFwcGVyIC5kMmMtZmF2cy1uYXYtZHJvcGRvd24td3JhcHBlciAuZDJjLWZhdnMtbmF2LWRyb3Bkb3duLWlubmVyQm94IGEgeyB3aWR0aDoxMDAlOyBkaXNwbGF5OmJsb2NrOyBmb250LXNpemU6MC44NzVyZW07IH0gLmxhbmd1YWdlQmFyIC5kMmMtZmF2cy1uYXYtd3JhcHBlciAuZDJjLWZhdnMtbmF2LWRyb3Bkb3duLXdyYXBwZXIgLmQyYy1mYXZzLW5hdi1kcm9wZG93bi1pbm5lckJveCBhIC5kMmMtZmF2cy1uYXYtZHJvcGRvd24taXRlbSB7IHBhZGRpbmc6MTBweDsgd2lkdGg6Y2FsYygxMDAlIC0gMjBweCk7IGRpc3BsYXk6YmxvY2s7IGJvcmRlci1ib3R0b206MXB4IHNvbGlkICNlNWU1ZTU7IHRleHQtYWxpZ246bGVmdDsgbWluLWhlaWdodDozMHB4OyB9IC5sYW5ndWFnZUJhciAuZDJjLWZhdnMtbmF2LXdyYXBwZXIgLmQyYy1mYXZzLW5hdi1kcm9wZG93bi13cmFwcGVyIC5kMmMtZmF2cy1uYXYtZHJvcGRvd24taW5uZXJCb3ggYSAuZDJjLWZhdnMtbmF2LWRyb3Bkb3duLWl0ZW06aG92ZXIgeyBiYWNrZ3JvdW5kLWNvbG9yOiNmM2YzZjM7IH0gLmQyYy1mYXZzLW5hdi1kZC13cmFwcGVyIC5kMmMtZmF2cy1uYXYtZHJvcGRvd24taXRlbS1zdWIsIC5sYW5ndWFnZUJhciAuZDJjLWZhdnMtbmF2LXdyYXBwZXIgLmQyYy1mYXZzLW5hdi1kcm9wZG93bi13cmFwcGVyIC5kMmMtZmF2cy1uYXYtZHJvcGRvd24taW5uZXJCb3ggYSAuZDJjLWZhdnMtbmF2LWRyb3Bkb3duLWl0ZW0tc3ViIHsgY29sb3I6I2ExYTFhMTsgZm9udC1zaXplOjAuN3JlbTsgZm9udC13ZWlnaHQ6MTAwOyBkaXNwbGF5OmJsb2NrOyBtYXJnaW4tdG9wOjVweDsgdGV4dC1hbGlnbjpsZWZ0OyB9IC5kMmMtZmF2cy1uYXYtZGQtd3JhcHBlci5kMmMtZmF2cy1uYXYtZGlzYWJsZWQgLm1lbnVFeHBhbmQgeyBkaXNwbGF5Om5vbmU7IH0gLmQyYy1mYXZzLW5hdi1kZC13cmFwcGVyIC5kMmMtZmF2cy1uYXYtZHJvcGRvd24taXRlbS1zdWIgeyBtYXJnaW4tdG9wOjVweDsgfSAubGFuZ3VhZ2VCYXIgLmQyYy1mYXZzLW5hdi13cmFwcGVyIC5kMmMtZmF2cy1uYXYtZHJvcGRvd24td3JhcHBlciAuZDJjLWZhdnMtbmF2LWRyb3Bkb3duLWlubmVyQm94IGEgLmQyYy1mYXZzLW5hdi1kcm9wZG93bi1pdGVtIGltZyB7IG1heC13aWR0aDo1MHB4OyBmbG9hdDpsZWZ0OyBtYXJnaW4tcmlnaHQ6MTBweDsgfSAubGFuZ3VhZ2VCYXIgLmQyYy1mYXZzLW5hdi13cmFwcGVyIC5kMmMtZmF2cy1uYXYtZHJvcGRvd24td3JhcHBlciAuZDJjLWZhdnMtbmF2LWRyb3Bkb3duLWlubmVyQm94IGEgLmQyYy1mYXZzLW5hdi1kcm9wZG93bi1pdGVtIGRpdiB7IGZsb2F0Om5vbmU7IGRpc3BsYXk6aW5saW5lLWJsb2NrOyB9IC5kMmMtZmF2cy1uYXYtZGQtd3JhcHBlciAuZDJjLWZhdnMtbmF2LXdyYXBwZXIgaS5mYSB7IGZvbnQtc2l6ZTowLjg1cmVtOyB9Ci8qKiAvY3NzL3ZlaGljbGVGZWF0dXJlU3VtbWFyeS5wcmVsb2FkLmNzcyAqKi8KLnZkcEZlYXR1cmVTdW1tYXJ5eyAtLXN3aXRjaC1icDo1MHJlbTsgYm9yZGVyLWNvbG9yOiNjY2NjY2M7IGNsZWFyOmJvdGg7IH0gLnZzZmlJdGVtU3VtbWFyeSB7IGZvbnQtd2VpZ2h0OjcwMDsgZm9udC1zaXplOjEuMnJlbTsgfSAudmRwRmVhdHVyZUNvbnN1bXB0aW9ueyBkaXNwbGF5OmZsZXg7IGZsZXgtd3JhcDp3cmFwOyB9IC52ZHBGZWF0dXJlQ29uc3VtcHRpb24gPiAqeyBmbGV4OjEgMSAzMSU7IG1pbi13aWR0aDo5cmVtOyB9Ci8qKiAvY3NzL3Zpc2l0Q29udGFjdEZvcm0uY3NzICoqLwoudmlzaXRDb250YWN0SGVhZGVyeyBwYWRkaW5nOjEwcHggNXB4OyBwb3NpdGlvbjpyZWxhdGl2ZTsgfSAudmlzaXRDb250YWN0SGVhZGVyIC52aXNpdENvbnRhY3RDVEFDb250YWluZXJ7IHdpZHRoOjEwMCU7IH0gLnZpc2l0Q29udGFjdEhlYWRlciAudmlzaXRDb250YWN0Rm9ybUNvbnRhaW5lcnsgZGlzcGxheTpub25lOyB6LWluZGV4OjEwMDk5OyBiYWNrZ3JvdW5kLWNvbG9yOndoaXRlOyBoZWlnaHQ6YXV0bzsgcG9zaXRpb246YWJzb2x1dGU7IHdpZHRoOjI1MHB4OyBwYWRkaW5nOjE1cHg7IHRvcDo1MHB4OyBsZWZ0Oi0yMHB4OyBib3gtc2hhZG93OjAgNnB4IDEycHggcmdiYSgwLCAwLCAwLCAuMTc1KTsgfSAudmlzaXRDb250YWN0SGVhZGVyOmhvdmVyIC52aXNpdENvbnRhY3RGb3JtQ29udGFpbmVyeyBkaXNwbGF5OmJsb2NrOyB9IC52aXNpdENvbnRhY3RIZWFkZXIgLnZpc2l0Q29udGFjdEZvcm1Db250YWluZXIuaXNPcGVueyBkaXNwbGF5OmJsb2NrOyB9IC52aXNpdENvbnRhY3RGb3JtQ29udGFpbmVyIC52aXNpdENvbnRhY3RGb3JtIHRleHRhcmVhLnZpc2l0Q29udGFjdENvbW1lbnR7IGRpc3BsYXk6bm9uZTsgaGVpZ2h0OjQwcHg7IHJlc2l6ZTp2ZXJ0aWNhbDsgfSAudmlzaXRDb250YWN0Rm9ybUNvbnRhaW5lciAudmlzaXRDb250YWN0Rm9ybSB0ZXh0YXJlYS52aXNpdENvbnRhY3RDb21tZW50LnNob3dDb21tZW50eyBkaXNwbGF5OmJsb2NrOyB9IC52aXNpdENvbnRhY3RIZWFkZXIgLnZpc2l0Q29udGFjdENUQUNvbnRhaW5lciAudmlzaXRDb250YWN0QnV0dG9ueyB3aWR0aDoxMDAlOyB0ZXh0LWFsaWduOmNlbnRlcjsgcGFkZGluZzoxMXB4IDVweCA5cHg7IGJhY2tncm91bmQtY29sb3I6I2ViMDAwMDsgY29sb3I6I2ZmZmZmZjsgfSAudmlzaXRDb250YWN0SGVhZGVyIC52aXNpdENvbnRhY3RGb3JtQ29udGFpbmVyIC52aXNpdENvbnRhY3RGb3JtIC52aXNpdENvbnRhY3RGb3JtU3VibWl0eyBoZWlnaHQ6YXV0bzsgbWFyZ2luLWJvdHRvbTowOyB3aWR0aDoxMDAlOyBiYWNrZ3JvdW5kLWNvbG9yOiNlYjAwMDA7IGNvbG9yOiNmZmZmZmY7IH0KLyoqIC9jc3MvdG9hc3RyLmNzcyAqKi8KLnRvYXN0LXRpdGxle2ZvbnQtd2VpZ2h0OmJvbGR9LnRvYXN0LW1lc3NhZ2V7LW1zLXdvcmQtd3JhcDpicmVhay13b3JkO3dvcmQtd3JhcDpicmVhay13b3JkfS50b2FzdC1tZXNzYWdlIGEsLnRvYXN0LW1lc3NhZ2UgbGFiZWx7Y29sb3I6I2ZmZn0udG9hc3QtbWVzc2FnZSBhOmhvdmVye2NvbG9yOiNjY2M7dGV4dC1kZWNvcmF0aW9uOm5vbmV9LnRvYXN0LWNsb3NlLWJ1dHRvbntwb3NpdGlvbjpyZWxhdGl2ZTtyaWdodDotMC4zZW07dG9wOi0wLjNlbTtmbG9hdDpyaWdodDtmb250LXNpemU6MS4yNXJlbSA7Zm9udC13ZWlnaHQ6Ym9sZDtjb2xvcjppbmhlcml0Oy13ZWJraXQtdGV4dC1zaGFkb3c6MCAxcHggMCAjZmZmO3RleHQtc2hhZG93OjAgMXB4IDAgI2ZmZjtvcGFjaXR5Oi44Oy1tcy1maWx0ZXI6YWxwaGEob3BhY2l0eT04MCk7ZmlsdGVyOmFscGhhKG9wYWNpdHk9ODApfS50b2FzdC1jbG9zZS1idXR0b246aG92ZXIsLnRvYXN0LWNsb3NlLWJ1dHRvbjpmb2N1c3tjb2xvcjojMDAwMDAwO3RleHQtZGVjb3JhdGlvbjpub25lO2N1cnNvcjpwb2ludGVyO29wYWNpdHk6LjQ7LW1zLWZpbHRlcjphbHBoYShvcGFjaXR5PTQwKTtmaWx0ZXI6YWxwaGEob3BhY2l0eT00MCl9YnV0dG9uLnRvYXN0LWNsb3NlLWJ1dHRvbntwYWRkaW5nOjA7Y3Vyc29yOnBvaW50ZXI7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtib3JkZXI6MDstd2Via2l0LWFwcGVhcmFuY2U6bm9uZX0udG9hc3QtdG9wLWNlbnRlcnt0b3A6MDtyaWdodDowO3dpZHRoOjEwMCV9LnRvYXN0LWJvdHRvbS1jZW50ZXJ7Ym90dG9tOjA7cmlnaHQ6MDt3aWR0aDoxMDAlfS50b2FzdC10b3AtZnVsbC13aWR0aHt0b3A6MDtyaWdodDowO3dpZHRoOjEwMCV9LnRvYXN0LWJvdHRvbS1mdWxsLXdpZHRoe2JvdHRvbTowO3JpZ2h0OjA7d2lkdGg6MTAwJX0udG9hc3QtdG9wLWxlZnR7dG9wOjEycHg7bGVmdDoxMnB4fS50b2FzdC10b3AtcmlnaHR7dG9wOjEycHg7cmlnaHQ6MTJweH0udG9hc3QtYm90dG9tLXJpZ2h0e3JpZ2h0OjEycHg7Ym90dG9tOjEycHh9LnRvYXN0LWJvdHRvbS1sZWZ0e2JvdHRvbToxMnB4O2xlZnQ6MTJweH0jdG9hc3QtY29udGFpbmVye3Bvc2l0aW9uOmZpeGVkO3otaW5kZXg6OTk5OTk5O2NvbG9yOiNGRkZ9I3RvYXN0LWNvbnRhaW5lciAqey1tb3otYm94LXNpemluZzpib3JkZXItYm94Oy13ZWJraXQtYm94LXNpemluZzpib3JkZXItYm94O2JveC1zaXppbmc6Ym9yZGVyLWJveH0jdG9hc3QtY29udGFpbmVyPmRpdntwb3NpdGlvbjpyZWxhdGl2ZTtvdmVyZmxvdzpoaWRkZW47bWFyZ2luOjAgMCA2cHg7cGFkZGluZzoxNXB4IDE1cHggMTVweCA1MHB4O3dpZHRoOjMwMHB4Oy1tb3otYm9yZGVyLXJhZGl1czozcHggM3B4IDNweCAzcHg7LXdlYmtpdC1ib3JkZXItcmFkaXVzOjNweCAzcHggM3B4IDNweDtib3JkZXItcmFkaXVzOjNweCAzcHggM3B4IDNweDtiYWNrZ3JvdW5kLXBvc2l0aW9uOjE1cHggY2VudGVyO2JhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDstbW96LWJveC1zaGFkb3c6MCAwIDEycHggIzk5OTstd2Via2l0LWJveC1zaGFkb3c6MCAwIDEycHggIzk5OTtib3gtc2hhZG93OjAgMCAxMnB4ICM5OTk7Y29sb3I6aW5oZXJpdDtvcGFjaXR5Oi44Oy1tcy1maWx0ZXI6YWxwaGEob3BhY2l0eT04MCk7ZmlsdGVyOmFscGhhKG9wYWNpdHk9ODApfSN0b2FzdC1jb250YWluZXI+OmhvdmVyey1tb3otYm94LXNoYWRvdzowIDAgMTJweCAjMDAwOy13ZWJraXQtYm94LXNoYWRvdzowIDAgMTJweCAjMDAwO2JveC1zaGFkb3c6MCAwIDEycHggIzAwMDtvcGFjaXR5OjE7LW1zLWZpbHRlcjphbHBoYShvcGFjaXR5PTEwMCk7ZmlsdGVyOmFscGhhKG9wYWNpdHk9MTAwKTtjdXJzb3I6cG9pbnRlcn0jdG9hc3QtY29udGFpbmVyPi50b2FzdC1pbmZve2JhY2tncm91bmQtaW1hZ2U6dXJsKCJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUJnQUFBQVlDQVlBQUFEZ2R6MzRBQUFBQVhOU1IwSUFyczRjNlFBQUFBUm5RVTFCQUFDeGp3djhZUVVBQUFBSmNFaFpjd0FBRHNNQUFBN0RBY2R2cUdRQUFBR3dTVVJCVkVoTHRaYTlTZ05CRU1jOXNVeHhSY29VS1N6U1dJaFhwRk1oaFlXRmhhQmc0eVBZaVdDWFp4QkxFUnNMUlMzRVFrRWZ3Q0tkaldKQXdTS0Nnb0tDY3VkdjRPNVlMcnQ3RXpnWGhpVTMvNCtiMmNrbXdWakpTcEtrUTZ3QWk0Z3doVCt6M3dSQmNFejB5alNzZVVUcmNSeWZzSHNYbUQwQW1iSE9DOUlpOFZJbW51WEJQZ2xIcFE1d3dTVk03c05uVEc3WmE0SndEZENqeHlBaUgzbnlBMm10YVRKdWZpRFo1ZENhcWxJdElMaDFOSGF0Zk41c2t2ang5WjM4bTY5Q2d6dVhtWmdWclBJR0U3NjNKeDlxS3NSb3pXWXc2eE9IZEVSK25uMktrTytCYitVVjVDQk42V0M2UXRCZ2JSVm96cmFoQWJtbTZIdFVzZ3RQQzE5dEZkeFhaWUJPZmtibUZKMVZhSEExVkFIamQwcHA3MG9UWnp2UitFVnJ4MllnZmRzcTZldTU1QkhZUjhobGNraStuK2tFUlVGRzhCckEwQndqZUF2Mk04V0xRQnRjeStTRDZmTnNtbkIzQWxCTHJnVHRWVzFjMlFONGJWV0xBVGFJUzYwSjJEdTV5MVRpSmdqU0J2RlZaZ1Rtd0NVK2RBWkZvUHhHRUVzOG55SEM5QndlMkd2RUp2MldYWmIwdmpkeUZUNEN4azNlL2tJcWxPR29WTHd3UGV2cFlIVCswMFQraFd3WERmNEFKQU9VcVdjRGhid0FBQUFBU1VWT1JLNUNZSUk9IikgIWltcG9ydGFudH0jdG9hc3QtY29udGFpbmVyPi50b2FzdC1lcnJvcntiYWNrZ3JvdW5kLWltYWdlOnVybCgiZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFCZ0FBQUFZQ0FZQUFBRGdkejM0QUFBQUFYTlNSMElBcnM0YzZRQUFBQVJuUVUxQkFBQ3hqd3Y4WVFVQUFBQUpjRWhaY3dBQURzTUFBQTdEQWNkdnFHUUFBQUhPU1VSQlZFaExyWmEvU2dOQkVNWnpoMFdLQ0NsU0NLYUlZT0VEK0FBS2VRUUxHOEhXenRMQ0ltQnJZYWRnSWRZK2dJS05Za0JGU3d1N0NBb3FDZ2trb0dCSS9FMjhQZGJMWm1lRExnelp6Y3g4My96WjJTU1hDMWo5ZnIrSTFIcTkzZzJ5eEg0aXdNMXZrb0JXQWR4Q21welR4ZmtOMlJjeVpOYUhGSWtTbzEwKzhrZ3hrWElVUlY1SEd4VG1GdWM3NUIyUmZRa3B4SEc4YUFnYUFGYTB0QUhxWUZmUTdJd2UyeWhPRGs4K0o0Qzd5QW9SVFdJM3cvNGtsR1JnUjRsTzdScG45K2d2TXlXcCt1eEZoOCtIK0FSbGdOMW5KdUp1UUFZdk5rRW53R0ZjazE4RXI0cTNlZ0VjL29PK21oTGRLZ1J5aGRORmlhY0MwcmxPQ2JoTlZ6NEg5Rm5BWWdEQnZVM1FJaW9abEpGTEp0c29IWVJEZmlab1V5SXhxQ3RScFZsQU5xMEVVNGRBcGpydGdlelBGYWQ1UzE5V2dqa2MwaE5WbnVGNEhqVkE2QzdRclNJYnlsQitvWmUzYUhnQnNxbE5xS1lINDhqWHlKS011QWJpeVZKOEt6YUIzZVJjMHBnOVZ3UTRuaUZyeUk2OHFpT2kzQWJqd2RzZm5BdGswYkNqVExKS3I2bXJEOWc4aXEvUy9CODFoZ3VPTWxRVG5WeUc0MHdBY2pubWdzQ05FU0Ryam1lN3dmZnRQNFA3U1A0TjNDSlpkdnpvTnlHcTJjL0hXT1hKR3N2VmcrUkEvazJNQy93TjZJMllBMlB0OEdrQUFBQUFTVVZPUks1Q1lJST0iKSAhaW1wb3J0YW50fSN0b2FzdC1jb250YWluZXI+LnRvYXN0LXN1Y2Nlc3N7YmFja2dyb3VuZC1pbWFnZTp1cmwoImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQmdBQUFBWUNBWUFBQURnZHozNEFBQUFBWE5TUjBJQXJzNGM2UUFBQUFSblFVMUJBQUN4and2OFlRVUFBQUFKY0VoWmN3QUFEc01BQUE3REFjZHZxR1FBQUFEc1NVUkJWRWhMWTJBWUJmUU1nZi8vLzNQOCsvZXZBSWd2QS9Gc0lGK0JhdllERFdNQkdyb2FTTU1CaUU4VkM3QVpEcklGYU1GbmlpM0FaVGpVZ3NVVVdVREE4T2RBSDZpUWJRRWh3NEh5R3NQRWNLQlhCSUM0QVJoZXg0RzRCc2ptd2VVMXNvSUZhR2cvV3RvRlpSSVpkRXZJTWh4a0NDalhJVnNBVFY2Z0ZHQUNzNFJzdzBFR2dJSUgzUUpZSmdIU0FSUVpEcldBQitqYXd6Z3MrUTJVTzQ5RDdqblJTUkdvRUZSSUxjZG1FTVdHSTBjbTBKSjJRcFlBMVJEdmNtekpFV2hBQmhEL3BxckwwUzBDV3VBQktnblJraTlsTHNlUzdnMkFscXdIV1FTS0g0b0tMcklMcFJHaEVRQ3cyTGlSVUlhNGx3QUFBQUJKUlU1RXJrSmdnZz09IikgIWltcG9ydGFudH0jdG9hc3QtY29udGFpbmVyPi50b2FzdC13YXJuaW5ne2JhY2tncm91bmQtaW1hZ2U6dXJsKCJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUJnQUFBQVlDQVlBQUFEZ2R6MzRBQUFBQVhOU1IwSUFyczRjNlFBQUFBUm5RVTFCQUFDeGp3djhZUVVBQUFBSmNFaFpjd0FBRHNNQUFBN0RBY2R2cUdRQUFBR1lTVVJCVkVoTDVaU3ZUc05RRk1iWFpHSUNNWUdZbUpoQVFJSkFJQ1lRUEFBQ2lTREI4QWlJQ1FRSlQ0Q3FRRXdnSnZZQVNBUUNpWmlZbUpoQUlCQVRDQVJKeSs5clRzbGRkOHNLdTFNMCtkTGIwNTd2Ni9sYnEvMnJLMG1TL1RSTmo5Y1dOQUtQWUlKSUk3Z0l4Q2NRNTFjdnFJRCtHSUVYOEFTRzRCMWJLNWdJWkZlUWZvSmRFWE9mZ1g0UUFRZzdrSDJBNjV5UTg3bHl4YjI3c2dna0F6QXVGaGJiZzFLMmtnQ2tCMWJWd3lJUjltMkw3UFJQSWhEVUlYZ0d0eUt3NTc1eXozbFROczZYNEpYbmpWK0xLTS9tM015ZG5UYnRPS0lqdHo2VmhDQnE0dlNtM25jZHJEMmxrMFZnVVhTVktqVkRKWEp6aWpXMVJRZHNVN0Y3N0hlOHU2OGtvTlpUejhPejV5R2E2SjNIM2xaMHhZZ1hCSzJReW1sV1dBK1JXblloc2tMQnYydm1FK2hCTUN0YkE3S1g1ZHJXeVJULzJKc3FaMkl2ZkI5WTRiV0ROTUZiSlJGbUM5RTc0U29TMENxdWx3amtDMCs1YnBjVjFDWjhOTWVqNHBqeTBVK2RvRFFzR3lvMWh6Vkp0dElqaFE3R25CdFJGTjFVYXJVbEg4RjN4aWN0K0hZMDdyRXpvVUdQbFdjalJGUnI0L2dDaFpnYzNaTDJkOG9BQUFBQVNVVk9SSzVDWUlJPSIpICFpbXBvcnRhbnR9I3RvYXN0LWNvbnRhaW5lci50b2FzdC10b3AtY2VudGVyPmRpdiwjdG9hc3QtY29udGFpbmVyLnRvYXN0LWJvdHRvbS1jZW50ZXI+ZGl2e3dpZHRoOjMwMHB4O21hcmdpbjphdXRvfSN0b2FzdC1jb250YWluZXIudG9hc3QtdG9wLWZ1bGwtd2lkdGg+ZGl2LCN0b2FzdC1jb250YWluZXIudG9hc3QtYm90dG9tLWZ1bGwtd2lkdGg+ZGl2e3dpZHRoOjk2JTttYXJnaW46YXV0b30udG9hc3R7YmFja2dyb3VuZC1jb2xvcjojMDMwMzAzfS50b2FzdC1zdWNjZXNze2JhY2tncm91bmQtY29sb3I6IzUxYTM1MX0udG9hc3QtZXJyb3J7YmFja2dyb3VuZC1jb2xvcjojYmQzNjJmfS50b2FzdC1pbmZve2JhY2tncm91bmQtY29sb3I6IzJmOTZiNH0udG9hc3Qtd2FybmluZ3tiYWNrZ3JvdW5kLWNvbG9yOiNmODk0MDZ9LnRvYXN0LXByb2dyZXNze3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MDtib3R0b206MDtoZWlnaHQ6NHB4O2JhY2tncm91bmQtY29sb3I6IzAwMDtvcGFjaXR5Oi40Oy1tcy1maWx0ZXI6YWxwaGEob3BhY2l0eT00MCk7ZmlsdGVyOmFscGhhKG9wYWNpdHk9NDApfUBtZWRpYSBhbGwgYW5kIChtYXgtd2lkdGg6MjQwcHgpeyN0b2FzdC1jb250YWluZXI+ZGl2e3BhZGRpbmc6OHB4IDhweCA4cHggNTBweDt3aWR0aDoxMWVtfSN0b2FzdC1jb250YWluZXIgLnRvYXN0LWNsb3NlLWJ1dHRvbntyaWdodDotMC4yZW07dG9wOi0wLjJlbX19QG1lZGlhIGFsbCBhbmQgKG1pbi13aWR0aDoyNDFweCkgYW5kIChtYXgtd2lkdGg6NDgwcHgpeyN0b2FzdC1jb250YWluZXI+ZGl2e3BhZGRpbmc6OHB4IDhweCA4cHggNTBweDt3aWR0aDoxOGVtfSN0b2FzdC1jb250YWluZXIgLnRvYXN0LWNsb3NlLWJ1dHRvbntyaWdodDotMC4yZW07dG9wOi0wLjJlbX19QG1lZGlhIGFsbCBhbmQgKG1pbi13aWR0aDo0ODFweCkgYW5kIChtYXgtd2lkdGg6NzY4cHgpeyN0b2FzdC1jb250YWluZXI+ZGl2e3BhZGRpbmc6MTVweCAxNXB4IDE1cHggNTBweDt3aWR0aDoyNWVtfX0KLyoqIC9jc3MvY29udGFjdFBvcHVwLmNzcyAqKi8KI2NvbnRhY3Rwb3B1cCB7IHdpZHRoOjU5OHB4OyBtaW4td2lkdGg6MjMwcHg7IH0gI2NvbnRhY3Rwb3B1cC5tb2JpbGUgeyB3aWR0aDoxMDAlOyB9IC5jb250YWN0cG9wdXAubW9iaWxlIHRhYmxlLmpxVHJhbnNmb3JtVGV4dGFyZWEsIC5jb250YWN0cG9wdXAubW9iaWxlIHRhYmxlLmpxVHJhbnNmb3JtVGV4dGFyZWEgdGV4dGFyZWEuanF0cmFuc2Zvcm1kb25lIHsgd2lkdGg6MTAwJTsgfSAuY29udGFjdHBvcHVwLm1vYmlsZSB0YWJsZS5qcVRyYW5zZm9ybVRleHRhcmVhIHRkLmpxVHJhbnNmb3JtVGV4dGFyZWEtbWwsIC5jb250YWN0cG9wdXAubW9iaWxlIHRhYmxlLmpxVHJhbnNmb3JtVGV4dGFyZWEgdGQuanFUcmFuc2Zvcm1UZXh0YXJlYS1tciB7IGRpc3BsYXk6bm9uZTsgfSAjY29udGFjdHBvcHVwICogeyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IH0gI2NvbnRhY3Rwb3B1cC5yZXZlYWwtbW9kYWwgeyBwYWRkaW5nOjA7IH0gI2NvbnRhY3Rwb3B1cC5yZXZlYWwtbW9kYWwgLmNsb3NlLXJldmVhbC1tb2RhbCB7IGRpc3BsYXk6bm9uZTsgfSAjY29udGFjdHBvcHVwIC5jb250YWN0cG9wdXAtYm9keSB7IGJhY2tncm91bmQtY29sb3I6d2hpdGU7IHBhZGRpbmc6MzBweCAxMHB4IDEwcHg7IH0gLmNvbnRhY3Rwb3B1cC1ib2R5IGlucHV0IHsgd2lkdGg6MTAwJTsgfSAuY29udGFjdHBvcHVwLWJvZHkgLmRpdkJsb2NrUm93Om5vdCg6bGFzdC1jaGlsZCkgLmRpdlNwYW4geyBtYXJnaW4tYm90dG9tOjE1cHg7IH0gLmNvbnRhY3Rwb3B1cC1ib2R5IC5kaXZCbG9ja1JvdyAuZGl2U3BhbjY6Zmlyc3QtY2hpbGQgeyBwYWRkaW5nLXJpZ2h0OjE1cHg7IH0gLmNvbnRhY3Rwb3B1cC1ib2R5IC5kaXZCbG9ja1JvdyAuZGl2U3BhbjY6bGFzdC1jaGlsZCB7IHBhZGRpbmctbGVmdDoxNXB4OyB9IC5jb250YWN0cG9wdXAtYm9keSAuZGl2QmxvY2tSb3cgLmRpdlNwYW42IC5qcVRyYW5zZm9ybUlucHV0V3JhcHBlciB7IG1heC13aWR0aDoyNzRweCAhaW1wb3J0YW50OyB9IC5jb250YWN0cG9wdXAtaGVhZGVyIHsgYm9yZGVyLXJhZGl1czo1cHggNXB4IDAgMDsgcGFkZGluZzoxNXB4IDE1cHggMzBweCAxNXB4OyB0ZXh0LWFsaWduOmNlbnRlcjsgcG9zaXRpb246cmVsYXRpdmU7IC13ZWJraXQtYm94LXNoYWRvdzowIDAgMTBweCAycHggcmdiYSgwLDAsMCwwLjMpOyAtbW96LWJveC1zaGFkb3c6MCAwIDEwcHggMnB4IHJnYmEoMCwwLDAsMC4zKTsgYm94LXNoYWRvdzowIDAgMTBweCAycHggcmdiYSgwLDAsMCwwLjMpOyBmb250LXNpemU6MS42MjVyZW0gOyBjb2xvcjojZmZmZmZmOyBiYWNrZ3JvdW5kLWNvbG9yOiMxZjJmNTM7IH0gLmNvbnRhY3Rwb3B1cC1oZWFkZXI6OmFmdGVyIHsgY29udGVudDoiIjsgcG9zaXRpb246YWJzb2x1dGU7IGJvdHRvbTotMTVweDsgbGVmdDo1MCU7IC13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlKTsgLW1vei10cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUpOyAtbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlKTsgLW8tdHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlKTsgdHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlKTsgYm9yZGVyLWxlZnQ6MzBweCBzb2xpZCB0cmFuc3BhcmVudDsgYm9yZGVyLXJpZ2h0OjMwcHggc29saWQgdHJhbnNwYXJlbnQ7IGJvcmRlci10b3A6MTVweCBzb2xpZCAjMWYyZjUzOyB9IC5jb250YWN0cG9wdXAtaGVhZGVyIC5mYS10aW1lcyB7IHBvc2l0aW9uOmFic29sdXRlOyByaWdodDowLjVyZW07IHRvcDowLjVyZW07IGZvbnQtc2l6ZTppbml0aWFsOyB9IC5jb250YWN0cG9wdXAtaGVhZGVyIC5mYS10aW1lczpob3ZlciB7IGN1cnNvcjpwb2ludGVyOyB9IC5jb250YWN0cG9wdXAtaGVhZGVyIC5oZWFkZXItcmVwbGFjZSB7IGRpc3BsYXk6aW5saW5lLWJsb2NrOyB9IGJ1dHRvbi5jb250YWN0LXN1Ym1pdCB7IHBhZGRpbmc6MTBweCAxNXB4OyBkaXNwbGF5OmJsb2NrOyBmbG9hdDpsZWZ0OyB3aWR0aDoxMDAlOyBib3JkZXItY29sb3I6I2ZmZmZmZjsgYmFja2dyb3VuZDojMWYyZjUzOyB0cmFuc2l0aW9uOmFsbCAwLjI1czsgY29sb3I6I2ZmZmZmZjsgZm9udC13ZWlnaHQ6NjAwOyBtYXJnaW46MDsgYm9yZGVyOjFweCBzb2xpZDsgdGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlOyBib3JkZXItcmFkaXVzOjNweDsgZm9udC1zaXplOjEuNTYzcmVtIDsgfSAuY29udGFjdC1zdWJtaXQ6aG92ZXIgeyBjdXJzb3I6cG9pbnRlcjsgYm9yZGVyLWNvbG9yOiNmZmZmZmY7IGJhY2tncm91bmQtY29sb3I6IzAxNjlhYTsgY29sb3I6I2ZmZmZmZjsgfSAuY29udGFjdHBvcHVwLWZvb3RlciB7IH0gLmNvbnRhY3Rwb3B1cC1mb290ZXIgLmJ0bi13cmFwcGVyIHsgcGFkZGluZzoxMHB4OyB9ICNjb250YWN0cG9wdXAgLmpxVHJhbnNmb3JtSW5wdXRJbm5lciBkaXYgeyBoZWlnaHQ6MzBweDsgfSAjY29udGFjdHBvcHVwIC5qcVRyYW5zZm9ybUlucHV0SW5uZXIgZGl2LnZhbGlkaXR5LWVycm9uZW91cyB7IHdpZHRoOmluaGVyaXQ7IH0KLyoqIC9jc3MvZGl2X3RhYmxlcy5jc3MgKiovCmRpdi5kaXZUYWJsZVZpZXd7IGZsb2F0OmxlZnQ7IHdpZHRoOjEwMCU7IH0gZGl2LmRpdlRhYmxlVmlldyBkaXYuZGl2VGFibGVXcmFwZXJ7IH0gZGl2LmRpdlRhYmxlVmlldyBkaXYuZGl2VGl0bGV7IGRpc3BsYXk6YmxvY2s7IGZvbnQtd2VpZ2h0OmJvbGQ7IHRleHQtYWxpZ246bGVmdDsgZm9udC1zaXplOjAuOTM4cmVtIDsgcGFkZGluZzozMHB4IDBweCAxMHB4IDEwcHg7IGNvbG9yOiMwMDAwMDA7IHRleHQtZGVjb3JhdGlvbjpub25lOyB0ZXh0LXRyYW5zZm9ybTp2YXIoLS10eHQtdXBwZXIpOyBoZWlnaHQ6YXV0bzsgfSBkaXYuZGl2VGFibGVWaWV3IGRpdi5kaXZUYWJsZU91dGVyeyBib3JkZXI6MXB4IHNvbGlkICNkZGQ7IHBhZGRpbmc6MDsgYm9yZGVyLXJhZGl1czo4cHg7IG1hcmdpbjowOyBiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LCAyNTUsIDI1NSwgMC43NSk7IG92ZXJmbG93OmhpZGRlbjsgfSBkaXYuZGl2VGFibGVWaWV3IGRpdi5kaXZUYWJsZXsgZGlzcGxheTp0YWJsZTsgd2lkdGg6MTAwJTsgcGFkZGluZzowOyBtYXJnaW46MDsgfSBkaXYuZGl2VGFibGVWaWV3IGRpdi5kaXZIZWFkaW5neyBkaXNwbGF5OnRhYmxlLXJvdzsgZm9udC13ZWlnaHQ6aW5pdGlhbDsgdGV4dC1hbGlnbjpjZW50ZXI7IGZvbnQtd2VpZ2h0OmJvbGQ7IGhlaWdodDo0NXB4OyB9IGRpdi5kaXZUYWJsZVZpZXcgZGl2LmRpdlJvd3sgZGlzcGxheTp0YWJsZS1yb3c7IHdpZHRoOjEwMCU7IGhlaWdodDo2NXB4OyB9IGRpdi5kaXZUYWJsZVZpZXcgZGl2LmRpdkNlbGx7IGRpc3BsYXk6dGFibGUtY2VsbDsgYm9yZGVyLWJvdHRvbToxcHggc29saWQgI2RkZDsgdGV4dC1hbGlnbjpjZW50ZXI7IHBhZGRpbmc6MTVweCAxNXB4IDI1cHggMTVweDsgYm9yZGVyLXJpZ2h0OjFweCBzb2xpZCAjZGRkOyBjb2xvcjojMDAwMDAwOyBmb250LXNpemU6MC44NzVyZW0gOyB9IGRpdi5kaXZUYWJsZVZpZXcgZGl2LmRpdkNlbGw6bGFzdC1jaGlsZHsgYm9yZGVyLXJpZ2h0OjFweCBzb2xpZCB0cmFuc3BhcmVudDsgfSBkaXYuZGl2VGFibGVWaWV3IGRpdi5kaXZIZWFkaW5nIGRpdi5kaXZDZWxseyBwYWRkaW5nOjEwcHggMTVweDsgYmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwgMjU1LCAyNTUsIDEuMCk7IH0gZGl2LmRpdlRhYmxlVmlldyBkaXYuZGl2SGVhZGluZyBkaXYuZGl2Q2VsbDpudGgtY2hpbGQoZXZlbil7IGJhY2tncm91bmQtY29sb3I6I2VlZTsgfSBkaXYuZGl2VGFibGVWaWV3IGRpdi5kaXZIZWFkaW5nIGRpdi5kaXZDZWxsOmxhc3QtY2hpbGR7IGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOjhweDsgfSBkaXYuZGl2VGFibGVWaWV3IGRpdi5kaXZIZWFkaW5nIGRpdi5kaXZDZWxsOmZpcnN0LWNoaWxkeyBib3JkZXItdG9wLWxlZnQtcmFkaXVzOjhweDsgfSBkaXYuZGl2VGFibGVWaWV3IGRpdi5kaXZSb3c6bGFzdC1jaGlsZCBkaXYuZGl2Q2VsbHsgYm9yZGVyLWJvdHRvbTowcHg7IH0gZGl2LmRpdlRhYmxlVmlldyBkaXYuZGl2Um93IGRpdi5kaXZDZWxseyBiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTsgfSBkaXYuZGl2VGFibGVWaWV3IGRpdi5kaXZSb3cgZGl2LmRpdkNlbGw6bnRoLWNoaWxkKGV2ZW4peyBiYWNrZ3JvdW5kLWNvbG9yOiNmNmY3Zjg7IH0KLyoqIC9jc3MvY3JlZGl0U2NvcmVQb3B1cC5jc3MgKiovCiNjcmVkaXRTY29yZVBvcHVwQ29udGFpbmVyeyBiYWNrZ3JvdW5kOndoaXRlOyB9ICNjcmVkaXRTY29yZVBvcHVwQ29udGFpbmVyIHNwYW57IG1hcmdpbjowOyBwYWRkaW5nOjA7IGZvbnQtc2l6ZToxLjMxM3JlbSA7IH0gI2NyZWRpdFNjb3JlUG9wdXBDb250YWluZXIgc3Bhbi5jcmVkaXRTY29yZUdyZWVuQ29sb3J7IGNvbG9yOiM0ZDhmMTQ7IGZvbnQtd2VpZ2h0OmJvbGQ7IH0gI2NyZWRpdFNjb3JlUG9wdXBDb250YWluZXIgc3Bhbi5jcmVkaXRTY29yZUJvbGR7IGZvbnQtd2VpZ2h0OmJvbGQ7IH0gLmNyZWRpdFNjb3JlX2J0bnsgY29sb3I6I2ZmZmZmZjsgYmFja2dyb3VuZDojNGQ4ZjE0OyBkaXNwbGF5OmJsb2NrOyBwYWRkaW5nOjEycHggMzBweDsgYm9yZGVyOm5vbmU7IGJvcmRlci1yYWRpdXM6NXB4OyBjdXJzb3I6cG9pbnRlcjsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zaXplOjFyZW0gOyB0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7IGxldHRlci1zcGFjaW5nOjFweDsgdHJhbnNpdGlvbjpvcGFjaXR5IDAuMnM7IH0gLmNyZWRpdFNjb3JlX2J0bjpob3Zlcnsgb3BhY2l0eTowLjg1OyB9IC5jcmVkaXRTY29yZUltYWdleyBoZWlnaHQ6MjMwcHg7IH0gI2NyZWRpdFNjb3JlUG9wdXBDb250YWluZXIgZGl2LnNjb3JlQ3JlZGl0VGl0bGV7IGZvbnQtc2l6ZToxLjVyZW0gOyBtYXJnaW4tdG9wOjU1cHg7IH0gI2NyZWRpdFNjb3JlUG9wdXBDb250YWluZXIgZGl2LnNjb3JlQ3JlZGl0SW1hZ2V7IHRleHQtYWxpZ246cmlnaHQ7IH0gI2NyZWRpdFNjb3JlUG9wdXBDb250YWluZXIgc3Bhbi5jcmVkaXRTY29yZVRpdGxlRnJlZXsgZm9udC1zaXplOjIuODEzcmVtIDsgdGV4dC1zaGFkb3c6MnB4IDA7IH0gI2NyZWRpdFNjb3JlUG9wdXBDb250YWluZXIgc3Bhbi5jcmVkaXRTY29yZVRpdGxlU2NvcmV7IGZvbnQtc2l6ZToxLjgxM3JlbSA7IHRleHQtc2hhZG93OjEuNHB4IDA7IH0gI2NyZWRpdFNjb3JlUG9wdXBDb250YWluZXIgaW5wdXR7IGhlaWdodDozMnB4OyBmb250LXNpemU6MC45MzhyZW0gOyB3aWR0aDoxNjJweDsgcGFkZGluZzowIDEwcHg7IG1hcmdpbi1ib3R0b206MTBweDsgYm9yZGVyOjFweCBzb2xpZCAjZWVlZWVlOyBib3gtc2l6aW5nOmNvbnRlbnQtYm94OyB9ICNjcmVkaXRTY29yZVBvcHVwQ29udGFpbmVyIC5jcmVkaXRTY29yZUFkZHJlc3N7IHdpZHRoOjM5M3B4OyB9ICNjcmVkaXRTY29yZVBvcHVwQ29udGFpbmVyIC5jcmVkaXRTY29yZV9idG57IHdpZHRoOjE4MHB4OyBoZWlnaHQ6YXV0bzsgcGFkZGluZzoxMnB4IDMwcHg7IGJvcmRlcjpub25lOyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IHRleHQtYWxpZ246Y2VudGVyOyBtYXJnaW4tbGVmdDphdXRvOyBtYXJnaW4tcmlnaHQ6YXV0bzsgbWFyZ2luLWJvdHRvbTowOyB9ICNjcmVkaXRTY29yZVBvcHVwQ29udGFpbmVyIGRpdi5jcmVkaXRTY29yZUV4dHJhVGV4dHsgdGV4dC1hbGlnbjpjZW50ZXI7IH0gI2NyZWRpdFNjb3JlUG9wdXBDb250YWluZXIgZGl2LmNyZWRpdFNjb3JlQ29uc2VudE1lc3NhZ2V7IGNvbG9yOiNiM2IzYjM7IGZvbnQtc2l6ZTowLjc1cmVtIDsgdGV4dC1hbGlnbjpjZW50ZXI7IG1hcmdpbi10b3A6MnB4OyB9ICNjcmVkaXRTY29yZVBvcHVwQ29udGFpbmVyIC5jcmVkaXRTY29yZUltYWdleyBiYWNrZ3JvdW5kLWNvbG9yOiM0ZDhmMTQ7IH0gLnBhYy1jb250YWluZXIgeyB6LWluZGV4OjEwMDAwMjE7IH0KLyoqIC9jc3MvZmluYW5jZV9tdWx0aXN0ZXAuY3NzICoqLwojZmluYW5jZV9tdWx0aXN0ZXBfZm9ybXsgdGV4dC1hbGlnbjpjZW50ZXI7IGhlaWdodDoxMDAlOyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC5maW5hbmNlTXVsdGlzdGVwTmV3Q2FsY3VsYXRvcnsgdGV4dC1hbGlnbjpsZWZ0OyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIGgyeyB0ZXh0LWFsaWduOmNlbnRlcjsgbWFyZ2luLXRvcDoyNXB4OyBtYXJnaW4tYm90dG9tOjI1cHg7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gaDN7IHRleHQtYWxpZ246Y2VudGVyOyBtYXJnaW4tdG9wOjI1cHg7IG1hcmdpbi1ib3R0b206MjVweDsgZm9udC1zaXplOjEuMTI1cmVtIDsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV9uZXh0X2J0biB7IHRleHQtYWxpZ246Y2VudGVyOyBtYXJnaW4tdG9wOjI1cHg7IG1hcmdpbi1ib3R0b206MTVweDsgd2lkdGg6MTAwJTsgcG9zaXRpb246YWJzb2x1dGU7IGxlZnQ6MDsgYm90dG9tOjA7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm1fbmV4dF9idG4gYnV0dG9ueyBwYWRkaW5nOjE3cHggNjVweCAxNXB4IDY1cHg7IGZvbnQtc2l6ZToxLjI1cmVtIDsgZm9udC13ZWlnaHQ6NDAwOyB3aWR0aDoyODBweDsgYmFja2dyb3VuZC1jb2xvcjp3aGl0ZTsgY29sb3I6I0MwQzBDMDsgYm9yZGVyOm5vbmU7IGN1cnNvcjpwb2ludGVyOyBib3JkZXI6MXB4IHNvbGlkICNDMEMwQzA7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm1fbmV4dF9idG4gYnV0dG9uLmlzVmFsaWR7IGJhY2tncm91bmQtY29sb3I6IzFmMmY1MzsgY29sb3I6I2ZmZmZmZjsgYm9yZGVyOjFweCBzb2xpZCAjMDAwMDAwOyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIGlucHV0W3R5cGU9InJhZGlvIl17IG9wYWNpdHk6MDsgd2lkdGg6MDsgaGVpZ2h0OjA7IHBvc2l0aW9uOmFic29sdXRlOyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIGxhYmVsLnJhZGlvX2xhYmVsIHsgYm94LXNpemluZzpib3JkZXItYm94OyBwYWRkaW5nOjIwcHggMTBweDsgY3Vyc29yOnBvaW50ZXI7IG9wYWNpdHk6MTsgdHJhbnNpdGlvbjphbGwgMXMgZWFzZS1pbi1vdXQ7IG1hcmdpbi1ib3R0b206MTVweDsgYm9yZGVyOjFweCBzb2xpZCAjY2NjY2NjOyBib3JkZXItYm90dG9tLXdpZHRoOjVweDsgd2lkdGg6MTAwJTsgZmxvYXQ6bGVmdDsgYmFja2dyb3VuZDojZmZmZmZmOyBkaXNwbGF5OmZsZXg7IGFsaWduLWl0ZW1zOmNlbnRlcjsganVzdGlmeS1jb250ZW50OmNlbnRlcjsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSBpbnB1dFt0eXBlPSJyYWRpbyJdOmNoZWNrZWQgfiBsYWJlbC5yYWRpb19sYWJlbCB7IGJvcmRlcjoxcHggc29saWQgIzAwMDsgYm9yZGVyLWJvdHRvbS13aWR0aDo1cHg7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gbGFiZWwucmFkaW9fbGFiZWwyIHsgYm9yZGVyOjFweCBzb2xpZCByZ2JhKDI1MCwgMjUwLCAyNTAsIDAuMTUpOyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IHBhZGRpbmc6MTBweCAycHggMTBweCAycHg7IGN1cnNvcjpwb2ludGVyOyBvcGFjaXR5OjE7IHRyYW5zaXRpb246YWxsIDFzIGVhc2UtaW4tb3V0OyBtYXJnaW4tYm90dG9tOjVweDsgYm9yZGVyOjFweCBzb2xpZCAjY2NjY2NjOyBib3JkZXItYm90dG9tLXdpZHRoOjVweDsgd2lkdGg6MTAwJTsgZmxvYXQ6bGVmdDsgYmFja2dyb3VuZDojZmZmZmZmOyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIGlucHV0W3R5cGU9InJhZGlvIl06Y2hlY2tlZCB+IGxhYmVsLnJhZGlvX2xhYmVsMiB7IGJvcmRlcjoxcHggc29saWQgIzAwMDsgYm9yZGVyLWJvdHRvbS13aWR0aDo1cHg7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLnJhZGlvX2Rpdnsgd2lkdGg6NDUlOyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC5yYWRpb19kaXYudndSZW50T3JPd257IHdpZHRoOjMyJSFpbXBvcnRhbnQ7IG1hcmdpbi1yaWdodDo1cHg7IGZsb2F0OmxlZnQhaW1wb3J0YW50OyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC5yZW50T3JPd25RdWVzdGlvbnsgZmxvYXQ6bGVmdDsgdGV4dC1hbGlnbjpjZW50ZXI7IG1hcmdpbi10b3A6MjBweDsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAucmVudE9yT3duUXVlc3Rpb24udndSZW50T3JPd257IGZsb2F0OmxlZnQ7IHRleHQtYWxpZ246Y2VudGVyOyBtYXJnaW4tdG9wOjVweDsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAucmFkaW9fZGl2Mnsgd2lkdGg6MzIlIWltcG9ydGFudDsgbWFyZ2luLXJpZ2h0OjVweDsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAucmFkaW9fZGl2MjpudGgtb2YtdHlwZShvZGQpeyBmbG9hdDpsZWZ0IWltcG9ydGFudDsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAucmFkaW9fZGl2MjpudGgtb2YtdHlwZShldmVuKXsgZmxvYXQ6bGVmdCFpbXBvcnRhbnQ7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLnJhZGlvX2RpdjpudGgtb2YtdHlwZShvZGQpeyBmbG9hdDpsZWZ0OyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC5yYWRpb19kaXY6bnRoLW9mLXR5cGUoZXZlbil7IGZsb2F0OnJpZ2h0OyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIGlucHV0W3R5cGU9InRleHQiXXsgd2lkdGg6NDUwcHg7IGhlaWdodDo0MHB4OyB0ZXh0LWFsaWduOmNlbnRlcjsgZm9udC1zaXplOjEuMjVyZW0gOyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIGlucHV0W3R5cGU9Im51bWJlciJdOm5vdCguZmluYW5jZU11bHRpc3RlcE5ld0NhbGN1bGF0b3IgaW5wdXRbdHlwZT0ibnVtYmVyIl0pOm5vdChpbnB1dFt0eXBlPSJudW1iZXIiXS5lbXBsb3ltZW50U3RhdHVzVGltZSl7IGRpc3BsYXk6YmxvY2s7IGZsb2F0OmxlZnQ7IGJvcmRlcjoxcHggc29saWQgI2RkZGRkZDsgd2lkdGg6MTQwcHg7IGJvcmRlci1yaWdodDpub25lOyBtYXJnaW46MCAwIDEwcHg7IGxpbmUtaGVpZ2h0OjMwcHg7IGhlaWdodDo3NXB4OyBwYWRkaW5nOjA7IHRleHQtYWxpZ246Y2VudGVyOyBmb250LXNpemU6MS41cmVtIDsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSBpbnB1dFtuYW1lPSJtb250aGx5SW5jb21lIl06YmVmb3JleyBjb250ZW50OiIkIjsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAubnVtYmVyLXR5cGUtbGFiZWx7IGRpc3BsYXk6YmxvY2s7IGZsb2F0OmxlZnQ7IGJvcmRlcjoxcHggc29saWQgI2RkZGRkZDsgd2lkdGg6MjMwcHg7IGNvbG9yOiMyNTI1MjU7IGhlaWdodDo3NXB4OyBsaW5lLWhlaWdodDo3NXB4OyBmb250LXNpemU6MS41cmVtIDsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAubnVtYmVyLXR5cGUtZGl2eyBmbG9hdDpsZWZ0OyBsZWZ0OjEzJTsgbWFyZ2luLXRvcDoyMHB4OyBwb3NpdGlvbjpyZWxhdGl2ZTsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAuZmluYW5jZV9tdWx0aXN0ZXBfc2VsZWN0X2NvbnRhaW5lcnsgbWFyZ2luLXRvcDoxMHB4OyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC5maW5hbmNlX211bHRpc3RlcF9zZWxlY3RfY29udGFpbmVyX2Rpdnsgd2lkdGg6MTAwJTsgbWFyZ2luOjA7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLmZpbmFuY2VfbXVsdGlzdGVwX3NlbGVjdF9jb250YWluZXIgc2VsZWN0eyBjb2xvcjojM2MzODM2OyBib3JkZXI6MnB4IHNvbGlkICMwMDAwMDA7IGJvcmRlci1yYWRpdXM6NXB4OyBwYWRkaW5nOjEwcHggMTBweDsgZm9udC1zaXplOjFyZW0gOyBiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjkpOyBiYWNrZ3JvdW5kLXBvc2l0aW9uOjk1JSA1MCU7IHdpZHRoOjE1MHB4OyAtd2Via2l0LWFwcGVhcmFuY2U6bm9uZTsgLW1vei1hcHBlYXJhbmNlOm5vbmU7IHBhZGRpbmctcmlnaHQ6MjdweDsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAuZmluYW5jZV9tdWx0aXN0ZXBfc2VsZWN0X2NvbnRhaW5lcl9zZWxlY3R7IHBvc2l0aW9uOnJlbGF0aXZlOyB3aWR0aDoxNSU7IG1hcmdpbjphdXRvOyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC5maW5hbmNlX211bHRpc3RlcF9zZWxlY3RfY29udGFpbmVyX3NlbGVjdDphZnRlciB7IGNvbnRlbnQ6IiAiOyBoZWlnaHQ6MDsgd2lkdGg6MDsgYm9yZGVyLWxlZnQ6NXB4IHNvbGlkIHRyYW5zcGFyZW50OyBib3JkZXItcmlnaHQ6NXB4IHNvbGlkIHRyYW5zcGFyZW50OyBib3JkZXItdG9wOjVweCBzb2xpZCAjMDAwOyBwb3NpdGlvbjphYnNvbHV0ZTsgcmlnaHQ6MTRweDsgdG9wOjE3cHg7IHRyYW5zaXRpb246YWxsIC4zcyBsaW5lYXI7IHBvaW50ZXItZXZlbnRzOm5vbmU7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gc2VsZWN0LnN0ZXAyNHNlbGVjdHsgbWFyZ2luLXRvcDoxMHB4OyB3aWR0aDo1MCU7IH0gLnBhYy1jb250YWluZXIgeyB6LWluZGV4OjEwMDAwMjE7IH0gaW5wdXQ6Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24sIGlucHV0Ojotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uIHsgLXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7IG1hcmdpbjowOyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtICNtdWx0aXN0ZXAtbXVsdGlhZGRyZXNzIHNlbGVjdCB7IG1heC13aWR0aDozMzVweDsgbWFyZ2luOjAgYXV0bzsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAjbXVsdGlzdGVwLW11bHRpYWRkcmVzcyBsYWJlbCB7IHRleHQtYWxpZ246Y2VudGVyOyBtYXJnaW4tdG9wOjI1cHg7IG1hcmdpbi1ib3R0b206MjVweDsgZm9udC1zaXplOjEuMTI1cmVtIDsgZGlzcGxheTpibG9jazsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAjbXVsdGlzdGVwLW11bHRpYWRkcmVzcyAjbXV0bGlBZGRyZXNzU3VibWl0IHsgZGlzcGxheTpub25lOyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC5maW5hbmNlX211bHRpc3RlcF9iaXJ0aGRhdGVfaW5wdXRzeyBkaXNwbGF5OmlubGluZS1mbGV4OyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC5maW5hbmNlX211bHRpc3RlcF9iaXJ0aGRhdGVfaW5wdXRfZGl2eyBtYXJnaW46MjBweDsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAuZmluYW5jZV9tdWx0aXN0ZXBfYmlydGhkYXRlX2lucHV0X2RpdiBsYWJlbHsgZm9udC1zaXplOjEuMTI1cmVtIDsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAuZmluYW5jZV9tdWx0aXN0ZXBfYmlydGhkYXRlX2lucHV0X2RpdiBpbnB1dFt0eXBlPSJudW1iZXIiXXsgd2lkdGg6ODBweDsgaGVpZ2h0OjUwcHg7IGRpc3BsYXk6YmxvY2s7IGZsb2F0Om5vbmU7IG1hcmdpbi10b3A6MTBweDsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAuZmluYW5jZV9tdWx0aXN0ZXBfYmlydGhkYXRlX2lucHV0X2RpdiBpbnB1dFt0eXBlPSJudW1iZXIiXS5iaXJ0aHllYXJ7IHdpZHRoOjEwMHB4OyB9IC5yZXZlYWwtbW9kYWwuZmluYW5jZV9iYWNrZ3JvdW5kX2ltYWdleyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9wb3B1cHMvZmluYW5jZXBvcHVwLWJnLWRlc2t0b3AuanBnJyk7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLmZpbmFuY2VJY29uRGl2eyBwb3NpdGlvbjpyZWxhdGl2ZTsgaGVpZ2h0OjEyMHB4OyBtYXJnaW4tYm90dG9tOjIwcHg7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLmZpbmFuY2VJY29uRGl2IC5maW5hbmNlQ2FsY3sgZm9udC1zaXplOjEwMHB4OyBsZWZ0OjQwJTsgcG9zaXRpb246YWJzb2x1dGU7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLmZpbmFuY2VJY29uRGl2IC5maW5hbmNlQ2FyeyBjb2xvcjojMDAwMDAwOyBmb250LXNpemU6MTAwcHg7IGxlZnQ6MzklOyBwb3NpdGlvbjphYnNvbHV0ZTsgdG9wOjUwcHg7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLmVtcGxveW1lbnRUZXh0TGFiZWx7IHdpZHRoOjIwJTsgYWxpZ24tc2VsZjpjZW50ZXI7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLmVtcGxveW1lbnRUZXh0eyB3aWR0aDozNyUhaW1wb3J0YW50OyBmb250LXNpemU6MS4xMjVyZW0gIWltcG9ydGFudDsgYm9yZGVyOjFweCBzb2xpZCAjY2NjY2NjOyBtYXJnaW4tYm90dG9tOjEwcHg7IG1hcmdpbi1yaWdodDoxMHB4OyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIGlucHV0W3R5cGU9Im51bWJlciJdLmVtcGxveW1lbnRTdGF0dXNUaW1leyB3aWR0aDo1MHB4OyBoZWlnaHQ6NTBweDsgYm9yZGVyOjFweCBzb2xpZCAjYTlhOWE5OyBib3JkZXItcmFkaXVzOjVweDsgYWxpZ24tc2VsZjpjZW50ZXI7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLmVtcGxveW1lbnRBZGRlZEluZm97IHdpZHRoOjEwMCUhaW1wb3J0YW50OyByZXNpemU6bm9uZTsgbWFyZ2luLXRvcDoxMHB4OyBtYXJnaW4tYm90dG9tOjEwcHg7IGJvcmRlcjoxcHggc29saWQgI2NjY2NjYzsgZm9udC1zaXplOjAuOTM4cmVtICFpbXBvcnRhbnQ7IH0gLmZhZGUtZW50ZXIsIC5mYWRlLWxlYXZlIHsgb3BhY2l0eTowOyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC5lbXBsb3ltZW50QWRkZWRJbmZvRGl2eyB0ZXh0LWFsaWduOmxlZnQ7IHdpZHRoOjk3JSB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC5lbXBsb3ltZW50VGV4dExhYmVsRGl2eyBkaXNwbGF5OmZsZXg7IHdpZHRoOjk3JSB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC5maW5hbmNlTXVsdGlzdGVwVXNlZENhbGN1bGF0b3J7IG1hcmdpbjowIDIwJTsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAuZmluYW5jZU11bHRpc3RlcFVzZWRDYWxjdWxhdG9yIC5jYWxjLWZvcm17IHdpZHRoOjEwMCU7IHRleHQtYWxpZ246Y2VudGVyOyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC5maW5hbmNlTXVsdGlzdGVwVXNlZENhbGN1bGF0b3IgLmNhbGMtZm9ybSBsYWJlbHsgbWFyZ2luLWJvdHRvbTo1cHg7IHBhZGRpbmc6MDsgZGlzcGxheTpmbGV4OyBhbGlnbi1pdGVtczpjZW50ZXI7IGp1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuOyBwb3NpdGlvbjpyZWxhdGl2ZTsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAuZmluYW5jZU11bHRpc3RlcFVzZWRDYWxjdWxhdG9yIHNwYW57IGZvbnQtc2l6ZTowLjkzOHJlbSA7IHdpZHRoOjUwJTsgdGV4dC1hbGlnbjpsZWZ0OyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC5maW5hbmNlTXVsdGlzdGVwVXNlZENhbGN1bGF0b3IgaW5wdXR7IHRleHQtYWxpZ246bGVmdDsgaGVpZ2h0OjI1cHg7IGZvbnQtc2l6ZToxZW07IGNvbG9yOmJsYWNrOyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC5maW5hbmNlTXVsdGlzdGVwVXNlZENhbGN1bGF0b3Igc2VsZWN0eyBoZWlnaHQ6MjhweDsgY29sb3I6YmxhY2s7IGZvbnQtc2l6ZToxZW07IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLmZpbmFuY2VNdWx0aXN0ZXBVc2VkQ2FsY3VsYXRvciAuZXN0aW1hdGVkVGV4dHsgbWFyZ2luOjA7IGZvbnQtd2VpZ2h0OjcwMDsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAuZmluYW5jZU11bHRpc3RlcFVzZWRDYWxjdWxhdG9yIC5vdXRwdXRwcmljZS10eHR7IHdpZHRoOjI4JTsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAuZmluYW5jZU11bHRpc3RlcFVzZWRDYWxjdWxhdG9yIC50YXhlVGV4dHsgcG9zaXRpb246YWJzb2x1dGU7IHJpZ2h0Oi01NXB4OyB3aWR0aDpmaXQtY29udGVudDsgbWFyZ2luOjA7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLmZpbmFuY2VNdWx0aXN0ZXBVc2VkQ2FsY3VsYXRvciAuaW5wdXQgeyBib3JkZXI6MXB4IHNvbGlkICM5OTk7IGJhY2tncm91bmQ6I2VlZTsgcGFkZGluZzowLjI1cmVtOyBib3JkZXItcmFkaXVzOjAuMjVyZW07IHdpZHRoOm1pbig1MCUsNnJlbSk7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLmZpbmFuY2VNdWx0aXN0ZXBVc2VkQ2FsY3VsYXRvciAuY2FsYy1mb3JtIGRpdi5kb2xsYXJTcGFueyBkaXNwbGF5OmNvbnRlbnRzOyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC5maW5hbmNlTXVsdGlzdGVwVXNlZENhbGN1bGF0b3IgZGl2LmRvbGxhclNwYW4gLmlucHV0eyBwYWRkaW5nLWxlZnQ6MTJweDsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAuZmluYW5jZU11bHRpc3RlcFVzZWRDYWxjdWxhdG9yIC5jYWxjLWZvcm0gZGl2LmRvbGxhclNwYW46OmJlZm9yZXsgY29udGVudDoiJCI7IGZvbnQtc2l6ZToxZW07IHBvc2l0aW9uOmFic29sdXRlOyByaWdodDo4NXB4OyB0b3A6NDklOyB0cmFuc2Zvcm06dHJhbnNsYXRlWSgtNTAlKTsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAuZmluYW5jZV9tdWx0aXN0ZXBfY29uc2VudF90ZXh0X2Rpdnsgb3ZlcmZsb3cteTpzY3JvbGw7IGhlaWdodDoyODVweDsgd2lkdGg6MTAwJTsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAubXVsdGlzdGVwUGF5bWVudFZlaGljbGV7IGZvbnQtc2l6ZTppbmhlcml0OyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC5maW5hbmNlTXVsdGlzdGVwVXNlZENhbGN1bGF0b3IgLmNhbGMtZm9ybSAubG9hbmFtb3VudCwgI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLmZpbmFuY2VNdWx0aXN0ZXBVc2VkQ2FsY3VsYXRvciAuY2FsYy1mb3JtIC5pbnRlcmVzdHJhdGV7IGJvcmRlcjowOyBiYWNrZ3JvdW5kLWNvbG9yOnVuc2V0OyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC5maW5hbmNlTXVsdGlzdGVwVXNlZENhbGN1bGF0b3IgLmNhbGMtZm9ybSBpbnB1dCwgI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLmZpbmFuY2VNdWx0aXN0ZXBVc2VkQ2FsY3VsYXRvciAuY2FsYy1mb3JtIHNlbGVjdHsgYmFja2dyb3VuZC1jb2xvcjojZmZmOyBib3JkZXItcmFkaXVzOjAuM3JlbTsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAubXVsdGlzdGVwSW5pdGlhbFRpdGxleyBmb250LXdlaWdodDpib2xkOyBmb250LXNpemU6MS4wNjNyZW0gOyBtYXJnaW4tdG9wOjA7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gc3Bhbi5oMi1hbHR7IHRleHQtYWxpZ246Y2VudGVyOyBtYXJnaW4tYm90dG9tOjI1cHg7IGRpc3BsYXk6YmxvY2s7IGNvbG9yOnZhcigtLWRlZmF1bHQtYmxhY2spOyBtYXJnaW4tbGVmdDowOyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIHNwYW4uaDMtYWx0eyB0ZXh0LWFsaWduOmNlbnRlcjsgbWFyZ2luLXRvcDoxMHB4OyBtYXJnaW4tYm90dG9tOjI1cHg7IGZvbnQtc2l6ZToxLjEyNXJlbSA7IGRpc3BsYXk6YmxvY2s7IGNvbG9yOnZhcigtLWRlZmF1bHQtYmxhY2spOyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC5oaWRkZW5JbnB1dHsgZGlzcGxheTpub25lOyB9IC5maW5hbmNlTXVsdGlzdGVwTmV3Q2FsY3VsYXRvciAucGF5bWVudENhbGN1bGF0b3JJbmNsdWRlVGF4Q2hlY2tEaXZ7IHBvc2l0aW9uOmFic29sdXRlOyBtYXJnaW4tdG9wOjEwcHg7IHJpZ2h0OjEwMHB4OyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC5maW5hbmNlTXVsdGlzdGVwTmV3Q2FsY3VsYXRvciAucGF5bWVudENhbGN1bGF0b3JUcmFkZUluSW5pdGlhbHsgZm9udC1zaXplOjAuNjg4cmVtIDsgYm9yZGVyOjFweCBzb2xpZCAjYTlhOWE5OyBoZWlnaHQ6MzVweDsgYm9yZGVyLXJhZGl1czo1cHg7IGJhY2tncm91bmQtY29sb3I6d2hpdGU7IHdpZHRoOjEyMHB4OyB0ZXh0LWFsaWduOmNlbnRlcjsgdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTsgcGFkZGluZzo0cHggMnB4IDVweDsgY3Vyc29yOnBvaW50ZXI7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLmZpbmFuY2VNdWx0aXN0ZXBOZXdDYWxjdWxhdG9yIC5wYXltZW50Q2FsY3VsYXRvclRyYWRlSW5GaW5hbHsgYm9yZGVyOjFweCBzb2xpZCAjYTlhOWE5OyBoZWlnaHQ6MzVweDsgYm9yZGVyLXJhZGl1czo1cHg7IGJhY2tncm91bmQtY29sb3I6d2hpdGU7IHdpZHRoOjEyMHB4OyB0ZXh0LWFsaWduOmNlbnRlcjsgcGFkZGluZzo1cHggMnB4OyBiYWNrZ3JvdW5kLWltYWdlOnVybCgiZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZlcnNpb249JzEuMScgaGVpZ2h0PScyOHB4JyB3aWR0aD0nODVweCc+PHRleHQgeD0nNicgeT0nMjEnIGZpbGw9JycgZm9udC1zaXplPScxNicgZm9udC1mYW1pbHk9J2FyaWFsJz4kIik7IGJhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDsgZm9udC1zaXplOjEuMDYzcmVtIDsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAuZmluYW5jZU11bHRpc3RlcFVzZWRDYWxjdWxhdG9yIC5wYXltZW50Q2FsY3VsYXRvclRyYWRlSW5Jbml0aWFseyBmb250LXNpemU6MC42MjVyZW0gOyBib3JkZXI6MXB4IHNvbGlkICNhOWE5YTk7IGhlaWdodDozNXB4OyBib3JkZXItcmFkaXVzOjVweDsgYmFja2dyb3VuZC1jb2xvcjp3aGl0ZTsgd2lkdGg6OTZweDsgdGV4dC1hbGlnbjpjZW50ZXI7IHRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7IHBhZGRpbmc6NXB4IDJweDsgY3Vyc29yOnBvaW50ZXI7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLmZpbmFuY2VNdWx0aXN0ZXBVc2VkQ2FsY3VsYXRvciAucGF5bWVudENhbGN1bGF0b3JUcmFkZUluRmluYWx7IGJvcmRlcjoxcHggc29saWQgI2E5YTlhOTsgaGVpZ2h0OjM1cHg7IGJvcmRlci1yYWRpdXM6NXB4OyBiYWNrZ3JvdW5kLWNvbG9yOndoaXRlOyB3aWR0aDo5NnB4OyB0ZXh0LWFsaWduOmNlbnRlcjsgcGFkZGluZzo1cHggMnB4OyBiYWNrZ3JvdW5kLWltYWdlOnVybCgiZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZlcnNpb249JzEuMScgaGVpZ2h0PScyOHB4JyB3aWR0aD0nODVweCc+PHRleHQgeD0nNicgeT0nMjEnIGZpbGw9JycgZm9udC1zaXplPScxNicgZm9udC1mYW1pbHk9J2FyaWFsJz4kIik7IGJhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDsgZm9udC1zaXplOjEuMDYzcmVtIDsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAuZm9ybWF0LXByaWNleyBtYXJnaW4tYm90dG9tOnVuc2V0OyBtYXJnaW4tbGVmdDowLjdyZW07IH0gOmlzKC5FTkdMSVNILFtkYXRhLWxhbmc9ImVuIl0pIGxhYmVsIC5mb3JtYXQtcHJpY2V7IG1hcmdpbi1yaWdodDowLjNyZW07IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLnZ3Q29uc2VudFRleHR7IGhlaWdodDo5NXB4OyBvdmVyZmxvdy15OnNjcm9sbDsgYmFja2dyb3VuZC1jb2xvcjojZmZmOyBwYWRkaW5nOjEwcHggMTBweDsgbGluZS1oZWlnaHQ6MS41ICFpbXBvcnRhbnQ7IH0gLnZ3Q29uc2VudFRleHQgaDF7IGZvbnQtc2l6ZToxLjI1cmVtICFpbXBvcnRhbnQ7IGZvbnQtd2VpZ2h0OjcwMCAhaW1wb3J0YW50OyBtYXJnaW46MCAwIDE2cHggMCAhaW1wb3J0YW50OyB9IC52d0NvbnNlbnRUZXh0IGgyeyBmb250LXNpemU6MXJlbSAhaW1wb3J0YW50OyBmb250LXdlaWdodDo3MDAgIWltcG9ydGFudDsgbWFyZ2luOjI0cHggMCAxMHB4IDAgIWltcG9ydGFudDsgfSAudndDb25zZW50VGV4dCBweyBmb250LXNpemU6MC44NzVyZW0gIWltcG9ydGFudDsgZm9udC13ZWlnaHQ6NDAwICFpbXBvcnRhbnQ7IGxpbmUtaGVpZ2h0OjEuNSAhaW1wb3J0YW50OyBtYXJnaW46MCAwIDEycHggMCAhaW1wb3J0YW50OyB0ZXh0LWFsaWduOmp1c3RpZnkgIWltcG9ydGFudDsgfSAudndDb25zZW50VGV4dCB1bHsgbWFyZ2luOjhweCAwIDE2cHggMjRweCAhaW1wb3J0YW50OyBwYWRkaW5nOjAgIWltcG9ydGFudDsgfSAudndDb25zZW50VGV4dCBsaXsgZm9udC1zaXplOjAuODc1cmVtICFpbXBvcnRhbnQ7IGZvbnQtd2VpZ2h0OjQwMCAhaW1wb3J0YW50OyBsaW5lLWhlaWdodDoxLjUgIWltcG9ydGFudDsgbWFyZ2luOjAgMCAxMnB4IDAgIWltcG9ydGFudDsgdGV4dC1hbGlnbjpqdXN0aWZ5ICFpbXBvcnRhbnQ7IH0gLnZ3Q29uc2VudFRleHQgc3Ryb25neyBmb250LXdlaWdodDo3MDAgIWltcG9ydGFudDsgfSAudndDb25zZW50VGV4dCBheyB0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lICFpbXBvcnRhbnQ7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLnZ3Q29uc2VudERpdnN7IG1hcmdpbi10b3A6MTBweDsgZm9udC1zaXplOjAuNzVyZW0gOyB0ZXh0LWFsaWduOmxlZnQ7IH0gLmRyVmlld0Rpc2NsYWltZXJMaW5rIHsgdGV4dC1hbGlnbjpsZWZ0OyBmb250LXNpemU6MC43NXJlbSA7IHRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7IH0gLmRyRGlzY2xhaW1lckRyYXdlciB7IHBvc2l0aW9uOmZpeGVkOyBsZWZ0OjA7IGJvdHRvbTotMzAwcHg7IHdpZHRoOjEwMCU7IGhlaWdodDphdXRvOyBiYWNrZ3JvdW5kOiNmZmY7IGJveC1zaGFkb3c6MCAtMnB4IDEwcHggcmdiYSgwLDAsMCwwLjMpOyB0cmFuc2l0aW9uOmJvdHRvbSAwLjNzIGVhc2U7IGRpc3BsYXk6bm9uZTsgb3ZlcmZsb3c6YXV0bzsgei1pbmRleDoxMDAwMDA7IH0gLmRyRGlzY2xhaW1lckRyYXdlci5vcGVuIHsgYm90dG9tOjA7IH0gLmRyRGlzY2xhaW1lckRyYXdlci5vcGVuIC5kckRpc2NsYWltZXJDb250ZW50IHsgcGFkZGluZzoyMHB4OyBvdmVyZmxvdy15OmF1dG87IH0gLmRyRGlzY2xhaW1lckRyYXdlci5vcGVuIC5jbG9zZURSRGlzY2xhaW1lckRyYXdlciwgLmRyRGlzY2xhaW1lckRyYXdlci5vcGVuIC5jbG9zZURSQ2FsY3VsYXRvckRpc2NsYWltZXJEcmF3ZXIgeyBwYWRkaW5nOjEwcHg7IGN1cnNvcjpwb2ludGVyOyB9Ci8qKiAvY3NzL3BheW1lbnRDYWxjdWxhdG9yLmNzcyAqKi8KOmlzKCNwYXltZW50Q2FsY3VsYXRvckNvbnRhaW5lciwjZmluYW5jZU11bHRpc3RlcE5ld0NhbGN1bGF0b3IpLmNhbGMtbW9iaWxlIHsgLS13cmFwLXBheW1lbnRzOndyYXA7IC0tbW9iaWxlLWRpc3BsYXk6bm9uZTsgLS1tb2ItZnVsbC13aWR0aDoxMDAlOyAtLXBheW1lbnQtbWluLXdpZHRoOjYuM3JlbTsgLS1oZWFkZXItZm9udC1zaXplOnZhcigtLWZzMik7IC0taGVhZGVyLWljb24tc2l6ZTp2YXIoLS1mczUpOyB9ICNwYXltZW50Q2FsY3VsYXRvckNvbnRhaW5lcnsgbWluLWhlaWdodDo0NTBweDsgY29sb3I6YmxhY2s7IH0gI3BheW1lbnRDYWxjdWxhdG9yUG9wdXBDb250YWluZXJ7IGJvcmRlcjo0cHggc29saWQgIzFmMmY1MzsgfSAjcGF5bWVudENhbGN1bGF0b3JQb3B1cENvbnRhaW5lcjpoYXMoLmNhbGMtbW9iaWxlKXsgYm94LXNpemluZzpib3JkZXItYm94OyB9ICNwYXltZW50Q2FsY3VsYXRvckNvbnRhaW5lci5jYWxjLW1vYmlsZSAucGF5bWVudENhbGN1bGF0b3JQYXltZW50Q29udGFpbmVyLCAjZmluYW5jZU11bHRpc3RlcE5ld0NhbGN1bGF0b3IuY2FsYy1tb2JpbGUgLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudENvbnRhaW5lcnsgb3ZlcmZsb3cteDp2aXNpYmxlOyBvdmVyZmxvdy15OnNjcm9sbDsgaGVpZ2h0OjM3MHB4OyBmbGV4LXdyYXA6d3JhcDsgfSAucGF5bWVudENhbGN1bGF0b3JQYXltZW50Q29udGFpbmVyLCAucGF5bWVudENhbGN1bGF0b3JQYXltZW50Q29udGFpbmVyV2l0aFRheGVzIHsgb3ZlcmZsb3cteDpzY3JvbGw7IGRpc3BsYXk6ZmxleDsgZ2FwOjEwcHg7IH0gLmZpbmFuY2VNdWx0aXN0ZXBOZXdDYWxjdWxhdG9yIC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRDb250YWluZXIsIC5maW5hbmNlTXVsdGlzdGVwTmV3Q2FsY3VsYXRvciAucGF5bWVudENhbGN1bGF0b3JQYXltZW50Q29udGFpbmVyV2l0aFRheGVzIHsgd2lkdGg6MTAwJTsgfSAucGF5bWVudENhbGN1bGF0b3JQYXltZW50Q29udGFpbmVyLmJveGVzNHsgd2lkdGg6NjQlOyB9IC5maW5hbmNlTXVsdGlzdGVwTmV3Q2FsY3VsYXRvciAucGF5bWVudENhbGN1bGF0b3JQYXltZW50Q29udGFpbmVyLmJveGVzNCwgLmZpbmFuY2VNdWx0aXN0ZXBOZXdDYWxjdWxhdG9yIC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRDb250YWluZXJXaXRoVGF4ZXMuYm94ZXM0eyB3aWR0aDo4MCU7IH0gLnJldmVhbC1tb2RhbCAucGF5bWVudENhbGN1bGF0b3JQYXltZW50Q29udGFpbmVyIHNwYW4sIC5yZXZlYWwtbW9kYWwgLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudENvbnRhaW5lcldpdGhUYXhlcyBzcGFueyBwYWRkaW5nOjAhaW1wb3J0YW50OyBtYXJnaW4tYm90dG9tOjAhaW1wb3J0YW50OyBjb2xvcjppbmhlcml0OyBmb250LXNpemU6aW5oZXJpdDsgfSAucGF5bWVudENhbGN1bGF0b3JQYXltZW50V3JhcHBlcnsgbWFyZ2luLWJvdHRvbTp2YXIoLS1zKTsgfSAjcGF5bWVudENhbGN1bGF0b3JDb250YWluZXIuY2FsYy1tb2JpbGUgLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFdyYXBwZXJ7IG1hcmdpbi1ib3R0b206MDsgfSAucGF5bWVudENhbGN1bGF0b3JQYXltZW50Q29udGFpbmVyLmJveGVzNCAucGF5bWVudENhbGN1bGF0b3JQYXltZW50V3JhcHBlciwgLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudENvbnRhaW5lcldpdGhUYXhlcy5ib3hlczQgLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFdyYXBwZXJ7IHdpZHRoOjI0JTsgfSAucGF5bWVudENhbGN1bGF0b3JMaW5leyBib3JkZXItYm90dG9tOjFweCBzb2xpZCBncmV5OyBtYXJnaW46MTBweCAwOyB9IC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRXcmFwcGVyIC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRMaW5lMXsgZm9udC1zaXplOjAuNjg4cmVtIDsgfSAucmV2ZWFsLW1vZGFsIC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRXcmFwcGVyIC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRMaW5lMSBzcGFueyBmb250LXNpemU6MS43NXJlbSA7IGNvbG9yOiNlYjAwMDA7IH0gLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFdyYXBwZXIgLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudExpbmUyeyBmb250LXNpemU6MC43NXJlbSA7IH0gLnJldmVhbC1tb2RhbCAucGF5bWVudENhbGN1bGF0b3JQYXltZW50V3JhcHBlciAucGF5bWVudENhbGN1bGF0b3JQYXltZW50TGluZTIgc3BhbnsgZm9udC1zaXplOjEuMzc1cmVtIDsgfSAucGF5bWVudENhbGN1bGF0b3JQYXltZW50V3JhcHBlciAucGF5bWVudENhbGN1bGF0b3JQYXltZW50TGluZTN7IGZvbnQtc2l6ZTowLjc1cmVtIDsgfSAucmV2ZWFsLW1vZGFsIC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRXcmFwcGVyIC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRMaW5lMyBzcGFueyBmb250LXNpemU6MS4yNXJlbSA7IH0gLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFdyYXBwZXIgLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudExpbmU0eyBmb250LXNpemU6MC43NXJlbSA7IGNvbG9yOmdyZXk7IHdoaXRlLXNwYWNlOm5vcm1hbDsgfSAjcGF5bWVudENhbGN1bGF0b3JWZWhpY2xlSW1hZ2VEaXZ7IG1heC13aWR0aDozMyU7IHBvc2l0aW9uOmFic29sdXRlOyByaWdodDowOyB0b3A6LTUwJTsgZGlzcGxheTp2YXIoLS1tb2JpbGUtZGlzcGxheSwgaW5pdGlhbCk7IH0gLnBheW1lbnRDYWxjdWxhdG9yT3B0aW9uQ29udGFpbmVyeyB3aWR0aDptYXgodmFyKC0tbW9iLWZ1bGwtd2lkdGgsIDY2JSksIDIwcmVtKTsgfSAuY2FsYy1wYXltZW50c3sgbWF4LXdpZHRoOnZhcigtLW1vYi1mdWxsLXdpZHRoLCA2NiUpOyB9IC5jYWxjLXBheW1lbnRzIDppcygucHJpY2UtZnIsIC5wcmljZS1lbil7IHRleHQtYWxpZ246cmV2ZXJ0OyBtaW4td2lkdGg6dW5zZXQ7IH0gLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFR5cGVDb250YWluZXJ7IGJvcmRlci1ib3R0b206MXB4IHNvbGlkICNjY2NjY2M7IH0gLmZpbmFuY2VNdWx0aXN0ZXBOZXdDYWxjdWxhdG9yIC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRUeXBlQ29udGFpbmVyeyBtYXJnaW4tYm90dG9tOjEwcHg7IH0gLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFR5cGV7IGxpc3Qtc3R5bGU6bm9uZTsgcGFkZGluZzowIDA7IGRpc3BsYXk6aW5saW5lLWJsb2NrOyB9IC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRUeXBlIGxpeyBwYWRkaW5nOjEwcHg7IGZsb2F0OmxlZnQ7IG1pbi13aWR0aDo1cmVtOyBjdXJzb3I6cG9pbnRlcjsgYm9yZGVyLXJhZGl1czo1cHggNXB4IDAgMDsgYm9yZGVyLWJvdHRvbTowcHg7IHRleHQtYWxpZ246Y2VudGVyOyBiYWNrZ3JvdW5kLWNvbG9yOndoaXRlOyB9IC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRUeXBlIGxpOmhvdmVyeyBiYWNrZ3JvdW5kLWNvbG9yOiNkOWQ5ZDk7IH0gLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFR5cGUgbGkuYWN0aXZlUGF5bWVudFR5cGV7IGJhY2tncm91bmQtY29sb3I6Izk4OTg5ODsgY29sb3I6d2hpdGU7IH0gLnBheW1lbnRDYWxjdWxhdG9ySW5wdXRDb250YWluZXJ7IG1hcmdpbi1ib3R0b206MTBweDsgfSAucGF5bWVudENhbGN1bGF0b3JJbnB1dENvbnRhaW5lciA+ICogeyBwYWRkaW5nLWJvdHRvbTowLjVyZW07IH0gLnBheW1lbnRDYWxjdWxhdG9ySW5wdXRDb250YWluZXIgbGFiZWx7IGNvbG9yOmdyZXk7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IG1hcmdpbi1sZWZ0OjNweDsgbWFyZ2luLWJvdHRvbTowOyB9IC5wYXltZW50Q2FsY3VsYXRvclRyaW1TZWxlY3R7IGJvcmRlci1yYWRpdXM6NXB4OyBwYWRkaW5nOjVweCA1cHg7IGZvbnQtc2l6ZToxcmVtIDsgbWluLXdpZHRoOjEwcmVtOyBtYXgtd2lkdGg6MjByZW07IC13ZWJraXQtYXBwZWFyYW5jZTpub25lOyAtbW96LWFwcGVhcmFuY2U6bm9uZTsgcGFkZGluZy1yaWdodDoyN3B4OyBiYWNrZ3JvdW5kLWltYWdlOnVybCgnZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFCQUFBQUFRQ0FZQUFBQWY4LzloQUFBQWgwbEVRVlE0VDkzVE1RckNVQXpHOFY5eDhRemlpWVN1WGR6RkM3aDRBY0VMT1BRQWRYWW92WkNIRUFUbGdRVjVHRlRlMW96Smx6L2tTMUlwaktxdzN3UUJWeXkrK0pJMHkxR1RlN0RDQmJNQWNrZU5JUUtrL0JhbkFMQkIrMTZMdG5ERUxvTWNzTS9CRVNEbHoyaGVEUjNXZVB3S1NMbzVlb3h6M3o2Tk5jRkQrdnUzaWoxNEFxei9EeEdiS0I3Q0FBQUFBRWxGVGtTdVFtQ0MnKTsgYmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0OyBiYWNrZ3JvdW5kLXBvc2l0aW9uOjk1JSBjZW50ZXI7IGJvcmRlci1jb2xvcjojYTlhOWE5OyBjb2xvcjppbmhlcml0OyBib3gtc2hhZG93Om5vbmU7IC13ZWJraXQtYm94LXNoYWRvdzpub25lOyB9IC5wYXltZW50Q2FsY3VsYXRvckludGVydmFsLCAuZDJjZm9ybSAucGF5bWVudENhbGN1bGF0b3JJbnRlcnZhbCB7IGJvcmRlci1yYWRpdXM6NXB4OyBwYWRkaW5nOjVweCA1cHg7IGZvbnQtc2l6ZToxcmVtIDsgbWluLXdpZHRoOjdyZW07IC13ZWJraXQtYXBwZWFyYW5jZTpub25lOyAtbW96LWFwcGVhcmFuY2U6bm9uZTsgcGFkZGluZy1yaWdodDoyN3B4OyBiYWNrZ3JvdW5kLWltYWdlOnVybCgnZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFCQUFBQUFRQ0FZQUFBQWY4LzloQUFBQWgwbEVRVlE0VDkzVE1RckNVQXpHOFY5eDhRemlpWVN1WGR6RkM3aDRBY0VMT1BRQWRYWW92WkNIRUFUbGdRVjVHRlRlMW96Smx6L2tTMUlwaktxdzN3UUJWeXkrK0pJMHkxR1RlN0RDQmJNQWNrZU5JUUtrL0JhbkFMQkIrMTZMdG5ERUxvTWNzTS9CRVNEbHoyaGVEUjNXZVB3S1NMbzVlb3h6M3o2Tk5jRkQrdnUzaWoxNEFxei9EeEdiS0I3Q0FBQUFBRWxGVGtTdVFtQ0MnKTsgYmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0OyBiYWNrZ3JvdW5kLXBvc2l0aW9uOjk1JSBjZW50ZXI7IGJvcmRlci1jb2xvcjojYTlhOWE5OyBjb2xvcjppbmhlcml0OyBib3gtc2hhZG93Om5vbmU7IC13ZWJraXQtYm94LXNoYWRvdzpub25lOyB9IC5wYXltZW50Q2FsY3VsYXRvckttQWxsb3dhbmNleyBib3JkZXItcmFkaXVzOjVweDsgcGFkZGluZzo1cHggNXB4OyBmb250LXNpemU6MXJlbSA7IHdpZHRoOjExMHB4OyAtd2Via2l0LWFwcGVhcmFuY2U6bm9uZTsgLW1vei1hcHBlYXJhbmNlOm5vbmU7IHBhZGRpbmctcmlnaHQ6MjdweDsgYmFja2dyb3VuZC1pbWFnZTp1cmwoJ2RhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQkFBQUFBUUNBWUFBQUFmOC85aEFBQUFoMGxFUVZRNFQ5M1RNUXJDVUF6RzhWOXg4UXppaVlTdVhkekZDN2g0QWNFTE9QUUFkWFlvdlpDSEVBVGxnUVY1R0ZUZTFvekpsei9rUzFJcGpLcXczd1FCVnl5KytKSTB5MUdUZTdEQ0JiTUFja2VOSVFLay9CYW5BTEJCKzE2THRuREVMb01jc00vQkVTRGx6MmhlRFIzV2VQd0tTTG81ZW94ejN6Nk5OY0ZEK3Z1M2lqMTRBcXovRHhHYktCN0NBQUFBQUVsRlRrU3VRbUNDJyk7IGJhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDsgYmFja2dyb3VuZC1wb3NpdGlvbjo5NSUgY2VudGVyOyBib3JkZXItY29sb3I6I2E5YTlhOTsgY29sb3I6aW5oZXJpdDsgYm94LXNoYWRvdzpub25lOyAtd2Via2l0LWJveC1zaGFkb3c6bm9uZTsgfSAucGF5bWVudENhbGN1bGF0b3JEb3duUGF5bWVudHsgYm9yZGVyOjFweCBzb2xpZCAjYTlhOWE5OyBib3JkZXItcmFkaXVzOjVweDsgcGFkZGluZzo1cHggNXB4OyBmb250LXNpemU6MXJlbSA7IHdpZHRoOjVyZW07IHBhZGRpbmctbGVmdDoyMHB4OyBiYWNrZ3JvdW5kLWltYWdlOnVybCgiZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZlcnNpb249JzEuMScgaGVpZ2h0PScyOHB4JyB3aWR0aD0nODVweCc+PHRleHQgeD0nNicgeT0nMjEnIGZpbGw9JycgZm9udC1zaXplPScxNicgZm9udC1mYW1pbHk9J2FyaWFsJz4kIik7IGJhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDsgYmFja2dyb3VuZC1zaXplOjYwJTsgYmFja2dyb3VuZC1wb3NpdGlvbi15OjQwJTsgLW1vei1hcHBlYXJhbmNlOnRleHRmaWVsZDsgfSAucGF5bWVudENhbGN1bGF0b3JEb3duUGF5bWVudDo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiwgLnBheW1lbnRDYWxjdWxhdG9yRG93blBheW1lbnQ6Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b257IC13ZWJraXQtYXBwZWFyYW5jZTpub25lOyBtYXJnaW46MDsgfSAucGF5bWVudENhbGN1bGF0b3JOb3RpY2VDb250YWluZXJ7IG1pbi13aWR0aDoxOHJlbTsgZm9udC1zaXplOjAuODEzcmVtIDsgY29sb3I6Izg2ODY4NjsgcGFkZGluZzowOyBtYXJnaW46MDsgZGlzcGxheTp2YXIoLS1tb2JpbGUtZGlzcGxheSwgaW5pdGlhbCk7IH0gLnBheW1lbnRDYWxjdWxhdG9yTm90aWNlQ29udGFpbmVyLmJveGVzNHsgd2lkdGg6MzAlOyB9IC5yZXZlYWwtbW9kYWwgLnBheW1lbnRDYWxjdWxhdG9yTm90aWNlQ29udGFpbmVyIHAsIC5yZXZlYWwtbW9kYWwgLnBheW1lbnRDYWxjdWxhdG9yTm90aWNlQ29udGFpbmVyIHNwYW57IGNvbG9yOmluaGVyaXQ7IHBhZGRpbmc6MDsgZm9udC1zaXplOjFyZW07IH0gLnBheW1lbnRDYWxjdWxhdG9yRXJyb3JNZXNzYWdleyB3aWR0aDo1MCU7IG1hcmdpbi10b3A6MzBweDsgfSAjcGF5bWVudENhbGN1bGF0b3JWZWhpY2xlSW5mb3sgcG9zaXRpb246cmVsYXRpdmU7IH0gI3BheW1lbnRDYWxjdWxhdG9yVmVoaWNsZUluZm8gLmljb257IGJvcmRlci1yYWRpdXM6NTAlOyBib3JkZXI6MXB4IHNvbGlkICNmZmZmZmY7IGNvbG9yOiNmZmZmZmY7IG1hcmdpbjowOyBwYWRkaW5nOjAuNHJlbTsgLS10eHQtY29sb3I6I2ZmZmZmZjsgLS1mczp2YXIoLS1oZWFkZXItaWNvbi1zaXplLCB2YXIoLS1mczcpKTsgYmFja2dyb3VuZC1jb2xvcjojZWIwMDAwOyB9ICNwYXltZW50Q2FsY3VsYXRvclZlaGljbGVJbmZvIGgyIHNwYW46Zmlyc3QtY2hpbGR7IGZvbnQtc2l6ZTp2YXIoLS1mczEpOyBmb250LXdlaWdodDpub3JtYWw7IH0gI3BheW1lbnRDYWxjdWxhdG9yVmVoaWNsZUluZm8gaDIgc3BhbnsgZm9udC1zaXplOnZhcigtLWhlYWRlci1mb250LXNpemUsIHZhcigtLWZzMykpOyBtYXJnaW46MDsgbGluZS1oZWlnaHQ6bm9ybWFsOyBmb250LXdlaWdodDo3MDA7IHBhZGRpbmc6MDsgfSAjcGF5bWVudENhbGN1bGF0b3JWZWhpY2xlSW5mbyBoM3sgZm9udC1zaXplOjEuMTg4cmVtIDsgfSAjcGF5bWVudENhbGN1bGF0b3JWZWhpY2xlSW5mbyBzcGFuLmgyLWFsdHsgbWFyZ2luOjA7IHBhZGRpbmc6MDsgbWFyZ2luLWxlZnQ6dmFyKC0tcyk7IGZvbnQtc2l6ZTppbmhlcml0OyBmb250LXdlaWdodDp2YXIoLS1mb250LWgyLXdlaWdodCk7IGxpbmUtaGVpZ2h0OjEuMmVtOyBjb2xvcjp2YXIoLS1kZWZhdWx0LWJsYWNrKTsgfSAjcGF5bWVudENhbGN1bGF0b3JWZWhpY2xlSW5mbyAuaDItYWx0IHNwYW46Zmlyc3QtY2hpbGR7IGZvbnQtc2l6ZTp2YXIoLS1mczEpOyBmb250LXdlaWdodDpub3JtYWw7IH0gI3BheW1lbnRDYWxjdWxhdG9yVmVoaWNsZUluZm8gLmgyLWFsdCBzcGFueyBmb250LXNpemU6dmFyKC0taGVhZGVyLWZvbnQtc2l6ZSwgdmFyKC0tZnMzKSk7IG1hcmdpbjowOyBsaW5lLWhlaWdodDpub3JtYWw7IGZvbnQtd2VpZ2h0OjcwMDsgcGFkZGluZzowOyB9ICNwYXltZW50Q2FsY3VsYXRvclZlaGljbGVJbmZvIC5oMy1hbHR7IGZvbnQtc2l6ZToxLjE4OHJlbSA7IH0gLnBheW1lbnRDYWxjdWxhdG9yQ2FsbFRvQWN0aW9uQ29udGFpbmVyeyB0ZXh0LWFsaWduOmNlbnRlcjsgfSAucGF5bWVudENhbGN1bGF0b3JDYWxsVG9BY3Rpb25Db250YWluZXIuYm94ZXM0eyB3aWR0aDo2NCU7IH0gLnBheW1lbnRDYWxjdWxhdG9yQ2FsbFRvQWN0aW9uQ29udGFpbmVyIGF7IHdpZHRoOm1pbig2NCUsMThyZW0pOyB9IC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRTZWxlY3R7IH0gLmZhLmZhLWNhbGN1bGF0b3J7IGNvbG9yOiMwMDAwMDA7IH0gLi1iZy1ibGFjayAuZmEuZmEtY2FsY3VsYXRvcnsgY29sb3I6I0ZGRkZGRjsgfSAjcGF5bWVudENhbGN1bGF0b3JDb250YWluZXIgc2VsZWN0OjotbXMtZXhwYW5kIHsgZGlzcGxheTpub25lOyB9IC5jYWxjLXBheW1lbnQtY2FzaCB7IHdpZHRoOm1pbigxN3JlbSw5MCUpOyBwYWRkaW5nOjAgMS41cmVtOyB9IC5jYWxjLXBheW1lbnQtY2FzaCBzcGFueyBtYXJnaW4tYm90dG9tOjA7IGZvbnQtc2l6ZTpyZXZlcnQ7IH0gLmNhbGMtcGF5bWVudC1jYXNoIC5wcmljZUZpbmFsIHsgcGFkZGluZy10b3A6dmFyKC0tcyk7IGJvcmRlci10b3A6MXB4IHNvbGlkICNiYmI7IGZvbnQtd2VpZ2h0OmJvbGQ7IH0gLmNhbGMtcGF5bWVudC1jYXNoIC5wcmljZVJvdyB7IGRpc3BsYXk6ZmxleDsgYWxpZ24taXRlbXM6Y2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjsgbGluZS1oZWlnaHQ6bm9ybWFsOyB9IC5jYWxjLXBheW1lbnQtY2FzaCAucHJpY2VOYW1leyBwYWRkaW5nOjA7IHRleHQtYWxpZ246bGVmdDsgZm9udC1zaXplOnZhcigtLWZzMCk7IH0gI3BheW1lbnRDYWxjdWxhdG9yT3B0aW9uQ29udGFpbmVyIC5wYXltZW50Q2FsY3VsYXRvclRyYWRlSW5CdXR0b257IGZvbnQtc2l6ZTowLjYyNXJlbSA7IGJvcmRlcjoxcHggc29saWQgI2E5YTlhOTsgYm9yZGVyLXJhZGl1czo1cHg7IGJhY2tncm91bmQtY29sb3I6d2hpdGU7IHdpZHRoOjEwNXB4OyB0ZXh0LWFsaWduOmNlbnRlcjsgdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTsgcGFkZGluZzoycHg7IGN1cnNvcjpwb2ludGVyOyB9ICNwYXltZW50Q2FsY3VsYXRvck9wdGlvbkNvbnRhaW5lciAucGF5bWVudENhbGN1bGF0b3JUcmFkZUluVmFsdWV7IGJvcmRlcjoxcHggc29saWQgI2E5YTlhOTsgYm9yZGVyLXJhZGl1czo1cHg7IHBhZGRpbmc6NXB4IDVweDsgZm9udC1zaXplOjFyZW0gOyB3aWR0aDoxMDBweDsgcGFkZGluZy1sZWZ0OjE1cHg7IGJhY2tncm91bmQtaW1hZ2U6dXJsKCJkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgdmVyc2lvbj0nMS4xJyBoZWlnaHQ9JzI4cHgnIHdpZHRoPSc4NXB4Jz48dGV4dCB4PSc2JyB5PScyMScgZmlsbD0nJyBmb250LXNpemU9JzE2JyBmb250LWZhbWlseT0nYXJpYWwnPiQiKTsgYmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0OyBiYWNrZ3JvdW5kLWNvbG9yOndoaXRlOyB9ICNwYXltZW50Q2FsY3VsYXRvckNvbnRhaW5lciAuZmluYW5jaW5nLW9wdGlvbiwgI2ZpbmFuY2VNdWx0aXN0ZXBOZXdDYWxjdWxhdG9yIC5maW5hbmNpbmctb3B0aW9uIHsgYm9yZGVyOjEuNXB4IHNvbGlkICNhYWE7IGJvcmRlci1yYWRpdXM6NnB4OyBwYWRkaW5nOjhweDsgd2lkdGg6MTkwcHg7IGJhY2tncm91bmQ6d2hpdGU7IGRpc3BsYXk6ZmxleDsgZmxleC1kaXJlY3Rpb246Y29sdW1uOyBhbGlnbi1pdGVtczpjZW50ZXI7IHRleHQtYWxpZ246Y2VudGVyOyBmbGV4LXNocmluazowOyBtaW4td2lkdGg6MTg3cHg7IGJveC1zaXppbmc6Y29udGVudC1ib3ghaW1wb3J0YW50OyB9ICNwYXltZW50Q2FsY3VsYXRvckNvbnRhaW5lciAuZmluYW5jaW5nLW9wdGlvbi5zZWxlY3RlZCwgI2ZpbmFuY2VNdWx0aXN0ZXBOZXdDYWxjdWxhdG9yIC5maW5hbmNpbmctb3B0aW9uLnNlbGVjdGVkIHsgYm9yZGVyLWNvbG9yOiMwMDdCRkY7IGJveC1zaGFkb3c6MCAwIDEwcHggcmdiYSgwLCAxMjMsIDI1NSwgMC41KTsgfSAjcGF5bWVudENhbGN1bGF0b3JDb250YWluZXIgLnRlcm0sICNmaW5hbmNlTXVsdGlzdGVwTmV3Q2FsY3VsYXRvciAudGVybSB7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGZvbnQtd2VpZ2h0OmJvbGQ7IGNvbG9yOiMzMzM7IG1hcmdpbi1ib3R0b206MnB4OyB9ICNwYXltZW50Q2FsY3VsYXRvckNvbnRhaW5lciAuZG93bi1wYXltZW50LCAjZmluYW5jZU11bHRpc3RlcE5ld0NhbGN1bGF0b3IgLmRvd24tcGF5bWVudCB7IGZvbnQtc2l6ZTowLjYyNXJlbSA7IGNvbG9yOiM5OTk7IG1hcmdpbi1ib3R0b206NXB4OyB9ICNwYXltZW50Q2FsY3VsYXRvckNvbnRhaW5lciAuc2VwYXJhdG9yUGF5LCAjZmluYW5jZU11bHRpc3RlcE5ld0NhbGN1bGF0b3IgLnNlcGFyYXRvclBheSB7IHdpZHRoOjkwJTsgaGVpZ2h0OjFweDsgYmFja2dyb3VuZC1jb2xvcjojY2NjOyBtYXJnaW4tYm90dG9tOjZweDsgfSAjcGF5bWVudENhbGN1bGF0b3JDb250YWluZXIgLmNvbnRlbnQtY29udGFpbmVyLCAjZmluYW5jZU11bHRpc3RlcE5ld0NhbGN1bGF0b3IgLmNvbnRlbnQtY29udGFpbmVyIHsgZGlzcGxheTpmbGV4OyBqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjsgYWxpZ24taXRlbXM6Y2VudGVyOyB3aWR0aDoxMDAlOyBwYWRkaW5nLWJvdHRvbTo4cHg7IH0gI3BheW1lbnRDYWxjdWxhdG9yQ29udGFpbmVyIC5sZWZ0LXNlY3Rpb24sICNwYXltZW50Q2FsY3VsYXRvckNvbnRhaW5lciAucmlnaHQtc2VjdGlvbiwgI2ZpbmFuY2VNdWx0aXN0ZXBOZXdDYWxjdWxhdG9yIC5sZWZ0LXNlY3Rpb24sICNmaW5hbmNlTXVsdGlzdGVwTmV3Q2FsY3VsYXRvciAucmlnaHQtc2VjdGlvbiB7IHdpZHRoOjUwJTsgdGV4dC1hbGlnbjpjZW50ZXI7IHBhZGRpbmc6NnB4OyBwb3NpdGlvbjpyZWxhdGl2ZTsgfSAjcGF5bWVudENhbGN1bGF0b3JDb250YWluZXIgLmxlZnQtc2VjdGlvbiwgI2ZpbmFuY2VNdWx0aXN0ZXBOZXdDYWxjdWxhdG9yIC5sZWZ0LXNlY3Rpb24geyBib3JkZXItcmlnaHQ6MXB4IHNvbGlkICNjY2M7IH0gI3BheW1lbnRDYWxjdWxhdG9yQ29udGFpbmVyIC5sb3dlc3QtcGF5bWVudCwgI3BheW1lbnRDYWxjdWxhdG9yQ29udGFpbmVyIC5sb3dlc3QtcmF0ZSwgI2ZpbmFuY2VNdWx0aXN0ZXBOZXdDYWxjdWxhdG9yIC5sb3dlc3QtcGF5bWVudCwgI2ZpbmFuY2VNdWx0aXN0ZXBOZXdDYWxjdWxhdG9yIC5sb3dlc3QtcmF0ZSB7IGZvbnQtc2l6ZToxLjI1cmVtIDsgY29sb3I6I2QzMmYyZjsgcG9zaXRpb246cmVsYXRpdmU7IH0gI3BheW1lbnRDYWxjdWxhdG9yQ29udGFpbmVyIC5pbmZvLWljb24sICNmaW5hbmNlTXVsdGlzdGVwTmV3Q2FsY3VsYXRvciAuaW5mby1pY29uIHsgZm9udC1zaXplOjAuNzVyZW0gOyBjb2xvcjojNjY2OyBjdXJzb3I6cG9pbnRlcjsgbWFyZ2luLWxlZnQ6NHB4OyBwb3NpdGlvbjphYnNvbHV0ZTsgdG9wOjJweDsgfSAjcGF5bWVudENhbGN1bGF0b3JDb250YWluZXIgLmFjdHVhbC1yYXRlLCAjcGF5bWVudENhbGN1bGF0b3JDb250YWluZXIgLmFjdHVhbC1wYXltZW50LCAjZmluYW5jZU11bHRpc3RlcE5ld0NhbGN1bGF0b3IgLmFjdHVhbC1yYXRlLCAjZmluYW5jZU11bHRpc3RlcE5ld0NhbGN1bGF0b3IgLmFjdHVhbC1wYXltZW50IHsgZm9udC1zaXplOjAuOTM4cmVtIDsgbWFyZ2luLXRvcDo1cHg7IGZvbnQtd2VpZ2h0OmJvbGQ7IH0gI3BheW1lbnRDYWxjdWxhdG9yQ29udGFpbmVyIC5hY3R1YWwtcmF0ZSwgI2ZpbmFuY2VNdWx0aXN0ZXBOZXdDYWxjdWxhdG9yIC5hY3R1YWwtcmF0ZSB7IGNvbG9yOiMzMzM7IH0gI3BheW1lbnRDYWxjdWxhdG9yQ29udGFpbmVyIC5hY3R1YWwtcGF5bWVudCwgI2ZpbmFuY2VNdWx0aXN0ZXBOZXdDYWxjdWxhdG9yIC5hY3R1YWwtcGF5bWVudCB7IGNvbG9yOiMwMDMzNjY7IH0gI3BheW1lbnRDYWxjdWxhdG9yQ29udGFpbmVyIC5kZXRhaWxzVGF4LCAjZmluYW5jZU11bHRpc3RlcE5ld0NhbGN1bGF0b3IgLmRldGFpbHNUYXggeyBmb250LXNpemU6MC42ODhyZW0gOyBjb2xvcjojMzMzOyBtYXJnaW4tdG9wOjJweDsgfSAjcGF5bWVudENhbGN1bGF0b3JDb250YWluZXIgLnJhZGlvLWNvbnRhaW5lciwgI2ZpbmFuY2VNdWx0aXN0ZXBOZXdDYWxjdWxhdG9yIC5yYWRpby1jb250YWluZXIgeyBkaXNwbGF5OmZsZXg7IGp1c3RpZnktY29udGVudDpjZW50ZXI7IGFsaWduLWl0ZW1zOmNlbnRlcjsgZ2FwOjBweDsgbWFyZ2luLXRvcDo4cHg7IGZvbnQtc2l6ZTowLjY4OHJlbSA7IH0gI3BheW1lbnRDYWxjdWxhdG9yQ29udGFpbmVyIGlucHV0W3R5cGU9InJhZGlvIl1bbmFtZT0ic2VsZWN0ZWRQYXltZW50Il0sICNwYXltZW50Q2FsY3VsYXRvckNvbnRhaW5lciBpbnB1dFt0eXBlPSJyYWRpbyJdW25hbWU9InNlbGVjdGVkUGF5bWVudFdpdGhUYXhlcyJdLCAjZmluYW5jZU11bHRpc3RlcE5ld0NhbGN1bGF0b3IgaW5wdXRbdHlwZT0icmFkaW8iXVtuYW1lPSJzZWxlY3RlZFBheW1lbnQiXSwgI2ZpbmFuY2VNdWx0aXN0ZXBOZXdDYWxjdWxhdG9yIGlucHV0W3R5cGU9InJhZGlvIl1bbmFtZT0ic2VsZWN0ZWRQYXltZW50V2l0aFRheGVzIl0geyBtYXJnaW4tcmlnaHQ6NHB4OyBvcGFjaXR5OnVuc2V0OyB3aWR0aDp1bnNldDsgaGVpZ2h0OnVuc2V0OyBwb3NpdGlvbjp1bnNldDsgfSAjcGF5bWVudENhbGN1bGF0b3JDb250YWluZXIgLnNpbmdsZS1jb2x1bW4sICNmaW5hbmNlTXVsdGlzdGVwTmV3Q2FsY3VsYXRvciAuc2luZ2xlLWNvbHVtbiB7IGRpc3BsYXk6ZmxleDsgZmxleC1kaXJlY3Rpb246Y29sdW1uOyBhbGlnbi1pdGVtczpjZW50ZXI7IGp1c3RpZnktY29udGVudDpjZW50ZXI7IHdpZHRoOjEwMCU7IHBhZGRpbmc6OHB4OyB9ICNwYXltZW50Q2FsY3VsYXRvckNvbnRhaW5lciAuc21hbGwtYm94LCAjZmluYW5jZU11bHRpc3RlcE5ld0NhbGN1bGF0b3IgLnNtYWxsLWJveCB7IHdpZHRoOjEwMHB4OyBwYWRkaW5nOjhweDsgbWluLXdpZHRoOjEwMHB4OyBtYXgtd2lkdGg6MTAwcHg7IH0KLyoqIC9jc3MvY3JlZGl0U2NvcmVDb25maXJtUG9wdXAuY3NzICoqLwojY3JlZGl0U2NvcmVDb25maXJtUG9wdXBDb250YWluZXJ7IGJhY2tncm91bmQ6d2hpdGU7IH0gI2NyZWRpdFNjb3JlQ29uZmlybVBvcHVwQ29udGFpbmVyIHNwYW57IG1hcmdpbjowOyBwYWRkaW5nOjA7IGZvbnQtc2l6ZToxLjI1cmVtIDsgfSAjY3JlZGl0U2NvcmVDb25maXJtUG9wdXBDb250YWluZXIgc3Bhbi5jcmVkaXRTY29yZUdyZWVuQ29sb3J7IGNvbG9yOiM0ZDhmMTQ7IGZvbnQtd2VpZ2h0OmJvbGQ7IH0gI2NyZWRpdFNjb3JlQ29uZmlybVBvcHVwQ29udGFpbmVyIHNwYW4uY3JlZGl0U2NvcmVCb2xkeyBmb250LXdlaWdodDpib2xkOyB9IC5jcmVkaXRTY29yZUNvbmZpcm1fYnRueyBjb2xvcjojZmZmZmZmOyBiYWNrZ3JvdW5kOiM0ZDhmMTQ7IGRpc3BsYXk6YmxvY2s7IHBhZGRpbmc6MTJweCAzMHB4OyBib3JkZXI6bm9uZTsgYm9yZGVyLXJhZGl1czo1cHg7IGN1cnNvcjpwb2ludGVyOyBmb250LXdlaWdodDpib2xkOyBmb250LXNpemU6MXJlbSA7IHRleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTsgbGV0dGVyLXNwYWNpbmc6MXB4OyB0cmFuc2l0aW9uOm9wYWNpdHkgMC4yczsgfSAuY3JlZGl0U2NvcmVDb25maXJtX2J0bjpob3Zlcnsgb3BhY2l0eTowLjg1OyB9ICNjcmVkaXRTY29yZUNvbmZpcm1Qb3B1cENvbnRhaW5lciBkaXYuc2NvcmVDcmVkaXRUaXRsZXsgZm9udC1zaXplOjAuOTM4cmVtIDsgdGV4dC1hbGlnbjpjZW50ZXI7IH0gI2NyZWRpdFNjb3JlQ29uZmlybVBvcHVwQ29udGFpbmVyIGRpdi5zY29yZUNyZWRpdFRpdGxlIGRpdi5jcmVkaXRTY29yZVRpdGxleyBtYXJnaW4tYm90dG9tOjEwcHg7IGZvbnQtd2VpZ2h0OjcwMDsgfSAjY3JlZGl0U2NvcmVDb25maXJtUG9wdXBDb250YWluZXIgc3Bhbi5jcmVkaXRTY29yZVRpdGxlRnJlZXsgZm9udC1zaXplOjIuNXJlbSA7IHRleHQtc2hhZG93OjJweCAwOyB9ICNjcmVkaXRTY29yZUNvbmZpcm1Qb3B1cENvbnRhaW5lciBzcGFuLmNyZWRpdFNjb3JlVGl0bGVTY29yZXsgZm9udC1zaXplOjEuNTYzcmVtIDsgdGV4dC1zaGFkb3c6MS40cHggMDsgfSAjY3JlZGl0U2NvcmVDb25maXJtUG9wdXBDb250YWluZXIgLmNyZWRpdFNjb3JlQ29uZmlybUlucHV0eyB0ZXh0LWFsaWduOmNlbnRlcjsgbWFyZ2luLXRvcDozMHB4OyBtYXJnaW4tYm90dG9tOjEwcHg7IH0gI2NyZWRpdFNjb3JlQ29uZmlybVBvcHVwQ29udGFpbmVyIGlucHV0eyBoZWlnaHQ6MzJweDsgZm9udC1zaXplOjAuOTM4cmVtIDsgd2lkdGg6MjYwcHg7IHBhZGRpbmc6MCAxMHB4OyBtYXJnaW4tYm90dG9tOjEwcHg7IGJvcmRlcjoxcHggc29saWQgI2VlZWVlZTsgYm94LXNpemluZzpjb250ZW50LWJveDsgZGlzcGxheTpibG9jazsgbWFyZ2luLWxlZnQ6YXV0bzsgbWFyZ2luLXJpZ2h0OmF1dG87IH0gI2NyZWRpdFNjb3JlQ29uZmlybVBvcHVwQ29udGFpbmVyIC5jcmVkaXRTY29yZUNvbmZpcm1fYnRueyB3aWR0aDoyNDBweDsgaGVpZ2h0OmF1dG87IHBhZGRpbmc6MTJweCAzMHB4OyBib3JkZXI6bm9uZTsgYm94LXNpemluZzpib3JkZXItYm94OyB0ZXh0LWFsaWduOmNlbnRlcjsgbWFyZ2luLWxlZnQ6YXV0bzsgbWFyZ2luLXJpZ2h0OmF1dG87IG1hcmdpbi1ib3R0b206MDsgfSAjY3JlZGl0U2NvcmVDb25maXJtUG9wdXBDb250YWluZXIgZGl2LmNyZWRpdFNjb3JlRXh0cmFUZXh0eyB0ZXh0LWFsaWduOmNlbnRlcjsgfSAjY3JlZGl0U2NvcmVDb25maXJtUG9wdXBDb250YWluZXIgZGl2LmNyZWRpdFNjb3JlQ29uc2VudE1lc3NhZ2V7IGNvbG9yOiNiM2IzYjM7IGZvbnQtc2l6ZTowLjc1cmVtIDsgdGV4dC1hbGlnbjpjZW50ZXI7IG1hcmdpbi10b3A6MnB4OyB9ICNjcmVkaXRTY29yZUNvbmZpcm1Qb3B1cENvbnRhaW5lciBkaXYuY3JlZGl0U2NvcmVDb25maXJtUG9wdXBNZXNzYWdleyB0ZXh0LWFsaWduOmNlbnRlcjsgYm9yZGVyLWJvdHRvbToxcHggc29saWQgYmxhY2s7IG1hcmdpbi1ib3R0b206MTBweDsgcGFkZGluZy1ib3R0b206MjBweDsgbWFyZ2luLWxlZnQ6YXV0bzsgbWFyZ2luLXJpZ2h0OmF1dG87IHdpZHRoOjQzMHB4OyB9ICNjcmVkaXRTY29yZUNvbmZpcm1Qb3B1cENvbnRhaW5lciBkaXYuY3JlZGl0U2NvcmVDb25maXJtUG9wdXBNZXNzYWdlIGRpdi5jcmVkaXRTY29yZUNvbmZpcm1Qb3B1cE1lc3NhZ2VUaXRsZXsgZm9udC1zaXplOjEuNXJlbSA7IG1hcmdpbi1ib3R0b206MTBweDsgfSAjY3JlZGl0U2NvcmVDb25maXJtUG9wdXBDb250YWluZXIgZGl2LmNyZWRpdFNjb3JlQ29uZmlybVBvcHVwTWVzc2FnZSBkaXYuY3JlZGl0U2NvcmVDb25maXJtUG9wdXBNZXNzYWdlVGV4dHsgZm9udC1zaXplOjAuODc1cmVtIDsgfSAucGFjLWNvbnRhaW5lciB7IHotaW5kZXg6MTAwMDAyMTsgfQovKiogL2Nzcy92Mi9tb2RhbC5jc3MgKiovCi5tb2RhbC13cmFwcGVyIHsgcG9zaXRpb246Zml4ZWQ7IHRvcDoxNTAlOyBsZWZ0OjUwJTsgdHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlLCAtNTAlKTsgei1pbmRleDoxNjAwMTsgdHJhbnNpdGlvbjp0b3AgMTUwbXMgZWFzZS1pbjsgfSAubW9kYWwtd3JhcHBlci5pcy1hY3RpdmV7IHRvcDo1MCU7IH0gLm1vZGFsLXdyYXBwZXIgLm1vZGFsLWJvZHl7IG1pbi13aWR0aDoyMHJlbTsgbWF4LXdpZHRoOjEwMCU7IG1heC1oZWlnaHQ6ODV2aDsgb3ZlcmZsb3cteTphdXRvOyB9IC5tb2RhbC1vdmVybGF5eyBwb3NpdGlvbjpmaXhlZDsgdG9wOjA7IGxlZnQ6MDsgd2lkdGg6MTAwdnc7IGhlaWdodDoxMDB2aDsgYmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLDAuNSk7IHotaW5kZXg6MTAwMDA7IH0gLmxvYWRpbmctb3ZlcmxheXsgcG9zaXRpb246YWJzb2x1dGU7IHdpZHRoOjEwMCU7IGhlaWdodDoxMDAlOyB0b3A6MDsgbGVmdDowOyBiYWNrZ3JvdW5kLWltYWdlOnVybCgvaW1hZ2VzL2FqYXgtbG9hZGVyLmdpZik7IGJhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDsgYmFja2dyb3VuZC1wb3NpdGlvbjpjZW50ZXI7IH0gLm1vZGFsLXdyYXBwZXIgOmlzKGlucHV0W3R5cGU9InRleHQiXSxpbnB1dFt0eXBlPSJlbWFpbCJdLGlucHV0W3R5cGU9InRlbCJdKXsgcGFkZGluZzowLjRyZW07IGJvcmRlcjoxcHggc29saWQgdmFyKC0tbWlkLWdyYXkpOyBib3JkZXItcmFkaXVzOjAuM3JlbTsgfSAubW9kYWwtYm9keSAuaWZyYW1lLXdyYXBwZXJ7IHdpZHRoOm1heCg5MHZ3LCAyMC41cmVtKTsgaGVpZ2h0Om1heCg4NHZoLCAzMHJlbSk7IHdpZHRoOmNsYW1wKDIwLjVyZW0sIG1heCg5MHZ3LCAyMC41cmVtKSwgNjByZW0pOyBoZWlnaHQ6Y2xhbXAoMzByZW0sIG1heCg4NHZoLCAzMHJlbSksIDYwcmVtKTsgfSAubW9kYWwtYm9keSAuaWZyYW1lLXdyYXBwZXIgaWZyYW1leyB3aWR0aDoxMDAlOyBoZWlnaHQ6MTAwJTsgfQovKiogL2Nzcy92Mi9mbGF0cGlja3IubWluLmNzcyAqKi8KLmZsYXRwaWNrci1jYWxlbmRhcntiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O29wYWNpdHk6MDtkaXNwbGF5Om5vbmU7dGV4dC1hbGlnbjpjZW50ZXI7dmlzaWJpbGl0eTpoaWRkZW47cGFkZGluZzowOy13ZWJraXQtYW5pbWF0aW9uOm5vbmU7YW5pbWF0aW9uOm5vbmU7ZGlyZWN0aW9uOmx0cjtib3JkZXI6MDtmb250LXNpemU6MC44NzVyZW0gO2xpbmUtaGVpZ2h0OjI0cHg7Ym9yZGVyLXJhZGl1czo1cHg7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MzA3Ljg3NXB4Oy13ZWJraXQtYm94LXNpemluZzpib3JkZXItYm94O2JveC1zaXppbmc6Ym9yZGVyLWJveDstbXMtdG91Y2gtYWN0aW9uOm1hbmlwdWxhdGlvbjt0b3VjaC1hY3Rpb246bWFuaXB1bGF0aW9uO2JhY2tncm91bmQ6I2ZmZjstd2Via2l0LWJveC1zaGFkb3c6MXB4IDAgMCAjZTZlNmU2LC0xcHggMCAwICNlNmU2ZTYsMCAxcHggMCAjZTZlNmU2LDAgLTFweCAwICNlNmU2ZTYsMCAzcHggMTNweCByZ2JhKDAsMCwwLDAuMDgpO2JveC1zaGFkb3c6MXB4IDAgMCAjZTZlNmU2LC0xcHggMCAwICNlNmU2ZTYsMCAxcHggMCAjZTZlNmU2LDAgLTFweCAwICNlNmU2ZTYsMCAzcHggMTNweCByZ2JhKDAsMCwwLDAuMDgpfS5mbGF0cGlja3ItY2FsZW5kYXIub3BlbiwuZmxhdHBpY2tyLWNhbGVuZGFyLmlubGluZXtvcGFjaXR5OjE7bWF4LWhlaWdodDo2NDBweDt2aXNpYmlsaXR5OnZpc2libGV9LmZsYXRwaWNrci1jYWxlbmRhci5vcGVue2Rpc3BsYXk6aW5saW5lLWJsb2NrO3otaW5kZXg6OTk5OTl9LmZsYXRwaWNrci1jYWxlbmRhci5hbmltYXRlLm9wZW57LXdlYmtpdC1hbmltYXRpb246ZnBGYWRlSW5Eb3duIDMwMG1zIGN1YmljLWJlemllciguMjMsMSwuMzIsMSk7YW5pbWF0aW9uOmZwRmFkZUluRG93biAzMDBtcyBjdWJpYy1iZXppZXIoLjIzLDEsLjMyLDEpfS5mbGF0cGlja3ItY2FsZW5kYXIuaW5saW5le2Rpc3BsYXk6YmxvY2s7cG9zaXRpb246cmVsYXRpdmU7dG9wOjJweH0uZmxhdHBpY2tyLWNhbGVuZGFyLnN0YXRpY3twb3NpdGlvbjphYnNvbHV0ZTt0b3A6Y2FsYygxMDAlICsgMnB4KX0uZmxhdHBpY2tyLWNhbGVuZGFyLnN0YXRpYy5vcGVue3otaW5kZXg6OTk5O2Rpc3BsYXk6YmxvY2t9LmZsYXRwaWNrci1jYWxlbmRhci5tdWx0aU1vbnRoIC5mbGF0cGlja3ItZGF5cyAuZGF5Q29udGFpbmVyOm50aC1jaGlsZChuKzEpIC5mbGF0cGlja3ItZGF5LmluUmFuZ2U6bnRoLWNoaWxkKDduKzcpey13ZWJraXQtYm94LXNoYWRvdzpub25lICFpbXBvcnRhbnQ7Ym94LXNoYWRvdzpub25lICFpbXBvcnRhbnR9LmZsYXRwaWNrci1jYWxlbmRhci5tdWx0aU1vbnRoIC5mbGF0cGlja3ItZGF5cyAuZGF5Q29udGFpbmVyOm50aC1jaGlsZChuKzIpIC5mbGF0cGlja3ItZGF5LmluUmFuZ2U6bnRoLWNoaWxkKDduKzEpey13ZWJraXQtYm94LXNoYWRvdzotMnB4IDAgMCAjZTZlNmU2LDVweCAwIDAgI2U2ZTZlNjtib3gtc2hhZG93Oi0ycHggMCAwICNlNmU2ZTYsNXB4IDAgMCAjZTZlNmU2fS5mbGF0cGlja3ItY2FsZW5kYXIgLmhhc1dlZWtzIC5kYXlDb250YWluZXIsLmZsYXRwaWNrci1jYWxlbmRhciAuaGFzVGltZSAuZGF5Q29udGFpbmVye2JvcmRlci1ib3R0b206MDtib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czowO2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6MH0uZmxhdHBpY2tyLWNhbGVuZGFyIC5oYXNXZWVrcyAuZGF5Q29udGFpbmVye2JvcmRlci1sZWZ0OjB9LmZsYXRwaWNrci1jYWxlbmRhci5oYXNUaW1lIC5mbGF0cGlja3ItdGltZXtoZWlnaHQ6NDBweDtib3JkZXItdG9wOjFweCBzb2xpZCAjZTZlNmU2fS5mbGF0cGlja3ItY2FsZW5kYXIubm9DYWxlbmRhci5oYXNUaW1lIC5mbGF0cGlja3ItdGltZXtoZWlnaHQ6YXV0b30uZmxhdHBpY2tyLWNhbGVuZGFyOmJlZm9yZSwuZmxhdHBpY2tyLWNhbGVuZGFyOmFmdGVye3Bvc2l0aW9uOmFic29sdXRlO2Rpc3BsYXk6YmxvY2s7cG9pbnRlci1ldmVudHM6bm9uZTtib3JkZXI6c29saWQgdHJhbnNwYXJlbnQ7Y29udGVudDonJztoZWlnaHQ6MDt3aWR0aDowO2xlZnQ6MjJweH0uZmxhdHBpY2tyLWNhbGVuZGFyLnJpZ2h0TW9zdDpiZWZvcmUsLmZsYXRwaWNrci1jYWxlbmRhci5hcnJvd1JpZ2h0OmJlZm9yZSwuZmxhdHBpY2tyLWNhbGVuZGFyLnJpZ2h0TW9zdDphZnRlciwuZmxhdHBpY2tyLWNhbGVuZGFyLmFycm93UmlnaHQ6YWZ0ZXJ7bGVmdDphdXRvO3JpZ2h0OjIycHh9LmZsYXRwaWNrci1jYWxlbmRhci5hcnJvd0NlbnRlcjpiZWZvcmUsLmZsYXRwaWNrci1jYWxlbmRhci5hcnJvd0NlbnRlcjphZnRlcntsZWZ0OjUwJTtyaWdodDo1MCV9LmZsYXRwaWNrci1jYWxlbmRhcjpiZWZvcmV7Ym9yZGVyLXdpZHRoOjVweDttYXJnaW46MCAtNXB4fS5mbGF0cGlja3ItY2FsZW5kYXI6YWZ0ZXJ7Ym9yZGVyLXdpZHRoOjRweDttYXJnaW46MCAtNHB4fS5mbGF0cGlja3ItY2FsZW5kYXIuYXJyb3dUb3A6YmVmb3JlLC5mbGF0cGlja3ItY2FsZW5kYXIuYXJyb3dUb3A6YWZ0ZXJ7Ym90dG9tOjEwMCV9LmZsYXRwaWNrci1jYWxlbmRhci5hcnJvd1RvcDpiZWZvcmV7Ym9yZGVyLWJvdHRvbS1jb2xvcjojZTZlNmU2fS5mbGF0cGlja3ItY2FsZW5kYXIuYXJyb3dUb3A6YWZ0ZXJ7Ym9yZGVyLWJvdHRvbS1jb2xvcjojZmZmfS5mbGF0cGlja3ItY2FsZW5kYXIuYXJyb3dCb3R0b206YmVmb3JlLC5mbGF0cGlja3ItY2FsZW5kYXIuYXJyb3dCb3R0b206YWZ0ZXJ7dG9wOjEwMCV9LmZsYXRwaWNrci1jYWxlbmRhci5hcnJvd0JvdHRvbTpiZWZvcmV7Ym9yZGVyLXRvcC1jb2xvcjojZTZlNmU2fS5mbGF0cGlja3ItY2FsZW5kYXIuYXJyb3dCb3R0b206YWZ0ZXJ7Ym9yZGVyLXRvcC1jb2xvcjojZmZmfS5mbGF0cGlja3ItY2FsZW5kYXI6Zm9jdXN7b3V0bGluZTowfS5mbGF0cGlja3Itd3JhcHBlcntwb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5OmlubGluZS1ibG9ja30uZmxhdHBpY2tyLW1vbnRoc3tkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4fS5mbGF0cGlja3ItbW9udGhzIC5mbGF0cGlja3ItbW9udGh7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtjb2xvcjpyZ2JhKDAsMCwwLDAuOSk7ZmlsbDpyZ2JhKDAsMCwwLDAuOSk7aGVpZ2h0OjM0cHg7bGluZS1oZWlnaHQ6MTt0ZXh0LWFsaWduOmNlbnRlcjtwb3NpdGlvbjpyZWxhdGl2ZTstd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7LW1vei11c2VyLXNlbGVjdDpub25lOy1tcy11c2VyLXNlbGVjdDpub25lO3VzZXItc2VsZWN0Om5vbmU7b3ZlcmZsb3c6aGlkZGVuOy13ZWJraXQtYm94LWZsZXg6MTstd2Via2l0LWZsZXg6MTstbXMtZmxleDoxO2ZsZXg6MX0uZmxhdHBpY2tyLW1vbnRocyAuZmxhdHBpY2tyLXByZXYtbW9udGgsLmZsYXRwaWNrci1tb250aHMgLmZsYXRwaWNrci1uZXh0LW1vbnRoe3RleHQtZGVjb3JhdGlvbjpub25lO2N1cnNvcjpwb2ludGVyO3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2hlaWdodDozNHB4O3BhZGRpbmc6MTBweDt6LWluZGV4OjM7Y29sb3I6cmdiYSgwLDAsMCwwLjkpO2ZpbGw6cmdiYSgwLDAsMCwwLjkpfS5mbGF0cGlja3ItbW9udGhzIC5mbGF0cGlja3ItcHJldi1tb250aC5mbGF0cGlja3ItZGlzYWJsZWQsLmZsYXRwaWNrci1tb250aHMgLmZsYXRwaWNrci1uZXh0LW1vbnRoLmZsYXRwaWNrci1kaXNhYmxlZHtkaXNwbGF5Om5vbmV9LmZsYXRwaWNrci1tb250aHMgLmZsYXRwaWNrci1wcmV2LW1vbnRoIGksLmZsYXRwaWNrci1tb250aHMgLmZsYXRwaWNrci1uZXh0LW1vbnRoIGl7cG9zaXRpb246cmVsYXRpdmV9LmZsYXRwaWNrci1tb250aHMgLmZsYXRwaWNrci1wcmV2LW1vbnRoLmZsYXRwaWNrci1wcmV2LW1vbnRoLC5mbGF0cGlja3ItbW9udGhzIC5mbGF0cGlja3ItbmV4dC1tb250aC5mbGF0cGlja3ItcHJldi1tb250aHtsZWZ0OjB9IC5mbGF0cGlja3ItbW9udGhzIC5mbGF0cGlja3ItcHJldi1tb250aC5mbGF0cGlja3ItbmV4dC1tb250aCwuZmxhdHBpY2tyLW1vbnRocyAuZmxhdHBpY2tyLW5leHQtbW9udGguZmxhdHBpY2tyLW5leHQtbW9udGh7cmlnaHQ6MH0gLmZsYXRwaWNrci1tb250aHMgLmZsYXRwaWNrci1wcmV2LW1vbnRoOmhvdmVyLC5mbGF0cGlja3ItbW9udGhzIC5mbGF0cGlja3ItbmV4dC1tb250aDpob3Zlcntjb2xvcjojOTU5ZWE5fS5mbGF0cGlja3ItbW9udGhzIC5mbGF0cGlja3ItcHJldi1tb250aDpob3ZlciBzdmcsLmZsYXRwaWNrci1tb250aHMgLmZsYXRwaWNrci1uZXh0LW1vbnRoOmhvdmVyIHN2Z3tmaWxsOiNmNjQ3NDd9LmZsYXRwaWNrci1tb250aHMgLmZsYXRwaWNrci1wcmV2LW1vbnRoIHN2ZywuZmxhdHBpY2tyLW1vbnRocyAuZmxhdHBpY2tyLW5leHQtbW9udGggc3Zne3dpZHRoOjE0cHg7aGVpZ2h0OjE0cHh9LmZsYXRwaWNrci1tb250aHMgLmZsYXRwaWNrci1wcmV2LW1vbnRoIHN2ZyBwYXRoLC5mbGF0cGlja3ItbW9udGhzIC5mbGF0cGlja3ItbmV4dC1tb250aCBzdmcgcGF0aHstd2Via2l0LXRyYW5zaXRpb246ZmlsbCAuMXM7dHJhbnNpdGlvbjpmaWxsIC4xcztmaWxsOmluaGVyaXR9Lm51bUlucHV0V3JhcHBlcntwb3NpdGlvbjpyZWxhdGl2ZTtoZWlnaHQ6YXV0b30ubnVtSW5wdXRXcmFwcGVyIGlucHV0LC5udW1JbnB1dFdyYXBwZXIgc3BhbntkaXNwbGF5OmlubGluZS1ibG9ja30ubnVtSW5wdXRXcmFwcGVyIGlucHV0e3dpZHRoOjEwMCV9Lm51bUlucHV0V3JhcHBlciBpbnB1dDo6LW1zLWNsZWFye2Rpc3BsYXk6bm9uZX0ubnVtSW5wdXRXcmFwcGVyIGlucHV0Ojotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uLC5udW1JbnB1dFdyYXBwZXIgaW5wdXQ6Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b257bWFyZ2luOjA7LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmV9Lm51bUlucHV0V3JhcHBlciBzcGFue3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjA7d2lkdGg6MTRweDtwYWRkaW5nOjAgNHB4IDAgMnB4O2hlaWdodDo1MCU7bGluZS1oZWlnaHQ6NTAlO29wYWNpdHk6MDtjdXJzb3I6cG9pbnRlcjtib3JkZXI6MXB4IHNvbGlkIHJnYmEoNTcsNTcsNTcsMC4xNSk7LXdlYmtpdC1ib3gtc2l6aW5nOmJvcmRlci1ib3g7Ym94LXNpemluZzpib3JkZXItYm94fS5udW1JbnB1dFdyYXBwZXIgc3Bhbjpob3ZlcntiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsMC4xKX0ubnVtSW5wdXRXcmFwcGVyIHNwYW46YWN0aXZle2JhY2tncm91bmQ6cmdiYSgwLDAsMCwwLjIpfS5udW1JbnB1dFdyYXBwZXIgc3BhbjphZnRlcntkaXNwbGF5OmJsb2NrO2NvbnRlbnQ6IiI7cG9zaXRpb246YWJzb2x1dGV9Lm51bUlucHV0V3JhcHBlciBzcGFuLmFycm93VXB7dG9wOjA7Ym9yZGVyLWJvdHRvbTowfS5udW1JbnB1dFdyYXBwZXIgc3Bhbi5hcnJvd1VwOmFmdGVye2JvcmRlci1sZWZ0OjRweCBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItcmlnaHQ6NHB4IHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1ib3R0b206NHB4IHNvbGlkIHJnYmEoNTcsNTcsNTcsMC42KTt0b3A6MjYlfS5udW1JbnB1dFdyYXBwZXIgc3Bhbi5hcnJvd0Rvd257dG9wOjUwJX0ubnVtSW5wdXRXcmFwcGVyIHNwYW4uYXJyb3dEb3duOmFmdGVye2JvcmRlci1sZWZ0OjRweCBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItcmlnaHQ6NHB4IHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci10b3A6NHB4IHNvbGlkIHJnYmEoNTcsNTcsNTcsMC42KTt0b3A6NDAlfS5udW1JbnB1dFdyYXBwZXIgc3BhbiBzdmd7d2lkdGg6aW5oZXJpdDtoZWlnaHQ6YXV0b30ubnVtSW5wdXRXcmFwcGVyIHNwYW4gc3ZnIHBhdGh7ZmlsbDpyZ2JhKDAsMCwwLDAuNSl9Lm51bUlucHV0V3JhcHBlcjpob3ZlcntiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsMC4wNSl9Lm51bUlucHV0V3JhcHBlcjpob3ZlciBzcGFue29wYWNpdHk6MX0uZmxhdHBpY2tyLWN1cnJlbnQtbW9udGh7Zm9udC1zaXplOjEzNSU7bGluZS1oZWlnaHQ6aW5oZXJpdDtmb250LXdlaWdodDozMDA7Y29sb3I6aW5oZXJpdDtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDo3NSU7bGVmdDoxMi41JTtwYWRkaW5nOjcuNDhweCAwIDAgMDtsaW5lLWhlaWdodDoxO2hlaWdodDozNHB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrO3RleHQtYWxpZ246Y2VudGVyOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsMCwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwwLDApfS5mbGF0cGlja3ItY3VycmVudC1tb250aCBzcGFuLmN1ci1tb250aHtmb250LWZhbWlseTppbmhlcml0O2ZvbnQtd2VpZ2h0OjcwMDtjb2xvcjppbmhlcml0O2Rpc3BsYXk6aW5saW5lLWJsb2NrO21hcmdpbi1sZWZ0Oi41Y2g7cGFkZGluZzowfS5mbGF0cGlja3ItY3VycmVudC1tb250aCBzcGFuLmN1ci1tb250aDpob3ZlcntiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsMC4wNSl9LmZsYXRwaWNrci1jdXJyZW50LW1vbnRoIC5udW1JbnB1dFdyYXBwZXJ7d2lkdGg6NmNoO3dpZHRoOjdjaFwwO2Rpc3BsYXk6aW5saW5lLWJsb2NrfS5mbGF0cGlja3ItY3VycmVudC1tb250aCAubnVtSW5wdXRXcmFwcGVyIHNwYW4uYXJyb3dVcDphZnRlcntib3JkZXItYm90dG9tLWNvbG9yOnJnYmEoMCwwLDAsMC45KX0uZmxhdHBpY2tyLWN1cnJlbnQtbW9udGggLm51bUlucHV0V3JhcHBlciBzcGFuLmFycm93RG93bjphZnRlcntib3JkZXItdG9wLWNvbG9yOnJnYmEoMCwwLDAsMC45KX0uZmxhdHBpY2tyLWN1cnJlbnQtbW9udGggaW5wdXQuY3VyLXllYXJ7YmFja2dyb3VuZDp0cmFuc3BhcmVudDstd2Via2l0LWJveC1zaXppbmc6Ym9yZGVyLWJveDtib3gtc2l6aW5nOmJvcmRlci1ib3g7Y29sb3I6aW5oZXJpdDtjdXJzb3I6dGV4dDtwYWRkaW5nOjAgMCAwIC41Y2g7bWFyZ2luOjA7ZGlzcGxheTppbmxpbmUtYmxvY2s7Zm9udC1zaXplOmluaGVyaXQ7Zm9udC1mYW1pbHk6aW5oZXJpdDtmb250LXdlaWdodDozMDA7bGluZS1oZWlnaHQ6aW5oZXJpdDtoZWlnaHQ6YXV0bztib3JkZXI6MDtib3JkZXItcmFkaXVzOjA7dmVydGljYWwtYWxpZ246aW5pdGlhbDstd2Via2l0LWFwcGVhcmFuY2U6dGV4dGZpZWxkOy1tb3otYXBwZWFyYW5jZTp0ZXh0ZmllbGQ7YXBwZWFyYW5jZTp0ZXh0ZmllbGR9LmZsYXRwaWNrci1jdXJyZW50LW1vbnRoIGlucHV0LmN1ci15ZWFyOmZvY3Vze291dGxpbmU6MH0uZmxhdHBpY2tyLWN1cnJlbnQtbW9udGggaW5wdXQuY3VyLXllYXJbZGlzYWJsZWRdLC5mbGF0cGlja3ItY3VycmVudC1tb250aCBpbnB1dC5jdXIteWVhcltkaXNhYmxlZF06aG92ZXJ7Zm9udC1zaXplOjEwMCU7Y29sb3I6cmdiYSgwLDAsMCwwLjUpO2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7cG9pbnRlci1ldmVudHM6bm9uZX0uZmxhdHBpY2tyLWN1cnJlbnQtbW9udGggLmZsYXRwaWNrci1tb250aERyb3Bkb3duLW1vbnRoc3thcHBlYXJhbmNlOm1lbnVsaXN0O2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Ym9yZGVyOm5vbmU7Ym9yZGVyLXJhZGl1czowO2JveC1zaXppbmc6Ym9yZGVyLWJveDtjb2xvcjppbmhlcml0O2N1cnNvcjpwb2ludGVyO2ZvbnQtc2l6ZTppbmhlcml0O2ZvbnQtZmFtaWx5OmluaGVyaXQ7Zm9udC13ZWlnaHQ6MzAwO2hlaWdodDphdXRvO2xpbmUtaGVpZ2h0OmluaGVyaXQ7bWFyZ2luOi0xcHggMCAwIDA7b3V0bGluZTpub25lO3BhZGRpbmc6MCAwIDAgLjVjaDtwb3NpdGlvbjpyZWxhdGl2ZTt2ZXJ0aWNhbC1hbGlnbjppbml0aWFsOy13ZWJraXQtYm94LXNpemluZzpib3JkZXItYm94Oy13ZWJraXQtYXBwZWFyYW5jZTptZW51bGlzdDstbW96LWFwcGVhcmFuY2U6bWVudWxpc3Q7d2lkdGg6YXV0b30uZmxhdHBpY2tyLWN1cnJlbnQtbW9udGggLmZsYXRwaWNrci1tb250aERyb3Bkb3duLW1vbnRoczpmb2N1cywuZmxhdHBpY2tyLWN1cnJlbnQtbW9udGggLmZsYXRwaWNrci1tb250aERyb3Bkb3duLW1vbnRoczphY3RpdmV7b3V0bGluZTpub25lfS5mbGF0cGlja3ItY3VycmVudC1tb250aCAuZmxhdHBpY2tyLW1vbnRoRHJvcGRvd24tbW9udGhzOmhvdmVye2JhY2tncm91bmQ6cmdiYSgwLDAsMCwwLjA1KX0uZmxhdHBpY2tyLWN1cnJlbnQtbW9udGggLmZsYXRwaWNrci1tb250aERyb3Bkb3duLW1vbnRocyAuZmxhdHBpY2tyLW1vbnRoRHJvcGRvd24tbW9udGh7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtvdXRsaW5lOm5vbmU7cGFkZGluZzowfS5mbGF0cGlja3Itd2Vla2RheXN7YmFja2dyb3VuZDp0cmFuc3BhcmVudDt0ZXh0LWFsaWduOmNlbnRlcjtvdmVyZmxvdzpoaWRkZW47d2lkdGg6MTAwJTtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYm94LWFsaWduOmNlbnRlcjstd2Via2l0LWFsaWduLWl0ZW1zOmNlbnRlcjstbXMtZmxleC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO2hlaWdodDoyOHB4fS5mbGF0cGlja3Itd2Vla2RheXMgLmZsYXRwaWNrci13ZWVrZGF5Y29udGFpbmVye2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1ib3gtZmxleDoxOy13ZWJraXQtZmxleDoxOy1tcy1mbGV4OjE7ZmxleDoxfXNwYW4uZmxhdHBpY2tyLXdlZWtkYXl7Y3Vyc29yOmRlZmF1bHQ7Zm9udC1zaXplOjkwJTtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O2NvbG9yOnJnYmEoMCwwLDAsMC41NCk7bGluZS1oZWlnaHQ6MTttYXJnaW46MDt0ZXh0LWFsaWduOmNlbnRlcjtkaXNwbGF5OmJsb2NrOy13ZWJraXQtYm94LWZsZXg6MTstd2Via2l0LWZsZXg6MTstbXMtZmxleDoxO2ZsZXg6MTtmb250LXdlaWdodDpib2xkZXJ9LmRheUNvbnRhaW5lciwuZmxhdHBpY2tyLXdlZWtze3BhZGRpbmc6MXB4IDAgMCAwfS5mbGF0cGlja3ItZGF5c3twb3NpdGlvbjpyZWxhdGl2ZTtvdmVyZmxvdzpoaWRkZW47ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleDstd2Via2l0LWJveC1hbGlnbjpzdGFydDstd2Via2l0LWFsaWduLWl0ZW1zOmZsZXgtc3RhcnQ7LW1zLWZsZXgtYWxpZ246c3RhcnQ7YWxpZ24taXRlbXM6ZmxleC1zdGFydDt3aWR0aDozMDcuODc1cHh9LmZsYXRwaWNrci1kYXlzOmZvY3Vze291dGxpbmU6MH0uZGF5Q29udGFpbmVye3BhZGRpbmc6MDtvdXRsaW5lOjA7dGV4dC1hbGlnbjpsZWZ0O3dpZHRoOjMwNy44NzVweDttaW4td2lkdGg6MzA3Ljg3NXB4O21heC13aWR0aDozMDcuODc1cHg7LXdlYmtpdC1ib3gtc2l6aW5nOmJvcmRlci1ib3g7Ym94LXNpemluZzpib3JkZXItYm94O2Rpc3BsYXk6aW5saW5lLWJsb2NrO2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1mbGV4LXdyYXA6d3JhcDtmbGV4LXdyYXA6d3JhcDstbXMtZmxleC13cmFwOndyYXA7LW1zLWZsZXgtcGFjazpqdXN0aWZ5Oy13ZWJraXQtanVzdGlmeS1jb250ZW50OnNwYWNlLWFyb3VuZDtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYXJvdW5kOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsMCwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwwLDApO29wYWNpdHk6MX0uZGF5Q29udGFpbmVyICsgLmRheUNvbnRhaW5lcnstd2Via2l0LWJveC1zaGFkb3c6LTFweCAwIDAgI2U2ZTZlNjtib3gtc2hhZG93Oi0xcHggMCAwICNlNmU2ZTZ9LmZsYXRwaWNrci1kYXl7YmFja2dyb3VuZDpub25lO2JvcmRlcjoxcHggc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLXJhZGl1czoxNTBweDstd2Via2l0LWJveC1zaXppbmc6Ym9yZGVyLWJveDtib3gtc2l6aW5nOmJvcmRlci1ib3g7Y29sb3I6IzM5MzkzOTtjdXJzb3I6cG9pbnRlcjtmb250LXdlaWdodDo0MDA7d2lkdGg6MTQuMjg1NzE0MyU7LXdlYmtpdC1mbGV4LWJhc2lzOjE0LjI4NTcxNDMlOy1tcy1mbGV4LXByZWZlcnJlZC1zaXplOjE0LjI4NTcxNDMlO2ZsZXgtYmFzaXM6MTQuMjg1NzE0MyU7bWF4LXdpZHRoOjM5cHg7aGVpZ2h0OjM5cHg7bGluZS1oZWlnaHQ6MzlweDttYXJnaW46MDtkaXNwbGF5OmlubGluZS1ibG9jaztwb3NpdGlvbjpyZWxhdGl2ZTstd2Via2l0LWJveC1wYWNrOmNlbnRlcjstd2Via2l0LWp1c3RpZnktY29udGVudDpjZW50ZXI7LW1zLWZsZXgtcGFjazpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjt0ZXh0LWFsaWduOmNlbnRlcn0uZmxhdHBpY2tyLWRheS5pblJhbmdlLC5mbGF0cGlja3ItZGF5LnByZXZNb250aERheS5pblJhbmdlLC5mbGF0cGlja3ItZGF5Lm5leHRNb250aERheS5pblJhbmdlLC5mbGF0cGlja3ItZGF5LnRvZGF5LmluUmFuZ2UsLmZsYXRwaWNrci1kYXkucHJldk1vbnRoRGF5LnRvZGF5LmluUmFuZ2UsLmZsYXRwaWNrci1kYXkubmV4dE1vbnRoRGF5LnRvZGF5LmluUmFuZ2UsLmZsYXRwaWNrci1kYXk6aG92ZXIsLmZsYXRwaWNrci1kYXkucHJldk1vbnRoRGF5OmhvdmVyLC5mbGF0cGlja3ItZGF5Lm5leHRNb250aERheTpob3ZlciwuZmxhdHBpY2tyLWRheTpmb2N1cywuZmxhdHBpY2tyLWRheS5wcmV2TW9udGhEYXk6Zm9jdXMsLmZsYXRwaWNrci1kYXkubmV4dE1vbnRoRGF5OmZvY3Vze2N1cnNvcjpwb2ludGVyO291dGxpbmU6MDtiYWNrZ3JvdW5kOiNlNmU2ZTY7Ym9yZGVyLWNvbG9yOiNlNmU2ZTZ9LmZsYXRwaWNrci1kYXkudG9kYXl7Ym9yZGVyLWNvbG9yOiM5NTllYTl9LmZsYXRwaWNrci1kYXkudG9kYXk6aG92ZXIsLmZsYXRwaWNrci1kYXkudG9kYXk6Zm9jdXN7Ym9yZGVyLWNvbG9yOiM5NTllYTk7YmFja2dyb3VuZDojOTU5ZWE5O2NvbG9yOiNmZmZ9LmZsYXRwaWNrci1kYXkuc2VsZWN0ZWQsLmZsYXRwaWNrci1kYXkuc3RhcnRSYW5nZSwuZmxhdHBpY2tyLWRheS5lbmRSYW5nZSwuZmxhdHBpY2tyLWRheS5zZWxlY3RlZC5pblJhbmdlLC5mbGF0cGlja3ItZGF5LnN0YXJ0UmFuZ2UuaW5SYW5nZSwuZmxhdHBpY2tyLWRheS5lbmRSYW5nZS5pblJhbmdlLC5mbGF0cGlja3ItZGF5LnNlbGVjdGVkOmZvY3VzLC5mbGF0cGlja3ItZGF5LnN0YXJ0UmFuZ2U6Zm9jdXMsLmZsYXRwaWNrci1kYXkuZW5kUmFuZ2U6Zm9jdXMsLmZsYXRwaWNrci1kYXkuc2VsZWN0ZWQ6aG92ZXIsLmZsYXRwaWNrci1kYXkuc3RhcnRSYW5nZTpob3ZlciwuZmxhdHBpY2tyLWRheS5lbmRSYW5nZTpob3ZlciwuZmxhdHBpY2tyLWRheS5zZWxlY3RlZC5wcmV2TW9udGhEYXksLmZsYXRwaWNrci1kYXkuc3RhcnRSYW5nZS5wcmV2TW9udGhEYXksLmZsYXRwaWNrci1kYXkuZW5kUmFuZ2UucHJldk1vbnRoRGF5LC5mbGF0cGlja3ItZGF5LnNlbGVjdGVkLm5leHRNb250aERheSwuZmxhdHBpY2tyLWRheS5zdGFydFJhbmdlLm5leHRNb250aERheSwuZmxhdHBpY2tyLWRheS5lbmRSYW5nZS5uZXh0TW9udGhEYXl7YmFja2dyb3VuZDojNTY5ZmY3Oy13ZWJraXQtYm94LXNoYWRvdzpub25lO2JveC1zaGFkb3c6bm9uZTtjb2xvcjojZmZmO2JvcmRlci1jb2xvcjojNTY5ZmY3fS5mbGF0cGlja3ItZGF5LnNlbGVjdGVkLnN0YXJ0UmFuZ2UsLmZsYXRwaWNrci1kYXkuc3RhcnRSYW5nZS5zdGFydFJhbmdlLC5mbGF0cGlja3ItZGF5LmVuZFJhbmdlLnN0YXJ0UmFuZ2V7Ym9yZGVyLXJhZGl1czo1MHB4IDAgMCA1MHB4fS5mbGF0cGlja3ItZGF5LnNlbGVjdGVkLmVuZFJhbmdlLC5mbGF0cGlja3ItZGF5LnN0YXJ0UmFuZ2UuZW5kUmFuZ2UsLmZsYXRwaWNrci1kYXkuZW5kUmFuZ2UuZW5kUmFuZ2V7Ym9yZGVyLXJhZGl1czowIDUwcHggNTBweCAwfS5mbGF0cGlja3ItZGF5LnNlbGVjdGVkLnN0YXJ0UmFuZ2UgKyAuZW5kUmFuZ2U6bm90KDpudGgtY2hpbGQoN24rMSkpLC5mbGF0cGlja3ItZGF5LnN0YXJ0UmFuZ2Uuc3RhcnRSYW5nZSArIC5lbmRSYW5nZTpub3QoOm50aC1jaGlsZCg3bisxKSksLmZsYXRwaWNrci1kYXkuZW5kUmFuZ2Uuc3RhcnRSYW5nZSArIC5lbmRSYW5nZTpub3QoOm50aC1jaGlsZCg3bisxKSl7LXdlYmtpdC1ib3gtc2hhZG93Oi0xMHB4IDAgMCAjNTY5ZmY3O2JveC1zaGFkb3c6LTEwcHggMCAwICM1NjlmZjd9LmZsYXRwaWNrci1kYXkuc2VsZWN0ZWQuc3RhcnRSYW5nZS5lbmRSYW5nZSwuZmxhdHBpY2tyLWRheS5zdGFydFJhbmdlLnN0YXJ0UmFuZ2UuZW5kUmFuZ2UsLmZsYXRwaWNrci1kYXkuZW5kUmFuZ2Uuc3RhcnRSYW5nZS5lbmRSYW5nZXtib3JkZXItcmFkaXVzOjUwcHh9LmZsYXRwaWNrci1kYXkuaW5SYW5nZXtib3JkZXItcmFkaXVzOjA7LXdlYmtpdC1ib3gtc2hhZG93Oi01cHggMCAwICNlNmU2ZTYsNXB4IDAgMCAjZTZlNmU2O2JveC1zaGFkb3c6LTVweCAwIDAgI2U2ZTZlNiw1cHggMCAwICNlNmU2ZTZ9LmZsYXRwaWNrci1kYXkuZmxhdHBpY2tyLWRpc2FibGVkLC5mbGF0cGlja3ItZGF5LmZsYXRwaWNrci1kaXNhYmxlZDpob3ZlciwuZmxhdHBpY2tyLWRheS5wcmV2TW9udGhEYXksLmZsYXRwaWNrci1kYXkubmV4dE1vbnRoRGF5LC5mbGF0cGlja3ItZGF5Lm5vdEFsbG93ZWQsLmZsYXRwaWNrci1kYXkubm90QWxsb3dlZC5wcmV2TW9udGhEYXksLmZsYXRwaWNrci1kYXkubm90QWxsb3dlZC5uZXh0TW9udGhEYXl7Y29sb3I6cmdiYSg1Nyw1Nyw1NywwLjMpO2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50O2N1cnNvcjpkZWZhdWx0fS5mbGF0cGlja3ItZGF5LmZsYXRwaWNrci1kaXNhYmxlZCwuZmxhdHBpY2tyLWRheS5mbGF0cGlja3ItZGlzYWJsZWQ6aG92ZXJ7Y3Vyc29yOm5vdC1hbGxvd2VkO2NvbG9yOnJnYmEoNTcsNTcsNTcsMC4xKX0uZmxhdHBpY2tyLWRheS53ZWVrLnNlbGVjdGVke2JvcmRlci1yYWRpdXM6MDstd2Via2l0LWJveC1zaGFkb3c6LTVweCAwIDAgIzU2OWZmNyw1cHggMCAwICM1NjlmZjc7Ym94LXNoYWRvdzotNXB4IDAgMCAjNTY5ZmY3LDVweCAwIDAgIzU2OWZmN30uZmxhdHBpY2tyLWRheS5oaWRkZW57dmlzaWJpbGl0eTpoaWRkZW59LnJhbmdlTW9kZSAuZmxhdHBpY2tyLWRheXttYXJnaW4tdG9wOjFweH0uZmxhdHBpY2tyLXdlZWt3cmFwcGVye2Zsb2F0OmxlZnR9LmZsYXRwaWNrci13ZWVrd3JhcHBlciAuZmxhdHBpY2tyLXdlZWtze3BhZGRpbmc6MCAxMnB4Oy13ZWJraXQtYm94LXNoYWRvdzoxcHggMCAwICNlNmU2ZTY7Ym94LXNoYWRvdzoxcHggMCAwICNlNmU2ZTZ9LmZsYXRwaWNrci13ZWVrd3JhcHBlciAuZmxhdHBpY2tyLXdlZWtkYXl7ZmxvYXQ6bm9uZTt3aWR0aDoxMDAlO2xpbmUtaGVpZ2h0OjI4cHh9LmZsYXRwaWNrci13ZWVrd3JhcHBlciBzcGFuLmZsYXRwaWNrci1kYXksLmZsYXRwaWNrci13ZWVrd3JhcHBlciBzcGFuLmZsYXRwaWNrci1kYXk6aG92ZXJ7ZGlzcGxheTpibG9jazt3aWR0aDoxMDAlO21heC13aWR0aDpub25lO2NvbG9yOnJnYmEoNTcsNTcsNTcsMC4zKTtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O2N1cnNvcjpkZWZhdWx0O2JvcmRlcjpub25lfS5mbGF0cGlja3ItaW5uZXJDb250YWluZXJ7ZGlzcGxheTpibG9jaztkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYm94LXNpemluZzpib3JkZXItYm94O2JveC1zaXppbmc6Ym9yZGVyLWJveDtvdmVyZmxvdzpoaWRkZW59LmZsYXRwaWNrci1yQ29udGFpbmVye2Rpc3BsYXk6aW5saW5lLWJsb2NrO3BhZGRpbmc6MDstd2Via2l0LWJveC1zaXppbmc6Ym9yZGVyLWJveDtib3gtc2l6aW5nOmJvcmRlci1ib3h9LmZsYXRwaWNrci10aW1le3RleHQtYWxpZ246Y2VudGVyO291dGxpbmU6MDtkaXNwbGF5OmJsb2NrO2hlaWdodDowO2xpbmUtaGVpZ2h0OjQwcHg7bWF4LWhlaWdodDo0MHB4Oy13ZWJraXQtYm94LXNpemluZzpib3JkZXItYm94O2JveC1zaXppbmc6Ym9yZGVyLWJveDtvdmVyZmxvdzpoaWRkZW47ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleH0uZmxhdHBpY2tyLXRpbWU6YWZ0ZXJ7Y29udGVudDoiIjtkaXNwbGF5OnRhYmxlO2NsZWFyOmJvdGh9LmZsYXRwaWNrci10aW1lIC5udW1JbnB1dFdyYXBwZXJ7LXdlYmtpdC1ib3gtZmxleDoxOy13ZWJraXQtZmxleDoxOy1tcy1mbGV4OjE7ZmxleDoxO3dpZHRoOjQwJTtoZWlnaHQ6NDBweDtmbG9hdDpsZWZ0fS5mbGF0cGlja3ItdGltZSAubnVtSW5wdXRXcmFwcGVyIHNwYW4uYXJyb3dVcDphZnRlcntib3JkZXItYm90dG9tLWNvbG9yOiMzOTM5Mzl9LmZsYXRwaWNrci10aW1lIC5udW1JbnB1dFdyYXBwZXIgc3Bhbi5hcnJvd0Rvd246YWZ0ZXJ7Ym9yZGVyLXRvcC1jb2xvcjojMzkzOTM5fS5mbGF0cGlja3ItdGltZS5oYXNTZWNvbmRzIC5udW1JbnB1dFdyYXBwZXJ7d2lkdGg6MjYlfS5mbGF0cGlja3ItdGltZS50aW1lMjRociAubnVtSW5wdXRXcmFwcGVye3dpZHRoOjQ5JX0uZmxhdHBpY2tyLXRpbWUgaW5wdXR7YmFja2dyb3VuZDp0cmFuc3BhcmVudDstd2Via2l0LWJveC1zaGFkb3c6bm9uZTtib3gtc2hhZG93Om5vbmU7Ym9yZGVyOjA7Ym9yZGVyLXJhZGl1czowO3RleHQtYWxpZ246Y2VudGVyO21hcmdpbjowO3BhZGRpbmc6MDtoZWlnaHQ6aW5oZXJpdDtsaW5lLWhlaWdodDppbmhlcml0O2NvbG9yOiMzOTM5Mzk7Zm9udC1zaXplOjAuODc1cmVtIDtwb3NpdGlvbjpyZWxhdGl2ZTstd2Via2l0LWJveC1zaXppbmc6Ym9yZGVyLWJveDtib3gtc2l6aW5nOmJvcmRlci1ib3g7LXdlYmtpdC1hcHBlYXJhbmNlOnRleHRmaWVsZDstbW96LWFwcGVhcmFuY2U6dGV4dGZpZWxkO2FwcGVhcmFuY2U6dGV4dGZpZWxkfS5mbGF0cGlja3ItdGltZSBpbnB1dC5mbGF0cGlja3ItaG91cntmb250LXdlaWdodDpib2xkfS5mbGF0cGlja3ItdGltZSBpbnB1dC5mbGF0cGlja3ItbWludXRlLC5mbGF0cGlja3ItdGltZSBpbnB1dC5mbGF0cGlja3Itc2Vjb25ke2ZvbnQtd2VpZ2h0OjQwMH0uZmxhdHBpY2tyLXRpbWUgaW5wdXQ6Zm9jdXN7b3V0bGluZTowO2JvcmRlcjowfS5mbGF0cGlja3ItdGltZSAuZmxhdHBpY2tyLXRpbWUtc2VwYXJhdG9yLC5mbGF0cGlja3ItdGltZSAuZmxhdHBpY2tyLWFtLXBte2hlaWdodDppbmhlcml0O2Zsb2F0OmxlZnQ7bGluZS1oZWlnaHQ6aW5oZXJpdDtjb2xvcjojMzkzOTM5O2ZvbnQtd2VpZ2h0OmJvbGQ7d2lkdGg6MiU7LXdlYmtpdC11c2VyLXNlbGVjdDpub25lOy1tb3otdXNlci1zZWxlY3Q6bm9uZTstbXMtdXNlci1zZWxlY3Q6bm9uZTt1c2VyLXNlbGVjdDpub25lOy13ZWJraXQtYWxpZ24tc2VsZjpjZW50ZXI7LW1zLWZsZXgtaXRlbS1hbGlnbjpjZW50ZXI7YWxpZ24tc2VsZjpjZW50ZXJ9LmZsYXRwaWNrci10aW1lIC5mbGF0cGlja3ItYW0tcG17b3V0bGluZTowO3dpZHRoOjE4JTtjdXJzb3I6cG9pbnRlcjt0ZXh0LWFsaWduOmNlbnRlcjtmb250LXdlaWdodDo0MDB9LmZsYXRwaWNrci10aW1lIGlucHV0OmhvdmVyLC5mbGF0cGlja3ItdGltZSAuZmxhdHBpY2tyLWFtLXBtOmhvdmVyLC5mbGF0cGlja3ItdGltZSBpbnB1dDpmb2N1cywuZmxhdHBpY2tyLXRpbWUgLmZsYXRwaWNrci1hbS1wbTpmb2N1c3tiYWNrZ3JvdW5kOiNlZWV9LmZsYXRwaWNrci1pbnB1dFtyZWFkb25seV17Y3Vyc29yOnBvaW50ZXJ9QC13ZWJraXQta2V5ZnJhbWVzIGZwRmFkZUluRG93bntmcm9te29wYWNpdHk6MDstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLC0yMHB4LDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLC0yMHB4LDApfXRve29wYWNpdHk6MTstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLDAsMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsMCwwKX19QGtleWZyYW1lcyBmcEZhZGVJbkRvd257ZnJvbXtvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwtMjBweCwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwtMjBweCwwKX10b3tvcGFjaXR5OjE7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwwLDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLDAsMCl9fQovKiogL2Nzcy9pbmxpbmUuZnIubmV3Y2Fycy5jc3MgKiovCiNob21lcGFnZS1jb250ZW50IC5jb250YWluZXIgeyBtYXgtd2lkdGg6bm9uZSFpbXBvcnRhbnQ7IHBhZGRpbmc6MCFpbXBvcnRhbnQ7IH0uaGVhZGVyLXNlY3Rpb24gI2RlYWxlcl9sb2dvIHsgbWF4LXdpZHRoOjM0MHB4OyBvYmplY3QtZml0OmNvbnRhaW47IH0gLmQyY2Zvcm0gbGFiZWwgeyBtYXJnaW4tdG9wOjFyZW07IH0gLmQyY2Zvcm0gdGV4dGFyZWEgeyB3aWR0aDozMDBweDsgfSAuZDJjZm9ybSAuc3VibWl0IHsgZGlzcGxheTpibG9jazsgbWFyZ2luLXRvcDoxcmVtOyB9PC9zdHlsZT4KPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KPC9zdHlsZT4KCQoJCTwhLS0gT086OjYwMDU3MTBkMjkzOTU4OWYwZGM3MGEzZjA2M2YzYTQ4IC0tPgoJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSLDoCB2ZW5kcmUiIGlkPSJ0ZXh0Rm9yU2FsZSI+CgkJPGlucHV0IHR5cGU9ImhpZGRlbiIgdmFsdWU9IkTDqXRhaWxzIiBpZD0idGV4dERldGFpbHMiPgoJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSJUb3VzIiBpZD0idGV4dEFsbCI+CgkJPGlucHV0IHR5cGU9ImhpZGRlbiIgdmFsdWU9IlByaXggUsOpZHVpdCIgaWQ9InRleHRSZWR1Y2VkIj4KCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iU8OpbGVjdGlvbm5leiB1bmUgbWFycXVlIiBpZD0idGV4dE1hbnVUaXRsZSI+CgkJPGlucHV0IHR5cGU9ImhpZGRlbiIgdmFsdWU9IlZvaXIgbm9zIG1vZMOobGVzIEZvcmQiIGlkPSJ0ZXh0QnJhbmRUaXRsZSI+CgkJPGlucHV0IHR5cGU9ImhpZGRlbiIgdmFsdWU9Ik1vZMOobGVzIEZvcmQgbmV1ZnMgMjAyNSwgMjAyNiAmYW1wOyAyMDI3IiBpZD0idGV4dE1haW5UaXRsZSI+CgkJPGlucHV0IHR5cGU9ImhpZGRlbiIgdmFsdWU9IkF1dG9zIG5ldXZlcyBGb3JkIDIwMjUsIDIwMjYgJmFtcDsgMjAyNyDDoCB7JE5FV0NJVFl9IiBpZD0idGV4dENhclRpdGxlIj4KCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iVlVTIG5ldWZzIEZvcmQgMjAyNSwgMjAyNiAmYW1wOyAyMDI3IMOgIHskTkVXQ0lUWX0iIGlkPSJ0ZXh0U1VWVGl0bGUiPgoJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSJDYW1pb25zIG5ldWZzIEZvcmQgMjAyNSwgMjAyNiAmYW1wOyAyMDI3IMOgIHskTkVXQ0lUWX0iIGlkPSJ0ZXh0VHJ1Y2tUaXRsZSI+CgkJPGlucHV0IHR5cGU9ImhpZGRlbiIgdmFsdWU9Ikh5YnJpZGVzIG5ldXZlcyBGb3JkIDIwMjUsIDIwMjYgJmFtcDsgMjAyNyDDoCB7JE5FV0NJVFl9IiBpZD0idGV4dEh5YnJpZFRpdGxlIj4KCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iw4lsZWN0cmlxdWUgbmV1dmVzIEZvcmQgMjAyNSwgMjAyNiAmYW1wOyAyMDI3IMOgIHskTkVXQ0lUWX0iIGlkPSJ0ZXh0RWxlY3RyaWNUaXRsZSI+CgkJPGlucHV0IHR5cGU9ImhpZGRlbiIgdmFsdWU9Im5vdXZlYXUiIGlkPSJ0ZXh0TmV3Ij4KCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iRm9yZCB7JENMQVNTTkFNRX0gMjAyNSwgMjAyNiAmYW1wOyAyMDI3IiBpZD0idGV4dENsYXNzVmlldyI+CgkJPGlucHV0IHR5cGU9ImhpZGRlbiIgdmFsdWU9IkFjY3VlaWwiIGlkPSJ0ZXh0SG9tZSI+CgkJPGlucHV0IHR5cGU9ImhpZGRlbiIgdmFsdWU9Ii8iIGlkPSJ1cmlIb21lIj4KCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iL25ldWZzL25vdXZlYXUuaHRtbCIgaWQ9InVyaU5ld0NhcnMiPgoJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSIvbmV1ZnMvIiBpZD0idGV4dE5ld0NhckZvbGRlciI+CgkJPGlucHV0IHR5cGU9ImhpZGRlbiIgdmFsdWU9Ik5vcyBtYXJxdWVzIiBpZD0idGV4dE1hbnVTZWxlY3QiPgoJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSJFbiBTdG9jayAvIERpc3BvbmlibGVzIiBpZD0iaW5TdG9ja0xhYmVsIj4KCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iL2ltYWdlcy8iIGlkPSJ0ZXh0QmFzZUltYWdlUGF0aCI+CgkJPGlucHV0IHR5cGU9ImhpZGRlbiIgdmFsdWU9Ii9wcm94eV9hdWIvIiBpZD0iYnJhbmRJbWFnZVBhdGgiPgoJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSJlMzhhMGQ5ZTA0YTdiYzg2YjllNmQ4ZWJlYzNlOTdkYXwxNTc5OTAxNDQ4IiBpZD0iZW1haWxVc2VkQ2FycyI+CgkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYnJhbmQiIGNsYXNzPSJicmFuZGVtYWlsIiB2YWx1ZT0iIj4KCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJtb2RlbCIgY2xhc3M9Im1vZGVsZW1haWwiIHZhbHVlPSIiPgoJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImJyYW5kRW1haWxPdmVycmlkZSIgaWQ9ImJyYW5kRW1haWxPdmVycmlkZSIgdmFsdWU9IiI+CgkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYnJhbmRFbWFpbEFkZk92ZXJyaWRlIiBpZD0iYnJhbmRFbWFpbEFkZk92ZXJyaWRlIiB2YWx1ZT0iIj4KCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJmb3JjZVRvRmlsbFBvcHVwX25ldyIgdmFsdWU9Im5vbmUiPgoJCTwhLS0gU1RBUlQgU09SVCBPUkRFUiAtLT4KCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiB2YWx1ZT0ibW9kZWwiIGlkPSJzb3J0QnkiPgoJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSJBc2MiIGlkPSJzb3J0RGlyIj4KCQk8IS0tIEVORCBTT1JUIE9SREVSIC0tPgoJCQkJCQk8c2NyaXB0PgoKCQkvL2dsb2JhbCBzdG9yZQoJCXZhciBzdG9yZSA9IG51bGw7CgoJCWNvbnN0IGluaXRTdG9yZSA9ICgpID0+IHsKCgkJCWlmKHR5cGVvZiBjcmVhdGVEYXRhU3RvcmUgIT09ICdmdW5jdGlvbicpewoJCQkJc2V0VGltZW91dChpbml0U3RvcmUsIDUwKTsKCQkJCXJldHVybjsKCQkJfQoKCQkJc3RvcmUgPSBjcmVhdGVEYXRhU3RvcmUoeyJjb250ZXh0Ijp7ImxhbmciOiJGUkVOQ0giLCJzaG9ydExhbmciOiJmciIsImlzTW9iaWxlIjpmYWxzZSwiY2F0ZWdvcnkiOiJhbGwiLCJzZWN0aW9uIjoiTkVXIiwibG9jYWxlIjoiZnJfQ0EiLCJkYXRlZm9ybWF0IjoiJWUgJUIifSwiZGVhbGVySW5mbyI6eyJhZGRyZXNzIjoiOTAxIERvbGxhcmQiLCJjaXR5IjoiR2F0aW5lYXUiLCJwcm92aW5jZSI6IlF1XHUwMGU5YmVjIiwicmVnaW9uIjoiT3V0YW91YWlzIiwicG9zdGFsIjoiSjhMIDNUNCIsIm5hbWUiOiJDYXJsZSBGb3JkIiwiZW1haWwiOiJodWd1ZXNjYXJsZUBjYXJsZWZvcmQuY29tIiwiZGVhbGVySUQiOiIxNjc2IiwiZGVhbGVyR3JvdXAiOmZhbHNlLCJmYXgiOiIiLCJwaG9uZSI6IjgxOS05ODYtMzAwMCIsImxhdGl0dWRlIjoiNDUuNTc5MTAwMDAwMCIsImxvbmdpdHVkZSI6Ii03NS40MDc3ODAwMDAwIiwicHJvdmluY2VfY29kZSI6IlFDIiwiZGV0YWlsX3ByaXgiOiIiLCJkZXRhaWxfcHJpeF9hbiI6IiIsImRldGFpbF9wcml4X3VzZWQiOm51bGwsImRldGFpbF9wcml4X3VzZWRfYW4iOm51bGwsIm9lbURlYWxlckNvZGUiOiJCMjUwMyIsInByaWNlX2Rpc2NsYWltZXJfcHJlZmVyZW5jZSI6IjAiLCJwcmljZV9kaXNjbGFpbWVyX3ByZWZlcmVuY2VfdXNlZCI6IjAiLCJnbUJBQyI6IiIsInBsYWNlSWQiOiJDaElKazdfN1E5VV96a3dSYnZub0xsQkhscUkifSwiaXNWTSI6ZmFsc2UsImZpZWxkcyI6eyJTSE9XUk9PTV9JTUFHRV9TT1VSQ0VfVFlQRSI6ImNocm9tZSIsIk5FV19JTlZfSU1BR0VfU09VUkNFX1RZUEUiOiJjaHJvbWUiLCJBRE1JTl9TSE9XX0VGRkVDVElWRV9SQVRFX1NFTEVDVCI6InByaW1hcnkiLCJBRE1JTl9TSE9XX0VGRkVDVElWRV9SQVRFIjoiZmFsc2UifSwiaTE4biI6eyJXRUJfU0lURV9HRU5FUkFUT1JfUEFHRV9ORVdJTlYiOiJcL25ldWZzXC9pbnZlbnRhaXJlXC9yZWNoZXJjaGUuaHRtbCIsIlBBWU1FTlRTIjoiUGFpZW1lbnRzIiwiREVGQVVMVF9QQVlNRU5UX0NBU0giOiJDb21wdGFudCIsIkxBQkVMX0JFRk9SRV9UQVhFUyI6IkF2YW50IHRheGVzIiwiTEFCRUxfU0FWRV9CVUlMRF9USVRMRSI6IkVucmVnaXN0cmVyIHZvdHJlIGNvbmZpZ3VyYXRpb24hIiwiV0VCU0lURV9PRU1EUl9MT0FEX0JVSUxEX1RPT0xUSVAiOiJSZXN0YXVyZXogdW5lIGNvbmZpZ3VyYXRpb24gcHJcdTAwZTljXHUwMGU5ZGVtbWVudCBlbnJlZ2lzdHJcdTAwZTllIGVuIHNhaXNpc3NhbnQgdm90cmUgYWRyZXNzZSBlLW1haWwgb3Ugdm90cmUgbnVtXHUwMGU5cm8gZGUgdFx1MDBlOWxcdTAwZTlwaG9uZS4iLCJXRUJTSVRFX09FTURSX0xPQURfQlVJTERfRU1BSUxfUEhPTkUiOiJTYWlzaXNzZXogdm90cmUgYWRyZXNzZSBlLW1haWwgZXRcL291IHZvdHJlIG51bVx1MDBlOXJvIGRlIHRcdTAwZTlsXHUwMGU5cGhvbmUgcG91ciBjaGFyZ2VyIHVuZSBjb25maWd1cmF0aW9uIGVucmVnaXN0clx1MDBlOWUuIiwiV0VCU0lURV9PRU1EUl9MT0FEX0JVSUxEX0VNQUlMX1BIT05FX0VSUk9SIjoiVmV1aWxsZXogc2Fpc2lyIHZvdHJlIGFkcmVzc2UgZS1tYWlsIG91IHZvdHJlIG51bVx1MDBlOXJvIGRlIHRcdTAwZTlsXHUwMGU5cGhvbmUuIiwiV0VCU0lURV9PRU1EUl9MT0FEX0JVSUxEX0VSUk9SIjoiTGVzIGRvbm5cdTAwZTllcyBkZSBjb25maWd1cmF0aW9uIG5lIHNvbnQgcGFzIGRpc3BvbmlibGVzIHBvdXIgY2V0IGVucmVnaXN0cmVtZW50LiIsIldFQlNJVEVfT0VNRFJfTE9BRF9CVUlMRF9SRURJUkVDVElORyI6IkNvbXBpbGF0aW9uIGNoYXJnXHUwMGU5ZSEgUmVkaXJlY3Rpb24gZW4gY291cnMuLi4iLCJXRUJTSVRFX09FTURSX0xPQURfQlVJTERfTElTVF9FUlJPUiI6IkF1Y3VuZSBjb25maWd1cmF0aW9uIG4mIzM5O2EgXHUwMGU5dFx1MDBlOSB0cm91dlx1MDBlOWUgcG91ciBjZXR0ZSBhZHJlc3NlIGUtbWFpbFwvbnVtXHUwMGU5cm8gZGUgdFx1MDBlOWxcdTAwZTlwaG9uZS4iLCJXRUJTSVRFX09FTURSX0xPQURfQlVJTERfSU5WQUxJRF9UT0tFTiI6IkxlIGpldG9uIGVzdCBpbnZhbGlkZSBvdSBhIGV4cGlyXHUwMGU5LiBWZXVpbGxleiByXHUwMGU5ZXNzYXllci4iLCJXRUJTSVRFX09FTURSX0xPQURfQlVJTERfTElTVCI6IkNoYXJnZW1lbnQgZGVzIGNvbmZpZ3VyYXRpb25zIHNhdXZlZ2FyZFx1MDBlOXMuLi4iLCJXRUJTSVRFX09FTURSX0xPQURfQlVJTERfTElTVF9TRUxFQ1QiOiJTXHUwMGU5bGVjdGlvbm5leiB1bmUgY29uZmlndXJhdGlvbiBcdTAwZTAgY2hhcmdlcjoiLCJXRUJTSVRFX09FTURSX0xPQURfQlVJTERfTElTVF9GQUlMRUQiOiJJbXBvc3NpYmxlIGRlIGNoYXJnZXIgbGVzIGNvbmZpZ3VyYXRpb25zLiIsIldFQlNJVEVfT0VNRFJfTUZBX1NFTkRfQ09ERSI6IkVudm9pIGR1IGNvZGUgZGUgdlx1MDBlOXJpZmljYXRpb24uLi4iLCJXRUJTSVRFX09FTURSX01GQV9TVEFSVF9FUlJPUiI6IkltcG9zc2libGUgZGUgZFx1MDBlOW1hcnJlciBsYSB2XHUwMGU5cmlmaWNhdGlvbi4iLCJXRUJTSVRFX09FTURSX01GQV9FTlRFUl9DT0RFIjoiU2Fpc2lzc2V6IGxlIGNvZGUgXHUwMGUwIDYgY2hpZmZyZXMgZW52b3lcdTAwZTkgXHUwMGUwIHZvdHJlIGFkcmVzc2UgZS1tYWlsIG91IFx1MDBlMCB2b3RyZSBudW1cdTAwZTlybyBkZSB0XHUwMGU5bFx1MDBlOXBob25lLiIsIldFQlNJVEVfT0VNRFJfTUZBX0VOVEVSX0NPREVfRVJST1IiOiJWZXVpbGxleiBzYWlzaXIgbGUgY29kZSBkZSB2XHUwMGU5cmlmaWNhdGlvbi4iLCJXRUJTSVRFX09FTURSX01GQV9WRVJJRllfQ09ERSI6IlZcdTAwZTlyaWZpY2F0aW9uIGR1IGNvZGUuLi4iLCJXRUJTSVRFX09FTURSX01GQV9FWFBJUkVEX0NPREUiOiJDb2RlIGludmFsaWRlIG91IGV4cGlyXHUwMGU5LiBWZXVpbGxleiByXHUwMGU5ZXNzYXllci4iLCJXRUJTSVRFX09FTURSX01GQV9WRVJJRllfRkFJTEVEIjoiTGEgdlx1MDBlOXJpZmljYXRpb24gYSBcdTAwZTljaG91XHUwMGU5LiBWZXVpbGxleiByXHUwMGU5ZXNzYXllci4iLCJXRUJTSVRFX09FTURSX1NBVkVfQlVJTERfVVBEQVRJTkciOiJNaXNlIFx1MDBlMCBqb3VyIGRlIGxhIGNvbmZpZ3VhdGlvbi4uLiIsIldFQlNJVEVfT0VNRFJfU0FWRV9CVUlMRF9VUERBVEVfU1VDQ0VTUyI6IkxhIGNvbmZpZ3VhdGlvbiBhIFx1MDBlOXRcdTAwZTkgbWlzZSBcdTAwZTAgam91ciBhdmVjIHN1Y2NcdTAwZThzLiIsIldFQlNJVEVfT0VNRFJfU0FWRV9CVUlMRF9VUERBVEVfRVJST1IiOiJJbXBvc3NpYmxlIGRlIG1ldHRyZSBcdTAwZTAgam91ciBsYSBjb25maWd1YXRpb24uIiwiV0VCU0lURV9PRU1EUl9TQVZFX0JVSUxEX1NBVklORyI6IlNhdXZlZ2FyZGUgZGUgbGEgY29uZmlndWF0aW9uLi4uIiwiV0VCU0lURV9PRU1EUl9TQVZFX0JVSUxEX1NBVkVfU1VDQ0VTUyI6IkNvbmZpZ3VhdGlvbiBlbnJlZ2lzdHJcdTAwZTkgISBWb3VzIHBvdXJyZXogbGUgY2hhcmdlciB1bHRcdTAwZTlyaWV1cmVtZW50IGVuIHV0aWxpc2FudCB2b3RyZSBhZHJlc3NlIGUtbWFpbCBvdSB2b3RyZSBudW1cdTAwZTlybyBkZSB0XHUwMGU5bFx1MDBlOXBob25lLiIsIldFQlNJVEVfT0VNRFJfU0FWRV9CVUlMRF9TQVZFX0VSUk9SIjoiSW1wb3NzaWJsZSBkJiMzOTtlbnJlZ2lzdHJlciBsYSBjb25maWd1cmF0aW9uLiIsIldFQlNJVEVfT0VNRFJfQlROX0xPQUQiOiJDaGFyZ2VyIiwiV0VCU0lURV9PRU1EUl9CVE5fVkVSSUZZIjoiVlx1MDBlOXJpZmllciIsIldFQlNJVEVfT0VNRFJfQlROX1JFU0VORF9DT0RFIjoiUmVudm95ZXIgbGUgY29kZSIsIldFQlNJVEVfT0VNRFJfTUZBX1ZFUklGSUNBVElPTl9DT0RFIjoiTGUgY29kZSBkZSB2XHUwMGU5cmlmaWNhdGlvbiIsIldFQlNJVEVfT0VNRFJfU0FWRV9CVUlMRF9NT0RBTF9USVRMRSI6IkNoYXJnZXIgdW5lIGNvbmZpZ3VyYXRpb24gZW5yZWdpc3RyXHUwMGU5ZSIsIkVGRkVDVElWRV9SQVRFX0xPTkdfTEFCRUwiOiJ7JFJBVEV9IHRhdXggZWZmZWN0aWYiLCJFRkZFQ1RJVkVfUkFURV9MQUJFTCI6IlRhdXggeyRSQVRFfSJ9LCJzaG93T2VtSW1hZ2VzIjpmYWxzZX0pOwoJCX07CgoJCWluaXRTdG9yZSgpOwoKCTwvc2NyaXB0PgoJCQkJCQk8c3ZnIGFyaWEtaGlkZGVuPSJ0cnVlIiBzdHlsZT0icG9zaXRpb246IGFic29sdXRlOyB3aWR0aDogMDsgaGVpZ2h0OiAwOyBvdmVyZmxvdzogaGlkZGVuOyIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIj4KCQkJCQoJCQk8L3N2Zz4KCQkJCgkJCTxoZWFkZXIgY2xhc3M9Im1haW5EaXYtd3JhcHBlciI+CgkJCQkKCQkJCTxkaXYgY2xhc3M9IndyYXBwZXIgTWFpbkJveExheWVyIiBpZD0ibWFpbkRpdiIgaGlkZGVuPSIxIj4KCQkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iMSIgaWQ9Im11bHRpLWxhbmd1YWdlIj4KPGlucHV0IHR5cGU9ImhpZGRlbiIgdmFsdWU9IjEiIGlkPSJuZXdfdHJhbnNsYXRlZF90aXRsZXMiPgo8aW5wdXQgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iRlJFTkNIIiBpZD0iYWN0aXZlc2l0ZWxhbmd1YWdlIj4JCQkJPGRpdiBjbGFzcz0ibGFuZ3VhZ2VCYXIgZmxleC1ib3ggZmxleC1lbmQgYWxpZ24tY2VudGVyICIgaWQ9Imxhbmd1YWdlQ2hhbmdlckRpdiI+CgkJCQkJCTxkaXYgaWQ9InNvY2lhbF9tZWRpYV9pY29uc19kaXYiIGNsYXNzPSJmbGV4LWJveCAtLWZzNiI+PGEgaHJlZj0iaHR0cHM6Ly93d3cuZmFjZWJvb2suY29tLzEyMjgxODg4NDQ0MTgwNi8iIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vZm9sbG93IiBjbGFzcz0ic29jaWFsLWxpbmsgLXByMCIgYXJpYS1sYWJlbD0iRmFjZWJvb2sgcydvdXZyZSBkYW5zIHVuIG5vdXZlbCBvbmdsZXQiIHRpdGxlPSJGYWNlYm9vayIgZGF0YS10b29sdGlwPSJGYWNlYm9vayI+CiAgICA8c3ZnIGNsYXNzPSJjdXN0b21tZWRpYS1jb2xvcnBpY2tlciIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Ym94PSIwIDAgNTEyIDUxMiI+PCEtLSBGb250IEF3ZXNvbWUgRnJlZSA1LjE1LjEgYnkgQGZvbnRhd2Vzb21lIC0gaHR0cHM6Ly9mb250YXdlc29tZS5jb20gTGljZW5zZSAtIGh0dHBzOi8vZm9udGF3ZXNvbWUuY29tL2xpY2Vuc2UvZnJlZSAoSWNvbnM6IENDIEJZIDQuMCwgRm9udHM6IFNJTCBPRkwgMS4xLCBDb2RlOiBNSVQgTGljZW5zZSkgLS0+PHBhdGggZD0iTTUwNCAyNTZDNTA0IDExOSAzOTMgOCAyNTYgOFM4IDExOSA4IDI1NmMwIDEyMy43OCA5MC42OSAyMjYuMzggMjA5LjI1IDI0NVYzMjcuNjloLTYzVjI1Nmg2M3YtNTQuNjRjMC02Mi4xNSAzNy05Ni40OCA5My42Ny05Ni40OCAyNy4xNCAwIDU1LjUyIDQuODQgNTUuNTIgNC44NHY2MWgtMzEuMjhjLTMwLjggMC00MC40MSAxOS4xMi00MC40MSAzOC43M1YyNTZoNjguNzhsLTExIDcxLjY5aC01Ny43OFY1MDFDNDEzLjMxIDQ4Mi4zOCA1MDQgMzc5Ljc4IDUwNCAyNTZ6Ij48L3BhdGg+PC9zdmc+CiAgICA8IS0tIDxzcGFuIGNsYXNzPSJmYWIgZmEtZmFjZWJvb2siIGFyaWEtaGlkZGVuPSJ0cnVlIj48L3NwYW4+IC0tPgo8L2E+PGEgaHJlZj0iaHR0cHM6Ly93d3cuaW5zdGFncmFtLmNvbS9jYXJsZS5mb3JkLyIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9mb2xsb3ciIGNsYXNzPSJzb2NpYWwtbGluayAtcHIwIiBhcmlhLWxhYmVsPSJJbnN0YWdyYW0gcydvdXZyZSBkYW5zIHVuIG5vdXZlbCBvbmdsZXQiIHRpdGxlPSJJbnN0YWdyYW0iIGRhdGEtdG9vbHRpcD0iSW5zdGFncmFtIj4KICAgIDxzdmcgY2xhc3M9ImN1c3RvbW1lZGlhLWNvbG9ycGlja2VyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdib3g9IjAgMCA0NDggNTEyIj48IS0tIEZvbnQgQXdlc29tZSBGcmVlIDUuMTUuMSBieSBAZm9udGF3ZXNvbWUgLSBodHRwczovL2ZvbnRhd2Vzb21lLmNvbSBMaWNlbnNlIC0gaHR0cHM6Ly9mb250YXdlc29tZS5jb20vbGljZW5zZS9mcmVlIChJY29uczogQ0MgQlkgNC4wLCBGb250czogU0lMIE9GTCAxLjEsIENvZGU6IE1JVCBMaWNlbnNlKSAtLT48cGF0aCBkPSJNMjI0LjEgMTQxYy02My42IDAtMTE0LjkgNTEuMy0xMTQuOSAxMTQuOXM1MS4zIDExNC45IDExNC45IDExNC45UzMzOSAzMTkuNSAzMzkgMjU1LjkgMjg3LjcgMTQxIDIyNC4xIDE0MXptMCAxODkuNmMtNDEuMSAwLTc0LjctMzMuNS03NC43LTc0LjdzMzMuNS03NC43IDc0LjctNzQuNyA3NC43IDMzLjUgNzQuNyA3NC43LTMzLjYgNzQuNy03NC43IDc0Ljd6bTE0Ni40LTE5NC4zYzAgMTQuOS0xMiAyNi44LTI2LjggMjYuOC0xNC45IDAtMjYuOC0xMi0yNi44LTI2LjhzMTItMjYuOCAyNi44LTI2LjggMjYuOCAxMiAyNi44IDI2Ljh6bTc2LjEgMjcuMmMtMS43LTM1LjktOS45LTY3LjctMzYuMi05My45LTI2LjItMjYuMi01OC0zNC40LTkzLjktMzYuMi0zNy0yLjEtMTQ3LjktMi4xLTE4NC45IDAtMzUuOCAxLjctNjcuNiA5LjktOTMuOSAzNi4xcy0zNC40IDU4LTM2LjIgOTMuOWMtMi4xIDM3LTIuMSAxNDcuOSAwIDE4NC45IDEuNyAzNS45IDkuOSA2Ny43IDM2LjIgOTMuOXM1OCAzNC40IDkzLjkgMzYuMmMzNyAyLjEgMTQ3LjkgMi4xIDE4NC45IDAgMzUuOS0xLjcgNjcuNy05LjkgOTMuOS0zNi4yIDI2LjItMjYuMiAzNC40LTU4IDM2LjItOTMuOSAyLjEtMzcgMi4xLTE0Ny44IDAtMTg0Ljh6TTM5OC44IDM4OGMtNy44IDE5LjYtMjIuOSAzNC43LTQyLjYgNDIuNi0yOS41IDExLjctOTkuNSA5LTEzMi4xIDlzLTEwMi43IDIuNi0xMzIuMS05Yy0xOS42LTcuOC0zNC43LTIyLjktNDIuNi00Mi42LTExLjctMjkuNS05LTk5LjUtOS0xMzIuMXMtMi42LTEwMi43IDktMTMyLjFjNy44LTE5LjYgMjIuOS0zNC43IDQyLjYtNDIuNiAyOS41LTExLjcgOTkuNS05IDEzMi4xLTlzMTAyLjctMi42IDEzMi4xIDljMTkuNiA3LjggMzQuNyAyMi45IDQyLjYgNDIuNiAxMS43IDI5LjUgOSA5OS41IDkgMTMyLjFzMi43IDEwMi43LTkgMTMyLjF6Ij48L3BhdGg+PC9zdmc+CiAgICA8IS0tIDxzcGFuIGNsYXNzPSJmYWIgZmEtaW5zdGFncmFtIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PC9zcGFuPiAtLT4KPC9hPjxhIGhyZWY9Imh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL0BDYXJsZUZvcmRJbmNHYXRpbmVhdS92aWRlb3MiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vZm9sbG93IiBjbGFzcz0ic29jaWFsLWxpbmsgLXByMCIgYXJpYS1sYWJlbD0iWW91dHViZSBzJ291dnJlIGRhbnMgdW4gbm91dmVsIG9uZ2xldCIgdGl0bGU9IllvdXR1YmUiIGRhdGEtdG9vbHRpcD0iWW91dHViZSI+CiAgICA8c3ZnIGNsYXNzPSJvZ2NvbG9yLXlvdXR1YmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld2JveD0iMCAwIDU3NiA1MTIiPjwhLS0gRm9udCBBd2Vzb21lIEZyZWUgNS4xNS4xIGJ5IEBmb250YXdlc29tZSAtIGh0dHBzOi8vZm9udGF3ZXNvbWUuY29tIExpY2Vuc2UgLSBodHRwczovL2ZvbnRhd2Vzb21lLmNvbS9saWNlbnNlL2ZyZWUgKEljb25zOiBDQyBCWSA0LjAsIEZvbnRzOiBTSUwgT0ZMIDEuMSwgQ29kZTogTUlUIExpY2Vuc2UpIC0tPjxwYXRoIGQ9Ik01NDkuNjU1IDEyNC4wODNjLTYuMjgxLTIzLjY1LTI0Ljc4Ny00Mi4yNzYtNDguMjg0LTQ4LjU5N0M0NTguNzgxIDY0IDI4OCA2NCAyODggNjRTMTE3LjIyIDY0IDc0LjYyOSA3NS40ODZjLTIzLjQ5NyA2LjMyMi00Mi4wMDMgMjQuOTQ3LTQ4LjI4NCA0OC41OTctMTEuNDEyIDQyLjg2Ny0xMS40MTIgMTMyLjMwNS0xMS40MTIgMTMyLjMwNXMwIDg5LjQzOCAxMS40MTIgMTMyLjMwNWM2LjI4MSAyMy42NSAyNC43ODcgNDEuNSA0OC4yODQgNDcuODIxQzExNy4yMiA0NDggMjg4IDQ0OCAyODggNDQ4czE3MC43OCAwIDIxMy4zNzEtMTEuNDg2YzIzLjQ5Ny02LjMyMSA0Mi4wMDMtMjQuMTcxIDQ4LjI4NC00Ny44MjEgMTEuNDEyLTQyLjg2NyAxMS40MTItMTMyLjMwNSAxMS40MTItMTMyLjMwNXMwLTg5LjQzOC0xMS40MTItMTMyLjMwNXptLTMxNy41MSAyMTMuNTA4VjE3NS4xODVsMTQyLjczOSA4MS4yMDUtMTQyLjczOSA4MS4yMDF6Ij48L3BhdGg+PC9zdmc+CiAgICA8IS0tIDxzcGFuIGNsYXNzPSJmYWIgZmEteW91dHViZSIgYXJpYS1oaWRkZW49InRydWUiPjwvc3Bhbj4gLS0+CjwvYT48L2Rpdj4KCTxkaXYgaWQ9ImdSYXRpbmciIGNsYXNzPSJnUmF0aW5nLWljb24iIG9uY2xpY2s9IndpbmRvdy5vcGVuKCdodHRwczovL3NlYXJjaC5nb29nbGUuY29tL2xvY2FsL3dyaXRlcmV2aWV3P3BsYWNlaWQ9Q2hJSms3XzdROVVfemt3UmJ2bm9MbEJIbHFJJykiIGRhdGEtdG9vbHRpcD0iU2NvcmUgbW95ZW4gZGUgNC44IMOpdG9pbGVzIHN1ciBsZXMgcmV2dWVzIEdvb2dsZSEiIHN0eWxlPSJkaXNwbGF5OiA7Ij4KCTxzcGFuIGNsYXNzPSJmYWIgZmEtZ29vZ2xlIj48L3NwYW4+Cgk8c3BhbiBjbGFzcz0icmF0aW5nIC1ib2xkIC1mczE3Ij40Ljg8L3NwYW4+Cgk8c3BhbiBjbGFzcz0iZmFzIGZhLXN0YXIiPjwvc3Bhbj4KPC9kaXY+CgkKCTxkaXY+PHVsIGNsYXNzPSJpZE5hdjEiPjxsaSBjbGFzcz0idG9wIiBzdHlsZT0iei1pbmRleDogOTk7Ij4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJkZXNrdG9wX2xhbmdfYnV0dG9uIGFjdGl2ZSIgdGl0bGU9IkZyYW7Dp2FpcyI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJkZXNrdG9wX2xhbmdfYnV0dG9uX3RleHQiPkZSPC9zcGFuPgogICAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSI\/cGF0aD0vZW5nLyIgY2xhc3M9ImRlc2t0b3BfbGFuZ19idXR0b24iIHRpdGxlPSJBbmdsYWlzIj4KICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRlc2t0b3BfbGFuZ19idXR0b25fdGV4dCI+RU48L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgPC9hPjwvbGk+PC91bD48L2Rpdj4KCQoJPGRpdiBjbGFzcz0iZDJjLWZhdnMtbmF2LXdyYXBwZXIiPjxzcGFuIGNsYXNzPSJmYS1sYXllcnMiPjxpIGNsYXNzPSJmYSBmYS1oZWFydCI+PC9pPjxpIGNsYXNzPSJmYXIgZmEtaGVhcnQiPjxzcGFuIGNsYXNzPSJmYXYtbmF2LWNvdW50Ij48L3NwYW4+PC9pPjwvc3Bhbj48ZGl2IGNsYXNzPSJkMmMtZmF2cy1uYXYtZHJvcGRvd24td3JhcHBlciI+PGRpdiBjbGFzcz0iZDJjLWZhdnMtbmF2LWRyb3Bkb3duLWlubmVyQm94Ij48L2Rpdj48L2Rpdj48L2Rpdj4KCQkJCTwvZGl2PgoJCQk8IS0tIEhPTUVQQUdFX0VORyA9PiAvZW5nLyB8fCBIT01FUEFHRSBGUkUgPT4gLyAtLT4KCQkJCgkJCTxkaXYgY2xhc3M9InYtY2FyZCB0b3BfYmcgaGVhZGVyLWluZm8iIHN0eWxlPSJiYWNrZ3JvdW5kOm5vbmU7Ij4KCQkJCQkJCTxkaXYgY2xhc3M9ImhlYWRlci1zZWN0aW9uIj4KCTxkaXYgY2xhc3M9ImhlYWRlci1pbWFnZS13cmFwcGVyIj4KCQk8YSBocmVmPSI\/cGF0aD0vIiBzdHlsZT0idGV4dC1kZWNvcmF0aW9uOiBub25lOyIgYXJpYS1sYWJlbD0iQ2FybGUgRm9yZCBMb2dvIiB0aXRsZT0iQ2FybGUgRm9yZCI+CgkJCTxpbWcgYWx0PSJDYXJsZSBGb3JkIiBjbGFzcz0ib3B0YW5vbi1jYXRlZ29yeS1DMDAwMSBsaXZlbG9hZCBwaG90byBpbWFnZS1wYWRkaW5nIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtb3QtaWdub3JlIGRhdGEtc2NvZGVyZWY9IjY0ODE1My1QIiBpZD0iZGVhbGVyX2xvZ28iIHNyYz0iaHR0cHM6Ly9jYXJsZWZvcmQuY29tLy9pbWFnZXMvTG9nby9DQVJGX0xvZ29fRVZfRlItdjQud2VicCIgc3R5bGU9IndpZHRoOjQ3OHB4O2hlaWdodDoxNTBweDsiIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj4KCQk8L2E+Cgk8L2Rpdj4KPC9kaXY+CgkJCQoJCQk8ZGl2IGNsYXNzPSJoZWFkZXItc2VjdGlvbiBsb2dvLW1pZGRsZSIgc3R5bGU9IndpZHRoOjMzOHB4OyI+PGEgY2xhc3M9Im90aGVyTG9nb01lbnVDb250YWluZXIiIGhyZWY9Ij9wYXRoPS9kZW1hbmRlcy9lbXBsb2lzLWF1dG9tb2JpbGUuaHRtbCI+PGltZyBjbGFzcz0ib3RoZXJMb2dvTWVudUltYWdlIGxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmxlZm9yZC5jb20vL2ltYWdlcy9PdGhlcl9Mb2dvL2xvZ29zLWF3YXJkcy5wbmciIGFsdD0ibG9nb3MgYXdhcmRzIiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+PC9hPjwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJoZWFkZXItc2VjdGlvbiBhZGRyZXNzLW1pZGRsZSI+Cgk8ZGl2PgoJCQoJCTxkaXYgY2xhc3M9InBob25lIHBob25lX3JpZ2h0ICI+CiAgICA8ZGl2IGNsYXNzPSJmbiBvcmciIHN0eWxlPSJmb250LXNpemU6IDIycHg7Y29sb3I6ICMwMDAwMDA7IiByb2xlPSJoZWFkaW5nIiBhcmlhLWxldmVsPSIzIj5DYXJsZSBGb3JkPC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJhZHIiIHN0eWxlPSJmb250LXNpemU6IDE0cHg7Y29sb3I6ICMwMDAwMDA7ICIgaXRlbXByb3A9ImFkZHJlc3MiIGl0ZW1zY29wZSBpdGVtdHlwZT0iaHR0cHM6Ly9zY2hlbWEub3JnL1Bvc3RhbEFkZHJlc3MiPgogICAgICAgIDxzcGFuPjkwMSBEb2xsYXJkLCBHYXRpbmVhdSAocHLDqHMgZCdPdHRhd2EpLCBRQyBKOEwgM1Q0PC9zcGFuPgogICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwaG9uZV90ZXh0IGljb24tdGV4dCIgc3R5bGU9ImZvbnQtc2l6ZTogMTRweDtjb2xvcjogIzAwMDAwMDsiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTYW5zIGZyYWlzIDoKICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9ImRpc3BsYXk6aW5saW5lLWJsb2NrOyI+CiAgICAgICAgICAgICAgICA8c3BhbiBzdHlsZT0iIiBjbGFzcz0iZmEgZmEtcGhvbmUiIGFyaWEtaGlkZGVuPSJ0cnVlIj48L3NwYW4+ICA8c3BhbiBpZD0iaGVhZGVyLXBob25lLXRyaWdnZXIiIGl0ZW1wcm9wPSJ0ZWxlcGhvbmUiIGNsYXNzPSJleHRlbmRlZFBob25lVHJpZ2dlciAiIHN0eWxlPSJjdXJzb3I6IHBvaW50ZXI7Ij48YSBocmVmPSI\/cGF0aD10ZWw6MSUyMDg1NSUyMDg2MC01ODYxIiBjbGFzcz0icGhvbmUtbGluayIgZGF0YS1kZXBhcnRtZW50PSJTYWxlcyI+MSA4NTUgODYwLTU4NjE8L2E+IDxzcGFuIHN0eWxlPSJwb2ludGVyLWV2ZW50czpub25lOyI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxNnB4OyIgY2xhc3M9ImZhIGZhLWNhcmV0LWRvd24iIGFyaWEtaGlkZGVuPSJ0cnVlIj48L3NwYW4+PC9zcGFuPjwvc3Bhbj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImV4dGVuZGVkUGhvbmUiIHN0eWxlPSJkaXNwbGF5OiBub25lOyI+Cgk8ZGl2PjxsYWJlbD5WZW50ZXM6IDxzcGFuIGNsYXNzPSJ0ZWwgLW1sMTAiPjxhIGhyZWY9Ij9wYXRoPXRlbDoxJTIwODU1JTIwODYwLTU4NjEiIGNsYXNzPSJwaG9uZS1saW5rIiBkYXRhLWRlcGFydG1lbnQ9IlNhbGVzIj4xIDg1NSA4NjAtNTg2MTwvYT4gwqAqPC9zcGFuPjwvbGFiZWw+PC9kaXY+PGRpdj48bGFiZWw+U2VydmljZTogPHNwYW4gY2xhc3M9InRlbCAtbWwxMCI+PGEgaHJlZj0iP3BhdGg9dGVsOjgxOSUyMDk4Ni0zMDAwIiBjbGFzcz0icGhvbmUtbGluayIgZGF0YS1kZXBhcnRtZW50PSJzZXJ2aWNlIj44MTkgOTg2LTMwMDA8L2E+IDxicj48L3NwYW4+PC9sYWJlbD48L2Rpdj4KCTxkaXYgY2xhc3M9InBob25lTm90ZSI+KiBTYW5zIGZyYWlzPC9kaXY+Cgk8IS0tIE9POjpkNzViNzY4Mjg2ODQ4MDFlMjY2ZGJjYmIzYzgxMjA1NSAtLT4KPC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgCiAgICAKPC9kaXY+CgkJCgk8L2Rpdj4KPC9kaXY+CgkJCQoJCQkKCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImNsciI+PC9kaXY+CgkJCTxkaXYgY2xhc3M9InNrZWxldG9uIHNrZWxldG9uLWRlc2t0b3Agc2tlbGV0b24tY29uZC0yIGhlYWRlci1tZW51IiBzdHlsZT0id2lkdGg6Y2FsYygxMDB2dyAtICgxMDB2dyAtIDEwMCUpKTttaW4taGVpZ2h0OjQ4cHg7Ij4KCQkJCTxkaXYgY2xhc3M9InVwX21lbnUgIEZSRU5DSCBpbWdfbWVudSBtZW51NSBmdWxsX3dpZHRoIiBkYXRhLXNjb2RlcmVmPSI4OTg5NDE1LUEiPgoJCQkJCTxkaXYgY2xhc3M9IlMxMDBQZXJjZW50V2lkdGgiPgoJCQkJCQk8ZGl2IGlkPSJmdWxsV2lkdGhNZW51QmFyIj48L2Rpdj4KCQkJCQkJPHVsIGNsYXNzPSJuYXYgIG5vU2VwZXJhdG9yIj4KCQkJCQkJCTxkaXYgaWQ9Im1lbnUtc3BlY3MtdGVtcGxhdGUiIGNsYXNzPSJtZW51LXRlY2gtc3BlY3MiPiA8ZGl2IGNsYXNzPSJtZW51LXNwZWNzLXRpdGxlIj48c3BhbiBjbGFzcz0iYXJyb3cgYXJyb3ctbGFyZ2UgYXJyb3ctcmlnaHQgbXItMTUiPjwvc3Bhbj48L2Rpdj4gPHVsIGNsYXNzPSJtZW51LXNwZWNzLWxpc3QiPiA8bGk+IDxhIGhyZWY9Ij9wYXRoPSMiIGNsYXNzPSJtZW51LXNwZWMtbGluayI+IDxzcGFuIGNsYXNzPSJhcnJvdyBhcnJvdy1yaWdodCBtci0xNSI+PC9zcGFuPlNww6ljLiB0ZWNobmlxdWVzIDwvYT4gPC9saT4gPGxpPiA8YSBocmVmPSI\/cGF0aD0jIiBjbGFzcz0ibWVudS1zcGVjLWJucCI+IDxzcGFuIGNsYXNzPSJhcnJvdyBhcnJvdy1yaWdodCBtci0xNSI+PC9zcGFuPkNvbmZpZ3VyZXogdm90cmUgJE1PREVMIDwvYT4gPC9saT4gPGxpIGNsYXNzPSJkaXZpZGVyIj4gPGxpPiA8c3Ryb25nIGNsYXNzPSJtZW51LXByaWNlLXRleHQiPiMjTUVOVU1PREVMIyMgIyNNRU5VVFJJTSMjICMjTUVOVVlFQVIjIyDDoCBwYXJ0aXIgZGU8L3N0cm9uZz4gPGJyPjxzcGFuIGNsYXNzPSJtZW51LXNwZWMtcHJpY2UiPiQ5OSw5OTk8L3NwYW4+IDwvbGk+IDxsaT4gPHN0cm9uZz5QdWlzc2FuY2U8L3N0cm9uZz4gPGJyPjxzcGFuIGNsYXNzPSJtZW51LXNwZWMtaHAiPjk5OSBocCBAIDk5OTkgcnBtPC9zcGFuPiA8L2xpPiA8bGk+IDxzdHJvbmc+Q3lsaW5kcsOpZTwvc3Ryb25nPiA8YnI+PHNwYW4gY2xhc3M9Im1lbnUtc3BlYy1wb3dlciI+OS45IEwvOTk8L3NwYW4+IDwvbGk+IDxsaT4gPHN0cm9uZz5Db25zb21tYXRpb24gZCdlc3NlbmNlPC9zdHJvbmc+IDxicj5WaWxsZTogPHNwYW4gY2xhc3M9Im1lbnUtc3BlYy1mdWVsLWNpdHkiPjk5IG1wZzwvc3Bhbj4gPGJyPkF1dG9yb3V0ZTogPHNwYW4gY2xhc3M9Im1lbnUtc3BlYy1mdWVsLWhpZ2h3YXkiPjk5IG1wZzwvc3Bhbj4gPC9saT4gPGxpPiA8c3Ryb25nPk1vdHJpY2l0w6k8L3N0cm9uZz4gPGJyPjxzcGFuIGNsYXNzPSJtZW51LXNwZWMtZHJpdmV0cmFpbiI+OTk5IGtwaDwvc3Bhbj4gPC9saT4gPC91bD4KPC9kaXY+PGxpIGRhdGEtaWQ9IkNPTlRBQ1QiIGlkPSJNYWluTWVudV9DT05UQUNUIiBjbGFzcz0idG9wIGxhc3RNZW51IGhhc0l0ZW1zIGlzQm9sZCI+PGEgY2xhc3M9InRvcF9saW5rIGlzQm9sZCIgaHJlZj0iP3BhdGg9L2NvbnRhY3Rlem5vdXMuaHRtbCI+w4AgcHJvcG9zPC9hPjx1bCBjbGFzcz0ic3ViIGNvbnRhY3R1cy1mb3JtIj4gPGxpIGRhdGEtaWQ9IjZhMmViMWE0YzkxOTYiIGlkPSJNYWluTWVudV82YTJlYjFhNGM5MTk2IiBjbGFzcz0iY29udGFjdC1jb250YWluZXIiPiA8ZGl2PiA8aDUgY2xhc3M9InRpdGxlIj5Ob3RyZSBlbXBsYWNlbWVudDwvaDU+IDxhIGhyZWY9Ij9wYXRoPSNmb290ZXJXcmFwcGVyIiBpZD0ibWVudS1tYXAtbGluayIgdGl0bGU9Ikdvb2dsZSBNYXBzIiBhcmlhLWxhYmVsPSJHb29nbGUgTWFwcyIgZGF0YS1wbGFjZS1pZD0icGxhY2VfaWQ6Q2hJSms3XzdROVVfemt3UmJ2bm9MbEJIbHFJIiBkYXRhLXpvb209IjE0IiBkYXRhLWxhbmd1YWdlPSJmci1DQSI+PCEtLSAtLT48L2E+IDwvZGl2PiA8ZGl2IGNsYXNzPSJleHByZXNzLWZvcm0iPiA8Zm9ybSBpZD0icXVpY2tFbWFpbEZvcm0iIGNsYXNzPSJkMmNmb3JtIGQyY2Zvcm0tLXRoaW4gY29sLW1kLTMgbWVudSBoaWRlT25QcmVMb2FkIiBhY3Rpb249ImphdmFzY3JpcHQ6dm9pZCgwKTsiPiA8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iZXhwcmVzc1NlbGVjdFJlcXVpcmVkIiB2YWx1ZT0iMSI+IDxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJleHByZXNzUGhvbmVSZXF1aXJlZCIgdmFsdWU9IjEiPiA8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0idGV4dFNhdmVNYWlsSUQiIG5hbWU9InRleHRTYXZlTWFpbElEIiB2YWx1ZT0ibWVudUNvbnRhY3RVcyI+IDxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJ0ZXh0UXVpY2tFbWFpbEluZm8iIG5hbWU9InRleHRRdWlja0VtYWlsSW5mbyIgdmFsdWU9IkluZm9ybWF0aW9uIHN1ciB7JExJTktNQUtFfSB7JExJTktNT0RFTH0geyRMSU5LWUVBUn0iPiA8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iZXhwcmVzc2NhcnRyaW0iIHZhbHVlPSIiPiA8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iZXhwcmVzc2NhcnZpbiIgdmFsdWU9IiI+IDxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJleHByZXNzY2FycHJpY2UiIHZhbHVlPSIiPiA8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iZXhwcmVzc2NhcmlkIiB2YWx1ZT0iIj4gPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9ImV4cHJlc3NjYXJtYWtlIiB2YWx1ZT0iIj4gPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9ImV4cHJlc3NjYXJtb2RlbCIgdmFsdWU9IiI+IDxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJleHByZXNzY2FyeWVhciIgdmFsdWU9IiI+IDxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJleHByZXNzc3RvY2tudW1iZXIiIHZhbHVlPSIiPiA8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iZXhwcmVzc1NlbmRUb0VtYWlsIiB2YWx1ZT0iZTM4YTBkOWUwNGE3YmM4NmI5ZTZkOGViZWMzZTk3ZGF8MTU3OTkwMTQ0OCI+IDxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJleHByZXNzU2VuZFRvRW1haWxORVciIHZhbHVlPSIiPiA8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iZXhwcmVzc1NlbmRUb0VtYWlsQURGIiB2YWx1ZT0iMTMxZDE5YThiMTY1NzRkMGM5NWY1YmI3MTczYmRjZWN8MTU3OTkwMTQ0OCI+IDxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJleHByZXNzU2VuZFRvRW1haWxBREZORVciIHZhbHVlPSIiPiA8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iZXhwcmVzc1NlbmRUb0VtYWlsQURGU0VSVklDRSIgdmFsdWU9IiI+IDxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJleHByZXNzSW5EZW1vIiB2YWx1ZT0ieyRFWFBSRVNTSU5ERU1PfSI+IDxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJwcmludEZsYWciIHZhbHVlPSIwIj4gPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9ImV4cHJlc3NEZXBhcnRtZW50RW1haWxfbmV3IiB2YWx1ZT0iZTM4YTBkOWUwNGE3YmM4NmI5ZTZkOGViZWMzZTk3ZGF8MTU3OTkwMTQ0OCI+PGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9ImV4cHJlc3NEZXBhcnRtZW50RW1haWxfdXNlZCIgdmFsdWU9ImUzOGEwZDllMDRhN2JjODZiOWU2ZDhlYmVjM2U5N2RhfDE1Nzk5MDE0NDgiPjxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJleHByZXNzRGVwYXJ0bWVudEVtYWlsX3NlcnZpY2UiIHZhbHVlPSIxMDdmNTFlZmEzOTVkMzQ1YTgwYWMyMGViZjUxNTNiZXwxNTc5OTAxNDQ4Ij48aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iZXhwcmVzc0RlcGFydG1lbnRFbWFpbF9wYXJ0cyIgdmFsdWU9Ijk0YzJmMWNhYjNhMjNmMzE0N2YyNGM1ODQ3Njc1MTJkfDE1Nzk5MDE0NDgiPjxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJleHByZXNzRGVwYXJ0bWVudEVtYWlsX2ZpbmFuY2UiIHZhbHVlPSJlMzhhMGQ5ZTA0YTdiYzg2YjllNmQ4ZWJlYzNlOTdkYXwxNTc5OTAxNDQ4Ij48aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iZXhwcmVzc0RlcGFydG1lbnRFbWFpbEFkZl9uZXciIHZhbHVlPSIxMzFkMTlhOGIxNjU3NGQwYzk1ZjViYjcxNzNiZGNlY3wxNTc5OTAxNDQ4Ij48aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iZXhwcmVzc0RlcGFydG1lbnRFbWFpbEFkZl91c2VkIiB2YWx1ZT0iMTMxZDE5YThiMTY1NzRkMGM5NWY1YmI3MTczYmRjZWN8MTU3OTkwMTQ0OCI+PGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9ImV4cHJlc3NEZXBhcnRtZW50RW1haWxBZGZfZmluYW5jZSIgdmFsdWU9IjEzMWQxOWE4YjE2NTc0ZDBjOTVmNWJiNzE3M2JkY2VjfDE1Nzk5MDE0NDgiPiA8IS0tIFBMQUNFIDEtQSAtLT4gPGRpdj4gPGRpdiBjbGFzcz0iX2JveDI4ODBfbWlkIC1wbDggLXByOCI+IDxkaXYgY2xhc3M9IndpZGdldF9leHByZXNzX21haWxfcGhvbmVfdGl0bGUiIGRhdGEtZGVwYXJ0bWVudD0iU2FsZXMiPjEgODU1IDg2MC01ODYxPC9kaXY+IDxkaXYgY2xhc3M9IlJlY2hlcmNoZTIyICI+RGVtYW5kZSBFeHByZXNzPC9kaXY+IDxzdGFjay1sYz4gPGJveC1sYz4gPGxhYmVsIGZvcj0icXVpY2tFbWFpbE5hbWUiIGNsYXNzPSJzci1vbmx5Ij5Ob208L2xhYmVsPiA8aW5wdXQgdHlwZT0idGV4dCIgaWQ9InF1aWNrRW1haWxOYW1lIiBuYW1lPSJuYW1lIiBwbGFjZWhvbGRlcj0iTm9tIj4gPC9ib3gtbGM+IDxib3gtbGM+IDxsYWJlbCBmb3I9InF1aWNrRW1haWxUZWwiIGNsYXNzPSJzci1vbmx5Ij5Uw6lsw6lwaG9uZTwvbGFiZWw+IDxpbnB1dCBjbGFzcz0icGhvbmUgcmVxdWlyZWQiIHR5cGU9InRlbCIgaWQ9InF1aWNrRW1haWxUZWwiIG5hbWU9InRlbCIgcGxhY2Vob2xkZXI9IlTDqWzDqXBob25lIj4gPC9ib3gtbGM+IDxib3gtbGM+IDxsYWJlbCBmb3I9InF1aWNrRW1haWxBZGRyIiBjbGFzcz0ic3Itb25seSI+Q291cnJpZWw8L2xhYmVsPiA8aW5wdXQgdHlwZT0iZW1haWwiIGlkPSJxdWlja0VtYWlsQWRkciIgbmFtZT0iZW1haWwiIHBsYWNlaG9sZGVyPSJDb3VycmllbCI+IDwvYm94LWxjPiA8Ym94LWxjPiA8bGFiZWwgZm9yPSJxdWlja0VtYWlsRGVwYXJ0bWVudCIgY2xhc3M9InNyLW9ubHkiPlPDqWxlY3Rpb25uZXI8L2xhYmVsPiA8c2VsZWN0IGlkPSJxdWlja0VtYWlsRGVwYXJ0bWVudCI+PG9wdGlvbiB2YWx1ZT0iIiBzZWxlY3RlZD5Tw6lsZWN0aW9ubmVyPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0ibmV3Ij5WZW50ZXMgLSBOZXVmPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0idXNlZCI+VmVudGVzIC0gT2NjYXNpb248L29wdGlvbj48b3B0aW9uIHZhbHVlPSJzZXJ2aWNlIj5TZXJ2aWNlPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iZmluYW5jZSI+RmluYW5jZW1lbnQ8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJwYXJ0cyI+UGnDqGNlcyAmYW1wOyBBY2Nlc3NvaXJlczwvb3B0aW9uPjwvc2VsZWN0PiA8L2JveC1sYz4gPGJveC1sYz4gPGxhYmVsIGZvcj0icXVpY2tFbWFpbE1zZyIgY2xhc3M9InNyLW9ubHkiPk1lc3NhZ2U8L2xhYmVsPiA8dGV4dGFyZWEgaWQ9InF1aWNrRW1haWxNc2ciIHJvd3M9IjMiIHBsYWNlaG9sZGVyPSJNZXNzYWdlIj48L3RleHRhcmVhPiA8L2JveC1sYz4gPC9zdGFjay1sYz4gPHN0YWNrLWxjPiA8Ym94LWxjPiA8ZGl2IHN0eWxlPSJkaXNwbGF5OiBub25lOyIgaWQ9Ik1pc3NpbmdWYWxpZGF0aW9uTXNnIiBjbGFzcz0iZXJyb3JNc2ciPiA8cD5DZXJ0YWlucyBjaGFtcHMgb2JsaWdhdG9pcmVzIG4nb250IHBhcyDDqXTDqSByZW1wbGlzPC9wPiA8L2Rpdj4gPC9ib3gtbGM+IDxib3gtbGM+IDxkaXYgY2xhc3M9InJlY2FwdGNoYS1kaXNjbGFpbWVyIj5DZSBzaXRlIGVzdCBwcm90w6lnw6kgcGFyIHJlQ0FQVENIQS48L2Rpdj4gPGJ1dHRvbiBjbGFzcz0ic2VuZFF1aWNrRW1haWwgLXJpZ2h0IGJ0bi1kZWZhdWx0ICI+RW52b3llcjwvYnV0dG9uPiA8L2JveC1sYz4gPC9zdGFjay1sYz4gPC9kaXY+CjwvZGl2PiA8ZGl2IGlkPSJtZW51Q29udGFjdFVzRGVmIiBzdHlsZT0iZGlzcGxheTpub25lIj4gPGRpdiBpZD0iZW1haWxTdWJqZWN0RGVmX21lbnVDb250YWN0VXMiIHN0eWxlPSJkaXNwbGF5Om5vbmUiPkxlYWQgOiBEZW1hbmRlIGRlIGNvbnRhY3Q8L2Rpdj4gPGRpdiBpZD0iZW1haWxCb2R5RGVmX21lbnVDb250YWN0VXMiIHN0eWxlPSJkaXNwbGF5Om5vbmUiPkJvbmpvdXIsPGJyPjxicj5VbiBjbGllbnQgcG90ZW50aWVsIGF5YW50IHZpc2l0w6kgdm90cmUgc2l0ZSB3ZWIsIGEgcmVtcGxpIGxlIGZvcm11bGFpcmUgZGUgY29udGFjdCA6PGJyPjxicj48dT5SZW5zZWlnbmVtZW50cyBzdXIgbGUgdmlzaXRldXI8L3U+IDo8YnI+Tm9tIDogPHN0cm9uZz57JE5BTUV9PC9zdHJvbmc+PGJyPkNvdXJyaWVsIDogPHN0cm9uZz48YSBocmVmPSI\/cGF0aD1tYWlsdG86JTdCJTI0RU1BSUwlN0QiPnskRU1BSUx9PC9hPjwvc3Ryb25nPiB7JFNQQU1NRVJfV0FSTklOR308YnI+VMOpbMOpcGhvbmUgOiA8c3Ryb25nPjxhIGhyZWY9Ij9wYXRoPXRlbDolN0IlMjRFTUFJTFBIT05FJTdEIj57JEVNQUlMUEhPTkV9PC9hPjwvc3Ryb25nPiB7JFBIT05FX1ZBTElEQVRJT05fQVRURU1QVFN9PGJyPlZpbGxlIDogPHN0cm9uZz57JEVNQUlMQ0lUWX08L3N0cm9uZz48YnI+PGJyPkRlcm5pZXIgdsOpaGljdWxlIHZ1ZTogPHN0cm9uZz57JExBU1RWRUhJQ0xFVklFV0VEfTwvc3Ryb25nPjxicj5EZXJuaWVyIHbDqWhpY3VsZSBjb25maWd1csOpOiA8c3Ryb25nPnskRU1BSUxCVUlMREFORFBSSUNFfTwvc3Ryb25nPjxicj48YnI+RMOpcGFydGVtZW50OiA8c3Ryb25nPnskREVQQVJUTUVOVDJ9PC9zdHJvbmc+PGJyPjxicj48dT5NZXNzYWdlIGR1IHZpc2l0ZXVyPC91PiA6PGJyPjxzdHJvbmc+eyRNRVNTQUdFfTwvc3Ryb25nPjxicj48YnI+PGRpdiBzdHlsZT0iIyNTRU9CTE9DS0RJU1BMQVkjIyI+U291cmNlIE3DqWRpYTogPHN0cm9uZz57JFVUTURFVEFJTFN9PC9zdHJvbmc+PGJyPk5hdmlnYXRldXI6IDxzdHJvbmc+eyRVU0VSQUdFTlR9IC0gPC9zdHJvbmc+PGJyPkhpc3RvcmlxdWUgZGUgbmF2aWdhdGlvbjogPHN0cm9uZz48YSBocmVmPSI\/cGF0aD0lN0IlMjRVVUxJTkslN0QiIHJlbD0ibm9mb2xsb3cgdWdjIHNwb25zb3JlZCBub2luZGV4IiBzdHlsZT0iY29sb3I6YmxhY2s7IHRleHQtZGVjb3JhdGlvbjogbm9uZTsiPkNsaXF1ZXogaWNpPC9hPjwvc3Ryb25nPjxicj48L2Rpdj5Db25zZW50ZW1lbnQ6wqA8c3Ryb25nPnskQ09OU0VOVF9ERVRBSUxTfTwvc3Ryb25nPnskUFVSQ0hBU0VfSU5URU5UfTwvZGl2PiA8L2Rpdj4gPC9mb3JtPiA8L2Rpdj4gPGRpdiBjbGFzcz0iYWRkcmVzcyI+IDxkaXYgY2xhc3M9Im1lbnUtYWRkcmVzcyI+IDxoNSBjbGFzcz0idGl0bGUiPkNvb3Jkb25uw6llczwvaDU+IDxkaXYgY2xhc3M9Im1lbnUtYWRkcmVzcy1kZXNjIj4gPHNwYW4gY2xhc3M9ImZhIGZhLW1hcC1tYXJrZXIiIGFyaWEtaGlkZGVuPSJ0cnVlIj48L3NwYW4+IDxkaXYgY2xhc3M9Im1lbnUtYWRkcmVzcy13cmFwcGVyIj4gQ2FybGUgRm9yZCA8YnI+IDkwMSBEb2xsYXJkIDxicj4gR2F0aW5lYXUsIFFDIDxicj4gSjhMIDNUNCA8YnI+IDwvZGl2PiA8ZGl2IGNsYXNzPSJtZW51LXBob25lcyI+IDxzdGFjay1sYyBjbGFzcz0icGhvbmUtd3JhcHBlciI+PGEgaHJlZj0iP3BhdGg9dGVsOjElMjA4NTUlMjA4NjAtNTg2MSIgY2xhc3M9ImZsZXgtYmV0d2VlbiIgZGF0YS1kZXBhcnRtZW50PSJWZW50ZXMiPiA8c3BhbiBjbGFzcz0iZmlyc3QiPjxzcGFuIGNsYXNzPSJmYSBmYS1waG9uZSIgYXJpYS1oaWRkZW49InRydWUiPjwvc3Bhbj5WZW50ZXM6PC9zcGFuPiA8c3Bhbj4xIDg1NSA4NjAtNTg2McKgKjwvc3Bhbj4KPC9hPjxhIGhyZWY9Ij9wYXRoPXRlbDo4MTklMjA5ODYtMzAwMCIgY2xhc3M9ImZsZXgtYmV0d2VlbiIgZGF0YS1kZXBhcnRtZW50PSJTZXJ2aWNlIj4gPHNwYW4gY2xhc3M9ImZpcnN0Ij48c3BhbiBjbGFzcz0iZmEgZmEtcGhvbmUiIGFyaWEtaGlkZGVuPSJ0cnVlIj48L3NwYW4+U2VydmljZTo8L3NwYW4+IDxzcGFuPjgxOSA5ODYtMzAwMDxicj48L3NwYW4+CjwvYT48L3N0YWNrLWxjPiA8L2Rpdj4gPC9kaXY+IDxkaXYgY2xhc3M9Ii1mczEwIC1yaWdodCIgc3R5bGU9Im1hcmdpbi1yaWdodDogMTBweDsiPiogU2FucyBmcmFpczwvZGl2PiA8L2Rpdj4gPHVsIGNsYXNzPSJzbGltLXN1Ym1lbnUgLW10MTUiPjxsaSBkYXRhLWlkPSIyODQ4ZGUzMS1iNTA3LTZlZWMtOWRlNS1mIiBpZD0iTWFpbk1lbnVfNmEyZWIxYTRjODJkMCI+PGEgaHJlZj0iP3BhdGg9L3Byb21vdGlvbnMuaHRtbCI+Tm9zIHByb21vdGlvbnM8L2E+PC9saT4KPGxpIGRhdGEtaWQ9IkpPQk9GRkVSIiBpZD0iTWFpbk1lbnVfNmEyZWIxYTRjODJlMSI+PGEgaHJlZj0iP3BhdGg9L2RlbWFuZGVzL2VtcGxvaXMtYXV0b21vYmlsZS5odG1sIiBkYXRhLW1lbnUtdHJhbnNsYXRlPSJKT0JPRkZFUiI+Q2FycmnDqHJlczwvYT48L2xpPgo8bGkgZGF0YS1pZD0iQ09OVEFDVFVTIiBpZD0iTWFpbk1lbnVfNmEyZWIxYTRjODJlNiI+PGEgaHJlZj0iP3BhdGg9L2NvbnRhY3Rlem5vdXMuaHRtbCIgZGF0YS1tZW51LXRyYW5zbGF0ZT0iQ09OVEFDVFVTIj5QbHVzIGRlIGTDqXRhaWxzPC9hPjwvbGk+CjxsaSBkYXRhLWlkPSIyZmM1MWYzLWMyNzgtODc0MS1lOTNjLWQ0IiBpZD0iTWFpbk1lbnVfNmEyZWIxYTRjODJlYSI+PGEgaHJlZj0iP3BhdGg9L25vdXZlbGxlcy5odG1sIj5Ob3V2ZWxsZXM8L2E+PC9saT4KPGxpIGRhdGEtaWQ9IjJkNzJmZGEyLTYzOWYtYzlmYy0zOTNhLTUiIGlkPSJNYWluTWVudV82YTJlYjFhNGM4MmVkIj48YSBocmVmPSI\/cGF0aD0vZXF1aXBlLmh0bWwiIGRhdGEtbWVudS10cmFuc2xhdGU9IjJkNzJmZGEyLTYzOWYtYzlmYy0zOTNhLTUiPk5vdHJlIMOpcXVpcGU8L2E+PC9saT4KPC91bD4KPC9kaXY+IDwvbGk+PC91bD4KPC9saT4KPGxpIGRhdGEtaWQ9IkdQX250ZXpuamRtb3RmbXp0bmkiIGlkPSJNYWluTWVudV9HUF9udGV6bmpkbW90Zm16dG5pIiBjbGFzcz0idG9wIGhhc0l0ZW1zIGlzQm9sZCI+PGEgY2xhc3M9InRvcF9saW5rIGlzQm9sZCIgaHJlZj0iP3BhdGg9L2NvbW1hbmRlci1kZXMtcGklQzMlQThjZXMuaHRtbCIgZGF0YS1tZW51LXRyYW5zbGF0ZT0iR1BfbnRlem5qZG1vdGZtenRuaSI+UGnDqGNlczwvYT48dWwgY2xhc3M9InN1YiI+CjxsaSBkYXRhLWlkPSIyOTczYzNmYS1lNmFhLTZiM2YtNDg4Zi1lIiBpZD0iTWFpbk1lbnVfNmEyZWIxYTRjOTE4MyIgY2xhc3M9ImZpcnN0SXRlbSI+PGEgaHJlZj0iP3BhdGg9L3BpZWNlcy1mb3JkLmh0bWwiIGRhdGEtbWVudS10cmFuc2xhdGU9IjI5NzNjM2ZhLWU2YWEtNmIzZi00ODhmLWUiPlBpw6hjZXMgRm9yZDwvYT48L2xpPgo8bGkgZGF0YS1pZD0iYmVjYmI4MzItYjJmOS0xZjQxLWZiOWUtYiIgaWQ9Ik1haW5NZW51XzZhMmViMWE0YzkxODYiPjxhIGhyZWY9Ij9wYXRoPS9kZW1hbmRlcy9jb21tYW5kZS1waWVjZXMtYWNjZXNzb2lyZXMtYXV0b21vYmlsZXMuaHRtbCIgZGF0YS1tZW51LXRyYW5zbGF0ZT0iYmVjYmI4MzItYjJmOS0xZjQxLWZiOWUtYiI+Q29tbWFuZGV6IHZvcyBwacOoY2VzPC9hPjwvbGk+CjxsaSBkYXRhLWlkPSIyNmE0MjgwZC01NTM4LTZhN2MtOWNjZS0xIiBpZD0iTWFpbk1lbnVfNmEyZWIxYTRjOTE4OSI+PGEgaHJlZj0iP3BhdGg9L2RlbWFuZGVzL2NvbW1hbmRlLWRlLXBuZXVzLmh0bWwiPkNvbW1hbmRleiB2b3MgcG5ldXM8L2E+PC9saT4KPGxpIGRhdGEtaWQ9IjEzMDcyMGVhLWQ5ZWUtOGM2Yy0zOWEyLWYiIGlkPSJNYWluTWVudV82YTJlYjFhNGM5MThjIiBjbGFzcz0ibGFzdEl0ZW0iPjxhIGhyZWY9Ij9wYXRoPS9hY2Nlc3NvaXJlcy1mb3JkLWZyLmh0bWwiPkFjY2Vzc29pcmVzIEZvcmQ8L2E+PC9saT4KPC91bD4KPC9saT4KPGxpIGRhdGEtaWQ9IlNFUlZJQ0UiIGlkPSJNYWluTWVudV9TRVJWSUNFIiBjbGFzcz0idG9wIGhhc0l0ZW1zIGlzQm9sZCI+PGEgY2xhc3M9InRvcF9saW5rIGlzQm9sZCIgaHJlZj0iP3BhdGg9L3NlcnZpY2VzLWZvcmQuaHRtbCI+U2VydmljZTwvYT48dWwgY2xhc3M9InN1YiBzZXJ2aWNlLWZvcm0iPiA8bGkgZGF0YS1pZD0iNmEyZWIxYTRjOTE3YyIgaWQ9Ik1haW5NZW51XzZhMmViMWE0YzkxN2MiPiA8ZGl2IGNsYXNzPSJtZW51LXNlcnZpY2Utd3JhcHBlciI+IDxkaXYgY2xhc3M9InNlcnZpY2UtbGVmdCI+IDxoNSBjbGFzcz0ic2VydmljZS1mb3JtLXRpdGxlIj5QcmVuZXogcmVuZGV6LXZvdXMgYXUgc2VydmljZSE8L2g1PiA8Zm9ybSBhY3Rpb249IiIgY2xhc3M9ImQyY2Zvcm0gZDJjZm9ybS0tdGhpbiBzaG9ydC1zZXJ2aWNlLWZvcm0iIGRhdGEtZm9ybT0ibWVudVNlcnZpY2UiPiA8c3RhY2stbGM+IDxib3gtbGM+IDxsYWJlbCBmb3I9InNlcnZpY2VfX25hbWVfNmEyZWIxYTRjODc2OCIgY2xhc3M9InNyLW9ubHkiPk5vbTwvbGFiZWw+IDxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0ic2VydmljZV9fbmFtZV82YTJlYjFhNGM4NzY4IiBuYW1lPSJuYW1lIiBjbGFzcz0icmVxdWlyZWQgc3NmLW5hbWUiIHBsYWNlaG9sZGVyPSJOb20iPiA8L2JveC1sYz4gPGJveC1sYz4gPGxhYmVsIGZvcj0ic2VydmljZV9fZW1haWxfNmEyZWIxYTRjODc2OCIgY2xhc3M9InNyLW9ubHkiPkNvdXJyaWVsPC9sYWJlbD4gPGlucHV0IHR5cGU9InRleHQiIGlkPSJzZXJ2aWNlX19lbWFpbF82YTJlYjFhNGM4NzY4IiBjbGFzcz0icmVxdWlyZWQgZW1haWwgc3NmLWVtYWlsIiBwbGFjZWhvbGRlcj0iQ291cnJpZWwiPiA8L2JveC1sYz4gPGJveC1sYz4gPGxhYmVsIGZvcj0ic2VydmljZV9fcGhvbmVfNmEyZWIxYTRjODc2OCIgY2xhc3M9InNyLW9ubHkiPlTDqWzDqXBob25lPC9sYWJlbD4gPGlucHV0IHR5cGU9InRleHQiIGlkPSJzZXJ2aWNlX19waG9uZV82YTJlYjFhNGM4NzY4IiBuYW1lPSJwaG9uZSIgY2xhc3M9InJlcXVpcmVkIHJlcXVpcmVkLXBob25lIHNzZi1waG9uZSIgcGxhY2Vob2xkZXI9IlTDqWzDqXBob25lIj4gPC9ib3gtbGM+IDxib3gtbGMgY2xhc3M9ImlucHV0LWljb24tcmlnaHQiPiA8bGFiZWwgZm9yPSJzc2YtZGF0ZV82YTJlYjFhNGM4NzY4IiBjbGFzcz0ic3Itb25seSI+RGF0ZSBldCBoZXVyZSBzb3VoYWl0w6llczwvbGFiZWw+IDxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0ic3NmLWRhdGVfNmEyZWIxYTRjODc2OCIgbmFtZT0iZGF0ZTEiIGNsYXNzPSJyZXF1aXJlZCBzc2YtZGF0ZSBjYWxlbmRhciIgcGxhY2Vob2xkZXI9IkRhdGUgZXQgaGV1cmUgc291aGFpdMOpZXMiPiA8c3BhbiBjbGFzcz0iaW5wdXQtaWNvbiBmYSBmYS1jYWxlbmRhciI+PC9zcGFuPiA8L2JveC1sYz4gPGJveC1sYz4gPGxhYmVsIGZvcj0ic2VydmljZV9fd2FpdGluZ29uc2l0ZV82YTJlYjFhNGM4NzY4IiBjbGFzcz0ic3Itb25seSI+UmVzdGVyIHN1ciBwbGFjZSBkdXJhbnQgbGUgcmVuZGV6LXZvdXM8L2xhYmVsPiA8c2VsZWN0IG5hbWU9IndhaXRpbmdvbnNpdGUiIGlkPSJzZXJ2aWNlX193YWl0aW5nb25zaXRlXzZhMmViMWE0Yzg3NjgiPiA8b3B0aW9uIHZhbHVlPSIiPlJlc3RlciBzdXIgcGxhY2UgZHVyYW50IGxlIHJlbmRlei12b3VzPC9vcHRpb24+IDxvcHRpb24gdmFsdWU9Ik91aSI+T3VpPC9vcHRpb24+IDxvcHRpb24gdmFsdWU9Ik5vbiI+Tm9uPC9vcHRpb24+IDwvc2VsZWN0PiA8L2JveC1sYz4gPGJveC1sYz4gPGxhYmVsIGZvcj0ic2VydmljZV9fbW15XzZhMmViMWE0Yzg3NjgiIGNsYXNzPSJzci1vbmx5Ij5NYXJxdWUsIG1vZMOobGUgZXQgYW5uw6llPC9sYWJlbD4gPGlucHV0IHR5cGU9InRleHQiIGlkPSJzZXJ2aWNlX19tbXlfNmEyZWIxYTRjODc2OCIgY2xhc3M9InJlcXVpcmVkIHNzZi12ZWhpY2xlIiBwbGFjZWhvbGRlcj0iTWFycXVlLCBtb2TDqGxlIGV0IGFubsOpZSI+IDwvYm94LWxjPiA8Ym94LWxjPiA8bGFiZWwgZm9yPSJzZXJ2aWNlX192aW5fNmEyZWIxYTRjODc2OCIgY2xhc3M9InNyLW9ubHkiPiMgZGUgc8OpcmllIGR1IHbDqWhpY3VsZTwvbGFiZWw+IDxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0ic2VydmljZV9fdmluXzZhMmViMWE0Yzg3NjgiIGNsYXNzPSJ2aW4gc3NmLXZpbiIgbWF4bGVuZ3RoPSIxNyIgcGxhY2Vob2xkZXI9IiMgZGUgc8OpcmllIGR1IHbDqWhpY3VsZSI+IDwvYm94LWxjPiA8Ym94LWxjPiA8bGFiZWwgZm9yPSJzZXJ2aWNlX19jb21tZW50XzZhMmViMWE0Yzg3NjgiIGNsYXNzPSJzci1vbmx5Ij4gVHJhdmF1eCDDoCBlZmZlY3R1ZXIgPC9sYWJlbD4gPHRleHRhcmVhIHR5cGU9InRleHQiIGlkPSJzZXJ2aWNlX19jb21tZW50XzZhMmViMWE0Yzg3NjgiIGNsYXNzPSJyZXF1aXJlZCBzc2YtY29tbWVudCIgcm93cz0iMyIgcGxhY2Vob2xkZXI9IlRyYXZhdXggw6AgZWZmZWN0dWVyIj48L3RleHRhcmVhPiA8L2JveC1sYz4KPC9zdGFjay1sYz4gPGRpdiBjbGFzcz0icmVjYXB0Y2hhLWRpc2NsYWltZXIiPkNlIHNpdGUgZXN0IHByb3TDqWfDqSBwYXIgcmVDQVBUQ0hBLjwvZGl2PiA8ZGl2IGNsYXNzPSJzc2Ytc3VibWl0Ij4gPGJ1dHRvbiB0eXBlPSJzdWJtaXQiIGNsYXNzPSJidG4tZGVmYXVsdCAiPkPDqWR1bGV6IG1vbiByZW5kZXotdm91cyE8L2J1dHRvbj4gPC9kaXY+IDxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSIxMDdmNTFlZmEzOTVkMzQ1YTgwYWMyMGViZjUxNTNiZXwxNTc5OTAxNDQ4IiBjbGFzcz0idGV4dFNlbmRUb0VtYWlsIj4gPGlucHV0IHR5cGU9ImhpZGRlbiIgY2xhc3M9InRleHRNT05USF8xIiB2YWx1ZT0iSmFudmllciI+PGlucHV0IHR5cGU9ImhpZGRlbiIgY2xhc3M9InRleHRNT05USF8xMCIgdmFsdWU9Ik9jdG9icmUiPjxpbnB1dCB0eXBlPSJoaWRkZW4iIGNsYXNzPSJ0ZXh0TU9OVEhfMTEiIHZhbHVlPSJOb3ZlbWJyZSI+PGlucHV0IHR5cGU9ImhpZGRlbiIgY2xhc3M9InRleHRNT05USF8xMiIgdmFsdWU9IkTDqWNlbWJyZSI+PGlucHV0IHR5cGU9ImhpZGRlbiIgY2xhc3M9InRleHRNT05USF8yIiB2YWx1ZT0iRsOpdnJpZXIiPjxpbnB1dCB0eXBlPSJoaWRkZW4iIGNsYXNzPSJ0ZXh0TU9OVEhfMyIgdmFsdWU9Ik1hcnMiPjxpbnB1dCB0eXBlPSJoaWRkZW4iIGNsYXNzPSJ0ZXh0TU9OVEhfNCIgdmFsdWU9IkF2cmlsIj48aW5wdXQgdHlwZT0iaGlkZGVuIiBjbGFzcz0idGV4dE1PTlRIXzUiIHZhbHVlPSJNYWkiPjxpbnB1dCB0eXBlPSJoaWRkZW4iIGNsYXNzPSJ0ZXh0TU9OVEhfNiIgdmFsdWU9Ikp1aW4iPjxpbnB1dCB0eXBlPSJoaWRkZW4iIGNsYXNzPSJ0ZXh0TU9OVEhfNyIgdmFsdWU9Ikp1aWxsZXQiPjxpbnB1dCB0eXBlPSJoaWRkZW4iIGNsYXNzPSJ0ZXh0TU9OVEhfOCIgdmFsdWU9IkFvw7t0Ij48aW5wdXQgdHlwZT0iaGlkZGVuIiBjbGFzcz0idGV4dE1PTlRIXzkiIHZhbHVlPSJTZXB0ZW1icmUiPiA8aW5wdXQgY2xhc3M9IlN1bmRheVNjaGVkdWxlIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSJjbG9zZWQiPjxpbnB1dCBjbGFzcz0iTW9uZGF5U2NoZWR1bGUiIHR5cGU9ImhpZGRlbiIgc3RhcnRob3VyPSIwNyIgc3RhcnRtaW49IjMwIiBlbmRob3VyPSIxNyIgZW5kbWluPSIzMCI+PGlucHV0IGNsYXNzPSJUdWVzZGF5U2NoZWR1bGUiIHR5cGU9ImhpZGRlbiIgc3RhcnRob3VyPSIwNyIgc3RhcnRtaW49IjMwIiBlbmRob3VyPSIxNyIgZW5kbWluPSIzMCI+PGlucHV0IGNsYXNzPSJXZWRuZXNkYXlTY2hlZHVsZSIgdHlwZT0iaGlkZGVuIiBzdGFydGhvdXI9IjA3IiBzdGFydG1pbj0iMzAiIGVuZGhvdXI9IjE3IiBlbmRtaW49IjMwIj48aW5wdXQgY2xhc3M9IlRodXJzZGF5U2NoZWR1bGUiIHR5cGU9ImhpZGRlbiIgc3RhcnRob3VyPSIwNyIgc3RhcnRtaW49IjMwIiBlbmRob3VyPSIxNyIgZW5kbWluPSIzMCI+PGlucHV0IGNsYXNzPSJGcmlkYXlTY2hlZHVsZSIgdHlwZT0iaGlkZGVuIiBzdGFydGhvdXI9IjA3IiBzdGFydG1pbj0iMzAiIGVuZGhvdXI9IjEzIiBlbmRtaW49IjAwIj48aW5wdXQgY2xhc3M9IlNhdHVyZGF5U2NoZWR1bGUiIHR5cGU9ImhpZGRlbiIgdmFsdWU9ImNsb3NlZCI+PGlucHV0IGNsYXNzPSJDbG9zZWRTY2hlZHVsZSIgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iY2xvc2VkIj4gPGlucHV0IGNsYXNzPSJ0ZXh0Q2xvc2VkIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSJGZXJtw6kiPiA8aW5wdXQgY2xhc3M9InRleHRSZHYiIHR5cGU9ImhpZGRlbiIgdmFsdWU9IlN1ciBSZW5kZXotVm91cyI+IDxpbnB1dCBjbGFzcz0idGV4dFZpc2l0IiB0eXBlPSJoaWRkZW4iIHZhbHVlPSJWb2lyIGNvbmNlc3Npb25lciI+IDxpbnB1dCBjbGFzcz0iYWxsb3dUb2RheSIgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iIj4gPGlucHV0IGNsYXNzPSJtaW5TdGFydERheXMiIHR5cGU9ImhpZGRlbiIgdmFsdWU9IjAiPiA8ZGl2IHN0eWxlPSJkaXNwbGF5Om5vbmUiPiA8ZGl2IGlkPSJlbWFpbFN1YmplY3REZWZfbWVudVNlcnZpY2UiIHN0eWxlPSJkaXNwbGF5Om5vbmUiPkxlYWQgOiBEZW1hbmRlIGRlIHJlbmRlei12b3VzIGF1IHNlcnZpY2U8L2Rpdj4gPGRpdiBpZD0iZW1haWxCb2R5RGVmX21lbnVTZXJ2aWNlIiBzdHlsZT0iZGlzcGxheTpub25lIj5Cb25qb3VyLDxicj48YnI+VW4gY2xpZW50IHBvdGVudGllbCBheWFudCB2aXNpdMOpIHZvdHJlIHNpdGUgd2ViLCBhaW1lcmFpdCBwcmVuZHJlIHJlbmRlei12b3VzID8gdm90cmUgZMOpcGFydGVtZW50IGRlIHNlcnZpY2UgOjxicj48YnI+PHU+UmVuc2VpZ25lbWVudHMgc3VyIGxlIHbDqWhpY3VsZTwvdT46PGJyPlR5cGUgZGUgdsOpaGljdWxlOiA8c3Ryb25nPnskRU1BSUxWRUhJQ0xFVFlQRX08L3N0cm9uZz4gPGJyPk1vZD9sZTogPHN0cm9uZz57JEVNQUlMTUFLRX0geyRFTUFJTE1PREVMfSB7JEVNQUlMWUVBUn08L3N0cm9uZz48YnI+Q291bGV1ciBleHQ6IDxzdHJvbmc+eyRDT0xPUn08L3N0cm9uZz48YnI+TklWOiA8c3Ryb25nPnskVklOfTwvc3Ryb25nPjxicj5QbGFxdWVzOiA8c3Ryb25nPnskUExBVEVTfTwvc3Ryb25nPjxicj5LaWxvbT90cmVzOiA8c3Ryb25nPnskS019PC9zdHJvbmc+PGJyPjxicj48dT5NZXNzYWdlIGR1IHZpc2l0ZXVyPC91PiA6PGJyPjxzdHJvbmc+eyRRVUVTVElPTlN9PC9zdHJvbmc+PGJyPjxicj48dT5EYXRlcyBkdSByZW5kZXotdm91cyBzb3VoYWl0w6k8L3U+IDo8YnI+MWVyIGNob2l4IDogPHN0cm9uZz57JERBVEUxfTwvc3Ryb25nPjxicj4yP21lIGNob2l4IDogPHN0cm9uZz57JERBVEUyfTwvc3Ryb25nPnskU0VMRUNURURTRVJWSUNFU308YnI+QXR0ZW5kcmUgc3VyIHBsYWNlIDogPHN0cm9uZz57JFdBSVRJTkdPTlNJVEV9PC9zdHJvbmc+PGJyPk9wdGlvbiBkZSB0cmFuc3BvcnQgcHLDqWbDqXLDqWU6IDxzdHJvbmc+eyRUUkFOU1BPUlRPUFRJT059PC9zdHJvbmc+PGJyPjxicj48dT5SZW5zZWlnbmVtZW50cyBzdXIgbGUgdmlzaXRldXI8L3U+IDo8YnI+Tm9tIDogPHN0cm9uZz57JEZOQU1FfSB7JExOQU1FfTwvc3Ryb25nPjxicj5Db3VycmllbCA6IDxzdHJvbmc+PGEgaHJlZj0iP3BhdGg9bWFpbHRvOiU3QiUyNEVNQUlMJTdEIj57JEVNQUlMfTwvYT48L3N0cm9uZz48YnI+VMOpbMOpcGhvbmUgOiA8c3Ryb25nPjxhIGhyZWY9Ij9wYXRoPXRlbDolN0IlMjRFTUFJTFBIT05FJTdEIj57JEVNQUlMUEhPTkV9PC9hPjwvc3Ryb25nPiB7JFBIT05FX1ZBTElEQVRJT05fQVRURU1QVFN9PGJyPjxicj48dT5Db25jZXNzaW9uPC91PiA6PGJyPk5vbSA6IDxzdHJvbmc+eyRERUFMRVJOQU1FfTwvc3Ryb25nPjxicj48YnI+PGRpdiBzdHlsZT0iIyNTRU9CTE9DS0RJU1BMQVkjIyI+IFNvdXJjZSBNw6lkaWE6IDxzdHJvbmc+eyRVVE1ERVRBSUxTfTwvc3Ryb25nPjxicj4gTmF2aWdhdGV1cjogPHN0cm9uZz57JFVTRVJBR0VOVH0gLSA8L3N0cm9uZz48YnI+IEhpc3RvcmlxdWUgZGUgbmF2aWdhdGlvbjogPHN0cm9uZz48YSBocmVmPSI\/cGF0aD0lN0IlMjRVVUxJTkslN0QiIHJlbD0ibm9mb2xsb3cgdWdjIHNwb25zb3JlZCBub2luZGV4IiBzdHlsZT0iY29sb3I6IGJsYWNrOyB0ZXh0LWRlY29yYXRpb246IG5vbmU7Ij5DbGlxdWV6IGljaTwvYT48L3N0cm9uZz48YnI+PC9kaXY+Q29uc2VudGVtZW50OiA8c3Ryb25nPnskQ09OU0VOVF9ERVRBSUxTfTwvc3Ryb25nPnskUFVSQ0hBU0VfSU5URU5UfTwvZGl2Pgo8L2Rpdj4KPC9mb3JtPiA8L2Rpdj4gPGRpdiBjbGFzcz0ic2VydmljZS1kaXZpZGVyIj48L2Rpdj4gPGRpdiBjbGFzcz0ic2VydmljZS1yaWdodCI+IDxoNSBjbGFzcz0ic2VydmljZS1mb3JtLXRpdGxlIj5MaWVucyByYXBpZGVzPC9oNT4gPHVsPjxsaSBkYXRhLWlkPSJhZWU2ZDFjOS05YTEyLTJmNzAtOWVhNC03IiBpZD0iTWFpbk1lbnVfNmEyZWIxYTRjODZhZCI+PGEgaHJlZj0iP3BhdGg9L3RoZS13b3Jrcy1mci5odG1sIj5TZXJ2aWNlIGQnZW50cmV0aWVuIC0gTGUgUGxhbjwvYT48L2xpPgo8bGkgZGF0YS1pZD0iUElFQ0VTIiBpZD0iTWFpbk1lbnVfNmEyZWIxYTRjODZiNCI+PGEgaHJlZj0iP3BhdGg9L2RlbWFuZGVzL2NvbW1hbmRlLXBpZWNlcy1hY2Nlc3NvaXJlcy1hdXRvbW9iaWxlcy5odG1sIiBkYXRhLW1lbnUtdHJhbnNsYXRlPSJQSUVDRVMiPlBpw6hjZXMgJmFtcDsgQWNjZXNzb2lyZXM8L2E+PC9saT4KPGxpIGRhdGEtaWQ9IkFQUE9JTlQiIGlkPSJNYWluTWVudV82YTJlYjFhNGM4NmI4Ij48YSBocmVmPSI\/cGF0aD0vZGVtYW5kZXMvcmVuZGV6LXZvdXMtYXUtc2VydmljZS5odG1sIj5SZW5kZXotdm91cyBhdSBzZXJ2aWNlPC9hPjwvbGk+CjxsaSBkYXRhLWlkPSJHQVJBR0UiIGlkPSJNYWluTWVudV82YTJlYjFhNGM4NmJjIj48YSBocmVmPSI\/cGF0aD0vZGVtYW5kZXMvcmVuZGV6LXZvdXMtYXUtc2VydmljZS5odG1sIiBkYXRhLW1lbnUtdHJhbnNsYXRlPSJHQVJBR0UiPkVudHJldGllbiBldCBtw6ljYW5pcXVlPC9hPjwvbGk+CjxsaSBkYXRhLWlkPSJCT0RZIiBpZD0iTWFpbk1lbnVfNmEyZWIxYTRjODZiZiI+PGEgaHJlZj0iP3BhdGg9L2RlbWFuZGVzL3JlbmRlei12b3VzLWF1LWNhcm9zc2VyaWUuaHRtbCI+Q2Fycm9zc2VyaWU8L2E+PC9saT4KPGxpIGRhdGEtaWQ9IjFjNTM2M2RmLTRmMmYtZDgxNC01ZmFjLWMiIGlkPSJNYWluTWVudV82YTJlYjFhNGM4NmMxIj48YSBocmVmPSI\/cGF0aD0vcm9hZHNpZGUtZnIuaHRtbCIgZGF0YS1tZW51LXRyYW5zbGF0ZT0iMWM1MzYzZGYtNGYyZi1kODE0LTVmYWMtYyI+QXNzaXN0YW5jZSByb3V0acOocmU8L2E+PC9saT4KPGxpIGRhdGEtaWQ9IkNQX01BSU5URU5BTkNFUExBTiIgaWQ9Ik1haW5NZW51XzZhMmViMWE0Yzg2YzUiPjxhIGhyZWY9Ij9wYXRoPS9mb3JkLXByb3RlY3QtZnIuaHRtbCI+UGxhbiBQcm90ZWN0aW9uIC0gRW50cmV0aWVuIEZvcmQ8L2E+PC9saT4KPGxpIGRhdGEtaWQ9IjNjZDk2NDZlLWEwYTUtYmQ4NS1kZjJmLWMiIGlkPSJNYWluTWVudV82YTJlYjFhNGM4NmM4Ij48YSBocmVmPSI\/cGF0aD0va2l0cy1jdXN0b20tZm9yZC5odG1sIj5FbnNlbWJsZXMgc3VyIG1lc3VyZTwvYT48L2xpPgo8bGkgZGF0YS1pZD0iR1BfMWUwNGRhMDAxMDhlZTFmIiBpZD0iTWFpbk1lbnVfNmEyZWIxYTRjODZjYiI+PGEgaHJlZj0iP3BhdGg9L2ZvcmQtbWFpbnRlbmFuY2UtcGxhbi1mci5odG1sIj5Qcm9ncmFtbWVzIEZvcmQgUHJvdGVjdDwvYT48L2xpPgo8L3VsPiA8L2Rpdj4gPC9kaXY+IDwvbGk+PC91bD4KPC9saT4KPGxpIGRhdGEtaWQ9IkZJTkFOQ0UiIGlkPSJNYWluTWVudV9GSU5BTkNFIiBjbGFzcz0idG9wIGhhc0l0ZW1zIGlzQm9sZCI+PGEgY2xhc3M9InRvcF9saW5rIGlzQm9sZCIgaHJlZj0iP3BhdGg9L2RlbWFuZGVzL2ZpbmFuY2VtZW50Lmh0bWwiPkZpbmFuY2VtZW50PC9hPjx1bCBjbGFzcz0ic3ViIGZpbmFuY2UtbWVudS1mcmVlY3JlZGl0IGNlbnRlciI+IDxsaSBkYXRhLWlkPSI2YTJlYjFhNGM5MTZmIiBpZD0iTWFpbk1lbnVfNmEyZWIxYTRjOTE2ZiI+IDxkaXYgY2xhc3M9Im1lbnUtZmluYW5jZS13cmFwcGVyIj4gPHVsPjxsaSBkYXRhLWlkPSI5MGZiNzI1LWUzYTktMTQ5Yi0yNDQzLTZkIiBpZD0iTWFpbk1lbnVfNmEyZWIxYTRjODkwMSI+PGEgaHJlZj0iP3BhdGg9L2FjaGF0LWxvY2F0aW9uLmh0bWwiPkZhdXQtaWwgYWNoZXRlciBvdSBsb3VlciB2b3RyZSB2b2l0dXJlID88L2E+PC9saT4KPC91bD48ZGl2IGNsYXNzPSJkaXZpZGVyIj48L2Rpdj4gPGRpdiBjbGFzcz0iZmluYW5jZUZvcm1Db250YWluZXJFbWJlZGRlZCI+IDxkaXYgY2xhc3M9ImNyZWRpdFNjb3JlVGl0bGVDb250YWluZXIiPjxkaXYgY2xhc3M9ImRpdmlkZXIiIHN0eWxlPSJwYWRkaW5nLWJvdHRvbToxMnB4OyI+PC9kaXY+IDxkaXY+PHNwYW4gY2xhc3M9ImNyZWRpdEFwcEJsYWNrQ29sb3IgY3JlZGl0QXBwRGFya0JsdWVDb2xvckZSIHRleHQtdXBwZXJjYXNlIj5Ew6ljb3V2cmV6IG5vcyZhbXA7bmJzcE9mZnJlcyBkZSZhbXA7bmJzcEZpbmFuY2VtZW50ITwvc3Bhbj48aHIgY2xhc3M9ImdyYXlMaW5lQ3JlZGl0Rm9ybSI+PC9kaXY+PC9kaXY+IDxpbnB1dCB0eXBlPSJoaWRkZW4iIGRhdGEtc2VuZHRvZW1haWw9ImNyZWRpdFNjb3JlRmluYW5jZUVtYWlsIiB2YWx1ZT0iZTM4YTBkOWUwNGE3YmM4NmI5ZTZkOGViZWMzZTk3ZGF8MTU3OTkwMTQ0OCI+IDxpbnB1dCB0eXBlPSJoaWRkZW4iIGRhdGEtc2VuZHRvZW1haWxhZGY9ImNyZWRpdFNjb3JlRmluYW5jZUVtYWlsQURGIiB2YWx1ZT0iMTMxZDE5YThiMTY1NzRkMGM5NWY1YmI3MTczYmRjZWN8MTU3OTkwMTQ0OCI+IDxmb3JtIG5hbWU9ImNyZWRpdFNjb3JlUG9wdXBGb3JtIiBjbGFzcz0iY3JlZGl0U2NvcmVQb3B1cEZvcm0iPiA8ZGl2IGNsYXNzPSJjcmVkaXRBcHBUaXRsZUltYWdlIj4gPGRpdiBjbGFzcz0iY3JlZGl0U2NvcmVUaXRsZUNvbnRhaW5lciI+PGRpdiBjbGFzcz0iY3JlZGl0QXBwU3ViVGl0bGUiPjxzcGFuIGNsYXNzPSJjcmVkaXRTY29yZUJvbGQgY3JlZGl0SGlnaGxpZ2h0VGV4dE1lbnUiPjk5JSBBcHByb3V2w6k8L3NwYW4+PC9kaXY+IDxkaXY+PHNwYW4gY2xhc3M9ImNyZWRpdFNjb3JlQm9sZCBjcmVkaXRBcHBUaXRsZTMiPkdhcmFudGk8L3NwYW4+PC9kaXY+PC9kaXY+IDxkaXYgY2xhc3M9ImNyZWRpdFNjb3JlSW1hZ2VDb250YWluZXIiPjxpbWcgY2xhc3M9ImNyZWRpdEFwcEVtYmVkZGVkSW1hZ2UgbGl2ZWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgc3JjPSJodHRwczovL2NhcmxlZm9yZC5jb20vL2ltYWdlcy9pY29uLWhhbmQtZG9sbGFyMi5wbmciIGFsdD0iaWNvbiBoYW5kIGRvbGxhcjIiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj48L2Rpdj4gPGRpdiBjbGFzcz0iY3JlZGl0U2NvcmVDb25zZW50TWVzc2FnZSI+Vm91cyBjb25zZW50ZXogYWluc2kgw6AgY2UgcXUnb24gY29tbXVuaXF1ZSBlbiB2b3RyZSBub20gYXZlYyBFcXVpZmF4IG91IFRyYW5zVW5pb24gcG91ciByZWNldm9pciB2b3RyZSBjb3RlIGRlIGNyw6lkaXQuPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJkMmNmb3JtIGQyY2Zvcm0tLXRoaW4gY3JlZGl0U2NvcmVFbWJlZGRlZEZvcm1JbnB1dHMiPiA8ZGl2IGNsYXNzPSJjcmVkaXRTY29yZUlucHV0IHN0YWNrLWxjIj4gPGRpdj4gPGxhYmVsPiA8c3BhbiBjbGFzcz0ic3Itb25seSI+UHLDqW5vbTwvc3Bhbj4gPGlucHV0IGNsYXNzPSJjcmVkaXRTY29yZUZpcnN0bmFtZSBmaXJzdG5hbWUgcmVxdWlyZWQgdHh0LXVwcGVyIiBuYW1lPSJmbmFtZSIgdGl0bGU9IlByw6lub20iIHBsYWNlaG9sZGVyPSJQcsOpbm9tIj4gPC9sYWJlbD4gPC9kaXY+IDxkaXY+IDxsYWJlbD4gPHNwYW4gY2xhc3M9InNyLW9ubHkiPk5vbTwvc3Bhbj4gPGlucHV0IGNsYXNzPSJjcmVkaXRTY29yZUxhc3RuYW1lIGxhc3RuYW1lIHJlcXVpcmVkIHR4dC11cHBlciIgbmFtZT0ibG5hbWUiIHRpdGxlPSJOb20iIHBsYWNlaG9sZGVyPSJOb20iPiA8L2xhYmVsPiA8L2Rpdj4gPGRpdj4gPGxhYmVsPiA8c3BhbiBjbGFzcz0ic3Itb25seSI+Q291cnJpZWw8L3NwYW4+IDxpbnB1dCBjbGFzcz0iY3JlZGl0U2NvcmVFbWFpbCBlbWFpbCByZXF1aXJlZCB0eHQtdXBwZXIiIG5hbWU9ImVtYWlsIiB0aXRsZT0iQ291cnJpZWwiIHBsYWNlaG9sZGVyPSJDb3VycmllbCI+IDwvbGFiZWw+IDwvZGl2PiA8ZGl2PiA8bGFiZWw+IDxzcGFuIGNsYXNzPSJzci1vbmx5Ij5Uw6lsw6lwaG9uZTwvc3Bhbj4gPGlucHV0IGNsYXNzPSJjcmVkaXRTY29yZVBob25lIHBob25lIHJlcXVpcmVkIHR4dC11cHBlciIgbmFtZT0idXNlclBob25lIiB0aXRsZT0iVMOpbMOpcGhvbmUiIHBsYWNlaG9sZGVyPSJUw6lsw6lwaG9uZSI+IDwvbGFiZWw+IDwvZGl2PiA8ZGl2IGNsYXNzPSJpbnB1dC1pY29uLXJpZ2h0Ij4gPGxhYmVsPiA8c3BhbiBjbGFzcz0ic3Itb25seSI+RGF0ZSBkZSBuYWlzc2FuY2U8L3NwYW4+IDxpbnB1dCBjbGFzcz0iY3JlZGl0U2NvcmVCaXJ0aGRhdGUgYmlydGhkYXRlIHJlcXVpcmVkIHR4dC11cHBlciIgcmVhZG9ubHkgbmFtZT0iYmlydGhkYXRlIiB0aXRsZT0iRGF0ZSBkZSBuYWlzc2FuY2UiIHBsYWNlaG9sZGVyPSJEYXRlIGRlIG5haXNzYW5jZSI+IDxzcGFuIGNsYXNzPSJpbnB1dC1pY29uIGZhIGZhLWNhbGVuZGFyIj48L3NwYW4+IDwvbGFiZWw+IDwvZGl2PiA8ZGl2PiA8bGFiZWw+IDxzcGFuIGNsYXNzPSJzci1vbmx5Ij5BZHJlc3NlPC9zcGFuPiA8aW5wdXQgY2xhc3M9ImNyZWRpdFNjb3JlQWRkcmVzcyBhZGRyZXNzIHJlcXVpcmVkIHR4dC11cHBlciIgbmFtZT0idXNlckFkZHJlc3MiIGRhdGEtZ29vZ2xlLXBsYWNlcy1jdXN0b209InRydWUiIHRpdGxlPSJBZHJlc3NlIiBwbGFjZWhvbGRlcj0iQWRyZXNzZSI+IDwvbGFiZWw+IDwvZGl2PiA8ZGl2PiA8YnV0dG9uIGNsYXNzPSJjcmVkaXRBcHBfYnRuIGJ0bi1kZWZhdWx0Ij5BZmZpY2hlciBsZXMgb2ZmcmVzICE8L2J1dHRvbj4gPC9kaXY+IDwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0iY3JlZGl0U2NvcmVFbWJlZGRlZEZvcm1TdWNjZXNzIiBzdHlsZT0iZGlzcGxheTpub25lOyI+TWVyY2khIFVuIGNvbnNlaWxsZXIgY29tbXVuaXF1ZXJhIGF2ZWMgdm91cyBwb3VyIHZvdXMgZG9ubmVyIGxlcyBkw6l0YWlscyBzdXIgdm90cmUgcG90ZW50aWVsIGRlIGNyw6lkaXQuPC9kaXY+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIGNsYXNzPSJlbWFpbElkQ29udGFpbmVyIiB2YWx1ZT0iQ3JlZGl0QXBwQ2FyZCI+IDxkaXYgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPiA8ZGl2IGNsYXNzPSJtYWlsLWV4cHJlc3Mtd2lkZ2V0X19lbWFpbC1kZWZpbml0aW9uX19zdWJqZWN0Ij5TUlAgRmluYW5jZS9DcmVkaXQgYXBwbGljYXRpb24gY2FyZDwvZGl2PiA8ZGl2IGNsYXNzPSJtYWlsLWV4cHJlc3Mtd2lkZ2V0X19lbWFpbC1kZWZpbml0aW9uX19ib2R5Ij5Cb25qb3VyLDxicj48YnI+VW4gY2xpZW50IHBvdGVudGllbCBheWFudCB2aXNpdMOpIHZvdHJlIHNpdGUgd2ViLCBhaW1lcmFpdCBmYWlyZSB1bmUgZGVtYW5kZSBkZSBmaW5hbmNlbWVudCA6PGJyPjxicj48dT5SZW5zZWlnbmVtZW50cyBzdXIgbGUgZGVtYW5kZXVyPC91PiA6PGJyPk5vbSA6IDxzdHJvbmc+eyRGTkFNRX0geyRMTkFNRX08L3N0cm9uZz48YnI+Q291cnJpZWwgOiA8c3Ryb25nPjxhIGhyZWY9Ij9wYXRoPW1haWx0bzolN0IlMjRFTUFJTCU3RCI+eyRFTUFJTH08L2E+PC9zdHJvbmc+PGJyPlTDqWzDqXBob25lIDogPHN0cm9uZz57JFVTRVJQSE9ORX08L3N0cm9uZz4geyRQSE9ORV9WQUxJREFUSU9OX0FUVEVNUFRTfTxicj5EYXRlIGRlIG5haXNzYW5jZSA6IDxzdHJvbmc+eyRCSVJUSERBVEV9PC9zdHJvbmc+PGJyPkFkcmVzc2UgOiA8c3Ryb25nPnskVVNFUkFERFJFU1N9PC9zdHJvbmc+PGJyPjxicj48ZGl2IHN0eWxlPSIjI1NFT0JMT0NLRElTUExBWSMjIj5Tb3VyY2UgTcOpZGlhOiA8c3Ryb25nPnskVVRNREVUQUlMU308L3N0cm9uZz48YnI+TmF2aWdhdGV1cjogPHN0cm9uZz57JFVTRVJBR0VOVH0gLSA8L3N0cm9uZz48YnI+SGlzdG9yaXF1ZSBkZSBuYXZpZ2F0aW9uOiA8c3Ryb25nPjxhIGhyZWY9Ij9wYXRoPSU3QiUyNFVVTElOSyU3RCIgcmVsPSJub2ZvbGxvdyB1Z2Mgc3BvbnNvcmVkIG5vaW5kZXgiIHN0eWxlPSJjb2xvcjpibGFjazsgdGV4dC1kZWNvcmF0aW9uOiBub25lOyI+Q2xpcXVleiBpY2k8L2E+PC9zdHJvbmc+PC9kaXY+PC9kaXY+IDwvZGl2PiA8L2Zvcm0+IDwvZGl2PiA8L2Rpdj4gPC9saT48L3VsPgo8L2xpPgo8bGkgZGF0YS1pZD0iUFJPTU8iIGlkPSJNYWluTWVudV9QUk9NTyIgY2xhc3M9InRvcCBoYXNJdGVtcyBpc0JvbGQiPjxhIGNsYXNzPSJ0b3BfbGluayBpc0JvbGQiIGhyZWY9Ij9wYXRoPS9wcm9tb3Rpb25zLmh0bWwiPlByb21vczwvYT48dWwgY2xhc3M9InN1YiI+CjxsaSBkYXRhLWlkPSJQUk9NT19ORVciIGlkPSJNYWluTWVudV82YTJlYjFhNGM5MTVmIiBjbGFzcz0iZmlyc3RJdGVtIj48YSBocmVmPSI\/cGF0aD0vcHJvbW90aW9ucy5odG1sI25ldyI+T2ZmcmVzIEZvcmQ8L2E+PC9saT4KPGxpIGRhdGEtaWQ9IlBST01PX01BTlVGQUNUVVJFUiIgaWQ9Ik1haW5NZW51XzZhMmViMWE0YzkxNjIiIGNsYXNzPSJsYXN0SXRlbSI+PGEgaHJlZj0iP3BhdGg9L3Byb21vdGlvbnMuaHRtbCNtYW51ZmFjdHVyZXIiPkluY2l0YXRpZnMgRm9yZDwvYT48L2xpPgo8L3VsPgo8L2xpPgo8bGkgZGF0YS1pZD0iVVNFRCIgaWQ9Ik1haW5NZW51X1VTRUQiIGNsYXNzPSJ0b3AgaGFzSXRlbXMgaXNCb2xkIj48YSBjbGFzcz0idG9wX2xpbmsgaXNCb2xkIiBocmVmPSI\/cGF0aD0vb2NjYXNpb24vcmVjaGVyY2hlLmh0bWwiIGRhdGEtbWVudS10cmFuc2xhdGU9IlVTRUQiPk9jY2FzaW9uPC9hPjx1bCBjbGFzcz0ic3ViIHNsaW0tc3VibWVudS0zIj4KPGxpIGRhdGEtaWQ9IlVTRURfU0VBUkNIRVMiIGlkPSJNYWluTWVudV9VU0VEX1NFQVJDSEVTIiBjbGFzcz0idG9wIGZpcnN0TWVudSBoYXNJdGVtcyBpc0JvbGQiPjxhIGNsYXNzPSJ0b3BfbGluayBpc0JvbGQgbm90Q2xpY2thYmxlIiBvbmNsaWNrPSJyZXR1cm4gZmFsc2U7IiBocmVmPSI\/cGF0aD0jIj5MaWVucyBSYXBpZGVzPC9hPjx1bCBjbGFzcz0ic3ViIHNsaW0tc3VibWVudS0zIj4KPGxpIGRhdGEtaWQ9IlVTRURfQUxMSU5WIiBpZD0iTWFpbk1lbnVfNmEyZWIxYTRjOTBmNCIgY2xhc3M9ImZpcnN0SXRlbSI+PGEgaHJlZj0iP3BhdGg9L29jY2FzaW9uL3JlY2hlcmNoZS5odG1sIj5JbnZlbnRhaXJlIGNvbXBsZXQgKDQ5KTwvYT48L2xpPgo8bGkgZGF0YS1pZD0iVVNFRF9MRVNTMjBLIiBpZD0iTWFpbk1lbnVfNmEyZWIxYTRjOTBmOCI+PGEgaHJlZj0iP3BhdGg9L29jY2FzaW9uL21vaW5zLWRlLTIwMDAwLmh0bWwiPk1vaW5zIGRlIDIwLDAwMCQgKDUpPC9hPjwvbGk+CjxsaSBkYXRhLWlkPSJVU0VEX0NBVF9DQVIiIGlkPSJNYWluTWVudV82YTJlYjFhNGM5MGZiIj48YSBocmVmPSI\/cGF0aD0vb2NjYXNpb24vdHlwZS9BdXRvcy5odG1sIj5BdXRvcyAoMik8L2E+PC9saT4KPGxpIGRhdGEtaWQ9IlVTRURfQ0FUX1ZBTiIgaWQ9Ik1haW5NZW51XzZhMmViMWE0YzkwZmQiPjxhIGhyZWY9Ij9wYXRoPS9vY2Nhc2lvbi90eXBlL0NhbWlvbm5ldHRlc19Db21tZXJjaWFsZXMuaHRtbCI+Q2FtaW9ubmV0dGVzIENvbW1lcmNpYWxlcyAoNCk8L2E+PC9saT4KPGxpIGRhdGEtaWQ9IlVTRURfQ0FUX1NVViIgaWQ9Ik1haW5NZW51XzZhMmViMWE0YzkxMDAiPjxhIGhyZWY9Ij9wYXRoPS9vY2Nhc2lvbi90eXBlL1ZVUy5odG1sIj5WVVMgKDIyKTwvYT48L2xpPgo8bGkgZGF0YS1pZD0iVVNFRF9DQVRfVFJVQ0siIGlkPSJNYWluTWVudV82YTJlYjFhNGM5MTAyIj48YSBocmVmPSI\/cGF0aD0vb2NjYXNpb24vdHlwZS9DYW1pb25zLmh0bWwiPkNhbWlvbnMgKDIyKTwvYT48L2xpPgo8bGkgZGF0YS1pZD0iOThlNDgyNTgtZDdkLTM0ODctNTdiLTEyNCIgaWQ9Ik1haW5NZW51XzZhMmViMWE0YzkxMDUiPjxhIGhyZWY9Ij9wYXRoPS9pbnZlbnRhaXJlLmh0bWw\/ZmlsdGVyaWQ9YTliMWM4cTAtMTAiPlBvaWRzIExvdXJkczwvYT48L2xpPgo8bGkgZGF0YS1pZD0iVVNFRF9DQVRfRUxFQ1RSSUMiIGlkPSJNYWluTWVudV82YTJlYjFhNGM5MTA3Ij48YSBocmVmPSI\/cGF0aD0vb2NjYXNpb24vZWxlY3RyaXF1ZS5odG1sIiBkYXRhLW1lbnUtdHJhbnNsYXRlPSJVU0VEX0NBVF9FTEVDVFJJQyI+w4lsZWN0cmlxdWUgKDIpPC9hPjwvbGk+CjxsaSBkYXRhLWlkPSJVU0VEX0NBVF9IWUJSSUQiIGlkPSJNYWluTWVudV82YTJlYjFhNGM5MTA5Ij48YSBocmVmPSI\/cGF0aD0vb2NjYXNpb24vaHlicmlkZS5odG1sIj5IeWJyaWRlICg2KTwvYT48L2xpPgo8bGkgZGF0YS1pZD0iVVNFRF9DQVRfQ09OVkVSVElCTEUiIGlkPSJNYWluTWVudV82YTJlYjFhNGM5MTBjIj48YSBocmVmPSI\/cGF0aD0vb2NjYXNpb24vdHlwZS9EZWNhcG90YWJsZXMuaHRtbCIgZGF0YS1tZW51LXRyYW5zbGF0ZT0iVVNFRF9DQVRfQ09OVkVSVElCTEUiPkTDqWNhcG90YWJsZXMgKDEpPC9hPjwvbGk+CjxsaSBkYXRhLWlkPSJVU0VEX09USEVSIiBpZD0iTWFpbk1lbnVfNmEyZWIxYTRjOTEwZSI+PGEgaHJlZj0iP3BhdGg9L29jY2FzaW9uL3JlY2hlcmNoZS5odG1sIiBkYXRhLW1lbnUtdHJhbnNsYXRlPSJVU0VEX09USEVSIj5BdXRyZXMgbW9kw6hsZXM8L2E+PC9saT4KPGxpIGRhdGEtaWQ9Ijk2YTAyZWUtYjUzMy01OWIwLTE4NWEtMjYiIGlkPSJNYWluTWVudV82YTJlYjFhNGM5MTExIiBjbGFzcz0ibGFzdEl0ZW0iPjxhIGhyZWY9Ij9wYXRoPS9vY2Nhc2lvbi9iYXRlYXV4L3JlY2hlcmNoZS5odG1sIj5CYXRlYXV4PC9hPjwvbGk+CjwvdWw+CjwvbGk+CjxsaSBkYXRhLWlkPSJVU0VEX0NBUlMiIGlkPSJNYWluTWVudV9VU0VEX0NBUlMiIGNsYXNzPSJ0b3AgbGFzdE1lbnUgaGFzSXRlbXMgaXNCb2xkIGludmVudG9yeSI+PGEgY2xhc3M9InRvcF9saW5rIGlzQm9sZCBub3RDbGlja2FibGUiIG9uY2xpY2s9InJldHVybiBmYWxzZTsiIGhyZWY9Ij9wYXRoPSMiIGRhdGEtbWVudS10cmFuc2xhdGU9IlVTRURfQ0FSUyI+Tm9zIHRvcC0yMSBtb2TDqGxlczwvYT48dWwgY2xhc3M9InN1YiBzbGltLXN1Ym1lbnUtMyI+CjxsaSBkYXRhLWlkPSJVU0VEX0NBUlNfRzAiIGlkPSJNYWluTWVudV9VU0VEX0NBUlNfRzAiIGNsYXNzPSJ0b3AgZmlyc3RNZW51IGhhc0l0ZW1zIGlzQm9sZCI+PHNwYW4gY2xhc3M9InRvcF9saW5rIGlzQm9sZCI+PC9zcGFuPjx1bCBjbGFzcz0ic3ViIHNsaW0tc3VibWVudS0zIj4KPGxpIGRhdGEtaWQ9IlVTRUQxIiBpZD0iTWFpbk1lbnVfNmEyZWIxYTRjOTExYyIgY2xhc3M9ImZpcnN0SXRlbSI+PGEgaHJlZj0iP3BhdGg9L29jY2FzaW9uL0ZvcmQtRl8xNTAuaHRtbCI+Rm9yZCBGLTE1MCAoMTIpPC9hPjwvbGk+CjxsaSBkYXRhLWlkPSJVU0VEMiIgaWQ9Ik1haW5NZW51XzZhMmViMWE0YzkxMWYiPjxhIGhyZWY9Ij9wYXRoPS9vY2Nhc2lvbi9Gb3JkLVN1cGVyX0R1dHlfRl8yNTBfU1JXLmh0bWwiPkZvcmQgU3VwZXIgRHV0eSBGLTI1MCBTUlcgKDcpPC9hPjwvbGk+CjxsaSBkYXRhLWlkPSJVU0VEMyIgaWQ9Ik1haW5NZW51XzZhMmViMWE0YzkxMjIiPjxhIGhyZWY9Ij9wYXRoPS9vY2Nhc2lvbi9Gb3JkLUVzY2FwZS5odG1sIj5Gb3JkIEVzY2FwZSAoNSk8L2E+PC9saT4KPGxpIGRhdGEtaWQ9IlVTRUQ0IiBpZD0iTWFpbk1lbnVfNmEyZWIxYTRjOTEyNCI+PGEgaHJlZj0iP3BhdGg9L29jY2FzaW9uL0ZvcmQtRXNjYXBlX1BsdWdfaW5fSHlicmlkLmh0bWwiPkZvcmQgRXNjYXBlIFBsdWctaW4gSHlicmlkICg0KTwvYT48L2xpPgo8bGkgZGF0YS1pZD0iVVNFRDUiIGlkPSJNYWluTWVudV82YTJlYjFhNGM5MTI3Ij48YSBocmVmPSI\/cGF0aD0vb2NjYXNpb24vRm9yZC1Ccm9uY29fU3BvcnQuaHRtbCI+Rm9yZCBCcm9uY28gU3BvcnQgKDMpPC9hPjwvbGk+CjxsaSBkYXRhLWlkPSJVU0VENiIgaWQ9Ik1haW5NZW51XzZhMmViMWE0YzkxMjkiPjxhIGhyZWY9Ij9wYXRoPS9vY2Nhc2lvbi9Gb3JkLUVjb1Nwb3J0Lmh0bWwiPkZvcmQgRWNvU3BvcnQgKDIpPC9hPjwvbGk+CjxsaSBkYXRhLWlkPSJVU0VENyIgaWQ9Ik1haW5NZW51XzZhMmViMWE0YzkxMmIiIGNsYXNzPSJsYXN0SXRlbSI+PGEgaHJlZj0iP3BhdGg9L29jY2FzaW9uL0ZvcmQtRWRnZS5odG1sIj5Gb3JkIEVkZ2UgKDIpPC9hPjwvbGk+CjwvdWw+CjwvbGk+CjxsaSBkYXRhLWlkPSJVU0VEX0NBUlNfRzEiIGlkPSJNYWluTWVudV9VU0VEX0NBUlNfRzEiIGNsYXNzPSJ0b3AgaGFzSXRlbXMgaXNCb2xkIj48c3BhbiBjbGFzcz0idG9wX2xpbmsgaXNCb2xkIj48L3NwYW4+PHVsIGNsYXNzPSJzdWIgc2xpbS1zdWJtZW51LTMiPgo8bGkgZGF0YS1pZD0iVVNFRDgiIGlkPSJNYWluTWVudV82YTJlYjFhNGM5MTMyIiBjbGFzcz0iZmlyc3RJdGVtIj48YSBocmVmPSI\/cGF0aD0vb2NjYXNpb24vQnVpY2stRW5jb3JlX0dYLmh0bWwiPkJ1aWNrIEVuY29yZSBHWCAoMSk8L2E+PC9saT4KPGxpIGRhdGEtaWQ9IlVTRUQ5IiBpZD0iTWFpbk1lbnVfNmEyZWIxYTRjOTEzNSI+PGEgaHJlZj0iP3BhdGg9L29jY2FzaW9uL0ZvcmQtRXhwbG9yZXIuaHRtbCI+Rm9yZCBFeHBsb3JlciAoMSk8L2E+PC9saT4KPGxpIGRhdGEtaWQ9IlVTRUQxMCIgaWQ9Ik1haW5NZW51XzZhMmViMWE0YzkxMzciPjxhIGhyZWY9Ij9wYXRoPS9vY2Nhc2lvbi9Gb3JkLUZfMTUwX0xpZ2h0bmluZy5odG1sIj5Gb3JkIEYtMTUwIExpZ2h0bmluZyAoMSk8L2E+PC9saT4KPGxpIGRhdGEtaWQ9IlVTRUQxMSIgaWQ9Ik1haW5NZW51XzZhMmViMWE0YzkxMzkiPjxhIGhyZWY9Ij9wYXRoPS9vY2Nhc2lvbi9Gb3JkLU1hdmVyaWNrLmh0bWwiPkZvcmQgTWF2ZXJpY2sgKDEpPC9hPjwvbGk+CjxsaSBkYXRhLWlkPSJVU0VEMTIiIGlkPSJNYWluTWVudV82YTJlYjFhNGM5MTNjIj48YSBocmVmPSI\/cGF0aD0vb2NjYXNpb24vRm9yZC1NdXN0YW5nX01hY2hfRS5odG1sIj5Gb3JkIE11c3RhbmcgTWFjaC1FICgxKTwvYT48L2xpPgo8bGkgZGF0YS1pZD0iVVNFRDEzIiBpZD0iTWFpbk1lbnVfNmEyZWIxYTRjOTEzZSI+PGEgaHJlZj0iP3BhdGg9L29jY2FzaW9uL0ZvcmQtU3VwZXJfRHV0eV9GXzM1MF9TUlcuaHRtbCI+Rm9yZCBTdXBlciBEdXR5IEYtMzUwIFNSVyAoMSk8L2E+PC9saT4KPGxpIGRhdGEtaWQ9IlVTRUQxNCIgaWQ9Ik1haW5NZW51XzZhMmViMWE0YzkxNDEiIGNsYXNzPSJsYXN0SXRlbSI+PGEgaHJlZj0iP3BhdGg9L29jY2FzaW9uL0ZvcmQtVHJhbnNpdC5odG1sIj5Gb3JkIFRyYW5zaXQgKDEpPC9hPjwvbGk+CjwvdWw+CjwvbGk+CjxsaSBkYXRhLWlkPSJVU0VEX0NBUlNfRzIiIGlkPSJNYWluTWVudV9VU0VEX0NBUlNfRzIiIGNsYXNzPSJ0b3AgbGFzdE1lbnUgaGFzSXRlbXMgaXNCb2xkIj48c3BhbiBjbGFzcz0idG9wX2xpbmsgaXNCb2xkIj48L3NwYW4+PHVsIGNsYXNzPSJzdWIgc2xpbS1zdWJtZW51LTMiPgo8bGkgZGF0YS1pZD0iVVNFRDE1IiBpZD0iTWFpbk1lbnVfNmEyZWIxYTRjOTE0NiIgY2xhc3M9ImZpcnN0SXRlbSI+PGEgaHJlZj0iP3BhdGg9L29jY2FzaW9uL0ZvcmQtVHJhbnNpdF9DYXJnb19WYW4uaHRtbCI+Rm9yZCBUcmFuc2l0IENhcmdvIFZhbiAoMSk8L2E+PC9saT4KPGxpIGRhdGEtaWQ9IlVTRUQxNiIgaWQ9Ik1haW5NZW51XzZhMmViMWE0YzkxNDkiPjxhIGhyZWY9Ij9wYXRoPS9vY2Nhc2lvbi9Gb3JkLVRyYW5zaXRfQ29ubmVjdF9DYXJnb19WYW4uaHRtbCI+Rm9yZCBUcmFuc2l0IENvbm5lY3QgQ2FyZ28gVmFuICgxKTwvYT48L2xpPgo8bGkgZGF0YS1pZD0iVVNFRDE3IiBpZD0iTWFpbk1lbnVfNmEyZWIxYTRjOTE0YiI+PGEgaHJlZj0iP3BhdGg9L29jY2FzaW9uL0tpYS1UZWxsdXJpZGUuaHRtbCI+S2lhIFRlbGx1cmlkZSAoMSk8L2E+PC9saT4KPGxpIGRhdGEtaWQ9IlVTRUQxOCIgaWQ9Ik1haW5NZW51XzZhMmViMWE0YzkxNGQiPjxhIGhyZWY9Ij9wYXRoPS9vY2Nhc2lvbi9MaW5jb2xuLUF2aWF0b3IuaHRtbCI+TGluY29sbiBBdmlhdG9yICgxKTwvYT48L2xpPgo8bGkgZGF0YS1pZD0iVVNFRDE5IiBpZD0iTWFpbk1lbnVfNmEyZWIxYTRjOTE1MCI+PGEgaHJlZj0iP3BhdGg9L29jY2FzaW9uL0xpbmNvbG4tTmF1dGlsdXMuaHRtbCI+TGluY29sbiBOYXV0aWx1cyAoMSk8L2E+PC9saT4KPGxpIGRhdGEtaWQ9IlVTRUQyMCIgaWQ9Ik1haW5NZW51XzZhMmViMWE0YzkxNTIiPjxhIGhyZWY9Ij9wYXRoPS9vY2Nhc2lvbi9NYXpkYS1NWF81Lmh0bWwiPk1hemRhIE1YLTUgKDEpPC9hPjwvbGk+CjxsaSBkYXRhLWlkPSJVU0VEMjEiIGlkPSJNYWluTWVudV82YTJlYjFhNGM5MTU0IiBjbGFzcz0ibGFzdEl0ZW0iPjxhIGhyZWY9Ij9wYXRoPS9vY2Nhc2lvbi9OaXNzYW4tVmVyc2FfTm90ZS5odG1sIj5OaXNzYW4gVmVyc2EgTm90ZSAoMSk8L2E+PC9saT4KPC91bD4KPC9saT4KPC91bD4KPC9saT4KPC91bD4KPC9saT4KPGxpIGRhdGEtaWQ9IlRBQl9DT01NRVJDSUFMIiBpZD0iTWFpbk1lbnVfVEFCX0NPTU1FUkNJQUwiIGNsYXNzPSJ0b3AgaGFzSXRlbXMgaXNCb2xkIj48YSBjbGFzcz0idG9wX2xpbmsgaXNCb2xkIiBocmVmPSI\/cGF0aD0vY2FtaW9ucy1jb21tZXJjaWF1eC5odG1sIj5Db21tZXJjaWFsPC9hPjx1bCBjbGFzcz0ic3ViIj4KPGxpIGRhdGEtaWQ9IlNVQl9UQUJfQ09NTUVSQ0lBTF9TUEVDSUEiIGlkPSJNYWluTWVudV82YTJlYjFhNGM5MDc2IiBjbGFzcz0iZmlyc3RJdGVtIj48YSBocmVmPSI\/cGF0aD0vY2FtaW9ucy1jb21tZXJjaWF1eC5odG1sIiBkYXRhLW1lbnUtdHJhbnNsYXRlPSJTVUJfVEFCX0NPTU1FUkNJQUxfU1BFQ0lBIj5MZXMgc3DDqWNpYWxpc3RlcyBkdSBjYW1pb248L2E+PC9saT4KPGxpIGRhdGEtaWQ9IjUwOWY2MjEtMjFhNS1kYmI4LTE3YzAtNGUiIGlkPSJNYWluTWVudV82YTJlYjFhNGM5MDc5Ij48YSBocmVmPSI\/cGF0aD0vaW52ZW50YWlyZS5odG1sP2ZpbHRlcmlkPWFBYjNjNWQxOXEwLTEweDAtMC0wIj5JbnZlbnRhaXJlIENvbW1lcmNpYWw8L2E+PC9saT4KPGxpIGRhdGEtaWQ9IlNVQl9UQUJfQ09NTUVSQ0lBTF9DT01NRVIiIGlkPSJNYWluTWVudV82YTJlYjFhNGM5MGQwIiBjbGFzcz0iaGFzU3ViIj48YSBocmVmPSI\/cGF0aD0vY2FtaW9ucy1jb21tZXJjaWF1eC5odG1sIj5Ob3MgY2FtaW9uczwvYT48dWwgY2xhc3M9InN1YiI+PGxpIGRhdGEtaWQ9Ik5FV19DT01NRVJDSUFMX0ZvcmQiIGlkPSJNYWluTWVudV82YTJlYjFhNGM5MGNlIiBjbGFzcz0iZmlyc3RJdGVtIGxhc3RJdGVtIGhhc1N1YiBoYXNJbWciPjx1bCBjbGFzcz0ic3ViIj48bGkgZGF0YS1pZD0iMzYwNTU4NTgyMyIgaWQ9Ik1haW5NZW51XzZhMmViMWE0YzkwN2UiIGNsYXNzPSJmaXJzdEl0ZW0gaGFzSW1nIiBkYXRhLW1vZGVsaWQ9IjcyMzM3Ij48YSBocmVmPSI\/cGF0aD0vbmV1ZnMvRm9yZC1FX1RyYW5zaXRfQ2FyZ29fVmFuLTIwMjYuaHRtbCIgY2xhc3M9Iml0ZW0td3JhcCBpbWdMaW5rIj48aW1nIGFsdD0iRSBUcmFuc2l0IGZvdXJnb25uZXR0ZSB1dGlsaXRhaXJlIDIwMjYiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL0ZvcmQvRV9UcmFuc2l0IENhcmdvIFZhbi8yMDI2L1QvNDc4NDY4L0JsdWUvcHJvZmlsZS5wbmc\/Y2I9NmEyZWIxOTI3OGZmNCIgZXJyb3JpbWc9Ii8vaW1nLmQyY21lZGlhLmNhL2Nhcm1ha2VzL2ZvcmRfYy5wbmciIHRpdGxlPSJFIFRyYW5zaXQgZm91cmdvbm5ldHRlIHV0aWxpdGFpcmUgMjAyNiIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPjwvYT48c3BhbiBjbGFzcz0icHJpY2UiPjxzcGFuIGNsYXNzPSJwcmljZV90ZXh0Ij7DoCBwYXJ0aXIgZGU8L3NwYW4+PHNwYW4gY2xhc3M9InByaWNlX2FtdCI+NzcgMDk1ICQ8L3NwYW4+PGltZyBjbGFzcz0icHJpY2Utc2NyYXRjaCBsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJsZWZvcmQuY29tLy9pbWFnZXMvcmVkLWxpbmUtdGlueS5wbmciIGFsdD0icmVkIGxpbmUgdGlueSIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPjwvc3Bhbj48YSBocmVmPSI\/cGF0aD0vbmV1ZnMvRm9yZC1FX1RyYW5zaXRfQ2FyZ29fVmFuLTIwMjYuaHRtbCIgY2xhc3M9Iml0ZW0td3JhcCI+RSBUcmFuc2l0IGZvdXJnb25uZXR0ZSB1dGlsaXRhaXJlIDIwMjY8L2E+PC9saT4KPGxpIGRhdGEtaWQ9IjE4MTg2MDkyOTgiIGlkPSJNYWluTWVudV82YTJlYjFhNGM5MDg0IiBjbGFzcz0iaGFzSW1nIiBkYXRhLW1vZGVsaWQ9Ijc3NzQ4Ij48YSBocmVmPSI\/cGF0aD0vbmV1ZnMvRm9yZC1FX1RyYW5zaXRfQ2FyZ29fVmFuLTIwMjcuaHRtbCIgY2xhc3M9Iml0ZW0td3JhcCBpbWdMaW5rIj48aW1nIGFsdD0iRSBUcmFuc2l0IGZvdXJnb25uZXR0ZSB1dGlsaXRhaXJlIDIwMjciIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL0ZvcmQvRV9UcmFuc2l0IENhcmdvIFZhbi8yMDI3L1QvNDg2MjcxL0JsdWUvcHJvZmlsZS5wbmc\/Y2I9NmEyZWIxOTI3OGZmNCIgZXJyb3JpbWc9Ii8vaW1nLmQyY21lZGlhLmNhL2Nhcm1ha2VzL2ZvcmRfYy5wbmciIHRpdGxlPSJFIFRyYW5zaXQgZm91cmdvbm5ldHRlIHV0aWxpdGFpcmUgMjAyNyIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPjwvYT48c3BhbiBjbGFzcz0icHJpY2UiPjxzcGFuIGNsYXNzPSJwcmljZV90ZXh0Ij7DoCBwYXJ0aXIgZGU8L3NwYW4+PHNwYW4gY2xhc3M9InByaWNlX2FtdCI+NzcgMTk1ICQ8L3NwYW4+PGltZyBjbGFzcz0icHJpY2Utc2NyYXRjaCBsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJsZWZvcmQuY29tLy9pbWFnZXMvcmVkLWxpbmUtdGlueS5wbmciIGFsdD0icmVkIGxpbmUgdGlueSIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPjwvc3Bhbj48YSBocmVmPSI\/cGF0aD0vbmV1ZnMvRm9yZC1FX1RyYW5zaXRfQ2FyZ29fVmFuLTIwMjcuaHRtbCIgY2xhc3M9Iml0ZW0td3JhcCI+RSBUcmFuc2l0IGZvdXJnb25uZXR0ZSB1dGlsaXRhaXJlIDIwMjc8L2E+PC9saT4KPGxpIGRhdGEtaWQ9IjQwMjc0NzI2MTEiIGlkPSJNYWluTWVudV82YTJlYjFhNGM5MDg5IiBjbGFzcz0iaGFzSW1nIiBkYXRhLW1vZGVsaWQ9IjcyMzQ5Ij48YSBocmVmPSI\/cGF0aD0vbmV1ZnMvRm9yZC1FX1RyYW5zaXRfQ2hhc3Npcy0yMDI2Lmh0bWwiIGNsYXNzPSJpbWdMaW5rIGlzQm9sZCAiIGRhdGEtbWVudS10cmFuc2xhdGU9IjQwMjc0NzI2MTEiPjxpbWcgYWx0PSJFLVRyYW5zaXQgY2jDonNzaXMgMjAyNiIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvRm9yZC9FX1RyYW5zaXQgQ2hhc3Npcy8yMDI2L1QvNDc4NTk2L0JsdWUvcHJvZmlsZS5wbmc\/Y2I9NmEyZWIxOTI3OGZmNCIgZXJyb3JpbWc9Ii8vaW1nLmQyY21lZGlhLmNhL2Nhcm1ha2VzL2ZvcmRfYy5wbmciIHRpdGxlPSJFLVRyYW5zaXQgY2jDonNzaXMgMjAyNiIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPjwvYT48c3BhbiBjbGFzcz0icHJpY2UiPjxzcGFuIGNsYXNzPSJwcmljZV90ZXh0Ij7DoCBwYXJ0aXIgZGU8L3NwYW4+PHNwYW4gY2xhc3M9InByaWNlX2FtdCI+NzIgODQ1ICQ8L3NwYW4+PGltZyBjbGFzcz0icHJpY2Utc2NyYXRjaCBsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJsZWZvcmQuY29tLy9pbWFnZXMvcmVkLWxpbmUtdGlueS5wbmciIGFsdD0icmVkIGxpbmUgdGlueSIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPjwvc3Bhbj48YSBocmVmPSI\/cGF0aD0vbmV1ZnMvRm9yZC1FX1RyYW5zaXRfQ2hhc3Npcy0yMDI2Lmh0bWwiIGRhdGEtbWVudS10cmFuc2xhdGU9IjQwMjc0NzI2MTEiPkUtVHJhbnNpdCBjaMOic3NpcyAyMDI2PC9hPjwvbGk+CjxsaSBkYXRhLWlkPSIyMzE2NDgxMTU4IiBpZD0iTWFpbk1lbnVfNmEyZWIxYTRjOTA4ZSIgY2xhc3M9Imhhc0ltZyIgZGF0YS1tb2RlbGlkPSI3NzcyMCI+PGEgaHJlZj0iP3BhdGg9L25ldWZzL0ZvcmQtRV9UcmFuc2l0X0NoYXNzaXMtMjAyNy5odG1sIiBjbGFzcz0iaW1nTGluayBpc0JvbGQgIiBkYXRhLW1lbnUtdHJhbnNsYXRlPSIyMzE2NDgxMTU4Ij48aW1nIGFsdD0iRS1UcmFuc2l0IGNow6Jzc2lzIDIwMjciIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL0ZvcmQvRV9UcmFuc2l0IENoYXNzaXMvMjAyNy9ULzQ4NTgzNi9CbHVlL3Byb2ZpbGUucG5nP2NiPTZhMmViMTkyNzhmZjQiIGVycm9yaW1nPSIvL2ltZy5kMmNtZWRpYS5jYS9jYXJtYWtlcy9mb3JkX2MucG5nIiB0aXRsZT0iRS1UcmFuc2l0IGNow6Jzc2lzIDIwMjciIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj48L2E+PHNwYW4gY2xhc3M9InByaWNlIj48c3BhbiBjbGFzcz0icHJpY2VfdGV4dCI+w6AgcGFydGlyIGRlPC9zcGFuPjxzcGFuIGNsYXNzPSJwcmljZV9hbXQiPjcyIDk0NSAkPC9zcGFuPjxpbWcgY2xhc3M9InByaWNlLXNjcmF0Y2ggbGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FybGVmb3JkLmNvbS8vaW1hZ2VzL3JlZC1saW5lLXRpbnkucG5nIiBhbHQ9InJlZCBsaW5lIHRpbnkiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj48L3NwYW4+PGEgaHJlZj0iP3BhdGg9L25ldWZzL0ZvcmQtRV9UcmFuc2l0X0NoYXNzaXMtMjAyNy5odG1sIiBkYXRhLW1lbnUtdHJhbnNsYXRlPSIyMzE2NDgxMTU4Ij5FLVRyYW5zaXQgY2jDonNzaXMgMjAyNzwvYT48L2xpPgo8bGkgZGF0YS1pZD0iMTU1MDQ4MjQ5OSIgaWQ9Ik1haW5NZW51XzZhMmViMWE0YzkwOTIiIGNsYXNzPSJoYXNJbWciIGRhdGEtbW9kZWxpZD0iNzIzNTAiPjxhIGhyZWY9Ij9wYXRoPS9uZXVmcy9Gb3JkLUVfVHJhbnNpdF9DdXRhd2F5LTIwMjYuaHRtbCIgY2xhc3M9ImltZ0xpbmsgaXNCb2xkICIgZGF0YS1tZW51LXRyYW5zbGF0ZT0iMTU1MDQ4MjQ5OSI+PGltZyBhbHQ9IkUtVHJhbnNpdCBmb3VyZ29uIHRyb25xdcOpIDIwMjYiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL0ZvcmQvRV9UcmFuc2l0IEN1dGF3YXkvMjAyNi9ULzQ3ODU5OC9CbHVlL3Byb2ZpbGUucG5nP2NiPTZhMmViMTkyNzhmZjQiIGVycm9yaW1nPSIvL2ltZy5kMmNtZWRpYS5jYS9jYXJtYWtlcy9mb3JkX2MucG5nIiB0aXRsZT0iRS1UcmFuc2l0IGZvdXJnb24gdHJvbnF1w6kgMjAyNiIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPjwvYT48c3BhbiBjbGFzcz0icHJpY2UiPjxzcGFuIGNsYXNzPSJwcmljZV90ZXh0Ij7DoCBwYXJ0aXIgZGU8L3NwYW4+PHNwYW4gY2xhc3M9InByaWNlX2FtdCI+NzIgMDQ1ICQ8L3NwYW4+PGltZyBjbGFzcz0icHJpY2Utc2NyYXRjaCBsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJsZWZvcmQuY29tLy9pbWFnZXMvcmVkLWxpbmUtdGlueS5wbmciIGFsdD0icmVkIGxpbmUgdGlueSIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPjwvc3Bhbj48YSBocmVmPSI\/cGF0aD0vbmV1ZnMvRm9yZC1FX1RyYW5zaXRfQ3V0YXdheS0yMDI2Lmh0bWwiIGRhdGEtbWVudS10cmFuc2xhdGU9IjE1NTA0ODI0OTkiPkUtVHJhbnNpdCBmb3VyZ29uIHRyb25xdcOpIDIwMjY8L2E+PC9saT4KPGxpIGRhdGEtaWQ9IjMzMTM1ODg3NjUiIGlkPSJNYWluTWVudV82YTJlYjFhNGM5MDk2IiBjbGFzcz0iaGFzSW1nIiBkYXRhLW1vZGVsaWQ9Ijc3NzIyIj48YSBocmVmPSI\/cGF0aD0vbmV1ZnMvRm9yZC1FX1RyYW5zaXRfQ3V0YXdheS0yMDI3Lmh0bWwiIGNsYXNzPSJpbWdMaW5rIGlzQm9sZCAiIGRhdGEtbWVudS10cmFuc2xhdGU9IjMzMTM1ODg3NjUiPjxpbWcgYWx0PSJFLVRyYW5zaXQgZm91cmdvbiB0cm9ucXXDqSAyMDI3IiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9Gb3JkL0VfVHJhbnNpdCBDdXRhd2F5LzIwMjcvVC80ODU4NDgvQmx1ZS9wcm9maWxlLnBuZz9jYj02YTJlYjE5Mjc4ZmY0IiBlcnJvcmltZz0iLy9pbWcuZDJjbWVkaWEuY2EvY2FybWFrZXMvZm9yZF9jLnBuZyIgdGl0bGU9IkUtVHJhbnNpdCBmb3VyZ29uIHRyb25xdcOpIDIwMjciIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj48L2E+PHNwYW4gY2xhc3M9InByaWNlIj48c3BhbiBjbGFzcz0icHJpY2VfdGV4dCI+w6AgcGFydGlyIGRlPC9zcGFuPjxzcGFuIGNsYXNzPSJwcmljZV9hbXQiPjcyIDE0NSAkPC9zcGFuPjxpbWcgY2xhc3M9InByaWNlLXNjcmF0Y2ggbGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FybGVmb3JkLmNvbS8vaW1hZ2VzL3JlZC1saW5lLXRpbnkucG5nIiBhbHQ9InJlZCBsaW5lIHRpbnkiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj48L3NwYW4+PGEgaHJlZj0iP3BhdGg9L25ldWZzL0ZvcmQtRV9UcmFuc2l0X0N1dGF3YXktMjAyNy5odG1sIiBkYXRhLW1lbnUtdHJhbnNsYXRlPSIzMzEzNTg4NzY1Ij5FLVRyYW5zaXQgZm91cmdvbiB0cm9ucXXDqSAyMDI3PC9hPjwvbGk+CjxsaSBkYXRhLWlkPSIxMjExMDM0MDM5IiBpZD0iTWFpbk1lbnVfNmEyZWIxYTRjOTA5YSIgY2xhc3M9Imhhc0ltZyIgZGF0YS1tb2RlbGlkPSI3MjIwOCI+PGEgaHJlZj0iP3BhdGg9L25ldWZzL0ZvcmQtU3VwZXJfRHV0eV9GXzQ1MF9EUlctMjAyNi5odG1sIiBjbGFzcz0iaW1nTGluayBpc0JvbGQgIj48aW1nIGFsdD0iU3VwZXIgRHV0eSBGLTQ1MCBEUlcgMjAyNiIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvRm9yZC9TdXBlciBEdXR5IEZfNDUwIERSVy8yMDI2L1QvNDc3OTIzL1JlZC9wcm9maWxlLnBuZz9jYj02YTJlYjE5Mjc4ZmY0IiBlcnJvcmltZz0iLy9pbWcuZDJjbWVkaWEuY2EvY2FybWFrZXMvZm9yZF9jLnBuZyIgdGl0bGU9IlN1cGVyIER1dHkgRi00NTAgRFJXIDIwMjYiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj48L2E+PHNwYW4gY2xhc3M9InByaWNlIj48c3BhbiBjbGFzcz0icHJpY2VfdGV4dCI+w6AgcGFydGlyIGRlPC9zcGFuPjxzcGFuIGNsYXNzPSJwcmljZV9hbXQiPjcxIDIxMCAkPC9zcGFuPjxpbWcgY2xhc3M9InByaWNlLXNjcmF0Y2ggbGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FybGVmb3JkLmNvbS8vaW1hZ2VzL3JlZC1saW5lLXRpbnkucG5nIiBhbHQ9InJlZCBsaW5lIHRpbnkiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj48L3NwYW4+PGEgaHJlZj0iP3BhdGg9L25ldWZzL0ZvcmQtU3VwZXJfRHV0eV9GXzQ1MF9EUlctMjAyNi5odG1sIj5TdXBlciBEdXR5IEYtNDUwIERSVyAyMDI2PC9hPjwvbGk+CjxsaSBkYXRhLWlkPSIyNzAwMDc0MzMyIiBpZD0iTWFpbk1lbnVfNmEyZWIxYTRjOTA5ZSIgY2xhc3M9Imhhc0ltZyIgZGF0YS1tb2RlbGlkPSI3NzczNyI+PGEgaHJlZj0iP3BhdGg9L25ldWZzL0ZvcmQtU3VwZXJfRHV0eV9GXzQ1MF9EUlctMjAyNy5odG1sIiBjbGFzcz0iaW1nTGluayBpc0JvbGQgIj48aW1nIGFsdD0iU3VwZXIgRHV0eSBGLTQ1MCBEUlcgMjAyNyIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvRm9yZC9TdXBlciBEdXR5IEZfNDUwIERSVy8yMDI3L1QvNDg2MDMyL0JsdWUvcHJvZmlsZS5wbmc\/Y2I9NmEyZWIxOTI3OGZmNCIgZXJyb3JpbWc9Ii8vaW1nLmQyY21lZGlhLmNhL2Nhcm1ha2VzL2ZvcmRfYy5wbmciIHRpdGxlPSJTdXBlciBEdXR5IEYtNDUwIERSVyAyMDI3IiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+PC9hPjxzcGFuIGNsYXNzPSJwcmljZSI+PHNwYW4gY2xhc3M9InByaWNlX3RleHQiPsOgIHBhcnRpciBkZTwvc3Bhbj48c3BhbiBjbGFzcz0icHJpY2VfYW10Ij43MSAyMTAgJDwvc3Bhbj48aW1nIGNsYXNzPSJwcmljZS1zY3JhdGNoIGxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmxlZm9yZC5jb20vL2ltYWdlcy9yZWQtbGluZS10aW55LnBuZyIgYWx0PSJyZWQgbGluZSB0aW55IiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+PC9zcGFuPjxhIGhyZWY9Ij9wYXRoPS9uZXVmcy9Gb3JkLVN1cGVyX0R1dHlfRl80NTBfRFJXLTIwMjcuaHRtbCI+U3VwZXIgRHV0eSBGLTQ1MCBEUlcgMjAyNzwvYT48L2xpPgo8bGkgZGF0YS1pZD0iMzUzNDQ3MjkwNSIgaWQ9Ik1haW5NZW51XzZhMmViMWE0YzkwYTIiIGNsYXNzPSJoYXNJbWciIGRhdGEtbW9kZWxpZD0iNzIyMjMiPjxhIGhyZWY9Ij9wYXRoPS9uZXVmcy9Gb3JkLVN1cGVyX0R1dHlfRl81NTBfRFJXLTIwMjYuaHRtbCIgY2xhc3M9ImltZ0xpbmsgaXNCb2xkICI+PGltZyBhbHQ9IlN1cGVyIER1dHkgRi01NTAgRFJXIDIwMjYiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL0ZvcmQvU3VwZXIgRHV0eSBGXzU1MCBEUlcvMjAyNi9ULzQ3Nzk2MC9HcmF5L3Byb2ZpbGUucG5nP2NiPTZhMmViMTkyNzhmZjQiIGVycm9yaW1nPSIvL2ltZy5kMmNtZWRpYS5jYS9jYXJtYWtlcy9mb3JkX2MucG5nIiB0aXRsZT0iU3VwZXIgRHV0eSBGLTU1MCBEUlcgMjAyNiIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPjwvYT48c3BhbiBjbGFzcz0icHJpY2UiPjxzcGFuIGNsYXNzPSJwcmljZV90ZXh0Ij7DoCBwYXJ0aXIgZGU8L3NwYW4+PHNwYW4gY2xhc3M9InByaWNlX2FtdCI+NzMgNDEwICQ8L3NwYW4+PGltZyBjbGFzcz0icHJpY2Utc2NyYXRjaCBsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJsZWZvcmQuY29tLy9pbWFnZXMvcmVkLWxpbmUtdGlueS5wbmciIGFsdD0icmVkIGxpbmUgdGlueSIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPjwvc3Bhbj48YSBocmVmPSI\/cGF0aD0vbmV1ZnMvRm9yZC1TdXBlcl9EdXR5X0ZfNTUwX0RSVy0yMDI2Lmh0bWwiPlN1cGVyIER1dHkgRi01NTAgRFJXIDIwMjY8L2E+PC9saT4KPGxpIGRhdGEtaWQ9Ijk4MDA4NzMzMCIgaWQ9Ik1haW5NZW51XzZhMmViMWE0YzkwYTYiIGNsYXNzPSJoYXNJbWciIGRhdGEtbW9kZWxpZD0iNzc3NTciPjxhIGhyZWY9Ij9wYXRoPS9uZXVmcy9Gb3JkLVN1cGVyX0R1dHlfRl81NTBfRFJXLTIwMjcuaHRtbCIgY2xhc3M9ImltZ0xpbmsgaXNCb2xkICI+PGltZyBhbHQ9IlN1cGVyIER1dHkgRi01NTAgRFJXIDIwMjciIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL0ZvcmQvU3VwZXIgRHV0eSBGXzU1MCBEUlcvMjAyNy9ULzQ4NjQzNy9CbHVlL3Byb2ZpbGUucG5nP2NiPTZhMmViMTkyNzhmZjQiIGVycm9yaW1nPSIvL2ltZy5kMmNtZWRpYS5jYS9jYXJtYWtlcy9mb3JkX2MucG5nIiB0aXRsZT0iU3VwZXIgRHV0eSBGLTU1MCBEUlcgMjAyNyIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPjwvYT48c3BhbiBjbGFzcz0icHJpY2UiPjxzcGFuIGNsYXNzPSJwcmljZV90ZXh0Ij7DoCBwYXJ0aXIgZGU8L3NwYW4+PHNwYW4gY2xhc3M9InByaWNlX2FtdCI+NzQgMTYwICQ8L3NwYW4+PGltZyBjbGFzcz0icHJpY2Utc2NyYXRjaCBsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJsZWZvcmQuY29tLy9pbWFnZXMvcmVkLWxpbmUtdGlueS5wbmciIGFsdD0icmVkIGxpbmUgdGlueSIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPjwvc3Bhbj48YSBocmVmPSI\/cGF0aD0vbmV1ZnMvRm9yZC1TdXBlcl9EdXR5X0ZfNTUwX0RSVy0yMDI3Lmh0bWwiPlN1cGVyIER1dHkgRi01NTAgRFJXIDIwMjc8L2E+PC9saT4KPGxpIGRhdGEtaWQ9IjI2NjY4ODA1NzQiIGlkPSJNYWluTWVudV82YTJlYjFhNGM5MGFhIiBjbGFzcz0iaGFzSW1nIiBkYXRhLW1vZGVsaWQ9IjcyMzAyIj48YSBocmVmPSI\/cGF0aD0vbmV1ZnMvRm9yZC1TdXBlcl9EdXR5X0ZfNjAwX0RSVy0yMDI2Lmh0bWwiIGNsYXNzPSJpbWdMaW5rIGlzQm9sZCAiPjxpbWcgYWx0PSJTdXBlciBEdXR5IEYtNjAwIFJBUkogMjAyNiIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvRm9yZC9TdXBlciBEdXR5IEZfNjAwIERSVy8yMDI2L1QvNDc4MTE2L0JsdWUvcHJvZmlsZS5wbmc\/Y2I9NmEyZWIxOTI3OGZmNCIgZXJyb3JpbWc9Ii8vaW1nLmQyY21lZGlhLmNhL2Nhcm1ha2VzL2ZvcmRfYy5wbmciIHRpdGxlPSJTdXBlciBEdXR5IEYtNjAwIFJBUkogMjAyNiIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPjwvYT48c3BhbiBjbGFzcz0icHJpY2UiPjxzcGFuIGNsYXNzPSJwcmljZV90ZXh0Ij7DoCBwYXJ0aXIgZGU8L3NwYW4+PHNwYW4gY2xhc3M9InByaWNlX2FtdCI+ODkgMjgwICQ8L3NwYW4+PGltZyBjbGFzcz0icHJpY2Utc2NyYXRjaCBsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJsZWZvcmQuY29tLy9pbWFnZXMvcmVkLWxpbmUtdGlueS5wbmciIGFsdD0icmVkIGxpbmUgdGlueSIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPjwvc3Bhbj48YSBocmVmPSI\/cGF0aD0vbmV1ZnMvRm9yZC1TdXBlcl9EdXR5X0ZfNjAwX0RSVy0yMDI2Lmh0bWwiPlN1cGVyIER1dHkgRi02MDAgUkFSSiAyMDI2PC9hPjwvbGk+CjxsaSBkYXRhLWlkPSI5NDIxNjU2ODQiIGlkPSJNYWluTWVudV82YTJlYjFhNGM5MGFlIiBjbGFzcz0iaGFzSW1nIiBkYXRhLW1vZGVsaWQ9IjY0MjAxIj48YSBocmVmPSI\/cGF0aD0vbmV1ZnMvRm9yZC1FX1Nlcmllc19TdHJpcHBlZF9DaGFzc2lzLTIwMjYuaHRtbCIgY2xhc3M9ImltZ0xpbmsgaXNCb2xkICIgZGF0YS1tZW51LXRyYW5zbGF0ZT0iOTQyMTY1Njg0Ij48aW1nIGFsdD0iU8OpcmllIEUgY2jDonNzaXMgbnUgMjAyNiIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvRm9yZC9FX1NlcmllcyBTdHJpcHBlZCBDaGFzc2lzLzIwMjYvVC80NjY3ODMvQmx1ZS9wcm9maWxlLnBuZz9jYj02YTJlYjE5Mjc4ZmY0IiBlcnJvcmltZz0iLy9pbWcuZDJjbWVkaWEuY2EvY2FybWFrZXMvZm9yZF9jLnBuZyIgdGl0bGU9IlPDqXJpZSBFIGNow6Jzc2lzIG51IDIwMjYiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj48L2E+PHNwYW4gY2xhc3M9InByaWNlIj48c3BhbiBjbGFzcz0icHJpY2VfdGV4dCI+w6AgcGFydGlyIGRlPC9zcGFuPjxzcGFuIGNsYXNzPSJwcmljZV9hbXQiPjQ4IDYzNSAkPC9zcGFuPjxpbWcgY2xhc3M9InByaWNlLXNjcmF0Y2ggbGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FybGVmb3JkLmNvbS8vaW1hZ2VzL3JlZC1saW5lLXRpbnkucG5nIiBhbHQ9InJlZCBsaW5lIHRpbnkiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj48L3NwYW4+PGEgaHJlZj0iP3BhdGg9L25ldWZzL0ZvcmQtRV9TZXJpZXNfU3RyaXBwZWRfQ2hhc3Npcy0yMDI2Lmh0bWwiIGRhdGEtbWVudS10cmFuc2xhdGU9Ijk0MjE2NTY4NCI+U8OpcmllIEUgY2jDonNzaXMgbnUgMjAyNjwvYT48L2xpPgo8bGkgZGF0YS1pZD0iNDk5MzQ0NDA5IiBpZD0iTWFpbk1lbnVfNmEyZWIxYTRjOTBiMyIgY2xhc3M9Imhhc0ltZyIgZGF0YS1tb2RlbGlkPSI2NDIwMCI+PGEgaHJlZj0iP3BhdGg9L25ldWZzL0ZvcmQtRV9TZXJpZXNfQ3V0YXdheS0yMDI2Lmh0bWwiIGNsYXNzPSJpbWdMaW5rIGlzQm9sZCAiIGRhdGEtbWVudS10cmFuc2xhdGU9IjQ5OTM0NDQwOSI+PGltZyBhbHQ9IlPDqXJpZSBFIHRyb25xdcOpIDIwMjYiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL0ZvcmQvRV9TZXJpZXMgQ3V0YXdheS8yMDI2L1QvNDY2Nzc5L0JsdWUvcHJvZmlsZS5wbmc\/Y2I9NmEyZWIxOTI3OGZmNCIgZXJyb3JpbWc9Ii8vaW1nLmQyY21lZGlhLmNhL2Nhcm1ha2VzL2ZvcmRfYy5wbmciIHRpdGxlPSJTw6lyaWUgRSB0cm9ucXXDqSAyMDI2IiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+PC9hPjxzcGFuIGNsYXNzPSJwcmljZSI+PHNwYW4gY2xhc3M9InByaWNlX3RleHQiPsOgIHBhcnRpciBkZTwvc3Bhbj48c3BhbiBjbGFzcz0icHJpY2VfYW10Ij41MiAwODAgJDwvc3Bhbj48aW1nIGNsYXNzPSJwcmljZS1zY3JhdGNoIGxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmxlZm9yZC5jb20vL2ltYWdlcy9yZWQtbGluZS10aW55LnBuZyIgYWx0PSJyZWQgbGluZSB0aW55IiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+PC9zcGFuPjxhIGhyZWY9Ij9wYXRoPS9uZXVmcy9Gb3JkLUVfU2VyaWVzX0N1dGF3YXktMjAyNi5odG1sIiBkYXRhLW1lbnUtdHJhbnNsYXRlPSI0OTkzNDQ0MDkiPlPDqXJpZSBFIHRyb25xdcOpIDIwMjY8L2E+PC9saT4KPGxpIGRhdGEtaWQ9IjE3ODM5MDk5MTMiIGlkPSJNYWluTWVudV82YTJlYjFhNGM5MGI3IiBjbGFzcz0iaGFzSW1nIiBkYXRhLW1vZGVsaWQ9Ijc0MzE0Ij48YSBocmVmPSI\/cGF0aD0vbmV1ZnMvRm9yZC1FX1Nlcmllc19DdXRhd2F5LTIwMjcuaHRtbCIgY2xhc3M9ImltZ0xpbmsgaXNCb2xkICIgZGF0YS1tZW51LXRyYW5zbGF0ZT0iMTc4MzkwOTkxMyI+PGltZyBhbHQ9IlPDqXJpZSBFIHRyb25xdcOpIDIwMjciIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL0ZvcmQvRV9TZXJpZXMgQ3V0YXdheS8yMDI3L1QvNDgxOTE5L0JsdWUvcHJvZmlsZS5wbmc\/Y2I9NmEyZWIxOTI3OGZmNCIgZXJyb3JpbWc9Ii8vaW1nLmQyY21lZGlhLmNhL2Nhcm1ha2VzL2ZvcmRfYy5wbmciIHRpdGxlPSJTw6lyaWUgRSB0cm9ucXXDqSAyMDI3IiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+PC9hPjxzcGFuIGNsYXNzPSJwcmljZSI+PHNwYW4gY2xhc3M9InByaWNlX3RleHQiPsOgIHBhcnRpciBkZTwvc3Bhbj48c3BhbiBjbGFzcz0icHJpY2VfYW10Ij41MiAwODAgJDwvc3Bhbj48aW1nIGNsYXNzPSJwcmljZS1zY3JhdGNoIGxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmxlZm9yZC5jb20vL2ltYWdlcy9yZWQtbGluZS10aW55LnBuZyIgYWx0PSJyZWQgbGluZSB0aW55IiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+PC9zcGFuPjxhIGhyZWY9Ij9wYXRoPS9uZXVmcy9Gb3JkLUVfU2VyaWVzX0N1dGF3YXktMjAyNy5odG1sIiBkYXRhLW1lbnUtdHJhbnNsYXRlPSIxNzgzOTA5OTEzIj5Tw6lyaWUgRSB0cm9ucXXDqSAyMDI3PC9hPjwvbGk+CjxsaSBkYXRhLWlkPSI0MTc0NDkxMjI0IiBpZD0iTWFpbk1lbnVfNmEyZWIxYTRjOTBiYSIgY2xhc3M9Imhhc0ltZyIgZGF0YS1tb2RlbGlkPSI3MjY5OCI+PGEgaHJlZj0iP3BhdGg9L25ldWZzL0ZvcmQtVHJhbnNpdF9DdXRhd2F5LTIwMjYuaHRtbCIgY2xhc3M9ImltZ0xpbmsgaXNCb2xkICIgZGF0YS1tZW51LXRyYW5zbGF0ZT0iNDE3NDQ5MTIyNCI+PGltZyBhbHQ9IlRyYW5zaXQgZm91cmdvbiB0cm9ucXXDqSAyMDI2IiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9Gb3JkL1RyYW5zaXQgQ3V0YXdheS8yMDI2L1QvNDc5Mzk3L0JsdWUvcHJvZmlsZS5wbmc\/Y2I9NmEyZWIxOTI3OGZmNCIgZXJyb3JpbWc9Ii8vaW1nLmQyY21lZGlhLmNhL2Nhcm1ha2VzL2ZvcmRfYy5wbmciIHRpdGxlPSJUcmFuc2l0IGZvdXJnb24gdHJvbnF1w6kgMjAyNiIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPjwvYT48c3BhbiBjbGFzcz0icHJpY2UiPjxzcGFuIGNsYXNzPSJwcmljZV90ZXh0Ij7DoCBwYXJ0aXIgZGU8L3NwYW4+PHNwYW4gY2xhc3M9InByaWNlX2FtdCI+NjAgNTQ1ICQ8L3NwYW4+PGltZyBjbGFzcz0icHJpY2Utc2NyYXRjaCBsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJsZWZvcmQuY29tLy9pbWFnZXMvcmVkLWxpbmUtdGlueS5wbmciIGFsdD0icmVkIGxpbmUgdGlueSIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPjwvc3Bhbj48YSBocmVmPSI\/cGF0aD0vbmV1ZnMvRm9yZC1UcmFuc2l0X0N1dGF3YXktMjAyNi5odG1sIiBkYXRhLW1lbnUtdHJhbnNsYXRlPSI0MTc0NDkxMjI0Ij5UcmFuc2l0IGZvdXJnb24gdHJvbnF1w6kgMjAyNjwvYT48L2xpPgo8bGkgZGF0YS1pZD0iNzc3MjkxOTg1IiBpZD0iTWFpbk1lbnVfNmEyZWIxYTRjOTBiZiIgY2xhc3M9Imhhc0ltZyIgZGF0YS1tb2RlbGlkPSI3NzczNCI+PGEgaHJlZj0iP3BhdGg9L25ldWZzL0ZvcmQtVHJhbnNpdF9DdXRhd2F5LTIwMjcuaHRtbCIgY2xhc3M9ImltZ0xpbmsgaXNCb2xkICIgZGF0YS1tZW51LXRyYW5zbGF0ZT0iNzc3MjkxOTg1Ij48aW1nIGFsdD0iVHJhbnNpdCBmb3VyZ29uIHRyb25xdcOpIDIwMjciIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL0ZvcmQvVHJhbnNpdCBDdXRhd2F5LzIwMjcvVC80ODU5ODkvQmx1ZS9wcm9maWxlLnBuZz9jYj02YTJlYjE5Mjc4ZmY0IiBlcnJvcmltZz0iLy9pbWcuZDJjbWVkaWEuY2EvY2FybWFrZXMvZm9yZF9jLnBuZyIgdGl0bGU9IlRyYW5zaXQgZm91cmdvbiB0cm9ucXXDqSAyMDI3IiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+PC9hPjxzcGFuIGNsYXNzPSJwcmljZSI+PHNwYW4gY2xhc3M9InByaWNlX3RleHQiPsOgIHBhcnRpciBkZTwvc3Bhbj48c3BhbiBjbGFzcz0icHJpY2VfYW10Ij42MCA2NDUgJDwvc3Bhbj48aW1nIGNsYXNzPSJwcmljZS1zY3JhdGNoIGxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmxlZm9yZC5jb20vL2ltYWdlcy9yZWQtbGluZS10aW55LnBuZyIgYWx0PSJyZWQgbGluZSB0aW55IiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+PC9zcGFuPjxhIGhyZWY9Ij9wYXRoPS9uZXVmcy9Gb3JkLVRyYW5zaXRfQ3V0YXdheS0yMDI3Lmh0bWwiIGRhdGEtbWVudS10cmFuc2xhdGU9Ijc3NzI5MTk4NSI+VHJhbnNpdCBmb3VyZ29uIHRyb25xdcOpIDIwMjc8L2E+PC9saT4KPGxpIGRhdGEtaWQ9IjIyODQyMzE1NjUiIGlkPSJNYWluTWVudV82YTJlYjFhNGM5MGMzIiBjbGFzcz0iaGFzSW1nIiBkYXRhLW1vZGVsaWQ9IjcyMzM2Ij48YSBocmVmPSI\/cGF0aD0vbmV1ZnMvRm9yZC1UcmFuc2l0X0NhcmdvX1Zhbi0yMDI2Lmh0bWwiIGNsYXNzPSJpbWdMaW5rIGlzQm9sZCAiPjxpbWcgYWx0PSJUcmFuc2l0IGZvdXJnb24gdXRpbGl0YWlyZSAyMDI2IiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9Gb3JkL1RyYW5zaXQgQ2FyZ28gVmFuLzIwMjYvVC80Nzg1MDYvV2hpdGUvcHJvZmlsZS5wbmc\/Y2I9NmEyZWIxOTI3OGZmNCIgZXJyb3JpbWc9Ii8vaW1nLmQyY21lZGlhLmNhL2Nhcm1ha2VzL2ZvcmRfYy5wbmciIHRpdGxlPSJUcmFuc2l0IGZvdXJnb24gdXRpbGl0YWlyZSAyMDI2IiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+PC9hPjxzcGFuIGNsYXNzPSJwcmljZSI+PHNwYW4gY2xhc3M9InByaWNlX3RleHQiPsOgIHBhcnRpciBkZTwvc3Bhbj48c3BhbiBjbGFzcz0icHJpY2VfYW10Ij42MiA5OTUgJDwvc3Bhbj48aW1nIGNsYXNzPSJwcmljZS1zY3JhdGNoIGxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmxlZm9yZC5jb20vL2ltYWdlcy9yZWQtbGluZS10aW55LnBuZyIgYWx0PSJyZWQgbGluZSB0aW55IiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+PC9zcGFuPjxhIGhyZWY9Ij9wYXRoPS9uZXVmcy9Gb3JkLVRyYW5zaXRfQ2FyZ29fVmFuLTIwMjYuaHRtbCI+VHJhbnNpdCBmb3VyZ29uIHV0aWxpdGFpcmUgMjAyNjwvYT48L2xpPgo8bGkgZGF0YS1pZD0iMjU4Mjg5ODc3NiIgaWQ9Ik1haW5NZW51XzZhMmViMWE0YzkwYzciIGNsYXNzPSJoYXNJbWciIGRhdGEtbW9kZWxpZD0iNzIzNjAiPjxhIGhyZWY9Ij9wYXRoPS9uZXVmcy9Gb3JkLVRyYW5zaXRfUGFzc2VuZ2VyX1dhZ29uLTIwMjYuaHRtbCIgY2xhc3M9ImltZ0xpbmsgaXNCb2xkICI+PGltZyBhbHQ9IlRyYW5zaXQgdG91cmlzbWUgMjAyNiIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvRm9yZC9UcmFuc2l0IFBhc3NlbmdlciBXYWdvbi8yMDI2L1QvNDc4Njc4L0JsdWUvcHJvZmlsZS5wbmc\/Y2I9NmEyZWIxOTI3OGZmNCIgZXJyb3JpbWc9Ii8vaW1nLmQyY21lZGlhLmNhL2Nhcm1ha2VzL2ZvcmRfYy5wbmciIHRpdGxlPSJUcmFuc2l0IHRvdXJpc21lIDIwMjYiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj48L2E+PHNwYW4gY2xhc3M9InByaWNlIj48c3BhbiBjbGFzcz0icHJpY2VfdGV4dCI+w6AgcGFydGlyIGRlPC9zcGFuPjxzcGFuIGNsYXNzPSJwcmljZV9hbXQiPjc1IDM5NSAkPC9zcGFuPjxpbWcgY2xhc3M9InByaWNlLXNjcmF0Y2ggbGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FybGVmb3JkLmNvbS8vaW1hZ2VzL3JlZC1saW5lLXRpbnkucG5nIiBhbHQ9InJlZCBsaW5lIHRpbnkiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj48L3NwYW4+PGEgaHJlZj0iP3BhdGg9L25ldWZzL0ZvcmQtVHJhbnNpdF9QYXNzZW5nZXJfV2Fnb24tMjAyNi5odG1sIj5UcmFuc2l0IHRvdXJpc21lIDIwMjY8L2E+PC9saT4KPGxpIGRhdGEtaWQ9IjIxNzAzNjQ5MzIiIGlkPSJNYWluTWVudV82YTJlYjFhNGM5MGNiIiBjbGFzcz0ibGFzdEl0ZW0gaGFzSW1nIiBkYXRhLW1vZGVsaWQ9Ijc3NzQyIj48YSBocmVmPSI\/cGF0aD0vbmV1ZnMvRm9yZC1UcmFuc2l0X1Bhc3Nlbmdlcl9XYWdvbi0yMDI3Lmh0bWwiIGNsYXNzPSJpbWdMaW5rIGlzQm9sZCAiPjxpbWcgYWx0PSJUcmFuc2l0IHRvdXJpc21lIDIwMjciIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL0ZvcmQvVHJhbnNpdCBQYXNzZW5nZXIgV2Fnb24vMjAyNy9ULzQ4NjExNi9CbHVlL3Byb2ZpbGUucG5nP2NiPTZhMmViMTkyNzhmZjQiIGVycm9yaW1nPSIvL2ltZy5kMmNtZWRpYS5jYS9jYXJtYWtlcy9mb3JkX2MucG5nIiB0aXRsZT0iVHJhbnNpdCB0b3VyaXNtZSAyMDI3IiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+PC9hPjxzcGFuIGNsYXNzPSJwcmljZSI+PHNwYW4gY2xhc3M9InByaWNlX3RleHQiPsOgIHBhcnRpciBkZTwvc3Bhbj48c3BhbiBjbGFzcz0icHJpY2VfYW10Ij43NiAyNDUgJDwvc3Bhbj48aW1nIGNsYXNzPSJwcmljZS1zY3JhdGNoIGxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmxlZm9yZC5jb20vL2ltYWdlcy9yZWQtbGluZS10aW55LnBuZyIgYWx0PSJyZWQgbGluZSB0aW55IiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+PC9zcGFuPjxhIGhyZWY9Ij9wYXRoPS9uZXVmcy9Gb3JkLVRyYW5zaXRfUGFzc2VuZ2VyX1dhZ29uLTIwMjcuaHRtbCI+VHJhbnNpdCB0b3VyaXNtZSAyMDI3PC9hPjwvbGk+CjwvdWw+PC9saT4KPC91bD48L2xpPgo8bGkgZGF0YS1pZD0iY2NhMTJhNTUtMmY3My0zNmZhLWJiOTUtZSIgaWQ9Ik1haW5NZW51XzZhMmViMWE0YzkwZDMiPjxhIGhyZWY9Ij9wYXRoPS9tYWdhc2luLXRvdXQtZW4tdW4uaHRtbCI+Rm9yZCBQcm8gbWFnYXNpbiB0b3V0IGVuIHVuPC9hPjwvbGk+CjxsaSBkYXRhLWlkPSJlZDkwZmMyZC1jMjA4LTgwMjgtY2Y2OS04IiBpZD0iTWFpbk1lbnVfNmEyZWIxYTRjOTBkNiI+PGEgaHJlZj0iP3BhdGg9L2ludGVsbGlnZW5jZS1mb3JkLXByby1mci5odG1sIj5JbnRlbGxpZ2VuY2UgRm9yZCBQcm88L2E+PC9saT4KPGxpIGRhdGEtaWQ9IjJhMmI1MzYtY2FkMi1iMjBmLWNlZTgtNzciIGlkPSJNYWluTWVudV82YTJlYjFhNGM5MGQ5Ij48YSBocmVmPSI\/cGF0aD0vcmVjaGFyZ2UtZm9yZC1wcm8uaHRtbCI+U29sdXRpb25zIGRlIHJlY2hhcmdlIEZvcmQgUHJvPC9hPjwvbGk+CjxsaSBkYXRhLWlkPSI0NTA4Yzk3Ny1hMDZjLTg5NzQtODVjMC1lIiBpZD0iTWFpbk1lbnVfNmEyZWIxYTRjOTBkYyI+PGEgaHJlZj0iP3BhdGg9L2ZpbmFuY2VtZW50LWZvcmQtcHJvLmh0bWwiPkZpbmFuY2VtZW50IEZvcmQgUHJvPC9hPjwvbGk+CjxsaSBkYXRhLWlkPSJiNDI5ZDZhOS1kYjhkLTU3YjAtN2QzZC0xIiBpZD0iTWFpbk1lbnVfNmEyZWIxYTRjOTBkZiIgY2xhc3M9Imxhc3RJdGVtIj48YSBocmVmPSI\/cGF0aD0vc2VydmljZS1mb3JkLXByby1mci5odG1sIj5TZXJ2aWNlIEZvcmQgUHJvPC9hPjwvbGk+CjwvdWw+CjwvbGk+CjxsaSBkYXRhLWlkPSJORVciIGlkPSJNYWluTWVudV9ORVciIGNsYXNzPSJ0b3AgZmlyc3RNZW51IGhhc0l0ZW1zIGlzQm9sZCI+PGEgY2xhc3M9InRvcF9saW5rIGlzQm9sZCIgaHJlZj0iP3BhdGg9L25ldWZzL25vdXZlYXUuaHRtbCI+TmV1ZjwvYT48dWwgY2xhc3M9InN1YiI+CjxsaSBkYXRhLWlkPSJORVdJTlYiIGlkPSJNYWluTWVudV82YTJlYjFhNGM4ZTY3IiBjbGFzcz0iZmlyc3RJdGVtIj48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvaW52ZW50YWlyZS9yZWNoZXJjaGUuaHRtbCI+SW52ZW50YWlyZSBOZXVmICgzMzcpPC9hPjwvbGk+CjxsaSBkYXRhLWlkPSJORVdfQlVJTERQUklDRSIgaWQ9Ik1haW5NZW51XzZhMmViMWE0YzhlNmUiPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9jb25maWd1cmF0aW9uLWV0LXByaXgvY29uZmlndXJhdGlvbi5odG1sIj5Db25maWd1cmF0ZXVyPC9hPjwvbGk+CjxsaSBkYXRhLWlkPSJORVdfU0VEQU4iIGlkPSJNYWluTWVudV82YTJlYjFhNGM4ZThkIiBjbGFzcz0iaGFzU3ViIj48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvYXV0b3MuaHRtbCI+QXV0b3M8L2E+PHVsIGNsYXNzPSJzdWIiPjxsaSBkYXRhLWlkPSJORVdfU0VEQU5fRm9yZCIgaWQ9Ik1haW5NZW51XzZhMmViMWE0YzhlOGEiIGNsYXNzPSJmaXJzdEl0ZW0gbGFzdEl0ZW0gaGFzU3ViIGhhc0ltZyI+PHVsIGNsYXNzPSJzdWIiPjxsaSBkYXRhLWlkPSIyMTc3NDMwNjYiIGlkPSJNYWluTWVudV82YTJlYjFhNGM4ZTc3IiBjbGFzcz0iZmlyc3RJdGVtIGhhc0ltZyIgZGF0YS1tb2RlbGlkPSI2MDAxMiI+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0ZvcmQtTXVzdGFuZy0yMDI1Lmh0bWwiIGNsYXNzPSJpbWdMaW5rIGlzQm9sZCAiPjxpbWcgYWx0PSJNdXN0YW5nIDIwMjUiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL0ZvcmQvTXVzdGFuZy8yMDI1L1QvNDYxOTQ4L0JsdWUvcHJvZmlsZS5wbmc\/Y2I9NmEyZWIxOTI3OGZmNCIgZXJyb3JpbWc9Ii8vaW1nLmQyY21lZGlhLmNhL2Nhcm1ha2VzL2ZvcmRfYy5wbmciIHRpdGxlPSJNdXN0YW5nIDIwMjUiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj48L2E+PHNwYW4gY2xhc3M9InByaWNlIj48c3BhbiBjbGFzcz0icHJpY2VfdGV4dCI+w6AgcGFydGlyIGRlPC9zcGFuPjxzcGFuIGNsYXNzPSJwcmljZV9hbXQiPjQxIDMyNSAkPC9zcGFuPjxpbWcgY2xhc3M9InByaWNlLXNjcmF0Y2ggbGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FybGVmb3JkLmNvbS8vaW1hZ2VzL3JlZC1saW5lLXRpbnkucG5nIiBhbHQ9InJlZCBsaW5lIHRpbnkiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj48L3NwYW4+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0ZvcmQtTXVzdGFuZy0yMDI1Lmh0bWwiPk11c3RhbmcgMjAyNTwvYT48L2xpPgo8bGkgZGF0YS1pZD0iMjIyMzA5MDYwOCIgaWQ9Ik1haW5NZW51XzZhMmViMWE0YzhlODQiIGNsYXNzPSJsYXN0SXRlbSBoYXNJbWciIGRhdGEtbW9kZWxpZD0iNzI3MjEiPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9Gb3JkLU11c3RhbmctMjAyNi5odG1sIiBjbGFzcz0iaW1nTGluayBpc0JvbGQgIj48aW1nIGFsdD0iTXVzdGFuZyAyMDI2IiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9Gb3JkL011c3RhbmcvMjAyNi9ULzQ4Njc2MS9CbHVlL3Byb2ZpbGUucG5nP2NiPTZhMmViMTkyNzhmZjQiIGVycm9yaW1nPSIvL2ltZy5kMmNtZWRpYS5jYS9jYXJtYWtlcy9mb3JkX2MucG5nIiB0aXRsZT0iTXVzdGFuZyAyMDI2IiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+PC9hPjxzcGFuIGNsYXNzPSJwcmljZSI+PHNwYW4gY2xhc3M9InByaWNlX3RleHQiPsOgIHBhcnRpciBkZTwvc3Bhbj48c3BhbiBjbGFzcz0icHJpY2VfYW10Ij40MSAzMjUgJDwvc3Bhbj48aW1nIGNsYXNzPSJwcmljZS1zY3JhdGNoIGxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmxlZm9yZC5jb20vL2ltYWdlcy9yZWQtbGluZS10aW55LnBuZyIgYWx0PSJyZWQgbGluZSB0aW55IiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+PC9zcGFuPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9Gb3JkLU11c3RhbmctMjAyNi5odG1sIj5NdXN0YW5nIDIwMjY8L2E+PC9saT4KPC91bD48L2xpPgo8L3VsPjwvbGk+CjxsaSBkYXRhLWlkPSJkMjk4MmM1Mi1jM2NhLTQxZTUtYjE1Yy1jIiBpZD0iTWFpbk1lbnVfNmEyZWIxYTRjOGU5MSI+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L2RlbW9uc3RyYXRldXJzL3JlY2hlcmNoZS5odG1sIj5EZW1vbnN0cmF0ZXVyczwvYT48L2xpPgo8bGkgZGF0YS1pZD0iTkVXX1NVViIgaWQ9Ik1haW5NZW51XzZhMmViMWE0YzhlZWEiIGNsYXNzPSJoYXNTdWIiPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9WVVMuaHRtbCI+VlVTPC9hPjx1bCBjbGFzcz0ic3ViIj48bGkgZGF0YS1pZD0iTkVXX1NVVl9Gb3JkIiBpZD0iTWFpbk1lbnVfNmEyZWIxYTRjOGVlOCIgY2xhc3M9ImZpcnN0SXRlbSBsYXN0SXRlbSBoYXNTdWIgaGFzSW1nIj48dWwgY2xhc3M9InN1YiI+PGxpIGRhdGEtaWQ9IjE0MzA5NDQ5NyIgaWQ9Ik1haW5NZW51XzZhMmViMWE0YzhlOTYiIGNsYXNzPSJmaXJzdEl0ZW0gaGFzSW1nIiBkYXRhLW1vZGVsaWQ9IjY0MjAzIj48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvRm9yZC1Ccm9uY28tMjAyNS5odG1sIiBjbGFzcz0iaW1nTGluayBpc0JvbGQgIj48aW1nIGFsdD0iQnJvbmNvIDIwMjUiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL0ZvcmQvQnJvbmNvLzIwMjUvVC80NjY3ODkvQmx1ZS9wcm9maWxlLnBuZz9jYj02YTJlYjE5Mjc4ZmY0IiBlcnJvcmltZz0iLy9pbWcuZDJjbWVkaWEuY2EvY2FybWFrZXMvZm9yZF9jLnBuZyIgdGl0bGU9IkJyb25jbyAyMDI1IiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+PC9hPjxzcGFuIGNsYXNzPSJwcmljZSI+PHNwYW4gY2xhc3M9InByaWNlX3RleHQiPsOgIHBhcnRpciBkZTwvc3Bhbj48c3BhbiBjbGFzcz0icHJpY2VfYW10Ij41MSA3NjAgJDwvc3Bhbj48aW1nIGNsYXNzPSJwcmljZS1zY3JhdGNoIGxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmxlZm9yZC5jb20vL2ltYWdlcy9yZWQtbGluZS10aW55LnBuZyIgYWx0PSJyZWQgbGluZSB0aW55IiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+PC9zcGFuPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9Gb3JkLUJyb25jby0yMDI1Lmh0bWwiPkJyb25jbyAyMDI1PC9hPjwvbGk+CjxsaSBkYXRhLWlkPSIzMzc1MTY4NTc2IiBpZD0iTWFpbk1lbnVfNmEyZWIxYTRjOGU5YyIgY2xhc3M9Imhhc0ltZyIgZGF0YS1tb2RlbGlkPSI3NDI5OCI+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0ZvcmQtQnJvbmNvLTIwMjYuaHRtbCIgY2xhc3M9ImltZ0xpbmsgaXNCb2xkICI+PGltZyBhbHQ9IkJyb25jbyAyMDI2IiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9Gb3JkL0Jyb25jby8yMDI2L1QvNDgxODY4L0JsdWUvcHJvZmlsZS5wbmc\/Y2I9NmEyZWIxOTI3OGZmNCIgZXJyb3JpbWc9Ii8vaW1nLmQyY21lZGlhLmNhL2Nhcm1ha2VzL2ZvcmRfYy5wbmciIHRpdGxlPSJCcm9uY28gMjAyNiIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPjwvYT48c3BhbiBjbGFzcz0icHJpY2UiPjxzcGFuIGNsYXNzPSJwcmljZV90ZXh0Ij7DoCBwYXJ0aXIgZGU8L3NwYW4+PHNwYW4gY2xhc3M9InByaWNlX2FtdCI+NTQgMzYwICQ8L3NwYW4+PGltZyBjbGFzcz0icHJpY2Utc2NyYXRjaCBsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJsZWZvcmQuY29tLy9pbWFnZXMvcmVkLWxpbmUtdGlueS5wbmciIGFsdD0icmVkIGxpbmUgdGlueSIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPjwvc3Bhbj48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvRm9yZC1Ccm9uY28tMjAyNi5odG1sIj5Ccm9uY28gMjAyNjwvYT48L2xpPgo8bGkgZGF0YS1pZD0iMzE0ODI0Njg1NSIgaWQ9Ik1haW5NZW51XzZhMmViMWE0YzhlYTEiIGNsYXNzPSJoYXNJbWciIGRhdGEtbW9kZWxpZD0iNjE1OTkiPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9Gb3JkLUJyb25jb19TcG9ydC0yMDI1Lmh0bWwiIGNsYXNzPSJpbWdMaW5rIGlzQm9sZCAiPjxpbWcgYWx0PSJCcm9uY28gU3BvcnQgMjAyNSIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvRm9yZC9Ccm9uY28gU3BvcnQvMjAyNS9ULzQ2Mzg3MS9CbHVlL3Byb2ZpbGUucG5nP2NiPTZhMmViMTkyNzhmZjQiIGVycm9yaW1nPSIvL2ltZy5kMmNtZWRpYS5jYS9jYXJtYWtlcy9mb3JkX2MucG5nIiB0aXRsZT0iQnJvbmNvIFNwb3J0IDIwMjUiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj48L2E+PHNwYW4gY2xhc3M9InByaWNlIj48c3BhbiBjbGFzcz0icHJpY2VfdGV4dCI+w6AgcGFydGlyIGRlPC9zcGFuPjxzcGFuIGNsYXNzPSJwcmljZV9hbXQiPjQxIDE5MCAkPC9zcGFuPjxpbWcgY2xhc3M9InByaWNlLXNjcmF0Y2ggbGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FybGVmb3JkLmNvbS8vaW1hZ2VzL3JlZC1saW5lLXRpbnkucG5nIiBhbHQ9InJlZCBsaW5lIHRpbnkiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj48L3NwYW4+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0ZvcmQtQnJvbmNvX1Nwb3J0LTIwMjUuaHRtbCI+QnJvbmNvIFNwb3J0IDIwMjU8L2E+PC9saT4KPGxpIGRhdGEtaWQ9IjMzNjUyNDYzODAiIGlkPSJNYWluTWVudV82YTJlYjFhNGM4ZWE3IiBjbGFzcz0iaGFzSW1nIiBkYXRhLW1vZGVsaWQ9Ijc0MjAzIj48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvRm9yZC1Ccm9uY29fU3BvcnQtMjAyNi5odG1sIiBjbGFzcz0iaW1nTGluayBpc0JvbGQgIj48aW1nIGFsdD0iQnJvbmNvIFNwb3J0IDIwMjYiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL0ZvcmQvQnJvbmNvIFNwb3J0LzIwMjYvVC80ODE3ODEvQmx1ZS9wcm9maWxlLnBuZz9jYj02YTJlYjE5Mjc4ZmY0IiBlcnJvcmltZz0iLy9pbWcuZDJjbWVkaWEuY2EvY2FybWFrZXMvZm9yZF9jLnBuZyIgdGl0bGU9IkJyb25jbyBTcG9ydCAyMDI2IiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+PC9hPjxzcGFuIGNsYXNzPSJwcmljZSI+PHNwYW4gY2xhc3M9InByaWNlX3RleHQiPsOgIHBhcnRpciBkZTwvc3Bhbj48c3BhbiBjbGFzcz0icHJpY2VfYW10Ij40MSA3OTAgJDwvc3Bhbj48aW1nIGNsYXNzPSJwcmljZS1zY3JhdGNoIGxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmxlZm9yZC5jb20vL2ltYWdlcy9yZWQtbGluZS10aW55LnBuZyIgYWx0PSJyZWQgbGluZSB0aW55IiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+PC9zcGFuPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9Gb3JkLUJyb25jb19TcG9ydC0yMDI2Lmh0bWwiPkJyb25jbyBTcG9ydCAyMDI2PC9hPjwvbGk+CjxsaSBkYXRhLWlkPSIzMjU2NzkyOTgiIGlkPSJNYWluTWVudV82YTJlYjFhNGM4ZWFjIiBjbGFzcz0iaGFzSW1nIiBkYXRhLW1vZGVsaWQ9IjU5MzkyIj48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvRm9yZC1Fc2NhcGUtMjAyNS5odG1sIiBjbGFzcz0iaW1nTGluayBpc0JvbGQgIj48aW1nIGFsdD0iRXNjYXBlIDIwMjUiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL0ZvcmQvRXNjYXBlLzIwMjUvVC80NjEyMDgvQmx1ZS9wcm9maWxlLnBuZz9jYj02YTJlYjE5Mjc4ZmY0IiBlcnJvcmltZz0iLy9pbWcuZDJjbWVkaWEuY2EvY2FybWFrZXMvZm9yZF9jLnBuZyIgdGl0bGU9IkVzY2FwZSAyMDI1IiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+PC9hPjxzcGFuIGNsYXNzPSJwcmljZSI+PHNwYW4gY2xhc3M9InByaWNlX3RleHQiPsOgIHBhcnRpciBkZTwvc3Bhbj48c3BhbiBjbGFzcz0icHJpY2VfYW10Ij4zNSAyNDQgJDwvc3Bhbj48aW1nIGNsYXNzPSJwcmljZS1zY3JhdGNoIGxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmxlZm9yZC5jb20vL2ltYWdlcy9yZWQtbGluZS10aW55LnBuZyIgYWx0PSJyZWQgbGluZSB0aW55IiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+PC9zcGFuPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9Gb3JkLUVzY2FwZS0yMDI1Lmh0bWwiPkVzY2FwZSAyMDI1PC9hPjwvbGk+CjxsaSBkYXRhLWlkPSIzNTM1OTkyNDE5IiBpZD0iTWFpbk1lbnVfNmEyZWIxYTRjOGViMCIgY2xhc3M9Imhhc0ltZyIgZGF0YS1tb2RlbGlkPSI3MjM1NCI+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0ZvcmQtRXNjYXBlLTIwMjYuaHRtbCIgY2xhc3M9ImltZ0xpbmsgaXNCb2xkICI+PGltZyBhbHQ9IkVzY2FwZSAyMDI2IiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9Gb3JkL0VzY2FwZS8yMDI2L1QvNDc4ODMyL0JsdWUvcHJvZmlsZS5wbmc\/Y2I9NmEyZWIxOTI3OGZmNCIgZXJyb3JpbWc9Ii8vaW1nLmQyY21lZGlhLmNhL2Nhcm1ha2VzL2ZvcmRfYy5wbmciIHRpdGxlPSJFc2NhcGUgMjAyNiIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPjwvYT48c3BhbiBjbGFzcz0icHJpY2UiPjxzcGFuIGNsYXNzPSJwcmljZV90ZXh0Ij7DoCBwYXJ0aXIgZGU8L3NwYW4+PHNwYW4gY2xhc3M9InByaWNlX2FtdCI+MzUgODk0ICQ8L3NwYW4+PGltZyBjbGFzcz0icHJpY2Utc2NyYXRjaCBsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJsZWZvcmQuY29tLy9pbWFnZXMvcmVkLWxpbmUtdGlueS5wbmciIGFsdD0icmVkIGxpbmUgdGlueSIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPjwvc3Bhbj48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvRm9yZC1Fc2NhcGUtMjAyNi5odG1sIj5Fc2NhcGUgMjAyNjwvYT48L2xpPgo8bGkgZGF0YS1pZD0iMTE3MjA5MDk3NCIgaWQ9Ik1haW5NZW51XzZhMmViMWE0YzhlYjQiIGNsYXNzPSJoYXNJbWciIGRhdGEtbW9kZWxpZD0iNTkzOTIwMDAiPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9Gb3JkLUVzY2FwZV9IeWJyaWQtMjAyNS5odG1sIiBjbGFzcz0iaW1nTGluayBpc0JvbGQgIj48aW1nIGFsdD0iRXNjYXBlIEh5YnJpZGUgMjAyNSIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvRm9yZC9Fc2NhcGUgSHlicmlkLzIwMjUvVC80NjEyMTAvQmx1ZS9wcm9maWxlLnBuZz9jYj02YTJlYjE5Mjc4ZmY0IiBlcnJvcmltZz0iLy9pbWcuZDJjbWVkaWEuY2EvY2FybWFrZXMvZm9yZF9jLnBuZyIgdGl0bGU9IkVzY2FwZSBIeWJyaWRlIDIwMjUiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj48L2E+PHNwYW4gY2xhc3M9InByaWNlIj48c3BhbiBjbGFzcz0icHJpY2VfdGV4dCI+w6AgcGFydGlyIGRlPC9zcGFuPjxzcGFuIGNsYXNzPSJwcmljZV9hbXQiPjQ2IDM0NCAkPC9zcGFuPjxpbWcgY2xhc3M9InByaWNlLXNjcmF0Y2ggbGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FybGVmb3JkLmNvbS8vaW1hZ2VzL3JlZC1saW5lLXRpbnkucG5nIiBhbHQ9InJlZCBsaW5lIHRpbnkiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj48L3NwYW4+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0ZvcmQtRXNjYXBlX0h5YnJpZC0yMDI1Lmh0bWwiPkVzY2FwZSBIeWJyaWRlIDIwMjU8L2E+PC9saT4KPGxpIGRhdGEtaWQ9IjI2MjgxMjgzNTciIGlkPSJNYWluTWVudV82YTJlYjFhNGM4ZWI5IiBjbGFzcz0iaGFzSW1nIiBkYXRhLW1vZGVsaWQ9IjcyMzU0MDAwIj48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvRm9yZC1Fc2NhcGVfSHlicmlkLTIwMjYuaHRtbCIgY2xhc3M9ImltZ0xpbmsgaXNCb2xkICI+PGltZyBhbHQ9IkVzY2FwZSBIeWJyaWRlIDIwMjYiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL0ZvcmQvRXNjYXBlIEh5YnJpZC8yMDI2L1QvNDc4ODMwL0JsdWUvcHJvZmlsZS5wbmc\/Y2I9NmEyZWIxOTI3OGZmNCIgZXJyb3JpbWc9Ii8vaW1nLmQyY21lZGlhLmNhL2Nhcm1ha2VzL2ZvcmRfYy5wbmciIHRpdGxlPSJFc2NhcGUgSHlicmlkZSAyMDI2IiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+PC9hPjxzcGFuIGNsYXNzPSJwcmljZSI+PHNwYW4gY2xhc3M9InByaWNlX3RleHQiPsOgIHBhcnRpciBkZTwvc3Bhbj48c3BhbiBjbGFzcz0icHJpY2VfYW10Ij40NiA5OTQgJDwvc3Bhbj48aW1nIGNsYXNzPSJwcmljZS1zY3JhdGNoIGxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmxlZm9yZC5jb20vL2ltYWdlcy9yZWQtbGluZS10aW55LnBuZyIgYWx0PSJyZWQgbGluZSB0aW55IiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+PC9zcGFuPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9Gb3JkLUVzY2FwZV9IeWJyaWQtMjAyNi5odG1sIj5Fc2NhcGUgSHlicmlkZSAyMDI2PC9hPjwvbGk+CjxsaSBkYXRhLWlkPSIxNjAzMDEzNzEyIiBpZD0iTWFpbk1lbnVfNmEyZWIxYTRjOGViZCIgY2xhc3M9Imhhc0ltZyIgZGF0YS1tb2RlbGlkPSI1OTM5MjAwMSI+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0ZvcmQtRXNjYXBlX1BIRVYtMjAyNS5odG1sIiBjbGFzcz0iaW1nTGluayBpc0JvbGQgIj48aW1nIGFsdD0iRXNjYXBlIFZIUiAyMDI1IiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9Gb3JkL0VzY2FwZSBQSEVWLzIwMjUvVC80NjEyMDYvQmx1ZS9wcm9maWxlLnBuZz9jYj02YTJlYjE5Mjc4ZmY0IiBlcnJvcmltZz0iLy9pbWcuZDJjbWVkaWEuY2EvY2FybWFrZXMvZm9yZF9jLnBuZyIgdGl0bGU9IkVzY2FwZSBWSFIgMjAyNSIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPjwvYT48c3BhbiBjbGFzcz0icHJpY2UiPjxzcGFuIGNsYXNzPSJwcmljZV90ZXh0Ij7DoCBwYXJ0aXIgZGU8L3NwYW4+PHNwYW4gY2xhc3M9InByaWNlX2FtdCI+NDMgODk0ICQ8L3NwYW4+PGltZyBjbGFzcz0icHJpY2Utc2NyYXRjaCBsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJsZWZvcmQuY29tLy9pbWFnZXMvcmVkLWxpbmUtdGlueS5wbmciIGFsdD0icmVkIGxpbmUgdGlueSIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPjwvc3Bhbj48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvRm9yZC1Fc2NhcGVfUEhFVi0yMDI1Lmh0bWwiPkVzY2FwZSBWSFIgMjAyNTwvYT48L2xpPgo8bGkgZGF0YS1pZD0iMTMwNjEyOTEwNyIgaWQ9Ik1haW5NZW51XzZhMmViMWE0YzhlYzEiIGNsYXNzPSJoYXNJbWciIGRhdGEtbW9kZWxpZD0iNzIzNTQwMDEiPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9Gb3JkLUVzY2FwZV9QSEVWLTIwMjYuaHRtbCIgY2xhc3M9ImltZ0xpbmsgaXNCb2xkICI+PGltZyBhbHQ9IkVzY2FwZSBWSFIgMjAyNiIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvRm9yZC9Fc2NhcGUgUEhFVi8yMDI2L1QvNDc4ODM2L0JsdWUvcHJvZmlsZS5wbmc\/Y2I9NmEyZWIxOTI3OGZmNCIgZXJyb3JpbWc9Ii8vaW1nLmQyY21lZGlhLmNhL2Nhcm1ha2VzL2ZvcmRfYy5wbmciIHRpdGxlPSJFc2NhcGUgVkhSIDIwMjYiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj48L2E+PHNwYW4gY2xhc3M9InByaWNlIj48c3BhbiBjbGFzcz0icHJpY2VfdGV4dCI+w6AgcGFydGlyIGRlPC9zcGFuPjxzcGFuIGNsYXNzPSJwcmljZV9hbXQiPjQzIDk5NCAkPC9zcGFuPjxpbWcgY2xhc3M9InByaWNlLXNjcmF0Y2ggbGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FybGVmb3JkLmNvbS8vaW1hZ2VzL3JlZC1saW5lLXRpbnkucG5nIiBhbHQ9InJlZCBsaW5lIHRpbnkiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj48c3BhbiBjbGFzcz0icHJpY2VfcHJvbW8iPjQxIDM4NiAkPC9zcGFuPjwvc3Bhbj48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvRm9yZC1Fc2NhcGVfUEhFVi0yMDI2Lmh0bWwiPkVzY2FwZSBWSFIgMjAyNjwvYT48L2xpPgo8bGkgZGF0YS1pZD0iMjI5NTI0NzQ5IiBpZD0iTWFpbk1lbnVfNmEyZWIxYTRjOGVjNiIgY2xhc3M9Imhhc0ltZyIgZGF0YS1tb2RlbGlkPSI2NDM5OCI+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0ZvcmQtRXhwZWRpdGlvbi0yMDI1Lmh0bWwiIGNsYXNzPSJpbWdMaW5rIGlzQm9sZCAiPjxpbWcgYWx0PSJFeHBlZGl0aW9uIDIwMjUiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL0ZvcmQvRXhwZWRpdGlvbi8yMDI1L1QvNDY3MDY5L0JsdWUvcHJvZmlsZS5wbmc\/Y2I9NmEyZWIxOTI3OGZmNCIgZXJyb3JpbWc9Ii8vaW1nLmQyY21lZGlhLmNhL2Nhcm1ha2VzL2ZvcmRfYy5wbmciIHRpdGxlPSJFeHBlZGl0aW9uIDIwMjUiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj48L2E+PHNwYW4gY2xhc3M9InByaWNlIj48c3BhbiBjbGFzcz0icHJpY2VfdGV4dCI+w6AgcGFydGlyIGRlPC9zcGFuPjxzcGFuIGNsYXNzPSJwcmljZV9hbXQiPjg0IDgxNSAkPC9zcGFuPjxpbWcgY2xhc3M9InByaWNlLXNjcmF0Y2ggbGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FybGVmb3JkLmNvbS8vaW1hZ2VzL3JlZC1saW5lLXRpbnkucG5nIiBhbHQ9InJlZCBsaW5lIHRpbnkiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj48L3NwYW4+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0ZvcmQtRXhwZWRpdGlvbi0yMDI1Lmh0bWwiPkV4cGVkaXRpb24gMjAyNTwvYT48L2xpPgo8bGkgZGF0YS1pZD0iNTM2NTkxMjQ2IiBpZD0iTWFpbk1lbnVfNmEyZWIxYTRjOGVjYSIgY2xhc3M9Imhhc0ltZyIgZGF0YS1tb2RlbGlkPSI3MzgwMSI+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0ZvcmQtRXhwZWRpdGlvbi0yMDI2Lmh0bWwiIGNsYXNzPSJpbWdMaW5rIGlzQm9sZCAiPjxpbWcgYWx0PSJFeHBlZGl0aW9uIDIwMjYiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL0ZvcmQvRXhwZWRpdGlvbi8yMDI2L1QvNDgxMTkwL0JsdWUvcHJvZmlsZS5wbmc\/Y2I9NmEyZWIxOTI3OGZmNCIgZXJyb3JpbWc9Ii8vaW1nLmQyY21lZGlhLmNhL2Nhcm1ha2VzL2ZvcmRfYy5wbmciIHRpdGxlPSJFeHBlZGl0aW9uIDIwMjYiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj48L2E+PHNwYW4gY2xhc3M9InByaWNlIj48c3BhbiBjbGFzcz0icHJpY2VfdGV4dCI+w6AgcGFydGlyIGRlPC9zcGFuPjxzcGFuIGNsYXNzPSJwcmljZV9hbXQiPjg2IDA2NSAkPC9zcGFuPjxpbWcgY2xhc3M9InByaWNlLXNjcmF0Y2ggbGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FybGVmb3JkLmNvbS8vaW1hZ2VzL3JlZC1saW5lLXRpbnkucG5nIiBhbHQ9InJlZCBsaW5lIHRpbnkiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj48L3NwYW4+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0ZvcmQtRXhwZWRpdGlvbi0yMDI2Lmh0bWwiPkV4cGVkaXRpb24gMjAyNjwvYT48L2xpPgo8bGkgZGF0YS1pZD0iMjk4MzgwODE1IiBpZD0iTWFpbk1lbnVfNmEyZWIxYTRjOGVjZiIgY2xhc3M9Imhhc0ltZyIgZGF0YS1tb2RlbGlkPSI3NjgwOSI+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0ZvcmQtRXhwZWRpdGlvbi0yMDI3Lmh0bWwiIGNsYXNzPSJpbWdMaW5rIGlzQm9sZCAiPjxpbWcgYWx0PSJFeHBlZGl0aW9uIDIwMjciIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL0ZvcmQvRXhwZWRpdGlvbi8yMDI3L1QvNDg0ODA3L0JsdWUvcHJvZmlsZS5wbmc\/Y2I9NmEyZWIxOTI3OGZmNCIgZXJyb3JpbWc9Ii8vaW1nLmQyY21lZGlhLmNhL2Nhcm1ha2VzL2ZvcmRfYy5wbmciIHRpdGxlPSJFeHBlZGl0aW9uIDIwMjciIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj48L2E+PHNwYW4gY2xhc3M9InByaWNlIj48c3BhbiBjbGFzcz0icHJpY2VfdGV4dCI+w6AgcGFydGlyIGRlPC9zcGFuPjxzcGFuIGNsYXNzPSJwcmljZV9hbXQiPjg5IDI5NSAkPC9zcGFuPjxpbWcgY2xhc3M9InByaWNlLXNjcmF0Y2ggbGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FybGVmb3JkLmNvbS8vaW1hZ2VzL3JlZC1saW5lLXRpbnkucG5nIiBhbHQ9InJlZCBsaW5lIHRpbnkiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj48L3NwYW4+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0ZvcmQtRXhwZWRpdGlvbi0yMDI3Lmh0bWwiPkV4cGVkaXRpb24gMjAyNzwvYT48L2xpPgo8bGkgZGF0YS1pZD0iMTQyNjM2OTU4NiIgaWQ9Ik1haW5NZW51XzZhMmViMWE0YzhlZDMiIGNsYXNzPSJoYXNJbWciIGRhdGEtbW9kZWxpZD0iNTQwNzQiPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9Gb3JkLUV4cGxvcmVyLTIwMjUuaHRtbCIgY2xhc3M9ImltZ0xpbmsgaXNCb2xkICI+PGltZyBhbHQ9IkV4cGxvcmVyIDIwMjUiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL0ZvcmQvRXhwbG9yZXIvMjAyNS9ULzQ1NDA0My9CbHVlL3Byb2ZpbGUucG5nP2NiPTZhMmViMTkyNzhmZjQiIGVycm9yaW1nPSIvL2ltZy5kMmNtZWRpYS5jYS9jYXJtYWtlcy9mb3JkX2MucG5nIiB0aXRsZT0iRXhwbG9yZXIgMjAyNSIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPjwvYT48c3BhbiBjbGFzcz0icHJpY2UiPjxzcGFuIGNsYXNzPSJwcmljZV90ZXh0Ij7DoCBwYXJ0aXIgZGU8L3NwYW4+PHNwYW4gY2xhc3M9InByaWNlX2FtdCI+NTMgOTgwICQ8L3NwYW4+PGltZyBjbGFzcz0icHJpY2Utc2NyYXRjaCBsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJsZWZvcmQuY29tLy9pbWFnZXMvcmVkLWxpbmUtdGlueS5wbmciIGFsdD0icmVkIGxpbmUgdGlueSIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPjwvc3Bhbj48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvRm9yZC1FeHBsb3Jlci0yMDI1Lmh0bWwiPkV4cGxvcmVyIDIwMjU8L2E+PC9saT4KPGxpIGRhdGEtaWQ9IjM1MTQ4NzIzNzkiIGlkPSJNYWluTWVudV82YTJlYjFhNGM4ZWQ4IiBjbGFzcz0iaGFzSW1nIiBkYXRhLW1vZGVsaWQ9IjcyNzE5Ij48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvRm9yZC1FeHBsb3Jlci0yMDI2Lmh0bWwiIGNsYXNzPSJpbWdMaW5rIGlzQm9sZCAiPjxpbWcgYWx0PSJFeHBsb3JlciAyMDI2IiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9Gb3JkL0V4cGxvcmVyLzIwMjYvVC80Nzk1MzAvQmx1ZS9wcm9maWxlLnBuZz9jYj02YTJlYjE5Mjc4ZmY0IiBlcnJvcmltZz0iLy9pbWcuZDJjbWVkaWEuY2EvY2FybWFrZXMvZm9yZF9jLnBuZyIgdGl0bGU9IkV4cGxvcmVyIDIwMjYiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj48L2E+PHNwYW4gY2xhc3M9InByaWNlIj48c3BhbiBjbGFzcz0icHJpY2VfdGV4dCI+w6AgcGFydGlyIGRlPC9zcGFuPjxzcGFuIGNsYXNzPSJwcmljZV9hbXQiPjU0IDg5NSAkPC9zcGFuPjxpbWcgY2xhc3M9InByaWNlLXNjcmF0Y2ggbGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FybGVmb3JkLmNvbS8vaW1hZ2VzL3JlZC1saW5lLXRpbnkucG5nIiBhbHQ9InJlZCBsaW5lIHRpbnkiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj48L3NwYW4+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0ZvcmQtRXhwbG9yZXItMjAyNi5odG1sIj5FeHBsb3JlciAyMDI2PC9hPjwvbGk+CjxsaSBkYXRhLWlkPSIyOTE5MDIwNjA0IiBpZD0iTWFpbk1lbnVfNmEyZWIxYTRjOGVkYiIgY2xhc3M9Imhhc0ltZyIgZGF0YS1tb2RlbGlkPSI3ODEwOCI+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0ZvcmQtRXhwbG9yZXItMjAyNy5odG1sIiBjbGFzcz0iaW1nTGluayBpc0JvbGQgIj48aW1nIGFsdD0iRXhwbG9yZXIgMjAyNyIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvRm9yZC9FeHBsb3Jlci8yMDI3L1QvNDg3MDQ1L0JsdWUvcHJvZmlsZS5wbmc\/Y2I9NmEyZWIxOTI3OGZmNCIgZXJyb3JpbWc9Ii8vaW1nLmQyY21lZGlhLmNhL2Nhcm1ha2VzL2ZvcmRfYy5wbmciIHRpdGxlPSJFeHBsb3JlciAyMDI3IiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+PC9hPjxzcGFuIGNsYXNzPSJwcmljZSI+PHNwYW4gY2xhc3M9InByaWNlX3RleHQiPsOgIHBhcnRpciBkZTwvc3Bhbj48c3BhbiBjbGFzcz0icHJpY2VfYW10Ij41NSAwOTUgJDwvc3Bhbj48aW1nIGNsYXNzPSJwcmljZS1zY3JhdGNoIGxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmxlZm9yZC5jb20vL2ltYWdlcy9yZWQtbGluZS10aW55LnBuZyIgYWx0PSJyZWQgbGluZSB0aW55IiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+PC9zcGFuPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9Gb3JkLUV4cGxvcmVyLTIwMjcuaHRtbCI+RXhwbG9yZXIgMjAyNzwvYT48L2xpPgo8bGkgZGF0YS1pZD0iMjY2MDY2NjM2MSIgaWQ9Ik1haW5NZW51XzZhMmViMWE0YzhlZGYiIGNsYXNzPSJoYXNJbWciIGRhdGEtbW9kZWxpZD0iNjQ2MDMiPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9Gb3JkLU11c3RhbmdfTWFjaF9FLTIwMjUuaHRtbCIgY2xhc3M9ImltZ0xpbmsgaXNCb2xkICI+PGltZyBhbHQ9Ik11c3RhbmcgTWFjaC1FIDIwMjUiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL0ZvcmQvTXVzdGFuZyBNYWNoX0UvMjAyNS9ULzQ2NzQ5Mi9CbHVlL3Byb2ZpbGUucG5nP2NiPTZhMmViMTkyNzhmZjQiIGVycm9yaW1nPSIvL2ltZy5kMmNtZWRpYS5jYS9jYXJtYWtlcy9mb3JkX2MucG5nIiB0aXRsZT0iTXVzdGFuZyBNYWNoLUUgMjAyNSIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPjwvYT48c3BhbiBjbGFzcz0icHJpY2UiPjxzcGFuIGNsYXNzPSJwcmljZV90ZXh0Ij7DoCBwYXJ0aXIgZGU8L3NwYW4+PHNwYW4gY2xhc3M9InByaWNlX2FtdCI+NTUgNjkwICQ8L3NwYW4+PGltZyBjbGFzcz0icHJpY2Utc2NyYXRjaCBsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJsZWZvcmQuY29tLy9pbWFnZXMvcmVkLWxpbmUtdGlueS5wbmciIGFsdD0icmVkIGxpbmUgdGlueSIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPjxzcGFuIGNsYXNzPSJwcmljZV9wcm9tbyI+NTMgOTUxICQ8L3NwYW4+PC9zcGFuPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9Gb3JkLU11c3RhbmdfTWFjaF9FLTIwMjUuaHRtbCI+TXVzdGFuZyBNYWNoLUUgMjAyNTwvYT48L2xpPgo8bGkgZGF0YS1pZD0iMTIwNjY2MjU5NCIgaWQ9Ik1haW5NZW51XzZhMmViMWE0YzhlZTMiIGNsYXNzPSJsYXN0SXRlbSBoYXNJbWciIGRhdGEtbW9kZWxpZD0iNzQxMTkiPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9Gb3JkLU11c3RhbmdfTWFjaF9FLTIwMjYuaHRtbCIgY2xhc3M9ImltZ0xpbmsgaXNCb2xkICI+PGltZyBhbHQ9Ik11c3RhbmcgTWFjaC1FIDIwMjYiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL0ZvcmQvTXVzdGFuZyBNYWNoX0UvMjAyNi9ULzQ4MTY5OS9CbHVlL3Byb2ZpbGUucG5nP2NiPTZhMmViMTkyNzhmZjQiIGVycm9yaW1nPSIvL2ltZy5kMmNtZWRpYS5jYS9jYXJtYWtlcy9mb3JkX2MucG5nIiB0aXRsZT0iTXVzdGFuZyBNYWNoLUUgMjAyNiIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPjwvYT48c3BhbiBjbGFzcz0icHJpY2UiPjxzcGFuIGNsYXNzPSJwcmljZV90ZXh0Ij7DoCBwYXJ0aXIgZGU8L3NwYW4+PHNwYW4gY2xhc3M9InByaWNlX2FtdCI+NDggMDkwICQ8L3NwYW4+PGltZyBjbGFzcz0icHJpY2Utc2NyYXRjaCBsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJsZWZvcmQuY29tLy9pbWFnZXMvcmVkLWxpbmUtdGlueS5wbmciIGFsdD0icmVkIGxpbmUgdGlueSIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPjwvc3Bhbj48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvRm9yZC1NdXN0YW5nX01hY2hfRS0yMDI2Lmh0bWwiPk11c3RhbmcgTWFjaC1FIDIwMjY8L2E+PC9saT4KPC91bD48L2xpPgo8L3VsPjwvbGk+CjxsaSBkYXRhLWlkPSJORVdfVFJVQ0siIGlkPSJNYWluTWVudV82YTJlYjFhNGM4ZmEyIiBjbGFzcz0iaGFzU3ViIj48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvY2FtaW9ucy5odG1sIj5DYW1pb25zPC9hPjx1bCBjbGFzcz0ic3ViIj48bGkgZGF0YS1pZD0iTkVXX1RSVUNLX0ZvcmQiIGlkPSJNYWluTWVudV82YTJlYjFhNGM4ZjlmIiBjbGFzcz0iZmlyc3RJdGVtIGxhc3RJdGVtIGhhc1N1YiBoYXNJbWciPjx1bCBjbGFzcz0ic3ViIj48bGkgZGF0YS1pZD0iNDE1NTM0MDcwMiIgaWQ9Ik1haW5NZW51XzZhMmViMWE0YzhlZWYiIGNsYXNzPSJmaXJzdEl0ZW0gaGFzSW1nIiBkYXRhLW1vZGVsaWQ9IjYxODAyIj48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvRm9yZC1GXzE1MC0yMDI1Lmh0bWwiIGNsYXNzPSJpbWdMaW5rIGlzQm9sZCAiPjxpbWcgYWx0PSJGLTE1MCAyMDI1IiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9Gb3JkL0ZfMTUwLzIwMjUvVC80NjQxNzcvQmx1ZS9wcm9maWxlLnBuZz9jYj02YTJlYjE5Mjc4ZmY0IiBlcnJvcmltZz0iLy9pbWcuZDJjbWVkaWEuY2EvY2FybWFrZXMvZm9yZF9jLnBuZyIgdGl0bGU9IkYtMTUwIDIwMjUiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj48L2E+PHNwYW4gY2xhc3M9InByaWNlIj48c3BhbiBjbGFzcz0icHJpY2VfdGV4dCI+w6AgcGFydGlyIGRlPC9zcGFuPjxzcGFuIGNsYXNzPSJwcmljZV9hbXQiPjUzIDMwMCAkPC9zcGFuPjxpbWcgY2xhc3M9InByaWNlLXNjcmF0Y2ggbGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FybGVmb3JkLmNvbS8vaW1hZ2VzL3JlZC1saW5lLXRpbnkucG5nIiBhbHQ9InJlZCBsaW5lIHRpbnkiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj48L3NwYW4+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0ZvcmQtRl8xNTAtMjAyNS5odG1sIj5GLTE1MCAyMDI1PC9hPjwvbGk+CjxsaSBkYXRhLWlkPSIyNDAwODc4NTUzIiBpZD0iTWFpbk1lbnVfNmEyZWIxYTRjOGVmNCIgY2xhc3M9Imhhc0ltZyIgZGF0YS1tb2RlbGlkPSI3NDIwOSI+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0ZvcmQtRl8xNTAtMjAyNi5odG1sIiBjbGFzcz0iaW1nTGluayBpc0JvbGQgIj48aW1nIGFsdD0iRi0xNTAgMjAyNiIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvRm9yZC9GXzE1MC8yMDI2L1QvNDgxODIyL0JsdWUvcHJvZmlsZS5wbmc\/Y2I9NmEyZWIxOTI3OGZmNCIgZXJyb3JpbWc9Ii8vaW1nLmQyY21lZGlhLmNhL2Nhcm1ha2VzL2ZvcmRfYy5wbmciIHRpdGxlPSJGLTE1MCAyMDI2IiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+PC9hPjxzcGFuIGNsYXNzPSJwcmljZSI+PHNwYW4gY2xhc3M9InByaWNlX3RleHQiPsOgIHBhcnRpciBkZTwvc3Bhbj48c3BhbiBjbGFzcz0icHJpY2VfYW10Ij41NSA0ODUgJDwvc3Bhbj48aW1nIGNsYXNzPSJwcmljZS1zY3JhdGNoIGxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmxlZm9yZC5jb20vL2ltYWdlcy9yZWQtbGluZS10aW55LnBuZyIgYWx0PSJyZWQgbGluZSB0aW55IiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+PC9zcGFuPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9Gb3JkLUZfMTUwLTIwMjYuaHRtbCI+Ri0xNTAgMjAyNjwvYT48L2xpPgo8bGkgZGF0YS1pZD0iMzkzMTY1MDUxMSIgaWQ9Ik1haW5NZW51XzZhMmViMWE0YzhlZjkiIGNsYXNzPSJoYXNJbWciIGRhdGEtbW9kZWxpZD0iNjE0MDEiPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9Gb3JkLUZfMTUwX0xpZ2h0bmluZy0yMDI1Lmh0bWwiIGNsYXNzPSJpbWdMaW5rIGlzQm9sZCAiPjxpbWcgYWx0PSJGLTE1MCBMaWdodG5pbmcgMjAyNSIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvRm9yZC9GXzE1MCBMaWdodG5pbmcvMjAyNS9ULzQ2MzY4NC9CbHVlL3Byb2ZpbGUucG5nP2NiPTZhMmViMTkyNzhmZjQiIGVycm9yaW1nPSIvL2ltZy5kMmNtZWRpYS5jYS9jYXJtYWtlcy9mb3JkX2MucG5nIiB0aXRsZT0iRi0xNTAgTGlnaHRuaW5nIDIwMjUiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj48L2E+PHNwYW4gY2xhc3M9InByaWNlIj48c3BhbiBjbGFzcz0icHJpY2VfdGV4dCI+w6AgcGFydGlyIGRlPC9zcGFuPjxzcGFuIGNsYXNzPSJwcmljZV9hbXQiPjYyIDg5MCAkPC9zcGFuPjxpbWcgY2xhc3M9InByaWNlLXNjcmF0Y2ggbGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FybGVmb3JkLmNvbS8vaW1hZ2VzL3JlZC1saW5lLXRpbnkucG5nIiBhbHQ9InJlZCBsaW5lIHRpbnkiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj48c3BhbiBjbGFzcz0icHJpY2VfcHJvbW8iPjYxIDE1MSAkPC9zcGFuPjwvc3Bhbj48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvRm9yZC1GXzE1MF9MaWdodG5pbmctMjAyNS5odG1sIj5GLTE1MCBMaWdodG5pbmcgMjAyNTwvYT48L2xpPgo8bGkgZGF0YS1pZD0iMTkyNzM2NjYwNyIgaWQ9Ik1haW5NZW51XzZhMmViMWE0YzhlZmQiIGNsYXNzPSJoYXNJbWciIGRhdGEtbW9kZWxpZD0iNzQzMDIiPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9Gb3JkLUZfMTUwX0xpZ2h0bmluZy0yMDI2Lmh0bWwiIGNsYXNzPSJpbWdMaW5rIGlzQm9sZCAiPjxpbWcgYWx0PSJGLTE1MCBMaWdodG5pbmcgMjAyNiIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvRm9yZC9GXzE1MCBMaWdodG5pbmcvMjAyNi9ULzQ4MTg4Ni9CbHVlL3Byb2ZpbGUucG5nP2NiPTZhMmViMTkyNzhmZjQiIGVycm9yaW1nPSIvL2ltZy5kMmNtZWRpYS5jYS9jYXJtYWtlcy9mb3JkX2MucG5nIiB0aXRsZT0iRi0xNTAgTGlnaHRuaW5nIDIwMjYiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj48L2E+PHNwYW4gY2xhc3M9InByaWNlIj48c3BhbiBjbGFzcz0icHJpY2VfdGV4dCI+w6AgcGFydGlyIGRlPC9zcGFuPjxzcGFuIGNsYXNzPSJwcmljZV9hbXQiPjczIDg5MCAkPC9zcGFuPjxpbWcgY2xhc3M9InByaWNlLXNjcmF0Y2ggbGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FybGVmb3JkLmNvbS8vaW1hZ2VzL3JlZC1saW5lLXRpbnkucG5nIiBhbHQ9InJlZCBsaW5lIHRpbnkiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj48L3NwYW4+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0ZvcmQtRl8xNTBfTGlnaHRuaW5nLTIwMjYuaHRtbCI+Ri0xNTAgTGlnaHRuaW5nIDIwMjY8L2E+PC9saT4KPGxpIGRhdGEtaWQ9IjM5MjE3NjMyNjEiIGlkPSJNYWluTWVudV82YTJlYjFhNGM4ZjAxIiBjbGFzcz0iaGFzSW1nIiBkYXRhLW1vZGVsaWQ9IjYwNTAzIj48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvRm9yZC1NYXZlcmljay0yMDI1Lmh0bWwiIGNsYXNzPSJpbWdMaW5rIGlzQm9sZCAiPjxpbWcgYWx0PSJNYXZlcmljayAyMDI1IiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9Gb3JkL01hdmVyaWNrLzIwMjUvVC80NjI4MzcvQmx1ZS9wcm9maWxlLnBuZz9jYj02YTJlYjE5Mjc4ZmY0IiBlcnJvcmltZz0iLy9pbWcuZDJjbWVkaWEuY2EvY2FybWFrZXMvZm9yZF9jLnBuZyIgdGl0bGU9Ik1hdmVyaWNrIDIwMjUiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj48L2E+PHNwYW4gY2xhc3M9InByaWNlIj48c3BhbiBjbGFzcz0icHJpY2VfdGV4dCI+w6AgcGFydGlyIGRlPC9zcGFuPjxzcGFuIGNsYXNzPSJwcmljZV9hbXQiPjQ0IDI5NSAkPC9zcGFuPjxpbWcgY2xhc3M9InByaWNlLXNjcmF0Y2ggbGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FybGVmb3JkLmNvbS8vaW1hZ2VzL3JlZC1saW5lLXRpbnkucG5nIiBhbHQ9InJlZCBsaW5lIHRpbnkiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj48L3NwYW4+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0ZvcmQtTWF2ZXJpY2stMjAyNS5odG1sIj5NYXZlcmljayAyMDI1PC9hPjwvbGk+CjxsaSBkYXRhLWlkPSIxODMzMjU2MzcyIiBpZD0iTWFpbk1lbnVfNmEyZWIxYTRjOGYwNiIgY2xhc3M9Imhhc0ltZyIgZGF0YS1tb2RlbGlkPSI3MzgwMCI+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0ZvcmQtTWF2ZXJpY2stMjAyNi5odG1sIiBjbGFzcz0iaW1nTGluayBpc0JvbGQgIj48aW1nIGFsdD0iTWF2ZXJpY2sgMjAyNiIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvRm9yZC9NYXZlcmljay8yMDI2L1QvNDgxMTc1L0JsdWUvcHJvZmlsZS5wbmc\/Y2I9NmEyZWIxOTI3OGZmNCIgZXJyb3JpbWc9Ii8vaW1nLmQyY21lZGlhLmNhL2Nhcm1ha2VzL2ZvcmRfYy5wbmciIHRpdGxlPSJNYXZlcmljayAyMDI2IiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+PC9hPjxzcGFuIGNsYXNzPSJwcmljZSI+PHNwYW4gY2xhc3M9InByaWNlX3RleHQiPsOgIHBhcnRpciBkZTwvc3Bhbj48c3BhbiBjbGFzcz0icHJpY2VfYW10Ij40NCAzOTUgJDwvc3Bhbj48aW1nIGNsYXNzPSJwcmljZS1zY3JhdGNoIGxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmxlZm9yZC5jb20vL2ltYWdlcy9yZWQtbGluZS10aW55LnBuZyIgYWx0PSJyZWQgbGluZSB0aW55IiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+PC9zcGFuPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9Gb3JkLU1hdmVyaWNrLTIwMjYuaHRtbCI+TWF2ZXJpY2sgMjAyNjwvYT48L2xpPgo8bGkgZGF0YS1pZD0iMTI0NzA2OTExNCIgaWQ9Ik1haW5NZW51XzZhMmViMWE0YzhmMGEiIGNsYXNzPSJoYXNJbWciIGRhdGEtbW9kZWxpZD0iNjA1MDMwMDAiPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9Gb3JkLU1hdmVyaWNrX0h5YnJpZC0yMDI1Lmh0bWwiIGNsYXNzPSJpbWdMaW5rIGlzQm9sZCAiPjxpbWcgYWx0PSJNYXZlcmljayBIeWJyaWRlIDIwMjUiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL0ZvcmQvTWF2ZXJpY2sgSHlicmlkLzIwMjUvVC80NjI4MzUvQmx1ZS9wcm9maWxlLnBuZz9jYj02YTJlYjE5Mjc4ZmY0IiBlcnJvcmltZz0iLy9pbWcuZDJjbWVkaWEuY2EvY2FybWFrZXMvZm9yZF9jLnBuZyIgdGl0bGU9Ik1hdmVyaWNrIEh5YnJpZGUgMjAyNSIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPjwvYT48c3BhbiBjbGFzcz0icHJpY2UiPjxzcGFuIGNsYXNzPSJwcmljZV90ZXh0Ij7DoCBwYXJ0aXIgZGU8L3NwYW4+PHNwYW4gY2xhc3M9InByaWNlX2FtdCI+MzYgOTk1ICQ8L3NwYW4+PGltZyBjbGFzcz0icHJpY2Utc2NyYXRjaCBsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJsZWZvcmQuY29tLy9pbWFnZXMvcmVkLWxpbmUtdGlueS5wbmciIGFsdD0icmVkIGxpbmUgdGlueSIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPjwvc3Bhbj48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvRm9yZC1NYXZlcmlja19IeWJyaWQtMjAyNS5odG1sIj5NYXZlcmljayBIeWJyaWRlIDIwMjU8L2E+PC9saT4KPGxpIGRhdGEtaWQ9IjE2NzE5Mjc2NDYiIGlkPSJNYWluTWVudV82YTJlYjFhNGM4ZjBmIiBjbGFzcz0iaGFzSW1nIiBkYXRhLW1vZGVsaWQ9IjczODAwMDAwIj48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvRm9yZC1NYXZlcmlja19IeWJyaWQtMjAyNi5odG1sIiBjbGFzcz0iaW1nTGluayBpc0JvbGQgIj48aW1nIGFsdD0iTWF2ZXJpY2sgSHlicmlkZSAyMDI2IiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9Gb3JkL01hdmVyaWNrIEh5YnJpZC8yMDI2L1QvNDgxMTc0L0JsdWUvcHJvZmlsZS5wbmc\/Y2I9NmEyZWIxOTI3OGZmNCIgZXJyb3JpbWc9Ii8vaW1nLmQyY21lZGlhLmNhL2Nhcm1ha2VzL2ZvcmRfYy5wbmciIHRpdGxlPSJNYXZlcmljayBIeWJyaWRlIDIwMjYiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj48L2E+PHNwYW4gY2xhc3M9InByaWNlIj48c3BhbiBjbGFzcz0icHJpY2VfdGV4dCI+w6AgcGFydGlyIGRlPC9zcGFuPjxzcGFuIGNsYXNzPSJwcmljZV9hbXQiPjM4IDA5NSAkPC9zcGFuPjxpbWcgY2xhc3M9InByaWNlLXNjcmF0Y2ggbGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FybGVmb3JkLmNvbS8vaW1hZ2VzL3JlZC1saW5lLXRpbnkucG5nIiBhbHQ9InJlZCBsaW5lIHRpbnkiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj48L3NwYW4+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0ZvcmQtTWF2ZXJpY2tfSHlicmlkLTIwMjYuaHRtbCI+TWF2ZXJpY2sgSHlicmlkZSAyMDI2PC9hPjwvbGk+CjxsaSBkYXRhLWlkPSI0MTM2ODExMCIgaWQ9Ik1haW5NZW51XzZhMmViMWE0YzhmMTMiIGNsYXNzPSJoYXNJbWciIGRhdGEtbW9kZWxpZD0iNjQwOTgiPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9Gb3JkLVJhbmdlci0yMDI1Lmh0bWwiIGNsYXNzPSJpbWdMaW5rIGlzQm9sZCAiPjxpbWcgYWx0PSJSYW5nZXIgMjAyNSIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvRm9yZC9SYW5nZXIvMjAyNS9ULzQ2NjY2NS9CbHVlL3Byb2ZpbGUucG5nP2NiPTZhMmViMTkyNzhmZjQiIGVycm9yaW1nPSIvL2ltZy5kMmNtZWRpYS5jYS9jYXJtYWtlcy9mb3JkX2MucG5nIiB0aXRsZT0iUmFuZ2VyIDIwMjUiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj48L2E+PHNwYW4gY2xhc3M9InByaWNlIj48c3BhbiBjbGFzcz0icHJpY2VfdGV4dCI+w6AgcGFydGlyIGRlPC9zcGFuPjxzcGFuIGNsYXNzPSJwcmljZV9hbXQiPjQ1IDM2NSAkPC9zcGFuPjxpbWcgY2xhc3M9InByaWNlLXNjcmF0Y2ggbGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FybGVmb3JkLmNvbS8vaW1hZ2VzL3JlZC1saW5lLXRpbnkucG5nIiBhbHQ9InJlZCBsaW5lIHRpbnkiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj48L3NwYW4+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0ZvcmQtUmFuZ2VyLTIwMjUuaHRtbCI+UmFuZ2VyIDIwMjU8L2E+PC9saT4KPGxpIGRhdGEtaWQ9IjMyODYwMjEyNjMiIGlkPSJNYWluTWVudV82YTJlYjFhNGM4ZjE2IiBjbGFzcz0iaGFzSW1nIiBkYXRhLW1vZGVsaWQ9Ijc0MjA0Ij48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvRm9yZC1SYW5nZXItMjAyNi5odG1sIiBjbGFzcz0iaW1nTGluayBpc0JvbGQgIj48aW1nIGFsdD0iUmFuZ2VyIDIwMjYiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL0ZvcmQvUmFuZ2VyLzIwMjYvVC80ODE3ODUvQmx1ZS9wcm9maWxlLnBuZz9jYj02YTJlYjE5Mjc4ZmY0IiBlcnJvcmltZz0iLy9pbWcuZDJjbWVkaWEuY2EvY2FybWFrZXMvZm9yZF9jLnBuZyIgdGl0bGU9IlJhbmdlciAyMDI2IiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+PC9hPjxzcGFuIGNsYXNzPSJwcmljZSI+PHNwYW4gY2xhc3M9InByaWNlX3RleHQiPsOgIHBhcnRpciBkZTwvc3Bhbj48c3BhbiBjbGFzcz0icHJpY2VfYW10Ij40NSA5NjUgJDwvc3Bhbj48aW1nIGNsYXNzPSJwcmljZS1zY3JhdGNoIGxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmxlZm9yZC5jb20vL2ltYWdlcy9yZWQtbGluZS10aW55LnBuZyIgYWx0PSJyZWQgbGluZSB0aW55IiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+PC9zcGFuPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9Gb3JkLVJhbmdlci0yMDI2Lmh0bWwiPlJhbmdlciAyMDI2PC9hPjwvbGk+CjxsaSBkYXRhLWlkPSIyMTI2MDE0NDUzIiBpZD0iTWFpbk1lbnVfNmEyZWIxYTRjOGYxYSIgY2xhc3M9Imhhc0ltZyIgZGF0YS1tb2RlbGlkPSI2MjkwNCI+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0ZvcmQtU3VwZXJfRHV0eV9GXzM1MF9EUlctMjAyNS5odG1sIiBjbGFzcz0iaXRlbS13cmFwIGltZ0xpbmsiIGRhdGEtbWVudS10cmFuc2xhdGU9IjIxMjYwMTQ0NTMiPjxpbWcgYWx0PSJTdXBlciBEdXR5IEYgMzUwIMOgIHJvdWVzIGFycmnDqHJlIGp1bWVsw6llcyAyMDI1IiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9Gb3JkL1N1cGVyIER1dHkgRl8zNTAgRFJXLzIwMjUvVC80NjUyMzIvQmx1ZS9wcm9maWxlLnBuZz9jYj02YTJlYjE5Mjc4ZmY0IiBlcnJvcmltZz0iLy9pbWcuZDJjbWVkaWEuY2EvY2FybWFrZXMvZm9yZF9jLnBuZyIgdGl0bGU9IlN1cGVyIER1dHkgRiAzNTAgw6Agcm91ZXMgYXJyacOocmUganVtZWzDqWVzIDIwMjUiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj48L2E+PHNwYW4gY2xhc3M9InByaWNlIj48c3BhbiBjbGFzcz0icHJpY2VfdGV4dCI+w6AgcGFydGlyIGRlPC9zcGFuPjxzcGFuIGNsYXNzPSJwcmljZV9hbXQiPjY1IDcyMCAkPC9zcGFuPjxpbWcgY2xhc3M9InByaWNlLXNjcmF0Y2ggbGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FybGVmb3JkLmNvbS8vaW1hZ2VzL3JlZC1saW5lLXRpbnkucG5nIiBhbHQ9InJlZCBsaW5lIHRpbnkiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj48L3NwYW4+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0ZvcmQtU3VwZXJfRHV0eV9GXzM1MF9EUlctMjAyNS5odG1sIiBjbGFzcz0iaXRlbS13cmFwIiBkYXRhLW1lbnUtdHJhbnNsYXRlPSIyMTI2MDE0NDUzIj5TdXBlciBEdXR5IEYgMzUwIMOgIHJvdWVzIGFycmnDqHJlIGp1bWVsw6llcyAyMDI1PC9hPjwvbGk+CjxsaSBkYXRhLWlkPSIzNjA2ODk3OTA5IiBpZD0iTWFpbk1lbnVfNmEyZWIxYTRjOGY2YyIgY2xhc3M9Imhhc0ltZyIgZGF0YS1tb2RlbGlkPSI3MjEyNCI+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0ZvcmQtU3VwZXJfRHV0eV9GXzM1MF9EUlctMjAyNi5odG1sIiBjbGFzcz0iaXRlbS13cmFwIGltZ0xpbmsiIGRhdGEtbWVudS10cmFuc2xhdGU9IjM2MDY4OTc5MDkiPjxpbWcgYWx0PSJTdXBlciBEdXR5IEYgMzUwIMOgIHJvdWVzIGFycmnDqHJlIGp1bWVsw6llcyAyMDI2IiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9Gb3JkL1N1cGVyIER1dHkgRl8zNTAgRFJXLzIwMjYvVC80Nzc2MTAvQmx1ZS9wcm9maWxlLnBuZz9jYj02YTJlYjE5Mjc4ZmY0IiBlcnJvcmltZz0iLy9pbWcuZDJjbWVkaWEuY2EvY2FybWFrZXMvZm9yZF9jLnBuZyIgdGl0bGU9IlN1cGVyIER1dHkgRiAzNTAgw6Agcm91ZXMgYXJyacOocmUganVtZWzDqWVzIDIwMjYiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj48L2E+PHNwYW4gY2xhc3M9InByaWNlIj48c3BhbiBjbGFzcz0icHJpY2VfdGV4dCI+w6AgcGFydGlyIGRlPC9zcGFuPjxzcGFuIGNsYXNzPSJwcmljZV9hbXQiPjY3IDI4MCAkPC9zcGFuPjxpbWcgY2xhc3M9InByaWNlLXNjcmF0Y2ggbGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FybGVmb3JkLmNvbS8vaW1hZ2VzL3JlZC1saW5lLXRpbnkucG5nIiBhbHQ9InJlZCBsaW5lIHRpbnkiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj48L3NwYW4+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0ZvcmQtU3VwZXJfRHV0eV9GXzM1MF9EUlctMjAyNi5odG1sIiBjbGFzcz0iaXRlbS13cmFwIiBkYXRhLW1lbnUtdHJhbnNsYXRlPSIzNjA2ODk3OTA5Ij5TdXBlciBEdXR5IEYgMzUwIMOgIHJvdWVzIGFycmnDqHJlIGp1bWVsw6llcyAyMDI2PC9hPjwvbGk+CjxsaSBkYXRhLWlkPSIyOTczNzIyMTAxIiBpZD0iTWFpbk1lbnVfNmEyZWIxYTRjOGY3MyIgY2xhc3M9Imhhc0ltZyIgZGF0YS1tb2RlbGlkPSI3NzczMSI+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0ZvcmQtU3VwZXJfRHV0eV9GXzM1MF9EUlctMjAyNy5odG1sIiBjbGFzcz0iaXRlbS13cmFwIGltZ0xpbmsiIGRhdGEtbWVudS10cmFuc2xhdGU9IjI5NzM3MjIxMDEiPjxpbWcgYWx0PSJTdXBlciBEdXR5IEYgMzUwIMOgIHJvdWVzIGFycmnDqHJlIGp1bWVsw6llcyAyMDI3IiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9Gb3JkL1N1cGVyIER1dHkgRl8zNTAgRFJXLzIwMjcvVC80ODU5MjQvQmx1ZS9wcm9maWxlLnBuZz9jYj02YTJlYjE5Mjc4ZmY0IiBlcnJvcmltZz0iLy9pbWcuZDJjbWVkaWEuY2EvY2FybWFrZXMvZm9yZF9jLnBuZyIgdGl0bGU9IlN1cGVyIER1dHkgRiAzNTAgw6Agcm91ZXMgYXJyacOocmUganVtZWzDqWVzIDIwMjciIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj48L2E+PHNwYW4gY2xhc3M9InByaWNlIj48c3BhbiBjbGFzcz0icHJpY2VfdGV4dCI+w6AgcGFydGlyIGRlPC9zcGFuPjxzcGFuIGNsYXNzPSJwcmljZV9hbXQiPjY3IDc4MCAkPC9zcGFuPjxpbWcgY2xhc3M9InByaWNlLXNjcmF0Y2ggbGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FybGVmb3JkLmNvbS8vaW1hZ2VzL3JlZC1saW5lLXRpbnkucG5nIiBhbHQ9InJlZCBsaW5lIHRpbnkiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj48L3NwYW4+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0ZvcmQtU3VwZXJfRHV0eV9GXzM1MF9EUlctMjAyNy5odG1sIiBjbGFzcz0iaXRlbS13cmFwIiBkYXRhLW1lbnUtdHJhbnNsYXRlPSIyOTczNzIyMTAxIj5TdXBlciBEdXR5IEYgMzUwIMOgIHJvdWVzIGFycmnDqHJlIGp1bWVsw6llcyAyMDI3PC9hPjwvbGk+CjxsaSBkYXRhLWlkPSI0NzkyNTQ2MDQiIGlkPSJNYWluTWVudV82YTJlYjFhNGM4Zjc4IiBjbGFzcz0iaGFzSW1nIiBkYXRhLW1vZGVsaWQ9IjYyOTA1Ij48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvRm9yZC1TdXBlcl9EdXR5X0ZfMzUwX1NSVy0yMDI1Lmh0bWwiIGNsYXNzPSJpdGVtLXdyYXAgaW1nTGluayIgZGF0YS1tZW51LXRyYW5zbGF0ZT0iNDc5MjU0NjA0Ij48aW1nIGFsdD0iU3VwZXIgRHV0eSBGIDM1MCDDoCByb3VlcyBhcnJpw6hyZSBzaW1wbGVzIDIwMjUiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL0ZvcmQvU3VwZXIgRHV0eSBGXzM1MCBTUlcvMjAyNS9ULzQ2NTI1MC9CbHVlL3Byb2ZpbGUucG5nP2NiPTZhMmViMTkyNzhmZjQiIGVycm9yaW1nPSIvL2ltZy5kMmNtZWRpYS5jYS9jYXJtYWtlcy9mb3JkX2MucG5nIiB0aXRsZT0iU3VwZXIgRHV0eSBGIDM1MCDDoCByb3VlcyBhcnJpw6hyZSBzaW1wbGVzIDIwMjUiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj48L2E+PHNwYW4gY2xhc3M9InByaWNlIj48c3BhbiBjbGFzcz0icHJpY2VfdGV4dCI+w6AgcGFydGlyIGRlPC9zcGFuPjxzcGFuIGNsYXNzPSJwcmljZV9hbXQiPjY0IDk3NCAkPC9zcGFuPjxpbWcgY2xhc3M9InByaWNlLXNjcmF0Y2ggbGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FybGVmb3JkLmNvbS8vaW1hZ2VzL3JlZC1saW5lLXRpbnkucG5nIiBhbHQ9InJlZCBsaW5lIHRpbnkiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj48L3NwYW4+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0ZvcmQtU3VwZXJfRHV0eV9GXzM1MF9TUlctMjAyNS5odG1sIiBjbGFzcz0iaXRlbS13cmFwIiBkYXRhLW1lbnUtdHJhbnNsYXRlPSI0NzkyNTQ2MDQiPlN1cGVyIER1dHkgRiAzNTAgw6Agcm91ZXMgYXJyacOocmUgc2ltcGxlcyAyMDI1PC9hPjwvbGk+CjxsaSBkYXRhLWlkPSIyMzgwODI4NTY4IiBpZD0iTWFpbk1lbnVfNmEyZWIxYTRjOGY3ZSIgY2xhc3M9Imhhc0ltZyIgZGF0YS1tb2RlbGlkPSI3MjEyMyI+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0ZvcmQtU3VwZXJfRHV0eV9GXzM1MF9TUlctMjAyNi5odG1sIiBjbGFzcz0iaXRlbS13cmFwIGltZ0xpbmsiIGRhdGEtbWVudS10cmFuc2xhdGU9IjIzODA4Mjg1NjgiPjxpbWcgYWx0PSJTdXBlciBEdXR5IEYgMzUwIMOgIHJvdWVzIGFycmnDqHJlIHNpbXBsZXMgMjAyNiIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvRm9yZC9TdXBlciBEdXR5IEZfMzUwIFNSVy8yMDI2L1QvNDc3NTkyL0JsdWUvcHJvZmlsZS5wbmc\/Y2I9NmEyZWIxOTI3OGZmNCIgZXJyb3JpbWc9Ii8vaW1nLmQyY21lZGlhLmNhL2Nhcm1ha2VzL2ZvcmRfYy5wbmciIHRpdGxlPSJTdXBlciBEdXR5IEYgMzUwIMOgIHJvdWVzIGFycmnDqHJlIHNpbXBsZXMgMjAyNiIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPjwvYT48c3BhbiBjbGFzcz0icHJpY2UiPjxzcGFuIGNsYXNzPSJwcmljZV90ZXh0Ij7DoCBwYXJ0aXIgZGU8L3NwYW4+PHNwYW4gY2xhc3M9InByaWNlX2FtdCI+NjYgNTM0ICQ8L3NwYW4+PGltZyBjbGFzcz0icHJpY2Utc2NyYXRjaCBsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJsZWZvcmQuY29tLy9pbWFnZXMvcmVkLWxpbmUtdGlueS5wbmciIGFsdD0icmVkIGxpbmUgdGlueSIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPjwvc3Bhbj48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvRm9yZC1TdXBlcl9EdXR5X0ZfMzUwX1NSVy0yMDI2Lmh0bWwiIGNsYXNzPSJpdGVtLXdyYXAiIGRhdGEtbWVudS10cmFuc2xhdGU9IjIzODA4Mjg1NjgiPlN1cGVyIER1dHkgRiAzNTAgw6Agcm91ZXMgYXJyacOocmUgc2ltcGxlcyAyMDI2PC9hPjwvbGk+CjxsaSBkYXRhLWlkPSI0MjQ4NzgxNTI0IiBpZD0iTWFpbk1lbnVfNmEyZWIxYTRjOGY4MyIgY2xhc3M9Imhhc0ltZyIgZGF0YS1tb2RlbGlkPSI3NzczMiI+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0ZvcmQtU3VwZXJfRHV0eV9GXzM1MF9TUlctMjAyNy5odG1sIiBjbGFzcz0iaXRlbS13cmFwIGltZ0xpbmsiIGRhdGEtbWVudS10cmFuc2xhdGU9IjQyNDg3ODE1MjQiPjxpbWcgYWx0PSJTdXBlciBEdXR5IEYgMzUwIMOgIHJvdWVzIGFycmnDqHJlIHNpbXBsZXMgMjAyNyIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvRm9yZC9TdXBlciBEdXR5IEZfMzUwIFNSVy8yMDI3L1QvNDg1OTUxL0JsdWUvcHJvZmlsZS5wbmc\/Y2I9NmEyZWIxOTI3OGZmNCIgZXJyb3JpbWc9Ii8vaW1nLmQyY21lZGlhLmNhL2Nhcm1ha2VzL2ZvcmRfYy5wbmciIHRpdGxlPSJTdXBlciBEdXR5IEYgMzUwIMOgIHJvdWVzIGFycmnDqHJlIHNpbXBsZXMgMjAyNyIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPjwvYT48c3BhbiBjbGFzcz0icHJpY2UiPjxzcGFuIGNsYXNzPSJwcmljZV90ZXh0Ij7DoCBwYXJ0aXIgZGU8L3NwYW4+PHNwYW4gY2xhc3M9InByaWNlX2FtdCI+NjcgMDM0ICQ8L3NwYW4+PGltZyBjbGFzcz0icHJpY2Utc2NyYXRjaCBsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJsZWZvcmQuY29tLy9pbWFnZXMvcmVkLWxpbmUtdGlueS5wbmciIGFsdD0icmVkIGxpbmUgdGlueSIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPjwvc3Bhbj48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvRm9yZC1TdXBlcl9EdXR5X0ZfMzUwX1NSVy0yMDI3Lmh0bWwiIGNsYXNzPSJpdGVtLXdyYXAiIGRhdGEtbWVudS10cmFuc2xhdGU9IjQyNDg3ODE1MjQiPlN1cGVyIER1dHkgRiAzNTAgw6Agcm91ZXMgYXJyacOocmUgc2ltcGxlcyAyMDI3PC9hPjwvbGk+CjxsaSBkYXRhLWlkPSIyMzE5MDUxMjYxIiBpZD0iTWFpbk1lbnVfNmEyZWIxYTRjOGY4OSIgY2xhc3M9Imhhc0ltZyIgZGF0YS1tb2RlbGlkPSI2Mjk5OSI+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0ZvcmQtU3VwZXJfRHV0eV9GXzI1MF9TUlctMjAyNS5odG1sIiBjbGFzcz0iaW1nTGluayBpc0JvbGQgIj48aW1nIGFsdD0iU3VwZXIgRHV0eSBGLTI1MCBTUlcgMjAyNSIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvRm9yZC9TdXBlciBEdXR5IEZfMjUwIFNSVy8yMDI1L1QvNDY1Mzg0L0JsdWUvcHJvZmlsZS5wbmc\/Y2I9NmEyZWIxOTI3OGZmNCIgZXJyb3JpbWc9Ii8vaW1nLmQyY21lZGlhLmNhL2Nhcm1ha2VzL2ZvcmRfYy5wbmciIHRpdGxlPSJTdXBlciBEdXR5IEYtMjUwIFNSVyAyMDI1IiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+PC9hPjxzcGFuIGNsYXNzPSJwcmljZSI+PHNwYW4gY2xhc3M9InByaWNlX3RleHQiPsOgIHBhcnRpciBkZTwvc3Bhbj48c3BhbiBjbGFzcz0icHJpY2VfYW10Ij42MiA0NzQgJDwvc3Bhbj48aW1nIGNsYXNzPSJwcmljZS1zY3JhdGNoIGxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmxlZm9yZC5jb20vL2ltYWdlcy9yZWQtbGluZS10aW55LnBuZyIgYWx0PSJyZWQgbGluZSB0aW55IiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+PC9zcGFuPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9Gb3JkLVN1cGVyX0R1dHlfRl8yNTBfU1JXLTIwMjUuaHRtbCI+U3VwZXIgRHV0eSBGLTI1MCBTUlcgMjAyNTwvYT48L2xpPgo8bGkgZGF0YS1pZD0iMTc0NTU5NzA1NyIgaWQ9Ik1haW5NZW51XzZhMmViMWE0YzhmOGUiIGNsYXNzPSJoYXNJbWciIGRhdGEtbW9kZWxpZD0iNzI3MDAiPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9Gb3JkLVN1cGVyX0R1dHlfRl8yNTBfU1JXLTIwMjYuaHRtbCIgY2xhc3M9ImltZ0xpbmsgaXNCb2xkICI+PGltZyBhbHQ9IlN1cGVyIER1dHkgRi0yNTAgU1JXIDIwMjYiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL0ZvcmQvU3VwZXIgRHV0eSBGXzI1MCBTUlcvMjAyNi9ULzQ3OTQyMS9CbHVlL3Byb2ZpbGUucG5nP2NiPTZhMmViMTkyNzhmZjQiIGVycm9yaW1nPSIvL2ltZy5kMmNtZWRpYS5jYS9jYXJtYWtlcy9mb3JkX2MucG5nIiB0aXRsZT0iU3VwZXIgRHV0eSBGLTI1MCBTUlcgMjAyNiIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPjwvYT48c3BhbiBjbGFzcz0icHJpY2UiPjxzcGFuIGNsYXNzPSJwcmljZV90ZXh0Ij7DoCBwYXJ0aXIgZGU8L3NwYW4+PHNwYW4gY2xhc3M9InByaWNlX2FtdCI+NjQgMDM0ICQ8L3NwYW4+PGltZyBjbGFzcz0icHJpY2Utc2NyYXRjaCBsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJsZWZvcmQuY29tLy9pbWFnZXMvcmVkLWxpbmUtdGlueS5wbmciIGFsdD0icmVkIGxpbmUgdGlueSIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPjwvc3Bhbj48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvRm9yZC1TdXBlcl9EdXR5X0ZfMjUwX1NSVy0yMDI2Lmh0bWwiPlN1cGVyIER1dHkgRi0yNTAgU1JXIDIwMjY8L2E+PC9saT4KPGxpIGRhdGEtaWQ9IjIxNjA3NTYzMzAiIGlkPSJNYWluTWVudV82YTJlYjFhNGM4ZjkyIiBjbGFzcz0iaGFzSW1nIiBkYXRhLW1vZGVsaWQ9Ijc3NzM5Ij48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvRm9yZC1TdXBlcl9EdXR5X0ZfMjUwX1NSVy0yMDI3Lmh0bWwiIGNsYXNzPSJpbWdMaW5rIGlzQm9sZCAiPjxpbWcgYWx0PSJTdXBlciBEdXR5IEYtMjUwIFNSVyAyMDI3IiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9Gb3JkL1N1cGVyIER1dHkgRl8yNTAgU1JXLzIwMjcvVC80ODYwNjcvQmx1ZS9wcm9maWxlLnBuZz9jYj02YTJlYjE5Mjc4ZmY0IiBlcnJvcmltZz0iLy9pbWcuZDJjbWVkaWEuY2EvY2FybWFrZXMvZm9yZF9jLnBuZyIgdGl0bGU9IlN1cGVyIER1dHkgRi0yNTAgU1JXIDIwMjciIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj48L2E+PHNwYW4gY2xhc3M9InByaWNlIj48c3BhbiBjbGFzcz0icHJpY2VfdGV4dCI+w6AgcGFydGlyIGRlPC9zcGFuPjxzcGFuIGNsYXNzPSJwcmljZV9hbXQiPjY0IDUzNCAkPC9zcGFuPjxpbWcgY2xhc3M9InByaWNlLXNjcmF0Y2ggbGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FybGVmb3JkLmNvbS8vaW1hZ2VzL3JlZC1saW5lLXRpbnkucG5nIiBhbHQ9InJlZCBsaW5lIHRpbnkiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj48L3NwYW4+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0ZvcmQtU3VwZXJfRHV0eV9GXzI1MF9TUlctMjAyNy5odG1sIj5TdXBlciBEdXR5IEYtMjUwIFNSVyAyMDI3PC9hPjwvbGk+CjxsaSBkYXRhLWlkPSIxMjExMDM0MDM5IiBpZD0iTWFpbk1lbnVfNmEyZWIxYTRjOGY5NiIgY2xhc3M9Imhhc0ltZyIgZGF0YS1tb2RlbGlkPSI3MjIwOCI+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0ZvcmQtU3VwZXJfRHV0eV9GXzQ1MF9EUlctMjAyNi5odG1sIiBjbGFzcz0iaW1nTGluayBpc0JvbGQgIj48aW1nIGFsdD0iU3VwZXIgRHV0eSBGLTQ1MCBEUlcgMjAyNiIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvRm9yZC9TdXBlciBEdXR5IEZfNDUwIERSVy8yMDI2L1QvNDc3OTIzL1JlZC9wcm9maWxlLnBuZz9jYj02YTJlYjE5Mjc4ZmY0IiBlcnJvcmltZz0iLy9pbWcuZDJjbWVkaWEuY2EvY2FybWFrZXMvZm9yZF9jLnBuZyIgdGl0bGU9IlN1cGVyIER1dHkgRi00NTAgRFJXIDIwMjYiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj48L2E+PHNwYW4gY2xhc3M9InByaWNlIj48c3BhbiBjbGFzcz0icHJpY2VfdGV4dCI+w6AgcGFydGlyIGRlPC9zcGFuPjxzcGFuIGNsYXNzPSJwcmljZV9hbXQiPjcxIDIxMCAkPC9zcGFuPjxpbWcgY2xhc3M9InByaWNlLXNjcmF0Y2ggbGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FybGVmb3JkLmNvbS8vaW1hZ2VzL3JlZC1saW5lLXRpbnkucG5nIiBhbHQ9InJlZCBsaW5lIHRpbnkiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj48L3NwYW4+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0ZvcmQtU3VwZXJfRHV0eV9GXzQ1MF9EUlctMjAyNi5odG1sIj5TdXBlciBEdXR5IEYtNDUwIERSVyAyMDI2PC9hPjwvbGk+CjxsaSBkYXRhLWlkPSIyNzAwMDc0MzMyIiBpZD0iTWFpbk1lbnVfNmEyZWIxYTRjOGY5YSIgY2xhc3M9Imxhc3RJdGVtIGhhc0ltZyIgZGF0YS1tb2RlbGlkPSI3NzczNyI+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0ZvcmQtU3VwZXJfRHV0eV9GXzQ1MF9EUlctMjAyNy5odG1sIiBjbGFzcz0iaW1nTGluayBpc0JvbGQgIj48aW1nIGFsdD0iU3VwZXIgRHV0eSBGLTQ1MCBEUlcgMjAyNyIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvRm9yZC9TdXBlciBEdXR5IEZfNDUwIERSVy8yMDI3L1QvNDg2MDMyL0JsdWUvcHJvZmlsZS5wbmc\/Y2I9NmEyZWIxOTI3OGZmNCIgZXJyb3JpbWc9Ii8vaW1nLmQyY21lZGlhLmNhL2Nhcm1ha2VzL2ZvcmRfYy5wbmciIHRpdGxlPSJTdXBlciBEdXR5IEYtNDUwIERSVyAyMDI3IiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+PC9hPjxzcGFuIGNsYXNzPSJwcmljZSI+PHNwYW4gY2xhc3M9InByaWNlX3RleHQiPsOgIHBhcnRpciBkZTwvc3Bhbj48c3BhbiBjbGFzcz0icHJpY2VfYW10Ij43MSAyMTAgJDwvc3Bhbj48aW1nIGNsYXNzPSJwcmljZS1zY3JhdGNoIGxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmxlZm9yZC5jb20vL2ltYWdlcy9yZWQtbGluZS10aW55LnBuZyIgYWx0PSJyZWQgbGluZSB0aW55IiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+PC9zcGFuPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9Gb3JkLVN1cGVyX0R1dHlfRl80NTBfRFJXLTIwMjcuaHRtbCI+U3VwZXIgRHV0eSBGLTQ1MCBEUlcgMjAyNzwvYT48L2xpPgo8L3VsPjwvbGk+CjwvdWw+PC9saT4KPGxpIGRhdGEtaWQ9Ik5FV19QSEVWIiBpZD0iTWFpbk1lbnVfNmEyZWIxYTRjOGZiNSIgY2xhc3M9Imhhc1N1YiI+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL1BIRVYuaHRtbCI+SHlicmlkZXMgcmVjaGFyZ2VhYmxlczwvYT48dWwgY2xhc3M9InN1YiI+PGxpIGRhdGEtaWQ9Ik5FV19QSEVWX0ZvcmQiIGlkPSJNYWluTWVudV82YTJlYjFhNGM4ZmIzIiBjbGFzcz0iZmlyc3RJdGVtIGxhc3RJdGVtIGhhc1N1YiBoYXNJbWciPjx1bCBjbGFzcz0ic3ViIj48bGkgZGF0YS1pZD0iMTYwMzAxMzcxMiIgaWQ9Ik1haW5NZW51XzZhMmViMWE0YzhmYWEiIGNsYXNzPSJmaXJzdEl0ZW0gaGFzSW1nIiBkYXRhLW1vZGVsaWQ9IjU5MzkyMDAxIj48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvRm9yZC1Fc2NhcGVfUEhFVi0yMDI1Lmh0bWwiIGNsYXNzPSJpbWdMaW5rIGlzQm9sZCAiPjxpbWcgYWx0PSJFc2NhcGUgVkhSIDIwMjUiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL0ZvcmQvRXNjYXBlIFBIRVYvMjAyNS9ULzQ2MTIwNi9CbHVlL3Byb2ZpbGUucG5nP2NiPTZhMmViMTkyNzhmZjQiIGVycm9yaW1nPSIvL2ltZy5kMmNtZWRpYS5jYS9jYXJtYWtlcy9mb3JkX2MucG5nIiB0aXRsZT0iRXNjYXBlIFZIUiAyMDI1IiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+PC9hPjxzcGFuIGNsYXNzPSJwcmljZSI+PHNwYW4gY2xhc3M9InByaWNlX3RleHQiPsOgIHBhcnRpciBkZTwvc3Bhbj48c3BhbiBjbGFzcz0icHJpY2VfYW10Ij40MyA4OTQgJDwvc3Bhbj48aW1nIGNsYXNzPSJwcmljZS1zY3JhdGNoIGxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmxlZm9yZC5jb20vL2ltYWdlcy9yZWQtbGluZS10aW55LnBuZyIgYWx0PSJyZWQgbGluZSB0aW55IiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+PC9zcGFuPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9Gb3JkLUVzY2FwZV9QSEVWLTIwMjUuaHRtbCI+RXNjYXBlIFZIUiAyMDI1PC9hPjwvbGk+CjxsaSBkYXRhLWlkPSIxMzA2MTI5MTA3IiBpZD0iTWFpbk1lbnVfNmEyZWIxYTRjOGZhZiIgY2xhc3M9Imxhc3RJdGVtIGhhc0ltZyIgZGF0YS1tb2RlbGlkPSI3MjM1NDAwMSI+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0ZvcmQtRXNjYXBlX1BIRVYtMjAyNi5odG1sIiBjbGFzcz0iaW1nTGluayBpc0JvbGQgIj48aW1nIGFsdD0iRXNjYXBlIFZIUiAyMDI2IiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9Gb3JkL0VzY2FwZSBQSEVWLzIwMjYvVC80Nzg4MzYvQmx1ZS9wcm9maWxlLnBuZz9jYj02YTJlYjE5Mjc4ZmY0IiBlcnJvcmltZz0iLy9pbWcuZDJjbWVkaWEuY2EvY2FybWFrZXMvZm9yZF9jLnBuZyIgdGl0bGU9IkVzY2FwZSBWSFIgMjAyNiIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPjwvYT48c3BhbiBjbGFzcz0icHJpY2UiPjxzcGFuIGNsYXNzPSJwcmljZV90ZXh0Ij7DoCBwYXJ0aXIgZGU8L3NwYW4+PHNwYW4gY2xhc3M9InByaWNlX2FtdCI+NDMgOTk0ICQ8L3NwYW4+PGltZyBjbGFzcz0icHJpY2Utc2NyYXRjaCBsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJsZWZvcmQuY29tLy9pbWFnZXMvcmVkLWxpbmUtdGlueS5wbmciIGFsdD0icmVkIGxpbmUgdGlueSIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPjxzcGFuIGNsYXNzPSJwcmljZV9wcm9tbyI+NDEgMzg2ICQ8L3NwYW4+PC9zcGFuPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9Gb3JkLUVzY2FwZV9QSEVWLTIwMjYuaHRtbCI+RXNjYXBlIFZIUiAyMDI2PC9hPjwvbGk+CjwvdWw+PC9saT4KPC91bD48L2xpPgo8bGkgZGF0YS1pZD0iTkVXX0hZQlJJRCIgaWQ9Ik1haW5NZW51XzZhMmViMWE0YzhmY2QiIGNsYXNzPSJoYXNTdWIiPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9IeWJyaWRlcy5odG1sIiBkYXRhLW1lbnUtdHJhbnNsYXRlPSJORVdfSFlCUklEIj5IeWJyaWRlczwvYT48dWwgY2xhc3M9InN1YiI+PGxpIGRhdGEtaWQ9Ik5FV19IWUJSSURfRm9yZCIgaWQ9Ik1haW5NZW51XzZhMmViMWE0YzhmY2IiIGNsYXNzPSJmaXJzdEl0ZW0gbGFzdEl0ZW0gaGFzU3ViIGhhc0ltZyI+PHVsIGNsYXNzPSJzdWIiPjxsaSBkYXRhLWlkPSIxMTcyMDkwOTc0IiBpZD0iTWFpbk1lbnVfNmEyZWIxYTRjOGZiYSIgY2xhc3M9ImZpcnN0SXRlbSBoYXNJbWciIGRhdGEtbW9kZWxpZD0iNTkzOTIwMDAiPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9Gb3JkLUVzY2FwZV9IeWJyaWQtMjAyNS5odG1sIiBjbGFzcz0iaW1nTGluayBpc0JvbGQgIj48aW1nIGFsdD0iRXNjYXBlIEh5YnJpZGUgMjAyNSIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvRm9yZC9Fc2NhcGUgSHlicmlkLzIwMjUvVC80NjEyMTAvQmx1ZS9wcm9maWxlLnBuZz9jYj02YTJlYjE5Mjc4ZmY0IiBlcnJvcmltZz0iLy9pbWcuZDJjbWVkaWEuY2EvY2FybWFrZXMvZm9yZF9jLnBuZyIgdGl0bGU9IkVzY2FwZSBIeWJyaWRlIDIwMjUiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj48L2E+PHNwYW4gY2xhc3M9InByaWNlIj48c3BhbiBjbGFzcz0icHJpY2VfdGV4dCI+w6AgcGFydGlyIGRlPC9zcGFuPjxzcGFuIGNsYXNzPSJwcmljZV9hbXQiPjQ2IDM0NCAkPC9zcGFuPjxpbWcgY2xhc3M9InByaWNlLXNjcmF0Y2ggbGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FybGVmb3JkLmNvbS8vaW1hZ2VzL3JlZC1saW5lLXRpbnkucG5nIiBhbHQ9InJlZCBsaW5lIHRpbnkiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj48L3NwYW4+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0ZvcmQtRXNjYXBlX0h5YnJpZC0yMDI1Lmh0bWwiPkVzY2FwZSBIeWJyaWRlIDIwMjU8L2E+PC9saT4KPGxpIGRhdGEtaWQ9IjI2MjgxMjgzNTciIGlkPSJNYWluTWVudV82YTJlYjFhNGM4ZmJmIiBjbGFzcz0iaGFzSW1nIiBkYXRhLW1vZGVsaWQ9IjcyMzU0MDAwIj48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvRm9yZC1Fc2NhcGVfSHlicmlkLTIwMjYuaHRtbCIgY2xhc3M9ImltZ0xpbmsgaXNCb2xkICI+PGltZyBhbHQ9IkVzY2FwZSBIeWJyaWRlIDIwMjYiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL0ZvcmQvRXNjYXBlIEh5YnJpZC8yMDI2L1QvNDc4ODMwL0JsdWUvcHJvZmlsZS5wbmc\/Y2I9NmEyZWIxOTI3OGZmNCIgZXJyb3JpbWc9Ii8vaW1nLmQyY21lZGlhLmNhL2Nhcm1ha2VzL2ZvcmRfYy5wbmciIHRpdGxlPSJFc2NhcGUgSHlicmlkZSAyMDI2IiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+PC9hPjxzcGFuIGNsYXNzPSJwcmljZSI+PHNwYW4gY2xhc3M9InByaWNlX3RleHQiPsOgIHBhcnRpciBkZTwvc3Bhbj48c3BhbiBjbGFzcz0icHJpY2VfYW10Ij40NiA5OTQgJDwvc3Bhbj48aW1nIGNsYXNzPSJwcmljZS1zY3JhdGNoIGxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmxlZm9yZC5jb20vL2ltYWdlcy9yZWQtbGluZS10aW55LnBuZyIgYWx0PSJyZWQgbGluZSB0aW55IiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+PC9zcGFuPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9Gb3JkLUVzY2FwZV9IeWJyaWQtMjAyNi5odG1sIj5Fc2NhcGUgSHlicmlkZSAyMDI2PC9hPjwvbGk+CjxsaSBkYXRhLWlkPSIxMjQ3MDY5MTE0IiBpZD0iTWFpbk1lbnVfNmEyZWIxYTRjOGZjMyIgY2xhc3M9Imhhc0ltZyIgZGF0YS1tb2RlbGlkPSI2MDUwMzAwMCI+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0ZvcmQtTWF2ZXJpY2tfSHlicmlkLTIwMjUuaHRtbCIgY2xhc3M9ImltZ0xpbmsgaXNCb2xkICI+PGltZyBhbHQ9Ik1hdmVyaWNrIEh5YnJpZGUgMjAyNSIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvRm9yZC9NYXZlcmljayBIeWJyaWQvMjAyNS9ULzQ2MjgzNS9CbHVlL3Byb2ZpbGUucG5nP2NiPTZhMmViMTkyNzhmZjQiIGVycm9yaW1nPSIvL2ltZy5kMmNtZWRpYS5jYS9jYXJtYWtlcy9mb3JkX2MucG5nIiB0aXRsZT0iTWF2ZXJpY2sgSHlicmlkZSAyMDI1IiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+PC9hPjxzcGFuIGNsYXNzPSJwcmljZSI+PHNwYW4gY2xhc3M9InByaWNlX3RleHQiPsOgIHBhcnRpciBkZTwvc3Bhbj48c3BhbiBjbGFzcz0icHJpY2VfYW10Ij4zNiA5OTUgJDwvc3Bhbj48aW1nIGNsYXNzPSJwcmljZS1zY3JhdGNoIGxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmxlZm9yZC5jb20vL2ltYWdlcy9yZWQtbGluZS10aW55LnBuZyIgYWx0PSJyZWQgbGluZSB0aW55IiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+PC9zcGFuPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9Gb3JkLU1hdmVyaWNrX0h5YnJpZC0yMDI1Lmh0bWwiPk1hdmVyaWNrIEh5YnJpZGUgMjAyNTwvYT48L2xpPgo8bGkgZGF0YS1pZD0iMTY3MTkyNzY0NiIgaWQ9Ik1haW5NZW51XzZhMmViMWE0YzhmYzgiIGNsYXNzPSJsYXN0SXRlbSBoYXNJbWciIGRhdGEtbW9kZWxpZD0iNzM4MDAwMDAiPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9Gb3JkLU1hdmVyaWNrX0h5YnJpZC0yMDI2Lmh0bWwiIGNsYXNzPSJpbWdMaW5rIGlzQm9sZCAiPjxpbWcgYWx0PSJNYXZlcmljayBIeWJyaWRlIDIwMjYiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL0ZvcmQvTWF2ZXJpY2sgSHlicmlkLzIwMjYvVC80ODExNzQvQmx1ZS9wcm9maWxlLnBuZz9jYj02YTJlYjE5Mjc4ZmY0IiBlcnJvcmltZz0iLy9pbWcuZDJjbWVkaWEuY2EvY2FybWFrZXMvZm9yZF9jLnBuZyIgdGl0bGU9Ik1hdmVyaWNrIEh5YnJpZGUgMjAyNiIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPjwvYT48c3BhbiBjbGFzcz0icHJpY2UiPjxzcGFuIGNsYXNzPSJwcmljZV90ZXh0Ij7DoCBwYXJ0aXIgZGU8L3NwYW4+PHNwYW4gY2xhc3M9InByaWNlX2FtdCI+MzggMDk1ICQ8L3NwYW4+PGltZyBjbGFzcz0icHJpY2Utc2NyYXRjaCBsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJsZWZvcmQuY29tLy9pbWFnZXMvcmVkLWxpbmUtdGlueS5wbmciIGFsdD0icmVkIGxpbmUgdGlueSIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPjwvc3Bhbj48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvRm9yZC1NYXZlcmlja19IeWJyaWQtMjAyNi5odG1sIj5NYXZlcmljayBIeWJyaWRlIDIwMjY8L2E+PC9saT4KPC91bD48L2xpPgo8L3VsPjwvbGk+CjxsaSBkYXRhLWlkPSJORVdfRUxFQ1RSSUMiIGlkPSJNYWluTWVudV82YTJlYjFhNGM4ZmU0IiBjbGFzcz0iaGFzU3ViIj48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvZWxlY3RyaXF1ZS5odG1sIiBkYXRhLW1lbnUtdHJhbnNsYXRlPSJORVdfRUxFQ1RSSUMiPsOJbGVjdHJpcXVlczwvYT48dWwgY2xhc3M9InN1YiI+PGxpIGRhdGEtaWQ9Ik5FV19FTEVDVFJJQ19Gb3JkIiBpZD0iTWFpbk1lbnVfNmEyZWIxYTRjOGZlMiIgY2xhc3M9ImZpcnN0SXRlbSBsYXN0SXRlbSBoYXNTdWIgaGFzSW1nIj48dWwgY2xhc3M9InN1YiI+PGxpIGRhdGEtaWQ9IjM5MzE2NTA1MTEiIGlkPSJNYWluTWVudV82YTJlYjFhNGM4ZmQyIiBjbGFzcz0iZmlyc3RJdGVtIGhhc0ltZyIgZGF0YS1tb2RlbGlkPSI2MTQwMSI+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0ZvcmQtRl8xNTBfTGlnaHRuaW5nLTIwMjUuaHRtbCIgY2xhc3M9ImltZ0xpbmsgaXNCb2xkICI+PGltZyBhbHQ9IkYtMTUwIExpZ2h0bmluZyAyMDI1IiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9Gb3JkL0ZfMTUwIExpZ2h0bmluZy8yMDI1L1QvNDYzNjg0L0JsdWUvcHJvZmlsZS5wbmc\/Y2I9NmEyZWIxOTI3OGZmNCIgZXJyb3JpbWc9Ii8vaW1nLmQyY21lZGlhLmNhL2Nhcm1ha2VzL2ZvcmRfYy5wbmciIHRpdGxlPSJGLTE1MCBMaWdodG5pbmcgMjAyNSIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPjwvYT48c3BhbiBjbGFzcz0icHJpY2UiPjxzcGFuIGNsYXNzPSJwcmljZV90ZXh0Ij7DoCBwYXJ0aXIgZGU8L3NwYW4+PHNwYW4gY2xhc3M9InByaWNlX2FtdCI+NjIgODkwICQ8L3NwYW4+PGltZyBjbGFzcz0icHJpY2Utc2NyYXRjaCBsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJsZWZvcmQuY29tLy9pbWFnZXMvcmVkLWxpbmUtdGlueS5wbmciIGFsdD0icmVkIGxpbmUgdGlueSIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPjxzcGFuIGNsYXNzPSJwcmljZV9wcm9tbyI+NjEgMTUxICQ8L3NwYW4+PC9zcGFuPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9Gb3JkLUZfMTUwX0xpZ2h0bmluZy0yMDI1Lmh0bWwiPkYtMTUwIExpZ2h0bmluZyAyMDI1PC9hPjwvbGk+CjxsaSBkYXRhLWlkPSIxOTI3MzY2NjA3IiBpZD0iTWFpbk1lbnVfNmEyZWIxYTRjOGZkNiIgY2xhc3M9Imhhc0ltZyIgZGF0YS1tb2RlbGlkPSI3NDMwMiI+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0ZvcmQtRl8xNTBfTGlnaHRuaW5nLTIwMjYuaHRtbCIgY2xhc3M9ImltZ0xpbmsgaXNCb2xkICI+PGltZyBhbHQ9IkYtMTUwIExpZ2h0bmluZyAyMDI2IiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9Gb3JkL0ZfMTUwIExpZ2h0bmluZy8yMDI2L1QvNDgxODg2L0JsdWUvcHJvZmlsZS5wbmc\/Y2I9NmEyZWIxOTI3OGZmNCIgZXJyb3JpbWc9Ii8vaW1nLmQyY21lZGlhLmNhL2Nhcm1ha2VzL2ZvcmRfYy5wbmciIHRpdGxlPSJGLTE1MCBMaWdodG5pbmcgMjAyNiIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPjwvYT48c3BhbiBjbGFzcz0icHJpY2UiPjxzcGFuIGNsYXNzPSJwcmljZV90ZXh0Ij7DoCBwYXJ0aXIgZGU8L3NwYW4+PHNwYW4gY2xhc3M9InByaWNlX2FtdCI+NzMgODkwICQ8L3NwYW4+PGltZyBjbGFzcz0icHJpY2Utc2NyYXRjaCBsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJsZWZvcmQuY29tLy9pbWFnZXMvcmVkLWxpbmUtdGlueS5wbmciIGFsdD0icmVkIGxpbmUgdGlueSIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPjwvc3Bhbj48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvRm9yZC1GXzE1MF9MaWdodG5pbmctMjAyNi5odG1sIj5GLTE1MCBMaWdodG5pbmcgMjAyNjwvYT48L2xpPgo8bGkgZGF0YS1pZD0iMjY2MDY2NjM2MSIgaWQ9Ik1haW5NZW51XzZhMmViMWE0YzhmZGEiIGNsYXNzPSJoYXNJbWciIGRhdGEtbW9kZWxpZD0iNjQ2MDMiPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9Gb3JkLU11c3RhbmdfTWFjaF9FLTIwMjUuaHRtbCIgY2xhc3M9ImltZ0xpbmsgaXNCb2xkICI+PGltZyBhbHQ9Ik11c3RhbmcgTWFjaC1FIDIwMjUiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL0ZvcmQvTXVzdGFuZyBNYWNoX0UvMjAyNS9ULzQ2NzQ5Mi9CbHVlL3Byb2ZpbGUucG5nP2NiPTZhMmViMTkyNzhmZjQiIGVycm9yaW1nPSIvL2ltZy5kMmNtZWRpYS5jYS9jYXJtYWtlcy9mb3JkX2MucG5nIiB0aXRsZT0iTXVzdGFuZyBNYWNoLUUgMjAyNSIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPjwvYT48c3BhbiBjbGFzcz0icHJpY2UiPjxzcGFuIGNsYXNzPSJwcmljZV90ZXh0Ij7DoCBwYXJ0aXIgZGU8L3NwYW4+PHNwYW4gY2xhc3M9InByaWNlX2FtdCI+NTUgNjkwICQ8L3NwYW4+PGltZyBjbGFzcz0icHJpY2Utc2NyYXRjaCBsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJsZWZvcmQuY29tLy9pbWFnZXMvcmVkLWxpbmUtdGlueS5wbmciIGFsdD0icmVkIGxpbmUgdGlueSIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPjxzcGFuIGNsYXNzPSJwcmljZV9wcm9tbyI+NTMgOTUxICQ8L3NwYW4+PC9zcGFuPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9Gb3JkLU11c3RhbmdfTWFjaF9FLTIwMjUuaHRtbCI+TXVzdGFuZyBNYWNoLUUgMjAyNTwvYT48L2xpPgo8bGkgZGF0YS1pZD0iMTIwNjY2MjU5NCIgaWQ9Ik1haW5NZW51XzZhMmViMWE0YzhmZGUiIGNsYXNzPSJsYXN0SXRlbSBoYXNJbWciIGRhdGEtbW9kZWxpZD0iNzQxMTkiPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9Gb3JkLU11c3RhbmdfTWFjaF9FLTIwMjYuaHRtbCIgY2xhc3M9ImltZ0xpbmsgaXNCb2xkICI+PGltZyBhbHQ9Ik11c3RhbmcgTWFjaC1FIDIwMjYiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL0ZvcmQvTXVzdGFuZyBNYWNoX0UvMjAyNi9ULzQ4MTY5OS9CbHVlL3Byb2ZpbGUucG5nP2NiPTZhMmViMTkyNzhmZjQiIGVycm9yaW1nPSIvL2ltZy5kMmNtZWRpYS5jYS9jYXJtYWtlcy9mb3JkX2MucG5nIiB0aXRsZT0iTXVzdGFuZyBNYWNoLUUgMjAyNiIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPjwvYT48c3BhbiBjbGFzcz0icHJpY2UiPjxzcGFuIGNsYXNzPSJwcmljZV90ZXh0Ij7DoCBwYXJ0aXIgZGU8L3NwYW4+PHNwYW4gY2xhc3M9InByaWNlX2FtdCI+NDggMDkwICQ8L3NwYW4+PGltZyBjbGFzcz0icHJpY2Utc2NyYXRjaCBsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJsZWZvcmQuY29tLy9pbWFnZXMvcmVkLWxpbmUtdGlueS5wbmciIGFsdD0icmVkIGxpbmUgdGlueSIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPjwvc3Bhbj48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvRm9yZC1NdXN0YW5nX01hY2hfRS0yMDI2Lmh0bWwiPk11c3RhbmcgTWFjaC1FIDIwMjY8L2E+PC9saT4KPC91bD48L2xpPgo8L3VsPjwvbGk+CjxsaSBkYXRhLWlkPSJORVdfQ09NTUVSQ0lBTCIgaWQ9Ik1haW5NZW51XzZhMmViMWE0YzkwNDIiIGNsYXNzPSJoYXNTdWIiPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9jYW1pb25zLWNvbW1lcmNpYXV4Lmh0bWwiPkNvbW1lcmNpYWw8L2E+PHVsIGNsYXNzPSJzdWIiPjxsaSBkYXRhLWlkPSJORVdfQ09NTUVSQ0lBTF9Gb3JkIiBpZD0iTWFpbk1lbnVfNmEyZWIxYTRjOTA0MCIgY2xhc3M9ImZpcnN0SXRlbSBsYXN0SXRlbSBoYXNTdWIgaGFzSW1nIj48dWwgY2xhc3M9InN1YiI+PGxpIGRhdGEtaWQ9IjM2MDU1ODU4MjMiIGlkPSJNYWluTWVudV82YTJlYjFhNGM4ZmVhIiBjbGFzcz0iZmlyc3RJdGVtIGhhc0ltZyIgZGF0YS1tb2RlbGlkPSI3MjMzNyI+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0ZvcmQtRV9UcmFuc2l0X0NhcmdvX1Zhbi0yMDI2Lmh0bWwiIGNsYXNzPSJpdGVtLXdyYXAgaW1nTGluayI+PGltZyBhbHQ9IkUgVHJhbnNpdCBmb3VyZ29ubmV0dGUgdXRpbGl0YWlyZSAyMDI2IiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9Gb3JkL0VfVHJhbnNpdCBDYXJnbyBWYW4vMjAyNi9ULzQ3ODQ2OC9CbHVlL3Byb2ZpbGUucG5nP2NiPTZhMmViMTkyNzhmZjQiIGVycm9yaW1nPSIvL2ltZy5kMmNtZWRpYS5jYS9jYXJtYWtlcy9mb3JkX2MucG5nIiB0aXRsZT0iRSBUcmFuc2l0IGZvdXJnb25uZXR0ZSB1dGlsaXRhaXJlIDIwMjYiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj48L2E+PHNwYW4gY2xhc3M9InByaWNlIj48c3BhbiBjbGFzcz0icHJpY2VfdGV4dCI+w6AgcGFydGlyIGRlPC9zcGFuPjxzcGFuIGNsYXNzPSJwcmljZV9hbXQiPjc3IDA5NSAkPC9zcGFuPjxpbWcgY2xhc3M9InByaWNlLXNjcmF0Y2ggbGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FybGVmb3JkLmNvbS8vaW1hZ2VzL3JlZC1saW5lLXRpbnkucG5nIiBhbHQ9InJlZCBsaW5lIHRpbnkiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj48L3NwYW4+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0ZvcmQtRV9UcmFuc2l0X0NhcmdvX1Zhbi0yMDI2Lmh0bWwiIGNsYXNzPSJpdGVtLXdyYXAiPkUgVHJhbnNpdCBmb3VyZ29ubmV0dGUgdXRpbGl0YWlyZSAyMDI2PC9hPjwvbGk+CjxsaSBkYXRhLWlkPSIxODE4NjA5Mjk4IiBpZD0iTWFpbk1lbnVfNmEyZWIxYTRjOGZmMCIgY2xhc3M9Imhhc0ltZyIgZGF0YS1tb2RlbGlkPSI3Nzc0OCI+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0ZvcmQtRV9UcmFuc2l0X0NhcmdvX1Zhbi0yMDI3Lmh0bWwiIGNsYXNzPSJpdGVtLXdyYXAgaW1nTGluayI+PGltZyBhbHQ9IkUgVHJhbnNpdCBmb3VyZ29ubmV0dGUgdXRpbGl0YWlyZSAyMDI3IiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9Gb3JkL0VfVHJhbnNpdCBDYXJnbyBWYW4vMjAyNy9ULzQ4NjI3MS9CbHVlL3Byb2ZpbGUucG5nP2NiPTZhMmViMTkyNzhmZjQiIGVycm9yaW1nPSIvL2ltZy5kMmNtZWRpYS5jYS9jYXJtYWtlcy9mb3JkX2MucG5nIiB0aXRsZT0iRSBUcmFuc2l0IGZvdXJnb25uZXR0ZSB1dGlsaXRhaXJlIDIwMjciIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj48L2E+PHNwYW4gY2xhc3M9InByaWNlIj48c3BhbiBjbGFzcz0icHJpY2VfdGV4dCI+w6AgcGFydGlyIGRlPC9zcGFuPjxzcGFuIGNsYXNzPSJwcmljZV9hbXQiPjc3IDE5NSAkPC9zcGFuPjxpbWcgY2xhc3M9InByaWNlLXNjcmF0Y2ggbGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FybGVmb3JkLmNvbS8vaW1hZ2VzL3JlZC1saW5lLXRpbnkucG5nIiBhbHQ9InJlZCBsaW5lIHRpbnkiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj48L3NwYW4+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0ZvcmQtRV9UcmFuc2l0X0NhcmdvX1Zhbi0yMDI3Lmh0bWwiIGNsYXNzPSJpdGVtLXdyYXAiPkUgVHJhbnNpdCBmb3VyZ29ubmV0dGUgdXRpbGl0YWlyZSAyMDI3PC9hPjwvbGk+CjxsaSBkYXRhLWlkPSI0MDI3NDcyNjExIiBpZD0iTWFpbk1lbnVfNmEyZWIxYTRjOGZmNSIgY2xhc3M9Imhhc0ltZyIgZGF0YS1tb2RlbGlkPSI3MjM0OSI+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0ZvcmQtRV9UcmFuc2l0X0NoYXNzaXMtMjAyNi5odG1sIiBjbGFzcz0iaW1nTGluayBpc0JvbGQgIiBkYXRhLW1lbnUtdHJhbnNsYXRlPSI0MDI3NDcyNjExIj48aW1nIGFsdD0iRS1UcmFuc2l0IGNow6Jzc2lzIDIwMjYiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL0ZvcmQvRV9UcmFuc2l0IENoYXNzaXMvMjAyNi9ULzQ3ODU5Ni9CbHVlL3Byb2ZpbGUucG5nP2NiPTZhMmViMTkyNzhmZjQiIGVycm9yaW1nPSIvL2ltZy5kMmNtZWRpYS5jYS9jYXJtYWtlcy9mb3JkX2MucG5nIiB0aXRsZT0iRS1UcmFuc2l0IGNow6Jzc2lzIDIwMjYiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj48L2E+PHNwYW4gY2xhc3M9InByaWNlIj48c3BhbiBjbGFzcz0icHJpY2VfdGV4dCI+w6AgcGFydGlyIGRlPC9zcGFuPjxzcGFuIGNsYXNzPSJwcmljZV9hbXQiPjcyIDg0NSAkPC9zcGFuPjxpbWcgY2xhc3M9InByaWNlLXNjcmF0Y2ggbGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FybGVmb3JkLmNvbS8vaW1hZ2VzL3JlZC1saW5lLXRpbnkucG5nIiBhbHQ9InJlZCBsaW5lIHRpbnkiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj48L3NwYW4+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0ZvcmQtRV9UcmFuc2l0X0NoYXNzaXMtMjAyNi5odG1sIiBkYXRhLW1lbnUtdHJhbnNsYXRlPSI0MDI3NDcyNjExIj5FLVRyYW5zaXQgY2jDonNzaXMgMjAyNjwvYT48L2xpPgo8bGkgZGF0YS1pZD0iMjMxNjQ4MTE1OCIgaWQ9Ik1haW5NZW51XzZhMmViMWE0YzhmZmEiIGNsYXNzPSJoYXNJbWciIGRhdGEtbW9kZWxpZD0iNzc3MjAiPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9Gb3JkLUVfVHJhbnNpdF9DaGFzc2lzLTIwMjcuaHRtbCIgY2xhc3M9ImltZ0xpbmsgaXNCb2xkICIgZGF0YS1tZW51LXRyYW5zbGF0ZT0iMjMxNjQ4MTE1OCI+PGltZyBhbHQ9IkUtVHJhbnNpdCBjaMOic3NpcyAyMDI3IiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9Gb3JkL0VfVHJhbnNpdCBDaGFzc2lzLzIwMjcvVC80ODU4MzYvQmx1ZS9wcm9maWxlLnBuZz9jYj02YTJlYjE5Mjc4ZmY0IiBlcnJvcmltZz0iLy9pbWcuZDJjbWVkaWEuY2EvY2FybWFrZXMvZm9yZF9jLnBuZyIgdGl0bGU9IkUtVHJhbnNpdCBjaMOic3NpcyAyMDI3IiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+PC9hPjxzcGFuIGNsYXNzPSJwcmljZSI+PHNwYW4gY2xhc3M9InByaWNlX3RleHQiPsOgIHBhcnRpciBkZTwvc3Bhbj48c3BhbiBjbGFzcz0icHJpY2VfYW10Ij43MiA5NDUgJDwvc3Bhbj48aW1nIGNsYXNzPSJwcmljZS1zY3JhdGNoIGxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmxlZm9yZC5jb20vL2ltYWdlcy9yZWQtbGluZS10aW55LnBuZyIgYWx0PSJyZWQgbGluZSB0aW55IiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+PC9zcGFuPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9Gb3JkLUVfVHJhbnNpdF9DaGFzc2lzLTIwMjcuaHRtbCIgZGF0YS1tZW51LXRyYW5zbGF0ZT0iMjMxNjQ4MTE1OCI+RS1UcmFuc2l0IGNow6Jzc2lzIDIwMjc8L2E+PC9saT4KPGxpIGRhdGEtaWQ9IjE1NTA0ODI0OTkiIGlkPSJNYWluTWVudV82YTJlYjFhNGM4ZmZmIiBjbGFzcz0iaGFzSW1nIiBkYXRhLW1vZGVsaWQ9IjcyMzUwIj48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvRm9yZC1FX1RyYW5zaXRfQ3V0YXdheS0yMDI2Lmh0bWwiIGNsYXNzPSJpbWdMaW5rIGlzQm9sZCAiIGRhdGEtbWVudS10cmFuc2xhdGU9IjE1NTA0ODI0OTkiPjxpbWcgYWx0PSJFLVRyYW5zaXQgZm91cmdvbiB0cm9ucXXDqSAyMDI2IiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9Gb3JkL0VfVHJhbnNpdCBDdXRhd2F5LzIwMjYvVC80Nzg1OTgvQmx1ZS9wcm9maWxlLnBuZz9jYj02YTJlYjE5Mjc4ZmY0IiBlcnJvcmltZz0iLy9pbWcuZDJjbWVkaWEuY2EvY2FybWFrZXMvZm9yZF9jLnBuZyIgdGl0bGU9IkUtVHJhbnNpdCBmb3VyZ29uIHRyb25xdcOpIDIwMjYiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj48L2E+PHNwYW4gY2xhc3M9InByaWNlIj48c3BhbiBjbGFzcz0icHJpY2VfdGV4dCI+w6AgcGFydGlyIGRlPC9zcGFuPjxzcGFuIGNsYXNzPSJwcmljZV9hbXQiPjcyIDA0NSAkPC9zcGFuPjxpbWcgY2xhc3M9InByaWNlLXNjcmF0Y2ggbGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FybGVmb3JkLmNvbS8vaW1hZ2VzL3JlZC1saW5lLXRpbnkucG5nIiBhbHQ9InJlZCBsaW5lIHRpbnkiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj48L3NwYW4+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0ZvcmQtRV9UcmFuc2l0X0N1dGF3YXktMjAyNi5odG1sIiBkYXRhLW1lbnUtdHJhbnNsYXRlPSIxNTUwNDgyNDk5Ij5FLVRyYW5zaXQgZm91cmdvbiB0cm9ucXXDqSAyMDI2PC9hPjwvbGk+CjxsaSBkYXRhLWlkPSIzMzEzNTg4NzY1IiBpZD0iTWFpbk1lbnVfNmEyZWIxYTRjOTAwNCIgY2xhc3M9Imhhc0ltZyIgZGF0YS1tb2RlbGlkPSI3NzcyMiI+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0ZvcmQtRV9UcmFuc2l0X0N1dGF3YXktMjAyNy5odG1sIiBjbGFzcz0iaW1nTGluayBpc0JvbGQgIiBkYXRhLW1lbnUtdHJhbnNsYXRlPSIzMzEzNTg4NzY1Ij48aW1nIGFsdD0iRS1UcmFuc2l0IGZvdXJnb24gdHJvbnF1w6kgMjAyNyIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvRm9yZC9FX1RyYW5zaXQgQ3V0YXdheS8yMDI3L1QvNDg1ODQ4L0JsdWUvcHJvZmlsZS5wbmc\/Y2I9NmEyZWIxOTI3OGZmNCIgZXJyb3JpbWc9Ii8vaW1nLmQyY21lZGlhLmNhL2Nhcm1ha2VzL2ZvcmRfYy5wbmciIHRpdGxlPSJFLVRyYW5zaXQgZm91cmdvbiB0cm9ucXXDqSAyMDI3IiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+PC9hPjxzcGFuIGNsYXNzPSJwcmljZSI+PHNwYW4gY2xhc3M9InByaWNlX3RleHQiPsOgIHBhcnRpciBkZTwvc3Bhbj48c3BhbiBjbGFzcz0icHJpY2VfYW10Ij43MiAxNDUgJDwvc3Bhbj48aW1nIGNsYXNzPSJwcmljZS1zY3JhdGNoIGxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmxlZm9yZC5jb20vL2ltYWdlcy9yZWQtbGluZS10aW55LnBuZyIgYWx0PSJyZWQgbGluZSB0aW55IiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+PC9zcGFuPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9Gb3JkLUVfVHJhbnNpdF9DdXRhd2F5LTIwMjcuaHRtbCIgZGF0YS1tZW51LXRyYW5zbGF0ZT0iMzMxMzU4ODc2NSI+RS1UcmFuc2l0IGZvdXJnb24gdHJvbnF1w6kgMjAyNzwvYT48L2xpPgo8bGkgZGF0YS1pZD0iMTIxMTAzNDAzOSIgaWQ9Ik1haW5NZW51XzZhMmViMWE0YzkwMDgiIGNsYXNzPSJoYXNJbWciIGRhdGEtbW9kZWxpZD0iNzIyMDgiPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9Gb3JkLVN1cGVyX0R1dHlfRl80NTBfRFJXLTIwMjYuaHRtbCIgY2xhc3M9ImltZ0xpbmsgaXNCb2xkICI+PGltZyBhbHQ9IlN1cGVyIER1dHkgRi00NTAgRFJXIDIwMjYiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL0ZvcmQvU3VwZXIgRHV0eSBGXzQ1MCBEUlcvMjAyNi9ULzQ3NzkyMy9SZWQvcHJvZmlsZS5wbmc\/Y2I9NmEyZWIxOTI3OGZmNCIgZXJyb3JpbWc9Ii8vaW1nLmQyY21lZGlhLmNhL2Nhcm1ha2VzL2ZvcmRfYy5wbmciIHRpdGxlPSJTdXBlciBEdXR5IEYtNDUwIERSVyAyMDI2IiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+PC9hPjxzcGFuIGNsYXNzPSJwcmljZSI+PHNwYW4gY2xhc3M9InByaWNlX3RleHQiPsOgIHBhcnRpciBkZTwvc3Bhbj48c3BhbiBjbGFzcz0icHJpY2VfYW10Ij43MSAyMTAgJDwvc3Bhbj48aW1nIGNsYXNzPSJwcmljZS1zY3JhdGNoIGxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmxlZm9yZC5jb20vL2ltYWdlcy9yZWQtbGluZS10aW55LnBuZyIgYWx0PSJyZWQgbGluZSB0aW55IiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+PC9zcGFuPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9Gb3JkLVN1cGVyX0R1dHlfRl80NTBfRFJXLTIwMjYuaHRtbCI+U3VwZXIgRHV0eSBGLTQ1MCBEUlcgMjAyNjwvYT48L2xpPgo8bGkgZGF0YS1pZD0iMjcwMDA3NDMzMiIgaWQ9Ik1haW5NZW51XzZhMmViMWE0YzkwMGQiIGNsYXNzPSJoYXNJbWciIGRhdGEtbW9kZWxpZD0iNzc3MzciPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9Gb3JkLVN1cGVyX0R1dHlfRl80NTBfRFJXLTIwMjcuaHRtbCIgY2xhc3M9ImltZ0xpbmsgaXNCb2xkICI+PGltZyBhbHQ9IlN1cGVyIER1dHkgRi00NTAgRFJXIDIwMjciIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL0ZvcmQvU3VwZXIgRHV0eSBGXzQ1MCBEUlcvMjAyNy9ULzQ4NjAzMi9CbHVlL3Byb2ZpbGUucG5nP2NiPTZhMmViMTkyNzhmZjQiIGVycm9yaW1nPSIvL2ltZy5kMmNtZWRpYS5jYS9jYXJtYWtlcy9mb3JkX2MucG5nIiB0aXRsZT0iU3VwZXIgRHV0eSBGLTQ1MCBEUlcgMjAyNyIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPjwvYT48c3BhbiBjbGFzcz0icHJpY2UiPjxzcGFuIGNsYXNzPSJwcmljZV90ZXh0Ij7DoCBwYXJ0aXIgZGU8L3NwYW4+PHNwYW4gY2xhc3M9InByaWNlX2FtdCI+NzEgMjEwICQ8L3NwYW4+PGltZyBjbGFzcz0icHJpY2Utc2NyYXRjaCBsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJsZWZvcmQuY29tLy9pbWFnZXMvcmVkLWxpbmUtdGlueS5wbmciIGFsdD0icmVkIGxpbmUgdGlueSIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPjwvc3Bhbj48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvRm9yZC1TdXBlcl9EdXR5X0ZfNDUwX0RSVy0yMDI3Lmh0bWwiPlN1cGVyIER1dHkgRi00NTAgRFJXIDIwMjc8L2E+PC9saT4KPGxpIGRhdGEtaWQ9IjM1MzQ0NzI5MDUiIGlkPSJNYWluTWVudV82YTJlYjFhNGM5MDExIiBjbGFzcz0iaGFzSW1nIiBkYXRhLW1vZGVsaWQ9IjcyMjIzIj48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvRm9yZC1TdXBlcl9EdXR5X0ZfNTUwX0RSVy0yMDI2Lmh0bWwiIGNsYXNzPSJpbWdMaW5rIGlzQm9sZCAiPjxpbWcgYWx0PSJTdXBlciBEdXR5IEYtNTUwIERSVyAyMDI2IiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9Gb3JkL1N1cGVyIER1dHkgRl81NTAgRFJXLzIwMjYvVC80Nzc5NjAvR3JheS9wcm9maWxlLnBuZz9jYj02YTJlYjE5Mjc4ZmY0IiBlcnJvcmltZz0iLy9pbWcuZDJjbWVkaWEuY2EvY2FybWFrZXMvZm9yZF9jLnBuZyIgdGl0bGU9IlN1cGVyIER1dHkgRi01NTAgRFJXIDIwMjYiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj48L2E+PHNwYW4gY2xhc3M9InByaWNlIj48c3BhbiBjbGFzcz0icHJpY2VfdGV4dCI+w6AgcGFydGlyIGRlPC9zcGFuPjxzcGFuIGNsYXNzPSJwcmljZV9hbXQiPjczIDQxMCAkPC9zcGFuPjxpbWcgY2xhc3M9InByaWNlLXNjcmF0Y2ggbGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FybGVmb3JkLmNvbS8vaW1hZ2VzL3JlZC1saW5lLXRpbnkucG5nIiBhbHQ9InJlZCBsaW5lIHRpbnkiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj48L3NwYW4+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0ZvcmQtU3VwZXJfRHV0eV9GXzU1MF9EUlctMjAyNi5odG1sIj5TdXBlciBEdXR5IEYtNTUwIERSVyAyMDI2PC9hPjwvbGk+CjxsaSBkYXRhLWlkPSI5ODAwODczMzAiIGlkPSJNYWluTWVudV82YTJlYjFhNGM5MDE1IiBjbGFzcz0iaGFzSW1nIiBkYXRhLW1vZGVsaWQ9Ijc3NzU3Ij48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvRm9yZC1TdXBlcl9EdXR5X0ZfNTUwX0RSVy0yMDI3Lmh0bWwiIGNsYXNzPSJpbWdMaW5rIGlzQm9sZCAiPjxpbWcgYWx0PSJTdXBlciBEdXR5IEYtNTUwIERSVyAyMDI3IiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9Gb3JkL1N1cGVyIER1dHkgRl81NTAgRFJXLzIwMjcvVC80ODY0MzcvQmx1ZS9wcm9maWxlLnBuZz9jYj02YTJlYjE5Mjc4ZmY0IiBlcnJvcmltZz0iLy9pbWcuZDJjbWVkaWEuY2EvY2FybWFrZXMvZm9yZF9jLnBuZyIgdGl0bGU9IlN1cGVyIER1dHkgRi01NTAgRFJXIDIwMjciIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj48L2E+PHNwYW4gY2xhc3M9InByaWNlIj48c3BhbiBjbGFzcz0icHJpY2VfdGV4dCI+w6AgcGFydGlyIGRlPC9zcGFuPjxzcGFuIGNsYXNzPSJwcmljZV9hbXQiPjc0IDE2MCAkPC9zcGFuPjxpbWcgY2xhc3M9InByaWNlLXNjcmF0Y2ggbGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FybGVmb3JkLmNvbS8vaW1hZ2VzL3JlZC1saW5lLXRpbnkucG5nIiBhbHQ9InJlZCBsaW5lIHRpbnkiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj48L3NwYW4+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0ZvcmQtU3VwZXJfRHV0eV9GXzU1MF9EUlctMjAyNy5odG1sIj5TdXBlciBEdXR5IEYtNTUwIERSVyAyMDI3PC9hPjwvbGk+CjxsaSBkYXRhLWlkPSIyNjY2ODgwNTc0IiBpZD0iTWFpbk1lbnVfNmEyZWIxYTRjOTAxOSIgY2xhc3M9Imhhc0ltZyIgZGF0YS1tb2RlbGlkPSI3MjMwMiI+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0ZvcmQtU3VwZXJfRHV0eV9GXzYwMF9EUlctMjAyNi5odG1sIiBjbGFzcz0iaW1nTGluayBpc0JvbGQgIj48aW1nIGFsdD0iU3VwZXIgRHV0eSBGLTYwMCBSQVJKIDIwMjYiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL0ZvcmQvU3VwZXIgRHV0eSBGXzYwMCBEUlcvMjAyNi9ULzQ3ODExNi9CbHVlL3Byb2ZpbGUucG5nP2NiPTZhMmViMTkyNzhmZjQiIGVycm9yaW1nPSIvL2ltZy5kMmNtZWRpYS5jYS9jYXJtYWtlcy9mb3JkX2MucG5nIiB0aXRsZT0iU3VwZXIgRHV0eSBGLTYwMCBSQVJKIDIwMjYiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj48L2E+PHNwYW4gY2xhc3M9InByaWNlIj48c3BhbiBjbGFzcz0icHJpY2VfdGV4dCI+w6AgcGFydGlyIGRlPC9zcGFuPjxzcGFuIGNsYXNzPSJwcmljZV9hbXQiPjg5IDI4MCAkPC9zcGFuPjxpbWcgY2xhc3M9InByaWNlLXNjcmF0Y2ggbGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FybGVmb3JkLmNvbS8vaW1hZ2VzL3JlZC1saW5lLXRpbnkucG5nIiBhbHQ9InJlZCBsaW5lIHRpbnkiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj48L3NwYW4+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0ZvcmQtU3VwZXJfRHV0eV9GXzYwMF9EUlctMjAyNi5odG1sIj5TdXBlciBEdXR5IEYtNjAwIFJBUkogMjAyNjwvYT48L2xpPgo8bGkgZGF0YS1pZD0iOTQyMTY1Njg0IiBpZD0iTWFpbk1lbnVfNmEyZWIxYTRjOTAxZSIgY2xhc3M9Imhhc0ltZyIgZGF0YS1tb2RlbGlkPSI2NDIwMSI+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0ZvcmQtRV9TZXJpZXNfU3RyaXBwZWRfQ2hhc3Npcy0yMDI2Lmh0bWwiIGNsYXNzPSJpbWdMaW5rIGlzQm9sZCAiIGRhdGEtbWVudS10cmFuc2xhdGU9Ijk0MjE2NTY4NCI+PGltZyBhbHQ9IlPDqXJpZSBFIGNow6Jzc2lzIG51IDIwMjYiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL0ZvcmQvRV9TZXJpZXMgU3RyaXBwZWQgQ2hhc3Npcy8yMDI2L1QvNDY2NzgzL0JsdWUvcHJvZmlsZS5wbmc\/Y2I9NmEyZWIxOTI3OGZmNCIgZXJyb3JpbWc9Ii8vaW1nLmQyY21lZGlhLmNhL2Nhcm1ha2VzL2ZvcmRfYy5wbmciIHRpdGxlPSJTw6lyaWUgRSBjaMOic3NpcyBudSAyMDI2IiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+PC9hPjxzcGFuIGNsYXNzPSJwcmljZSI+PHNwYW4gY2xhc3M9InByaWNlX3RleHQiPsOgIHBhcnRpciBkZTwvc3Bhbj48c3BhbiBjbGFzcz0icHJpY2VfYW10Ij40OCA2MzUgJDwvc3Bhbj48aW1nIGNsYXNzPSJwcmljZS1zY3JhdGNoIGxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmxlZm9yZC5jb20vL2ltYWdlcy9yZWQtbGluZS10aW55LnBuZyIgYWx0PSJyZWQgbGluZSB0aW55IiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+PC9zcGFuPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9Gb3JkLUVfU2VyaWVzX1N0cmlwcGVkX0NoYXNzaXMtMjAyNi5odG1sIiBkYXRhLW1lbnUtdHJhbnNsYXRlPSI5NDIxNjU2ODQiPlPDqXJpZSBFIGNow6Jzc2lzIG51IDIwMjY8L2E+PC9saT4KPGxpIGRhdGEtaWQ9IjQ5OTM0NDQwOSIgaWQ9Ik1haW5NZW51XzZhMmViMWE0YzkwMjIiIGNsYXNzPSJoYXNJbWciIGRhdGEtbW9kZWxpZD0iNjQyMDAiPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9Gb3JkLUVfU2VyaWVzX0N1dGF3YXktMjAyNi5odG1sIiBjbGFzcz0iaW1nTGluayBpc0JvbGQgIiBkYXRhLW1lbnUtdHJhbnNsYXRlPSI0OTkzNDQ0MDkiPjxpbWcgYWx0PSJTw6lyaWUgRSB0cm9ucXXDqSAyMDI2IiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9Gb3JkL0VfU2VyaWVzIEN1dGF3YXkvMjAyNi9ULzQ2Njc3OS9CbHVlL3Byb2ZpbGUucG5nP2NiPTZhMmViMTkyNzhmZjQiIGVycm9yaW1nPSIvL2ltZy5kMmNtZWRpYS5jYS9jYXJtYWtlcy9mb3JkX2MucG5nIiB0aXRsZT0iU8OpcmllIEUgdHJvbnF1w6kgMjAyNiIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPjwvYT48c3BhbiBjbGFzcz0icHJpY2UiPjxzcGFuIGNsYXNzPSJwcmljZV90ZXh0Ij7DoCBwYXJ0aXIgZGU8L3NwYW4+PHNwYW4gY2xhc3M9InByaWNlX2FtdCI+NTIgMDgwICQ8L3NwYW4+PGltZyBjbGFzcz0icHJpY2Utc2NyYXRjaCBsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJsZWZvcmQuY29tLy9pbWFnZXMvcmVkLWxpbmUtdGlueS5wbmciIGFsdD0icmVkIGxpbmUgdGlueSIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPjwvc3Bhbj48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvRm9yZC1FX1Nlcmllc19DdXRhd2F5LTIwMjYuaHRtbCIgZGF0YS1tZW51LXRyYW5zbGF0ZT0iNDk5MzQ0NDA5Ij5Tw6lyaWUgRSB0cm9ucXXDqSAyMDI2PC9hPjwvbGk+CjxsaSBkYXRhLWlkPSIxNzgzOTA5OTEzIiBpZD0iTWFpbk1lbnVfNmEyZWIxYTRjOTAyNyIgY2xhc3M9Imhhc0ltZyIgZGF0YS1tb2RlbGlkPSI3NDMxNCI+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0ZvcmQtRV9TZXJpZXNfQ3V0YXdheS0yMDI3Lmh0bWwiIGNsYXNzPSJpbWdMaW5rIGlzQm9sZCAiIGRhdGEtbWVudS10cmFuc2xhdGU9IjE3ODM5MDk5MTMiPjxpbWcgYWx0PSJTw6lyaWUgRSB0cm9ucXXDqSAyMDI3IiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9Gb3JkL0VfU2VyaWVzIEN1dGF3YXkvMjAyNy9ULzQ4MTkxOS9CbHVlL3Byb2ZpbGUucG5nP2NiPTZhMmViMTkyNzhmZjQiIGVycm9yaW1nPSIvL2ltZy5kMmNtZWRpYS5jYS9jYXJtYWtlcy9mb3JkX2MucG5nIiB0aXRsZT0iU8OpcmllIEUgdHJvbnF1w6kgMjAyNyIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPjwvYT48c3BhbiBjbGFzcz0icHJpY2UiPjxzcGFuIGNsYXNzPSJwcmljZV90ZXh0Ij7DoCBwYXJ0aXIgZGU8L3NwYW4+PHNwYW4gY2xhc3M9InByaWNlX2FtdCI+NTIgMDgwICQ8L3NwYW4+PGltZyBjbGFzcz0icHJpY2Utc2NyYXRjaCBsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJsZWZvcmQuY29tLy9pbWFnZXMvcmVkLWxpbmUtdGlueS5wbmciIGFsdD0icmVkIGxpbmUgdGlueSIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPjwvc3Bhbj48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvRm9yZC1FX1Nlcmllc19DdXRhd2F5LTIwMjcuaHRtbCIgZGF0YS1tZW51LXRyYW5zbGF0ZT0iMTc4MzkwOTkxMyI+U8OpcmllIEUgdHJvbnF1w6kgMjAyNzwvYT48L2xpPgo8bGkgZGF0YS1pZD0iNDE3NDQ5MTIyNCIgaWQ9Ik1haW5NZW51XzZhMmViMWE0YzkwMmIiIGNsYXNzPSJoYXNJbWciIGRhdGEtbW9kZWxpZD0iNzI2OTgiPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9Gb3JkLVRyYW5zaXRfQ3V0YXdheS0yMDI2Lmh0bWwiIGNsYXNzPSJpbWdMaW5rIGlzQm9sZCAiIGRhdGEtbWVudS10cmFuc2xhdGU9IjQxNzQ0OTEyMjQiPjxpbWcgYWx0PSJUcmFuc2l0IGZvdXJnb24gdHJvbnF1w6kgMjAyNiIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvRm9yZC9UcmFuc2l0IEN1dGF3YXkvMjAyNi9ULzQ3OTM5Ny9CbHVlL3Byb2ZpbGUucG5nP2NiPTZhMmViMTkyNzhmZjQiIGVycm9yaW1nPSIvL2ltZy5kMmNtZWRpYS5jYS9jYXJtYWtlcy9mb3JkX2MucG5nIiB0aXRsZT0iVHJhbnNpdCBmb3VyZ29uIHRyb25xdcOpIDIwMjYiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj48L2E+PHNwYW4gY2xhc3M9InByaWNlIj48c3BhbiBjbGFzcz0icHJpY2VfdGV4dCI+w6AgcGFydGlyIGRlPC9zcGFuPjxzcGFuIGNsYXNzPSJwcmljZV9hbXQiPjYwIDU0NSAkPC9zcGFuPjxpbWcgY2xhc3M9InByaWNlLXNjcmF0Y2ggbGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FybGVmb3JkLmNvbS8vaW1hZ2VzL3JlZC1saW5lLXRpbnkucG5nIiBhbHQ9InJlZCBsaW5lIHRpbnkiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj48L3NwYW4+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0ZvcmQtVHJhbnNpdF9DdXRhd2F5LTIwMjYuaHRtbCIgZGF0YS1tZW51LXRyYW5zbGF0ZT0iNDE3NDQ5MTIyNCI+VHJhbnNpdCBmb3VyZ29uIHRyb25xdcOpIDIwMjY8L2E+PC9saT4KPGxpIGRhdGEtaWQ9Ijc3NzI5MTk4NSIgaWQ9Ik1haW5NZW51XzZhMmViMWE0YzkwMmYiIGNsYXNzPSJoYXNJbWciIGRhdGEtbW9kZWxpZD0iNzc3MzQiPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9Gb3JkLVRyYW5zaXRfQ3V0YXdheS0yMDI3Lmh0bWwiIGNsYXNzPSJpbWdMaW5rIGlzQm9sZCAiIGRhdGEtbWVudS10cmFuc2xhdGU9Ijc3NzI5MTk4NSI+PGltZyBhbHQ9IlRyYW5zaXQgZm91cmdvbiB0cm9ucXXDqSAyMDI3IiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9Gb3JkL1RyYW5zaXQgQ3V0YXdheS8yMDI3L1QvNDg1OTg5L0JsdWUvcHJvZmlsZS5wbmc\/Y2I9NmEyZWIxOTI3OGZmNCIgZXJyb3JpbWc9Ii8vaW1nLmQyY21lZGlhLmNhL2Nhcm1ha2VzL2ZvcmRfYy5wbmciIHRpdGxlPSJUcmFuc2l0IGZvdXJnb24gdHJvbnF1w6kgMjAyNyIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPjwvYT48c3BhbiBjbGFzcz0icHJpY2UiPjxzcGFuIGNsYXNzPSJwcmljZV90ZXh0Ij7DoCBwYXJ0aXIgZGU8L3NwYW4+PHNwYW4gY2xhc3M9InByaWNlX2FtdCI+NjAgNjQ1ICQ8L3NwYW4+PGltZyBjbGFzcz0icHJpY2Utc2NyYXRjaCBsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJsZWZvcmQuY29tLy9pbWFnZXMvcmVkLWxpbmUtdGlueS5wbmciIGFsdD0icmVkIGxpbmUgdGlueSIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPjwvc3Bhbj48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvRm9yZC1UcmFuc2l0X0N1dGF3YXktMjAyNy5odG1sIiBkYXRhLW1lbnUtdHJhbnNsYXRlPSI3NzcyOTE5ODUiPlRyYW5zaXQgZm91cmdvbiB0cm9ucXXDqSAyMDI3PC9hPjwvbGk+CjxsaSBkYXRhLWlkPSIyMjg0MjMxNTY1IiBpZD0iTWFpbk1lbnVfNmEyZWIxYTRjOTAzNCIgY2xhc3M9Imhhc0ltZyIgZGF0YS1tb2RlbGlkPSI3MjMzNiI+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0ZvcmQtVHJhbnNpdF9DYXJnb19WYW4tMjAyNi5odG1sIiBjbGFzcz0iaW1nTGluayBpc0JvbGQgIj48aW1nIGFsdD0iVHJhbnNpdCBmb3VyZ29uIHV0aWxpdGFpcmUgMjAyNiIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvRm9yZC9UcmFuc2l0IENhcmdvIFZhbi8yMDI2L1QvNDc4NTA2L1doaXRlL3Byb2ZpbGUucG5nP2NiPTZhMmViMTkyNzhmZjQiIGVycm9yaW1nPSIvL2ltZy5kMmNtZWRpYS5jYS9jYXJtYWtlcy9mb3JkX2MucG5nIiB0aXRsZT0iVHJhbnNpdCBmb3VyZ29uIHV0aWxpdGFpcmUgMjAyNiIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPjwvYT48c3BhbiBjbGFzcz0icHJpY2UiPjxzcGFuIGNsYXNzPSJwcmljZV90ZXh0Ij7DoCBwYXJ0aXIgZGU8L3NwYW4+PHNwYW4gY2xhc3M9InByaWNlX2FtdCI+NjIgOTk1ICQ8L3NwYW4+PGltZyBjbGFzcz0icHJpY2Utc2NyYXRjaCBsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJsZWZvcmQuY29tLy9pbWFnZXMvcmVkLWxpbmUtdGlueS5wbmciIGFsdD0icmVkIGxpbmUgdGlueSIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPjwvc3Bhbj48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvRm9yZC1UcmFuc2l0X0NhcmdvX1Zhbi0yMDI2Lmh0bWwiPlRyYW5zaXQgZm91cmdvbiB1dGlsaXRhaXJlIDIwMjY8L2E+PC9saT4KPGxpIGRhdGEtaWQ9IjI1ODI4OTg3NzYiIGlkPSJNYWluTWVudV82YTJlYjFhNGM5MDM4IiBjbGFzcz0iaGFzSW1nIiBkYXRhLW1vZGVsaWQ9IjcyMzYwIj48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvRm9yZC1UcmFuc2l0X1Bhc3Nlbmdlcl9XYWdvbi0yMDI2Lmh0bWwiIGNsYXNzPSJpbWdMaW5rIGlzQm9sZCAiPjxpbWcgYWx0PSJUcmFuc2l0IHRvdXJpc21lIDIwMjYiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL0ZvcmQvVHJhbnNpdCBQYXNzZW5nZXIgV2Fnb24vMjAyNi9ULzQ3ODY3OC9CbHVlL3Byb2ZpbGUucG5nP2NiPTZhMmViMTkyNzhmZjQiIGVycm9yaW1nPSIvL2ltZy5kMmNtZWRpYS5jYS9jYXJtYWtlcy9mb3JkX2MucG5nIiB0aXRsZT0iVHJhbnNpdCB0b3VyaXNtZSAyMDI2IiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+PC9hPjxzcGFuIGNsYXNzPSJwcmljZSI+PHNwYW4gY2xhc3M9InByaWNlX3RleHQiPsOgIHBhcnRpciBkZTwvc3Bhbj48c3BhbiBjbGFzcz0icHJpY2VfYW10Ij43NSAzOTUgJDwvc3Bhbj48aW1nIGNsYXNzPSJwcmljZS1zY3JhdGNoIGxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmxlZm9yZC5jb20vL2ltYWdlcy9yZWQtbGluZS10aW55LnBuZyIgYWx0PSJyZWQgbGluZSB0aW55IiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+PC9zcGFuPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9Gb3JkLVRyYW5zaXRfUGFzc2VuZ2VyX1dhZ29uLTIwMjYuaHRtbCI+VHJhbnNpdCB0b3VyaXNtZSAyMDI2PC9hPjwvbGk+CjxsaSBkYXRhLWlkPSIyMTcwMzY0OTMyIiBpZD0iTWFpbk1lbnVfNmEyZWIxYTRjOTAzZCIgY2xhc3M9Imxhc3RJdGVtIGhhc0ltZyIgZGF0YS1tb2RlbGlkPSI3Nzc0MiI+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0ZvcmQtVHJhbnNpdF9QYXNzZW5nZXJfV2Fnb24tMjAyNy5odG1sIiBjbGFzcz0iaW1nTGluayBpc0JvbGQgIj48aW1nIGFsdD0iVHJhbnNpdCB0b3VyaXNtZSAyMDI3IiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9Gb3JkL1RyYW5zaXQgUGFzc2VuZ2VyIFdhZ29uLzIwMjcvVC80ODYxMTYvQmx1ZS9wcm9maWxlLnBuZz9jYj02YTJlYjE5Mjc4ZmY0IiBlcnJvcmltZz0iLy9pbWcuZDJjbWVkaWEuY2EvY2FybWFrZXMvZm9yZF9jLnBuZyIgdGl0bGU9IlRyYW5zaXQgdG91cmlzbWUgMjAyNyIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPjwvYT48c3BhbiBjbGFzcz0icHJpY2UiPjxzcGFuIGNsYXNzPSJwcmljZV90ZXh0Ij7DoCBwYXJ0aXIgZGU8L3NwYW4+PHNwYW4gY2xhc3M9InByaWNlX2FtdCI+NzYgMjQ1ICQ8L3NwYW4+PGltZyBjbGFzcz0icHJpY2Utc2NyYXRjaCBsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJsZWZvcmQuY29tLy9pbWFnZXMvcmVkLWxpbmUtdGlueS5wbmciIGFsdD0icmVkIGxpbmUgdGlueSIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPjwvc3Bhbj48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvRm9yZC1UcmFuc2l0X1Bhc3Nlbmdlcl9XYWdvbi0yMDI3Lmh0bWwiPlRyYW5zaXQgdG91cmlzbWUgMjAyNzwvYT48L2xpPgo8L3VsPjwvbGk+CjwvdWw+PC9saT4KPGxpIGRhdGEtaWQ9Ik5FV19DT05WRVJUSUJMRSIgaWQ9Ik1haW5NZW51XzZhMmViMWE0YzkwNWQiIGNsYXNzPSJoYXNTdWIiPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9kZWNhcG90YWJsZXMuaHRtbCIgZGF0YS1tZW51LXRyYW5zbGF0ZT0iTkVXX0NPTlZFUlRJQkxFIj5Ew6ljYXBvdGFibGVzPC9hPjx1bCBjbGFzcz0ic3ViIj48bGkgZGF0YS1pZD0iTkVXX0NPTlZFUlRJQkxFX0ZvcmQiIGlkPSJNYWluTWVudV82YTJlYjFhNGM5MDViIiBjbGFzcz0iZmlyc3RJdGVtIGxhc3RJdGVtIGhhc1N1YiBoYXNJbWciPjx1bCBjbGFzcz0ic3ViIj48bGkgZGF0YS1pZD0iMzkzODkwMTU4IiBpZD0iTWFpbk1lbnVfNmEyZWIxYTRjOTA1MSIgY2xhc3M9ImZpcnN0SXRlbSBoYXNJbWciIGRhdGEtbW9kZWxpZD0iNjAwMTIwMDAwIj48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvRm9yZC1NdXN0YW5nX0NvbnZlcnRpYmxlLTIwMjUuaHRtbCIgY2xhc3M9ImltZ0xpbmsgaXNCb2xkICIgZGF0YS1tZW51LXRyYW5zbGF0ZT0iMzkzODkwMTU4Ij48aW1nIGFsdD0iTXVzdGFuZyBEw6ljYXBvdGFibGUgMjAyNSIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvRm9yZC9NdXN0YW5nIENvbnZlcnRpYmxlLzIwMjUvVC80NjE5NTEvQmx1ZS9wcm9maWxlLnBuZz9jYj02YTJlYjE5Mjc4ZmY0IiBlcnJvcmltZz0iLy9pbWcuZDJjbWVkaWEuY2EvY2FybWFrZXMvZm9yZF9jLnBuZyIgdGl0bGU9Ik11c3RhbmcgRMOpY2Fwb3RhYmxlIDIwMjUiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj48L2E+PHNwYW4gY2xhc3M9InByaWNlIj48c3BhbiBjbGFzcz0icHJpY2VfdGV4dCI+w6AgcGFydGlyIGRlPC9zcGFuPjxzcGFuIGNsYXNzPSJwcmljZV9hbXQiPjQ4IDIyNSAkPC9zcGFuPjxpbWcgY2xhc3M9InByaWNlLXNjcmF0Y2ggbGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FybGVmb3JkLmNvbS8vaW1hZ2VzL3JlZC1saW5lLXRpbnkucG5nIiBhbHQ9InJlZCBsaW5lIHRpbnkiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj48L3NwYW4+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0ZvcmQtTXVzdGFuZ19Db252ZXJ0aWJsZS0yMDI1Lmh0bWwiIGRhdGEtbWVudS10cmFuc2xhdGU9IjM5Mzg5MDE1OCI+TXVzdGFuZyBEw6ljYXBvdGFibGUgMjAyNTwvYT48L2xpPgo8bGkgZGF0YS1pZD0iNzk2ODYxNDA2IiBpZD0iTWFpbk1lbnVfNmEyZWIxYTRjOTA1OCIgY2xhc3M9Imxhc3RJdGVtIGhhc0ltZyIgZGF0YS1tb2RlbGlkPSI3MjcyMTAwMDAiPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9Gb3JkLU11c3RhbmdfQ29udmVydGlibGUtMjAyNi5odG1sIiBjbGFzcz0iaW1nTGluayBpc0JvbGQgIiBkYXRhLW1lbnUtdHJhbnNsYXRlPSI3OTY4NjE0MDYiPjxpbWcgYWx0PSJNdXN0YW5nIETDqWNhcG90YWJsZSAyMDI2IiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9Gb3JkL011c3RhbmcgQ29udmVydGlibGUvMjAyNi9ULzQ3OTU0My9CbHVlL3Byb2ZpbGUucG5nP2NiPTZhMmViMTkyNzhmZjQiIGVycm9yaW1nPSIvL2ltZy5kMmNtZWRpYS5jYS9jYXJtYWtlcy9mb3JkX2MucG5nIiB0aXRsZT0iTXVzdGFuZyBEw6ljYXBvdGFibGUgMjAyNiIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPjwvYT48c3BhbiBjbGFzcz0icHJpY2UiPjxzcGFuIGNsYXNzPSJwcmljZV90ZXh0Ij7DoCBwYXJ0aXIgZGU8L3NwYW4+PHNwYW4gY2xhc3M9InByaWNlX2FtdCI+NDggMjI1ICQ8L3NwYW4+PGltZyBjbGFzcz0icHJpY2Utc2NyYXRjaCBsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJsZWZvcmQuY29tLy9pbWFnZXMvcmVkLWxpbmUtdGlueS5wbmciIGFsdD0icmVkIGxpbmUgdGlueSIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPjwvc3Bhbj48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvRm9yZC1NdXN0YW5nX0NvbnZlcnRpYmxlLTIwMjYuaHRtbCIgZGF0YS1tZW51LXRyYW5zbGF0ZT0iNzk2ODYxNDA2Ij5NdXN0YW5nIETDqWNhcG90YWJsZSAyMDI2PC9hPjwvbGk+CjwvdWw+PC9saT4KPC91bD48L2xpPgo8bGkgZGF0YS1pZD0iTkVXX0xPV0MiIGlkPSJNYWluTWVudV82YTJlYjFhNGM5MDYxIj48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvZmFpYmxlLWNvbnNvbW1hdGlvbi5odG1sIj5GYWlibGUgY29uc29tbWF0aW9uPC9hPjwvbGk+CjxsaSBkYXRhLWlkPSJCcm9jaHVyZSIgaWQ9Ik1haW5NZW51XzZhMmViMWE0YzkwNjQiPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9kZW1hbmRlcy9icm9jaHVyZXMuaHRtbCI+QnJvY2h1cmVzPC9hPjwvbGk+CjxsaSBkYXRhLWlkPSJHUF8zOTBkNjVhMjgyODJjYTVhIiBpZD0iTWFpbk1lbnVfNmEyZWIxYTRjOTA2NyI+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L2FwcGxpY2F0aW9uLWZvcmQuaHRtbCI+QXBwbGljYXRpb24gRm9yZDwvYT48L2xpPgo8bGkgZGF0YS1pZD0iR1BfMjQ1ZWIzNDhmNTIxNmQyOSIgaWQ9Ik1haW5NZW51XzZhMmViMWE0YzkwNmEiPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS90ZWNobm9sb2dpZS1mb3JkLmh0bWwiPlRlY2hub2xvZ2llIGludGVsbGlnZW50ZSBGb3JkPC9hPjwvbGk+CjxsaSBkYXRhLWlkPSJHUF82Y2FhOWQxYmY4Yjg5ZWU0IiBpZD0iTWFpbk1lbnVfNmEyZWIxYTRjOTA2ZCIgY2xhc3M9Imxhc3RJdGVtIj48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vcmVjb21wZW5zZXMtZm9yZC5odG1sIiBkYXRhLW1lbnUtdHJhbnNsYXRlPSJHUF82Y2FhOWQxYmY4Yjg5ZWU0Ij5Sw6ljb21wZW5zZXMgRm9yZDwvYT48L2xpPgo8L3VsPgo8L2xpPgoKCQkJCQkJPC91bD4KCQkJCQk8L2Rpdj4KCQkJCTwvZGl2PgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iY2xyIj48L2Rpdj4KCQkJCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJ0b3ByZWZlcmVyIiBuYW1lPSJ0b3ByZWZlcmVyIiB2YWx1ZT0iIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJ0b3BzaXRlaWQiIG5hbWU9InRvcHNpdGVpZCIgdmFsdWU9IjEzMSI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0idG9wY2FyaWQiIG5hbWU9InRvcGNhcmlkIiB2YWx1ZT0iIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJ0b3BjYXJpZE11bHRpc3RlcEZvcm0iIG5hbWU9InRvcGNhcmlkTXVsdGlzdGVwRm9ybSIgdmFsdWU9IiI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iZU1vZGVsIiBuYW1lPSJlTW9kZWwiIHZhbHVlPSIiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9InN0eWxlaWQiIG5hbWU9IiIgdmFsdWU9IjAiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9InBvcHVwbWFrZSIgbmFtZT0icG9wdXBtYWtlIiB2YWx1ZT0iIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJwb3B1cG1ha2VNdWx0aXN0ZXBGb3JtIiBuYW1lPSJwb3B1cG1ha2VNdWx0aXN0ZXBGb3JtIiB2YWx1ZT0iIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJwb3B1cG1vZGVsIiBuYW1lPSJwb3B1cG1vZGVsIiB2YWx1ZT0iIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJwb3B1cG1vZGVsTXVsdGlzdGVwRm9ybSIgbmFtZT0icG9wdXBtb2RlbE11bHRpc3RlcEZvcm0iIHZhbHVlPSIiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9InBvcHVweWVhciIgbmFtZT0icG9wdXB5ZWFyIiB2YWx1ZT0iIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJwb3B1cHllYXJNdWx0aXN0ZXBGb3JtIiBuYW1lPSJwb3B1cHllYXJNdWx0aXN0ZXBGb3JtIiB2YWx1ZT0iIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJwb3B1cHRyaW0iIG5hbWU9InBvcHVwdHJpbSIgdmFsdWU9InskUE9QVVBUUklNfSI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0icG9wdXBzdG9ja251bWJlciIgbmFtZT0icG9wdXBzdG9ja251bWJlciIgdmFsdWU9IiI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0icG9wdXBzdG9ja251bWJlck11bHRpc3RlcEZvcm0iIG5hbWU9InBvcHVwc3RvY2tudW1iZXJNdWx0aXN0ZXBGb3JtIiB2YWx1ZT0iIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJsYXN0dmlld2VkbWFrZSIgbmFtZT0ibGFzdHZpZXdlZG1ha2UiIHZhbHVlPSIiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9Imxhc3R2aWV3ZWRtb2RlbCIgbmFtZT0ibGFzdHZpZXdlZG1vZGVsIiB2YWx1ZT0iIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJsYXN0dmlld2VkeWVhciIgbmFtZT0ibGFzdHZpZXdlZHllYXIiIHZhbHVlPSIiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9Imxhc3R2aWV3ZWR0cmltIiBuYW1lPSJsYXN0dmlld2VkdHJpbSIgdmFsdWU9IiI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0ibGFzdHZpZXdlZHN0b2NrbnVtYmVyIiBuYW1lPSJsYXN0dmlld2Vkc3RvY2tudW1iZXIiIHZhbHVlPSIiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9InRvcGRlcGxveW1lbnR0eXBlIiBuYW1lPSJ0b3BkZXBsb3ltZW50dHlwZSIgdmFsdWU9ImxpdmUiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9InNlcnZpY2VFbWFpbCIgbmFtZT0ic2VydmljZUVtYWlsIiB2YWx1ZT0iMTA3ZjUxZWZhMzk1ZDM0NWE4MGFjMjBlYmY1MTUzYmV8MTU3OTkwMTQ0OCI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0ic2VydmljZUFkZkVtYWlsIiBuYW1lPSJzZXJ2aWNlQWRmRW1haWwiIHZhbHVlPSIiPjx0ZXh0YXJlYSBpZD0iZDJjLWJucC1saW5rcnVsZXMtdGV4dGFyZWEiIHRpdGxlPSJMaW5rIFJ1bGVzIiBjbGFzcz0iaGlkZGVuIiBzdHlsZT0iZGlzcGxheTpub25lOyI+IyNMSU5LUlVMRVMjIzwvdGV4dGFyZWE+PGlucHV0IHR5cGU9ImhpZGRlbiIgdmFsdWU9IjEiIGlkPSJ0cmFkZUluQmFyU3RpY2t5Qm90dG9tIj4KPCEtLVNUQVJUX1JFTU9WQUJMRV9DT0RFX0JMT0NLX0NPTU1FTlRfMDAwMS0tPgoKICAgICAgICAgICAgPC9kaXY+IDwhLS0gd3VsbCB3aWR0aCAtICBjbG9zZSBtYWluRGl2IGhlcmUgLS0+CiAgICAgICAgICAgIDxkaXYgaWQ9InRyYWRlSW5CYXIiIGNsYXNzPSJib3gtbGMiIHN0eWxlPSJkaXNwbGF5OmJsb2NrIj4KICAgICAgICAgICAgPGRpdiBpZD0idHJhZGVJbkJhclciIGNsYXNzPSJmbGV4LWJveCBmbGV4LWVxdWFsIGFsaWduLWNlbnRlciI+CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgPGRpdiBjbGFzcz0idHJhZGluU2VsZWN0VyAiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0cmFkaW5TZWxlY3RBIj4KCgkJCQk8c2VsZWN0IGNsYXNzPSJ0cmFkaW5TZWxlY3QiIG5hbWU9InRyYWRpbk1ha2UiIGlkPSJ0cmFkaW5NYWtlIiB0aXRsZT0iTWFycXVlIiBhcmlhLWxhYmVsPSJNYXJxdWUiPgogICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IiI+TW9uIHbDqWhpY3VsZTwvb3B0aW9uPgogICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkFjdXJhIj5BY3VyYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IkFsZmEgUm9tZW8iPkFsZmEgUm9tZW88L29wdGlvbj48b3B0aW9uIHZhbHVlPSJBdWRpIj5BdWRpPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iQk1XIj5CTVc8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJCcmlnaHREcm9wIj5CcmlnaHREcm9wPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iQnVpY2siPkJ1aWNrPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iQ2FkaWxsYWMiPkNhZGlsbGFjPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iQ2hldnJvbGV0Ij5DaGV2cm9sZXQ8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJDaHJ5c2xlciI+Q2hyeXNsZXI8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJEb2RnZSI+RG9kZ2U8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJGSUFUIj5GSUFUPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iRm9yZCI+Rm9yZDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IkdlbmVzaXMiPkdlbmVzaXM8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJHTUMiPkdNQzwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IkhvbmRhIj5Ib25kYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IkhVTU1FUiI+SFVNTUVSPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iSHl1bmRhaSI+SHl1bmRhaTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IklORU9TIj5JTkVPUzwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IklORklOSVRJIj5JTkZJTklUSTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IklzdXp1Ij5Jc3V6dTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IkphZ3VhciI+SmFndWFyPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iSmVlcCI+SmVlcDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IktpYSI+S2lhPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iTGFuZCBSb3ZlciI+TGFuZCBSb3Zlcjwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IkxleHVzIj5MZXh1czwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IkxpbmNvbG4iPkxpbmNvbG48L29wdGlvbj48b3B0aW9uIHZhbHVlPSJMdWNpZCI+THVjaWQ8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJNYXNlcmF0aSI+TWFzZXJhdGk8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJNYXpkYSI+TWF6ZGE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJNZXJjZWRlcy1CZW56Ij5NZXJjZWRlcy1CZW56PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iTWVyY3VyeSI+TWVyY3VyeTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9Ik1JTkkiPk1JTkk8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJNaXRzdWJpc2hpIj5NaXRzdWJpc2hpPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iTmlzc2FuIj5OaXNzYW48L29wdGlvbj48b3B0aW9uIHZhbHVlPSJPbGRzbW9iaWxlIj5PbGRzbW9iaWxlPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iUGx5bW91dGgiPlBseW1vdXRoPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iUG9sZXN0YXIiPlBvbGVzdGFyPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iUG9udGlhYyI+UG9udGlhYzwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IlBvcnNjaGUiPlBvcnNjaGU8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJSYW0iPlJhbTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IlJpdmlhbiI+Uml2aWFuPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iU2FhYiI+U2FhYjwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IlNhdHVybiI+U2F0dXJuPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iU2Npb24iPlNjaW9uPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0ic21hcnQiPnNtYXJ0PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iU3ViYXJ1Ij5TdWJhcnU8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJTdXp1a2kiPlN1enVraTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IlRlc2xhIj5UZXNsYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IlRveW90YSI+VG95b3RhPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iVmluRmFzdCI+VmluRmFzdDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IlZvbGtzd2FnZW4iPlZvbGtzd2FnZW48L29wdGlvbj48b3B0aW9uIHZhbHVlPSJWb2x2byI+Vm9sdm88L29wdGlvbj4KICAgICAgICAgICAgICAgIDwvc2VsZWN0PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRyYWRpblNlbGVjdFcgIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idHJhZGluU2VsZWN0QSI+CiAgICAgICAgICAgIAk8c2VsZWN0IGNsYXNzPSJ0cmFkaW5TZWxlY3QiIG5hbWU9InRyYWRpblllYXIiIGlkPSJ0cmFkaW5ZZWFyIiB0aXRsZT0iQW5uw6llIiBhcmlhLWxhYmVsPSJBbm7DqWUiPgogICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IiI+PC9vcHRpb24+CiAgICAgICAgICAgICAgICA8L3NlbGVjdD4KICAgICAgICAgICAgPC9kaXY+PC9kaXY+CiAgICAgICAgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRyYWRpblNlbGVjdFciPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0cmFkaW5TZWxlY3RBIj4KCgkJCQk8c2VsZWN0IGNsYXNzPSJ0cmFkaW5TZWxlY3QiIG5hbWU9InRyYWRpbk1vZGVsIiBpZD0idHJhZGluTW9kZWwiIHRpdGxlPSJNb2TDqGxlIiBhcmlhLWxhYmVsPSJNb2TDqGxlIj4KICAgICAgICAgICAgICAgIDwvc2VsZWN0PgogICAgICAgICAgICA8L2Rpdj48L2Rpdj4KICAgICAgICAKICAgICAgICAgICAgPGRpdiBjbGFzcz0idHJhZGluU2VsZWN0VyI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRyYWRpblNlbGVjdEEiPgogICAgICAgICAgICAJPHNlbGVjdCBjbGFzcz0idHJhZGluU2VsZWN0IiBuYW1lPSJ0cmFkaW5UcmltIiBpZD0idHJhZGluVHJpbSIgdGl0bGU9IlZlcnNpb24iIGFyaWEtbGFiZWw9IlZlcnNpb24iPgogICAgICAgICAgICAgICAgPC9zZWxlY3Q+CiAgICAgICAgICAgIDwvZGl2PjwvZGl2PgogICAgICAgIAogICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJ0cmFkZUluQmFyX2J0biBmbGV4LWJveCBhbGlnbi1jZW50ZXIiIG9uY2xpY2s9ImdhVHJhY2soJ2MuX3RyYWNrRXZlbnQnLCAnQ2xpcXVlcyBCYXJyZSBzb3VzIGxlIG1lbnUnLCAnw4l2YWx1ZXogbW9uIMOpY2hhbmdlIScsICdOZXVmJywgMSk7Ij4KCgkJCQogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImZhIGZhLXNlYXJjaCAtYmxvY2sgLWxlZnQgLW1sMTAiIGFyaWEtaGlkZGVuPSJ0cnVlIj48L3NwYW4+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSItYmxvY2sgLWxlZnQgLXcxNDAiPiAgw4l2YWx1ZXogbW9uIMOpY2hhbmdlITwvZGl2PgogICAgICAgICAgICA8L2J1dHRvbj48ZGl2IGNsYXNzPSJqcy10cmFkZUluQmFyT3ZlcmxheSIgc3R5bGU9ImRpc3BsYXk6bm9uZTtwb3NpdGlvbjphYnNvbHV0ZTtiYWNrZ3JvdW5kLWNvbG9yOiNjY2NjY2M7Y29sb3I6I2ViMDAwMDt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO3RvcDowO2xlZnQ6MDttYXJnaW46MDsiPjxkaXYgc3R5bGU9ImRpc3BsYXk6IGZsZXg7anVzdGlmeS1jb250ZW50OiBjZW50ZXI7YWxpZ24taXRlbXM6IGNlbnRlcjtoZWlnaHQ6IDEwMCU7Ij48c3BhbiBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZDtmb250LXNpemU6MjJweDsiPsOJdmFsdWV6IHZvdHJlIMOpY2hhbmdlIEdSQVRVSVRFTUVOVCE8L3NwYW4+CQkJCTxpbWcgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmxlZm9yZC5jb20vL2ltYWdlcy9jYW5hZGlhbi1ibGFjay1ib29rLXZhbGV1ci1hdXRvLnBuZyIgYWx0PSJjYW5hZGlhbiBibGFjayBib29rIHZhbGV1ciBhdXRvIiBzdHlsZT0iaGVpZ2h0OjgwJTttYXJnaW4tbGVmdDoxMHB4OyIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPjwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PgkJCgkJPGRpdiBpZD0iVHJhZGVJbkJhclBvcHVwQ29udGFpbmVyIiBjbGFzcz0icmV2ZWFsLW1vZGFsICIgc3R5bGU9IndpZHRoOjYwMHB4O2hlaWdodDo2NTVweDsiIGRhdGEtbGF6eWxvYWRpZD0ibmV3Y2Fyc190cmFkZWluYmFycG9wdXBjb250YWluZXIiPgoJCQkKCQk8L2Rpdj4KCgkJPCEtLSBPTzo6M2UwOWQ0NjdlNTJhZWJhZDE0MjI2ZmZkMTVmZjQ2NGYgLS0+CgoJCQoKICAgIDxkaXYgaWQ9ImVtYWlsU3VjY2Vzc01lc3NhZ2VfVHJhZGVJbkJhclBvcHVwQ29udGFpbmVyIiBjbGFzcz0icmV2ZWFsLW1vZGFsIGVtYWlsLWNvbnNlbnQtYm94Ij4KICAgICAgPGRpdiBjbGFzcz0iaWNvbi10aXRsZSI+CiAgICAgICAgPCEtLSA8c3BhbiBjbGFzcz0idGl0bGUtaWNvbiBzdWNjZXNzIC1tbDAiPjwvc3Bhbj4gLS0+CiAgICAgICAgPHNwYW4gY2xhc3M9InRpdGxlLXR4dCI+Vm90cmUgZGVtYW5kZSBhIGJpZW4gw6l0w6kgZW52b3nDqWUhPC9zcGFuPgogICAgICA8L2Rpdj4KICAgICAgPHAgY2xhc3M9ImRlZmF1bHRTdWNjZXNzIj48YnI+Q2FybGUgRm9yZCB2b3VzIHJlbWVyY2llIGQnYXZvaXIgY29tbXVuaXF1w6kgdm90cmUgZGVtYW5kZS4gVW4gY29uc2VpbGxlciBjb21tdW5pcXVlcmEgYXZlYyB2b3VzIHNvdXMgcGV1LjwvcD4KICAgICAgPHAgY2xhc3M9InNlcnZpY2VTdWNjZXNzIiBzdHlsZT0iZGlzcGxheTpub25lOyI+PGJyPk1lcmNpIHBvdXIgdm90cmUgZGVtYW5kZS4gVW4gbWVtYnJlIGRlIG5vdHJlIMOpcXVpcGUgY29tbXVuaXF1ZXJhIGF2ZWMgdm91cyBzb3VzIHBldS48L3A+CiAgICAgIDwhLS0gPGEgY2xhc3M9ImNsb3NlLXJldmVhbC1tb2RhbCI+JiMyMTU7PC9hPiAtLT4KICAgICAgPGRpdiBjbGFzcz0iZW1haWwtY29uc2VudC1idG5zIC1wdDIwIC1yaWdodCBhbXBDb25zZW50UmVzcG9uc2VTZW5kRGlzbWlzcyI+CiAgICAgICAgPGEgaHJlZj0iP3BhdGg9IyIgY2xhc3M9ImNvbmZpcm1fc3VjY2Vzc0NvbnRpbnVlICBidG4tZGVmYXVsdCAiPkZlcm1lcjwvYT4KICAgICAgPC9kaXY+CiAgICAgIDxmb3JtIGlkPSJlbWFpbG1zZ2ZybV9UcmFkZUluQmFyUG9wdXBDb250YWluZXIiIGNsYXNzPSJjb25maXJtX2h0bWwiIHRhcmdldD0iaWZyYW1lIiBtZXRob2Q9InBvc3QiIGFjdGlvbj0iL2NvbmZpcm1hdGlvbi5odG1sIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ibGFiZWwiIGNsYXNzPSJsYWJlbGVtYWlsIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ic2VjdGlvbiIgY2xhc3M9ImxhYmVsc2VjdGlvbiIgdmFsdWU9Ik9jY2FzaW9uIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYnJhbmQiIGNsYXNzPSJicmFuZGVtYWlsIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ibW9kZWwiIGNsYXNzPSJtb2RlbGVtYWlsIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ieWVhciIgY2xhc3M9InllYXJlbWFpbCIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Imdvb2dsZWlkIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZ29vZ2xlaWRkMmNtZWRpYSIgdmFsdWU9IiI+CgkJCQkJCSAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYWR3b3Jkc2NvbmlkIiB2YWx1ZT0iOTgwNjEyODM2Ij4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImFkd29yZHNsYWJlbGlkIiB2YWx1ZT0iLWxFVENJVDc2Z3NRNU8zTDB3TSI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImJpbmdjb25pZCIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImJpbmdhY3Rpb25pZCIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImJpbmdkb21haW5pZCIgdmFsdWU9IiI+CgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJhZHJvbGxBZHYiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJhZHJvbGxQaXgiIHZhbHVlPSIiPgoKICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZmFjZWJvb2tDb25JZCIgdmFsdWU9IjMwMzMwODQ0NjY4NTU4MSI+CgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJkb21haW4iIHZhbHVlPSJjYXJsZWZvcmQuY29tIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0icmVmZXJyZXIiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJkZXBhcnRtZW50IiB2YWx1ZT0iTkVXIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ibGVhZF9kZXBhcnRtZW50IiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iaXNleHByZXNzIiBjbGFzcz0iaXNleHByZXNzIiB2YWx1ZT0iMCI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImlzcHJvbW8iIHZhbHVlPSIwIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iaXNob21lcGFnZSIgdmFsdWU9IjAiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ0ZXN0bW9kZSIgY2xhc3M9InRlc3Rtb2RlIiB2YWx1ZT0iMCI+CgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJsZWFkVHlwZSIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InBhZ2VJRCIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImN1cnJlbnRVUkwiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJpc0NvbmZpcm1Qb3B1cCIgdmFsdWU9IiI+CgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJjb25maXJtX2VtYWlsIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iY29uZmlybV9maXJzdF9uYW1lIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iY29uZmlybV9sYXN0X25hbWUiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJjb25maXJtX3Bob25lX251bWJlciIgdmFsdWU9IiI+CgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJpc0Z1bGxXaWR0aCIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImRlYWxlck5hbWUiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJidXR0b25Qb3NpdGlvbiIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImlzTW9iaWxlTmV3VkRQIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZnJvbUF1dG9BdWJhaW5lIiB2YWx1ZT0iIj4KCiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSJORVciIG5hbWU9InRleHRDYXJTZWN0aW9uVHlwZSIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJsYW5nIiB2YWx1ZT0iZnIiPgogICAgICA8L2Zvcm0+CiAgICAgIDxpZnJhbWUgd2lkdGg9IjEiIGhlaWdodD0iMSIgbmFtZT0iaWZyYW1lIiBmcmFtZWJvcmRlcj0iMCI+PC9pZnJhbWU+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGlkPSJlbWFpbEZhaWxNZXNzYWdlX1RyYWRlSW5CYXJQb3B1cENvbnRhaW5lciIgY2xhc3M9InJldmVhbC1tb2RhbCBlbWFpbC1jb25zZW50LWJveCI+CiAgICAgIDxzcGFuIGNsYXNzPSJmYWlsIj5VbmUgZXJyZXVyIHMnZXN0IHByb2R1aXRlPC9zcGFuPgogICAgICA8cD5Ob3VzIG4nYXZvbnMgcGFzIHB1IGVudm95ZXIgdm90cmUgbWVzc2FnZS4gUydpbCB2b3VzIHBsYcOudCByYWZyYcOuY2hpciBldCBlc3NheWV6IMOgIG5vdXZlYXUuPC9wPgogICAgICA8ZGl2IGNsYXNzPSJjbG9zZS1yZXZlYWwtbW9kYWwiPjxlbSBjbGFzcz0iZmEgZmEtdGltZXMtY2lyY2xlIj48L2VtPjwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSItcHQyMCAtcmlnaHQgYW1wQ29uc2VudFJlc3BvbnNlU2VuZERpc21pc3MiPgogICAgICAgIDxhIGhyZWY9Ij9wYXRoPSMiIGNsYXNzPSJjb25maXJtX2ZhaWxDb250aW51ZSAgYnRuLWRlZmF1bHQgIj5GZXJtZXI8L2E+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CgoKCQkJCTwhLS0gT086OmUyNWQ2Y2ZhYjM5MjdkNzhkOWUyZjVhMmUzNDc2MDE2IC0tPgoJCQoNPCEtLSBUUkFERSBJTiBCQVIgTkVXQ0FSUyAtLT4KDQo8IS0tRU5EX1JFTU9WQUJMRV9DT0RFX0JMT0NLX0NPTU1FTlRfMDAwMS0tPgoKCQkJCQoJCQk8L2hlYWRlcj4KCQk8IS0tIE9QRU4gTUFJTkJPWExBWUVSIC0tPgoJCTxkaXYgY2xhc3M9Ik1haW5Cb3hMYXllciI+CgkJCQkJCTwhLS0gT1BFTiBMRUZUQk9YTEFZRVIgLS0+CgkJCTxkaXYgaWQ9Im5ld2NhckNvbnRhaW5lciIgY2xhc3M9ImxlZnRfYm94IExlZnRCb3hMYXllciI+CgkJCQk8IS0tIE9QRU4gSElTVE9SWSAtLT4KCQkJCTxkaXYgaWQ9Imhpc3RvcnlEaXYiIGNsYXNzPSJPdXRlckJveExheWVyIj4KCQkJCQk8ZGl2IGNsYXNzPSJJbm5lckJveExheWVyIj4KCQkJCQkJCTwhLS0gT1BFTiBCUkVBRENSVU1CIC0tPgoKCTxzY3JpcHQgdHlwZT0iYXBwbGljYXRpb24vbGQranNvbiI+Cgl7CgkJIkBjb250ZXh0IjogImh0dHBzOi8vc2NoZW1hLm9yZyIsCgkJIkB0eXBlIjogIkJyZWFkY3J1bWJMaXN0IiwKCQkiaXRlbUxpc3RFbGVtZW50IjogW3siQHR5cGUiOiJMaXN0SXRlbSIsInBvc2l0aW9uIjoxLCJpdGVtIjp7IkBpZCI6Imh0dHBzOlwvXC9jYXJsZWZvcmQuY29tXC8iLCJuYW1lIjoiQWNjdWVpbCJ9fSx7IkB0eXBlIjoiTGlzdEl0ZW0iLCJwb3NpdGlvbiI6MiwiaXRlbSI6eyJAaWQiOiJodHRwczpcL1wvY2FybGVmb3JkLmNvbVwvbmV1ZnNcL25vdXZlYXUuaHRtbCIsIm5hbWUiOiJWXHUwMGU5aGljdWxlcyBuZXVmcyJ9fSx7IkB0eXBlIjoiTGlzdEl0ZW0iLCJwb3NpdGlvbiI6MywiaXRlbSI6eyJAaWQiOiJodHRwczpcL1wvRm9yZCIsIm5hbWUiOiJGb3JkIn19XQoJfQoJPC9zY3JpcHQ+CgoJPGRpdiBpZD0iYnJlYWRjcnVtYnMiIGNsYXNzPSJCUkRDUk1CXzE5NzAiPgoJCQk8c3Bhbj4KCQk8YSBocmVmPSI\/cGF0aD0vIj5BY2N1ZWlsPC9hPgoJPC9zcGFuPjxzcGFuIGNsYXNzPSItcGgiPsK7PC9zcGFuPgk8c3Bhbj4KCQk8YSBocmVmPSI\/cGF0aD0vbmV1ZnMvbm91dmVhdS5odG1sIj5Ww6loaWN1bGVzIG5ldWZzPC9hPgoJPC9zcGFuPjxzcGFuIGNsYXNzPSItcGgiPsK7PC9zcGFuPgk8c3Bhbj4KCQk8c3Bhbj5Gb3JkPC9zcGFuPgoJPC9zcGFuPgoJPC9kaXY+CgoJPCEtLSBDTE9TRSBCUkVBRENSVU1CIC0tPgoJCQkJCTwvZGl2PgoJCQkJPC9kaXY+CgkJCQk8IS0tIENMT1NFIEhJU1RPUlkgLS0+CgkJCQk8IS0tIE9QRU4gSEVBREVSIElNQUdFIC0tPgoJCQkJCTxkaXYgaWQ9InRvcEJhbm5lckltYWdlIiBjbGFzcz0iTkVXQ0FSUy1jbGVhciBmbGV4LWNvbHVtbiBmbGV4LWNlbnRlciBhbGlnbi1jZW50ZXIiIHN0eWxlPSJhc3BlY3QtcmF0aW86MTAwLzIwO21hcmdpbi1ib3R0b206MTBweCAhaW1wb3J0YW50OyIgZGF0YS1pbnZjYXQ9ImFsbCI+CgkJCTxpbWcgY2xhc3M9ImxpdmVsb2FkICBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSIgZGF0YS1vdC1pZ25vcmU9IiIgZmV0Y2hwcmlvcml0eT0iaGlnaCIgc3JjPSJodHRwczovL2NhcmxlZm9yZC5jb20vL2ltYWdlcy9OZXdDYXJQYWdlSW1hZ2VEeW4vQlJPTkNPJTIwU1BPUlRfMTI1MF9GUi5qcGciIGFsdD0iIGIgciBvIG4gYyBvICBzIHAgbyByIHQgMTI1MCAgZiByIj4KCTwvZGl2PgoJCgoJCQkJPCEtLSBDTE9TRSBIRUFERVIgSU1BR0UgLS0+CgkJCQk8ZGl2IGlkPSJ1bmRlckJhbm5lciI+PC9kaXY+CgkJCQk8IS0tIE9QRU4gT1VURVJCT1hMQVlFUiAtLT4KCQkJCTxkaXYgY2xhc3M9Ik91dGVyQm94TGF5ZXIiPgoJCQkJCTxkaXYgY2xhc3M9IklubmVyQm94TGF5ZXIiPjxoMSBjbGFzcz0iZGVmYXVsdCBIMV8yMDc5ICI+PGRpdj48ZGl2PkZvcmQgbmV1ZnMgMjAyNSwgMjAyNiAmYW1wOyAyMDI3IMOgIHZlbmRyZcKgPC9kaXY+PGRpdj7DoCBHYXRpbmVhdSAocHLDqHMgZCdPdHRhd2EpwqA8L2Rpdj48L2Rpdj48L2gxPjwvZGl2PjxkaXYgY2xhc3M9IklubmVyQm94TGF5ZXIiPgkgICAgICAgICAgICA8L2Rpdj4JCQk8IS0tIE9QRU4gRklMVEVSTUFJTkJPWCAoJy5fX0xJTkVfXy4nKS0tPgoJCQk8ZGl2IGlkPSJmaWx0ZXJNYWluQm94IiBjbGFzcz0iSW5uZXJCb3hMYXllciBibGFjay10ZXh0Ij4KCQkJCTxkaXYgY2xhc3M9ImRpdlNwYW4gZGl2U3BhbjEyIj4KCQkJCQk8ZGl2IGNsYXNzPSJkaXZTcGFuIGRpdlNwYW4xMiBkaXZGaWx0ZXJPdXRlckJveCI+CgkJCQkJCTxkaXYgY2xhc3M9ImRpdlNwYW4gZGl2U3BhbjEyIj4KCQkJCQkJCTxkaXYgY2xhc3M9ImRpdlNwYW4gZGl2U3BhbjEyIGRpdkZpbHRlckJveFRpdGxlIj4KCQkJCQkJCQlSYWZmaW5leiB2b3RyZSByZWNoZXJjaGUgOgoJCQkJCQkJPC9kaXY+CgkJCQkJCQk8ZGl2IGNsYXNzPSJkaXZTcGFuIGRpdlNwYW4xMiI+CgkJCQkJCQkJPGRpdiBjbGFzcz0iZGl2U3BhbiBkaXZTcGFuMyI+PGRpdiBjbGFzcz0iZGl2RmlsdGVyVGl0bGUiPlR5cGUgZGUgY2Fycm9zc2VyaWU8L2Rpdj48dWwgY2xhc3M9IiI+PGxpIGNsYXNzPSIiPjxpbnB1dCBjbGFzcz0iZmlsdGVyQ2hlY2sgY2F0ZWdvcnkiIGlkPSJzaG93Q2xhc3NfY2FyIiB0eXBlPSJjaGVja2JveCIgdmFsdWU9ImNhciIgY2hlY2tlZD48bGFiZWwgY2xhc3M9ImZpbHRlclNwYW4gY2F0ZWdvcnkiIGZvcj0ic2hvd0NsYXNzX2NhciI+QXV0bzwvbGFiZWw+PC9saT48bGkgY2xhc3M9IiI+PGlucHV0IGNsYXNzPSJmaWx0ZXJDaGVjayBjYXRlZ29yeSIgaWQ9InNob3dDbGFzc190cnVjayIgdHlwZT0iY2hlY2tib3giIHZhbHVlPSJ0cnVjayIgY2hlY2tlZD48bGFiZWwgY2xhc3M9ImZpbHRlclNwYW4gY2F0ZWdvcnkiIGZvcj0ic2hvd0NsYXNzX3RydWNrIj5DYW1pb248L2xhYmVsPjwvbGk+PGxpIGNsYXNzPSIiPjxpbnB1dCBjbGFzcz0iZmlsdGVyQ2hlY2sgY2F0ZWdvcnkiIGlkPSJzaG93Q2xhc3NfY29tbWVyY2lhbCIgdHlwZT0iY2hlY2tib3giIHZhbHVlPSJjb21tZXJjaWFsIiBjaGVja2VkPjxsYWJlbCBjbGFzcz0iZmlsdGVyU3BhbiBjYXRlZ29yeSIgZm9yPSJzaG93Q2xhc3NfY29tbWVyY2lhbCI+Q29tbWVyY2lhbDwvbGFiZWw+PC9saT48bGkgY2xhc3M9IiI+PGlucHV0IGNsYXNzPSJmaWx0ZXJDaGVjayBjYXRlZ29yeSIgaWQ9InNob3dDbGFzc19jb252ZXJ0aWJsZSIgdHlwZT0iY2hlY2tib3giIHZhbHVlPSJjb252ZXJ0aWJsZSIgY2hlY2tlZD48bGFiZWwgY2xhc3M9ImZpbHRlclNwYW4gY2F0ZWdvcnkiIGZvcj0ic2hvd0NsYXNzX2NvbnZlcnRpYmxlIj5Ew6ljYXBvdGFibGU8L2xhYmVsPjwvbGk+PGxpIGNsYXNzPSIiPjxpbnB1dCBjbGFzcz0iZmlsdGVyQ2hlY2sgY2F0ZWdvcnkiIGlkPSJzaG93Q2xhc3Nfc3V2IiB0eXBlPSJjaGVja2JveCIgdmFsdWU9InN1diIgY2hlY2tlZD48bGFiZWwgY2xhc3M9ImZpbHRlclNwYW4gY2F0ZWdvcnkiIGZvcj0ic2hvd0NsYXNzX3N1diI+VlVTPC9sYWJlbD48L2xpPjwvdWw+PC9kaXY+PGRpdiBjbGFzcz0iZGl2U3BhbiBkaXZTcGFuMyI+PGRpdiBjbGFzcz0iZGl2RmlsdGVyVGl0bGUiPk1vdHJpY2l0w6k8L2Rpdj48dWwgY2xhc3M9IiI+PGxpIGNsYXNzPSIiPjxpbnB1dCBpZD0iZmlsdGVyRHJpdmVUcmFpbkNoZWNrMyIgY2xhc3M9ImZpbHRlckNoZWNrIGRyaXZldHJhaW4iIHR5cGU9ImNoZWNrYm94IiB2YWx1ZT0iMyIgZGF0YS1kcml2ZXRyYWluPSJBV0QiIGNoZWNrZWQ+PGxhYmVsIGZvcj0iZmlsdGVyRHJpdmVUcmFpbkNoZWNrMyIgY2xhc3M9ImZpbHRlclNwYW4iPlF1YXRyZSByb3VlcyBtb3RyaWNlczwvbGFiZWw+PC9saT48bGkgY2xhc3M9IiI+PGlucHV0IGlkPSJmaWx0ZXJEcml2ZVRyYWluQ2hlY2sxIiBjbGFzcz0iZmlsdGVyQ2hlY2sgZHJpdmV0cmFpbiIgdHlwZT0iY2hlY2tib3giIHZhbHVlPSIxIiBkYXRhLWRyaXZldHJhaW49IkZXRCIgY2hlY2tlZD48bGFiZWwgZm9yPSJmaWx0ZXJEcml2ZVRyYWluQ2hlY2sxIiBjbGFzcz0iZmlsdGVyU3BhbiI+VHJhY3Rpb24gYXZhbnQ8L2xhYmVsPjwvbGk+PGxpIGNsYXNzPSIiPjxpbnB1dCBpZD0iZmlsdGVyRHJpdmVUcmFpbkNoZWNrMiIgY2xhc3M9ImZpbHRlckNoZWNrIGRyaXZldHJhaW4iIHR5cGU9ImNoZWNrYm94IiB2YWx1ZT0iMiIgZGF0YS1kcml2ZXRyYWluPSJSV0QiIGNoZWNrZWQ+PGxhYmVsIGZvcj0iZmlsdGVyRHJpdmVUcmFpbkNoZWNrMiIgY2xhc3M9ImZpbHRlclNwYW4iPlByb3B1bHNpb24gYXJyacOocmU8L2xhYmVsPjwvbGk+PC91bD48L2Rpdj48ZGl2IGNsYXNzPSJkaXZTcGFuIGRpdlNwYW4zIj48ZGl2IGNsYXNzPSJkaXZGaWx0ZXJUaXRsZSI+VHlwZSBkZSBjYXJidXJhbnQ8L2Rpdj48dWwgY2xhc3M9IiI+CTxsaSBjbGFzcz0iIj4KCQk8aW5wdXQgZGF0YS1lc3NlbmNlPSJkaWVzZWwiIGNsYXNzPSJmaWx0ZXJDaGVjayBmdWVsdHlwZSIgaWQ9ImZpbHRlckVzc2VuY2VDaGVjazIiIHR5cGU9ImNoZWNrYm94IiB2YWx1ZT0iMiIgY2hlY2tlZD4KCQk8bGFiZWwgZm9yPSJmaWx0ZXJFc3NlbmNlQ2hlY2syIiBjbGFzcz0iZmlsdGVyU3BhbiI+CgkJCURpZXNlbAoJCTwvbGFiZWw+Cgk8L2xpPgk8bGkgY2xhc3M9IiI+CgkJPGlucHV0IGRhdGEtZXNzZW5jZT0iZWxlY3RyaWMiIGNsYXNzPSJmaWx0ZXJDaGVjayBmdWVsdHlwZSIgaWQ9ImZpbHRlckVzc2VuY2VDaGVjazMiIHR5cGU9ImNoZWNrYm94IiB2YWx1ZT0iMyIgY2hlY2tlZD4KCQk8bGFiZWwgZm9yPSJmaWx0ZXJFc3NlbmNlQ2hlY2szIiBjbGFzcz0iZmlsdGVyU3BhbiI+CgkJCcOJbGVjdHJpcXVlCgkJPC9sYWJlbD4KCTwvbGk+CTxsaSBjbGFzcz0iIj4KCQk8aW5wdXQgZGF0YS1lc3NlbmNlPSJnYXMiIGNsYXNzPSJmaWx0ZXJDaGVjayBmdWVsdHlwZSIgaWQ9ImZpbHRlckVzc2VuY2VDaGVjazEiIHR5cGU9ImNoZWNrYm94IiB2YWx1ZT0iMSIgY2hlY2tlZD4KCQk8bGFiZWwgZm9yPSJmaWx0ZXJFc3NlbmNlQ2hlY2sxIiBjbGFzcz0iZmlsdGVyU3BhbiI+CgkJCUVzc2VuY2UKCQk8L2xhYmVsPgoJPC9saT4JPGxpIGNsYXNzPSIiPgoJCTxpbnB1dCBkYXRhLWVzc2VuY2U9Imh5YnJpZCIgY2xhc3M9ImZpbHRlckNoZWNrIGZ1ZWx0eXBlIiBpZD0iZmlsdGVyRXNzZW5jZUNoZWNrNCIgdHlwZT0iY2hlY2tib3giIHZhbHVlPSI0IiBjaGVja2VkPgoJCTxsYWJlbCBmb3I9ImZpbHRlckVzc2VuY2VDaGVjazQiIGNsYXNzPSJmaWx0ZXJTcGFuIj4KCQkJSHlicmlkZQoJCTwvbGFiZWw+Cgk8L2xpPgk8bGkgY2xhc3M9IiI+CgkJPGlucHV0IGRhdGEtZXNzZW5jZT0icGhldiIgY2xhc3M9ImZpbHRlckNoZWNrIGZ1ZWx0eXBlIiBpZD0iZmlsdGVyRXNzZW5jZUNoZWNrNSIgdHlwZT0iY2hlY2tib3giIHZhbHVlPSI1IiBjaGVja2VkPgoJCTxsYWJlbCBmb3I9ImZpbHRlckVzc2VuY2VDaGVjazUiIGNsYXNzPSJmaWx0ZXJTcGFuIj4KCQkJSHlicmlkZSByZWNoYXJnZWFibGUKCQk8L2xhYmVsPgoJPC9saT48L3VsPjwvZGl2PjxkaXYgY2xhc3M9ImRpdlNwYW4gZGl2U3BhbjMiPjxkaXYgY2xhc3M9ImRpdkZpbHRlclRpdGxlIj5UcmllciBwYXI8L2Rpdj48dWwgY2xhc3M9IiI+PGxpIGNsYXNzPSIiPjxpbnB1dCBpZD0icmFkaW9Nb2RsZSIgY2xhc3M9InJhZGlvU29ydCIgdHlwZT0icmFkaW8iIG5hbWU9InNvcnRieSIgdmFsdWU9Im1vZGVsIiBjaGVja2VkPjxsYWJlbCBjbGFzcz0iZmlsdGVyU3BhbiIgZm9yPSJyYWRpb01vZGxlIj5Nb2TDqGxlPC9sYWJlbD48L2xpPjxsaSBjbGFzcz0iIj48aW5wdXQgaWQ9InJhZGlvUHJpY2UiIGNsYXNzPSJyYWRpb1NvcnQiIHR5cGU9InJhZGlvIiBuYW1lPSJzb3J0YnkiIHZhbHVlPSJwcmljZSI+PGxhYmVsIGNsYXNzPSJmaWx0ZXJTcGFuIiBmb3I9InJhZGlvUHJpY2UiPlByaXg8L2xhYmVsPjwvbGk+PGxpIGNsYXNzPSIiPjxpbnB1dCBpZD0icmFkaW9Db25zbyIgY2xhc3M9InJhZGlvU29ydCIgdHlwZT0icmFkaW8iIG5hbWU9InNvcnRieSIgdmFsdWU9ImNvbnNvIj48bGFiZWwgY2xhc3M9ImZpbHRlclNwYW4iIGZvcj0icmFkaW9Db25zbyI+TC8xMDBrbTwvbGFiZWw+PC9saT48L3VsPjwvZGl2PgkJCQkKCQkJCQkJCTwvZGl2PgoJCQkJCQkJPGRpdiBjbGFzcz0iZGl2U3BhbiBkaXZTcGFuMTIiPgoJCQkJCQkJCQoJCQkJCQkJPC9kaXY+CgkJCQkJCQk8ZGl2IGNsYXNzPSJkaXZTcGFuIGRpdlNwYW4xMiI+CgkJCQkJCQkJCQkJPGRpdiBjbGFzcz0iZGl2U3BhbiBkaXZTcGFuMTIgZGl2UHJpY2VSYW5nZVNsaWRlciIgaWQ9InByaWNlUmFuZ2VTbGlkZXJGaWx0ZXJDb250YWluZXIiPgoJCQkJPGRpdiBjbGFzcz0iZGl2U3BhbiBkaXZTcGFuMTIgZGl2RmlsdGVyVGl0bGUiPgoJCQkJCUZvdXJjaGV0dGUgZGUgcHJpeAoJCQkJPC9kaXY+CgkJCQk8ZGl2IGNsYXNzPSJkaXZTcGFuIGRpdlNwYW4xMiByYW5nZS1zbGlkZXItcHJpY2VzIj4KCQkJCQk8c3BhbiBjbGFzcz0icHJpY2UtbWluIGZvcm1hdC1wcmljZSI+PC9zcGFuPsKgwqDDoMKgwqA8c3BhbiBjbGFzcz0icHJpY2UtbWF4IGZvcm1hdC1wcmljZSI+PC9zcGFuPgoJCQkJPC9kaXY+CgkJCQk8ZGl2IGNsYXNzPSJkaXZTcGFuIGRpdlNwYW42Ij4KCQkJCQk8ZGl2IGNsYXNzPSJkaXZTcGFuIGRpdlNwYW4xIHJhbmdlLXNsaWRlci1sZWZ0Ij5NaW48L2Rpdj4KCQkJCQk8ZGl2IGNsYXNzPSJkaXZTcGFuIGRpdlNwYW45IHJhbmdlLXNsaWRlciIgYXR0ci1wcmljZS1taW49IjM1MjQ0IiBhdHRyLXByaWNlLW1heD0iODkyOTUiPjwvZGl2PgoJCQkJCTxkaXYgY2xhc3M9ImRpdlNwYW4gZGl2U3BhbjEgcmFuZ2Utc2xpZGVyLXJpZ2h0Ij5NYXg8L2Rpdj4KCQkJCTwvZGl2PgoJCQk8L2Rpdj4KCQkJCQkJCTwvZGl2PgoJCQkJCQk8L2Rpdj4KCQkJCQk8L2Rpdj4KCQkJCTwvZGl2PgoJCQk8L2Rpdj4KCQkJPCEtLSBDTE9TRSBGSUxURVJNQUlOQk9YICgnLl9fTElORV9fLicpLS0+PCEtLSBPUEVOIENBVEVHT1JJRVNCT1hXUkFQUEVSICgyMTIzKS0tPjxkaXYgY2xhc3M9IklubmVyQm94TGF5ZXIgZGl2Q2F0ZWdvcmllc0JveFdyYXBwZXIiPjwhLS0gT1BFTiBDQVRFR09SWUJPWFdSQVBQRVIgKDIxODYpIC0tPjxkaXYgaWQ9ImNsYXNzY2FyX2NvbnRhaW5lciIgY2xhc3M9ImRpdlNwYW4gZGl2U3BhbjEyIGRpdkNhdGVnb3J5Qm94V3JhcHBlciIgc3RhdGU9Im9wZW4iIG5idmlzaWJsZT0iMSI+PGgyIGNsYXNzPSJkZWZhdWx0IGljb24taGVhZGluZyBmbGV4LWJveCBhbGlnbi1jZW50ZXIiPgoJPHNwYW4gY2xhc3M9ImZhIGZhLWNoZXZyb24tcmlnaHQiIGFyaWEtaGlkZGVuPSJ0cnVlIj48L3NwYW4+Cgk8Ym94LWxjIGNsYXNzPSItcHYwIj4KCQk8ZGl2IGNsYXNzPSJtYWluVGV4dCAtYm9sZCI+QXV0b3MgbmV1dmVzIEZvcmQgMjAyNSAmYW1wOyAyMDI2PC9kaXY+CgkJPGRpdiBjbGFzcz0ic2Vjb25kYXJ5VGV4dCI+w6AgR2F0aW5lYXUgKHByw6hzIGQnT3R0YXdhKTwvZGl2PgoJPC9ib3gtbGM+CjwvaDI+PGRpdiBjbGFzcz0iZGl2U3BhbiBkaXZTcGFuMTIgZGl2Q2Fyc0JveFdyYXBwZXIgQ0xBU1NfY2FyIj4JPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggIHJlYmF0ZUJvcmRlckNvbG9yIiBpZD0iZmJ4X2Nhcl8xIj4KCQkKCQk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVJbm5lckJveCIgaWQ9IiI+CgkJCTxkaXYgY2xhc3M9ImQyYy1mYXZzLXRyaWdnZXItd3JhcHBlciBkMmZhdi0wMSIgZGF0YS1tYWtlPSJGb3JkIiBkYXRhLW1vZGVsPSJNdXN0YW5nIiBkYXRhLXllYXI9IjIwMjYiIGRhdGEtdHJpbT0iIiBkYXRhLWNhcmlkPSIiPjwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJUaXRsZUNvbnRhaW5lciI+CgkJCQk8YSB0aXRsZT0iRm9yZCBNdXN0YW5nIDIwMjYiIGhyZWY9Ij9wYXRoPS9uZXVmcy9Gb3JkLU11c3RhbmctMjAyNi5odG1sIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9Ik11c3RhbmcgMjAyNiI+CgkJCQkJPGgzPgoJCQkJCQk8c3BhbiBjbGFzcz0ic3BhbkNhck1ha2UgIj5Gb3JkPC9zcGFuPjxicj4KCQkJCQkJPHNwYW4gY2xhc3M9Im1vZGVsTmFtZSBzcGFuTW9kZWxOYW1lIj5NdXN0YW5nIDIwMjY8L3NwYW4+CgkJCQkJPC9oMz4KCQkJCTwvYT4KCQkJCSAgICA8IS0tIE9QRU4gTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KICAgIDxkaXYgY2xhc3M9ImRpdk5ld0NhclN0YXJ0UHJpY2UiPgogICAgICAgIMOgIHBhcnRpciBkZQogICAgICAgIDxzcGFuIGNsYXNzPSIiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj40MSAzMjU8L3NwYW4+PC9zcGFuPgogICAgICAgIDxpIHN0eWxlPSJjb2xvcjojMDAwO2ZvbnQtc2l6ZToyMHB4OyIgY2xhc3M9ImNhclByaWNlSW5pdGlhbFRvb2xUaXBJY29uIGZhbCBmYS1pbmZvLWNpcmNsZSBibGFja0NvbG9yQm9sZCIgZGF0YS10b29sdGlwPScmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1BEU0Y6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzM4IDkzMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RyYW5zcG9ydCAmYW1wOyBQcsOpcGFyYXRpb246Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzIgMjk1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VGF4ZSBBQzombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MTAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VG90YWwmbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7NDEgMzI1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0Oyc+PC9pPgogICAgPC9kaXY+CiAgICA8IS0tIENMT1NFIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CgkJCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW5TdG9ja0xpbmsiIGhpZGRlbj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgZGF0YS10eXBlPSJpbnZkYXRhIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9Ik11c3RhbmciIGRhdGEteWVhcj0iMjAyNiIgZGF0YS1zdHlsZWlkcz0iNDc5NTM2LDQ3OTUzNyw0Nzk1MzgsNDc5NTM5LDQ3OTU0MCw0ODY3NjEiIGRhdGEtaHlicmlkPSIwIj4KCTwvZGl2PgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW1hZ2VDb250YWluZXIgZmxleC1jZW50ZXIgYWxpZ24tY2VudGVyICI+CgkJCQk8YSB0aXRsZT0iRm9yZCBNdXN0YW5nIDIwMjYiIGhyZWY9Ij9wYXRoPS9uZXVmcy9Gb3JkLU11c3RhbmctMjAyNi5odG1sIj4KCQkJCQk8aW1nIGFsdD0iRm9yZCBNdXN0YW5nIDIwMjYiIGJvcmRlcj0iMCIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvZnIvRm9yZC9NdXN0YW5nLzIwMjYvNDg2NzYxL0JsdWUvcHJvZmlsZS53ZWJwIiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+CgkJCQk8L2E+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJGb290ZXJDb250YWluZXIgc3RhY2stbGMgLS1zLTkiPgoJCQkJCTxkaXYgY2xhc3M9ImNhclBheW1lbnRXcmFwcGVyIj4KCQkJPGRpdiBjbGFzcz0iY29udGVudC1za2VsZXRvbiBodG1sLWJsb2NrIiBkYXRhLWJsb2NrPSJwYXltZW50QmxvY2siIGRhdGEtdHlwZT0iYmxvY2siIGRhdGEtc291cmNlPSJzZXJ2ZXIiIGRhdGEtY2FsbGJhY2s9InBheW1lbnRDYWxjQmxvY2siPgoJCQoJPGlucHV0IG5hbWU9ImJsb2NrLWRhdGEiIHR5cGU9ImhpZGRlbiIgdmFsdWU9InsmcXVvdDtzdHlsZWlkJnF1b3Q7OiZxdW90OzQ3OTUzNiZxdW90OywmcXVvdDt0aXRsZSZxdW90OzomcXVvdDtGb3JkIE11c3RhbmcgMjAyNiZxdW90OywmcXVvdDtocmVmJnF1b3Q7OiZxdW90O1wvbmV1ZnNcL0ZvcmQtTXVzdGFuZy0yMDI2Lmh0bWwmcXVvdDssJnF1b3Q7bGlua3N0eWxlJnF1b3Q7OiZxdW90OyZxdW90OywmcXVvdDtsaW5rY2xhc3MmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O2NvbnRhaW5lcmNsYXNzJnF1b3Q7OiZxdW90OyZxdW90OywmcXVvdDtwcm9tb3RleHQmcXVvdDs6JnF1b3Q7RFx1MDBlOWNvdXZyZXogbCdvZmZyZSEmcXVvdDt9Ij4KCTwvZGl2PgoJPC9kaXY+CgkJCQkKCQkJPC9kaXY+CgkJPC9kaXY+Cgk8L2Rpdj4JPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggIHJlYmF0ZUJvcmRlckNvbG9yIiBpZD0iZmJ4X2Nhcl8yIj4KCQkKCQk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVJbm5lckJveCIgaWQ9IiI+CgkJCTxkaXYgY2xhc3M9ImQyYy1mYXZzLXRyaWdnZXItd3JhcHBlciBkMmZhdi0wMSIgZGF0YS1tYWtlPSJGb3JkIiBkYXRhLW1vZGVsPSJNdXN0YW5nIiBkYXRhLXllYXI9IjIwMjUiIGRhdGEtdHJpbT0iIiBkYXRhLWNhcmlkPSIiPjwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJUaXRsZUNvbnRhaW5lciI+CgkJCQk8YSB0aXRsZT0iRm9yZCBNdXN0YW5nIDIwMjUiIGhyZWY9Ij9wYXRoPS9uZXVmcy9Gb3JkLU11c3RhbmctMjAyNS5odG1sIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9Ik11c3RhbmcgMjAyNSI+CgkJCQkJPGgzPgoJCQkJCQk8c3BhbiBjbGFzcz0ic3BhbkNhck1ha2UgIj5Gb3JkPC9zcGFuPjxicj4KCQkJCQkJPHNwYW4gY2xhc3M9Im1vZGVsTmFtZSBzcGFuTW9kZWxOYW1lIj5NdXN0YW5nIDIwMjU8L3NwYW4+CgkJCQkJPC9oMz4KCQkJCTwvYT4KCQkJCSAgICA8IS0tIE9QRU4gTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KICAgIDxkaXYgY2xhc3M9ImRpdk5ld0NhclN0YXJ0UHJpY2UiPgogICAgICAgIMOgIHBhcnRpciBkZQogICAgICAgIDxzcGFuIGNsYXNzPSIiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj40MSAzMjU8L3NwYW4+PC9zcGFuPgogICAgICAgIDxpIHN0eWxlPSJjb2xvcjojMDAwO2ZvbnQtc2l6ZToyMHB4OyIgY2xhc3M9ImNhclByaWNlSW5pdGlhbFRvb2xUaXBJY29uIGZhbCBmYS1pbmZvLWNpcmNsZSBibGFja0NvbG9yQm9sZCIgZGF0YS10b29sdGlwPScmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1BEU0Y6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzM4IDkzMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RyYW5zcG9ydCAmYW1wOyBQcsOpcGFyYXRpb246Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzIgMjk1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VGF4ZSBBQzombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MTAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VG90YWwmbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7NDEgMzI1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0Oyc+PC9pPgogICAgPC9kaXY+CiAgICA8IS0tIENMT1NFIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+PCEtLSBPUEVOIE5FVyBDQVIgUFJPTU8gUFJJQ0UgKDI3NiktLT48ZGl2IGNsYXNzPSJkaXZOZXdDYXJQcm9tb1ByaWNlIj5lbiByYWJhaXMgw6AgPHNwYW4gY2xhc3M9InN0cmlrZS1wcmljZSIgc3R5bGU9ImNvbG9yOiAjZWIwMDAwOyI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjM0IDMyNTwvc3Bhbj48L3NwYW4+PC9kaXY+PCEtLSBDTE9TRSBORVcgQ0FSIFBST01PIFBSSUNFICgyODMpLS0+CgkJCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW5TdG9ja0xpbmsiIGhpZGRlbj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgZGF0YS10eXBlPSJpbnZkYXRhIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9Ik11c3RhbmciIGRhdGEteWVhcj0iMjAyNSIgZGF0YS1zdHlsZWlkcz0iNDYxOTQ0LDQ2MTk0NSw0NjE5NDYsNDYxOTQ3LDQ2MTk0OCIgZGF0YS1oeWJyaWQ9IjAiPgoJPC9kaXY+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJbWFnZUNvbnRhaW5lciBmbGV4LWNlbnRlciBhbGlnbi1jZW50ZXIgIj4KCQkJCTxhIHRpdGxlPSJGb3JkIE11c3RhbmcgMjAyNSIgaHJlZj0iP3BhdGg9L25ldWZzL0ZvcmQtTXVzdGFuZy0yMDI1Lmh0bWwiPgoJCQkJCTxpbWcgYWx0PSJGb3JkIE11c3RhbmcgMjAyNSIgYm9yZGVyPSIwIiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9mci9Gb3JkL011c3RhbmcvMjAyNS80NjE5NDgvQmx1ZS9wcm9maWxlLndlYnAiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj4KCQkJCTwvYT4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckZvb3RlckNvbnRhaW5lciBzdGFjay1sYyAtLXMtOSI+CgkJCQkJPGRpdiBjbGFzcz0iY2FyUGF5bWVudFdyYXBwZXIiPgoJCQk8ZGl2IGNsYXNzPSJjb250ZW50LXNrZWxldG9uIGh0bWwtYmxvY2siIGRhdGEtYmxvY2s9InBheW1lbnRCbG9jayIgZGF0YS10eXBlPSJibG9jayIgZGF0YS1zb3VyY2U9InNlcnZlciIgZGF0YS1jYWxsYmFjaz0icGF5bWVudENhbGNCbG9jayI+CgkJCgk8aW5wdXQgbmFtZT0iYmxvY2stZGF0YSIgdHlwZT0iaGlkZGVuIiB2YWx1ZT0ieyZxdW90O3N0eWxlaWQmcXVvdDs6JnF1b3Q7NDYxOTQ0JnF1b3Q7LCZxdW90O3RpdGxlJnF1b3Q7OiZxdW90O0ZvcmQgTXVzdGFuZyAyMDI1JnF1b3Q7LCZxdW90O2hyZWYmcXVvdDs6JnF1b3Q7XC9uZXVmc1wvRm9yZC1NdXN0YW5nLTIwMjUuaHRtbCZxdW90OywmcXVvdDtsaW5rc3R5bGUmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O2xpbmtjbGFzcyZxdW90OzomcXVvdDsmcXVvdDssJnF1b3Q7Y29udGFpbmVyY2xhc3MmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O3Byb21vdGV4dCZxdW90OzomcXVvdDtEXHUwMGU5Y291dnJleiBsJ29mZnJlISZxdW90O30iPgoJPC9kaXY+Cgk8L2Rpdj4KCQkJCQoJCQk8L2Rpdj4KCQk8L2Rpdj4KCTwvZGl2PjwvZGl2PjwvZGl2PjwhLS0gQ0xPU0UgQ0FURUdPUllCT1hXUkFQUEVSICgyMTk0KS0tPjwhLS0gT1BFTiBDQVRFR09SWUJPWFdSQVBQRVIgKDIxODYpIC0tPjxkaXYgaWQ9ImNsYXNzY29udmVydGlibGVfY29udGFpbmVyIiBjbGFzcz0iZGl2U3BhbiBkaXZTcGFuMTIgZGl2Q2F0ZWdvcnlCb3hXcmFwcGVyIiBzdGF0ZT0ib3BlbiIgbmJ2aXNpYmxlPSIxIj48aDIgY2xhc3M9ImRlZmF1bHQgaWNvbi1oZWFkaW5nIGZsZXgtYm94IGFsaWduLWNlbnRlciI+Cgk8c3BhbiBjbGFzcz0iZmEgZmEtY2hldnJvbi1yaWdodCIgYXJpYS1oaWRkZW49InRydWUiPjwvc3Bhbj4KCTxib3gtbGMgY2xhc3M9Ii1wdjAiPgoJCTxkaXYgY2xhc3M9Im1haW5UZXh0IC1ib2xkIj5Ew6ljYXBvdGFibGVzIG5ldXZlcyBGb3JkIDIwMjUgJmFtcDsgMjAyNjwvZGl2PgoJCTxkaXYgY2xhc3M9InNlY29uZGFyeVRleHQiPsOgIEdhdGluZWF1IChwcsOocyBkJ090dGF3YSk8L2Rpdj4KCTwvYm94LWxjPgo8L2gyPjxkaXYgY2xhc3M9ImRpdlNwYW4gZGl2U3BhbjEyIGRpdkNhcnNCb3hXcmFwcGVyIENMQVNTX2NvbnZlcnRpYmxlIj4JPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggIHJlYmF0ZUJvcmRlckNvbG9yIiBpZD0iZmJ4X2NvbnZlcnRpYmxlXzEiPgoJCQoJCTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZUlubmVyQm94IiBpZD0iIj4KCQkJPGRpdiBjbGFzcz0iZDJjLWZhdnMtdHJpZ2dlci13cmFwcGVyIGQyZmF2LTAxIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9Ik11c3RhbmcgQ29udmVydGlibGUiIGRhdGEteWVhcj0iMjAyNiIgZGF0YS10cmltPSIiIGRhdGEtY2FyaWQ9IiI+PC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhclRpdGxlQ29udGFpbmVyIj4KCQkJCTxhIHRpdGxlPSJGb3JkIE11c3RhbmcgRMOpY2Fwb3RhYmxlIDIwMjYiIGhyZWY9Ij9wYXRoPS9uZXVmcy9Gb3JkLU11c3RhbmdfQ29udmVydGlibGUtMjAyNi5odG1sIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9Ik11c3RhbmcgRMOpY2Fwb3RhYmxlIDIwMjYiPgoJCQkJCTxoMz4KCQkJCQkJPHNwYW4gY2xhc3M9InNwYW5DYXJNYWtlICI+Rm9yZDwvc3Bhbj48YnI+CgkJCQkJCTxzcGFuIGNsYXNzPSJtb2RlbE5hbWUgc3Bhbk1vZGVsTmFtZSI+TXVzdGFuZyBEw6ljYXBvdGFibGUgMjAyNjwvc3Bhbj4KCQkJCQk8L2gzPgoJCQkJPC9hPgoJCQkJICAgIDwhLS0gT1BFTiBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgogICAgPGRpdiBjbGFzcz0iZGl2TmV3Q2FyU3RhcnRQcmljZSI+CiAgICAgICAgw6AgcGFydGlyIGRlCiAgICAgICAgPHNwYW4gY2xhc3M9IiI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjQ4IDIyNTwvc3Bhbj48L3NwYW4+CiAgICAgICAgPGkgc3R5bGU9ImNvbG9yOiMwMDA7Zm9udC1zaXplOjIwcHg7IiBjbGFzcz0iY2FyUHJpY2VJbml0aWFsVG9vbFRpcEljb24gZmFsIGZhLWluZm8tY2lyY2xlIGJsYWNrQ29sb3JCb2xkIiBkYXRhLXRvb2x0aXA9JyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7UERTRjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7NDUgODMwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VHJhbnNwb3J0ICZhbXA7IFByw6lwYXJhdGlvbjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MiAyOTUmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUYXhlIEFDOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsxMDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUb3RhbCZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDs0OCAyMjUmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jz48L2k+CiAgICA8L2Rpdj4KICAgIDwhLS0gQ0xPU0UgTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KCQkJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJblN0b2NrTGluayIgaGlkZGVuPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBkYXRhLXR5cGU9ImludmRhdGEiIGRhdGEtbWFrZT0iRm9yZCIgZGF0YS1tb2RlbD0iTXVzdGFuZyBDb252ZXJ0aWJsZSIgZGF0YS15ZWFyPSIyMDI2IiBkYXRhLXN0eWxlaWRzPSI0Nzk1NDEsNDc5NTQyLDQ3OTU0MyIgZGF0YS1oeWJyaWQ9IjAiPgoJPC9kaXY+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJbWFnZUNvbnRhaW5lciBmbGV4LWNlbnRlciBhbGlnbi1jZW50ZXIgIj4KCQkJCTxhIHRpdGxlPSJGb3JkIE11c3RhbmcgRMOpY2Fwb3RhYmxlIDIwMjYiIGhyZWY9Ij9wYXRoPS9uZXVmcy9Gb3JkLU11c3RhbmdfQ29udmVydGlibGUtMjAyNi5odG1sIj4KCQkJCQk8aW1nIGFsdD0iRm9yZCBNdXN0YW5nIETDqWNhcG90YWJsZSAyMDI2IiBib3JkZXI9IjAiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL2ZyL0ZvcmQvTXVzdGFuZ19Db252ZXJ0aWJsZS8yMDI2LzQ3OTU0My9CbHVlL3Byb2ZpbGUud2VicCIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPgoJCQkJPC9hPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyRm9vdGVyQ29udGFpbmVyIHN0YWNrLWxjIC0tcy05Ij4KCQkJCQk8ZGl2IGNsYXNzPSJjYXJQYXltZW50V3JhcHBlciI+CgkJCTxkaXYgY2xhc3M9ImNvbnRlbnQtc2tlbGV0b24gaHRtbC1ibG9jayIgZGF0YS1ibG9jaz0icGF5bWVudEJsb2NrIiBkYXRhLXR5cGU9ImJsb2NrIiBkYXRhLXNvdXJjZT0ic2VydmVyIiBkYXRhLWNhbGxiYWNrPSJwYXltZW50Q2FsY0Jsb2NrIj4KCQkKCTxpbnB1dCBuYW1lPSJibG9jay1kYXRhIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSIiPgoJPC9kaXY+Cgk8L2Rpdj4KCQkJCQoJCQk8L2Rpdj4KCQk8L2Rpdj4KCTwvZGl2Pgk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVPdXRlckJveCAgcmViYXRlQm9yZGVyQ29sb3IiIGlkPSJmYnhfY29udmVydGlibGVfMiI+CgkJCgkJPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlSW5uZXJCb3giIGlkPSIiPgoJCQk8ZGl2IGNsYXNzPSJkMmMtZmF2cy10cmlnZ2VyLXdyYXBwZXIgZDJmYXYtMDEiIGRhdGEtbWFrZT0iRm9yZCIgZGF0YS1tb2RlbD0iTXVzdGFuZyBDb252ZXJ0aWJsZSIgZGF0YS15ZWFyPSIyMDI1IiBkYXRhLXRyaW09IiIgZGF0YS1jYXJpZD0iIj48L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyVGl0bGVDb250YWluZXIiPgoJCQkJPGEgdGl0bGU9IkZvcmQgTXVzdGFuZyBEw6ljYXBvdGFibGUgMjAyNSIgaHJlZj0iP3BhdGg9L25ldWZzL0ZvcmQtTXVzdGFuZ19Db252ZXJ0aWJsZS0yMDI1Lmh0bWwiIGRhdGEtbWFrZT0iRm9yZCIgZGF0YS1tb2RlbD0iTXVzdGFuZyBEw6ljYXBvdGFibGUgMjAyNSI+CgkJCQkJPGgzPgoJCQkJCQk8c3BhbiBjbGFzcz0ic3BhbkNhck1ha2UgIj5Gb3JkPC9zcGFuPjxicj4KCQkJCQkJPHNwYW4gY2xhc3M9Im1vZGVsTmFtZSBzcGFuTW9kZWxOYW1lIj5NdXN0YW5nIETDqWNhcG90YWJsZSAyMDI1PC9zcGFuPgoJCQkJCTwvaDM+CgkJCQk8L2E+CgkJCQkgICAgPCEtLSBPUEVOIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CiAgICA8ZGl2IGNsYXNzPSJkaXZOZXdDYXJTdGFydFByaWNlIj4KICAgICAgICDDoCBwYXJ0aXIgZGUKICAgICAgICA8c3BhbiBjbGFzcz0iIj4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+NDggMjI1PC9zcGFuPjwvc3Bhbj4KICAgICAgICA8aSBzdHlsZT0iY29sb3I6IzAwMDtmb250LXNpemU6MjBweDsiIGNsYXNzPSJjYXJQcmljZUluaXRpYWxUb29sVGlwSWNvbiBmYWwgZmEtaW5mby1jaXJjbGUgYmxhY2tDb2xvckJvbGQiIGRhdGEtdG9vbHRpcD0nJmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtQRFNGOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDs0NSA4MzAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUcmFuc3BvcnQgJmFtcDsgUHLDqXBhcmF0aW9uOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsyIDI5NSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RheGUgQUM6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzEwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RvdGFsJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzQ4IDIyNSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsnPjwvaT4KICAgIDwvZGl2PgogICAgPCEtLSBDTE9TRSBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPjwhLS0gT1BFTiBORVcgQ0FSIFBST01PIFBSSUNFICgyNzYpLS0+PGRpdiBjbGFzcz0iZGl2TmV3Q2FyUHJvbW9QcmljZSI+ZW4gcmFiYWlzIMOgIDxzcGFuIGNsYXNzPSJzdHJpa2UtcHJpY2UiIHN0eWxlPSJjb2xvcjogI2ViMDAwMDsiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj40MSAyMjU8L3NwYW4+PC9zcGFuPjwvZGl2PjwhLS0gQ0xPU0UgTkVXIENBUiBQUk9NTyBQUklDRSAoMjgzKS0tPgoJCQkJCTxkaXYgY2xhc3M9ImRpdkNhckluU3RvY2tMaW5rIiBoaWRkZW4+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGRhdGEtdHlwZT0iaW52ZGF0YSIgZGF0YS1tYWtlPSJGb3JkIiBkYXRhLW1vZGVsPSJNdXN0YW5nIENvbnZlcnRpYmxlIiBkYXRhLXllYXI9IjIwMjUiIGRhdGEtc3R5bGVpZHM9IjQ2MTk0OSw0NjE5NTAsNDYxOTUxIiBkYXRhLWh5YnJpZD0iMCI+Cgk8L2Rpdj4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckltYWdlQ29udGFpbmVyIGZsZXgtY2VudGVyIGFsaWduLWNlbnRlciAiPgoJCQkJPGEgdGl0bGU9IkZvcmQgTXVzdGFuZyBEw6ljYXBvdGFibGUgMjAyNSIgaHJlZj0iP3BhdGg9L25ldWZzL0ZvcmQtTXVzdGFuZ19Db252ZXJ0aWJsZS0yMDI1Lmh0bWwiPgoJCQkJCTxpbWcgYWx0PSJGb3JkIE11c3RhbmcgRMOpY2Fwb3RhYmxlIDIwMjUiIGJvcmRlcj0iMCIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvZnIvRm9yZC9NdXN0YW5nX0NvbnZlcnRpYmxlLzIwMjUvNDYxOTUxL0JsdWUvcHJvZmlsZS53ZWJwIiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+CgkJCQk8L2E+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJGb290ZXJDb250YWluZXIgc3RhY2stbGMgLS1zLTkiPgoJCQkJCTxkaXYgY2xhc3M9ImNhclBheW1lbnRXcmFwcGVyIj4KCQkJPGRpdiBjbGFzcz0iY29udGVudC1za2VsZXRvbiBodG1sLWJsb2NrIiBkYXRhLWJsb2NrPSJwYXltZW50QmxvY2siIGRhdGEtdHlwZT0iYmxvY2siIGRhdGEtc291cmNlPSJzZXJ2ZXIiIGRhdGEtY2FsbGJhY2s9InBheW1lbnRDYWxjQmxvY2siPgoJCQoJPGlucHV0IG5hbWU9ImJsb2NrLWRhdGEiIHR5cGU9ImhpZGRlbiIgdmFsdWU9IiI+Cgk8L2Rpdj4KCTwvZGl2PgoJCQkJCgkJCTwvZGl2PgoJCTwvZGl2PgoJPC9kaXY+PC9kaXY+PC9kaXY+PCEtLSBDTE9TRSBDQVRFR09SWUJPWFdSQVBQRVIgKDIxOTQpLS0+PCEtLSBPUEVOIENBVEVHT1JZQk9YV1JBUFBFUiAoMjE4NikgLS0+PGRpdiBpZD0iY2xhc3NzdXZfY29udGFpbmVyIiBjbGFzcz0iZGl2U3BhbiBkaXZTcGFuMTIgZGl2Q2F0ZWdvcnlCb3hXcmFwcGVyIiBzdGF0ZT0ib3BlbiIgbmJ2aXNpYmxlPSIxIj48aDIgY2xhc3M9ImRlZmF1bHQgaWNvbi1oZWFkaW5nIGZsZXgtYm94IGFsaWduLWNlbnRlciI+Cgk8c3BhbiBjbGFzcz0iZmEgZmEtY2hldnJvbi1yaWdodCIgYXJpYS1oaWRkZW49InRydWUiPjwvc3Bhbj4KCTxib3gtbGMgY2xhc3M9Ii1wdjAiPgoJCTxkaXYgY2xhc3M9Im1haW5UZXh0IC1ib2xkIj5WVVMgbmV1ZnMgRm9yZCAyMDI1LCAyMDI2ICZhbXA7IDIwMjc8L2Rpdj4KCQk8ZGl2IGNsYXNzPSJzZWNvbmRhcnlUZXh0Ij7DoCBHYXRpbmVhdSAocHLDqHMgZCdPdHRhd2EpPC9kaXY+Cgk8L2JveC1sYz4KPC9oMj48ZGl2IGNsYXNzPSJkaXZTcGFuIGRpdlNwYW4xMiBkaXZDYXJzQm94V3JhcHBlciBDTEFTU19zdXYiPgk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVPdXRlckJveCAgcmViYXRlQm9yZGVyQ29sb3IiIGlkPSJmYnhfc3V2XzEiPgoJCQoJCTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZUlubmVyQm94IiBpZD0iIj4KCQkJPGRpdiBjbGFzcz0iZDJjLWZhdnMtdHJpZ2dlci13cmFwcGVyIGQyZmF2LTAxIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9IkJyb25jbyIgZGF0YS15ZWFyPSIyMDI2IiBkYXRhLXRyaW09IiIgZGF0YS1jYXJpZD0iIj48L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyVGl0bGVDb250YWluZXIiPgoJCQkJPGEgdGl0bGU9IkZvcmQgQnJvbmNvIDIwMjYiIGhyZWY9Ij9wYXRoPS9uZXVmcy9Gb3JkLUJyb25jby0yMDI2Lmh0bWwiIGRhdGEtbWFrZT0iRm9yZCIgZGF0YS1tb2RlbD0iQnJvbmNvIDIwMjYiPgoJCQkJCTxoMz4KCQkJCQkJPHNwYW4gY2xhc3M9InNwYW5DYXJNYWtlICI+Rm9yZDwvc3Bhbj48YnI+CgkJCQkJCTxzcGFuIGNsYXNzPSJtb2RlbE5hbWUgc3Bhbk1vZGVsTmFtZSI+QnJvbmNvIDIwMjY8L3NwYW4+CgkJCQkJPC9oMz4KCQkJCTwvYT4KCQkJCSAgICA8IS0tIE9QRU4gTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KICAgIDxkaXYgY2xhc3M9ImRpdk5ld0NhclN0YXJ0UHJpY2UiPgogICAgICAgIMOgIHBhcnRpciBkZQogICAgICAgIDxzcGFuIGNsYXNzPSIiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj41NCAzNjA8L3NwYW4+PC9zcGFuPgogICAgICAgIDxpIHN0eWxlPSJjb2xvcjojMDAwO2ZvbnQtc2l6ZToyMHB4OyIgY2xhc3M9ImNhclByaWNlSW5pdGlhbFRvb2xUaXBJY29uIGZhbCBmYS1pbmZvLWNpcmNsZSBibGFja0NvbG9yQm9sZCIgZGF0YS10b29sdGlwPScmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1BEU0Y6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzUxIDc2NSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RyYW5zcG9ydCAmYW1wOyBQcsOpcGFyYXRpb246Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzIgNDk1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VGF4ZSBBQzombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MTAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VG90YWwmbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7NTQgMzYwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0Oyc+PC9pPgogICAgPC9kaXY+CiAgICA8IS0tIENMT1NFIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CgkJCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW5TdG9ja0xpbmsiIGhpZGRlbj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgZGF0YS10eXBlPSJpbnZkYXRhIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9IkJyb25jbyIgZGF0YS15ZWFyPSIyMDI2IiBkYXRhLXN0eWxlaWRzPSI0ODE4NjIsNDgxODY0LDQ4MTg2NSw0ODE4NjYsNDgxODYzLDQ4MTg2Nyw0ODE4NjksNDgxODcwLDQ4MTg2OCIgZGF0YS1oeWJyaWQ9IjAiPgoJPC9kaXY+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJbWFnZUNvbnRhaW5lciBmbGV4LWNlbnRlciBhbGlnbi1jZW50ZXIgIj4KCQkJCTxhIHRpdGxlPSJGb3JkIEJyb25jbyAyMDI2IiBocmVmPSI\/cGF0aD0vbmV1ZnMvRm9yZC1Ccm9uY28tMjAyNi5odG1sIj4KCQkJCQk8aW1nIGFsdD0iRm9yZCBCcm9uY28gMjAyNiIgYm9yZGVyPSIwIiBjbGFzcz0ibGl2ZWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9mci9Gb3JkL0Jyb25jby8yMDI2LzQ4MTg2OC9CbHVlL3Byb2ZpbGUud2VicCIgc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvZnIvRm9yZC9Ccm9uY28vMjAyNi80ODE4NjgvQmx1ZS9wcm9maWxlLndlYnAiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj4KCQkJCTwvYT4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckZvb3RlckNvbnRhaW5lciBzdGFjay1sYyAtLXMtOSI+CgkJCQkJPGRpdiBjbGFzcz0iY2FyUGF5bWVudFdyYXBwZXIiPgoJCQk8ZGl2IGNsYXNzPSJjb250ZW50LXNrZWxldG9uIGh0bWwtYmxvY2siIGRhdGEtYmxvY2s9InBheW1lbnRCbG9jayIgZGF0YS10eXBlPSJibG9jayIgZGF0YS1zb3VyY2U9InNlcnZlciIgZGF0YS1jYWxsYmFjaz0icGF5bWVudENhbGNCbG9jayI+CgkJCgk8aW5wdXQgbmFtZT0iYmxvY2stZGF0YSIgdHlwZT0iaGlkZGVuIiB2YWx1ZT0ieyZxdW90O3N0eWxlaWQmcXVvdDs6JnF1b3Q7NDgxODYyJnF1b3Q7LCZxdW90O3RpdGxlJnF1b3Q7OiZxdW90O0ZvcmQgQnJvbmNvIDIwMjYmcXVvdDssJnF1b3Q7aHJlZiZxdW90OzomcXVvdDtcL25ldWZzXC9Gb3JkLUJyb25jby0yMDI2Lmh0bWwmcXVvdDssJnF1b3Q7bGlua3N0eWxlJnF1b3Q7OiZxdW90OyZxdW90OywmcXVvdDtsaW5rY2xhc3MmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O2NvbnRhaW5lcmNsYXNzJnF1b3Q7OiZxdW90OyZxdW90OywmcXVvdDtwcm9tb3RleHQmcXVvdDs6JnF1b3Q7RFx1MDBlOWNvdXZyZXogbCdvZmZyZSEmcXVvdDt9Ij4KCTwvZGl2PgoJPC9kaXY+CgkJCQkKCQkJPC9kaXY+CgkJPC9kaXY+Cgk8L2Rpdj4JPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggIHJlYmF0ZUJvcmRlckNvbG9yIiBpZD0iZmJ4X3N1dl8yIj4KCQkKCQk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVJbm5lckJveCIgaWQ9IiI+CgkJCTxkaXYgY2xhc3M9ImQyYy1mYXZzLXRyaWdnZXItd3JhcHBlciBkMmZhdi0wMSIgZGF0YS1tYWtlPSJGb3JkIiBkYXRhLW1vZGVsPSJCcm9uY28iIGRhdGEteWVhcj0iMjAyNSIgZGF0YS10cmltPSIiIGRhdGEtY2FyaWQ9IiI+PC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhclRpdGxlQ29udGFpbmVyIj4KCQkJCTxhIHRpdGxlPSJGb3JkIEJyb25jbyAyMDI1IiBocmVmPSI\/cGF0aD0vbmV1ZnMvRm9yZC1Ccm9uY28tMjAyNS5odG1sIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9IkJyb25jbyAyMDI1Ij4KCQkJCQk8aDM+CgkJCQkJCTxzcGFuIGNsYXNzPSJzcGFuQ2FyTWFrZSAiPkZvcmQ8L3NwYW4+PGJyPgoJCQkJCQk8c3BhbiBjbGFzcz0ibW9kZWxOYW1lIHNwYW5Nb2RlbE5hbWUiPkJyb25jbyAyMDI1PC9zcGFuPgoJCQkJCTwvaDM+CgkJCQk8L2E+CgkJCQkgICAgPCEtLSBPUEVOIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CiAgICA8ZGl2IGNsYXNzPSJkaXZOZXdDYXJTdGFydFByaWNlIj4KICAgICAgICDDoCBwYXJ0aXIgZGUKICAgICAgICA8c3BhbiBjbGFzcz0iIj4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+NTEgNzYwPC9zcGFuPjwvc3Bhbj4KICAgICAgICA8aSBzdHlsZT0iY29sb3I6IzAwMDtmb250LXNpemU6MjBweDsiIGNsYXNzPSJjYXJQcmljZUluaXRpYWxUb29sVGlwSWNvbiBmYWwgZmEtaW5mby1jaXJjbGUgYmxhY2tDb2xvckJvbGQiIGRhdGEtdG9vbHRpcD0nJmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtQRFNGOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDs0OSAzNjUmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUcmFuc3BvcnQgJmFtcDsgUHLDqXBhcmF0aW9uOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsyIDI5NSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RheGUgQUM6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzEwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RvdGFsJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzUxIDc2MCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsnPjwvaT4KICAgIDwvZGl2PgogICAgPCEtLSBDTE9TRSBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgoJCQkJCTxkaXYgY2xhc3M9ImRpdkNhckluU3RvY2tMaW5rIiBoaWRkZW4+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGRhdGEtdHlwZT0iaW52ZGF0YSIgZGF0YS1tYWtlPSJGb3JkIiBkYXRhLW1vZGVsPSJCcm9uY28iIGRhdGEteWVhcj0iMjAyNSIgZGF0YS1zdHlsZWlkcz0iNDY2NzkxLDQ2Njc5Miw0NjY3ODYsNDY2Nzg3LDQ2Njc4NSw0NjY3OTAsNDY2Nzg4LDQ3OTUwNSw0NjY3ODkiIGRhdGEtaHlicmlkPSIwIj4KCTwvZGl2PgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW1hZ2VDb250YWluZXIgZmxleC1jZW50ZXIgYWxpZ24tY2VudGVyICI+CgkJCQk8YSB0aXRsZT0iRm9yZCBCcm9uY28gMjAyNSIgaHJlZj0iP3BhdGg9L25ldWZzL0ZvcmQtQnJvbmNvLTIwMjUuaHRtbCI+CgkJCQkJPGltZyBhbHQ9IkZvcmQgQnJvbmNvIDIwMjUiIGJvcmRlcj0iMCIgY2xhc3M9ImxpdmVsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvZnIvRm9yZC9Ccm9uY28vMjAyNS80NjY3ODkvQmx1ZS9wcm9maWxlLndlYnAiIHNyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL2ZyL0ZvcmQvQnJvbmNvLzIwMjUvNDY2Nzg5L0JsdWUvcHJvZmlsZS53ZWJwIiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+CgkJCQk8L2E+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJGb290ZXJDb250YWluZXIgc3RhY2stbGMgLS1zLTkiPgoJCQkJCTxkaXYgY2xhc3M9ImNhclBheW1lbnRXcmFwcGVyIj4KCQkJPGRpdiBjbGFzcz0iY29udGVudC1za2VsZXRvbiBodG1sLWJsb2NrIiBkYXRhLWJsb2NrPSJwYXltZW50QmxvY2siIGRhdGEtdHlwZT0iYmxvY2siIGRhdGEtc291cmNlPSJzZXJ2ZXIiIGRhdGEtY2FsbGJhY2s9InBheW1lbnRDYWxjQmxvY2siPgoJCQoJPGlucHV0IG5hbWU9ImJsb2NrLWRhdGEiIHR5cGU9ImhpZGRlbiIgdmFsdWU9InsmcXVvdDtzdHlsZWlkJnF1b3Q7OiZxdW90OzQ2Njc5MSZxdW90OywmcXVvdDt0aXRsZSZxdW90OzomcXVvdDtGb3JkIEJyb25jbyAyMDI1JnF1b3Q7LCZxdW90O2hyZWYmcXVvdDs6JnF1b3Q7XC9uZXVmc1wvRm9yZC1Ccm9uY28tMjAyNS5odG1sJnF1b3Q7LCZxdW90O2xpbmtzdHlsZSZxdW90OzomcXVvdDsmcXVvdDssJnF1b3Q7bGlua2NsYXNzJnF1b3Q7OiZxdW90OyZxdW90OywmcXVvdDtjb250YWluZXJjbGFzcyZxdW90OzomcXVvdDsmcXVvdDssJnF1b3Q7cHJvbW90ZXh0JnF1b3Q7OiZxdW90O0RcdTAwZTljb3V2cmV6IGwnb2ZmcmUhJnF1b3Q7fSI+Cgk8L2Rpdj4KCTwvZGl2PgoJCQkJCgkJCTwvZGl2PgoJCTwvZGl2PgoJPC9kaXY+CTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZU91dGVyQm94ICByZWJhdGVCb3JkZXJDb2xvciIgaWQ9ImZieF9zdXZfMyI+CgkJCgkJPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlSW5uZXJCb3giIGlkPSIiPgoJCQk8ZGl2IGNsYXNzPSJkMmMtZmF2cy10cmlnZ2VyLXdyYXBwZXIgZDJmYXYtMDEiIGRhdGEtbWFrZT0iRm9yZCIgZGF0YS1tb2RlbD0iQnJvbmNvIFNwb3J0IiBkYXRhLXllYXI9IjIwMjYiIGRhdGEtdHJpbT0iIiBkYXRhLWNhcmlkPSIiPjwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJUaXRsZUNvbnRhaW5lciI+CgkJCQk8YSB0aXRsZT0iRm9yZCBCcm9uY28gU3BvcnQgMjAyNiIgaHJlZj0iP3BhdGg9L25ldWZzL0ZvcmQtQnJvbmNvX1Nwb3J0LTIwMjYuaHRtbCIgZGF0YS1tYWtlPSJGb3JkIiBkYXRhLW1vZGVsPSJCcm9uY28gU3BvcnQgMjAyNiI+CgkJCQkJPGgzPgoJCQkJCQk8c3BhbiBjbGFzcz0ic3BhbkNhck1ha2UgIj5Gb3JkPC9zcGFuPjxicj4KCQkJCQkJPHNwYW4gY2xhc3M9Im1vZGVsTmFtZSBzcGFuTW9kZWxOYW1lIj5Ccm9uY28gU3BvcnQgMjAyNjwvc3Bhbj4KCQkJCQk8L2gzPgoJCQkJPC9hPgoJCQkJICAgIDwhLS0gT1BFTiBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgogICAgPGRpdiBjbGFzcz0iZGl2TmV3Q2FyU3RhcnRQcmljZSI+CiAgICAgICAgw6AgcGFydGlyIGRlCiAgICAgICAgPHNwYW4gY2xhc3M9IiI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjQxIDc5MDwvc3Bhbj48L3NwYW4+CiAgICAgICAgPGkgc3R5bGU9ImNvbG9yOiMwMDA7Zm9udC1zaXplOjIwcHg7IiBjbGFzcz0iY2FyUHJpY2VJbml0aWFsVG9vbFRpcEljb24gZmFsIGZhLWluZm8tY2lyY2xlIGJsYWNrQ29sb3JCb2xkIiBkYXRhLXRvb2x0aXA9JyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7UERTRjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MzkgMzk1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VHJhbnNwb3J0ICZhbXA7IFByw6lwYXJhdGlvbjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MiAyOTUmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUYXhlIEFDOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsxMDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUb3RhbCZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDs0MSA3OTAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jz48L2k+CiAgICA8L2Rpdj4KICAgIDwhLS0gQ0xPU0UgTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KCQkJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJblN0b2NrTGluayIgaGlkZGVuPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBkYXRhLXR5cGU9ImludmRhdGEiIGRhdGEtbWFrZT0iRm9yZCIgZGF0YS1tb2RlbD0iQnJvbmNvIFNwb3J0IiBkYXRhLXllYXI9IjIwMjYiIGRhdGEtc3R5bGVpZHM9IjQ4MTc3OCw0ODE3NzksNDgxNzgwLDQ4MTc4MSIgZGF0YS1oeWJyaWQ9IjAiPgoJPC9kaXY+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJbWFnZUNvbnRhaW5lciBmbGV4LWNlbnRlciBhbGlnbi1jZW50ZXIgIj4KCQkJCTxhIHRpdGxlPSJGb3JkIEJyb25jbyBTcG9ydCAyMDI2IiBocmVmPSI\/cGF0aD0vbmV1ZnMvRm9yZC1Ccm9uY29fU3BvcnQtMjAyNi5odG1sIj4KCQkJCQk8aW1nIGFsdD0iRm9yZCBCcm9uY28gU3BvcnQgMjAyNiIgYm9yZGVyPSIwIiBjbGFzcz0ibGl2ZWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9mci9Gb3JkL0Jyb25jb19TcG9ydC8yMDI2LzQ4MTc4MS9CbHVlL3Byb2ZpbGUud2VicCIgc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvZnIvRm9yZC9Ccm9uY29fU3BvcnQvMjAyNi80ODE3ODEvQmx1ZS9wcm9maWxlLndlYnAiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj4KCQkJCTwvYT4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckZvb3RlckNvbnRhaW5lciBzdGFjay1sYyAtLXMtOSI+CgkJCQkJPGRpdiBjbGFzcz0iY2FyUGF5bWVudFdyYXBwZXIiPgoJCQk8ZGl2IGNsYXNzPSJjb250ZW50LXNrZWxldG9uIGh0bWwtYmxvY2siIGRhdGEtYmxvY2s9InBheW1lbnRCbG9jayIgZGF0YS10eXBlPSJibG9jayIgZGF0YS1zb3VyY2U9InNlcnZlciIgZGF0YS1jYWxsYmFjaz0icGF5bWVudENhbGNCbG9jayI+CgkJCgk8aW5wdXQgbmFtZT0iYmxvY2stZGF0YSIgdHlwZT0iaGlkZGVuIiB2YWx1ZT0ieyZxdW90O3N0eWxlaWQmcXVvdDs6JnF1b3Q7NDgxNzc4JnF1b3Q7LCZxdW90O3RpdGxlJnF1b3Q7OiZxdW90O0ZvcmQgQnJvbmNvIFNwb3J0IDIwMjYmcXVvdDssJnF1b3Q7aHJlZiZxdW90OzomcXVvdDtcL25ldWZzXC9Gb3JkLUJyb25jb19TcG9ydC0yMDI2Lmh0bWwmcXVvdDssJnF1b3Q7bGlua3N0eWxlJnF1b3Q7OiZxdW90OyZxdW90OywmcXVvdDtsaW5rY2xhc3MmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O2NvbnRhaW5lcmNsYXNzJnF1b3Q7OiZxdW90OyZxdW90OywmcXVvdDtwcm9tb3RleHQmcXVvdDs6JnF1b3Q7RFx1MDBlOWNvdXZyZXogbCdvZmZyZSEmcXVvdDt9Ij4KCTwvZGl2PgoJPC9kaXY+CgkJCQkKCQkJPC9kaXY+CgkJPC9kaXY+Cgk8L2Rpdj4JPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggIHJlYmF0ZUJvcmRlckNvbG9yIiBpZD0iZmJ4X3N1dl80Ij4KCQkKCQk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVJbm5lckJveCIgaWQ9IiI+CgkJCTxkaXYgY2xhc3M9ImQyYy1mYXZzLXRyaWdnZXItd3JhcHBlciBkMmZhdi0wMSIgZGF0YS1tYWtlPSJGb3JkIiBkYXRhLW1vZGVsPSJCcm9uY28gU3BvcnQiIGRhdGEteWVhcj0iMjAyNSIgZGF0YS10cmltPSIiIGRhdGEtY2FyaWQ9IiI+PC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhclRpdGxlQ29udGFpbmVyIj4KCQkJCTxhIHRpdGxlPSJGb3JkIEJyb25jbyBTcG9ydCAyMDI1IiBocmVmPSI\/cGF0aD0vbmV1ZnMvRm9yZC1Ccm9uY29fU3BvcnQtMjAyNS5odG1sIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9IkJyb25jbyBTcG9ydCAyMDI1Ij4KCQkJCQk8aDM+CgkJCQkJCTxzcGFuIGNsYXNzPSJzcGFuQ2FyTWFrZSAiPkZvcmQ8L3NwYW4+PGJyPgoJCQkJCQk8c3BhbiBjbGFzcz0ibW9kZWxOYW1lIHNwYW5Nb2RlbE5hbWUiPkJyb25jbyBTcG9ydCAyMDI1PC9zcGFuPgoJCQkJCTwvaDM+CgkJCQk8L2E+CgkJCQkgICAgPCEtLSBPUEVOIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CiAgICA8ZGl2IGNsYXNzPSJkaXZOZXdDYXJTdGFydFByaWNlIj4KICAgICAgICDDoCBwYXJ0aXIgZGUKICAgICAgICA8c3BhbiBjbGFzcz0iIj4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+NDEgMTkwPC9zcGFuPjwvc3Bhbj4KICAgICAgICA8aSBzdHlsZT0iY29sb3I6IzAwMDtmb250LXNpemU6MjBweDsiIGNsYXNzPSJjYXJQcmljZUluaXRpYWxUb29sVGlwSWNvbiBmYWwgZmEtaW5mby1jaXJjbGUgYmxhY2tDb2xvckJvbGQiIGRhdGEtdG9vbHRpcD0nJmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtQRFNGOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDszOCA3OTUmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUcmFuc3BvcnQgJmFtcDsgUHLDqXBhcmF0aW9uOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsyIDI5NSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RheGUgQUM6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzEwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RvdGFsJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzQxIDE5MCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsnPjwvaT4KICAgIDwvZGl2PgogICAgPCEtLSBDTE9TRSBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPjwhLS0gT1BFTiBORVcgQ0FSIFBST01PIFBSSUNFICgyNzYpLS0+PGRpdiBjbGFzcz0iZGl2TmV3Q2FyUHJvbW9QcmljZSI+ZW4gcmFiYWlzIMOgIDxzcGFuIGNsYXNzPSJzdHJpa2UtcHJpY2UiIHN0eWxlPSJjb2xvcjogI2ViMDAwMDsiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj4zNiAxOTA8L3NwYW4+PC9zcGFuPjwvZGl2PjwhLS0gQ0xPU0UgTkVXIENBUiBQUk9NTyBQUklDRSAoMjgzKS0tPgoJCQkJCTxkaXYgY2xhc3M9ImRpdkNhckluU3RvY2tMaW5rIiBoaWRkZW4+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGRhdGEtdHlwZT0iaW52ZGF0YSIgZGF0YS1tYWtlPSJGb3JkIiBkYXRhLW1vZGVsPSJCcm9uY28gU3BvcnQiIGRhdGEteWVhcj0iMjAyNSIgZGF0YS1zdHlsZWlkcz0iNDYzODY3LDQ2Mzg2OSw0NjM4NjgsNDYzODcwLDQ2Mzg3MSIgZGF0YS1oeWJyaWQ9IjAiPgoJPC9kaXY+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJbWFnZUNvbnRhaW5lciBmbGV4LWNlbnRlciBhbGlnbi1jZW50ZXIgIj4KCQkJCTxhIHRpdGxlPSJGb3JkIEJyb25jbyBTcG9ydCAyMDI1IiBocmVmPSI\/cGF0aD0vbmV1ZnMvRm9yZC1Ccm9uY29fU3BvcnQtMjAyNS5odG1sIj4KCQkJCQk8aW1nIGFsdD0iRm9yZCBCcm9uY28gU3BvcnQgMjAyNSIgYm9yZGVyPSIwIiBjbGFzcz0ibGl2ZWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9mci9Gb3JkL0Jyb25jb19TcG9ydC8yMDI1LzQ2Mzg3MS9CbHVlL3Byb2ZpbGUud2VicCIgc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvZnIvRm9yZC9Ccm9uY29fU3BvcnQvMjAyNS80NjM4NzEvQmx1ZS9wcm9maWxlLndlYnAiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj4KCQkJCTwvYT4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckZvb3RlckNvbnRhaW5lciBzdGFjay1sYyAtLXMtOSI+CgkJCQkJPGRpdiBjbGFzcz0iY2FyUGF5bWVudFdyYXBwZXIiPgoJCQk8ZGl2IGNsYXNzPSJjb250ZW50LXNrZWxldG9uIGh0bWwtYmxvY2siIGRhdGEtYmxvY2s9InBheW1lbnRCbG9jayIgZGF0YS10eXBlPSJibG9jayIgZGF0YS1zb3VyY2U9InNlcnZlciIgZGF0YS1jYWxsYmFjaz0icGF5bWVudENhbGNCbG9jayI+CgkJCgk8aW5wdXQgbmFtZT0iYmxvY2stZGF0YSIgdHlwZT0iaGlkZGVuIiB2YWx1ZT0ieyZxdW90O3N0eWxlaWQmcXVvdDs6JnF1b3Q7NDYzODY3JnF1b3Q7LCZxdW90O3RpdGxlJnF1b3Q7OiZxdW90O0ZvcmQgQnJvbmNvIFNwb3J0IDIwMjUmcXVvdDssJnF1b3Q7aHJlZiZxdW90OzomcXVvdDtcL25ldWZzXC9Gb3JkLUJyb25jb19TcG9ydC0yMDI1Lmh0bWwmcXVvdDssJnF1b3Q7bGlua3N0eWxlJnF1b3Q7OiZxdW90OyZxdW90OywmcXVvdDtsaW5rY2xhc3MmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O2NvbnRhaW5lcmNsYXNzJnF1b3Q7OiZxdW90OyZxdW90OywmcXVvdDtwcm9tb3RleHQmcXVvdDs6JnF1b3Q7RFx1MDBlOWNvdXZyZXogbCdvZmZyZSEmcXVvdDt9Ij4KCTwvZGl2PgoJPC9kaXY+CgkJCQkKCQkJPC9kaXY+CgkJPC9kaXY+Cgk8L2Rpdj4JPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggIHJlYmF0ZUJvcmRlckNvbG9yIiBpZD0iZmJ4X3N1dl81Ij4KCQkKCQk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVJbm5lckJveCIgaWQ9IiI+CgkJCTxkaXYgY2xhc3M9ImQyYy1mYXZzLXRyaWdnZXItd3JhcHBlciBkMmZhdi0wMSIgZGF0YS1tYWtlPSJGb3JkIiBkYXRhLW1vZGVsPSJFc2NhcGUiIGRhdGEteWVhcj0iMjAyNiIgZGF0YS10cmltPSIiIGRhdGEtY2FyaWQ9IiI+PC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhclRpdGxlQ29udGFpbmVyIj4KCQkJCTxhIHRpdGxlPSJGb3JkIEVzY2FwZSAyMDI2IiBocmVmPSI\/cGF0aD0vbmV1ZnMvRm9yZC1Fc2NhcGUtMjAyNi5odG1sIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9IkVzY2FwZSAyMDI2Ij4KCQkJCQk8aDM+CgkJCQkJCTxzcGFuIGNsYXNzPSJzcGFuQ2FyTWFrZSAiPkZvcmQ8L3NwYW4+PGJyPgoJCQkJCQk8c3BhbiBjbGFzcz0ibW9kZWxOYW1lIHNwYW5Nb2RlbE5hbWUiPkVzY2FwZSAyMDI2PC9zcGFuPgoJCQkJCTwvaDM+CgkJCQk8L2E+CgkJCQkgICAgPCEtLSBPUEVOIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CiAgICA8ZGl2IGNsYXNzPSJkaXZOZXdDYXJTdGFydFByaWNlIj4KICAgICAgICDDoCBwYXJ0aXIgZGUKICAgICAgICA8c3BhbiBjbGFzcz0iIj4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+MzUgODk0PC9zcGFuPjwvc3Bhbj4KICAgICAgICA8aSBzdHlsZT0iY29sb3I6IzAwMDtmb250LXNpemU6MjBweDsiIGNsYXNzPSJjYXJQcmljZUluaXRpYWxUb29sVGlwSWNvbiBmYWwgZmEtaW5mby1jaXJjbGUgYmxhY2tDb2xvckJvbGQiIGRhdGEtdG9vbHRpcD0nJmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtQRFNGOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDszMyA0OTkmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUcmFuc3BvcnQgJmFtcDsgUHLDqXBhcmF0aW9uOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsyIDI5NSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RheGUgQUM6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzEwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RvdGFsJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzM1IDg5NCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsnPjwvaT4KICAgIDwvZGl2PgogICAgPCEtLSBDTE9TRSBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgoJCQkJCTxkaXYgY2xhc3M9ImRpdkNhckluU3RvY2tMaW5rIiBoaWRkZW4+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGRhdGEtdHlwZT0iaW52ZGF0YSIgZGF0YS1tYWtlPSJGb3JkIiBkYXRhLW1vZGVsPSJFc2NhcGUiIGRhdGEteWVhcj0iMjAyNiIgZGF0YS1zdHlsZWlkcz0iNDc4ODM1LDQ3ODgzNCw0Nzg4MzIiIGRhdGEtaHlicmlkPSIwIj4KCTwvZGl2PgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW1hZ2VDb250YWluZXIgZmxleC1jZW50ZXIgYWxpZ24tY2VudGVyICI+CgkJCQk8YSB0aXRsZT0iRm9yZCBFc2NhcGUgMjAyNiIgaHJlZj0iP3BhdGg9L25ldWZzL0ZvcmQtRXNjYXBlLTIwMjYuaHRtbCI+CgkJCQkJPGltZyBhbHQ9IkZvcmQgRXNjYXBlIDIwMjYiIGJvcmRlcj0iMCIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvZnIvRm9yZC9Fc2NhcGUvMjAyNi80Nzg4MzIvQmx1ZS9wcm9maWxlLndlYnAiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj4KCQkJCTwvYT4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckZvb3RlckNvbnRhaW5lciBzdGFjay1sYyAtLXMtOSI+CgkJCQkJPGRpdiBjbGFzcz0iY2FyUGF5bWVudFdyYXBwZXIiPgoJCQk8ZGl2IGNsYXNzPSJjb250ZW50LXNrZWxldG9uIGh0bWwtYmxvY2siIGRhdGEtYmxvY2s9InBheW1lbnRCbG9jayIgZGF0YS10eXBlPSJibG9jayIgZGF0YS1zb3VyY2U9InNlcnZlciIgZGF0YS1jYWxsYmFjaz0icGF5bWVudENhbGNCbG9jayI+CgkJCgk8aW5wdXQgbmFtZT0iYmxvY2stZGF0YSIgdHlwZT0iaGlkZGVuIiB2YWx1ZT0ieyZxdW90O3N0eWxlaWQmcXVvdDs6JnF1b3Q7NDc4ODM1JnF1b3Q7LCZxdW90O3RpdGxlJnF1b3Q7OiZxdW90O0ZvcmQgRXNjYXBlIDIwMjYmcXVvdDssJnF1b3Q7aHJlZiZxdW90OzomcXVvdDtcL25ldWZzXC9Gb3JkLUVzY2FwZS0yMDI2Lmh0bWwmcXVvdDssJnF1b3Q7bGlua3N0eWxlJnF1b3Q7OiZxdW90OyZxdW90OywmcXVvdDtsaW5rY2xhc3MmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O2NvbnRhaW5lcmNsYXNzJnF1b3Q7OiZxdW90OyZxdW90OywmcXVvdDtwcm9tb3RleHQmcXVvdDs6JnF1b3Q7RFx1MDBlOWNvdXZyZXogbCdvZmZyZSEmcXVvdDt9Ij4KCTwvZGl2PgoJPC9kaXY+CgkJCQkKCQkJPC9kaXY+CgkJPC9kaXY+Cgk8L2Rpdj4JPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggIHJlYmF0ZUJvcmRlckNvbG9yIiBpZD0iZmJ4X3N1dl82Ij4KCQkKCQk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVJbm5lckJveCIgaWQ9IiI+CgkJCTxkaXYgY2xhc3M9ImQyYy1mYXZzLXRyaWdnZXItd3JhcHBlciBkMmZhdi0wMSIgZGF0YS1tYWtlPSJGb3JkIiBkYXRhLW1vZGVsPSJFc2NhcGUiIGRhdGEteWVhcj0iMjAyNSIgZGF0YS10cmltPSIiIGRhdGEtY2FyaWQ9IiI+PC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhclRpdGxlQ29udGFpbmVyIj4KCQkJCTxhIHRpdGxlPSJGb3JkIEVzY2FwZSAyMDI1IiBocmVmPSI\/cGF0aD0vbmV1ZnMvRm9yZC1Fc2NhcGUtMjAyNS5odG1sIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9IkVzY2FwZSAyMDI1Ij4KCQkJCQk8aDM+CgkJCQkJCTxzcGFuIGNsYXNzPSJzcGFuQ2FyTWFrZSAiPkZvcmQ8L3NwYW4+PGJyPgoJCQkJCQk8c3BhbiBjbGFzcz0ibW9kZWxOYW1lIHNwYW5Nb2RlbE5hbWUiPkVzY2FwZSAyMDI1PC9zcGFuPgoJCQkJCTwvaDM+CgkJCQk8L2E+CgkJCQkgICAgPCEtLSBPUEVOIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CiAgICA8ZGl2IGNsYXNzPSJkaXZOZXdDYXJTdGFydFByaWNlIj4KICAgICAgICDDoCBwYXJ0aXIgZGUKICAgICAgICA8c3BhbiBjbGFzcz0iIj4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+MzUgMjQ0PC9zcGFuPjwvc3Bhbj4KICAgICAgICA8aSBzdHlsZT0iY29sb3I6IzAwMDtmb250LXNpemU6MjBweDsiIGNsYXNzPSJjYXJQcmljZUluaXRpYWxUb29sVGlwSWNvbiBmYWwgZmEtaW5mby1jaXJjbGUgYmxhY2tDb2xvckJvbGQiIGRhdGEtdG9vbHRpcD0nJmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtQRFNGOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDszMiA4NDkmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUcmFuc3BvcnQgJmFtcDsgUHLDqXBhcmF0aW9uOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsyIDI5NSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RheGUgQUM6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzEwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RvdGFsJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzM1IDI0NCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsnPjwvaT4KICAgIDwvZGl2PgogICAgPCEtLSBDTE9TRSBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPjwhLS0gT1BFTiBORVcgQ0FSIFBST01PIFBSSUNFICgyNzYpLS0+PGRpdiBjbGFzcz0iZGl2TmV3Q2FyUHJvbW9QcmljZSI+ZW4gcmFiYWlzIMOgIDxzcGFuIGNsYXNzPSJzdHJpa2UtcHJpY2UiIHN0eWxlPSJjb2xvcjogI2ViMDAwMDsiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj4zMCA3NDQ8L3NwYW4+PC9zcGFuPjwvZGl2PjwhLS0gQ0xPU0UgTkVXIENBUiBQUk9NTyBQUklDRSAoMjgzKS0tPgoJCQkJCTxkaXYgY2xhc3M9ImRpdkNhckluU3RvY2tMaW5rIiBoaWRkZW4+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGRhdGEtdHlwZT0iaW52ZGF0YSIgZGF0YS1tYWtlPSJGb3JkIiBkYXRhLW1vZGVsPSJFc2NhcGUiIGRhdGEteWVhcj0iMjAyNSIgZGF0YS1zdHlsZWlkcz0iNDYxMjA0LDQ2MTIwNSw0NjEyMDcsNDYxMjA4IiBkYXRhLWh5YnJpZD0iMCI+Cgk8L2Rpdj4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckltYWdlQ29udGFpbmVyIGZsZXgtY2VudGVyIGFsaWduLWNlbnRlciAiPgoJCQkJPGEgdGl0bGU9IkZvcmQgRXNjYXBlIDIwMjUiIGhyZWY9Ij9wYXRoPS9uZXVmcy9Gb3JkLUVzY2FwZS0yMDI1Lmh0bWwiPgoJCQkJCTxpbWcgYWx0PSJGb3JkIEVzY2FwZSAyMDI1IiBib3JkZXI9IjAiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL2ZyL0ZvcmQvRXNjYXBlLzIwMjUvNDYxMjA4L0JsdWUvcHJvZmlsZS53ZWJwIiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+CgkJCQk8L2E+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJGb290ZXJDb250YWluZXIgc3RhY2stbGMgLS1zLTkiPgoJCQkJCTxkaXYgY2xhc3M9ImNhclBheW1lbnRXcmFwcGVyIj4KCQkJPGRpdiBjbGFzcz0iY29udGVudC1za2VsZXRvbiBodG1sLWJsb2NrIiBkYXRhLWJsb2NrPSJwYXltZW50QmxvY2siIGRhdGEtdHlwZT0iYmxvY2siIGRhdGEtc291cmNlPSJzZXJ2ZXIiIGRhdGEtY2FsbGJhY2s9InBheW1lbnRDYWxjQmxvY2siPgoJCQoJPGlucHV0IG5hbWU9ImJsb2NrLWRhdGEiIHR5cGU9ImhpZGRlbiIgdmFsdWU9InsmcXVvdDtzdHlsZWlkJnF1b3Q7OiZxdW90OzQ2MTIwNCZxdW90OywmcXVvdDt0aXRsZSZxdW90OzomcXVvdDtGb3JkIEVzY2FwZSAyMDI1JnF1b3Q7LCZxdW90O2hyZWYmcXVvdDs6JnF1b3Q7XC9uZXVmc1wvRm9yZC1Fc2NhcGUtMjAyNS5odG1sJnF1b3Q7LCZxdW90O2xpbmtzdHlsZSZxdW90OzomcXVvdDsmcXVvdDssJnF1b3Q7bGlua2NsYXNzJnF1b3Q7OiZxdW90OyZxdW90OywmcXVvdDtjb250YWluZXJjbGFzcyZxdW90OzomcXVvdDsmcXVvdDssJnF1b3Q7cHJvbW90ZXh0JnF1b3Q7OiZxdW90O0RcdTAwZTljb3V2cmV6IGwnb2ZmcmUhJnF1b3Q7fSI+Cgk8L2Rpdj4KCTwvZGl2PgoJCQkJCgkJCTwvZGl2PgoJCTwvZGl2PgoJPC9kaXY+CTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZU91dGVyQm94ICByZWJhdGVCb3JkZXJDb2xvciIgaWQ9ImZieF9zdXZfNyI+CgkJCgkJPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlSW5uZXJCb3giIGlkPSIiPgoJCQk8ZGl2IGNsYXNzPSJkMmMtZmF2cy10cmlnZ2VyLXdyYXBwZXIgZDJmYXYtMDEiIGRhdGEtbWFrZT0iRm9yZCIgZGF0YS1tb2RlbD0iRXhwZWRpdGlvbiIgZGF0YS15ZWFyPSIyMDI3IiBkYXRhLXRyaW09IiIgZGF0YS1jYXJpZD0iIj48L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyVGl0bGVDb250YWluZXIiPgoJCQkJPGEgdGl0bGU9IkZvcmQgRXhwZWRpdGlvbiAyMDI3IiBocmVmPSI\/cGF0aD0vbmV1ZnMvRm9yZC1FeHBlZGl0aW9uLTIwMjcuaHRtbCIgZGF0YS1tYWtlPSJGb3JkIiBkYXRhLW1vZGVsPSJFeHBlZGl0aW9uIDIwMjciPgoJCQkJCTxoMz4KCQkJCQkJPHNwYW4gY2xhc3M9InNwYW5DYXJNYWtlICI+Rm9yZDwvc3Bhbj48YnI+CgkJCQkJCTxzcGFuIGNsYXNzPSJtb2RlbE5hbWUgc3Bhbk1vZGVsTmFtZSI+RXhwZWRpdGlvbiAyMDI3PC9zcGFuPgoJCQkJCTwvaDM+CgkJCQk8L2E+CgkJCQkgICAgPCEtLSBPUEVOIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CiAgICA8ZGl2IGNsYXNzPSJkaXZOZXdDYXJTdGFydFByaWNlIj4KICAgICAgICDDoCBwYXJ0aXIgZGUKICAgICAgICA8c3BhbiBjbGFzcz0iIj4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+ODkgMjk1PC9zcGFuPjwvc3Bhbj4KICAgICAgICA8aSBzdHlsZT0iY29sb3I6IzAwMDtmb250LXNpemU6MjBweDsiIGNsYXNzPSJjYXJQcmljZUluaXRpYWxUb29sVGlwSWNvbiBmYWwgZmEtaW5mby1jaXJjbGUgYmxhY2tDb2xvckJvbGQiIGRhdGEtdG9vbHRpcD0nJmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtQRFNGOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDs4NiA1MDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUcmFuc3BvcnQgJmFtcDsgUHLDqXBhcmF0aW9uOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsyIDY5NSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RheGUgQUM6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzEwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RvdGFsJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0Ozg5IDI5NSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsnPjwvaT4KICAgIDwvZGl2PgogICAgPCEtLSBDTE9TRSBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgoJCQkJCTxkaXYgY2xhc3M9ImRpdkNhckluU3RvY2tMaW5rIiBoaWRkZW4+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGRhdGEtdHlwZT0iaW52ZGF0YSIgZGF0YS1tYWtlPSJGb3JkIiBkYXRhLW1vZGVsPSJFeHBlZGl0aW9uIiBkYXRhLXllYXI9IjIwMjciIGRhdGEtc3R5bGVpZHM9IjQ4NDgwNSw0ODQ4MDksNDg0ODA0LDQ4NDgwOCw0ODQ4MDIsNDg0ODAzLDQ4NDgwNyIgZGF0YS1oeWJyaWQ9IjAiPgoJPC9kaXY+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJbWFnZUNvbnRhaW5lciBmbGV4LWNlbnRlciBhbGlnbi1jZW50ZXIgIj4KCQkJCTxhIHRpdGxlPSJGb3JkIEV4cGVkaXRpb24gMjAyNyIgaHJlZj0iP3BhdGg9L25ldWZzL0ZvcmQtRXhwZWRpdGlvbi0yMDI3Lmh0bWwiPgoJCQkJCTxpbWcgYWx0PSJGb3JkIEV4cGVkaXRpb24gMjAyNyIgYm9yZGVyPSIwIiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9mci9Gb3JkL0V4cGVkaXRpb24vMjAyNy80ODQ4MDcvQmx1ZS9wcm9maWxlLndlYnAiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj4KCQkJCTwvYT4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckZvb3RlckNvbnRhaW5lciBzdGFjay1sYyAtLXMtOSI+CgkJCQkJPGRpdiBjbGFzcz0iY2FyUGF5bWVudFdyYXBwZXIiPgoJCQk8ZGl2IGNsYXNzPSJjb250ZW50LXNrZWxldG9uIGh0bWwtYmxvY2siIGRhdGEtYmxvY2s9InBheW1lbnRCbG9jayIgZGF0YS10eXBlPSJibG9jayIgZGF0YS1zb3VyY2U9InNlcnZlciIgZGF0YS1jYWxsYmFjaz0icGF5bWVudENhbGNCbG9jayI+CgkJCgk8aW5wdXQgbmFtZT0iYmxvY2stZGF0YSIgdHlwZT0iaGlkZGVuIiB2YWx1ZT0ieyZxdW90O3N0eWxlaWQmcXVvdDs6JnF1b3Q7NDg0ODA1JnF1b3Q7LCZxdW90O3RpdGxlJnF1b3Q7OiZxdW90O0ZvcmQgRXhwZWRpdGlvbiAyMDI3JnF1b3Q7LCZxdW90O2hyZWYmcXVvdDs6JnF1b3Q7XC9uZXVmc1wvRm9yZC1FeHBlZGl0aW9uLTIwMjcuaHRtbCZxdW90OywmcXVvdDtsaW5rc3R5bGUmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O2xpbmtjbGFzcyZxdW90OzomcXVvdDsmcXVvdDssJnF1b3Q7Y29udGFpbmVyY2xhc3MmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O3Byb21vdGV4dCZxdW90OzomcXVvdDtEXHUwMGU5Y291dnJleiBsJ29mZnJlISZxdW90O30iPgoJPC9kaXY+Cgk8L2Rpdj4KCQkJCQoJCQk8L2Rpdj4KCQk8L2Rpdj4KCTwvZGl2Pgk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVPdXRlckJveCAgcmViYXRlQm9yZGVyQ29sb3IiIGlkPSJmYnhfc3V2XzgiPgoJCQoJCTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZUlubmVyQm94IiBpZD0iIj4KCQkJPGRpdiBjbGFzcz0iZDJjLWZhdnMtdHJpZ2dlci13cmFwcGVyIGQyZmF2LTAxIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9IkV4cGVkaXRpb24iIGRhdGEteWVhcj0iMjAyNiIgZGF0YS10cmltPSIiIGRhdGEtY2FyaWQ9IiI+PC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhclRpdGxlQ29udGFpbmVyIj4KCQkJCTxhIHRpdGxlPSJGb3JkIEV4cGVkaXRpb24gMjAyNiIgaHJlZj0iP3BhdGg9L25ldWZzL0ZvcmQtRXhwZWRpdGlvbi0yMDI2Lmh0bWwiIGRhdGEtbWFrZT0iRm9yZCIgZGF0YS1tb2RlbD0iRXhwZWRpdGlvbiAyMDI2Ij4KCQkJCQk8aDM+CgkJCQkJCTxzcGFuIGNsYXNzPSJzcGFuQ2FyTWFrZSAiPkZvcmQ8L3NwYW4+PGJyPgoJCQkJCQk8c3BhbiBjbGFzcz0ibW9kZWxOYW1lIHNwYW5Nb2RlbE5hbWUiPkV4cGVkaXRpb24gMjAyNjwvc3Bhbj4KCQkJCQk8L2gzPgoJCQkJPC9hPgoJCQkJICAgIDwhLS0gT1BFTiBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgogICAgPGRpdiBjbGFzcz0iZGl2TmV3Q2FyU3RhcnRQcmljZSI+CiAgICAgICAgw6AgcGFydGlyIGRlCiAgICAgICAgPHNwYW4gY2xhc3M9IiI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjg2IDA2NTwvc3Bhbj48L3NwYW4+CiAgICAgICAgPGkgc3R5bGU9ImNvbG9yOiMwMDA7Zm9udC1zaXplOjIwcHg7IiBjbGFzcz0iY2FyUHJpY2VJbml0aWFsVG9vbFRpcEljb24gZmFsIGZhLWluZm8tY2lyY2xlIGJsYWNrQ29sb3JCb2xkIiBkYXRhLXRvb2x0aXA9JyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7UERTRjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7ODMgMzcwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VHJhbnNwb3J0ICZhbXA7IFByw6lwYXJhdGlvbjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MiA1OTUmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUYXhlIEFDOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsxMDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUb3RhbCZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDs4NiAwNjUmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jz48L2k+CiAgICA8L2Rpdj4KICAgIDwhLS0gQ0xPU0UgTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KCQkJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJblN0b2NrTGluayIgaGlkZGVuPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBkYXRhLXR5cGU9ImludmRhdGEiIGRhdGEtbWFrZT0iRm9yZCIgZGF0YS1tb2RlbD0iRXhwZWRpdGlvbiIgZGF0YS15ZWFyPSIyMDI2IiBkYXRhLXN0eWxlaWRzPSI0ODExODMsNDgxMTg4LDQ4MTE4NSw0ODExODksNDgxMTg0LDQ4MTE4Niw0ODExOTAiIGRhdGEtaHlicmlkPSIwIj4KCTwvZGl2PgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW1hZ2VDb250YWluZXIgZmxleC1jZW50ZXIgYWxpZ24tY2VudGVyICI+CgkJCQk8YSB0aXRsZT0iRm9yZCBFeHBlZGl0aW9uIDIwMjYiIGhyZWY9Ij9wYXRoPS9uZXVmcy9Gb3JkLUV4cGVkaXRpb24tMjAyNi5odG1sIj4KCQkJCQk8aW1nIGFsdD0iRm9yZCBFeHBlZGl0aW9uIDIwMjYiIGJvcmRlcj0iMCIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvZnIvRm9yZC9FeHBlZGl0aW9uLzIwMjYvNDgxMTkwL0JsdWUvcHJvZmlsZS53ZWJwIiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+CgkJCQk8L2E+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJGb290ZXJDb250YWluZXIgc3RhY2stbGMgLS1zLTkiPgoJCQkJCTxkaXYgY2xhc3M9ImNhclBheW1lbnRXcmFwcGVyIj4KCQkJPGRpdiBjbGFzcz0iY29udGVudC1za2VsZXRvbiBodG1sLWJsb2NrIiBkYXRhLWJsb2NrPSJwYXltZW50QmxvY2siIGRhdGEtdHlwZT0iYmxvY2siIGRhdGEtc291cmNlPSJzZXJ2ZXIiIGRhdGEtY2FsbGJhY2s9InBheW1lbnRDYWxjQmxvY2siPgoJCQoJPGlucHV0IG5hbWU9ImJsb2NrLWRhdGEiIHR5cGU9ImhpZGRlbiIgdmFsdWU9InsmcXVvdDtzdHlsZWlkJnF1b3Q7OiZxdW90OzQ4MTE4MyZxdW90OywmcXVvdDt0aXRsZSZxdW90OzomcXVvdDtGb3JkIEV4cGVkaXRpb24gMjAyNiZxdW90OywmcXVvdDtocmVmJnF1b3Q7OiZxdW90O1wvbmV1ZnNcL0ZvcmQtRXhwZWRpdGlvbi0yMDI2Lmh0bWwmcXVvdDssJnF1b3Q7bGlua3N0eWxlJnF1b3Q7OiZxdW90OyZxdW90OywmcXVvdDtsaW5rY2xhc3MmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O2NvbnRhaW5lcmNsYXNzJnF1b3Q7OiZxdW90OyZxdW90OywmcXVvdDtwcm9tb3RleHQmcXVvdDs6JnF1b3Q7RFx1MDBlOWNvdXZyZXogbCdvZmZyZSEmcXVvdDt9Ij4KCTwvZGl2PgoJPC9kaXY+CgkJCQkKCQkJPC9kaXY+CgkJPC9kaXY+Cgk8L2Rpdj4JPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggIHJlYmF0ZUJvcmRlckNvbG9yIiBpZD0iZmJ4X3N1dl85Ij4KCQkKCQk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVJbm5lckJveCIgaWQ9IiI+CgkJCTxkaXYgY2xhc3M9ImQyYy1mYXZzLXRyaWdnZXItd3JhcHBlciBkMmZhdi0wMSIgZGF0YS1tYWtlPSJGb3JkIiBkYXRhLW1vZGVsPSJFeHBlZGl0aW9uIiBkYXRhLXllYXI9IjIwMjUiIGRhdGEtdHJpbT0iIiBkYXRhLWNhcmlkPSIiPjwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJUaXRsZUNvbnRhaW5lciI+CgkJCQk8YSB0aXRsZT0iRm9yZCBFeHBlZGl0aW9uIDIwMjUiIGhyZWY9Ij9wYXRoPS9uZXVmcy9Gb3JkLUV4cGVkaXRpb24tMjAyNS5odG1sIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9IkV4cGVkaXRpb24gMjAyNSI+CgkJCQkJPGgzPgoJCQkJCQk8c3BhbiBjbGFzcz0ic3BhbkNhck1ha2UgIj5Gb3JkPC9zcGFuPjxicj4KCQkJCQkJPHNwYW4gY2xhc3M9Im1vZGVsTmFtZSBzcGFuTW9kZWxOYW1lIj5FeHBlZGl0aW9uIDIwMjU8L3NwYW4+CgkJCQkJPC9oMz4KCQkJCTwvYT4KCQkJCSAgICA8IS0tIE9QRU4gTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KICAgIDxkaXYgY2xhc3M9ImRpdk5ld0NhclN0YXJ0UHJpY2UiPgogICAgICAgIMOgIHBhcnRpciBkZQogICAgICAgIDxzcGFuIGNsYXNzPSIiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj44NCA4MTU8L3NwYW4+PC9zcGFuPgogICAgICAgIDxpIHN0eWxlPSJjb2xvcjojMDAwO2ZvbnQtc2l6ZToyMHB4OyIgY2xhc3M9ImNhclByaWNlSW5pdGlhbFRvb2xUaXBJY29uIGZhbCBmYS1pbmZvLWNpcmNsZSBibGFja0NvbG9yQm9sZCIgZGF0YS10b29sdGlwPScmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1BEU0Y6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzgyIDEyMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RyYW5zcG9ydCAmYW1wOyBQcsOpcGFyYXRpb246Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzIgNTk1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VGF4ZSBBQzombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MTAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VG90YWwmbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7ODQgODE1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0Oyc+PC9pPgogICAgPC9kaXY+CiAgICA8IS0tIENMT1NFIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CgkJCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW5TdG9ja0xpbmsiIGhpZGRlbj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgZGF0YS10eXBlPSJpbnZkYXRhIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9IkV4cGVkaXRpb24iIGRhdGEteWVhcj0iMjAyNSIgZGF0YS1zdHlsZWlkcz0iNDY3MDY0LDQ2NzA3MSw0NjcwNjcsNDY3MDcwLDQ2NzA2NSw0NjcwNjYsNDY3MDY5IiBkYXRhLWh5YnJpZD0iMCI+Cgk8L2Rpdj4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckltYWdlQ29udGFpbmVyIGZsZXgtY2VudGVyIGFsaWduLWNlbnRlciAiPgoJCQkJPGEgdGl0bGU9IkZvcmQgRXhwZWRpdGlvbiAyMDI1IiBocmVmPSI\/cGF0aD0vbmV1ZnMvRm9yZC1FeHBlZGl0aW9uLTIwMjUuaHRtbCI+CgkJCQkJPGltZyBhbHQ9IkZvcmQgRXhwZWRpdGlvbiAyMDI1IiBib3JkZXI9IjAiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL2ZyL0ZvcmQvRXhwZWRpdGlvbi8yMDI1LzQ2NzA2OS9CbHVlL3Byb2ZpbGUud2VicCIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPgoJCQkJPC9hPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyRm9vdGVyQ29udGFpbmVyIHN0YWNrLWxjIC0tcy05Ij4KCQkJCQk8ZGl2IGNsYXNzPSJjYXJQYXltZW50V3JhcHBlciI+CgkJCTxkaXYgY2xhc3M9ImNvbnRlbnQtc2tlbGV0b24gaHRtbC1ibG9jayIgZGF0YS1ibG9jaz0icGF5bWVudEJsb2NrIiBkYXRhLXR5cGU9ImJsb2NrIiBkYXRhLXNvdXJjZT0ic2VydmVyIiBkYXRhLWNhbGxiYWNrPSJwYXltZW50Q2FsY0Jsb2NrIj4KCQkKCTxpbnB1dCBuYW1lPSJibG9jay1kYXRhIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSJ7JnF1b3Q7c3R5bGVpZCZxdW90OzomcXVvdDs0NjcwNjQmcXVvdDssJnF1b3Q7dGl0bGUmcXVvdDs6JnF1b3Q7Rm9yZCBFeHBlZGl0aW9uIDIwMjUmcXVvdDssJnF1b3Q7aHJlZiZxdW90OzomcXVvdDtcL25ldWZzXC9Gb3JkLUV4cGVkaXRpb24tMjAyNS5odG1sJnF1b3Q7LCZxdW90O2xpbmtzdHlsZSZxdW90OzomcXVvdDsmcXVvdDssJnF1b3Q7bGlua2NsYXNzJnF1b3Q7OiZxdW90OyZxdW90OywmcXVvdDtjb250YWluZXJjbGFzcyZxdW90OzomcXVvdDsmcXVvdDssJnF1b3Q7cHJvbW90ZXh0JnF1b3Q7OiZxdW90O0RcdTAwZTljb3V2cmV6IGwnb2ZmcmUhJnF1b3Q7fSI+Cgk8L2Rpdj4KCTwvZGl2PgoJCQkJCgkJCTwvZGl2PgoJCTwvZGl2PgoJPC9kaXY+CTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZU91dGVyQm94ICByZWJhdGVCb3JkZXJDb2xvciIgaWQ9ImZieF9zdXZfMTAiPgoJCQoJCTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZUlubmVyQm94IiBpZD0iIj4KCQkJPGRpdiBjbGFzcz0iZDJjLWZhdnMtdHJpZ2dlci13cmFwcGVyIGQyZmF2LTAxIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9IkV4cGxvcmVyIiBkYXRhLXllYXI9IjIwMjciIGRhdGEtdHJpbT0iIiBkYXRhLWNhcmlkPSIiPjwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJUaXRsZUNvbnRhaW5lciI+CgkJCQk8YSB0aXRsZT0iRm9yZCBFeHBsb3JlciAyMDI3IiBocmVmPSI\/cGF0aD0vbmV1ZnMvRm9yZC1FeHBsb3Jlci0yMDI3Lmh0bWwiIGRhdGEtbWFrZT0iRm9yZCIgZGF0YS1tb2RlbD0iRXhwbG9yZXIgMjAyNyI+CgkJCQkJPGgzPgoJCQkJCQk8c3BhbiBjbGFzcz0ic3BhbkNhck1ha2UgIj5Gb3JkPC9zcGFuPjxicj4KCQkJCQkJPHNwYW4gY2xhc3M9Im1vZGVsTmFtZSBzcGFuTW9kZWxOYW1lIj5FeHBsb3JlciAyMDI3PC9zcGFuPgoJCQkJCTwvaDM+CgkJCQk8L2E+CgkJCQkgICAgPCEtLSBPUEVOIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CiAgICA8ZGl2IGNsYXNzPSJkaXZOZXdDYXJTdGFydFByaWNlIj4KICAgICAgICDDoCBwYXJ0aXIgZGUKICAgICAgICA8c3BhbiBjbGFzcz0iIj4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+NTUgMDk1PC9zcGFuPjwvc3Bhbj4KICAgICAgICA8aSBzdHlsZT0iY29sb3I6IzAwMDtmb250LXNpemU6MjBweDsiIGNsYXNzPSJjYXJQcmljZUluaXRpYWxUb29sVGlwSWNvbiBmYWwgZmEtaW5mby1jaXJjbGUgYmxhY2tDb2xvckJvbGQiIGRhdGEtdG9vbHRpcD0nJmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtQRFNGOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDs1MiA3MDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUcmFuc3BvcnQgJmFtcDsgUHLDqXBhcmF0aW9uOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsyIDI5NSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RheGUgQUM6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzEwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RvdGFsJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzU1IDA5NSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsnPjwvaT4KICAgIDwvZGl2PgogICAgPCEtLSBDTE9TRSBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgoJCQkJCTxkaXYgY2xhc3M9ImRpdkNhckluU3RvY2tMaW5rIiBoaWRkZW4+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGRhdGEtdHlwZT0iaW52ZGF0YSIgZGF0YS1tYWtlPSJGb3JkIiBkYXRhLW1vZGVsPSJFeHBsb3JlciIgZGF0YS15ZWFyPSIyMDI3IiBkYXRhLXN0eWxlaWRzPSI0ODcwNDcsNDg3MDQzLDQ4NzA0NCw0ODcwNDYsNDg3MDQ1IiBkYXRhLWh5YnJpZD0iMCI+Cgk8L2Rpdj4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckltYWdlQ29udGFpbmVyIGZsZXgtY2VudGVyIGFsaWduLWNlbnRlciAiPgoJCQkJPGEgdGl0bGU9IkZvcmQgRXhwbG9yZXIgMjAyNyIgaHJlZj0iP3BhdGg9L25ldWZzL0ZvcmQtRXhwbG9yZXItMjAyNy5odG1sIj4KCQkJCQk8aW1nIGFsdD0iRm9yZCBFeHBsb3JlciAyMDI3IiBib3JkZXI9IjAiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL2ZyL0ZvcmQvRXhwbG9yZXIvMjAyNy80ODcwNDUvQmx1ZS9wcm9maWxlLndlYnAiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj4KCQkJCTwvYT4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckZvb3RlckNvbnRhaW5lciBzdGFjay1sYyAtLXMtOSI+CgkJCQkJPGRpdiBjbGFzcz0iY2FyUGF5bWVudFdyYXBwZXIiPgoJCQk8ZGl2IGNsYXNzPSJjb250ZW50LXNrZWxldG9uIGh0bWwtYmxvY2siIGRhdGEtYmxvY2s9InBheW1lbnRCbG9jayIgZGF0YS10eXBlPSJibG9jayIgZGF0YS1zb3VyY2U9InNlcnZlciIgZGF0YS1jYWxsYmFjaz0icGF5bWVudENhbGNCbG9jayI+CgkJCgk8aW5wdXQgbmFtZT0iYmxvY2stZGF0YSIgdHlwZT0iaGlkZGVuIiB2YWx1ZT0ieyZxdW90O3N0eWxlaWQmcXVvdDs6JnF1b3Q7NDg3MDQ3JnF1b3Q7LCZxdW90O3RpdGxlJnF1b3Q7OiZxdW90O0ZvcmQgRXhwbG9yZXIgMjAyNyZxdW90OywmcXVvdDtocmVmJnF1b3Q7OiZxdW90O1wvbmV1ZnNcL0ZvcmQtRXhwbG9yZXItMjAyNy5odG1sJnF1b3Q7LCZxdW90O2xpbmtzdHlsZSZxdW90OzomcXVvdDsmcXVvdDssJnF1b3Q7bGlua2NsYXNzJnF1b3Q7OiZxdW90OyZxdW90OywmcXVvdDtjb250YWluZXJjbGFzcyZxdW90OzomcXVvdDsmcXVvdDssJnF1b3Q7cHJvbW90ZXh0JnF1b3Q7OiZxdW90O0RcdTAwZTljb3V2cmV6IGwnb2ZmcmUhJnF1b3Q7fSI+Cgk8L2Rpdj4KCTwvZGl2PgoJCQkJCgkJCTwvZGl2PgoJCTwvZGl2PgoJPC9kaXY+CTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZU91dGVyQm94ICByZWJhdGVCb3JkZXJDb2xvciIgaWQ9ImZieF9zdXZfMTEiPgoJCQoJCTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZUlubmVyQm94IiBpZD0iIj4KCQkJPGRpdiBjbGFzcz0iZDJjLWZhdnMtdHJpZ2dlci13cmFwcGVyIGQyZmF2LTAxIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9IkV4cGxvcmVyIiBkYXRhLXllYXI9IjIwMjYiIGRhdGEtdHJpbT0iIiBkYXRhLWNhcmlkPSIiPjwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJUaXRsZUNvbnRhaW5lciI+CgkJCQk8YSB0aXRsZT0iRm9yZCBFeHBsb3JlciAyMDI2IiBocmVmPSI\/cGF0aD0vbmV1ZnMvRm9yZC1FeHBsb3Jlci0yMDI2Lmh0bWwiIGRhdGEtbWFrZT0iRm9yZCIgZGF0YS1tb2RlbD0iRXhwbG9yZXIgMjAyNiI+CgkJCQkJPGgzPgoJCQkJCQk8c3BhbiBjbGFzcz0ic3BhbkNhck1ha2UgIj5Gb3JkPC9zcGFuPjxicj4KCQkJCQkJPHNwYW4gY2xhc3M9Im1vZGVsTmFtZSBzcGFuTW9kZWxOYW1lIj5FeHBsb3JlciAyMDI2PC9zcGFuPgoJCQkJCTwvaDM+CgkJCQk8L2E+CgkJCQkgICAgPCEtLSBPUEVOIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CiAgICA8ZGl2IGNsYXNzPSJkaXZOZXdDYXJTdGFydFByaWNlIj4KICAgICAgICDDoCBwYXJ0aXIgZGUKICAgICAgICA8c3BhbiBjbGFzcz0iIj4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+NTQgODk1PC9zcGFuPjwvc3Bhbj4KICAgICAgICA8aSBzdHlsZT0iY29sb3I6IzAwMDtmb250LXNpemU6MjBweDsiIGNsYXNzPSJjYXJQcmljZUluaXRpYWxUb29sVGlwSWNvbiBmYWwgZmEtaW5mby1jaXJjbGUgYmxhY2tDb2xvckJvbGQiIGRhdGEtdG9vbHRpcD0nJmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtQRFNGOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDs1MiA1MDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUcmFuc3BvcnQgJmFtcDsgUHLDqXBhcmF0aW9uOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsyIDI5NSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RheGUgQUM6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzEwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RvdGFsJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzU0IDg5NSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsnPjwvaT4KICAgIDwvZGl2PgogICAgPCEtLSBDTE9TRSBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgoJCQkJCTxkaXYgY2xhc3M9ImRpdkNhckluU3RvY2tMaW5rIiBoaWRkZW4+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGRhdGEtdHlwZT0iaW52ZGF0YSIgZGF0YS1tYWtlPSJGb3JkIiBkYXRhLW1vZGVsPSJFeHBsb3JlciIgZGF0YS15ZWFyPSIyMDI2IiBkYXRhLXN0eWxlaWRzPSI0ODMxMTMsNDc5NTI5LDQ3OTUzMiw0Nzk1MzEsNDc5NTMwIiBkYXRhLWh5YnJpZD0iMCI+Cgk8L2Rpdj4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckltYWdlQ29udGFpbmVyIGZsZXgtY2VudGVyIGFsaWduLWNlbnRlciAiPgoJCQkJPGEgdGl0bGU9IkZvcmQgRXhwbG9yZXIgMjAyNiIgaHJlZj0iP3BhdGg9L25ldWZzL0ZvcmQtRXhwbG9yZXItMjAyNi5odG1sIj4KCQkJCQk8aW1nIGFsdD0iRm9yZCBFeHBsb3JlciAyMDI2IiBib3JkZXI9IjAiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL2ZyL0ZvcmQvRXhwbG9yZXIvMjAyNi80Nzk1MzAvQmx1ZS9wcm9maWxlLndlYnAiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj4KCQkJCTwvYT4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckZvb3RlckNvbnRhaW5lciBzdGFjay1sYyAtLXMtOSI+CgkJCQkJPGRpdiBjbGFzcz0iY2FyUGF5bWVudFdyYXBwZXIiPgoJCQk8ZGl2IGNsYXNzPSJjb250ZW50LXNrZWxldG9uIGh0bWwtYmxvY2siIGRhdGEtYmxvY2s9InBheW1lbnRCbG9jayIgZGF0YS10eXBlPSJibG9jayIgZGF0YS1zb3VyY2U9InNlcnZlciIgZGF0YS1jYWxsYmFjaz0icGF5bWVudENhbGNCbG9jayI+CgkJCgk8aW5wdXQgbmFtZT0iYmxvY2stZGF0YSIgdHlwZT0iaGlkZGVuIiB2YWx1ZT0ieyZxdW90O3N0eWxlaWQmcXVvdDs6JnF1b3Q7NDgzMTEzJnF1b3Q7LCZxdW90O3RpdGxlJnF1b3Q7OiZxdW90O0ZvcmQgRXhwbG9yZXIgMjAyNiZxdW90OywmcXVvdDtocmVmJnF1b3Q7OiZxdW90O1wvbmV1ZnNcL0ZvcmQtRXhwbG9yZXItMjAyNi5odG1sJnF1b3Q7LCZxdW90O2xpbmtzdHlsZSZxdW90OzomcXVvdDsmcXVvdDssJnF1b3Q7bGlua2NsYXNzJnF1b3Q7OiZxdW90OyZxdW90OywmcXVvdDtjb250YWluZXJjbGFzcyZxdW90OzomcXVvdDsmcXVvdDssJnF1b3Q7cHJvbW90ZXh0JnF1b3Q7OiZxdW90O0RcdTAwZTljb3V2cmV6IGwnb2ZmcmUhJnF1b3Q7fSI+Cgk8L2Rpdj4KCTwvZGl2PgoJCQkJCgkJCTwvZGl2PgoJCTwvZGl2PgoJPC9kaXY+CTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZU91dGVyQm94ICByZWJhdGVCb3JkZXJDb2xvciIgaWQ9ImZieF9zdXZfMTIiPgoJCQoJCTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZUlubmVyQm94IiBpZD0iIj4KCQkJPGRpdiBjbGFzcz0iZDJjLWZhdnMtdHJpZ2dlci13cmFwcGVyIGQyZmF2LTAxIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9IkV4cGxvcmVyIiBkYXRhLXllYXI9IjIwMjUiIGRhdGEtdHJpbT0iIiBkYXRhLWNhcmlkPSIiPjwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJUaXRsZUNvbnRhaW5lciI+CgkJCQk8YSB0aXRsZT0iRm9yZCBFeHBsb3JlciAyMDI1IiBocmVmPSI\/cGF0aD0vbmV1ZnMvRm9yZC1FeHBsb3Jlci0yMDI1Lmh0bWwiIGRhdGEtbWFrZT0iRm9yZCIgZGF0YS1tb2RlbD0iRXhwbG9yZXIgMjAyNSI+CgkJCQkJPGgzPgoJCQkJCQk8c3BhbiBjbGFzcz0ic3BhbkNhck1ha2UgIj5Gb3JkPC9zcGFuPjxicj4KCQkJCQkJPHNwYW4gY2xhc3M9Im1vZGVsTmFtZSBzcGFuTW9kZWxOYW1lIj5FeHBsb3JlciAyMDI1PC9zcGFuPgoJCQkJCTwvaDM+CgkJCQk8L2E+CgkJCQkgICAgPCEtLSBPUEVOIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CiAgICA8ZGl2IGNsYXNzPSJkaXZOZXdDYXJTdGFydFByaWNlIj4KICAgICAgICDDoCBwYXJ0aXIgZGUKICAgICAgICA8c3BhbiBjbGFzcz0iIj4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+NTMgOTgwPC9zcGFuPjwvc3Bhbj4KICAgICAgICA8aSBzdHlsZT0iY29sb3I6IzAwMDtmb250LXNpemU6MjBweDsiIGNsYXNzPSJjYXJQcmljZUluaXRpYWxUb29sVGlwSWNvbiBmYWwgZmEtaW5mby1jaXJjbGUgYmxhY2tDb2xvckJvbGQiIGRhdGEtdG9vbHRpcD0nJmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtQRFNGOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDs1MSA1ODUmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUcmFuc3BvcnQgJmFtcDsgUHLDqXBhcmF0aW9uOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsyIDI5NSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RheGUgQUM6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzEwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RvdGFsJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzUzIDk4MCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsnPjwvaT4KICAgIDwvZGl2PgogICAgPCEtLSBDTE9TRSBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgoJCQkJCTxkaXYgY2xhc3M9ImRpdkNhckluU3RvY2tMaW5rIiBoaWRkZW4+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGRhdGEtdHlwZT0iaW52ZGF0YSIgZGF0YS1tYWtlPSJGb3JkIiBkYXRhLW1vZGVsPSJFeHBsb3JlciIgZGF0YS15ZWFyPSIyMDI1IiBkYXRhLXN0eWxlaWRzPSI0NTQwNDEsNDU0MDQyLDQ1NDA0NCw0NTQwNDMiIGRhdGEtaHlicmlkPSIwIj4KCTwvZGl2PgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW1hZ2VDb250YWluZXIgZmxleC1jZW50ZXIgYWxpZ24tY2VudGVyICI+CgkJCQk8YSB0aXRsZT0iRm9yZCBFeHBsb3JlciAyMDI1IiBocmVmPSI\/cGF0aD0vbmV1ZnMvRm9yZC1FeHBsb3Jlci0yMDI1Lmh0bWwiPgoJCQkJCTxpbWcgYWx0PSJGb3JkIEV4cGxvcmVyIDIwMjUiIGJvcmRlcj0iMCIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvZnIvRm9yZC9FeHBsb3Jlci8yMDI1LzQ1NDA0My9CbHVlL3Byb2ZpbGUud2VicCIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPgoJCQkJPC9hPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyRm9vdGVyQ29udGFpbmVyIHN0YWNrLWxjIC0tcy05Ij4KCQkJCQk8ZGl2IGNsYXNzPSJjYXJQYXltZW50V3JhcHBlciI+CgkJCTxkaXYgY2xhc3M9ImNvbnRlbnQtc2tlbGV0b24gaHRtbC1ibG9jayIgZGF0YS1ibG9jaz0icGF5bWVudEJsb2NrIiBkYXRhLXR5cGU9ImJsb2NrIiBkYXRhLXNvdXJjZT0ic2VydmVyIiBkYXRhLWNhbGxiYWNrPSJwYXltZW50Q2FsY0Jsb2NrIj4KCQkKCTxpbnB1dCBuYW1lPSJibG9jay1kYXRhIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSJ7JnF1b3Q7c3R5bGVpZCZxdW90OzomcXVvdDs0NTQwNDEmcXVvdDssJnF1b3Q7dGl0bGUmcXVvdDs6JnF1b3Q7Rm9yZCBFeHBsb3JlciAyMDI1JnF1b3Q7LCZxdW90O2hyZWYmcXVvdDs6JnF1b3Q7XC9uZXVmc1wvRm9yZC1FeHBsb3Jlci0yMDI1Lmh0bWwmcXVvdDssJnF1b3Q7bGlua3N0eWxlJnF1b3Q7OiZxdW90OyZxdW90OywmcXVvdDtsaW5rY2xhc3MmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O2NvbnRhaW5lcmNsYXNzJnF1b3Q7OiZxdW90OyZxdW90OywmcXVvdDtwcm9tb3RleHQmcXVvdDs6JnF1b3Q7RFx1MDBlOWNvdXZyZXogbCdvZmZyZSEmcXVvdDt9Ij4KCTwvZGl2PgoJPC9kaXY+CgkJCQkKCQkJPC9kaXY+CgkJPC9kaXY+Cgk8L2Rpdj48L2Rpdj48L2Rpdj48IS0tIENMT1NFIENBVEVHT1JZQk9YV1JBUFBFUiAoMjE5NCktLT48IS0tIE9QRU4gQ0FURUdPUllCT1hXUkFQUEVSICgyMTg2KSAtLT48ZGl2IGlkPSJjbGFzc3RydWNrX2NvbnRhaW5lciIgY2xhc3M9ImRpdlNwYW4gZGl2U3BhbjEyIGRpdkNhdGVnb3J5Qm94V3JhcHBlciIgc3RhdGU9Im9wZW4iIG5idmlzaWJsZT0iMSI+PGgyIGNsYXNzPSJkZWZhdWx0IGljb24taGVhZGluZyBmbGV4LWJveCBhbGlnbi1jZW50ZXIiPgoJPHNwYW4gY2xhc3M9ImZhIGZhLWNoZXZyb24tcmlnaHQiIGFyaWEtaGlkZGVuPSJ0cnVlIj48L3NwYW4+Cgk8Ym94LWxjIGNsYXNzPSItcHYwIj4KCQk8ZGl2IGNsYXNzPSJtYWluVGV4dCAtYm9sZCI+Q2FtaW9ucyBuZXVmcyBGb3JkIDIwMjUsIDIwMjYgJmFtcDsgMjAyNzwvZGl2PgoJCTxkaXYgY2xhc3M9InNlY29uZGFyeVRleHQiPsOgIEdhdGluZWF1IChwcsOocyBkJ090dGF3YSk8L2Rpdj4KCTwvYm94LWxjPgo8L2gyPjxkaXYgY2xhc3M9ImRpdlNwYW4gZGl2U3BhbjEyIGRpdkNhcnNCb3hXcmFwcGVyIENMQVNTX3RydWNrIj4JPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggIHJlYmF0ZUJvcmRlckNvbG9yIiBpZD0iZmJ4X3RydWNrXzEiPgoJCQoJCTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZUlubmVyQm94IiBpZD0iIj4KCQkJPGRpdiBjbGFzcz0iZDJjLWZhdnMtdHJpZ2dlci13cmFwcGVyIGQyZmF2LTAxIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9IkYtMTUwIiBkYXRhLXllYXI9IjIwMjYiIGRhdGEtdHJpbT0iIiBkYXRhLWNhcmlkPSIiPjwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJUaXRsZUNvbnRhaW5lciI+CgkJCQk8YSB0aXRsZT0iRm9yZCBGLTE1MCAyMDI2IiBocmVmPSI\/cGF0aD0vbmV1ZnMvRm9yZC1GXzE1MC0yMDI2Lmh0bWwiIGRhdGEtbWFrZT0iRm9yZCIgZGF0YS1tb2RlbD0iRi0xNTAgMjAyNiI+CgkJCQkJPGgzPgoJCQkJCQk8c3BhbiBjbGFzcz0ic3BhbkNhck1ha2UgIj5Gb3JkPC9zcGFuPjxicj4KCQkJCQkJPHNwYW4gY2xhc3M9Im1vZGVsTmFtZSBzcGFuTW9kZWxOYW1lIj5GLTE1MCAyMDI2PC9zcGFuPgoJCQkJCTwvaDM+CgkJCQk8L2E+CgkJCQkgICAgPCEtLSBPUEVOIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CiAgICA8ZGl2IGNsYXNzPSJkaXZOZXdDYXJTdGFydFByaWNlIj4KICAgICAgICDDoCBwYXJ0aXIgZGUKICAgICAgICA8c3BhbiBjbGFzcz0iIj4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+NTUgNDg1PC9zcGFuPjwvc3Bhbj4KICAgICAgICA8aSBzdHlsZT0iY29sb3I6IzAwMDtmb250LXNpemU6MjBweDsiIGNsYXNzPSJjYXJQcmljZUluaXRpYWxUb29sVGlwSWNvbiBmYWwgZmEtaW5mby1jaXJjbGUgYmxhY2tDb2xvckJvbGQiIGRhdGEtdG9vbHRpcD0nJmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtQRFNGOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDs1MiA2OTAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUcmFuc3BvcnQgJmFtcDsgUHLDqXBhcmF0aW9uOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsyIDY5NSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RheGUgQUM6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzEwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RvdGFsJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzU1IDQ4NSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsnPjwvaT4KICAgIDwvZGl2PgogICAgPCEtLSBDTE9TRSBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgoJCQkJCTxkaXYgY2xhc3M9ImRpdkNhckluU3RvY2tMaW5rIiBoaWRkZW4+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGRhdGEtdHlwZT0iaW52ZGF0YSIgZGF0YS1tYWtlPSJGb3JkIiBkYXRhLW1vZGVsPSJGLTE1MCIgZGF0YS15ZWFyPSIyMDI2IiBkYXRhLXN0eWxlaWRzPSI0ODE3OTcsNDgxNzk1LDQ4MTc5OCw0ODE3OTksNDgxODAwLDQ4MTc5Niw0ODE4MDEsNDgxODA1LDQ4MTgwNiw0ODE4MDIsNDgxODAzLDQ4MTgwNyw0ODE4MDgsNDgxODEwLDQ4MTgwNCw0ODE4MTEsNDgxODE2LDQ4MTgxOCw0ODE4MTUsNDgxODEyLDQ4MTgxOSw0ODE4MTMsNDgxODIwLDQ4MTgxNCw0ODE4MjEsNDgxODIyIiBkYXRhLWh5YnJpZD0iMCI+Cgk8L2Rpdj4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckltYWdlQ29udGFpbmVyIGZsZXgtY2VudGVyIGFsaWduLWNlbnRlciAiPgoJCQkJPGEgdGl0bGU9IkZvcmQgRi0xNTAgMjAyNiIgaHJlZj0iP3BhdGg9L25ldWZzL0ZvcmQtRl8xNTAtMjAyNi5odG1sIj4KCQkJCQk8aW1nIGFsdD0iRm9yZCBGLTE1MCAyMDI2IiBib3JkZXI9IjAiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL2ZyL0ZvcmQvRl8xNTAvMjAyNi80ODE4MjIvQmx1ZS9wcm9maWxlLndlYnAiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj4KCQkJCTwvYT4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckZvb3RlckNvbnRhaW5lciBzdGFjay1sYyAtLXMtOSI+CgkJCQkJPGRpdiBjbGFzcz0iY2FyUGF5bWVudFdyYXBwZXIiPgoJCQk8ZGl2IGNsYXNzPSJjb250ZW50LXNrZWxldG9uIGh0bWwtYmxvY2siIGRhdGEtYmxvY2s9InBheW1lbnRCbG9jayIgZGF0YS10eXBlPSJibG9jayIgZGF0YS1zb3VyY2U9InNlcnZlciIgZGF0YS1jYWxsYmFjaz0icGF5bWVudENhbGNCbG9jayI+CgkJCgk8aW5wdXQgbmFtZT0iYmxvY2stZGF0YSIgdHlwZT0iaGlkZGVuIiB2YWx1ZT0ieyZxdW90O3N0eWxlaWQmcXVvdDs6JnF1b3Q7NDgxNzk3JnF1b3Q7LCZxdW90O3RpdGxlJnF1b3Q7OiZxdW90O0ZvcmQgRi0xNTAgMjAyNiZxdW90OywmcXVvdDtocmVmJnF1b3Q7OiZxdW90O1wvbmV1ZnNcL0ZvcmQtRl8xNTAtMjAyNi5odG1sJnF1b3Q7LCZxdW90O2xpbmtzdHlsZSZxdW90OzomcXVvdDsmcXVvdDssJnF1b3Q7bGlua2NsYXNzJnF1b3Q7OiZxdW90OyZxdW90OywmcXVvdDtjb250YWluZXJjbGFzcyZxdW90OzomcXVvdDsmcXVvdDssJnF1b3Q7cHJvbW90ZXh0JnF1b3Q7OiZxdW90O0RcdTAwZTljb3V2cmV6IGwnb2ZmcmUhJnF1b3Q7fSI+Cgk8L2Rpdj4KCTwvZGl2PgoJCQkJCgkJCTwvZGl2PgoJCTwvZGl2PgoJPC9kaXY+CTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZU91dGVyQm94ICByZWJhdGVCb3JkZXJDb2xvciIgaWQ9ImZieF90cnVja18yIj4KCQkKCQk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVJbm5lckJveCIgaWQ9IiI+CgkJCTxkaXYgY2xhc3M9ImQyYy1mYXZzLXRyaWdnZXItd3JhcHBlciBkMmZhdi0wMSIgZGF0YS1tYWtlPSJGb3JkIiBkYXRhLW1vZGVsPSJGLTE1MCIgZGF0YS15ZWFyPSIyMDI1IiBkYXRhLXRyaW09IiIgZGF0YS1jYXJpZD0iIj48L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyVGl0bGVDb250YWluZXIiPgoJCQkJPGEgdGl0bGU9IkZvcmQgRi0xNTAgMjAyNSIgaHJlZj0iP3BhdGg9L25ldWZzL0ZvcmQtRl8xNTAtMjAyNS5odG1sIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9IkYtMTUwIDIwMjUiPgoJCQkJCTxoMz4KCQkJCQkJPHNwYW4gY2xhc3M9InNwYW5DYXJNYWtlICI+Rm9yZDwvc3Bhbj48YnI+CgkJCQkJCTxzcGFuIGNsYXNzPSJtb2RlbE5hbWUgc3Bhbk1vZGVsTmFtZSI+Ri0xNTAgMjAyNTwvc3Bhbj4KCQkJCQk8L2gzPgoJCQkJPC9hPgoJCQkJICAgIDwhLS0gT1BFTiBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgogICAgPGRpdiBjbGFzcz0iZGl2TmV3Q2FyU3RhcnRQcmljZSI+CiAgICAgICAgw6AgcGFydGlyIGRlCiAgICAgICAgPHNwYW4gY2xhc3M9IiI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjUzIDMwMDwvc3Bhbj48L3NwYW4+CiAgICAgICAgPGkgc3R5bGU9ImNvbG9yOiMwMDA7Zm9udC1zaXplOjIwcHg7IiBjbGFzcz0iY2FyUHJpY2VJbml0aWFsVG9vbFRpcEljb24gZmFsIGZhLWluZm8tY2lyY2xlIGJsYWNrQ29sb3JCb2xkIiBkYXRhLXRvb2x0aXA9JyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7UERTRjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7NTIgMzU1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VHJhbnNwb3J0ICZhbXA7IFByw6lwYXJhdGlvbjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MiA1OTUmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUYXhlIEFDOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsxMDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUb3RhbCZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDs1MyAzMDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jz48L2k+CiAgICA8L2Rpdj4KICAgIDwhLS0gQ0xPU0UgTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KCQkJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJblN0b2NrTGluayIgaGlkZGVuPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBkYXRhLXR5cGU9ImludmRhdGEiIGRhdGEtbWFrZT0iRm9yZCIgZGF0YS1tb2RlbD0iRi0xNTAiIGRhdGEteWVhcj0iMjAyNSIgZGF0YS1zdHlsZWlkcz0iNDY0MTUyLDQ2NDE1MCw0NjQxNTMsNDY0MTU0LDQ2NDE1NSw0NjQxNTYsNDY0MTUxLDQ2NDE2MCw0NjQxNjEsNDY0MTU3LDQ2NDE2Miw0NjQxNTgsNDY0MTU5LDQ2NDE2Myw0NjQxNjQsNDY0MTY1LDQ2NDE3MSw0NjQxNzIsNDY0MTY5LDQ2NDE2Niw0NjQxNzMsNDY0MTY3LDQ2NDE3NCw0NjQxNjgsNDY0MTc1LDQ2NDE3NyIgZGF0YS1oeWJyaWQ9IjAiPgoJPC9kaXY+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJbWFnZUNvbnRhaW5lciBmbGV4LWNlbnRlciBhbGlnbi1jZW50ZXIgIj4KCQkJCTxhIHRpdGxlPSJGb3JkIEYtMTUwIDIwMjUiIGhyZWY9Ij9wYXRoPS9uZXVmcy9Gb3JkLUZfMTUwLTIwMjUuaHRtbCI+CgkJCQkJPGltZyBhbHQ9IkZvcmQgRi0xNTAgMjAyNSIgYm9yZGVyPSIwIiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9mci9Gb3JkL0ZfMTUwLzIwMjUvNDY0MTc3L0JsdWUvcHJvZmlsZS53ZWJwIiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+CgkJCQk8L2E+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJGb290ZXJDb250YWluZXIgc3RhY2stbGMgLS1zLTkiPgoJCQkJCTxkaXYgY2xhc3M9ImNhclBheW1lbnRXcmFwcGVyIj4KCQkJPGRpdiBjbGFzcz0iY29udGVudC1za2VsZXRvbiBodG1sLWJsb2NrIiBkYXRhLWJsb2NrPSJwYXltZW50QmxvY2siIGRhdGEtdHlwZT0iYmxvY2siIGRhdGEtc291cmNlPSJzZXJ2ZXIiIGRhdGEtY2FsbGJhY2s9InBheW1lbnRDYWxjQmxvY2siPgoJCQoJPGlucHV0IG5hbWU9ImJsb2NrLWRhdGEiIHR5cGU9ImhpZGRlbiIgdmFsdWU9InsmcXVvdDtzdHlsZWlkJnF1b3Q7OiZxdW90OzQ2NDE1MiZxdW90OywmcXVvdDt0aXRsZSZxdW90OzomcXVvdDtGb3JkIEYtMTUwIDIwMjUmcXVvdDssJnF1b3Q7aHJlZiZxdW90OzomcXVvdDtcL25ldWZzXC9Gb3JkLUZfMTUwLTIwMjUuaHRtbCZxdW90OywmcXVvdDtsaW5rc3R5bGUmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O2xpbmtjbGFzcyZxdW90OzomcXVvdDsmcXVvdDssJnF1b3Q7Y29udGFpbmVyY2xhc3MmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O3Byb21vdGV4dCZxdW90OzomcXVvdDtEXHUwMGU5Y291dnJleiBsJ29mZnJlISZxdW90O30iPgoJPC9kaXY+Cgk8L2Rpdj4KCQkJCQoJCQk8L2Rpdj4KCQk8L2Rpdj4KCTwvZGl2Pgk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVPdXRlckJveCAgcmViYXRlQm9yZGVyQ29sb3IiIGlkPSJmYnhfdHJ1Y2tfMyI+CgkJCgkJPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlSW5uZXJCb3giIGlkPSIiPgoJCQk8ZGl2IGNsYXNzPSJkMmMtZmF2cy10cmlnZ2VyLXdyYXBwZXIgZDJmYXYtMDEiIGRhdGEtbWFrZT0iRm9yZCIgZGF0YS1tb2RlbD0iTWF2ZXJpY2siIGRhdGEteWVhcj0iMjAyNiIgZGF0YS10cmltPSIiIGRhdGEtY2FyaWQ9IiI+PC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhclRpdGxlQ29udGFpbmVyIj4KCQkJCTxhIHRpdGxlPSJGb3JkIE1hdmVyaWNrIDIwMjYiIGhyZWY9Ij9wYXRoPS9uZXVmcy9Gb3JkLU1hdmVyaWNrLTIwMjYuaHRtbCIgZGF0YS1tYWtlPSJGb3JkIiBkYXRhLW1vZGVsPSJNYXZlcmljayAyMDI2Ij4KCQkJCQk8aDM+CgkJCQkJCTxzcGFuIGNsYXNzPSJzcGFuQ2FyTWFrZSAiPkZvcmQ8L3NwYW4+PGJyPgoJCQkJCQk8c3BhbiBjbGFzcz0ibW9kZWxOYW1lIHNwYW5Nb2RlbE5hbWUiPk1hdmVyaWNrIDIwMjY8L3NwYW4+CgkJCQkJPC9oMz4KCQkJCTwvYT4KCQkJCSAgICA8IS0tIE9QRU4gTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KICAgIDxkaXYgY2xhc3M9ImRpdk5ld0NhclN0YXJ0UHJpY2UiPgogICAgICAgIMOgIHBhcnRpciBkZQogICAgICAgIDxzcGFuIGNsYXNzPSIiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj40NCAzOTU8L3NwYW4+PC9zcGFuPgogICAgICAgIDxpIHN0eWxlPSJjb2xvcjojMDAwO2ZvbnQtc2l6ZToyMHB4OyIgY2xhc3M9ImNhclByaWNlSW5pdGlhbFRvb2xUaXBJY29uIGZhbCBmYS1pbmZvLWNpcmNsZSBibGFja0NvbG9yQm9sZCIgZGF0YS10b29sdGlwPScmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1BEU0Y6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzQxIDkwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RyYW5zcG9ydCAmYW1wOyBQcsOpcGFyYXRpb246Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzIgMzk1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VGF4ZSBBQzombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MTAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VG90YWwmbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7NDQgMzk1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0Oyc+PC9pPgogICAgPC9kaXY+CiAgICA8IS0tIENMT1NFIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CgkJCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW5TdG9ja0xpbmsiIGhpZGRlbj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgZGF0YS10eXBlPSJpbnZkYXRhIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9Ik1hdmVyaWNrIiBkYXRhLXllYXI9IjIwMjYiIGRhdGEtc3R5bGVpZHM9IjQ4MTE3Niw0ODExNzMsNDgxMTc1IiBkYXRhLWh5YnJpZD0iMCI+Cgk8L2Rpdj4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckltYWdlQ29udGFpbmVyIGZsZXgtY2VudGVyIGFsaWduLWNlbnRlciAiPgoJCQkJPGEgdGl0bGU9IkZvcmQgTWF2ZXJpY2sgMjAyNiIgaHJlZj0iP3BhdGg9L25ldWZzL0ZvcmQtTWF2ZXJpY2stMjAyNi5odG1sIj4KCQkJCQk8aW1nIGFsdD0iRm9yZCBNYXZlcmljayAyMDI2IiBib3JkZXI9IjAiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL2ZyL0ZvcmQvTWF2ZXJpY2svMjAyNi80ODExNzUvQmx1ZS9wcm9maWxlLndlYnAiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj4KCQkJCTwvYT4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckZvb3RlckNvbnRhaW5lciBzdGFjay1sYyAtLXMtOSI+CgkJCQkJPGRpdiBjbGFzcz0iY2FyUGF5bWVudFdyYXBwZXIiPgoJCQk8ZGl2IGNsYXNzPSJjb250ZW50LXNrZWxldG9uIGh0bWwtYmxvY2siIGRhdGEtYmxvY2s9InBheW1lbnRCbG9jayIgZGF0YS10eXBlPSJibG9jayIgZGF0YS1zb3VyY2U9InNlcnZlciIgZGF0YS1jYWxsYmFjaz0icGF5bWVudENhbGNCbG9jayI+CgkJCgk8aW5wdXQgbmFtZT0iYmxvY2stZGF0YSIgdHlwZT0iaGlkZGVuIiB2YWx1ZT0ieyZxdW90O3N0eWxlaWQmcXVvdDs6JnF1b3Q7NDgxMTc2JnF1b3Q7LCZxdW90O3RpdGxlJnF1b3Q7OiZxdW90O0ZvcmQgTWF2ZXJpY2sgMjAyNiZxdW90OywmcXVvdDtocmVmJnF1b3Q7OiZxdW90O1wvbmV1ZnNcL0ZvcmQtTWF2ZXJpY2stMjAyNi5odG1sJnF1b3Q7LCZxdW90O2xpbmtzdHlsZSZxdW90OzomcXVvdDsmcXVvdDssJnF1b3Q7bGlua2NsYXNzJnF1b3Q7OiZxdW90OyZxdW90OywmcXVvdDtjb250YWluZXJjbGFzcyZxdW90OzomcXVvdDsmcXVvdDssJnF1b3Q7cHJvbW90ZXh0JnF1b3Q7OiZxdW90O0RcdTAwZTljb3V2cmV6IGwnb2ZmcmUhJnF1b3Q7fSI+Cgk8L2Rpdj4KCTwvZGl2PgoJCQkJCgkJCTwvZGl2PgoJCTwvZGl2PgoJPC9kaXY+CTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZU91dGVyQm94ICByZWJhdGVCb3JkZXJDb2xvciIgaWQ9ImZieF90cnVja180Ij4KCQkKCQk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVJbm5lckJveCIgaWQ9IiI+CgkJCTxkaXYgY2xhc3M9ImQyYy1mYXZzLXRyaWdnZXItd3JhcHBlciBkMmZhdi0wMSIgZGF0YS1tYWtlPSJGb3JkIiBkYXRhLW1vZGVsPSJNYXZlcmljayIgZGF0YS15ZWFyPSIyMDI1IiBkYXRhLXRyaW09IiIgZGF0YS1jYXJpZD0iIj48L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyVGl0bGVDb250YWluZXIiPgoJCQkJPGEgdGl0bGU9IkZvcmQgTWF2ZXJpY2sgMjAyNSIgaHJlZj0iP3BhdGg9L25ldWZzL0ZvcmQtTWF2ZXJpY2stMjAyNS5odG1sIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9Ik1hdmVyaWNrIDIwMjUiPgoJCQkJCTxoMz4KCQkJCQkJPHNwYW4gY2xhc3M9InNwYW5DYXJNYWtlICI+Rm9yZDwvc3Bhbj48YnI+CgkJCQkJCTxzcGFuIGNsYXNzPSJtb2RlbE5hbWUgc3Bhbk1vZGVsTmFtZSI+TWF2ZXJpY2sgMjAyNTwvc3Bhbj4KCQkJCQk8L2gzPgoJCQkJPC9hPgoJCQkJICAgIDwhLS0gT1BFTiBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgogICAgPGRpdiBjbGFzcz0iZGl2TmV3Q2FyU3RhcnRQcmljZSI+CiAgICAgICAgw6AgcGFydGlyIGRlCiAgICAgICAgPHNwYW4gY2xhc3M9IiI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjQ0IDI5NTwvc3Bhbj48L3NwYW4+CiAgICAgICAgPGkgc3R5bGU9ImNvbG9yOiMwMDA7Zm9udC1zaXplOjIwcHg7IiBjbGFzcz0iY2FyUHJpY2VJbml0aWFsVG9vbFRpcEljb24gZmFsIGZhLWluZm8tY2lyY2xlIGJsYWNrQ29sb3JCb2xkIiBkYXRhLXRvb2x0aXA9JyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7UERTRjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7NDEgOTAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VHJhbnNwb3J0ICZhbXA7IFByw6lwYXJhdGlvbjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MiAyOTUmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUYXhlIEFDOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsxMDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUb3RhbCZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDs0NCAyOTUmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jz48L2k+CiAgICA8L2Rpdj4KICAgIDwhLS0gQ0xPU0UgTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KCQkJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJblN0b2NrTGluayIgaGlkZGVuPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBkYXRhLXR5cGU9ImludmRhdGEiIGRhdGEtbWFrZT0iRm9yZCIgZGF0YS1tb2RlbD0iTWF2ZXJpY2siIGRhdGEteWVhcj0iMjAyNSIgZGF0YS1zdHlsZWlkcz0iNDY5MDY1LDQ2MjgzNiw0NjI4MzciIGRhdGEtaHlicmlkPSIwIj4KCTwvZGl2PgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW1hZ2VDb250YWluZXIgZmxleC1jZW50ZXIgYWxpZ24tY2VudGVyICI+CgkJCQk8YSB0aXRsZT0iRm9yZCBNYXZlcmljayAyMDI1IiBocmVmPSI\/cGF0aD0vbmV1ZnMvRm9yZC1NYXZlcmljay0yMDI1Lmh0bWwiPgoJCQkJCTxpbWcgYWx0PSJGb3JkIE1hdmVyaWNrIDIwMjUiIGJvcmRlcj0iMCIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvZnIvRm9yZC9NYXZlcmljay8yMDI1LzQ2MjgzNy9CbHVlL3Byb2ZpbGUud2VicCIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPgoJCQkJPC9hPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyRm9vdGVyQ29udGFpbmVyIHN0YWNrLWxjIC0tcy05Ij4KCQkJCQk8ZGl2IGNsYXNzPSJjYXJQYXltZW50V3JhcHBlciI+CgkJCTxkaXYgY2xhc3M9ImNvbnRlbnQtc2tlbGV0b24gaHRtbC1ibG9jayIgZGF0YS1ibG9jaz0icGF5bWVudEJsb2NrIiBkYXRhLXR5cGU9ImJsb2NrIiBkYXRhLXNvdXJjZT0ic2VydmVyIiBkYXRhLWNhbGxiYWNrPSJwYXltZW50Q2FsY0Jsb2NrIj4KCQkKCTxpbnB1dCBuYW1lPSJibG9jay1kYXRhIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSJ7JnF1b3Q7c3R5bGVpZCZxdW90OzomcXVvdDs0NjkwNjUmcXVvdDssJnF1b3Q7dGl0bGUmcXVvdDs6JnF1b3Q7Rm9yZCBNYXZlcmljayAyMDI1JnF1b3Q7LCZxdW90O2hyZWYmcXVvdDs6JnF1b3Q7XC9uZXVmc1wvRm9yZC1NYXZlcmljay0yMDI1Lmh0bWwmcXVvdDssJnF1b3Q7bGlua3N0eWxlJnF1b3Q7OiZxdW90OyZxdW90OywmcXVvdDtsaW5rY2xhc3MmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O2NvbnRhaW5lcmNsYXNzJnF1b3Q7OiZxdW90OyZxdW90OywmcXVvdDtwcm9tb3RleHQmcXVvdDs6JnF1b3Q7RFx1MDBlOWNvdXZyZXogbCdvZmZyZSEmcXVvdDt9Ij4KCTwvZGl2PgoJPC9kaXY+CgkJCQkKCQkJPC9kaXY+CgkJPC9kaXY+Cgk8L2Rpdj4JPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggIHJlYmF0ZUJvcmRlckNvbG9yIiBpZD0iZmJ4X3RydWNrXzUiPgoJCQoJCTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZUlubmVyQm94IiBpZD0iIj4KCQkJPGRpdiBjbGFzcz0iZDJjLWZhdnMtdHJpZ2dlci13cmFwcGVyIGQyZmF2LTAxIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9IlJhbmdlciIgZGF0YS15ZWFyPSIyMDI2IiBkYXRhLXRyaW09IiIgZGF0YS1jYXJpZD0iIj48L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyVGl0bGVDb250YWluZXIiPgoJCQkJPGEgdGl0bGU9IkZvcmQgUmFuZ2VyIDIwMjYiIGhyZWY9Ij9wYXRoPS9uZXVmcy9Gb3JkLVJhbmdlci0yMDI2Lmh0bWwiIGRhdGEtbWFrZT0iRm9yZCIgZGF0YS1tb2RlbD0iUmFuZ2VyIDIwMjYiPgoJCQkJCTxoMz4KCQkJCQkJPHNwYW4gY2xhc3M9InNwYW5DYXJNYWtlICI+Rm9yZDwvc3Bhbj48YnI+CgkJCQkJCTxzcGFuIGNsYXNzPSJtb2RlbE5hbWUgc3Bhbk1vZGVsTmFtZSI+UmFuZ2VyIDIwMjY8L3NwYW4+CgkJCQkJPC9oMz4KCQkJCTwvYT4KCQkJCSAgICA8IS0tIE9QRU4gTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KICAgIDxkaXYgY2xhc3M9ImRpdk5ld0NhclN0YXJ0UHJpY2UiPgogICAgICAgIMOgIHBhcnRpciBkZQogICAgICAgIDxzcGFuIGNsYXNzPSIiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj40NSA5NjU8L3NwYW4+PC9zcGFuPgogICAgICAgIDxpIHN0eWxlPSJjb2xvcjojMDAwO2ZvbnQtc2l6ZToyMHB4OyIgY2xhc3M9ImNhclByaWNlSW5pdGlhbFRvb2xUaXBJY29uIGZhbCBmYS1pbmZvLWNpcmNsZSBibGFja0NvbG9yQm9sZCIgZGF0YS10b29sdGlwPScmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1BEU0Y6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzQzIDM3MCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RyYW5zcG9ydCAmYW1wOyBQcsOpcGFyYXRpb246Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzIgNDk1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VGF4ZSBBQzombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MTAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VG90YWwmbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7NDUgOTY1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0Oyc+PC9pPgogICAgPC9kaXY+CiAgICA8IS0tIENMT1NFIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CgkJCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW5TdG9ja0xpbmsiIGhpZGRlbj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgZGF0YS10eXBlPSJpbnZkYXRhIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9IlJhbmdlciIgZGF0YS15ZWFyPSIyMDI2IiBkYXRhLXN0eWxlaWRzPSI0ODE3ODIsNDgxNzgzLDQ4MTc4NCw0ODE3ODUiIGRhdGEtaHlicmlkPSIwIj4KCTwvZGl2PgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW1hZ2VDb250YWluZXIgZmxleC1jZW50ZXIgYWxpZ24tY2VudGVyICI+CgkJCQk8YSB0aXRsZT0iRm9yZCBSYW5nZXIgMjAyNiIgaHJlZj0iP3BhdGg9L25ldWZzL0ZvcmQtUmFuZ2VyLTIwMjYuaHRtbCI+CgkJCQkJPGltZyBhbHQ9IkZvcmQgUmFuZ2VyIDIwMjYiIGJvcmRlcj0iMCIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvZnIvRm9yZC9SYW5nZXIvMjAyNi80ODE3ODUvQmx1ZS9wcm9maWxlLndlYnAiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj4KCQkJCTwvYT4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckZvb3RlckNvbnRhaW5lciBzdGFjay1sYyAtLXMtOSI+CgkJCQkJPGRpdiBjbGFzcz0iY2FyUGF5bWVudFdyYXBwZXIiPgoJCQk8ZGl2IGNsYXNzPSJjb250ZW50LXNrZWxldG9uIGh0bWwtYmxvY2siIGRhdGEtYmxvY2s9InBheW1lbnRCbG9jayIgZGF0YS10eXBlPSJibG9jayIgZGF0YS1zb3VyY2U9InNlcnZlciIgZGF0YS1jYWxsYmFjaz0icGF5bWVudENhbGNCbG9jayI+CgkJCgk8aW5wdXQgbmFtZT0iYmxvY2stZGF0YSIgdHlwZT0iaGlkZGVuIiB2YWx1ZT0ieyZxdW90O3N0eWxlaWQmcXVvdDs6JnF1b3Q7NDgxNzgyJnF1b3Q7LCZxdW90O3RpdGxlJnF1b3Q7OiZxdW90O0ZvcmQgUmFuZ2VyIDIwMjYmcXVvdDssJnF1b3Q7aHJlZiZxdW90OzomcXVvdDtcL25ldWZzXC9Gb3JkLVJhbmdlci0yMDI2Lmh0bWwmcXVvdDssJnF1b3Q7bGlua3N0eWxlJnF1b3Q7OiZxdW90OyZxdW90OywmcXVvdDtsaW5rY2xhc3MmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O2NvbnRhaW5lcmNsYXNzJnF1b3Q7OiZxdW90OyZxdW90OywmcXVvdDtwcm9tb3RleHQmcXVvdDs6JnF1b3Q7RFx1MDBlOWNvdXZyZXogbCdvZmZyZSEmcXVvdDt9Ij4KCTwvZGl2PgoJPC9kaXY+CgkJCQkKCQkJPC9kaXY+CgkJPC9kaXY+Cgk8L2Rpdj4JPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggIHJlYmF0ZUJvcmRlckNvbG9yIiBpZD0iZmJ4X3RydWNrXzYiPgoJCQoJCTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZUlubmVyQm94IiBpZD0iIj4KCQkJPGRpdiBjbGFzcz0iZDJjLWZhdnMtdHJpZ2dlci13cmFwcGVyIGQyZmF2LTAxIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9IlJhbmdlciIgZGF0YS15ZWFyPSIyMDI1IiBkYXRhLXRyaW09IiIgZGF0YS1jYXJpZD0iIj48L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyVGl0bGVDb250YWluZXIiPgoJCQkJPGEgdGl0bGU9IkZvcmQgUmFuZ2VyIDIwMjUiIGhyZWY9Ij9wYXRoPS9uZXVmcy9Gb3JkLVJhbmdlci0yMDI1Lmh0bWwiIGRhdGEtbWFrZT0iRm9yZCIgZGF0YS1tb2RlbD0iUmFuZ2VyIDIwMjUiPgoJCQkJCTxoMz4KCQkJCQkJPHNwYW4gY2xhc3M9InNwYW5DYXJNYWtlICI+Rm9yZDwvc3Bhbj48YnI+CgkJCQkJCTxzcGFuIGNsYXNzPSJtb2RlbE5hbWUgc3Bhbk1vZGVsTmFtZSI+UmFuZ2VyIDIwMjU8L3NwYW4+CgkJCQkJPC9oMz4KCQkJCTwvYT4KCQkJCSAgICA8IS0tIE9QRU4gTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KICAgIDxkaXYgY2xhc3M9ImRpdk5ld0NhclN0YXJ0UHJpY2UiPgogICAgICAgIMOgIHBhcnRpciBkZQogICAgICAgIDxzcGFuIGNsYXNzPSIiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj40NSAzNjU8L3NwYW4+PC9zcGFuPgogICAgICAgIDxpIHN0eWxlPSJjb2xvcjojMDAwO2ZvbnQtc2l6ZToyMHB4OyIgY2xhc3M9ImNhclByaWNlSW5pdGlhbFRvb2xUaXBJY29uIGZhbCBmYS1pbmZvLWNpcmNsZSBibGFja0NvbG9yQm9sZCIgZGF0YS10b29sdGlwPScmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1BEU0Y6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzQyIDg3MCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RyYW5zcG9ydCAmYW1wOyBQcsOpcGFyYXRpb246Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzIgMzk1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VGF4ZSBBQzombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MTAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VG90YWwmbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7NDUgMzY1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0Oyc+PC9pPgogICAgPC9kaXY+CiAgICA8IS0tIENMT1NFIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CgkJCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW5TdG9ja0xpbmsiIGhpZGRlbj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgZGF0YS10eXBlPSJpbnZkYXRhIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9IlJhbmdlciIgZGF0YS15ZWFyPSIyMDI1IiBkYXRhLXN0eWxlaWRzPSI0NjY2NjIsNDY2NjYzLDQ2NjY2NCw0NjY2NjUiIGRhdGEtaHlicmlkPSIwIj4KCTwvZGl2PgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW1hZ2VDb250YWluZXIgZmxleC1jZW50ZXIgYWxpZ24tY2VudGVyICI+CgkJCQk8YSB0aXRsZT0iRm9yZCBSYW5nZXIgMjAyNSIgaHJlZj0iP3BhdGg9L25ldWZzL0ZvcmQtUmFuZ2VyLTIwMjUuaHRtbCI+CgkJCQkJPGltZyBhbHQ9IkZvcmQgUmFuZ2VyIDIwMjUiIGJvcmRlcj0iMCIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvZnIvRm9yZC9SYW5nZXIvMjAyNS80NjY2NjUvQmx1ZS9wcm9maWxlLndlYnAiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj4KCQkJCTwvYT4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckZvb3RlckNvbnRhaW5lciBzdGFjay1sYyAtLXMtOSI+CgkJCQkJPGRpdiBjbGFzcz0iY2FyUGF5bWVudFdyYXBwZXIiPgoJCQk8ZGl2IGNsYXNzPSJjb250ZW50LXNrZWxldG9uIGh0bWwtYmxvY2siIGRhdGEtYmxvY2s9InBheW1lbnRCbG9jayIgZGF0YS10eXBlPSJibG9jayIgZGF0YS1zb3VyY2U9InNlcnZlciIgZGF0YS1jYWxsYmFjaz0icGF5bWVudENhbGNCbG9jayI+CgkJCgk8aW5wdXQgbmFtZT0iYmxvY2stZGF0YSIgdHlwZT0iaGlkZGVuIiB2YWx1ZT0ieyZxdW90O3N0eWxlaWQmcXVvdDs6JnF1b3Q7NDY2NjYyJnF1b3Q7LCZxdW90O3RpdGxlJnF1b3Q7OiZxdW90O0ZvcmQgUmFuZ2VyIDIwMjUmcXVvdDssJnF1b3Q7aHJlZiZxdW90OzomcXVvdDtcL25ldWZzXC9Gb3JkLVJhbmdlci0yMDI1Lmh0bWwmcXVvdDssJnF1b3Q7bGlua3N0eWxlJnF1b3Q7OiZxdW90OyZxdW90OywmcXVvdDtsaW5rY2xhc3MmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O2NvbnRhaW5lcmNsYXNzJnF1b3Q7OiZxdW90OyZxdW90OywmcXVvdDtwcm9tb3RleHQmcXVvdDs6JnF1b3Q7RFx1MDBlOWNvdXZyZXogbCdvZmZyZSEmcXVvdDt9Ij4KCTwvZGl2PgoJPC9kaXY+CgkJCQkKCQkJPC9kaXY+CgkJPC9kaXY+Cgk8L2Rpdj4JPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggIHJlYmF0ZUJvcmRlckNvbG9yIiBpZD0iZmJ4X3RydWNrXzciPgoJCQoJCTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZUlubmVyQm94IiBpZD0iIj4KCQkJPGRpdiBjbGFzcz0iZDJjLWZhdnMtdHJpZ2dlci13cmFwcGVyIGQyZmF2LTAxIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9IlN1cGVyIER1dHkgRi0yNTAgU1JXIiBkYXRhLXllYXI9IjIwMjciIGRhdGEtdHJpbT0iIiBkYXRhLWNhcmlkPSIiPjwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJUaXRsZUNvbnRhaW5lciI+CgkJCQk8YSB0aXRsZT0iRm9yZCBTdXBlciBEdXR5IEYtMjUwIFNSVyAyMDI3IiBocmVmPSI\/cGF0aD0vbmV1ZnMvRm9yZC1TdXBlcl9EdXR5X0ZfMjUwX1NSVy0yMDI3Lmh0bWwiIGRhdGEtbWFrZT0iRm9yZCIgZGF0YS1tb2RlbD0iU3VwZXIgRHV0eSBGLTI1MCBTUlcgMjAyNyI+CgkJCQkJPGgzPgoJCQkJCQk8c3BhbiBjbGFzcz0ic3BhbkNhck1ha2UgIj5Gb3JkPC9zcGFuPjxicj4KCQkJCQkJPHNwYW4gY2xhc3M9Im1vZGVsTmFtZSBzcGFuTW9kZWxOYW1lIj5TdXBlciBEdXR5IEYtMjUwIFNSVyAyMDI3PC9zcGFuPgoJCQkJCTwvaDM+CgkJCQk8L2E+CgkJCQkgICAgPCEtLSBPUEVOIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CiAgICA8ZGl2IGNsYXNzPSJkaXZOZXdDYXJTdGFydFByaWNlIj4KICAgICAgICDDoCBwYXJ0aXIgZGUKICAgICAgICA8c3BhbiBjbGFzcz0iIj4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+NjQgNTM0PC9zcGFuPjwvc3Bhbj4KICAgICAgICA8aSBzdHlsZT0iY29sb3I6IzAwMDtmb250LXNpemU6MjBweDsiIGNsYXNzPSJjYXJQcmljZUluaXRpYWxUb29sVGlwSWNvbiBmYWwgZmEtaW5mby1jaXJjbGUgYmxhY2tDb2xvckJvbGQiIGRhdGEtdG9vbHRpcD0nJmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtQRFNGOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDs2MSA3MzkmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUcmFuc3BvcnQgJmFtcDsgUHLDqXBhcmF0aW9uOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsyIDY5NSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RheGUgQUM6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzEwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RvdGFsJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzY0IDUzNCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsnPjwvaT4KICAgIDwvZGl2PgogICAgPCEtLSBDTE9TRSBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgoJCQkJCTxkaXYgY2xhc3M9ImRpdkNhckluU3RvY2tMaW5rIiBoaWRkZW4+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGRhdGEtdHlwZT0iaW52ZGF0YSIgZGF0YS1tYWtlPSJGb3JkIiBkYXRhLW1vZGVsPSJTdXBlciBEdXR5IEYtMjUwIFNSVyIgZGF0YS15ZWFyPSIyMDI3IiBkYXRhLXN0eWxlaWRzPSI0ODYwNDEsNDg2MDQ1LDQ4NjA0Myw0ODYwNDgsNDg2MDUyLDQ4NjA0Niw0ODYwNjAsNDg2MDQyLDQ4NjA1MCw0ODYwNTUsNDg2MDYzLDQ4NjA0NCw0ODYwNDksNDg2MDUzLDQ4NjA2MSw0ODYwNDcsNDg2MDUxLDQ4NjA1Niw0ODYwNjQsNDg2MDU0LDQ4NjA2Miw0ODYwNTcsNDg2MDY1LDQ4NjA1OCw0ODYwNTksNDg2MDY2LDQ4NjA2NyIgZGF0YS1oeWJyaWQ9IjAiPgoJPC9kaXY+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJbWFnZUNvbnRhaW5lciBmbGV4LWNlbnRlciBhbGlnbi1jZW50ZXIgIj4KCQkJCTxhIHRpdGxlPSJGb3JkIFN1cGVyIER1dHkgRi0yNTAgU1JXIDIwMjciIGhyZWY9Ij9wYXRoPS9uZXVmcy9Gb3JkLVN1cGVyX0R1dHlfRl8yNTBfU1JXLTIwMjcuaHRtbCI+CgkJCQkJPGltZyBhbHQ9IkZvcmQgU3VwZXIgRHV0eSBGLTI1MCBTUlcgMjAyNyIgYm9yZGVyPSIwIiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9mci9Gb3JkL1N1cGVyX0R1dHlfRl8yNTBfU1JXLzIwMjcvNDg2MDY3L0JsdWUvcHJvZmlsZS53ZWJwIiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+CgkJCQk8L2E+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJGb290ZXJDb250YWluZXIgc3RhY2stbGMgLS1zLTkiPgoJCQkJCTxkaXYgY2xhc3M9ImNhclBheW1lbnRXcmFwcGVyIj4KCQkJPGRpdiBjbGFzcz0iY29udGVudC1za2VsZXRvbiBodG1sLWJsb2NrIiBkYXRhLWJsb2NrPSJwYXltZW50QmxvY2siIGRhdGEtdHlwZT0iYmxvY2siIGRhdGEtc291cmNlPSJzZXJ2ZXIiIGRhdGEtY2FsbGJhY2s9InBheW1lbnRDYWxjQmxvY2siPgoJCQoJPGlucHV0IG5hbWU9ImJsb2NrLWRhdGEiIHR5cGU9ImhpZGRlbiIgdmFsdWU9InsmcXVvdDtzdHlsZWlkJnF1b3Q7OiZxdW90OzQ4NjA0MSZxdW90OywmcXVvdDt0aXRsZSZxdW90OzomcXVvdDtGb3JkIFN1cGVyIER1dHkgRi0yNTAgU1JXIDIwMjcmcXVvdDssJnF1b3Q7aHJlZiZxdW90OzomcXVvdDtcL25ldWZzXC9Gb3JkLVN1cGVyX0R1dHlfRl8yNTBfU1JXLTIwMjcuaHRtbCZxdW90OywmcXVvdDtsaW5rc3R5bGUmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O2xpbmtjbGFzcyZxdW90OzomcXVvdDsmcXVvdDssJnF1b3Q7Y29udGFpbmVyY2xhc3MmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O3Byb21vdGV4dCZxdW90OzomcXVvdDtEXHUwMGU5Y291dnJleiBsJ29mZnJlISZxdW90O30iPgoJPC9kaXY+Cgk8L2Rpdj4KCQkJCQoJCQk8L2Rpdj4KCQk8L2Rpdj4KCTwvZGl2Pgk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVPdXRlckJveCAgcmViYXRlQm9yZGVyQ29sb3IiIGlkPSJmYnhfdHJ1Y2tfOCI+CgkJCgkJPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlSW5uZXJCb3giIGlkPSIiPgoJCQk8ZGl2IGNsYXNzPSJkMmMtZmF2cy10cmlnZ2VyLXdyYXBwZXIgZDJmYXYtMDEiIGRhdGEtbWFrZT0iRm9yZCIgZGF0YS1tb2RlbD0iU3VwZXIgRHV0eSBGLTI1MCBTUlciIGRhdGEteWVhcj0iMjAyNiIgZGF0YS10cmltPSIiIGRhdGEtY2FyaWQ9IiI+PC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhclRpdGxlQ29udGFpbmVyIj4KCQkJCTxhIHRpdGxlPSJGb3JkIFN1cGVyIER1dHkgRi0yNTAgU1JXIDIwMjYiIGhyZWY9Ij9wYXRoPS9uZXVmcy9Gb3JkLVN1cGVyX0R1dHlfRl8yNTBfU1JXLTIwMjYuaHRtbCIgZGF0YS1tYWtlPSJGb3JkIiBkYXRhLW1vZGVsPSJTdXBlciBEdXR5IEYtMjUwIFNSVyAyMDI2Ij4KCQkJCQk8aDM+CgkJCQkJCTxzcGFuIGNsYXNzPSJzcGFuQ2FyTWFrZSAiPkZvcmQ8L3NwYW4+PGJyPgoJCQkJCQk8c3BhbiBjbGFzcz0ibW9kZWxOYW1lIHNwYW5Nb2RlbE5hbWUiPlN1cGVyIER1dHkgRi0yNTAgU1JXIDIwMjY8L3NwYW4+CgkJCQkJPC9oMz4KCQkJCTwvYT4KCQkJCSAgICA8IS0tIE9QRU4gTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KICAgIDxkaXYgY2xhc3M9ImRpdk5ld0NhclN0YXJ0UHJpY2UiPgogICAgICAgIMOgIHBhcnRpciBkZQogICAgICAgIDxzcGFuIGNsYXNzPSIiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj42NCAwMzQ8L3NwYW4+PC9zcGFuPgogICAgICAgIDxpIHN0eWxlPSJjb2xvcjojMDAwO2ZvbnQtc2l6ZToyMHB4OyIgY2xhc3M9ImNhclByaWNlSW5pdGlhbFRvb2xUaXBJY29uIGZhbCBmYS1pbmZvLWNpcmNsZSBibGFja0NvbG9yQm9sZCIgZGF0YS10b29sdGlwPScmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1BEU0Y6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzYxIDIzOSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RyYW5zcG9ydCAmYW1wOyBQcsOpcGFyYXRpb246Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzIgNjk1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VGF4ZSBBQzombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MTAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VG90YWwmbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7NjQgMDM0Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0Oyc+PC9pPgogICAgPC9kaXY+CiAgICA8IS0tIENMT1NFIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CgkJCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW5TdG9ja0xpbmsiIGhpZGRlbj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgZGF0YS10eXBlPSJpbnZkYXRhIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9IlN1cGVyIER1dHkgRi0yNTAgU1JXIiBkYXRhLXllYXI9IjIwMjYiIGRhdGEtc3R5bGVpZHM9IjQ3OTQwNCw0Nzk0MjMsNDc5NDA1LDQ3OTQwNyw0Nzk0MTAsNDc5NDI0LDQ3OTQxNiw0Nzk0MjIsNDc5NDA4LDQ3OTQxMSw0Nzk0MTcsNDc5NDA2LDQ3OTQyNiw0Nzk0MjcsNDc5NDI5LDQ3OTQyNSw0Nzk0MDksNDc5NDEyLDQ3OTQxOCw0Nzk0MjgsNDc5NDMwLDQ3OTQxMyw0Nzk0MTksNDc5NDE0LDQ3OTQxNSw0Nzk0MjAsNDc5NDIxIiBkYXRhLWh5YnJpZD0iMCI+Cgk8L2Rpdj4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckltYWdlQ29udGFpbmVyIGZsZXgtY2VudGVyIGFsaWduLWNlbnRlciAiPgoJCQkJPGEgdGl0bGU9IkZvcmQgU3VwZXIgRHV0eSBGLTI1MCBTUlcgMjAyNiIgaHJlZj0iP3BhdGg9L25ldWZzL0ZvcmQtU3VwZXJfRHV0eV9GXzI1MF9TUlctMjAyNi5odG1sIj4KCQkJCQk8aW1nIGFsdD0iRm9yZCBTdXBlciBEdXR5IEYtMjUwIFNSVyAyMDI2IiBib3JkZXI9IjAiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL2ZyL0ZvcmQvU3VwZXJfRHV0eV9GXzI1MF9TUlcvMjAyNi80Nzk0MjEvQmx1ZS9wcm9maWxlLndlYnAiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj4KCQkJCTwvYT4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckZvb3RlckNvbnRhaW5lciBzdGFjay1sYyAtLXMtOSI+CgkJCQkJPGRpdiBjbGFzcz0iY2FyUGF5bWVudFdyYXBwZXIiPgoJCQk8ZGl2IGNsYXNzPSJjb250ZW50LXNrZWxldG9uIGh0bWwtYmxvY2siIGRhdGEtYmxvY2s9InBheW1lbnRCbG9jayIgZGF0YS10eXBlPSJibG9jayIgZGF0YS1zb3VyY2U9InNlcnZlciIgZGF0YS1jYWxsYmFjaz0icGF5bWVudENhbGNCbG9jayI+CgkJCgk8aW5wdXQgbmFtZT0iYmxvY2stZGF0YSIgdHlwZT0iaGlkZGVuIiB2YWx1ZT0ieyZxdW90O3N0eWxlaWQmcXVvdDs6JnF1b3Q7NDc5NDA0JnF1b3Q7LCZxdW90O3RpdGxlJnF1b3Q7OiZxdW90O0ZvcmQgU3VwZXIgRHV0eSBGLTI1MCBTUlcgMjAyNiZxdW90OywmcXVvdDtocmVmJnF1b3Q7OiZxdW90O1wvbmV1ZnNcL0ZvcmQtU3VwZXJfRHV0eV9GXzI1MF9TUlctMjAyNi5odG1sJnF1b3Q7LCZxdW90O2xpbmtzdHlsZSZxdW90OzomcXVvdDsmcXVvdDssJnF1b3Q7bGlua2NsYXNzJnF1b3Q7OiZxdW90OyZxdW90OywmcXVvdDtjb250YWluZXJjbGFzcyZxdW90OzomcXVvdDsmcXVvdDssJnF1b3Q7cHJvbW90ZXh0JnF1b3Q7OiZxdW90O0RcdTAwZTljb3V2cmV6IGwnb2ZmcmUhJnF1b3Q7fSI+Cgk8L2Rpdj4KCTwvZGl2PgoJCQkJCgkJCTwvZGl2PgoJCTwvZGl2PgoJPC9kaXY+CTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZU91dGVyQm94ICByZWJhdGVCb3JkZXJDb2xvciIgaWQ9ImZieF90cnVja185Ij4KCQkKCQk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVJbm5lckJveCIgaWQ9IiI+CgkJCTxkaXYgY2xhc3M9ImQyYy1mYXZzLXRyaWdnZXItd3JhcHBlciBkMmZhdi0wMSIgZGF0YS1tYWtlPSJGb3JkIiBkYXRhLW1vZGVsPSJTdXBlciBEdXR5IEYtMjUwIFNSVyIgZGF0YS15ZWFyPSIyMDI1IiBkYXRhLXRyaW09IiIgZGF0YS1jYXJpZD0iIj48L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyVGl0bGVDb250YWluZXIiPgoJCQkJPGEgdGl0bGU9IkZvcmQgU3VwZXIgRHV0eSBGLTI1MCBTUlcgMjAyNSIgaHJlZj0iP3BhdGg9L25ldWZzL0ZvcmQtU3VwZXJfRHV0eV9GXzI1MF9TUlctMjAyNS5odG1sIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9IlN1cGVyIER1dHkgRi0yNTAgU1JXIDIwMjUiPgoJCQkJCTxoMz4KCQkJCQkJPHNwYW4gY2xhc3M9InNwYW5DYXJNYWtlICI+Rm9yZDwvc3Bhbj48YnI+CgkJCQkJCTxzcGFuIGNsYXNzPSJtb2RlbE5hbWUgc3Bhbk1vZGVsTmFtZSI+U3VwZXIgRHV0eSBGLTI1MCBTUlcgMjAyNTwvc3Bhbj4KCQkJCQk8L2gzPgoJCQkJPC9hPgoJCQkJICAgIDwhLS0gT1BFTiBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgogICAgPGRpdiBjbGFzcz0iZGl2TmV3Q2FyU3RhcnRQcmljZSI+CiAgICAgICAgw6AgcGFydGlyIGRlCiAgICAgICAgPHNwYW4gY2xhc3M9IiI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjYyIDQ3NDwvc3Bhbj48L3NwYW4+CiAgICAgICAgPGkgc3R5bGU9ImNvbG9yOiMwMDA7Zm9udC1zaXplOjIwcHg7IiBjbGFzcz0iY2FyUHJpY2VJbml0aWFsVG9vbFRpcEljb24gZmFsIGZhLWluZm8tY2lyY2xlIGJsYWNrQ29sb3JCb2xkIiBkYXRhLXRvb2x0aXA9JyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7UERTRjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7NTkgOTc5Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VHJhbnNwb3J0ICZhbXA7IFByw6lwYXJhdGlvbjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MiAzOTUmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUYXhlIEFDOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsxMDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUb3RhbCZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDs2MiA0NzQmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jz48L2k+CiAgICA8L2Rpdj4KICAgIDwhLS0gQ0xPU0UgTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KCQkJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJblN0b2NrTGluayIgaGlkZGVuPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBkYXRhLXR5cGU9ImludmRhdGEiIGRhdGEtbWFrZT0iRm9yZCIgZGF0YS1tb2RlbD0iU3VwZXIgRHV0eSBGLTI1MCBTUlciIGRhdGEteWVhcj0iMjAyNSIgZGF0YS1zdHlsZWlkcz0iNDY1MzY3LDQ2NTM2OCw0NjUzNzAsNDY1MzczLDQ2NTM3OSw0NjUzNzEsNDY1Mzc0LDQ2NTM4MCw0NjUzNjksNDY1MzcyLDQ2NTM3NSw0NjUzODEsNDY1Mzc2LDQ2NTM4Miw0NjUzNzcsNDY1Mzc4LDQ2NTM4Myw0NjUzODQiIGRhdGEtaHlicmlkPSIwIj4KCTwvZGl2PgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW1hZ2VDb250YWluZXIgZmxleC1jZW50ZXIgYWxpZ24tY2VudGVyICI+CgkJCQk8YSB0aXRsZT0iRm9yZCBTdXBlciBEdXR5IEYtMjUwIFNSVyAyMDI1IiBocmVmPSI\/cGF0aD0vbmV1ZnMvRm9yZC1TdXBlcl9EdXR5X0ZfMjUwX1NSVy0yMDI1Lmh0bWwiPgoJCQkJCTxpbWcgYWx0PSJGb3JkIFN1cGVyIER1dHkgRi0yNTAgU1JXIDIwMjUiIGJvcmRlcj0iMCIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvZnIvRm9yZC9TdXBlcl9EdXR5X0ZfMjUwX1NSVy8yMDI1LzQ2NTM4NC9CbHVlL3Byb2ZpbGUud2VicCIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPgoJCQkJPC9hPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyRm9vdGVyQ29udGFpbmVyIHN0YWNrLWxjIC0tcy05Ij4KCQkJCQk8ZGl2IGNsYXNzPSJjYXJQYXltZW50V3JhcHBlciI+CgkJCTxkaXYgY2xhc3M9ImNvbnRlbnQtc2tlbGV0b24gaHRtbC1ibG9jayIgZGF0YS1ibG9jaz0icGF5bWVudEJsb2NrIiBkYXRhLXR5cGU9ImJsb2NrIiBkYXRhLXNvdXJjZT0ic2VydmVyIiBkYXRhLWNhbGxiYWNrPSJwYXltZW50Q2FsY0Jsb2NrIj4KCQkKCTxpbnB1dCBuYW1lPSJibG9jay1kYXRhIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSJ7JnF1b3Q7c3R5bGVpZCZxdW90OzomcXVvdDs0NjUzNjcmcXVvdDssJnF1b3Q7dGl0bGUmcXVvdDs6JnF1b3Q7Rm9yZCBTdXBlciBEdXR5IEYtMjUwIFNSVyAyMDI1JnF1b3Q7LCZxdW90O2hyZWYmcXVvdDs6JnF1b3Q7XC9uZXVmc1wvRm9yZC1TdXBlcl9EdXR5X0ZfMjUwX1NSVy0yMDI1Lmh0bWwmcXVvdDssJnF1b3Q7bGlua3N0eWxlJnF1b3Q7OiZxdW90OyZxdW90OywmcXVvdDtsaW5rY2xhc3MmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O2NvbnRhaW5lcmNsYXNzJnF1b3Q7OiZxdW90OyZxdW90OywmcXVvdDtwcm9tb3RleHQmcXVvdDs6JnF1b3Q7RFx1MDBlOWNvdXZyZXogbCdvZmZyZSEmcXVvdDt9Ij4KCTwvZGl2PgoJPC9kaXY+CgkJCQkKCQkJPC9kaXY+CgkJPC9kaXY+Cgk8L2Rpdj4JPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggIHJlYmF0ZUJvcmRlckNvbG9yIiBpZD0iZmJ4X3RydWNrXzEwIj4KCQkKCQk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVJbm5lckJveCIgaWQ9IiI+CgkJCTxkaXYgY2xhc3M9ImQyYy1mYXZzLXRyaWdnZXItd3JhcHBlciBkMmZhdi0wMSIgZGF0YS1tYWtlPSJGb3JkIiBkYXRhLW1vZGVsPSJTdXBlciBEdXR5IEYtMzUwIERSVyIgZGF0YS15ZWFyPSIyMDI3IiBkYXRhLXRyaW09IiIgZGF0YS1jYXJpZD0iIj48L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyVGl0bGVDb250YWluZXIiPgoJCQkJPGEgdGl0bGU9IkZvcmQgU3VwZXIgRHV0eSBGLTM1MCDDoCByb3VlcyBhcnJpw6hyZSBqdW1lbMOpZXMgMjAyNyIgaHJlZj0iP3BhdGg9L25ldWZzL0ZvcmQtU3VwZXJfRHV0eV9GXzM1MF9EUlctMjAyNy5odG1sIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9IlN1cGVyIER1dHkgRi0zNTAgw6Agcm91ZXMgYXJyacOocmUganVtZWzDqWVzIDIwMjciPgoJCQkJCTxoMz4KCQkJCQkJPHNwYW4gY2xhc3M9InNwYW5DYXJNYWtlICI+Rm9yZDwvc3Bhbj48YnI+CgkJCQkJCTxzcGFuIGNsYXNzPSJtb2RlbE5hbWUgc3Bhbk1vZGVsTmFtZSI+U3VwZXIgRHV0eSBGLTM1MCDDoCByb3VlcyBhcnJpw6hyZSBqdW1lbMOpZXMgMjAyNzwvc3Bhbj4KCQkJCQk8L2gzPgoJCQkJPC9hPgoJCQkJICAgIDwhLS0gT1BFTiBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgogICAgPGRpdiBjbGFzcz0iZGl2TmV3Q2FyU3RhcnRQcmljZSI+CiAgICAgICAgw6AgcGFydGlyIGRlCiAgICAgICAgPHNwYW4gY2xhc3M9IiI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjY3IDc4MDwvc3Bhbj48L3NwYW4+CiAgICAgICAgPGkgc3R5bGU9ImNvbG9yOiMwMDA7Zm9udC1zaXplOjIwcHg7IiBjbGFzcz0iY2FyUHJpY2VJbml0aWFsVG9vbFRpcEljb24gZmFsIGZhLWluZm8tY2lyY2xlIGJsYWNrQ29sb3JCb2xkIiBkYXRhLXRvb2x0aXA9JyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7UERTRjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7NjQgOTg1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VHJhbnNwb3J0ICZhbXA7IFByw6lwYXJhdGlvbjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MiA2OTUmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUYXhlIEFDOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsxMDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUb3RhbCZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDs2NyA3ODAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jz48L2k+CiAgICA8L2Rpdj4KICAgIDwhLS0gQ0xPU0UgTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KCQkJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJblN0b2NrTGluayIgaGlkZGVuPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBkYXRhLXR5cGU9ImludmRhdGEiIGRhdGEtbWFrZT0iRm9yZCIgZGF0YS1tb2RlbD0iU3VwZXIgRHV0eSBGLTM1MCBEUlciIGRhdGEteWVhcj0iMjAyNyIgZGF0YS1zdHlsZWlkcz0iNDg1OTEzLDQ4NjQzOCw0ODY0NDIsNDg2NDM5LDQ4NjQ0Myw0ODU5MTUsNDg2NDQwLDQ4NjQ0Niw0ODY0NDQsNDg2NDQxLDQ4NjQ1MCw0ODY0NDcsNDg1OTE0LDQ4NjQ0NSw0ODU5MTcsNDg2NDQ4LDQ4NjQ1MSw0ODU5MjAsNDg2NDUyLDQ4NjQ0OSw0ODU5MTYsNDg2NDUzLDQ4NTkxOCw0ODU5MjEsNDg2NDU0LDQ4NTkxOSw0ODU5MjIsNDg2NDU1LDQ4NTkyMyw0ODU5MjQiIGRhdGEtaHlicmlkPSIwIj4KCTwvZGl2PgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW1hZ2VDb250YWluZXIgZmxleC1jZW50ZXIgYWxpZ24tY2VudGVyICI+CgkJCQk8YSB0aXRsZT0iRm9yZCBTdXBlciBEdXR5IEYtMzUwIMOgIHJvdWVzIGFycmnDqHJlIGp1bWVsw6llcyAyMDI3IiBocmVmPSI\/cGF0aD0vbmV1ZnMvRm9yZC1TdXBlcl9EdXR5X0ZfMzUwX0RSVy0yMDI3Lmh0bWwiPgoJCQkJCTxpbWcgYWx0PSJGb3JkIFN1cGVyIER1dHkgRi0zNTAgw6Agcm91ZXMgYXJyacOocmUganVtZWzDqWVzIDIwMjciIGJvcmRlcj0iMCIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvZnIvRm9yZC9TdXBlcl9EdXR5X0ZfMzUwX0RSVy8yMDI3LzQ4NTkyNC9CbHVlL3Byb2ZpbGUud2VicCIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPgoJCQkJPC9hPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyRm9vdGVyQ29udGFpbmVyIHN0YWNrLWxjIC0tcy05Ij4KCQkJCQk8ZGl2IGNsYXNzPSJjYXJQYXltZW50V3JhcHBlciI+CgkJCTxkaXYgY2xhc3M9ImNvbnRlbnQtc2tlbGV0b24gaHRtbC1ibG9jayIgZGF0YS1ibG9jaz0icGF5bWVudEJsb2NrIiBkYXRhLXR5cGU9ImJsb2NrIiBkYXRhLXNvdXJjZT0ic2VydmVyIiBkYXRhLWNhbGxiYWNrPSJwYXltZW50Q2FsY0Jsb2NrIj4KCQkKCTxpbnB1dCBuYW1lPSJibG9jay1kYXRhIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSIiPgoJPC9kaXY+Cgk8L2Rpdj4KCQkJCQoJCQk8L2Rpdj4KCQk8L2Rpdj4KCTwvZGl2Pgk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVPdXRlckJveCAgcmViYXRlQm9yZGVyQ29sb3IiIGlkPSJmYnhfdHJ1Y2tfMTEiPgoJCQoJCTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZUlubmVyQm94IiBpZD0iIj4KCQkJPGRpdiBjbGFzcz0iZDJjLWZhdnMtdHJpZ2dlci13cmFwcGVyIGQyZmF2LTAxIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9IlN1cGVyIER1dHkgRi0zNTAgRFJXIiBkYXRhLXllYXI9IjIwMjUiIGRhdGEtdHJpbT0iIiBkYXRhLWNhcmlkPSIiPjwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJUaXRsZUNvbnRhaW5lciI+CgkJCQk8YSB0aXRsZT0iRm9yZCBTdXBlciBEdXR5IEYtMzUwIMOgIHJvdWVzIGFycmnDqHJlIGp1bWVsw6llcyAyMDI1IiBocmVmPSI\/cGF0aD0vbmV1ZnMvRm9yZC1TdXBlcl9EdXR5X0ZfMzUwX0RSVy0yMDI1Lmh0bWwiIGRhdGEtbWFrZT0iRm9yZCIgZGF0YS1tb2RlbD0iU3VwZXIgRHV0eSBGLTM1MCDDoCByb3VlcyBhcnJpw6hyZSBqdW1lbMOpZXMgMjAyNSI+CgkJCQkJPGgzPgoJCQkJCQk8c3BhbiBjbGFzcz0ic3BhbkNhck1ha2UgIj5Gb3JkPC9zcGFuPjxicj4KCQkJCQkJPHNwYW4gY2xhc3M9Im1vZGVsTmFtZSBzcGFuTW9kZWxOYW1lIj5TdXBlciBEdXR5IEYtMzUwIMOgIHJvdWVzIGFycmnDqHJlIGp1bWVsw6llcyAyMDI1PC9zcGFuPgoJCQkJCTwvaDM+CgkJCQk8L2E+CgkJCQkgICAgPCEtLSBPUEVOIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CiAgICA8ZGl2IGNsYXNzPSJkaXZOZXdDYXJTdGFydFByaWNlIj4KICAgICAgICDDoCBwYXJ0aXIgZGUKICAgICAgICA8c3BhbiBjbGFzcz0iIj4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+NjUgNzIwPC9zcGFuPjwvc3Bhbj4KICAgICAgICA8aSBzdHlsZT0iY29sb3I6IzAwMDtmb250LXNpemU6MjBweDsiIGNsYXNzPSJjYXJQcmljZUluaXRpYWxUb29sVGlwSWNvbiBmYWwgZmEtaW5mby1jaXJjbGUgYmxhY2tDb2xvckJvbGQiIGRhdGEtdG9vbHRpcD0nJmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtQRFNGOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDs2MyAyMjUmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUcmFuc3BvcnQgJmFtcDsgUHLDqXBhcmF0aW9uOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsyIDM5NSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RheGUgQUM6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzEwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RvdGFsJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzY1IDcyMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsnPjwvaT4KICAgIDwvZGl2PgogICAgPCEtLSBDTE9TRSBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgoJCQkJCTxkaXYgY2xhc3M9ImRpdkNhckluU3RvY2tMaW5rIiBoaWRkZW4+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGRhdGEtdHlwZT0iaW52ZGF0YSIgZGF0YS1tYWtlPSJGb3JkIiBkYXRhLW1vZGVsPSJTdXBlciBEdXR5IEYtMzUwIERSVyIgZGF0YS15ZWFyPSIyMDI1IiBkYXRhLXN0eWxlaWRzPSI0NjUyMjQsNDY1Nzc4LDQ2NTc4Miw0NjUyMjUsNDY1Nzc5LDQ2NTc4Myw0NjU3ODAsNDY1Nzg2LDQ2NTc4NCw0NjU3ODEsNDY1NzkwLDQ2NTc4Nyw0NjU3ODUsNDY1MjI4LDQ2NTIyNiw0NjU3ODgsNDY1NzkxLDQ2NTc5Miw0NjU3ODksNDY1NzkzLDQ2NTIyOSw0NjUyMjcsNDY1Nzk0LDQ2NTIzMCw0NjUyMzEsNDY1MjMyIiBkYXRhLWh5YnJpZD0iMCI+Cgk8L2Rpdj4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckltYWdlQ29udGFpbmVyIGZsZXgtY2VudGVyIGFsaWduLWNlbnRlciAiPgoJCQkJPGEgdGl0bGU9IkZvcmQgU3VwZXIgRHV0eSBGLTM1MCDDoCByb3VlcyBhcnJpw6hyZSBqdW1lbMOpZXMgMjAyNSIgaHJlZj0iP3BhdGg9L25ldWZzL0ZvcmQtU3VwZXJfRHV0eV9GXzM1MF9EUlctMjAyNS5odG1sIj4KCQkJCQk8aW1nIGFsdD0iRm9yZCBTdXBlciBEdXR5IEYtMzUwIMOgIHJvdWVzIGFycmnDqHJlIGp1bWVsw6llcyAyMDI1IiBib3JkZXI9IjAiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL2ZyL0ZvcmQvU3VwZXJfRHV0eV9GXzM1MF9EUlcvMjAyNS80NjUyMzIvQmx1ZS9wcm9maWxlLndlYnAiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj4KCQkJCTwvYT4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckZvb3RlckNvbnRhaW5lciBzdGFjay1sYyAtLXMtOSI+CgkJCQkJPGRpdiBjbGFzcz0iY2FyUGF5bWVudFdyYXBwZXIiPgoJCQk8ZGl2IGNsYXNzPSJjb250ZW50LXNrZWxldG9uIGh0bWwtYmxvY2siIGRhdGEtYmxvY2s9InBheW1lbnRCbG9jayIgZGF0YS10eXBlPSJibG9jayIgZGF0YS1zb3VyY2U9InNlcnZlciIgZGF0YS1jYWxsYmFjaz0icGF5bWVudENhbGNCbG9jayI+CgkJCgk8aW5wdXQgbmFtZT0iYmxvY2stZGF0YSIgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iIj4KCTwvZGl2PgoJPC9kaXY+CgkJCQkKCQkJPC9kaXY+CgkJPC9kaXY+Cgk8L2Rpdj4JPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggIHJlYmF0ZUJvcmRlckNvbG9yIiBpZD0iZmJ4X3RydWNrXzEyIj4KCQkKCQk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVJbm5lckJveCIgaWQ9IiI+CgkJCTxkaXYgY2xhc3M9ImQyYy1mYXZzLXRyaWdnZXItd3JhcHBlciBkMmZhdi0wMSIgZGF0YS1tYWtlPSJGb3JkIiBkYXRhLW1vZGVsPSJTdXBlciBEdXR5IEYtMzUwIFNSVyIgZGF0YS15ZWFyPSIyMDI2IiBkYXRhLXRyaW09IiIgZGF0YS1jYXJpZD0iIj48L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyVGl0bGVDb250YWluZXIiPgoJCQkJPGEgdGl0bGU9IkZvcmQgU3VwZXIgRHV0eSBGLTM1MCDDoCByb3VlcyBhcnJpw6hyZSBzaW1wbGVzIDIwMjYiIGhyZWY9Ij9wYXRoPS9uZXVmcy9Gb3JkLVN1cGVyX0R1dHlfRl8zNTBfU1JXLTIwMjYuaHRtbCIgZGF0YS1tYWtlPSJGb3JkIiBkYXRhLW1vZGVsPSJTdXBlciBEdXR5IEYtMzUwIMOgIHJvdWVzIGFycmnDqHJlIHNpbXBsZXMgMjAyNiI+CgkJCQkJPGgzPgoJCQkJCQk8c3BhbiBjbGFzcz0ic3BhbkNhck1ha2UgIj5Gb3JkPC9zcGFuPjxicj4KCQkJCQkJPHNwYW4gY2xhc3M9Im1vZGVsTmFtZSBzcGFuTW9kZWxOYW1lIj5TdXBlciBEdXR5IEYtMzUwIMOgIHJvdWVzIGFycmnDqHJlIHNpbXBsZXMgMjAyNjwvc3Bhbj4KCQkJCQk8L2gzPgoJCQkJPC9hPgoJCQkJICAgIDwhLS0gT1BFTiBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgogICAgPGRpdiBjbGFzcz0iZGl2TmV3Q2FyU3RhcnRQcmljZSI+CiAgICAgICAgw6AgcGFydGlyIGRlCiAgICAgICAgPHNwYW4gY2xhc3M9IiI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjY2IDUzNDwvc3Bhbj48L3NwYW4+CiAgICAgICAgPGkgc3R5bGU9ImNvbG9yOiMwMDA7Zm9udC1zaXplOjIwcHg7IiBjbGFzcz0iY2FyUHJpY2VJbml0aWFsVG9vbFRpcEljb24gZmFsIGZhLWluZm8tY2lyY2xlIGJsYWNrQ29sb3JCb2xkIiBkYXRhLXRvb2x0aXA9JyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7UERTRjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7NjMgNzM5Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VHJhbnNwb3J0ICZhbXA7IFByw6lwYXJhdGlvbjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MiA2OTUmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUYXhlIEFDOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsxMDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUb3RhbCZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDs2NiA1MzQmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jz48L2k+CiAgICA8L2Rpdj4KICAgIDwhLS0gQ0xPU0UgTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KCQkJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJblN0b2NrTGluayIgaGlkZGVuPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBkYXRhLXR5cGU9ImludmRhdGEiIGRhdGEtbWFrZT0iRm9yZCIgZGF0YS1tb2RlbD0iU3VwZXIgRHV0eSBGLTM1MCBTUlciIGRhdGEteWVhcj0iMjAyNiIgZGF0YS1zdHlsZWlkcz0iNDc3NTc1LDQ3NzU5NCw0Nzc5OTAsNDc3NTc2LDQ3NzU3OCw0Nzc5OTEsNDc3NTgxLDQ3NzU5NSw0Nzc1ODcsNDc3OTkyLDQ3Nzk5NCw0Nzc1OTMsNDc3NTc5LDQ3Nzk5Myw0Nzc5OTgsNDc3OTk1LDQ3NzU4Miw0Nzc1ODgsNDc3OTk2LDQ3Nzk5OSw0Nzc1NzcsNDc3NTk3LDQ3NzU5OCw0NzgwMDAsNDc3OTk3LDQ3NzYwMCw0Nzc1OTYsNDc4MDAxLDQ3NzU4MCw0Nzc1ODMsNDc3NTg5LDQ3NzU5OSw0Nzc2MDEsNDc4MDAyLDQ3NzU4NCw0Nzc1OTAsNDc3NTg1LDQ3NzU4Niw0Nzc1OTEsNDc3NTkyIiBkYXRhLWh5YnJpZD0iMCI+Cgk8L2Rpdj4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckltYWdlQ29udGFpbmVyIGZsZXgtY2VudGVyIGFsaWduLWNlbnRlciAiPgoJCQkJPGEgdGl0bGU9IkZvcmQgU3VwZXIgRHV0eSBGLTM1MCDDoCByb3VlcyBhcnJpw6hyZSBzaW1wbGVzIDIwMjYiIGhyZWY9Ij9wYXRoPS9uZXVmcy9Gb3JkLVN1cGVyX0R1dHlfRl8zNTBfU1JXLTIwMjYuaHRtbCI+CgkJCQkJPGltZyBhbHQ9IkZvcmQgU3VwZXIgRHV0eSBGLTM1MCDDoCByb3VlcyBhcnJpw6hyZSBzaW1wbGVzIDIwMjYiIGJvcmRlcj0iMCIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvZnIvRm9yZC9TdXBlcl9EdXR5X0ZfMzUwX1NSVy8yMDI2LzQ3NzU5Mi9CbHVlL3Byb2ZpbGUud2VicCIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPgoJCQkJPC9hPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyRm9vdGVyQ29udGFpbmVyIHN0YWNrLWxjIC0tcy05Ij4KCQkJCQk8ZGl2IGNsYXNzPSJjYXJQYXltZW50V3JhcHBlciI+CgkJCTxkaXYgY2xhc3M9ImNvbnRlbnQtc2tlbGV0b24gaHRtbC1ibG9jayIgZGF0YS1ibG9jaz0icGF5bWVudEJsb2NrIiBkYXRhLXR5cGU9ImJsb2NrIiBkYXRhLXNvdXJjZT0ic2VydmVyIiBkYXRhLWNhbGxiYWNrPSJwYXltZW50Q2FsY0Jsb2NrIj4KCQkKCTxpbnB1dCBuYW1lPSJibG9jay1kYXRhIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSIiPgoJPC9kaXY+Cgk8L2Rpdj4KCQkJCQoJCQk8L2Rpdj4KCQk8L2Rpdj4KCTwvZGl2PjwvZGl2PjwvZGl2PjwhLS0gQ0xPU0UgQ0FURUdPUllCT1hXUkFQUEVSICgyMTk0KS0tPjwhLS0gT1BFTiBDQVRFR09SWUJPWFdSQVBQRVIgKDIxODYpIC0tPjxkaXYgaWQ9ImNsYXNzaHlicmlkX2NvbnRhaW5lciIgY2xhc3M9ImRpdlNwYW4gZGl2U3BhbjEyIGRpdkNhdGVnb3J5Qm94V3JhcHBlciIgc3RhdGU9Im9wZW4iIG5idmlzaWJsZT0iMSI+PGgyIGNsYXNzPSJkZWZhdWx0IGljb24taGVhZGluZyBmbGV4LWJveCBhbGlnbi1jZW50ZXIiPgoJPHNwYW4gY2xhc3M9ImZhIGZhLWNoZXZyb24tcmlnaHQiIGFyaWEtaGlkZGVuPSJ0cnVlIj48L3NwYW4+Cgk8Ym94LWxjIGNsYXNzPSItcHYwIj4KCQk8ZGl2IGNsYXNzPSJtYWluVGV4dCAtYm9sZCI+SHlicmlkZXMgKEh5YnJpZGUgbMOpZ2VyKSBuZXV2ZXMgRm9yZCAyMDI1ICZhbXA7IDIwMjY8L2Rpdj4KCQk8ZGl2IGNsYXNzPSJzZWNvbmRhcnlUZXh0Ij7DoCBHYXRpbmVhdSAocHLDqHMgZCdPdHRhd2EpPC9kaXY+Cgk8L2JveC1sYz4KPC9oMj48ZGl2IGNsYXNzPSJkaXZTcGFuIGRpdlNwYW4xMiBkaXZDYXJzQm94V3JhcHBlciBDTEFTU19oeWJyaWQiPgk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVPdXRlckJveCAgcmViYXRlQm9yZGVyQ29sb3IiIGlkPSJmYnhfaHlicmlkXzEiPgoJCQoJCTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZUlubmVyQm94IiBpZD0iIj4KCQkJPGRpdiBjbGFzcz0iZDJjLWZhdnMtdHJpZ2dlci13cmFwcGVyIGQyZmF2LTAxIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9IkVzY2FwZSBIeWJyaWQiIGRhdGEteWVhcj0iMjAyNiIgZGF0YS10cmltPSIiIGRhdGEtY2FyaWQ9IiI+PC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhclRpdGxlQ29udGFpbmVyIj4KCQkJCTxhIHRpdGxlPSJGb3JkIEVzY2FwZSBIeWJyaWRlIDIwMjYiIGhyZWY9Ij9wYXRoPS9uZXVmcy9Gb3JkLUVzY2FwZV9IeWJyaWQtMjAyNi5odG1sIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9IkVzY2FwZSBIeWJyaWRlIDIwMjYiPgoJCQkJCTxoMz4KCQkJCQkJPHNwYW4gY2xhc3M9InNwYW5DYXJNYWtlICI+Rm9yZDwvc3Bhbj48YnI+CgkJCQkJCTxzcGFuIGNsYXNzPSJtb2RlbE5hbWUgc3Bhbk1vZGVsTmFtZSI+RXNjYXBlIEh5YnJpZGUgMjAyNjwvc3Bhbj4KCQkJCQk8L2gzPgoJCQkJPC9hPgoJCQkJICAgIDwhLS0gT1BFTiBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgogICAgPGRpdiBjbGFzcz0iZGl2TmV3Q2FyU3RhcnRQcmljZSI+CiAgICAgICAgw6AgcGFydGlyIGRlCiAgICAgICAgPHNwYW4gY2xhc3M9IiI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjQ2IDk5NDwvc3Bhbj48L3NwYW4+CiAgICAgICAgPGkgc3R5bGU9ImNvbG9yOiMwMDA7Zm9udC1zaXplOjIwcHg7IiBjbGFzcz0iY2FyUHJpY2VJbml0aWFsVG9vbFRpcEljb24gZmFsIGZhLWluZm8tY2lyY2xlIGJsYWNrQ29sb3JCb2xkIiBkYXRhLXRvb2x0aXA9JyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7UERTRjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7NDQgNTk5Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VHJhbnNwb3J0ICZhbXA7IFByw6lwYXJhdGlvbjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MiAyOTUmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUYXhlIEFDOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsxMDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUb3RhbCZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDs0NiA5OTQmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jz48L2k+CiAgICA8L2Rpdj4KICAgIDwhLS0gQ0xPU0UgTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KCQkJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJblN0b2NrTGluayIgaGlkZGVuPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBkYXRhLXR5cGU9ImludmRhdGEiIGRhdGEtbWFrZT0iRm9yZCIgZGF0YS1tb2RlbD0iRXNjYXBlIEh5YnJpZCIgZGF0YS15ZWFyPSIyMDI2IiBkYXRhLXN0eWxlaWRzPSI0Nzg4MzEsNDc4ODMzLDQ3ODgzMCIgZGF0YS1oeWJyaWQ9IjEiPgoJPC9kaXY+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJbWFnZUNvbnRhaW5lciBmbGV4LWNlbnRlciBhbGlnbi1jZW50ZXIgIj4KCQkJCTxhIHRpdGxlPSJGb3JkIEVzY2FwZSBIeWJyaWRlIDIwMjYiIGhyZWY9Ij9wYXRoPS9uZXVmcy9Gb3JkLUVzY2FwZV9IeWJyaWQtMjAyNi5odG1sIj4KCQkJCQk8aW1nIGFsdD0iRm9yZCBFc2NhcGUgSHlicmlkZSAyMDI2IiBib3JkZXI9IjAiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL2ZyL0ZvcmQvRXNjYXBlX0h5YnJpZC8yMDI2LzQ3ODgzMC9CbHVlL3Byb2ZpbGUud2VicCIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPgoJCQkJPC9hPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyRm9vdGVyQ29udGFpbmVyIHN0YWNrLWxjIC0tcy05Ij4KCQkJCQk8ZGl2IGNsYXNzPSJjYXJQYXltZW50V3JhcHBlciI+CgkJCTxkaXYgY2xhc3M9ImNvbnRlbnQtc2tlbGV0b24gaHRtbC1ibG9jayIgZGF0YS1ibG9jaz0icGF5bWVudEJsb2NrIiBkYXRhLXR5cGU9ImJsb2NrIiBkYXRhLXNvdXJjZT0ic2VydmVyIiBkYXRhLWNhbGxiYWNrPSJwYXltZW50Q2FsY0Jsb2NrIj4KCQkKCTxpbnB1dCBuYW1lPSJibG9jay1kYXRhIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSJ7JnF1b3Q7c3R5bGVpZCZxdW90OzomcXVvdDs0Nzg4MzEmcXVvdDssJnF1b3Q7dGl0bGUmcXVvdDs6JnF1b3Q7Rm9yZCBFc2NhcGUgSHlicmlkZSAyMDI2JnF1b3Q7LCZxdW90O2hyZWYmcXVvdDs6JnF1b3Q7XC9uZXVmc1wvRm9yZC1Fc2NhcGVfSHlicmlkLTIwMjYuaHRtbCZxdW90OywmcXVvdDtsaW5rc3R5bGUmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O2xpbmtjbGFzcyZxdW90OzomcXVvdDsmcXVvdDssJnF1b3Q7Y29udGFpbmVyY2xhc3MmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O3Byb21vdGV4dCZxdW90OzomcXVvdDtEXHUwMGU5Y291dnJleiBsJ29mZnJlISZxdW90O30iPgoJPC9kaXY+Cgk8L2Rpdj4KCQkJCQoJCQk8L2Rpdj4KCQk8L2Rpdj4KCTwvZGl2Pgk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVPdXRlckJveCAgcmViYXRlQm9yZGVyQ29sb3IiIGlkPSJmYnhfaHlicmlkXzIiPgoJCQoJCTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZUlubmVyQm94IiBpZD0iIj4KCQkJPGRpdiBjbGFzcz0iZDJjLWZhdnMtdHJpZ2dlci13cmFwcGVyIGQyZmF2LTAxIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9IkVzY2FwZSBIeWJyaWQiIGRhdGEteWVhcj0iMjAyNSIgZGF0YS10cmltPSIiIGRhdGEtY2FyaWQ9IiI+PC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhclRpdGxlQ29udGFpbmVyIj4KCQkJCTxhIHRpdGxlPSJGb3JkIEVzY2FwZSBIeWJyaWRlIDIwMjUiIGhyZWY9Ij9wYXRoPS9uZXVmcy9Gb3JkLUVzY2FwZV9IeWJyaWQtMjAyNS5odG1sIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9IkVzY2FwZSBIeWJyaWRlIDIwMjUiPgoJCQkJCTxoMz4KCQkJCQkJPHNwYW4gY2xhc3M9InNwYW5DYXJNYWtlICI+Rm9yZDwvc3Bhbj48YnI+CgkJCQkJCTxzcGFuIGNsYXNzPSJtb2RlbE5hbWUgc3Bhbk1vZGVsTmFtZSI+RXNjYXBlIEh5YnJpZGUgMjAyNTwvc3Bhbj4KCQkJCQk8L2gzPgoJCQkJPC9hPgoJCQkJICAgIDwhLS0gT1BFTiBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgogICAgPGRpdiBjbGFzcz0iZGl2TmV3Q2FyU3RhcnRQcmljZSI+CiAgICAgICAgw6AgcGFydGlyIGRlCiAgICAgICAgPHNwYW4gY2xhc3M9IiI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjQ2IDM0NDwvc3Bhbj48L3NwYW4+CiAgICAgICAgPGkgc3R5bGU9ImNvbG9yOiMwMDA7Zm9udC1zaXplOjIwcHg7IiBjbGFzcz0iY2FyUHJpY2VJbml0aWFsVG9vbFRpcEljb24gZmFsIGZhLWluZm8tY2lyY2xlIGJsYWNrQ29sb3JCb2xkIiBkYXRhLXRvb2x0aXA9JyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7UERTRjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7NDMgOTQ5Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VHJhbnNwb3J0ICZhbXA7IFByw6lwYXJhdGlvbjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MiAyOTUmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUYXhlIEFDOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsxMDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUb3RhbCZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDs0NiAzNDQmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jz48L2k+CiAgICA8L2Rpdj4KICAgIDwhLS0gQ0xPU0UgTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT48IS0tIE9QRU4gTkVXIENBUiBQUk9NTyBQUklDRSAoMjc2KS0tPjxkaXYgY2xhc3M9ImRpdk5ld0NhclByb21vUHJpY2UiPmVuIHJhYmFpcyDDoCA8c3BhbiBjbGFzcz0ic3RyaWtlLXByaWNlIiBzdHlsZT0iY29sb3I6ICNlYjAwMDA7Ij4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+NDEgODQ0PC9zcGFuPjwvc3Bhbj48L2Rpdj48IS0tIENMT1NFIE5FVyBDQVIgUFJPTU8gUFJJQ0UgKDI4MyktLT4KCQkJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJblN0b2NrTGluayIgaGlkZGVuPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBkYXRhLXR5cGU9ImludmRhdGEiIGRhdGEtbWFrZT0iRm9yZCIgZGF0YS1tb2RlbD0iRXNjYXBlIEh5YnJpZCIgZGF0YS15ZWFyPSIyMDI1IiBkYXRhLXN0eWxlaWRzPSI0NjEyMDksNDYxMjExLDQ2MTIxMCIgZGF0YS1oeWJyaWQ9IjEiPgoJPC9kaXY+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJbWFnZUNvbnRhaW5lciBmbGV4LWNlbnRlciBhbGlnbi1jZW50ZXIgIj4KCQkJCTxhIHRpdGxlPSJGb3JkIEVzY2FwZSBIeWJyaWRlIDIwMjUiIGhyZWY9Ij9wYXRoPS9uZXVmcy9Gb3JkLUVzY2FwZV9IeWJyaWQtMjAyNS5odG1sIj4KCQkJCQk8aW1nIGFsdD0iRm9yZCBFc2NhcGUgSHlicmlkZSAyMDI1IiBib3JkZXI9IjAiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL2ZyL0ZvcmQvRXNjYXBlX0h5YnJpZC8yMDI1LzQ2MTIxMC9CbHVlL3Byb2ZpbGUud2VicCIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPgoJCQkJPC9hPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyRm9vdGVyQ29udGFpbmVyIHN0YWNrLWxjIC0tcy05Ij4KCQkJCQk8ZGl2IGNsYXNzPSJjYXJQYXltZW50V3JhcHBlciI+CgkJCTxkaXYgY2xhc3M9ImNvbnRlbnQtc2tlbGV0b24gaHRtbC1ibG9jayIgZGF0YS1ibG9jaz0icGF5bWVudEJsb2NrIiBkYXRhLXR5cGU9ImJsb2NrIiBkYXRhLXNvdXJjZT0ic2VydmVyIiBkYXRhLWNhbGxiYWNrPSJwYXltZW50Q2FsY0Jsb2NrIj4KCQkKCTxpbnB1dCBuYW1lPSJibG9jay1kYXRhIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSJ7JnF1b3Q7c3R5bGVpZCZxdW90OzomcXVvdDs0NjEyMDkmcXVvdDssJnF1b3Q7dGl0bGUmcXVvdDs6JnF1b3Q7Rm9yZCBFc2NhcGUgSHlicmlkZSAyMDI1JnF1b3Q7LCZxdW90O2hyZWYmcXVvdDs6JnF1b3Q7XC9uZXVmc1wvRm9yZC1Fc2NhcGVfSHlicmlkLTIwMjUuaHRtbCZxdW90OywmcXVvdDtsaW5rc3R5bGUmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O2xpbmtjbGFzcyZxdW90OzomcXVvdDsmcXVvdDssJnF1b3Q7Y29udGFpbmVyY2xhc3MmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O3Byb21vdGV4dCZxdW90OzomcXVvdDtEXHUwMGU5Y291dnJleiBsJ29mZnJlISZxdW90O30iPgoJPC9kaXY+Cgk8L2Rpdj4KCQkJCQoJCQk8L2Rpdj4KCQk8L2Rpdj4KCTwvZGl2Pgk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVPdXRlckJveCAgcmViYXRlQm9yZGVyQ29sb3IiIGlkPSJmYnhfaHlicmlkXzMiPgoJCQoJCTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZUlubmVyQm94IiBpZD0iIj4KCQkJPGRpdiBjbGFzcz0iZDJjLWZhdnMtdHJpZ2dlci13cmFwcGVyIGQyZmF2LTAxIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9Ik1hdmVyaWNrIEh5YnJpZCIgZGF0YS15ZWFyPSIyMDI2IiBkYXRhLXRyaW09IiIgZGF0YS1jYXJpZD0iIj48L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyVGl0bGVDb250YWluZXIiPgoJCQkJPGEgdGl0bGU9IkZvcmQgTWF2ZXJpY2sgSHlicmlkZSAyMDI2IiBocmVmPSI\/cGF0aD0vbmV1ZnMvRm9yZC1NYXZlcmlja19IeWJyaWQtMjAyNi5odG1sIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9Ik1hdmVyaWNrIEh5YnJpZGUgMjAyNiI+CgkJCQkJPGgzPgoJCQkJCQk8c3BhbiBjbGFzcz0ic3BhbkNhck1ha2UgIj5Gb3JkPC9zcGFuPjxicj4KCQkJCQkJPHNwYW4gY2xhc3M9Im1vZGVsTmFtZSBzcGFuTW9kZWxOYW1lIj5NYXZlcmljayBIeWJyaWRlIDIwMjY8L3NwYW4+CgkJCQkJPC9oMz4KCQkJCTwvYT4KCQkJCSAgICA8IS0tIE9QRU4gTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KICAgIDxkaXYgY2xhc3M9ImRpdk5ld0NhclN0YXJ0UHJpY2UiPgogICAgICAgIMOgIHBhcnRpciBkZQogICAgICAgIDxzcGFuIGNsYXNzPSIiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj4zOCAwOTU8L3NwYW4+PC9zcGFuPgogICAgICAgIDxpIHN0eWxlPSJjb2xvcjojMDAwO2ZvbnQtc2l6ZToyMHB4OyIgY2xhc3M9ImNhclByaWNlSW5pdGlhbFRvb2xUaXBJY29uIGZhbCBmYS1pbmZvLWNpcmNsZSBibGFja0NvbG9yQm9sZCIgZGF0YS10b29sdGlwPScmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1BEU0Y6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzM1IDYwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RyYW5zcG9ydCAmYW1wOyBQcsOpcGFyYXRpb246Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzIgMzk1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VGF4ZSBBQzombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MTAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VG90YWwmbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MzggMDk1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0Oyc+PC9pPgogICAgPC9kaXY+CiAgICA8IS0tIENMT1NFIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CgkJCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW5TdG9ja0xpbmsiIGhpZGRlbj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgZGF0YS10eXBlPSJpbnZkYXRhIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9Ik1hdmVyaWNrIEh5YnJpZCIgZGF0YS15ZWFyPSIyMDI2IiBkYXRhLXN0eWxlaWRzPSI0ODExNjksNDgxMTcwLDQ4MTE3MSw0ODExNzIsNDgxMTc0IiBkYXRhLWh5YnJpZD0iMSI+Cgk8L2Rpdj4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckltYWdlQ29udGFpbmVyIGZsZXgtY2VudGVyIGFsaWduLWNlbnRlciAiPgoJCQkJPGEgdGl0bGU9IkZvcmQgTWF2ZXJpY2sgSHlicmlkZSAyMDI2IiBocmVmPSI\/cGF0aD0vbmV1ZnMvRm9yZC1NYXZlcmlja19IeWJyaWQtMjAyNi5odG1sIj4KCQkJCQk8aW1nIGFsdD0iRm9yZCBNYXZlcmljayBIeWJyaWRlIDIwMjYiIGJvcmRlcj0iMCIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvZnIvRm9yZC9NYXZlcmlja19IeWJyaWQvMjAyNi80ODExNzQvQmx1ZS9wcm9maWxlLndlYnAiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj4KCQkJCTwvYT4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckZvb3RlckNvbnRhaW5lciBzdGFjay1sYyAtLXMtOSI+CgkJCQkJPGRpdiBjbGFzcz0iY2FyUGF5bWVudFdyYXBwZXIiPgoJCQk8ZGl2IGNsYXNzPSJjb250ZW50LXNrZWxldG9uIGh0bWwtYmxvY2siIGRhdGEtYmxvY2s9InBheW1lbnRCbG9jayIgZGF0YS10eXBlPSJibG9jayIgZGF0YS1zb3VyY2U9InNlcnZlciIgZGF0YS1jYWxsYmFjaz0icGF5bWVudENhbGNCbG9jayI+CgkJCgk8aW5wdXQgbmFtZT0iYmxvY2stZGF0YSIgdHlwZT0iaGlkZGVuIiB2YWx1ZT0ieyZxdW90O3N0eWxlaWQmcXVvdDs6JnF1b3Q7NDgxMTY5JnF1b3Q7LCZxdW90O3RpdGxlJnF1b3Q7OiZxdW90O0ZvcmQgTWF2ZXJpY2sgSHlicmlkZSAyMDI2JnF1b3Q7LCZxdW90O2hyZWYmcXVvdDs6JnF1b3Q7XC9uZXVmc1wvRm9yZC1NYXZlcmlja19IeWJyaWQtMjAyNi5odG1sJnF1b3Q7LCZxdW90O2xpbmtzdHlsZSZxdW90OzomcXVvdDsmcXVvdDssJnF1b3Q7bGlua2NsYXNzJnF1b3Q7OiZxdW90OyZxdW90OywmcXVvdDtjb250YWluZXJjbGFzcyZxdW90OzomcXVvdDsmcXVvdDssJnF1b3Q7cHJvbW90ZXh0JnF1b3Q7OiZxdW90O0RcdTAwZTljb3V2cmV6IGwnb2ZmcmUhJnF1b3Q7fSI+Cgk8L2Rpdj4KCTwvZGl2PgoJCQkJCgkJCTwvZGl2PgoJCTwvZGl2PgoJPC9kaXY+CTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZU91dGVyQm94ICByZWJhdGVCb3JkZXJDb2xvciIgaWQ9ImZieF9oeWJyaWRfNCI+CgkJCgkJPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlSW5uZXJCb3giIGlkPSIiPgoJCQk8ZGl2IGNsYXNzPSJkMmMtZmF2cy10cmlnZ2VyLXdyYXBwZXIgZDJmYXYtMDEiIGRhdGEtbWFrZT0iRm9yZCIgZGF0YS1tb2RlbD0iTWF2ZXJpY2sgSHlicmlkIiBkYXRhLXllYXI9IjIwMjUiIGRhdGEtdHJpbT0iIiBkYXRhLWNhcmlkPSIiPjwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJUaXRsZUNvbnRhaW5lciI+CgkJCQk8YSB0aXRsZT0iRm9yZCBNYXZlcmljayBIeWJyaWRlIDIwMjUiIGhyZWY9Ij9wYXRoPS9uZXVmcy9Gb3JkLU1hdmVyaWNrX0h5YnJpZC0yMDI1Lmh0bWwiIGRhdGEtbWFrZT0iRm9yZCIgZGF0YS1tb2RlbD0iTWF2ZXJpY2sgSHlicmlkZSAyMDI1Ij4KCQkJCQk8aDM+CgkJCQkJCTxzcGFuIGNsYXNzPSJzcGFuQ2FyTWFrZSAiPkZvcmQ8L3NwYW4+PGJyPgoJCQkJCQk8c3BhbiBjbGFzcz0ibW9kZWxOYW1lIHNwYW5Nb2RlbE5hbWUiPk1hdmVyaWNrIEh5YnJpZGUgMjAyNTwvc3Bhbj4KCQkJCQk8L2gzPgoJCQkJPC9hPgoJCQkJICAgIDwhLS0gT1BFTiBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgogICAgPGRpdiBjbGFzcz0iZGl2TmV3Q2FyU3RhcnRQcmljZSI+CiAgICAgICAgw6AgcGFydGlyIGRlCiAgICAgICAgPHNwYW4gY2xhc3M9IiI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjM2IDk5NTwvc3Bhbj48L3NwYW4+CiAgICAgICAgPGkgc3R5bGU9ImNvbG9yOiMwMDA7Zm9udC1zaXplOjIwcHg7IiBjbGFzcz0iY2FyUHJpY2VJbml0aWFsVG9vbFRpcEljb24gZmFsIGZhLWluZm8tY2lyY2xlIGJsYWNrQ29sb3JCb2xkIiBkYXRhLXRvb2x0aXA9JyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7UERTRjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MzQgNjAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VHJhbnNwb3J0ICZhbXA7IFByw6lwYXJhdGlvbjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MiAyOTUmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUYXhlIEFDOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsxMDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUb3RhbCZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDszNiA5OTUmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jz48L2k+CiAgICA8L2Rpdj4KICAgIDwhLS0gQ0xPU0UgTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KCQkJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJblN0b2NrTGluayIgaGlkZGVuPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBkYXRhLXR5cGU9ImludmRhdGEiIGRhdGEtbWFrZT0iRm9yZCIgZGF0YS1tb2RlbD0iTWF2ZXJpY2sgSHlicmlkIiBkYXRhLXllYXI9IjIwMjUiIGRhdGEtc3R5bGVpZHM9IjQ2MjgzMSw0NjI4MzIsNDYyODMzLDQ2MjgzNCw0NjI4MzUiIGRhdGEtaHlicmlkPSIxIj4KCTwvZGl2PgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW1hZ2VDb250YWluZXIgZmxleC1jZW50ZXIgYWxpZ24tY2VudGVyICI+CgkJCQk8YSB0aXRsZT0iRm9yZCBNYXZlcmljayBIeWJyaWRlIDIwMjUiIGhyZWY9Ij9wYXRoPS9uZXVmcy9Gb3JkLU1hdmVyaWNrX0h5YnJpZC0yMDI1Lmh0bWwiPgoJCQkJCTxpbWcgYWx0PSJGb3JkIE1hdmVyaWNrIEh5YnJpZGUgMjAyNSIgYm9yZGVyPSIwIiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9mci9Gb3JkL01hdmVyaWNrX0h5YnJpZC8yMDI1LzQ2MjgzNS9CbHVlL3Byb2ZpbGUud2VicCIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPgoJCQkJPC9hPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyRm9vdGVyQ29udGFpbmVyIHN0YWNrLWxjIC0tcy05Ij4KCQkJCQk8ZGl2IGNsYXNzPSJjYXJQYXltZW50V3JhcHBlciI+CgkJCTxkaXYgY2xhc3M9ImNvbnRlbnQtc2tlbGV0b24gaHRtbC1ibG9jayIgZGF0YS1ibG9jaz0icGF5bWVudEJsb2NrIiBkYXRhLXR5cGU9ImJsb2NrIiBkYXRhLXNvdXJjZT0ic2VydmVyIiBkYXRhLWNhbGxiYWNrPSJwYXltZW50Q2FsY0Jsb2NrIj4KCQkKCTxpbnB1dCBuYW1lPSJibG9jay1kYXRhIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSJ7JnF1b3Q7c3R5bGVpZCZxdW90OzomcXVvdDs0NjI4MzEmcXVvdDssJnF1b3Q7dGl0bGUmcXVvdDs6JnF1b3Q7Rm9yZCBNYXZlcmljayBIeWJyaWRlIDIwMjUmcXVvdDssJnF1b3Q7aHJlZiZxdW90OzomcXVvdDtcL25ldWZzXC9Gb3JkLU1hdmVyaWNrX0h5YnJpZC0yMDI1Lmh0bWwmcXVvdDssJnF1b3Q7bGlua3N0eWxlJnF1b3Q7OiZxdW90OyZxdW90OywmcXVvdDtsaW5rY2xhc3MmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O2NvbnRhaW5lcmNsYXNzJnF1b3Q7OiZxdW90OyZxdW90OywmcXVvdDtwcm9tb3RleHQmcXVvdDs6JnF1b3Q7RFx1MDBlOWNvdXZyZXogbCdvZmZyZSEmcXVvdDt9Ij4KCTwvZGl2PgoJPC9kaXY+CgkJCQkKCQkJPC9kaXY+CgkJPC9kaXY+Cgk8L2Rpdj48L2Rpdj48L2Rpdj48IS0tIENMT1NFIENBVEVHT1JZQk9YV1JBUFBFUiAoMjE5NCktLT48IS0tIE9QRU4gQ0FURUdPUllCT1hXUkFQUEVSICgyMTg2KSAtLT48ZGl2IGlkPSJjbGFzc3BoZXZfY29udGFpbmVyIiBjbGFzcz0iZGl2U3BhbiBkaXZTcGFuMTIgZGl2Q2F0ZWdvcnlCb3hXcmFwcGVyIiBzdGF0ZT0ib3BlbiIgbmJ2aXNpYmxlPSIxIj48aDIgY2xhc3M9ImRlZmF1bHQgaWNvbi1oZWFkaW5nIGZsZXgtYm94IGFsaWduLWNlbnRlciI+Cgk8c3BhbiBjbGFzcz0iZmEgZmEtY2hldnJvbi1yaWdodCIgYXJpYS1oaWRkZW49InRydWUiPjwvc3Bhbj4KCTxib3gtbGMgY2xhc3M9Ii1wdjAiPgoJCTxkaXYgY2xhc3M9Im1haW5UZXh0IC1ib2xkIj5IeWJyaWRlcyByZWNoYXJnZWFibGUgbmV1ZnMgRm9yZCAyMDI1ICZhbXA7IDIwMjY8L2Rpdj4KCQk8ZGl2IGNsYXNzPSJzZWNvbmRhcnlUZXh0Ij7DoCBHYXRpbmVhdSAocHLDqHMgZCdPdHRhd2EpPC9kaXY+Cgk8L2JveC1sYz4KPC9oMj48ZGl2IGNsYXNzPSJkaXZTcGFuIGRpdlNwYW4xMiBkaXZDYXJzQm94V3JhcHBlciBDTEFTU19waGV2Ij4JPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggIHJlYmF0ZUJvcmRlckNvbG9yIiBpZD0iZmJ4X3BoZXZfMSI+CgkJCTxkaXYgY2xhc3M9InJlYmF0ZVRhZyI+Cgk8c3BhbiBjbGFzcz0icmViYXRlVGV4dCI+cmFiYWlzIGp1c3F1J8OgPC9zcGFuPgoJPHNwYW4gY2xhc3M9InJlYmF0ZUFtb3VudCI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjIgNjA4PC9zcGFuPjwvc3Bhbj4KCTwvZGl2PgoJCTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZUlubmVyQm94IiBpZD0iIj4KCQkJPGRpdiBjbGFzcz0iZDJjLWZhdnMtdHJpZ2dlci13cmFwcGVyIGQyZmF2LTAxIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9IkVzY2FwZSBQSEVWIiBkYXRhLXllYXI9IjIwMjYiIGRhdGEtdHJpbT0iIiBkYXRhLWNhcmlkPSIiPjwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJUaXRsZUNvbnRhaW5lciI+CgkJCQk8YSB0aXRsZT0iRm9yZCBFc2NhcGUgVkhSIDIwMjYiIGhyZWY9Ij9wYXRoPS9uZXVmcy9Gb3JkLUVzY2FwZV9QSEVWLTIwMjYuaHRtbCIgZGF0YS1tYWtlPSJGb3JkIiBkYXRhLW1vZGVsPSJFc2NhcGUgVkhSIDIwMjYiPgoJCQkJCTxoMz4KCQkJCQkJPHNwYW4gY2xhc3M9InNwYW5DYXJNYWtlICI+Rm9yZDwvc3Bhbj48YnI+CgkJCQkJCTxzcGFuIGNsYXNzPSJtb2RlbE5hbWUgc3Bhbk1vZGVsTmFtZSI+RXNjYXBlIFZIUiAyMDI2PC9zcGFuPgoJCQkJCTwvaDM+CgkJCQk8L2E+CgkJCQkgICAgPCEtLSBPUEVOIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CiAgICA8ZGl2IGNsYXNzPSJkaXZOZXdDYXJTdGFydFByaWNlIj4KICAgICAgICDDoCBwYXJ0aXIgZGUKICAgICAgICA8c3BhbiBjbGFzcz0iIj4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+NDMgOTk0PC9zcGFuPjwvc3Bhbj4KICAgICAgICA8aSBzdHlsZT0iY29sb3I6IzAwMDtmb250LXNpemU6MjBweDsiIGNsYXNzPSJjYXJQcmljZUluaXRpYWxUb29sVGlwSWNvbiBmYWwgZmEtaW5mby1jaXJjbGUgYmxhY2tDb2xvckJvbGQiIGRhdGEtdG9vbHRpcD0nJmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtQRFNGOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDs0MSA1OTkmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUcmFuc3BvcnQgJmFtcDsgUHLDqXBhcmF0aW9uOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsyIDI5NSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RheGUgQUM6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzEwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RvdGFsJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzQzIDk5NCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsnPjwvaT4KICAgIDwvZGl2PgogICAgPCEtLSBDTE9TRSBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPjwhLS0gT1BFTiBORVcgQ0FSIFBST01PIFBSSUNFICgyNzYpLS0+PGRpdiBjbGFzcz0iZGl2TmV3Q2FyUHJvbW9QcmljZSI+ZW4gcmFiYWlzIMOgIDxzcGFuIGNsYXNzPSJzdHJpa2UtcHJpY2UiIHN0eWxlPSJjb2xvcjogI2ViMDAwMDsiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj4zOSA4ODY8L3NwYW4+PC9zcGFuPjwvZGl2PjwhLS0gQ0xPU0UgTkVXIENBUiBQUk9NTyBQUklDRSAoMjgzKS0tPgoJCQkJCTxkaXYgY2xhc3M9ImRpdkNhckluU3RvY2tMaW5rIiBoaWRkZW4+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGRhdGEtdHlwZT0iaW52ZGF0YSIgZGF0YS1tYWtlPSJGb3JkIiBkYXRhLW1vZGVsPSJFc2NhcGUgUEhFViIgZGF0YS15ZWFyPSIyMDI2IiBkYXRhLXN0eWxlaWRzPSI0Nzg4MzYiIGRhdGEtaHlicmlkPSIxIj4KCTwvZGl2PgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW1hZ2VDb250YWluZXIgZmxleC1jZW50ZXIgYWxpZ24tY2VudGVyICI+CgkJCQk8YSB0aXRsZT0iRm9yZCBFc2NhcGUgVkhSIDIwMjYiIGhyZWY9Ij9wYXRoPS9uZXVmcy9Gb3JkLUVzY2FwZV9QSEVWLTIwMjYuaHRtbCI+CgkJCQkJPGltZyBhbHQ9IkZvcmQgRXNjYXBlIFZIUiAyMDI2IiBib3JkZXI9IjAiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL2ZyL0ZvcmQvRXNjYXBlX1BIRVYvMjAyNi80Nzg4MzYvQmx1ZS9wcm9maWxlLndlYnAiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj4KCQkJCTwvYT4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckZvb3RlckNvbnRhaW5lciBzdGFjay1sYyAtLXMtOSI+CgkJCQkJPGRpdiBjbGFzcz0iY2FyUGF5bWVudFdyYXBwZXIiPgoJCQk8ZGl2IGNsYXNzPSJjb250ZW50LXNrZWxldG9uIGh0bWwtYmxvY2siIGRhdGEtYmxvY2s9InBheW1lbnRCbG9jayIgZGF0YS10eXBlPSJibG9jayIgZGF0YS1zb3VyY2U9InNlcnZlciIgZGF0YS1jYWxsYmFjaz0icGF5bWVudENhbGNCbG9jayI+CgkJCgk8aW5wdXQgbmFtZT0iYmxvY2stZGF0YSIgdHlwZT0iaGlkZGVuIiB2YWx1ZT0ieyZxdW90O3N0eWxlaWQmcXVvdDs6JnF1b3Q7NDc4ODM2JnF1b3Q7LCZxdW90O3RpdGxlJnF1b3Q7OiZxdW90O0ZvcmQgRXNjYXBlIFZIUiAyMDI2JnF1b3Q7LCZxdW90O2hyZWYmcXVvdDs6JnF1b3Q7XC9uZXVmc1wvRm9yZC1Fc2NhcGVfUEhFVi0yMDI2Lmh0bWwmcXVvdDssJnF1b3Q7bGlua3N0eWxlJnF1b3Q7OiZxdW90OyZxdW90OywmcXVvdDtsaW5rY2xhc3MmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O2NvbnRhaW5lcmNsYXNzJnF1b3Q7OiZxdW90OyZxdW90OywmcXVvdDtwcm9tb3RleHQmcXVvdDs6JnF1b3Q7RFx1MDBlOWNvdXZyZXogbCdvZmZyZSEmcXVvdDt9Ij4KCTwvZGl2PgoJPC9kaXY+CgkJCQkKCQkJPC9kaXY+CgkJPC9kaXY+Cgk8L2Rpdj4JPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggIHJlYmF0ZUJvcmRlckNvbG9yIiBpZD0iZmJ4X3BoZXZfMiI+CgkJCgkJPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlSW5uZXJCb3giIGlkPSIiPgoJCQk8ZGl2IGNsYXNzPSJkMmMtZmF2cy10cmlnZ2VyLXdyYXBwZXIgZDJmYXYtMDEiIGRhdGEtbWFrZT0iRm9yZCIgZGF0YS1tb2RlbD0iRXNjYXBlIFBIRVYiIGRhdGEteWVhcj0iMjAyNSIgZGF0YS10cmltPSIiIGRhdGEtY2FyaWQ9IiI+PC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhclRpdGxlQ29udGFpbmVyIj4KCQkJCTxhIHRpdGxlPSJGb3JkIEVzY2FwZSBWSFIgMjAyNSIgaHJlZj0iP3BhdGg9L25ldWZzL0ZvcmQtRXNjYXBlX1BIRVYtMjAyNS5odG1sIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9IkVzY2FwZSBWSFIgMjAyNSI+CgkJCQkJPGgzPgoJCQkJCQk8c3BhbiBjbGFzcz0ic3BhbkNhck1ha2UgIj5Gb3JkPC9zcGFuPjxicj4KCQkJCQkJPHNwYW4gY2xhc3M9Im1vZGVsTmFtZSBzcGFuTW9kZWxOYW1lIj5Fc2NhcGUgVkhSIDIwMjU8L3NwYW4+CgkJCQkJPC9oMz4KCQkJCTwvYT4KCQkJCSAgICA8IS0tIE9QRU4gTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KICAgIDxkaXYgY2xhc3M9ImRpdk5ld0NhclN0YXJ0UHJpY2UiPgogICAgICAgIMOgIHBhcnRpciBkZQogICAgICAgIDxzcGFuIGNsYXNzPSIiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj40MyA4OTQ8L3NwYW4+PC9zcGFuPgogICAgICAgIDxpIHN0eWxlPSJjb2xvcjojMDAwO2ZvbnQtc2l6ZToyMHB4OyIgY2xhc3M9ImNhclByaWNlSW5pdGlhbFRvb2xUaXBJY29uIGZhbCBmYS1pbmZvLWNpcmNsZSBibGFja0NvbG9yQm9sZCIgZGF0YS10b29sdGlwPScmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1BEU0Y6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzQxIDQ5OSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RyYW5zcG9ydCAmYW1wOyBQcsOpcGFyYXRpb246Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzIgMjk1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VGF4ZSBBQzombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MTAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VG90YWwmbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7NDMgODk0Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0Oyc+PC9pPgogICAgPC9kaXY+CiAgICA8IS0tIENMT1NFIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+PCEtLSBPUEVOIE5FVyBDQVIgUFJPTU8gUFJJQ0UgKDI3NiktLT48ZGl2IGNsYXNzPSJkaXZOZXdDYXJQcm9tb1ByaWNlIj5lbiByYWJhaXMgw6AgPHNwYW4gY2xhc3M9InN0cmlrZS1wcmljZSIgc3R5bGU9ImNvbG9yOiAjZWIwMDAwOyI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjM5IDM5NDwvc3Bhbj48L3NwYW4+PC9kaXY+PCEtLSBDTE9TRSBORVcgQ0FSIFBST01PIFBSSUNFICgyODMpLS0+CgkJCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW5TdG9ja0xpbmsiIGhpZGRlbj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgZGF0YS10eXBlPSJpbnZkYXRhIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9IkVzY2FwZSBQSEVWIiBkYXRhLXllYXI9IjIwMjUiIGRhdGEtc3R5bGVpZHM9IjQ2MTIwNiIgZGF0YS1oeWJyaWQ9IjEiPgoJPC9kaXY+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJbWFnZUNvbnRhaW5lciBmbGV4LWNlbnRlciBhbGlnbi1jZW50ZXIgIj4KCQkJCTxhIHRpdGxlPSJGb3JkIEVzY2FwZSBWSFIgMjAyNSIgaHJlZj0iP3BhdGg9L25ldWZzL0ZvcmQtRXNjYXBlX1BIRVYtMjAyNS5odG1sIj4KCQkJCQk8aW1nIGFsdD0iRm9yZCBFc2NhcGUgVkhSIDIwMjUiIGJvcmRlcj0iMCIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvZnIvRm9yZC9Fc2NhcGVfUEhFVi8yMDI1LzQ2MTIwNi9CbHVlL3Byb2ZpbGUud2VicCIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPgoJCQkJPC9hPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyRm9vdGVyQ29udGFpbmVyIHN0YWNrLWxjIC0tcy05Ij4KCQkJCQk8ZGl2IGNsYXNzPSJjYXJQYXltZW50V3JhcHBlciI+CgkJCTxkaXYgY2xhc3M9ImNvbnRlbnQtc2tlbGV0b24gaHRtbC1ibG9jayIgZGF0YS1ibG9jaz0icGF5bWVudEJsb2NrIiBkYXRhLXR5cGU9ImJsb2NrIiBkYXRhLXNvdXJjZT0ic2VydmVyIiBkYXRhLWNhbGxiYWNrPSJwYXltZW50Q2FsY0Jsb2NrIj4KCQkKCTxpbnB1dCBuYW1lPSJibG9jay1kYXRhIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSJ7JnF1b3Q7c3R5bGVpZCZxdW90OzomcXVvdDs0NjEyMDYmcXVvdDssJnF1b3Q7dGl0bGUmcXVvdDs6JnF1b3Q7Rm9yZCBFc2NhcGUgVkhSIDIwMjUmcXVvdDssJnF1b3Q7aHJlZiZxdW90OzomcXVvdDtcL25ldWZzXC9Gb3JkLUVzY2FwZV9QSEVWLTIwMjUuaHRtbCZxdW90OywmcXVvdDtsaW5rc3R5bGUmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O2xpbmtjbGFzcyZxdW90OzomcXVvdDsmcXVvdDssJnF1b3Q7Y29udGFpbmVyY2xhc3MmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O3Byb21vdGV4dCZxdW90OzomcXVvdDtEXHUwMGU5Y291dnJleiBsJ29mZnJlISZxdW90O30iPgoJPC9kaXY+Cgk8L2Rpdj4KCQkJCQoJCQk8L2Rpdj4KCQk8L2Rpdj4KCTwvZGl2PjwvZGl2PjwvZGl2PjwhLS0gQ0xPU0UgQ0FURUdPUllCT1hXUkFQUEVSICgyMTk0KS0tPjwhLS0gT1BFTiBDQVRFR09SWUJPWFdSQVBQRVIgKDIxODYpIC0tPjxkaXYgaWQ9ImNsYXNzZWxlY3RyaWNfY29udGFpbmVyIiBjbGFzcz0iZGl2U3BhbiBkaXZTcGFuMTIgZGl2Q2F0ZWdvcnlCb3hXcmFwcGVyIiBzdGF0ZT0ib3BlbiIgbmJ2aXNpYmxlPSIxIj48aDIgY2xhc3M9ImRlZmF1bHQgaWNvbi1oZWFkaW5nIGZsZXgtYm94IGFsaWduLWNlbnRlciI+Cgk8c3BhbiBjbGFzcz0iZmEgZmEtY2hldnJvbi1yaWdodCIgYXJpYS1oaWRkZW49InRydWUiPjwvc3Bhbj4KCTxib3gtbGMgY2xhc3M9Ii1wdjAiPgoJCTxkaXYgY2xhc3M9Im1haW5UZXh0IC1ib2xkIj7DiWxlY3RyaXF1ZXMgbmV1dmVzIEZvcmQgMjAyNSAmYW1wOyAyMDI2PC9kaXY+CgkJPGRpdiBjbGFzcz0ic2Vjb25kYXJ5VGV4dCI+w6AgR2F0aW5lYXUgKHByw6hzIGQnT3R0YXdhKTwvZGl2PgoJPC9ib3gtbGM+CjwvaDI+PGRpdiBjbGFzcz0iZGl2U3BhbiBkaXZTcGFuMTIgZGl2Q2Fyc0JveFdyYXBwZXIgQ0xBU1NfZWxlY3RyaWMiPgk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVPdXRlckJveCAgcmViYXRlQm9yZGVyQ29sb3IiIGlkPSJmYnhfZWxlY3RyaWNfMSI+CgkJCgkJPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlSW5uZXJCb3giIGlkPSIiPgoJCQk8ZGl2IGNsYXNzPSJkMmMtZmF2cy10cmlnZ2VyLXdyYXBwZXIgZDJmYXYtMDEiIGRhdGEtbWFrZT0iRm9yZCIgZGF0YS1tb2RlbD0iRi0xNTAgTGlnaHRuaW5nIiBkYXRhLXllYXI9IjIwMjYiIGRhdGEtdHJpbT0iIiBkYXRhLWNhcmlkPSIiPjwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJUaXRsZUNvbnRhaW5lciI+CgkJCQk8YSB0aXRsZT0iRm9yZCBGLTE1MCBMaWdodG5pbmcgMjAyNiIgaHJlZj0iP3BhdGg9L25ldWZzL0ZvcmQtRl8xNTBfTGlnaHRuaW5nLTIwMjYuaHRtbCIgZGF0YS1tYWtlPSJGb3JkIiBkYXRhLW1vZGVsPSJGLTE1MCBMaWdodG5pbmcgMjAyNiI+CgkJCQkJPGgzPgoJCQkJCQk8c3BhbiBjbGFzcz0ic3BhbkNhck1ha2UgIj5Gb3JkPC9zcGFuPjxicj4KCQkJCQkJPHNwYW4gY2xhc3M9Im1vZGVsTmFtZSBzcGFuTW9kZWxOYW1lIj5GLTE1MCBMaWdodG5pbmcgMjAyNjwvc3Bhbj4KCQkJCQk8L2gzPgoJCQkJPC9hPgoJCQkJICAgIDwhLS0gT1BFTiBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgogICAgPGRpdiBjbGFzcz0iZGl2TmV3Q2FyU3RhcnRQcmljZSI+CiAgICAgICAgw6AgcGFydGlyIGRlCiAgICAgICAgPHNwYW4gY2xhc3M9IiI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjczIDg5MDwvc3Bhbj48L3NwYW4+CiAgICAgICAgPGkgc3R5bGU9ImNvbG9yOiMwMDA7Zm9udC1zaXplOjIwcHg7IiBjbGFzcz0iY2FyUHJpY2VJbml0aWFsVG9vbFRpcEljb24gZmFsIGZhLWluZm8tY2lyY2xlIGJsYWNrQ29sb3JCb2xkIiBkYXRhLXRvb2x0aXA9JyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7UERTRjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7NzAgOTk1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VHJhbnNwb3J0ICZhbXA7IFByw6lwYXJhdGlvbjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MiA3OTUmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUYXhlIEFDOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsxMDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUb3RhbCZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDs3MyA4OTAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jz48L2k+CiAgICA8L2Rpdj4KICAgIDwhLS0gQ0xPU0UgTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KCQkJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJblN0b2NrTGluayIgaGlkZGVuPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBkYXRhLXR5cGU9ImludmRhdGEiIGRhdGEtbWFrZT0iRm9yZCIgZGF0YS1tb2RlbD0iRi0xNTAgTGlnaHRuaW5nIiBkYXRhLXllYXI9IjIwMjYiIGRhdGEtc3R5bGVpZHM9IjQ4MTg4Myw0ODE4ODcsNDgxODg0LDQ4MTg4NSw0ODE4ODYiIGRhdGEtaHlicmlkPSIwIj4KCTwvZGl2PgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW1hZ2VDb250YWluZXIgZmxleC1jZW50ZXIgYWxpZ24tY2VudGVyICI+CgkJCQk8YSB0aXRsZT0iRm9yZCBGLTE1MCBMaWdodG5pbmcgMjAyNiIgaHJlZj0iP3BhdGg9L25ldWZzL0ZvcmQtRl8xNTBfTGlnaHRuaW5nLTIwMjYuaHRtbCI+CgkJCQkJPGltZyBhbHQ9IkZvcmQgRi0xNTAgTGlnaHRuaW5nIDIwMjYiIGJvcmRlcj0iMCIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvZnIvRm9yZC9GXzE1MF9MaWdodG5pbmcvMjAyNi80ODE4ODYvQmx1ZS9wcm9maWxlLndlYnAiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj4KCQkJCTwvYT4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckZvb3RlckNvbnRhaW5lciBzdGFjay1sYyAtLXMtOSI+CgkJCQkJPGRpdiBjbGFzcz0iY2FyUGF5bWVudFdyYXBwZXIiPgoJCQk8ZGl2IGNsYXNzPSJjb250ZW50LXNrZWxldG9uIGh0bWwtYmxvY2siIGRhdGEtYmxvY2s9InBheW1lbnRCbG9jayIgZGF0YS10eXBlPSJibG9jayIgZGF0YS1zb3VyY2U9InNlcnZlciIgZGF0YS1jYWxsYmFjaz0icGF5bWVudENhbGNCbG9jayI+CgkJCgk8aW5wdXQgbmFtZT0iYmxvY2stZGF0YSIgdHlwZT0iaGlkZGVuIiB2YWx1ZT0ieyZxdW90O3N0eWxlaWQmcXVvdDs6JnF1b3Q7NDgxODgzJnF1b3Q7LCZxdW90O3RpdGxlJnF1b3Q7OiZxdW90O0ZvcmQgRi0xNTAgTGlnaHRuaW5nIDIwMjYmcXVvdDssJnF1b3Q7aHJlZiZxdW90OzomcXVvdDtcL25ldWZzXC9Gb3JkLUZfMTUwX0xpZ2h0bmluZy0yMDI2Lmh0bWwmcXVvdDssJnF1b3Q7bGlua3N0eWxlJnF1b3Q7OiZxdW90OyZxdW90OywmcXVvdDtsaW5rY2xhc3MmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O2NvbnRhaW5lcmNsYXNzJnF1b3Q7OiZxdW90OyZxdW90OywmcXVvdDtwcm9tb3RleHQmcXVvdDs6JnF1b3Q7RFx1MDBlOWNvdXZyZXogbCdvZmZyZSEmcXVvdDt9Ij4KCTwvZGl2PgoJPC9kaXY+CgkJCQkKCQkJPC9kaXY+CgkJPC9kaXY+Cgk8L2Rpdj4JPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggIHJlYmF0ZUJvcmRlckNvbG9yIiBpZD0iZmJ4X2VsZWN0cmljXzIiPgoJCQk8ZGl2IGNsYXNzPSJyZWJhdGVUYWciPgoJPHNwYW4gY2xhc3M9InJlYmF0ZVRleHQiPnJhYmFpcyBqdXNxdSfDoDwvc3Bhbj4KCTxzcGFuIGNsYXNzPSJyZWJhdGVBbW91bnQiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj40IDM0ODwvc3Bhbj48L3NwYW4+Cgk8L2Rpdj4KCQk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVJbm5lckJveCIgaWQ9IiI+CgkJCTxkaXYgY2xhc3M9ImQyYy1mYXZzLXRyaWdnZXItd3JhcHBlciBkMmZhdi0wMSIgZGF0YS1tYWtlPSJGb3JkIiBkYXRhLW1vZGVsPSJGLTE1MCBMaWdodG5pbmciIGRhdGEteWVhcj0iMjAyNSIgZGF0YS10cmltPSIiIGRhdGEtY2FyaWQ9IiI+PC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhclRpdGxlQ29udGFpbmVyIj4KCQkJCTxhIHRpdGxlPSJGb3JkIEYtMTUwIExpZ2h0bmluZyAyMDI1IiBocmVmPSI\/cGF0aD0vbmV1ZnMvRm9yZC1GXzE1MF9MaWdodG5pbmctMjAyNS5odG1sIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9IkYtMTUwIExpZ2h0bmluZyAyMDI1Ij4KCQkJCQk8aDM+CgkJCQkJCTxzcGFuIGNsYXNzPSJzcGFuQ2FyTWFrZSAiPkZvcmQ8L3NwYW4+PGJyPgoJCQkJCQk8c3BhbiBjbGFzcz0ibW9kZWxOYW1lIHNwYW5Nb2RlbE5hbWUiPkYtMTUwIExpZ2h0bmluZyAyMDI1PC9zcGFuPgoJCQkJCTwvaDM+CgkJCQk8L2E+CgkJCQkgICAgPCEtLSBPUEVOIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CiAgICA8ZGl2IGNsYXNzPSJkaXZOZXdDYXJTdGFydFByaWNlIj4KICAgICAgICDDoCBwYXJ0aXIgZGUKICAgICAgICA8c3BhbiBjbGFzcz0iIj4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+NjIgODkwPC9zcGFuPjwvc3Bhbj4KICAgICAgICA8aSBzdHlsZT0iY29sb3I6IzAwMDtmb250LXNpemU6MjBweDsiIGNsYXNzPSJjYXJQcmljZUluaXRpYWxUb29sVGlwSWNvbiBmYWwgZmEtaW5mby1jaXJjbGUgYmxhY2tDb2xvckJvbGQiIGRhdGEtdG9vbHRpcD0nJmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtQRFNGOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDs1OSA5OTUmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUcmFuc3BvcnQgJmFtcDsgUHLDqXBhcmF0aW9uOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsyIDc5NSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RheGUgQUM6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzEwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RvdGFsJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzYyIDg5MCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsnPjwvaT4KICAgIDwvZGl2PgogICAgPCEtLSBDTE9TRSBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPjwhLS0gT1BFTiBORVcgQ0FSIFBST01PIFBSSUNFICgyNzYpLS0+PGRpdiBjbGFzcz0iZGl2TmV3Q2FyUHJvbW9QcmljZSI+ZW4gcmFiYWlzIMOgIDxzcGFuIGNsYXNzPSJzdHJpa2UtcHJpY2UiIHN0eWxlPSJjb2xvcjogI2ViMDAwMDsiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj42MSAxNTE8L3NwYW4+PC9zcGFuPjwvZGl2PjwhLS0gQ0xPU0UgTkVXIENBUiBQUk9NTyBQUklDRSAoMjgzKS0tPgoJCQkJCTxkaXYgY2xhc3M9ImRpdkNhckluU3RvY2tMaW5rIiBoaWRkZW4+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGRhdGEtdHlwZT0iaW52ZGF0YSIgZGF0YS1tYWtlPSJGb3JkIiBkYXRhLW1vZGVsPSJGLTE1MCBMaWdodG5pbmciIGRhdGEteWVhcj0iMjAyNSIgZGF0YS1zdHlsZWlkcz0iNDYzNjgwLDQ2MzY4MSw0NjM2ODIsNDYzNjgzLDQ2MzY4NCIgZGF0YS1oeWJyaWQ9IjAiPgoJPC9kaXY+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJbWFnZUNvbnRhaW5lciBmbGV4LWNlbnRlciBhbGlnbi1jZW50ZXIgIj4KCQkJCTxhIHRpdGxlPSJGb3JkIEYtMTUwIExpZ2h0bmluZyAyMDI1IiBocmVmPSI\/cGF0aD0vbmV1ZnMvRm9yZC1GXzE1MF9MaWdodG5pbmctMjAyNS5odG1sIj4KCQkJCQk8aW1nIGFsdD0iRm9yZCBGLTE1MCBMaWdodG5pbmcgMjAyNSIgYm9yZGVyPSIwIiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9mci9Gb3JkL0ZfMTUwX0xpZ2h0bmluZy8yMDI1LzQ2MzY4NC9CbHVlL3Byb2ZpbGUud2VicCIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPgoJCQkJPC9hPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyRm9vdGVyQ29udGFpbmVyIHN0YWNrLWxjIC0tcy05Ij4KCQkJCQk8ZGl2IGNsYXNzPSJjYXJQYXltZW50V3JhcHBlciI+CgkJCTxkaXYgY2xhc3M9ImNvbnRlbnQtc2tlbGV0b24gaHRtbC1ibG9jayIgZGF0YS1ibG9jaz0icGF5bWVudEJsb2NrIiBkYXRhLXR5cGU9ImJsb2NrIiBkYXRhLXNvdXJjZT0ic2VydmVyIiBkYXRhLWNhbGxiYWNrPSJwYXltZW50Q2FsY0Jsb2NrIj4KCQkKCTxpbnB1dCBuYW1lPSJibG9jay1kYXRhIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSJ7JnF1b3Q7c3R5bGVpZCZxdW90OzomcXVvdDs0NjM2ODAmcXVvdDssJnF1b3Q7dGl0bGUmcXVvdDs6JnF1b3Q7Rm9yZCBGLTE1MCBMaWdodG5pbmcgMjAyNSZxdW90OywmcXVvdDtocmVmJnF1b3Q7OiZxdW90O1wvbmV1ZnNcL0ZvcmQtRl8xNTBfTGlnaHRuaW5nLTIwMjUuaHRtbCZxdW90OywmcXVvdDtsaW5rc3R5bGUmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O2xpbmtjbGFzcyZxdW90OzomcXVvdDsmcXVvdDssJnF1b3Q7Y29udGFpbmVyY2xhc3MmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O3Byb21vdGV4dCZxdW90OzomcXVvdDtEXHUwMGU5Y291dnJleiBsJ29mZnJlISZxdW90O30iPgoJPC9kaXY+Cgk8L2Rpdj4KCQkJCQoJCQk8L2Rpdj4KCQk8L2Rpdj4KCTwvZGl2Pgk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVPdXRlckJveCAgcmViYXRlQm9yZGVyQ29sb3IiIGlkPSJmYnhfZWxlY3RyaWNfMyI+CgkJCTxkaXYgY2xhc3M9InJlYmF0ZVRhZyI+Cgk8c3BhbiBjbGFzcz0icmViYXRlVGV4dCI+cmFiYWlzIGp1c3F1J8OgPC9zcGFuPgoJPHNwYW4gY2xhc3M9InJlYmF0ZUFtb3VudCI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjYgMDg3PC9zcGFuPjwvc3Bhbj4KCTwvZGl2PgoJCTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZUlubmVyQm94IiBpZD0iIj4KCQkJPGRpdiBjbGFzcz0iZDJjLWZhdnMtdHJpZ2dlci13cmFwcGVyIGQyZmF2LTAxIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9Ik11c3RhbmcgTWFjaC1FIiBkYXRhLXllYXI9IjIwMjYiIGRhdGEtdHJpbT0iIiBkYXRhLWNhcmlkPSIiPjwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJUaXRsZUNvbnRhaW5lciI+CgkJCQk8YSB0aXRsZT0iRm9yZCBNdXN0YW5nIE1hY2gtRSAyMDI2IiBocmVmPSI\/cGF0aD0vbmV1ZnMvRm9yZC1NdXN0YW5nX01hY2hfRS0yMDI2Lmh0bWwiIGRhdGEtbWFrZT0iRm9yZCIgZGF0YS1tb2RlbD0iTXVzdGFuZyBNYWNoLUUgMjAyNiI+CgkJCQkJPGgzPgoJCQkJCQk8c3BhbiBjbGFzcz0ic3BhbkNhck1ha2UgIj5Gb3JkPC9zcGFuPjxicj4KCQkJCQkJPHNwYW4gY2xhc3M9Im1vZGVsTmFtZSBzcGFuTW9kZWxOYW1lIj5NdXN0YW5nIE1hY2gtRSAyMDI2PC9zcGFuPgoJCQkJCTwvaDM+CgkJCQk8L2E+CgkJCQkgICAgPCEtLSBPUEVOIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CiAgICA8ZGl2IGNsYXNzPSJkaXZOZXdDYXJTdGFydFByaWNlIj4KICAgICAgICDDoCBwYXJ0aXIgZGUKICAgICAgICA8c3BhbiBjbGFzcz0iIj4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+NDggMDkwPC9zcGFuPjwvc3Bhbj4KICAgICAgICA8aSBzdHlsZT0iY29sb3I6IzAwMDtmb250LXNpemU6MjBweDsiIGNsYXNzPSJjYXJQcmljZUluaXRpYWxUb29sVGlwSWNvbiBmYWwgZmEtaW5mby1jaXJjbGUgYmxhY2tDb2xvckJvbGQiIGRhdGEtdG9vbHRpcD0nJmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtQRFNGOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDs0NCA5OTUmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUcmFuc3BvcnQgJmFtcDsgUHLDqXBhcmF0aW9uOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsyIDk5NSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RheGUgQUM6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzEwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RvdGFsJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzQ4IDA5MCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsnPjwvaT4KICAgIDwvZGl2PgogICAgPCEtLSBDTE9TRSBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPjwhLS0gT1BFTiBORVcgQ0FSIFBST01PIFBSSUNFICgyNzYpLS0+PGRpdiBjbGFzcz0iZGl2TmV3Q2FyUHJvbW9QcmljZSI+ZW4gcmFiYWlzIMOgIDxzcGFuIGNsYXNzPSJzdHJpa2UtcHJpY2UiIHN0eWxlPSJjb2xvcjogI2ViMDAwMDsiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj40NiA1OTA8L3NwYW4+PC9zcGFuPjwvZGl2PjwhLS0gQ0xPU0UgTkVXIENBUiBQUk9NTyBQUklDRSAoMjgzKS0tPgoJCQkJCTxkaXYgY2xhc3M9ImRpdkNhckluU3RvY2tMaW5rIiBoaWRkZW4+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGRhdGEtdHlwZT0iaW52ZGF0YSIgZGF0YS1tYWtlPSJGb3JkIiBkYXRhLW1vZGVsPSJNdXN0YW5nIE1hY2gtRSIgZGF0YS15ZWFyPSIyMDI2IiBkYXRhLXN0eWxlaWRzPSI0ODE2OTcsNDgxNjk1LDQ4MTY5OCw0ODE2OTYsNDgxNjk5IiBkYXRhLWh5YnJpZD0iMCI+Cgk8L2Rpdj4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckltYWdlQ29udGFpbmVyIGZsZXgtY2VudGVyIGFsaWduLWNlbnRlciAiPgoJCQkJPGEgdGl0bGU9IkZvcmQgTXVzdGFuZyBNYWNoLUUgMjAyNiIgaHJlZj0iP3BhdGg9L25ldWZzL0ZvcmQtTXVzdGFuZ19NYWNoX0UtMjAyNi5odG1sIj4KCQkJCQk8aW1nIGFsdD0iRm9yZCBNdXN0YW5nIE1hY2gtRSAyMDI2IiBib3JkZXI9IjAiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL2ZyL0ZvcmQvTXVzdGFuZ19NYWNoX0UvMjAyNi80ODE2OTkvQmx1ZS9wcm9maWxlLndlYnAiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj4KCQkJCTwvYT4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckZvb3RlckNvbnRhaW5lciBzdGFjay1sYyAtLXMtOSI+CgkJCQkJPGRpdiBjbGFzcz0iY2FyUGF5bWVudFdyYXBwZXIiPgoJCQk8ZGl2IGNsYXNzPSJjb250ZW50LXNrZWxldG9uIGh0bWwtYmxvY2siIGRhdGEtYmxvY2s9InBheW1lbnRCbG9jayIgZGF0YS10eXBlPSJibG9jayIgZGF0YS1zb3VyY2U9InNlcnZlciIgZGF0YS1jYWxsYmFjaz0icGF5bWVudENhbGNCbG9jayI+CgkJCgk8aW5wdXQgbmFtZT0iYmxvY2stZGF0YSIgdHlwZT0iaGlkZGVuIiB2YWx1ZT0ieyZxdW90O3N0eWxlaWQmcXVvdDs6JnF1b3Q7NDgxNjk3JnF1b3Q7LCZxdW90O3RpdGxlJnF1b3Q7OiZxdW90O0ZvcmQgTXVzdGFuZyBNYWNoLUUgMjAyNiZxdW90OywmcXVvdDtocmVmJnF1b3Q7OiZxdW90O1wvbmV1ZnNcL0ZvcmQtTXVzdGFuZ19NYWNoX0UtMjAyNi5odG1sJnF1b3Q7LCZxdW90O2xpbmtzdHlsZSZxdW90OzomcXVvdDsmcXVvdDssJnF1b3Q7bGlua2NsYXNzJnF1b3Q7OiZxdW90OyZxdW90OywmcXVvdDtjb250YWluZXJjbGFzcyZxdW90OzomcXVvdDsmcXVvdDssJnF1b3Q7cHJvbW90ZXh0JnF1b3Q7OiZxdW90O0RcdTAwZTljb3V2cmV6IGwnb2ZmcmUhJnF1b3Q7fSI+Cgk8L2Rpdj4KCTwvZGl2PgoJCQkJCgkJCTwvZGl2PgoJCTwvZGl2PgoJPC9kaXY+CTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZU91dGVyQm94ICByZWJhdGVCb3JkZXJDb2xvciIgaWQ9ImZieF9lbGVjdHJpY180Ij4KCQkJPGRpdiBjbGFzcz0icmViYXRlVGFnIj4KCTxzcGFuIGNsYXNzPSJyZWJhdGVUZXh0Ij5yYWJhaXMganVzcXUnw6A8L3NwYW4+Cgk8c3BhbiBjbGFzcz0icmViYXRlQW1vdW50Ij4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+MSA3Mzk8L3NwYW4+PC9zcGFuPgoJPC9kaXY+CgkJPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlSW5uZXJCb3giIGlkPSIiPgoJCQk8ZGl2IGNsYXNzPSJkMmMtZmF2cy10cmlnZ2VyLXdyYXBwZXIgZDJmYXYtMDEiIGRhdGEtbWFrZT0iRm9yZCIgZGF0YS1tb2RlbD0iTXVzdGFuZyBNYWNoLUUiIGRhdGEteWVhcj0iMjAyNSIgZGF0YS10cmltPSIiIGRhdGEtY2FyaWQ9IiI+PC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhclRpdGxlQ29udGFpbmVyIj4KCQkJCTxhIHRpdGxlPSJGb3JkIE11c3RhbmcgTWFjaC1FIDIwMjUiIGhyZWY9Ij9wYXRoPS9uZXVmcy9Gb3JkLU11c3RhbmdfTWFjaF9FLTIwMjUuaHRtbCIgZGF0YS1tYWtlPSJGb3JkIiBkYXRhLW1vZGVsPSJNdXN0YW5nIE1hY2gtRSAyMDI1Ij4KCQkJCQk8aDM+CgkJCQkJCTxzcGFuIGNsYXNzPSJzcGFuQ2FyTWFrZSAiPkZvcmQ8L3NwYW4+PGJyPgoJCQkJCQk8c3BhbiBjbGFzcz0ibW9kZWxOYW1lIHNwYW5Nb2RlbE5hbWUiPk11c3RhbmcgTWFjaC1FIDIwMjU8L3NwYW4+CgkJCQkJPC9oMz4KCQkJCTwvYT4KCQkJCSAgICA8IS0tIE9QRU4gTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KICAgIDxkaXYgY2xhc3M9ImRpdk5ld0NhclN0YXJ0UHJpY2UiPgogICAgICAgIMOgIHBhcnRpciBkZQogICAgICAgIDxzcGFuIGNsYXNzPSIiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj41NSA2OTA8L3NwYW4+PC9zcGFuPgogICAgICAgIDxpIHN0eWxlPSJjb2xvcjojMDAwO2ZvbnQtc2l6ZToyMHB4OyIgY2xhc3M9ImNhclByaWNlSW5pdGlhbFRvb2xUaXBJY29uIGZhbCBmYS1pbmZvLWNpcmNsZSBibGFja0NvbG9yQm9sZCIgZGF0YS10b29sdGlwPScmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1BEU0Y6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzUyIDk5NSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RyYW5zcG9ydCAmYW1wOyBQcsOpcGFyYXRpb246Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzIgNTk1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VGF4ZSBBQzombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MTAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VG90YWwmbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7NTUgNjkwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0Oyc+PC9pPgogICAgPC9kaXY+CiAgICA8IS0tIENMT1NFIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+PCEtLSBPUEVOIE5FVyBDQVIgUFJPTU8gUFJJQ0UgKDI3NiktLT48ZGl2IGNsYXNzPSJkaXZOZXdDYXJQcm9tb1ByaWNlIj5lbiByYWJhaXMgw6AgPHNwYW4gY2xhc3M9InN0cmlrZS1wcmljZSIgc3R5bGU9ImNvbG9yOiAjZWIwMDAwOyI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjUzIDk1MTwvc3Bhbj48L3NwYW4+PC9kaXY+PCEtLSBDTE9TRSBORVcgQ0FSIFBST01PIFBSSUNFICgyODMpLS0+CgkJCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW5TdG9ja0xpbmsiIGhpZGRlbj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgZGF0YS10eXBlPSJpbnZkYXRhIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9Ik11c3RhbmcgTWFjaC1FIiBkYXRhLXllYXI9IjIwMjUiIGRhdGEtc3R5bGVpZHM9IjQ2NzQ4OCw0Njc0OTAsNDY3NDg5LDQ2NzQ5MSw0Njc0OTIiIGRhdGEtaHlicmlkPSIwIj4KCTwvZGl2PgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW1hZ2VDb250YWluZXIgZmxleC1jZW50ZXIgYWxpZ24tY2VudGVyICI+CgkJCQk8YSB0aXRsZT0iRm9yZCBNdXN0YW5nIE1hY2gtRSAyMDI1IiBocmVmPSI\/cGF0aD0vbmV1ZnMvRm9yZC1NdXN0YW5nX01hY2hfRS0yMDI1Lmh0bWwiPgoJCQkJCTxpbWcgYWx0PSJGb3JkIE11c3RhbmcgTWFjaC1FIDIwMjUiIGJvcmRlcj0iMCIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvZnIvRm9yZC9NdXN0YW5nX01hY2hfRS8yMDI1LzQ2NzQ5Mi9CbHVlL3Byb2ZpbGUud2VicCIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPgoJCQkJPC9hPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyRm9vdGVyQ29udGFpbmVyIHN0YWNrLWxjIC0tcy05Ij4KCQkJCQk8ZGl2IGNsYXNzPSJjYXJQYXltZW50V3JhcHBlciI+CgkJCTxkaXYgY2xhc3M9ImNvbnRlbnQtc2tlbGV0b24gaHRtbC1ibG9jayIgZGF0YS1ibG9jaz0icGF5bWVudEJsb2NrIiBkYXRhLXR5cGU9ImJsb2NrIiBkYXRhLXNvdXJjZT0ic2VydmVyIiBkYXRhLWNhbGxiYWNrPSJwYXltZW50Q2FsY0Jsb2NrIj4KCQkKCTxpbnB1dCBuYW1lPSJibG9jay1kYXRhIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSJ7JnF1b3Q7c3R5bGVpZCZxdW90OzomcXVvdDs0Njc0ODgmcXVvdDssJnF1b3Q7dGl0bGUmcXVvdDs6JnF1b3Q7Rm9yZCBNdXN0YW5nIE1hY2gtRSAyMDI1JnF1b3Q7LCZxdW90O2hyZWYmcXVvdDs6JnF1b3Q7XC9uZXVmc1wvRm9yZC1NdXN0YW5nX01hY2hfRS0yMDI1Lmh0bWwmcXVvdDssJnF1b3Q7bGlua3N0eWxlJnF1b3Q7OiZxdW90OyZxdW90OywmcXVvdDtsaW5rY2xhc3MmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O2NvbnRhaW5lcmNsYXNzJnF1b3Q7OiZxdW90OyZxdW90OywmcXVvdDtwcm9tb3RleHQmcXVvdDs6JnF1b3Q7RFx1MDBlOWNvdXZyZXogbCdvZmZyZSEmcXVvdDt9Ij4KCTwvZGl2PgoJPC9kaXY+CgkJCQkKCQkJPC9kaXY+CgkJPC9kaXY+Cgk8L2Rpdj48L2Rpdj48L2Rpdj48IS0tIENMT1NFIENBVEVHT1JZQk9YV1JBUFBFUiAoMjE5NCktLT48IS0tIE9QRU4gQ0FURUdPUllCT1hXUkFQUEVSICgyMTg2KSAtLT48ZGl2IGlkPSJjbGFzc2NvbW1lcmNpYWxfY29udGFpbmVyIiBjbGFzcz0iZGl2U3BhbiBkaXZTcGFuMTIgZGl2Q2F0ZWdvcnlCb3hXcmFwcGVyIiBzdGF0ZT0ib3BlbiIgbmJ2aXNpYmxlPSIxIj48aDIgY2xhc3M9ImRlZmF1bHQgaWNvbi1oZWFkaW5nIGZsZXgtYm94IGFsaWduLWNlbnRlciI+Cgk8c3BhbiBjbGFzcz0iZmEgZmEtY2hldnJvbi1yaWdodCIgYXJpYS1oaWRkZW49InRydWUiPjwvc3Bhbj4KCTxib3gtbGMgY2xhc3M9Ii1wdjAiPgoJCTxkaXYgY2xhc3M9Im1haW5UZXh0IC1ib2xkIj5Ob3V2ZWF1eCBjYW1pb25zIGNvbW1lcmNpYXV4IEZvcmQgMjAyNSwgMjAyNiAmYW1wOyAyMDI3PC9kaXY+CgkJPGRpdiBjbGFzcz0ic2Vjb25kYXJ5VGV4dCI+w6AgR2F0aW5lYXUgKHByw6hzIGQnT3R0YXdhKTwvZGl2PgoJPC9ib3gtbGM+CjwvaDI+PGRpdiBjbGFzcz0iZGl2U3BhbiBkaXZTcGFuMTIgZGl2Q2Fyc0JveFdyYXBwZXIgQ0xBU1NfY29tbWVyY2lhbCI+CTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZU91dGVyQm94ICByZWJhdGVCb3JkZXJDb2xvciIgaWQ9ImZieF9jb21tZXJjaWFsXzEiPgoJCQoJCTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZUlubmVyQm94IiBpZD0iIj4KCQkJPGRpdiBjbGFzcz0iZDJjLWZhdnMtdHJpZ2dlci13cmFwcGVyIGQyZmF2LTAxIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9IkUtU2VyaWVzIEN1dGF3YXkiIGRhdGEteWVhcj0iMjAyNyIgZGF0YS10cmltPSIiIGRhdGEtY2FyaWQ9IiI+PC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhclRpdGxlQ29udGFpbmVyIj4KCQkJCTxhIHRpdGxlPSJGb3JkIFPDqXJpZSBFIHRyb25xdcOpIDIwMjciIGhyZWY9Ij9wYXRoPS9uZXVmcy9Gb3JkLUVfU2VyaWVzX0N1dGF3YXktMjAyNy5odG1sIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9IlPDqXJpZSBFIHRyb25xdcOpIDIwMjciPgoJCQkJCTxoMz4KCQkJCQkJPHNwYW4gY2xhc3M9InNwYW5DYXJNYWtlICI+Rm9yZDwvc3Bhbj48YnI+CgkJCQkJCTxzcGFuIGNsYXNzPSJtb2RlbE5hbWUgc3Bhbk1vZGVsTmFtZSI+U8OpcmllIEUgdHJvbnF1w6kgMjAyNzwvc3Bhbj4KCQkJCQk8L2gzPgoJCQkJPC9hPgoJCQkJICAgIDwhLS0gT1BFTiBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgogICAgPGRpdiBjbGFzcz0iZGl2TmV3Q2FyU3RhcnRQcmljZSI+CiAgICAgICAgw6AgcGFydGlyIGRlCiAgICAgICAgPHNwYW4gY2xhc3M9IiI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjUyIDA4MDwvc3Bhbj48L3NwYW4+CiAgICAgICAgPGkgc3R5bGU9ImNvbG9yOiMwMDA7Zm9udC1zaXplOjIwcHg7IiBjbGFzcz0iY2FyUHJpY2VJbml0aWFsVG9vbFRpcEljb24gZmFsIGZhLWluZm8tY2lyY2xlIGJsYWNrQ29sb3JCb2xkIiBkYXRhLXRvb2x0aXA9JyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7UERTRjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7NDkgMzg1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VHJhbnNwb3J0ICZhbXA7IFByw6lwYXJhdGlvbjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MiA1OTUmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUYXhlIEFDOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsxMDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUb3RhbCZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDs1MiAwODAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jz48L2k+CiAgICA8L2Rpdj4KICAgIDwhLS0gQ0xPU0UgTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KCQkJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJblN0b2NrTGluayIgaGlkZGVuPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBkYXRhLXR5cGU9ImludmRhdGEiIGRhdGEtbWFrZT0iRm9yZCIgZGF0YS1tb2RlbD0iRS1TZXJpZXMgQ3V0YXdheSIgZGF0YS15ZWFyPSIyMDI3IiBkYXRhLXN0eWxlaWRzPSI0ODE5MTMsNDgxOTE0LDQ4MTkxNyw0ODE5MTUsNDgxOTE2LDQ4MTkxOCw0ODE5MTkiIGRhdGEtaHlicmlkPSIwIj4KCTwvZGl2PgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW1hZ2VDb250YWluZXIgZmxleC1jZW50ZXIgYWxpZ24tY2VudGVyICI+CgkJCQk8YSB0aXRsZT0iRm9yZCBTw6lyaWUgRSB0cm9ucXXDqSAyMDI3IiBocmVmPSI\/cGF0aD0vbmV1ZnMvRm9yZC1FX1Nlcmllc19DdXRhd2F5LTIwMjcuaHRtbCI+CgkJCQkJPGltZyBhbHQ9IkZvcmQgU8OpcmllIEUgdHJvbnF1w6kgMjAyNyIgYm9yZGVyPSIwIiBjbGFzcz0ibGl2ZWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9mci9Gb3JkL0VfU2VyaWVzX0N1dGF3YXkvMjAyNy80ODE5MTkvQmx1ZS9wcm9maWxlLndlYnAiIHNyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL2ZyL0ZvcmQvRV9TZXJpZXNfQ3V0YXdheS8yMDI3LzQ4MTkxOS9CbHVlL3Byb2ZpbGUud2VicCIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPgoJCQkJPC9hPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyRm9vdGVyQ29udGFpbmVyIHN0YWNrLWxjIC0tcy05Ij4KCQkJCQk8ZGl2IGNsYXNzPSJjYXJQYXltZW50V3JhcHBlciI+CgkJCTxkaXYgY2xhc3M9ImNvbnRlbnQtc2tlbGV0b24gaHRtbC1ibG9jayIgZGF0YS1ibG9jaz0icGF5bWVudEJsb2NrIiBkYXRhLXR5cGU9ImJsb2NrIiBkYXRhLXNvdXJjZT0ic2VydmVyIiBkYXRhLWNhbGxiYWNrPSJwYXltZW50Q2FsY0Jsb2NrIj4KCQkKCTxpbnB1dCBuYW1lPSJibG9jay1kYXRhIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSIiPgoJPC9kaXY+Cgk8L2Rpdj4KCQkJCQoJCQk8L2Rpdj4KCQk8L2Rpdj4KCTwvZGl2Pgk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVPdXRlckJveCAgcmViYXRlQm9yZGVyQ29sb3IiIGlkPSJmYnhfY29tbWVyY2lhbF8yIj4KCQkKCQk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVJbm5lckJveCIgaWQ9IiI+CgkJCTxkaXYgY2xhc3M9ImQyYy1mYXZzLXRyaWdnZXItd3JhcHBlciBkMmZhdi0wMSIgZGF0YS1tYWtlPSJGb3JkIiBkYXRhLW1vZGVsPSJFLVNlcmllcyBDdXRhd2F5IiBkYXRhLXllYXI9IjIwMjYiIGRhdGEtdHJpbT0iIiBkYXRhLWNhcmlkPSIiPjwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJUaXRsZUNvbnRhaW5lciI+CgkJCQk8YSB0aXRsZT0iRm9yZCBTw6lyaWUgRSB0cm9ucXXDqSAyMDI2IiBocmVmPSI\/cGF0aD0vbmV1ZnMvRm9yZC1FX1Nlcmllc19DdXRhd2F5LTIwMjYuaHRtbCIgZGF0YS1tYWtlPSJGb3JkIiBkYXRhLW1vZGVsPSJTw6lyaWUgRSB0cm9ucXXDqSAyMDI2Ij4KCQkJCQk8aDM+CgkJCQkJCTxzcGFuIGNsYXNzPSJzcGFuQ2FyTWFrZSAiPkZvcmQ8L3NwYW4+PGJyPgoJCQkJCQk8c3BhbiBjbGFzcz0ibW9kZWxOYW1lIHNwYW5Nb2RlbE5hbWUiPlPDqXJpZSBFIHRyb25xdcOpIDIwMjY8L3NwYW4+CgkJCQkJPC9oMz4KCQkJCTwvYT4KCQkJCSAgICA8IS0tIE9QRU4gTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KICAgIDxkaXYgY2xhc3M9ImRpdk5ld0NhclN0YXJ0UHJpY2UiPgogICAgICAgIMOgIHBhcnRpciBkZQogICAgICAgIDxzcGFuIGNsYXNzPSIiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj41MiAwODA8L3NwYW4+PC9zcGFuPgogICAgICAgIDxpIHN0eWxlPSJjb2xvcjojMDAwO2ZvbnQtc2l6ZToyMHB4OyIgY2xhc3M9ImNhclByaWNlSW5pdGlhbFRvb2xUaXBJY29uIGZhbCBmYS1pbmZvLWNpcmNsZSBibGFja0NvbG9yQm9sZCIgZGF0YS10b29sdGlwPScmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1BEU0Y6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzQ5IDM4NSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RyYW5zcG9ydCAmYW1wOyBQcsOpcGFyYXRpb246Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzIgNTk1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VGF4ZSBBQzombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MTAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VG90YWwmbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7NTIgMDgwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0Oyc+PC9pPgogICAgPC9kaXY+CiAgICA8IS0tIENMT1NFIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CgkJCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW5TdG9ja0xpbmsiIGhpZGRlbj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgZGF0YS10eXBlPSJpbnZkYXRhIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9IkUtU2VyaWVzIEN1dGF3YXkiIGRhdGEteWVhcj0iMjAyNiIgZGF0YS1zdHlsZWlkcz0iNDY2NzczLDQ2Njc3NCw0NjY3NzcsNDY2Nzc1LDQ2Njc3Niw0NjY3NzgsNDY2Nzc5IiBkYXRhLWh5YnJpZD0iMCI+Cgk8L2Rpdj4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckltYWdlQ29udGFpbmVyIGZsZXgtY2VudGVyIGFsaWduLWNlbnRlciAiPgoJCQkJPGEgdGl0bGU9IkZvcmQgU8OpcmllIEUgdHJvbnF1w6kgMjAyNiIgaHJlZj0iP3BhdGg9L25ldWZzL0ZvcmQtRV9TZXJpZXNfQ3V0YXdheS0yMDI2Lmh0bWwiPgoJCQkJCTxpbWcgYWx0PSJGb3JkIFPDqXJpZSBFIHRyb25xdcOpIDIwMjYiIGJvcmRlcj0iMCIgY2xhc3M9ImxpdmVsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvZnIvRm9yZC9FX1Nlcmllc19DdXRhd2F5LzIwMjYvNDY2Nzc5L0JsdWUvcHJvZmlsZS53ZWJwIiBzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9mci9Gb3JkL0VfU2VyaWVzX0N1dGF3YXkvMjAyNi80NjY3NzkvQmx1ZS9wcm9maWxlLndlYnAiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj4KCQkJCTwvYT4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckZvb3RlckNvbnRhaW5lciBzdGFjay1sYyAtLXMtOSI+CgkJCQkJPGRpdiBjbGFzcz0iY2FyUGF5bWVudFdyYXBwZXIiPgoJCQk8ZGl2IGNsYXNzPSJjb250ZW50LXNrZWxldG9uIGh0bWwtYmxvY2siIGRhdGEtYmxvY2s9InBheW1lbnRCbG9jayIgZGF0YS10eXBlPSJibG9jayIgZGF0YS1zb3VyY2U9InNlcnZlciIgZGF0YS1jYWxsYmFjaz0icGF5bWVudENhbGNCbG9jayI+CgkJCgk8aW5wdXQgbmFtZT0iYmxvY2stZGF0YSIgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iIj4KCTwvZGl2PgoJPC9kaXY+CgkJCQkKCQkJPC9kaXY+CgkJPC9kaXY+Cgk8L2Rpdj4JPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggIHJlYmF0ZUJvcmRlckNvbG9yIiBpZD0iZmJ4X2NvbW1lcmNpYWxfMyI+CgkJCgkJPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlSW5uZXJCb3giIGlkPSIiPgoJCQk8ZGl2IGNsYXNzPSJkMmMtZmF2cy10cmlnZ2VyLXdyYXBwZXIgZDJmYXYtMDEiIGRhdGEtbWFrZT0iRm9yZCIgZGF0YS1tb2RlbD0iRS1TZXJpZXMgU3RyaXBwZWQgQ2hhc3NpcyIgZGF0YS15ZWFyPSIyMDI2IiBkYXRhLXRyaW09IiIgZGF0YS1jYXJpZD0iIj48L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyVGl0bGVDb250YWluZXIiPgoJCQkJPGEgdGl0bGU9IkZvcmQgU8OpcmllIEUgY2jDonNzaXMgbnUgMjAyNiIgaHJlZj0iP3BhdGg9L25ldWZzL0ZvcmQtRV9TZXJpZXNfU3RyaXBwZWRfQ2hhc3Npcy0yMDI2Lmh0bWwiIGRhdGEtbWFrZT0iRm9yZCIgZGF0YS1tb2RlbD0iU8OpcmllIEUgY2jDonNzaXMgbnUgMjAyNiI+CgkJCQkJPGgzPgoJCQkJCQk8c3BhbiBjbGFzcz0ic3BhbkNhck1ha2UgIj5Gb3JkPC9zcGFuPjxicj4KCQkJCQkJPHNwYW4gY2xhc3M9Im1vZGVsTmFtZSBzcGFuTW9kZWxOYW1lIj5Tw6lyaWUgRSBjaMOic3NpcyBudSAyMDI2PC9zcGFuPgoJCQkJCTwvaDM+CgkJCQk8L2E+CgkJCQkgICAgPCEtLSBPUEVOIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CiAgICA8ZGl2IGNsYXNzPSJkaXZOZXdDYXJTdGFydFByaWNlIj4KICAgICAgICDDoCBwYXJ0aXIgZGUKICAgICAgICA8c3BhbiBjbGFzcz0iIj4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+NDggNjM1PC9zcGFuPjwvc3Bhbj4KICAgICAgICA8aSBzdHlsZT0iY29sb3I6IzAwMDtmb250LXNpemU6MjBweDsiIGNsYXNzPSJjYXJQcmljZUluaXRpYWxUb29sVGlwSWNvbiBmYWwgZmEtaW5mby1jaXJjbGUgYmxhY2tDb2xvckJvbGQiIGRhdGEtdG9vbHRpcD0nJmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtQRFNGOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDs0NiAwNDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUcmFuc3BvcnQgJmFtcDsgUHLDqXBhcmF0aW9uOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsyIDU5NSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RheGUgQUM6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzEwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RvdGFsJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzQ4IDYzNSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsnPjwvaT4KICAgIDwvZGl2PgogICAgPCEtLSBDTE9TRSBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgoJCQkJCTxkaXYgY2xhc3M9ImRpdkNhckluU3RvY2tMaW5rIiBoaWRkZW4+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGRhdGEtdHlwZT0iaW52ZGF0YSIgZGF0YS1tYWtlPSJGb3JkIiBkYXRhLW1vZGVsPSJFLVNlcmllcyBTdHJpcHBlZCBDaGFzc2lzIiBkYXRhLXllYXI9IjIwMjYiIGRhdGEtc3R5bGVpZHM9IjQ2Njc4MCw0NjY3ODEsNDY2NzgyLDQ2Njc4MyIgZGF0YS1oeWJyaWQ9IjAiPgoJPC9kaXY+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJbWFnZUNvbnRhaW5lciBmbGV4LWNlbnRlciBhbGlnbi1jZW50ZXIgIj4KCQkJCTxhIHRpdGxlPSJGb3JkIFPDqXJpZSBFIGNow6Jzc2lzIG51IDIwMjYiIGhyZWY9Ij9wYXRoPS9uZXVmcy9Gb3JkLUVfU2VyaWVzX1N0cmlwcGVkX0NoYXNzaXMtMjAyNi5odG1sIj4KCQkJCQk8aW1nIGFsdD0iRm9yZCBTw6lyaWUgRSBjaMOic3NpcyBudSAyMDI2IiBib3JkZXI9IjAiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL2ZyL0ZvcmQvRV9TZXJpZXNfU3RyaXBwZWRfQ2hhc3Npcy8yMDI2LzQ2Njc4My9CbHVlL3Byb2ZpbGUud2VicCIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPgoJCQkJPC9hPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyRm9vdGVyQ29udGFpbmVyIHN0YWNrLWxjIC0tcy05Ij4KCQkJCQk8ZGl2IGNsYXNzPSJjYXJQYXltZW50V3JhcHBlciI+CgkJCTxkaXYgY2xhc3M9ImNvbnRlbnQtc2tlbGV0b24gaHRtbC1ibG9jayIgZGF0YS1ibG9jaz0icGF5bWVudEJsb2NrIiBkYXRhLXR5cGU9ImJsb2NrIiBkYXRhLXNvdXJjZT0ic2VydmVyIiBkYXRhLWNhbGxiYWNrPSJwYXltZW50Q2FsY0Jsb2NrIj4KCQkKCTxpbnB1dCBuYW1lPSJibG9jay1kYXRhIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSIiPgoJPC9kaXY+Cgk8L2Rpdj4KCQkJCQoJCQk8L2Rpdj4KCQk8L2Rpdj4KCTwvZGl2Pgk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVPdXRlckJveCAgcmViYXRlQm9yZGVyQ29sb3IiIGlkPSJmYnhfY29tbWVyY2lhbF80Ij4KCQkKCQk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVJbm5lckJveCIgaWQ9IiI+CgkJCTxkaXYgY2xhc3M9ImQyYy1mYXZzLXRyaWdnZXItd3JhcHBlciBkMmZhdi0wMSIgZGF0YS1tYWtlPSJGb3JkIiBkYXRhLW1vZGVsPSJFLVRyYW5zaXQgQ2FyZ28gVmFuIiBkYXRhLXllYXI9IjIwMjciIGRhdGEtdHJpbT0iIiBkYXRhLWNhcmlkPSIiPjwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJUaXRsZUNvbnRhaW5lciI+CgkJCQk8YSB0aXRsZT0iRm9yZCBFLVRyYW5zaXQgZm91cmdvbm5ldHRlIHV0aWxpdGFpcmUgMjAyNyIgaHJlZj0iP3BhdGg9L25ldWZzL0ZvcmQtRV9UcmFuc2l0X0NhcmdvX1Zhbi0yMDI3Lmh0bWwiIGRhdGEtbWFrZT0iRm9yZCIgZGF0YS1tb2RlbD0iRS1UcmFuc2l0IGZvdXJnb25uZXR0ZSB1dGlsaXRhaXJlIDIwMjciPgoJCQkJCTxoMz4KCQkJCQkJPHNwYW4gY2xhc3M9InNwYW5DYXJNYWtlICI+Rm9yZDwvc3Bhbj48YnI+CgkJCQkJCTxzcGFuIGNsYXNzPSJtb2RlbE5hbWUgc3Bhbk1vZGVsTmFtZSI+RS1UcmFuc2l0IGZvdXJnb25uZXR0ZSB1dGlsaXRhaXJlIDIwMjc8L3NwYW4+CgkJCQkJPC9oMz4KCQkJCTwvYT4KCQkJCSAgICA8IS0tIE9QRU4gTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KICAgIDxkaXYgY2xhc3M9ImRpdk5ld0NhclN0YXJ0UHJpY2UiPgogICAgICAgIMOgIHBhcnRpciBkZQogICAgICAgIDxzcGFuIGNsYXNzPSIiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj43NyAxOTU8L3NwYW4+PC9zcGFuPgogICAgICAgIDxpIHN0eWxlPSJjb2xvcjojMDAwO2ZvbnQtc2l6ZToyMHB4OyIgY2xhc3M9ImNhclByaWNlSW5pdGlhbFRvb2xUaXBJY29uIGZhbCBmYS1pbmZvLWNpcmNsZSBibGFja0NvbG9yQm9sZCIgZGF0YS10b29sdGlwPScmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1BEU0Y6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0Ozc0IDAwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RyYW5zcG9ydCAmYW1wOyBQcsOpcGFyYXRpb246Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzMgMDk1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VGF4ZSBBQzombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MTAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VG90YWwmbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7NzcgMTk1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0Oyc+PC9pPgogICAgPC9kaXY+CiAgICA8IS0tIENMT1NFIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CgkJCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW5TdG9ja0xpbmsiIGhpZGRlbj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgZGF0YS10eXBlPSJpbnZkYXRhIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9IkUtVHJhbnNpdCBDYXJnbyBWYW4iIGRhdGEteWVhcj0iMjAyNyIgZGF0YS1zdHlsZWlkcz0iNDg2MjY4LDQ4NjI2OSw0ODYyNzAsNDg2MjcxIiBkYXRhLWh5YnJpZD0iMCI+Cgk8L2Rpdj4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckltYWdlQ29udGFpbmVyIGZsZXgtY2VudGVyIGFsaWduLWNlbnRlciAiPgoJCQkJPGEgdGl0bGU9IkZvcmQgRS1UcmFuc2l0IGZvdXJnb25uZXR0ZSB1dGlsaXRhaXJlIDIwMjciIGhyZWY9Ij9wYXRoPS9uZXVmcy9Gb3JkLUVfVHJhbnNpdF9DYXJnb19WYW4tMjAyNy5odG1sIj4KCQkJCQk8aW1nIGFsdD0iRm9yZCBFLVRyYW5zaXQgZm91cmdvbm5ldHRlIHV0aWxpdGFpcmUgMjAyNyIgYm9yZGVyPSIwIiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9mci9Gb3JkL0VfVHJhbnNpdF9DYXJnb19WYW4vMjAyNy80ODYyNzEvQmx1ZS9wcm9maWxlLndlYnAiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj4KCQkJCTwvYT4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckZvb3RlckNvbnRhaW5lciBzdGFjay1sYyAtLXMtOSI+CgkJCQkJPGRpdiBjbGFzcz0iY2FyUGF5bWVudFdyYXBwZXIiPgoJCQk8ZGl2IGNsYXNzPSJjb250ZW50LXNrZWxldG9uIGh0bWwtYmxvY2siIGRhdGEtYmxvY2s9InBheW1lbnRCbG9jayIgZGF0YS10eXBlPSJibG9jayIgZGF0YS1zb3VyY2U9InNlcnZlciIgZGF0YS1jYWxsYmFjaz0icGF5bWVudENhbGNCbG9jayI+CgkJCgk8aW5wdXQgbmFtZT0iYmxvY2stZGF0YSIgdHlwZT0iaGlkZGVuIiB2YWx1ZT0ieyZxdW90O3N0eWxlaWQmcXVvdDs6JnF1b3Q7NDg2MjY4JnF1b3Q7LCZxdW90O3RpdGxlJnF1b3Q7OiZxdW90O0ZvcmQgRS1UcmFuc2l0IGZvdXJnb25uZXR0ZSB1dGlsaXRhaXJlIDIwMjcmcXVvdDssJnF1b3Q7aHJlZiZxdW90OzomcXVvdDtcL25ldWZzXC9Gb3JkLUVfVHJhbnNpdF9DYXJnb19WYW4tMjAyNy5odG1sJnF1b3Q7LCZxdW90O2xpbmtzdHlsZSZxdW90OzomcXVvdDsmcXVvdDssJnF1b3Q7bGlua2NsYXNzJnF1b3Q7OiZxdW90OyZxdW90OywmcXVvdDtjb250YWluZXJjbGFzcyZxdW90OzomcXVvdDsmcXVvdDssJnF1b3Q7cHJvbW90ZXh0JnF1b3Q7OiZxdW90O0RcdTAwZTljb3V2cmV6IGwnb2ZmcmUhJnF1b3Q7fSI+Cgk8L2Rpdj4KCTwvZGl2PgoJCQkJCgkJCTwvZGl2PgoJCTwvZGl2PgoJPC9kaXY+CTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZU91dGVyQm94ICByZWJhdGVCb3JkZXJDb2xvciIgaWQ9ImZieF9jb21tZXJjaWFsXzUiPgoJCQoJCTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZUlubmVyQm94IiBpZD0iIj4KCQkJPGRpdiBjbGFzcz0iZDJjLWZhdnMtdHJpZ2dlci13cmFwcGVyIGQyZmF2LTAxIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9IkUtVHJhbnNpdCBDYXJnbyBWYW4iIGRhdGEteWVhcj0iMjAyNiIgZGF0YS10cmltPSIiIGRhdGEtY2FyaWQ9IiI+PC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhclRpdGxlQ29udGFpbmVyIj4KCQkJCTxhIHRpdGxlPSJGb3JkIEUtVHJhbnNpdCBmb3VyZ29ubmV0dGUgdXRpbGl0YWlyZSAyMDI2IiBocmVmPSI\/cGF0aD0vbmV1ZnMvRm9yZC1FX1RyYW5zaXRfQ2FyZ29fVmFuLTIwMjYuaHRtbCIgZGF0YS1tYWtlPSJGb3JkIiBkYXRhLW1vZGVsPSJFLVRyYW5zaXQgZm91cmdvbm5ldHRlIHV0aWxpdGFpcmUgMjAyNiI+CgkJCQkJPGgzPgoJCQkJCQk8c3BhbiBjbGFzcz0ic3BhbkNhck1ha2UgIj5Gb3JkPC9zcGFuPjxicj4KCQkJCQkJPHNwYW4gY2xhc3M9Im1vZGVsTmFtZSBzcGFuTW9kZWxOYW1lIj5FLVRyYW5zaXQgZm91cmdvbm5ldHRlIHV0aWxpdGFpcmUgMjAyNjwvc3Bhbj4KCQkJCQk8L2gzPgoJCQkJPC9hPgoJCQkJICAgIDwhLS0gT1BFTiBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgogICAgPGRpdiBjbGFzcz0iZGl2TmV3Q2FyU3RhcnRQcmljZSI+CiAgICAgICAgw6AgcGFydGlyIGRlCiAgICAgICAgPHNwYW4gY2xhc3M9IiI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjc3IDA5NTwvc3Bhbj48L3NwYW4+CiAgICAgICAgPGkgc3R5bGU9ImNvbG9yOiMwMDA7Zm9udC1zaXplOjIwcHg7IiBjbGFzcz0iY2FyUHJpY2VJbml0aWFsVG9vbFRpcEljb24gZmFsIGZhLWluZm8tY2lyY2xlIGJsYWNrQ29sb3JCb2xkIiBkYXRhLXRvb2x0aXA9JyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7UERTRjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7NzQgMDAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VHJhbnNwb3J0ICZhbXA7IFByw6lwYXJhdGlvbjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MiA5OTUmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUYXhlIEFDOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsxMDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUb3RhbCZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDs3NyAwOTUmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jz48L2k+CiAgICA8L2Rpdj4KICAgIDwhLS0gQ0xPU0UgTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT48IS0tIE9QRU4gTkVXIENBUiBQUk9NTyBQUklDRSAoMjc2KS0tPjxkaXYgY2xhc3M9ImRpdk5ld0NhclByb21vUHJpY2UiPmVuIHJhYmFpcyDDoCA8c3BhbiBjbGFzcz0ic3RyaWtlLXByaWNlIiBzdHlsZT0iY29sb3I6ICNlYjAwMDA7Ij4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+NzQgMDk1PC9zcGFuPjwvc3Bhbj48L2Rpdj48IS0tIENMT1NFIE5FVyBDQVIgUFJPTU8gUFJJQ0UgKDI4MyktLT4KCQkJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJblN0b2NrTGluayIgaGlkZGVuPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBkYXRhLXR5cGU9ImludmRhdGEiIGRhdGEtbWFrZT0iRm9yZCIgZGF0YS1tb2RlbD0iRS1UcmFuc2l0IENhcmdvIFZhbiIgZGF0YS15ZWFyPSIyMDI2IiBkYXRhLXN0eWxlaWRzPSI0Nzg0NjUsNDc4NDY2LDQ3ODQ2Nyw0Nzg0NjgiIGRhdGEtaHlicmlkPSIwIj4KCTwvZGl2PgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW1hZ2VDb250YWluZXIgZmxleC1jZW50ZXIgYWxpZ24tY2VudGVyICI+CgkJCQk8YSB0aXRsZT0iRm9yZCBFLVRyYW5zaXQgZm91cmdvbm5ldHRlIHV0aWxpdGFpcmUgMjAyNiIgaHJlZj0iP3BhdGg9L25ldWZzL0ZvcmQtRV9UcmFuc2l0X0NhcmdvX1Zhbi0yMDI2Lmh0bWwiPgoJCQkJCTxpbWcgYWx0PSJGb3JkIEUtVHJhbnNpdCBmb3VyZ29ubmV0dGUgdXRpbGl0YWlyZSAyMDI2IiBib3JkZXI9IjAiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL2ZyL0ZvcmQvRV9UcmFuc2l0X0NhcmdvX1Zhbi8yMDI2LzQ3ODQ2OC9CbHVlL3Byb2ZpbGUud2VicCIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPgoJCQkJPC9hPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyRm9vdGVyQ29udGFpbmVyIHN0YWNrLWxjIC0tcy05Ij4KCQkJCQk8ZGl2IGNsYXNzPSJjYXJQYXltZW50V3JhcHBlciI+CgkJCTxkaXYgY2xhc3M9ImNvbnRlbnQtc2tlbGV0b24gaHRtbC1ibG9jayIgZGF0YS1ibG9jaz0icGF5bWVudEJsb2NrIiBkYXRhLXR5cGU9ImJsb2NrIiBkYXRhLXNvdXJjZT0ic2VydmVyIiBkYXRhLWNhbGxiYWNrPSJwYXltZW50Q2FsY0Jsb2NrIj4KCQkKCTxpbnB1dCBuYW1lPSJibG9jay1kYXRhIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSJ7JnF1b3Q7c3R5bGVpZCZxdW90OzomcXVvdDs0Nzg0NjUmcXVvdDssJnF1b3Q7dGl0bGUmcXVvdDs6JnF1b3Q7Rm9yZCBFLVRyYW5zaXQgZm91cmdvbm5ldHRlIHV0aWxpdGFpcmUgMjAyNiZxdW90OywmcXVvdDtocmVmJnF1b3Q7OiZxdW90O1wvbmV1ZnNcL0ZvcmQtRV9UcmFuc2l0X0NhcmdvX1Zhbi0yMDI2Lmh0bWwmcXVvdDssJnF1b3Q7bGlua3N0eWxlJnF1b3Q7OiZxdW90OyZxdW90OywmcXVvdDtsaW5rY2xhc3MmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O2NvbnRhaW5lcmNsYXNzJnF1b3Q7OiZxdW90OyZxdW90OywmcXVvdDtwcm9tb3RleHQmcXVvdDs6JnF1b3Q7RFx1MDBlOWNvdXZyZXogbCdvZmZyZSEmcXVvdDt9Ij4KCTwvZGl2PgoJPC9kaXY+CgkJCQkKCQkJPC9kaXY+CgkJPC9kaXY+Cgk8L2Rpdj4JPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggIHJlYmF0ZUJvcmRlckNvbG9yIiBpZD0iZmJ4X2NvbW1lcmNpYWxfNiI+CgkJCgkJPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlSW5uZXJCb3giIGlkPSIiPgoJCQk8ZGl2IGNsYXNzPSJkMmMtZmF2cy10cmlnZ2VyLXdyYXBwZXIgZDJmYXYtMDEiIGRhdGEtbWFrZT0iRm9yZCIgZGF0YS1tb2RlbD0iRS1UcmFuc2l0IENoYXNzaXMiIGRhdGEteWVhcj0iMjAyNyIgZGF0YS10cmltPSIiIGRhdGEtY2FyaWQ9IiI+PC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhclRpdGxlQ29udGFpbmVyIj4KCQkJCTxhIHRpdGxlPSJGb3JkIEUtVHJhbnNpdCBjaMOic3NpcyAyMDI3IiBocmVmPSI\/cGF0aD0vbmV1ZnMvRm9yZC1FX1RyYW5zaXRfQ2hhc3Npcy0yMDI3Lmh0bWwiIGRhdGEtbWFrZT0iRm9yZCIgZGF0YS1tb2RlbD0iRS1UcmFuc2l0IGNow6Jzc2lzIDIwMjciPgoJCQkJCTxoMz4KCQkJCQkJPHNwYW4gY2xhc3M9InNwYW5DYXJNYWtlICI+Rm9yZDwvc3Bhbj48YnI+CgkJCQkJCTxzcGFuIGNsYXNzPSJtb2RlbE5hbWUgc3Bhbk1vZGVsTmFtZSI+RS1UcmFuc2l0IGNow6Jzc2lzIDIwMjc8L3NwYW4+CgkJCQkJPC9oMz4KCQkJCTwvYT4KCQkJCSAgICA8IS0tIE9QRU4gTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KICAgIDxkaXYgY2xhc3M9ImRpdk5ld0NhclN0YXJ0UHJpY2UiPgogICAgICAgIMOgIHBhcnRpciBkZQogICAgICAgIDxzcGFuIGNsYXNzPSIiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj43MiA5NDU8L3NwYW4+PC9zcGFuPgogICAgICAgIDxpIHN0eWxlPSJjb2xvcjojMDAwO2ZvbnQtc2l6ZToyMHB4OyIgY2xhc3M9ImNhclByaWNlSW5pdGlhbFRvb2xUaXBJY29uIGZhbCBmYS1pbmZvLWNpcmNsZSBibGFja0NvbG9yQm9sZCIgZGF0YS10b29sdGlwPScmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1BEU0Y6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzY5IDc1MCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RyYW5zcG9ydCAmYW1wOyBQcsOpcGFyYXRpb246Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzMgMDk1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VGF4ZSBBQzombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MTAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VG90YWwmbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7NzIgOTQ1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0Oyc+PC9pPgogICAgPC9kaXY+CiAgICA8IS0tIENMT1NFIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CgkJCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW5TdG9ja0xpbmsiIGhpZGRlbj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgZGF0YS10eXBlPSJpbnZkYXRhIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9IkUtVHJhbnNpdCBDaGFzc2lzIiBkYXRhLXllYXI9IjIwMjciIGRhdGEtc3R5bGVpZHM9IjQ4NTgzNSw0ODU4MzYiIGRhdGEtaHlicmlkPSIwIj4KCTwvZGl2PgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW1hZ2VDb250YWluZXIgZmxleC1jZW50ZXIgYWxpZ24tY2VudGVyICI+CgkJCQk8YSB0aXRsZT0iRm9yZCBFLVRyYW5zaXQgY2jDonNzaXMgMjAyNyIgaHJlZj0iP3BhdGg9L25ldWZzL0ZvcmQtRV9UcmFuc2l0X0NoYXNzaXMtMjAyNy5odG1sIj4KCQkJCQk8aW1nIGFsdD0iRm9yZCBFLVRyYW5zaXQgY2jDonNzaXMgMjAyNyIgYm9yZGVyPSIwIiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9mci9Gb3JkL0VfVHJhbnNpdF9DaGFzc2lzLzIwMjcvNDg1ODM2L0JsdWUvcHJvZmlsZS53ZWJwIiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+CgkJCQk8L2E+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJGb290ZXJDb250YWluZXIgc3RhY2stbGMgLS1zLTkiPgoJCQkJCTxkaXYgY2xhc3M9ImNhclBheW1lbnRXcmFwcGVyIj4KCQkJPGRpdiBjbGFzcz0iY29udGVudC1za2VsZXRvbiBodG1sLWJsb2NrIiBkYXRhLWJsb2NrPSJwYXltZW50QmxvY2siIGRhdGEtdHlwZT0iYmxvY2siIGRhdGEtc291cmNlPSJzZXJ2ZXIiIGRhdGEtY2FsbGJhY2s9InBheW1lbnRDYWxjQmxvY2siPgoJCQoJPGlucHV0IG5hbWU9ImJsb2NrLWRhdGEiIHR5cGU9ImhpZGRlbiIgdmFsdWU9IiI+Cgk8L2Rpdj4KCTwvZGl2PgoJCQkJCgkJCTwvZGl2PgoJCTwvZGl2PgoJPC9kaXY+CTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZU91dGVyQm94ICByZWJhdGVCb3JkZXJDb2xvciIgaWQ9ImZieF9jb21tZXJjaWFsXzciPgoJCQoJCTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZUlubmVyQm94IiBpZD0iIj4KCQkJPGRpdiBjbGFzcz0iZDJjLWZhdnMtdHJpZ2dlci13cmFwcGVyIGQyZmF2LTAxIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9IkUtVHJhbnNpdCBDaGFzc2lzIiBkYXRhLXllYXI9IjIwMjYiIGRhdGEtdHJpbT0iIiBkYXRhLWNhcmlkPSIiPjwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJUaXRsZUNvbnRhaW5lciI+CgkJCQk8YSB0aXRsZT0iRm9yZCBFLVRyYW5zaXQgY2jDonNzaXMgMjAyNiIgaHJlZj0iP3BhdGg9L25ldWZzL0ZvcmQtRV9UcmFuc2l0X0NoYXNzaXMtMjAyNi5odG1sIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9IkUtVHJhbnNpdCBjaMOic3NpcyAyMDI2Ij4KCQkJCQk8aDM+CgkJCQkJCTxzcGFuIGNsYXNzPSJzcGFuQ2FyTWFrZSAiPkZvcmQ8L3NwYW4+PGJyPgoJCQkJCQk8c3BhbiBjbGFzcz0ibW9kZWxOYW1lIHNwYW5Nb2RlbE5hbWUiPkUtVHJhbnNpdCBjaMOic3NpcyAyMDI2PC9zcGFuPgoJCQkJCTwvaDM+CgkJCQk8L2E+CgkJCQkgICAgPCEtLSBPUEVOIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CiAgICA8ZGl2IGNsYXNzPSJkaXZOZXdDYXJTdGFydFByaWNlIj4KICAgICAgICDDoCBwYXJ0aXIgZGUKICAgICAgICA8c3BhbiBjbGFzcz0iIj4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+NzIgODQ1PC9zcGFuPjwvc3Bhbj4KICAgICAgICA8aSBzdHlsZT0iY29sb3I6IzAwMDtmb250LXNpemU6MjBweDsiIGNsYXNzPSJjYXJQcmljZUluaXRpYWxUb29sVGlwSWNvbiBmYWwgZmEtaW5mby1jaXJjbGUgYmxhY2tDb2xvckJvbGQiIGRhdGEtdG9vbHRpcD0nJmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtQRFNGOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDs2OSA3NTAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUcmFuc3BvcnQgJmFtcDsgUHLDqXBhcmF0aW9uOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsyIDk5NSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RheGUgQUM6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzEwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RvdGFsJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzcyIDg0NSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsnPjwvaT4KICAgIDwvZGl2PgogICAgPCEtLSBDTE9TRSBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgoJCQkJCTxkaXYgY2xhc3M9ImRpdkNhckluU3RvY2tMaW5rIiBoaWRkZW4+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGRhdGEtdHlwZT0iaW52ZGF0YSIgZGF0YS1tYWtlPSJGb3JkIiBkYXRhLW1vZGVsPSJFLVRyYW5zaXQgQ2hhc3NpcyIgZGF0YS15ZWFyPSIyMDI2IiBkYXRhLXN0eWxlaWRzPSI0Nzg1OTcsNDc4NTk2IiBkYXRhLWh5YnJpZD0iMCI+Cgk8L2Rpdj4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckltYWdlQ29udGFpbmVyIGZsZXgtY2VudGVyIGFsaWduLWNlbnRlciAiPgoJCQkJPGEgdGl0bGU9IkZvcmQgRS1UcmFuc2l0IGNow6Jzc2lzIDIwMjYiIGhyZWY9Ij9wYXRoPS9uZXVmcy9Gb3JkLUVfVHJhbnNpdF9DaGFzc2lzLTIwMjYuaHRtbCI+CgkJCQkJPGltZyBhbHQ9IkZvcmQgRS1UcmFuc2l0IGNow6Jzc2lzIDIwMjYiIGJvcmRlcj0iMCIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvZnIvRm9yZC9FX1RyYW5zaXRfQ2hhc3Npcy8yMDI2LzQ3ODU5Ni9CbHVlL3Byb2ZpbGUud2VicCIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPgoJCQkJPC9hPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyRm9vdGVyQ29udGFpbmVyIHN0YWNrLWxjIC0tcy05Ij4KCQkJCQk8ZGl2IGNsYXNzPSJjYXJQYXltZW50V3JhcHBlciI+CgkJCTxkaXYgY2xhc3M9ImNvbnRlbnQtc2tlbGV0b24gaHRtbC1ibG9jayIgZGF0YS1ibG9jaz0icGF5bWVudEJsb2NrIiBkYXRhLXR5cGU9ImJsb2NrIiBkYXRhLXNvdXJjZT0ic2VydmVyIiBkYXRhLWNhbGxiYWNrPSJwYXltZW50Q2FsY0Jsb2NrIj4KCQkKCTxpbnB1dCBuYW1lPSJibG9jay1kYXRhIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSIiPgoJPC9kaXY+Cgk8L2Rpdj4KCQkJCQoJCQk8L2Rpdj4KCQk8L2Rpdj4KCTwvZGl2Pgk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVPdXRlckJveCAgcmViYXRlQm9yZGVyQ29sb3IiIGlkPSJmYnhfY29tbWVyY2lhbF84Ij4KCQkKCQk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVJbm5lckJveCIgaWQ9IiI+CgkJCTxkaXYgY2xhc3M9ImQyYy1mYXZzLXRyaWdnZXItd3JhcHBlciBkMmZhdi0wMSIgZGF0YS1tYWtlPSJGb3JkIiBkYXRhLW1vZGVsPSJFLVRyYW5zaXQgQ3V0YXdheSIgZGF0YS15ZWFyPSIyMDI3IiBkYXRhLXRyaW09IiIgZGF0YS1jYXJpZD0iIj48L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyVGl0bGVDb250YWluZXIiPgoJCQkJPGEgdGl0bGU9IkZvcmQgRS1UcmFuc2l0IGZvdXJnb24gdHJvbnF1w6kgMjAyNyIgaHJlZj0iP3BhdGg9L25ldWZzL0ZvcmQtRV9UcmFuc2l0X0N1dGF3YXktMjAyNy5odG1sIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9IkUtVHJhbnNpdCBmb3VyZ29uIHRyb25xdcOpIDIwMjciPgoJCQkJCTxoMz4KCQkJCQkJPHNwYW4gY2xhc3M9InNwYW5DYXJNYWtlICI+Rm9yZDwvc3Bhbj48YnI+CgkJCQkJCTxzcGFuIGNsYXNzPSJtb2RlbE5hbWUgc3Bhbk1vZGVsTmFtZSI+RS1UcmFuc2l0IGZvdXJnb24gdHJvbnF1w6kgMjAyNzwvc3Bhbj4KCQkJCQk8L2gzPgoJCQkJPC9hPgoJCQkJICAgIDwhLS0gT1BFTiBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgogICAgPGRpdiBjbGFzcz0iZGl2TmV3Q2FyU3RhcnRQcmljZSI+CiAgICAgICAgw6AgcGFydGlyIGRlCiAgICAgICAgPHNwYW4gY2xhc3M9IiI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjcyIDE0NTwvc3Bhbj48L3NwYW4+CiAgICAgICAgPGkgc3R5bGU9ImNvbG9yOiMwMDA7Zm9udC1zaXplOjIwcHg7IiBjbGFzcz0iY2FyUHJpY2VJbml0aWFsVG9vbFRpcEljb24gZmFsIGZhLWluZm8tY2lyY2xlIGJsYWNrQ29sb3JCb2xkIiBkYXRhLXRvb2x0aXA9JyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7UERTRjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7NjggOTUwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VHJhbnNwb3J0ICZhbXA7IFByw6lwYXJhdGlvbjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MyAwOTUmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUYXhlIEFDOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsxMDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUb3RhbCZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDs3MiAxNDUmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jz48L2k+CiAgICA8L2Rpdj4KICAgIDwhLS0gQ0xPU0UgTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KCQkJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJblN0b2NrTGluayIgaGlkZGVuPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBkYXRhLXR5cGU9ImludmRhdGEiIGRhdGEtbWFrZT0iRm9yZCIgZGF0YS1tb2RlbD0iRS1UcmFuc2l0IEN1dGF3YXkiIGRhdGEteWVhcj0iMjAyNyIgZGF0YS1zdHlsZWlkcz0iNDg1ODQ3LDQ4NTg0OCIgZGF0YS1oeWJyaWQ9IjAiPgoJPC9kaXY+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJbWFnZUNvbnRhaW5lciBmbGV4LWNlbnRlciBhbGlnbi1jZW50ZXIgIj4KCQkJCTxhIHRpdGxlPSJGb3JkIEUtVHJhbnNpdCBmb3VyZ29uIHRyb25xdcOpIDIwMjciIGhyZWY9Ij9wYXRoPS9uZXVmcy9Gb3JkLUVfVHJhbnNpdF9DdXRhd2F5LTIwMjcuaHRtbCI+CgkJCQkJPGltZyBhbHQ9IkZvcmQgRS1UcmFuc2l0IGZvdXJnb24gdHJvbnF1w6kgMjAyNyIgYm9yZGVyPSIwIiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9mci9Gb3JkL0VfVHJhbnNpdF9DdXRhd2F5LzIwMjcvNDg1ODQ4L0JsdWUvcHJvZmlsZS53ZWJwIiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+CgkJCQk8L2E+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJGb290ZXJDb250YWluZXIgc3RhY2stbGMgLS1zLTkiPgoJCQkJCTxkaXYgY2xhc3M9ImNhclBheW1lbnRXcmFwcGVyIj4KCQkJPGRpdiBjbGFzcz0iY29udGVudC1za2VsZXRvbiBodG1sLWJsb2NrIiBkYXRhLWJsb2NrPSJwYXltZW50QmxvY2siIGRhdGEtdHlwZT0iYmxvY2siIGRhdGEtc291cmNlPSJzZXJ2ZXIiIGRhdGEtY2FsbGJhY2s9InBheW1lbnRDYWxjQmxvY2siPgoJCQoJPGlucHV0IG5hbWU9ImJsb2NrLWRhdGEiIHR5cGU9ImhpZGRlbiIgdmFsdWU9IiI+Cgk8L2Rpdj4KCTwvZGl2PgoJCQkJCgkJCTwvZGl2PgoJCTwvZGl2PgoJPC9kaXY+CTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZU91dGVyQm94ICByZWJhdGVCb3JkZXJDb2xvciIgaWQ9ImZieF9jb21tZXJjaWFsXzkiPgoJCQoJCTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZUlubmVyQm94IiBpZD0iIj4KCQkJPGRpdiBjbGFzcz0iZDJjLWZhdnMtdHJpZ2dlci13cmFwcGVyIGQyZmF2LTAxIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9IkUtVHJhbnNpdCBDdXRhd2F5IiBkYXRhLXllYXI9IjIwMjYiIGRhdGEtdHJpbT0iIiBkYXRhLWNhcmlkPSIiPjwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJUaXRsZUNvbnRhaW5lciI+CgkJCQk8YSB0aXRsZT0iRm9yZCBFLVRyYW5zaXQgZm91cmdvbiB0cm9ucXXDqSAyMDI2IiBocmVmPSI\/cGF0aD0vbmV1ZnMvRm9yZC1FX1RyYW5zaXRfQ3V0YXdheS0yMDI2Lmh0bWwiIGRhdGEtbWFrZT0iRm9yZCIgZGF0YS1tb2RlbD0iRS1UcmFuc2l0IGZvdXJnb24gdHJvbnF1w6kgMjAyNiI+CgkJCQkJPGgzPgoJCQkJCQk8c3BhbiBjbGFzcz0ic3BhbkNhck1ha2UgIj5Gb3JkPC9zcGFuPjxicj4KCQkJCQkJPHNwYW4gY2xhc3M9Im1vZGVsTmFtZSBzcGFuTW9kZWxOYW1lIj5FLVRyYW5zaXQgZm91cmdvbiB0cm9ucXXDqSAyMDI2PC9zcGFuPgoJCQkJCTwvaDM+CgkJCQk8L2E+CgkJCQkgICAgPCEtLSBPUEVOIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CiAgICA8ZGl2IGNsYXNzPSJkaXZOZXdDYXJTdGFydFByaWNlIj4KICAgICAgICDDoCBwYXJ0aXIgZGUKICAgICAgICA8c3BhbiBjbGFzcz0iIj4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+NzIgMDQ1PC9zcGFuPjwvc3Bhbj4KICAgICAgICA8aSBzdHlsZT0iY29sb3I6IzAwMDtmb250LXNpemU6MjBweDsiIGNsYXNzPSJjYXJQcmljZUluaXRpYWxUb29sVGlwSWNvbiBmYWwgZmEtaW5mby1jaXJjbGUgYmxhY2tDb2xvckJvbGQiIGRhdGEtdG9vbHRpcD0nJmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtQRFNGOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDs2OCA5NTAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUcmFuc3BvcnQgJmFtcDsgUHLDqXBhcmF0aW9uOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsyIDk5NSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RheGUgQUM6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzEwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RvdGFsJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzcyIDA0NSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsnPjwvaT4KICAgIDwvZGl2PgogICAgPCEtLSBDTE9TRSBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgoJCQkJCTxkaXYgY2xhc3M9ImRpdkNhckluU3RvY2tMaW5rIiBoaWRkZW4+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGRhdGEtdHlwZT0iaW52ZGF0YSIgZGF0YS1tYWtlPSJGb3JkIiBkYXRhLW1vZGVsPSJFLVRyYW5zaXQgQ3V0YXdheSIgZGF0YS15ZWFyPSIyMDI2IiBkYXRhLXN0eWxlaWRzPSI0Nzg1OTksNDc4NTk4IiBkYXRhLWh5YnJpZD0iMCI+Cgk8L2Rpdj4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckltYWdlQ29udGFpbmVyIGZsZXgtY2VudGVyIGFsaWduLWNlbnRlciAiPgoJCQkJPGEgdGl0bGU9IkZvcmQgRS1UcmFuc2l0IGZvdXJnb24gdHJvbnF1w6kgMjAyNiIgaHJlZj0iP3BhdGg9L25ldWZzL0ZvcmQtRV9UcmFuc2l0X0N1dGF3YXktMjAyNi5odG1sIj4KCQkJCQk8aW1nIGFsdD0iRm9yZCBFLVRyYW5zaXQgZm91cmdvbiB0cm9ucXXDqSAyMDI2IiBib3JkZXI9IjAiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL2ZyL0ZvcmQvRV9UcmFuc2l0X0N1dGF3YXkvMjAyNi80Nzg1OTgvQmx1ZS9wcm9maWxlLndlYnAiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj4KCQkJCTwvYT4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckZvb3RlckNvbnRhaW5lciBzdGFjay1sYyAtLXMtOSI+CgkJCQkJPGRpdiBjbGFzcz0iY2FyUGF5bWVudFdyYXBwZXIiPgoJCQk8ZGl2IGNsYXNzPSJjb250ZW50LXNrZWxldG9uIGh0bWwtYmxvY2siIGRhdGEtYmxvY2s9InBheW1lbnRCbG9jayIgZGF0YS10eXBlPSJibG9jayIgZGF0YS1zb3VyY2U9InNlcnZlciIgZGF0YS1jYWxsYmFjaz0icGF5bWVudENhbGNCbG9jayI+CgkJCgk8aW5wdXQgbmFtZT0iYmxvY2stZGF0YSIgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iIj4KCTwvZGl2PgoJPC9kaXY+CgkJCQkKCQkJPC9kaXY+CgkJPC9kaXY+Cgk8L2Rpdj4JPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggIHJlYmF0ZUJvcmRlckNvbG9yIiBpZD0iZmJ4X2NvbW1lcmNpYWxfMTAiPgoJCQoJCTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZUlubmVyQm94IiBpZD0iIj4KCQkJPGRpdiBjbGFzcz0iZDJjLWZhdnMtdHJpZ2dlci13cmFwcGVyIGQyZmF2LTAxIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9IlN1cGVyIER1dHkgRi0zNTAgRFJXIiBkYXRhLXllYXI9IjIwMjYiIGRhdGEtdHJpbT0iIiBkYXRhLWNhcmlkPSIiPjwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJUaXRsZUNvbnRhaW5lciI+CgkJCQk8YSB0aXRsZT0iRm9yZCBTdXBlciBEdXR5IEYtMzUwIMOgIHJvdWVzIGFycmnDqHJlIGp1bWVsw6llcyAyMDI2IiBocmVmPSI\/cGF0aD0vbmV1ZnMvRm9yZC1TdXBlcl9EdXR5X0ZfMzUwX0RSVy0yMDI2Lmh0bWwiIGRhdGEtbWFrZT0iRm9yZCIgZGF0YS1tb2RlbD0iU3VwZXIgRHV0eSBGLTM1MCDDoCByb3VlcyBhcnJpw6hyZSBqdW1lbMOpZXMgMjAyNiI+CgkJCQkJPGgzPgoJCQkJCQk8c3BhbiBjbGFzcz0ic3BhbkNhck1ha2UgIj5Gb3JkPC9zcGFuPjxicj4KCQkJCQkJPHNwYW4gY2xhc3M9Im1vZGVsTmFtZSBzcGFuTW9kZWxOYW1lIj5TdXBlciBEdXR5IEYtMzUwIMOgIHJvdWVzIGFycmnDqHJlIGp1bWVsw6llcyAyMDI2PC9zcGFuPgoJCQkJCTwvaDM+CgkJCQk8L2E+CgkJCQkgICAgPCEtLSBPUEVOIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CiAgICA8ZGl2IGNsYXNzPSJkaXZOZXdDYXJTdGFydFByaWNlIj4KICAgICAgICDDoCBwYXJ0aXIgZGUKICAgICAgICA8c3BhbiBjbGFzcz0iIj4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+NjcgMjgwPC9zcGFuPjwvc3Bhbj4KICAgICAgICA8aSBzdHlsZT0iY29sb3I6IzAwMDtmb250LXNpemU6MjBweDsiIGNsYXNzPSJjYXJQcmljZUluaXRpYWxUb29sVGlwSWNvbiBmYWwgZmEtaW5mby1jaXJjbGUgYmxhY2tDb2xvckJvbGQiIGRhdGEtdG9vbHRpcD0nJmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtQRFNGOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDs2NCA0ODUmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUcmFuc3BvcnQgJmFtcDsgUHLDqXBhcmF0aW9uOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsyIDY5NSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RheGUgQUM6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzEwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RvdGFsJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzY3IDI4MCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsnPjwvaT4KICAgIDwvZGl2PgogICAgPCEtLSBDTE9TRSBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgoJCQkJCTxkaXYgY2xhc3M9ImRpdkNhckluU3RvY2tMaW5rIiBoaWRkZW4+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGRhdGEtdHlwZT0iaW52ZGF0YSIgZGF0YS1tYWtlPSJGb3JkIiBkYXRhLW1vZGVsPSJTdXBlciBEdXR5IEYtMzUwIERSVyIgZGF0YS15ZWFyPSIyMDI2IiBkYXRhLXN0eWxlaWRzPSI0Nzc2MDIsNDc4MDAzLDQ3ODAwNyw0Nzc2MDMsNDc4MDA0LDQ3ODAwOCw0NzgwMDUsNDc3NjExLDQ3ODAxMSw0NzgwMDksNDc4MDA2LDQ3ODAxNSw0NzgwMTIsNDc4MDEwLDQ3NzYwNiw0Nzc2MDQsNDc4MDEzLDQ3ODAxNiw0NzgwMTcsNDc4MDE0LDQ3ODAxOCw0Nzc2MDcsNDc3NjA1LDQ3NzYxMiw0NzgwMTksNDc3NjA4LDQ3NzYxMyw0Nzc2MDksNDc3NjEwIiBkYXRhLWh5YnJpZD0iMCI+Cgk8L2Rpdj4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckltYWdlQ29udGFpbmVyIGZsZXgtY2VudGVyIGFsaWduLWNlbnRlciAiPgoJCQkJPGEgdGl0bGU9IkZvcmQgU3VwZXIgRHV0eSBGLTM1MCDDoCByb3VlcyBhcnJpw6hyZSBqdW1lbMOpZXMgMjAyNiIgaHJlZj0iP3BhdGg9L25ldWZzL0ZvcmQtU3VwZXJfRHV0eV9GXzM1MF9EUlctMjAyNi5odG1sIj4KCQkJCQk8aW1nIGFsdD0iRm9yZCBTdXBlciBEdXR5IEYtMzUwIMOgIHJvdWVzIGFycmnDqHJlIGp1bWVsw6llcyAyMDI2IiBib3JkZXI9IjAiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL2ZyL0ZvcmQvU3VwZXJfRHV0eV9GXzM1MF9EUlcvMjAyNi80Nzc2MTAvQmx1ZS9wcm9maWxlLndlYnAiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj4KCQkJCTwvYT4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckZvb3RlckNvbnRhaW5lciBzdGFjay1sYyAtLXMtOSI+CgkJCQkJPGRpdiBjbGFzcz0iY2FyUGF5bWVudFdyYXBwZXIiPgoJCQk8ZGl2IGNsYXNzPSJjb250ZW50LXNrZWxldG9uIGh0bWwtYmxvY2siIGRhdGEtYmxvY2s9InBheW1lbnRCbG9jayIgZGF0YS10eXBlPSJibG9jayIgZGF0YS1zb3VyY2U9InNlcnZlciIgZGF0YS1jYWxsYmFjaz0icGF5bWVudENhbGNCbG9jayI+CgkJCgk8aW5wdXQgbmFtZT0iYmxvY2stZGF0YSIgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iIj4KCTwvZGl2PgoJPC9kaXY+CgkJCQkKCQkJPC9kaXY+CgkJPC9kaXY+Cgk8L2Rpdj4JPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggIHJlYmF0ZUJvcmRlckNvbG9yIiBpZD0iZmJ4X2NvbW1lcmNpYWxfMTEiPgoJCQoJCTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZUlubmVyQm94IiBpZD0iIj4KCQkJPGRpdiBjbGFzcz0iZDJjLWZhdnMtdHJpZ2dlci13cmFwcGVyIGQyZmF2LTAxIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9IlN1cGVyIER1dHkgRi0zNTAgU1JXIiBkYXRhLXllYXI9IjIwMjciIGRhdGEtdHJpbT0iIiBkYXRhLWNhcmlkPSIiPjwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJUaXRsZUNvbnRhaW5lciI+CgkJCQk8YSB0aXRsZT0iRm9yZCBTdXBlciBEdXR5IEYtMzUwIMOgIHJvdWVzIGFycmnDqHJlIHNpbXBsZXMgMjAyNyIgaHJlZj0iP3BhdGg9L25ldWZzL0ZvcmQtU3VwZXJfRHV0eV9GXzM1MF9TUlctMjAyNy5odG1sIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9IlN1cGVyIER1dHkgRi0zNTAgw6Agcm91ZXMgYXJyacOocmUgc2ltcGxlcyAyMDI3Ij4KCQkJCQk8aDM+CgkJCQkJCTxzcGFuIGNsYXNzPSJzcGFuQ2FyTWFrZSAiPkZvcmQ8L3NwYW4+PGJyPgoJCQkJCQk8c3BhbiBjbGFzcz0ibW9kZWxOYW1lIHNwYW5Nb2RlbE5hbWUiPlN1cGVyIER1dHkgRi0zNTAgw6Agcm91ZXMgYXJyacOocmUgc2ltcGxlcyAyMDI3PC9zcGFuPgoJCQkJCTwvaDM+CgkJCQk8L2E+CgkJCQkgICAgPCEtLSBPUEVOIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CiAgICA8ZGl2IGNsYXNzPSJkaXZOZXdDYXJTdGFydFByaWNlIj4KICAgICAgICDDoCBwYXJ0aXIgZGUKICAgICAgICA8c3BhbiBjbGFzcz0iIj4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+NjcgMDM0PC9zcGFuPjwvc3Bhbj4KICAgICAgICA8aSBzdHlsZT0iY29sb3I6IzAwMDtmb250LXNpemU6MjBweDsiIGNsYXNzPSJjYXJQcmljZUluaXRpYWxUb29sVGlwSWNvbiBmYWwgZmEtaW5mby1jaXJjbGUgYmxhY2tDb2xvckJvbGQiIGRhdGEtdG9vbHRpcD0nJmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtQRFNGOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDs2NCAyMzkmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUcmFuc3BvcnQgJmFtcDsgUHLDqXBhcmF0aW9uOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsyIDY5NSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RheGUgQUM6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzEwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RvdGFsJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzY3IDAzNCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsnPjwvaT4KICAgIDwvZGl2PgogICAgPCEtLSBDTE9TRSBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgoJCQkJCTxkaXYgY2xhc3M9ImRpdkNhckluU3RvY2tMaW5rIiBoaWRkZW4+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGRhdGEtdHlwZT0iaW52ZGF0YSIgZGF0YS1tYWtlPSJGb3JkIiBkYXRhLW1vZGVsPSJTdXBlciBEdXR5IEYtMzUwIFNSVyIgZGF0YS15ZWFyPSIyMDI3IiBkYXRhLXN0eWxlaWRzPSI0ODU5MjUsNDg2NDU2LDQ4NTkyOSw0ODY0NTcsNDg1OTI3LDQ4NTkzMiw0ODY0NTgsNDg2NDYwLDQ4NTkzNiw0ODU5MzAsNDg1OTQ0LDQ4NjQ1OSw0ODY0NjQsNDg2NDYxLDQ4NTkyNiw0ODU5MzQsNDg2NDYyLDQ4NjQ2NSw0ODU5MzksNDg1OTQ3LDQ4NjQ2Niw0ODY0NjMsNDg1OTI4LDQ4NTkzMyw0ODY0NjcsNDg1OTM3LDQ4NTk0NSw0ODU5MzEsNDg1OTM1LDQ4NTk0MCw0ODU5NDgsNDg1OTM4LDQ4NTk0Niw0ODY0NjgsNDg1OTQxLDQ4NTk0OSw0ODY0NjksNDg1OTQyLDQ4NTk0Myw0ODU5NTAsNDg1OTUxIiBkYXRhLWh5YnJpZD0iMCI+Cgk8L2Rpdj4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckltYWdlQ29udGFpbmVyIGZsZXgtY2VudGVyIGFsaWduLWNlbnRlciAiPgoJCQkJPGEgdGl0bGU9IkZvcmQgU3VwZXIgRHV0eSBGLTM1MCDDoCByb3VlcyBhcnJpw6hyZSBzaW1wbGVzIDIwMjciIGhyZWY9Ij9wYXRoPS9uZXVmcy9Gb3JkLVN1cGVyX0R1dHlfRl8zNTBfU1JXLTIwMjcuaHRtbCI+CgkJCQkJPGltZyBhbHQ9IkZvcmQgU3VwZXIgRHV0eSBGLTM1MCDDoCByb3VlcyBhcnJpw6hyZSBzaW1wbGVzIDIwMjciIGJvcmRlcj0iMCIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvZnIvRm9yZC9TdXBlcl9EdXR5X0ZfMzUwX1NSVy8yMDI3LzQ4NTk1MS9CbHVlL3Byb2ZpbGUud2VicCIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPgoJCQkJPC9hPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyRm9vdGVyQ29udGFpbmVyIHN0YWNrLWxjIC0tcy05Ij4KCQkJCQk8ZGl2IGNsYXNzPSJjYXJQYXltZW50V3JhcHBlciI+CgkJCTxkaXYgY2xhc3M9ImNvbnRlbnQtc2tlbGV0b24gaHRtbC1ibG9jayIgZGF0YS1ibG9jaz0icGF5bWVudEJsb2NrIiBkYXRhLXR5cGU9ImJsb2NrIiBkYXRhLXNvdXJjZT0ic2VydmVyIiBkYXRhLWNhbGxiYWNrPSJwYXltZW50Q2FsY0Jsb2NrIj4KCQkKCTxpbnB1dCBuYW1lPSJibG9jay1kYXRhIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSIiPgoJPC9kaXY+Cgk8L2Rpdj4KCQkJCQoJCQk8L2Rpdj4KCQk8L2Rpdj4KCTwvZGl2Pgk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVPdXRlckJveCAgcmViYXRlQm9yZGVyQ29sb3IiIGlkPSJmYnhfY29tbWVyY2lhbF8xMiI+CgkJCgkJPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlSW5uZXJCb3giIGlkPSIiPgoJCQk8ZGl2IGNsYXNzPSJkMmMtZmF2cy10cmlnZ2VyLXdyYXBwZXIgZDJmYXYtMDEiIGRhdGEtbWFrZT0iRm9yZCIgZGF0YS1tb2RlbD0iU3VwZXIgRHV0eSBGLTM1MCBTUlciIGRhdGEteWVhcj0iMjAyNSIgZGF0YS10cmltPSIiIGRhdGEtY2FyaWQ9IiI+PC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhclRpdGxlQ29udGFpbmVyIj4KCQkJCTxhIHRpdGxlPSJGb3JkIFN1cGVyIER1dHkgRi0zNTAgw6Agcm91ZXMgYXJyacOocmUgc2ltcGxlcyAyMDI1IiBocmVmPSI\/cGF0aD0vbmV1ZnMvRm9yZC1TdXBlcl9EdXR5X0ZfMzUwX1NSVy0yMDI1Lmh0bWwiIGRhdGEtbWFrZT0iRm9yZCIgZGF0YS1tb2RlbD0iU3VwZXIgRHV0eSBGLTM1MCDDoCByb3VlcyBhcnJpw6hyZSBzaW1wbGVzIDIwMjUiPgoJCQkJCTxoMz4KCQkJCQkJPHNwYW4gY2xhc3M9InNwYW5DYXJNYWtlICI+Rm9yZDwvc3Bhbj48YnI+CgkJCQkJCTxzcGFuIGNsYXNzPSJtb2RlbE5hbWUgc3Bhbk1vZGVsTmFtZSI+U3VwZXIgRHV0eSBGLTM1MCDDoCByb3VlcyBhcnJpw6hyZSBzaW1wbGVzIDIwMjU8L3NwYW4+CgkJCQkJPC9oMz4KCQkJCTwvYT4KCQkJCSAgICA8IS0tIE9QRU4gTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KICAgIDxkaXYgY2xhc3M9ImRpdk5ld0NhclN0YXJ0UHJpY2UiPgogICAgICAgIMOgIHBhcnRpciBkZQogICAgICAgIDxzcGFuIGNsYXNzPSIiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj42NCA5NzQ8L3NwYW4+PC9zcGFuPgogICAgICAgIDxpIHN0eWxlPSJjb2xvcjojMDAwO2ZvbnQtc2l6ZToyMHB4OyIgY2xhc3M9ImNhclByaWNlSW5pdGlhbFRvb2xUaXBJY29uIGZhbCBmYS1pbmZvLWNpcmNsZSBibGFja0NvbG9yQm9sZCIgZGF0YS10b29sdGlwPScmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1BEU0Y6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzYyIDQ3OSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RyYW5zcG9ydCAmYW1wOyBQcsOpcGFyYXRpb246Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzIgMzk1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VGF4ZSBBQzombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MTAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VG90YWwmbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7NjQgOTc0Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0Oyc+PC9pPgogICAgPC9kaXY+CiAgICA8IS0tIENMT1NFIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CgkJCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW5TdG9ja0xpbmsiIGhpZGRlbj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgZGF0YS10eXBlPSJpbnZkYXRhIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9IlN1cGVyIER1dHkgRi0zNTAgU1JXIiBkYXRhLXllYXI9IjIwMjUiIGRhdGEtc3R5bGVpZHM9IjQ2NTIzMyw0NjU3OTUsNDY1MjM0LDQ2NTIzNiw0NjU3OTYsNDY1MjM5LDQ2NTI0NSw0NjU3OTcsNDY1Nzk5LDQ2NTIzNyw0NjU3OTgsNDY1ODAzLDQ2NTgwMCw0NjUyNDAsNDY1MjQ2LDQ2NTgwMSw0NjU4MDQsNDY1MjM1LDQ2NTgwNSw0NjU4MDIsNDY1ODA2LDQ2NTIzOCw0NjUyNDEsNDY1MjQ3LDQ2NTgwNyw0NjUyNDIsNDY1MjQ4LDQ2NTI0Myw0NjUyNDQsNDY1MjQ5LDQ2NTI1MCIgZGF0YS1oeWJyaWQ9IjAiPgoJPC9kaXY+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJbWFnZUNvbnRhaW5lciBmbGV4LWNlbnRlciBhbGlnbi1jZW50ZXIgIj4KCQkJCTxhIHRpdGxlPSJGb3JkIFN1cGVyIER1dHkgRi0zNTAgw6Agcm91ZXMgYXJyacOocmUgc2ltcGxlcyAyMDI1IiBocmVmPSI\/cGF0aD0vbmV1ZnMvRm9yZC1TdXBlcl9EdXR5X0ZfMzUwX1NSVy0yMDI1Lmh0bWwiPgoJCQkJCTxpbWcgYWx0PSJGb3JkIFN1cGVyIER1dHkgRi0zNTAgw6Agcm91ZXMgYXJyacOocmUgc2ltcGxlcyAyMDI1IiBib3JkZXI9IjAiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL2ZyL0ZvcmQvU3VwZXJfRHV0eV9GXzM1MF9TUlcvMjAyNS80NjUyNTAvQmx1ZS9wcm9maWxlLndlYnAiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj4KCQkJCTwvYT4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckZvb3RlckNvbnRhaW5lciBzdGFjay1sYyAtLXMtOSI+CgkJCQkJPGRpdiBjbGFzcz0iY2FyUGF5bWVudFdyYXBwZXIiPgoJCQk8ZGl2IGNsYXNzPSJjb250ZW50LXNrZWxldG9uIGh0bWwtYmxvY2siIGRhdGEtYmxvY2s9InBheW1lbnRCbG9jayIgZGF0YS10eXBlPSJibG9jayIgZGF0YS1zb3VyY2U9InNlcnZlciIgZGF0YS1jYWxsYmFjaz0icGF5bWVudENhbGNCbG9jayI+CgkJCgk8aW5wdXQgbmFtZT0iYmxvY2stZGF0YSIgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iIj4KCTwvZGl2PgoJPC9kaXY+CgkJCQkKCQkJPC9kaXY+CgkJPC9kaXY+Cgk8L2Rpdj4JPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggIHJlYmF0ZUJvcmRlckNvbG9yIiBpZD0iZmJ4X2NvbW1lcmNpYWxfMTMiPgoJCQoJCTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZUlubmVyQm94IiBpZD0iIj4KCQkJPGRpdiBjbGFzcz0iZDJjLWZhdnMtdHJpZ2dlci13cmFwcGVyIGQyZmF2LTAxIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9IlN1cGVyIER1dHkgRi00NTAgRFJXIiBkYXRhLXllYXI9IjIwMjciIGRhdGEtdHJpbT0iIiBkYXRhLWNhcmlkPSIiPjwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJUaXRsZUNvbnRhaW5lciI+CgkJCQk8YSB0aXRsZT0iRm9yZCBTdXBlciBEdXR5IEYtNDUwIERSVyAyMDI3IiBocmVmPSI\/cGF0aD0vbmV1ZnMvRm9yZC1TdXBlcl9EdXR5X0ZfNDUwX0RSVy0yMDI3Lmh0bWwiIGRhdGEtbWFrZT0iRm9yZCIgZGF0YS1tb2RlbD0iU3VwZXIgRHV0eSBGLTQ1MCBEUlcgMjAyNyI+CgkJCQkJPGgzPgoJCQkJCQk8c3BhbiBjbGFzcz0ic3BhbkNhck1ha2UgIj5Gb3JkPC9zcGFuPjxicj4KCQkJCQkJPHNwYW4gY2xhc3M9Im1vZGVsTmFtZSBzcGFuTW9kZWxOYW1lIj5TdXBlciBEdXR5IEYtNDUwIERSVyAyMDI3PC9zcGFuPgoJCQkJCTwvaDM+CgkJCQk8L2E+CgkJCQkgICAgPCEtLSBPUEVOIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CiAgICA8ZGl2IGNsYXNzPSJkaXZOZXdDYXJTdGFydFByaWNlIj4KICAgICAgICDDoCBwYXJ0aXIgZGUKICAgICAgICA8c3BhbiBjbGFzcz0iIj4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+NzEgMjEwPC9zcGFuPjwvc3Bhbj4KICAgICAgICA8aSBzdHlsZT0iY29sb3I6IzAwMDtmb250LXNpemU6MjBweDsiIGNsYXNzPSJjYXJQcmljZUluaXRpYWxUb29sVGlwSWNvbiBmYWwgZmEtaW5mby1jaXJjbGUgYmxhY2tDb2xvckJvbGQiIGRhdGEtdG9vbHRpcD0nJmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtQRFNGOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDs2OCA0MTUmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUcmFuc3BvcnQgJmFtcDsgUHLDqXBhcmF0aW9uOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsyIDY5NSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RheGUgQUM6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzEwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RvdGFsJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzcxIDIxMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsnPjwvaT4KICAgIDwvZGl2PgogICAgPCEtLSBDTE9TRSBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgoJCQkJCTxkaXYgY2xhc3M9ImRpdkNhckluU3RvY2tMaW5rIiBoaWRkZW4+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGRhdGEtdHlwZT0iaW52ZGF0YSIgZGF0YS1tYWtlPSJGb3JkIiBkYXRhLW1vZGVsPSJTdXBlciBEdXR5IEYtNDUwIERSVyIgZGF0YS15ZWFyPSIyMDI3IiBkYXRhLXN0eWxlaWRzPSI0ODYyMzEsNDg2MjM1LDQ4NjIzOSw0ODYyNDMsNDg2MjMyLDQ4NjIzNiw0ODYyNDAsNDg2MjQ3LDQ4NjI0NCw0ODYyMzMsNDg2MjM3LDQ4NjI1NSw0ODYyNDgsNDg2MjQxLDQ4NjI2MCw0ODYyNDUsNDg2MjM0LDQ4NjIzOCw0ODYyNTYsNDg2MjQyLDQ4NjI2MSw0ODYyNDksNDg2MjQ2LDQ4NjI1Myw0ODYyNTcsNDg2MjUwLDQ4NjI2Miw0ODYyNTQsNDg2MjU4LDQ4NjI2Myw0ODYyNTEsNDg2MDIxLDQ4NjI1Miw0ODYwMjMsNDg2MDIyLDQ4NjAyNSw0ODYwMjQsNDg2MDI4LDQ4NjAyNiw0ODYwMjksNDg2MjU5LDQ4NjI2NCw0ODYwMjcsNDg2MDMwLDQ4NjI2NSw0ODYyNjYsNDg2MDMxLDQ4NjAzMiIgZGF0YS1oeWJyaWQ9IjAiPgoJPC9kaXY+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJbWFnZUNvbnRhaW5lciBmbGV4LWNlbnRlciBhbGlnbi1jZW50ZXIgIj4KCQkJCTxhIHRpdGxlPSJGb3JkIFN1cGVyIER1dHkgRi00NTAgRFJXIDIwMjciIGhyZWY9Ij9wYXRoPS9uZXVmcy9Gb3JkLVN1cGVyX0R1dHlfRl80NTBfRFJXLTIwMjcuaHRtbCI+CgkJCQkJPGltZyBhbHQ9IkZvcmQgU3VwZXIgRHV0eSBGLTQ1MCBEUlcgMjAyNyIgYm9yZGVyPSIwIiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9mci9Gb3JkL1N1cGVyX0R1dHlfRl80NTBfRFJXLzIwMjcvNDg2MDMyL0JsdWUvcHJvZmlsZS53ZWJwIiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+CgkJCQk8L2E+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJGb290ZXJDb250YWluZXIgc3RhY2stbGMgLS1zLTkiPgoJCQkJCTxkaXYgY2xhc3M9ImNhclBheW1lbnRXcmFwcGVyIj4KCQkJPGRpdiBjbGFzcz0iY29udGVudC1za2VsZXRvbiBodG1sLWJsb2NrIiBkYXRhLWJsb2NrPSJwYXltZW50QmxvY2siIGRhdGEtdHlwZT0iYmxvY2siIGRhdGEtc291cmNlPSJzZXJ2ZXIiIGRhdGEtY2FsbGJhY2s9InBheW1lbnRDYWxjQmxvY2siPgoJCQoJPGlucHV0IG5hbWU9ImJsb2NrLWRhdGEiIHR5cGU9ImhpZGRlbiIgdmFsdWU9InsmcXVvdDtzdHlsZWlkJnF1b3Q7OiZxdW90OzQ4NjIzMSZxdW90OywmcXVvdDt0aXRsZSZxdW90OzomcXVvdDtGb3JkIFN1cGVyIER1dHkgRi00NTAgRFJXIDIwMjcmcXVvdDssJnF1b3Q7aHJlZiZxdW90OzomcXVvdDtcL25ldWZzXC9Gb3JkLVN1cGVyX0R1dHlfRl80NTBfRFJXLTIwMjcuaHRtbCZxdW90OywmcXVvdDtsaW5rc3R5bGUmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O2xpbmtjbGFzcyZxdW90OzomcXVvdDsmcXVvdDssJnF1b3Q7Y29udGFpbmVyY2xhc3MmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O3Byb21vdGV4dCZxdW90OzomcXVvdDtEXHUwMGU5Y291dnJleiBsJ29mZnJlISZxdW90O30iPgoJPC9kaXY+Cgk8L2Rpdj4KCQkJCQoJCQk8L2Rpdj4KCQk8L2Rpdj4KCTwvZGl2Pgk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVPdXRlckJveCAgcmViYXRlQm9yZGVyQ29sb3IiIGlkPSJmYnhfY29tbWVyY2lhbF8xNCI+CgkJCgkJPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlSW5uZXJCb3giIGlkPSIiPgoJCQk8ZGl2IGNsYXNzPSJkMmMtZmF2cy10cmlnZ2VyLXdyYXBwZXIgZDJmYXYtMDEiIGRhdGEtbWFrZT0iRm9yZCIgZGF0YS1tb2RlbD0iU3VwZXIgRHV0eSBGLTQ1MCBEUlciIGRhdGEteWVhcj0iMjAyNiIgZGF0YS10cmltPSIiIGRhdGEtY2FyaWQ9IiI+PC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhclRpdGxlQ29udGFpbmVyIj4KCQkJCTxhIHRpdGxlPSJGb3JkIFN1cGVyIER1dHkgRi00NTAgRFJXIDIwMjYiIGhyZWY9Ij9wYXRoPS9uZXVmcy9Gb3JkLVN1cGVyX0R1dHlfRl80NTBfRFJXLTIwMjYuaHRtbCIgZGF0YS1tYWtlPSJGb3JkIiBkYXRhLW1vZGVsPSJTdXBlciBEdXR5IEYtNDUwIERSVyAyMDI2Ij4KCQkJCQk8aDM+CgkJCQkJCTxzcGFuIGNsYXNzPSJzcGFuQ2FyTWFrZSAiPkZvcmQ8L3NwYW4+PGJyPgoJCQkJCQk8c3BhbiBjbGFzcz0ibW9kZWxOYW1lIHNwYW5Nb2RlbE5hbWUiPlN1cGVyIER1dHkgRi00NTAgRFJXIDIwMjY8L3NwYW4+CgkJCQkJPC9oMz4KCQkJCTwvYT4KCQkJCSAgICA8IS0tIE9QRU4gTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KICAgIDxkaXYgY2xhc3M9ImRpdk5ld0NhclN0YXJ0UHJpY2UiPgogICAgICAgIMOgIHBhcnRpciBkZQogICAgICAgIDxzcGFuIGNsYXNzPSIiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj43MSAyMTA8L3NwYW4+PC9zcGFuPgogICAgICAgIDxpIHN0eWxlPSJjb2xvcjojMDAwO2ZvbnQtc2l6ZToyMHB4OyIgY2xhc3M9ImNhclByaWNlSW5pdGlhbFRvb2xUaXBJY29uIGZhbCBmYS1pbmZvLWNpcmNsZSBibGFja0NvbG9yQm9sZCIgZGF0YS10b29sdGlwPScmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1BEU0Y6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzY4IDQxNSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RyYW5zcG9ydCAmYW1wOyBQcsOpcGFyYXRpb246Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzIgNjk1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VGF4ZSBBQzombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MTAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VG90YWwmbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7NzEgMjEwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0Oyc+PC9pPgogICAgPC9kaXY+CiAgICA8IS0tIENMT1NFIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CgkJCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW5TdG9ja0xpbmsiIGhpZGRlbj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgZGF0YS10eXBlPSJpbnZkYXRhIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9IlN1cGVyIER1dHkgRi00NTAgRFJXIiBkYXRhLXllYXI9IjIwMjYiIGRhdGEtc3R5bGVpZHM9IjQ3Nzg2Miw0Nzc4NjYsNDc3ODcwLDQ3Nzg3NCw0Nzc4NjMsNDc3ODY3LDQ3Nzg3MSw0Nzc4NzgsNDc3ODc1LDQ3Nzg2NCw0Nzc4NjgsNDc3ODg2LDQ3Nzg3OSw0Nzc4NzIsNDc3ODkxLDQ3Nzg3Niw0Nzc4NjUsNDc3ODY5LDQ3Nzg4Nyw0Nzc4NzMsNDc3ODkyLDQ3Nzg4MCw0Nzc4NzcsNDc3ODg0LDQ3Nzg4OCw0Nzc4ODEsNDc3ODkzLDQ3Nzg4NSw0Nzc4ODksNDc3ODk0LDQ3NzkxNSw0Nzc4ODIsNDc3ODgzLDQ3NzkxNiw0Nzc5MjQsNDc3OTE4LDQ3NzkxNyw0Nzc5MTksNDc3OTI1LDQ3NzkyMCw0Nzc4OTAsNDc3ODk1LDQ3NzkyNiw0Nzc5MjEsNDc3OTIyLDQ3NzkyMyIgZGF0YS1oeWJyaWQ9IjAiPgoJPC9kaXY+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJbWFnZUNvbnRhaW5lciBmbGV4LWNlbnRlciBhbGlnbi1jZW50ZXIgIj4KCQkJCTxhIHRpdGxlPSJGb3JkIFN1cGVyIER1dHkgRi00NTAgRFJXIDIwMjYiIGhyZWY9Ij9wYXRoPS9uZXVmcy9Gb3JkLVN1cGVyX0R1dHlfRl80NTBfRFJXLTIwMjYuaHRtbCI+CgkJCQkJPGltZyBhbHQ9IkZvcmQgU3VwZXIgRHV0eSBGLTQ1MCBEUlcgMjAyNiIgYm9yZGVyPSIwIiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9mci9Gb3JkL1N1cGVyX0R1dHlfRl80NTBfRFJXLzIwMjYvNDc3OTIzL1JlZC9wcm9maWxlLndlYnAiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj4KCQkJCTwvYT4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckZvb3RlckNvbnRhaW5lciBzdGFjay1sYyAtLXMtOSI+CgkJCQkJPGRpdiBjbGFzcz0iY2FyUGF5bWVudFdyYXBwZXIiPgoJCQk8ZGl2IGNsYXNzPSJjb250ZW50LXNrZWxldG9uIGh0bWwtYmxvY2siIGRhdGEtYmxvY2s9InBheW1lbnRCbG9jayIgZGF0YS10eXBlPSJibG9jayIgZGF0YS1zb3VyY2U9InNlcnZlciIgZGF0YS1jYWxsYmFjaz0icGF5bWVudENhbGNCbG9jayI+CgkJCgk8aW5wdXQgbmFtZT0iYmxvY2stZGF0YSIgdHlwZT0iaGlkZGVuIiB2YWx1ZT0ieyZxdW90O3N0eWxlaWQmcXVvdDs6JnF1b3Q7NDc3ODYyJnF1b3Q7LCZxdW90O3RpdGxlJnF1b3Q7OiZxdW90O0ZvcmQgU3VwZXIgRHV0eSBGLTQ1MCBEUlcgMjAyNiZxdW90OywmcXVvdDtocmVmJnF1b3Q7OiZxdW90O1wvbmV1ZnNcL0ZvcmQtU3VwZXJfRHV0eV9GXzQ1MF9EUlctMjAyNi5odG1sJnF1b3Q7LCZxdW90O2xpbmtzdHlsZSZxdW90OzomcXVvdDsmcXVvdDssJnF1b3Q7bGlua2NsYXNzJnF1b3Q7OiZxdW90OyZxdW90OywmcXVvdDtjb250YWluZXJjbGFzcyZxdW90OzomcXVvdDsmcXVvdDssJnF1b3Q7cHJvbW90ZXh0JnF1b3Q7OiZxdW90O0RcdTAwZTljb3V2cmV6IGwnb2ZmcmUhJnF1b3Q7fSI+Cgk8L2Rpdj4KCTwvZGl2PgoJCQkJCgkJCTwvZGl2PgoJCTwvZGl2PgoJPC9kaXY+CTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZU91dGVyQm94ICByZWJhdGVCb3JkZXJDb2xvciIgaWQ9ImZieF9jb21tZXJjaWFsXzE1Ij4KCQkKCQk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVJbm5lckJveCIgaWQ9IiI+CgkJCTxkaXYgY2xhc3M9ImQyYy1mYXZzLXRyaWdnZXItd3JhcHBlciBkMmZhdi0wMSIgZGF0YS1tYWtlPSJGb3JkIiBkYXRhLW1vZGVsPSJTdXBlciBEdXR5IEYtNTUwIERSVyIgZGF0YS15ZWFyPSIyMDI3IiBkYXRhLXRyaW09IiIgZGF0YS1jYXJpZD0iIj48L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyVGl0bGVDb250YWluZXIiPgoJCQkJPGEgdGl0bGU9IkZvcmQgU3VwZXIgRHV0eSBGLTU1MCBEUlcgMjAyNyIgaHJlZj0iP3BhdGg9L25ldWZzL0ZvcmQtU3VwZXJfRHV0eV9GXzU1MF9EUlctMjAyNy5odG1sIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9IlN1cGVyIER1dHkgRi01NTAgRFJXIDIwMjciPgoJCQkJCTxoMz4KCQkJCQkJPHNwYW4gY2xhc3M9InNwYW5DYXJNYWtlICI+Rm9yZDwvc3Bhbj48YnI+CgkJCQkJCTxzcGFuIGNsYXNzPSJtb2RlbE5hbWUgc3Bhbk1vZGVsTmFtZSI+U3VwZXIgRHV0eSBGLTU1MCBEUlcgMjAyNzwvc3Bhbj4KCQkJCQk8L2gzPgoJCQkJPC9hPgoJCQkJICAgIDwhLS0gT1BFTiBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgogICAgPGRpdiBjbGFzcz0iZGl2TmV3Q2FyU3RhcnRQcmljZSI+CiAgICAgICAgw6AgcGFydGlyIGRlCiAgICAgICAgPHNwYW4gY2xhc3M9IiI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjc0IDE2MDwvc3Bhbj48L3NwYW4+CiAgICAgICAgPGkgc3R5bGU9ImNvbG9yOiMwMDA7Zm9udC1zaXplOjIwcHg7IiBjbGFzcz0iY2FyUHJpY2VJbml0aWFsVG9vbFRpcEljb24gZmFsIGZhLWluZm8tY2lyY2xlIGJsYWNrQ29sb3JCb2xkIiBkYXRhLXRvb2x0aXA9JyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7UERTRjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7NzEgMzY1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VHJhbnNwb3J0ICZhbXA7IFByw6lwYXJhdGlvbjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MiA2OTUmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUYXhlIEFDOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsxMDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUb3RhbCZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDs3NCAxNjAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jz48L2k+CiAgICA8L2Rpdj4KICAgIDwhLS0gQ0xPU0UgTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KCQkJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJblN0b2NrTGluayIgaGlkZGVuPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBkYXRhLXR5cGU9ImludmRhdGEiIGRhdGEtbWFrZT0iRm9yZCIgZGF0YS1tb2RlbD0iU3VwZXIgRHV0eSBGLTU1MCBEUlciIGRhdGEteWVhcj0iMjAyNyIgZGF0YS1zdHlsZWlkcz0iNDg2NDAyLDQ4NjQwNiw0ODY0MTAsNDg2NDE0LDQ4NjQwMyw0ODY0MDcsNDg2NDExLDQ4NjQxOCw0ODY0MTUsNDg2NDA0LDQ4NjQwOCw0ODY0MjYsNDg2NDE5LDQ4NjQxMiw0ODY0MzEsNDg2NDE2LDQ4NjQwNSw0ODY0MDksNDg2NDI3LDQ4NjQxMyw0ODY0MzIsNDg2NDIwLDQ4NjQxNyw0ODY0MjQsNDg2NDI4LDQ4NjQyMSw0ODY0MzMsNDg2NDI1LDQ4NjQyOSw0ODY0MzQsNDg2NDIyLDQ4NjQyMyw0ODY0MzAsNDg2NDM1LDQ4NjQzNiw0ODY0MzciIGRhdGEtaHlicmlkPSIwIj4KCTwvZGl2PgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW1hZ2VDb250YWluZXIgZmxleC1jZW50ZXIgYWxpZ24tY2VudGVyICI+CgkJCQk8YSB0aXRsZT0iRm9yZCBTdXBlciBEdXR5IEYtNTUwIERSVyAyMDI3IiBocmVmPSI\/cGF0aD0vbmV1ZnMvRm9yZC1TdXBlcl9EdXR5X0ZfNTUwX0RSVy0yMDI3Lmh0bWwiPgoJCQkJCTxpbWcgYWx0PSJGb3JkIFN1cGVyIER1dHkgRi01NTAgRFJXIDIwMjciIGJvcmRlcj0iMCIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvZnIvRm9yZC9TdXBlcl9EdXR5X0ZfNTUwX0RSVy8yMDI3LzQ4NjQzNy9CbHVlL3Byb2ZpbGUud2VicCIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPgoJCQkJPC9hPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyRm9vdGVyQ29udGFpbmVyIHN0YWNrLWxjIC0tcy05Ij4KCQkJCQk8ZGl2IGNsYXNzPSJjYXJQYXltZW50V3JhcHBlciI+CgkJCTxkaXYgY2xhc3M9ImNvbnRlbnQtc2tlbGV0b24gaHRtbC1ibG9jayIgZGF0YS1ibG9jaz0icGF5bWVudEJsb2NrIiBkYXRhLXR5cGU9ImJsb2NrIiBkYXRhLXNvdXJjZT0ic2VydmVyIiBkYXRhLWNhbGxiYWNrPSJwYXltZW50Q2FsY0Jsb2NrIj4KCQkKCTxpbnB1dCBuYW1lPSJibG9jay1kYXRhIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSJ7JnF1b3Q7c3R5bGVpZCZxdW90OzomcXVvdDs0ODY0MDImcXVvdDssJnF1b3Q7dGl0bGUmcXVvdDs6JnF1b3Q7Rm9yZCBTdXBlciBEdXR5IEYtNTUwIERSVyAyMDI3JnF1b3Q7LCZxdW90O2hyZWYmcXVvdDs6JnF1b3Q7XC9uZXVmc1wvRm9yZC1TdXBlcl9EdXR5X0ZfNTUwX0RSVy0yMDI3Lmh0bWwmcXVvdDssJnF1b3Q7bGlua3N0eWxlJnF1b3Q7OiZxdW90OyZxdW90OywmcXVvdDtsaW5rY2xhc3MmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O2NvbnRhaW5lcmNsYXNzJnF1b3Q7OiZxdW90OyZxdW90OywmcXVvdDtwcm9tb3RleHQmcXVvdDs6JnF1b3Q7RFx1MDBlOWNvdXZyZXogbCdvZmZyZSEmcXVvdDt9Ij4KCTwvZGl2PgoJPC9kaXY+CgkJCQkKCQkJPC9kaXY+CgkJPC9kaXY+Cgk8L2Rpdj4JPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggIHJlYmF0ZUJvcmRlckNvbG9yIiBpZD0iZmJ4X2NvbW1lcmNpYWxfMTYiPgoJCQoJCTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZUlubmVyQm94IiBpZD0iIj4KCQkJPGRpdiBjbGFzcz0iZDJjLWZhdnMtdHJpZ2dlci13cmFwcGVyIGQyZmF2LTAxIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9IlN1cGVyIER1dHkgRi01NTAgRFJXIiBkYXRhLXllYXI9IjIwMjYiIGRhdGEtdHJpbT0iIiBkYXRhLWNhcmlkPSIiPjwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJUaXRsZUNvbnRhaW5lciI+CgkJCQk8YSB0aXRsZT0iRm9yZCBTdXBlciBEdXR5IEYtNTUwIERSVyAyMDI2IiBocmVmPSI\/cGF0aD0vbmV1ZnMvRm9yZC1TdXBlcl9EdXR5X0ZfNTUwX0RSVy0yMDI2Lmh0bWwiIGRhdGEtbWFrZT0iRm9yZCIgZGF0YS1tb2RlbD0iU3VwZXIgRHV0eSBGLTU1MCBEUlcgMjAyNiI+CgkJCQkJPGgzPgoJCQkJCQk8c3BhbiBjbGFzcz0ic3BhbkNhck1ha2UgIj5Gb3JkPC9zcGFuPjxicj4KCQkJCQkJPHNwYW4gY2xhc3M9Im1vZGVsTmFtZSBzcGFuTW9kZWxOYW1lIj5TdXBlciBEdXR5IEYtNTUwIERSVyAyMDI2PC9zcGFuPgoJCQkJCTwvaDM+CgkJCQk8L2E+CgkJCQkgICAgPCEtLSBPUEVOIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CiAgICA8ZGl2IGNsYXNzPSJkaXZOZXdDYXJTdGFydFByaWNlIj4KICAgICAgICDDoCBwYXJ0aXIgZGUKICAgICAgICA8c3BhbiBjbGFzcz0iIj4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+NzMgNDEwPC9zcGFuPjwvc3Bhbj4KICAgICAgICA8aSBzdHlsZT0iY29sb3I6IzAwMDtmb250LXNpemU6MjBweDsiIGNsYXNzPSJjYXJQcmljZUluaXRpYWxUb29sVGlwSWNvbiBmYWwgZmEtaW5mby1jaXJjbGUgYmxhY2tDb2xvckJvbGQiIGRhdGEtdG9vbHRpcD0nJmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtQRFNGOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDs3MCA2MTUmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUcmFuc3BvcnQgJmFtcDsgUHLDqXBhcmF0aW9uOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsyIDY5NSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RheGUgQUM6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzEwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RvdGFsJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzczIDQxMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsnPjwvaT4KICAgIDwvZGl2PgogICAgPCEtLSBDTE9TRSBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgoJCQkJCTxkaXYgY2xhc3M9ImRpdkNhckluU3RvY2tMaW5rIiBoaWRkZW4+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGRhdGEtdHlwZT0iaW52ZGF0YSIgZGF0YS1tYWtlPSJGb3JkIiBkYXRhLW1vZGVsPSJTdXBlciBEdXR5IEYtNTUwIERSVyIgZGF0YS15ZWFyPSIyMDI2IiBkYXRhLXN0eWxlaWRzPSI0Nzc5MjcsNDc3OTMxLDQ3NzkzNSw0Nzc5MzksNDc3OTI4LDQ3NzkzMiw0Nzc5MzYsNDc3OTQzLDQ3Nzk0MCw0Nzc5MjksNDc3OTMzLDQ3Nzk1MSw0Nzc5NDQsNDc3OTM3LDQ3Nzk1Niw0Nzc5NDEsNDc3OTMwLDQ3NzkzNCw0Nzc5NTIsNDc3OTM4LDQ3Nzk1Nyw0Nzc5NDUsNDc3OTQyLDQ3Nzk0OSw0Nzc5NTMsNDc3OTQ2LDQ3Nzk1OCw0Nzc5NTAsNDc3OTU0LDQ3Nzk1OSw0Nzc5NDcsNDc3OTQ4LDQ3Nzk1NSw0Nzc5NjAiIGRhdGEtaHlicmlkPSIwIj4KCTwvZGl2PgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW1hZ2VDb250YWluZXIgZmxleC1jZW50ZXIgYWxpZ24tY2VudGVyICI+CgkJCQk8YSB0aXRsZT0iRm9yZCBTdXBlciBEdXR5IEYtNTUwIERSVyAyMDI2IiBocmVmPSI\/cGF0aD0vbmV1ZnMvRm9yZC1TdXBlcl9EdXR5X0ZfNTUwX0RSVy0yMDI2Lmh0bWwiPgoJCQkJCTxpbWcgYWx0PSJGb3JkIFN1cGVyIER1dHkgRi01NTAgRFJXIDIwMjYiIGJvcmRlcj0iMCIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvZnIvRm9yZC9TdXBlcl9EdXR5X0ZfNTUwX0RSVy8yMDI2LzQ3Nzk2MC9HcmF5L3Byb2ZpbGUud2VicCIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPgoJCQkJPC9hPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyRm9vdGVyQ29udGFpbmVyIHN0YWNrLWxjIC0tcy05Ij4KCQkJCQk8ZGl2IGNsYXNzPSJjYXJQYXltZW50V3JhcHBlciI+CgkJCTxkaXYgY2xhc3M9ImNvbnRlbnQtc2tlbGV0b24gaHRtbC1ibG9jayIgZGF0YS1ibG9jaz0icGF5bWVudEJsb2NrIiBkYXRhLXR5cGU9ImJsb2NrIiBkYXRhLXNvdXJjZT0ic2VydmVyIiBkYXRhLWNhbGxiYWNrPSJwYXltZW50Q2FsY0Jsb2NrIj4KCQkKCTxpbnB1dCBuYW1lPSJibG9jay1kYXRhIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSJ7JnF1b3Q7c3R5bGVpZCZxdW90OzomcXVvdDs0Nzc5MjcmcXVvdDssJnF1b3Q7dGl0bGUmcXVvdDs6JnF1b3Q7Rm9yZCBTdXBlciBEdXR5IEYtNTUwIERSVyAyMDI2JnF1b3Q7LCZxdW90O2hyZWYmcXVvdDs6JnF1b3Q7XC9uZXVmc1wvRm9yZC1TdXBlcl9EdXR5X0ZfNTUwX0RSVy0yMDI2Lmh0bWwmcXVvdDssJnF1b3Q7bGlua3N0eWxlJnF1b3Q7OiZxdW90OyZxdW90OywmcXVvdDtsaW5rY2xhc3MmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O2NvbnRhaW5lcmNsYXNzJnF1b3Q7OiZxdW90OyZxdW90OywmcXVvdDtwcm9tb3RleHQmcXVvdDs6JnF1b3Q7RFx1MDBlOWNvdXZyZXogbCdvZmZyZSEmcXVvdDt9Ij4KCTwvZGl2PgoJPC9kaXY+CgkJCQkKCQkJPC9kaXY+CgkJPC9kaXY+Cgk8L2Rpdj4JPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggIHJlYmF0ZUJvcmRlckNvbG9yIiBpZD0iZmJ4X2NvbW1lcmNpYWxfMTciPgoJCQoJCTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZUlubmVyQm94IiBpZD0iIj4KCQkJPGRpdiBjbGFzcz0iZDJjLWZhdnMtdHJpZ2dlci13cmFwcGVyIGQyZmF2LTAxIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9IlN1cGVyIER1dHkgRi02MDAgRFJXIiBkYXRhLXllYXI9IjIwMjYiIGRhdGEtdHJpbT0iIiBkYXRhLWNhcmlkPSIiPjwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJUaXRsZUNvbnRhaW5lciI+CgkJCQk8YSB0aXRsZT0iRm9yZCBTdXBlciBEdXR5IEYtNjAwIFJBUkogMjAyNiIgaHJlZj0iP3BhdGg9L25ldWZzL0ZvcmQtU3VwZXJfRHV0eV9GXzYwMF9EUlctMjAyNi5odG1sIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9IlN1cGVyIER1dHkgRi02MDAgUkFSSiAyMDI2Ij4KCQkJCQk8aDM+CgkJCQkJCTxzcGFuIGNsYXNzPSJzcGFuQ2FyTWFrZSAiPkZvcmQ8L3NwYW4+PGJyPgoJCQkJCQk8c3BhbiBjbGFzcz0ibW9kZWxOYW1lIHNwYW5Nb2RlbE5hbWUiPlN1cGVyIER1dHkgRi02MDAgUkFSSiAyMDI2PC9zcGFuPgoJCQkJCTwvaDM+CgkJCQk8L2E+CgkJCQkgICAgPCEtLSBPUEVOIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CiAgICA8ZGl2IGNsYXNzPSJkaXZOZXdDYXJTdGFydFByaWNlIj4KICAgICAgICDDoCBwYXJ0aXIgZGUKICAgICAgICA8c3BhbiBjbGFzcz0iIj4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+ODkgMjgwPC9zcGFuPjwvc3Bhbj4KICAgICAgICA8aSBzdHlsZT0iY29sb3I6IzAwMDtmb250LXNpemU6MjBweDsiIGNsYXNzPSJjYXJQcmljZUluaXRpYWxUb29sVGlwSWNvbiBmYWwgZmEtaW5mby1jaXJjbGUgYmxhY2tDb2xvckJvbGQiIGRhdGEtdG9vbHRpcD0nJmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtQRFNGOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDs4NiA0ODUmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUcmFuc3BvcnQgJmFtcDsgUHLDqXBhcmF0aW9uOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsyIDY5NSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RheGUgQUM6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzEwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RvdGFsJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0Ozg5IDI4MCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsnPjwvaT4KICAgIDwvZGl2PgogICAgPCEtLSBDTE9TRSBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgoJCQkJCTxkaXYgY2xhc3M9ImRpdkNhckluU3RvY2tMaW5rIiBoaWRkZW4+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGRhdGEtdHlwZT0iaW52ZGF0YSIgZGF0YS1tYWtlPSJGb3JkIiBkYXRhLW1vZGVsPSJTdXBlciBEdXR5IEYtNjAwIERSVyIgZGF0YS15ZWFyPSIyMDI2IiBkYXRhLXN0eWxlaWRzPSI0NzgxMDAsNDc4MTA0LDQ3ODEwOSw0NzgxMTMsNDc4MTAxLDQ3ODEwNiw0NzgxMTAsNDc4MTE0LDQ3ODEwMiw0NzgxMDcsNDc4MTExLDQ3ODExNSw0NzgxMDMsNDc4MTA4LDQ3ODExMiw0NzgxMTYiIGRhdGEtaHlicmlkPSIwIj4KCTwvZGl2PgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW1hZ2VDb250YWluZXIgZmxleC1jZW50ZXIgYWxpZ24tY2VudGVyICI+CgkJCQk8YSB0aXRsZT0iRm9yZCBTdXBlciBEdXR5IEYtNjAwIFJBUkogMjAyNiIgaHJlZj0iP3BhdGg9L25ldWZzL0ZvcmQtU3VwZXJfRHV0eV9GXzYwMF9EUlctMjAyNi5odG1sIj4KCQkJCQk8aW1nIGFsdD0iRm9yZCBTdXBlciBEdXR5IEYtNjAwIFJBUkogMjAyNiIgYm9yZGVyPSIwIiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9mci9Gb3JkL1N1cGVyX0R1dHlfRl82MDBfRFJXLzIwMjYvNDc4MTE2L0JsdWUvcHJvZmlsZS53ZWJwIiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+CgkJCQk8L2E+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJGb290ZXJDb250YWluZXIgc3RhY2stbGMgLS1zLTkiPgoJCQkJCTxkaXYgY2xhc3M9ImNhclBheW1lbnRXcmFwcGVyIj4KCQkJPGRpdiBjbGFzcz0iY29udGVudC1za2VsZXRvbiBodG1sLWJsb2NrIiBkYXRhLWJsb2NrPSJwYXltZW50QmxvY2siIGRhdGEtdHlwZT0iYmxvY2siIGRhdGEtc291cmNlPSJzZXJ2ZXIiIGRhdGEtY2FsbGJhY2s9InBheW1lbnRDYWxjQmxvY2siPgoJCQoJPGlucHV0IG5hbWU9ImJsb2NrLWRhdGEiIHR5cGU9ImhpZGRlbiIgdmFsdWU9InsmcXVvdDtzdHlsZWlkJnF1b3Q7OiZxdW90OzQ3ODEwMCZxdW90OywmcXVvdDt0aXRsZSZxdW90OzomcXVvdDtGb3JkIFN1cGVyIER1dHkgRi02MDAgUkFSSiAyMDI2JnF1b3Q7LCZxdW90O2hyZWYmcXVvdDs6JnF1b3Q7XC9uZXVmc1wvRm9yZC1TdXBlcl9EdXR5X0ZfNjAwX0RSVy0yMDI2Lmh0bWwmcXVvdDssJnF1b3Q7bGlua3N0eWxlJnF1b3Q7OiZxdW90OyZxdW90OywmcXVvdDtsaW5rY2xhc3MmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O2NvbnRhaW5lcmNsYXNzJnF1b3Q7OiZxdW90OyZxdW90OywmcXVvdDtwcm9tb3RleHQmcXVvdDs6JnF1b3Q7RFx1MDBlOWNvdXZyZXogbCdvZmZyZSEmcXVvdDt9Ij4KCTwvZGl2PgoJPC9kaXY+CgkJCQkKCQkJPC9kaXY+CgkJPC9kaXY+Cgk8L2Rpdj4JPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggIHJlYmF0ZUJvcmRlckNvbG9yIiBpZD0iZmJ4X2NvbW1lcmNpYWxfMTgiPgoJCQoJCTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZUlubmVyQm94IiBpZD0iIj4KCQkJPGRpdiBjbGFzcz0iZDJjLWZhdnMtdHJpZ2dlci13cmFwcGVyIGQyZmF2LTAxIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9IlRyYW5zaXQgQ2FyZ28gVmFuIiBkYXRhLXllYXI9IjIwMjYiIGRhdGEtdHJpbT0iIiBkYXRhLWNhcmlkPSIiPjwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJUaXRsZUNvbnRhaW5lciI+CgkJCQk8YSB0aXRsZT0iRm9yZCBUcmFuc2l0IGZvdXJnb24gdXRpbGl0YWlyZSAyMDI2IiBocmVmPSI\/cGF0aD0vbmV1ZnMvRm9yZC1UcmFuc2l0X0NhcmdvX1Zhbi0yMDI2Lmh0bWwiIGRhdGEtbWFrZT0iRm9yZCIgZGF0YS1tb2RlbD0iVHJhbnNpdCBmb3VyZ29uIHV0aWxpdGFpcmUgMjAyNiI+CgkJCQkJPGgzPgoJCQkJCQk8c3BhbiBjbGFzcz0ic3BhbkNhck1ha2UgIj5Gb3JkPC9zcGFuPjxicj4KCQkJCQkJPHNwYW4gY2xhc3M9Im1vZGVsTmFtZSBzcGFuTW9kZWxOYW1lIj5UcmFuc2l0IGZvdXJnb24gdXRpbGl0YWlyZSAyMDI2PC9zcGFuPgoJCQkJCTwvaDM+CgkJCQk8L2E+CgkJCQkgICAgPCEtLSBPUEVOIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CiAgICA8ZGl2IGNsYXNzPSJkaXZOZXdDYXJTdGFydFByaWNlIj4KICAgICAgICDDoCBwYXJ0aXIgZGUKICAgICAgICA8c3BhbiBjbGFzcz0iIj4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+NjIgOTk1PC9zcGFuPjwvc3Bhbj4KICAgICAgICA8aSBzdHlsZT0iY29sb3I6IzAwMDtmb250LXNpemU6MjBweDsiIGNsYXNzPSJjYXJQcmljZUluaXRpYWxUb29sVGlwSWNvbiBmYWwgZmEtaW5mby1jaXJjbGUgYmxhY2tDb2xvckJvbGQiIGRhdGEtdG9vbHRpcD0nJmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtQRFNGOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDs1OSA5MDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUcmFuc3BvcnQgJmFtcDsgUHLDqXBhcmF0aW9uOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsyIDk5NSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RheGUgQUM6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzEwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RvdGFsJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzYyIDk5NSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsnPjwvaT4KICAgIDwvZGl2PgogICAgPCEtLSBDTE9TRSBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPjwhLS0gT1BFTiBORVcgQ0FSIFBST01PIFBSSUNFICgyNzYpLS0+PGRpdiBjbGFzcz0iZGl2TmV3Q2FyUHJvbW9QcmljZSI+ZW4gcmFiYWlzIMOgIDxzcGFuIGNsYXNzPSJzdHJpa2UtcHJpY2UiIHN0eWxlPSJjb2xvcjogI2ViMDAwMDsiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj42MCA5OTU8L3NwYW4+PC9zcGFuPjwvZGl2PjwhLS0gQ0xPU0UgTkVXIENBUiBQUk9NTyBQUklDRSAoMjgzKS0tPgoJCQkJCTxkaXYgY2xhc3M9ImRpdkNhckluU3RvY2tMaW5rIiBoaWRkZW4+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGRhdGEtdHlwZT0iaW52ZGF0YSIgZGF0YS1tYWtlPSJGb3JkIiBkYXRhLW1vZGVsPSJUcmFuc2l0IENhcmdvIFZhbiIgZGF0YS15ZWFyPSIyMDI2IiBkYXRhLXN0eWxlaWRzPSI0Nzg0NjksNDc4NDcwLDQ3ODQ3NSw0Nzg0NzEsNDc4NDc2LDQ3ODQ4NSw0Nzg0NzcsNDc4NDg2LDQ3ODQ4Nyw0Nzg0NzIsNDc4NDc4LDQ3ODQ4OCw0Nzg0ODksNDc4NDczLDQ3ODQ4MCw0Nzg0NzksNDc4NDc0LDQ3ODQ5MSw0Nzg0OTAsNDc4NDgxLDQ3ODQ5Niw0Nzg0OTMsNDc4NDkyLDQ3ODQ4Miw0Nzg0OTcsNDc4NDk4LDQ3ODQ5NCw0Nzg0ODMsNDc4NDk5LDQ3ODUwMCw0Nzg0ODQsNDc4NTAxLDQ3ODUwMiw0Nzg1MDMsNDc4NTA0LDQ3ODQ5NSw0Nzg1MDUsNDc4NTA2IiBkYXRhLWh5YnJpZD0iMCI+Cgk8L2Rpdj4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckltYWdlQ29udGFpbmVyIGZsZXgtY2VudGVyIGFsaWduLWNlbnRlciAiPgoJCQkJPGEgdGl0bGU9IkZvcmQgVHJhbnNpdCBmb3VyZ29uIHV0aWxpdGFpcmUgMjAyNiIgaHJlZj0iP3BhdGg9L25ldWZzL0ZvcmQtVHJhbnNpdF9DYXJnb19WYW4tMjAyNi5odG1sIj4KCQkJCQk8aW1nIGFsdD0iRm9yZCBUcmFuc2l0IGZvdXJnb24gdXRpbGl0YWlyZSAyMDI2IiBib3JkZXI9IjAiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL2ZyL0ZvcmQvVHJhbnNpdF9DYXJnb19WYW4vMjAyNi80Nzg1MDYvV2hpdGUvcHJvZmlsZS53ZWJwIiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+CgkJCQk8L2E+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJGb290ZXJDb250YWluZXIgc3RhY2stbGMgLS1zLTkiPgoJCQkJCTxkaXYgY2xhc3M9ImNhclBheW1lbnRXcmFwcGVyIj4KCQkJPGRpdiBjbGFzcz0iY29udGVudC1za2VsZXRvbiBodG1sLWJsb2NrIiBkYXRhLWJsb2NrPSJwYXltZW50QmxvY2siIGRhdGEtdHlwZT0iYmxvY2siIGRhdGEtc291cmNlPSJzZXJ2ZXIiIGRhdGEtY2FsbGJhY2s9InBheW1lbnRDYWxjQmxvY2siPgoJCQoJPGlucHV0IG5hbWU9ImJsb2NrLWRhdGEiIHR5cGU9ImhpZGRlbiIgdmFsdWU9InsmcXVvdDtzdHlsZWlkJnF1b3Q7OiZxdW90OzQ3ODQ2OSZxdW90OywmcXVvdDt0aXRsZSZxdW90OzomcXVvdDtGb3JkIFRyYW5zaXQgZm91cmdvbiB1dGlsaXRhaXJlIDIwMjYmcXVvdDssJnF1b3Q7aHJlZiZxdW90OzomcXVvdDtcL25ldWZzXC9Gb3JkLVRyYW5zaXRfQ2FyZ29fVmFuLTIwMjYuaHRtbCZxdW90OywmcXVvdDtsaW5rc3R5bGUmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O2xpbmtjbGFzcyZxdW90OzomcXVvdDsmcXVvdDssJnF1b3Q7Y29udGFpbmVyY2xhc3MmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O3Byb21vdGV4dCZxdW90OzomcXVvdDtEXHUwMGU5Y291dnJleiBsJ29mZnJlISZxdW90O30iPgoJPC9kaXY+Cgk8L2Rpdj4KCQkJCQoJCQk8L2Rpdj4KCQk8L2Rpdj4KCTwvZGl2Pgk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVPdXRlckJveCAgcmViYXRlQm9yZGVyQ29sb3IiIGlkPSJmYnhfY29tbWVyY2lhbF8xOSI+CgkJCgkJPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlSW5uZXJCb3giIGlkPSIiPgoJCQk8ZGl2IGNsYXNzPSJkMmMtZmF2cy10cmlnZ2VyLXdyYXBwZXIgZDJmYXYtMDEiIGRhdGEtbWFrZT0iRm9yZCIgZGF0YS1tb2RlbD0iVHJhbnNpdCBDdXRhd2F5IiBkYXRhLXllYXI9IjIwMjciIGRhdGEtdHJpbT0iIiBkYXRhLWNhcmlkPSIiPjwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJUaXRsZUNvbnRhaW5lciI+CgkJCQk8YSB0aXRsZT0iRm9yZCBUcmFuc2l0IGZvdXJnb24gdHJvbnF1w6kgMjAyNyIgaHJlZj0iP3BhdGg9L25ldWZzL0ZvcmQtVHJhbnNpdF9DdXRhd2F5LTIwMjcuaHRtbCIgZGF0YS1tYWtlPSJGb3JkIiBkYXRhLW1vZGVsPSJUcmFuc2l0IGZvdXJnb24gdHJvbnF1w6kgMjAyNyI+CgkJCQkJPGgzPgoJCQkJCQk8c3BhbiBjbGFzcz0ic3BhbkNhck1ha2UgIj5Gb3JkPC9zcGFuPjxicj4KCQkJCQkJPHNwYW4gY2xhc3M9Im1vZGVsTmFtZSBzcGFuTW9kZWxOYW1lIj5UcmFuc2l0IGZvdXJnb24gdHJvbnF1w6kgMjAyNzwvc3Bhbj4KCQkJCQk8L2gzPgoJCQkJPC9hPgoJCQkJICAgIDwhLS0gT1BFTiBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgogICAgPGRpdiBjbGFzcz0iZGl2TmV3Q2FyU3RhcnRQcmljZSI+CiAgICAgICAgw6AgcGFydGlyIGRlCiAgICAgICAgPHNwYW4gY2xhc3M9IiI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjYwIDY0NTwvc3Bhbj48L3NwYW4+CiAgICAgICAgPGkgc3R5bGU9ImNvbG9yOiMwMDA7Zm9udC1zaXplOjIwcHg7IiBjbGFzcz0iY2FyUHJpY2VJbml0aWFsVG9vbFRpcEljb24gZmFsIGZhLWluZm8tY2lyY2xlIGJsYWNrQ29sb3JCb2xkIiBkYXRhLXRvb2x0aXA9JyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7UERTRjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7NTcgNDUwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VHJhbnNwb3J0ICZhbXA7IFByw6lwYXJhdGlvbjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MyAwOTUmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUYXhlIEFDOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsxMDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUb3RhbCZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDs2MCA2NDUmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jz48L2k+CiAgICA8L2Rpdj4KICAgIDwhLS0gQ0xPU0UgTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KCQkJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJblN0b2NrTGluayIgaGlkZGVuPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBkYXRhLXR5cGU9ImludmRhdGEiIGRhdGEtbWFrZT0iRm9yZCIgZGF0YS1tb2RlbD0iVHJhbnNpdCBDdXRhd2F5IiBkYXRhLXllYXI9IjIwMjciIGRhdGEtc3R5bGVpZHM9IjQ4NjU4Niw0ODY1ODcsNDg1OTcyLDQ4NTk3Myw0ODU5NzgsNDg1OTc0LDQ4NTk4MCw0ODU5ODIsNDg2NTg4LDQ4NjU4OSw0ODU5NzUsNDg1OTc2LDQ4NTk4NCw0ODU5NzcsNDg1OTc5LDQ4NTk4Niw0ODU5ODEsNDg1OTg4LDQ4NTk4Myw0ODU5ODUsNDg1OTg3LDQ4NTk4OSIgZGF0YS1oeWJyaWQ9IjAiPgoJPC9kaXY+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJbWFnZUNvbnRhaW5lciBmbGV4LWNlbnRlciBhbGlnbi1jZW50ZXIgIj4KCQkJCTxhIHRpdGxlPSJGb3JkIFRyYW5zaXQgZm91cmdvbiB0cm9ucXXDqSAyMDI3IiBocmVmPSI\/cGF0aD0vbmV1ZnMvRm9yZC1UcmFuc2l0X0N1dGF3YXktMjAyNy5odG1sIj4KCQkJCQk8aW1nIGFsdD0iRm9yZCBUcmFuc2l0IGZvdXJnb24gdHJvbnF1w6kgMjAyNyIgYm9yZGVyPSIwIiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9mci9Gb3JkL1RyYW5zaXRfQ3V0YXdheS8yMDI3LzQ4NTk4OS9CbHVlL3Byb2ZpbGUud2VicCIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPgoJCQkJPC9hPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyRm9vdGVyQ29udGFpbmVyIHN0YWNrLWxjIC0tcy05Ij4KCQkJCQk8ZGl2IGNsYXNzPSJjYXJQYXltZW50V3JhcHBlciI+CgkJCTxkaXYgY2xhc3M9ImNvbnRlbnQtc2tlbGV0b24gaHRtbC1ibG9jayIgZGF0YS1ibG9jaz0icGF5bWVudEJsb2NrIiBkYXRhLXR5cGU9ImJsb2NrIiBkYXRhLXNvdXJjZT0ic2VydmVyIiBkYXRhLWNhbGxiYWNrPSJwYXltZW50Q2FsY0Jsb2NrIj4KCQkKCTxpbnB1dCBuYW1lPSJibG9jay1kYXRhIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSIiPgoJPC9kaXY+Cgk8L2Rpdj4KCQkJCQoJCQk8L2Rpdj4KCQk8L2Rpdj4KCTwvZGl2Pgk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVPdXRlckJveCAgcmViYXRlQm9yZGVyQ29sb3IiIGlkPSJmYnhfY29tbWVyY2lhbF8yMCI+CgkJCgkJPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlSW5uZXJCb3giIGlkPSIiPgoJCQk8ZGl2IGNsYXNzPSJkMmMtZmF2cy10cmlnZ2VyLXdyYXBwZXIgZDJmYXYtMDEiIGRhdGEtbWFrZT0iRm9yZCIgZGF0YS1tb2RlbD0iVHJhbnNpdCBDdXRhd2F5IiBkYXRhLXllYXI9IjIwMjYiIGRhdGEtdHJpbT0iIiBkYXRhLWNhcmlkPSIiPjwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJUaXRsZUNvbnRhaW5lciI+CgkJCQk8YSB0aXRsZT0iRm9yZCBUcmFuc2l0IGZvdXJnb24gdHJvbnF1w6kgMjAyNiIgaHJlZj0iP3BhdGg9L25ldWZzL0ZvcmQtVHJhbnNpdF9DdXRhd2F5LTIwMjYuaHRtbCIgZGF0YS1tYWtlPSJGb3JkIiBkYXRhLW1vZGVsPSJUcmFuc2l0IGZvdXJnb24gdHJvbnF1w6kgMjAyNiI+CgkJCQkJPGgzPgoJCQkJCQk8c3BhbiBjbGFzcz0ic3BhbkNhck1ha2UgIj5Gb3JkPC9zcGFuPjxicj4KCQkJCQkJPHNwYW4gY2xhc3M9Im1vZGVsTmFtZSBzcGFuTW9kZWxOYW1lIj5UcmFuc2l0IGZvdXJnb24gdHJvbnF1w6kgMjAyNjwvc3Bhbj4KCQkJCQk8L2gzPgoJCQkJPC9hPgoJCQkJICAgIDwhLS0gT1BFTiBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgogICAgPGRpdiBjbGFzcz0iZGl2TmV3Q2FyU3RhcnRQcmljZSI+CiAgICAgICAgw6AgcGFydGlyIGRlCiAgICAgICAgPHNwYW4gY2xhc3M9IiI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjYwIDU0NTwvc3Bhbj48L3NwYW4+CiAgICAgICAgPGkgc3R5bGU9ImNvbG9yOiMwMDA7Zm9udC1zaXplOjIwcHg7IiBjbGFzcz0iY2FyUHJpY2VJbml0aWFsVG9vbFRpcEljb24gZmFsIGZhLWluZm8tY2lyY2xlIGJsYWNrQ29sb3JCb2xkIiBkYXRhLXRvb2x0aXA9JyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7UERTRjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7NTcgNDUwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VHJhbnNwb3J0ICZhbXA7IFByw6lwYXJhdGlvbjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MiA5OTUmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUYXhlIEFDOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsxMDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUb3RhbCZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDs2MCA1NDUmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jz48L2k+CiAgICA8L2Rpdj4KICAgIDwhLS0gQ0xPU0UgTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KCQkJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJblN0b2NrTGluayIgaGlkZGVuPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBkYXRhLXR5cGU9ImludmRhdGEiIGRhdGEtbWFrZT0iRm9yZCIgZGF0YS1tb2RlbD0iVHJhbnNpdCBDdXRhd2F5IiBkYXRhLXllYXI9IjIwMjYiIGRhdGEtc3R5bGVpZHM9IjQ3OTU0NCw0Nzk1NDUsNDc5MzgwLDQ3OTM4MSw0NzkzODYsNDc5MzgyLDQ3OTM4OCw0NzkzOTAsNDc5NTQ2LDQ3OTU0Nyw0NzkzODMsNDc5Mzg0LDQ3OTM5Miw0NzkzODUsNDc5Mzg3LDQ3OTM5NCw0NzkzODksNDc5Mzk2LDQ3OTM5MSw0NzkzOTMsNDc5Mzk1LDQ3OTM5NyIgZGF0YS1oeWJyaWQ9IjAiPgoJPC9kaXY+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJbWFnZUNvbnRhaW5lciBmbGV4LWNlbnRlciBhbGlnbi1jZW50ZXIgIj4KCQkJCTxhIHRpdGxlPSJGb3JkIFRyYW5zaXQgZm91cmdvbiB0cm9ucXXDqSAyMDI2IiBocmVmPSI\/cGF0aD0vbmV1ZnMvRm9yZC1UcmFuc2l0X0N1dGF3YXktMjAyNi5odG1sIj4KCQkJCQk8aW1nIGFsdD0iRm9yZCBUcmFuc2l0IGZvdXJnb24gdHJvbnF1w6kgMjAyNiIgYm9yZGVyPSIwIiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9mci9Gb3JkL1RyYW5zaXRfQ3V0YXdheS8yMDI2LzQ3OTM5Ny9CbHVlL3Byb2ZpbGUud2VicCIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPgoJCQkJPC9hPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyRm9vdGVyQ29udGFpbmVyIHN0YWNrLWxjIC0tcy05Ij4KCQkJCQk8ZGl2IGNsYXNzPSJjYXJQYXltZW50V3JhcHBlciI+CgkJCTxkaXYgY2xhc3M9ImNvbnRlbnQtc2tlbGV0b24gaHRtbC1ibG9jayIgZGF0YS1ibG9jaz0icGF5bWVudEJsb2NrIiBkYXRhLXR5cGU9ImJsb2NrIiBkYXRhLXNvdXJjZT0ic2VydmVyIiBkYXRhLWNhbGxiYWNrPSJwYXltZW50Q2FsY0Jsb2NrIj4KCQkKCTxpbnB1dCBuYW1lPSJibG9jay1kYXRhIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSIiPgoJPC9kaXY+Cgk8L2Rpdj4KCQkJCQoJCQk8L2Rpdj4KCQk8L2Rpdj4KCTwvZGl2Pgk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVPdXRlckJveCAgcmViYXRlQm9yZGVyQ29sb3IiIGlkPSJmYnhfY29tbWVyY2lhbF8yMSI+CgkJCgkJPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlSW5uZXJCb3giIGlkPSIiPgoJCQk8ZGl2IGNsYXNzPSJkMmMtZmF2cy10cmlnZ2VyLXdyYXBwZXIgZDJmYXYtMDEiIGRhdGEtbWFrZT0iRm9yZCIgZGF0YS1tb2RlbD0iVHJhbnNpdCBQYXNzZW5nZXIgV2Fnb24iIGRhdGEteWVhcj0iMjAyNyIgZGF0YS10cmltPSIiIGRhdGEtY2FyaWQ9IiI+PC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhclRpdGxlQ29udGFpbmVyIj4KCQkJCTxhIHRpdGxlPSJGb3JkIFRyYW5zaXQgdG91cmlzbWUgMjAyNyIgaHJlZj0iP3BhdGg9L25ldWZzL0ZvcmQtVHJhbnNpdF9QYXNzZW5nZXJfV2Fnb24tMjAyNy5odG1sIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9IlRyYW5zaXQgdG91cmlzbWUgMjAyNyI+CgkJCQkJPGgzPgoJCQkJCQk8c3BhbiBjbGFzcz0ic3BhbkNhck1ha2UgIj5Gb3JkPC9zcGFuPjxicj4KCQkJCQkJPHNwYW4gY2xhc3M9Im1vZGVsTmFtZSBzcGFuTW9kZWxOYW1lIj5UcmFuc2l0IHRvdXJpc21lIDIwMjc8L3NwYW4+CgkJCQkJPC9oMz4KCQkJCTwvYT4KCQkJCSAgICA8IS0tIE9QRU4gTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KICAgIDxkaXYgY2xhc3M9ImRpdk5ld0NhclN0YXJ0UHJpY2UiPgogICAgICAgIMOgIHBhcnRpciBkZQogICAgICAgIDxzcGFuIGNsYXNzPSIiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj43NiAyNDU8L3NwYW4+PC9zcGFuPgogICAgICAgIDxpIHN0eWxlPSJjb2xvcjojMDAwO2ZvbnQtc2l6ZToyMHB4OyIgY2xhc3M9ImNhclByaWNlSW5pdGlhbFRvb2xUaXBJY29uIGZhbCBmYS1pbmZvLWNpcmNsZSBibGFja0NvbG9yQm9sZCIgZGF0YS10b29sdGlwPScmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1BEU0Y6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzczIDA1MCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RyYW5zcG9ydCAmYW1wOyBQcsOpcGFyYXRpb246Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzMgMDk1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VGF4ZSBBQzombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MTAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VG90YWwmbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7NzYgMjQ1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0Oyc+PC9pPgogICAgPC9kaXY+CiAgICA8IS0tIENMT1NFIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CgkJCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW5TdG9ja0xpbmsiIGhpZGRlbj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgZGF0YS10eXBlPSJpbnZkYXRhIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9IlRyYW5zaXQgUGFzc2VuZ2VyIFdhZ29uIiBkYXRhLXllYXI9IjIwMjciIGRhdGEtc3R5bGVpZHM9IjQ4NjEwMSw0ODYxMDMsNDg2MTA1LDQ4NjEwOSw0ODYxMDcsNDg2MTExLDQ4NjEwMiw0ODYxMTMsNDg2MTA0LDQ4NjEwNiw0ODYxMTUsNDg2MTEwLDQ4NjEwOCw0ODYxMTIsNDg2MTE0LDQ4NjExNiIgZGF0YS1oeWJyaWQ9IjAiPgoJPC9kaXY+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJbWFnZUNvbnRhaW5lciBmbGV4LWNlbnRlciBhbGlnbi1jZW50ZXIgIj4KCQkJCTxhIHRpdGxlPSJGb3JkIFRyYW5zaXQgdG91cmlzbWUgMjAyNyIgaHJlZj0iP3BhdGg9L25ldWZzL0ZvcmQtVHJhbnNpdF9QYXNzZW5nZXJfV2Fnb24tMjAyNy5odG1sIj4KCQkJCQk8aW1nIGFsdD0iRm9yZCBUcmFuc2l0IHRvdXJpc21lIDIwMjciIGJvcmRlcj0iMCIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvZnIvRm9yZC9UcmFuc2l0X1Bhc3Nlbmdlcl9XYWdvbi8yMDI3LzQ4NjExNi9CbHVlL3Byb2ZpbGUud2VicCIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPgoJCQkJPC9hPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyRm9vdGVyQ29udGFpbmVyIHN0YWNrLWxjIC0tcy05Ij4KCQkJCQk8ZGl2IGNsYXNzPSJjYXJQYXltZW50V3JhcHBlciI+CgkJCTxkaXYgY2xhc3M9ImNvbnRlbnQtc2tlbGV0b24gaHRtbC1ibG9jayIgZGF0YS1ibG9jaz0icGF5bWVudEJsb2NrIiBkYXRhLXR5cGU9ImJsb2NrIiBkYXRhLXNvdXJjZT0ic2VydmVyIiBkYXRhLWNhbGxiYWNrPSJwYXltZW50Q2FsY0Jsb2NrIj4KCQkKCTxpbnB1dCBuYW1lPSJibG9jay1kYXRhIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSJ7JnF1b3Q7c3R5bGVpZCZxdW90OzomcXVvdDs0ODYxMDEmcXVvdDssJnF1b3Q7dGl0bGUmcXVvdDs6JnF1b3Q7Rm9yZCBUcmFuc2l0IHRvdXJpc21lIDIwMjcmcXVvdDssJnF1b3Q7aHJlZiZxdW90OzomcXVvdDtcL25ldWZzXC9Gb3JkLVRyYW5zaXRfUGFzc2VuZ2VyX1dhZ29uLTIwMjcuaHRtbCZxdW90OywmcXVvdDtsaW5rc3R5bGUmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O2xpbmtjbGFzcyZxdW90OzomcXVvdDsmcXVvdDssJnF1b3Q7Y29udGFpbmVyY2xhc3MmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O3Byb21vdGV4dCZxdW90OzomcXVvdDtEXHUwMGU5Y291dnJleiBsJ29mZnJlISZxdW90O30iPgoJPC9kaXY+Cgk8L2Rpdj4KCQkJCQoJCQk8L2Rpdj4KCQk8L2Rpdj4KCTwvZGl2Pgk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVPdXRlckJveCAgcmViYXRlQm9yZGVyQ29sb3IiIGlkPSJmYnhfY29tbWVyY2lhbF8yMiI+CgkJCgkJPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlSW5uZXJCb3giIGlkPSIiPgoJCQk8ZGl2IGNsYXNzPSJkMmMtZmF2cy10cmlnZ2VyLXdyYXBwZXIgZDJmYXYtMDEiIGRhdGEtbWFrZT0iRm9yZCIgZGF0YS1tb2RlbD0iVHJhbnNpdCBQYXNzZW5nZXIgV2Fnb24iIGRhdGEteWVhcj0iMjAyNiIgZGF0YS10cmltPSIiIGRhdGEtY2FyaWQ9IiI+PC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhclRpdGxlQ29udGFpbmVyIj4KCQkJCTxhIHRpdGxlPSJGb3JkIFRyYW5zaXQgdG91cmlzbWUgMjAyNiIgaHJlZj0iP3BhdGg9L25ldWZzL0ZvcmQtVHJhbnNpdF9QYXNzZW5nZXJfV2Fnb24tMjAyNi5odG1sIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9IlRyYW5zaXQgdG91cmlzbWUgMjAyNiI+CgkJCQkJPGgzPgoJCQkJCQk8c3BhbiBjbGFzcz0ic3BhbkNhck1ha2UgIj5Gb3JkPC9zcGFuPjxicj4KCQkJCQkJPHNwYW4gY2xhc3M9Im1vZGVsTmFtZSBzcGFuTW9kZWxOYW1lIj5UcmFuc2l0IHRvdXJpc21lIDIwMjY8L3NwYW4+CgkJCQkJPC9oMz4KCQkJCTwvYT4KCQkJCSAgICA8IS0tIE9QRU4gTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KICAgIDxkaXYgY2xhc3M9ImRpdk5ld0NhclN0YXJ0UHJpY2UiPgogICAgICAgIMOgIHBhcnRpciBkZQogICAgICAgIDxzcGFuIGNsYXNzPSIiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj43NSAzOTU8L3NwYW4+PC9zcGFuPgogICAgICAgIDxpIHN0eWxlPSJjb2xvcjojMDAwO2ZvbnQtc2l6ZToyMHB4OyIgY2xhc3M9ImNhclByaWNlSW5pdGlhbFRvb2xUaXBJY29uIGZhbCBmYS1pbmZvLWNpcmNsZSBibGFja0NvbG9yQm9sZCIgZGF0YS10b29sdGlwPScmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1BEU0Y6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzcyIDMwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RyYW5zcG9ydCAmYW1wOyBQcsOpcGFyYXRpb246Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzIgOTk1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VGF4ZSBBQzombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MTAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VG90YWwmbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7NzUgMzk1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0Oyc+PC9pPgogICAgPC9kaXY+CiAgICA8IS0tIENMT1NFIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+PCEtLSBPUEVOIE5FVyBDQVIgUFJPTU8gUFJJQ0UgKDI3NiktLT48ZGl2IGNsYXNzPSJkaXZOZXdDYXJQcm9tb1ByaWNlIj5lbiByYWJhaXMgw6AgPHNwYW4gY2xhc3M9InN0cmlrZS1wcmljZSIgc3R5bGU9ImNvbG9yOiAjZWIwMDAwOyI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjczIDM5NTwvc3Bhbj48L3NwYW4+PC9kaXY+PCEtLSBDTE9TRSBORVcgQ0FSIFBST01PIFBSSUNFICgyODMpLS0+CgkJCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW5TdG9ja0xpbmsiIGhpZGRlbj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgZGF0YS10eXBlPSJpbnZkYXRhIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9IlRyYW5zaXQgUGFzc2VuZ2VyIFdhZ29uIiBkYXRhLXllYXI9IjIwMjYiIGRhdGEtc3R5bGVpZHM9IjQ3ODY2Nyw0Nzg2NjksNDgzMzc3LDQ3ODY3Myw0Nzg2NzEsNDc4Njc1LDQ3ODY2OCw0ODMzNzksNDc4NjcwLDQ4MzM3OCw0Nzg2NzcsNDc4Njc0LDQ3ODY3Miw0Nzg2NzYsNDgzMzgwLDQ3ODY3OCIgZGF0YS1oeWJyaWQ9IjAiPgoJPC9kaXY+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJbWFnZUNvbnRhaW5lciBmbGV4LWNlbnRlciBhbGlnbi1jZW50ZXIgIj4KCQkJCTxhIHRpdGxlPSJGb3JkIFRyYW5zaXQgdG91cmlzbWUgMjAyNiIgaHJlZj0iP3BhdGg9L25ldWZzL0ZvcmQtVHJhbnNpdF9QYXNzZW5nZXJfV2Fnb24tMjAyNi5odG1sIj4KCQkJCQk8aW1nIGFsdD0iRm9yZCBUcmFuc2l0IHRvdXJpc21lIDIwMjYiIGJvcmRlcj0iMCIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvZnIvRm9yZC9UcmFuc2l0X1Bhc3Nlbmdlcl9XYWdvbi8yMDI2LzQ3ODY3OC9CbHVlL3Byb2ZpbGUud2VicCIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPgoJCQkJPC9hPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyRm9vdGVyQ29udGFpbmVyIHN0YWNrLWxjIC0tcy05Ij4KCQkJCQk8ZGl2IGNsYXNzPSJjYXJQYXltZW50V3JhcHBlciI+CgkJCTxkaXYgY2xhc3M9ImNvbnRlbnQtc2tlbGV0b24gaHRtbC1ibG9jayIgZGF0YS1ibG9jaz0icGF5bWVudEJsb2NrIiBkYXRhLXR5cGU9ImJsb2NrIiBkYXRhLXNvdXJjZT0ic2VydmVyIiBkYXRhLWNhbGxiYWNrPSJwYXltZW50Q2FsY0Jsb2NrIj4KCQkKCTxpbnB1dCBuYW1lPSJibG9jay1kYXRhIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSJ7JnF1b3Q7c3R5bGVpZCZxdW90OzomcXVvdDs0Nzg2NjcmcXVvdDssJnF1b3Q7dGl0bGUmcXVvdDs6JnF1b3Q7Rm9yZCBUcmFuc2l0IHRvdXJpc21lIDIwMjYmcXVvdDssJnF1b3Q7aHJlZiZxdW90OzomcXVvdDtcL25ldWZzXC9Gb3JkLVRyYW5zaXRfUGFzc2VuZ2VyX1dhZ29uLTIwMjYuaHRtbCZxdW90OywmcXVvdDtsaW5rc3R5bGUmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O2xpbmtjbGFzcyZxdW90OzomcXVvdDsmcXVvdDssJnF1b3Q7Y29udGFpbmVyY2xhc3MmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O3Byb21vdGV4dCZxdW90OzomcXVvdDtEXHUwMGU5Y291dnJleiBsJ29mZnJlISZxdW90O30iPgoJPC9kaXY+Cgk8L2Rpdj4KCQkJCQoJCQk8L2Rpdj4KCQk8L2Rpdj4KCTwvZGl2PjwvZGl2PjwvZGl2PjwhLS0gQ0xPU0UgQ0FURUdPUllCT1hXUkFQUEVSICgyMTk0KS0tPjwvZGl2PjwhLS0gQ0xPU0UgQ0FURUdPUklFU0JPWFdSQVBQRVIgKDIyMDEpLS0+PGlucHV0IHR5cGU9ImhpZGRlbiIgdmFsdWU9IkZvcmQiIGlkPSJpc0JyYW5kUGFnZSI+CgkJCQk8L2Rpdj4KCQkJCTwhLS0gQ0xPU0UgT1VURVJCT1hMQVlFUiAtLT4KCQkJCSAgICA8ZGl2IGNsYXNzPSJJbm5lckJveExheWVyIGRpdkRpc2NsYWltZXJCbG9jayI+CiAgICAgICAgPGRpdiBjbGFzcz0iZGl2QmxvY2tWaWV3Ij4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iZGl2QmxvY2tDb250ZW50Ij4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRpdkJsb2NrVGl0bGUgYmxvY2tUaXRsZVN0eWxlMiI+CiAgICAgICAgICAgICAgICAgICAgQ2xhdXNlIGRlIG5vbi1yZXNwb25zYWJpbGl0w6kKICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZGl2QmxvY2tDb2x1bW4gYmxhY2stdGV4dCI+CiAgICAgICAgICAgICAgICAgICAgTGUgbW9udGFudCBpbmRpcXXDqSByZXByw6lzZW50ZSB1bmUgZXN0aW1hdGlvbiBkdSBtb250YW50IHF1ZSB2b3VzIHBvdXZleiB2b3VzIGF0dGVuZHJlIMOgIHBheWVyIGVuIGRvbGxhcnMgY2FuYWRpZW5zLiBMZXMgdGF4ZXMgc29udCBleGNsdWVzIChzYXVmIGluZGljYXRpb24gY29udHJhaXJlKS4gTGVzIHBob3RvcyByZXByw6lzZW50ZW50IGxlIG1vZMOobGUgb2ZmZXJ0IG1haXMgcGV1dmVudCB2YXJpZXIgbMOpZ8OocmVtZW50IGVuIGNvdWxldXIsIG9wdGlvbnMsIG91IGNhcmFjdMOpcmlzdGlxdWVzLiBCaWVuIHF1ZSBub3VzIG5vdXMgZWZmb3JjaW9ucyBkZSBnYXJhbnRpciBsJ2V4YWN0aXR1ZGUgZGVzIGluZm9ybWF0aW9ucyBzdXIgY2Ugc2l0ZSBXZWIsIG5vdXMgdm91cyByZWNvbW1hbmRvbnMgZGUgbm91cyBjb250YWN0ZXIgZGlyZWN0ZW1lbnQgcG91ciB2w6lyaWZpZXIgbGVzIGTDqXRhaWxzIGV0IG9idGVuaXIgZGVzIGluZm9ybWF0aW9ucyBzdXBwbMOpbWVudGFpcmVzIHN1ciBsZSB2w6loaWN1bGUsIHkgY29tcHJpcyBsYSBjb25maXJtYXRpb24gZGVzIHByaXgsIGRlcyBjb3VsZXVycywgZGVzIGZpbml0aW9ucywgZGVzIG9wdGlvbnMgZXQgYXV0cmVzIHNww6ljaWZpY2F0aW9ucy4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgIDwvZGl2PgoJCQk8L2Rpdj4KCQkJPCEtLSBDTE9TRSBMRUZUQk9YTEFZRVIgLS0+CgkJPC9kaXY+CgkJPCEtLSBDTE9TRSBNQUlOQk9YTEFZRVIgLS0+CgkJPCEtLSBPUEVOIEZPT1RFUldJREdFVCAtLT4KCQkJPGRpdiBpZD0iZDJjX3ZhcnMiPjxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSJuZXdjYXJzLmh0bWwiIGlkPSIxNmQ3dnd0NjZwbW93bzBrIiBkYXRhLWZvcnZhcj0iQ1VSUkVOVFBBR0UiPgo8aW5wdXQgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iZTM4YTBkOWUwNGE3YmM4NmI5ZTZkOGViZWMzZTk3ZGF8MTU3OTkwMTQ0OCIgaWQ9IjNwbTZ0dmdxcWVndzR3IiBkYXRhLWZvcnZhcj0iVVNFRF9FTUFJTCI+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSIxMzFkMTlhOGIxNjU3NGQwYzk1ZjViYjcxNzNiZGNlY3wxNTc5OTAxNDQ4IiBpZD0icmQ1cDhzNGg2cjRzMGNrIiBkYXRhLWZvcnZhcj0iQURGX0VNQUlMIj4KPGlucHV0IHR5cGU9ImhpZGRlbiIgdmFsdWU9Ik5FVyIgaWQ9InNvN3l1cWFqNGR3Y2M4cyIgZGF0YS1mb3J2YXI9IlNJVEVfQ0FSX1NFQ1RJT05fVFlQRSI+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSJlMzhhMGQ5ZTA0YTdiYzg2YjllNmQ4ZWJlYzNlOTdkYXwxNTc5OTAxNDQ4IiBpZD0iMTNkcXRzbmNkODF3azg0NCIgZGF0YS1mb3J2YXI9IkZJTkFOQ0VfRU1BSUwiPgo8aW5wdXQgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iMTMxZDE5YThiMTY1NzRkMGM5NWY1YmI3MTczYmRjZWN8MTU3OTkwMTQ0OCIgaWQ9IjVjY3lnazkyNW1nd2cwIiBkYXRhLWZvcnZhcj0iRklOQU5DRV9BREZfRU1BSUwiPgo8aW5wdXQgdHlwZT0iaGlkZGVuIiB2YWx1ZT0ibGl2ZSIgaWQ9IjJlamhiYzB5eW9nMHd3dyIgZGF0YS1mb3J2YXI9IkRFUExPWU1FTlRUWVBFIj4KPGlucHV0IHR5cGU9ImhpZGRlbiIgdmFsdWU9InJlc2V0IiBpZD0iNmp5cDQ2NjR2Z3dzODB3IiBkYXRhLWZvcnZhcj0iUE9QVVBXSURHRVRUT0FDVElWRSI+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSJOZXVmIiBpZD0iaXBudW0ybXkwMGc4czAwIiBkYXRhLWZvcnZhcj0iQ1VSUkVOVFNFQ1RJT05UWFQiPgo8aW5wdXQgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iIiBpZD0iMWVyaXY5MDBwZGE4OHd3OCIgZGF0YS1mb3J2YXI9Ik1BS0VGT1JFTUFJTCI+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSIiIGlkPSIxMHBhN3YzcWVsZGNvc2siIGRhdGEtZm9ydmFyPSJNT0RFTEZPUkVNQUlMIj4KPGlucHV0IHR5cGU9ImhpZGRlbiIgdmFsdWU9IiIgaWQ9InI4Mnpma3hhMmR3c3MwMCIgZGF0YS1mb3J2YXI9IllFQVIiPgo8aW5wdXQgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iIiBpZD0iaTNnc2F4Z3M1ams4d2NrIiBkYXRhLWZvcnZhcj0iUkVGRVJFUiI+CjwvZGl2PjwhLS0gIyNFTkRPRlBBR0UjIyAtLT4KCQoJCiAgICA8ZGl2IGNsYXNzPSJ1aS1sb2FkZXItYmFja2dyb3VuZCI+PGltZyBjbGFzcz0idWktbG9hZGVyLWJhY2tncm91bmQtZ2lmIGxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmxlZm9yZC5jb20vL2ltYWdlcy9hamF4LWxvYWRlcjIuZ2lmIiBhbHQ9ImFqYXggbG9hZGVyMiIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPjwvZGl2PgogICAgPGRpdiBpZD0iaW9zX2ZpeGVkX2JnIj48L2Rpdj4KCgkJCgoJCTwhLS0gUHJvbW90aW9uU2lkZUJ0biBESVNBQkxFRCBGT1IgU0VDVElPTjogTkVXIC0tPgogICAgCgkJCgogICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9Im9uTGVhZFN1Ym1pdEdlb2xvYyIgdmFsdWU9IjEiPgogICAgICAgICAgICA8ZGl2IGlkPSJnZW9sb2NhdGlvbk1zZyIgc3R5bGU9ImRpc3BsYXk6bm9uZTsgcG9zaXRpb246IGZpeGVkOyB6LWluZGV4OiAzNjAwMTsiPgogICAgICAgICAgICAgICAgPGltZyBhbHQ9IkZsw6hjaGUgcG9pbnRhbnQgdmVycyBsZSBoYXV0IiBjbGFzcz0iYnV0dG9uX3BvaW50ZXIgbGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FybGVmb3JkLmNvbS8vaW1hZ2VzL3JlZC1hcnJvdy1nbC5wbmciIHN0eWxlPSJwb3NpdGlvbjogcmVsYXRpdmU7IGxlZnQ6MzAwcHg7IHRvcDoyNXB4OyIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPgogICAgICAgICAgICAgICAgPGRpdiBzdHlsZT0id2lkdGg6NDk1cHg7IGhlaWdodDphdXRvOyBmb250LXNpemU6MTJweDsgY29sb3I6IzQ0NDsgcGFkZGluZzozMHB4IDEwcHggMTVweDsgbWFyZ2luOjAgMCAwIDA7IHRleHQtYWxpZ246anVzdGlmeTsgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsgYm9yZGVyLXJhZGl1czoxMHB4OyI+CiAgICAgICAgICAgICAgICAgICAgPGltZyBhbHQ9IkZlbW1lIHBvaW50YW50IHZlcnMgbGEgZHJvaXRlIiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FybGVmb3JkLmNvbS8vaW1hZ2VzL3dvbWFuLXBvaW50LXJpZ2h0LnBuZyIgc3R5bGU9ImZsb2F0OmxlZnQ7IHBvc2l0aW9uOiByZWxhdGl2ZTsgdG9wOjE1cHg7IiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBzdHlsZT0iZmxvYXQ6IHJpZ2h0OyB3aWR0aDoyMTBweDsgbGluZS1oZWlnaHQ6IDEuMzsiPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjbHIiPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8aW1nIGFsdD0iTG9nbyBkZSBDYXJsZSBGb3JkIiBjbGFzcz0iZ2VhbG9jTXNnTG9nbyBsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJsZWZvcmQuY29tLy9pbWFnZXMvTG9nby9DQVJGX0xvZ29fRVZfRlItdjQucG5nIiBzdHlsZT0iZGlzcGxheTpibG9jazsgaGVpZ2h0OjMwcHg7IG1hcmdpbi1ib3R0b206IDEwcHg7IiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+CiAgICAgICAgICAgICAgICAgICAgICAgIFBvdXIgYXZvaXIgYWNjw6hzIGF1eCBtZWlsbGV1cnMgcHJpeCBkZSBDYXJsZSBGb3JkLCBtZXJjaSBkZSBwYXJ0YWdlciB2b3RyZSBsb2NhdGlvbiBkZSBmYcOnb24gPHN0cm9uZz5zdHJpY3RlbWVudCBjb25maWRlbnRpZWxsZTwvc3Ryb25nPiBlbiBjbGlxdWFudCBzdXIgPHN0cm9uZz4nQXV0b3Jpc2VyJzwvc3Ryb25nPi4gPGJyPjxicj5MJ8OpcXVpcGUgQ2FybGUgRm9yZC4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjbHIiPjwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgPGRpdiBpZD0iZ2VvbG9jYXRpb25Nc2dJRSIgc3R5bGU9ImRpc3BsYXk6bm9uZTsgcG9zaXRpb246IGZpeGVkOyBib3R0b206IDA7IGxlZnQ6IDQwJTsgei1pbmRleDogMzYwMDE7Ij4KICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9IndpZHRoOjQ5NXB4OyBoZWlnaHQ6YXV0bzsgZm9udC1zaXplOjEycHg7IGNvbG9yOiM0NDQ7IHBhZGRpbmc6MTBweCAxMHB4IDMwcHg7IG1hcmdpbjowIDAgMCAwOyB0ZXh0LWFsaWduOmp1c3RpZnk7IGJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6MTBweDsiPgogICAgICAgICAgICAgICAgICAgIDxpbWcgYWx0PSJGZW1tZSBwb2ludGFudCB2ZXJzIGxhIGRyb2l0ZSIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmxlZm9yZC5jb20vL2ltYWdlcy93b21hbi1wb2ludC1yaWdodC5wbmciIHN0eWxlPSJmbG9hdDpsZWZ0OyBwb3NpdGlvbjogcmVsYXRpdmU7IHRvcDoxNXB4OyIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9ImZsb2F0OiByaWdodDsgd2lkdGg6MjEwcHg7IGxpbmUtaGVpZ2h0OiAxLjM7Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2xyIj48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBhbHQ9IkxvZ28gZGUgQ2FybGUgRm9yZCIgY2xhc3M9ImdlYWxvY01zZ0xvZ28gbGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FybGVmb3JkLmNvbS8vaW1hZ2VzL0xvZ28vQ0FSRl9Mb2dvX0VWX0ZSLXY0LnBuZyIgc3R5bGU9ImRpc3BsYXk6YmxvY2s7IGhlaWdodDozMHB4OyBtYXJnaW4tYm90dG9tOiAxMHB4OyIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPgogICAgICAgICAgICAgICAgICAgICAgICBQb3VyIGF2b2lyIGFjY8OocyBhdXggbWVpbGxldXJzIHByaXggZGUgQ2FybGUgRm9yZCwgbWVyY2kgZGUgcGFydGFnZXIgdm90cmUgbG9jYXRpb24gZGUgZmHDp29uIDxzdHJvbmc+c3RyaWN0ZW1lbnQgY29uZmlkZW50aWVsbGU8L3N0cm9uZz4gZW4gY2xpcXVhbnQgc3VyIDxzdHJvbmc+J0F1dG9yaXNlcic8L3N0cm9uZz4uIDxicj48YnI+TCfDqXF1aXBlIENhcmxlIEZvcmQuCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2xyIj48L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGltZyBhbHQ9IkZsw6hjaGUgcG9pbnRhbnQgdmVycyBsZSBiYXMiIGNsYXNzPSJidXR0b25fcG9pbnRlciBsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJsZWZvcmQuY29tLy9pbWFnZXMvcmVkLWRvd24tYXJyb3ctZ2wucG5nIiBzdHlsZT0icG9zaXRpb246IHJlbGF0aXZlOyBsZWZ0OiAyOTVweDsgdG9wOi0yNXB4OyIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPgogICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgIDxkaXYgY2xhc3M9Imdlb2xvYy1tb2RhbC1iZyIgc3R5bGU9ImJhY2tncm91bmQ6IG5vbmUgcmVwZWF0IHNjcm9sbCAwIDAgcmdiYSgwLDAsMCwwLjgpOyBoZWlnaHQ6MTAwJTsgd2lkdGg6MTAwJTsgcG9zaXRpb246Zml4ZWQ7IGxlZnQ6MDsgdG9wOjA7IHotaW5kZXg6MzYwMDA7IGRpc3BsYXk6IG5vbmU7Ij48L2Rpdj4KCgoJCQk8IS0tIE9POjowMjRkMzhjOWUxYTAzN2RkNDE1OGEwY2E5NTc0NGUzMCAtLT4KCiAgICAgICAgICAgICAgICAgICAgPCEtLSBPTzo6NmI2ZmIwODViN2MzMzBkNzdmZWQ0Mjg3MzU4NDRjNjEgLS0+CgogICAgCgoJCTxkaXYgaWQ9IkhJRERFTl9JTlBVVFMiPgoJCQk8IS0tIGJ1bmRsaW5nIGhpZGRlbiBpbnB1dHMgdG8gcGxlYXNlIEdvb2dsZSAtLT4KCQkJPGRpdiBjbGFzcz0iaGlfX19fMSI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iY3VycmVudEl0ZW1UeXBlIiB2YWx1ZT0iY2FyIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJjdXJyZW50SXRlbVR5cGVVUkxTYWZlRU4iIHZhbHVlPSIiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9ImN1cnJlbnRTdGF0dXMiIHZhbHVlPSJuZXciPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9InR4dFVzZXJBZ2VudCIgdmFsdWU9IiAgIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJjdXJyZW50Q2FyUHJpY2UiIHZhbHVlPSIwIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJ0eHRCdWlsZEFuZFByaWNlRW1haWxMaW5rIiB2YWx1ZT0iRGVybmllciB2w6loaWN1bGUgY29uZmlndXLDqSAobW9kdWxlIENvbmZpZ3VyYXRpb24gJmFtcDsgUHJpeCkgbGUgeyRCQU5QTElOS30iPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9InR4dEJ1aWxkQW5kUHJpY2VGb2xkZXJQYXRoIiB2YWx1ZT0iL2NvbmZpZ3VyYXRpb24tZXQtcHJpeC8iPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9IlRYVE1PTlRIMSIgdmFsdWU9IkphbnZpZXIiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9IlRYVE1PTlRIMiIgdmFsdWU9IkbDqXZyaWVyIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJUWFRNT05USDMiIHZhbHVlPSJNYXJzIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJUWFRNT05USDQiIHZhbHVlPSJBdnJpbCI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iVFhUTU9OVEg1IiB2YWx1ZT0iTWFpIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJUWFRNT05USDYiIHZhbHVlPSJKdWluIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJUWFRNT05USDciIHZhbHVlPSJKdWlsbGV0Ij4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJUWFRNT05USDgiIHZhbHVlPSJBb8O7dCI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iVFhUTU9OVEg5IiB2YWx1ZT0iU2VwdGVtYnJlIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJUWFRNT05USDEwIiB2YWx1ZT0iT2N0b2JyZSI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iVFhUTU9OVEgxMSIgdmFsdWU9Ik5vdmVtYnJlIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJUWFRNT05USDEyIiB2YWx1ZT0iRMOpY2VtYnJlIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJmZmRMMSIgdmFsdWU9IjNhZDE0ZmRhOGY1NmM2MjY4MmM2NWYwNzBlNmFlNjRkZmM2MzI3MjEiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9ImlzQVZHTWFya2V0UHJpY2VBY3RpdmUiIHZhbHVlPSIwIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJpc0FWR01hcmtldFByaWNlQWN0aXZlQ2xlYXJhbmNlIiB2YWx1ZT0iMCI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0ic2hvd09ubHlSZWR1Y2VkUHJpY2VDbGVhcmFuY2UiIHZhbHVlPSIwIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJoYXNNdWx0aXBsZURlYWxlcnMiIHZhbHVlPSIwIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJzZW5kRW1haWxUb0FsbERlYWxlcnMiIHZhbHVlPSIwIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJzZWFyY2hlZFZlaGljbGUiIHZhbHVlPSIgICI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0ic2VhcmNoZWRxdWVyeW1ha2UiIG5hbWU9InNlYXJjaGVkcXVlcnltYWtlIiB2YWx1ZT0iIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJzZWFyY2hlZHF1ZXJ5bW9kZWwiIG5hbWU9InNlYXJjaGVkcXVlcnltb2RlbCIgdmFsdWU9IiI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0ic2VhcmNoZWRxdWVyeXllYXIiIG5hbWU9InNlYXJjaGVkcXVlcnl5ZWFyIiB2YWx1ZT0iIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJpbWdzdnJwb29sYWN0aXZlIiBuYW1lPSJpbWdzdnJwb29sYWN0aXZlIiB2YWx1ZT0iVFJVRSI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0ic2l0ZWNvbXBpbGVpZCIgbmFtZT0ic2l0ZWNvbXBpbGVpZCIgdmFsdWU9IjZhMmViMTkyNzhmZjQiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9ImVtYWlsTGlzdFN1ZmZpeCIgbmFtZT0iZW1haWxMaXN0U3VmZml4IiB2YWx1ZT0iMTU3OTkwMTQ0OCI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iZGlzYWJsZVBvcHVwcyIgbmFtZT0iZGlzYWJsZVBvcHVwcyIgdmFsdWU9IjAiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9InNlcnZpY2VFbmFibGVkIiBuYW1lPSJzZXJ2aWNlRW5hYmxlZCIgdmFsdWU9IjEiPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iaGlfX19fMiI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iQURNSU5fR0VORVJBTF9CTE9DS19GUl9ET01BSU5fQ0hFQ0siIG5hbWU9IkFETUlOX0dFTkVSQUxfQkxPQ0tfRlJfRE9NQUlOX0NIRUNLIiB2YWx1ZT0iMSI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0ibmV3U2VjdGlvbm5hYmxlZCIgbmFtZT0ibmV3U2VjdGlvbm5hYmxlZCIgdmFsdWU9IjEiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9InVzZWRTZWN0aW9ubmFibGVkIiBuYW1lPSJ1c2VkU2VjdGlvbm5hYmxlZCIgdmFsdWU9IjEiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9ImZpbmFuY2VTZWN0aW9ubmFibGVkIiBuYW1lPSJmaW5hbmNlU2VjdGlvbm5hYmxlZCIgdmFsdWU9IjEiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9InNlcnZpY2VTZWN0aW9ubmFibGVkIiBuYW1lPSJzZXJ2aWNlU2VjdGlvbm5hYmxlZCIgdmFsdWU9IjEiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9InByb21vU2VjdGlvbm5hYmxlZCIgbmFtZT0icHJvbW9TZWN0aW9ubmFibGVkIiB2YWx1ZT0iMSI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0idGFyZ2V0UGFnZSIgbmFtZT0idGFyZ2V0UGFnZSIgdmFsdWU9Ik5FV0NBUlMiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9InBhZ2VTZWN0aW9uIiBuYW1lPSJwYWdlU2VjdGlvbiIgdmFsdWU9Ik5FVyI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iRGlzY291bnRQb3B1cE90aGVyUGFnZXMiIG5hbWU9IkRpc2NvdW50UG9wdXBPdGhlclBhZ2VzIiB2YWx1ZT0iSE9NRVBBR0UiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9IkRpc2NvdW50UG9wdXBEZWxheVNob3dPdGhlciIgbmFtZT0iRGlzY291bnRQb3B1cERlbGF5U2hvd090aGVyIiB2YWx1ZT0iMSI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iRGlzY291bnRQb3B1cERlbGF5U2hvdyIgbmFtZT0iRGlzY291bnRQb3B1cERlbGF5U2hvdyIgdmFsdWU9IjEiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9IkRpc2NvdW50UG9wdXBEZWxheVNob3dOZXciIG5hbWU9IkRpc2NvdW50UG9wdXBEZWxheVNob3dOZXciIHZhbHVlPSIxIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJTSE9XX1BPUFVQX0FVVE8iIG5hbWU9IlNIT1dfUE9QVVBfQVVUTyIgdmFsdWU9ImRlbGF5Ij4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJTSE9XX1BPUFVQX0FVVE9fVVNFRCIgbmFtZT0iU0hPV19QT1BVUF9BVVRPX1VTRUQiIHZhbHVlPSJzY3JvbGx1cCI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iU0hPV19QT1BVUF9BVVRPX05FVyIgbmFtZT0iU0hPV19QT1BVUF9BVVRPX05FVyIgdmFsdWU9ImRlbGF5Ij4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJBVVRPX1BFUkNFTlRfUE9QVVAiIG5hbWU9IkFVVE9fUEVSQ0VOVF9QT1BVUCIgdmFsdWU9Ijc1Ij4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJBVVRPX1BFUkNFTlRfUE9QVVBfVVNFRCIgbmFtZT0iQVVUT19QRVJDRU5UX1BPUFVQX1VTRUQiIHZhbHVlPSI3NSI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iQVVUT19QRVJDRU5UX1BPUFVQX05FVyIgbmFtZT0iQVVUT19QRVJDRU5UX1BPUFVQX05FVyIgdmFsdWU9Ijc1Ij4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJHRU5FUkFMX1VTRURfUEFHRV9QT1BVUF9TRUxFQ1QiIG5hbWU9IkdFTkVSQUxfVVNFRF9QQUdFX1BPUFVQX1NFTEVDVCIgdmFsdWU9IklOQ0xVRElORyI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iR0VORVJBTF9ORVdfUEFHRV9QT1BVUF9TRUxFQ1QiIG5hbWU9IkdFTkVSQUxfTkVXX1BBR0VfUE9QVVBfU0VMRUNUIiB2YWx1ZT0iRVhDTFVESU5HIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJVU0VEX0xPR09fT05fQ0hFQ0siIG5hbWU9IlVTRURfTE9HT19PTl9DSEVDSyIgdmFsdWU9IiI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iU0VNX0JPT1NURVJfQUNUSVZFIiBuYW1lPSJTRU1fQk9PU1RFUl9BQ1RJVkUiIHZhbHVlPSIxIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJQQUdFSUQiIG5hbWU9IlBBR0VJRCIgdmFsdWU9Im5ld2NhcnMuaHRtbCI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iQ1JNX1dTU19BQ1RJVkUiIG5hbWU9IkNSTV9XU1NfQUNUSVZFIiB2YWx1ZT0ieWVzIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJSRVFVRVNUX1NFTlQiIG5hbWU9IlJFUVVFU1RfU0VOVCIgdmFsdWU9IlZvdHJlIGRlbWFuZGUgYSBiaWVuIMOpdMOpIGVudm95w6llISI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iREVBTEVSQlJBTkQiIG5hbWU9IkRFQUxFUkJSQU5EIiB2YWx1ZT0iRm9yZCI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iREVBTEVSQlJBTkRfUFJJTUFSWSIgbmFtZT0iREVBTEVSQlJBTkRfUFJJTUFSWSIgdmFsdWU9IkZvcmQiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9IkRFQUxFUlBBQ09ERSIgbmFtZT0iREVBTEVSUEFDT0RFIiB2YWx1ZT0iQjI1MDMiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9IkZJTkFOQ0VGT1JNVFlQRSIgbmFtZT0iRklOQU5DRUZPUk1UWVBFIiB2YWx1ZT0ibXVsdGlzdGVwIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJERUFMRVJUSVJFUkVESVJFQ1RDSEVDSyIgbmFtZT0iREVBTEVSVElSRVJFRElSRUNUQ0hFQ0siIHZhbHVlPSIxIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJERUFMRVJUSVJFUkVESVJFQ1RUWVBFIiBuYW1lPSJERUFMRVJUSVJFUkVESVJFQ1RUWVBFIiB2YWx1ZT0iZm9yZF9saW5jb2xuX2V4dGVybmFsIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJERUFMRVJQQVJUUkVESVJFQ1RUWVBFIiBuYW1lPSJERUFMRVJQQVJUUkVESVJFQ1RUWVBFIiB2YWx1ZT0iY3VzdG9tIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJJU1ZNIiBuYW1lPSJJU1ZNIiB2YWx1ZT0iIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJHUldMIiBuYW1lPSJHUldMIiB2YWx1ZT0iYjJlMzUwYjcxYzE2NDZiN2VlZWM5ZTFhZjZjODU0YjEzY2IxZGI1MTtiYTZiODYxMWNiYTExNzgwMzFiMTdmYTdlMzUwYWNmMmNlMTM1YWE1OzA5YzM1ODA3YmE0N2E4MjU5MmVmODhlNWQ2MzA0ZWE2OTliOGNiZTIiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9IkVNQUlMX0ZBSUxfTUVTU0FHRSIgdmFsdWU9IlVuZSBlcnJldXIgZXN0IHN1cnZlbnVlIGxvcnMgZGUgbCdlbnZvaSBkZSB2b3RyZSBtZXNzYWdlLiBWZXVpbGxleiByw6llc3NheWVyLiI+CgkJCQk8IS0tIDxpbnB1dCB0eXBlPSdoaWRkZW4nIHZhbHVlPSIvZGVtYW5kZXMvcHJpeC1vY2Nhc2lvbi8iIGlkPSdwcmljZVJlcXVlc3RGb2xkZXInLz4KCQkJCTxpbnB1dCB0eXBlPSdoaWRkZW4nIHZhbHVlPSIvZGVtYW5kZXMvZXNzYWlzLXJvdXRpZXItb2NjYXNpb24vIiBpZD0nU2NoZWR1bGVUZXN0RHJpdmVGb2xkZXInLz4KCQkJCTxpbnB1dCB0eXBlPSdoaWRkZW4nIHZhbHVlPSIvZGVtYW5kZXMvZmluYW5jZW1lbnQvIiBpZD0nRmluYW5jZUZvbGRlcicvPiAtLT4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSIvZGVtYW5kZXMvb2ZmcmUtb2NjYXNpb24vIiBpZD0idGV4dE1ha2VPZmZlckZvbGRlciI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iMSIgaWQ9Imhhc1ZCRENFbmFibGVkIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSIxIiBpZD0ibWVudUxvY2siPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9Im9lbUNlcnRpZmljYXRpb24iIHZhbHVlPSIxMDA1Ij4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJEaXNjb3VudFBvcHVwTmV3UmViYXRlU2hvd1RleHRVcyIgdmFsdWU9IjAiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9IkRpc2NvdW50UG9wdXBVc2VkUmViYXRlU2hvd1RleHRVcyIgdmFsdWU9IjAiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9ImNvb2tpZUxvZ1Rva2VuIiB2YWx1ZT0iTWpNek16WTVORGMzTkRneiI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iY29va2llVG9DaGVjayIgdmFsdWU9IjEiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9ImRpc2FibGVJbnRlcm5hbFNlc3Npb24iIHZhbHVlPSIxIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJkZWFsZXJQcm92aW5jZUNvZGUiIHZhbHVlPSJRQyI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0ic2l0ZUlEIiB2YWx1ZT0iMTMxIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJBRE1JTl9ORVdfRE9OVF9TSE9XX1BSSUNFX01PREVMUyIgdmFsdWU9IiI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iTkVXX1BSSUNFX1RFWFQiIHZhbHVlPSJBcHBlbGV6IHBvdXIgdW4gcHJpeCI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iRmluYW5jZV9Gb3JtVHlwZSIgdmFsdWU9Im11bHRpc3RlcCI+CgkJCTwvZGl2PgoJCTwvZGl2PgoJCTxkaXYgaWQ9ImNvbmZpcm1fZm9ybXMiPjwvZGl2PgoKCQkKCgkJPCEtLSBPTzo6ZmQ0YzIxZDU1MzU0YzZkMjRlMzk5OTNkZjY4NDQxNmEgLS0+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJzaXRlSUQiIHZhbHVlPSIxMzEiPgkJCQoKCQkJCgkJPHN0eWxlPgoKCQkJI2xlYWREZWFsZXJBcHBvaW50bWVudCBzaWRlYmFyLWxjID4gKnsKCQkJCXdpZHRoOiBjbGFtcCgyMC41cmVtLCBtYXgoOTB2dywgMjAuNXJlbSksIDYwcmVtKTsKCQkJCWRpcmVjdGlvbjogcnRsOwoJCQl9CgoJCQkjbGVhZERlYWxlckFwcG9pbnRtZW50IHNpZGViYXItbGMgPiAqID4gKnsKCQkJCWRpcmVjdGlvbjogaW5pdGlhbDsKCQkJfQoKCQkJI2xlYWREZWFsZXJBcHBvaW50bWVudCBzaWRlYmFyLWxjID4gKiA+Omxhc3QtY2hpbGR7CgkJCQl3aWR0aDogMjByZW07CgkJCX0KCgkJCSNsZWFkRGVhbGVyQXBwb2ludG1lbnQgc2lkZWJhci1sY3sKCQkJCS0tc2lkZWJhci1icDogNDAlOwoJCQl9CgoJCQkjbGVhZERlYWxlckFwcG9pbnRtZW50IHN3aXRjaGVyLWxjewoJCQkJLS1zd2l0Y2gtYnA6IDM1cmVtOwoJCQl9CgoKCQkJI2Zvcm1EZWFsZXJBcHBvaW50bWVudCBsYWJlbHsKCQkJCW1heC13aWR0aDoxOXJlbTsKCQkJCWRpc3BsYXk6IGZsZXg7CgkJCQlmbGV4LXdyYXA6IHdyYXA7CgkJCQlqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CgkJCX0KCgkJCSNmb3JtRGVhbGVyQXBwb2ludG1lbnQgbGFiZWwgc3BhbnsKCQkJCXdpZHRoOjRyZW07CgkJCX0KCgoJCQkjZm9ybURlYWxlckFwcG9pbnRtZW50IFt0eXBlPSJzdWJtaXQiXXsKCQkJCW1heC13aWR0aDoxOXJlbTsKCQkJfQoKCQkJLmNvbnRhY3RNYXBDb250YWluZXJ7CgkJCQloZWlnaHQ6MTAwJTsKCQkJCW1pbi1oZWlnaHQ6bWluKDc1dmgsIDM4cmVtKTsKCQkJfQoKCQkJLmNvbnRhY3RGb3JtewoJCQkJYm9yZGVyLWNvbG9yOiNiYmI7CgkJCQlib3gtc2l6aW5nOiBib3JkZXItYm94OwoJCQl9CgoJCQkjbGVhZERlYWxlckFwcG9pbnRtZW50IC5jb250YWN0Rm9ybSBpbnB1dHsKCQkJCW1heC13aWR0aDogMTByZW07CgkJCX0KCgoKCQkJI2xlYWREZWFsZXJBcHBvaW50bWVudCAuZmxhdHBpY2tyLWRheS5zZWxlY3RlZHsKCQkJCWJhY2tncm91bmQtY29sb3I6IzAwMDsKCQkJCWJvcmRlci1jb2xvcjojMDAwOwoJCQl9CgoJCQkjbGVhZERlYWxlckFwcG9pbnRtZW50IC5mbGF0cGlja3ItdGltZSA6aXMoaW5wdXQ6aG92ZXIsaW5wdXQ6Zm9jdXMpewoJCQkJYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7CgkJCX0KCgkJCS5mbGF0cGlja3ItbW9udGhEcm9wZG93bi1tb250aCwgLmZsYXRwaWNrci1tb250aERyb3Bkb3duLW1vbnRoc3sKCQkJCXRleHQtdHJhbnNmb3JtOnZhcigtLXR4dC11cHBlciwgdXBwZXJjYXNlKTsKCQkJfQoKCQkJLyogLmRwLWxhcmdlIC5mbGF0cGlja3ItY2FsZW5kYXJ7CgkJCQl3aWR0aDozMHJlbTsKCQkJCWZvbnQtc2l6ZToxLjFyZW07CgkJCX0KCgkJCS5kcC1sYXJnZSAuZmxhdHBpY2tyLXdlZWtkYXlzewoJCQkJaGVpZ2h0OjIuNXJlbTsKCQkJfQoKCQkJLmRwLWxhcmdlIC5mbGF0cGlja3ItZGF5ewoJCQkJbWF4LXdpZHRoOiA0cmVtOwoJCQkJaGVpZ2h0OiAyLjVyZW07CgkJCQlsaW5lLWhlaWdodDogMi41cmVtOwoJCQl9CgoJCQkuZHAtbGFyZ2UgOmlzKC5mbGF0cGlja3ItZGF5cywuZGF5Q29udGFpbmVyKSB7CgkJCQl3aWR0aDoxMDAlOwoJCQkJbWF4LXdpZHRoOiAzMHJlbTsKCQkJfSAqLwoJCTwvc3R5bGU+CgoJCQk8ZGl2IGlkPSJsZWFkRGVhbGVyQXBwb2ludG1lbnQiIGhpZGRlbj4KCQkJCTxkaXYgY2xhc3M9ImZsZXgtY2VudGVyIGFsaWduLWNlbnRlciI+CgkJCQk8c2lkZWJhci1sYz4KCQkJCQk8ZGl2PiA8IS0tIGludGVybWVkaWFyeSB3cmFwcGVyIC0tPgoKCQkJCQkJPGJveC1sYz4KCQkJCQkJCTxzdGFjay1sYyBjbGFzcz0iYWxpZ24tY2VudGVyIj4KCQkJCQkJCQk8dWwgY2xhc3M9ImNoZWNrbGlzdCAtZnMtMSAtLXMiPgoJCQkJCQkJCQk8bGk+VW5lIGV4cMOpcmllbmNlIHBlcnNvbm5hbGlzw6llIGTDqHMgdm90cmUgYXJyaXbDqWU8L2xpPgoJCQkJCQkJCQk8bGk+QXVjdW5lIGF0dGVudGUgY2hleiBsZSBjb25jZXNzaW9ubmFpcmU8L2xpPgoJCQkJCQkJCQk8bGk+QXVjdW5lIHBhcGVyYXNzZSBpbnV0aWxlOiBjb25jZW50cmV6LXZvdXMgc3VyIGxlIHbDqWhpY3VsZTwvbGk+CgkJCQkJCQkJPC91bD4KCQkJCQkJCQk8Ym94LWxjIGNsYXNzPSJmbGV4LWNlbnRlciI+CgkJCQkJCQkJCTxpbnB1dCBjbGFzcz0iZGF0ZXBpY2tlciBmbGF0cGlja3ItaW5wdXQiIGhpZGRlbiB0eXBlPSJ0ZXh0IiB0aXRsZT0iU2VsZWN0IERhdGUuLi4iIHBsYWNlaG9sZGVyPSJTZWxlY3QgRGF0ZS4uLiIgZGF0YS1pZD0iaW5saW5lIiByZWFkb25seT4KCQkJCQkJCQk8L2JveC1sYz4KCQkJCQkJCQk8Ym94LWxjIGNsYXNzPSJjb250YWN0Rm9ybSAtYiAtdy0xMDAgZmxleC1jZW50ZXIgLS1zMiI+CgkJCQkJCQkJCTxmb3JtIGlkPSJmb3JtRGVhbGVyQXBwb2ludG1lbnQiIGNsYXNzPSItdy0xMDAiIG5vdmFsaWRhdGU+CgkJCQkJCQkJCQk8c3RhY2stbGMgY2xhc3M9Ii0tczIgYWxpZ24tY2VudGVyIj4KCgkJCQkJCQkJCQkJPHNwYW4gY2xhc3M9Ii1ib2xkIHR4dC1jZW50ZXIgdHh0LXVwcGVyIHNlbGVjdGVkVGltZSI+PC9zcGFuPgoJCQkJCQkJCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImRhdGUiPgoKCQkJCQkJCQkJCQk8c3dpdGNoZXItbGM+CgkJCQkJCQkJCQkJCTxkaXYgY2xhc3M9ImZsZXgtY2VudGVyIj4gPCEtLSBpbnRlcm1lZGlhcnkgd3JhcHBlciAtLT4KCQkJCQkJCQkJCQkJCTxsYWJlbCBjbGFzcz0iZm9ybS1sYWJlbCBhbGlnbi1jZW50ZXIiPgoJCQkJCQkJCQkJCQkJCTxzcGFuPk5vbSAqPC9zcGFuPgoJCQkJCQkJCQkJCQkJCTxpbnB1dCByZXF1aXJlZCBjbGFzcz0iLXBoIiBuYW1lPSJuYW1lIiB0eXBlPSJ0ZXh0Ij4KCQkJCQkJCQkJCQkJCTwvbGFiZWw+CgoJCQkJCQkJCQkJCQkJPGxhYmVsIGNsYXNzPSJmb3JtLWxhYmVsIGFsaWduLWNlbnRlciI+CgkJCQkJCQkJCQkJCQkJPHNwYW4+Q291cnJpZWwgKjwvc3Bhbj4KCQkJCQkJCQkJCQkJCQk8aW5wdXQgbmFtZT0iZW1haWwiIHR5cGU9ImVtYWlsIiByZXF1aXJlZD4KCQkJCQkJCQkJCQkJCTwvbGFiZWw+CgoJCQkJCQkJCQkJCQkJPGxhYmVsIGNsYXNzPSJmb3JtLWxhYmVsIGFsaWduLWNlbnRlciI+CgkJCQkJCQkJCQkJCQkJPHNwYW4+VMOpbMOpcGhvbmUgKjwvc3Bhbj4KCQkJCQkJCQkJCQkJCQk8aW5wdXQgZGF0YS1wcmlzdGluZS1waG9uZSBuYW1lPSJwaG9uZW51bSIgdHlwZT0idGVsIiByZXF1aXJlZD4KCQkJCQkJCQkJCQkJCTwvbGFiZWw+CgkJCQkJCQkJCQkJCTwvZGl2PgoJCQkJCQkJCQkJCTwvc3dpdGNoZXItbGM+CgoJCQkJCQkJCQkJCTxkaXYgY2xhc3M9InJlY2FwdGNoYS1kaXNjbGFpbWVyIj5XRUJfU0lURV9HRU5FUkFUT1JfUkVDQVBUQ0hBX0RJU0NMQUlNRVI8L2Rpdj4KCQkJCQkJCQkJCQk8YnV0dG9uIG9uc3VibWl0PSJqYXZhc2NyaXB0OnZvaWQoKSIgY2xhc3M9ImJ0biBidG4tcHJvbW8gLWZzLWxyIC13LTEwMCB0eHQtdXBwZXIgLWJvbGQiIHR5cGU9InN1Ym1pdCI+CgkJCQkJCQkJCQkJCVByZW5kcmUgcmVuZGV6LXZvdXMKCQkJCQkJCQkJCQk8L2J1dHRvbj4KCgkJCQkJCQkJCQkJPGlucHV0IG5hbWU9ImRhdGEiIHR5cGU9ImhpZGRlbiIgZGF0YS1tYWtlPSIiIGRhdGEtbW9kZWw9IiIgZGF0YS15ZWFyPSIiIGRhdGEtdHJpbT0iIiBkYXRhLWNvbmRpdGlvbj0iIiBkYXRhLWttPSIiIGRhdGEtdmluPSIiIGRhdGEtc3RvY2stbnVtYmVyPSIiPgoKCQkJCQkJCQkJCQk8aW5wdXQgbmFtZT0ic2VuZFRvIiB2YWx1ZT0iZTM4YTBkOWUwNGE3YmM4NmI5ZTZkOGViZWMzZTk3ZGF8MTU3OTkwMTQ0OCIgdHlwZT0iaGlkZGVuIj4KCQkJCQkJCQkJCQk8aW5wdXQgbmFtZT0ic2VuZFRvQURGRm9ybWF0IiB2YWx1ZT0iMTMxZDE5YThiMTY1NzRkMGM5NWY1YmI3MTczYmRjZWN8MTU3OTkwMTQ0OCIgdHlwZT0iaGlkZGVuIj4KCQkJCQkJCQkJCQk8aW5wdXQgbmFtZT0ibWFpbElEIiB2YWx1ZT0iRGVhbGVyQXBwb2ludG1lbnQiIHR5cGU9ImhpZGRlbiI+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\/cT1wbGFjZV9pZCUzQUNoSUprN183UTlVX3prd1Jidm5vTGxCSGxxSSZhbXA7a2V5PUFJemFTeUNYX0NwdXlFSm85bFpuODhTV1hoQ1lIZ1F3bmtMQjhHYyZhbXA7em9vbT0xNCZhbXA7cmVnaW9uPUNBJmFtcDtsYW5ndWFnZT1mciIgYWxsb3dmdWxsc2NyZWVuPSIiPjwvaWZyYW1lPgoKCQkJCQkJCQk8Ym94LWxjIGNsYXNzPSJjb250YWN0QmxvY2sgLS1zMiAtbTAiPgoJCQkJCQkJCQk8c3RhY2stbGMgY2xhc3M9Ii0tczMiPgoJCQkJCQkJCQkJPGRpdj4KCQkJCQkJCQkJCQk8c3RhY2stbGMgY2xhc3M9Ii0tcy04Ij4KCQkJCQkJCQkJCQkJPHNwYW4gY2xhc3M9Ii0tZnMwIj5DYXJsZSBGb3JkPC9zcGFuPgoJCQkJCQkJCQkJCQk8YSBocmVmPSJodHRwczovL3d3dy5nb29nbGUuY2EvbWFwcy9kaXIvP2FwaT0xJmFtcDtkZXN0aW5hdGlvbj1DYXJsZSUyQkZvcmQlMkM5MDErRG9sbGFyZCUyQ0dhdGluZWF1JTJDUUMlMkNKOEwrM1Q0JmFtcDtobD1mciZhbXA7dD1tJmFtcDt6PTE2JmFtcDtpZT1VVEY4JmFtcDtkZXN0aW5hdGlvbl9wbGFjZV9pZD1DaElKazdfN1E5VV96a3dSYnZub0xsQkhscUkiIHRhcmdldD0iX2JsYW5rIiBjbGFzcz0iLS1mcy0xIj4KCQkJCQkJCQkJCQkJCTxzcGFuPjkwMSBEb2xsYXJkPC9zcGFuPgoJCQkJCQkJCQkJCQkJPHNwYW4+R2F0aW5lYXUsIFFDPC9zcGFuPgoJCQkJCQkJCQkJCQkJPHNwYW4+SjhMIDNUNDwvc3Bhbj4KCQkJCQkJCQkJCQkJPC9hPgoJCQkJCQkJCQkJCTwvc3RhY2stbGM+CgkJCQkJCQkJCQk8L2Rpdj4KCgkJCQkJCQkJCQk8ZGl2PgoJCQkJCQkJCQkJCTxzdGFjay1sYyBjbGFzcz0iLS1zLTgiPgoJCQkJCQkJCQkJCQk8c3BhbiBjbGFzcz0iLWJvbGQiPlTDqWzDqXBob25lPC9zcGFuPgoJCQkJCQkJCQkJCQk8c3BhbiBjbGFzcz0iLS1mcy0xIj4KCQkJCQkJCQkJCQkJCTxhIGhyZWY9Ij9wYXRoPXRlbDoxJTIwODU1JTIwODYwLTU4NjEiIGRhdGEtZGVwYXJ0bWVudD0iU2FsZXMiIHRpdGxlPSJDb250YWN0IFBob25lIj4xIDg1NSA4NjAtNTg2MTwvYT4KCQkJCQkJCQkJCQkJPC9zcGFuPgoJCQkJCQkJCQkJCTwvc3RhY2stbGM+CgkJCQkJCQkJCQk8L2Rpdj4KCgkJCQkJCQkJCQk8ZGl2PgoJCQkJCQkJCQkJCTxzdGFjay1sYyBjbGFzcz0iLS1zLTgiPgoJCQkJCQkJCQkJCQk8c3BhbiBjbGFzcz0iLWJvbGQiPkhldXJlczwvc3Bhbj4KCQkJCQkJCQkJCQkJCQkJPGRpdiBpZD0iaXRlbV9uZXciPgoJCQkJPHN0YWNrLWxjIGNsYXNzPSJob3Vyc0xpc3QiPgoJCQkJCQkJCQk8Ym94LWxjIGNsYXNzPSJmbGV4LWJldHdlZW4gLS1mcy0xIC0tcy04IiBkYXRhLW1pbmhvdXI9IjA4OjMwIiBkYXRhLW1heGhvdXI9IjIwOjAwIiBkYXRhLWNsb3NlZD0iMCI+CgkJCQkJPHNwYW4gY2xhc3M9ImRheSI+THVuZGk8L3NwYW4+CgkJCQkJPHNwYW4gY2xhc3M9ImhvdXJzIj4wODozMCAtIDIwOjAwPC9zcGFuPgoJCQkJPC9ib3gtbGM+CQkJCTxib3gtbGMgY2xhc3M9ImZsZXgtYmV0d2VlbiAtLWZzLTEgLS1zLTgiIGRhdGEtbWluaG91cj0iMDg6MzAiIGRhdGEtbWF4aG91cj0iMjA6MDAiIGRhdGEtY2xvc2VkPSIwIj4KCQkJCQk8c3BhbiBjbGFzcz0iZGF5Ij5NYXJkaTwvc3Bhbj4KCQkJCQk8c3BhbiBjbGFzcz0iaG91cnMiPjA4OjMwIC0gMjA6MDA8L3NwYW4+CgkJCQk8L2JveC1sYz4JCQkJPGJveC1sYyBjbGFzcz0iZmxleC1iZXR3ZWVuIC0tZnMtMSAtLXMtOCIgZGF0YS1taW5ob3VyPSIwODozMCIgZGF0YS1tYXhob3VyPSIyMDowMCIgZGF0YS1jbG9zZWQ9IjAiPgoJCQkJCTxzcGFuIGNsYXNzPSJkYXkiPk1lcmNyZWRpPC9zcGFuPgoJCQkJCTxzcGFuIGNsYXNzPSJob3VycyI+MDg6MzAgLSAyMDowMDwvc3Bhbj4KCQkJCTwvYm94LWxjPgkJCQk8Ym94LWxjIGNsYXNzPSJmbGV4LWJldHdlZW4gLS1mcy0xIC0tcy04IiBkYXRhLW1pbmhvdXI9IjA4OjMwIiBkYXRhLW1heGhvdXI9IjIwOjAwIiBkYXRhLWNsb3NlZD0iMCI+CgkJCQkJPHNwYW4gY2xhc3M9ImRheSI+SmV1ZGk8L3NwYW4+CgkJCQkJPHNwYW4gY2xhc3M9ImhvdXJzIj4wODozMCAtIDIwOjAwPC9zcGFuPgoJCQkJPC9ib3gtbGM+CQkJCTxib3gtbGMgY2xhc3M9ImZsZXgtYmV0d2VlbiAtLWZzLTEgLS1zLTgiIGRhdGEtbWluaG91cj0iMDg6MzAiIGRhdGEtbWF4aG91cj0iMTg6MDAiIGRhdGEtY2xvc2VkPSIwIj4KCQkJCQk8c3BhbiBjbGFzcz0iZGF5Ij5WZW5kcmVkaTwvc3Bhbj4KCQkJCQk8c3BhbiBjbGFzcz0iaG91cnMiPjA4OjMwIC0gMTg6MDA8L3NwYW4+CgkJCQk8L2JveC1sYz4JCQkJPGJveC1sYyBjbGFzcz0iZmxleC1iZXR3ZWVuIC0tZnMtMSAtLXMtOCIgZGF0YS1taW5ob3VyPSIwODowMCIgZGF0YS1tYXhob3VyPSIxNjowMCIgZGF0YS1jbG9zZWQ9IjAiPgoJCQkJCTxzcGFuIGNsYXNzPSJkYXkiPlNhbWVkaTwvc3Bhbj4KCQkJCQk8c3BhbiBjbGFzcz0iaG91cnMiPjA4OjAwIC0gMTY6MDA8L3NwYW4+CgkJCQk8L2JveC1sYz4JCQkJPGJveC1sYyBjbGFzcz0iZmxleC1iZXR3ZWVuIC0tZnMtMSAtLXMtOCIgZGF0YS1taW5ob3VyPSJTdXIgUmVuZGV6LVZvdXMiIGRhdGEtbWF4aG91cj0iIiBkYXRhLWNsb3NlZD0iMCI+CgkJCQkJPHNwYW4gY2xhc3M9ImRheSI+RGltYW5jaGU8L3NwYW4+CgkJCQkJPHNwYW4gY2xhc3M9ImhvdXJzIj4xOTowMDwvc3Bhbj4KCQkJCTwvYm94LWxjPgoJCQkJPC9zdGFjay1sYz4KCQkJPC9kaXY+CgkJCQkJCQkJCQkJPC9zdGFjay1sYz4KCQkJCQkJCQkJCTwvZGl2PgoKCQkJCQkJCQkJPC9zdGFjay1sYz4KCQkJCQkJCQk8L2JveC1sYz4KCgkJCQkJCQk8L3N0YWNrLWxjPgoJCQkJCQk8L2Rpdj4KCgkJCQkJPC9kaXY+CgkJCQk8L3NpZGViYXItbGM+CgkJCQk8L2Rpdj4KCQkJCTwvZGl2PgoKCQkJCQoKCQkJCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJoaWRkZW5TaXRlSUQiIHZhbHVlPSIxMzEiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9ImhpZGRlblNraXBPbmxvYWRQcmludHNjcmVlbiIgdmFsdWU9IiMjRE9OVF9TS0lQX09OTE9BRCMjIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJoaWRkZW5QcmludHNjcmVlbktleSIgdmFsdWU9IiMjUFJJTlRTQ1JFRU5fS0VZIyMiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9ImhpZGRlbkRlYWxlck5hbWUiIHZhbHVlPSJDYXJsZSBGb3JkIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IkNCQkNoZWNrVXNlciIgdmFsdWU9Ik1UZ3VPVGN1T1M0eE56ST0iPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZm9ybV9lbWFpbHMiIHZhbHVlPSIiPjwhLS0gT086OjNhMjQ2YTc5OGQyNWRjYzMzMTU3NmViNWZkODBkNDdlIC0tPgkJCTxkaXYgc3R5bGU9InBvc2l0aW9uOmFic29sdXRlO3RvcDowO3dpZHRoOjFweDtoZWlnaHQ6MXB4O292ZXJmbG93OmhpZGRlbjsiPgoJCQkgIAoKCQkJICAJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZmFjZWJvb29rX2lzX2FjdGl2ZSIgdmFsdWU9IjEiIGNsYXNzPSJvcHRhbm9uLWNhdGVnb3J5LUMwMDAyLUMwMDAzLUMwMDA0LUMwMDA1Ij4KCQkJCTwhLS0gRmFjZWJvb2sgUGl4ZWwgQ29kZSBWaWV3Q29udGVudCAgLS0+CgkJCQk8IS0tIE9POjplNDFkMGIyOTJiMGZlMDg5NTdhNjQxOTkzNDA3ZDY3YSAtLT4KCQkJCTxub3NjcmlwdD4KCQkJCQk8aW1nIGFyaWEtaGlkZGVuPSJ0cnVlIiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vd3d3LmZhY2Vib29rLmNvbS90cj9pZD0zMDMzMDg0NDY2ODU1ODEmYW1wO2V2PVBhZ2VWaWV3JmFtcDtub3NjcmlwdD0xIiBhbHQ9InRyIGlkIDMwMzMwODQ0NjY4NTU4MSBldiAgcGFnZSB2aWV3IG5vc2NyaXB0IDEiIGhlaWdodD0iMSIgc3R5bGU9ImRpc3BsYXk6bm9uZSIgd2lkdGg9IjEiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj4KCQkJCTwvbm9zY3JpcHQ+CgkJCTwhLS0gRW5kIEZhY2Vib29rIFBpeGVsIENvZGUgVmlld0NvbnRlbnQgLS0+CgoJCSAgPC9kaXY+CgoJCSAgPGRpdiBpZD0iY29udmVyc2lvblRhZ3NXcmFwcGVyIj48L2Rpdj4KCgkJCTwhLS0gRFdQLTI0MzkgLS0+CgoJCQk8IS0tIE9POjo4M2MyNTI4YTc1MzgwYzA3ODcyZTkyYWQyYzk5YWUyZSAtLT4KCjwhLS0gQ1VTVE9NIEJPRFkgRlJFRUZJRUxEIC0tPgogCjwhLS1TVEFSVF9SRU1PVkFCTEVfQ09ERV9CTE9DS19DT01NRU5UXzAwMDEtLT4KCjwhLS1TVEFSVF9SRU1PVkFCTEVfQ09ERV9CTE9DS19DT01NRU5UXzAwMDItLT4KCjwhLS0gU1RBUlQgLS0gQXV0b0FsZXJ0IC0tIFJFUVVFU1RFUiA6IEN1c3RvbWVyIC0tPgo8IS0tIE9POjo1OWYzMTBkZmJlOWFkMTgyYTU4MzZhZGQzYTQ5YTQwMSAtLT4KPG5vc2NyaXB0PjxpbWcgYWx0PSJhdXRvYWxlcnQgdHJhY2tpbmciIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9memxuay5jb20vSGFuZGxlU2lnbmFsLmFzaHg\/c190eXBlPXRyYWNrUGFnZXZpZXcmYW1wO3Nfd3NJZD00YzFjYTZkNi0yMmY2LTQ1YjAtYmYwOC03MDBkM2VlNzIwNGQmYW1wO3NtYz00YzFjYTZkNi0yMmY2LTQ1YjAtYmYwOC03MDBkM2VlNzIwNGQuMC4wJmFtcDtjYWNoZWJ1c3Rlcj0xNDA3ODI2NjY0IiBoZWlnaHQ9IjEiIHN0eWxlPSJkaXNwbGF5Om5vbmUiIHdpZHRoPSIxIiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+PC9ub3NjcmlwdD4KPCEtLSBFTkQgLS0gQXV0b0FsZXJ0IC0tIFJFUVVFU1RFUiA6IEN1c3RvbWVyIC0tPgoKPCEtLUVORF9SRU1PVkFCTEVfQ09ERV9CTE9DS19DT01NRU5UXzAwMDItLT4KCjwhLS1FTkRfUkVNT1ZBQkxFX0NPREVfQkxPQ0tfQ09NTUVOVF8wMDAxLS0+Cgo8IS0tU1RBUlRfUkVNT1ZBQkxFX0NPREVfQkxPQ0tfQ09NTUVOVF8wMDAxLS0+CjwhLS0gR29vZ2xlIFRhZyBNYW5hZ2VyIChub3NjcmlwdCkgLS0gUkVRVUVTVEVSOiAgLS0+Cjxub3NjcmlwdD48aWZyYW1lIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xldGFnbWFuYWdlci5jb20vbnMuaHRtbD9pZD1HVE0tTUhIQlBXSyIgaGVpZ2h0PSIwIiB3aWR0aD0iMCIgc3R5bGU9ImRpc3BsYXk6bm9uZTt2aXNpYmlsaXR5OmhpZGRlbiI+PC9pZnJhbWU+PC9ub3NjcmlwdD4KPCEtLSBFbmQgR29vZ2xlIFRhZyBNYW5hZ2VyIChub3NjcmlwdCkgLS0gUkVRVUVTVEVSOiAgLS0+CjwhLS1FTkRfUkVNT1ZBQkxFX0NPREVfQkxPQ0tfQ09NTUVOVF8wMDAxLS0+CgogPCEtLSBFTkQgQ1VTVE9NIEJPRFkgRlJFRUZJRUxEIC0tPjxzY3JpcHQgc3JjPSJodHRwczovL2FpYXBwcy5kMmNtZWRpYS5jYS9jaGF0Ym90L2QyY2JvdC13aWRnZXQuanMiIGRhdGEtY2hhdC13aWRnZXQ9IiI+PC9zY3JpcHQ+PGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2FpYXBwcy5kMmNtZWRpYS5jYS9jaGF0Ym90L2QyY2JvdC13aWRnZXQuY3NzIj4KCiAgICA8ZGl2IGlkPSJlbWFpbFN1Y2Nlc3NNZXNzYWdlIiBjbGFzcz0icmV2ZWFsLW1vZGFsIGVtYWlsLWNvbnNlbnQtYm94Ij4KICAgICAgPGRpdiBjbGFzcz0iaWNvbi10aXRsZSI+CiAgICAgICAgPCEtLSA8c3BhbiBjbGFzcz0idGl0bGUtaWNvbiBzdWNjZXNzIC1tbDAiPjwvc3Bhbj4gLS0+CiAgICAgICAgPHNwYW4gY2xhc3M9InRpdGxlLXR4dCI+Vm90cmUgZGVtYW5kZSBhIGJpZW4gw6l0w6kgZW52b3nDqWUhPC9zcGFuPgogICAgICA8L2Rpdj4KICAgICAgPHAgY2xhc3M9ImRlZmF1bHRTdWNjZXNzIj48YnI+Vm90cmUgZGVtYW5kZSBhIMOpdMOpIGVudm95w6llIGF2ZWMgc3VjY8Oocy4gVW4gcmVwcsOpc2VudGFudCB2b3VzIGNvbnRhY3RlcmEgc291cyBwZXUuPC9wPgogICAgICA8cCBjbGFzcz0ic2VydmljZVN1Y2Nlc3MiIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij48YnI+TWVyY2kgcG91ciB2b3RyZSBkZW1hbmRlLiBVbiBtZW1icmUgZGUgbm90cmUgw6lxdWlwZSBjb21tdW5pcXVlcmEgYXZlYyB2b3VzIHNvdXMgcGV1LjwvcD4KICAgICAgPCEtLSA8YSBjbGFzcz0iY2xvc2UtcmV2ZWFsLW1vZGFsIj4mIzIxNTs8L2E+IC0tPgogICAgICA8ZGl2IGNsYXNzPSJlbWFpbC1jb25zZW50LWJ0bnMgLXB0MjAgLXJpZ2h0IGFtcENvbnNlbnRSZXNwb25zZVNlbmREaXNtaXNzIj4KICAgICAgICA8YSBocmVmPSI\/cGF0aD0jIiBjbGFzcz0iY29uZmlybV9zdWNjZXNzQ29udGludWUgIGJ0bi1kZWZhdWx0ICI+RmVybWVyPC9hPgogICAgICA8L2Rpdj4KICAgICAgPGZvcm0gaWQ9ImVtYWlsbXNnZnJtIiBjbGFzcz0iY29uZmlybV9odG1sIiB0YXJnZXQ9ImlmcmFtZSIgbWV0aG9kPSJwb3N0IiBhY3Rpb249Ii9jb25maXJtYXRpb24uaHRtbCI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImxhYmVsIiBjbGFzcz0ibGFiZWxlbWFpbCIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InNlY3Rpb24iIGNsYXNzPSJsYWJlbHNlY3Rpb24iIHZhbHVlPSJPY2Nhc2lvbiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImJyYW5kIiBjbGFzcz0iYnJhbmRlbWFpbCIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Im1vZGVsIiBjbGFzcz0ibW9kZWxlbWFpbCIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InllYXIiIGNsYXNzPSJ5ZWFyZW1haWwiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJnb29nbGVpZCIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Imdvb2dsZWlkZDJjbWVkaWEiIHZhbHVlPSIiPgoJCQkJCQkgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImFkd29yZHNjb25pZCIgdmFsdWU9Ijk4MDYxMjgzNiI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJhZHdvcmRzbGFiZWxpZCIgdmFsdWU9Ii1sRVRDSVQ3NmdzUTVPM0wwd00iPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJiaW5nY29uaWQiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJiaW5nYWN0aW9uaWQiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJiaW5nZG9tYWluaWQiIHZhbHVlPSIiPgoKICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYWRyb2xsQWR2IiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYWRyb2xsUGl4IiB2YWx1ZT0iIj4KCiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImZhY2Vib29rQ29uSWQiIHZhbHVlPSIzMDMzMDg0NDY2ODU1ODEiPgoKICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZG9tYWluIiB2YWx1ZT0iY2FybGVmb3JkLmNvbSI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InJlZmVycmVyIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZGVwYXJ0bWVudCIgdmFsdWU9Ik5FVyI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImxlYWRfZGVwYXJ0bWVudCIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImlzZXhwcmVzcyIgY2xhc3M9ImlzZXhwcmVzcyIgdmFsdWU9IjAiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJpc3Byb21vIiB2YWx1ZT0iMCI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImlzaG9tZXBhZ2UiIHZhbHVlPSIwIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0idGVzdG1vZGUiIGNsYXNzPSJ0ZXN0bW9kZSIgdmFsdWU9IjAiPgoKICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ibGVhZFR5cGUiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJwYWdlSUQiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJjdXJyZW50VVJMIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iaXNDb25maXJtUG9wdXAiIHZhbHVlPSIiPgoKICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iY29uZmlybV9lbWFpbCIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImNvbmZpcm1fZmlyc3RfbmFtZSIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImNvbmZpcm1fbGFzdF9uYW1lIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iY29uZmlybV9waG9uZV9udW1iZXIiIHZhbHVlPSIiPgoKICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iaXNGdWxsV2lkdGgiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJkZWFsZXJOYW1lIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYnV0dG9uUG9zaXRpb24iIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJpc01vYmlsZU5ld1ZEUCIgdmFsdWU9IjAiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJmcm9tQXV0b0F1YmFpbmUiIHZhbHVlPSIiPgoKICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgdmFsdWU9Ik5FVyIgbmFtZT0idGV4dENhclNlY3Rpb25UeXBlIiBzdHlsZT0iZGlzcGxheTpub25lOyI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImxhbmciIHZhbHVlPSJmciI+CiAgICAgIDwvZm9ybT4KICAgICAgPGlmcmFtZSB3aWR0aD0iMSIgaGVpZ2h0PSIxIiBuYW1lPSJpZnJhbWUiIGZyYW1lYm9yZGVyPSIwIj48L2lmcmFtZT4KICAgIDwvZGl2PgoKICAgIDxkaXYgaWQ9ImVtYWlsRmFpbE1lc3NhZ2UiIGNsYXNzPSJyZXZlYWwtbW9kYWwgZW1haWwtY29uc2VudC1ib3giPgogICAgICA8c3BhbiBjbGFzcz0iZmFpbCI+VW5lIGVycmV1ciBzJ2VzdCBwcm9kdWl0ZTwvc3Bhbj4KICAgICAgPHA+Tm91cyBuJ2F2b25zIHBhcyBwdSBlbnZveWVyIHZvdHJlIG1lc3NhZ2UuIFMnaWwgdm91cyBwbGHDrnQgcmFmcmHDrmNoaXIgZXQgZXNzYXlleiDDoCBub3V2ZWF1LjwvcD4KICAgICAgPGRpdiBjbGFzcz0iY2xvc2UtcmV2ZWFsLW1vZGFsIj48ZW0gY2xhc3M9ImZhIGZhLXRpbWVzLWNpcmNsZSI+PC9lbT48L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0iLXB0MjAgLXJpZ2h0IGFtcENvbnNlbnRSZXNwb25zZVNlbmREaXNtaXNzIj4KICAgICAgICA8YSBocmVmPSI\/cGF0aD0jIiBjbGFzcz0iY29uZmlybV9mYWlsQ29udGludWUgIGJ0bi1kZWZhdWx0ICI+RmVybWVyPC9hPgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgoKCgkJCgkJPGRpdiBpZD0iZDJjRm9vdGVyQ29va2llRGVsZXRlIiBjbGFzcz0icmV2ZWFsLW1vZGFsICIgc3R5bGU9IndpZHRoOjU4MHB4O2hlaWdodDozNTBweDtwYWRkaW5nOjsiIGRhdGEtbGF6eWxvYWRpZD0ibmV3Y2Fyc19kMmNmb290ZXJjb29raWVkZWxldGUiPgoJCQkKCQk8L2Rpdj4KCgkJPCEtLSBPTzo6Yzk2ZmJlOGJjZjg3MmU5NGM1YmQ1YjVhNThhYzlkZTUgLS0+CgoJCQoJCQoJCTwhLS0gQ0xPU0UgRk9PVEVSV0lER0VUIC0tPgoJCTwhLS0gT1BFTiBQT1BVUFdJREdFVCAtLT4KCQk8IS0tIE1BSU4gUE9QVVAgbmV3IENvbnRhY3RQb3B1cCAtLT4KCQkKCQk8ZGl2IGlkPSJjb250YWN0cG9wdXAiIGNsYXNzPSJyZXZlYWwtbW9kYWwgIiBkYXRhLWxhenlsb2FkaWQ9Im5ld2NhcnNfY29udGFjdHBvcHVwIj4KCQkJCgkJPC9kaXY+CgoJCTwhLS0gT086OmQwNWE4Mjc5ODI2ZWEzMWIwZWI5MTdiNjc5YjU1ZTM1IC0tPgoKCQkKCiAgICA8ZGl2IGlkPSJlbWFpbFN1Y2Nlc3NNZXNzYWdlX2NvbnRhY3Rwb3B1cCIgY2xhc3M9InJldmVhbC1tb2RhbCBlbWFpbC1jb25zZW50LWJveCI+CiAgICAgIDxkaXYgY2xhc3M9Imljb24tdGl0bGUiPgogICAgICAgIDwhLS0gPHNwYW4gY2xhc3M9InRpdGxlLWljb24gc3VjY2VzcyAtbWwwIj48L3NwYW4+IC0tPgogICAgICAgIDxzcGFuIGNsYXNzPSJ0aXRsZS10eHQiPlZvdHJlIG1lc3NhZ2UgYSBiaWVuIMOpdMOpIGVudm95w6khPC9zcGFuPgogICAgICA8L2Rpdj4KICAgICAgPHAgY2xhc3M9ImRlZmF1bHRTdWNjZXNzIj48YnI+TWVyY2khIFVuIG1lbWJyZSBkZSBub3RyZSDDqXF1aXBlIHZvdXMgY29udGFjdGVyYSBzb3VzIHBldS48L3A+CiAgICAgIDxwIGNsYXNzPSJzZXJ2aWNlU3VjY2VzcyIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPjxicj5NZXJjaSEgVW4gbWVtYnJlIGRlIG5vdHJlIMOpcXVpcGUgdm91cyBjb250YWN0ZXJhIHNvdXMgcGV1LjwvcD4KICAgICAgPCEtLSA8YSBjbGFzcz0iY2xvc2UtcmV2ZWFsLW1vZGFsIj4mIzIxNTs8L2E+IC0tPgogICAgICA8ZGl2IGNsYXNzPSJlbWFpbC1jb25zZW50LWJ0bnMgLXB0MjAgLXJpZ2h0IGFtcENvbnNlbnRSZXNwb25zZVNlbmREaXNtaXNzIj4KICAgICAgICA8YSBocmVmPSI\/cGF0aD0jIiBjbGFzcz0iY29uZmlybV9zdWNjZXNzQ29udGludWUgIGJ0bi1kZWZhdWx0ICI+RmVybWVyPC9hPgogICAgICA8L2Rpdj4KICAgICAgPGZvcm0gaWQ9ImVtYWlsbXNnZnJtX2NvbnRhY3Rwb3B1cCIgY2xhc3M9ImNvbmZpcm1faHRtbCIgdGFyZ2V0PSJpZnJhbWUiIG1ldGhvZD0icG9zdCIgYWN0aW9uPSIvY29uZmlybWF0aW9uLmh0bWwiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJsYWJlbCIgY2xhc3M9ImxhYmVsZW1haWwiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJzZWN0aW9uIiBjbGFzcz0ibGFiZWxzZWN0aW9uIiB2YWx1ZT0iT2NjYXNpb24iPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJicmFuZCIgY2xhc3M9ImJyYW5kZW1haWwiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJtb2RlbCIgY2xhc3M9Im1vZGVsZW1haWwiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ5ZWFyIiBjbGFzcz0ieWVhcmVtYWlsIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZ29vZ2xlaWQiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJnb29nbGVpZGQyY21lZGlhIiB2YWx1ZT0iIj4KCQkJCQkJICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJhZHdvcmRzY29uaWQiIHZhbHVlPSI5ODA2MTI4MzYiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYWR3b3Jkc2xhYmVsaWQiIHZhbHVlPSItbEVUQ0lUNzZnc1E1TzNMMHdNIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYmluZ2NvbmlkIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYmluZ2FjdGlvbmlkIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYmluZ2RvbWFpbmlkIiB2YWx1ZT0iIj4KCiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImFkcm9sbEFkdiIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImFkcm9sbFBpeCIgdmFsdWU9IiI+CgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJmYWNlYm9va0NvbklkIiB2YWx1ZT0iMzAzMzA4NDQ2Njg1NTgxIj4KCiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImRvbWFpbiIgdmFsdWU9ImNhcmxlZm9yZC5jb20iPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJyZWZlcnJlciIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImRlcGFydG1lbnQiIHZhbHVlPSJORVciPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJsZWFkX2RlcGFydG1lbnQiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJpc2V4cHJlc3MiIGNsYXNzPSJpc2V4cHJlc3MiIHZhbHVlPSIwIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iaXNwcm9tbyIgdmFsdWU9IjAiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJpc2hvbWVwYWdlIiB2YWx1ZT0iMCI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InRlc3Rtb2RlIiBjbGFzcz0idGVzdG1vZGUiIHZhbHVlPSIwIj4KCiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImxlYWRUeXBlIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0icGFnZUlEIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iY3VycmVudFVSTCIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImlzQ29uZmlybVBvcHVwIiB2YWx1ZT0iIj4KCiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImNvbmZpcm1fZW1haWwiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJjb25maXJtX2ZpcnN0X25hbWUiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJjb25maXJtX2xhc3RfbmFtZSIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImNvbmZpcm1fcGhvbmVfbnVtYmVyIiB2YWx1ZT0iIj4KCiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImlzRnVsbFdpZHRoIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZGVhbGVyTmFtZSIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImJ1dHRvblBvc2l0aW9uIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iaXNNb2JpbGVOZXdWRFAiIHZhbHVlPSIwIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZnJvbUF1dG9BdWJhaW5lIiB2YWx1ZT0iIj4KCiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSJORVciIG5hbWU9InRleHRDYXJTZWN0aW9uVHlwZSIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJsYW5nIiB2YWx1ZT0iZnIiPgogICAgICA8L2Zvcm0+CiAgICAgIDxpZnJhbWUgd2lkdGg9IjEiIGhlaWdodD0iMSIgbmFtZT0iaWZyYW1lIiBmcmFtZWJvcmRlcj0iMCI+PC9pZnJhbWU+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGlkPSJlbWFpbEZhaWxNZXNzYWdlX2NvbnRhY3Rwb3B1cCIgY2xhc3M9InJldmVhbC1tb2RhbCBlbWFpbC1jb25zZW50LWJveCI+CiAgICAgIDxzcGFuIGNsYXNzPSJmYWlsIj5VbmUgZXJyZXVyIHMnZXN0IHByb2R1aXRlPC9zcGFuPgogICAgICA8cD5Ob3VzIG4nYXZvbnMgcGFzIHB1IGVudm95ZXIgdm90cmUgbWVzc2FnZS4gUydpbCB2b3VzIHBsYcOudCByYWZyYcOuY2hpciBldCBlc3NheWV6IMOgIG5vdXZlYXUuPC9wPgogICAgICA8ZGl2IGNsYXNzPSJjbG9zZS1yZXZlYWwtbW9kYWwiPjxlbSBjbGFzcz0iZmEgZmEtdGltZXMtY2lyY2xlIj48L2VtPjwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSItcHQyMCAtcmlnaHQgYW1wQ29uc2VudFJlc3BvbnNlU2VuZERpc21pc3MiPgogICAgICAgIDxhIGhyZWY9Ij9wYXRoPSMiIGNsYXNzPSJjb25maXJtX2ZhaWxDb250aW51ZSAgYnRuLWRlZmF1bHQgIj5GZXJtZXI8L2E+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CgoKCQkJCTwhLS0gT086OjNkNzg1NDI3NDEyNWVhNjliMDI0NTc1NjQ2YTY5OGRjIC0tPgoJCQo8IS0tIEVORCBuZXcgLS0+Cgo8IS0tIENSRURJVCBTQ09SRSBQT1BVUCAtLT4KCQkKCQk8ZGl2IGlkPSJjcmVkaXRTY29yZVBvcHVwQ29udGFpbmVyIiBjbGFzcz0icmV2ZWFsLW1vZGFsICIgc3R5bGU9IndpZHRoOjc2MHB4O2hlaWdodDozODBweDsiIGRhdGEtbGF6eWxvYWRpZD0ibmV3Y2Fyc19jcmVkaXRzY29yZXBvcHVwY29udGFpbmVyIj4KCQkJCgkJPC9kaXY+CgoJCTwhLS0gT086OmEzODdhMDdlMDQyNzdmNDlmMjJiNmIzMTJkOTk3MTE2IC0tPgoKCQkKCiAgICA8ZGl2IGlkPSJlbWFpbFN1Y2Nlc3NNZXNzYWdlX2NyZWRpdFNjb3JlUG9wdXBDb250YWluZXIiIGNsYXNzPSJyZXZlYWwtbW9kYWwgZW1haWwtY29uc2VudC1ib3giPgogICAgICA8ZGl2IGNsYXNzPSJpY29uLXRpdGxlIj4KICAgICAgICA8IS0tIDxzcGFuIGNsYXNzPSJ0aXRsZS1pY29uIHN1Y2Nlc3MgLW1sMCI+PC9zcGFuPiAtLT4KICAgICAgICA8c3BhbiBjbGFzcz0idGl0bGUtdHh0Ij5Wb3RyZSBkZW1hbmRlIGEgYmllbiDDqXTDqSBlbnZvecOpZSE8L3NwYW4+CiAgICAgIDwvZGl2PgogICAgICA8cCBjbGFzcz0iZGVmYXVsdFN1Y2Nlc3MiPjxicj5NZXJjaSEgVW4gY29uc2VpbGxlciBjb21tdW5pcXVlcmEgYXZlYyB2b3VzIHBvdXIgdm91cyBkb25uZXIgbGVzIGTDqXRhaWxzIHN1ciB2b3RyZSBwb3RlbnRpZWwgZGUgY3LDqWRpdC48L3A+CiAgICAgIDxwIGNsYXNzPSJzZXJ2aWNlU3VjY2VzcyIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPjxicj5NZXJjaSEgVW4gY29uc2VpbGxlciBjb21tdW5pcXVlcmEgYXZlYyB2b3VzIHBvdXIgdm91cyBkb25uZXIgbGVzIGTDqXRhaWxzIHN1ciB2b3RyZSBwb3RlbnRpZWwgZGUgY3LDqWRpdC48L3A+CiAgICAgIDwhLS0gPGEgY2xhc3M9ImNsb3NlLXJldmVhbC1tb2RhbCI+JiMyMTU7PC9hPiAtLT4KICAgICAgPGRpdiBjbGFzcz0iZW1haWwtY29uc2VudC1idG5zIC1wdDIwIC1yaWdodCBhbXBDb25zZW50UmVzcG9uc2VTZW5kRGlzbWlzcyI+CiAgICAgICAgPGEgaHJlZj0iP3BhdGg9IyIgY2xhc3M9ImNvbmZpcm1fc3VjY2Vzc0NvbnRpbnVlICBidG4tZGVmYXVsdCAiPkZlcm1lcjwvYT4KICAgICAgPC9kaXY+CiAgICAgIDxmb3JtIGlkPSJlbWFpbG1zZ2ZybV9jcmVkaXRTY29yZVBvcHVwQ29udGFpbmVyIiBjbGFzcz0iY29uZmlybV9odG1sIiB0YXJnZXQ9ImlmcmFtZSIgbWV0aG9kPSJwb3N0IiBhY3Rpb249Ii9jb25maXJtYXRpb24uaHRtbCI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImxhYmVsIiBjbGFzcz0ibGFiZWxlbWFpbCIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InNlY3Rpb24iIGNsYXNzPSJsYWJlbHNlY3Rpb24iIHZhbHVlPSJPY2Nhc2lvbiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImJyYW5kIiBjbGFzcz0iYnJhbmRlbWFpbCIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Im1vZGVsIiBjbGFzcz0ibW9kZWxlbWFpbCIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InllYXIiIGNsYXNzPSJ5ZWFyZW1haWwiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJnb29nbGVpZCIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Imdvb2dsZWlkZDJjbWVkaWEiIHZhbHVlPSIiPgoJCQkJCQkgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImFkd29yZHNjb25pZCIgdmFsdWU9Ijk4MDYxMjgzNiI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJhZHdvcmRzbGFiZWxpZCIgdmFsdWU9Ii1sRVRDSVQ3NmdzUTVPM0wwd00iPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJiaW5nY29uaWQiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJiaW5nYWN0aW9uaWQiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJiaW5nZG9tYWluaWQiIHZhbHVlPSIiPgoKICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYWRyb2xsQWR2IiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYWRyb2xsUGl4IiB2YWx1ZT0iIj4KCiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImZhY2Vib29rQ29uSWQiIHZhbHVlPSIzMDMzMDg0NDY2ODU1ODEiPgoKICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZG9tYWluIiB2YWx1ZT0iY2FybGVmb3JkLmNvbSI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InJlZmVycmVyIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZGVwYXJ0bWVudCIgdmFsdWU9Ik5FVyI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImxlYWRfZGVwYXJ0bWVudCIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImlzZXhwcmVzcyIgY2xhc3M9ImlzZXhwcmVzcyIgdmFsdWU9IjAiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJpc3Byb21vIiB2YWx1ZT0iMCI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImlzaG9tZXBhZ2UiIHZhbHVlPSIwIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0idGVzdG1vZGUiIGNsYXNzPSJ0ZXN0bW9kZSIgdmFsdWU9IjAiPgoKICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ibGVhZFR5cGUiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJwYWdlSUQiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJjdXJyZW50VVJMIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iaXNDb25maXJtUG9wdXAiIHZhbHVlPSIiPgoKICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iY29uZmlybV9lbWFpbCIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImNvbmZpcm1fZmlyc3RfbmFtZSIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImNvbmZpcm1fbGFzdF9uYW1lIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iY29uZmlybV9waG9uZV9udW1iZXIiIHZhbHVlPSIiPgoKICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iaXNGdWxsV2lkdGgiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJkZWFsZXJOYW1lIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYnV0dG9uUG9zaXRpb24iIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJpc01vYmlsZU5ld1ZEUCIgdmFsdWU9IjAiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJmcm9tQXV0b0F1YmFpbmUiIHZhbHVlPSIiPgoKICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgdmFsdWU9Ik5FVyIgbmFtZT0idGV4dENhclNlY3Rpb25UeXBlIiBzdHlsZT0iZGlzcGxheTpub25lOyI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImxhbmciIHZhbHVlPSJmciI+CiAgICAgIDwvZm9ybT4KICAgICAgPGlmcmFtZSB3aWR0aD0iMSIgaGVpZ2h0PSIxIiBuYW1lPSJpZnJhbWUiIGZyYW1lYm9yZGVyPSIwIj48L2lmcmFtZT4KICAgIDwvZGl2PgoKICAgIDxkaXYgaWQ9ImVtYWlsRmFpbE1lc3NhZ2VfY3JlZGl0U2NvcmVQb3B1cENvbnRhaW5lciIgY2xhc3M9InJldmVhbC1tb2RhbCBlbWFpbC1jb25zZW50LWJveCI+CiAgICAgIDxzcGFuIGNsYXNzPSJmYWlsIj5VbmUgZXJyZXVyIHMnZXN0IHByb2R1aXRlPC9zcGFuPgogICAgICA8cD5Ob3VzIG4nYXZvbnMgcGFzIHB1IGVudm95ZXIgdm90cmUgbWVzc2FnZS4gUydpbCB2b3VzIHBsYcOudCByYWZyYcOuY2hpciBldCBlc3NheWV6IMOgIG5vdXZlYXUuPC9wPgogICAgICA8ZGl2IGNsYXNzPSJjbG9zZS1yZXZlYWwtbW9kYWwiPjxlbSBjbGFzcz0iZmEgZmEtdGltZXMtY2lyY2xlIj48L2VtPjwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSItcHQyMCAtcmlnaHQgYW1wQ29uc2VudFJlc3BvbnNlU2VuZERpc21pc3MiPgogICAgICAgIDxhIGhyZWY9Ij9wYXRoPSMiIGNsYXNzPSJjb25maXJtX2ZhaWxDb250aW51ZSAgYnRuLWRlZmF1bHQgIj5GZXJtZXI8L2E+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CgoKCQkJCTwhLS0gT086OmQ2NmY1ZDk0ODU5NzQyYzZhNTFmOGJhZDljMGRmYWUwIC0tPgoJCQo8IS0tIEVORCBDUkVESVQgU0NPUkUgUE9QVVAgLS0+Cgo8IS0tIENSRURJVCBTQ09SRSBDT05GSVJNIFBPUFVQIC0tPgoJCQoJCTxkaXYgaWQ9ImNyZWRpdFNjb3JlQ29uZmlybVBvcHVwQ29udGFpbmVyIiBjbGFzcz0icmV2ZWFsLW1vZGFsICIgc3R5bGU9IndpZHRoOjUyMHB4O21pbi1oZWlnaHQ6NDUwcHg7IiBkYXRhLWxhenlsb2FkaWQ9Im5ld2NhcnNfY3JlZGl0c2NvcmVjb25maXJtcG9wdXBjb250YWluZXIiPgoJCQkKCQk8L2Rpdj4KCgkJPCEtLSBPTzo6OTRlNGM1OWMwYTRmMzRmN2E0M2YxMDUwYzU2MDY5ZmIgLS0+CgoJCQoKICAgIDxkaXYgaWQ9ImVtYWlsU3VjY2Vzc01lc3NhZ2VfY3JlZGl0U2NvcmVDb25maXJtUG9wdXBDb250YWluZXIiIGNsYXNzPSJyZXZlYWwtbW9kYWwgZW1haWwtY29uc2VudC1ib3giPgogICAgICA8ZGl2IGNsYXNzPSJpY29uLXRpdGxlIj4KICAgICAgICA8IS0tIDxzcGFuIGNsYXNzPSJ0aXRsZS1pY29uIHN1Y2Nlc3MgLW1sMCI+PC9zcGFuPiAtLT4KICAgICAgICA8c3BhbiBjbGFzcz0idGl0bGUtdHh0Ij5Wb3RyZSBkZW1hbmRlIGEgYmllbiDDqXTDqSBlbnZvecOpZSE8L3NwYW4+CiAgICAgIDwvZGl2PgogICAgICA8cCBjbGFzcz0iZGVmYXVsdFN1Y2Nlc3MiPjxicj5NZXJjaSEgVW4gY29uc2VpbGxlciBjb21tdW5pcXVlcmEgYXZlYyB2b3VzIHBvdXIgdm91cyBkb25uZXIgbGVzIGTDqXRhaWxzIHN1ciB2b3RyZSBwb3RlbnRpZWwgZGUgY3LDqWRpdC48L3A+CiAgICAgIDxwIGNsYXNzPSJzZXJ2aWNlU3VjY2VzcyIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPjxicj5NZXJjaSEgVW4gY29uc2VpbGxlciBjb21tdW5pcXVlcmEgYXZlYyB2b3VzIHBvdXIgdm91cyBkb25uZXIgbGVzIGTDqXRhaWxzIHN1ciB2b3RyZSBwb3RlbnRpZWwgZGUgY3LDqWRpdC48L3A+CiAgICAgIDwhLS0gPGEgY2xhc3M9ImNsb3NlLXJldmVhbC1tb2RhbCI+JiMyMTU7PC9hPiAtLT4KICAgICAgPGRpdiBjbGFzcz0iZW1haWwtY29uc2VudC1idG5zIC1wdDIwIC1yaWdodCBhbXBDb25zZW50UmVzcG9uc2VTZW5kRGlzbWlzcyI+CiAgICAgICAgPGEgaHJlZj0iP3BhdGg9IyIgY2xhc3M9ImNvbmZpcm1fc3VjY2Vzc0NvbnRpbnVlICBidG4tZGVmYXVsdCAiPkZlcm1lcjwvYT4KICAgICAgPC9kaXY+CiAgICAgIDxmb3JtIGlkPSJlbWFpbG1zZ2ZybV9jcmVkaXRTY29yZUNvbmZpcm1Qb3B1cENvbnRhaW5lciIgY2xhc3M9ImNvbmZpcm1faHRtbCIgdGFyZ2V0PSJpZnJhbWUiIG1ldGhvZD0icG9zdCIgYWN0aW9uPSIvY29uZmlybWF0aW9uLmh0bWwiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJsYWJlbCIgY2xhc3M9ImxhYmVsZW1haWwiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJzZWN0aW9uIiBjbGFzcz0ibGFiZWxzZWN0aW9uIiB2YWx1ZT0iT2NjYXNpb24iPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJicmFuZCIgY2xhc3M9ImJyYW5kZW1haWwiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJtb2RlbCIgY2xhc3M9Im1vZGVsZW1haWwiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ5ZWFyIiBjbGFzcz0ieWVhcmVtYWlsIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZ29vZ2xlaWQiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJnb29nbGVpZGQyY21lZGlhIiB2YWx1ZT0iIj4KCQkJCQkJICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJhZHdvcmRzY29uaWQiIHZhbHVlPSI5ODA2MTI4MzYiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYWR3b3Jkc2xhYmVsaWQiIHZhbHVlPSItbEVUQ0lUNzZnc1E1TzNMMHdNIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYmluZ2NvbmlkIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYmluZ2FjdGlvbmlkIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYmluZ2RvbWFpbmlkIiB2YWx1ZT0iIj4KCiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImFkcm9sbEFkdiIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImFkcm9sbFBpeCIgdmFsdWU9IiI+CgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJmYWNlYm9va0NvbklkIiB2YWx1ZT0iMzAzMzA4NDQ2Njg1NTgxIj4KCiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImRvbWFpbiIgdmFsdWU9ImNhcmxlZm9yZC5jb20iPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJyZWZlcnJlciIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImRlcGFydG1lbnQiIHZhbHVlPSJORVciPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJsZWFkX2RlcGFydG1lbnQiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJpc2V4cHJlc3MiIGNsYXNzPSJpc2V4cHJlc3MiIHZhbHVlPSIwIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iaXNwcm9tbyIgdmFsdWU9IjAiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJpc2hvbWVwYWdlIiB2YWx1ZT0iMCI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InRlc3Rtb2RlIiBjbGFzcz0idGVzdG1vZGUiIHZhbHVlPSIwIj4KCiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImxlYWRUeXBlIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0icGFnZUlEIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iY3VycmVudFVSTCIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImlzQ29uZmlybVBvcHVwIiB2YWx1ZT0iIj4KCiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImNvbmZpcm1fZW1haWwiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJjb25maXJtX2ZpcnN0X25hbWUiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJjb25maXJtX2xhc3RfbmFtZSIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImNvbmZpcm1fcGhvbmVfbnVtYmVyIiB2YWx1ZT0iIj4KCiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImlzRnVsbFdpZHRoIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZGVhbGVyTmFtZSIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImJ1dHRvblBvc2l0aW9uIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iaXNNb2JpbGVOZXdWRFAiIHZhbHVlPSIwIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZnJvbUF1dG9BdWJhaW5lIiB2YWx1ZT0iIj4KCiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSJORVciIG5hbWU9InRleHRDYXJTZWN0aW9uVHlwZSIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJsYW5nIiB2YWx1ZT0iZnIiPgogICAgICA8L2Zvcm0+CiAgICAgIDxpZnJhbWUgd2lkdGg9IjEiIGhlaWdodD0iMSIgbmFtZT0iaWZyYW1lIiBmcmFtZWJvcmRlcj0iMCI+PC9pZnJhbWU+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGlkPSJlbWFpbEZhaWxNZXNzYWdlX2NyZWRpdFNjb3JlQ29uZmlybVBvcHVwQ29udGFpbmVyIiBjbGFzcz0icmV2ZWFsLW1vZGFsIGVtYWlsLWNvbnNlbnQtYm94Ij4KICAgICAgPHNwYW4gY2xhc3M9ImZhaWwiPlVuZSBlcnJldXIgcydlc3QgcHJvZHVpdGU8L3NwYW4+CiAgICAgIDxwPk5vdXMgbidhdm9ucyBwYXMgcHUgZW52b3llciB2b3RyZSBtZXNzYWdlLiBTJ2lsIHZvdXMgcGxhw650IHJhZnJhw65jaGlyIGV0IGVzc2F5ZXogw6Agbm91dmVhdS48L3A+CiAgICAgIDxkaXYgY2xhc3M9ImNsb3NlLXJldmVhbC1tb2RhbCI+PGVtIGNsYXNzPSJmYSBmYS10aW1lcy1jaXJjbGUiPjwvZW0+PC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9Ii1wdDIwIC1yaWdodCBhbXBDb25zZW50UmVzcG9uc2VTZW5kRGlzbWlzcyI+CiAgICAgICAgPGEgaHJlZj0iP3BhdGg9IyIgY2xhc3M9ImNvbmZpcm1fZmFpbENvbnRpbnVlICBidG4tZGVmYXVsdCAiPkZlcm1lcjwvYT4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KCgoJCQkJPCEtLSBPTzo6MzYzODdkOTIwOTY4NzhkNzliMDU2OTE1ZWNiNTM0OGYgLS0+CgkJCjwhLS0gRU5EIENSRURJVCBTQ09SRSBDT05GSVJNIFBPUFVQIC0tPgoKCgoKPCEtLSBGSU5BTkNFIE1VTFRJU1RFUCBQT1BVUCBuZXcgLS0+CgkJCgkJPGRpdiBpZD0iZmluYW5jZU11bHRpc3RlcFBvcHVwQ29udGFpbmVyIiBjbGFzcz0icmV2ZWFsLW1vZGFsICIgc3R5bGU9IndpZHRoOjU4MHB4O2hlaWdodDo0NDVweDtwYWRkaW5nOjsiIGRhdGEtbGF6eWxvYWRpZD0ibmV3Y2Fyc19maW5hbmNlbXVsdGlzdGVwcG9wdXBjb250YWluZXIiPgoJCQkKCQk8L2Rpdj4KCgkJPCEtLSBPTzo6MGY3MjI0ZDQ3MDEzNmE5N2Q1ZTFmMjU2NWYwMTViOTUgLS0+CgoJCQoJCQo8IS0tIEVORCBuZXcgLS0+Cgo8IS0tIEZJTkFOQ0UgTVVMVElTVEVQIElOU1RBTlQgLS0+Cgo8IS0tIEVORCBGSU5BTkNFIE1VTFRJU1RFUCBJTlNUQU5UIC0tPgoKPCEtLSBDUkVESVQgQk9PU1QgTVVMVEkgLS0+Cgo8IS0tIEVORCBDUkVESVQgQk9PU1QgTVVMVEkgLS0+Cgo8IS0tIFNFQ09ORCBDSEFOQ0UgUE9QVVAgbmV3IC0tPgoKPCEtLSBFTkQgbmV3IC0tPgoKPCEtLSBSRVRVUk4gUE9QVVAgbmV3IC0tPgoJCQoJCTxkaXYgaWQ9InJldHVyblBvcHVwQ29udGFpbmVyIiBjbGFzcz0icmV2ZWFsLW1vZGFsICIgc3R5bGU9IndpZHRoOjc5MHB4O2hlaWdodDo1NDBweDsiIGRhdGEtbGF6eWxvYWRpZD0ibmV3Y2Fyc19yZXR1cm5wb3B1cGNvbnRhaW5lciI+CgkJCQoJCTwvZGl2PgoKCQk8IS0tIE9POjpjN2U1YjJiZjE5NzE1ZDg3Y2QzZjA5Y2FiZjdiYzgyMiAtLT4KCgkJCgogICAgPGRpdiBpZD0iZW1haWxTdWNjZXNzTWVzc2FnZV9yZXR1cm5Qb3B1cENvbnRhaW5lciIgY2xhc3M9InJldmVhbC1tb2RhbCBlbWFpbC1jb25zZW50LWJveCI+CiAgICAgIDxkaXYgY2xhc3M9Imljb24tdGl0bGUiPgogICAgICAgIDwhLS0gPHNwYW4gY2xhc3M9InRpdGxlLWljb24gc3VjY2VzcyAtbWwwIj48L3NwYW4+IC0tPgogICAgICAgIDxzcGFuIGNsYXNzPSJ0aXRsZS10eHQiPlZvdHJlIGRlbWFuZGUgYSBiaWVuIMOpdMOpIGVudm95w6llITwvc3Bhbj4KICAgICAgPC9kaXY+CiAgICAgIDxwIGNsYXNzPSJkZWZhdWx0U3VjY2VzcyI+PGJyPk1lcmNpISBVbiBjb25zZWlsbGVyIGNvbW11bmlxdWVyYSBhdmVjIHZvdXMgcG91ciB2b3VzIGRvbm5lciBsZXMgZMOpdGFpbHMgc3VyIHZvdHJlIHBvdGVudGllbCBkZSBjcsOpZGl0LjwvcD4KICAgICAgPHAgY2xhc3M9InNlcnZpY2VTdWNjZXNzIiBzdHlsZT0iZGlzcGxheTpub25lOyI+PGJyPk1lcmNpISBVbiBjb25zZWlsbGVyIGNvbW11bmlxdWVyYSBhdmVjIHZvdXMgcG91ciB2b3VzIGRvbm5lciBsZXMgZMOpdGFpbHMgc3VyIHZvdHJlIHBvdGVudGllbCBkZSBjcsOpZGl0LjwvcD4KICAgICAgPCEtLSA8YSBjbGFzcz0iY2xvc2UtcmV2ZWFsLW1vZGFsIj4mIzIxNTs8L2E+IC0tPgogICAgICA8ZGl2IGNsYXNzPSJlbWFpbC1jb25zZW50LWJ0bnMgLXB0MjAgLXJpZ2h0IGFtcENvbnNlbnRSZXNwb25zZVNlbmREaXNtaXNzIj4KICAgICAgICA8YSBocmVmPSI\/cGF0aD0jIiBjbGFzcz0iY29uZmlybV9zdWNjZXNzQ29udGludWUgIGJ0bi1kZWZhdWx0ICI+RmVybWVyPC9hPgogICAgICA8L2Rpdj4KICAgICAgPGZvcm0gaWQ9ImVtYWlsbXNnZnJtX3JldHVyblBvcHVwQ29udGFpbmVyIiBjbGFzcz0iY29uZmlybV9odG1sIiB0YXJnZXQ9ImlmcmFtZSIgbWV0aG9kPSJwb3N0IiBhY3Rpb249Ii9jb25maXJtYXRpb24uaHRtbCI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImxhYmVsIiBjbGFzcz0ibGFiZWxlbWFpbCIgdmFsdWU9IlJldHVybiBwb3B1cCI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InNlY3Rpb24iIGNsYXNzPSJsYWJlbHNlY3Rpb24iIHZhbHVlPSJPY2Nhc2lvbiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImJyYW5kIiBjbGFzcz0iYnJhbmRlbWFpbCIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Im1vZGVsIiBjbGFzcz0ibW9kZWxlbWFpbCIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InllYXIiIGNsYXNzPSJ5ZWFyZW1haWwiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJnb29nbGVpZCIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Imdvb2dsZWlkZDJjbWVkaWEiIHZhbHVlPSIiPgoJCQkJCQkgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImFkd29yZHNjb25pZCIgdmFsdWU9Ijk4MDYxMjgzNiI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJhZHdvcmRzbGFiZWxpZCIgdmFsdWU9Ii1sRVRDSVQ3NmdzUTVPM0wwd00iPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJiaW5nY29uaWQiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJiaW5nYWN0aW9uaWQiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJiaW5nZG9tYWluaWQiIHZhbHVlPSIiPgoKICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYWRyb2xsQWR2IiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYWRyb2xsUGl4IiB2YWx1ZT0iIj4KCiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImZhY2Vib29rQ29uSWQiIHZhbHVlPSIzMDMzMDg0NDY2ODU1ODEiPgoKICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZG9tYWluIiB2YWx1ZT0iY2FybGVmb3JkLmNvbSI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InJlZmVycmVyIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZGVwYXJ0bWVudCIgdmFsdWU9Ik5FVyI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImxlYWRfZGVwYXJ0bWVudCIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImlzZXhwcmVzcyIgY2xhc3M9ImlzZXhwcmVzcyIgdmFsdWU9IjAiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJpc3Byb21vIiB2YWx1ZT0iMCI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImlzaG9tZXBhZ2UiIHZhbHVlPSIwIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0idGVzdG1vZGUiIGNsYXNzPSJ0ZXN0bW9kZSIgdmFsdWU9IjAiPgoKICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ibGVhZFR5cGUiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJwYWdlSUQiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJjdXJyZW50VVJMIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iaXNDb25maXJtUG9wdXAiIHZhbHVlPSIiPgoKICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iY29uZmlybV9lbWFpbCIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImNvbmZpcm1fZmlyc3RfbmFtZSIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImNvbmZpcm1fbGFzdF9uYW1lIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iY29uZmlybV9waG9uZV9udW1iZXIiIHZhbHVlPSIiPgoKICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iaXNGdWxsV2lkdGgiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJkZWFsZXJOYW1lIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYnV0dG9uUG9zaXRpb24iIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJpc01vYmlsZU5ld1ZEUCIgdmFsdWU9IjAiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJmcm9tQXV0b0F1YmFpbmUiIHZhbHVlPSIiPgoKICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgdmFsdWU9Ik5FVyIgbmFtZT0idGV4dENhclNlY3Rpb25UeXBlIiBzdHlsZT0iZGlzcGxheTpub25lOyI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImxhbmciIHZhbHVlPSJmciI+CiAgICAgIDwvZm9ybT4KICAgICAgPGlmcmFtZSB3aWR0aD0iMSIgaGVpZ2h0PSIxIiBuYW1lPSJpZnJhbWUiIGZyYW1lYm9yZGVyPSIwIj48L2lmcmFtZT4KICAgIDwvZGl2PgoKICAgIDxkaXYgaWQ9ImVtYWlsRmFpbE1lc3NhZ2VfcmV0dXJuUG9wdXBDb250YWluZXIiIGNsYXNzPSJyZXZlYWwtbW9kYWwgZW1haWwtY29uc2VudC1ib3giPgogICAgICA8c3BhbiBjbGFzcz0iZmFpbCI+VW5lIGVycmV1ciBzJ2VzdCBwcm9kdWl0ZTwvc3Bhbj4KICAgICAgPHA+Tm91cyBuJ2F2b25zIHBhcyBwdSBlbnZveWVyIHZvdHJlIG1lc3NhZ2UuIFMnaWwgdm91cyBwbGHDrnQgcmFmcmHDrmNoaXIgZXQgZXNzYXlleiDDoCBub3V2ZWF1LjwvcD4KICAgICAgPGRpdiBjbGFzcz0iY2xvc2UtcmV2ZWFsLW1vZGFsIj48ZW0gY2xhc3M9ImZhIGZhLXRpbWVzLWNpcmNsZSI+PC9lbT48L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0iLXB0MjAgLXJpZ2h0IGFtcENvbnNlbnRSZXNwb25zZVNlbmREaXNtaXNzIj4KICAgICAgICA8YSBocmVmPSI\/cGF0aD0jIiBjbGFzcz0iY29uZmlybV9mYWlsQ29udGludWUgIGJ0bi1kZWZhdWx0ICI+RmVybWVyPC9hPgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgoKCgkJCQk8IS0tIE9POjo5NzJjZjk0MTQxMTQ2NzQ0Nzg4ZTIyMTJhNjIxYjk3MCAtLT4KCQkKPCEtLSBFTkQgbmV3IC0tPgoKPCEtLSBFWElUIFBPUFVQIG5ldyAtLT4KCjwhLS0gRU5EIG5ldyAtLT4KCjwhLS0gQkVTVCBQUkFDVElDRSBQT1BVUCBuZXcgLS0+Cgo8IS0tIEVORCBuZXcgLS0+CgkJPCEtLSBDTE9TRSBQT1BVUFdJREdFVCAtLT4KCQkKCQkKCgkJPGRpdiBpZD0ic3BlY2lhbFNjaGVkdWxlQ29udGVudCI+PC9kaXY+Cgk8c2NyaXB0IGRhdGEtc2NvZGVyZWY9IjIxMTEtQiIgc3JjPSJodHRwczovL2NhcmxlZm9yZC5jb20vanMvbWFwcy5qcy5waHA\/JmFtcDtsYW5nPWZyIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGFzeW5jPSJ0cnVlIj48L3NjcmlwdD4KPGlucHV0IHR5cGU9ImhpZGRlbiIgdmFsdWU9Ik5FVyIgaWQ9ImRlZmF1bHREZXBhcnRtZW50Ij4KCgk8L2Rpdj4=","logs":"{\"result\":\"1\",\"error\":\"\",\"sources\":\"https:\\\/\\\/carleford.com\\\/js_r\\\/resource.loader.fr.js?v=3&js=hVRhk9IwEP1DAh46_gCPY9Q5RxQdPzJLsm0X0mxNtuW4X--WkyYFbvzA0L6XJm_fvs1sF2e7Py2G43QX38zSm2HeE57BDjw5B_r0gkflfUQvtxZ4UeKRwWJ4_fvxaVuI-OH9BWgh7IXZCTUXTAeOLMmguQby52cHz8dIz3pEncB0vg0LisYB1Ri-rMf7TlqaFGCEw3F2N717N50n4vZuUdcOJqHKcJ_AW5cK31UQK4GtG1Z5PBgIgwF2bjYFB7sRKEvyZY5DNJsSBluaQF5-VjR8O3ZtSQEPHPa3lVINcUT1Yh-emoAx_kCtMspvsiVKzi-wIE9C7FcqOVXlcXsPrv9bgODSX-P6dwZNQO3V2qhTD_UWrUV71WhB0YY0ZPa3MqP-1LmstanQtmrpfPp2hGPoyOC4jhI9BjJflc_Xfm_1sIf-abxcgub2s_8I4Rr51mFwcBwR5Btu2iGgpxdNX6oiS-9hbQKIqVYwOBAPxShDw_S1XiwfBmd7i34JucvBCdhhsvofqE0VOa4qFp5fUKrZx1NH8yycSW5NtT5QgznZQIlb8D7VVDKXTtPeDGoKZsEwdrKAjgNJmnVu0Ffcpux3pFLu9b7QmVtmPS6RH9nASeXZa4Yog4BKajc34DvI50jMftY2gQvSaGhw1Ze8jLxN5uXQVY51Lfa_0fi8QBOpcHKan3Npurk3uKlbvZyiYNoXnGkdaEeXrTd9AfE6zjXb1LIEO0yxSCg8Eb9ylel9EIU83mYLldEPVPgfXQy2xj06FDW9tyewy-6xgdpikcVVvz3fZ-Rdr2UX_wI&jsrpl=&wswidth=0&device=desktop&ua=Q0NCb3QvMi4wIChodHRwczovL2NvbW1vbmNyYXdsLm9yZy9mYXEvKQ==\"}"}