Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 海阔视界规则分享,当前分享的是:二级页面详情¥page_detail¥幕启星河APP@@eyJkYXRhIjoie1wiYXNzb2NpYXRlZE1vZGVsc01hcEZvckpvaW5UYWJsZVwiOnt9LFwiYXNzb2NpYXRlZE1vZGVsc01hcFdpdGhGS1wiOnt9LFwiYXNzb2NpYXRlZE1vZGVsc01hcFdpdGhvdXRGS1wiOnt9LFwiZmllbGRzVG9TZXRUb0RlZmF1bHRcIjpbXSxcImdtdE1vZGlmaWVkXCI6MCxcImlkXCI6MCxcImxhc3RfY2hhcHRlcl9ydWxlXCI6XCJcIixcImxpc3RUb0NsZWFyQXNzb2NpYXRlZEZLXCI6W10sXCJsaXN0VG9DbGVhclNlbGZGS1wiOltdLFwicGFnZUxpc3RcIjpbe1wiY29sX3R5cGVcIjpcInRleHRfMVwiLFwibmFtZVwiOlwiQ2xhc3NUYWJcIixcInBhdGhcIjpcIkNsYXNzVGFiXCIsXCJydWxlXCI6XCJ2YXIge1xcbiAgICBRSU5HX1RJVExFLCB0aXRsZSwgdXJsLFxcbiAgICBjbGFzc19uYW1lLCBjbGFzc191cmwsXFxuICAgIGFyZWFfbmFtZSwgYXJlYV91cmwsXFxuICAgIHllYXJfbmFtZSwgeWVhcl91cmwsXFxuICAgIHNvcnRfbmFtZSwgc29ydF91cmxcXG59ID0gJC5pbXBvcnRQYXJhbVxcbmNvbnN0IENsYXNzVGFiID0gZnVuY3Rpb24oY2xhc3NBcnJheSwgcGFyYW1zKSB7XFxuICAgIE9iamVjdC5hc3NpZ24odGhpcywgcGFyYW1zKVxcbiAgICB0aGlzLmFyciA9IGNsYXNzQXJyYXkubWFwKHYgPT4gdGhpcy5pbml0KHYpKVxcbiAgICB0aGlzLnNpZ24gPSAnJCcgKyBRSU5HX1RJVExFICsgJ18nICsgKHRoaXMubmFtZSB8fCAnJykgKyAnXydcXG4gICAgdGhpcy5jb2xvciA9IHRoaXMuY29sb3IgfHwgJyMxMmI2NjgnXFxuICAgIHRoaXMuYm91bmRhcnkgPSB0aGlzLmJvdW5kYXJ5IHx8ICdibGFua19ibG9jaydcXG59XFxuQ2xhc3NUYWIucHJvdG90eXBlID0ge1xcbiAgICBjb25zdHJ1Y3RvcjogQ2xhc3NUYWIsXFxuICAgIGxvYWQoZWwpIHtcXG4gICAgICAgIGxldCBmb2xkZWQgPSB0aGlzLmZvbGQgJiYgZ2V0VmFyKCckZm9sZF8nICsgdGhpcy5zaWduLCAnJylcXG4gICAgICAgIGlmICh0aGlzLmFyci5sZW5ndGggPiAxICYmIHRoaXMuZm9sZCkgZWwucHVzaCh7XFxuICAgICAgICAgICAgdGl0bGU6ICfigJzigJzigJ3igJ0nICsgKGZvbGRlZCA/ICfilrYnIDogJ+KWvCcpLmZvbnRjb2xvcignIzA0OWVmZicpLFxcbiAgICAgICAgICAgIHVybDogJCgnI25vTG9hZGluZyMnKS5sYXp5UnVsZSgoc2lnbiwgZm9sZGVkKSA9PiB7XFxuICAgICAgICAgICAgICAgIHB1dFZhcignJGZvbGRfJyArIHNpZ24sIGZvbGRlZCA/ICcnIDogJ1QnKVxcbiAgICAgICAgICAgICAgICByZWZyZXNoUGFnZShmYWxzZSlcXG4gICAgICAgICAgICAgICAgcmV0dXJuICdoaWtlcjovL2VtcHR5J1xcbiAgICAgICAgICAgIH0sIHRoaXMuc2lnbiwgZm9sZGVkKSxcXG4gICAgICAgICAgICBjb2xfdHlwZTogJ3Njcm9sbF9idXR0b24nXFxuICAgICAgICB9KVxcbiAgICAgICAgbGV0IGFyciA9IGZvbGRlZCA/IFt0aGlzLmFyclswXV0gOiB0aGlzLmFyclxcbiAgICAgICAgYXJyLmZvckVhY2goKHYpID0+IHtcXG4gICAgICAgICAgICBsZXQgeyBpZCwgY2xhc3NfbmFtZSwgY2xhc3NfdXJsIH0gPSB2LFxcbiAgICAgICAgICAgIHNlbGVjdGVkID0gSlNPTi5zdHJpbmdpZnkodGhpcy5nZXRDbGFzcyhpZCkpXFxuICAgICAgICAgICAgY2xhc3NfbmFtZS5mb3JFYWNoKChuYW1lLCBpKSA9PiB7XFxuICAgICAgICAgICAgICAgIGxldCB1cmwgPSBjbGFzc191cmxbaV0sXFxuICAgICAgICAgICAgICAgICAgICBub3cgPSBKU09OLnN0cmluZ2lmeSh7IG5hbWU6IG5hbWUsIHVybDogdXJsIH0pXFxuICAgICAgICAgICAgICAgIGVsLnB1c2goe1xcbiAgICAgICAgICAgICAgICAgICAgdGl0bGU6IHNlbGVjdGVkID09IG5vdyA/ICfigJzigJzigJ3igJ0nICsgbmFtZS5mb250Y29sb3IodGhpcy5jb2xvcikuYm9sZCgpIDogbmFtZSxcXG4gICAgICAgICAgICAgICAgICAgIHVybDogc2VsZWN0ZWQgPT0gbm93ID8gJ2hpa2VyOi8vZW1wdHknIDogJCgnI25vTG9hZGluZyMnKS5sYXp5UnVsZSgoc2lnbiwgaWQsIG5vdykgPT4ge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIHB1dFZhcihzaWduICsgaWQsIG5vdylcXG4gICAgICAgICAgICAgICAgICAgICAgICByZWZyZXNoUGFnZShmYWxzZSlcXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ2hpa2VyOi8vZW1wdHknXFxuICAgICAgICAgICAgICAgICAgICB9LCB0aGlzLnNpZ24sIGlkLCBub3cpLFxcbiAgICAgICAgICAgICAgICAgICAgY29sX3R5cGU6ICdzY3JvbGxfYnV0dG9uJ1xcbiAgICAgICAgICAgICAgICB9KVxcbiAgICAgICAgICAgIH0pXFxuICAgICAgICAgICAgZWwucHVzaCh7IGNvbF90eXBlOiB0aGlzLmJvdW5kYXJ5IH0pXFxuICAgICAgICB9KVxcbiAgICB9LFxcbiAgICBpbml0KGNsYXNzT2JqZWN0KSB7XFxuICAgICAgICBpZiAodHlwZW9mIGNsYXNzT2JqZWN0LmNsYXNzX25hbWUgPT0gJ3N0cmluZycpXFxuICAgICAgICAgICAgY2xhc3NPYmplY3QuY2xhc3NfbmFtZSA9IGNsYXNzT2JqZWN0LmNsYXNzX25hbWUuc3BsaXQoJyYnKVxcbiAgICAgICAgaWYgKHR5cGVvZiBjbGFzc09iamVjdC5jbGFzc191cmwgPT0gJ3N0cmluZycpXFxuICAgICAgICAgICAgY2xhc3NPYmplY3QuY2xhc3NfdXJsID0gY2xhc3NPYmplY3QuY2xhc3NfdXJsLnNwbGl0KCcmJykubWFwKCh2KSA9PiB2LnRyaW0oKSlcXG4gICAgICAgIHJldHVybiBjbGFzc09iamVjdFxcbiAgICB9LFxcbiAgICBwdXNoKGNsYXNzT2JqZWN0KSB7XFxuICAgICAgICB0aGlzLmFyci5wdXNoKHRoaXMuaW5pdChjbGFzc09iamVjdCkpXFxuICAgIH0sXFxuICAgIGdldENsYXNzKGlkKSB7XFxuICAgICAgICBsZXQgZGVmYXVsdENsYXNzID0gdGhpcy5hcnIuZmluZChpdGVtID0+IGl0ZW0uaWQgPT0gaWQpXFxuICAgICAgICBkZWZhdWx0Q2xhc3MgPSBKU09OLnN0cmluZ2lmeShkZWZhdWx0Q2xhc3MgPyB7XFxuICAgICAgICAgICAgbmFtZTogZGVmYXVsdENsYXNzLmNsYXNzX25hbWVbMF0sXFxuICAgICAgICAgICAgdXJsOiBkZWZhdWx0Q2xhc3MuY2xhc3NfdXJsWzBdXFxuICAgICAgICB9IDogeyBuYW1lOiAgJ2Nhbm5vdCBmaW5kIGlkOiAnICsgaWQgKyAnIGluIGNsYXNzVGFiOiAnICsgdGhpcy5zaWduLCB1cmw6ICcnfSlcXG4gICAgICAgIHJldHVybiBKU09OLnBhcnNlKGdldFZhcih0aGlzLnNpZ24gKyBpZCwgZGVmYXVsdENsYXNzKSlcXG4gICAgfSxcXG4gICAgc2V0VXJsKHVybCkge1xcbiAgICAgICAgcmV0dXJuIHVybC5yZXBsYWNlKC9cXFxcJFxcXFx7KFtefV0qKVxcXFx9L2csIChfLCBpZCkgPT4gdGhpcy5nZXRDbGFzcyhpZCkudXJsKVxcbiAgICB9XFxufVxcbi8vIOeUn+aIkOWktOmDqOWIhuexu1xcbmxldCBmeUFsbCA9IHVybC5pbmNsdWRlcygnZnlBbGwnKSxcXG4gICAgdGFiSGVhZGVyID0gW11cXG5pZiAoY2xhc3NfbmFtZSkgdGFiSGVhZGVyLnB1c2goe1xcbiAgICBpZDogZnlBbGwgPyAnZnlBbGwnIDogJ2Z5Y2xhc3MnLFxcbiAgICBjbGFzc19uYW1lOiBjbGFzc19uYW1lLFxcbiAgICBjbGFzc191cmw6IGNsYXNzX3VybFxcbn0pXFxuaWYgKGFyZWFfbmFtZSkgdGFiSGVhZGVyLnB1c2goe1xcbiAgICBpZDogZnlBbGwgPyAnZnlBbGwnIDogJ2Z5YXJlYScsXFxuICAgIGNsYXNzX25hbWU6IGFyZWFfbmFtZSxcXG4gICAgY2xhc3NfdXJsOiBhcmVhX3VybFxcbn0pXFxuaWYgKHllYXJfbmFtZSkgdGFiSGVhZGVyLnB1c2goe1xcbiAgICBpZDogZnlBbGwgPyAnZnlBbGwnIDogJ2Z5eWVhcicsXFxuICAgIGNsYXNzX25hbWU6IHllYXJfbmFtZSxcXG4gICAgY2xhc3NfdXJsOiB5ZWFyX3VybFxcbn0pXFxuaWYgKHNvcnRfbmFtZSkgdGFiSGVhZGVyLnB1c2goe1xcbiAgICBpZDogZnlBbGwgPyAnZnlBbGwnIDogJ2Z5c29ydCcsXFxuICAgIGNsYXNzX25hbWU6IHNvcnRfbmFtZSxcXG4gICAgY2xhc3NfdXJsOiBzb3J0X3VybFxcbn0pXFxuJC5leHBvcnRzID0ge1xcbiAgICBmeUFsbDogZnlBbGwsXFxuICAgIHRhYkhlYWRlcjogbmV3IENsYXNzVGFiKHRhYkhlYWRlciwgeyBuYW1lOiB0aXRsZSwgZm9sZDogcmVhZEZpbGUoJ3RhYkZvbGQnKSwgfSlcXG59XFxuXCJ9LHtcImNvbF90eXBlXCI6XCJpY29uXzJfcm91bmRcIixcIm5hbWVcIjpcIuiuvue9rlwiLFwicGF0aFwiOlwiQ29uZmlnXCIsXCJydWxlXCI6XCJqczpcXG5hZGRMaXN0ZW5lcignb25DbG9zZScsICdjbGVhck15VmFyKFxcXCJzb3J0RmxhZ1xcXCIpO3JlZnJlc2hQYWdlKCknKVxcbnNldFBhZ2VUaXRsZSgn4pqZIOi9u+WQiOmbhuiuvue9riDimpknKVxcbmNvbnN0IFFJTkdfVElUTEUgPSBnZXRNeVZhcignbXlDb2xsZWN0aW9uJyksXFxuICAgIHVybCA9IGdldE15VmFyKCdyZW1vdGVVcmwnKVxcbmxldCBkYXRhID0gJC5yZXF1aXJlKCdoaWtlcjovL3BhZ2UvZGF0YUxvYWQ/cnVsZT0nICsgUUlOR19USVRMRSwgdHJ1ZSksXFxuICAgIGVsID0gW3tcXG4gICAgICAgIHRpdGxlOiAnPGI+IOa4hemZpOe8k+WtmO+8jOeri+WNs+abtOaWsCA8c21hbGw+IO+8iOWfuuS6jui/nOeoi+S7k+W6k++8jOS4jeimgemikee5geeCueWHu++8iScsXFxuICAgICAgICB1cmw6ICQoJyNub0xvYWRpbmcjJykubGF6eVJ1bGUoKHVybCkgPT4ge1xcbiAgICAgICAgICAgIGlmICh1cmwuc3RhcnRzV2l0aCgnaGlrZXI6Ly8nKSB8fCB1cmwuc3RhcnRzV2l0aCgnZmlsZTovLycpKVxcbiAgICAgICAgICAgICAgICByZXR1cm4gJ3RvYXN0Oi8v5LuT5bqT5Li65pys5Zyw5paH5Lu277yM5LiN5Lya6L+b6KGM57yT5a2Y77yM5pys5Yqf6IO95Lmf5peg5pWIJ1xcbiAgICAgICAgICAgIGRlbGV0ZUNhY2hlKHVybClcXG4gICAgICAgICAgICBiYWNrKGZhbHNlKVxcbiAgICAgICAgICAgIHJldHVybiAndG9hc3Q6Ly/lt7Lmm7TmlrAnXFxuICAgICAgICB9LCB1cmwpLFxcbiAgICAgICAgaW1nOiAnaGlrZXI6Ly9pbWFnZXMvaWNvbjQnLFxcbiAgICAgICAgY29sX3R5cGU6ICdhdmF0YXInXFxuICAgIH1dLFxcbiAgICB1cGRhdGVJbnRlcnZhbCA9IHJlYWRGaWxlKCd1cGRhdGVJbnRlcnZhbCcpIHx8ICcxJyxcXG4gICAgbmV3V2luZG93ID0gcmVhZEZpbGUoJ25ld1dpbmRvdycpLFxcbiAgICB0YWJGb2xkID0gcmVhZEZpbGUoJ3RhYkZvbGQnKSxcXG4gICAgZGlzYWJsZUN1c3RvbSA9IHJlYWRGaWxlKCdkaXNhYmxlQ3VzdG9tJyksXFxuICAgIGVkaXRNb2RlID0gZGlzYWJsZUN1c3RvbSA/ICflr7zlhaXmtbfpmJQnIDogZ2V0TXlWYXIoJ2VkaXRNb2RlJywgJ+WQr+eUqC/npoHnlKgnKVxcblxcbmVsLnB1c2goe1xcbiAgICB0aXRsZTogJyAg8J+SoSDmm7TmlrDpopHnjoc6ICcgKyAodXBkYXRlSW50ZXJ2YWwgPT0gMCA/ICfmiYvliqgnIDogdXBkYXRlSW50ZXJ2YWwgKyAn5aSpJykgKyAnICAnLFxcbiAgICB1cmw6ICQodXBkYXRlSW50ZXJ2YWwsICfovpPlhaXmm7TmlrDpl7TpmpTvvIjlpKnvvInvvIzkuLow5YiZ5omL5Yqo5pu05pawXFxcXG7mnKzlnLDmlofku7bpk77mjqXml6DmlYgnKS5pbnB1dCgoKSA9PiB7XFxuICAgICAgICBpbnB1dCA9IHBhcnNlSW50KGlucHV0KVxcbiAgICAgICAgaWYgKE51bWJlci5pc05hTihpbnB1dCkpIGlucHV0ID0gMVxcbiAgICAgICAgZWxzZSBpZiAoaW5wdXQgPCAxKSBpbnB1dCA9IDBcXG4gICAgICAgIHNhdmVGaWxlKCd1cGRhdGVJbnRlcnZhbCcsIGlucHV0LnRvU3RyaW5nKCkpXFxuICAgICAgICByZWZyZXNoUGFnZSgpXFxuICAgICAgICByZXR1cm4gJ2hpa2VyOi8vZW1wdHknXFxuICAgIH0pLFxcbiAgICBjb2xfdHlwZTogJ3Njcm9sbF9idXR0b24nXFxufSwge1xcbiAgICB0aXRsZTogJyAg8J+WpSDni6znq4vpppbpobU6ICcgKyAobmV3V2luZG93ID8gJ+aYrycgOiAn5ZCmJykgKyAnICAnLFxcbiAgICB1cmw6ICQoJyNub0xvYWRpbmcjJykubGF6eVJ1bGUoKG5ld1dpbmRvdykgPT4ge1xcbiAgICAgICAgc2F2ZUZpbGUoJ25ld1dpbmRvdycsIG5ld1dpbmRvdyA/ICcnIDogJ1QnKVxcbiAgICAgICAgcmVmcmVzaFBhZ2UoKVxcbiAgICAgICAgcmV0dXJuICdoaWtlcjovL2VtcHR5J1xcbiAgICB9LCBuZXdXaW5kb3cpLFxcbiAgICBjb2xfdHlwZTogJ3Njcm9sbF9idXR0b24nXFxufSwge1xcbiAgICB0aXRsZTogJyAg8J+SoCDliIbnsbvmipjlj6A6ICcgKyAodGFiRm9sZCA/ICfmmK8nIDogJ+WQpicpICsgJyAgJyxcXG4gICAgdXJsOiAkKCcjbm9Mb2FkaW5nIycpLmxhenlSdWxlKCh0YWJGb2xkKSA9PiB7XFxuICAgICAgICBzYXZlRmlsZSgndGFiRm9sZCcsIHRhYkZvbGQgPyAnJyA6ICdUJylcXG4gICAgICAgIHJlZnJlc2hQYWdlKClcXG4gICAgICAgIHJldHVybiAnaGlrZXI6Ly9lbXB0eSdcXG4gICAgfSwgdGFiRm9sZCksXFxuICAgIGNvbF90eXBlOiAnc2Nyb2xsX2J1dHRvbidcXG59LCB7XFxuICAgIHRpdGxlOiAnICDwn5K8IOWkh+S7veaBouWkjSAgJyxcXG4gICAgdXJsOiAkKFsn5aSH5Lu9JywgJ+aBouWkjSddLCAxKS5zZWxlY3QoKFFJTkdfVElUTEUsIHVwZGF0ZUludGVydmFsLCBuZXdXaW5kb3csIHRhYkZvbGQsIGRpc2FibGVDdXN0b20pID0+IHtcXG4gICAgICAgIGxldCB1cmwgPSBnZXRNeVZhcigncmVtb3RlVXJsJylcXG4gICAgICAgIGlmICghdXJsLnN0YXJ0c1dpdGgoJ2hpa2VyOi8vJykgJiYgIXVybC5zdGFydHNXaXRoKCdmaWxlOi8vJykpXFxuICAgICAgICAgICAgdXJsID0gJ2hpa2VyOi8vZmlsZXMvbGlicy8nICsgbWQ1KHVybCkgKyAnLmpzJ1xcbiAgICAgICAgZWxzZSBpZiAodXJsLnN0YXJ0c1dpdGgoJ2hpa2VyOi8vcGFnZS8nKSkgdXJsID0gJ2hpa2VyOi8vZW1wdHknXFxuICAgICAgICBpZiAoaW5wdXQgPT0gJ+Wkh+S7vScpIHJldHVybiAkKCdoaWtlcjovL2ZpbGVzL3RtcC8nICsgUUlOR19USVRMRSArICdfYmFja3VwLmpzb24nLCAn6L6T5YWl5aSH5Lu96Lev5b6EJylcXG4gICAgICAgICAgICAuaW5wdXQoKHVybCwgdXBkYXRlSW50ZXJ2YWwsIG5ld1dpbmRvdywgdGFiRm9sZCwgZGlzYWJsZUN1c3RvbSkgPT4ge1xcbiAgICAgICAgICAgICAgICBsZXQgcnVsZXMgPSByZXF1ZXN0KHVybCksXFxuICAgICAgICAgICAgICAgICAgICBjdXN0b21EYXRhID0gcmVhZEZpbGUoJ2N1c3RvbURhdGEnKVxcbiAgICAgICAgICAgICAgICB3cml0ZUZpbGUoaW5wdXQsIEpTT04uc3RyaW5naWZ5KHtcXG4gICAgICAgICAgICAgICAgICAgIHVwZGF0ZUludGVydmFsOiB1cGRhdGVJbnRlcnZhbCxcXG4gICAgICAgICAgICAgICAgICAgIG5ld1dpbmRvdzogbmV3V2luZG93LFxcbiAgICAgICAgICAgICAgICAgICAgdGFiRm9sZDogdGFiRm9sZCxcXG4gICAgICAgICAgICAgICAgICAgIGRpc2FibGVDdXN0b206IGRpc2FibGVDdXN0b20sXFxuICAgICAgICAgICAgICAgICAgICBjdXN0b21EYXRhOiBjdXN0b21EYXRhLFxcbiAgICAgICAgICAgICAgICAgICAgcnVsZXM6IHJ1bGVzXFxuICAgICAgICAgICAgICAgIH0pKVxcbiAgICAgICAgICAgICAgICByZXR1cm4gJ3RvYXN0Oi8v5bey5aSH5Lu977yM5rOo5oSP6Iul5LuT5bqT5Li65a2Q6aG16Z2i5YiZ5LiN5aSH5Lu9J1xcbiAgICAgICAgICAgIH0sIHVybCwgdXBkYXRlSW50ZXJ2YWwsIG5ld1dpbmRvdywgdGFiRm9sZCwgZGlzYWJsZUN1c3RvbSlcXG4gICAgICAgIGVsc2UgcmV0dXJuICQoJ2hpa2VyOi8vZmlsZXMvdG1wLycgKyBRSU5HX1RJVExFICsgJ19iYWNrdXAuanNvbicsICfovpPlhaXlpIfku73ot6/lvoQnKS5pbnB1dCgodXJsKSA9PiB7XFxuICAgICAgICAgICAgbGV0IHsgdXBkYXRlSW50ZXJ2YWwsIG5ld1dpbmRvdywgdGFiRm9sZCwgZGlzYWJsZUN1c3RvbSwgY3VzdG9tRGF0YSwgcnVsZXMgfSA9IEpTT04ucGFyc2UocmVxdWVzdChpbnB1dCkpXFxuICAgICAgICAgICAgc2F2ZUZpbGUoJ3VwZGF0ZUludGVydmFsJywgdXBkYXRlSW50ZXJ2YWwpXFxuICAgICAgICAgICAgc2F2ZUZpbGUoJ25ld1dpbmRvdycsIG5ld1dpbmRvdylcXG4gICAgICAgICAgICBzYXZlRmlsZSgndGFiRm9sZCcsIHRhYkZvbGQpXFxuICAgICAgICAgICAgc2F2ZUZpbGUoJ2Rpc2FibGVDdXN0b20nLCBkaXNhYmxlQ3VzdG9tKVxcbiAgICAgICAgICAgIHNhdmVGaWxlKCdjdXN0b21EYXRhJywgY3VzdG9tRGF0YSlcXG4gICAgICAgICAgICBpZiAocnVsZXMpIHdyaXRlRmlsZSh1cmwsIHJ1bGVzKVxcbiAgICAgICAgICAgIHJlZnJlc2hQYWdlKClcXG4gICAgICAgICAgICByZXR1cm4gJ3RvYXN0Oi8v5bey5oGi5aSN77yM5aaC5p6c5LiN5oOz5ZCM5q2l6L+c56iL5LuT5bqT77yM5Y+v5Lul6K6+572u5pu05paw6aKR546H5Li65omL5YqoJ1xcbiAgICAgICAgfSwgdXJsKVxcbiAgICB9LCBRSU5HX1RJVExFLCB1cGRhdGVJbnRlcnZhbCwgbmV3V2luZG93LCB0YWJGb2xkLCBkaXNhYmxlQ3VzdG9tKSxcXG4gICAgY29sX3R5cGU6ICdzY3JvbGxfYnV0dG9uJ1xcbn0sIHtcXG4gICAgdGl0bGU6ICfigJzigJzigJ3igJ08Zm9udCBjb2xvcj1cXFwiIzY2NjY2NlxcXCI+PHNtYWxsPueJueWIq+m4o+iwou+8jOWwj+eoi+W6j+aPkOS+m+iAhe+8mlxcXFxuJyArXFxuICAgICAgICBkYXRhLnJlZHVjZSgoc2VsZiwgdikgPT4gdi5hdXRob3IgPyBzZWxmLmNvbmNhdCh2LmF1dGhvci5zcGxpdCgnJicpKSA6IHNlbGYsIFtdKVxcbiAgICAgICAgLmZpbHRlcigodiwgaSwgYXJyKSA9PiB2ICYmIGFyci5pbmRleE9mKHYpID09IGkpLmpvaW4oJ+OAgScpLFxcbiAgICB1cmw6ICdoaWtlcjovL2VtcHR5JyxcXG4gICAgY29sX3R5cGU6ICd0ZXh0X2NlbnRlcl8xJ1xcbn0pXFxuXFxuZWwucHVzaCh7IGNvbF90eXBlOiAnbGluZScgfSwge1xcbiAgICB0aXRsZTogJ+KAnOKAnOKAneKAnScgKyAn8J+TnScuc21hbGwoKSArICcmbmJzcCDovbvlkIjpm4boh6rlrprkuYkgJm5ic3AnLmJvbGQoKS5mb250Y29sb3IoJyM3NTc1NzUnKSArIChkaXNhYmxlQ3VzdG9tID8gJ+KdjCcgOiAn4q2VJykuc21hbGwoKSxcXG4gICAgdXJsOiAkKFsoZGlzYWJsZUN1c3RvbSA/ICflkK/nlKgnIDogJ+emgeeUqCcpICsgJ+WQiOmbhuiHquWumuS5iScsICfmuIXpmaToh6rlrprkuYnmlbDmja4nLCAn57yW6L6RSlNPTiddLCAxKS5zZWxlY3QoKCkgPT4ge1xcbiAgICAgICAgc3dpdGNoIChpbnB1dC5zbGljZSgwLCAyKSkge1xcbiAgICAgICAgICAgIGNhc2UgJ+a4hemZpCc6XFxuICAgICAgICAgICAgICAgIGRlbGV0ZUZpbGUoJ2N1c3RvbURhdGEnKVxcbiAgICAgICAgICAgICAgICBicmVha1xcbiAgICAgICAgICAgIGNhc2UgJ+WQr+eUqCc6XFxuICAgICAgICAgICAgICAgIHNhdmVGaWxlKCdkaXNhYmxlQ3VzdG9tJywgJycpXFxuICAgICAgICAgICAgICAgIGJyZWFrXFxuICAgICAgICAgICAgY2FzZSAn56aB55SoJzpcXG4gICAgICAgICAgICAgICAgc2F2ZUZpbGUoJ2Rpc2FibGVDdXN0b20nLCAnVCcpXFxuICAgICAgICAgICAgICAgIGlucHV0ICs9ICdcXFxcbuWwj+eoi+W6j+WQr+eUqC/npoHnlKjjgIHph43mlrDmjpLluo/nrYnmk43kvZzlnYfkuI3kvJrkvZPnjrDlnKjpppbpobXlsI/nqIvluo/liJfooajkuK0nXFxuICAgICAgICAgICAgICAgIGJyZWFrXFxuICAgICAgICAgICAgY2FzZSAn57yW6L6RJzpcXG4gICAgICAgICAgICAgICAgbGV0IHVybCA9IGdldE15VmFyKCdyZW1vdGVVcmwnKVxcbiAgICAgICAgICAgICAgICBpZiAoIXVybC5zdGFydHNXaXRoKCdoaWtlcjovL2ZpbGVzLycpICYmICF1cmwuc3RhcnRzV2l0aCgnZmlsZTovLycpKVxcbiAgICAgICAgICAgICAgICAgICAgdXJsID0gJ2hpa2VyOi8vZmlsZXMvbGlicy8nICsgbWQ1KHVybCkgKyAnLmpzJ1xcbiAgICAgICAgICAgICAgICByZXR1cm4gICdoaWtlcjovL3BhZ2UvaW50ZXJmYWNlI25vUmVmcmVzaCMjbm9IaXN0b3J5IyNub1JlY29yZEhpc3RvcnkjP3J1bGU9SlNPTue8lui+keWZqCZKc29uPScrYmFzZTY0RW5jb2RlKHVybClcXG4gICAgICAgIH1cXG4gICAgICAgIHJlZnJlc2hQYWdlKGZhbHNlKVxcbiAgICAgICAgcmV0dXJuICd0b2FzdDovL+W3sicgKyBpbnB1dFxcbiAgICB9KSxcXG4gICAgY29sX3R5cGU6ICd0ZXh0X2NlbnRlcl8xJyxcXG4gICAgZXh0cmE6IHsgbGluZVZpc2libGU6IGZhbHNlIH1cXG59KTtcXG4oZGlzYWJsZUN1c3RvbSA/IFsn5a+85YWl5rW36ZiUJ10gOiBbJ+WQr+eUqC/npoHnlKgnLCAn6YeN5paw5o6S5bqPJywgJ+abtOaUueWbvuaghycsICflr7zlhaXmtbfpmJQnXSkuZm9yRWFjaCgodikgPT4ge1xcbiAgICBlbC5wdXNoKHtcXG4gICAgICAgIHRpdGxlOiB2ID09IGVkaXRNb2RlID8gJ+KAnOKAnOKAneKAnScgKyB2LmJvbGQoKS5mb250Y29sb3IoJyMxMmI2NjgnKSA6IHYsXFxuICAgICAgICB1cmw6IHYgPT0gZWRpdE1vZGUgPyAnaGlrZXI6Ly9lbXB0eScgOiAkKCcjbm9Mb2FkaW5nIycpLmxhenlSdWxlKCh2KSA9PiB7XFxuICAgICAgICAgICAgcHV0TXlWYXIoJ2VkaXRNb2RlJywgdilcXG4gICAgICAgICAgICByZWZyZXNoUGFnZShmYWxzZSlcXG4gICAgICAgICAgICByZXR1cm4gJ2hpa2VyOi8vZW1wdHknXFxuICAgICAgICB9LCB2KSxcXG4gICAgICAgIGNvbF90eXBlOiAnc2Nyb2xsX2J1dHRvbidcXG4gICAgfSlcXG59KTtcXG5pZiAoZWRpdE1vZGUgPT0gJ+WvvOWFpea1t+mYlCcpIGVsLnB1c2goe1xcbiAgICB0aXRsZTogJ+WFqOmDqOWvvOWFpScsXFxuICAgIHVybDogJ+a1t+mYlOinhueVjO+/pWhvbWVfcnVsZV91cmzvv6UnICsgKHVybC5zdGFydHNXaXRoKCdoaWtlcjovLycpIHx8IHVybC5zdGFydHNXaXRoKCdmaWxlOi8vJykgPyB1cmwgOiAnaGlrZXI6Ly9maWxlcy9saWJzLycgKyBtZDUodXJsKSArICcuanMnKSxcXG4gICAgY29sX3R5cGU6ICd0ZXh0X2NlbnRlcl8xJyxcXG4gICAgZXh0cmE6IHsgbGluZVZpc2libGU6IGZhbHNlIH1cXG59KTtcXG4oZGlzYWJsZUN1c3RvbSA/IGRhdGEgOiBKU09OLnBhcnNlKHJlYWRGaWxlKCdjdXN0b21EYXRhJykgfHwgJ1tdJykpLmZvckVhY2goKHYsIGkpID0+IHtcXG4gICAgbGV0IGQgPSB7IHRpdGxlOiB2LnRpdGxlLCBpbWc6IGRhdGFbaV0uaWNvbiB9XFxuICAgIHN3aXRjaCAoZWRpdE1vZGUpIHtcXG4gICAgICAgIGNhc2UgJ+WQr+eUqC/npoHnlKgnOlxcbiAgICAgICAgICAgIGQudGl0bGUgPSAodi52aXNpYmxlID8gJ/Cfn6IgICcgOiAn8J+UtCAgJykgKyBkLnRpdGxlXFxuICAgICAgICAgICAgZC51cmwgPSAkKCcjbm9Mb2FkaW5nIycpLmxhenlSdWxlKChpKSA9PiB7XFxuICAgICAgICAgICAgICAgIGxldCBydWxlcyA9IEpTT04ucGFyc2UocmVhZEZpbGUoJ2N1c3RvbURhdGEnKSB8fCAnW10nKVxcbiAgICAgICAgICAgICAgICBydWxlc1tpXS52aXNpYmxlID0gIXJ1bGVzW2ldLnZpc2libGVcXG4gICAgICAgICAgICAgICAgc2F2ZUZpbGUoJ2N1c3RvbURhdGEnLCBKU09OLnN0cmluZ2lmeShydWxlcykpXFxuICAgICAgICAgICAgICAgIHJlZnJlc2hQYWdlKGZhbHNlKVxcbiAgICAgICAgICAgICAgICByZXR1cm4gJ2hpa2VyOi8vZW1wdHknXFxuICAgICAgICAgICAgfSwgaSlcXG4gICAgICAgICAgICBicmVha1xcbiAgICAgICAgY2FzZSAn6YeN5paw5o6S5bqPJzpcXG4gICAgICAgICAgICBsZXQgc29ydEZsYWcgPSBwYXJzZUludChnZXRNeVZhcignc29ydEZsYWcnLCAnLTEnKSlcXG4gICAgICAgICAgICBkLnRpdGxlID0gKHNvcnRGbGFnID09IGkgPyAn8J+UgyAgJyA6ICcnKSArIGQudGl0bGVcXG4gICAgICAgICAgICBpZiAoc29ydEZsYWcgPT0gLTEpXFxuICAgICAgICAgICAgICAgIGQudXJsID0gJCgnI25vTG9hZGluZyMnKS5sYXp5UnVsZSgoaSkgPT4ge1xcbiAgICAgICAgICAgICAgICAgICAgcHV0TXlWYXIoJ3NvcnRGbGFnJywgaS50b1N0cmluZygpKVxcbiAgICAgICAgICAgICAgICAgICAgcmVmcmVzaFBhZ2UoZmFsc2UpXFxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ3RvYXN0Oi8v6YCJ5oup6KaB56e75Yqo5Yiw55qE5L2N572uJ1xcbiAgICAgICAgICAgICAgICB9LCBpKVxcbiAgICAgICAgICAgIGVsc2VcXG4gICAgICAgICAgICAgICAgZC51cmwgPSAkKCcjbm9Mb2FkaW5nIycpLmxhenlSdWxlKChvbGRJbmRleCwgbmV3SW5kZXgpID0+IHtcXG4gICAgICAgICAgICAgICAgICAgIGxldCBydWxlcyA9IEpTT04ucGFyc2UocmVhZEZpbGUoJ2N1c3RvbURhdGEnKSB8fCAnW10nKVxcbiAgICAgICAgICAgICAgICAgICAgcnVsZXMuc3BsaWNlKG5ld0luZGV4LCAwLCBydWxlcy5zcGxpY2Uob2xkSW5kZXgsIDEpWzBdKVxcbiAgICAgICAgICAgICAgICAgICAgc2F2ZUZpbGUoJ2N1c3RvbURhdGEnLCBKU09OLnN0cmluZ2lmeShydWxlcykpXFxuICAgICAgICAgICAgICAgICAgICBwdXRNeVZhcignc29ydEZsYWcnLCAnLTEnKVxcbiAgICAgICAgICAgICAgICAgICAgcmVmcmVzaFBhZ2UoZmFsc2UpXFxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ2hpa2VyOi8vZW1wdHknXFxuICAgICAgICAgICAgICAgIH0sIHNvcnRGbGFnLCBpKVxcbiAgICAgICAgICAgIGJyZWFrXFxuICAgICAgICBjYXNlICfmm7TmlLnlm77moIcnOlxcbiAgICAgICAgICAgIGQudXJsID0gJCh2Lmljb24gfHwgJycsICfovpPlhaXmlrDlm77moIflnLDlnYDmiJbpopzoibLku6PnoIHvvJonKS5pbnB1dCgoaSkgPT4ge1xcbiAgICAgICAgICAgICAgICBsZXQgcnVsZXMgPSBKU09OLnBhcnNlKHJlYWRGaWxlKCdjdXN0b21EYXRhJykgfHwgJ1tdJylcXG4gICAgICAgICAgICAgICAgaWYgKGlucHV0KVxcbiAgICAgICAgICAgICAgICAgICAgcnVsZXNbaV0uaWNvbiA9IGlucHV0XFxuICAgICAgICAgICAgICAgIGVsc2VcXG4gICAgICAgICAgICAgICAgICAgIGRlbGV0ZSBydWxlc1tpXS5pY29uXFxuICAgICAgICAgICAgICAgIHNhdmVGaWxlKCdjdXN0b21EYXRhJywgSlNPTi5zdHJpbmdpZnkocnVsZXMpKVxcbiAgICAgICAgICAgICAgICByZWZyZXNoUGFnZShmYWxzZSlcXG4gICAgICAgICAgICAgICAgcmV0dXJuICdoaWtlcjovL2VtcHR5J1xcbiAgICAgICAgICAgIH0sIGkpXFxuICAgICAgICAgICAgYnJlYWtcXG4gICAgICAgIGNhc2UgJ+WvvOWFpea1t+mYlCc6XFxuICAgICAgICAgICAgZC51cmwgPSAkKCcjbm9Mb2FkaW5nIycpLmxhenlSdWxlKChpKSA9PiB7XFxuICAgICAgICAgICAgICAgIGxldCBkYXRhID0gJC5yZXF1aXJlKCdoaWtlcjovL3BhZ2UvZGF0YUxvYWQ/cnVsZT0nICsgZ2V0TXlWYXIoJ215Q29sbGVjdGlvbicpLCB0cnVlKVxcbiAgICAgICAgICAgICAgICByZXR1cm4gJ3J1bGU6Ly8nICsgYmFzZTY0RW5jb2RlKEpTT04uc3RyaW5naWZ5KGRhdGFbaV0pKVxcbiAgICAgICAgICAgIH0sIGkpXFxuICAgICAgICAgICAgYnJlYWtcXG4gICAgfVxcbiAgICBlbC5wdXNoKGQpXFxufSlcXG5zZXRSZXN1bHQoZWwpXFxuXCJ9LHtcImNvbF90eXBlXCI6XCJtb3ZpZV8zXCIsXCJuYW1lXCI6XCLpobXpnaLovb3lhaVcIixcInBhdGhcIjpcImZyYW1lTG9hZFwiLFwicnVsZVwiOlwianM6XFxuY29uc3QgUUlOR19USVRMRSA9IGdldE15VmFyKCdteUNvbGxlY3Rpb24nKVxcbnZhciBteUNvbGxfZWwgPSBbXVxcbmV2YWwoSlNPTi5wYXJzZShmZXRjaCgnaGlrZXI6Ly9wYWdlL2hpamFja0Vudj9ydWxlPScgKyBRSU5HX1RJVExFKSkucnVsZSlcXG5cXG5pZiAoIWlzSW5kZXgpIHtcXG4gICAgaWYgKHBhZ2VUaXRsZSkgc2V0UGFnZVRpdGxlKHBhZ2VUaXRsZSlcXG4gICAgc2V0TGFzdENoYXB0ZXJSdWxlKG9yaVJVTEUubGFzdF9jaGFwdGVyX3J1bGUpXFxuICAgIE1ZX1BBUkFNUyA9IE1ZX1JVTEUucGFyYW1zXFxufSBlbHNlIGlmIChNWV9QQUdFID09IDEpIHtcXG4gICAgdGFiSGVhZGVyLmxvYWQobXlDb2xsX2VsKVxcbiAgICBpZiAoUlVMRS5zZWFyY2hfdXJsKSBteUNvbGxfZWwucHVzaCh7XFxuICAgICAgICB0aXRsZTogXFxcIuaQnOe0olxcXCIsXFxuICAgICAgICBkZXNjOiBcXFwi6L+Z5piv6L275ZCI6ZuG55qE5pCc57Si5ZOmfn5cXFwiLFxcbiAgICAgICAgdXJsOiAnXFxcImhpa2VyOi8vc2VhcmNoP3M9XFxcIitpbnB1dCcsXFxuICAgICAgICBleHRyYToge1xcbiAgICAgICAgICAgIHJ1bGVzOiAkLnRvU3RyaW5nKChRSU5HX1RJVExFLCB0aXRsZSkgPT4ge1xcbiAgICAgICAgICAgICAgICBsZXQgcnVsZXMgPSAkLnJlcXVpcmUoJ2hpa2VyOi8vcGFnZS9kYXRhTG9hZD9ydWxlPScgKyBRSU5HX1RJVExFKVxcbiAgICAgICAgICAgICAgICBydWxlcyA9IFtydWxlcy5maW5kKCh2KSA9PiB2LnRpdGxlID09IHRpdGxlKV1cXG4gICAgICAgICAgICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHJ1bGVzKVxcbiAgICAgICAgICAgIH0sIFFJTkdfVElUTEUsIFJVTEUudGl0bGUpLFxcbiAgICAgICAgICAgIGRlZmF1bHRWYWx1ZTogZ2V0TXlWYXIoJ3NlYXJjaEtleScsICcnKSxcXG4gICAgICAgICAgICBvbkNoYW5nZTogXFxcInB1dE15VmFyKCdzZWFyY2hLZXknLGlucHV0KVxcXCJcXG4gICAgICAgIH0sXFxuICAgICAgICBjb2xfdHlwZTogXFxcImlucHV0XFxcIixcXG4gICAgfSlcXG59XFxuLy8g5q2j5paH6Kej5p6QXFxudmFyIHtcXG4gICAgcGFyYW1IYW5kbGUsXFxuICAgIHJ1blByZVJ1bGUsXFxuICAgIGdlbkV4VXJsLFxcbiAgICBoaWphY2tMYXp5UnVsZVxcbn0gPSAkLnJlcXVpcmUoJ2hpa2VyOi8vcGFnZS9mdW5jVG9vbHM/cnVsZT0nICsgUUlOR19USVRMRSlcXG5ydW5QcmVSdWxlKG9yaVJVTEUucHJlUnVsZSlcXG5pZiAoTVlfUlVMRS5maW5kX3J1bGUuc3RhcnRzV2l0aCgnanM6JykpIHtcXG4gICAgbGV0IHsgaGlqYWNrRWwgfSA9ICQucmVxdWlyZSgnaGlrZXI6Ly9wYWdlL2Z1bmNUb29scz9ydWxlPScgKyBRSU5HX1RJVExFKVxcbiAgICBzZXRSZXN1bHQgPSBmdW5jdGlvbihwYXJhbTAsIHBhcmFtMSwgcGFyYW0yLCBwYXJhbTMpIHtcXG4gICAgICAgIHBhcmFtMSA9IENBTExCQUNLX0tFWVxcbiAgICAgICAgcGFyYW0yID0gTVlfUlVMRVxcbiAgICAgICAgcGFyYW0zID0gTVlfVFlQRVxcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkocGFyYW0wLmRhdGEpKSBwYXJhbTAgPSBwYXJhbTAuZGF0YVxcbiAgICAgICAgQXJyYXkucHJvdG90eXBlLnB1c2guYXBwbHkobXlDb2xsX2VsLCBwYXJhbTAubWFwKGhpamFja0VsKSlcXG4gICAgICAgIG1ldGhvZF9zZXRSZXN1bHQuaW52b2tlKGphdmFDb250ZXh0LCBteUNvbGxfZWwsIHBhcmFtMSwgcGFyYW0yLCBwYXJhbTMpXFxuICAgIH1cXG4gICAgc2V0SG9tZVJlc3VsdCA9IHNldFJlc3VsdFxcbiAgICBzZXRTZWFyY2hSZXN1bHQgPSBzZXRSZXN1bHRcXG5cXG4gICAgZXZhbChNWV9SVUxFLmZpbmRfcnVsZS5zbGljZSgzKSlcXG59IGVsc2Uge1xcbiAgICBsZXQgeyBydW5Db2RlIH0gPSAkLnJlcXVpcmUoJ2hpa2VyOi8vcGFnZS9mdW5jVG9vbHM/cnVsZT0nICsgUUlOR19USVRMRSksXFxuICAgICAgICBbXywgZmluZFJ1bGUsIGRldGFpbEZpbmRSdWxlXSA9IE1ZX1JVTEUuZmluZF9ydWxlLm1hdGNoKC9eKFtcXFxcc1xcXFxTXSo/KSg/Oj09PihbXFxcXHNcXFxcU10qKSk/JC8pXFxuICAgIGZpbmRSdWxlID0gZmluZFJ1bGUuc3BsaXQoJzsnKVxcbiAgICBwYXJzZURvbUZvckFycmF5KGdldFJlc0NvZGUoKSwgZmluZFJ1bGUuc2hpZnQoKSkuZm9yRWFjaCgoZGF0YSkgPT4ge1xcbiAgICAgICAgbGV0IFt0aXRsZSwgaW1nLCBkZXNjLCB1cmxdID0gZmluZFJ1bGUubWFwKCh2LCBpKSA9PiB7XFxuICAgICAgICAgICAgICAgIHRyeSB7XFxuICAgICAgICAgICAgICAgICAgICBpZiAodiA9PSAnKicpIHJldHVybiAnJ1xcbiAgICAgICAgICAgICAgICAgICAgZWxzZSB2ID0gKGkgPT0gMSB8fCBpID09IDMpID9cXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJzZURvbShkYXRhLCB2KSA6XFxuICAgICAgICAgICAgICAgICAgICAgICAgcGFyc2VEb21Gb3JIdG1sKGRhdGEsIHYpXFxuICAgICAgICAgICAgICAgICAgICBpZiAoaSAhPSAzKSB2ID0gcnVuQ29kZSh2KVxcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHZcXG4gICAgICAgICAgICAgICAgfSBjYXRjaCAoZSkgeyByZXR1cm4gJycgfVxcbiAgICAgICAgICAgIH0pLFxcbiAgICAgICAgICAgIHJlcyA9IHtcXG4gICAgICAgICAgICAgICAgdGl0bGU6IHRpdGxlLCB1cmw6IHVybCxcXG4gICAgICAgICAgICAgICAgZGVzYzogZGVzYywgaW1nOiBpbWcsXFxuICAgICAgICAgICAgICAgIGNvbF90eXBlOiBNWV9SVUxFLmNvbF90eXBlXFxuICAgICAgICAgICAgfVxcbiAgICAgICAgaWYgKHJlcy51cmwpIHtcXG4gICAgICAgICAgICBpZiAocmVzLnVybC5pbmNsdWRlcygnQGxhenlSdWxlPScpKSB7XFxuICAgICAgICAgICAgICAgIGxldCByZUluZGV4ID0gcmVzLnVybC5pbmRleE9mKCcuanM6JylcXG4gICAgICAgICAgICAgICAgaWYgKHJlSW5kZXggPj0gMCkgcmVzLnVybCA9IHJlcy51cmwuc2xpY2UoMCwgcmVJbmRleCkgKyAnLmpzOicgKyBoaWphY2tMYXp5UnVsZSArICc7JyArIHJlcy51cmwuc2xpY2UocmVJbmRleCArIDQpXFxuICAgICAgICAgICAgfSBlbHNlICBpZiAoZGV0YWlsRmluZFJ1bGUpIHtcXG4gICAgICAgICAgICAgICAgcmVzLmV4dHJhID0ge1xcbiAgICAgICAgICAgICAgICAgICAgdXJsOiBnZW5FeFVybCh1cmwpLFxcbiAgICAgICAgICAgICAgICAgICAgUlVMRTogYmFzZTY0RW5jb2RlKEpTT04uc3RyaW5naWZ5KE9iamVjdC5hc3NpZ24oZ2VuTXlSdWxlKCksIHsgZGV0YWlsX2ZpbmRfcnVsZTogZGV0YWlsRmluZFJ1bGUgfSkpKSxcXG4gICAgICAgICAgICAgICAgICAgIHBhZ2VUaXRsZTogaXNJbmRleCAmJiB0aXRsZVxcbiAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgIHJlcy51cmwgPSAnaGlrZXI6Ly9wYWdlL2ZyYW1lTG9hZD9ydWxlPScgKyBRSU5HX1RJVExFXFxuICAgICAgICAgICAgfSBlbHNlIGlmIChNWV9SVUxFLmRldGFpbF9maW5kX3J1bGUpIHtcXG4gICAgICAgICAgICAgICAgcmVzLmV4dHJhID0ge1xcbiAgICAgICAgICAgICAgICAgICAgdXJsOiBnZW5FeFVybCh1cmwpLFxcbiAgICAgICAgICAgICAgICAgICAgUlVMRTogYmFzZTY0RW5jb2RlKEpTT04uc3RyaW5naWZ5KGdlbk15UnVsZSgpKSksXFxuICAgICAgICAgICAgICAgICAgICBwYWdlVGl0bGU6IGlzSW5kZXggJiYgdGl0bGVcXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICByZXMudXJsID0gJ2hpa2VyOi8vcGFnZS9mcmFtZUxvYWQ/cnVsZT0nICsgUUlOR19USVRMRVxcbiAgICAgICAgICAgIH1cXG4gICAgICAgIH1cXG4gICAgICAgIG15Q29sbF9lbC5wdXNoKHJlcylcXG4gICAgfSlcXG4gICAgc2V0UmVzdWx0KG15Q29sbF9lbClcXG59XFxuXCJ9LHtcImNvbF90eXBlXCI6XCJtb3ZpZV8zXCIsXCJuYW1lXCI6XCLmlbDmja7ovb3lhaVcIixcInBhdGhcIjpcImRhdGFMb2FkXCIsXCJydWxlXCI6XCJsZXQgc2hvd0FsbCA9ICQuaW1wb3J0UGFyYW0sXFxuICAgIHVybCA9IGdldE15VmFyKCdyZW1vdGVVcmwnKSxcXG4gICAgZGF0YSA9IFtdXFxuaWYgKHVybC5zdGFydHNXaXRoKCdoaWtlcjovLycpIHx8IHVybC5zdGFydHNXaXRoKCdmaWxlOi8vJykpIHtcXG4gICAgLy8g5aaC5p6c5Li65pys5Zyw5paH5Lu25YiZ5LiN6L+b6KGM57yT5a2YXFxuICAgIHRyeSB7XFxuICAgICAgICBsZXQgb3JpRGF0YSA9IGZldGNoKHVybClcXG4gICAgICAgIGlmICh1cmwuc3RhcnRzV2l0aCgnaGlrZXI6Ly9wYWdlLycpKVxcbiAgICAgICAgICAgIG9yaURhdGEgPSBKU09OLnBhcnNlKG9yaURhdGEpLnJ1bGVcXG4gICAgICAgIGRhdGEgPSBKU09OLnBhcnNlKG9yaURhdGEpXFxuICAgIH0gY2F0Y2ggKGUpIHt9XFxufSBlbHNlIHtcXG4gICAgLy8g6I635Y+W6L+c56iL5pWw5o2u77yM5qOA5p+l6Ze06ZqU6buY6K6k5LiA5aSpXFxuICAgIGxldCBpbnRlcnZhbCA9IHBhcnNlSW50KHJlYWRGaWxlKCd1cGRhdGVJbnRlcnZhbCcpIHx8ICcxJyksXFxuICAgICAgICBvbGREYXRhID0gZmV0Y2goJ2hpa2VyOi8vZmlsZXMvbGlicy8nICsgbWQ1KHVybCkgKyAnLmpzJyksXFxuICAgICAgICByZW1vdGVEYXRhID0gW11cXG4gICAgaWYgKGludGVydmFsID09IDApIGludGVydmFsID0gLTFcXG4gICAgdHJ5IHsgcmVtb3RlRGF0YSA9IEpTT04ucGFyc2UoZmV0Y2hDYWNoZSh1cmwsIDI0ICogaW50ZXJ2YWwsIHsgdGltZW91dDogNTAwMDAgfSkpIH0gY2F0Y2ggKGUpIHt9XFxuICAgIGlmICghQXJyYXkuaXNBcnJheShyZW1vdGVEYXRhKSkgcmVtb3RlRGF0YSA9IFtdXFxuICAgIGlmIChyZW1vdGVEYXRhLmxlbmd0aCA8IDMpIHtcXG4gICAgICAgIGxvZygn5pyq6I635Y+W5Yiw5pWw5o2uJylcXG4gICAgICAgIGlmIChvbGREYXRhKSB3cml0ZUZpbGUoJ2hpa2VyOi8vZmlsZXMvbGlicy8nICsgbWQ1KHVybCkgKyAnLmpzJywgb2xkRGF0YSlcXG4gICAgICAgIGRhdGEgPSBKU09OLnBhcnNlKG9sZERhdGEgfHwgJ1tdJylcXG4gICAgfSBlbHNlIHtcXG4gICAgICAgIGxvZygn5bey6I635Y+W5Yiw5pWw5o2uJylcXG4gICAgICAgIGRhdGEgPSByZW1vdGVEYXRhXFxuICAgIH1cXG59XFxuZGF0YSA9IGRhdGEuZmlsdGVyKCh2KSA9PiB2LnRpdGxlICE9IGdldE15VmFyKCdteUNvbGxlY3Rpb24nKSAmJiAhKHYuYXV0aG9yIHx8ICcnKS5pbmNsdWRlcygn6L275ZCI6ZuG55Sf5oiQ5ZmoJykpXFxuaWYgKHJlYWRGaWxlKCdkaXNhYmxlQ3VzdG9tJykpICQuZXhwb3J0cyA9IGRhdGFcXG5lbHNlIHsgLy8g5YaZ5YWl6Ieq5a6a5LmJ5pWw5o2uXFxuICAgIGxldCBjdXN0b21EYXRhID0gSlNPTi5wYXJzZShyZWFkRmlsZSgnY3VzdG9tRGF0YScpIHx8ICdbXScpLFxcbiAgICAgICAgcmV3cml0ZURhdGEgPSBbXVxcbiAgICBjdXN0b21EYXRhID0gY3VzdG9tRGF0YS5yZWR1Y2UoKHNlbGYsIHYpID0+IHtcXG4gICAgICAgIGxldCBpbmRleCA9IGRhdGEuZmluZEluZGV4KCh2dikgPT4gdi50aXRsZSA9PSB2di50aXRsZSlcXG4gICAgICAgIGlmIChpbmRleCA+PSAwKSB7XFxuICAgICAgICAgICAgc2VsZi5wdXNoKHYpXFxuICAgICAgICAgICAgbGV0IHJ1bGUgPSBkYXRhLnNwbGljZShpbmRleCwgMSlbMF1cXG4gICAgICAgICAgICBpZiAoc2hvd0FsbCB8fCB2LnZpc2libGUpXFxuICAgICAgICAgICAgICAgIHJld3JpdGVEYXRhLnB1c2goT2JqZWN0LmFzc2lnbihydWxlLCB2KSlcXG4gICAgICAgIH1cXG4gICAgICAgIHJldHVybiBzZWxmXFxuICAgIH0sIFtdKVxcbiAgICBkYXRhLmZvckVhY2goKHYpID0+IGN1c3RvbURhdGEucHVzaCh7IHRpdGxlOiB2LnRpdGxlLCB2aXNpYmxlOiB0cnVlIH0pKVxcbiAgICBzYXZlRmlsZSgnY3VzdG9tRGF0YScsIEpTT04uc3RyaW5naWZ5KGN1c3RvbURhdGEpKVxcbiAgICAkLmV4cG9ydHMgPSByZXdyaXRlRGF0YS5jb25jYXQoZGF0YSlcXG59XFxuXCJ9LHtcImNvbF90eXBlXCI6XCJtb3ZpZV8zXCIsXCJuYW1lXCI6XCLnjq/looPliqvmjIFcIixcInBhdGhcIjpcImhpamFja0VudlwiLFwicnVsZVwiOlwidmFyIHsgUlVMRSwgaXNJbmRleCwgcGFnZVRpdGxlIH0gPSBNWV9QQVJBTVNcXG5SVUxFID0gSlNPTi5wYXJzZShiYXNlNjREZWNvZGUoUlVMRSkpXFxudmFyIG9yaVJVTEUgPSAkLnJlcXVpcmUoJ2hpa2VyOi8vcGFnZS9kYXRhTG9hZD9ydWxlPScgKyBRSU5HX1RJVExFKS5maW5kKCh2KSA9PiB2LnRpdGxlID09IFJVTEUudGl0bGUpXFxuaWYgKGlzSW5kZXgpIHtcXG4gICAgUlVMRSA9IG9yaVJVTEVcXG4gICAgdmFyIHsgdGFiSGVhZGVyLCBmeUFsbCB9ID0gJC5yZXF1aXJlKCdoaWtlcjovL3BhZ2UvQ2xhc3NUYWI/cnVsZT0nICsgUUlOR19USVRMRSwgT2JqZWN0LmFzc2lnbih7IFFJTkdfVElUTEU6IFFJTkdfVElUTEUgfSwgUlVMRSkpXFxuICAgIC8vIOWkhOeQhk1ZX1JVTEVcXG4gICAgTVlfUlVMRS5jbGFzc191cmwgPSB0YWJIZWFkZXIuZ2V0Q2xhc3MoZnlBbGwgPyAnZnlBbGwnIDogJ2Z5Y2xhc3MnKS51cmxcXG4gICAgTVlfUlVMRS5hcmVhX3VybCA9IGZ5QWxsID8gTVlfUlVMRS5jbGFzc191cmwgOiB0YWJIZWFkZXIuZ2V0Q2xhc3MoJ2Z5YXJlYScpLnVybFxcbiAgICBNWV9SVUxFLnllYXJfdXJsID0gZnlBbGwgPyBNWV9SVUxFLmNsYXNzX3VybCA6IHRhYkhlYWRlci5nZXRDbGFzcygnZnl5ZWFyJykudXJsXFxuICAgIE1ZX1JVTEUuc29ydF91cmwgPSBmeUFsbCA/IE1ZX1JVTEUuY2xhc3NfdXJsIDogdGFiSGVhZGVyLmdldENsYXNzKCdmeXNvcnQnKS51cmxcXG4gICAgTVlfUlVMRS51cmwgPSBSVUxFLnVybFxcbiAgICBNWV9SVUxFLmNvbF90eXBlID0gUlVMRS5jb2xfdHlwZVxcbiAgICBNWV9SVUxFLmRldGFpbF9jb2xfdHlwZSA9IFJVTEUuZGV0YWlsX2NvbF90eXBlXFxuICAgIE1ZX1JVTEUuZmluZF9ydWxlID0gUlVMRS5maW5kX3J1bGVcXG4gICAgTVlfUlVMRS5kZXRhaWxfZmluZF9ydWxlID0gUlVMRS5kZXRhaWxfZmluZF9ydWxlXFxuICAgIE1ZX1JVTEUucGFyYW1zID0ge31cXG59IGVsc2Uge1xcbiAgICBSVUxFLnBhZ2VzID0gb3JpUlVMRS5wYWdlc1xcbiAgICAvLyDlpITnkIZNWV9SVUxFXFxuICAgIE1ZX1JVTEUudXJsID0gTVlfUEFSQU1TLnVybFxcbiAgICBNWV9SVUxFLmNvbF90eXBlID0gUlVMRS5kZXRhaWxfY29sX3R5cGVcXG4gICAgTVlfUlVMRS5maW5kX3J1bGUgPSBSVUxFLmRldGFpbF9maW5kX3J1bGVcXG4gICAgTVlfUlVMRS5wYXJhbXMgPSBSVUxFLnBhcmFtc1xcbn1cXG5NWV9SVUxFLnBhZ2VzID0gUlVMRS5wYWdlc1xcbk1ZX1JVTEUucGFnZUxpc3QgPSBKU09OLnBhcnNlKE1ZX1JVTEUucGFnZXMgfHwgJ1tdJylcXG5NWV9SVUxFLnRpdGxlID0gUlVMRS50aXRsZVxcbk1ZX1JVTEUudWEgPSBSVUxFLnVhXFxubG9nKE1ZX1JVTEUudXJsKVxcbi8vIOi9veWFpeWHveaVsOW3peWFt1xcbnZhciB7IGdlbk15UnVsZSB9ID0gJC5yZXF1aXJlKCdoaWtlcjovL3BhZ2UvZnVuY1Rvb2xzP3J1bGU9JyArIFFJTkdfVElUTEUsIHtcXG4gICAgUUlOR19USVRMRTogUUlOR19USVRMRSxcXG4gICAgTVlfUlVMRTogTVlfUlVMRSxcXG4gICAgaXNJbmRleDogaXNJbmRleFxcbn0pXFxuLy8g6Ziy5q2icmVxdWlyZeWkmuasoei/kOihjFxcbmNvbnN0IG15Q29sbF9yZXF1aXJlZCA9IHt9XFxucmVxdWlyZSA9IGZ1bmN0aW9uKHBhcmFtMCwgcGFyYW0xLCBwYXJhbTIsIHBhcmFtMywgcGFyYW00KSB7XFxuICAgIGlmIChteUNvbGxfcmVxdWlyZWRbcGFyYW0wXSkgcmV0dXJuXFxuICAgIG15Q29sbF9yZXF1aXJlZFtwYXJhbTBdID0gdHJ1ZVxcbiAgICBwYXJhbTIgPSBwYXJhbTIgIT0gbnVsbCA/IHBhcmFtMiA6IDBcXG4gICAgcGFyYW0zID0gTVlfVElDS0VUXFxuICAgIHBhcmFtNCA9IGV2YWxcXG4gICAgcmV0dXJuIG1ldGhvZF9yZXF1aXJlLmludm9rZShqYXZhQ29udGV4dCwgcGFyYW0wLCBwYXJhbTEsIHBhcmFtMiwgcGFyYW0zLCBwYXJhbTQpXFxufVxcbnJlcXVpcmVDYWNoZSA9IGZ1bmN0aW9uKHBhcmFtMCwgcGFyYW0xLCBwYXJhbTIsIHBhcmFtMywgcGFyYW00LCBwYXJhbTUpIHtcXG4gICAgaWYgKG15Q29sbF9yZXF1aXJlZFtwYXJhbTBdKSByZXR1cm5cXG4gICAgbXlDb2xsX3JlcXVpcmVkW3BhcmFtMF0gPSB0cnVlXFxuICAgIHBhcmFtMyA9IHBhcmFtMyAhPSBudWxsID8gcGFyYW0zIDogMFxcbiAgICBwYXJhbTQgPSBNWV9USUNLRVRcXG4gICAgcGFyYW01ID0gZXZhbFxcbiAgICByZXR1cm4gbWV0aG9kX3JlcXVpcmVDYWNoZS5pbnZva2UoamF2YUNvbnRleHQsIHBhcmFtMCwgcGFyYW0xLCBwYXJhbTIsIHBhcmFtMywgcGFyYW00LCBwYXJhbTUpXFxufVxcbnJjID0gcmVxdWlyZUNhY2hlXFxuLy8g5pyA5paw56ug6IqC6KeE5YiZ546v5aKD5Yqr5oyBXFxuc2V0TGFzdENoYXB0ZXJSdWxlID0gZnVuY3Rpb24ocGFyYW0wKSB7XFxuICAgIGlmIChwYXJhbTAuc3RhcnRzV2l0aChcXFwianM6XFxcIikpIHtcXG4gICAgICAgIHBhcmFtMCA9ICdqczonICsgJC50b1N0cmluZygoUUlOR19USVRMRSwgTVlfUEFSQU1TKSA9PiB7XFxuICAgICAgICAgICAgZXZhbChKU09OLnBhcnNlKGZldGNoKCdoaWtlcjovL3BhZ2UvaGlqYWNrRW52P3J1bGU9JyArIFFJTkdfVElUTEUpKS5ydWxlKVxcbiAgICAgICAgICAgIHZhciB7IHJ1blByZVJ1bGUgfSA9ICQucmVxdWlyZSgnaGlrZXI6Ly9wYWdlL2Z1bmNUb29scz9ydWxlPScgKyBRSU5HX1RJVExFKVxcbiAgICAgICAgICAgIHJ1blByZVJ1bGUob3JpUlVMRS5wcmVSdWxlKVxcbiAgICAgICAgfSwgUUlOR19USVRMRSwgeyB1cmw6IE1ZX1JVTEUudXJsLCBSVUxFOiBiYXNlNjRFbmNvZGUoSlNPTi5zdHJpbmdpZnkoZ2VuTXlSdWxlKCkpKSwgaXNJbmRleDogaXNJbmRleCB9KSArICc7JyArIHBhcmFtMC5zbGljZSgzKVxcbiAgICB9XFxuICAgIG1ldGhvZF9zZXRMYXN0Q2hhcHRlclJ1bGUuaW52b2tlKGphdmFDb250ZXh0LCBwYXJhbTApXFxufVxcbi8vIOWKqOaAgeaWsOWinuWHveaVsOWKq+aMgVxcbmFkZEl0ZW1BZnRlciA9IGZ1bmN0aW9uKHBhcmFtMCwgcGFyYW0xKSB7XFxuICAgIGlmIChBcnJheS5pc0FycmF5KHBhcmFtMSkpIHBhcmFtMSA9IHBhcmFtMS5tYXAoaGlqYWNrRWwpXFxuICAgIGVsc2UgcGFyYW0xID0gaGlqYWNrRWwocGFyYW0xKVxcbiAgICBtZXRob2RfYWRkSXRlbUFmdGVyLmludm9rZShqYXZhQ29udGV4dCwgcGFyYW0wLCBwYXJhbTEpXFxufVxcbmFkZEl0ZW1CZWZvcmUgPSBmdW5jdGlvbihwYXJhbTAsIHBhcmFtMSkge1xcbiAgICBpZiAoQXJyYXkuaXNBcnJheShwYXJhbTEpKSBwYXJhbTEgPSBwYXJhbTEubWFwKGhpamFja0VsKVxcbiAgICBlbHNlIHBhcmFtMSA9IGhpamFja0VsKHBhcmFtMSlcXG4gICAgbWV0aG9kX2FkZEl0ZW1CZWZvcmUuaW52b2tlKGphdmFDb250ZXh0LCBwYXJhbTAsIHBhcmFtMSlcXG59XFxuXCJ9LHtcImNvbF90eXBlXCI6XCJtb3ZpZV8zXCIsXCJuYW1lXCI6XCLlh73mlbDlt6XlhbdcIixcInBhdGhcIjpcImZ1bmNUb29sc1wiLFwicnVsZVwiOlwibGV0IHsgUUlOR19USVRMRSwgTVlfUlVMRSwgaXNJbmRleCB9ID0gJC5pbXBvcnRQYXJhbVxcbmlmICghTVlfUlVMRSkgTVlfUlVMRSA9IHt9XFxuXFxuZnVuY3Rpb24gcnVuQ29kZShydWxlKSB7XFxuICAgIHRyeSB7XFxuICAgICAgICBsZXQgW2lucHV0LCBjb2RlXSA9IHJ1bGUuc3BsaXQoJy5qczonKVxcbiAgICAgICAgcmV0dXJuIGNvZGUgPyBldmFsKGNvZGUpIDogcnVsZVxcbiAgICB9IGNhdGNoIChlKSB7IHJldHVybiBydWxlIH1cXG59XFxuLy8g6aaW6aG16ZO+5o6l5pu/5o2i5YiG57G7XFxuZnVuY3Rpb24gaW5kZXhVcmwocGFyYW0pIHtcXG4gICAgTVlfUlVMRSA9IEpTT04ucGFyc2UoYmFzZTY0RGVjb2RlKE1ZX1JVTEUpKVxcbiAgICBsZXQgcGFnZU51bSA9IHBhcnNlSW50KHBhcmFtLnNwbGl0KCcjIyMnKVsxXSksXFxuICAgICAgICB1cmwgPSBNWV9SVUxFLnVybCxcXG4gICAgICAgIHsgZnlBbGwsIHRhYkhlYWRlciB9ID0gJC5yZXF1aXJlKCdoaWtlcjovL3BhZ2UvQ2xhc3NUYWI/cnVsZT0nICsgUUlOR19USVRMRSwgT2JqZWN0LmFzc2lnbih7IFFJTkdfVElUTEU6IFFJTkdfVElUTEUgfSwgTVlfUlVMRSkpXFxuXFxuICAgIHVybCA9IHRhYkhlYWRlci5zZXRVcmwoZnlBbGwgPyB1cmwucmVwbGFjZSgvZnlBbGwvZywgJyQke2Z5QWxsfScpIDogdXJsLnJlcGxhY2UoL2Z5KGNsYXNzfGFyZWF8eWVhcnxzb3J0KS9nLCAnJCR7ZnkkMX0nKSlcXG4gICAgdXJsID0gdXJsLnJlcGxhY2UoL2Z5cGFnZSg/OkAoLT9cXFxcZCspQCk/KD86XFxcXCooXFxcXGQrKUApPy9nLCAoXywgc3RhcnQsIHNwYWNlKSA9PiBwYXJzZUludChzdGFydCB8fCAwKSArIDEgKyAocGFnZU51bSAtIDEpICogcGFyc2VJbnQoc3BhY2UgfHwgMSkpXFxuICAgIHVybCA9IC9eKFtcXFxcc1xcXFxTXSo/KSg/OlxcXFxbZmlyc3RQYWdlPShbXFxcXHNcXFxcU10qPylcXFxcXSk/KD86KFxcXFwuanM6W1xcXFxzXFxcXFNdKj8pKT8kLy5leGVjKHVybClcXG4gICAgaWYgKHBhZ2VOdW0gPT0gMSAmJiB1cmxbMl0pIHVybFsxXSA9IHVybFsyXVxcbiAgICBpZiAodXJsWzNdICYmICF1cmxbMV0uaW5jbHVkZXMoJy5qczonKSkgdXJsWzFdICs9IHVybFszXVxcbiAgICByZXR1cm4gcnVuQ29kZSh1cmxbMV0pXFxufVxcblxcbmZ1bmN0aW9uIHBhcmFtSGFuZGxlKHVybFBhcmFtLCB1YSwgdXJsVG1wKSB7XFxuICAgIGxldCBjaGFyc2V0LCBwYXJhbVRtcFxcbiAgICB0cnkgeyAvLyDpk77mjqXnmoTnvJbnoIHjgIFVQeWSjFJlZmVyZXLlupTor6XmmK/pppblhYjnu6fmib/pppbpobXpk77mjqVcXG4gICAgICAgIFssICwgY2hhcnNldCwgcGFyYW1UbXBdID0gdXJsVG1wLnNwbGl0KCc7JylcXG4gICAgICAgIHBhcmFtVG1wID0gcGFyYW1UbXAubWF0Y2goL157KC4qKX0kLylbMV0uc3BsaXQoJyYmJylcXG4gICAgfSBjYXRjaCAoZSkgeyBwYXJhbVRtcCA9IFtdIH1cXG4gICAgbGV0IFVzZXJBZ2VudCA9IHBhcmFtVG1wLmZpbmQoKHYpID0+IHYuc3RhcnRzV2l0aCgnVXNlci1BZ2VudEAnKSksXFxuICAgICAgICBSZWZlcmVyID0gcGFyYW1UbXAuZmluZCgodikgPT4gdi5zdGFydHNXaXRoKCdSZWZlcmVyQCcpKVxcbiAgICB1cmxQYXJhbVswXSA9IHVybFBhcmFtWzBdIHx8ICdHRVQnXFxuICAgIHVybFBhcmFtWzFdID0gdXJsUGFyYW1bMV0gfHwgY2hhcnNldCB8fCAnVVRGLTgnXFxuICAgIHRyeSB7XFxuICAgICAgICB1cmxQYXJhbVsyXSA9IHVybFBhcmFtWzJdLm1hdGNoKC9eeyguKil9JC8pWzFdLnNwbGl0KCcmJicpXFxuICAgIH0gY2F0Y2ggKGUpIHsgdXJsUGFyYW1bMl0gPSBbXSB9XFxuICAgIC8vIOa3u+WKoOWFqOWxgFVB5ZKM5LiK57qnUmVmZXJlclxcbiAgICBpZiAoIXVybFBhcmFtWzJdLnNvbWUoKHYpID0+IHYuc3RhcnRzV2l0aCgnVXNlci1BZ2VudEAnKSkpIHtcXG4gICAgICAgIGlmIChVc2VyQWdlbnQpIHVybFBhcmFtWzJdLnB1c2goVXNlckFnZW50KVxcbiAgICAgICAgZWxzZSBpZiAodWEgPT0gJ3BjJylcXG4gICAgICAgICAgICB1cmxQYXJhbVsyXS5wdXNoKCdVc2VyLUFnZW50QCcgKyBQQ19VQS5yZXBsYWNlKC87L2csICfvvJvvvJsnKS5yZXBsYWNlKC9cXFxcPy8sICfvvJ/vvJ8nKSlcXG4gICAgICAgIGVsc2UgaWYgKHVhID09ICdtb2JpbGUnKVxcbiAgICAgICAgICAgIHVybFBhcmFtWzJdLnB1c2goJ1VzZXItQWdlbnRAJyArIE1PQklMRV9VQS5yZXBsYWNlKC87L2csICfvvJvvvJsnKS5yZXBsYWNlKC9cXFxcPy8sICfvvJ/vvJ8nKSlcXG4gICAgfVxcbiAgICBpZiAoUmVmZXJlciAmJiAhdXJsUGFyYW1bMl0uc29tZSgodikgPT4gdi5zdGFydHNXaXRoKCdSZWZlcmVyQCcpKSlcXG4gICAgICAgIHVybFBhcmFtWzJdLnB1c2goUmVmZXJlcilcXG4gICAgdXJsUGFyYW1bMl0gPSAneycgKyB1cmxQYXJhbVsyXS5qb2luKCcmJicpICsgJ30nXFxuICAgIHJldHVybiB1cmxQYXJhbS5qb2luKCc7JylcXG59XFxuLy8g6aKE5aSE55CG5bm25Yid5aeL5YyWY29uZmlnXFxuZnVuY3Rpb24gcnVuUHJlUnVsZShydWxlKSB7XFxuICAgIGlmICgodHlwZW9mIE1ZX1BBR0UgIT0gJ3VuZGVmaW5lZCcgJiYgIE1ZX1BBR0UgPT0gMSkgJiZcXG4gICAgICAgICAoaXNJbmRleCB8fCAhZ2V0TXlWYXIoJyRwcmVSdWxlXycgKyBNWV9SVUxFLnRpdGxlKSkpIHtcXG4gICAgICAgIGV2YWwocnVsZSlcXG4gICAgICAgIHB1dE15VmFyKCckcHJlUnVsZV8nICsgTVlfUlVMRS50aXRsZSwgJ1QnKVxcbiAgICB9XFxuICAgIGxldCBfY2ZnID0gZ2V0TXlWYXIoJ2luaXRDb25maWcnLCAne30nKVxcbiAgICBpZiAoX2NmZyAmJiBfY2ZnLmxlbmd0aCA+IDApIHtcXG4gICAgICAgIGNvbmZpZyA9IEpTT04ucGFyc2UoX2NmZylcXG4gICAgfVxcbn1cXG4vLyDmraPmlofop6PmnpDpgJrnlKjlj5jph49cXG5mdW5jdGlvbiBnZW5NeVJ1bGUoKSB7XFxuICAgIGxldCBSVUxFID0gT2JqZWN0LmFzc2lnbih7fSwgTVlfUlVMRSlcXG4gICAgZGVsZXRlIFJVTEUubGFzdF9jaGFwdGVyX3J1bGVcXG4gICAgZGVsZXRlIFJVTEUucHJlUnVsZVxcbiAgICBkZWxldGUgUlVMRS5wYWdlTGlzdFxcbiAgICBkZWxldGUgUlVMRS5wYWdlc1xcbiAgICByZXR1cm4gUlVMRVxcbn1cXG5cXG5mdW5jdGlvbiBnZW5FeFVybCh1cmwpIHtcXG4gICAgdXJsID0gdXJsLnNwbGl0KCc7JylcXG4gICAgcmV0dXJuIHVybC5zaGlmdCgpICsgJzsnICsgcGFyYW1IYW5kbGUodXJsLCBNWV9SVUxFLnVhLCBNWV9SVUxFLnVybClcXG59XFxuXFxuaGlqYWNrTGF6eVJ1bGUgPSAkLnRvU3RyaW5nKChRSU5HX1RJVExFLCBNWV9QQVJBTVMpID0+IHtcXG4gICAgaWYgKCFNWV9SVUxFKSBNWV9SVUxFID0ge31cXG4gICAgTVlfUEFSQU1TID0gSlNPTi5wYXJzZShiYXNlNjREZWNvZGUoTVlfUEFSQU1TKSlcXG4gICAgZXZhbChKU09OLnBhcnNlKGZldGNoKCdoaWtlcjovL3BhZ2UvaGlqYWNrRW52P3J1bGU9JyArIFFJTkdfVElUTEUpKS5ydWxlKVxcbiAgICB2YXIge1xcbiAgICAgICAgcGFyYW1IYW5kbGUsXFxuICAgICAgICBnZW5FeFVybCxcXG4gICAgICAgIGhpamFja0xhenlSdWxlLFxcbiAgICAgICAgaGlqYWNrRWxcXG4gICAgfSA9ICQucmVxdWlyZSgnaGlrZXI6Ly9wYWdlL2Z1bmNUb29scz9ydWxlPScgKyBRSU5HX1RJVExFKVxcbn0sIFFJTkdfVElUTEUsIGJhc2U2NEVuY29kZShKU09OLnN0cmluZ2lmeSh7IHVybDogTVlfUlVMRS51cmwsIFJVTEU6IGJhc2U2NEVuY29kZShKU09OLnN0cmluZ2lmeShnZW5NeVJ1bGUoKSkpLCBpc0luZGV4OiBpc0luZGV4IH0pKSlcXG5cXG5mdW5jdGlvbiBoaWphY2tFbChlbCkge1xcbiAgICBpZighZWwgfHwgdHlwZW9mIGVsICE9ICdvYmplY3QnKSByZXR1cm5cXG4gICAgaWYgKCFlbC5leHRyYSkgZWwuZXh0cmEgPSB7fVxcbiAgICBlbC5jb2xfdHlwZSA9IGVsLmNvbF90eXBlIHx8IE1ZX1JVTEUuY29sX3R5cGVcXG4gICAgbGV0IE5PV19SVUxFID0gT2JqZWN0LmFzc2lnbihnZW5NeVJ1bGUoKSwgeyBwYXJhbXM6IGVsLmV4dHJhIH0pXFxuXFxuICAgIGlmICh0eXBlb2YgZWwudXJsICE9ICdzdHJpbmcnIHx8XFxuICAgICAgICBbJ3g1X3dlYnZpZXdfc2luZ2xlJywgJ2lucHV0J10uc29tZSgodikgPT4gZWwuY29sX3R5cGUgPT0gdikgfHxcXG4gICAgICAgIFsn5rW36ZiU6KeG55WMJywgJ2phdmFzY3JpcHQ6J10uc29tZSgodikgPT4gZWwudXJsLnN0YXJ0c1dpdGgodikpIHx8XFxuICAgICAgICBbJ3J1bGUnLCAncGljcycsICd0b2FzdCcsICdjb3B5JywgJ2VkaXRGaWxlJywgJ3g1JywgJ3g1V2ViVmlldycsICd4NVBsYXknLCAnd2ViJywgJ3g1UnVsZScsICd3ZWJSdWxlJyxcXG4gICAgICAgICAgICAnZG93bmxvYWQnLCAnc2hhcmUnLCAnZmlsZVNlbGVjdCcsICd2aWRlbyddLnNvbWUoKHYpID0+IGVsLnVybC5zdGFydHNXaXRoKHYgKyAnOi8vJykpKSB7XFxuICAgICAgICByZXR1cm4gZWxcXG4gICAgfSBlbHNlIGlmIChlbC51cmwuc3RhcnRzV2l0aCgnaW5wdXQ6Ly8nKSkge1xcbiAgICAgICAgbGV0IHBhcmEgPSBKU09OLnBhcnNlKGVsLnVybC5zbGljZSg4KSlcXG4gICAgICAgIGlmIChwYXJhLmpzKSBwYXJhLmpzID0gaGlqYWNrTGF6eVJ1bGUgKyAnOycgKyBwYXJhLmpzXFxuICAgICAgICBlbC51cmwgPSAnaW5wdXQ6Ly8nICsgSlNPTi5zdHJpbmdpZnkocGFyYSlcXG4gICAgICAgIHJldHVybiBlbFxcbiAgICB9IGVsc2UgaWYgKGVsLnVybC5zdGFydHNXaXRoKCdjb25maXJtOi8vJykpIHtcXG4gICAgICAgIGxldCByZUluZGV4ID0gZWwudXJsLmluZGV4T2YoJy5qczonKVxcbiAgICAgICAgaWYgKHJlSW5kZXggPj0gMCkgZWwudXJsID0gZWwudXJsLnNsaWNlKDAsIHJlSW5kZXgpICsgJy5qczonICsgaGlqYWNrTGF6eVJ1bGUgKyAnOycgKyBlbC51cmwuc2xpY2UocmVJbmRleCArIDQpXFxuICAgICAgICByZXR1cm4gZWxcXG4gICAgfSBlbHNlIGlmIChlbC51cmwuc3RhcnRzV2l0aCgnc2VsZWN0Oi8vJykpIHtcXG4gICAgICAgIGxldCBwYXJhID0gSlNPTi5wYXJzZShlbC51cmwuc2xpY2UoOSkpXFxuICAgICAgICBpZiAocGFyYS5qcykgcGFyYS5qcyA9IGhpamFja0xhenlSdWxlICsgJzsnICsgcGFyYS5qc1xcbiAgICAgICAgZWwudXJsID0gJ3NlbGVjdDovLycgKyBKU09OLnN0cmluZ2lmeShwYXJhKVxcbiAgICAgICAgcmV0dXJuIGVsXFxuICAgIH0gZWxzZSBpZiAoZWwudXJsLmluY2x1ZGVzKCdAcnVsZT0nKSkge1xcbiAgICAgICAgbGV0IFtfLCB1cmwsIHJ1bGVdID0gZWwudXJsLm1hdGNoKC9eKFtcXFxcc1xcXFxTXSo/KUBydWxlPShbXFxcXHNcXFxcU10qKSQvKVxcbiAgICAgICAgZWwudXJsID0gdXJsXFxuICAgICAgICBOT1dfUlVMRS5kZXRhaWxfZmluZF9ydWxlID0gcnVsZVxcbiAgICAgICAgTk9XX1JVTEUuZGV0YWlsX2NvbF90eXBlID0gTVlfUlVMRS5jb2xfdHlwZVxcbiAgICB9IGVsc2UgaWYgKGVsLnVybC5zdGFydHNXaXRoKCdoaWtlcjovL3BhZ2UvJykpIHtcXG4gICAgICAgIGlmIChlbC51cmwuaW5jbHVkZXMoJ3J1bGU9JykgfHwgZWwuZXh0cmEucnVsZSlcXG4gICAgICAgICAgICByZXR1cm4gZWxcXG4gICAgICAgIGxldCBbXywgcGF0aCwgZmxhZywgcGFyYW1zXSA9IGVsLnVybC5tYXRjaCgvXmhpa2VyOlxcXFwvXFxcXC9wYWdlXFxcXC8oLis/KSgjLio/KT8oPzpcXFxcPyguKikpPyQvKSxcXG4gICAgICAgICAgICBzdWJQYWdlID0gTVlfUlVMRS5wYWdlTGlzdC5maW5kKCh2KSA9PiB2LnBhdGggPT0gcGF0aCksXFxuICAgICAgICAgICAgc3ViVXJsID0gKHBhcmFtcyB8fCAnJykuc3BsaXQoJyYnKS5maW5kKCh2KSA9PiB2LnN0YXJ0c1dpdGgoJ3VybD0nKSlcXG4gICAgICAgIGVsLnVybCA9IChzdWJVcmwgPyBzdWJVcmwuc2xpY2UoNCkucmVwbGFjZSgv77yf77yfL2csICc/JykucmVwbGFjZSgv77yG77yGL2csICcmJykgOiAoZWwuZXh0cmEgfHwge30pLnVybCkgfHwgJ2hpa2VyOi8vZW1wdHknICsgZmxhZyArICc/JyArIChwYXJhbXMgfHwgJycpXFxuICAgICAgICBOT1dfUlVMRS5kZXRhaWxfZmluZF9ydWxlID0gc3ViUGFnZS5ydWxlXFxuICAgICAgICBOT1dfUlVMRS5kZXRhaWxfY29sX3R5cGUgPSBzdWJQYWdlLmNvbF90eXBlXFxuICAgIH0gZWxzZSBpZiAoZWwudXJsLmluY2x1ZGVzKCdAbGF6eVJ1bGU9JykpIHtcXG4gICAgICAgIGxldCByZUluZGV4ID0gZWwudXJsLmluZGV4T2YoJy5qczonKVxcbiAgICAgICAgaWYgKHJlSW5kZXggPj0gMCkgZWwudXJsID0gZWwudXJsLnNsaWNlKDAsIHJlSW5kZXgpICsgJy5qczonICsgaGlqYWNrTGF6eVJ1bGUgKyAnOycgKyBlbC51cmwuc2xpY2UocmVJbmRleCArIDQpXFxuICAgICAgICByZXR1cm4gZWxcXG4gICAgfSBlbHNlIGlmIChpc0luZGV4KSB7XFxuICAgICAgICBpZiAoIU1ZX1JVTEUuZGV0YWlsX2ZpbmRfcnVsZSB8fCAvaGlrZXI6XFxcXC9cXFxcLyg/IWVtcHR5LiskKS8udGVzdChlbC51cmwpKSByZXR1cm4gZWxcXG4gICAgfSBlbHNlIHtcXG4gICAgICAgIHJldHVybiBlbFxcbiAgICB9XFxuICAgIGVsLmV4dHJhID0gT2JqZWN0LmFzc2lnbih7fSwgZWwuZXh0cmEsIHtcXG4gICAgICAgIHVybDogZ2VuRXhVcmwoZWwudXJsKSxcXG4gICAgICAgIFJVTEU6IGJhc2U2NEVuY29kZShKU09OLnN0cmluZ2lmeShOT1dfUlVMRSkpLFxcbiAgICAgICAgcGFnZVRpdGxlOiBpc0luZGV4ICYmIGVsLnRpdGxlXFxuICAgIH0pXFxuICAgIGVsLnVybCA9ICdoaWtlcjovL3BhZ2UvZnJhbWVMb2FkP3J1bGU9JyArIFFJTkdfVElUTEVcXG4gICAgcmV0dXJuIGVsXFxufVxcbiQuZXhwb3J0cyA9IHtcXG4gICAgcnVuQ29kZTogcnVuQ29kZSxcXG4gICAgaW5kZXhVcmw6IGluZGV4VXJsLFxcbiAgICBwYXJhbUhhbmRsZTogcGFyYW1IYW5kbGUsXFxuICAgIHJ1blByZVJ1bGU6IHJ1blByZVJ1bGUsXFxuICAgIGdlbk15UnVsZTogZ2VuTXlSdWxlLFxcbiAgICBnZW5FeFVybDogZ2VuRXhVcmwsXFxuICAgIGhpamFja0xhenlSdWxlOiBoaWphY2tMYXp5UnVsZSxcXG4gICAgaGlqYWNrRWw6IGhpamFja0VsXFxufVxcblwifV0sXCJwYXJhbXNcIjpcIntcXFwiUlVMRVxcXCI6XFxcImV5SjBhWFJzWlNJNkl1VzVsZVdRcithWW4rYXlzMEZRVUNKOVxcXCIsXFxcImlzSW5kZXhcXFwiOnRydWUsXFxcInVybFxcXCI6XFxcImhpa2VyOi8vZW1wdHkvI25vSGlzdG9yeSMjbm9SZWNvcmRIaXN0b3J5IyMjI2Z5cGFnZS5qczpsZXQgeyBydW5Db2RlLCBpbmRleFVybCB9ID0gJC5yZXF1aXJlKFxcXFxcXFwiaGlrZXI6Ly9wYWdlL2Z1bmNUb29sc++8n++8n3J1bGU96L275ZCI6ZuGLnpoYW9cXFxcXFxcIiwge1xcXFxcXFwiTVlfUlVMRVxcXFxcXFwiOlxcXFxcXFwiZXlKMGFYUnNaU0k2SXVXNWxlV1FyK2FZbitheXMwRlFVQ0lzSW5WeWJDSTZJbWhwYTJWeU9pOHZaVzF3ZEhrakl5OWhjR2t1Y0dod0wzWXhMblp2WkQ5MGVYQmxQV1o1WTJ4aGMzTW1ZMnhoYzNNOUptRnlaV0U5Sm5sbFlYSTlabmw1WldGeUptSjVQV1o1YzI5eWRDWndZV2RsUFdaNWNHRm5aU1pzYVcxcGREMHhPQ0lzSW1Oc1lYTnpYMjVoYldVaU9pTG5sTFhsdmJFbTVZbW42WnVHSnVlN3ZPaUp1aWJsaXFqbXZLc201YkNSNVlTL0p1ZWZyZVdKcHlibm03VG1rcTBpTENKamJHRnpjMTkxY213aU9pSXhKakltTXlZMEpqVW1OaVkzSWl3aVlYSmxZVjl1WVcxbElqb2lJaXdpWVhKbFlWOTFjbXdpT2lJaUxDSjVaV0Z5WDI1aGJXVWlPaUxsaGFqcGc2Z21NakF5TkNZeU1ESXpKakl3TWpJbU1qQXlNU1l5TURJd0pqSXdNVGttTWpBeE9DWXlNREUzSmpJd01UWW1NakF4TlNZeU1ERTBKakl3TVRNbU1qQXhNaVl5TURFeEpqSXdNVEFtTWpBd09TWXlNREE0SmpJd01EY21NakF3TmlZeU1EQTFKakl3TURRbU1qQXdNeVl5TURBeUpqSXdNREVtTWpBd01DSXNJbmxsWVhKZmRYSnNJam9pSmpJd01qUW1NakF5TXlZeU1ESXlKakl3TWpFbU1qQXlNQ1l5TURFNUpqSXdNVGdtTWpBeE55WXlNREUySmpJd01UVW1NakF4TkNZeU1ERXpKakl3TVRJbU1qQXhNU1l5TURFd0pqSXdNRGttTWpBd09DWXlNREEzSmpJd01EWW1NakF3TlNZeU1EQTBKakl3TURNbU1qQXdNaVl5TURBeEpqSXdNREFpTENKemIzSjBYMjVoYldVaU9pTG1qSW5tbTdUbWxyQW01b3lKNXBLdDVwUytKdWFNaWVpdmhPV0loaUlzSW5OdmNuUmZkWEpzSWpvaUptaHBkSE1tYzJOdmNtVWlmUT09XFxcXFxcXCIsXFxcXFxcXCJRSU5HX1RJVExFXFxcXFxcXCI6XFxcXFxcXCLovbvlkIjpm4Yuemhhb1xcXFxcXFwifSnvvJvvvJtpbmRleFVybChpbnB1dCk7R0VUO1VURi04O3tVc2VyLUFnZW50QE1vemlsbGEvNS4wIChMaW51eO+8m++8myBBbmRyb2lkIDEw77yb77ybIENEWS1BTjkwIEJ1aWxkL0hVQVdFSUNEWS1BTjkw77yb77ybIHd2KSBBcHBsZVdlYktpdC81MzcuMzYgKEtIVE1MLCBsaWtlIEdlY2tvKSBWZXJzaW9uLzQuMCBDaHJvbWUvOTIuMC40NTE1LjEwNSBNb2JpbGUgU2FmYXJpLzUzNy4zNn1cXFwifVwiLFwic2F2ZWRcIjpmYWxzZSxcInRpdGxlXCI6XCLovbvlkIjpm4Yuemhhb1wiLFwidmVyc2lvblwiOjAsXCJ1cmxcIjpcImhpa2VyOi8vZW1wdHkvI25vSGlzdG9yeSMjbm9SZWNvcmRIaXN0b3J5IyMjI2Z5cGFnZS5qczpsZXQgeyBydW5Db2RlLCBpbmRleFVybCB9ID0gJC5yZXF1aXJlKFxcXCJoaWtlcjovL3BhZ2UvZnVuY1Rvb2xz77yf77yfcnVsZT3ovbvlkIjpm4Yuemhhb1xcXCIsIHtcXFwiTVlfUlVMRVxcXCI6XFxcImV5SjBhWFJzWlNJNkl1VzVsZVdRcithWW4rYXlzMEZRVUNJc0luVnliQ0k2SW1ocGEyVnlPaTh2Wlcxd2RIa2pJeTloY0drdWNHaHdMM1l4TG5adlpEOTBlWEJsUFdaNVkyeGhjM01tWTJ4aGMzTTlKbUZ5WldFOUpubGxZWEk5Wm5sNVpXRnlKbUo1UFdaNWMyOXlkQ1p3WVdkbFBXWjVjR0ZuWlNac2FXMXBkRDB4T0NJc0ltTnNZWE56WDI1aGJXVWlPaUxubExYbHZiRW01WW1uNlp1R0p1ZTd2T2lKdWlibGlxam12S3NtNWJDUjVZUy9KdWVmcmVXSnB5Ym5tN1Rta3EwaUxDSmpiR0Z6YzE5MWNtd2lPaUl4SmpJbU15WTBKalVtTmlZM0lpd2lZWEpsWVY5dVlXMWxJam9pSWl3aVlYSmxZVjkxY213aU9pSWlMQ0o1WldGeVgyNWhiV1VpT2lMbGhhanBnNmdtTWpBeU5DWXlNREl6SmpJd01qSW1NakF5TVNZeU1ESXdKakl3TVRrbU1qQXhPQ1l5TURFM0pqSXdNVFltTWpBeE5TWXlNREUwSmpJd01UTW1NakF4TWlZeU1ERXhKakl3TVRBbU1qQXdPU1l5TURBNEpqSXdNRGNtTWpBd05pWXlNREExSmpJd01EUW1NakF3TXlZeU1EQXlKakl3TURFbU1qQXdNQ0lzSW5sbFlYSmZkWEpzSWpvaUpqSXdNalFtTWpBeU15WXlNREl5SmpJd01qRW1NakF5TUNZeU1ERTVKakl3TVRnbU1qQXhOeVl5TURFMkpqSXdNVFVtTWpBeE5DWXlNREV6SmpJd01USW1NakF4TVNZeU1ERXdKakl3TURrbU1qQXdPQ1l5TURBM0pqSXdNRFltTWpBd05TWXlNREEwSmpJd01ETW1NakF3TWlZeU1EQXhKakl3TURBaUxDSnpiM0owWDI1aGJXVWlPaUxtaklubW03VG1sckFtNW95SjVwS3Q1cFMrSnVhTWllaXZoT1dJaGlJc0luTnZjblJmZFhKc0lqb2lKbWhwZEhNbWMyTnZjbVVpZlE9PVxcXCIsXFxcIlFJTkdfVElUTEVcXFwiOlxcXCLovbvlkIjpm4Yuemhhb1xcXCJ9Ke+8m++8m2luZGV4VXJsKGlucHV0KTtHRVQ7VVRGLTg7e1VzZXItQWdlbnRATW96aWxsYS81LjAgKExpbnV477yb77ybIEFuZHJvaWQgMTDvvJvvvJsgQ0RZLUFOOTAgQnVpbGQvSFVBV0VJQ0RZLUFOOTDvvJvvvJsgd3YpIEFwcGxlV2ViS2l0LzUzNy4zNiAoS0hUTUwsIGxpa2UgR2Vja28pIFZlcnNpb24vNC4wIENocm9tZS85Mi4wLjQ1MTUuMTA1IE1vYmlsZSBTYWZhcmkvNTM3LjM2fVwiLFwiY29sX3R5cGVcIjpcIm1vdmllXzNcIixcImZpbmRfcnVsZVwiOlwianM6XFxuY29uc3QgUUlOR19USVRMRSA9IGdldE15VmFyKCdteUNvbGxlY3Rpb24nKVxcbnZhciBteUNvbGxfZWwgPSBbXVxcbmV2YWwoSlNPTi5wYXJzZShmZXRjaCgnaGlrZXI6Ly9wYWdlL2hpamFja0Vudj9ydWxlPScgKyBRSU5HX1RJVExFKSkucnVsZSlcXG5cXG5pZiAoIWlzSW5kZXgpIHtcXG4gICAgaWYgKHBhZ2VUaXRsZSkgc2V0UGFnZVRpdGxlKHBhZ2VUaXRsZSlcXG4gICAgc2V0TGFzdENoYXB0ZXJSdWxlKG9yaVJVTEUubGFzdF9jaGFwdGVyX3J1bGUpXFxuICAgIE1ZX1BBUkFNUyA9IE1ZX1JVTEUucGFyYW1zXFxufSBlbHNlIGlmIChNWV9QQUdFID09IDEpIHtcXG4gICAgdGFiSGVhZGVyLmxvYWQobXlDb2xsX2VsKVxcbiAgICBpZiAoUlVMRS5zZWFyY2hfdXJsKSBteUNvbGxfZWwucHVzaCh7XFxuICAgICAgICB0aXRsZTogXFxcIuaQnOe0olxcXCIsXFxuICAgICAgICBkZXNjOiBcXFwi6L+Z5piv6L275ZCI6ZuG55qE5pCc57Si5ZOmfn5cXFwiLFxcbiAgICAgICAgdXJsOiAnXFxcImhpa2VyOi8vc2VhcmNoP3M9XFxcIitpbnB1dCcsXFxuICAgICAgICBleHRyYToge1xcbiAgICAgICAgICAgIHJ1bGVzOiAkLnRvU3RyaW5nKChRSU5HX1RJVExFLCB0aXRsZSkgPT4ge1xcbiAgICAgICAgICAgICAgICBsZXQgcnVsZXMgPSAkLnJlcXVpcmUoJ2hpa2VyOi8vcGFnZS9kYXRhTG9hZD9ydWxlPScgKyBRSU5HX1RJVExFKVxcbiAgICAgICAgICAgICAgICBydWxlcyA9IFtydWxlcy5maW5kKCh2KSA9PiB2LnRpdGxlID09IHRpdGxlKV1cXG4gICAgICAgICAgICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHJ1bGVzKVxcbiAgICAgICAgICAgIH0sIFFJTkdfVElUTEUsIFJVTEUudGl0bGUpLFxcbiAgICAgICAgICAgIGRlZmF1bHRWYWx1ZTogZ2V0TXlWYXIoJ3NlYXJjaEtleScsICcnKSxcXG4gICAgICAgICAgICBvbkNoYW5nZTogXFxcInB1dE15VmFyKCdzZWFyY2hLZXknLGlucHV0KVxcXCJcXG4gICAgICAgIH0sXFxuICAgICAgICBjb2xfdHlwZTogXFxcImlucHV0XFxcIixcXG4gICAgfSlcXG59XFxuLy8g5q2j5paH6Kej5p6QXFxudmFyIHtcXG4gICAgcGFyYW1IYW5kbGUsXFxuICAgIHJ1blByZVJ1bGUsXFxuICAgIGdlbkV4VXJsLFxcbiAgICBoaWphY2tMYXp5UnVsZVxcbn0gPSAkLnJlcXVpcmUoJ2hpa2VyOi8vcGFnZS9mdW5jVG9vbHM/cnVsZT0nICsgUUlOR19USVRMRSlcXG5ydW5QcmVSdWxlKG9yaVJVTEUucHJlUnVsZSlcXG5pZiAoTVlfUlVMRS5maW5kX3J1bGUuc3RhcnRzV2l0aCgnanM6JykpIHtcXG4gICAgbGV0IHsgaGlqYWNrRWwgfSA9ICQucmVxdWlyZSgnaGlrZXI6Ly9wYWdlL2Z1bmNUb29scz9ydWxlPScgKyBRSU5HX1RJVExFKVxcbiAgICBzZXRSZXN1bHQgPSBmdW5jdGlvbihwYXJhbTAsIHBhcmFtMSwgcGFyYW0yLCBwYXJhbTMpIHtcXG4gICAgICAgIHBhcmFtMSA9IENBTExCQUNLX0tFWVxcbiAgICAgICAgcGFyYW0yID0gTVlfUlVMRVxcbiAgICAgICAgcGFyYW0zID0gTVlfVFlQRVxcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkocGFyYW0wLmRhdGEpKSBwYXJhbTAgPSBwYXJhbTAuZGF0YVxcbiAgICAgICAgQXJyYXkucHJvdG90eXBlLnB1c2guYXBwbHkobXlDb2xsX2VsLCBwYXJhbTAubWFwKGhpamFja0VsKSlcXG4gICAgICAgIG1ldGhvZF9zZXRSZXN1bHQuaW52b2tlKGphdmFDb250ZXh0LCBteUNvbGxfZWwsIHBhcmFtMSwgcGFyYW0yLCBwYXJhbTMpXFxuICAgIH1cXG4gICAgc2V0SG9tZVJlc3VsdCA9IHNldFJlc3VsdFxcbiAgICBzZXRTZWFyY2hSZXN1bHQgPSBzZXRSZXN1bHRcXG5cXG4gICAgZXZhbChNWV9SVUxFLmZpbmRfcnVsZS5zbGljZSgzKSlcXG59IGVsc2Uge1xcbiAgICBsZXQgeyBydW5Db2RlIH0gPSAkLnJlcXVpcmUoJ2hpa2VyOi8vcGFnZS9mdW5jVG9vbHM/cnVsZT0nICsgUUlOR19USVRMRSksXFxuICAgICAgICBbXywgZmluZFJ1bGUsIGRldGFpbEZpbmRSdWxlXSA9IE1ZX1JVTEUuZmluZF9ydWxlLm1hdGNoKC9eKFtcXFxcc1xcXFxTXSo/KSg/Oj09PihbXFxcXHNcXFxcU10qKSk/JC8pXFxuICAgIGZpbmRSdWxlID0gZmluZFJ1bGUuc3BsaXQoJzsnKVxcbiAgICBwYXJzZURvbUZvckFycmF5KGdldFJlc0NvZGUoKSwgZmluZFJ1bGUuc2hpZnQoKSkuZm9yRWFjaCgoZGF0YSkgPT4ge1xcbiAgICAgICAgbGV0IFt0aXRsZSwgaW1nLCBkZXNjLCB1cmxdID0gZmluZFJ1bGUubWFwKCh2LCBpKSA9PiB7XFxuICAgICAgICAgICAgICAgIHRyeSB7XFxuICAgICAgICAgICAgICAgICAgICBpZiAodiA9PSAnKicpIHJldHVybiAnJ1xcbiAgICAgICAgICAgICAgICAgICAgZWxzZSB2ID0gKGkgPT0gMSB8fCBpID09IDMpID9cXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJzZURvbShkYXRhLCB2KSA6XFxuICAgICAgICAgICAgICAgICAgICAgICAgcGFyc2VEb21Gb3JIdG1sKGRhdGEsIHYpXFxuICAgICAgICAgICAgICAgICAgICBpZiAoaSAhPSAzKSB2ID0gcnVuQ29kZSh2KVxcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHZcXG4gICAgICAgICAgICAgICAgfSBjYXRjaCAoZSkgeyByZXR1cm4gJycgfVxcbiAgICAgICAgICAgIH0pLFxcbiAgICAgICAgICAgIHJlcyA9IHtcXG4gICAgICAgICAgICAgICAgdGl0bGU6IHRpdGxlLCB1cmw6IHVybCxcXG4gICAgICAgICAgICAgICAgZGVzYzogZGVzYywgaW1nOiBpbWcsXFxuICAgICAgICAgICAgICAgIGNvbF90eXBlOiBNWV9SVUxFLmNvbF90eXBlXFxuICAgICAgICAgICAgfVxcbiAgICAgICAgaWYgKHJlcy51cmwpIHtcXG4gICAgICAgICAgICBpZiAocmVzLnVybC5pbmNsdWRlcygnQGxhenlSdWxlPScpKSB7XFxuICAgICAgICAgICAgICAgIGxldCByZUluZGV4ID0gcmVzLnVybC5pbmRleE9mKCcuanM6JylcXG4gICAgICAgICAgICAgICAgaWYgKHJlSW5kZXggPj0gMCkgcmVzLnVybCA9IHJlcy51cmwuc2xpY2UoMCwgcmVJbmRleCkgKyAnLmpzOicgKyBoaWphY2tMYXp5UnVsZSArICc7JyArIHJlcy51cmwuc2xpY2UocmVJbmRleCArIDQpXFxuICAgICAgICAgICAgfSBlbHNlICBpZiAoZGV0YWlsRmluZFJ1bGUpIHtcXG4gICAgICAgICAgICAgICAgcmVzLmV4dHJhID0ge1xcbiAgICAgICAgICAgICAgICAgICAgdXJsOiBnZW5FeFVybCh1cmwpLFxcbiAgICAgICAgICAgICAgICAgICAgUlVMRTogYmFzZTY0RW5jb2RlKEpTT04uc3RyaW5naWZ5KE9iamVjdC5hc3NpZ24oZ2VuTXlSdWxlKCksIHsgZGV0YWlsX2ZpbmRfcnVsZTogZGV0YWlsRmluZFJ1bGUgfSkpKSxcXG4gICAgICAgICAgICAgICAgICAgIHBhZ2VUaXRsZTogaXNJbmRleCAmJiB0aXRsZVxcbiAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgIHJlcy51cmwgPSAnaGlrZXI6Ly9wYWdlL2ZyYW1lTG9hZD9ydWxlPScgKyBRSU5HX1RJVExFXFxuICAgICAgICAgICAgfSBlbHNlIGlmIChNWV9SVUxFLmRldGFpbF9maW5kX3J1bGUpIHtcXG4gICAgICAgICAgICAgICAgcmVzLmV4dHJhID0ge1xcbiAgICAgICAgICAgICAgICAgICAgdXJsOiBnZW5FeFVybCh1cmwpLFxcbiAgICAgICAgICAgICAgICAgICAgUlVMRTogYmFzZTY0RW5jb2RlKEpTT04uc3RyaW5naWZ5KGdlbk15UnVsZSgpKSksXFxuICAgICAgICAgICAgICAgICAgICBwYWdlVGl0bGU6IGlzSW5kZXggJiYgdGl0bGVcXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICByZXMudXJsID0gJ2hpa2VyOi8vcGFnZS9mcmFtZUxvYWQ/cnVsZT0nICsgUUlOR19USVRMRVxcbiAgICAgICAgICAgIH1cXG4gICAgICAgIH1cXG4gICAgICAgIG15Q29sbF9lbC5wdXNoKHJlcylcXG4gICAgfSlcXG4gICAgc2V0UmVzdWx0KG15Q29sbF9lbClcXG59XFxuXCIsXCJncm91cFwiOlwi4pGg6L275ZCI6ZuGXCIsXCJ1YVwiOlwibW9iaWxlXCIsXCJwcmVSdWxlXCI6XCJwdXRNeVZhcignbXlDb2xsZWN0aW9uJywgTVlfUlVMRS50aXRsZSlcXG5wdXRNeVZhcigncmVtb3RlVXJsJywgJ2h0dHA6Ly9oaWtlci5ub2tpYS5wcmVzcy9oaWtlcnVsZS9kZXYvanNvbl9saXN0P25hbWU9MzI2MTk4MjU3OScpXFxuLy8gXFxuLypcXG4qL1wiLFwicGFnZXNcIjpcIlt7XFxcImNvbF90eXBlXFxcIjpcXFwidGV4dF8xXFxcIixcXFwibmFtZVxcXCI6XFxcIkNsYXNzVGFiXFxcIixcXFwicGF0aFxcXCI6XFxcIkNsYXNzVGFiXFxcIixcXFwicnVsZVxcXCI6XFxcInZhciB7XFxcXG4gICAgUUlOR19USVRMRSwgdGl0bGUsIHVybCxcXFxcbiAgICBjbGFzc19uYW1lLCBjbGFzc191cmwsXFxcXG4gICAgYXJlYV9uYW1lLCBhcmVhX3VybCxcXFxcbiAgICB5ZWFyX25hbWUsIHllYXJfdXJsLFxcXFxuICAgIHNvcnRfbmFtZSwgc29ydF91cmxcXFxcbn0gPSAkLmltcG9ydFBhcmFtXFxcXG5jb25zdCBDbGFzc1RhYiA9IGZ1bmN0aW9uKGNsYXNzQXJyYXksIHBhcmFtcykge1xcXFxuICAgIE9iamVjdC5hc3NpZ24odGhpcywgcGFyYW1zKVxcXFxuICAgIHRoaXMuYXJyID0gY2xhc3NBcnJheS5tYXAodiA9PiB0aGlzLmluaXQodikpXFxcXG4gICAgdGhpcy5zaWduID0gJyQnICsgUUlOR19USVRMRSArICdfJyArICh0aGlzLm5hbWUgfHwgJycpICsgJ18nXFxcXG4gICAgdGhpcy5jb2xvciA9IHRoaXMuY29sb3IgfHwgJyMxMmI2NjgnXFxcXG4gICAgdGhpcy5ib3VuZGFyeSA9IHRoaXMuYm91bmRhcnkgfHwgJ2JsYW5rX2Jsb2NrJ1xcXFxufVxcXFxuQ2xhc3NUYWIucHJvdG90eXBlID0ge1xcXFxuICAgIGNvbnN0cnVjdG9yOiBDbGFzc1RhYixcXFxcbiAgICBsb2FkKGVsKSB7XFxcXG4gICAgICAgIGxldCBmb2xkZWQgPSB0aGlzLmZvbGQgJiYgZ2V0VmFyKCckZm9sZF8nICsgdGhpcy5zaWduLCAnJylcXFxcbiAgICAgICAgaWYgKHRoaXMuYXJyLmxlbmd0aCA+IDEgJiYgdGhpcy5mb2xkKSBlbC5wdXNoKHtcXFxcbiAgICAgICAgICAgIHRpdGxlOiAn4oCc4oCc4oCd4oCdJyArIChmb2xkZWQgPyAn4pa2JyA6ICfilrwnKS5mb250Y29sb3IoJyMwNDllZmYnKSxcXFxcbiAgICAgICAgICAgIHVybDogJCgnI25vTG9hZGluZyMnKS5sYXp5UnVsZSgoc2lnbiwgZm9sZGVkKSA9PiB7XFxcXG4gICAgICAgICAgICAgICAgcHV0VmFyKCckZm9sZF8nICsgc2lnbiwgZm9sZGVkID8gJycgOiAnVCcpXFxcXG4gICAgICAgICAgICAgICAgcmVmcmVzaFBhZ2UoZmFsc2UpXFxcXG4gICAgICAgICAgICAgICAgcmV0dXJuICdoaWtlcjovL2VtcHR5J1xcXFxuICAgICAgICAgICAgfSwgdGhpcy5zaWduLCBmb2xkZWQpLFxcXFxuICAgICAgICAgICAgY29sX3R5cGU6ICdzY3JvbGxfYnV0dG9uJ1xcXFxuICAgICAgICB9KVxcXFxuICAgICAgICBsZXQgYXJyID0gZm9sZGVkID8gW3RoaXMuYXJyWzBdXSA6IHRoaXMuYXJyXFxcXG4gICAgICAgIGFyci5mb3JFYWNoKCh2KSA9PiB7XFxcXG4gICAgICAgICAgICBsZXQgeyBpZCwgY2xhc3NfbmFtZSwgY2xhc3NfdXJsIH0gPSB2LFxcXFxuICAgICAgICAgICAgc2VsZWN0ZWQgPSBKU09OLnN0cmluZ2lmeSh0aGlzLmdldENsYXNzKGlkKSlcXFxcbiAgICAgICAgICAgIGNsYXNzX25hbWUuZm9yRWFjaCgobmFtZSwgaSkgPT4ge1xcXFxuICAgICAgICAgICAgICAgIGxldCB1cmwgPSBjbGFzc191cmxbaV0sXFxcXG4gICAgICAgICAgICAgICAgICAgIG5vdyA9IEpTT04uc3RyaW5naWZ5KHsgbmFtZTogbmFtZSwgdXJsOiB1cmwgfSlcXFxcbiAgICAgICAgICAgICAgICBlbC5wdXNoKHtcXFxcbiAgICAgICAgICAgICAgICAgICAgdGl0bGU6IHNlbGVjdGVkID09IG5vdyA/ICfigJzigJzigJ3igJ0nICsgbmFtZS5mb250Y29sb3IodGhpcy5jb2xvcikuYm9sZCgpIDogbmFtZSxcXFxcbiAgICAgICAgICAgICAgICAgICAgdXJsOiBzZWxlY3RlZCA9PSBub3cgPyAnaGlrZXI6Ly9lbXB0eScgOiAkKCcjbm9Mb2FkaW5nIycpLmxhenlSdWxlKChzaWduLCBpZCwgbm93KSA9PiB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICBwdXRWYXIoc2lnbiArIGlkLCBub3cpXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICByZWZyZXNoUGFnZShmYWxzZSlcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnaGlrZXI6Ly9lbXB0eSdcXFxcbiAgICAgICAgICAgICAgICAgICAgfSwgdGhpcy5zaWduLCBpZCwgbm93KSxcXFxcbiAgICAgICAgICAgICAgICAgICAgY29sX3R5cGU6ICdzY3JvbGxfYnV0dG9uJ1xcXFxuICAgICAgICAgICAgICAgIH0pXFxcXG4gICAgICAgICAgICB9KVxcXFxuICAgICAgICAgICAgZWwucHVzaCh7IGNvbF90eXBlOiB0aGlzLmJvdW5kYXJ5IH0pXFxcXG4gICAgICAgIH0pXFxcXG4gICAgfSxcXFxcbiAgICBpbml0KGNsYXNzT2JqZWN0KSB7XFxcXG4gICAgICAgIGlmICh0eXBlb2YgY2xhc3NPYmplY3QuY2xhc3NfbmFtZSA9PSAnc3RyaW5nJylcXFxcbiAgICAgICAgICAgIGNsYXNzT2JqZWN0LmNsYXNzX25hbWUgPSBjbGFzc09iamVjdC5jbGFzc19uYW1lLnNwbGl0KCcmJylcXFxcbiAgICAgICAgaWYgKHR5cGVvZiBjbGFzc09iamVjdC5jbGFzc191cmwgPT0gJ3N0cmluZycpXFxcXG4gICAgICAgICAgICBjbGFzc09iamVjdC5jbGFzc191cmwgPSBjbGFzc09iamVjdC5jbGFzc191cmwuc3BsaXQoJyYnKS5tYXAoKHYpID0+IHYudHJpbSgpKVxcXFxuICAgICAgICByZXR1cm4gY2xhc3NPYmplY3RcXFxcbiAgICB9LFxcXFxuICAgIHB1c2goY2xhc3NPYmplY3QpIHtcXFxcbiAgICAgICAgdGhpcy5hcnIucHVzaCh0aGlzLmluaXQoY2xhc3NPYmplY3QpKVxcXFxuICAgIH0sXFxcXG4gICAgZ2V0Q2xhc3MoaWQpIHtcXFxcbiAgICAgICAgbGV0IGRlZmF1bHRDbGFzcyA9IHRoaXMuYXJyLmZpbmQoaXRlbSA9PiBpdGVtLmlkID09IGlkKVxcXFxuICAgICAgICBkZWZhdWx0Q2xhc3MgPSBKU09OLnN0cmluZ2lmeShkZWZhdWx0Q2xhc3MgPyB7XFxcXG4gICAgICAgICAgICBuYW1lOiBkZWZhdWx0Q2xhc3MuY2xhc3NfbmFtZVswXSxcXFxcbiAgICAgICAgICAgIHVybDogZGVmYXVsdENsYXNzLmNsYXNzX3VybFswXVxcXFxuICAgICAgICB9IDogeyBuYW1lOiAgJ2Nhbm5vdCBmaW5kIGlkOiAnICsgaWQgKyAnIGluIGNsYXNzVGFiOiAnICsgdGhpcy5zaWduLCB1cmw6ICcnfSlcXFxcbiAgICAgICAgcmV0dXJuIEpTT04ucGFyc2UoZ2V0VmFyKHRoaXMuc2lnbiArIGlkLCBkZWZhdWx0Q2xhc3MpKVxcXFxuICAgIH0sXFxcXG4gICAgc2V0VXJsKHVybCkge1xcXFxuICAgICAgICByZXR1cm4gdXJsLnJlcGxhY2UoL1xcXFxcXFxcJFxcXFxcXFxceyhbXn1dKilcXFxcXFxcXH0vZywgKF8sIGlkKSA9PiB0aGlzLmdldENsYXNzKGlkKS51cmwpXFxcXG4gICAgfVxcXFxufVxcXFxuLy8g55Sf5oiQ5aS06YOo5YiG57G7XFxcXG5sZXQgZnlBbGwgPSB1cmwuaW5jbHVkZXMoJ2Z5QWxsJyksXFxcXG4gICAgdGFiSGVhZGVyID0gW11cXFxcbmlmIChjbGFzc19uYW1lKSB0YWJIZWFkZXIucHVzaCh7XFxcXG4gICAgaWQ6IGZ5QWxsID8gJ2Z5QWxsJyA6ICdmeWNsYXNzJyxcXFxcbiAgICBjbGFzc19uYW1lOiBjbGFzc19uYW1lLFxcXFxuICAgIGNsYXNzX3VybDogY2xhc3NfdXJsXFxcXG59KVxcXFxuaWYgKGFyZWFfbmFtZSkgdGFiSGVhZGVyLnB1c2goe1xcXFxuICAgIGlkOiBmeUFsbCA/ICdmeUFsbCcgOiAnZnlhcmVhJyxcXFxcbiAgICBjbGFzc19uYW1lOiBhcmVhX25hbWUsXFxcXG4gICAgY2xhc3NfdXJsOiBhcmVhX3VybFxcXFxufSlcXFxcbmlmICh5ZWFyX25hbWUpIHRhYkhlYWRlci5wdXNoKHtcXFxcbiAgICBpZDogZnlBbGwgPyAnZnlBbGwnIDogJ2Z5eWVhcicsXFxcXG4gICAgY2xhc3NfbmFtZTogeWVhcl9uYW1lLFxcXFxuICAgIGNsYXNzX3VybDogeWVhcl91cmxcXFxcbn0pXFxcXG5pZiAoc29ydF9uYW1lKSB0YWJIZWFkZXIucHVzaCh7XFxcXG4gICAgaWQ6IGZ5QWxsID8gJ2Z5QWxsJyA6ICdmeXNvcnQnLFxcXFxuICAgIGNsYXNzX25hbWU6IHNvcnRfbmFtZSxcXFxcbiAgICBjbGFzc191cmw6IHNvcnRfdXJsXFxcXG59KVxcXFxuJC5leHBvcnRzID0ge1xcXFxuICAgIGZ5QWxsOiBmeUFsbCxcXFxcbiAgICB0YWJIZWFkZXI6IG5ldyBDbGFzc1RhYih0YWJIZWFkZXIsIHsgbmFtZTogdGl0bGUsIGZvbGQ6IHJlYWRGaWxlKCd0YWJGb2xkJyksIH0pXFxcXG59XFxcXG5cXFwifSx7XFxcImNvbF90eXBlXFxcIjpcXFwiaWNvbl8yX3JvdW5kXFxcIixcXFwibmFtZVxcXCI6XFxcIuiuvue9rlxcXCIsXFxcInBhdGhcXFwiOlxcXCJDb25maWdcXFwiLFxcXCJydWxlXFxcIjpcXFwianM6XFxcXG5hZGRMaXN0ZW5lcignb25DbG9zZScsICdjbGVhck15VmFyKFxcXFxcXFwic29ydEZsYWdcXFxcXFxcIik7cmVmcmVzaFBhZ2UoKScpXFxcXG5zZXRQYWdlVGl0bGUoJ+KamSDovbvlkIjpm4borr7nva4g4pqZJylcXFxcbmNvbnN0IFFJTkdfVElUTEUgPSBnZXRNeVZhcignbXlDb2xsZWN0aW9uJyksXFxcXG4gICAgdXJsID0gZ2V0TXlWYXIoJ3JlbW90ZVVybCcpXFxcXG5sZXQgZGF0YSA9ICQucmVxdWlyZSgnaGlrZXI6Ly9wYWdlL2RhdGFMb2FkP3J1bGU9JyArIFFJTkdfVElUTEUsIHRydWUpLFxcXFxuICAgIGVsID0gW3tcXFxcbiAgICAgICAgdGl0bGU6ICc8Yj4g5riF6Zmk57yT5a2Y77yM56uL5Y2z5pu05pawIDxzbWFsbD4g77yI5Z+65LqO6L+c56iL5LuT5bqT77yM5LiN6KaB6aKR57mB54K55Ye777yJJyxcXFxcbiAgICAgICAgdXJsOiAkKCcjbm9Mb2FkaW5nIycpLmxhenlSdWxlKCh1cmwpID0+IHtcXFxcbiAgICAgICAgICAgIGlmICh1cmwuc3RhcnRzV2l0aCgnaGlrZXI6Ly8nKSB8fCB1cmwuc3RhcnRzV2l0aCgnZmlsZTovLycpKVxcXFxuICAgICAgICAgICAgICAgIHJldHVybiAndG9hc3Q6Ly/ku5PlupPkuLrmnKzlnLDmlofku7bvvIzkuI3kvJrov5vooYznvJPlrZjvvIzmnKzlip/og73kuZ/ml6DmlYgnXFxcXG4gICAgICAgICAgICBkZWxldGVDYWNoZSh1cmwpXFxcXG4gICAgICAgICAgICBiYWNrKGZhbHNlKVxcXFxuICAgICAgICAgICAgcmV0dXJuICd0b2FzdDovL+W3suabtOaWsCdcXFxcbiAgICAgICAgfSwgdXJsKSxcXFxcbiAgICAgICAgaW1nOiAnaGlrZXI6Ly9pbWFnZXMvaWNvbjQnLFxcXFxuICAgICAgICBjb2xfdHlwZTogJ2F2YXRhcidcXFxcbiAgICB9XSxcXFxcbiAgICB1cGRhdGVJbnRlcnZhbCA9IHJlYWRGaWxlKCd1cGRhdGVJbnRlcnZhbCcpIHx8ICcxJyxcXFxcbiAgICBuZXdXaW5kb3cgPSByZWFkRmlsZSgnbmV3V2luZG93JyksXFxcXG4gICAgdGFiRm9sZCA9IHJlYWRGaWxlKCd0YWJGb2xkJyksXFxcXG4gICAgZGlzYWJsZUN1c3RvbSA9IHJlYWRGaWxlKCdkaXNhYmxlQ3VzdG9tJyksXFxcXG4gICAgZWRpdE1vZGUgPSBkaXNhYmxlQ3VzdG9tID8gJ+WvvOWFpea1t+mYlCcgOiBnZXRNeVZhcignZWRpdE1vZGUnLCAn5ZCv55SoL+emgeeUqCcpXFxcXG5cXFxcbmVsLnB1c2goe1xcXFxuICAgIHRpdGxlOiAnICDwn5KhIOabtOaWsOmikeeOhzogJyArICh1cGRhdGVJbnRlcnZhbCA9PSAwID8gJ+aJi+WKqCcgOiB1cGRhdGVJbnRlcnZhbCArICflpKknKSArICcgICcsXFxcXG4gICAgdXJsOiAkKHVwZGF0ZUludGVydmFsLCAn6L6T5YWl5pu05paw6Ze06ZqU77yI5aSp77yJ77yM5Li6MOWImeaJi+WKqOabtOaWsFxcXFxcXFxcbuacrOWcsOaWh+S7tumTvuaOpeaXoOaViCcpLmlucHV0KCgpID0+IHtcXFxcbiAgICAgICAgaW5wdXQgPSBwYXJzZUludChpbnB1dClcXFxcbiAgICAgICAgaWYgKE51bWJlci5pc05hTihpbnB1dCkpIGlucHV0ID0gMVxcXFxuICAgICAgICBlbHNlIGlmIChpbnB1dCA8IDEpIGlucHV0ID0gMFxcXFxuICAgICAgICBzYXZlRmlsZSgndXBkYXRlSW50ZXJ2YWwnLCBpbnB1dC50b1N0cmluZygpKVxcXFxuICAgICAgICByZWZyZXNoUGFnZSgpXFxcXG4gICAgICAgIHJldHVybiAnaGlrZXI6Ly9lbXB0eSdcXFxcbiAgICB9KSxcXFxcbiAgICBjb2xfdHlwZTogJ3Njcm9sbF9idXR0b24nXFxcXG59LCB7XFxcXG4gICAgdGl0bGU6ICcgIPCflqUg54us56uL6aaW6aG1OiAnICsgKG5ld1dpbmRvdyA/ICfmmK8nIDogJ+WQpicpICsgJyAgJyxcXFxcbiAgICB1cmw6ICQoJyNub0xvYWRpbmcjJykubGF6eVJ1bGUoKG5ld1dpbmRvdykgPT4ge1xcXFxuICAgICAgICBzYXZlRmlsZSgnbmV3V2luZG93JywgbmV3V2luZG93ID8gJycgOiAnVCcpXFxcXG4gICAgICAgIHJlZnJlc2hQYWdlKClcXFxcbiAgICAgICAgcmV0dXJuICdoaWtlcjovL2VtcHR5J1xcXFxuICAgIH0sIG5ld1dpbmRvdyksXFxcXG4gICAgY29sX3R5cGU6ICdzY3JvbGxfYnV0dG9uJ1xcXFxufSwge1xcXFxuICAgIHRpdGxlOiAnICDwn5KgIOWIhuexu+aKmOWPoDogJyArICh0YWJGb2xkID8gJ+aYrycgOiAn5ZCmJykgKyAnICAnLFxcXFxuICAgIHVybDogJCgnI25vTG9hZGluZyMnKS5sYXp5UnVsZSgodGFiRm9sZCkgPT4ge1xcXFxuICAgICAgICBzYXZlRmlsZSgndGFiRm9sZCcsIHRhYkZvbGQgPyAnJyA6ICdUJylcXFxcbiAgICAgICAgcmVmcmVzaFBhZ2UoKVxcXFxuICAgICAgICByZXR1cm4gJ2hpa2VyOi8vZW1wdHknXFxcXG4gICAgfSwgdGFiRm9sZCksXFxcXG4gICAgY29sX3R5cGU6ICdzY3JvbGxfYnV0dG9uJ1xcXFxufSwge1xcXFxuICAgIHRpdGxlOiAnICDwn5K8IOWkh+S7veaBouWkjSAgJyxcXFxcbiAgICB1cmw6ICQoWyflpIfku70nLCAn5oGi5aSNJ10sIDEpLnNlbGVjdCgoUUlOR19USVRMRSwgdXBkYXRlSW50ZXJ2YWwsIG5ld1dpbmRvdywgdGFiRm9sZCwgZGlzYWJsZUN1c3RvbSkgPT4ge1xcXFxuICAgICAgICBsZXQgdXJsID0gZ2V0TXlWYXIoJ3JlbW90ZVVybCcpXFxcXG4gICAgICAgIGlmICghdXJsLnN0YXJ0c1dpdGgoJ2hpa2VyOi8vJykgJiYgIXVybC5zdGFydHNXaXRoKCdmaWxlOi8vJykpXFxcXG4gICAgICAgICAgICB1cmwgPSAnaGlrZXI6Ly9maWxlcy9saWJzLycgKyBtZDUodXJsKSArICcuanMnXFxcXG4gICAgICAgIGVsc2UgaWYgKHVybC5zdGFydHNXaXRoKCdoaWtlcjovL3BhZ2UvJykpIHVybCA9ICdoaWtlcjovL2VtcHR5J1xcXFxuICAgICAgICBpZiAoaW5wdXQgPT0gJ+Wkh+S7vScpIHJldHVybiAkKCdoaWtlcjovL2ZpbGVzL3RtcC8nICsgUUlOR19USVRMRSArICdfYmFja3VwLmpzb24nLCAn6L6T5YWl5aSH5Lu96Lev5b6EJylcXFxcbiAgICAgICAgICAgIC5pbnB1dCgodXJsLCB1cGRhdGVJbnRlcnZhbCwgbmV3V2luZG93LCB0YWJGb2xkLCBkaXNhYmxlQ3VzdG9tKSA9PiB7XFxcXG4gICAgICAgICAgICAgICAgbGV0IHJ1bGVzID0gcmVxdWVzdCh1cmwpLFxcXFxuICAgICAgICAgICAgICAgICAgICBjdXN0b21EYXRhID0gcmVhZEZpbGUoJ2N1c3RvbURhdGEnKVxcXFxuICAgICAgICAgICAgICAgIHdyaXRlRmlsZShpbnB1dCwgSlNPTi5zdHJpbmdpZnkoe1xcXFxuICAgICAgICAgICAgICAgICAgICB1cGRhdGVJbnRlcnZhbDogdXBkYXRlSW50ZXJ2YWwsXFxcXG4gICAgICAgICAgICAgICAgICAgIG5ld1dpbmRvdzogbmV3V2luZG93LFxcXFxuICAgICAgICAgICAgICAgICAgICB0YWJGb2xkOiB0YWJGb2xkLFxcXFxuICAgICAgICAgICAgICAgICAgICBkaXNhYmxlQ3VzdG9tOiBkaXNhYmxlQ3VzdG9tLFxcXFxuICAgICAgICAgICAgICAgICAgICBjdXN0b21EYXRhOiBjdXN0b21EYXRhLFxcXFxuICAgICAgICAgICAgICAgICAgICBydWxlczogcnVsZXNcXFxcbiAgICAgICAgICAgICAgICB9KSlcXFxcbiAgICAgICAgICAgICAgICByZXR1cm4gJ3RvYXN0Oi8v5bey5aSH5Lu977yM5rOo5oSP6Iul5LuT5bqT5Li65a2Q6aG16Z2i5YiZ5LiN5aSH5Lu9J1xcXFxuICAgICAgICAgICAgfSwgdXJsLCB1cGRhdGVJbnRlcnZhbCwgbmV3V2luZG93LCB0YWJGb2xkLCBkaXNhYmxlQ3VzdG9tKVxcXFxuICAgICAgICBlbHNlIHJldHVybiAkKCdoaWtlcjovL2ZpbGVzL3RtcC8nICsgUUlOR19USVRMRSArICdfYmFja3VwLmpzb24nLCAn6L6T5YWl5aSH5Lu96Lev5b6EJykuaW5wdXQoKHVybCkgPT4ge1xcXFxuICAgICAgICAgICAgbGV0IHsgdXBkYXRlSW50ZXJ2YWwsIG5ld1dpbmRvdywgdGFiRm9sZCwgZGlzYWJsZUN1c3RvbSwgY3VzdG9tRGF0YSwgcnVsZXMgfSA9IEpTT04ucGFyc2UocmVxdWVzdChpbnB1dCkpXFxcXG4gICAgICAgICAgICBzYXZlRmlsZSgndXBkYXRlSW50ZXJ2YWwnLCB1cGRhdGVJbnRlcnZhbClcXFxcbiAgICAgICAgICAgIHNhdmVGaWxlKCduZXdXaW5kb3cnLCBuZXdXaW5kb3cpXFxcXG4gICAgICAgICAgICBzYXZlRmlsZSgndGFiRm9sZCcsIHRhYkZvbGQpXFxcXG4gICAgICAgICAgICBzYXZlRmlsZSgnZGlzYWJsZUN1c3RvbScsIGRpc2FibGVDdXN0b20pXFxcXG4gICAgICAgICAgICBzYXZlRmlsZSgnY3VzdG9tRGF0YScsIGN1c3RvbURhdGEpXFxcXG4gICAgICAgICAgICBpZiAocnVsZXMpIHdyaXRlRmlsZSh1cmwsIHJ1bGVzKVxcXFxuICAgICAgICAgICAgcmVmcmVzaFBhZ2UoKVxcXFxuICAgICAgICAgICAgcmV0dXJuICd0b2FzdDovL+W3suaBouWkje+8jOWmguaenOS4jeaDs+WQjOatpei/nOeoi+S7k+W6k++8jOWPr+S7peiuvue9ruabtOaWsOmikeeOh+S4uuaJi+WKqCdcXFxcbiAgICAgICAgfSwgdXJsKVxcXFxuICAgIH0sIFFJTkdfVElUTEUsIHVwZGF0ZUludGVydmFsLCBuZXdXaW5kb3csIHRhYkZvbGQsIGRpc2FibGVDdXN0b20pLFxcXFxuICAgIGNvbF90eXBlOiAnc2Nyb2xsX2J1dHRvbidcXFxcbn0sIHtcXFxcbiAgICB0aXRsZTogJ+KAnOKAnOKAneKAnTxmb250IGNvbG9yPVxcXFxcXFwiIzY2NjY2NlxcXFxcXFwiPjxzbWFsbD7nibnliKvpuKPosKLvvIzlsI/nqIvluo/mj5DkvpvogIXvvJpcXFxcXFxcXG4nICtcXFxcbiAgICAgICAgZGF0YS5yZWR1Y2UoKHNlbGYsIHYpID0+IHYuYXV0aG9yID8gc2VsZi5jb25jYXQodi5hdXRob3Iuc3BsaXQoJyYnKSkgOiBzZWxmLCBbXSlcXFxcbiAgICAgICAgLmZpbHRlcigodiwgaSwgYXJyKSA9PiB2ICYmIGFyci5pbmRleE9mKHYpID09IGkpLmpvaW4oJ+OAgScpLFxcXFxuICAgIHVybDogJ2hpa2VyOi8vZW1wdHknLFxcXFxuICAgIGNvbF90eXBlOiAndGV4dF9jZW50ZXJfMSdcXFxcbn0pXFxcXG5cXFxcbmVsLnB1c2goeyBjb2xfdHlwZTogJ2xpbmUnIH0sIHtcXFxcbiAgICB0aXRsZTogJ+KAnOKAnOKAneKAnScgKyAn8J+TnScuc21hbGwoKSArICcmbmJzcCDovbvlkIjpm4boh6rlrprkuYkgJm5ic3AnLmJvbGQoKS5mb250Y29sb3IoJyM3NTc1NzUnKSArIChkaXNhYmxlQ3VzdG9tID8gJ+KdjCcgOiAn4q2VJykuc21hbGwoKSxcXFxcbiAgICB1cmw6ICQoWyhkaXNhYmxlQ3VzdG9tID8gJ+WQr+eUqCcgOiAn56aB55SoJykgKyAn5ZCI6ZuG6Ieq5a6a5LmJJywgJ+a4hemZpOiHquWumuS5ieaVsOaNricsICfnvJbovpFKU09OJ10sIDEpLnNlbGVjdCgoKSA9PiB7XFxcXG4gICAgICAgIHN3aXRjaCAoaW5wdXQuc2xpY2UoMCwgMikpIHtcXFxcbiAgICAgICAgICAgIGNhc2UgJ+a4hemZpCc6XFxcXG4gICAgICAgICAgICAgICAgZGVsZXRlRmlsZSgnY3VzdG9tRGF0YScpXFxcXG4gICAgICAgICAgICAgICAgYnJlYWtcXFxcbiAgICAgICAgICAgIGNhc2UgJ+WQr+eUqCc6XFxcXG4gICAgICAgICAgICAgICAgc2F2ZUZpbGUoJ2Rpc2FibGVDdXN0b20nLCAnJylcXFxcbiAgICAgICAgICAgICAgICBicmVha1xcXFxuICAgICAgICAgICAgY2FzZSAn56aB55SoJzpcXFxcbiAgICAgICAgICAgICAgICBzYXZlRmlsZSgnZGlzYWJsZUN1c3RvbScsICdUJylcXFxcbiAgICAgICAgICAgICAgICBpbnB1dCArPSAnXFxcXFxcXFxu5bCP56iL5bqP5ZCv55SoL+emgeeUqOOAgemHjeaWsOaOkuW6j+etieaTjeS9nOWdh+S4jeS8muS9k+eOsOWcqOmmlumhteWwj+eoi+W6j+WIl+ihqOS4rSdcXFxcbiAgICAgICAgICAgICAgICBicmVha1xcXFxuICAgICAgICAgICAgY2FzZSAn57yW6L6RJzpcXFxcbiAgICAgICAgICAgICAgICBsZXQgdXJsID0gZ2V0TXlWYXIoJ3JlbW90ZVVybCcpXFxcXG4gICAgICAgICAgICAgICAgaWYgKCF1cmwuc3RhcnRzV2l0aCgnaGlrZXI6Ly9maWxlcy8nKSAmJiAhdXJsLnN0YXJ0c1dpdGgoJ2ZpbGU6Ly8nKSlcXFxcbiAgICAgICAgICAgICAgICAgICAgdXJsID0gJ2hpa2VyOi8vZmlsZXMvbGlicy8nICsgbWQ1KHVybCkgKyAnLmpzJ1xcXFxuICAgICAgICAgICAgICAgIHJldHVybiAgJ2hpa2VyOi8vcGFnZS9pbnRlcmZhY2Ujbm9SZWZyZXNoIyNub0hpc3RvcnkjI25vUmVjb3JkSGlzdG9yeSM/cnVsZT1KU09O57yW6L6R5ZmoJkpzb249JytiYXNlNjRFbmNvZGUodXJsKVxcXFxuICAgICAgICB9XFxcXG4gICAgICAgIHJlZnJlc2hQYWdlKGZhbHNlKVxcXFxuICAgICAgICByZXR1cm4gJ3RvYXN0Oi8v5beyJyArIGlucHV0XFxcXG4gICAgfSksXFxcXG4gICAgY29sX3R5cGU6ICd0ZXh0X2NlbnRlcl8xJyxcXFxcbiAgICBleHRyYTogeyBsaW5lVmlzaWJsZTogZmFsc2UgfVxcXFxufSk7XFxcXG4oZGlzYWJsZUN1c3RvbSA/IFsn5a+85YWl5rW36ZiUJ10gOiBbJ+WQr+eUqC/npoHnlKgnLCAn6YeN5paw5o6S5bqPJywgJ+abtOaUueWbvuaghycsICflr7zlhaXmtbfpmJQnXSkuZm9yRWFjaCgodikgPT4ge1xcXFxuICAgIGVsLnB1c2goe1xcXFxuICAgICAgICB0aXRsZTogdiA9PSBlZGl0TW9kZSA/ICfigJzigJzigJ3igJ0nICsgdi5ib2xkKCkuZm9udGNvbG9yKCcjMTJiNjY4JykgOiB2LFxcXFxuICAgICAgICB1cmw6IHYgPT0gZWRpdE1vZGUgPyAnaGlrZXI6Ly9lbXB0eScgOiAkKCcjbm9Mb2FkaW5nIycpLmxhenlSdWxlKCh2KSA9PiB7XFxcXG4gICAgICAgICAgICBwdXRNeVZhcignZWRpdE1vZGUnLCB2KVxcXFxuICAgICAgICAgICAgcmVmcmVzaFBhZ2UoZmFsc2UpXFxcXG4gICAgICAgICAgICByZXR1cm4gJ2hpa2VyOi8vZW1wdHknXFxcXG4gICAgICAgIH0sIHYpLFxcXFxuICAgICAgICBjb2xfdHlwZTogJ3Njcm9sbF9idXR0b24nXFxcXG4gICAgfSlcXFxcbn0pO1xcXFxuaWYgKGVkaXRNb2RlID09ICflr7zlhaXmtbfpmJQnKSBlbC5wdXNoKHtcXFxcbiAgICB0aXRsZTogJ+WFqOmDqOWvvOWFpScsXFxcXG4gICAgdXJsOiAn5rW36ZiU6KeG55WM77+laG9tZV9ydWxlX3VybO+/pScgKyAodXJsLnN0YXJ0c1dpdGgoJ2hpa2VyOi8vJykgfHwgdXJsLnN0YXJ0c1dpdGgoJ2ZpbGU6Ly8nKSA/IHVybCA6ICdoaWtlcjovL2ZpbGVzL2xpYnMvJyArIG1kNSh1cmwpICsgJy5qcycpLFxcXFxuICAgIGNvbF90eXBlOiAndGV4dF9jZW50ZXJfMScsXFxcXG4gICAgZXh0cmE6IHsgbGluZVZpc2libGU6IGZhbHNlIH1cXFxcbn0pO1xcXFxuKGRpc2FibGVDdXN0b20gPyBkYXRhIDogSlNPTi5wYXJzZShyZWFkRmlsZSgnY3VzdG9tRGF0YScpIHx8ICdbXScpKS5mb3JFYWNoKCh2LCBpKSA9PiB7XFxcXG4gICAgbGV0IGQgPSB7IHRpdGxlOiB2LnRpdGxlLCBpbWc6IGRhdGFbaV0uaWNvbiB9XFxcXG4gICAgc3dpdGNoIChlZGl0TW9kZSkge1xcXFxuICAgICAgICBjYXNlICflkK/nlKgv56aB55SoJzpcXFxcbiAgICAgICAgICAgIGQudGl0bGUgPSAodi52aXNpYmxlID8gJ/Cfn6IgICcgOiAn8J+UtCAgJykgKyBkLnRpdGxlXFxcXG4gICAgICAgICAgICBkLnVybCA9ICQoJyNub0xvYWRpbmcjJykubGF6eVJ1bGUoKGkpID0+IHtcXFxcbiAgICAgICAgICAgICAgICBsZXQgcnVsZXMgPSBKU09OLnBhcnNlKHJlYWRGaWxlKCdjdXN0b21EYXRhJykgfHwgJ1tdJylcXFxcbiAgICAgICAgICAgICAgICBydWxlc1tpXS52aXNpYmxlID0gIXJ1bGVzW2ldLnZpc2libGVcXFxcbiAgICAgICAgICAgICAgICBzYXZlRmlsZSgnY3VzdG9tRGF0YScsIEpTT04uc3RyaW5naWZ5KHJ1bGVzKSlcXFxcbiAgICAgICAgICAgICAgICByZWZyZXNoUGFnZShmYWxzZSlcXFxcbiAgICAgICAgICAgICAgICByZXR1cm4gJ2hpa2VyOi8vZW1wdHknXFxcXG4gICAgICAgICAgICB9LCBpKVxcXFxuICAgICAgICAgICAgYnJlYWtcXFxcbiAgICAgICAgY2FzZSAn6YeN5paw5o6S5bqPJzpcXFxcbiAgICAgICAgICAgIGxldCBzb3J0RmxhZyA9IHBhcnNlSW50KGdldE15VmFyKCdzb3J0RmxhZycsICctMScpKVxcXFxuICAgICAgICAgICAgZC50aXRsZSA9IChzb3J0RmxhZyA9PSBpID8gJ/CflIMgICcgOiAnJykgKyBkLnRpdGxlXFxcXG4gICAgICAgICAgICBpZiAoc29ydEZsYWcgPT0gLTEpXFxcXG4gICAgICAgICAgICAgICAgZC51cmwgPSAkKCcjbm9Mb2FkaW5nIycpLmxhenlSdWxlKChpKSA9PiB7XFxcXG4gICAgICAgICAgICAgICAgICAgIHB1dE15VmFyKCdzb3J0RmxhZycsIGkudG9TdHJpbmcoKSlcXFxcbiAgICAgICAgICAgICAgICAgICAgcmVmcmVzaFBhZ2UoZmFsc2UpXFxcXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAndG9hc3Q6Ly/pgInmi6nopoHnp7vliqjliLDnmoTkvY3nva4nXFxcXG4gICAgICAgICAgICAgICAgfSwgaSlcXFxcbiAgICAgICAgICAgIGVsc2VcXFxcbiAgICAgICAgICAgICAgICBkLnVybCA9ICQoJyNub0xvYWRpbmcjJykubGF6eVJ1bGUoKG9sZEluZGV4LCBuZXdJbmRleCkgPT4ge1xcXFxuICAgICAgICAgICAgICAgICAgICBsZXQgcnVsZXMgPSBKU09OLnBhcnNlKHJlYWRGaWxlKCdjdXN0b21EYXRhJykgfHwgJ1tdJylcXFxcbiAgICAgICAgICAgICAgICAgICAgcnVsZXMuc3BsaWNlKG5ld0luZGV4LCAwLCBydWxlcy5zcGxpY2Uob2xkSW5kZXgsIDEpWzBdKVxcXFxuICAgICAgICAgICAgICAgICAgICBzYXZlRmlsZSgnY3VzdG9tRGF0YScsIEpTT04uc3RyaW5naWZ5KHJ1bGVzKSlcXFxcbiAgICAgICAgICAgICAgICAgICAgcHV0TXlWYXIoJ3NvcnRGbGFnJywgJy0xJylcXFxcbiAgICAgICAgICAgICAgICAgICAgcmVmcmVzaFBhZ2UoZmFsc2UpXFxcXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAnaGlrZXI6Ly9lbXB0eSdcXFxcbiAgICAgICAgICAgICAgICB9LCBzb3J0RmxhZywgaSlcXFxcbiAgICAgICAgICAgIGJyZWFrXFxcXG4gICAgICAgIGNhc2UgJ+abtOaUueWbvuaghyc6XFxcXG4gICAgICAgICAgICBkLnVybCA9ICQodi5pY29uIHx8ICcnLCAn6L6T5YWl5paw5Zu+5qCH5Zyw5Z2A5oiW6aKc6Imy5Luj56CB77yaJykuaW5wdXQoKGkpID0+IHtcXFxcbiAgICAgICAgICAgICAgICBsZXQgcnVsZXMgPSBKU09OLnBhcnNlKHJlYWRGaWxlKCdjdXN0b21EYXRhJykgfHwgJ1tdJylcXFxcbiAgICAgICAgICAgICAgICBpZiAoaW5wdXQpXFxcXG4gICAgICAgICAgICAgICAgICAgIHJ1bGVzW2ldLmljb24gPSBpbnB1dFxcXFxuICAgICAgICAgICAgICAgIGVsc2VcXFxcbiAgICAgICAgICAgICAgICAgICAgZGVsZXRlIHJ1bGVzW2ldLmljb25cXFxcbiAgICAgICAgICAgICAgICBzYXZlRmlsZSgnY3VzdG9tRGF0YScsIEpTT04uc3RyaW5naWZ5KHJ1bGVzKSlcXFxcbiAgICAgICAgICAgICAgICByZWZyZXNoUGFnZShmYWxzZSlcXFxcbiAgICAgICAgICAgICAgICByZXR1cm4gJ2hpa2VyOi8vZW1wdHknXFxcXG4gICAgICAgICAgICB9LCBpKVxcXFxuICAgICAgICAgICAgYnJlYWtcXFxcbiAgICAgICAgY2FzZSAn5a+85YWl5rW36ZiUJzpcXFxcbiAgICAgICAgICAgIGQudXJsID0gJCgnI25vTG9hZGluZyMnKS5sYXp5UnVsZSgoaSkgPT4ge1xcXFxuICAgICAgICAgICAgICAgIGxldCBkYXRhID0gJC5yZXF1aXJlKCdoaWtlcjovL3BhZ2UvZGF0YUxvYWQ/cnVsZT0nICsgZ2V0TXlWYXIoJ215Q29sbGVjdGlvbicpLCB0cnVlKVxcXFxuICAgICAgICAgICAgICAgIHJldHVybiAncnVsZTovLycgKyBiYXNlNjRFbmNvZGUoSlNPTi5zdHJpbmdpZnkoZGF0YVtpXSkpXFxcXG4gICAgICAgICAgICB9LCBpKVxcXFxuICAgICAgICAgICAgYnJlYWtcXFxcbiAgICB9XFxcXG4gICAgZWwucHVzaChkKVxcXFxufSlcXFxcbnNldFJlc3VsdChlbClcXFxcblxcXCJ9LHtcXFwiY29sX3R5cGVcXFwiOlxcXCJtb3ZpZV8zXFxcIixcXFwibmFtZVxcXCI6XFxcIumhtemdoui9veWFpVxcXCIsXFxcInBhdGhcXFwiOlxcXCJmcmFtZUxvYWRcXFwiLFxcXCJydWxlXFxcIjpcXFwianM6XFxcXG5jb25zdCBRSU5HX1RJVExFID0gZ2V0TXlWYXIoJ215Q29sbGVjdGlvbicpXFxcXG52YXIgbXlDb2xsX2VsID0gW11cXFxcbmV2YWwoSlNPTi5wYXJzZShmZXRjaCgnaGlrZXI6Ly9wYWdlL2hpamFja0Vudj9ydWxlPScgKyBRSU5HX1RJVExFKSkucnVsZSlcXFxcblxcXFxuaWYgKCFpc0luZGV4KSB7XFxcXG4gICAgaWYgKHBhZ2VUaXRsZSkgc2V0UGFnZVRpdGxlKHBhZ2VUaXRsZSlcXFxcbiAgICBzZXRMYXN0Q2hhcHRlclJ1bGUob3JpUlVMRS5sYXN0X2NoYXB0ZXJfcnVsZSlcXFxcbiAgICBNWV9QQVJBTVMgPSBNWV9SVUxFLnBhcmFtc1xcXFxufSBlbHNlIGlmIChNWV9QQUdFID09IDEpIHtcXFxcbiAgICB0YWJIZWFkZXIubG9hZChteUNvbGxfZWwpXFxcXG4gICAgaWYgKFJVTEUuc2VhcmNoX3VybCkgbXlDb2xsX2VsLnB1c2goe1xcXFxuICAgICAgICB0aXRsZTogXFxcXFxcXCLmkJzntKJcXFxcXFxcIixcXFxcbiAgICAgICAgZGVzYzogXFxcXFxcXCLov5nmmK/ovbvlkIjpm4bnmoTmkJzntKLlk6Z+flxcXFxcXFwiLFxcXFxuICAgICAgICB1cmw6ICdcXFxcXFxcImhpa2VyOi8vc2VhcmNoP3M9XFxcXFxcXCIraW5wdXQnLFxcXFxuICAgICAgICBleHRyYToge1xcXFxuICAgICAgICAgICAgcnVsZXM6ICQudG9TdHJpbmcoKFFJTkdfVElUTEUsIHRpdGxlKSA9PiB7XFxcXG4gICAgICAgICAgICAgICAgbGV0IHJ1bGVzID0gJC5yZXF1aXJlKCdoaWtlcjovL3BhZ2UvZGF0YUxvYWQ/cnVsZT0nICsgUUlOR19USVRMRSlcXFxcbiAgICAgICAgICAgICAgICBydWxlcyA9IFtydWxlcy5maW5kKCh2KSA9PiB2LnRpdGxlID09IHRpdGxlKV1cXFxcbiAgICAgICAgICAgICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkocnVsZXMpXFxcXG4gICAgICAgICAgICB9LCBRSU5HX1RJVExFLCBSVUxFLnRpdGxlKSxcXFxcbiAgICAgICAgICAgIGRlZmF1bHRWYWx1ZTogZ2V0TXlWYXIoJ3NlYXJjaEtleScsICcnKSxcXFxcbiAgICAgICAgICAgIG9uQ2hhbmdlOiBcXFxcXFxcInB1dE15VmFyKCdzZWFyY2hLZXknLGlucHV0KVxcXFxcXFwiXFxcXG4gICAgICAgIH0sXFxcXG4gICAgICAgIGNvbF90eXBlOiBcXFxcXFxcImlucHV0XFxcXFxcXCIsXFxcXG4gICAgfSlcXFxcbn1cXFxcbi8vIOato+aWh+ino+aekFxcXFxudmFyIHtcXFxcbiAgICBwYXJhbUhhbmRsZSxcXFxcbiAgICBydW5QcmVSdWxlLFxcXFxuICAgIGdlbkV4VXJsLFxcXFxuICAgIGhpamFja0xhenlSdWxlXFxcXG59ID0gJC5yZXF1aXJlKCdoaWtlcjovL3BhZ2UvZnVuY1Rvb2xzP3J1bGU9JyArIFFJTkdfVElUTEUpXFxcXG5ydW5QcmVSdWxlKG9yaVJVTEUucHJlUnVsZSlcXFxcbmlmIChNWV9SVUxFLmZpbmRfcnVsZS5zdGFydHNXaXRoKCdqczonKSkge1xcXFxuICAgIGxldCB7IGhpamFja0VsIH0gPSAkLnJlcXVpcmUoJ2hpa2VyOi8vcGFnZS9mdW5jVG9vbHM/cnVsZT0nICsgUUlOR19USVRMRSlcXFxcbiAgICBzZXRSZXN1bHQgPSBmdW5jdGlvbihwYXJhbTAsIHBhcmFtMSwgcGFyYW0yLCBwYXJhbTMpIHtcXFxcbiAgICAgICAgcGFyYW0xID0gQ0FMTEJBQ0tfS0VZXFxcXG4gICAgICAgIHBhcmFtMiA9IE1ZX1JVTEVcXFxcbiAgICAgICAgcGFyYW0zID0gTVlfVFlQRVxcXFxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShwYXJhbTAuZGF0YSkpIHBhcmFtMCA9IHBhcmFtMC5kYXRhXFxcXG4gICAgICAgIEFycmF5LnByb3RvdHlwZS5wdXNoLmFwcGx5KG15Q29sbF9lbCwgcGFyYW0wLm1hcChoaWphY2tFbCkpXFxcXG4gICAgICAgIG1ldGhvZF9zZXRSZXN1bHQuaW52b2tlKGphdmFDb250ZXh0LCBteUNvbGxfZWwsIHBhcmFtMSwgcGFyYW0yLCBwYXJhbTMpXFxcXG4gICAgfVxcXFxuICAgIHNldEhvbWVSZXN1bHQgPSBzZXRSZXN1bHRcXFxcbiAgICBzZXRTZWFyY2hSZXN1bHQgPSBzZXRSZXN1bHRcXFxcblxcXFxuICAgIGV2YWwoTVlfUlVMRS5maW5kX3J1bGUuc2xpY2UoMykpXFxcXG59IGVsc2Uge1xcXFxuICAgIGxldCB7IHJ1bkNvZGUgfSA9ICQucmVxdWlyZSgnaGlrZXI6Ly9wYWdlL2Z1bmNUb29scz9ydWxlPScgKyBRSU5HX1RJVExFKSxcXFxcbiAgICAgICAgW18sIGZpbmRSdWxlLCBkZXRhaWxGaW5kUnVsZV0gPSBNWV9SVUxFLmZpbmRfcnVsZS5tYXRjaCgvXihbXFxcXFxcXFxzXFxcXFxcXFxTXSo/KSg/Oj09PihbXFxcXFxcXFxzXFxcXFxcXFxTXSopKT8kLylcXFxcbiAgICBmaW5kUnVsZSA9IGZpbmRSdWxlLnNwbGl0KCc7JylcXFxcbiAgICBwYXJzZURvbUZvckFycmF5KGdldFJlc0NvZGUoKSwgZmluZFJ1bGUuc2hpZnQoKSkuZm9yRWFjaCgoZGF0YSkgPT4ge1xcXFxuICAgICAgICBsZXQgW3RpdGxlLCBpbWcsIGRlc2MsIHVybF0gPSBmaW5kUnVsZS5tYXAoKHYsIGkpID0+IHtcXFxcbiAgICAgICAgICAgICAgICB0cnkge1xcXFxuICAgICAgICAgICAgICAgICAgICBpZiAodiA9PSAnKicpIHJldHVybiAnJ1xcXFxuICAgICAgICAgICAgICAgICAgICBlbHNlIHYgPSAoaSA9PSAxIHx8IGkgPT0gMykgP1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgcGFyc2VEb20oZGF0YSwgdikgOlxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgcGFyc2VEb21Gb3JIdG1sKGRhdGEsIHYpXFxcXG4gICAgICAgICAgICAgICAgICAgIGlmIChpICE9IDMpIHYgPSBydW5Db2RlKHYpXFxcXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB2XFxcXG4gICAgICAgICAgICAgICAgfSBjYXRjaCAoZSkgeyByZXR1cm4gJycgfVxcXFxuICAgICAgICAgICAgfSksXFxcXG4gICAgICAgICAgICByZXMgPSB7XFxcXG4gICAgICAgICAgICAgICAgdGl0bGU6IHRpdGxlLCB1cmw6IHVybCxcXFxcbiAgICAgICAgICAgICAgICBkZXNjOiBkZXNjLCBpbWc6IGltZyxcXFxcbiAgICAgICAgICAgICAgICBjb2xfdHlwZTogTVlfUlVMRS5jb2xfdHlwZVxcXFxuICAgICAgICAgICAgfVxcXFxuICAgICAgICBpZiAocmVzLnVybCkge1xcXFxuICAgICAgICAgICAgaWYgKHJlcy51cmwuaW5jbHVkZXMoJ0BsYXp5UnVsZT0nKSkge1xcXFxuICAgICAgICAgICAgICAgIGxldCByZUluZGV4ID0gcmVzLnVybC5pbmRleE9mKCcuanM6JylcXFxcbiAgICAgICAgICAgICAgICBpZiAocmVJbmRleCA+PSAwKSByZXMudXJsID0gcmVzLnVybC5zbGljZSgwLCByZUluZGV4KSArICcuanM6JyArIGhpamFja0xhenlSdWxlICsgJzsnICsgcmVzLnVybC5zbGljZShyZUluZGV4ICsgNClcXFxcbiAgICAgICAgICAgIH0gZWxzZSAgaWYgKGRldGFpbEZpbmRSdWxlKSB7XFxcXG4gICAgICAgICAgICAgICAgcmVzLmV4dHJhID0ge1xcXFxuICAgICAgICAgICAgICAgICAgICB1cmw6IGdlbkV4VXJsKHVybCksXFxcXG4gICAgICAgICAgICAgICAgICAgIFJVTEU6IGJhc2U2NEVuY29kZShKU09OLnN0cmluZ2lmeShPYmplY3QuYXNzaWduKGdlbk15UnVsZSgpLCB7IGRldGFpbF9maW5kX3J1bGU6IGRldGFpbEZpbmRSdWxlIH0pKSksXFxcXG4gICAgICAgICAgICAgICAgICAgIHBhZ2VUaXRsZTogaXNJbmRleCAmJiB0aXRsZVxcXFxuICAgICAgICAgICAgICAgIH1cXFxcbiAgICAgICAgICAgICAgICByZXMudXJsID0gJ2hpa2VyOi8vcGFnZS9mcmFtZUxvYWQ/cnVsZT0nICsgUUlOR19USVRMRVxcXFxuICAgICAgICAgICAgfSBlbHNlIGlmIChNWV9SVUxFLmRldGFpbF9maW5kX3J1bGUpIHtcXFxcbiAgICAgICAgICAgICAgICByZXMuZXh0cmEgPSB7XFxcXG4gICAgICAgICAgICAgICAgICAgIHVybDogZ2VuRXhVcmwodXJsKSxcXFxcbiAgICAgICAgICAgICAgICAgICAgUlVMRTogYmFzZTY0RW5jb2RlKEpTT04uc3RyaW5naWZ5KGdlbk15UnVsZSgpKSksXFxcXG4gICAgICAgICAgICAgICAgICAgIHBhZ2VUaXRsZTogaXNJbmRleCAmJiB0aXRsZVxcXFxuICAgICAgICAgICAgICAgIH1cXFxcbiAgICAgICAgICAgICAgICByZXMudXJsID0gJ2hpa2VyOi8vcGFnZS9mcmFtZUxvYWQ/cnVsZT0nICsgUUlOR19USVRMRVxcXFxuICAgICAgICAgICAgfVxcXFxuICAgICAgICB9XFxcXG4gICAgICAgIG15Q29sbF9lbC5wdXNoKHJlcylcXFxcbiAgICB9KVxcXFxuICAgIHNldFJlc3VsdChteUNvbGxfZWwpXFxcXG59XFxcXG5cXFwifSx7XFxcImNvbF90eXBlXFxcIjpcXFwibW92aWVfM1xcXCIsXFxcIm5hbWVcXFwiOlxcXCLmlbDmja7ovb3lhaVcXFwiLFxcXCJwYXRoXFxcIjpcXFwiZGF0YUxvYWRcXFwiLFxcXCJydWxlXFxcIjpcXFwibGV0IHNob3dBbGwgPSAkLmltcG9ydFBhcmFtLFxcXFxuICAgIHVybCA9IGdldE15VmFyKCdyZW1vdGVVcmwnKSxcXFxcbiAgICBkYXRhID0gW11cXFxcbmlmICh1cmwuc3RhcnRzV2l0aCgnaGlrZXI6Ly8nKSB8fCB1cmwuc3RhcnRzV2l0aCgnZmlsZTovLycpKSB7XFxcXG4gICAgLy8g5aaC5p6c5Li65pys5Zyw5paH5Lu25YiZ5LiN6L+b6KGM57yT5a2YXFxcXG4gICAgdHJ5IHtcXFxcbiAgICAgICAgbGV0IG9yaURhdGEgPSBmZXRjaCh1cmwpXFxcXG4gICAgICAgIGlmICh1cmwuc3RhcnRzV2l0aCgnaGlrZXI6Ly9wYWdlLycpKVxcXFxuICAgICAgICAgICAgb3JpRGF0YSA9IEpTT04ucGFyc2Uob3JpRGF0YSkucnVsZVxcXFxuICAgICAgICBkYXRhID0gSlNPTi5wYXJzZShvcmlEYXRhKVxcXFxuICAgIH0gY2F0Y2ggKGUpIHt9XFxcXG59IGVsc2Uge1xcXFxuICAgIC8vIOiOt+WPlui/nOeoi+aVsOaNru+8jOajgOafpemXtOmalOm7mOiupOS4gOWkqVxcXFxuICAgIGxldCBpbnRlcnZhbCA9IHBhcnNlSW50KHJlYWRGaWxlKCd1cGRhdGVJbnRlcnZhbCcpIHx8ICcxJyksXFxcXG4gICAgICAgIG9sZERhdGEgPSBmZXRjaCgnaGlrZXI6Ly9maWxlcy9saWJzLycgKyBtZDUodXJsKSArICcuanMnKSxcXFxcbiAgICAgICAgcmVtb3RlRGF0YSA9IFtdXFxcXG4gICAgaWYgKGludGVydmFsID09IDApIGludGVydmFsID0gLTFcXFxcbiAgICB0cnkgeyByZW1vdGVEYXRhID0gSlNPTi5wYXJzZShmZXRjaENhY2hlKHVybCwgMjQgKiBpbnRlcnZhbCwgeyB0aW1lb3V0OiA1MDAwMCB9KSkgfSBjYXRjaCAoZSkge31cXFxcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkocmVtb3RlRGF0YSkpIHJlbW90ZURhdGEgPSBbXVxcXFxuICAgIGlmIChyZW1vdGVEYXRhLmxlbmd0aCA8IDMpIHtcXFxcbiAgICAgICAgbG9nKCfmnKrojrflj5bliLDmlbDmja4nKVxcXFxuICAgICAgICBpZiAob2xkRGF0YSkgd3JpdGVGaWxlKCdoaWtlcjovL2ZpbGVzL2xpYnMvJyArIG1kNSh1cmwpICsgJy5qcycsIG9sZERhdGEpXFxcXG4gICAgICAgIGRhdGEgPSBKU09OLnBhcnNlKG9sZERhdGEgfHwgJ1tdJylcXFxcbiAgICB9IGVsc2Uge1xcXFxuICAgICAgICBsb2coJ+W3suiOt+WPluWIsOaVsOaNricpXFxcXG4gICAgICAgIGRhdGEgPSByZW1vdGVEYXRhXFxcXG4gICAgfVxcXFxufVxcXFxuZGF0YSA9IGRhdGEuZmlsdGVyKCh2KSA9PiB2LnRpdGxlICE9IGdldE15VmFyKCdteUNvbGxlY3Rpb24nKSAmJiAhKHYuYXV0aG9yIHx8ICcnKS5pbmNsdWRlcygn6L275ZCI6ZuG55Sf5oiQ5ZmoJykpXFxcXG5pZiAocmVhZEZpbGUoJ2Rpc2FibGVDdXN0b20nKSkgJC5leHBvcnRzID0gZGF0YVxcXFxuZWxzZSB7IC8vIOWGmeWFpeiHquWumuS5ieaVsOaNrlxcXFxuICAgIGxldCBjdXN0b21EYXRhID0gSlNPTi5wYXJzZShyZWFkRmlsZSgnY3VzdG9tRGF0YScpIHx8ICdbXScpLFxcXFxuICAgICAgICByZXdyaXRlRGF0YSA9IFtdXFxcXG4gICAgY3VzdG9tRGF0YSA9IGN1c3RvbURhdGEucmVkdWNlKChzZWxmLCB2KSA9PiB7XFxcXG4gICAgICAgIGxldCBpbmRleCA9IGRhdGEuZmluZEluZGV4KCh2dikgPT4gdi50aXRsZSA9PSB2di50aXRsZSlcXFxcbiAgICAgICAgaWYgKGluZGV4ID49IDApIHtcXFxcbiAgICAgICAgICAgIHNlbGYucHVzaCh2KVxcXFxuICAgICAgICAgICAgbGV0IHJ1bGUgPSBkYXRhLnNwbGljZShpbmRleCwgMSlbMF1cXFxcbiAgICAgICAgICAgIGlmIChzaG93QWxsIHx8IHYudmlzaWJsZSlcXFxcbiAgICAgICAgICAgICAgICByZXdyaXRlRGF0YS5wdXNoKE9iamVjdC5hc3NpZ24ocnVsZSwgdikpXFxcXG4gICAgICAgIH1cXFxcbiAgICAgICAgcmV0dXJuIHNlbGZcXFxcbiAgICB9LCBbXSlcXFxcbiAgICBkYXRhLmZvckVhY2goKHYpID0+IGN1c3RvbURhdGEucHVzaCh7IHRpdGxlOiB2LnRpdGxlLCB2aXNpYmxlOiB0cnVlIH0pKVxcXFxuICAgIHNhdmVGaWxlKCdjdXN0b21EYXRhJywgSlNPTi5zdHJpbmdpZnkoY3VzdG9tRGF0YSkpXFxcXG4gICAgJC5leHBvcnRzID0gcmV3cml0ZURhdGEuY29uY2F0KGRhdGEpXFxcXG59XFxcXG5cXFwifSx7XFxcImNvbF90eXBlXFxcIjpcXFwibW92aWVfM1xcXCIsXFxcIm5hbWVcXFwiOlxcXCLnjq/looPliqvmjIFcXFwiLFxcXCJwYXRoXFxcIjpcXFwiaGlqYWNrRW52XFxcIixcXFwicnVsZVxcXCI6XFxcInZhciB7IFJVTEUsIGlzSW5kZXgsIHBhZ2VUaXRsZSB9ID0gTVlfUEFSQU1TXFxcXG5SVUxFID0gSlNPTi5wYXJzZShiYXNlNjREZWNvZGUoUlVMRSkpXFxcXG52YXIgb3JpUlVMRSA9ICQucmVxdWlyZSgnaGlrZXI6Ly9wYWdlL2RhdGFMb2FkP3J1bGU9JyArIFFJTkdfVElUTEUpLmZpbmQoKHYpID0+IHYudGl0bGUgPT0gUlVMRS50aXRsZSlcXFxcbmlmIChpc0luZGV4KSB7XFxcXG4gICAgUlVMRSA9IG9yaVJVTEVcXFxcbiAgICB2YXIgeyB0YWJIZWFkZXIsIGZ5QWxsIH0gPSAkLnJlcXVpcmUoJ2hpa2VyOi8vcGFnZS9DbGFzc1RhYj9ydWxlPScgKyBRSU5HX1RJVExFLCBPYmplY3QuYXNzaWduKHsgUUlOR19USVRMRTogUUlOR19USVRMRSB9LCBSVUxFKSlcXFxcbiAgICAvLyDlpITnkIZNWV9SVUxFXFxcXG4gICAgTVlfUlVMRS5jbGFzc191cmwgPSB0YWJIZWFkZXIuZ2V0Q2xhc3MoZnlBbGwgPyAnZnlBbGwnIDogJ2Z5Y2xhc3MnKS51cmxcXFxcbiAgICBNWV9SVUxFLmFyZWFfdXJsID0gZnlBbGwgPyBNWV9SVUxFLmNsYXNzX3VybCA6IHRhYkhlYWRlci5nZXRDbGFzcygnZnlhcmVhJykudXJsXFxcXG4gICAgTVlfUlVMRS55ZWFyX3VybCA9IGZ5QWxsID8gTVlfUlVMRS5jbGFzc191cmwgOiB0YWJIZWFkZXIuZ2V0Q2xhc3MoJ2Z5eWVhcicpLnVybFxcXFxuICAgIE1ZX1JVTEUuc29ydF91cmwgPSBmeUFsbCA/IE1ZX1JVTEUuY2xhc3NfdXJsIDogdGFiSGVhZGVyLmdldENsYXNzKCdmeXNvcnQnKS51cmxcXFxcbiAgICBNWV9SVUxFLnVybCA9IFJVTEUudXJsXFxcXG4gICAgTVlfUlVMRS5jb2xfdHlwZSA9IFJVTEUuY29sX3R5cGVcXFxcbiAgICBNWV9SVUxFLmRldGFpbF9jb2xfdHlwZSA9IFJVTEUuZGV0YWlsX2NvbF90eXBlXFxcXG4gICAgTVlfUlVMRS5maW5kX3J1bGUgPSBSVUxFLmZpbmRfcnVsZVxcXFxuICAgIE1ZX1JVTEUuZGV0YWlsX2ZpbmRfcnVsZSA9IFJVTEUuZGV0YWlsX2ZpbmRfcnVsZVxcXFxuICAgIE1ZX1JVTEUucGFyYW1zID0ge31cXFxcbn0gZWxzZSB7XFxcXG4gICAgUlVMRS5wYWdlcyA9IG9yaVJVTEUucGFnZXNcXFxcbiAgICAvLyDlpITnkIZNWV9SVUxFXFxcXG4gICAgTVlfUlVMRS51cmwgPSBNWV9QQVJBTVMudXJsXFxcXG4gICAgTVlfUlVMRS5jb2xfdHlwZSA9IFJVTEUuZGV0YWlsX2NvbF90eXBlXFxcXG4gICAgTVlfUlVMRS5maW5kX3J1bGUgPSBSVUxFLmRldGFpbF9maW5kX3J1bGVcXFxcbiAgICBNWV9SVUxFLnBhcmFtcyA9IFJVTEUucGFyYW1zXFxcXG59XFxcXG5NWV9SVUxFLnBhZ2VzID0gUlVMRS5wYWdlc1xcXFxuTVlfUlVMRS5wYWdlTGlzdCA9IEpTT04ucGFyc2UoTVlfUlVMRS5wYWdlcyB8fCAnW10nKVxcXFxuTVlfUlVMRS50aXRsZSA9IFJVTEUudGl0bGVcXFxcbk1ZX1JVTEUudWEgPSBSVUxFLnVhXFxcXG5sb2coTVlfUlVMRS51cmwpXFxcXG4vLyDovb3lhaXlh73mlbDlt6XlhbdcXFxcbnZhciB7IGdlbk15UnVsZSB9ID0gJC5yZXF1aXJlKCdoaWtlcjovL3BhZ2UvZnVuY1Rvb2xzP3J1bGU9JyArIFFJTkdfVElUTEUsIHtcXFxcbiAgICBRSU5HX1RJVExFOiBRSU5HX1RJVExFLFxcXFxuICAgIE1ZX1JVTEU6IE1ZX1JVTEUsXFxcXG4gICAgaXNJbmRleDogaXNJbmRleFxcXFxufSlcXFxcbi8vIOmYsuatonJlcXVpcmXlpJrmrKHov5DooYxcXFxcbmNvbnN0IG15Q29sbF9yZXF1aXJlZCA9IHt9XFxcXG5yZXF1aXJlID0gZnVuY3Rpb24ocGFyYW0wLCBwYXJhbTEsIHBhcmFtMiwgcGFyYW0zLCBwYXJhbTQpIHtcXFxcbiAgICBpZiAobXlDb2xsX3JlcXVpcmVkW3BhcmFtMF0pIHJldHVyblxcXFxuICAgIG15Q29sbF9yZXF1aXJlZFtwYXJhbTBdID0gdHJ1ZVxcXFxuICAgIHBhcmFtMiA9IHBhcmFtMiAhPSBudWxsID8gcGFyYW0yIDogMFxcXFxuICAgIHBhcmFtMyA9IE1ZX1RJQ0tFVFxcXFxuICAgIHBhcmFtNCA9IGV2YWxcXFxcbiAgICByZXR1cm4gbWV0aG9kX3JlcXVpcmUuaW52b2tlKGphdmFDb250ZXh0LCBwYXJhbTAsIHBhcmFtMSwgcGFyYW0yLCBwYXJhbTMsIHBhcmFtNClcXFxcbn1cXFxcbnJlcXVpcmVDYWNoZSA9IGZ1bmN0aW9uKHBhcmFtMCwgcGFyYW0xLCBwYXJhbTIsIHBhcmFtMywgcGFyYW00LCBwYXJhbTUpIHtcXFxcbiAgICBpZiAobXlDb2xsX3JlcXVpcmVkW3BhcmFtMF0pIHJldHVyblxcXFxuICAgIG15Q29sbF9yZXF1aXJlZFtwYXJhbTBdID0gdHJ1ZVxcXFxuICAgIHBhcmFtMyA9IHBhcmFtMyAhPSBudWxsID8gcGFyYW0zIDogMFxcXFxuICAgIHBhcmFtNCA9IE1ZX1RJQ0tFVFxcXFxuICAgIHBhcmFtNSA9IGV2YWxcXFxcbiAgICByZXR1cm4gbWV0aG9kX3JlcXVpcmVDYWNoZS5pbnZva2UoamF2YUNvbnRleHQsIHBhcmFtMCwgcGFyYW0xLCBwYXJhbTIsIHBhcmFtMywgcGFyYW00LCBwYXJhbTUpXFxcXG59XFxcXG5yYyA9IHJlcXVpcmVDYWNoZVxcXFxuLy8g5pyA5paw56ug6IqC6KeE5YiZ546v5aKD5Yqr5oyBXFxcXG5zZXRMYXN0Q2hhcHRlclJ1bGUgPSBmdW5jdGlvbihwYXJhbTApIHtcXFxcbiAgICBpZiAocGFyYW0wLnN0YXJ0c1dpdGgoXFxcXFxcXCJqczpcXFxcXFxcIikpIHtcXFxcbiAgICAgICAgcGFyYW0wID0gJ2pzOicgKyAkLnRvU3RyaW5nKChRSU5HX1RJVExFLCBNWV9QQVJBTVMpID0+IHtcXFxcbiAgICAgICAgICAgIGV2YWwoSlNPTi5wYXJzZShmZXRjaCgnaGlrZXI6Ly9wYWdlL2hpamFja0Vudj9ydWxlPScgKyBRSU5HX1RJVExFKSkucnVsZSlcXFxcbiAgICAgICAgICAgIHZhciB7IHJ1blByZVJ1bGUgfSA9ICQucmVxdWlyZSgnaGlrZXI6Ly9wYWdlL2Z1bmNUb29scz9ydWxlPScgKyBRSU5HX1RJVExFKVxcXFxuICAgICAgICAgICAgcnVuUHJlUnVsZShvcmlSVUxFLnByZVJ1bGUpXFxcXG4gICAgICAgIH0sIFFJTkdfVElUTEUsIHsgdXJsOiBNWV9SVUxFLnVybCwgUlVMRTogYmFzZTY0RW5jb2RlKEpTT04uc3RyaW5naWZ5KGdlbk15UnVsZSgpKSksIGlzSW5kZXg6IGlzSW5kZXggfSkgKyAnOycgKyBwYXJhbTAuc2xpY2UoMylcXFxcbiAgICB9XFxcXG4gICAgbWV0aG9kX3NldExhc3RDaGFwdGVyUnVsZS5pbnZva2UoamF2YUNvbnRleHQsIHBhcmFtMClcXFxcbn1cXFxcbi8vIOWKqOaAgeaWsOWinuWHveaVsOWKq+aMgVxcXFxuYWRkSXRlbUFmdGVyID0gZnVuY3Rpb24ocGFyYW0wLCBwYXJhbTEpIHtcXFxcbiAgICBpZiAoQXJyYXkuaXNBcnJheShwYXJhbTEpKSBwYXJhbTEgPSBwYXJhbTEubWFwKGhpamFja0VsKVxcXFxuICAgIGVsc2UgcGFyYW0xID0gaGlqYWNrRWwocGFyYW0xKVxcXFxuICAgIG1ldGhvZF9hZGRJdGVtQWZ0ZXIuaW52b2tlKGphdmFDb250ZXh0LCBwYXJhbTAsIHBhcmFtMSlcXFxcbn1cXFxcbmFkZEl0ZW1CZWZvcmUgPSBmdW5jdGlvbihwYXJhbTAsIHBhcmFtMSkge1xcXFxuICAgIGlmIChBcnJheS5pc0FycmF5KHBhcmFtMSkpIHBhcmFtMSA9IHBhcmFtMS5tYXAoaGlqYWNrRWwpXFxcXG4gICAgZWxzZSBwYXJhbTEgPSBoaWphY2tFbChwYXJhbTEpXFxcXG4gICAgbWV0aG9kX2FkZEl0ZW1CZWZvcmUuaW52b2tlKGphdmFDb250ZXh0LCBwYXJhbTAsIHBhcmFtMSlcXFxcbn1cXFxcblxcXCJ9LHtcXFwiY29sX3R5cGVcXFwiOlxcXCJtb3ZpZV8zXFxcIixcXFwibmFtZVxcXCI6XFxcIuWHveaVsOW3peWFt1xcXCIsXFxcInBhdGhcXFwiOlxcXCJmdW5jVG9vbHNcXFwiLFxcXCJydWxlXFxcIjpcXFwibGV0IHsgUUlOR19USVRMRSwgTVlfUlVMRSwgaXNJbmRleCB9ID0gJC5pbXBvcnRQYXJhbVxcXFxuaWYgKCFNWV9SVUxFKSBNWV9SVUxFID0ge31cXFxcblxcXFxuZnVuY3Rpb24gcnVuQ29kZShydWxlKSB7XFxcXG4gICAgdHJ5IHtcXFxcbiAgICAgICAgbGV0IFtpbnB1dCwgY29kZV0gPSBydWxlLnNwbGl0KCcuanM6JylcXFxcbiAgICAgICAgcmV0dXJuIGNvZGUgPyBldmFsKGNvZGUpIDogcnVsZVxcXFxuICAgIH0gY2F0Y2ggKGUpIHsgcmV0dXJuIHJ1bGUgfVxcXFxufVxcXFxuLy8g6aaW6aG16ZO+5o6l5pu/5o2i5YiG57G7XFxcXG5mdW5jdGlvbiBpbmRleFVybChwYXJhbSkge1xcXFxuICAgIE1ZX1JVTEUgPSBKU09OLnBhcnNlKGJhc2U2NERlY29kZShNWV9SVUxFKSlcXFxcbiAgICBsZXQgcGFnZU51bSA9IHBhcnNlSW50KHBhcmFtLnNwbGl0KCcjIyMnKVsxXSksXFxcXG4gICAgICAgIHVybCA9IE1ZX1JVTEUudXJsLFxcXFxuICAgICAgICB7IGZ5QWxsLCB0YWJIZWFkZXIgfSA9ICQucmVxdWlyZSgnaGlrZXI6Ly9wYWdlL0NsYXNzVGFiP3J1bGU9JyArIFFJTkdfVElUTEUsIE9iamVjdC5hc3NpZ24oeyBRSU5HX1RJVExFOiBRSU5HX1RJVExFIH0sIE1ZX1JVTEUpKVxcXFxuXFxcXG4gICAgdXJsID0gdGFiSGVhZGVyLnNldFVybChmeUFsbCA/IHVybC5yZXBsYWNlKC9meUFsbC9nLCAnJCR7ZnlBbGx9JykgOiB1cmwucmVwbGFjZSgvZnkoY2xhc3N8YXJlYXx5ZWFyfHNvcnQpL2csICckJHtmeSQxfScpKVxcXFxuICAgIHVybCA9IHVybC5yZXBsYWNlKC9meXBhZ2UoPzpAKC0/XFxcXFxcXFxkKylAKT8oPzpcXFxcXFxcXCooXFxcXFxcXFxkKylAKT8vZywgKF8sIHN0YXJ0LCBzcGFjZSkgPT4gcGFyc2VJbnQoc3RhcnQgfHwgMCkgKyAxICsgKHBhZ2VOdW0gLSAxKSAqIHBhcnNlSW50KHNwYWNlIHx8IDEpKVxcXFxuICAgIHVybCA9IC9eKFtcXFxcXFxcXHNcXFxcXFxcXFNdKj8pKD86XFxcXFxcXFxbZmlyc3RQYWdlPShbXFxcXFxcXFxzXFxcXFxcXFxTXSo/KVxcXFxcXFxcXSk/KD86KFxcXFxcXFxcLmpzOltcXFxcXFxcXHNcXFxcXFxcXFNdKj8pKT8kLy5leGVjKHVybClcXFxcbiAgICBpZiAocGFnZU51bSA9PSAxICYmIHVybFsyXSkgdXJsWzFdID0gdXJsWzJdXFxcXG4gICAgaWYgKHVybFszXSAmJiAhdXJsWzFdLmluY2x1ZGVzKCcuanM6JykpIHVybFsxXSArPSB1cmxbM11cXFxcbiAgICByZXR1cm4gcnVuQ29kZSh1cmxbMV0pXFxcXG59XFxcXG5cXFxcbmZ1bmN0aW9uIHBhcmFtSGFuZGxlKHVybFBhcmFtLCB1YSwgdXJsVG1wKSB7XFxcXG4gICAgbGV0IGNoYXJzZXQsIHBhcmFtVG1wXFxcXG4gICAgdHJ5IHsgLy8g6ZO+5o6l55qE57yW56CB44CBVUHlkoxSZWZlcmVy5bqU6K+l5piv6aaW5YWI57un5om/6aaW6aG16ZO+5o6lXFxcXG4gICAgICAgIFssICwgY2hhcnNldCwgcGFyYW1UbXBdID0gdXJsVG1wLnNwbGl0KCc7JylcXFxcbiAgICAgICAgcGFyYW1UbXAgPSBwYXJhbVRtcC5tYXRjaCgvXnsoLiopfSQvKVsxXS5zcGxpdCgnJiYnKVxcXFxuICAgIH0gY2F0Y2ggKGUpIHsgcGFyYW1UbXAgPSBbXSB9XFxcXG4gICAgbGV0IFVzZXJBZ2VudCA9IHBhcmFtVG1wLmZpbmQoKHYpID0+IHYuc3RhcnRzV2l0aCgnVXNlci1BZ2VudEAnKSksXFxcXG4gICAgICAgIFJlZmVyZXIgPSBwYXJhbVRtcC5maW5kKCh2KSA9PiB2LnN0YXJ0c1dpdGgoJ1JlZmVyZXJAJykpXFxcXG4gICAgdXJsUGFyYW1bMF0gPSB1cmxQYXJhbVswXSB8fCAnR0VUJ1xcXFxuICAgIHVybFBhcmFtWzFdID0gdXJsUGFyYW1bMV0gfHwgY2hhcnNldCB8fCAnVVRGLTgnXFxcXG4gICAgdHJ5IHtcXFxcbiAgICAgICAgdXJsUGFyYW1bMl0gPSB1cmxQYXJhbVsyXS5tYXRjaCgvXnsoLiopfSQvKVsxXS5zcGxpdCgnJiYnKVxcXFxuICAgIH0gY2F0Y2ggKGUpIHsgdXJsUGFyYW1bMl0gPSBbXSB9XFxcXG4gICAgLy8g5re75Yqg5YWo5bGAVUHlkozkuIrnuqdSZWZlcmVyXFxcXG4gICAgaWYgKCF1cmxQYXJhbVsyXS5zb21lKCh2KSA9PiB2LnN0YXJ0c1dpdGgoJ1VzZXItQWdlbnRAJykpKSB7XFxcXG4gICAgICAgIGlmIChVc2VyQWdlbnQpIHVybFBhcmFtWzJdLnB1c2goVXNlckFnZW50KVxcXFxuICAgICAgICBlbHNlIGlmICh1YSA9PSAncGMnKVxcXFxuICAgICAgICAgICAgdXJsUGFyYW1bMl0ucHVzaCgnVXNlci1BZ2VudEAnICsgUENfVUEucmVwbGFjZSgvOy9nLCAn77yb77ybJykucmVwbGFjZSgvXFxcXFxcXFw/LywgJ++8n++8nycpKVxcXFxuICAgICAgICBlbHNlIGlmICh1YSA9PSAnbW9iaWxlJylcXFxcbiAgICAgICAgICAgIHVybFBhcmFtWzJdLnB1c2goJ1VzZXItQWdlbnRAJyArIE1PQklMRV9VQS5yZXBsYWNlKC87L2csICfvvJvvvJsnKS5yZXBsYWNlKC9cXFxcXFxcXD8vLCAn77yf77yfJykpXFxcXG4gICAgfVxcXFxuICAgIGlmIChSZWZlcmVyICYmICF1cmxQYXJhbVsyXS5zb21lKCh2KSA9PiB2LnN0YXJ0c1dpdGgoJ1JlZmVyZXJAJykpKVxcXFxuICAgICAgICB1cmxQYXJhbVsyXS5wdXNoKFJlZmVyZXIpXFxcXG4gICAgdXJsUGFyYW1bMl0gPSAneycgKyB1cmxQYXJhbVsyXS5qb2luKCcmJicpICsgJ30nXFxcXG4gICAgcmV0dXJuIHVybFBhcmFtLmpvaW4oJzsnKVxcXFxufVxcXFxuLy8g6aKE5aSE55CG5bm25Yid5aeL5YyWY29uZmlnXFxcXG5mdW5jdGlvbiBydW5QcmVSdWxlKHJ1bGUpIHtcXFxcbiAgICBpZiAoKHR5cGVvZiBNWV9QQUdFICE9ICd1bmRlZmluZWQnICYmICBNWV9QQUdFID09IDEpICYmXFxcXG4gICAgICAgICAoaXNJbmRleCB8fCAhZ2V0TXlWYXIoJyRwcmVSdWxlXycgKyBNWV9SVUxFLnRpdGxlKSkpIHtcXFxcbiAgICAgICAgZXZhbChydWxlKVxcXFxuICAgICAgICBwdXRNeVZhcignJHByZVJ1bGVfJyArIE1ZX1JVTEUudGl0bGUsICdUJylcXFxcbiAgICB9XFxcXG4gICAgbGV0IF9jZmcgPSBnZXRNeVZhcignaW5pdENvbmZpZycsICd7fScpXFxcXG4gICAgaWYgKF9jZmcgJiYgX2NmZy5sZW5ndGggPiAwKSB7XFxcXG4gICAgICAgIGNvbmZpZyA9IEpTT04ucGFyc2UoX2NmZylcXFxcbiAgICB9XFxcXG59XFxcXG4vLyDmraPmlofop6PmnpDpgJrnlKjlj5jph49cXFxcbmZ1bmN0aW9uIGdlbk15UnVsZSgpIHtcXFxcbiAgICBsZXQgUlVMRSA9IE9iamVjdC5hc3NpZ24oe30sIE1ZX1JVTEUpXFxcXG4gICAgZGVsZXRlIFJVTEUubGFzdF9jaGFwdGVyX3J1bGVcXFxcbiAgICBkZWxldGUgUlVMRS5wcmVSdWxlXFxcXG4gICAgZGVsZXRlIFJVTEUucGFnZUxpc3RcXFxcbiAgICBkZWxldGUgUlVMRS5wYWdlc1xcXFxuICAgIHJldHVybiBSVUxFXFxcXG59XFxcXG5cXFxcbmZ1bmN0aW9uIGdlbkV4VXJsKHVybCkge1xcXFxuICAgIHVybCA9IHVybC5zcGxpdCgnOycpXFxcXG4gICAgcmV0dXJuIHVybC5zaGlmdCgpICsgJzsnICsgcGFyYW1IYW5kbGUodXJsLCBNWV9SVUxFLnVhLCBNWV9SVUxFLnVybClcXFxcbn1cXFxcblxcXFxuaGlqYWNrTGF6eVJ1bGUgPSAkLnRvU3RyaW5nKChRSU5HX1RJVExFLCBNWV9QQVJBTVMpID0+IHtcXFxcbiAgICBpZiAoIU1ZX1JVTEUpIE1ZX1JVTEUgPSB7fVxcXFxuICAgIE1ZX1BBUkFNUyA9IEpTT04ucGFyc2UoYmFzZTY0RGVjb2RlKE1ZX1BBUkFNUykpXFxcXG4gICAgZXZhbChKU09OLnBhcnNlKGZldGNoKCdoaWtlcjovL3BhZ2UvaGlqYWNrRW52P3J1bGU9JyArIFFJTkdfVElUTEUpKS5ydWxlKVxcXFxuICAgIHZhciB7XFxcXG4gICAgICAgIHBhcmFtSGFuZGxlLFxcXFxuICAgICAgICBnZW5FeFVybCxcXFxcbiAgICAgICAgaGlqYWNrTGF6eVJ1bGUsXFxcXG4gICAgICAgIGhpamFja0VsXFxcXG4gICAgfSA9ICQucmVxdWlyZSgnaGlrZXI6Ly9wYWdlL2Z1bmNUb29scz9ydWxlPScgKyBRSU5HX1RJVExFKVxcXFxufSwgUUlOR19USVRMRSwgYmFzZTY0RW5jb2RlKEpTT04uc3RyaW5naWZ5KHsgdXJsOiBNWV9SVUxFLnVybCwgUlVMRTogYmFzZTY0RW5jb2RlKEpTT04uc3RyaW5naWZ5KGdlbk15UnVsZSgpKSksIGlzSW5kZXg6IGlzSW5kZXggfSkpKVxcXFxuXFxcXG5mdW5jdGlvbiBoaWphY2tFbChlbCkge1xcXFxuICAgIGlmKCFlbCB8fCB0eXBlb2YgZWwgIT0gJ29iamVjdCcpIHJldHVyblxcXFxuICAgIGlmICghZWwuZXh0cmEpIGVsLmV4dHJhID0ge31cXFxcbiAgICBlbC5jb2xfdHlwZSA9IGVsLmNvbF90eXBlIHx8IE1ZX1JVTEUuY29sX3R5cGVcXFxcbiAgICBsZXQgTk9XX1JVTEUgPSBPYmplY3QuYXNzaWduKGdlbk15UnVsZSgpLCB7IHBhcmFtczogZWwuZXh0cmEgfSlcXFxcblxcXFxuICAgIGlmICh0eXBlb2YgZWwudXJsICE9ICdzdHJpbmcnIHx8XFxcXG4gICAgICAgIFsneDVfd2Vidmlld19zaW5nbGUnLCAnaW5wdXQnXS5zb21lKCh2KSA9PiBlbC5jb2xfdHlwZSA9PSB2KSB8fFxcXFxuICAgICAgICBbJ+a1t+mYlOinhueVjCcsICdqYXZhc2NyaXB0OiddLnNvbWUoKHYpID0+IGVsLnVybC5zdGFydHNXaXRoKHYpKSB8fFxcXFxuICAgICAgICBbJ3J1bGUnLCAncGljcycsICd0b2FzdCcsICdjb3B5JywgJ2VkaXRGaWxlJywgJ3g1JywgJ3g1V2ViVmlldycsICd4NVBsYXknLCAnd2ViJywgJ3g1UnVsZScsICd3ZWJSdWxlJyxcXFxcbiAgICAgICAgICAgICdkb3dubG9hZCcsICdzaGFyZScsICdmaWxlU2VsZWN0JywgJ3ZpZGVvJ10uc29tZSgodikgPT4gZWwudXJsLnN0YXJ0c1dpdGgodiArICc6Ly8nKSkpIHtcXFxcbiAgICAgICAgcmV0dXJuIGVsXFxcXG4gICAgfSBlbHNlIGlmIChlbC51cmwuc3RhcnRzV2l0aCgnaW5wdXQ6Ly8nKSkge1xcXFxuICAgICAgICBsZXQgcGFyYSA9IEpTT04ucGFyc2UoZWwudXJsLnNsaWNlKDgpKVxcXFxuICAgICAgICBpZiAocGFyYS5qcykgcGFyYS5qcyA9IGhpamFja0xhenlSdWxlICsgJzsnICsgcGFyYS5qc1xcXFxuICAgICAgICBlbC51cmwgPSAnaW5wdXQ6Ly8nICsgSlNPTi5zdHJpbmdpZnkocGFyYSlcXFxcbiAgICAgICAgcmV0dXJuIGVsXFxcXG4gICAgfSBlbHNlIGlmIChlbC51cmwuc3RhcnRzV2l0aCgnY29uZmlybTovLycpKSB7XFxcXG4gICAgICAgIGxldCByZUluZGV4ID0gZWwudXJsLmluZGV4T2YoJy5qczonKVxcXFxuICAgICAgICBpZiAocmVJbmRleCA+PSAwKSBlbC51cmwgPSBlbC51cmwuc2xpY2UoMCwgcmVJbmRleCkgKyAnLmpzOicgKyBoaWphY2tMYXp5UnVsZSArICc7JyArIGVsLnVybC5zbGljZShyZUluZGV4ICsgNClcXFxcbiAgICAgICAgcmV0dXJuIGVsXFxcXG4gICAgfSBlbHNlIGlmIChlbC51cmwuc3RhcnRzV2l0aCgnc2VsZWN0Oi8vJykpIHtcXFxcbiAgICAgICAgbGV0IHBhcmEgPSBKU09OLnBhcnNlKGVsLnVybC5zbGljZSg5KSlcXFxcbiAgICAgICAgaWYgKHBhcmEuanMpIHBhcmEuanMgPSBoaWphY2tMYXp5UnVsZSArICc7JyArIHBhcmEuanNcXFxcbiAgICAgICAgZWwudXJsID0gJ3NlbGVjdDovLycgKyBKU09OLnN0cmluZ2lmeShwYXJhKVxcXFxuICAgICAgICByZXR1cm4gZWxcXFxcbiAgICB9IGVsc2UgaWYgKGVsLnVybC5pbmNsdWRlcygnQHJ1bGU9JykpIHtcXFxcbiAgICAgICAgbGV0IFtfLCB1cmwsIHJ1bGVdID0gZWwudXJsLm1hdGNoKC9eKFtcXFxcXFxcXHNcXFxcXFxcXFNdKj8pQHJ1bGU9KFtcXFxcXFxcXHNcXFxcXFxcXFNdKikkLylcXFxcbiAgICAgICAgZWwudXJsID0gdXJsXFxcXG4gICAgICAgIE5PV19SVUxFLmRldGFpbF9maW5kX3J1bGUgPSBydWxlXFxcXG4gICAgICAgIE5PV19SVUxFLmRldGFpbF9jb2xfdHlwZSA9IE1ZX1JVTEUuY29sX3R5cGVcXFxcbiAgICB9IGVsc2UgaWYgKGVsLnVybC5zdGFydHNXaXRoKCdoaWtlcjovL3BhZ2UvJykpIHtcXFxcbiAgICAgICAgaWYgKGVsLnVybC5pbmNsdWRlcygncnVsZT0nKSB8fCBlbC5leHRyYS5ydWxlKVxcXFxuICAgICAgICAgICAgcmV0dXJuIGVsXFxcXG4gICAgICAgIGxldCBbXywgcGF0aCwgZmxhZywgcGFyYW1zXSA9IGVsLnVybC5tYXRjaCgvXmhpa2VyOlxcXFxcXFxcL1xcXFxcXFxcL3BhZ2VcXFxcXFxcXC8oLis/KSgjLio/KT8oPzpcXFxcXFxcXD8oLiopKT8kLyksXFxcXG4gICAgICAgICAgICBzdWJQYWdlID0gTVlfUlVMRS5wYWdlTGlzdC5maW5kKCh2KSA9PiB2LnBhdGggPT0gcGF0aCksXFxcXG4gICAgICAgICAgICBzdWJVcmwgPSAocGFyYW1zIHx8ICcnKS5zcGxpdCgnJicpLmZpbmQoKHYpID0+IHYuc3RhcnRzV2l0aCgndXJsPScpKVxcXFxuICAgICAgICBlbC51cmwgPSAoc3ViVXJsID8gc3ViVXJsLnNsaWNlKDQpLnJlcGxhY2UoL++8n++8ny9nLCAnPycpLnJlcGxhY2UoL++8hu+8hi9nLCAnJicpIDogKGVsLmV4dHJhIHx8IHt9KS51cmwpIHx8ICdoaWtlcjovL2VtcHR5JyArIGZsYWcgKyAnPycgKyAocGFyYW1zIHx8ICcnKVxcXFxuICAgICAgICBOT1dfUlVMRS5kZXRhaWxfZmluZF9ydWxlID0gc3ViUGFnZS5ydWxlXFxcXG4gICAgICAgIE5PV19SVUxFLmRldGFpbF9jb2xfdHlwZSA9IHN1YlBhZ2UuY29sX3R5cGVcXFxcbiAgICB9IGVsc2UgaWYgKGVsLnVybC5pbmNsdWRlcygnQGxhenlSdWxlPScpKSB7XFxcXG4gICAgICAgIGxldCByZUluZGV4ID0gZWwudXJsLmluZGV4T2YoJy5qczonKVxcXFxuICAgICAgICBpZiAocmVJbmRleCA+PSAwKSBlbC51cmwgPSBlbC51cmwuc2xpY2UoMCwgcmVJbmRleCkgKyAnLmpzOicgKyBoaWphY2tMYXp5UnVsZSArICc7JyArIGVsLnVybC5zbGljZShyZUluZGV4ICsgNClcXFxcbiAgICAgICAgcmV0dXJuIGVsXFxcXG4gICAgfSBlbHNlIGlmIChpc0luZGV4KSB7XFxcXG4gICAgICAgIGlmICghTVlfUlVMRS5kZXRhaWxfZmluZF9ydWxlIHx8IC9oaWtlcjpcXFxcXFxcXC9cXFxcXFxcXC8oPyFlbXB0eS4rJCkvLnRlc3QoZWwudXJsKSkgcmV0dXJuIGVsXFxcXG4gICAgfSBlbHNlIHtcXFxcbiAgICAgICAgcmV0dXJuIGVsXFxcXG4gICAgfVxcXFxuICAgIGVsLmV4dHJhID0gT2JqZWN0LmFzc2lnbih7fSwgZWwuZXh0cmEsIHtcXFxcbiAgICAgICAgdXJsOiBnZW5FeFVybChlbC51cmwpLFxcXFxuICAgICAgICBSVUxFOiBiYXNlNjRFbmNvZGUoSlNPTi5zdHJpbmdpZnkoTk9XX1JVTEUpKSxcXFxcbiAgICAgICAgcGFnZVRpdGxlOiBpc0luZGV4ICYmIGVsLnRpdGxlXFxcXG4gICAgfSlcXFxcbiAgICBlbC51cmwgPSAnaGlrZXI6Ly9wYWdlL2ZyYW1lTG9hZD9ydWxlPScgKyBRSU5HX1RJVExFXFxcXG4gICAgcmV0dXJuIGVsXFxcXG59XFxcXG4kLmV4cG9ydHMgPSB7XFxcXG4gICAgcnVuQ29kZTogcnVuQ29kZSxcXFxcbiAgICBpbmRleFVybDogaW5kZXhVcmwsXFxcXG4gICAgcGFyYW1IYW5kbGU6IHBhcmFtSGFuZGxlLFxcXFxuICAgIHJ1blByZVJ1bGU6IHJ1blByZVJ1bGUsXFxcXG4gICAgZ2VuTXlSdWxlOiBnZW5NeVJ1bGUsXFxcXG4gICAgZ2VuRXhVcmw6IGdlbkV4VXJsLFxcXFxuICAgIGhpamFja0xhenlSdWxlOiBoaWphY2tMYXp5UnVsZSxcXFxcbiAgICBoaWphY2tFbDogaGlqYWNrRWxcXFxcbn1cXFxcblxcXCJ9XVwiLFwicHJveHlcIjpcIlwifSIsInBpY1VybCI6ImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBSW9BQUFDS0NBWUFBQUIxaDlKa0FBQUFBWE5TUjBJQXJzNGM2UUFBQUFSelFrbFVDQWdJXG5DSHdJWklnQUFDQUFTVVJCVkhpYzdMMXBzR2JIZWQvMzYrNnp2TnZkNTk2NXMySVc3RHRBQUFJSkVBUUljWWxFa0tKSlVDd2xMb3V5XG5WTEVVdVZ6bFV1UWtsUytweEU3S2xVcTU0cFNjUlA2UUQ1RlRMbG15SEV1MkxGRW1KVUVpUllBaVFCRHJBSVBaWis1Kzc3dWZwZnZKXG5oKzV6M3ZjT0JpSklVWFkrOEV6ZE92UHVmYnIvL1R6LzUvODgzUWQrZVB6dytPSHh3K09IeHcrUEh4NC9QUDcvZDZqLzJBMEFES0REXG4yZURiRklYWGRIaHNidkE1L1Ira2RULzR3OTNnc1Z6My96S2NiWGpPaHIvL2FNZC9DS0Fvbm56U0hIM2cwM0hyeUMzdGhuVkxVYk85XG5rc3kwbDAyemZUaHVkVloxMGpxb28raUFpcUpabEo1Tm9tZ09hQ210VWhFU1VDa0tFRkdpbElnUW81UVdRTldYSVBYUGlmai9xL0NTXG5pUCsvaUtEOGYxQksxWitvMzFCL0F3aHEzMmYyZFpRSVNpc1EvUGZWdno5NW4xSUtWT2pnOEIxYWczRllvOFVhcFVUNzk3Z1lsNzl6XG43VnIyMmlETEZ1WVd4c2JKWG94MGpiZzliY3ROR1EvV1RaRmZaVGk0N1BMaHBoMTFONnpPdGpmZXVkUy85RWV2bDN6ei82eUE5VmQyXG4vRlVDeGN6OS9QODQyN3IxbnRYRmc4ZnViRFRiZDNiYU02ZmlPRG1ScE9sTlJrV0hsREVOcGFoR0VhWFYxS0NDVnV4N1hMVldBYTRlXG45QWtJcXNGV1N1R2NvQlc0YVpDRXdkMTNUUDF1M1NuMTc2dndPUkFYZm8rcGM0Q1Vyb0NrUUlsZ3RFSUxHSzFRSWtRS3RQTHZTMFV3XG5XdU5FS0FSMmM4ZVo4Mjl6OXAyM0dCNDR3c0toNHh4dHBqU1ZKdEhhbTFxdEVRU05Hb3NycjlxeVBPL3k3QnhGY2JZWTdyMWU3SzYvXG5jdjc1UDdsNjRaLzgxejI4TmZxQkgzOEZRUGxBekxNZlhacjc4SS9kZmVEWWlVOTEydTBQZEpMRzBYYVNIRXEwU1pWV1liYjVHUnNtXG5YbjErVjZQVS91ZThZWG52MWxjREpoTG11Qi9MOXp4VTlZVlRvS3ZPazhHZit2M3d2SzdPNFhtai9QOTFlSzN5b2JIeVlOSEtqNkFWXG5HRG5vbGNLRlVjNmx0VFhXWC80NmJtYUI2UGl0TE03TmN5Uk5tSWtNc2RZb3BVTmZYZGNSZ0JMSnhkcXJ0aXd2Nkh6NDB1NkZNLzlxXG45NC8vL2N2ZithZS92d1ZmL1lFQzVnY0tsTGw3SGwvSXZ2QjM3anQ0L3dmLzg3VFJlbUkyU1JiYlJqZGF4aEFwalRMR2Q3d094T082XG5UdmVEVU0zVWFYZFJOYll5TWVCUUdLVVE1eUM0RVYxWmx1QitsRksxSmJvZWZDTCtkOVIwSnlqQVRkcFhXUlJkZ2FXeUdBRXRHdjk4XG4xWDVQclB6ck9seUFPTWRJRkJZUGxLNFY5akxoN2IwdUYxLzZHaklhb3BZUG9SWldNRE56TEtZcGg5S1lHV05JalBHTjBiNmRXay9hXG5VelczdWs0bmt1RmtpOUhnajlaZisrYi8vdnIvOFE5ZTNQbm1sL2QrVUdQN2d3Q0s0Z01maUpJSFAzUHI3QlBQZkw2eGV2d1hHem82XG5zQkFiT3RyUU5BYWpOY3I0dWFlMEI4ZzBTSFF3NXhxbXpQcCtLekk5bU5NV1JjbCtnekg5LzJsalV2My9lc0JVQnFVR2EzaEpzLy8zXG5UZjI2QjVpKzduMUtnUTYvSW5nR1dvaG5vQ01IWXdkREI0Tnh5UnM3MjF4NzgyWFVZQmUxZEFnNjg1ajJMRkd6eFlFa1ppV09tSWxqXG5ZcTFCYXo5UlZPaXI2OXBadVVBSnZ5eWlRTno2YU8zeXIxejVnOS82alc5LzVaVTNmaEFjNWk4SGxHZWZOVVNIRHl4ODhKTWZWVWR1XG4rd1hUbVg5c05qWnFJVEswamY4elNxRzB0eVRHK0V1cU90MW9QOUNSRHI0ZVB4Q2FhUXNSenV3ZjdIZHhGeEdVMG9HclRGa1dKcFpsXG4ycTFjLzcyVHZ3bjN1VEY0QWljUkF1ZVpXRENVQjRjRFNvRmNZR1NGekNtR2hXVTN6N2t5SExOeDhXM0sxNytKV2ptQ1dUNk03c3lqXG4waGJOUnBQRlNMT1l4SFMwSW8waVFzZjVmZ3ZvMU1IeUd1V3ZUMDlkbjNXQ29MQ0N4RVgyWjF2dnZQbS9YbnZodWErOGV1NnJHL3o2XG5yMy9ma2RPTndzNzNkeno3ckVtUGZlUjArNUZQL293NWZQcVhwVFY3VHlmU2FqYUthQnROU3h0aXBWSGErMWh0OXM4SU0wWHc5cmtmXG5Lc3N5NlJTWW1ybmg1K3RnbzBhUEgxd0pqNlYrY2Y5Y3VQN3orOTJQQktzd3haMnUvMU1UNHV1WWdLTEVBeU1IeHVLdFI3K0VjU2xzXG5ad1VYQjBQTzdXeXp0N1dPdTNnR3QzNFJ0WElzZ0tTSlRsTGl5TkNLTkEybGlMWEdNTVhuS2hNMjdhYVY4dTJkc3REK3JOQUtaVTEwXG50TEd3OUVqcjhBbXoyRGw0K2ZMd3loN256bDBmbnIrdjQvc0ZpdWFSTDl6YS9NQ1R2OFRTNnBja2JSNXNSb2E1T0tLdE5TMWpTSlRHXG5SQVpSM3JlcWZkeWtBb2VhbXNIWFJSVTNDR1Vya3c2VEtNZUpuMEVPd21PUThEeEtZVVdRTUxpaXFKK1gwT21WazNOQy9YM1Y3eWxWXG5QZTkvVDZhK3p3YkxrUXNVNFp6aExjaklLYkpTS0V2SHhqam4vSERFMnVZYTR6ZGVwUHp6cjhMdXByY21TNnZRNm1EU0JpcUtTYUtJXG5obFlrU21GVXNMUlZDRjZaV04vNyswSnpmNXFBdk9wWHJSU2kxRnpjYk4wZnp4NllhU3B6WnYycnY3M045K0dHdmgrZ2FENzdDN2ZOXG4vK2puLzZHZFhYcFdwYzEySE1mTVJSRWRvMmthUTBOcFlxTzk5d3ltUXV2SnJLdzRpUWVKSDdGNmNLZ0cwUSt1d3hQQmFhQTRrVENiXG4vVUJhRkE2aERJTm5BM2pLNEJhcW1lOC9xMm9WUzhTSHovNy9ubHVJVXJYcU5mMjVDb3dXUlltM0lrWDR5NXlRaVdKa29YQ0tzbkNNXG5yR1V0enprN0hOUGYyNkY0NTFYVTg3OVA1NU0vaFQ1eUV1YVdVZTFaZEtPSmlsSjBGQkZwUmFwMTRIQ1R5YVNya1EyVEFDcUFzODlnXG5xb3JNUUhCTFBrUVhWQ05xTk8rYk8zckxzWGp1MkV2clgvODNPM3lQWVBuZWdQTGtreEZQL3ZROXMwOTkraDhVbllWbmRLT3RWWkxRXG5ubkkzcVZJa3hvZDFLcUJEQnc1Ulc1QXdNeFNxdm5EbjJjUVVHQ2FESmNvUHVsT2FNZ0REaXZJbVB3eDg0Y0FxUmVrRUYwQWk5ZnU5XG43M2JoZGZDV1lScUVWbFRsMnhIeFFKaTJISlY3S1VVb1JWRTRvVUNSQ1JTaXlLMWdMZVJGeVY1WmNubWNjWEdjay9lNzJKMTFlT3NsXG5vdnMraE13dVFhT0pTaHFvSkVWSE1UcU9RU3VNMFVGejBmdWlOcTFBT1psd3Ntb3lNZUZvMXd1RUVyZ2doT2dOaktUcEhmTzMzSFhUXG4zUDBmL003bGYxdHV3cXZ2R3l6dkh5alBQbXM0OE1qcDVKNUgvNjdNTDMxZXBTMnRrcFRZeExTTnBtMDBxWUpVYXlLbDBGb2pRU3NoXG4rRk4vRHRFUEUwaFhmRUlBVjVsM0pvTmtLM0M0TU9qQy90Y2tXSXJLQXJudzJBV0xNZlZZZ2hWeW9tcEFPc0FwL3ozQ2xHNGVRRlpPXG4vVTVKQUNpS3drSHB3SlpDYVIwalc3S2VGMXdlNTJ5UHhwVDlQYVMzalZ3OWgxZ0xDeXVvVmh0TWhJcGpsRW04WktDTm4xUytnOExnXG5WMkQyazhnRlZPaHdWZ0hZMU9BSmZUbmxqbFRGY1pneVBIRjhLcGxmYmk0K2RPRFZ5KzFpbDFmZkgxamVMMUFVeHg0ODJMai84WjloXG5jZm1uVmJQVFVra0RuYVFreHRDT05FMmxTSTBoVnNwckpvb3BwWFcvbVp5T1ZnU3BPWVZNY1F6cnFzRVRiRFhvK0lHcFhZYUFzNEk0XG5yNXdpNEp3Z0lqam5RRUkwSXJKUFg2azRpVEFCaHd2ZFpkMmtIWTU5VVlUL2M5NzZsTUVVV1d2Sm5hVmJGS3lYSmRmR09ZUGhnR0p2XG5DN3QxRmRsZVErMnVJODBXZW1FRmtvWUhpVFlvRS9uSnBFM2RNZDVpZWN2bExhWHpqNTN6THRhNTBJOGhPblNWZTVVcGtGVmZGempYXG5sT0x0QksyVDlHVGNtaHZQNnVicjE3NzhHLzBmSEZBKzhJRzQ4ZURIbjlHck4vMHlyWm1WQ2lRcWlraU5wcVUxcVZiRUZWdFhWU3l4XG5uM0NwYVhzWnVJQWZ2T21aUHNVTmdpVndnVFM0UUN6RWVSUHJyTU9KbzNTT1F2eXNMcHlqc0RaMGNIak5PUTlFa1FBb04wR0hNUGw5XG5KdTJRNmQ5blluMGtnRk9KVUpRbHc3Smt0eXhaTHkwYjQ0SnNOS0RjMjhKZVBrdjVuVCtEcStkUXM0dW9BMGRRblZsVTdQbUkwaEVFXG45MXc1RWhIQmlXREZVWW93dHNKSWhNeTZRSmlGQXFGd0V0cnMyMUZGaXlMQndrejFhd1dlQ1gwUlVLcGhHczFiakk3ZWJzcks2eHV2XG5mdlc3aHMzUmQzc0RRTkkrZFh0eThOZ3ZqdVBHRVIzRllQeEZhcVZxRlhJNmRCUlZVYTNweEp1UE9wU0FLTzNOSnhPU2VyMXFWcGxUXG5DYjdaT29mQ1d3d3JRaTdpUTFKcnZiamxITGFPZ29KT0VuU2FxbzJKMWhpRVNHc016bHMvcmRESzA4WEtQYUswQjVTcUxGQmdUMUtSXG5YbUZZbG94RTJDMUx0Z3RIUHk5dzJRRFgyME4yTnJCdmZJdDBaNDNvMDM4VGEwdWNqbEJwdzd1YXlyS0pRem5uQnhqcW1GMlV3aXFGXG4waHFMb2pDR29kVm9ZMGdVdExTaWFUUnQwYVJBMDBTa3pxR053VGxRUmlQWGhjelRwa1lwaFdoenVIUGs1Ti9pMUlGdkFhLzg1WUZ5XG4vUGlDdS9QQlowZW04WWlLb3RxZlZwYkNheU9xSHVDSk13eU51azVEOTZEd0lISFhBYVFDaHdydW9ocDA2eHdsUXU2YzF5ckVrVGxoXG43UHh6cFFpRmRaNWJWRE10dEVHSENDTFMzdHBGUUtvVmFRaERLMDRWQjlBYjVWdFcrWGdBSng2a3BRaUZDR1BuR0RySFhtSFpLeTFaXG5ubUhISTJUVXgvVjNvYnRON0N6Nk16K0xTNXVobjRJK29JM1hicDBGV3dZZE41QlFLcUVRNnZ5T01wN1hHWTNURWRZWXhzWVFHVU1yXG5jTU8yQ0cydGFZcjQvQkNnZEFDTHJvWmxJa1ZVQk5rbWpROGRmZUxUWDl4Njg5dy9YdnVYLy9QNlh3SW9UMGJjdHZxZ1hqcjRDODdFXG5TcHNvSU1NVDFVcWhySUFoYWlwNnFYSTBGUmR4b2ZFeXhkNlY4dlk5ekZ4dk1Sd093VHJ2b3pObktVUVlPY2RZWUZENngzbHdMN1lzXG52VHV5SlRpSGhFRVZRdlFBS0JONUtkeEVhS1ZJb29oSUtScEcwMUNPUnFSSnFDd09SRXJYNllRcWJMWUVrRmpIMEFsZGF4bVVKZms0XG5RN0lCdHQ5RmhqMWtaeDI5dTQ0N2ZUY09UOTVWRk5XREw5TitWQnpPV3BRNG5ITW9jVWhsT1VWOFFJQkNHK1BWMlNnR2JkQlJpbzBpXG5pamhtb0NOYWNjUk1KTXdhb2VXOFJHRUF0S1owSWRxc0p2VCtYSmhxcnF6K0Z5Yys4YWsvV252ai9CL3k2cS9uM3g5UVRtNHVOVTk4XG45R2N6RXkvcE9FS1U5bWE2RnNjbW5Ra1RVYW9TcldwclVwbHhaLzBzcmR5S09PK0tuS3NIb3hTaGRJNWNoTXc1eHM0eHNNTElDV05yXG5LYTJsTEFzL0c4dWkvcXNmQjVOZWlUZktlTktvVEl5S1lsd1VZMDJFaW1KR0ppSXltdFJxbWtiUlVJNUVLU0x0Z2p2MWx0Q0s0TVRyXG5KUVBuNkZ0SFprdHNsdUhHQTF4M0I3dTlqblMzVUwxdFhOSkF6eStEaVd0bEdzSjFXZ3V1UkVycjIyc0xwQ2pDYzZWdnUvVXN6U2tGXG4ybUMxUmtXKy9VUXhPazdSYVFPSlUxeWNZRzNLT0k0WlJvWTVZNWdSUndjaEVXLzluWm9RMmhvc1NpRU9uSW9XVm02NzUyL2U5UGo5XG4zem4vNnE5Zi9YNkFFbkgwNXJ2SFVmcUVNbkZOdkNxV1hpbWpFbWJLUk5BU0xCTlRvbFRJMGdiZkxrd2htaERWNE1GUlFpQnV3c2c2XG5SazdvVzhmWUNXV1JneTF4Ullia1kxeWVJOFVZTng1Qm1TRlpocklGVXBhVEdSbkZpQW5jSUVuUlNST1NGSjJrRUNXNEpLVTBNWGtVXG5NU3cxalVpVGFrM2lWQ2diVUFnT2h5SjNIcXlqb2tTY3haWTVMaHNod3g1dWR4Tjc1a1ZVZHd2Vm5rUGRmaHBtNWxCeGpLaVFLclFXXG55Z0t4SlZKa3VHeU01Qm1TalZGRmhoUmpLQW9vY3BBU3NjNjdISzNBUkRnVG81SUdwRTJrMGNTbExYU2poV28wa05RL0x1S0VVUlNSXG54NFpTb0JNSkRhY3h4dFNodEtVaXZ0UWFoVFRhSDE1NTlJbTd6ci81NUFaZnZYRjV3bnNENVo1N1p0TGxRNS9KVGJTRTl0V0tsVG12XG5aWFVuaUptb29VNjhEdUlxamlDQ0ZnOFdmL2lXVmVhOEZGY1QwUUxJbk9jZVErY1lXTWZJT214UmdMTklOc0xsWTF3K1JrWkR6d2VHXG5QUmdOWU5pRDhSREpNN0RGcFBRZ1RpQk9rVVlMYWMzZ1doMVVhOFozY3JNRmFSTVZwMGljSUhGQzMwVU1qQzhZaWl1Z0tMRGl5S3pnXG5uTVdWQmVRNVVtYkllSWlNaHpEc1lUWXVFUzBlaEE4OGlUUmE2TFNKaW1KUHJNc1NWK2FRWjBnMndvNEd5R2dBd3o2TUI4aW9EK01SXG5aQ09reUZCbHVHYnhFZ01tUWtVcGtqWlFyUTYyTlFQdFdYUjdGdDJaUTFvZHBKSGpHazBrYmJIaFl2SWs2RUZHYUlhQkZoVWs4cG9YXG5oV0hSWm5IKzZPbFB6ZDN4NkRmM3Z2clZuZThGS0lyNDRHcXU0L3RGNjdSQ3RuY3pyZ1pCbFJ1cFNXZFFQTDBvQkdpRkZlYzdYSHgyXG4xd1Z3MkJDbEZJR2daczZSaWRBdnZidkp5OUpia0d5TUZCbDJQRVRHQTl5Z2kvUzdTSGNiMWQxRytudW8wUURKUm5WdWFQb1FwVkJKXG5palRicU00Q01yY0ljNHZZOWl6U25rT25UWFNqaGJVbE9rNFFGNUdiaUZ5cGllQWpnbGpyQjd3WVF4RkFrbzJSOFJCVGpDa09uU0I2XG40dE00SFdwSUFrR1QwbHNKVjRHN3Z3djlQZC8rM2k0eTdLSEdJOGl6RUxiN2ZsVlRnMW5MVUVxQmpsSE5GclJua2ZrRDJQa2wzTndCXG45TXdDVVRsTFdaWklzODJPK01sYmlzWkcwRVJJVEFUV2VzOVFkWkN2M0d1b3RQM2dxZnQrOU5DMytKOTJheVJOSGUrbG8wVEo3UTk4XG5XR1lXbm1WMmNaNzJMTHJaUmlVcEtrcFFrZmZ4U3ZtSUlWSVFoVVRXdExoV1JTQk94TXZyNHQxTEliNE1jQnpjeXRCYStrN29sajVIXG5VdVM1Nzl4c2lCc05jTU11cnIrSDI5MkU3V3ZJMmtYVStpWFkzWUJoSCtYSzBKRk02UWlWT3VsbnRNcEd5R0FQTmVoQk5xNkpyM2VEXG5JZFZZQ1hPdVV2VThYNUN5OUZ3aUh5UFpFRGZvNHJyYnVMMXRHQTlnOHdyNjlOMm9tVVZVMnZTOENPWGRURGJHRG50SWJ3ZlpYb2ZOXG5LM0R0QW1yckt1eHRvY1lEc01Wa2hsYjlONVhMbVdpckFtSzl1eHAwdlNVZERxQXNBRGNwRHcwaGZvYkdWa3E0VXFnd2FhdW9jNUlHXG5kMWh3V1dsZnZMSlFudUdiMzN4WGh2bkdGdVdESDR5ZE1uY28xS0hhbFUwUlZ2RHN2WEk3VmM2a2xKQ1QwTjdTNk1vRkJiWmY1MXlBXG4zRGt5UEZoR1RoaFppN01XVitSSW1RY2ZQc1lPdWpEczQ3cGJIaGdiVjFEOTdyN09uUnkrTTZjTnk2U2dHcFN6U0g4WGxRMWgwSU5zXG5pTXR6MU94aWlKcmFFRnR2Z1VxRk1zWmJVQ2ZlZFJRWmJ0REg3VzFpcjU1SGJWeEdpME1kdnhVMXU0UktVaytnQVZ2a2RmdGxkeFBaXG5Xb1AxUzdDOTVpMlN0Vk9sRXRNVmVWVWhra3haeVBDNHZyN3d2bEVmR1E5Umd6MGZjYTFtU0ZrU1ZaWUo2RkVwMElLTkRFMFJVbTFxXG4yYUJXcXBVK0hEWGJ0eDl0My80N2wzeEMvSDBBWlRBejQxcm1abkV1OVhLM1lNSnM4L2s4Rjl5T0ozbzFQOEhMN29YekJjUzJDbmxGXG5RcUxOaDd5VkhqSjJIaVJaV1lLMVNKa2poU2VKZGp6RURmdElmeGU2TzdCOXpjL0cwV0NpdDZpSy8xU2ttZG9kVHFya0svTWQzS1pTXG5mZ2J1cmlQNUNGVVVpTFBnTEZZY3B1bXd6dm9Jdy9xaGNkWkhKSktQa0ZFUHQzME4zdm8yT282SkgzZ0NUdHlCYXJSUWNRcUF5ek5jXG5QdkpXY0dzTldic0FsODVDZjdjZVFHLzlKclpDQXpnWGxGYkJLVUI4OENDcUlxQlN2NzgyM09LUWZoYzE3Q0g1R01xQ1Vod21BTVNJXG4wRU53Y2V4elZaRW41b2xXZFMyUWVBdWY1am82M1ZnKzJnRkc3dzhvU2JIZ2xEcWhSQkN4dFFDbUt0TWNRbHBsSXArRDBSNEVPaVFUXG5qRkpZNitvcWVGUUFTZUFpRlVneUo1UkZDUzVFTTBXT0c0K1FiSVFNdXQ2WDcyNml0dGM4VVBLczl0bmlIQWFGbEFVdXVJNUs2L1hKXG5NTkJ4aW5XVGJLcWFta0VBYXRpRGErYzl1UTdjeW9wZzBoWmlTNVEydm41RkhGTGtrSHVyWW9ZOWtzNE04dlFYTUFlUFFjVkxFR3dnXG4zYmE3Zzl1NGdseDZHM1h0UEl6NlV4eFBRY1hCbk94emwvdmFWNEU4b0VQSENTN1VIazhzWnYxQjFMVUxRVkhXT0YzcjVTaWxHQWk0XG5CQW9VVFMzRUZxSkFiS3VTak53a04yM3J4Z3F3OGY2QUVqVU9tQ2c2N2dJNGtLb0FZQ0tLVmJLd1Q5UUprUTcxSDZveTl6cW9xMTUyXG5yeXZBbk05aGxPTEZNaWtMcE1oRHlEZ0tuS1FIL1Yxa1p4TzJyaUE3bXloYkJMOGFaTyt5eEtxcE5vYzJTdWhVRVNpek1WcXJvQ1liXG5UMnluMGdvaW9JWjkxTVpsTUFZSlpSRldCSjJraURKK3NHd0pSUWJaR09VRWRqZkpIL2dJNllGRG1MU0JWdDU2VnFHNzdXNGg2NWZnXG5uVmRSRzFjZ0cvbDJpL2hyRGIrZkdzMWl1OEZjTXlHTlRHMGxuQk1LSyt5TU1yYUdHYmtOSW1LUmUwUkZzWmRjUTRscDFRM2lyTGU2XG5VWVFZZ3dzcXV0VStoVEZDS0tPSW9SSVNvNzMySktHK1J4ek91dU11VGxhNGdhUi9RNkFZRXg4VTlHRXYvdGhBOHNLc0ZUZWw4SG1pXG42a0xXVTR0LzNtbUZjbDR3Y2lIcm1UdEhKcEJiaDNYT2g1bEJVL0NXWklBYkQ3SDlydmU1Tyt1d2VSVzYyMkRMUUM0dFV0cVFNQW95XG51TFBNSmpFbkZ0ck1wakg5dk9CQ2Q4VE9NQWV0Y1VRbzhhNU5tUWpSWm4vZGhvZzMyNXRYVUZHQ0dGK242b0xGRk9kUXRzQ05Cc2dnXG5tSGhib3R1ektCTmh0TVlvVFZua0UwdHk3U0p5NW1YWXZPU0pzM2loelFHemFjTG5QdlFBdDV3OHdXeXJ5VUl6WWE2WmtrUWFyWFVOXG40R0dXOGNZN0Yvam1xNjh6eW5KMkJtTytjWEdEc1hXZVdGdW84MjU2S25kVzVMQjUxWXQrYVJNWHhTaGpjRUhMeXAyak5JWng2YTJ1XG50VFpFbHlQSVJrZktVWC94aHJialJrOWFyUThySkJYcjZzSEFDZUljV3Z5VlZEa2JoMUFHZDFNRVpSWVh4TFJwNGlwQ2FhM1hYbXdKXG5aZTZKYXdnMTNXaUlHK3dGUzdJQm0xZVE3bzRueE03aGJPSE5OQ0JGUVl6amthTkwzTE82UUROTmFLVUpyaXdwckNVckxkWUpMNzd4XG5GdC9ZSFZPYXlIZW9MVUFzbUdRcXVzQnpnMzRYMmQzd1JEWjBQTWFBRTkrSmU1dklwYmN3QjQraEgvdHg5TXBSVEp3U0tVVnVMVFlmXG5VZTV0WTljdUltZStqZHE0aUJ1UFVRZFdrV3pNNDRmbStMdGYrQlFINXVkWW5wK2wzV3lpVFZDNkZmVVpDT1VCanZ2dXVwUFBmT3hKXG4xdGJXK1g5LyszYzRvSEsrdmQ3am5hSDF0VGRGam5JTzRpUll5K0N1eGdQWXVJSzBPcmc0UmFLSVNHa3NnbllwVHBzd2ZzNVAxdkdBXG5jbnNEKzlvTGpXVG4ydEw3QllvaGlnNkpDRXFzOTlVaEY2R2RQNXVRcTFBYWNJTFZVT0tMYVZ5d09LNG1ydDd0V0d1OUZtRjlxT255XG5ETW9jT3hyQWVJVHI3eUw5WFdSN0E3VjFCYnE3YU1BVm1TZHNnVVBFcnVTT2cvUDg3Sk1QOHRSVFR6RTdPNHN4QmgyV05aVFc4dUszXG5YdVNsbDE1aU5ybU5sVE52OFdxdjVLMWhpU1NwYnpjRll1S0p0QTVRNXFqZUR0S2E4V0FSSUk1OWRCS0FraHc0aEhuNGFhTFpKZUlrXG5waE1aaHRaU0ZobTJ1MGU1ZGdIMzFrdm83V3VZcDMrU3prMjNjdkxDTi9uN0R4M2xqaFBIaWVJSXY3VFVXdzVUdVk0cFNjRzN4K2Q1XG5HcTBHaldhRHVmbDVmdmJnQ3IvNnEvOFVYWXc1MlRMODRXWk9FVUp3SllKS1U4K1RxdEMzdCswdFM2UGp1WnIyK1MxcnJjOWdWeFk2XG56NUQrSG5MMk84d2NQY214ai96NFRkLzU1Ly9JY04xYTV4c0RoZWlBOG5ZSlpWM28zS3A2aEZBWUFyNllVR09kVUdxRkQ1UW5pYlJTXG5oTUk1eERvZi81ZGxIZGtRWkd4R0ExeC9iNkl6YkYyRi9wN25ScmFvaWxCSUVXNVpXZUN2ZitRaFB2M2toMm0xV21pak1kcE10QU1VXG5jUnp6ME1NUGNlOTk5L0xiLy9xMzJkcmU1aTYyMEZqZTdJK1FwQkZTVDBIeHJBbWo4aXB2YnhmU2h0ZFo4c2p6b2ZFQWt6UlE5ejFPXG5QTGZJZkNObE5qS01yS01vU3NwK2wzTGpNdTd0bDRubVY0Zy84bGx1YnpxZTNQdzZmK3NuSGlPS0k2TElnNlFDaDU3U042cHpIUkpQXG5nYVk2NXVmbitjS3p6L0pyLyt5ZjRTNWU1TWNQcFh4MU0yY245OXhFNXptU05wZ2svUEFoK2N3aXJ0Vkd4YkhQR1lWaXFZcWd5M2dJXG4zVzNVN0NKTGR6NUVGQ2ZMK0NEc3V3SkZxOGg0UHlVT2NXV29tUWdLNVhSYVBBaHFQcW9KbjVhS200UzZFR3Q5cDVlRjEwZUtpWmdtXG40d0d1MzBXNk83Q3podHE2QnYydU40YzJwQnhzU2FTRVgvaXhKL25FUS9kdzgwM0hpT01ZclNZZzBXRnRMbFBjSTBrU25ubm1HUkQ0XG40K2VlNDA3R0NJbzMrdU9nay9qZWNEcWFjQlp4cUdFWEdYYjhKQkhCWlVPaXNrRGY5Z0R4NGdwemFjcFNIQ0VpREswakcvWjlKZHRyXG5MNUFldjQzbzFGMDh5ZzcvNVlrbUp6L3dHRkUwQVVuVlRwL1ZsdmNHaVorRjlmTlZmeDg5ZXBUNzc3dVA5ZlYxOGp6bi9obkQxemRHXG5qSFdFc3lXNkxIeHVxK0plUmViZDZkd0NMbTM0QktXSlBXWEl4NmpNVzNLOWNZWDA3aDloWVhHWllqUlk4TVppdjVaeVE0c2l5S0szXG5IQ0VrRHR4RXhLR25Ra2xDcUl6emNYOFJKb0l2UTZ4QVluRzJoTExBQm5jajR5RXlHdUFHWHJGa2U4MWJrbUVQU3AvcGxya0RxSmw1XG5ia25obDU1K2tBL2ZleWRwbWhCRkVWb0g0cWVZRkdwUGRYS2xOMFJ4eE1PUFBNd2JaOTdrd3NXTDNONHhySTBkdTNudS9icjEyVlFmXG5hSWNZTmZNZFNGbEFkOXZYLzk3L09OR3B1MmkzT3l3bE1ZbUNIU3YweGlQc3pocmxxOCtUM3ZVSTZiSFRQTEg5R24vNzdvTWNYNWpCXG5hRk83bVVuOWpxNnowdFBIZTJYanAxL1hXdlBvbzQveS9QUFBjMjF0alprWWpwcWNNK01TMVdnaWVRNEpQbXRkZ2FXMzZ5ZGZzKzBUXG5pNmJ3WTlEYnhhMWZndjRlM0hRN0M3ZmV5M3lTY0RrYkxYSUR4ZjVHUUZHZzJ5S1Z5L1BSRFZXZHg1VGNQU2s0SWJ4SFRUUU5hNzExXG5LWE9mTlMxelZNMUpCcmgrRHhuc3dzNDZiRjFERFh1b01zY3RIeUYrN01kd1Y4N3o3QU8zOG5OSERFY1c1ekdSOFNBSnBRN1R2cjRxXG5WS3BYQ2xMUkQ4WGh3NGU1Nzk1N3VYejVDZ3JMZzdPS3Ixd05aYUs2Z1NzS2RHcnFYUTk4aE9YQUZ1ak9IUEdqSDhjY1BFNjczZUZvXG5NNkdwRkVPQjlheWc3TzVnejcxSmN2dURtQk4zY1BkYnovRmZmZWdFQ3pNZHo1dU1EcUtncWkxRTFWNUUrZEI5Q3R6VElMa1JhSlJTXG56TTdPc3JDNHlOcjZPckV4SEp0cnNiRzN6bDZjZVBKdFMrOWVLaVFXWXhoMllUenZFNlJLUXpaRXJyeUR2bnlXNklFbmFEN3lVVlpiXG5MUnBhVTRpYTRWMHd2dkZtTktiUlNHWlUwRWw4QkNOVEpRVzZGb0JxaXhKcVVDVkl4NVVsa2NLRHhBVSs0a1lEWk5qMzVZTGRMZGk2XG41aVg1d1M1UmtoSjk3Q2N4RC84bzhlWVYvc1pqOS9GTHB4b2VKTWJVNXJ0YUp6UzlrTDNHOTlSajd5bDk1OTV4eHgyc0hGeEJhMDNMXG53R0hqdzNMeXpMKzN5R3YzZzBqUVN5em0xdnN3aDA0d1B6UExpV2JLWEVqWGIrWUYyYkJIdVhFWlBiZUFPWFNLbzJkZjRCLyt5REZtXG5xbWhHZTh0UnQzTUtGSDRsM3hSSWVEZElLbkJVRjFOeFA2VVVuL2o0eDduNTVsdjRhNS83UE1jT0xqT1R4ckJ4T2ZTOWQvUDFCQlpCXG5ob09RdWZacEVSbjEwZG1RK01tZklINzBFeHhhV0dRaGpqMHBVY3h6QTR0eUk2QW9oVzVPWkhML2FaRWJtRWV2Z0UwdUtqUVVaM0ZGXG5FYkt0R1pLSEFwOWh6MGMzM1cxazZ4cHNYRVVOdXBoREoybi82TE1raDA4eWswVDg5ZnRPOHJlUEtOcnRRRmdqVTgvTWFnbEM3YnREXG5lNmhuM2dSRTFYSDgrSEVXRnhhNC9mWTd1T3VPT3pnNjAvU3FyQ3RSVmM2bzJ2OUVnVElhdlhvVDVzVHR0Qm9ORGlVUnM2SFd0VnRhXG45c1laZG5jRDlyYUlWNDl6NS9ncS84dGRNelRTTkVSZjNySlc5VGVLVUpJeDljK0ZTSzRHaFp2cXgrcEM2c2Y3dWNyeDQ4ZFpXMXZqXG54SWtUZlBvem4rR09tNDc0a1IzNnpJNEtjb1pTeWdjaStRanlVUkFOaCtqK0h1clFTZlNSMHpRYlRaYmlpRmg1clN0MzByd0JKbTdNXG5VWlJTalVtQ2lxcGl3SU1rcEtqcmhkKzZXdUhudVl4M04yV29PTXU4NGxweGt2NmVGOUMyMWxBNzZ6RHNrVHp5Tk9ucHU4aDB4UExlXG5WYjUwSk9henA5cWthWXJSQm1QMmc2UnFVTDNNc2lLaVU1MWNGVURYb0hiQzZWT25NRkhNcVZPbmtUamx6Ry85TGp0RkNVcDdBb2hDXG5WRVEwdTBEeTRGTzQrU1hTbVhrT0pERXprVjlzM3k5THR2S0N2TGVMWEx1QU9YQ1lvN3JrYjZUYnpMY1dhMnRYSmZZSVZzMUxMNG1zXG44d0FBSUFCSlJFRlVCbnAvZTY4anJoUFU3NytlcXYzVElOSmFNeGdNR0kvSDNIcnJyWHpzOFVmNWs5ZlBNdXgzVWMxT0dBZUxTRmhYXG5WUll3SG5vbEY0SFJBSFBiQjlDZE9SYVRtR2FJd0FvZlliYTRnUUc1NFQ1b1Rtd3lXWEZXV1JJMVNXTHAvUnhoK21KOUZ0YUd0SHcyXG5xY1BvN1hyUmF1TUtiRjFGQmwyV1B2bEZGaDk1bW14bms1UEZIcjk4QkQ1emNwRWtTVHhoTmQ1ODE0VHdSdHNQMU5IQlZFT0NhNW8yXG4xdzgvOURBWExsd2dUVk0rOTh5bmVQVHh4MUd1Uk83NUVDd2VaT1UvK1NLM2ZlbnYwZnJVVDJOdXZvZGs5U1lXV20zbTRvaEVhVExuXG4yQ2t0dmRFQXQ3ZUZLMHVTMVdNOFdLeHplaWFlOUYzUW1pcUw0a0xFV0Z1WTZ3YTllbjFpU2FqVERPOTJSNU1GOGxvcjhqeEhSSGppXG5pU2RvTlZzK1N1M3QramNVeGFTY3BpeVF2VzI0OENibTJnV2lXKzlITDYzU2FMYVpNWDdESGlkQ0pvSjFydG9ENkxzQ1JZc1FxM293XG5xbks4cWlBblZKTUdkVStweXRCTFhlTlI1VzljTnZhVlo3MWQ2RzdCNWxYVTVtV1VMVGowbVMraDduaUV0YTkvbWJ0TzNzUi9kNlRrXG53eWNQa1ZZZ0NXQ2NqbXBxZHljVFlPNUx6VXM5SmZlYmZSRm01Mlk1Zi80Y1daN1I3blJZbko4bitlelBvWGZXdWVzbnZzVEdtVmM0XG5WNVRZemp4aUl0TFVheVVON1JYTmtYUHM1VGxsdjR0OTVlc2tkei9DNlh5TFQ1cE5ZdU5kZWxtVzJOTDZzL1huYWpGYUJZWnFiVkhsXG5qbTUwMUpaeDZuVUphWlNLUzZWcFNwWmxPQkhhN1RiTlJvcjY1RS81YUc2Q09WK1RFeWVvZkVSOCtDVHh4MzRTZmZKT29ya2w1bEl2XG5HbXBGWFdrb1FzSU5QTTBOT1lvVFV0K3c2cGNDeUxTcEM1YjlXdGRRY1ZLYjBWQUpaZ3RmVHpJZWVFNnl0d1hybDFFYlZ6Q05OZ2VlXG4raXpGMFp2Wis3UGY0NE1mL0JELy9jd2FOeDg2c0krTDFETnJxb1AzZFNKU20vYnArbzJxbG5keU5STTNsV1U1L1g0ZkVlSGgwOGVZXG4xeFlOWE9qdUlSZmZwSGp4T2ZLdHExN3JDYUtWMzJ0TjJDbEwrbG1HMjd5S3Z1ZERKRkhNWFJmL25FYVNNaHFONlBWNkRJZERSdU1SXG5SVkdRWlJsbFdWSVVCZFphcjB5N2lXV3h6bm9vUzNVZDE0R2tjay9WcEtoZWQ1WDdNZUU3ZmVuRVkzZmZqbXExU1Q3eFJkVHFNZHEzXG5QNEIyRnRFUkxDeWpEeDVEbmJvTDFaNGxhczNRYmpTWWp5SVM3VjJpRmFFQXJNZ05pOWx1NkhwRVJOWDdjaGpqQzRTTjMrQkVoNVM2XG5mMXdsc3Z4N0s5R0tzdlFGMElNZXNyZnRFMjdiNjZpNVJWYWUvaHpxNk0zMEw3ek5Ndy9jeWQrZjMrVHcwb0lYbzJReStIVm52aGRJXG42bGttMTFrVTlvV2kxZnVWVWh3OWVwUzl2VDJzdFR4eTM5M01EbmRKSHZza3cwdG5VVXVydURkZnhGNDVoeHQyS2N1Q3pIbVFESzJsXG5YMXJzc0k4YkQwa1dWemg0OFR2Y1piZTVldlVLNTg2ZDQrTEZpMXk5ZXBYdDdXMzI5dllZalVaazQ2eTJMTTQ1U2p1eE1OVjExcUNBXG5TUzVyNm5xcXZuaTMyOXJuYlBtSlR6Nk42KzZpWnVaUngyL2w1R2QvaGxOUGZzWmJrMFlidlh3RTVwWlFTUk9UcE16RWhtWlkxU240XG5GUkM1blJROFhYKzhaM0cxQ0dIRldiWDNta2FiQ05GaEdhVDJXMXNvcXJXNERvVXZRSllncXRIZmhjMnI2TzAxMUtHYk9QTFVwK21wXG5pSHhuazgrdnh2emNhc2xNM1BTenpFN1dERWQ0NWRNWTQ3TzRJUXV0QS9yci9VR21PRXZ0WnFiQ3d1bE9WMHJ4b1E4K3lybnpGemg5XG4ralNkVnBOazdUeHkrRTdrNGx2b2xTTncrU3p1MGxuc3dXTVVuUVZHalFadDU4aEVNU2hMMkZsSGRXWWhTbmpxNmd1TVRjRmdNS2o1XG5XcElrTkp0TkRoNDh5TUxDQXJNenMxaG5TVk5mMEJTRjlUM0dHQndPSTJFMXc5UitKNVZCdktGbGdUcGFLb295VEM3dmpXODZlZ1NWXG5mUU1hTGZSNHlKWHRUZTc5K0xQc3RPYm9EWHV3Y0JEVG1VVWxEZExJNzJPVGFPMEZWYVVtT2JsS0ozdC9RQW01Z21CUjBNWXZZbEttXG5YbHdkRzBNcjFEbmtJZ3ljeGtrb2tjeHpaTlJIdHEraE5pOFRuYnlEMWFkK2dyVzNYaUZlUHN3ejdTRS9mMktKUkluM3M4N25pTFR4XG5Td3VjZFpqSWd5U0tvdnExYVk1U2N4Tzl2M3pRdDM2SzBHcUZzMzVoOTRrVEozanVULytVb2loSjB3Yk5uVFZjTmtMUHpudGU0eHhxXG43UUsydDROYlBrUnAyN2pJVkxVYVdGdWlXalBNdmZOdERqQ21MQ2Z1cnVJbDQvR1licmZMNnVvcUt5c3JMQ3dzZUFzU3dCdkhDVTU1XG4wRHR4RTBzNkhRUk5nU1pjVUIxU0krQ3NveXdMNHFBdFZaT0pQUGVXZlR5Z2QvVUMzMTQrUm5uenZVVDlQVEFSdXRIR0pDa3RyV2hvXG43ZGRWS0YvTExQamMzUGRpVWJRNFloLzYraVdrVElGRlJSSGFSTFMxb2hQMkZzdkY3MCtTRzE4Y0pNN0NzSWZhdUVKNjRqWm1udm9zXG5hMis4eE16TmQvSHA0UmwrOGE1RFpGbkc1dDR1dlY2UG9paThHTlpxMFd3MmFiVmFwR2xLa2lSK0prV0NCQTJvU3F3NWZNZ3BUaWJSXG5WNTFQbTRDbVd2MHZUdWgwT215c3IxT1dCU0tPQjA4ZjQxdjlYYUpUZDVHZmVkbC9lTkNEL2g2dUtGQUlCcjlNRTJmUmpSWVNKL3kzXG5ONmRzam1aNDVlV1hhTFZhTEM0c0VFV1JYejhUUUhQeDRrVjYvUjdIamh6andQSUJQOTZOQmloRnJPTDZXaXBMK1M1RjFrMG1oY1BWXG5ZTFBPNHNRUnh6RnhuSVJKcmJCdW9zc29JSC9yTy9Ubmw5R3pDNzZXTjBwUVNRTVRscUlhSnBQTmlhOVRjUUxXazlsM1VaSWIxNk1nXG5kVVFzcGlLd2tWL1dhR0phV2pFYmFWcGFZWlQySlkwQzI2WDJGZ2ZCOUhjeFIwK3ovTkcvUm5mdElpZU9IT1luaXpkNDlzRVQ3R3p2XG5jUDdDZWM2ZlAwK1dqZXNaMUdxMW1KdWJaL25BQVJZV0ZtaTMyelNhRFp6RUpDSGMxVWJYdWtRRmt1dk44L1VKd21vellSV1NsZVB4XG5tTm5aV1Q3MjJLUDg2bGZQUXRyQ3JWMEk0K0o4R2FhMUdLQmxJa3JuU0cxSk9laXhQTnBoZHRIdzBDYyt6bmc0NExYWFhtVjNkNWQyXG51ODNTMGhMdFZxc2U3TjJkWGNxaXBMUmwvWnpSeHFjZ0lsVmJscXA5VmV4UVdaQ0pGL1VXMHpvTEFrVmVzTEp5a0RqeEt5R2NjNVJGXG40U2Qwc0l4Y1BFTisrSlRmWGFJOWgwNTh4SnBxd3Q1dy9udjk2Z2pQVWF5N3NkdDVUNkNvRUdMNktNZUV0YnNHcFgxQ3JoUDVyVUU3XG5rVUdKMEFqVVlSeEg5S09ZS0U3SmxXYmx4MzZLTkJ0eVcxdnhjeXNsangrL2xaM3RiZDU0OHcwdVg3N3N3OGVwRUhZd0dEQVlET2oxXG51aHpvSGVEUW9VUE0ybGxhYmQvNWlVcjJ6VVNqdlZ2UWhNN1dFM2RVdWFkNlA1SHdlR0ZobnNGZ2dJaHc0dmhSM0xXdndzSXlqRWVvXG50SUhrR2FyZnhkbVNTUHVWZ3kxam1IY0YvYjFOSHVqa05Nc0ZlcjBlcDA2ZjVyWFhYd01SK3YwK2VaNXorTkFoV2xOZ0dRd0dYTDU4XG5HV01NY1J6WGlVS2xWZDFlQ1h1ZzFnSnpKUUhVYVFYcUhKcDFsc3RYTG5QNDhHRnZjUU9RenA0N0QwbkRMOXQxSmFxL0J6dHJsUE5MXG42RWE3N2g5RHRiRmltRGd5MlRTb1dqUCt2b0VTcmpKRU45V21MeDQwcVRHMTIya0dyYU9TelRQbnlOTW1ydEdpdVBWZWtqam1Ka3IrXG4zcEVaRGpjanJsNjV3dlBQUDgvVzFqWTd1enVNUnI3WU8wMVREcTZzMUpGS3I5ZGpQQjZUNXpsSGp4N0ZpYVBUNmZqWEl6OEFGV2Q1XG5sNzRDK3l4TGJWR0NYM3I4c2NmWTJkbmgrUEdiU09JWUxyMk4zUFlBNXNoSjNQWUc1T3UrSnFVcy9GMGNqQ2JTbW1QTEIzRXJxeHdwXG56dkhPMmJjNWUvWXNnK0dRdmNHWUM5dDdETE9DQTUwV1JBbW5qemYzUlYyOWZvKzF0VFU2blE1SmtoREZrYmVNRmJlb3dGRTF2M0k3XG5qanFFRmhHc3RUanIrTnJYdjg3SlU2ZUlUQlNpSmNlLytlb2ZRK080THdMcjdYbnhiZGhGRldOY1dmaGlzeWxGdU5yNFVNUVQyTERhXG4rVjNwais4Q0ZKbFNhNWpVbWhwRHFoWHQ0T2QwdFVvZnhRemdrcGpNT25iRWtxNmVJT3R1OGV6d20xeTVOdUxGOVhYdXZmOEJubnI2XG5ZeVJKak5hYWYvbWJ2OG1MTDc3SWNEUWl6eklPSFRwRUhIdi9YUlJGYlhWT25EamgzVTZWTlRZYTVZTHBGcjEvVDdpcHNGRVJzdGxUXG5VY1N4WThjNTg1V3ZZRzFKa2pSOVJOYnFvRzk5QVBmQ1Yvd2xEM2I5RWxheENJb2tBdDF1Y1cvYmNPNFB2c1p2M2ZseG9rLzlwOHhlXG5lSU5YL3ZGLzQ0RUZYTmtiOHUzTG01aXZ2Y1IvOXZTSE9MeThVRXY1VzF0YkxDd3NNRE16UTVxbVdHc3h4dFJ1UmtUOHRTZzFBZi9VXG40WnhEbkFmTE9NdVluMS9BUkJFb1QyNi8vc29aK05CZHZrcHdaOTFQSWxzaWhWZktuYlA3TTMwaHZQS0E4V1dydnY5dTdINXVxS09vXG5Ta1JUeWxkMEsxV0h4RW5ZWFVrRjh4a1owRnBRc1dFMmlqalNTSmlKSWlLYjh5T3JLMXdiQ3lkT25lYkpqejdOOHZKS0xjOERmT3FaXG5aN3o1ZFk3dGJvK0xWOWNtRVFKK2NOZlcxcmgwNlJMZFhwZlJlRFFSc1p4OWwveGRsemhjSDFvU3JGRFlNcXpiN2RhcTZYMDNIYVlzXG54aWdsUHFPTVF2SWNOK2d5ekRMS3NKcXdFU3U0NnpHdVB2Z1pOamZXMmQ3WlFwKzRuZVVuUHdOSkE4SmtFcVVwcmVQLytyM251TFN4XG5zKzlhdXNGU1RpdTJUdHcrZmFTUys2dnJxYTh2V0pUZHZWMk9Iam5xSy96Q0JDbkxrbkZ6eHE4dHlqTVlEWDJSa3NOWENqclpCejdQXG5QMVc5ZzVUZis4NXpGSFZqei9NWDNmTkdmTUpNdkZ5dmxCZlhJZ1ZKUUgyay9KMGpHa1pJakM4VW1vMGlWbGVQTUh6K0sreW9oT2ZqXG53L3ptNy94YnpyM3pEcVBSa0N3YmsyVVozVzZQSzFldTRKeHdkbU9QYjE5YzU5OTk2MVcrOGZwWmR2cURmVzdsNnRXcnJLMnRNZWo3XG5SRml0ZEU3SjQ1TVE5RHF4N1Rxd2lBaDVucE5sSGhSZit0eW5vZC96QmQwbUZCMDdDOTF0K2xuR01DK3c0anM4aWVDbXh6L0p5WVZGXG5Cci8zejdtOHUwdm40YWRKN25rVTVnK2dGcGRoZGg0NmM5RHE4SC8vKzY5UmxKT0t3c0ZnUUo3bmRUNm9CZ2V5RDl6VG5HUmlTZnhuXG52djN0bDBrYkRScHBvNDZ5aHNNUjdzQmhUTFBsdDg0b2NoOTlCb3REcmM5VWhGL1ZUc01HSUphMUh2VTlBS1UyMzRxd0hpWWtBaUhzXG5xT3pGTHEwZzBkQlEwTlNRYWlHSkk1YmJIYUpMWjNqanltWDZjNGQ0Ym4zTTczNzVEemgzN2h4N2UzdXNyNi96OHNzdjhXdi8rbmQ1XG5mcTNIU3hmWHViRFZaYXMzNHN0Ly9ncS8vOEozMk9rTjZzRjF6ckcrdnM3MnpqYmo4WmlpS043VjJSVkk5ajFtMGprVldKSTRvZFBwXG5NQnFORUhIY2Uvc3R1SjExMUtpUDZzejVEclFsc3JOQk51eXpWNWFVcGFNa2JPOWw0TGFQZjQ3VlZvdWRmL2Yvc0w2MWpqdHhPOUpvXG40VXdDelE3U21ZUFpKV1IyaVc5ZTNxemJVdVI1RGZJYXhFemFkNlAwUk0xTm5HT2NqWW1paVBuNWVlSWtCbnpmZk9PbGx4blBMRUtVXG4rcWdIL0JZWmNlSURrWDA1c3dxY3dlVUZybElSNlJzemxML0k5VlRmcWdTdC9jcTBhbk5jSFZhWUdRV3hnb2JSdEJTMEREUWlTSk9JXG5EM3poNTFuN2pWOWx2VGxQOThqdHZIcnBHbi93NVM5ejVzd1pubnZ1T1g3bHBZdjg5c0pkckQzNVJkVERUMDBHRlhqNzZqcmZlUDJzXG5YNlVYanVGd3lPYm1Kb1BCb002ZjFHQVIzcFdWdmY1Y2dhamQ2WERMTGJmUTdYWVJFVHF0Rmx5N0FKMVo5T3B4M3c0UlpIc2QxOXRsXG5iWnlSbFpiQ1I2WVlKYVN4NXQ1bmY0NzdQdmcwOFp0L1RtT3dSL08yQnp6UTRpVFV4b0trVGM1czlTYWRYV1hCcjQ4dTFMdmJXN2tkXG5aLzI1dENVWExseGdsSTJabjU4UGhWRlFGQ1ZmK2ZickRKc3o2TWpnc2lFcWlwQzBpVXFiU0JSTkt0N0NUbEttSXJUVjd5bS82MlpvXG53QTJCY21NeVc4WHlGZEtkN0ROYkxzUndBdUVlYjBKa0ZFYkMvdllJU3plZDRzakpXN244Ky8rQ1d6LytlYzVjdWNUUzNtdjh6aC85XG5LWC9HQWpzbjcvVjd3QU5xZnRsWHZoYzV5bWljd0F0dm5XZHhyc1BEdDU3eXlUbm4yTnZibzl2dDBtNjNTWktrWHFiaHRNTW84NjdRXG5lQnA4RmJGTmtwaDJxOG5heGdiV1d1SW9KdHJkUk0wdWViRXQ1RkZrMUtmYzNXSXdHckRlYkhBczBtUktreHBGckJWekM3TTBIL2dSXG5qdDcvS09BWDdwWGpJVi83VjcvRzlwLzhMa3JLME9lVE9kcG9OTHpTckNlRWRacDg3NHZpQ0c0bjVMeUtvaUF2Q21abloyazJtMTdCXG5Gc2R3TktUYldrQzFGNkFzY2RjdVFweENvKzNsL0xEcmt6WUcxS1N5cnE3U2tCRDlLTmtQM3V1Tzkwb0toa1pQUWpVSk1tKzE4ZDEwXG5SS3FWUW90NEZ3UjBqS0p0NE1GbnZzanF3Y05jZXZGcm5QekpuK2ZOaHo3SE4yNTZuTzJORGV3cnoyTXZ2RUYrOWhYYzI2LzRCVnJMXG5SMkQxSmpoMEFyVjZuRmUzaHV5TnhuV2JScU1ST3pzN2pFYmoydGZYKzh0T0U5a2IrTnFxK2gwOCtldjErbjZOaTRLN2p4M0UyUksxXG51eGtXaVFua1k5amJ3UGE3WE0wSytubEo2U0N6d1ZTTGtCcEZNeEthRWFRR1dxMFd4MisvRDlYcUJKRHVkNE5WeEZNVlkrMnI1N211XG43MTNZZXNPRnBHS3YxMk43YTV2bDVSV2l5THNkYXkwdnZmRVdGM0pCdDJaUVpZNWNlaHZTQnFvOUEya0x3amF2U21raTdiY29xVUJTXG5JYWE2VjBEVlQrOGJLUFZYeWY3S3NXb1BlbHV0QkF4aVRRVXFneGZmR2dvNkJtWWJLZmMrOFhGT0hEN0M5c1YzU0k2Y29yMThpTlpkXG5ENk8yMTVCWG5pZktNNGhUMU5JcTBtejdDQ0pKSVcxd0tSUE9iUFZEcDN0LzdOUDUzdjJVWlZsTDJqQnR2dGxYYVhBOVdPSTR4cGFXXG5QQzh3UnZQVVEvZjdYUkoyMWozcnR5VXFIeVBiRzdqK0hvUHhtUFdpSkM4czFrSHV3Z29tTmJsQmdSTVlGWUtiWC9IMzRLazZPRFNrXG4wV2pVT3NyMVZYdlh6K1NhbXppLy9MWW9DcmEydGpGUlJLZlR3Ump2K3JOeHhpdHJPMXlWMUM4ZnpYTy9QVm1qRFoxNVZOcEF4NG1mXG5oR0VEUUtNOHQ2dzRTZVYrcEZLRzM0T2x2QWRIMmRkcW56eXFzcFpodDBhL2UrTmtSK2ZLRFVWQVF5dWFDdG9HWmhzeHArKytuenR2XG52cFhaK1FPTWQ3YzQ5dmduV2Jqdmc2Z2pONU9ldUozam4vNXA1TUJoVk5KQVRCSzIyTlFRSnp4M2Z2K3VsdjErbjE2dlI1WmxOVSs1XG52aFNoVmpqZmRWMyt5ZzRjT0VDYXhtU1p0MWEzSER1TTI5dnlKUlZKSTFUb1dlanY0bm83MkZHZnpUeG5yeWdwaXBMQ2VyRGtEbkxyXG5iNWd3TG9SQlhySVpLc3VxWHp5NTBFWXB4ZHpjSExPenMxNXdDMHRPYnJoRVkycm5iZWNjWlZtUzV6bXZ2L0VHaHc0ZkprMVN0UFlKXG4wOHZyNjd4d2NSMjlkQkRSaW5MdEVyVG5VTzFacEQyRGFqVERCc2plL2NSQm1UVlRaWmwxQUZERnl1OXh2S2N5VzdrZHhYNmR3Z0tGXG5PSnFBdFVLcC9EMXFJb0ZJaFh2U2lvUTdleW1NOXEvRkN3dk16QzB3MC9va3I3endwOHcrL0RTbmo1NWdZekJrN2UxWHVmV24vZzZuXG5Wdy9TMzdyR0gvL0svK0FMaEpWbW1PZTh2ZG5sOUlGWjc2K3RyWUZTRkFWSmt1QnN5TVk2NTBOR0o5WHF5djJERVpUYTFkVlYwalNsXG4zK3V4c3JKQzZxeXZ2anQ4QXIyMWptd05mQjhPZXJDM2pSMzFHV2N6Yk1ReFRhTm9XWTA0aGRVcVNKeCtsOGhMNHpGN2E1ZHhnNzdQXG4xanJMZzBjTzBHdzJXVnhjcE5sc2hvSFdFNnN5WFNveEZTcUxrMW96dW5UcEVxdUhEakV6TTRPSmZENm5LRXJPYiszeThoRFVzUm1VXG5kYmpuL3dEbURzRE1Bcm8xaTA3OFBuSlYxajlXZmo5ZEZTeXJxN1B0ZUk0U0RNT05qaHR6bENxaGh0VGJVMVhiVlJYaWQ0MzIrNlVxXG5TbGZkN1VycW13c29QR0JpSldHblpmL1hpV0hsd0FFKytQSFBjTnZ4a3d6V3J0QXloZ2NmK2pCM256ekYwWVZaSHJqbEZrNDg5U21xXG5kU21pRFAvaU8rZkMvUFF6cjlmck1ScDU4YTJLQ2lwdU11MkdKaUNaY2tzSWNSUXpIQTdwRHdhVVpVbUV3NHk2NkpVajNtejdIdk03XG5HdTF0SVlNK3hYaElOOC9aekF0R1ZkUlZlcExaeTNNdWpqT3VEVVlVZ3o3Nm9hZFFDOHNZcFdnMUV1Ym41NW1mbjY5SmFMMzBwREk5XG40VlFCeERtL21VOVpsZ3dIUTE1OTdYVU9IanhJbXFhZWxEdkhhRFRreXkrK2hsczVpazVTSCswNEM2ME9hbTRSbWkyL0cyYVY4VmZLXG4zelUxRU5vcXgxWURSYXIyZkM4Y3BSWm5xczF6YktESGZtLzV6THB3UjR0cVkvOXd0d21wN2tiaHM1SWFpTU5mUTArSTdvd1JsaGZtXG51UHYyTzdsemRZVmo3WlRGVk5NT3N1QjlqejVKTkxmb0xVSWM0d1MyQnVNdzZJcCt2ODlvT0tMSTl5dTB0YTR5bFdpc0pza0VOSDZGXG5ZWnFrRFBxZTBLNHN6blBmaWFOK3hIcGVUVlVpZnVINllNL3ZJVGNlTXNwemRxeGp1eXpwMlpKdVViQmRsbHpLYzY2T2NzcmREYkFsXG44YW03VUVtREJ3NHRNTnVaWVdWbGhVNm5RNXFteENGOVVhMzdtZTd6U2p1cHRKWTh6N2x3OFFJMzMzSUxuYzZNbC93VlpIbkdPeGN1XG44ZVhOSEQyMzREL3o1b3ZJekNKcVlRV2FNMzVyMFNpR3lMdnl4QmhmRE9zVmozb0RScUh5SE5WaytoNDR5dVM5RWpZUjlwVnJpQ04zXG5RcUVnZDFVTnFMOU5TZVltZDhIeXR5cVpVS01vZ0NWVjBGUXdZeFJ6UmxpTVlTbUc1VVF4Wi95dFgwc2c3c3h4NVA3SHBoSlltcTlkXG54MVY2dlI1NWtYdXJjcDBNUG4yK1VhaXNsZWJreVJQMEIzM0tzbVIxZVptSGJ6bUJaQ1BJaHY1alpRa292OUovMk1XTlI3ZzhvNWNYXG5iSmVPemJ4a295aTVtdVZzalhQS3dSNXVaeDJuTldiR0YwTDk2TzNIT0xoNmtQbjVlUnFOaHM4ZUc3UFA3ZFRYV0JOWUQvd2lMOWphXG4ybUk0SHJPMHRGVG54NnkxakVZai9zbnYvd2x5K0NRcWJ2aEZYV2RmUTgwc3dPd2l1ak9EU2dJL01SRmFtN0FqdDcrMTNQVHFpb2tsXG5EdjMySG9yYlgwaG1wYXFxdDJHWG83RGRlT1o4SWE0NFYzdW1Vb1NzZGtPRW15RkpmVGV0aXVpbXlrZEZiYU9aMFRCckZHM2xxMlVrXG5SQTg2amxrNmRLd09YVndVc3pYS3c4WDRDK3IydW5YZXBKTHpaVHFuTVUzVUFzSDFZUEhuMDZkUHM3MjFSWjduYUsxbzVrT2t1NE5LXG5xL1ZQL3JmVW9JY011a2creE9WanlySmdyeWpaTGkwYmhhVlhsQlRqZ1NlOVoxOGhPbjRyaVBEWTBTV09IVG5DOHZKeVhZaFZsUmxVXG5ZSzBQb2RaTEtnS2JaUm03dTNzc3pDL1FicldKakM4UExmS0NsMTk3Z3hkY0J6Mjc2SGRVdXZpMnR4eUx5ejU5MEdpaDA0YmZ3ZFBFXG5hSzFJcWhJREQvL3JvdGtKM2ZqZU9FcDRjOFZSWE1nK0VyaEpIdjRzZm5EODNiaFViVmtLSUpQSm4xV0tZc3FrUlVvUml3ZEhqRWQyXG50YXRrR1N4QXZIU1FkT1dJYjRmV2RNYzU1N1o3Tll5SHd5SGowYmd1WEhZeXFhM2RKNHRUNlVEN1owS3IyYUxYNjlIdisvQTdHZzFRXG4vUjNNTGZkQzJxUmltSktOVUlPKzMxdXV5SkU4dzVZRm8wQTBpNUhma2NGZHU0UWN2eDB6czRoY1BjY2p4dzZ3dXJwS3A5T2gwV2pXXG5JRkZhMVM1a1duU3JvaDBmdHVkY3VYcUZuZDFkRmhZWFNkSUVGSlNscGRmdjhiLzl5WGRRUjA2aG15Mi9KT2J5Mjhqc2dzODN0V2ZRXG5hUnVpQkowa1lEU1JNV0hyOXNrZFVhcFpJNHFwU2ZRZTRlSjdBYVgrcFBPN0hTbm55YXdFc0dUT0U5cWlFb1VDV1BJS0pNN2ZheThuXG4zTDB6TEtmMHU2Rk9kb2NzQ1p4R2ZEbGxKdjd6cFlPRnd5ZFlQSG9xSUJkNmhlUDh6bUFmbUFkQlQzRWhZV2FkRGMwT3BRVk1LY3BoXG5ZQ3J0UWluRlRjZVBjL1hxRmNxeTVOU2hGWlpqaFRsK2krY20zbm43amh0MElSdmo4c3h2TGxqNFBWN3NlSUFiOW5HN201U1gzeUk1XG5mZ3U0a2gvcG4rT2UxWVdhd01aaGY1U3FKcmdhbENyWFV3RzlxdGdmalVZTVJ5T09IZzFaWXVXTHFMUHhtRC84MW5mWW5EMkltWm4zXG5GbjNqTXM0NjFOSkJhTStobXgxUFlvTitva3hVMzExRVYwUzJ0clJWbGxycXgvdFdNSDQzb0ZUS3E3Y2dZVmRJNS9jNXdkbDZwK2s4XG5pRUxlOFBoZEh3c240WWFNMWMwWlBVREdNbkZMMWNaL2xlVVpDNHhGUEZDc0oxaEdhNkpRbXlLQW1NamZhc1ZOc3FwVk50YTZrR2lUXG4vVEw0dEdXWkp2UFYwczhQZi9qRHZQTEtLeFI1d2IxMzNNYkpUdGdUelpaaFMxRy80SXJCbmw5VlVPYmhCZzBGTmgvNzdVVDdlN2kxXG5TNWo3bjhBMDI4enZYdUhSV1ZoZFBrQ3IxU0pKRXIrZnk5U2l0cnA4TTRBRW9TYXc0MnpNbFN0WEtJcVN1Zmw1WDdtdm9DaHlMbHk1XG55dStlMzZZM3QrTHJZTE1oY3UyQzE1OW1GdEh0R2I4aGNwTDZaUnFoSWpFTnQ1L3hxdXprVHV4VlZsbVVMeEdkZGtmdkN5amhPL0JiXG5YZmdWYXBYYkVlZnZxSlU3bWJnZmNYNm5DUEhibkJkT3duMTFJQk5WRTkxUklMc2pCMlB3R3hGTGVCemVWK0xySkJTS3VET0hqcE82XG5mdUxzVG8rMS9yZ21mc1Boc05aVEtpSTRuU0IwSWUxd2ZRNEY4UnhoWlhtRlN4Y3ZNUmdPNkxSYnRIYlcvYjcwblRsOGlVWElsUFc3XG5NQjd1dHlqNTJGdVRqY3RJczAyOGZCanlNYmYwTHZIZ1lwUFpHUyt1SlVsQ1pLS2F3RTc2ZCtKMnFzcTFMUGNMMUxaMzl6aDY5QmhwXG5XUFF1VGhpUHhyeHcvZ3F2U1FNOU0rZDNtOTVjZzM0WFdWeEJkZVo5UFVyZ0pqcHM4bWVVMzljL0Rpc205bk1qQ2RyQkJEVGZrekpiXG56VXhFL0s2UVlmRzVqNEpjZlV1U1hJUXNxS1BlMm5oNXYrSXJlYkFzT2Y2VzgvdEFJakJDTTVnQ1N5WkJIbmQrUDlibXpmZWcyN04xXG5jbTE3WE5BZDUzV0hsMlhwNjFOS2V4MDRKb3ZDS2xOU0Uxei9WZjdpamVhV20wK3p0cmFHaUxDYWd2UjJpRDd3a1hETG1URGpjci9uXG5QVVZlNzg0ZzJRanA3aUMySUQ1K3kvL1gzcHNHV1haazkzMi96THU4cFY1VmRXMjlOeHJkalFZYTYyQVpFak1ZRDhrWlNpUWxrYVpGXG4wVFRIcGl6UmRJUkNvYUQxd1piRDRYRFlINnd3STZ6Z0Y0ZHNlU0ZGYXlFNXdTRmxtVU9hNUZDa09idG1CV1lBOURTQTNwZXFycTcxXG5WYjM5M3N6MGg1T1o5NzVDTnhhU0NvZkQ4eEFkRDFYMWxuc3pUNTdsZi83bkhGVGVZRzV2blo5czc3T3l2RVNqMllna3JUcGtINjdGXG4ra0FobU14Sk1XRTBIUExxYTY5ejRzUUpPcDBPV1piaG5HTlNUTGg2WjVWZmZma0trNFdqcURTWHFTTDNia0c3Z3o2MExDeTkxZ3dxXG5hNkR5M0krZVNjajlDRCtOaE1TMTVxa0llY2tuSmlPaS9UNFlibFhvSkFJU2h5WVpBODdnckdHQ21Ka1MvSWhZTVQvT3FVRDdwelNWXG5HWklteFBKdmFFUXdocWFhRnp3Mk1ER0M5bHBUVWxoTHVuS0NwTjBCbEtoSHBablVBTGFpa0FLczhXUWNJZThwT0gvSzNuZ1Q1Tk5ZXG53czlRZk9JVG4rRGk2NjlSRkFVLy92SHZZNmEzUmJKOFROcHlsVVhWWjNjOEZMTlRsbEo4Mzl2RGJ0MUZ0MlpKRm8vZ2huMmV2L29sXG5Iamx4TkVZNVFaT2dxR3FwYTVyTldPdHJkQ1RLdVgzN05zZU9IYXY0SnQ0azlYbzl2blRwS2x2TEQ1SE16SUlwTVZ0cnNIa1hsbzdCXG56SnhNUDgxYTZFYkRWMHpJT0Q4UkZCbFdoYXFqSkhWZnBYcCtmejVLOElJOXlCYUdMd1ZhSGM0eE1TNE9YeXFRQnNPQ3R3aGh0eXhsXG5KckVndDk0Y1dSR2FzWlZSOUdNRGt4SktBMlZoTWFWaFhCVHNseVU3UmNra1hQekpjLzY2TksvYzJXSmNpdFNYWmNsZ01KRG9veXltXG5zc2toaXFnZm9HcUpSTk5vcmVqTWRLUm9xN3ZIK1RObmFOeTRKQUl4djRCcXoxWlIwN0FuTFUrOU5yRzdHNmdzSnozM0ZNNGFIcnI5XG5iWDd1dVllWm01c1RPa0dTeHB4T0NJbGxNMm9PYk1qbGpDZHNiVzlUbElhbFpZSDhaUktKWk14ZitjNmIvT01yMitpbEk5STd0NzhIXG5iN3dDUngrQzJVT1NPVzYwVVhrT1NZWk9jNVJPYUtUYXowM1VVYU9FK3c4RWgvcGsrUWZJeUlNRnBWcGNiMzZDWnJGRy9CRm5aUUNrXG5yK2NwckV3Sk5UYjRNaEptV0N0eVZRWnpaS3BSc01Zb2JHbXhwWFJXSFBqZUk2dVRrdXVqQ1hkR1l6WjdmVXplNU5DUC9EUnFUdm9QXG4zdG9iVUhqMnVuTlNhUmdTaE1aSUpybHVmdXJtWmtyVCtGVkowb1JuUC9Bc1Y2NWV3VG5IazdNWlp0QWpmZXBEdUx6SHQyRVVBQUFnXG5BRWxFUVZSSkdGaWlCajNmYTM0c28xUzI3NUdlZlpLazJTWlp2Y3JmNnV5eXZDd09iSlpsa1drZkd2eEZ1TnhWVFhTTU1SUmx3ZDdlXG5IaHNiRzh6T3pkTHB6RVppMkdReVptdHJtMS82NWx1b1U0OUlPVWxSWUs5ZkVtZldUMk9QdUVtV296d1NxNUpFVVBGWW91SDcwRWJFXG4ydk9LZkhRWWZMbjNKU2d1aHRNcXR1OTBYZ2hrdnBpTVhKMDRjV2dMQjZVUjRRazhDbXJNTXk5bjh1dlNOemMyaHRKWWVrWEJUbGx5XG5aenpoK21qQ3JWNmZyYjB1dTlzYjlONTRHZlhJTTF4NDZDeVAvL0JmZzFUSXk0V3BlS2lqMGFpaVJ4cnJRY0xBcDZtMWxxaXAxUmdpXG5lMlQwNU1tVDNMcDVrOEdnejkvNXhFOWdiMTVHNXhuNjZHbmN6THhzOFhpQW1veHh3d0hxMmtYUzg4K1NMQnloM052aHB4cmJQSFhtXG5GRE16TXlJa29TRmh2VVhvZ1h5T0tRMWxVVEljRE5uZTJhSFpiTEcwdEJ6TFJNdXlwTmZyOGMrLzlETFhaazhJNnVyQTdHekEzaTZzXG5uRUROTGFCYUhRL1g1NkpKRWhHU01GQXpCVDlldUphV3FlRkwxcVByTGdyUit4Q1V1bVBqZkdnc09aOUFZQmJ5VXVFUjJvazNQMUtXXG5HTUNqSUIzSXpCdmoyM3o3ZVh4OWE5Z3VDemFOQ01uZGNjRmViNTlKZDRQSjZuWEtLNjlpQm51MExqelBRcDV6NHZ3RjB1Tm5VVnJ6XG5OUS9uQjQzUzYvVXFlcVNQenVvSTdaUm04ZmNYMUtiV21yTm56L0RJSStkNDY2MjNPSC9tREx6K0ZSeVFIbjhZZGZLY3ZMS1lZUGQyXG40TzROMU9NdmtKOStGTXFDbC9iZTVDOHZhUmJtNWl2MDFUUHZVTVFTRTZpYTVwU21wQ2dMaHFNaHU5MWQxdGJ2Y3ZqSUVScU5acXk1XG5IbzFHZk9WYnIvSEZyc0V1SGliSk11eXdCemN1NFZvZE9MUXN3Nm9hTFFIWHNnYWtmbmFpMHVSSk5ZdGFFWXErSEdnVnM4WVJsSFErXG5CZXNjNmdFMC9BZjRLUFUzZTNOU0Q1Rzk1Z2hnV29rTWNRNC9UNnoxbUllak1LVU1relFsUTJ2cEdVTzNMTm1hVExoWGxOd2RGZXlPXG5KeFQ5UGV6ZUZzWHRLeFRmL2dMMnpsWFM1ZU9jWGxnZ3l4TVdWbzV5N3RrWGNjN3g5YldkZUoxaFVjZmpNYVVKY0Q3VHVBcUttRXVRXG5OMEtJUXBSMEdYanF5U2ZwN3V4dzc5NDZQL3VETCtIUU9GTncrUHQrbE02eDAxSkJlT2NxZXVrb2pkT1BnNFA1ZTFmNGVMdms1TkVqXG5ORnZOcUUybW9oeFZhUkVjdnRqZFNDVkNkNDlMYjd6Qkk0K2NqNWxsU1FZVzNMNjd6bWZ1OXRtWVA0NXV0TEdUQ2ZiZWJURmlTMGRRXG5IbHpUVFhGZ1NWT2hQU2FKRkszaGZHNm5wbEU4UkIxaVFhZGtoRTRZR0ZwUGV4eDgzSmVQVW5tL2xhUk4vZk1JclhIT3p5TVd4ekN4XG5WdXBha043NG1OS0RPWUszVEt5MGZ4b1lTOTlhK2tWSldmcW1Pd1BmdnV2cTYyUjVnL3lGanpOLzlDVExyUmFKa3ZrL3pjVmxrczQ4XG5kbStiVVdGb1p1SWs5bnE5YUg2TU1SaHIwTTd6VTVTYzBGaFpxTlhVdlFZMWZQVFlVVjU0NFhsV1Y5ZjQ4RlBuK1NlLzh3MzAwaEYyXG5yci9GVXovM1g3TDJoNy9CY09rNCtzTHpsRW1HV2IvSlQrUTdmUHo4OFFpc3hWYnJNZkhtb3JCYVYxRUhnaGE4dTc3TzJiUG5tSnViXG45K1doNHJkMHUxMSs3MXR2OE9XK0pqMnhJTnFvdTQzYldCTzhaRlpNam1xMFVKblA2YVE1TGtra0FhaGtwblBpTmFiQ29WUTFzVDJZXG5HanMxQVMxVVZONy84UURBelVVZkpUVHdDemhLdlZWb1lMeVZEczlUZ1pFMU1vYldHQmtrYlF4OWE5a3JEYnZHc0ZtVWJCZUd2ZEdZXG5jakxDRHZZbE85dnZvb1k5N0oycjZDZGZKRjgreXJGMm01WnZ0T2Njckp4L2hybFQ1d0RGeTdlck1vakJZUEEyZG43ZytrYnF3WUVpXG5xQ0FrNFZrcHhibHpaM24yMlE5dzlzUnhmdktKVXpDM1NQR2RyM0gxMWxYeUgveDNhVC8zYjBHU01kbFk1V2ZLNjN6aVVVOGZ5SVVIXG5teWExWnNsVW1qbXc2WTNucnd3SFE5Ylcxa2p6bklYRlJSb05xU0cyMWpMb0QzanoyalgrcjNzajFPRVRPSjNLYUpyVmErZzBoME1yXG5xUFlzTkZzUnFwZmtuM1NaVUg0UWVJRHRneU1iTkVWMDJmeitXandOOGlBbytkNEVKWHhZMENMNGYrR0VpRWF4emtYU1VuQnNKV1IyXG5mbGFnVEJ2ZE40WmRZOWtxU3ZhS2t0RjRLRk8rK3Z2WTNoN2w3aVp1ZXcxejVUWDA4VE9vUm90V250TkpFN0pFT0o0b2FNOTBhTFk3XG5vT0NWOWQxNG5jWVl3Vk1DUGRKVVVVWHc2dVA5MUo5cnNYTVFtczVzaDhjdlBNcGZlZklzbmUxVlZMUEo3bS84ajZ4ZXVjanU5aWE5XG5PMWY1bWQ1ci9Nemp4NWlmbTVkUU9QUzYxMnJLVVF6SWF3aUZpNkpnTkI2eGRuZU53V0RJeXNvS3JWWXJRdnJqMFppN2QrL3k5Ny84XG5KbnZMcDFHTk5wUWw1YjNiSlAxOVdENkdtcDBIcjAxMDNwU1EySk9UbE5Za09pQ3hHbzBpam5lS0FLeXFiYWVMKzNod0hkNlRvTlJTXG5BZkVESEM2T1lvbFpSaWZ6aWd1dldZS1FqSjAzTGNDK01YU05aYmNvR1JlR2Nqd1NJUm5zWVh1N21KMTd1UFdiMk11dmtoMCtRZnJCXG5qNUVlV21FbVMya21NbHRIZVEybmxDSS8vU2dxYXpJcFMra0o0amU3MisxR09OOVlFOXQ2SFd5ME4zMEl3bjJHeG9LK0M2WFMvSVVQXG5mNUMvOGZBcytmSXhWSy9MNU5QL084WExuK1VUdmUvd0g3MXducVhGQlZxdEZubVdrNlZaakhLaTJRbWF4SXBQTWlrbWpDZGp1dDB1XG4rNzArUjQ4ZlozWjJOdElIeGg1TCtjWGYreHpiaDgrZ1p1WlFnTzF1a2x4NVRUakZzMVdVby9PbURIalM0cHVncEtJekJZL0VpdmxYXG5nVW50ZDNicTBDZ0JNaUVzeGZ2TUhrc2p2N0NJM2dGeStHd3NNVlIyZnFhZ1RCME5XV1dmdzdHT1htbm9HVWUvTUppeXhFNUdNSkVPXG4xcmEzaDlsZXg2NWR4OTIrU3Jwd0JFNmNKVjA4U3FzOXcwcVd4WXluaDJYQXdma1hmNUNzTTBkaExKZnVkU011ME92MUl2Z1dHdXU1XG5FS0s3V3RtbXE5MVgvUmdFUWZJYVNHdkYzL3NQZjRxL01iUFBpLy9lWCtlbDVTYi8yVkhMMy91TDM4UGg1YVZZbzVPa1FoMklaT2thXG5YbU05OGhxb0EvdjdVa1k3T3p2TG9VT0hQR3FyZkRuR0huLzA4bXU4TWY4UWVtNEpsU1NVdlYzczdhdHc3QXpNTDBKckJ0VnNTOTFPXG5scVBTVElZNzZVU2VsU0pQRXBrYXF3VldVODREcHpWeENQZHBuSTMxeDZKaDdBTkJ0M2NzQUF1T2p2SWZBdmdCQ2g2bmNQSnpxUktVXG5jbGlOOEZkUUZNNWluYUl3Zm5aZUhPSTBsTDZ6ZTl1NHRadllPNWZKR2kwNC9yQjBCMnEyV1c3a3pQaTB2TWFQb2JOeUF2STBRYmRhXG5qTFlzYjIzdDhjU1JRekg2NmZWNnNSdWpzWWJVcGNKUDBkNVJTNmJiZUQxSXpZYmZKMG5DZi9NZi93ZHNibTJUZnZ3QzdWWlRUbGZRXG5QTFZwR1NFMVlHdTk2T29zK242L3o3VnIxOUZKd3NyaHFsaS9MRXY2L1Q1ZmYrczYvMkt6Wkhqb0pFbmVrQ0hhYXpma0pCOWFGcGkrXG5PWVBLUTVUamhTUkpVSWtZbUV3clVoeUpDbVlud0h4VmJ6anJrQkRadUxpL3dtcnppUEVETk1xRCs2UGczMXdEYWZDU2FKMlVrNHJ3XG5hRDhSWGVCNm5QVFpNQjZXZGFhSWhCODdsZzdXem8rb1ZhdFhhVDc2TEc1bVR2SXJyUTZ6elFhSC9EUnpxRHRpOHYxYUtXYWYrejVHXG5kNjVUR0RrUmlkL3ZLZlBqblZxZFNQYlZKVDVFalYyOEhpd2swVVFwU1J3dUx5L0dvVlhoTlJVeHVkSlNOb0tUSGo0b1NpYkZoUDZnXG56K3JxS2lyUlBIVDZOTTFtMDlNYUxlUHhpQ3MzYi9IcnIxeG1iZWtzU2J1RExRdnN4aXJzYnNIS3lZcG4wcFF5VVpKTStMQkpLdTNUXG5sTXdPekpXWW5kZ3NwNWJia1dXVUl5SXlVdVBNMW55Mjl4ZjFSS21xYkpieklGV0ZlUHFKNnJacWZWbGFJVE5aNjhESWVIcVpHU2hDXG5FdHVKZGpmUm5tVEV5a21TaytkUU0vTmtqVGFMaVdiR3EvTkVoY3QzMGFZcXBUajNrUjhHbGJEZUczRnRleTllOW1Bd3FISS9vVFdHXG5FVWcvbEdkR3JNbm5naDVVR1RlMVNGcURKa0x5QVV5N1gzb2drSkRLVWxweWpVWWp0cmUzR1UwbUhEOStncG1aR2RJMHhUbnBBYk83XG51OHRuWHI3SXBjNXg5TnlpQ05uK0xtNXpEYjE0V0ZwK3RtY2hiNklhNHBlb05QUFpZWEZnVlZManhDcXAyMUVCWS9UQ0lwY1hQUlMvXG5Ic1QrS0xqNjY5NytlSUJHaVpBTUhzK0xLWGNkaFVjSTExb3JyQkdITUlCeU5wQ2N5a0p5RTc0WFB2MHVkbXNWZStzS0xrbkVnMDlUXG5hTFJJV20zbThwVDVMQ1BYaVQ4U3pqdUl0YzVFUUROTlVjMG0zV0dmemNHRVIveFZoK2luM2xyQ09tbTJFNTFMTE5ycUtUeWxYdHJ4XG5vUER3WUdtRi9LLzhGeDNuVUZCZUNFMXlNQml3dTd2TDF0WTJoeFlXbVoyZEkwbEVTTXF5b052ZDVZdmZlcDNmSEhaSVR4eVc4Ym45XG5QZXp0eStMa3ppMmgycDZ4MWd3SWJPYUZKWS9Ob1JWRVRtemk4WkxFOS85VkJFMFIybkI1NkVPcDZNTkZFWEx1Z1Q3S0E4UGppS053XG5BS20xd2I1NEg4WDVrZzZmTUxSK2RtQ2dDd3F6ZlNpVHZ2ZDNZSE9OekpZMEgvMEErUXNmUTgwdm9adHQ4aXhuM2pmSkRTMDJFdkdjXG5hOWNoOTVWcVRmdkM4d0NNaXpMYTFWQnlPaHA1ODFPYXQxVVRIdVNvUnNUMEFFVmhTamo4VWdaQkNrNXhMQkZ4Uk0xVlRDU1RIYnBaXG4zN2g1aTBhenhhSm4waXZBK0ZyaUw3MTJpVis4dkU5eTlCU2tPWFkwb0x4OWhiUzNMMUZPNXhBMDJ4NVlhd2hNbjZUUzZVcnJPS0kzXG4wWm8wWm9uRlBGY2xHRXl0SHlGa2Q0SDQ3cldNcTBMbjl5d29JYnFSeGFwTjA1RHZyQll6eE9HQmVHME0yRExTQmUxa0pDbjVRUS82XG5lNmo5WGZSd24rU0o3MEdkdm9CZVBFTFNPVVRhYURLWHBYUlUzVGNKdXpYbG9xQ1VKa0Z4OU1NL0JDaXViL2ZZSFU2aW9BeUhRNGJEXG53WlNmRWs1NnZVWEdsT0M0aWpZWkJBRHZxQWZocUQ5WGg2bENYSVBqV3BRRm85R0kvZjE5TGwrK1RMUFY0dmlKNHpTYnphaDlCb01CXG5yNzE1aFY5N2N4MTMvQXk2MlpZSmFmZnVrUFM2dUJObllYYkJGM0cxcERZN3k2UFpRU1crTzRGR2F4L2xLRm16VUF1dDQzN1ZXcWs2XG4wUzJtZGordWZnamQrL1JSWWhaUnliZS9UVmlBYWFUV0Nibkp5SUJKVENtOERUL1BtRjRYczdFS202dm8weGRRUjA3aHNnelZFRHlnXG5uV2ZNSm9wMnZjd3lYRnlNN0x6d0t0RTBuVU9McURSbHRUZGdVRlRaNU1sa1VsRWt5eUoybmd3YW85NkRmZ3BYdVc5ZFVMMG11UFk2XG5XM1ZDaW1CYUtYNVJFSkpyMTY0eDA1bmwxS2xUTkp2Uy9NODZ5VXZkdm5PYjM3bXl4dTFEcDlBemMrQXM1Zlk5a3QxTjlPSVJtRnYwXG5tcVFOZVJPZE4zd29uRXIzcTFSbU02dEVlQ2FwcHptR3NSaFQ2WmZnd2thSFZYWllXbDJvMkxHdG5tVi96NElTRjYvMjNxclBTUFdIXG5tQ0gyTUw4dEN4bVlVSXpGUHhrUFpBcnA3aWJKNmhYeXAxOGtPZldvNEFHZUJKdzBNbWFUaEU2YWtnV3pvNlRQaW54aDhKZFVWS05LXG5LZklzSjFsWThZM3FLdnBlVVJSU0hEYWV4TTVNc2ZhblZnQWV6RTdZN0tuRkNrSVJBWVpxTWFkQ1g1K0VMSXFDc2hESHRiZmY0L2F0XG4yK1NOSmljOGl6N3hlYWJ4ZU16MjlqYS9mK2tHLzNjeGk1MWJBcVV3ZTEzMDNadVFaakpMc2RVQjMveFk1dzFVbHZsZWVvbWZyS3FGXG5jNEtZRzhucCtDd3grRDVzS202ZXdQUkU3UkUxVFVqd3V0QlhwbmF6NzBkUVpHaVRBaFhwT3lGQ3J1QmZZM0MyOUpQUkN6K3F0c0NPXG54MUNNY2YwOWRIY0QvZkFUMk9Zc3RHWThmNktCVGxQbXRLYWpOUTF2YTRPWFh0Mm9JempYUVQyaUZJMW1tME12ZkQ4QVg3KzFFYk9mXG40ZFNHeG9CbFVVNDV0bFB6YzF5dHNWNHRLeDVmWjcyRDZvVXBkR1VNcFJVQmxpK0xrcUZ2Ylg1bjlRNlRzdVRJVWFGRWhqbUhFNC9LXG4vc0hMRi9uMURVZXlmRlFtbkEvMmNiY3ZRekZHclp5QWRzY1RrVm9rQVgxTk1wU3VZSHBDVXh5dHBZbVJVaVRVeHMvVjdFZUZ4RmIrXG5sU013MjdUUC9kUnlQUStRaFhmeFVWU2NxcUdVc0s3cVF1S3NpWm9FajVXNDhVandrc2tBUmtQMHFDK0UzNFVWYUxURWU4L2tsT1JhXG4wMDVFU0xMQURvK0pPcmtTNHNXcjhDTUFlWll4czNRRWxPYU56YjE0K2hXSzRYQVlKMlFGOHhPZzlMajVkU0U1NE1POFRaaHNSWUoyXG5ydXA3UDVsTUJFd2I5Tm5iNjdLMnRzWityOGZoSTBlazg0QlBRVXdtRS9hNmUvengxMTdtVjY3dW9vNmNSR1hpdkpyVmE2akpDSDNxXG5QTTZEYXVUTnFnZGJDSVhUMEJUYUMwbWlmU2djMlBVZWlhMExpYXRwNHVDQ2VlUzVUaTJ3TmZQMHZ2ck1WcDJydFc4ZG1oQTRIQzZjXG5lR2ZCYXB3elVtN3FvNXdJcWcwSHFHS0VIZzF3YVlwcmRTSmRUMmVTa3A5SkU1cEtrV3Z0RTMrZU42RUpucXUvRE9XanJTQkVjb0lhXG43UmwwdTRQdDd6RXhscFpQcmhWRkVWSGFScU5CbnVXWXhFejN6TGZFV3Q1Nm5VMmQ3RlN2UEl5ZG83MndGV1hRSkVONnZSNnJxNnZjXG4yOWpnMFVjZlkybHB5VS9TVVBGYXZ2YnRWL25rblFIRlF4ZWtrL1JrSlBWQWV6dW9vdzhMazY3VmtjTlV3MHNFWEJOUVRZZDVTWDY0XG5WbFlURW9MNThEY1lBd0FDSWl2U1lvTkdzUUZzQzBJVnZaWDdDc3FEa29MUi9WV2g2YkNxNHZMb3hKb1NGVUxoY2lKNFNhK0wzVnJIXG4zbndUZC9uYmNsb09uMFRQelBvMlVVSUF6aE1Sa2thaVBWQjA4RkxDVFZkZ0d4NXRkRDRVbkRsNm12YTVKd0g0eXZWNzFjVTdhWTNSXG43L1VqOFRxRXluVU5VZjhYTkVnd08wRURUZmtpRTNGWXh4UGg2WW9tMmVQV3JWdGN2M0dEQ3hlZVlHbDVPVTRFS1V1cEVyajRuVGY0XG41STB1Njh0bjBETWRuQ2t4Mit1b2U3ZlFoMC81Q0djR21wSVIxbGwrSU1yeHc3U1VpZ2MyVWFDY2sxWVcrTVBrYW9lY091OUVmcFpXXG5vY1RjV1JBYTUwUGppTURmNTNFL2pXSzFWb1d4TGlkSmNFNkp5dlBaVlFkeGFEYUFLMHVjS1NCTS9PcHV3YzAzVVAwdTdRLy9FR1hXXG5oTllzeXZzbVpEbHBrdEJRaW9aV3d1Mk1reTI5NHhyVlZrMit3NG1uQWtYYm5UbWE4NHYwVUh6eDFnWS9jUDU0Rk9WK3Y4L2UvaDR6XG5uZW5HZ0ZETnpZa2ZWa045RC9JeTZ1YklXa1BoYTQ2bFYrNGVkKzdjWWYzZVBWNzQ0UGV3c0xCQW1ncFdFckNVcXpkdThLa3JHMXpxXG5uQ0R0ekdPTndlNXM0RzYrUmJKMEREZTNCS0hDTDJ2aXNoeVZpUmFSR1FReXNFSXBjZlFKM2J1VjczY1NOamRxWUlmemRNZWtobitGXG51RERvalJEMXVFQ005Sitqbkp2VVh2YU9nbEk5dEVabFVoOFNoRVQ3RDhVNW5ETXlVTHFZNEFxWkg2aTZXMmdjalkvOFpVem5rSnlNXG56Q09MSG5iT0VrVXIwZVJLbUZpQjZBeE9GaU1DelZVZmo0QzJKUXFNeHd2eVJOT2FYMFJuT2JZWXN6ZWFNTmZNNCtYdjdPd3dOemNuXG5OVGFlOEJ3RU1Fa1NuQmJrMXpEZFRUSXNYajFDTXFXaE5KTGdHdzZIZEx0N3JLN2VvZGZyODlSVHo3Q3dzRUNlNVdMNlNrRmxiOTI4XG54U2RmdTg2WGsyV1N1VVh4ZWZaMnNMY3VrM1FXY0V2SFVLM0tKd2xhSkE2cXFBbUgwem9Lcy9JYnAxeUlkcXBERkxZbjRpaTF3eGE0XG5zbEZJZkFLM1B2VDhRZTdzTy9kdzg5TTFTTU1NUVZVNXNrWUtjdHhrakJzTmNJT2VPSy9GaE9UNEdVeFRNSURLZ1JXV2VLSVRtanFSXG5CRllnMXdUSU5hcS9tcmNlcnNqVkhEVnZmaktsbWIvd0hObmlZUUMrZkdOakNnZnA5L3ZzN094STV3TlBsUXhBWEhCSUEzWFNsQlZvXG5Wb2FRMTJkK0o1TUpnNkd3NkhaM2QxbGZYK2Z5NWJmbzlRZWNmK3d4amh3NVFwYjZIdjYrMXVqNjlldjgwamZmNUU5WUlsazZMRG1WXG4vUzdteGh1a3JRN3EyR25wM09qTFFFbHp6MVpMVVVsVmNvRU93aElDQ2lwekU3Tit0V0l1dno3V2haU0ZteHFRRUtqRE1kZFRCMC9mXG40ZkdnWEkvZkh4MHJ6cFJ2cHkxTUFvT3lsWkRZL1M1dWZ4dTFmUSt0d2MwZWtodFBNeW1ZVGl1NlhpT1JtVEdoY0RyTXRLdHlLWFgxXG5YMFUvMFlZR01kYWF4RnJtVm82UnpYUVlBN2U2L1poTkRvN283dTR1N1hZN3RzTUtJV0thQ0FVaGRqNVNIbWhFREhzSWdZTnZNaDZQXG42ZlY3Ykc1dXNyYTJoa1B4L0FzdnNMaTRTT3E3UTArS2drRy94NDBiTi9oZnYzbUZyK2FISmJHSHd2VzdtR3ZmSVc5MWNNdkhZeCtUXG5ZSExJaEttbVBmYzFEUHJVV21ZUmFPK2JhRi9NVllGcTB5Rng5RG5BMTNBSEJGYUV4RHJoT3J0d3I5R25lUkFtK3c2Q2txWjZVazVNXG5nelRGcFZtTWVwVFM0cHNvaFN0a3JySHA3OEh1T2x4L2czeGhHZmZRNHpDN0VDdnFTVklSbURSVTFpc2FIaVJLcG03YTM2Z05MU3NRXG4za1RVTUVUaDBZak5UZnpJczg3akw3Qi85Ukk3d3pGZnZiWEJoMDhmOWpJbm9mTDI5bmJzS0JDVGc2a2xzYjdIZncxL3VCK1hKSXgvXG51N3QrbDgyTlRaWldWbmordVJkb3o3VGp0WXRKR25EOXhnMSs1UnR2OGJYbU1aTEZJNERDRHZZcGI3eEpvOUhDcnB5QW1UbG90R1dpXG5XSnBERmtMZ0RLY1RkQmlpRllRa1JKLytzSVN1MVdFOW5HTEt6QVNocUtES21pWUp6ODYzZ28yWVF3VGJTdDZqajJLY3NZV29KQjFWXG5vTUQ0MGtyVUdTczVuZEVRdWx1d2Zvdkd5bEhVK1E5SUUxemZYcHMwUXlWWmpQK2IyanV3VkxCelNGUUZhVkJhUXZBQUZOWVJZU2V5XG5nd252VTVwTUp6ejBrYi9FdmM5OGlra3hZYjAzWkZ3YUdta1MxV3EzMjQwREJqcWREbVZaeGphZW9WOUorSVlRN1lRQytKQUIzdGpZXG5ZRGdjY3Y3Unh6aDM3aEZhclZhOHFFa2h4S1FyMTY3enlWZXY4YVhzTUhyaGlIUkQydXRpMXE2UjZ4UjM1QlNxTTQ5cnRIMzc4ZHhyXG4zTXpYNDRTeGZON2MrQ2ttb3V0RWR5VEJsL05TRVlRbjRDTGFQd2RCRXVtUjlaMHlQMTdqT2xkYmZ4U2EyTWJtWFFYRmFhM0hBcmFsXG40RGNhSE1wWllVWjVDb0V5RTlUdUptbXpqVHYxNkpTUXFNQ2IwQW5hTStrYlNXVnVRaSt4d0RHMUI4eU5kWkZwNERWTXBSNjFBdXZ0XG5jNklVTTFuRy9OTWZZdnNibitYcTFqNjNkdnVjVzVxTkMyV01ZWHQ3bTZJb1dGaFlpSTMzNnMyQmc2WUpwbVl3SExDL3Y4L2UzcDZrXG5CQ1lUbm56cUdSNDVmNTVHSTQvWVNvaCszbnp6VFg3cnlnWmZTQTlMMFRvSTNYUHRPbWxwNFBCSkNZTWJ6WmpvMDdsMGJTUUpzeHRUXG5yNzE5cFhCQXhKWHlVWEdBNmVzSlAyTG5hYWNEaUZiQitaRWI2elZJWUJrYkx5VFdnM1EyOEl0aVZ1czlhQlJyN1ZCcERWa20veEpKXG5Oem5mQXNPVkU1UXBaVXBXbHNQQ2NWeXI0MXN1QkVSUkNxWERCUFk4RWI1RTZrc0pZdVZhUUFScjdiNWoxRW9kL2ptb1dlVEdkWkxRXG5jSTV6UC9ZejdMejhlWWFsNGZXN081eWNuNGwxUDBFQXV0MHVvOUdJZHJzZGhhWHV1d1JURXdoUW9hNTVacWJETXg5NGp0TVBuNDZrXG5vekR0WW1kbmgxZGZmWlZmdjkzbll1Y2t5ZHlpRjVJdTl2WmxNcVVsQ1RxL1ZJRnBtUXlESkJ6RUpJbWhzR2hmWFozd2VsbnF3ZldwXG5hUktscFJtTzlvNXJNTTkrQWFiTVRZaDZoSnhlK1lTaW90eUE5eHdlYXpWQ2FlbGxsbVkrWDJFa2h6UHN3MmdJNVppMHV5VUMyTzZJXG5nSGhITEVteUdBcWpFOUxBbDFDVnVYRUJIS3JkVEVCaXAyeXJjMEtXaXRCSzFXNUxhYWxGUzdSbXZqUFBrYi93azl6OXpHOXdhWE9QXG5seDZlME15a2NWL2ROd2tqNklJNUFtS0ZIakRGWDluZDdmTGswMC96NUJOUDBKbWRqVTJQalJHcXdOYldGbC85NXN2ODFwYmordEpaXG5rcGs1ckRYWS9WM3M5VXZrYVE0bnpzSHN2QStCL1hyV2ZEZVNXblNUcEY0b3REYy9kUjZPcXJMcE5aOGthT0xxV2FJaDQ1dzMzejRrXG45c2ZNK0tiUzFycG9maXFIRnJBTXBzN25Pd2lLR1kxR1BkV2VsWnhNM3BDaDJBNWhxVzJzd3ZvdFZHOFhGcFpScHg2RjFxeE14OGpFXG4zTGlrSXRWbzc0c0VJUW1oc0k2REY5K2VYZkJVM0hqVDB3a3I3OUFwbnlMWG9tUWJTY0twcDc2SGU1LzliWXJ4aUYvN3htVisrdkdqXG5yS3dzUlFzL0JhSjVvVGo0Q05wbk9CcnpvUSsveEJOUFBrR2lFeHd1Wm9yN3ZUNTMxKy95K1pkZjViZDNZT1BVVStobUcxdE9zTjF0XG43UFUzYU16TzQwNmVoMlliY3E5Smt0UUxTZUlSYWo5SE9tYUZBWjFHOU5WRldMNjJSaW80cXRJM0wvRS9TN0RtaU5rUEtpRUpEbS9vXG5QRzZzd3lqcFgxTXR1QnlrU1dsM3FTbWpkeElVcDNBOWRDbzM2UXVnQlRjcDRlNU4waVFoT1hNQmpwN0c1VTBCalh3Q0N5MkVYMEZ5XG5KVnBLdkdkYW55SnFuY1g1MFNseFVYellGam01dWlZa01WVDIzcjUxMGNGRGE3Q1dRMGRQY3ZJSC9tMXUvK0Z2MGpPVzErNXM4T2g0XG54TXJLeXRTSXVvT0NvWlJpTWhGYVFwYmx6TXgyK0xGLzU2L1NhYytJNEZoTFVjalVzSjJkSGE1ZHU4YS9ldXMybnpWempFNC9nczV6XG43R1FrcVlzN1Y4a1hEc09Kc3dMTGUzUHNra3pvQWpyeDZ5U0hLZEFaSlV1ZmhCdU05MWxGc0FFUEVkL0RodHNPa2tBSTd3T3c3YVhEXG5oOURHVXlpTWMxRlliQlFTSW9KclRiSFBlOVVvenJwdGxhWVMyMmM1S0kxT1VrRUhteTJ5WjE2Q3ZDRU9VSnBOQ1luMmFwUll6UitLXG5rZXBsbGxSZWVFMWpUQWxUZkYzbDJJYVRRdnk3MU45WTYyUXdadDdnK0JNdnNQM2FWK212WHVkck93V0dQU1pGd2N6TURFbVMwUEI5XG4xWnlUSmpXaHAwdG5kcGFUcHg3aXd1T1BjK0xFQ1VERkpvS1Q4WVJldjhmcTZoMisvY1piZkg2bjVGc0w1NlVnU3l0TXY0Zlp1QU8zXG5ycENmZWdSMTZudzhaRk5tSm9Cb1hwTkVjeE1SV0tMbWpGdGN3MHZpZXVDRnBYWjZIS0JEOEJqQnlRcDh4TC9lMUlRbGxtYlVRRXFjXG4yMFpDNUhjVkZBdHUyeWt0TjJrdE9PSEJxdTI3V0tVdzQ0SFkycnlCMHdJUzRhTWJGL3VDVkVoaVRHRjdib1pWSVo1WEdLOHVvM3ExXG5WckxXd1RqN0kyUmRHSVp0b3hvT3hXSGhaVXByRms2ZDQ4Ukhmb1Fybi82bm1OR0FpOTJTcGg2eFBCNExacUlWV1paaHJjT1lrazZuXG53L2Yvd01jNGZ2dzRLeXNyRWFnclMwTlJUT2ozZXV6czdQTEdtNWY0eXUxTnZwRWZZZmZFdzc3Y3M2RGMzY2JkdVVxeXRVNTY0UVdaXG5OeFN5djhGUjlVUm9ZdTRtOGNMaE9Xa1JkTlNWY1BoSVIwNkh6N0hoYVl3MTZNRFpZTDdsR1ZldHB5VGRQYkVhNTZlaFdBeUtzamJZXG5NaDQrd0pYRnpudldLSlIyVXpYYndwQXZDOHo2Rm02d2oxNjdnWm85RkgwSHRFYWwvb1NrbVFlRlF2enZpNnhxQ0tCMUR1czFoVlVDXG45aWl2U3RQd3F1anBWdmdBL3NhdGRiVVRWcUgrR2psaXprbXozelBmK3pIV3Z2S3YyTDk1bWI2RmwzY0x2bmN4Wno2VElZNWFhNTc1XG53QWQ0NmFXUHhBNUpRSVQzSjJPQjdMZTN0cmg4NVFyZnVYaVJMN2hEYkQzeEVXeXJJd3M4SGxGdXJ1RXV2MHBqOFNqcFIvNFNwajJIXG55aG9Db25uK1NJaGtLaTNpd2N2NEhLZ2NRZU9HRXg2SzFIVGw2UHY3Tm43TnlucVU0d1ZjS1dTV2tCTS94RGxpN2tvaUhpbk9FeVhpXG5aSTBENTlsWktNY2JDSmJ5SGdRbFNkZGNveW5aelBFQWRlT1NoTGJubnFUMElGRmNCTytoUzhnYWZJQUtGcGFrazRwYXhEZy9VTUU2XG5rc1NYRUNpUjlOUnJITzBiWW5uWExGNllxcCtrZU1ZaVZnY0lscEJuT1MvOTNWL2c4Ny93bjlEZldxZmZuT1Z6ZmN0SFcwTldPaTFlXG5mUEY3T1hueVZBeUJSVWhLSnVNeCsvdDc3SGE3WEw5MW02dnJtN3hSWkZ4Ly9FZkYzMUFLT3g1aGUxM002ZzJTelRYU1l3K1RQdjBpXG5Oc2xSZWU3cGlpSVFPaEVOR3h4N2ROQWt1aEtTZURnZ3Fzb0lNdGFxSC96SnFEU0x4V250UStJS2JKUDE4NnZqcXMrVDBOaGhBZy9GXG5TazgrWjJvOStxekY5ZmZYZUk4YWhjU1ZhNlRaeURWYVRYWjdKRmxPOXR4SEtjY2p1ZDVNT2c4NkZWbzhxR20xNlp3SWtkZzhzWWZlXG5vVXEwREZUUVNzcEVsVVk2WTJ1RnNvRTlIb08vdUhvQlU0bG01Z0FPb3hGRUYwL2Z6RlRLUi83VGY4QTNmdjBmc3AyMXlVODh6T3ZYXG5YbWZoMHVlNTlidC93TW1WSlk0ZGxqNzFEaUU3N2U3MXVOWWQwT3NzczVzMHVYWHl3OWpGSXpoRWc1ajlYZWJEV3RNQUFCTWxTVVJCXG5WTmk0Zzl0WUkyL05rcjM0RjJINUdNNzdaekhVRFlmbkFEVkFLVTlqQkc5TzFOdUZKTnhzbVBFWHpVN2xlTHNhZlZQVmhNVDQwcGFEXG5pRXNzVWZFb2JFenNlczZ6TlNYS0diQm1oQ3ZYN2ljVDkyZTRKZm1XYlhYV2RKcWVZZjBXYnZrb3hWQW9qU2p0eVRSVUZ3bmV3WFJUXG5qcEh5YXJGVVVzaXV2SlFyRkNXaC9zUjZvYXJNVGhJOTEyQitkRFJEMFZHcmFaYTZBNmdpK0tSb3REczg4K04vazlkLzU1K3p2N2ZEXG4vRi83Vy9EVlIzampsYzl4dlRETXVHWFUwUHRpYVVveGI5bVl6eWxXVG9ualhwYVkzaDZ1dDR1NWR3ZTFkb1BzOEVtU3MwK1JYSGdlXG5sMlp5YlJGMjkxbjJ1cENBUjdibE9XcVFJQnZPZStyUlliWGVsd3ZyWWFzb0x6ekhZVkFWQlNPUWtPTHJvM0RacUkwVVZka3JWcnA0XG5TdHMxaXl0TGREbFpMUWVqcmZjc0tDVnFQWmxmdkpuczc1NHhpUmFiVzVZNG5hS3lHbC9FQnVFd09EOEppMFJRc0NyRTFSaG5LWjBBXG56OW9GL29Tb3UweUpKaEZwOHhyRVdDRmErd1JrZUE0MFJRaENXb1hNZU1Fam1IUXR2dERNOGxHZStmRy95U3UvOVV0Yy9hTi95ZEdQXG4vaFhPUC9jU04zNy9rMXkrK0MxNDdBUG9tVVYwc3lXbnJ5eXdPL2RreHVDdTVMSGMyblh5aHg0bCs5aGZsWW1xclk3bmgzZ0V0VzVPXG5QS0lhY3pSS2VSK2tNaWZoK3VQRjEwSmcrV01vcmd1L0Q5RmlCTVg4Kzl5VXNOVDNKZmcwZFhqYk9nZWhMNSt2bm5ETytxYlRobkkwXG52R0dIK3h2dldWQVlqemJOTno1N25hWEQzKzhXRG52cEtXU2VydkhPbWJXZ2pJQnFIZ1BCT2h4R3VnWllpOUxob2hQR3h1SVNYVVUxXG55R1NOWUthOE5zUXBLYlIyMXZwS1FmbDdkR0g5NGdsNWlRQWFSSHNzdWFQS256RkFhMm1GRC8vY2Y4N3JuL2xOcnYvalgyRDN4MytPXG5Dei81dHpuVDMrTmYvOWMvaTl2YnBzZ2JxT2FNZk54NGhCc1AwSG1MMWcvOU5ObFAvMTJNSnc4RnhFSXVKVVFuL3ZlUnFlY2QweWxOXG5HUzkxQ3Z3THpublVJR0dqb3dTRjExZkNGc3RJQXFTZ2dpYXFhV0piWTY2RlQvS0xIQ3M3YldnMkxla1lSb01iazYyTnFwWFZ1d3BLXG5lYnZYUFBmUnk2VjFZenNlTlFnUkRRN1ZxQXhxU09pNVVrSGlZM21WNEt5cXFja2dWSnBKRUJJckkrU2NJcG9UWi9GejdUVE9HaEVXXG5CUHFQVUcwVXF1QW9SNjFOakJJaTdPVERTNjlaWEpydzVBLy9GR2MrK1AxODY3Zi9HUmV2SEtkeDRpelAvUDEvU2pOdnNIYjFPMnhlXG5lZ1dUNXVqbFk2aWxvMzd3UUNLZ2d0Y01mbmVKdWtGVkNicTRxU3BzYmpDUDhoeVVYL0FYQWloV3ZkNVV3aEkvTGVvSmo0MUZuUlNqXG5JT2NDMEJZMHRhdTlndWdRMzArVE9DOGsycFJqeHNPcmREZXJxdi9hSTduZkx6bHlSTG1OcldVMzJQK1FtNHdYbE5iVDZpOHNTaDN2XG5vSUxsZ3lCVmptbGxnMFBMaFdBMkhEVVNUUWlXOEVhb2RsSlU1YkxJVXNYcnFSemN3RVluaEpyKzBoS3ZZWlJTcE8wWlRqNzdJVnJGXG5HTDE2alJ0WDNtRDF4cHRNZEFyenl4U2pBZVc5MjVURFBtU1ptSmdraVQ1SGhBQnEwWjRVclhuTm9pQ01vNnVFcEc0K0tyKzFFb1BhXG5qUWZ0SERZNmFvU3cyYjVoYnpRcmdXSGlxdWdGd0JsNUR0Rk5uTGNrYmVxRHVhRXNoTTQ2SHQ1T2R6WStPZjdYdjNhUnRiVzNKUVh2XG5MeWhyYTg0dG5RU3R2by94NkxRYURhcFNnS25RTFd4SGZSUDlvMllLNm01OWNIRERLTnhnUWgwMWRuanRJeXorUk9pcWxZTWlDR3N0XG5WRGl3R2NIbWE2L2F0UklOSTZDeFp1N29DVmJPUDhWOHE4bENzNDBhN05GOStYT1UzL2s2N3M1VjNLZ3ZHZCs4SlQzU1lraGJSUzE0XG5JWWxYRlRSREZQSWEzaFBOall2bWdCRGZPVmNKUlgzelJSMVVpeG5iSXdWaENPK3BoQ3o4dllwcW5BK0ZmYk5tYTZTbnZQV2tlR044XG5GNnplcThYTmk3OWkvczkvZHEvNnduY1RGSUM4VTJZTHk0OWFlRmFWUmVvR2ZkK3h5Rys5VXZXalVaMElMd3pSb3lmNFdiVy9VL0VqXG5TcjhlZ1dsVkwwNktIYlJEU09oOUVkRXd0aVluZXNvaHJBcnFENmovOEUvNVBpS0pvcjJ3ek1MSlV4dzVkWWF6ejMySW0xLy9naVQzXG5aZytobDQ2aG16TlRKUlBCVVEzK1NiejllSGQxb3JPTFp2RWd6Y041Y0t6S3RVUStTSFQwL1NMNlp0QUJRYlhWZWppb2Q4S1NYMWdmXG4zZmk4WG1nbUhhSWI0Mm1zdmxhY3NvQmlQRTRIZTc4enZQaUYzK2JTSzhQN2ljT0RCYVY3ejlqbFk0VnV0bi9ZT1RjYnBvdFhpYnV3XG4rY0VScTh4Q3BUOWNoUUJDWEw2NFdGNTRaQ0o3RmVMSnp3NWppVFEvWHhzdUJ5YjRJcldUU2R3eUZXVXlDRXVzNHZmYllQM25HU3ZmXG5XeGpIcUhSYzYrNnorY3JuWWVVRUhENGxEZmNhYlVubUpSVWVVanNKMWMzVUhHcm5OWVJYRnhHM1VEVU5vTHhtQ1grck81cnlIdXZOXG5odjhNVzJrSzZrTGhncERnMHkyT01BdVMrd2lITTJKMm5PY1RVVTVnUExnM3VmSG1QN0JmLy9SYmJHeThQYVgram9JQ2x2bkZZV051XG44WEVEVHdFb1kzQmVXT3A0U2RnVkZVTzg4UGR3Yy9KeDh1dHFrZUppZVFFd0NBZ1hFbGVDMkRxc2s1eVFKVXh0OThoa3pjbkhVV3RxXG41My9HNTBLb0hHYko4VGdtcFdGb0RMdmpDUnVqRVpmWGJyUDZ4LzlTMm9jdkhvSFplYlRuMmFnMFJTbnBBaFdGeEFYQjhKdGtMQ2puXG5tV0xWL2JuNGM3V0pVRzIyTXlacWtQQjZlYm1wZkkxZ2JzTDdRMk1BNjJydks2TW1VVFVoc1NZSVN5bkNVcFMxR25IcFg5TVk3di9lXG44RnRmK0NkODZRKzdEeEtHZDY3ckticmJvNjNOWDg0UEgvbWhvclFMRG9jcXhyQjdUOGFtbVZLWWJsNWFyVFdvdk1UWkJra21VcTJTXG4xS3ZKRktldGRCWHkrRXFBdDdIZU1iUUtweldsVlJTSkpuR0dYR25HeXBBclJXYUYvRlJZSzAxM25SRkNsQlVxZ3ljUVJzZlZ1M2d4XG55aWl0cFhTT2dUWHNsWmE5OFpqOTNoN0ZvSWQ3NjF1NHdUNHNIc2JGdWNGNUZXWDVreHdyOFVLbzdLVmNLWVV6Z1NvaHNoU21xZ1lPXG5heEJnVjUwcUx6eFExN2ZSa2ZlMGtLaVBhemF1U21OVUhtQXM3ckpCS3puL3MvZ28xa3B5MTVrU0NtbWJsbzBIMjRQTHIvOXZ6UFMzXG4zMGtVM2ttandQYTJ3ZEpQRmxlVVZmcWpDcVdjUDdsdVBFS1ZaZDFQSllJNU5jZk1ldlZwWFgzd1FqZ1pyclpZOVNJa29oa3FySldCXG5sSzZlSXE4MFQybjljQ2xqTVVwZVh6cnBKVmRZeDlpVWpLMmxWNWJzRzh1OW9tUjlYTERUMjJld2RZL2hhMS9HdlB3NTNINFg4Z2JNXG5MYUphYlYrUTFZakZXRXFwS1FjVmJ3ckNYT2pLWVF6RHhLV0FYNFpoZVZETCtaUHZYS1NWRWpiUnlQclk0RlA0MTJPcW42dm94WCt2XG5EUnJKVmQ5VCttakdXQi9WbEdKeVNqRTFycHhJbDRueEVEVVpPcmQxNXhlTHkxLzVOSi8rcmZ1R3hlOU5VQUQ2dTMzVDd0eHJ6QzA4XG5XMW9lRXYvTjU0VEhRMVE1OFNRaVZ6bHNzZjlJeUVyNm00cXhiMTBkVitGZVhHd1hOa0ZPbnZUU3J3WldoamxCWWNxcHRGZVhYcmNsXG5NSGFPa2JVTXJXWGdISHZHc0dNczY1T1MvbmpNZU5ERGRyY28xNjdqdnZDN3BITUxKQTg5aW0zUFFxdmptOWZrdm5RaXFYeVQ2RERYXG5oSjFxMDJWZ3BSY1NEMmpGemJWT2dLMGdQRjVJUWt1ektjR3lmaHBKNklYbkxNNU5mNTZ5d1h4VndoaG1VOGZRTjJpUDRJLzRNWGRNXG54akFhMGhyc2ZkVjgrL1AvbmZuTXA2Ni9teGk4Uy92UUtDMXZ1VUh2Zjg3YmMyY214aDVYd1J0WENqZm9lZHMzUWswV2NKT0pNTjZLXG5DYTdSd21VVGRON0FwaG5hNURKK3pmTXlkSkppbFphZVpCNlhNRXFqRTI5RWtnUnJGRnFuV0NYUnhrUXBDcTBab1VnVGpYYVFKWXJFXG5VVEhwdkFNclUxTmxVR2JwMWExMHAreGkxbS9oN3Q0a2VlZ3g5SE1meFU1R2FHdjg5VWdPUjVobkhzOHdwZVJ5UWxiQmhXQ3Y3aGU1XG5LbnFKYXQ5SWxPTHhqWkRXQ0w1YUZkSUxLQ2xtS2VRaFFnSTBPTStxSWkxQkFLS2lGYXM3enVFUTJ0S2dYTlVKeTVVRnFoaVRqQWFyXG54ZnFOLzJueUIxKzcvRjRrNEwwSnlzV0x4ZVN4aFQvV1NmYkxLbTM4UExoREVVUlR3SGlJS2d1WWpGR1RrVGk4clE0VUUyZzBzY1VFXG5sVGV3NlVRNkIybGhmRm1manJjbUFlVXI0NUlFVTBwdk1tZWtaTUVrcFFlemRPWGJLTTNFaVBDTWpaaUZnR2g0L2VTYjMzaVl1cHhnXG5SMFBzY0IrN3U0VzcrWmFRaXg3OUFLWXNKREVZY0JjdmxERjBMWDJpTWZUV3J3ZHZ3WndxcE40cCtnWTFzK29JbnBKM3J2MWJ2UkJHXG44aFVRZkpXS2RTK2tvOENkQlluVTZwRmU4RlRrYTcxdkdEV1prV0ZhcG9oK0NlUEJydDNmK2VYSm05LytJN2c4K2ZNVEZIQzg4Y1YxXG4yL2pJcnpKLytLVEs4ci91bkV1cjZuOUVXbnQ3SWl6aklVeUdNSmJ1UVRSYTJMeUJ6aHM0VHpCMnVtb09Vei9CeGp1NEp1QVdTbm5OXG5vMFRENERXTWJ5dHVVZWdraWJ3VzhJdnUrUlhXRkZCS0MxTTc2T0gyZDJIN0xuYnJMdXJFR2M5V0Y5NU01SWZnVDc1U1B0WUNXM3JTXG5WT2ppNENxa05JUzlVYU5FM0tQbXE3blFaOFZFSENuMGRRc010RmdKcVRXbWhnZHBIZHE4aC92enBSazZNRThBSy9zUWZEOHArN1hpXG5FNVZHQktRWXcyaFEwdXYrSCtXVk4zK1ZrNjI3TllsN3g0ZDY5NWRNUFZLZWZlbXB4dkpELyszRThhUDFveFgrTjJaTG0yMHBuV3pOXG5RSE5HNklHNXIybnh2Vkx4MHpSVkxLRU1WZnkrYmJmV2taV3VZOTFMUlVvT1dkc0FnRlduVU95MzlmYlpqWWU0UVIrenU0RzdkeHM5XG42TUg4RW5abUR0Mlo4L3lhMENxUEtwU05HRWF0elh2d243eVdDTmhGOUtsd3hBNi8xbENCYmJiYWtocTBNTVZIY1k3SVB3bDRUZHlwXG5rSjJ1NzJ3TkR2ZmFCSnc0c3M1NlI3WkFsWlBvbCtURC9kOGRYNzc0WC9HMXdXdndKMi9qeGo3bzhYNEZCVUJ6L3ZuSDh0UG4vL3VKXG41VWR3MURUTE5FWUpTZ1NsM2NFMTI1S2R6WElab3Bpa0VsWFVpcUNJeEd6Zi9kQTNqNG1heDVPbFZCQXF6L3ZRdmhkOHNQRUtGVU4yXG5ONW5neGdPWlVieCtBM3ZqVGRLelQrS1dqa0tXZTlKUkVoY2k0Q0RCUVl3NGhRbWJJTTE0Q0RoSGpIS0NZeXNPZVRRN3dWQzRrSXN4XG5GVmhaWHplSEpEQ3RFN09Mby9KWkZPS3poWTVSUWJoVURlSDFBbFA2Nnk2RmpPUW1ZMVF4Z2RHZ3pFZjd2ejkrOVhQL0JaY3Z2c0Y5XG5DTlIvM29JQ2tQRHNTMDh6ZCtUblZacjlCS2hEMHg4VlRveS9KNVZJeVVMZVFMWGFjb0p6NFphcTFHc1hYd3lGVHFVdUtNbHFsWE5KXG41S0FxbmNpa3F6RGJWd2RORkJaUlY0QlVXY2h3NjJFZnVsdTRheGRSWjU3QWRRNkpWdk9uMUhsVTFWbWZVWFVseW9RVXZJOGdySTlNXG5iQlhpVW90S29tYVpDdnR0N1prcXVndHJWTlBDMVk3NHRFTVVmdStiYUZWZDc4SDN4R2d5UkV6U0NZdHlBcE1SakllN2JyRC9MMWk3XG45VC93K2hkZTUzMEtDZnpwQlFVZzVabVBuZFB6aC83OXJOWDgyWEZwVHdVaWRXV0RwKzlGYVNXYm0rYWlVZktHZEV2d2JINnB3L1hDXG40dXRmbk5heDFJRXN4YWwwdWo1bXluVHBvRS9FNUJSamNiUjk0Wm9iRDNGbm5rQTEyaUtNVkw1TVJDN0xRaEptUlNGSXRQSFBaVmtoXG5uQUVXUC9oY00wV1NXeUdhZzFpM1pPdWxGSlZHcVRaZnhSWmNzYlEwc1BYclhRMElDTEVYdXlDd3hxQ3NhRktLRWJrMXQreW8veXZsXG54dHF2OHZUcEszenFVL2VGNk4vdDhXY1JGSUNFeDU0N2txK2MvSUc4TS8vei9VbnhZblVIUkdHSk1QdlVOM3RUb1h4ZmVoLzFVQmNPXG5yelZja3FDU1RJU3Fwb0ZjS005TXBmNUlhcDE5aWFFcHNhTStxcitINm03RDNSdTRSNTRSZUQ3TDVXUjZaRm1FUW1CdDVUdGNVa3drXG51MXFLb0JEd0NGTjZNS3VNUWlLWWlmSDRFTkZIaWVCY1VCMHVaSXRyNjZIZ0FPUWFRMmJBKzJLMXRhcHBtb2gxUnVTNGhxRTQ2MUxNXG5GOVBCNEI4TjcyMzlDYmNlV1ljL25aQ0V5L3l6UGhSUFBKSGx0dlVZaDAvL2hHbzIvczZrZEN1UnRoaHhBdmQyWVlIYW9uaWJIVGloXG44ZkpjVkxraU5LbVlzVFNUMWhGWkx0MEJHZzNJV3JFSEs1TXhycmNMOTI2VHJSekg1azFzYTBab0ExcUpoakFGYmpSQytUbENLcWpxXG5jZ0tUaVIvNk1KWTBoU2tKQ0hKa2t1RVBRNWdIcEI3RVhLdVc2djdyVU5Nc1UzOC82UHZWK0MyMi9yMDZyaC9PMGN6VFRUTWEvRU0yXG4xejgxdWZ6eUZaQ2g5SCsyVGY3emZKdzh1Y2pLK2FkYlMwZis5c2k1andKTHp0R1kvcUxxOUx4ZDAxUUxVajFEWFUwRFV3dEhJdE01XG5hTTNnbW0zcFlwU200dVZ2cnFKblp0RWYvRUZzVVdCM04yQTBrQktVa1RRblZPTWhqSVlpRU1WWUFFTjN2NXBrcHJSamRlMEhON2wrXG5uZmRmcHVuUG1BNEFxdWp4NEx2VUFRMnRhdTl4YUszR09MWWFpZnI4OE43ZC80WHUxbXZjdlh4Zi91dWY1dkhuS3lnQXZKRHhoRjZpXG5QZmQwYTI3cHg0YkdQcXVUOUNHVU8rYWN5dSszcU85MGtxWVd2MUk4QjE3bkY2L1JsT2lxUFF1VGtVUkpqMzhRMVdoaGUxM1UxaHAyXG44eTVxMUJjTlVveEZlemltdnIrK1dROFNrSU9iL2FEN09TZ003L3o2Z3o3ZWd6L1A0ZEJLaloyMWQzSGNTckRmTEllOTMyVjM0MVd5XG5ZcHZMbDhkL25ydjZiMEJRNGlQam9hYzdMQ3dmenp1ZEoyMmFYaWl0T3FPUzVJeEs5RU1LZmN3Nko3UFhEbVJCdzBOK1BxaGxEbDY2XG5tMzZkMHJpWldmbjV3dk80NFFBMjExRDlYVngvSHpVWitzaUdLY0c0bnk4VlBqZHVYdVVxKy9kTm00V3BPd2ptb1g3eS9mV0h6NmovXG5YUC9zNnY5ckY0WnlTakhDdXJ2V21aczRleTIxNnBxanVHVDZ3OWZwN2ExeTAvVGg0bnRDV3QvdjQ5K2tvRlRmOGNJTEtldDV5aUU3XG5SOUplVGx1TkZXZFlkSGw2M0RwMWxDUTlBbXBacGNtY2MyNitrZWZ6T05kV09tbVUxalFVS2dXblBPNmdqTEZaMkFGeEdLUC9MR3E0XG5NKy9zM3E1U2pRWnVQQmJmbzQ2b3F0cG11cG9RMUh5ayt1K2hVdlgxQW5xbGVOdkpmNXUwdzRIM09aY2xhU0VRTE01WnA1VFdFNlVZXG5LOGZJWVllVFNkbkZ1YTZDUGVmTUp0YXRZOHU3Q1c3VmpDYzdHTHRKMFYvbjhNdytYLzV5aVlTN2Z5WWY1TjAzOGYvOVIwSTFRU1QxXG56K0huVUtNYTBqZ0gzL2YveGNmOUlnOGgzMVdVa3ZDejhiOHpEM2pmZHgvZmZYejM4ZDNIZHgvZmZYejM4ZDNILzY4Zi93Lyt4ZmNiXG5SbmdGM0FBQUFBQkpSVTVFcmtKZ2dnPT0iLCJ0aXRsZSI6IuW5leWQr+aYn+ays0FQUCJ9
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement